@angular/fire 7.6.1 → 16.0.0-canary.4172abd

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 (513) hide show
  1. package/analytics/analytics.module.d.ts +2 -2
  2. package/analytics/is-analytics-supported-factory.d.ts +4 -0
  3. package/analytics/screen-tracking.service.d.ts +3 -3
  4. package/app-check/app-check.d.ts +0 -6
  5. package/app-check/app-check.module.d.ts +3 -4
  6. package/app-check/public_api.d.ts +2 -1
  7. package/auth/auth.module.d.ts +2 -2
  8. package/auth-guard/auth-guard.d.ts +6 -6
  9. package/compat/analytics/analytics.d.ts +1 -3
  10. package/compat/analytics/analytics.module.d.ts +1 -1
  11. package/compat/analytics/screen-tracking.service.d.ts +1 -1
  12. package/compat/analytics/user-tracking.service.d.ts +1 -1
  13. package/compat/auth/auth.d.ts +4 -4
  14. package/compat/auth-guard/auth-guard.d.ts +8 -6
  15. package/compat/database/database.d.ts +4 -4
  16. package/compat/database/interfaces.d.ts +14 -14
  17. package/compat/database/list/audit-trail.d.ts +1 -1
  18. package/compat/database/list/create-reference.d.ts +1 -1
  19. package/compat/database/list/data-operation.d.ts +1 -1
  20. package/compat/database/list/state-changes.d.ts +1 -1
  21. package/compat/database/object/create-reference.d.ts +1 -1
  22. package/compat/database/observable/fromRef.d.ts +1 -1
  23. package/compat/database/utils.d.ts +1 -1
  24. package/compat/firebase.app.module.d.ts +1 -1
  25. package/compat/firestore/collection/collection.d.ts +2 -2
  26. package/compat/firestore/collection-group/collection-group.d.ts +2 -2
  27. package/compat/firestore/document/document.d.ts +4 -4
  28. package/compat/firestore/firestore.d.ts +7 -7
  29. package/compat/firestore/interfaces.d.ts +19 -19
  30. package/compat/functions/functions.d.ts +3 -3
  31. package/compat/messaging/messaging.d.ts +2 -2
  32. package/compat/performance/performance.d.ts +2 -2
  33. package/compat/proxy.d.ts +8 -8
  34. package/compat/remote-config/interfaces.d.ts +1 -1
  35. package/compat/remote-config/remote-config.d.ts +15 -49
  36. package/compat/storage/interfaces.d.ts +8 -8
  37. package/compat/storage/observable/fromTask.d.ts +1 -2
  38. package/compat/storage/pipes/storageUrl.pipe.d.ts +1 -1
  39. package/compat/storage/ref.d.ts +1 -1
  40. package/compat/storage/storage.d.ts +3 -3
  41. package/compat/storage/task.d.ts +1 -1
  42. package/core.d.ts +8 -12
  43. package/database/database.module.d.ts +2 -2
  44. package/{esm2015/analytics/analytics.js → esm2022/analytics/analytics.mjs} +1 -1
  45. package/esm2022/analytics/analytics.module.mjs +94 -0
  46. package/esm2022/analytics/is-analytics-supported-factory.mjs +16 -0
  47. package/esm2022/analytics/overrides.mjs +3 -0
  48. package/esm2022/analytics/screen-tracking.service.mjs +148 -0
  49. package/esm2022/analytics/user-tracking.service.mjs +44 -0
  50. package/{esm2015/app/app.js → esm2022/app/app.mjs} +1 -1
  51. package/esm2022/app/app.module.mjs +85 -0
  52. package/esm2022/app-check/app-check.mjs +10 -0
  53. package/esm2022/app-check/app-check.module.mjs +78 -0
  54. package/esm2022/app-check/public_api.mjs +5 -0
  55. package/{esm2015/auth/auth.js → esm2022/auth/auth.mjs} +1 -1
  56. package/esm2022/auth/auth.module.mjs +71 -0
  57. package/esm2022/auth-guard/auth-guard.mjs +53 -0
  58. package/{esm2015/auth-guard/auth-guard.module.js → esm2022/auth-guard/auth-guard.module.mjs} +7 -7
  59. package/esm2022/compat/analytics/analytics.mjs +160 -0
  60. package/esm2022/compat/analytics/analytics.module.mjs +35 -0
  61. package/esm2022/compat/analytics/screen-tracking.service.mjs +49 -0
  62. package/esm2022/compat/analytics/user-tracking.service.mjs +53 -0
  63. package/esm2022/compat/auth/auth.mjs +161 -0
  64. package/{esm2015/compat/auth/auth.module.js → esm2022/compat/auth/auth.module.mjs} +7 -7
  65. package/{esm2015/compat/auth/public_api.js → esm2022/compat/auth/public_api.mjs} +1 -1
  66. package/esm2022/compat/auth-guard/auth-guard.mjs +53 -0
  67. package/{esm2015/compat/auth-guard/auth-guard.module.js → esm2022/compat/auth-guard/auth-guard.module.mjs} +7 -7
  68. package/{esm2015/compat/cache.js → esm2022/compat/cache.mjs} +4 -3
  69. package/esm2022/compat/database/database.mjs +119 -0
  70. package/{esm2015/compat/database/database.module.js → esm2022/compat/database/database.module.mjs} +7 -7
  71. package/esm2022/compat/database/interfaces.mjs +2 -0
  72. package/{esm2015/compat/database/list/audit-trail.js → esm2022/compat/database/list/audit-trail.mjs} +3 -3
  73. package/esm2022/compat/database/list/changes.mjs +85 -0
  74. package/esm2022/compat/database/list/create-reference.mjs +44 -0
  75. package/{esm2015/compat/database/list/data-operation.js → esm2022/compat/database/list/data-operation.mjs} +1 -1
  76. package/{esm2015/compat/database/list/snapshot-changes.js → esm2022/compat/database/list/snapshot-changes.mjs} +1 -1
  77. package/{esm2015/compat/database/list/state-changes.js → esm2022/compat/database/list/state-changes.mjs} +2 -2
  78. package/{esm2015/compat/database/object/create-reference.js → esm2022/compat/database/object/create-reference.mjs} +2 -2
  79. package/{esm2015/compat/database/object/snapshot-changes.js → esm2022/compat/database/object/snapshot-changes.mjs} +1 -1
  80. package/esm2022/compat/database/observable/fromRef.mjs +48 -0
  81. package/{esm2015/compat/database/utils.js → esm2022/compat/database/utils.mjs} +1 -1
  82. package/{esm2015/compat/firebase.app.js → esm2022/compat/firebase.app.mjs} +1 -1
  83. package/esm2022/compat/firebase.app.module.mjs +71 -0
  84. package/esm2022/compat/firestore/collection/changes.mjs +108 -0
  85. package/esm2022/compat/firestore/collection/collection.mjs +123 -0
  86. package/esm2022/compat/firestore/collection-group/collection-group.mjs +86 -0
  87. package/esm2022/compat/firestore/document/document.mjs +87 -0
  88. package/esm2022/compat/firestore/firestore.mjs +257 -0
  89. package/{esm2015/compat/firestore/firestore.module.js → esm2022/compat/firestore/firestore.module.mjs} +7 -7
  90. package/esm2022/compat/firestore/interfaces.mjs +2 -0
  91. package/esm2022/compat/firestore/observable/fromRef.mjs +40 -0
  92. package/esm2022/compat/functions/functions.mjs +69 -0
  93. package/{esm2015/compat/functions/functions.module.js → esm2022/compat/functions/functions.module.mjs} +7 -7
  94. package/{esm2015/compat/functions/public_api.js → esm2022/compat/functions/public_api.mjs} +1 -1
  95. package/esm2022/compat/messaging/messaging.mjs +81 -0
  96. package/{esm2015/compat/messaging/messaging.module.js → esm2022/compat/messaging/messaging.module.mjs} +7 -7
  97. package/esm2022/compat/performance/performance.mjs +105 -0
  98. package/esm2022/compat/performance/performance.module.mjs +27 -0
  99. package/esm2022/compat/performance/performance.service.mjs +28 -0
  100. package/esm2022/compat/proxy.mjs +58 -0
  101. package/esm2022/compat/remote-config/remote-config.mjs +206 -0
  102. package/{esm2015/compat/remote-config/remote-config.module.js → esm2022/compat/remote-config/remote-config.module.mjs} +7 -7
  103. package/esm2022/compat/storage/observable/fromTask.mjs +36 -0
  104. package/esm2022/compat/storage/pipes/storageUrl.pipe.mjs +58 -0
  105. package/{esm2015/compat/storage/ref.js → esm2022/compat/storage/ref.mjs} +3 -3
  106. package/esm2022/compat/storage/storage.mjs +95 -0
  107. package/esm2022/compat/storage/storage.module.mjs +22 -0
  108. package/{esm2015/compat/storage/task.js → esm2022/compat/storage/task.mjs} +2 -2
  109. package/esm2022/core.mjs +43 -0
  110. package/{esm2015/database/database.js → esm2022/database/database.mjs} +1 -1
  111. package/esm2022/database/database.module.mjs +74 -0
  112. package/{esm2015/firestore/firestore.js → esm2022/firestore/firestore.mjs} +1 -1
  113. package/esm2022/firestore/firestore.module.mjs +74 -0
  114. package/{esm2015/firestore/lite/lite.js → esm2022/firestore/lite/lite.mjs} +1 -1
  115. package/esm2022/firestore/lite/lite.module.mjs +73 -0
  116. package/esm2022/firestore/rxfire.mjs +15 -0
  117. package/{esm2015/functions/functions.js → esm2022/functions/functions.mjs} +1 -1
  118. package/esm2022/functions/functions.module.mjs +74 -0
  119. package/esm2022/messaging/is-messaging-supported-factory.mjs +16 -0
  120. package/{esm2015/messaging/messaging.js → esm2022/messaging/messaging.mjs} +1 -1
  121. package/esm2022/messaging/messaging.module.mjs +86 -0
  122. package/esm2022/messaging/overrides.mjs +3 -0
  123. package/{esm2015/performance/performance.js → esm2022/performance/performance.mjs} +1 -1
  124. package/esm2022/performance/performance.module.mjs +81 -0
  125. package/esm2022/remote-config/is-remote-config-supported-factory.mjs +16 -0
  126. package/esm2022/remote-config/overrides.mjs +3 -0
  127. package/{esm2015/remote-config/remote-config.js → esm2022/remote-config/remote-config.mjs} +1 -1
  128. package/esm2022/remote-config/remote-config.module.mjs +86 -0
  129. package/{esm2015/storage/storage.js → esm2022/storage/storage.mjs} +1 -1
  130. package/esm2022/storage/storage.module.mjs +74 -0
  131. package/esm2022/zones.mjs +194 -0
  132. package/{fesm2015/angular-fire-analytics.js → fesm2022/angular-fire-analytics.mjs} +64 -40
  133. package/fesm2022/angular-fire-analytics.mjs.map +1 -0
  134. package/{fesm2015/angular-fire-app-check.js → fesm2022/angular-fire-app-check.mjs} +16 -24
  135. package/fesm2022/angular-fire-app-check.mjs.map +1 -0
  136. package/{fesm2015/angular-fire-app.js → fesm2022/angular-fire-app.mjs} +10 -9
  137. package/fesm2022/angular-fire-app.mjs.map +1 -0
  138. package/{fesm2015/angular-fire-auth-guard.js → fesm2022/angular-fire-auth-guard.mjs} +31 -27
  139. package/fesm2022/angular-fire-auth-guard.mjs.map +1 -0
  140. package/{fesm2015/angular-fire-auth.js → fesm2022/angular-fire-auth.mjs} +10 -11
  141. package/fesm2022/angular-fire-auth.mjs.map +1 -0
  142. package/{fesm2015/angular-fire-compat-analytics.js → fesm2022/angular-fire-compat-analytics.mjs} +43 -41
  143. package/fesm2022/angular-fire-compat-analytics.mjs.map +1 -0
  144. package/{fesm2015/angular-fire-compat-auth-guard.js → fesm2022/angular-fire-compat-auth-guard.mjs} +30 -26
  145. package/fesm2022/angular-fire-compat-auth-guard.mjs.map +1 -0
  146. package/{fesm2015/angular-fire-compat-auth.js → fesm2022/angular-fire-compat-auth.mjs} +38 -16
  147. package/fesm2022/angular-fire-compat-auth.mjs.map +1 -0
  148. package/{fesm2015/angular-fire-compat-database.js → fesm2022/angular-fire-compat-database.mjs} +138 -132
  149. package/fesm2022/angular-fire-compat-database.mjs.map +1 -0
  150. package/{fesm2015/angular-fire-compat-firestore.js → fesm2022/angular-fire-compat-firestore.mjs} +119 -98
  151. package/fesm2022/angular-fire-compat-firestore.mjs.map +1 -0
  152. package/{fesm2015/angular-fire-compat-functions.js → fesm2022/angular-fire-compat-functions.mjs} +13 -12
  153. package/fesm2022/angular-fire-compat-functions.mjs.map +1 -0
  154. package/{fesm2015/angular-fire-compat-messaging.js → fesm2022/angular-fire-compat-messaging.mjs} +25 -19
  155. package/fesm2022/angular-fire-compat-messaging.mjs.map +1 -0
  156. package/{fesm2015/angular-fire-compat-performance.js → fesm2022/angular-fire-compat-performance.mjs} +29 -34
  157. package/fesm2022/angular-fire-compat-performance.mjs.map +1 -0
  158. package/{fesm2015/angular-fire-compat-remote-config.js → fesm2022/angular-fire-compat-remote-config.mjs} +35 -22
  159. package/fesm2022/angular-fire-compat-remote-config.mjs.map +1 -0
  160. package/{fesm2015/angular-fire-compat-storage.js → fesm2022/angular-fire-compat-storage.mjs} +30 -23
  161. package/fesm2022/angular-fire-compat-storage.mjs.map +1 -0
  162. package/{fesm2015/angular-fire-compat.js → fesm2022/angular-fire-compat.mjs} +25 -25
  163. package/fesm2022/angular-fire-compat.mjs.map +1 -0
  164. package/{fesm2015/angular-fire-database.js → fesm2022/angular-fire-database.mjs} +11 -12
  165. package/fesm2022/angular-fire-database.mjs.map +1 -0
  166. package/{fesm2015/angular-fire-firestore-lite.js → fesm2022/angular-fire-firestore-lite.mjs} +11 -12
  167. package/fesm2022/angular-fire-firestore-lite.mjs.map +1 -0
  168. package/{fesm2015/angular-fire-firestore.js → fesm2022/angular-fire-firestore.mjs} +15 -14
  169. package/fesm2022/angular-fire-firestore.mjs.map +1 -0
  170. package/{fesm2015/angular-fire-functions.js → fesm2022/angular-fire-functions.mjs} +12 -13
  171. package/fesm2022/angular-fire-functions.mjs.map +1 -0
  172. package/{fesm2015/angular-fire-messaging.js → fesm2022/angular-fire-messaging.mjs} +33 -19
  173. package/fesm2022/angular-fire-messaging.mjs.map +1 -0
  174. package/{fesm2015/angular-fire-performance.js → fesm2022/angular-fire-performance.mjs} +11 -11
  175. package/fesm2022/angular-fire-performance.mjs.map +1 -0
  176. package/{fesm2015/angular-fire-remote-config.js → fesm2022/angular-fire-remote-config.mjs} +34 -20
  177. package/fesm2022/angular-fire-remote-config.mjs.map +1 -0
  178. package/{fesm2015/angular-fire-storage.js → fesm2022/angular-fire-storage.mjs} +10 -11
  179. package/fesm2022/angular-fire-storage.mjs.map +1 -0
  180. package/{fesm2015/angular-fire.js → fesm2022/angular-fire.mjs} +33 -58
  181. package/fesm2022/angular-fire.mjs.map +1 -0
  182. package/firestore/firestore.module.d.ts +2 -2
  183. package/firestore/lite/lite.module.d.ts +2 -2
  184. package/firestore/rxfire.d.ts +3 -1
  185. package/functions/functions.module.d.ts +2 -2
  186. package/messaging/is-messaging-supported-factory.d.ts +4 -0
  187. package/messaging/messaging.module.d.ts +2 -2
  188. package/package.json +158 -7
  189. package/performance/performance.module.d.ts +2 -2
  190. package/publish.sh +1 -0
  191. package/remote-config/is-remote-config-supported-factory.d.ts +4 -0
  192. package/remote-config/remote-config.module.d.ts +2 -2
  193. package/schematics/add/index.js +2 -2
  194. package/schematics/common.js +9 -5
  195. package/schematics/deploy/actions.js +69 -69
  196. package/schematics/deploy/builder.js +7 -7
  197. package/schematics/firebaseTools.js +9 -5
  198. package/schematics/setup/index.js +27 -27
  199. package/schematics/setup/prompts.js +22 -18
  200. package/schematics/update/index.js +1 -1
  201. package/schematics/update/v7/index.js +7 -7
  202. package/schematics/utils.js +34 -34
  203. package/storage/storage.module.d.ts +2 -2
  204. package/README.md +0 -216
  205. package/analytics/package.json +0 -11
  206. package/app/package.json +0 -11
  207. package/app-check/package.json +0 -11
  208. package/auth/package.json +0 -11
  209. package/auth-guard/package.json +0 -11
  210. package/bundles/angular-fire-analytics.umd.js +0 -673
  211. package/bundles/angular-fire-analytics.umd.js.map +0 -1
  212. package/bundles/angular-fire-app-check.umd.js +0 -465
  213. package/bundles/angular-fire-app-check.umd.js.map +0 -1
  214. package/bundles/angular-fire-app.umd.js +0 -477
  215. package/bundles/angular-fire-app.umd.js.map +0 -1
  216. package/bundles/angular-fire-auth-guard.umd.js +0 -109
  217. package/bundles/angular-fire-auth-guard.umd.js.map +0 -1
  218. package/bundles/angular-fire-auth.umd.js +0 -557
  219. package/bundles/angular-fire-auth.umd.js.map +0 -1
  220. package/bundles/angular-fire-compat-analytics.umd.js +0 -672
  221. package/bundles/angular-fire-compat-analytics.umd.js.map +0 -1
  222. package/bundles/angular-fire-compat-auth-guard.umd.js +0 -112
  223. package/bundles/angular-fire-compat-auth-guard.umd.js.map +0 -1
  224. package/bundles/angular-fire-compat-auth.umd.js +0 -559
  225. package/bundles/angular-fire-compat-auth.umd.js.map +0 -1
  226. package/bundles/angular-fire-compat-database.umd.js +0 -799
  227. package/bundles/angular-fire-compat-database.umd.js.map +0 -1
  228. package/bundles/angular-fire-compat-firestore.umd.js +0 -1073
  229. package/bundles/angular-fire-compat-firestore.umd.js.map +0 -1
  230. package/bundles/angular-fire-compat-functions.umd.js +0 -443
  231. package/bundles/angular-fire-compat-functions.umd.js.map +0 -1
  232. package/bundles/angular-fire-compat-messaging.umd.js +0 -465
  233. package/bundles/angular-fire-compat-messaging.umd.js.map +0 -1
  234. package/bundles/angular-fire-compat-performance.umd.js +0 -212
  235. package/bundles/angular-fire-compat-performance.umd.js.map +0 -1
  236. package/bundles/angular-fire-compat-remote-config.umd.js +0 -605
  237. package/bundles/angular-fire-compat-remote-config.umd.js.map +0 -1
  238. package/bundles/angular-fire-compat-storage.umd.js +0 -598
  239. package/bundles/angular-fire-compat-storage.umd.js.map +0 -1
  240. package/bundles/angular-fire-compat.umd.js +0 -535
  241. package/bundles/angular-fire-compat.umd.js.map +0 -1
  242. package/bundles/angular-fire-database.umd.js +0 -557
  243. package/bundles/angular-fire-database.umd.js.map +0 -1
  244. package/bundles/angular-fire-firestore-lite.umd.js +0 -531
  245. package/bundles/angular-fire-firestore-lite.umd.js.map +0 -1
  246. package/bundles/angular-fire-firestore.umd.js +0 -565
  247. package/bundles/angular-fire-firestore.umd.js.map +0 -1
  248. package/bundles/angular-fire-functions.umd.js +0 -461
  249. package/bundles/angular-fire-functions.umd.js.map +0 -1
  250. package/bundles/angular-fire-messaging.umd.js +0 -473
  251. package/bundles/angular-fire-messaging.umd.js.map +0 -1
  252. package/bundles/angular-fire-performance.umd.js +0 -473
  253. package/bundles/angular-fire-performance.umd.js.map +0 -1
  254. package/bundles/angular-fire-remote-config.umd.js +0 -499
  255. package/bundles/angular-fire-remote-config.umd.js.map +0 -1
  256. package/bundles/angular-fire-storage.umd.js +0 -485
  257. package/bundles/angular-fire-storage.umd.js.map +0 -1
  258. package/bundles/angular-fire.umd.js +0 -308
  259. package/bundles/angular-fire.umd.js.map +0 -1
  260. package/compat/analytics/package.json +0 -11
  261. package/compat/auth/package.json +0 -11
  262. package/compat/auth-guard/package.json +0 -11
  263. package/compat/database/package.json +0 -11
  264. package/compat/firestore/package.json +0 -11
  265. package/compat/functions/package.json +0 -11
  266. package/compat/messaging/package.json +0 -11
  267. package/compat/package.json +0 -11
  268. package/compat/performance/package.json +0 -11
  269. package/compat/remote-config/package.json +0 -11
  270. package/compat/storage/package.json +0 -11
  271. package/database/package.json +0 -11
  272. package/docs/analytics.md +0 -67
  273. package/docs/app-check.md +0 -53
  274. package/docs/auth.md +0 -165
  275. package/docs/compat/analytics/getting-started.md +0 -137
  276. package/docs/compat/auth/getting-started.md +0 -162
  277. package/docs/compat/auth/router-guards.md +0 -104
  278. package/docs/compat/emulators/emulators.md +0 -134
  279. package/docs/compat/firestore/collections.md +0 -326
  280. package/docs/compat/firestore/documents.md +0 -115
  281. package/docs/compat/firestore/offline-data.md +0 -39
  282. package/docs/compat/firestore/querying-collections.md +0 -204
  283. package/docs/compat/functions/functions.md +0 -166
  284. package/docs/compat/messaging/messaging.md +0 -232
  285. package/docs/compat/performance/getting-started.md +0 -132
  286. package/docs/compat/remote-config/getting-started.md +0 -134
  287. package/docs/compat/rtdb/lists.md +0 -257
  288. package/docs/compat/rtdb/objects.md +0 -182
  289. package/docs/compat/rtdb/querying-lists.md +0 -155
  290. package/docs/compat/storage/storage.md +0 -257
  291. package/docs/compat.md +0 -70
  292. package/docs/database.md +0 -175
  293. package/docs/deploy/getting-started.md +0 -204
  294. package/docs/firebase.json +0 -16
  295. package/docs/firestore.md +0 -148
  296. package/docs/functions.md +0 -52
  297. package/docs/images/analytics-illo_1x.png +0 -0
  298. package/docs/images/auth-illo_1x.png +0 -0
  299. package/docs/images/cloud-messaging-illo_1x.png +0 -0
  300. package/docs/images/database-illo_1x.png +0 -0
  301. package/docs/images/firestore-illo_1x.png +0 -0
  302. package/docs/images/functions-illo_1x.png +0 -0
  303. package/docs/images/hosting-illo_1x.png +0 -0
  304. package/docs/images/performance-illo_1x.png +0 -0
  305. package/docs/images/reCAPTCHA-logo@1x.png +0 -0
  306. package/docs/images/remote-config-illo_1x.png +0 -0
  307. package/docs/images/storage-illo_1x.png +0 -0
  308. package/docs/install-and-setup.md +0 -114
  309. package/docs/install-angular-cli-windows10.md +0 -82
  310. package/docs/messaging.md +0 -25
  311. package/docs/performance.md +0 -57
  312. package/docs/remote-config.md +0 -53
  313. package/docs/storage.md +0 -90
  314. package/docs/universal/cloud-functions.md +0 -75
  315. package/docs/universal/getting-started.md +0 -153
  316. package/docs/universal/prerendering.md +0 -72
  317. package/docs/version-4-upgrade.md +0 -119
  318. package/docs/version-5-upgrade.md +0 -82
  319. package/docs/version-6-upgrade.md +0 -16
  320. package/docs/version-7-upgrade.md +0 -298
  321. package/esm2015/analytics/analytics.module.js +0 -93
  322. package/esm2015/analytics/overrides.js +0 -3
  323. package/esm2015/analytics/screen-tracking.service.js +0 -139
  324. package/esm2015/analytics/user-tracking.service.js +0 -43
  325. package/esm2015/app/app.module.js +0 -84
  326. package/esm2015/app-check/app-check.js +0 -16
  327. package/esm2015/app-check/app-check.module.js +0 -81
  328. package/esm2015/app-check/public_api.js +0 -4
  329. package/esm2015/auth/auth.module.js +0 -71
  330. package/esm2015/auth-guard/auth-guard.js +0 -49
  331. package/esm2015/compat/analytics/analytics.js +0 -163
  332. package/esm2015/compat/analytics/analytics.module.js +0 -32
  333. package/esm2015/compat/analytics/screen-tracking.service.js +0 -49
  334. package/esm2015/compat/analytics/user-tracking.service.js +0 -52
  335. package/esm2015/compat/auth/auth.js +0 -139
  336. package/esm2015/compat/auth-guard/auth-guard.js +0 -49
  337. package/esm2015/compat/database/database.js +0 -117
  338. package/esm2015/compat/database/interfaces.js +0 -2
  339. package/esm2015/compat/database/list/changes.js +0 -85
  340. package/esm2015/compat/database/list/create-reference.js +0 -41
  341. package/esm2015/compat/database/observable/fromRef.js +0 -47
  342. package/esm2015/compat/firebase.app.module.js +0 -69
  343. package/esm2015/compat/firestore/collection/changes.js +0 -107
  344. package/esm2015/compat/firestore/collection/collection.js +0 -117
  345. package/esm2015/compat/firestore/collection-group/collection-group.js +0 -81
  346. package/esm2015/compat/firestore/document/document.js +0 -82
  347. package/esm2015/compat/firestore/firestore.js +0 -254
  348. package/esm2015/compat/firestore/interfaces.js +0 -2
  349. package/esm2015/compat/firestore/observable/fromRef.js +0 -39
  350. package/esm2015/compat/functions/functions.js +0 -68
  351. package/esm2015/compat/messaging/messaging.js +0 -75
  352. package/esm2015/compat/performance/performance.js +0 -110
  353. package/esm2015/compat/performance/performance.module.js +0 -28
  354. package/esm2015/compat/performance/performance.service.js +0 -27
  355. package/esm2015/compat/proxy.js +0 -61
  356. package/esm2015/compat/remote-config/remote-config.js +0 -193
  357. package/esm2015/compat/storage/observable/fromTask.js +0 -34
  358. package/esm2015/compat/storage/pipes/storageUrl.pipe.js +0 -54
  359. package/esm2015/compat/storage/storage.js +0 -94
  360. package/esm2015/compat/storage/storage.module.js +0 -22
  361. package/esm2015/core.js +0 -79
  362. package/esm2015/database/database.module.js +0 -74
  363. package/esm2015/firestore/firestore.module.js +0 -74
  364. package/esm2015/firestore/lite/lite.module.js +0 -74
  365. package/esm2015/firestore/rxfire.js +0 -13
  366. package/esm2015/functions/functions.module.js +0 -74
  367. package/esm2015/messaging/messaging.module.js +0 -85
  368. package/esm2015/messaging/overrides.js +0 -3
  369. package/esm2015/performance/performance.module.js +0 -81
  370. package/esm2015/remote-config/overrides.js +0 -3
  371. package/esm2015/remote-config/remote-config.module.js +0 -85
  372. package/esm2015/storage/storage.module.js +0 -74
  373. package/esm2015/zones.js +0 -183
  374. package/fesm2015/angular-fire-analytics.js.map +0 -1
  375. package/fesm2015/angular-fire-app-check.js.map +0 -1
  376. package/fesm2015/angular-fire-app.js.map +0 -1
  377. package/fesm2015/angular-fire-auth-guard.js.map +0 -1
  378. package/fesm2015/angular-fire-auth.js.map +0 -1
  379. package/fesm2015/angular-fire-compat-analytics.js.map +0 -1
  380. package/fesm2015/angular-fire-compat-auth-guard.js.map +0 -1
  381. package/fesm2015/angular-fire-compat-auth.js.map +0 -1
  382. package/fesm2015/angular-fire-compat-database.js.map +0 -1
  383. package/fesm2015/angular-fire-compat-firestore.js.map +0 -1
  384. package/fesm2015/angular-fire-compat-functions.js.map +0 -1
  385. package/fesm2015/angular-fire-compat-messaging.js.map +0 -1
  386. package/fesm2015/angular-fire-compat-performance.js.map +0 -1
  387. package/fesm2015/angular-fire-compat-remote-config.js.map +0 -1
  388. package/fesm2015/angular-fire-compat-storage.js.map +0 -1
  389. package/fesm2015/angular-fire-compat.js.map +0 -1
  390. package/fesm2015/angular-fire-database.js.map +0 -1
  391. package/fesm2015/angular-fire-firestore-lite.js.map +0 -1
  392. package/fesm2015/angular-fire-firestore.js.map +0 -1
  393. package/fesm2015/angular-fire-functions.js.map +0 -1
  394. package/fesm2015/angular-fire-messaging.js.map +0 -1
  395. package/fesm2015/angular-fire-performance.js.map +0 -1
  396. package/fesm2015/angular-fire-remote-config.js.map +0 -1
  397. package/fesm2015/angular-fire-storage.js.map +0 -1
  398. package/fesm2015/angular-fire.js.map +0 -1
  399. package/firestore/lite/package.json +0 -11
  400. package/firestore/package.json +0 -11
  401. package/firestore-protos.js +0 -4
  402. package/functions/package.json +0 -11
  403. package/messaging/package.json +0 -11
  404. package/performance/package.json +0 -11
  405. package/remote-config/package.json +0 -11
  406. package/schematics/add/schema.json +0 -16
  407. package/schematics/builders.json +0 -10
  408. package/schematics/collection.json +0 -15
  409. package/schematics/deploy/schema.json +0 -119
  410. package/schematics/migration.json +0 -15
  411. package/schematics/setup/schema.json +0 -16
  412. package/storage/package.json +0 -11
  413. /package/analytics/{angular-fire-analytics.d.ts → index.d.ts} +0 -0
  414. /package/app/{angular-fire-app.d.ts → index.d.ts} +0 -0
  415. /package/app-check/{angular-fire-app-check.d.ts → index.d.ts} +0 -0
  416. /package/auth/{angular-fire-auth.d.ts → index.d.ts} +0 -0
  417. /package/auth-guard/{angular-fire-auth-guard.d.ts → index.d.ts} +0 -0
  418. /package/compat/analytics/{angular-fire-compat-analytics.d.ts → index.d.ts} +0 -0
  419. /package/compat/auth/{angular-fire-compat-auth.d.ts → index.d.ts} +0 -0
  420. /package/compat/auth-guard/{angular-fire-compat-auth-guard.d.ts → index.d.ts} +0 -0
  421. /package/compat/database/{angular-fire-compat-database.d.ts → index.d.ts} +0 -0
  422. /package/compat/firestore/{angular-fire-compat-firestore.d.ts → index.d.ts} +0 -0
  423. /package/compat/functions/{angular-fire-compat-functions.d.ts → index.d.ts} +0 -0
  424. /package/compat/{angular-fire-compat.d.ts → index.d.ts} +0 -0
  425. /package/compat/messaging/{angular-fire-compat-messaging.d.ts → index.d.ts} +0 -0
  426. /package/compat/performance/{angular-fire-compat-performance.d.ts → index.d.ts} +0 -0
  427. /package/compat/remote-config/{angular-fire-compat-remote-config.d.ts → index.d.ts} +0 -0
  428. /package/compat/storage/{angular-fire-compat-storage.d.ts → index.d.ts} +0 -0
  429. /package/database/{angular-fire-database.d.ts → index.d.ts} +0 -0
  430. /package/{esm2015/analytics/angular-fire-analytics.js → esm2022/analytics/angular-fire-analytics.mjs} +0 -0
  431. /package/{esm2015/analytics/firebase.js → esm2022/analytics/firebase.mjs} +0 -0
  432. /package/{esm2015/analytics/public_api.js → esm2022/analytics/public_api.mjs} +0 -0
  433. /package/{esm2015/angular-fire.js → esm2022/angular-fire.mjs} +0 -0
  434. /package/{esm2015/app/angular-fire-app.js → esm2022/app/angular-fire-app.mjs} +0 -0
  435. /package/{esm2015/app/firebase.js → esm2022/app/firebase.mjs} +0 -0
  436. /package/{esm2015/app/public_api.js → esm2022/app/public_api.mjs} +0 -0
  437. /package/{esm2015/app-check/angular-fire-app-check.js → esm2022/app-check/angular-fire-app-check.mjs} +0 -0
  438. /package/{esm2015/app-check/firebase.js → esm2022/app-check/firebase.mjs} +0 -0
  439. /package/{esm2015/auth/angular-fire-auth.js → esm2022/auth/angular-fire-auth.mjs} +0 -0
  440. /package/{esm2015/auth/firebase.js → esm2022/auth/firebase.mjs} +0 -0
  441. /package/{esm2015/auth/public_api.js → esm2022/auth/public_api.mjs} +0 -0
  442. /package/{esm2015/auth/rxfire.js → esm2022/auth/rxfire.mjs} +0 -0
  443. /package/{esm2015/auth-guard/angular-fire-auth-guard.js → esm2022/auth-guard/angular-fire-auth-guard.mjs} +0 -0
  444. /package/{esm2015/auth-guard/public_api.js → esm2022/auth-guard/public_api.mjs} +0 -0
  445. /package/{esm2015/compat/analytics/angular-fire-compat-analytics.js → esm2022/compat/analytics/angular-fire-compat-analytics.mjs} +0 -0
  446. /package/{esm2015/compat/analytics/base.js → esm2022/compat/analytics/base.mjs} +0 -0
  447. /package/{esm2015/compat/analytics/public_api.js → esm2022/compat/analytics/public_api.mjs} +0 -0
  448. /package/{esm2015/compat/angular-fire-compat.js → esm2022/compat/angular-fire-compat.mjs} +0 -0
  449. /package/{esm2015/compat/auth/angular-fire-compat-auth.js → esm2022/compat/auth/angular-fire-compat-auth.mjs} +0 -0
  450. /package/{esm2015/compat/auth/base.js → esm2022/compat/auth/base.mjs} +0 -0
  451. /package/{esm2015/compat/auth-guard/angular-fire-compat-auth-guard.js → esm2022/compat/auth-guard/angular-fire-compat-auth-guard.mjs} +0 -0
  452. /package/{esm2015/compat/auth-guard/public_api.js → esm2022/compat/auth-guard/public_api.mjs} +0 -0
  453. /package/{esm2015/compat/database/angular-fire-compat-database.js → esm2022/compat/database/angular-fire-compat-database.mjs} +0 -0
  454. /package/{esm2015/compat/database/list/remove.js → esm2022/compat/database/list/remove.mjs} +0 -0
  455. /package/{esm2015/compat/database/list/utils.js → esm2022/compat/database/list/utils.mjs} +0 -0
  456. /package/{esm2015/compat/database/public_api.js → esm2022/compat/database/public_api.mjs} +0 -0
  457. /package/{esm2015/compat/firestore/angular-fire-compat-firestore.js → esm2022/compat/firestore/angular-fire-compat-firestore.mjs} +0 -0
  458. /package/{esm2015/compat/firestore/public_api.js → esm2022/compat/firestore/public_api.mjs} +0 -0
  459. /package/{esm2015/compat/functions/angular-fire-compat-functions.js → esm2022/compat/functions/angular-fire-compat-functions.mjs} +0 -0
  460. /package/{esm2015/compat/functions/base.js → esm2022/compat/functions/base.mjs} +0 -0
  461. /package/{esm2015/compat/messaging/angular-fire-compat-messaging.js → esm2022/compat/messaging/angular-fire-compat-messaging.mjs} +0 -0
  462. /package/{esm2015/compat/messaging/base.js → esm2022/compat/messaging/base.mjs} +0 -0
  463. /package/{esm2015/compat/messaging/public_api.js → esm2022/compat/messaging/public_api.mjs} +0 -0
  464. /package/{esm2015/compat/performance/angular-fire-compat-performance.js → esm2022/compat/performance/angular-fire-compat-performance.mjs} +0 -0
  465. /package/{esm2015/compat/performance/base.js → esm2022/compat/performance/base.mjs} +0 -0
  466. /package/{esm2015/compat/performance/public_api.js → esm2022/compat/performance/public_api.mjs} +0 -0
  467. /package/{esm2015/compat/public_api.js → esm2022/compat/public_api.mjs} +0 -0
  468. /package/{esm2015/compat/remote-config/angular-fire-compat-remote-config.js → esm2022/compat/remote-config/angular-fire-compat-remote-config.mjs} +0 -0
  469. /package/{esm2015/compat/remote-config/base.js → esm2022/compat/remote-config/base.mjs} +0 -0
  470. /package/{esm2015/compat/remote-config/interfaces.js → esm2022/compat/remote-config/interfaces.mjs} +0 -0
  471. /package/{esm2015/compat/remote-config/public_api.js → esm2022/compat/remote-config/public_api.mjs} +0 -0
  472. /package/{esm2015/compat/storage/angular-fire-compat-storage.js → esm2022/compat/storage/angular-fire-compat-storage.mjs} +0 -0
  473. /package/{esm2015/compat/storage/interfaces.js → esm2022/compat/storage/interfaces.mjs} +0 -0
  474. /package/{esm2015/compat/storage/public_api.js → esm2022/compat/storage/public_api.mjs} +0 -0
  475. /package/{esm2015/database/angular-fire-database.js → esm2022/database/angular-fire-database.mjs} +0 -0
  476. /package/{esm2015/database/firebase.js → esm2022/database/firebase.mjs} +0 -0
  477. /package/{esm2015/database/public_api.js → esm2022/database/public_api.mjs} +0 -0
  478. /package/{esm2015/database/rxfire.js → esm2022/database/rxfire.mjs} +0 -0
  479. /package/{esm2015/firestore/angular-fire-firestore.js → esm2022/firestore/angular-fire-firestore.mjs} +0 -0
  480. /package/{esm2015/firestore/firebase.js → esm2022/firestore/firebase.mjs} +0 -0
  481. /package/{esm2015/firestore/lite/angular-fire-firestore-lite.js → esm2022/firestore/lite/angular-fire-firestore-lite.mjs} +0 -0
  482. /package/{esm2015/firestore/lite/firebase.js → esm2022/firestore/lite/firebase.mjs} +0 -0
  483. /package/{esm2015/firestore/lite/public_api.js → esm2022/firestore/lite/public_api.mjs} +0 -0
  484. /package/{esm2015/firestore/lite/rxfire.js → esm2022/firestore/lite/rxfire.mjs} +0 -0
  485. /package/{esm2015/firestore/public_api.js → esm2022/firestore/public_api.mjs} +0 -0
  486. /package/{esm2015/functions/angular-fire-functions.js → esm2022/functions/angular-fire-functions.mjs} +0 -0
  487. /package/{esm2015/functions/firebase.js → esm2022/functions/firebase.mjs} +0 -0
  488. /package/{esm2015/functions/public_api.js → esm2022/functions/public_api.mjs} +0 -0
  489. /package/{esm2015/functions/rxfire.js → esm2022/functions/rxfire.mjs} +0 -0
  490. /package/{esm2015/messaging/angular-fire-messaging.js → esm2022/messaging/angular-fire-messaging.mjs} +0 -0
  491. /package/{esm2015/messaging/firebase.js → esm2022/messaging/firebase.mjs} +0 -0
  492. /package/{esm2015/messaging/public_api.js → esm2022/messaging/public_api.mjs} +0 -0
  493. /package/{esm2015/performance/angular-fire-performance.js → esm2022/performance/angular-fire-performance.mjs} +0 -0
  494. /package/{esm2015/performance/firebase.js → esm2022/performance/firebase.mjs} +0 -0
  495. /package/{esm2015/performance/public_api.js → esm2022/performance/public_api.mjs} +0 -0
  496. /package/{esm2015/performance/rxfire.js → esm2022/performance/rxfire.mjs} +0 -0
  497. /package/{esm2015/public_api.js → esm2022/public_api.mjs} +0 -0
  498. /package/{esm2015/remote-config/angular-fire-remote-config.js → esm2022/remote-config/angular-fire-remote-config.mjs} +0 -0
  499. /package/{esm2015/remote-config/firebase.js → esm2022/remote-config/firebase.mjs} +0 -0
  500. /package/{esm2015/remote-config/public_api.js → esm2022/remote-config/public_api.mjs} +0 -0
  501. /package/{esm2015/remote-config/rxfire.js → esm2022/remote-config/rxfire.mjs} +0 -0
  502. /package/{esm2015/storage/angular-fire-storage.js → esm2022/storage/angular-fire-storage.mjs} +0 -0
  503. /package/{esm2015/storage/firebase.js → esm2022/storage/firebase.mjs} +0 -0
  504. /package/{esm2015/storage/public_api.js → esm2022/storage/public_api.mjs} +0 -0
  505. /package/{esm2015/storage/rxfire.js → esm2022/storage/rxfire.mjs} +0 -0
  506. /package/firestore/{angular-fire-firestore.d.ts → index.d.ts} +0 -0
  507. /package/firestore/lite/{angular-fire-firestore-lite.d.ts → index.d.ts} +0 -0
  508. /package/functions/{angular-fire-functions.d.ts → index.d.ts} +0 -0
  509. /package/{angular-fire.d.ts → index.d.ts} +0 -0
  510. /package/messaging/{angular-fire-messaging.d.ts → index.d.ts} +0 -0
  511. /package/performance/{angular-fire-performance.d.ts → index.d.ts} +0 -0
  512. /package/remote-config/{angular-fire-remote-config.d.ts → index.d.ts} +0 -0
  513. /package/storage/{angular-fire-storage.d.ts → index.d.ts} +0 -0
@@ -1,53 +1,17 @@
1
1
  import * as i0 from '@angular/core';
2
2
  import { InjectionToken, PLATFORM_ID, Injectable, Inject, Optional, NgModule } from '@angular/core';
3
- import { asyncScheduler, Observable, of, merge } from 'rxjs';
4
- import { map, share, switchMap, scan, distinctUntilChanged, withLatestFrom, skipWhile } from 'rxjs/operators';
5
3
  import * as i1 from '@angular/fire';
6
4
  import { keepUnstableUntilFirst, VERSION } from '@angular/fire';
5
+ import * as i3 from '@angular/fire/app-check';
7
6
  import { ɵfirebaseAppFactory, ɵcacheInstance, FIREBASE_OPTIONS, FIREBASE_APP_NAME } from '@angular/fire/compat';
8
- import 'firebase/compat/auth';
9
- import 'firebase/compat/database';
10
7
  import * as i2 from '@angular/fire/compat/auth';
11
8
  import { ɵauthFactory, USE_EMULATOR as USE_EMULATOR$1, SETTINGS, TENANT_ID, LANGUAGE_CODE, USE_DEVICE_LANGUAGE, PERSISTENCE } from '@angular/fire/compat/auth';
12
- import * as i3 from '@angular/fire/app-check';
9
+ import { map, share, scan, withLatestFrom, skipWhile, switchMap, distinctUntilChanged } from 'rxjs/operators';
10
+ import { Observable, asyncScheduler, merge, of } from 'rxjs';
11
+ import 'firebase/compat/auth';
12
+ import 'firebase/compat/database';
13
13
  import firebase from 'firebase/compat/app';
14
14
 
15
- function isString(value) {
16
- return typeof value === 'string';
17
- }
18
- function isFirebaseDataSnapshot(value) {
19
- return typeof value.exportVal === 'function';
20
- }
21
- function isNil(obj) {
22
- return obj === undefined || obj === null;
23
- }
24
- function isFirebaseRef(value) {
25
- return typeof value.set === 'function';
26
- }
27
- /**
28
- * Returns a database reference given a Firebase App and an
29
- * absolute or relative path.
30
- * @param database - Firebase Database
31
- * @param pathRef - Database path, relative or absolute
32
- */
33
- function getRef(database, pathRef) {
34
- // if a db ref was passed in, just return it
35
- return isFirebaseRef(pathRef) ? pathRef
36
- : database.ref(pathRef);
37
- }
38
- function checkOperationCases(item, cases) {
39
- if (isString(item)) {
40
- return cases.stringCase();
41
- }
42
- else if (isFirebaseRef(item)) {
43
- return cases.firebaseCase();
44
- }
45
- else if (isFirebaseDataSnapshot(item)) {
46
- return cases.snapshotCase();
47
- }
48
- throw new Error(`Expects a string, snapshot, or reference. Got: ${typeof item}`);
49
- }
50
-
51
15
  /**
52
16
  * Create an observable from a Database Reference or Database Query.
53
17
  * @param ref Database Reference
@@ -79,6 +43,7 @@ function fromRef(ref, event, listenType = 'on', scheduler = asyncScheduler) {
79
43
  }
80
44
  else {
81
45
  return {
46
+ // eslint-disable-next-line @typescript-eslint/no-empty-function
82
47
  unsubscribe() {
83
48
  }
84
49
  };
@@ -93,85 +58,40 @@ function fromRef(ref, event, listenType = 'on', scheduler = asyncScheduler) {
93
58
  }), share());
94
59
  }
95
60
 
96
- function listChanges(ref, events, scheduler) {
97
- return fromRef(ref, 'value', 'once', scheduler).pipe(switchMap(snapshotAction => {
98
- const childEvent$ = [of(snapshotAction)];
99
- events.forEach(event => childEvent$.push(fromRef(ref, event, 'on', scheduler)));
100
- return merge(...childEvent$).pipe(scan(buildView, []));
101
- }), distinctUntilChanged());
61
+ function isString(value) {
62
+ return typeof value === 'string';
102
63
  }
103
- function positionFor(changes, key) {
104
- const len = changes.length;
105
- for (let i = 0; i < len; i++) {
106
- if (changes[i].payload.key === key) {
107
- return i;
108
- }
109
- }
110
- return -1;
64
+ function isFirebaseDataSnapshot(value) {
65
+ return typeof value.exportVal === 'function';
111
66
  }
112
- function positionAfter(changes, prevKey) {
113
- if (isNil(prevKey)) {
114
- return 0;
67
+ function isNil(obj) {
68
+ return obj === undefined || obj === null;
69
+ }
70
+ function isFirebaseRef(value) {
71
+ return typeof value.set === 'function';
72
+ }
73
+ /**
74
+ * Returns a database reference given a Firebase App and an
75
+ * absolute or relative path.
76
+ * @param database - Firebase Database
77
+ * @param pathRef - Database path, relative or absolute
78
+ */
79
+ function getRef(database, pathRef) {
80
+ // if a db ref was passed in, just return it
81
+ return isFirebaseRef(pathRef) ? pathRef
82
+ : database.ref(pathRef);
83
+ }
84
+ function checkOperationCases(item, cases) {
85
+ if (isString(item)) {
86
+ return cases.stringCase();
115
87
  }
116
- else {
117
- const i = positionFor(changes, prevKey);
118
- if (i === -1) {
119
- return changes.length;
120
- }
121
- else {
122
- return i + 1;
123
- }
88
+ else if (isFirebaseRef(item)) {
89
+ return cases.firebaseCase();
124
90
  }
125
- }
126
- function buildView(current, action) {
127
- const { payload, prevKey, key } = action;
128
- const currentKeyPosition = positionFor(current, key);
129
- const afterPreviousKeyPosition = positionAfter(current, prevKey);
130
- switch (action.type) {
131
- case 'value':
132
- if (action.payload && action.payload.exists()) {
133
- let prevKey = null;
134
- action.payload.forEach(payload => {
135
- const action = { payload, type: 'value', prevKey, key: payload.key };
136
- prevKey = payload.key;
137
- current = [...current, action];
138
- return false;
139
- });
140
- }
141
- return current;
142
- case 'child_added':
143
- if (currentKeyPosition > -1) {
144
- // check that the previouskey is what we expect, else reorder
145
- const previous = current[currentKeyPosition - 1];
146
- if ((previous && previous.key || null) !== prevKey) {
147
- current = current.filter(x => x.payload.key !== payload.key);
148
- current.splice(afterPreviousKeyPosition, 0, action);
149
- }
150
- }
151
- else if (prevKey == null) {
152
- return [action, ...current];
153
- }
154
- else {
155
- current = current.slice();
156
- current.splice(afterPreviousKeyPosition, 0, action);
157
- }
158
- return current;
159
- case 'child_removed':
160
- return current.filter(x => x.payload.key !== payload.key);
161
- case 'child_changed':
162
- return current.map(x => x.payload.key === key ? action : x);
163
- case 'child_moved':
164
- if (currentKeyPosition > -1) {
165
- const data = current.splice(currentKeyPosition, 1)[0];
166
- current = current.slice();
167
- current.splice(afterPreviousKeyPosition, 0, data);
168
- return current;
169
- }
170
- return current;
171
- // default will also remove null results
172
- default:
173
- return current;
91
+ else if (isFirebaseDataSnapshot(item)) {
92
+ return cases.snapshotCase();
174
93
  }
94
+ throw new Error(`Expects a string, snapshot, or reference. Got: ${typeof item}`);
175
95
  }
176
96
 
177
97
  function validateEventsArray(events) {
@@ -181,11 +101,6 @@ function validateEventsArray(events) {
181
101
  return events;
182
102
  }
183
103
 
184
- function snapshotChanges(query, events, scheduler) {
185
- events = validateEventsArray(events);
186
- return listChanges(query, events, scheduler);
187
- }
188
-
189
104
  function stateChanges(query, events, scheduler) {
190
105
  events = validateEventsArray(events);
191
106
  const childEvent$ = events.map(event => fromRef(query, event, 'on', scheduler));
@@ -261,6 +176,92 @@ function createRemoveMethod(ref) {
261
176
  };
262
177
  }
263
178
 
179
+ function listChanges(ref, events, scheduler) {
180
+ return fromRef(ref, 'value', 'once', scheduler).pipe(switchMap(snapshotAction => {
181
+ const childEvent$ = [of(snapshotAction)];
182
+ events.forEach(event => childEvent$.push(fromRef(ref, event, 'on', scheduler)));
183
+ return merge(...childEvent$).pipe(scan(buildView, []));
184
+ }), distinctUntilChanged());
185
+ }
186
+ function positionFor(changes, key) {
187
+ const len = changes.length;
188
+ for (let i = 0; i < len; i++) {
189
+ if (changes[i].payload.key === key) {
190
+ return i;
191
+ }
192
+ }
193
+ return -1;
194
+ }
195
+ function positionAfter(changes, prevKey) {
196
+ if (isNil(prevKey)) {
197
+ return 0;
198
+ }
199
+ else {
200
+ const i = positionFor(changes, prevKey);
201
+ if (i === -1) {
202
+ return changes.length;
203
+ }
204
+ else {
205
+ return i + 1;
206
+ }
207
+ }
208
+ }
209
+ function buildView(current, action) {
210
+ const { payload, prevKey, key } = action;
211
+ const currentKeyPosition = positionFor(current, key);
212
+ const afterPreviousKeyPosition = positionAfter(current, prevKey);
213
+ switch (action.type) {
214
+ case 'value':
215
+ if (action.payload?.exists()) {
216
+ let prevKey = null;
217
+ action.payload.forEach(payload => {
218
+ const action = { payload, type: 'value', prevKey, key: payload.key };
219
+ prevKey = payload.key;
220
+ current = [...current, action];
221
+ return false;
222
+ });
223
+ }
224
+ return current;
225
+ case 'child_added':
226
+ if (currentKeyPosition > -1) {
227
+ // check that the previouskey is what we expect, else reorder
228
+ const previous = current[currentKeyPosition - 1];
229
+ if ((previous?.key || null) !== prevKey) {
230
+ current = current.filter(x => x.payload.key !== payload.key);
231
+ current.splice(afterPreviousKeyPosition, 0, action);
232
+ }
233
+ }
234
+ else if (prevKey == null) {
235
+ return [action, ...current];
236
+ }
237
+ else {
238
+ current = current.slice();
239
+ current.splice(afterPreviousKeyPosition, 0, action);
240
+ }
241
+ return current;
242
+ case 'child_removed':
243
+ return current.filter(x => x.payload.key !== payload.key);
244
+ case 'child_changed':
245
+ return current.map(x => x.payload.key === key ? action : x);
246
+ case 'child_moved':
247
+ if (currentKeyPosition > -1) {
248
+ const data = current.splice(currentKeyPosition, 1)[0];
249
+ current = current.slice();
250
+ current.splice(afterPreviousKeyPosition, 0, data);
251
+ return current;
252
+ }
253
+ return current;
254
+ // default will also remove null results
255
+ default:
256
+ return current;
257
+ }
258
+ }
259
+
260
+ function snapshotChanges(query, events, scheduler) {
261
+ events = validateEventsArray(events);
262
+ return listChanges(query, events, scheduler);
263
+ }
264
+
264
265
  function createListReference(query, afDatabase) {
265
266
  const outsideAngularScheduler = afDatabase.schedulers.outsideAngular;
266
267
  const refInZone = afDatabase.schedulers.ngZone.run(() => query.ref);
@@ -283,9 +284,12 @@ function createListReference(query, afDatabase) {
283
284
  const snapshotChanges$ = snapshotChanges(query, events, outsideAngularScheduler);
284
285
  return snapshotChanges$.pipe(map(actions => actions.map(a => {
285
286
  if (options && options.idField) {
286
- return Object.assign(Object.assign({}, a.payload.val()), {
287
- [options.idField]: a.key
288
- });
287
+ return {
288
+ ...a.payload.val(),
289
+ ...{
290
+ [options.idField]: a.key
291
+ }
292
+ };
289
293
  }
290
294
  else {
291
295
  return a.payload.val();
@@ -320,8 +324,10 @@ function createObjectReference(query, afDatabase) {
320
324
  const URL = new InjectionToken('angularfire2.realtimeDatabaseURL');
321
325
  const USE_EMULATOR = new InjectionToken('angularfire2.database.use-emulator');
322
326
  class AngularFireDatabase {
327
+ schedulers;
328
+ database;
323
329
  constructor(options, name, databaseURL,
324
- // tslint:disable-next-line:ban-types
330
+ // eslint-disable-next-line @typescript-eslint/ban-types
325
331
  platformId, zone, schedulers, _useEmulator, // tuple isn't working here
326
332
  auth, useAuthEmulator, authSettings, // can't use firebase.auth.AuthSettings here
327
333
  tenantId, languageCode, useDeviceLanguage, persistence, _appCheckInstances) {
@@ -355,10 +361,10 @@ class AngularFireDatabase {
355
361
  const ref = this.schedulers.ngZone.runOutsideAngular(() => this.database.ref());
356
362
  return ref.push().key;
357
363
  }
364
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.3", ngImport: i0, type: AngularFireDatabase, deps: [{ token: FIREBASE_OPTIONS }, { token: FIREBASE_APP_NAME, optional: true }, { token: URL, optional: true }, { token: PLATFORM_ID }, { token: i0.NgZone }, { token: i1.ɵAngularFireSchedulers }, { token: USE_EMULATOR, optional: true }, { token: i2.AngularFireAuth, optional: true }, { token: USE_EMULATOR$1, optional: true }, { token: SETTINGS, optional: true }, { token: TENANT_ID, optional: true }, { token: LANGUAGE_CODE, optional: true }, { token: USE_DEVICE_LANGUAGE, optional: true }, { token: PERSISTENCE, optional: true }, { token: i3.AppCheckInstances, optional: true }], target: i0.ɵɵFactoryTarget.Injectable });
365
+ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.1.3", ngImport: i0, type: AngularFireDatabase, providedIn: 'any' });
358
366
  }
359
- AngularFireDatabase.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.1.3", ngImport: i0, type: AngularFireDatabase, deps: [{ token: FIREBASE_OPTIONS }, { token: FIREBASE_APP_NAME, optional: true }, { token: URL, optional: true }, { token: PLATFORM_ID }, { token: i0.NgZone }, { token: i1.ɵAngularFireSchedulers }, { token: USE_EMULATOR, optional: true }, { token: i2.AngularFireAuth, optional: true }, { token: USE_EMULATOR$1, optional: true }, { token: SETTINGS, optional: true }, { token: TENANT_ID, optional: true }, { token: LANGUAGE_CODE, optional: true }, { token: USE_DEVICE_LANGUAGE, optional: true }, { token: PERSISTENCE, optional: true }, { token: i3.AppCheckInstances, optional: true }], target: i0.ɵɵFactoryTarget.Injectable });
360
- AngularFireDatabase.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "12.1.3", ngImport: i0, type: AngularFireDatabase, providedIn: 'any' });
361
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.1.3", ngImport: i0, type: AngularFireDatabase, decorators: [{
367
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.3", ngImport: i0, type: AngularFireDatabase, decorators: [{
362
368
  type: Injectable,
363
369
  args: [{
364
370
  providedIn: 'any'
@@ -424,11 +430,11 @@ class AngularFireDatabaseModule {
424
430
  constructor() {
425
431
  firebase.registerVersion('angularfire', VERSION.full, 'rtdb-compat');
426
432
  }
433
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.3", ngImport: i0, type: AngularFireDatabaseModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
434
+ static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "16.1.3", ngImport: i0, type: AngularFireDatabaseModule });
435
+ static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "16.1.3", ngImport: i0, type: AngularFireDatabaseModule, providers: [AngularFireDatabase] });
427
436
  }
428
- AngularFireDatabaseModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.1.3", ngImport: i0, type: AngularFireDatabaseModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
429
- AngularFireDatabaseModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "12.1.3", ngImport: i0, type: AngularFireDatabaseModule });
430
- AngularFireDatabaseModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "12.1.3", ngImport: i0, type: AngularFireDatabaseModule, providers: [AngularFireDatabase] });
431
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.1.3", ngImport: i0, type: AngularFireDatabaseModule, decorators: [{
437
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.3", ngImport: i0, type: AngularFireDatabaseModule, decorators: [{
432
438
  type: NgModule,
433
439
  args: [{
434
440
  providers: [AngularFireDatabase]
@@ -440,4 +446,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.1.3", ngImpor
440
446
  */
441
447
 
442
448
  export { AngularFireDatabase, AngularFireDatabaseModule, URL, USE_EMULATOR, auditTrail, createListReference, fromRef, listChanges, snapshotChanges, stateChanges };
443
- //# sourceMappingURL=angular-fire-compat-database.js.map
449
+ //# sourceMappingURL=angular-fire-compat-database.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"angular-fire-compat-database.mjs","sources":["../../../src/compat/database/observable/fromRef.ts","../../../src/compat/database/utils.ts","../../../src/compat/database/list/utils.ts","../../../src/compat/database/list/state-changes.ts","../../../src/compat/database/list/audit-trail.ts","../../../src/compat/database/list/data-operation.ts","../../../src/compat/database/list/remove.ts","../../../src/compat/database/list/changes.ts","../../../src/compat/database/list/snapshot-changes.ts","../../../src/compat/database/list/create-reference.ts","../../../src/compat/database/object/snapshot-changes.ts","../../../src/compat/database/object/create-reference.ts","../../../src/compat/database/database.ts","../../../src/compat/database/database.module.ts","../../../src/compat/database/angular-fire-compat-database.ts"],"sourcesContent":["import { Observable, SchedulerLike, asyncScheduler } from 'rxjs';\nimport { map, share } from 'rxjs/operators';\nimport { AngularFireAction, DatabaseQuery, DatabaseSnapshot, ListenEvent } from '../interfaces';\n\ninterface SnapshotPrevKey<T> {\n snapshot: DatabaseSnapshot<T>;\n prevKey: string | null | undefined;\n}\n\n/**\n * Create an observable from a Database Reference or Database Query.\n * @param ref Database Reference\n * @param event Listen event type ('value', 'added', 'changed', 'removed', 'moved')\n * @param listenType 'on' or 'once'\n * @param scheduler - Rxjs scheduler\n */\nexport function fromRef<T>(ref: DatabaseQuery,\n event: ListenEvent,\n listenType = 'on',\n scheduler: SchedulerLike = asyncScheduler\n): Observable<AngularFireAction<DatabaseSnapshot<T>>> {\n return new Observable<SnapshotPrevKey<T>>(subscriber => {\n let fn: any = null;\n fn = ref[listenType](event, (snapshot, prevKey) => {\n scheduler.schedule(() => {\n subscriber.next({ snapshot, prevKey });\n });\n if (listenType === 'once') {\n scheduler.schedule(() => subscriber.complete());\n }\n }, err => {\n scheduler.schedule(() => subscriber.error(err));\n });\n\n if (listenType === 'on') {\n return {\n unsubscribe() {\n if (fn != null) {\n ref.off(event, fn);\n }\n }\n };\n } else {\n return {\n // eslint-disable-next-line @typescript-eslint/no-empty-function\n unsubscribe() {\n }\n };\n }\n }).pipe(\n map(payload => {\n const { snapshot, prevKey } = payload;\n let key: string | null = null;\n if (snapshot.exists()) {\n key = snapshot.key;\n }\n return { type: event, payload: snapshot, prevKey, key };\n }),\n share()\n );\n}\n","import firebase from 'firebase/compat/app';\nimport { DatabaseReference, FirebaseOperation, FirebaseOperationCases, PathReference } from './interfaces';\n\nexport function isString(value: any): boolean {\n return typeof value === 'string';\n}\n\nexport function isFirebaseDataSnapshot(value: any): boolean {\n return typeof value.exportVal === 'function';\n}\n\nexport function isNil(obj: any): boolean {\n return obj === undefined || obj === null;\n}\n\nexport function isFirebaseRef(value: any): boolean {\n return typeof value.set === 'function';\n}\n\n/**\n * Returns a database reference given a Firebase App and an\n * absolute or relative path.\n * @param database - Firebase Database\n * @param pathRef - Database path, relative or absolute\n */\nexport function getRef(database: firebase.database.Database, pathRef: PathReference): DatabaseReference {\n // if a db ref was passed in, just return it\n return isFirebaseRef(pathRef) ? pathRef as DatabaseReference\n : database.ref(pathRef as string);\n}\n\nexport function checkOperationCases(item: FirebaseOperation, cases: FirebaseOperationCases): Promise<void> {\n if (isString(item)) {\n return cases.stringCase();\n } else if (isFirebaseRef(item)) {\n return cases.firebaseCase();\n } else if (isFirebaseDataSnapshot(item)) {\n return cases.snapshotCase();\n }\n throw new Error(`Expects a string, snapshot, or reference. Got: ${typeof item}`);\n}\n","import { isNil } from '../utils';\n\nexport function validateEventsArray(events?: any[]) {\n if (isNil(events) || events.length === 0) {\n events = ['child_added', 'child_removed', 'child_changed', 'child_moved'];\n }\n return events;\n}\n","import { SchedulerLike, merge } from 'rxjs';\nimport { ChildEvent, DatabaseQuery } from '../interfaces';\nimport { fromRef } from '../observable/fromRef';\nimport { validateEventsArray } from './utils';\n\nexport function stateChanges<T>(query: DatabaseQuery, events?: ChildEvent[], scheduler?: SchedulerLike) {\n events = validateEventsArray(events);\n const childEvent$ = events.map(event => fromRef<T>(query, event, 'on', scheduler));\n return merge(...childEvent$);\n}\n","import { Observable, SchedulerLike } from 'rxjs';\nimport { map, scan, skipWhile, withLatestFrom } from 'rxjs/operators';\nimport { AngularFireAction, ChildEvent, DataSnapshot, DatabaseQuery, SnapshotAction } from '../interfaces';\nimport { fromRef } from '../observable/fromRef';\nimport { stateChanges } from './state-changes';\n\n\nexport function auditTrail<T>(query: DatabaseQuery, events?: ChildEvent[], scheduler?: SchedulerLike): Observable<SnapshotAction<T>[]> {\n const auditTrail$ = stateChanges<T>(query, events)\n .pipe(\n scan((current, action) => [...current, action], [])\n );\n return waitForLoaded<T>(query, auditTrail$, scheduler);\n}\n\ninterface LoadedMetadata {\n data: AngularFireAction<DataSnapshot>;\n lastKeyToLoad: any;\n}\n\nfunction loadedData<T>(query: DatabaseQuery, scheduler?: SchedulerLike): Observable<LoadedMetadata> {\n // Create an observable of loaded values to retrieve the\n // known dataset. This will allow us to know what key to\n // emit the \"whole\" array at when listening for child events.\n return fromRef<T>(query, 'value', 'on', scheduler)\n .pipe(\n map(data => {\n // Store the last key in the data set\n let lastKeyToLoad;\n // Loop through loaded dataset to find the last key\n data.payload.forEach(child => {\n lastKeyToLoad = child.key; return false;\n });\n // return data set and the current last key loaded\n return { data, lastKeyToLoad };\n })\n );\n}\n\nfunction waitForLoaded<T>(query: DatabaseQuery, action$: Observable<SnapshotAction<T>[]>, scheduler?: SchedulerLike) {\n const loaded$ = loadedData<T>(query, scheduler);\n return loaded$\n .pipe(\n withLatestFrom(action$),\n // Get the latest values from the \"loaded\" and \"child\" datasets\n // We can use both datasets to form an array of the latest values.\n map(([loaded, actions]) => {\n // Store the last key in the data set\n const lastKeyToLoad = loaded.lastKeyToLoad;\n // Store all child keys loaded at this point\n const loadedKeys = actions.map(snap => snap.key);\n return { actions, lastKeyToLoad, loadedKeys };\n }),\n // This is the magical part, only emit when the last load key\n // in the dataset has been loaded by a child event. At this point\n // we can assume the dataset is \"whole\".\n skipWhile(meta => meta.loadedKeys.indexOf(meta.lastKeyToLoad) === -1),\n // Pluck off the meta data because the user only cares\n // to iterate through the snapshots\n map(meta => meta.actions)\n );\n}\n","import { DatabaseReference, DatabaseSnapshot, FirebaseOperation } from '../interfaces';\nimport { checkOperationCases } from '../utils';\n\nexport function createDataOperationMethod(ref: DatabaseReference, operation: string) {\n return function dataOperation<T>(item: FirebaseOperation, value: T) {\n return checkOperationCases(item, {\n stringCase: () => ref.child(item as string)[operation](value),\n firebaseCase: () => (item as DatabaseReference)[operation](value),\n snapshotCase: () => (item as DatabaseSnapshot<T>).ref[operation](value)\n });\n };\n}\n","import { DatabaseReference, DatabaseSnapshot, FirebaseOperation } from '../interfaces';\nimport { checkOperationCases } from '../utils';\n\n// TODO(davideast): Find out why TS thinks this returns firebase.Primise\n// instead of Promise.\nexport function createRemoveMethod<T>(ref: DatabaseReference) {\n return function remove(item?: FirebaseOperation): any {\n if (!item) { return ref.remove(); }\n return checkOperationCases(item, {\n stringCase: () => ref.child(item as string).remove(),\n firebaseCase: () => (item as DatabaseReference).remove(),\n snapshotCase: () => (item as DatabaseSnapshot<T>).ref.remove()\n });\n };\n}\n","import { Observable, SchedulerLike, merge, of } from 'rxjs';\nimport { distinctUntilChanged, scan, switchMap } from 'rxjs/operators';\nimport { ChildEvent, DatabaseQuery, SnapshotAction } from '../interfaces';\nimport { fromRef } from '../observable/fromRef';\nimport { isNil } from '../utils';\n\n\nexport function listChanges<T = any>(ref: DatabaseQuery, events: ChildEvent[], scheduler?: SchedulerLike): Observable<SnapshotAction<T>[]> {\n return fromRef(ref, 'value', 'once', scheduler).pipe(\n switchMap(snapshotAction => {\n const childEvent$ = [of(snapshotAction)];\n events.forEach(event => childEvent$.push(fromRef(ref, event, 'on', scheduler)));\n return merge(...childEvent$).pipe(scan(buildView, []));\n }),\n distinctUntilChanged()\n );\n}\n\nfunction positionFor<T>(changes: SnapshotAction<T>[], key) {\n const len = changes.length;\n for (let i = 0; i < len; i++) {\n if (changes[i].payload.key === key) {\n return i;\n }\n }\n return -1;\n}\n\nfunction positionAfter<T>(changes: SnapshotAction<T>[], prevKey?: string) {\n if (isNil(prevKey)) {\n return 0;\n } else {\n const i = positionFor(changes, prevKey);\n if (i === -1) {\n return changes.length;\n } else {\n return i + 1;\n }\n }\n}\n\nfunction buildView(current, action) {\n const { payload, prevKey, key } = action;\n const currentKeyPosition = positionFor(current, key);\n const afterPreviousKeyPosition = positionAfter(current, prevKey);\n switch (action.type) {\n case 'value':\n if (action.payload?.exists()) {\n let prevKey = null;\n action.payload.forEach(payload => {\n const action = { payload, type: 'value', prevKey, key: payload.key };\n prevKey = payload.key;\n current = [...current, action];\n return false;\n });\n }\n return current;\n case 'child_added':\n if (currentKeyPosition > -1) {\n // check that the previouskey is what we expect, else reorder\n const previous = current[currentKeyPosition - 1];\n if ((previous?.key || null) !== prevKey) {\n current = current.filter(x => x.payload.key !== payload.key);\n current.splice(afterPreviousKeyPosition, 0, action);\n }\n } else if (prevKey == null) {\n return [action, ...current];\n } else {\n current = current.slice();\n current.splice(afterPreviousKeyPosition, 0, action);\n }\n return current;\n case 'child_removed':\n return current.filter(x => x.payload.key !== payload.key);\n case 'child_changed':\n return current.map(x => x.payload.key === key ? action : x);\n case 'child_moved':\n if (currentKeyPosition > -1) {\n const data = current.splice(currentKeyPosition, 1)[0];\n current = current.slice();\n current.splice(afterPreviousKeyPosition, 0, data);\n return current;\n }\n return current;\n // default will also remove null results\n default:\n return current;\n }\n}\n","import { Observable, SchedulerLike } from 'rxjs';\nimport { ChildEvent, DatabaseQuery, SnapshotAction } from '../interfaces';\nimport { listChanges } from './changes';\nimport { validateEventsArray } from './utils';\n\nexport function snapshotChanges<T>(\n query: DatabaseQuery,\n events?: ChildEvent[],\n scheduler?: SchedulerLike\n): Observable<SnapshotAction<T>[]> {\n events = validateEventsArray(events);\n return listChanges<T>(query, events, scheduler);\n}\n","import { keepUnstableUntilFirst } from '@angular/fire';\nimport type { Observable } from 'rxjs';\nimport { map } from 'rxjs/operators';\nimport { AngularFireDatabase } from '../database';\nimport { AngularFireList, ChildEvent, DatabaseQuery } from '../interfaces';\nimport { auditTrail } from './audit-trail';\nimport { createDataOperationMethod } from './data-operation';\nimport { createRemoveMethod } from './remove';\nimport { snapshotChanges } from './snapshot-changes';\nimport { stateChanges } from './state-changes';\n\nexport function createListReference<T= any>(query: DatabaseQuery, afDatabase: AngularFireDatabase): AngularFireList<T> {\n const outsideAngularScheduler = afDatabase.schedulers.outsideAngular;\n const refInZone = afDatabase.schedulers.ngZone.run(() => query.ref);\n return {\n query,\n update: createDataOperationMethod(refInZone, 'update'),\n set: createDataOperationMethod(refInZone, 'set'),\n push: (data: T) => refInZone.push(data),\n remove: createRemoveMethod(refInZone),\n snapshotChanges(events?: ChildEvent[]) {\n return snapshotChanges<T>(query, events, outsideAngularScheduler).pipe(keepUnstableUntilFirst);\n },\n stateChanges(events?: ChildEvent[]) {\n return stateChanges<T>(query, events, outsideAngularScheduler).pipe(keepUnstableUntilFirst);\n },\n auditTrail(events?: ChildEvent[]) {\n return auditTrail<T>(query, events, outsideAngularScheduler).pipe(keepUnstableUntilFirst);\n },\n valueChanges<K extends string>(events?: ChildEvent[], options?: {idField?: K}): Observable<(T & Record<string, string>)[]> {\n const snapshotChanges$ = snapshotChanges<T>(query, events, outsideAngularScheduler);\n return snapshotChanges$.pipe(\n map(actions => actions.map(a => {\n if (options && options.idField) {\n return {\n ...a.payload.val() as T,\n ...{\n [options.idField]: a.key\n }\n };\n } else {\n return a.payload.val() as T & Record<string, string>\n }\n })),\n keepUnstableUntilFirst\n );\n }\n };\n}\n","import { Observable, SchedulerLike } from 'rxjs';\nimport { DatabaseQuery, SnapshotAction } from '../interfaces';\nimport { fromRef } from '../observable/fromRef';\n\nexport function createObjectSnapshotChanges<T>(query: DatabaseQuery, scheduler?: SchedulerLike) {\n return function snapshotChanges(): Observable<SnapshotAction<T>> {\n return fromRef(query, 'value', 'on', scheduler);\n };\n}\n","import { keepUnstableUntilFirst } from '@angular/fire';\nimport { map } from 'rxjs/operators';\nimport { AngularFireDatabase } from '../database';\nimport { AngularFireObject, DatabaseQuery } from '../interfaces';\nimport { createObjectSnapshotChanges } from './snapshot-changes';\n\nexport function createObjectReference<T= any>(query: DatabaseQuery, afDatabase: AngularFireDatabase): AngularFireObject<T> {\n return {\n query,\n snapshotChanges<T>() {\n return createObjectSnapshotChanges<T>(query, afDatabase.schedulers.outsideAngular)().pipe(\n keepUnstableUntilFirst\n );\n },\n update(data: Partial<T>) { return query.ref.update(data as any) as Promise<void>; },\n set(data: T) { return query.ref.set(data) as Promise<void>; },\n remove() { return query.ref.remove() as Promise<void>; },\n valueChanges<T>() {\n const snapshotChanges$ = createObjectSnapshotChanges(query, afDatabase.schedulers.outsideAngular)();\n return snapshotChanges$.pipe(\n keepUnstableUntilFirst,\n map(action => action.payload.exists() ? action.payload.val() as T : null)\n );\n },\n };\n}\n","import { Inject, Injectable, InjectionToken, NgZone, Optional, PLATFORM_ID } from '@angular/core';\nimport { ɵAngularFireSchedulers } from '@angular/fire';\nimport { AppCheckInstances } from '@angular/fire/app-check';\nimport { FIREBASE_APP_NAME, FIREBASE_OPTIONS, ɵcacheInstance, ɵfirebaseAppFactory } from '@angular/fire/compat';\nimport {\n SETTINGS as AUTH_SETTINGS,\n AngularFireAuth,\n LANGUAGE_CODE,\n PERSISTENCE,\n TENANT_ID,\n USE_EMULATOR as USE_AUTH_EMULATOR,\n USE_DEVICE_LANGUAGE,\n ɵauthFactory,\n} from '@angular/fire/compat/auth';\nimport { FirebaseOptions } from 'firebase/app';\nimport firebase from 'firebase/compat/app';\nimport { AngularFireList, AngularFireObject, DatabaseQuery, PathReference, QueryFn } from './interfaces';\nimport { createListReference } from './list/create-reference';\nimport { createObjectReference } from './object/create-reference';\nimport { getRef } from './utils';\nimport 'firebase/compat/auth';\nimport 'firebase/compat/database';\n\nexport const URL = new InjectionToken<string>('angularfire2.realtimeDatabaseURL');\n\ntype UseEmulatorArguments = Parameters<firebase.database.Database['useEmulator']>;\nexport const USE_EMULATOR = new InjectionToken<UseEmulatorArguments>('angularfire2.database.use-emulator');\n\n@Injectable({\n providedIn: 'any'\n})\nexport class AngularFireDatabase {\n public readonly database: firebase.database.Database;\n\n constructor(\n @Inject(FIREBASE_OPTIONS) options: FirebaseOptions,\n @Optional() @Inject(FIREBASE_APP_NAME) name: string | null | undefined,\n @Optional() @Inject(URL) databaseURL: string | null,\n // eslint-disable-next-line @typescript-eslint/ban-types\n @Inject(PLATFORM_ID) platformId: Object,\n zone: NgZone,\n public schedulers: ɵAngularFireSchedulers,\n @Optional() @Inject(USE_EMULATOR) _useEmulator: any, // tuple isn't working here\n @Optional() auth: AngularFireAuth,\n @Optional() @Inject(USE_AUTH_EMULATOR) useAuthEmulator: any,\n @Optional() @Inject(AUTH_SETTINGS) authSettings: any, // can't use firebase.auth.AuthSettings here\n @Optional() @Inject(TENANT_ID) tenantId: string | null,\n @Optional() @Inject(LANGUAGE_CODE) languageCode: string | null,\n @Optional() @Inject(USE_DEVICE_LANGUAGE) useDeviceLanguage: boolean | null,\n @Optional() @Inject(PERSISTENCE) persistence: string | null,\n @Optional() _appCheckInstances: AppCheckInstances,\n ) {\n\n const useEmulator: UseEmulatorArguments | null = _useEmulator;\n const app = ɵfirebaseAppFactory(options, zone, name);\n\n if (auth) {\n ɵauthFactory(app, zone, useAuthEmulator, tenantId, languageCode, useDeviceLanguage, authSettings, persistence);\n }\n\n this.database = ɵcacheInstance(`${app.name}.database.${databaseURL}`, 'AngularFireDatabase', app.name, () => {\n const database = zone.runOutsideAngular(() => app.database(databaseURL || undefined));\n if (useEmulator) {\n database.useEmulator(...useEmulator);\n }\n return database;\n }, [useEmulator]);\n }\n\n list<T>(pathOrRef: PathReference, queryFn?: QueryFn): AngularFireList<T> {\n const ref = this.schedulers.ngZone.runOutsideAngular(() => getRef(this.database, pathOrRef));\n let query: DatabaseQuery = ref;\n if (queryFn) {\n query = queryFn(ref);\n }\n return createListReference<T>(query, this);\n }\n\n object<T>(pathOrRef: PathReference): AngularFireObject<T> {\n const ref = this.schedulers.ngZone.runOutsideAngular(() => getRef(this.database, pathOrRef));\n return createObjectReference<T>(ref, this);\n }\n\n createPushId() {\n const ref = this.schedulers.ngZone.runOutsideAngular(() => this.database.ref());\n return ref.push().key;\n }\n\n}\n\nexport {\n PathReference,\n DatabaseSnapshot,\n ChildEvent,\n ListenEvent,\n QueryFn,\n AngularFireList,\n AngularFireObject,\n AngularFireAction,\n Action,\n SnapshotAction\n} from './interfaces';\n","import { NgModule } from '@angular/core';\nimport { VERSION } from '@angular/fire';\nimport firebase from 'firebase/compat/app';\nimport { AngularFireDatabase } from './database';\n\n@NgModule({\n providers: [ AngularFireDatabase ]\n})\nexport class AngularFireDatabaseModule {\n constructor() {\n firebase.registerVersion('angularfire', VERSION.full, 'rtdb-compat');\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":["USE_AUTH_EMULATOR","AUTH_SETTINGS"],"mappings":"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"}