ngx-firebase 1.1.13 → 22.0.1

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 +121 -13
  2. package/fesm2022/ngx-firebase.mjs +158 -0
  3. package/fesm2022/ngx-firebase.mjs.map +1 -0
  4. package/package.json +39 -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,40 +0,0 @@
1
- import { __awaiter } from "tslib";
2
- import { Plugins, Capacitor } from '@capacitor/core';
3
- import { Injectable } from '@angular/core';
4
- import * as i0 from "@angular/core";
5
- const { FirebaseCrashlytics } = Plugins;
6
- export class CrashlyticsFirebaseCapacitorService {
7
- constructor() {
8
- }
9
- setUserId(uid) {
10
- if (Capacitor.isPluginAvailable('FirebaseCrashlytics')) {
11
- FirebaseCrashlytics.setUserId({ userId: uid });
12
- }
13
- }
14
- recordException(options) {
15
- return __awaiter(this, void 0, void 0, function* () {
16
- if (Capacitor.isPluginAvailable('FirebaseCrashlytics')) {
17
- yield FirebaseCrashlytics.recordException(options);
18
- }
19
- else {
20
- console.log('Crashlytics Exception (not sent)>', options.message, options);
21
- }
22
- });
23
- }
24
- addLogMessage(message) {
25
- return __awaiter(this, void 0, void 0, function* () {
26
- if (Capacitor.isPluginAvailable('FirebaseCrashlytics')) {
27
- yield FirebaseCrashlytics.addLogMessage({ message });
28
- }
29
- else {
30
- console.log('Crashlytics Log (not sent)>', message);
31
- }
32
- });
33
- }
34
- }
35
- CrashlyticsFirebaseCapacitorService.ɵprov = i0.ɵɵdefineInjectable({ factory: function CrashlyticsFirebaseCapacitorService_Factory() { return new CrashlyticsFirebaseCapacitorService(); }, token: CrashlyticsFirebaseCapacitorService, providedIn: "root" });
36
- CrashlyticsFirebaseCapacitorService.decorators = [
37
- { type: Injectable, args: [{ providedIn: 'root' },] }
38
- ];
39
- CrashlyticsFirebaseCapacitorService.ctorParameters = () => [];
40
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3Jhc2hseXRpY3MtZmlyZWJhc2UtY2FwYWNpdG9yLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtZmlyZWJhc2UvY2FwYWNpdG9yL3NyYy9zZXJ2aWNlcy9jcmFzaGx5dGljcy1maXJlYmFzZS1jYXBhY2l0b3Iuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUFFLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUVyRCxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDOztBQUUzQyxNQUFNLEVBQUUsbUJBQW1CLEVBQUUsR0FBRyxPQUFPLENBQUM7QUFHeEMsTUFBTSxPQUFPLG1DQUFtQztJQUU1QztJQUVBLENBQUM7SUFFRCxTQUFTLENBQUMsR0FBa0I7UUFDeEIsSUFBSSxTQUFTLENBQUMsaUJBQWlCLENBQUMscUJBQXFCLENBQUMsRUFBRTtZQUNwRCxtQkFBbUIsQ0FBQyxTQUFTLENBQUMsRUFBRSxNQUFNLEVBQUUsR0FBRyxFQUFFLENBQUMsQ0FBQztTQUNsRDtJQUNMLENBQUM7SUFFSyxlQUFlLENBQUMsT0FBd0M7O1lBQzFELElBQUksU0FBUyxDQUFDLGlCQUFpQixDQUFDLHFCQUFxQixDQUFDLEVBQUU7Z0JBQ3BELE1BQU0sbUJBQW1CLENBQUMsZUFBZSxDQUFDLE9BQU8sQ0FBQyxDQUFDO2FBQ3REO2lCQUFNO2dCQUNILE9BQU8sQ0FBQyxHQUFHLENBQUMsbUNBQW1DLEVBQUUsT0FBTyxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQzthQUM5RTtRQUNMLENBQUM7S0FBQTtJQUVLLGFBQWEsQ0FBQyxPQUFlOztZQUMvQixJQUFJLFNBQVMsQ0FBQyxpQkFBaUIsQ0FBQyxxQkFBcUIsQ0FBQyxFQUFFO2dCQUNwRCxNQUFNLG1CQUFtQixDQUFDLGFBQWEsQ0FBQyxFQUFFLE9BQU8sRUFBRSxDQUFDLENBQUM7YUFDeEQ7aUJBQU07Z0JBQ0gsT0FBTyxDQUFDLEdBQUcsQ0FBQyw2QkFBNkIsRUFBRSxPQUFPLENBQUMsQ0FBQzthQUN2RDtRQUNMLENBQUM7S0FBQTs7OztZQTNCSixVQUFVLFNBQUMsRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgUGx1Z2lucywgQ2FwYWNpdG9yIH0gZnJvbSAnQGNhcGFjaXRvci9jb3JlJztcbmltcG9ydCB7IGlPU0V4Y2VwdGlvbiwgQW5kcm9pZEV4Y2VwdGlvbiB9IGZyb20gJ0BjYXBhY2l0b3ItY29tbXVuaXR5L2ZpcmViYXNlLWNyYXNobHl0aWNzJztcbmltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IElDcmFzaGx5dGljc1Byb3ZpZGVyIH0gZnJvbSAnbmd4LWZpcmViYXNlJztcbmNvbnN0IHsgRmlyZWJhc2VDcmFzaGx5dGljcyB9ID0gUGx1Z2lucztcblxuQEluamVjdGFibGUoeyBwcm92aWRlZEluOiAncm9vdCcgfSlcbmV4cG9ydCBjbGFzcyBDcmFzaGx5dGljc0ZpcmViYXNlQ2FwYWNpdG9yU2VydmljZSBpbXBsZW1lbnRzIElDcmFzaGx5dGljc1Byb3ZpZGVyIHtcblxuICAgIGNvbnN0cnVjdG9yKFxuICAgICkge1xuICAgIH1cblxuICAgIHNldFVzZXJJZCh1aWQ6IHN0cmluZyB8IG51bGwpIHtcbiAgICAgICAgaWYgKENhcGFjaXRvci5pc1BsdWdpbkF2YWlsYWJsZSgnRmlyZWJhc2VDcmFzaGx5dGljcycpKSB7XG4gICAgICAgICAgICBGaXJlYmFzZUNyYXNobHl0aWNzLnNldFVzZXJJZCh7IHVzZXJJZDogdWlkIH0pO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgYXN5bmMgcmVjb3JkRXhjZXB0aW9uKG9wdGlvbnM6IGlPU0V4Y2VwdGlvbiB8IEFuZHJvaWRFeGNlcHRpb24pIHtcbiAgICAgICAgaWYgKENhcGFjaXRvci5pc1BsdWdpbkF2YWlsYWJsZSgnRmlyZWJhc2VDcmFzaGx5dGljcycpKSB7XG4gICAgICAgICAgICBhd2FpdCBGaXJlYmFzZUNyYXNobHl0aWNzLnJlY29yZEV4Y2VwdGlvbihvcHRpb25zKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGNvbnNvbGUubG9nKCdDcmFzaGx5dGljcyBFeGNlcHRpb24gKG5vdCBzZW50KT4nLCBvcHRpb25zLm1lc3NhZ2UsIG9wdGlvbnMpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgYXN5bmMgYWRkTG9nTWVzc2FnZShtZXNzYWdlOiBzdHJpbmcpIHtcbiAgICAgICAgaWYgKENhcGFjaXRvci5pc1BsdWdpbkF2YWlsYWJsZSgnRmlyZWJhc2VDcmFzaGx5dGljcycpKSB7XG4gICAgICAgICAgICBhd2FpdCBGaXJlYmFzZUNyYXNobHl0aWNzLmFkZExvZ01lc3NhZ2UoeyBtZXNzYWdlIH0pO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgY29uc29sZS5sb2coJ0NyYXNobHl0aWNzIExvZyAobm90IHNlbnQpPicsIG1lc3NhZ2UpO1xuICAgICAgICB9XG4gICAgfVxuXG59XG4iXX0=
@@ -1,182 +0,0 @@
1
- import { __awaiter } from "tslib";
2
- import { forwardRef, Inject, Injectable } from '@angular/core';
3
- import { firebase } from '@firebase/app';
4
- import 'firebase/auth';
5
- import * as i0 from "@angular/core";
6
- import * as i1 from "ngx-firebase";
7
- import * as i2 from "../interfaces/config";
8
- if (!firebase.auth) {
9
- throw new Error('firebase.auth is undefined');
10
- }
11
- import { Plugins, Capacitor, Device, WebPluginRegistry } from '@capacitor/core';
12
- import { AuthProvider, FirebaseService, MalSharedConfigToken } from 'ngx-firebase';
13
- import { MalCapacitorConfigToken } from '../interfaces';
14
- import { v4 as uuid } from 'uuid';
15
- import { sha256 } from 'js-sha256';
16
- WebPluginRegistry;
17
- const { Browser, CapacitorFirebaseDynamicLinks, CapacitorFirebaseAuth } = Plugins;
18
- const fireAuth = firebase.auth;
19
- export class AuthCredentialFactoryCapacitorService {
20
- constructor(fire, sharedConfig, capConfg) {
21
- this.fire = fire;
22
- this.sharedConfig = sharedConfig;
23
- this.capConfg = capConfg;
24
- }
25
- /**
26
- * Returns true if current platform is webplatform supported by @angular/fire
27
- */
28
- get isWebPlatform() {
29
- return ['https:', 'http:', 'chrome-extension'].includes(location.protocol);
30
- }
31
- deviceSupportsNativeApple() {
32
- return __awaiter(this, void 0, void 0, function* () {
33
- const deviceInfo = yield Device.getInfo();
34
- const osMajor = parseInt(deviceInfo.osVersion.split('.')[0], 10);
35
- if (osMajor >= 13 && Capacitor.platform === 'ios') {
36
- return true;
37
- }
38
- else if (Capacitor.platform === 'ios') {
39
- console.warn('Disabling native-support for signInWithApple as iOS version < 13');
40
- }
41
- return false;
42
- });
43
- }
44
- isProviderSupported(provider) {
45
- return __awaiter(this, void 0, void 0, function* () {
46
- if (this.isWebPlatform) {
47
- return false;
48
- }
49
- switch (provider) {
50
- case AuthProvider.Apple:
51
- return !!this.capConfg.signInWithApple || ((yield this.deviceSupportsNativeApple()) && Capacitor.isPluginAvailable('CapacitorFirebaseAuth'));
52
- case AuthProvider.Google:
53
- case AuthProvider.Facebook:
54
- case AuthProvider.Twitter:
55
- return Capacitor.isPluginAvailable('CapacitorFirebaseAuth');
56
- default:
57
- return false;
58
- }
59
- });
60
- }
61
- getCredential(provider) {
62
- return __awaiter(this, void 0, void 0, function* () {
63
- if (!this.isProviderSupported(provider)) {
64
- throw new Error(`Provider ${provider} is not supported on this platform`);
65
- }
66
- if (!CapacitorFirebaseAuth) {
67
- throw new Error(`CapacitorFirebaseAuth plugin not available`);
68
- }
69
- switch (provider) {
70
- case AuthProvider.Google: {
71
- const googleAuthProvider = new fireAuth.GoogleAuthProvider();
72
- this.fire.addLogMessage(`signIn using CapacitorFirebaseAuth; provider=${provider}`);
73
- const googleRes = yield CapacitorFirebaseAuth.signIn({ providerId: googleAuthProvider.providerId });
74
- if (googleRes.idToken) {
75
- this.fire.addLogMessage(`Creating credential using firebase; provider=${provider}`);
76
- return fireAuth.GoogleAuthProvider.credential(googleRes.idToken);
77
- }
78
- else {
79
- return null;
80
- }
81
- }
82
- case AuthProvider.Facebook: {
83
- const facebookAuthProvider = new fireAuth.FacebookAuthProvider();
84
- this.fire.addLogMessage(`signIn using CapacitorFirebaseAuth; provider=${provider}`);
85
- const facebookRes = yield CapacitorFirebaseAuth.signIn({ providerId: facebookAuthProvider.providerId });
86
- if (facebookRes.idToken) {
87
- this.fire.addLogMessage(`Creating credential using firebase; provider=${provider}`);
88
- return fireAuth.FacebookAuthProvider.credential(facebookRes.idToken);
89
- }
90
- else {
91
- return null;
92
- }
93
- }
94
- case AuthProvider.Apple: {
95
- if (yield this.deviceSupportsNativeApple()) {
96
- const appleAuthProvider = new fireAuth.OAuthProvider('apple.com');
97
- this.fire.addLogMessage(`signIn using CapacitorFirebaseAuth; provider=${provider}`);
98
- const appleRes = yield CapacitorFirebaseAuth.signIn({ providerId: appleAuthProvider.providerId });
99
- if (appleRes.idToken) {
100
- this.fire.addLogMessage(`Creating credential using firebase; provider=${provider}`);
101
- return appleAuthProvider.credential(appleRes);
102
- }
103
- else {
104
- return null;
105
- }
106
- }
107
- else if (this.capConfg.signInWithApple) {
108
- const signInConfig = this.capConfg.signInWithApple;
109
- return yield new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {
110
- const nonce = uuid();
111
- const deepLinkHandler = CapacitorFirebaseDynamicLinks.addListener('deepLinkOpen', (data) => __awaiter(this, void 0, void 0, function* () {
112
- if (data.url && data.url.startsWith(signInConfig.redirectDeekLink)) {
113
- const params = new URLSearchParams(new URL(data.url).search);
114
- const idToken = params.get('id_token');
115
- const error = params.get('error');
116
- deepLinkHandler.remove();
117
- browserCloseHandler.remove();
118
- yield Browser.close();
119
- if (idToken && !error) {
120
- const appleAuthProvider = new fireAuth.OAuthProvider('apple.com');
121
- resolve(appleAuthProvider.credential({ idToken, rawNonce: nonce }));
122
- }
123
- else {
124
- reject(error);
125
- }
126
- }
127
- }));
128
- const browserCloseHandler = Browser.addListener('browserFinished', (data) => __awaiter(this, void 0, void 0, function* () {
129
- // handle user close of browser (i.e. cancel operation)
130
- deepLinkHandler.remove();
131
- browserCloseHandler.remove();
132
- resolve(null);
133
- }));
134
- yield Browser.open({
135
- url: `${signInConfig.authUrl || 'http://appleid.apple.com/auth/authorize'}`
136
- + `?nonce=${encodeURIComponent(sha256(nonce))}`
137
- + `&client_id=${encodeURIComponent(signInConfig.clientId)}`
138
- + `&redirect_uri=${encodeURIComponent(signInConfig.redirectUrl)}`
139
- + `&response_type=code%20id_token&response_mode=form_post`
140
- });
141
- }));
142
- }
143
- }
144
- case AuthProvider.Twitter: {
145
- const twitterAuthProvider = new fireAuth.TwitterAuthProvider();
146
- this.fire.addLogMessage(`signIn using CapacitorFirebaseAuth; provider=${provider}`);
147
- const twitterRes = yield CapacitorFirebaseAuth.signIn({ providerId: twitterAuthProvider.providerId });
148
- if (twitterRes.idToken && twitterRes.secret) {
149
- this.fire.addLogMessage(`Creating credential using firebase; provider=${provider}`);
150
- return fireAuth.TwitterAuthProvider.credential(twitterRes.idToken, twitterRes.secret);
151
- }
152
- else {
153
- return null;
154
- }
155
- }
156
- default:
157
- this.fire.addLogMessage(`Attempting unsupported native provider; provider=${provider}`);
158
- throw new Error(`${provider} is not available as a credential provider for this platform`);
159
- }
160
- });
161
- }
162
- signOut() {
163
- return __awaiter(this, void 0, void 0, function* () {
164
- if (CapacitorFirebaseAuth) {
165
- this.fire.addLogMessage('signOut using CapacitorFirebaseAuth');
166
- yield CapacitorFirebaseAuth.signOut({});
167
- }
168
- });
169
- }
170
- }
171
- AuthCredentialFactoryCapacitorService.ɵprov = i0.ɵɵdefineInjectable({ factory: function AuthCredentialFactoryCapacitorService_Factory() { return new AuthCredentialFactoryCapacitorService(i0.ɵɵinject(i1.FirebaseService), i0.ɵɵinject(i1.MalSharedConfigToken), i0.ɵɵinject(i2.MalCapacitorConfigToken)); }, token: AuthCredentialFactoryCapacitorService, providedIn: "root" });
172
- AuthCredentialFactoryCapacitorService.decorators = [
173
- { type: Injectable, args: [{
174
- providedIn: 'root'
175
- },] }
176
- ];
177
- AuthCredentialFactoryCapacitorService.ctorParameters = () => [
178
- { type: FirebaseService },
179
- { type: undefined, decorators: [{ type: Inject, args: [forwardRef(() => MalSharedConfigToken),] }] },
180
- { type: undefined, decorators: [{ type: Inject, args: [forwardRef(() => MalCapacitorConfigToken),] }] }
181
- ];
182
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3JlZGVudGlhbC1mYWN0b3J5LWNhcGFjaXRvci5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LWZpcmViYXNlL2NhcGFjaXRvci9zcmMvc2VydmljZXMvY3JlZGVudGlhbC1mYWN0b3J5LWNhcGFjaXRvci5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDL0QsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN6QyxPQUFPLGVBQWUsQ0FBQzs7OztBQUV2QixJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksRUFBRTtJQUNsQixNQUFNLElBQUksS0FBSyxDQUFDLDRCQUE0QixDQUFDLENBQUM7Q0FDL0M7QUFFRCxPQUFPLEVBQUUsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLEVBQXdCLGlCQUFpQixFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDdEcsT0FBTyxFQUFFLFlBQVksRUFBOEIsZUFBZSxFQUFtQixvQkFBb0IsRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUNoSSxPQUFPLEVBQXNCLHVCQUF1QixFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzVFLE9BQU8sRUFBRSxFQUFFLElBQUksSUFBSSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ2xDLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxXQUFXLENBQUM7QUFFbkMsaUJBQWlCLENBQUE7QUFFakIsTUFBTSxFQUFFLE9BQU8sRUFBRSw2QkFBNkIsRUFBRSxxQkFBcUIsRUFBRSxHQUFHLE9BQU8sQ0FBQztBQUNsRixNQUFNLFFBQVEsR0FBRyxRQUFRLENBQUMsSUFBSSxDQUFDO0FBSy9CLE1BQU0sT0FBTyxxQ0FBcUM7SUFTaEQsWUFDVSxJQUFxQixFQUMwQixZQUE2QixFQUMxQixRQUE0QjtRQUY5RSxTQUFJ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YUFBYSxDQUFDLGdEQUFnRCxRQUFRLEVBQUUsQ0FBQyxDQUFDO3dCQUNwRixPQUFPLFFBQVEsQ0FBQyxtQkFBbUIsQ0FBQyxVQUFVLENBQUMsVUFBVSxDQUFDLE9BQU8sRUFBRSxVQUFVLENBQUMsTUFBTSxDQUFDLENBQUM7cUJBQ3ZGO3lCQUFNO3dCQUNMLE9BQU8sSUFBSSxDQUFDO3FCQUNiO2lCQUNGO2dCQUVEO29CQUNFLElBQUksQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLG9EQUFvRCxRQUFRLEVBQUUsQ0FBQyxDQUFDO29CQUN4RixNQUFNLElBQUksS0FBSyxDQUFDLEdBQUcsUUFBUSw4REFBOEQsQ0FBQyxDQUFDO2FBRTlGO1FBQ0gsQ0FBQztLQUFBO0lBRVksT0FBTzs7WUFDbEIsSUFBSSxxQkFBcUIsRUFBRTtnQkFDekIsSUFBSSxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMscUNBQXFDLENBQUMsQ0FBQztnQkFDL0QsTUFBTSxxQkFBcUIsQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUFDLENBQUM7YUFDekM7UUFDSCxDQUFDO0tBQUE7Ozs7WUE5SkYsVUFBVSxTQUFDO2dCQUNWLFVBQVUsRUFBRSxNQUFNO2FBQ25COzs7WUFaa0QsZUFBZTs0Q0F3QjdELE1BQU0sU0FBQyxVQUFVLENBQUMsR0FBRyxFQUFFLENBQUMsb0JBQW9CLENBQUM7NENBQzdDLE1BQU0sU0FBQyxVQUFVLENBQUMsR0FBRyxFQUFFLENBQUMsdUJBQXVCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBmb3J3YXJkUmVmLCBJbmplY3QsIEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IGZpcmViYXNlIH0gZnJvbSAnQGZpcmViYXNlL2FwcCc7XG5pbXBvcnQgJ2ZpcmViYXNlL2F1dGgnO1xuaW1wb3J0IHsgQXV0aENyZWRlbnRpYWwgfSBmcm9tICdAZmlyZWJhc2UvYXV0aC10eXBlcyc7XG5pZiAoIWZpcmViYXNlLmF1dGgpIHtcbiAgdGhyb3cgbmV3IEVycm9yKCdmaXJlYmFzZS5hdXRoIGlzIHVuZGVmaW5lZCcpO1xufVxuaW1wb3J0IHsgR29vZ2xlU2lnbkluUmVzdWx0LCBGYWNlYm9va1NpZ25JblJlc3VsdCwgVHdpdHRlclNpZ25JblJlc3VsdCwgQXBwbGVTaWduSW5SZXN1bHQgfSBmcm9tICdjYXBhY2l0b3ItZmlyZWJhc2UtYXV0aCc7XG5pbXBvcnQgeyBQbHVnaW5zLCBDYXBhY2l0b3IsIERldmljZSwgUGx1Z2luTGlzdGVuZXJIYW5kbGUsIFdlYlBsdWdpblJlZ2lzdHJ5IH0gZnJvbSAnQGNhcGFjaXRvci9jb3JlJztcbmltcG9ydCB7IEF1dGhQcm92aWRlciwgSUNyZWRlbnRpYWxGYWN0b3J5UHJvdmlkZXIsIEZpcmViYXNlU2VydmljZSwgTWFsU2hhcmVkQ29uZmlnLCBNYWxTaGFyZWRDb25maWdUb2tlbiB9IGZyb20gJ25neC1maXJlYmFzZSc7XG5pbXBvcnQgeyBNYWxDYXBhY2l0b3JDb25maWcsIE1hbENhcGFjaXRvckNvbmZpZ1Rva2VuIH0gZnJvbSAnLi4vaW50ZXJmYWNlcyc7XG5pbXBvcnQgeyB2NCBhcyB1dWlkIH0gZnJvbSAndXVpZCc7XG5pbXBvcnQgeyBzaGEyNTYgfSBmcm9tICdqcy1zaGEyNTYnO1xuXG5XZWJQbHVnaW5SZWdpc3RyeVxuXG5jb25zdCB7IEJyb3dzZXIsIENhcGFjaXRvckZpcmViYXNlRHluYW1pY0xpbmtzLCBDYXBhY2l0b3JGaXJlYmFzZUF1dGggfSA9IFBsdWdpbnM7XG5jb25zdCBmaXJlQXV0aCA9IGZpcmViYXNlLmF1dGg7XG5cbkBJbmplY3RhYmxlKHtcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnXG59KVxuZXhwb3J0IGNsYXNzIEF1dGhDcmVkZW50aWFsRmFjdG9yeUNhcGFjaXRvclNlcnZpY2UgaW1wbGVtZW50cyBJQ3JlZGVudGlhbEZhY3RvcnlQcm92aWRlciB7XG5cbiAgLyoqXG4gKiBSZXR1cm5zIHRydWUgaWYgY3VycmVudCBwbGF0Zm9ybSBpcyB3ZWJwbGF0Zm9ybSBzdXBwb3J0ZWQgYnkgQGFuZ3VsYXIvZmlyZVxuICovXG4gIGdldCBpc1dlYlBsYXRmb3JtKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiBbJ2h0dHBzOicsICdodHRwOicsICdjaHJvbWUtZXh0ZW5zaW9uJ10uaW5jbHVkZXMobG9jYXRpb24ucHJvdG9jb2wpO1xuICB9XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBmaXJlOiBGaXJlYmFzZVNlcnZpY2UsXG4gICAgQEluamVjdChmb3J3YXJkUmVmKCgpID0+IE1hbFNoYXJlZENvbmZpZ1Rva2VuKSkgcHVibGljIHNoYXJlZENvbmZpZzogTWFsU2hhcmVkQ29uZmlnLFxuICAgIEBJbmplY3QoZm9yd2FyZFJlZigoKSA9PiBNYWxDYXBhY2l0b3JDb25maWdUb2tlbikpIHB1YmxpYyBjYXBDb25mZzogTWFsQ2FwYWNpdG9yQ29uZmlnLFxuICApIHtcbiAgfVxuXG4gIHByaXZhdGUgYXN5bmMgZGV2aWNlU3VwcG9ydHNOYXRpdmVBcHBsZSgpOiBQcm9taXNlPGJvb2xlYW4+IHtcbiAgICBjb25zdCBkZXZpY2VJbmZvID0gYXdhaXQgRGV2aWNlLmdldEluZm8oKTtcbiAgICBjb25zdCBvc01ham9yID0gcGFyc2VJbnQoZGV2aWNlSW5mby5vc1ZlcnNpb24uc3BsaXQoJy4nKVswXSwgMTApO1xuICAgIGlmIChvc01ham9yID49IDEzICYmIENhcGFjaXRvci5wbGF0Zm9ybSA9PT0gJ2lvcycpIHtcbiAgICAgIHJldHVybiB0cnVlXG4gICAgfSBlbHNlIGlmIChDYXBhY2l0b3IucGxhdGZvcm0gPT09ICdpb3MnKSB7XG4gICAgICBjb25zb2xlLndhcm4oJ0Rpc2FibGluZyBuYXRpdmUtc3VwcG9ydCBmb3Igc2lnbkluV2l0aEFwcGxlIGFzIGlPUyB2ZXJzaW9uIDwgMTMnKTtcbiAgICB9XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG5cbiAgcHVibGljIGFzeW5jIGlzUHJvdmlkZXJTdXBwb3J0ZWQocHJvdmlkZXI6IEF1dGhQcm92aWRlcik6IFByb21pc2U8Ym9vbGVhbj4ge1xuICAgIGlmICh0aGlzLmlzV2ViUGxhdGZvcm0pIHtcbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG4gICAgc3dpdGNoIChwcm92aWRlcikge1xuICAgICAgY2FzZSBBdXRoUHJvdmlkZXIuQXBwbGU6XG4gICAgICAgIHJldHVybiAhIXRoaXMuY2FwQ29uZmcuc2lnbkluV2l0aEFwcGxlIHx8IChhd2FpdCB0aGlzLmRldmljZVN1cHBvcnRzTmF0aXZlQXBwbGUoKSAmJiBDYXBhY2l0b3IuaXNQbHVnaW5BdmFpbGFibGUoJ0NhcGFjaXRvckZpcmViYXNlQXV0aCcpKTtcblxuICAgICAgY2FzZSBBdXRoUHJvdmlkZXIuR29vZ2xlOlxuICAgICAgY2FzZSBBdXRoUHJvdmlkZXIuRmFjZWJvb2s6XG4gICAgICBjYXNlIEF1dGhQcm92aWRlci5Ud2l0dGVyOlxuICAgICAgICByZXR1cm4gQ2FwYWNpdG9yLmlzUGx1Z2luQXZhaWxhYmxlKCdDYXBhY2l0b3JGaXJlYmFzZUF1dGgnKTtcblxuICAgICAgZGVmYXVsdDpcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBhc3luYyBnZXRDcmVkZW50aWFsKHByb3ZpZGVyOiBBdXRoUHJvdmlkZXIpOiBQcm9taXNlPEF1dGhDcmVkZW50aWFsIHwgbnVsbD4ge1xuICAgIGlmICghdGhpcy5pc1Byb3ZpZGVyU3VwcG9ydGVkKHByb3ZpZGVyKSkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKGBQcm92aWRlciAke3Byb3ZpZGVyfSBpcyBub3Qgc3VwcG9ydGVkIG9uIHRoaXMgcGxhdGZvcm1gKTtcbiAgICB9XG4gICAgaWYgKCFDYXBhY2l0b3JGaXJlYmFzZUF1dGgpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihgQ2FwYWNpdG9yRmlyZWJhc2VBdXRoIHBsdWdpbiBub3QgYXZhaWxhYmxlYCk7XG4gICAgfVxuXG4gICAgc3dpdGNoIChwcm92aWRlcikge1xuXG4gICAgICBjYXNlIEF1dGhQcm92aWRlci5Hb29nbGU6IHtcbiAgICAgICAgY29uc3QgZ29vZ2xlQXV0aFByb3ZpZGVyID0gbmV3IGZpcmVBdXRoLkdvb2dsZUF1dGhQcm92aWRlcigpO1xuICAgICAgICB0aGlzLmZpcmUuYWRkTG9nTWVzc2FnZShgc2lnbkluIHVzaW5nIENhcGFjaXRvckZpcmViYXNlQXV0aDsgcHJvdmlkZXI9JHtwcm92aWRlcn1gKTtcbiAgICAgICAgY29uc3QgZ29vZ2xlUmVzOiBHb29nbGVTaWduSW5SZXN1bHRcbiAgICAgICAgICA9IGF3YWl0IENhcGFjaXRvckZpcmViYXNlQXV0aC5zaWduSW4oeyBwcm92aWRlcklkOiBnb29nbGVBdXRoUHJvdmlkZXIucHJvdmlkZXJJZCB9KSBhcyBHb29nbGVTaWduSW5SZXN1bHQ7XG4gICAgICAgIGlmIChnb29nbGVSZXMuaWRUb2tlbikge1xuICAgICAgICAgIHRoaXMuZmlyZS5hZGRMb2dNZXNzYWdlKGBDcmVhdGluZyBjcmVkZW50aWFsIHVzaW5nIGZpcmViYXNlOyBwcm92aWRlcj0ke3Byb3ZpZGVyfWApO1xuICAgICAgICAgIHJldHVybiBmaXJlQXV0aC5Hb29nbGVBdXRoUHJvdmlkZXIuY3JlZGVudGlhbChnb29nbGVSZXMuaWRUb2tlbik7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgY2FzZSBBdXRoUHJvdmlkZXIuRmFjZWJvb2s6IHtcbiAgICAgICAgY29uc3QgZmFjZWJvb2tBdXRoUHJvdmlkZXIgPSBuZXcgZmlyZUF1dGguRmFjZWJvb2tBdXRoUHJvdmlkZXIoKTtcbiAgICAgICAgdGhpcy5maXJlLmFkZExvZ01lc3NhZ2UoYHNpZ25JbiB1c2luZyBDYXBhY2l0b3JGaXJlYmFzZUF1dGg7IHByb3ZpZGVyPSR7cHJvdmlkZXJ9YCk7XG4gICAgICAgIGNvbnN0IGZhY2Vib29rUmVzOiBGYWNlYm9va1NpZ25JblJlc3VsdFxuICAgICAgICAgID0gYXdhaXQgQ2FwYWNpdG9yRmlyZWJhc2VBdXRoLnNpZ25Jbih7IHByb3ZpZGVySWQ6IGZhY2Vib29rQXV0aFByb3ZpZGVyLnByb3ZpZGVySWQgfSkgYXMgRmFjZWJvb2tTaWduSW5SZXN1bHQ7XG4gICAgICAgIGlmIChmYWNlYm9va1Jlcy5pZFRva2VuKSB7XG4gICAgICAgICAgdGhpcy5maXJlLmFkZExvZ01lc3NhZ2UoYENyZWF0aW5nIGNyZWRlbnRpYWwgdXNpbmcgZmlyZWJhc2U7IHByb3ZpZGVyPSR7cHJvdmlkZXJ9YCk7XG4gICAgICAgICAgcmV0dXJuIGZpcmVBdXRoLkZhY2Vib29rQXV0aFByb3ZpZGVyLmNyZWRlbnRpYWwoZmFjZWJvb2tSZXMuaWRUb2tlbik7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgY2FzZSBBdXRoUHJvdmlkZXIuQXBwbGU6IHtcbiAgICAgICAgaWYgKGF3YWl0IHRoaXMuZGV2aWNlU3VwcG9ydHNOYXRpdmVBcHBsZSgpKSB7XG4gICAgICAgICAgY29uc3QgYXBwbGVBdXRoUHJvdmlkZXIgPSBuZXcgZmlyZUF1dGguT0F1dGhQcm92aWRlcignYXBwbGUuY29tJyk7XG4gICAgICAgICAgdGhpcy5maXJlLmFkZExvZ01lc3NhZ2UoYHNpZ25JbiB1c2luZyBDYXBhY2l0b3JGaXJlYmFzZUF1dGg7IHByb3ZpZGVyPSR7cHJvdmlkZXJ9YCk7XG4gICAgICAgICAgY29uc3QgYXBwbGVSZXM6IEFwcGxlU2lnbkluUmVzdWx0XG4gICAgICAgICAgICA9IGF3YWl0IENhcGFjaXRvckZpcmViYXNlQXV0aC5zaWduSW4oeyBwcm92aWRlcklkOiBhcHBsZUF1dGhQcm92aWRlci5wcm92aWRlcklkIH0pIGFzIEFwcGxlU2lnbkluUmVzdWx0O1xuICAgICAgICAgIGlmIChhcHBsZVJlcy5pZFRva2VuKSB7XG4gICAgICAgICAgICB0aGlzLmZpcmUuYWRkTG9nTWVzc2FnZShgQ3JlYXRpbmcgY3JlZGVudGlhbCB1c2luZyBmaXJlYmFzZTsgcHJvdmlkZXI9JHtwcm92aWRlcn1gKTtcbiAgICAgICAgICAgIHJldHVybiBhcHBsZUF1dGhQcm92aWRlci5jcmVkZW50aWFsKGFwcGxlUmVzKTtcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICAgICAgfVxuICAgICAgICB9IGVsc2UgaWYgKHRoaXMuY2FwQ29uZmcuc2lnbkluV2l0aEFwcGxlKSB7XG4gICAgICAgICAgY29uc3Qgc2lnbkluQ29uZmlnID0gdGhpcy5jYXBDb25mZy5zaWduSW5XaXRoQXBwbGU7XG4gICAgICAgICAgcmV0dXJuIGF3YWl0IG5ldyBQcm9taXNlPEF1dGhDcmVkZW50aWFsIHwgbnVsbD4oYXN5bmMgKHJlc29sdmUsIHJlamVjdCkgPT4ge1xuICAgICAgICAgICAgY29uc3Qgbm9uY2UgPSB1dWlkKCk7XG4gICAgICAgICAgICBjb25zdCBkZWVwTGlua0hhbmRsZXI6IFBsdWdpbkxpc3RlbmVySGFuZGxlID0gQ2FwYWNpdG9yRmlyZWJhc2VEeW5hbWljTGlua3MuYWRkTGlzdGVuZXIoJ2RlZXBMaW5rT3BlbicsIGFzeW5jIChkYXRhOiB7IHVybDogc3RyaW5nIH0pID0+IHtcbiAgICAgICAgICAgICAgaWYgKGRhdGEudXJsICYmIGRhdGEudXJsLnN0YXJ0c1dpdGgoc2lnbkluQ29uZmlnLnJlZGlyZWN0RGVla0xpbmspKSB7XG4gICAgICAgICAgICAgICAgY29uc3QgcGFyYW1zID0gbmV3IFVSTFNlYXJjaFBhcmFtcyhuZXcgVVJMKGRhdGEudXJsKS5zZWFyY2gpO1xuICAgICAgICAgICAgICAgIGNvbnN0IGlkVG9rZW4gPSBwYXJhbXMuZ2V0KCdpZF90b2tlbicpO1xuICAgICAgICAgICAgICAgIGNvbnN0IGVycm9yID0gcGFyYW1zLmdldCgnZXJyb3InKTtcbiAgICAgICAgICAgICAgICBkZWVwTGlua0hhbmRsZXIucmVtb3ZlKCk7XG4gICAgICAgICAgICAgICAgYnJvd3NlckNsb3NlSGFuZGxlci5yZW1vdmUoKTtcbiAgICAgICAgICAgICAgICBhd2FpdCBCcm93c2VyLmNsb3NlKCk7XG4gICAgICAgICAgICAgICAgaWYgKGlkVG9rZW4gJiYgIWVycm9yKSB7XG4gICAgICAgICAgICAgICAgICBjb25zdCBhcHBsZUF1dGhQcm92aWRlciA9IG5ldyBmaXJlQXV0aC5PQXV0aFByb3ZpZGVyKCdhcHBsZS5jb20nKTtcbiAgICAgICAgICAgICAgICAgIHJlc29sdmUoYXBwbGVBdXRoUHJvdmlkZXIuY3JlZGVudGlhbCh7IGlkVG9rZW4sIHJhd05vbmNlOiBub25jZSB9KSk7XG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgIHJlamVjdChlcnJvcik7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIGNvbnN0IGJyb3dzZXJDbG9zZUhhbmRsZXI6IFBsdWdpbkxpc3RlbmVySGFuZGxlID0gQnJvd3Nlci5hZGRMaXN0ZW5lcignYnJvd3NlckZpbmlzaGVkJywgYXN5bmMgKGRhdGE6IGFueSkgPT4ge1xuICAgICAgICAgICAgICAvLyBoYW5kbGUgdXNlciBjbG9zZSBvZiBicm93c2VyIChpLmUuIGNhbmNlbCBvcGVyYXRpb24pXG4gICAgICAgICAgICAgIGRlZXBMaW5rSGFuZGxlci5yZW1vdmUoKTtcbiAgICAgICAgICAgICAgYnJvd3NlckNsb3NlSGFuZGxlci5yZW1vdmUoKTtcbiAgICAgICAgICAgICAgcmVzb2x2ZShudWxsKTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgYXdhaXQgQnJvd3Nlci5vcGVuKHtcbiAgICAgICAgICAgICAgdXJsOiBgJHtzaWduSW5Db25maWcuYXV0aFVybCB8fCAnaHR0cDovL2FwcGxlaWQuYXBwbGUuY29tL2F1dGgvYXV0aG9yaXplJ31gXG4gICAgICAgICAgICAgICAgKyBgP25vbmNlPSR7ZW5jb2RlVVJJQ29tcG9uZW50KHNoYTI1Nihub25jZSkpfWBcbiAgICAgICAgICAgICAgICArIGAmY2xpZW50X2lkPSR7ZW5jb2RlVVJJQ29tcG9uZW50KHNpZ25JbkNvbmZpZy5jbGllbnRJZCl9YFxuICAgICAgICAgICAgICAgICsgYCZyZWRpcmVjdF91cmk9JHtlbmNvZGVVUklDb21wb25lbnQoc2lnbkluQ29uZmlnLnJlZGlyZWN0VXJsKX1gXG4gICAgICAgICAgICAgICAgKyBgJnJlc3BvbnNlX3R5cGU9Y29kZSUyMGlkX3Rva2VuJnJlc3BvbnNlX21vZGU9Zm9ybV9wb3N0YFxuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgY2FzZSBBdXRoUHJvdmlkZXIuVHdpdHRlcjoge1xuICAgICAgICBjb25zdCB0d2l0dGVyQXV0aFByb3ZpZGVyID0gbmV3IGZpcmVBdXRoLlR3aXR0ZXJBdXRoUHJvdmlkZXIoKTtcbiAgICAgICAgdGhpcy5maXJlLmFkZExvZ01lc3NhZ2UoYHNpZ25JbiB1c2luZyBDYXBhY2l0b3JGaXJlYmFzZUF1dGg7IHByb3ZpZGVyPSR7cHJvdmlkZXJ9YCk7XG4gICAgICAgIGNvbnN0IHR3aXR0ZXJSZXM6IFR3aXR0ZXJTaWduSW5SZXN1bHRcbiAgICAgICAgICA9IGF3YWl0IENhcGFjaXRvckZpcmViYXNlQXV0aC5zaWduSW4oeyBwcm92aWRlcklkOiB0d2l0dGVyQXV0aFByb3ZpZGVyLnByb3ZpZGVySWQgfSkgYXMgVHdpdHRlclNpZ25JblJlc3VsdDtcbiAgICAgICAgaWYgKHR3aXR0ZXJSZXMuaWRUb2tlbiAmJiB0d2l0dGVyUmVzLnNlY3JldCkge1xuICAgICAgICAgIHRoaXMuZmlyZS5hZGRMb2dNZXNzYWdlKGBDcmVhdGluZyBjcmVkZW50aWFsIHVzaW5nIGZpcmViYXNlOyBwcm92aWRlcj0ke3Byb3ZpZGVyfWApO1xuICAgICAgICAgIHJldHVybiBmaXJlQXV0aC5Ud2l0dGVyQXV0aFByb3ZpZGVyLmNyZWRlbnRpYWwodHdpdHRlclJlcy5pZFRva2VuLCB0d2l0dGVyUmVzLnNlY3JldCk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgZGVmYXVsdDpcbiAgICAgICAgdGhpcy5maXJlLmFkZExvZ01lc3NhZ2UoYEF0dGVtcHRpbmcgdW5zdXBwb3J0ZWQgbmF0aXZlIHByb3ZpZGVyOyBwcm92aWRlcj0ke3Byb3ZpZGVyfWApO1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYCR7cHJvdmlkZXJ9IGlzIG5vdCBhdmFpbGFibGUgYXMgYSBjcmVkZW50aWFsIHByb3ZpZGVyIGZvciB0aGlzIHBsYXRmb3JtYCk7XG5cbiAgICB9XG4gIH1cblxuICBwdWJsaWMgYXN5bmMgc2lnbk91dCgpIHtcbiAgICBpZiAoQ2FwYWNpdG9yRmlyZWJhc2VBdXRoKSB7XG4gICAgICB0aGlzLmZpcmUuYWRkTG9nTWVzc2FnZSgnc2lnbk91dCB1c2luZyBDYXBhY2l0b3JGaXJlYmFzZUF1dGgnKTtcbiAgICAgIGF3YWl0IENhcGFjaXRvckZpcmViYXNlQXV0aC5zaWduT3V0KHt9KTtcbiAgICB9XG4gIH1cblxufVxuIl19
@@ -1,4 +0,0 @@
1
- export * from './analytics-firebase-capacitor.service';
2
- export * from './crashlytics-firebase-capacitor.service';
3
- export * from './credential-factory-capacitor.service';
4
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtZmlyZWJhc2UvY2FwYWNpdG9yL3NyYy9zZXJ2aWNlcy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLHdDQUF3QyxDQUFDO0FBQ3ZELGNBQWMsMENBQTBDLENBQUM7QUFDekQsY0FBYyx3Q0FBd0MsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vYW5hbHl0aWNzLWZpcmViYXNlLWNhcGFjaXRvci5zZXJ2aWNlJztcbmV4cG9ydCAqIGZyb20gJy4vY3Jhc2hseXRpY3MtZmlyZWJhc2UtY2FwYWNpdG9yLnNlcnZpY2UnO1xuZXhwb3J0ICogZnJvbSAnLi9jcmVkZW50aWFsLWZhY3RvcnktY2FwYWNpdG9yLnNlcnZpY2UnO1xuIl19
@@ -1,32 +0,0 @@
1
- // @angular/*
2
- import { NgModule } from '@angular/core';
3
- import { InAppPurchase2 } from '@ionic-native/in-app-purchase-2/ngx';
4
- import { MalSharedConfigToken } from 'ngx-firebase';
5
- import { MalIAPOptionsToken } from './tokens';
6
- export class MalIAPModule {
7
- static forRoot(options) {
8
- return {
9
- ngModule: MalIAPModule,
10
- providers: [
11
- { provide: MalIAPOptionsToken, useValue: options },
12
- {
13
- provide: InAppPurchase2,
14
- useFactory: functionsInAppPurchase2Factory,
15
- deps: [MalSharedConfigToken]
16
- },
17
- ]
18
- };
19
- }
20
- }
21
- MalIAPModule.decorators = [
22
- { type: NgModule, args: [{},] }
23
- ];
24
- function functionsInAppPurchase2Factory(sharedConfig) {
25
- if (false === sharedConfig.services.inAppPurchase) {
26
- return undefined;
27
- }
28
- else {
29
- return new InAppPurchase2();
30
- }
31
- }
32
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaWFwLm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1maXJlYmFzZS9pYXAvc3JjL2lhcC5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsYUFBYTtBQUNiLE9BQU8sRUFBdUIsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzlELE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxxQ0FBcUMsQ0FBQztBQUNyRSxPQUFPLEVBQW1CLG9CQUFvQixFQUFFLE1BQU0sY0FBYyxDQUFDO0FBRXJFLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLFVBQVUsQ0FBQztBQUc5QyxNQUFNLE9BQU8sWUFBWTtJQUV2QixNQUFNLENBQUMsT0FBTyxDQUFDLE9BQXNCO1FBQ25DLE9BQU87WUFDTCxRQUFRLEVBQUUsWUFBWTtZQUN0QixTQUFTLEVBQ1A7Z0JBQ0UsRUFBRSxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsUUFBUSxFQUFFLE9BQU8sRUFBRTtnQkFDbEQ7b0JBQ0UsT0FBTyxFQUFFLGNBQWM7b0JBQ3ZCLFVBQVUsRUFBRSw4QkFBOEI7b0JBQzFDLElBQUksRUFBRSxDQUFDLG9CQUFvQixDQUFDO2lCQUM3QjthQUNGO1NBQ0osQ0FBQztJQUNKLENBQUM7OztZQWhCRixRQUFRLFNBQUMsRUFBRTs7QUFvQlosU0FBUyw4QkFBOEIsQ0FBQyxZQUE2QjtJQUNuRSxJQUFJLEtBQUssS0FBSyxZQUFZLENBQUMsUUFBUSxDQUFDLGFBQWEsRUFBRTtRQUNqRCxPQUFPLFNBQVMsQ0FBQztLQUNsQjtTQUFNO1FBQ0wsT0FBTyxJQUFJLGNBQWMsRUFBRSxDQUFDO0tBQzdCO0FBQ0gsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8vIEBhbmd1bGFyLypcbmltcG9ydCB7IE1vZHVsZVdpdGhQcm92aWRlcnMsIE5nTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBJbkFwcFB1cmNoYXNlMiB9IGZyb20gJ0Bpb25pYy1uYXRpdmUvaW4tYXBwLXB1cmNoYXNlLTIvbmd4JztcbmltcG9ydCB7IE1hbFNoYXJlZENvbmZpZywgTWFsU2hhcmVkQ29uZmlnVG9rZW4gfSBmcm9tICduZ3gtZmlyZWJhc2UnO1xuaW1wb3J0IHsgTWFsSUFQT3B0aW9ucyB9IGZyb20gJy4vaW50ZXJmYWNlcyc7XG5pbXBvcnQgeyBNYWxJQVBPcHRpb25zVG9rZW4gfSBmcm9tICcuL3Rva2Vucyc7XG5cbkBOZ01vZHVsZSh7fSlcbmV4cG9ydCBjbGFzcyBNYWxJQVBNb2R1bGUge1xuXG4gIHN0YXRpYyBmb3JSb290KG9wdGlvbnM6IE1hbElBUE9wdGlvbnMpOiBNb2R1bGVXaXRoUHJvdmlkZXJzPE1hbElBUE1vZHVsZT4ge1xuICAgIHJldHVybiB7XG4gICAgICBuZ01vZHVsZTogTWFsSUFQTW9kdWxlLFxuICAgICAgcHJvdmlkZXJzOlxuICAgICAgICBbXG4gICAgICAgICAgeyBwcm92aWRlOiBNYWxJQVBPcHRpb25zVG9rZW4sIHVzZVZhbHVlOiBvcHRpb25zIH0sXG4gICAgICAgICAge1xuICAgICAgICAgICAgcHJvdmlkZTogSW5BcHBQdXJjaGFzZTIsXG4gICAgICAgICAgICB1c2VGYWN0b3J5OiBmdW5jdGlvbnNJbkFwcFB1cmNoYXNlMkZhY3RvcnksXG4gICAgICAgICAgICBkZXBzOiBbTWFsU2hhcmVkQ29uZmlnVG9rZW5dXG4gICAgICAgICAgfSxcbiAgICAgICAgXVxuICAgIH07XG4gIH1cblxufVxuXG5mdW5jdGlvbiBmdW5jdGlvbnNJbkFwcFB1cmNoYXNlMkZhY3Rvcnkoc2hhcmVkQ29uZmlnOiBNYWxTaGFyZWRDb25maWcpOiBJbkFwcFB1cmNoYXNlMiB8IHVuZGVmaW5lZCB7XG4gIGlmIChmYWxzZSA9PT0gc2hhcmVkQ29uZmlnLnNlcnZpY2VzLmluQXBwUHVyY2hhc2UpIHtcbiAgICByZXR1cm4gdW5kZWZpbmVkO1xuICB9IGVsc2Uge1xuICAgIHJldHVybiBuZXcgSW5BcHBQdXJjaGFzZTIoKTtcbiAgfVxufSJdfQ==
@@ -1,5 +0,0 @@
1
- export var IAPProductTypes;
2
- (function (IAPProductTypes) {
3
- IAPProductTypes["PAID_SUBSCRIPTION"] = "PAID_SUBSCRIPTION";
4
- })(IAPProductTypes || (IAPProductTypes = {}));
5
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtZmlyZWJhc2UvaWFwL3NyYy9pbnRlcmZhY2VzL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUVBLE1BQU0sQ0FBTixJQUFZLGVBRVg7QUFGRCxXQUFZLGVBQWU7SUFDdkIsMERBQXVDLENBQUE7QUFDM0MsQ0FBQyxFQUZXLGVBQWUsS0FBZixlQUFlLFFBRTFCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSUFQUHJvZHVjdE9wdGlvbnMgfSBmcm9tICdAaW9uaWMtbmF0aXZlL2luLWFwcC1wdXJjaGFzZS0yL25neCc7XG5cbmV4cG9ydCBlbnVtIElBUFByb2R1Y3RUeXBlcyB7XG4gICAgUEFJRF9TVUJTQ1JJUFRJT04gPSAnUEFJRF9TVUJTQ1JJUFRJT04nXG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgTWFsSUFQUHJvZHVjdE9wdGlvbnMgZXh0ZW5kcyBJQVBQcm9kdWN0T3B0aW9ucyB7XG4gICAgdHlwZTogSUFQUHJvZHVjdFR5cGVzO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIE1hbElBUE9wdGlvbnMge1xuICAgIHZhbGlkYXRvclVybDogc3RyaW5nO1xuICAgIHByb2R1Y3RzOiBNYWxJQVBQcm9kdWN0T3B0aW9uc1tdO1xufVxuIl19
@@ -1,5 +0,0 @@
1
- /**
2
- * Generated bundle index. Do not edit.
3
- */
4
- export * from './public-api';
5
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmd4LWZpcmViYXNlLWlhcC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1maXJlYmFzZS9pYXAvc3JjL25neC1maXJlYmFzZS1pYXAudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7O0dBRUc7QUFFSCxjQUFjLGNBQWMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogR2VuZXJhdGVkIGJ1bmRsZSBpbmRleC4gRG8gbm90IGVkaXQuXG4gKi9cblxuZXhwb3J0ICogZnJvbSAnLi9wdWJsaWMtYXBpJztcbiJdfQ==
@@ -1,5 +0,0 @@
1
- export * from './iap.module';
2
- export * from './interfaces';
3
- export * from './tokens';
4
- export * from './services/iap.service';
5
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1maXJlYmFzZS9pYXAvc3JjL3B1YmxpYy1hcGkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyxjQUFjLENBQUM7QUFFN0IsY0FBYyxjQUFjLENBQUM7QUFDN0IsY0FBYyxVQUFVLENBQUM7QUFFekIsY0FBYyx3QkFBd0IsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vaWFwLm1vZHVsZSc7XG5cbmV4cG9ydCAqIGZyb20gJy4vaW50ZXJmYWNlcyc7XG5leHBvcnQgKiBmcm9tICcuL3Rva2Vucyc7XG5cbmV4cG9ydCAqIGZyb20gJy4vc2VydmljZXMvaWFwLnNlcnZpY2UnO1xuIl19