ngx-firebase 1.1.12 → 22.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (274) hide show
  1. package/README.md +51 -11
  2. package/fesm2022/ngx-firebase.mjs +158 -0
  3. package/fesm2022/ngx-firebase.mjs.map +1 -0
  4. package/package.json +40 -30
  5. package/types/ngx-firebase.d.ts +55 -0
  6. package/bundles/ngx-firebase-capacitor.umd.js +0 -763
  7. package/bundles/ngx-firebase-capacitor.umd.js.map +0 -1
  8. package/bundles/ngx-firebase-capacitor.umd.min.js +0 -16
  9. package/bundles/ngx-firebase-capacitor.umd.min.js.map +0 -1
  10. package/bundles/ngx-firebase-iap.umd.js +0 -718
  11. package/bundles/ngx-firebase-iap.umd.js.map +0 -1
  12. package/bundles/ngx-firebase-iap.umd.min.js +0 -2
  13. package/bundles/ngx-firebase-iap.umd.min.js.map +0 -1
  14. package/bundles/ngx-firebase-ionic-auth-ui.umd.js +0 -2116
  15. package/bundles/ngx-firebase-ionic-auth-ui.umd.js.map +0 -1
  16. package/bundles/ngx-firebase-ionic-auth-ui.umd.min.js +0 -16
  17. package/bundles/ngx-firebase-ionic-auth-ui.umd.min.js.map +0 -1
  18. package/bundles/ngx-firebase-ionic.umd.js +0 -979
  19. package/bundles/ngx-firebase-ionic.umd.js.map +0 -1
  20. package/bundles/ngx-firebase-ionic.umd.min.js +0 -16
  21. package/bundles/ngx-firebase-ionic.umd.min.js.map +0 -1
  22. package/bundles/ngx-firebase-testing.umd.js +0 -801
  23. package/bundles/ngx-firebase-testing.umd.js.map +0 -1
  24. package/bundles/ngx-firebase-testing.umd.min.js +0 -2
  25. package/bundles/ngx-firebase-testing.umd.min.js.map +0 -1
  26. package/bundles/ngx-firebase.umd.js +0 -2271
  27. package/bundles/ngx-firebase.umd.js.map +0 -1
  28. package/bundles/ngx-firebase.umd.min.js +0 -2
  29. package/bundles/ngx-firebase.umd.min.js.map +0 -1
  30. package/capacitor/capacitor.module.d.ts +0 -9
  31. package/capacitor/interfaces/config.d.ts +0 -12
  32. package/capacitor/interfaces/index.d.ts +0 -1
  33. package/capacitor/ngx-firebase-capacitor.d.ts +0 -5
  34. package/capacitor/ngx-firebase-capacitor.metadata.json +0 -1
  35. package/capacitor/package.json +0 -25
  36. package/capacitor/public-api.d.ts +0 -3
  37. package/capacitor/services/analytics-firebase-capacitor.service.d.ts +0 -9
  38. package/capacitor/services/crashlytics-firebase-capacitor.service.d.ts +0 -8
  39. package/capacitor/services/credential-factory-capacitor.service.d.ts +0 -18
  40. package/capacitor/services/index.d.ts +0 -3
  41. package/esm2015/capacitor/capacitor.module.js +0 -78
  42. package/esm2015/capacitor/interfaces/config.js +0 -3
  43. package/esm2015/capacitor/interfaces/index.js +0 -2
  44. package/esm2015/capacitor/ngx-firebase-capacitor.js +0 -6
  45. package/esm2015/capacitor/public-api.js +0 -4
  46. package/esm2015/capacitor/services/analytics-firebase-capacitor.service.js +0 -43
  47. package/esm2015/capacitor/services/crashlytics-firebase-capacitor.service.js +0 -40
  48. package/esm2015/capacitor/services/credential-factory-capacitor.service.js +0 -182
  49. package/esm2015/capacitor/services/index.js +0 -4
  50. package/esm2015/iap/iap.module.js +0 -32
  51. package/esm2015/iap/interfaces/index.js +0 -5
  52. package/esm2015/iap/ngx-firebase-iap.js +0 -5
  53. package/esm2015/iap/public-api.js +0 -5
  54. package/esm2015/iap/services/iap.service.js +0 -317
  55. package/esm2015/iap/tokens/index.js +0 -4
  56. package/esm2015/ionic/animations/index.js +0 -30
  57. package/esm2015/ionic/components/avatar/avatar.component.js +0 -98
  58. package/esm2015/ionic/components/avatar/index.js +0 -2
  59. package/esm2015/ionic/components/index.js +0 -3
  60. package/esm2015/ionic/components/popover-menu/index.js +0 -3
  61. package/esm2015/ionic/components/popover-menu/interface.js +0 -2
  62. package/esm2015/ionic/components/popover-menu/popover-menu.component.js +0 -34
  63. package/esm2015/ionic/ionic.module.js +0 -46
  64. package/esm2015/ionic/ngx-firebase-ionic.js +0 -5
  65. package/esm2015/ionic/public-api.js +0 -5
  66. package/esm2015/ionic/services/alerts-ionic.service.js +0 -107
  67. package/esm2015/ionic/services/index.js +0 -6
  68. package/esm2015/ionic/services/legality-dialog-ionic.service.js +0 -85
  69. package/esm2015/ionic/services/loading-ionic.service.js +0 -46
  70. package/esm2015/ionic/services/picker-ionic.service.js +0 -44
  71. package/esm2015/ionic/services/toast-ionic.service.js +0 -49
  72. package/esm2015/ionic-auth-ui/animations/index.js +0 -30
  73. package/esm2015/ionic-auth-ui/components/email-confirmation/email-confirmation.component.js +0 -99
  74. package/esm2015/ionic-auth-ui/components/email-field/email-field.component.js +0 -25
  75. package/esm2015/ionic-auth-ui/components/form-field/form-field.component.js +0 -82
  76. package/esm2015/ionic-auth-ui/components/index.js +0 -12
  77. package/esm2015/ionic-auth-ui/components/name-field/name-field.component.js +0 -30
  78. package/esm2015/ionic-auth-ui/components/or-divider/or-divider.component.js +0 -11
  79. package/esm2015/ionic-auth-ui/components/password-field/password-field.component.js +0 -138
  80. package/esm2015/ionic-auth-ui/components/password-field/passwordValidatorFunctions.js +0 -62
  81. package/esm2015/ionic-auth-ui/components/providers/providers.component.js +0 -70
  82. package/esm2015/ionic-auth-ui/components/reauthenticate/reauthenticate.component.js +0 -99
  83. package/esm2015/ionic-auth-ui/components/register/register.component.js +0 -142
  84. package/esm2015/ionic-auth-ui/components/register-with-email/register-with-email.component.js +0 -60
  85. package/esm2015/ionic-auth-ui/components/register-with-email-popover/register-with-email-popover.component.js +0 -26
  86. package/esm2015/ionic-auth-ui/components/signin/signin.component.js +0 -92
  87. package/esm2015/ionic-auth-ui/components/terms-field/terms-field.component.js +0 -99
  88. package/esm2015/ionic-auth-ui/components/user/user.component.js +0 -195
  89. package/esm2015/ionic-auth-ui/ionic-auth-ui.module.js +0 -92
  90. package/esm2015/ionic-auth-ui/ngx-firebase-ionic-auth-ui.js +0 -23
  91. package/esm2015/ionic-auth-ui/pages/index.js +0 -5
  92. package/esm2015/ionic-auth-ui/pages/register/index.js +0 -2
  93. package/esm2015/ionic-auth-ui/pages/register/register.page.js +0 -56
  94. package/esm2015/ionic-auth-ui/pages/signin/index.js +0 -2
  95. package/esm2015/ionic-auth-ui/pages/signin/signin.page.js +0 -78
  96. package/esm2015/ionic-auth-ui/pages/user/index.js +0 -2
  97. package/esm2015/ionic-auth-ui/pages/user/user.page.js +0 -11
  98. package/esm2015/ionic-auth-ui/pages/verifyemail/index.js +0 -2
  99. package/esm2015/ionic-auth-ui/pages/verifyemail/verifyemail.page.js +0 -85
  100. package/esm2015/ionic-auth-ui/public-api.js +0 -5
  101. package/esm2015/ngx-firebase.js +0 -6
  102. package/esm2015/public-api.js +0 -6
  103. package/esm2015/shared/guards/index.js +0 -3
  104. package/esm2015/shared/guards/logged-in.guard.js +0 -60
  105. package/esm2015/shared/guards/verify-email.guard.js +0 -41
  106. package/esm2015/shared/interfaces/accounts.enum.js +0 -9
  107. package/esm2015/shared/interfaces/authprovider.enum.js +0 -15
  108. package/esm2015/shared/interfaces/config.interface.js +0 -61
  109. package/esm2015/shared/interfaces/index.js +0 -8
  110. package/esm2015/shared/interfaces/main.interface.js +0 -7
  111. package/esm2015/shared/interfaces/providers.interface.js +0 -2
  112. package/esm2015/shared/interfaces/tokens.js +0 -19
  113. package/esm2015/shared/interfaces/ui-providers.interface.js +0 -2
  114. package/esm2015/shared/services/analytics.service.js +0 -24
  115. package/esm2015/shared/services/auth-process.service.js +0 -752
  116. package/esm2015/shared/services/crashlytics.service.js +0 -42
  117. package/esm2015/shared/services/device-info.service.js +0 -14
  118. package/esm2015/shared/services/firebase.service.js +0 -37
  119. package/esm2015/shared/services/firestore-sync.service.js +0 -60
  120. package/esm2015/shared/services/index.js +0 -10
  121. package/esm2015/shared/services/performance.service.js +0 -28
  122. package/esm2015/shared/services/remoteconfig.service.js +0 -49
  123. package/esm2015/shared/services/ui.service.js +0 -45
  124. package/esm2015/shared/shared.module.js +0 -175
  125. package/esm2015/shared/types/DisplayWidth.js +0 -9
  126. package/esm2015/shared/types/Location.js +0 -2
  127. package/esm2015/shared/types/ValueAccessorControlComponent.js +0 -85
  128. package/esm2015/shared/types/ValueAccessorValueComponent.js +0 -40
  129. package/esm2015/shared/types/index.js +0 -5
  130. package/esm2015/testing/fakeavatar.module.js +0 -22
  131. package/esm2015/testing/fakes/FakeAuthProcessService.js +0 -31
  132. package/esm2015/testing/fakes/FakeAvatarComponent.js +0 -13
  133. package/esm2015/testing/fakes/FakeFireService.js +0 -21
  134. package/esm2015/testing/fakes/FakeFirestoreSyncService.js +0 -11
  135. package/esm2015/testing/fakes/FakeIAPurchaseService.js +0 -11
  136. package/esm2015/testing/fakes/FakePickerService.js +0 -9
  137. package/esm2015/testing/fakes/FakeRemoteConfigService.js +0 -44
  138. package/esm2015/testing/fakes/FakeTranslateService.js +0 -21
  139. package/esm2015/testing/fakes/FakeUiService.js +0 -26
  140. package/esm2015/testing/fakes/angular-fire/FakeAngularFireAuth.js +0 -30
  141. package/esm2015/testing/fakes/angular-fire/FakeAngularFireFunctions.js +0 -17
  142. package/esm2015/testing/fakes/angular-fire/FakeAngularFirePerformance.js +0 -17
  143. package/esm2015/testing/fakes/angular-fire/FakeAngularFireStorage.js +0 -8
  144. package/esm2015/testing/fakes/angular-fire/FakeAngularFirestore.js +0 -8
  145. package/esm2015/testing/fakes/angular-fire/FakeUserCredential.js +0 -18
  146. package/esm2015/testing/fakes/index.js +0 -19
  147. package/esm2015/testing/ngx-firebase-testing.js +0 -6
  148. package/esm2015/testing/public-api.js +0 -5
  149. package/esm2015/testing/test.module.js +0 -66
  150. package/esm2015/testing/utils/index.js +0 -17
  151. package/esm2015/testing/utils/patchConsole.js +0 -14
  152. package/fesm2015/ngx-firebase-capacitor.js +0 -328
  153. package/fesm2015/ngx-firebase-capacitor.js.map +0 -1
  154. package/fesm2015/ngx-firebase-iap.js +0 -354
  155. package/fesm2015/ngx-firebase-iap.js.map +0 -1
  156. package/fesm2015/ngx-firebase-ionic-auth-ui.js +0 -1482
  157. package/fesm2015/ngx-firebase-ionic-auth-ui.js.map +0 -1
  158. package/fesm2015/ngx-firebase-ionic.js +0 -495
  159. package/fesm2015/ngx-firebase-ionic.js.map +0 -1
  160. package/fesm2015/ngx-firebase-testing.js +0 -388
  161. package/fesm2015/ngx-firebase-testing.js.map +0 -1
  162. package/fesm2015/ngx-firebase.js +0 -1482
  163. package/fesm2015/ngx-firebase.js.map +0 -1
  164. package/iap/iap.module.d.ts +0 -5
  165. package/iap/interfaces/index.d.ts +0 -11
  166. package/iap/ngx-firebase-iap.d.ts +0 -4
  167. package/iap/ngx-firebase-iap.metadata.json +0 -1
  168. package/iap/package.json +0 -23
  169. package/iap/public-api.d.ts +0 -4
  170. package/iap/services/iap.service.d.ts +0 -47
  171. package/iap/tokens/index.d.ts +0 -3
  172. package/ionic/animations/index.d.ts +0 -1
  173. package/ionic/components/avatar/avatar.component.d.ts +0 -27
  174. package/ionic/components/avatar/index.d.ts +0 -1
  175. package/ionic/components/index.d.ts +0 -2
  176. package/ionic/components/popover-menu/index.d.ts +0 -2
  177. package/ionic/components/popover-menu/interface.d.ts +0 -6
  178. package/ionic/components/popover-menu/popover-menu.component.d.ts +0 -10
  179. package/ionic/ionic.module.d.ts +0 -2
  180. package/ionic/ngx-firebase-ionic.d.ts +0 -4
  181. package/ionic/ngx-firebase-ionic.metadata.json +0 -1
  182. package/ionic/package.json +0 -30
  183. package/ionic/public-api.d.ts +0 -4
  184. package/ionic/services/alerts-ionic.service.d.ts +0 -13
  185. package/ionic/services/index.d.ts +0 -5
  186. package/ionic/services/legality-dialog-ionic.service.d.ts +0 -10
  187. package/ionic/services/loading-ionic.service.d.ts +0 -17
  188. package/ionic/services/picker-ionic.service.d.ts +0 -9
  189. package/ionic/services/toast-ionic.service.d.ts +0 -11
  190. package/ionic-auth-ui/animations/index.d.ts +0 -1
  191. package/ionic-auth-ui/components/email-confirmation/email-confirmation.component.d.ts +0 -31
  192. package/ionic-auth-ui/components/email-field/email-field.component.d.ts +0 -7
  193. package/ionic-auth-ui/components/form-field/form-field.component.d.ts +0 -28
  194. package/ionic-auth-ui/components/index.d.ts +0 -11
  195. package/ionic-auth-ui/components/name-field/name-field.component.d.ts +0 -8
  196. package/ionic-auth-ui/components/or-divider/or-divider.component.d.ts +0 -2
  197. package/ionic-auth-ui/components/password-field/password-field.component.d.ts +0 -34
  198. package/ionic-auth-ui/components/password-field/passwordValidatorFunctions.d.ts +0 -4
  199. package/ionic-auth-ui/components/providers/providers.component.d.ts +0 -26
  200. package/ionic-auth-ui/components/reauthenticate/reauthenticate.component.d.ts +0 -30
  201. package/ionic-auth-ui/components/register/register.component.d.ts +0 -26
  202. package/ionic-auth-ui/components/register-with-email/register-with-email.component.d.ts +0 -24
  203. package/ionic-auth-ui/components/register-with-email-popover/register-with-email-popover.component.d.ts +0 -7
  204. package/ionic-auth-ui/components/signin/signin.component.d.ts +0 -28
  205. package/ionic-auth-ui/components/terms-field/terms-field.component.d.ts +0 -27
  206. package/ionic-auth-ui/components/user/user.component.d.ts +0 -45
  207. package/ionic-auth-ui/ionic-auth-ui.module.d.ts +0 -32
  208. package/ionic-auth-ui/ngx-firebase-ionic-auth-ui.d.ts +0 -22
  209. package/ionic-auth-ui/ngx-firebase-ionic-auth-ui.metadata.json +0 -1
  210. package/ionic-auth-ui/package.json +0 -30
  211. package/ionic-auth-ui/pages/index.d.ts +0 -4
  212. package/ionic-auth-ui/pages/register/index.d.ts +0 -1
  213. package/ionic-auth-ui/pages/register/register.page.d.ts +0 -16
  214. package/ionic-auth-ui/pages/signin/index.d.ts +0 -1
  215. package/ionic-auth-ui/pages/signin/signin.page.d.ts +0 -22
  216. package/ionic-auth-ui/pages/user/index.d.ts +0 -1
  217. package/ionic-auth-ui/pages/user/user.page.d.ts +0 -3
  218. package/ionic-auth-ui/pages/verifyemail/index.d.ts +0 -1
  219. package/ionic-auth-ui/pages/verifyemail/verifyemail.page.d.ts +0 -19
  220. package/ionic-auth-ui/public-api.d.ts +0 -4
  221. package/ngx-firebase.d.ts +0 -5
  222. package/ngx-firebase.metadata.json +0 -1
  223. package/public-api.d.ts +0 -5
  224. package/shared/guards/index.d.ts +0 -2
  225. package/shared/guards/logged-in.guard.d.ts +0 -13
  226. package/shared/guards/verify-email.guard.d.ts +0 -11
  227. package/shared/interfaces/accounts.enum.d.ts +0 -7
  228. package/shared/interfaces/authprovider.enum.d.ts +0 -13
  229. package/shared/interfaces/config.interface.d.ts +0 -63
  230. package/shared/interfaces/index.d.ts +0 -7
  231. package/shared/interfaces/main.interface.d.ts +0 -13
  232. package/shared/interfaces/providers.interface.d.ts +0 -63
  233. package/shared/interfaces/tokens.d.ts +0 -16
  234. package/shared/interfaces/ui-providers.interface.d.ts +0 -65
  235. package/shared/services/analytics.service.d.ts +0 -10
  236. package/shared/services/auth-process.service.d.ts +0 -172
  237. package/shared/services/crashlytics.service.d.ts +0 -11
  238. package/shared/services/device-info.service.d.ts +0 -3
  239. package/shared/services/firebase.service.d.ts +0 -16
  240. package/shared/services/firestore-sync.service.d.ts +0 -16
  241. package/shared/services/index.d.ts +0 -9
  242. package/shared/services/performance.service.d.ts +0 -12
  243. package/shared/services/remoteconfig.service.d.ts +0 -18
  244. package/shared/services/ui.service.d.ts +0 -22
  245. package/shared/shared.module.d.ts +0 -14
  246. package/shared/types/DisplayWidth.d.ts +0 -7
  247. package/shared/types/Location.d.ts +0 -8
  248. package/shared/types/ValueAccessorControlComponent.d.ts +0 -27
  249. package/shared/types/ValueAccessorValueComponent.d.ts +0 -19
  250. package/shared/types/index.d.ts +0 -4
  251. package/testing/fakeavatar.module.d.ts +0 -2
  252. package/testing/fakes/FakeAuthProcessService.d.ts +0 -28
  253. package/testing/fakes/FakeAvatarComponent.d.ts +0 -3
  254. package/testing/fakes/FakeFireService.d.ts +0 -20
  255. package/testing/fakes/FakeFirestoreSyncService.d.ts +0 -9
  256. package/testing/fakes/FakeIAPurchaseService.d.ts +0 -9
  257. package/testing/fakes/FakePickerService.d.ts +0 -6
  258. package/testing/fakes/FakeRemoteConfigService.d.ts +0 -19
  259. package/testing/fakes/FakeTranslateService.d.ts +0 -15
  260. package/testing/fakes/FakeUiService.d.ts +0 -25
  261. package/testing/fakes/angular-fire/FakeAngularFireAuth.d.ts +0 -52
  262. package/testing/fakes/angular-fire/FakeAngularFireFunctions.d.ts +0 -11
  263. package/testing/fakes/angular-fire/FakeAngularFirePerformance.d.ts +0 -10
  264. package/testing/fakes/angular-fire/FakeAngularFireStorage.d.ts +0 -5
  265. package/testing/fakes/angular-fire/FakeAngularFirestore.d.ts +0 -5
  266. package/testing/fakes/angular-fire/FakeUserCredential.d.ts +0 -9
  267. package/testing/fakes/index.d.ts +0 -16
  268. package/testing/ngx-firebase-testing.d.ts +0 -5
  269. package/testing/ngx-firebase-testing.metadata.json +0 -1
  270. package/testing/package.json +0 -29
  271. package/testing/public-api.d.ts +0 -4
  272. package/testing/test.module.d.ts +0 -4
  273. package/testing/utils/index.d.ts +0 -5
  274. package/testing/utils/patchConsole.d.ts +0 -4
@@ -1 +0,0 @@
1
- {"version":3,"file":"ngx-firebase-iap.umd.js","sources":["../../../projects/ngx-firebase/iap/src/tokens/index.ts","../../../projects/ngx-firebase/iap/src/iap.module.ts","../../../projects/ngx-firebase/iap/src/interfaces/index.ts","../../../node_modules/tslib/tslib.es6.js","../../../projects/ngx-firebase/iap/src/services/iap.service.ts","../../../projects/ngx-firebase/iap/src/ngx-firebase-iap.ts"],"sourcesContent":["// This token is the official token containing the final configuration; ie. the merge between default and user provided configurations\nimport { InjectionToken } from '@angular/core';\nimport { MalIAPOptions } from '../interfaces';\n\nexport const MalIAPOptionsToken = new InjectionToken<MalIAPOptions[]>('IAPOptionsToken');\n","// @angular/*\nimport { ModuleWithProviders, NgModule } from '@angular/core';\nimport { InAppPurchase2 } from '@ionic-native/in-app-purchase-2/ngx';\nimport { MalSharedConfig, MalSharedConfigToken } from 'ngx-firebase';\nimport { MalIAPOptions } from './interfaces';\nimport { MalIAPOptionsToken } from './tokens';\n\n@NgModule({})\nexport class MalIAPModule {\n\n static forRoot(options: MalIAPOptions): ModuleWithProviders<MalIAPModule> {\n return {\n ngModule: MalIAPModule,\n providers:\n [\n { provide: MalIAPOptionsToken, useValue: options },\n {\n provide: InAppPurchase2,\n useFactory: functionsInAppPurchase2Factory,\n deps: [MalSharedConfigToken]\n },\n ]\n };\n }\n\n}\n\nfunction functionsInAppPurchase2Factory(sharedConfig: MalSharedConfig): InAppPurchase2 | undefined {\n if (false === sharedConfig.services.inAppPurchase) {\n return undefined;\n } else {\n return new InAppPurchase2();\n }\n}","import { IAPProductOptions } from '@ionic-native/in-app-purchase-2/ngx';\n\nexport enum IAPProductTypes {\n PAID_SUBSCRIPTION = 'PAID_SUBSCRIPTION'\n}\n\nexport interface MalIAPProductOptions extends IAPProductOptions {\n type: IAPProductTypes;\n}\n\nexport interface MalIAPOptions {\n validatorUrl: string;\n products: MalIAPProductOptions[];\n}\n","/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n/* global Reflect, Promise */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\r\n if (typeof b !== \"function\" && b !== null)\r\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n }\r\n return __assign.apply(this, arguments);\r\n}\r\n\r\nexport function __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (_) try {\r\n 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) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nexport var __createBinding = Object.create ? (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\r\n}) : (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n});\r\n\r\nexport function __exportStar(m, o) {\r\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(o, p)) __createBinding(o, m, p);\r\n}\r\n\r\nexport function __values(o) {\r\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\r\n if (m) return m.call(o);\r\n if (o && typeof o.length === \"number\") return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\r\n}\r\n\r\nexport function __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spreadArrays() {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n}\r\n\r\nexport function __spreadArray(to, from) {\r\n for (var i = 0, il = from.length, j = to.length; i < il; i++, j++)\r\n to[j] = from[i];\r\n return to;\r\n}\r\n\r\nexport function __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n 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; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\n 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);\r\n 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); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n};\r\n\r\nvar __setModuleDefault = Object.create ? (function(o, v) {\r\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\r\n}) : function(o, v) {\r\n o[\"default\"] = v;\r\n};\r\n\r\nexport function __importStar(mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\r\n __setModuleDefault(result, mod);\r\n return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n\r\nexport function __classPrivateFieldGet(receiver, privateMap) {\r\n if (!privateMap.has(receiver)) {\r\n throw new TypeError(\"attempted to get private field on non-instance\");\r\n }\r\n return privateMap.get(receiver);\r\n}\r\n\r\nexport function __classPrivateFieldSet(receiver, privateMap, value) {\r\n if (!privateMap.has(receiver)) {\r\n throw new TypeError(\"attempted to set private field on non-instance\");\r\n }\r\n privateMap.set(receiver, value);\r\n return value;\r\n}\r\n","import { forwardRef, Inject, Injectable, NgZone, Optional } from '@angular/core';\nimport { AuthProcessService, FirebaseService, MalSharedConfig, MalSharedConfigToken } from 'ngx-firebase';\nimport { Platform } from '@ionic/angular';\nimport { InAppPurchase2, IAPProduct } from '@ionic-native/in-app-purchase-2/ngx';\nimport { BehaviorSubject, Observable, of } from 'rxjs';\nimport { distinctUntilChanged, map } from 'rxjs/operators';\nimport { Capacitor } from '@capacitor/core';\nimport { MalIAPOptionsToken } from '../tokens';\nimport { IAPProductTypes, MalIAPOptions, MalIAPProductOptions } from '../interfaces';\n\nexport function slimDown(p: IAPProduct[]): Partial<IAPProduct>[];\nexport function slimDown(p: IAPProduct): Partial<IAPProduct>;\nexport function slimDown(p: IAPProduct | IAPProduct[]): Partial<IAPProduct> | Partial<IAPProduct>[] {\n if (Array.isArray(p)) {\n return p.map(i => slimDown(i));\n } else {\n return { owned: p.owned, id: p.id, canPurchase: p.canPurchase, state: p.state };\n }\n}\n\nexport enum ProductStates {\n owned = 'owned',\n approved = 'approved',\n initiated = 'initiated',\n requested = 'requested',\n valid = 'valid',\n registered = 'registered',\n downloading = 'downloading',\n downloaded = 'downloaded',\n finsihed = 'finished'\n\n}\n\n@Injectable({ providedIn: 'root' })\nexport class IAPurchaseService {\n\n readonly activeStates: string[] = [\n ProductStates.valid,\n ProductStates.requested,\n ProductStates.initiated,\n ProductStates.initiated,\n ProductStates.downloading,\n ProductStates.downloaded,\n ProductStates.finsihed,\n ProductStates.owned\n ] as string[];\n\n private _isLoading$: BehaviorSubject<boolean> = new BehaviorSubject<boolean>(false);\n public isLoading$ = this._isLoading$.asObservable();\n public get isLoading(): boolean { return this._isLoading$.value; }\n public set isLoading(val: boolean) { this.ngZone.run(() => this._isLoading$.next(val)); }\n\n private readonly isModuleEnabled = this.store && Capacitor.isNative && (false !== this.sharedConfig.services.inAppPurchase);\n\n public readonly products$: Observable<IAPProduct[]> = (this.isModuleEnabled) ? this.selectAllProducts() : of([]);\n\n public readonly activeProducts$: Observable<IAPProduct[]> = this.products$\n .pipe(\n map(products => products.filter(item => this.activeStates.includes(item.state) && item.title))\n );\n\n public readonly productsHeld$: Observable<IAPProduct[]> = this.products$\n .pipe(map(products => products.filter(item => item.owned)));\n\n selectAllProducts(): Observable<IAPProduct[]> {\n if (this.isModuleEnabled) {\n return new Observable<IAPProduct[]>(subscriber => {\n this.store.ready(() => {\n this.ngZone.run(() => {\n subscriber.next(this.store.products);\n });\n });\n this.store.when('product').updated((p: IAPProduct) => {\n this.ngZone.run(() => {\n subscriber.next(this.store.products);\n });\n });\n });\n } else {\n return of([]);\n }\n }\n\n selectProduct(product: string | IAPProduct): Observable<IAPProduct> {\n if (this.isModuleEnabled) {\n return new Observable<IAPProduct>(subscriber => {\n this.store.when(product).registered((p: IAPProduct) => {\n this.ngZone.run(() => {\n subscriber.next(p);\n });\n });\n this.store.when(product).updated((p: IAPProduct) => {\n this.ngZone.run(() => {\n subscriber.next(p);\n });\n });\n });\n } else {\n return of();\n }\n }\n\n selectIsOwned(product: string | IAPProduct): Observable<boolean> {\n return this.selectProduct(product)\n .pipe(\n map(p => p.owned),\n distinctUntilChanged()\n );\n }\n\n selectVerified(product: string | IAPProduct = 'product'): Observable<IAPProduct> {\n if (this.isModuleEnabled) {\n return new Observable<IAPProduct>(subscriber => {\n this.store.when(product).verified((p: IAPProduct) => {\n this.ngZone.run(() => {\n subscriber.next(p);\n });\n });\n });\n } else {\n return of();\n }\n }\n\n selectOwned(product: string | IAPProduct = 'product'): Observable<IAPProduct> {\n if (this.isModuleEnabled) {\n return new Observable<IAPProduct>(subscriber => {\n this.store.when(product).owned((p: IAPProduct) => {\n this.ngZone.run(() => {\n subscriber.next(p);\n });\n });\n });\n } else {\n return of();\n }\n }\n\n /*\n private updateProduct(p: IAPProduct) {\n const i = this.products.findIndex(item => p.id === item.id);\n this.products[i] = p;\n }\n */\n\n constructor(\n private plt: Platform,\n @Optional() private store: InAppPurchase2,\n private aps: AuthProcessService,\n private ngZone: NgZone,\n private fire: FirebaseService,\n @Inject(forwardRef(() => MalIAPOptionsToken)) private options: MalIAPOptions,\n @Inject(forwardRef(() => MalSharedConfigToken)) private sharedConfig: MalSharedConfig\n ) {\n if (this.isModuleEnabled && this.options.validatorUrl) {\n this.plt.ready().then(async () => {\n this.isLoading = true;\n\n this.aps.user$.subscribe(\n user => {\n this.store.applicationUsername = user?.uid || '';\n }\n );\n\n this.store.validator = this.options.validatorUrl;\n\n /* For debug\n this.store.when('product').updated((p: IAPProduct) => {\n console.log('C:UPDTED>', slimDown(p));\n });\n */\n this.store.when('product').approved((p: IAPProduct) => {\n p.verify();\n });\n\n this.store.error((error: any) => {\n this.fire.recordException(error);\n });\n\n try {\n await this.load(this.options.products);\n } catch (error) {\n this.fire.recordException(error);\n } finally {\n this.isLoading = false;\n }\n\n });\n } else {\n this.fire.addLogMessage('Not starting IAP as not a device');\n console.warn('Not starting IAP as not a device');\n }\n }\n\n private load(products: MalIAPProductOptions[]): Promise<IAPProduct[]> {\n return new Promise<IAPProduct[]>((resolve, reject) => {\n try {\n this.fire.addLogMessage('Error registering products');\n this.store.register(products.map(item => {\n let type: string;\n switch (item.type) {\n case IAPProductTypes.PAID_SUBSCRIPTION: type = this.store.PAID_SUBSCRIPTION; break;\n default: throw new Error('Product type not recognised');\n }\n return {\n ...item,\n type\n };\n }));\n } catch (error) {\n this.fire.recordException(error);\n }\n\n this.store.ready(() => {\n // console.log('READY READY 1>', consoleDebug(this.store.products));\n resolve(this.store.products);\n });\n\n this.store.error((error: any) => {\n this.fire.recordException(error);\n reject(error);\n });\n\n try {\n this.fire.addLogMessage('Starting store refresh');\n this.store.refresh();\n } catch (error) {\n this.fire.recordException(error);\n }\n\n });\n }\n\n purchase(product: IAPProduct | string, waitForOwned = true): Observable<IAPProduct> {\n try {\n\n if (!this.isModuleEnabled) {\n throw new Error('IAP Module not enabled');\n }\n if (!this.store.applicationUsername) {\n throw new Error('Unable to puchase when store.applicationUsername is not set');\n }\n return new Observable<IAPProduct>(subscriber => {\n this.store.when(product).requested((p: IAPProduct) => {\n subscriber.next(p);\n });\n this.store.when(product).initiated((p: IAPProduct) => {\n subscriber.next(p);\n });\n this.store.when(product).approved((p: IAPProduct) => {\n subscriber.next(p);\n });\n this.store.when(product).verified(async (p: IAPProduct) => {\n // console.log('P:VERIFIED>', consoleDebug(p));\n subscriber.next(p);\n if (!waitForOwned) {\n subscriber.complete();\n } // HERE WE ARE RELAIANT ON SOMETHING EXTERNAL FULLFILLING\n });\n this.store.once(product).owned(async (p: IAPProduct) => {\n // console.log('P:OWNED>', consoleDebug(p));\n subscriber.next(p);\n subscriber.complete();\n });\n this.store.once(product).cancelled((p: IAPProduct) => {\n // console.log('P:CANCELLED>', consoleDebug(p));\n subscriber.next(p);\n subscriber.complete();\n });\n this.store.once(product).error((error: any) => {\n this.fire.recordException(error);\n subscriber.error(error);\n });\n this.store.order(product).then((p: any) => {\n // Purchase in progress!\n }, (error: any) => {\n this.fire.recordException(error);\n subscriber.error(error);\n });\n });\n } catch (error) {\n this.fire.recordException(error);\n throw error;\n }\n }\n\n finish(product: IAPProduct): Promise<IAPProduct> {\n try {\n if (!this.isModuleEnabled) {\n throw new Error('IAP Module not enabled');\n }\n return new Promise<IAPProduct>((resolve, reject) => {\n this.store.once(product).owned((p: IAPProduct) => {\n // console.log('P:OWNED>', consoleDebug(p));\n resolve(p);\n });\n this.store.once(product).error((error: any) => {\n this.fire.recordException(error);\n reject(error);\n });\n try {\n this.fire.addLogMessage('Starting finsih product');\n product.finish();\n } catch (error) {\n this.fire.recordException(error);\n }\n });\n } catch (error) {\n this.fire.recordException(error);\n }\n }\n\n // To comply with AppStore rules\n async refresh() {\n if (this.isModuleEnabled) {\n try {\n this.fire.addLogMessage('Starting store refresh');\n await this.store.refresh();\n } catch (error) {\n this.fire.recordException(error);\n }\n }\n }\n\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["InjectionToken","InAppPurchase2","MalSharedConfigToken","NgModule","IAPProductTypes","ProductStates","BehaviorSubject","Capacitor","of","map","Observable","distinctUntilChanged","Injectable","Platform","Optional","AuthProcessService","NgZone","FirebaseService","Inject","forwardRef"],"mappings":"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"}
@@ -1,2 +0,0 @@
1
- !function(e,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports,require("@angular/core"),require("@ionic-native/in-app-purchase-2/ngx"),require("ngx-firebase"),require("@ionic/angular"),require("rxjs"),require("rxjs/operators"),require("@capacitor/core"),require("@ionic-native/in-app-purchase-2/ngx/index")):"function"==typeof define&&define.amd?define("ngx-firebase/iap",["exports","@angular/core","@ionic-native/in-app-purchase-2/ngx","ngx-firebase","@ionic/angular","rxjs","rxjs/operators","@capacitor/core","@ionic-native/in-app-purchase-2/ngx/index"],t):t(((e="undefined"!=typeof globalThis?globalThis:e||self)["ngx-firebase"]=e["ngx-firebase"]||{},e["ngx-firebase"].iap={}),e.ng.core,e.InAppPurchase2,e["ngx-firebase"],e.ionic.angular,e.rxjs,e.rxjs.operators,e.Capacitor,e.InAppPurchase2)}(this,(function(e,t,r,n,o,i,s,c,a){"use strict";var u=new t.InjectionToken("IAPOptionsToken"),d=function(){function e(){}return e.forRoot=function(t){return{ngModule:e,providers:[{provide:u,useValue:t},{provide:r.InAppPurchase2,useFactory:f,deps:[n.MalSharedConfigToken]}]}},e}();function f(e){return!1===e.services.inAppPurchase?void 0:new r.InAppPurchase2}d.decorators=[{type:t.NgModule,args:[{}]}],e.IAPProductTypes=void 0,(e.IAPProductTypes||(e.IAPProductTypes={})).PAID_SUBSCRIPTION="PAID_SUBSCRIPTION";function p(e,t,r,n){return new(r||(r=Promise))((function(o,i){function s(e){try{a(n.next(e))}catch(e){i(e)}}function c(e){try{a(n.throw(e))}catch(e){i(e)}}function a(e){var t;e.done?o(e.value):(t=e.value,t instanceof r?t:new r((function(e){e(t)}))).then(s,c)}a((n=n.apply(e,t||[])).next())}))}function l(e,t){var r,n,o,i,s={label:0,sent:function(){if(1&o[0])throw o[1];return o[1]},trys:[],ops:[]};return i={next:c(0),throw:c(1),return:c(2)},"function"==typeof Symbol&&(i[Symbol.iterator]=function(){return this}),i;function c(i){return function(c){return function(i){if(r)throw new TypeError("Generator is already executing.");for(;s;)try{if(r=1,n&&(o=2&i[0]?n.return:i[0]?n.throw||((o=n.return)&&o.call(n),0):n.next)&&!(o=o.call(n,i[1])).done)return o;switch(n=0,o&&(i=[2&i[0],o.value]),i[0]){case 0:case 1:o=i;break;case 4:return s.label++,{value:i[1],done:!1};case 5:s.label++,n=i[1],i=[0];continue;case 7:i=s.ops.pop(),s.trys.pop();continue;default:if(!(o=s.trys,(o=o.length>0&&o[o.length-1])||6!==i[0]&&2!==i[0])){s=0;continue}if(3===i[0]&&(!o||i[1]>o[0]&&i[1]<o[3])){s.label=i[1];break}if(6===i[0]&&s.label<o[1]){s.label=o[1],o=i;break}if(o&&s.label<o[2]){s.label=o[2],s.ops.push(i);break}o[2]&&s.ops.pop(),s.trys.pop();continue}i=t.call(e,s)}catch(e){i=[6,e],n=0}finally{r=o=0}if(5&i[0])throw i[1];return{value:i[0]?i[1]:void 0,done:!0}}([i,c])}}}Object.create;var h;Object.create;e.ProductStates=void 0,(h=e.ProductStates||(e.ProductStates={})).owned="owned",h.approved="approved",h.initiated="initiated",h.requested="requested",h.valid="valid",h.registered="registered",h.downloading="downloading",h.downloaded="downloaded",h.finsihed="finished";var v=function(){function t(t,r,n,o,a,u,d){var f=this;this.plt=t,this.store=r,this.aps=n,this.ngZone=o,this.fire=a,this.options=u,this.sharedConfig=d,this.activeStates=[e.ProductStates.valid,e.ProductStates.requested,e.ProductStates.initiated,e.ProductStates.initiated,e.ProductStates.downloading,e.ProductStates.downloaded,e.ProductStates.finsihed,e.ProductStates.owned],this._isLoading$=new i.BehaviorSubject(!1),this.isLoading$=this._isLoading$.asObservable(),this.isModuleEnabled=this.store&&c.Capacitor.isNative&&!1!==this.sharedConfig.services.inAppPurchase,this.products$=this.isModuleEnabled?this.selectAllProducts():i.of([]),this.activeProducts$=this.products$.pipe(s.map((function(e){return e.filter((function(e){return f.activeStates.includes(e.state)&&e.title}))}))),this.productsHeld$=this.products$.pipe(s.map((function(e){return e.filter((function(e){return e.owned}))}))),this.isModuleEnabled&&this.options.validatorUrl?this.plt.ready().then((function(){return p(f,void 0,void 0,(function(){var e,t=this;return l(this,(function(r){switch(r.label){case 0:this.isLoading=!0,this.aps.user$.subscribe((function(e){t.store.applicationUsername=(null==e?void 0:e.uid)||""})),this.store.validator=this.options.validatorUrl,this.store.when("product").approved((function(e){e.verify()})),this.store.error((function(e){t.fire.recordException(e)})),r.label=1;case 1:return r.trys.push([1,3,4,5]),[4,this.load(this.options.products)];case 2:return r.sent(),[3,5];case 3:return e=r.sent(),this.fire.recordException(e),[3,5];case 4:return this.isLoading=!1,[7];case 5:return[2]}}))}))})):(this.fire.addLogMessage("Not starting IAP as not a device"),console.warn("Not starting IAP as not a device"))}return Object.defineProperty(t.prototype,"isLoading",{get:function(){return this._isLoading$.value},set:function(e){var t=this;this.ngZone.run((function(){return t._isLoading$.next(e)}))},enumerable:!1,configurable:!0}),t.prototype.selectAllProducts=function(){var e=this;return this.isModuleEnabled?new i.Observable((function(t){e.store.ready((function(){e.ngZone.run((function(){t.next(e.store.products)}))})),e.store.when("product").updated((function(r){e.ngZone.run((function(){t.next(e.store.products)}))}))})):i.of([])},t.prototype.selectProduct=function(e){var t=this;return this.isModuleEnabled?new i.Observable((function(r){t.store.when(e).registered((function(e){t.ngZone.run((function(){r.next(e)}))})),t.store.when(e).updated((function(e){t.ngZone.run((function(){r.next(e)}))}))})):i.of()},t.prototype.selectIsOwned=function(e){return this.selectProduct(e).pipe(s.map((function(e){return e.owned})),s.distinctUntilChanged())},t.prototype.selectVerified=function(e){var t=this;return void 0===e&&(e="product"),this.isModuleEnabled?new i.Observable((function(r){t.store.when(e).verified((function(e){t.ngZone.run((function(){r.next(e)}))}))})):i.of()},t.prototype.selectOwned=function(e){var t=this;return void 0===e&&(e="product"),this.isModuleEnabled?new i.Observable((function(r){t.store.when(e).owned((function(e){t.ngZone.run((function(){r.next(e)}))}))})):i.of()},t.prototype.load=function(t){var r=this;return new Promise((function(n,o){try{r.fire.addLogMessage("Error registering products"),r.store.register(t.map((function(t){var n;switch(t.type){case e.IAPProductTypes.PAID_SUBSCRIPTION:n=r.store.PAID_SUBSCRIPTION;break;default:throw new Error("Product type not recognised")}return Object.assign(Object.assign({},t),{type:n})})))}catch(e){r.fire.recordException(e)}r.store.ready((function(){n(r.store.products)})),r.store.error((function(e){r.fire.recordException(e),o(e)}));try{r.fire.addLogMessage("Starting store refresh"),r.store.refresh()}catch(e){r.fire.recordException(e)}}))},t.prototype.purchase=function(e,t){var r=this;void 0===t&&(t=!0);try{if(!this.isModuleEnabled)throw new Error("IAP Module not enabled");if(!this.store.applicationUsername)throw new Error("Unable to puchase when store.applicationUsername is not set");return new i.Observable((function(n){r.store.when(e).requested((function(e){n.next(e)})),r.store.when(e).initiated((function(e){n.next(e)})),r.store.when(e).approved((function(e){n.next(e)})),r.store.when(e).verified((function(e){return p(r,void 0,void 0,(function(){return l(this,(function(r){return n.next(e),t||n.complete(),[2]}))}))})),r.store.once(e).owned((function(e){return p(r,void 0,void 0,(function(){return l(this,(function(t){return n.next(e),n.complete(),[2]}))}))})),r.store.once(e).cancelled((function(e){n.next(e),n.complete()})),r.store.once(e).error((function(e){r.fire.recordException(e),n.error(e)})),r.store.order(e).then((function(e){}),(function(e){r.fire.recordException(e),n.error(e)}))}))}catch(e){throw this.fire.recordException(e),e}},t.prototype.finish=function(e){var t=this;try{if(!this.isModuleEnabled)throw new Error("IAP Module not enabled");return new Promise((function(r,n){t.store.once(e).owned((function(e){r(e)})),t.store.once(e).error((function(e){t.fire.recordException(e),n(e)}));try{t.fire.addLogMessage("Starting finsih product"),e.finish()}catch(e){t.fire.recordException(e)}}))}catch(e){this.fire.recordException(e)}},t.prototype.refresh=function(){return p(this,void 0,void 0,(function(){var e;return l(this,(function(t){switch(t.label){case 0:if(!this.isModuleEnabled)return[3,4];t.label=1;case 1:return t.trys.push([1,3,,4]),this.fire.addLogMessage("Starting store refresh"),[4,this.store.refresh()];case 2:return t.sent(),[3,4];case 3:return e=t.sent(),this.fire.recordException(e),[3,4];case 4:return[2]}}))}))},t}();v.ɵprov=t.ɵɵdefineInjectable({factory:function(){return new v(t.ɵɵinject(o.Platform),t.ɵɵinject(a.InAppPurchase2,8),t.ɵɵinject(n.AuthProcessService),t.ɵɵinject(t.NgZone),t.ɵɵinject(n.FirebaseService),t.ɵɵinject(u),t.ɵɵinject(n.MalSharedConfigToken))},token:v,providedIn:"root"}),v.decorators=[{type:t.Injectable,args:[{providedIn:"root"}]}],v.ctorParameters=function(){return[{type:o.Platform},{type:r.InAppPurchase2,decorators:[{type:t.Optional}]},{type:n.AuthProcessService},{type:t.NgZone},{type:n.FirebaseService},{type:void 0,decorators:[{type:t.Inject,args:[t.forwardRef((function(){return u}))]}]},{type:void 0,decorators:[{type:t.Inject,args:[t.forwardRef((function(){return n.MalSharedConfigToken}))]}]}]},e.IAPurchaseService=v,e.MalIAPModule=d,e.MalIAPOptionsToken=u,e.slimDown=function e(t){return Array.isArray(t)?t.map((function(t){return e(t)})):{owned:t.owned,id:t.id,canPurchase:t.canPurchase,state:t.state}},Object.defineProperty(e,"__esModule",{value:!0})}));
2
- //# sourceMappingURL=ngx-firebase-iap.umd.min.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../../projects/ngx-firebase/iap/src/tokens/index.ts","../../../projects/ngx-firebase/iap/src/iap.module.ts","../../../projects/ngx-firebase/iap/src/interfaces/index.ts","../../../node_modules/tslib/tslib.es6.js","../../../projects/ngx-firebase/iap/src/services/iap.service.ts"],"names":["MalIAPOptionsToken","InjectionToken","MalIAPModule","forRoot","options","ngModule","providers","provide","useValue","InAppPurchase2","useFactory","functionsInAppPurchase2Factory","deps","MalSharedConfigToken","sharedConfig","services","inAppPurchase","NgModule","args","IAPProductTypes","__awaiter","thisArg","_arguments","P","generator","Promise","resolve","reject","fulfilled","value","step","next","e","rejected","result","done","then","apply","__generator","body","f","y","t","g","_","label","sent","trys","ops","verb","throw","return","Symbol","iterator","this","n","v","op","TypeError","call","pop","length","push","Object","create","ProductStates","IAPurchaseService","plt","store","aps","ngZone","fire","_this","activeStates","valid","requested","initiated","downloading","downloaded","finsihed","owned","_isLoading$","BehaviorSubject","isLoading$","asObservable","isModuleEnabled","Capacitor","isNative","products$","selectAllProducts","of","activeProducts$","pipe","map","products","filter","item","includes","state","title","productsHeld$","validatorUrl","ready","isLoading","user$","subscribe","user","applicationUsername","uid","validator","when","approved","p","verify","error","recordException","load","_a","error_1","addLogMessage","console","warn","defineProperty","prototype","val","run","Observable","subscriber","updated","selectProduct","product","registered","selectIsOwned","distinctUntilChanged","selectVerified","verified","selectOwned","register","type","PAID_SUBSCRIPTION","Error","assign","refresh","purchase","waitForOwned","complete","once","cancelled","order","finish","error_2","Injectable","providedIn","Platform","decorators","Optional","AuthProcessService","NgZone","FirebaseService","Inject","forwardRef","slimDown","Array","isArray","i","id","canPurchase"],"mappings":"81BAIaA,EAAqB,IAAIC,EAAAA,eAAgC,gCCItE,SAAAC,YAESA,EAAAC,QAAP,SAAeC,GACb,MAAO,CACLC,SAAUH,EACVI,UACE,CACE,CAAEC,QAASP,EAAoBQ,SAAUJ,GACzC,CACEG,QAASE,EAAAA,eACTC,WAAYC,EACZC,KAAM,CAACC,EAAAA,+BAQnB,SAASF,EAA+BG,GACtC,OAAI,IAAUA,EAAaC,SAASC,mBAClC,EAEO,IAAIP,EAAAA,mCAxBdQ,EAAAA,SAAQC,KAAA,CAAC,MCLEC,EAAAA,qBAAAA,GAAAA,EAAAA,kBAAAA,EAAAA,gBAAe,KACvB,kBAAA,6BCkEYC,EAAUC,EAASC,EAAYC,EAAGC,GAE9C,OAAO,IAAKD,IAAMA,EAAIE,WAAU,SAAUC,EAASC,GAC/C,SAASC,EAAUC,GAAS,IAAMC,EAAKN,EAAUO,KAAKF,IAAW,MAAOG,GAAKL,EAAOK,IACpF,SAASC,EAASJ,GAAS,IAAMC,EAAKN,EAAiB,MAAEK,IAAW,MAAOG,GAAKL,EAAOK,IACvF,SAASF,EAAKI,GAJlB,IAAeL,EAIaK,EAAOC,KAAOT,EAAQQ,EAAOL,QAJ1CA,EAIyDK,EAAOL,MAJhDA,aAAiBN,EAAIM,EAAQ,IAAIN,GAAE,SAAUG,GAAWA,EAAQG,OAITO,KAAKR,EAAWK,GAClGH,GAAMN,EAAYA,EAAUa,MAAMhB,EAASC,GAAc,KAAKS,oBAItDO,EAAYjB,EAASkB,GACjC,IAAsGC,EAAGC,EAAGC,EAAGC,EAA3GC,EAAI,CAAEC,MAAO,EAAGC,KAAM,WAAa,GAAW,EAAPJ,EAAE,GAAQ,MAAMA,EAAE,GAAI,OAAOA,EAAE,IAAOK,KAAM,GAAIC,IAAK,IAChG,OAAOL,EAAI,CAAEZ,KAAMkB,EAAK,GAAIC,MAASD,EAAK,GAAIE,OAAUF,EAAK,IAAwB,mBAAXG,SAA0BT,EAAES,OAAOC,UAAY,WAAa,OAAOC,OAAUX,EACvJ,SAASM,EAAKM,GAAK,OAAO,SAAUC,GAAK,OACzC,SAAcC,GACV,GAAIjB,EAAG,MAAM,IAAIkB,UAAU,mCAC3B,KAAOd,OACH,GAAIJ,EAAI,EAAGC,IAAMC,EAAY,EAARe,EAAG,GAAShB,EAAU,OAAIgB,EAAG,GAAKhB,EAAS,SAAOC,EAAID,EAAU,SAAMC,EAAEiB,KAAKlB,GAAI,GAAKA,EAAEV,SAAWW,EAAIA,EAAEiB,KAAKlB,EAAGgB,EAAG,KAAKtB,KAAM,OAAOO,EAE3J,OADID,EAAI,EAAGC,IAAGe,EAAK,CAAS,EAARA,EAAG,GAAQf,EAAEb,QACzB4B,EAAG,IACP,KAAK,EAAG,KAAK,EAAGf,EAAIe,EAAI,MACxB,KAAK,EAAc,OAAXb,EAAEC,QAAgB,CAAEhB,MAAO4B,EAAG,GAAItB,MAAM,GAChD,KAAK,EAAGS,EAAEC,QAASJ,EAAIgB,EAAG,GAAIA,EAAK,CAAC,GAAI,SACxC,KAAK,EAAGA,EAAKb,EAAEI,IAAIY,MAAOhB,EAAEG,KAAKa,MAAO,SACxC,QACI,KAAMlB,EAAIE,EAAEG,MAAML,EAAIA,EAAEmB,OAAS,GAAKnB,EAAEA,EAAEmB,OAAS,KAAkB,IAAVJ,EAAG,IAAsB,IAAVA,EAAG,IAAW,CAAEb,EAAI,EAAG,SACjG,GAAc,IAAVa,EAAG,MAAcf,GAAMe,EAAG,GAAKf,EAAE,IAAMe,EAAG,GAAKf,EAAE,IAAM,CAAEE,EAAEC,MAAQY,EAAG,GAAI,MAC9E,GAAc,IAAVA,EAAG,IAAYb,EAAEC,MAAQH,EAAE,GAAI,CAAEE,EAAEC,MAAQH,EAAE,GAAIA,EAAIe,EAAI,MAC7D,GAAIf,GAAKE,EAAEC,MAAQH,EAAE,GAAI,CAAEE,EAAEC,MAAQH,EAAE,GAAIE,EAAEI,IAAIc,KAAKL,GAAK,MACvDf,EAAE,IAAIE,EAAEI,IAAIY,MAChBhB,EAAEG,KAAKa,MAAO,SAEtBH,EAAKlB,EAAKoB,KAAKtC,EAASuB,GAC1B,MAAOZ,GAAKyB,EAAK,CAAC,EAAGzB,GAAIS,EAAI,UAAeD,EAAIE,EAAI,EACtD,GAAY,EAARe,EAAG,GAAQ,MAAMA,EAAG,GAAI,MAAO,CAAE5B,MAAO4B,EAAG,GAAKA,EAAG,QAAK,EAAQtB,MAAM,GArB9BL,CAAK,CAACyB,EAAGC,MAyBhCO,OAAOC,OAkGpC,ICzLYC,EDyLaF,OAAOC,OCzLpBC,EAAAA,mBAAAA,GAAAA,EAAAA,EAAAA,gBAAAA,EAAAA,cAAa,KACvB,MAAA,QACAA,EAAA,SAAA,WACAA,EAAA,UAAA,YACAA,EAAA,UAAA,YACAA,EAAA,MAAA,QACAA,EAAA,WAAA,aACAA,EAAA,YAAA,cACAA,EAAA,WAAA,aACAA,EAAA,SAAA,4BAoHA,SAAAC,EACUC,EACYC,EACZC,EACAC,EACAC,EAC8CnE,EACEU,GAP1D,IAAA0D,EAAAlB,KACUA,KAAAa,IAAAA,EACYb,KAAAc,MAAAA,EACZd,KAAAe,IAAAA,EACAf,KAAAgB,OAAAA,EACAhB,KAAAiB,KAAAA,EAC8CjB,KAAAlD,QAAAA,EACEkD,KAAAxC,aAAAA,EApHjDwC,KAAAmB,aAAyB,CAChCR,EAAAA,cAAcS,MACdT,EAAAA,cAAcU,UACdV,EAAAA,cAAcW,UACdX,EAAAA,cAAcW,UACdX,EAAAA,cAAcY,YACdZ,EAAAA,cAAca,WACdb,EAAAA,cAAcc,SACdd,EAAAA,cAAce,OAGR1B,KAAA2B,YAAwC,IAAIC,EAAAA,iBAAyB,GACtE5B,KAAA6B,WAAa7B,KAAK2B,YAAYG,eAIpB9B,KAAA+B,gBAAkB/B,KAAKc,OAASkB,EAAAA,UAAUC,WAAa,IAAUjC,KAAKxC,aAAaC,SAASC,cAE7FsC,KAAAkC,UAAuClC,KAAoB,gBAAIA,KAAKmC,oBAAsBC,EAAAA,GAAG,IAE7FpC,KAAAqC,gBAA4CrC,KAAKkC,UAC9DI,KACCC,EAAAA,KAAI,SAAAC,GAAY,OAAAA,EAASC,QAAO,SAAAC,GAAQ,OAAAxB,EAAKC,aAAawB,SAASD,EAAKE,QAAUF,EAAKG,aAG3E7C,KAAA8C,cAA0C9C,KAAKkC,UAC5DI,KAAKC,EAAAA,KAAI,SAAAC,GAAY,OAAAA,EAASC,QAAO,SAAAC,GAAQ,OAAAA,EAAKhB,aA4F/C1B,KAAK+B,iBAAmB/B,KAAKlD,QAAQiG,aACvC/C,KAAKa,IAAImC,QAAQlE,MAAK,WAAA,OAAAhB,EAAAoD,OAAA,OAAA,GAAA,0EACpBlB,KAAKiD,WAAY,EAEjBjD,KAAKe,IAAImC,MAAMC,WACb,SAAAC,GACElC,EAAKJ,MAAMuC,qBAAsBD,MAAAA,OAAI,EAAJA,EAAME,MAAO,MAIlDtD,KAAKc,MAAMyC,UAAYvD,KAAKlD,QAAQiG,aAOpC/C,KAAKc,MAAM0C,KAAK,WAAWC,UAAS,SAACC,GACnCA,EAAEC,YAGJ3D,KAAKc,MAAM8C,OAAM,SAACA,GAChB1C,EAAKD,KAAK4C,gBAAgBD,uBAI1B,8BAAA,CAAA,EAAM5D,KAAK8D,KAAK9D,KAAKlD,QAAQ0F,yBAA7BuB,EAAAvE,sCAEAQ,KAAKiB,KAAK4C,gBAAgBG,uBAE1BhE,KAAKiD,WAAY,kCAKrBjD,KAAKiB,KAAKgD,cAAc,oCACxBC,QAAQC,KAAK,4CA7IjB1D,OAAA2D,eAAWxD,EAAAyD,UAAA,YAAS,KAApB,WAAkC,OAAOrE,KAAK2B,YAAYpD,WAC1D,SAAqB+F,GAArB,IAAApD,EAAAlB,KAAqCA,KAAKgB,OAAOuD,KAAI,WAAM,OAAArD,EAAKS,YAAYlD,KAAK6F,uCAcjF1D,EAAAyD,UAAAlC,kBAAA,WAAA,IAAAjB,EAAAlB,KACE,OAAIA,KAAK+B,gBACA,IAAIyC,EAAAA,YAAyB,SAAAC,GAClCvD,EAAKJ,MAAMkC,OAAM,WACf9B,EAAKF,OAAOuD,KAAI,WACdE,EAAWhG,KAAKyC,EAAKJ,MAAM0B,gBAG/BtB,EAAKJ,MAAM0C,KAAK,WAAWkB,SAAQ,SAAChB,GAClCxC,EAAKF,OAAOuD,KAAI,WACdE,EAAWhG,KAAKyC,EAAKJ,MAAM0B,mBAK1BJ,EAAAA,GAAG,KAIdxB,EAAAyD,UAAAM,cAAA,SAAcC,GAAd,IAAA1D,EAAAlB,KACE,OAAIA,KAAK+B,gBACA,IAAIyC,EAAAA,YAAuB,SAAAC,GAChCvD,EAAKJ,MAAM0C,KAAKoB,GAASC,YAAW,SAACnB,GACnCxC,EAAKF,OAAOuD,KAAI,WACdE,EAAWhG,KAAKiF,SAGpBxC,EAAKJ,MAAM0C,KAAKoB,GAASF,SAAQ,SAAChB,GAChCxC,EAAKF,OAAOuD,KAAI,WACdE,EAAWhG,KAAKiF,YAKftB,EAAAA,MAIXxB,EAAAyD,UAAAS,cAAA,SAAcF,GACZ,OAAO5E,KAAK2E,cAAcC,GACvBtC,KACCC,EAAAA,KAAI,SAAAmB,GAAK,OAAAA,EAAEhC,SACXqD,EAAAA,yBAINnE,EAAAyD,UAAAW,eAAA,SAAeJ,GAAf,IAAA1D,EAAAlB,KACE,YADa,IAAA4E,IAAAA,EAAA,WACT5E,KAAK+B,gBACA,IAAIyC,EAAAA,YAAuB,SAAAC,GAChCvD,EAAKJ,MAAM0C,KAAKoB,GAASK,UAAS,SAACvB,GACjCxC,EAAKF,OAAOuD,KAAI,WACdE,EAAWhG,KAAKiF,YAKftB,EAAAA,MAIXxB,EAAAyD,UAAAa,YAAA,SAAYN,GAAZ,IAAA1D,EAAAlB,KACE,YADU,IAAA4E,IAAAA,EAAA,WACN5E,KAAK+B,gBACA,IAAIyC,EAAAA,YAAuB,SAAAC,GAChCvD,EAAKJ,MAAM0C,KAAKoB,GAASlD,OAAM,SAACgC,GAC9BxC,EAAKF,OAAOuD,KAAI,WACdE,EAAWhG,KAAKiF,YAKftB,EAAAA,MA4DHxB,EAAAyD,UAAAP,KAAA,SAAKtB,GAAL,IAAAtB,EAAAlB,KACN,OAAO,IAAI7B,SAAsB,SAACC,EAASC,GACzC,IACE6C,EAAKD,KAAKgD,cAAc,8BACxB/C,EAAKJ,MAAMqE,SAAS3C,EAASD,KAAI,SAAAG,GAC/B,IAAI0C,EACJ,OAAQ1C,EAAK0C,MACX,KAAKvH,EAAAA,gBAAgBwH,kBAAmBD,EAAOlE,EAAKJ,MAAMuE,kBAAmB,MAC7E,QAAS,MAAM,IAAIC,MAAM,+BAE3B,OAAA7E,OAAA8E,OAAA9E,OAAA8E,OAAA,GACK7C,GAAI,CACP0C,KAAIA,QAGR,MAAOxB,GACP1C,EAAKD,KAAK4C,gBAAgBD,GAG5B1C,EAAKJ,MAAMkC,OAAM,WAEf5E,EAAQ8C,EAAKJ,MAAM0B,aAGrBtB,EAAKJ,MAAM8C,OAAM,SAACA,GAChB1C,EAAKD,KAAK4C,gBAAgBD,GAC1BvF,EAAOuF,MAGT,IACE1C,EAAKD,KAAKgD,cAAc,0BACxB/C,EAAKJ,MAAM0E,UACX,MAAO5B,GACP1C,EAAKD,KAAK4C,gBAAgBD,QAMhChD,EAAAyD,UAAAoB,SAAA,SAASb,EAA8Bc,GAAvC,IAAAxE,EAAAlB,UAAuC,IAAA0F,IAAAA,GAAA,GACrC,IAEE,IAAK1F,KAAK+B,gBACR,MAAM,IAAIuD,MAAM,0BAElB,IAAKtF,KAAKc,MAAMuC,oBACd,MAAM,IAAIiC,MAAM,+DAElB,OAAO,IAAId,EAAAA,YAAuB,SAAAC,GAChCvD,EAAKJ,MAAM0C,KAAKoB,GAASvD,WAAU,SAACqC,GAClCe,EAAWhG,KAAKiF,MAElBxC,EAAKJ,MAAM0C,KAAKoB,GAAStD,WAAU,SAACoC,GAClCe,EAAWhG,KAAKiF,MAElBxC,EAAKJ,MAAM0C,KAAKoB,GAASnB,UAAS,SAACC,GACjCe,EAAWhG,KAAKiF,MAElBxC,EAAKJ,MAAM0C,KAAKoB,GAASK,UAAS,SAAOvB,GAAa,OAAA5F,EAAAoD,OAAA,OAAA,GAAA,6CAEpDuD,EAAWhG,KAAKiF,GACXgC,GACHjB,EAAWkB,wBAGfzE,EAAKJ,MAAM8E,KAAKhB,GAASlD,OAAM,SAAOgC,GAAa,OAAA5F,EAAAoD,OAAA,OAAA,GAAA,6CAEjDuD,EAAWhG,KAAKiF,GAChBe,EAAWkB,wBAEbzE,EAAKJ,MAAM8E,KAAKhB,GAASiB,WAAU,SAACnC,GAElCe,EAAWhG,KAAKiF,GAChBe,EAAWkB,cAEbzE,EAAKJ,MAAM8E,KAAKhB,GAAShB,OAAM,SAACA,GAC9B1C,EAAKD,KAAK4C,gBAAgBD,GAC1Ba,EAAWb,MAAMA,MAEnB1C,EAAKJ,MAAMgF,MAAMlB,GAAS9F,MAAK,SAAC4E,OAE7B,SAACE,GACF1C,EAAKD,KAAK4C,gBAAgBD,GAC1Ba,EAAWb,MAAMA,SAGrB,MAAOA,GAEP,MADA5D,KAAKiB,KAAK4C,gBAAgBD,GACpBA,IAIVhD,EAAAyD,UAAA0B,OAAA,SAAOnB,GAAP,IAAA1D,EAAAlB,KACE,IACE,IAAKA,KAAK+B,gBACR,MAAM,IAAIuD,MAAM,0BAElB,OAAO,IAAInH,SAAoB,SAACC,EAASC,GACvC6C,EAAKJ,MAAM8E,KAAKhB,GAASlD,OAAM,SAACgC,GAE9BtF,EAAQsF,MAEVxC,EAAKJ,MAAM8E,KAAKhB,GAAShB,OAAM,SAACA,GAC9B1C,EAAKD,KAAK4C,gBAAgBD,GAC1BvF,EAAOuF,MAET,IACE1C,EAAKD,KAAKgD,cAAc,2BACxBW,EAAQmB,SACR,MAAOnC,GACP1C,EAAKD,KAAK4C,gBAAgBD,OAG9B,MAAOA,GACP5D,KAAKiB,KAAK4C,gBAAgBD,KAKxBhD,EAAAyD,UAAAmB,QAAA,+GACAxF,KAAK+B,gBAAL,MAAA,CAAA,EAAA,oBAGA,6BADA/B,KAAKiB,KAAKgD,cAAc,0BACxB,CAAA,EAAMjE,KAAKc,MAAM0E,yBAAjBzB,EAAAvE,sCAEAQ,KAAKiB,KAAK4C,gBAAgBmC,kVA9RjCC,EAAAA,WAAUrI,KAAA,CAAC,CAAEsI,WAAY,oDA/BjBC,EAAAA,gBACAhJ,EAAAA,eAAciJ,WAAA,CAAA,CAAAhB,KAgJlBiB,EAAAA,kBAlJIC,EAAAA,0BADgCC,EAAAA,cACZC,EAAAA,gDAsJxBC,EAAAA,OAAM7I,KAAA,CAAC8I,EAAAA,YAAW,WAAM,OAAAhK,wCACxB+J,EAAAA,OAAM7I,KAAA,CAAC8I,EAAAA,YAAW,WAAM,OAAAnJ,EAAAA,gHA5IboJ,EAASjD,GACvB,OAAIkD,MAAMC,QAAQnD,GACTA,EAAEnB,KAAI,SAAAuE,GAAK,OAAAH,EAASG,MAEpB,CAAEpF,MAAOgC,EAAEhC,MAAOqF,GAAIrD,EAAEqD,GAAIC,YAAatD,EAAEsD,YAAapE,MAAOc,EAAEd","sourcesContent":["// This token is the official token containing the final configuration; ie. the merge between default and user provided configurations\nimport { InjectionToken } from '@angular/core';\nimport { MalIAPOptions } from '../interfaces';\n\nexport const MalIAPOptionsToken = new InjectionToken<MalIAPOptions[]>('IAPOptionsToken');\n","// @angular/*\nimport { ModuleWithProviders, NgModule } from '@angular/core';\nimport { InAppPurchase2 } from '@ionic-native/in-app-purchase-2/ngx';\nimport { MalSharedConfig, MalSharedConfigToken } from 'ngx-firebase';\nimport { MalIAPOptions } from './interfaces';\nimport { MalIAPOptionsToken } from './tokens';\n\n@NgModule({})\nexport class MalIAPModule {\n\n static forRoot(options: MalIAPOptions): ModuleWithProviders<MalIAPModule> {\n return {\n ngModule: MalIAPModule,\n providers:\n [\n { provide: MalIAPOptionsToken, useValue: options },\n {\n provide: InAppPurchase2,\n useFactory: functionsInAppPurchase2Factory,\n deps: [MalSharedConfigToken]\n },\n ]\n };\n }\n\n}\n\nfunction functionsInAppPurchase2Factory(sharedConfig: MalSharedConfig): InAppPurchase2 | undefined {\n if (false === sharedConfig.services.inAppPurchase) {\n return undefined;\n } else {\n return new InAppPurchase2();\n }\n}","import { IAPProductOptions } from '@ionic-native/in-app-purchase-2/ngx';\n\nexport enum IAPProductTypes {\n PAID_SUBSCRIPTION = 'PAID_SUBSCRIPTION'\n}\n\nexport interface MalIAPProductOptions extends IAPProductOptions {\n type: IAPProductTypes;\n}\n\nexport interface MalIAPOptions {\n validatorUrl: string;\n products: MalIAPProductOptions[];\n}\n","/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n/* global Reflect, Promise */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\r\n if (typeof b !== \"function\" && b !== null)\r\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n }\r\n return __assign.apply(this, arguments);\r\n}\r\n\r\nexport function __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (_) try {\r\n 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) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nexport var __createBinding = Object.create ? (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\r\n}) : (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n});\r\n\r\nexport function __exportStar(m, o) {\r\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(o, p)) __createBinding(o, m, p);\r\n}\r\n\r\nexport function __values(o) {\r\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\r\n if (m) return m.call(o);\r\n if (o && typeof o.length === \"number\") return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\r\n}\r\n\r\nexport function __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spreadArrays() {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n}\r\n\r\nexport function __spreadArray(to, from) {\r\n for (var i = 0, il = from.length, j = to.length; i < il; i++, j++)\r\n to[j] = from[i];\r\n return to;\r\n}\r\n\r\nexport function __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n 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; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\n 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);\r\n 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); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n};\r\n\r\nvar __setModuleDefault = Object.create ? (function(o, v) {\r\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\r\n}) : function(o, v) {\r\n o[\"default\"] = v;\r\n};\r\n\r\nexport function __importStar(mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\r\n __setModuleDefault(result, mod);\r\n return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n\r\nexport function __classPrivateFieldGet(receiver, privateMap) {\r\n if (!privateMap.has(receiver)) {\r\n throw new TypeError(\"attempted to get private field on non-instance\");\r\n }\r\n return privateMap.get(receiver);\r\n}\r\n\r\nexport function __classPrivateFieldSet(receiver, privateMap, value) {\r\n if (!privateMap.has(receiver)) {\r\n throw new TypeError(\"attempted to set private field on non-instance\");\r\n }\r\n privateMap.set(receiver, value);\r\n return value;\r\n}\r\n","import { forwardRef, Inject, Injectable, NgZone, Optional } from '@angular/core';\nimport { AuthProcessService, FirebaseService, MalSharedConfig, MalSharedConfigToken } from 'ngx-firebase';\nimport { Platform } from '@ionic/angular';\nimport { InAppPurchase2, IAPProduct } from '@ionic-native/in-app-purchase-2/ngx';\nimport { BehaviorSubject, Observable, of } from 'rxjs';\nimport { distinctUntilChanged, map } from 'rxjs/operators';\nimport { Capacitor } from '@capacitor/core';\nimport { MalIAPOptionsToken } from '../tokens';\nimport { IAPProductTypes, MalIAPOptions, MalIAPProductOptions } from '../interfaces';\n\nexport function slimDown(p: IAPProduct[]): Partial<IAPProduct>[];\nexport function slimDown(p: IAPProduct): Partial<IAPProduct>;\nexport function slimDown(p: IAPProduct | IAPProduct[]): Partial<IAPProduct> | Partial<IAPProduct>[] {\n if (Array.isArray(p)) {\n return p.map(i => slimDown(i));\n } else {\n return { owned: p.owned, id: p.id, canPurchase: p.canPurchase, state: p.state };\n }\n}\n\nexport enum ProductStates {\n owned = 'owned',\n approved = 'approved',\n initiated = 'initiated',\n requested = 'requested',\n valid = 'valid',\n registered = 'registered',\n downloading = 'downloading',\n downloaded = 'downloaded',\n finsihed = 'finished'\n\n}\n\n@Injectable({ providedIn: 'root' })\nexport class IAPurchaseService {\n\n readonly activeStates: string[] = [\n ProductStates.valid,\n ProductStates.requested,\n ProductStates.initiated,\n ProductStates.initiated,\n ProductStates.downloading,\n ProductStates.downloaded,\n ProductStates.finsihed,\n ProductStates.owned\n ] as string[];\n\n private _isLoading$: BehaviorSubject<boolean> = new BehaviorSubject<boolean>(false);\n public isLoading$ = this._isLoading$.asObservable();\n public get isLoading(): boolean { return this._isLoading$.value; }\n public set isLoading(val: boolean) { this.ngZone.run(() => this._isLoading$.next(val)); }\n\n private readonly isModuleEnabled = this.store && Capacitor.isNative && (false !== this.sharedConfig.services.inAppPurchase);\n\n public readonly products$: Observable<IAPProduct[]> = (this.isModuleEnabled) ? this.selectAllProducts() : of([]);\n\n public readonly activeProducts$: Observable<IAPProduct[]> = this.products$\n .pipe(\n map(products => products.filter(item => this.activeStates.includes(item.state) && item.title))\n );\n\n public readonly productsHeld$: Observable<IAPProduct[]> = this.products$\n .pipe(map(products => products.filter(item => item.owned)));\n\n selectAllProducts(): Observable<IAPProduct[]> {\n if (this.isModuleEnabled) {\n return new Observable<IAPProduct[]>(subscriber => {\n this.store.ready(() => {\n this.ngZone.run(() => {\n subscriber.next(this.store.products);\n });\n });\n this.store.when('product').updated((p: IAPProduct) => {\n this.ngZone.run(() => {\n subscriber.next(this.store.products);\n });\n });\n });\n } else {\n return of([]);\n }\n }\n\n selectProduct(product: string | IAPProduct): Observable<IAPProduct> {\n if (this.isModuleEnabled) {\n return new Observable<IAPProduct>(subscriber => {\n this.store.when(product).registered((p: IAPProduct) => {\n this.ngZone.run(() => {\n subscriber.next(p);\n });\n });\n this.store.when(product).updated((p: IAPProduct) => {\n this.ngZone.run(() => {\n subscriber.next(p);\n });\n });\n });\n } else {\n return of();\n }\n }\n\n selectIsOwned(product: string | IAPProduct): Observable<boolean> {\n return this.selectProduct(product)\n .pipe(\n map(p => p.owned),\n distinctUntilChanged()\n );\n }\n\n selectVerified(product: string | IAPProduct = 'product'): Observable<IAPProduct> {\n if (this.isModuleEnabled) {\n return new Observable<IAPProduct>(subscriber => {\n this.store.when(product).verified((p: IAPProduct) => {\n this.ngZone.run(() => {\n subscriber.next(p);\n });\n });\n });\n } else {\n return of();\n }\n }\n\n selectOwned(product: string | IAPProduct = 'product'): Observable<IAPProduct> {\n if (this.isModuleEnabled) {\n return new Observable<IAPProduct>(subscriber => {\n this.store.when(product).owned((p: IAPProduct) => {\n this.ngZone.run(() => {\n subscriber.next(p);\n });\n });\n });\n } else {\n return of();\n }\n }\n\n /*\n private updateProduct(p: IAPProduct) {\n const i = this.products.findIndex(item => p.id === item.id);\n this.products[i] = p;\n }\n */\n\n constructor(\n private plt: Platform,\n @Optional() private store: InAppPurchase2,\n private aps: AuthProcessService,\n private ngZone: NgZone,\n private fire: FirebaseService,\n @Inject(forwardRef(() => MalIAPOptionsToken)) private options: MalIAPOptions,\n @Inject(forwardRef(() => MalSharedConfigToken)) private sharedConfig: MalSharedConfig\n ) {\n if (this.isModuleEnabled && this.options.validatorUrl) {\n this.plt.ready().then(async () => {\n this.isLoading = true;\n\n this.aps.user$.subscribe(\n user => {\n this.store.applicationUsername = user?.uid || '';\n }\n );\n\n this.store.validator = this.options.validatorUrl;\n\n /* For debug\n this.store.when('product').updated((p: IAPProduct) => {\n console.log('C:UPDTED>', slimDown(p));\n });\n */\n this.store.when('product').approved((p: IAPProduct) => {\n p.verify();\n });\n\n this.store.error((error: any) => {\n this.fire.recordException(error);\n });\n\n try {\n await this.load(this.options.products);\n } catch (error) {\n this.fire.recordException(error);\n } finally {\n this.isLoading = false;\n }\n\n });\n } else {\n this.fire.addLogMessage('Not starting IAP as not a device');\n console.warn('Not starting IAP as not a device');\n }\n }\n\n private load(products: MalIAPProductOptions[]): Promise<IAPProduct[]> {\n return new Promise<IAPProduct[]>((resolve, reject) => {\n try {\n this.fire.addLogMessage('Error registering products');\n this.store.register(products.map(item => {\n let type: string;\n switch (item.type) {\n case IAPProductTypes.PAID_SUBSCRIPTION: type = this.store.PAID_SUBSCRIPTION; break;\n default: throw new Error('Product type not recognised');\n }\n return {\n ...item,\n type\n };\n }));\n } catch (error) {\n this.fire.recordException(error);\n }\n\n this.store.ready(() => {\n // console.log('READY READY 1>', consoleDebug(this.store.products));\n resolve(this.store.products);\n });\n\n this.store.error((error: any) => {\n this.fire.recordException(error);\n reject(error);\n });\n\n try {\n this.fire.addLogMessage('Starting store refresh');\n this.store.refresh();\n } catch (error) {\n this.fire.recordException(error);\n }\n\n });\n }\n\n purchase(product: IAPProduct | string, waitForOwned = true): Observable<IAPProduct> {\n try {\n\n if (!this.isModuleEnabled) {\n throw new Error('IAP Module not enabled');\n }\n if (!this.store.applicationUsername) {\n throw new Error('Unable to puchase when store.applicationUsername is not set');\n }\n return new Observable<IAPProduct>(subscriber => {\n this.store.when(product).requested((p: IAPProduct) => {\n subscriber.next(p);\n });\n this.store.when(product).initiated((p: IAPProduct) => {\n subscriber.next(p);\n });\n this.store.when(product).approved((p: IAPProduct) => {\n subscriber.next(p);\n });\n this.store.when(product).verified(async (p: IAPProduct) => {\n // console.log('P:VERIFIED>', consoleDebug(p));\n subscriber.next(p);\n if (!waitForOwned) {\n subscriber.complete();\n } // HERE WE ARE RELAIANT ON SOMETHING EXTERNAL FULLFILLING\n });\n this.store.once(product).owned(async (p: IAPProduct) => {\n // console.log('P:OWNED>', consoleDebug(p));\n subscriber.next(p);\n subscriber.complete();\n });\n this.store.once(product).cancelled((p: IAPProduct) => {\n // console.log('P:CANCELLED>', consoleDebug(p));\n subscriber.next(p);\n subscriber.complete();\n });\n this.store.once(product).error((error: any) => {\n this.fire.recordException(error);\n subscriber.error(error);\n });\n this.store.order(product).then((p: any) => {\n // Purchase in progress!\n }, (error: any) => {\n this.fire.recordException(error);\n subscriber.error(error);\n });\n });\n } catch (error) {\n this.fire.recordException(error);\n throw error;\n }\n }\n\n finish(product: IAPProduct): Promise<IAPProduct> {\n try {\n if (!this.isModuleEnabled) {\n throw new Error('IAP Module not enabled');\n }\n return new Promise<IAPProduct>((resolve, reject) => {\n this.store.once(product).owned((p: IAPProduct) => {\n // console.log('P:OWNED>', consoleDebug(p));\n resolve(p);\n });\n this.store.once(product).error((error: any) => {\n this.fire.recordException(error);\n reject(error);\n });\n try {\n this.fire.addLogMessage('Starting finsih product');\n product.finish();\n } catch (error) {\n this.fire.recordException(error);\n }\n });\n } catch (error) {\n this.fire.recordException(error);\n }\n }\n\n // To comply with AppStore rules\n async refresh() {\n if (this.isModuleEnabled) {\n try {\n this.fire.addLogMessage('Starting store refresh');\n await this.store.refresh();\n } catch (error) {\n this.fire.recordException(error);\n }\n }\n }\n\n}\n"]}