@angular/fire 7.6.0 → 16.0.0-canary.596e208

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 (466) hide show
  1. package/analytics/is-analytics-supported-factory.d.ts +4 -0
  2. package/app-check/app-check.d.ts +0 -6
  3. package/app-check/app-check.module.d.ts +0 -1
  4. package/app-check/public_api.d.ts +2 -1
  5. package/auth-guard/auth-guard.d.ts +4 -4
  6. package/compat/auth/auth.d.ts +1 -1
  7. package/compat/auth-guard/auth-guard.d.ts +6 -4
  8. package/compat/database/interfaces.d.ts +12 -12
  9. package/compat/firestore/interfaces.d.ts +17 -17
  10. package/compat/proxy.d.ts +8 -8
  11. package/compat/remote-config/interfaces.d.ts +1 -1
  12. package/compat/storage/interfaces.d.ts +8 -8
  13. package/compat/storage/pipes/storageUrl.pipe.d.ts +1 -1
  14. package/core.d.ts +8 -12
  15. package/esm2022/analytics/analytics.module.mjs +94 -0
  16. package/esm2022/analytics/is-analytics-supported-factory.mjs +16 -0
  17. package/esm2022/analytics/overrides.mjs +3 -0
  18. package/esm2022/analytics/screen-tracking.service.mjs +147 -0
  19. package/esm2022/analytics/user-tracking.service.mjs +44 -0
  20. package/esm2022/app/app.module.mjs +84 -0
  21. package/esm2022/app-check/app-check.mjs +10 -0
  22. package/esm2022/app-check/app-check.module.mjs +79 -0
  23. package/esm2022/app-check/public_api.mjs +5 -0
  24. package/esm2022/auth/auth.module.mjs +71 -0
  25. package/esm2022/auth-guard/auth-guard.mjs +51 -0
  26. package/{esm2015/auth-guard/auth-guard.module.js → esm2022/auth-guard/auth-guard.module.mjs} +5 -5
  27. package/esm2022/compat/analytics/analytics.mjs +161 -0
  28. package/{esm2015/compat/analytics/analytics.module.js → esm2022/compat/analytics/analytics.module.mjs} +5 -5
  29. package/esm2022/compat/analytics/screen-tracking.service.mjs +49 -0
  30. package/esm2022/compat/analytics/user-tracking.service.mjs +53 -0
  31. package/esm2022/compat/auth/auth.mjs +161 -0
  32. package/{esm2015/compat/auth/auth.module.js → esm2022/compat/auth/auth.module.mjs} +5 -5
  33. package/{esm2015/compat/auth/public_api.js → esm2022/compat/auth/public_api.mjs} +1 -1
  34. package/esm2022/compat/auth-guard/auth-guard.mjs +51 -0
  35. package/{esm2015/compat/auth-guard/auth-guard.module.js → esm2022/compat/auth-guard/auth-guard.module.mjs} +5 -5
  36. package/{esm2015/compat/cache.js → esm2022/compat/cache.mjs} +3 -3
  37. package/esm2022/compat/database/database.mjs +119 -0
  38. package/{esm2015/compat/database/database.module.js → esm2022/compat/database/database.module.mjs} +5 -5
  39. package/esm2022/compat/database/list/create-reference.mjs +44 -0
  40. package/{esm2015/compat/firebase.app.module.js → esm2022/compat/firebase.app.module.mjs} +11 -11
  41. package/esm2022/compat/firestore/collection/changes.mjs +108 -0
  42. package/esm2022/compat/firestore/collection/collection.mjs +123 -0
  43. package/esm2022/compat/firestore/collection-group/collection-group.mjs +86 -0
  44. package/esm2022/compat/firestore/document/document.mjs +87 -0
  45. package/esm2022/compat/firestore/firestore.mjs +257 -0
  46. package/{esm2015/compat/firestore/firestore.module.js → esm2022/compat/firestore/firestore.module.mjs} +5 -5
  47. package/esm2022/compat/firestore/interfaces.mjs +2 -0
  48. package/esm2022/compat/firestore/observable/fromRef.mjs +40 -0
  49. package/esm2022/compat/functions/functions.mjs +69 -0
  50. package/{esm2015/compat/functions/functions.module.js → esm2022/compat/functions/functions.module.mjs} +5 -5
  51. package/{esm2015/compat/functions/public_api.js → esm2022/compat/functions/public_api.mjs} +1 -1
  52. package/esm2022/compat/messaging/messaging.mjs +80 -0
  53. package/{esm2015/compat/messaging/messaging.module.js → esm2022/compat/messaging/messaging.module.mjs} +5 -5
  54. package/{esm2015/compat/performance/performance.js → esm2022/compat/performance/performance.mjs} +7 -6
  55. package/{esm2015/compat/performance/performance.module.js → esm2022/compat/performance/performance.module.mjs} +5 -5
  56. package/esm2022/compat/performance/performance.service.mjs +27 -0
  57. package/esm2022/compat/proxy.mjs +59 -0
  58. package/esm2022/compat/remote-config/remote-config.mjs +207 -0
  59. package/{esm2015/compat/remote-config/remote-config.module.js → esm2022/compat/remote-config/remote-config.module.mjs} +5 -5
  60. package/esm2022/compat/storage/pipes/storageUrl.pipe.mjs +58 -0
  61. package/esm2022/compat/storage/storage.mjs +95 -0
  62. package/{esm2015/compat/storage/storage.module.js → esm2022/compat/storage/storage.module.mjs} +5 -5
  63. package/esm2022/core.mjs +45 -0
  64. package/esm2022/database/database.module.mjs +74 -0
  65. package/esm2022/firestore/firestore.module.mjs +74 -0
  66. package/esm2022/firestore/lite/lite.module.mjs +73 -0
  67. package/esm2022/firestore/rxfire.mjs +15 -0
  68. package/esm2022/functions/functions.module.mjs +74 -0
  69. package/esm2022/messaging/is-messaging-supported-factory.mjs +16 -0
  70. package/esm2022/messaging/messaging.module.mjs +86 -0
  71. package/esm2022/messaging/overrides.mjs +3 -0
  72. package/{esm2015/performance/performance.module.js → esm2022/performance/performance.module.mjs} +8 -8
  73. package/esm2022/remote-config/is-remote-config-supported-factory.mjs +16 -0
  74. package/esm2022/remote-config/overrides.mjs +3 -0
  75. package/esm2022/remote-config/remote-config.module.mjs +86 -0
  76. package/esm2022/storage/storage.module.mjs +74 -0
  77. package/esm2022/zones.mjs +196 -0
  78. package/{fesm2015/angular-fire-analytics.js → fesm2022/angular-fire-analytics.mjs} +61 -38
  79. package/fesm2022/angular-fire-analytics.mjs.map +1 -0
  80. package/{fesm2015/angular-fire-app-check.js → fesm2022/angular-fire-app-check.mjs} +15 -22
  81. package/fesm2022/angular-fire-app-check.mjs.map +1 -0
  82. package/{fesm2015/angular-fire-app.js → fesm2022/angular-fire-app.mjs} +8 -8
  83. package/fesm2022/angular-fire-app.mjs.map +1 -0
  84. package/{fesm2015/angular-fire-auth-guard.js → fesm2022/angular-fire-auth-guard.mjs} +25 -23
  85. package/fesm2022/angular-fire-auth-guard.mjs.map +1 -0
  86. package/{fesm2015/angular-fire-auth.js → fesm2022/angular-fire-auth.mjs} +10 -11
  87. package/fesm2022/angular-fire-auth.mjs.map +1 -0
  88. package/{fesm2015/angular-fire-compat-analytics.js → fesm2022/angular-fire-compat-analytics.mjs} +28 -28
  89. package/fesm2022/angular-fire-compat-analytics.mjs.map +1 -0
  90. package/{fesm2015/angular-fire-compat-auth-guard.js → fesm2022/angular-fire-compat-auth-guard.mjs} +25 -23
  91. package/fesm2022/angular-fire-compat-auth-guard.mjs.map +1 -0
  92. package/{fesm2015/angular-fire-compat-auth.js → fesm2022/angular-fire-compat-auth.mjs} +32 -10
  93. package/fesm2022/angular-fire-compat-auth.mjs.map +1 -0
  94. package/{fesm2015/angular-fire-compat-database.js → fesm2022/angular-fire-compat-database.mjs} +17 -12
  95. package/fesm2022/angular-fire-compat-database.mjs.map +1 -0
  96. package/{fesm2015/angular-fire-compat-firestore.js → fesm2022/angular-fire-compat-firestore.mjs} +37 -16
  97. package/fesm2022/angular-fire-compat-firestore.mjs.map +1 -0
  98. package/{fesm2015/angular-fire-compat-functions.js → fesm2022/angular-fire-compat-functions.mjs} +10 -9
  99. package/fesm2022/angular-fire-compat-functions.mjs.map +1 -0
  100. package/{fesm2015/angular-fire-compat-messaging.js → fesm2022/angular-fire-compat-messaging.mjs} +20 -15
  101. package/fesm2022/angular-fire-compat-messaging.mjs.map +1 -0
  102. package/{fesm2015/angular-fire-compat-performance.js → fesm2022/angular-fire-compat-performance.mjs} +16 -15
  103. package/fesm2022/angular-fire-compat-performance.mjs.map +1 -0
  104. package/{fesm2015/angular-fire-compat-remote-config.js → fesm2022/angular-fire-compat-remote-config.mjs} +33 -19
  105. package/fesm2022/angular-fire-compat-remote-config.mjs.map +1 -0
  106. package/{fesm2015/angular-fire-compat-storage.js → fesm2022/angular-fire-compat-storage.mjs} +23 -18
  107. package/fesm2022/angular-fire-compat-storage.mjs.map +1 -0
  108. package/{fesm2015/angular-fire-compat.js → fesm2022/angular-fire-compat.mjs} +15 -17
  109. package/fesm2022/angular-fire-compat.mjs.map +1 -0
  110. package/{fesm2015/angular-fire-database.js → fesm2022/angular-fire-database.mjs} +10 -11
  111. package/fesm2022/angular-fire-database.mjs.map +1 -0
  112. package/{fesm2015/angular-fire-firestore-lite.js → fesm2022/angular-fire-firestore-lite.mjs} +10 -11
  113. package/fesm2022/angular-fire-firestore-lite.mjs.map +1 -0
  114. package/{fesm2015/angular-fire-firestore.js → fesm2022/angular-fire-firestore.mjs} +14 -13
  115. package/fesm2022/angular-fire-firestore.mjs.map +1 -0
  116. package/{fesm2015/angular-fire-functions.js → fesm2022/angular-fire-functions.mjs} +10 -11
  117. package/fesm2022/angular-fire-functions.mjs.map +1 -0
  118. package/{fesm2015/angular-fire-messaging.js → fesm2022/angular-fire-messaging.mjs} +33 -19
  119. package/fesm2022/angular-fire-messaging.mjs.map +1 -0
  120. package/{fesm2015/angular-fire-performance.js → fesm2022/angular-fire-performance.mjs} +8 -8
  121. package/fesm2022/angular-fire-performance.mjs.map +1 -0
  122. package/{fesm2015/angular-fire-remote-config.js → fesm2022/angular-fire-remote-config.mjs} +34 -20
  123. package/fesm2022/angular-fire-remote-config.mjs.map +1 -0
  124. package/{fesm2015/angular-fire-storage.js → fesm2022/angular-fire-storage.mjs} +10 -11
  125. package/fesm2022/angular-fire-storage.mjs.map +1 -0
  126. package/{fesm2015/angular-fire.js → fesm2022/angular-fire.mjs} +31 -52
  127. package/fesm2022/angular-fire.mjs.map +1 -0
  128. package/firestore/rxfire.d.ts +3 -1
  129. package/messaging/is-messaging-supported-factory.d.ts +4 -0
  130. package/package.json +159 -9
  131. package/publish.sh +1 -0
  132. package/remote-config/is-remote-config-supported-factory.d.ts +4 -0
  133. package/schematics/add/index.js +1 -1
  134. package/schematics/common.js +8 -4
  135. package/schematics/deploy/actions.js +59 -59
  136. package/schematics/deploy/builder.js +5 -5
  137. package/schematics/firebaseTools.js +9 -5
  138. package/schematics/setup/index.js +24 -23
  139. package/schematics/setup/prompts.js +20 -15
  140. package/schematics/update/v7/index.js +5 -5
  141. package/schematics/utils.js +30 -30
  142. package/README.md +0 -216
  143. package/analytics/package.json +0 -11
  144. package/app/package.json +0 -11
  145. package/app-check/package.json +0 -11
  146. package/auth/package.json +0 -11
  147. package/auth-guard/package.json +0 -11
  148. package/bundles/angular-fire-analytics.umd.js +0 -673
  149. package/bundles/angular-fire-analytics.umd.js.map +0 -1
  150. package/bundles/angular-fire-app-check.umd.js +0 -465
  151. package/bundles/angular-fire-app-check.umd.js.map +0 -1
  152. package/bundles/angular-fire-app.umd.js +0 -477
  153. package/bundles/angular-fire-app.umd.js.map +0 -1
  154. package/bundles/angular-fire-auth-guard.umd.js +0 -109
  155. package/bundles/angular-fire-auth-guard.umd.js.map +0 -1
  156. package/bundles/angular-fire-auth.umd.js +0 -557
  157. package/bundles/angular-fire-auth.umd.js.map +0 -1
  158. package/bundles/angular-fire-compat-analytics.umd.js +0 -672
  159. package/bundles/angular-fire-compat-analytics.umd.js.map +0 -1
  160. package/bundles/angular-fire-compat-auth-guard.umd.js +0 -112
  161. package/bundles/angular-fire-compat-auth-guard.umd.js.map +0 -1
  162. package/bundles/angular-fire-compat-auth.umd.js +0 -559
  163. package/bundles/angular-fire-compat-auth.umd.js.map +0 -1
  164. package/bundles/angular-fire-compat-database.umd.js +0 -799
  165. package/bundles/angular-fire-compat-database.umd.js.map +0 -1
  166. package/bundles/angular-fire-compat-firestore.umd.js +0 -1073
  167. package/bundles/angular-fire-compat-firestore.umd.js.map +0 -1
  168. package/bundles/angular-fire-compat-functions.umd.js +0 -443
  169. package/bundles/angular-fire-compat-functions.umd.js.map +0 -1
  170. package/bundles/angular-fire-compat-messaging.umd.js +0 -465
  171. package/bundles/angular-fire-compat-messaging.umd.js.map +0 -1
  172. package/bundles/angular-fire-compat-performance.umd.js +0 -212
  173. package/bundles/angular-fire-compat-performance.umd.js.map +0 -1
  174. package/bundles/angular-fire-compat-remote-config.umd.js +0 -605
  175. package/bundles/angular-fire-compat-remote-config.umd.js.map +0 -1
  176. package/bundles/angular-fire-compat-storage.umd.js +0 -598
  177. package/bundles/angular-fire-compat-storage.umd.js.map +0 -1
  178. package/bundles/angular-fire-compat.umd.js +0 -535
  179. package/bundles/angular-fire-compat.umd.js.map +0 -1
  180. package/bundles/angular-fire-database.umd.js +0 -557
  181. package/bundles/angular-fire-database.umd.js.map +0 -1
  182. package/bundles/angular-fire-firestore-lite.umd.js +0 -531
  183. package/bundles/angular-fire-firestore-lite.umd.js.map +0 -1
  184. package/bundles/angular-fire-firestore.umd.js +0 -565
  185. package/bundles/angular-fire-firestore.umd.js.map +0 -1
  186. package/bundles/angular-fire-functions.umd.js +0 -461
  187. package/bundles/angular-fire-functions.umd.js.map +0 -1
  188. package/bundles/angular-fire-messaging.umd.js +0 -473
  189. package/bundles/angular-fire-messaging.umd.js.map +0 -1
  190. package/bundles/angular-fire-performance.umd.js +0 -473
  191. package/bundles/angular-fire-performance.umd.js.map +0 -1
  192. package/bundles/angular-fire-remote-config.umd.js +0 -499
  193. package/bundles/angular-fire-remote-config.umd.js.map +0 -1
  194. package/bundles/angular-fire-storage.umd.js +0 -485
  195. package/bundles/angular-fire-storage.umd.js.map +0 -1
  196. package/bundles/angular-fire.umd.js +0 -308
  197. package/bundles/angular-fire.umd.js.map +0 -1
  198. package/compat/analytics/package.json +0 -11
  199. package/compat/auth/package.json +0 -11
  200. package/compat/auth-guard/package.json +0 -11
  201. package/compat/database/package.json +0 -11
  202. package/compat/firestore/package.json +0 -11
  203. package/compat/functions/package.json +0 -11
  204. package/compat/messaging/package.json +0 -11
  205. package/compat/package.json +0 -11
  206. package/compat/performance/package.json +0 -11
  207. package/compat/remote-config/package.json +0 -11
  208. package/compat/storage/package.json +0 -11
  209. package/database/package.json +0 -11
  210. package/docs/analytics.md +0 -67
  211. package/docs/app-check.md +0 -53
  212. package/docs/auth.md +0 -165
  213. package/docs/compat/analytics/getting-started.md +0 -137
  214. package/docs/compat/auth/getting-started.md +0 -162
  215. package/docs/compat/auth/router-guards.md +0 -104
  216. package/docs/compat/emulators/emulators.md +0 -134
  217. package/docs/compat/firestore/collections.md +0 -326
  218. package/docs/compat/firestore/documents.md +0 -115
  219. package/docs/compat/firestore/offline-data.md +0 -39
  220. package/docs/compat/firestore/querying-collections.md +0 -204
  221. package/docs/compat/functions/functions.md +0 -166
  222. package/docs/compat/messaging/messaging.md +0 -232
  223. package/docs/compat/performance/getting-started.md +0 -132
  224. package/docs/compat/remote-config/getting-started.md +0 -134
  225. package/docs/compat/rtdb/lists.md +0 -257
  226. package/docs/compat/rtdb/objects.md +0 -182
  227. package/docs/compat/rtdb/querying-lists.md +0 -155
  228. package/docs/compat/storage/storage.md +0 -257
  229. package/docs/compat.md +0 -70
  230. package/docs/database.md +0 -175
  231. package/docs/deploy/getting-started.md +0 -204
  232. package/docs/firebase.json +0 -16
  233. package/docs/firestore.md +0 -148
  234. package/docs/functions.md +0 -52
  235. package/docs/images/analytics-illo_1x.png +0 -0
  236. package/docs/images/auth-illo_1x.png +0 -0
  237. package/docs/images/cloud-messaging-illo_1x.png +0 -0
  238. package/docs/images/database-illo_1x.png +0 -0
  239. package/docs/images/firestore-illo_1x.png +0 -0
  240. package/docs/images/functions-illo_1x.png +0 -0
  241. package/docs/images/hosting-illo_1x.png +0 -0
  242. package/docs/images/performance-illo_1x.png +0 -0
  243. package/docs/images/reCAPTCHA-logo@1x.png +0 -0
  244. package/docs/images/remote-config-illo_1x.png +0 -0
  245. package/docs/images/storage-illo_1x.png +0 -0
  246. package/docs/install-and-setup.md +0 -114
  247. package/docs/install-angular-cli-windows10.md +0 -82
  248. package/docs/messaging.md +0 -25
  249. package/docs/performance.md +0 -57
  250. package/docs/remote-config.md +0 -53
  251. package/docs/storage.md +0 -90
  252. package/docs/universal/cloud-functions.md +0 -75
  253. package/docs/universal/getting-started.md +0 -153
  254. package/docs/universal/prerendering.md +0 -72
  255. package/docs/version-4-upgrade.md +0 -119
  256. package/docs/version-5-upgrade.md +0 -82
  257. package/docs/version-6-upgrade.md +0 -16
  258. package/docs/version-7-upgrade.md +0 -298
  259. package/esm2015/analytics/analytics.module.js +0 -93
  260. package/esm2015/analytics/overrides.js +0 -3
  261. package/esm2015/analytics/screen-tracking.service.js +0 -139
  262. package/esm2015/analytics/user-tracking.service.js +0 -43
  263. package/esm2015/app/app.module.js +0 -84
  264. package/esm2015/app-check/app-check.js +0 -16
  265. package/esm2015/app-check/app-check.module.js +0 -81
  266. package/esm2015/app-check/public_api.js +0 -4
  267. package/esm2015/auth/auth.module.js +0 -71
  268. package/esm2015/auth-guard/auth-guard.js +0 -49
  269. package/esm2015/compat/analytics/analytics.js +0 -163
  270. package/esm2015/compat/analytics/screen-tracking.service.js +0 -49
  271. package/esm2015/compat/analytics/user-tracking.service.js +0 -52
  272. package/esm2015/compat/auth/auth.js +0 -139
  273. package/esm2015/compat/auth-guard/auth-guard.js +0 -49
  274. package/esm2015/compat/database/database.js +0 -117
  275. package/esm2015/compat/database/list/create-reference.js +0 -41
  276. package/esm2015/compat/firestore/collection/changes.js +0 -107
  277. package/esm2015/compat/firestore/collection/collection.js +0 -117
  278. package/esm2015/compat/firestore/collection-group/collection-group.js +0 -81
  279. package/esm2015/compat/firestore/document/document.js +0 -82
  280. package/esm2015/compat/firestore/firestore.js +0 -254
  281. package/esm2015/compat/firestore/interfaces.js +0 -2
  282. package/esm2015/compat/firestore/observable/fromRef.js +0 -39
  283. package/esm2015/compat/functions/functions.js +0 -68
  284. package/esm2015/compat/messaging/messaging.js +0 -75
  285. package/esm2015/compat/performance/performance.service.js +0 -27
  286. package/esm2015/compat/proxy.js +0 -61
  287. package/esm2015/compat/remote-config/remote-config.js +0 -193
  288. package/esm2015/compat/storage/pipes/storageUrl.pipe.js +0 -54
  289. package/esm2015/compat/storage/storage.js +0 -94
  290. package/esm2015/core.js +0 -79
  291. package/esm2015/database/database.module.js +0 -74
  292. package/esm2015/firestore/firestore.module.js +0 -74
  293. package/esm2015/firestore/lite/lite.module.js +0 -74
  294. package/esm2015/firestore/rxfire.js +0 -13
  295. package/esm2015/functions/functions.module.js +0 -74
  296. package/esm2015/messaging/messaging.module.js +0 -85
  297. package/esm2015/messaging/overrides.js +0 -3
  298. package/esm2015/remote-config/overrides.js +0 -3
  299. package/esm2015/remote-config/remote-config.module.js +0 -85
  300. package/esm2015/storage/storage.module.js +0 -74
  301. package/esm2015/zones.js +0 -183
  302. package/fesm2015/angular-fire-analytics.js.map +0 -1
  303. package/fesm2015/angular-fire-app-check.js.map +0 -1
  304. package/fesm2015/angular-fire-app.js.map +0 -1
  305. package/fesm2015/angular-fire-auth-guard.js.map +0 -1
  306. package/fesm2015/angular-fire-auth.js.map +0 -1
  307. package/fesm2015/angular-fire-compat-analytics.js.map +0 -1
  308. package/fesm2015/angular-fire-compat-auth-guard.js.map +0 -1
  309. package/fesm2015/angular-fire-compat-auth.js.map +0 -1
  310. package/fesm2015/angular-fire-compat-database.js.map +0 -1
  311. package/fesm2015/angular-fire-compat-firestore.js.map +0 -1
  312. package/fesm2015/angular-fire-compat-functions.js.map +0 -1
  313. package/fesm2015/angular-fire-compat-messaging.js.map +0 -1
  314. package/fesm2015/angular-fire-compat-performance.js.map +0 -1
  315. package/fesm2015/angular-fire-compat-remote-config.js.map +0 -1
  316. package/fesm2015/angular-fire-compat-storage.js.map +0 -1
  317. package/fesm2015/angular-fire-compat.js.map +0 -1
  318. package/fesm2015/angular-fire-database.js.map +0 -1
  319. package/fesm2015/angular-fire-firestore-lite.js.map +0 -1
  320. package/fesm2015/angular-fire-firestore.js.map +0 -1
  321. package/fesm2015/angular-fire-functions.js.map +0 -1
  322. package/fesm2015/angular-fire-messaging.js.map +0 -1
  323. package/fesm2015/angular-fire-performance.js.map +0 -1
  324. package/fesm2015/angular-fire-remote-config.js.map +0 -1
  325. package/fesm2015/angular-fire-storage.js.map +0 -1
  326. package/fesm2015/angular-fire.js.map +0 -1
  327. package/firestore/lite/package.json +0 -11
  328. package/firestore/package.json +0 -11
  329. package/firestore-protos.js +0 -4
  330. package/functions/package.json +0 -11
  331. package/messaging/package.json +0 -11
  332. package/performance/package.json +0 -11
  333. package/remote-config/package.json +0 -11
  334. package/schematics/add/schema.json +0 -16
  335. package/schematics/builders.json +0 -10
  336. package/schematics/collection.json +0 -15
  337. package/schematics/deploy/schema.json +0 -119
  338. package/schematics/migration.json +0 -15
  339. package/schematics/setup/schema.json +0 -16
  340. package/storage/package.json +0 -11
  341. /package/analytics/{angular-fire-analytics.d.ts → index.d.ts} +0 -0
  342. /package/app/{angular-fire-app.d.ts → index.d.ts} +0 -0
  343. /package/app-check/{angular-fire-app-check.d.ts → index.d.ts} +0 -0
  344. /package/auth/{angular-fire-auth.d.ts → index.d.ts} +0 -0
  345. /package/auth-guard/{angular-fire-auth-guard.d.ts → index.d.ts} +0 -0
  346. /package/compat/analytics/{angular-fire-compat-analytics.d.ts → index.d.ts} +0 -0
  347. /package/compat/auth/{angular-fire-compat-auth.d.ts → index.d.ts} +0 -0
  348. /package/compat/auth-guard/{angular-fire-compat-auth-guard.d.ts → index.d.ts} +0 -0
  349. /package/compat/database/{angular-fire-compat-database.d.ts → index.d.ts} +0 -0
  350. /package/compat/firestore/{angular-fire-compat-firestore.d.ts → index.d.ts} +0 -0
  351. /package/compat/functions/{angular-fire-compat-functions.d.ts → index.d.ts} +0 -0
  352. /package/compat/{angular-fire-compat.d.ts → index.d.ts} +0 -0
  353. /package/compat/messaging/{angular-fire-compat-messaging.d.ts → index.d.ts} +0 -0
  354. /package/compat/performance/{angular-fire-compat-performance.d.ts → index.d.ts} +0 -0
  355. /package/compat/remote-config/{angular-fire-compat-remote-config.d.ts → index.d.ts} +0 -0
  356. /package/compat/storage/{angular-fire-compat-storage.d.ts → index.d.ts} +0 -0
  357. /package/database/{angular-fire-database.d.ts → index.d.ts} +0 -0
  358. /package/{esm2015/analytics/analytics.js → esm2022/analytics/analytics.mjs} +0 -0
  359. /package/{esm2015/analytics/angular-fire-analytics.js → esm2022/analytics/angular-fire-analytics.mjs} +0 -0
  360. /package/{esm2015/analytics/firebase.js → esm2022/analytics/firebase.mjs} +0 -0
  361. /package/{esm2015/analytics/public_api.js → esm2022/analytics/public_api.mjs} +0 -0
  362. /package/{esm2015/angular-fire.js → esm2022/angular-fire.mjs} +0 -0
  363. /package/{esm2015/app/angular-fire-app.js → esm2022/app/angular-fire-app.mjs} +0 -0
  364. /package/{esm2015/app/app.js → esm2022/app/app.mjs} +0 -0
  365. /package/{esm2015/app/firebase.js → esm2022/app/firebase.mjs} +0 -0
  366. /package/{esm2015/app/public_api.js → esm2022/app/public_api.mjs} +0 -0
  367. /package/{esm2015/app-check/angular-fire-app-check.js → esm2022/app-check/angular-fire-app-check.mjs} +0 -0
  368. /package/{esm2015/app-check/firebase.js → esm2022/app-check/firebase.mjs} +0 -0
  369. /package/{esm2015/auth/angular-fire-auth.js → esm2022/auth/angular-fire-auth.mjs} +0 -0
  370. /package/{esm2015/auth/auth.js → esm2022/auth/auth.mjs} +0 -0
  371. /package/{esm2015/auth/firebase.js → esm2022/auth/firebase.mjs} +0 -0
  372. /package/{esm2015/auth/public_api.js → esm2022/auth/public_api.mjs} +0 -0
  373. /package/{esm2015/auth/rxfire.js → esm2022/auth/rxfire.mjs} +0 -0
  374. /package/{esm2015/auth-guard/angular-fire-auth-guard.js → esm2022/auth-guard/angular-fire-auth-guard.mjs} +0 -0
  375. /package/{esm2015/auth-guard/public_api.js → esm2022/auth-guard/public_api.mjs} +0 -0
  376. /package/{esm2015/compat/analytics/angular-fire-compat-analytics.js → esm2022/compat/analytics/angular-fire-compat-analytics.mjs} +0 -0
  377. /package/{esm2015/compat/analytics/base.js → esm2022/compat/analytics/base.mjs} +0 -0
  378. /package/{esm2015/compat/analytics/public_api.js → esm2022/compat/analytics/public_api.mjs} +0 -0
  379. /package/{esm2015/compat/angular-fire-compat.js → esm2022/compat/angular-fire-compat.mjs} +0 -0
  380. /package/{esm2015/compat/auth/angular-fire-compat-auth.js → esm2022/compat/auth/angular-fire-compat-auth.mjs} +0 -0
  381. /package/{esm2015/compat/auth/base.js → esm2022/compat/auth/base.mjs} +0 -0
  382. /package/{esm2015/compat/auth-guard/angular-fire-compat-auth-guard.js → esm2022/compat/auth-guard/angular-fire-compat-auth-guard.mjs} +0 -0
  383. /package/{esm2015/compat/auth-guard/public_api.js → esm2022/compat/auth-guard/public_api.mjs} +0 -0
  384. /package/{esm2015/compat/database/angular-fire-compat-database.js → esm2022/compat/database/angular-fire-compat-database.mjs} +0 -0
  385. /package/{esm2015/compat/database/interfaces.js → esm2022/compat/database/interfaces.mjs} +0 -0
  386. /package/{esm2015/compat/database/list/audit-trail.js → esm2022/compat/database/list/audit-trail.mjs} +0 -0
  387. /package/{esm2015/compat/database/list/changes.js → esm2022/compat/database/list/changes.mjs} +0 -0
  388. /package/{esm2015/compat/database/list/data-operation.js → esm2022/compat/database/list/data-operation.mjs} +0 -0
  389. /package/{esm2015/compat/database/list/remove.js → esm2022/compat/database/list/remove.mjs} +0 -0
  390. /package/{esm2015/compat/database/list/snapshot-changes.js → esm2022/compat/database/list/snapshot-changes.mjs} +0 -0
  391. /package/{esm2015/compat/database/list/state-changes.js → esm2022/compat/database/list/state-changes.mjs} +0 -0
  392. /package/{esm2015/compat/database/list/utils.js → esm2022/compat/database/list/utils.mjs} +0 -0
  393. /package/{esm2015/compat/database/object/create-reference.js → esm2022/compat/database/object/create-reference.mjs} +0 -0
  394. /package/{esm2015/compat/database/object/snapshot-changes.js → esm2022/compat/database/object/snapshot-changes.mjs} +0 -0
  395. /package/{esm2015/compat/database/observable/fromRef.js → esm2022/compat/database/observable/fromRef.mjs} +0 -0
  396. /package/{esm2015/compat/database/public_api.js → esm2022/compat/database/public_api.mjs} +0 -0
  397. /package/{esm2015/compat/database/utils.js → esm2022/compat/database/utils.mjs} +0 -0
  398. /package/{esm2015/compat/firebase.app.js → esm2022/compat/firebase.app.mjs} +0 -0
  399. /package/{esm2015/compat/firestore/angular-fire-compat-firestore.js → esm2022/compat/firestore/angular-fire-compat-firestore.mjs} +0 -0
  400. /package/{esm2015/compat/firestore/public_api.js → esm2022/compat/firestore/public_api.mjs} +0 -0
  401. /package/{esm2015/compat/functions/angular-fire-compat-functions.js → esm2022/compat/functions/angular-fire-compat-functions.mjs} +0 -0
  402. /package/{esm2015/compat/functions/base.js → esm2022/compat/functions/base.mjs} +0 -0
  403. /package/{esm2015/compat/messaging/angular-fire-compat-messaging.js → esm2022/compat/messaging/angular-fire-compat-messaging.mjs} +0 -0
  404. /package/{esm2015/compat/messaging/base.js → esm2022/compat/messaging/base.mjs} +0 -0
  405. /package/{esm2015/compat/messaging/public_api.js → esm2022/compat/messaging/public_api.mjs} +0 -0
  406. /package/{esm2015/compat/performance/angular-fire-compat-performance.js → esm2022/compat/performance/angular-fire-compat-performance.mjs} +0 -0
  407. /package/{esm2015/compat/performance/base.js → esm2022/compat/performance/base.mjs} +0 -0
  408. /package/{esm2015/compat/performance/public_api.js → esm2022/compat/performance/public_api.mjs} +0 -0
  409. /package/{esm2015/compat/public_api.js → esm2022/compat/public_api.mjs} +0 -0
  410. /package/{esm2015/compat/remote-config/angular-fire-compat-remote-config.js → esm2022/compat/remote-config/angular-fire-compat-remote-config.mjs} +0 -0
  411. /package/{esm2015/compat/remote-config/base.js → esm2022/compat/remote-config/base.mjs} +0 -0
  412. /package/{esm2015/compat/remote-config/interfaces.js → esm2022/compat/remote-config/interfaces.mjs} +0 -0
  413. /package/{esm2015/compat/remote-config/public_api.js → esm2022/compat/remote-config/public_api.mjs} +0 -0
  414. /package/{esm2015/compat/storage/angular-fire-compat-storage.js → esm2022/compat/storage/angular-fire-compat-storage.mjs} +0 -0
  415. /package/{esm2015/compat/storage/interfaces.js → esm2022/compat/storage/interfaces.mjs} +0 -0
  416. /package/{esm2015/compat/storage/observable/fromTask.js → esm2022/compat/storage/observable/fromTask.mjs} +0 -0
  417. /package/{esm2015/compat/storage/public_api.js → esm2022/compat/storage/public_api.mjs} +0 -0
  418. /package/{esm2015/compat/storage/ref.js → esm2022/compat/storage/ref.mjs} +0 -0
  419. /package/{esm2015/compat/storage/task.js → esm2022/compat/storage/task.mjs} +0 -0
  420. /package/{esm2015/database/angular-fire-database.js → esm2022/database/angular-fire-database.mjs} +0 -0
  421. /package/{esm2015/database/database.js → esm2022/database/database.mjs} +0 -0
  422. /package/{esm2015/database/firebase.js → esm2022/database/firebase.mjs} +0 -0
  423. /package/{esm2015/database/public_api.js → esm2022/database/public_api.mjs} +0 -0
  424. /package/{esm2015/database/rxfire.js → esm2022/database/rxfire.mjs} +0 -0
  425. /package/{esm2015/firestore/angular-fire-firestore.js → esm2022/firestore/angular-fire-firestore.mjs} +0 -0
  426. /package/{esm2015/firestore/firebase.js → esm2022/firestore/firebase.mjs} +0 -0
  427. /package/{esm2015/firestore/firestore.js → esm2022/firestore/firestore.mjs} +0 -0
  428. /package/{esm2015/firestore/lite/angular-fire-firestore-lite.js → esm2022/firestore/lite/angular-fire-firestore-lite.mjs} +0 -0
  429. /package/{esm2015/firestore/lite/firebase.js → esm2022/firestore/lite/firebase.mjs} +0 -0
  430. /package/{esm2015/firestore/lite/lite.js → esm2022/firestore/lite/lite.mjs} +0 -0
  431. /package/{esm2015/firestore/lite/public_api.js → esm2022/firestore/lite/public_api.mjs} +0 -0
  432. /package/{esm2015/firestore/lite/rxfire.js → esm2022/firestore/lite/rxfire.mjs} +0 -0
  433. /package/{esm2015/firestore/public_api.js → esm2022/firestore/public_api.mjs} +0 -0
  434. /package/{esm2015/functions/angular-fire-functions.js → esm2022/functions/angular-fire-functions.mjs} +0 -0
  435. /package/{esm2015/functions/firebase.js → esm2022/functions/firebase.mjs} +0 -0
  436. /package/{esm2015/functions/functions.js → esm2022/functions/functions.mjs} +0 -0
  437. /package/{esm2015/functions/public_api.js → esm2022/functions/public_api.mjs} +0 -0
  438. /package/{esm2015/functions/rxfire.js → esm2022/functions/rxfire.mjs} +0 -0
  439. /package/{esm2015/messaging/angular-fire-messaging.js → esm2022/messaging/angular-fire-messaging.mjs} +0 -0
  440. /package/{esm2015/messaging/firebase.js → esm2022/messaging/firebase.mjs} +0 -0
  441. /package/{esm2015/messaging/messaging.js → esm2022/messaging/messaging.mjs} +0 -0
  442. /package/{esm2015/messaging/public_api.js → esm2022/messaging/public_api.mjs} +0 -0
  443. /package/{esm2015/performance/angular-fire-performance.js → esm2022/performance/angular-fire-performance.mjs} +0 -0
  444. /package/{esm2015/performance/firebase.js → esm2022/performance/firebase.mjs} +0 -0
  445. /package/{esm2015/performance/performance.js → esm2022/performance/performance.mjs} +0 -0
  446. /package/{esm2015/performance/public_api.js → esm2022/performance/public_api.mjs} +0 -0
  447. /package/{esm2015/performance/rxfire.js → esm2022/performance/rxfire.mjs} +0 -0
  448. /package/{esm2015/public_api.js → esm2022/public_api.mjs} +0 -0
  449. /package/{esm2015/remote-config/angular-fire-remote-config.js → esm2022/remote-config/angular-fire-remote-config.mjs} +0 -0
  450. /package/{esm2015/remote-config/firebase.js → esm2022/remote-config/firebase.mjs} +0 -0
  451. /package/{esm2015/remote-config/public_api.js → esm2022/remote-config/public_api.mjs} +0 -0
  452. /package/{esm2015/remote-config/remote-config.js → esm2022/remote-config/remote-config.mjs} +0 -0
  453. /package/{esm2015/remote-config/rxfire.js → esm2022/remote-config/rxfire.mjs} +0 -0
  454. /package/{esm2015/storage/angular-fire-storage.js → esm2022/storage/angular-fire-storage.mjs} +0 -0
  455. /package/{esm2015/storage/firebase.js → esm2022/storage/firebase.mjs} +0 -0
  456. /package/{esm2015/storage/public_api.js → esm2022/storage/public_api.mjs} +0 -0
  457. /package/{esm2015/storage/rxfire.js → esm2022/storage/rxfire.mjs} +0 -0
  458. /package/{esm2015/storage/storage.js → esm2022/storage/storage.mjs} +0 -0
  459. /package/firestore/{angular-fire-firestore.d.ts → index.d.ts} +0 -0
  460. /package/firestore/lite/{angular-fire-firestore-lite.d.ts → index.d.ts} +0 -0
  461. /package/functions/{angular-fire-functions.d.ts → index.d.ts} +0 -0
  462. /package/{angular-fire.d.ts → index.d.ts} +0 -0
  463. /package/messaging/{angular-fire-messaging.d.ts → index.d.ts} +0 -0
  464. /package/performance/{angular-fire-performance.d.ts → index.d.ts} +0 -0
  465. /package/remote-config/{angular-fire-remote-config.d.ts → index.d.ts} +0 -0
  466. /package/storage/{angular-fire-storage.d.ts → index.d.ts} +0 -0
@@ -1,117 +0,0 @@
1
- import { from } from 'rxjs';
2
- import { filter, map, pairwise, scan, startWith } from 'rxjs/operators';
3
- import { keepUnstableUntilFirst } from '@angular/fire';
4
- import { docChanges, sortedChanges } from './changes';
5
- import { AngularFirestoreDocument } from '../document/document';
6
- import { fromCollectionRef } from '../observable/fromRef';
7
- export function validateEventsArray(events) {
8
- if (!events || events.length === 0) {
9
- events = ['added', 'removed', 'modified'];
10
- }
11
- return events;
12
- }
13
- /**
14
- * AngularFirestoreCollection service
15
- *
16
- * This class creates a reference to a Firestore Collection. A reference and a query are provided in
17
- * in the constructor. The query can be the unqueried reference if no query is desired.The class
18
- * is generic which gives you type safety for data update methods and data streaming.
19
- *
20
- * This class uses Symbol.observable to transform into Observable using Observable.from().
21
- *
22
- * This class is rarely used directly and should be created from the AngularFirestore service.
23
- *
24
- * Example:
25
- *
26
- * const collectionRef = firebase.firestore.collection('stocks');
27
- * const query = collectionRef.where('price', '>', '0.01');
28
- * const fakeStock = new AngularFirestoreCollection<Stock>(collectionRef, query);
29
- *
30
- * // NOTE!: the updates are performed on the reference not the query
31
- * await fakeStock.add({ name: 'FAKE', price: 0.01 });
32
- *
33
- * // Subscribe to changes as snapshots. This provides you data updates as well as delta updates.
34
- * fakeStock.valueChanges().subscribe(value => console.log(value));
35
- */
36
- export class AngularFirestoreCollection {
37
- /**
38
- * The constructor takes in a CollectionReference and Query to provide wrapper methods
39
- * for data operations and data streaming.
40
- *
41
- * Note: Data operation methods are done on the reference not the query. This means
42
- * when you update data it is not updating data to the window of your query unless
43
- * the data fits the criteria of the query. See the AssociatedRefence type for details
44
- * on this implication.
45
- */
46
- constructor(ref, query, afs) {
47
- this.ref = ref;
48
- this.query = query;
49
- this.afs = afs;
50
- }
51
- /**
52
- * Listen to the latest change in the stream. This method returns changes
53
- * as they occur and they are not sorted by query order. This allows you to construct
54
- * your own data structure.
55
- */
56
- stateChanges(events) {
57
- let source = docChanges(this.query, this.afs.schedulers.outsideAngular);
58
- if (events && events.length > 0) {
59
- source = source.pipe(map(actions => actions.filter(change => events.indexOf(change.type) > -1)));
60
- }
61
- return source.pipe(
62
- // We want to filter out empty arrays, but always emit at first, so the developer knows
63
- // that the collection has been resolve; even if it's empty
64
- startWith(undefined), pairwise(), filter(([prior, current]) => current.length > 0 || !prior), map(([prior, current]) => current), keepUnstableUntilFirst);
65
- }
66
- /**
67
- * Create a stream of changes as they occur it time. This method is similar to stateChanges()
68
- * but it collects each event in an array over time.
69
- */
70
- auditTrail(events) {
71
- return this.stateChanges(events).pipe(scan((current, action) => [...current, ...action], []));
72
- }
73
- /**
74
- * Create a stream of synchronized changes. This method keeps the local array in sorted
75
- * query order.
76
- */
77
- snapshotChanges(events) {
78
- const validatedEvents = validateEventsArray(events);
79
- const scheduledSortedChanges$ = sortedChanges(this.query, validatedEvents, this.afs.schedulers.outsideAngular);
80
- return scheduledSortedChanges$.pipe(keepUnstableUntilFirst);
81
- }
82
- valueChanges(options = {}) {
83
- return fromCollectionRef(this.query, this.afs.schedulers.outsideAngular)
84
- .pipe(map(actions => actions.payload.docs.map(a => {
85
- if (options.idField) {
86
- return Object.assign(Object.assign({}, a.data()), { [options.idField]: a.id });
87
- }
88
- else {
89
- return a.data();
90
- }
91
- })), keepUnstableUntilFirst);
92
- }
93
- /**
94
- * Retrieve the results of the query once.
95
- */
96
- get(options) {
97
- return from(this.query.get(options)).pipe(keepUnstableUntilFirst);
98
- }
99
- /**
100
- * Add data to a collection reference.
101
- *
102
- * Note: Data operation methods are done on the reference not the query. This means
103
- * when you update data it is not updating data to the window of your query unless
104
- * the data fits the criteria of the query.
105
- */
106
- add(data) {
107
- return this.ref.add(data);
108
- }
109
- /**
110
- * Create a reference to a single document in a collection.
111
- */
112
- doc(path) {
113
- // TODO is there a better way to solve this type issue
114
- return new AngularFirestoreDocument(this.ref.doc(path), this.afs);
115
- }
116
- }
117
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29sbGVjdGlvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9jb21wYXQvZmlyZXN0b3JlL2NvbGxlY3Rpb24vY29sbGVjdGlvbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsSUFBSSxFQUFjLE1BQU0sTUFBTSxDQUFDO0FBQ3hDLE9BQU8sRUFBRSxNQUFNLEVBQUUsR0FBRyxFQUFFLFFBQVEsRUFBRSxJQUFJLEVBQUUsU0FBUyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFeEUsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sZUFBZSxDQUFDO0FBR3ZELE9BQU8sRUFBRSxVQUFVLEVBQUUsYUFBYSxFQUFFLE1BQU0sV0FBVyxDQUFDO0FBQ3RELE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQ2hFLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBRzFELE1BQU0sVUFBVSxtQkFBbUIsQ0FBQyxNQUE2QjtJQUMvRCxJQUFJLENBQUMsTUFBTSxJQUFJLE1BQU0sQ0FBQyxNQUFNLEtBQUssQ0FBQyxFQUFFO1FBQ2xDLE1BQU0sR0FBRyxDQUFDLE9BQU8sRUFBRSxTQUFTLEVBQUUsVUFBVSxDQUFDLENBQUM7S0FDM0M7SUFDRCxPQUFPLE1BQU0sQ0FBQztBQUNoQixDQUFDO0FBRUQ7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0FzQkc7QUFDSCxNQUFNLE9BQU8sMEJBQTBCO0lBQ3JDOzs7Ozs7OztPQVFHO0lBQ0gsWUFDa0IsR0FBMkIsRUFDMUIsS0FBZSxFQUNmLEdBQXFCO1FBRnRCLFFBQUcsR0FBSCxHQUFHLENBQXdCO1FBQzFCLFVBQUssR0FBTCxLQUFLLENBQVU7UUFDZixRQUFHLEdBQUgsR0FBRyxDQUFrQjtJQUFJLENBQUM7SUFFN0M7Ozs7T0FJRztJQUNILFlBQVksQ0FBQyxNQUE2QjtRQUN4QyxJQUFJLE1BQU0sR0FBRyxV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QUFhO1FBQ3ZCLHNEQUFzRDtRQUN0RCxPQUFPLElBQUksd0JBQXdCLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFRLEVBQUUsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBQzNFLENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGZyb20sIE9ic2VydmFibGUgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IGZpbHRlciwgbWFwLCBwYWlyd2lzZSwgc2Nhbiwgc3RhcnRXaXRoIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IGZpcmViYXNlIGZyb20gJ2ZpcmViYXNlL2NvbXBhdC9hcHAnO1xuaW1wb3J0IHsga2VlcFVuc3RhYmxlVW50aWxGaXJzdCB9IGZyb20gJ0Bhbmd1bGFyL2ZpcmUnO1xuXG5pbXBvcnQgeyBDb2xsZWN0aW9uUmVmZXJlbmNlLCBEb2N1bWVudENoYW5nZUFjdGlvbiwgRG9jdW1lbnRDaGFuZ2VUeXBlLCBEb2N1bWVudERhdGEsIERvY3VtZW50UmVmZXJlbmNlLCBRdWVyeSB9IGZyb20gJy4uL2ludGVyZmFjZXMnO1xuaW1wb3J0IHsgZG9jQ2hhbmdlcywgc29ydGVkQ2hhbmdlcyB9IGZyb20gJy4vY2hhbmdlcyc7XG5pbXBvcnQgeyBBbmd1bGFyRmlyZXN0b3JlRG9jdW1lbnQgfSBmcm9tICcuLi9kb2N1bWVudC9kb2N1bWVudCc7XG5pbXBvcnQgeyBmcm9tQ29sbGVjdGlvblJlZiB9IGZyb20gJy4uL29ic2VydmFibGUvZnJvbVJlZic7XG5pbXBvcnQgeyBBbmd1bGFyRmlyZXN0b3JlIH0gZnJvbSAnLi4vZmlyZXN0b3JlJztcblxuZXhwb3J0IGZ1bmN0aW9uIHZhbGlkYXRlRXZlbnRzQXJyYXkoZXZlbnRzPzogRG9jdW1lbnRDaGFuZ2VUeXBlW10pIHtcbiAgaWYgKCFldmVudHMgfHwgZXZlbnRzLmxlbmd0aCA9PT0gMCkge1xuICAgIGV2ZW50cyA9IFsnYWRkZWQnLCAncmVtb3ZlZCcsICdtb2RpZmllZCddO1xuICB9XG4gIHJldHVybiBldmVudHM7XG59XG5cbi8qKlxuICogQW5ndWxhckZpcmVzdG9yZUNvbGxlY3Rpb24gc2VydmljZVxuICpcbiAqIFRoaXMgY2xhc3MgY3JlYXRlcyBhIHJlZmVyZW5jZSB0byBhIEZpcmVzdG9yZSBDb2xsZWN0aW9uLiBBIHJlZmVyZW5jZSBhbmQgYSBxdWVyeSBhcmUgcHJvdmlkZWQgaW5cbiAqIGluIHRoZSBjb25zdHJ1Y3Rvci4gVGhlIHF1ZXJ5IGNhbiBiZSB0aGUgdW5xdWVyaWVkIHJlZmVyZW5jZSBpZiBubyBxdWVyeSBpcyBkZXNpcmVkLlRoZSBjbGFzc1xuICogaXMgZ2VuZXJpYyB3aGljaCBnaXZlcyB5b3UgdHlwZSBzYWZldHkgZm9yIGRhdGEgdXBkYXRlIG1ldGhvZHMgYW5kIGRhdGEgc3RyZWFtaW5nLlxuICpcbiAqIFRoaXMgY2xhc3MgdXNlcyBTeW1ib2wub2JzZXJ2YWJsZSB0byB0cmFuc2Zvcm0gaW50byBPYnNlcnZhYmxlIHVzaW5nIE9ic2VydmFibGUuZnJvbSgpLlxuICpcbiAqIFRoaXMgY2xhc3MgaXMgcmFyZWx5IHVzZWQgZGlyZWN0bHkgYW5kIHNob3VsZCBiZSBjcmVhdGVkIGZyb20gdGhlIEFuZ3VsYXJGaXJlc3RvcmUgc2VydmljZS5cbiAqXG4gKiBFeGFtcGxlOlxuICpcbiAqIGNvbnN0IGNvbGxlY3Rpb25SZWYgPSBmaXJlYmFzZS5maXJlc3RvcmUuY29sbGVjdGlvbignc3RvY2tzJyk7XG4gKiBjb25zdCBxdWVyeSA9IGNvbGxlY3Rpb25SZWYud2hlcmUoJ3ByaWNlJywgJz4nLCAnMC4wMScpO1xuICogY29uc3QgZmFrZVN0b2NrID0gbmV3IEFuZ3VsYXJGaXJlc3RvcmVDb2xsZWN0aW9uPFN0b2NrPihjb2xsZWN0aW9uUmVmLCBxdWVyeSk7XG4gKlxuICogLy8gTk9URSE6IHRoZSB1cGRhdGVzIGFyZSBwZXJmb3JtZWQgb24gdGhlIHJlZmVyZW5jZSBub3QgdGhlIHF1ZXJ5XG4gKiBhd2FpdCBmYWtlU3RvY2suYWRkKHsgbmFtZTogJ0ZBS0UnLCBwcmljZTogMC4wMSB9KTtcbiAqXG4gKiAvLyBTdWJzY3JpYmUgdG8gY2hhbmdlcyBhcyBzbmFwc2hvdHMuIFRoaXMgcHJvdmlkZXMgeW91IGRhdGEgdXBkYXRlcyBhcyB3ZWxsIGFzIGRlbHRhIHVwZGF0ZXMuXG4gKiBmYWtlU3RvY2sudmFsdWVDaGFuZ2VzKCkuc3Vic2NyaWJlKHZhbHVlID0+IGNvbnNvbGUubG9nKHZhbHVlKSk7XG4gKi9cbmV4cG9ydCBjbGFzcyBBbmd1bGFyRmlyZXN0b3JlQ29sbGVjdGlvbjxUID0gRG9jdW1lbnREYXRhPiB7XG4gIC8qKlxuICAgKiBUaGUgY29uc3RydWN0b3IgdGFrZXMgaW4gYSBDb2xsZWN0aW9uUmVmZXJlbmNlIGFuZCBRdWVyeSB0byBwcm92aWRlIHdyYXBwZXIgbWV0aG9kc1xuICAgKiBmb3IgZGF0YSBvcGVyYXRpb25zIGFuZCBkYXRhIHN0cmVhbWluZy5cbiAgICpcbiAgICogTm90ZTogRGF0YSBvcGVyYXRpb24gbWV0aG9kcyBhcmUgZG9uZSBvbiB0aGUgcmVmZXJlbmNlIG5vdCB0aGUgcXVlcnkuIFRoaXMgbWVhbnNcbiAgICogd2hlbiB5b3UgdXBkYXRlIGRhdGEgaXQgaXMgbm90IHVwZGF0aW5nIGRhdGEgdG8gdGhlIHdpbmRvdyBvZiB5b3VyIHF1ZXJ5IHVubGVzc1xuICAgKiB0aGUgZGF0YSBmaXRzIHRoZSBjcml0ZXJpYSBvZiB0aGUgcXVlcnkuIFNlZSB0aGUgQXNzb2NpYXRlZFJlZmVuY2UgdHlwZSBmb3IgZGV0YWlsc1xuICAgKiBvbiB0aGlzIGltcGxpY2F0aW9uLlxuICAgKi9cbiAgY29uc3RydWN0b3IoXG4gICAgcHVibGljIHJlYWRvbmx5IHJlZjogQ29sbGVjdGlvblJlZmVyZW5jZTxUPixcbiAgICBwcml2YXRlIHJlYWRvbmx5IHF1ZXJ5OiBRdWVyeTxUPixcbiAgICBwcml2YXRlIHJlYWRvbmx5IGFmczogQW5ndWxhckZpcmVzdG9yZSkgeyB9XG5cbiAgLyoqXG4gICAqIExpc3RlbiB0byB0aGUgbGF0ZXN0IGNoYW5nZSBpbiB0aGUgc3RyZWFtLiBUaGlzIG1ldGhvZCByZXR1cm5zIGNoYW5nZXNcbiAgICogYXMgdGhleSBvY2N1ciBhbmQgdGhleSBhcmUgbm90IHNvcnRlZCBieSBxdWVyeSBvcmRlci4gVGhpcyBhbGxvd3MgeW91IHRvIGNvbnN0cnVjdFxuICAgKiB5b3VyIG93biBkYXRhIHN0cnVjdHVyZS5cbiAgICovXG4gIHN0YXRlQ2hhbmdlcyhldmVudHM/OiBEb2N1bWVudENoYW5nZVR5cGVbXSk6IE9ic2VydmFibGU8RG9jdW1lbnRDaGFuZ2VBY3Rpb248VD5bXT4ge1xuICAgIGxldCBzb3VyY2UgPSBkb2NDaGFuZ2VzPFQ+KHRoaXMucXVlcnksIHRoaXMuYWZzLnNjaGVkdWxlcnMub3V0c2lkZUFuZ3VsYXIpO1xuICAgIGlmIChldmVudHMgJiYgZXZlbnRzLmxlbmd0aCA+IDApIHtcbiAgICAgIHNvdXJjZSA9IHNvdXJjZS5waXBlKFxuICAgICAgICBtYXAoYWN0aW9ucyA9PiBhY3Rpb25zLmZpbHRlcihjaGFuZ2UgPT4gZXZlbnRzLmluZGV4T2YoY2hhbmdlLnR5cGUpID4gLTEpKVxuICAgICAgKTtcbiAgICB9XG4gICAgcmV0dXJuIHNvdXJjZS5waXBlKFxuICAgICAgLy8gV2Ugd2FudCB0byBmaWx0ZXIgb3V0IGVtcHR5IGFycmF5cywgYnV0IGFsd2F5cyBlbWl0IGF0IGZpcnN0LCBzbyB0aGUgZGV2ZWxvcGVyIGtub3dzXG4gICAgICAvLyB0aGF0IHRoZSBjb2xsZWN0aW9uIGhhcyBiZWVuIHJlc29sdmU7IGV2ZW4gaWYgaXQncyBlbXB0eVxuICAgICAgc3RhcnRXaXRoPERvY3VtZW50Q2hhbmdlQWN0aW9uPFQ+W10sIHVuZGVmaW5lZD4odW5kZWZpbmVkKSxcbiAgICAgIHBhaXJ3aXNlKCksXG4gICAgICBmaWx0ZXIoKFtwcmlvciwgY3VycmVudF0pID0+IGN1cnJlbnQubGVuZ3RoID4gMCB8fCAhcHJpb3IpLFxuICAgICAgbWFwKChbcHJpb3IsIGN1cnJlbnRdKSA9PiBjdXJyZW50KSxcbiAgICAgIGtlZXBVbnN0YWJsZVVudGlsRmlyc3RcbiAgICApO1xuICB9XG5cbiAgLyoqXG4gICAqIENyZWF0ZSBhIHN0cmVhbSBvZiBjaGFuZ2VzIGFzIHRoZXkgb2NjdXIgaXQgdGltZS4gVGhpcyBtZXRob2QgaXMgc2ltaWxhciB0byBzdGF0ZUNoYW5nZXMoKVxuICAgKiBidXQgaXQgY29sbGVjdHMgZWFjaCBldmVudCBpbiBhbiBhcnJheSBvdmVyIHRpbWUuXG4gICAqL1xuICBhdWRpdFRyYWlsKGV2ZW50cz86IERvY3VtZW50Q2hhbmdlVHlwZVtdKTogT2JzZXJ2YWJsZTxEb2N1bWVudENoYW5nZUFjdGlvbjxUPltdPiB7XG4gICAgcmV0dXJuIHRoaXMuc3RhdGVDaGFuZ2VzKGV2ZW50cykucGlwZShzY2FuKChjdXJyZW50LCBhY3Rpb24pID0+IFsuLi5jdXJyZW50LCAuLi5hY3Rpb25dLCBbXSkpO1xuICB9XG5cbiAgLyoqXG4gICAqIENyZWF0ZSBhIHN0cmVhbSBvZiBzeW5jaHJvbml6ZWQgY2hhbmdlcy4gVGhpcyBtZXRob2Qga2VlcHMgdGhlIGxvY2FsIGFycmF5IGluIHNvcnRlZFxuICAgKiBxdWVyeSBvcmRlci5cbiAgICovXG4gIHNuYXBzaG90Q2hhbmdlcyhldmVudHM/OiBEb2N1bWVudENoYW5nZVR5cGVbXSk6IE9ic2VydmFibGU8RG9jdW1lbnRDaGFuZ2VBY3Rpb248VD5bXT4ge1xuICAgIGNvbnN0IHZhbGlkYXRlZEV2ZW50cyA9IHZhbGlkYXRlRXZlbnRzQXJyYXkoZXZlbnRzKTtcbiAgICBjb25zdCBzY2hlZHVsZWRTb3J0ZWRDaGFuZ2VzJCA9IHNvcnRlZENoYW5nZXM8VD4odGhpcy5xdWVyeSwgdmFsaWRhdGVkRXZlbnRzLCB0aGlzLmFmcy5zY2hlZHVsZXJzLm91dHNpZGVBbmd1bGFyKTtcbiAgICByZXR1cm4gc2NoZWR1bGVkU29ydGVkQ2hhbmdlcyQucGlwZShcbiAgICAgIGtlZXBVbnN0YWJsZVVudGlsRmlyc3RcbiAgICApO1xuICB9XG5cbiAgLyoqXG4gICAqIExpc3RlbiB0byBhbGwgZG9jdW1lbnRzIGluIHRoZSBjb2xsZWN0aW9uIGFuZCBpdHMgcG9zc2libGUgcXVlcnkgYXMgYW4gT2JzZXJ2YWJsZS5cbiAgICpcbiAgICogSWYgdGhlIGBpZEZpZWxkYCBvcHRpb24gaXMgcHJvdmlkZWQsIGRvY3VtZW50IElEcyBhcmUgaW5jbHVkZWQgYW5kIG1hcHBlZCB0byB0aGVcbiAgICogcHJvdmlkZWQgYGlkRmllbGRgIHByb3BlcnR5IG5hbWUuXG4gICAqL1xuICB2YWx1ZUNoYW5nZXMoKTogT2JzZXJ2YWJsZTxUW10+O1xuICAvLyB0c2xpbnQ6ZGlzYWJsZS1uZXh0LWxpbmU6dW5pZmllZC1zaWduYXR1cmVzXG4gIHZhbHVlQ2hhbmdlcyh7fSk6IE9ic2VydmFibGU8VFtdPjtcbiAgdmFsdWVDaGFuZ2VzPEsgZXh0ZW5kcyBzdHJpbmc+KG9wdGlvbnM6IHtpZEZpZWxkOiBLfSk6IE9ic2VydmFibGU8KFQgJiB7IFtUIGluIEtdOiBzdHJpbmcgfSlbXT47XG4gIHZhbHVlQ2hhbmdlczxLIGV4dGVuZHMgc3RyaW5nPihvcHRpb25zOiB7aWRGaWVsZD86IEt9ID0ge30pOiBPYnNlcnZhYmxlPFRbXT4ge1xuICAgIHJldHVybiBmcm9tQ29sbGVjdGlvblJlZjxUPih0aGlzLnF1ZXJ5LCB0aGlzLmFmcy5zY2hlZHVsZXJzLm91dHNpZGVBbmd1bGFyKVxuICAgICAgLnBpcGUoXG4gICAgICAgIG1hcChhY3Rpb25zID0+IGFjdGlvbnMucGF5bG9hZC5kb2NzLm1hcChhID0+IHtcbiAgICAgICAgICBpZiAob3B0aW9ucy5pZEZpZWxkKSB7XG4gICAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgICAuLi5hLmRhdGEoKSBhcyB7fSxcbiAgICAgICAgICAgICAgLi4ueyBbb3B0aW9ucy5pZEZpZWxkXTogYS5pZCB9XG4gICAgICAgICAgICB9IGFzIFQgJiB7IFtUIGluIEtdOiBzdHJpbmcgfTtcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgcmV0dXJuIGEuZGF0YSgpO1xuICAgICAgICAgIH1cbiAgICAgICAgfSkpLFxuICAgICAgICBrZWVwVW5zdGFibGVVbnRpbEZpcnN0XG4gICAgICApO1xuICB9XG5cbiAgLyoqXG4gICAqIFJldHJpZXZlIHRoZSByZXN1bHRzIG9mIHRoZSBxdWVyeSBvbmNlLlxuICAgKi9cbiAgZ2V0KG9wdGlvbnM/OiBmaXJlYmFzZS5maXJlc3RvcmUuR2V0T3B0aW9ucykge1xuICAgIHJldHVybiBmcm9tKHRoaXMucXVlcnkuZ2V0KG9wdGlvbnMpKS5waXBlKFxuICAgICAga2VlcFVuc3RhYmxlVW50aWxGaXJzdCxcbiAgICApO1xuICB9XG5cbiAgLyoqXG4gICAqIEFkZCBkYXRhIHRvIGEgY29sbGVjdGlvbiByZWZlcmVuY2UuXG4gICAqXG4gICAqIE5vdGU6IERhdGEgb3BlcmF0aW9uIG1ldGhvZHMgYXJlIGRvbmUgb24gdGhlIHJlZmVyZW5jZSBub3QgdGhlIHF1ZXJ5LiBUaGlzIG1lYW5zXG4gICAqIHdoZW4geW91IHVwZGF0ZSBkYXRhIGl0IGlzIG5vdCB1cGRhdGluZyBkYXRhIHRvIHRoZSB3aW5kb3cgb2YgeW91ciBxdWVyeSB1bmxlc3NcbiAgICogdGhlIGRhdGEgZml0cyB0aGUgY3JpdGVyaWEgb2YgdGhlIHF1ZXJ5LlxuICAgKi9cbiAgYWRkKGRhdGE6IFQpOiBQcm9taXNlPERvY3VtZW50UmVmZXJlbmNlPFQ+PiB7XG4gICAgcmV0dXJuIHRoaXMucmVmLmFkZChkYXRhKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDcmVhdGUgYSByZWZlcmVuY2UgdG8gYSBzaW5nbGUgZG9jdW1lbnQgaW4gYSBjb2xsZWN0aW9uLlxuICAgKi9cbiAgZG9jPFQyID0gVD4ocGF0aD86IHN0cmluZyk6IEFuZ3VsYXJGaXJlc3RvcmVEb2N1bWVudDxUMj4ge1xuICAgIC8vIFRPRE8gaXMgdGhlcmUgYSBiZXR0ZXIgd2F5IHRvIHNvbHZlIHRoaXMgdHlwZSBpc3N1ZVxuICAgIHJldHVybiBuZXcgQW5ndWxhckZpcmVzdG9yZURvY3VtZW50KHRoaXMucmVmLmRvYyhwYXRoKSBhcyBhbnksIHRoaXMuYWZzKTtcbiAgfVxufVxuIl19
@@ -1,81 +0,0 @@
1
- import { from } from 'rxjs';
2
- import { fromCollectionRef } from '../observable/fromRef';
3
- import { filter, map, scan } from 'rxjs/operators';
4
- import { keepUnstableUntilFirst } from '@angular/fire';
5
- import { validateEventsArray } from '../collection/collection';
6
- import { docChanges, sortedChanges } from '../collection/changes';
7
- /**
8
- * AngularFirestoreCollectionGroup service
9
- *
10
- * This class holds a reference to a Firestore Collection Group Query.
11
- *
12
- * This class uses Symbol.observable to transform into Observable using Observable.from().
13
- *
14
- * This class is rarely used directly and should be created from the AngularFirestore service.
15
- *
16
- * Example:
17
- *
18
- * const collectionGroup = firebase.firestore.collectionGroup('stocks');
19
- * const query = collectionRef.where('price', '>', '0.01');
20
- * const fakeStock = new AngularFirestoreCollectionGroup<Stock>(query, afs);
21
- *
22
- * // Subscribe to changes as snapshots. This provides you data updates as well as delta updates.
23
- * fakeStock.valueChanges().subscribe(value => console.log(value));
24
- */
25
- export class AngularFirestoreCollectionGroup {
26
- /**
27
- * The constructor takes in a CollectionGroupQuery to provide wrapper methods
28
- * for data operations and data streaming.
29
- */
30
- constructor(query, afs) {
31
- this.query = query;
32
- this.afs = afs;
33
- }
34
- /**
35
- * Listen to the latest change in the stream. This method returns changes
36
- * as they occur and they are not sorted by query order. This allows you to construct
37
- * your own data structure.
38
- */
39
- stateChanges(events) {
40
- if (!events || events.length === 0) {
41
- return docChanges(this.query, this.afs.schedulers.outsideAngular).pipe(keepUnstableUntilFirst);
42
- }
43
- return docChanges(this.query, this.afs.schedulers.outsideAngular)
44
- .pipe(map(actions => actions.filter(change => events.indexOf(change.type) > -1)), filter(changes => changes.length > 0), keepUnstableUntilFirst);
45
- }
46
- /**
47
- * Create a stream of changes as they occur it time. This method is similar to stateChanges()
48
- * but it collects each event in an array over time.
49
- */
50
- auditTrail(events) {
51
- return this.stateChanges(events).pipe(scan((current, action) => [...current, ...action], []));
52
- }
53
- /**
54
- * Create a stream of synchronized changes. This method keeps the local array in sorted
55
- * query order.
56
- */
57
- snapshotChanges(events) {
58
- const validatedEvents = validateEventsArray(events);
59
- const scheduledSortedChanges$ = sortedChanges(this.query, validatedEvents, this.afs.schedulers.outsideAngular);
60
- return scheduledSortedChanges$.pipe(keepUnstableUntilFirst);
61
- }
62
- valueChanges(options = {}) {
63
- const fromCollectionRefScheduled$ = fromCollectionRef(this.query, this.afs.schedulers.outsideAngular);
64
- return fromCollectionRefScheduled$
65
- .pipe(map(actions => actions.payload.docs.map(a => {
66
- if (options.idField) {
67
- return Object.assign({ [options.idField]: a.id }, a.data());
68
- }
69
- else {
70
- return a.data();
71
- }
72
- })), keepUnstableUntilFirst);
73
- }
74
- /**
75
- * Retrieve the results of the query once.
76
- */
77
- get(options) {
78
- return from(this.query.get(options)).pipe(keepUnstableUntilFirst);
79
- }
80
- }
81
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29sbGVjdGlvbi1ncm91cC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9jb21wYXQvZmlyZXN0b3JlL2NvbGxlY3Rpb24tZ3JvdXAvY29sbGVjdGlvbi1ncm91cC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsSUFBSSxFQUFjLE1BQU0sTUFBTSxDQUFDO0FBQ3hDLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQzFELE9BQU8sRUFBRSxNQUFNLEVBQUUsR0FBRyxFQUFFLElBQUksRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRW5ELE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUd2RCxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUMvRCxPQUFPLEVBQUUsVUFBVSxFQUFFLGFBQWEsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBR2xFOzs7Ozs7Ozs7Ozs7Ozs7OztHQWlCRztBQUNILE1BQU0sT0FBTywrQkFBK0I7SUFDMUM7OztPQUdHO0lBQ0gsWUFDbUIsS0FBZSxFQUNmLEdBQXFCO1FBRHJCLFVBQUssR0FBTCxLQUFLLENBQVU7UUFDZixRQUFHLEdBQUgsR0FBRyxDQUFrQjtJQUFJLENBQUM7SUFFN0M7Ozs7T0FJRztJQUNILFlBQVksQ0FBQyxNQUE2QjtRQUN4QyxJQUFJLENBQUMsTUFBTSxJQUFJLE1BQU0sQ0FBQyxNQUFNLEtBQUssQ0FBQyxFQUFFO1lBQ2xDLE9BQU8sVUFBVSxDQUFJLElBQUksQ0FBQyxLQUFLLEVBQUUsSUFBSSxDQUFDLEdBQUcsQ0FBQyxVQUFVLENBQUMsY0FBYyxDQUFDLENBQUMsSUFBSSxDQUN2RSxzQkFBc0IsQ0FDdkIsQ0FBQztTQUNIO1FBQ0QsT0FBTyxVQUFVLENBQUksSUFBSSxDQUFDLEtBQUssRUFBRSxJQUFJLENBQUMsR0FBRyxDQUFDLFVBQVUsQ0FBQyxjQUFjLENBQUM7YUFDakUsSUFBSSxDQUNILEdBQUcsQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQzFFLE1BQU0sQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUFFLE9BQU8sQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDLEVBQ3RDLHNCQUFzQixDQUN2QixDQUFDO0lBQ04sQ0FBQztJQUVEOzs7T0FHRztJQUNILFVBQVUsQ0FBQyxNQUE2QjtRQUN0QyxPQUFPLElBQUksQ0FBQyxZQUFZLENBQUMsTUFBTSxDQUFDLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLE9BQU8sRUFBRSxNQUFNLEVBQUUsRUFBRSxDQUFDLENBQUMsR0FBRyxPQUFPLEVBQUUsR0FBRyxNQUFNLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDO0lBQ2hHLENBQUM7SUFFRDs7O09BR0c7SUFDSCxlQUFlLENBQUMsTUFBNkI7UUFDM0MsTUFBTSxlQUFlLEdBQUcsbUJBQW1CLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDcEQsTUFBTSx1QkFBdUIsR0FBRyxhQUFhLENBQUksSUFBSSxDQUFDLEtBQUssRUFBRSxlQUFlLEVBQUUsSUFBSSxDQUFDLEdBQUcsQ0FBQyxVQUFVLENBQUMsY0FBYyxDQUFDLENBQUM7UUFDbEgsT0FBTyx1QkFBdUIsQ0FBQyxJQUFJLENBQ2pDLHNCQUFzQixDQUN2QixDQUFDO0lBQ0osQ0FBQztJQVlELFlBQVksQ0FBbUIsVUFBeUIsRUFBRTtRQUN4RCxNQUFNLDJCQUEyQixHQUFHLGlCQUFpQixDQUFJLElBQUksQ0FBQyxLQUFLLEVBQUUsSUFBSSxDQUFDLEdBQUcsQ0FBQyxVQUFVLENBQUMsY0FBYyxDQUFDLENBQUM7UUFDekcsT0FBTywyQkFBMkI7YUFDL0IsSUFBSSxDQUNILEdBQUcsQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRTtZQUMxQyxJQUFJLE9BQU8sQ0FBQyxPQUFPLEVBQUU7Z0JBQ25CLE9BQU8sZ0JBQ0wsQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEVBQUUsSUFDcEIsQ0FBQyxDQUFDLElBQUksRUFBRSxDQUNnQixDQUFDO2FBQy9CO2lCQUFNO2dCQUNMLE9BQU8sQ0FBQyxDQUFDLElBQUksRUFBRSxDQUFDO2FBQ2pCO1FBQ0gsQ0FBQyxDQUFDLENBQUMsRUFDSCxzQkFBc0IsQ0FDdkIsQ0FBQztJQUNOLENBQUM7SUFFRDs7T0FFRztJQUNILEdBQUcsQ0FBQyxPQUF1QztRQUN6QyxPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FDdkMsc0JBQXNCLENBQ3ZCLENBQUM7SUFDSixDQUFDO0NBRUYiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBmcm9tLCBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBmcm9tQ29sbGVjdGlvblJlZiB9IGZyb20gJy4uL29ic2VydmFibGUvZnJvbVJlZic7XG5pbXBvcnQgeyBmaWx0ZXIsIG1hcCwgc2NhbiB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCBmaXJlYmFzZSBmcm9tICdmaXJlYmFzZS9jb21wYXQvYXBwJztcbmltcG9ydCB7IGtlZXBVbnN0YWJsZVVudGlsRmlyc3QgfSBmcm9tICdAYW5ndWxhci9maXJlJztcblxuaW1wb3J0IHsgRG9jdW1lbnRDaGFuZ2VBY3Rpb24sIERvY3VtZW50Q2hhbmdlVHlwZSwgRG9jdW1lbnREYXRhLCBRdWVyeSB9IGZyb20gJy4uL2ludGVyZmFjZXMnO1xuaW1wb3J0IHsgdmFsaWRhdGVFdmVudHNBcnJheSB9IGZyb20gJy4uL2NvbGxlY3Rpb24vY29sbGVjdGlvbic7XG5pbXBvcnQgeyBkb2NDaGFuZ2VzLCBzb3J0ZWRDaGFuZ2VzIH0gZnJvbSAnLi4vY29sbGVjdGlvbi9jaGFuZ2VzJztcbmltcG9ydCB7IEFuZ3VsYXJGaXJlc3RvcmUgfSBmcm9tICcuLi9maXJlc3RvcmUnO1xuXG4vKipcbiAqIEFuZ3VsYXJGaXJlc3RvcmVDb2xsZWN0aW9uR3JvdXAgc2VydmljZVxuICpcbiAqIFRoaXMgY2xhc3MgaG9sZHMgYSByZWZlcmVuY2UgdG8gYSBGaXJlc3RvcmUgQ29sbGVjdGlvbiBHcm91cCBRdWVyeS5cbiAqXG4gKiBUaGlzIGNsYXNzIHVzZXMgU3ltYm9sLm9ic2VydmFibGUgdG8gdHJhbnNmb3JtIGludG8gT2JzZXJ2YWJsZSB1c2luZyBPYnNlcnZhYmxlLmZyb20oKS5cbiAqXG4gKiBUaGlzIGNsYXNzIGlzIHJhcmVseSB1c2VkIGRpcmVjdGx5IGFuZCBzaG91bGQgYmUgY3JlYXRlZCBmcm9tIHRoZSBBbmd1bGFyRmlyZXN0b3JlIHNlcnZpY2UuXG4gKlxuICogRXhhbXBsZTpcbiAqXG4gKiBjb25zdCBjb2xsZWN0aW9uR3JvdXAgPSBmaXJlYmFzZS5maXJlc3RvcmUuY29sbGVjdGlvbkdyb3VwKCdzdG9ja3MnKTtcbiAqIGNvbnN0IHF1ZXJ5ID0gY29sbGVjdGlvblJlZi53aGVyZSgncHJpY2UnLCAnPicsICcwLjAxJyk7XG4gKiBjb25zdCBmYWtlU3RvY2sgPSBuZXcgQW5ndWxhckZpcmVzdG9yZUNvbGxlY3Rpb25Hcm91cDxTdG9jaz4ocXVlcnksIGFmcyk7XG4gKlxuICogLy8gU3Vic2NyaWJlIHRvIGNoYW5nZXMgYXMgc25hcHNob3RzLiBUaGlzIHByb3ZpZGVzIHlvdSBkYXRhIHVwZGF0ZXMgYXMgd2VsbCBhcyBkZWx0YSB1cGRhdGVzLlxuICogZmFrZVN0b2NrLnZhbHVlQ2hhbmdlcygpLnN1YnNjcmliZSh2YWx1ZSA9PiBjb25zb2xlLmxvZyh2YWx1ZSkpO1xuICovXG5leHBvcnQgY2xhc3MgQW5ndWxhckZpcmVzdG9yZUNvbGxlY3Rpb25Hcm91cDxUID0gRG9jdW1lbnREYXRhPiB7XG4gIC8qKlxuICAgKiBUaGUgY29uc3RydWN0b3IgdGFrZXMgaW4gYSBDb2xsZWN0aW9uR3JvdXBRdWVyeSB0byBwcm92aWRlIHdyYXBwZXIgbWV0aG9kc1xuICAgKiBmb3IgZGF0YSBvcGVyYXRpb25zIGFuZCBkYXRhIHN0cmVhbWluZy5cbiAgICovXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgcmVhZG9ubHkgcXVlcnk6IFF1ZXJ5PFQ+LFxuICAgIHByaXZhdGUgcmVhZG9ubHkgYWZzOiBBbmd1bGFyRmlyZXN0b3JlKSB7IH1cblxuICAvKipcbiAgICogTGlzdGVuIHRvIHRoZSBsYXRlc3QgY2hhbmdlIGluIHRoZSBzdHJlYW0uIFRoaXMgbWV0aG9kIHJldHVybnMgY2hhbmdlc1xuICAgKiBhcyB0aGV5IG9jY3VyIGFuZCB0aGV5IGFyZSBub3Qgc29ydGVkIGJ5IHF1ZXJ5IG9yZGVyLiBUaGlzIGFsbG93cyB5b3UgdG8gY29uc3RydWN0XG4gICAqIHlvdXIgb3duIGRhdGEgc3RydWN0dXJlLlxuICAgKi9cbiAgc3RhdGVDaGFuZ2VzKGV2ZW50cz86IERvY3VtZW50Q2hhbmdlVHlwZVtdKTogT2JzZXJ2YWJsZTxEb2N1bWVudENoYW5nZUFjdGlvbjxUPltdPiB7XG4gICAgaWYgKCFldmVudHMgfHwgZXZlbnRzLmxlbmd0aCA9PT0gMCkge1xuICAgICAgcmV0dXJuIGRvY0NoYW5nZXM8VD4odGhpcy5xdWVyeSwgdGhpcy5hZnMuc2NoZWR1bGVycy5vdXRzaWRlQW5ndWxhcikucGlwZShcbiAgICAgICAga2VlcFVuc3RhYmxlVW50aWxGaXJzdFxuICAgICAgKTtcbiAgICB9XG4gICAgcmV0dXJuIGRvY0NoYW5nZXM8VD4odGhpcy5xdWVyeSwgdGhpcy5hZnMuc2NoZWR1bGVycy5vdXRzaWRlQW5ndWxhcilcbiAgICAgIC5waXBlKFxuICAgICAgICBtYXAoYWN0aW9ucyA9PiBhY3Rpb25zLmZpbHRlcihjaGFuZ2UgPT4gZXZlbnRzLmluZGV4T2YoY2hhbmdlLnR5cGUpID4gLTEpKSxcbiAgICAgICAgZmlsdGVyKGNoYW5nZXMgPT4gIGNoYW5nZXMubGVuZ3RoID4gMCksXG4gICAgICAgIGtlZXBVbnN0YWJsZVVudGlsRmlyc3RcbiAgICAgICk7XG4gIH1cblxuICAvKipcbiAgICogQ3JlYXRlIGEgc3RyZWFtIG9mIGNoYW5nZXMgYXMgdGhleSBvY2N1ciBpdCB0aW1lLiBUaGlzIG1ldGhvZCBpcyBzaW1pbGFyIHRvIHN0YXRlQ2hhbmdlcygpXG4gICAqIGJ1dCBpdCBjb2xsZWN0cyBlYWNoIGV2ZW50IGluIGFuIGFycmF5IG92ZXIgdGltZS5cbiAgICovXG4gIGF1ZGl0VHJhaWwoZXZlbnRzPzogRG9jdW1lbnRDaGFuZ2VUeXBlW10pOiBPYnNlcnZhYmxlPERvY3VtZW50Q2hhbmdlQWN0aW9uPFQ+W10+IHtcbiAgICByZXR1cm4gdGhpcy5zdGF0ZUNoYW5nZXMoZXZlbnRzKS5waXBlKHNjYW4oKGN1cnJlbnQsIGFjdGlvbikgPT4gWy4uLmN1cnJlbnQsIC4uLmFjdGlvbl0sIFtdKSk7XG4gIH1cblxuICAvKipcbiAgICogQ3JlYXRlIGEgc3RyZWFtIG9mIHN5bmNocm9uaXplZCBjaGFuZ2VzLiBUaGlzIG1ldGhvZCBrZWVwcyB0aGUgbG9jYWwgYXJyYXkgaW4gc29ydGVkXG4gICAqIHF1ZXJ5IG9yZGVyLlxuICAgKi9cbiAgc25hcHNob3RDaGFuZ2VzKGV2ZW50cz86IERvY3VtZW50Q2hhbmdlVHlwZVtdKTogT2JzZXJ2YWJsZTxEb2N1bWVudENoYW5nZUFjdGlvbjxUPltdPiB7XG4gICAgY29uc3QgdmFsaWRhdGVkRXZlbnRzID0gdmFsaWRhdGVFdmVudHNBcnJheShldmVudHMpO1xuICAgIGNvbnN0IHNjaGVkdWxlZFNvcnRlZENoYW5nZXMkID0gc29ydGVkQ2hhbmdlczxUPih0aGlzLnF1ZXJ5LCB2YWxpZGF0ZWRFdmVudHMsIHRoaXMuYWZzLnNjaGVkdWxlcnMub3V0c2lkZUFuZ3VsYXIpO1xuICAgIHJldHVybiBzY2hlZHVsZWRTb3J0ZWRDaGFuZ2VzJC5waXBlKFxuICAgICAga2VlcFVuc3RhYmxlVW50aWxGaXJzdFxuICAgICk7XG4gIH1cblxuICAvKipcbiAgICogTGlzdGVuIHRvIGFsbCBkb2N1bWVudHMgaW4gdGhlIGNvbGxlY3Rpb24gYW5kIGl0cyBwb3NzaWJsZSBxdWVyeSBhcyBhbiBPYnNlcnZhYmxlLlxuICAgKlxuICAgKiBJZiB0aGUgYGlkRmllbGRgIG9wdGlvbiBpcyBwcm92aWRlZCwgZG9jdW1lbnQgSURzIGFyZSBpbmNsdWRlZCBhbmQgbWFwcGVkIHRvIHRoZVxuICAgKiBwcm92aWRlZCBgaWRGaWVsZGAgcHJvcGVydHkgbmFtZS5cbiAgICovXG4gIHZhbHVlQ2hhbmdlcygpOiBPYnNlcnZhYmxlPFRbXT47XG4gIC8vIHRzbGludDpkaXNhYmxlLW5leHQtbGluZTp1bmlmaWVkLXNpZ25hdHVyZXNcbiAgdmFsdWVDaGFuZ2VzKHt9KTogT2JzZXJ2YWJsZTxUW10+O1xuICB2YWx1ZUNoYW5nZXM8SyBleHRlbmRzIHN0cmluZz4ob3B0aW9uczoge2lkRmllbGQ6IEt9KTogT2JzZXJ2YWJsZTwoVCAmIHsgW1QgaW4gS106IHN0cmluZyB9KVtdPjtcbiAgdmFsdWVDaGFuZ2VzPEsgZXh0ZW5kcyBzdHJpbmc+KG9wdGlvbnM6IHtpZEZpZWxkPzogS30gPSB7fSk6IE9ic2VydmFibGU8VFtdPiB7XG4gICAgY29uc3QgZnJvbUNvbGxlY3Rpb25SZWZTY2hlZHVsZWQkID0gZnJvbUNvbGxlY3Rpb25SZWY8VD4odGhpcy5xdWVyeSwgdGhpcy5hZnMuc2NoZWR1bGVycy5vdXRzaWRlQW5ndWxhcik7XG4gICAgcmV0dXJuIGZyb21Db2xsZWN0aW9uUmVmU2NoZWR1bGVkJFxuICAgICAgLnBpcGUoXG4gICAgICAgIG1hcChhY3Rpb25zID0+IGFjdGlvbnMucGF5bG9hZC5kb2NzLm1hcChhID0+IHtcbiAgICAgICAgICBpZiAob3B0aW9ucy5pZEZpZWxkKSB7XG4gICAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgICBbb3B0aW9ucy5pZEZpZWxkXTogYS5pZCxcbiAgICAgICAgICAgICAgLi4uYS5kYXRhKClcbiAgICAgICAgICAgIH0gYXMgVCAmIHsgW1QgaW4gS106IHN0cmluZyB9O1xuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICByZXR1cm4gYS5kYXRhKCk7XG4gICAgICAgICAgfVxuICAgICAgICB9KSksXG4gICAgICAgIGtlZXBVbnN0YWJsZVVudGlsRmlyc3RcbiAgICAgICk7XG4gIH1cblxuICAvKipcbiAgICogUmV0cmlldmUgdGhlIHJlc3VsdHMgb2YgdGhlIHF1ZXJ5IG9uY2UuXG4gICAqL1xuICBnZXQob3B0aW9ucz86IGZpcmViYXNlLmZpcmVzdG9yZS5HZXRPcHRpb25zKSB7XG4gICAgcmV0dXJuIGZyb20odGhpcy5xdWVyeS5nZXQob3B0aW9ucykpLnBpcGUoXG4gICAgICBrZWVwVW5zdGFibGVVbnRpbEZpcnN0XG4gICAgKTtcbiAgfVxuXG59XG4iXX0=
@@ -1,82 +0,0 @@
1
- import { from } from 'rxjs';
2
- import { keepUnstableUntilFirst } from '@angular/fire';
3
- import { fromDocRef } from '../observable/fromRef';
4
- import { map } from 'rxjs/operators';
5
- import { associateQuery } from '../firestore';
6
- import { AngularFirestoreCollection } from '../collection/collection';
7
- /**
8
- * AngularFirestoreDocument service
9
- *
10
- * This class creates a reference to a Firestore Document. A reference is provided in
11
- * in the constructor. The class is generic which gives you type safety for data update
12
- * methods and data streaming.
13
- *
14
- * This class uses Symbol.observable to transform into Observable using Observable.from().
15
- *
16
- * This class is rarely used directly and should be created from the AngularFirestore service.
17
- *
18
- * Example:
19
- *
20
- * const fakeStock = new AngularFirestoreDocument<Stock>(doc('stocks/FAKE'));
21
- * await fakeStock.set({ name: 'FAKE', price: 0.01 });
22
- * fakeStock.valueChanges().map(snap => {
23
- * if(snap.exists) return snap.data();
24
- * return null;
25
- * }).subscribe(value => console.log(value));
26
- * // OR! Transform using Observable.from() and the data is unwrapped for you
27
- * Observable.from(fakeStock).subscribe(value => console.log(value));
28
- */
29
- export class AngularFirestoreDocument {
30
- /**
31
- * The constructor takes in a DocumentReference to provide wrapper methods
32
- * for data operations, data streaming, and Symbol.observable.
33
- */
34
- constructor(ref, afs) {
35
- this.ref = ref;
36
- this.afs = afs;
37
- }
38
- /**
39
- * Create or overwrite a single document.
40
- */
41
- set(data, options) {
42
- return this.ref.set(data, options);
43
- }
44
- /**
45
- * Update some fields of a document without overwriting the entire document.
46
- */
47
- update(data) {
48
- return this.ref.update(data);
49
- }
50
- /**
51
- * Delete a document.
52
- */
53
- delete() {
54
- return this.ref.delete();
55
- }
56
- /**
57
- * Create a reference to a sub-collection given a path and an optional query
58
- * function.
59
- */
60
- collection(path, queryFn) {
61
- const collectionRef = this.ref.collection(path);
62
- const { ref, query } = associateQuery(collectionRef, queryFn);
63
- return new AngularFirestoreCollection(ref, query, this.afs);
64
- }
65
- /**
66
- * Listen to snapshot updates from the document.
67
- */
68
- snapshotChanges() {
69
- const scheduledFromDocRef$ = fromDocRef(this.ref, this.afs.schedulers.outsideAngular);
70
- return scheduledFromDocRef$.pipe(keepUnstableUntilFirst);
71
- }
72
- valueChanges(options = {}) {
73
- return this.snapshotChanges().pipe(map(({ payload }) => options.idField ? Object.assign(Object.assign({}, payload.data()), { [options.idField]: payload.id }) : payload.data()));
74
- }
75
- /**
76
- * Retrieve the document once.
77
- */
78
- get(options) {
79
- return from(this.ref.get(options)).pipe(keepUnstableUntilFirst);
80
- }
81
- }
82
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZG9jdW1lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvY29tcGF0L2ZpcmVzdG9yZS9kb2N1bWVudC9kb2N1bWVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsSUFBSSxFQUFjLE1BQU0sTUFBTSxDQUFDO0FBQ3hDLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUV2RCxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDbkQsT0FBTyxFQUFFLEdBQUcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3JDLE9BQU8sRUFBb0IsY0FBYyxFQUFFLE1BQU0sY0FBYyxDQUFDO0FBQ2hFLE9BQU8sRUFBRSwwQkFBMEIsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBR3RFOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0FxQkc7QUFDSCxNQUFNLE9BQU8sd0JBQXdCO0lBRW5DOzs7T0FHRztJQUNILFlBQW1CLEdBQXlCLEVBQVUsR0FBcUI7UUFBeEQsUUFBRyxHQUFILEdBQUcsQ0FBc0I7UUFBVSxRQUFHLEdBQUgsR0FBRyxDQUFrQjtJQUFJLENBQUM7SUFFaEY7O09BRUc7SUFDSCxHQUFHLENBQUMsSUFBTyxFQUFFLE9BQW9CO1FBQy9CLE9BQU8sSUFBSSxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsSUFBSSxFQUFFLE9BQU8sQ0FBQyxDQUFDO0lBQ3JDLENBQUM7SUFFRDs7T0FFRztJQUNILE1BQU0sQ0FBQyxJQUFnQjtRQUNyQixPQUFPLElBQUksQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQy9CLENBQUM7SUFFRDs7T0FFRztJQUNILE1BQU07UUFDSixPQUFPLElBQUksQ0FBQyxHQUFHLENBQUMsTUFBTSxFQUFFLENBQUM7SUFDM0IsQ0FBQztJQUVEOzs7T0FHRztJQUNILFVBQVUsQ0FBbUIsSUFBWSxFQUFFLE9BQWlCO1FBQzFELE1BQU0sYUFBYSxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBOEMsQ0FBQztRQUM3RixNQUFNLEVBQUUsR0FBRyxFQUFFLEtBQUssRUFBRSxHQUFHLGNBQWMsQ0FBQyxhQUFhLEVBQUUsT0FBTyxDQUFDLENBQUM7UUFDOUQsT0FBTyxJQUFJLDBCQUEwQixDQUFDLEdBQUcsRUFBRSxLQUFLLEVBQUUsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBQzlELENBQUM7SUFFRDs7T0FFRztJQUNILGVBQWU7UUFDYixNQUFNLG9CQUFvQixHQUFHLFVBQVUsQ0FBSSxJQUFJLENBQUMsR0FBRyxFQUFFLElBQUksQ0FBQyxHQUFHLENBQUMsVUFBVSxDQUFDLGNBQWMsQ0FBQyxDQUFDO1FBQ3pGLE9BQU8sb0JBQW9CLENBQUMsSUFBSSxDQUM5QixzQkFBc0IsQ0FDdkIsQ0FBQztJQUNKLENBQUM7SUFVRCxZQUFZLENBQW1CLFVBQTJCLEVBQUU7UUFDMUQsT0FBTyxJQUFJLENBQUMsZUFBZSxFQUFFLENBQUMsSUFBSSxDQUNoQyxHQUFHLENBQUMsQ0FBQyxFQUFFLE9BQU8sRUFBRSxFQUFFLEVBQUUsQ0FDbEIsT0FBTyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsZ0NBQ2IsT0FBTyxDQUFDLElBQUksRUFBRSxHQUNkLEVBQUUsQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLEVBQUUsT0FBTyxDQUFDLEVBQUUsRUFBRSxDQUNULENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxJQUFJLEVBQUUsQ0FDL0MsQ0FDRixDQUFDO0lBQ0osQ0FBQztJQUVEOztPQUVHO0lBQ0gsR0FBRyxDQUFDLE9BQXVDO1FBQ3pDLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUNyQyxzQkFBc0IsQ0FDdkIsQ0FBQztJQUNKLENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGZyb20sIE9ic2VydmFibGUgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IGtlZXBVbnN0YWJsZVVudGlsRmlyc3QgfSBmcm9tICdAYW5ndWxhci9maXJlJztcbmltcG9ydCB7IEFjdGlvbiwgRG9jdW1lbnREYXRhLCBEb2N1bWVudFJlZmVyZW5jZSwgRG9jdW1lbnRTbmFwc2hvdCwgUXVlcnlGbiwgU2V0T3B0aW9ucyB9IGZyb20gJy4uL2ludGVyZmFjZXMnO1xuaW1wb3J0IHsgZnJvbURvY1JlZiB9IGZyb20gJy4uL29ic2VydmFibGUvZnJvbVJlZic7XG5pbXBvcnQgeyBtYXAgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQgeyBBbmd1bGFyRmlyZXN0b3JlLCBhc3NvY2lhdGVRdWVyeSB9IGZyb20gJy4uL2ZpcmVzdG9yZSc7XG5pbXBvcnQgeyBBbmd1bGFyRmlyZXN0b3JlQ29sbGVjdGlvbiB9IGZyb20gJy4uL2NvbGxlY3Rpb24vY29sbGVjdGlvbic7XG5pbXBvcnQgZmlyZWJhc2UgZnJvbSAnZmlyZWJhc2UvY29tcGF0L2FwcCc7XG5cbi8qKlxuICogQW5ndWxhckZpcmVzdG9yZURvY3VtZW50IHNlcnZpY2VcbiAqXG4gKiBUaGlzIGNsYXNzIGNyZWF0ZXMgYSByZWZlcmVuY2UgdG8gYSBGaXJlc3RvcmUgRG9jdW1lbnQuIEEgcmVmZXJlbmNlIGlzIHByb3ZpZGVkIGluXG4gKiBpbiB0aGUgY29uc3RydWN0b3IuIFRoZSBjbGFzcyBpcyBnZW5lcmljIHdoaWNoIGdpdmVzIHlvdSB0eXBlIHNhZmV0eSBmb3IgZGF0YSB1cGRhdGVcbiAqIG1ldGhvZHMgYW5kIGRhdGEgc3RyZWFtaW5nLlxuICpcbiAqIFRoaXMgY2xhc3MgdXNlcyBTeW1ib2wub2JzZXJ2YWJsZSB0byB0cmFuc2Zvcm0gaW50byBPYnNlcnZhYmxlIHVzaW5nIE9ic2VydmFibGUuZnJvbSgpLlxuICpcbiAqIFRoaXMgY2xhc3MgaXMgcmFyZWx5IHVzZWQgZGlyZWN0bHkgYW5kIHNob3VsZCBiZSBjcmVhdGVkIGZyb20gdGhlIEFuZ3VsYXJGaXJlc3RvcmUgc2VydmljZS5cbiAqXG4gKiBFeGFtcGxlOlxuICpcbiAqIGNvbnN0IGZha2VTdG9jayA9IG5ldyBBbmd1bGFyRmlyZXN0b3JlRG9jdW1lbnQ8U3RvY2s+KGRvYygnc3RvY2tzL0ZBS0UnKSk7XG4gKiBhd2FpdCBmYWtlU3RvY2suc2V0KHsgbmFtZTogJ0ZBS0UnLCBwcmljZTogMC4wMSB9KTtcbiAqIGZha2VTdG9jay52YWx1ZUNoYW5nZXMoKS5tYXAoc25hcCA9PiB7XG4gKiAgIGlmKHNuYXAuZXhpc3RzKSByZXR1cm4gc25hcC5kYXRhKCk7XG4gKiAgIHJldHVybiBudWxsO1xuICogfSkuc3Vic2NyaWJlKHZhbHVlID0+IGNvbnNvbGUubG9nKHZhbHVlKSk7XG4gKiAvLyBPUiEgVHJhbnNmb3JtIHVzaW5nIE9ic2VydmFibGUuZnJvbSgpIGFuZCB0aGUgZGF0YSBpcyB1bndyYXBwZWQgZm9yIHlvdVxuICogT2JzZXJ2YWJsZS5mcm9tKGZha2VTdG9jaykuc3Vic2NyaWJlKHZhbHVlID0+IGNvbnNvbGUubG9nKHZhbHVlKSk7XG4gKi9cbmV4cG9ydCBjbGFzcyBBbmd1bGFyRmlyZXN0b3JlRG9jdW1lbnQ8VCA9IERvY3VtZW50RGF0YT4ge1xuXG4gIC8qKlxuICAgKiBUaGUgY29uc3RydWN0b3IgdGFrZXMgaW4gYSBEb2N1bWVudFJlZmVyZW5jZSB0byBwcm92aWRlIHdyYXBwZXIgbWV0aG9kc1xuICAgKiBmb3IgZGF0YSBvcGVyYXRpb25zLCBkYXRhIHN0cmVhbWluZywgYW5kIFN5bWJvbC5vYnNlcnZhYmxlLlxuICAgKi9cbiAgY29uc3RydWN0b3IocHVibGljIHJlZjogRG9jdW1lbnRSZWZlcmVuY2U8VD4sIHByaXZhdGUgYWZzOiBBbmd1bGFyRmlyZXN0b3JlKSB7IH1cblxuICAvKipcbiAgICogQ3JlYXRlIG9yIG92ZXJ3cml0ZSBhIHNpbmdsZSBkb2N1bWVudC5cbiAgICovXG4gIHNldChkYXRhOiBULCBvcHRpb25zPzogU2V0T3B0aW9ucyk6IFByb21pc2U8dm9pZD4ge1xuICAgIHJldHVybiB0aGlzLnJlZi5zZXQoZGF0YSwgb3B0aW9ucyk7XG4gIH1cblxuICAvKipcbiAgICogVXBkYXRlIHNvbWUgZmllbGRzIG9mIGEgZG9jdW1lbnQgd2l0aG91dCBvdmVyd3JpdGluZyB0aGUgZW50aXJlIGRvY3VtZW50LlxuICAgKi9cbiAgdXBkYXRlKGRhdGE6IFBhcnRpYWw8VD4pOiBQcm9taXNlPHZvaWQ+IHtcbiAgICByZXR1cm4gdGhpcy5yZWYudXBkYXRlKGRhdGEpO1xuICB9XG5cbiAgLyoqXG4gICAqIERlbGV0ZSBhIGRvY3VtZW50LlxuICAgKi9cbiAgZGVsZXRlKCk6IFByb21pc2U8dm9pZD4ge1xuICAgIHJldHVybiB0aGlzLnJlZi5kZWxldGUoKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDcmVhdGUgYSByZWZlcmVuY2UgdG8gYSBzdWItY29sbGVjdGlvbiBnaXZlbiBhIHBhdGggYW5kIGFuIG9wdGlvbmFsIHF1ZXJ5XG4gICAqIGZ1bmN0aW9uLlxuICAgKi9cbiAgY29sbGVjdGlvbjxSID0gRG9jdW1lbnREYXRhPihwYXRoOiBzdHJpbmcsIHF1ZXJ5Rm4/OiBRdWVyeUZuKTogQW5ndWxhckZpcmVzdG9yZUNvbGxlY3Rpb248Uj4ge1xuICAgIGNvbnN0IGNvbGxlY3Rpb25SZWYgPSB0aGlzLnJlZi5jb2xsZWN0aW9uKHBhdGgpIGFzIGZpcmViYXNlLmZpcmVzdG9yZS5Db2xsZWN0aW9uUmVmZXJlbmNlPFI+O1xuICAgIGNvbnN0IHsgcmVmLCBxdWVyeSB9ID0gYXNzb2NpYXRlUXVlcnkoY29sbGVjdGlvblJlZiwgcXVlcnlGbik7XG4gICAgcmV0dXJuIG5ldyBBbmd1bGFyRmlyZXN0b3JlQ29sbGVjdGlvbihyZWYsIHF1ZXJ5LCB0aGlzLmFmcyk7XG4gIH1cblxuICAvKipcbiAgICogTGlzdGVuIHRvIHNuYXBzaG90IHVwZGF0ZXMgZnJvbSB0aGUgZG9jdW1lbnQuXG4gICAqL1xuICBzbmFwc2hvdENoYW5nZXMoKTogT2JzZXJ2YWJsZTxBY3Rpb248RG9jdW1lbnRTbmFwc2hvdDxUPj4+IHtcbiAgICBjb25zdCBzY2hlZHVsZWRGcm9tRG9jUmVmJCA9IGZyb21Eb2NSZWY8VD4odGhpcy5yZWYsIHRoaXMuYWZzLnNjaGVkdWxlcnMub3V0c2lkZUFuZ3VsYXIpO1xuICAgIHJldHVybiBzY2hlZHVsZWRGcm9tRG9jUmVmJC5waXBlKFxuICAgICAga2VlcFVuc3RhYmxlVW50aWxGaXJzdFxuICAgICk7XG4gIH1cblxuICAvKipcbiAgICogTGlzdGVuIHRvIHVud3JhcHBlZCBzbmFwc2hvdCB1cGRhdGVzIGZyb20gdGhlIGRvY3VtZW50LlxuICAgKlxuICAgKiBJZiB0aGUgYGlkRmllbGRgIG9wdGlvbiBpcyBwcm92aWRlZCwgZG9jdW1lbnQgSURzIGFyZSBpbmNsdWRlZCBhbmQgbWFwcGVkIHRvIHRoZVxuICAgKiBwcm92aWRlZCBgaWRGaWVsZGAgcHJvcGVydHkgbmFtZS5cbiAgICovXG4gIHZhbHVlQ2hhbmdlcyhvcHRpb25zPzogeyB9KTogT2JzZXJ2YWJsZTxUIHwgdW5kZWZpbmVkPjtcbiAgdmFsdWVDaGFuZ2VzPEsgZXh0ZW5kcyBzdHJpbmc+KG9wdGlvbnM6IHsgaWRGaWVsZDogSyB9KTogT2JzZXJ2YWJsZTwoVCAmIHsgW1QgaW4gS106IHN0cmluZyB9KSB8IHVuZGVmaW5lZD47XG4gIHZhbHVlQ2hhbmdlczxLIGV4dGVuZHMgc3RyaW5nPihvcHRpb25zOiB7IGlkRmllbGQ/OiBLIH0gPSB7fSk6IE9ic2VydmFibGU8VCB8IHVuZGVmaW5lZD4ge1xuICAgIHJldHVybiB0aGlzLnNuYXBzaG90Q2hhbmdlcygpLnBpcGUoXG4gICAgICBtYXAoKHsgcGF5bG9hZCB9KSA9PlxuICAgICAgICBvcHRpb25zLmlkRmllbGQgPyB7XG4gICAgICAgICAgLi4ucGF5bG9hZC5kYXRhKCksXG4gICAgICAgICAgLi4ueyBbb3B0aW9ucy5pZEZpZWxkXTogcGF5bG9hZC5pZCB9XG4gICAgICAgIH0gYXMgVCAmIHsgW1QgaW4gS106IHN0cmluZyB9IDogcGF5bG9hZC5kYXRhKClcbiAgICAgIClcbiAgICApO1xuICB9XG5cbiAgLyoqXG4gICAqIFJldHJpZXZlIHRoZSBkb2N1bWVudCBvbmNlLlxuICAgKi9cbiAgZ2V0KG9wdGlvbnM/OiBmaXJlYmFzZS5maXJlc3RvcmUuR2V0T3B0aW9ucykge1xuICAgIHJldHVybiBmcm9tKHRoaXMucmVmLmdldChvcHRpb25zKSkucGlwZShcbiAgICAgIGtlZXBVbnN0YWJsZVVudGlsRmlyc3QsXG4gICAgKTtcbiAgfVxufVxuIl19
@@ -1,254 +0,0 @@
1
- import { Inject, Injectable, InjectionToken, NgZone, Optional, PLATFORM_ID } from '@angular/core';
2
- import { from, of } from 'rxjs';
3
- import { AngularFirestoreDocument } from './document/document';
4
- import { AngularFirestoreCollection } from './collection/collection';
5
- import { AngularFirestoreCollectionGroup } from './collection-group/collection-group';
6
- import { ɵAngularFireSchedulers } from '@angular/fire';
7
- import { ɵfirebaseAppFactory, FIREBASE_APP_NAME, FIREBASE_OPTIONS, ɵcacheInstance } from '@angular/fire/compat';
8
- import { isPlatformServer } from '@angular/common';
9
- import 'firebase/compat/auth';
10
- import 'firebase/compat/firestore';
11
- import { AngularFireAuth, USE_EMULATOR as USE_AUTH_EMULATOR, SETTINGS as AUTH_SETTINGS, TENANT_ID, LANGUAGE_CODE, USE_DEVICE_LANGUAGE, PERSISTENCE, ɵauthFactory, } from '@angular/fire/compat/auth';
12
- import { AppCheckInstances } from '@angular/fire/app-check';
13
- import * as i0 from "@angular/core";
14
- import * as i1 from "@angular/fire";
15
- import * as i2 from "@angular/fire/compat/auth";
16
- import * as i3 from "@angular/fire/app-check";
17
- /**
18
- * The value of this token determines whether or not the firestore will have persistance enabled
19
- */
20
- export const ENABLE_PERSISTENCE = new InjectionToken('angularfire2.enableFirestorePersistence');
21
- export const PERSISTENCE_SETTINGS = new InjectionToken('angularfire2.firestore.persistenceSettings');
22
- export const SETTINGS = new InjectionToken('angularfire2.firestore.settings');
23
- export const USE_EMULATOR = new InjectionToken('angularfire2.firestore.use-emulator');
24
- /**
25
- * A utility methods for associating a collection reference with
26
- * a query.
27
- *
28
- * @param collectionRef - A collection reference to query
29
- * @param queryFn - The callback to create a query
30
- *
31
- * Example:
32
- * const { query, ref } = associateQuery(docRef.collection('items'), ref => {
33
- * return ref.where('age', '<', 200);
34
- * });
35
- */
36
- export function associateQuery(collectionRef, queryFn = ref => ref) {
37
- const query = queryFn(collectionRef);
38
- const ref = collectionRef;
39
- return { query, ref };
40
- }
41
- /**
42
- * AngularFirestore Service
43
- *
44
- * This service is the main entry point for this feature module. It provides
45
- * an API for creating Collection and Reference services. These services can
46
- * then be used to do data updates and observable streams of the data.
47
- *
48
- * Example:
49
- *
50
- * import { Component } from '@angular/core';
51
- * import { AngularFirestore, AngularFirestoreCollection, AngularFirestoreDocument } from '@angular/fire/firestore';
52
- * import { Observable } from 'rxjs/Observable';
53
- * import { from } from 'rxjs/observable';
54
- *
55
- * @Component({
56
- * selector: 'app-my-component',
57
- * template: `
58
- * <h2>Items for {{ (profile | async)?.name }}
59
- * <ul>
60
- * <li *ngFor="let item of items | async">{{ item.name }}</li>
61
- * </ul>
62
- * <div class="control-input">
63
- * <input type="text" #itemname />
64
- * <button (click)="addItem(itemname.value)">Add Item</button>
65
- * </div>
66
- * `
67
- * })
68
- * export class MyComponent implements OnInit {
69
- *
70
- * // services for data operations and data streaming
71
- * private readonly itemsRef: AngularFirestoreCollection<Item>;
72
- * private readonly profileRef: AngularFirestoreDocument<Profile>;
73
- *
74
- * // observables for template
75
- * items: Observable<Item[]>;
76
- * profile: Observable<Profile>;
77
- *
78
- * // inject main service
79
- * constructor(private readonly afs: AngularFirestore) {}
80
- *
81
- * ngOnInit() {
82
- * this.itemsRef = afs.collection('items', ref => ref.where('user', '==', 'davideast').limit(10));
83
- * this.items = this.itemsRef.valueChanges().map(snap => snap.docs.map(data => doc.data()));
84
- * // this.items = from(this.itemsRef); // you can also do this with no mapping
85
- *
86
- * this.profileRef = afs.doc('users/davideast');
87
- * this.profile = this.profileRef.valueChanges();
88
- * }
89
- *
90
- * addItem(name: string) {
91
- * const user = 'davideast';
92
- * this.itemsRef.add({ name, user });
93
- * }
94
- * }
95
- */
96
- export class AngularFirestore {
97
- /**
98
- * Each Feature of AngularFire has a FirebaseApp injected. This way we
99
- * don't rely on the main Firebase App instance and we can create named
100
- * apps and use multiple apps.
101
- */
102
- constructor(options, name, shouldEnablePersistence, settings,
103
- // tslint:disable-next-line:ban-types
104
- platformId, zone, schedulers, persistenceSettings, _useEmulator, auth, useAuthEmulator, authSettings, // can't use firebase.auth.AuthSettings here
105
- tenantId, languageCode, useDeviceLanguage, persistence, _appCheckInstances) {
106
- this.schedulers = schedulers;
107
- const app = ɵfirebaseAppFactory(options, zone, name);
108
- const useEmulator = _useEmulator;
109
- if (auth) {
110
- ɵauthFactory(app, zone, useAuthEmulator, tenantId, languageCode, useDeviceLanguage, authSettings, persistence);
111
- }
112
- [this.firestore, this.persistenceEnabled$] = ɵcacheInstance(`${app.name}.firestore`, 'AngularFirestore', app.name, () => {
113
- const firestore = zone.runOutsideAngular(() => app.firestore());
114
- if (settings) {
115
- firestore.settings(settings);
116
- }
117
- if (useEmulator) {
118
- firestore.useEmulator(...useEmulator);
119
- }
120
- if (shouldEnablePersistence && !isPlatformServer(platformId)) {
121
- // We need to try/catch here because not all enablePersistence() failures are caught
122
- // https://github.com/firebase/firebase-js-sdk/issues/608
123
- const enablePersistence = () => {
124
- try {
125
- return from(firestore.enablePersistence(persistenceSettings || undefined).then(() => true, () => false));
126
- }
127
- catch (e) {
128
- if (typeof console !== 'undefined') {
129
- console.warn(e);
130
- }
131
- return of(false);
132
- }
133
- };
134
- return [firestore, zone.runOutsideAngular(enablePersistence)];
135
- }
136
- else {
137
- return [firestore, of(false)];
138
- }
139
- }, [settings, useEmulator, shouldEnablePersistence]);
140
- }
141
- collection(pathOrRef, queryFn) {
142
- let collectionRef;
143
- if (typeof pathOrRef === 'string') {
144
- collectionRef = this.firestore.collection(pathOrRef);
145
- }
146
- else {
147
- collectionRef = pathOrRef;
148
- }
149
- const { ref, query } = associateQuery(collectionRef, queryFn);
150
- const refInZone = this.schedulers.ngZone.run(() => ref);
151
- return new AngularFirestoreCollection(refInZone, query, this);
152
- }
153
- /**
154
- * Create a reference to a Firestore Collection Group based on a collectionId
155
- * and an optional query function to narrow the result
156
- * set.
157
- */
158
- collectionGroup(collectionId, queryGroupFn) {
159
- const queryFn = queryGroupFn || (ref => ref);
160
- const collectionGroup = this.firestore.collectionGroup(collectionId);
161
- return new AngularFirestoreCollectionGroup(queryFn(collectionGroup), this);
162
- }
163
- doc(pathOrRef) {
164
- let ref;
165
- if (typeof pathOrRef === 'string') {
166
- ref = this.firestore.doc(pathOrRef);
167
- }
168
- else {
169
- ref = pathOrRef;
170
- }
171
- const refInZone = this.schedulers.ngZone.run(() => ref);
172
- return new AngularFirestoreDocument(refInZone, this);
173
- }
174
- /**
175
- * Returns a generated Firestore Document Id.
176
- */
177
- createId() {
178
- return this.firestore.collection('_').doc().id;
179
- }
180
- }
181
- AngularFirestore.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.1.3", ngImport: i0, type: AngularFirestore, deps: [{ token: FIREBASE_OPTIONS }, { token: FIREBASE_APP_NAME, optional: true }, { token: ENABLE_PERSISTENCE, optional: true }, { token: SETTINGS, optional: true }, { token: PLATFORM_ID }, { token: i0.NgZone }, { token: i1.ɵAngularFireSchedulers }, { token: PERSISTENCE_SETTINGS, optional: true }, { token: USE_EMULATOR, optional: true }, { token: i2.AngularFireAuth, optional: true }, { token: USE_AUTH_EMULATOR, optional: true }, { token: AUTH_SETTINGS, optional: true }, { token: TENANT_ID, optional: true }, { token: LANGUAGE_CODE, optional: true }, { token: USE_DEVICE_LANGUAGE, optional: true }, { token: PERSISTENCE, optional: true }, { token: i3.AppCheckInstances, optional: true }], target: i0.ɵɵFactoryTarget.Injectable });
182
- AngularFirestore.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "12.1.3", ngImport: i0, type: AngularFirestore, providedIn: 'any' });
183
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.1.3", ngImport: i0, type: AngularFirestore, decorators: [{
184
- type: Injectable,
185
- args: [{
186
- providedIn: 'any'
187
- }]
188
- }], ctorParameters: function () { return [{ type: undefined, decorators: [{
189
- type: Inject,
190
- args: [FIREBASE_OPTIONS]
191
- }] }, { type: undefined, decorators: [{
192
- type: Optional
193
- }, {
194
- type: Inject,
195
- args: [FIREBASE_APP_NAME]
196
- }] }, { type: undefined, decorators: [{
197
- type: Optional
198
- }, {
199
- type: Inject,
200
- args: [ENABLE_PERSISTENCE]
201
- }] }, { type: undefined, decorators: [{
202
- type: Optional
203
- }, {
204
- type: Inject,
205
- args: [SETTINGS]
206
- }] }, { type: Object, decorators: [{
207
- type: Inject,
208
- args: [PLATFORM_ID]
209
- }] }, { type: i0.NgZone }, { type: i1.ɵAngularFireSchedulers }, { type: undefined, decorators: [{
210
- type: Optional
211
- }, {
212
- type: Inject,
213
- args: [PERSISTENCE_SETTINGS]
214
- }] }, { type: undefined, decorators: [{
215
- type: Optional
216
- }, {
217
- type: Inject,
218
- args: [USE_EMULATOR]
219
- }] }, { type: i2.AngularFireAuth, decorators: [{
220
- type: Optional
221
- }] }, { type: undefined, decorators: [{
222
- type: Optional
223
- }, {
224
- type: Inject,
225
- args: [USE_AUTH_EMULATOR]
226
- }] }, { type: undefined, decorators: [{
227
- type: Optional
228
- }, {
229
- type: Inject,
230
- args: [AUTH_SETTINGS]
231
- }] }, { type: undefined, decorators: [{
232
- type: Optional
233
- }, {
234
- type: Inject,
235
- args: [TENANT_ID]
236
- }] }, { type: undefined, decorators: [{
237
- type: Optional
238
- }, {
239
- type: Inject,
240
- args: [LANGUAGE_CODE]
241
- }] }, { type: undefined, decorators: [{
242
- type: Optional
243
- }, {
244
- type: Inject,
245
- args: [USE_DEVICE_LANGUAGE]
246
- }] }, { type: undefined, decorators: [{
247
- type: Optional
248
- }, {
249
- type: Inject,
250
- args: [PERSISTENCE]
251
- }] }, { type: i3.AppCheckInstances, decorators: [{
252
- type: Optional
253
- }] }]; } });
254
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlyZXN0b3JlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL2NvbXBhdC9maXJlc3RvcmUvZmlyZXN0b3JlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFFLGNBQWMsRUFBRSxNQUFNLEVBQUUsUUFBUSxFQUFFLFdBQVcsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNsRyxPQUFPLEVBQUUsSUFBSSxFQUFjLEVBQUUsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQVc1QyxPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUMvRCxPQUFPLEVBQUUsMEJBQTBCLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUNyRSxPQUFPLEVBQUUsK0JBQStCLEVBQUUsTUFBTSxxQ0FBcUMsQ0FBQztBQUN0RixPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDdkQsT0FBTyxFQUFlLG1CQUFtQixFQUFFLGlCQUFpQixFQUFFLGdCQUFnQixFQUFFLGNBQWMsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBRTdILE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBRW5ELE9BQU8sc0JBQXNCLENBQUM7QUFDOUIsT0FBTywyQkFBMkIsQ0FBQztBQUNuQyxPQUFPLEVBQ0wsZUFBZSxFQUNmLFlBQVksSUFBSSxpQkFBaUIsRUFDakMsUUFBUSxJQUFJLGFBQWEsRUFDekIsU0FBUyxFQUNULGFBQWEsRUFDYixtQkFBbUIsRUFDbkIsV0FBVyxFQUNYLFlBQVksR0FDYixNQUFNLDJCQUEyQixDQUFDO0FBQ25DLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLHlCQUF5QixDQUFDOzs7OztBQUU1RDs7R0FFRztBQUNILE1BQU0sQ0FBQyxNQUFNLGtCQUFrQixHQUFHLElBQUksY0FBYyxDQUFVLHlDQUF5QyxDQUFDLENBQUM7QUFDekcsTUFB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LFFBQVE7OzBCQUFJLE1BQU07MkJBQUMsb0JBQW9COzswQkFDdkMsUUFBUTs7MEJBQUksTUFBTTsyQkFBQyxZQUFZOzswQkFDL0IsUUFBUTs7MEJBQ1IsUUFBUTs7MEJBQUksTUFBTTsyQkFBQyxpQkFBaUI7OzBCQUNwQyxRQUFROzswQkFBSSxNQUFNOzJCQUFDLGFBQWE7OzBCQUNoQyxRQUFROzswQkFBSSxNQUFNOzJCQUFDLFNBQVM7OzBCQUM1QixRQUFROzswQkFBSSxNQUFNOzJCQUFDLGFBQWE7OzBCQUNoQyxRQUFROzswQkFBSSxNQUFNOzJCQUFDLG1CQUFtQjs7MEJBQ3RDLFFBQVE7OzBCQUFJLE1BQU07MkJBQUMsV0FBVzs7MEJBQzlCLFFBQVEiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3QsIEluamVjdGFibGUsIEluamVjdGlvblRva2VuLCBOZ1pvbmUsIE9wdGlvbmFsLCBQTEFURk9STV9JRCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgZnJvbSwgT2JzZXJ2YWJsZSwgb2YgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7XG4gIEFzc29jaWF0ZWRSZWZlcmVuY2UsXG4gIENvbGxlY3Rpb25SZWZlcmVuY2UsXG4gIERvY3VtZW50UmVmZXJlbmNlLFxuICBQZXJzaXN0ZW5jZVNldHRpbmdzLFxuICBRdWVyeSxcbiAgUXVlcnlGbixcbiAgUXVlcnlHcm91cEZuLFxuICBTZXR0aW5nc1xufSBmcm9tICcuL2ludGVyZmFjZXMnO1xuaW1wb3J0IHsgQW5ndWxhckZpcmVzdG9yZURvY3VtZW50IH0gZnJvbSAnLi9kb2N1bWVudC9kb2N1bWVudCc7XG5pbXBvcnQgeyBBbmd1bGFyRmlyZXN0b3JlQ29sbGVjdGlvbiB9IGZyb20gJy4vY29sbGVjdGlvbi9jb2xsZWN0aW9uJztcbmltcG9ydCB7IEFuZ3VsYXJGaXJlc3RvcmVDb2xsZWN0aW9uR3JvdXAgfSBmcm9tICcuL2NvbGxlY3Rpb24tZ3JvdXAvY29sbGVjdGlvbi1ncm91cCc7XG5pbXBvcnQgeyDJtUFuZ3VsYXJGaXJlU2NoZWR1bGVycyB9IGZyb20gJ0Bhbmd1bGFyL2ZpcmUnO1xuaW1wb3J0IHsgRmlyZWJhc2VBcHAsIMm1ZmlyZWJhc2VBcHBGYWN0b3J5LCBGSVJFQkFTRV9BUFBfTkFNRSwgRklSRUJBU0VfT1BUSU9OUywgybVjYWNoZUluc3RhbmNlIH0gZnJvbSAnQGFuZ3VsYXIvZmlyZS9jb21wYXQnO1xuaW1wb3J0IHsgRmlyZWJhc2VPcHRpb25zIH0gZnJvbSAnZmlyZWJhc2UvYXBwJztcbmltcG9ydCB7IGlzUGxhdGZvcm1TZXJ2ZXIgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IGZpcmViYXNlIGZyb20gJ2ZpcmViYXNlL2NvbXBhdC9hcHAnO1xuaW1wb3J0ICdmaXJlYmFzZS9jb21wYXQvYXV0aCc7XG5pbXBvcnQgJ2ZpcmViYXNlL2NvbXBhdC9maXJlc3RvcmUnO1xuaW1wb3J0IHtcbiAgQW5ndWxhckZpcmVBdXRoLFxuICBVU0VfRU1VTEFUT1IgYXMgVVNFX0FVVEhfRU1VTEFUT1IsXG4gIFNFVFRJTkdTIGFzIEFVVEhfU0VUVElOR1MsXG4gIFRFTkFOVF9JRCxcbiAgTEFOR1VBR0VfQ09ERSxcbiAgVVNFX0RFVklDRV9MQU5HVUFHRSxcbiAgUEVSU0lTVEVOQ0UsXG4gIMm1YXV0aEZhY3RvcnksXG59IGZyb20gJ0Bhbmd1bGFyL2ZpcmUvY29tcGF0L2F1dGgnO1xuaW1wb3J0IHsgQXBwQ2hlY2tJbnN0YW5jZXMgfSBmcm9tICdAYW5ndWxhci9maXJlL2FwcC1jaGVjayc7XG5cbi8qKlxuICogVGhlIHZhbHVlIG9mIHRoaXMgdG9rZW4gZGV0ZXJtaW5lcyB3aGV0aGVyIG9yIG5vdCB0aGUgZmlyZXN0b3JlIHdpbGwgaGF2ZSBwZXJzaXN0YW5jZSBlbmFibGVkXG4gKi9cbmV4cG9ydCBjb25zdCBFTkFCTEVfUEVSU0lTVEVOQ0UgPSBuZXcgSW5qZWN0aW9uVG9rZW48Ym9vbGVhbj4oJ2FuZ3VsYXJmaXJlMi5lbmFibGVGaXJlc3RvcmVQZXJzaXN0ZW5jZScpO1xuZXhwb3J0IGNvbnN0IFBFUlNJU1RFTkNFX1NFVFRJTkdTID0gbmV3IEluamVjdGlvblRva2VuPFBlcnNpc3RlbmNlU2V0dGluZ3MgfCB1bmRlZmluZWQ+KCdhbmd1bGFyZmlyZTIuZmlyZXN0b3JlLnBlcnNpc3RlbmNlU2V0dGluZ3MnKTtcbmV4cG9ydCBjb25zdCBTRVRUSU5HUyA9IG5ldyBJbmplY3Rpb25Ub2tlbjxTZXR0aW5ncz4oJ2FuZ3VsYXJmaXJlMi5maXJlc3RvcmUuc2V0dGluZ3MnKTtcblxudHlwZSBVc2VFbXVsYXRvckFyZ3VtZW50cyA9IFBhcmFtZXRlcnM8ZmlyZWJhc2UuZmlyZXN0b3JlLkZpcmVzdG9yZVsndXNlRW11bGF0b3InXT47XG5leHBvcnQgY29uc3QgVVNFX0VNVUxBVE9SID0gbmV3IEluamVjdGlvblRva2VuPFVzZUVtdWxhdG9yQXJndW1lbnRzPignYW5ndWxhcmZpcmUyLmZpcmVzdG9yZS51c2UtZW11bGF0b3InKTtcblxuLyoqXG4gKiBBIHV0aWxpdHkgbWV0aG9kcyBmb3IgYXNzb2NpYXRpbmcgYSBjb2xsZWN0aW9uIHJlZmVyZW5jZSB3aXRoXG4gKiBhIHF1ZXJ5LlxuICpcbiAqIEBwYXJhbSBjb2xsZWN0aW9uUmVmIC0gQSBjb2xsZWN0aW9uIHJlZmVyZW5jZSB0byBxdWVyeVxuICogQHBhcmFtIHF1ZXJ5Rm4gLSBUaGUgY2FsbGJhY2sgdG8gY3JlYXRlIGEgcXVlcnlcbiAqXG4gKiBFeGFtcGxlOlxuICogY29uc3QgeyBxdWVyeSwgcmVmIH0gPSBhc3NvY2lhdGVRdWVyeShkb2NSZWYuY29sbGVjdGlvbignaXRlbXMnKSwgcmVmID0+IHtcbiAqICByZXR1cm4gcmVmLndoZXJlKCdhZ2UnLCAnPCcsIDIwMCk7XG4gKiB9KTtcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGFzc29jaWF0ZVF1ZXJ5PFQ+KGNvbGxlY3Rpb25SZWY6IENvbGxlY3Rpb25SZWZlcmVuY2U8VD4sIHF1ZXJ5Rm4gPSByZWYgPT4gcmVmKTogQXNzb2NpYXRlZFJlZmVyZW5jZTxUPiB7XG4gIGNvbnN0IHF1ZXJ5ID0gcXVlcnlGbihjb2xsZWN0aW9uUmVmKTtcbiAgY29uc3QgcmVmID0gY29sbGVjdGlvblJlZjtcbiAgcmV0dXJuIHsgcXVlcnksIHJlZiB9O1xufVxuXG50eXBlIEluc3RhbmNlQ2FjaGUgPSBNYXA8RmlyZWJhc2VBcHAsIFtcbiAgZmlyZWJhc2UuZmlyZXN0b3JlLkZpcmVzdG9yZSxcbiAgZmlyZWJhc2UuZmlyZXN0b3JlLlNldHRpbmdzIHwgbnVsbCxcbiAgVXNlRW11bGF0b3JBcmd1bWVudHMgfCBudWxsLFxuICBib29sZWFuIHwgbnVsbF1cbj47XG5cbi8qKlxuICogQW5ndWxhckZpcmVzdG9yZSBTZXJ2aWNlXG4gKlxuICogVGhpcyBzZXJ2aWNlIGlzIHRoZSBtYWluIGVudHJ5IHBvaW50IGZvciB0aGlzIGZlYXR1cmUgbW9kdWxlLiBJdCBwcm92aWRlc1xuICogYW4gQVBJIGZvciBjcmVhdGluZyBDb2xsZWN0aW9uIGFuZCBSZWZlcmVuY2Ugc2VydmljZXMuIFRoZXNlIHNlcnZpY2VzIGNhblxuICogdGhlbiBiZSB1c2VkIHRvIGRvIGRhdGEgdXBkYXRlcyBhbmQgb2JzZXJ2YWJsZSBzdHJlYW1zIG9mIHRoZSBkYXRhLlxuICpcbiAqIEV4YW1wbGU6XG4gKlxuICogaW1wb3J0IHsgQ29tcG9uZW50IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG4gKiBpbXBvcnQgeyBBbmd1bGFyRmlyZXN0b3JlLCBBbmd1bGFyRmlyZXN0b3JlQ29sbGVjdGlvbiwgQW5ndWxhckZpcmVzdG9yZURvY3VtZW50IH0gZnJvbSAnQGFuZ3VsYXIvZmlyZS9maXJlc3RvcmUnO1xuICogaW1wb3J0IHsgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMvT2JzZXJ2YWJsZSc7XG4gKiBpbXBvcnQgeyBmcm9tIH0gZnJvbSAncnhqcy9vYnNlcnZhYmxlJztcbiAqXG4gKiBAQ29tcG9uZW50KHtcbiAqICAgc2VsZWN0b3I6ICdhcHAtbXktY29tcG9uZW50JyxcbiAqICAgdGVtcGxhdGU6IGBcbiAqICAgIDxoMj5JdGVtcyBmb3Ige3sgKHByb2ZpbGUgfCBhc3luYyk/Lm5hbWUgfX1cbiAqICAgIDx1bD5cbiAqICAgICAgIDxsaSAqbmdGb3I9XCJsZXQgaXRlbSBvZiBpdGVtcyB8IGFzeW5jXCI+e3sgaXRlbS5uYW1lIH19PC9saT5cbiAqICAgIDwvdWw+XG4gKiAgICA8ZGl2IGNsYXNzPVwiY29udHJvbC1pbnB1dFwiPlxuICogICAgICAgPGlucHV0IHR5cGU9XCJ0ZXh0XCIgI2l0ZW1uYW1lIC8+XG4gKiAgICAgICA8YnV0dG9uIChjbGljayk9XCJhZGRJdGVtKGl0ZW1uYW1lLnZhbHVlKVwiPkFkZCBJdGVtPC9idXR0b24+XG4gKiAgICA8L2Rpdj5cbiAqICAgYFxuICogfSlcbiAqIGV4cG9ydCBjbGFzcyBNeUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XG4gKlxuICogICAvLyBzZXJ2aWNlcyBmb3IgZGF0YSBvcGVyYXRpb25zIGFuZCBkYXRhIHN0cmVhbWluZ1xuICogICBwcml2YXRlIHJlYWRvbmx5IGl0ZW1zUmVmOiBBbmd1bGFyRmlyZXN0b3JlQ29sbGVjdGlvbjxJdGVtPjtcbiAqICAgcHJpdmF0ZSByZWFkb25seSBwcm9maWxlUmVmOiBBbmd1bGFyRmlyZXN0b3JlRG9jdW1lbnQ8UHJvZmlsZT47XG4gKlxuICogICAvLyBvYnNlcnZhYmxlcyBmb3IgdGVtcGxhdGVcbiAqICAgaXRlbXM6IE9ic2VydmFibGU8SXRlbVtdPjtcbiAqICAgcHJvZmlsZTogT2JzZXJ2YWJsZTxQcm9maWxlPjtcbiAqXG4gKiAgIC8vIGluamVjdCBtYWluIHNlcnZpY2VcbiAqICAgY29uc3RydWN0b3IocHJpdmF0ZSByZWFkb25seSBhZnM6IEFuZ3VsYXJGaXJlc3RvcmUpIHt9XG4gKlxuICogICBuZ09uSW5pdCgpIHtcbiAqICAgICB0aGlzLml0ZW1zUmVmID0gYWZzLmNvbGxlY3Rpb24oJ2l0ZW1zJywgcmVmID0+IHJlZi53aGVyZSgndXNlcicsICc9PScsICdkYXZpZGVhc3QnKS5saW1pdCgxMCkpO1xuICogICAgIHRoaXMuaXRlbXMgPSB0aGlzLml0ZW1zUmVmLnZhbHVlQ2hhbmdlcygpLm1hcChzbmFwID0+IHNuYXAuZG9jcy5tYXAoZGF0YSA9PiBkb2MuZGF0YSgpKSk7XG4gKiAgICAgLy8gdGhpcy5pdGVtcyA9IGZyb20odGhpcy5pdGVtc1JlZik7IC8vIHlvdSBjYW4gYWxzbyBkbyB0aGlzIHdpdGggbm8gbWFwcGluZ1xuICpcbiAqICAgICB0aGlzLnByb2ZpbGVSZWYgPSBhZnMuZG9jKCd1c2Vycy9kYXZpZGVhc3QnKTtcbiAqICAgICB0aGlzLnByb2ZpbGUgPSB0aGlzLnByb2ZpbGVSZWYudmFsdWVDaGFuZ2VzKCk7XG4gKiAgIH1cbiAqXG4gKiAgIGFkZEl0ZW0obmFtZTogc3RyaW5nKSB7XG4gKiAgICAgY29uc3QgdXNlciA9ICdkYXZpZGVhc3QnO1xuICogICAgIHRoaXMuaXRlbXNSZWYuYWRkKHsgbmFtZSwgdXNlciB9KTtcbiAqICAgfVxuICogfVxuICovXG5ASW5qZWN0YWJsZSh7XG4gIHByb3ZpZGVkSW46ICdhbnknXG59KVxuZXhwb3J0IGNsYXNzIEFuZ3VsYXJGaXJlc3RvcmUge1xuICBwdWJsaWMgcmVhZG9ubHkgZmlyZXN0b3JlOiBmaXJlYmFzZS5maXJlc3RvcmUuRmlyZXN0b3JlO1xuICBwdWJsaWMgcmVhZG9ubHkgcGVyc2lzdGVuY2VFbmFibGVkJDogT2JzZXJ2YWJsZTxib29sZWFuPjtcblxuICAvKipcbiAgICogRWFjaCBGZWF0dXJlIG9mIEFuZ3VsYXJGaXJlIGhhcyBhIEZpcmViYXNlQXBwIGluamVjdGVkLiBUaGlzIHdheSB3ZVxuICAgKiBkb24ndCByZWx5IG9uIHRoZSBtYWluIEZpcmViYXNlIEFwcCBpbnN0YW5jZSBhbmQgd2UgY2FuIGNyZWF0ZSBuYW1lZFxuICAgKiBhcHBzIGFuZCB1c2UgbXVsdGlwbGUgYXBwcy5cbiAgICovXG4gIGNvbnN0cnVjdG9yKFxuICAgIEBJbmplY3QoRklSRUJBU0VfT1BUSU9OUykgb3B0aW9uczogRmlyZWJhc2VPcHRpb25zLFxuICAgIEBPcHRpb25hbCgpIEBJbmplY3QoRklSRUJBU0VfQVBQX05BTUUpIG5hbWU6IHN0cmluZyB8IG51bGwgfCB1bmRlZmluZWQsXG4gICAgQE9wdGlvbmFsKCkgQEluamVjdChFTkFCTEVfUEVSU0lTVEVOQ0UpIHNob3VsZEVuYWJsZVBlcnNpc3RlbmNlOiBib29sZWFuIHwgbnVsbCxcbiAgICBAT3B0aW9uYWwoKSBASW5qZWN0KFNFVFRJTkdTKSBzZXR0aW5nczogU2V0dGluZ3MgfCBudWxsLFxuICAgIC8vIHRzbGludDpkaXNhYmxlLW5leHQtbGluZTpiYW4tdHlwZXNcbiAgICBASW5qZWN0KFBMQVRGT1JNX0lEKSBwbGF0Zm9ybUlkOiBPYmplY3QsXG4gICAgem9uZTogTmdab25lLFxuICAgIHB1YmxpYyBzY2hlZHVsZXJzOiDJtUFuZ3VsYXJGaXJlU2NoZWR1bGVycyxcbiAgICBAT3B0aW9uYWwoKSBASW5qZWN0KFBFUlNJU1RFTkNFX1NFVFRJTkdTKSBwZXJzaXN0ZW5jZVNldHRpbmdzOiBQZXJzaXN0ZW5jZVNldHRpbmdzIHwgbnVsbCxcbiAgICBAT3B0aW9uYWwoKSBASW5qZWN0KFVTRV9FTVVMQVRPUikgX3VzZUVtdWxhdG9yOiBhbnksXG4gICAgQE9wdGlvbmFsKCkgYXV0aDogQW5ndWxhckZpcmVBdXRoLFxuICAgIEBPcHRpb25hbCgpIEBJbmplY3QoVVNFX0FVVEhfRU1VTEFUT1IpIHVzZUF1dGhFbXVsYXRvcjogYW55LFxuICAgIEBPcHRpb25hbCgpIEBJbmplY3QoQVVUSF9TRVRUSU5HUykgYXV0aFNldHRpbmdzOiBhbnksIC8vIGNhbid0IHVzZSBmaXJlYmFzZS5hdXRoLkF1dGhTZXR0aW5ncyBoZXJlXG4gICAgQE9wdGlvbmFsKCkgQEluamVjdChURU5BTlRfSUQpIHRlbmFudElkOiBzdHJpbmcgfCBudWxsLFxuICAgIEBPcHRpb25hbCgpIEBJbmplY3QoTEFOR1VBR0VfQ09ERSkgbGFuZ3VhZ2VDb2RlOiBzdHJpbmcgfCBudWxsLFxuICAgIEBPcHRpb25hbCgpIEBJbmplY3QoVVNFX0RFVklDRV9MQU5HVUFHRSkgdXNlRGV2aWNlTGFuZ3VhZ2U6IGJvb2xlYW4gfCBudWxsLFxuICAgIEBPcHRpb25hbCgpIEBJbmplY3QoUEVSU0lTVEVOQ0UpIHBlcnNpc3RlbmNlOiBzdHJpbmcgfCBudWxsLFxuICAgIEBPcHRpb25hbCgpIF9hcHBDaGVja0luc3RhbmNlczogQXBwQ2hlY2tJbnN0YW5jZXMsXG4gICkge1xuICAgIGNvbnN0IGFwcCA9IMm1ZmlyZWJhc2VBcHBGYWN0b3J5KG9wdGlvbnMsIHpvbmUsIG5hbWUpO1xuICAgIGNvbnN0IHVzZUVtdWxhdG9yOiBVc2VFbXVsYXRvckFyZ3VtZW50cyB8IG51bGwgPSBfdXNlRW11bGF0b3I7XG5cbiAgICBpZiAoYXV0aCkge1xuICAgICAgybVhdXRoRmFjdG9yeShhcHAsIHpvbmUsIHVzZUF1dGhFbXVsYXRvciwgdGVuYW50SWQsIGxhbmd1YWdlQ29kZSwgdXNlRGV2aWNlTGFuZ3VhZ2UsIGF1dGhTZXR0aW5ncywgcGVyc2lzdGVuY2UpO1xuICAgIH1cblxuICAgIFt0aGlzLmZpcmVzdG9yZSwgdGhpcy5wZXJzaXN0ZW5jZUVuYWJsZWQkXSA9IMm1Y2FjaGVJbnN0YW5jZShgJHthcHAubmFtZX0uZmlyZXN0b3JlYCwgJ0FuZ3VsYXJGaXJlc3RvcmUnLCBhcHAubmFtZSwgKCkgPT4ge1xuICAgICAgY29uc3QgZmlyZXN0b3JlID0gem9uZS5ydW5PdXRzaWRlQW5ndWxhcigoKSA9PiBhcHAuZmlyZXN0b3JlKCkpO1xuICAgICAgaWYgKHNldHRpbmdzKSB7XG4gICAgICAgIGZpcmVzdG9yZS5zZXR0aW5ncyhzZXR0aW5ncyk7XG4gICAgICB9XG4gICAgICBpZiAodXNlRW11bGF0b3IpIHtcbiAgICAgICAgZmlyZXN0b3JlLnVzZUVtdWxhdG9yKC4uLnVzZUVtdWxhdG9yKTtcbiAgICAgIH1cblxuICAgICAgaWYgKHNob3VsZEVuYWJsZVBlcnNpc3RlbmNlICYmICFpc1BsYXRmb3JtU2VydmVyKHBsYXRmb3JtSWQpKSB7XG4gICAgICAgIC8vIFdlIG5lZWQgdG8gdHJ5L2NhdGNoIGhlcmUgYmVjYXVzZSBub3QgYWxsIGVuYWJsZVBlcnNpc3RlbmNlKCkgZmFpbHVyZXMgYXJlIGNhdWdodFxuICAgICAgICAvLyBodHRwczovL2dpdGh1Yi5jb20vZmlyZWJhc2UvZmlyZWJhc2UtanMtc2RrL2lzc3Vlcy82MDhcbiAgICAgICAgY29uc3QgZW5hYmxlUGVyc2lzdGVuY2UgPSAoKSA9PiB7XG4gICAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgIHJldHVybiBmcm9tKGZpcmVzdG9yZS5lbmFibGVQZXJzaXN0ZW5jZShwZXJzaXN0ZW5jZVNldHRpbmdzIHx8IHVuZGVmaW5lZCkudGhlbigoKSA9PiB0cnVlLCAoKSA9PiBmYWxzZSkpO1xuICAgICAgICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgICAgICAgIGlmICh0eXBlb2YgY29uc29sZSAhPT0gJ3VuZGVmaW5lZCcpIHsgY29uc29sZS53YXJuKGUpOyB9XG4gICAgICAgICAgICByZXR1cm4gb2YoZmFsc2UpO1xuICAgICAgICAgIH1cbiAgICAgICAgfTtcbiAgICAgICAgcmV0dXJuIFtmaXJlc3RvcmUsIHpvbmUucnVuT3V0c2lkZUFuZ3VsYXIoZW5hYmxlUGVyc2lzdGVuY2UpXTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHJldHVybiBbZmlyZXN0b3JlLCBvZihmYWxzZSldO1xuICAgICAgfVxuXG4gICAgfSwgW3NldHRpbmdzLCB1c2VFbXVsYXRvciwgc2hvdWxkRW5hYmxlUGVyc2lzdGVuY2VdKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDcmVhdGUgYSByZWZlcmVuY2UgdG8gYSBGaXJlc3RvcmUgQ29sbGVjdGlvbiBiYXNlZCBvbiBhIHBhdGggb3JcbiAgICogQ29sbGVjdGlvblJlZmVyZW5jZSBhbmQgYW4gb3B0aW9uYWwgcXVlcnkgZnVuY3Rpb24gdG8gbmFycm93IHRoZSByZXN1bHRcbiAgICogc2V0LlxuICAgKi9cbiAgY29sbGVjdGlvbjxUPihwYXRoOiBzdHJpbmcsIHF1ZXJ5Rm4/OiBRdWVyeUZuKTogQW5ndWxhckZpcmVzdG9yZUNvbGxlY3Rpb248VD47XG4gIC8vIHRzbGludDpkaXNhYmxlLW5leHQtbGluZTp1bmlmaWVkLXNpZ25hdHVyZXNcbiAgY29sbGVjdGlvbjxUPihyZWY6IENvbGxlY3Rpb25SZWZlcmVuY2UsIHF1ZXJ5Rm4/OiBRdWVyeUZuKTogQW5ndWxhckZpcmVzdG9yZUNvbGxlY3Rpb248VD47XG4gIGNvbGxlY3Rpb248VD4ocGF0aE9yUmVmOiBzdHJpbmcgfCBDb2xsZWN0aW9uUmVmZXJlbmNlPFQ+LCBxdWVyeUZuPzogUXVlcnlGbik6IEFuZ3VsYXJGaXJlc3RvcmVDb2xsZWN0aW9uPFQ+IHtcbiAgICBsZXQgY29sbGVjdGlvblJlZjogQ29sbGVjdGlvblJlZmVyZW5jZTxUPjtcbiAgICBpZiAodHlwZW9mIHBhdGhPclJlZiA9PT0gJ3N0cmluZycpIHtcbiAgICAgIGNvbGxlY3Rpb25SZWYgPSB0aGlzLmZpcmVzdG9yZS5jb2xsZWN0aW9uKHBhdGhPclJlZikgYXMgZmlyZWJhc2UuZmlyZXN0b3JlLkNvbGxlY3Rpb25SZWZlcmVuY2U8VD47XG4gICAgfSBlbHNlIHtcbiAgICAgIGNvbGxlY3Rpb25SZWYgPSBwYXRoT3JSZWY7XG4gICAgfVxuICAgIGNvbnN0IHsgcmVmLCBxdWVyeSB9ID0gYXNzb2NpYXRlUXVlcnk8VD4oY29sbGVjdGlvblJlZiwgcXVlcnlGbik7XG4gICAgY29uc3QgcmVmSW5ab25lID0gdGhpcy5zY2hlZHVsZXJzLm5nWm9uZS5ydW4oKCkgPT4gcmVmKTtcbiAgICByZXR1cm4gbmV3IEFuZ3VsYXJGaXJlc3RvcmVDb2xsZWN0aW9uPFQ+KHJlZkluWm9uZSwgcXVlcnksIHRoaXMpO1xuICB9XG5cbiAgLyoqXG4gICAqIENyZWF0ZSBhIHJlZmVyZW5jZSB0byBhIEZpcmVzdG9yZSBDb2xsZWN0aW9uIEdyb3VwIGJhc2VkIG9uIGEgY29sbGVjdGlvbklkXG4gICAqIGFuZCBhbiBvcHRpb25hbCBxdWVyeSBmdW5jdGlvbiB0byBuYXJyb3cgdGhlIHJlc3VsdFxuICAgKiBzZXQuXG4gICAqL1xuICBjb2xsZWN0aW9uR3JvdXA8VD4oY29sbGVjdGlvbklkOiBzdHJpbmcsIHF1ZXJ5R3JvdXBGbj86IFF1ZXJ5R3JvdXBGbjxUPik6IEFuZ3VsYXJGaXJlc3RvcmVDb2xsZWN0aW9uR3JvdXA8VD4ge1xuICAgIGNvbnN0IHF1ZXJ5Rm4gPSBxdWVyeUdyb3VwRm4gfHwgKHJlZiA9PiByZWYpO1xuICAgIGNvbnN0IGNvbGxlY3Rpb25Hcm91cDogUXVlcnk8VD4gPSB0aGlzLmZpcmVzdG9yZS5jb2xsZWN0aW9uR3JvdXAoY29sbGVjdGlvbklkKSBhcyBmaXJlYmFzZS5maXJlc3RvcmUuUXVlcnk8VD47XG4gICAgcmV0dXJuIG5ldyBBbmd1bGFyRmlyZXN0b3JlQ29sbGVjdGlvbkdyb3VwPFQ+KHF1ZXJ5Rm4oY29sbGVjdGlvbkdyb3VwKSwgdGhpcyk7XG4gIH1cblxuICAvKipcbiAgICogQ3JlYXRlIGEgcmVmZXJlbmNlIHRvIGEgRmlyZXN0b3JlIERvY3VtZW50IGJhc2VkIG9uIGEgcGF0aCBvclxuICAgKiBEb2N1bWVudFJlZmVyZW5jZS4gTm90ZSB0aGF0IGRvY3VtZW50cyBhcmUgbm90IHF1ZXJ5YWJsZSBiZWNhdXNlIHRoZXkgYXJlXG4gICAqIHNpbXBseSBvYmplY3RzLiBIb3dldmVyLCBkb2N1bWVudHMgaGF2ZSBzdWItY29sbGVjdGlvbnMgdGhhdCByZXR1cm4gYVxuICAgKiBDb2xsZWN0aW9uIHJlZmVyZW5jZSBhbmQgY2FuIGJlIHF1ZXJpZWQuXG4gICAqL1xuICBkb2M8VD4ocGF0aDogc3RyaW5nKTogQW5ndWxhckZpcmVzdG9yZURvY3VtZW50PFQ+O1xuICAvLyB0c2xpbnQ6ZGlzYWJsZS1uZXh0LWxpbmU6dW5pZmllZC1zaWduYXR1cmVzXG4gIGRvYzxUPihyZWY6IERvY3VtZW50UmVmZXJlbmNlKTogQW5ndWxhckZpcmVzdG9yZURvY3VtZW50PFQ+O1xuICBkb2M8VD4ocGF0aE9yUmVmOiBzdHJpbmcgfCBEb2N1bWVudFJlZmVyZW5jZTxUPik6IEFuZ3VsYXJGaXJlc3RvcmVEb2N1bWVudDxUPiB7XG4gICAgbGV0IHJlZjogRG9jdW1lbnRSZWZlcmVuY2U8VD47XG4gICAgaWYgKHR5cGVvZiBwYXRoT3JSZWYgPT09ICdzdHJpbmcnKSB7XG4gICAgICByZWYgPSB0aGlzLmZpcmVzdG9yZS5kb2MocGF0aE9yUmVmKSBhcyBmaXJlYmFzZS5maXJlc3RvcmUuRG9jdW1lbnRSZWZlcmVuY2U8VD47XG4gICAgfSBlbHNlIHtcbiAgICAgIHJlZiA9IHBhdGhPclJlZjtcbiAgICB9XG4gICAgY29uc3QgcmVmSW5ab25lID0gdGhpcy5zY2hlZHVsZXJzLm5nWm9uZS5ydW4oKCkgPT4gcmVmKTtcbiAgICByZXR1cm4gbmV3IEFuZ3VsYXJGaXJlc3RvcmVEb2N1bWVudDxUPihyZWZJblpvbmUsIHRoaXMpO1xuICB9XG5cbiAgLyoqXG4gICAqIFJldHVybnMgYSBnZW5lcmF0ZWQgRmlyZXN0b3JlIERvY3VtZW50IElkLlxuICAgKi9cbiAgY3JlYXRlSWQoKSB7XG4gICAgcmV0dXJuIHRoaXMuZmlyZXN0b3JlLmNvbGxlY3Rpb24oJ18nKS5kb2MoKS5pZDtcbiAgfVxufVxuIl19
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW50ZXJmYWNlcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9jb21wYXQvZmlyZXN0b3JlL2ludGVyZmFjZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFN1YnNjcmliZXIgfSBmcm9tICdyeGpzJztcbmltcG9ydCBmaXJlYmFzZSBmcm9tICdmaXJlYmFzZS9jb21wYXQvYXBwJztcblxuZXhwb3J0IHR5cGUgU2V0dGluZ3MgPSAgZmlyZWJhc2UuZmlyZXN0b3JlLlNldHRpbmdzO1xuZXhwb3J0IHR5cGUgQ29sbGVjdGlvblJlZmVyZW5jZTxUID0gRG9jdW1lbnREYXRhPiA9IGZpcmViYXNlLmZpcmVzdG9yZS5Db2xsZWN0aW9uUmVmZXJlbmNlPFQ+O1xuZXhwb3J0IHR5cGUgRG9jdW1lbnRSZWZlcmVuY2U8VCA9IERvY3VtZW50RGF0YT4gPSBmaXJlYmFzZS5maXJlc3RvcmUuRG9jdW1lbnRSZWZlcmVuY2U8VD47XG5leHBvcnQgdHlwZSBQZXJzaXN0ZW5jZVNldHRpbmdzID0gZmlyZWJhc2UuZmlyZXN0b3JlLlBlcnNpc3RlbmNlU2V0dGluZ3M7XG5leHBvcnQgdHlwZSBEb2N1bWVudENoYW5nZVR5cGUgPSBmaXJlYmFzZS5maXJlc3RvcmUuRG9jdW1lbnRDaGFuZ2VUeXBlO1xuZXhwb3J0IHR5cGUgU25hcHNob3RPcHRpb25zID0gZmlyZWJhc2UuZmlyZXN0b3JlLlNuYXBzaG90T3B0aW9ucztcbmV4cG9ydCB0eXBlIEZpZWxkUGF0aCA9IGZpcmViYXNlLmZpcmVzdG9yZS5GaWVsZFBhdGg7XG5leHBvcnQgdHlwZSBRdWVyeTxUID0gRG9jdW1lbnREYXRhPiA9IGZpcmViYXNlLmZpcmVzdG9yZS5RdWVyeTxUPjtcblxuZXhwb3J0IHR5cGUgU2V0T3B0aW9ucyA9IGZpcmViYXNlLmZpcmVzdG9yZS5TZXRPcHRpb25zO1xuZXhwb3J0IHR5cGUgRG9jdW1lbnREYXRhID0gZmlyZWJhc2UuZmlyZXN0b3JlLkRvY3VtZW50RGF0YTtcblxuZXhwb3J0IGludGVyZmFjZSBEb2N1bWVudFNuYXBzaG90RXhpc3RzPFQ+IGV4dGVuZHMgZmlyZWJhc2UuZmlyZXN0b3JlLkRvY3VtZW50U25hcHNob3Qge1xuICByZWFkb25seSBleGlzdHM6IHRydWU7XG4gIGRhdGEob3B0aW9ucz86IFNuYXBzaG90T3B0aW9ucyk6IFQ7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgRG9jdW1lbnRTbmFwc2hvdERvZXNOb3RFeGlzdCBleHRlbmRzIGZpcmViYXNlLmZpcmVzdG9yZS5Eb2N1bWVudFNuYXBzaG90IHtcbiAgcmVhZG9ubHkgZXhpc3RzOiBmYWxzZTtcbiAgZGF0YShvcHRpb25zPzogU25hcHNob3RPcHRpb25zKTogdW5kZWZpbmVkO1xuICBnZXQoZmllbGRQYXRoOiBzdHJpbmcgfCBGaWVsZFBhdGgsIG9wdGlvbnM/OiBTbmFwc2hvdE9wdGlvbnMpOiB1bmRlZmluZWQ7XG59XG5cbmV4cG9ydCB0eXBlIERvY3VtZW50U25hcHNob3Q8VD4gPSBEb2N1bWVudFNuYXBzaG90RXhpc3RzPFQ+IHwgRG9jdW1lbnRTbmFwc2hvdERvZXNOb3RFeGlzdDtcblxuZXhwb3J0IGludGVyZmFjZSBRdWVyeURvY3VtZW50U25hcHNob3Q8VD4gZXh0ZW5kcyBmaXJlYmFzZS5maXJlc3RvcmUuUXVlcnlEb2N1bWVudFNuYXBzaG90IHtcbiAgZGF0YShvcHRpb25zPzogU25hcHNob3RPcHRpb25zKTogVDtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBRdWVyeVNuYXBzaG90PFQ+IGV4dGVuZHMgZmlyZWJhc2UuZmlyZXN0b3JlLlF1ZXJ5U25hcHNob3Qge1xuICByZWFkb25seSBkb2NzOiBRdWVyeURvY3VtZW50U25hcHNob3Q8VD5bXTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBEb2N1bWVudENoYW5nZTxUPiBleHRlbmRzIGZpcmViYXNlLmZpcmVzdG9yZS5Eb2N1bWVudENoYW5nZSB7XG4gIHJlYWRvbmx5IGRvYzogUXVlcnlEb2N1bWVudFNuYXBzaG90PFQ+O1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIERvY3VtZW50Q2hhbmdlQWN0aW9uPFQ+IHtcbiAgdHlwZTogRG9jdW1lbnRDaGFuZ2VUeXBlO1xuICBwYXlsb2FkOiBEb2N1bWVudENoYW5nZTxUPjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBBY3Rpb248VD4ge1xuICB0eXBlOiBzdHJpbmc7XG4gIHBheWxvYWQ6IFQ7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgUmVmZXJlbmNlPFQ+IHtcbiAgb25TbmFwc2hvdDogKG9wdGlvbnM6IGZpcmViYXNlLmZpcmVzdG9yZS5TbmFwc2hvdExpc3Rlbk9wdGlvbnMsIHN1YjogU3Vic2NyaWJlcjxhbnk+KSA9PiBhbnk7XG59XG5cbi8vIEEgY29udmllbmNlIHR5cGUgZm9yIG1ha2luZyBhIHF1ZXJ5LlxuLy8gRXhhbXBsZTogY29uc3QgcXVlcnkgPSAocmVmKSA9PiByZWYud2hlcmUoJ25hbWUnLCA9PSAnZGF2aWQnKTtcbmV4cG9ydCB0eXBlIFF1ZXJ5Rm48VCA9IERvY3VtZW50RGF0YT4gPSAocmVmOiBDb2xsZWN0aW9uUmVmZXJlbmNlPFQ+KSA9PiBRdWVyeTxUPjtcblxuZXhwb3J0IHR5cGUgUXVlcnlHcm91cEZuPFQgPSBEb2N1bWVudERhdGE+ID0gKHF1ZXJ5OiBRdWVyeTxUPikgPT4gUXVlcnk8VD47XG5cbi8qKlxuICogQSBzdHJ1Y3R1cmUgdGhhdCBwcm92aWRlcyBhbiBhc3NvY2lhdGlvbiBiZXR3ZWVuIGEgcmVmZXJlbmNlXG4gKiBhbmQgYSBxdWVyeSBvbiB0aGF0IHJlZmVyZW5jZS4gTm90ZTogUGVyZm9ybWluZyBvcGVyYXRpb25zXG4gKiBvbiB0aGUgcmVmZXJlbmNlIGNhbiBsZWFkIHRvIGNvbmZ1c2luZyByZXN1bHRzIHdpdGggY29tcGxpY2F0ZWRcbiAqIHF1ZXJpZXMuXG4gKlxuICogRXhhbXBsZTpcbiAqXG4gKiBjb25zdCBxdWVyeSA9IHJlZi53aGVyZSgndHlwZScsICc9PScsICdCb29rJykuXG4gKiAgICAgICAgICAgICAgICAgIC53aGVyZSgncHJpY2UnLCAnPicgMTguMDApXG4gKiAgICAgICAgICAgICAgICAgIC53aGVyZSgncHJpY2UnLCAnPCcgMTAwLjAwKVxuICogICAgICAgICAgICAgICAgICAud2hlcmUoJ2NhdGVnb3J5JywgJz09JywgJ0ZpY3Rpb24nKVxuICogICAgICAgICAgICAgICAgICAud2hlcmUoJ3B1Ymxpc2hlcicsICc9PScsICdCaWdQdWJsaXNoZXInKVxuICpcbiAqIC8vIFRoaXMgYWRkaXRpb24gd291bGQgbm90IGJlIGEgcmVzdWx0IG9mIHRoZSBxdWVyeSBhYm92ZVxuICogcmVmLmFkZCh7XG4gKiAgdHlwZTogJ01hZ2F6aW5lJyxcbiAqICBwcmljZTogNC45OSxcbiAqICBjYXRlZ29yeTogJ1Nwb3J0cycsXG4gKiAgcHVibGlzaGVyOiAnU3BvcnRzUHVibGlzaGVyJ1xuICogfSk7XG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgQXNzb2NpYXRlZFJlZmVyZW5jZTxUID0gRG9jdW1lbnREYXRhPiB7XG4gIHJlZjogQ29sbGVjdGlvblJlZmVyZW5jZTxUPjtcbiAgcXVlcnk6IFF1ZXJ5PFQ+O1xufVxuIl19