ngx-firebase 1.1.13 → 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 -2299
  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 -779
  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 -1509
  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 -70
  233. package/shared/interfaces/tokens.d.ts +0 -16
  234. package/shared/interfaces/ui-providers.interface.d.ts +0 -66
  235. package/shared/services/analytics.service.d.ts +0 -10
  236. package/shared/services/auth-process.service.d.ts +0 -197
  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,2299 +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 AuthHooksProviderToken = new i0.InjectionToken('AuthHooksProviderToken');
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, hooksService, credFactory, fireStoreService, afa, // TODO should be private
741
- fire, ui) {
742
- var _this = this;
743
- this.config = config;
744
- this.hooksService = hooksService;
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
- /**
795
- * Triggers subscriber actions when the current user token is refreshed
796
- */
797
- this.tokenRefreshed$ = new rxjs.Subject();
798
- this.afa.user.subscribe(function (user) { return _this._user$.next(user); });
799
- this.afa.authState.subscribe(function (authState) { return _this._authState$.next(authState); });
800
- this.authState$.subscribe(function (user) {
801
- _this.fire.setUserId((user === null || user === void 0 ? void 0 : user.uid) || null);
802
- });
803
- this.onSignOut$.subscribe(function () { return _this.onSignOutEmitter.emit(); });
804
- }
805
- Object.defineProperty(AuthProcessService.prototype, "user", {
806
- get: function () {
807
- return this._user$.value;
808
- },
809
- enumerable: false,
810
- configurable: true
811
- });
812
- Object.defineProperty(AuthProcessService.prototype, "reauthenticateProviders$", {
813
- /**
814
- * Provides an array of authentication providers that are valid for the currently signed-in user
815
- */
816
- get: function () {
817
- return this.user$.pipe(operators.map(function (user) { return ((user === null || user === void 0 ? void 0 : user.providerData) || [])
818
- .map(function (item) {
819
- switch (item === null || item === void 0 ? void 0 : item.providerId) {
820
- case 'google.com': return exports.AuthProvider.Google;
821
- default:
822
- console.log('NO MATCH', item);
823
- return;
824
- }
825
- })
826
- .filter(function (item) { return !!item; }); }));
827
- },
828
- enumerable: false,
829
- configurable: true
830
- });
831
- Object.defineProperty(AuthProcessService.prototype, "isWebPlatform", {
832
- /**
833
- * Returns true if current platform is webplatform supported by @angular/fire
834
- */
835
- get: function () {
836
- return ['https:', 'http:', 'chrome-extension'].includes(location.protocol);
837
- },
838
- enumerable: false,
839
- configurable: true
840
- });
841
- /**
842
- * Indicates if the specified provider is supported on the current platform
843
- *
844
- * A provider is supported if it is configured to be so in authUi.supportProviders and either the platform is a webplatform
845
- * (in which case @anguluar/fire will be used). Or the provider is supported by the injected credFactory (such as that provided by /capacitor).
846
- */
847
- AuthProcessService.prototype.isProviderSupported = function (provider) {
848
- return __awaiter(this, void 0, void 0, function () {
849
- var _c, _d, _e;
850
- return __generator(this, function (_f) {
851
- switch (_f.label) {
852
- case 0:
853
- _c = (this.config.authUi.supportedProviders === exports.AuthProvider.ALL || this.config.authUi.supportedProviders.includes(provider));
854
- if (!_c) return [3 /*break*/, 4];
855
- _d = this.isWebPlatform;
856
- if (_d) return [3 /*break*/, 3];
857
- _e = this.credFactory;
858
- if (!_e) return [3 /*break*/, 2];
859
- return [4 /*yield*/, this.credFactory.isProviderSupported(provider)];
860
- case 1:
861
- _e = (_f.sent());
862
- _f.label = 2;
863
- case 2:
864
- _d = (_e);
865
- _f.label = 3;
866
- case 3:
867
- _c = (_d);
868
- _f.label = 4;
869
- case 4: return [2 /*return*/, _c];
870
- }
871
- });
872
- });
873
- };
874
- /**
875
- * Refreshes the current user IdToken, and triggers the tokenRefreshed$ subject
876
- */
877
- AuthProcessService.prototype.refreshToken = function () {
878
- return __awaiter(this, void 0, void 0, function () {
879
- var user;
880
- return __generator(this, function (_c) {
881
- switch (_c.label) {
882
- case 0: return [4 /*yield*/, this.afa.currentUser];
883
- case 1:
884
- user = _c.sent();
885
- if (!user) return [3 /*break*/, 4];
886
- return [4 /*yield*/, user.getIdToken(true)];
887
- case 2:
888
- _c.sent();
889
- return [4 /*yield*/, this.tokenRefreshed$.next()];
890
- case 3:
891
- _c.sent();
892
- _c.label = 4;
893
- case 4: return [2 /*return*/];
894
- }
895
- });
896
- });
897
- };
898
- /**
899
- * Provides an observable that subscribes to the current user token and returns the value of the specified claim.
900
- *
901
- * @param claim Claim to be returned
902
- * @returns Observable for: Value of claim within current user token || null (if not signed in) || undefined (if no such claim exists)
903
- */
904
- AuthProcessService.prototype.selectCurrentUserClaim = function (claim) {
905
- var _this = this;
906
- return new rxjs.Observable(function (subscriber) {
907
- // Handler function to process the ID token
908
- // Emits the claim || undefined || null
909
- var handleTokenRefresh = function (user) { return __awaiter(_this, void 0, void 0, function () {
910
- var token;
911
- return __generator(this, function (_c) {
912
- switch (_c.label) {
913
- case 0:
914
- if (!user) return [3 /*break*/, 2];
915
- return [4 /*yield*/, user.getIdTokenResult()];
916
- case 1:
917
- token = _c.sent();
918
- subscriber.next(token.claims[claim]);
919
- return [3 /*break*/, 3];
920
- case 2:
921
- subscriber.next(null);
922
- _c.label = 3;
923
- case 3: return [2 /*return*/];
924
- }
925
- });
926
- }); };
927
- // Subscribe to token refresh events
928
- _this.tokenRefreshed$.subscribe(function () { return __awaiter(_this, void 0, void 0, function () {
929
- var user;
930
- return __generator(this, function (_c) {
931
- switch (_c.label) {
932
- case 0: return [4 /*yield*/, this.afa.currentUser];
933
- case 1:
934
- user = _c.sent();
935
- return [4 /*yield*/, handleTokenRefresh(user)];
936
- case 2:
937
- _c.sent();
938
- return [2 /*return*/];
939
- }
940
- });
941
- }); });
942
- // Subscribe to user update events
943
- _this.afa.user.subscribe(function (user) { return __awaiter(_this, void 0, void 0, function () {
944
- return __generator(this, function (_c) {
945
- switch (_c.label) {
946
- case 0: return [4 /*yield*/, handleTokenRefresh(user)];
947
- case 1:
948
- _c.sent();
949
- return [2 /*return*/];
950
- }
951
- });
952
- }); });
953
- });
954
- };
955
- /**
956
- * Get the value for a custom claim for the current user (extracted from their ID token)
957
- *
958
- * @param claim Claim to be returned
959
- * @returns Value of claim within current user token || null (if not signed in) || undefined (if no such claim exists)
960
- */
961
- AuthProcessService.prototype.getCurrentUserClaim = function (claim) {
962
- return this.selectCurrentUserClaim(claim).pipe(operators.take(1)).toPromise();
963
- };
964
- /**
965
- * Reset the password of currently authenticated user via email,
966
- * Firebase sends an email to the user - and managed the reset process directly via google's hosted pages.
967
- *
968
- * @param email - the email to reset
969
- */
970
- AuthProcessService.prototype.resetPassword = function (email) {
971
- return __awaiter(this, void 0, void 0, function () {
972
- var error_1;
973
- return __generator(this, function (_c) {
974
- switch (_c.label) {
975
- case 0:
976
- _c.trys.push([0, 1, , 3]);
977
- this.fire.addLogMessage('Password reset email sent');
978
- this.afa.sendPasswordResetEmail(email);
979
- this.ui.toast('auth.resetPassword.onResetRequestedTo', { duration: this.config.authUi.toastDefaultDurationMil, interpolateParams: { email: email }, position: 'bottom' });
980
- return [3 /*break*/, 3];
981
- case 1:
982
- error_1 = _c.sent();
983
- return [4 /*yield*/, this.handleError(error_1)];
984
- case 2:
985
- _c.sent();
986
- return [3 /*break*/, 3];
987
- case 3: return [2 /*return*/];
988
- }
989
- });
990
- });
991
- };
992
- /**
993
- * General sign in mechanism to authenticate the users with a firebase project
994
- * using a traditional way, via username and password or by using an authentication provider
995
- * like google, facebook, twitter and github
996
- *
997
- * [Current State -> Target State]
998
- * Null -> Anon/named: OK
999
- * Anon -> Anon: Throws Error
1000
- * Anon -> Named: Triggers MergeService
1001
- * Named -> Any: Throws Error
1002
- *
1003
- * @param provider - the provider to authenticate with (google, facebook, twitter, github)
1004
- * @param credentials optional email and password
1005
- */
1006
- AuthProcessService.prototype.signInWith = function (provider, options) {
1007
- var _a, _b;
1008
- return __awaiter(this, void 0, void 0, function () {
1009
- var loading, userCred, currentUser, mergeContext, _c, successMessage, error_2, error_3;
1010
- return __generator(this, function (_d) {
1011
- switch (_d.label) {
1012
- case 0:
1013
- this.fire.addLogMessage("SignInWithProvider; provider=" + provider);
1014
- return [4 /*yield*/, this.ui.createLoading()];
1015
- case 1:
1016
- loading = _d.sent();
1017
- _d.label = 2;
1018
- case 2:
1019
- _d.trys.push([2, 28, , 31]);
1020
- userCred = null;
1021
- return [4 /*yield*/, this.afa.currentUser];
1022
- case 3:
1023
- currentUser = _d.sent();
1024
- mergeContext = null;
1025
- if (!(currentUser && currentUser.isAnonymous && ((_a = this.hooksService) === null || _a === void 0 ? void 0 : _a.prepareMergeSource) && provider !== exports.AuthProvider.ANONYMOUS)) return [3 /*break*/, 5];
1026
- return [4 /*yield*/, this.hooksService.prepareMergeSource(currentUser)];
1027
- case 4:
1028
- mergeContext = _d.sent();
1029
- _d.label = 5;
1030
- case 5:
1031
- _c = provider;
1032
- switch (_c) {
1033
- case exports.AuthProvider.ANONYMOUS: return [3 /*break*/, 6];
1034
- case exports.AuthProvider.EmailAndPassword: return [3 /*break*/, 12];
1035
- case exports.AuthProvider.PhoneNumber: return [3 /*break*/, 18];
1036
- }
1037
- return [3 /*break*/, 19];
1038
- case 6:
1039
- if (currentUser) {
1040
- throw new Error('Cannot signIn anonymously whilst already signedIn, SignOut first');
1041
- }
1042
- return [4 /*yield*/, this.confirmTos(null, options)];
1043
- case 7:
1044
- if (!_d.sent()) return [3 /*break*/, 11];
1045
- loading.present();
1046
- return [4 /*yield*/, this.afa.signInAnonymously()];
1047
- case 8:
1048
- userCred = _d.sent();
1049
- return [4 /*yield*/, this.confirmTos(userCred, { skipTosCheck: true })];
1050
- case 9:
1051
- _d.sent(); // Save tosAcceptance in firestore if sync enabled
1052
- return [4 /*yield*/, loading.dismiss()];
1053
- case 10:
1054
- _d.sent();
1055
- _d.label = 11;
1056
- case 11: return [3 /*break*/, 21];
1057
- case 12:
1058
- if (currentUser && !currentUser.isAnonymous) {
1059
- throw new Error('Cannot signIn whilst already signedIn, SignOut first');
1060
- }
1061
- if (!(options === null || options === void 0 ? void 0 : options.credentials)) {
1062
- throw new Error('Credentials are required when signing in with AuthProvider.EmailAndPassword');
1063
- }
1064
- loading.present();
1065
- return [4 /*yield*/, this.afa.signInWithEmailAndPassword(options.credentials.email, options.credentials.password)];
1066
- case 13:
1067
- userCred = _d.sent();
1068
- return [4 /*yield*/, this.confirmTos(userCred, options)];
1069
- case 14:
1070
- if (!!(_d.sent())) return [3 /*break*/, 16];
1071
- return [4 /*yield*/, this.signOut()];
1072
- case 15:
1073
- _d.sent();
1074
- userCred = null;
1075
- _d.label = 16;
1076
- case 16:
1077
- ;
1078
- return [4 /*yield*/, loading.dismiss()];
1079
- case 17:
1080
- _d.sent();
1081
- return [3 /*break*/, 21];
1082
- case 18:
1083
- // coming soon - see feature/sms branch
1084
- return [3 /*break*/, 21];
1085
- case 19: return [4 /*yield*/, this.socialSignIn(provider, options)];
1086
- case 20:
1087
- userCred = _d.sent();
1088
- return [3 /*break*/, 21];
1089
- case 21:
1090
- if (!userCred) return [3 /*break*/, 26];
1091
- if (this.config.authUi.toastMessageOnAuthSuccess) {
1092
- successMessage = ('string' === typeof this.config.authUi.toastMessageOnAuthSuccess)
1093
- ? this.config.authUi.toastMessageOnAuthSuccess
1094
- : "Hello " + (userCred.user.displayName ? userCred.user.displayName : '') + "!";
1095
- this.ui.toast(successMessage, { duration: this.config.authUi.toastDefaultDurationMil });
1096
- }
1097
- if (!(userCred.user && mergeContext && ((_b = this.hooksService) === null || _b === void 0 ? void 0 : _b.applyMergeToTarget))) return [3 /*break*/, 25];
1098
- _d.label = 22;
1099
- case 22:
1100
- _d.trys.push([22, 24, , 25]);
1101
- return [4 /*yield*/, this.hooksService.applyMergeToTarget(userCred.user, mergeContext)];
1102
- case 23:
1103
- _d.sent();
1104
- return [3 /*break*/, 25];
1105
- case 24:
1106
- error_2 = _d.sent();
1107
- // If a failure occurs in merge applyToTarget we can't do much about it (we are already logged in as new user)
1108
- // but we should at least log it. The onus is really on the applyToTarget function to handle it's own errors.
1109
- this.fire.recordException(error_2);
1110
- return [3 /*break*/, 25];
1111
- case 25:
1112
- this.onSignInEmitter.emit(userCred.user);
1113
- _d.label = 26;
1114
- case 26: return [4 /*yield*/, loading.dismiss()];
1115
- case 27:
1116
- _d.sent();
1117
- return [2 /*return*/, userCred || null];
1118
- case 28:
1119
- error_3 = _d.sent();
1120
- // code auth/user-not-found
1121
- return [4 /*yield*/, this.handleError(error_3)];
1122
- case 29:
1123
- // code auth/user-not-found
1124
- _d.sent();
1125
- return [4 /*yield*/, loading.dismiss()];
1126
- case 30:
1127
- _d.sent();
1128
- return [2 /*return*/, null];
1129
- case 31: return [2 /*return*/];
1130
- }
1131
- });
1132
- });
1133
- };
1134
- /**
1135
- * Reauthenicate the current user - a recent authentication is required for some sensitive operations
1136
- * such as changing account details
1137
- */
1138
- AuthProcessService.prototype.reauthenicateWithProvider = function (provider, options) {
1139
- return __awaiter(this, void 0, void 0, function () {
1140
- var loading, userCred, currentUser, _c, authCred, _d, factoryCred, error_4;
1141
- return __generator(this, function (_e) {
1142
- switch (_e.label) {
1143
- case 0:
1144
- this.fire.addLogMessage("reauthenicateWithProvider; provider=" + provider);
1145
- return [4 /*yield*/, this.ui.createLoading()];
1146
- case 1:
1147
- loading = _e.sent();
1148
- _e.label = 2;
1149
- case 2:
1150
- _e.trys.push([2, 20, , 23]);
1151
- userCred = null;
1152
- return [4 /*yield*/, this.afa.currentUser];
1153
- case 3:
1154
- currentUser = _e.sent();
1155
- if (!currentUser || currentUser.isAnonymous) {
1156
- throw new Error('Caanot reauthticate if no currentUser or currentUser is anonymous');
1157
- }
1158
- loading.present();
1159
- _c = provider;
1160
- switch (_c) {
1161
- case exports.AuthProvider.ANONYMOUS: return [3 /*break*/, 4];
1162
- case exports.AuthProvider.EmailAndPassword: return [3 /*break*/, 5];
1163
- case exports.AuthProvider.PhoneNumber: return [3 /*break*/, 7];
1164
- }
1165
- return [3 /*break*/, 8];
1166
- case 4: throw new Error('Cannot reauthenticate with anonymous Credentials');
1167
- case 5:
1168
- if (!(options === null || options === void 0 ? void 0 : options.credentials)) {
1169
- throw new Error('Credentials are required when reauthenticating with AuthProvider.EmailAndPassword');
1170
- }
1171
- if (!currentUser.email) {
1172
- throw new Error('Cannot reauthenticate with email for an account without email');
1173
- }
1174
- if (!app.firebase.auth) {
1175
- throw new Error('firebase.auth is undefined');
1176
- }
1177
- this.fire.addLogMessage("creating email credential with firebase; email=" + options.credentials.email);
1178
- authCred = app.firebase.auth.EmailAuthProvider.credential(currentUser.email, options.credentials.password);
1179
- return [4 /*yield*/, currentUser.reauthenticateWithCredential(authCred)];
1180
- case 6:
1181
- userCred = _e.sent();
1182
- return [3 /*break*/, 18];
1183
- case 7:
1184
- // coming soon - see feature/sms branch
1185
- return [3 /*break*/, 18];
1186
- case 8:
1187
- _d = this.credFactory;
1188
- if (!_d) return [3 /*break*/, 10];
1189
- return [4 /*yield*/, this.credFactory.isProviderSupported(provider)];
1190
- case 9:
1191
- _d = (_e.sent());
1192
- _e.label = 10;
1193
- case 10:
1194
- if (!_d) return [3 /*break*/, 14];
1195
- return [4 /*yield*/, this.credFactory.getCredential(provider)];
1196
- case 11:
1197
- factoryCred = _e.sent();
1198
- if (!factoryCred) return [3 /*break*/, 13];
1199
- return [4 /*yield*/, currentUser.reauthenticateWithCredential(factoryCred)];
1200
- case 12:
1201
- userCred = _e.sent();
1202
- _e.label = 13;
1203
- case 13: return [3 /*break*/, 17];
1204
- case 14:
1205
- if (!this.isWebPlatform) return [3 /*break*/, 16];
1206
- return [4 /*yield*/, currentUser.reauthenticateWithPopup(this.getAuthProvider(provider))];
1207
- case 15:
1208
- userCred = _e.sent();
1209
- return [3 /*break*/, 17];
1210
- case 16: throw new Error('A CredentialFactory is required to use AuthProcessService on a non-web platform');
1211
- case 17: return [3 /*break*/, 18];
1212
- case 18: return [4 /*yield*/, loading.dismiss()];
1213
- case 19:
1214
- _e.sent();
1215
- return [2 /*return*/, userCred || null];
1216
- case 20:
1217
- error_4 = _e.sent();
1218
- // code auth/user-not-found
1219
- return [4 /*yield*/, this.handleError(error_4)];
1220
- case 21:
1221
- // code auth/user-not-found
1222
- _e.sent();
1223
- return [4 /*yield*/, loading.dismiss()];
1224
- case 22:
1225
- _e.sent();
1226
- return [2 /*return*/, null];
1227
- case 23: return [2 /*return*/];
1228
- }
1229
- });
1230
- });
1231
- };
1232
- /**
1233
- * Link the current user to credentials from another auth provider.
1234
- *
1235
- * @param provider Provider to link.
1236
- */
1237
- AuthProcessService.prototype.linkCurrentUserToProvider = function (provider, options) {
1238
- return __awaiter(this, void 0, void 0, function () {
1239
- var loading, currentUser, userCred, _c, authCred, _d, factoryCred, userData, error_5;
1240
- return __generator(this, function (_e) {
1241
- switch (_e.label) {
1242
- case 0:
1243
- this.fire.addLogMessage("Linking current anon user to provider; provider=" + provider);
1244
- return [4 /*yield*/, this.ui.createLoading()];
1245
- case 1:
1246
- loading = _e.sent();
1247
- _e.label = 2;
1248
- case 2:
1249
- _e.trys.push([2, 22, , 25]);
1250
- return [4 /*yield*/, this.afa.currentUser];
1251
- case 3:
1252
- currentUser = _e.sent();
1253
- if (null === currentUser) {
1254
- throw new Error('CurrentUser is null');
1255
- }
1256
- return [4 /*yield*/, loading.present()];
1257
- case 4:
1258
- _e.sent();
1259
- userCred = null;
1260
- _c = provider;
1261
- switch (_c) {
1262
- case exports.AuthProvider.ANONYMOUS: return [3 /*break*/, 5];
1263
- case exports.AuthProvider.EmailAndPassword: return [3 /*break*/, 6];
1264
- case exports.AuthProvider.PhoneNumber: return [3 /*break*/, 8];
1265
- }
1266
- return [3 /*break*/, 9];
1267
- case 5: throw new Error('Linking anonymous user makes no sense');
1268
- case 6:
1269
- if (!(options === null || options === void 0 ? void 0 : options.credentials)) {
1270
- throw new Error('Credentials required to link to email credentential');
1271
- }
1272
- if (!app.firebase.auth) {
1273
- throw new Error('firebase.auth is undefined');
1274
- }
1275
- this.fire.addLogMessage("creating email credential with firebase; email=" + options.credentials.email);
1276
- authCred = app.firebase.auth.EmailAuthProvider.credential(options.credentials.email, options.credentials.password);
1277
- this.fire.addLogMessage("linking userCredential to email authCredential");
1278
- return [4 /*yield*/, currentUser.linkWithCredential(authCred)];
1279
- case 7:
1280
- userCred = _e.sent();
1281
- return [3 /*break*/, 18];
1282
- case 8: throw new Error('Linking phone number not suported');
1283
- case 9:
1284
- _d = this.credFactory;
1285
- if (!_d) return [3 /*break*/, 11];
1286
- return [4 /*yield*/, this.credFactory.isProviderSupported(provider)];
1287
- case 10:
1288
- _d = (_e.sent());
1289
- _e.label = 11;
1290
- case 11:
1291
- if (!_d) return [3 /*break*/, 15];
1292
- return [4 /*yield*/, this.credFactory.getCredential(provider)];
1293
- case 12:
1294
- factoryCred = _e.sent();
1295
- if (!factoryCred) return [3 /*break*/, 14];
1296
- return [4 /*yield*/, currentUser.linkWithCredential(factoryCred)];
1297
- case 13:
1298
- userCred = _e.sent();
1299
- _e.label = 14;
1300
- case 14: return [3 /*break*/, 18];
1301
- case 15:
1302
- if (!this.isWebPlatform) return [3 /*break*/, 17];
1303
- return [4 /*yield*/, currentUser.linkWithPopup(this.getAuthProvider(provider))];
1304
- case 16:
1305
- userCred = _e.sent();
1306
- return [3 /*break*/, 18];
1307
- case 17: throw new Error('A CredentialFactory is required to use AuthProcessService on a non-web platform');
1308
- case 18:
1309
- if (!(userCred && userCred.user)) return [3 /*break*/, 20];
1310
- userData = this.parseUserInfo(userCred.user);
1311
- if (!(userData.displayName
1312
- && (userCred.user.displayName !== userData.displayName || userCred.user.photoURL !== userData.displayName))) return [3 /*break*/, 20];
1313
- this.fire.addLogMessage("Updating user profile; displayName=" + userData.displayName + ", photoUrl=" + userData.photoURL); // tslint:disable-line max-line-length
1314
- return [4 /*yield*/, this.updateUserInfo({ displayName: userData.displayName, photoURL: userData.photoURL })];
1315
- case 19:
1316
- _e.sent();
1317
- _e.label = 20;
1318
- case 20: return [4 /*yield*/, loading.dismiss()];
1319
- case 21:
1320
- _e.sent();
1321
- return [2 /*return*/, userCred || null];
1322
- case 22:
1323
- error_5 = _e.sent();
1324
- // Merge
1325
- return [4 /*yield*/, this.handleError(error_5)];
1326
- case 23:
1327
- // Merge
1328
- _e.sent();
1329
- return [4 /*yield*/, loading.dismiss()];
1330
- case 24:
1331
- _e.sent();
1332
- return [2 /*return*/, null];
1333
- case 25: return [2 /*return*/];
1334
- }
1335
- });
1336
- });
1337
- };
1338
- /**
1339
- * Creates a firebase user account authenticated with the specified provider.
1340
- * If AuthProvider.EmailAndPassword is specified credentials and displayname must also be provided.
1341
- */
1342
- AuthProcessService.prototype.registerWith = function (provider, options) {
1343
- return __awaiter(this, void 0, void 0, function () {
1344
- var loading, currentUser, userCred, _c, error_6;
1345
- return __generator(this, function (_d) {
1346
- switch (_d.label) {
1347
- case 0:
1348
- this.fire.addLogMessage("SigningUp with provider; provider=" + provider);
1349
- return [4 /*yield*/, this.ui.createLoading()];
1350
- case 1:
1351
- loading = _d.sent();
1352
- _d.label = 2;
1353
- case 2:
1354
- _d.trys.push([2, 19, , 22]);
1355
- return [4 /*yield*/, this.afa.currentUser];
1356
- case 3:
1357
- currentUser = _d.sent();
1358
- if (!(currentUser === null || currentUser === void 0 ? void 0 : currentUser.isAnonymous)) return [3 /*break*/, 4];
1359
- return [2 /*return*/, this.linkCurrentUserToProvider(provider, options)];
1360
- case 4:
1361
- if (!(null !== currentUser)) return [3 /*break*/, 5];
1362
- throw new Error('Cannot Register whilst signed in as a non-Anonymous user. SignOut first');
1363
- case 5: return [4 /*yield*/, this.confirmTos(null, options)];
1364
- case 6:
1365
- if (!(_d.sent())) { // No current user
1366
- this.fire.addLogMessage('User declined TOS during register');
1367
- return [2 /*return*/, null];
1368
- }
1369
- _d.label = 7;
1370
- case 7:
1371
- userCred = null;
1372
- _c = provider;
1373
- switch (_c) {
1374
- case exports.AuthProvider.EmailAndPassword: return [3 /*break*/, 8];
1375
- }
1376
- return [3 /*break*/, 16];
1377
- case 8:
1378
- if (!(options === null || options === void 0 ? void 0 : options.credentials) || !(options === null || options === void 0 ? void 0 : options.displayName)) {
1379
- throw new Error('Credentials & displayName required to SignUp by email');
1380
- }
1381
- return [4 /*yield*/, loading.present()];
1382
- case 9:
1383
- _d.sent();
1384
- this.fire.addLogMessage("creaating user with email and password; email=" + options.credentials.email);
1385
- return [4 /*yield*/, this.afa.createUserWithEmailAndPassword(options.credentials.email, options.credentials.password)];
1386
- case 10:
1387
- userCred = _d.sent();
1388
- if (null === userCred.user) {
1389
- throw new Error('User is null following successful signUp');
1390
- }
1391
- return [4 /*yield*/, this.updateUserInfo({ displayName: options.displayName })];
1392
- case 11:
1393
- _d.sent();
1394
- return [4 /*yield*/, this.confirmTos(userCred, { skipTosCheck: true })];
1395
- case 12:
1396
- _d.sent(); // To save the tosAcceptance
1397
- if (!this.config.authUi.enableEmailVerification) return [3 /*break*/, 14];
1398
- return [4 /*yield*/, userCred.user.sendEmailVerification()];
1399
- case 13:
1400
- _d.sent();
1401
- _d.label = 14;
1402
- case 14: return [4 /*yield*/, loading.dismiss()];
1403
- case 15:
1404
- _d.sent();
1405
- return [3 /*break*/, 18];
1406
- case 16: return [4 /*yield*/, this.socialSignIn(provider, Object.assign(Object.assign({}, options), { skipTosCheck: true }))];
1407
- case 17:
1408
- userCred = _d.sent();
1409
- _d.label = 18;
1410
- case 18:
1411
- if (userCred.user) {
1412
- this.onRegisterEmitter.emit(userCred.user);
1413
- }
1414
- return [2 /*return*/, userCred || null];
1415
- case 19:
1416
- error_6 = _d.sent();
1417
- // This is where I would handle merge
1418
- return [4 /*yield*/, this.handleError(error_6)];
1419
- case 20:
1420
- // This is where I would handle merge
1421
- _d.sent();
1422
- return [4 /*yield*/, loading.dismiss()];
1423
- case 21:
1424
- _d.sent();
1425
- return [2 /*return*/, null];
1426
- case 22: return [2 /*return*/];
1427
- }
1428
- });
1429
- });
1430
- };
1431
- /**
1432
- * Authenticates the user using social provider.
1433
- *
1434
- * @param provider social auth provider
1435
- * @param options
1436
- * @returns user credentials || null if not signed in.
1437
- */
1438
- AuthProcessService.prototype.socialSignIn = function (provider, options) {
1439
- return __awaiter(this, void 0, void 0, function () {
1440
- var currentUser, loading, userCred, _c, factoryCred;
1441
- return __generator(this, function (_d) {
1442
- switch (_d.label) {
1443
- case 0: return [4 /*yield*/, this.afa.currentUser];
1444
- case 1:
1445
- currentUser = _d.sent();
1446
- return [4 /*yield*/, this.ui.createLoading()];
1447
- case 2:
1448
- loading = _d.sent();
1449
- if (currentUser && !currentUser.isAnonymous) {
1450
- throw new Error('Cannot signIn whilst already signedIn, SignOut first');
1451
- }
1452
- _c = this.credFactory;
1453
- if (!_c) return [3 /*break*/, 4];
1454
- return [4 /*yield*/, this.credFactory.isProviderSupported(provider)];
1455
- case 3:
1456
- _c = (_d.sent());
1457
- _d.label = 4;
1458
- case 4:
1459
- if (!_c) return [3 /*break*/, 9];
1460
- loading.present();
1461
- return [4 /*yield*/, this.credFactory.getCredential(provider)];
1462
- case 5:
1463
- factoryCred = _d.sent();
1464
- if (!factoryCred) return [3 /*break*/, 7];
1465
- return [4 /*yield*/, this.afa.signInWithCredential(factoryCred)];
1466
- case 6:
1467
- userCred = _d.sent();
1468
- _d.label = 7;
1469
- case 7: return [4 /*yield*/, loading.dismiss()];
1470
- case 8:
1471
- _d.sent();
1472
- return [3 /*break*/, 13];
1473
- case 9:
1474
- if (!this.isWebPlatform) return [3 /*break*/, 12];
1475
- loading.present();
1476
- return [4 /*yield*/, this.afa.signInWithPopup(this.getAuthProvider(provider))];
1477
- case 10:
1478
- userCred = _d.sent();
1479
- return [4 /*yield*/, loading.dismiss()];
1480
- case 11:
1481
- _d.sent();
1482
- return [3 /*break*/, 13];
1483
- case 12: throw new Error('A CredentialFactory is required to use AuthProcessService on a non-web platform');
1484
- case 13: return [4 /*yield*/, loading.dismiss()];
1485
- case 14:
1486
- _d.sent();
1487
- return [4 /*yield*/, this.confirmTos(userCred, options)];
1488
- case 15:
1489
- if (!!(_d.sent())) return [3 /*break*/, 17];
1490
- return [4 /*yield*/, this.signOut()];
1491
- case 16:
1492
- _d.sent();
1493
- userCred = null;
1494
- _d.label = 17;
1495
- case 17:
1496
- ;
1497
- return [2 /*return*/, userCred];
1498
- }
1499
- });
1500
- });
1501
- };
1502
- /**
1503
- * Present dialog and confirm the user agress to the privacy policy and terms of service (if either configured).
1504
- * If nether configured returns true;
1505
- *
1506
- * @returns True if either user agrees to TOS/PrivacyUrl || no TOS/PrivacyUrl configured.
1507
- */
1508
- AuthProcessService.prototype.confirmTos = function (userCred, options) {
1509
- if (userCred === void 0) { userCred = null; }
1510
- if (options === void 0) { options = {}; }
1511
- var _a;
1512
- return __awaiter(this, void 0, void 0, function () {
1513
- var acceptedTos, userData, _c;
1514
- return __generator(this, function (_d) {
1515
- switch (_d.label) {
1516
- case 0:
1517
- if (!(this.config.authUi.tosUrl || this.config.authUi.privacyPolicyUrl)) return [3 /*break*/, 7];
1518
- acceptedTos = (options.skipTosCheck) ? new Date().toISOString() : null;
1519
- 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];
1520
- return [4 /*yield*/, this.fireStoreService.getUserData(userCred.user.uid)];
1521
- case 1:
1522
- userData = _d.sent();
1523
- acceptedTos = (userData === null || userData === void 0 ? void 0 : userData.acceptedTos) || null;
1524
- _d.label = 2;
1525
- case 2:
1526
- _c = !acceptedTos;
1527
- if (!_c) return [3 /*break*/, 4];
1528
- return [4 /*yield*/, this.ui.confirmTos()];
1529
- case 3:
1530
- _c = (_d.sent());
1531
- _d.label = 4;
1532
- case 4:
1533
- if (_c) {
1534
- acceptedTos = new Date().toISOString();
1535
- }
1536
- if (!((userCred === null || userCred === void 0 ? void 0 : userCred.user) && this.config.authUi.enableFirestoreSync)) return [3 /*break*/, 6];
1537
- return [4 /*yield*/, this.fireStoreService.setUserData(userCred.user.uid, { acceptedTos: acceptedTos }, { merge: true })];
1538
- case 5:
1539
- _d.sent();
1540
- _d.label = 6;
1541
- case 6: return [2 /*return*/, !!acceptedTos];
1542
- case 7: // No tosUrl || privacyPolicyUrl
1543
- return [2 /*return*/, true];
1544
- }
1545
- });
1546
- });
1547
- };
1548
- /**
1549
- * Send the currently authenticated user another verficiation email.
1550
- */
1551
- AuthProcessService.prototype.sendNewVerificationEmail = function () {
1552
- return __awaiter(this, void 0, void 0, function () {
1553
- var currentUser, error_7;
1554
- return __generator(this, function (_c) {
1555
- switch (_c.label) {
1556
- case 0:
1557
- _c.trys.push([0, 3, , 4]);
1558
- return [4 /*yield*/, this.afa.currentUser];
1559
- case 1:
1560
- currentUser = _c.sent();
1561
- if (!currentUser) {
1562
- throw new Error('No signed in user');
1563
- }
1564
- return [4 /*yield*/, currentUser.sendEmailVerification()];
1565
- case 2:
1566
- _c.sent();
1567
- return [3 /*break*/, 4];
1568
- case 3:
1569
- error_7 = _c.sent();
1570
- this.fire.recordException(error_7);
1571
- throw error_7;
1572
- case 4: return [2 /*return*/];
1573
- }
1574
- });
1575
- });
1576
- };
1577
- /**
1578
- * SignOut the currently authenticated user.
1579
- */
1580
- AuthProcessService.prototype.signOut = function () {
1581
- return __awaiter(this, void 0, void 0, function () {
1582
- var error_8;
1583
- return __generator(this, function (_c) {
1584
- switch (_c.label) {
1585
- case 0:
1586
- _c.trys.push([0, 2, , 4]);
1587
- return [4 /*yield*/, this.afa.signOut()];
1588
- case 1:
1589
- _c.sent();
1590
- if (this.credFactory) {
1591
- this.credFactory.signOut();
1592
- }
1593
- return [3 /*break*/, 4];
1594
- case 2:
1595
- error_8 = _c.sent();
1596
- return [4 /*yield*/, this.handleError(error_8)];
1597
- case 3:
1598
- _c.sent();
1599
- return [3 /*break*/, 4];
1600
- case 4: return [2 /*return*/];
1601
- }
1602
- });
1603
- });
1604
- };
1605
- /**
1606
- * Update the details for the authenticated user of in the firebase authentication and sync with firestore.
1607
- *
1608
- * @param userInfo - UserInfo object containing those properties for which change is requried. Only provider
1609
- * the properties actually to be changed. Others should be ommitted.
1610
- */
1611
- AuthProcessService.prototype.updateUserInfo = function (userInfo) {
1612
- return __awaiter(this, void 0, void 0, function () {
1613
- var user, error_9;
1614
- return __generator(this, function (_c) {
1615
- switch (_c.label) {
1616
- case 0:
1617
- _c.trys.push([0, 11, , 12]);
1618
- return [4 /*yield*/, this.afa.currentUser];
1619
- case 1:
1620
- user = _c.sent();
1621
- if (!user) {
1622
- throw new Error('No currentUser');
1623
- }
1624
- if (!userInfo.email) return [3 /*break*/, 3];
1625
- return [4 /*yield*/, user.updateEmail(userInfo.email)];
1626
- case 2:
1627
- _c.sent();
1628
- _c.label = 3;
1629
- case 3:
1630
- if (!userInfo.phoneNumber) return [3 /*break*/, 5];
1631
- return [4 /*yield*/, user.updatePhoneNumber(userInfo.phoneNumber)];
1632
- case 4:
1633
- _c.sent(); // TODO - bet this doesn't actually work
1634
- _c.label = 5;
1635
- case 5:
1636
- if (!(userInfo.displayName || userInfo.photoURL)) return [3 /*break*/, 7];
1637
- return [4 /*yield*/, user.updateProfile({
1638
- displayName: userInfo.displayName,
1639
- photoURL: userInfo.photoURL
1640
- })];
1641
- case 6:
1642
- _c.sent();
1643
- _c.label = 7;
1644
- case 7: return [4 /*yield*/, this.afa.updateCurrentUser(user)];
1645
- case 8:
1646
- _c.sent();
1647
- if (!this.config.authUi.enableFirestoreSync) return [3 /*break*/, 10];
1648
- // await this.fireStoreService.updateUserData(user.uid, this.parseUserInfo(user));
1649
- return [4 /*yield*/, this.fireStoreService.updateUserData(user.uid, {
1650
- displayName: user.displayName,
1651
- email: user.email,
1652
- photoURL: user.photoURL
1653
- })];
1654
- case 9:
1655
- // await this.fireStoreService.updateUserData(user.uid, this.parseUserInfo(user));
1656
- _c.sent();
1657
- _c.label = 10;
1658
- case 10:
1659
- this.onUserUpdatedEmitter.emit();
1660
- return [3 /*break*/, 12];
1661
- case 11:
1662
- error_9 = _c.sent();
1663
- this.fire.recordException(error_9);
1664
- return [3 /*break*/, 12];
1665
- case 12: return [2 /*return*/];
1666
- }
1667
- });
1668
- });
1669
- };
1670
- /**
1671
- * Extract UserInfo object from the User object
1672
- * If multiple providers are supplied these are amalgamated to create the most complete
1673
- * UserInfo object possible
1674
- */
1675
- AuthProcessService.prototype.parseUserInfo = function (user) {
1676
- var userInfo = {
1677
- uid: user.uid,
1678
- displayName: user.displayName,
1679
- email: user.email,
1680
- phoneNumber: user.phoneNumber,
1681
- photoURL: user.photoURL,
1682
- providerId: user.providerId
1683
- };
1684
- if (user.providerData) {
1685
- user.providerData.forEach(function (item) {
1686
- if (!userInfo.displayName && (item === null || item === void 0 ? void 0 : item.displayName)) {
1687
- userInfo.displayName = item.displayName;
1688
- }
1689
- if (!userInfo.email && (item === null || item === void 0 ? void 0 : item.email)) {
1690
- userInfo.email = item.email;
1691
- }
1692
- if (!userInfo.phoneNumber && (item === null || item === void 0 ? void 0 : item.phoneNumber)) {
1693
- userInfo.phoneNumber = item.phoneNumber;
1694
- }
1695
- if (!userInfo.photoURL && (item === null || item === void 0 ? void 0 : item.photoURL)) {
1696
- userInfo.photoURL = item.photoURL;
1697
- }
1698
- if (!userInfo.providerId && (item === null || item === void 0 ? void 0 : item.providerId)) {
1699
- userInfo.providerId = item.providerId;
1700
- }
1701
- });
1702
- }
1703
- return userInfo;
1704
- };
1705
- /**
1706
- * Returns the UserPhotoUrl, or an appropraite placeholder if not provided
1707
- * ToDo - this would probably bet better inside a user-photo component
1708
- */
1709
- AuthProcessService.prototype.getUserPhotoUrl = function () {
1710
- return this.user$.pipe(operators.map(function (user) {
1711
- if (!user) {
1712
- return null;
1713
- }
1714
- else if (user.photoURL) {
1715
- return user.photoURL;
1716
- }
1717
- else if (user.emailVerified) {
1718
- return "assets/user/" + exports.Accounts.CHECK + ".svg";
1719
- }
1720
- else if (user.isAnonymous) {
1721
- return "assets/user/" + exports.Accounts.OFF + ".svg";
1722
- }
1723
- else {
1724
- return "assets/user/" + exports.Accounts.NONE + ".svg";
1725
- }
1726
- }));
1727
- };
1728
- /**
1729
- * Refresh user info. Can be useful for instance to get latest status regarding email verification.
1730
- */
1731
- AuthProcessService.prototype.reloadUserInfo = function () {
1732
- return __awaiter(this, void 0, void 0, function () {
1733
- var user;
1734
- return __generator(this, function (_c) {
1735
- switch (_c.label) {
1736
- case 0: return [4 /*yield*/, this.user$.pipe(operators.take(1)).toPromise()];
1737
- case 1:
1738
- user = _c.sent();
1739
- if (!user) return [3 /*break*/, 3];
1740
- return [4 /*yield*/, user.reload()];
1741
- case 2:
1742
- _c.sent();
1743
- _c.label = 3;
1744
- case 3: return [2 /*return*/];
1745
- }
1746
- });
1747
- });
1748
- };
1749
- /**
1750
- * Deletes the current user
1751
- */
1752
- AuthProcessService.prototype.deleteUser = function () {
1753
- var _a;
1754
- return __awaiter(this, void 0, void 0, function () {
1755
- var currentUser, currentUid, canDelete, _c, error_10;
1756
- return __generator(this, function (_d) {
1757
- switch (_d.label) {
1758
- case 0: return [4 /*yield*/, this.afa.currentUser];
1759
- case 1:
1760
- currentUser = _d.sent();
1761
- currentUid = currentUser === null || currentUser === void 0 ? void 0 : currentUser.uid;
1762
- if (!currentUser || !currentUid) {
1763
- throw new Error('Unable to delete currentUser if null');
1764
- }
1765
- if (!((_a = this.hooksService) === null || _a === void 0 ? void 0 : _a.beforeDelete)) return [3 /*break*/, 3];
1766
- return [4 /*yield*/, this.hooksService.beforeDelete(currentUser)];
1767
- case 2:
1768
- _c = _d.sent();
1769
- return [3 /*break*/, 4];
1770
- case 3:
1771
- _c = true;
1772
- _d.label = 4;
1773
- case 4:
1774
- canDelete = _c;
1775
- if (!canDelete) return [3 /*break*/, 8];
1776
- _d.label = 5;
1777
- case 5:
1778
- _d.trys.push([5, 7, , 8]);
1779
- // Userdata deleted by DB trigger
1780
- return [4 /*yield*/, currentUser.delete()];
1781
- case 6:
1782
- // Userdata deleted by DB trigger
1783
- _d.sent();
1784
- this.onUserDeletedEmitter.emit();
1785
- return [3 /*break*/, 8];
1786
- case 7:
1787
- error_10 = _d.sent();
1788
- if (error_10.code !== exports.FirebaseErrorCodes.requiresRecentLogin) {
1789
- this.fire.recordException(error_10);
1790
- }
1791
- throw (error_10);
1792
- case 8: return [2 /*return*/];
1793
- }
1794
- });
1795
- });
1796
- };
1797
- /**
1798
- * Logs the error and provides user error notifcation if appropriate
1799
- */
1800
- AuthProcessService.prototype.handleError = function (error) {
1801
- return __awaiter(this, void 0, void 0, function () {
1802
- var message;
1803
- return __generator(this, function (_c) {
1804
- switch (_c.label) {
1805
- case 0: return [4 /*yield*/, this.fire.recordException(error)];
1806
- case 1:
1807
- _c.sent();
1808
- this.onErrorEmitter.emit(error);
1809
- if (!this.config.authUi.toastMessageOnAuthError) return [3 /*break*/, 3];
1810
- message = 'auth.common.pleaseRetry';
1811
- if (error && typeof error === 'string') {
1812
- message = error;
1813
- }
1814
- else if (error && error.message) {
1815
- message = error.message;
1816
- }
1817
- else if (error && typeof error === 'object') {
1818
- message = JSON.stringify(error);
1819
- }
1820
- else if (error) {
1821
- message = error.toString();
1822
- }
1823
- return [4 /*yield*/, this.ui.toast(message, { duration: this.config.authUi.toastDefaultDurationMil })];
1824
- case 2:
1825
- _c.sent();
1826
- _c.label = 3;
1827
- case 3: return [2 /*return*/];
1828
- }
1829
- });
1830
- });
1831
- };
1832
- /**
1833
- * Returns a firebase auth provider object for the specified provider
1834
- */
1835
- AuthProcessService.prototype.getAuthProvider = function (provider) {
1836
- if (!app.firebase.auth) {
1837
- throw new Error('firebase.auth is undefined');
1838
- }
1839
- switch (provider) {
1840
- case exports.AuthProvider.Google: return new app.firebase.auth.GoogleAuthProvider();
1841
- case exports.AuthProvider.Apple: return new app.firebase.auth.OAuthProvider('apple.com');
1842
- case exports.AuthProvider.Facebook: return new app.firebase.auth.FacebookAuthProvider();
1843
- case exports.AuthProvider.Twitter: return new app.firebase.auth.TwitterAuthProvider();
1844
- case exports.AuthProvider.Github: return new app.firebase.auth.GithubAuthProvider();
1845
- case exports.AuthProvider.Microsoft: return new app.firebase.auth.OAuthProvider('microsoft.com');
1846
- case exports.AuthProvider.Yahoo: return new app.firebase.auth.OAuthProvider('yahoo.com');
1847
- default: throw new Error(provider + " is not available as auth provider");
1848
- }
1849
- };
1850
- return AuthProcessService;
1851
- }());
1852
- AuthProcessService.ɵprov = i0.ɵɵdefineInjectable({ factory: function AuthProcessService_Factory() { return new AuthProcessService(i0.ɵɵinject(MalSharedConfigToken), i0.ɵɵinject(AuthHooksProviderToken, 8), i0.ɵɵinject(MalCredentialFactoryProviderToken, 8), i0.ɵɵinject(FirestoreSyncService), i0.ɵɵinject(i3.AngularFireAuth), i0.ɵɵinject(FirebaseService), i0.ɵɵinject(UiService)); }, token: AuthProcessService, providedIn: "root" });
1853
- AuthProcessService.decorators = [
1854
- { type: i0.Injectable, args: [{
1855
- providedIn: 'root',
1856
- },] }
1857
- ];
1858
- AuthProcessService.ctorParameters = function () { return [
1859
- { type: undefined, decorators: [{ type: i0.Inject, args: [i0.forwardRef(function () { return MalSharedConfigToken; }),] }] },
1860
- { type: undefined, decorators: [{ type: i0.Optional }, { type: i0.Inject, args: [i0.forwardRef(function () { return AuthHooksProviderToken; }),] }] },
1861
- { type: undefined, decorators: [{ type: i0.Optional }, { type: i0.Inject, args: [i0.forwardRef(function () { return MalCredentialFactoryProviderToken; }),] }] },
1862
- { type: FirestoreSyncService },
1863
- { type: i3.AngularFireAuth },
1864
- { type: FirebaseService },
1865
- { type: UiService }
1866
- ]; };
1867
-
1868
- exports.DisplayWidth = void 0;
1869
- (function (DisplayWidth) {
1870
- DisplayWidth[DisplayWidth["xs"] = 1] = "xs";
1871
- DisplayWidth[DisplayWidth["sm"] = 576] = "sm";
1872
- DisplayWidth[DisplayWidth["md"] = 768] = "md";
1873
- DisplayWidth[DisplayWidth["lg"] = 992] = "lg";
1874
- DisplayWidth[DisplayWidth["xl"] = 1200] = "xl";
1875
- })(exports.DisplayWidth || (exports.DisplayWidth = {}));
1876
-
1877
- /* @Component({
1878
- template: ''
1879
- }) */
1880
- var ValueAccessorValueComponent = /** @class */ (function () {
1881
- function ValueAccessorValueComponent() {
1882
- this.valueChange = new i0.EventEmitter();
1883
- this.propagateChange = function (_) { };
1884
- this.propagateTouch = function (_) { }; // TODO - Not implemented.
1885
- this.propagateValidatorChange = function () { }; // TODO - Not implemented.
1886
- }
1887
- Object.defineProperty(ValueAccessorValueComponent.prototype, "value", {
1888
- get: function () { return this._value; },
1889
- set: function (val) {
1890
- if (val) {
1891
- this._value = val;
1892
- this.valueChange.emit(val);
1893
- this.propagateChange(val);
1894
- }
1895
- },
1896
- enumerable: false,
1897
- configurable: true
1898
- });
1899
- ValueAccessorValueComponent.prototype.validate = function (control) {
1900
- return null;
1901
- };
1902
- ValueAccessorValueComponent.prototype.writeValue = function (value) {
1903
- this.value = value;
1904
- };
1905
- ValueAccessorValueComponent.prototype.registerOnChange = function (fn) {
1906
- this.propagateChange = fn;
1907
- };
1908
- ValueAccessorValueComponent.prototype.registerOnTouched = function (fn) {
1909
- this.propagateTouch = fn;
1910
- };
1911
- ValueAccessorValueComponent.prototype.registerOnValidatorChange = function (fn) {
1912
- this.propagateValidatorChange = fn;
1913
- };
1914
- return ValueAccessorValueComponent;
1915
- }());
1916
- ValueAccessorValueComponent.propDecorators = {
1917
- value: [{ type: i0.Input }],
1918
- valueChange: [{ type: i0.Output }]
1919
- };
1920
-
1921
- /* @Component({
1922
- template: ''
1923
- }) */
1924
- var ValueAccessorControlComponent = /** @class */ (function () {
1925
- function ValueAccessorControlComponent(injector, cdRef) {
1926
- this.injector = injector;
1927
- this.cdRef = cdRef;
1928
- this.destroy$ = new rxjs.ReplaySubject();
1929
- this.valueChange = new i0.EventEmitter();
1930
- this.propagateChange = function (val) { };
1931
- this.propagateTouch = function () { };
1932
- this.propagateValidatorChange = function () { };
1933
- }
1934
- Object.defineProperty(ValueAccessorControlComponent.prototype, "_control", {
1935
- get: function () {
1936
- if (!this.control) {
1937
- throw new Error('ValueAccessorControlComponent: this.control must be eclipsed in the subclass');
1938
- }
1939
- return this.control;
1940
- },
1941
- enumerable: false,
1942
- configurable: true
1943
- });
1944
- Object.defineProperty(ValueAccessorControlComponent.prototype, "value", {
1945
- get: function () {
1946
- return this._control.value;
1947
- },
1948
- set: function (val) {
1949
- if (val) {
1950
- this._control.setValue(val);
1951
- }
1952
- else {
1953
- this._control.reset();
1954
- }
1955
- },
1956
- enumerable: false,
1957
- configurable: true
1958
- });
1959
- ValueAccessorControlComponent.prototype.ngOnInit = function () {
1960
- var _this = this;
1961
- this._control.valueChanges
1962
- .pipe(operators.takeUntil(this.destroy$))
1963
- .subscribe(function (val) {
1964
- if (_this._control.dirty) {
1965
- _this.propagateChange(val);
1966
- _this.propagateTouch();
1967
- _this.valueChange.emit(val);
1968
- }
1969
- });
1970
- this._control.statusChanges
1971
- .pipe(operators.takeUntil(this.destroy$))
1972
- .subscribe(function () { return _this.propagateValidatorChange(); });
1973
- };
1974
- ValueAccessorControlComponent.prototype.ngAfterViewInit = function () {
1975
- this.parentControl = this.injector.get(forms.NgControl, null);
1976
- this.cdRef.detectChanges();
1977
- };
1978
- ValueAccessorControlComponent.prototype.ngOnDestroy = function () {
1979
- this.destroy$.next();
1980
- this.destroy$.complete();
1981
- };
1982
- ValueAccessorControlComponent.prototype.writeValue = function (value) {
1983
- this.value = value;
1984
- };
1985
- ValueAccessorControlComponent.prototype.registerOnChange = function (fn) {
1986
- this.propagateChange = fn;
1987
- };
1988
- ValueAccessorControlComponent.prototype.registerOnTouched = function (fn) {
1989
- this.propagateTouch = fn;
1990
- };
1991
- ValueAccessorControlComponent.prototype.registerOnValidatorChange = function (fn) {
1992
- this.propagateValidatorChange = fn;
1993
- };
1994
- ValueAccessorControlComponent.prototype.setDisabledState = function (isDisabled) {
1995
- if (isDisabled) {
1996
- this._control.disable();
1997
- }
1998
- else {
1999
- this._control.enable();
2000
- }
2001
- };
2002
- ValueAccessorControlComponent.prototype.validate = function (control) {
2003
- return this._control.errors;
2004
- };
2005
- return ValueAccessorControlComponent;
2006
- }());
2007
- ValueAccessorControlComponent.propDecorators = {
2008
- value: [{ type: i0.Input }],
2009
- valueChange: [{ type: i0.Output }]
2010
- };
2011
-
2012
- var LoggedInGuard = /** @class */ (function () {
2013
- function LoggedInGuard(config, router, aps) {
2014
- this.config = config;
2015
- this.router = router;
2016
- this.aps = aps;
2017
- }
2018
- LoggedInGuard.prototype.guardOutcome = function (redirectUrl) {
2019
- var _this = this;
2020
- return this.aps.user$.pipe(operators.take(1), operators.map(function (user) {
2021
- if (user) {
2022
- if (_this.config.authUi.guardProtectedRoutesUntilEmailIsVerified && !user.emailVerified) {
2023
- if (_this.config.authUi.authGuardVerifyEmailURL) {
2024
- return _this.router.createUrlTree(["" + _this.config.authUi.authGuardVerifyEmailURL], { queryParams: { redirectUrl: redirectUrl } });
2025
- }
2026
- else if (_this.config.authUi.authGuardFallbackURL) {
2027
- return _this.router.createUrlTree(["" + _this.config.authUi.authGuardFallbackURL], { queryParams: { redirectUrl: redirectUrl } });
2028
- }
2029
- else {
2030
- return false;
2031
- }
2032
- }
2033
- else {
2034
- return true;
2035
- }
2036
- }
2037
- else {
2038
- if (_this.config.authUi.authGuardFallbackURL) {
2039
- return _this.router.createUrlTree(["" + _this.config.authUi.authGuardFallbackURL], { queryParams: { redirectUrl: redirectUrl } });
2040
- }
2041
- return false;
2042
- }
2043
- }));
2044
- };
2045
- LoggedInGuard.prototype.canLoad = function (route, segments) {
2046
- return this.guardOutcome(segments[0].parameters.url);
2047
- };
2048
- LoggedInGuard.prototype.canActivate = function (route, state) {
2049
- return this.guardOutcome(state.url);
2050
- };
2051
- return LoggedInGuard;
2052
- }());
2053
- 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" });
2054
- LoggedInGuard.decorators = [
2055
- { type: i0.Injectable, args: [{
2056
- providedIn: 'root'
2057
- },] }
2058
- ];
2059
- LoggedInGuard.ctorParameters = function () { return [
2060
- { type: undefined, decorators: [{ type: i0.Inject, args: [MalSharedConfigToken,] }] },
2061
- { type: i2.Router },
2062
- { type: AuthProcessService }
2063
- ]; };
2064
-
2065
- var VerifyEmailGuard = /** @class */ (function () {
2066
- function VerifyEmailGuard(config, router, aps) {
2067
- this.config = config;
2068
- this.router = router;
2069
- this.aps = aps;
2070
- }
2071
- VerifyEmailGuard.prototype.canActivate = function (route, state) {
2072
- var _this = this;
2073
- return this.aps.user$.pipe(operators.map(function (user) {
2074
- if (user
2075
- && !user.emailVerified
2076
- && !user.isAnonymous
2077
- && _this.config.authUi.authGuardVerifyEmailURL) {
2078
- return _this.router.createUrlTree(["" + _this.config.authUi.authGuardVerifyEmailURL], { queryParams: { redirectUrl: state.url } });
2079
- }
2080
- else {
2081
- return true;
2082
- }
2083
- }));
2084
- };
2085
- return VerifyEmailGuard;
2086
- }());
2087
- 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" });
2088
- VerifyEmailGuard.decorators = [
2089
- { type: i0.Injectable, args: [{
2090
- providedIn: 'root'
2091
- },] }
2092
- ];
2093
- VerifyEmailGuard.ctorParameters = function () { return [
2094
- { type: undefined, decorators: [{ type: i0.Inject, args: [MalSharedConfigToken,] }] },
2095
- { type: i2.Router },
2096
- { type: AuthProcessService }
2097
- ]; };
2098
-
2099
- var MODULES = [
2100
- http.HttpClientModule,
2101
- i3.AngularFireAuthModule,
2102
- i1$2.AngularFirestoreModule,
2103
- functions.AngularFireFunctionsModule
2104
- ];
2105
- var MalSharedModule = /** @class */ (function () {
2106
- function MalSharedModule() {
2107
- }
2108
- MalSharedModule.forRoot = function (config, appNameFactory) {
2109
- if (appNameFactory === void 0) { appNameFactory = function () { return undefined; }; }
2110
- var _a;
2111
- return {
2112
- ngModule: MalSharedModule,
2113
- providers: [
2114
- {
2115
- provide: MalUserProvidedConfigToken,
2116
- useValue: config
2117
- },
2118
- {
2119
- provide: MalSharedConfigToken,
2120
- useFactory: malSharedConfigFactory,
2121
- deps: [MalUserProvidedConfigToken]
2122
- },
2123
- {
2124
- provide: i1.DEFAULTS,
2125
- useValue: config.configDefaults
2126
- },
2127
- {
2128
- provide: i1.SETTINGS,
2129
- useFactory: function () { return i0.isDevMode() ? { minimumFetchIntervalMillis: 3600000 } : {}; } // 1 hour§
2130
- },
2131
- {
2132
- provide: fire.FIREBASE_OPTIONS,
2133
- useValue: config.firebase
2134
- },
2135
- {
2136
- provide: fire.FIREBASE_APP_NAME,
2137
- useFactory: appNameFactory
2138
- },
2139
- {
2140
- provide: i3.USE_EMULATOR,
2141
- useFactory: authEmulatorFactory,
2142
- deps: [MalSharedConfigToken]
2143
- },
2144
- {
2145
- provide: i1$2.USE_EMULATOR,
2146
- useFactory: firestoreEmulatorFactory,
2147
- deps: [MalSharedConfigToken]
2148
- },
2149
- {
2150
- provide: functions.USE_EMULATOR,
2151
- useFactory: functionsEmulatorFactory,
2152
- deps: [MalSharedConfigToken]
2153
- },
2154
- {
2155
- provide: functions.REGION,
2156
- useValue: ((_a = config.services) === null || _a === void 0 ? void 0 : _a.firebaseRegion) || null
2157
- },
2158
- {
2159
- provide: i1$1.AngularFirePerformance,
2160
- useFactory: performanceProviderFactory,
2161
- deps: [
2162
- MalSharedConfigToken,
2163
- fire.FirebaseApp,
2164
- [new i0.Optional(), i1$1.DATA_COLLECTION_ENABLED],
2165
- [new i0.Optional(), i1$1.INSTRUMENTATION_ENABLED],
2166
- i0.NgZone,
2167
- i0.PLATFORM_ID
2168
- ]
2169
- },
2170
- {
2171
- provide: i1.AngularFireRemoteConfig,
2172
- useFactory: remoteConfigFirebaseService,
2173
- deps: [
2174
- MalSharedConfigToken,
2175
- fire.FIREBASE_OPTIONS,
2176
- fire.FIREBASE_APP_NAME,
2177
- i1.SETTINGS,
2178
- i1.DEFAULTS,
2179
- i0.NgZone,
2180
- i0.PLATFORM_ID
2181
- ]
2182
- },
2183
- AnalyticsService,
2184
- CrashlyticsService,
2185
- FirebaseService,
2186
- UiService,
2187
- RemoteConfigService,
2188
- AuthProcessService,
2189
- FirestoreSyncService,
2190
- PerformanceService,
2191
- i3.AngularFireAuth,
2192
- LoggedInGuard,
2193
- VerifyEmailGuard
2194
- ],
2195
- };
2196
- };
2197
- return MalSharedModule;
2198
- }());
2199
- MalSharedModule.decorators = [
2200
- { type: i0.NgModule, args: [{
2201
- imports: __spread(MODULES, [
2202
- core.TranslateModule.forChild(),
2203
- fire.AngularFireModule,
2204
- ]),
2205
- exports: __spread(MODULES, [
2206
- core.TranslateModule
2207
- ])
2208
- },] }
2209
- ];
2210
- function performanceProviderFactory(config, app, dataCollectionEnabled, instrumentationEnabled, zone, platformId) {
2211
- if (config.services.firebasePerformance) {
2212
- return new i1$1.AngularFirePerformance(app, dataCollectionEnabled, instrumentationEnabled, zone, platformId);
2213
- }
2214
- return null;
2215
- }
2216
- function remoteConfigFirebaseService(config, options, nameOrConfig, settings, defaultConfig, zone, platformId) {
2217
- if (config.services.firebaseRemoteConfig) {
2218
- return new i1.AngularFireRemoteConfig(options, nameOrConfig, settings, defaultConfig, zone, platformId);
2219
- }
2220
- return null;
2221
- }
2222
- function authEmulatorFactory(config) {
2223
- if (true === config.services.firebaseAuth) {
2224
- return undefined;
2225
- }
2226
- else {
2227
- return config.services.firebaseAuth;
2228
- }
2229
- }
2230
- function firestoreEmulatorFactory(config) {
2231
- if (true === config.services.firebaseFirestore) {
2232
- return undefined;
2233
- }
2234
- else {
2235
- return config.services.firebaseFirestore;
2236
- }
2237
- }
2238
- function functionsEmulatorFactory(config) {
2239
- if (true === config.services.firebaseFunctions) {
2240
- return undefined;
2241
- }
2242
- else {
2243
- return config.services.firebaseFunctions;
2244
- }
2245
- }
2246
-
2247
- /**
2248
- * Generated bundle index. Do not edit.
2249
- */
2250
-
2251
- exports.AnalyticsService = AnalyticsService;
2252
- exports.AuthHooksProviderToken = AuthHooksProviderToken;
2253
- exports.AuthProcessService = AuthProcessService;
2254
- exports.CrashlyticsService = CrashlyticsService;
2255
- exports.FirebaseService = FirebaseService;
2256
- exports.FirestoreSyncService = FirestoreSyncService;
2257
- exports.LoggedInGuard = LoggedInGuard;
2258
- exports.MalAlertsUIProviderToken = MalAlertsUIProviderToken;
2259
- exports.MalAnalyticsProviderToken = MalAnalyticsProviderToken;
2260
- exports.MalAuthServiceProviderToken = MalAuthServiceProviderToken;
2261
- exports.MalCrashlyticsProviderToken = MalCrashlyticsProviderToken;
2262
- exports.MalCredentialFactoryProviderToken = MalCredentialFactoryProviderToken;
2263
- exports.MalDeviceInfoService = MalDeviceInfoService;
2264
- exports.MalLegaliyDialogUIProiderToken = MalLegaliyDialogUIProiderToken;
2265
- exports.MalLoadingUIProviderToken = MalLoadingUIProviderToken;
2266
- exports.MalPickerUIProviderToken = MalPickerUIProviderToken;
2267
- exports.MalSharedConfigToken = MalSharedConfigToken;
2268
- exports.MalSharedModule = MalSharedModule;
2269
- exports.MalToastUIProviderToken = MalToastUIProviderToken;
2270
- exports.MalUserProvidedConfigToken = MalUserProvidedConfigToken;
2271
- exports.PHONE_NUMBER_REGEX = PHONE_NUMBER_REGEX;
2272
- exports.PerformanceService = PerformanceService;
2273
- exports.PerformanceTraceNoop = PerformanceTraceNoop;
2274
- exports.RemoteConfigService = RemoteConfigService;
2275
- exports.UiService = UiService;
2276
- exports.ValueAccessorControlComponent = ValueAccessorControlComponent;
2277
- exports.ValueAccessorValueComponent = ValueAccessorValueComponent;
2278
- exports.VerifyEmailGuard = VerifyEmailGuard;
2279
- exports.authEmulatorFactory = authEmulatorFactory;
2280
- exports.defaultAuthFirebaseUIConfig = defaultAuthFirebaseUIConfig;
2281
- exports.firestoreEmulatorFactory = firestoreEmulatorFactory;
2282
- exports.functionsEmulatorFactory = functionsEmulatorFactory;
2283
- exports.malSharedConfigFactory = malSharedConfigFactory;
2284
- exports.performanceProviderFactory = performanceProviderFactory;
2285
- exports.remoteConfigFirebaseService = remoteConfigFirebaseService;
2286
- exports.ɵa = MalAnalyticsProviderToken;
2287
- exports.ɵc = MalCrashlyticsProviderToken;
2288
- exports.ɵe = MalSharedConfigToken;
2289
- exports.ɵf = AuthHooksProviderToken;
2290
- exports.ɵg = MalCredentialFactoryProviderToken;
2291
- exports.ɵk = MalToastUIProviderToken;
2292
- exports.ɵl = MalAlertsUIProviderToken;
2293
- exports.ɵm = MalLoadingUIProviderToken;
2294
- exports.ɵn = MalLegaliyDialogUIProiderToken;
2295
-
2296
- Object.defineProperty(exports, '__esModule', { value: true });
2297
-
2298
- })));
2299
- //# sourceMappingURL=ngx-firebase.umd.js.map