@angular/fire 7.6.0 → 16.0.0-canary.2d48ab0

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 (479) hide show
  1. package/README.md +11 -4
  2. package/analytics/analytics.module.d.ts +2 -2
  3. package/analytics/firebase.d.ts +4 -1
  4. package/analytics/is-analytics-supported-factory.d.ts +4 -0
  5. package/analytics/screen-tracking.service.d.ts +3 -3
  6. package/app-check/app-check.d.ts +0 -6
  7. package/app-check/app-check.module.d.ts +3 -4
  8. package/app-check/firebase.d.ts +2 -1
  9. package/app-check/public_api.d.ts +2 -1
  10. package/auth/auth.module.d.ts +2 -2
  11. package/auth/firebase.d.ts +3 -1
  12. package/auth-guard/auth-guard.d.ts +6 -6
  13. package/compat/analytics/analytics.d.ts +1 -3
  14. package/compat/analytics/analytics.module.d.ts +1 -1
  15. package/compat/analytics/screen-tracking.service.d.ts +1 -1
  16. package/compat/analytics/user-tracking.service.d.ts +1 -1
  17. package/compat/auth/auth.d.ts +4 -4
  18. package/compat/auth-guard/auth-guard.d.ts +8 -6
  19. package/compat/database/database.d.ts +4 -4
  20. package/compat/database/interfaces.d.ts +14 -14
  21. package/compat/database/list/audit-trail.d.ts +1 -1
  22. package/compat/database/list/create-reference.d.ts +1 -1
  23. package/compat/database/list/data-operation.d.ts +1 -1
  24. package/compat/database/list/state-changes.d.ts +1 -1
  25. package/compat/database/object/create-reference.d.ts +1 -1
  26. package/compat/database/observable/fromRef.d.ts +1 -1
  27. package/compat/database/utils.d.ts +1 -1
  28. package/compat/firebase.app.module.d.ts +1 -1
  29. package/compat/firestore/collection/collection.d.ts +2 -2
  30. package/compat/firestore/collection-group/collection-group.d.ts +2 -2
  31. package/compat/firestore/document/document.d.ts +4 -4
  32. package/compat/firestore/firestore.d.ts +7 -7
  33. package/compat/firestore/interfaces.d.ts +19 -19
  34. package/compat/functions/functions.d.ts +3 -3
  35. package/compat/messaging/messaging.d.ts +2 -2
  36. package/compat/performance/performance.d.ts +2 -2
  37. package/compat/proxy.d.ts +8 -8
  38. package/compat/remote-config/interfaces.d.ts +1 -1
  39. package/compat/remote-config/remote-config.d.ts +15 -49
  40. package/compat/storage/interfaces.d.ts +8 -8
  41. package/compat/storage/observable/fromTask.d.ts +1 -2
  42. package/compat/storage/pipes/storageUrl.pipe.d.ts +1 -1
  43. package/compat/storage/ref.d.ts +1 -1
  44. package/compat/storage/storage.d.ts +3 -3
  45. package/compat/storage/task.d.ts +1 -1
  46. package/core.d.ts +8 -12
  47. package/database/database.module.d.ts +2 -2
  48. package/docs/app-check.md +1 -1
  49. package/docs/auth.md +6 -6
  50. package/docs/database.md +1 -1
  51. package/docs/deploy/getting-started.md +2 -2
  52. package/docs/firestore.md +1 -1
  53. package/docs/install-and-setup.md +1 -1
  54. package/docs/install-firebase-tools.md +78 -0
  55. package/docs/universal/cloud-functions.md +27 -6
  56. package/docs/universal/getting-started.md +9 -134
  57. package/{esm2015/analytics/analytics.js → esm2022/analytics/analytics.mjs} +1 -1
  58. package/esm2022/analytics/analytics.module.mjs +94 -0
  59. package/esm2022/analytics/firebase.mjs +17 -0
  60. package/esm2022/analytics/is-analytics-supported-factory.mjs +16 -0
  61. package/esm2022/analytics/overrides.mjs +3 -0
  62. package/esm2022/analytics/screen-tracking.service.mjs +148 -0
  63. package/esm2022/analytics/user-tracking.service.mjs +44 -0
  64. package/{esm2015/app/app.js → esm2022/app/app.mjs} +1 -1
  65. package/esm2022/app/app.module.mjs +85 -0
  66. package/esm2022/app-check/app-check.mjs +10 -0
  67. package/esm2022/app-check/app-check.module.mjs +78 -0
  68. package/esm2022/app-check/firebase.mjs +10 -0
  69. package/esm2022/app-check/public_api.mjs +5 -0
  70. package/{esm2015/auth/auth.js → esm2022/auth/auth.mjs} +1 -1
  71. package/esm2022/auth/auth.module.mjs +71 -0
  72. package/esm2022/auth/firebase.mjs +58 -0
  73. package/esm2022/auth-guard/auth-guard.mjs +53 -0
  74. package/{esm2015/auth-guard/auth-guard.module.js → esm2022/auth-guard/auth-guard.module.mjs} +7 -7
  75. package/esm2022/compat/analytics/analytics.mjs +160 -0
  76. package/esm2022/compat/analytics/analytics.module.mjs +35 -0
  77. package/esm2022/compat/analytics/screen-tracking.service.mjs +49 -0
  78. package/esm2022/compat/analytics/user-tracking.service.mjs +53 -0
  79. package/esm2022/compat/auth/auth.mjs +161 -0
  80. package/{esm2015/compat/auth/auth.module.js → esm2022/compat/auth/auth.module.mjs} +7 -7
  81. package/{esm2015/compat/auth/public_api.js → esm2022/compat/auth/public_api.mjs} +1 -1
  82. package/esm2022/compat/auth-guard/auth-guard.mjs +53 -0
  83. package/{esm2015/compat/auth-guard/auth-guard.module.js → esm2022/compat/auth-guard/auth-guard.module.mjs} +7 -7
  84. package/{esm2015/compat/cache.js → esm2022/compat/cache.mjs} +4 -3
  85. package/esm2022/compat/database/database.mjs +119 -0
  86. package/{esm2015/compat/database/database.module.js → esm2022/compat/database/database.module.mjs} +7 -7
  87. package/esm2022/compat/database/interfaces.mjs +2 -0
  88. package/{esm2015/compat/database/list/audit-trail.js → esm2022/compat/database/list/audit-trail.mjs} +3 -3
  89. package/esm2022/compat/database/list/changes.mjs +85 -0
  90. package/esm2022/compat/database/list/create-reference.mjs +44 -0
  91. package/{esm2015/compat/database/list/data-operation.js → esm2022/compat/database/list/data-operation.mjs} +1 -1
  92. package/{esm2015/compat/database/list/snapshot-changes.js → esm2022/compat/database/list/snapshot-changes.mjs} +1 -1
  93. package/{esm2015/compat/database/list/state-changes.js → esm2022/compat/database/list/state-changes.mjs} +2 -2
  94. package/{esm2015/compat/database/object/create-reference.js → esm2022/compat/database/object/create-reference.mjs} +2 -2
  95. package/{esm2015/compat/database/object/snapshot-changes.js → esm2022/compat/database/object/snapshot-changes.mjs} +1 -1
  96. package/esm2022/compat/database/observable/fromRef.mjs +48 -0
  97. package/{esm2015/compat/database/utils.js → esm2022/compat/database/utils.mjs} +1 -1
  98. package/{esm2015/compat/firebase.app.js → esm2022/compat/firebase.app.mjs} +1 -1
  99. package/esm2022/compat/firebase.app.module.mjs +71 -0
  100. package/esm2022/compat/firestore/collection/changes.mjs +108 -0
  101. package/esm2022/compat/firestore/collection/collection.mjs +123 -0
  102. package/esm2022/compat/firestore/collection-group/collection-group.mjs +86 -0
  103. package/esm2022/compat/firestore/document/document.mjs +87 -0
  104. package/esm2022/compat/firestore/firestore.mjs +257 -0
  105. package/{esm2015/compat/firestore/firestore.module.js → esm2022/compat/firestore/firestore.module.mjs} +7 -7
  106. package/esm2022/compat/firestore/interfaces.mjs +2 -0
  107. package/esm2022/compat/firestore/observable/fromRef.mjs +40 -0
  108. package/esm2022/compat/functions/functions.mjs +69 -0
  109. package/{esm2015/compat/functions/functions.module.js → esm2022/compat/functions/functions.module.mjs} +7 -7
  110. package/{esm2015/compat/functions/public_api.js → esm2022/compat/functions/public_api.mjs} +1 -1
  111. package/esm2022/compat/messaging/messaging.mjs +81 -0
  112. package/{esm2015/compat/messaging/messaging.module.js → esm2022/compat/messaging/messaging.module.mjs} +7 -7
  113. package/esm2022/compat/performance/performance.mjs +105 -0
  114. package/esm2022/compat/performance/performance.module.mjs +27 -0
  115. package/esm2022/compat/performance/performance.service.mjs +28 -0
  116. package/esm2022/compat/proxy.mjs +58 -0
  117. package/esm2022/compat/remote-config/remote-config.mjs +206 -0
  118. package/{esm2015/compat/remote-config/remote-config.module.js → esm2022/compat/remote-config/remote-config.module.mjs} +7 -7
  119. package/esm2022/compat/storage/observable/fromTask.mjs +36 -0
  120. package/esm2022/compat/storage/pipes/storageUrl.pipe.mjs +58 -0
  121. package/{esm2015/compat/storage/ref.js → esm2022/compat/storage/ref.mjs} +3 -3
  122. package/esm2022/compat/storage/storage.mjs +95 -0
  123. package/esm2022/compat/storage/storage.module.mjs +22 -0
  124. package/{esm2015/compat/storage/task.js → esm2022/compat/storage/task.mjs} +2 -2
  125. package/esm2022/core.mjs +43 -0
  126. package/{esm2015/database/database.js → esm2022/database/database.mjs} +1 -1
  127. package/esm2022/database/database.module.mjs +74 -0
  128. package/esm2022/firestore/firebase.mjs +73 -0
  129. package/{esm2015/firestore/firestore.js → esm2022/firestore/firestore.mjs} +1 -1
  130. package/esm2022/firestore/firestore.module.mjs +74 -0
  131. package/esm2022/firestore/lite/firebase.mjs +48 -0
  132. package/{esm2015/firestore/lite/lite.js → esm2022/firestore/lite/lite.mjs} +1 -1
  133. package/esm2022/firestore/lite/lite.module.mjs +73 -0
  134. package/esm2022/firestore/lite/rxfire.mjs +12 -0
  135. package/esm2022/firestore/rxfire.mjs +15 -0
  136. package/{esm2015/functions/functions.js → esm2022/functions/functions.mjs} +1 -1
  137. package/esm2022/functions/functions.module.mjs +74 -0
  138. package/esm2022/messaging/is-messaging-supported-factory.mjs +16 -0
  139. package/{esm2015/messaging/messaging.js → esm2022/messaging/messaging.mjs} +1 -1
  140. package/esm2022/messaging/messaging.module.mjs +86 -0
  141. package/esm2022/messaging/overrides.mjs +3 -0
  142. package/{esm2015/performance/performance.js → esm2022/performance/performance.mjs} +1 -1
  143. package/esm2022/performance/performance.module.mjs +81 -0
  144. package/esm2022/remote-config/is-remote-config-supported-factory.mjs +16 -0
  145. package/esm2022/remote-config/overrides.mjs +3 -0
  146. package/{esm2015/remote-config/remote-config.js → esm2022/remote-config/remote-config.mjs} +1 -1
  147. package/esm2022/remote-config/remote-config.module.mjs +86 -0
  148. package/{esm2015/storage/storage.js → esm2022/storage/storage.mjs} +1 -1
  149. package/esm2022/storage/storage.module.mjs +74 -0
  150. package/esm2022/zones.mjs +194 -0
  151. package/{fesm2015/angular-fire-analytics.js → fesm2022/angular-fire-analytics.mjs} +68 -41
  152. package/fesm2022/angular-fire-analytics.mjs.map +1 -0
  153. package/{fesm2015/angular-fire-app-check.js → fesm2022/angular-fire-app-check.mjs} +18 -25
  154. package/fesm2022/angular-fire-app-check.mjs.map +1 -0
  155. package/{fesm2015/angular-fire-app.js → fesm2022/angular-fire-app.mjs} +10 -9
  156. package/fesm2022/angular-fire-app.mjs.map +1 -0
  157. package/{fesm2015/angular-fire-auth-guard.js → fesm2022/angular-fire-auth-guard.mjs} +31 -27
  158. package/fesm2022/angular-fire-auth-guard.mjs.map +1 -0
  159. package/{fesm2015/angular-fire-auth.js → fesm2022/angular-fire-auth.mjs} +14 -13
  160. package/fesm2022/angular-fire-auth.mjs.map +1 -0
  161. package/{fesm2015/angular-fire-compat-analytics.js → fesm2022/angular-fire-compat-analytics.mjs} +43 -41
  162. package/fesm2022/angular-fire-compat-analytics.mjs.map +1 -0
  163. package/{fesm2015/angular-fire-compat-auth-guard.js → fesm2022/angular-fire-compat-auth-guard.mjs} +30 -26
  164. package/fesm2022/angular-fire-compat-auth-guard.mjs.map +1 -0
  165. package/{fesm2015/angular-fire-compat-auth.js → fesm2022/angular-fire-compat-auth.mjs} +38 -16
  166. package/fesm2022/angular-fire-compat-auth.mjs.map +1 -0
  167. package/{fesm2015/angular-fire-compat-database.js → fesm2022/angular-fire-compat-database.mjs} +138 -132
  168. package/fesm2022/angular-fire-compat-database.mjs.map +1 -0
  169. package/{fesm2015/angular-fire-compat-firestore.js → fesm2022/angular-fire-compat-firestore.mjs} +119 -98
  170. package/fesm2022/angular-fire-compat-firestore.mjs.map +1 -0
  171. package/{fesm2015/angular-fire-compat-functions.js → fesm2022/angular-fire-compat-functions.mjs} +13 -12
  172. package/fesm2022/angular-fire-compat-functions.mjs.map +1 -0
  173. package/{fesm2015/angular-fire-compat-messaging.js → fesm2022/angular-fire-compat-messaging.mjs} +25 -19
  174. package/fesm2022/angular-fire-compat-messaging.mjs.map +1 -0
  175. package/{fesm2015/angular-fire-compat-performance.js → fesm2022/angular-fire-compat-performance.mjs} +29 -34
  176. package/fesm2022/angular-fire-compat-performance.mjs.map +1 -0
  177. package/{fesm2015/angular-fire-compat-remote-config.js → fesm2022/angular-fire-compat-remote-config.mjs} +35 -22
  178. package/fesm2022/angular-fire-compat-remote-config.mjs.map +1 -0
  179. package/{fesm2015/angular-fire-compat-storage.js → fesm2022/angular-fire-compat-storage.mjs} +30 -23
  180. package/fesm2022/angular-fire-compat-storage.mjs.map +1 -0
  181. package/{fesm2015/angular-fire-compat.js → fesm2022/angular-fire-compat.mjs} +25 -25
  182. package/fesm2022/angular-fire-compat.mjs.map +1 -0
  183. package/{fesm2015/angular-fire-database.js → fesm2022/angular-fire-database.mjs} +11 -12
  184. package/fesm2022/angular-fire-database.mjs.map +1 -0
  185. package/{fesm2015/angular-fire-firestore-lite.js → fesm2022/angular-fire-firestore-lite.mjs} +25 -15
  186. package/fesm2022/angular-fire-firestore-lite.mjs.map +1 -0
  187. package/fesm2022/angular-fire-firestore.mjs +180 -0
  188. package/fesm2022/angular-fire-firestore.mjs.map +1 -0
  189. package/{fesm2015/angular-fire-functions.js → fesm2022/angular-fire-functions.mjs} +12 -13
  190. package/fesm2022/angular-fire-functions.mjs.map +1 -0
  191. package/{fesm2015/angular-fire-messaging.js → fesm2022/angular-fire-messaging.mjs} +33 -19
  192. package/fesm2022/angular-fire-messaging.mjs.map +1 -0
  193. package/{fesm2015/angular-fire-performance.js → fesm2022/angular-fire-performance.mjs} +11 -11
  194. package/fesm2022/angular-fire-performance.mjs.map +1 -0
  195. package/{fesm2015/angular-fire-remote-config.js → fesm2022/angular-fire-remote-config.mjs} +34 -20
  196. package/fesm2022/angular-fire-remote-config.mjs.map +1 -0
  197. package/{fesm2015/angular-fire-storage.js → fesm2022/angular-fire-storage.mjs} +10 -11
  198. package/fesm2022/angular-fire-storage.mjs.map +1 -0
  199. package/{fesm2015/angular-fire.js → fesm2022/angular-fire.mjs} +33 -58
  200. package/fesm2022/angular-fire.mjs.map +1 -0
  201. package/firestore/firebase.d.ts +21 -1
  202. package/firestore/firestore.module.d.ts +2 -2
  203. package/firestore/lite/firebase.d.ts +10 -1
  204. package/firestore/lite/lite.module.d.ts +2 -2
  205. package/firestore/lite/rxfire.d.ts +3 -1
  206. package/firestore/rxfire.d.ts +3 -1
  207. package/functions/functions.module.d.ts +2 -2
  208. package/messaging/is-messaging-supported-factory.d.ts +4 -0
  209. package/messaging/messaging.module.d.ts +2 -2
  210. package/package.json +169 -19
  211. package/performance/performance.module.d.ts +2 -2
  212. package/remote-config/is-remote-config-supported-factory.d.ts +4 -0
  213. package/remote-config/remote-config.module.d.ts +2 -2
  214. package/schematics/add/index.js +2 -2
  215. package/schematics/common.js +9 -5
  216. package/schematics/deploy/actions.js +69 -69
  217. package/schematics/deploy/builder.js +7 -7
  218. package/schematics/firebaseTools.js +9 -5
  219. package/schematics/setup/index.js +27 -27
  220. package/schematics/setup/prompts.js +22 -18
  221. package/schematics/update/index.js +1 -1
  222. package/schematics/update/v7/index.js +7 -7
  223. package/schematics/utils.js +34 -34
  224. package/storage/storage.module.d.ts +2 -2
  225. package/analytics/package.json +0 -11
  226. package/app/package.json +0 -11
  227. package/app-check/package.json +0 -11
  228. package/auth/package.json +0 -11
  229. package/auth-guard/package.json +0 -11
  230. package/bundles/angular-fire-analytics.umd.js +0 -673
  231. package/bundles/angular-fire-analytics.umd.js.map +0 -1
  232. package/bundles/angular-fire-app-check.umd.js +0 -465
  233. package/bundles/angular-fire-app-check.umd.js.map +0 -1
  234. package/bundles/angular-fire-app.umd.js +0 -477
  235. package/bundles/angular-fire-app.umd.js.map +0 -1
  236. package/bundles/angular-fire-auth-guard.umd.js +0 -109
  237. package/bundles/angular-fire-auth-guard.umd.js.map +0 -1
  238. package/bundles/angular-fire-auth.umd.js +0 -557
  239. package/bundles/angular-fire-auth.umd.js.map +0 -1
  240. package/bundles/angular-fire-compat-analytics.umd.js +0 -672
  241. package/bundles/angular-fire-compat-analytics.umd.js.map +0 -1
  242. package/bundles/angular-fire-compat-auth-guard.umd.js +0 -112
  243. package/bundles/angular-fire-compat-auth-guard.umd.js.map +0 -1
  244. package/bundles/angular-fire-compat-auth.umd.js +0 -559
  245. package/bundles/angular-fire-compat-auth.umd.js.map +0 -1
  246. package/bundles/angular-fire-compat-database.umd.js +0 -799
  247. package/bundles/angular-fire-compat-database.umd.js.map +0 -1
  248. package/bundles/angular-fire-compat-firestore.umd.js +0 -1073
  249. package/bundles/angular-fire-compat-firestore.umd.js.map +0 -1
  250. package/bundles/angular-fire-compat-functions.umd.js +0 -443
  251. package/bundles/angular-fire-compat-functions.umd.js.map +0 -1
  252. package/bundles/angular-fire-compat-messaging.umd.js +0 -465
  253. package/bundles/angular-fire-compat-messaging.umd.js.map +0 -1
  254. package/bundles/angular-fire-compat-performance.umd.js +0 -212
  255. package/bundles/angular-fire-compat-performance.umd.js.map +0 -1
  256. package/bundles/angular-fire-compat-remote-config.umd.js +0 -605
  257. package/bundles/angular-fire-compat-remote-config.umd.js.map +0 -1
  258. package/bundles/angular-fire-compat-storage.umd.js +0 -598
  259. package/bundles/angular-fire-compat-storage.umd.js.map +0 -1
  260. package/bundles/angular-fire-compat.umd.js +0 -535
  261. package/bundles/angular-fire-compat.umd.js.map +0 -1
  262. package/bundles/angular-fire-database.umd.js +0 -557
  263. package/bundles/angular-fire-database.umd.js.map +0 -1
  264. package/bundles/angular-fire-firestore-lite.umd.js +0 -531
  265. package/bundles/angular-fire-firestore-lite.umd.js.map +0 -1
  266. package/bundles/angular-fire-firestore.umd.js +0 -565
  267. package/bundles/angular-fire-firestore.umd.js.map +0 -1
  268. package/bundles/angular-fire-functions.umd.js +0 -461
  269. package/bundles/angular-fire-functions.umd.js.map +0 -1
  270. package/bundles/angular-fire-messaging.umd.js +0 -473
  271. package/bundles/angular-fire-messaging.umd.js.map +0 -1
  272. package/bundles/angular-fire-performance.umd.js +0 -473
  273. package/bundles/angular-fire-performance.umd.js.map +0 -1
  274. package/bundles/angular-fire-remote-config.umd.js +0 -499
  275. package/bundles/angular-fire-remote-config.umd.js.map +0 -1
  276. package/bundles/angular-fire-storage.umd.js +0 -485
  277. package/bundles/angular-fire-storage.umd.js.map +0 -1
  278. package/bundles/angular-fire.umd.js +0 -308
  279. package/bundles/angular-fire.umd.js.map +0 -1
  280. package/compat/analytics/package.json +0 -11
  281. package/compat/auth/package.json +0 -11
  282. package/compat/auth-guard/package.json +0 -11
  283. package/compat/database/package.json +0 -11
  284. package/compat/firestore/package.json +0 -11
  285. package/compat/functions/package.json +0 -11
  286. package/compat/messaging/package.json +0 -11
  287. package/compat/package.json +0 -11
  288. package/compat/performance/package.json +0 -11
  289. package/compat/remote-config/package.json +0 -11
  290. package/compat/storage/package.json +0 -11
  291. package/database/package.json +0 -11
  292. package/esm2015/analytics/analytics.module.js +0 -93
  293. package/esm2015/analytics/firebase.js +0 -14
  294. package/esm2015/analytics/overrides.js +0 -3
  295. package/esm2015/analytics/screen-tracking.service.js +0 -139
  296. package/esm2015/analytics/user-tracking.service.js +0 -43
  297. package/esm2015/app/app.module.js +0 -84
  298. package/esm2015/app-check/app-check.js +0 -16
  299. package/esm2015/app-check/app-check.module.js +0 -81
  300. package/esm2015/app-check/firebase.js +0 -9
  301. package/esm2015/app-check/public_api.js +0 -4
  302. package/esm2015/auth/auth.module.js +0 -71
  303. package/esm2015/auth/firebase.js +0 -56
  304. package/esm2015/auth-guard/auth-guard.js +0 -49
  305. package/esm2015/compat/analytics/analytics.js +0 -163
  306. package/esm2015/compat/analytics/analytics.module.js +0 -32
  307. package/esm2015/compat/analytics/screen-tracking.service.js +0 -49
  308. package/esm2015/compat/analytics/user-tracking.service.js +0 -52
  309. package/esm2015/compat/auth/auth.js +0 -139
  310. package/esm2015/compat/auth-guard/auth-guard.js +0 -49
  311. package/esm2015/compat/database/database.js +0 -117
  312. package/esm2015/compat/database/interfaces.js +0 -2
  313. package/esm2015/compat/database/list/changes.js +0 -85
  314. package/esm2015/compat/database/list/create-reference.js +0 -41
  315. package/esm2015/compat/database/observable/fromRef.js +0 -47
  316. package/esm2015/compat/firebase.app.module.js +0 -69
  317. package/esm2015/compat/firestore/collection/changes.js +0 -107
  318. package/esm2015/compat/firestore/collection/collection.js +0 -117
  319. package/esm2015/compat/firestore/collection-group/collection-group.js +0 -81
  320. package/esm2015/compat/firestore/document/document.js +0 -82
  321. package/esm2015/compat/firestore/firestore.js +0 -254
  322. package/esm2015/compat/firestore/interfaces.js +0 -2
  323. package/esm2015/compat/firestore/observable/fromRef.js +0 -39
  324. package/esm2015/compat/functions/functions.js +0 -68
  325. package/esm2015/compat/messaging/messaging.js +0 -75
  326. package/esm2015/compat/performance/performance.js +0 -110
  327. package/esm2015/compat/performance/performance.module.js +0 -28
  328. package/esm2015/compat/performance/performance.service.js +0 -27
  329. package/esm2015/compat/proxy.js +0 -61
  330. package/esm2015/compat/remote-config/remote-config.js +0 -193
  331. package/esm2015/compat/storage/observable/fromTask.js +0 -34
  332. package/esm2015/compat/storage/pipes/storageUrl.pipe.js +0 -54
  333. package/esm2015/compat/storage/storage.js +0 -94
  334. package/esm2015/compat/storage/storage.module.js +0 -22
  335. package/esm2015/core.js +0 -79
  336. package/esm2015/database/database.module.js +0 -74
  337. package/esm2015/firestore/firebase.js +0 -53
  338. package/esm2015/firestore/firestore.module.js +0 -74
  339. package/esm2015/firestore/lite/firebase.js +0 -39
  340. package/esm2015/firestore/lite/lite.module.js +0 -74
  341. package/esm2015/firestore/lite/rxfire.js +0 -10
  342. package/esm2015/firestore/rxfire.js +0 -13
  343. package/esm2015/functions/functions.module.js +0 -74
  344. package/esm2015/messaging/messaging.module.js +0 -85
  345. package/esm2015/messaging/overrides.js +0 -3
  346. package/esm2015/performance/performance.module.js +0 -81
  347. package/esm2015/remote-config/overrides.js +0 -3
  348. package/esm2015/remote-config/remote-config.module.js +0 -85
  349. package/esm2015/storage/storage.module.js +0 -74
  350. package/esm2015/zones.js +0 -183
  351. package/fesm2015/angular-fire-analytics.js.map +0 -1
  352. package/fesm2015/angular-fire-app-check.js.map +0 -1
  353. package/fesm2015/angular-fire-app.js.map +0 -1
  354. package/fesm2015/angular-fire-auth-guard.js.map +0 -1
  355. package/fesm2015/angular-fire-auth.js.map +0 -1
  356. package/fesm2015/angular-fire-compat-analytics.js.map +0 -1
  357. package/fesm2015/angular-fire-compat-auth-guard.js.map +0 -1
  358. package/fesm2015/angular-fire-compat-auth.js.map +0 -1
  359. package/fesm2015/angular-fire-compat-database.js.map +0 -1
  360. package/fesm2015/angular-fire-compat-firestore.js.map +0 -1
  361. package/fesm2015/angular-fire-compat-functions.js.map +0 -1
  362. package/fesm2015/angular-fire-compat-messaging.js.map +0 -1
  363. package/fesm2015/angular-fire-compat-performance.js.map +0 -1
  364. package/fesm2015/angular-fire-compat-remote-config.js.map +0 -1
  365. package/fesm2015/angular-fire-compat-storage.js.map +0 -1
  366. package/fesm2015/angular-fire-compat.js.map +0 -1
  367. package/fesm2015/angular-fire-database.js.map +0 -1
  368. package/fesm2015/angular-fire-firestore-lite.js.map +0 -1
  369. package/fesm2015/angular-fire-firestore.js +0 -159
  370. package/fesm2015/angular-fire-firestore.js.map +0 -1
  371. package/fesm2015/angular-fire-functions.js.map +0 -1
  372. package/fesm2015/angular-fire-messaging.js.map +0 -1
  373. package/fesm2015/angular-fire-performance.js.map +0 -1
  374. package/fesm2015/angular-fire-remote-config.js.map +0 -1
  375. package/fesm2015/angular-fire-storage.js.map +0 -1
  376. package/fesm2015/angular-fire.js.map +0 -1
  377. package/firestore/lite/package.json +0 -11
  378. package/firestore/package.json +0 -11
  379. package/firestore-protos.js +0 -4
  380. package/functions/package.json +0 -11
  381. package/messaging/package.json +0 -11
  382. package/performance/package.json +0 -11
  383. package/remote-config/package.json +0 -11
  384. package/storage/package.json +0 -11
  385. /package/analytics/{angular-fire-analytics.d.ts → index.d.ts} +0 -0
  386. /package/app/{angular-fire-app.d.ts → index.d.ts} +0 -0
  387. /package/app-check/{angular-fire-app-check.d.ts → index.d.ts} +0 -0
  388. /package/auth/{angular-fire-auth.d.ts → index.d.ts} +0 -0
  389. /package/auth-guard/{angular-fire-auth-guard.d.ts → index.d.ts} +0 -0
  390. /package/compat/analytics/{angular-fire-compat-analytics.d.ts → index.d.ts} +0 -0
  391. /package/compat/auth/{angular-fire-compat-auth.d.ts → index.d.ts} +0 -0
  392. /package/compat/auth-guard/{angular-fire-compat-auth-guard.d.ts → index.d.ts} +0 -0
  393. /package/compat/database/{angular-fire-compat-database.d.ts → index.d.ts} +0 -0
  394. /package/compat/firestore/{angular-fire-compat-firestore.d.ts → index.d.ts} +0 -0
  395. /package/compat/functions/{angular-fire-compat-functions.d.ts → index.d.ts} +0 -0
  396. /package/compat/{angular-fire-compat.d.ts → index.d.ts} +0 -0
  397. /package/compat/messaging/{angular-fire-compat-messaging.d.ts → index.d.ts} +0 -0
  398. /package/compat/performance/{angular-fire-compat-performance.d.ts → index.d.ts} +0 -0
  399. /package/compat/remote-config/{angular-fire-compat-remote-config.d.ts → index.d.ts} +0 -0
  400. /package/compat/storage/{angular-fire-compat-storage.d.ts → index.d.ts} +0 -0
  401. /package/database/{angular-fire-database.d.ts → index.d.ts} +0 -0
  402. /package/{esm2015/analytics/angular-fire-analytics.js → esm2022/analytics/angular-fire-analytics.mjs} +0 -0
  403. /package/{esm2015/analytics/public_api.js → esm2022/analytics/public_api.mjs} +0 -0
  404. /package/{esm2015/angular-fire.js → esm2022/angular-fire.mjs} +0 -0
  405. /package/{esm2015/app/angular-fire-app.js → esm2022/app/angular-fire-app.mjs} +0 -0
  406. /package/{esm2015/app/firebase.js → esm2022/app/firebase.mjs} +0 -0
  407. /package/{esm2015/app/public_api.js → esm2022/app/public_api.mjs} +0 -0
  408. /package/{esm2015/app-check/angular-fire-app-check.js → esm2022/app-check/angular-fire-app-check.mjs} +0 -0
  409. /package/{esm2015/auth/angular-fire-auth.js → esm2022/auth/angular-fire-auth.mjs} +0 -0
  410. /package/{esm2015/auth/public_api.js → esm2022/auth/public_api.mjs} +0 -0
  411. /package/{esm2015/auth/rxfire.js → esm2022/auth/rxfire.mjs} +0 -0
  412. /package/{esm2015/auth-guard/angular-fire-auth-guard.js → esm2022/auth-guard/angular-fire-auth-guard.mjs} +0 -0
  413. /package/{esm2015/auth-guard/public_api.js → esm2022/auth-guard/public_api.mjs} +0 -0
  414. /package/{esm2015/compat/analytics/angular-fire-compat-analytics.js → esm2022/compat/analytics/angular-fire-compat-analytics.mjs} +0 -0
  415. /package/{esm2015/compat/analytics/base.js → esm2022/compat/analytics/base.mjs} +0 -0
  416. /package/{esm2015/compat/analytics/public_api.js → esm2022/compat/analytics/public_api.mjs} +0 -0
  417. /package/{esm2015/compat/angular-fire-compat.js → esm2022/compat/angular-fire-compat.mjs} +0 -0
  418. /package/{esm2015/compat/auth/angular-fire-compat-auth.js → esm2022/compat/auth/angular-fire-compat-auth.mjs} +0 -0
  419. /package/{esm2015/compat/auth/base.js → esm2022/compat/auth/base.mjs} +0 -0
  420. /package/{esm2015/compat/auth-guard/angular-fire-compat-auth-guard.js → esm2022/compat/auth-guard/angular-fire-compat-auth-guard.mjs} +0 -0
  421. /package/{esm2015/compat/auth-guard/public_api.js → esm2022/compat/auth-guard/public_api.mjs} +0 -0
  422. /package/{esm2015/compat/database/angular-fire-compat-database.js → esm2022/compat/database/angular-fire-compat-database.mjs} +0 -0
  423. /package/{esm2015/compat/database/list/remove.js → esm2022/compat/database/list/remove.mjs} +0 -0
  424. /package/{esm2015/compat/database/list/utils.js → esm2022/compat/database/list/utils.mjs} +0 -0
  425. /package/{esm2015/compat/database/public_api.js → esm2022/compat/database/public_api.mjs} +0 -0
  426. /package/{esm2015/compat/firestore/angular-fire-compat-firestore.js → esm2022/compat/firestore/angular-fire-compat-firestore.mjs} +0 -0
  427. /package/{esm2015/compat/firestore/public_api.js → esm2022/compat/firestore/public_api.mjs} +0 -0
  428. /package/{esm2015/compat/functions/angular-fire-compat-functions.js → esm2022/compat/functions/angular-fire-compat-functions.mjs} +0 -0
  429. /package/{esm2015/compat/functions/base.js → esm2022/compat/functions/base.mjs} +0 -0
  430. /package/{esm2015/compat/messaging/angular-fire-compat-messaging.js → esm2022/compat/messaging/angular-fire-compat-messaging.mjs} +0 -0
  431. /package/{esm2015/compat/messaging/base.js → esm2022/compat/messaging/base.mjs} +0 -0
  432. /package/{esm2015/compat/messaging/public_api.js → esm2022/compat/messaging/public_api.mjs} +0 -0
  433. /package/{esm2015/compat/performance/angular-fire-compat-performance.js → esm2022/compat/performance/angular-fire-compat-performance.mjs} +0 -0
  434. /package/{esm2015/compat/performance/base.js → esm2022/compat/performance/base.mjs} +0 -0
  435. /package/{esm2015/compat/performance/public_api.js → esm2022/compat/performance/public_api.mjs} +0 -0
  436. /package/{esm2015/compat/public_api.js → esm2022/compat/public_api.mjs} +0 -0
  437. /package/{esm2015/compat/remote-config/angular-fire-compat-remote-config.js → esm2022/compat/remote-config/angular-fire-compat-remote-config.mjs} +0 -0
  438. /package/{esm2015/compat/remote-config/base.js → esm2022/compat/remote-config/base.mjs} +0 -0
  439. /package/{esm2015/compat/remote-config/interfaces.js → esm2022/compat/remote-config/interfaces.mjs} +0 -0
  440. /package/{esm2015/compat/remote-config/public_api.js → esm2022/compat/remote-config/public_api.mjs} +0 -0
  441. /package/{esm2015/compat/storage/angular-fire-compat-storage.js → esm2022/compat/storage/angular-fire-compat-storage.mjs} +0 -0
  442. /package/{esm2015/compat/storage/interfaces.js → esm2022/compat/storage/interfaces.mjs} +0 -0
  443. /package/{esm2015/compat/storage/public_api.js → esm2022/compat/storage/public_api.mjs} +0 -0
  444. /package/{esm2015/database/angular-fire-database.js → esm2022/database/angular-fire-database.mjs} +0 -0
  445. /package/{esm2015/database/firebase.js → esm2022/database/firebase.mjs} +0 -0
  446. /package/{esm2015/database/public_api.js → esm2022/database/public_api.mjs} +0 -0
  447. /package/{esm2015/database/rxfire.js → esm2022/database/rxfire.mjs} +0 -0
  448. /package/{esm2015/firestore/angular-fire-firestore.js → esm2022/firestore/angular-fire-firestore.mjs} +0 -0
  449. /package/{esm2015/firestore/lite/angular-fire-firestore-lite.js → esm2022/firestore/lite/angular-fire-firestore-lite.mjs} +0 -0
  450. /package/{esm2015/firestore/lite/public_api.js → esm2022/firestore/lite/public_api.mjs} +0 -0
  451. /package/{esm2015/firestore/public_api.js → esm2022/firestore/public_api.mjs} +0 -0
  452. /package/{esm2015/functions/angular-fire-functions.js → esm2022/functions/angular-fire-functions.mjs} +0 -0
  453. /package/{esm2015/functions/firebase.js → esm2022/functions/firebase.mjs} +0 -0
  454. /package/{esm2015/functions/public_api.js → esm2022/functions/public_api.mjs} +0 -0
  455. /package/{esm2015/functions/rxfire.js → esm2022/functions/rxfire.mjs} +0 -0
  456. /package/{esm2015/messaging/angular-fire-messaging.js → esm2022/messaging/angular-fire-messaging.mjs} +0 -0
  457. /package/{esm2015/messaging/firebase.js → esm2022/messaging/firebase.mjs} +0 -0
  458. /package/{esm2015/messaging/public_api.js → esm2022/messaging/public_api.mjs} +0 -0
  459. /package/{esm2015/performance/angular-fire-performance.js → esm2022/performance/angular-fire-performance.mjs} +0 -0
  460. /package/{esm2015/performance/firebase.js → esm2022/performance/firebase.mjs} +0 -0
  461. /package/{esm2015/performance/public_api.js → esm2022/performance/public_api.mjs} +0 -0
  462. /package/{esm2015/performance/rxfire.js → esm2022/performance/rxfire.mjs} +0 -0
  463. /package/{esm2015/public_api.js → esm2022/public_api.mjs} +0 -0
  464. /package/{esm2015/remote-config/angular-fire-remote-config.js → esm2022/remote-config/angular-fire-remote-config.mjs} +0 -0
  465. /package/{esm2015/remote-config/firebase.js → esm2022/remote-config/firebase.mjs} +0 -0
  466. /package/{esm2015/remote-config/public_api.js → esm2022/remote-config/public_api.mjs} +0 -0
  467. /package/{esm2015/remote-config/rxfire.js → esm2022/remote-config/rxfire.mjs} +0 -0
  468. /package/{esm2015/storage/angular-fire-storage.js → esm2022/storage/angular-fire-storage.mjs} +0 -0
  469. /package/{esm2015/storage/firebase.js → esm2022/storage/firebase.mjs} +0 -0
  470. /package/{esm2015/storage/public_api.js → esm2022/storage/public_api.mjs} +0 -0
  471. /package/{esm2015/storage/rxfire.js → esm2022/storage/rxfire.mjs} +0 -0
  472. /package/firestore/{angular-fire-firestore.d.ts → index.d.ts} +0 -0
  473. /package/firestore/lite/{angular-fire-firestore-lite.d.ts → index.d.ts} +0 -0
  474. /package/functions/{angular-fire-functions.d.ts → index.d.ts} +0 -0
  475. /package/{angular-fire.d.ts → index.d.ts} +0 -0
  476. /package/messaging/{angular-fire-messaging.d.ts → index.d.ts} +0 -0
  477. /package/performance/{angular-fire-performance.d.ts → index.d.ts} +0 -0
  478. /package/remote-config/{angular-fire-remote-config.d.ts → index.d.ts} +0 -0
  479. /package/storage/{angular-fire-storage.d.ts → index.d.ts} +0 -0
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW50ZXJmYWNlcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9jb21wYXQvZGF0YWJhc2UvaW50ZXJmYWNlcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IGZpcmViYXNlIGZyb20gJ2ZpcmViYXNlL2NvbXBhdC9hcHAnO1xuaW1wb3J0IHsgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xuXG5leHBvcnQgdHlwZSBGaXJlYmFzZU9wZXJhdGlvbiA9IHN0cmluZyB8IGZpcmViYXNlLmRhdGFiYXNlLlJlZmVyZW5jZSB8IGZpcmViYXNlLmRhdGFiYXNlLkRhdGFTbmFwc2hvdDtcblxuZXhwb3J0IGludGVyZmFjZSBBbmd1bGFyRmlyZUxpc3Q8VD4ge1xuICBxdWVyeTogRGF0YWJhc2VRdWVyeTtcbiAgdmFsdWVDaGFuZ2VzKGV2ZW50cz86IENoaWxkRXZlbnRbXSwgb3B0aW9ucz86IHVua25vd24pOiBPYnNlcnZhYmxlPFRbXT47XG4gIHZhbHVlQ2hhbmdlczxLIGV4dGVuZHMgc3RyaW5nPihldmVudHM/OiBDaGlsZEV2ZW50W10sIG9wdGlvbnM/OiB7aWRGaWVsZDogS30pOiBPYnNlcnZhYmxlPChUICYge1tUIGluIEtdPzogc3RyaW5nfSlbXT47XG4gIHNuYXBzaG90Q2hhbmdlcyhldmVudHM/OiBDaGlsZEV2ZW50W10pOiBPYnNlcnZhYmxlPFNuYXBzaG90QWN0aW9uPFQ+W10+O1xuICBzdGF0ZUNoYW5nZXMoZXZlbnRzPzogQ2hpbGRFdmVudFtdKTogT2JzZXJ2YWJsZTxTbmFwc2hvdEFjdGlvbjxUPj47XG4gIGF1ZGl0VHJhaWwoZXZlbnRzPzogQ2hpbGRFdmVudFtdKTogT2JzZXJ2YWJsZTxTbmFwc2hvdEFjdGlvbjxUPltdPjtcbiAgdXBkYXRlKGl0ZW06IEZpcmViYXNlT3BlcmF0aW9uLCBkYXRhOiBQYXJ0aWFsPFQ+KTogUHJvbWlzZTx2b2lkPjtcbiAgc2V0KGl0ZW06IEZpcmViYXNlT3BlcmF0aW9uLCBkYXRhOiBUKTogUHJvbWlzZTx2b2lkPjtcbiAgcHVzaChkYXRhOiBUKTogZmlyZWJhc2UuZGF0YWJhc2UuVGhlbmFibGVSZWZlcmVuY2U7XG4gIHJlbW92ZShpdGVtPzogRmlyZWJhc2VPcGVyYXRpb24pOiBQcm9taXNlPHZvaWQ+O1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEFuZ3VsYXJGaXJlT2JqZWN0PFQ+IHtcbiAgcXVlcnk6IERhdGFiYXNlUXVlcnk7XG4gIHZhbHVlQ2hhbmdlcygpOiBPYnNlcnZhYmxlPFQgfCBudWxsPjtcbiAgc25hcHNob3RDaGFuZ2VzKCk6IE9ic2VydmFibGU8U25hcHNob3RBY3Rpb248VD4+O1xuICB1cGRhdGUoZGF0YTogUGFydGlhbDxUPik6IFByb21pc2U8dm9pZD47XG4gIHNldChkYXRhOiBUKTogUHJvbWlzZTx2b2lkPjtcbiAgcmVtb3ZlKCk6IFByb21pc2U8dm9pZD47XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgRmlyZWJhc2VPcGVyYXRpb25DYXNlcyB7XG4gIHN0cmluZ0Nhc2U6ICgpID0+IFByb21pc2U8dm9pZD47XG4gIGZpcmViYXNlQ2FzZT86ICgpID0+IFByb21pc2U8dm9pZD47XG4gIHNuYXBzaG90Q2FzZT86ICgpID0+IFByb21pc2U8dm9pZD47XG4gIHVud3JhcHBlZFNuYXBzaG90Q2FzZT86ICgpID0+IFByb21pc2U8dm9pZD47XG59XG5cbmV4cG9ydCB0eXBlIFF1ZXJ5Rm4gPSAocmVmOiBEYXRhYmFzZVJlZmVyZW5jZSkgPT4gRGF0YWJhc2VRdWVyeTtcbmV4cG9ydCB0eXBlIENoaWxkRXZlbnQgPSAnY2hpbGRfYWRkZWQnIHwgJ2NoaWxkX3JlbW92ZWQnIHwgJ2NoaWxkX2NoYW5nZWQnIHwgJ2NoaWxkX21vdmVkJztcbmV4cG9ydCB0eXBlIExpc3RlbkV2ZW50ID0gJ3ZhbHVlJyB8IENoaWxkRXZlbnQ7XG5cbmV4cG9ydCBpbnRlcmZhY2UgQWN0aW9uPFQ+IHtcbiAgdHlwZTogTGlzdGVuRXZlbnQ7XG4gIHBheWxvYWQ6IFQ7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQW5ndWxhckZpcmVBY3Rpb248VD4gZXh0ZW5kcyBBY3Rpb248VD4ge1xuICBwcmV2S2V5OiBzdHJpbmcgfCBudWxsIHwgdW5kZWZpbmVkO1xuICBrZXk6IHN0cmluZyB8IG51bGw7XG59XG5cbmV4cG9ydCB0eXBlIFNuYXBzaG90QWN0aW9uPFQ+ID0gQW5ndWxhckZpcmVBY3Rpb248RGF0YWJhc2VTbmFwc2hvdDxUPj47XG5cbmV4cG9ydCB0eXBlIFByaW1pdGl2ZSA9IG51bWJlciB8IHN0cmluZyB8IGJvb2xlYW47XG5cbmV4cG9ydCBpbnRlcmZhY2UgRGF0YWJhc2VTbmFwc2hvdEV4aXN0czxUPiBleHRlbmRzIGZpcmViYXNlLmRhdGFiYXNlLkRhdGFTbmFwc2hvdCB7XG4gIGV4aXN0cygpOiB0cnVlO1xuICB2YWwoKTogVDtcbiAgZm9yRWFjaChhY3Rpb246IChhOiBEYXRhYmFzZVNuYXBzaG90PFQ+KSA9PiBib29sZWFuKTogYm9vbGVhbjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBEYXRhYmFzZVNuYXBzaG90RG9lc05vdEV4aXN0PFQ+IGV4dGVuZHMgZmlyZWJhc2UuZGF0YWJhc2UuRGF0YVNuYXBzaG90IHtcbiAgZXhpc3RzKCk6IGZhbHNlO1xuICB2YWwoKTogbnVsbDtcbiAgZm9yRWFjaChhY3Rpb246IChhOiBEYXRhYmFzZVNuYXBzaG90PFQ+KSA9PiBib29sZWFuKTogYm9vbGVhbjtcbn1cblxuZXhwb3J0IHR5cGUgRGF0YWJhc2VTbmFwc2hvdDxUPiA9IERhdGFiYXNlU25hcHNob3RFeGlzdHM8VD4gfCBEYXRhYmFzZVNuYXBzaG90RG9lc05vdEV4aXN0PFQ+O1xuXG5leHBvcnQgdHlwZSBEYXRhYmFzZVJlZmVyZW5jZSA9IGZpcmViYXNlLmRhdGFiYXNlLlJlZmVyZW5jZTtcbmV4cG9ydCB0eXBlIERhdGFiYXNlUXVlcnkgPSBmaXJlYmFzZS5kYXRhYmFzZS5RdWVyeTtcbmV4cG9ydCB0eXBlIERhdGFTbmFwc2hvdCA9IGZpcmViYXNlLmRhdGFiYXNlLkRhdGFTbmFwc2hvdDtcbmV4cG9ydCB0eXBlIFF1ZXJ5UmVmZXJlbmNlID0gRGF0YWJhc2VSZWZlcmVuY2UgfCBEYXRhYmFzZVF1ZXJ5O1xuZXhwb3J0IHR5cGUgUGF0aFJlZmVyZW5jZSA9IFF1ZXJ5UmVmZXJlbmNlIHwgc3RyaW5nO1xuIl19
@@ -1,6 +1,6 @@
1
- import { stateChanges } from './state-changes';
2
- import { fromRef } from '../observable/fromRef';
3
1
  import { map, scan, skipWhile, withLatestFrom } from 'rxjs/operators';
2
+ import { fromRef } from '../observable/fromRef';
3
+ import { stateChanges } from './state-changes';
4
4
  export function auditTrail(query, events, scheduler) {
5
5
  const auditTrail$ = stateChanges(query, events)
6
6
  .pipe(scan((current, action) => [...current, action], []));
@@ -44,4 +44,4 @@ function waitForLoaded(query, action$, scheduler) {
44
44
  // to iterate through the snapshots
45
45
  map(meta => meta.actions));
46
46
  }
47
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXVkaXQtdHJhaWwuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvY29tcGF0L2RhdGFiYXNlL2xpc3QvYXVkaXQtdHJhaWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBRS9DLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUVoRCxPQUFPLEVBQUUsR0FBRyxFQUFFLElBQUksRUFBRSxTQUFTLEVBQUUsY0FBYyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFdEUsTUFBTSxVQUFVLFVBQVUsQ0FBSSxLQUFvQixFQUFFLE1BQXFCLEVBQUUsU0FBeUI7SUFDbEcsTUFBTSxXQUFXLEdBQUcsWUFBWSxDQUFJLEtBQUssRUFBRSxNQUFNLENBQUM7U0FDL0MsSUFBSSxDQUNILElBQUksQ0FBQyxDQUFDLE9BQU8sRUFBRSxNQUFNLEVBQUUsRUFBRSxDQUFDLENBQUMsR0FBRyxPQUFPLEVBQUUsTUFBTSxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQ3BELENBQUM7SUFDSixPQUFPLGFBQWEsQ0FBSSxLQUFLLEVBQUUsV0FBVyxFQUFFLFNBQVMsQ0FBQyxDQUFDO0FBQ3pELENBQUM7QUFPRCxTQUFTLFVBQVUsQ0FBSSxLQUFvQixFQUFFLFNBQXlCO0lBQ3BFLHdEQUF3RDtJQUN4RCx3REFBd0Q7SUFDeEQsNkRBQTZEO0lBQzdELE9BQU8sT0FBTyxDQUFJLEtBQUssRUFBRSxPQUFPLEVBQUUsSUFBSSxFQUFFLFNBQVMsQ0FBQztTQUNqRCxJQUFJLENBQ0gsR0FBRyxDQUFDLElBQUksQ0FBQyxFQUFFO1FBQ1QscUNBQXFDO1FBQ3JDLElBQUksYUFBYSxDQUFDO1FBQ2xCLG1EQUFtRDtRQUNuRCxJQUFJLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsRUFBRTtZQUMzQixhQUFhLEdBQUcsS0FBSyxDQUFDLEdBQUcsQ0FBQztZQUFDLE9BQU8sS0FBSyxDQUFDO1FBQzFDLENBQUMsQ0FBQyxDQUFDO1FBQ0gsa0RBQWtEO1FBQ2xELE9BQU8sRUFBRSxJQUFJLEVBQUUsYUFBYSxFQUFFLENBQUM7SUFDakMsQ0FBQyxDQUFDLENBQ0gsQ0FBQztBQUNKLENBQUM7QUFFRCxTQUFTLGFBQWEsQ0FBSSxLQUFvQixFQUFFLE9BQXdDLEVBQUUsU0FBeUI7SUFDakgsTUFBTSxPQUFPLEdBQUcsVUFBVSxDQUFJLEtBQUssRUFBRSxTQUFTLENBQUMsQ0FBQztJQUNoRCxPQUFPLE9BQU87U0FDWCxJQUFJLENBQ0gsY0FBYyxDQUFDLE9BQU8sQ0FBQztJQUN2QiwrREFBK0Q7SUFDL0Qsa0VBQWtFO0lBQ2xFLEdBQUcsQ0FBQyxDQUFDLENBQUMsTUFBTSxFQUFFLE9BQU8sQ0FBQyxFQUFFLEVBQUU7UUFDeEIscUNBQXFDO1FBQ3JDLE1BQU0sYUFBYSxHQUFHLE1BQU0sQ0FBQyxhQUFhLENBQUM7UUFDM0MsNENBQTRDO1FBQzVDLE1BQU0sVUFBVSxHQUFHLE9BQU8sQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDakQsT0FBTyxFQUFFLE9BQU8sRUFBRSxhQUFhLEVBQUUsVUFBVSxFQUFFLENBQUM7SUFDaEQsQ0FBQyxDQUFDO0lBQ0YsNkRBQTZEO0lBQzdELGlFQUFpRTtJQUNqRSx3Q0FBd0M7SUFDeEMsU0FBUyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDO0lBQ3JFLHNEQUFzRDtJQUN0RCxtQ0FBbUM7SUFDbkMsR0FBRyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUMxQixDQUFDO0FBQ04sQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFuZ3VsYXJGaXJlQWN0aW9uLCBDaGlsZEV2ZW50LCBEYXRhYmFzZVF1ZXJ5LCBEYXRhU25hcHNob3QsIFNuYXBzaG90QWN0aW9uIH0gZnJvbSAnLi4vaW50ZXJmYWNlcyc7XG5pbXBvcnQgeyBzdGF0ZUNoYW5nZXMgfSBmcm9tICcuL3N0YXRlLWNoYW5nZXMnO1xuaW1wb3J0IHsgT2JzZXJ2YWJsZSwgU2NoZWR1bGVyTGlrZSB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgZnJvbVJlZiB9IGZyb20gJy4uL29ic2VydmFibGUvZnJvbVJlZic7XG5cbmltcG9ydCB7IG1hcCwgc2Nhbiwgc2tpcFdoaWxlLCB3aXRoTGF0ZXN0RnJvbSB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcblxuZXhwb3J0IGZ1bmN0aW9uIGF1ZGl0VHJhaWw8VD4ocXVlcnk6IERhdGFiYXNlUXVlcnksIGV2ZW50cz86IENoaWxkRXZlbnRbXSwgc2NoZWR1bGVyPzogU2NoZWR1bGVyTGlrZSk6IE9ic2VydmFibGU8U25hcHNob3RBY3Rpb248VD5bXT4ge1xuICBjb25zdCBhdWRpdFRyYWlsJCA9IHN0YXRlQ2hhbmdlczxUPihxdWVyeSwgZXZlbnRzKVxuICAgIC5waXBlKFxuICAgICAgc2NhbigoY3VycmVudCwgYWN0aW9uKSA9PiBbLi4uY3VycmVudCwgYWN0aW9uXSwgW10pXG4gICAgKTtcbiAgcmV0dXJuIHdhaXRGb3JMb2FkZWQ8VD4ocXVlcnksIGF1ZGl0VHJhaWwkLCBzY2hlZHVsZXIpO1xufVxuXG5pbnRlcmZhY2UgTG9hZGVkTWV0YWRhdGEge1xuICBkYXRhOiBBbmd1bGFyRmlyZUFjdGlvbjxEYXRhU25hcHNob3Q+O1xuICBsYXN0S2V5VG9Mb2FkOiBhbnk7XG59XG5cbmZ1bmN0aW9uIGxvYWRlZERhdGE8VD4ocXVlcnk6IERhdGFiYXNlUXVlcnksIHNjaGVkdWxlcj86IFNjaGVkdWxlckxpa2UpOiBPYnNlcnZhYmxlPExvYWRlZE1ldGFkYXRhPiB7XG4gIC8vIENyZWF0ZSBhbiBvYnNlcnZhYmxlIG9mIGxvYWRlZCB2YWx1ZXMgdG8gcmV0cmlldmUgdGhlXG4gIC8vIGtub3duIGRhdGFzZXQuIFRoaXMgd2lsbCBhbGxvdyB1cyB0byBrbm93IHdoYXQga2V5IHRvXG4gIC8vIGVtaXQgdGhlIFwid2hvbGVcIiBhcnJheSBhdCB3aGVuIGxpc3RlbmluZyBmb3IgY2hpbGQgZXZlbnRzLlxuICByZXR1cm4gZnJvbVJlZjxUPihxdWVyeSwgJ3ZhbHVlJywgJ29uJywgc2NoZWR1bGVyKVxuICAucGlwZShcbiAgICBtYXAoZGF0YSA9PiB7XG4gICAgICAvLyBTdG9yZSB0aGUgbGFzdCBrZXkgaW4gdGhlIGRhdGEgc2V0XG4gICAgICBsZXQgbGFzdEtleVRvTG9hZDtcbiAgICAgIC8vIExvb3AgdGhyb3VnaCBsb2FkZWQgZGF0YXNldCB0byBmaW5kIHRoZSBsYXN0IGtleVxuICAgICAgZGF0YS5wYXlsb2FkLmZvckVhY2goY2hpbGQgPT4ge1xuICAgICAgICBsYXN0S2V5VG9Mb2FkID0gY2hpbGQua2V5OyByZXR1cm4gZmFsc2U7XG4gICAgICB9KTtcbiAgICAgIC8vIHJldHVybiBkYXRhIHNldCBhbmQgdGhlIGN1cnJlbnQgbGFzdCBrZXkgbG9hZGVkXG4gICAgICByZXR1cm4geyBkYXRhLCBsYXN0S2V5VG9Mb2FkIH07XG4gICAgfSlcbiAgKTtcbn1cblxuZnVuY3Rpb24gd2FpdEZvckxvYWRlZDxUPihxdWVyeTogRGF0YWJhc2VRdWVyeSwgYWN0aW9uJDogT2JzZXJ2YWJsZTxTbmFwc2hvdEFjdGlvbjxUPltdPiwgc2NoZWR1bGVyPzogU2NoZWR1bGVyTGlrZSkge1xuICBjb25zdCBsb2FkZWQkID0gbG9hZGVkRGF0YTxUPihxdWVyeSwgc2NoZWR1bGVyKTtcbiAgcmV0dXJuIGxvYWRlZCRcbiAgICAucGlwZShcbiAgICAgIHdpdGhMYXRlc3RGcm9tKGFjdGlvbiQpLFxuICAgICAgLy8gR2V0IHRoZSBsYXRlc3QgdmFsdWVzIGZyb20gdGhlIFwibG9hZGVkXCIgYW5kIFwiY2hpbGRcIiBkYXRhc2V0c1xuICAgICAgLy8gV2UgY2FuIHVzZSBib3RoIGRhdGFzZXRzIHRvIGZvcm0gYW4gYXJyYXkgb2YgdGhlIGxhdGVzdCB2YWx1ZXMuXG4gICAgICBtYXAoKFtsb2FkZWQsIGFjdGlvbnNdKSA9PiB7XG4gICAgICAgIC8vIFN0b3JlIHRoZSBsYXN0IGtleSBpbiB0aGUgZGF0YSBzZXRcbiAgICAgICAgY29uc3QgbGFzdEtleVRvTG9hZCA9IGxvYWRlZC5sYXN0S2V5VG9Mb2FkO1xuICAgICAgICAvLyBTdG9yZSBhbGwgY2hpbGQga2V5cyBsb2FkZWQgYXQgdGhpcyBwb2ludFxuICAgICAgICBjb25zdCBsb2FkZWRLZXlzID0gYWN0aW9ucy5tYXAoc25hcCA9PiBzbmFwLmtleSk7XG4gICAgICAgIHJldHVybiB7IGFjdGlvbnMsIGxhc3RLZXlUb0xvYWQsIGxvYWRlZEtleXMgfTtcbiAgICAgIH0pLFxuICAgICAgLy8gVGhpcyBpcyB0aGUgbWFnaWNhbCBwYXJ0LCBvbmx5IGVtaXQgd2hlbiB0aGUgbGFzdCBsb2FkIGtleVxuICAgICAgLy8gaW4gdGhlIGRhdGFzZXQgaGFzIGJlZW4gbG9hZGVkIGJ5IGEgY2hpbGQgZXZlbnQuIEF0IHRoaXMgcG9pbnRcbiAgICAgIC8vIHdlIGNhbiBhc3N1bWUgdGhlIGRhdGFzZXQgaXMgXCJ3aG9sZVwiLlxuICAgICAgc2tpcFdoaWxlKG1ldGEgPT4gbWV0YS5sb2FkZWRLZXlzLmluZGV4T2YobWV0YS5sYXN0S2V5VG9Mb2FkKSA9PT0gLTEpLFxuICAgICAgLy8gUGx1Y2sgb2ZmIHRoZSBtZXRhIGRhdGEgYmVjYXVzZSB0aGUgdXNlciBvbmx5IGNhcmVzXG4gICAgICAvLyB0byBpdGVyYXRlIHRocm91Z2ggdGhlIHNuYXBzaG90c1xuICAgICAgbWFwKG1ldGEgPT4gbWV0YS5hY3Rpb25zKVxuICAgICk7XG59XG4iXX0=
47
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXVkaXQtdHJhaWwuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvY29tcGF0L2RhdGFiYXNlL2xpc3QvYXVkaXQtdHJhaWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFFLEdBQUcsRUFBRSxJQUFJLEVBQUUsU0FBUyxFQUFFLGNBQWMsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRXRFLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUNoRCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFHL0MsTUFBTSxVQUFVLFVBQVUsQ0FBSSxLQUFvQixFQUFFLE1BQXFCLEVBQUUsU0FBeUI7SUFDbEcsTUFBTSxXQUFXLEdBQUcsWUFBWSxDQUFJLEtBQUssRUFBRSxNQUFNLENBQUM7U0FDL0MsSUFBSSxDQUNILElBQUksQ0FBQyxDQUFDLE9BQU8sRUFBRSxNQUFNLEVBQUUsRUFBRSxDQUFDLENBQUMsR0FBRyxPQUFPLEVBQUUsTUFBTSxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQ3BELENBQUM7SUFDSixPQUFPLGFBQWEsQ0FBSSxLQUFLLEVBQUUsV0FBVyxFQUFFLFNBQVMsQ0FBQyxDQUFDO0FBQ3pELENBQUM7QUFPRCxTQUFTLFVBQVUsQ0FBSSxLQUFvQixFQUFFLFNBQXlCO0lBQ3BFLHdEQUF3RDtJQUN4RCx3REFBd0Q7SUFDeEQsNkRBQTZEO0lBQzdELE9BQU8sT0FBTyxDQUFJLEtBQUssRUFBRSxPQUFPLEVBQUUsSUFBSSxFQUFFLFNBQVMsQ0FBQztTQUNqRCxJQUFJLENBQ0gsR0FBRyxDQUFDLElBQUksQ0FBQyxFQUFFO1FBQ1QscUNBQXFDO1FBQ3JDLElBQUksYUFBYSxDQUFDO1FBQ2xCLG1EQUFtRDtRQUNuRCxJQUFJLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsRUFBRTtZQUMzQixhQUFhLEdBQUcsS0FBSyxDQUFDLEdBQUcsQ0FBQztZQUFDLE9BQU8sS0FBSyxDQUFDO1FBQzFDLENBQUMsQ0FBQyxDQUFDO1FBQ0gsa0RBQWtEO1FBQ2xELE9BQU8sRUFBRSxJQUFJLEVBQUUsYUFBYSxFQUFFLENBQUM7SUFDakMsQ0FBQyxDQUFDLENBQ0gsQ0FBQztBQUNKLENBQUM7QUFFRCxTQUFTLGFBQWEsQ0FBSSxLQUFvQixFQUFFLE9BQXdDLEVBQUUsU0FBeUI7SUFDakgsTUFBTSxPQUFPLEdBQUcsVUFBVSxDQUFJLEtBQUssRUFBRSxTQUFTLENBQUMsQ0FBQztJQUNoRCxPQUFPLE9BQU87U0FDWCxJQUFJLENBQ0gsY0FBYyxDQUFDLE9BQU8sQ0FBQztJQUN2QiwrREFBK0Q7SUFDL0Qsa0VBQWtFO0lBQ2xFLEdBQUcsQ0FBQyxDQUFDLENBQUMsTUFBTSxFQUFFLE9BQU8sQ0FBQyxFQUFFLEVBQUU7UUFDeEIscUNBQXFDO1FBQ3JDLE1BQU0sYUFBYSxHQUFHLE1BQU0sQ0FBQyxhQUFhLENBQUM7UUFDM0MsNENBQTRDO1FBQzVDLE1BQU0sVUFBVSxHQUFHLE9BQU8sQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDakQsT0FBTyxFQUFFLE9BQU8sRUFBRSxhQUFhLEVBQUUsVUFBVSxFQUFFLENBQUM7SUFDaEQsQ0FBQyxDQUFDO0lBQ0YsNkRBQTZEO0lBQzdELGlFQUFpRTtJQUNqRSx3Q0FBd0M7SUFDeEMsU0FBUyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDO0lBQ3JFLHNEQUFzRDtJQUN0RCxtQ0FBbUM7SUFDbkMsR0FBRyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUMxQixDQUFDO0FBQ04sQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE9ic2VydmFibGUsIFNjaGVkdWxlckxpa2UgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IG1hcCwgc2Nhbiwgc2tpcFdoaWxlLCB3aXRoTGF0ZXN0RnJvbSB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7IEFuZ3VsYXJGaXJlQWN0aW9uLCBDaGlsZEV2ZW50LCBEYXRhU25hcHNob3QsIERhdGFiYXNlUXVlcnksIFNuYXBzaG90QWN0aW9uIH0gZnJvbSAnLi4vaW50ZXJmYWNlcyc7XG5pbXBvcnQgeyBmcm9tUmVmIH0gZnJvbSAnLi4vb2JzZXJ2YWJsZS9mcm9tUmVmJztcbmltcG9ydCB7IHN0YXRlQ2hhbmdlcyB9IGZyb20gJy4vc3RhdGUtY2hhbmdlcyc7XG5cblxuZXhwb3J0IGZ1bmN0aW9uIGF1ZGl0VHJhaWw8VD4ocXVlcnk6IERhdGFiYXNlUXVlcnksIGV2ZW50cz86IENoaWxkRXZlbnRbXSwgc2NoZWR1bGVyPzogU2NoZWR1bGVyTGlrZSk6IE9ic2VydmFibGU8U25hcHNob3RBY3Rpb248VD5bXT4ge1xuICBjb25zdCBhdWRpdFRyYWlsJCA9IHN0YXRlQ2hhbmdlczxUPihxdWVyeSwgZXZlbnRzKVxuICAgIC5waXBlKFxuICAgICAgc2NhbigoY3VycmVudCwgYWN0aW9uKSA9PiBbLi4uY3VycmVudCwgYWN0aW9uXSwgW10pXG4gICAgKTtcbiAgcmV0dXJuIHdhaXRGb3JMb2FkZWQ8VD4ocXVlcnksIGF1ZGl0VHJhaWwkLCBzY2hlZHVsZXIpO1xufVxuXG5pbnRlcmZhY2UgTG9hZGVkTWV0YWRhdGEge1xuICBkYXRhOiBBbmd1bGFyRmlyZUFjdGlvbjxEYXRhU25hcHNob3Q+O1xuICBsYXN0S2V5VG9Mb2FkOiBhbnk7XG59XG5cbmZ1bmN0aW9uIGxvYWRlZERhdGE8VD4ocXVlcnk6IERhdGFiYXNlUXVlcnksIHNjaGVkdWxlcj86IFNjaGVkdWxlckxpa2UpOiBPYnNlcnZhYmxlPExvYWRlZE1ldGFkYXRhPiB7XG4gIC8vIENyZWF0ZSBhbiBvYnNlcnZhYmxlIG9mIGxvYWRlZCB2YWx1ZXMgdG8gcmV0cmlldmUgdGhlXG4gIC8vIGtub3duIGRhdGFzZXQuIFRoaXMgd2lsbCBhbGxvdyB1cyB0byBrbm93IHdoYXQga2V5IHRvXG4gIC8vIGVtaXQgdGhlIFwid2hvbGVcIiBhcnJheSBhdCB3aGVuIGxpc3RlbmluZyBmb3IgY2hpbGQgZXZlbnRzLlxuICByZXR1cm4gZnJvbVJlZjxUPihxdWVyeSwgJ3ZhbHVlJywgJ29uJywgc2NoZWR1bGVyKVxuICAucGlwZShcbiAgICBtYXAoZGF0YSA9PiB7XG4gICAgICAvLyBTdG9yZSB0aGUgbGFzdCBrZXkgaW4gdGhlIGRhdGEgc2V0XG4gICAgICBsZXQgbGFzdEtleVRvTG9hZDtcbiAgICAgIC8vIExvb3AgdGhyb3VnaCBsb2FkZWQgZGF0YXNldCB0byBmaW5kIHRoZSBsYXN0IGtleVxuICAgICAgZGF0YS5wYXlsb2FkLmZvckVhY2goY2hpbGQgPT4ge1xuICAgICAgICBsYXN0S2V5VG9Mb2FkID0gY2hpbGQua2V5OyByZXR1cm4gZmFsc2U7XG4gICAgICB9KTtcbiAgICAgIC8vIHJldHVybiBkYXRhIHNldCBhbmQgdGhlIGN1cnJlbnQgbGFzdCBrZXkgbG9hZGVkXG4gICAgICByZXR1cm4geyBkYXRhLCBsYXN0S2V5VG9Mb2FkIH07XG4gICAgfSlcbiAgKTtcbn1cblxuZnVuY3Rpb24gd2FpdEZvckxvYWRlZDxUPihxdWVyeTogRGF0YWJhc2VRdWVyeSwgYWN0aW9uJDogT2JzZXJ2YWJsZTxTbmFwc2hvdEFjdGlvbjxUPltdPiwgc2NoZWR1bGVyPzogU2NoZWR1bGVyTGlrZSkge1xuICBjb25zdCBsb2FkZWQkID0gbG9hZGVkRGF0YTxUPihxdWVyeSwgc2NoZWR1bGVyKTtcbiAgcmV0dXJuIGxvYWRlZCRcbiAgICAucGlwZShcbiAgICAgIHdpdGhMYXRlc3RGcm9tKGFjdGlvbiQpLFxuICAgICAgLy8gR2V0IHRoZSBsYXRlc3QgdmFsdWVzIGZyb20gdGhlIFwibG9hZGVkXCIgYW5kIFwiY2hpbGRcIiBkYXRhc2V0c1xuICAgICAgLy8gV2UgY2FuIHVzZSBib3RoIGRhdGFzZXRzIHRvIGZvcm0gYW4gYXJyYXkgb2YgdGhlIGxhdGVzdCB2YWx1ZXMuXG4gICAgICBtYXAoKFtsb2FkZWQsIGFjdGlvbnNdKSA9PiB7XG4gICAgICAgIC8vIFN0b3JlIHRoZSBsYXN0IGtleSBpbiB0aGUgZGF0YSBzZXRcbiAgICAgICAgY29uc3QgbGFzdEtleVRvTG9hZCA9IGxvYWRlZC5sYXN0S2V5VG9Mb2FkO1xuICAgICAgICAvLyBTdG9yZSBhbGwgY2hpbGQga2V5cyBsb2FkZWQgYXQgdGhpcyBwb2ludFxuICAgICAgICBjb25zdCBsb2FkZWRLZXlzID0gYWN0aW9ucy5tYXAoc25hcCA9PiBzbmFwLmtleSk7XG4gICAgICAgIHJldHVybiB7IGFjdGlvbnMsIGxhc3RLZXlUb0xvYWQsIGxvYWRlZEtleXMgfTtcbiAgICAgIH0pLFxuICAgICAgLy8gVGhpcyBpcyB0aGUgbWFnaWNhbCBwYXJ0LCBvbmx5IGVtaXQgd2hlbiB0aGUgbGFzdCBsb2FkIGtleVxuICAgICAgLy8gaW4gdGhlIGRhdGFzZXQgaGFzIGJlZW4gbG9hZGVkIGJ5IGEgY2hpbGQgZXZlbnQuIEF0IHRoaXMgcG9pbnRcbiAgICAgIC8vIHdlIGNhbiBhc3N1bWUgdGhlIGRhdGFzZXQgaXMgXCJ3aG9sZVwiLlxuICAgICAgc2tpcFdoaWxlKG1ldGEgPT4gbWV0YS5sb2FkZWRLZXlzLmluZGV4T2YobWV0YS5sYXN0S2V5VG9Mb2FkKSA9PT0gLTEpLFxuICAgICAgLy8gUGx1Y2sgb2ZmIHRoZSBtZXRhIGRhdGEgYmVjYXVzZSB0aGUgdXNlciBvbmx5IGNhcmVzXG4gICAgICAvLyB0byBpdGVyYXRlIHRocm91Z2ggdGhlIHNuYXBzaG90c1xuICAgICAgbWFwKG1ldGEgPT4gbWV0YS5hY3Rpb25zKVxuICAgICk7XG59XG4iXX0=
@@ -0,0 +1,85 @@
1
+ import { merge, of } from 'rxjs';
2
+ import { distinctUntilChanged, scan, switchMap } from 'rxjs/operators';
3
+ import { fromRef } from '../observable/fromRef';
4
+ import { isNil } from '../utils';
5
+ export function listChanges(ref, events, scheduler) {
6
+ return fromRef(ref, 'value', 'once', scheduler).pipe(switchMap(snapshotAction => {
7
+ const childEvent$ = [of(snapshotAction)];
8
+ events.forEach(event => childEvent$.push(fromRef(ref, event, 'on', scheduler)));
9
+ return merge(...childEvent$).pipe(scan(buildView, []));
10
+ }), distinctUntilChanged());
11
+ }
12
+ function positionFor(changes, key) {
13
+ const len = changes.length;
14
+ for (let i = 0; i < len; i++) {
15
+ if (changes[i].payload.key === key) {
16
+ return i;
17
+ }
18
+ }
19
+ return -1;
20
+ }
21
+ function positionAfter(changes, prevKey) {
22
+ if (isNil(prevKey)) {
23
+ return 0;
24
+ }
25
+ else {
26
+ const i = positionFor(changes, prevKey);
27
+ if (i === -1) {
28
+ return changes.length;
29
+ }
30
+ else {
31
+ return i + 1;
32
+ }
33
+ }
34
+ }
35
+ function buildView(current, action) {
36
+ const { payload, prevKey, key } = action;
37
+ const currentKeyPosition = positionFor(current, key);
38
+ const afterPreviousKeyPosition = positionAfter(current, prevKey);
39
+ switch (action.type) {
40
+ case 'value':
41
+ if (action.payload?.exists()) {
42
+ let prevKey = null;
43
+ action.payload.forEach(payload => {
44
+ const action = { payload, type: 'value', prevKey, key: payload.key };
45
+ prevKey = payload.key;
46
+ current = [...current, action];
47
+ return false;
48
+ });
49
+ }
50
+ return current;
51
+ case 'child_added':
52
+ if (currentKeyPosition > -1) {
53
+ // check that the previouskey is what we expect, else reorder
54
+ const previous = current[currentKeyPosition - 1];
55
+ if ((previous?.key || null) !== prevKey) {
56
+ current = current.filter(x => x.payload.key !== payload.key);
57
+ current.splice(afterPreviousKeyPosition, 0, action);
58
+ }
59
+ }
60
+ else if (prevKey == null) {
61
+ return [action, ...current];
62
+ }
63
+ else {
64
+ current = current.slice();
65
+ current.splice(afterPreviousKeyPosition, 0, action);
66
+ }
67
+ return current;
68
+ case 'child_removed':
69
+ return current.filter(x => x.payload.key !== payload.key);
70
+ case 'child_changed':
71
+ return current.map(x => x.payload.key === key ? action : x);
72
+ case 'child_moved':
73
+ if (currentKeyPosition > -1) {
74
+ const data = current.splice(currentKeyPosition, 1)[0];
75
+ current = current.slice();
76
+ current.splice(afterPreviousKeyPosition, 0, data);
77
+ return current;
78
+ }
79
+ return current;
80
+ // default will also remove null results
81
+ default:
82
+ return current;
83
+ }
84
+ }
85
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hhbmdlcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9jb21wYXQvZGF0YWJhc2UvbGlzdC9jaGFuZ2VzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBNkIsS0FBSyxFQUFFLEVBQUUsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUM1RCxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsSUFBSSxFQUFFLFNBQVMsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRXZFLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUNoRCxPQUFPLEVBQUUsS0FBSyxFQUFFLE1BQU0sVUFBVSxDQUFDO0FBR2pDLE1BQU0sVUFBVSxXQUFXLENBQVUsR0FBa0IsRUFBRSxNQUFvQixFQUFFLFNBQXlCO0lBQ3RHLE9BQU8sT0FBTyxDQUFDLEdBQUcsRUFBRSxPQUFPLEVBQUUsTUFBTSxFQUFFLFNBQVMsQ0FBQyxDQUFDLElBQUksQ0FDbEQsU0FBUyxDQUFDLGNBQWMsQ0FBQyxFQUFFO1FBQ3pCLE1BQU0sV0FBVyxHQUFHLENBQUMsRUFBRSxDQUFDLGNBQWMsQ0FBQyxDQUFDLENBQUM7UUFDekMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLEdBQUcsRUFBRSxLQUFLLEVBQUUsSUFBSSxFQUFFLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUNoRixPQUFPLEtBQUssQ0FBQyxHQUFHLFdBQVcsQ0FBQyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsU0FBUyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUM7SUFDekQsQ0FBQyxDQUFDLEVBQ0Ysb0JBQW9CLEVBQUUsQ0FDdkIsQ0FBQztBQUNKLENBQUM7QUFFRCxTQUFTLFdBQVcsQ0FBSSxPQUE0QixFQUFFLEdBQUc7SUFDdkQsTUFBTSxHQUFHLEdBQUcsT0FBTyxDQUFDLE1BQU0s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LENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxHQUFHLEtBQUssT0FBTyxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQzVELEtBQUssZUFBZTtZQUNsQixPQUFPLE9BQU8sQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLEdBQUcsS0FBSyxHQUFHLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDOUQsS0FBSyxhQUFhO1lBQ2hCLElBQUksa0JBQWtCLEdBQUcsQ0FBQyxDQUFDLEVBQUU7Z0JBQzNCLE1BQU0sSUFBSSxHQUFHLE9BQU8sQ0FBQyxNQUFNLENBQUMsa0JBQWtCLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7Z0JBQ3RELE9BQU8sR0FBRyxPQUFPLENBQUMsS0FBSyxFQUFFLENBQUM7Z0JBQzFCLE9BQU8sQ0FBQyxNQUFNLENBQUMsd0JBQXdCLEVBQUUsQ0FBQyxFQUFFLElBQUksQ0FBQyxDQUFDO2dCQUNsRCxPQUFPLE9BQU8sQ0FBQzthQUNoQjtZQUNELE9BQU8sT0FBTyxDQUFDO1FBQ2pCLHdDQUF3QztRQUN4QztZQUNFLE9BQU8sT0FBTyxDQUFDO0tBQ2xCO0FBQ0gsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE9ic2VydmFibGUsIFNjaGVkdWxlckxpa2UsIG1lcmdlLCBvZiB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgZGlzdGluY3RVbnRpbENoYW5nZWQsIHNjYW4sIHN3aXRjaE1hcCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7IENoaWxkRXZlbnQsIERhdGFiYXNlUXVlcnksIFNuYXBzaG90QWN0aW9uIH0gZnJvbSAnLi4vaW50ZXJmYWNlcyc7XG5pbXBvcnQgeyBmcm9tUmVmIH0gZnJvbSAnLi4vb2JzZXJ2YWJsZS9mcm9tUmVmJztcbmltcG9ydCB7IGlzTmlsIH0gZnJvbSAnLi4vdXRpbHMnO1xuXG5cbmV4cG9ydCBmdW5jdGlvbiBsaXN0Q2hhbmdlczxUID0gYW55PihyZWY6IERhdGFiYXNlUXVlcnksIGV2ZW50czogQ2hpbGRFdmVudFtdLCBzY2hlZHVsZXI/OiBTY2hlZHVsZXJMaWtlKTogT2JzZXJ2YWJsZTxTbmFwc2hvdEFjdGlvbjxUPltdPiB7XG4gIHJldHVybiBmcm9tUmVmKHJlZiwgJ3ZhbHVlJywgJ29uY2UnLCBzY2hlZHVsZXIpLnBpcGUoXG4gICAgc3dpdGNoTWFwKHNuYXBzaG90QWN0aW9uID0+IHtcbiAgICAgIGNvbnN0IGNoaWxkRXZlbnQkID0gW29mKHNuYXBzaG90QWN0aW9uKV07XG4gICAgICBldmVudHMuZm9yRWFjaChldmVudCA9PiBjaGlsZEV2ZW50JC5wdXNoKGZyb21SZWYocmVmLCBldmVudCwgJ29uJywgc2NoZWR1bGVyKSkpO1xuICAgICAgcmV0dXJuIG1lcmdlKC4uLmNoaWxkRXZlbnQkKS5waXBlKHNjYW4oYnVpbGRWaWV3LCBbXSkpO1xuICAgIH0pLFxuICAgIGRpc3RpbmN0VW50aWxDaGFuZ2VkKClcbiAgKTtcbn1cblxuZnVuY3Rpb24gcG9zaXRpb25Gb3I8VD4oY2hhbmdlczogU25hcHNob3RBY3Rpb248VD5bXSwga2V5KSB7XG4gIGNvbnN0IGxlbiA9IGNoYW5nZXMubGVuZ3RoO1xuICBmb3IgKGxldCBpID0gMDsgaSA8IGxlbjsgaSsrKSB7XG4gICAgaWYgKGNoYW5nZXNbaV0ucGF5bG9hZC5rZXkgPT09IGtleSkge1xuICAgICAgcmV0dXJuIGk7XG4gICAgfVxuICB9XG4gIHJldHVybiAtMTtcbn1cblxuZnVuY3Rpb24gcG9zaXRpb25BZnRlcjxUPihjaGFuZ2VzOiBTbmFwc2hvdEFjdGlvbjxUPltdLCBwcmV2S2V5Pzogc3RyaW5nKSB7XG4gIGlmIChpc05pbChwcmV2S2V5KSkge1xuICAgIHJldHVybiAwO1xuICB9IGVsc2Uge1xuICAgIGNvbnN0IGkgPSBwb3NpdGlvbkZvcihjaGFuZ2VzLCBwcmV2S2V5KTtcbiAgICBpZiAoaSA9PT0gLTEpIHtcbiAgICAgIHJldHVybiBjaGFuZ2VzLmxlbmd0aDtcbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuIGkgKyAxO1xuICAgIH1cbiAgfVxufVxuXG5mdW5jdGlvbiBidWlsZFZpZXcoY3VycmVudCwgYWN0aW9uKSB7XG4gIGNvbnN0IHsgcGF5bG9hZCwgcHJldktleSwga2V5IH0gPSBhY3Rpb247XG4gIGNvbnN0IGN1cnJlbnRLZXlQb3NpdGlvbiA9IHBvc2l0aW9uRm9yKGN1cnJlbnQsIGtleSk7XG4gIGNvbnN0IGFmdGVyUHJldmlvdXNLZXlQb3NpdGlvbiA9IHBvc2l0aW9uQWZ0ZXIoY3VycmVudCwgcHJldktleSk7XG4gIHN3aXRjaCAoYWN0aW9uLnR5cGUpIHtcbiAgICBjYXNlICd2YWx1ZSc6XG4gICAgICBpZiAoYWN0aW9uLnBheWxvYWQ/LmV4aXN0cygpKSB7XG4gICAgICAgIGxldCBwcmV2S2V5ID0gbnVsbDtcbiAgICAgICAgYWN0aW9uLnBheWxvYWQuZm9yRWFjaChwYXlsb2FkID0+IHtcbiAgICAgICAgICBjb25zdCBhY3Rpb24gPSB7IHBheWxvYWQsIHR5cGU6ICd2YWx1ZScsIHByZXZLZXksIGtleTogcGF5bG9hZC5rZXkgfTtcbiAgICAgICAgICBwcmV2S2V5ID0gcGF5bG9hZC5rZXk7XG4gICAgICAgICAgY3VycmVudCA9IFsuLi5jdXJyZW50LCBhY3Rpb25dO1xuICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgfSk7XG4gICAgICB9XG4gICAgICByZXR1cm4gY3VycmVudDtcbiAgICBjYXNlICdjaGlsZF9hZGRlZCc6XG4gICAgICBpZiAoY3VycmVudEtleVBvc2l0aW9uID4gLTEpIHtcbiAgICAgICAgLy8gY2hlY2sgdGhhdCB0aGUgcHJldmlvdXNrZXkgaXMgd2hhdCB3ZSBleHBlY3QsIGVsc2UgcmVvcmRlclxuICAgICAgICBjb25zdCBwcmV2aW91cyA9IGN1cnJlbnRbY3VycmVudEtleVBvc2l0aW9uIC0gMV07XG4gICAgICAgIGlmICgocHJldmlvdXM/LmtleSB8fCBudWxsKSAhPT0gcHJldktleSkge1xuICAgICAgICAgIGN1cnJlbnQgPSBjdXJyZW50LmZpbHRlcih4ID0+IHgucGF5bG9hZC5rZXkgIT09IHBheWxvYWQua2V5KTtcbiAgICAgICAgICBjdXJyZW50LnNwbGljZShhZnRlclByZXZpb3VzS2V5UG9zaXRpb24sIDAsIGFjdGlvbik7XG4gICAgICAgIH1cbiAgICAgIH0gZWxzZSBpZiAocHJldktleSA9PSBudWxsKSB7XG4gICAgICAgIHJldHVybiBbYWN0aW9uLCAuLi5jdXJyZW50XTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGN1cnJlbnQgPSBjdXJyZW50LnNsaWNlKCk7XG4gICAgICAgIGN1cnJlbnQuc3BsaWNlKGFmdGVyUHJldmlvdXNLZXlQb3NpdGlvbiwgMCwgYWN0aW9uKTtcbiAgICAgIH1cbiAgICAgIHJldHVybiBjdXJyZW50O1xuICAgIGNhc2UgJ2NoaWxkX3JlbW92ZWQnOlxuICAgICAgcmV0dXJuIGN1cnJlbnQuZmlsdGVyKHggPT4geC5wYXlsb2FkLmtleSAhPT0gcGF5bG9hZC5rZXkpO1xuICAgIGNhc2UgJ2NoaWxkX2NoYW5nZWQnOlxuICAgICAgcmV0dXJuIGN1cnJlbnQubWFwKHggPT4geC5wYXlsb2FkLmtleSA9PT0ga2V5ID8gYWN0aW9uIDogeCk7XG4gICAgY2FzZSAnY2hpbGRfbW92ZWQnOlxuICAgICAgaWYgKGN1cnJlbnRLZXlQb3NpdGlvbiA+IC0xKSB7XG4gICAgICAgIGNvbnN0IGRhdGEgPSBjdXJyZW50LnNwbGljZShjdXJyZW50S2V5UG9zaXRpb24sIDEpWzBdO1xuICAgICAgICBjdXJyZW50ID0gY3VycmVudC5zbGljZSgpO1xuICAgICAgICBjdXJyZW50LnNwbGljZShhZnRlclByZXZpb3VzS2V5UG9zaXRpb24sIDAsIGRhdGEpO1xuICAgICAgICByZXR1cm4gY3VycmVudDtcbiAgICAgIH1cbiAgICAgIHJldHVybiBjdXJyZW50O1xuICAgIC8vIGRlZmF1bHQgd2lsbCBhbHNvIHJlbW92ZSBudWxsIHJlc3VsdHNcbiAgICBkZWZhdWx0OlxuICAgICAgcmV0dXJuIGN1cnJlbnQ7XG4gIH1cbn1cbiJdfQ==
@@ -0,0 +1,44 @@
1
+ import { keepUnstableUntilFirst } from '@angular/fire';
2
+ import { map } from 'rxjs/operators';
3
+ import { auditTrail } from './audit-trail';
4
+ import { createDataOperationMethod } from './data-operation';
5
+ import { createRemoveMethod } from './remove';
6
+ import { snapshotChanges } from './snapshot-changes';
7
+ import { stateChanges } from './state-changes';
8
+ export function createListReference(query, afDatabase) {
9
+ const outsideAngularScheduler = afDatabase.schedulers.outsideAngular;
10
+ const refInZone = afDatabase.schedulers.ngZone.run(() => query.ref);
11
+ return {
12
+ query,
13
+ update: createDataOperationMethod(refInZone, 'update'),
14
+ set: createDataOperationMethod(refInZone, 'set'),
15
+ push: (data) => refInZone.push(data),
16
+ remove: createRemoveMethod(refInZone),
17
+ snapshotChanges(events) {
18
+ return snapshotChanges(query, events, outsideAngularScheduler).pipe(keepUnstableUntilFirst);
19
+ },
20
+ stateChanges(events) {
21
+ return stateChanges(query, events, outsideAngularScheduler).pipe(keepUnstableUntilFirst);
22
+ },
23
+ auditTrail(events) {
24
+ return auditTrail(query, events, outsideAngularScheduler).pipe(keepUnstableUntilFirst);
25
+ },
26
+ valueChanges(events, options) {
27
+ const snapshotChanges$ = snapshotChanges(query, events, outsideAngularScheduler);
28
+ return snapshotChanges$.pipe(map(actions => actions.map(a => {
29
+ if (options && options.idField) {
30
+ return {
31
+ ...a.payload.val(),
32
+ ...{
33
+ [options.idField]: a.key
34
+ }
35
+ };
36
+ }
37
+ else {
38
+ return a.payload.val();
39
+ }
40
+ })), keepUnstableUntilFirst);
41
+ }
42
+ };
43
+ }
44
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3JlYXRlLXJlZmVyZW5jZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9jb21wYXQvZGF0YWJhc2UvbGlzdC9jcmVhdGUtcmVmZXJlbmNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUV2RCxPQUFPLEVBQUUsR0FBRyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFHckMsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzQyxPQUFPLEVBQUUseUJBQXlCLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUM3RCxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxVQUFVLENBQUM7QUFDOUMsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBQ3JELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUUvQyxNQUFNLFVBQVUsbUJBQW1CLENBQVMsS0FBb0IsRUFBRSxVQUErQjtJQUMvRixNQUFNLHVCQUF1QixHQUFHLFVBQVUsQ0FBQyxVQUFVLENBQUMsY0FBYyxDQUFDO0lBQ3JFLE1BQU0sU0FBUyxHQUFHLFVBQVUsQ0FBQyxVQUFVLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUM7SUFDcEUsT0FBTztRQUNMLEtBQUs7UUFDTCxNQUFNLEVBQUUseUJBQXlCLENBQUMsU0FBUyxFQUFFLFFBQVEsQ0FBQztRQUN0RCxHQUFHLEVBQUUseUJBQXlCLENBQUMsU0FBUyxFQUFFLEtBQUssQ0FBQztRQUNoRCxJQUFJLEVBQUUsQ0FBQyxJQUFPLEVBQUUsRUFBRSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDO1FBQ3ZDLE1BQU0sRUFBRSxrQkFBa0IsQ0FBQyxTQUFTLENBQUM7UUFDckMsZUFBZSxDQUFDLE1BQXFCO1lBQ25DLE9BQU8sZUFBZSxDQUFJLEtBQUssRUFBRSxNQUFNLEVBQUUsdUJBQXVCLENBQUMsQ0FBQyxJQUFJLENBQUMsc0JBQXNCLENBQUMsQ0FBQztRQUNqRyxDQUFDO1FBQ0QsWUFBWSxDQUFDLE1BQXFCO1lBQ2hDLE9BQU8sWUFBWSxDQUFJLEtBQUssRUFBRSxNQUFNLEVBQUUsdUJBQXVCLENBQUMsQ0FBQyxJQUFJLENBQUMsc0JBQXNCLENBQUMsQ0FBQztRQUM5RixDQUFDO1FBQ0QsVUFBVSxDQUFDLE1BQXFCO1lBQzlCLE9BQU8sVUFBVSxDQUFJLEtBQUssRUFBRSxNQUFNLEVBQUUsdUJBQXVCLENBQUMsQ0FBQyxJQUFJLENBQUMsc0JBQXNCLENBQUMsQ0FBQztRQUM1RixDQUFDO1FBQ0QsWUFBWSxDQUFtQixNQUFxQixFQUFFLE9BQXVCO1lBQzNFLE1BQU0sZ0JBQWdCLEdBQUcsZUFBZSxDQUFJLEtBQUssRUFBRSxNQUFNLEVBQUUsdUJBQXVCLENBQUMsQ0FBQztZQUNwRixPQUFPLGdCQUFnQixDQUFDLElBQUksQ0FDMUIsR0FBRyxDQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRTtnQkFDN0IsSUFBSSxPQUFPLElBQUksT0FBTyxDQUFDLE9BQU8sRUFBRTtvQkFDOUIsT0FBTzt3QkFDTCxHQUFHLENBQUMsQ0FBQyxPQUFPLENBQUMsR0FBRyxFQUFPO3dCQUN2QixHQUFHOzRCQUNELENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUMsQ0FBQyxHQUFHO3lCQUN6QjtxQkFDRixDQUFDO2lCQUNIO3FCQUFNO29CQUNMLE9BQU8sQ0FBQyxDQUFDLE9BQU8sQ0FBQyxHQUFHLEVBQWdDLENBQUE7aUJBQ3JEO1lBQ0gsQ0FBQyxDQUFDLENBQUMsRUFDSCxzQkFBc0IsQ0FDdkIsQ0FBQztRQUNKLENBQUM7S0FDRixDQUFDO0FBQ0osQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGtlZXBVbnN0YWJsZVVudGlsRmlyc3QgfSBmcm9tICdAYW5ndWxhci9maXJlJztcbmltcG9ydCB0eXBlIHsgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgbWFwIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHsgQW5ndWxhckZpcmVEYXRhYmFzZSB9IGZyb20gJy4uL2RhdGFiYXNlJztcbmltcG9ydCB7IEFuZ3VsYXJGaXJlTGlzdCwgQ2hpbGRFdmVudCwgRGF0YWJhc2VRdWVyeSB9IGZyb20gJy4uL2ludGVyZmFjZXMnO1xuaW1wb3J0IHsgYXVkaXRUcmFpbCB9IGZyb20gJy4vYXVkaXQtdHJhaWwnO1xuaW1wb3J0IHsgY3JlYXRlRGF0YU9wZXJhdGlvbk1ldGhvZCB9IGZyb20gJy4vZGF0YS1vcGVyYXRpb24nO1xuaW1wb3J0IHsgY3JlYXRlUmVtb3ZlTWV0aG9kIH0gZnJvbSAnLi9yZW1vdmUnO1xuaW1wb3J0IHsgc25hcHNob3RDaGFuZ2VzIH0gZnJvbSAnLi9zbmFwc2hvdC1jaGFuZ2VzJztcbmltcG9ydCB7IHN0YXRlQ2hhbmdlcyB9IGZyb20gJy4vc3RhdGUtY2hhbmdlcyc7XG5cbmV4cG9ydCBmdW5jdGlvbiBjcmVhdGVMaXN0UmVmZXJlbmNlPFQ9IGFueT4ocXVlcnk6IERhdGFiYXNlUXVlcnksIGFmRGF0YWJhc2U6IEFuZ3VsYXJGaXJlRGF0YWJhc2UpOiBBbmd1bGFyRmlyZUxpc3Q8VD4ge1xuICBjb25zdCBvdXRzaWRlQW5ndWxhclNjaGVkdWxlciA9IGFmRGF0YWJhc2Uuc2NoZWR1bGVycy5vdXRzaWRlQW5ndWxhcjtcbiAgY29uc3QgcmVmSW5ab25lID0gYWZEYXRhYmFzZS5zY2hlZHVsZXJzLm5nWm9uZS5ydW4oKCkgPT4gcXVlcnkucmVmKTtcbiAgcmV0dXJuIHtcbiAgICBxdWVyeSxcbiAgICB1cGRhdGU6IGNyZWF0ZURhdGFPcGVyYXRpb25NZXRob2QocmVmSW5ab25lLCAndXBkYXRlJyksXG4gICAgc2V0OiBjcmVhdGVEYXRhT3BlcmF0aW9uTWV0aG9kKHJlZkluWm9uZSwgJ3NldCcpLFxuICAgIHB1c2g6IChkYXRhOiBUKSA9PiByZWZJblpvbmUucHVzaChkYXRhKSxcbiAgICByZW1vdmU6IGNyZWF0ZVJlbW92ZU1ldGhvZChyZWZJblpvbmUpLFxuICAgIHNuYXBzaG90Q2hhbmdlcyhldmVudHM/OiBDaGlsZEV2ZW50W10pIHtcbiAgICAgIHJldHVybiBzbmFwc2hvdENoYW5nZXM8VD4ocXVlcnksIGV2ZW50cywgb3V0c2lkZUFuZ3VsYXJTY2hlZHVsZXIpLnBpcGUoa2VlcFVuc3RhYmxlVW50aWxGaXJzdCk7XG4gICAgfSxcbiAgICBzdGF0ZUNoYW5nZXMoZXZlbnRzPzogQ2hpbGRFdmVudFtdKSB7XG4gICAgICByZXR1cm4gc3RhdGVDaGFuZ2VzPFQ+KHF1ZXJ5LCBldmVudHMsIG91dHNpZGVBbmd1bGFyU2NoZWR1bGVyKS5waXBlKGtlZXBVbnN0YWJsZVVudGlsRmlyc3QpO1xuICAgIH0sXG4gICAgYXVkaXRUcmFpbChldmVudHM/OiBDaGlsZEV2ZW50W10pIHtcbiAgICAgIHJldHVybiBhdWRpdFRyYWlsPFQ+KHF1ZXJ5LCBldmVudHMsIG91dHNpZGVBbmd1bGFyU2NoZWR1bGVyKS5waXBlKGtlZXBVbnN0YWJsZVVudGlsRmlyc3QpO1xuICAgIH0sXG4gICAgdmFsdWVDaGFuZ2VzPEsgZXh0ZW5kcyBzdHJpbmc+KGV2ZW50cz86IENoaWxkRXZlbnRbXSwgb3B0aW9ucz86IHtpZEZpZWxkPzogS30pOiBPYnNlcnZhYmxlPChUICYgUmVjb3JkPHN0cmluZywgc3RyaW5nPilbXT4ge1xuICAgICAgY29uc3Qgc25hcHNob3RDaGFuZ2VzJCA9IHNuYXBzaG90Q2hhbmdlczxUPihxdWVyeSwgZXZlbnRzLCBvdXRzaWRlQW5ndWxhclNjaGVkdWxlcik7XG4gICAgICByZXR1cm4gc25hcHNob3RDaGFuZ2VzJC5waXBlKFxuICAgICAgICBtYXAoYWN0aW9ucyA9PiBhY3Rpb25zLm1hcChhID0+IHtcbiAgICAgICAgICBpZiAob3B0aW9ucyAmJiBvcHRpb25zLmlkRmllbGQpIHtcbiAgICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAgIC4uLmEucGF5bG9hZC52YWwoKSBhcyBULFxuICAgICAgICAgICAgICAuLi57XG4gICAgICAgICAgICAgICAgW29wdGlvbnMuaWRGaWVsZF06IGEua2V5XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH07XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHJldHVybiBhLnBheWxvYWQudmFsKCkgYXMgVCAmIFJlY29yZDxzdHJpbmcsIHN0cmluZz5cbiAgICAgICAgICB9XG4gICAgICAgIH0pKSxcbiAgICAgICAga2VlcFVuc3RhYmxlVW50aWxGaXJzdFxuICAgICAgKTtcbiAgICB9XG4gIH07XG59XG4iXX0=
@@ -8,4 +8,4 @@ export function createDataOperationMethod(ref, operation) {
8
8
  });
9
9
  };
10
10
  }
11
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0YS1vcGVyYXRpb24uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvY29tcGF0L2RhdGFiYXNlL2xpc3QvZGF0YS1vcGVyYXRpb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sVUFBVSxDQUFDO0FBRS9DLE1BQU0sVUFBVSx5QkFBeUIsQ0FBSSxHQUFzQixFQUFFLFNBQWlCO0lBQ3BGLE9BQU8sU0FBUyxhQUFhLENBQUksSUFBdUIsRUFBRSxLQUFRO1FBQ2hFLE9BQU8sbUJBQW1CLENBQUMsSUFBSSxFQUFFO1lBQy9CLFVBQVUsRUFBRSxHQUFHLEVBQUUsQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLElBQWMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLEtBQUssQ0FBQztZQUM3RCxZQUFZLEVBQUUsR0FBRyxFQUFFLENBQUUsSUFBMEIsQ0FBQyxTQUFTLENBQUMsQ0FBQyxLQUFLLENBQUM7WUFDakUsWUFBWSxFQUFFLEdBQUcsRUFBRSxDQUFFLElBQTRCLENBQUMsR0FBRyxDQUFDLFNBQVMsQ0FBQyxDQUFDLEtBQUssQ0FBQztTQUN4RSxDQUFDLENBQUM7SUFDTCxDQUFDLENBQUM7QUFDSixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRGF0YWJhc2VSZWZlcmVuY2UsIERhdGFiYXNlU25hcHNob3QsIEZpcmViYXNlT3BlcmF0aW9uIH0gZnJvbSAnLi4vaW50ZXJmYWNlcyc7XG5pbXBvcnQgeyBjaGVja09wZXJhdGlvbkNhc2VzIH0gZnJvbSAnLi4vdXRpbHMnO1xuXG5leHBvcnQgZnVuY3Rpb24gY3JlYXRlRGF0YU9wZXJhdGlvbk1ldGhvZDxUPihyZWY6IERhdGFiYXNlUmVmZXJlbmNlLCBvcGVyYXRpb246IHN0cmluZykge1xuICByZXR1cm4gZnVuY3Rpb24gZGF0YU9wZXJhdGlvbjxUPihpdGVtOiBGaXJlYmFzZU9wZXJhdGlvbiwgdmFsdWU6IFQpIHtcbiAgICByZXR1cm4gY2hlY2tPcGVyYXRpb25DYXNlcyhpdGVtLCB7XG4gICAgICBzdHJpbmdDYXNlOiAoKSA9PiByZWYuY2hpbGQoaXRlbSBhcyBzdHJpbmcpW29wZXJhdGlvbl0odmFsdWUpLFxuICAgICAgZmlyZWJhc2VDYXNlOiAoKSA9PiAoaXRlbSBhcyBEYXRhYmFzZVJlZmVyZW5jZSlbb3BlcmF0aW9uXSh2YWx1ZSksXG4gICAgICBzbmFwc2hvdENhc2U6ICgpID0+IChpdGVtIGFzIERhdGFiYXNlU25hcHNob3Q8VD4pLnJlZltvcGVyYXRpb25dKHZhbHVlKVxuICAgIH0pO1xuICB9O1xufVxuIl19
11
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0YS1vcGVyYXRpb24uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvY29tcGF0L2RhdGFiYXNlL2xpc3QvZGF0YS1vcGVyYXRpb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sVUFBVSxDQUFDO0FBRS9DLE1BQU0sVUFBVSx5QkFBeUIsQ0FBQyxHQUFzQixFQUFFLFNBQWlCO0lBQ2pGLE9BQU8sU0FBUyxhQUFhLENBQUksSUFBdUIsRUFBRSxLQUFRO1FBQ2hFLE9BQU8sbUJBQW1CLENBQUMsSUFBSSxFQUFFO1lBQy9CLFVBQVUsRUFBRSxHQUFHLEVBQUUsQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLElBQWMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLEtBQUssQ0FBQztZQUM3RCxZQUFZLEVBQUUsR0FBRyxFQUFFLENBQUUsSUFBMEIsQ0FBQyxTQUFTLENBQUMsQ0FBQyxLQUFLLENBQUM7WUFDakUsWUFBWSxFQUFFLEdBQUcsRUFBRSxDQUFFLElBQTRCLENBQUMsR0FBRyxDQUFDLFNBQVMsQ0FBQyxDQUFDLEtBQUssQ0FBQztTQUN4RSxDQUFDLENBQUM7SUFDTCxDQUFDLENBQUM7QUFDSixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRGF0YWJhc2VSZWZlcmVuY2UsIERhdGFiYXNlU25hcHNob3QsIEZpcmViYXNlT3BlcmF0aW9uIH0gZnJvbSAnLi4vaW50ZXJmYWNlcyc7XG5pbXBvcnQgeyBjaGVja09wZXJhdGlvbkNhc2VzIH0gZnJvbSAnLi4vdXRpbHMnO1xuXG5leHBvcnQgZnVuY3Rpb24gY3JlYXRlRGF0YU9wZXJhdGlvbk1ldGhvZChyZWY6IERhdGFiYXNlUmVmZXJlbmNlLCBvcGVyYXRpb246IHN0cmluZykge1xuICByZXR1cm4gZnVuY3Rpb24gZGF0YU9wZXJhdGlvbjxUPihpdGVtOiBGaXJlYmFzZU9wZXJhdGlvbiwgdmFsdWU6IFQpIHtcbiAgICByZXR1cm4gY2hlY2tPcGVyYXRpb25DYXNlcyhpdGVtLCB7XG4gICAgICBzdHJpbmdDYXNlOiAoKSA9PiByZWYuY2hpbGQoaXRlbSBhcyBzdHJpbmcpW29wZXJhdGlvbl0odmFsdWUpLFxuICAgICAgZmlyZWJhc2VDYXNlOiAoKSA9PiAoaXRlbSBhcyBEYXRhYmFzZVJlZmVyZW5jZSlbb3BlcmF0aW9uXSh2YWx1ZSksXG4gICAgICBzbmFwc2hvdENhc2U6ICgpID0+IChpdGVtIGFzIERhdGFiYXNlU25hcHNob3Q8VD4pLnJlZltvcGVyYXRpb25dKHZhbHVlKVxuICAgIH0pO1xuICB9O1xufVxuIl19
@@ -4,4 +4,4 @@ export function snapshotChanges(query, events, scheduler) {
4
4
  events = validateEventsArray(events);
5
5
  return listChanges(query, events, scheduler);
6
6
  }
7
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic25hcHNob3QtY2hhbmdlcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9jb21wYXQvZGF0YWJhc2UvbGlzdC9zbmFwc2hvdC1jaGFuZ2VzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxXQUFXLENBQUM7QUFFeEMsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sU0FBUyxDQUFDO0FBRTlDLE1BQU0sVUFBVSxlQUFlLENBQzdCLEtBQW9CLEVBQ3BCLE1BQXFCLEVBQ3JCLFNBQXlCO0lBRXpCLE1BQU0sR0FBRyxtQkFBbUIsQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUNyQyxPQUFPLFdBQVcsQ0FBSSxLQUFLLEVBQUUsTUFBTSxFQUFFLFNBQVMsQ0FBQyxDQUFDO0FBQ2xELENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBPYnNlcnZhYmxlLCBTY2hlZHVsZXJMaWtlIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBsaXN0Q2hhbmdlcyB9IGZyb20gJy4vY2hhbmdlcyc7XG5pbXBvcnQgeyBDaGlsZEV2ZW50LCBEYXRhYmFzZVF1ZXJ5LCBTbmFwc2hvdEFjdGlvbiB9IGZyb20gJy4uL2ludGVyZmFjZXMnO1xuaW1wb3J0IHsgdmFsaWRhdGVFdmVudHNBcnJheSB9IGZyb20gJy4vdXRpbHMnO1xuXG5leHBvcnQgZnVuY3Rpb24gc25hcHNob3RDaGFuZ2VzPFQ+KFxuICBxdWVyeTogRGF0YWJhc2VRdWVyeSxcbiAgZXZlbnRzPzogQ2hpbGRFdmVudFtdLFxuICBzY2hlZHVsZXI/OiBTY2hlZHVsZXJMaWtlXG4pOiBPYnNlcnZhYmxlPFNuYXBzaG90QWN0aW9uPFQ+W10+IHtcbiAgZXZlbnRzID0gdmFsaWRhdGVFdmVudHNBcnJheShldmVudHMpO1xuICByZXR1cm4gbGlzdENoYW5nZXM8VD4ocXVlcnksIGV2ZW50cywgc2NoZWR1bGVyKTtcbn1cbiJdfQ==
7
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic25hcHNob3QtY2hhbmdlcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9jb21wYXQvZGF0YWJhc2UvbGlzdC9zbmFwc2hvdC1jaGFuZ2VzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUVBLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxXQUFXLENBQUM7QUFDeEMsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sU0FBUyxDQUFDO0FBRTlDLE1BQU0sVUFBVSxlQUFlLENBQzdCLEtBQW9CLEVBQ3BCLE1BQXFCLEVBQ3JCLFNBQXlCO0lBRXpCLE1BQU0sR0FBRyxtQkFBbUIsQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUNyQyxPQUFPLFdBQVcsQ0FBSSxLQUFLLEVBQUUsTUFBTSxFQUFFLFNBQVMsQ0FBQyxDQUFDO0FBQ2xELENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBPYnNlcnZhYmxlLCBTY2hlZHVsZXJMaWtlIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBDaGlsZEV2ZW50LCBEYXRhYmFzZVF1ZXJ5LCBTbmFwc2hvdEFjdGlvbiB9IGZyb20gJy4uL2ludGVyZmFjZXMnO1xuaW1wb3J0IHsgbGlzdENoYW5nZXMgfSBmcm9tICcuL2NoYW5nZXMnO1xuaW1wb3J0IHsgdmFsaWRhdGVFdmVudHNBcnJheSB9IGZyb20gJy4vdXRpbHMnO1xuXG5leHBvcnQgZnVuY3Rpb24gc25hcHNob3RDaGFuZ2VzPFQ+KFxuICBxdWVyeTogRGF0YWJhc2VRdWVyeSxcbiAgZXZlbnRzPzogQ2hpbGRFdmVudFtdLFxuICBzY2hlZHVsZXI/OiBTY2hlZHVsZXJMaWtlXG4pOiBPYnNlcnZhYmxlPFNuYXBzaG90QWN0aW9uPFQ+W10+IHtcbiAgZXZlbnRzID0gdmFsaWRhdGVFdmVudHNBcnJheShldmVudHMpO1xuICByZXR1cm4gbGlzdENoYW5nZXM8VD4ocXVlcnksIGV2ZW50cywgc2NoZWR1bGVyKTtcbn1cbiJdfQ==
@@ -1,9 +1,9 @@
1
+ import { merge } from 'rxjs';
1
2
  import { fromRef } from '../observable/fromRef';
2
3
  import { validateEventsArray } from './utils';
3
- import { merge } from 'rxjs';
4
4
  export function stateChanges(query, events, scheduler) {
5
5
  events = validateEventsArray(events);
6
6
  const childEvent$ = events.map(event => fromRef(query, event, 'on', scheduler));
7
7
  return merge(...childEvent$);
8
8
  }
9
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RhdGUtY2hhbmdlcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9jb21wYXQvZGF0YWJhc2UvbGlzdC9zdGF0ZS1jaGFuZ2VzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUNoRCxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxTQUFTLENBQUM7QUFDOUMsT0FBTyxFQUFFLEtBQUssRUFBaUIsTUFBTSxNQUFNLENBQUM7QUFFNUMsTUFBTSxVQUFVLFlBQVksQ0FBSSxLQUFvQixFQUFFLE1BQXFCLEVBQUUsU0FBeUI7SUFDcEcsTUFBTSxHQUFHLG1CQUFtQixDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQ3JDLE1BQU0sV0FBVyxHQUFHLE1BQU0sQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQyxPQUFPLENBQUksS0FBSyxFQUFFLEtBQUssRUFBRSxJQUFJLEVBQUUsU0FBUyxDQUFDLENBQUMsQ0FBQztJQUNuRixPQUFPLEtBQUssQ0FBQyxHQUFHLFdBQVcsQ0FBQyxDQUFDO0FBQy9CLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDaGlsZEV2ZW50LCBEYXRhYmFzZVF1ZXJ5IH0gZnJvbSAnLi4vaW50ZXJmYWNlcyc7XG5pbXBvcnQgeyBmcm9tUmVmIH0gZnJvbSAnLi4vb2JzZXJ2YWJsZS9mcm9tUmVmJztcbmltcG9ydCB7IHZhbGlkYXRlRXZlbnRzQXJyYXkgfSBmcm9tICcuL3V0aWxzJztcbmltcG9ydCB7IG1lcmdlLCBTY2hlZHVsZXJMaWtlIH0gZnJvbSAncnhqcyc7XG5cbmV4cG9ydCBmdW5jdGlvbiBzdGF0ZUNoYW5nZXM8VD4ocXVlcnk6IERhdGFiYXNlUXVlcnksIGV2ZW50cz86IENoaWxkRXZlbnRbXSwgc2NoZWR1bGVyPzogU2NoZWR1bGVyTGlrZSkge1xuICBldmVudHMgPSB2YWxpZGF0ZUV2ZW50c0FycmF5KGV2ZW50cyk7XG4gIGNvbnN0IGNoaWxkRXZlbnQkID0gZXZlbnRzLm1hcChldmVudCA9PiBmcm9tUmVmPFQ+KHF1ZXJ5LCBldmVudCwgJ29uJywgc2NoZWR1bGVyKSk7XG4gIHJldHVybiBtZXJnZSguLi5jaGlsZEV2ZW50JCk7XG59XG4iXX0=
9
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RhdGUtY2hhbmdlcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9jb21wYXQvZGF0YWJhc2UvbGlzdC9zdGF0ZS1jaGFuZ2VzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBaUIsS0FBSyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBRTVDLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUNoRCxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxTQUFTLENBQUM7QUFFOUMsTUFBTSxVQUFVLFlBQVksQ0FBSSxLQUFvQixFQUFFLE1BQXFCLEVBQUUsU0FBeUI7SUFDcEcsTUFBTSxHQUFHLG1CQUFtQixDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQ3JDLE1BQU0sV0FBVyxHQUFHLE1BQU0sQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQyxPQUFPLENBQUksS0FBSyxFQUFFLEtBQUssRUFBRSxJQUFJLEVBQUUsU0FBUyxDQUFDLENBQUMsQ0FBQztJQUNuRixPQUFPLEtBQUssQ0FBQyxHQUFHLFdBQVcsQ0FBQyxDQUFDO0FBQy9CLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBTY2hlZHVsZXJMaWtlLCBtZXJnZSB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgQ2hpbGRFdmVudCwgRGF0YWJhc2VRdWVyeSB9IGZyb20gJy4uL2ludGVyZmFjZXMnO1xuaW1wb3J0IHsgZnJvbVJlZiB9IGZyb20gJy4uL29ic2VydmFibGUvZnJvbVJlZic7XG5pbXBvcnQgeyB2YWxpZGF0ZUV2ZW50c0FycmF5IH0gZnJvbSAnLi91dGlscyc7XG5cbmV4cG9ydCBmdW5jdGlvbiBzdGF0ZUNoYW5nZXM8VD4ocXVlcnk6IERhdGFiYXNlUXVlcnksIGV2ZW50cz86IENoaWxkRXZlbnRbXSwgc2NoZWR1bGVyPzogU2NoZWR1bGVyTGlrZSkge1xuICBldmVudHMgPSB2YWxpZGF0ZUV2ZW50c0FycmF5KGV2ZW50cyk7XG4gIGNvbnN0IGNoaWxkRXZlbnQkID0gZXZlbnRzLm1hcChldmVudCA9PiBmcm9tUmVmPFQ+KHF1ZXJ5LCBldmVudCwgJ29uJywgc2NoZWR1bGVyKSk7XG4gIHJldHVybiBtZXJnZSguLi5jaGlsZEV2ZW50JCk7XG59XG4iXX0=
@@ -1,6 +1,6 @@
1
+ import { keepUnstableUntilFirst } from '@angular/fire';
1
2
  import { map } from 'rxjs/operators';
2
3
  import { createObjectSnapshotChanges } from './snapshot-changes';
3
- import { keepUnstableUntilFirst } from '@angular/fire';
4
4
  export function createObjectReference(query, afDatabase) {
5
5
  return {
6
6
  query,
@@ -16,4 +16,4 @@ export function createObjectReference(query, afDatabase) {
16
16
  },
17
17
  };
18
18
  }
19
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3JlYXRlLXJlZmVyZW5jZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9jb21wYXQvZGF0YWJhc2Uvb2JqZWN0L2NyZWF0ZS1yZWZlcmVuY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLEdBQUcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRXJDLE9BQU8sRUFBRSwyQkFBMkIsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBRWpFLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUV2RCxNQUFNLFVBQVUscUJBQXFCLENBQVMsS0FBb0IsRUFBRSxVQUErQjtJQUNqRyxPQUFPO1FBQ0wsS0FBSztRQUNMLGVBQWU7WUFDYixPQUFPLDJCQUEyQixDQUFJLEtBQUssRUFBRSxVQUFVLENBQUMsVUFBVSxDQUFDLGNBQWMsQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUN2RixzQkFBc0IsQ0FDdkIsQ0FBQztRQUNKLENBQUM7UUFDRCxNQUFNLENBQUMsSUFBZ0IsSUFBSSxPQUFPLEtBQUssQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDLElBQVcsQ0FBa0IsQ0FBQyxDQUFDLENBQUM7UUFDbkYsR0FBRyxDQUFDLElBQU8sSUFBSSxPQUFPLEtBQUssQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBa0IsQ0FBQyxDQUFDLENBQUM7UUFDN0QsTUFBTSxLQUFLLE9BQU8sS0FBSyxDQUFDLEdBQUcsQ0FBQyxNQUFNLEVBQW1CLENBQUMsQ0FBQyxDQUFDO1FBQ3hELFlBQVk7WUFDVixNQUFNLGdCQUFnQixHQUFHLDJCQUEyQixDQUFDLEtBQUssRUFBRSxVQUFVLENBQUMsVUFBVSxDQUFDLGNBQWMsQ0FBQyxFQUFFLENBQUM7WUFDcEcsT0FBTyxnQkFBZ0IsQ0FBQyxJQUFJLENBQzFCLHNCQUFzQixFQUN0QixHQUFHLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLE1BQU0sRUFBRSxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLEdBQUcsRUFBTyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FDMUUsQ0FBQztRQUNKLENBQUM7S0FDRixDQUFDO0FBQ0osQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IG1hcCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7IEFuZ3VsYXJGaXJlT2JqZWN0LCBEYXRhYmFzZVF1ZXJ5IH0gZnJvbSAnLi4vaW50ZXJmYWNlcyc7XG5pbXBvcnQgeyBjcmVhdGVPYmplY3RTbmFwc2hvdENoYW5nZXMgfSBmcm9tICcuL3NuYXBzaG90LWNoYW5nZXMnO1xuaW1wb3J0IHsgQW5ndWxhckZpcmVEYXRhYmFzZSB9IGZyb20gJy4uL2RhdGFiYXNlJztcbmltcG9ydCB7IGtlZXBVbnN0YWJsZVVudGlsRmlyc3QgfSBmcm9tICdAYW5ndWxhci9maXJlJztcblxuZXhwb3J0IGZ1bmN0aW9uIGNyZWF0ZU9iamVjdFJlZmVyZW5jZTxUPSBhbnk+KHF1ZXJ5OiBEYXRhYmFzZVF1ZXJ5LCBhZkRhdGFiYXNlOiBBbmd1bGFyRmlyZURhdGFiYXNlKTogQW5ndWxhckZpcmVPYmplY3Q8VD4ge1xuICByZXR1cm4ge1xuICAgIHF1ZXJ5LFxuICAgIHNuYXBzaG90Q2hhbmdlczxUPigpIHtcbiAgICAgIHJldHVybiBjcmVhdGVPYmplY3RTbmFwc2hvdENoYW5nZXM8VD4ocXVlcnksIGFmRGF0YWJhc2Uuc2NoZWR1bGVycy5vdXRzaWRlQW5ndWxhcikoKS5waXBlKFxuICAgICAgICBrZWVwVW5zdGFibGVVbnRpbEZpcnN0XG4gICAgICApO1xuICAgIH0sXG4gICAgdXBkYXRlKGRhdGE6IFBhcnRpYWw8VD4pIHsgcmV0dXJuIHF1ZXJ5LnJlZi51cGRhdGUoZGF0YSBhcyBhbnkpIGFzIFByb21pc2U8dm9pZD47IH0sXG4gICAgc2V0KGRhdGE6IFQpIHsgcmV0dXJuIHF1ZXJ5LnJlZi5zZXQoZGF0YSkgYXMgUHJvbWlzZTx2b2lkPjsgfSxcbiAgICByZW1vdmUoKSB7IHJldHVybiBxdWVyeS5yZWYucmVtb3ZlKCkgYXMgUHJvbWlzZTx2b2lkPjsgfSxcbiAgICB2YWx1ZUNoYW5nZXM8VD4oKSB7XG4gICAgICBjb25zdCBzbmFwc2hvdENoYW5nZXMkID0gY3JlYXRlT2JqZWN0U25hcHNob3RDaGFuZ2VzKHF1ZXJ5LCBhZkRhdGFiYXNlLnNjaGVkdWxlcnMub3V0c2lkZUFuZ3VsYXIpKCk7XG4gICAgICByZXR1cm4gc25hcHNob3RDaGFuZ2VzJC5waXBlKFxuICAgICAgICBrZWVwVW5zdGFibGVVbnRpbEZpcnN0LFxuICAgICAgICBtYXAoYWN0aW9uID0+IGFjdGlvbi5wYXlsb2FkLmV4aXN0cygpID8gYWN0aW9uLnBheWxvYWQudmFsKCkgYXMgVCA6IG51bGwpXG4gICAgICApO1xuICAgIH0sXG4gIH07XG59XG4iXX0=
19
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3JlYXRlLXJlZmVyZW5jZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9jb21wYXQvZGF0YWJhc2Uvb2JqZWN0L2NyZWF0ZS1yZWZlcmVuY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3ZELE9BQU8sRUFBRSxHQUFHLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUdyQyxPQUFPLEVBQUUsMkJBQTJCLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUVqRSxNQUFNLFVBQVUscUJBQXFCLENBQVMsS0FBb0IsRUFBRSxVQUErQjtJQUNqRyxPQUFPO1FBQ0wsS0FBSztRQUNMLGVBQWU7WUFDYixPQUFPLDJCQUEyQixDQUFJLEtBQUssRUFBRSxVQUFVLENBQUMsVUFBVSxDQUFDLGNBQWMsQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUN2RixzQkFBc0IsQ0FDdkIsQ0FBQztRQUNKLENBQUM7UUFDRCxNQUFNLENBQUMsSUFBZ0IsSUFBSSxPQUFPLEtBQUssQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDLElBQVcsQ0FBa0IsQ0FBQyxDQUFDLENBQUM7UUFDbkYsR0FBRyxDQUFDLElBQU8sSUFBSSxPQUFPLEtBQUssQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBa0IsQ0FBQyxDQUFDLENBQUM7UUFDN0QsTUFBTSxLQUFLLE9BQU8sS0FBSyxDQUFDLEdBQUcsQ0FBQyxNQUFNLEVBQW1CLENBQUMsQ0FBQyxDQUFDO1FBQ3hELFlBQVk7WUFDVixNQUFNLGdCQUFnQixHQUFHLDJCQUEyQixDQUFDLEtBQUssRUFBRSxVQUFVLENBQUMsVUFBVSxDQUFDLGNBQWMsQ0FBQyxFQUFFLENBQUM7WUFDcEcsT0FBTyxnQkFBZ0IsQ0FBQyxJQUFJLENBQzFCLHNCQUFzQixFQUN0QixHQUFHLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLE1BQU0sRUFBRSxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLEdBQUcsRUFBTyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FDMUUsQ0FBQztRQUNKLENBQUM7S0FDRixDQUFDO0FBQ0osQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGtlZXBVbnN0YWJsZVVudGlsRmlyc3QgfSBmcm9tICdAYW5ndWxhci9maXJlJztcbmltcG9ydCB7IG1hcCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7IEFuZ3VsYXJGaXJlRGF0YWJhc2UgfSBmcm9tICcuLi9kYXRhYmFzZSc7XG5pbXBvcnQgeyBBbmd1bGFyRmlyZU9iamVjdCwgRGF0YWJhc2VRdWVyeSB9IGZyb20gJy4uL2ludGVyZmFjZXMnO1xuaW1wb3J0IHsgY3JlYXRlT2JqZWN0U25hcHNob3RDaGFuZ2VzIH0gZnJvbSAnLi9zbmFwc2hvdC1jaGFuZ2VzJztcblxuZXhwb3J0IGZ1bmN0aW9uIGNyZWF0ZU9iamVjdFJlZmVyZW5jZTxUPSBhbnk+KHF1ZXJ5OiBEYXRhYmFzZVF1ZXJ5LCBhZkRhdGFiYXNlOiBBbmd1bGFyRmlyZURhdGFiYXNlKTogQW5ndWxhckZpcmVPYmplY3Q8VD4ge1xuICByZXR1cm4ge1xuICAgIHF1ZXJ5LFxuICAgIHNuYXBzaG90Q2hhbmdlczxUPigpIHtcbiAgICAgIHJldHVybiBjcmVhdGVPYmplY3RTbmFwc2hvdENoYW5nZXM8VD4ocXVlcnksIGFmRGF0YWJhc2Uuc2NoZWR1bGVycy5vdXRzaWRlQW5ndWxhcikoKS5waXBlKFxuICAgICAgICBrZWVwVW5zdGFibGVVbnRpbEZpcnN0XG4gICAgICApO1xuICAgIH0sXG4gICAgdXBkYXRlKGRhdGE6IFBhcnRpYWw8VD4pIHsgcmV0dXJuIHF1ZXJ5LnJlZi51cGRhdGUoZGF0YSBhcyBhbnkpIGFzIFByb21pc2U8dm9pZD47IH0sXG4gICAgc2V0KGRhdGE6IFQpIHsgcmV0dXJuIHF1ZXJ5LnJlZi5zZXQoZGF0YSkgYXMgUHJvbWlzZTx2b2lkPjsgfSxcbiAgICByZW1vdmUoKSB7IHJldHVybiBxdWVyeS5yZWYucmVtb3ZlKCkgYXMgUHJvbWlzZTx2b2lkPjsgfSxcbiAgICB2YWx1ZUNoYW5nZXM8VD4oKSB7XG4gICAgICBjb25zdCBzbmFwc2hvdENoYW5nZXMkID0gY3JlYXRlT2JqZWN0U25hcHNob3RDaGFuZ2VzKHF1ZXJ5LCBhZkRhdGFiYXNlLnNjaGVkdWxlcnMub3V0c2lkZUFuZ3VsYXIpKCk7XG4gICAgICByZXR1cm4gc25hcHNob3RDaGFuZ2VzJC5waXBlKFxuICAgICAgICBrZWVwVW5zdGFibGVVbnRpbEZpcnN0LFxuICAgICAgICBtYXAoYWN0aW9uID0+IGFjdGlvbi5wYXlsb2FkLmV4aXN0cygpID8gYWN0aW9uLnBheWxvYWQudmFsKCkgYXMgVCA6IG51bGwpXG4gICAgICApO1xuICAgIH0sXG4gIH07XG59XG4iXX0=
@@ -4,4 +4,4 @@ export function createObjectSnapshotChanges(query, scheduler) {
4
4
  return fromRef(query, 'value', 'on', scheduler);
5
5
  };
6
6
  }
7
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic25hcHNob3QtY2hhbmdlcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9jb21wYXQvZGF0YWJhc2Uvb2JqZWN0L3NuYXBzaG90LWNoYW5nZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBR2hELE1BQU0sVUFBVSwyQkFBMkIsQ0FBSSxLQUFvQixFQUFFLFNBQXlCO0lBQzVGLE9BQU8sU0FBUyxlQUFlO1FBQzdCLE9BQU8sT0FBTyxDQUFDLEtBQUssRUFBRSxPQUFPLEVBQUUsSUFBSSxFQUFFLFNBQVMsQ0FBQyxDQUFDO0lBQ2xELENBQUMsQ0FBQztBQUNKLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBPYnNlcnZhYmxlLCBTY2hlZHVsZXJMaWtlIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBmcm9tUmVmIH0gZnJvbSAnLi4vb2JzZXJ2YWJsZS9mcm9tUmVmJztcbmltcG9ydCB7IERhdGFiYXNlUXVlcnksIFNuYXBzaG90QWN0aW9uIH0gZnJvbSAnLi4vaW50ZXJmYWNlcyc7XG5cbmV4cG9ydCBmdW5jdGlvbiBjcmVhdGVPYmplY3RTbmFwc2hvdENoYW5nZXM8VD4ocXVlcnk6IERhdGFiYXNlUXVlcnksIHNjaGVkdWxlcj86IFNjaGVkdWxlckxpa2UpIHtcbiAgcmV0dXJuIGZ1bmN0aW9uIHNuYXBzaG90Q2hhbmdlcygpOiBPYnNlcnZhYmxlPFNuYXBzaG90QWN0aW9uPFQ+PiB7XG4gICAgcmV0dXJuIGZyb21SZWYocXVlcnksICd2YWx1ZScsICdvbicsIHNjaGVkdWxlcik7XG4gIH07XG59XG4iXX0=
7
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic25hcHNob3QtY2hhbmdlcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9jb21wYXQvZGF0YWJhc2Uvb2JqZWN0L3NuYXBzaG90LWNoYW5nZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBRUEsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBRWhELE1BQU0sVUFBVSwyQkFBMkIsQ0FBSSxLQUFvQixFQUFFLFNBQXlCO0lBQzVGLE9BQU8sU0FBUyxlQUFlO1FBQzdCLE9BQU8sT0FBTyxDQUFDLEtBQUssRUFBRSxPQUFPLEVBQUUsSUFBSSxFQUFFLFNBQVMsQ0FBQyxDQUFDO0lBQ2xELENBQUMsQ0FBQztBQUNKLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBPYnNlcnZhYmxlLCBTY2hlZHVsZXJMaWtlIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBEYXRhYmFzZVF1ZXJ5LCBTbmFwc2hvdEFjdGlvbiB9IGZyb20gJy4uL2ludGVyZmFjZXMnO1xuaW1wb3J0IHsgZnJvbVJlZiB9IGZyb20gJy4uL29ic2VydmFibGUvZnJvbVJlZic7XG5cbmV4cG9ydCBmdW5jdGlvbiBjcmVhdGVPYmplY3RTbmFwc2hvdENoYW5nZXM8VD4ocXVlcnk6IERhdGFiYXNlUXVlcnksIHNjaGVkdWxlcj86IFNjaGVkdWxlckxpa2UpIHtcbiAgcmV0dXJuIGZ1bmN0aW9uIHNuYXBzaG90Q2hhbmdlcygpOiBPYnNlcnZhYmxlPFNuYXBzaG90QWN0aW9uPFQ+PiB7XG4gICAgcmV0dXJuIGZyb21SZWYocXVlcnksICd2YWx1ZScsICdvbicsIHNjaGVkdWxlcik7XG4gIH07XG59XG4iXX0=
@@ -0,0 +1,48 @@
1
+ import { Observable, asyncScheduler } from 'rxjs';
2
+ import { map, share } from 'rxjs/operators';
3
+ /**
4
+ * Create an observable from a Database Reference or Database Query.
5
+ * @param ref Database Reference
6
+ * @param event Listen event type ('value', 'added', 'changed', 'removed', 'moved')
7
+ * @param listenType 'on' or 'once'
8
+ * @param scheduler - Rxjs scheduler
9
+ */
10
+ export function fromRef(ref, event, listenType = 'on', scheduler = asyncScheduler) {
11
+ return new Observable(subscriber => {
12
+ let fn = null;
13
+ fn = ref[listenType](event, (snapshot, prevKey) => {
14
+ scheduler.schedule(() => {
15
+ subscriber.next({ snapshot, prevKey });
16
+ });
17
+ if (listenType === 'once') {
18
+ scheduler.schedule(() => subscriber.complete());
19
+ }
20
+ }, err => {
21
+ scheduler.schedule(() => subscriber.error(err));
22
+ });
23
+ if (listenType === 'on') {
24
+ return {
25
+ unsubscribe() {
26
+ if (fn != null) {
27
+ ref.off(event, fn);
28
+ }
29
+ }
30
+ };
31
+ }
32
+ else {
33
+ return {
34
+ // eslint-disable-next-line @typescript-eslint/no-empty-function
35
+ unsubscribe() {
36
+ }
37
+ };
38
+ }
39
+ }).pipe(map(payload => {
40
+ const { snapshot, prevKey } = payload;
41
+ let key = null;
42
+ if (snapshot.exists()) {
43
+ key = snapshot.key;
44
+ }
45
+ return { type: event, payload: snapshot, prevKey, key };
46
+ }), share());
47
+ }
48
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZnJvbVJlZi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9jb21wYXQvZGF0YWJhc2Uvb2JzZXJ2YWJsZS9mcm9tUmVmLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQWlCLGNBQWMsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUNqRSxPQUFPLEVBQUUsR0FBRyxFQUFFLEtBQUssRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBUTVDOzs7Ozs7R0FNRztBQUNILE1BQU0sVUFBVSxPQUFPLENBQUksR0FBa0IsRUFDbEIsS0FBa0IsRUFDbEIsVUFBVSxHQUFHLElBQUksRUFDakIsWUFBMkIsY0FBYztJQUVsRSxPQUFPLElBQUksVUFBVSxDQUFxQixVQUFVLENBQUMsRUFBRTtRQUNyRCxJQUFJLEVBQUUsR0FBUSxJQUFJLENBQUM7UUFDbkIsRUFBRSxHQUFHLEdBQUcsQ0FBQyxVQUFVLENBQUMsQ0FBQyxLQUFLLEVBQUUsQ0FBQyxRQUFRLEVBQUUsT0FBTyxFQUFFLEVBQUU7WUFDaEQsU0FBUyxDQUFDLFFBQVEsQ0FBQyxHQUFHLEVBQUU7Z0JBQ3RCLFVBQVUsQ0FBQyxJQUFJLENBQUMsRUFBRSxRQUFRLEVBQUUsT0FBTyxFQUFFLENBQUMsQ0FBQztZQUN6QyxDQUFDLENBQUMsQ0FBQztZQUNILElBQUksVUFBVSxLQUFLLE1BQU0sRUFBRTtnQkFDekIsU0FBUyxDQUFDLFFBQVEsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxVQUFVLENBQUMsUUFBUSxFQUFFLENBQUMsQ0FBQzthQUNqRDtRQUNILENBQUMsRUFBRSxHQUFHLENBQUMsRUFBRTtZQUNQLFNBQVMsQ0FBQyxRQUFRLENBQUMsR0FBRyxFQUFFLENBQUMsVUFBVSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDO1FBQ2xELENBQUMsQ0FBQyxDQUFDO1FBRUgsSUFBSSxVQUFVLEtBQUssSUFBSSxFQUFFO1lBQ3ZCLE9BQU87Z0JBQ0wsV0FBVztvQkFDVCxJQUFJLEVBQUUsSUFBSSxJQUFJLEVBQUU7d0JBQ2QsR0FBRyxDQUFDLEdBQUcsQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLENBQUM7cUJBQ3BCO2dCQUNILENBQUM7YUFDRixDQUFDO1NBQ0g7YUFBTTtZQUNMLE9BQU87Z0JBQ0wsZ0VBQWdFO2dCQUNoRSxXQUFXO2dCQUNYLENBQUM7YUFDRixDQUFDO1NBQ0g7SUFDSCxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQ0wsR0FBRyxDQUFDLE9BQU8sQ0FBQyxFQUFFO1FBQ1osTUFBTSxFQUFFLFFBQVEsRUFBRSxPQUFPLEVBQUUsR0FBRyxPQUFPLENBQUM7UUFDdEMsSUFBSSxHQUFHLEdBQWtCLElBQUksQ0FBQztRQUM5QixJQUFJLFFBQVEsQ0FBQyxNQUFNLEVBQUUsRUFBRTtZQUNyQixHQUFHLEdBQUcsUUFBUSxDQUFDLEdBQUcsQ0FBQztTQUNwQjtRQUNELE9BQU8sRUFBRSxJQUFJLEVBQUUsS0FBSyxFQUFFLE9BQU8sRUFBRSxRQUFRLEVBQUUsT0FBTyxFQUFFLEdBQUcsRUFBRSxDQUFDO0lBQzFELENBQUMsQ0FBQyxFQUNGLEtBQUssRUFBRSxDQUNSLENBQUM7QUFDSixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgT2JzZXJ2YWJsZSwgU2NoZWR1bGVyTGlrZSwgYXN5bmNTY2hlZHVsZXIgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IG1hcCwgc2hhcmUgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQgeyBBbmd1bGFyRmlyZUFjdGlvbiwgRGF0YWJhc2VRdWVyeSwgRGF0YWJhc2VTbmFwc2hvdCwgTGlzdGVuRXZlbnQgfSBmcm9tICcuLi9pbnRlcmZhY2VzJztcblxuaW50ZXJmYWNlIFNuYXBzaG90UHJldktleTxUPiB7XG4gIHNuYXBzaG90OiBEYXRhYmFzZVNuYXBzaG90PFQ+O1xuICBwcmV2S2V5OiBzdHJpbmcgfCBudWxsIHwgdW5kZWZpbmVkO1xufVxuXG4vKipcbiAqIENyZWF0ZSBhbiBvYnNlcnZhYmxlIGZyb20gYSBEYXRhYmFzZSBSZWZlcmVuY2Ugb3IgRGF0YWJhc2UgUXVlcnkuXG4gKiBAcGFyYW0gcmVmIERhdGFiYXNlIFJlZmVyZW5jZVxuICogQHBhcmFtIGV2ZW50IExpc3RlbiBldmVudCB0eXBlICgndmFsdWUnLCAnYWRkZWQnLCAnY2hhbmdlZCcsICdyZW1vdmVkJywgJ21vdmVkJylcbiAqIEBwYXJhbSBsaXN0ZW5UeXBlICdvbicgb3IgJ29uY2UnXG4gKiBAcGFyYW0gc2NoZWR1bGVyIC0gUnhqcyBzY2hlZHVsZXJcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGZyb21SZWY8VD4ocmVmOiBEYXRhYmFzZVF1ZXJ5LFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgZXZlbnQ6IExpc3RlbkV2ZW50LFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgbGlzdGVuVHlwZSA9ICdvbicsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICBzY2hlZHVsZXI6IFNjaGVkdWxlckxpa2UgPSBhc3luY1NjaGVkdWxlclxuKTogT2JzZXJ2YWJsZTxBbmd1bGFyRmlyZUFjdGlvbjxEYXRhYmFzZVNuYXBzaG90PFQ+Pj4ge1xuICByZXR1cm4gbmV3IE9ic2VydmFibGU8U25hcHNob3RQcmV2S2V5PFQ+PihzdWJzY3JpYmVyID0+IHtcbiAgICBsZXQgZm46IGFueSA9IG51bGw7XG4gICAgZm4gPSByZWZbbGlzdGVuVHlwZV0oZXZlbnQsIChzbmFwc2hvdCwgcHJldktleSkgPT4ge1xuICAgICAgc2NoZWR1bGVyLnNjaGVkdWxlKCgpID0+IHtcbiAgICAgICAgc3Vic2NyaWJlci5uZXh0KHsgc25hcHNob3QsIHByZXZLZXkgfSk7XG4gICAgICB9KTtcbiAgICAgIGlmIChsaXN0ZW5UeXBlID09PSAnb25jZScpIHtcbiAgICAgICAgc2NoZWR1bGVyLnNjaGVkdWxlKCgpID0+IHN1YnNjcmliZXIuY29tcGxldGUoKSk7XG4gICAgICB9XG4gICAgfSwgZXJyID0+IHtcbiAgICAgIHNjaGVkdWxlci5zY2hlZHVsZSgoKSA9PiBzdWJzY3JpYmVyLmVycm9yKGVycikpO1xuICAgIH0pO1xuXG4gICAgaWYgKGxpc3RlblR5cGUgPT09ICdvbicpIHtcbiAgICAgIHJldHVybiB7XG4gICAgICAgIHVuc3Vic2NyaWJlKCkge1xuICAgICAgICAgIGlmIChmbiAhPSBudWxsKSB7XG4gICAgICAgICAgICByZWYub2ZmKGV2ZW50LCBmbik7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9O1xuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4ge1xuICAgICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWVtcHR5LWZ1bmN0aW9uXG4gICAgICAgIHVuc3Vic2NyaWJlKCkge1xuICAgICAgICB9XG4gICAgICB9O1xuICAgIH1cbiAgfSkucGlwZShcbiAgICBtYXAocGF5bG9hZCA9PiB7XG4gICAgICBjb25zdCB7IHNuYXBzaG90LCBwcmV2S2V5IH0gPSBwYXlsb2FkO1xuICAgICAgbGV0IGtleTogc3RyaW5nIHwgbnVsbCA9IG51bGw7XG4gICAgICBpZiAoc25hcHNob3QuZXhpc3RzKCkpIHtcbiAgICAgICAga2V5ID0gc25hcHNob3Qua2V5O1xuICAgICAgfVxuICAgICAgcmV0dXJuIHsgdHlwZTogZXZlbnQsIHBheWxvYWQ6IHNuYXBzaG90LCBwcmV2S2V5LCBrZXkgfTtcbiAgICB9KSxcbiAgICBzaGFyZSgpXG4gICk7XG59XG4iXX0=
@@ -33,4 +33,4 @@ export function checkOperationCases(item, cases) {
33
33
  }
34
34
  throw new Error(`Expects a string, snapshot, or reference. Got: ${typeof item}`);
35
35
  }
36
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvY29tcGF0L2RhdGFiYXNlL3V0aWxzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUdBLE1BQU0sVUFBVSxRQUFRLENBQUMsS0FBVTtJQUNqQyxPQUFPLE9BQU8sS0FBSyxLQUFLLFFBQVEsQ0FBQztBQUNuQyxDQUFDO0FBRUQsTUFBTSxVQUFVLHNCQUFzQixDQUFDLEtBQVU7SUFDL0MsT0FBTyxPQUFPLEtBQUssQ0FBQyxTQUFTLEtBQUssVUFBVSxDQUFDO0FBQy9DLENBQUM7QUFFRCxNQUFNLFVBQVUsS0FBSyxDQUFDLEdBQVE7SUFDNUIsT0FBTyxHQUFHLEtBQUssU0FBUyxJQUFJLEdBQUcsS0FBSyxJQUFJLENBQUM7QUFDM0MsQ0FBQztBQUVELE1BQU0sVUFBVSxhQUFhLENBQUMsS0FBVTtJQUN0QyxPQUFPLE9BQU8sS0FBSyxDQUFDLEdBQUcsS0FBSyxVQUFVLENBQUM7QUFDekMsQ0FBQztBQUVEOzs7OztHQUtHO0FBQ0gsTUFBTSxVQUFVLE1BQU0sQ0FBQyxRQUFvQyxFQUFFLE9BQXNCO0lBQ2pGLDRDQUE0QztJQUM1QyxPQUFPLGFBQWEsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBNEI7UUFDMUQsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsT0FBaUIsQ0FBQyxDQUFDO0FBQ3RDLENBQUM7QUFFRCxNQUFNLFVBQVUsbUJBQW1CLENBQUMsSUFBdUIsRUFBRSxLQUE2QjtJQUN4RixJQUFJLFFBQVEsQ0FBQyxJQUFJLENBQUMsRUFBRTtRQUNsQixPQUFPLEtBQUssQ0FBQyxVQUFVLEVBQUUsQ0FBQztLQUMzQjtTQUFNLElBQUksYUFBYSxDQUFDLElBQUksQ0FBQyxFQUFFO1FBQzlCLE9BQU8sS0FBSyxDQUFDLFlBQVksRUFBRSxDQUFDO0tBQzdCO1NBQU0sSUFBSSxzQkFBc0IsQ0FBQyxJQUFJLENBQUMsRUFBRTtRQUN2QyxPQUFPLEtBQUssQ0FBQyxZQUFZLEVBQUUsQ0FBQztLQUM3QjtJQUNELE1BQU0sSUFBSSxLQUFLLENBQUMsa0RBQWtELE9BQU8sSUFBSSxFQUFFLENBQUMsQ0FBQztBQUNuRixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRGF0YWJhc2VSZWZlcmVuY2UsIEZpcmViYXNlT3BlcmF0aW9uLCBGaXJlYmFzZU9wZXJhdGlvbkNhc2VzLCBQYXRoUmVmZXJlbmNlIH0gZnJvbSAnLi9pbnRlcmZhY2VzJztcbmltcG9ydCBmaXJlYmFzZSBmcm9tICdmaXJlYmFzZS9jb21wYXQvYXBwJztcblxuZXhwb3J0IGZ1bmN0aW9uIGlzU3RyaW5nKHZhbHVlOiBhbnkpOiBib29sZWFuIHtcbiAgcmV0dXJuIHR5cGVvZiB2YWx1ZSA9PT0gJ3N0cmluZyc7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBpc0ZpcmViYXNlRGF0YVNuYXBzaG90KHZhbHVlOiBhbnkpOiBib29sZWFuIHtcbiAgcmV0dXJuIHR5cGVvZiB2YWx1ZS5leHBvcnRWYWwgPT09ICdmdW5jdGlvbic7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBpc05pbChvYmo6IGFueSk6IGJvb2xlYW4ge1xuICByZXR1cm4gb2JqID09PSB1bmRlZmluZWQgfHwgb2JqID09PSBudWxsO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gaXNGaXJlYmFzZVJlZih2YWx1ZTogYW55KTogYm9vbGVhbiB7XG4gIHJldHVybiB0eXBlb2YgdmFsdWUuc2V0ID09PSAnZnVuY3Rpb24nO1xufVxuXG4vKipcbiAqIFJldHVybnMgYSBkYXRhYmFzZSByZWZlcmVuY2UgZ2l2ZW4gYSBGaXJlYmFzZSBBcHAgYW5kIGFuXG4gKiBhYnNvbHV0ZSBvciByZWxhdGl2ZSBwYXRoLlxuICogQHBhcmFtIGRhdGFiYXNlIC0gRmlyZWJhc2UgRGF0YWJhc2VcbiAqIEBwYXJhbSBwYXRoUmVmIC0gRGF0YWJhc2UgcGF0aCwgcmVsYXRpdmUgb3IgYWJzb2x1dGVcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGdldFJlZihkYXRhYmFzZTogZmlyZWJhc2UuZGF0YWJhc2UuRGF0YWJhc2UsIHBhdGhSZWY6IFBhdGhSZWZlcmVuY2UpOiBEYXRhYmFzZVJlZmVyZW5jZSB7XG4gIC8vIGlmIGEgZGIgcmVmIHdhcyBwYXNzZWQgaW4sIGp1c3QgcmV0dXJuIGl0XG4gIHJldHVybiBpc0ZpcmViYXNlUmVmKHBhdGhSZWYpID8gcGF0aFJlZiBhcyBEYXRhYmFzZVJlZmVyZW5jZVxuICAgIDogZGF0YWJhc2UucmVmKHBhdGhSZWYgYXMgc3RyaW5nKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGNoZWNrT3BlcmF0aW9uQ2FzZXMoaXRlbTogRmlyZWJhc2VPcGVyYXRpb24sIGNhc2VzOiBGaXJlYmFzZU9wZXJhdGlvbkNhc2VzKTogUHJvbWlzZTx2b2lkPiB7XG4gIGlmIChpc1N0cmluZyhpdGVtKSkge1xuICAgIHJldHVybiBjYXNlcy5zdHJpbmdDYXNlKCk7XG4gIH0gZWxzZSBpZiAoaXNGaXJlYmFzZVJlZihpdGVtKSkge1xuICAgIHJldHVybiBjYXNlcy5maXJlYmFzZUNhc2UoKTtcbiAgfSBlbHNlIGlmIChpc0ZpcmViYXNlRGF0YVNuYXBzaG90KGl0ZW0pKSB7XG4gICAgcmV0dXJuIGNhc2VzLnNuYXBzaG90Q2FzZSgpO1xuICB9XG4gIHRocm93IG5ldyBFcnJvcihgRXhwZWN0cyBhIHN0cmluZywgc25hcHNob3QsIG9yIHJlZmVyZW5jZS4gR290OiAke3R5cGVvZiBpdGVtfWApO1xufVxuIl19
36
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvY29tcGF0L2RhdGFiYXNlL3V0aWxzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUdBLE1BQU0sVUFBVSxRQUFRLENBQUMsS0FBVTtJQUNqQyxPQUFPLE9BQU8sS0FBSyxLQUFLLFFBQVEsQ0FBQztBQUNuQyxDQUFDO0FBRUQsTUFBTSxVQUFVLHNCQUFzQixDQUFDLEtBQVU7SUFDL0MsT0FBTyxPQUFPLEtBQUssQ0FBQyxTQUFTLEtBQUssVUFBVSxDQUFDO0FBQy9DLENBQUM7QUFFRCxNQUFNLFVBQVUsS0FBSyxDQUFDLEdBQVE7SUFDNUIsT0FBTyxHQUFHLEtBQUssU0FBUyxJQUFJLEdBQUcsS0FBSyxJQUFJLENBQUM7QUFDM0MsQ0FBQztBQUVELE1BQU0sVUFBVSxhQUFhLENBQUMsS0FBVTtJQUN0QyxPQUFPLE9BQU8sS0FBSyxDQUFDLEdBQUcsS0FBSyxVQUFVLENBQUM7QUFDekMsQ0FBQztBQUVEOzs7OztHQUtHO0FBQ0gsTUFBTSxVQUFVLE1BQU0sQ0FBQyxRQUFvQyxFQUFFLE9BQXNCO0lBQ2pGLDRDQUE0QztJQUM1QyxPQUFPLGFBQWEsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBNEI7UUFDMUQsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsT0FBaUIsQ0FBQyxDQUFDO0FBQ3RDLENBQUM7QUFFRCxNQUFNLFVBQVUsbUJBQW1CLENBQUMsSUFBdUIsRUFBRSxLQUE2QjtJQUN4RixJQUFJLFFBQVEsQ0FBQyxJQUFJLENBQUMsRUFBRTtRQUNsQixPQUFPLEtBQUssQ0FBQyxVQUFVLEVBQUUsQ0FBQztLQUMzQjtTQUFNLElBQUksYUFBYSxDQUFDLElBQUksQ0FBQyxFQUFFO1FBQzlCLE9BQU8sS0FBSyxDQUFDLFlBQVksRUFBRSxDQUFDO0tBQzdCO1NBQU0sSUFBSSxzQkFBc0IsQ0FBQyxJQUFJLENBQUMsRUFBRTtRQUN2QyxPQUFPLEtBQUssQ0FBQyxZQUFZLEVBQUUsQ0FBQztLQUM3QjtJQUNELE1BQU0sSUFBSSxLQUFLLENBQUMsa0RBQWtELE9BQU8sSUFBSSxFQUFFLENBQUMsQ0FBQztBQUNuRixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IGZpcmViYXNlIGZyb20gJ2ZpcmViYXNlL2NvbXBhdC9hcHAnO1xuaW1wb3J0IHsgRGF0YWJhc2VSZWZlcmVuY2UsIEZpcmViYXNlT3BlcmF0aW9uLCBGaXJlYmFzZU9wZXJhdGlvbkNhc2VzLCBQYXRoUmVmZXJlbmNlIH0gZnJvbSAnLi9pbnRlcmZhY2VzJztcblxuZXhwb3J0IGZ1bmN0aW9uIGlzU3RyaW5nKHZhbHVlOiBhbnkpOiBib29sZWFuIHtcbiAgcmV0dXJuIHR5cGVvZiB2YWx1ZSA9PT0gJ3N0cmluZyc7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBpc0ZpcmViYXNlRGF0YVNuYXBzaG90KHZhbHVlOiBhbnkpOiBib29sZWFuIHtcbiAgcmV0dXJuIHR5cGVvZiB2YWx1ZS5leHBvcnRWYWwgPT09ICdmdW5jdGlvbic7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBpc05pbChvYmo6IGFueSk6IGJvb2xlYW4ge1xuICByZXR1cm4gb2JqID09PSB1bmRlZmluZWQgfHwgb2JqID09PSBudWxsO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gaXNGaXJlYmFzZVJlZih2YWx1ZTogYW55KTogYm9vbGVhbiB7XG4gIHJldHVybiB0eXBlb2YgdmFsdWUuc2V0ID09PSAnZnVuY3Rpb24nO1xufVxuXG4vKipcbiAqIFJldHVybnMgYSBkYXRhYmFzZSByZWZlcmVuY2UgZ2l2ZW4gYSBGaXJlYmFzZSBBcHAgYW5kIGFuXG4gKiBhYnNvbHV0ZSBvciByZWxhdGl2ZSBwYXRoLlxuICogQHBhcmFtIGRhdGFiYXNlIC0gRmlyZWJhc2UgRGF0YWJhc2VcbiAqIEBwYXJhbSBwYXRoUmVmIC0gRGF0YWJhc2UgcGF0aCwgcmVsYXRpdmUgb3IgYWJzb2x1dGVcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGdldFJlZihkYXRhYmFzZTogZmlyZWJhc2UuZGF0YWJhc2UuRGF0YWJhc2UsIHBhdGhSZWY6IFBhdGhSZWZlcmVuY2UpOiBEYXRhYmFzZVJlZmVyZW5jZSB7XG4gIC8vIGlmIGEgZGIgcmVmIHdhcyBwYXNzZWQgaW4sIGp1c3QgcmV0dXJuIGl0XG4gIHJldHVybiBpc0ZpcmViYXNlUmVmKHBhdGhSZWYpID8gcGF0aFJlZiBhcyBEYXRhYmFzZVJlZmVyZW5jZVxuICAgIDogZGF0YWJhc2UucmVmKHBhdGhSZWYgYXMgc3RyaW5nKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGNoZWNrT3BlcmF0aW9uQ2FzZXMoaXRlbTogRmlyZWJhc2VPcGVyYXRpb24sIGNhc2VzOiBGaXJlYmFzZU9wZXJhdGlvbkNhc2VzKTogUHJvbWlzZTx2b2lkPiB7XG4gIGlmIChpc1N0cmluZyhpdGVtKSkge1xuICAgIHJldHVybiBjYXNlcy5zdHJpbmdDYXNlKCk7XG4gIH0gZWxzZSBpZiAoaXNGaXJlYmFzZVJlZihpdGVtKSkge1xuICAgIHJldHVybiBjYXNlcy5maXJlYmFzZUNhc2UoKTtcbiAgfSBlbHNlIGlmIChpc0ZpcmViYXNlRGF0YVNuYXBzaG90KGl0ZW0pKSB7XG4gICAgcmV0dXJuIGNhc2VzLnNuYXBzaG90Q2FzZSgpO1xuICB9XG4gIHRocm93IG5ldyBFcnJvcihgRXhwZWN0cyBhIHN0cmluZywgc25hcHNob3QsIG9yIHJlZmVyZW5jZS4gR290OiAke3R5cGVvZiBpdGVtfWApO1xufVxuIl19
@@ -3,4 +3,4 @@ export class FirebaseApp {
3
3
  return app;
4
4
  }
5
5
  }
6
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlyZWJhc2UuYXBwLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2NvbXBhdC9maXJlYmFzZS5hcHAudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBS0EsTUFBTSxPQUFPLFdBQVc7SUFDdEIsWUFBWSxHQUFxQjtRQUMvQixPQUFPLEdBQUcsQ0FBQztJQUNiLENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBmaXJlYmFzZSBmcm9tICdmaXJlYmFzZS9jb21wYXQvYXBwJztcblxuLy8gdHNsaW50OmRpc2FibGUtbmV4dC1saW5lOm5vLWVtcHR5LWludGVyZmFjZVxuZXhwb3J0IGludGVyZmFjZSBGaXJlYmFzZUFwcCBleHRlbmRzIGZpcmViYXNlLmFwcC5BcHAge31cblxuZXhwb3J0IGNsYXNzIEZpcmViYXNlQXBwIHtcbiAgY29uc3RydWN0b3IoYXBwOiBmaXJlYmFzZS5hcHAuQXBwKSB7XG4gICAgcmV0dXJuIGFwcDtcbiAgfVxufVxuIl19
6
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlyZWJhc2UuYXBwLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2NvbXBhdC9maXJlYmFzZS5hcHAudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBS0EsTUFBTSxPQUFPLFdBQVc7SUFDdEIsWUFBWSxHQUFxQjtRQUMvQixPQUFPLEdBQUcsQ0FBQztJQUNiLENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBmaXJlYmFzZSBmcm9tICdmaXJlYmFzZS9jb21wYXQvYXBwJztcblxuLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1lbXB0eS1pbnRlcmZhY2VcbmV4cG9ydCBpbnRlcmZhY2UgRmlyZWJhc2VBcHAgZXh0ZW5kcyBmaXJlYmFzZS5hcHAuQXBwIHt9XG5cbmV4cG9ydCBjbGFzcyBGaXJlYmFzZUFwcCB7XG4gIGNvbnN0cnVjdG9yKGFwcDogZmlyZWJhc2UuYXBwLkFwcCkge1xuICAgIHJldHVybiBhcHA7XG4gIH1cbn1cbiJdfQ==
@@ -0,0 +1,71 @@
1
+ import { Inject, InjectionToken, VERSION as NG_VERSION, NgModule, NgZone, Optional, PLATFORM_ID, isDevMode } from '@angular/core';
2
+ import { VERSION } from '@angular/fire';
3
+ import firebase from 'firebase/compat/app';
4
+ import { FirebaseApp } from './firebase.app';
5
+ import * as i0 from "@angular/core";
6
+ export const FIREBASE_OPTIONS = new InjectionToken('angularfire2.app.options');
7
+ export const FIREBASE_APP_NAME = new InjectionToken('angularfire2.app.name');
8
+ export function ɵfirebaseAppFactory(options, zone, nameOrConfig) {
9
+ const name = typeof nameOrConfig === 'string' && nameOrConfig || '[DEFAULT]';
10
+ const config = typeof nameOrConfig === 'object' && nameOrConfig || {};
11
+ config.name = config.name || name;
12
+ // Added any due to some inconsistency between @firebase/app and firebase types
13
+ const existingApp = firebase.apps.filter(app => app && app.name === config.name)[0];
14
+ // We support FirebaseConfig, initializeApp's public type only accepts string; need to cast as any
15
+ // Could be solved with https://github.com/firebase/firebase-js-sdk/pull/1206
16
+ const app = (existingApp || zone.runOutsideAngular(() => firebase.initializeApp(options, config)));
17
+ try {
18
+ if (JSON.stringify(options) !== JSON.stringify(app.options)) {
19
+ const hmr = !!module.hot;
20
+ log('error', `${app.name} Firebase App already initialized with different options${hmr ? ', you may need to reload as Firebase is not HMR aware.' : '.'}`);
21
+ }
22
+ }
23
+ catch (e) { /* empty */ }
24
+ return new FirebaseApp(app);
25
+ }
26
+ const log = (level, ...args) => {
27
+ if (isDevMode() && typeof console !== 'undefined') {
28
+ // eslint-disable-next-line no-console
29
+ console[level](...args);
30
+ }
31
+ };
32
+ const FIREBASE_APP_PROVIDER = {
33
+ provide: FirebaseApp,
34
+ useFactory: ɵfirebaseAppFactory,
35
+ deps: [
36
+ FIREBASE_OPTIONS,
37
+ NgZone,
38
+ [new Optional(), FIREBASE_APP_NAME]
39
+ ]
40
+ };
41
+ export class AngularFireModule {
42
+ static initializeApp(options, nameOrConfig) {
43
+ return {
44
+ ngModule: AngularFireModule,
45
+ providers: [
46
+ { provide: FIREBASE_OPTIONS, useValue: options },
47
+ { provide: FIREBASE_APP_NAME, useValue: nameOrConfig }
48
+ ]
49
+ };
50
+ }
51
+ // eslint-disable-next-line @typescript-eslint/ban-types
52
+ constructor(platformId) {
53
+ firebase.registerVersion('angularfire', VERSION.full, 'core');
54
+ firebase.registerVersion('angularfire', VERSION.full, 'app-compat');
55
+ // eslint-disable-next-line @typescript-eslint/no-base-to-string
56
+ firebase.registerVersion('angular', NG_VERSION.full, platformId.toString());
57
+ }
58
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.10", ngImport: i0, type: AngularFireModule, deps: [{ token: PLATFORM_ID }], target: i0.ɵɵFactoryTarget.NgModule });
59
+ static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "16.2.10", ngImport: i0, type: AngularFireModule });
60
+ static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "16.2.10", ngImport: i0, type: AngularFireModule, providers: [FIREBASE_APP_PROVIDER] });
61
+ }
62
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.10", ngImport: i0, type: AngularFireModule, decorators: [{
63
+ type: NgModule,
64
+ args: [{
65
+ providers: [FIREBASE_APP_PROVIDER]
66
+ }]
67
+ }], ctorParameters: function () { return [{ type: Object, decorators: [{
68
+ type: Inject,
69
+ args: [PLATFORM_ID]
70
+ }] }]; } });
71
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlyZWJhc2UuYXBwLm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9jb21wYXQvZmlyZWJhc2UuYXBwLm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsTUFBTSxFQUFFLGNBQWMsRUFBdUIsT0FBTyxJQUFJLFVBQVUsRUFBRSxRQUFRLEVBQUUsTUFBTSxFQUFFLFFBQVEsRUFBRSxXQUFXLEVBQUUsU0FBUyxFQUN2SCxNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRXhDLE9BQU8sUUFBUSxNQUFNLHFCQUFxQixDQUFDO0FBQzNDLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQzs7QUFFN0MsTUFBTSxDQUFDLE1BQU0sZ0JBQWdCLEdBQUcsSUFBSSxjQUFjLENBQWtCLDBCQUEwQixDQUFDLENBQUM7QUFDaEcsTUFBTSxDQUFDLE1BQU0saUJBQWlCLEdBQUcsSUFBSSxjQUFjLENBQXFCLHVCQUF1QixDQUFDLENBQUM7QUFHakcsTUFBTSxVQUFVLG1CQUFtQixDQUFDLE9BQXdCLEVBQUUsSUFBWSxFQUFFLFlBQWtEO0lBQzVILE1BQU0sSUFBSSxHQUFHLE9BQU8sWUFBWSxLQUFLLFFBQVEsSUFBSSxZQUFZLElBQUksV0FBVyxDQUFDO0lBQzdFLE1BQU0sTUFBTSxHQUFHLE9BQU8sWUFBWSxLQUFLLFFBQVEsSUFBSSxZQUFZLElBQUksRUFBRSxDQUFDO0lBQ3RFLE1BQU0sQ0FBQyxJQUFJLEdBQUcsTUFBTSxDQUFDLElBQUksSUFBSSxJQUFJLENBQUM7SUFDbEMsK0VBQStFO0lBQy9FLE1BQU0sV0FBVyxHQUFHLFFBQVEsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxJQUFJLEdBQUcsQ0FBQyxJQUFJLEtBQUssTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQ3BGLGtHQUFrRztJQUNsRyw2RUFBNkU7SUFDN0UsTUFBTSxHQUFHLEdBQUcsQ0FBQyxXQUFXLElBQUksSUFBSSxDQUFDLGlCQUFpQixDQUFDLEdBQUcsRUFBRSxDQUFDLFFBQVEsQ0FBQyxhQUFhLENBQUMsT0FBTyxFQUFFLE1BQWEsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUMxRyxJQUFJO1FBQ0YsSUFBSSxJQUFJLENBQUMsU0FBUyxDQUFDLE9BQU8sQ0FBQyxLQUFLLElBQUksQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLE9BQU8sQ0FBQyxFQUFFO1lBQzNELE1BQU0sR0FBRyxHQUFHLENBQUMsQ0FBRSxNQUFjLENBQUMsR0FBRyxDQUFDO1lBQ2xDLEdBQUcsQ0FBQyxPQUFPLEVBQUUsR0FBRyxHQUFHLENBQUMsSUFBSSwyREFBMkQsR0FBRyxDQUFDLENBQUMsQ0FBQyx3REFBd0QsQ0FBQyxDQUFDLENBQUMsR0FBRyxFQUFFLENBQUMsQ0FBQztTQUM1SjtLQUNGO0lBQUMsT0FBTyxDQUFDLEVBQUUsRUFBRSxXQUFXLEVBQUU7SUFDM0IsT0FBTyxJQUFJLFdBQVcsQ0FBQyxHQUFHLENBQUMsQ0FBQztBQUM5QixDQUFDO0FBRUQsTUFBTSxHQUFHLEdBQUcsQ0FBQyxLQUFrQyxFQUFFLEdBQUcsSUFBUyxFQUFFLEVBQUU7SUFDL0QsSUFBSSxTQUFTLEVBQUUsSUFBSSxPQUFPLE9BQU8sS0FBSyxXQUFXLEVBQUU7UUFDakQsc0NBQXNDO1FBQ3RDLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQyxHQUFHLElBQUksQ0FBQyxDQUFDO0tBQ3pCO0FBQ0gsQ0FBQyxDQUFDO0FBRUYsTUFBTSxxQkFBcUIsR0FBRztJQUM1QixPQUFPLEVBQUUsV0FBVztJQUNwQixVQUFVLEVBQUUsbUJBQW1CO0lBQy9CLElBQUksRUFBRTtRQUNKLGdCQUFnQjtRQUNoQixNQUFNO1FBQ04sQ0FBQyxJQUFJLFFBQVEsRUFBRSxFQUFFLGlCQUFpQixDQUFDO0tBQ3BDO0NBQ0YsQ0FBQztBQUtGLE1BQU0sT0FBTyxpQkFBaUI7SUFDNUIsTUFBTSxDQUFDLGFBQWEsQ0FBQyxPQUF3QixFQUFFLFlBQTJDO1FBQ3hGLE9BQU87WUFDTCxRQUFRLEVBQUUsaUJBQWlCO1lBQzNCLFNBQVMsRUFBRTtnQkFDVCxFQUFDLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxRQUFRLEVBQUUsT0FBTyxFQUFDO2dCQUM5QyxFQUFDLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxRQUFRLEVBQUUsWUFBWSxFQUFDO2FBQ3JEO1NBQ0YsQ0FBQztJQUNKLENBQUM7SUFFRCx3REFBd0Q7SUFDeEQsWUFBaUMsVUFBa0I7UUFDakQsUUFBUSxDQUFDLGVBQWUsQ0FBQyxhQUFhLEVBQUUsT0FBTyxDQUFDLElBQUksRUFBRSxNQUFNLENBQUMsQ0FBQztRQUM5RCxRQUFRLENBQUMsZUFBZSxDQUFDLGFBQWEsRUFBRSxPQUFPLENBQUMsSUFBSSxFQUFFLFlBQVksQ0FBQyxDQUFDO1FBQ3BFLGdFQUFnRTtRQUNoRSxRQUFRLENBQUMsZUFBZSxDQUFDLFNBQVMsRUFBRSxVQUFVLENBQUMsSUFBSSxFQUFFLFVBQVUsQ0FBQyxRQUFRLEVBQUUsQ0FBQyxDQUFDO0lBQzlFLENBQUM7d0dBakJVLGlCQUFpQixrQkFZUixXQUFXO3lHQVpwQixpQkFBaUI7eUdBQWpCLGlCQUFpQixhQUZqQixDQUFDLHFCQUFxQixDQUFDOzs0RkFFdkIsaUJBQWlCO2tCQUg3QixRQUFRO21CQUFDO29CQUNSLFNBQVMsRUFBRSxDQUFDLHFCQUFxQixDQUFDO2lCQUNuQzs7MEJBYWMsTUFBTTsyQkFBQyxXQUFXIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgSW5qZWN0LCBJbmplY3Rpb25Ub2tlbiwgTW9kdWxlV2l0aFByb3ZpZGVycywgVkVSU0lPTiBhcyBOR19WRVJTSU9OLCBOZ01vZHVsZSwgTmdab25lLCBPcHRpb25hbCwgUExBVEZPUk1fSUQsIGlzRGV2TW9kZVxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFZFUlNJT04gfSBmcm9tICdAYW5ndWxhci9maXJlJztcbmltcG9ydCB7IEZpcmViYXNlQXBwU2V0dGluZ3MsIEZpcmViYXNlT3B0aW9ucyB9IGZyb20gJ2ZpcmViYXNlL2FwcCc7XG5pbXBvcnQgZmlyZWJhc2UgZnJvbSAnZmlyZWJhc2UvY29tcGF0L2FwcCc7XG5pbXBvcnQgeyBGaXJlYmFzZUFwcCB9IGZyb20gJy4vZmlyZWJhc2UuYXBwJztcblxuZXhwb3J0IGNvbnN0IEZJUkVCQVNFX09QVElPTlMgPSBuZXcgSW5qZWN0aW9uVG9rZW48RmlyZWJhc2VPcHRpb25zPignYW5ndWxhcmZpcmUyLmFwcC5vcHRpb25zJyk7XG5leHBvcnQgY29uc3QgRklSRUJBU0VfQVBQX05BTUUgPSBuZXcgSW5qZWN0aW9uVG9rZW48c3RyaW5nIHwgdW5kZWZpbmVkPignYW5ndWxhcmZpcmUyLmFwcC5uYW1lJyk7XG5cblxuZXhwb3J0IGZ1bmN0aW9uIMm1ZmlyZWJhc2VBcHBGYWN0b3J5KG9wdGlvbnM6IEZpcmViYXNlT3B0aW9ucywgem9uZTogTmdab25lLCBuYW1lT3JDb25maWc/OiBzdHJpbmcgfCBGaXJlYmFzZUFwcFNldHRpbmdzIHwgbnVsbCkge1xuICBjb25zdCBuYW1lID0gdHlwZW9mIG5hbWVPckNvbmZpZyA9PT0gJ3N0cmluZycgJiYgbmFtZU9yQ29uZmlnIHx8ICdbREVGQVVMVF0nO1xuICBjb25zdCBjb25maWcgPSB0eXBlb2YgbmFtZU9yQ29uZmlnID09PSAnb2JqZWN0JyAmJiBuYW1lT3JDb25maWcgfHwge307XG4gIGNvbmZpZy5uYW1lID0gY29uZmlnLm5hbWUgfHwgbmFtZTtcbiAgLy8gQWRkZWQgYW55IGR1ZSB0byBzb21lIGluY29uc2lzdGVuY3kgYmV0d2VlbiBAZmlyZWJhc2UvYXBwIGFuZCBmaXJlYmFzZSB0eXBlc1xuICBjb25zdCBleGlzdGluZ0FwcCA9IGZpcmViYXNlLmFwcHMuZmlsdGVyKGFwcCA9PiBhcHAgJiYgYXBwLm5hbWUgPT09IGNvbmZpZy5uYW1lKVswXTtcbiAgLy8gV2Ugc3VwcG9ydCBGaXJlYmFzZUNvbmZpZywgaW5pdGlhbGl6ZUFwcCdzIHB1YmxpYyB0eXBlIG9ubHkgYWNjZXB0cyBzdHJpbmc7IG5lZWQgdG8gY2FzdCBhcyBhbnlcbiAgLy8gQ291bGQgYmUgc29sdmVkIHdpdGggaHR0cHM6Ly9naXRodWIuY29tL2ZpcmViYXNlL2ZpcmViYXNlLWpzLXNkay9wdWxsLzEyMDZcbiAgY29uc3QgYXBwID0gKGV4aXN0aW5nQXBwIHx8IHpvbmUucnVuT3V0c2lkZUFuZ3VsYXIoKCkgPT4gZmlyZWJhc2UuaW5pdGlhbGl6ZUFwcChvcHRpb25zLCBjb25maWcgYXMgYW55KSkpO1xuICB0cnkge1xuICAgIGlmIChKU09OLnN0cmluZ2lmeShvcHRpb25zKSAhPT0gSlNPTi5zdHJpbmdpZnkoYXBwLm9wdGlvbnMpKSB7XG4gICAgICBjb25zdCBobXIgPSAhIShtb2R1bGUgYXMgYW55KS5ob3Q7XG4gICAgICBsb2coJ2Vycm9yJywgYCR7YXBwLm5hbWV9IEZpcmViYXNlIEFwcCBhbHJlYWR5IGluaXRpYWxpemVkIHdpdGggZGlmZmVyZW50IG9wdGlvbnMke2htciA/ICcsIHlvdSBtYXkgbmVlZCB0byByZWxvYWQgYXMgRmlyZWJhc2UgaXMgbm90IEhNUiBhd2FyZS4nIDogJy4nfWApO1xuICAgIH1cbiAgfSBjYXRjaCAoZSkgeyAvKiBlbXB0eSAqLyB9XG4gIHJldHVybiBuZXcgRmlyZWJhc2VBcHAoYXBwKTtcbn1cblxuY29uc3QgbG9nID0gKGxldmVsOiAnbG9nJ3wnZXJyb3InfCdpbmZvJ3wnd2FybicsIC4uLmFyZ3M6IGFueSkgPT4ge1xuICBpZiAoaXNEZXZNb2RlKCkgJiYgdHlwZW9mIGNvbnNvbGUgIT09ICd1bmRlZmluZWQnKSB7XG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLWNvbnNvbGVcbiAgICBjb25zb2xlW2xldmVsXSguLi5hcmdzKTtcbiAgfVxufTtcblxuY29uc3QgRklSRUJBU0VfQVBQX1BST1ZJREVSID0ge1xuICBwcm92aWRlOiBGaXJlYmFzZUFwcCxcbiAgdXNlRmFjdG9yeTogybVmaXJlYmFzZUFwcEZhY3RvcnksXG4gIGRlcHM6IFtcbiAgICBGSVJFQkFTRV9PUFRJT05TLFxuICAgIE5nWm9uZSxcbiAgICBbbmV3IE9wdGlvbmFsKCksIEZJUkVCQVNFX0FQUF9OQU1FXVxuICBdXG59O1xuXG5ATmdNb2R1bGUoe1xuICBwcm92aWRlcnM6IFtGSVJFQkFTRV9BUFBfUFJPVklERVJdXG59KVxuZXhwb3J0IGNsYXNzIEFuZ3VsYXJGaXJlTW9kdWxlIHtcbiAgc3RhdGljIGluaXRpYWxpemVBcHAob3B0aW9uczogRmlyZWJhc2VPcHRpb25zLCBuYW1lT3JDb25maWc/OiBzdHJpbmcgfCBGaXJlYmFzZUFwcFNldHRpbmdzKTogTW9kdWxlV2l0aFByb3ZpZGVyczxBbmd1bGFyRmlyZU1vZHVsZT4ge1xuICAgIHJldHVybiB7XG4gICAgICBuZ01vZHVsZTogQW5ndWxhckZpcmVNb2R1bGUsXG4gICAgICBwcm92aWRlcnM6IFtcbiAgICAgICAge3Byb3ZpZGU6IEZJUkVCQVNFX09QVElPTlMsIHVzZVZhbHVlOiBvcHRpb25zfSxcbiAgICAgICAge3Byb3ZpZGU6IEZJUkVCQVNFX0FQUF9OQU1FLCB1c2VWYWx1ZTogbmFtZU9yQ29uZmlnfVxuICAgICAgXVxuICAgIH07XG4gIH1cblxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L2Jhbi10eXBlc1xuICBjb25zdHJ1Y3RvcihASW5qZWN0KFBMQVRGT1JNX0lEKSBwbGF0Zm9ybUlkOiBPYmplY3QpIHtcbiAgICBmaXJlYmFzZS5yZWdpc3RlclZlcnNpb24oJ2FuZ3VsYXJmaXJlJywgVkVSU0lPTi5mdWxsLCAnY29yZScpO1xuICAgIGZpcmViYXNlLnJlZ2lzdGVyVmVyc2lvbignYW5ndWxhcmZpcmUnLCBWRVJTSU9OLmZ1bGwsICdhcHAtY29tcGF0Jyk7XG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1iYXNlLXRvLXN0cmluZ1xuICAgIGZpcmViYXNlLnJlZ2lzdGVyVmVyc2lvbignYW5ndWxhcicsIE5HX1ZFUlNJT04uZnVsbCwgcGxhdGZvcm1JZC50b1N0cmluZygpKTtcbiAgfVxufVxuIl19
@@ -0,0 +1,108 @@
1
+ import { distinctUntilChanged, map, pairwise, scan, startWith } from 'rxjs/operators';
2
+ import { fromCollectionRef } from '../observable/fromRef';
3
+ /**
4
+ * Return a stream of document changes on a query. These results are not in sort order but in
5
+ * order of occurence.
6
+ */
7
+ export function docChanges(query, scheduler) {
8
+ return fromCollectionRef(query, scheduler)
9
+ .pipe(startWith(undefined), pairwise(), map((actionTuple) => {
10
+ const [priorAction, action] = actionTuple;
11
+ const docChanges = action.payload.docChanges();
12
+ const actions = docChanges.map(change => ({ type: change.type, payload: change }));
13
+ // the metadata has changed from the prior emission
14
+ if (priorAction && JSON.stringify(priorAction.payload.metadata) !== JSON.stringify(action.payload.metadata)) {
15
+ // go through all the docs in payload and figure out which ones changed
16
+ action.payload.docs.forEach((currentDoc, currentIndex) => {
17
+ const docChange = docChanges.find(d => d.doc.ref.isEqual(currentDoc.ref));
18
+ const priorDoc = priorAction?.payload.docs.find(d => d.ref.isEqual(currentDoc.ref));
19
+ if (docChange && JSON.stringify(docChange.doc.metadata) === JSON.stringify(currentDoc.metadata) ||
20
+ !docChange && priorDoc && JSON.stringify(priorDoc.metadata) === JSON.stringify(currentDoc.metadata)) {
21
+ // document doesn't appear to have changed, don't log another action
22
+ }
23
+ else {
24
+ // since the actions are processed in order just push onto the array
25
+ actions.push({
26
+ type: 'modified',
27
+ payload: {
28
+ oldIndex: currentIndex,
29
+ newIndex: currentIndex,
30
+ type: 'modified',
31
+ doc: currentDoc
32
+ }
33
+ });
34
+ }
35
+ });
36
+ }
37
+ return actions;
38
+ }));
39
+ }
40
+ /**
41
+ * Return a stream of document changes on a query. These results are in sort order.
42
+ */
43
+ export function sortedChanges(query, events, scheduler) {
44
+ return docChanges(query, scheduler)
45
+ .pipe(scan((current, changes) => combineChanges(current, changes.map(it => it.payload), events), []), distinctUntilChanged(), // cut down on unneed change cycles
46
+ map(changes => changes.map(c => ({ type: c.type, payload: c }))));
47
+ }
48
+ /**
49
+ * Combines the total result set from the current set of changes from an incoming set
50
+ * of changes.
51
+ */
52
+ export function combineChanges(current, changes, events) {
53
+ changes.forEach(change => {
54
+ // skip unwanted change types
55
+ if (events.indexOf(change.type) > -1) {
56
+ current = combineChange(current, change);
57
+ }
58
+ });
59
+ return current;
60
+ }
61
+ /**
62
+ * Splice arguments on top of a sliced array, to break top-level ===
63
+ * this is useful for change-detection
64
+ */
65
+ function sliceAndSplice(original, start, deleteCount, ...args) {
66
+ const returnArray = original.slice();
67
+ returnArray.splice(start, deleteCount, ...args);
68
+ return returnArray;
69
+ }
70
+ /**
71
+ * Creates a new sorted array from a new change.
72
+ * Build our own because we allow filtering of action types ('added', 'removed', 'modified') before scanning
73
+ * and so we have greater control over change detection (by breaking ===)
74
+ */
75
+ export function combineChange(combined, change) {
76
+ switch (change.type) {
77
+ case 'added':
78
+ if (combined[change.newIndex] && combined[change.newIndex].doc.ref.isEqual(change.doc.ref)) {
79
+ // Not sure why the duplicates are getting fired
80
+ }
81
+ else {
82
+ return sliceAndSplice(combined, change.newIndex, 0, change);
83
+ }
84
+ break;
85
+ case 'modified':
86
+ if (combined[change.oldIndex] == null || combined[change.oldIndex].doc.ref.isEqual(change.doc.ref)) {
87
+ // When an item changes position we first remove it
88
+ // and then add it's new position
89
+ if (change.oldIndex !== change.newIndex) {
90
+ const copiedArray = combined.slice();
91
+ copiedArray.splice(change.oldIndex, 1);
92
+ copiedArray.splice(change.newIndex, 0, change);
93
+ return copiedArray;
94
+ }
95
+ else {
96
+ return sliceAndSplice(combined, change.newIndex, 1, change);
97
+ }
98
+ }
99
+ break;
100
+ case 'removed':
101
+ if (combined[change.oldIndex] && combined[change.oldIndex].doc.ref.isEqual(change.doc.ref)) {
102
+ return sliceAndSplice(combined, change.oldIndex, 1);
103
+ }
104
+ break;
105
+ }
106
+ return combined;
107
+ }
108
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hhbmdlcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9jb21wYXQvZmlyZXN0b3JlL2NvbGxlY3Rpb24vY2hhbmdlcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFFQSxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsR0FBRyxFQUFFLFFBQVEsRUFBRSxJQUFJLEVBQUUsU0FBUyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFdEYsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFJMUQ7OztHQUdHO0FBQ0gsTUFBTSxVQUFVLFVBQVUsQ0FBSSxLQUFZLEVBQUUsU0FBeUI7SUFDbkUsT0FBTyxpQkFBaUIsQ0FBQyxLQUFLLEVBQUUsU0FBUyxDQUFDO1NBQ3ZDLElBQUksQ0FDSCxTQUFTLENBQW9FLFNBQVMsQ0FBQyxFQUN2RixRQUFRLEVBQUUsRUFDVixHQUFHLENBQUMsQ0FBQyxXQUF1QixFQUFFLEVBQUU7UUFDOUIsTUFBTSxDQUFDLFdBQVcsRUFBRSxNQUFNLENBQUMsR0FBRyxXQUFXLENBQUM7UUFDMUMsTUFBTSxVQUFVLEdBQUcsTUFBTSxDQUFDLE9BQU8sQ0FBQyxVQUFVLEVBQUUsQ0FBQztRQUMvQyxNQUFNLE9BQU8sR0FBRyxVQUFVLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsQ0FBQyxFQUFFLElBQUksRUFBRSxNQUFNLENBQUMsSUFBSSxFQUFFLE9BQU8sRUFBRSxNQUFNLEVBQUUsQ0FBQyxDQUFDLENBQUM7UUFDbkYsbURBQW1EO1FBQ25ELElBQUksV0FBVyxJQUFJLElBQUksQ0FBQyxTQUFTLENBQUMsV0FBVyxDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUMsS0FBSyxJQUFJLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUFDLEVBQUU7WUFDM0csdUVBQXVFO1lBQ3ZFLE1BQU0sQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLE9B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QyxRQUFRLEVBQUUsTUFBTSxDQUFDLFFBQVEsRUFBRSxDQUFDLEVBQUUsTUFBTSxDQUFDLENBQUM7aUJBQzdEO2FBQ0Y7WUFDRCxNQUFNO1FBQ1IsS0FBSyxTQUFTO1lBQ1osSUFBSSxRQUFRLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxJQUFJLFFBQVEsQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsRUFBRTtnQkFDMUYsT0FBTyxjQUFjLENBQUMsUUFBUSxFQUFFLE1BQU0sQ0FBQyxRQUFRLEVBQUUsQ0FBQyxDQUFDLENBQUM7YUFDckQ7WUFDRCxNQUFNO0tBQ1Q7SUFDRCxPQUFPLFFBQVEsQ0FBQztBQUNsQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IGZpcmViYXNlIGZyb20gJ2ZpcmViYXNlL2NvbXBhdC9hcHAnO1xuaW1wb3J0IHsgT2JzZXJ2YWJsZSwgU2NoZWR1bGVyTGlrZSB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgZGlzdGluY3RVbnRpbENoYW5nZWQsIG1hcCwgcGFpcndpc2UsIHNjYW4sIHN0YXJ0V2l0aCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7IEFjdGlvbiwgRG9jdW1lbnRDaGFuZ2UsIERvY3VtZW50Q2hhbmdlQWN0aW9uLCBEb2N1bWVudENoYW5nZVR5cGUsIFF1ZXJ5LCBRdWVyeVNuYXBzaG90IH0gZnJvbSAnLi4vaW50ZXJmYWNlcyc7XG5pbXBvcnQgeyBmcm9tQ29sbGVjdGlvblJlZiB9IGZyb20gJy4uL29ic2VydmFibGUvZnJvbVJlZic7XG5cblxudHlwZSBBY3Rpb25UdXBlID0gW0FjdGlvbjxRdWVyeVNuYXBzaG90PGZpcmViYXNlLmZpcmVzdG9yZS5Eb2N1bWVudERhdGE+PiwgQWN0aW9uPFF1ZXJ5U25hcHNob3Q8ZmlyZWJhc2UuZmlyZXN0b3JlLkRvY3VtZW50RGF0YT4+XVxuLyoqXG4gKiBSZXR1cm4gYSBzdHJlYW0gb2YgZG9jdW1lbnQgY2hhbmdlcyBvbiBhIHF1ZXJ5LiBUaGVzZSByZXN1bHRzIGFyZSBub3QgaW4gc29ydCBvcmRlciBidXQgaW5cbiAqIG9yZGVyIG9mIG9jY3VyZW5jZS5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGRvY0NoYW5nZXM8VD4ocXVlcnk6IFF1ZXJ5LCBzY2hlZHVsZXI/OiBTY2hlZHVsZXJMaWtlKTogT2JzZXJ2YWJsZTxEb2N1bWVudENoYW5nZUFjdGlvbjxUPltdPiB7XG4gIHJldHVybiBmcm9tQ29sbGVjdGlvblJlZihxdWVyeSwgc2NoZWR1bGVyKVxuICAgIC5waXBlKFxuICAgICAgc3RhcnRXaXRoPEFjdGlvbjxRdWVyeVNuYXBzaG90PGZpcmViYXNlLmZpcmVzdG9yZS5Eb2N1bWVudERhdGE+PiwgdW5kZWZpbmVkPih1bmRlZmluZWQpLFxuICAgICAgcGFpcndpc2UoKSxcbiAgICAgIG1hcCgoYWN0aW9uVHVwbGU6IEFjdGlvblR1cGUpID0+IHtcbiAgICAgICAgY29uc3QgW3ByaW9yQWN0aW9uLCBhY3Rpb25dID0gYWN0aW9uVHVwbGU7XG4gICAgICAgIGNvbnN0IGRvY0NoYW5nZXMgPSBhY3Rpb24ucGF5bG9hZC5kb2NDaGFuZ2VzKCk7XG4gICAgICAgIGNvbnN0IGFjdGlvbnMgPSBkb2NDaGFuZ2VzLm1hcChjaGFuZ2UgPT4gKHsgdHlwZTogY2hhbmdlLnR5cGUsIHBheWxvYWQ6IGNoYW5nZSB9KSk7XG4gICAgICAgIC8vIHRoZSBtZXRhZGF0YSBoYXMgY2hhbmdlZCBmcm9tIHRoZSBwcmlvciBlbWlzc2lvblxuICAgICAgICBpZiAocHJpb3JBY3Rpb24gJiYgSlNPTi5zdHJpbmdpZnkocHJpb3JBY3Rpb24ucGF5bG9hZC5tZXRhZGF0YSkgIT09IEpTT04uc3RyaW5naWZ5KGFjdGlvbi5wYXlsb2FkLm1ldGFkYXRhKSkge1xuICAgICAgICAgIC8vIGdvIHRocm91Z2ggYWxsIHRoZSBkb2NzIGluIHBheWxvYWQgYW5kIGZpZ3VyZSBvdXQgd2hpY2ggb25lcyBjaGFuZ2VkXG4gICAgICAgICAgYWN0aW9uLnBheWxvYWQuZG9jcy5mb3JFYWNoKChjdXJyZW50RG9jLCBjdXJyZW50SW5kZXgpID0+IHtcbiAgICAgICAgICAgIGNvbnN0IGRvY0NoYW5nZSA9IGRvY0NoYW5nZXMuZmluZChkID0+IGQuZG9jLnJlZi5pc0VxdWFsKGN1cnJlbnREb2MucmVmKSk7XG4gICAgICAgICAgICBjb25zdCBwcmlvckRvYyA9IHByaW9yQWN0aW9uPy5wYXlsb2FkLmRvY3MuZmluZChkID0+IGQucmVmLmlzRXF1YWwoY3VycmVudERvYy5yZWYpKTtcbiAgICAgICAgICAgIGlmIChkb2NDaGFuZ2UgJiYgSlNPTi5zdHJpbmdpZnkoZG9jQ2hhbmdlLmRvYy5tZXRhZGF0YSkgPT09IEpTT04uc3RyaW5naWZ5KGN1cnJlbnREb2MubWV0YWRhdGEpIHx8XG4gICAgICAgICAgICAgICFkb2NDaGFuZ2UgJiYgcHJpb3JEb2MgJiYgSlNPTi5zdHJpbmdpZnkocHJpb3JEb2MubWV0YWRhdGEpID09PSBKU09OLnN0cmluZ2lmeShjdXJyZW50RG9jLm1ldGFkYXRhKSkge1xuICAgICAgICAgICAgICAvLyBkb2N1bWVudCBkb2Vzbid0IGFwcGVhciB0byBoYXZlIGNoYW5nZWQsIGRvbid0IGxvZyBhbm90aGVyIGFjdGlvblxuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgLy8gc2luY2UgdGhlIGFjdGlvbnMgYXJlIHByb2Nlc3NlZCBpbiBvcmRlciBqdXN0IHB1c2ggb250byB0aGUgYXJyYXlcbiAgICAgICAgICAgICAgYWN0aW9ucy5wdXNoKHtcbiAgICAgICAgICAgICAgICB0eXBlOiAnbW9kaWZpZWQnLFxuICAgICAgICAgICAgICAgIHBheWxvYWQ6IHtcbiAgICAgICAgICAgICAgICAgIG9sZEluZGV4OiBjdXJyZW50SW5kZXgsXG4gICAgICAgICAgICAgICAgICBuZXdJbmRleDogY3VycmVudEluZGV4LFxuICAgICAgICAgICAgICAgICAgdHlwZTogJ21vZGlmaWVkJyxcbiAgICAgICAgICAgICAgICAgIGRvYzogY3VycmVudERvY1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGFjdGlvbnMgYXMgRG9jdW1lbnRDaGFuZ2VBY3Rpb248VD5bXTtcbiAgICAgIH0pLFxuICApO1xufVxuXG4vKipcbiAqIFJldHVybiBhIHN0cmVhbSBvZiBkb2N1bWVudCBjaGFuZ2VzIG9uIGEgcXVlcnkuIFRoZXNlIHJlc3VsdHMgYXJlIGluIHNvcnQgb3JkZXIuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBzb3J0ZWRDaGFuZ2VzPFQ+KFxuICBxdWVyeTogUXVlcnksXG4gIGV2ZW50czogRG9jdW1lbnRDaGFuZ2VUeXBlW10sXG4gIHNjaGVkdWxlcj86IFNjaGVkdWxlckxpa2UpOiBPYnNlcnZhYmxlPERvY3VtZW50Q2hhbmdlQWN0aW9uPFQ+W10+IHtcbiAgcmV0dXJuIGRvY0NoYW5nZXM8VD4ocXVlcnksIHNjaGVkdWxlcilcbiAgICAucGlwZShcbiAgICAgIHNjYW4oKGN1cnJlbnQsIGNoYW5nZXMpID0+IGNvbWJpbmVDaGFuZ2VzPFQ+KGN1cnJlbnQsIGNoYW5nZXMubWFwKGl0ID0+IGl0LnBheWxvYWQpLCBldmVudHMpLCBbXSksXG4gICAgICBkaXN0aW5jdFVudGlsQ2hhbmdlZCgpLCAvLyBjdXQgZG93biBvbiB1bm5lZWQgY2hhbmdlIGN5Y2xlc1xuICAgICAgbWFwKGNoYW5nZXMgPT4gY2hhbmdlcy5tYXAoYyA9PiAoeyB0eXBlOiBjLnR5cGUsIHBheWxvYWQ6IGMgfSBhcyBEb2N1bWVudENoYW5nZUFjdGlvbjxUPikpKSk7XG59XG5cbi8qKlxuICogQ29tYmluZXMgdGhlIHRvdGFsIHJlc3VsdCBzZXQgZnJvbSB0aGUgY3VycmVudCBzZXQgb2YgY2hhbmdlcyBmcm9tIGFuIGluY29taW5nIHNldFxuICogb2YgY2hhbmdlcy5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGNvbWJpbmVDaGFuZ2VzPFQ+KGN1cnJlbnQ6IERvY3VtZW50Q2hhbmdlPFQ+W10sIGNoYW5nZXM6IERvY3VtZW50Q2hhbmdlPFQ+W10sIGV2ZW50czogRG9jdW1lbnRDaGFuZ2VUeXBlW10pIHtcbiAgY2hhbmdlcy5mb3JFYWNoKGNoYW5nZSA9PiB7XG4gICAgLy8gc2tpcCB1bndhbnRlZCBjaGFuZ2UgdHlwZXNcbiAgICBpZiAoZXZlbnRzLmluZGV4T2YoY2hhbmdlLnR5cGUpID4gLTEpIHtcbiAgICAgIGN1cnJlbnQgPSBjb21iaW5lQ2hhbmdlKGN1cnJlbnQsIGNoYW5nZSk7XG4gICAgfVxuICB9KTtcbiAgcmV0dXJuIGN1cnJlbnQ7XG59XG5cbi8qKlxuICogU3BsaWNlIGFyZ3VtZW50cyBvbiB0b3Agb2YgYSBzbGljZWQgYXJyYXksIHRvIGJyZWFrIHRvcC1sZXZlbCA9PT1cbiAqIHRoaXMgaXMgdXNlZnVsIGZvciBjaGFuZ2UtZGV0ZWN0aW9uXG4gKi9cbmZ1bmN0aW9uIHNsaWNlQW5kU3BsaWNlPFQ+KFxuICBvcmlnaW5hbDogVFtdLFxuICBzdGFydDogbnVtYmVyLFxuICBkZWxldGVDb3VudDogbnVtYmVyLFxuICAuLi5hcmdzOiBUW11cbik6IFRbXSB7XG4gIGNvbnN0IHJldHVybkFycmF5ID0gb3JpZ2luYWwuc2xpY2UoKTtcbiAgcmV0dXJuQXJyYXkuc3BsaWNlKHN0YXJ0LCBkZWxldGVDb3VudCwgLi4uYXJncyk7XG4gIHJldHVybiByZXR1cm5BcnJheTtcbn1cblxuLyoqXG4gKiBDcmVhdGVzIGEgbmV3IHNvcnRlZCBhcnJheSBmcm9tIGEgbmV3IGNoYW5nZS5cbiAqIEJ1aWxkIG91ciBvd24gYmVjYXVzZSB3ZSBhbGxvdyBmaWx0ZXJpbmcgb2YgYWN0aW9uIHR5cGVzICgnYWRkZWQnLCAncmVtb3ZlZCcsICdtb2RpZmllZCcpIGJlZm9yZSBzY2FubmluZ1xuICogYW5kIHNvIHdlIGhhdmUgZ3JlYXRlciBjb250cm9sIG92ZXIgY2hhbmdlIGRldGVjdGlvbiAoYnkgYnJlYWtpbmcgPT09KVxuICovXG5leHBvcnQgZnVuY3Rpb24gY29tYmluZUNoYW5nZTxUPihjb21iaW5lZDogRG9jdW1lbnRDaGFuZ2U8VD5bXSwgY2hhbmdlOiBEb2N1bWVudENoYW5nZTxUPik6IERvY3VtZW50Q2hhbmdlPFQ+W10ge1xuICBzd2l0Y2ggKGNoYW5nZS50eXBlKSB7XG4gICAgY2FzZSAnYWRkZWQnOlxuICAgICAgaWYgKGNvbWJpbmVkW2NoYW5nZS5uZXdJbmRleF0gJiYgY29tYmluZWRbY2hhbmdlLm5ld0luZGV4XS5kb2MucmVmLmlzRXF1YWwoY2hhbmdlLmRvYy5yZWYpKSB7XG4gICAgICAgIC8vIE5vdCBzdXJlIHdoeSB0aGUgZHVwbGljYXRlcyBhcmUgZ2V0dGluZyBmaXJlZFxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgcmV0dXJuIHNsaWNlQW5kU3BsaWNlKGNvbWJpbmVkLCBjaGFuZ2UubmV3SW5kZXgsIDAsIGNoYW5nZSk7XG4gICAgICB9XG4gICAgICBicmVhaztcbiAgICBjYXNlICdtb2RpZmllZCc6XG4gICAgICBpZiAoY29tYmluZWRbY2hhbmdlLm9sZEluZGV4XSA9PSBudWxsIHx8IGNvbWJpbmVkW2NoYW5nZS5vbGRJbmRleF0uZG9jLnJlZi5pc0VxdWFsKGNoYW5nZS5kb2MucmVmKSkge1xuICAgICAgICAvLyBXaGVuIGFuIGl0ZW0gY2hhbmdlcyBwb3NpdGlvbiB3ZSBmaXJzdCByZW1vdmUgaXRcbiAgICAgICAgLy8gYW5kIHRoZW4gYWRkIGl0J3MgbmV3IHBvc2l0aW9uXG4gICAgICAgIGlmIChjaGFuZ2Uub2xkSW5kZXggIT09IGNoYW5nZS5uZXdJbmRleCkge1xuICAgICAgICAgIGNvbnN0IGNvcGllZEFycmF5ID0gY29tYmluZWQuc2xpY2UoKTtcbiAgICAgICAgICBjb3BpZWRBcnJheS5zcGxpY2UoY2hhbmdlLm9sZEluZGV4LCAxKTtcbiAgICAgICAgICBjb3BpZWRBcnJheS5zcGxpY2UoY2hhbmdlLm5ld0luZGV4LCAwLCBjaGFuZ2UpO1xuICAgICAgICAgIHJldHVybiBjb3BpZWRBcnJheTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICByZXR1cm4gc2xpY2VBbmRTcGxpY2UoY29tYmluZWQsIGNoYW5nZS5uZXdJbmRleCwgMSwgY2hhbmdlKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgYnJlYWs7XG4gICAgY2FzZSAncmVtb3ZlZCc6XG4gICAgICBpZiAoY29tYmluZWRbY2hhbmdlLm9sZEluZGV4XSAmJiBjb21iaW5lZFtjaGFuZ2Uub2xkSW5kZXhdLmRvYy5yZWYuaXNFcXVhbChjaGFuZ2UuZG9jLnJlZikpIHtcbiAgICAgICAgcmV0dXJuIHNsaWNlQW5kU3BsaWNlKGNvbWJpbmVkLCBjaGFuZ2Uub2xkSW5kZXgsIDEpO1xuICAgICAgfVxuICAgICAgYnJlYWs7XG4gIH1cbiAgcmV0dXJuIGNvbWJpbmVkO1xufVxuIl19