@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,190 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.describeQueryDriverTests = void 0;
4
+ const tslib_1 = require("tslib");
5
+ const rxjs_1 = require("@dereekb/rxjs");
6
+ const rxjs_2 = require("rxjs");
7
+ const constraint_1 = require("../../lib/common/firestore/query/constraint");
8
+ const document_utility_1 = require("../../lib/common/firestore/accessor/document.utility");
9
+ /**
10
+ * Describes query driver tests, using a MockItemCollectionFixture.
11
+ *
12
+ * @param f
13
+ */
14
+ function describeQueryDriverTests(f) {
15
+ describe('FirestoreQueryDriver', () => {
16
+ describe('query', () => {
17
+ const testDocumentCount = 5;
18
+ let query;
19
+ let items;
20
+ beforeEach(() => tslib_1.__awaiter(this, void 0, void 0, function* () {
21
+ query = f.instance.firestoreCollection.query;
22
+ items = yield (0, document_utility_1.makeDocuments)(f.instance.firestoreCollection.documentAccessor(), {
23
+ count: testDocumentCount,
24
+ init: (i) => {
25
+ return {
26
+ value: `${i}`,
27
+ test: true
28
+ };
29
+ }
30
+ });
31
+ }));
32
+ describe('streamDocs()', () => {
33
+ let sub;
34
+ beforeEach(() => {
35
+ sub = new rxjs_1.SubscriptionObject();
36
+ });
37
+ afterEach(() => {
38
+ sub.destroy();
39
+ });
40
+ it('should emit when the query results update (an item is added).', (done) => {
41
+ const itemsToAdd = 1;
42
+ sub.subscription = query().streamDocs().pipe((0, rxjs_2.filter)(x => x.docs.length > items.length)).subscribe((results) => {
43
+ expect(results.docs.length).toBe(items.length + itemsToAdd);
44
+ done();
45
+ });
46
+ // add one item
47
+ (0, document_utility_1.makeDocuments)(f.instance.firestoreCollection.documentAccessor(), {
48
+ count: itemsToAdd,
49
+ init: (i) => {
50
+ return {
51
+ value: `${i + items.length}`,
52
+ test: true
53
+ };
54
+ }
55
+ });
56
+ });
57
+ it('should emit when the query results update (an item is removed).', (done) => {
58
+ const itemsToRemove = 1;
59
+ sub.subscription = query().streamDocs().pipe((0, rxjs_2.filter)(x => x.docs.length < items.length)).subscribe((results) => {
60
+ expect(results.docs.length).toBe(items.length - itemsToRemove);
61
+ done();
62
+ });
63
+ // remove one item
64
+ items[0].accessor.delete();
65
+ });
66
+ });
67
+ describe('constraint', () => {
68
+ describe('limit', () => {
69
+ it('should limit the number of items returned.', () => tslib_1.__awaiter(this, void 0, void 0, function* () {
70
+ const limitCount = 2;
71
+ const unlimited = yield query().getDocs();
72
+ expect(unlimited.docs.length).toBe(testDocumentCount);
73
+ const result = yield query((0, constraint_1.limit)(limitCount)).getDocs();
74
+ expect(result.docs.length).toBe(limitCount);
75
+ }));
76
+ it('should limit the streamed results.', (done) => {
77
+ const limitCount = 2;
78
+ const resultObs = query((0, constraint_1.limit)(limitCount)).streamDocs();
79
+ (0, rxjs_2.from)(resultObs).pipe((0, rxjs_2.first)()).subscribe((results) => {
80
+ expect(results.docs.length).toBe(limitCount);
81
+ done();
82
+ });
83
+ });
84
+ });
85
+ describe('limitToLast', () => {
86
+ it('should limit the number of items returned.', () => tslib_1.__awaiter(this, void 0, void 0, function* () {
87
+ const limitCount = 2;
88
+ const unlimited = yield query().getDocs();
89
+ expect(unlimited.docs.length).toBe(testDocumentCount);
90
+ const result = yield query((0, constraint_1.orderBy)('value'), (0, constraint_1.limitToLast)(limitCount)).getDocs();
91
+ expect(result.docs.length).toBe(limitCount);
92
+ }));
93
+ it('the results should be returned from the end of the list. The results are still in the same order as requested.', () => tslib_1.__awaiter(this, void 0, void 0, function* () {
94
+ const limitCount = 2;
95
+ const result = yield query((0, constraint_1.orderBy)('value', 'asc'), (0, constraint_1.limitToLast)(limitCount)).getDocs();
96
+ expect(result.docs.length).toBe(limitCount);
97
+ expect(result.docs[0].data().value).toBe('3');
98
+ expect(result.docs[1].data().value).toBe('4');
99
+ }));
100
+ it('should fail if orderby is not provided.', () => tslib_1.__awaiter(this, void 0, void 0, function* () {
101
+ const limitCount = 2;
102
+ const unlimited = yield query().getDocs();
103
+ expect(unlimited.docs.length).toBe(testDocumentCount);
104
+ try {
105
+ yield query((0, constraint_1.limitToLast)(limitCount)).getDocs();
106
+ fail();
107
+ }
108
+ catch (e) {
109
+ expect(e).toBeDefined();
110
+ }
111
+ }));
112
+ it('should stream results.', (done) => {
113
+ const limitCount = 2;
114
+ const resultObs = query((0, constraint_1.orderBy)('value'), (0, constraint_1.limitToLast)(limitCount)).streamDocs();
115
+ (0, rxjs_2.from)(resultObs).pipe((0, rxjs_2.first)()).subscribe((results) => {
116
+ expect(results.docs.length).toBe(limitCount);
117
+ done();
118
+ });
119
+ });
120
+ });
121
+ describe('orderBy', () => {
122
+ it('should return values sorted in ascending order.', () => tslib_1.__awaiter(this, void 0, void 0, function* () {
123
+ const results = yield query((0, constraint_1.orderBy)('value', 'asc')).getDocs();
124
+ expect(results.docs[0].data().value).toBe('0');
125
+ }));
126
+ it('should return values sorted in descending order.', () => tslib_1.__awaiter(this, void 0, void 0, function* () {
127
+ const results = yield query((0, constraint_1.orderBy)('value', 'desc')).getDocs();
128
+ expect(results.docs[0].data().value).toBe(`${items.length - 1}`);
129
+ }));
130
+ });
131
+ describe('where', () => {
132
+ it('should return the documents matching the query.', () => tslib_1.__awaiter(this, void 0, void 0, function* () {
133
+ const value = '0';
134
+ const result = yield query((0, constraint_1.where)('value', '==', value)).getDocs();
135
+ expect(result.docs.length).toBe(1);
136
+ expect(result.docs[0].data().value).toBe(value);
137
+ }));
138
+ });
139
+ describe('startAt', () => {
140
+ it('should return values starting from the specified startAt point.', () => tslib_1.__awaiter(this, void 0, void 0, function* () {
141
+ const limitCount = 2;
142
+ const firstQuery = query((0, constraint_1.limit)(limitCount));
143
+ const first = yield firstQuery.getDocs();
144
+ expect(first.docs.length).toBe(limitCount);
145
+ const second = yield firstQuery.filter((0, constraint_1.startAt)(first.docs[1])).getDocs();
146
+ expect(second.docs.length).toBe(limitCount);
147
+ expect(second.docs[0].id).toBe(first.docs[1].id);
148
+ }));
149
+ });
150
+ describe('startAfter', () => {
151
+ it('should return values starting after the specified startAt point.', () => tslib_1.__awaiter(this, void 0, void 0, function* () {
152
+ const limitCount = 3;
153
+ const firstQuery = query((0, constraint_1.limit)(limitCount));
154
+ const first = yield firstQuery.getDocs();
155
+ expect(first.docs.length).toBe(limitCount);
156
+ const startAfterDoc = first.docs[1];
157
+ const expectedFirstDoc = first.docs[2];
158
+ const second = yield firstQuery.filter((0, constraint_1.startAfter)(startAfterDoc)).getDocs();
159
+ expect(second.docs.length).toBe(limitCount);
160
+ expect(second.docs[0].id).toBe(expectedFirstDoc.id);
161
+ }));
162
+ });
163
+ describe('endAt', () => {
164
+ it('should return values ending with the specified endAt point (inclusive).', () => tslib_1.__awaiter(this, void 0, void 0, function* () {
165
+ const limitCount = 2;
166
+ const firstQuery = query((0, constraint_1.limit)(limitCount));
167
+ const first = yield firstQuery.getDocs();
168
+ expect(first.docs.length).toBe(limitCount);
169
+ const second = yield firstQuery.filter((0, constraint_1.endAt)(first.docs[0])).getDocs();
170
+ expect(second.docs.length).toBe(limitCount - 1);
171
+ expect(second.docs[0].id).toBe(first.docs[0].id);
172
+ }));
173
+ });
174
+ describe('endBefore', () => {
175
+ it('should return values ending with the specified endBefore point (exclusive).', () => tslib_1.__awaiter(this, void 0, void 0, function* () {
176
+ const limitCount = 2;
177
+ const firstQuery = query((0, constraint_1.limit)(limitCount));
178
+ const first = yield firstQuery.getDocs();
179
+ expect(first.docs.length).toBe(limitCount);
180
+ const second = yield firstQuery.filter((0, constraint_1.endBefore)(first.docs[1])).getDocs();
181
+ expect(second.docs.length).toBe(limitCount - 1);
182
+ expect(second.docs[0].id).toBe(first.docs[0].id);
183
+ }));
184
+ });
185
+ });
186
+ });
187
+ });
188
+ }
189
+ exports.describeQueryDriverTests = describeQueryDriverTests;
190
+ //# sourceMappingURL=test.driver.query.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"test.driver.query.js","sourceRoot":"","sources":["../../../../../../packages/firebase/src/test/common/test.driver.query.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,7 @@
1
+ import { MockItemCollectionFixture } from "./firestore.mock.item.fixture";
2
+ /**
3
+ * Describes accessor driver tests, using a MockItemCollectionFixture.
4
+ *
5
+ * @param f
6
+ */
7
+ export declare function describeFirestoreIterationTests(f: MockItemCollectionFixture): void;
@@ -0,0 +1,223 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.describeFirestoreIterationTests = void 0;
4
+ const tslib_1 = require("tslib");
5
+ const rxjs_1 = require("@dereekb/rxjs");
6
+ const rxjs_2 = require("rxjs");
7
+ const document_utility_1 = require("../../lib/common/firestore/accessor/document.utility");
8
+ const firestore_mock_item_query_1 = require("./firestore.mock.item.query");
9
+ const util_1 = require("@dereekb/util");
10
+ const accumulator_1 = require("../../lib/common/firestore/query/accumulator");
11
+ /**
12
+ * Describes accessor driver tests, using a MockItemCollectionFixture.
13
+ *
14
+ * @param f
15
+ */
16
+ function describeFirestoreIterationTests(f) {
17
+ describe('firestoreItemPageIteration', () => {
18
+ const testDocumentCount = 10;
19
+ let firestoreIteration;
20
+ let items;
21
+ let sub;
22
+ beforeEach(() => tslib_1.__awaiter(this, void 0, void 0, function* () {
23
+ firestoreIteration = f.instance.firestoreCollection.firestoreIteration;
24
+ items = yield (0, document_utility_1.makeDocuments)(f.instance.firestoreCollection.documentAccessor(), {
25
+ count: testDocumentCount,
26
+ init: (i) => {
27
+ return {
28
+ value: `${i}`,
29
+ test: true
30
+ };
31
+ }
32
+ });
33
+ sub = new rxjs_1.SubscriptionObject();
34
+ }));
35
+ afterEach(() => {
36
+ sub.destroy();
37
+ });
38
+ describe('filter', () => {
39
+ describe('limit', () => {
40
+ it('should use the input limit for page size.', (done) => {
41
+ const limit = 4;
42
+ const iteration = firestoreIteration({ limit });
43
+ sub.subscription = iteration.latestState$.subscribe((x) => {
44
+ const results = x.value;
45
+ expect(results.length).toBe(limit);
46
+ done();
47
+ });
48
+ });
49
+ });
50
+ describe('constraint', () => {
51
+ it('should use the constraints', (done) => {
52
+ const iteration = firestoreIteration({ constraints: (0, firestore_mock_item_query_1.mockItemWithValue)('0') });
53
+ sub.subscription = iteration.latestState$.subscribe((x) => {
54
+ const results = x.value;
55
+ expect(results.length).toBe(1);
56
+ expect(results[0].id).toBe(items[0].documentRef.id);
57
+ done();
58
+ });
59
+ });
60
+ });
61
+ });
62
+ describe('pagination', () => {
63
+ const limit = 4;
64
+ let iteration;
65
+ beforeEach(() => {
66
+ iteration = firestoreIteration({ limit });
67
+ });
68
+ afterEach(() => {
69
+ iteration.destroy();
70
+ });
71
+ describe('latestState$', () => {
72
+ it('should load the first state when subscribed to for the first time.', (done) => {
73
+ sub.subscription = iteration.latestState$.subscribe((latestState) => {
74
+ const page = latestState.page;
75
+ expect(page).toBe(0);
76
+ const values = latestState.value;
77
+ expect(values.length).toBe(limit);
78
+ done();
79
+ });
80
+ });
81
+ });
82
+ describe('currentState$', () => {
83
+ it('should load the first items when subscribed to for the first time.', (done) => {
84
+ sub.subscription = iteration.currentState$.pipe((0, rxjs_2.filter)(x => Boolean(x.value))).subscribe((currentState) => {
85
+ const page = currentState.page;
86
+ expect(page).toBe(0);
87
+ const values = currentState.value;
88
+ expect(values.length).toBe(limit);
89
+ done();
90
+ });
91
+ });
92
+ });
93
+ describe('nextPage()', () => {
94
+ it('should load the next page and return when the page has finished loading.', (done) => {
95
+ iteration.nextPage().then(() => {
96
+ const nextPageResult = (0, rxjs_2.from)(iteration.nextPage());
97
+ sub.subscription = nextPageResult.pipe((0, rxjs_2.switchMap)(x => iteration.currentState$)).subscribe((latestState) => {
98
+ const page = latestState.page;
99
+ expect(page).toBe(1);
100
+ const values = latestState.value;
101
+ expect(values.length).toBe(limit);
102
+ done();
103
+ });
104
+ });
105
+ });
106
+ });
107
+ describe('with accumulator', () => {
108
+ let accumulatorSub;
109
+ beforeEach(() => {
110
+ accumulatorSub = new rxjs_1.SubscriptionObject();
111
+ });
112
+ afterEach(() => {
113
+ accumulatorSub.destroy();
114
+ });
115
+ describe('firebaseQuerySnapshotAccumulator()', () => {
116
+ let accumulator;
117
+ beforeEach(() => {
118
+ accumulator = (0, accumulator_1.firebaseQuerySnapshotAccumulator)(iteration);
119
+ });
120
+ it('should accumulate values from the query.', () => {
121
+ // todo
122
+ });
123
+ describe('flattenAccumulatorResultItemArray()', () => {
124
+ it(`should aggregate the array of results into a single array.`, (done) => {
125
+ const pagesToLoad = 2;
126
+ // load up to page 2
127
+ (0, rxjs_1.iteratorNextPageUntilPage)(iteration, pagesToLoad).then((page) => {
128
+ expect(page).toBe(pagesToLoad - 1);
129
+ const obs = (0, rxjs_1.flattenAccumulatorResultItemArray)(accumulator);
130
+ accumulatorSub.subscription = obs.pipe((0, rxjs_2.first)()).subscribe((values) => {
131
+ expect(values.length).toBe(pagesToLoad * limit);
132
+ expect((0, util_1.arrayContainsDuplicateValue)(values.map(x => x.id))).toBe(false);
133
+ // should not be a query snapshot
134
+ expect(values[0].ref).toBeDefined();
135
+ done();
136
+ });
137
+ });
138
+ });
139
+ });
140
+ describe('accumulatorCurrentPageListLoadingState()', () => {
141
+ it('should return a loading state for the current page.', (done) => {
142
+ const obs = (0, rxjs_1.accumulatorCurrentPageListLoadingState)(accumulator);
143
+ accumulatorSub.subscription = obs.pipe((0, rxjs_2.filter)(x => !x.loading)).subscribe((state) => {
144
+ const value = state.value;
145
+ expect((0, rxjs_1.loadingStateHasFinishedLoading)(state)).toBe(true);
146
+ expect(value).toBeDefined();
147
+ expect(Array.isArray(value)).toBe(true);
148
+ expect(Array.isArray(value[0])).toBe(true);
149
+ done();
150
+ });
151
+ });
152
+ });
153
+ });
154
+ describe('firebaseQueryItemAccumulator()', () => {
155
+ let itemAccumulator;
156
+ beforeEach(() => {
157
+ itemAccumulator = (0, accumulator_1.firebaseQueryItemAccumulator)(iteration);
158
+ });
159
+ describe('flattenAccumulatorResultItemArray()', () => {
160
+ it(`should aggregate the array of results into a single array.`, (done) => {
161
+ const pagesToLoad = 2;
162
+ // load up to page 2
163
+ (0, rxjs_1.iteratorNextPageUntilPage)(iteration, pagesToLoad).then((page) => {
164
+ expect(page).toBe(pagesToLoad - 1);
165
+ const obs = (0, rxjs_1.flattenAccumulatorResultItemArray)(itemAccumulator);
166
+ accumulatorSub.subscription = obs.pipe((0, rxjs_2.first)()).subscribe((values) => {
167
+ expect(values.length).toBe(pagesToLoad * limit);
168
+ expect((0, util_1.arrayContainsDuplicateValue)(values.map(x => x.id))).toBe(false);
169
+ done();
170
+ });
171
+ });
172
+ });
173
+ });
174
+ describe('flattenAccumulatorResultItemArray()', () => {
175
+ it(`should aggregate the array of results into a single array of the items.`, (done) => {
176
+ const pagesToLoad = 2;
177
+ // load up to page 2
178
+ (0, rxjs_1.iteratorNextPageUntilPage)(iteration, pagesToLoad).then((page) => {
179
+ expect(page).toBe(pagesToLoad - 1);
180
+ const obs = (0, rxjs_1.flattenAccumulatorResultItemArray)(itemAccumulator);
181
+ accumulatorSub.subscription = obs.pipe((0, rxjs_2.first)()).subscribe((values) => {
182
+ expect(values.length).toBe(pagesToLoad * limit);
183
+ expect((0, util_1.arrayContainsDuplicateValue)(values.map(x => x.id))).toBe(false);
184
+ // should not be a query snapshot
185
+ expect(values[0].ref).not.toBeDefined();
186
+ done();
187
+ });
188
+ });
189
+ });
190
+ });
191
+ describe('accumulatorFlattenPageListLoadingState()', () => {
192
+ it('should return a loading state for the current page with all items in a single array.', (done) => {
193
+ const obs = (0, rxjs_1.accumulatorFlattenPageListLoadingState)(itemAccumulator);
194
+ accumulatorSub.subscription = obs.pipe((0, rxjs_2.filter)(x => !x.loading)).subscribe((state) => {
195
+ const value = state.value;
196
+ expect((0, rxjs_1.loadingStateHasFinishedLoading)(state)).toBe(true);
197
+ expect(value).toBeDefined();
198
+ expect(Array.isArray(value)).toBe(true);
199
+ expect(Array.isArray(value[0])).toBe(false);
200
+ done();
201
+ });
202
+ });
203
+ });
204
+ describe('accumulatorCurrentPageListLoadingState()', () => {
205
+ it('should return a loading state for the current page.', (done) => {
206
+ const obs = (0, rxjs_1.accumulatorCurrentPageListLoadingState)(itemAccumulator);
207
+ accumulatorSub.subscription = obs.pipe((0, rxjs_2.filter)(x => !x.loading)).subscribe((state) => {
208
+ const value = state.value;
209
+ expect((0, rxjs_1.loadingStateHasFinishedLoading)(state)).toBe(true);
210
+ expect(value).toBeDefined();
211
+ expect(Array.isArray(value)).toBe(true);
212
+ expect(Array.isArray(value[0])).toBe(true);
213
+ done();
214
+ });
215
+ });
216
+ });
217
+ });
218
+ });
219
+ });
220
+ });
221
+ }
222
+ exports.describeFirestoreIterationTests = describeFirestoreIterationTests;
223
+ //# sourceMappingURL=test.iterator.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"test.iterator.js","sourceRoot":"","sources":["../../../../../../packages/firebase/src/test/common/test.iterator.ts"],"names":[],"mappings":";;;;AAAA,wCAAmQ;AACnQ,+BAAsD;AACtD,2FAAqF;AAIrF,2EAAgE;AAChE,wCAA4D;AAC5D,8EAA8L;AAG9L;;;;GAIG;AACH,SAAgB,+BAA+B,CAAC,CAA4B;IAE1E,QAAQ,CAAC,4BAA4B,EAAE,GAAG,EAAE;QAE1C,MAAM,iBAAiB,GAAG,EAAE,CAAC;QAE7B,IAAI,kBAAuE,CAAC;QAC5E,IAAI,KAAyB,CAAC;QAC9B,IAAI,GAAuB,CAAC;QAE5B,UAAU,CAAC,GAAS,EAAE;YACpB,kBAAkB,GAAG,CAAC,CAAC,QAAQ,CAAC,mBAAmB,CAAC,kBAAkB,CAAC;YACvE,KAAK,GAAG,MAAM,IAAA,gCAAa,EAAC,CAAC,CAAC,QAAQ,CAAC,mBAAmB,CAAC,gBAAgB,EAAE,EAAE;gBAC7E,KAAK,EAAE,iBAAiB;gBACxB,IAAI,EAAE,CAAC,CAAC,EAAE,EAAE;oBACV,OAAO;wBACL,KAAK,EAAE,GAAG,CAAC,EAAE;wBACb,IAAI,EAAE,IAAI;qBACX,CAAC;gBACJ,CAAC;aACF,CAAC,CAAC;YAEH,GAAG,GAAG,IAAI,yBAAkB,EAAE,CAAC;QACjC,CAAC,CAAA,CAAC,CAAC;QAEH,SAAS,CAAC,GAAG,EAAE;YACb,GAAG,CAAC,OAAO,EAAE,CAAC;QAChB,CAAC,CAAC,CAAC;QAEH,QAAQ,CAAC,QAAQ,EAAE,GAAG,EAAE;YAEtB,QAAQ,CAAC,OAAO,EAAE,GAAG,EAAE;gBAErB,EAAE,CAAC,2CAA2C,EAAE,CAAC,IAAI,EAAE,EAAE;oBACvD,MAAM,KAAK,GAAG,CAAC,CAAC;oBAEhB,MAAM,SAAS,GAAG,kBAAkB,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC;oBAEhD,GAAG,CAAC,YAAY,GAAG,SAAS,CAAC,YAAY,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,EAAE;wBACxD,MAAM,OAAO,GAAG,CAAC,CAAC,KAAM,CAAC;wBACzB,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;wBACnC,IAAI,EAAE,CAAC;oBACT,CAAC,CAAC,CAAC;gBACL,CAAC,CAAC,CAAC;YAEL,CAAC,CAAC,CAAC;YAEH,QAAQ,CAAC,YAAY,EAAE,GAAG,EAAE;gBAE1B,EAAE,CAAC,4BAA4B,EAAE,CAAC,IAAI,EAAE,EAAE;oBACxC,MAAM,SAAS,GAAG,kBAAkB,CAAC,EAAE,WAAW,EAAE,IAAA,6CAAiB,EAAC,GAAG,CAAC,EAAE,CAAC,CAAC;oBAE9E,GAAG,CAAC,YAAY,GAAG,SAAS,CAAC,YAAY,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,EAAE;wBACxD,MAAM,OAAO,GAAG,CAAC,CAAC,KAAM,CAAC;wBACzB,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;wBAC/B,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC;wBACpD,IAAI,EAAE,CAAC;oBACT,CAAC,CAAC,CAAC;gBACL,CAAC,CAAC,CAAC;YAEL,CAAC,CAAC,CAAC;QAEL,CAAC,CAAC,CAAC;QAEH,QAAQ,CAAC,YAAY,EAAE,GAAG,EAAE;YAE1B,MAAM,KAAK,GAAG,CAAC,CAAC;YAChB,IAAI,SAAuD,CAAC;YAE5D,UAAU,CAAC,GAAG,EAAE;gBACd,SAAS,GAAG,kBAAkB,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC;YAC5C,CAAC,CAAC,CAAC;YAEH,SAAS,CAAC,GAAG,EAAE;gBACb,SAAS,CAAC,OAAO,EAAE,CAAC;YACtB,CAAC,CAAC,CAAC;YAEH,QAAQ,CAAC,cAAc,EAAE,GAAG,EAAE;gBAE5B,EAAE,CAAC,oEAAoE,EAAE,CAAC,IAAI,EAAE,EAAE;oBAChF,GAAG,CAAC,YAAY,GAAG,SAAS,CAAC,YAAY,CAAC,SAAS,CAAC,CAAC,WAAW,EAAE,EAAE;wBAClE,MAAM,IAAI,GAAG,WAAW,CAAC,IAAI,CAAC;wBAC9B,MAAM,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;wBAErB,MAAM,MAAM,GAAG,WAAW,CAAC,KAAM,CAAC;wBAClC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;wBAClC,IAAI,EAAE,CAAC;oBACT,CAAC,CAAC,CAAC;gBACL,CAAC,CAAC,CAAC;YAEL,CAAC,CAAC,CAAC;YAEH,QAAQ,CAAC,eAAe,EAAE,GAAG,EAAE;gBAE7B,EAAE,CAAC,oEAAoE,EAAE,CAAC,IAAI,EAAE,EAAE;oBAChF,GAAG,CAAC,YAAY,GAAG,SAAS,CAAC,aAAa,CAAC,IAAI,CAAC,IAAA,aAAM,EAAC,CAAC,CAAC,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,YAAY,EAAE,EAAE;wBACxG,MAAM,IAAI,GAAG,YAAY,CAAC,IAAI,CAAC;wBAC/B,MAAM,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;wBAErB,MAAM,MAAM,GAAG,YAAY,CAAC,KAAM,CAAC;wBACnC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;wBAClC,IAAI,EAAE,CAAC;oBACT,CAAC,CAAC,CAAC;gBACL,CAAC,CAAC,CAAC;YAEL,CAAC,CAAC,CAAC;YAEH,QAAQ,CAAC,YAAY,EAAE,GAAG,EAAE;gBAE1B,EAAE,CAAC,0EAA0E,EAAE,CAAC,IAAI,EAAE,EAAE;oBACtF,SAAS,CAAC,QAAQ,EAAE,CAAC,IAAI,CAAC,GAAG,EAAE;wBAC7B,MAAM,cAAc,GAAG,IAAA,WAAI,EAAC,SAAS,CAAC,QAAQ,EAAE,CAAC,CAAC;wBAElD,GAAG,CAAC,YAAY,GAAG,cAAc,CAAC,IAAI,CAAC,IAAA,gBAAS,EAAC,CAAC,CAAC,EAAE,CAAC,SAAS,CAAC,aAAa,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,WAAW,EAAE,EAAE;4BACxG,MAAM,IAAI,GAAG,WAAW,CAAC,IAAI,CAAC;4BAC9B,MAAM,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;4BAErB,MAAM,MAAM,GAAG,WAAW,CAAC,KAAM,CAAC;4BAClC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;4BAClC,IAAI,EAAE,CAAC;wBACT,CAAC,CAAC,CAAC;oBACL,CAAC,CAAC,CAAC;gBACL,CAAC,CAAC,CAAC;YAEL,CAAC,CAAC,CAAC;YAEH,QAAQ,CAAC,kBAAkB,EAAE,GAAG,EAAE;gBAEhC,IAAI,cAAkC,CAAC;gBAEvC,UAAU,CAAC,GAAG,EAAE;oBACd,cAAc,GAAG,IAAI,yBAAkB,EAAE,CAAC;gBAC5C,CAAC,CAAC,CAAC;gBAEH,SAAS,CAAC,GAAG,EAAE;oBACb,cAAc,CAAC,OAAO,EAAE,CAAC;gBAC3B,CAAC,CAAC,CAAC;gBAEH,QAAQ,CAAC,oCAAoC,EAAE,GAAG,EAAE;oBAElD,IAAI,WAAuD,CAAC;oBAE5D,UAAU,CAAC,GAAG,EAAE;wBACd,WAAW,GAAG,IAAA,8CAAgC,EAAC,SAAS,CAAC,CAAC;oBAC5D,CAAC,CAAC,CAAC;oBAEH,EAAE,CAAC,0CAA0C,EAAE,GAAG,EAAE;wBAElD,OAAO;oBAET,CAAC,CAAC,CAAC;oBAEH,QAAQ,CAAC,qCAAqC,EAAE,GAAG,EAAE;wBAEnD,EAAE,CAAC,4DAA4D,EAAE,CAAC,IAAI,EAAE,EAAE;4BACxE,MAAM,WAAW,GAAG,CAAC,CAAC;4BAEtB,oBAAoB;4BACpB,IAAA,gCAAyB,EAAC,SAAS,EAAE,WAAW,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE;gCAC9D,MAAM,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,WAAW,GAAG,CAAC,CAAC,CAAC;gCAEnC,MAAM,GAAG,GAAG,IAAA,wCAAiC,EAAC,WAAW,CAAC,CAAC;gCAE3D,cAAc,CAAC,YAAY,GAAG,GAAG,CAAC,IAAI,CAAC,IAAA,YAAK,GAAE,CAAC,CAAC,SAAS,CAAC,CAAC,MAAM,EAAE,EAAE;oCACnE,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,WAAW,GAAG,KAAK,CAAC,CAAC;oCAChD,MAAM,CAAC,IAAA,kCAA2B,EAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;oCAEvE,iCAAiC;oCACjC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,WAAW,EAAE,CAAC;oCAEpC,IAAI,EAAE,CAAC;gCACT,CAAC,CAAC,CAAC;4BAEL,CAAC,CAAC,CAAC;wBAEL,CAAC,CAAC,CAAC;oBAEL,CAAC,CAAC,CAAC;oBAEH,QAAQ,CAAC,0CAA0C,EAAE,GAAG,EAAE;wBAExD,EAAE,CAAC,qDAAqD,EAAE,CAAC,IAAI,EAAE,EAAE;4BAEjE,MAAM,GAAG,GAAG,IAAA,6CAAsC,EAAC,WAAW,CAAC,CAAC;4BAEhE,cAAc,CAAC,YAAY,GAAG,GAAG,CAAC,IAAI,CAAC,IAAA,aAAM,EAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,KAAK,EAAE,EAAE;gCAClF,MAAM,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC;gCAE1B,MAAM,CAAC,IAAA,qCAA8B,EAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;gCACzD,MAAM,CAAC,KAAK,CAAC,CAAC,WAAW,EAAE,CAAC;gCAC5B,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;gCACxC,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,KAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;gCAE5C,IAAI,EAAE,CAAC;4BACT,CAAC,CAAC,CAAC;wBAEL,CAAC,CAAC,CAAC;oBAEL,CAAC,CAAC,CAAC;gBAEL,CAAC,CAAC,CAAC;gBAEH,QAAQ,CAAC,gCAAgC,EAAE,GAAG,EAAE;oBAE9C,IAAI,eAAuD,CAAC;oBAE5D,UAAU,CAAC,GAAG,EAAE;wBACd,eAAe,GAAG,IAAA,0CAA4B,EAAC,SAAS,CAAC,CAAC;oBAC5D,CAAC,CAAC,CAAC;oBAEH,QAAQ,CAAC,qCAAqC,EAAE,GAAG,EAAE;wBAEnD,EAAE,CAAC,4DAA4D,EAAE,CAAC,IAAI,EAAE,EAAE;4BACxE,MAAM,WAAW,GAAG,CAAC,CAAC;4BAEtB,oBAAoB;4BACpB,IAAA,gCAAyB,EAAC,SAAS,EAAE,WAAW,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE;gCAC9D,MAAM,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,WAAW,GAAG,CAAC,CAAC,CAAC;gCAEnC,MAAM,GAAG,GAAG,IAAA,wCAAiC,EAAC,eAAe,CAAC,CAAC;gCAE/D,cAAc,CAAC,YAAY,GAAG,GAAG,CAAC,IAAI,CAAC,IAAA,YAAK,GAAE,CAAC,CAAC,SAAS,CAAC,CAAC,MAAM,EAAE,EAAE;oCACnE,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,WAAW,GAAG,KAAK,CAAC,CAAC;oCAChD,MAAM,CAAC,IAAA,kCAA2B,EAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;oCACvE,IAAI,EAAE,CAAC;gCACT,CAAC,CAAC,CAAC;4BAEL,CAAC,CAAC,CAAC;wBAEL,CAAC,CAAC,CAAC;oBAEL,CAAC,CAAC,CAAC;oBAEH,QAAQ,CAAC,qCAAqC,EAAE,GAAG,EAAE;wBAEnD,EAAE,CAAC,yEAAyE,EAAE,CAAC,IAAI,EAAE,EAAE;4BACrF,MAAM,WAAW,GAAG,CAAC,CAAC;4BAEtB,oBAAoB;4BACpB,IAAA,gCAAyB,EAAC,SAAS,EAAE,WAAW,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE;gCAC9D,MAAM,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,WAAW,GAAG,CAAC,CAAC,CAAC;gCAEnC,MAAM,GAAG,GAAG,IAAA,wCAAiC,EAAC,eAAe,CAAC,CAAC;gCAE/D,cAAc,CAAC,YAAY,GAAG,GAAG,CAAC,IAAI,CAAC,IAAA,YAAK,GAAE,CAAC,CAAC,SAAS,CAAC,CAAC,MAAM,EAAE,EAAE;oCAEnE,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,WAAW,GAAG,KAAK,CAAC,CAAC;oCAChD,MAAM,CAAC,IAAA,kCAA2B,EAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;oCAEvE,iCAAiC;oCACjC,MAAM,CAAE,MAAM,CAAC,CAAC,CAAgD,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,WAAW,EAAE,CAAC;oCAExF,IAAI,EAAE,CAAC;gCACT,CAAC,CAAC,CAAC;4BAEL,CAAC,CAAC,CAAC;wBAEL,CAAC,CAAC,CAAC;oBAEL,CAAC,CAAC,CAAC;oBAEH,QAAQ,CAAC,0CAA0C,EAAE,GAAG,EAAE;wBAExD,EAAE,CAAC,sFAAsF,EAAE,CAAC,IAAI,EAAE,EAAE;4BAElG,MAAM,GAAG,GAAG,IAAA,6CAAsC,EAAC,eAAe,CAAC,CAAC;4BAEpE,cAAc,CAAC,YAAY,GAAG,GAAG,CAAC,IAAI,CAAC,IAAA,aAAM,EAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,KAAK,EAAE,EAAE;gCAClF,MAAM,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC;gCAE1B,MAAM,CAAC,IAAA,qCAA8B,EAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;gCACzD,MAAM,CAAC,KAAK,CAAC,CAAC,WAAW,EAAE,CAAC;gCAC5B,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;gCACxC,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,KAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;gCAE7C,IAAI,EAAE,CAAC;4BACT,CAAC,CAAC,CAAC;wBAEL,CAAC,CAAC,CAAC;oBAEL,CAAC,CAAC,CAAC;oBAEH,QAAQ,CAAC,0CAA0C,EAAE,GAAG,EAAE;wBAExD,EAAE,CAAC,qDAAqD,EAAE,CAAC,IAAI,EAAE,EAAE;4BAEjE,MAAM,GAAG,GAAG,IAAA,6CAAsC,EAAC,eAAe,CAAC,CAAC;4BAEpE,cAAc,CAAC,YAAY,GAAG,GAAG,CAAC,IAAI,CAAC,IAAA,aAAM,EAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,KAAK,EAAE,EAAE;gCAClF,MAAM,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC;gCAE1B,MAAM,CAAC,IAAA,qCAA8B,EAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;gCACzD,MAAM,CAAC,KAAK,CAAC,CAAC,WAAW,EAAE,CAAC;gCAC5B,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;gCACxC,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,KAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;gCAE5C,IAAI,EAAE,CAAC;4BACT,CAAC,CAAC,CAAC;wBAEL,CAAC,CAAC,CAAC;oBAEL,CAAC,CAAC,CAAC;gBAEL,CAAC,CAAC,CAAC;YAEL,CAAC,CAAC,CAAC;QAEL,CAAC,CAAC,CAAC;IAEL,CAAC,CAAC,CAAC;AAEL,CAAC;AAvTD,0EAuTC"}
@@ -1,3 +1,2 @@
1
- export * from './firebase';
2
- export * from './firebase.context';
3
- export * from './firebase.context.item';
1
+ export * from './client';
2
+ export * from './common';
package/src/test/index.js CHANGED
@@ -1,7 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  const tslib_1 = require("tslib");
4
- (0, tslib_1.__exportStar)(require("./firebase"), exports);
5
- (0, tslib_1.__exportStar)(require("./firebase.context"), exports);
6
- (0, tslib_1.__exportStar)(require("./firebase.context.item"), exports);
4
+ tslib_1.__exportStar(require("./client"), exports);
5
+ tslib_1.__exportStar(require("./common"), exports);
7
6
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../packages/firebase/src/test/index.ts"],"names":[],"mappings":";;;AAAA,0DAA2B;AAC3B,kEAAmC;AACnC,uEAAwC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../packages/firebase/src/test/index.ts"],"names":[],"mappings":";;;AAAA,mDAAyB;AACzB,mDAAyB"}
@@ -1,23 +0,0 @@
1
- import { DocumentReference, DocumentSnapshot, UpdateData, WithFieldValue, WriteBatch } from "@firebase/firestore";
2
- import { Observable } from "rxjs";
3
- import { FirestoreDocumentDataAccessor, FirestoreDocumentDataAccessorFactory } from "./accessor";
4
- /**
5
- * FirestoreDocumentDataAccessor implementation for a batch.
6
- */
7
- export declare class WriteBatchFirestoreDocumentDataAccessor<T> implements FirestoreDocumentDataAccessor<T> {
8
- readonly batch: WriteBatch;
9
- readonly documentRef: DocumentReference<T>;
10
- constructor(batch: WriteBatch, documentRef: DocumentReference<T>);
11
- stream(): Observable<DocumentSnapshot<T>>;
12
- get(): Promise<DocumentSnapshot<T>>;
13
- delete(): Promise<void>;
14
- set(data: WithFieldValue<T>): Promise<void>;
15
- update(data: UpdateData<T>): Promise<void>;
16
- }
17
- /**
18
- * Creates a new FirestoreDocumentDataAccessorFactory for a Batch.
19
- *
20
- * @param batch
21
- * @returns
22
- */
23
- export declare function writeBatchAccessorFactory<T>(writeBatch: WriteBatch): FirestoreDocumentDataAccessorFactory<T>;
@@ -1 +0,0 @@
1
- {"version":3,"file":"accessor.batch.js","sourceRoot":"","sources":["../../../../../../packages/firebase/src/lib/firestore/accessor.batch.ts"],"names":[],"mappings":";;;AAAA,mDAA0H;AAC1H,+BAAwC;AAGxC;;GAEG;AACH,MAAa,uCAAuC;IAElD,YAAqB,KAAiB,EAAW,WAAiC;QAA7D,UAAK,GAAL,KAAK,CAAY;QAAW,gBAAW,GAAX,WAAW,CAAsB;IAAI,CAAC;IAEvF,MAAM;QACJ,OAAO,IAAA,WAAI,EAAC,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC;IAC1B,CAAC;IAED,GAAG;QACD,OAAO,IAAA,kBAAM,EAAC,IAAI,CAAC,WAAW,CAAC,CAAC;IAClC,CAAC;IAED,MAAM;QACJ,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;QACpC,OAAO,OAAO,CAAC,OAAO,EAAE,CAAC;IAC3B,CAAC;IAED,GAAG,CAAC,IAAuB;QACzB,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,WAAW,EAAE,IAAI,CAAC,CAAC;QACvC,OAAO,OAAO,CAAC,OAAO,EAAE,CAAC;IAC3B,CAAC;IAED,MAAM,CAAC,IAAmB;QACxB,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,WAAW,EAAE,IAAI,CAAC,CAAC;QAC1C,OAAO,OAAO,CAAC,OAAO,EAAE,CAAC;IAC3B,CAAC;CAEF;AA3BD,0FA2BC;AAED;;;;;GAKG;AACH,SAAgB,yBAAyB,CAAI,UAAsB;IACjE,OAAO;QACL,WAAW,EAAE,CAAC,GAAyB,EAAE,EAAE,CAAC,IAAI,uCAAuC,CAAC,UAAU,EAAE,GAAG,CAAC;KACzG,CAAC;AACJ,CAAC;AAJD,8DAIC"}
@@ -1,62 +0,0 @@
1
- import { Maybe } from "@dereekb/util";
2
- import { DocumentReference, DocumentSnapshot, UpdateData, WithFieldValue } from "@firebase/firestore";
3
- import { SnapshotOptions } from "firebase/firestore";
4
- import { Observable, OperatorFunction } from 'rxjs';
5
- import { FirestoreDocumentReference } from './reference';
6
- /**
7
- * Firestore database accessor instance used to retrieve and make changes to items in the database.
8
- */
9
- export interface FirestoreDocumentDataAccessor<T> extends FirestoreDocumentReference<T> {
10
- /**
11
- * Returns a database stream of DocumentSnapshots.
12
- */
13
- stream(): Observable<DocumentSnapshot<T>>;
14
- /**
15
- * Returns the current snapshot.
16
- */
17
- get(): Promise<DocumentSnapshot<T>>;
18
- /**
19
- * Deletes the document
20
- */
21
- delete(): Promise<void>;
22
- /**
23
- * Sets the data in the database.
24
- *
25
- * @param data
26
- */
27
- set(data: WithFieldValue<T>): Promise<void>;
28
- /**
29
- * Updates the data in the database.
30
- *
31
- * @param data
32
- */
33
- update(data: UpdateData<T>): Promise<void>;
34
- }
35
- /**
36
- * Contextual interface used for making a FirestoreDocumentModifier for a specific document.
37
- */
38
- export interface FirestoreDocumentDataAccessorFactory<T> {
39
- /**
40
- * Creates a new FirestoreDocumentDataAccessor for the input ref.
41
- *
42
- * @param ref
43
- */
44
- accessorFor(ref: DocumentReference<T>): FirestoreDocumentDataAccessor<T>;
45
- }
46
- /**
47
- * Maps data from the given snapshot stream.
48
- *
49
- * Maybe values are filtered from the stream until data is provided.
50
- *
51
- * @param stream
52
- * @param options
53
- * @returns
54
- */
55
- export declare function dataFromSnapshotStream<T>(stream: Observable<DocumentSnapshot<T>>, options?: SnapshotOptions): Observable<T>;
56
- /**
57
- * OperatorFunction to map data from the snapshot.
58
- *
59
- * @param options
60
- * @returns
61
- */
62
- export declare function mapDataFromSnapshot<T>(options?: SnapshotOptions): OperatorFunction<DocumentSnapshot<T>, Maybe<T>>;
@@ -1 +0,0 @@
1
- {"version":3,"file":"accessor.default.js","sourceRoot":"","sources":["../../../../../../packages/firebase/src/lib/firestore/accessor.default.ts"],"names":[],"mappings":";;;AAAA,mDAA4I;AAC5I,gDAA2C;AAI3C;;GAEG;AACH,MAAa,oCAAoC;IAE/C,YAAqB,WAAiC;QAAjC,gBAAW,GAAX,WAAW,CAAsB;IAAI,CAAC;IAE3D,MAAM;QACJ,OAAO,IAAA,mBAAO,EAAC,IAAI,CAAC,WAAW,CAAC,CAAC;IACnC,CAAC;IAED,GAAG;QACD,OAAO,IAAA,kBAAM,EAAC,IAAI,CAAC,WAAW,CAAC,CAAC;IAClC,CAAC;IAED,MAAM;QACJ,OAAO,IAAA,qBAAS,EAAC,IAAI,CAAC,WAAW,CAAC,CAAC;IACrC,CAAC;IAED,GAAG,CAAC,IAAuB;QACzB,OAAO,IAAA,kBAAM,EAAC,IAAI,CAAC,WAAW,EAAE,IAAI,CAAC,CAAC;IACxC,CAAC;IAED,MAAM,CAAC,IAAmB;QACxB,OAAO,IAAA,qBAAS,EAAC,IAAI,CAAC,WAAW,EAAE,IAAI,CAAC,CAAC;IAC3C,CAAC;CAEF;AAxBD,oFAwBC;AAED;;;;;GAKG;AACH,SAAgB,+BAA+B;IAC7C,OAAO;QACL,WAAW,EAAE,CAAC,GAAyB,EAAE,EAAE,CAAC,IAAI,oCAAoC,CAAC,GAAG,CAAC;KAC1F,CAAC;AACJ,CAAC;AAJD,0EAIC"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"accessor.js","sourceRoot":"","sources":["../../../../../../packages/firebase/src/lib/firestore/accessor.ts"],"names":[],"mappings":";;;AAAA,wCAA4C;AAI5C,+BAAyD;AA+CzD;;;;;;;;GAQG;AACH,SAAgB,sBAAsB,CAAI,MAAuC,EAAE,OAAyB;IAC1G,OAAO,MAAM,CAAC,IAAI,CAAC,mBAAmB,CAAC,OAAO,CAAC,EAAE,IAAA,kBAAW,GAAE,CAAC,CAAC;AAClE,CAAC;AAFD,wDAEC;AAED;;;;;GAKG;AACH,SAAgB,mBAAmB,CAAI,OAAyB;IAC9D,OAAO,IAAA,UAAG,EAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC;AACrC,CAAC;AAFD,kDAEC"}
@@ -1,23 +0,0 @@
1
- import { DocumentReference, DocumentSnapshot, Transaction, UpdateData, WithFieldValue } from "@firebase/firestore";
2
- import { Observable } from "rxjs";
3
- import { FirestoreDocumentDataAccessor, FirestoreDocumentDataAccessorFactory } from "./accessor";
4
- /**
5
- * FirestoreDocumentDataAccessor implementation for a transaction.
6
- */
7
- export declare class TransactionFirestoreDocumentDataAccessor<T> implements FirestoreDocumentDataAccessor<T> {
8
- readonly transaction: Transaction;
9
- readonly documentRef: DocumentReference<T>;
10
- constructor(transaction: Transaction, documentRef: DocumentReference<T>);
11
- stream(): Observable<DocumentSnapshot<T>>;
12
- get(): Promise<DocumentSnapshot<T>>;
13
- delete(): Promise<void>;
14
- set(data: WithFieldValue<T>): Promise<void>;
15
- update(data: UpdateData<T>): Promise<void>;
16
- }
17
- /**
18
- * Creates a new FirestoreDocumentDataAccessorFactory for a Transaction.
19
- *
20
- * @param transaction
21
- * @returns
22
- */
23
- export declare function transactionAccessorFactory<T>(transaction: Transaction): FirestoreDocumentDataAccessorFactory<T>;
@@ -1 +0,0 @@
1
- {"version":3,"file":"accessor.transaction.js","sourceRoot":"","sources":["../../../../../../packages/firebase/src/lib/firestore/accessor.transaction.ts"],"names":[],"mappings":";;;AACA,+BAAwC;AAGxC;;GAEG;AACH,MAAa,wCAAwC;IAEnD,YAAqB,WAAwB,EAAW,WAAiC;QAApE,gBAAW,GAAX,WAAW,CAAa;QAAW,gBAAW,GAAX,WAAW,CAAsB;IAAI,CAAC;IAE9F,MAAM;QACJ,OAAO,IAAA,WAAI,EAAC,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC;IAC1B,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;QACzB,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,IAAI,CAAC,WAAW,EAAE,IAAI,CAAC,CAAC;QAC7C,OAAO,OAAO,CAAC,OAAO,EAAE,CAAC;IAC3B,CAAC;IAED,MAAM,CAAC,IAAmB;QACxB,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,IAAI,CAAC,WAAW,EAAE,IAAI,CAAC,CAAC;QAChD,OAAO,OAAO,CAAC,OAAO,EAAE,CAAC;IAC3B,CAAC;CAEF;AA3BD,4FA2BC;AAED;;;;;GAKG;AACH,SAAgB,0BAA0B,CAAI,WAAwB;IACpE,OAAO;QACL,WAAW,EAAE,CAAC,GAAyB,EAAE,EAAE,CAAC,IAAI,wCAAwC,CAAC,WAAW,EAAE,GAAG,CAAC;KAC3G,CAAC;AACJ,CAAC;AAJD,gEAIC"}
@@ -1,9 +0,0 @@
1
- import { WriteBatch } from "@firebase/firestore";
2
- import { FirestoreDocumentContext, FirestoreDocumentContextType } from "./context";
3
- export declare class WriteBatchFirestoreDocumentContext<T> implements FirestoreDocumentContext<T> {
4
- readonly batch: WriteBatch;
5
- readonly contextType = FirestoreDocumentContextType.TRANSACTION;
6
- readonly accessorFactory: import("./accessor").FirestoreDocumentDataAccessorFactory<T>;
7
- constructor(batch: WriteBatch);
8
- }
9
- export declare function writeBatchDocumentContext<T>(batch: WriteBatch): WriteBatchFirestoreDocumentContext<T>;