ngx-firebase 1.1.12 → 22.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 (274) hide show
  1. package/README.md +51 -11
  2. package/fesm2022/ngx-firebase.mjs +158 -0
  3. package/fesm2022/ngx-firebase.mjs.map +1 -0
  4. package/package.json +40 -30
  5. package/types/ngx-firebase.d.ts +55 -0
  6. package/bundles/ngx-firebase-capacitor.umd.js +0 -763
  7. package/bundles/ngx-firebase-capacitor.umd.js.map +0 -1
  8. package/bundles/ngx-firebase-capacitor.umd.min.js +0 -16
  9. package/bundles/ngx-firebase-capacitor.umd.min.js.map +0 -1
  10. package/bundles/ngx-firebase-iap.umd.js +0 -718
  11. package/bundles/ngx-firebase-iap.umd.js.map +0 -1
  12. package/bundles/ngx-firebase-iap.umd.min.js +0 -2
  13. package/bundles/ngx-firebase-iap.umd.min.js.map +0 -1
  14. package/bundles/ngx-firebase-ionic-auth-ui.umd.js +0 -2116
  15. package/bundles/ngx-firebase-ionic-auth-ui.umd.js.map +0 -1
  16. package/bundles/ngx-firebase-ionic-auth-ui.umd.min.js +0 -16
  17. package/bundles/ngx-firebase-ionic-auth-ui.umd.min.js.map +0 -1
  18. package/bundles/ngx-firebase-ionic.umd.js +0 -979
  19. package/bundles/ngx-firebase-ionic.umd.js.map +0 -1
  20. package/bundles/ngx-firebase-ionic.umd.min.js +0 -16
  21. package/bundles/ngx-firebase-ionic.umd.min.js.map +0 -1
  22. package/bundles/ngx-firebase-testing.umd.js +0 -801
  23. package/bundles/ngx-firebase-testing.umd.js.map +0 -1
  24. package/bundles/ngx-firebase-testing.umd.min.js +0 -2
  25. package/bundles/ngx-firebase-testing.umd.min.js.map +0 -1
  26. package/bundles/ngx-firebase.umd.js +0 -2271
  27. package/bundles/ngx-firebase.umd.js.map +0 -1
  28. package/bundles/ngx-firebase.umd.min.js +0 -2
  29. package/bundles/ngx-firebase.umd.min.js.map +0 -1
  30. package/capacitor/capacitor.module.d.ts +0 -9
  31. package/capacitor/interfaces/config.d.ts +0 -12
  32. package/capacitor/interfaces/index.d.ts +0 -1
  33. package/capacitor/ngx-firebase-capacitor.d.ts +0 -5
  34. package/capacitor/ngx-firebase-capacitor.metadata.json +0 -1
  35. package/capacitor/package.json +0 -25
  36. package/capacitor/public-api.d.ts +0 -3
  37. package/capacitor/services/analytics-firebase-capacitor.service.d.ts +0 -9
  38. package/capacitor/services/crashlytics-firebase-capacitor.service.d.ts +0 -8
  39. package/capacitor/services/credential-factory-capacitor.service.d.ts +0 -18
  40. package/capacitor/services/index.d.ts +0 -3
  41. package/esm2015/capacitor/capacitor.module.js +0 -78
  42. package/esm2015/capacitor/interfaces/config.js +0 -3
  43. package/esm2015/capacitor/interfaces/index.js +0 -2
  44. package/esm2015/capacitor/ngx-firebase-capacitor.js +0 -6
  45. package/esm2015/capacitor/public-api.js +0 -4
  46. package/esm2015/capacitor/services/analytics-firebase-capacitor.service.js +0 -43
  47. package/esm2015/capacitor/services/crashlytics-firebase-capacitor.service.js +0 -40
  48. package/esm2015/capacitor/services/credential-factory-capacitor.service.js +0 -182
  49. package/esm2015/capacitor/services/index.js +0 -4
  50. package/esm2015/iap/iap.module.js +0 -32
  51. package/esm2015/iap/interfaces/index.js +0 -5
  52. package/esm2015/iap/ngx-firebase-iap.js +0 -5
  53. package/esm2015/iap/public-api.js +0 -5
  54. package/esm2015/iap/services/iap.service.js +0 -317
  55. package/esm2015/iap/tokens/index.js +0 -4
  56. package/esm2015/ionic/animations/index.js +0 -30
  57. package/esm2015/ionic/components/avatar/avatar.component.js +0 -98
  58. package/esm2015/ionic/components/avatar/index.js +0 -2
  59. package/esm2015/ionic/components/index.js +0 -3
  60. package/esm2015/ionic/components/popover-menu/index.js +0 -3
  61. package/esm2015/ionic/components/popover-menu/interface.js +0 -2
  62. package/esm2015/ionic/components/popover-menu/popover-menu.component.js +0 -34
  63. package/esm2015/ionic/ionic.module.js +0 -46
  64. package/esm2015/ionic/ngx-firebase-ionic.js +0 -5
  65. package/esm2015/ionic/public-api.js +0 -5
  66. package/esm2015/ionic/services/alerts-ionic.service.js +0 -107
  67. package/esm2015/ionic/services/index.js +0 -6
  68. package/esm2015/ionic/services/legality-dialog-ionic.service.js +0 -85
  69. package/esm2015/ionic/services/loading-ionic.service.js +0 -46
  70. package/esm2015/ionic/services/picker-ionic.service.js +0 -44
  71. package/esm2015/ionic/services/toast-ionic.service.js +0 -49
  72. package/esm2015/ionic-auth-ui/animations/index.js +0 -30
  73. package/esm2015/ionic-auth-ui/components/email-confirmation/email-confirmation.component.js +0 -99
  74. package/esm2015/ionic-auth-ui/components/email-field/email-field.component.js +0 -25
  75. package/esm2015/ionic-auth-ui/components/form-field/form-field.component.js +0 -82
  76. package/esm2015/ionic-auth-ui/components/index.js +0 -12
  77. package/esm2015/ionic-auth-ui/components/name-field/name-field.component.js +0 -30
  78. package/esm2015/ionic-auth-ui/components/or-divider/or-divider.component.js +0 -11
  79. package/esm2015/ionic-auth-ui/components/password-field/password-field.component.js +0 -138
  80. package/esm2015/ionic-auth-ui/components/password-field/passwordValidatorFunctions.js +0 -62
  81. package/esm2015/ionic-auth-ui/components/providers/providers.component.js +0 -70
  82. package/esm2015/ionic-auth-ui/components/reauthenticate/reauthenticate.component.js +0 -99
  83. package/esm2015/ionic-auth-ui/components/register/register.component.js +0 -142
  84. package/esm2015/ionic-auth-ui/components/register-with-email/register-with-email.component.js +0 -60
  85. package/esm2015/ionic-auth-ui/components/register-with-email-popover/register-with-email-popover.component.js +0 -26
  86. package/esm2015/ionic-auth-ui/components/signin/signin.component.js +0 -92
  87. package/esm2015/ionic-auth-ui/components/terms-field/terms-field.component.js +0 -99
  88. package/esm2015/ionic-auth-ui/components/user/user.component.js +0 -195
  89. package/esm2015/ionic-auth-ui/ionic-auth-ui.module.js +0 -92
  90. package/esm2015/ionic-auth-ui/ngx-firebase-ionic-auth-ui.js +0 -23
  91. package/esm2015/ionic-auth-ui/pages/index.js +0 -5
  92. package/esm2015/ionic-auth-ui/pages/register/index.js +0 -2
  93. package/esm2015/ionic-auth-ui/pages/register/register.page.js +0 -56
  94. package/esm2015/ionic-auth-ui/pages/signin/index.js +0 -2
  95. package/esm2015/ionic-auth-ui/pages/signin/signin.page.js +0 -78
  96. package/esm2015/ionic-auth-ui/pages/user/index.js +0 -2
  97. package/esm2015/ionic-auth-ui/pages/user/user.page.js +0 -11
  98. package/esm2015/ionic-auth-ui/pages/verifyemail/index.js +0 -2
  99. package/esm2015/ionic-auth-ui/pages/verifyemail/verifyemail.page.js +0 -85
  100. package/esm2015/ionic-auth-ui/public-api.js +0 -5
  101. package/esm2015/ngx-firebase.js +0 -6
  102. package/esm2015/public-api.js +0 -6
  103. package/esm2015/shared/guards/index.js +0 -3
  104. package/esm2015/shared/guards/logged-in.guard.js +0 -60
  105. package/esm2015/shared/guards/verify-email.guard.js +0 -41
  106. package/esm2015/shared/interfaces/accounts.enum.js +0 -9
  107. package/esm2015/shared/interfaces/authprovider.enum.js +0 -15
  108. package/esm2015/shared/interfaces/config.interface.js +0 -61
  109. package/esm2015/shared/interfaces/index.js +0 -8
  110. package/esm2015/shared/interfaces/main.interface.js +0 -7
  111. package/esm2015/shared/interfaces/providers.interface.js +0 -2
  112. package/esm2015/shared/interfaces/tokens.js +0 -19
  113. package/esm2015/shared/interfaces/ui-providers.interface.js +0 -2
  114. package/esm2015/shared/services/analytics.service.js +0 -24
  115. package/esm2015/shared/services/auth-process.service.js +0 -752
  116. package/esm2015/shared/services/crashlytics.service.js +0 -42
  117. package/esm2015/shared/services/device-info.service.js +0 -14
  118. package/esm2015/shared/services/firebase.service.js +0 -37
  119. package/esm2015/shared/services/firestore-sync.service.js +0 -60
  120. package/esm2015/shared/services/index.js +0 -10
  121. package/esm2015/shared/services/performance.service.js +0 -28
  122. package/esm2015/shared/services/remoteconfig.service.js +0 -49
  123. package/esm2015/shared/services/ui.service.js +0 -45
  124. package/esm2015/shared/shared.module.js +0 -175
  125. package/esm2015/shared/types/DisplayWidth.js +0 -9
  126. package/esm2015/shared/types/Location.js +0 -2
  127. package/esm2015/shared/types/ValueAccessorControlComponent.js +0 -85
  128. package/esm2015/shared/types/ValueAccessorValueComponent.js +0 -40
  129. package/esm2015/shared/types/index.js +0 -5
  130. package/esm2015/testing/fakeavatar.module.js +0 -22
  131. package/esm2015/testing/fakes/FakeAuthProcessService.js +0 -31
  132. package/esm2015/testing/fakes/FakeAvatarComponent.js +0 -13
  133. package/esm2015/testing/fakes/FakeFireService.js +0 -21
  134. package/esm2015/testing/fakes/FakeFirestoreSyncService.js +0 -11
  135. package/esm2015/testing/fakes/FakeIAPurchaseService.js +0 -11
  136. package/esm2015/testing/fakes/FakePickerService.js +0 -9
  137. package/esm2015/testing/fakes/FakeRemoteConfigService.js +0 -44
  138. package/esm2015/testing/fakes/FakeTranslateService.js +0 -21
  139. package/esm2015/testing/fakes/FakeUiService.js +0 -26
  140. package/esm2015/testing/fakes/angular-fire/FakeAngularFireAuth.js +0 -30
  141. package/esm2015/testing/fakes/angular-fire/FakeAngularFireFunctions.js +0 -17
  142. package/esm2015/testing/fakes/angular-fire/FakeAngularFirePerformance.js +0 -17
  143. package/esm2015/testing/fakes/angular-fire/FakeAngularFireStorage.js +0 -8
  144. package/esm2015/testing/fakes/angular-fire/FakeAngularFirestore.js +0 -8
  145. package/esm2015/testing/fakes/angular-fire/FakeUserCredential.js +0 -18
  146. package/esm2015/testing/fakes/index.js +0 -19
  147. package/esm2015/testing/ngx-firebase-testing.js +0 -6
  148. package/esm2015/testing/public-api.js +0 -5
  149. package/esm2015/testing/test.module.js +0 -66
  150. package/esm2015/testing/utils/index.js +0 -17
  151. package/esm2015/testing/utils/patchConsole.js +0 -14
  152. package/fesm2015/ngx-firebase-capacitor.js +0 -328
  153. package/fesm2015/ngx-firebase-capacitor.js.map +0 -1
  154. package/fesm2015/ngx-firebase-iap.js +0 -354
  155. package/fesm2015/ngx-firebase-iap.js.map +0 -1
  156. package/fesm2015/ngx-firebase-ionic-auth-ui.js +0 -1482
  157. package/fesm2015/ngx-firebase-ionic-auth-ui.js.map +0 -1
  158. package/fesm2015/ngx-firebase-ionic.js +0 -495
  159. package/fesm2015/ngx-firebase-ionic.js.map +0 -1
  160. package/fesm2015/ngx-firebase-testing.js +0 -388
  161. package/fesm2015/ngx-firebase-testing.js.map +0 -1
  162. package/fesm2015/ngx-firebase.js +0 -1482
  163. package/fesm2015/ngx-firebase.js.map +0 -1
  164. package/iap/iap.module.d.ts +0 -5
  165. package/iap/interfaces/index.d.ts +0 -11
  166. package/iap/ngx-firebase-iap.d.ts +0 -4
  167. package/iap/ngx-firebase-iap.metadata.json +0 -1
  168. package/iap/package.json +0 -23
  169. package/iap/public-api.d.ts +0 -4
  170. package/iap/services/iap.service.d.ts +0 -47
  171. package/iap/tokens/index.d.ts +0 -3
  172. package/ionic/animations/index.d.ts +0 -1
  173. package/ionic/components/avatar/avatar.component.d.ts +0 -27
  174. package/ionic/components/avatar/index.d.ts +0 -1
  175. package/ionic/components/index.d.ts +0 -2
  176. package/ionic/components/popover-menu/index.d.ts +0 -2
  177. package/ionic/components/popover-menu/interface.d.ts +0 -6
  178. package/ionic/components/popover-menu/popover-menu.component.d.ts +0 -10
  179. package/ionic/ionic.module.d.ts +0 -2
  180. package/ionic/ngx-firebase-ionic.d.ts +0 -4
  181. package/ionic/ngx-firebase-ionic.metadata.json +0 -1
  182. package/ionic/package.json +0 -30
  183. package/ionic/public-api.d.ts +0 -4
  184. package/ionic/services/alerts-ionic.service.d.ts +0 -13
  185. package/ionic/services/index.d.ts +0 -5
  186. package/ionic/services/legality-dialog-ionic.service.d.ts +0 -10
  187. package/ionic/services/loading-ionic.service.d.ts +0 -17
  188. package/ionic/services/picker-ionic.service.d.ts +0 -9
  189. package/ionic/services/toast-ionic.service.d.ts +0 -11
  190. package/ionic-auth-ui/animations/index.d.ts +0 -1
  191. package/ionic-auth-ui/components/email-confirmation/email-confirmation.component.d.ts +0 -31
  192. package/ionic-auth-ui/components/email-field/email-field.component.d.ts +0 -7
  193. package/ionic-auth-ui/components/form-field/form-field.component.d.ts +0 -28
  194. package/ionic-auth-ui/components/index.d.ts +0 -11
  195. package/ionic-auth-ui/components/name-field/name-field.component.d.ts +0 -8
  196. package/ionic-auth-ui/components/or-divider/or-divider.component.d.ts +0 -2
  197. package/ionic-auth-ui/components/password-field/password-field.component.d.ts +0 -34
  198. package/ionic-auth-ui/components/password-field/passwordValidatorFunctions.d.ts +0 -4
  199. package/ionic-auth-ui/components/providers/providers.component.d.ts +0 -26
  200. package/ionic-auth-ui/components/reauthenticate/reauthenticate.component.d.ts +0 -30
  201. package/ionic-auth-ui/components/register/register.component.d.ts +0 -26
  202. package/ionic-auth-ui/components/register-with-email/register-with-email.component.d.ts +0 -24
  203. package/ionic-auth-ui/components/register-with-email-popover/register-with-email-popover.component.d.ts +0 -7
  204. package/ionic-auth-ui/components/signin/signin.component.d.ts +0 -28
  205. package/ionic-auth-ui/components/terms-field/terms-field.component.d.ts +0 -27
  206. package/ionic-auth-ui/components/user/user.component.d.ts +0 -45
  207. package/ionic-auth-ui/ionic-auth-ui.module.d.ts +0 -32
  208. package/ionic-auth-ui/ngx-firebase-ionic-auth-ui.d.ts +0 -22
  209. package/ionic-auth-ui/ngx-firebase-ionic-auth-ui.metadata.json +0 -1
  210. package/ionic-auth-ui/package.json +0 -30
  211. package/ionic-auth-ui/pages/index.d.ts +0 -4
  212. package/ionic-auth-ui/pages/register/index.d.ts +0 -1
  213. package/ionic-auth-ui/pages/register/register.page.d.ts +0 -16
  214. package/ionic-auth-ui/pages/signin/index.d.ts +0 -1
  215. package/ionic-auth-ui/pages/signin/signin.page.d.ts +0 -22
  216. package/ionic-auth-ui/pages/user/index.d.ts +0 -1
  217. package/ionic-auth-ui/pages/user/user.page.d.ts +0 -3
  218. package/ionic-auth-ui/pages/verifyemail/index.d.ts +0 -1
  219. package/ionic-auth-ui/pages/verifyemail/verifyemail.page.d.ts +0 -19
  220. package/ionic-auth-ui/public-api.d.ts +0 -4
  221. package/ngx-firebase.d.ts +0 -5
  222. package/ngx-firebase.metadata.json +0 -1
  223. package/public-api.d.ts +0 -5
  224. package/shared/guards/index.d.ts +0 -2
  225. package/shared/guards/logged-in.guard.d.ts +0 -13
  226. package/shared/guards/verify-email.guard.d.ts +0 -11
  227. package/shared/interfaces/accounts.enum.d.ts +0 -7
  228. package/shared/interfaces/authprovider.enum.d.ts +0 -13
  229. package/shared/interfaces/config.interface.d.ts +0 -63
  230. package/shared/interfaces/index.d.ts +0 -7
  231. package/shared/interfaces/main.interface.d.ts +0 -13
  232. package/shared/interfaces/providers.interface.d.ts +0 -63
  233. package/shared/interfaces/tokens.d.ts +0 -16
  234. package/shared/interfaces/ui-providers.interface.d.ts +0 -65
  235. package/shared/services/analytics.service.d.ts +0 -10
  236. package/shared/services/auth-process.service.d.ts +0 -172
  237. package/shared/services/crashlytics.service.d.ts +0 -11
  238. package/shared/services/device-info.service.d.ts +0 -3
  239. package/shared/services/firebase.service.d.ts +0 -16
  240. package/shared/services/firestore-sync.service.d.ts +0 -16
  241. package/shared/services/index.d.ts +0 -9
  242. package/shared/services/performance.service.d.ts +0 -12
  243. package/shared/services/remoteconfig.service.d.ts +0 -18
  244. package/shared/services/ui.service.d.ts +0 -22
  245. package/shared/shared.module.d.ts +0 -14
  246. package/shared/types/DisplayWidth.d.ts +0 -7
  247. package/shared/types/Location.d.ts +0 -8
  248. package/shared/types/ValueAccessorControlComponent.d.ts +0 -27
  249. package/shared/types/ValueAccessorValueComponent.d.ts +0 -19
  250. package/shared/types/index.d.ts +0 -4
  251. package/testing/fakeavatar.module.d.ts +0 -2
  252. package/testing/fakes/FakeAuthProcessService.d.ts +0 -28
  253. package/testing/fakes/FakeAvatarComponent.d.ts +0 -3
  254. package/testing/fakes/FakeFireService.d.ts +0 -20
  255. package/testing/fakes/FakeFirestoreSyncService.d.ts +0 -9
  256. package/testing/fakes/FakeIAPurchaseService.d.ts +0 -9
  257. package/testing/fakes/FakePickerService.d.ts +0 -6
  258. package/testing/fakes/FakeRemoteConfigService.d.ts +0 -19
  259. package/testing/fakes/FakeTranslateService.d.ts +0 -15
  260. package/testing/fakes/FakeUiService.d.ts +0 -25
  261. package/testing/fakes/angular-fire/FakeAngularFireAuth.d.ts +0 -52
  262. package/testing/fakes/angular-fire/FakeAngularFireFunctions.d.ts +0 -11
  263. package/testing/fakes/angular-fire/FakeAngularFirePerformance.d.ts +0 -10
  264. package/testing/fakes/angular-fire/FakeAngularFireStorage.d.ts +0 -5
  265. package/testing/fakes/angular-fire/FakeAngularFirestore.d.ts +0 -5
  266. package/testing/fakes/angular-fire/FakeUserCredential.d.ts +0 -9
  267. package/testing/fakes/index.d.ts +0 -16
  268. package/testing/ngx-firebase-testing.d.ts +0 -5
  269. package/testing/ngx-firebase-testing.metadata.json +0 -1
  270. package/testing/package.json +0 -29
  271. package/testing/public-api.d.ts +0 -4
  272. package/testing/test.module.d.ts +0 -4
  273. package/testing/utils/index.d.ts +0 -5
  274. package/testing/utils/patchConsole.d.ts +0 -4
@@ -1,2271 +0,0 @@
1
- (function (global, factory) {
2
- typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports, require('@angular/core'), require('@angular/fire/remote-config'), require('rxjs'), require('@angular/fire/performance'), require('@angular/fire/firestore'), require('rxjs/operators'), require('@firebase/app'), require('firebase/auth'), require('@angular/fire/auth'), require('@angular/forms'), require('@angular/router'), require('@angular/common/http'), require('@ngx-translate/core'), require('@angular/fire'), require('@angular/fire/functions')) :
3
- typeof define === 'function' && define.amd ? define('ngx-firebase', ['exports', '@angular/core', '@angular/fire/remote-config', 'rxjs', '@angular/fire/performance', '@angular/fire/firestore', 'rxjs/operators', '@firebase/app', 'firebase/auth', '@angular/fire/auth', '@angular/forms', '@angular/router', '@angular/common/http', '@ngx-translate/core', '@angular/fire', '@angular/fire/functions'], factory) :
4
- (global = typeof globalThis !== 'undefined' ? globalThis : global || self, factory(global['ngx-firebase'] = {}, global.ng.core, global.ng.fire.remoteConfig, global.rxjs, global.ng.fire.performance, global.ng.fire.firestore, global.rxjs.operators, global.firebase, null, global.ng.fire.auth, global.ng.forms, global.ng.router, global.ng.common.http, global['ngx-translate'], global.ng.fire, global.ng.fire.functions));
5
- }(this, (function (exports, i0, i1, rxjs, i1$1, i1$2, operators, app, auth, i3, forms, i2, http, core, fire, functions) { 'use strict';
6
-
7
- var MalDeviceInfoService = /** @class */ (function () {
8
- function MalDeviceInfoService() {
9
- }
10
- Object.defineProperty(MalDeviceInfoService.prototype, "dateFormat", {
11
- get: function () {
12
- return 'dd/MM/yyyy';
13
- },
14
- enumerable: false,
15
- configurable: true
16
- });
17
- return MalDeviceInfoService;
18
- }());
19
- MalDeviceInfoService.ɵprov = i0.ɵɵdefineInjectable({ factory: function MalDeviceInfoService_Factory() { return new MalDeviceInfoService(); }, token: MalDeviceInfoService, providedIn: "root" });
20
- MalDeviceInfoService.decorators = [
21
- { type: i0.Injectable, args: [{
22
- providedIn: 'root',
23
- },] }
24
- ];
25
-
26
- /*! *****************************************************************************
27
- Copyright (c) Microsoft Corporation.
28
-
29
- Permission to use, copy, modify, and/or distribute this software for any
30
- purpose with or without fee is hereby granted.
31
-
32
- THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH
33
- REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
34
- AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,
35
- INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
36
- LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR
37
- OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
38
- PERFORMANCE OF THIS SOFTWARE.
39
- ***************************************************************************** */
40
- /* global Reflect, Promise */
41
- var extendStatics = function (d, b) {
42
- extendStatics = Object.setPrototypeOf ||
43
- ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
44
- function (d, b) { for (var p in b)
45
- if (Object.prototype.hasOwnProperty.call(b, p))
46
- d[p] = b[p]; };
47
- return extendStatics(d, b);
48
- };
49
- function __extends(d, b) {
50
- if (typeof b !== "function" && b !== null)
51
- throw new TypeError("Class extends value " + String(b) + " is not a constructor or null");
52
- extendStatics(d, b);
53
- function __() { this.constructor = d; }
54
- d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
55
- }
56
- var __assign = function () {
57
- __assign = Object.assign || function __assign(t) {
58
- for (var s, i = 1, n = arguments.length; i < n; i++) {
59
- s = arguments[i];
60
- for (var p in s)
61
- if (Object.prototype.hasOwnProperty.call(s, p))
62
- t[p] = s[p];
63
- }
64
- return t;
65
- };
66
- return __assign.apply(this, arguments);
67
- };
68
- function __rest(s, e) {
69
- var t = {};
70
- for (var p in s)
71
- if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
72
- t[p] = s[p];
73
- if (s != null && typeof Object.getOwnPropertySymbols === "function")
74
- for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
75
- if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
76
- t[p[i]] = s[p[i]];
77
- }
78
- return t;
79
- }
80
- function __decorate(decorators, target, key, desc) {
81
- var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
82
- if (typeof Reflect === "object" && typeof Reflect.decorate === "function")
83
- r = Reflect.decorate(decorators, target, key, desc);
84
- else
85
- for (var i = decorators.length - 1; i >= 0; i--)
86
- if (d = decorators[i])
87
- r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
88
- return c > 3 && r && Object.defineProperty(target, key, r), r;
89
- }
90
- function __param(paramIndex, decorator) {
91
- return function (target, key) { decorator(target, key, paramIndex); };
92
- }
93
- function __metadata(metadataKey, metadataValue) {
94
- if (typeof Reflect === "object" && typeof Reflect.metadata === "function")
95
- return Reflect.metadata(metadataKey, metadataValue);
96
- }
97
- function __awaiter(thisArg, _arguments, P, generator) {
98
- function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
99
- return new (P || (P = Promise))(function (resolve, reject) {
100
- function fulfilled(value) { try {
101
- step(generator.next(value));
102
- }
103
- catch (e) {
104
- reject(e);
105
- } }
106
- function rejected(value) { try {
107
- step(generator["throw"](value));
108
- }
109
- catch (e) {
110
- reject(e);
111
- } }
112
- function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
113
- step((generator = generator.apply(thisArg, _arguments || [])).next());
114
- });
115
- }
116
- function __generator(thisArg, body) {
117
- var _ = { label: 0, sent: function () { if (t[0] & 1)
118
- throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
119
- return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function () { return this; }), g;
120
- function verb(n) { return function (v) { return step([n, v]); }; }
121
- function step(op) {
122
- if (f)
123
- throw new TypeError("Generator is already executing.");
124
- while (_)
125
- try {
126
- if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done)
127
- return t;
128
- if (y = 0, t)
129
- op = [op[0] & 2, t.value];
130
- switch (op[0]) {
131
- case 0:
132
- case 1:
133
- t = op;
134
- break;
135
- case 4:
136
- _.label++;
137
- return { value: op[1], done: false };
138
- case 5:
139
- _.label++;
140
- y = op[1];
141
- op = [0];
142
- continue;
143
- case 7:
144
- op = _.ops.pop();
145
- _.trys.pop();
146
- continue;
147
- default:
148
- if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) {
149
- _ = 0;
150
- continue;
151
- }
152
- if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) {
153
- _.label = op[1];
154
- break;
155
- }
156
- if (op[0] === 6 && _.label < t[1]) {
157
- _.label = t[1];
158
- t = op;
159
- break;
160
- }
161
- if (t && _.label < t[2]) {
162
- _.label = t[2];
163
- _.ops.push(op);
164
- break;
165
- }
166
- if (t[2])
167
- _.ops.pop();
168
- _.trys.pop();
169
- continue;
170
- }
171
- op = body.call(thisArg, _);
172
- }
173
- catch (e) {
174
- op = [6, e];
175
- y = 0;
176
- }
177
- finally {
178
- f = t = 0;
179
- }
180
- if (op[0] & 5)
181
- throw op[1];
182
- return { value: op[0] ? op[1] : void 0, done: true };
183
- }
184
- }
185
- var __createBinding = Object.create ? (function (o, m, k, k2) {
186
- if (k2 === undefined)
187
- k2 = k;
188
- Object.defineProperty(o, k2, { enumerable: true, get: function () { return m[k]; } });
189
- }) : (function (o, m, k, k2) {
190
- if (k2 === undefined)
191
- k2 = k;
192
- o[k2] = m[k];
193
- });
194
- function __exportStar(m, o) {
195
- for (var p in m)
196
- if (p !== "default" && !Object.prototype.hasOwnProperty.call(o, p))
197
- __createBinding(o, m, p);
198
- }
199
- function __values(o) {
200
- var s = typeof Symbol === "function" && Symbol.iterator, m = s && o[s], i = 0;
201
- if (m)
202
- return m.call(o);
203
- if (o && typeof o.length === "number")
204
- return {
205
- next: function () {
206
- if (o && i >= o.length)
207
- o = void 0;
208
- return { value: o && o[i++], done: !o };
209
- }
210
- };
211
- throw new TypeError(s ? "Object is not iterable." : "Symbol.iterator is not defined.");
212
- }
213
- function __read(o, n) {
214
- var m = typeof Symbol === "function" && o[Symbol.iterator];
215
- if (!m)
216
- return o;
217
- var i = m.call(o), r, ar = [], e;
218
- try {
219
- while ((n === void 0 || n-- > 0) && !(r = i.next()).done)
220
- ar.push(r.value);
221
- }
222
- catch (error) {
223
- e = { error: error };
224
- }
225
- finally {
226
- try {
227
- if (r && !r.done && (m = i["return"]))
228
- m.call(i);
229
- }
230
- finally {
231
- if (e)
232
- throw e.error;
233
- }
234
- }
235
- return ar;
236
- }
237
- /** @deprecated */
238
- function __spread() {
239
- for (var ar = [], i = 0; i < arguments.length; i++)
240
- ar = ar.concat(__read(arguments[i]));
241
- return ar;
242
- }
243
- /** @deprecated */
244
- function __spreadArrays() {
245
- for (var s = 0, i = 0, il = arguments.length; i < il; i++)
246
- s += arguments[i].length;
247
- for (var r = Array(s), k = 0, i = 0; i < il; i++)
248
- for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)
249
- r[k] = a[j];
250
- return r;
251
- }
252
- function __spreadArray(to, from) {
253
- for (var i = 0, il = from.length, j = to.length; i < il; i++, j++)
254
- to[j] = from[i];
255
- return to;
256
- }
257
- function __await(v) {
258
- return this instanceof __await ? (this.v = v, this) : new __await(v);
259
- }
260
- function __asyncGenerator(thisArg, _arguments, generator) {
261
- if (!Symbol.asyncIterator)
262
- throw new TypeError("Symbol.asyncIterator is not defined.");
263
- var g = generator.apply(thisArg, _arguments || []), i, q = [];
264
- return i = {}, verb("next"), verb("throw"), verb("return"), i[Symbol.asyncIterator] = function () { return this; }, i;
265
- function verb(n) { if (g[n])
266
- i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }
267
- function resume(n, v) { try {
268
- step(g[n](v));
269
- }
270
- catch (e) {
271
- settle(q[0][3], e);
272
- } }
273
- function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }
274
- function fulfill(value) { resume("next", value); }
275
- function reject(value) { resume("throw", value); }
276
- function settle(f, v) { if (f(v), q.shift(), q.length)
277
- resume(q[0][0], q[0][1]); }
278
- }
279
- function __asyncDelegator(o) {
280
- var i, p;
281
- return i = {}, verb("next"), verb("throw", function (e) { throw e; }), verb("return"), i[Symbol.iterator] = function () { return this; }, i;
282
- function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === "return" } : f ? f(v) : v; } : f; }
283
- }
284
- function __asyncValues(o) {
285
- if (!Symbol.asyncIterator)
286
- throw new TypeError("Symbol.asyncIterator is not defined.");
287
- var m = o[Symbol.asyncIterator], i;
288
- return m ? m.call(o) : (o = typeof __values === "function" ? __values(o) : o[Symbol.iterator](), i = {}, verb("next"), verb("throw"), verb("return"), i[Symbol.asyncIterator] = function () { return this; }, i);
289
- function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }
290
- function settle(resolve, reject, d, v) { Promise.resolve(v).then(function (v) { resolve({ value: v, done: d }); }, reject); }
291
- }
292
- function __makeTemplateObject(cooked, raw) {
293
- if (Object.defineProperty) {
294
- Object.defineProperty(cooked, "raw", { value: raw });
295
- }
296
- else {
297
- cooked.raw = raw;
298
- }
299
- return cooked;
300
- }
301
- ;
302
- var __setModuleDefault = Object.create ? (function (o, v) {
303
- Object.defineProperty(o, "default", { enumerable: true, value: v });
304
- }) : function (o, v) {
305
- o["default"] = v;
306
- };
307
- function __importStar(mod) {
308
- if (mod && mod.__esModule)
309
- return mod;
310
- var result = {};
311
- if (mod != null)
312
- for (var k in mod)
313
- if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k))
314
- __createBinding(result, mod, k);
315
- __setModuleDefault(result, mod);
316
- return result;
317
- }
318
- function __importDefault(mod) {
319
- return (mod && mod.__esModule) ? mod : { default: mod };
320
- }
321
- function __classPrivateFieldGet(receiver, privateMap) {
322
- if (!privateMap.has(receiver)) {
323
- throw new TypeError("attempted to get private field on non-instance");
324
- }
325
- return privateMap.get(receiver);
326
- }
327
- function __classPrivateFieldSet(receiver, privateMap, value) {
328
- if (!privateMap.has(receiver)) {
329
- throw new TypeError("attempted to set private field on non-instance");
330
- }
331
- privateMap.set(receiver, value);
332
- return value;
333
- }
334
-
335
- var StaticValue = /** @class */ (function () {
336
- function StaticValue(value) {
337
- this.value = value;
338
- }
339
- StaticValue.prototype.asBoolean = function () { return this.value; };
340
- StaticValue.prototype.asString = function () { return this.value; };
341
- StaticValue.prototype.asNumber = function () { return this.value; };
342
- StaticValue.prototype.getSource = function () { return 'static'; };
343
- return StaticValue;
344
- }());
345
- var RemoteConfigService = /** @class */ (function () {
346
- function RemoteConfigService(remoteConfigProvider, injector) {
347
- this.injector = injector;
348
- this.defaults = this.injector.get(i1.DEFAULTS) || {};
349
- this.remoteConfig$ = rxjs.of(this.defaults);
350
- this.parameters = rxjs.of([]);
351
- if (remoteConfigProvider) {
352
- this.getBoolean = remoteConfigProvider.getBoolean;
353
- this.getNumber = remoteConfigProvider.getNumber;
354
- this.getString = remoteConfigProvider.getString;
355
- this.getValue = remoteConfigProvider.getValue;
356
- this.remoteConfig$ = remoteConfigProvider.parameters.pipe(i1.mapToObject(this.defaults));
357
- }
358
- }
359
- RemoteConfigService.prototype.getBoolean = function (key) {
360
- return __awaiter(this, void 0, void 0, function () { return __generator(this, function (_a) {
361
- switch (_a.label) {
362
- case 0: return [4 /*yield*/, this.getValue(key)];
363
- case 1: return [2 /*return*/, (_a.sent()).asBoolean()];
364
- }
365
- }); });
366
- };
367
- RemoteConfigService.prototype.getNumber = function (key) {
368
- return __awaiter(this, void 0, void 0, function () { return __generator(this, function (_a) {
369
- switch (_a.label) {
370
- case 0: return [4 /*yield*/, this.getValue(key)];
371
- case 1: return [2 /*return*/, (_a.sent()).asNumber()];
372
- }
373
- }); });
374
- };
375
- RemoteConfigService.prototype.getString = function (key) {
376
- return __awaiter(this, void 0, void 0, function () { return __generator(this, function (_a) {
377
- switch (_a.label) {
378
- case 0: return [4 /*yield*/, this.getValue(key)];
379
- case 1: return [2 /*return*/, (_a.sent()).asString()];
380
- }
381
- }); });
382
- };
383
- RemoteConfigService.prototype.getValue = function (key) { return Promise.resolve(new StaticValue(this.defaults[key])); };
384
- return RemoteConfigService;
385
- }());
386
- RemoteConfigService.ɵprov = i0.ɵɵdefineInjectable({ factory: function RemoteConfigService_Factory() { return new RemoteConfigService(i0.ɵɵinject(i1.AngularFireRemoteConfig, 8), i0.ɵɵinject(i0.INJECTOR)); }, token: RemoteConfigService, providedIn: "root" });
387
- RemoteConfigService.decorators = [
388
- { type: i0.Injectable, args: [{ providedIn: 'root' },] }
389
- ];
390
- RemoteConfigService.ctorParameters = function () { return [
391
- { type: i1.AngularFireRemoteConfig, decorators: [{ type: i0.Optional }] },
392
- { type: i0.Injector }
393
- ]; };
394
-
395
- exports.AuthProvider = void 0;
396
- (function (AuthProvider) {
397
- AuthProvider["ALL"] = "all";
398
- AuthProvider["ANONYMOUS"] = "anonymous";
399
- AuthProvider["EmailAndPassword"] = "firebase";
400
- AuthProvider["Google"] = "google";
401
- AuthProvider["Apple"] = "apple";
402
- AuthProvider["Facebook"] = "facebook";
403
- AuthProvider["Twitter"] = "twitter";
404
- AuthProvider["Github"] = "github";
405
- AuthProvider["Microsoft"] = "microsoft";
406
- AuthProvider["Yahoo"] = "yahoo";
407
- AuthProvider["PhoneNumber"] = "phoneNumber";
408
- })(exports.AuthProvider || (exports.AuthProvider = {}));
409
-
410
- exports.Accounts = void 0;
411
- (function (Accounts) {
412
- Accounts["NONE"] = "account";
413
- Accounts["CHECK"] = "account-check";
414
- Accounts["EDIT"] = "account-edit";
415
- Accounts["OFF"] = "account-off";
416
- Accounts["REMOVE"] = "account-remove";
417
- })(exports.Accounts || (exports.Accounts = {}));
418
-
419
- // import * as firebase from 'firebase';
420
- exports.MalServiceEnabled = void 0;
421
- (function (MalServiceEnabled) {
422
- MalServiceEnabled[MalServiceEnabled["emulate"] = 2] = "emulate";
423
- MalServiceEnabled[MalServiceEnabled["enabled"] = 1] = "enabled";
424
- MalServiceEnabled[MalServiceEnabled["disabled"] = 0] = "disabled";
425
- })(exports.MalServiceEnabled || (exports.MalServiceEnabled = {}));
426
- var defaultAuthFirebaseUIConfig = {
427
- services: {
428
- firebaseAnalytics: true,
429
- firebaseCrashlytics: true,
430
- firebasePerformance: true,
431
- firebaseRemoteConfig: true,
432
- inAppPurchase: true,
433
- firebaseAuth: true,
434
- firebaseFirestore: true,
435
- firebaseFunctions: true
436
- },
437
- authUi: {
438
- enableFirestoreSync: true,
439
- toastMessageOnAuthSuccess: true,
440
- toastMessageOnAuthError: true,
441
- toastDefaultDurationMil: 3000,
442
- authGuardFallbackURL: '/',
443
- authGuardLoggedInURL: '/',
444
- authGuardVerifyEmailURL: undefined,
445
- reSignInUrl: '/auth/signin',
446
- // Password length min/max in forms independently of each componenet min/max.
447
- // `min/max` input parameters in components should be within this range.
448
- passwordMaxLength: 60,
449
- passwordMinLength: 8,
450
- passwordRequireLowercase: true,
451
- passwordRequireUppercase: true,
452
- passwordRequireSpecial: true,
453
- passwordRequireNumbers: true,
454
- // Same as password but for the name
455
- nameMaxLength: 50,
456
- nameMinLength: 2,
457
- supportedProviders: exports.AuthProvider.ALL,
458
- guestEnabled: false,
459
- allowAccountEdit: true,
460
- allowAccountDelete: true,
461
- allowAccountLogout: true,
462
- // If set, sign-in/up form is not available until email has been verified.
463
- // Plus protected routes are still protected even though user is connected.
464
- guardProtectedRoutesUntilEmailIsVerified: true,
465
- // Default to email verification on
466
- enableEmailVerification: true
467
- }
468
- };
469
- // Merge default config with user provided config.
470
- function malSharedConfigFactory(userProvidedConfig) {
471
- return {
472
- firebase: userProvidedConfig.firebase,
473
- services: Object.assign({}, defaultAuthFirebaseUIConfig.services, userProvidedConfig.services || {}),
474
- authUi: Object.assign({}, defaultAuthFirebaseUIConfig.authUi, userProvidedConfig.authUi || {}),
475
- configDefaults: userProvidedConfig.configDefaults || {}
476
- };
477
- }
478
-
479
- // tslint:disable-next-line max-len
480
- var PHONE_NUMBER_REGEX = new RegExp(['^[+]{0,1}[(]{0,1}[0-9]{1,4}[)]{0,1}[-\\s\\.]{0,1}[(]{0,1}[0-9]{1,4}[)]{0,1}[-\\s\\./0-9]{4,12}$'].join(''));
481
- exports.FirebaseErrorCodes = void 0;
482
- (function (FirebaseErrorCodes) {
483
- FirebaseErrorCodes["requiresRecentLogin"] = "auth/requires-recent-login";
484
- })(exports.FirebaseErrorCodes || (exports.FirebaseErrorCodes = {}));
485
-
486
- // This token is the official token containing the final configuration; ie. the merge between default and user provided configurations
487
- // Firebase Functional Areas
488
- var MalAnalyticsProviderToken = new i0.InjectionToken('MalAnalyticsProviderToken');
489
- var MalCrashlyticsProviderToken = new i0.InjectionToken('MalCrashlyticsProviderToken');
490
- var MalAuthServiceProviderToken = new i0.InjectionToken('MalAuthServiceProviderToken');
491
- // Auth Process Service
492
- var MalMergeUserServiceToken = new i0.InjectionToken('MalMergeUserServiceToken');
493
- var MalCredentialFactoryProviderToken = new i0.InjectionToken('MalCredentialFactoryProviderToken');
494
- // Configuration
495
- var MalUserProvidedConfigToken = new i0.InjectionToken('MalUserProvidedConfigToken');
496
- var MalSharedConfigToken = new i0.InjectionToken('MalSharedConfigToken');
497
- // UI Providers
498
- var MalLoadingUIProviderToken = new i0.InjectionToken('MalLoadingUIProviderToken');
499
- var MalAlertsUIProviderToken = new i0.InjectionToken('MalAlertsUIProviderToken');
500
- var MalPickerUIProviderToken = new i0.InjectionToken('MalPickerMalPickerUIProviderTokenUIProvider');
501
- var MalToastUIProviderToken = new i0.InjectionToken('MalToastUIProviderToken');
502
- var MalLegaliyDialogUIProiderToken = new i0.InjectionToken("MalLegaliyDialogUIProiderToken");
503
-
504
- var AnalyticsService = /** @class */ (function () {
505
- function AnalyticsService(analytics) {
506
- var _this = this;
507
- this.analytics = analytics;
508
- // Analytics NoOp
509
- this.logEvent = function (name, params) { return __awaiter(_this, void 0, void 0, function () { return __generator(this, function (_a) {
510
- console.log('NotLogged:LogEvent ' + name, params);
511
- return [2 /*return*/];
512
- }); }); };
513
- this.setScreenName = function (screenName, screenClass) { return Promise.resolve(); };
514
- this.setUserId = function (userId) { };
515
- if (this.analytics) {
516
- this.logEvent = this.analytics.logEvent;
517
- this.setScreenName = this.analytics.setScreenName;
518
- this.setUserId = this.analytics.setUserId;
519
- }
520
- }
521
- return AnalyticsService;
522
- }());
523
- AnalyticsService.decorators = [
524
- { type: i0.Injectable }
525
- ];
526
- AnalyticsService.ctorParameters = function () { return [
527
- { type: undefined, decorators: [{ type: i0.Optional }, { type: i0.Inject, args: [i0.forwardRef(function () { return MalAnalyticsProviderToken; }),] }] }
528
- ]; };
529
-
530
- var CrashlyticsService = /** @class */ (function () {
531
- function CrashlyticsService(crashlyticsProvider) {
532
- this.crashlyticsProvider = crashlyticsProvider;
533
- // Crashlyitcs
534
- this._recordException = function (_options) { return Promise.resolve(); };
535
- this._addLogMessage = function (message) { return Promise.resolve(); };
536
- this._setUserId = function (uid) { };
537
- if (this.crashlyticsProvider) {
538
- this._recordException = this.crashlyticsProvider.recordException;
539
- this._addLogMessage = this.crashlyticsProvider.addLogMessage;
540
- }
541
- }
542
- CrashlyticsService.prototype.setUserId = function (uid) {
543
- this._setUserId(uid);
544
- };
545
- CrashlyticsService.prototype.recordException = function (options) {
546
- var e = { message: 'An unknown error occured' };
547
- if ('string' === typeof options) {
548
- e.message = options;
549
- }
550
- else if (options instanceof Error) {
551
- e.message = options.message;
552
- }
553
- else if (e.message) {
554
- e = options;
555
- }
556
- return this._recordException(e);
557
- };
558
- CrashlyticsService.prototype.addLogMessage = function (message) {
559
- console.log('addLogMessage ' + message);
560
- return this._addLogMessage(message);
561
- };
562
- return CrashlyticsService;
563
- }());
564
- CrashlyticsService.decorators = [
565
- { type: i0.Injectable }
566
- ];
567
- CrashlyticsService.ctorParameters = function () { return [
568
- { type: undefined, decorators: [{ type: i0.Optional }, { type: i0.Inject, args: [i0.forwardRef(function () { return MalCrashlyticsProviderToken; }),] }] }
569
- ]; };
570
-
571
- var PerformanceTraceNoop = /** @class */ (function () {
572
- function PerformanceTraceNoop() {
573
- }
574
- PerformanceTraceNoop.prototype.start = function () { };
575
- PerformanceTraceNoop.prototype.stop = function () { };
576
- PerformanceTraceNoop.prototype.putAttribute = function (key, value) { };
577
- return PerformanceTraceNoop;
578
- }());
579
- var PerformanceService = /** @class */ (function () {
580
- function PerformanceService(performanceProvider) {
581
- this.dataCollectionEnabled = Promise.resolve(false);
582
- if (performanceProvider) {
583
- this.createTrace = performanceProvider.trace;
584
- }
585
- }
586
- PerformanceService.prototype.createTrace = function (label) {
587
- return Promise.resolve(new PerformanceTraceNoop());
588
- };
589
- return PerformanceService;
590
- }());
591
- PerformanceService.ɵprov = i0.ɵɵdefineInjectable({ factory: function PerformanceService_Factory() { return new PerformanceService(i0.ɵɵinject(i1$1.AngularFirePerformance, 8)); }, token: PerformanceService, providedIn: "root" });
592
- PerformanceService.decorators = [
593
- { type: i0.Injectable, args: [{ providedIn: 'root' },] }
594
- ];
595
- PerformanceService.ctorParameters = function () { return [
596
- { type: i1$1.AngularFirePerformance, decorators: [{ type: i0.Optional }] }
597
- ]; };
598
-
599
- var FirebaseService = /** @class */ (function () {
600
- function FirebaseService(crashlyticsService, analyticsService, performanceService) {
601
- this.crashlyticsService = crashlyticsService;
602
- this.analyticsService = analyticsService;
603
- this.performanceService = performanceService;
604
- this.recordException = this.crashlyticsService.recordException.bind(this.crashlyticsService);
605
- this.addLogMessage = this.crashlyticsService.addLogMessage.bind(this.crashlyticsService);
606
- this.setScreenName = this.analyticsService.setScreenName.bind(this.analyticsService);
607
- this.logEvent = this.analyticsService.logEvent.bind(this.analyticsService);
608
- this.createTrace = this.performanceService.createTrace;
609
- }
610
- FirebaseService.prototype.setUserId = function (userId) {
611
- return __awaiter(this, void 0, void 0, function () {
612
- return __generator(this, function (_a) {
613
- this.analyticsService.setUserId(userId);
614
- this.crashlyticsService.setUserId(userId);
615
- return [2 /*return*/];
616
- });
617
- });
618
- };
619
- return FirebaseService;
620
- }());
621
- FirebaseService.ɵprov = i0.ɵɵdefineInjectable({ factory: function FirebaseService_Factory() { return new FirebaseService(i0.ɵɵinject(CrashlyticsService), i0.ɵɵinject(AnalyticsService), i0.ɵɵinject(PerformanceService)); }, token: FirebaseService, providedIn: "root" });
622
- FirebaseService.decorators = [
623
- { type: i0.Injectable, args: [{ providedIn: 'root' },] }
624
- ];
625
- FirebaseService.ctorParameters = function () { return [
626
- { type: CrashlyticsService },
627
- { type: AnalyticsService },
628
- { type: PerformanceService }
629
- ]; };
630
-
631
- var USER_COLLECTION = '/users';
632
- var FirestoreSyncService = /** @class */ (function () {
633
- function FirestoreSyncService(afs, fire) {
634
- this.afs = afs;
635
- this.fire = fire;
636
- }
637
- FirestoreSyncService.prototype.getUserData = function (uid) {
638
- return __awaiter(this, void 0, void 0, function () {
639
- var doc, error_1;
640
- return __generator(this, function (_a) {
641
- switch (_a.label) {
642
- case 0:
643
- _a.trys.push([0, 2, , 3]);
644
- return [4 /*yield*/, this.getUserDocRefByUID(uid).get().toPromise()];
645
- case 1:
646
- doc = _a.sent();
647
- return [2 /*return*/, doc.data() || null];
648
- case 2:
649
- error_1 = _a.sent();
650
- this.fire.recordException(error_1);
651
- return [2 /*return*/, null];
652
- case 3: return [2 /*return*/];
653
- }
654
- });
655
- });
656
- };
657
- FirestoreSyncService.prototype.getUserDocRefByUID = function (uid) {
658
- return this.afs.doc(USER_COLLECTION + "/" + uid);
659
- };
660
- FirestoreSyncService.prototype.setUserData = function (uid, user, options) {
661
- return __awaiter(this, void 0, void 0, function () {
662
- return __generator(this, function (_a) {
663
- try {
664
- return [2 /*return*/, this.afs.doc(USER_COLLECTION + "/" + uid).set(user, options)];
665
- }
666
- catch (error) {
667
- this.fire.recordException(error);
668
- }
669
- return [2 /*return*/];
670
- });
671
- });
672
- };
673
- FirestoreSyncService.prototype.updateUserData = function (uid, user) {
674
- return __awaiter(this, void 0, void 0, function () {
675
- return __generator(this, function (_a) {
676
- try {
677
- return [2 /*return*/, this.getUserDocRefByUID(uid).update(Object.assign(Object.assign({}, user), { uid: uid }))];
678
- }
679
- catch (error) {
680
- this.fire.recordException(error);
681
- }
682
- return [2 /*return*/];
683
- });
684
- });
685
- };
686
- return FirestoreSyncService;
687
- }());
688
- FirestoreSyncService.ɵprov = i0.ɵɵdefineInjectable({ factory: function FirestoreSyncService_Factory() { return new FirestoreSyncService(i0.ɵɵinject(i1$2.AngularFirestore), i0.ɵɵinject(FirebaseService)); }, token: FirestoreSyncService, providedIn: "root" });
689
- FirestoreSyncService.decorators = [
690
- { type: i0.Injectable, args: [{
691
- providedIn: 'root'
692
- },] }
693
- ];
694
- FirestoreSyncService.ctorParameters = function () { return [
695
- { type: i1$2.AngularFirestore },
696
- { type: FirebaseService }
697
- ]; };
698
-
699
- var UiService = /** @class */ (function () {
700
- function UiService(toastService, alertService, loadingService, legalityDialog, fire) {
701
- this.toastService = toastService;
702
- this.alertService = alertService;
703
- this.loadingService = loadingService;
704
- this.legalityDialog = legalityDialog;
705
- this.fire = fire;
706
- this.toast = this.toastService.toast.bind(this.toastService);
707
- this.createToast = this.toastService.createToast.bind(this.toastService);
708
- this.errorToast = this.toastService.errorToast.bind(this.toastService);
709
- this.okAlert = this.alertService.okAlert.bind(this.alertService);
710
- this.infoAlert = this.alertService.infoAlert.bind(this.alertService);
711
- this.errorAlert = this.alertService.errorAlert.bind(this.alertService);
712
- this.textboxInputAlert = this.alertService.textboxInputAlert.bind(this.alertService);
713
- this.yesNoAlert = this.alertService.yesNoAlert.bind(this.alertService);
714
- this.createLoading = this.loadingService.createLoading.bind(this.loadingService);
715
- this.watchLoading = this.loadingService.watchLoading.bind(this.loadingService);
716
- this.confirmTos = this.legalityDialog.confirmTos.bind(this.legalityDialog);
717
- }
718
- UiService.prototype.logError = function (error, messagePrefix) {
719
- console.log(error);
720
- this.fire.recordException(error);
721
- if (messagePrefix !== null) {
722
- this.toastService.errorToast(error, messagePrefix);
723
- }
724
- };
725
- return UiService;
726
- }());
727
- UiService.ɵprov = i0.ɵɵdefineInjectable({ factory: function UiService_Factory() { return new UiService(i0.ɵɵinject(MalToastUIProviderToken), i0.ɵɵinject(MalAlertsUIProviderToken), i0.ɵɵinject(MalLoadingUIProviderToken), i0.ɵɵinject(MalLegaliyDialogUIProiderToken), i0.ɵɵinject(FirebaseService)); }, token: UiService, providedIn: "root" });
728
- UiService.decorators = [
729
- { type: i0.Injectable, args: [{ providedIn: 'root' },] }
730
- ];
731
- UiService.ctorParameters = function () { return [
732
- { type: undefined, decorators: [{ type: i0.Inject, args: [i0.forwardRef(function () { return MalToastUIProviderToken; }),] }] },
733
- { type: undefined, decorators: [{ type: i0.Inject, args: [i0.forwardRef(function () { return MalAlertsUIProviderToken; }),] }] },
734
- { type: undefined, decorators: [{ type: i0.Inject, args: [i0.forwardRef(function () { return MalLoadingUIProviderToken; }),] }] },
735
- { type: undefined, decorators: [{ type: i0.Inject, args: [i0.forwardRef(function () { return MalLegaliyDialogUIProiderToken; }),] }] },
736
- { type: FirebaseService }
737
- ]; };
738
-
739
- var AuthProcessService = /** @class */ (function () {
740
- function AuthProcessService(config, mergeService, credFactory, fireStoreService, afa, // TODO should be private
741
- fire, ui) {
742
- var _this = this;
743
- this.config = config;
744
- this.mergeService = mergeService;
745
- this.credFactory = credFactory;
746
- this.fireStoreService = fireStoreService;
747
- this.afa = afa;
748
- this.fire = fire;
749
- this.ui = ui;
750
- this.onErrorEmitter = new i0.EventEmitter();
751
- this.onSignInEmitter = new i0.EventEmitter();
752
- this.onRegisterEmitter = new i0.EventEmitter();
753
- this.onSignOutEmitter = new i0.EventEmitter();
754
- this.onUserUpdatedEmitter = new i0.EventEmitter();
755
- this.onUserDeletedEmitter = new i0.EventEmitter();
756
- this.showProfileDialog = new i0.EventEmitter();
757
- /**
758
- * Useful to know about auth state even between reloads.
759
- *
760
- **/
761
- this._user$ = new rxjs.BehaviorSubject(null);
762
- this.user$ = this.afa.user;
763
- /**
764
- * Useful to know about auth state even between reloads.
765
- **/
766
- this._authState$ = new rxjs.BehaviorSubject(null);
767
- this.authState$ = this.afa.authState;
768
- /**
769
- * Obersable for current user - that only emits when the uid changes
770
- * Useful to reset session info when user changes.
771
- */
772
- this.uid$ = this.user$.pipe(operators.map(function (user) { return (user === null || user === void 0 ? void 0 : user.uid) || null; }), operators.distinctUntilChanged());
773
- /**
774
- * UserInterface helper observables - indicating what user actions are currently permitted and
775
- * the current status of authentication.
776
- */
777
- this.isLoggedIn$ = this.user$.pipe(operators.map(function (user) { return null !== user; }));
778
- this.isAnonymous$ = this.user$.pipe(operators.map(function (user) { return null !== user && user.isAnonymous; }));
779
- this.isNamedUser$ = this.user$.pipe(operators.map(function (user) { return null !== user && !user.isAnonymous; }));
780
- this.isNotNamedUser$ = this.user$.pipe(operators.map(function (user) { return null === user || user.isAnonymous; }));
781
- this.canEdit$ = this.isLoggedIn$;
782
- this.canRegister$ = this.isNotNamedUser$;
783
- this.canSignIn$ = this.isLoggedIn$.pipe(operators.map(function (isLoggedIn) { return !isLoggedIn; }));
784
- this.canSignInAsGuest$ = this.isLoggedIn$.pipe(operators.map(function (isLoggedIn) { return !isLoggedIn && _this.config.authUi.guestEnabled; }));
785
- this.canSignOut$ = this.isNamedUser$;
786
- /**
787
- * Observable. Emits whenever currentUser signsOut
788
- */
789
- this.onSignOut$ = this.authState$.pipe(operators.filter(function (user) { return user === null; }), operators.map(function () { return; }));
790
- /**
791
- * Observable emits whenever a new user signsIn
792
- */
793
- this.onSignIn$ = this.authState$.pipe(operators.filter(function (user) { return null !== user; }), operators.map(function (user) { return user; }));
794
- this.tokenRefreshed$ = new rxjs.Subject();
795
- this.afa.user.subscribe(function (user) { return _this._user$.next(user); });
796
- this.afa.authState.subscribe(function (authState) { return _this._authState$.next(authState); });
797
- this.authState$.subscribe(function (user) {
798
- _this.fire.setUserId((user === null || user === void 0 ? void 0 : user.uid) || null);
799
- });
800
- this.onSignOut$.subscribe(function () { return _this.onSignOutEmitter.emit(); });
801
- }
802
- Object.defineProperty(AuthProcessService.prototype, "user", {
803
- get: function () {
804
- return this._user$.value;
805
- },
806
- enumerable: false,
807
- configurable: true
808
- });
809
- Object.defineProperty(AuthProcessService.prototype, "reauthenticateProviders$", {
810
- get: function () {
811
- return this.user$.pipe(operators.map(function (user) { return ((user === null || user === void 0 ? void 0 : user.providerData) || [])
812
- .map(function (item) {
813
- switch (item === null || item === void 0 ? void 0 : item.providerId) {
814
- case 'google.com': return exports.AuthProvider.Google;
815
- default:
816
- console.log('NO MATCH', item);
817
- return;
818
- }
819
- })
820
- .filter(function (item) { return !!item; }); }));
821
- },
822
- enumerable: false,
823
- configurable: true
824
- });
825
- Object.defineProperty(AuthProcessService.prototype, "isWebPlatform", {
826
- /**
827
- * Returns true if current platform is webplatform supported by @angular/fire
828
- */
829
- get: function () {
830
- return ['https:', 'http:', 'chrome-extension'].includes(location.protocol);
831
- },
832
- enumerable: false,
833
- configurable: true
834
- });
835
- /**
836
- * Indicates if the specified provider is supported on the current platform
837
- */
838
- AuthProcessService.prototype.isProviderSupported = function (provider) {
839
- return __awaiter(this, void 0, void 0, function () {
840
- var _b, _c, _d;
841
- return __generator(this, function (_e) {
842
- switch (_e.label) {
843
- case 0:
844
- _b = (this.config.authUi.supportedProviders === exports.AuthProvider.ALL || this.config.authUi.supportedProviders.includes(provider));
845
- if (!_b) return [3 /*break*/, 4];
846
- _c = this.isWebPlatform;
847
- if (_c) return [3 /*break*/, 3];
848
- _d = this.credFactory;
849
- if (!_d) return [3 /*break*/, 2];
850
- return [4 /*yield*/, this.credFactory.isProviderSupported(provider)];
851
- case 1:
852
- _d = (_e.sent());
853
- _e.label = 2;
854
- case 2:
855
- _c = (_d);
856
- _e.label = 3;
857
- case 3:
858
- _b = (_c);
859
- _e.label = 4;
860
- case 4: return [2 /*return*/, _b];
861
- }
862
- });
863
- });
864
- };
865
- AuthProcessService.prototype.refreshToken = function () {
866
- return __awaiter(this, void 0, void 0, function () {
867
- var user;
868
- return __generator(this, function (_b) {
869
- switch (_b.label) {
870
- case 0: return [4 /*yield*/, this.afa.currentUser];
871
- case 1:
872
- user = _b.sent();
873
- if (!user) return [3 /*break*/, 4];
874
- return [4 /*yield*/, user.getIdToken(true)];
875
- case 2:
876
- _b.sent();
877
- return [4 /*yield*/, this.tokenRefreshed$.next()];
878
- case 3:
879
- _b.sent();
880
- _b.label = 4;
881
- case 4: return [2 /*return*/];
882
- }
883
- });
884
- });
885
- };
886
- AuthProcessService.prototype.selectCurrentUserClaim = function (claim) {
887
- var _this = this;
888
- return new rxjs.Observable(function (subscriber) {
889
- var handleTokenRefresh = function (user) { return __awaiter(_this, void 0, void 0, function () {
890
- var token;
891
- return __generator(this, function (_b) {
892
- switch (_b.label) {
893
- case 0:
894
- if (!user) return [3 /*break*/, 2];
895
- return [4 /*yield*/, user.getIdTokenResult()];
896
- case 1:
897
- token = _b.sent();
898
- subscriber.next(token.claims[claim]);
899
- return [3 /*break*/, 3];
900
- case 2:
901
- subscriber.next(null);
902
- _b.label = 3;
903
- case 3: return [2 /*return*/];
904
- }
905
- });
906
- }); };
907
- _this.tokenRefreshed$.subscribe(function () { return __awaiter(_this, void 0, void 0, function () {
908
- var user;
909
- return __generator(this, function (_b) {
910
- switch (_b.label) {
911
- case 0: return [4 /*yield*/, this.afa.currentUser];
912
- case 1:
913
- user = _b.sent();
914
- return [4 /*yield*/, handleTokenRefresh(user)];
915
- case 2:
916
- _b.sent();
917
- return [2 /*return*/];
918
- }
919
- });
920
- }); });
921
- _this.afa.user.subscribe(function (user) { return __awaiter(_this, void 0, void 0, function () {
922
- return __generator(this, function (_b) {
923
- switch (_b.label) {
924
- case 0: return [4 /*yield*/, handleTokenRefresh(user)];
925
- case 1:
926
- _b.sent();
927
- return [2 /*return*/];
928
- }
929
- });
930
- }); });
931
- });
932
- };
933
- AuthProcessService.prototype.getCurrentUserClaim = function (claim) {
934
- return this.selectCurrentUserClaim(claim).pipe(operators.take(1)).toPromise();
935
- };
936
- /**
937
- * Reset the password of currently authenticated user via email
938
- *
939
- * @param email - the email to reset
940
- */
941
- AuthProcessService.prototype.resetPassword = function (email) {
942
- return __awaiter(this, void 0, void 0, function () {
943
- var error_1;
944
- return __generator(this, function (_b) {
945
- switch (_b.label) {
946
- case 0:
947
- _b.trys.push([0, 1, , 3]);
948
- this.fire.addLogMessage('Password reset email sent');
949
- this.afa.sendPasswordResetEmail(email);
950
- this.ui.toast('auth.resetPassword.onResetRequestedTo', { duration: this.config.authUi.toastDefaultDurationMil, interpolateParams: { email: email }, position: 'bottom' });
951
- return [3 /*break*/, 3];
952
- case 1:
953
- error_1 = _b.sent();
954
- return [4 /*yield*/, this.handleError(error_1)];
955
- case 2:
956
- _b.sent();
957
- return [3 /*break*/, 3];
958
- case 3: return [2 /*return*/];
959
- }
960
- });
961
- });
962
- };
963
- /**
964
- * General sign in mechanism to authenticate the users with a firebase project
965
- * using a traditional way, via username and password or by using an authentication provider
966
- * like google, facebook, twitter and github
967
- *
968
- * [Current State -> Target State]
969
- * Null -> Anon/named: OK
970
- * Anon -> Anon: Throws Error
971
- * Anon -> Named: Triggers MergeService
972
- * Named -> Any: Throws Error
973
- *
974
- * @param provider - the provider to authenticate with (google, facebook, twitter, github)
975
- * @param credentials optional email and password
976
- */
977
- AuthProcessService.prototype.signInWith = function (provider, options) {
978
- return __awaiter(this, void 0, void 0, function () {
979
- var loading, userCred, currentUser, mergeContext, _b, _c, factoryCred, error_2, error_3;
980
- return __generator(this, function (_d) {
981
- switch (_d.label) {
982
- case 0:
983
- this.fire.addLogMessage("SignInWithProvider; provider=" + provider);
984
- return [4 /*yield*/, this.ui.createLoading()];
985
- case 1:
986
- loading = _d.sent();
987
- _d.label = 2;
988
- case 2:
989
- _d.trys.push([2, 43, , 46]);
990
- userCred = null;
991
- return [4 /*yield*/, this.afa.currentUser];
992
- case 3:
993
- currentUser = _d.sent();
994
- mergeContext = null;
995
- if (!(currentUser && currentUser.isAnonymous && this.mergeService && provider !== exports.AuthProvider.ANONYMOUS)) return [3 /*break*/, 5];
996
- return [4 /*yield*/, this.mergeService.prepareSource(currentUser)];
997
- case 4:
998
- mergeContext = _d.sent();
999
- _d.label = 5;
1000
- case 5:
1001
- _b = provider;
1002
- switch (_b) {
1003
- case exports.AuthProvider.ANONYMOUS: return [3 /*break*/, 6];
1004
- case exports.AuthProvider.EmailAndPassword: return [3 /*break*/, 12];
1005
- case exports.AuthProvider.PhoneNumber: return [3 /*break*/, 18];
1006
- }
1007
- return [3 /*break*/, 19];
1008
- case 6:
1009
- if (currentUser) {
1010
- throw new Error('Cannot signIn anonymously whilst already signedIn, SignOut first');
1011
- }
1012
- return [4 /*yield*/, this.confirmTos(null, options)];
1013
- case 7:
1014
- if (!_d.sent()) return [3 /*break*/, 11];
1015
- loading.present();
1016
- return [4 /*yield*/, this.afa.signInAnonymously()];
1017
- case 8:
1018
- userCred = _d.sent();
1019
- return [4 /*yield*/, loading.dismiss()];
1020
- case 9:
1021
- _d.sent();
1022
- return [4 /*yield*/, this.confirmTos(userCred, { skipTosCheck: true })];
1023
- case 10:
1024
- _d.sent(); // Save tosAcceptance in firestore
1025
- _d.label = 11;
1026
- case 11: return [3 /*break*/, 35];
1027
- case 12:
1028
- if (currentUser && !currentUser.isAnonymous) {
1029
- throw new Error('Cannot signIn whilst already signedIn, SignOut first');
1030
- }
1031
- if (!(options === null || options === void 0 ? void 0 : options.credentials)) {
1032
- throw new Error('Credentials are required when signing in with AuthProvider.EmailAndPassword');
1033
- }
1034
- loading.present();
1035
- return [4 /*yield*/, this.afa.signInWithEmailAndPassword(options.credentials.email, options.credentials.password)];
1036
- case 13:
1037
- userCred = _d.sent();
1038
- return [4 /*yield*/, loading.dismiss()];
1039
- case 14:
1040
- _d.sent();
1041
- return [4 /*yield*/, this.confirmTos(userCred, options)];
1042
- case 15:
1043
- if (!!(_d.sent())) return [3 /*break*/, 17];
1044
- return [4 /*yield*/, this.signOut()];
1045
- case 16:
1046
- _d.sent();
1047
- userCred = null;
1048
- _d.label = 17;
1049
- case 17:
1050
- ;
1051
- return [3 /*break*/, 35];
1052
- case 18:
1053
- // coming soon - see feature/sms branch
1054
- return [3 /*break*/, 35];
1055
- case 19:
1056
- if (currentUser && !currentUser.isAnonymous) {
1057
- throw new Error('Cannot signIn whilst already signedIn, SignOut first');
1058
- }
1059
- _c = this.credFactory;
1060
- if (!_c) return [3 /*break*/, 21];
1061
- return [4 /*yield*/, this.credFactory.isProviderSupported(provider)];
1062
- case 20:
1063
- _c = (_d.sent());
1064
- _d.label = 21;
1065
- case 21:
1066
- if (!_c) return [3 /*break*/, 26];
1067
- loading.present();
1068
- return [4 /*yield*/, this.credFactory.getCredential(provider)];
1069
- case 22:
1070
- factoryCred = _d.sent();
1071
- if (!factoryCred) return [3 /*break*/, 24];
1072
- return [4 /*yield*/, this.afa.signInWithCredential(factoryCred)];
1073
- case 23:
1074
- userCred = _d.sent();
1075
- _d.label = 24;
1076
- case 24: return [4 /*yield*/, loading.dismiss()];
1077
- case 25:
1078
- _d.sent();
1079
- return [3 /*break*/, 30];
1080
- case 26:
1081
- if (!this.isWebPlatform) return [3 /*break*/, 29];
1082
- loading.present();
1083
- return [4 /*yield*/, this.afa.signInWithPopup(this.getAuthProvider(provider))];
1084
- case 27:
1085
- userCred = _d.sent();
1086
- return [4 /*yield*/, loading.dismiss()];
1087
- case 28:
1088
- _d.sent();
1089
- return [3 /*break*/, 30];
1090
- case 29: throw new Error('A CredentialFactory is required to use AuthProcessService on a non-web platform');
1091
- case 30: return [4 /*yield*/, loading.dismiss()];
1092
- case 31:
1093
- _d.sent();
1094
- return [4 /*yield*/, this.confirmTos(userCred, options)];
1095
- case 32:
1096
- if (!!(_d.sent())) return [3 /*break*/, 34];
1097
- return [4 /*yield*/, this.signOut()];
1098
- case 33:
1099
- _d.sent();
1100
- userCred = null;
1101
- _d.label = 34;
1102
- case 34:
1103
- ;
1104
- return [3 /*break*/, 35];
1105
- case 35:
1106
- if (!userCred) return [3 /*break*/, 41];
1107
- return [4 /*yield*/, this.handleSignInSuccess(userCred)];
1108
- case 36:
1109
- _d.sent();
1110
- if (!(userCred.user && mergeContext && this.mergeService)) return [3 /*break*/, 40];
1111
- _d.label = 37;
1112
- case 37:
1113
- _d.trys.push([37, 39, , 40]);
1114
- return [4 /*yield*/, this.mergeService.applyToTarget(userCred.user, mergeContext)];
1115
- case 38:
1116
- _d.sent();
1117
- return [3 /*break*/, 40];
1118
- case 39:
1119
- error_2 = _d.sent();
1120
- // If a failure occurs in merge applyToTarget we can't do much about it (we are already logged in as new user)
1121
- // but we should at least log it. The onus is really on the applyToTarget function to handle it's own errors.
1122
- this.fire.recordException(error_2);
1123
- return [3 /*break*/, 40];
1124
- case 40:
1125
- this.onSignInEmitter.emit(userCred.user);
1126
- _d.label = 41;
1127
- case 41: return [4 /*yield*/, loading.dismiss()];
1128
- case 42:
1129
- _d.sent();
1130
- return [2 /*return*/, userCred || null];
1131
- case 43:
1132
- error_3 = _d.sent();
1133
- // code auth/user-not-found
1134
- return [4 /*yield*/, this.handleError(error_3)];
1135
- case 44:
1136
- // code auth/user-not-found
1137
- _d.sent();
1138
- return [4 /*yield*/, loading.dismiss()];
1139
- case 45:
1140
- _d.sent();
1141
- return [2 /*return*/, null];
1142
- case 46: return [2 /*return*/];
1143
- }
1144
- });
1145
- });
1146
- };
1147
- /**
1148
- */
1149
- AuthProcessService.prototype.reauthenicateWithProvider = function (provider, options) {
1150
- return __awaiter(this, void 0, void 0, function () {
1151
- var loading, userCred, currentUser, _b, authCred, _c, factoryCred, error_4;
1152
- return __generator(this, function (_d) {
1153
- switch (_d.label) {
1154
- case 0:
1155
- this.fire.addLogMessage("reauthenicateWithProvider; provider=" + provider);
1156
- return [4 /*yield*/, this.ui.createLoading()];
1157
- case 1:
1158
- loading = _d.sent();
1159
- _d.label = 2;
1160
- case 2:
1161
- _d.trys.push([2, 20, , 23]);
1162
- userCred = null;
1163
- return [4 /*yield*/, this.afa.currentUser];
1164
- case 3:
1165
- currentUser = _d.sent();
1166
- if (!currentUser || currentUser.isAnonymous) {
1167
- throw new Error('Caanot reauthticate if no currentUser or currentUser is anonymous');
1168
- }
1169
- loading.present();
1170
- _b = provider;
1171
- switch (_b) {
1172
- case exports.AuthProvider.ANONYMOUS: return [3 /*break*/, 4];
1173
- case exports.AuthProvider.EmailAndPassword: return [3 /*break*/, 5];
1174
- case exports.AuthProvider.PhoneNumber: return [3 /*break*/, 7];
1175
- }
1176
- return [3 /*break*/, 8];
1177
- case 4: throw new Error('Cannot reauthenticate with anonymous Credentials');
1178
- case 5:
1179
- if (!(options === null || options === void 0 ? void 0 : options.credentials)) {
1180
- throw new Error('Credentials are required when signing in with AuthProvider.EmailAndPassword');
1181
- }
1182
- if (!currentUser.email) {
1183
- throw new Error('Cannot reauthenticate with email for an account without email');
1184
- }
1185
- if (!app.firebase.auth) {
1186
- throw new Error('firebase.auth is undefined');
1187
- }
1188
- this.fire.addLogMessage("creating email credential with firebase; email=" + options.credentials.email);
1189
- authCred = app.firebase.auth.EmailAuthProvider.credential(currentUser.email, options.credentials.password);
1190
- return [4 /*yield*/, currentUser.reauthenticateWithCredential(authCred)];
1191
- case 6:
1192
- userCred = _d.sent();
1193
- return [3 /*break*/, 18];
1194
- case 7:
1195
- // coming soon - see feature/sms branch
1196
- return [3 /*break*/, 18];
1197
- case 8:
1198
- _c = this.credFactory;
1199
- if (!_c) return [3 /*break*/, 10];
1200
- return [4 /*yield*/, this.credFactory.isProviderSupported(provider)];
1201
- case 9:
1202
- _c = (_d.sent());
1203
- _d.label = 10;
1204
- case 10:
1205
- if (!_c) return [3 /*break*/, 14];
1206
- return [4 /*yield*/, this.credFactory.getCredential(provider)];
1207
- case 11:
1208
- factoryCred = _d.sent();
1209
- if (!factoryCred) return [3 /*break*/, 13];
1210
- return [4 /*yield*/, currentUser.reauthenticateWithCredential(factoryCred)];
1211
- case 12:
1212
- userCred = _d.sent();
1213
- _d.label = 13;
1214
- case 13: return [3 /*break*/, 17];
1215
- case 14:
1216
- if (!this.isWebPlatform) return [3 /*break*/, 16];
1217
- return [4 /*yield*/, currentUser.reauthenticateWithPopup(this.getAuthProvider(provider))];
1218
- case 15:
1219
- userCred = _d.sent();
1220
- return [3 /*break*/, 17];
1221
- case 16: throw new Error('A CredentialFactory is required to use AuthProcessService on a non-web platform');
1222
- case 17: return [3 /*break*/, 18];
1223
- case 18: return [4 /*yield*/, loading.dismiss()];
1224
- case 19:
1225
- _d.sent();
1226
- return [2 /*return*/, userCred || null];
1227
- case 20:
1228
- error_4 = _d.sent();
1229
- // code auth/user-not-found
1230
- return [4 /*yield*/, this.handleError(error_4)];
1231
- case 21:
1232
- // code auth/user-not-found
1233
- _d.sent();
1234
- return [4 /*yield*/, loading.dismiss()];
1235
- case 22:
1236
- _d.sent();
1237
- return [2 /*return*/, null];
1238
- case 23: return [2 /*return*/];
1239
- }
1240
- });
1241
- });
1242
- };
1243
- /**
1244
- * Link the current user to credentials from another auth provider.
1245
- *
1246
- * @param provider Provider to link.
1247
- */
1248
- AuthProcessService.prototype.linkCurrentUserToProvider = function (provider, options) {
1249
- return __awaiter(this, void 0, void 0, function () {
1250
- var loading, currentUser, userCred, _b, authCred, _c, factoryCred, userData, error_5;
1251
- return __generator(this, function (_d) {
1252
- switch (_d.label) {
1253
- case 0:
1254
- this.fire.addLogMessage("Linking current anon user to provider; provider=" + provider);
1255
- return [4 /*yield*/, this.ui.createLoading()];
1256
- case 1:
1257
- loading = _d.sent();
1258
- _d.label = 2;
1259
- case 2:
1260
- _d.trys.push([2, 24, , 27]);
1261
- return [4 /*yield*/, this.afa.currentUser];
1262
- case 3:
1263
- currentUser = _d.sent();
1264
- if (null === currentUser) {
1265
- throw new Error('CurrentUser is null');
1266
- }
1267
- return [4 /*yield*/, loading.present()];
1268
- case 4:
1269
- _d.sent();
1270
- userCred = null;
1271
- _b = provider;
1272
- switch (_b) {
1273
- case exports.AuthProvider.ANONYMOUS: return [3 /*break*/, 5];
1274
- case exports.AuthProvider.EmailAndPassword: return [3 /*break*/, 6];
1275
- case exports.AuthProvider.PhoneNumber: return [3 /*break*/, 8];
1276
- }
1277
- return [3 /*break*/, 9];
1278
- case 5: throw new Error('Linking anonymous user makes no sense');
1279
- case 6:
1280
- if (!(options === null || options === void 0 ? void 0 : options.credentials)) {
1281
- throw new Error('Credentials required to link to email credentential');
1282
- }
1283
- if (!app.firebase.auth) {
1284
- throw new Error('firebase.auth is undefined');
1285
- }
1286
- this.fire.addLogMessage("creating email credential with firebase; email=" + options.credentials.email);
1287
- authCred = app.firebase.auth.EmailAuthProvider.credential(options.credentials.email, options.credentials.password);
1288
- this.fire.addLogMessage("linking userCredential to email authCredential");
1289
- return [4 /*yield*/, currentUser.linkWithCredential(authCred)];
1290
- case 7:
1291
- userCred = _d.sent();
1292
- return [3 /*break*/, 18];
1293
- case 8: throw new Error('Linking phone number not suported');
1294
- case 9:
1295
- _c = this.credFactory;
1296
- if (!_c) return [3 /*break*/, 11];
1297
- return [4 /*yield*/, this.credFactory.isProviderSupported(provider)];
1298
- case 10:
1299
- _c = (_d.sent());
1300
- _d.label = 11;
1301
- case 11:
1302
- if (!_c) return [3 /*break*/, 15];
1303
- return [4 /*yield*/, this.credFactory.getCredential(provider)];
1304
- case 12:
1305
- factoryCred = _d.sent();
1306
- if (!factoryCred) return [3 /*break*/, 14];
1307
- return [4 /*yield*/, currentUser.linkWithCredential(factoryCred)];
1308
- case 13:
1309
- userCred = _d.sent();
1310
- _d.label = 14;
1311
- case 14: return [3 /*break*/, 18];
1312
- case 15:
1313
- if (!this.isWebPlatform) return [3 /*break*/, 17];
1314
- return [4 /*yield*/, currentUser.linkWithPopup(this.getAuthProvider(provider))];
1315
- case 16:
1316
- userCred = _d.sent();
1317
- return [3 /*break*/, 18];
1318
- case 17: throw new Error('A CredentialFactory is required to use AuthProcessService on a non-web platform');
1319
- case 18:
1320
- if (!(userCred && userCred.user)) return [3 /*break*/, 22];
1321
- userData = this.parseUserInfo(userCred.user);
1322
- if (!(userData.displayName
1323
- && (userCred.user.displayName !== userData.displayName || userCred.user.photoURL !== userData.displayName))) return [3 /*break*/, 20];
1324
- this.fire.addLogMessage("Updating user profile; displayName=" + userData.displayName + ", photoUrl=" + userData.photoURL); // tslint:disable-line max-line-length
1325
- return [4 /*yield*/, this.updateUserInfo({ displayName: userData.displayName, photoURL: userData.photoURL })];
1326
- case 19:
1327
- _d.sent();
1328
- _d.label = 20;
1329
- case 20: return [4 /*yield*/, this.handleSignInSuccess(userCred)];
1330
- case 21:
1331
- _d.sent();
1332
- _d.label = 22;
1333
- case 22: return [4 /*yield*/, loading.dismiss()];
1334
- case 23:
1335
- _d.sent();
1336
- return [2 /*return*/, userCred || null];
1337
- case 24:
1338
- error_5 = _d.sent();
1339
- // Merge
1340
- return [4 /*yield*/, this.handleError(error_5)];
1341
- case 25:
1342
- // Merge
1343
- _d.sent();
1344
- return [4 /*yield*/, loading.dismiss()];
1345
- case 26:
1346
- _d.sent();
1347
- return [2 /*return*/, null];
1348
- case 27: return [2 /*return*/];
1349
- }
1350
- });
1351
- });
1352
- };
1353
- /**
1354
- * Creates a firebase user account authenticated with the specified provider.
1355
- * If AuthProvider.EmailAndPassword is specified credentials and displayname must also be provided.
1356
- */
1357
- AuthProcessService.prototype.registerWith = function (provider, options) {
1358
- return __awaiter(this, void 0, void 0, function () {
1359
- var loading, currentUser, userCred, _b, error_6;
1360
- return __generator(this, function (_c) {
1361
- switch (_c.label) {
1362
- case 0:
1363
- this.fire.addLogMessage("SigningUp with provider; provider=" + provider);
1364
- return [4 /*yield*/, this.ui.createLoading()];
1365
- case 1:
1366
- loading = _c.sent();
1367
- _c.label = 2;
1368
- case 2:
1369
- _c.trys.push([2, 20, , 23]);
1370
- return [4 /*yield*/, this.afa.currentUser];
1371
- case 3:
1372
- currentUser = _c.sent();
1373
- if (!(currentUser === null || currentUser === void 0 ? void 0 : currentUser.isAnonymous)) return [3 /*break*/, 4];
1374
- return [2 /*return*/, this.linkCurrentUserToProvider(provider, options)];
1375
- case 4:
1376
- if (!(null !== currentUser)) return [3 /*break*/, 5];
1377
- throw new Error('Cannot Register whilst signed in as a non-Anonymous user. SignOut first');
1378
- case 5: return [4 /*yield*/, this.confirmTos(null, options)];
1379
- case 6:
1380
- if (!(_c.sent())) { // No current user
1381
- this.fire.addLogMessage('User declined TOS during register');
1382
- return [2 /*return*/, null];
1383
- }
1384
- _c.label = 7;
1385
- case 7:
1386
- userCred = null;
1387
- _b = provider;
1388
- switch (_b) {
1389
- case exports.AuthProvider.EmailAndPassword: return [3 /*break*/, 8];
1390
- }
1391
- return [3 /*break*/, 17];
1392
- case 8:
1393
- if (!(options === null || options === void 0 ? void 0 : options.credentials) || !(options === null || options === void 0 ? void 0 : options.displayName)) {
1394
- throw new Error('Credentials & displayName required to SignUp by email');
1395
- }
1396
- return [4 /*yield*/, loading.present()];
1397
- case 9:
1398
- _c.sent();
1399
- this.fire.addLogMessage("creaating user with email and password; email=" + options.credentials.email);
1400
- return [4 /*yield*/, this.afa.createUserWithEmailAndPassword(options.credentials.email, options.credentials.password)];
1401
- case 10:
1402
- userCred = _c.sent();
1403
- if (null === userCred.user) {
1404
- throw new Error('User is null following successful signUp');
1405
- }
1406
- return [4 /*yield*/, this.updateUserInfo({ displayName: options.displayName })];
1407
- case 11:
1408
- _c.sent();
1409
- return [4 /*yield*/, this.confirmTos(userCred, { skipTosCheck: true })];
1410
- case 12:
1411
- _c.sent(); // To save the tosAcceptance
1412
- if (!this.config.authUi.enableEmailVerification) return [3 /*break*/, 14];
1413
- return [4 /*yield*/, userCred.user.sendEmailVerification()];
1414
- case 13:
1415
- _c.sent();
1416
- _c.label = 14;
1417
- case 14:
1418
- // Legacy fields
1419
- this.emailConfirmationSent = true;
1420
- this.emailToConfirm = userCred.user.email || undefined;
1421
- return [4 /*yield*/, this.handleSignInSuccess(userCred)];
1422
- case 15:
1423
- _c.sent();
1424
- return [4 /*yield*/, loading.dismiss()];
1425
- case 16:
1426
- _c.sent();
1427
- return [3 /*break*/, 19];
1428
- case 17: return [4 /*yield*/, this.signInWith(provider, Object.assign(Object.assign({}, options), { skipTosCheck: true }))];
1429
- case 18:
1430
- userCred = _c.sent();
1431
- _c.label = 19;
1432
- case 19:
1433
- if (userCred.user) {
1434
- this.onRegisterEmitter.emit(userCred.user);
1435
- }
1436
- return [2 /*return*/, userCred || null];
1437
- case 20:
1438
- error_6 = _c.sent();
1439
- // This is where I would handle merge
1440
- return [4 /*yield*/, this.handleError(error_6)];
1441
- case 21:
1442
- // This is where I would handle merge
1443
- _c.sent();
1444
- return [4 /*yield*/, loading.dismiss()];
1445
- case 22:
1446
- _c.sent();
1447
- return [2 /*return*/, null];
1448
- case 23: return [2 /*return*/];
1449
- }
1450
- });
1451
- });
1452
- };
1453
- /**
1454
- * Present dialog and confirm the user agress to the privacy policy and terms of service (if either configured).
1455
- * If nether configured returns true;
1456
- *
1457
- * @returns True if either user agrees to TOS/PrivacyUrl || no TOS/PrivacyUrl configured.
1458
- */
1459
- AuthProcessService.prototype.confirmTos = function (userCred, options) {
1460
- if (userCred === void 0) { userCred = null; }
1461
- if (options === void 0) { options = {}; }
1462
- var _a;
1463
- return __awaiter(this, void 0, void 0, function () {
1464
- var acceptedTos, userData, _b;
1465
- return __generator(this, function (_c) {
1466
- switch (_c.label) {
1467
- case 0:
1468
- if (!(this.config.authUi.tosUrl || this.config.authUi.privacyPolicyUrl)) return [3 /*break*/, 7];
1469
- acceptedTos = (options.skipTosCheck) ? new Date().toISOString() : null;
1470
- if (!(!acceptedTos && (userCred === null || userCred === void 0 ? void 0 : userCred.user) && !((_a = userCred === null || userCred === void 0 ? void 0 : userCred.additionalUserInfo) === null || _a === void 0 ? void 0 : _a.isNewUser) && this.config.authUi.enableFirestoreSync)) return [3 /*break*/, 2];
1471
- return [4 /*yield*/, this.fireStoreService.getUserData(userCred.user.uid)];
1472
- case 1:
1473
- userData = _c.sent();
1474
- acceptedTos = (userData === null || userData === void 0 ? void 0 : userData.acceptedTos) || null;
1475
- _c.label = 2;
1476
- case 2:
1477
- _b = !acceptedTos;
1478
- if (!_b) return [3 /*break*/, 4];
1479
- return [4 /*yield*/, this.ui.confirmTos()];
1480
- case 3:
1481
- _b = (_c.sent());
1482
- _c.label = 4;
1483
- case 4:
1484
- if (_b) {
1485
- acceptedTos = new Date().toISOString();
1486
- }
1487
- if (!((userCred === null || userCred === void 0 ? void 0 : userCred.user) && this.config.authUi.enableFirestoreSync)) return [3 /*break*/, 6];
1488
- return [4 /*yield*/, this.fireStoreService.setUserData(userCred.user.uid, { acceptedTos: acceptedTos }, { merge: true })];
1489
- case 5:
1490
- _c.sent();
1491
- _c.label = 6;
1492
- case 6: return [2 /*return*/, !!acceptedTos];
1493
- case 7: // No tosUrl || privacyPolicyUrl
1494
- return [2 /*return*/, true];
1495
- }
1496
- });
1497
- });
1498
- };
1499
- /**
1500
- * Send the currently authenticated user another verficiation email.
1501
- */
1502
- AuthProcessService.prototype.sendNewVerificationEmail = function () {
1503
- return __awaiter(this, void 0, void 0, function () {
1504
- var currentUser, error_7;
1505
- return __generator(this, function (_b) {
1506
- switch (_b.label) {
1507
- case 0:
1508
- _b.trys.push([0, 3, , 4]);
1509
- return [4 /*yield*/, this.afa.currentUser];
1510
- case 1:
1511
- currentUser = _b.sent();
1512
- if (!currentUser) {
1513
- throw new Error('No signed in user');
1514
- }
1515
- return [4 /*yield*/, currentUser.sendEmailVerification()];
1516
- case 2:
1517
- _b.sent();
1518
- return [3 /*break*/, 4];
1519
- case 3:
1520
- error_7 = _b.sent();
1521
- this.fire.recordException(error_7);
1522
- throw error_7;
1523
- case 4: return [2 /*return*/];
1524
- }
1525
- });
1526
- });
1527
- };
1528
- /**
1529
- * SignOut the currently authenticated user.
1530
- */
1531
- AuthProcessService.prototype.signOut = function () {
1532
- return __awaiter(this, void 0, void 0, function () {
1533
- var error_8;
1534
- return __generator(this, function (_b) {
1535
- switch (_b.label) {
1536
- case 0:
1537
- _b.trys.push([0, 2, , 4]);
1538
- return [4 /*yield*/, this.afa.signOut()];
1539
- case 1:
1540
- _b.sent();
1541
- if (this.credFactory) {
1542
- this.credFactory.signOut();
1543
- }
1544
- return [3 /*break*/, 4];
1545
- case 2:
1546
- error_8 = _b.sent();
1547
- return [4 /*yield*/, this.handleError(error_8)];
1548
- case 3:
1549
- _b.sent();
1550
- return [3 /*break*/, 4];
1551
- case 4: return [2 /*return*/];
1552
- }
1553
- });
1554
- });
1555
- };
1556
- /**
1557
- * Update the details for the authenticated user of in the firebase authentication and sync with firestore.
1558
- *
1559
- * @param userInfo - UserInfo object containing those properties for which change is requried. Only provider
1560
- * the properties actually to be changed. Others should be ommitted.
1561
- */
1562
- AuthProcessService.prototype.updateUserInfo = function (userInfo) {
1563
- return __awaiter(this, void 0, void 0, function () {
1564
- var user, error_9;
1565
- return __generator(this, function (_b) {
1566
- switch (_b.label) {
1567
- case 0:
1568
- _b.trys.push([0, 11, , 12]);
1569
- return [4 /*yield*/, this.afa.currentUser];
1570
- case 1:
1571
- user = _b.sent();
1572
- if (!user) {
1573
- throw new Error('No currentUser');
1574
- }
1575
- if (!userInfo.email) return [3 /*break*/, 3];
1576
- return [4 /*yield*/, user.updateEmail(userInfo.email)];
1577
- case 2:
1578
- _b.sent();
1579
- _b.label = 3;
1580
- case 3:
1581
- if (!userInfo.phoneNumber) return [3 /*break*/, 5];
1582
- return [4 /*yield*/, user.updatePhoneNumber(userInfo.phoneNumber)];
1583
- case 4:
1584
- _b.sent(); // TODO - bet this doesn't actually work
1585
- _b.label = 5;
1586
- case 5:
1587
- if (!(userInfo.displayName || userInfo.photoURL)) return [3 /*break*/, 7];
1588
- return [4 /*yield*/, user.updateProfile({
1589
- displayName: userInfo.displayName,
1590
- photoURL: userInfo.photoURL
1591
- })];
1592
- case 6:
1593
- _b.sent();
1594
- _b.label = 7;
1595
- case 7: return [4 /*yield*/, this.afa.updateCurrentUser(user)];
1596
- case 8:
1597
- _b.sent();
1598
- if (!this.config.authUi.enableFirestoreSync) return [3 /*break*/, 10];
1599
- // await this.fireStoreService.updateUserData(user.uid, this.parseUserInfo(user));
1600
- return [4 /*yield*/, this.fireStoreService.updateUserData(user.uid, {
1601
- displayName: user.displayName,
1602
- email: user.email,
1603
- photoURL: user.photoURL
1604
- })];
1605
- case 9:
1606
- // await this.fireStoreService.updateUserData(user.uid, this.parseUserInfo(user));
1607
- _b.sent();
1608
- _b.label = 10;
1609
- case 10:
1610
- this.onUserUpdatedEmitter.emit();
1611
- return [3 /*break*/, 12];
1612
- case 11:
1613
- error_9 = _b.sent();
1614
- this.fire.recordException(error_9);
1615
- return [3 /*break*/, 12];
1616
- case 12: return [2 /*return*/];
1617
- }
1618
- });
1619
- });
1620
- };
1621
- /**
1622
- * Extract UserInfo object from the User object
1623
- * If multiple providers are supplied these are amalgamated to create the most complete
1624
- * UserInfo object possible
1625
- */
1626
- AuthProcessService.prototype.parseUserInfo = function (user) {
1627
- var userInfo = {
1628
- uid: user.uid,
1629
- displayName: user.displayName,
1630
- email: user.email,
1631
- phoneNumber: user.phoneNumber,
1632
- photoURL: user.photoURL,
1633
- providerId: user.providerId
1634
- };
1635
- if (user.providerData) {
1636
- user.providerData.forEach(function (item) {
1637
- if (!userInfo.displayName && (item === null || item === void 0 ? void 0 : item.displayName)) {
1638
- userInfo.displayName = item.displayName;
1639
- }
1640
- if (!userInfo.email && (item === null || item === void 0 ? void 0 : item.email)) {
1641
- userInfo.email = item.email;
1642
- }
1643
- if (!userInfo.phoneNumber && (item === null || item === void 0 ? void 0 : item.phoneNumber)) {
1644
- userInfo.phoneNumber = item.phoneNumber;
1645
- }
1646
- if (!userInfo.photoURL && (item === null || item === void 0 ? void 0 : item.photoURL)) {
1647
- userInfo.photoURL = item.photoURL;
1648
- }
1649
- if (!userInfo.providerId && (item === null || item === void 0 ? void 0 : item.providerId)) {
1650
- userInfo.providerId = item.providerId;
1651
- }
1652
- });
1653
- }
1654
- return userInfo;
1655
- };
1656
- /**
1657
- * Returns the UserPhotoUrl, or an appropraite placeholder if not provided
1658
- * ToDo - this would probably bet better inside a user-photo component
1659
- */
1660
- AuthProcessService.prototype.getUserPhotoUrl = function () {
1661
- return this.user$.pipe(operators.map(function (user) {
1662
- if (!user) {
1663
- return null;
1664
- }
1665
- else if (user.photoURL) {
1666
- return user.photoURL;
1667
- }
1668
- else if (user.emailVerified) {
1669
- return "assets/user/" + exports.Accounts.CHECK + ".svg";
1670
- }
1671
- else if (user.isAnonymous) {
1672
- return "assets/user/" + exports.Accounts.OFF + ".svg";
1673
- }
1674
- else {
1675
- return "assets/user/" + exports.Accounts.NONE + ".svg";
1676
- }
1677
- }));
1678
- };
1679
- /**
1680
- * Common handler for successful signIn
1681
- * Refreshes FireStore User document based on current user (if enabled)
1682
- * And provides welcome back toast (if enabled)
1683
- *
1684
- * @param cred UserCredential object provided by signIn function
1685
- */
1686
- AuthProcessService.prototype.handleSignInSuccess = function (cred) {
1687
- return __awaiter(this, void 0, void 0, function () {
1688
- var successMessage;
1689
- return __generator(this, function (_b) {
1690
- if (null === cred.user) {
1691
- throw new Error('user is null whilst handling sucessful login');
1692
- }
1693
- // if (this.config.authUi.enableFirestoreSync) {
1694
- // Now done by server-side trigger await this.fireStoreService.createUserData(userData);
1695
- // try {
1696
- // const userData = this.parseUserInfo(cred.user);
1697
- // this.fire.addLogMessage(`About to create user data in firestore; user=${JSON.stringify(userData)}`);
1698
- // } catch (error) {
1699
- // this.fire.recordException(error);
1700
- // }
1701
- // }
1702
- if (this.config.authUi.toastMessageOnAuthSuccess) {
1703
- successMessage = ('string' === typeof this.config.authUi.toastMessageOnAuthSuccess)
1704
- ? this.config.authUi.toastMessageOnAuthSuccess
1705
- : "Hello " + (cred.user.displayName ? cred.user.displayName : '') + "!";
1706
- this.ui.toast(successMessage, { duration: this.config.authUi.toastDefaultDurationMil });
1707
- }
1708
- return [2 /*return*/];
1709
- });
1710
- });
1711
- };
1712
- /**
1713
- * Refresh user info. Can be useful for instance to get latest status regarding email verification.
1714
- */
1715
- AuthProcessService.prototype.reloadUserInfo = function () {
1716
- return __awaiter(this, void 0, void 0, function () {
1717
- var user;
1718
- return __generator(this, function (_b) {
1719
- switch (_b.label) {
1720
- case 0: return [4 /*yield*/, this.user$.pipe(operators.take(1)).toPromise()];
1721
- case 1:
1722
- user = _b.sent();
1723
- if (!user) return [3 /*break*/, 3];
1724
- return [4 /*yield*/, user.reload()];
1725
- case 2:
1726
- _b.sent();
1727
- _b.label = 3;
1728
- case 3: return [2 /*return*/];
1729
- }
1730
- });
1731
- });
1732
- };
1733
- /**
1734
- * Deletes the current user
1735
- */
1736
- AuthProcessService.prototype.deleteUser = function () {
1737
- return __awaiter(this, void 0, void 0, function () {
1738
- var currentUser, currentUid, error_10;
1739
- return __generator(this, function (_b) {
1740
- switch (_b.label) {
1741
- case 0: return [4 /*yield*/, this.afa.currentUser];
1742
- case 1:
1743
- currentUser = _b.sent();
1744
- currentUid = currentUser === null || currentUser === void 0 ? void 0 : currentUser.uid;
1745
- if (!currentUser || !currentUid) {
1746
- throw new Error('Unable to delete currentUser if null');
1747
- }
1748
- _b.label = 2;
1749
- case 2:
1750
- _b.trys.push([2, 4, , 5]);
1751
- // Userdata deleted by DB trigger
1752
- return [4 /*yield*/, currentUser.delete()];
1753
- case 3:
1754
- // Userdata deleted by DB trigger
1755
- _b.sent();
1756
- this.onUserDeletedEmitter.emit();
1757
- return [3 /*break*/, 5];
1758
- case 4:
1759
- error_10 = _b.sent();
1760
- if (error_10.code !== exports.FirebaseErrorCodes.requiresRecentLogin) {
1761
- this.fire.recordException(error_10);
1762
- }
1763
- throw (error_10);
1764
- case 5: return [2 /*return*/];
1765
- }
1766
- });
1767
- });
1768
- };
1769
- /**
1770
- * Logs the error and provides user error notifcation if appropriate
1771
- */
1772
- AuthProcessService.prototype.handleError = function (error) {
1773
- return __awaiter(this, void 0, void 0, function () {
1774
- var message;
1775
- return __generator(this, function (_b) {
1776
- switch (_b.label) {
1777
- case 0: return [4 /*yield*/, this.fire.recordException(error)];
1778
- case 1:
1779
- _b.sent();
1780
- this.onErrorEmitter.emit(error);
1781
- if (!this.config.authUi.toastMessageOnAuthError) return [3 /*break*/, 3];
1782
- message = 'auth.common.pleaseRetry';
1783
- if (error && typeof error === 'string') {
1784
- message = error;
1785
- }
1786
- else if (error && error.message) {
1787
- message = error.message;
1788
- }
1789
- else if (error && typeof error === 'object') {
1790
- message = JSON.stringify(error);
1791
- }
1792
- else if (error) {
1793
- message = error.toString();
1794
- }
1795
- return [4 /*yield*/, this.ui.toast(message, { duration: this.config.authUi.toastDefaultDurationMil })];
1796
- case 2:
1797
- _b.sent();
1798
- _b.label = 3;
1799
- case 3: return [2 /*return*/];
1800
- }
1801
- });
1802
- });
1803
- };
1804
- /**
1805
- * Returns a firebase auth provider object for the specified provider
1806
- */
1807
- AuthProcessService.prototype.getAuthProvider = function (provider) {
1808
- if (!app.firebase.auth) {
1809
- throw new Error('firebase.auth is undefined');
1810
- }
1811
- switch (provider) {
1812
- case exports.AuthProvider.Google: return new app.firebase.auth.GoogleAuthProvider();
1813
- case exports.AuthProvider.Apple: return new app.firebase.auth.OAuthProvider('apple.com');
1814
- case exports.AuthProvider.Facebook: return new app.firebase.auth.FacebookAuthProvider();
1815
- case exports.AuthProvider.Twitter: return new app.firebase.auth.TwitterAuthProvider();
1816
- case exports.AuthProvider.Github: return new app.firebase.auth.GithubAuthProvider();
1817
- case exports.AuthProvider.Microsoft: return new app.firebase.auth.OAuthProvider('microsoft.com');
1818
- case exports.AuthProvider.Yahoo: return new app.firebase.auth.OAuthProvider('yahoo.com');
1819
- default: throw new Error(provider + " is not available as auth provider");
1820
- }
1821
- };
1822
- return AuthProcessService;
1823
- }());
1824
- AuthProcessService.ɵprov = i0.ɵɵdefineInjectable({ factory: function AuthProcessService_Factory() { return new AuthProcessService(i0.ɵɵinject(MalSharedConfigToken), i0.ɵɵinject(MalMergeUserServiceToken, 8), i0.ɵɵinject(MalCredentialFactoryProviderToken, 8), i0.ɵɵinject(FirestoreSyncService), i0.ɵɵinject(i3.AngularFireAuth), i0.ɵɵinject(FirebaseService), i0.ɵɵinject(UiService)); }, token: AuthProcessService, providedIn: "root" });
1825
- AuthProcessService.decorators = [
1826
- { type: i0.Injectable, args: [{
1827
- providedIn: 'root',
1828
- },] }
1829
- ];
1830
- AuthProcessService.ctorParameters = function () { return [
1831
- { type: undefined, decorators: [{ type: i0.Inject, args: [i0.forwardRef(function () { return MalSharedConfigToken; }),] }] },
1832
- { type: undefined, decorators: [{ type: i0.Optional }, { type: i0.Inject, args: [i0.forwardRef(function () { return MalMergeUserServiceToken; }),] }] },
1833
- { type: undefined, decorators: [{ type: i0.Optional }, { type: i0.Inject, args: [i0.forwardRef(function () { return MalCredentialFactoryProviderToken; }),] }] },
1834
- { type: FirestoreSyncService },
1835
- { type: i3.AngularFireAuth },
1836
- { type: FirebaseService },
1837
- { type: UiService }
1838
- ]; };
1839
-
1840
- exports.DisplayWidth = void 0;
1841
- (function (DisplayWidth) {
1842
- DisplayWidth[DisplayWidth["xs"] = 1] = "xs";
1843
- DisplayWidth[DisplayWidth["sm"] = 576] = "sm";
1844
- DisplayWidth[DisplayWidth["md"] = 768] = "md";
1845
- DisplayWidth[DisplayWidth["lg"] = 992] = "lg";
1846
- DisplayWidth[DisplayWidth["xl"] = 1200] = "xl";
1847
- })(exports.DisplayWidth || (exports.DisplayWidth = {}));
1848
-
1849
- /* @Component({
1850
- template: ''
1851
- }) */
1852
- var ValueAccessorValueComponent = /** @class */ (function () {
1853
- function ValueAccessorValueComponent() {
1854
- this.valueChange = new i0.EventEmitter();
1855
- this.propagateChange = function (_) { };
1856
- this.propagateTouch = function (_) { }; // TODO - Not implemented.
1857
- this.propagateValidatorChange = function () { }; // TODO - Not implemented.
1858
- }
1859
- Object.defineProperty(ValueAccessorValueComponent.prototype, "value", {
1860
- get: function () { return this._value; },
1861
- set: function (val) {
1862
- if (val) {
1863
- this._value = val;
1864
- this.valueChange.emit(val);
1865
- this.propagateChange(val);
1866
- }
1867
- },
1868
- enumerable: false,
1869
- configurable: true
1870
- });
1871
- ValueAccessorValueComponent.prototype.validate = function (control) {
1872
- return null;
1873
- };
1874
- ValueAccessorValueComponent.prototype.writeValue = function (value) {
1875
- this.value = value;
1876
- };
1877
- ValueAccessorValueComponent.prototype.registerOnChange = function (fn) {
1878
- this.propagateChange = fn;
1879
- };
1880
- ValueAccessorValueComponent.prototype.registerOnTouched = function (fn) {
1881
- this.propagateTouch = fn;
1882
- };
1883
- ValueAccessorValueComponent.prototype.registerOnValidatorChange = function (fn) {
1884
- this.propagateValidatorChange = fn;
1885
- };
1886
- return ValueAccessorValueComponent;
1887
- }());
1888
- ValueAccessorValueComponent.propDecorators = {
1889
- value: [{ type: i0.Input }],
1890
- valueChange: [{ type: i0.Output }]
1891
- };
1892
-
1893
- /* @Component({
1894
- template: ''
1895
- }) */
1896
- var ValueAccessorControlComponent = /** @class */ (function () {
1897
- function ValueAccessorControlComponent(injector, cdRef) {
1898
- this.injector = injector;
1899
- this.cdRef = cdRef;
1900
- this.destroy$ = new rxjs.ReplaySubject();
1901
- this.valueChange = new i0.EventEmitter();
1902
- this.propagateChange = function (val) { };
1903
- this.propagateTouch = function () { };
1904
- this.propagateValidatorChange = function () { };
1905
- }
1906
- Object.defineProperty(ValueAccessorControlComponent.prototype, "_control", {
1907
- get: function () {
1908
- if (!this.control) {
1909
- throw new Error('ValueAccessorControlComponent: this.control must be eclipsed in the subclass');
1910
- }
1911
- return this.control;
1912
- },
1913
- enumerable: false,
1914
- configurable: true
1915
- });
1916
- Object.defineProperty(ValueAccessorControlComponent.prototype, "value", {
1917
- get: function () {
1918
- return this._control.value;
1919
- },
1920
- set: function (val) {
1921
- if (val) {
1922
- this._control.setValue(val);
1923
- }
1924
- else {
1925
- this._control.reset();
1926
- }
1927
- },
1928
- enumerable: false,
1929
- configurable: true
1930
- });
1931
- ValueAccessorControlComponent.prototype.ngOnInit = function () {
1932
- var _this = this;
1933
- this._control.valueChanges
1934
- .pipe(operators.takeUntil(this.destroy$))
1935
- .subscribe(function (val) {
1936
- if (_this._control.dirty) {
1937
- _this.propagateChange(val);
1938
- _this.propagateTouch();
1939
- _this.valueChange.emit(val);
1940
- }
1941
- });
1942
- this._control.statusChanges
1943
- .pipe(operators.takeUntil(this.destroy$))
1944
- .subscribe(function () { return _this.propagateValidatorChange(); });
1945
- };
1946
- ValueAccessorControlComponent.prototype.ngAfterViewInit = function () {
1947
- this.parentControl = this.injector.get(forms.NgControl, null);
1948
- this.cdRef.detectChanges();
1949
- };
1950
- ValueAccessorControlComponent.prototype.ngOnDestroy = function () {
1951
- this.destroy$.next();
1952
- this.destroy$.complete();
1953
- };
1954
- ValueAccessorControlComponent.prototype.writeValue = function (value) {
1955
- this.value = value;
1956
- };
1957
- ValueAccessorControlComponent.prototype.registerOnChange = function (fn) {
1958
- this.propagateChange = fn;
1959
- };
1960
- ValueAccessorControlComponent.prototype.registerOnTouched = function (fn) {
1961
- this.propagateTouch = fn;
1962
- };
1963
- ValueAccessorControlComponent.prototype.registerOnValidatorChange = function (fn) {
1964
- this.propagateValidatorChange = fn;
1965
- };
1966
- ValueAccessorControlComponent.prototype.setDisabledState = function (isDisabled) {
1967
- if (isDisabled) {
1968
- this._control.disable();
1969
- }
1970
- else {
1971
- this._control.enable();
1972
- }
1973
- };
1974
- ValueAccessorControlComponent.prototype.validate = function (control) {
1975
- return this._control.errors;
1976
- };
1977
- return ValueAccessorControlComponent;
1978
- }());
1979
- ValueAccessorControlComponent.propDecorators = {
1980
- value: [{ type: i0.Input }],
1981
- valueChange: [{ type: i0.Output }]
1982
- };
1983
-
1984
- var LoggedInGuard = /** @class */ (function () {
1985
- function LoggedInGuard(config, router, aps) {
1986
- this.config = config;
1987
- this.router = router;
1988
- this.aps = aps;
1989
- }
1990
- LoggedInGuard.prototype.guardOutcome = function (redirectUrl) {
1991
- var _this = this;
1992
- return this.aps.user$.pipe(operators.take(1), operators.map(function (user) {
1993
- if (user) {
1994
- if (_this.config.authUi.guardProtectedRoutesUntilEmailIsVerified && !user.emailVerified) {
1995
- if (_this.config.authUi.authGuardVerifyEmailURL) {
1996
- return _this.router.createUrlTree(["" + _this.config.authUi.authGuardVerifyEmailURL], { queryParams: { redirectUrl: redirectUrl } });
1997
- }
1998
- else if (_this.config.authUi.authGuardFallbackURL) {
1999
- return _this.router.createUrlTree(["" + _this.config.authUi.authGuardFallbackURL], { queryParams: { redirectUrl: redirectUrl } });
2000
- }
2001
- else {
2002
- return false;
2003
- }
2004
- }
2005
- else {
2006
- return true;
2007
- }
2008
- }
2009
- else {
2010
- if (_this.config.authUi.authGuardFallbackURL) {
2011
- return _this.router.createUrlTree(["" + _this.config.authUi.authGuardFallbackURL], { queryParams: { redirectUrl: redirectUrl } });
2012
- }
2013
- return false;
2014
- }
2015
- }));
2016
- };
2017
- LoggedInGuard.prototype.canLoad = function (route, segments) {
2018
- return this.guardOutcome(segments[0].parameters.url);
2019
- };
2020
- LoggedInGuard.prototype.canActivate = function (route, state) {
2021
- return this.guardOutcome(state.url);
2022
- };
2023
- return LoggedInGuard;
2024
- }());
2025
- LoggedInGuard.ɵprov = i0.ɵɵdefineInjectable({ factory: function LoggedInGuard_Factory() { return new LoggedInGuard(i0.ɵɵinject(MalSharedConfigToken), i0.ɵɵinject(i2.Router), i0.ɵɵinject(AuthProcessService)); }, token: LoggedInGuard, providedIn: "root" });
2026
- LoggedInGuard.decorators = [
2027
- { type: i0.Injectable, args: [{
2028
- providedIn: 'root'
2029
- },] }
2030
- ];
2031
- LoggedInGuard.ctorParameters = function () { return [
2032
- { type: undefined, decorators: [{ type: i0.Inject, args: [MalSharedConfigToken,] }] },
2033
- { type: i2.Router },
2034
- { type: AuthProcessService }
2035
- ]; };
2036
-
2037
- var VerifyEmailGuard = /** @class */ (function () {
2038
- function VerifyEmailGuard(config, router, aps) {
2039
- this.config = config;
2040
- this.router = router;
2041
- this.aps = aps;
2042
- }
2043
- VerifyEmailGuard.prototype.canActivate = function (route, state) {
2044
- var _this = this;
2045
- return this.aps.user$.pipe(operators.map(function (user) {
2046
- if (user
2047
- && !user.emailVerified
2048
- && !user.isAnonymous
2049
- && _this.config.authUi.authGuardVerifyEmailURL) {
2050
- return _this.router.createUrlTree(["" + _this.config.authUi.authGuardVerifyEmailURL], { queryParams: { redirectUrl: state.url } });
2051
- }
2052
- else {
2053
- return true;
2054
- }
2055
- }));
2056
- };
2057
- return VerifyEmailGuard;
2058
- }());
2059
- VerifyEmailGuard.ɵprov = i0.ɵɵdefineInjectable({ factory: function VerifyEmailGuard_Factory() { return new VerifyEmailGuard(i0.ɵɵinject(MalSharedConfigToken), i0.ɵɵinject(i2.Router), i0.ɵɵinject(AuthProcessService)); }, token: VerifyEmailGuard, providedIn: "root" });
2060
- VerifyEmailGuard.decorators = [
2061
- { type: i0.Injectable, args: [{
2062
- providedIn: 'root'
2063
- },] }
2064
- ];
2065
- VerifyEmailGuard.ctorParameters = function () { return [
2066
- { type: undefined, decorators: [{ type: i0.Inject, args: [MalSharedConfigToken,] }] },
2067
- { type: i2.Router },
2068
- { type: AuthProcessService }
2069
- ]; };
2070
-
2071
- var MODULES = [
2072
- http.HttpClientModule,
2073
- i3.AngularFireAuthModule,
2074
- i1$2.AngularFirestoreModule,
2075
- functions.AngularFireFunctionsModule
2076
- ];
2077
- var MalSharedModule = /** @class */ (function () {
2078
- function MalSharedModule() {
2079
- }
2080
- MalSharedModule.forRoot = function (config, appNameFactory) {
2081
- if (appNameFactory === void 0) { appNameFactory = function () { return undefined; }; }
2082
- var _a;
2083
- return {
2084
- ngModule: MalSharedModule,
2085
- providers: [
2086
- {
2087
- provide: MalUserProvidedConfigToken,
2088
- useValue: config
2089
- },
2090
- {
2091
- provide: MalSharedConfigToken,
2092
- useFactory: malSharedConfigFactory,
2093
- deps: [MalUserProvidedConfigToken]
2094
- },
2095
- {
2096
- provide: i1.DEFAULTS,
2097
- useValue: config.configDefaults
2098
- },
2099
- {
2100
- provide: i1.SETTINGS,
2101
- useFactory: function () { return i0.isDevMode() ? { minimumFetchIntervalMillis: 3600000 } : {}; } // 1 hour§
2102
- },
2103
- {
2104
- provide: fire.FIREBASE_OPTIONS,
2105
- useValue: config.firebase
2106
- },
2107
- {
2108
- provide: fire.FIREBASE_APP_NAME,
2109
- useFactory: appNameFactory
2110
- },
2111
- {
2112
- provide: i3.USE_EMULATOR,
2113
- useFactory: authEmulatorFactory,
2114
- deps: [MalSharedConfigToken]
2115
- },
2116
- {
2117
- provide: i1$2.USE_EMULATOR,
2118
- useFactory: firestoreEmulatorFactory,
2119
- deps: [MalSharedConfigToken]
2120
- },
2121
- {
2122
- provide: functions.USE_EMULATOR,
2123
- useFactory: functionsEmulatorFactory,
2124
- deps: [MalSharedConfigToken]
2125
- },
2126
- {
2127
- provide: functions.REGION,
2128
- useValue: ((_a = config.services) === null || _a === void 0 ? void 0 : _a.firebaseRegion) || null
2129
- },
2130
- {
2131
- provide: i1$1.AngularFirePerformance,
2132
- useFactory: performanceProviderFactory,
2133
- deps: [
2134
- MalSharedConfigToken,
2135
- fire.FirebaseApp,
2136
- [new i0.Optional(), i1$1.DATA_COLLECTION_ENABLED],
2137
- [new i0.Optional(), i1$1.INSTRUMENTATION_ENABLED],
2138
- i0.NgZone,
2139
- i0.PLATFORM_ID
2140
- ]
2141
- },
2142
- {
2143
- provide: i1.AngularFireRemoteConfig,
2144
- useFactory: remoteConfigFirebaseService,
2145
- deps: [
2146
- MalSharedConfigToken,
2147
- fire.FIREBASE_OPTIONS,
2148
- fire.FIREBASE_APP_NAME,
2149
- i1.SETTINGS,
2150
- i1.DEFAULTS,
2151
- i0.NgZone,
2152
- i0.PLATFORM_ID
2153
- ]
2154
- },
2155
- AnalyticsService,
2156
- CrashlyticsService,
2157
- FirebaseService,
2158
- UiService,
2159
- RemoteConfigService,
2160
- AuthProcessService,
2161
- FirestoreSyncService,
2162
- PerformanceService,
2163
- i3.AngularFireAuth,
2164
- LoggedInGuard,
2165
- VerifyEmailGuard
2166
- ],
2167
- };
2168
- };
2169
- return MalSharedModule;
2170
- }());
2171
- MalSharedModule.decorators = [
2172
- { type: i0.NgModule, args: [{
2173
- imports: __spread(MODULES, [
2174
- core.TranslateModule.forChild(),
2175
- fire.AngularFireModule,
2176
- ]),
2177
- exports: __spread(MODULES, [
2178
- core.TranslateModule
2179
- ])
2180
- },] }
2181
- ];
2182
- function performanceProviderFactory(config, app, dataCollectionEnabled, instrumentationEnabled, zone, platformId) {
2183
- if (config.services.firebasePerformance) {
2184
- return new i1$1.AngularFirePerformance(app, dataCollectionEnabled, instrumentationEnabled, zone, platformId);
2185
- }
2186
- return null;
2187
- }
2188
- function remoteConfigFirebaseService(config, options, nameOrConfig, settings, defaultConfig, zone, platformId) {
2189
- if (config.services.firebaseRemoteConfig) {
2190
- return new i1.AngularFireRemoteConfig(options, nameOrConfig, settings, defaultConfig, zone, platformId);
2191
- }
2192
- return null;
2193
- }
2194
- function authEmulatorFactory(config) {
2195
- if (true === config.services.firebaseAuth) {
2196
- return undefined;
2197
- }
2198
- else {
2199
- return config.services.firebaseAuth;
2200
- }
2201
- }
2202
- function firestoreEmulatorFactory(config) {
2203
- if (true === config.services.firebaseFirestore) {
2204
- return undefined;
2205
- }
2206
- else {
2207
- return config.services.firebaseFirestore;
2208
- }
2209
- }
2210
- function functionsEmulatorFactory(config) {
2211
- if (true === config.services.firebaseFunctions) {
2212
- return undefined;
2213
- }
2214
- else {
2215
- return config.services.firebaseFunctions;
2216
- }
2217
- }
2218
-
2219
- /**
2220
- * Generated bundle index. Do not edit.
2221
- */
2222
-
2223
- exports.AnalyticsService = AnalyticsService;
2224
- exports.AuthProcessService = AuthProcessService;
2225
- exports.CrashlyticsService = CrashlyticsService;
2226
- exports.FirebaseService = FirebaseService;
2227
- exports.FirestoreSyncService = FirestoreSyncService;
2228
- exports.LoggedInGuard = LoggedInGuard;
2229
- exports.MalAlertsUIProviderToken = MalAlertsUIProviderToken;
2230
- exports.MalAnalyticsProviderToken = MalAnalyticsProviderToken;
2231
- exports.MalAuthServiceProviderToken = MalAuthServiceProviderToken;
2232
- exports.MalCrashlyticsProviderToken = MalCrashlyticsProviderToken;
2233
- exports.MalCredentialFactoryProviderToken = MalCredentialFactoryProviderToken;
2234
- exports.MalDeviceInfoService = MalDeviceInfoService;
2235
- exports.MalLegaliyDialogUIProiderToken = MalLegaliyDialogUIProiderToken;
2236
- exports.MalLoadingUIProviderToken = MalLoadingUIProviderToken;
2237
- exports.MalMergeUserServiceToken = MalMergeUserServiceToken;
2238
- exports.MalPickerUIProviderToken = MalPickerUIProviderToken;
2239
- exports.MalSharedConfigToken = MalSharedConfigToken;
2240
- exports.MalSharedModule = MalSharedModule;
2241
- exports.MalToastUIProviderToken = MalToastUIProviderToken;
2242
- exports.MalUserProvidedConfigToken = MalUserProvidedConfigToken;
2243
- exports.PHONE_NUMBER_REGEX = PHONE_NUMBER_REGEX;
2244
- exports.PerformanceService = PerformanceService;
2245
- exports.PerformanceTraceNoop = PerformanceTraceNoop;
2246
- exports.RemoteConfigService = RemoteConfigService;
2247
- exports.UiService = UiService;
2248
- exports.ValueAccessorControlComponent = ValueAccessorControlComponent;
2249
- exports.ValueAccessorValueComponent = ValueAccessorValueComponent;
2250
- exports.VerifyEmailGuard = VerifyEmailGuard;
2251
- exports.authEmulatorFactory = authEmulatorFactory;
2252
- exports.defaultAuthFirebaseUIConfig = defaultAuthFirebaseUIConfig;
2253
- exports.firestoreEmulatorFactory = firestoreEmulatorFactory;
2254
- exports.functionsEmulatorFactory = functionsEmulatorFactory;
2255
- exports.malSharedConfigFactory = malSharedConfigFactory;
2256
- exports.performanceProviderFactory = performanceProviderFactory;
2257
- exports.remoteConfigFirebaseService = remoteConfigFirebaseService;
2258
- exports.ɵa = MalAnalyticsProviderToken;
2259
- exports.ɵc = MalCrashlyticsProviderToken;
2260
- exports.ɵe = MalSharedConfigToken;
2261
- exports.ɵf = MalMergeUserServiceToken;
2262
- exports.ɵg = MalCredentialFactoryProviderToken;
2263
- exports.ɵk = MalToastUIProviderToken;
2264
- exports.ɵl = MalAlertsUIProviderToken;
2265
- exports.ɵm = MalLoadingUIProviderToken;
2266
- exports.ɵn = MalLegaliyDialogUIProiderToken;
2267
-
2268
- Object.defineProperty(exports, '__esModule', { value: true });
2269
-
2270
- })));
2271
- //# sourceMappingURL=ngx-firebase.umd.js.map