@frontegg/redux-store 5.61.0 → 6.0.1-alpha.2

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 (389) hide show
  1. package/audits/AuditLogsState/index.d.ts +47 -47
  2. package/audits/AuditLogsState/index.js +28 -0
  3. package/audits/AuditLogsState/interfaces.d.ts +19 -19
  4. package/audits/AuditLogsState/interfaces.js +1 -0
  5. package/audits/AuditLogsState/saga.d.ts +2 -2
  6. package/audits/AuditLogsState/saga.js +166 -0
  7. package/audits/AuditsMetadataState/index.d.ts +35 -35
  8. package/audits/AuditsMetadataState/index.js +18 -0
  9. package/audits/AuditsMetadataState/interfaces.d.ts +17 -17
  10. package/audits/AuditsMetadataState/interfaces.js +1 -0
  11. package/audits/AuditsMetadataState/saga.d.ts +2 -2
  12. package/audits/AuditsMetadataState/saga.js +56 -0
  13. package/audits/backward-compatibility/index.d.ts +4 -4
  14. package/audits/backward-compatibility/index.js +4 -4
  15. package/audits/backward-compatibility/initialState.d.ts +2 -2
  16. package/audits/backward-compatibility/initialState.js +20 -0
  17. package/audits/backward-compatibility/interfaces.d.ts +55 -55
  18. package/audits/backward-compatibility/interfaces.js +1 -0
  19. package/audits/backward-compatibility/reducer.d.ts +35 -35
  20. package/audits/backward-compatibility/reducer.js +129 -0
  21. package/audits/backward-compatibility/saga.d.ts +1 -1
  22. package/audits/backward-compatibility/saga.js +187 -0
  23. package/audits/dummy.d.ts +10 -10
  24. package/audits/dummy.js +191 -0
  25. package/audits/index.d.ts +40 -40
  26. package/audits/index.js +18 -362
  27. package/audits/initialState.d.ts +2 -2
  28. package/audits/initialState.js +6 -0
  29. package/audits/interfaces.d.ts +6 -6
  30. package/audits/interfaces.js +1 -0
  31. package/audits/reducer.d.ts +31 -31
  32. package/audits/reducer.js +23 -0
  33. package/audits/saga.d.ts +2 -2
  34. package/audits/saga.js +9 -0
  35. package/audits/utils.d.ts +14 -14
  36. package/audits/utils.js +13 -0
  37. package/auth/AcceptInvitationState/index.d.ts +85 -85
  38. package/auth/AcceptInvitationState/index.js +20 -0
  39. package/auth/AcceptInvitationState/interfaces.d.ts +11 -11
  40. package/auth/AcceptInvitationState/interfaces.js +9 -0
  41. package/auth/AcceptInvitationState/saga.d.ts +1 -1
  42. package/auth/AcceptInvitationState/saga.js +41 -0
  43. package/auth/AccountSettingsState/index.d.ts +92 -92
  44. package/auth/AccountSettingsState/index.js +22 -0
  45. package/auth/AccountSettingsState/interfaces.d.ts +10 -10
  46. package/auth/AccountSettingsState/interfaces.js +1 -0
  47. package/auth/AccountSettingsState/saga.d.ts +2 -2
  48. package/auth/AccountSettingsState/saga.js +133 -0
  49. package/auth/ActivateState/index.d.ts +130 -130
  50. package/auth/ActivateState/index.js +35 -0
  51. package/auth/ActivateState/interfaces.d.ts +26 -26
  52. package/auth/ActivateState/interfaces.js +8 -0
  53. package/auth/ActivateState/saga.d.ts +1 -1
  54. package/auth/ActivateState/saga.js +187 -0
  55. package/auth/ApiTokensState/index.d.ts +119 -119
  56. package/auth/ApiTokensState/index.js +54 -0
  57. package/auth/ApiTokensState/interfaces.d.ts +49 -49
  58. package/auth/ApiTokensState/interfaces.js +7 -0
  59. package/auth/ApiTokensState/saga.d.ts +2 -2
  60. package/auth/ApiTokensState/saga.js +410 -0
  61. package/auth/ForgotPasswordState/index.d.ts +90 -90
  62. package/auth/ForgotPasswordState/index.js +29 -0
  63. package/auth/ForgotPasswordState/interfaces.d.ts +18 -18
  64. package/auth/ForgotPasswordState/interfaces.js +6 -0
  65. package/auth/ForgotPasswordState/saga.d.ts +8 -8
  66. package/auth/ForgotPasswordState/saga.js +83 -0
  67. package/auth/LoginState/index.d.ts +132 -144
  68. package/auth/LoginState/index.js +64 -0
  69. package/auth/LoginState/interfaces.d.ts +41 -60
  70. package/auth/LoginState/interfaces.js +17 -0
  71. package/auth/LoginState/saga.d.ts +80 -84
  72. package/auth/LoginState/saga.js +860 -0
  73. package/auth/MfaState/index.d.ts +92 -92
  74. package/auth/MfaState/index.js +28 -0
  75. package/auth/MfaState/interfaces.d.ts +12 -12
  76. package/auth/MfaState/interfaces.js +6 -0
  77. package/auth/MfaState/saga.d.ts +2 -2
  78. package/auth/MfaState/saga.js +252 -0
  79. package/auth/ProfileState/index.d.ts +90 -90
  80. package/auth/ProfileState/index.js +24 -0
  81. package/auth/ProfileState/interfaces.d.ts +9 -9
  82. package/auth/ProfileState/interfaces.js +1 -0
  83. package/auth/ProfileState/saga.d.ts +2 -2
  84. package/auth/ProfileState/saga.js +230 -0
  85. package/auth/ResetPhoneNumberState/index.d.ts +96 -96
  86. package/auth/ResetPhoneNumberState/index.js +27 -0
  87. package/auth/ResetPhoneNumberState/interfaces.d.ts +18 -18
  88. package/auth/ResetPhoneNumberState/interfaces.js +7 -0
  89. package/auth/ResetPhoneNumberState/saga.d.ts +17 -17
  90. package/auth/ResetPhoneNumberState/saga.js +127 -0
  91. package/auth/RolesState/index.d.ts +100 -100
  92. package/auth/RolesState/index.js +37 -0
  93. package/auth/RolesState/interfaces.d.ts +7 -7
  94. package/auth/RolesState/interfaces.js +1 -0
  95. package/auth/RolesState/saga.d.ts +1 -1
  96. package/auth/RolesState/saga.js +197 -0
  97. package/auth/SSOState/index.d.ts +224 -224
  98. package/auth/SSOState/index.js +83 -0
  99. package/auth/SSOState/interfaces.d.ts +92 -92
  100. package/auth/SSOState/interfaces.js +28 -0
  101. package/auth/SSOState/saga.d.ts +2 -2
  102. package/auth/SSOState/saga.js +523 -0
  103. package/auth/SSOState/saga.v2.d.ts +1 -1
  104. package/auth/SSOState/saga.v2.js +501 -0
  105. package/auth/SecurityPolicyState/index.d.ts +456 -502
  106. package/auth/SecurityPolicyState/index.js +64 -0
  107. package/auth/SecurityPolicyState/interfaces.d.ts +26 -28
  108. package/auth/SecurityPolicyState/interfaces.js +1 -0
  109. package/auth/SecurityPolicyState/saga.d.ts +18 -24
  110. package/auth/SecurityPolicyState/saga.js +464 -0
  111. package/auth/SignUp/index.d.ts +86 -86
  112. package/auth/SignUp/index.js +25 -0
  113. package/auth/SignUp/interfaces.d.ts +19 -19
  114. package/auth/SignUp/interfaces.js +6 -0
  115. package/auth/SignUp/saga.d.ts +49 -49
  116. package/auth/SignUp/saga.js +147 -0
  117. package/auth/SocialLogins/index.d.ts +91 -91
  118. package/auth/SocialLogins/index.js +26 -0
  119. package/auth/SocialLogins/interfaces.d.ts +13 -13
  120. package/auth/SocialLogins/interfaces.js +1 -0
  121. package/auth/SocialLogins/saga.d.ts +10 -10
  122. package/auth/SocialLogins/saga.js +140 -0
  123. package/auth/TeamState/index.d.ts +168 -168
  124. package/auth/TeamState/index.js +111 -0
  125. package/auth/TeamState/interfaces.d.ts +78 -78
  126. package/auth/TeamState/interfaces.js +16 -0
  127. package/auth/TeamState/saga.d.ts +2 -2
  128. package/auth/TeamState/saga.js +1123 -0
  129. package/auth/TenantsState/index.d.ts +104 -104
  130. package/auth/TenantsState/index.js +31 -0
  131. package/auth/TenantsState/interfaces.d.ts +9 -9
  132. package/auth/TenantsState/interfaces.js +1 -0
  133. package/auth/TenantsState/saga.d.ts +2 -2
  134. package/auth/TenantsState/saga.js +136 -0
  135. package/auth/dummy.d.ts +28 -28
  136. package/auth/dummy.js +250 -0
  137. package/auth/index.d.ts +378 -392
  138. package/auth/index.js +46 -4078
  139. package/auth/initialState.d.ts +3 -3
  140. package/auth/initialState.js +58 -0
  141. package/auth/interfaces.d.ts +161 -161
  142. package/auth/interfaces.js +14 -0
  143. package/auth/reducer.d.ts +356 -370
  144. package/auth/reducer.js +39 -0
  145. package/auth/saga.d.ts +2 -2
  146. package/auth/saga.js +24 -0
  147. package/auth/utils.d.ts +162 -165
  148. package/auth/utils.js +74 -0
  149. package/connectivity/ConnectivityState/index.d.ts +292 -292
  150. package/connectivity/ConnectivityState/index.js +94 -0
  151. package/connectivity/consts.d.ts +12 -12
  152. package/connectivity/consts.js +71 -0
  153. package/connectivity/index.d.ts +40 -40
  154. package/connectivity/index.js +12 -454
  155. package/connectivity/interfaces.d.ts +112 -112
  156. package/connectivity/interfaces.js +1 -0
  157. package/connectivity/reducer.d.ts +31 -31
  158. package/connectivity/reducer.js +25 -0
  159. package/connectivity/saga.d.ts +1 -1
  160. package/connectivity/saga.js +546 -0
  161. package/constants.d.ts +7 -7
  162. package/constants.js +7 -0
  163. package/helpers.d.ts +5 -5
  164. package/helpers.js +37 -0
  165. package/index.d.ts +28 -28
  166. package/index.js +17 -15
  167. package/interfaces.d.ts +15 -15
  168. package/interfaces.js +1 -0
  169. package/node/audits/AuditLogsState/index.js +43 -0
  170. package/node/audits/AuditLogsState/interfaces.js +5 -0
  171. package/node/audits/AuditLogsState/saga.js +181 -0
  172. package/node/audits/AuditsMetadataState/index.js +33 -0
  173. package/node/audits/AuditsMetadataState/interfaces.js +5 -0
  174. package/node/audits/AuditsMetadataState/saga.js +67 -0
  175. package/node/audits/backward-compatibility/index.js +52 -12
  176. package/node/audits/backward-compatibility/initialState.js +27 -0
  177. package/node/audits/backward-compatibility/interfaces.js +5 -0
  178. package/node/audits/backward-compatibility/reducer.js +144 -0
  179. package/node/audits/backward-compatibility/saga.js +199 -0
  180. package/node/audits/dummy.js +204 -0
  181. package/node/audits/index.js +124 -364
  182. package/node/audits/initialState.js +16 -0
  183. package/node/audits/interfaces.js +5 -0
  184. package/node/audits/reducer.js +37 -0
  185. package/node/audits/saga.js +21 -0
  186. package/node/audits/utils.js +25 -0
  187. package/node/auth/AcceptInvitationState/index.js +33 -0
  188. package/node/auth/AcceptInvitationState/interfaces.js +16 -0
  189. package/node/auth/AcceptInvitationState/saga.js +51 -0
  190. package/node/auth/AccountSettingsState/index.js +34 -0
  191. package/node/auth/AccountSettingsState/interfaces.js +5 -0
  192. package/node/auth/AccountSettingsState/saga.js +145 -0
  193. package/node/auth/ActivateState/index.js +48 -0
  194. package/node/auth/ActivateState/interfaces.js +15 -0
  195. package/node/auth/ActivateState/saga.js +201 -0
  196. package/node/auth/ApiTokensState/index.js +66 -0
  197. package/node/auth/ApiTokensState/interfaces.js +14 -0
  198. package/node/auth/ApiTokensState/saga.js +424 -0
  199. package/node/auth/ForgotPasswordState/index.js +42 -0
  200. package/node/auth/ForgotPasswordState/interfaces.js +13 -0
  201. package/node/auth/ForgotPasswordState/saga.js +98 -0
  202. package/node/auth/LoginState/index.js +77 -0
  203. package/node/auth/LoginState/interfaces.js +31 -0
  204. package/node/auth/LoginState/saga.js +918 -0
  205. package/node/auth/MfaState/index.js +41 -0
  206. package/node/auth/MfaState/interfaces.js +13 -0
  207. package/node/auth/MfaState/saga.js +265 -0
  208. package/node/auth/ProfileState/index.js +36 -0
  209. package/node/auth/ProfileState/interfaces.js +5 -0
  210. package/node/auth/ProfileState/saga.js +245 -0
  211. package/node/auth/ResetPhoneNumberState/index.js +40 -0
  212. package/node/auth/ResetPhoneNumberState/interfaces.js +14 -0
  213. package/node/auth/ResetPhoneNumberState/saga.js +141 -0
  214. package/node/auth/RolesState/index.js +49 -0
  215. package/node/auth/RolesState/interfaces.js +5 -0
  216. package/node/auth/RolesState/saga.js +205 -0
  217. package/node/auth/SSOState/index.js +95 -0
  218. package/node/auth/SSOState/interfaces.js +36 -0
  219. package/node/auth/SSOState/saga.js +535 -0
  220. package/node/auth/SSOState/saga.v2.js +512 -0
  221. package/node/auth/SecurityPolicyState/index.js +76 -0
  222. package/node/auth/SecurityPolicyState/interfaces.js +5 -0
  223. package/node/auth/SecurityPolicyState/saga.js +472 -0
  224. package/node/auth/SignUp/index.js +38 -0
  225. package/node/auth/SignUp/interfaces.js +13 -0
  226. package/node/auth/SignUp/saga.js +173 -0
  227. package/node/auth/SocialLogins/index.js +38 -0
  228. package/node/auth/SocialLogins/interfaces.js +5 -0
  229. package/node/auth/SocialLogins/saga.js +162 -0
  230. package/node/auth/TeamState/index.js +123 -0
  231. package/node/auth/TeamState/interfaces.js +23 -0
  232. package/node/auth/TeamState/saga.js +1118 -0
  233. package/node/auth/TenantsState/index.js +43 -0
  234. package/node/auth/TenantsState/interfaces.js +5 -0
  235. package/node/auth/TenantsState/saga.js +149 -0
  236. package/node/auth/dummy.js +284 -0
  237. package/node/auth/index.js +528 -170
  238. package/node/auth/initialState.js +86 -0
  239. package/node/auth/interfaces.js +22 -0
  240. package/node/auth/reducer.js +68 -0
  241. package/node/auth/saga.js +51 -0
  242. package/node/auth/utils.js +104 -0
  243. package/node/connectivity/ConnectivityState/index.js +107 -0
  244. package/node/connectivity/consts.js +84 -0
  245. package/node/connectivity/index.js +64 -455
  246. package/node/connectivity/interfaces.js +5 -0
  247. package/node/connectivity/reducer.js +38 -0
  248. package/node/connectivity/saga.js +560 -0
  249. package/node/{constants-52e37c08.js → constants.js} +14 -11
  250. package/node/helpers.js +57 -0
  251. package/node/index.js +120 -293
  252. package/node/interfaces.js +5 -0
  253. package/node/subscriptions/Billing/Information/index.js +42 -0
  254. package/node/subscriptions/Billing/Information/interfaces.js +5 -0
  255. package/node/subscriptions/Billing/Information/saga.js +141 -0
  256. package/node/subscriptions/Billing/Invoices/index.js +55 -0
  257. package/node/subscriptions/Billing/Invoices/interfaces.js +5 -0
  258. package/node/subscriptions/Billing/Invoices/saga.js +92 -0
  259. package/node/subscriptions/Billing/PaymentMethod/index.js +51 -0
  260. package/node/subscriptions/Billing/PaymentMethod/interfaces.js +13 -0
  261. package/node/subscriptions/Billing/PaymentMethod/saga.js +98 -0
  262. package/node/subscriptions/Billing/Subscription/index.js +53 -0
  263. package/node/subscriptions/Billing/Subscription/interfaces.js +5 -0
  264. package/node/subscriptions/Billing/Subscription/saga.js +131 -0
  265. package/node/subscriptions/Billing/index.js +38 -0
  266. package/node/subscriptions/Billing/interfaces.js +57 -0
  267. package/node/subscriptions/Billing/saga.js +25 -0
  268. package/node/subscriptions/Checkout/index.js +47 -0
  269. package/node/subscriptions/Checkout/interfaces.js +5 -0
  270. package/node/subscriptions/Checkout/saga.js +129 -0
  271. package/node/subscriptions/Config/index.js +39 -0
  272. package/node/subscriptions/Config/interfaces.js +5 -0
  273. package/node/subscriptions/Config/saga.js +71 -0
  274. package/node/subscriptions/Plans/index.js +38 -0
  275. package/node/subscriptions/Plans/interfaces.js +5 -0
  276. package/node/subscriptions/Plans/saga.js +73 -0
  277. package/node/subscriptions/Stripe/index.js +39 -0
  278. package/node/subscriptions/Stripe/interfaces.js +5 -0
  279. package/node/subscriptions/Stripe/saga.js +44 -0
  280. package/node/subscriptions/dummy.js +84 -0
  281. package/node/subscriptions/general.interfaces.js +30 -0
  282. package/node/subscriptions/index.js +70 -906
  283. package/node/subscriptions/interfaces.js +83 -0
  284. package/node/subscriptions/mapper.js +51 -0
  285. package/node/subscriptions/reducer.js +52 -0
  286. package/node/subscriptions/saga.js +27 -0
  287. package/node/subscriptions/utils.js +68 -0
  288. package/node/toolkit/index.js +163 -99
  289. package/node/toolkit/redux-saga.js +59 -0
  290. package/node/toolkit/redux.js +43 -0
  291. package/node/vendor/VendorState/index.js +26 -0
  292. package/node/vendor/index.js +66 -13
  293. package/node/vendor/interfaces.js +5 -0
  294. package/node/vendor/reducer.js +32 -0
  295. package/node/vendor/saga.js +48 -0
  296. package/package.json +12 -11
  297. package/subscriptions/Billing/Information/index.d.ts +12 -12
  298. package/subscriptions/Billing/Information/index.js +30 -0
  299. package/subscriptions/Billing/Information/interfaces.d.ts +14 -14
  300. package/subscriptions/Billing/Information/interfaces.js +1 -0
  301. package/subscriptions/Billing/Information/saga.d.ts +52 -52
  302. package/subscriptions/Billing/Information/saga.js +118 -0
  303. package/subscriptions/Billing/Invoices/index.d.ts +18 -18
  304. package/subscriptions/Billing/Invoices/index.js +44 -0
  305. package/subscriptions/Billing/Invoices/interfaces.d.ts +19 -19
  306. package/subscriptions/Billing/Invoices/interfaces.js +1 -0
  307. package/subscriptions/Billing/Invoices/saga.d.ts +13 -13
  308. package/subscriptions/Billing/Invoices/saga.js +75 -0
  309. package/subscriptions/Billing/PaymentMethod/index.d.ts +20 -20
  310. package/subscriptions/Billing/PaymentMethod/index.js +40 -0
  311. package/subscriptions/Billing/PaymentMethod/interfaces.d.ts +46 -46
  312. package/subscriptions/Billing/PaymentMethod/interfaces.js +6 -0
  313. package/subscriptions/Billing/PaymentMethod/saga.d.ts +13 -13
  314. package/subscriptions/Billing/PaymentMethod/saga.js +81 -0
  315. package/subscriptions/Billing/Subscription/index.d.ts +16 -16
  316. package/subscriptions/Billing/Subscription/index.js +42 -0
  317. package/subscriptions/Billing/Subscription/interfaces.d.ts +18 -18
  318. package/subscriptions/Billing/Subscription/interfaces.js +1 -0
  319. package/subscriptions/Billing/Subscription/saga.d.ts +13 -13
  320. package/subscriptions/Billing/Subscription/saga.js +117 -0
  321. package/subscriptions/Billing/index.d.ts +54 -54
  322. package/subscriptions/Billing/index.js +23 -0
  323. package/subscriptions/Billing/interfaces.d.ts +20 -20
  324. package/subscriptions/Billing/interfaces.js +5 -0
  325. package/subscriptions/Billing/saga.d.ts +2 -2
  326. package/subscriptions/Billing/saga.js +11 -0
  327. package/subscriptions/Checkout/index.d.ts +14 -14
  328. package/subscriptions/Checkout/index.js +36 -0
  329. package/subscriptions/Checkout/interfaces.d.ts +17 -17
  330. package/subscriptions/Checkout/interfaces.js +1 -0
  331. package/subscriptions/Checkout/saga.d.ts +5 -5
  332. package/subscriptions/Checkout/saga.js +110 -0
  333. package/subscriptions/Config/index.d.ts +10 -10
  334. package/subscriptions/Config/index.js +28 -0
  335. package/subscriptions/Config/interfaces.d.ts +16 -16
  336. package/subscriptions/Config/interfaces.js +1 -0
  337. package/subscriptions/Config/saga.d.ts +2 -2
  338. package/subscriptions/Config/saga.js +59 -0
  339. package/subscriptions/Plans/index.d.ts +10 -10
  340. package/subscriptions/Plans/index.js +25 -0
  341. package/subscriptions/Plans/interfaces.d.ts +10 -10
  342. package/subscriptions/Plans/interfaces.js +1 -0
  343. package/subscriptions/Plans/saga.d.ts +2 -2
  344. package/subscriptions/Plans/saga.js +58 -0
  345. package/subscriptions/Stripe/index.d.ts +11 -11
  346. package/subscriptions/Stripe/index.js +28 -0
  347. package/subscriptions/Stripe/interfaces.d.ts +10 -10
  348. package/subscriptions/Stripe/interfaces.js +1 -0
  349. package/subscriptions/Stripe/saga.d.ts +1 -1
  350. package/subscriptions/Stripe/saga.js +34 -0
  351. package/subscriptions/dummy.d.ts +5 -5
  352. package/subscriptions/dummy.js +72 -0
  353. package/subscriptions/general.interfaces.d.ts +49 -49
  354. package/subscriptions/general.interfaces.js +21 -0
  355. package/subscriptions/index.d.ts +100 -100
  356. package/subscriptions/index.js +13 -906
  357. package/subscriptions/interfaces.d.ts +25 -25
  358. package/subscriptions/interfaces.js +7 -0
  359. package/subscriptions/mapper.d.ts +6 -6
  360. package/subscriptions/mapper.js +36 -0
  361. package/subscriptions/reducer.d.ts +92 -92
  362. package/subscriptions/reducer.js +29 -0
  363. package/subscriptions/saga.d.ts +2 -2
  364. package/subscriptions/saga.js +12 -0
  365. package/subscriptions/utils.d.ts +68 -68
  366. package/subscriptions/utils.js +52 -0
  367. package/toolkit/index.d.ts +24 -23
  368. package/toolkit/index.js +106 -94
  369. package/toolkit/redux-saga.d.ts +4 -4
  370. package/toolkit/redux-saga.js +3 -0
  371. package/toolkit/redux.d.ts +3 -2
  372. package/toolkit/redux.js +1 -0
  373. package/vendor/VendorState/index.d.ts +20 -20
  374. package/vendor/VendorState/index.js +13 -0
  375. package/vendor/index.d.ts +17 -17
  376. package/vendor/index.js +12 -18
  377. package/vendor/interfaces.d.ts +3 -3
  378. package/vendor/interfaces.js +1 -0
  379. package/vendor/reducer.d.ts +8 -8
  380. package/vendor/reducer.js +19 -0
  381. package/vendor/saga.d.ts +8 -8
  382. package/vendor/saga.js +34 -0
  383. package/audits/backward-compatibility/package.json +0 -6
  384. package/constants-4d9682b2.js +0 -9
  385. package/node/index-5642a636.js +0 -4131
  386. package/node/index-6906e508.js +0 -151
  387. package/node/saga-b0d1a607.js +0 -230
  388. package/saga-7a267fe0.js +0 -223
  389. package/saga-b6529ffb.js +0 -36
@@ -1,13 +1,13 @@
1
- import { ISubscriptionInvoiceResponse } from '@frontegg/rest-api';
2
- export declare function subscriptionInvoicesSagas(): Generator<import("redux-saga/effects").ForkEffect<never>, void, unknown>;
3
- export declare function loadInvoices(): Generator<import("redux-saga/effects").PutEffect<{
4
- payload: boolean;
5
- type: string;
6
- }> | import("redux-saga/effects").CallEffect<ISubscriptionInvoiceResponse[]> | import("redux-saga/effects").PutEffect<{
7
- payload: Partial<import("./interfaces").InvoicesState>;
8
- type: string;
9
- }> | import("redux-saga/effects").PutEffect<{
10
- payload: string | null;
11
- type: string;
12
- }>, void, ISubscriptionInvoiceResponse[]>;
13
- export declare function subscriptionInvoicesSagasMock(): Generator<import("redux-saga/effects").ForkEffect<never>, void, unknown>;
1
+ import { ISubscriptionInvoiceResponse } from '@frontegg/rest-api';
2
+ export declare function subscriptionInvoicesSagas(): Generator<import("redux-saga/effects").ForkEffect<never>, void, unknown>;
3
+ export declare function loadInvoices(): Generator<import("redux-saga/effects").PutEffect<{
4
+ payload: boolean;
5
+ type: string;
6
+ }> | import("redux-saga/effects").PutEffect<{
7
+ payload: string | null;
8
+ type: string;
9
+ }> | import("redux-saga/effects").CallEffect<ISubscriptionInvoiceResponse[]> | import("redux-saga/effects").PutEffect<{
10
+ payload: Partial<import("./interfaces").InvoicesState>;
11
+ type: string;
12
+ }>, void, ISubscriptionInvoiceResponse[]>;
13
+ export declare function subscriptionInvoicesSagasMock(): Generator<import("redux-saga/effects").ForkEffect<never>, void, unknown>;
@@ -0,0 +1,75 @@
1
+ import _extends from "@babel/runtime/helpers/esm/extends";
2
+ import { call, delay, put, takeEvery } from 'redux-saga/effects';
3
+ import { invoicesActions } from './index';
4
+ import { api } from '@frontegg/rest-api';
5
+ import { invoicesMock } from '../../dummy';
6
+ export function* subscriptionInvoicesSagas() {
7
+ yield takeEvery(invoicesActions.loadInvoices, loadInvoices);
8
+ yield takeEvery(invoicesActions.downloadInvoice, downloadInvoice);
9
+ }
10
+ export function* loadInvoices() {
11
+ yield put(invoicesActions.setLoading(true));
12
+
13
+ try {
14
+ const responseInvoices = yield call(api.subscriptions.getSubscriptionInvoices);
15
+ const invoices = responseInvoices.map(invoice => ({
16
+ id: invoice.id,
17
+ externalId: invoice.externalId,
18
+ subscriptionId: invoice.subscriptionId,
19
+ paymentDate: new Date(Date.parse(invoice.paymentDate)),
20
+ totalAmount: +((invoice.totalAmount || 0) / 100).toFixed(2),
21
+ currency: invoice.currency || 'usd',
22
+ paid: invoice.paid || false,
23
+ receiptNumber: invoice.receiptNumber
24
+ }));
25
+ yield put(invoicesActions.setState({
26
+ loading: false,
27
+ fetching: false,
28
+ invoices
29
+ }));
30
+ } catch (e) {
31
+ yield put(invoicesActions.setError(e.message));
32
+ }
33
+ }
34
+
35
+ function* downloadInvoice({
36
+ payload
37
+ }) {
38
+ yield put(invoicesActions.setInvoiceDownloadState({
39
+ loading: true,
40
+ error: null
41
+ }));
42
+
43
+ try {
44
+ yield call(api.subscriptions.getSubscriptionInvoicePdf, payload.invoiceId, payload.filename);
45
+ yield put(invoicesActions.setInvoiceDownloadState({
46
+ loading: false,
47
+ error: null
48
+ }));
49
+ } catch (e) {
50
+ yield put(invoicesActions.setInvoiceDownloadState({
51
+ loading: false,
52
+ error: e.message || null
53
+ }));
54
+ }
55
+ }
56
+
57
+ function* loadInvoicesMock() {
58
+ yield put(invoicesActions.setLoading(true));
59
+ yield delay(500);
60
+ const selectPlanTitle = 'Premium';
61
+ yield put(invoicesActions.setState({
62
+ loading: false,
63
+ fetching: false,
64
+ invoices: invoicesMock.map(invoice => _extends({}, invoice, {
65
+ selectedPlan: selectPlanTitle,
66
+ paymentDate: new Date(Date.parse(invoice.paymentDate)),
67
+ totalAmount: +((invoice.totalAmount || 0) / 100).toFixed(2)
68
+ }))
69
+ }));
70
+ yield put(invoicesActions.setLoading(false));
71
+ }
72
+
73
+ export function* subscriptionInvoicesSagasMock() {
74
+ yield takeEvery(invoicesActions.loadInvoices, loadInvoicesMock);
75
+ }
@@ -1,20 +1,20 @@
1
- import { PaymentMethodState } from './interfaces';
2
- import { ISubscriptionUpdatePaymentMethodBillingDetails } from '@frontegg/rest-api';
3
- import { WithCallback } from '../../../interfaces';
4
- export declare const initialPaymentMethodState: PaymentMethodState;
5
- declare const reducer: import("redux").Reducer<PaymentMethodState, import("redux").AnyAction>;
6
- declare const actions: {
7
- setState: import("@reduxjs/toolkit").ActionCreatorWithPreparedPayload<[Partial<PaymentMethodState>], Partial<PaymentMethodState>, string, never, never>;
8
- setLoading: import("@reduxjs/toolkit").ActionCreatorWithPreparedPayload<[boolean], boolean, string, never, never>;
9
- setError: import("@reduxjs/toolkit").ActionCreatorWithPreparedPayload<[string | null], string | null, string, never, never>;
10
- loadPaymentMethod: import("@reduxjs/toolkit").ActionCreatorWithoutPayload<string>;
11
- submitPaymentMethod: import("@reduxjs/toolkit").ActionCreatorWithoutPayload<string>;
12
- submitPaymentMethodError: import("@reduxjs/toolkit").ActionCreatorWithPayload<string, string>;
13
- submitPaymentMethodSuccess: import("@reduxjs/toolkit").ActionCreatorWithoutPayload<string>;
14
- updatePaymentMethodBillingDetails: import("@reduxjs/toolkit").ActionCreatorWithPreparedPayload<[WithCallback<ISubscriptionUpdatePaymentMethodBillingDetails & {
15
- id: string;
16
- }, boolean>], WithCallback<ISubscriptionUpdatePaymentMethodBillingDetails & {
17
- id: string;
18
- }, boolean>, string, never, never>;
19
- };
20
- export { reducer as subscriptionsPaymentMethodReducer, actions as subscriptionsPaymentMethodActions };
1
+ import { PaymentMethodState } from './interfaces';
2
+ import { ISubscriptionUpdatePaymentMethodBillingDetails } from '@frontegg/rest-api';
3
+ import { WithCallback } from '../../../interfaces';
4
+ export declare const initialPaymentMethodState: PaymentMethodState;
5
+ declare const reducer: import("redux").Reducer<PaymentMethodState, import("redux").AnyAction>;
6
+ declare const actions: {
7
+ setState: import("@reduxjs/toolkit").ActionCreatorWithPreparedPayload<[Partial<PaymentMethodState>], Partial<PaymentMethodState>, string, never, never>;
8
+ setLoading: import("@reduxjs/toolkit").ActionCreatorWithPreparedPayload<[boolean], boolean, string, never, never>;
9
+ setError: import("@reduxjs/toolkit").ActionCreatorWithPreparedPayload<[string | null], string | null, string, never, never>;
10
+ loadPaymentMethod: import("@reduxjs/toolkit").ActionCreatorWithoutPayload<string>;
11
+ submitPaymentMethod: import("@reduxjs/toolkit").ActionCreatorWithoutPayload<string>;
12
+ submitPaymentMethodError: import("@reduxjs/toolkit").ActionCreatorWithPayload<string, string>;
13
+ submitPaymentMethodSuccess: import("@reduxjs/toolkit").ActionCreatorWithoutPayload<string>;
14
+ updatePaymentMethodBillingDetails: import("@reduxjs/toolkit").ActionCreatorWithPreparedPayload<[WithCallback<ISubscriptionUpdatePaymentMethodBillingDetails & {
15
+ id: string;
16
+ }, boolean>], WithCallback<ISubscriptionUpdatePaymentMethodBillingDetails & {
17
+ id: string;
18
+ }, boolean>, string, never, never>;
19
+ };
20
+ export { reducer as subscriptionsPaymentMethodReducer, actions as subscriptionsPaymentMethodActions };
@@ -0,0 +1,40 @@
1
+ import _extends from "@babel/runtime/helpers/esm/extends";
2
+ import { createModuleCaseReducers } from '../../utils';
3
+ import { subscriptionsStoreName } from '../../../constants';
4
+ import { createAction, createSlice } from '@reduxjs/toolkit';
5
+ export const initialPaymentMethodState = {
6
+ loading: false,
7
+ error: null,
8
+ fetching: true
9
+ };
10
+
11
+ const reducers = _extends({}, createModuleCaseReducers(), {
12
+ setState: {
13
+ prepare: payload => ({
14
+ payload
15
+ }),
16
+ reducer: (state, action) => _extends({}, state, action.payload)
17
+ }
18
+ });
19
+
20
+ const {
21
+ reducer,
22
+ actions: paymentActions,
23
+ name
24
+ } = createSlice({
25
+ name: `${subscriptionsStoreName}/billing/payment`,
26
+ initialState: initialPaymentMethodState,
27
+ reducers
28
+ });
29
+
30
+ const actions = _extends({
31
+ loadPaymentMethod: createAction(`${name}/loadPaymentMethod`),
32
+ submitPaymentMethod: createAction(`${name}/submitPaymentMethod`),
33
+ submitPaymentMethodError: createAction(`${name}/submitPaymentMethodError`),
34
+ submitPaymentMethodSuccess: createAction(`${name}/submitPaymentMethodSuccess`),
35
+ updatePaymentMethodBillingDetails: createAction(`${name}/updateBillingDetails`, payload => ({
36
+ payload
37
+ }))
38
+ }, paymentActions);
39
+
40
+ export { reducer as subscriptionsPaymentMethodReducer, actions as subscriptionsPaymentMethodActions };
@@ -1,46 +1,46 @@
1
- import { WithCallback } from '../../../interfaces';
2
- import { ISubscriptionUpdatePaymentMethodBillingDetails } from '@frontegg/rest-api';
3
- export declare type PaymentMethod = {
4
- id: string;
5
- type: 'card';
6
- externalId?: string;
7
- isDefault?: boolean;
8
- last4?: string;
9
- expMonth?: number;
10
- expYear?: number;
11
- brand?: string;
12
- billingDetails?: BillingDetailsResponse;
13
- };
14
- export interface PaymentMethodState {
15
- loading: boolean;
16
- error: string | null;
17
- fetching: boolean;
18
- paymentMethod?: PaymentMethod;
19
- }
20
- export interface PaymentMethodActions {
21
- loadPaymentMethod: () => void;
22
- updatePaymentMethodBillingDetails: (payload: WithCallback<ISubscriptionUpdatePaymentMethodBillingDetails & {
23
- id: string;
24
- }>) => void;
25
- setError: (error: string | null) => void;
26
- submitPaymentMethod: () => void;
27
- submitPaymentMethodError: (error: string) => void;
28
- submitPaymentMethodSuccess: () => void;
29
- }
30
- export interface BillingDetailsResponse {
31
- name?: string;
32
- email?: string;
33
- address?: AddressResponse;
34
- }
35
- export interface AddressResponse {
36
- addressLine1?: string;
37
- addressLine2?: string;
38
- city?: string;
39
- state?: string;
40
- postalCode?: string;
41
- country?: string;
42
- }
43
- export declare enum PaymentMethodType {
44
- UNKNWON = "unknown",
45
- CARD = "card"
46
- }
1
+ import { WithCallback } from '../../../interfaces';
2
+ import { ISubscriptionUpdatePaymentMethodBillingDetails } from '@frontegg/rest-api';
3
+ export declare type PaymentMethod = {
4
+ id: string;
5
+ type: 'card';
6
+ externalId?: string;
7
+ isDefault?: boolean;
8
+ last4?: string;
9
+ expMonth?: number;
10
+ expYear?: number;
11
+ brand?: string;
12
+ billingDetails?: BillingDetailsResponse;
13
+ };
14
+ export interface PaymentMethodState {
15
+ loading: boolean;
16
+ error: string | null;
17
+ fetching: boolean;
18
+ paymentMethod?: PaymentMethod;
19
+ }
20
+ export interface PaymentMethodActions {
21
+ loadPaymentMethod: () => void;
22
+ updatePaymentMethodBillingDetails: (payload: WithCallback<ISubscriptionUpdatePaymentMethodBillingDetails & {
23
+ id: string;
24
+ }>) => void;
25
+ setError: (error: string | null) => void;
26
+ submitPaymentMethod: () => void;
27
+ submitPaymentMethodError: (error: string) => void;
28
+ submitPaymentMethodSuccess: () => void;
29
+ }
30
+ export interface BillingDetailsResponse {
31
+ name?: string;
32
+ email?: string;
33
+ address?: AddressResponse;
34
+ }
35
+ export interface AddressResponse {
36
+ addressLine1?: string;
37
+ addressLine2?: string;
38
+ city?: string;
39
+ state?: string;
40
+ postalCode?: string;
41
+ country?: string;
42
+ }
43
+ export declare enum PaymentMethodType {
44
+ UNKNWON = "unknown",
45
+ CARD = "card"
46
+ }
@@ -0,0 +1,6 @@
1
+ export let PaymentMethodType;
2
+
3
+ (function (PaymentMethodType) {
4
+ PaymentMethodType["UNKNWON"] = "unknown";
5
+ PaymentMethodType["CARD"] = "card";
6
+ })(PaymentMethodType || (PaymentMethodType = {}));
@@ -1,13 +1,13 @@
1
- import { ISubscriptionPaymentMethodCardResponse } from '@frontegg/rest-api';
2
- export declare function subscriptionsPaymentMethodSagas(): Generator<import("redux-saga/effects").ForkEffect<never>, void, unknown>;
3
- export declare function loadPaymentMethod(): Generator<import("redux-saga/effects").PutEffect<{
4
- payload: boolean;
5
- type: string;
6
- }> | import("redux-saga/effects").CallEffect<import("@frontegg/rest-api").ISubscriptionPaymentMethodResponse[]> | import("redux-saga/effects").PutEffect<{
7
- payload: Partial<import("./interfaces").PaymentMethodState>;
8
- type: string;
9
- }> | import("redux-saga/effects").PutEffect<{
10
- payload: string | null;
11
- type: string;
12
- }>, void, ISubscriptionPaymentMethodCardResponse[]>;
13
- export declare function subscriptionsPaymentMethodSagasMock(): Generator<import("redux-saga/effects").ForkEffect<never>, void, unknown>;
1
+ import { ISubscriptionPaymentMethodCardResponse } from '@frontegg/rest-api';
2
+ export declare function subscriptionsPaymentMethodSagas(): Generator<import("redux-saga/effects").ForkEffect<never>, void, unknown>;
3
+ export declare function loadPaymentMethod(): Generator<import("redux-saga/effects").PutEffect<{
4
+ payload: boolean;
5
+ type: string;
6
+ }> | import("redux-saga/effects").PutEffect<{
7
+ payload: string | null;
8
+ type: string;
9
+ }> | import("redux-saga/effects").CallEffect<import("@frontegg/rest-api").ISubscriptionPaymentMethodResponse[]> | import("redux-saga/effects").PutEffect<{
10
+ payload: Partial<import("./interfaces").PaymentMethodState>;
11
+ type: string;
12
+ }>, void, ISubscriptionPaymentMethodCardResponse[]>;
13
+ export declare function subscriptionsPaymentMethodSagasMock(): Generator<import("redux-saga/effects").ForkEffect<never>, void, unknown>;
@@ -0,0 +1,81 @@
1
+ import _extends from "@babel/runtime/helpers/esm/extends";
2
+ import { call, put, takeEvery, delay } from 'redux-saga/effects';
3
+ import { subscriptionsPaymentMethodActions } from './index';
4
+ import { api } from '@frontegg/rest-api';
5
+ import { paymentMethodsMock } from '../../dummy';
6
+ export function* subscriptionsPaymentMethodSagas() {
7
+ yield takeEvery(subscriptionsPaymentMethodActions.loadPaymentMethod, loadPaymentMethod);
8
+ yield takeEvery(subscriptionsPaymentMethodActions.submitPaymentMethod, submitPaymentMethod);
9
+ yield takeEvery(subscriptionsPaymentMethodActions.submitPaymentMethodError, submitPaymentMethodError);
10
+ yield takeEvery(subscriptionsPaymentMethodActions.submitPaymentMethodSuccess, submitPaymentMethodSuccess);
11
+ yield takeEvery(subscriptionsPaymentMethodActions.updatePaymentMethodBillingDetails, updateBillingDetails);
12
+ }
13
+ export function* loadPaymentMethod() {
14
+ yield put(subscriptionsPaymentMethodActions.setLoading(true));
15
+
16
+ try {
17
+ const paymentMethods = yield call(api.subscriptions.getPaymentMethods);
18
+ const paymentMethod = paymentMethods[0];
19
+ yield put(subscriptionsPaymentMethodActions.setState({
20
+ paymentMethod,
21
+ loading: false,
22
+ fetching: false
23
+ }));
24
+ } catch (e) {
25
+ yield put(subscriptionsPaymentMethodActions.setError(e.message));
26
+ }
27
+ }
28
+
29
+ function* updateBillingDetails({
30
+ payload
31
+ }) {
32
+ yield put(subscriptionsPaymentMethodActions.setLoading(true));
33
+ const {
34
+ id,
35
+ email,
36
+ address,
37
+ callback
38
+ } = payload;
39
+
40
+ try {
41
+ yield call(api.subscriptions.updatePaymentMethodBillingDetails, id, _extends({
42
+ email
43
+ }, address));
44
+ yield call(loadPaymentMethod);
45
+ callback == null ? void 0 : callback(true);
46
+ } catch (e) {
47
+ yield put(subscriptionsPaymentMethodActions.setError(e.message));
48
+ callback == null ? void 0 : callback(false);
49
+ }
50
+
51
+ yield put(subscriptionsPaymentMethodActions.setLoading(false));
52
+ }
53
+
54
+ function* submitPaymentMethod() {
55
+ yield put(subscriptionsPaymentMethodActions.setLoading(true));
56
+ }
57
+
58
+ function* submitPaymentMethodError({
59
+ payload: error
60
+ }) {
61
+ yield put(subscriptionsPaymentMethodActions.setError(error));
62
+ }
63
+
64
+ function* submitPaymentMethodSuccess() {
65
+ yield put(subscriptionsPaymentMethodActions.loadPaymentMethod());
66
+ }
67
+
68
+ function* loadPaymentMethodMock() {
69
+ yield put(subscriptionsPaymentMethodActions.setLoading(true));
70
+ yield delay(500);
71
+ const paymentMethod = paymentMethodsMock[0];
72
+ yield put(subscriptionsPaymentMethodActions.setState({
73
+ paymentMethod,
74
+ loading: false,
75
+ fetching: false
76
+ }));
77
+ }
78
+
79
+ export function* subscriptionsPaymentMethodSagasMock() {
80
+ yield takeEvery(subscriptionsPaymentMethodActions.loadPaymentMethod, loadPaymentMethodMock);
81
+ }
@@ -1,16 +1,16 @@
1
- import { SubscriptionState } from './interfaces';
2
- export declare const initialSubscriptionState: SubscriptionState;
3
- declare const reducer: import("redux").Reducer<SubscriptionState, import("redux").AnyAction>;
4
- declare const actions: {
5
- setCancellationLoading: import("@reduxjs/toolkit").ActionCreatorWithPreparedPayload<[boolean], boolean, string, never, never>;
6
- setCancellationError: import("@reduxjs/toolkit").ActionCreatorWithPreparedPayload<[string | null], string | null, string, never, never>;
7
- setRenewalLoading: import("@reduxjs/toolkit").ActionCreatorWithPreparedPayload<[boolean], boolean, string, never, never>;
8
- setRenewalError: import("@reduxjs/toolkit").ActionCreatorWithPreparedPayload<[string | null], string | null, string, never, never>;
9
- setLoading: import("@reduxjs/toolkit").ActionCreatorWithPreparedPayload<[boolean], boolean, string, never, never>;
10
- setError: import("@reduxjs/toolkit").ActionCreatorWithPreparedPayload<[string | null], string | null, string, never, never>;
11
- setState: import("@reduxjs/toolkit").ActionCreatorWithPreparedPayload<[Partial<SubscriptionState>], Partial<SubscriptionState>, string, never, never>;
12
- load: import("@reduxjs/toolkit").ActionCreatorWithoutPayload<string>;
13
- cancelSubscription: import("@reduxjs/toolkit").ActionCreatorWithoutPayload<string>;
14
- renewSubscription: import("@reduxjs/toolkit").ActionCreatorWithoutPayload<string>;
15
- };
16
- export { reducer as subscriptionReducer, actions as subscriptionActions };
1
+ import { SubscriptionState } from './interfaces';
2
+ export declare const initialSubscriptionState: SubscriptionState;
3
+ declare const reducer: import("redux").Reducer<SubscriptionState, import("redux").AnyAction>;
4
+ declare const actions: {
5
+ setCancellationLoading: import("@reduxjs/toolkit").ActionCreatorWithPreparedPayload<[boolean], boolean, string, never, never>;
6
+ setCancellationError: import("@reduxjs/toolkit").ActionCreatorWithPreparedPayload<[string | null], string | null, string, never, never>;
7
+ setRenewalLoading: import("@reduxjs/toolkit").ActionCreatorWithPreparedPayload<[boolean], boolean, string, never, never>;
8
+ setRenewalError: import("@reduxjs/toolkit").ActionCreatorWithPreparedPayload<[string | null], string | null, string, never, never>;
9
+ setLoading: import("@reduxjs/toolkit").ActionCreatorWithPreparedPayload<[boolean], boolean, string, never, never>;
10
+ setError: import("@reduxjs/toolkit").ActionCreatorWithPreparedPayload<[string | null], string | null, string, never, never>;
11
+ setState: import("@reduxjs/toolkit").ActionCreatorWithPreparedPayload<[Partial<SubscriptionState>], Partial<SubscriptionState>, string, never, never>;
12
+ load: import("@reduxjs/toolkit").ActionCreatorWithoutPayload<string>;
13
+ cancelSubscription: import("@reduxjs/toolkit").ActionCreatorWithoutPayload<string>;
14
+ renewSubscription: import("@reduxjs/toolkit").ActionCreatorWithoutPayload<string>;
15
+ };
16
+ export { reducer as subscriptionReducer, actions as subscriptionActions };
@@ -0,0 +1,42 @@
1
+ import _extends from "@babel/runtime/helpers/esm/extends";
2
+ import { createAction, createSlice } from '@reduxjs/toolkit';
3
+ import { subscriptionsStoreName } from '../../../constants';
4
+ import { createKeyCaseErrorReducer, createKeyCaseLoadingReducer, createModuleCaseReducers } from '../../utils';
5
+ export const initialSubscriptionState = {
6
+ loading: false,
7
+ error: null,
8
+ fetching: true,
9
+ cancellation: {
10
+ loading: false,
11
+ error: null
12
+ },
13
+ renewal: {
14
+ loading: false,
15
+ error: null
16
+ }
17
+ };
18
+
19
+ const reducers = _extends({}, createModuleCaseReducers(), {
20
+ setCancellationLoading: createKeyCaseLoadingReducer('cancellation'),
21
+ setCancellationError: createKeyCaseErrorReducer('cancellation'),
22
+ setRenewalLoading: createKeyCaseLoadingReducer('renewal'),
23
+ setRenewalError: createKeyCaseErrorReducer('renewal')
24
+ });
25
+
26
+ const {
27
+ reducer,
28
+ actions: overviewActions,
29
+ name
30
+ } = createSlice({
31
+ name: `${subscriptionsStoreName}/billing/subscription`,
32
+ initialState: initialSubscriptionState,
33
+ reducers
34
+ });
35
+
36
+ const actions = _extends({
37
+ load: createAction(`${name}/loadSubscription`),
38
+ cancelSubscription: createAction(`${name}/cancelSubscription`),
39
+ renewSubscription: createAction(`${name}/renewSubscription`)
40
+ }, overviewActions);
41
+
42
+ export { reducer as subscriptionReducer, actions as subscriptionActions };
@@ -1,18 +1,18 @@
1
- import { ISubscriptionResponse } from '@frontegg/rest-api';
2
- export interface SubscriptionState {
3
- loading: boolean;
4
- error: string | null;
5
- fetching: boolean;
6
- subscription?: ISubscriptionResponse;
7
- cancellation: {
8
- loading: boolean;
9
- error: string | null;
10
- };
11
- renewal: {
12
- loading: boolean;
13
- error: string | null;
14
- };
15
- }
16
- export interface SubscriptionActions {
17
- load: () => void;
18
- }
1
+ import { ISubscriptionResponse } from '@frontegg/rest-api';
2
+ export interface SubscriptionState {
3
+ loading: boolean;
4
+ error: string | null;
5
+ fetching: boolean;
6
+ subscription?: ISubscriptionResponse;
7
+ cancellation: {
8
+ loading: boolean;
9
+ error: string | null;
10
+ };
11
+ renewal: {
12
+ loading: boolean;
13
+ error: string | null;
14
+ };
15
+ }
16
+ export interface SubscriptionActions {
17
+ load: () => void;
18
+ }
@@ -0,0 +1 @@
1
+ export {};
@@ -1,13 +1,13 @@
1
- import { SubscriptionState } from './interfaces';
2
- export declare function subscriptionSagas(): Generator<import("redux-saga/effects").ForkEffect<never>, void, unknown>;
3
- export declare function loadSubscription(): Generator<import("redux-saga/effects").PutEffect<{
4
- payload: boolean;
5
- type: string;
6
- }> | import("redux-saga/effects").CallEffect<import("@frontegg/rest-api").ISubscriptionResponse[]> | import("redux-saga/effects").PutEffect<{
7
- payload: Partial<SubscriptionState>;
8
- type: string;
9
- }> | import("redux-saga/effects").PutEffect<{
10
- payload: string | null;
11
- type: string;
12
- }>, void, [any]>;
13
- export declare function subscriptionSagasMock(): Generator<import("redux-saga/effects").ForkEffect<never>, void, unknown>;
1
+ import { SubscriptionState } from './interfaces';
2
+ export declare function subscriptionSagas(): Generator<import("redux-saga/effects").ForkEffect<never>, void, unknown>;
3
+ export declare function loadSubscription(): Generator<import("redux-saga/effects").PutEffect<{
4
+ payload: boolean;
5
+ type: string;
6
+ }> | import("redux-saga/effects").CallEffect<import("@frontegg/rest-api").ISubscriptionResponse[]> | import("redux-saga/effects").PutEffect<{
7
+ payload: Partial<SubscriptionState>;
8
+ type: string;
9
+ }> | import("redux-saga/effects").PutEffect<{
10
+ payload: string | null;
11
+ type: string;
12
+ }>, void, [any]>;
13
+ export declare function subscriptionSagasMock(): Generator<import("redux-saga/effects").ForkEffect<never>, void, unknown>;
@@ -0,0 +1,117 @@
1
+ import { call, delay, put, select, takeEvery } from 'redux-saga/effects';
2
+ import { subscriptionActions } from './index';
3
+ import { api, ISubscriptionCancellationPolicy, ISubscriptionStatus } from '@frontegg/rest-api';
4
+ import { subscriptionResponseMock } from '../../dummy';
5
+ import { loadSummaries } from '../Information/saga';
6
+ export function* subscriptionSagas() {
7
+ yield takeEvery(subscriptionActions.load, loadSubscriptionTenant);
8
+ yield takeEvery(subscriptionActions.cancelSubscription, cancelSubscription);
9
+ yield takeEvery(subscriptionActions.renewSubscription, renewSubscription);
10
+ }
11
+
12
+ function* loadSubscriptionTenant() {
13
+ const tenantId = yield select(state => {
14
+ var _state$auth, _state$auth$user;
15
+
16
+ return (_state$auth = state.auth) == null ? void 0 : (_state$auth$user = _state$auth.user) == null ? void 0 : _state$auth$user.tenantId;
17
+ });
18
+ yield loadSummaries(tenantId);
19
+ }
20
+
21
+ export function* loadSubscription() {
22
+ yield put(subscriptionActions.setLoading(true));
23
+
24
+ try {
25
+ const [subscription] = yield call(api.subscriptions.getManagedSubscriptions);
26
+ yield put(subscriptionActions.setState({
27
+ subscription,
28
+ fetching: false,
29
+ loading: false,
30
+ error: null
31
+ }));
32
+ } catch (e) {
33
+ yield put(subscriptionActions.setError(e));
34
+ }
35
+ }
36
+
37
+ function* cancelSubscription() {
38
+ const {
39
+ subscription
40
+ } = yield select(state => state.subscriptions.billing.subscription);
41
+
42
+ if (!subscription) {
43
+ yield put(subscriptionActions.setCancellationError('Subscription not found.'));
44
+ return;
45
+ }
46
+
47
+ if (subscription != null && subscription.externallyManaged) {
48
+ yield put(subscriptionActions.setCancellationError('Billing is externally managed.'));
49
+ return;
50
+ }
51
+
52
+ const {
53
+ id: subscriptionId,
54
+ cancellation,
55
+ status
56
+ } = subscription || {};
57
+ const isCancellable = !cancellation && status === ISubscriptionStatus.ACTIVE;
58
+
59
+ if (isCancellable) {
60
+ try {
61
+ yield put(subscriptionActions.setCancellationLoading(true));
62
+ yield call(api.subscriptions.cancelManagedSubscription, subscriptionId);
63
+ yield loadSubscription();
64
+ yield put(subscriptionActions.setCancellationLoading(false));
65
+ } catch (e) {
66
+ yield put(subscriptionActions.setCancellationError(e.message));
67
+ }
68
+ }
69
+ }
70
+
71
+ function* renewSubscription() {
72
+ const {
73
+ subscription
74
+ } = yield select(state => state.subscriptions.billing.subscription);
75
+
76
+ if (!subscription) {
77
+ yield put(subscriptionActions.setCancellationError('Subscription not found.'));
78
+ return;
79
+ }
80
+
81
+ if (subscription != null && subscription.externallyManaged) {
82
+ yield put(subscriptionActions.setCancellationError('Billing is externally managed'));
83
+ return;
84
+ }
85
+
86
+ const {
87
+ id: subscriptionId,
88
+ cancellation
89
+ } = subscription || {};
90
+ const renewable = (cancellation == null ? void 0 : cancellation.policy) === ISubscriptionCancellationPolicy.AT_PERIOD_END;
91
+
92
+ if (renewable) {
93
+ try {
94
+ yield put(subscriptionActions.setRenewalLoading(true));
95
+ yield call(api.subscriptions.renewManagedSubscription, subscriptionId);
96
+ yield loadSubscription();
97
+ yield put(subscriptionActions.setRenewalLoading(false));
98
+ } catch (e) {
99
+ yield put(subscriptionActions.setCancellationError(e.message));
100
+ }
101
+ }
102
+ }
103
+
104
+ function* loadMock() {
105
+ yield put(subscriptionActions.setLoading(true));
106
+ yield delay(500);
107
+ yield put(subscriptionActions.setState({
108
+ subscription: subscriptionResponseMock,
109
+ fetching: false,
110
+ loading: false,
111
+ error: null
112
+ }));
113
+ }
114
+
115
+ export function* subscriptionSagasMock() {
116
+ yield takeEvery(subscriptionActions.load, loadMock);
117
+ }