@dereekb/firebase 2.0.0 → 4.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 (264) hide show
  1. package/CHANGELOG.md +43 -0
  2. package/package.json +24 -9
  3. package/src/index.d.ts +0 -1
  4. package/src/index.js +1 -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/test/CHANGELOG.md +5 -0
  178. package/test/README.md +11 -0
  179. package/test/package.json +28 -0
  180. package/test/src/index.d.ts +1 -0
  181. package/test/src/index.js +5 -0
  182. package/test/src/index.js.map +1 -0
  183. package/test/src/lib/client/firestore.authorized.d.ts +5 -0
  184. package/{src/test/firebase.context.js → test/src/lib/client/firestore.authorized.js} +4 -4
  185. package/test/src/lib/client/firestore.authorized.js.map +1 -0
  186. package/test/src/lib/client/firestore.d.ts +39 -0
  187. package/test/src/lib/client/firestore.js +90 -0
  188. package/test/src/lib/client/firestore.js.map +1 -0
  189. package/test/src/lib/client/firestore.mock.item.fixture.authorized.d.ts +6 -0
  190. package/test/src/lib/client/firestore.mock.item.fixture.authorized.js +12 -0
  191. package/test/src/lib/client/firestore.mock.item.fixture.authorized.js.map +1 -0
  192. package/test/src/lib/client/index.d.ts +3 -0
  193. package/test/src/lib/client/index.js +7 -0
  194. package/test/src/lib/client/index.js.map +1 -0
  195. package/test/src/lib/common/firestore.d.ts +35 -0
  196. package/test/src/lib/common/firestore.js +50 -0
  197. package/test/src/lib/common/firestore.js.map +1 -0
  198. package/test/src/lib/common/firestore.mock.d.ts +14 -0
  199. package/test/src/lib/common/firestore.mock.item.d.ts +95 -0
  200. package/test/src/lib/common/firestore.mock.item.fixture.d.ts +21 -0
  201. package/test/src/lib/common/firestore.mock.item.fixture.js +43 -0
  202. package/test/src/lib/common/firestore.mock.item.fixture.js.map +1 -0
  203. package/test/src/lib/common/firestore.mock.item.js +138 -0
  204. package/test/src/lib/common/firestore.mock.item.js.map +1 -0
  205. package/test/src/lib/common/firestore.mock.item.query.d.ts +3 -0
  206. package/test/src/lib/common/firestore.mock.item.query.js +13 -0
  207. package/test/src/lib/common/firestore.mock.item.query.js.map +1 -0
  208. package/test/src/lib/common/firestore.mock.js +29 -0
  209. package/test/src/lib/common/firestore.mock.js.map +1 -0
  210. package/test/src/lib/common/index.d.ts +8 -0
  211. package/test/src/lib/common/index.js +12 -0
  212. package/test/src/lib/common/index.js.map +1 -0
  213. package/test/src/lib/common/test.driver.accessor.d.ts +17 -0
  214. package/test/src/lib/common/test.driver.accessor.js +278 -0
  215. package/test/src/lib/common/test.driver.accessor.js.map +1 -0
  216. package/test/src/lib/common/test.driver.query.d.ts +7 -0
  217. package/test/src/lib/common/test.driver.query.js +189 -0
  218. package/test/src/lib/common/test.driver.query.js.map +1 -0
  219. package/test/src/lib/common/test.iterator.d.ts +7 -0
  220. package/test/src/lib/common/test.iterator.js +222 -0
  221. package/test/src/lib/common/test.iterator.js.map +1 -0
  222. package/test/src/lib/index.d.ts +2 -0
  223. package/test/src/lib/index.js +6 -0
  224. package/test/src/lib/index.js.map +1 -0
  225. package/src/lib/firestore/accessor.batch.d.ts +0 -23
  226. package/src/lib/firestore/accessor.batch.js.map +0 -1
  227. package/src/lib/firestore/accessor.d.ts +0 -62
  228. package/src/lib/firestore/accessor.default.js.map +0 -1
  229. package/src/lib/firestore/accessor.js.map +0 -1
  230. package/src/lib/firestore/accessor.transaction.d.ts +0 -23
  231. package/src/lib/firestore/accessor.transaction.js.map +0 -1
  232. package/src/lib/firestore/context.batch.d.ts +0 -9
  233. package/src/lib/firestore/context.batch.js +0 -19
  234. package/src/lib/firestore/context.batch.js.map +0 -1
  235. package/src/lib/firestore/context.default.d.ts +0 -2
  236. package/src/lib/firestore/context.default.js +0 -13
  237. package/src/lib/firestore/context.default.js.map +0 -1
  238. package/src/lib/firestore/context.js.map +0 -1
  239. package/src/lib/firestore/context.transaction.d.ts +0 -9
  240. package/src/lib/firestore/context.transaction.js +0 -19
  241. package/src/lib/firestore/context.transaction.js.map +0 -1
  242. package/src/lib/firestore/document.d.ts +0 -69
  243. package/src/lib/firestore/document.js +0 -49
  244. package/src/lib/firestore/document.js.map +0 -1
  245. package/src/lib/firestore/firestore.d.ts +0 -29
  246. package/src/lib/firestore/firestore.js +0 -37
  247. package/src/lib/firestore/firestore.js.map +0 -1
  248. package/src/lib/firestore/index.js +0 -16
  249. package/src/lib/firestore/index.js.map +0 -1
  250. package/src/lib/firestore/iterator.js +0 -91
  251. package/src/lib/firestore/iterator.js.map +0 -1
  252. package/src/lib/firestore/reference.d.ts +0 -13
  253. package/src/lib/firestore/reference.js.map +0 -1
  254. package/src/test/firebase.context.d.ts +0 -5
  255. package/src/test/firebase.context.item.d.ts +0 -41
  256. package/src/test/firebase.context.item.js +0 -75
  257. package/src/test/firebase.context.item.js.map +0 -1
  258. package/src/test/firebase.context.js.map +0 -1
  259. package/src/test/firebase.d.ts +0 -29
  260. package/src/test/firebase.js +0 -67
  261. package/src/test/firebase.js.map +0 -1
  262. package/src/test/index.d.ts +0 -3
  263. package/src/test/index.js +0 -7
  264. package/src/test/index.js.map +0 -1
@@ -0,0 +1,37 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.firestoreQueryFactory = void 0;
4
+ const tslib_1 = require("tslib");
5
+ const util_1 = require("@dereekb/util");
6
+ const constraint_1 = require("./constraint");
7
+ /**
8
+ * Creates a FirestoreCollectionQuery.
9
+ *
10
+ * @param config
11
+ * @returns
12
+ */
13
+ function firestoreQueryFactory(config) {
14
+ const { collection, firestoreQueryDriver: driver } = config;
15
+ const { getDocs, streamDocs, query: makeQuery } = driver;
16
+ const extendQuery = (inputQuery, queryConstraints) => {
17
+ const allConstraints = (0, util_1.flattenArrayOrValueArray)(queryConstraints);
18
+ const query = makeQuery(inputQuery, ...allConstraints);
19
+ return {
20
+ query,
21
+ getFirstDoc: (transaction) => tslib_1.__awaiter(this, void 0, void 0, function* () {
22
+ const contraintsForOneDoc = (0, constraint_1.addOrReplaceLimitInConstraints)(1)(allConstraints);
23
+ const query = makeQuery(inputQuery, ...contraintsForOneDoc);
24
+ const result = yield getDocs(query, transaction);
25
+ return result.docs[0];
26
+ }),
27
+ getDocs: (transaction) => getDocs(query, transaction),
28
+ streamDocs: () => streamDocs(query),
29
+ filter: (...queryConstraints) => extendQuery(query, queryConstraints)
30
+ };
31
+ };
32
+ return {
33
+ query: (...queryConstraints) => extendQuery(collection, queryConstraints)
34
+ };
35
+ }
36
+ exports.firestoreQueryFactory = firestoreQueryFactory;
37
+ //# sourceMappingURL=query.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"query.js","sourceRoot":"","sources":["../../../../../../../../packages/firebase/src/lib/common/firestore/query/query.ts"],"names":[],"mappings":";;;;AACA,wCAA8E;AAG9E,6CAAwF;AA2CxF;;;;;GAKG;AACH,SAAgB,qBAAqB,CAAI,MAA+B;IACtE,MAAM,EAAE,UAAU,EAAE,oBAAoB,EAAE,MAAM,EAAE,GAAG,MAAM,CAAC;IAC5D,MAAM,EAAE,OAAO,EAAE,UAAU,EAAE,KAAK,EAAE,SAAS,EAAE,GAAG,MAAM,CAAC;IAEzD,MAAM,WAAW,GAAG,CAAC,UAAoB,EAAE,gBAA0D,EAAE,EAAE;QACvG,MAAM,cAAc,GAAG,IAAA,+BAAwB,EAAC,gBAAgB,CAAC,CAAC;QAClE,MAAM,KAAK,GAAG,SAAS,CAAC,UAAU,EAAE,GAAG,cAAc,CAAC,CAAC;QAEvD,OAAO;YACL,KAAK;YACL,WAAW,EAAE,CAAO,WAAyB,EAAE,EAAE;gBAC/C,MAAM,mBAAmB,GAAG,IAAA,2CAA8B,EAAC,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC;gBAC9E,MAAM,KAAK,GAAG,SAAS,CAAC,UAAU,EAAE,GAAG,mBAAmB,CAAC,CAAC;gBAC5D,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC,KAAK,EAAE,WAAW,CAAC,CAAC;gBACjD,OAAO,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YACxB,CAAC,CAAA;YACD,OAAO,EAAE,CAAC,WAAyB,EAAE,EAAE,CAAC,OAAO,CAAC,KAAK,EAAE,WAAW,CAAC;YACnE,UAAU,EAAE,GAAG,EAAE,CAAC,UAAU,CAAC,KAAK,CAAC;YACnC,MAAM,EAAE,CAAC,GAAG,gBAA0D,EAAE,EAAE,CAAC,WAAW,CAAC,KAAK,EAAE,gBAAgB,CAAC;SAChH,CAAC;IACJ,CAAC,CAAC;IAEF,OAAO;QACL,KAAK,EAAE,CAAC,GAAG,gBAA0D,EAAE,EAAE,CAAC,WAAW,CAAC,UAAU,EAAE,gBAAgB,CAAC;KACpH,CAAC;AACJ,CAAC;AAzBD,sDAyBC"}
@@ -0,0 +1,16 @@
1
+ import { DocumentReference, QuerySnapshot } from './../types';
2
+ import { Observable } from "rxjs";
3
+ export interface StreamDocsWithOnSnapshotFunctionParams<O> {
4
+ next: (value?: O | undefined) => void;
5
+ error: (err?: any) => void;
6
+ complete: () => void;
7
+ }
8
+ export declare type StreamDocsUnsubscribeFunction = () => void;
9
+ /**
10
+ * Use to build an Observable that reacts to OnSnapshot events from queries.
11
+ *
12
+ * @param callOnSnapshot
13
+ * @returns
14
+ */
15
+ export declare function streamFromOnSnapshot<O>(callOnSnapshot: (params: StreamDocsWithOnSnapshotFunctionParams<O>) => StreamDocsUnsubscribeFunction): Observable<O>;
16
+ export declare function documentReferencesFromSnapshot<T>(snapshots: QuerySnapshot<T>): DocumentReference<T>[];
@@ -0,0 +1,27 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.documentReferencesFromSnapshot = exports.streamFromOnSnapshot = void 0;
4
+ const rxjs_1 = require("rxjs");
5
+ ;
6
+ /**
7
+ * Use to build an Observable that reacts to OnSnapshot events from queries.
8
+ *
9
+ * @param callOnSnapshot
10
+ * @returns
11
+ */
12
+ function streamFromOnSnapshot(callOnSnapshot) {
13
+ return new rxjs_1.Observable((subscriber) => {
14
+ const unsubscribe = callOnSnapshot({
15
+ next: subscriber.next.bind(subscriber),
16
+ error: subscriber.error.bind(subscriber),
17
+ complete: subscriber.complete.bind(subscriber),
18
+ });
19
+ return { unsubscribe };
20
+ });
21
+ }
22
+ exports.streamFromOnSnapshot = streamFromOnSnapshot;
23
+ function documentReferencesFromSnapshot(snapshots) {
24
+ return snapshots.docs.map(x => x.ref);
25
+ }
26
+ exports.documentReferencesFromSnapshot = documentReferencesFromSnapshot;
27
+ //# sourceMappingURL=query.util.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"query.util.js","sourceRoot":"","sources":["../../../../../../../../packages/firebase/src/lib/common/firestore/query/query.util.ts"],"names":[],"mappings":";;;AACA,+BAAkC;AAOjC,CAAC;AAIF;;;;;GAKG;AACH,SAAgB,oBAAoB,CAAI,cAAoG;IAC1I,OAAO,IAAI,iBAAU,CAAC,CAAC,UAAU,EAAE,EAAE;QACnC,MAAM,WAAW,GAAG,cAAc,CAAC;YACjC,IAAI,EAAE,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC;YACtC,KAAK,EAAE,UAAU,CAAC,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC;YACxC,QAAQ,EAAE,UAAU,CAAC,QAAQ,CAAC,IAAI,CAAC,UAAU,CAAC;SAC/C,CAAC,CAAC;QACH,OAAO,EAAE,WAAW,EAAE,CAAC;IACzB,CAAC,CAAC,CAAC;AACL,CAAC;AATD,oDASC;AAED,SAAgB,8BAA8B,CAAI,SAA2B;IAC3E,OAAO,SAAS,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;AACxC,CAAC;AAFD,wEAEC"}
@@ -0,0 +1,34 @@
1
+ import { Observable } from 'rxjs';
2
+ import { DocumentChange, QuerySnapshot } from '../types';
3
+ import { FirestoreItemPageIterationInstance } from "./iterator";
4
+ export declare const DEFAULT_QUERY_CHANGE_WATCHER_DELAY = 0;
5
+ export interface IterationQueryDocChangeWatcherConfig<T = any> {
6
+ readonly instance: FirestoreItemPageIterationInstance<T>;
7
+ readonly delay?: number;
8
+ }
9
+ /**
10
+ * Interface for watching query result changes events.
11
+ */
12
+ export interface IterationQueryDocChangeWatcher<T = any> {
13
+ /**
14
+ * Streams all subsequent query changes.
15
+ */
16
+ readonly stream$: Observable<QuerySnapshot<T>>;
17
+ /**
18
+ * Event stream
19
+ */
20
+ readonly event$: Observable<IterationQueryDocChangeWatcherEvent<T>>;
21
+ }
22
+ export interface IterationQueryDocChangeWatcherEvent<T = any> extends IterationQueryDocChangeWatcherChangeGroup<T> {
23
+ readonly time: Date;
24
+ readonly changes: DocumentChange<T>[];
25
+ readonly type: IterationQueryDocChangeWatcherChangeType;
26
+ }
27
+ export interface IterationQueryDocChangeWatcherChangeGroup<T = any> {
28
+ readonly added: DocumentChange<T>[];
29
+ readonly removed: DocumentChange<T>[];
30
+ readonly modified: DocumentChange<T>[];
31
+ }
32
+ export declare type IterationQueryDocChangeWatcherChangeType = 'addedAndRemoved' | 'added' | 'removed' | 'modified' | 'none';
33
+ export declare function iterationQueryDocChangeWatcher<T = any>(config: IterationQueryDocChangeWatcherConfig<T>): IterationQueryDocChangeWatcher<T>;
34
+ export declare function iterationQueryDocChangeWatcherChangeTypeForGroup<T = any>(group: IterationQueryDocChangeWatcherChangeGroup<T>): IterationQueryDocChangeWatcherChangeType;
@@ -0,0 +1,58 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.iterationQueryDocChangeWatcherChangeTypeForGroup = exports.iterationQueryDocChangeWatcher = exports.DEFAULT_QUERY_CHANGE_WATCHER_DELAY = void 0;
4
+ const util_1 = require("@dereekb/util");
5
+ const date_1 = require("@dereekb/date");
6
+ const rxjs_1 = require("rxjs");
7
+ exports.DEFAULT_QUERY_CHANGE_WATCHER_DELAY = 0;
8
+ function iterationQueryDocChangeWatcher(config) {
9
+ const { instance, delay: timeUntilActive = exports.DEFAULT_QUERY_CHANGE_WATCHER_DELAY } = config;
10
+ const stream$ = instance.snapshotIteration.firstSuccessfulPageResults$.pipe((0, rxjs_1.switchMap)((first) => {
11
+ var _a;
12
+ const { time, stream } = first.value.value;
13
+ const beginCheckingAt = (0, date_1.toExpires)(time, timeUntilActive);
14
+ // don't start streaming until the given moment.
15
+ return (0, rxjs_1.timer)((_a = beginCheckingAt.expiresAt) !== null && _a !== void 0 ? _a : new Date()).pipe((0, rxjs_1.switchMap)(() => stream().pipe((0, rxjs_1.skip)(1) // skip the first value, as it should be equivalent to the query results given.
16
+ )));
17
+ }), (0, rxjs_1.shareReplay)(1));
18
+ const event$ = stream$.pipe((0, rxjs_1.map)(event => {
19
+ var _a, _b, _c;
20
+ const changes = event.docChanges();
21
+ const results = (0, util_1.groupValues)(changes, (x) => x.type);
22
+ results.time = new Date();
23
+ results.changes = changes;
24
+ results.added = (_a = results.added) !== null && _a !== void 0 ? _a : [];
25
+ results.removed = (_b = results.removed) !== null && _b !== void 0 ? _b : [];
26
+ results.modified = (_c = results.modified) !== null && _c !== void 0 ? _c : [];
27
+ results.type = iterationQueryDocChangeWatcherChangeTypeForGroup(results);
28
+ return results;
29
+ }), (0, rxjs_1.shareReplay)(1));
30
+ return {
31
+ stream$,
32
+ event$
33
+ };
34
+ }
35
+ exports.iterationQueryDocChangeWatcher = iterationQueryDocChangeWatcher;
36
+ function iterationQueryDocChangeWatcherChangeTypeForGroup(group) {
37
+ const hasAdded = group.added.length > 0;
38
+ const hasRemoved = group.removed.length > 0;
39
+ let type;
40
+ if (hasAdded && hasRemoved) {
41
+ type = 'addedAndRemoved';
42
+ }
43
+ else if (hasAdded) {
44
+ type = 'added';
45
+ }
46
+ else if (hasRemoved) {
47
+ type = 'removed';
48
+ }
49
+ else if (group.modified.length > 0) {
50
+ type = 'modified';
51
+ }
52
+ else {
53
+ type = 'none';
54
+ }
55
+ return type;
56
+ }
57
+ exports.iterationQueryDocChangeWatcherChangeTypeForGroup = iterationQueryDocChangeWatcherChangeTypeForGroup;
58
+ //# sourceMappingURL=watcher.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"watcher.js","sourceRoot":"","sources":["../../../../../../../../packages/firebase/src/lib/common/firestore/query/watcher.ts"],"names":[],"mappings":";;;AAAA,wCAA4C;AAC5C,wCAA0C;AAC1C,+BAA4E;AAI/D,QAAA,kCAAkC,GAAG,CAAC,CAAC;AAsCpD,SAAgB,8BAA8B,CAAU,MAA+C;IACrG,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE,eAAe,GAAG,0CAAkC,EAAE,GAAG,MAAM,CAAC;IAEzF,MAAM,OAAO,GAAG,QAAQ,CAAC,iBAAiB,CAAC,2BAA2B,CAAC,IAAI,CACzE,IAAA,gBAAS,EAAC,CAAC,KAAK,EAAE,EAAE;;QAClB,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,KAAK,CAAC,KAAM,CAAC,KAAM,CAAC;QAC7C,MAAM,eAAe,GAAG,IAAA,gBAAS,EAAC,IAAI,EAAE,eAAe,CAAC,CAAC;QAEzD,gDAAgD;QAChD,OAAO,IAAA,YAAK,EAAC,MAAA,eAAe,CAAC,SAAS,mCAAI,IAAI,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,IAAA,gBAAS,EAAC,GAAG,EAAE,CAAC,MAAM,EAAE,CAAC,IAAI,CACtF,IAAA,WAAI,EAAC,CAAC,CAAC,CAAE,+EAA+E;SACzF,CAAC,CAAC,CAAC;IACN,CAAC,CAAC,EACF,IAAA,kBAAW,EAAC,CAAC,CAAC,CACf,CAAC;IAEF,MAAM,MAAM,GAAG,OAAO,CAAC,IAAI,CACzB,IAAA,UAAG,EAAC,KAAK,CAAC,EAAE;;QACV,MAAM,OAAO,GAAG,KAAK,CAAC,UAAU,EAAE,CAAC;QAEnC,MAAM,OAAO,GAAQ,IAAA,kBAAW,EAAC,OAAO,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;QACzD,OAAO,CAAC,IAAI,GAAG,IAAI,IAAI,EAAE,CAAC;QAC1B,OAAO,CAAC,OAAO,GAAG,OAAO,CAAC;QAC1B,OAAO,CAAC,KAAK,GAAG,MAAA,OAAO,CAAC,KAAK,mCAAI,EAAE,CAAC;QACpC,OAAO,CAAC,OAAO,GAAG,MAAA,OAAO,CAAC,OAAO,mCAAI,EAAE,CAAC;QACxC,OAAO,CAAC,QAAQ,GAAG,MAAA,OAAO,CAAC,QAAQ,mCAAI,EAAE,CAAC;QAC1C,OAAO,CAAC,IAAI,GAAG,gDAAgD,CAAC,OAAO,CAAC,CAAC;QAEzE,OAAO,OAAiD,CAAC;IAC3D,CAAC,CAAC,EACF,IAAA,kBAAW,EAAC,CAAC,CAAC,CACf,CAAC;IAEF,OAAO;QACL,OAAO;QACP,MAAM;KACP,CAAC;AACJ,CAAC;AArCD,wEAqCC;AAED,SAAgB,gDAAgD,CAAU,KAAmD;IAC3H,MAAM,QAAQ,GAAG,KAAK,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC;IACxC,MAAM,UAAU,GAAG,KAAK,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC;IAC5C,IAAI,IAA8C,CAAC;IAEnD,IAAI,QAAQ,IAAI,UAAU,EAAE;QAC1B,IAAI,GAAG,iBAAiB,CAAC;KAC1B;SAAM,IAAI,QAAQ,EAAE;QACnB,IAAI,GAAG,OAAO,CAAC;KAChB;SAAM,IAAI,UAAU,EAAE;QACrB,IAAI,GAAG,SAAS,CAAC;KAClB;SAAM,IAAI,KAAK,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE;QACpC,IAAI,GAAG,UAAU,CAAC;KACnB;SAAM;QACL,IAAI,GAAG,MAAM,CAAC;KACf;IAED,OAAO,IAAI,CAAC;AACd,CAAC;AAlBD,4GAkBC"}
@@ -0,0 +1,20 @@
1
+ import { FirestoreContext } from "./context";
2
+ import { CollectionReference, DocumentReference, Firestore } from "./types";
3
+ /**
4
+ * Contains a reference to a CollectionReference.
5
+ */
6
+ export interface CollectionReferenceRef<T> {
7
+ readonly collection: CollectionReference<T>;
8
+ }
9
+ /**
10
+ * Contains a reference to a DocumentReference.
11
+ */
12
+ export interface DocumentReferenceRef<T> {
13
+ readonly documentRef: DocumentReference<T>;
14
+ }
15
+ /**
16
+ * Contains a reference to a FirestoreContext.
17
+ */
18
+ export interface FirestoreContextReference<F extends Firestore = Firestore> {
19
+ readonly firestoreContext: FirestoreContext<F>;
20
+ }
@@ -0,0 +1 @@
1
+ {"version":3,"file":"reference.js","sourceRoot":"","sources":["../../../../../../../packages/firebase/src/lib/common/firestore/reference.ts"],"names":[],"mappings":""}
@@ -0,0 +1,2 @@
1
+ export * from './snapshot';
2
+ export * from './snapshot.field';
@@ -0,0 +1,6 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const tslib_1 = require("tslib");
4
+ tslib_1.__exportStar(require("./snapshot"), exports);
5
+ tslib_1.__exportStar(require("./snapshot.field"), exports);
6
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../../../../packages/firebase/src/lib/common/firestore/snapshot/index.ts"],"names":[],"mappings":";;;AAAA,qDAA2B;AAC3B,2DAAiC"}
@@ -0,0 +1,13 @@
1
+ import { ModelFieldsConversionConfig, ApplyMapFunctionWithOptions } from "@dereekb/util";
2
+ import { DocumentData, SnapshotOptions, SetOptions, DocumentSnapshot, FirestoreDataConverter } from "../types";
3
+ export interface SnapshotConverterConfig<T extends object> {
4
+ fields: ModelFieldsConversionConfig<T>;
5
+ }
6
+ export interface SnapshotConverterFunctions<T extends object> extends FirestoreDataConverter<T> {
7
+ from: SnapshotConverterFromFunction<T>;
8
+ to: SnapshotConverterToFunction<T>;
9
+ }
10
+ export declare type SnapshotConverterFromFirestoreFunction<T extends object> = (snapshot: DocumentSnapshot, options?: SnapshotOptions) => T;
11
+ export declare type SnapshotConverterFromFunction<T extends object> = ApplyMapFunctionWithOptions<DocumentSnapshot, T, SnapshotOptions>;
12
+ export declare type SnapshotConverterToFunction<T extends object> = ApplyMapFunctionWithOptions<T, DocumentData, SetOptions>;
13
+ export declare function makeSnapshotConverterFunctions<T extends object>(config: SnapshotConverterConfig<T>): SnapshotConverterFunctions<T>;
@@ -0,0 +1,25 @@
1
+ import { MapFunction, ModelFieldConversionConfig, GetterOrValue } from '@dereekb/util';
2
+ export declare type FirestoreDatastoreType = any;
3
+ export interface FirestoreFieldConfig<V, D = any> {
4
+ default?: GetterOrValue<V>;
5
+ defaultBeforeSave?: GetterOrValue<D | null>;
6
+ fromData: MapFunction<D, V>;
7
+ toData: MapFunction<V, D>;
8
+ }
9
+ export interface DefaultOnlyFirestoreFieldConfig<V, D = any> extends Pick<FirestoreFieldConfig<V, D>, 'default' | 'defaultBeforeSave'> {
10
+ }
11
+ export declare function firestoreField<V, D = any>(config: FirestoreFieldConfig<V, D>): ModelFieldConversionConfig<V, D>;
12
+ export interface FirestoreStringFieldConfig extends DefaultOnlyFirestoreFieldConfig<string, string> {
13
+ }
14
+ export declare function firestoreString(config?: FirestoreStringFieldConfig): ModelFieldConversionConfig<string, string>;
15
+ export declare function firestoreUID(): ModelFieldConversionConfig<string, string>;
16
+ export interface FirestoreDateFieldConfig extends DefaultOnlyFirestoreFieldConfig<Date, string> {
17
+ saveDefaultAsNow?: boolean;
18
+ }
19
+ export declare function firestoreDate(config?: FirestoreDateFieldConfig): ModelFieldConversionConfig<Date, string>;
20
+ export interface FirestoreBooleanFieldConfig extends DefaultOnlyFirestoreFieldConfig<boolean, boolean> {
21
+ }
22
+ export declare function firestoreBoolean(config?: FirestoreBooleanFieldConfig): ModelFieldConversionConfig<boolean, boolean>;
23
+ export interface FirestoreNumberFieldConfig extends DefaultOnlyFirestoreFieldConfig<number, number> {
24
+ }
25
+ export declare function firestoreNumber(config?: FirestoreNumberFieldConfig): ModelFieldConversionConfig<number, number>;
@@ -0,0 +1,57 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.firestoreNumber = exports.firestoreBoolean = exports.firestoreDate = exports.firestoreUID = exports.firestoreString = exports.firestoreField = void 0;
4
+ const date_1 = require("@dereekb/date");
5
+ function firestoreField(config) {
6
+ var _a;
7
+ return {
8
+ from: {
9
+ default: config.default,
10
+ convert: config.fromData
11
+ },
12
+ to: {
13
+ default: (_a = config.defaultBeforeSave) !== null && _a !== void 0 ? _a : null,
14
+ convert: config.toData
15
+ }
16
+ };
17
+ }
18
+ exports.firestoreField = firestoreField;
19
+ function firestoreString(config = {}) {
20
+ return firestoreField({
21
+ default: config.default,
22
+ fromData: (input) => input,
23
+ toData: (input) => input
24
+ });
25
+ }
26
+ exports.firestoreString = firestoreString;
27
+ function firestoreUID() {
28
+ return firestoreString({});
29
+ }
30
+ exports.firestoreUID = firestoreUID;
31
+ function firestoreDate(config = {}) {
32
+ var _a;
33
+ return firestoreField({
34
+ default: config.default,
35
+ defaultBeforeSave: (_a = config.defaultBeforeSave) !== null && _a !== void 0 ? _a : (config.saveDefaultAsNow ? () => (0, date_1.toISODateString)(new Date()) : null),
36
+ fromData: (input) => (0, date_1.toJsDate)(input),
37
+ toData: (input) => (0, date_1.toISODateString)(input)
38
+ });
39
+ }
40
+ exports.firestoreDate = firestoreDate;
41
+ function firestoreBoolean(config = {}) {
42
+ return firestoreField({
43
+ default: config.default,
44
+ fromData: (input) => input,
45
+ toData: (input) => input
46
+ });
47
+ }
48
+ exports.firestoreBoolean = firestoreBoolean;
49
+ function firestoreNumber(config = {}) {
50
+ return firestoreField({
51
+ default: config.default,
52
+ fromData: (input) => input,
53
+ toData: (input) => input
54
+ });
55
+ }
56
+ exports.firestoreNumber = firestoreNumber;
57
+ //# sourceMappingURL=snapshot.field.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"snapshot.field.js","sourceRoot":"","sources":["../../../../../../../../packages/firebase/src/lib/common/firestore/snapshot/snapshot.field.ts"],"names":[],"mappings":";;;AAAA,wCAA0D;AAc1D,SAAgB,cAAc,CAAa,MAAkC;;IAC3E,OAAO;QACL,IAAI,EAAE;YACJ,OAAO,EAAE,MAAM,CAAC,OAAO;YACvB,OAAO,EAAE,MAAM,CAAC,QAAQ;SACzB;QACD,EAAE,EAAE;YACF,OAAO,EAAE,MAAA,MAAM,CAAC,iBAAiB,mCAAI,IAAW;YAChD,OAAO,EAAE,MAAM,CAAC,MAAM;SACvB;KACF,CAAA;AACH,CAAC;AAXD,wCAWC;AAID,SAAgB,eAAe,CAAC,SAAqC,EAAE;IACrE,OAAO,cAAc,CAAC;QACpB,OAAO,EAAE,MAAM,CAAC,OAAO;QACvB,QAAQ,EAAE,CAAC,KAAa,EAAE,EAAE,CAAC,KAAK;QAClC,MAAM,EAAE,CAAC,KAAa,EAAE,EAAE,CAAC,KAAK;KACjC,CAAC,CAAC;AACL,CAAC;AAND,0CAMC;AAED,SAAgB,YAAY;IAC1B,OAAO,eAAe,CAAC,EAAE,CAAC,CAAC;AAC7B,CAAC;AAFD,oCAEC;AAMD,SAAgB,aAAa,CAAC,SAAmC,EAAE;;IACjE,OAAO,cAAc,CAAe;QAClC,OAAO,EAAE,MAAM,CAAC,OAAO;QACvB,iBAAiB,EAAE,MAAA,MAAM,CAAC,iBAAiB,mCAAI,CAAC,MAAM,CAAC,gBAAgB,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,IAAA,sBAAe,EAAC,IAAI,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;QACnH,QAAQ,EAAE,CAAC,KAAa,EAAE,EAAE,CAAC,IAAA,eAAQ,EAAC,KAAK,CAAC;QAC5C,MAAM,EAAE,CAAC,KAAW,EAAE,EAAE,CAAC,IAAA,sBAAe,EAAC,KAAK,CAAC;KAChD,CAAC,CAAC;AACL,CAAC;AAPD,sCAOC;AAID,SAAgB,gBAAgB,CAAC,SAAsC,EAAE;IACvE,OAAO,cAAc,CAAC;QACpB,OAAO,EAAE,MAAM,CAAC,OAAO;QACvB,QAAQ,EAAE,CAAC,KAAc,EAAE,EAAE,CAAC,KAAK;QACnC,MAAM,EAAE,CAAC,KAAc,EAAE,EAAE,CAAC,KAAK;KAClC,CAAC,CAAC;AACL,CAAC;AAND,4CAMC;AAID,SAAgB,eAAe,CAAC,SAAqC,EAAE;IACrE,OAAO,cAAc,CAAC;QACpB,OAAO,EAAE,MAAM,CAAC,OAAO;QACvB,QAAQ,EAAE,CAAC,KAAa,EAAE,EAAE,CAAC,KAAK;QAClC,MAAM,EAAE,CAAC,KAAa,EAAE,EAAE,CAAC,KAAK;KACjC,CAAC,CAAC;AACL,CAAC;AAND,0CAMC"}
@@ -0,0 +1,35 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.makeSnapshotConverterFunctions = void 0;
4
+ const util_1 = require("@dereekb/util");
5
+ const types_1 = require("../types");
6
+ function makeSnapshotConverterFunctions(config) {
7
+ const { from: fromData, to: toData } = (0, util_1.makeModelMapFunctions)(config.fields);
8
+ const from = (input, target, options) => {
9
+ const data = input.data();
10
+ return fromData(data, target);
11
+ };
12
+ const to = (input, target, options) => {
13
+ let toOptions;
14
+ if (options) {
15
+ const mergeFields = options.mergeFields;
16
+ if (options.merge) {
17
+ toOptions = {
18
+ definedOnly: true
19
+ };
20
+ }
21
+ if (mergeFields) {
22
+ toOptions = Object.assign(Object.assign({}, toOptions), { fields: (0, types_1.asTopLevelFieldPaths)(mergeFields) });
23
+ }
24
+ }
25
+ return toData(input, target, toOptions);
26
+ };
27
+ return {
28
+ from,
29
+ to,
30
+ fromFirestore: (snapshot, options) => from(snapshot, undefined, options),
31
+ toFirestore: (modelObject, options) => to(modelObject, undefined, options)
32
+ };
33
+ }
34
+ exports.makeSnapshotConverterFunctions = makeSnapshotConverterFunctions;
35
+ //# sourceMappingURL=snapshot.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"snapshot.js","sourceRoot":"","sources":["../../../../../../../../packages/firebase/src/lib/common/firestore/snapshot/snapshot.ts"],"names":[],"mappings":";;;AAAA,wCAA+I;AAC/I,oCAAoN;AAgBpN,SAAgB,8BAA8B,CAAmB,MAAkC;IACjG,MAAM,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE,EAAE,MAAM,EAAE,GAAG,IAAA,4BAAqB,EAAC,MAAM,CAAC,MAAM,CAAC,CAAC;IAE5E,MAAM,IAAI,GAAqC,CAAC,KAAuB,EAAE,MAA0B,EAAE,OAAgC,EAAE,EAAE;QACvI,MAAM,IAAI,GAAG,KAAK,CAAC,IAAI,EAAE,CAAC;QAC1B,OAAO,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;IAChC,CAAC,CAAC;IAEF,MAAM,EAAE,GAAmC,CAAC,KAAQ,EAAE,MAAqC,EAAE,OAA2B,EAAE,EAAE;QAC1H,IAAI,SAAmD,CAAC;QAExD,IAAI,OAAO,EAAE;YACX,MAAM,WAAW,GAAI,OAAiC,CAAC,WAAW,CAAC;YAEnE,IAAK,OAA2B,CAAC,KAAK,EAAE;gBACtC,SAAS,GAAG;oBACV,WAAW,EAAE,IAAI;iBAClB,CAAC;aACH;YAED,IAAI,WAAW,EAAE;gBACf,SAAS,mCACJ,SAAS,KACZ,MAAM,EAAE,IAAA,4BAAoB,EAAC,WAAW,CAAgB,GACzD,CAAC;aACH;SACF;QAED,OAAO,MAAM,CAAC,KAAK,EAAE,MAAM,EAAE,SAAS,CAAC,CAAC;IAC1C,CAAC,CAAC;IAEF,OAAO;QACL,IAAI;QACJ,EAAE;QACF,aAAa,EAAE,CAAC,QAA0B,EAAE,OAAyB,EAAE,EAAE,CAAC,IAAI,CAAC,QAAQ,EAAE,SAAS,EAAE,OAAO,CAAC;QAC5G,WAAW,EAAE,CAAC,WAAyD,EAAE,OAAoB,EAAE,EAAE,CAAC,EAAE,CAAC,WAAgB,EAAE,SAAS,EAAE,OAAO,CAAC;KAC3I,CAAA;AACH,CAAC;AArCD,wEAqCC"}
@@ -0,0 +1,145 @@
1
+ export declare type FirebaseFirestoreLikeFirestore = {
2
+ type: string;
3
+ };
4
+ export declare type GoogleCloudLikeFirestore = {
5
+ terminate(): Promise<void>;
6
+ };
7
+ /**
8
+ * Cast to the local type's firestore if direct access is needed. In most cases, direct access to this type is unncessary.
9
+ */
10
+ export declare type Firestore = FirebaseFirestoreLikeFirestore | GoogleCloudLikeFirestore;
11
+ export declare type Primitive = string | number | boolean | undefined | null;
12
+ export interface FieldValue {
13
+ isEqual(other: FieldValue): boolean;
14
+ }
15
+ export declare type PartialWithFieldValue<T> = Partial<T> | (T extends Primitive ? T : T extends {} ? {
16
+ [K in keyof T]?: PartialWithFieldValue<T[K]> | FieldValue;
17
+ } : never);
18
+ export declare type WithFieldValue<T> = T | (T extends Primitive ? T : T extends {} ? {
19
+ [K in keyof T]: WithFieldValue<T[K]> | FieldValue;
20
+ } : never);
21
+ export declare type UnionToIntersection<U> = (U extends unknown ? (k: U) => void : never) extends (k: infer I) => void ? I : never;
22
+ export declare type AddPrefixToKeys<Prefix extends string, T extends Record<string, unknown>> = {
23
+ [K in keyof T & string as `${Prefix}.${K}`]+?: T[K];
24
+ };
25
+ export declare type ChildUpdateFields<K extends string, V> = V extends Record<string, unknown> ? AddPrefixToKeys<K, UpdateData<V>> : never;
26
+ export declare type NestedUpdateFields<T extends Record<string, unknown>> = UnionToIntersection<{
27
+ [K in keyof T & string]: ChildUpdateFields<K, T[K]>;
28
+ }[keyof T & string]>;
29
+ export declare type UpdateData<T> = T extends Primitive ? T : T extends {} ? {
30
+ [K in keyof T]?: UpdateData<T[K]> | FieldValue;
31
+ } & NestedUpdateFields<T> : Partial<T>;
32
+ export interface FieldPath {
33
+ isEqual(other: FieldPath): boolean;
34
+ }
35
+ export declare function asTopLevelFieldPaths(input: (string | FieldPath)[]): string[];
36
+ export declare function asTopLevelFieldPath(input: (string | FieldPath)): string;
37
+ export interface Timestamp {
38
+ readonly seconds: number;
39
+ readonly nanoseconds: number;
40
+ toDate(): Date;
41
+ toMillis(): number;
42
+ isEqual(other: Timestamp): boolean;
43
+ toString(): string;
44
+ valueOf(): string;
45
+ }
46
+ export interface DocumentData {
47
+ [field: string]: any;
48
+ }
49
+ /**
50
+ * Document data with the id appended to it.
51
+ */
52
+ export declare type DocumentDataWithId<T = DocumentData> = T & {
53
+ id: string;
54
+ };
55
+ export interface DocumentSnapshot<T = DocumentData> {
56
+ readonly id: string;
57
+ readonly ref: DocumentReference<T>;
58
+ data(options?: SnapshotOptions): T | undefined;
59
+ }
60
+ export declare type SetOptions = SetOptionsMerge | SetOptionsMergeFields;
61
+ export interface SetOptionsMerge {
62
+ readonly merge?: boolean | undefined;
63
+ }
64
+ export interface SetOptionsMergeFields {
65
+ readonly mergeFields?: Array<(string | FieldPath)>;
66
+ }
67
+ export interface SnapshotOptions {
68
+ readonly serverTimestamps?: 'estimate' | 'previous' | 'none';
69
+ }
70
+ export interface SnapshotListenOptions {
71
+ readonly includeMetadataChanges?: boolean;
72
+ }
73
+ /**
74
+ * Mirrors the types/methods of FirestoreDataConverter.
75
+ */
76
+ export interface FirestoreDataConverter<T> {
77
+ toFirestore(modelObject: WithFieldValue<T>): DocumentData;
78
+ toFirestore(modelObject: PartialWithFieldValue<T>, options: SetOptions): DocumentData;
79
+ fromFirestore(snapshot: QueryDocumentSnapshot<DocumentData>, options?: SnapshotOptions): T;
80
+ }
81
+ export interface DocumentReference<T = DocumentData> {
82
+ readonly converter?: FirestoreDataConverter<T> | null;
83
+ readonly type?: 'document';
84
+ readonly firestore: Firestore;
85
+ readonly id: string;
86
+ readonly path: string;
87
+ readonly parent?: CollectionReference<T>;
88
+ withConverter<U>(converter: FirestoreDataConverter<U>): DocumentReference<U>;
89
+ withConverter(converter: null): DocumentReference<DocumentData>;
90
+ }
91
+ export interface CollectionReference<T = DocumentData> extends Query<T> {
92
+ readonly type?: 'collection';
93
+ readonly id: string;
94
+ readonly path: string;
95
+ readonly parent: DocumentReference<DocumentData> | null;
96
+ withConverter<U>(converter: FirestoreDataConverter<U>): CollectionReference<U>;
97
+ withConverter(converter: null): CollectionReference<DocumentData>;
98
+ }
99
+ export declare type WriteBatch = {};
100
+ export declare type Transaction = {};
101
+ export interface Query<T = DocumentData> {
102
+ readonly converter?: FirestoreDataConverter<T> | null;
103
+ readonly type?: 'query' | 'collection';
104
+ readonly firestore: Firestore;
105
+ withConverter<U>(converter: FirestoreDataConverter<U>): Query<U>;
106
+ withConverter(converter: null): Query<DocumentData>;
107
+ }
108
+ export declare type QueryConstraintType = 'where' | 'orderBy' | 'limit' | 'limitToLast' | 'startAt' | 'startAfter' | 'endAt' | 'endBefore';
109
+ export interface QueryConstraint {
110
+ readonly type: QueryConstraintType;
111
+ }
112
+ export interface QuerySnapshot<T = DocumentData> {
113
+ readonly query: Query<T>;
114
+ readonly docs: Array<QueryDocumentSnapshot<T>>;
115
+ readonly size: number;
116
+ readonly empty: boolean;
117
+ forEach(callback: (result: QueryDocumentSnapshot<T>) => void, thisArg?: any): void;
118
+ docChanges(): DocumentChange<T>[];
119
+ }
120
+ export interface QueryDocumentSnapshot<T = DocumentData> extends DocumentSnapshot<T> {
121
+ data(options?: SnapshotOptions): T;
122
+ }
123
+ export declare type QueryDocumentSnapshotArray<T> = QueryDocumentSnapshot<T>[];
124
+ export declare type DocumentChangeType = 'added' | 'removed' | 'modified';
125
+ export declare interface DocumentChange<T = DocumentData> {
126
+ readonly type: DocumentChangeType;
127
+ readonly doc: QueryDocumentSnapshot<T>;
128
+ readonly oldIndex: number;
129
+ readonly newIndex: number;
130
+ }
131
+ export interface WriteResult {
132
+ readonly writeTime: Timestamp;
133
+ }
134
+ export interface Precondition {
135
+ readonly lastUpdateTime?: Timestamp;
136
+ readonly exists?: boolean;
137
+ }
138
+ export interface ReadOnlyTransactionOptions {
139
+ readOnly: true;
140
+ readTime?: Timestamp;
141
+ }
142
+ export interface ReadWriteTransactionOptions {
143
+ readOnly?: false;
144
+ maxAttempts?: number;
145
+ }
@@ -0,0 +1,23 @@
1
+ "use strict";
2
+ // A set of copied types from @google-cloud/firestore and firebase/firestore to allow cross-compatability.
3
+ Object.defineProperty(exports, "__esModule", { value: true });
4
+ exports.asTopLevelFieldPath = exports.asTopLevelFieldPaths = void 0;
5
+ function asTopLevelFieldPaths(input) {
6
+ return input.map(asTopLevelFieldPath);
7
+ }
8
+ exports.asTopLevelFieldPaths = asTopLevelFieldPaths;
9
+ function asTopLevelFieldPath(input) {
10
+ let path;
11
+ if (typeof input === 'string') {
12
+ path = input;
13
+ }
14
+ else {
15
+ const fullPath = input.toString();
16
+ path = fullPath.split('.')[0];
17
+ }
18
+ return path;
19
+ }
20
+ exports.asTopLevelFieldPath = asTopLevelFieldPath;
21
+ ;
22
+ ;
23
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../../../../../packages/firebase/src/lib/common/firestore/types.ts"],"names":[],"mappings":";AAAA,0GAA0G;;;AA6C1G,SAAgB,oBAAoB,CAAC,KAA6B;IAChE,OAAO,KAAK,CAAC,GAAG,CAAC,mBAAmB,CAAC,CAAC;AACxC,CAAC;AAFD,oDAEC;AAED,SAAgB,mBAAmB,CAAC,KAA2B;IAC7D,IAAI,IAAY,CAAC;IAEjB,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE;QAC7B,IAAI,GAAG,KAAK,CAAC;KACd;SAAM;QACL,MAAM,QAAQ,GAAG,KAAK,CAAC,QAAQ,EAAE,CAAC;QAClC,IAAI,GAAG,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;KAC/B;IAED,OAAO,IAAI,CAAC;AACd,CAAC;AAXD,kDAWC;AAgCA,CAAC;AAID,CAAC"}
@@ -0,0 +1,3 @@
1
+ import { TransformAndValidateFunctionResult } from "@dereekb/model";
2
+ export declare type FirebaseFunctionUpdateAction<P extends object, T> = TransformAndValidateFunctionResult<P, (document: T) => Promise<T>>;
3
+ export declare type AsyncFirebaseFunctionUpdateAction<P extends object, T> = Promise<FirebaseFunctionUpdateAction<P, T>>;
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=action.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"action.js","sourceRoot":"","sources":["../../../../../../../packages/firebase/src/lib/common/function/action.ts"],"names":[],"mappings":""}
@@ -0,0 +1 @@
1
+ export * from './action';
@@ -0,0 +1,5 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const tslib_1 = require("tslib");
4
+ tslib_1.__exportStar(require("./action"), exports);
5
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../../../packages/firebase/src/lib/common/function/index.ts"],"names":[],"mappings":";;;AAAA,mDAAyB"}
@@ -0,0 +1,3 @@
1
+ export * from './auth';
2
+ export * from './firestore';
3
+ export * from './function';
@@ -0,0 +1,7 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const tslib_1 = require("tslib");
4
+ tslib_1.__exportStar(require("./auth"), exports);
5
+ tslib_1.__exportStar(require("./firestore"), exports);
6
+ tslib_1.__exportStar(require("./function"), exports);
7
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../../packages/firebase/src/lib/common/index.ts"],"names":[],"mappings":";;;AAAA,iDAAuB;AACvB,sDAA4B;AAC5B,qDAA2B"}
@@ -1 +1,3 @@
1
- export * from './firestore';
1
+ export * from './client';
2
+ export * from './common';
3
+ export * from './model';
package/src/lib/index.js CHANGED
@@ -1,5 +1,7 @@
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("./firestore"), exports);
4
+ tslib_1.__exportStar(require("./client"), exports);
5
+ tslib_1.__exportStar(require("./common"), exports);
6
+ tslib_1.__exportStar(require("./model"), exports);
5
7
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../packages/firebase/src/lib/index.ts"],"names":[],"mappings":";;;AAAA,2DAA4B"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../packages/firebase/src/lib/index.ts"],"names":[],"mappings":";;;AAAA,mDAAyB;AACzB,mDAAyB;AACzB,kDAAwB"}
@@ -0,0 +1 @@
1
+ export * from './user';
@@ -0,0 +1,5 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const tslib_1 = require("tslib");
4
+ tslib_1.__exportStar(require("./user"), exports);
5
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../../packages/firebase/src/lib/model/index.ts"],"names":[],"mappings":";;;AAAA,iDAAuB"}