@angular/fire 18.0.1-canary.f379433 → 19.0.0-canary.45ccd39

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 (275) hide show
  1. package/README.md +2 -2
  2. package/analytics/analytics.module.d.ts +2 -2
  3. package/analytics/firebase.d.ts +2 -2
  4. package/analytics/screen-tracking.service.d.ts +1 -1
  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/data-connect/data-connect.d.ts +9 -0
  11. package/data-connect/data-connect.module.d.ts +13 -0
  12. package/data-connect/firebase.d.ts +12 -0
  13. package/{vertexai-preview → data-connect}/index.d.ts +1 -1
  14. package/data-connect/package.json +3 -0
  15. package/data-connect/public_api.d.ts +3 -0
  16. package/docs/install-and-setup.md +10 -5
  17. package/docs/vertexai.md +3 -3
  18. package/fesm2022/angular-fire-analytics.mjs +24 -51
  19. package/fesm2022/angular-fire-analytics.mjs.map +1 -1
  20. package/fesm2022/angular-fire-app-check.mjs +4 -4
  21. package/fesm2022/angular-fire-app-check.mjs.map +1 -1
  22. package/fesm2022/angular-fire-app.mjs +4 -4
  23. package/fesm2022/angular-fire-app.mjs.map +1 -1
  24. package/fesm2022/angular-fire-auth-guard.mjs +7 -7
  25. package/fesm2022/angular-fire-auth-guard.mjs.map +1 -1
  26. package/fesm2022/angular-fire-auth.mjs +5 -5
  27. package/fesm2022/angular-fire-auth.mjs.map +1 -1
  28. package/fesm2022/angular-fire-compat-analytics.mjs +15 -15
  29. package/fesm2022/angular-fire-compat-analytics.mjs.map +1 -1
  30. package/fesm2022/angular-fire-compat-auth-guard.mjs +7 -7
  31. package/fesm2022/angular-fire-compat-auth-guard.mjs.map +1 -1
  32. package/fesm2022/angular-fire-compat-auth.mjs +10 -9
  33. package/fesm2022/angular-fire-compat-auth.mjs.map +1 -1
  34. package/fesm2022/angular-fire-compat-database.mjs +20 -19
  35. package/fesm2022/angular-fire-compat-database.mjs.map +1 -1
  36. package/fesm2022/angular-fire-compat-firestore.mjs +23 -22
  37. package/fesm2022/angular-fire-compat-firestore.mjs.map +1 -1
  38. package/fesm2022/angular-fire-compat-functions.mjs +7 -7
  39. package/fesm2022/angular-fire-compat-functions.mjs.map +1 -1
  40. package/fesm2022/angular-fire-compat-messaging.mjs +7 -7
  41. package/fesm2022/angular-fire-compat-messaging.mjs.map +1 -1
  42. package/fesm2022/angular-fire-compat-performance.mjs +10 -10
  43. package/fesm2022/angular-fire-compat-performance.mjs.map +1 -1
  44. package/fesm2022/angular-fire-compat-remote-config.mjs +10 -9
  45. package/fesm2022/angular-fire-compat-remote-config.mjs.map +1 -1
  46. package/fesm2022/angular-fire-compat-storage.mjs +20 -18
  47. package/fesm2022/angular-fire-compat-storage.mjs.map +1 -1
  48. package/fesm2022/angular-fire-compat.mjs +4 -4
  49. package/fesm2022/angular-fire-compat.mjs.map +1 -1
  50. package/fesm2022/angular-fire-data-connect.mjs +100 -0
  51. package/fesm2022/angular-fire-data-connect.mjs.map +1 -0
  52. package/fesm2022/angular-fire-database.mjs +4 -4
  53. package/fesm2022/angular-fire-database.mjs.map +1 -1
  54. package/fesm2022/angular-fire-firestore-lite.mjs +7 -6
  55. package/fesm2022/angular-fire-firestore-lite.mjs.map +1 -1
  56. package/fesm2022/angular-fire-firestore.mjs +7 -6
  57. package/fesm2022/angular-fire-firestore.mjs.map +1 -1
  58. package/fesm2022/angular-fire-functions.mjs +4 -4
  59. package/fesm2022/angular-fire-functions.mjs.map +1 -1
  60. package/fesm2022/angular-fire-messaging.mjs +15 -42
  61. package/fesm2022/angular-fire-messaging.mjs.map +1 -1
  62. package/fesm2022/angular-fire-performance.mjs +4 -4
  63. package/fesm2022/angular-fire-performance.mjs.map +1 -1
  64. package/fesm2022/angular-fire-remote-config.mjs +16 -43
  65. package/fesm2022/angular-fire-remote-config.mjs.map +1 -1
  66. package/fesm2022/angular-fire-storage.mjs +4 -4
  67. package/fesm2022/angular-fire-storage.mjs.map +1 -1
  68. package/fesm2022/{angular-fire-vertexai-preview.mjs → angular-fire-vertexai.mjs} +7 -7
  69. package/fesm2022/angular-fire-vertexai.mjs.map +1 -0
  70. package/fesm2022/angular-fire.mjs +84 -68
  71. package/fesm2022/angular-fire.mjs.map +1 -1
  72. package/firestore/firebase.d.ts +2 -1
  73. package/firestore/lite/firebase.d.ts +2 -1
  74. package/messaging/firebase.d.ts +2 -2
  75. package/messaging/messaging.module.d.ts +2 -2
  76. package/package.json +21 -76
  77. package/remote-config/firebase.d.ts +2 -2
  78. package/remote-config/remote-config.module.d.ts +2 -2
  79. package/schematics/add/index.js +1 -13
  80. package/schematics/deploy/actions.js +138 -394
  81. package/schematics/deploy/builder.js +139 -61
  82. package/schematics/setup/index.js +94 -64
  83. package/schematics/update/index.js +1 -7
  84. package/schematics/update/v7/index.js +1 -67
  85. package/schematics/versions.json +2 -3
  86. package/{vertexai-preview → vertexai}/firebase.d.ts +2 -2
  87. package/vertexai/index.d.ts +5 -0
  88. package/vertexai/package.json +3 -0
  89. package/{vertexai-preview → vertexai}/vertexai.d.ts +1 -1
  90. package/{vertexai-preview → vertexai}/vertexai.module.d.ts +1 -1
  91. package/zones.d.ts +1 -12
  92. package/analytics/is-analytics-supported-factory.d.ts +0 -4
  93. package/analytics/overrides.d.ts +0 -1
  94. package/esm2022/analytics/analytics.mjs +0 -16
  95. package/esm2022/analytics/analytics.module.mjs +0 -101
  96. package/esm2022/analytics/angular-fire-analytics.mjs +0 -5
  97. package/esm2022/analytics/firebase.mjs +0 -17
  98. package/esm2022/analytics/is-analytics-supported-factory.mjs +0 -16
  99. package/esm2022/analytics/overrides.mjs +0 -3
  100. package/esm2022/analytics/public_api.mjs +0 -6
  101. package/esm2022/analytics/screen-tracking.service.mjs +0 -148
  102. package/esm2022/analytics/user-tracking.service.mjs +0 -44
  103. package/esm2022/angular-fire.mjs +0 -5
  104. package/esm2022/app/angular-fire-app.mjs +0 -5
  105. package/esm2022/app/app.mjs +0 -15
  106. package/esm2022/app/app.module.mjs +0 -91
  107. package/esm2022/app/firebase.mjs +0 -13
  108. package/esm2022/app/public_api.mjs +0 -4
  109. package/esm2022/app-check/angular-fire-app-check.mjs +0 -5
  110. package/esm2022/app-check/app-check.mjs +0 -10
  111. package/esm2022/app-check/app-check.module.mjs +0 -80
  112. package/esm2022/app-check/firebase.mjs +0 -10
  113. package/esm2022/app-check/public_api.mjs +0 -5
  114. package/esm2022/auth/angular-fire-auth.mjs +0 -5
  115. package/esm2022/auth/auth.mjs +0 -16
  116. package/esm2022/auth/auth.module.mjs +0 -73
  117. package/esm2022/auth/firebase.mjs +0 -59
  118. package/esm2022/auth/public_api.mjs +0 -5
  119. package/esm2022/auth/rxfire.mjs +0 -7
  120. package/esm2022/auth-guard/angular-fire-auth-guard.mjs +0 -5
  121. package/esm2022/auth-guard/auth-guard.mjs +0 -53
  122. package/esm2022/auth-guard/auth-guard.module.mjs +0 -20
  123. package/esm2022/auth-guard/public_api.mjs +0 -3
  124. package/esm2022/compat/analytics/analytics.mjs +0 -160
  125. package/esm2022/compat/analytics/analytics.module.mjs +0 -35
  126. package/esm2022/compat/analytics/angular-fire-compat-analytics.mjs +0 -5
  127. package/esm2022/compat/analytics/base.mjs +0 -11
  128. package/esm2022/compat/analytics/public_api.mjs +0 -5
  129. package/esm2022/compat/analytics/screen-tracking.service.mjs +0 -49
  130. package/esm2022/compat/analytics/user-tracking.service.mjs +0 -53
  131. package/esm2022/compat/angular-fire-compat.mjs +0 -5
  132. package/esm2022/compat/auth/angular-fire-compat-auth.mjs +0 -5
  133. package/esm2022/compat/auth/auth.mjs +0 -161
  134. package/esm2022/compat/auth/auth.module.mjs +0 -20
  135. package/esm2022/compat/auth/base.mjs +0 -39
  136. package/esm2022/compat/auth/public_api.mjs +0 -4
  137. package/esm2022/compat/auth-guard/angular-fire-compat-auth-guard.mjs +0 -5
  138. package/esm2022/compat/auth-guard/auth-guard.mjs +0 -53
  139. package/esm2022/compat/auth-guard/auth-guard.module.mjs +0 -20
  140. package/esm2022/compat/auth-guard/public_api.mjs +0 -3
  141. package/esm2022/compat/cache.mjs +0 -33
  142. package/esm2022/compat/database/angular-fire-compat-database.mjs +0 -5
  143. package/esm2022/compat/database/database.mjs +0 -119
  144. package/esm2022/compat/database/database.module.mjs +0 -20
  145. package/esm2022/compat/database/interfaces.mjs +0 -2
  146. package/esm2022/compat/database/list/audit-trail.mjs +0 -47
  147. package/esm2022/compat/database/list/changes.mjs +0 -85
  148. package/esm2022/compat/database/list/create-reference.mjs +0 -44
  149. package/esm2022/compat/database/list/data-operation.mjs +0 -11
  150. package/esm2022/compat/database/list/remove.mjs +0 -16
  151. package/esm2022/compat/database/list/snapshot-changes.mjs +0 -7
  152. package/esm2022/compat/database/list/state-changes.mjs +0 -9
  153. package/esm2022/compat/database/list/utils.mjs +0 -8
  154. package/esm2022/compat/database/object/create-reference.mjs +0 -19
  155. package/esm2022/compat/database/object/snapshot-changes.mjs +0 -7
  156. package/esm2022/compat/database/observable/fromRef.mjs +0 -48
  157. package/esm2022/compat/database/public_api.mjs +0 -9
  158. package/esm2022/compat/database/utils.mjs +0 -36
  159. package/esm2022/compat/firebase.app.mjs +0 -6
  160. package/esm2022/compat/firebase.app.module.mjs +0 -71
  161. package/esm2022/compat/firestore/angular-fire-compat-firestore.mjs +0 -5
  162. package/esm2022/compat/firestore/collection/changes.mjs +0 -108
  163. package/esm2022/compat/firestore/collection/collection.mjs +0 -123
  164. package/esm2022/compat/firestore/collection-group/collection-group.mjs +0 -86
  165. package/esm2022/compat/firestore/document/document.mjs +0 -87
  166. package/esm2022/compat/firestore/firestore.mjs +0 -257
  167. package/esm2022/compat/firestore/firestore.module.mjs +0 -32
  168. package/esm2022/compat/firestore/interfaces.mjs +0 -2
  169. package/esm2022/compat/firestore/observable/fromRef.mjs +0 -40
  170. package/esm2022/compat/firestore/public_api.mjs +0 -9
  171. package/esm2022/compat/functions/angular-fire-compat-functions.mjs +0 -5
  172. package/esm2022/compat/functions/base.mjs +0 -8
  173. package/esm2022/compat/functions/functions.mjs +0 -69
  174. package/esm2022/compat/functions/functions.module.mjs +0 -20
  175. package/esm2022/compat/functions/public_api.mjs +0 -4
  176. package/esm2022/compat/messaging/angular-fire-compat-messaging.mjs +0 -5
  177. package/esm2022/compat/messaging/base.mjs +0 -9
  178. package/esm2022/compat/messaging/messaging.mjs +0 -81
  179. package/esm2022/compat/messaging/messaging.module.mjs +0 -20
  180. package/esm2022/compat/messaging/public_api.mjs +0 -3
  181. package/esm2022/compat/performance/angular-fire-compat-performance.mjs +0 -5
  182. package/esm2022/compat/performance/base.mjs +0 -9
  183. package/esm2022/compat/performance/performance.mjs +0 -105
  184. package/esm2022/compat/performance/performance.module.mjs +0 -27
  185. package/esm2022/compat/performance/performance.service.mjs +0 -28
  186. package/esm2022/compat/performance/public_api.mjs +0 -4
  187. package/esm2022/compat/proxy.mjs +0 -58
  188. package/esm2022/compat/public_api.mjs +0 -5
  189. package/esm2022/compat/remote-config/angular-fire-compat-remote-config.mjs +0 -5
  190. package/esm2022/compat/remote-config/base.mjs +0 -20
  191. package/esm2022/compat/remote-config/interfaces.mjs +0 -2
  192. package/esm2022/compat/remote-config/public_api.mjs +0 -3
  193. package/esm2022/compat/remote-config/remote-config.mjs +0 -206
  194. package/esm2022/compat/remote-config/remote-config.module.mjs +0 -20
  195. package/esm2022/compat/storage/angular-fire-compat-storage.mjs +0 -5
  196. package/esm2022/compat/storage/interfaces.mjs +0 -2
  197. package/esm2022/compat/storage/observable/fromTask.mjs +0 -36
  198. package/esm2022/compat/storage/pipes/storageUrl.pipe.mjs +0 -56
  199. package/esm2022/compat/storage/public_api.mjs +0 -7
  200. package/esm2022/compat/storage/ref.mjs +0 -28
  201. package/esm2022/compat/storage/storage.mjs +0 -95
  202. package/esm2022/compat/storage/storage.module.mjs +0 -22
  203. package/esm2022/compat/storage/task.mjs +0 -21
  204. package/esm2022/core.mjs +0 -43
  205. package/esm2022/database/angular-fire-database.mjs +0 -5
  206. package/esm2022/database/database.mjs +0 -16
  207. package/esm2022/database/database.module.mjs +0 -76
  208. package/esm2022/database/firebase.mjs +0 -44
  209. package/esm2022/database/public_api.mjs +0 -5
  210. package/esm2022/database/rxfire.mjs +0 -13
  211. package/esm2022/firestore/angular-fire-firestore.mjs +0 -5
  212. package/esm2022/firestore/firebase.mjs +0 -73
  213. package/esm2022/firestore/firestore.mjs +0 -16
  214. package/esm2022/firestore/firestore.module.mjs +0 -76
  215. package/esm2022/firestore/lite/angular-fire-firestore-lite.mjs +0 -5
  216. package/esm2022/firestore/lite/firebase.mjs +0 -48
  217. package/esm2022/firestore/lite/lite.mjs +0 -16
  218. package/esm2022/firestore/lite/lite.module.mjs +0 -75
  219. package/esm2022/firestore/lite/public_api.mjs +0 -5
  220. package/esm2022/firestore/lite/rxfire.mjs +0 -12
  221. package/esm2022/firestore/public_api.mjs +0 -5
  222. package/esm2022/firestore/rxfire.mjs +0 -15
  223. package/esm2022/functions/angular-fire-functions.mjs +0 -5
  224. package/esm2022/functions/firebase.mjs +0 -9
  225. package/esm2022/functions/functions.mjs +0 -16
  226. package/esm2022/functions/functions.module.mjs +0 -76
  227. package/esm2022/functions/public_api.mjs +0 -5
  228. package/esm2022/functions/rxfire.mjs +0 -5
  229. package/esm2022/messaging/angular-fire-messaging.mjs +0 -5
  230. package/esm2022/messaging/firebase.mjs +0 -10
  231. package/esm2022/messaging/is-messaging-supported-factory.mjs +0 -16
  232. package/esm2022/messaging/messaging.mjs +0 -16
  233. package/esm2022/messaging/messaging.module.mjs +0 -93
  234. package/esm2022/messaging/overrides.mjs +0 -3
  235. package/esm2022/messaging/public_api.mjs +0 -4
  236. package/esm2022/performance/angular-fire-performance.mjs +0 -5
  237. package/esm2022/performance/firebase.mjs +0 -8
  238. package/esm2022/performance/performance.mjs +0 -16
  239. package/esm2022/performance/performance.module.mjs +0 -83
  240. package/esm2022/performance/public_api.mjs +0 -5
  241. package/esm2022/performance/rxfire.mjs +0 -8
  242. package/esm2022/public_api.mjs +0 -3
  243. package/esm2022/remote-config/angular-fire-remote-config.mjs +0 -5
  244. package/esm2022/remote-config/firebase.mjs +0 -17
  245. package/esm2022/remote-config/is-remote-config-supported-factory.mjs +0 -16
  246. package/esm2022/remote-config/overrides.mjs +0 -3
  247. package/esm2022/remote-config/public_api.mjs +0 -5
  248. package/esm2022/remote-config/remote-config.mjs +0 -16
  249. package/esm2022/remote-config/remote-config.module.mjs +0 -93
  250. package/esm2022/remote-config/rxfire.mjs +0 -9
  251. package/esm2022/storage/angular-fire-storage.mjs +0 -5
  252. package/esm2022/storage/firebase.mjs +0 -20
  253. package/esm2022/storage/public_api.mjs +0 -5
  254. package/esm2022/storage/rxfire.mjs +0 -6
  255. package/esm2022/storage/storage.mjs +0 -16
  256. package/esm2022/storage/storage.module.mjs +0 -76
  257. package/esm2022/vertexai-preview/angular-fire-vertexai-preview.mjs +0 -5
  258. package/esm2022/vertexai-preview/firebase.mjs +0 -7
  259. package/esm2022/vertexai-preview/public_api.mjs +0 -4
  260. package/esm2022/vertexai-preview/vertexai.mjs +0 -16
  261. package/esm2022/vertexai-preview/vertexai.module.mjs +0 -73
  262. package/esm2022/zones.mjs +0 -174
  263. package/fesm2022/angular-fire-vertexai-preview.mjs.map +0 -1
  264. package/messaging/is-messaging-supported-factory.d.ts +0 -4
  265. package/messaging/overrides.d.ts +0 -1
  266. package/remote-config/is-remote-config-supported-factory.d.ts +0 -4
  267. package/remote-config/overrides.d.ts +0 -1
  268. package/schematics/common.js +0 -81
  269. package/schematics/deploy/functions-templates.js +0 -57
  270. package/schematics/firebaseTools.js +0 -78
  271. package/schematics/interfaces.js +0 -16
  272. package/schematics/setup/prompts.js +0 -195
  273. package/schematics/utils.js +0 -189
  274. package/vertexai-preview/package.json +0 -3
  275. /package/{vertexai-preview → vertexai}/public_api.d.ts +0 -0
@@ -1 +1 @@
1
- {"version":3,"file":"angular-fire-compat-remote-config.mjs","sources":["../../../src/compat/remote-config/base.ts","../../../src/compat/remote-config/remote-config.ts","../../../src/compat/remote-config/remote-config.module.ts","../../../src/compat/remote-config/angular-fire-compat-remote-config.ts"],"sourcesContent":["// DO NOT MODIFY, this file is autogenerated by tools/build.ts\n// Export a null object with the same keys as firebase/compat/remote-config, so Proxy can work with proxy-polyfill in Internet Explorer\nexport const proxyPolyfillCompat = {\n app: null,\n settings: null,\n defaultConfig: null,\n fetchTimeMillis: null,\n lastFetchStatus: null,\n activate: null,\n ensureInitialized: null,\n fetch: null,\n fetchAndActivate: null,\n getAll: null,\n getBoolean: null,\n getNumber: null,\n getString: null,\n getValue: null,\n setLogLevel: null,\n};\n","import { Inject, Injectable, InjectionToken, NgZone, Optional, PLATFORM_ID } from '@angular/core';\nimport { keepUnstableUntilFirst, ɵAngularFireSchedulers } from '@angular/fire';\nimport { ɵPromiseProxy, ɵapplyMixins, ɵlazySDKProxy } from '@angular/fire/compat';\nimport { FIREBASE_APP_NAME, FIREBASE_OPTIONS, ɵcacheInstance, ɵfirebaseAppFactory } from '@angular/fire/compat';\nimport { FirebaseOptions } from 'firebase/app';\nimport firebase from 'firebase/compat/app';\nimport { isSupported } from 'firebase/remote-config';\nimport { EMPTY, MonoTypeOperatorFunction, Observable, OperatorFunction, concat, of, pipe } from 'rxjs';\nimport {\n debounceTime,\n distinctUntilChanged,\n filter,\n groupBy,\n map,\n mergeMap,\n observeOn,\n scan,\n shareReplay,\n startWith,\n switchMap,\n withLatestFrom\n} from 'rxjs/operators';\nimport { proxyPolyfillCompat } from './base';\nimport { Settings } from './interfaces';\n\nexport type ConfigTemplate = Record<string, string | number | boolean>;\n\nexport const SETTINGS = new InjectionToken<Settings>('angularfire2.remoteConfig.settings');\nexport const DEFAULTS = new InjectionToken<ConfigTemplate>('angularfire2.remoteConfig.defaultConfig');\n\n// eslint-disable-next-line @typescript-eslint/no-empty-interface\nexport interface AngularFireRemoteConfig extends ɵPromiseProxy<firebase.remoteConfig.RemoteConfig> {\n}\n\nconst AS_TO_FN = { strings: 'asString', numbers: 'asNumber', booleans: 'asBoolean' };\nconst STATIC_VALUES = { numbers: 0, booleans: false, strings: undefined };\n\n// TODO look into the types here, I don't like the anys\nconst proxyAll = (observable: Observable<Parameter[]>, as: 'numbers' | 'booleans' | 'strings') => new Proxy(\n observable.pipe(mapToObject(as as any)), {\n get: (self, name: string) => self[name] || observable.pipe(\n map(all => all.find(p => p.key === name)),\n map(param => param ? param[AS_TO_FN[as]]() : STATIC_VALUES[as]),\n distinctUntilChanged()\n )\n }\n) as any;\n\n// TODO export as implements Partial<...> so minor doesn't break us\nexport class Value implements firebase.remoteConfig.Value {\n asBoolean() {\n return ['1', 'true', 't', 'y', 'yes', 'on'].indexOf(this._value.toLowerCase()) > -1;\n }\n\n asString() {\n return this._value;\n }\n\n asNumber() {\n return Number(this._value) || 0;\n }\n\n getSource() {\n return this._source;\n }\n\n constructor(public _source: firebase.remoteConfig.ValueSource, public _value: string) {\n }\n}\n\n// SEMVER use ConstructorParameters when we can support Typescript 3.6\nexport class Parameter extends Value {\n constructor(public key: string, public fetchTimeMillis: number, source: firebase.remoteConfig.ValueSource, value: string) {\n super(source, value);\n }\n}\n\n// If it's a Parameter array, test any, else test the individual Parameter\nconst filterTest = (fn: (param: Parameter) => boolean) => filter<Parameter | Parameter[]>(it => Array.isArray(it) ? it.some(fn) : fn(it));\n\n// Allow the user to bypass the default values and wait till they get something from the server, even if it's a cached copy;\n// if used in conjuntion with first() it will only fetch RC values from the server if they aren't cached locally\nexport const filterRemote = () => filterTest(p => p.getSource() === 'remote');\n\n// filterFresh allows the developer to effectively set up a maximum cache time\nexport const filterFresh = (howRecentInMillis: number) => filterTest(p => p.fetchTimeMillis + howRecentInMillis >= new Date().getTime());\n\n\n// I ditched loading the defaults into RC and a simple map for scan since we already have our own defaults implementation.\n// The idea here being that if they have a default that never loads from the server, they will be able to tell via fetchTimeMillis\n// on the Parameter. Also if it doesn't come from the server it won't emit again in .changes, due to the distinctUntilChanged,\n// which we can simplify to === rather than deep comparison\nconst scanToParametersArray = (\n remoteConfig: Observable<firebase.remoteConfig.RemoteConfig | undefined>\n): OperatorFunction<Record<string, firebase.remoteConfig.Value>, Parameter[]> => pipe(\n withLatestFrom(remoteConfig),\n scan((existing, [all, rc]) => {\n // SEMVER use \"new Set\" to unique once we're only targeting es6\n // at the scale we expect remote config to be at, we probably won't see a performance hit from this unoptimized uniqueness\n // implementation.\n // const allKeys = [...new Set([...existing.map(p => p.key), ...Object.keys(all)])];\n const allKeys = [...existing.map(p => p.key), ...Object.keys(all)].filter((v, i, a) => a.indexOf(v) === i);\n return allKeys.map(key => {\n const updatedValue = all[key];\n return updatedValue ? new Parameter(key, rc ? rc.fetchTimeMillis : -1, updatedValue.getSource(), updatedValue.asString())\n : existing.find(p => p.key === key);\n });\n }, [] as Parameter[])\n);\n\n\n@Injectable({\n providedIn: 'any'\n})\nexport class AngularFireRemoteConfig {\n\n readonly changes: Observable<Parameter>;\n readonly parameters: Observable<Parameter[]>;\n readonly numbers: Observable<Record<string, number | undefined>> & Record<string, Observable<number>>;\n readonly booleans: Observable<Record<string, boolean | undefined>> & Record<string, Observable<boolean>>;\n readonly strings: Observable<Record<string, string | undefined>> & Record<string, Observable<string | undefined>>;\n\n constructor(\n @Inject(FIREBASE_OPTIONS) options: FirebaseOptions,\n @Optional() @Inject(FIREBASE_APP_NAME) name: string | null | undefined,\n @Optional() @Inject(SETTINGS) settings: Settings | null,\n @Optional() @Inject(DEFAULTS) defaultConfig: ConfigTemplate | null,\n private zone: NgZone,\n schedulers: ɵAngularFireSchedulers,\n // eslint-disable-next-line @typescript-eslint/no-unused-vars,@typescript-eslint/ban-types\n @Inject(PLATFORM_ID) platformId: Object\n ) {\n const remoteConfig$ = of(undefined).pipe(\n observeOn(schedulers.outsideAngular),\n switchMap(() => isSupported()),\n switchMap(isSupported => isSupported ? import('firebase/compat/remote-config') : EMPTY),\n map(() => ɵfirebaseAppFactory(options, zone, name)),\n map(app => ɵcacheInstance(`${app.name}.remote-config`, 'AngularFireRemoteConfig', app.name, () => {\n const rc = app.remoteConfig();\n if (settings) {\n rc.settings = settings;\n }\n if (defaultConfig) {\n rc.defaultConfig = defaultConfig;\n }\n return rc;\n }, [settings, defaultConfig])),\n startWith<firebase.remoteConfig.RemoteConfig, undefined>(undefined),\n shareReplay({ bufferSize: 1, refCount: false })\n ) as Observable<any>;\n\n const loadedRemoteConfig$ = remoteConfig$.pipe(\n filter<firebase.remoteConfig.RemoteConfig>(rc => !!rc)\n );\n\n const default$: Observable<Record<string, firebase.remoteConfig.Value>> = of(Object.keys(defaultConfig || {}).reduce(\n (c, k) => ({ ...c, [k]: new Value('default', defaultConfig[k].toString()) }), {}\n ));\n\n // we should filter out the defaults we provided to RC, since we have our own implementation\n // that gives us a -1 for fetchTimeMillis (so filterFresh can filter them out)\n const filterOutDefaults = map<Record<string, firebase.remoteConfig.Value>, Record<string, firebase.remoteConfig.Value>>(all =>\n Object.keys(all)\n .filter(key => all[key].getSource() !== 'default')\n .reduce((acc, key) => ({ ...acc, [key]: all[key] }), {})\n );\n\n const existing$ = loadedRemoteConfig$.pipe(\n switchMap(rc =>\n rc.activate()\n .then(() => rc.ensureInitialized())\n .then(() => rc.getAll())\n ),\n filterOutDefaults\n );\n\n const fresh$ = loadedRemoteConfig$.pipe(\n switchMap(rc => zone.runOutsideAngular(() =>\n rc.fetchAndActivate()\n .then(() => rc.ensureInitialized())\n .then(() => rc.getAll())\n )),\n filterOutDefaults\n );\n\n this.parameters = concat(default$, existing$, fresh$).pipe(\n scanToParametersArray(remoteConfig$),\n keepUnstableUntilFirst,\n shareReplay({ bufferSize: 1, refCount: true })\n );\n\n this.changes = this.parameters.pipe(\n switchMap(params => of(...params)),\n groupBy(param => param.key),\n mergeMap(group => group.pipe(\n distinctUntilChanged()\n ))\n );\n\n this.strings = proxyAll(this.parameters, 'strings');\n this.booleans = proxyAll(this.parameters, 'booleans');\n this.numbers = proxyAll(this.parameters, 'numbers');\n\n return ɵlazySDKProxy(this, loadedRemoteConfig$, zone);\n }\n\n}\n\n\nexport const budget = <T>(interval: number): MonoTypeOperatorFunction<T> => (source: Observable<T>) => new Observable<T>(observer => {\n let timedOut = false;\n // TODO use scheduler task rather than settimeout\n const timeout = setTimeout(() => {\n observer.complete();\n timedOut = true;\n }, interval);\n return source.subscribe({\n next(val) {\n if (!timedOut) {\n observer.next(val);\n }\n },\n error(err) {\n if (!timedOut) {\n clearTimeout(timeout);\n observer.error(err);\n }\n },\n complete() {\n if (!timedOut) {\n clearTimeout(timeout);\n observer.complete();\n }\n }\n });\n});\n\nconst typedMethod = (it: any) => {\n switch (typeof it) {\n case 'string':\n return 'asString';\n case 'boolean':\n return 'asBoolean';\n case 'number':\n return 'asNumber';\n default:\n return 'asString';\n }\n};\n\n\nexport function scanToObject(): OperatorFunction<Parameter, Record<string, string | undefined>>;\nexport function scanToObject(to: 'numbers'): OperatorFunction<Parameter, Record<string, number | undefined>>;\nexport function scanToObject(to: 'booleans'): OperatorFunction<Parameter, Record<string, boolean | undefined>>;\n// eslint-disable-next-line @typescript-eslint/unified-signatures\nexport function scanToObject(to: 'strings'): OperatorFunction<Parameter, Record<string, string | undefined>>;\nexport function scanToObject<T extends ConfigTemplate>(template: T): OperatorFunction<Parameter, T & Record<string, string | undefined>>;\nexport function scanToObject<T extends ConfigTemplate>(to: 'numbers' | 'booleans' | 'strings' | T = 'strings') {\n return pipe(\n // TODO cleanup\n scan(\n (c, p: Parameter) => ({\n ...c, [p.key]: typeof to === 'object' ?\n p[typedMethod(to[p.key])]() :\n p[AS_TO_FN[to]]()\n }),\n typeof to === 'object' ?\n to as T & Record<string, string | undefined> :\n {} as Record<string, number | boolean | string>\n ),\n debounceTime(1),\n budget(10),\n distinctUntilChanged((a, b) => JSON.stringify(a) === JSON.stringify(b))\n );\n}\n\nexport function mapToObject(): OperatorFunction<Parameter[], Record<string, string | undefined>>;\nexport function mapToObject(to: 'numbers'): OperatorFunction<Parameter[], Record<string, number | undefined>>;\nexport function mapToObject(to: 'booleans'): OperatorFunction<Parameter[], Record<string, boolean | undefined>>;\n// eslint-disable-next-line @typescript-eslint/unified-signatures\nexport function mapToObject(to: 'strings'): OperatorFunction<Parameter[], Record<string, string | undefined>>;\nexport function mapToObject<T extends ConfigTemplate>(template: T):\n OperatorFunction<Parameter[], T & Record<string, string | undefined>>;\nexport function mapToObject<T extends ConfigTemplate>(to: 'numbers' | 'booleans' | 'strings' | T = 'strings') {\n return pipe(\n // TODO this is getting a little long, cleanup\n map((params: Parameter[]) => params.reduce(\n (c, p) => ({\n ...c, [p.key]: typeof to === 'object' ?\n p[typedMethod(to[p.key])]() :\n p[AS_TO_FN[to]]()\n }),\n typeof to === 'object' ?\n to as T & Record<string, string | undefined> :\n {} as Record<string, number | boolean | string>\n )),\n distinctUntilChanged((a, b) => JSON.stringify(a) === JSON.stringify(b))\n );\n}\n\nɵapplyMixins(AngularFireRemoteConfig, [proxyPolyfillCompat]);\n","import { NgModule } from '@angular/core';\nimport { VERSION } from '@angular/fire';\nimport firebase from 'firebase/compat/app';\nimport { AngularFireRemoteConfig } from './remote-config';\n\n@NgModule({\n providers: [ AngularFireRemoteConfig ]\n})\nexport class AngularFireRemoteConfigModule {\n constructor() {\n firebase.registerVersion('angularfire', VERSION.full, 'rc-compat');\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":["ɵfirebaseAppFactory","ɵcacheInstance","ɵlazySDKProxy","ɵapplyMixins"],"mappings":"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"}
1
+ {"version":3,"file":"angular-fire-compat-remote-config.mjs","sources":["../../../src/compat/remote-config/base.ts","../../../src/compat/remote-config/remote-config.ts","../../../src/compat/remote-config/remote-config.module.ts","../../../src/compat/remote-config/angular-fire-compat-remote-config.ts"],"sourcesContent":["// DO NOT MODIFY, this file is autogenerated by tools/build.ts\n// Export a null object with the same keys as firebase/compat/remote-config, so Proxy can work with proxy-polyfill in Internet Explorer\nexport const proxyPolyfillCompat = {\n app: null,\n settings: null,\n defaultConfig: null,\n fetchTimeMillis: null,\n lastFetchStatus: null,\n activate: null,\n ensureInitialized: null,\n fetch: null,\n fetchAndActivate: null,\n getAll: null,\n getBoolean: null,\n getNumber: null,\n getString: null,\n getValue: null,\n setLogLevel: null,\n};\n","import { Inject, Injectable, InjectionToken, NgZone, Optional, PLATFORM_ID } from '@angular/core';\nimport { pendingUntilEvent } from '@angular/core/rxjs-interop';\nimport { ɵAngularFireSchedulers } from '@angular/fire';\nimport { ɵPromiseProxy, ɵapplyMixins, ɵlazySDKProxy } from '@angular/fire/compat';\nimport { FIREBASE_APP_NAME, FIREBASE_OPTIONS, ɵcacheInstance, ɵfirebaseAppFactory } from '@angular/fire/compat';\nimport { FirebaseOptions } from 'firebase/app';\nimport firebase from 'firebase/compat/app';\nimport { isSupported } from 'firebase/remote-config';\nimport { EMPTY, MonoTypeOperatorFunction, Observable, OperatorFunction, concat, of, pipe } from 'rxjs';\nimport {\n debounceTime,\n distinctUntilChanged,\n filter,\n groupBy,\n map,\n mergeMap,\n observeOn,\n scan,\n shareReplay,\n startWith,\n switchMap,\n withLatestFrom\n} from 'rxjs/operators';\nimport { proxyPolyfillCompat } from './base';\nimport { Settings } from './interfaces';\n\nexport type ConfigTemplate = Record<string, string | number | boolean>;\n\nexport const SETTINGS = new InjectionToken<Settings>('angularfire2.remoteConfig.settings');\nexport const DEFAULTS = new InjectionToken<ConfigTemplate>('angularfire2.remoteConfig.defaultConfig');\n\n// eslint-disable-next-line @typescript-eslint/no-empty-interface\nexport interface AngularFireRemoteConfig extends ɵPromiseProxy<firebase.remoteConfig.RemoteConfig> {\n}\n\nconst AS_TO_FN = { strings: 'asString', numbers: 'asNumber', booleans: 'asBoolean' };\nconst STATIC_VALUES = { numbers: 0, booleans: false, strings: undefined };\n\n// TODO look into the types here, I don't like the anys\nconst proxyAll = (observable: Observable<Parameter[]>, as: 'numbers' | 'booleans' | 'strings') => new Proxy(\n observable.pipe(mapToObject(as as any)), {\n get: (self, name: string) => self[name] || observable.pipe(\n map(all => all.find(p => p.key === name)),\n map(param => param ? param[AS_TO_FN[as]]() : STATIC_VALUES[as]),\n distinctUntilChanged()\n )\n }\n) as any;\n\n// TODO export as implements Partial<...> so minor doesn't break us\nexport class Value implements firebase.remoteConfig.Value {\n asBoolean() {\n return ['1', 'true', 't', 'y', 'yes', 'on'].indexOf(this._value.toLowerCase()) > -1;\n }\n\n asString() {\n return this._value;\n }\n\n asNumber() {\n return Number(this._value) || 0;\n }\n\n getSource() {\n return this._source;\n }\n\n constructor(public _source: firebase.remoteConfig.ValueSource, public _value: string) {\n }\n}\n\n// SEMVER use ConstructorParameters when we can support Typescript 3.6\nexport class Parameter extends Value {\n constructor(public key: string, public fetchTimeMillis: number, source: firebase.remoteConfig.ValueSource, value: string) {\n super(source, value);\n }\n}\n\n// If it's a Parameter array, test any, else test the individual Parameter\nconst filterTest = (fn: (param: Parameter) => boolean) => filter<Parameter | Parameter[]>(it => Array.isArray(it) ? it.some(fn) : fn(it));\n\n// Allow the user to bypass the default values and wait till they get something from the server, even if it's a cached copy;\n// if used in conjuntion with first() it will only fetch RC values from the server if they aren't cached locally\nexport const filterRemote = () => filterTest(p => p.getSource() === 'remote');\n\n// filterFresh allows the developer to effectively set up a maximum cache time\nexport const filterFresh = (howRecentInMillis: number) => filterTest(p => p.fetchTimeMillis + howRecentInMillis >= new Date().getTime());\n\n\n// I ditched loading the defaults into RC and a simple map for scan since we already have our own defaults implementation.\n// The idea here being that if they have a default that never loads from the server, they will be able to tell via fetchTimeMillis\n// on the Parameter. Also if it doesn't come from the server it won't emit again in .changes, due to the distinctUntilChanged,\n// which we can simplify to === rather than deep comparison\nconst scanToParametersArray = (\n remoteConfig: Observable<firebase.remoteConfig.RemoteConfig | undefined>\n): OperatorFunction<Record<string, firebase.remoteConfig.Value>, Parameter[]> => pipe(\n withLatestFrom(remoteConfig),\n scan((existing, [all, rc]) => {\n // SEMVER use \"new Set\" to unique once we're only targeting es6\n // at the scale we expect remote config to be at, we probably won't see a performance hit from this unoptimized uniqueness\n // implementation.\n // const allKeys = [...new Set([...existing.map(p => p.key), ...Object.keys(all)])];\n const allKeys = [...existing.map(p => p.key), ...Object.keys(all)].filter((v, i, a) => a.indexOf(v) === i);\n return allKeys.map(key => {\n const updatedValue = all[key];\n return updatedValue ? new Parameter(key, rc ? rc.fetchTimeMillis : -1, updatedValue.getSource(), updatedValue.asString())\n : existing.find(p => p.key === key);\n });\n }, [] as Parameter[])\n);\n\n\n@Injectable({\n providedIn: 'any'\n})\nexport class AngularFireRemoteConfig {\n\n readonly changes: Observable<Parameter>;\n readonly parameters: Observable<Parameter[]>;\n readonly numbers: Observable<Record<string, number | undefined>> & Record<string, Observable<number>>;\n readonly booleans: Observable<Record<string, boolean | undefined>> & Record<string, Observable<boolean>>;\n readonly strings: Observable<Record<string, string | undefined>> & Record<string, Observable<string | undefined>>;\n\n constructor(\n @Inject(FIREBASE_OPTIONS) options: FirebaseOptions,\n @Optional() @Inject(FIREBASE_APP_NAME) name: string | null | undefined,\n @Optional() @Inject(SETTINGS) settings: Settings | null,\n @Optional() @Inject(DEFAULTS) defaultConfig: ConfigTemplate | null,\n private zone: NgZone,\n schedulers: ɵAngularFireSchedulers,\n // eslint-disable-next-line @typescript-eslint/no-unused-vars,@typescript-eslint/ban-types\n @Inject(PLATFORM_ID) platformId: Object\n ) {\n const remoteConfig$ = of(undefined).pipe(\n observeOn(schedulers.outsideAngular),\n switchMap(() => isSupported()),\n switchMap(isSupported => isSupported ? import('firebase/compat/remote-config') : EMPTY),\n map(() => ɵfirebaseAppFactory(options, zone, name)),\n map(app => ɵcacheInstance(`${app.name}.remote-config`, 'AngularFireRemoteConfig', app.name, () => {\n const rc = app.remoteConfig();\n if (settings) {\n rc.settings = settings;\n }\n if (defaultConfig) {\n rc.defaultConfig = defaultConfig;\n }\n return rc;\n }, [settings, defaultConfig])),\n startWith<firebase.remoteConfig.RemoteConfig, undefined>(undefined),\n shareReplay({ bufferSize: 1, refCount: false })\n ) as Observable<any>;\n\n const loadedRemoteConfig$ = remoteConfig$.pipe(\n filter<firebase.remoteConfig.RemoteConfig>(rc => !!rc)\n );\n\n const default$: Observable<Record<string, firebase.remoteConfig.Value>> = of(Object.keys(defaultConfig || {}).reduce(\n (c, k) => ({ ...c, [k]: new Value('default', defaultConfig[k].toString()) }), {}\n ));\n\n // we should filter out the defaults we provided to RC, since we have our own implementation\n // that gives us a -1 for fetchTimeMillis (so filterFresh can filter them out)\n const filterOutDefaults = map<Record<string, firebase.remoteConfig.Value>, Record<string, firebase.remoteConfig.Value>>(all =>\n Object.keys(all)\n .filter(key => all[key].getSource() !== 'default')\n .reduce((acc, key) => ({ ...acc, [key]: all[key] }), {})\n );\n\n const existing$ = loadedRemoteConfig$.pipe(\n switchMap(rc =>\n rc.activate()\n .then(() => rc.ensureInitialized())\n .then(() => rc.getAll())\n ),\n filterOutDefaults\n );\n\n const fresh$ = loadedRemoteConfig$.pipe(\n switchMap(rc => zone.runOutsideAngular(() =>\n rc.fetchAndActivate()\n .then(() => rc.ensureInitialized())\n .then(() => rc.getAll())\n )),\n filterOutDefaults\n );\n\n this.parameters = concat(default$, existing$, fresh$).pipe(\n scanToParametersArray(remoteConfig$),\n pendingUntilEvent(),\n shareReplay({ bufferSize: 1, refCount: true })\n );\n\n this.changes = this.parameters.pipe(\n switchMap(params => of(...params)),\n groupBy(param => param.key),\n mergeMap(group => group.pipe(\n distinctUntilChanged()\n ))\n );\n\n this.strings = proxyAll(this.parameters, 'strings');\n this.booleans = proxyAll(this.parameters, 'booleans');\n this.numbers = proxyAll(this.parameters, 'numbers');\n\n return ɵlazySDKProxy(this, loadedRemoteConfig$, zone);\n }\n\n}\n\n\nexport const budget = <T>(interval: number): MonoTypeOperatorFunction<T> => (source: Observable<T>) => new Observable<T>(observer => {\n let timedOut = false;\n // TODO use scheduler task rather than settimeout\n const timeout = setTimeout(() => {\n observer.complete();\n timedOut = true;\n }, interval);\n return source.subscribe({\n next(val) {\n if (!timedOut) {\n observer.next(val);\n }\n },\n error(err) {\n if (!timedOut) {\n clearTimeout(timeout);\n observer.error(err);\n }\n },\n complete() {\n if (!timedOut) {\n clearTimeout(timeout);\n observer.complete();\n }\n }\n });\n});\n\nconst typedMethod = (it: any) => {\n switch (typeof it) {\n case 'string':\n return 'asString';\n case 'boolean':\n return 'asBoolean';\n case 'number':\n return 'asNumber';\n default:\n return 'asString';\n }\n};\n\n\nexport function scanToObject(): OperatorFunction<Parameter, Record<string, string | undefined>>;\nexport function scanToObject(to: 'numbers'): OperatorFunction<Parameter, Record<string, number | undefined>>;\nexport function scanToObject(to: 'booleans'): OperatorFunction<Parameter, Record<string, boolean | undefined>>;\n// eslint-disable-next-line @typescript-eslint/unified-signatures\nexport function scanToObject(to: 'strings'): OperatorFunction<Parameter, Record<string, string | undefined>>;\nexport function scanToObject<T extends ConfigTemplate>(template: T): OperatorFunction<Parameter, T & Record<string, string | undefined>>;\nexport function scanToObject<T extends ConfigTemplate>(to: 'numbers' | 'booleans' | 'strings' | T = 'strings') {\n return pipe(\n // TODO cleanup\n scan(\n (c, p: Parameter) => ({\n ...c, [p.key]: typeof to === 'object' ?\n p[typedMethod(to[p.key])]() :\n p[AS_TO_FN[to]]()\n }),\n typeof to === 'object' ?\n to as T & Record<string, string | undefined> :\n {} as Record<string, number | boolean | string>\n ),\n debounceTime(1),\n budget(10),\n distinctUntilChanged((a, b) => JSON.stringify(a) === JSON.stringify(b))\n );\n}\n\nexport function mapToObject(): OperatorFunction<Parameter[], Record<string, string | undefined>>;\nexport function mapToObject(to: 'numbers'): OperatorFunction<Parameter[], Record<string, number | undefined>>;\nexport function mapToObject(to: 'booleans'): OperatorFunction<Parameter[], Record<string, boolean | undefined>>;\n// eslint-disable-next-line @typescript-eslint/unified-signatures\nexport function mapToObject(to: 'strings'): OperatorFunction<Parameter[], Record<string, string | undefined>>;\nexport function mapToObject<T extends ConfigTemplate>(template: T):\n OperatorFunction<Parameter[], T & Record<string, string | undefined>>;\nexport function mapToObject<T extends ConfigTemplate>(to: 'numbers' | 'booleans' | 'strings' | T = 'strings') {\n return pipe(\n // TODO this is getting a little long, cleanup\n map((params: Parameter[]) => params.reduce(\n (c, p) => ({\n ...c, [p.key]: typeof to === 'object' ?\n p[typedMethod(to[p.key])]() :\n p[AS_TO_FN[to]]()\n }),\n typeof to === 'object' ?\n to as T & Record<string, string | undefined> :\n {} as Record<string, number | boolean | string>\n )),\n distinctUntilChanged((a, b) => JSON.stringify(a) === JSON.stringify(b))\n );\n}\n\nɵapplyMixins(AngularFireRemoteConfig, [proxyPolyfillCompat]);\n","import { NgModule } from '@angular/core';\nimport { VERSION } from '@angular/fire';\nimport firebase from 'firebase/compat/app';\nimport { AngularFireRemoteConfig } from './remote-config';\n\n@NgModule({\n providers: [ AngularFireRemoteConfig ]\n})\nexport class AngularFireRemoteConfigModule {\n constructor() {\n firebase.registerVersion('angularfire', VERSION.full, 'rc-compat');\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":["ɵfirebaseAppFactory","ɵcacheInstance","ɵlazySDKProxy","ɵapplyMixins"],"mappings":"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"}
@@ -1,5 +1,6 @@
1
+ import { pendingUntilEvent } from '@angular/core/rxjs-interop';
1
2
  import * as i1 from '@angular/fire';
2
- import { observeOutsideAngular, keepUnstableUntilFirst, VERSION } from '@angular/fire';
3
+ import { observeOutsideAngular, VERSION } from '@angular/fire';
3
4
  import { Observable, of, from } from 'rxjs';
4
5
  import { debounceTime, map, switchMap, tap } from 'rxjs/operators';
5
6
  import * as i0 from '@angular/core';
@@ -69,8 +70,8 @@ function createUploadTask(task) {
69
70
  */
70
71
  function createStorageRef(ref) {
71
72
  return {
72
- getDownloadURL: () => of(undefined).pipe(observeOutsideAngular, switchMap(() => ref.getDownloadURL()), keepUnstableUntilFirst),
73
- getMetadata: () => of(undefined).pipe(observeOutsideAngular, switchMap(() => ref.getMetadata()), keepUnstableUntilFirst),
73
+ getDownloadURL: () => of(undefined).pipe(observeOutsideAngular, switchMap(() => ref.getDownloadURL()), pendingUntilEvent()),
74
+ getMetadata: () => of(undefined).pipe(observeOutsideAngular, switchMap(() => ref.getMetadata()), pendingUntilEvent()),
74
75
  delete: () => from(ref.delete()),
75
76
  child: (path) => createStorageRef(ref.child(path)),
76
77
  updateMetadata: (meta) => from(ref.updateMetadata(meta)),
@@ -130,10 +131,10 @@ class AngularFireStorage {
130
131
  const ref = createStorageRef(storageRef);
131
132
  return ref.put(data, metadata);
132
133
  }
133
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.0", ngImport: i0, type: AngularFireStorage, deps: [{ token: FIREBASE_OPTIONS }, { token: FIREBASE_APP_NAME, optional: true }, { token: BUCKET, optional: true }, { token: PLATFORM_ID }, { token: i0.NgZone }, { token: i1.ɵAngularFireSchedulers }, { token: MAX_UPLOAD_RETRY_TIME, optional: true }, { token: MAX_OPERATION_RETRY_TIME, optional: true }, { token: USE_EMULATOR, optional: true }, { token: i2.AppCheckInstances, optional: true }], target: i0.ɵɵFactoryTarget.Injectable });
134
- static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.0.0", ngImport: i0, type: AngularFireStorage, providedIn: 'any' });
134
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.0", ngImport: i0, type: AngularFireStorage, deps: [{ token: FIREBASE_OPTIONS }, { token: FIREBASE_APP_NAME, optional: true }, { token: BUCKET, optional: true }, { token: PLATFORM_ID }, { token: i0.NgZone }, { token: i1.ɵAngularFireSchedulers }, { token: MAX_UPLOAD_RETRY_TIME, optional: true }, { token: MAX_OPERATION_RETRY_TIME, optional: true }, { token: USE_EMULATOR, optional: true }, { token: i2.AppCheckInstances, optional: true }], target: i0.ɵɵFactoryTarget.Injectable });
135
+ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.0.0", ngImport: i0, type: AngularFireStorage, providedIn: 'any' });
135
136
  }
136
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.0", ngImport: i0, type: AngularFireStorage, decorators: [{
137
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.0", ngImport: i0, type: AngularFireStorage, decorators: [{
137
138
  type: Injectable,
138
139
  args: [{
139
140
  providedIn: 'any'
@@ -197,10 +198,10 @@ class GetDownloadURLPipe {
197
198
  ngOnDestroy() {
198
199
  this.asyncPipe.ngOnDestroy();
199
200
  }
200
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.0", ngImport: i0, type: GetDownloadURLPipe, deps: [{ token: AngularFireStorage }, { token: i0.ChangeDetectorRef }, { token: i0.TransferState, optional: true }], target: i0.ɵɵFactoryTarget.Pipe });
201
- static ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "18.0.0", ngImport: i0, type: GetDownloadURLPipe, name: "getDownloadURL", pure: false });
201
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.0", ngImport: i0, type: GetDownloadURLPipe, deps: [{ token: AngularFireStorage }, { token: i0.ChangeDetectorRef }, { token: i0.TransferState, optional: true }], target: i0.ɵɵFactoryTarget.Pipe });
202
+ static ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "19.0.0", ngImport: i0, type: GetDownloadURLPipe, isStandalone: true, name: "getDownloadURL", pure: false });
202
203
  }
203
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.0", ngImport: i0, type: GetDownloadURLPipe, decorators: [{
204
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.0", ngImport: i0, type: GetDownloadURLPipe, decorators: [{
204
205
  type: Pipe,
205
206
  args: [{
206
207
  name: 'getDownloadURL',
@@ -210,14 +211,14 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.0", ngImpor
210
211
  type: Optional
211
212
  }] }] });
212
213
  class GetDownloadURLPipeModule {
213
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.0", ngImport: i0, type: GetDownloadURLPipeModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
214
- static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.0.0", ngImport: i0, type: GetDownloadURLPipeModule, declarations: [GetDownloadURLPipe], exports: [GetDownloadURLPipe] });
215
- static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.0.0", ngImport: i0, type: GetDownloadURLPipeModule });
214
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.0", ngImport: i0, type: GetDownloadURLPipeModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
215
+ static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "19.0.0", ngImport: i0, type: GetDownloadURLPipeModule, imports: [GetDownloadURLPipe], exports: [GetDownloadURLPipe] });
216
+ static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "19.0.0", ngImport: i0, type: GetDownloadURLPipeModule });
216
217
  }
217
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.0", ngImport: i0, type: GetDownloadURLPipeModule, decorators: [{
218
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.0", ngImport: i0, type: GetDownloadURLPipeModule, decorators: [{
218
219
  type: NgModule,
219
220
  args: [{
220
- declarations: [GetDownloadURLPipe],
221
+ imports: [GetDownloadURLPipe],
221
222
  exports: [GetDownloadURLPipe],
222
223
  }]
223
224
  }] });
@@ -226,13 +227,14 @@ class AngularFireStorageModule {
226
227
  constructor() {
227
228
  firebase.registerVersion('angularfire', VERSION.full, 'gcs-compat');
228
229
  }
229
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.0", ngImport: i0, type: AngularFireStorageModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
230
- static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.0.0", ngImport: i0, type: AngularFireStorageModule, exports: [GetDownloadURLPipeModule] });
231
- static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.0.0", ngImport: i0, type: AngularFireStorageModule, providers: [AngularFireStorage], imports: [GetDownloadURLPipeModule] });
230
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.0", ngImport: i0, type: AngularFireStorageModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
231
+ static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "19.0.0", ngImport: i0, type: AngularFireStorageModule, imports: [GetDownloadURLPipeModule], exports: [GetDownloadURLPipeModule] });
232
+ static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "19.0.0", ngImport: i0, type: AngularFireStorageModule, providers: [AngularFireStorage], imports: [GetDownloadURLPipeModule, GetDownloadURLPipeModule] });
232
233
  }
233
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.0", ngImport: i0, type: AngularFireStorageModule, decorators: [{
234
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.0", ngImport: i0, type: AngularFireStorageModule, decorators: [{
234
235
  type: NgModule,
235
236
  args: [{
237
+ imports: [GetDownloadURLPipeModule],
236
238
  exports: [GetDownloadURLPipeModule],
237
239
  providers: [AngularFireStorage]
238
240
  }]
@@ -1 +1 @@
1
- {"version":3,"file":"angular-fire-compat-storage.mjs","sources":["../../../src/compat/storage/observable/fromTask.ts","../../../src/compat/storage/task.ts","../../../src/compat/storage/ref.ts","../../../src/compat/storage/storage.ts","../../../src/compat/storage/pipes/storageUrl.pipe.ts","../../../src/compat/storage/storage.module.ts","../../../src/compat/storage/angular-fire-compat-storage.ts"],"sourcesContent":["import { Observable } from 'rxjs';\nimport { debounceTime } from 'rxjs/operators';\nimport { UploadTask, UploadTaskSnapshot } from '../interfaces';\n\n// need to import, else the types become import('firebase/compat/app').default.storage.UploadTask\n// and it no longer works w/Firebase v7\n\n// Things aren't working great, I'm having to put in a lot of work-arounds for what\n// appear to be Firebase JS SDK bugs https://github.com/firebase/firebase-js-sdk/issues/4158\nexport function fromTask(task: UploadTask) {\n return new Observable<UploadTaskSnapshot>(subscriber => {\n const progress = (snap: UploadTaskSnapshot) => subscriber.next(snap);\n const error = e => subscriber.error(e);\n const complete = () => subscriber.complete();\n // emit the current snapshot, so they don't have to wait for state_changes\n // to fire next... this is stale if the task is no longer running :(\n progress(task.snapshot);\n const unsub = task.on('state_changed', progress);\n // it turns out that neither task snapshot nor 'state_changed' fire the last\n // snapshot before completion, the one with status 'success\" and 100% progress\n // so let's use the promise form of the task for that\n task.then(snapshot => {\n progress(snapshot);\n complete();\n }, e => {\n // TODO investigate, again this is stale, we never fire a canceled or error it seems\n progress(task.snapshot);\n error(e);\n });\n // on's type if Function, rather than () => void, need to wrap\n return function unsubscribe() {\n unsub();\n };\n }).pipe(\n // deal with sync emissions from first emitting `task.snapshot`, this makes sure\n // that if the task is already finished we don't emit the old running state\n debounceTime(0)\n );\n}\n","import { Observable } from 'rxjs';\nimport { map } from 'rxjs/operators';\nimport { UploadTask, UploadTaskSnapshot } from './interfaces';\nimport { fromTask } from './observable/fromTask';\n\nexport interface AngularFireUploadTask {\n task: UploadTask;\n snapshotChanges(): Observable<UploadTaskSnapshot | undefined>;\n percentageChanges(): Observable<number | undefined>;\n pause(): boolean;\n cancel(): boolean;\n resume(): boolean;\n then(\n onFulfilled?: ((a: UploadTaskSnapshot) => any) | null,\n onRejected?: ((a: Error) => any) | null\n ): Promise<any>;\n catch(onRejected: (a: Error) => any): Promise<any>;\n}\n\n/**\n * Create an AngularFireUploadTask from a regular UploadTask from the Storage SDK.\n * This method creates an observable of the upload and returns on object that provides\n * multiple methods for controlling and monitoring the file upload.\n */\nexport function createUploadTask(task: UploadTask): AngularFireUploadTask {\n const inner$ = fromTask(task);\n return {\n task,\n then: task.then.bind(task),\n catch: task.catch.bind(task),\n pause: task.pause.bind(task),\n cancel: task.cancel.bind(task),\n resume: task.resume.bind(task),\n snapshotChanges: () => inner$,\n percentageChanges: () => inner$.pipe(\n map(s => s.bytesTransferred / s.totalBytes * 100)\n )\n };\n}\n","import { keepUnstableUntilFirst, observeOutsideAngular } from '@angular/fire';\nimport { Observable, from, of } from 'rxjs';\nimport { switchMap } from 'rxjs/operators';\nimport { ListOptions, ListResult, Reference, SettableMetadata, StringFormat, UploadMetadata } from './interfaces';\nimport { AngularFireUploadTask, createUploadTask } from './task';\n\nexport interface AngularFireStorageReference {\n getDownloadURL(): Observable<any>;\n getMetadata(): Observable<any>;\n delete(): Observable<any>;\n child(path: string): AngularFireStorageReference;\n updateMetadata(meta: SettableMetadata): Observable<any>;\n put(data: any, metadata?: UploadMetadata | undefined): AngularFireUploadTask;\n putString(data: string, format?: string | undefined, metadata?: UploadMetadata | undefined): AngularFireUploadTask;\n list(options?: ListOptions): Observable<ListResult>;\n listAll(): Observable<ListResult>;\n}\n\n/**\n * Create an AngularFire wrapped Storage Reference. This object\n * creates observable methods from promise based methods.\n */\nexport function createStorageRef(\n ref: Reference\n): AngularFireStorageReference {\n return {\n getDownloadURL: () => of(undefined).pipe(\n observeOutsideAngular,\n switchMap(() => ref.getDownloadURL()),\n keepUnstableUntilFirst\n ),\n getMetadata: () => of(undefined).pipe(\n observeOutsideAngular,\n switchMap(() => ref.getMetadata()),\n keepUnstableUntilFirst\n ),\n delete: () => from(ref.delete()),\n child: (path: string) => createStorageRef(ref.child(path)),\n updateMetadata: (meta: SettableMetadata) => from(ref.updateMetadata(meta)),\n put: (data: any, metadata?: UploadMetadata) => {\n const task = ref.put(data, metadata);\n return createUploadTask(task);\n },\n putString: (data: string, format?: StringFormat, metadata?: UploadMetadata) => {\n const task = ref.putString(data, format, metadata);\n return createUploadTask(task);\n },\n list: (options?: ListOptions) => from(ref.list(options)),\n listAll: () => from(ref.listAll())\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 { FirebaseOptions } from 'firebase/app';\nimport firebase from 'firebase/compat/app';\nimport { UploadMetadata } from './interfaces';\nimport { createStorageRef } from './ref';\nimport 'firebase/compat/storage';\n\nexport const BUCKET = new InjectionToken<string>('angularfire2.storageBucket');\nexport const MAX_UPLOAD_RETRY_TIME = new InjectionToken<number>('angularfire2.storage.maxUploadRetryTime');\nexport const MAX_OPERATION_RETRY_TIME = new InjectionToken<number>('angularfire2.storage.maxOperationRetryTime');\n\ntype UseEmulatorArguments = Parameters<firebase.storage.Storage['useEmulator']>;\nexport const USE_EMULATOR = new InjectionToken<UseEmulatorArguments>('angularfire2.storage.use-emulator');\n\n/**\n * AngularFireStorage Service\n *\n * This service is the main entry point for this feature module. It provides\n * an API for uploading and downloading binary files from Cloud Storage for\n * Firebase.\n */\n@Injectable({\n providedIn: 'any'\n})\nexport class AngularFireStorage {\n public readonly storage: firebase.storage.Storage;\n\n constructor(\n @Inject(FIREBASE_OPTIONS) options: FirebaseOptions,\n @Optional() @Inject(FIREBASE_APP_NAME) name: string | null | undefined,\n @Optional() @Inject(BUCKET) storageBucket: string | null,\n // eslint-disable-next-line @typescript-eslint/ban-types\n @Inject(PLATFORM_ID) platformId: Object,\n zone: NgZone,\n schedulers: ɵAngularFireSchedulers,\n @Optional() @Inject(MAX_UPLOAD_RETRY_TIME) maxUploadRetryTime: any,\n @Optional() @Inject(MAX_OPERATION_RETRY_TIME) maxOperationRetryTime: any,\n @Optional() @Inject(USE_EMULATOR) _useEmulator: any,\n @Optional() _appCheckInstances: AppCheckInstances,\n ) {\n const app = ɵfirebaseAppFactory(options, zone, name);\n this.storage = ɵcacheInstance(`${app.name}.storage.${storageBucket}`, 'AngularFireStorage', app.name, () => {\n const storage = zone.runOutsideAngular(() => app.storage(storageBucket || undefined));\n const useEmulator = _useEmulator as UseEmulatorArguments|null;\n if (useEmulator) {\n storage.useEmulator(...useEmulator);\n }\n if (maxUploadRetryTime) {\n storage.setMaxUploadRetryTime(maxUploadRetryTime);\n }\n if (maxOperationRetryTime) {\n storage.setMaxOperationRetryTime(maxOperationRetryTime);\n }\n return storage;\n }, [maxUploadRetryTime, maxOperationRetryTime]);\n }\n\n ref(path: string) {\n return createStorageRef(this.storage.ref(path));\n }\n\n refFromURL(path: string) {\n return createStorageRef(this.storage.refFromURL(path));\n }\n\n upload(path: string, data: any, metadata?: UploadMetadata) {\n const storageRef = this.storage.ref(path);\n const ref = createStorageRef(storageRef);\n return ref.put(data, metadata);\n }\n\n}\n","import { AsyncPipe } from '@angular/common';\nimport { ChangeDetectorRef, NgModule, OnDestroy, Optional, Pipe, PipeTransform, TransferState, makeStateKey } from '@angular/core';\nimport { Observable, of } from 'rxjs';\nimport { tap } from 'rxjs/operators';\nimport { AngularFireStorage } from '../storage';\n\n/** to be used with in combination with | async */\n@Pipe({\n name: 'getDownloadURL',\n pure: false,\n})\nexport class GetDownloadURLPipe implements PipeTransform, OnDestroy {\n\n private asyncPipe: AsyncPipe;\n private path: string;\n private downloadUrl$: Observable<any>;\n\n constructor(\n private storage: AngularFireStorage,\n cdr: ChangeDetectorRef,\n @Optional() private state: TransferState\n ) {\n this.asyncPipe = new AsyncPipe(cdr);\n }\n\n transform(path: string) {\n if (path !== this.path) {\n this.path = path;\n const key = makeStateKey<string>(`|getDownloadURL|${path}`);\n const existing = this.state?.get(key, undefined);\n this.downloadUrl$ = existing ? of(existing) : this.storage.ref(path).getDownloadURL().pipe(\n tap(it => this.state?.set(key, it))\n );\n }\n return this.asyncPipe.transform(this.downloadUrl$);\n }\n\n ngOnDestroy() {\n this.asyncPipe.ngOnDestroy();\n }\n\n}\n\n@NgModule({\n declarations: [ GetDownloadURLPipe ],\n exports: [ GetDownloadURLPipe ],\n})\nexport class GetDownloadURLPipeModule {}\n","import { NgModule } from '@angular/core';\nimport { VERSION } from '@angular/fire';\nimport firebase from 'firebase/compat/app';\nimport { GetDownloadURLPipeModule } from './pipes/storageUrl.pipe';\nimport { AngularFireStorage } from './storage';\n\n@NgModule({\n exports: [ GetDownloadURLPipeModule ],\n providers: [ AngularFireStorage ]\n})\nexport class AngularFireStorageModule {\n constructor() {\n firebase.registerVersion('angularfire', VERSION.full, 'gcs-compat');\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":["ɵfirebaseAppFactory","ɵcacheInstance","i1.AngularFireStorage"],"mappings":"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"}
1
+ {"version":3,"file":"angular-fire-compat-storage.mjs","sources":["../../../src/compat/storage/observable/fromTask.ts","../../../src/compat/storage/task.ts","../../../src/compat/storage/ref.ts","../../../src/compat/storage/storage.ts","../../../src/compat/storage/pipes/storageUrl.pipe.ts","../../../src/compat/storage/storage.module.ts","../../../src/compat/storage/angular-fire-compat-storage.ts"],"sourcesContent":["import { Observable } from 'rxjs';\nimport { debounceTime } from 'rxjs/operators';\nimport { UploadTask, UploadTaskSnapshot } from '../interfaces';\n\n// need to import, else the types become import('firebase/compat/app').default.storage.UploadTask\n// and it no longer works w/Firebase v7\n\n// Things aren't working great, I'm having to put in a lot of work-arounds for what\n// appear to be Firebase JS SDK bugs https://github.com/firebase/firebase-js-sdk/issues/4158\nexport function fromTask(task: UploadTask) {\n return new Observable<UploadTaskSnapshot>(subscriber => {\n const progress = (snap: UploadTaskSnapshot) => subscriber.next(snap);\n const error = e => subscriber.error(e);\n const complete = () => subscriber.complete();\n // emit the current snapshot, so they don't have to wait for state_changes\n // to fire next... this is stale if the task is no longer running :(\n progress(task.snapshot);\n const unsub = task.on('state_changed', progress);\n // it turns out that neither task snapshot nor 'state_changed' fire the last\n // snapshot before completion, the one with status 'success\" and 100% progress\n // so let's use the promise form of the task for that\n task.then(snapshot => {\n progress(snapshot);\n complete();\n }, e => {\n // TODO investigate, again this is stale, we never fire a canceled or error it seems\n progress(task.snapshot);\n error(e);\n });\n // on's type if Function, rather than () => void, need to wrap\n return function unsubscribe() {\n unsub();\n };\n }).pipe(\n // deal with sync emissions from first emitting `task.snapshot`, this makes sure\n // that if the task is already finished we don't emit the old running state\n debounceTime(0)\n );\n}\n","import { Observable } from 'rxjs';\nimport { map } from 'rxjs/operators';\nimport { UploadTask, UploadTaskSnapshot } from './interfaces';\nimport { fromTask } from './observable/fromTask';\n\nexport interface AngularFireUploadTask {\n task: UploadTask;\n snapshotChanges(): Observable<UploadTaskSnapshot | undefined>;\n percentageChanges(): Observable<number | undefined>;\n pause(): boolean;\n cancel(): boolean;\n resume(): boolean;\n then(\n onFulfilled?: ((a: UploadTaskSnapshot) => any) | null,\n onRejected?: ((a: Error) => any) | null\n ): Promise<any>;\n catch(onRejected: (a: Error) => any): Promise<any>;\n}\n\n/**\n * Create an AngularFireUploadTask from a regular UploadTask from the Storage SDK.\n * This method creates an observable of the upload and returns on object that provides\n * multiple methods for controlling and monitoring the file upload.\n */\nexport function createUploadTask(task: UploadTask): AngularFireUploadTask {\n const inner$ = fromTask(task);\n return {\n task,\n then: task.then.bind(task),\n catch: task.catch.bind(task),\n pause: task.pause.bind(task),\n cancel: task.cancel.bind(task),\n resume: task.resume.bind(task),\n snapshotChanges: () => inner$,\n percentageChanges: () => inner$.pipe(\n map(s => s.bytesTransferred / s.totalBytes * 100)\n )\n };\n}\n","import { pendingUntilEvent } from '@angular/core/rxjs-interop';\nimport { observeOutsideAngular } from '@angular/fire';\nimport { Observable, from, of } from 'rxjs';\nimport { switchMap } from 'rxjs/operators';\nimport { ListOptions, ListResult, Reference, SettableMetadata, StringFormat, UploadMetadata } from './interfaces';\nimport { AngularFireUploadTask, createUploadTask } from './task';\n\nexport interface AngularFireStorageReference {\n getDownloadURL(): Observable<any>;\n getMetadata(): Observable<any>;\n delete(): Observable<any>;\n child(path: string): AngularFireStorageReference;\n updateMetadata(meta: SettableMetadata): Observable<any>;\n put(data: any, metadata?: UploadMetadata | undefined): AngularFireUploadTask;\n putString(data: string, format?: string | undefined, metadata?: UploadMetadata | undefined): AngularFireUploadTask;\n list(options?: ListOptions): Observable<ListResult>;\n listAll(): Observable<ListResult>;\n}\n\n/**\n * Create an AngularFire wrapped Storage Reference. This object\n * creates observable methods from promise based methods.\n */\nexport function createStorageRef(\n ref: Reference\n): AngularFireStorageReference {\n return {\n getDownloadURL: () => of(undefined).pipe(\n observeOutsideAngular,\n switchMap(() => ref.getDownloadURL()),\n pendingUntilEvent()\n ),\n getMetadata: () => of(undefined).pipe(\n observeOutsideAngular,\n switchMap(() => ref.getMetadata()),\n pendingUntilEvent()\n ),\n delete: () => from(ref.delete()),\n child: (path: string) => createStorageRef(ref.child(path)),\n updateMetadata: (meta: SettableMetadata) => from(ref.updateMetadata(meta)),\n put: (data: any, metadata?: UploadMetadata) => {\n const task = ref.put(data, metadata);\n return createUploadTask(task);\n },\n putString: (data: string, format?: StringFormat, metadata?: UploadMetadata) => {\n const task = ref.putString(data, format, metadata);\n return createUploadTask(task);\n },\n list: (options?: ListOptions) => from(ref.list(options)),\n listAll: () => from(ref.listAll())\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 { FirebaseOptions } from 'firebase/app';\nimport firebase from 'firebase/compat/app';\nimport { UploadMetadata } from './interfaces';\nimport { createStorageRef } from './ref';\nimport 'firebase/compat/storage';\n\nexport const BUCKET = new InjectionToken<string>('angularfire2.storageBucket');\nexport const MAX_UPLOAD_RETRY_TIME = new InjectionToken<number>('angularfire2.storage.maxUploadRetryTime');\nexport const MAX_OPERATION_RETRY_TIME = new InjectionToken<number>('angularfire2.storage.maxOperationRetryTime');\n\ntype UseEmulatorArguments = Parameters<firebase.storage.Storage['useEmulator']>;\nexport const USE_EMULATOR = new InjectionToken<UseEmulatorArguments>('angularfire2.storage.use-emulator');\n\n/**\n * AngularFireStorage Service\n *\n * This service is the main entry point for this feature module. It provides\n * an API for uploading and downloading binary files from Cloud Storage for\n * Firebase.\n */\n@Injectable({\n providedIn: 'any'\n})\nexport class AngularFireStorage {\n public readonly storage: firebase.storage.Storage;\n\n constructor(\n @Inject(FIREBASE_OPTIONS) options: FirebaseOptions,\n @Optional() @Inject(FIREBASE_APP_NAME) name: string | null | undefined,\n @Optional() @Inject(BUCKET) storageBucket: string | null,\n // eslint-disable-next-line @typescript-eslint/ban-types\n @Inject(PLATFORM_ID) platformId: Object,\n zone: NgZone,\n schedulers: ɵAngularFireSchedulers,\n @Optional() @Inject(MAX_UPLOAD_RETRY_TIME) maxUploadRetryTime: any,\n @Optional() @Inject(MAX_OPERATION_RETRY_TIME) maxOperationRetryTime: any,\n @Optional() @Inject(USE_EMULATOR) _useEmulator: any,\n @Optional() _appCheckInstances: AppCheckInstances,\n ) {\n const app = ɵfirebaseAppFactory(options, zone, name);\n this.storage = ɵcacheInstance(`${app.name}.storage.${storageBucket}`, 'AngularFireStorage', app.name, () => {\n const storage = zone.runOutsideAngular(() => app.storage(storageBucket || undefined));\n const useEmulator = _useEmulator as UseEmulatorArguments|null;\n if (useEmulator) {\n storage.useEmulator(...useEmulator);\n }\n if (maxUploadRetryTime) {\n storage.setMaxUploadRetryTime(maxUploadRetryTime);\n }\n if (maxOperationRetryTime) {\n storage.setMaxOperationRetryTime(maxOperationRetryTime);\n }\n return storage;\n }, [maxUploadRetryTime, maxOperationRetryTime]);\n }\n\n ref(path: string) {\n return createStorageRef(this.storage.ref(path));\n }\n\n refFromURL(path: string) {\n return createStorageRef(this.storage.refFromURL(path));\n }\n\n upload(path: string, data: any, metadata?: UploadMetadata) {\n const storageRef = this.storage.ref(path);\n const ref = createStorageRef(storageRef);\n return ref.put(data, metadata);\n }\n\n}\n","import { AsyncPipe } from '@angular/common';\nimport { ChangeDetectorRef, NgModule, OnDestroy, Optional, Pipe, PipeTransform, TransferState, makeStateKey } from '@angular/core';\nimport { Observable, of } from 'rxjs';\nimport { tap } from 'rxjs/operators';\nimport { AngularFireStorage } from '../storage';\n\n/** to be used with in combination with | async */\n@Pipe({\n name: 'getDownloadURL',\n pure: false,\n})\nexport class GetDownloadURLPipe implements PipeTransform, OnDestroy {\n\n private asyncPipe: AsyncPipe;\n private path: string;\n private downloadUrl$: Observable<any>;\n\n constructor(\n private storage: AngularFireStorage,\n cdr: ChangeDetectorRef,\n @Optional() private state: TransferState\n ) {\n this.asyncPipe = new AsyncPipe(cdr);\n }\n\n transform(path: string) {\n if (path !== this.path) {\n this.path = path;\n const key = makeStateKey<string>(`|getDownloadURL|${path}`);\n const existing = this.state?.get(key, undefined);\n this.downloadUrl$ = existing ? of(existing) : this.storage.ref(path).getDownloadURL().pipe(\n tap(it => this.state?.set(key, it))\n );\n }\n return this.asyncPipe.transform(this.downloadUrl$);\n }\n\n ngOnDestroy() {\n this.asyncPipe.ngOnDestroy();\n }\n\n}\n\n@NgModule({\n imports: [ GetDownloadURLPipe ],\n exports: [ GetDownloadURLPipe ],\n})\nexport class GetDownloadURLPipeModule {}\n","import { NgModule } from '@angular/core';\nimport { VERSION } from '@angular/fire';\nimport firebase from 'firebase/compat/app';\nimport { GetDownloadURLPipeModule } from './pipes/storageUrl.pipe';\nimport { AngularFireStorage } from './storage';\n\n@NgModule({\n imports: [ GetDownloadURLPipeModule ],\n exports: [ GetDownloadURLPipeModule ],\n providers: [ AngularFireStorage ]\n})\nexport class AngularFireStorageModule {\n constructor() {\n firebase.registerVersion('angularfire', VERSION.full, 'gcs-compat');\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":["ɵfirebaseAppFactory","ɵcacheInstance","i1.AngularFireStorage"],"mappings":"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"}
@@ -119,11 +119,11 @@ class AngularFireModule {
119
119
  // eslint-disable-next-line @typescript-eslint/no-base-to-string
120
120
  firebase.registerVersion('angular', VERSION$1.full, platformId.toString());
121
121
  }
122
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.0", ngImport: i0, type: AngularFireModule, deps: [{ token: PLATFORM_ID }], target: i0.ɵɵFactoryTarget.NgModule });
123
- static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.0.0", ngImport: i0, type: AngularFireModule });
124
- static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.0.0", ngImport: i0, type: AngularFireModule, providers: [FIREBASE_APP_PROVIDER] });
122
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.0", ngImport: i0, type: AngularFireModule, deps: [{ token: PLATFORM_ID }], target: i0.ɵɵFactoryTarget.NgModule });
123
+ static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "19.0.0", ngImport: i0, type: AngularFireModule });
124
+ static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "19.0.0", ngImport: i0, type: AngularFireModule, providers: [FIREBASE_APP_PROVIDER] });
125
125
  }
126
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.0", ngImport: i0, type: AngularFireModule, decorators: [{
126
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.0", ngImport: i0, type: AngularFireModule, decorators: [{
127
127
  type: NgModule,
128
128
  args: [{
129
129
  providers: [FIREBASE_APP_PROVIDER]
@@ -1 +1 @@
1
- {"version":3,"file":"angular-fire-compat.mjs","sources":["../../../src/compat/proxy.ts","../../../src/compat/firebase.app.ts","../../../src/compat/firebase.app.module.ts","../../../src/compat/cache.ts","../../../src/compat/angular-fire-compat.ts"],"sourcesContent":["import { NgZone } from '@angular/core';\nimport { Observable } from 'rxjs';\n\ntype MyFunction = (...args: any[]) => any;\ntype FunctionPropertyNames<T> = { [K in keyof T]: T[K] extends MyFunction ? K : never }[keyof T];\ntype ReturnTypeOrNever<T> = T extends MyFunction ? ReturnType<T> : never;\ntype ParametersOrNever<T> = T extends MyFunction ? Parameters<T> : never;\ntype PromiseReturningFunctionPropertyNames<T> = {\n [K in FunctionPropertyNames<T>]: ReturnTypeOrNever<T[K]> extends Promise<any> ? K : never\n}[FunctionPropertyNames<T>];\ntype NonPromiseReturningFunctionPropertyNames<T> = {\n [K in FunctionPropertyNames<T>]: ReturnTypeOrNever<T[K]> extends Promise<any> ? never : K\n}[FunctionPropertyNames<T>];\ntype NonFunctionPropertyNames<T> = { [K in keyof T]: T[K] extends MyFunction ? never : K }[keyof T];\n\nexport type ɵPromiseProxy<T> = { [K in NonFunctionPropertyNames<T>]: Promise<T[K]> } &\n { [K in NonPromiseReturningFunctionPropertyNames<T>]: (...args: ParametersOrNever<T[K]>) => Promise<ReturnTypeOrNever<T[K]>> } &\n { [K in PromiseReturningFunctionPropertyNames<T>]: T[K] };\n\n// DEBUG quick debugger function for inline logging that typescript doesn't complain about\n// wrote it for debugging the ɵlazySDKProxy, commenting out for now; should consider exposing a\n// verbose mode for AngularFire in a future release that uses something like this in multiple places\n// usage: () => log('something') || returnValue\n// const log = (...args: any[]): false => { console.log(...args); return false }\n\n// The problem here are things like ngOnDestroy are missing, then triggering the service\n// rather than dig too far; I'm capturing these as I go.\nconst noopFunctions = ['ngOnDestroy'];\n\n// INVESTIGATE should we make the Proxy revokable and do some cleanup?\n// right now it's fairly simple but I'm sure this will grow in complexity\nexport const ɵlazySDKProxy = (klass: any, observable: Observable<any>, zone: NgZone, options: {\n spy?: {\n get?: ((name: string, it: any) => void),\n apply?: ((name: string, args: any[], it: any) => void)\n }\n} = {}) => {\n return new Proxy(klass, {\n get: (_, name: string) => zone.runOutsideAngular(() => {\n if (klass[name]) {\n if (options?.spy?.get) {\n options.spy.get(name, klass[name]);\n }\n return klass[name];\n }\n if (noopFunctions.indexOf(name) > -1) {\n return () => undefined;\n }\n const promise = observable.toPromise().then(mod => {\n const ret = mod?.[name];\n // TODO move to proper type guards\n if (typeof ret === 'function') {\n return ret.bind(mod);\n } else if (ret?.then) {\n return ret.then((res: any) => zone.run(() => res));\n } else {\n return zone.run(() => ret);\n }\n });\n // recurse the proxy\n return new Proxy(() => undefined, {\n get: (_, name) => promise[name],\n // TODO handle callbacks as transparently as I can\n apply: (self, _, args) => promise.then(it => {\n const res = it?.(...args);\n if (options?.spy?.apply) {\n options.spy.apply(name, args, res);\n }\n return res;\n })\n }\n );\n })\n });\n};\n\nexport const ɵapplyMixins = (derivedCtor: any, constructors: any[]) => {\n constructors.forEach((baseCtor) => {\n Object.getOwnPropertyNames(baseCtor.prototype || baseCtor).forEach((name) => {\n Object.defineProperty(\n derivedCtor.prototype,\n name,\n Object.getOwnPropertyDescriptor(baseCtor.prototype || baseCtor, name)\n );\n });\n });\n};\n","import firebase from 'firebase/compat/app';\n\n// eslint-disable-next-line @typescript-eslint/no-empty-interface\nexport interface FirebaseApp extends firebase.app.App {}\n\nexport class FirebaseApp {\n constructor(app: firebase.app.App) {\n return app;\n }\n}\n","import {\n Inject, InjectionToken, ModuleWithProviders, VERSION as NG_VERSION, NgModule, NgZone, Optional, PLATFORM_ID, isDevMode\n} from '@angular/core';\nimport { VERSION } from '@angular/fire';\nimport { FirebaseAppSettings, FirebaseOptions } from 'firebase/app';\nimport firebase from 'firebase/compat/app';\nimport { FirebaseApp } from './firebase.app';\n\nexport const FIREBASE_OPTIONS = new InjectionToken<FirebaseOptions>('angularfire2.app.options');\nexport const FIREBASE_APP_NAME = new InjectionToken<string | undefined>('angularfire2.app.name');\n\n\nexport function ɵfirebaseAppFactory(options: FirebaseOptions, zone: NgZone, nameOrConfig?: string | FirebaseAppSettings | null) {\n const name = typeof nameOrConfig === 'string' && nameOrConfig || '[DEFAULT]';\n const config = typeof nameOrConfig === 'object' && nameOrConfig || {};\n config.name = config.name || name;\n // Added any due to some inconsistency between @firebase/app and firebase types\n const existingApp = firebase.apps.filter(app => app && app.name === config.name)[0];\n // We support FirebaseConfig, initializeApp's public type only accepts string; need to cast as any\n // Could be solved with https://github.com/firebase/firebase-js-sdk/pull/1206\n const app = (existingApp || zone.runOutsideAngular(() => firebase.initializeApp(options, config as any)));\n try {\n if (JSON.stringify(options) !== JSON.stringify(app.options)) {\n const hmr = !!(module as any).hot;\n log('error', `${app.name} Firebase App already initialized with different options${hmr ? ', you may need to reload as Firebase is not HMR aware.' : '.'}`);\n }\n } catch (e) { /* empty */ }\n return new FirebaseApp(app);\n}\n\nconst log = (level: 'log'|'error'|'info'|'warn', ...args: any) => {\n if (isDevMode() && typeof console !== 'undefined') {\n // eslint-disable-next-line no-console\n console[level](...args);\n }\n};\n\nconst FIREBASE_APP_PROVIDER = {\n provide: FirebaseApp,\n useFactory: ɵfirebaseAppFactory,\n deps: [\n FIREBASE_OPTIONS,\n NgZone,\n [new Optional(), FIREBASE_APP_NAME]\n ]\n};\n\n@NgModule({\n providers: [FIREBASE_APP_PROVIDER]\n})\nexport class AngularFireModule {\n static initializeApp(options: FirebaseOptions, nameOrConfig?: string | FirebaseAppSettings): ModuleWithProviders<AngularFireModule> {\n return {\n ngModule: AngularFireModule,\n providers: [\n {provide: FIREBASE_OPTIONS, useValue: options},\n {provide: FIREBASE_APP_NAME, useValue: nameOrConfig}\n ]\n };\n }\n\n // eslint-disable-next-line @typescript-eslint/ban-types\n constructor(@Inject(PLATFORM_ID) platformId: Object) {\n firebase.registerVersion('angularfire', VERSION.full, 'core');\n firebase.registerVersion('angularfire', VERSION.full, 'app-compat');\n // eslint-disable-next-line @typescript-eslint/no-base-to-string\n firebase.registerVersion('angular', NG_VERSION.full, platformId.toString());\n }\n}\n","import { isDevMode } from '@angular/core';\n\nexport function ɵcacheInstance<T>(cacheKey: any, moduleName: string, appName: string, fn: () => T, deps: any): T {\n const [, instance, cachedDeps] = globalThis.ɵAngularfireInstanceCache.find((it: any) => it[0] === cacheKey) || [];\n if (instance) {\n if (!matchDep(deps, cachedDeps)) {\n log('error', `${moduleName} was already initialized on the ${appName} Firebase App with different settings.${IS_HMR ? ' You may need to reload as Firebase is not HMR aware.' : ''}`);\n log('warn', {is: deps, was: cachedDeps});\n }\n return instance;\n } else {\n const newInstance = fn();\n globalThis.ɵAngularfireInstanceCache.push([cacheKey, newInstance, deps]);\n return newInstance;\n }\n}\n\nfunction matchDep(a: any, b: any) {\n try {\n return a.toString() === b.toString();\n } catch (_) {\n return a === b;\n }\n}\n\nconst IS_HMR = typeof module !== 'undefined' && !!(module as any).hot;\n\nconst log = (level: 'log'|'error'|'info'|'warn', ...args: any) => {\n if (isDevMode() && typeof console !== 'undefined') {\n // eslint-disable-next-line no-console\n console[level](...args);\n }\n};\n\nglobalThis.ɵAngularfireInstanceCache ||= [];\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":["log","NG_VERSION"],"mappings":"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"}
1
+ {"version":3,"file":"angular-fire-compat.mjs","sources":["../../../src/compat/proxy.ts","../../../src/compat/firebase.app.ts","../../../src/compat/firebase.app.module.ts","../../../src/compat/cache.ts","../../../src/compat/angular-fire-compat.ts"],"sourcesContent":["import { NgZone } from '@angular/core';\nimport { Observable } from 'rxjs';\n\ntype MyFunction = (...args: any[]) => any;\ntype FunctionPropertyNames<T> = { [K in keyof T]: T[K] extends MyFunction ? K : never }[keyof T];\ntype ReturnTypeOrNever<T> = T extends MyFunction ? ReturnType<T> : never;\ntype ParametersOrNever<T> = T extends MyFunction ? Parameters<T> : never;\ntype PromiseReturningFunctionPropertyNames<T> = {\n [K in FunctionPropertyNames<T>]: ReturnTypeOrNever<T[K]> extends Promise<any> ? K : never\n}[FunctionPropertyNames<T>];\ntype NonPromiseReturningFunctionPropertyNames<T> = {\n [K in FunctionPropertyNames<T>]: ReturnTypeOrNever<T[K]> extends Promise<any> ? never : K\n}[FunctionPropertyNames<T>];\ntype NonFunctionPropertyNames<T> = { [K in keyof T]: T[K] extends MyFunction ? never : K }[keyof T];\n\nexport type ɵPromiseProxy<T> = { [K in NonFunctionPropertyNames<T>]: Promise<T[K]> } &\n { [K in NonPromiseReturningFunctionPropertyNames<T>]: (...args: ParametersOrNever<T[K]>) => Promise<ReturnTypeOrNever<T[K]>> } &\n { [K in PromiseReturningFunctionPropertyNames<T>]: T[K] };\n\n// DEBUG quick debugger function for inline logging that typescript doesn't complain about\n// wrote it for debugging the ɵlazySDKProxy, commenting out for now; should consider exposing a\n// verbose mode for AngularFire in a future release that uses something like this in multiple places\n// usage: () => log('something') || returnValue\n// const log = (...args: any[]): false => { console.log(...args); return false }\n\n// The problem here are things like ngOnDestroy are missing, then triggering the service\n// rather than dig too far; I'm capturing these as I go.\nconst noopFunctions = ['ngOnDestroy'];\n\n// INVESTIGATE should we make the Proxy revokable and do some cleanup?\n// right now it's fairly simple but I'm sure this will grow in complexity\nexport const ɵlazySDKProxy = (klass: any, observable: Observable<any>, zone: NgZone, options: {\n spy?: {\n get?: ((name: string, it: any) => void),\n apply?: ((name: string, args: any[], it: any) => void)\n }\n} = {}) => {\n return new Proxy(klass, {\n get: (_, name: string) => zone.runOutsideAngular(() => {\n if (klass[name]) {\n if (options?.spy?.get) {\n options.spy.get(name, klass[name]);\n }\n return klass[name];\n }\n if (noopFunctions.indexOf(name) > -1) {\n return () => undefined;\n }\n const promise = observable.toPromise().then(mod => {\n const ret = mod?.[name];\n // TODO move to proper type guards\n if (typeof ret === 'function') {\n return ret.bind(mod);\n } else if (ret?.then) {\n return ret.then((res: any) => zone.run(() => res));\n } else {\n return zone.run(() => ret);\n }\n });\n // recurse the proxy\n return new Proxy(() => undefined, {\n get: (_, name) => promise[name],\n // TODO handle callbacks as transparently as I can\n apply: (self, _, args) => promise.then(it => {\n const res = it?.(...args);\n if (options?.spy?.apply) {\n options.spy.apply(name, args, res);\n }\n return res;\n })\n }\n );\n })\n });\n};\n\nexport const ɵapplyMixins = (derivedCtor: any, constructors: any[]) => {\n constructors.forEach((baseCtor) => {\n Object.getOwnPropertyNames(baseCtor.prototype || baseCtor).forEach((name) => {\n Object.defineProperty(\n derivedCtor.prototype,\n name,\n Object.getOwnPropertyDescriptor(baseCtor.prototype || baseCtor, name)\n );\n });\n });\n};\n","import firebase from 'firebase/compat/app';\n\n// eslint-disable-next-line @typescript-eslint/no-empty-interface\nexport interface FirebaseApp extends firebase.app.App {}\n\nexport class FirebaseApp {\n constructor(app: firebase.app.App) {\n return app;\n }\n}\n","import {\n Inject, InjectionToken, ModuleWithProviders, VERSION as NG_VERSION, NgModule, NgZone, Optional, PLATFORM_ID, isDevMode\n} from '@angular/core';\nimport { VERSION } from '@angular/fire';\nimport { FirebaseAppSettings, FirebaseOptions } from 'firebase/app';\nimport firebase from 'firebase/compat/app';\nimport { FirebaseApp } from './firebase.app';\n\nexport const FIREBASE_OPTIONS = new InjectionToken<FirebaseOptions>('angularfire2.app.options');\nexport const FIREBASE_APP_NAME = new InjectionToken<string | undefined>('angularfire2.app.name');\n\n\nexport function ɵfirebaseAppFactory(options: FirebaseOptions, zone: NgZone, nameOrConfig?: string | FirebaseAppSettings | null) {\n const name = typeof nameOrConfig === 'string' && nameOrConfig || '[DEFAULT]';\n const config = typeof nameOrConfig === 'object' && nameOrConfig || {};\n config.name = config.name || name;\n // Added any due to some inconsistency between @firebase/app and firebase types\n const existingApp = firebase.apps.filter(app => app && app.name === config.name)[0];\n // We support FirebaseConfig, initializeApp's public type only accepts string; need to cast as any\n // Could be solved with https://github.com/firebase/firebase-js-sdk/pull/1206\n const app = (existingApp || zone.runOutsideAngular(() => firebase.initializeApp(options, config as any)));\n try {\n if (JSON.stringify(options) !== JSON.stringify(app.options)) {\n const hmr = !!(module as any).hot;\n log('error', `${app.name} Firebase App already initialized with different options${hmr ? ', you may need to reload as Firebase is not HMR aware.' : '.'}`);\n }\n } catch (e) { /* empty */ }\n return new FirebaseApp(app);\n}\n\nconst log = (level: 'log'|'error'|'info'|'warn', ...args: any) => {\n if (isDevMode() && typeof console !== 'undefined') {\n // eslint-disable-next-line no-console\n console[level](...args);\n }\n};\n\nconst FIREBASE_APP_PROVIDER = {\n provide: FirebaseApp,\n useFactory: ɵfirebaseAppFactory,\n deps: [\n FIREBASE_OPTIONS,\n NgZone,\n [new Optional(), FIREBASE_APP_NAME]\n ]\n};\n\n@NgModule({\n providers: [FIREBASE_APP_PROVIDER]\n})\nexport class AngularFireModule {\n static initializeApp(options: FirebaseOptions, nameOrConfig?: string | FirebaseAppSettings): ModuleWithProviders<AngularFireModule> {\n return {\n ngModule: AngularFireModule,\n providers: [\n {provide: FIREBASE_OPTIONS, useValue: options},\n {provide: FIREBASE_APP_NAME, useValue: nameOrConfig}\n ]\n };\n }\n\n // eslint-disable-next-line @typescript-eslint/ban-types\n constructor(@Inject(PLATFORM_ID) platformId: Object) {\n firebase.registerVersion('angularfire', VERSION.full, 'core');\n firebase.registerVersion('angularfire', VERSION.full, 'app-compat');\n // eslint-disable-next-line @typescript-eslint/no-base-to-string\n firebase.registerVersion('angular', NG_VERSION.full, platformId.toString());\n }\n}\n","import { isDevMode } from '@angular/core';\n\nexport function ɵcacheInstance<T>(cacheKey: any, moduleName: string, appName: string, fn: () => T, deps: any): T {\n const [, instance, cachedDeps] = globalThis.ɵAngularfireInstanceCache.find((it: any) => it[0] === cacheKey) || [];\n if (instance) {\n if (!matchDep(deps, cachedDeps)) {\n log('error', `${moduleName} was already initialized on the ${appName} Firebase App with different settings.${IS_HMR ? ' You may need to reload as Firebase is not HMR aware.' : ''}`);\n log('warn', {is: deps, was: cachedDeps});\n }\n return instance;\n } else {\n const newInstance = fn();\n globalThis.ɵAngularfireInstanceCache.push([cacheKey, newInstance, deps]);\n return newInstance;\n }\n}\n\nfunction matchDep(a: any, b: any) {\n try {\n return a.toString() === b.toString();\n } catch (_) {\n return a === b;\n }\n}\n\nconst IS_HMR = typeof module !== 'undefined' && !!(module as any).hot;\n\nconst log = (level: 'log'|'error'|'info'|'warn', ...args: any) => {\n if (isDevMode() && typeof console !== 'undefined') {\n // eslint-disable-next-line no-console\n console[level](...args);\n }\n};\n\nglobalThis.ɵAngularfireInstanceCache ||= [];\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":["log","NG_VERSION"],"mappings":"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"}
@@ -0,0 +1,100 @@
1
+ import { ɵgetAllInstancesOf as _getAllInstancesOf, ɵgetDefaultInstanceOf as _getDefaultInstanceOf, VERSION, ɵAngularFireSchedulers as _AngularFireSchedulers, ɵzoneWrap as _zoneWrap } from '@angular/fire';
2
+ import { DataConnect, connectDataConnectEmulator as connectDataConnectEmulator$1, executeMutation as executeMutation$1, executeQuery as executeQuery$1, getDataConnect as getDataConnect$1, mutationRef as mutationRef$1, queryRef as queryRef$1, setLogLevel as setLogLevel$1, subscribe as subscribe$1, terminate as terminate$1, toQueryRef as toQueryRef$1 } from 'firebase/data-connect';
3
+ export * from 'firebase/data-connect';
4
+ export { DataConnect } from 'firebase/data-connect';
5
+ import { timer, from } from 'rxjs';
6
+ import { concatMap, distinct } from 'rxjs/operators';
7
+ import * as i0 from '@angular/core';
8
+ import { InjectionToken, Optional, NgModule, makeEnvironmentProviders, NgZone, Injector } from '@angular/core';
9
+ import { FirebaseApp, FirebaseApps } from '@angular/fire/app';
10
+ import { registerVersion } from 'firebase/app';
11
+
12
+ const DATA_CONNECT_PROVIDER_NAME = 'data-connect';
13
+ class DataConnectInstances {
14
+ constructor() {
15
+ return _getAllInstancesOf(DATA_CONNECT_PROVIDER_NAME);
16
+ }
17
+ }
18
+ const dataConnectInstance$ = timer(0, 300).pipe(concatMap(() => from(_getAllInstancesOf(DATA_CONNECT_PROVIDER_NAME))), distinct());
19
+
20
+ const PROVIDED_DATA_CONNECT_INSTANCES = new InjectionToken('angularfire2.data-connect-instances');
21
+ function defaultDataConnectInstanceFactory(provided, defaultApp) {
22
+ return _getDefaultInstanceOf(DATA_CONNECT_PROVIDER_NAME, provided, defaultApp);
23
+ }
24
+ function dataConnectInstanceFactory(fn) {
25
+ return (zone, injector) => {
26
+ return zone.runOutsideAngular(() => fn(injector));
27
+ };
28
+ }
29
+ const DATA_CONNECT_INSTANCES_PROVIDER = {
30
+ provide: DataConnectInstances,
31
+ deps: [
32
+ [new Optional(), PROVIDED_DATA_CONNECT_INSTANCES],
33
+ ]
34
+ };
35
+ const DEFAULT_DATA_CONNECT_INSTANCE_PROVIDER = {
36
+ provide: DataConnect,
37
+ useFactory: defaultDataConnectInstanceFactory,
38
+ deps: [
39
+ [new Optional(), PROVIDED_DATA_CONNECT_INSTANCES],
40
+ FirebaseApp,
41
+ ]
42
+ };
43
+ class DataConnectModule {
44
+ constructor() {
45
+ registerVersion('angularfire', VERSION.full, 'fdc');
46
+ }
47
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.0", ngImport: i0, type: DataConnectModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
48
+ static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "19.0.0", ngImport: i0, type: DataConnectModule });
49
+ static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "19.0.0", ngImport: i0, type: DataConnectModule, providers: [
50
+ DEFAULT_DATA_CONNECT_INSTANCE_PROVIDER,
51
+ DATA_CONNECT_INSTANCES_PROVIDER,
52
+ ] });
53
+ }
54
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.0", ngImport: i0, type: DataConnectModule, decorators: [{
55
+ type: NgModule,
56
+ args: [{
57
+ providers: [
58
+ DEFAULT_DATA_CONNECT_INSTANCE_PROVIDER,
59
+ DATA_CONNECT_INSTANCES_PROVIDER,
60
+ ]
61
+ }]
62
+ }], ctorParameters: () => [] });
63
+ function provideDataConnect(fn, ...deps) {
64
+ registerVersion('angularfire', VERSION.full, 'fdc');
65
+ return makeEnvironmentProviders([
66
+ DEFAULT_DATA_CONNECT_INSTANCE_PROVIDER,
67
+ DATA_CONNECT_INSTANCES_PROVIDER,
68
+ {
69
+ provide: PROVIDED_DATA_CONNECT_INSTANCES,
70
+ useFactory: dataConnectInstanceFactory(fn),
71
+ multi: true,
72
+ deps: [
73
+ NgZone,
74
+ Injector,
75
+ _AngularFireSchedulers,
76
+ FirebaseApps,
77
+ ...deps,
78
+ ],
79
+ }
80
+ ]);
81
+ }
82
+
83
+ // DO NOT MODIFY, this file is autogenerated by tools/build.ts
84
+ const connectDataConnectEmulator = _zoneWrap(connectDataConnectEmulator$1, true);
85
+ const executeMutation = _zoneWrap(executeMutation$1, true);
86
+ const executeQuery = _zoneWrap(executeQuery$1, true);
87
+ const getDataConnect = _zoneWrap(getDataConnect$1, true);
88
+ const mutationRef = _zoneWrap(mutationRef$1, true);
89
+ const queryRef = _zoneWrap(queryRef$1, true);
90
+ const setLogLevel = _zoneWrap(setLogLevel$1, true);
91
+ const subscribe = _zoneWrap(subscribe$1, true);
92
+ const terminate = _zoneWrap(terminate$1, true);
93
+ const toQueryRef = _zoneWrap(toQueryRef$1, true);
94
+
95
+ /**
96
+ * Generated bundle index. Do not edit.
97
+ */
98
+
99
+ export { DataConnectInstances, DataConnectModule, connectDataConnectEmulator, dataConnectInstance$, executeMutation, executeQuery, getDataConnect, mutationRef, provideDataConnect, queryRef, setLogLevel, subscribe, terminate, toQueryRef };
100
+ //# sourceMappingURL=angular-fire-data-connect.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"angular-fire-data-connect.mjs","sources":["../../../src/data-connect/data-connect.ts","../../../src/data-connect/data-connect.module.ts","../../../src/data-connect/firebase.ts","../../../src/data-connect/angular-fire-data-connect.ts"],"sourcesContent":["import { ɵgetAllInstancesOf } from '@angular/fire';\nimport { DataConnect } from 'firebase/data-connect';\nimport { from, timer } from 'rxjs';\nimport { concatMap, distinct } from 'rxjs/operators';\n\nexport { DataConnect };\n\nexport const DATA_CONNECT_PROVIDER_NAME = 'data-connect';\n\n// eslint-disable-next-line @typescript-eslint/no-empty-interface\nexport interface DataConnectInstances extends Array<DataConnect> {}\n\nexport class DataConnectInstances {\n constructor() {\n return ɵgetAllInstancesOf<DataConnect>(DATA_CONNECT_PROVIDER_NAME);\n }\n}\n\nexport const dataConnectInstance$ = timer(0, 300).pipe(\n concatMap(() => from(ɵgetAllInstancesOf<DataConnect>(DATA_CONNECT_PROVIDER_NAME))),\n distinct(),\n);\n","import {\n EnvironmentProviders,\n InjectionToken,\n Injector,\n NgModule,\n NgZone,\n Optional,\n makeEnvironmentProviders,\n} from '@angular/core';\nimport { VERSION, ɵAngularFireSchedulers, ɵgetDefaultInstanceOf } from '@angular/fire';\nimport { FirebaseApp, FirebaseApps } from '@angular/fire/app';\nimport { registerVersion } from 'firebase/app';\nimport { DATA_CONNECT_PROVIDER_NAME, DataConnect, DataConnectInstances } from './data-connect';\n\nconst PROVIDED_DATA_CONNECT_INSTANCES = new InjectionToken<DataConnect[]>('angularfire2.data-connect-instances');\n\nexport function defaultDataConnectInstanceFactory(provided: DataConnect[]|undefined, defaultApp: FirebaseApp) {\n return ɵgetDefaultInstanceOf<DataConnect>(DATA_CONNECT_PROVIDER_NAME, provided, defaultApp);\n}\n\nexport function dataConnectInstanceFactory(fn: (injector: Injector) => DataConnect) {\n return (zone: NgZone, injector: Injector) => {\n return zone.runOutsideAngular(() => fn(injector));\n };\n}\n\nconst DATA_CONNECT_INSTANCES_PROVIDER = {\n provide: DataConnectInstances,\n deps: [\n [new Optional(), PROVIDED_DATA_CONNECT_INSTANCES ],\n ]\n};\n\nconst DEFAULT_DATA_CONNECT_INSTANCE_PROVIDER = {\n provide: DataConnect,\n useFactory: defaultDataConnectInstanceFactory,\n deps: [\n [new Optional(), PROVIDED_DATA_CONNECT_INSTANCES ],\n FirebaseApp,\n ]\n};\n\n@NgModule({\n providers: [\n DEFAULT_DATA_CONNECT_INSTANCE_PROVIDER,\n DATA_CONNECT_INSTANCES_PROVIDER,\n ]\n})\nexport class DataConnectModule {\n constructor() {\n registerVersion('angularfire', VERSION.full, 'fdc');\n }\n}\n\nexport function provideDataConnect(fn: (injector: Injector) => DataConnect, ...deps: any[]): EnvironmentProviders {\n registerVersion('angularfire', VERSION.full, 'fdc');\n\n return makeEnvironmentProviders([\n DEFAULT_DATA_CONNECT_INSTANCE_PROVIDER,\n DATA_CONNECT_INSTANCES_PROVIDER,\n {\n provide: PROVIDED_DATA_CONNECT_INSTANCES,\n useFactory: dataConnectInstanceFactory(fn),\n multi: true,\n deps: [\n NgZone,\n Injector,\n ɵAngularFireSchedulers,\n FirebaseApps,\n ...deps,\n ],\n }\n ]);\n}\n","// DO NOT MODIFY, this file is autogenerated by tools/build.ts\nexport * from 'firebase/data-connect';\nimport { ɵzoneWrap } from '@angular/fire';\nimport {\n connectDataConnectEmulator as _connectDataConnectEmulator,\n executeMutation as _executeMutation,\n executeQuery as _executeQuery,\n getDataConnect as _getDataConnect,\n mutationRef as _mutationRef,\n queryRef as _queryRef,\n setLogLevel as _setLogLevel,\n subscribe as _subscribe,\n terminate as _terminate,\n toQueryRef as _toQueryRef\n} from 'firebase/data-connect';\n\nexport const connectDataConnectEmulator = ɵzoneWrap(_connectDataConnectEmulator, true);\nexport const executeMutation = ɵzoneWrap(_executeMutation, true);\nexport const executeQuery = ɵzoneWrap(_executeQuery, true);\nexport const getDataConnect = ɵzoneWrap(_getDataConnect, true);\nexport const mutationRef = ɵzoneWrap(_mutationRef, true);\nexport const queryRef = ɵzoneWrap(_queryRef, true);\nexport const setLogLevel = ɵzoneWrap(_setLogLevel, true);\nexport const subscribe = ɵzoneWrap(_subscribe, true);\nexport const terminate = ɵzoneWrap(_terminate, true);\nexport const toQueryRef = ɵzoneWrap(_toQueryRef, true);\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":["ɵgetAllInstancesOf","ɵgetDefaultInstanceOf","ɵAngularFireSchedulers","ɵzoneWrap","_connectDataConnectEmulator","_executeMutation","_executeQuery","_getDataConnect","_mutationRef","_queryRef","_setLogLevel","_subscribe","_terminate","_toQueryRef"],"mappings":"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"}
@@ -53,14 +53,14 @@ class DatabaseModule {
53
53
  constructor() {
54
54
  registerVersion('angularfire', VERSION.full, 'rtdb');
55
55
  }
56
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.0", ngImport: i0, type: DatabaseModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
57
- static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.0.0", ngImport: i0, type: DatabaseModule });
58
- static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.0.0", ngImport: i0, type: DatabaseModule, providers: [
56
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.0", ngImport: i0, type: DatabaseModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
57
+ static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "19.0.0", ngImport: i0, type: DatabaseModule });
58
+ static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "19.0.0", ngImport: i0, type: DatabaseModule, providers: [
59
59
  DEFAULT_DATABASE_INSTANCE_PROVIDER,
60
60
  DATABASE_INSTANCES_PROVIDER,
61
61
  ] });
62
62
  }
63
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.0", ngImport: i0, type: DatabaseModule, decorators: [{
63
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.0", ngImport: i0, type: DatabaseModule, decorators: [{
64
64
  type: NgModule,
65
65
  args: [{
66
66
  providers: [
@@ -1 +1 @@
1
- {"version":3,"file":"angular-fire-database.mjs","sources":["../../../src/database/database.ts","../../../src/database/database.module.ts","../../../src/database/rxfire.ts","../../../src/database/firebase.ts","../../../src/database/angular-fire-database.ts"],"sourcesContent":["import { ɵgetAllInstancesOf } from '@angular/fire';\nimport { Database as FirebaseDatabase } from 'firebase/database';\nimport { from, timer } from 'rxjs';\nimport { concatMap, distinct } from 'rxjs/operators';\n\n// see notes in core/firebase.app.module.ts for why we're building the class like this\n// eslint-disable-next-line @typescript-eslint/no-empty-interface\nexport interface Database extends FirebaseDatabase {}\n\nexport class Database {\n constructor(database: FirebaseDatabase) {\n return database;\n }\n}\n\nexport const DATABASE_PROVIDER_NAME = 'database';\n\n// eslint-disable-next-line @typescript-eslint/no-empty-interface\nexport interface DatabaseInstances extends Array<FirebaseDatabase> {}\n\nexport class DatabaseInstances {\n constructor() {\n return ɵgetAllInstancesOf<FirebaseDatabase>(DATABASE_PROVIDER_NAME);\n }\n}\n\nexport const databaseInstance$ = timer(0, 300).pipe(\n concatMap(() => from(ɵgetAllInstancesOf<FirebaseDatabase>(DATABASE_PROVIDER_NAME))),\n distinct(),\n);\n","import {\n EnvironmentProviders,\n InjectionToken,\n Injector,\n NgModule,\n NgZone,\n Optional,\n makeEnvironmentProviders,\n} from '@angular/core';\nimport { VERSION, ɵAngularFireSchedulers, ɵgetDefaultInstanceOf } from '@angular/fire';\nimport { ɵAppCheckInstances } from '@angular/fire';\nimport { FirebaseApp, FirebaseApps } from '@angular/fire/app';\nimport { AuthInstances } from '@angular/fire/auth';\nimport { registerVersion } from 'firebase/app';\nimport { Database as FirebaseDatabase } from 'firebase/database';\nimport { DATABASE_PROVIDER_NAME, Database, DatabaseInstances } from './database';\n\nexport const PROVIDED_DATABASE_INSTANCES = new InjectionToken<Database[]>('angularfire2.database-instances');\n\nexport function defaultDatabaseInstanceFactory(provided: FirebaseDatabase[]|undefined, defaultApp: FirebaseApp) {\n const defaultDatabase = ɵgetDefaultInstanceOf<FirebaseDatabase>(DATABASE_PROVIDER_NAME, provided, defaultApp);\n return defaultDatabase && new Database(defaultDatabase);\n}\n\nexport function databaseInstanceFactory(fn: (injector: Injector) => FirebaseDatabase) {\n return (zone: NgZone, injector: Injector) => {\n const database = zone.runOutsideAngular(() => fn(injector));\n return new Database(database);\n };\n}\n\nconst DATABASE_INSTANCES_PROVIDER = {\n provide: DatabaseInstances,\n deps: [\n [new Optional(), PROVIDED_DATABASE_INSTANCES ],\n ]\n};\n\nconst DEFAULT_DATABASE_INSTANCE_PROVIDER = {\n provide: Database,\n useFactory: defaultDatabaseInstanceFactory,\n deps: [\n [new Optional(), PROVIDED_DATABASE_INSTANCES ],\n FirebaseApp,\n ]\n};\n\n@NgModule({\n providers: [\n DEFAULT_DATABASE_INSTANCE_PROVIDER,\n DATABASE_INSTANCES_PROVIDER,\n ]\n})\nexport class DatabaseModule {\n constructor() {\n registerVersion('angularfire', VERSION.full, 'rtdb');\n }\n}\n\nexport function provideDatabase(fn: (injector: Injector) => FirebaseDatabase, ...deps: any[]): EnvironmentProviders {\n registerVersion('angularfire', VERSION.full, 'rtdb');\n return makeEnvironmentProviders([\n DEFAULT_DATABASE_INSTANCE_PROVIDER,\n DATABASE_INSTANCES_PROVIDER,\n {\n provide: PROVIDED_DATABASE_INSTANCES,\n useFactory: databaseInstanceFactory(fn),\n multi: true,\n deps: [\n NgZone,\n Injector,\n ɵAngularFireSchedulers,\n FirebaseApps,\n // Database+Auth work better if Auth is loaded first\n [new Optional(), AuthInstances ],\n [new Optional(), ɵAppCheckInstances ],\n ...deps,\n ]\n }\n ]);\n}\n","// DO NOT MODIFY, this file is autogenerated by tools/build.ts\nimport { ɵzoneWrap } from '@angular/fire';\nimport {\n auditTrail as _auditTrail,\n changeToData as _changeToData,\n fromRef as _fromRef,\n list as _list,\n listVal as _listVal,\n object as _object,\n objectVal as _objectVal,\n stateChanges as _stateChanges\n} from 'rxfire/database';\n\nexport {\n ListenEvent,\n ListenerMethods\n} from 'rxfire/database';\n\nexport const auditTrail = ɵzoneWrap(_auditTrail, true);\nexport const changeToData = ɵzoneWrap(_changeToData, true);\nexport const fromRef = ɵzoneWrap(_fromRef, true);\nexport const list = ɵzoneWrap(_list, true);\nexport const listVal = ɵzoneWrap(_listVal, true);\nexport const object = ɵzoneWrap(_object, true);\nexport const objectVal = ɵzoneWrap(_objectVal, true);\nexport const stateChanges = ɵzoneWrap(_stateChanges, true);\n","// DO NOT MODIFY, this file is autogenerated by tools/build.ts\nexport * from 'firebase/database';\nimport { ɵzoneWrap } from '@angular/fire';\nimport {\n child as _child,\n connectDatabaseEmulator as _connectDatabaseEmulator,\n enableLogging as _enableLogging,\n endAt as _endAt,\n endBefore as _endBefore,\n equalTo as _equalTo,\n forceLongPolling as _forceLongPolling,\n forceWebSockets as _forceWebSockets,\n get as _get,\n getDatabase as _getDatabase,\n goOffline as _goOffline,\n goOnline as _goOnline,\n increment as _increment,\n limitToFirst as _limitToFirst,\n limitToLast as _limitToLast,\n off as _off,\n onChildAdded as _onChildAdded,\n onChildChanged as _onChildChanged,\n onChildMoved as _onChildMoved,\n onChildRemoved as _onChildRemoved,\n onDisconnect as _onDisconnect,\n onValue as _onValue,\n orderByChild as _orderByChild,\n orderByKey as _orderByKey,\n orderByPriority as _orderByPriority,\n orderByValue as _orderByValue,\n push as _push,\n query as _query,\n ref as _ref,\n refFromURL as _refFromURL,\n remove as _remove,\n runTransaction as _runTransaction,\n serverTimestamp as _serverTimestamp,\n set as _set,\n setPriority as _setPriority,\n setWithPriority as _setWithPriority,\n startAfter as _startAfter,\n startAt as _startAt,\n update as _update\n} from 'firebase/database';\n\nexport const child = ɵzoneWrap(_child, true);\nexport const connectDatabaseEmulator = ɵzoneWrap(_connectDatabaseEmulator, true);\nexport const enableLogging = ɵzoneWrap(_enableLogging, true);\nexport const endAt = ɵzoneWrap(_endAt, true);\nexport const endBefore = ɵzoneWrap(_endBefore, true);\nexport const equalTo = ɵzoneWrap(_equalTo, true);\nexport const forceLongPolling = ɵzoneWrap(_forceLongPolling, true);\nexport const forceWebSockets = ɵzoneWrap(_forceWebSockets, true);\nexport const get = ɵzoneWrap(_get, true);\nexport const getDatabase = ɵzoneWrap(_getDatabase, true);\nexport const goOffline = ɵzoneWrap(_goOffline, true);\nexport const goOnline = ɵzoneWrap(_goOnline, true);\nexport const increment = ɵzoneWrap(_increment, true);\nexport const limitToFirst = ɵzoneWrap(_limitToFirst, true);\nexport const limitToLast = ɵzoneWrap(_limitToLast, true);\nexport const off = ɵzoneWrap(_off, true);\nexport const onChildAdded = ɵzoneWrap(_onChildAdded, true);\nexport const onChildChanged = ɵzoneWrap(_onChildChanged, true);\nexport const onChildMoved = ɵzoneWrap(_onChildMoved, true);\nexport const onChildRemoved = ɵzoneWrap(_onChildRemoved, true);\nexport const onDisconnect = ɵzoneWrap(_onDisconnect, true);\nexport const onValue = ɵzoneWrap(_onValue, true);\nexport const orderByChild = ɵzoneWrap(_orderByChild, true);\nexport const orderByKey = ɵzoneWrap(_orderByKey, true);\nexport const orderByPriority = ɵzoneWrap(_orderByPriority, true);\nexport const orderByValue = ɵzoneWrap(_orderByValue, true);\nexport const push = ɵzoneWrap(_push, true);\nexport const query = ɵzoneWrap(_query, true);\nexport const ref = ɵzoneWrap(_ref, true);\nexport const refFromURL = ɵzoneWrap(_refFromURL, true);\nexport const remove = ɵzoneWrap(_remove, true);\nexport const runTransaction = ɵzoneWrap(_runTransaction, true);\nexport const serverTimestamp = ɵzoneWrap(_serverTimestamp, true);\nexport const set = ɵzoneWrap(_set, true);\nexport const setPriority = ɵzoneWrap(_setPriority, true);\nexport const setWithPriority = ɵzoneWrap(_setWithPriority, true);\nexport const startAfter = ɵzoneWrap(_startAfter, true);\nexport const startAt = ɵzoneWrap(_startAt, true);\nexport const update = ɵzoneWrap(_update, true);\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":["ɵgetAllInstancesOf","ɵgetDefaultInstanceOf","ɵAngularFireSchedulers","ɵAppCheckInstances","ɵzoneWrap","_auditTrail","_changeToData","_fromRef","_list","_listVal","_object","_objectVal","_stateChanges","_child","_connectDatabaseEmulator","_enableLogging","_endAt","_endBefore","_equalTo","_forceLongPolling","_forceWebSockets","_get","_getDatabase","_goOffline","_goOnline","_increment","_limitToFirst","_limitToLast","_off","_onChildAdded","_onChildChanged","_onChildMoved","_onChildRemoved","_onDisconnect","_onValue","_orderByChild","_orderByKey","_orderByPriority","_orderByValue","_push","_query","_ref","_refFromURL","_remove","_runTransaction","_serverTimestamp","_set","_setPriority","_setWithPriority","_startAfter","_startAt","_update"],"mappings":"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"}
1
+ {"version":3,"file":"angular-fire-database.mjs","sources":["../../../src/database/database.ts","../../../src/database/database.module.ts","../../../src/database/rxfire.ts","../../../src/database/firebase.ts","../../../src/database/angular-fire-database.ts"],"sourcesContent":["import { ɵgetAllInstancesOf } from '@angular/fire';\nimport { Database as FirebaseDatabase } from 'firebase/database';\nimport { from, timer } from 'rxjs';\nimport { concatMap, distinct } from 'rxjs/operators';\n\n// see notes in core/firebase.app.module.ts for why we're building the class like this\n// eslint-disable-next-line @typescript-eslint/no-empty-interface\nexport interface Database extends FirebaseDatabase {}\n\nexport class Database {\n constructor(database: FirebaseDatabase) {\n return database;\n }\n}\n\nexport const DATABASE_PROVIDER_NAME = 'database';\n\n// eslint-disable-next-line @typescript-eslint/no-empty-interface\nexport interface DatabaseInstances extends Array<FirebaseDatabase> {}\n\nexport class DatabaseInstances {\n constructor() {\n return ɵgetAllInstancesOf<FirebaseDatabase>(DATABASE_PROVIDER_NAME);\n }\n}\n\nexport const databaseInstance$ = timer(0, 300).pipe(\n concatMap(() => from(ɵgetAllInstancesOf<FirebaseDatabase>(DATABASE_PROVIDER_NAME))),\n distinct(),\n);\n","import {\n EnvironmentProviders,\n InjectionToken,\n Injector,\n NgModule,\n NgZone,\n Optional,\n makeEnvironmentProviders,\n} from '@angular/core';\nimport { VERSION, ɵAngularFireSchedulers, ɵgetDefaultInstanceOf } from '@angular/fire';\nimport { ɵAppCheckInstances } from '@angular/fire';\nimport { FirebaseApp, FirebaseApps } from '@angular/fire/app';\nimport { AuthInstances } from '@angular/fire/auth';\nimport { registerVersion } from 'firebase/app';\nimport { Database as FirebaseDatabase } from 'firebase/database';\nimport { DATABASE_PROVIDER_NAME, Database, DatabaseInstances } from './database';\n\nexport const PROVIDED_DATABASE_INSTANCES = new InjectionToken<Database[]>('angularfire2.database-instances');\n\nexport function defaultDatabaseInstanceFactory(provided: FirebaseDatabase[]|undefined, defaultApp: FirebaseApp) {\n const defaultDatabase = ɵgetDefaultInstanceOf<FirebaseDatabase>(DATABASE_PROVIDER_NAME, provided, defaultApp);\n return defaultDatabase && new Database(defaultDatabase);\n}\n\nexport function databaseInstanceFactory(fn: (injector: Injector) => FirebaseDatabase) {\n return (zone: NgZone, injector: Injector) => {\n const database = zone.runOutsideAngular(() => fn(injector));\n return new Database(database);\n };\n}\n\nconst DATABASE_INSTANCES_PROVIDER = {\n provide: DatabaseInstances,\n deps: [\n [new Optional(), PROVIDED_DATABASE_INSTANCES ],\n ]\n};\n\nconst DEFAULT_DATABASE_INSTANCE_PROVIDER = {\n provide: Database,\n useFactory: defaultDatabaseInstanceFactory,\n deps: [\n [new Optional(), PROVIDED_DATABASE_INSTANCES ],\n FirebaseApp,\n ]\n};\n\n@NgModule({\n providers: [\n DEFAULT_DATABASE_INSTANCE_PROVIDER,\n DATABASE_INSTANCES_PROVIDER,\n ]\n})\nexport class DatabaseModule {\n constructor() {\n registerVersion('angularfire', VERSION.full, 'rtdb');\n }\n}\n\nexport function provideDatabase(fn: (injector: Injector) => FirebaseDatabase, ...deps: any[]): EnvironmentProviders {\n registerVersion('angularfire', VERSION.full, 'rtdb');\n return makeEnvironmentProviders([\n DEFAULT_DATABASE_INSTANCE_PROVIDER,\n DATABASE_INSTANCES_PROVIDER,\n {\n provide: PROVIDED_DATABASE_INSTANCES,\n useFactory: databaseInstanceFactory(fn),\n multi: true,\n deps: [\n NgZone,\n Injector,\n ɵAngularFireSchedulers,\n FirebaseApps,\n // Database+Auth work better if Auth is loaded first\n [new Optional(), AuthInstances ],\n [new Optional(), ɵAppCheckInstances ],\n ...deps,\n ]\n }\n ]);\n}\n","// DO NOT MODIFY, this file is autogenerated by tools/build.ts\nimport { ɵzoneWrap } from '@angular/fire';\nimport {\n auditTrail as _auditTrail,\n changeToData as _changeToData,\n fromRef as _fromRef,\n list as _list,\n listVal as _listVal,\n object as _object,\n objectVal as _objectVal,\n stateChanges as _stateChanges\n} from 'rxfire/database';\n\nexport {\n ListenEvent,\n ListenerMethods\n} from 'rxfire/database';\n\nexport const auditTrail = ɵzoneWrap(_auditTrail, true);\nexport const changeToData = ɵzoneWrap(_changeToData, true);\nexport const fromRef = ɵzoneWrap(_fromRef, true);\nexport const list = ɵzoneWrap(_list, true);\nexport const listVal = ɵzoneWrap(_listVal, true);\nexport const object = ɵzoneWrap(_object, true);\nexport const objectVal = ɵzoneWrap(_objectVal, true);\nexport const stateChanges = ɵzoneWrap(_stateChanges, true);\n","// DO NOT MODIFY, this file is autogenerated by tools/build.ts\nexport * from 'firebase/database';\nimport { ɵzoneWrap } from '@angular/fire';\nimport {\n child as _child,\n connectDatabaseEmulator as _connectDatabaseEmulator,\n enableLogging as _enableLogging,\n endAt as _endAt,\n endBefore as _endBefore,\n equalTo as _equalTo,\n forceLongPolling as _forceLongPolling,\n forceWebSockets as _forceWebSockets,\n get as _get,\n getDatabase as _getDatabase,\n goOffline as _goOffline,\n goOnline as _goOnline,\n increment as _increment,\n limitToFirst as _limitToFirst,\n limitToLast as _limitToLast,\n off as _off,\n onChildAdded as _onChildAdded,\n onChildChanged as _onChildChanged,\n onChildMoved as _onChildMoved,\n onChildRemoved as _onChildRemoved,\n onDisconnect as _onDisconnect,\n onValue as _onValue,\n orderByChild as _orderByChild,\n orderByKey as _orderByKey,\n orderByPriority as _orderByPriority,\n orderByValue as _orderByValue,\n push as _push,\n query as _query,\n ref as _ref,\n refFromURL as _refFromURL,\n remove as _remove,\n runTransaction as _runTransaction,\n serverTimestamp as _serverTimestamp,\n set as _set,\n setPriority as _setPriority,\n setWithPriority as _setWithPriority,\n startAfter as _startAfter,\n startAt as _startAt,\n update as _update\n} from 'firebase/database';\n\nexport const child = ɵzoneWrap(_child, true);\nexport const connectDatabaseEmulator = ɵzoneWrap(_connectDatabaseEmulator, true);\nexport const enableLogging = ɵzoneWrap(_enableLogging, true);\nexport const endAt = ɵzoneWrap(_endAt, true);\nexport const endBefore = ɵzoneWrap(_endBefore, true);\nexport const equalTo = ɵzoneWrap(_equalTo, true);\nexport const forceLongPolling = ɵzoneWrap(_forceLongPolling, true);\nexport const forceWebSockets = ɵzoneWrap(_forceWebSockets, true);\nexport const get = ɵzoneWrap(_get, true);\nexport const getDatabase = ɵzoneWrap(_getDatabase, true);\nexport const goOffline = ɵzoneWrap(_goOffline, true);\nexport const goOnline = ɵzoneWrap(_goOnline, true);\nexport const increment = ɵzoneWrap(_increment, true);\nexport const limitToFirst = ɵzoneWrap(_limitToFirst, true);\nexport const limitToLast = ɵzoneWrap(_limitToLast, true);\nexport const off = ɵzoneWrap(_off, true);\nexport const onChildAdded = ɵzoneWrap(_onChildAdded, true);\nexport const onChildChanged = ɵzoneWrap(_onChildChanged, true);\nexport const onChildMoved = ɵzoneWrap(_onChildMoved, true);\nexport const onChildRemoved = ɵzoneWrap(_onChildRemoved, true);\nexport const onDisconnect = ɵzoneWrap(_onDisconnect, true);\nexport const onValue = ɵzoneWrap(_onValue, true);\nexport const orderByChild = ɵzoneWrap(_orderByChild, true);\nexport const orderByKey = ɵzoneWrap(_orderByKey, true);\nexport const orderByPriority = ɵzoneWrap(_orderByPriority, true);\nexport const orderByValue = ɵzoneWrap(_orderByValue, true);\nexport const push = ɵzoneWrap(_push, true);\nexport const query = ɵzoneWrap(_query, true);\nexport const ref = ɵzoneWrap(_ref, true);\nexport const refFromURL = ɵzoneWrap(_refFromURL, true);\nexport const remove = ɵzoneWrap(_remove, true);\nexport const runTransaction = ɵzoneWrap(_runTransaction, true);\nexport const serverTimestamp = ɵzoneWrap(_serverTimestamp, true);\nexport const set = ɵzoneWrap(_set, true);\nexport const setPriority = ɵzoneWrap(_setPriority, true);\nexport const setWithPriority = ɵzoneWrap(_setWithPriority, true);\nexport const startAfter = ɵzoneWrap(_startAfter, true);\nexport const startAt = ɵzoneWrap(_startAt, true);\nexport const update = ɵzoneWrap(_update, true);\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":["ɵgetAllInstancesOf","ɵgetDefaultInstanceOf","ɵAngularFireSchedulers","ɵAppCheckInstances","ɵzoneWrap","_auditTrail","_changeToData","_fromRef","_list","_listVal","_object","_objectVal","_stateChanges","_child","_connectDatabaseEmulator","_enableLogging","_endAt","_endBefore","_equalTo","_forceLongPolling","_forceWebSockets","_get","_getDatabase","_goOffline","_goOnline","_increment","_limitToFirst","_limitToLast","_off","_onChildAdded","_onChildChanged","_onChildMoved","_onChildRemoved","_onDisconnect","_onValue","_orderByChild","_orderByKey","_orderByPriority","_orderByValue","_push","_query","_ref","_refFromURL","_remove","_runTransaction","_serverTimestamp","_set","_setPriority","_setWithPriority","_startAfter","_startAt","_update"],"mappings":"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"}