@angular/fire 18.0.1 → 19.0.0-canary.a58b329

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (264) hide show
  1. package/README.md +2 -2
  2. package/analytics/firebase.d.ts +2 -2
  3. package/analytics/screen-tracking.service.d.ts +1 -1
  4. package/auth/rxfire.d.ts +2 -2
  5. package/compat/database/database.d.ts +1 -1
  6. package/compat/firestore/firestore.d.ts +1 -1
  7. package/compat/storage/pipes/storageUrl.pipe.d.ts +2 -2
  8. package/compat/storage/storage.d.ts +1 -1
  9. package/compat/storage/storage.module.d.ts +1 -1
  10. package/database/rxfire.d.ts +4 -4
  11. package/docs/install-and-setup.md +10 -5
  12. package/docs/vertexai.md +3 -3
  13. package/fesm2022/angular-fire-analytics.mjs +12 -12
  14. package/fesm2022/angular-fire-analytics.mjs.map +1 -1
  15. package/fesm2022/angular-fire-app-check.mjs +4 -4
  16. package/fesm2022/angular-fire-app-check.mjs.map +1 -1
  17. package/fesm2022/angular-fire-app.mjs +4 -4
  18. package/fesm2022/angular-fire-app.mjs.map +1 -1
  19. package/fesm2022/angular-fire-auth-guard.mjs +7 -7
  20. package/fesm2022/angular-fire-auth-guard.mjs.map +1 -1
  21. package/fesm2022/angular-fire-auth.mjs +6 -6
  22. package/fesm2022/angular-fire-auth.mjs.map +1 -1
  23. package/fesm2022/angular-fire-compat-analytics.mjs +13 -13
  24. package/fesm2022/angular-fire-compat-analytics.mjs.map +1 -1
  25. package/fesm2022/angular-fire-compat-auth-guard.mjs +7 -7
  26. package/fesm2022/angular-fire-compat-auth-guard.mjs.map +1 -1
  27. package/fesm2022/angular-fire-compat-auth.mjs +7 -7
  28. package/fesm2022/angular-fire-compat-auth.mjs.map +1 -1
  29. package/fesm2022/angular-fire-compat-database.mjs +7 -7
  30. package/fesm2022/angular-fire-compat-database.mjs.map +1 -1
  31. package/fesm2022/angular-fire-compat-firestore.mjs +9 -9
  32. package/fesm2022/angular-fire-compat-firestore.mjs.map +1 -1
  33. package/fesm2022/angular-fire-compat-functions.mjs +7 -7
  34. package/fesm2022/angular-fire-compat-functions.mjs.map +1 -1
  35. package/fesm2022/angular-fire-compat-messaging.mjs +7 -7
  36. package/fesm2022/angular-fire-compat-messaging.mjs.map +1 -1
  37. package/fesm2022/angular-fire-compat-performance.mjs +10 -10
  38. package/fesm2022/angular-fire-compat-performance.mjs.map +1 -1
  39. package/fesm2022/angular-fire-compat-remote-config.mjs +7 -7
  40. package/fesm2022/angular-fire-compat-remote-config.mjs.map +1 -1
  41. package/fesm2022/angular-fire-compat-storage.mjs +16 -15
  42. package/fesm2022/angular-fire-compat-storage.mjs.map +1 -1
  43. package/fesm2022/angular-fire-compat.mjs +4 -4
  44. package/fesm2022/angular-fire-compat.mjs.map +1 -1
  45. package/fesm2022/angular-fire-database.mjs +8 -8
  46. package/fesm2022/angular-fire-database.mjs.map +1 -1
  47. package/fesm2022/angular-fire-firestore-lite.mjs +11 -10
  48. package/fesm2022/angular-fire-firestore-lite.mjs.map +1 -1
  49. package/fesm2022/angular-fire-firestore.mjs +14 -13
  50. package/fesm2022/angular-fire-firestore.mjs.map +1 -1
  51. package/fesm2022/angular-fire-functions.mjs +4 -4
  52. package/fesm2022/angular-fire-functions.mjs.map +1 -1
  53. package/fesm2022/angular-fire-messaging.mjs +4 -4
  54. package/fesm2022/angular-fire-messaging.mjs.map +1 -1
  55. package/fesm2022/angular-fire-performance.mjs +6 -6
  56. package/fesm2022/angular-fire-performance.mjs.map +1 -1
  57. package/fesm2022/angular-fire-remote-config.mjs +9 -9
  58. package/fesm2022/angular-fire-remote-config.mjs.map +1 -1
  59. package/fesm2022/angular-fire-storage.mjs +4 -4
  60. package/fesm2022/angular-fire-storage.mjs.map +1 -1
  61. package/fesm2022/{angular-fire-vertexai-preview.mjs → angular-fire-vertexai.mjs} +8 -8
  62. package/fesm2022/angular-fire-vertexai.mjs.map +1 -0
  63. package/fesm2022/angular-fire.mjs +37 -57
  64. package/fesm2022/angular-fire.mjs.map +1 -1
  65. package/firestore/firebase.d.ts +2 -1
  66. package/firestore/lite/firebase.d.ts +2 -1
  67. package/firestore/lite/rxfire.d.ts +4 -4
  68. package/firestore/rxfire.d.ts +7 -7
  69. package/package.json +16 -75
  70. package/performance/rxfire.d.ts +2 -2
  71. package/publish.sh +1 -0
  72. package/remote-config/rxfire.d.ts +5 -5
  73. package/schematics/add/index.js +1 -13
  74. package/schematics/deploy/actions.js +138 -394
  75. package/schematics/deploy/builder.js +139 -61
  76. package/schematics/setup/index.js +94 -64
  77. package/schematics/update/index.js +1 -7
  78. package/schematics/update/v7/index.js +1 -67
  79. package/schematics/versions.json +2 -3
  80. package/vertexai/firebase.d.ts +4 -0
  81. package/{vertexai-preview → vertexai}/index.d.ts +1 -1
  82. package/vertexai/package.json +3 -0
  83. package/{vertexai-preview → vertexai}/vertexai.d.ts +1 -1
  84. package/{vertexai-preview → vertexai}/vertexai.module.d.ts +1 -1
  85. package/zones.d.ts +3 -2
  86. package/esm2022/analytics/analytics.mjs +0 -16
  87. package/esm2022/analytics/analytics.module.mjs +0 -101
  88. package/esm2022/analytics/angular-fire-analytics.mjs +0 -5
  89. package/esm2022/analytics/firebase.mjs +0 -17
  90. package/esm2022/analytics/is-analytics-supported-factory.mjs +0 -16
  91. package/esm2022/analytics/overrides.mjs +0 -3
  92. package/esm2022/analytics/public_api.mjs +0 -6
  93. package/esm2022/analytics/screen-tracking.service.mjs +0 -148
  94. package/esm2022/analytics/user-tracking.service.mjs +0 -44
  95. package/esm2022/angular-fire.mjs +0 -5
  96. package/esm2022/app/angular-fire-app.mjs +0 -5
  97. package/esm2022/app/app.mjs +0 -15
  98. package/esm2022/app/app.module.mjs +0 -91
  99. package/esm2022/app/firebase.mjs +0 -13
  100. package/esm2022/app/public_api.mjs +0 -4
  101. package/esm2022/app-check/angular-fire-app-check.mjs +0 -5
  102. package/esm2022/app-check/app-check.mjs +0 -10
  103. package/esm2022/app-check/app-check.module.mjs +0 -80
  104. package/esm2022/app-check/firebase.mjs +0 -10
  105. package/esm2022/app-check/public_api.mjs +0 -5
  106. package/esm2022/auth/angular-fire-auth.mjs +0 -5
  107. package/esm2022/auth/auth.mjs +0 -16
  108. package/esm2022/auth/auth.module.mjs +0 -73
  109. package/esm2022/auth/firebase.mjs +0 -59
  110. package/esm2022/auth/public_api.mjs +0 -5
  111. package/esm2022/auth/rxfire.mjs +0 -7
  112. package/esm2022/auth-guard/angular-fire-auth-guard.mjs +0 -5
  113. package/esm2022/auth-guard/auth-guard.mjs +0 -53
  114. package/esm2022/auth-guard/auth-guard.module.mjs +0 -20
  115. package/esm2022/auth-guard/public_api.mjs +0 -3
  116. package/esm2022/compat/analytics/analytics.mjs +0 -160
  117. package/esm2022/compat/analytics/analytics.module.mjs +0 -35
  118. package/esm2022/compat/analytics/angular-fire-compat-analytics.mjs +0 -5
  119. package/esm2022/compat/analytics/base.mjs +0 -11
  120. package/esm2022/compat/analytics/public_api.mjs +0 -5
  121. package/esm2022/compat/analytics/screen-tracking.service.mjs +0 -49
  122. package/esm2022/compat/analytics/user-tracking.service.mjs +0 -53
  123. package/esm2022/compat/angular-fire-compat.mjs +0 -5
  124. package/esm2022/compat/auth/angular-fire-compat-auth.mjs +0 -5
  125. package/esm2022/compat/auth/auth.mjs +0 -161
  126. package/esm2022/compat/auth/auth.module.mjs +0 -20
  127. package/esm2022/compat/auth/base.mjs +0 -39
  128. package/esm2022/compat/auth/public_api.mjs +0 -4
  129. package/esm2022/compat/auth-guard/angular-fire-compat-auth-guard.mjs +0 -5
  130. package/esm2022/compat/auth-guard/auth-guard.mjs +0 -53
  131. package/esm2022/compat/auth-guard/auth-guard.module.mjs +0 -20
  132. package/esm2022/compat/auth-guard/public_api.mjs +0 -3
  133. package/esm2022/compat/cache.mjs +0 -33
  134. package/esm2022/compat/database/angular-fire-compat-database.mjs +0 -5
  135. package/esm2022/compat/database/database.mjs +0 -119
  136. package/esm2022/compat/database/database.module.mjs +0 -20
  137. package/esm2022/compat/database/interfaces.mjs +0 -2
  138. package/esm2022/compat/database/list/audit-trail.mjs +0 -47
  139. package/esm2022/compat/database/list/changes.mjs +0 -85
  140. package/esm2022/compat/database/list/create-reference.mjs +0 -44
  141. package/esm2022/compat/database/list/data-operation.mjs +0 -11
  142. package/esm2022/compat/database/list/remove.mjs +0 -16
  143. package/esm2022/compat/database/list/snapshot-changes.mjs +0 -7
  144. package/esm2022/compat/database/list/state-changes.mjs +0 -9
  145. package/esm2022/compat/database/list/utils.mjs +0 -8
  146. package/esm2022/compat/database/object/create-reference.mjs +0 -19
  147. package/esm2022/compat/database/object/snapshot-changes.mjs +0 -7
  148. package/esm2022/compat/database/observable/fromRef.mjs +0 -48
  149. package/esm2022/compat/database/public_api.mjs +0 -9
  150. package/esm2022/compat/database/utils.mjs +0 -36
  151. package/esm2022/compat/firebase.app.mjs +0 -6
  152. package/esm2022/compat/firebase.app.module.mjs +0 -71
  153. package/esm2022/compat/firestore/angular-fire-compat-firestore.mjs +0 -5
  154. package/esm2022/compat/firestore/collection/changes.mjs +0 -108
  155. package/esm2022/compat/firestore/collection/collection.mjs +0 -123
  156. package/esm2022/compat/firestore/collection-group/collection-group.mjs +0 -86
  157. package/esm2022/compat/firestore/document/document.mjs +0 -87
  158. package/esm2022/compat/firestore/firestore.mjs +0 -257
  159. package/esm2022/compat/firestore/firestore.module.mjs +0 -32
  160. package/esm2022/compat/firestore/interfaces.mjs +0 -2
  161. package/esm2022/compat/firestore/observable/fromRef.mjs +0 -40
  162. package/esm2022/compat/firestore/public_api.mjs +0 -9
  163. package/esm2022/compat/functions/angular-fire-compat-functions.mjs +0 -5
  164. package/esm2022/compat/functions/base.mjs +0 -8
  165. package/esm2022/compat/functions/functions.mjs +0 -69
  166. package/esm2022/compat/functions/functions.module.mjs +0 -20
  167. package/esm2022/compat/functions/public_api.mjs +0 -4
  168. package/esm2022/compat/messaging/angular-fire-compat-messaging.mjs +0 -5
  169. package/esm2022/compat/messaging/base.mjs +0 -9
  170. package/esm2022/compat/messaging/messaging.mjs +0 -81
  171. package/esm2022/compat/messaging/messaging.module.mjs +0 -20
  172. package/esm2022/compat/messaging/public_api.mjs +0 -3
  173. package/esm2022/compat/performance/angular-fire-compat-performance.mjs +0 -5
  174. package/esm2022/compat/performance/base.mjs +0 -9
  175. package/esm2022/compat/performance/performance.mjs +0 -105
  176. package/esm2022/compat/performance/performance.module.mjs +0 -27
  177. package/esm2022/compat/performance/performance.service.mjs +0 -28
  178. package/esm2022/compat/performance/public_api.mjs +0 -4
  179. package/esm2022/compat/proxy.mjs +0 -58
  180. package/esm2022/compat/public_api.mjs +0 -5
  181. package/esm2022/compat/remote-config/angular-fire-compat-remote-config.mjs +0 -5
  182. package/esm2022/compat/remote-config/base.mjs +0 -20
  183. package/esm2022/compat/remote-config/interfaces.mjs +0 -2
  184. package/esm2022/compat/remote-config/public_api.mjs +0 -3
  185. package/esm2022/compat/remote-config/remote-config.mjs +0 -206
  186. package/esm2022/compat/remote-config/remote-config.module.mjs +0 -20
  187. package/esm2022/compat/storage/angular-fire-compat-storage.mjs +0 -5
  188. package/esm2022/compat/storage/interfaces.mjs +0 -2
  189. package/esm2022/compat/storage/observable/fromTask.mjs +0 -36
  190. package/esm2022/compat/storage/pipes/storageUrl.pipe.mjs +0 -56
  191. package/esm2022/compat/storage/public_api.mjs +0 -7
  192. package/esm2022/compat/storage/ref.mjs +0 -28
  193. package/esm2022/compat/storage/storage.mjs +0 -95
  194. package/esm2022/compat/storage/storage.module.mjs +0 -22
  195. package/esm2022/compat/storage/task.mjs +0 -21
  196. package/esm2022/core.mjs +0 -43
  197. package/esm2022/database/angular-fire-database.mjs +0 -5
  198. package/esm2022/database/database.mjs +0 -16
  199. package/esm2022/database/database.module.mjs +0 -76
  200. package/esm2022/database/firebase.mjs +0 -44
  201. package/esm2022/database/public_api.mjs +0 -5
  202. package/esm2022/database/rxfire.mjs +0 -13
  203. package/esm2022/firestore/angular-fire-firestore.mjs +0 -5
  204. package/esm2022/firestore/firebase.mjs +0 -73
  205. package/esm2022/firestore/firestore.mjs +0 -16
  206. package/esm2022/firestore/firestore.module.mjs +0 -76
  207. package/esm2022/firestore/lite/angular-fire-firestore-lite.mjs +0 -5
  208. package/esm2022/firestore/lite/firebase.mjs +0 -48
  209. package/esm2022/firestore/lite/lite.mjs +0 -16
  210. package/esm2022/firestore/lite/lite.module.mjs +0 -75
  211. package/esm2022/firestore/lite/public_api.mjs +0 -5
  212. package/esm2022/firestore/lite/rxfire.mjs +0 -12
  213. package/esm2022/firestore/public_api.mjs +0 -5
  214. package/esm2022/firestore/rxfire.mjs +0 -15
  215. package/esm2022/functions/angular-fire-functions.mjs +0 -5
  216. package/esm2022/functions/firebase.mjs +0 -9
  217. package/esm2022/functions/functions.mjs +0 -16
  218. package/esm2022/functions/functions.module.mjs +0 -76
  219. package/esm2022/functions/public_api.mjs +0 -5
  220. package/esm2022/functions/rxfire.mjs +0 -5
  221. package/esm2022/messaging/angular-fire-messaging.mjs +0 -5
  222. package/esm2022/messaging/firebase.mjs +0 -10
  223. package/esm2022/messaging/is-messaging-supported-factory.mjs +0 -16
  224. package/esm2022/messaging/messaging.mjs +0 -16
  225. package/esm2022/messaging/messaging.module.mjs +0 -93
  226. package/esm2022/messaging/overrides.mjs +0 -3
  227. package/esm2022/messaging/public_api.mjs +0 -4
  228. package/esm2022/performance/angular-fire-performance.mjs +0 -5
  229. package/esm2022/performance/firebase.mjs +0 -8
  230. package/esm2022/performance/performance.mjs +0 -16
  231. package/esm2022/performance/performance.module.mjs +0 -83
  232. package/esm2022/performance/public_api.mjs +0 -5
  233. package/esm2022/performance/rxfire.mjs +0 -8
  234. package/esm2022/public_api.mjs +0 -3
  235. package/esm2022/remote-config/angular-fire-remote-config.mjs +0 -5
  236. package/esm2022/remote-config/firebase.mjs +0 -17
  237. package/esm2022/remote-config/is-remote-config-supported-factory.mjs +0 -16
  238. package/esm2022/remote-config/overrides.mjs +0 -3
  239. package/esm2022/remote-config/public_api.mjs +0 -5
  240. package/esm2022/remote-config/remote-config.mjs +0 -16
  241. package/esm2022/remote-config/remote-config.module.mjs +0 -93
  242. package/esm2022/remote-config/rxfire.mjs +0 -9
  243. package/esm2022/storage/angular-fire-storage.mjs +0 -5
  244. package/esm2022/storage/firebase.mjs +0 -20
  245. package/esm2022/storage/public_api.mjs +0 -5
  246. package/esm2022/storage/rxfire.mjs +0 -6
  247. package/esm2022/storage/storage.mjs +0 -16
  248. package/esm2022/storage/storage.module.mjs +0 -76
  249. package/esm2022/vertexai-preview/angular-fire-vertexai-preview.mjs +0 -5
  250. package/esm2022/vertexai-preview/firebase.mjs +0 -7
  251. package/esm2022/vertexai-preview/public_api.mjs +0 -4
  252. package/esm2022/vertexai-preview/vertexai.mjs +0 -16
  253. package/esm2022/vertexai-preview/vertexai.module.mjs +0 -73
  254. package/esm2022/zones.mjs +0 -194
  255. package/fesm2022/angular-fire-vertexai-preview.mjs.map +0 -1
  256. package/schematics/common.js +0 -81
  257. package/schematics/deploy/functions-templates.js +0 -57
  258. package/schematics/firebaseTools.js +0 -78
  259. package/schematics/interfaces.js +0 -16
  260. package/schematics/setup/prompts.js +0 -195
  261. package/schematics/utils.js +0 -189
  262. package/vertexai-preview/firebase.d.ts +0 -4
  263. package/vertexai-preview/package.json +0 -3
  264. /package/{vertexai-preview → vertexai}/public_api.d.ts +0 -0
@@ -1,47 +0,0 @@
1
- import { map, scan, skipWhile, withLatestFrom } from 'rxjs/operators';
2
- import { fromRef } from '../observable/fromRef';
3
- import { stateChanges } from './state-changes';
4
- export function auditTrail(query, events, scheduler) {
5
- const auditTrail$ = stateChanges(query, events)
6
- .pipe(scan((current, action) => [...current, action], []));
7
- return waitForLoaded(query, auditTrail$, scheduler);
8
- }
9
- function loadedData(query, scheduler) {
10
- // Create an observable of loaded values to retrieve the
11
- // known dataset. This will allow us to know what key to
12
- // emit the "whole" array at when listening for child events.
13
- return fromRef(query, 'value', 'on', scheduler)
14
- .pipe(map(data => {
15
- // Store the last key in the data set
16
- let lastKeyToLoad;
17
- // Loop through loaded dataset to find the last key
18
- data.payload.forEach(child => {
19
- lastKeyToLoad = child.key;
20
- return false;
21
- });
22
- // return data set and the current last key loaded
23
- return { data, lastKeyToLoad };
24
- }));
25
- }
26
- function waitForLoaded(query, action$, scheduler) {
27
- const loaded$ = loadedData(query, scheduler);
28
- return loaded$
29
- .pipe(withLatestFrom(action$),
30
- // Get the latest values from the "loaded" and "child" datasets
31
- // We can use both datasets to form an array of the latest values.
32
- map(([loaded, actions]) => {
33
- // Store the last key in the data set
34
- const lastKeyToLoad = loaded.lastKeyToLoad;
35
- // Store all child keys loaded at this point
36
- const loadedKeys = actions.map(snap => snap.key);
37
- return { actions, lastKeyToLoad, loadedKeys };
38
- }),
39
- // This is the magical part, only emit when the last load key
40
- // in the dataset has been loaded by a child event. At this point
41
- // we can assume the dataset is "whole".
42
- skipWhile(meta => meta.loadedKeys.indexOf(meta.lastKeyToLoad) === -1),
43
- // Pluck off the meta data because the user only cares
44
- // to iterate through the snapshots
45
- map(meta => meta.actions));
46
- }
47
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXVkaXQtdHJhaWwuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvY29tcGF0L2RhdGFiYXNlL2xpc3QvYXVkaXQtdHJhaWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFFLEdBQUcsRUFBRSxJQUFJLEVBQUUsU0FBUyxFQUFFLGNBQWMsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRXRFLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUNoRCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFHL0MsTUFBTSxVQUFVLFVBQVUsQ0FBSSxLQUFvQixFQUFFLE1BQXFCLEVBQUUsU0FBeUI7SUFDbEcsTUFBTSxXQUFXLEdBQUcsWUFBWSxDQUFJLEtBQUssRUFBRSxNQUFNLENBQUM7U0FDL0MsSUFBSSxDQUNILElBQUksQ0FBQyxDQUFDLE9BQU8sRUFBRSxNQUFNLEVBQUUsRUFBRSxDQUFDLENBQUMsR0FBRyxPQUFPLEVBQUUsTUFBTSxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQ3BELENBQUM7SUFDSixPQUFPLGFBQWEsQ0FBSSxLQUFLLEVBQUUsV0FBVyxFQUFFLFNBQVMsQ0FBQyxDQUFDO0FBQ3pELENBQUM7QUFPRCxTQUFTLFVBQVUsQ0FBSSxLQUFvQixFQUFFLFNBQXlCO0lBQ3BFLHdEQUF3RDtJQUN4RCx3REFBd0Q7SUFDeEQsNkRBQTZEO0lBQzdELE9BQU8sT0FBTyxDQUFJLEtBQUssRUFBRSxPQUFPLEVBQUUsSUFBSSxFQUFFLFNBQVMsQ0FBQztTQUNqRCxJQUFJLENBQ0gsR0FBRyxDQUFDLElBQUksQ0FBQyxFQUFFO1FBQ1QscUNBQXFDO1FBQ3JDLElBQUksYUFBYSxDQUFDO1FBQ2xCLG1EQUFtRDtRQUNuRCxJQUFJLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsRUFBRTtZQUMzQixhQUFhLEdBQUcsS0FBSyxDQUFDLEdBQUcsQ0FBQztZQUFDLE9BQU8sS0FBSyxDQUFDO1FBQzFDLENBQUMsQ0FBQyxDQUFDO1FBQ0gsa0RBQWtEO1FBQ2xELE9BQU8sRUFBRSxJQUFJLEVBQUUsYUFBYSxFQUFFLENBQUM7SUFDakMsQ0FBQyxDQUFDLENBQ0gsQ0FBQztBQUNKLENBQUM7QUFFRCxTQUFTLGFBQWEsQ0FBSSxLQUFvQixFQUFFLE9BQXdDLEVBQUUsU0FBeUI7SUFDakgsTUFBTSxPQUFPLEdBQUcsVUFBVSxDQUFJLEtBQUssRUFBRSxTQUFTLENBQUMsQ0FBQztJQUNoRCxPQUFPLE9BQU87U0FDWCxJQUFJLENBQ0gsY0FBYyxDQUFDLE9BQU8sQ0FBQztJQUN2QiwrREFBK0Q7SUFDL0Qsa0VBQWtFO0lBQ2xFLEdBQUcsQ0FBQyxDQUFDLENBQUMsTUFBTSxFQUFFLE9BQU8sQ0FBQyxFQUFFLEVBQUU7UUFDeEIscUNBQXFDO1FBQ3JDLE1BQU0sYUFBYSxHQUFHLE1BQU0sQ0FBQyxhQUFhLENBQUM7UUFDM0MsNENBQTRDO1FBQzVDLE1BQU0sVUFBVSxHQUFHLE9BQU8sQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDakQsT0FBTyxFQUFFLE9BQU8sRUFBRSxhQUFhLEVBQUUsVUFBVSxFQUFFLENBQUM7SUFDaEQsQ0FBQyxDQUFDO0lBQ0YsNkRBQTZEO0lBQzdELGlFQUFpRTtJQUNqRSx3Q0FBd0M7SUFDeEMsU0FBUyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDO0lBQ3JFLHNEQUFzRDtJQUN0RCxtQ0FBbUM7SUFDbkMsR0FBRyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUMxQixDQUFDO0FBQ04sQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE9ic2VydmFibGUsIFNjaGVkdWxlckxpa2UgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IG1hcCwgc2Nhbiwgc2tpcFdoaWxlLCB3aXRoTGF0ZXN0RnJvbSB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7IEFuZ3VsYXJGaXJlQWN0aW9uLCBDaGlsZEV2ZW50LCBEYXRhU25hcHNob3QsIERhdGFiYXNlUXVlcnksIFNuYXBzaG90QWN0aW9uIH0gZnJvbSAnLi4vaW50ZXJmYWNlcyc7XG5pbXBvcnQgeyBmcm9tUmVmIH0gZnJvbSAnLi4vb2JzZXJ2YWJsZS9mcm9tUmVmJztcbmltcG9ydCB7IHN0YXRlQ2hhbmdlcyB9IGZyb20gJy4vc3RhdGUtY2hhbmdlcyc7XG5cblxuZXhwb3J0IGZ1bmN0aW9uIGF1ZGl0VHJhaWw8VD4ocXVlcnk6IERhdGFiYXNlUXVlcnksIGV2ZW50cz86IENoaWxkRXZlbnRbXSwgc2NoZWR1bGVyPzogU2NoZWR1bGVyTGlrZSk6IE9ic2VydmFibGU8U25hcHNob3RBY3Rpb248VD5bXT4ge1xuICBjb25zdCBhdWRpdFRyYWlsJCA9IHN0YXRlQ2hhbmdlczxUPihxdWVyeSwgZXZlbnRzKVxuICAgIC5waXBlKFxuICAgICAgc2NhbigoY3VycmVudCwgYWN0aW9uKSA9PiBbLi4uY3VycmVudCwgYWN0aW9uXSwgW10pXG4gICAgKTtcbiAgcmV0dXJuIHdhaXRGb3JMb2FkZWQ8VD4ocXVlcnksIGF1ZGl0VHJhaWwkLCBzY2hlZHVsZXIpO1xufVxuXG5pbnRlcmZhY2UgTG9hZGVkTWV0YWRhdGEge1xuICBkYXRhOiBBbmd1bGFyRmlyZUFjdGlvbjxEYXRhU25hcHNob3Q+O1xuICBsYXN0S2V5VG9Mb2FkOiBhbnk7XG59XG5cbmZ1bmN0aW9uIGxvYWRlZERhdGE8VD4ocXVlcnk6IERhdGFiYXNlUXVlcnksIHNjaGVkdWxlcj86IFNjaGVkdWxlckxpa2UpOiBPYnNlcnZhYmxlPExvYWRlZE1ldGFkYXRhPiB7XG4gIC8vIENyZWF0ZSBhbiBvYnNlcnZhYmxlIG9mIGxvYWRlZCB2YWx1ZXMgdG8gcmV0cmlldmUgdGhlXG4gIC8vIGtub3duIGRhdGFzZXQuIFRoaXMgd2lsbCBhbGxvdyB1cyB0byBrbm93IHdoYXQga2V5IHRvXG4gIC8vIGVtaXQgdGhlIFwid2hvbGVcIiBhcnJheSBhdCB3aGVuIGxpc3RlbmluZyBmb3IgY2hpbGQgZXZlbnRzLlxuICByZXR1cm4gZnJvbVJlZjxUPihxdWVyeSwgJ3ZhbHVlJywgJ29uJywgc2NoZWR1bGVyKVxuICAucGlwZShcbiAgICBtYXAoZGF0YSA9PiB7XG4gICAgICAvLyBTdG9yZSB0aGUgbGFzdCBrZXkgaW4gdGhlIGRhdGEgc2V0XG4gICAgICBsZXQgbGFzdEtleVRvTG9hZDtcbiAgICAgIC8vIExvb3AgdGhyb3VnaCBsb2FkZWQgZGF0YXNldCB0byBmaW5kIHRoZSBsYXN0IGtleVxuICAgICAgZGF0YS5wYXlsb2FkLmZvckVhY2goY2hpbGQgPT4ge1xuICAgICAgICBsYXN0S2V5VG9Mb2FkID0gY2hpbGQua2V5OyByZXR1cm4gZmFsc2U7XG4gICAgICB9KTtcbiAgICAgIC8vIHJldHVybiBkYXRhIHNldCBhbmQgdGhlIGN1cnJlbnQgbGFzdCBrZXkgbG9hZGVkXG4gICAgICByZXR1cm4geyBkYXRhLCBsYXN0S2V5VG9Mb2FkIH07XG4gICAgfSlcbiAgKTtcbn1cblxuZnVuY3Rpb24gd2FpdEZvckxvYWRlZDxUPihxdWVyeTogRGF0YWJhc2VRdWVyeSwgYWN0aW9uJDogT2JzZXJ2YWJsZTxTbmFwc2hvdEFjdGlvbjxUPltdPiwgc2NoZWR1bGVyPzogU2NoZWR1bGVyTGlrZSkge1xuICBjb25zdCBsb2FkZWQkID0gbG9hZGVkRGF0YTxUPihxdWVyeSwgc2NoZWR1bGVyKTtcbiAgcmV0dXJuIGxvYWRlZCRcbiAgICAucGlwZShcbiAgICAgIHdpdGhMYXRlc3RGcm9tKGFjdGlvbiQpLFxuICAgICAgLy8gR2V0IHRoZSBsYXRlc3QgdmFsdWVzIGZyb20gdGhlIFwibG9hZGVkXCIgYW5kIFwiY2hpbGRcIiBkYXRhc2V0c1xuICAgICAgLy8gV2UgY2FuIHVzZSBib3RoIGRhdGFzZXRzIHRvIGZvcm0gYW4gYXJyYXkgb2YgdGhlIGxhdGVzdCB2YWx1ZXMuXG4gICAgICBtYXAoKFtsb2FkZWQsIGFjdGlvbnNdKSA9PiB7XG4gICAgICAgIC8vIFN0b3JlIHRoZSBsYXN0IGtleSBpbiB0aGUgZGF0YSBzZXRcbiAgICAgICAgY29uc3QgbGFzdEtleVRvTG9hZCA9IGxvYWRlZC5sYXN0S2V5VG9Mb2FkO1xuICAgICAgICAvLyBTdG9yZSBhbGwgY2hpbGQga2V5cyBsb2FkZWQgYXQgdGhpcyBwb2ludFxuICAgICAgICBjb25zdCBsb2FkZWRLZXlzID0gYWN0aW9ucy5tYXAoc25hcCA9PiBzbmFwLmtleSk7XG4gICAgICAgIHJldHVybiB7IGFjdGlvbnMsIGxhc3RLZXlUb0xvYWQsIGxvYWRlZEtleXMgfTtcbiAgICAgIH0pLFxuICAgICAgLy8gVGhpcyBpcyB0aGUgbWFnaWNhbCBwYXJ0LCBvbmx5IGVtaXQgd2hlbiB0aGUgbGFzdCBsb2FkIGtleVxuICAgICAgLy8gaW4gdGhlIGRhdGFzZXQgaGFzIGJlZW4gbG9hZGVkIGJ5IGEgY2hpbGQgZXZlbnQuIEF0IHRoaXMgcG9pbnRcbiAgICAgIC8vIHdlIGNhbiBhc3N1bWUgdGhlIGRhdGFzZXQgaXMgXCJ3aG9sZVwiLlxuICAgICAgc2tpcFdoaWxlKG1ldGEgPT4gbWV0YS5sb2FkZWRLZXlzLmluZGV4T2YobWV0YS5sYXN0S2V5VG9Mb2FkKSA9PT0gLTEpLFxuICAgICAgLy8gUGx1Y2sgb2ZmIHRoZSBtZXRhIGRhdGEgYmVjYXVzZSB0aGUgdXNlciBvbmx5IGNhcmVzXG4gICAgICAvLyB0byBpdGVyYXRlIHRocm91Z2ggdGhlIHNuYXBzaG90c1xuICAgICAgbWFwKG1ldGEgPT4gbWV0YS5hY3Rpb25zKVxuICAgICk7XG59XG4iXX0=
@@ -1,85 +0,0 @@
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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hhbmdlcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9jb21wYXQvZGF0YWJhc2UvbGlzdC9jaGFuZ2VzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBNkIsS0FBSyxFQUFFLEVBQUUsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUM1RCxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsSUFBSSxFQUFFLFNBQVMsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRXZFLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUNoRCxPQUFPLEVBQUUsS0FBSyxFQUFFLE1BQU0sVUFBVSxDQUFDO0FBR2pDLE1BQU0sVUFBVSxXQUFXLENBQVUsR0FBa0IsRUFBRSxNQUFvQixFQUFFLFNBQXlCO0lBQ3RHLE9BQU8sT0FBTyxDQUFDLEdBQUcsRUFBRSxPQUFPLEVBQUUsTUFBTSxFQUFFLFNBQVMsQ0FBQyxDQUFDLElBQUksQ0FDbEQsU0FBUyxDQUFDLGNBQWMsQ0FBQyxFQUFFO1FBQ3pCLE1BQU0sV0FBVyxHQUFHLENBQUMsRUFBRSxDQUFDLGNBQWMsQ0FBQyxDQUFDLENBQUM7UUFDekMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLEdBQUcsRUFBRSxLQUFLLEVBQUUsSUFBSSxFQUFFLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUNoRixPQUFPLEtBQUssQ0FBQyxHQUFHLFdBQVcsQ0FBQyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsU0FBUyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUM7SUFDekQsQ0FBQyxDQUFDLEVBQ0Ysb0JBQW9CLEVBQUUsQ0FDdkIsQ0FBQztBQUNKLENBQUM7QUFFRCxTQUFTLFdBQVcsQ0FBSSxPQUE0QixFQUFFLEdBQUc7SUFDdkQsTUFBTSxHQUFHLEdBQUcsT0FBTyxDQUFDLE1BQU0sQ0FBQztJQUMzQixLQUFLLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsR0FBRyxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUM7UUFDN0IsSUFBSSxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLEdBQUcsS0FBSyxHQUFHLEVBQUUsQ0FBQztZQUNuQyxPQUFPLENBQUMsQ0FBQztRQUNYLENBQUM7SUFDSCxDQUFDO0lBQ0QsT0FBTyxDQUFDLENBQUMsQ0FBQztBQUNaLENBQUM7QUFFRCxTQUFTLGFBQWEsQ0FBSSxPQUE0QixFQUFFLE9BQWdCO0lBQ3RFLElBQUksS0FBSyxDQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUM7UUFDbkIsT0FBTyxDQUFDLENBQUM7SUFDWCxDQUFDO1NBQU0sQ0FBQztRQUNOLE1BQU0sQ0FBQyxHQUFHLFdBQVcsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUM7UUFDeEMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLEVBQUUsQ0FBQztZQUNiLE9BQU8sT0FBTyxDQUFDLE1BQU0sQ0FBQztRQUN4QixDQUFDO2FBQU0sQ0FBQztZQUNOLE9BQU8sQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUNmLENBQUM7SUFDSCxDQUFDO0FBQ0gsQ0FBQztBQUVELFNBQVMsU0FBUyxDQUFDLE9BQU8sRUFBRSxNQUFNO0lBQ2hDLE1BQU0sRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLEdBQUcsRUFBRSxHQUFHLE1BQU0sQ0FBQztJQUN6QyxNQUFNLGtCQUFrQixHQUFHLFdBQVcsQ0FBQyxPQUFPLEVBQUUsR0FBRyxDQUFDLENBQUM7SUFDckQsTUFBTSx3QkFBd0IsR0FBRyxhQUFhLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDO0lBQ2pFLFFBQVEsTUFBTSxDQUFDLElBQUksRUFBRSxDQUFDO1FBQ3BCLEtBQUssT0FBTztZQUNWLElBQUksTUFBTSxDQUFDLE9BQU8sRUFBRSxNQUFNLEVBQUUsRUFBRSxDQUFDO2dCQUM3QixJQUFJLE9BQU8sR0FBRyxJQUFJLENBQUM7Z0JBQ25CLE1BQU0sQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxFQUFFO29CQUMvQixNQUFNLE1BQU0sR0FBRyxFQUFFLE9BQU8sRUFBRSxJQUFJLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxHQUFHLEVBQUUsT0FBTyxDQUFDLEdBQUcsRUFBRSxDQUFDO29CQUNyRSxPQUFPLEdBQUcsT0FBTyxDQUFDLEdBQUcsQ0FBQztvQkFDdEIsT0FBTyxHQUFHLENBQUMsR0FBRyxPQUFPLEVBQUUsTUFBTSxDQUFDLENBQUM7b0JBQy9CLE9BQU8sS0FBSyxDQUFDO2dCQUNmLENBQUMsQ0FBQyxDQUFDO1lBQ0wsQ0FBQztZQUNELE9BQU8sT0FBTyxDQUFDO1FBQ2pCLEtBQUssYUFBYTtZQUNoQixJQUFJLGtCQUFrQixHQUFHLENBQUMsQ0FBQyxFQUFFLENBQUM7Z0JBQzVCLDZEQUE2RDtnQkFDN0QsTUFBTSxRQUFRLEdBQUcsT0FBTyxDQUFDLGtCQUFrQixHQUFHLENBQUMsQ0FBQyxDQUFDO2dCQUNqRCxJQUFJLENBQUMsUUFBUSxFQUFFLEdBQUcsSUFBSSxJQUFJLENBQUMsS0FBSyxPQUFPLEVBQUUsQ0FBQztvQkFDeEMsT0FBTyxHQUFHLE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLEdBQUcsS0FBSyxPQUFPLENBQUMsR0FBRyxDQUFDLENBQUM7b0JBQzdELE9BQU8sQ0FBQyxNQUFNLENBQUMsd0JBQXdCLEVBQUUsQ0FBQyxFQUFFLE1BQU0sQ0FBQyxDQUFDO2dCQUN0RCxDQUFDO1lBQ0gsQ0FBQztpQkFBTSxJQUFJLE9BQU8sSUFBSSxJQUFJLEVBQUUsQ0FBQztnQkFDM0IsT0FBTyxDQUFDLE1BQU0sRUFBRSxHQUFHLE9BQU8sQ0FBQyxDQUFDO1lBQzlCLENBQUM7aUJBQU0sQ0FBQztnQkFDTixPQUFPLEdBQUcsT0FBTyxDQUFDLEtBQUssRUFBRSxDQUFDO2dCQUMxQixPQUFPLENBQUMsTUFBTSxDQUFDLHdCQUF3QixFQUFFLENBQUMsRUFBRSxNQUFNLENBQUMsQ0FBQztZQUN0RCxDQUFDO1lBQ0QsT0FBTyxPQUFPLENBQUM7UUFDakIsS0FBSyxlQUFlO1lBQ2xCLE9BQU8sT0FBTyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsR0FBRyxLQUFLLE9BQU8sQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUM1RCxLQUFLLGVBQWU7WUFDbEIsT0FBTyxPQUFPLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxHQUFHLEtBQUssR0FBRyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQzlELEtBQUssYUFBYTtZQUNoQixJQUFJLGtCQUFrQixHQUFHLENBQUMsQ0FBQyxFQUFFLENBQUM7Z0JBQzVCLE1BQU0sSUFBSSxHQUFHLE9BQU8sQ0FBQyxNQUFNLENBQUMsa0JBQWtCLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7Z0JBQ3RELE9BQU8sR0FBRyxPQUFPLENBQUMsS0FBSyxFQUFFLENBQUM7Z0JBQzFCLE9BQU8sQ0FBQyxNQUFNLENBQUMsd0JBQXdCLEVBQUUsQ0FBQyxFQUFFLElBQUksQ0FBQyxDQUFDO2dCQUNsRCxPQUFPLE9BQU8sQ0FBQztZQUNqQixDQUFDO1lBQ0QsT0FBTyxPQUFPLENBQUM7UUFDakIsd0NBQXdDO1FBQ3hDO1lBQ0UsT0FBTyxPQUFPLENBQUM7SUFDbkIsQ0FBQztBQUNILENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBPYnNlcnZhYmxlLCBTY2hlZHVsZXJMaWtlLCBtZXJnZSwgb2YgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IGRpc3RpbmN0VW50aWxDaGFuZ2VkLCBzY2FuLCBzd2l0Y2hNYXAgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQgeyBDaGlsZEV2ZW50LCBEYXRhYmFzZVF1ZXJ5LCBTbmFwc2hvdEFjdGlvbiB9IGZyb20gJy4uL2ludGVyZmFjZXMnO1xuaW1wb3J0IHsgZnJvbVJlZiB9IGZyb20gJy4uL29ic2VydmFibGUvZnJvbVJlZic7XG5pbXBvcnQgeyBpc05pbCB9IGZyb20gJy4uL3V0aWxzJztcblxuXG5leHBvcnQgZnVuY3Rpb24gbGlzdENoYW5nZXM8VCA9IGFueT4ocmVmOiBEYXRhYmFzZVF1ZXJ5LCBldmVudHM6IENoaWxkRXZlbnRbXSwgc2NoZWR1bGVyPzogU2NoZWR1bGVyTGlrZSk6IE9ic2VydmFibGU8U25hcHNob3RBY3Rpb248VD5bXT4ge1xuICByZXR1cm4gZnJvbVJlZihyZWYsICd2YWx1ZScsICdvbmNlJywgc2NoZWR1bGVyKS5waXBlKFxuICAgIHN3aXRjaE1hcChzbmFwc2hvdEFjdGlvbiA9PiB7XG4gICAgICBjb25zdCBjaGlsZEV2ZW50JCA9IFtvZihzbmFwc2hvdEFjdGlvbildO1xuICAgICAgZXZlbnRzLmZvckVhY2goZXZlbnQgPT4gY2hpbGRFdmVudCQucHVzaChmcm9tUmVmKHJlZiwgZXZlbnQsICdvbicsIHNjaGVkdWxlcikpKTtcbiAgICAgIHJldHVybiBtZXJnZSguLi5jaGlsZEV2ZW50JCkucGlwZShzY2FuKGJ1aWxkVmlldywgW10pKTtcbiAgICB9KSxcbiAgICBkaXN0aW5jdFVudGlsQ2hhbmdlZCgpXG4gICk7XG59XG5cbmZ1bmN0aW9uIHBvc2l0aW9uRm9yPFQ+KGNoYW5nZXM6IFNuYXBzaG90QWN0aW9uPFQ+W10sIGtleSkge1xuICBjb25zdCBsZW4gPSBjaGFuZ2VzLmxlbmd0aDtcbiAgZm9yIChsZXQgaSA9IDA7IGkgPCBsZW47IGkrKykge1xuICAgIGlmIChjaGFuZ2VzW2ldLnBheWxvYWQua2V5ID09PSBrZXkpIHtcbiAgICAgIHJldHVybiBpO1xuICAgIH1cbiAgfVxuICByZXR1cm4gLTE7XG59XG5cbmZ1bmN0aW9uIHBvc2l0aW9uQWZ0ZXI8VD4oY2hhbmdlczogU25hcHNob3RBY3Rpb248VD5bXSwgcHJldktleT86IHN0cmluZykge1xuICBpZiAoaXNOaWwocHJldktleSkpIHtcbiAgICByZXR1cm4gMDtcbiAgfSBlbHNlIHtcbiAgICBjb25zdCBpID0gcG9zaXRpb25Gb3IoY2hhbmdlcywgcHJldktleSk7XG4gICAgaWYgKGkgPT09IC0xKSB7XG4gICAgICByZXR1cm4gY2hhbmdlcy5sZW5ndGg7XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiBpICsgMTtcbiAgICB9XG4gIH1cbn1cblxuZnVuY3Rpb24gYnVpbGRWaWV3KGN1cnJlbnQsIGFjdGlvbikge1xuICBjb25zdCB7IHBheWxvYWQsIHByZXZLZXksIGtleSB9ID0gYWN0aW9uO1xuICBjb25zdCBjdXJyZW50S2V5UG9zaXRpb24gPSBwb3NpdGlvbkZvcihjdXJyZW50LCBrZXkpO1xuICBjb25zdCBhZnRlclByZXZpb3VzS2V5UG9zaXRpb24gPSBwb3NpdGlvbkFmdGVyKGN1cnJlbnQsIHByZXZLZXkpO1xuICBzd2l0Y2ggKGFjdGlvbi50eXBlKSB7XG4gICAgY2FzZSAndmFsdWUnOlxuICAgICAgaWYgKGFjdGlvbi5wYXlsb2FkPy5leGlzdHMoKSkge1xuICAgICAgICBsZXQgcHJldktleSA9IG51bGw7XG4gICAgICAgIGFjdGlvbi5wYXlsb2FkLmZvckVhY2gocGF5bG9hZCA9PiB7XG4gICAgICAgICAgY29uc3QgYWN0aW9uID0geyBwYXlsb2FkLCB0eXBlOiAndmFsdWUnLCBwcmV2S2V5LCBrZXk6IHBheWxvYWQua2V5IH07XG4gICAgICAgICAgcHJldktleSA9IHBheWxvYWQua2V5O1xuICAgICAgICAgIGN1cnJlbnQgPSBbLi4uY3VycmVudCwgYWN0aW9uXTtcbiAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgIH0pO1xuICAgICAgfVxuICAgICAgcmV0dXJuIGN1cnJlbnQ7XG4gICAgY2FzZSAnY2hpbGRfYWRkZWQnOlxuICAgICAgaWYgKGN1cnJlbnRLZXlQb3NpdGlvbiA+IC0xKSB7XG4gICAgICAgIC8vIGNoZWNrIHRoYXQgdGhlIHByZXZpb3Vza2V5IGlzIHdoYXQgd2UgZXhwZWN0LCBlbHNlIHJlb3JkZXJcbiAgICAgICAgY29uc3QgcHJldmlvdXMgPSBjdXJyZW50W2N1cnJlbnRLZXlQb3NpdGlvbiAtIDFdO1xuICAgICAgICBpZiAoKHByZXZpb3VzPy5rZXkgfHwgbnVsbCkgIT09IHByZXZLZXkpIHtcbiAgICAgICAgICBjdXJyZW50ID0gY3VycmVudC5maWx0ZXIoeCA9PiB4LnBheWxvYWQua2V5ICE9PSBwYXlsb2FkLmtleSk7XG4gICAgICAgICAgY3VycmVudC5zcGxpY2UoYWZ0ZXJQcmV2aW91c0tleVBvc2l0aW9uLCAwLCBhY3Rpb24pO1xuICAgICAgICB9XG4gICAgICB9IGVsc2UgaWYgKHByZXZLZXkgPT0gbnVsbCkge1xuICAgICAgICByZXR1cm4gW2FjdGlvbiwgLi4uY3VycmVudF07XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBjdXJyZW50ID0gY3VycmVudC5zbGljZSgpO1xuICAgICAgICBjdXJyZW50LnNwbGljZShhZnRlclByZXZpb3VzS2V5UG9zaXRpb24sIDAsIGFjdGlvbik7XG4gICAgICB9XG4gICAgICByZXR1cm4gY3VycmVudDtcbiAgICBjYXNlICdjaGlsZF9yZW1vdmVkJzpcbiAgICAgIHJldHVybiBjdXJyZW50LmZpbHRlcih4ID0+IHgucGF5bG9hZC5rZXkgIT09IHBheWxvYWQua2V5KTtcbiAgICBjYXNlICdjaGlsZF9jaGFuZ2VkJzpcbiAgICAgIHJldHVybiBjdXJyZW50Lm1hcCh4ID0+IHgucGF5bG9hZC5rZXkgPT09IGtleSA/IGFjdGlvbiA6IHgpO1xuICAgIGNhc2UgJ2NoaWxkX21vdmVkJzpcbiAgICAgIGlmIChjdXJyZW50S2V5UG9zaXRpb24gPiAtMSkge1xuICAgICAgICBjb25zdCBkYXRhID0gY3VycmVudC5zcGxpY2UoY3VycmVudEtleVBvc2l0aW9uLCAxKVswXTtcbiAgICAgICAgY3VycmVudCA9IGN1cnJlbnQuc2xpY2UoKTtcbiAgICAgICAgY3VycmVudC5zcGxpY2UoYWZ0ZXJQcmV2aW91c0tleVBvc2l0aW9uLCAwLCBkYXRhKTtcbiAgICAgICAgcmV0dXJuIGN1cnJlbnQ7XG4gICAgICB9XG4gICAgICByZXR1cm4gY3VycmVudDtcbiAgICAvLyBkZWZhdWx0IHdpbGwgYWxzbyByZW1vdmUgbnVsbCByZXN1bHRzXG4gICAgZGVmYXVsdDpcbiAgICAgIHJldHVybiBjdXJyZW50O1xuICB9XG59XG4iXX0=
@@ -1,44 +0,0 @@
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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3JlYXRlLXJlZmVyZW5jZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9jb21wYXQvZGF0YWJhc2UvbGlzdC9jcmVhdGUtcmVmZXJlbmNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUV2RCxPQUFPLEVBQUUsR0FBRyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFHckMsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzQyxPQUFPLEVBQUUseUJBQXlCLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUM3RCxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxVQUFVLENBQUM7QUFDOUMsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBQ3JELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUUvQyxNQUFNLFVBQVUsbUJBQW1CLENBQVMsS0FBb0IsRUFBRSxVQUErQjtJQUMvRixNQUFNLHVCQUF1QixHQUFHLFVBQVUsQ0FBQyxVQUFVLENBQUMsY0FBYyxDQUFDO0lBQ3JFLE1BQU0sU0FBUyxHQUFHLFVBQVUsQ0FBQyxVQUFVLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUM7SUFDcEUsT0FBTztRQUNMLEtBQUs7UUFDTCxNQUFNLEVBQUUseUJBQXlCLENBQUMsU0FBUyxFQUFFLFFBQVEsQ0FBQztRQUN0RCxHQUFHLEVBQUUseUJBQXlCLENBQUMsU0FBUyxFQUFFLEtBQUssQ0FBQztRQUNoRCxJQUFJLEVBQUUsQ0FBQyxJQUFPLEVBQUUsRUFBRSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDO1FBQ3ZDLE1BQU0sRUFBRSxrQkFBa0IsQ0FBQyxTQUFTLENBQUM7UUFDckMsZUFBZSxDQUFDLE1BQXFCO1lBQ25DLE9BQU8sZUFBZSxDQUFJLEtBQUssRUFBRSxNQUFNLEVBQUUsdUJBQXVCLENBQUMsQ0FBQyxJQUFJLENBQUMsc0JBQXNCLENBQUMsQ0FBQztRQUNqRyxDQUFDO1FBQ0QsWUFBWSxDQUFDLE1BQXFCO1lBQ2hDLE9BQU8sWUFBWSxDQUFJLEtBQUssRUFBRSxNQUFNLEVBQUUsdUJBQXVCLENBQUMsQ0FBQyxJQUFJLENBQUMsc0JBQXNCLENBQUMsQ0FBQztRQUM5RixDQUFDO1FBQ0QsVUFBVSxDQUFDLE1BQXFCO1lBQzlCLE9BQU8sVUFBVSxDQUFJLEtBQUssRUFBRSxNQUFNLEVBQUUsdUJBQXVCLENBQUMsQ0FBQyxJQUFJLENBQUMsc0JBQXNCLENBQUMsQ0FBQztRQUM1RixDQUFDO1FBQ0QsWUFBWSxDQUFtQixNQUFxQixFQUFFLE9BQXVCO1lBQzNFLE1BQU0sZ0JBQWdCLEdBQUcsZUFBZSxDQUFJLEtBQUssRUFBRSxNQUFNLEVBQUUsdUJBQXVCLENBQUMsQ0FBQztZQUNwRixPQUFPLGdCQUFnQixDQUFDLElBQUksQ0FDMUIsR0FBRyxDQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRTtnQkFDN0IsSUFBSSxPQUFPLElBQUksT0FBTyxDQUFDLE9BQU8sRUFBRSxDQUFDO29CQUMvQixPQUFPO3dCQUNMLEdBQUcsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxHQUFHLEVBQU87d0JBQ3ZCLEdBQUc7NEJBQ0QsQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEdBQUc7eUJBQ3pCO3FCQUNGLENBQUM7Z0JBQ0osQ0FBQztxQkFBTSxDQUFDO29CQUNOLE9BQU8sQ0FBQyxDQUFDLE9BQU8sQ0FBQyxHQUFHLEVBQWdDLENBQUE7Z0JBQ3RELENBQUM7WUFDSCxDQUFDLENBQUMsQ0FBQyxFQUNILHNCQUFzQixDQUN2QixDQUFDO1FBQ0osQ0FBQztLQUNGLENBQUM7QUFDSixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsga2VlcFVuc3RhYmxlVW50aWxGaXJzdCB9IGZyb20gJ0Bhbmd1bGFyL2ZpcmUnO1xuaW1wb3J0IHR5cGUgeyBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBtYXAgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQgeyBBbmd1bGFyRmlyZURhdGFiYXNlIH0gZnJvbSAnLi4vZGF0YWJhc2UnO1xuaW1wb3J0IHsgQW5ndWxhckZpcmVMaXN0LCBDaGlsZEV2ZW50LCBEYXRhYmFzZVF1ZXJ5IH0gZnJvbSAnLi4vaW50ZXJmYWNlcyc7XG5pbXBvcnQgeyBhdWRpdFRyYWlsIH0gZnJvbSAnLi9hdWRpdC10cmFpbCc7XG5pbXBvcnQgeyBjcmVhdGVEYXRhT3BlcmF0aW9uTWV0aG9kIH0gZnJvbSAnLi9kYXRhLW9wZXJhdGlvbic7XG5pbXBvcnQgeyBjcmVhdGVSZW1vdmVNZXRob2QgfSBmcm9tICcuL3JlbW92ZSc7XG5pbXBvcnQgeyBzbmFwc2hvdENoYW5nZXMgfSBmcm9tICcuL3NuYXBzaG90LWNoYW5nZXMnO1xuaW1wb3J0IHsgc3RhdGVDaGFuZ2VzIH0gZnJvbSAnLi9zdGF0ZS1jaGFuZ2VzJztcblxuZXhwb3J0IGZ1bmN0aW9uIGNyZWF0ZUxpc3RSZWZlcmVuY2U8VD0gYW55PihxdWVyeTogRGF0YWJhc2VRdWVyeSwgYWZEYXRhYmFzZTogQW5ndWxhckZpcmVEYXRhYmFzZSk6IEFuZ3VsYXJGaXJlTGlzdDxUPiB7XG4gIGNvbnN0IG91dHNpZGVBbmd1bGFyU2NoZWR1bGVyID0gYWZEYXRhYmFzZS5zY2hlZHVsZXJzLm91dHNpZGVBbmd1bGFyO1xuICBjb25zdCByZWZJblpvbmUgPSBhZkRhdGFiYXNlLnNjaGVkdWxlcnMubmdab25lLnJ1bigoKSA9PiBxdWVyeS5yZWYpO1xuICByZXR1cm4ge1xuICAgIHF1ZXJ5LFxuICAgIHVwZGF0ZTogY3JlYXRlRGF0YU9wZXJhdGlvbk1ldGhvZChyZWZJblpvbmUsICd1cGRhdGUnKSxcbiAgICBzZXQ6IGNyZWF0ZURhdGFPcGVyYXRpb25NZXRob2QocmVmSW5ab25lLCAnc2V0JyksXG4gICAgcHVzaDogKGRhdGE6IFQpID0+IHJlZkluWm9uZS5wdXNoKGRhdGEpLFxuICAgIHJlbW92ZTogY3JlYXRlUmVtb3ZlTWV0aG9kKHJlZkluWm9uZSksXG4gICAgc25hcHNob3RDaGFuZ2VzKGV2ZW50cz86IENoaWxkRXZlbnRbXSkge1xuICAgICAgcmV0dXJuIHNuYXBzaG90Q2hhbmdlczxUPihxdWVyeSwgZXZlbnRzLCBvdXRzaWRlQW5ndWxhclNjaGVkdWxlcikucGlwZShrZWVwVW5zdGFibGVVbnRpbEZpcnN0KTtcbiAgICB9LFxuICAgIHN0YXRlQ2hhbmdlcyhldmVudHM/OiBDaGlsZEV2ZW50W10pIHtcbiAgICAgIHJldHVybiBzdGF0ZUNoYW5nZXM8VD4ocXVlcnksIGV2ZW50cywgb3V0c2lkZUFuZ3VsYXJTY2hlZHVsZXIpLnBpcGUoa2VlcFVuc3RhYmxlVW50aWxGaXJzdCk7XG4gICAgfSxcbiAgICBhdWRpdFRyYWlsKGV2ZW50cz86IENoaWxkRXZlbnRbXSkge1xuICAgICAgcmV0dXJuIGF1ZGl0VHJhaWw8VD4ocXVlcnksIGV2ZW50cywgb3V0c2lkZUFuZ3VsYXJTY2hlZHVsZXIpLnBpcGUoa2VlcFVuc3RhYmxlVW50aWxGaXJzdCk7XG4gICAgfSxcbiAgICB2YWx1ZUNoYW5nZXM8SyBleHRlbmRzIHN0cmluZz4oZXZlbnRzPzogQ2hpbGRFdmVudFtdLCBvcHRpb25zPzoge2lkRmllbGQ/OiBLfSk6IE9ic2VydmFibGU8KFQgJiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+KVtdPiB7XG4gICAgICBjb25zdCBzbmFwc2hvdENoYW5nZXMkID0gc25hcHNob3RDaGFuZ2VzPFQ+KHF1ZXJ5LCBldmVudHMsIG91dHNpZGVBbmd1bGFyU2NoZWR1bGVyKTtcbiAgICAgIHJldHVybiBzbmFwc2hvdENoYW5nZXMkLnBpcGUoXG4gICAgICAgIG1hcChhY3Rpb25zID0+IGFjdGlvbnMubWFwKGEgPT4ge1xuICAgICAgICAgIGlmIChvcHRpb25zICYmIG9wdGlvbnMuaWRGaWVsZCkge1xuICAgICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgICAgLi4uYS5wYXlsb2FkLnZhbCgpIGFzIFQsXG4gICAgICAgICAgICAgIC4uLntcbiAgICAgICAgICAgICAgICBbb3B0aW9ucy5pZEZpZWxkXTogYS5rZXlcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfTtcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgcmV0dXJuIGEucGF5bG9hZC52YWwoKSBhcyBUICYgUmVjb3JkPHN0cmluZywgc3RyaW5nPlxuICAgICAgICAgIH1cbiAgICAgICAgfSkpLFxuICAgICAgICBrZWVwVW5zdGFibGVVbnRpbEZpcnN0XG4gICAgICApO1xuICAgIH1cbiAgfTtcbn1cbiJdfQ==
@@ -1,11 +0,0 @@
1
- import { checkOperationCases } from '../utils';
2
- export function createDataOperationMethod(ref, operation) {
3
- return function dataOperation(item, value) {
4
- return checkOperationCases(item, {
5
- stringCase: () => ref.child(item)[operation](value),
6
- firebaseCase: () => item[operation](value),
7
- snapshotCase: () => item.ref[operation](value)
8
- });
9
- };
10
- }
11
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0YS1vcGVyYXRpb24uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvY29tcGF0L2RhdGFiYXNlL2xpc3QvZGF0YS1vcGVyYXRpb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sVUFBVSxDQUFDO0FBRS9DLE1BQU0sVUFBVSx5QkFBeUIsQ0FBQyxHQUFzQixFQUFFLFNBQWlCO0lBQ2pGLE9BQU8sU0FBUyxhQUFhLENBQUksSUFBdUIsRUFBRSxLQUFRO1FBQ2hFLE9BQU8sbUJBQW1CLENBQUMsSUFBSSxFQUFFO1lBQy9CLFVBQVUsRUFBRSxHQUFHLEVBQUUsQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLElBQWMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLEtBQUssQ0FBQztZQUM3RCxZQUFZLEVBQUUsR0FBRyxFQUFFLENBQUUsSUFBMEIsQ0FBQyxTQUFTLENBQUMsQ0FBQyxLQUFLLENBQUM7WUFDakUsWUFBWSxFQUFFLEdBQUcsRUFBRSxDQUFFLElBQTRCLENBQUMsR0FBRyxDQUFDLFNBQVMsQ0FBQyxDQUFDLEtBQUssQ0FBQztTQUN4RSxDQUFDLENBQUM7SUFDTCxDQUFDLENBQUM7QUFDSixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRGF0YWJhc2VSZWZlcmVuY2UsIERhdGFiYXNlU25hcHNob3QsIEZpcmViYXNlT3BlcmF0aW9uIH0gZnJvbSAnLi4vaW50ZXJmYWNlcyc7XG5pbXBvcnQgeyBjaGVja09wZXJhdGlvbkNhc2VzIH0gZnJvbSAnLi4vdXRpbHMnO1xuXG5leHBvcnQgZnVuY3Rpb24gY3JlYXRlRGF0YU9wZXJhdGlvbk1ldGhvZChyZWY6IERhdGFiYXNlUmVmZXJlbmNlLCBvcGVyYXRpb246IHN0cmluZykge1xuICByZXR1cm4gZnVuY3Rpb24gZGF0YU9wZXJhdGlvbjxUPihpdGVtOiBGaXJlYmFzZU9wZXJhdGlvbiwgdmFsdWU6IFQpIHtcbiAgICByZXR1cm4gY2hlY2tPcGVyYXRpb25DYXNlcyhpdGVtLCB7XG4gICAgICBzdHJpbmdDYXNlOiAoKSA9PiByZWYuY2hpbGQoaXRlbSBhcyBzdHJpbmcpW29wZXJhdGlvbl0odmFsdWUpLFxuICAgICAgZmlyZWJhc2VDYXNlOiAoKSA9PiAoaXRlbSBhcyBEYXRhYmFzZVJlZmVyZW5jZSlbb3BlcmF0aW9uXSh2YWx1ZSksXG4gICAgICBzbmFwc2hvdENhc2U6ICgpID0+IChpdGVtIGFzIERhdGFiYXNlU25hcHNob3Q8VD4pLnJlZltvcGVyYXRpb25dKHZhbHVlKVxuICAgIH0pO1xuICB9O1xufVxuIl19
@@ -1,16 +0,0 @@
1
- import { checkOperationCases } from '../utils';
2
- // TODO(davideast): Find out why TS thinks this returns firebase.Primise
3
- // instead of Promise.
4
- export function createRemoveMethod(ref) {
5
- return function remove(item) {
6
- if (!item) {
7
- return ref.remove();
8
- }
9
- return checkOperationCases(item, {
10
- stringCase: () => ref.child(item).remove(),
11
- firebaseCase: () => item.remove(),
12
- snapshotCase: () => item.ref.remove()
13
- });
14
- };
15
- }
16
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVtb3ZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2NvbXBhdC9kYXRhYmFzZS9saXN0L3JlbW92ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxVQUFVLENBQUM7QUFFL0Msd0VBQXdFO0FBQ3hFLHNCQUFzQjtBQUN0QixNQUFNLFVBQVUsa0JBQWtCLENBQUksR0FBc0I7SUFDMUQsT0FBTyxTQUFTLE1BQU0sQ0FBQyxJQUF3QjtRQUM3QyxJQUFJLENBQUMsSUFBSSxFQUFFLENBQUM7WUFBQyxPQUFPLEdBQUcsQ0FBQyxNQUFNLEVBQUUsQ0FBQztRQUFDLENBQUM7UUFDbkMsT0FBTyxtQkFBbUIsQ0FBQyxJQUFJLEVBQUU7WUFDL0IsVUFBVSxFQUFFLEdBQUcsRUFBRSxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsSUFBYyxDQUFDLENBQUMsTUFBTSxFQUFFO1lBQ3BELFlBQVksRUFBRSxHQUFHLEVBQUUsQ0FBRSxJQUEwQixDQUFDLE1BQU0sRUFBRTtZQUN4RCxZQUFZLEVBQUUsR0FBRyxFQUFFLENBQUUsSUFBNEIsQ0FBQyxHQUFHLENBQUMsTUFBTSxFQUFFO1NBQy9ELENBQUMsQ0FBQztJQUNMLENBQUMsQ0FBQztBQUNKLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBEYXRhYmFzZVJlZmVyZW5jZSwgRGF0YWJhc2VTbmFwc2hvdCwgRmlyZWJhc2VPcGVyYXRpb24gfSBmcm9tICcuLi9pbnRlcmZhY2VzJztcbmltcG9ydCB7IGNoZWNrT3BlcmF0aW9uQ2FzZXMgfSBmcm9tICcuLi91dGlscyc7XG5cbi8vIFRPRE8oZGF2aWRlYXN0KTogRmluZCBvdXQgd2h5IFRTIHRoaW5rcyB0aGlzIHJldHVybnMgZmlyZWJhc2UuUHJpbWlzZVxuLy8gaW5zdGVhZCBvZiBQcm9taXNlLlxuZXhwb3J0IGZ1bmN0aW9uIGNyZWF0ZVJlbW92ZU1ldGhvZDxUPihyZWY6IERhdGFiYXNlUmVmZXJlbmNlKSB7XG4gIHJldHVybiBmdW5jdGlvbiByZW1vdmUoaXRlbT86IEZpcmViYXNlT3BlcmF0aW9uKTogYW55IHtcbiAgICBpZiAoIWl0ZW0pIHsgcmV0dXJuIHJlZi5yZW1vdmUoKTsgfVxuICAgIHJldHVybiBjaGVja09wZXJhdGlvbkNhc2VzKGl0ZW0sIHtcbiAgICAgIHN0cmluZ0Nhc2U6ICgpID0+IHJlZi5jaGlsZChpdGVtIGFzIHN0cmluZykucmVtb3ZlKCksXG4gICAgICBmaXJlYmFzZUNhc2U6ICgpID0+IChpdGVtIGFzIERhdGFiYXNlUmVmZXJlbmNlKS5yZW1vdmUoKSxcbiAgICAgIHNuYXBzaG90Q2FzZTogKCkgPT4gKGl0ZW0gYXMgRGF0YWJhc2VTbmFwc2hvdDxUPikucmVmLnJlbW92ZSgpXG4gICAgfSk7XG4gIH07XG59XG4iXX0=
@@ -1,7 +0,0 @@
1
- import { listChanges } from './changes';
2
- import { validateEventsArray } from './utils';
3
- export function snapshotChanges(query, events, scheduler) {
4
- events = validateEventsArray(events);
5
- return listChanges(query, events, scheduler);
6
- }
7
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic25hcHNob3QtY2hhbmdlcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9jb21wYXQvZGF0YWJhc2UvbGlzdC9zbmFwc2hvdC1jaGFuZ2VzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUVBLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxXQUFXLENBQUM7QUFDeEMsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sU0FBUyxDQUFDO0FBRTlDLE1BQU0sVUFBVSxlQUFlLENBQzdCLEtBQW9CLEVBQ3BCLE1BQXFCLEVBQ3JCLFNBQXlCO0lBRXpCLE1BQU0sR0FBRyxtQkFBbUIsQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUNyQyxPQUFPLFdBQVcsQ0FBSSxLQUFLLEVBQUUsTUFBTSxFQUFFLFNBQVMsQ0FBQyxDQUFDO0FBQ2xELENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBPYnNlcnZhYmxlLCBTY2hlZHVsZXJMaWtlIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBDaGlsZEV2ZW50LCBEYXRhYmFzZVF1ZXJ5LCBTbmFwc2hvdEFjdGlvbiB9IGZyb20gJy4uL2ludGVyZmFjZXMnO1xuaW1wb3J0IHsgbGlzdENoYW5nZXMgfSBmcm9tICcuL2NoYW5nZXMnO1xuaW1wb3J0IHsgdmFsaWRhdGVFdmVudHNBcnJheSB9IGZyb20gJy4vdXRpbHMnO1xuXG5leHBvcnQgZnVuY3Rpb24gc25hcHNob3RDaGFuZ2VzPFQ+KFxuICBxdWVyeTogRGF0YWJhc2VRdWVyeSxcbiAgZXZlbnRzPzogQ2hpbGRFdmVudFtdLFxuICBzY2hlZHVsZXI/OiBTY2hlZHVsZXJMaWtlXG4pOiBPYnNlcnZhYmxlPFNuYXBzaG90QWN0aW9uPFQ+W10+IHtcbiAgZXZlbnRzID0gdmFsaWRhdGVFdmVudHNBcnJheShldmVudHMpO1xuICByZXR1cm4gbGlzdENoYW5nZXM8VD4ocXVlcnksIGV2ZW50cywgc2NoZWR1bGVyKTtcbn1cbiJdfQ==
@@ -1,9 +0,0 @@
1
- import { merge } from 'rxjs';
2
- import { fromRef } from '../observable/fromRef';
3
- import { validateEventsArray } from './utils';
4
- export function stateChanges(query, events, scheduler) {
5
- events = validateEventsArray(events);
6
- const childEvent$ = events.map(event => fromRef(query, event, 'on', scheduler));
7
- return merge(...childEvent$);
8
- }
9
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RhdGUtY2hhbmdlcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9jb21wYXQvZGF0YWJhc2UvbGlzdC9zdGF0ZS1jaGFuZ2VzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBaUIsS0FBSyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBRTVDLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUNoRCxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxTQUFTLENBQUM7QUFFOUMsTUFBTSxVQUFVLFlBQVksQ0FBSSxLQUFvQixFQUFFLE1BQXFCLEVBQUUsU0FBeUI7SUFDcEcsTUFBTSxHQUFHLG1CQUFtQixDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQ3JDLE1BQU0sV0FBVyxHQUFHLE1BQU0sQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQyxPQUFPLENBQUksS0FBSyxFQUFFLEtBQUssRUFBRSxJQUFJLEVBQUUsU0FBUyxDQUFDLENBQUMsQ0FBQztJQUNuRixPQUFPLEtBQUssQ0FBQyxHQUFHLFdBQVcsQ0FBQyxDQUFDO0FBQy9CLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBTY2hlZHVsZXJMaWtlLCBtZXJnZSB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgQ2hpbGRFdmVudCwgRGF0YWJhc2VRdWVyeSB9IGZyb20gJy4uL2ludGVyZmFjZXMnO1xuaW1wb3J0IHsgZnJvbVJlZiB9IGZyb20gJy4uL29ic2VydmFibGUvZnJvbVJlZic7XG5pbXBvcnQgeyB2YWxpZGF0ZUV2ZW50c0FycmF5IH0gZnJvbSAnLi91dGlscyc7XG5cbmV4cG9ydCBmdW5jdGlvbiBzdGF0ZUNoYW5nZXM8VD4ocXVlcnk6IERhdGFiYXNlUXVlcnksIGV2ZW50cz86IENoaWxkRXZlbnRbXSwgc2NoZWR1bGVyPzogU2NoZWR1bGVyTGlrZSkge1xuICBldmVudHMgPSB2YWxpZGF0ZUV2ZW50c0FycmF5KGV2ZW50cyk7XG4gIGNvbnN0IGNoaWxkRXZlbnQkID0gZXZlbnRzLm1hcChldmVudCA9PiBmcm9tUmVmPFQ+KHF1ZXJ5LCBldmVudCwgJ29uJywgc2NoZWR1bGVyKSk7XG4gIHJldHVybiBtZXJnZSguLi5jaGlsZEV2ZW50JCk7XG59XG4iXX0=
@@ -1,8 +0,0 @@
1
- import { isNil } from '../utils';
2
- export function validateEventsArray(events) {
3
- if (isNil(events) || events.length === 0) {
4
- events = ['child_added', 'child_removed', 'child_changed', 'child_moved'];
5
- }
6
- return events;
7
- }
8
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvY29tcGF0L2RhdGFiYXNlL2xpc3QvdXRpbHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLEtBQUssRUFBRSxNQUFNLFVBQVUsQ0FBQztBQUVqQyxNQUFNLFVBQVUsbUJBQW1CLENBQUMsTUFBYztJQUNoRCxJQUFJLEtBQUssQ0FBQyxNQUFNLENBQUMsSUFBSSxNQUFNLENBQUMsTUFBTSxLQUFLLENBQUMsRUFBRSxDQUFDO1FBQ3pDLE1BQU0sR0FBRyxDQUFDLGFBQWEsRUFBRSxlQUFlLEVBQUUsZUFBZSxFQUFFLGFBQWEsQ0FBQyxDQUFDO0lBQzVFLENBQUM7SUFDRCxPQUFPLE1BQU0sQ0FBQztBQUNoQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgaXNOaWwgfSBmcm9tICcuLi91dGlscyc7XG5cbmV4cG9ydCBmdW5jdGlvbiB2YWxpZGF0ZUV2ZW50c0FycmF5KGV2ZW50cz86IGFueVtdKSB7XG4gIGlmIChpc05pbChldmVudHMpIHx8IGV2ZW50cy5sZW5ndGggPT09IDApIHtcbiAgICBldmVudHMgPSBbJ2NoaWxkX2FkZGVkJywgJ2NoaWxkX3JlbW92ZWQnLCAnY2hpbGRfY2hhbmdlZCcsICdjaGlsZF9tb3ZlZCddO1xuICB9XG4gIHJldHVybiBldmVudHM7XG59XG4iXX0=
@@ -1,19 +0,0 @@
1
- import { keepUnstableUntilFirst } from '@angular/fire';
2
- import { map } from 'rxjs/operators';
3
- import { createObjectSnapshotChanges } from './snapshot-changes';
4
- export function createObjectReference(query, afDatabase) {
5
- return {
6
- query,
7
- snapshotChanges() {
8
- return createObjectSnapshotChanges(query, afDatabase.schedulers.outsideAngular)().pipe(keepUnstableUntilFirst);
9
- },
10
- update(data) { return query.ref.update(data); },
11
- set(data) { return query.ref.set(data); },
12
- remove() { return query.ref.remove(); },
13
- valueChanges() {
14
- const snapshotChanges$ = createObjectSnapshotChanges(query, afDatabase.schedulers.outsideAngular)();
15
- return snapshotChanges$.pipe(keepUnstableUntilFirst, map(action => action.payload.exists() ? action.payload.val() : null));
16
- },
17
- };
18
- }
19
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3JlYXRlLXJlZmVyZW5jZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9jb21wYXQvZGF0YWJhc2Uvb2JqZWN0L2NyZWF0ZS1yZWZlcmVuY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3ZELE9BQU8sRUFBRSxHQUFHLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUdyQyxPQUFPLEVBQUUsMkJBQTJCLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUVqRSxNQUFNLFVBQVUscUJBQXFCLENBQVMsS0FBb0IsRUFBRSxVQUErQjtJQUNqRyxPQUFPO1FBQ0wsS0FBSztRQUNMLGVBQWU7WUFDYixPQUFPLDJCQUEyQixDQUFJLEtBQUssRUFBRSxVQUFVLENBQUMsVUFBVSxDQUFDLGNBQWMsQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUN2RixzQkFBc0IsQ0FDdkIsQ0FBQztRQUNKLENBQUM7UUFDRCxNQUFNLENBQUMsSUFBZ0IsSUFBSSxPQUFPLEtBQUssQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDLElBQVcsQ0FBa0IsQ0FBQyxDQUFDLENBQUM7UUFDbkYsR0FBRyxDQUFDLElBQU8sSUFBSSxPQUFPLEtBQUssQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBa0IsQ0FBQyxDQUFDLENBQUM7UUFDN0QsTUFBTSxLQUFLLE9BQU8sS0FBSyxDQUFDLEdBQUcsQ0FBQyxNQUFNLEVBQW1CLENBQUMsQ0FBQyxDQUFDO1FBQ3hELFlBQVk7WUFDVixNQUFNLGdCQUFnQixHQUFHLDJCQUEyQixDQUFDLEtBQUssRUFBRSxVQUFVLENBQUMsVUFBVSxDQUFDLGNBQWMsQ0FBQyxFQUFFLENBQUM7WUFDcEcsT0FBTyxnQkFBZ0IsQ0FBQyxJQUFJLENBQzFCLHNCQUFzQixFQUN0QixHQUFHLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLE1BQU0sRUFBRSxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLEdBQUcsRUFBTyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FDMUUsQ0FBQztRQUNKLENBQUM7S0FDRixDQUFDO0FBQ0osQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGtlZXBVbnN0YWJsZVVudGlsRmlyc3QgfSBmcm9tICdAYW5ndWxhci9maXJlJztcbmltcG9ydCB7IG1hcCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7IEFuZ3VsYXJGaXJlRGF0YWJhc2UgfSBmcm9tICcuLi9kYXRhYmFzZSc7XG5pbXBvcnQgeyBBbmd1bGFyRmlyZU9iamVjdCwgRGF0YWJhc2VRdWVyeSB9IGZyb20gJy4uL2ludGVyZmFjZXMnO1xuaW1wb3J0IHsgY3JlYXRlT2JqZWN0U25hcHNob3RDaGFuZ2VzIH0gZnJvbSAnLi9zbmFwc2hvdC1jaGFuZ2VzJztcblxuZXhwb3J0IGZ1bmN0aW9uIGNyZWF0ZU9iamVjdFJlZmVyZW5jZTxUPSBhbnk+KHF1ZXJ5OiBEYXRhYmFzZVF1ZXJ5LCBhZkRhdGFiYXNlOiBBbmd1bGFyRmlyZURhdGFiYXNlKTogQW5ndWxhckZpcmVPYmplY3Q8VD4ge1xuICByZXR1cm4ge1xuICAgIHF1ZXJ5LFxuICAgIHNuYXBzaG90Q2hhbmdlczxUPigpIHtcbiAgICAgIHJldHVybiBjcmVhdGVPYmplY3RTbmFwc2hvdENoYW5nZXM8VD4ocXVlcnksIGFmRGF0YWJhc2Uuc2NoZWR1bGVycy5vdXRzaWRlQW5ndWxhcikoKS5waXBlKFxuICAgICAgICBrZWVwVW5zdGFibGVVbnRpbEZpcnN0XG4gICAgICApO1xuICAgIH0sXG4gICAgdXBkYXRlKGRhdGE6IFBhcnRpYWw8VD4pIHsgcmV0dXJuIHF1ZXJ5LnJlZi51cGRhdGUoZGF0YSBhcyBhbnkpIGFzIFByb21pc2U8dm9pZD47IH0sXG4gICAgc2V0KGRhdGE6IFQpIHsgcmV0dXJuIHF1ZXJ5LnJlZi5zZXQoZGF0YSkgYXMgUHJvbWlzZTx2b2lkPjsgfSxcbiAgICByZW1vdmUoKSB7IHJldHVybiBxdWVyeS5yZWYucmVtb3ZlKCkgYXMgUHJvbWlzZTx2b2lkPjsgfSxcbiAgICB2YWx1ZUNoYW5nZXM8VD4oKSB7XG4gICAgICBjb25zdCBzbmFwc2hvdENoYW5nZXMkID0gY3JlYXRlT2JqZWN0U25hcHNob3RDaGFuZ2VzKHF1ZXJ5LCBhZkRhdGFiYXNlLnNjaGVkdWxlcnMub3V0c2lkZUFuZ3VsYXIpKCk7XG4gICAgICByZXR1cm4gc25hcHNob3RDaGFuZ2VzJC5waXBlKFxuICAgICAgICBrZWVwVW5zdGFibGVVbnRpbEZpcnN0LFxuICAgICAgICBtYXAoYWN0aW9uID0+IGFjdGlvbi5wYXlsb2FkLmV4aXN0cygpID8gYWN0aW9uLnBheWxvYWQudmFsKCkgYXMgVCA6IG51bGwpXG4gICAgICApO1xuICAgIH0sXG4gIH07XG59XG4iXX0=
@@ -1,7 +0,0 @@
1
- import { fromRef } from '../observable/fromRef';
2
- export function createObjectSnapshotChanges(query, scheduler) {
3
- return function snapshotChanges() {
4
- return fromRef(query, 'value', 'on', scheduler);
5
- };
6
- }
7
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic25hcHNob3QtY2hhbmdlcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9jb21wYXQvZGF0YWJhc2Uvb2JqZWN0L3NuYXBzaG90LWNoYW5nZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBRUEsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBRWhELE1BQU0sVUFBVSwyQkFBMkIsQ0FBSSxLQUFvQixFQUFFLFNBQXlCO0lBQzVGLE9BQU8sU0FBUyxlQUFlO1FBQzdCLE9BQU8sT0FBTyxDQUFDLEtBQUssRUFBRSxPQUFPLEVBQUUsSUFBSSxFQUFFLFNBQVMsQ0FBQyxDQUFDO0lBQ2xELENBQUMsQ0FBQztBQUNKLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBPYnNlcnZhYmxlLCBTY2hlZHVsZXJMaWtlIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBEYXRhYmFzZVF1ZXJ5LCBTbmFwc2hvdEFjdGlvbiB9IGZyb20gJy4uL2ludGVyZmFjZXMnO1xuaW1wb3J0IHsgZnJvbVJlZiB9IGZyb20gJy4uL29ic2VydmFibGUvZnJvbVJlZic7XG5cbmV4cG9ydCBmdW5jdGlvbiBjcmVhdGVPYmplY3RTbmFwc2hvdENoYW5nZXM8VD4ocXVlcnk6IERhdGFiYXNlUXVlcnksIHNjaGVkdWxlcj86IFNjaGVkdWxlckxpa2UpIHtcbiAgcmV0dXJuIGZ1bmN0aW9uIHNuYXBzaG90Q2hhbmdlcygpOiBPYnNlcnZhYmxlPFNuYXBzaG90QWN0aW9uPFQ+PiB7XG4gICAgcmV0dXJuIGZyb21SZWYocXVlcnksICd2YWx1ZScsICdvbicsIHNjaGVkdWxlcik7XG4gIH07XG59XG4iXX0=
@@ -1,48 +0,0 @@
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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZnJvbVJlZi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9jb21wYXQvZGF0YWJhc2Uvb2JzZXJ2YWJsZS9mcm9tUmVmLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQWlCLGNBQWMsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUNqRSxPQUFPLEVBQUUsR0FBRyxFQUFFLEtBQUssRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBUTVDOzs7Ozs7R0FNRztBQUNILE1BQU0sVUFBVSxPQUFPLENBQUksR0FBa0IsRUFDbEIsS0FBa0IsRUFDbEIsVUFBVSxHQUFHLElBQUksRUFDakIsWUFBMkIsY0FBYztJQUVsRSxPQUFPLElBQUksVUFBVSxDQUFxQixVQUFVLENBQUMsRUFBRTtRQUNyRCxJQUFJLEVBQUUsR0FBUSxJQUFJLENBQUM7UUFDbkIsRUFBRSxHQUFHLEdBQUcsQ0FBQyxVQUFVLENBQUMsQ0FBQyxLQUFLLEVBQUUsQ0FBQyxRQUFRLEVBQUUsT0FBTyxFQUFFLEVBQUU7WUFDaEQsU0FBUyxDQUFDLFFBQVEsQ0FBQyxHQUFHLEVBQUU7Z0JBQ3RCLFVBQVUsQ0FBQyxJQUFJLENBQUMsRUFBRSxRQUFRLEVBQUUsT0FBTyxFQUFFLENBQUMsQ0FBQztZQUN6QyxDQUFDLENBQUMsQ0FBQztZQUNILElBQUksVUFBVSxLQUFLLE1BQU0sRUFBRSxDQUFDO2dCQUMxQixTQUFTLENBQUMsUUFBUSxDQUFDLEdBQUcsRUFBRSxDQUFDLFVBQVUsQ0FBQyxRQUFRLEVBQUUsQ0FBQyxDQUFDO1lBQ2xELENBQUM7UUFDSCxDQUFDLEVBQUUsR0FBRyxDQUFDLEVBQUU7WUFDUCxTQUFTLENBQUMsUUFBUSxDQUFDLEdBQUcsRUFBRSxDQUFDLFVBQVUsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQztRQUNsRCxDQUFDLENBQUMsQ0FBQztRQUVILElBQUksVUFBVSxLQUFLLElBQUksRUFBRSxDQUFDO1lBQ3hCLE9BQU87Z0JBQ0wsV0FBVztvQkFDVCxJQUFJLEVBQUUsSUFBSSxJQUFJLEVBQUUsQ0FBQzt3QkFDZixHQUFHLENBQUMsR0FBRyxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsQ0FBQztvQkFDckIsQ0FBQztnQkFDSCxDQUFDO2FBQ0YsQ0FBQztRQUNKLENBQUM7YUFBTSxDQUFDO1lBQ04sT0FBTztnQkFDTCxnRUFBZ0U7Z0JBQ2hFLFdBQVc7Z0JBQ1gsQ0FBQzthQUNGLENBQUM7UUFDSixDQUFDO0lBQ0gsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUNMLEdBQUcsQ0FBQyxPQUFPLENBQUMsRUFBRTtRQUNaLE1BQU0sRUFBRSxRQUFRLEVBQUUsT0FBTyxFQUFFLEdBQUcsT0FBTyxDQUFDO1FBQ3RDLElBQUksR0FBRyxHQUFrQixJQUFJLENBQUM7UUFDOUIsSUFBSSxRQUFRLENBQUMsTUFBTSxFQUFFLEVBQUUsQ0FBQztZQUN0QixHQUFHLEdBQUcsUUFBUSxDQUFDLEdBQUcsQ0FBQztRQUNyQixDQUFDO1FBQ0QsT0FBTyxFQUFFLElBQUksRUFBRSxLQUFLLEVBQUUsT0FBTyxFQUFFLFFBQVEsRUFBRSxPQUFPLEVBQUUsR0FBRyxFQUFFLENBQUM7SUFDMUQsQ0FBQyxDQUFDLEVBQ0YsS0FBSyxFQUFFLENBQ1IsQ0FBQztBQUNKLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBPYnNlcnZhYmxlLCBTY2hlZHVsZXJMaWtlLCBhc3luY1NjaGVkdWxlciB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgbWFwLCBzaGFyZSB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7IEFuZ3VsYXJGaXJlQWN0aW9uLCBEYXRhYmFzZVF1ZXJ5LCBEYXRhYmFzZVNuYXBzaG90LCBMaXN0ZW5FdmVudCB9IGZyb20gJy4uL2ludGVyZmFjZXMnO1xuXG5pbnRlcmZhY2UgU25hcHNob3RQcmV2S2V5PFQ+IHtcbiAgc25hcHNob3Q6IERhdGFiYXNlU25hcHNob3Q8VD47XG4gIHByZXZLZXk6IHN0cmluZyB8IG51bGwgfCB1bmRlZmluZWQ7XG59XG5cbi8qKlxuICogQ3JlYXRlIGFuIG9ic2VydmFibGUgZnJvbSBhIERhdGFiYXNlIFJlZmVyZW5jZSBvciBEYXRhYmFzZSBRdWVyeS5cbiAqIEBwYXJhbSByZWYgRGF0YWJhc2UgUmVmZXJlbmNlXG4gKiBAcGFyYW0gZXZlbnQgTGlzdGVuIGV2ZW50IHR5cGUgKCd2YWx1ZScsICdhZGRlZCcsICdjaGFuZ2VkJywgJ3JlbW92ZWQnLCAnbW92ZWQnKVxuICogQHBhcmFtIGxpc3RlblR5cGUgJ29uJyBvciAnb25jZSdcbiAqIEBwYXJhbSBzY2hlZHVsZXIgLSBSeGpzIHNjaGVkdWxlclxuICovXG5leHBvcnQgZnVuY3Rpb24gZnJvbVJlZjxUPihyZWY6IERhdGFiYXNlUXVlcnksXG4gICAgICAgICAgICAgICAgICAgICAgICAgICBldmVudDogTGlzdGVuRXZlbnQsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICBsaXN0ZW5UeXBlID0gJ29uJyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIHNjaGVkdWxlcjogU2NoZWR1bGVyTGlrZSA9IGFzeW5jU2NoZWR1bGVyXG4pOiBPYnNlcnZhYmxlPEFuZ3VsYXJGaXJlQWN0aW9uPERhdGFiYXNlU25hcHNob3Q8VD4+PiB7XG4gIHJldHVybiBuZXcgT2JzZXJ2YWJsZTxTbmFwc2hvdFByZXZLZXk8VD4+KHN1YnNjcmliZXIgPT4ge1xuICAgIGxldCBmbjogYW55ID0gbnVsbDtcbiAgICBmbiA9IHJlZltsaXN0ZW5UeXBlXShldmVudCwgKHNuYXBzaG90LCBwcmV2S2V5KSA9PiB7XG4gICAgICBzY2hlZHVsZXIuc2NoZWR1bGUoKCkgPT4ge1xuICAgICAgICBzdWJzY3JpYmVyLm5leHQoeyBzbmFwc2hvdCwgcHJldktleSB9KTtcbiAgICAgIH0pO1xuICAgICAgaWYgKGxpc3RlblR5cGUgPT09ICdvbmNlJykge1xuICAgICAgICBzY2hlZHVsZXIuc2NoZWR1bGUoKCkgPT4gc3Vic2NyaWJlci5jb21wbGV0ZSgpKTtcbiAgICAgIH1cbiAgICB9LCBlcnIgPT4ge1xuICAgICAgc2NoZWR1bGVyLnNjaGVkdWxlKCgpID0+IHN1YnNjcmliZXIuZXJyb3IoZXJyKSk7XG4gICAgfSk7XG5cbiAgICBpZiAobGlzdGVuVHlwZSA9PT0gJ29uJykge1xuICAgICAgcmV0dXJuIHtcbiAgICAgICAgdW5zdWJzY3JpYmUoKSB7XG4gICAgICAgICAgaWYgKGZuICE9IG51bGwpIHtcbiAgICAgICAgICAgIHJlZi5vZmYoZXZlbnQsIGZuKTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH07XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiB7XG4gICAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZW1wdHktZnVuY3Rpb25cbiAgICAgICAgdW5zdWJzY3JpYmUoKSB7XG4gICAgICAgIH1cbiAgICAgIH07XG4gICAgfVxuICB9KS5waXBlKFxuICAgIG1hcChwYXlsb2FkID0+IHtcbiAgICAgIGNvbnN0IHsgc25hcHNob3QsIHByZXZLZXkgfSA9IHBheWxvYWQ7XG4gICAgICBsZXQga2V5OiBzdHJpbmcgfCBudWxsID0gbnVsbDtcbiAgICAgIGlmIChzbmFwc2hvdC5leGlzdHMoKSkge1xuICAgICAgICBrZXkgPSBzbmFwc2hvdC5rZXk7XG4gICAgICB9XG4gICAgICByZXR1cm4geyB0eXBlOiBldmVudCwgcGF5bG9hZDogc25hcHNob3QsIHByZXZLZXksIGtleSB9O1xuICAgIH0pLFxuICAgIHNoYXJlKClcbiAgKTtcbn1cbiJdfQ==
@@ -1,9 +0,0 @@
1
- export * from './database';
2
- export * from './list/changes';
3
- export * from './list/create-reference';
4
- export * from './list/snapshot-changes';
5
- export * from './list/state-changes';
6
- export * from './list/audit-trail';
7
- export * from './observable/fromRef';
8
- export * from './database.module';
9
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljX2FwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9jb21wYXQvZGF0YWJhc2UvcHVibGljX2FwaS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLFlBQVksQ0FBQztBQUMzQixjQUFjLGdCQUFnQixDQUFDO0FBQy9CLGNBQWMseUJBQXlCLENBQUM7QUFDeEMsY0FBYyx5QkFBeUIsQ0FBQztBQUN4QyxjQUFjLHNCQUFzQixDQUFDO0FBQ3JDLGNBQWMsb0JBQW9CLENBQUM7QUFDbkMsY0FBYyxzQkFBc0IsQ0FBQztBQUNyQyxjQUFjLG1CQUFtQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9kYXRhYmFzZSc7XG5leHBvcnQgKiBmcm9tICcuL2xpc3QvY2hhbmdlcyc7XG5leHBvcnQgKiBmcm9tICcuL2xpc3QvY3JlYXRlLXJlZmVyZW5jZSc7XG5leHBvcnQgKiBmcm9tICcuL2xpc3Qvc25hcHNob3QtY2hhbmdlcyc7XG5leHBvcnQgKiBmcm9tICcuL2xpc3Qvc3RhdGUtY2hhbmdlcyc7XG5leHBvcnQgKiBmcm9tICcuL2xpc3QvYXVkaXQtdHJhaWwnO1xuZXhwb3J0ICogZnJvbSAnLi9vYnNlcnZhYmxlL2Zyb21SZWYnO1xuZXhwb3J0ICogZnJvbSAnLi9kYXRhYmFzZS5tb2R1bGUnO1xuIl19
@@ -1,36 +0,0 @@
1
- export function isString(value) {
2
- return typeof value === 'string';
3
- }
4
- export function isFirebaseDataSnapshot(value) {
5
- return typeof value.exportVal === 'function';
6
- }
7
- export function isNil(obj) {
8
- return obj === undefined || obj === null;
9
- }
10
- export function isFirebaseRef(value) {
11
- return typeof value.set === 'function';
12
- }
13
- /**
14
- * Returns a database reference given a Firebase App and an
15
- * absolute or relative path.
16
- * @param database - Firebase Database
17
- * @param pathRef - Database path, relative or absolute
18
- */
19
- export function getRef(database, pathRef) {
20
- // if a db ref was passed in, just return it
21
- return isFirebaseRef(pathRef) ? pathRef
22
- : database.ref(pathRef);
23
- }
24
- export function checkOperationCases(item, cases) {
25
- if (isString(item)) {
26
- return cases.stringCase();
27
- }
28
- else if (isFirebaseRef(item)) {
29
- return cases.firebaseCase();
30
- }
31
- else if (isFirebaseDataSnapshot(item)) {
32
- return cases.snapshotCase();
33
- }
34
- throw new Error(`Expects a string, snapshot, or reference. Got: ${typeof item}`);
35
- }
36
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvY29tcGF0L2RhdGFiYXNlL3V0aWxzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUdBLE1BQU0sVUFBVSxRQUFRLENBQUMsS0FBVTtJQUNqQyxPQUFPLE9BQU8sS0FBSyxLQUFLLFFBQVEsQ0FBQztBQUNuQyxDQUFDO0FBRUQsTUFBTSxVQUFVLHNCQUFzQixDQUFDLEtBQVU7SUFDL0MsT0FBTyxPQUFPLEtBQUssQ0FBQyxTQUFTLEtBQUssVUFBVSxDQUFDO0FBQy9DLENBQUM7QUFFRCxNQUFNLFVBQVUsS0FBSyxDQUFDLEdBQVE7SUFDNUIsT0FBTyxHQUFHLEtBQUssU0FBUyxJQUFJLEdBQUcsS0FBSyxJQUFJLENBQUM7QUFDM0MsQ0FBQztBQUVELE1BQU0sVUFBVSxhQUFhLENBQUMsS0FBVTtJQUN0QyxPQUFPLE9BQU8sS0FBSyxDQUFDLEdBQUcsS0FBSyxVQUFVLENBQUM7QUFDekMsQ0FBQztBQUVEOzs7OztHQUtHO0FBQ0gsTUFBTSxVQUFVLE1BQU0sQ0FBQyxRQUFvQyxFQUFFLE9BQXNCO0lBQ2pGLDRDQUE0QztJQUM1QyxPQUFPLGFBQWEsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBNEI7UUFDMUQsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsT0FBaUIsQ0FBQyxDQUFDO0FBQ3RDLENBQUM7QUFFRCxNQUFNLFVBQVUsbUJBQW1CLENBQUMsSUFBdUIsRUFBRSxLQUE2QjtJQUN4RixJQUFJLFFBQVEsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDO1FBQ25CLE9BQU8sS0FBSyxDQUFDLFVBQVUsRUFBRSxDQUFDO0lBQzVCLENBQUM7U0FBTSxJQUFJLGFBQWEsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDO1FBQy9CLE9BQU8sS0FBSyxDQUFDLFlBQVksRUFBRSxDQUFDO0lBQzlCLENBQUM7U0FBTSxJQUFJLHNCQUFzQixDQUFDLElBQUksQ0FBQyxFQUFFLENBQUM7UUFDeEMsT0FBTyxLQUFLLENBQUMsWUFBWSxFQUFFLENBQUM7SUFDOUIsQ0FBQztJQUNELE1BQU0sSUFBSSxLQUFLLENBQUMsa0RBQWtELE9BQU8sSUFBSSxFQUFFLENBQUMsQ0FBQztBQUNuRixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IGZpcmViYXNlIGZyb20gJ2ZpcmViYXNlL2NvbXBhdC9hcHAnO1xuaW1wb3J0IHsgRGF0YWJhc2VSZWZlcmVuY2UsIEZpcmViYXNlT3BlcmF0aW9uLCBGaXJlYmFzZU9wZXJhdGlvbkNhc2VzLCBQYXRoUmVmZXJlbmNlIH0gZnJvbSAnLi9pbnRlcmZhY2VzJztcblxuZXhwb3J0IGZ1bmN0aW9uIGlzU3RyaW5nKHZhbHVlOiBhbnkpOiBib29sZWFuIHtcbiAgcmV0dXJuIHR5cGVvZiB2YWx1ZSA9PT0gJ3N0cmluZyc7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBpc0ZpcmViYXNlRGF0YVNuYXBzaG90KHZhbHVlOiBhbnkpOiBib29sZWFuIHtcbiAgcmV0dXJuIHR5cGVvZiB2YWx1ZS5leHBvcnRWYWwgPT09ICdmdW5jdGlvbic7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBpc05pbChvYmo6IGFueSk6IGJvb2xlYW4ge1xuICByZXR1cm4gb2JqID09PSB1bmRlZmluZWQgfHwgb2JqID09PSBudWxsO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gaXNGaXJlYmFzZVJlZih2YWx1ZTogYW55KTogYm9vbGVhbiB7XG4gIHJldHVybiB0eXBlb2YgdmFsdWUuc2V0ID09PSAnZnVuY3Rpb24nO1xufVxuXG4vKipcbiAqIFJldHVybnMgYSBkYXRhYmFzZSByZWZlcmVuY2UgZ2l2ZW4gYSBGaXJlYmFzZSBBcHAgYW5kIGFuXG4gKiBhYnNvbHV0ZSBvciByZWxhdGl2ZSBwYXRoLlxuICogQHBhcmFtIGRhdGFiYXNlIC0gRmlyZWJhc2UgRGF0YWJhc2VcbiAqIEBwYXJhbSBwYXRoUmVmIC0gRGF0YWJhc2UgcGF0aCwgcmVsYXRpdmUgb3IgYWJzb2x1dGVcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGdldFJlZihkYXRhYmFzZTogZmlyZWJhc2UuZGF0YWJhc2UuRGF0YWJhc2UsIHBhdGhSZWY6IFBhdGhSZWZlcmVuY2UpOiBEYXRhYmFzZVJlZmVyZW5jZSB7XG4gIC8vIGlmIGEgZGIgcmVmIHdhcyBwYXNzZWQgaW4sIGp1c3QgcmV0dXJuIGl0XG4gIHJldHVybiBpc0ZpcmViYXNlUmVmKHBhdGhSZWYpID8gcGF0aFJlZiBhcyBEYXRhYmFzZVJlZmVyZW5jZVxuICAgIDogZGF0YWJhc2UucmVmKHBhdGhSZWYgYXMgc3RyaW5nKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGNoZWNrT3BlcmF0aW9uQ2FzZXMoaXRlbTogRmlyZWJhc2VPcGVyYXRpb24sIGNhc2VzOiBGaXJlYmFzZU9wZXJhdGlvbkNhc2VzKTogUHJvbWlzZTx2b2lkPiB7XG4gIGlmIChpc1N0cmluZyhpdGVtKSkge1xuICAgIHJldHVybiBjYXNlcy5zdHJpbmdDYXNlKCk7XG4gIH0gZWxzZSBpZiAoaXNGaXJlYmFzZVJlZihpdGVtKSkge1xuICAgIHJldHVybiBjYXNlcy5maXJlYmFzZUNhc2UoKTtcbiAgfSBlbHNlIGlmIChpc0ZpcmViYXNlRGF0YVNuYXBzaG90KGl0ZW0pKSB7XG4gICAgcmV0dXJuIGNhc2VzLnNuYXBzaG90Q2FzZSgpO1xuICB9XG4gIHRocm93IG5ldyBFcnJvcihgRXhwZWN0cyBhIHN0cmluZywgc25hcHNob3QsIG9yIHJlZmVyZW5jZS4gR290OiAke3R5cGVvZiBpdGVtfWApO1xufVxuIl19
@@ -1,6 +0,0 @@
1
- export class FirebaseApp {
2
- constructor(app) {
3
- return app;
4
- }
5
- }
6
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlyZWJhc2UuYXBwLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2NvbXBhdC9maXJlYmFzZS5hcHAudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBS0EsTUFBTSxPQUFPLFdBQVc7SUFDdEIsWUFBWSxHQUFxQjtRQUMvQixPQUFPLEdBQUcsQ0FBQztJQUNiLENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBmaXJlYmFzZSBmcm9tICdmaXJlYmFzZS9jb21wYXQvYXBwJztcblxuLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1lbXB0eS1pbnRlcmZhY2VcbmV4cG9ydCBpbnRlcmZhY2UgRmlyZWJhc2VBcHAgZXh0ZW5kcyBmaXJlYmFzZS5hcHAuQXBwIHt9XG5cbmV4cG9ydCBjbGFzcyBGaXJlYmFzZUFwcCB7XG4gIGNvbnN0cnVjdG9yKGFwcDogZmlyZWJhc2UuYXBwLkFwcCkge1xuICAgIHJldHVybiBhcHA7XG4gIH1cbn1cbiJdfQ==
@@ -1,71 +0,0 @@
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: "18.0.0", ngImport: i0, type: AngularFireModule, deps: [{ token: PLATFORM_ID }], target: i0.ɵɵFactoryTarget.NgModule });
59
- static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.0.0", ngImport: i0, type: AngularFireModule });
60
- static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.0.0", ngImport: i0, type: AngularFireModule, providers: [FIREBASE_APP_PROVIDER] });
61
- }
62
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.0", ngImport: i0, type: AngularFireModule, decorators: [{
63
- type: NgModule,
64
- args: [{
65
- providers: [FIREBASE_APP_PROVIDER]
66
- }]
67
- }], ctorParameters: () => [{ type: Object, decorators: [{
68
- type: Inject,
69
- args: [PLATFORM_ID]
70
- }] }] });
71
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlyZWJhc2UuYXBwLm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9jb21wYXQvZmlyZWJhc2UuYXBwLm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsTUFBTSxFQUFFLGNBQWMsRUFBdUIsT0FBTyxJQUFJLFVBQVUsRUFBRSxRQUFRLEVBQUUsTUFBTSxFQUFFLFFBQVEsRUFBRSxXQUFXLEVBQUUsU0FBUyxFQUN2SCxNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRXhDLE9BQU8sUUFBUSxNQUFNLHFCQUFxQixDQUFDO0FBQzNDLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQzs7QUFFN0MsTUFBTSxDQUFDLE1BQU0sZ0JBQWdCLEdBQUcsSUFBSSxjQUFjLENBQWtCLDBCQUEwQixDQUFDLENBQUM7QUFDaEcsTUFBTSxDQUFDLE1BQU0saUJBQWlCLEdBQUcsSUFBSSxjQUFjLENBQXFCLHVCQUF1QixDQUFDLENBQUM7QUFHakcsTUFBTSxVQUFVLG1CQUFtQixDQUFDLE9BQXdCLEVBQUUsSUFBWSxFQUFFLFlBQWtEO0lBQzVILE1BQU0sSUFBSSxHQUFHLE9BQU8sWUFBWSxLQUFLLFFBQVEsSUFBSSxZQUFZLElBQUksV0FBVyxDQUFDO0lBQzdFLE1BQU0sTUFBTSxHQUFHLE9BQU8sWUFBWSxLQUFLLFFBQVEsSUFBSSxZQUFZLElBQUksRUFBRSxDQUFDO0lBQ3RFLE1BQU0sQ0FBQyxJQUFJLEdBQUcsTUFBTSxDQUFDLElBQUksSUFBSSxJQUFJLENBQUM7SUFDbEMsK0VBQStFO0lBQy9FLE1BQU0sV0FBVyxHQUFHLFFBQVEsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxJQUFJLEdBQUcsQ0FBQyxJQUFJLEtBQUssTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQ3BGLGtHQUFrRztJQUNsRyw2RUFBNkU7SUFDN0UsTUFBTSxHQUFHLEdBQUcsQ0FBQyxXQUFXLElBQUksSUFBSSxDQUFDLGlCQUFpQixDQUFDLEdBQUcsRUFBRSxDQUFDLFFBQVEsQ0FBQyxhQUFhLENBQUMsT0FBTyxFQUFFLE1BQWEsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUMxRyxJQUFJLENBQUM7UUFDSCxJQUFJLElBQUksQ0FBQyxTQUFTLENBQUMsT0FBTyxDQUFDLEtBQUssSUFBSSxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQztZQUM1RCxNQUFNLEdBQUcsR0FBRyxDQUFDLENBQUUsTUFBYyxDQUFDLEdBQUcsQ0FBQztZQUNsQyxHQUFHLENBQUMsT0FBTyxFQUFFLEdBQUcsR0FBRyxDQUFDLElBQUksMkRBQTJELEdBQUcsQ0FBQyxDQUFDLENBQUMsd0RBQXdELENBQUMsQ0FBQyxDQUFDLEdBQUcsRUFBRSxDQUFDLENBQUM7UUFDN0osQ0FBQztJQUNILENBQUM7SUFBQyxPQUFPLENBQUMsRUFBRSxDQUFDLENBQUMsV0FBVyxDQUFDLENBQUM7SUFDM0IsT0FBTyxJQUFJLFdBQVcsQ0FBQyxHQUFHLENBQUMsQ0FBQztBQUM5QixDQUFDO0FBRUQsTUFBTSxHQUFHLEdBQUcsQ0FBQyxLQUFrQyxFQUFFLEdBQUcsSUFBUyxFQUFFLEVBQUU7SUFDL0QsSUFBSSxTQUFTLEVBQUUsSUFBSSxPQUFPLE9BQU8sS0FBSyxXQUFXLEVBQUUsQ0FBQztRQUNsRCxzQ0FBc0M7UUFDdEMsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDLEdBQUcsSUFBSSxDQUFDLENBQUM7SUFDMUIsQ0FBQztBQUNILENBQUMsQ0FBQztBQUVGLE1BQU0scUJBQXFCLEdBQUc7SUFDNUIsT0FBTyxFQUFFLFdBQVc7SUFDcEIsVUFBVSxFQUFFLG1CQUFtQjtJQUMvQixJQUFJLEVBQUU7UUFDSixnQkFBZ0I7UUFDaEIsTUFBTTtRQUNOLENBQUMsSUFBSSxRQUFRLEVBQUUsRUFBRSxpQkFBaUIsQ0FBQztLQUNwQztDQUNGLENBQUM7QUFLRixNQUFNLE9BQU8saUJBQWlCO0lBQzVCLE1BQU0sQ0FBQyxhQUFhLENBQUMsT0FBd0IsRUFBRSxZQUEyQztRQUN4RixPQUFPO1lBQ0wsUUFBUSxFQUFFLGlCQUFpQjtZQUMzQixTQUFTLEVBQUU7Z0JBQ1QsRUFBQyxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsUUFBUSxFQUFFLE9BQU8sRUFBQztnQkFDOUMsRUFBQyxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsUUFBUSxFQUFFLFlBQVksRUFBQzthQUNyRDtTQUNGLENBQUM7SUFDSixDQUFDO0lBRUQsd0RBQXdEO0lBQ3hELFlBQWlDLFVBQWtCO1FBQ2pELFFBQVEsQ0FBQyxlQUFlLENBQUMsYUFBYSxFQUFFLE9BQU8sQ0FBQyxJQUFJLEVBQUUsTUFBTSxDQUFDLENBQUM7UUFDOUQsUUFBUSxDQUFDLGVBQWUsQ0FBQyxhQUFhLEVBQUUsT0FBTyxDQUFDLElBQUksRUFBRSxZQUFZLENBQUMsQ0FBQztRQUNwRSxnRUFBZ0U7UUFDaEUsUUFBUSxDQUFDLGVBQWUsQ0FBQyxTQUFTLEVBQUUsVUFBVSxDQUFDLElBQUksRUFBRSxVQUFVLENBQUMsUUFBUSxFQUFFLENBQUMsQ0FBQztJQUM5RSxDQUFDO3VHQWpCVSxpQkFBaUIsa0JBWVIsV0FBVzt3R0FacEIsaUJBQWlCO3dHQUFqQixpQkFBaUIsYUFGakIsQ0FBQyxxQkFBcUIsQ0FBQzs7MkZBRXZCLGlCQUFpQjtrQkFIN0IsUUFBUTttQkFBQztvQkFDUixTQUFTLEVBQUUsQ0FBQyxxQkFBcUIsQ0FBQztpQkFDbkM7OzBCQWFjLE1BQU07MkJBQUMsV0FBVyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIEluamVjdCwgSW5qZWN0aW9uVG9rZW4sIE1vZHVsZVdpdGhQcm92aWRlcnMsIFZFUlNJT04gYXMgTkdfVkVSU0lPTiwgTmdNb2R1bGUsIE5nWm9uZSwgT3B0aW9uYWwsIFBMQVRGT1JNX0lELCBpc0Rldk1vZGVcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBWRVJTSU9OIH0gZnJvbSAnQGFuZ3VsYXIvZmlyZSc7XG5pbXBvcnQgeyBGaXJlYmFzZUFwcFNldHRpbmdzLCBGaXJlYmFzZU9wdGlvbnMgfSBmcm9tICdmaXJlYmFzZS9hcHAnO1xuaW1wb3J0IGZpcmViYXNlIGZyb20gJ2ZpcmViYXNlL2NvbXBhdC9hcHAnO1xuaW1wb3J0IHsgRmlyZWJhc2VBcHAgfSBmcm9tICcuL2ZpcmViYXNlLmFwcCc7XG5cbmV4cG9ydCBjb25zdCBGSVJFQkFTRV9PUFRJT05TID0gbmV3IEluamVjdGlvblRva2VuPEZpcmViYXNlT3B0aW9ucz4oJ2FuZ3VsYXJmaXJlMi5hcHAub3B0aW9ucycpO1xuZXhwb3J0IGNvbnN0IEZJUkVCQVNFX0FQUF9OQU1FID0gbmV3IEluamVjdGlvblRva2VuPHN0cmluZyB8IHVuZGVmaW5lZD4oJ2FuZ3VsYXJmaXJlMi5hcHAubmFtZScpO1xuXG5cbmV4cG9ydCBmdW5jdGlvbiDJtWZpcmViYXNlQXBwRmFjdG9yeShvcHRpb25zOiBGaXJlYmFzZU9wdGlvbnMsIHpvbmU6IE5nWm9uZSwgbmFtZU9yQ29uZmlnPzogc3RyaW5nIHwgRmlyZWJhc2VBcHBTZXR0aW5ncyB8IG51bGwpIHtcbiAgY29uc3QgbmFtZSA9IHR5cGVvZiBuYW1lT3JDb25maWcgPT09ICdzdHJpbmcnICYmIG5hbWVPckNvbmZpZyB8fCAnW0RFRkFVTFRdJztcbiAgY29uc3QgY29uZmlnID0gdHlwZW9mIG5hbWVPckNvbmZpZyA9PT0gJ29iamVjdCcgJiYgbmFtZU9yQ29uZmlnIHx8IHt9O1xuICBjb25maWcubmFtZSA9IGNvbmZpZy5uYW1lIHx8IG5hbWU7XG4gIC8vIEFkZGVkIGFueSBkdWUgdG8gc29tZSBpbmNvbnNpc3RlbmN5IGJldHdlZW4gQGZpcmViYXNlL2FwcCBhbmQgZmlyZWJhc2UgdHlwZXNcbiAgY29uc3QgZXhpc3RpbmdBcHAgPSBmaXJlYmFzZS5hcHBzLmZpbHRlcihhcHAgPT4gYXBwICYmIGFwcC5uYW1lID09PSBjb25maWcubmFtZSlbMF07XG4gIC8vIFdlIHN1cHBvcnQgRmlyZWJhc2VDb25maWcsIGluaXRpYWxpemVBcHAncyBwdWJsaWMgdHlwZSBvbmx5IGFjY2VwdHMgc3RyaW5nOyBuZWVkIHRvIGNhc3QgYXMgYW55XG4gIC8vIENvdWxkIGJlIHNvbHZlZCB3aXRoIGh0dHBzOi8vZ2l0aHViLmNvbS9maXJlYmFzZS9maXJlYmFzZS1qcy1zZGsvcHVsbC8xMjA2XG4gIGNvbnN0IGFwcCA9IChleGlzdGluZ0FwcCB8fCB6b25lLnJ1bk91dHNpZGVBbmd1bGFyKCgpID0+IGZpcmViYXNlLmluaXRpYWxpemVBcHAob3B0aW9ucywgY29uZmlnIGFzIGFueSkpKTtcbiAgdHJ5IHtcbiAgICBpZiAoSlNPTi5zdHJpbmdpZnkob3B0aW9ucykgIT09IEpTT04uc3RyaW5naWZ5KGFwcC5vcHRpb25zKSkge1xuICAgICAgY29uc3QgaG1yID0gISEobW9kdWxlIGFzIGFueSkuaG90O1xuICAgICAgbG9nKCdlcnJvcicsIGAke2FwcC5uYW1lfSBGaXJlYmFzZSBBcHAgYWxyZWFkeSBpbml0aWFsaXplZCB3aXRoIGRpZmZlcmVudCBvcHRpb25zJHtobXIgPyAnLCB5b3UgbWF5IG5lZWQgdG8gcmVsb2FkIGFzIEZpcmViYXNlIGlzIG5vdCBITVIgYXdhcmUuJyA6ICcuJ31gKTtcbiAgICB9XG4gIH0gY2F0Y2ggKGUpIHsgLyogZW1wdHkgKi8gfVxuICByZXR1cm4gbmV3IEZpcmViYXNlQXBwKGFwcCk7XG59XG5cbmNvbnN0IGxvZyA9IChsZXZlbDogJ2xvZyd8J2Vycm9yJ3wnaW5mbyd8J3dhcm4nLCAuLi5hcmdzOiBhbnkpID0+IHtcbiAgaWYgKGlzRGV2TW9kZSgpICYmIHR5cGVvZiBjb25zb2xlICE9PSAndW5kZWZpbmVkJykge1xuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby1jb25zb2xlXG4gICAgY29uc29sZVtsZXZlbF0oLi4uYXJncyk7XG4gIH1cbn07XG5cbmNvbnN0IEZJUkVCQVNFX0FQUF9QUk9WSURFUiA9IHtcbiAgcHJvdmlkZTogRmlyZWJhc2VBcHAsXG4gIHVzZUZhY3Rvcnk6IMm1ZmlyZWJhc2VBcHBGYWN0b3J5LFxuICBkZXBzOiBbXG4gICAgRklSRUJBU0VfT1BUSU9OUyxcbiAgICBOZ1pvbmUsXG4gICAgW25ldyBPcHRpb25hbCgpLCBGSVJFQkFTRV9BUFBfTkFNRV1cbiAgXVxufTtcblxuQE5nTW9kdWxlKHtcbiAgcHJvdmlkZXJzOiBbRklSRUJBU0VfQVBQX1BST1ZJREVSXVxufSlcbmV4cG9ydCBjbGFzcyBBbmd1bGFyRmlyZU1vZHVsZSB7XG4gIHN0YXRpYyBpbml0aWFsaXplQXBwKG9wdGlvbnM6IEZpcmViYXNlT3B0aW9ucywgbmFtZU9yQ29uZmlnPzogc3RyaW5nIHwgRmlyZWJhc2VBcHBTZXR0aW5ncyk6IE1vZHVsZVdpdGhQcm92aWRlcnM8QW5ndWxhckZpcmVNb2R1bGU+IHtcbiAgICByZXR1cm4ge1xuICAgICAgbmdNb2R1bGU6IEFuZ3VsYXJGaXJlTW9kdWxlLFxuICAgICAgcHJvdmlkZXJzOiBbXG4gICAgICAgIHtwcm92aWRlOiBGSVJFQkFTRV9PUFRJT05TLCB1c2VWYWx1ZTogb3B0aW9uc30sXG4gICAgICAgIHtwcm92aWRlOiBGSVJFQkFTRV9BUFBfTkFNRSwgdXNlVmFsdWU6IG5hbWVPckNvbmZpZ31cbiAgICAgIF1cbiAgICB9O1xuICB9XG5cbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9iYW4tdHlwZXNcbiAgY29uc3RydWN0b3IoQEluamVjdChQTEFURk9STV9JRCkgcGxhdGZvcm1JZDogT2JqZWN0KSB7XG4gICAgZmlyZWJhc2UucmVnaXN0ZXJWZXJzaW9uKCdhbmd1bGFyZmlyZScsIFZFUlNJT04uZnVsbCwgJ2NvcmUnKTtcbiAgICBmaXJlYmFzZS5yZWdpc3RlclZlcnNpb24oJ2FuZ3VsYXJmaXJlJywgVkVSU0lPTi5mdWxsLCAnYXBwLWNvbXBhdCcpO1xuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tYmFzZS10by1zdHJpbmdcbiAgICBmaXJlYmFzZS5yZWdpc3RlclZlcnNpb24oJ2FuZ3VsYXInLCBOR19WRVJTSU9OLmZ1bGwsIHBsYXRmb3JtSWQudG9TdHJpbmcoKSk7XG4gIH1cbn1cbiJdfQ==
@@ -1,5 +0,0 @@
1
- /**
2
- * Generated bundle index. Do not edit.
3
- */
4
- export * from './public_api';
5
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYW5ndWxhci1maXJlLWNvbXBhdC1maXJlc3RvcmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvY29tcGF0L2ZpcmVzdG9yZS9hbmd1bGFyLWZpcmUtY29tcGF0LWZpcmVzdG9yZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7R0FFRztBQUVILGNBQWMsY0FBYyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBHZW5lcmF0ZWQgYnVuZGxlIGluZGV4LiBEbyBub3QgZWRpdC5cbiAqL1xuXG5leHBvcnQgKiBmcm9tICcuL3B1YmxpY19hcGknO1xuIl19