@dereekb/dbx-firebase 11.1.7 → 12.0.0

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 (258) hide show
  1. package/esm2022/lib/analytics/analytics.user.events.providers.mjs +25 -0
  2. package/esm2022/lib/analytics/analytics.user.events.service.mjs +37 -0
  3. package/esm2022/lib/analytics/analytics.user.source.mjs +4 -4
  4. package/esm2022/lib/analytics/index.mjs +3 -2
  5. package/esm2022/lib/auth/appcheck/appcheck.interceptor.mjs +6 -6
  6. package/esm2022/lib/auth/firebase.auth.module.mjs +11 -23
  7. package/esm2022/lib/auth/firebase.auth.providers.mjs +27 -0
  8. package/esm2022/lib/auth/index.mjs +2 -1
  9. package/esm2022/lib/auth/login/firebase.login.module.mjs +56 -201
  10. package/esm2022/lib/auth/login/firebase.login.providers.default.mjs +109 -0
  11. package/esm2022/lib/auth/login/firebase.login.providers.mjs +59 -0
  12. package/esm2022/lib/auth/login/index.mjs +2 -1
  13. package/esm2022/lib/auth/login/login.anonymous.component.mjs +9 -6
  14. package/esm2022/lib/auth/login/login.apple.component.mjs +9 -6
  15. package/esm2022/lib/auth/login/login.button.component.mjs +68 -49
  16. package/esm2022/lib/auth/login/login.component.mjs +21 -26
  17. package/esm2022/lib/auth/login/login.context.back.component.mjs +8 -5
  18. package/esm2022/lib/auth/login/login.context.directive.mjs +5 -4
  19. package/esm2022/lib/auth/login/login.email.component.mjs +9 -6
  20. package/esm2022/lib/auth/login/login.email.content.component.mjs +29 -28
  21. package/esm2022/lib/auth/login/login.email.form.component.mjs +17 -26
  22. package/esm2022/lib/auth/login/login.email.recovery.form.component.mjs +11 -12
  23. package/esm2022/lib/auth/login/login.facebook.component.mjs +9 -6
  24. package/esm2022/lib/auth/login/login.github.component.mjs +9 -6
  25. package/esm2022/lib/auth/login/login.google.component.mjs +9 -6
  26. package/esm2022/lib/auth/login/login.list.component.mjs +45 -56
  27. package/esm2022/lib/auth/login/login.microsoft.component.mjs +9 -6
  28. package/esm2022/lib/auth/login/login.service.mjs +10 -13
  29. package/esm2022/lib/auth/login/login.terms.component.mjs +10 -8
  30. package/esm2022/lib/auth/login/login.terms.mjs +6 -3
  31. package/esm2022/lib/auth/login/login.terms.simple.component.mjs +11 -9
  32. package/esm2022/lib/auth/login/login.twitter.component.mjs +9 -6
  33. package/esm2022/lib/auth/login/register.component.mjs +9 -7
  34. package/esm2022/lib/auth/login/register.email.component.mjs +11 -6
  35. package/esm2022/lib/auth/service/firebase.auth.rxjs.mjs +1 -1
  36. package/esm2022/lib/auth/service/firebase.auth.service.delegate.mjs +1 -1
  37. package/esm2022/lib/auth/service/firebase.auth.service.mjs +4 -4
  38. package/esm2022/lib/development/development.directive.mjs +78 -0
  39. package/esm2022/lib/development/development.module.mjs +32 -70
  40. package/esm2022/lib/development/development.popup.component.mjs +13 -15
  41. package/esm2022/lib/development/development.popup.content.component.mjs +28 -19
  42. package/esm2022/lib/development/development.popup.content.form.component.mjs +11 -12
  43. package/esm2022/lib/development/development.providers.mjs +47 -0
  44. package/esm2022/lib/development/development.scheduler.list.component.mjs +32 -23
  45. package/esm2022/lib/development/development.scheduler.service.mjs +5 -8
  46. package/esm2022/lib/development/development.scheduler.widget.component.mjs +13 -10
  47. package/esm2022/lib/development/development.service.mjs +9 -20
  48. package/esm2022/lib/development/development.widget.service.mjs +7 -10
  49. package/esm2022/lib/development/index.mjs +3 -2
  50. package/esm2022/lib/firebase/emulators.mjs +1 -1
  51. package/esm2022/lib/firebase/firebase.emulator.module.mjs +9 -25
  52. package/esm2022/lib/firebase/firebase.emulator.providers.mjs +33 -0
  53. package/esm2022/lib/firebase/firebase.emulator.service.mjs +5 -8
  54. package/esm2022/lib/firebase/firebase.module.mjs +11 -297
  55. package/esm2022/lib/firebase/firebase.options.environment.mjs +2 -0
  56. package/esm2022/lib/firebase/firebase.options.mjs +3 -0
  57. package/esm2022/lib/firebase/firebase.providers.mjs +149 -0
  58. package/esm2022/lib/firebase/index.mjs +5 -2
  59. package/esm2022/lib/firestore/firebase.firestore.context.service.mjs +4 -4
  60. package/esm2022/lib/firestore/firebase.firestore.module.mjs +9 -50
  61. package/esm2022/lib/firestore/firebase.firestore.providers.mjs +67 -0
  62. package/esm2022/lib/firestore/index.mjs +2 -1
  63. package/esm2022/lib/function/firebase.function.module.mjs +8 -48
  64. package/esm2022/lib/function/firebase.function.providers.mjs +54 -0
  65. package/esm2022/lib/function/index.mjs +2 -1
  66. package/esm2022/lib/index.mjs +2 -1
  67. package/esm2022/lib/model/loader/collection.change.trigger.mjs +1 -1
  68. package/esm2022/lib/model/loader/collection.loader.instance.mjs +1 -1
  69. package/esm2022/lib/model/model.module.mjs +6 -6
  70. package/esm2022/lib/model/modules/model/history/index.mjs +7 -0
  71. package/esm2022/lib/model/modules/model/history/model.history.component.mjs +36 -0
  72. package/esm2022/lib/model/modules/model/history/model.history.module.mjs +26 -0
  73. package/esm2022/lib/model/modules/model/history/model.history.popover.button.component.mjs +40 -0
  74. package/esm2022/lib/model/modules/model/history/model.history.popover.component.mjs +36 -0
  75. package/esm2022/lib/model/modules/model/history/model.sourceselect.history.mjs +18 -0
  76. package/esm2022/lib/model/modules/model/history/model.tracker.service.mjs +58 -0
  77. package/esm2022/lib/model/modules/model/index.mjs +2 -7
  78. package/esm2022/lib/model/modules/model/model.types.list.component.mjs +33 -28
  79. package/esm2022/lib/model/modules/model/model.types.module.mjs +17 -12
  80. package/esm2022/lib/model/modules/model/model.types.providers.mjs +20 -0
  81. package/esm2022/lib/model/modules/model/model.types.service.mjs +9 -14
  82. package/esm2022/lib/model/modules/model/model.types.view.directive.mjs +11 -13
  83. package/esm2022/lib/model/modules/store/model.store.module.mjs +6 -8
  84. package/esm2022/lib/model/modules/store/store.collection.change.directive.mjs +3 -3
  85. package/esm2022/lib/model/modules/store/store.collection.change.if.directive.mjs +4 -4
  86. package/esm2022/lib/model/modules/store/store.collection.directive.mjs +5 -5
  87. package/esm2022/lib/model/modules/store/store.collection.list.directive.mjs +6 -6
  88. package/esm2022/lib/model/modules/store/store.collection.mjs +3 -3
  89. package/esm2022/lib/model/modules/store/store.document.auth.directive.mjs +3 -3
  90. package/esm2022/lib/model/modules/store/store.document.crud.mjs +1 -1
  91. package/esm2022/lib/model/modules/store/store.document.directive.mjs +5 -5
  92. package/esm2022/lib/model/modules/store/store.document.mjs +6 -5
  93. package/esm2022/lib/model/modules/store/store.document.router.directive.mjs +3 -3
  94. package/esm2022/lib/model/modules/store/store.document.router.key.directive.mjs +4 -4
  95. package/esm2022/lib/model/modules/store/store.document.twoway.key.directive.mjs +3 -3
  96. package/esm2022/lib/model/modules/store/store.document.twoway.key.source.directive.mjs +3 -3
  97. package/esm2022/lib/model/modules/store/store.subcollection.directive.mjs +3 -3
  98. package/esm2022/lib/model/modules/store/store.subcollection.document.mjs +4 -4
  99. package/esm2022/lib/model/modules/store/store.subcollection.mjs +6 -6
  100. package/esm2022/lib/model/modules/store/store.subcollection.rxjs.mjs +1 -1
  101. package/esm2022/lib/model/service/index.mjs +2 -1
  102. package/esm2022/lib/model/service/model.context.providers.mjs +32 -0
  103. package/esm2022/lib/model/service/model.context.service.mjs +1 -1
  104. package/esm2022/lib/model/system/systemstate.collection.store.directive.mjs +4 -4
  105. package/esm2022/lib/model/system/systemstate.collection.store.mjs +4 -4
  106. package/esm2022/lib/model/system/systemstate.document.store.accessor.mjs +5 -5
  107. package/esm2022/lib/model/system/systemstate.document.store.directive.mjs +4 -4
  108. package/esm2022/lib/model/system/systemstate.document.store.mjs +4 -4
  109. package/esm2022/lib/module.mjs +4 -4
  110. package/esm2022/lib/modules/notification/component/index.mjs +2 -1
  111. package/esm2022/lib/modules/notification/component/notificationitem.content.component.mjs +11 -17
  112. package/esm2022/lib/modules/notification/component/notificationitem.list.component.mjs +30 -21
  113. package/esm2022/lib/modules/notification/component/notificationitem.view.component.mjs +28 -35
  114. package/esm2022/lib/modules/notification/component/notificationitem.view.default.component.mjs +8 -6
  115. package/esm2022/lib/modules/notification/component/notificationitem.view.directive.mjs +3 -3
  116. package/esm2022/lib/modules/notification/container/notification.item.store.popover.button.component.mjs +17 -21
  117. package/esm2022/lib/modules/notification/container/notification.item.store.popover.component.mjs +14 -26
  118. package/esm2022/lib/modules/notification/index.mjs +3 -1
  119. package/esm2022/lib/modules/notification/notification.module.mjs +33 -32
  120. package/esm2022/lib/modules/notification/notification.providers.mjs +47 -0
  121. package/esm2022/lib/modules/notification/service/notification.template.service.mjs +3 -3
  122. package/esm2022/lib/modules/notification/service/notificationitem.widget.service.mjs +5 -8
  123. package/esm2022/lib/modules/notification/store/index.mjs +6 -2
  124. package/esm2022/lib/modules/notification/store/notification.item.store.mjs +4 -4
  125. package/esm2022/lib/modules/notification/store/notificationbox.collection.store.directive.mjs +7 -6
  126. package/esm2022/lib/modules/notification/store/notificationbox.collection.store.mjs +4 -4
  127. package/esm2022/lib/modules/notification/store/notificationbox.document.store.directive.mjs +7 -6
  128. package/esm2022/lib/modules/notification/store/notificationbox.document.store.mjs +4 -4
  129. package/esm2022/lib/modules/notification/store/notificationsummary.collection.store.directive.mjs +7 -6
  130. package/esm2022/lib/modules/notification/store/notificationsummary.collection.store.mjs +4 -4
  131. package/esm2022/lib/modules/notification/store/notificationsummary.document.store.directive.mjs +7 -6
  132. package/esm2022/lib/modules/notification/store/notificationsummary.document.store.mjs +4 -4
  133. package/esm2022/lib/modules/notification/store/notificationuser.collection.store.directive.mjs +7 -6
  134. package/esm2022/lib/modules/notification/store/notificationuser.collection.store.mjs +4 -4
  135. package/esm2022/lib/modules/notification/store/notificationuser.document.store.directive.mjs +7 -6
  136. package/esm2022/lib/modules/notification/store/notificationuser.document.store.mjs +4 -4
  137. package/esm2022/lib/pipe/key.pipe.mjs +7 -7
  138. package/esm2022/lib/pipe/pipe.module.mjs +4 -4
  139. package/esm2022/lib/providers.mjs +40 -0
  140. package/esm2022/lib/router/id.param.redirect.mjs +1 -1
  141. package/esm2022/lib/storage/firebase.storage.module.mjs +11 -34
  142. package/esm2022/lib/storage/firebase.storage.providers.mjs +43 -0
  143. package/esm2022/lib/storage/firebase.storage.service.mjs +3 -3
  144. package/esm2022/lib/storage/index.mjs +2 -1
  145. package/fesm2022/dereekb-dbx-firebase.mjs +1893 -1762
  146. package/fesm2022/dereekb-dbx-firebase.mjs.map +1 -1
  147. package/lib/analytics/analytics.user.events.providers.d.ts +6 -0
  148. package/lib/analytics/{analytics.user.events.d.ts → analytics.user.events.service.d.ts} +5 -5
  149. package/lib/analytics/index.d.ts +2 -1
  150. package/lib/auth/firebase.auth.module.d.ts +6 -5
  151. package/lib/auth/firebase.auth.providers.d.ts +21 -0
  152. package/lib/auth/index.d.ts +1 -0
  153. package/lib/auth/login/_login.scss +3 -3
  154. package/lib/auth/login/firebase.login.module.d.ts +8 -21
  155. package/lib/auth/login/firebase.login.providers.d.ts +32 -0
  156. package/lib/auth/login/firebase.login.providers.default.d.ts +7 -0
  157. package/lib/auth/login/index.d.ts +1 -0
  158. package/lib/auth/login/login.anonymous.component.d.ts +2 -2
  159. package/lib/auth/login/login.apple.component.d.ts +2 -2
  160. package/lib/auth/login/login.button.component.d.ts +19 -14
  161. package/lib/auth/login/login.component.d.ts +6 -6
  162. package/lib/auth/login/login.context.back.component.d.ts +1 -1
  163. package/lib/auth/login/login.context.directive.d.ts +1 -1
  164. package/lib/auth/login/login.email.component.d.ts +1 -1
  165. package/lib/auth/login/login.email.content.component.d.ts +10 -9
  166. package/lib/auth/login/login.email.form.component.d.ts +5 -8
  167. package/lib/auth/login/login.email.recovery.form.component.d.ts +1 -1
  168. package/lib/auth/login/login.facebook.component.d.ts +2 -2
  169. package/lib/auth/login/login.github.component.d.ts +2 -2
  170. package/lib/auth/login/login.google.component.d.ts +2 -2
  171. package/lib/auth/login/login.list.component.d.ts +11 -17
  172. package/lib/auth/login/login.microsoft.component.d.ts +2 -2
  173. package/lib/auth/login/login.service.d.ts +3 -3
  174. package/lib/auth/login/login.terms.component.d.ts +1 -1
  175. package/lib/auth/login/login.terms.d.ts +17 -3
  176. package/lib/auth/login/login.terms.simple.component.d.ts +2 -3
  177. package/lib/auth/login/login.twitter.component.d.ts +2 -2
  178. package/lib/auth/login/register.component.d.ts +1 -1
  179. package/lib/auth/login/register.email.component.d.ts +1 -1
  180. package/lib/development/{development.popup.directive.d.ts → development.directive.d.ts} +2 -2
  181. package/lib/development/development.module.d.ts +2 -19
  182. package/lib/development/development.popup.component.d.ts +2 -2
  183. package/lib/development/development.popup.content.component.d.ts +10 -6
  184. package/lib/development/development.popup.content.form.component.d.ts +1 -1
  185. package/lib/development/development.providers.d.ts +32 -0
  186. package/lib/development/development.scheduler.list.component.d.ts +3 -3
  187. package/lib/development/development.scheduler.service.d.ts +4 -4
  188. package/lib/development/development.scheduler.widget.component.d.ts +1 -1
  189. package/lib/development/development.service.d.ts +2 -3
  190. package/lib/development/index.d.ts +2 -1
  191. package/lib/firebase/emulators.d.ts +21 -19
  192. package/lib/firebase/firebase.emulator.module.d.ts +2 -0
  193. package/lib/firebase/firebase.emulator.providers.d.ts +13 -0
  194. package/lib/firebase/firebase.module.d.ts +5 -51
  195. package/lib/firebase/{options.d.ts → firebase.options.d.ts} +11 -9
  196. package/lib/firebase/firebase.options.environment.d.ts +10 -0
  197. package/lib/firebase/firebase.providers.d.ts +51 -0
  198. package/lib/firebase/index.d.ts +4 -1
  199. package/lib/firestore/firebase.firestore.module.d.ts +4 -20
  200. package/lib/firestore/firebase.firestore.providers.d.ts +49 -0
  201. package/lib/firestore/index.d.ts +1 -0
  202. package/lib/function/firebase.function.module.d.ts +4 -20
  203. package/lib/function/firebase.function.providers.d.ts +43 -0
  204. package/lib/function/index.d.ts +1 -0
  205. package/lib/index.d.ts +1 -0
  206. package/lib/model/loader/document.loader.instance.d.ts +1 -1
  207. package/lib/model/model.module.d.ts +1 -1
  208. package/lib/model/modules/model/history/index.d.ts +6 -0
  209. package/lib/model/modules/model/history/model.history.component.d.ts +16 -0
  210. package/lib/model/modules/model/history/model.history.module.d.ts +16 -0
  211. package/lib/model/modules/model/{model.history.popover.button.component.d.ts → history/model.history.popover.button.component.d.ts} +7 -6
  212. package/lib/model/modules/model/{model.history.popover.component.d.ts → history/model.history.popover.component.d.ts} +18 -17
  213. package/lib/model/modules/model/{model.sourceselect.history.d.ts → history/model.sourceselect.history.d.ts} +5 -5
  214. package/lib/model/modules/model/{model.tracker.service.d.ts → history/model.tracker.service.d.ts} +6 -6
  215. package/lib/model/modules/model/index.d.ts +1 -6
  216. package/lib/model/modules/model/model.types.list.component.d.ts +12 -12
  217. package/lib/model/modules/model/model.types.module.d.ts +9 -3
  218. package/lib/model/modules/model/model.types.providers.d.ts +22 -0
  219. package/lib/model/modules/model/model.types.service.d.ts +6 -3
  220. package/lib/model/modules/model/model.types.view.directive.d.ts +5 -5
  221. package/lib/model/modules/store/model.store.module.d.ts +7 -9
  222. package/lib/model/modules/store/store.document.router.key.directive.d.ts +2 -1
  223. package/lib/model/service/index.d.ts +1 -0
  224. package/lib/model/service/model.context.providers.d.ts +18 -0
  225. package/lib/modules/notification/component/index.d.ts +1 -0
  226. package/lib/modules/notification/component/notificationitem.content.component.d.ts +4 -4
  227. package/lib/modules/notification/component/notificationitem.list.component.d.ts +3 -3
  228. package/lib/modules/notification/component/notificationitem.view.component.d.ts +4 -9
  229. package/lib/modules/notification/component/notificationitem.view.default.component.d.ts +1 -1
  230. package/lib/modules/notification/container/notification.item.store.popover.button.component.d.ts +4 -4
  231. package/lib/modules/notification/container/notification.item.store.popover.component.d.ts +7 -7
  232. package/lib/modules/notification/index.d.ts +2 -0
  233. package/lib/modules/notification/notification.module.d.ts +18 -10
  234. package/lib/modules/notification/notification.providers.d.ts +24 -0
  235. package/lib/modules/notification/store/index.d.ts +5 -1
  236. package/lib/modules/notification/store/notificationbox.collection.store.directive.d.ts +1 -1
  237. package/lib/modules/notification/store/notificationbox.document.store.directive.d.ts +1 -1
  238. package/lib/modules/notification/store/notificationsummary.collection.store.directive.d.ts +1 -1
  239. package/lib/modules/notification/store/notificationsummary.document.store.directive.d.ts +1 -1
  240. package/lib/modules/notification/store/notificationuser.collection.store.directive.d.ts +1 -1
  241. package/lib/modules/notification/store/notificationuser.document.store.directive.d.ts +1 -1
  242. package/lib/providers.d.ts +55 -0
  243. package/lib/storage/firebase.storage.module.d.ts +6 -9
  244. package/lib/storage/firebase.storage.providers.d.ts +31 -0
  245. package/lib/storage/index.d.ts +1 -0
  246. package/lib/style/_theming.scss +1 -1
  247. package/package.json +7 -8
  248. package/esm2022/lib/analytics/analytics.user.events.mjs +0 -40
  249. package/esm2022/lib/development/development.popup.directive.mjs +0 -77
  250. package/esm2022/lib/firebase/options.mjs +0 -3
  251. package/esm2022/lib/model/modules/model/model.history.component.mjs +0 -46
  252. package/esm2022/lib/model/modules/model/model.history.module.mjs +0 -23
  253. package/esm2022/lib/model/modules/model/model.history.popover.button.component.mjs +0 -44
  254. package/esm2022/lib/model/modules/model/model.history.popover.component.mjs +0 -47
  255. package/esm2022/lib/model/modules/model/model.sourceselect.history.mjs +0 -18
  256. package/esm2022/lib/model/modules/model/model.tracker.service.mjs +0 -58
  257. package/lib/model/modules/model/model.history.component.d.ts +0 -19
  258. package/lib/model/modules/model/model.history.module.d.ts +0 -12
@@ -1,312 +1,26 @@
1
1
  import { NgModule } from '@angular/core';
2
- import { initializeApp } from 'firebase/app';
3
- import { initializeAppCheck, ReCaptchaV3Provider } from 'firebase/app-check';
4
- import { FirebaseApp, provideFirebaseApp } from '@angular/fire/app';
5
- import { provideStorage, getStorage, connectStorageEmulator } from '@angular/fire/storage';
6
- import { provideFunctions, getFunctions, connectFunctionsEmulator } from '@angular/fire/functions';
7
- import { provideFirestore, connectFirestoreEmulator, initializeFirestore, persistentLocalCache, persistentMultipleTabManager, persistentSingleTabManager } from '@angular/fire/firestore';
8
- import { provideAuth, getAuth, connectAuthEmulator } from '@angular/fire/auth';
9
- import { provideAppCheck } from '@angular/fire/app-check';
10
- import { DbxFirebaseParsedEmulatorsConfig } from './emulators';
11
- import { DBX_FIREBASE_OPTIONS_TOKEN } from './options';
12
- import { HTTP_INTERCEPTORS } from '@angular/common/http';
13
- import { enableAppCheckDebugTokenGeneration } from '../auth/appcheck';
14
- import { DbxFirebaseAppCheckHttpInterceptor } from '../auth/appcheck/appcheck.interceptor';
2
+ import { provideDbxFirebaseApp } from './firebase.providers';
15
3
  import * as i0 from "@angular/core";
16
- import * as i1 from "@angular/fire/firestore";
17
- import * as i2 from "@angular/fire/app-check";
18
- import * as i3 from "@angular/fire/auth";
19
- import * as i4 from "@angular/fire/storage";
20
- import * as i5 from "@angular/fire/functions";
21
- import * as i6 from "@angular/fire/app";
22
- /**
23
- * Default firebase firestore provider module.
24
- */
25
- export class DbxFirebaseDefaultFirestoreProviderModule {
26
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: DbxFirebaseDefaultFirestoreProviderModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
27
- static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "16.2.12", ngImport: i0, type: DbxFirebaseDefaultFirestoreProviderModule, imports: [i1.FirestoreModule] });
28
- static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: DbxFirebaseDefaultFirestoreProviderModule, imports: [provideFirestore((injector) => {
29
- const firebaseApp = injector.get(FirebaseApp);
30
- const firebaseOptions = injector.get(DBX_FIREBASE_OPTIONS_TOKEN);
31
- const firestoreSettings = {};
32
- const { enableMultiTabIndexedDbPersistence, enableIndexedDbPersistence } = firebaseOptions;
33
- const { persistentCacheSettings } = firebaseOptions;
34
- if (enableIndexedDbPersistence !== false) {
35
- let tabManager;
36
- if (enableMultiTabIndexedDbPersistence !== false) {
37
- tabManager = persistentMultipleTabManager();
38
- }
39
- else {
40
- tabManager = persistentSingleTabManager(undefined);
41
- }
42
- firestoreSettings.localCache = persistentLocalCache({
43
- tabManager,
44
- ...persistentCacheSettings
45
- });
46
- }
47
- const firestore = initializeFirestore(firebaseApp, firestoreSettings);
48
- const emulators = injector.get(DbxFirebaseParsedEmulatorsConfig, undefined);
49
- if (emulators?.useEmulators && emulators?.firestore) {
50
- connectFirestoreEmulator(firestore, emulators.firestore.host, emulators.firestore.port, {});
51
- }
52
- return firestore;
53
- })] });
54
- }
55
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: DbxFirebaseDefaultFirestoreProviderModule, decorators: [{
56
- type: NgModule,
57
- args: [{
58
- imports: [
59
- provideFirestore((injector) => {
60
- const firebaseApp = injector.get(FirebaseApp);
61
- const firebaseOptions = injector.get(DBX_FIREBASE_OPTIONS_TOKEN);
62
- const firestoreSettings = {};
63
- const { enableMultiTabIndexedDbPersistence, enableIndexedDbPersistence } = firebaseOptions;
64
- const { persistentCacheSettings } = firebaseOptions;
65
- if (enableIndexedDbPersistence !== false) {
66
- let tabManager;
67
- if (enableMultiTabIndexedDbPersistence !== false) {
68
- tabManager = persistentMultipleTabManager();
69
- }
70
- else {
71
- tabManager = persistentSingleTabManager(undefined);
72
- }
73
- firestoreSettings.localCache = persistentLocalCache({
74
- tabManager,
75
- ...persistentCacheSettings
76
- });
77
- }
78
- const firestore = initializeFirestore(firebaseApp, firestoreSettings);
79
- const emulators = injector.get(DbxFirebaseParsedEmulatorsConfig, undefined);
80
- if (emulators?.useEmulators && emulators?.firestore) {
81
- connectFirestoreEmulator(firestore, emulators.firestore.host, emulators.firestore.port, {});
82
- }
83
- return firestore;
84
- })
85
- ]
86
- }]
87
- }] });
88
- /**
89
- * Default firebase app check provider module.
90
- *
91
- * Also configures the DbxFirebaseAppCheckHttpInterceptor with HTTP_INTERCEPTORS in order for appCheck to be appended to requests to the api.
92
- */
93
- export class DbxFirebaseDefaultAppCheckProviderModule {
94
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: DbxFirebaseDefaultAppCheckProviderModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
95
- static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "16.2.12", ngImport: i0, type: DbxFirebaseDefaultAppCheckProviderModule, imports: [i2.AppCheckModule] });
96
- static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: DbxFirebaseDefaultAppCheckProviderModule, providers: [
97
- {
98
- provide: HTTP_INTERCEPTORS,
99
- useClass: DbxFirebaseAppCheckHttpInterceptor,
100
- multi: true
101
- }
102
- ], imports: [provideAppCheck((injector) => {
103
- const firebaseApp = injector.get(FirebaseApp);
104
- const firebaseOptions = injector.get(DBX_FIREBASE_OPTIONS_TOKEN);
105
- const appCheckOptions = firebaseOptions.appCheck;
106
- const appCheckKnowinglyDisabled = appCheckOptions?.disabled === true || firebaseOptions.emulators?.useEmulators === true;
107
- let appCheck;
108
- if (appCheckOptions && !appCheckKnowinglyDisabled) {
109
- // enable the debug tokens if not using emulators and allowDebugTokens is set true
110
- if (firebaseOptions.emulators?.useEmulators !== true && appCheckOptions.allowDebugTokens) {
111
- enableAppCheckDebugTokenGeneration(true);
112
- }
113
- // Only enabled outside of app-check environments. The emulators will not use appcheck.
114
- appCheck = initializeAppCheck(firebaseApp, {
115
- provider: new ReCaptchaV3Provider(appCheckOptions.reCaptchaV3),
116
- isTokenAutoRefreshEnabled: appCheckOptions.isTokenAutoRefreshEnabled ?? true
117
- });
118
- console.log('Enabled AppCheck.');
119
- }
120
- else {
121
- appCheck = undefined;
122
- if (!appCheckKnowinglyDisabled) {
123
- console.error('dbx-firebase: No appcheck configuration for the app, and not specifically disabled in config either.');
124
- }
125
- }
126
- return appCheck;
127
- })] });
128
- }
129
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: DbxFirebaseDefaultAppCheckProviderModule, decorators: [{
130
- type: NgModule,
131
- args: [{
132
- imports: [
133
- provideAppCheck((injector) => {
134
- const firebaseApp = injector.get(FirebaseApp);
135
- const firebaseOptions = injector.get(DBX_FIREBASE_OPTIONS_TOKEN);
136
- const appCheckOptions = firebaseOptions.appCheck;
137
- const appCheckKnowinglyDisabled = appCheckOptions?.disabled === true || firebaseOptions.emulators?.useEmulators === true;
138
- let appCheck;
139
- if (appCheckOptions && !appCheckKnowinglyDisabled) {
140
- // enable the debug tokens if not using emulators and allowDebugTokens is set true
141
- if (firebaseOptions.emulators?.useEmulators !== true && appCheckOptions.allowDebugTokens) {
142
- enableAppCheckDebugTokenGeneration(true);
143
- }
144
- // Only enabled outside of app-check environments. The emulators will not use appcheck.
145
- appCheck = initializeAppCheck(firebaseApp, {
146
- provider: new ReCaptchaV3Provider(appCheckOptions.reCaptchaV3),
147
- isTokenAutoRefreshEnabled: appCheckOptions.isTokenAutoRefreshEnabled ?? true
148
- });
149
- console.log('Enabled AppCheck.');
150
- }
151
- else {
152
- appCheck = undefined;
153
- if (!appCheckKnowinglyDisabled) {
154
- console.error('dbx-firebase: No appcheck configuration for the app, and not specifically disabled in config either.');
155
- }
156
- }
157
- return appCheck;
158
- })
159
- ],
160
- providers: [
161
- {
162
- provide: HTTP_INTERCEPTORS,
163
- useClass: DbxFirebaseAppCheckHttpInterceptor,
164
- multi: true
165
- }
166
- ]
167
- }]
168
- }] });
169
- /**
170
- * Default firebase auth provider module.
171
- */
172
- export class DbxFirebaseDefaultAuthProviderModule {
173
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: DbxFirebaseDefaultAuthProviderModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
174
- static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "16.2.12", ngImport: i0, type: DbxFirebaseDefaultAuthProviderModule, imports: [i3.AuthModule] });
175
- static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: DbxFirebaseDefaultAuthProviderModule, imports: [provideAuth((injector) => {
176
- const firebaseApp = injector.get(FirebaseApp);
177
- const auth = getAuth(firebaseApp);
178
- const emulators = injector.get(DbxFirebaseParsedEmulatorsConfig, undefined);
179
- if (emulators?.useEmulators && emulators?.auth) {
180
- connectAuthEmulator(auth, `http://${emulators.auth.host}:${emulators.auth.port}`);
181
- }
182
- return auth;
183
- })] });
184
- }
185
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: DbxFirebaseDefaultAuthProviderModule, decorators: [{
186
- type: NgModule,
187
- args: [{
188
- imports: [
189
- provideAuth((injector) => {
190
- const firebaseApp = injector.get(FirebaseApp);
191
- const auth = getAuth(firebaseApp);
192
- const emulators = injector.get(DbxFirebaseParsedEmulatorsConfig, undefined);
193
- if (emulators?.useEmulators && emulators?.auth) {
194
- connectAuthEmulator(auth, `http://${emulators.auth.host}:${emulators.auth.port}`);
195
- }
196
- return auth;
197
- })
198
- ]
199
- }]
200
- }] });
201
- /**
202
- * Default firebase storage provider module.
203
- */
204
- export class DbxFirebaseDefaultStorageProviderModule {
205
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: DbxFirebaseDefaultStorageProviderModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
206
- static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "16.2.12", ngImport: i0, type: DbxFirebaseDefaultStorageProviderModule, imports: [i4.StorageModule] });
207
- static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: DbxFirebaseDefaultStorageProviderModule, imports: [provideStorage((injector) => {
208
- const firebaseApp = injector.get(FirebaseApp);
209
- const storage = getStorage(firebaseApp);
210
- const emulators = injector.get(DbxFirebaseParsedEmulatorsConfig, undefined);
211
- if (emulators?.useEmulators && emulators?.storage) {
212
- connectStorageEmulator(storage, emulators.storage.host, emulators.storage.port, {});
213
- }
214
- return storage;
215
- })] });
216
- }
217
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: DbxFirebaseDefaultStorageProviderModule, decorators: [{
218
- type: NgModule,
219
- args: [{
220
- imports: [
221
- provideStorage((injector) => {
222
- const firebaseApp = injector.get(FirebaseApp);
223
- const storage = getStorage(firebaseApp);
224
- const emulators = injector.get(DbxFirebaseParsedEmulatorsConfig, undefined);
225
- if (emulators?.useEmulators && emulators?.storage) {
226
- connectStorageEmulator(storage, emulators.storage.host, emulators.storage.port, {});
227
- }
228
- return storage;
229
- })
230
- ]
231
- }]
232
- }] });
233
- /**
234
- * Default firebase functions provider module.
235
- */
236
- export class DbxFirebaseDefaultFunctionsProviderModule {
237
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: DbxFirebaseDefaultFunctionsProviderModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
238
- static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "16.2.12", ngImport: i0, type: DbxFirebaseDefaultFunctionsProviderModule, imports: [i5.FunctionsModule] });
239
- static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: DbxFirebaseDefaultFunctionsProviderModule, imports: [provideFunctions((injector) => {
240
- const firebaseApp = injector.get(FirebaseApp);
241
- const firebaseOptions = injector.get(DBX_FIREBASE_OPTIONS_TOKEN);
242
- const { functionsRegionOrCustomDomain } = firebaseOptions;
243
- const functions = getFunctions(firebaseApp, functionsRegionOrCustomDomain);
244
- const emulators = injector.get(DbxFirebaseParsedEmulatorsConfig, undefined);
245
- if (emulators?.useEmulators && emulators?.functions) {
246
- connectFunctionsEmulator(functions, emulators.functions.host, emulators.functions.port);
247
- }
248
- return functions;
249
- })] });
250
- }
251
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: DbxFirebaseDefaultFunctionsProviderModule, decorators: [{
252
- type: NgModule,
253
- args: [{
254
- imports: [
255
- provideFunctions((injector) => {
256
- const firebaseApp = injector.get(FirebaseApp);
257
- const firebaseOptions = injector.get(DBX_FIREBASE_OPTIONS_TOKEN);
258
- const { functionsRegionOrCustomDomain } = firebaseOptions;
259
- const functions = getFunctions(firebaseApp, functionsRegionOrCustomDomain);
260
- const emulators = injector.get(DbxFirebaseParsedEmulatorsConfig, undefined);
261
- if (emulators?.useEmulators && emulators?.functions) {
262
- connectFunctionsEmulator(functions, emulators.functions.host, emulators.functions.port);
263
- }
264
- return functions;
265
- })
266
- ]
267
- }]
268
- }] });
269
4
  /**
270
5
  * Default provider module.
6
+ *
7
+ * @deprecated use provideDbxFirebaseApp() instead
271
8
  */
272
9
  export class DbxFirebaseDefaultFirebaseProvidersModule {
273
- static forRoot(firebaseOptions) {
10
+ static forRoot(dbxFirebaseOptions) {
274
11
  return {
275
12
  ngModule: DbxFirebaseDefaultFirebaseProvidersModule,
276
- providers: [
277
- {
278
- provide: DBX_FIREBASE_OPTIONS_TOKEN,
279
- useValue: firebaseOptions
280
- }
281
- ]
13
+ providers: [provideDbxFirebaseApp({ dbxFirebaseAppOptions: dbxFirebaseOptions })]
282
14
  };
283
15
  }
284
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: DbxFirebaseDefaultFirebaseProvidersModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
285
- static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "16.2.12", ngImport: i0, type: DbxFirebaseDefaultFirebaseProvidersModule, imports: [i6.FirebaseAppModule, DbxFirebaseDefaultAppCheckProviderModule, DbxFirebaseDefaultFirestoreProviderModule, DbxFirebaseDefaultAuthProviderModule, DbxFirebaseDefaultStorageProviderModule, DbxFirebaseDefaultFunctionsProviderModule] });
286
- static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: DbxFirebaseDefaultFirebaseProvidersModule, imports: [provideFirebaseApp((injector) => {
287
- const firebaseOptions = injector.get(DBX_FIREBASE_OPTIONS_TOKEN);
288
- return initializeApp(firebaseOptions);
289
- }),
290
- DbxFirebaseDefaultAppCheckProviderModule,
291
- DbxFirebaseDefaultFirestoreProviderModule,
292
- DbxFirebaseDefaultAuthProviderModule,
293
- DbxFirebaseDefaultStorageProviderModule,
294
- DbxFirebaseDefaultFunctionsProviderModule] });
16
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: DbxFirebaseDefaultFirebaseProvidersModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
17
+ static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.2.13", ngImport: i0, type: DbxFirebaseDefaultFirebaseProvidersModule });
18
+ static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: DbxFirebaseDefaultFirebaseProvidersModule });
295
19
  }
296
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: DbxFirebaseDefaultFirebaseProvidersModule, decorators: [{
20
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: DbxFirebaseDefaultFirebaseProvidersModule, decorators: [{
297
21
  type: NgModule,
298
22
  args: [{
299
- imports: [
300
- provideFirebaseApp((injector) => {
301
- const firebaseOptions = injector.get(DBX_FIREBASE_OPTIONS_TOKEN);
302
- return initializeApp(firebaseOptions);
303
- }),
304
- DbxFirebaseDefaultAppCheckProviderModule,
305
- DbxFirebaseDefaultFirestoreProviderModule,
306
- DbxFirebaseDefaultAuthProviderModule,
307
- DbxFirebaseDefaultStorageProviderModule,
308
- DbxFirebaseDefaultFunctionsProviderModule
309
- ]
23
+ providers: []
310
24
  }]
311
25
  }] });
312
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlyZWJhc2UubW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvZGJ4LWZpcmViYXNlL3NyYy9saWIvZmlyZWJhc2UvZmlyZWJhc2UubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBdUIsUUFBUSxFQUFZLE1BQU0sZUFBZSxDQUFDO0FBQ3hFLE9BQU8sRUFBbUIsYUFBYSxFQUFFLE1BQU0sY0FBYyxDQUFDO0FBQzlELE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxtQkFBbUIsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBQzdFLE9BQU8sRUFBRSxXQUFXLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUNwRSxPQUFPLEVBQUUsY0FBYyxFQUFFLFVBQVUsRUFBRSxzQkFBc0IsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQzNGLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxZQUFZLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUNuRyxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsd0JBQXdCLEVBQUUsbUJBQW1CLEVBQUUsb0JBQW9CLEVBQUUsNEJBQTRCLEVBQXFCLDBCQUEwQixFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDN00sT0FBTyxFQUFFLFdBQVcsRUFBRSxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUMvRSxPQUFPLEVBQVksZUFBZSxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDcEUsT0FBTyxFQUFFLGdDQUFnQyxFQUFFLE1BQU0sYUFBYSxDQUFDO0FBQy9ELE9BQU8sRUFBc0IsMEJBQTBCLEVBQUUsTUFBTSxXQUFXLENBQUM7QUFDM0UsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDekQsT0FBTyxFQUFFLGtDQUFrQyxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFDdEUsT0FBTyxF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QUNMLFFBQVEsRUFBRSx5Q0FBeUM7WUFDbkQsU0FBUyxFQUFFO2dCQUNUO29CQUNFLE9BQU8sRUFBRSwwQkFBMEI7b0JBQ25DLFFBQVEsRUFBRSxlQUFlO2lCQUMxQjthQUNGO1NBQ0YsQ0FBQztJQUNKLENBQUM7d0dBWFUseUNBQXlDO3lHQUF6Qyx5Q0FBeUMsa0NBakZ6Qyx3Q0FBd0MsRUFoRHhDLHlDQUF5QyxFQW9FekMsb0NBQW9DLEVBb0JwQyx1Q0FBdUMsRUF1QnZDLHlDQUF5Qzt5R0FrQnpDLHlDQUF5QyxZQVhsRCxrQkFBa0IsQ0FBQyxDQUFDLFFBQWtCLEVBQUUsRUFBRTtnQkFDeEMsTUFBTSxlQUFlLEdBQUcsUUFBUSxDQUFDLEdBQUcsQ0FBcUIsMEJBQTBCLENBQUMsQ0FBQztnQkFDckYsT0FBTyxhQUFhLENBQUMsZUFBZSxDQUFDLENBQUM7WUFDeEMsQ0FBQyxDQUFDO1lBQ0Ysd0NBQXdDO1lBQ3hDLHlDQUF5QztZQUN6QyxvQ0FBb0M7WUFDcEMsdUNBQXVDO1lBQ3ZDLHlDQUF5Qzs7NEZBR2hDLHlDQUF5QztrQkFickQsUUFBUTttQkFBQztvQkFDUixPQUFPLEVBQUU7d0JBQ1Asa0JBQWtCLENBQUMsQ0FBQyxRQUFrQixFQUFFLEVBQUU7NEJBQ3hDLE1BQU0sZUFBZSxHQUFHLFFBQVEsQ0FBQyxHQUFHLENBQXFCLDBCQUEwQixDQUFDLENBQUM7NEJBQ3JGLE9BQU8sYUFBYSxDQUFDLGVBQWUsQ0FBQyxDQUFDO3dCQUN4QyxDQUFDLENBQUM7d0JBQ0Ysd0NBQXdDO3dCQUN4Qyx5Q0FBeUM7d0JBQ3pDLG9DQUFvQzt3QkFDcEMsdUNBQXVDO3dCQUN2Qyx5Q0FBeUM7cUJBQzFDO2lCQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTW9kdWxlV2l0aFByb3ZpZGVycywgTmdNb2R1bGUsIEluamVjdG9yIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBGaXJlYmFzZU9wdGlvbnMsIGluaXRpYWxpemVBcHAgfSBmcm9tICdmaXJlYmFzZS9hcHAnO1xuaW1wb3J0IHsgaW5pdGlhbGl6ZUFwcENoZWNrLCBSZUNhcHRjaGFWM1Byb3ZpZGVyIH0gZnJvbSAnZmlyZWJhc2UvYXBwLWNoZWNrJztcbmltcG9ydCB7IEZpcmViYXNlQXBwLCBwcm92aWRlRmlyZWJhc2VBcHAgfSBmcm9tICdAYW5ndWxhci9maXJlL2FwcCc7XG5pbXBvcnQgeyBwcm92aWRlU3RvcmFnZSwgZ2V0U3RvcmFnZSwgY29ubmVjdFN0b3JhZ2VFbXVsYXRvciB9IGZyb20gJ0Bhbmd1bGFyL2ZpcmUvc3RvcmFnZSc7XG5pbXBvcnQgeyBwcm92aWRlRnVuY3Rpb25zLCBnZXRGdW5jdGlvbnMsIGNvbm5lY3RGdW5jdGlvbnNFbXVsYXRvciB9IGZyb20gJ0Bhbmd1bGFyL2ZpcmUvZnVuY3Rpb25zJztcbmltcG9ydCB7IHByb3ZpZGVGaXJlc3RvcmUsIGNvbm5lY3RGaXJlc3RvcmVFbXVsYXRvciwgaW5pdGlhbGl6ZUZpcmVzdG9yZSwgcGVyc2lzdGVudExvY2FsQ2FjaGUsIHBlcnNpc3RlbnRNdWx0aXBsZVRhYk1hbmFnZXIsIEZpcmVzdG9yZVNldHRpbmdzLCBwZXJzaXN0ZW50U2luZ2xlVGFiTWFuYWdlciB9IGZyb20gJ0Bhbmd1bGFyL2ZpcmUvZmlyZXN0b3JlJztcbmltcG9ydCB7IHByb3ZpZGVBdXRoLCBnZXRBdXRoLCBjb25uZWN0QXV0aEVtdWxhdG9yIH0gZnJvbSAnQGFuZ3VsYXIvZmlyZS9hdXRoJztcbmltcG9ydCB7IEFwcENoZWNrLCBwcm92aWRlQXBwQ2hlY2sgfSBmcm9tICdAYW5ndWxhci9maXJlL2FwcC1jaGVjayc7XG5pbXBvcnQgeyBEYnhGaXJlYmFzZVBhcnNlZEVtdWxhdG9yc0NvbmZpZyB9IGZyb20gJy4vZW11bGF0b3JzJztcbmltcG9ydCB7IERieEZpcmViYXNlT3B0aW9ucywgREJYX0ZJUkVCQVNFX09QVElPTlNfVE9LRU4gfSBmcm9tICcuL29wdGlvbnMnO1xuaW1wb3J0IHsgSFRUUF9JTlRFUkNFUFRPUlMgfSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XG5pbXBvcnQgeyBlbmFibGVBcHBDaGVja0RlYnVnVG9rZW5HZW5lcmF0aW9uIH0gZnJvbSAnLi4vYXV0aC9hcHBjaGVjayc7XG5pbXBvcnQgeyBEYnhGaXJlYmFzZUFwcENoZWNrSHR0cEludGVyY2VwdG9yIH0gZnJvbSAnLi4vYXV0aC9hcHBjaGVjay9hcHBjaGVjay5pbnRlcmNlcHRvcic7XG5cbi8qKlxuICogRGVmYXVsdCBmaXJlYmFzZSBmaXJlc3RvcmUgcHJvdmlkZXIgbW9kdWxlLlxuICovXG5ATmdNb2R1bGUoe1xuICBpbXBvcnRzOiBbXG4gICAgcHJvdmlkZUZpcmVzdG9yZSgoaW5qZWN0b3I6IEluamVjdG9yKSA9PiB7XG4gICAgICBjb25zdCBmaXJlYmFzZUFwcCA9IGluamVjdG9yLmdldChGaXJlYmFzZUFwcCk7XG4gICAgICBjb25zdCBmaXJlYmFzZU9wdGlvbnMgPSBpbmplY3Rvci5nZXQ8RGJ4RmlyZWJhc2VPcHRpb25zPihEQlhfRklSRUJBU0VfT1BUSU9OU19UT0tFTik7XG5cbiAgICAgIGNvbnN0IGZpcmVzdG9yZVNldHRpbmdzOiBGaXJlc3RvcmVTZXR0aW5ncyA9IHt9O1xuXG4gICAgICBjb25zdCB7IGVuYWJsZU11bHRpVGFiSW5kZXhlZERiUGVyc2lzdGVuY2UsIGVuYWJsZUluZGV4ZWREYlBlcnNpc3RlbmNlIH0gPSBmaXJlYmFzZU9wdGlvbnM7XG4gICAgICBjb25zdCB7IHBlcnNpc3RlbnRDYWNoZVNldHRpbmdzIH0gPSBmaXJlYmFzZU9wdGlvbnM7XG5cbiAgICAgIGlmIChlbmFibGVJbmRleGVkRGJQZXJzaXN0ZW5jZSAhPT0gZmFsc2UpIHtcbiAgICAgICAgbGV0IHRhYk1hbmFnZXI7XG5cbiAgICAgICAgaWYgKGVuYWJsZU11bHRpVGFiSW5kZXhlZERiUGVyc2lzdGVuY2UgIT09IGZhbHNlKSB7XG4gICAgICAgICAgdGFiTWFuYWdlciA9IHBlcnNpc3RlbnRNdWx0aXBsZVRhYk1hbmFnZXIoKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICB0YWJNYW5hZ2VyID0gcGVyc2lzdGVudFNpbmdsZVRhYk1hbmFnZXIodW5kZWZpbmVkKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGZpcmVzdG9yZVNldHRpbmdzLmxvY2FsQ2FjaGUgPSBwZXJzaXN0ZW50TG9jYWxDYWNoZSh7XG4gICAgICAgICAgdGFiTWFuYWdlcixcbiAgICAgICAgICAuLi5wZXJzaXN0ZW50Q2FjaGVTZXR0aW5nc1xuICAgICAgICB9KTtcbiAgICAgIH1cblxuICAgICAgY29uc3QgZmlyZXN0b3JlID0gaW5pdGlhbGl6ZUZpcmVzdG9yZShmaXJlYmFzZUFwcCwgZmlyZXN0b3JlU2V0dGluZ3MpO1xuICAgICAgY29uc3QgZW11bGF0b3JzID0gaW5qZWN0b3IuZ2V0PERieEZpcmViYXNlUGFyc2VkRW11bGF0b3JzQ29uZmlnPihEYnhGaXJlYmFzZVBhcnNlZEVtdWxhdG9yc0NvbmZpZywgdW5kZWZpbmVkKTtcblxuICAgICAgaWYgKGVtdWxhdG9ycz8udXNlRW11bGF0b3JzICYmIGVtdWxhdG9ycz8uZmlyZXN0b3JlKSB7XG4gICAgICAgIGNvbm5lY3RGaXJlc3RvcmVFbXVsYXRvcihmaXJlc3RvcmUsIGVtdWxhdG9ycy5maXJlc3RvcmUuaG9zdCwgZW11bGF0b3JzLmZpcmVzdG9yZS5wb3J0LCB7fSk7XG4gICAgICB9XG5cbiAgICAgIHJldHVybiBmaXJlc3RvcmU7XG4gICAgfSlcbiAgXVxufSlcbmV4cG9ydCBjbGFzcyBEYnhGaXJlYmFzZURlZmF1bHRGaXJlc3RvcmVQcm92aWRlck1vZHVsZSB7fVxuXG4vKipcbiAqIERlZmF1bHQgZmlyZWJhc2UgYXBwIGNoZWNrIHByb3ZpZGVyIG1vZHVsZS5cbiAqXG4gKiBBbHNvIGNvbmZpZ3VyZXMgdGhlIERieEZpcmViYXNlQXBwQ2hlY2tIdHRwSW50ZXJjZXB0b3Igd2l0aCBIVFRQX0lOVEVSQ0VQVE9SUyBpbiBvcmRlciBmb3IgYXBwQ2hlY2sgdG8gYmUgYXBwZW5kZWQgdG8gcmVxdWVzdHMgdG8gdGhlIGFwaS5cbiAqL1xuQE5nTW9kdWxlKHtcbiAgaW1wb3J0czogW1xuICAgIHByb3ZpZGVBcHBDaGVjaygoaW5qZWN0b3I6IEluamVjdG9yKSA9PiB7XG4gICAgICBjb25zdCBmaXJlYmFzZUFwcCA9IGluamVjdG9yLmdldChGaXJlYmFzZUFwcCk7XG4gICAgICBjb25zdCBmaXJlYmFzZU9wdGlvbnMgPSBpbmplY3Rvci5nZXQ8RGJ4RmlyZWJhc2VPcHRpb25zPihEQlhfRklSRUJBU0VfT1BUSU9OU19UT0tFTik7XG4gICAgICBjb25zdCBhcHBDaGVja09wdGlvbnMgPSBmaXJlYmFzZU9wdGlvbnMuYXBwQ2hlY2s7XG4gICAgICBjb25zdCBhcHBDaGVja0tub3dpbmdseURpc2FibGVkID0gYXBwQ2hlY2tPcHRpb25zPy5kaXNhYmxlZCA9PT0gdHJ1ZSB8fCBmaXJlYmFzZU9wdGlvbnMuZW11bGF0b3JzPy51c2VFbXVsYXRvcnMgPT09IHRydWU7XG4gICAgICBsZXQgYXBwQ2hlY2s6IEFwcENoZWNrO1xuXG4gICAgICBpZiAoYXBwQ2hlY2tPcHRpb25zICYmICFhcHBDaGVja0tub3dpbmdseURpc2FibGVkKSB7XG4gICAgICAgIC8vIGVuYWJsZSB0aGUgZGVidWcgdG9rZW5zIGlmIG5vdCB1c2luZyBlbXVsYXRvcnMgYW5kIGFsbG93RGVidWdUb2tlbnMgaXMgc2V0IHRydWVcbiAgICAgICAgaWYgKGZpcmViYXNlT3B0aW9ucy5lbXVsYXRvcnM/LnVzZUVtdWxhdG9ycyAhPT0gdHJ1ZSAmJiBhcHBDaGVja09wdGlvbnMuYWxsb3dEZWJ1Z1Rva2Vucykge1xuICAgICAgICAgIGVuYWJsZUFwcENoZWNrRGVidWdUb2tlbkdlbmVyYXRpb24odHJ1ZSk7XG4gICAgICAgIH1cblxuICAgICAgICAvLyBPbmx5IGVuYWJsZWQgb3V0c2lkZSBvZiBhcHAtY2hlY2sgZW52aXJvbm1lbnRzLiBUaGUgZW11bGF0b3JzIHdpbGwgbm90IHVzZSBhcHBjaGVjay5cbiAgICAgICAgYXBwQ2hlY2sgPSBpbml0aWFsaXplQXBwQ2hlY2soZmlyZWJhc2VBcHAsIHtcbiAgICAgICAgICBwcm92aWRlcjogbmV3IFJlQ2FwdGNoYVYzUHJvdmlkZXIoYXBwQ2hlY2tPcHRpb25zLnJlQ2FwdGNoYVYzKSxcbiAgICAgICAgICBpc1Rva2VuQXV0b1JlZnJlc2hFbmFibGVkOiBhcHBDaGVja09wdGlvbnMuaXNUb2tlbkF1dG9SZWZyZXNoRW5hYmxlZCA/PyB0cnVlXG4gICAgICAgIH0pO1xuXG4gICAgICAgIGNvbnNvbGUubG9nKCdFbmFibGVkIEFwcENoZWNrLicpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgYXBwQ2hlY2sgPSB1bmRlZmluZWQgYXMgdW5rbm93biBhcyBBcHBDaGVjaztcblxuICAgICAgICBpZiAoIWFwcENoZWNrS25vd2luZ2x5RGlzYWJsZWQpIHtcbiAgICAgICAgICBjb25zb2xlLmVycm9yKCdkYngtZmlyZWJhc2U6IE5vIGFwcGNoZWNrIGNvbmZpZ3VyYXRpb24gZm9yIHRoZSBhcHAsIGFuZCBub3Qgc3BlY2lmaWNhbGx5IGRpc2FibGVkIGluIGNvbmZpZyBlaXRoZXIuJyk7XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgcmV0dXJuIGFwcENoZWNrO1xuICAgIH0pXG4gIF0sXG4gIHByb3ZpZGVyczogW1xuICAgIHtcbiAgICAgIHByb3ZpZGU6IEhUVFBfSU5URVJDRVBUT1JTLFxuICAgICAgdXNlQ2xhc3M6IERieEZpcmViYXNlQXBwQ2hlY2tIdHRwSW50ZXJjZXB0b3IsXG4gICAgICBtdWx0aTogdHJ1ZVxuICAgIH1cbiAgXVxufSlcbmV4cG9ydCBjbGFzcyBEYnhGaXJlYmFzZURlZmF1bHRBcHBDaGVja1Byb3ZpZGVyTW9kdWxlIHt9XG5cbi8qKlxuICogRGVmYXVsdCBmaXJlYmFzZSBhdXRoIHByb3ZpZGVyIG1vZHVsZS5cbiAqL1xuQE5nTW9kdWxlKHtcbiAgaW1wb3J0czogW1xuICAgIHByb3ZpZGVBdXRoKChpbmplY3RvcjogSW5qZWN0b3IpID0+IHtcbiAgICAgIGNvbnN0IGZpcmViYXNlQXBwID0gaW5qZWN0b3IuZ2V0KEZpcmViYXNlQXBwKTtcbiAgICAgIGNvbnN0IGF1dGggPSBnZXRBdXRoKGZpcmViYXNlQXBwKTtcbiAgICAgIGNvbnN0IGVtdWxhdG9ycyA9IGluamVjdG9yLmdldDxEYnhGaXJlYmFzZVBhcnNlZEVtdWxhdG9yc0NvbmZpZz4oRGJ4RmlyZWJhc2VQYXJzZWRFbXVsYXRvcnNDb25maWcsIHVuZGVmaW5lZCk7XG5cbiAgICAgIGlmIChlbXVsYXRvcnM/LnVzZUVtdWxhdG9ycyAmJiBlbXVsYXRvcnM/LmF1dGgpIHtcbiAgICAgICAgY29ubmVjdEF1dGhFbXVsYXRvcihhdXRoLCBgaHR0cDovLyR7ZW11bGF0b3JzLmF1dGguaG9zdH06JHtlbXVsYXRvcnMuYXV0aC5wb3J0fWApO1xuICAgICAgfVxuXG4gICAgICByZXR1cm4gYXV0aDtcbiAgICB9KVxuICBdXG59KVxuZXhwb3J0IGNsYXNzIERieEZpcmViYXNlRGVmYXVsdEF1dGhQcm92aWRlck1vZHVsZSB7fVxuXG4vKipcbiAqIERlZmF1bHQgZmlyZWJhc2Ugc3RvcmFnZSBwcm92aWRlciBtb2R1bGUuXG4gKi9cbkBOZ01vZHVsZSh7XG4gIGltcG9ydHM6IFtcbiAgICBwcm92aWRlU3RvcmFnZSgoaW5qZWN0b3I6IEluamVjdG9yKSA9PiB7XG4gICAgICBjb25zdCBmaXJlYmFzZUFwcCA9IGluamVjdG9yLmdldChGaXJlYmFzZUFwcCk7XG4gICAgICBjb25zdCBzdG9yYWdlID0gZ2V0U3RvcmFnZShmaXJlYmFzZUFwcCk7XG4gICAgICBjb25zdCBlbXVsYXRvcnMgPSBpbmplY3Rvci5nZXQ8RGJ4RmlyZWJhc2VQYXJzZWRFbXVsYXRvcnNDb25maWc+KERieEZpcmViYXNlUGFyc2VkRW11bGF0b3JzQ29uZmlnLCB1bmRlZmluZWQpO1xuXG4gICAgICBpZiAoZW11bGF0b3JzPy51c2VFbXVsYXRvcnMgJiYgZW11bGF0b3JzPy5zdG9yYWdlKSB7XG4gICAgICAgIGNvbm5lY3RTdG9yYWdlRW11bGF0b3Ioc3RvcmFnZSwgZW11bGF0b3JzLnN0b3JhZ2UuaG9zdCwgZW11bGF0b3JzLnN0b3JhZ2UucG9ydCwge30pO1xuICAgICAgfVxuXG4gICAgICByZXR1cm4gc3RvcmFnZTtcbiAgICB9KVxuICBdXG59KVxuZXhwb3J0IGNsYXNzIERieEZpcmViYXNlRGVmYXVsdFN0b3JhZ2VQcm92aWRlck1vZHVsZSB7fVxuXG4vKipcbiAqIERlZmF1bHQgZmlyZWJhc2UgZnVuY3Rpb25zIHByb3ZpZGVyIG1vZHVsZS5cbiAqL1xuQE5nTW9kdWxlKHtcbiAgaW1wb3J0czogW1xuICAgIHByb3ZpZGVGdW5jdGlvbnMoKGluamVjdG9yOiBJbmplY3RvcikgPT4ge1xuICAgICAgY29uc3QgZmlyZWJhc2VBcHAgPSBpbmplY3Rvci5nZXQoRmlyZWJhc2VBcHApO1xuICAgICAgY29uc3QgZmlyZWJhc2VPcHRpb25zID0gaW5qZWN0b3IuZ2V0PERieEZpcmViYXNlT3B0aW9ucz4oREJYX0ZJUkVCQVNFX09QVElPTlNfVE9LRU4pO1xuICAgICAgY29uc3QgeyBmdW5jdGlvbnNSZWdpb25PckN1c3RvbURvbWFpbiB9ID0gZmlyZWJhc2VPcHRpb25zO1xuXG4gICAgICBjb25zdCBmdW5jdGlvbnMgPSBnZXRGdW5jdGlvbnMoZmlyZWJhc2VBcHAsIGZ1bmN0aW9uc1JlZ2lvbk9yQ3VzdG9tRG9tYWluKTtcbiAgICAgIGNvbnN0IGVtdWxhdG9ycyA9IGluamVjdG9yLmdldDxEYnhGaXJlYmFzZVBhcnNlZEVtdWxhdG9yc0NvbmZpZz4oRGJ4RmlyZWJhc2VQYXJzZWRFbXVsYXRvcnNDb25maWcsIHVuZGVmaW5lZCk7XG5cbiAgICAgIGlmIChlbXVsYXRvcnM/LnVzZUVtdWxhdG9ycyAmJiBlbXVsYXRvcnM/LmZ1bmN0aW9ucykge1xuICAgICAgICBjb25uZWN0RnVuY3Rpb25zRW11bGF0b3IoZnVuY3Rpb25zLCBlbXVsYXRvcnMuZnVuY3Rpb25zLmhvc3QsIGVtdWxhdG9ycy5mdW5jdGlvbnMucG9ydCk7XG4gICAgICB9XG5cbiAgICAgIHJldHVybiBmdW5jdGlvbnM7XG4gICAgfSlcbiAgXVxufSlcbmV4cG9ydCBjbGFzcyBEYnhGaXJlYmFzZURlZmF1bHRGdW5jdGlvbnNQcm92aWRlck1vZHVsZSB7fVxuXG4vKipcbiAqIERlZmF1bHQgcHJvdmlkZXIgbW9kdWxlLlxuICovXG5ATmdNb2R1bGUoe1xuICBpbXBvcnRzOiBbXG4gICAgcHJvdmlkZUZpcmViYXNlQXBwKChpbmplY3RvcjogSW5qZWN0b3IpID0+IHtcbiAgICAgIGNvbnN0IGZpcmViYXNlT3B0aW9ucyA9IGluamVjdG9yLmdldDxEYnhGaXJlYmFzZU9wdGlvbnM+KERCWF9GSVJFQkFTRV9PUFRJT05TX1RPS0VOKTtcbiAgICAgIHJldHVybiBpbml0aWFsaXplQXBwKGZpcmViYXNlT3B0aW9ucyk7XG4gICAgfSksXG4gICAgRGJ4RmlyZWJhc2VEZWZhdWx0QXBwQ2hlY2tQcm92aWRlck1vZHVsZSxcbiAgICBEYnhGaXJlYmFzZURlZmF1bHRGaXJlc3RvcmVQcm92aWRlck1vZHVsZSxcbiAgICBEYnhGaXJlYmFzZURlZmF1bHRBdXRoUHJvdmlkZXJNb2R1bGUsXG4gICAgRGJ4RmlyZWJhc2VEZWZhdWx0U3RvcmFnZVByb3ZpZGVyTW9kdWxlLFxuICAgIERieEZpcmViYXNlRGVmYXVsdEZ1bmN0aW9uc1Byb3ZpZGVyTW9kdWxlXG4gIF1cbn0pXG5leHBvcnQgY2xhc3MgRGJ4RmlyZWJhc2VEZWZhdWx0RmlyZWJhc2VQcm92aWRlcnNNb2R1bGUge1xuICBzdGF0aWMgZm9yUm9vdChmaXJlYmFzZU9wdGlvbnM6IEZpcmViYXNlT3B0aW9ucyk6IE1vZHVsZVdpdGhQcm92aWRlcnM8RGJ4RmlyZWJhc2VEZWZhdWx0RmlyZWJhc2VQcm92aWRlcnNNb2R1bGU+IHtcbiAgICByZXR1cm4ge1xuICAgICAgbmdNb2R1bGU6IERieEZpcmViYXNlRGVmYXVsdEZpcmViYXNlUHJvdmlkZXJzTW9kdWxlLFxuICAgICAgcHJvdmlkZXJzOiBbXG4gICAgICAgIHtcbiAgICAgICAgICBwcm92aWRlOiBEQlhfRklSRUJBU0VfT1BUSU9OU19UT0tFTixcbiAgICAgICAgICB1c2VWYWx1ZTogZmlyZWJhc2VPcHRpb25zXG4gICAgICAgIH1cbiAgICAgIF1cbiAgICB9O1xuICB9XG59XG4iXX0=
26
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlyZWJhc2UubW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvZGJ4LWZpcmViYXNlL3NyYy9saWIvZmlyZWJhc2UvZmlyZWJhc2UubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBdUIsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzlELE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLHNCQUFzQixDQUFDOztBQUc3RDs7OztHQUlHO0FBSUgsTUFBTSxPQUFPLHlDQUF5QztJQUNwRCxNQUFNLENBQUMsT0FBTyxDQUFDLGtCQUF5QztRQUN0RCxPQUFPO1lBQ0wsUUFBUSxFQUFFLHlDQUF5QztZQUNuRCxTQUFTLEVBQUUsQ0FBQyxxQkFBcUIsQ0FBQyxFQUFFLHFCQUFxQixFQUFFLGtCQUFrQixFQUFFLENBQUMsQ0FBQztTQUNsRixDQUFDO0lBQ0osQ0FBQzt3R0FOVSx5Q0FBeUM7eUdBQXpDLHlDQUF5Qzt5R0FBekMseUNBQXlDOzs0RkFBekMseUNBQXlDO2tCQUhyRCxRQUFRO21CQUFDO29CQUNSLFNBQVMsRUFBRSxFQUFFO2lCQUNkIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTW9kdWxlV2l0aFByb3ZpZGVycywgTmdNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IHByb3ZpZGVEYnhGaXJlYmFzZUFwcCB9IGZyb20gJy4vZmlyZWJhc2UucHJvdmlkZXJzJztcbmltcG9ydCB7IERieEZpcmViYXNlQXBwT3B0aW9ucyB9IGZyb20gJy4vZmlyZWJhc2Uub3B0aW9ucyc7XG5cbi8qKlxuICogRGVmYXVsdCBwcm92aWRlciBtb2R1bGUuXG4gKlxuICogQGRlcHJlY2F0ZWQgdXNlIHByb3ZpZGVEYnhGaXJlYmFzZUFwcCgpIGluc3RlYWRcbiAqL1xuQE5nTW9kdWxlKHtcbiAgcHJvdmlkZXJzOiBbXVxufSlcbmV4cG9ydCBjbGFzcyBEYnhGaXJlYmFzZURlZmF1bHRGaXJlYmFzZVByb3ZpZGVyc01vZHVsZSB7XG4gIHN0YXRpYyBmb3JSb290KGRieEZpcmViYXNlT3B0aW9uczogRGJ4RmlyZWJhc2VBcHBPcHRpb25zKTogTW9kdWxlV2l0aFByb3ZpZGVyczxEYnhGaXJlYmFzZURlZmF1bHRGaXJlYmFzZVByb3ZpZGVyc01vZHVsZT4ge1xuICAgIHJldHVybiB7XG4gICAgICBuZ01vZHVsZTogRGJ4RmlyZWJhc2VEZWZhdWx0RmlyZWJhc2VQcm92aWRlcnNNb2R1bGUsXG4gICAgICBwcm92aWRlcnM6IFtwcm92aWRlRGJ4RmlyZWJhc2VBcHAoeyBkYnhGaXJlYmFzZUFwcE9wdGlvbnM6IGRieEZpcmViYXNlT3B0aW9ucyB9KV1cbiAgICB9O1xuICB9XG59XG4iXX0=
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlyZWJhc2Uub3B0aW9ucy5lbnZpcm9ubWVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2RieC1maXJlYmFzZS9zcmMvbGliL2ZpcmViYXNlL2ZpcmViYXNlLm9wdGlvbnMuZW52aXJvbm1lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFByb3ZpZGVEYnhGaXJlYmFzZUxvZ2luQ29uZmlnIH0gZnJvbSAnLi4vYXV0aC9sb2dpbi9maXJlYmFzZS5sb2dpbi5wcm92aWRlcnMnO1xuaW1wb3J0IHsgRGJ4RmlyZWJhc2VBcHBPcHRpb25zIH0gZnJvbSAnLi9maXJlYmFzZS5vcHRpb25zJztcblxuLyoqXG4gKiBDb252ZW5pZW5jZSB0eXBlIHVzZWQgaW4gLmVudmlyb25tZW50LnRzIGZpbGVzIGZvciBidWlsZGluZyBjb25maWd1cmF0aW9uLlxuICovXG5leHBvcnQgdHlwZSBEYnhGaXJlYmFzZUVudmlyb25tZW50T3B0aW9ucyA9IERieEZpcmViYXNlQXBwT3B0aW9ucyAmIFBpY2s8UHJvdmlkZURieEZpcmViYXNlTG9naW5Db25maWcsICdlbmFibGVkTG9naW5NZXRob2RzJz47XG5cbi8vIE1BUks6IENvbXBhdFxuLyoqXG4gKiBAZGVwcmVjYXRlZCB1c2UgRGJ4RmlyZWJhc2VFbnZpcm9ubWVudE9wdGlvbnMgaW5zdGVhZC5cbiAqL1xuZXhwb3J0IHR5cGUgRGJ4RmlyZWJhc2VPcHRpb25zID0gRGJ4RmlyZWJhc2VFbnZpcm9ubWVudE9wdGlvbnM7XG4iXX0=
@@ -0,0 +1,3 @@
1
+ import { InjectionToken } from '@angular/core';
2
+ export const DBX_FIREBASE_APP_OPTIONS_TOKEN = new InjectionToken('DbxFirebaseOptions');
3
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlyZWJhc2Uub3B0aW9ucy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2RieC1maXJlYmFzZS9zcmMvbGliL2ZpcmViYXNlL2ZpcmViYXNlLm9wdGlvbnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQU0vQyxNQUFNLENBQUMsTUFBTSw4QkFBOEIsR0FBRyxJQUFJLGNBQWMsQ0FBQyxvQkFBb0IsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0aW9uVG9rZW4gfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFBlcnNpc3RlbnRDYWNoZVNldHRpbmdzIH0gZnJvbSAnZmlyZWJhc2UvZmlyZXN0b3JlJztcbmltcG9ydCB7IEZpcmViYXNlT3B0aW9ucyB9IGZyb20gJ2ZpcmViYXNlL2FwcCc7XG5pbXBvcnQgeyBEYnhGaXJlYmFzZUFwcENoZWNrQ29uZmlnIH0gZnJvbSAnLi9hcHBjaGVjayc7XG5pbXBvcnQgeyBEYnhGaXJlYmFzZUVtdWxhdG9yc0NvbmZpZyB9IGZyb20gJy4vZW11bGF0b3JzJztcblxuZXhwb3J0IGNvbnN0IERCWF9GSVJFQkFTRV9BUFBfT1BUSU9OU19UT0tFTiA9IG5ldyBJbmplY3Rpb25Ub2tlbignRGJ4RmlyZWJhc2VPcHRpb25zJyk7XG5cbi8qKlxuICogRXh0ZW5kcyBGaXJlYmFzZU9wdGlvbnMgd2l0aCBhZGRpdGlvbmFsIHByb3BlcnRpZXMgZm9yIGNvbmZpZ3VyaW5nIHRoZSB1bmRlcmx5aW5nIGNsaWVudC1zaWRlIEZpcmViYXNlIHNlcnZpY2VzLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIERieEZpcmViYXNlQXBwT3B0aW9ucyBleHRlbmRzIEZpcmViYXNlT3B0aW9ucyB7XG4gIHJlYWRvbmx5IGVtdWxhdG9yczogRGJ4RmlyZWJhc2VFbXVsYXRvcnNDb25maWc7XG4gIC8qKlxuICAgKiBGaXJlYmFzZSBBcHBDaGVjayBoYW5kbGluZ1xuICAgKi9cbiAgcmVhZG9ubHkgYXBwQ2hlY2s/OiBEYnhGaXJlYmFzZUFwcENoZWNrQ29uZmlnO1xuICAvKipcbiAgICogUGFzc2VkIHRvIHRoZSBGdW5jdGlvbnMgaW5pdGlhbGl6YXRpb24gdG8gc2V0IHRoZSBkb21haW4gdG8gdXNlIHdoZW4gc2VuZGluZyByZXF1ZXN0cy5cbiAgICovXG4gIHJlYWRvbmx5IGZ1bmN0aW9uc1JlZ2lvbk9yQ3VzdG9tRG9tYWluPzogc3RyaW5nIHwgdW5kZWZpbmVkO1xuICAvKipcbiAgICogV2hldGhlciBvciBub3QgdG8gY2FsbCBlbmFibGVNdWx0aVRhYkluZGV4ZWREYlBlcnNpc3RlbmNlKCkgZm9yIGZpcmVzdG9yZSBhdCBzZXR1cCB0aW1lLlxuICAgKlxuICAgKiBUcnVlIGJ5IGRlZmF1bHQuXG4gICAqL1xuICByZWFkb25seSBlbmFibGVNdWx0aVRhYkluZGV4ZWREYlBlcnNpc3RlbmNlPzogYm9vbGVhbjtcbiAgLyoqXG4gICAqIFdoZXRoZXIgb3Igbm90IHRvIGNhbGwgZW5hYmxlSW5kZXhlZERiUGVyc2lzdGVuY2UoKSBmb3IgZmlyZXN0b3JlIGF0IHNldHVwIHRpbWUuXG4gICAqXG4gICAqIFRydWUgYnkgZGVmYXVsdCBpZiBlbmFibGVNdWx0aVRhYkluZGV4ZWREYlBlcnNpc3RlbmNlIGlzIGZhbHNlLlxuICAgKi9cbiAgcmVhZG9ubHkgZW5hYmxlSW5kZXhlZERiUGVyc2lzdGVuY2U/OiBib29sZWFuO1xuICAvKipcbiAgICogT3B0aW9uYWwgcGVyc2lzdGVudCBjYWNoZSBzZXR0aW5nIHRvIHBhc3MgdG8gdGhlIEZpcmVzdG9yZSBjYWNoZS5cbiAgICovXG4gIHJlYWRvbmx5IHBlcnNpc3RlbnRDYWNoZVNldHRpbmdzPzogT21pdDxQZXJzaXN0ZW50Q2FjaGVTZXR0aW5ncywgJ3RhYk1hbmFnZXInPjtcbn1cbiJdfQ==
@@ -0,0 +1,149 @@
1
+ import { makeEnvironmentProviders } from '@angular/core';
2
+ import { initializeApp } from 'firebase/app';
3
+ import { initializeAppCheck, ReCaptchaV3Provider } from 'firebase/app-check';
4
+ import { FirebaseApp, provideFirebaseApp } from '@angular/fire/app';
5
+ import { provideStorage, getStorage, connectStorageEmulator } from '@angular/fire/storage';
6
+ import { provideFunctions, getFunctions, connectFunctionsEmulator } from '@angular/fire/functions';
7
+ import { provideFirestore, connectFirestoreEmulator, initializeFirestore, persistentLocalCache, persistentMultipleTabManager, persistentSingleTabManager } from '@angular/fire/firestore';
8
+ import { provideAuth, getAuth, connectAuthEmulator } from '@angular/fire/auth';
9
+ import { provideAppCheck } from '@angular/fire/app-check';
10
+ import { DbxFirebaseParsedEmulatorsConfig } from './emulators';
11
+ import { DBX_FIREBASE_APP_OPTIONS_TOKEN } from './firebase.options';
12
+ import { HTTP_INTERCEPTORS } from '@angular/common/http';
13
+ import { enableAppCheckDebugTokenGeneration } from '../auth/appcheck/appcheck';
14
+ import { DbxFirebaseAppCheckHttpInterceptor } from '../auth/appcheck/appcheck.interceptor';
15
+ import { pushArrayItemsIntoArray } from '@dereekb/util';
16
+ /**
17
+ * Provides EnvironmentProviders for all Firebase services.
18
+ *
19
+ * @param config
20
+ * @returns EnvironmentProviders
21
+ */
22
+ export function provideDbxFirebaseApp(config) {
23
+ const { dbxFirebaseAppOptions: dbxFirebaseOptions } = config;
24
+ const providers = [
25
+ // options
26
+ makeEnvironmentProviders([
27
+ {
28
+ provide: DBX_FIREBASE_APP_OPTIONS_TOKEN,
29
+ useValue: dbxFirebaseOptions
30
+ }
31
+ ]),
32
+ // app
33
+ provideFirebaseApp((injector) => {
34
+ const firebaseOptions = injector.get(DBX_FIREBASE_APP_OPTIONS_TOKEN);
35
+ return initializeApp(firebaseOptions);
36
+ })
37
+ ];
38
+ // firestore
39
+ if (config.provideFirestore !== false) {
40
+ const firestoreProvider = provideFirestore((injector) => {
41
+ const firebaseApp = injector.get(FirebaseApp);
42
+ const firebaseOptions = injector.get(DBX_FIREBASE_APP_OPTIONS_TOKEN);
43
+ const firestoreSettings = {};
44
+ const { enableMultiTabIndexedDbPersistence, enableIndexedDbPersistence } = firebaseOptions;
45
+ const { persistentCacheSettings } = firebaseOptions;
46
+ if (enableIndexedDbPersistence !== false) {
47
+ let tabManager;
48
+ if (enableMultiTabIndexedDbPersistence !== false) {
49
+ tabManager = persistentMultipleTabManager();
50
+ }
51
+ else {
52
+ tabManager = persistentSingleTabManager(undefined);
53
+ }
54
+ firestoreSettings.localCache = persistentLocalCache({
55
+ tabManager,
56
+ ...persistentCacheSettings
57
+ });
58
+ }
59
+ const firestore = initializeFirestore(firebaseApp, firestoreSettings);
60
+ const emulators = injector.get(DbxFirebaseParsedEmulatorsConfig, undefined);
61
+ if (emulators?.useEmulators && emulators?.firestore) {
62
+ connectFirestoreEmulator(firestore, emulators.firestore.host, emulators.firestore.port, {});
63
+ }
64
+ return firestore;
65
+ });
66
+ providers.push(firestoreProvider);
67
+ }
68
+ // app check
69
+ if (config.provideAppCheck !== false) {
70
+ const appCheckProviders = [
71
+ provideAppCheck((injector) => {
72
+ const firebaseApp = injector.get(FirebaseApp);
73
+ const firebaseOptions = injector.get(DBX_FIREBASE_APP_OPTIONS_TOKEN);
74
+ const appCheckOptions = firebaseOptions.appCheck;
75
+ const appCheckKnowinglyDisabled = appCheckOptions?.disabled === true || firebaseOptions.emulators?.useEmulators === true;
76
+ let appCheck;
77
+ if (appCheckOptions && !appCheckKnowinglyDisabled) {
78
+ // enable the debug tokens if not using emulators and allowDebugTokens is set true
79
+ if (!firebaseOptions.emulators?.useEmulators && appCheckOptions.allowDebugTokens) {
80
+ enableAppCheckDebugTokenGeneration(true);
81
+ }
82
+ // Only enabled outside of app-check environments. The emulators will not use appcheck.
83
+ appCheck = initializeAppCheck(firebaseApp, {
84
+ provider: new ReCaptchaV3Provider(appCheckOptions.reCaptchaV3),
85
+ isTokenAutoRefreshEnabled: appCheckOptions.isTokenAutoRefreshEnabled ?? true
86
+ });
87
+ console.log('Enabled AppCheck.');
88
+ }
89
+ else {
90
+ appCheck = undefined;
91
+ if (!appCheckKnowinglyDisabled) {
92
+ console.error('dbx-firebase: No appcheck configuration for the app, and not specifically disabled in config either.');
93
+ }
94
+ }
95
+ return appCheck;
96
+ }),
97
+ {
98
+ provide: HTTP_INTERCEPTORS,
99
+ useClass: DbxFirebaseAppCheckHttpInterceptor,
100
+ multi: true
101
+ }
102
+ ];
103
+ pushArrayItemsIntoArray(providers, appCheckProviders);
104
+ }
105
+ // auth
106
+ if (config.provideAuth !== false) {
107
+ const authProvider = provideAuth((injector) => {
108
+ const firebaseApp = injector.get(FirebaseApp);
109
+ const auth = getAuth(firebaseApp);
110
+ const emulators = injector.get(DbxFirebaseParsedEmulatorsConfig, undefined);
111
+ if (emulators?.useEmulators && emulators?.auth) {
112
+ connectAuthEmulator(auth, `http://${emulators.auth.host}:${emulators.auth.port}`);
113
+ }
114
+ return auth;
115
+ });
116
+ providers.push(authProvider);
117
+ }
118
+ // storage
119
+ if (config.provideStorage !== false) {
120
+ const storageProvider = provideStorage((injector) => {
121
+ const firebaseApp = injector.get(FirebaseApp);
122
+ const storage = getStorage(firebaseApp);
123
+ const emulators = injector.get(DbxFirebaseParsedEmulatorsConfig, undefined);
124
+ if (emulators?.useEmulators && emulators?.storage) {
125
+ connectStorageEmulator(storage, emulators.storage.host, emulators.storage.port, {});
126
+ }
127
+ return storage;
128
+ });
129
+ providers.push(storageProvider);
130
+ }
131
+ // functions
132
+ if (config.provideFunctions !== false) {
133
+ const functionsProvider = provideFunctions((injector) => {
134
+ const firebaseApp = injector.get(FirebaseApp);
135
+ const firebaseOptions = injector.get(DBX_FIREBASE_APP_OPTIONS_TOKEN);
136
+ const { functionsRegionOrCustomDomain } = firebaseOptions;
137
+ const functions = getFunctions(firebaseApp, functionsRegionOrCustomDomain);
138
+ const emulators = injector.get(DbxFirebaseParsedEmulatorsConfig, undefined);
139
+ if (emulators?.useEmulators && emulators?.functions) {
140
+ connectFunctionsEmulator(functions, emulators.functions.host, emulators.functions.port);
141
+ }
142
+ return functions;
143
+ });
144
+ providers.push(functionsProvider);
145
+ }
146
+ return makeEnvironmentProviders(providers);
147
+ }
148
+ // TODO: Providers now need to be initialized/registered in the bootstrap section as additional providers/config and not imported as modules this way
149
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlyZWJhc2UucHJvdmlkZXJzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvZGJ4LWZpcmViYXNlL3NyYy9saWIvZmlyZWJhc2UvZmlyZWJhc2UucHJvdmlkZXJzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBNEMsd0JBQXdCLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDbkcsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUM3QyxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUM3RSxPQUFPLEVBQUUsV0FBVyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDcEUsT0FBTyxFQUFFLGNBQWMsRUFBRSxVQUFVLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUMzRixPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsWUFBWSxFQUFFLHdCQUF3QixFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDbkcsT0FBTyxFQUFFLGdCQUFnQixFQUFFLHdCQUF3QixFQUFFLG1CQUFtQixFQUFFLG9CQUFvQixFQUFFLDRCQUE0QixFQUFxQiwwQkFBMEIsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQzdNLE9BQU8sRUFBRSxXQUFXLEVBQUUsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFDL0UsT0FBTyxFQUFZLGVBQWUsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQ3BFLE9BQU8sRUFBRSxnQ0FBZ0MsRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUMvRCxPQUFPLEVBQXlCLDhCQUE4QixFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFDM0YsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDekQsT0FBTyxFQUFFLGtDQUFrQyxFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFD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ZXJzLCBQcm92aWRlciwgbWFrZUVudmlyb25tZW50UHJvdmlkZXJzIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBpbml0aWFsaXplQXBwIH0gZnJvbSAnZmlyZWJhc2UvYXBwJztcbmltcG9ydCB7IGluaXRpYWxpemVBcHBDaGVjaywgUmVDYXB0Y2hhVjNQcm92aWRlciB9IGZyb20gJ2ZpcmViYXNlL2FwcC1jaGVjayc7XG5pbXBvcnQgeyBGaXJlYmFzZUFwcCwgcHJvdmlkZUZpcmViYXNlQXBwIH0gZnJvbSAnQGFuZ3VsYXIvZmlyZS9hcHAnO1xuaW1wb3J0IHsgcHJvdmlkZVN0b3JhZ2UsIGdldFN0b3JhZ2UsIGNvbm5lY3RTdG9yYWdlRW11bGF0b3IgfSBmcm9tICdAYW5ndWxhci9maXJlL3N0b3JhZ2UnO1xuaW1wb3J0IHsgcHJvdmlkZUZ1bmN0aW9ucywgZ2V0RnVuY3Rpb25zLCBjb25uZWN0RnVuY3Rpb25zRW11bGF0b3IgfSBmcm9tICdAYW5ndWxhci9maXJlL2Z1bmN0aW9ucyc7XG5pbXBvcnQgeyBwcm92aWRlRmlyZXN0b3JlLCBjb25uZWN0RmlyZXN0b3JlRW11bGF0b3IsIGluaXRpYWxpemVGaXJlc3RvcmUsIHBlcnNpc3RlbnRMb2NhbENhY2hlLCBwZXJzaXN0ZW50TXVsdGlwbGVUYWJNYW5hZ2VyLCBGaXJlc3RvcmVTZXR0aW5ncywgcGVyc2lzdGVudFNpbmdsZVRhYk1hbmFnZXIgfSBmcm9tICdAYW5ndWxhci9maXJlL2ZpcmVzdG9yZSc7XG5pbXBvcnQgeyBwcm92aWRlQXV0aCwgZ2V0QXV0aCwgY29ubmVjdEF1dGhFbXVsYXRvciB9IGZyb20gJ0Bhbmd1bGFyL2ZpcmUvYXV0aCc7XG5pbXBvcnQgeyBBcHBDaGVjaywgcHJvdmlkZUFwcENoZWNrIH0gZnJvbSAnQGFuZ3VsYXIvZmlyZS9hcHAtY2hlY2snO1xuaW1wb3J0IHsgRGJ4RmlyZWJhc2VQYXJzZWRFbXVsYXRvcnNDb25maWcgfSBmcm9tICcuL2VtdWxhdG9ycyc7XG5pbXBvcnQgeyBEYnhGaXJlYmFzZUFwcE9wdGlvbnMsIERCWF9GSVJFQkFTRV9BUFBfT1BUSU9OU19UT0tFTiB9IGZyb20gJy4vZmlyZWJhc2Uub3B0aW9ucyc7XG5pbXBvcnQgeyBIVFRQX0lOVEVSQ0VQVE9SUyB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcbmltcG9ydCB7IGVuYWJsZUFwcENoZWNrRGVidWdUb2tlbkdlbmVyYXRpb24gfSBmcm9tICcuLi9hdXRoL2FwcGNoZWNrL2FwcGNoZWNrJztcbmltcG9ydCB7IERieEZpcmViYXNlQXBwQ2hlY2tIdHRwSW50ZXJjZXB0b3IgfSBmcm9tICcuLi9hdXRoL2FwcGNoZWNrL2FwcGNoZWNrLmludGVyY2VwdG9yJztcbmltcG9ydCB7IE1heWJlLCBwdXNoQXJyYXlJdGVtc0ludG9BcnJheSB9IGZyb20gJ0BkZXJlZWtiL3V0aWwnO1xuXG4vKipcbiAqIENvbmZpZ3VyYXRpb24gZm9yIHByb3ZpZGVEYnhGaXJlYmFzZUFwcCgpLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIFByb3ZpZGVEYnhGaXJlYmFzZUFwcENvbmZpZyB7XG4gIC8qKlxuICAgKiBEYnhGaXJlYmFzZUFwcE9wdGlvbnMgZm9yIHRoZSBhcHAuXG4gICAqXG4gICAqIElzIGF1dG9tYXRpY2FsbHkgY29uZmlndXJlZCBhcyBhIHByb3ZpZGVyIGZvciB0aGUgREJYX0ZJUkVCQVNFX0FQUF9PUFRJT05TX1RPS0VOLlxuICAgKi9cbiAgcmVhZG9ubHkgZGJ4RmlyZWJhc2VBcHBPcHRpb25zOiBEYnhGaXJlYmFzZUFwcE9wdGlvbnM7XG4gIC8qKlxuICAgKiBXaGV0aGVyIG9yIG5vdCB0byBwcm92aWRlIEZpcmVzdG9yZSBjb25maWd1cmF0aW9uLlxuICAgKlxuICAgKiBUcnVlIGJ5IGRlZmF1bHQuXG4gICAqL1xuICByZWFkb25seSBwcm92aWRlRmlyZXN0b3JlPzogTWF5YmU8Ym9vbGVhbj47XG4gIC8qKlxuICAgKiBXaGV0aGVyIG9yIG5vdCB0byBwcm92aWRlIEFwcCBDaGVjayBjb25maWd1cmF0aW9uLlxuICAgKlxuICAgKiBUcnVlIGJ5IGRlZmF1bHQuXG4gICAqL1xuICByZWFkb25seSBwcm92aWRlQXBwQ2hlY2s/OiBNYXliZTxib29sZWFuPjtcbiAgLyoqXG4gICAqIFdoZXRoZXIgb3Igbm90IHRvIHByb3ZpZGUgQXV0aCBjb25maWd1cmF0aW9uLlxuICAgKlxuICAgKiBUcnVlIGJ5IGRlZmF1bHQuXG4gICAqL1xuICByZWFkb25seSBwcm92aWRlQXV0aD86IE1heWJlPGJvb2xlYW4+O1xuICAvKipcbiAgICogV2hldGhlciBvciBub3QgdG8gcHJvdmlkZSBTdG9yYWdlIGNvbmZpZ3VyYXRpb24uXG4gICAqXG4gICAqIFRydWUgYnkgZGVmYXVsdC5cbiAgICovXG4gIHJlYWRvbmx5IHByb3ZpZGVTdG9yYWdlPzogTWF5YmU8Ym9vbGVhbj47XG4gIC8qKlxuICAgKiBXaGV0aGVyIG9yIG5vdCB0byBwcm92aWRlIEZ1bmN0aW9ucyBjb25maWd1cmF0aW9uLlxuICAgKlxuICAgKiBUcnVlIGJ5IGRlZmF1bHQuXG4gICAqL1xuICByZWFkb25seSBwcm92aWRlRnVuY3Rpb25zPzogTWF5YmU8Ym9vbGVhbj47XG59XG5cbi8qKlxuICogUHJvdmlkZXMgRW52aXJvbm1lbnRQcm92aWRlcnMgZm9yIGFsbCBGaXJlYmFzZSBzZXJ2aWNlcy5cbiAqXG4gKiBAcGFyYW0gY29uZmlnXG4gKiBAcmV0dXJucyBFbnZpcm9ubWVudFByb3ZpZGVyc1xuICovXG5leHBvcnQgZnVuY3Rpb24gcHJvdmlkZURieEZpcmViYXNlQXBwKGNvbmZpZzogUHJvdmlkZURieEZpcmViYXNlQXBwQ29uZmlnKTogRW52aXJvbm1lbnRQcm92aWRlcnMge1xuICBjb25zdCB7IGRieEZpcmViYXNlQXBwT3B0aW9uczogZGJ4RmlyZWJhc2VPcHRpb25zIH0gPSBjb25maWc7XG5cbiAgY29uc3QgcHJvdmlkZXJzOiAoUHJvdmlkZXIgfCBFbnZpcm9ubWVudFByb3ZpZGVycylbXSA9IFtcbiAgICAvLyBvcHRpb25zXG4gICAgbWFrZUVudmlyb25tZW50UHJvdmlkZXJzKFtcbiAgICAgIHtcbiAgICAgICAgcHJvdmlkZTogREJYX0ZJUkVCQVNFX0FQUF9PUFRJT05TX1RPS0VOLFxuICAgICAgICB1c2VWYWx1ZTogZGJ4RmlyZWJhc2VPcHRpb25zXG4gICAgICB9XG4gICAgXSksXG5cbiAgICAvLyBhcHBcbiAgICBwcm92aWRlRmlyZWJhc2VBcHAoKGluamVjdG9yOiBJbmplY3RvcikgPT4ge1xuICAgICAgY29uc3QgZmlyZWJhc2VPcHRpb25zID0gaW5qZWN0b3IuZ2V0PERieEZpcmViYXNlQXBwT3B0aW9ucz4oREJYX0ZJUkVCQVNFX0FQUF9PUFRJT05TX1RPS0VOKTtcbiAgICAgIHJldHVybiBpbml0aWFsaXplQXBwKGZpcmViYXNlT3B0aW9ucyk7XG4gICAgfSlcbiAgXTtcblxuICAvLyBmaXJlc3RvcmVcbiAgaWYgKGNvbmZpZy5wcm92aWRlRmlyZXN0b3JlICE9PSBmYWxzZSkge1xuICAgIGNvbnN0IGZpcmVzdG9yZVByb3ZpZGVyID0gcHJvdmlkZUZpcmVzdG9yZSgoaW5qZWN0b3I6IEluamVjdG9yKSA9PiB7XG4gICAgICBjb25zdCBmaXJlYmFzZUFwcCA9IGluamVjdG9yLmdldChGaXJlYmFzZUFwcCk7XG4gICAgICBjb25zdCBmaXJlYmFzZU9wdGlvbnMgPSBpbmplY3Rvci5nZXQ8RGJ4RmlyZWJhc2VBcHBPcHRpb25zPihEQlhfRklSRUJBU0VfQVBQX09QVElPTlNfVE9LRU4pO1xuXG4gICAgICBjb25zdCBmaXJlc3RvcmVTZXR0aW5nczogRmlyZXN0b3JlU2V0dGluZ3MgPSB7fTtcblxuICAgICAgY29uc3QgeyBlbmFibGVNdWx0aVRhYkluZGV4ZWREYlBlcnNpc3RlbmNlLCBlbmFibGVJbmRleGVkRGJQZXJzaXN0ZW5jZSB9ID0gZmlyZWJhc2VPcHRpb25zO1xuICAgICAgY29uc3QgeyBwZXJzaXN0ZW50Q2FjaGVTZXR0aW5ncyB9ID0gZmlyZWJhc2VPcHRpb25zO1xuXG4gICAgICBpZiAoZW5hYmxlSW5kZXhlZERiUGVyc2lzdGVuY2UgIT09IGZhbHNlKSB7XG4gICAgICAgIGxldCB0YWJNYW5hZ2VyO1xuXG4gICAgICAgIGlmIChlbmFibGVNdWx0aVRhYkluZGV4ZWREYlBlcnNpc3RlbmNlICE9PSBmYWxzZSkge1xuICAgICAgICAgIHRhYk1hbmFnZXIgPSBwZXJzaXN0ZW50TXVsdGlwbGVUYWJNYW5hZ2VyKCk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgdGFiTWFuYWdlciA9IHBlcnNpc3RlbnRTaW5nbGVUYWJNYW5hZ2VyKHVuZGVmaW5lZCk7XG4gICAgICAgIH1cblxuICAgICAgICBmaXJlc3RvcmVTZXR0aW5ncy5sb2NhbENhY2hlID0gcGVyc2lzdGVudExvY2FsQ2FjaGUoe1xuICAgICAgICAgIHRhYk1hbmFnZXIsXG4gICAgICAgICAgLi4ucGVyc2lzdGVudENhY2hlU2V0dGluZ3NcbiAgICAgICAgfSk7XG4gICAgICB9XG5cbiAgICAgIGNvbnN0IGZpcmVzdG9yZSA9IGluaXRpYWxpemVGaXJlc3RvcmUoZmlyZWJhc2VBcHAsIGZpcmVzdG9yZVNldHRpbmdzKTtcbiAgICAgIGNvbnN0IGVtdWxhdG9ycyA9IGluamVjdG9yLmdldDxEYnhGaXJlYmFzZVBhcnNlZEVtdWxhdG9yc0NvbmZpZz4oRGJ4RmlyZWJhc2VQYXJzZWRFbXVsYXRvcnNDb25maWcsIHVuZGVmaW5lZCk7XG5cbiAgICAgIGlmIChlbXVsYXRvcnM/LnVzZUVtdWxhdG9ycyAmJiBlbXVsYXRvcnM/LmZpcmVzdG9yZSkge1xuICAgICAgICBjb25uZWN0RmlyZXN0b3JlRW11bGF0b3IoZmlyZXN0b3JlLCBlbXVsYXRvcnMuZmlyZXN0b3JlLmhvc3QsIGVtdWxhdG9ycy5maXJlc3RvcmUucG9ydCwge30pO1xuICAgICAgfVxuXG4gICAgICByZXR1cm4gZmlyZXN0b3JlO1xuICAgIH0pO1xuXG4gICAgcHJvdmlkZXJzLnB1c2goZmlyZXN0b3JlUHJvdmlkZXIpO1xuICB9XG5cbiAgLy8gYXBwIGNoZWNrXG4gIGlmIChjb25maWcucHJvdmlkZUFwcENoZWNrICE9PSBmYWxzZSkge1xuICAgIGNvbnN0IGFwcENoZWNrUHJvdmlkZXJzID0gW1xuICAgICAgcHJvdmlkZUFwcENoZWNrKChpbmplY3RvcjogSW5qZWN0b3IpID0+IHtcbiAgICAgICAgY29uc3QgZmlyZWJhc2VBcHAgPSBpbmplY3Rvci5nZXQoRmlyZWJhc2VBcHApO1xuICAgICAgICBjb25zdCBmaXJlYmFzZU9wdGlvbnMgPSBpbmplY3Rvci5nZXQ8RGJ4RmlyZWJhc2VBcHBPcHRpb25zPihEQlhfRklSRUJBU0VfQVBQX09QVElPTlNfVE9LRU4pO1xuICAgICAgICBjb25zdCBhcHBDaGVja09wdGlvbnMgPSBmaXJlYmFzZU9wdGlvbnMuYXBwQ2hlY2s7XG4gICAgICAgIGNvbnN0IGFwcENoZWNrS25vd2luZ2x5RGlzYWJsZWQgPSBhcHBDaGVja09wdGlvbnM/LmRpc2FibGVkID09PSB0cnVlIHx8IGZpcmViYXNlT3B0aW9ucy5lbXVsYXRvcnM/LnVzZUVtdWxhdG9ycyA9PT0gdHJ1ZTtcblxuICAgICAgICBsZXQgYXBwQ2hlY2s6IEFwcENoZWNrO1xuXG4gICAgICAgIGlmIChhcHBDaGVja09wdGlvbnMgJiYgIWFwcENoZWNrS25vd2luZ2x5RGlzYWJsZWQpIHtcbiAgICAgICAgICAvLyBlbmFibGUgdGhlIGRlYnVnIHRva2VucyBpZiBub3QgdXNpbmcgZW11bGF0b3JzIGFuZCBhbGxvd0RlYnVnVG9rZW5zIGlzIHNldCB0cnVlXG4gICAgICAgICAgaWYgKCFmaXJlYmFzZU9wdGlvbnMuZW11bGF0b3JzPy51c2VFbXVsYXRvcnMgJiYgYXBwQ2hlY2tPcHRpb25zLmFsbG93RGVidWdUb2tlbnMpIHtcbiAgICAgICAgICAgIGVuYWJsZUFwcENoZWNrRGVidWdUb2tlbkdlbmVyYXRpb24odHJ1ZSk7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgLy8gT25seSBlbmFibGVkIG91dHNpZGUgb2YgYXBwLWNoZWNrIGVudmlyb25tZW50cy4gVGhlIGVtdWxhdG9ycyB3aWxsIG5vdCB1c2UgYXBwY2hlY2suXG4gICAgICAgICAgYXBwQ2hlY2sgPSBpbml0aWFsaXplQXBwQ2hlY2soZmlyZWJhc2VBcHAsIHtcbiAgICAgICAgICAgIHByb3ZpZGVyOiBuZXcgUmVDYXB0Y2hhVjNQcm92aWRlcihhcHBDaGVja09wdGlvbnMucmVDYXB0Y2hhVjMpLFxuICAgICAgICAgICAgaXNUb2tlbkF1dG9SZWZyZXNoRW5hYmxlZDogYXBwQ2hlY2tPcHRpb25zLmlzVG9rZW5BdXRvUmVmcmVzaEVuYWJsZWQgPz8gdHJ1ZVxuICAgICAgICAgIH0pO1xuXG4gICAgICAgICAgY29uc29sZS5sb2coJ0VuYWJsZWQgQXBwQ2hlY2suJyk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgYXBwQ2hlY2sgPSB1bmRlZmluZWQgYXMgdW5rbm93biBhcyBBcHBDaGVjaztcblxuICAgICAgICAgIGlmICghYXBwQ2hlY2tLbm93aW5nbHlEaXNhYmxlZCkge1xuICAgICAgICAgICAgY29uc29sZS5lcnJvcignZGJ4LWZpcmViYXNlOiBObyBhcHBjaGVjayBjb25maWd1cmF0aW9uIGZvciB0aGUgYXBwLCBhbmQgbm90IHNwZWNpZmljYWxseSBkaXNhYmxlZCBpbiBjb25maWcgZWl0aGVyLicpO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBhcHBDaGVjaztcbiAgICAgIH0pLFxuICAgICAge1xuICAgICAgICBwcm92aWRlOiBIVFRQX0lOVEVSQ0VQVE9SUyxcbiAgICAgICAgdXNlQ2xhc3M6IERieEZpcmViYXNlQXBwQ2hlY2tIdHRwSW50ZXJjZXB0b3IsXG4gICAgICAgIG11bHRpOiB0cnVlXG4gICAgICB9XG4gICAgXTtcblxuICAgIHB1c2hBcnJheUl0ZW1zSW50b0FycmF5KHByb3ZpZGVycywgYXBwQ2hlY2tQcm92aWRlcnMpO1xuICB9XG5cbiAgLy8gYXV0aFxuICBpZiAoY29uZmlnLnByb3ZpZGVBdXRoICE9PSBmYWxzZSkge1xuICAgIGNvbnN0IGF1dGhQcm92aWRlciA9IHByb3ZpZGVBdXRoKChpbmplY3RvcjogSW5qZWN0b3IpID0+IHtcbiAgICAgIGNvbnN0IGZpcmViYXNlQXBwID0gaW5qZWN0b3IuZ2V0KEZpcmViYXNlQXBwKTtcbiAgICAgIGNvbnN0IGF1dGggPSBnZXRBdXRoKGZpcmViYXNlQXBwKTtcbiAgICAgIGNvbnN0IGVtdWxhdG9ycyA9IGluamVjdG9yLmdldDxEYnhGaXJlYmFzZVBhcnNlZEVtdWxhdG9yc0NvbmZpZz4oRGJ4RmlyZWJhc2VQYXJzZWRFbXVsYXRvcnNDb25maWcsIHVuZGVmaW5lZCk7XG5cbiAgICAgIGlmIChlbXVsYXRvcnM/LnVzZUVtdWxhdG9ycyAmJiBlbXVsYXRvcnM/LmF1dGgpIHtcbiAgICAgICAgY29ubmVjdEF1dGhFbXVsYXRvcihhdXRoLCBgaHR0cDovLyR7ZW11bGF0b3JzLmF1dGguaG9zdH06JHtlbXVsYXRvcnMuYXV0aC5wb3J0fWApO1xuICAgICAgfVxuXG4gICAgICByZXR1cm4gYXV0aDtcbiAgICB9KTtcblxuICAgIHByb3ZpZGVycy5wdXNoKGF1dGhQcm92aWRlcik7XG4gIH1cblxuICAvLyBzdG9yYWdlXG4gIGlmIChjb25maWcucHJvdmlkZVN0b3JhZ2UgIT09IGZhbHNlKSB7XG4gICAgY29uc3Qgc3RvcmFnZVByb3ZpZGVyID0gcHJvdmlkZVN0b3JhZ2UoKGluamVjdG9yOiBJbmplY3RvcikgPT4ge1xuICAgICAgY29uc3QgZmlyZWJhc2VBcHAgPSBpbmplY3Rvci5nZXQoRmlyZWJhc2VBcHApO1xuICAgICAgY29uc3Qgc3RvcmFnZSA9IGdldFN0b3JhZ2UoZmlyZWJhc2VBcHApO1xuICAgICAgY29uc3QgZW11bGF0b3JzID0gaW5qZWN0b3IuZ2V0PERieEZpcmViYXNlUGFyc2VkRW11bGF0b3JzQ29uZmlnPihEYnhGaXJlYmFzZVBhcnNlZEVtdWxhdG9yc0NvbmZpZywgdW5kZWZpbmVkKTtcblxuICAgICAgaWYgKGVtdWxhdG9ycz8udXNlRW11bGF0b3JzICYmIGVtdWxhdG9ycz8uc3RvcmFnZSkge1xuICAgICAgICBjb25uZWN0U3RvcmFnZUVtdWxhdG9yKHN0b3JhZ2UsIGVtdWxhdG9ycy5zdG9yYWdlLmhvc3QsIGVtdWxhdG9ycy5zdG9yYWdlLnBvcnQsIHt9KTtcbiAgICAgIH1cblxuICAgICAgcmV0dXJuIHN0b3JhZ2U7XG4gICAgfSk7XG5cbiAgICBwcm92aWRlcnMucHVzaChzdG9yYWdlUHJvdmlkZXIpO1xuICB9XG5cbiAgLy8gZnVuY3Rpb25zXG4gIGlmIChjb25maWcucHJvdmlkZUZ1bmN0aW9ucyAhPT0gZmFsc2UpIHtcbiAgICBjb25zdCBmdW5jdGlvbnNQcm92aWRlciA9IHByb3ZpZGVGdW5jdGlvbnMoKGluamVjdG9yOiBJbmplY3RvcikgPT4ge1xuICAgICAgY29uc3QgZmlyZWJhc2VBcHAgPSBpbmplY3Rvci5nZXQoRmlyZWJhc2VBcHApO1xuICAgICAgY29uc3QgZmlyZWJhc2VPcHRpb25zID0gaW5qZWN0b3IuZ2V0PERieEZpcmViYXNlQXBwT3B0aW9ucz4oREJYX0ZJUkVCQVNFX0FQUF9PUFRJT05TX1RPS0VOKTtcbiAgICAgIGNvbnN0IHsgZnVuY3Rpb25zUmVnaW9uT3JDdXN0b21Eb21haW4gfSA9IGZpcmViYXNlT3B0aW9ucztcblxuICAgICAgY29uc3QgZnVuY3Rpb25zID0gZ2V0RnVuY3Rpb25zKGZpcmViYXNlQXBwLCBmdW5jdGlvbnNSZWdpb25PckN1c3RvbURvbWFpbik7XG4gICAgICBjb25zdCBlbXVsYXRvcnMgPSBpbmplY3Rvci5nZXQ8RGJ4RmlyZWJhc2VQYXJzZWRFbXVsYXRvcnNDb25maWc+KERieEZpcmViYXNlUGFyc2VkRW11bGF0b3JzQ29uZmlnLCB1bmRlZmluZWQpO1xuXG4gICAgICBpZiAoZW11bGF0b3JzPy51c2VFbXVsYXRvcnMgJiYgZW11bGF0b3JzPy5mdW5jdGlvbnMpIHtcbiAgICAgICAgY29ubmVjdEZ1bmN0aW9uc0VtdWxhdG9yKGZ1bmN0aW9ucywgZW11bGF0b3JzLmZ1bmN0aW9ucy5ob3N0LCBlbXVsYXRvcnMuZnVuY3Rpb25zLnBvcnQpO1xuICAgICAgfVxuXG4gICAgICByZXR1cm4gZnVuY3Rpb25zO1xuICAgIH0pO1xuXG4gICAgcHJvdmlkZXJzLnB1c2goZnVuY3Rpb25zUHJvdmlkZXIpO1xuICB9XG5cbiAgcmV0dXJuIG1ha2VFbnZpcm9ubWVudFByb3ZpZGVycyhwcm92aWRlcnMpO1xufVxuXG4vLyBUT0RPOiBQcm92aWRlcnMgbm93IG5lZWQgdG8gYmUgaW5pdGlhbGl6ZWQvcmVnaXN0ZXJlZCBpbiB0aGUgYm9vdHN0cmFwIHNlY3Rpb24gYXMgYWRkaXRpb25hbCBwcm92aWRlcnMvY29uZmlnIGFuZCBub3QgaW1wb3J0ZWQgYXMgbW9kdWxlcyB0aGlzIHdheVxuIl19
@@ -1,7 +1,10 @@
1
1
  export * from './appcheck';
2
2
  export * from './emulators';
3
+ export * from './firebase.providers';
3
4
  export * from './firebase.module';
4
5
  export * from './firebase.emulator.module';
5
6
  export * from './firebase.emulator.service';
6
- export * from './options';
7
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9kYngtZmlyZWJhc2Uvc3JjL2xpYi9maXJlYmFzZS9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLFlBQVksQ0FBQztBQUMzQixjQUFjLGFBQWEsQ0FBQztBQUM1QixjQUFjLG1CQUFtQixDQUFDO0FBQ2xDLGNBQWMsNEJBQTRCLENBQUM7QUFDM0MsY0FBYyw2QkFBNkIsQ0FBQztBQUM1QyxjQUFjLFdBQVcsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vYXBwY2hlY2snO1xuZXhwb3J0ICogZnJvbSAnLi9lbXVsYXRvcnMnO1xuZXhwb3J0ICogZnJvbSAnLi9maXJlYmFzZS5tb2R1bGUnO1xuZXhwb3J0ICogZnJvbSAnLi9maXJlYmFzZS5lbXVsYXRvci5tb2R1bGUnO1xuZXhwb3J0ICogZnJvbSAnLi9maXJlYmFzZS5lbXVsYXRvci5zZXJ2aWNlJztcbmV4cG9ydCAqIGZyb20gJy4vb3B0aW9ucyc7XG4iXX0=
7
+ export * from './firebase.emulator.providers';
8
+ export * from './firebase.options';
9
+ export * from './firebase.options.environment';
10
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9kYngtZmlyZWJhc2Uvc3JjL2xpYi9maXJlYmFzZS9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLFlBQVksQ0FBQztBQUMzQixjQUFjLGFBQWEsQ0FBQztBQUM1QixjQUFjLHNCQUFzQixDQUFDO0FBQ3JDLGNBQWMsbUJBQW1CLENBQUM7QUFDbEMsY0FBYyw0QkFBNEIsQ0FBQztBQUMzQyxjQUFjLDZCQUE2QixDQUFDO0FBQzVDLGNBQWMsK0JBQStCLENBQUM7QUFDOUMsY0FBYyxvQkFBb0IsQ0FBQztBQUNuQyxjQUFjLGdDQUFnQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9hcHBjaGVjayc7XG5leHBvcnQgKiBmcm9tICcuL2VtdWxhdG9ycyc7XG5leHBvcnQgKiBmcm9tICcuL2ZpcmViYXNlLnByb3ZpZGVycyc7XG5leHBvcnQgKiBmcm9tICcuL2ZpcmViYXNlLm1vZHVsZSc7XG5leHBvcnQgKiBmcm9tICcuL2ZpcmViYXNlLmVtdWxhdG9yLm1vZHVsZSc7XG5leHBvcnQgKiBmcm9tICcuL2ZpcmViYXNlLmVtdWxhdG9yLnNlcnZpY2UnO1xuZXhwb3J0ICogZnJvbSAnLi9maXJlYmFzZS5lbXVsYXRvci5wcm92aWRlcnMnO1xuZXhwb3J0ICogZnJvbSAnLi9maXJlYmFzZS5vcHRpb25zJztcbmV4cG9ydCAqIGZyb20gJy4vZmlyZWJhc2Uub3B0aW9ucy5lbnZpcm9ubWVudCc7XG4iXX0=
@@ -6,13 +6,13 @@ import * as i0 from "@angular/core";
6
6
  */
7
7
  export class DbxFirestoreContextService {
8
8
  firestoreContext = inject(DBX_FIRESTORE_CONTEXT_TOKEN);
9
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: DbxFirestoreContextService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
10
- static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: DbxFirestoreContextService, providedIn: 'root' });
9
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: DbxFirestoreContextService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
10
+ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: DbxFirestoreContextService, providedIn: 'root' });
11
11
  }
12
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: DbxFirestoreContextService, decorators: [{
12
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: DbxFirestoreContextService, decorators: [{
13
13
  type: Injectable,
14
14
  args: [{
15
15
  providedIn: 'root'
16
16
  }]
17
17
  }] });
18
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlyZWJhc2UuZmlyZXN0b3JlLmNvbnRleHQuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2RieC1maXJlYmFzZS9zcmMvbGliL2ZpcmVzdG9yZS9maXJlYmFzZS5maXJlc3RvcmUuY29udGV4dC5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRW5ELE9BQU8sRUFBRSwyQkFBMkIsRUFBRSxNQUFNLHNCQUFzQixDQUFDOztBQUVuRTs7R0FFRztBQUlILE1BQU0sT0FBTywwQkFBMEI7SUFDNUIsZ0JBQWdCLEdBQUcsTUFBTSxDQUFtQiwyQkFBMkIsQ0FBQyxDQUFDO3dHQUR2RSwwQkFBMEI7NEdBQTFCLDBCQUEwQixjQUZ6QixNQUFNOzs0RkFFUCwwQkFBMEI7a0JBSHRDLFVBQVU7bUJBQUM7b0JBQ1YsVUFBVSxFQUFFLE1BQU07aUJBQ25CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSwgaW5qZWN0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBGaXJlc3RvcmVDb250ZXh0IH0gZnJvbSAnQGRlcmVla2IvZmlyZWJhc2UnO1xuaW1wb3J0IHsgREJYX0ZJUkVTVE9SRV9DT05URVhUX1RPS0VOIH0gZnJvbSAnLi9maXJlYmFzZS5maXJlc3RvcmUnO1xuXG4vKipcbiAqIFNlcnZpY2UgdGhhdCBwcm92aWRlcyBhY2Nlc3MgdG8gdGhlIGFwcCdzIEZpcmVzdG9yZUNvbnRleHQuXG4gKi9cbkBJbmplY3RhYmxlKHtcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnXG59KVxuZXhwb3J0IGNsYXNzIERieEZpcmVzdG9yZUNvbnRleHRTZXJ2aWNlIHtcbiAgcmVhZG9ubHkgZmlyZXN0b3JlQ29udGV4dCA9IGluamVjdDxGaXJlc3RvcmVDb250ZXh0PihEQlhfRklSRVNUT1JFX0NPTlRFWFRfVE9LRU4pO1xufVxuIl19
18
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlyZWJhc2UuZmlyZXN0b3JlLmNvbnRleHQuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2RieC1maXJlYmFzZS9zcmMvbGliL2ZpcmVzdG9yZS9maXJlYmFzZS5maXJlc3RvcmUuY29udGV4dC5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ25ELE9BQU8sRUFBRSwyQkFBMkIsRUFBRSxNQUFNLHNCQUFzQixDQUFDOztBQUVuRTs7R0FFRztBQUlILE1BQU0sT0FBTywwQkFBMEI7SUFDNUIsZ0JBQWdCLEdBQUcsTUFBTSxDQUFtQiwyQkFBMkIsQ0FBQyxDQUFDO3dHQUR2RSwwQkFBMEI7NEdBQTFCLDBCQUEwQixjQUZ6QixNQUFNOzs0RkFFUCwwQkFBMEI7a0JBSHRDLFVBQVU7bUJBQUM7b0JBQ1YsVUFBVSxFQUFFLE1BQU07aUJBQ25CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRmlyZXN0b3JlQ29udGV4dCB9IGZyb20gJ0BkZXJlZWtiL2ZpcmViYXNlJztcbmltcG9ydCB7IEluamVjdGFibGUsIGluamVjdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgREJYX0ZJUkVTVE9SRV9DT05URVhUX1RPS0VOIH0gZnJvbSAnLi9maXJlYmFzZS5maXJlc3RvcmUnO1xuXG4vKipcbiAqIFNlcnZpY2UgdGhhdCBwcm92aWRlcyBhY2Nlc3MgdG8gdGhlIGFwcCdzIEZpcmVzdG9yZUNvbnRleHQuXG4gKi9cbkBJbmplY3RhYmxlKHtcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnXG59KVxuZXhwb3J0IGNsYXNzIERieEZpcmVzdG9yZUNvbnRleHRTZXJ2aWNlIHtcbiAgcmVhZG9ubHkgZmlyZXN0b3JlQ29udGV4dCA9IGluamVjdDxGaXJlc3RvcmVDb250ZXh0PihEQlhfRklSRVNUT1JFX0NPTlRFWFRfVE9LRU4pO1xufVxuIl19