@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,36 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.lazyFirebaseFunctionsFactory = exports.firebaseFunctionMapFactory = void 0;
4
+ const util_1 = require("@dereekb/util");
5
+ const functions_1 = require("firebase/functions");
6
+ function firebaseFunctionMapFactory(configMap) {
7
+ return (functionsInstance) => {
8
+ const mapFn = (config, key) => {
9
+ let httpCallableOptions;
10
+ if (config) {
11
+ httpCallableOptions = config.options;
12
+ }
13
+ const fn = (0, functions_1.httpsCallable)(functionsInstance, key, httpCallableOptions);
14
+ return fn;
15
+ };
16
+ const result = (0, util_1.mapObjectMap)(configMap, mapFn);
17
+ return result;
18
+ };
19
+ }
20
+ exports.firebaseFunctionMapFactory = firebaseFunctionMapFactory;
21
+ function lazyFirebaseFunctionsFactory(configMap) {
22
+ return (functions) => {
23
+ const mapFn = (config, key) => {
24
+ const type = config[0];
25
+ const factory = config[1];
26
+ const getter = (0, util_1.cachedGetter)(() => factory(functions));
27
+ getter._type = type;
28
+ getter._key = key;
29
+ return getter;
30
+ };
31
+ const result = (0, util_1.mapObjectMap)(configMap, mapFn);
32
+ return result;
33
+ };
34
+ }
35
+ exports.lazyFirebaseFunctionsFactory = lazyFirebaseFunctionsFactory;
36
+ //# sourceMappingURL=function.factory.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"function.factory.js","sourceRoot":"","sources":["../../../../../../../packages/firebase/src/lib/client/function/function.factory.ts"],"names":[],"mappings":";;;AAAA,wCAAyF;AACzF,kDAAoF;AAiBpF,SAAgB,0BAA0B,CAAoC,SAA2C;IACvH,OAAO,CAAC,iBAA4B,EAAE,EAAE;QACtC,MAAM,KAAK,GAAG,CAAoB,MAA2C,EAAE,GAAM,EAAE,EAAE;YACvF,IAAI,mBAAqD,CAAC;YAE1D,IAAI,MAAM,EAAE;gBACV,mBAAmB,GAAG,MAAM,CAAC,OAAO,CAAC;aACtC;YAED,MAAM,EAAE,GAAsC,IAAA,yBAAa,EAAC,iBAAiB,EAAE,GAAa,EAAE,mBAAmB,CAAC,CAAC;YACnH,OAAO,EAAE,CAAC;QACZ,CAAC,CAAC;QAEF,MAAM,MAAM,GAA2B,IAAA,mBAAY,EAAmC,SAAS,EAAE,KAAK,CAAC,CAAC;QACxG,OAAO,MAAM,CAAC;IAChB,CAAC,CAAC;AACJ,CAAC;AAhBD,gEAgBC;AA+BD,SAAgB,4BAA4B,CAA0G,SAAY;IAChK,OAAO,CAAC,SAAoB,EAAE,EAAE;QAE9B,MAAM,KAAK,GAAG,CAAoB,MAA6C,EAAE,GAAM,EAAE,EAAE;YACzF,MAAM,IAAI,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;YACvB,MAAM,OAAO,GAAqC,MAAM,CAAC,CAAC,CAAC,CAAC;YAC5D,MAAM,MAAM,GAAG,IAAA,mBAAY,EAAC,GAAG,EAAE,CAAC,OAAO,CAAC,SAAS,CAAC,CAA4C,CAAC;YACjG,MAAM,CAAC,KAAK,GAAG,IAAI,CAAC;YACpB,MAAM,CAAC,IAAI,GAAG,GAAa,CAAC;YAC5B,OAAO,MAAM,CAAC;QAChB,CAAC,CAAC;QAEF,MAAM,MAAM,GAA6B,IAAA,mBAAY,EAAC,SAAS,EAAE,KAAY,CAAC,CAAC;QAC/E,OAAO,MAAM,CAAC;IAChB,CAAC,CAAC;AACJ,CAAC;AAfD,oEAeC"}
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=function.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"function.js","sourceRoot":"","sources":["../../../../../../../packages/firebase/src/lib/client/function/function.ts"],"names":[],"mappings":""}
@@ -0,0 +1,2 @@
1
+ export * from './function';
2
+ export * from './function.factory';
@@ -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("./function"), exports);
5
+ tslib_1.__exportStar(require("./function.factory"), exports);
6
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../../../packages/firebase/src/lib/client/function/index.ts"],"names":[],"mappings":";;;AAAA,qDAA2B;AAC3B,6DAAmC"}
@@ -0,0 +1,2 @@
1
+ export * from './firestore';
2
+ export * from './function';
@@ -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("./firestore"), exports);
5
+ tslib_1.__exportStar(require("./function"), exports);
6
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../../packages/firebase/src/lib/client/index.ts"],"names":[],"mappings":";;;AAAA,sDAA4B;AAC5B,qDAA2B"}
@@ -0,0 +1,4 @@
1
+ /**
2
+ * Firebase User Identifier (UID)
3
+ */
4
+ export declare type FirebaseAuthUserId = string;
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=auth.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"auth.js","sourceRoot":"","sources":["../../../../../../../packages/firebase/src/lib/common/auth/auth.ts"],"names":[],"mappings":""}
@@ -0,0 +1 @@
1
+ export * from './auth';
@@ -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("./auth"), exports);
5
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../../../packages/firebase/src/lib/common/auth/index.ts"],"names":[],"mappings":";;;AAAA,iDAAuB"}
@@ -0,0 +1,3 @@
1
+ import { WriteBatch } from "../types";
2
+ import { FirestoreDocumentDataAccessorFactory } from "./accessor";
3
+ export declare type WriteBatchAccessorFactory = <T>(writeBatch: WriteBatch) => FirestoreDocumentDataAccessorFactory<T>;
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=accessor.batch.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"accessor.batch.js","sourceRoot":"","sources":["../../../../../../../../packages/firebase/src/lib/common/firestore/accessor/accessor.batch.ts"],"names":[],"mappings":""}
@@ -0,0 +1,87 @@
1
+ import { Maybe } from "@dereekb/util";
2
+ import { WriteResult, SnapshotOptions, DocumentReference, DocumentSnapshot, UpdateData, WithFieldValue, PartialWithFieldValue, SetOptions, Precondition } from "../types";
3
+ import { Observable, OperatorFunction } from 'rxjs';
4
+ import { DocumentReferenceRef } from '../reference';
5
+ export interface FirestoreDocumentDeleteParams {
6
+ precondition?: Precondition;
7
+ }
8
+ export interface FirestoreDocumentUpdateParams {
9
+ precondition?: Precondition;
10
+ }
11
+ /**
12
+ * Firestore database accessor instance used to retrieve and make changes to items in the database.
13
+ */
14
+ export interface FirestoreDocumentDataAccessor<T> extends DocumentReferenceRef<T> {
15
+ /**
16
+ * Returns a database stream of DocumentSnapshots.
17
+ */
18
+ stream(): Observable<DocumentSnapshot<T>>;
19
+ /**
20
+ * Returns the current snapshot.
21
+ */
22
+ get(): Promise<DocumentSnapshot<T>>;
23
+ /**
24
+ * Whether or not the target object currently exists.
25
+ */
26
+ exists(): Promise<boolean>;
27
+ /**
28
+ * Deletes the document
29
+ */
30
+ delete(params?: FirestoreDocumentDeleteParams): Promise<WriteResult | void>;
31
+ /**
32
+ * Sets the data in the database. Can additionally pass options to configure merging of fields.
33
+ *
34
+ * @param data
35
+ */
36
+ set(data: PartialWithFieldValue<T>, options: SetOptions): Promise<WriteResult | void>;
37
+ set(data: WithFieldValue<T>): Promise<WriteResult | void>;
38
+ /**
39
+ * Directly updates the data in the database. If the document doesn't exist, it will fail.
40
+ *
41
+ * NOTE: Update will skip any conversions and directly set the data.
42
+ * If you rely on the converter/conversion functionality, use set() with merge: true instead of update.
43
+ *
44
+ * @param data
45
+ */
46
+ update(data: UpdateData<T>, params?: FirestoreDocumentUpdateParams): Promise<WriteResult | void>;
47
+ }
48
+ /**
49
+ * Contextual interface used for making a FirestoreDocumentModifier for a specific document.
50
+ */
51
+ export interface FirestoreDocumentDataAccessorFactory<T> {
52
+ /**
53
+ * Creates a new FirestoreDocumentDataAccessor for the input ref.
54
+ *
55
+ * @param ref
56
+ */
57
+ accessorFor(ref: DocumentReference<T>): FirestoreDocumentDataAccessor<T>;
58
+ }
59
+ /**
60
+ * Maps data from the given snapshot stream.
61
+ *
62
+ * Maybe values are filtered from the stream until data is provided.
63
+ *
64
+ * @param stream
65
+ * @param options
66
+ * @returns
67
+ */
68
+ export declare function dataFromSnapshotStream<T>(stream: Observable<DocumentSnapshot<T>>, options?: SnapshotOptions): Observable<T>;
69
+ /**
70
+ * OperatorFunction to map data from the snapshot.
71
+ *
72
+ * @param options
73
+ * @returns
74
+ */
75
+ export declare function mapDataFromSnapshot<T>(options?: SnapshotOptions): OperatorFunction<DocumentSnapshot<T>, Maybe<T>>;
76
+ /**
77
+ * Creates or updates the target object using the input data.
78
+ *
79
+ * First checks that the data exists before writing to the datastore.
80
+ *
81
+ * If it does not exist, will call set without merge options in order to fully initialize the object's data.
82
+ * If it does exist, update is done using set + merge on all defined values.
83
+ *
84
+ * @param data
85
+ */
86
+ export declare type CreateOrUpdateWithAccessorSetFunction<T> = (data: Partial<T>) => Promise<WriteResult | void>;
87
+ export declare function createOrUpdateWithAccessorSet<T>(accessor: FirestoreDocumentDataAccessor<T>): (data: Partial<T>) => Promise<WriteResult | void>;
@@ -0,0 +1,2 @@
1
+ import { FirestoreDocumentDataAccessorFactory } from "./accessor";
2
+ export declare type DefaultFirestoreAccessorFactory<T> = () => FirestoreDocumentDataAccessorFactory<T>;
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=accessor.default.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"accessor.default.js","sourceRoot":"","sources":["../../../../../../../../packages/firebase/src/lib/common/firestore/accessor/accessor.default.ts"],"names":[],"mappings":""}
@@ -1,8 +1,10 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.mapDataFromSnapshot = exports.dataFromSnapshotStream = void 0;
3
+ exports.createOrUpdateWithAccessorSet = exports.mapDataFromSnapshot = exports.dataFromSnapshotStream = void 0;
4
4
  const rxjs_1 = require("@dereekb/rxjs");
5
+ const util_1 = require("@dereekb/util");
5
6
  const rxjs_2 = require("rxjs");
7
+ // MARK: Utility
6
8
  /**
7
9
  * Maps data from the given snapshot stream.
8
10
  *
@@ -26,4 +28,18 @@ function mapDataFromSnapshot(options) {
26
28
  return (0, rxjs_2.map)((x) => x.data(options));
27
29
  }
28
30
  exports.mapDataFromSnapshot = mapDataFromSnapshot;
31
+ function createOrUpdateWithAccessorSet(accessor) {
32
+ return (data) => {
33
+ return accessor.exists().then((exists) => {
34
+ if (exists) {
35
+ const update = (0, util_1.filterUndefinedValues)(data);
36
+ return accessor.set(update, { merge: true });
37
+ }
38
+ else {
39
+ return accessor.set(data);
40
+ }
41
+ });
42
+ };
43
+ }
44
+ exports.createOrUpdateWithAccessorSet = createOrUpdateWithAccessorSet;
29
45
  //# sourceMappingURL=accessor.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"accessor.js","sourceRoot":"","sources":["../../../../../../../../packages/firebase/src/lib/common/firestore/accessor/accessor.ts"],"names":[],"mappings":";;;AAAA,wCAA4C;AAC5C,wCAA6D;AAE7D,+BAAyD;AA+DzD,gBAAgB;AAChB;;;;;;;;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;AAcD,SAAgB,6BAA6B,CAAI,QAA0C;IACzF,OAAO,CAAC,IAAgB,EAAE,EAAE;QAC1B,OAAO,QAAQ,CAAC,MAAM,EAAE,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,EAAE;YACvC,IAAI,MAAM,EAAE;gBACV,MAAM,MAAM,GAAG,IAAA,4BAAqB,EAAC,IAAI,CAAC,CAAC;gBAC3C,OAAO,QAAQ,CAAC,GAAG,CAAC,MAAM,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;aAC9C;iBAAM;gBACL,OAAO,QAAQ,CAAC,GAAG,CAAC,IAAyB,CAAC,CAAC;aAChD;QACH,CAAC,CAAC,CAAC;IACL,CAAC,CAAC;AACJ,CAAC;AAXD,sEAWC"}
@@ -0,0 +1,3 @@
1
+ import { Transaction } from "../types";
2
+ import { FirestoreDocumentDataAccessorFactory } from "./accessor";
3
+ export declare type TransactionAccessorFactory<T = any> = (transaction: Transaction) => FirestoreDocumentDataAccessorFactory<T>;
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=accessor.transaction.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"accessor.transaction.js","sourceRoot":"","sources":["../../../../../../../../packages/firebase/src/lib/common/firestore/accessor/accessor.transaction.ts"],"names":[],"mappings":""}
@@ -0,0 +1,7 @@
1
+ import { WriteBatch } from "../types";
2
+ import { FirestoreDocumentContext, FirestoreDocumentContextType } from "./context";
3
+ export declare type WriteBatchFirestoreDocumentContextFactory = <T>(writeBatch: WriteBatch) => WriteBatchFirestoreDocumentContext<T>;
4
+ export interface WriteBatchFirestoreDocumentContext<T> extends FirestoreDocumentContext<T> {
5
+ readonly contextType: FirestoreDocumentContextType.BATCH;
6
+ readonly batch: WriteBatch;
7
+ }
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=context.batch.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"context.batch.js","sourceRoot":"","sources":["../../../../../../../../packages/firebase/src/lib/common/firestore/accessor/context.batch.ts"],"names":[],"mappings":""}
@@ -0,0 +1,5 @@
1
+ import { FirestoreDocumentContext, FirestoreDocumentContextType } from "./context";
2
+ export declare type DefaultFirestoreDocumentContextFactory = <T>() => FirestoreDocumentContext<T>;
3
+ export interface DefaultFirestoreDocumentContext<T> extends FirestoreDocumentContext<T> {
4
+ readonly contextType: FirestoreDocumentContextType.NONE;
5
+ }
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=context.default.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"context.default.js","sourceRoot":"","sources":["../../../../../../../../packages/firebase/src/lib/common/firestore/accessor/context.default.ts"],"names":[],"mappings":""}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"context.js","sourceRoot":"","sources":["../../../../../../../../packages/firebase/src/lib/common/firestore/accessor/context.ts"],"names":[],"mappings":";;;AAEA;;;;GAIG;AACH,IAAY,4BAIX;AAJD,WAAY,4BAA4B;IACtC,6CAAa,CAAA;IACb,2DAA2B,CAAA;IAC3B,+CAAe,CAAA;AACjB,CAAC,EAJW,4BAA4B,GAA5B,oCAA4B,KAA5B,oCAA4B,QAIvC"}
@@ -0,0 +1,7 @@
1
+ import { Transaction } from "../types";
2
+ import { FirestoreDocumentContext, FirestoreDocumentContextType } from "./context";
3
+ export declare type TransactionFirestoreDocumentContextFactory = <T>(transaction: Transaction) => TransactionFirestoreDocumentContext<T>;
4
+ export interface TransactionFirestoreDocumentContext<T> extends FirestoreDocumentContext<T> {
5
+ readonly contextType: FirestoreDocumentContextType.TRANSACTION;
6
+ readonly transaction: Transaction;
7
+ }
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=context.transaction.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"context.transaction.js","sourceRoot":"","sources":["../../../../../../../../packages/firebase/src/lib/common/firestore/accessor/context.transaction.ts"],"names":[],"mappings":""}
@@ -0,0 +1,121 @@
1
+ import { Observable } from 'rxjs';
2
+ import { FirestoreAccessorDriverRef } from '../driver/accessor';
3
+ import { DocumentReference, CollectionReference, Transaction, WriteBatch, DocumentSnapshot, SnapshotOptions, WriteResult } from '../types';
4
+ import { FirestoreDocumentDataAccessor } from './accessor';
5
+ import { CollectionReferenceRef, DocumentReferenceRef } from '../reference';
6
+ import { FirestoreDocumentContext } from './context';
7
+ export interface FirestoreDocument<T, A extends FirestoreDocumentDataAccessor<T> = FirestoreDocumentDataAccessor<T>> extends DocumentReferenceRef<T>, CollectionReferenceRef<T> {
8
+ readonly accessor: A;
9
+ readonly id: string;
10
+ }
11
+ /**
12
+ * Abstract FirestoreDocument implementation that extends a FirestoreDocumentDataAccessor.
13
+ */
14
+ export declare abstract class AbstractFirestoreDocument<T, D extends AbstractFirestoreDocument<T, any, any>, A extends FirestoreDocumentDataAccessor<T> = FirestoreDocumentDataAccessor<T>> implements FirestoreDocument<T, A>, FirestoreDocumentAccessorRef<T, D>, CollectionReferenceRef<T> {
15
+ readonly accessor: A;
16
+ readonly documentAccessor: FirestoreDocumentAccessor<T, D>;
17
+ readonly stream$: Observable<DocumentSnapshot<T>>;
18
+ readonly data$: Observable<T>;
19
+ constructor(accessor: A, documentAccessor: FirestoreDocumentAccessor<T, D>);
20
+ get id(): string;
21
+ get documentRef(): DocumentReference<T>;
22
+ get collection(): CollectionReference<T>;
23
+ snapshot(): Promise<DocumentSnapshot<T>>;
24
+ snapshotData(options?: SnapshotOptions): Promise<T | undefined>;
25
+ createOrUpdate(data: Partial<T>): Promise<WriteResult | void>;
26
+ }
27
+ export interface FirestoreDocumentAccessorRef<T, D extends FirestoreDocument<T> = FirestoreDocument<T>> {
28
+ readonly documentAccessor: FirestoreDocumentAccessor<T, D>;
29
+ }
30
+ export interface FirestoreDocumentAccessor<T, D extends FirestoreDocument<T> = FirestoreDocument<T>> extends CollectionReferenceRef<T>, FirestoreAccessorDriverRef {
31
+ readonly databaseContext: FirestoreDocumentContext<T>;
32
+ /**
33
+ * Creates a new document.
34
+ */
35
+ newDocument(): D;
36
+ /**
37
+ * Loads a document from the datastore with the given id/path.
38
+ *
39
+ * @param ref
40
+ */
41
+ loadDocumentForPath(path: string, ...pathSegments: string[]): D;
42
+ /**
43
+ * Loads a document from the datastore.
44
+ *
45
+ * @param ref
46
+ */
47
+ loadDocument(ref: DocumentReference<T>): D;
48
+ /**
49
+ * Loads a document from an existing FirestoreDocument
50
+ *
51
+ * @param document
52
+ */
53
+ loadDocumentFrom(document: FirestoreDocument<T>): D;
54
+ /**
55
+ *
56
+ * @param path
57
+ * @param pathSegments
58
+ */
59
+ documentRefForPath(path: string, ...pathSegments: string[]): DocumentReference<T>;
60
+ }
61
+ /**
62
+ * Used to generate a FirestoreDocument from an input FirestoreDocumentDataAccessor instance.
63
+ */
64
+ export declare type FirestoreDocumentFactoryFunction<T, D extends FirestoreDocument<T> = FirestoreDocument<T>> = (accessor: FirestoreDocumentDataAccessor<T>, documentAccessor: FirestoreDocumentAccessor<T, D>) => D;
65
+ /**
66
+ * Factory function used for creating a FirestoreDocumentAccessor.
67
+ */
68
+ export declare type FirestoreDocumentAccessorFactoryFunction<T, D extends FirestoreDocument<T> = FirestoreDocument<T>> = (context?: FirestoreDocumentContext<T>) => FirestoreDocumentAccessor<T, D>;
69
+ /**
70
+ * Factory type used for creating a FirestoreDocumentAccessor.
71
+ */
72
+ export interface FirestoreDocumentAccessorFactory<T, D extends FirestoreDocument<T> = FirestoreDocument<T>> {
73
+ /**
74
+ * Creates a new FirestoreDocumentAccessor using the given context.
75
+ *
76
+ * @param context Optional context to retrieve items from.
77
+ */
78
+ readonly documentAccessor: FirestoreDocumentAccessorFactoryFunction<T, D>;
79
+ }
80
+ /**
81
+ * FirestoreDocumentAccessor configuration.
82
+ */
83
+ export interface FirestoreDocumentAccessorFactoryConfig<T, D extends FirestoreDocument<T> = FirestoreDocument<T>> extends CollectionReferenceRef<T>, FirestoreAccessorDriverRef {
84
+ readonly makeDocument: FirestoreDocumentFactoryFunction<T, D>;
85
+ }
86
+ export declare function firestoreDocumentAccessorFactory<T, D extends FirestoreDocument<T> = FirestoreDocument<T>>(config: FirestoreDocumentAccessorFactoryConfig<T, D>): FirestoreDocumentAccessorFactoryFunction<T, D>;
87
+ export interface FirestoreDocumentAccessorForTransactionFactory<T, D extends FirestoreDocument<T> = FirestoreDocument<T>> {
88
+ /**
89
+ * Creates a new FirestoreDocumentAccessor for a Transaction.
90
+ */
91
+ documentAccessorForTransaction(transaction: Transaction): FirestoreDocumentAccessor<T, D>;
92
+ }
93
+ export interface FirestoreDocumentAccessorForWriteBatchFactory<T, D extends FirestoreDocument<T> = FirestoreDocument<T>> {
94
+ /**
95
+ * Creates a new FirestoreDocumentAccessor for a WriteBatch.
96
+ */
97
+ documentAccessorForWriteBatch(writeBatch: WriteBatch): FirestoreDocumentAccessor<T, D>;
98
+ }
99
+ export interface FirestoreDocumentAccessorContextExtensionConfig<T, D extends FirestoreDocument<T> = FirestoreDocument<T>> extends FirestoreAccessorDriverRef {
100
+ readonly documentAccessor: FirestoreDocumentAccessorFactoryFunction<T, D>;
101
+ }
102
+ export interface FirestoreDocumentAccessorContextExtension<T, D extends FirestoreDocument<T> = FirestoreDocument<T>> extends FirestoreDocumentAccessorFactory<T, D>, FirestoreDocumentAccessorForTransactionFactory<T, D>, FirestoreDocumentAccessorForWriteBatchFactory<T, D> {
103
+ }
104
+ export declare function firestoreDocumentAccessorContextExtension<T, D extends FirestoreDocument<T> = FirestoreDocument<T>>({ documentAccessor, firestoreAccessorDriver }: FirestoreDocumentAccessorContextExtensionConfig<T, D>): FirestoreDocumentAccessorContextExtension<T, D>;
105
+ export interface FirestoreDocumentWithParent<P, T, A extends FirestoreDocumentDataAccessor<T> = FirestoreDocumentDataAccessor<T>> extends FirestoreDocument<T, A> {
106
+ readonly parent: DocumentReference<P>;
107
+ }
108
+ export declare abstract class AbstractFirestoreDocumentWithParent<P, T, D extends AbstractFirestoreDocument<T, any, any>, A extends FirestoreDocumentDataAccessor<T> = FirestoreDocumentDataAccessor<T>> extends AbstractFirestoreDocument<T, D, A> implements FirestoreDocumentWithParent<P, T, A> {
109
+ readonly parent: DocumentReference<P>;
110
+ constructor(parent: DocumentReference<P>, accessor: A, documentAccessor: FirestoreDocumentAccessor<T, D>);
111
+ }
112
+ export interface FirestoreSingleDocumentAccessor<T, D extends FirestoreDocument<T> = FirestoreDocument<T>> {
113
+ loadDocument(): D;
114
+ loadDocumentForTransaction(transaction: Transaction): D;
115
+ loadDocumentForWriteBatch(writeBatch: WriteBatch): D;
116
+ }
117
+ export interface FirestoreSingleDocumentAccessorConfig<T, D extends FirestoreDocument<T> = FirestoreDocument<T>> {
118
+ readonly singleItemIdentifier: string;
119
+ readonly accessors: FirestoreDocumentAccessorContextExtension<T, D>;
120
+ }
121
+ export declare function firestoreSingleDocumentAccessor<T, D extends FirestoreDocument<T> = FirestoreDocument<T>>(config: FirestoreSingleDocumentAccessorConfig<T, D>): FirestoreSingleDocumentAccessor<T, D>;
@@ -0,0 +1,106 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.firestoreSingleDocumentAccessor = exports.AbstractFirestoreDocumentWithParent = exports.firestoreDocumentAccessorContextExtension = exports.firestoreDocumentAccessorFactory = exports.AbstractFirestoreDocument = void 0;
4
+ const accessor_1 = require("./accessor");
5
+ /**
6
+ * Abstract FirestoreDocument implementation that extends a FirestoreDocumentDataAccessor.
7
+ */
8
+ class AbstractFirestoreDocument {
9
+ constructor(accessor, documentAccessor) {
10
+ this.accessor = accessor;
11
+ this.documentAccessor = documentAccessor;
12
+ this.stream$ = this.accessor.stream();
13
+ this.data$ = (0, accessor_1.dataFromSnapshotStream)(this.stream$);
14
+ }
15
+ get id() {
16
+ return this.documentRef.id;
17
+ }
18
+ get documentRef() {
19
+ return this.accessor.documentRef;
20
+ }
21
+ get collection() {
22
+ return this.documentAccessor.collection;
23
+ }
24
+ snapshot() {
25
+ return this.accessor.get();
26
+ }
27
+ snapshotData(options) {
28
+ return this.snapshot().then(x => x.data(options));
29
+ }
30
+ createOrUpdate(data) {
31
+ return (0, accessor_1.createOrUpdateWithAccessorSet)(this.accessor)(data);
32
+ }
33
+ }
34
+ exports.AbstractFirestoreDocument = AbstractFirestoreDocument;
35
+ function firestoreDocumentAccessorFactory(config) {
36
+ const { firestoreAccessorDriver, collection } = config;
37
+ return (context) => {
38
+ const databaseContext = context !== null && context !== void 0 ? context : config.firestoreAccessorDriver.defaultContextFactory();
39
+ const dataAccessorFactory = databaseContext.accessorFactory;
40
+ function loadDocument(ref) {
41
+ const accessor = dataAccessorFactory.accessorFor(ref);
42
+ return config.makeDocument(accessor, documentAccessor);
43
+ }
44
+ ;
45
+ function documentRefForPath(path, ...pathSegments) {
46
+ return firestoreAccessorDriver.doc(collection, path, ...pathSegments);
47
+ }
48
+ const documentAccessor = {
49
+ newDocument() {
50
+ const newDocRef = firestoreAccessorDriver.doc(collection);
51
+ return this.loadDocument(newDocRef);
52
+ },
53
+ loadDocumentForPath(path, ...pathSegments) {
54
+ if (!path) {
55
+ throw new Error('Path was not provided to loadDocumentForPath(). Use newDocument() for generating an id.');
56
+ }
57
+ return this.loadDocument(documentRefForPath(path, ...pathSegments));
58
+ },
59
+ loadDocumentFrom(document) {
60
+ return loadDocument(document.documentRef);
61
+ },
62
+ loadDocument,
63
+ documentRefForPath,
64
+ firestoreAccessorDriver,
65
+ databaseContext,
66
+ collection
67
+ };
68
+ return documentAccessor;
69
+ };
70
+ }
71
+ exports.firestoreDocumentAccessorFactory = firestoreDocumentAccessorFactory;
72
+ function firestoreDocumentAccessorContextExtension({ documentAccessor, firestoreAccessorDriver }) {
73
+ return {
74
+ documentAccessor,
75
+ documentAccessorForTransaction(transaction) {
76
+ return documentAccessor(firestoreAccessorDriver.transactionContextFactory(transaction));
77
+ },
78
+ documentAccessorForWriteBatch(writeBatch) {
79
+ return documentAccessor(firestoreAccessorDriver.writeBatchContextFactory(writeBatch));
80
+ }
81
+ };
82
+ }
83
+ exports.firestoreDocumentAccessorContextExtension = firestoreDocumentAccessorContextExtension;
84
+ class AbstractFirestoreDocumentWithParent extends AbstractFirestoreDocument {
85
+ constructor(parent, accessor, documentAccessor) {
86
+ super(accessor, documentAccessor);
87
+ this.parent = parent;
88
+ }
89
+ }
90
+ exports.AbstractFirestoreDocumentWithParent = AbstractFirestoreDocumentWithParent;
91
+ function firestoreSingleDocumentAccessor(config) {
92
+ const { singleItemIdentifier: identifier, accessors } = config;
93
+ return {
94
+ loadDocument() {
95
+ return accessors.documentAccessor().loadDocumentForPath(identifier);
96
+ },
97
+ loadDocumentForTransaction(transaction) {
98
+ return accessors.documentAccessorForTransaction(transaction).loadDocumentForPath(identifier);
99
+ },
100
+ loadDocumentForWriteBatch(writeBatch) {
101
+ return accessors.documentAccessorForWriteBatch(writeBatch).loadDocumentForPath(identifier);
102
+ }
103
+ };
104
+ }
105
+ exports.firestoreSingleDocumentAccessor = firestoreSingleDocumentAccessor;
106
+ //# sourceMappingURL=document.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"document.js","sourceRoot":"","sources":["../../../../../../../../packages/firebase/src/lib/common/firestore/accessor/document.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,43 @@
1
+ import { Maybe } from '@dereekb/util';
2
+ import { DocumentDataWithId, DocumentReference, DocumentSnapshot, QuerySnapshot, Transaction } from '../types';
3
+ import { FirestoreDocument, FirestoreDocumentAccessor, FirestoreDocumentAccessorContextExtension } from './document';
4
+ export declare function newDocuments<T, D extends FirestoreDocument<T>>(documentAccessor: FirestoreDocumentAccessor<T, D>, count: number): D[];
5
+ export interface MakeDocumentsParams<T, D extends FirestoreDocument<T> = FirestoreDocument<T>> {
6
+ count: number;
7
+ /**
8
+ * Initializes the input document with the returned data.
9
+ *
10
+ * This function may also optionally perform tasks with the passed document and return null/undefined.
11
+ */
12
+ init: (i: number, document: D) => Maybe<T> | Promise<Maybe<T>>;
13
+ }
14
+ /**
15
+ * Makes a number of new documents.
16
+ *
17
+ * @param documentAccessor
18
+ * @param make
19
+ * @returns
20
+ */
21
+ export declare function makeDocuments<T, D extends FirestoreDocument<T>>(documentAccessor: FirestoreDocumentAccessor<T, D>, make: MakeDocumentsParams<T, D>): Promise<D[]>;
22
+ export declare function getDocumentSnapshots<T, D extends FirestoreDocument<T>>(documents: D[]): Promise<DocumentSnapshot<T>[]>;
23
+ export declare function loadDocumentsForSnapshots<T, D extends FirestoreDocument<T>>(accessor: FirestoreDocumentAccessor<T, D>, snapshots: QuerySnapshot<T>): D[];
24
+ export declare function loadDocumentsForDocumentReferences<T, D extends FirestoreDocument<T>>(accessor: FirestoreDocumentAccessor<T, D>, refs: DocumentReference<T>[]): D[];
25
+ export declare function loadDocumentsForValues<I, T, D extends FirestoreDocument<T>>(accessor: FirestoreDocumentAccessor<T, D>, values: I[], getRef: (value: I) => DocumentReference<T>): D[];
26
+ /**
27
+ * Used for loading documents for the input references.
28
+ */
29
+ export declare type FirestoreDocumentLoader<T, D extends FirestoreDocument<T>> = (references: DocumentReference<T>[], transaction?: Transaction) => D[];
30
+ /**
31
+ * Used to make a FirestoreDocumentLoader.
32
+ *
33
+ * @param accessorContext
34
+ * @returns
35
+ */
36
+ export declare function firestoreDocumentLoader<T, D extends FirestoreDocument<T>>(accessorContext: FirestoreDocumentAccessorContextExtension<T, D>): FirestoreDocumentLoader<T, D>;
37
+ /**
38
+ * Creates a DocumentDataWithId from the input DocumentSnapshot. If the data does not exist, returns undefined.
39
+ *
40
+ * @param snapshot
41
+ * @returns
42
+ */
43
+ export declare function documentDataWithId<T>(snapshot: DocumentSnapshot<T>): Maybe<DocumentDataWithId<T>>;