@zeniai/client-epic-state 5.0.92-betaNB2 → 5.0.93-beta0ND

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 (289) hide show
  1. package/lib/common/aiCfo/aiCfoSuggestedQuestionsPageContext.d.ts +1 -1
  2. package/lib/commonStateTypes/animations.d.ts +1 -1
  3. package/lib/commonStateTypes/animations.js +1 -0
  4. package/lib/commonStateTypes/viewAndReport/agingReportStateTypes.d.ts +1 -1
  5. package/lib/entity/accountRecon/accountReconPayload.d.ts +1 -20
  6. package/lib/entity/accountRecon/accountReconPayload.js +1 -23
  7. package/lib/entity/accountRecon/accountReconSelector.d.ts +1 -6
  8. package/lib/entity/accountRecon/accountReconSelector.js +0 -5
  9. package/lib/entity/accountRecon/accountReconState.d.ts +0 -19
  10. package/lib/entity/aiCfo/aiCfoPayload.d.ts +63 -5
  11. package/lib/entity/aiCfo/aiCfoReducer.d.ts +23 -2
  12. package/lib/entity/aiCfo/aiCfoReducer.js +249 -9
  13. package/lib/entity/aiCfo/aiCfoSelector.d.ts +4 -1
  14. package/lib/entity/aiCfo/aiCfoSelector.js +19 -1
  15. package/lib/entity/aiCfo/aiCfoState.d.ts +97 -4
  16. package/lib/entity/aiCfo/aiCfoState.js +18 -1
  17. package/lib/entity/cardPolicy/cardPolicyPayload.d.ts +277 -0
  18. package/lib/entity/cardPolicy/cardPolicyPayload.js +143 -0
  19. package/lib/entity/cardPolicy/cardPolicyReducer.d.ts +19 -0
  20. package/lib/entity/cardPolicy/cardPolicyReducer.js +175 -0
  21. package/lib/entity/cardPolicy/cardPolicySelector.d.ts +32 -0
  22. package/lib/entity/cardPolicy/cardPolicySelector.js +99 -0
  23. package/lib/entity/cardPolicy/cardPolicyState.d.ts +205 -0
  24. package/lib/entity/cardPolicy/cardPolicyState.js +14 -0
  25. package/lib/entity/cardPolicy/extractPolicyDocumentEpic.d.ts +18 -0
  26. package/lib/entity/cardPolicy/extractPolicyDocumentEpic.js +68 -0
  27. package/lib/entity/cardPolicy/fetchCardPolicyVendorOptionsEpic.d.ts +26 -0
  28. package/lib/entity/cardPolicy/fetchCardPolicyVendorOptionsEpic.js +47 -0
  29. package/lib/entity/cardPolicy/policyDocumentExtractionToRecommendationBridgeEpic.d.ts +25 -0
  30. package/lib/entity/cardPolicy/policyDocumentExtractionToRecommendationBridgeEpic.js +39 -0
  31. package/lib/entity/cardPolicy/policyRecommendationFromUploadEpic.d.ts +24 -0
  32. package/lib/entity/cardPolicy/policyRecommendationFromUploadEpic.js +105 -0
  33. package/lib/entity/company/companyPayload.d.ts +4 -0
  34. package/lib/entity/company/companyPayload.js +4 -0
  35. package/lib/entity/company/companyStateTypes.d.ts +4 -0
  36. package/lib/entity/jeSchedules/jeSchedulesTypes.d.ts +1 -1
  37. package/lib/entity/monthEndCloseChecks/monthEndCloseChecksPayload.d.ts +0 -7
  38. package/lib/entity/monthEndCloseChecks/monthEndCloseChecksPayload.js +0 -9
  39. package/lib/entity/monthEndCloseChecks/monthEndCloseChecksState.d.ts +1 -8
  40. package/lib/entity/paymentAccount/paymentAccountSelector.d.ts +1 -0
  41. package/lib/entity/paymentAccount/paymentAccountSelector.js +4 -0
  42. package/lib/entity/snackbar/snackbarTypes.d.ts +1 -1
  43. package/lib/entity/snackbar/snackbarTypes.js +3 -0
  44. package/lib/entity/tenant/clearAllEpic.d.ts +6 -2
  45. package/lib/entity/tenant/clearAllEpic.js +8 -0
  46. package/lib/entity/tenant/epic/deleteConnectionEpic.d.ts +1 -1
  47. package/lib/entity/tenant/epic/initEmailConnectOAuthEpic.d.ts +21 -0
  48. package/lib/entity/tenant/epic/initEmailConnectOAuthEpic.js +54 -0
  49. package/lib/entity/tenant/epic/saveAPIKeyConnectionEpic.d.ts +1 -1
  50. package/lib/entity/tenant/epic/saveConnectorCredentialsEpic.d.ts +3 -3
  51. package/lib/entity/tenant/epic/saveOAuthConnectionEpic.d.ts +1 -1
  52. package/lib/entity/tenant/tenantPayload.d.ts +1 -0
  53. package/lib/entity/tenant/tenantReducer.d.ts +38 -25
  54. package/lib/entity/tenant/tenantReducer.js +65 -5
  55. package/lib/entity/tenant/tenantState.d.ts +1 -0
  56. package/lib/epic.d.ts +19 -3
  57. package/lib/epic.js +20 -3
  58. package/lib/esm/commonStateTypes/animations.js +1 -0
  59. package/lib/esm/entity/accountRecon/accountReconPayload.js +1 -23
  60. package/lib/esm/entity/accountRecon/accountReconSelector.js +0 -5
  61. package/lib/esm/entity/aiCfo/aiCfoReducer.js +249 -9
  62. package/lib/esm/entity/aiCfo/aiCfoSelector.js +17 -1
  63. package/lib/esm/entity/aiCfo/aiCfoState.js +15 -0
  64. package/lib/esm/entity/cardPolicy/cardPolicyPayload.js +130 -0
  65. package/lib/esm/entity/cardPolicy/cardPolicyReducer.js +171 -0
  66. package/lib/esm/entity/cardPolicy/cardPolicySelector.js +75 -0
  67. package/lib/esm/entity/cardPolicy/cardPolicyState.js +9 -0
  68. package/lib/esm/entity/cardPolicy/extractPolicyDocumentEpic.js +64 -0
  69. package/lib/esm/entity/cardPolicy/fetchCardPolicyVendorOptionsEpic.js +43 -0
  70. package/lib/esm/entity/cardPolicy/policyDocumentExtractionToRecommendationBridgeEpic.js +35 -0
  71. package/lib/esm/entity/cardPolicy/policyRecommendationFromUploadEpic.js +101 -0
  72. package/lib/esm/entity/company/companyPayload.js +4 -0
  73. package/lib/esm/entity/monthEndCloseChecks/monthEndCloseChecksPayload.js +0 -9
  74. package/lib/esm/entity/paymentAccount/paymentAccountSelector.js +3 -0
  75. package/lib/esm/entity/snackbar/snackbarTypes.js +3 -0
  76. package/lib/esm/entity/tenant/clearAllEpic.js +8 -0
  77. package/lib/esm/entity/tenant/epic/initEmailConnectOAuthEpic.js +50 -0
  78. package/lib/esm/entity/tenant/tenantReducer.js +63 -3
  79. package/lib/esm/epic.js +20 -3
  80. package/lib/esm/index.js +48 -15
  81. package/lib/esm/reducer.js +12 -0
  82. package/lib/esm/view/aiCfoView/aiCfoViewReducer.js +6 -3
  83. package/lib/esm/view/aiCfoView/epics/createSessionAndSubmitEpic.js +5 -2
  84. package/lib/esm/view/aiCfoView/epics/createSessionEpic.js +2 -1
  85. package/lib/esm/view/aiCfoView/epics/fetchSuggestedQuestionsEpic.js +12 -2
  86. package/lib/esm/view/expenseAutomationView/payload/reconciliationPayload.js +0 -73
  87. package/lib/esm/view/expenseAutomationView/reducers/reconciliationViewReducer.js +4 -98
  88. package/lib/esm/view/expenseAutomationView/selectors/reconciliationViewSelector.js +0 -20
  89. package/lib/esm/view/expenseAutomationView/types/reconciliationViewState.js +0 -20
  90. package/lib/esm/view/fileView/epic/deleteFileEpic.js +2 -2
  91. package/lib/esm/view/fileView/epic/deleteFileListEpic.js +2 -2
  92. package/lib/esm/view/fileView/epic/updateFileNameEpic.js +2 -2
  93. package/lib/esm/view/onboardingView/customerView/epic/aiAgentsActivation/fetchAiAgentsActivationStatusEpic.js +42 -0
  94. package/lib/esm/view/onboardingView/customerView/epic/customerDetails/acknowledgeOnboardingAiActivationViewedEpic.js +29 -0
  95. package/lib/esm/view/onboardingView/customerView/epic/customerDetails/acknowledgeOnboardingAiFinanceTeamEpic.js +40 -0
  96. package/lib/esm/view/onboardingView/customerView/onboardingCustomerViewReducer.js +217 -50
  97. package/lib/esm/view/onboardingView/customerView/onboardingCustomerViewSelector.js +7 -1
  98. package/lib/esm/view/onboardingView/customerView/onboardingCustomerViewState.js +12 -0
  99. package/lib/esm/view/spendManagement/chargeCards/cardPolicy/cardPolicyDetail/cardPolicyDetailReducer.js +52 -0
  100. package/lib/esm/view/spendManagement/chargeCards/cardPolicy/cardPolicyDetail/cardPolicyDetailSelector.js +22 -0
  101. package/lib/esm/view/spendManagement/chargeCards/cardPolicy/cardPolicyDetail/cardPolicyDetailState.js +1 -0
  102. package/lib/esm/view/spendManagement/chargeCards/cardPolicy/cardPolicyDetail/fetchCardPolicyDetailEpic.js +36 -0
  103. package/lib/esm/view/spendManagement/chargeCards/cardPolicy/cardPolicyDetail/updateCardPolicyEpic.js +39 -0
  104. package/lib/esm/view/spendManagement/chargeCards/cardPolicy/cardPolicyList/archiveCardPolicyEpic.js +34 -0
  105. package/lib/esm/view/spendManagement/chargeCards/cardPolicy/cardPolicyList/cardPolicyListReducer.js +58 -0
  106. package/lib/esm/view/spendManagement/chargeCards/cardPolicy/cardPolicyList/cardPolicyListSelector.js +21 -0
  107. package/lib/esm/view/spendManagement/chargeCards/cardPolicy/cardPolicyList/cardPolicyListState.js +1 -0
  108. package/lib/esm/view/spendManagement/chargeCards/cardPolicy/cardPolicyList/fetchCardPolicyListEpic.js +38 -0
  109. package/lib/esm/view/spendManagement/chargeCards/cardPolicy/createCardPolicy/applyAiCardPolicyFormDraftUpdate.js +289 -0
  110. package/lib/esm/view/spendManagement/chargeCards/cardPolicy/createCardPolicy/applyExtractedPolicyToAiCardPolicyDraft.js +109 -0
  111. package/lib/esm/view/spendManagement/chargeCards/cardPolicy/createCardPolicy/applyExtractedPolicyToDraftEpic.js +44 -0
  112. package/lib/esm/view/spendManagement/chargeCards/cardPolicy/createCardPolicy/applyExtractedPolicyToManualCardPolicyDraft.js +111 -0
  113. package/lib/esm/view/spendManagement/chargeCards/cardPolicy/createCardPolicy/applyUploadPlanToAiCardPolicyDraft.js +25 -0
  114. package/lib/esm/view/spendManagement/chargeCards/cardPolicy/createCardPolicy/buildAiCardPolicyFormDraftSeed.js +363 -0
  115. package/lib/esm/view/spendManagement/chargeCards/cardPolicy/createCardPolicy/buildManualCardPolicyFormDraftSeed.js +36 -0
  116. package/lib/esm/view/spendManagement/chargeCards/cardPolicy/createCardPolicy/cardPolicyChipIds.js +19 -0
  117. package/lib/esm/view/spendManagement/chargeCards/cardPolicy/createCardPolicy/cardPolicyFormDraftTypes.js +6 -0
  118. package/lib/esm/view/spendManagement/chargeCards/cardPolicy/createCardPolicy/cardPolicyRequestParts.js +119 -0
  119. package/lib/esm/view/spendManagement/chargeCards/cardPolicy/createCardPolicy/createCardPolicyReducer.js +154 -0
  120. package/lib/esm/view/spendManagement/chargeCards/cardPolicy/createCardPolicy/createCardPolicySelector.js +22 -0
  121. package/lib/esm/view/spendManagement/chargeCards/cardPolicy/createCardPolicy/createCardPolicyState.js +1 -0
  122. package/lib/esm/view/spendManagement/chargeCards/cardPolicy/createCardPolicy/createCardPolicyTemplateEpic.js +39 -0
  123. package/lib/esm/view/spendManagement/chargeCards/cardPolicy/createCardPolicy/deriveAiPolicyReviewRowsFromInputs.js +140 -0
  124. package/lib/esm/view/spendManagement/chargeCards/cardPolicy/createCardPolicy/fetchCardPolicyMccCategoriesEpic.js +20 -0
  125. package/lib/esm/view/spendManagement/chargeCards/cardPolicy/createCardPolicy/seedAiCardPolicyFormDraftEpic.js +100 -0
  126. package/lib/esm/view/spendManagement/chargeCards/cardPolicy/createCardPolicy/toBulkCardPolicyTemplateRequestsFromDraft.js +96 -0
  127. package/lib/esm/view/spendManagement/chargeCards/cardPolicy/createCardPolicy/toCardPolicyTemplateRequestFromDraft.js +59 -0
  128. package/lib/esm/view/spendManagement/chargeCards/cardPolicy/createCardPolicy/toManualCardPolicyTemplateRequestFromDraft.js +24 -0
  129. package/lib/esm/view/spendManagement/chargeCards/chargeCardList/chargeCardListSelector.js +25 -0
  130. package/lib/esm/view/spendManagement/chargeCards/issueChargeCard/aiCardCreationFormDraftTypes.js +1 -0
  131. package/lib/esm/view/spendManagement/chargeCards/issueChargeCard/applyAiCardCreationFormDraftUpdate.js +34 -0
  132. package/lib/esm/view/spendManagement/chargeCards/issueChargeCard/buildAiCardCreationFormDraftSeed.js +57 -0
  133. package/lib/esm/view/spendManagement/chargeCards/issueChargeCard/deriveAiCardRowsFromTeams.js +35 -0
  134. package/lib/esm/view/spendManagement/chargeCards/issueChargeCard/issueChargeCardEpic.js +2 -2
  135. package/lib/esm/view/spendManagement/chargeCards/issueChargeCard/issueChargeCardReducer.js +42 -4
  136. package/lib/esm/view/spendManagement/chargeCards/issueChargeCard/issueChargeCardSelector.js +35 -0
  137. package/lib/esm/view/spendManagement/chargeCards/issueChargeCard/seedAiCardCreationFormDraftEpic.js +62 -0
  138. package/lib/esm/view/spendManagement/chargeCards/issueChargeCard/toIssueChargeCardLocalDataFromDraft.js +44 -0
  139. package/lib/esm/view/spendManagement/commonSetup/epic/setup/parseUploadedKybDocumentEpic.js +58 -0
  140. package/lib/esm/view/spendManagement/commonSetup/epic/setup/parseUploadedKycDocumentEpic.js +67 -0
  141. package/lib/esm/view/spendManagement/commonSetup/kycKybAutofillActions.js +14 -0
  142. package/lib/esm/view/spendManagement/commonSetup/kycKybParseMapper.js +205 -0
  143. package/lib/esm/view/spendManagement/commonSetup/setupViewReducer.js +105 -52
  144. package/lib/esm/view/spendManagement/commonSetup/setupViewSelector.js +6 -1
  145. package/lib/esm/view/spendManagement/commonSetup/types/kycKybAutofill.js +28 -0
  146. package/lib/index.d.ts +57 -19
  147. package/lib/index.js +217 -37
  148. package/lib/reducer.d.ts +12 -0
  149. package/lib/reducer.js +12 -0
  150. package/lib/view/aiCfoView/aiCfoViewReducer.d.ts +11 -2
  151. package/lib/view/aiCfoView/aiCfoViewReducer.js +6 -3
  152. package/lib/view/aiCfoView/epics/createSessionAndSubmitEpic.js +5 -2
  153. package/lib/view/aiCfoView/epics/createSessionEpic.js +2 -1
  154. package/lib/view/aiCfoView/epics/fetchSuggestedQuestionsEpic.d.ts +8 -1
  155. package/lib/view/aiCfoView/epics/fetchSuggestedQuestionsEpic.js +12 -2
  156. package/lib/view/expenseAutomationView/helpers/transactionCategorizationLocalDataHelper.d.ts +1 -1
  157. package/lib/view/expenseAutomationView/payload/reconciliationPayload.d.ts +1 -83
  158. package/lib/view/expenseAutomationView/payload/reconciliationPayload.js +0 -75
  159. package/lib/view/expenseAutomationView/reducers/reconciliationViewReducer.d.ts +3 -35
  160. package/lib/view/expenseAutomationView/reducers/reconciliationViewReducer.js +5 -99
  161. package/lib/view/expenseAutomationView/selectorTypes/reconciliationViewSelectorTypes.d.ts +1 -5
  162. package/lib/view/expenseAutomationView/selectors/reconciliationViewSelector.js +0 -20
  163. package/lib/view/expenseAutomationView/types/reconciliationViewState.d.ts +1 -129
  164. package/lib/view/expenseAutomationView/types/reconciliationViewState.js +0 -21
  165. package/lib/view/fileView/epic/deleteFileEpic.js +1 -1
  166. package/lib/view/fileView/epic/deleteFileListEpic.js +1 -1
  167. package/lib/view/fileView/epic/updateFileNameEpic.js +1 -1
  168. package/lib/view/onboardingView/customerView/epic/aiAgentsActivation/fetchAiAgentsActivationStatusEpic.d.ts +7 -0
  169. package/lib/view/onboardingView/customerView/epic/aiAgentsActivation/fetchAiAgentsActivationStatusEpic.js +46 -0
  170. package/lib/view/onboardingView/customerView/epic/customerDetails/acknowledgeOnboardingAiActivationViewedEpic.d.ts +8 -0
  171. package/lib/view/onboardingView/customerView/epic/customerDetails/acknowledgeOnboardingAiActivationViewedEpic.js +33 -0
  172. package/lib/view/onboardingView/customerView/epic/customerDetails/acknowledgeOnboardingAiFinanceTeamEpic.d.ts +9 -0
  173. package/lib/view/onboardingView/customerView/epic/customerDetails/acknowledgeOnboardingAiFinanceTeamEpic.js +44 -0
  174. package/lib/view/onboardingView/customerView/onboardingCustomerViewPayload.d.ts +3 -0
  175. package/lib/view/onboardingView/customerView/onboardingCustomerViewReducer.d.ts +41 -4
  176. package/lib/view/onboardingView/customerView/onboardingCustomerViewReducer.js +219 -51
  177. package/lib/view/onboardingView/customerView/onboardingCustomerViewSelector.d.ts +5 -1
  178. package/lib/view/onboardingView/customerView/onboardingCustomerViewSelector.js +11 -2
  179. package/lib/view/onboardingView/customerView/onboardingCustomerViewState.d.ts +40 -0
  180. package/lib/view/onboardingView/customerView/onboardingCustomerViewState.js +13 -1
  181. package/lib/view/people/peopleTypes.d.ts +1 -1
  182. package/lib/view/scheduleView/scheduleListView/scheduleListTypes.d.ts +1 -1
  183. package/lib/view/spendManagement/chargeCards/cardPolicy/cardPolicyDetail/cardPolicyDetailReducer.d.ts +14 -0
  184. package/lib/view/spendManagement/chargeCards/cardPolicy/cardPolicyDetail/cardPolicyDetailReducer.js +56 -0
  185. package/lib/view/spendManagement/chargeCards/cardPolicy/cardPolicyDetail/cardPolicyDetailSelector.d.ts +15 -0
  186. package/lib/view/spendManagement/chargeCards/cardPolicy/cardPolicyDetail/cardPolicyDetailSelector.js +28 -0
  187. package/lib/view/spendManagement/chargeCards/cardPolicy/cardPolicyDetail/cardPolicyDetailState.d.ts +8 -0
  188. package/lib/view/spendManagement/chargeCards/cardPolicy/cardPolicyDetail/cardPolicyDetailState.js +2 -0
  189. package/lib/view/spendManagement/chargeCards/cardPolicy/cardPolicyDetail/fetchCardPolicyDetailEpic.d.ts +8 -0
  190. package/lib/view/spendManagement/chargeCards/cardPolicy/cardPolicyDetail/fetchCardPolicyDetailEpic.js +40 -0
  191. package/lib/view/spendManagement/chargeCards/cardPolicy/cardPolicyDetail/updateCardPolicyEpic.d.ts +8 -0
  192. package/lib/view/spendManagement/chargeCards/cardPolicy/cardPolicyDetail/updateCardPolicyEpic.js +43 -0
  193. package/lib/view/spendManagement/chargeCards/cardPolicy/cardPolicyList/archiveCardPolicyEpic.d.ts +8 -0
  194. package/lib/view/spendManagement/chargeCards/cardPolicy/cardPolicyList/archiveCardPolicyEpic.js +38 -0
  195. package/lib/view/spendManagement/chargeCards/cardPolicy/cardPolicyList/cardPolicyListReducer.d.ts +15 -0
  196. package/lib/view/spendManagement/chargeCards/cardPolicy/cardPolicyList/cardPolicyListReducer.js +62 -0
  197. package/lib/view/spendManagement/chargeCards/cardPolicy/cardPolicyList/cardPolicyListSelector.d.ts +15 -0
  198. package/lib/view/spendManagement/chargeCards/cardPolicy/cardPolicyList/cardPolicyListSelector.js +27 -0
  199. package/lib/view/spendManagement/chargeCards/cardPolicy/cardPolicyList/cardPolicyListState.d.ts +7 -0
  200. package/lib/view/spendManagement/chargeCards/cardPolicy/cardPolicyList/cardPolicyListState.js +2 -0
  201. package/lib/view/spendManagement/chargeCards/cardPolicy/cardPolicyList/fetchCardPolicyListEpic.d.ts +8 -0
  202. package/lib/view/spendManagement/chargeCards/cardPolicy/cardPolicyList/fetchCardPolicyListEpic.js +42 -0
  203. package/lib/view/spendManagement/chargeCards/cardPolicy/createCardPolicy/applyAiCardPolicyFormDraftUpdate.d.ts +8 -0
  204. package/lib/view/spendManagement/chargeCards/cardPolicy/createCardPolicy/applyAiCardPolicyFormDraftUpdate.js +294 -0
  205. package/lib/view/spendManagement/chargeCards/cardPolicy/createCardPolicy/applyExtractedPolicyToAiCardPolicyDraft.d.ts +8 -0
  206. package/lib/view/spendManagement/chargeCards/cardPolicy/createCardPolicy/applyExtractedPolicyToAiCardPolicyDraft.js +113 -0
  207. package/lib/view/spendManagement/chargeCards/cardPolicy/createCardPolicy/applyExtractedPolicyToDraftEpic.d.ts +9 -0
  208. package/lib/view/spendManagement/chargeCards/cardPolicy/createCardPolicy/applyExtractedPolicyToDraftEpic.js +48 -0
  209. package/lib/view/spendManagement/chargeCards/cardPolicy/createCardPolicy/applyExtractedPolicyToManualCardPolicyDraft.d.ts +8 -0
  210. package/lib/view/spendManagement/chargeCards/cardPolicy/createCardPolicy/applyExtractedPolicyToManualCardPolicyDraft.js +115 -0
  211. package/lib/view/spendManagement/chargeCards/cardPolicy/createCardPolicy/applyUploadPlanToAiCardPolicyDraft.d.ts +13 -0
  212. package/lib/view/spendManagement/chargeCards/cardPolicy/createCardPolicy/applyUploadPlanToAiCardPolicyDraft.js +29 -0
  213. package/lib/view/spendManagement/chargeCards/cardPolicy/createCardPolicy/buildAiCardPolicyFormDraftSeed.d.ts +14 -0
  214. package/lib/view/spendManagement/chargeCards/cardPolicy/createCardPolicy/buildAiCardPolicyFormDraftSeed.js +369 -0
  215. package/lib/view/spendManagement/chargeCards/cardPolicy/createCardPolicy/buildManualCardPolicyFormDraftSeed.d.ts +6 -0
  216. package/lib/view/spendManagement/chargeCards/cardPolicy/createCardPolicy/buildManualCardPolicyFormDraftSeed.js +40 -0
  217. package/lib/view/spendManagement/chargeCards/cardPolicy/createCardPolicy/cardPolicyChipIds.d.ts +7 -0
  218. package/lib/view/spendManagement/chargeCards/cardPolicy/createCardPolicy/cardPolicyChipIds.js +26 -0
  219. package/lib/view/spendManagement/chargeCards/cardPolicy/createCardPolicy/cardPolicyFormDraftTypes.d.ts +116 -0
  220. package/lib/view/spendManagement/chargeCards/cardPolicy/createCardPolicy/cardPolicyFormDraftTypes.js +10 -0
  221. package/lib/view/spendManagement/chargeCards/cardPolicy/createCardPolicy/cardPolicyRequestParts.d.ts +33 -0
  222. package/lib/view/spendManagement/chargeCards/cardPolicy/createCardPolicy/cardPolicyRequestParts.js +126 -0
  223. package/lib/view/spendManagement/chargeCards/cardPolicy/createCardPolicy/createCardPolicyReducer.d.ts +52 -0
  224. package/lib/view/spendManagement/chargeCards/cardPolicy/createCardPolicy/createCardPolicyReducer.js +158 -0
  225. package/lib/view/spendManagement/chargeCards/cardPolicy/createCardPolicy/createCardPolicySelector.d.ts +11 -0
  226. package/lib/view/spendManagement/chargeCards/cardPolicy/createCardPolicy/createCardPolicySelector.js +31 -0
  227. package/lib/view/spendManagement/chargeCards/cardPolicy/createCardPolicy/createCardPolicyState.d.ts +12 -0
  228. package/lib/view/spendManagement/chargeCards/cardPolicy/createCardPolicy/createCardPolicyState.js +2 -0
  229. package/lib/view/spendManagement/chargeCards/cardPolicy/createCardPolicy/createCardPolicyTemplateEpic.d.ts +8 -0
  230. package/lib/view/spendManagement/chargeCards/cardPolicy/createCardPolicy/createCardPolicyTemplateEpic.js +43 -0
  231. package/lib/view/spendManagement/chargeCards/cardPolicy/createCardPolicy/deriveAiPolicyReviewRowsFromInputs.d.ts +10 -0
  232. package/lib/view/spendManagement/chargeCards/cardPolicy/createCardPolicy/deriveAiPolicyReviewRowsFromInputs.js +144 -0
  233. package/lib/view/spendManagement/chargeCards/cardPolicy/createCardPolicy/fetchCardPolicyMccCategoriesEpic.d.ts +7 -0
  234. package/lib/view/spendManagement/chargeCards/cardPolicy/createCardPolicy/fetchCardPolicyMccCategoriesEpic.js +24 -0
  235. package/lib/view/spendManagement/chargeCards/cardPolicy/createCardPolicy/seedAiCardPolicyFormDraftEpic.d.ts +11 -0
  236. package/lib/view/spendManagement/chargeCards/cardPolicy/createCardPolicy/seedAiCardPolicyFormDraftEpic.js +104 -0
  237. package/lib/view/spendManagement/chargeCards/cardPolicy/createCardPolicy/toBulkCardPolicyTemplateRequestsFromDraft.d.ts +22 -0
  238. package/lib/view/spendManagement/chargeCards/cardPolicy/createCardPolicy/toBulkCardPolicyTemplateRequestsFromDraft.js +100 -0
  239. package/lib/view/spendManagement/chargeCards/cardPolicy/createCardPolicy/toCardPolicyTemplateRequestFromDraft.d.ts +8 -0
  240. package/lib/view/spendManagement/chargeCards/cardPolicy/createCardPolicy/toCardPolicyTemplateRequestFromDraft.js +63 -0
  241. package/lib/view/spendManagement/chargeCards/cardPolicy/createCardPolicy/toManualCardPolicyTemplateRequestFromDraft.d.ts +3 -0
  242. package/lib/view/spendManagement/chargeCards/cardPolicy/createCardPolicy/toManualCardPolicyTemplateRequestFromDraft.js +28 -0
  243. package/lib/view/spendManagement/chargeCards/chargeCardList/chargeCardList.d.ts +1 -1
  244. package/lib/view/spendManagement/chargeCards/chargeCardList/chargeCardListSelector.d.ts +14 -0
  245. package/lib/view/spendManagement/chargeCards/chargeCardList/chargeCardListSelector.js +27 -1
  246. package/lib/view/spendManagement/chargeCards/issueChargeCard/aiCardCreationFormDraftTypes.d.ts +34 -0
  247. package/lib/view/spendManagement/chargeCards/issueChargeCard/aiCardCreationFormDraftTypes.js +2 -0
  248. package/lib/view/spendManagement/chargeCards/issueChargeCard/applyAiCardCreationFormDraftUpdate.d.ts +7 -0
  249. package/lib/view/spendManagement/chargeCards/issueChargeCard/applyAiCardCreationFormDraftUpdate.js +38 -0
  250. package/lib/view/spendManagement/chargeCards/issueChargeCard/buildAiCardCreationFormDraftSeed.d.ts +12 -0
  251. package/lib/view/spendManagement/chargeCards/issueChargeCard/buildAiCardCreationFormDraftSeed.js +61 -0
  252. package/lib/view/spendManagement/chargeCards/issueChargeCard/deriveAiCardRowsFromTeams.d.ts +9 -0
  253. package/lib/view/spendManagement/chargeCards/issueChargeCard/deriveAiCardRowsFromTeams.js +39 -0
  254. package/lib/view/spendManagement/chargeCards/issueChargeCard/issueChargeCardEpic.d.ts +2 -2
  255. package/lib/view/spendManagement/chargeCards/issueChargeCard/issueChargeCardEpic.js +1 -1
  256. package/lib/view/spendManagement/chargeCards/issueChargeCard/issueChargeCardReducer.d.ts +12 -2
  257. package/lib/view/spendManagement/chargeCards/issueChargeCard/issueChargeCardReducer.js +43 -5
  258. package/lib/view/spendManagement/chargeCards/issueChargeCard/issueChargeCardSelector.d.ts +7 -0
  259. package/lib/view/spendManagement/chargeCards/issueChargeCard/issueChargeCardSelector.js +42 -1
  260. package/lib/view/spendManagement/chargeCards/issueChargeCard/issueChargeCardState.d.ts +5 -0
  261. package/lib/view/spendManagement/chargeCards/issueChargeCard/seedAiCardCreationFormDraftEpic.d.ts +11 -0
  262. package/lib/view/spendManagement/chargeCards/issueChargeCard/seedAiCardCreationFormDraftEpic.js +66 -0
  263. package/lib/view/spendManagement/chargeCards/issueChargeCard/toIssueChargeCardLocalDataFromDraft.d.ts +3 -0
  264. package/lib/view/spendManagement/chargeCards/issueChargeCard/toIssueChargeCardLocalDataFromDraft.js +48 -0
  265. package/lib/view/spendManagement/commonSetup/epic/setup/parseUploadedKybDocumentEpic.d.ts +28 -0
  266. package/lib/view/spendManagement/commonSetup/epic/setup/parseUploadedKybDocumentEpic.js +62 -0
  267. package/lib/view/spendManagement/commonSetup/epic/setup/parseUploadedKycDocumentEpic.d.ts +30 -0
  268. package/lib/view/spendManagement/commonSetup/epic/setup/parseUploadedKycDocumentEpic.js +71 -0
  269. package/lib/view/spendManagement/commonSetup/kycKybAutofillActions.d.ts +33 -0
  270. package/lib/view/spendManagement/commonSetup/kycKybAutofillActions.js +17 -0
  271. package/lib/view/spendManagement/commonSetup/kycKybParseMapper.d.ts +24 -0
  272. package/lib/view/spendManagement/commonSetup/kycKybParseMapper.js +213 -0
  273. package/lib/view/spendManagement/commonSetup/setupViewReducer.d.ts +28 -2
  274. package/lib/view/spendManagement/commonSetup/setupViewReducer.js +106 -53
  275. package/lib/view/spendManagement/commonSetup/setupViewSelector.d.ts +7 -2
  276. package/lib/view/spendManagement/commonSetup/setupViewSelector.js +6 -1
  277. package/lib/view/spendManagement/commonSetup/setupViewState.d.ts +19 -0
  278. package/lib/view/spendManagement/commonSetup/types/kycKybAutofill.d.ts +142 -0
  279. package/lib/view/spendManagement/commonSetup/types/kycKybAutofill.js +32 -0
  280. package/lib/view/taskManager/taskListView/taskListReducer.d.ts +1 -1
  281. package/lib/view/transactionDetail/journalEntryLinesViewModel.d.ts +1 -1
  282. package/lib/view/vendorFiling1099/vendorFiling1099List/vendorFiling1099ListState.d.ts +1 -1
  283. package/package.json +1 -1
  284. package/lib/esm/view/expenseAutomationView/epics/accountRecon/parseStatementEpic.js +0 -34
  285. package/lib/esm/view/expenseAutomationView/epics/accountRecon/updateStatementInfoEpic.js +0 -42
  286. package/lib/view/expenseAutomationView/epics/accountRecon/parseStatementEpic.d.ts +0 -6
  287. package/lib/view/expenseAutomationView/epics/accountRecon/parseStatementEpic.js +0 -38
  288. package/lib/view/expenseAutomationView/epics/accountRecon/updateStatementInfoEpic.d.ts +0 -19
  289. package/lib/view/expenseAutomationView/epics/accountRecon/updateStatementInfoEpic.js +0 -46
@@ -0,0 +1,101 @@
1
+ import { of } from 'rxjs';
2
+ import { catchError, filter, mergeMap, switchMap, takeUntil, } from 'rxjs/operators';
3
+ import { createZeniAPIStatus, isSuccessStatus } from '../../responsePayload';
4
+ import { updateAiCardPolicyFormDraftFromUploadPlan } from '../../view/spendManagement/chargeCards/cardPolicy/createCardPolicy/createCardPolicyReducer';
5
+ import { updateAiCfoAnswerCardPolicyWizardPlan } from '../aiCfo/aiCfoReducer';
6
+ import { clearPolicyDocumentExtraction, fetchCardPolicyRecommendationFromUpload, updatePolicyRecommendationFromUploadFailure, updatePolicyRecommendationFromUploadSuccess, } from './cardPolicyReducer';
7
+ /**
8
+ * Listens for `fetchCardPolicyRecommendationFromUpload` and POSTs the
9
+ * just-extracted policy rules to the AI-CFO recommendation endpoint.
10
+ *
11
+ * On success — dispatches BOTH:
12
+ * - `updatePolicyRecommendationFromUploadSuccess` (flips the
13
+ * cardPolicy slice's recommendation lifecycle to `Completed`), and
14
+ * - `updateAiCfoAnswerCardPolicyWizardPlan` (patches the in-flight AI
15
+ * CFO answer's `CardPolicyInitialData` so the wizard can advance from
16
+ * Step 1 → Step 2 in the upload variant).
17
+ *
18
+ * The reducer payload originally captured at kickoff (`answerId` +
19
+ * `chatSessionId`) re-enters via the action so the patch can find the
20
+ * right answer to merge into.
21
+ */
22
+ export const policyRecommendationFromUploadEpic = (actions$, _state$, zeniAPI) => actions$.pipe(filter(fetchCardPolicyRecommendationFromUpload.match),
23
+ // `switchMap` (vs `mergeMap`) cancels any in-flight recommendation
24
+ // whenever a new upload kicks off another one. Without this an older,
25
+ // slower recommendation response could still resolve after a fresh
26
+ // extract has started — that late response would dispatch
27
+ // `updateAiCfoAnswerCardPolicyWizardPlan` against the *current*
28
+ // `answerId`/`chatSessionId` (the ones captured at its kickoff) and
29
+ // overwrite the wizard plan with stale draft policies from the prior
30
+ // document. Pairs with the matching `switchMap` in
31
+ // `extractPolicyDocumentEpic`.
32
+ switchMap((action) => {
33
+ const { answerId, chatSessionId, extractedRules } = action.payload;
34
+ const body = {
35
+ extracted_rules: {
36
+ allowed_entity: {
37
+ category_codes: extractedRules.allowedEntity.categoryCodes,
38
+ merchant_names: extractedRules.allowedEntity.merchantNames,
39
+ },
40
+ blocked_entity: {
41
+ category_codes: extractedRules.blockedEntity.categoryCodes,
42
+ merchant_names: extractedRules.blockedEntity.merchantNames,
43
+ },
44
+ confidence_score: extractedRules.confidenceScore,
45
+ policy_name: extractedRules.policyName,
46
+ required_receipt_threshold: extractedRules.requiredReceiptThreshold,
47
+ transaction_limit: extractedRules.transactionLimit,
48
+ },
49
+ };
50
+ return zeniAPI
51
+ .postAndGetJSON(`${zeniAPI.apiEndPoints.cardMicroServiceBaseUrl}/1.0/ai-cfo/policy-recommendation-from-upload`, body)
52
+ .pipe(mergeMap((response) => {
53
+ if (!isSuccessStatus(response) ||
54
+ response.data?.wizard_plan?.step_5_review == null) {
55
+ return of(updatePolicyRecommendationFromUploadFailure(response.status));
56
+ }
57
+ const data = response.data;
58
+ const review = data.wizard_plan.step_5_review;
59
+ const wizardPlan = {
60
+ step5Review: {
61
+ draftPolicies: (review.draft_policies ?? []).map((draft, index) => ({
62
+ id: `draft-${index}`,
63
+ name: draft.name,
64
+ description: draft.description ?? '',
65
+ mode: draft.mode,
66
+ allowedEntity: {
67
+ categoryCodes: draft.allowed_entity?.category_codes ?? [],
68
+ merchantNames: draft.allowed_entity?.merchant_names ?? [],
69
+ },
70
+ blockedEntity: {
71
+ categoryCodes: draft.blocked_entity?.category_codes ?? [],
72
+ merchantNames: draft.blocked_entity?.merchant_names ?? [],
73
+ },
74
+ applyToCards: draft.apply_to_cards ?? [],
75
+ requiredReceiptThreshold: draft.required_receipt_threshold ?? 0,
76
+ spendLimits: {
77
+ transaction: draft.spend_limits?.transaction ?? 0,
78
+ },
79
+ })),
80
+ groupingSource: review.grouping_source ?? 'none',
81
+ prompt: review.prompt ?? '',
82
+ },
83
+ };
84
+ const source = data.source != null
85
+ ? {
86
+ confidenceScore: data.source.confidence_score,
87
+ fileName: data.source.file_name,
88
+ lowConfidenceFields: data.source.low_confidence_fields ?? [],
89
+ }
90
+ : undefined;
91
+ return of(updatePolicyRecommendationFromUploadSuccess(), updateAiCfoAnswerCardPolicyWizardPlan({
92
+ answerId,
93
+ chatSessionId,
94
+ wizardPlan,
95
+ source,
96
+ }), updateAiCardPolicyFormDraftFromUploadPlan(wizardPlan, source));
97
+ }), catchError((error) => of(updatePolicyRecommendationFromUploadFailure(createZeniAPIStatus('Unexpected Error', 'Policy recommendation from upload REST API call errored out' +
98
+ JSON.stringify(error))))),
99
+ // Guards the user-dismissed case that switchMap doesn't cover: a late response would patch a wizard plan the user already cleared.
100
+ takeUntil(actions$.pipe(filter(clearPolicyDocumentExtraction.match))));
101
+ }));
@@ -328,7 +328,11 @@ const toCompanyOnboardingInfo = (payload) => ({
328
328
  onboardingUserIds: payload.onboarding_user_ids,
329
329
  isSubsidiary: payload.is_subsidiary,
330
330
  parentCompanyId: payload.parent_company_id != null ? payload.parent_company_id : undefined,
331
+ isOnboardingAiFinanceTeamAcknowledged: payload.is_onboarding_ai_finance_team_acknowledged ?? false,
332
+ isOnboardingAiActivationViewed: payload.is_onboarding_ai_activation_viewed ?? false,
331
333
  isOnboardingCompanyDetailsCompleted: payload.is_onboarding_company_details_step_completed,
334
+ onboardingAiFinanceTeamAcknowledgedBy: payload.onboarding_ai_finance_team_acknowledged_by ?? [],
335
+ onboardingAiActivationViewedBy: payload.onboarding_ai_activation_viewed_by ?? [],
332
336
  onboardingInfo: toOnboardingInfo(payload.onboarding_info),
333
337
  isOnboardingCompleted: payload.is_onboarding_completed,
334
338
  subscriptionBillingAddressId: payload.subscription_billing_address_id,
@@ -11,12 +11,6 @@ const toMonthCloseCheckMetrics = (metrics) => {
11
11
  value: metric.value,
12
12
  }));
13
13
  };
14
- const toProgressJson = (json) => ({
15
- successfullyConnectedBankAccounts: json.successfully_connected_bank_accounts,
16
- successfullyReconciledBankAccounts: json.successfully_reconciled_bank_accounts,
17
- timeSavedPercentage: json.time_saved_percentage,
18
- totalBankAccounts: json.total_bank_accounts,
19
- });
20
14
  const toMonthEndCloseCheck = (monthCloseCheck) => {
21
15
  return {
22
16
  id: toExpenseAutomationViewType(monthCloseCheck.month_close_check_type),
@@ -25,9 +19,6 @@ const toMonthEndCloseCheck = (monthCloseCheck) => {
25
19
  frequency: toMonthEndCloseCheckFrequency(monthCloseCheck.action_frequency),
26
20
  progress: monthCloseCheck.progress_percentage,
27
21
  progressAI: monthCloseCheck.progress_percentage_ai ?? 0,
28
- progressJson: monthCloseCheck.progress_json
29
- ? toProgressJson(monthCloseCheck.progress_json)
30
- : undefined,
31
22
  sequence: monthCloseCheck.sequence,
32
23
  isDisabled: toExpenseAutomationViewType(monthCloseCheck.month_close_check_type) ===
33
24
  'month_end_insights',
@@ -19,3 +19,6 @@ export function getPaymentAccountsByBankAccountIds(paymentAccountState, bankAcco
19
19
  .filter((value) => value != null);
20
20
  return paymentAccounts;
21
21
  }
22
+ export function getPlaidPaymentAccounts(paymentAccountState) {
23
+ return values(paymentAccountState.paymentAccountByID).filter((account) => account.provider === 'plaid');
24
+ }
@@ -95,6 +95,9 @@ const ALL_SNACKBAR_MESSAGE_SECTIONS = [
95
95
  'charge_card_receipt_upload',
96
96
  'charge_card_resend_invite',
97
97
  'charge_card_revoke_invite',
98
+ 'card_policy_created',
99
+ 'card_policy_updated',
100
+ 'card_policy_deleted',
98
101
  'charge_card_update_limit',
99
102
  'charge_cards_update_limit',
100
103
  'close_charge_card',
@@ -97,6 +97,9 @@ import { clearInternationalWire } from '../../view/spendManagement/billPay/inter
97
97
  import { clearInternationalVerificationView } from '../../view/spendManagement/billPay/internationalWireVerification/internationalWireVerificationReducer';
98
98
  import { clearPreviousBills } from '../../view/spendManagement/billPay/previousBills/previousBillsReducer';
99
99
  import { clearWiseRedirectStatus } from '../../view/spendManagement/billPay/wiseRedirectView/wiseRedirectReducer';
100
+ import { clearCardPolicyDetail } from '../../view/spendManagement/chargeCards/cardPolicy/cardPolicyDetail/cardPolicyDetailReducer';
101
+ import { clearCardPolicyList } from '../../view/spendManagement/chargeCards/cardPolicy/cardPolicyList/cardPolicyListReducer';
102
+ import { clearCreateCardPolicy } from '../../view/spendManagement/chargeCards/cardPolicy/createCardPolicy/createCardPolicyReducer';
100
103
  import { clearCardUserOnboarding } from '../../view/spendManagement/chargeCards/cardUserOnboarding/cardUserOnboardingReducer';
101
104
  import { clearCashbackDetail } from '../../view/spendManagement/chargeCards/cashbackDetail/cashbackDetailReducer';
102
105
  import { clearChargeCardConfig } from '../../view/spendManagement/chargeCards/chargeCardConfig/chargeCardConfigReducer';
@@ -168,6 +171,7 @@ import { clearAllBillTransactions } from '../billPay/billTransaction/billTransac
168
171
  import { clearContacts } from '../billPay/contact/contactReducer';
169
172
  import { clearAllRecurringBills } from '../billPay/recurringBills/recurringBillsReducer';
170
173
  import { clearAllCardPayments } from '../cardPayment/cardPaymentReducer';
174
+ import { clearCardPolicy } from '../cardPolicy/cardPolicyReducer';
171
175
  import { clearAllChargeCards } from '../chargeCard/chargeCardReducer';
172
176
  import { clearAllChargeCardRepayments } from '../chargeCardRepayment/chargeCardRepaymentReducer';
173
177
  import { clearAllChargeCardTransactions } from '../chargeCardTransaction/chargeCardTransactionReducer';
@@ -244,6 +248,8 @@ export const clearAllEpic = (actions$) => actions$.pipe(filter(clearAll.match),
244
248
  clearBillPaySetupView(),
245
249
  clearCardBalance(),
246
250
  clearCardPaymentView(),
251
+ clearCardPolicyDetail(),
252
+ clearCardPolicyList(),
247
253
  clearCardUserOnboarding(),
248
254
  clearCashbackDetail(),
249
255
  clearCashBalance(),
@@ -263,6 +269,7 @@ export const clearAllEpic = (actions$) => actions$.pipe(filter(clearAll.match),
263
269
  clearCompanyMonthEndReportView(),
264
270
  clearCompanyTaskManagerView(),
265
271
  clearCompanyView(),
272
+ clearCreateCardPolicy(),
266
273
  clearCreateTransferEntry(),
267
274
  clearAllCreditAgent(),
268
275
  clearCreditAgentView(),
@@ -424,6 +431,7 @@ export const clearAllEpic = (actions$) => actions$.pipe(filter(clearAll.match),
424
431
  clearAllVendorExpenseTrends(),
425
432
  clearAllVendors(),
426
433
  clearCannedResponses(),
434
+ clearCardPolicy(),
427
435
  clearClassList(),
428
436
  clearContacts(),
429
437
  clearCountryList(),
@@ -0,0 +1,50 @@
1
+ import { from } from 'rxjs';
2
+ import { catchError, filter, mergeMap, switchMap } from 'rxjs/operators';
3
+ import { createZeniAPIStatus, isSuccessResponse, } from '../../../responsePayload';
4
+ import { initEmailConnectOAuth, initEmailConnectOAuthFailure, initEmailConnectOAuthSuccess, } from '../tenantReducer';
5
+ const defaultNavigate = (url) => {
6
+ // Production path: full-page redirect. The user's session continues on the
7
+ // provider's consent screen and lands back on this app via auth's HTML
8
+ // callback page (which itself redirects to redirect_after_url with the
9
+ // result encoded as a query param).
10
+ if (typeof window !== 'undefined') {
11
+ window.location.href = url;
12
+ }
13
+ };
14
+ // Backs the new POST /1.0/connectors/email/<provider>/init endpoint on the
15
+ // auth service. The endpoint creates a CSRF state token in the auth NDB
16
+ // store and returns the provider's authorization_url; this epic then drives
17
+ // a full-page redirect so the user lands on Google's / Microsoft's consent
18
+ // screen. After consent the user lands on auth's callback, which writes the
19
+ // resulting tokens through to tenant and redirects the browser back to
20
+ // ``redirectAfterUrl`` with ``?email_connect_result=<json>`` for the
21
+ // integrations page to consume on mount.
22
+ export const initEmailConnectOAuthEpic = (actions$, _state$, zeniAPI,
23
+ // Test seam: callers can override to assert intended URL without actually
24
+ // navigating. Default is full-page redirect via window.location.
25
+ navigate = defaultNavigate) => actions$.pipe(filter(initEmailConnectOAuth.match), switchMap((action) => zeniAPI
26
+ .postAndGetJSON(`${zeniAPI.apiEndPoints.authMicroServiceBaseUrl}/1.0/connectors/email/${action.payload.provider}/init`, { redirect_after_url: action.payload.redirectAfterUrl }, { 'zeni-tenant-id': action.payload.tenantId })
27
+ .pipe(mergeMap((response) => {
28
+ if (isSuccessResponse(response) && response.data != null) {
29
+ // Fire-and-forget side effect — once the browser navigates,
30
+ // any further state we'd dispatch here is irrelevant. We still
31
+ // emit the success action so subscribers (tests, analytics)
32
+ // can observe the URL the epic decided to navigate to.
33
+ navigate(response.data.authorization_url);
34
+ return from([
35
+ initEmailConnectOAuthSuccess(action.payload.tenantId, action.payload.provider, response.data.authorization_url),
36
+ ]);
37
+ }
38
+ const status = response.status ??
39
+ createZeniAPIStatus(`Failed to start ${action.payload.provider} connection. Please try again.`);
40
+ return from([
41
+ initEmailConnectOAuthFailure(action.payload.tenantId, action.payload.provider, status),
42
+ ]);
43
+ }), catchError((error) => {
44
+ const message = error instanceof Error
45
+ ? error.message
46
+ : `Unexpected error starting ${action.payload.provider} connection.`;
47
+ return from([
48
+ initEmailConnectOAuthFailure(action.payload.tenantId, action.payload.provider, createZeniAPIStatus(message)),
49
+ ]);
50
+ }))));
@@ -9,7 +9,7 @@ import { toNumberOfMonthForAverage, toTimeSpanIdForAverage, } from '../../view/n
9
9
  import { date, dateNow } from '../../zeniDayJS';
10
10
  import { toSubscriptionSummary } from '../subscription/subscriptionSummary/subscriptionSummaryReducer';
11
11
  import { getInvitationStatus, getUserRoles, toMasterTOSInfo, toUserReimbursementInfo, } from '../userRole/userRolePayload';
12
- const EXTERNAL_INTEGRATION_TYPES = ['revenue', 'payments'];
12
+ const EXTERNAL_INTEGRATION_TYPES = ['revenue', 'payments', 'email'];
13
13
  export const toExternalIntegrationType = (v) => stringToUnion(v, EXTERNAL_INTEGRATION_TYPES);
14
14
  const EXTERNAL_SUPPORTED_TOOLS = [
15
15
  'chargebee',
@@ -17,6 +17,8 @@ const EXTERNAL_SUPPORTED_TOOLS = [
17
17
  'stripe',
18
18
  'mercury',
19
19
  'paypal',
20
+ 'gmail',
21
+ 'outlook',
20
22
  ];
21
23
  export const toExternalSupportedTool = (v) => stringToUnion(v, EXTERNAL_SUPPORTED_TOOLS);
22
24
  export const initialState = {
@@ -361,6 +363,7 @@ const tenant = createSlice({
361
363
  draft.externalConnectionsByTenant[action.payload.tenantId] = {
362
364
  fetchState: 'In-Progress',
363
365
  accounting: [],
366
+ email: [],
364
367
  payments: [],
365
368
  revenue: [],
366
369
  saveConnectionState: 'Not-Started',
@@ -378,10 +381,11 @@ const tenant = createSlice({
378
381
  return { payload: { tenantId, externalConnections } };
379
382
  },
380
383
  reducer(draft, action) {
381
- const { accounting, payments, revenue } = mapConnectionsPayloadToState(action.payload.externalConnections);
384
+ const { accounting, email, payments, revenue } = mapConnectionsPayloadToState(action.payload.externalConnections);
382
385
  draft.externalConnectionsByTenant[action.payload.tenantId] = {
383
386
  fetchState: 'Completed',
384
387
  accounting,
388
+ email,
385
389
  payments,
386
390
  revenue,
387
391
  saveConnectionState: 'Completed',
@@ -403,6 +407,7 @@ const tenant = createSlice({
403
407
  draft.externalConnectionsByTenant[tenantId] = {
404
408
  fetchState: 'Error',
405
409
  accounting: [],
410
+ email: [],
406
411
  payments: [],
407
412
  revenue: [],
408
413
  saveConnectionState: 'Error',
@@ -616,6 +621,56 @@ const tenant = createSlice({
616
621
  }
617
622
  },
618
623
  },
624
+ // Email-connect (Gmail / Outlook) OAuth init. Distinct from the other
625
+ // connector saves because the FE never sees the access_token — the
626
+ // user-facing redirect lands on the auth service's callback, auth
627
+ // exchanges code → tokens and posts them to tenant, then redirects the
628
+ // browser back to ``redirectAfterUrl`` with ``?email_connect_result=...``.
629
+ // The success action carries the provider's authorization_url so the
630
+ // epic can drive a full-page redirect, mirroring the legacy HubSpot
631
+ // flow in zeni-web-app-ui/IntegrationsScreen.
632
+ initEmailConnectOAuth: {
633
+ prepare(tenantId, provider, redirectAfterUrl) {
634
+ return { payload: { tenantId, provider, redirectAfterUrl } };
635
+ },
636
+ reducer(draft, action) {
637
+ const existing = draft.externalConnectionsByTenant[action.payload.tenantId];
638
+ if (existing != null) {
639
+ // Reuse the per-slug saveConnectorCredentialsStateBySlug bucket so
640
+ // the IntegrationsSettingsPage shows the same loading affordance
641
+ // it already uses for Stripe/Mercury/PayPal connect flows.
642
+ existing.saveConnectorCredentialsStateBySlug[action.payload.provider] = 'In-Progress';
643
+ delete existing.saveConnectorCredentialsErrorBySlug[action.payload.provider];
644
+ }
645
+ },
646
+ },
647
+ initEmailConnectOAuthSuccess: {
648
+ prepare(tenantId, provider, authorizationUrl) {
649
+ return { payload: { tenantId, provider, authorizationUrl } };
650
+ },
651
+ reducer(draft, action) {
652
+ // Intentionally leave state as 'In-Progress' — the epic is about to
653
+ // do a full-page redirect, so any UI state we set here would be
654
+ // overwritten by the navigation anyway. Setting Completed would
655
+ // briefly flash a success state before the redirect, which reads
656
+ // wrong because the connection isn't actually saved yet at this
657
+ // point (it lands after the OAuth round-trip).
658
+ void draft;
659
+ void action;
660
+ },
661
+ },
662
+ initEmailConnectOAuthFailure: {
663
+ prepare(tenantId, provider, status) {
664
+ return { payload: { tenantId, provider, status } };
665
+ },
666
+ reducer(draft, action) {
667
+ const existing = draft.externalConnectionsByTenant[action.payload.tenantId];
668
+ if (existing != null) {
669
+ existing.saveConnectorCredentialsStateBySlug[action.payload.provider] = 'Error';
670
+ existing.saveConnectorCredentialsErrorBySlug[action.payload.provider] = action.payload.status;
671
+ }
672
+ },
673
+ },
619
674
  deleteConnection: {
620
675
  prepare(tenantId, connectionId, connectionType) {
621
676
  return { payload: { tenantId, connectionId, connectionType } };
@@ -815,7 +870,7 @@ const tenant = createSlice({
815
870
  },
816
871
  },
817
872
  });
818
- export const { updateTenants, fetchAllTenants, updateTenantsSuccess, updateTenantsFailure, fetchActiveTenant, updateTenantSuccess, updateTenantFailure, updateCurrentTenant, fetchExcludedResources, updateExcludedResourcesSuccess, updateExcludedResourcesFailure, doSignIn, doMagicLinkSignIn, magicLinkSignInSuccess, magicLinkSignInFailure, sendEmailMagicLinkToUser, sendEmailMagicLinkToUserSuccess, sendEmailMagicLinkToUserFailure, updateSignInState, doSignOut, signOutSuccess, sendSessionHeartbeat, sessionHeartbeatSuccess, sessionHeartbeatFailure, updateLoggedInUser, fetchExternalConnections, saveExternalConnection, saveExternalConnectionSuccess, saveExternalConnectionFailure, fetchExternalConnectionsFailure, fetchExternalConnectionsSuccess, saveAPIKeyConnection, saveAPIKeyConnectionSuccess, saveAPIKeyConnectionFailure, saveOAuthConnection, saveOAuthConnectionSuccess, saveOAuthConnectionFailure, saveConnectorCredentials, saveConnectorCredentialsSuccess, saveConnectorCredentialsFailure, deleteConnection, deleteConnectionSuccess, deleteConnectionFailure, clearAll, fetchSubscriptionSummaryForTenant, updateSubscriptionSummaryForTenantSuccess, updateSubscriptionSummaryForTenantFailure, updateOnboardingTenants, removeOnboardingTenant, updateTenantReimbursementInfo, updateReferViewedForLoggedInUser, resetSignInState, trigger2FA, updateTenantAccountingClassesEnabled, updateTenantCapitalizationOnboardingDismissed, updateTenantCapitalizationThreshold, updateTenantMasterTOSInfo, verifyDeviceWithTwoFA, verifyDeviceWithTwoFASuccess, verifyDeviceWithTwoFAFailure, updateTreasuryVideoViewedForLoggedInUser, updateTreasuryPromoRemindMeLaterClickedForLoggedInUser, updateTreasuryPromoIntroClosedByOutsideClickForLoggedInUser, resendVerifyDeviceOTP, resendVerifyDeviceOTPSuccess, resendVerifyDeviceOTPFailure, } = tenant.actions;
873
+ export const { updateTenants, fetchAllTenants, updateTenantsSuccess, updateTenantsFailure, fetchActiveTenant, updateTenantSuccess, updateTenantFailure, updateCurrentTenant, fetchExcludedResources, updateExcludedResourcesSuccess, updateExcludedResourcesFailure, doSignIn, doMagicLinkSignIn, magicLinkSignInSuccess, magicLinkSignInFailure, sendEmailMagicLinkToUser, sendEmailMagicLinkToUserSuccess, sendEmailMagicLinkToUserFailure, updateSignInState, doSignOut, signOutSuccess, sendSessionHeartbeat, sessionHeartbeatSuccess, sessionHeartbeatFailure, updateLoggedInUser, fetchExternalConnections, saveExternalConnection, saveExternalConnectionSuccess, saveExternalConnectionFailure, fetchExternalConnectionsFailure, fetchExternalConnectionsSuccess, saveAPIKeyConnection, saveAPIKeyConnectionSuccess, saveAPIKeyConnectionFailure, saveOAuthConnection, saveOAuthConnectionSuccess, saveOAuthConnectionFailure, saveConnectorCredentials, saveConnectorCredentialsSuccess, saveConnectorCredentialsFailure, initEmailConnectOAuth, initEmailConnectOAuthSuccess, initEmailConnectOAuthFailure, deleteConnection, deleteConnectionSuccess, deleteConnectionFailure, clearAll, fetchSubscriptionSummaryForTenant, updateSubscriptionSummaryForTenantSuccess, updateSubscriptionSummaryForTenantFailure, updateOnboardingTenants, removeOnboardingTenant, updateTenantReimbursementInfo, updateReferViewedForLoggedInUser, resetSignInState, trigger2FA, updateTenantAccountingClassesEnabled, updateTenantCapitalizationOnboardingDismissed, updateTenantCapitalizationThreshold, updateTenantMasterTOSInfo, verifyDeviceWithTwoFA, verifyDeviceWithTwoFASuccess, verifyDeviceWithTwoFAFailure, updateTreasuryVideoViewedForLoggedInUser, updateTreasuryPromoRemindMeLaterClickedForLoggedInUser, updateTreasuryPromoIntroClosedByOutsideClickForLoggedInUser, resendVerifyDeviceOTP, resendVerifyDeviceOTPSuccess, resendVerifyDeviceOTPFailure, } = tenant.actions;
819
874
  export default tenant.reducer;
820
875
  /**
821
876
  * Applies treasury promo user fields from the tenants API user block when present.
@@ -994,6 +1049,11 @@ export function mapConnectionsPayloadToState(connectionsPayload) {
994
1049
  const { connections } = connectionsPayload;
995
1050
  return {
996
1051
  accounting: connections.accounting.map((payload) => toConnection(payload)),
1052
+ // Tenant materializes gmail/outlook under the `email` bucket via
1053
+ // _THIRD_PARTY_CONNECTORS_TO_MATERIALIZE when their slugs are enabled in
1054
+ // third_party_enabled_connectors Statsig config. Default to [] so older
1055
+ // tenant deploys (or disabled-everywhere envs) don't blow up here.
1056
+ email: (connections.email ?? []).map((payload) => toConnection(payload)),
997
1057
  payments: connections.payments.map((payload) => toConnection(payload)),
998
1058
  revenue: (connections.revenue ?? []).map((payload) => toConnection(payload)),
999
1059
  };
package/lib/esm/epic.js CHANGED
@@ -1,6 +1,10 @@
1
1
  import { combineEpics } from 'redux-observable';
2
2
  import { identity } from 'rxjs';
3
3
  import { catchError, map } from 'rxjs/operators';
4
+ import { extractPolicyDocumentEpic, } from './entity/cardPolicy/extractPolicyDocumentEpic';
5
+ import { fetchCardPolicyVendorOptionsEpic, } from './entity/cardPolicy/fetchCardPolicyVendorOptionsEpic';
6
+ import { policyDocumentExtractionToRecommendationBridgeEpic, } from './entity/cardPolicy/policyDocumentExtractionToRecommendationBridgeEpic';
7
+ import { policyRecommendationFromUploadEpic, } from './entity/cardPolicy/policyRecommendationFromUploadEpic';
4
8
  import { updateAccruedJESchedulesEpic, } from './entity/jeSchedules/updateAccruedJESchedulesEpic';
5
9
  import { updateJESchedulesEpic, } from './entity/jeSchedules/updateJESchedulesEpic';
6
10
  import { updateSectionAccountsViewEpic, } from './entity/sectionAccountsView/sectionAccountsViewEpic';
@@ -14,6 +18,7 @@ import { fetchAllTenantsEpic, } from './entity/tenant/epic/fetchAllTenantsEpic';
14
18
  import { fetchExcludedResourcesEpic, } from './entity/tenant/epic/fetchExcludedResourcesEpic';
15
19
  import { fetchExternalConnectionsEpic, } from './entity/tenant/epic/fetchExternalConnectionsEpic';
16
20
  import { fetchSubscriptionSummaryForTenantEpic, } from './entity/tenant/epic/fetchSubscriptionSummaryForTenantEpic';
21
+ import { initEmailConnectOAuthEpic } from './entity/tenant/epic/initEmailConnectOAuthEpic';
17
22
  import { resendVerifyDeviceOTPEpic, } from './entity/tenant/epic/resendVerifyDeviceOTPEpic';
18
23
  import { saveAPIKeyConnectionEpic } from './entity/tenant/epic/saveAPIKeyConnectionEpic';
19
24
  import { saveConnectorCredentialsEpic } from './entity/tenant/epic/saveConnectorCredentialsEpic';
@@ -153,12 +158,10 @@ import { excludeAccountFromReconciliationEpic, } from './view/expenseAutomationV
153
158
  import { fetchReconciliationViewEpic as fetchExpenseAutomationReconciliationsViewEpic, } from './view/expenseAutomationView/epics/accountRecon/fetchReconciliationViewEpic';
154
159
  import { includeAccountInReconciliationEpic, } from './view/expenseAutomationView/epics/accountRecon/includeAccountInReconciliationEpic';
155
160
  import { initialiseDataForSelectedAccountIdEpic as initialiseExpenseAutomationReconciliationLocalDataForSelectedAccountIdEpic, } from './view/expenseAutomationView/epics/accountRecon/initialiseLocalDataForSelectedAccountIdEpic';
156
- import { parseStatementEpic, } from './view/expenseAutomationView/epics/accountRecon/parseStatementEpic';
157
161
  import { saveReconciliationDetailsEpic as saveExpenseAutomationReconciliationDetailsEpic, } from './view/expenseAutomationView/epics/accountRecon/saveReconciliationDetailEpic';
158
162
  import { saveReconciliationReviewEpic as saveExpenseAutomationReconciliationReviewEpic, } from './view/expenseAutomationView/epics/accountRecon/saveReconciliationReviewEpic';
159
163
  import { updateReconcileTabLocalDataEpic as updateExpenseAutomationReconciliationBalanceLocalDataEpic, } from './view/expenseAutomationView/epics/accountRecon/updateReconcileTabLocalDataEpic';
160
164
  import { uploadAccountStatementEpic, } from './view/expenseAutomationView/epics/accountRecon/uploadAccountStatementEpic';
161
- import { updateStatementInfoEpic, } from './view/expenseAutomationView/epics/accountRecon/updateStatementInfoEpic';
162
165
  import { fetchAllExpenseAutomationTabsEpic, } from './view/expenseAutomationView/epics/common/fetchAllExpenseAutomationTabsEpic';
163
166
  import { refreshExpenseAutomationCurrentTabEpic, } from './view/expenseAutomationView/epics/common/refreshExpenseAutomationCurrentTabEpic';
164
167
  import { fetchFluxAnalysisViewEpic as fetchExpenseAutomationFluxAnalysisViewEpic, } from './view/expenseAutomationView/epics/fluxAnalysis/fetchFluxAnalysisViewEpic';
@@ -235,6 +238,9 @@ import { saveOnboardingCustomerNotesEpic, } from './view/onboardingView/cockpitV
235
238
  import { saveOnboardingCustomerViewUpdatesEpic, } from './view/onboardingView/cockpitView/epic/saveOnboardingCustomerViewUpdatesEpic';
236
239
  import { sendOnboardingCustomerViewInviteEpic, } from './view/onboardingView/cockpitView/epic/sendOnboardingCustomerViewInviteEpic';
237
240
  import { updateQBOConnectionPoolExternalConnectionEpic, } from './view/onboardingView/cockpitView/epic/updateQBOConnectionPoolExternalConnectionEpic';
241
+ import { fetchAiAgentsActivationStatusEpic, } from './view/onboardingView/customerView/epic/aiAgentsActivation/fetchAiAgentsActivationStatusEpic';
242
+ import { acknowledgeOnboardingAiActivationViewedEpic, } from './view/onboardingView/customerView/epic/customerDetails/acknowledgeOnboardingAiActivationViewedEpic';
243
+ import { acknowledgeOnboardingAiFinanceTeamEpic, } from './view/onboardingView/customerView/epic/customerDetails/acknowledgeOnboardingAiFinanceTeamEpic';
238
244
  import { fetchOnboardingCustomerSetupViewEpic, } from './view/onboardingView/customerView/epic/customerDetails/fetchOnboardingCustomerSetupViewEpic';
239
245
  import { fetchOnboardingCustomerViewEpic, } from './view/onboardingView/customerView/epic/customerDetails/fetchOnboardingCustomerViewEpic';
240
246
  import { updateOnboardingCustomerViewCompleteStatusEpic, } from './view/onboardingView/customerView/epic/customerDetails/updateOnboardingCustomerViewCompleteStatusEpic';
@@ -383,6 +389,14 @@ import { fetchMagicLinkTenantEpic, } from './view/spendManagement/billPay/magicL
383
389
  import { saveMagicLinkBankAccountEpic, } from './view/spendManagement/billPay/magicLinkView/epics/saveMagicLinkBankAccountEpic';
384
390
  import { fetchPreviousBillsEpic, } from './view/spendManagement/billPay/previousBills/fetchPreviousBillsEpic';
385
391
  import { wiseRedirectEpic, } from './view/spendManagement/billPay/wiseRedirectView/wiseRedirectEpic';
392
+ import { fetchCardPolicyDetailEpic, } from './view/spendManagement/chargeCards/cardPolicy/cardPolicyDetail/fetchCardPolicyDetailEpic';
393
+ import { updateCardPolicyEpic, } from './view/spendManagement/chargeCards/cardPolicy/cardPolicyDetail/updateCardPolicyEpic';
394
+ import { archiveCardPolicyEpic, } from './view/spendManagement/chargeCards/cardPolicy/cardPolicyList/archiveCardPolicyEpic';
395
+ import { fetchCardPolicyListEpic, } from './view/spendManagement/chargeCards/cardPolicy/cardPolicyList/fetchCardPolicyListEpic';
396
+ import { applyExtractedPolicyToDraftEpic, } from './view/spendManagement/chargeCards/cardPolicy/createCardPolicy/applyExtractedPolicyToDraftEpic';
397
+ import { createCardPolicyTemplatesEpic, } from './view/spendManagement/chargeCards/cardPolicy/createCardPolicy/createCardPolicyTemplateEpic';
398
+ import { fetchCardPolicyMccCategoriesEpic, } from './view/spendManagement/chargeCards/cardPolicy/createCardPolicy/fetchCardPolicyMccCategoriesEpic';
399
+ import { seedAiCardPolicyFormDraftEpic, } from './view/spendManagement/chargeCards/cardPolicy/createCardPolicy/seedAiCardPolicyFormDraftEpic';
386
400
  import { initializeCardUserOnboardingLocalDataEpic, } from './view/spendManagement/chargeCards/cardUserOnboarding/epics/initializeCardUserOnboardingLocalDataEpic';
387
401
  import { saveCardOnboardingUserDetailsEpic, } from './view/spendManagement/chargeCards/cardUserOnboarding/epics/saveCardOnboardingUserDetailsEpic';
388
402
  import { fetchCashbackDetailEpic, } from './view/spendManagement/chargeCards/cashbackDetail/fetchCashbackDetailEpic';
@@ -426,8 +440,11 @@ import { fetchChargeCardStatementListEpic, } from './view/spendManagement/charge
426
440
  import { fetchDepositAccountListForCardsEpic, } from './view/spendManagement/chargeCards/issueChargeCard/fetchDepositAccountListForCardsEpic';
427
441
  import { fetchIssueCardPageEpic, } from './view/spendManagement/chargeCards/issueChargeCard/fetchIssueCardPageEpic';
428
442
  import { issueChargeCardEpic, } from './view/spendManagement/chargeCards/issueChargeCard/issueChargeCardEpic';
443
+ import { seedAiCardCreationFormDraftEpic, } from './view/spendManagement/chargeCards/issueChargeCard/seedAiCardCreationFormDraftEpic';
429
444
  import { fetchEntityHistoryEpic, } from './view/spendManagement/commonHistoryView/fetchEntityHistoryEpic';
430
445
  import { enableSetupEpic, } from './view/spendManagement/commonSetup/epic/setup/enableSetupEpic';
446
+ import { parseUploadedKybDocumentEpic, } from './view/spendManagement/commonSetup/epic/setup/parseUploadedKybDocumentEpic';
447
+ import { parseUploadedKycDocumentEpic, } from './view/spendManagement/commonSetup/epic/setup/parseUploadedKycDocumentEpic';
431
448
  import { updateBusinessVerificationDetailsEpic, } from './view/spendManagement/commonSetup/epic/setup/updateBusinessVerificationDetailsEpic';
432
449
  import { updateSetupViewLocalStoreDataEpic, } from './view/spendManagement/commonSetup/epic/setup/updateSetupViewLocalStoreDataEpic';
433
450
  import { fetchMerchantListEpic, } from './view/spendManagement/merchantList/fetchMerchantListEpic';
@@ -590,7 +607,7 @@ import { fetchZeniAccStatementPageEpic, } from './view/zeniAccStatementList/fetc
590
607
  import { fetchZeniAccountsPromoCardEpic, } from './view/zeniAccountsPromoCard/zeniAccountsPromoCardEpic';
591
608
  import { approveOAuthConsentEpic, } from './view/zeniOAuthView/epics/approveOAuthConsentEpic';
592
609
  // Note: Please maintain strict alphabetical order
593
- const combinedEpics = combineEpics(acceptBillPayTermsEpic, acceptBillPayUpdatedTermsEpic, acceptChargeCardTermsEpic, acceptEmployeeRemiTermsEpic, acceptMasterTOSEpic, acceptRemiTermsEpic, acceptTreasuryTermsEpic, acceptZeniAccountTermsEpic, addCardPaymentSourceEpic, approveOAuthConsentEpic, approveOrRejectBillEpic, approveOrRejectBillsBulkActionEpic, approveOrRejectRemiEpic, approveOrRejectRemisBulkActionEpic, approveVendorGlobalReviewEpic, archiveTaskEpic, backgroundRefetchReviewTabEpic, bulkUpdateTaskListEpic, cancelAiAccountantOnboardingEpic, cancelAndDeleteBillEpic, cancelAndDeleteRemiEpic, cancelOrDeleteBillsBulkActionEpic, cancelOrDeleteRemisBulkActionEpic, cancelScheduleAccruedJournalEntryEpic, changeZeniPersonRolesEpic, checkDepositEpic, clearAllEpic, closeChargeCardEpic, closeChargeCardsEpic, companyManagementSavePendingUpdatesEpic, companyManagementSaveUpdatesEpic, confirmCardSetupIntentEpic, convertAmountToHomeCurrencyEpic, createAddressEpic, createAutoTransferRuleEpic, createBankAccountEpic, createCardSetupIntentEpic, createCheckingAccountEpic, createCompanyAddressEpic, createCompanyOfficersEpic, createCompanyUserAddressEpic, createGlobalMerchantEpic, createInternationalBankAccountEpic, createNewSchedulesAccruedEpic, createNewSchedulesEpic, createNewTaskGroupEpic, createPaymentInstrumentEpic, createSessionAndSubmitEpic, createSessionEpic, createTagEpic, createTaskFromTaskGroupTemplateEpic, createTransferEntryEpic, createUserBankAccountEpic, deleteAccountStatementEpic, deleteAutoTransferRuleEpic, excludeAccountFromReconciliationEpic, includeAccountInReconciliationEpic, deleteBankAccountEpic, deleteBillEpic, deleteChatSessionEpic, deleteConnectionEpic, deleteBillPayApprovalRuleEpic, deleteFileEpic, deleteFileListEpic, deleteInternationalBankAccountEpic, deletePaymentInstrumentEpic, deletePersonEpic, deleteRemiApprovalRuleEpic, deleteRemiEpic, deleteScheduleAccruedDetailEpic, deleteScheduleDetailEpic, deleteTagEpic, deleteTaskEpic, snoozeTaskEpic, unsnoozeTaskEpic, deleteTaskGroupEpic, deleteTransactionAttachmentEpic, deleteUserBankAccountEpic, doMagicLinkSignInEpic, doSignInEpic, doSignOutEpic, sendEmailMagicLinkToUserEpic, sessionHeartbeatEpic, verifyDeviceWithTwoFAEpic, downloadAccountingProviderAttachmentEpic, dragNDropTasksEpic, enableChargeCardAutoPayEpic, enableSetupEpic, establishOnboardingPlaidConnectionEpic, establishPlaidConnectionEpic, expressInterestChargeCardEpic, fetchAccountListEpic, fetchAccountListForAccountTypesEpic, fetchAccountSettingsListForAccountTypesEpic, fetchAccruedScheduleListEpic, fetchActiveTenantEpic, fetchAddressEpic, fetchAiAccountantCustomersEpic, fetchAiAccountantJobsEpic, fetchAllCockpitViewsEpic, fetchAllExpenseAutomationTabsEpic, fetchAllPeopleRequiredViewsEpic, fetchAllTagsEpic, fetchAllTaskGroupsEpic, fetchAllTenantsEpic, fetchAndUpdateVendorRecommendationsEpic, fetchAggregatedReportEpic, fetchApAgingDetailEpic, fetchApAgingEpic, fetchArAgingDetailEpic, fetchArAgingEpic, fetchAuditReportGroupViewEpic, fetchAuditRuleGroupViewEpic, fetchAutoTransferReviewDetailEpic, fetchAutoTransferRuleHistoryEpic, fetchAutoTransferRulesEpic, fetchBalanceSheetEpic, fetchBalanceSheetForTimeframeEpic, fetchBankAccountsListEpic, fetchBankConnectionsViewEpic, fetchBankCountryNameByIbanEpic, fetchBankNameByRoutingEpic, fetchBankNameBySwiftEpic, fetchBillAndInitializeLocalStoreEpic, fetchBillDetailEpic, fetchBillingAccountsListEpic, fetchBillListEpic, fetchBillListPerTabEpic, fetchBillPayApproversDetailsEpic, fetchBillPayApproversListEpic, fetchBillPayCardEpic, fetchBillPayConfigEpic, fetchBillPaySetupApproverViewEpic, fetchBillPaySetupViewEpic, fetchCardBalanceEpic, fetchCardProfilesEpic, fetchCashbackDetailEpic, fetchCashBalanceEpic, fetchCashFlowEpic, fetchCashFlowForTimeframeEpic, fetchCashInCashOutEpic, fetchCashPositionEpic, fetchChargeCardConfigEpic, fetchChargeCardDetailEpic, fetchChargeCardDetailPageEpic, fetchChargeCardListEpic, fetchChargeCardListPageEpic, fetchChargeCardPaymentPageEpic, fetchChargeCardRepaymentDetailEpic, fetchChargeCardPaymentHistoryEpic, fetchChargeCardSetupViewEpic, fetchChargeCardStatementListEpic, fetchChargeCardTransactionAttachmentsEpic, fetchChargeCardTransactionListEpic, fetchChargeCardTransactionStatisticsEpic, fetchChargeCardsRecurringExpensesEpic, fetchChatHistoryEpic, fetchChatSessionsForUserEpic, fetchClassListEpic, fetchCollaborationAuthTokenEpic, fetchCockpitContextEpic, fetchCompanyBillingAddressEpic, fetchCompanyConfigEpic, fetchCompanyHealthMetricConfigEpic, fetchCompanyHealthMetricViewEpic, fetchCompanyManagementViewEpic, fetchCompanyMetaDataEpic, fetchCompanyMonthEndReportHistoricDataEpic, fetchCompanyMonthEndReportHistoricDatesEpic, fetchCompanyMonthEndReportTemplatesEpic, fetchCompanyMonthEndReportViewEpic, fetchCompanyOnboardingViewEpic, fetchCompanyPassportViewEpic, fetchCompanyPortfolioViewEpic, fetchCompanyTaskManagerViewEpic, fetchTaskManagerMetricsEpic, updateCompanyTaskManagerViewFiltersEpic, fetchCreditAccountEpic, fetchCreditAccountRepaymentEpic, fetchCreditAgentMacroEpic, fetchCurrencyConversionValueEpic, fetchDashboardEpic, fetchDashboardLayoutEpic, fetchDebitCardSummaryEpic, fetchDepositAccountDetailEpic, fetchDepositAccountEpic, fetchDepositAccountHistoryEpic, fetchDepositAccountLimitEpic, fetchDepositAccountListEpic, fetchDepositAccountListForCardsEpic, fetchDepositAccountTransactionListEpic, fetchDownloadSchedulesEpic, fetchDuplicateBillPayReviewEpic, fetchDuplicateReimbursementEpic, fetchEditBillDetailPageEpic, fetchEditRemiDetailPageEpic, fetchEligibleActionsForBillEpic, fetchEntityAutoCompleteEpic, fetchEntityHistoryEpic, fetchEntityRecommendationsByTransactionIdEpic, fetchEntityRecommendationsForLineUpdateEpic, fetchExcludedResourcesEpic, fetchExpenseAutomationFluxAnalysisViewEpic, fetchExpenseAutomationInitializeTransactionCategorizationViewLocalDataEpic, fetchExpenseAutomationJeSchedulesEpic, fetchExpenseAutomationJESchedulesPageEpic, fetchExpenseAutomationMarkTransactionAsNotMiscategorizedEpic, fetchExpenseAutomationMissingReceiptsEpic, bulkUploadReceiptsEpic, confirmBulkUploadMatchEpic, fetchBulkUploadBatchDetailsEpic, fetchMultipleBatchDetailsEpic, fetchMoreBatchDetailsEpic, fetchBulkUploadBatchesEpic, fetchCompletedTransactionsEpic, refetchCompletedTransactionsOnBulkUploadSortEpic, refreshBatchDetailsForBatchIdEpic, bulkUploadAutomatchingTimeoutEpic, bulkUploadMatchResultToastEpic, syncTabsAfterAutomatchEpic, pollBulkUploadBatchStatusEpic, pusherBatchStatusCompletionEpic, restoreBulkUploadAutomatchingOnMountEpic, searchTransactionsForManualMatchEpic, fetchExpenseAutomationReconciliationsViewEpic, fetchExpenseAutomationSaveTransactionCategorizationEpic, fetchExpenseAutomationTransactionCategorizationEpic, fetchExpenseAutomationTransactionCategorizationViewEpic, fetchExpenseAutomationUpdateTransactionCategorizationEpic, fetchExpenseTrendEpic, fetchExpressPayInitialDetailsEpic, fetchExternalConnectionsEpic, fetchFileEpic, fetchFileListEpic, fetchFinanceStatementEpic, fetchForecastListEpic, initiateReportsClassViewRefetchingEpic, reportsResyncEpic, fetchGlobalMerchantAutoCompleteViewEpic, fetchGlobalMerchantRecommendationEpic, fetchIncomeTrendEpic, fetchInsightsCardEpic, fetchInternationalWireDynamicFormEpic, fetchIntlVerificationFormEpic, fetchIssueCardPageEpic, fetchMagicLinkBankNameByRoutingEpic, fetchMagicLinkBankNameBySwiftEpic, fetchMagicLinkBillEpic, fetchMagicLinkTenantEpic, fetchManagementViewEpic, fetchMerchantListEpic, fetchMonthClosePerformanceTrendEpic, fetchMonthEndCloseChecksEpic, fetchMyProfileEpic, fetchMyProfileViewEpic, fetchNetBurnOrIncomeClassesViewEpic, fetchNetBurnOrIncomeEpic, fetchNetBurnOrIncomeForTimeframeClassesViewEpic, fetchNetBurnOrIncomeForTimeframeEpic, fetchNetBurnOrIncomeStoryCardEpic, fetchNetBurnOrIncomeWithForecastEpic, fetchNotificationSettingsEpic, fetchNotificationSettingsViewEpic, fetchNotificationUnreadCountEpic, fetchNotificationViewEpic, fetchRegisteredInterestsEpic, fetchOnboardingCompletedCompaniesEpic, fetchOnboardingCustomerSetupViewEpic, fetchOnboardingCustomerViewEpic, fetchOnboardingViewEpic, fetchOpExByVendorEpic, fetchOpExByVendorReportForTimeframeEpic, fetchOpExByVendorReportSummaryEpic, fetchOpExClassesViewEpic, fetchOpExEpic, fetchOpExForTimeframeClassesViewEpic, fetchOpExReportForTimeframeEpic, fetchOpExWithForecastEpic, fetchOwnerListEpic, fetchParentSubsidiaryManagementViewEpic, fetchPaymentAccountBalanceEpic, fetchPaymentAccountListEpic, fetchPaymentSourcesEpic, fetchPeopleEpic, fetchPeoplePageEpic, fetchPortfolioViewEpic, fetchPreviousBillsEpic, fetchProfitAndLossClassesViewEpic, fetchProfitAndLossEpic, fetchProfitAndLossForTimeframeClassesViewEpic, fetchProfitAndLossForTimeframeProjectViewEpic, fetchProfitAndLossForTimeframeEpic, fetchProfitAndLossProjectViewEpic, fetchProjectListEpic, fetchQBOConnectionPoolEpic, fetchRecommendationByEntityIdEpic, fetchRecommendationByEntityNameEpic, fetchRecommendationForAccountSettingsEpic, fetchRecommendationForAccountTypeEpic, fetchRecommendationsAndUpdateMerchantRecommendationsEpic, fetchRecommendedTransactionRowIndexEpic, fetchReferralsEpic, fetchReimbursementCardEpic, fetchReimbursementConfigEpic, fetchRemiAndInitializeLocalStoreEpic, fetchRemiApproversDetailsEpic, fetchRemiApproversListEpic, fetchRemiDetailEpic, fetchRemiListEpic, fetchRemiListPerTabEpic, fetchRemiSetupApproverViewEpic, fetchRemiSetupViewEpic, fetchRevenueClassesViewEpic, fetchRevenueEpic, fetchRevenueForTimeframeClassesViewEpic, fetchRevenueForTimeframeEpic, fetchRevenueWithForecastEpic, fetchReviewCompanyViewEpic, fetchReviewTransferDetailEpic, fetchRewardsPlanEpic, fetchScheduleAccruedDetailsEpic, fetchScheduleAccruedDetailsPageEpic, fetchScheduleDetailsEpic, fetchScheduleDetailsPageEpic, fetchScheduleListEpic, fetchSchedulesAccountEpic, fetchSubscriptionAddOnsEpic, fetchSubscriptionCouponsEpic, fetchSubscriptionCreateEstimateEpic, fetchSubscriptionDetailsEpic, fetchSubscriptionListEpic, fetchSubscriptionPlansEpic, fetchSubscriptionSummaryForTenantEpic, fetchSubscriptionUpdateEstimateEpic, fetchSubscriptionViewEpic, fetchSuggestedQuestionsEpic, fetchTaskDetailEpic, fetchTaskDetailPageEpic, fetchTaskGroupTemplatesEpic, fetchTaskHistoryEpic, fetchTaskListEpic, fetchTaskListPageEpic, fetchTasksCardEpic, fetchTopExEpic, fetchTransactionActivityLogEpic, fetchTransactionDetailEpic, fetchTransactionListByAccountEpic, fetchTransactionListByClassEpic, fetchTransactionListByProjectEpic, fetchTransactionListByEntityEpic, fetchTransactionsForEntityEpic, fetchTransactionsListByCategoryTypeEpic, fetchTransferAccountsEpic, fetchTreasuryDetailEpic, fetchTreasuryFundsEpic, fetchTreasuryHistoryEpic, fetchTreasurySetupViewEpic, fetchTreasuryStatementListEpic, fetchTreasuryTaxLetterListEpic, fetchTreasuryTransactionListEpic, updatePortfolioAllocationEpic, fetchPortfolioAllocationEpic, fetchTrendForEntityEpic, fetchUserDetailEpic, fetchUserFinancialAccountEpic, fetchUserListByTypeEpic, fetchUserRoleConfigEpic, fetchVendor1099TypeListEpic, fetchVendorAndUpdateBillLocalDataEpic, fetchVendorByNameAndParseInvoiceEpic, fetchVendorDetailsEpic, fetchVendorEpic, fetchVendorFirstReviewAttachmentsEpic, fetchVendorFirstReviewViewEpic, fetchVendorGlobalReviewViewEpic, fetchVendorsFiling1099AllEpic, fetchVendorsFiling1099DownloadEpic, fetchVendorsFiling1099ListEpic, fetchVendorsListEpic, fetchVendorsTabVendorDetailPageViewEpic, fetchVendorsTabVendorDetailsEpic, fetchVendorsTabVendorEpic, fetchVendorTabViewEpic, fetchVendorTypeListEpic, fetchZeniAccountListEpic, fetchZeniAccountsConfigEpic, fetchZeniAccountSetupViewEpic, fetchZeniAccountsPromoCardEpic, fetchZeniAccStatementListEpic, fetchZeniAccStatementPageEpic, fetchZeniUsersEpic, getOnboardingEmailGroupEpic, getOnboardingPlaidLinkTokenEpic, getPaymentAccountsEpic, getPlaidLinkTokenEpic, ignoreExpenseAutomationJEScheduleEpic, improveUsingZeniGPTEpic, initialiseExpenseAutomationReconciliationLocalDataForSelectedAccountIdEpic, initializeAccountMappingViewEpic, initializeAccountSettingsViewEpic, initializeBillPaySetupApproverViewUpdateDataEpic, initializeBillToLocalStoreEpic, initializeCardUserOnboardingLocalDataEpic, initializeCompanyHealthMetricViewLocalDataEpic, initializeDynamicFormEpic, initializeEditPersonEpic, initializeExpenseAutomationJeScheduleLocalDataEpic, initializeInternationalWireLocalDataEpic, initializeIntlVerificationFormEpic, initializeMyProfileLocalDataEpic, initializeOnboardingCustomerViewUpdateDataEpic, initializeRemiSetupApproverViewUpdateDataEpic, initializeRemiToLocalStoreEpic, initializeScheduleAccruedDetailLocalDataEpic, initializeScheduleDetailLocalDataEpic, initializeSubscriptionLocalDataEpic, initializeTaskToLocalStoreEpic, initializeTransactionDetailLocalDataEpic, initializeVendorAddressEpic, initiateChargeCardRepaymentEpic, invitePeopleEpic, inviteZeniPeopleEpic, issueChargeCardEpic, lockChargeCardEpic, lockChargeCardsEpic, markAsCompleteScheduleDetailEpic, markTransactionAsNotMiscategorizedEpic, notifyMeForFeatureEpic, parallelFetchAccountTransactionListEpic, parallelFetchClassTransactionListEpic, parallelFetchProjectTransactionListEpic, parallelFetchEntityTransactionListEpic, parallelFetchTransactionListByCategoryTypeEpic, parseInvoiceToBillEpic, parseReceiptsToRemiEpic, peopleSaveUpdatesEpic, pushToastNotificationEpic, refreshExpenseAutomationCurrentTabEpic, refreshIntegrationsDataEpic, rejectVendorGlobalReviewEpic, resendCardInviteEpic, resendInviteEpic, resendOtpEpic, resendVerifyDeviceOTPEpic, resendReferralInviteEpic, resetTransactionVendorLocalDataEpic, resetVendorDetailLocalDataEpic, resetVendorsTabVendorDetailLocalDataEpic, retryBankAccountConnectionEpic, retryBankAccountConnectionForOnboardingEpic, retryExpenseAutomationJEScheduleEpic, retryOrRefundBillEpic, validateBillsBulkActionEpic, reviewDraftRemisBulkActionEpic, reviewExpenseAutomationFluxAnalysisViewEpic, revokeCardInviteEpic, revokeChargeCardsInviteEpic, saveAccountMappingViewEpic, saveAccountSettingsViewEpic, saveAPIKeyConnectionEpic, saveBillDetailEpic, saveBillPaySetupApproverViewUpdatesEpic, saveCardOnboardingUserDetailsEpic, saveCompanyBillingAddressEpic, saveCompanyHealthMetricByIdEpic, saveCompanyMonthEndReportEpic, saveCompanyPassportDetailsEpic, saveConnectorCredentialsEpic, saveCreditAgentMacroEpic, saveExpenseAutomationReconciliationDetailsEpic, saveExpenseAutomationReconciliationReviewEpic, saveExternalConnectionEpic, saveMagicLinkBankAccountEpic, saveNewAddressEpic, saveNotificationSettingsEpic, saveOAuthConnectionEpic, saveOnboardingCustomerCompletedStatusEpic, saveOnboardingCustomerNotesEpic, saveOnboardingCustomerViewUpdatesEpic, saveRealTimeApprovalEpic, saveReasonForAuditRuleEpic, saveRemiDetailEpic, saveRemiSetupApproverViewUpdatesEpic, saveScheduleAccruedDetailsEpic, saveScheduleDetailsEpic, saveSubscriptionNotesUpdatesEpic, saveSubscriptionUpdatesEpic, saveTaskDetailEpic, saveTransactionDetailEpic, saveTransactionVendorEpic, saveVendorDetailsViewEpic, saveVendorEpic, saveVendorFirstReviewViewEpic, saveVendorsTabVendorEpic, scheduleTenantCreditScoreCronEpic, sendCompanyMonthEndReportEpic, sendOnboardingCustomerViewInviteEpic, sendOtpEpic, sendReferralInviteEpic, statementCloseDayEpic, stopSubmitEpic, stopSubmitQuestionEpic, submitDraftBillsBulkActionEpic, submitDraftRemisBulkActionEpic, submitExpressPayEpic, submitIntlVerificationEpic, submitQuestionEpic, toggleReportUIOptionForecastModeEpic, transferMoneyEpic, treasuryTransferMoneyEpic, triggerAiAccountantJobEpic, triggerReviewTabRefetchEpic, unlinkPaymentAccountEpic, unlockChargeCardEpic, unlockChargeCardsEpic, updateAccruedJESchedulesEpic, updateAddressEpic, updateAmountsInScheduleAccruedDetailEpic, updateAmountsInScheduleDetailEpic, updateAutoTransferRuleEpic, updateBusinessVerificationDetailsEpic, updateCardProfileEpic, updateChargeCardDetailEpic, updateChargeCardLimitEpic, updateChargeCardNameEpic, updateChargeCardsLimitEpic, updateAccountingClassesEnabledEpic, dismissCapitalizationOnboardingEpic, updateCapitalizationThresholdEpic, updateCompanyDetailsEpic, updateCompanyOfficerEpic, updateCompanyPassportLocalStoreDataEpic, updateDashboardLayoutEpic, updateDebitCardPinAttemptEpic, updateDepositAccountEpic, updateExpenseAutomationReconciliationBalanceLocalDataEpic, updateFileNameEpic, updateFilesMetadataEpic, updateJESchedulesEpic, updateMappedCashAccountEpic, updateMileageDetailsEpic, updateMyProfileEpic, updateNetBurnOrIncomeStoryCardSettingsEpic, updateNotificationViewAllNotificationsStatusEpic, updateNotificationViewNotificationStatusEpic, updateOnboardingCustomerViewCompleteStatusEpic, updateOnboardingCustomerViewDashboardLoadedEpic, updateOnboardingCustomerViewEpic, updateOnboardingCustomerViewLocalStoreDataEpic, updateOnboardingPaymentAccountLoginStatusEpic, updateOnboardingPaymentAccountStatusEpic, updatePaymentAccountEpic, updatePaymentAccountLoginStatusEpic, updatePaymentAccountStatusEpic, updatePhysicalChargeCardAttemptEpic, updatePrimaryContactEpic, updatePrimaryFundingAccountEpic, updateQBOConnectionPoolExternalConnectionEpic, updateReferViewedEpic, updateRemiSetupViewLocalStoreDataEpic, updateReportUIOptionCOABalancesRangeEpic, updateReportUIOptionIsCompareModeEpic, updateReportUIOptionIsCompareModeOnEpic, updateReportUIOptionThisPeriodEpic, updateReportUIOptionTimeFrameEpic, updateSectionAccountsViewEpic, updateSectionClassesViewEpicV2, updateSectionProjectViewEpic, updateSelectedVendorForCreateFlowEpic, updateSetupViewLocalStoreDataEpic, updateTaskFromListViewEpic, updateTaskGroupNameEpic, fetchCannedResponsesEpic, saveCannedResponseEpic, deleteCannedResponseEpic, updateTransactionDetailEpic, updateTreasuryPromoIntroClosedByOutsideClickEpic, updateTreasuryPromoRemindMeLaterClickedEpic, updateTreasuryVideoViewedEpic, updateVendorContactEpic, uploadAccountStatementEpic, parseStatementEpic, updateStatementInfoEpic, uploadMissingAttachmentSuccessEpic, uploadMissingReceiptSuccessEpic, uploadTransactionReceiptSuccessEpic, vendorFiling1099UploadDetailsSaveEpic, verifyOtpEpic, verifyUserEpic, waitForBillDetailThenInitializeLocalStoreEpic, waitForForecastListThenFetchNetBurnOrIncomeWithForecastEpic, waitForForecastListThenFetchOpExWithForecastEpic, waitForForecastListThenFetchRevenueWithForecastEpic, waitForMerchantRecommendationFetchThenUpdateRecommendationInMerchantEpic, waitForVendorByIdThenSaveBillUpdatetoLocalStoreEpic, waitForVendorByNameThenParsetoLocalStoreEpic, waitForVendorByNameThenUpdateBillDetailEpic, waitForVendorRecommendationFetchThenUpdateRecommendationInBillEpic, wiseRedirectEpic);
610
+ const combinedEpics = combineEpics(acceptBillPayTermsEpic, acceptBillPayUpdatedTermsEpic, acceptChargeCardTermsEpic, acceptEmployeeRemiTermsEpic, acceptMasterTOSEpic, acceptRemiTermsEpic, acceptTreasuryTermsEpic, acceptZeniAccountTermsEpic, addCardPaymentSourceEpic, approveOAuthConsentEpic, approveOrRejectBillEpic, approveOrRejectBillsBulkActionEpic, approveOrRejectRemiEpic, approveOrRejectRemisBulkActionEpic, approveVendorGlobalReviewEpic, archiveTaskEpic, backgroundRefetchReviewTabEpic, bulkUpdateTaskListEpic, cancelAiAccountantOnboardingEpic, cancelAndDeleteBillEpic, cancelAndDeleteRemiEpic, cancelOrDeleteBillsBulkActionEpic, cancelOrDeleteRemisBulkActionEpic, cancelScheduleAccruedJournalEntryEpic, changeZeniPersonRolesEpic, checkDepositEpic, clearAllEpic, closeChargeCardEpic, closeChargeCardsEpic, companyManagementSavePendingUpdatesEpic, companyManagementSaveUpdatesEpic, confirmCardSetupIntentEpic, convertAmountToHomeCurrencyEpic, createAddressEpic, createAutoTransferRuleEpic, createBankAccountEpic, createCardSetupIntentEpic, createCheckingAccountEpic, createCompanyAddressEpic, createCompanyOfficersEpic, createCompanyUserAddressEpic, createGlobalMerchantEpic, createInternationalBankAccountEpic, createNewSchedulesAccruedEpic, createNewSchedulesEpic, createNewTaskGroupEpic, createPaymentInstrumentEpic, createSessionAndSubmitEpic, createSessionEpic, createTagEpic, createTaskFromTaskGroupTemplateEpic, createTransferEntryEpic, createUserBankAccountEpic, deleteAccountStatementEpic, deleteAutoTransferRuleEpic, excludeAccountFromReconciliationEpic, includeAccountInReconciliationEpic, deleteBankAccountEpic, deleteBillEpic, deleteChatSessionEpic, deleteConnectionEpic, deleteBillPayApprovalRuleEpic, deleteFileEpic, deleteFileListEpic, deleteInternationalBankAccountEpic, deletePaymentInstrumentEpic, deletePersonEpic, deleteRemiApprovalRuleEpic, deleteRemiEpic, deleteScheduleAccruedDetailEpic, deleteScheduleDetailEpic, deleteTagEpic, deleteTaskEpic, snoozeTaskEpic, unsnoozeTaskEpic, deleteTaskGroupEpic, deleteTransactionAttachmentEpic, deleteUserBankAccountEpic, doMagicLinkSignInEpic, doSignInEpic, doSignOutEpic, sendEmailMagicLinkToUserEpic, sessionHeartbeatEpic, verifyDeviceWithTwoFAEpic, downloadAccountingProviderAttachmentEpic, dragNDropTasksEpic, enableChargeCardAutoPayEpic, enableSetupEpic, establishOnboardingPlaidConnectionEpic, establishPlaidConnectionEpic, expressInterestChargeCardEpic, fetchAccountListEpic, fetchAccountListForAccountTypesEpic, fetchAccountSettingsListForAccountTypesEpic, fetchAccruedScheduleListEpic, fetchActiveTenantEpic, fetchAddressEpic, fetchAiAccountantCustomersEpic, fetchAiAccountantJobsEpic, fetchAllCockpitViewsEpic, fetchAllExpenseAutomationTabsEpic, fetchAllPeopleRequiredViewsEpic, fetchAllTagsEpic, fetchAllTaskGroupsEpic, fetchAllTenantsEpic, fetchAndUpdateVendorRecommendationsEpic, fetchAggregatedReportEpic, fetchApAgingDetailEpic, fetchApAgingEpic, fetchArAgingDetailEpic, fetchArAgingEpic, fetchAuditReportGroupViewEpic, fetchAuditRuleGroupViewEpic, fetchAutoTransferReviewDetailEpic, fetchAutoTransferRuleHistoryEpic, fetchAutoTransferRulesEpic, fetchBalanceSheetEpic, fetchBalanceSheetForTimeframeEpic, fetchBankAccountsListEpic, fetchBankConnectionsViewEpic, fetchBankCountryNameByIbanEpic, fetchBankNameByRoutingEpic, fetchBankNameBySwiftEpic, fetchBillAndInitializeLocalStoreEpic, fetchBillDetailEpic, fetchBillingAccountsListEpic, fetchBillListEpic, fetchBillListPerTabEpic, fetchBillPayApproversDetailsEpic, fetchBillPayApproversListEpic, fetchBillPayCardEpic, fetchBillPayConfigEpic, fetchBillPaySetupApproverViewEpic, fetchBillPaySetupViewEpic, fetchCardBalanceEpic, archiveCardPolicyEpic, createCardPolicyTemplatesEpic, extractPolicyDocumentEpic, policyRecommendationFromUploadEpic, policyDocumentExtractionToRecommendationBridgeEpic, fetchCardPolicyDetailEpic, fetchCardPolicyListEpic, fetchCardPolicyMccCategoriesEpic, fetchCardPolicyVendorOptionsEpic, fetchCardProfilesEpic, updateCardPolicyEpic, fetchCashbackDetailEpic, fetchCashBalanceEpic, fetchCashFlowEpic, fetchCashFlowForTimeframeEpic, fetchCashInCashOutEpic, fetchCashPositionEpic, fetchChargeCardConfigEpic, fetchChargeCardDetailEpic, fetchChargeCardDetailPageEpic, fetchChargeCardListEpic, fetchChargeCardListPageEpic, fetchChargeCardPaymentPageEpic, fetchChargeCardRepaymentDetailEpic, fetchChargeCardPaymentHistoryEpic, fetchChargeCardSetupViewEpic, fetchChargeCardStatementListEpic, fetchChargeCardTransactionAttachmentsEpic, fetchChargeCardTransactionListEpic, fetchChargeCardTransactionStatisticsEpic, fetchChargeCardsRecurringExpensesEpic, fetchChatHistoryEpic, fetchChatSessionsForUserEpic, fetchClassListEpic, fetchCollaborationAuthTokenEpic, fetchCockpitContextEpic, fetchCompanyBillingAddressEpic, fetchCompanyConfigEpic, fetchCompanyHealthMetricConfigEpic, fetchCompanyHealthMetricViewEpic, fetchCompanyManagementViewEpic, fetchCompanyMetaDataEpic, fetchCompanyMonthEndReportHistoricDataEpic, fetchCompanyMonthEndReportHistoricDatesEpic, fetchCompanyMonthEndReportTemplatesEpic, fetchCompanyMonthEndReportViewEpic, fetchCompanyOnboardingViewEpic, fetchCompanyPassportViewEpic, fetchCompanyPortfolioViewEpic, fetchCompanyTaskManagerViewEpic, fetchTaskManagerMetricsEpic, updateCompanyTaskManagerViewFiltersEpic, fetchCreditAccountEpic, fetchCreditAccountRepaymentEpic, fetchCreditAgentMacroEpic, fetchCurrencyConversionValueEpic, fetchDashboardEpic, fetchDashboardLayoutEpic, fetchDebitCardSummaryEpic, fetchDepositAccountDetailEpic, fetchDepositAccountEpic, fetchDepositAccountHistoryEpic, fetchDepositAccountLimitEpic, fetchDepositAccountListEpic, fetchDepositAccountListForCardsEpic, fetchDepositAccountTransactionListEpic, fetchDownloadSchedulesEpic, fetchDuplicateBillPayReviewEpic, fetchDuplicateReimbursementEpic, fetchEditBillDetailPageEpic, fetchEditRemiDetailPageEpic, fetchEligibleActionsForBillEpic, fetchEntityAutoCompleteEpic, fetchEntityHistoryEpic, fetchEntityRecommendationsByTransactionIdEpic, fetchEntityRecommendationsForLineUpdateEpic, fetchExcludedResourcesEpic, fetchExpenseAutomationFluxAnalysisViewEpic, fetchExpenseAutomationInitializeTransactionCategorizationViewLocalDataEpic, fetchExpenseAutomationJeSchedulesEpic, fetchExpenseAutomationJESchedulesPageEpic, fetchExpenseAutomationMarkTransactionAsNotMiscategorizedEpic, fetchExpenseAutomationMissingReceiptsEpic, bulkUploadReceiptsEpic, confirmBulkUploadMatchEpic, fetchBulkUploadBatchDetailsEpic, fetchMultipleBatchDetailsEpic, fetchMoreBatchDetailsEpic, fetchBulkUploadBatchesEpic, fetchCompletedTransactionsEpic, refetchCompletedTransactionsOnBulkUploadSortEpic, refreshBatchDetailsForBatchIdEpic, bulkUploadAutomatchingTimeoutEpic, bulkUploadMatchResultToastEpic, syncTabsAfterAutomatchEpic, pollBulkUploadBatchStatusEpic, pusherBatchStatusCompletionEpic, restoreBulkUploadAutomatchingOnMountEpic, searchTransactionsForManualMatchEpic, fetchExpenseAutomationReconciliationsViewEpic, fetchExpenseAutomationSaveTransactionCategorizationEpic, fetchExpenseAutomationTransactionCategorizationEpic, fetchExpenseAutomationTransactionCategorizationViewEpic, fetchExpenseAutomationUpdateTransactionCategorizationEpic, fetchExpenseTrendEpic, fetchExpressPayInitialDetailsEpic, fetchExternalConnectionsEpic, fetchFileEpic, fetchFileListEpic, fetchFinanceStatementEpic, fetchForecastListEpic, initiateReportsClassViewRefetchingEpic, reportsResyncEpic, fetchGlobalMerchantAutoCompleteViewEpic, fetchGlobalMerchantRecommendationEpic, fetchIncomeTrendEpic, fetchInsightsCardEpic, fetchInternationalWireDynamicFormEpic, fetchIntlVerificationFormEpic, fetchIssueCardPageEpic, seedAiCardCreationFormDraftEpic, seedAiCardPolicyFormDraftEpic, applyExtractedPolicyToDraftEpic, fetchMagicLinkBankNameByRoutingEpic, fetchMagicLinkBankNameBySwiftEpic, fetchMagicLinkBillEpic, fetchMagicLinkTenantEpic, fetchManagementViewEpic, fetchMerchantListEpic, fetchMonthClosePerformanceTrendEpic, fetchMonthEndCloseChecksEpic, fetchMyProfileEpic, fetchMyProfileViewEpic, fetchNetBurnOrIncomeClassesViewEpic, fetchNetBurnOrIncomeEpic, fetchNetBurnOrIncomeForTimeframeClassesViewEpic, fetchNetBurnOrIncomeForTimeframeEpic, fetchNetBurnOrIncomeStoryCardEpic, fetchNetBurnOrIncomeWithForecastEpic, fetchNotificationSettingsEpic, fetchNotificationSettingsViewEpic, fetchNotificationUnreadCountEpic, fetchNotificationViewEpic, fetchRegisteredInterestsEpic, fetchOnboardingCompletedCompaniesEpic, fetchOnboardingCustomerSetupViewEpic, fetchOnboardingCustomerViewEpic, fetchOnboardingViewEpic, fetchOpExByVendorEpic, fetchOpExByVendorReportForTimeframeEpic, fetchOpExByVendorReportSummaryEpic, fetchOpExClassesViewEpic, fetchOpExEpic, fetchOpExForTimeframeClassesViewEpic, fetchOpExReportForTimeframeEpic, fetchOpExWithForecastEpic, fetchOwnerListEpic, fetchParentSubsidiaryManagementViewEpic, fetchPaymentAccountBalanceEpic, fetchPaymentAccountListEpic, fetchPaymentSourcesEpic, fetchPeopleEpic, fetchPeoplePageEpic, fetchPortfolioViewEpic, fetchPreviousBillsEpic, fetchProfitAndLossClassesViewEpic, fetchProfitAndLossEpic, fetchProfitAndLossForTimeframeClassesViewEpic, fetchProfitAndLossForTimeframeProjectViewEpic, fetchProfitAndLossForTimeframeEpic, fetchProfitAndLossProjectViewEpic, fetchProjectListEpic, fetchQBOConnectionPoolEpic, fetchRecommendationByEntityIdEpic, fetchRecommendationByEntityNameEpic, fetchRecommendationForAccountSettingsEpic, fetchRecommendationForAccountTypeEpic, fetchRecommendationsAndUpdateMerchantRecommendationsEpic, fetchRecommendedTransactionRowIndexEpic, fetchReferralsEpic, fetchReimbursementCardEpic, fetchReimbursementConfigEpic, fetchRemiAndInitializeLocalStoreEpic, fetchRemiApproversDetailsEpic, fetchRemiApproversListEpic, fetchRemiDetailEpic, fetchRemiListEpic, fetchRemiListPerTabEpic, fetchRemiSetupApproverViewEpic, fetchRemiSetupViewEpic, fetchRevenueClassesViewEpic, fetchRevenueEpic, fetchRevenueForTimeframeClassesViewEpic, fetchRevenueForTimeframeEpic, fetchRevenueWithForecastEpic, fetchReviewCompanyViewEpic, fetchReviewTransferDetailEpic, fetchRewardsPlanEpic, fetchScheduleAccruedDetailsEpic, fetchScheduleAccruedDetailsPageEpic, fetchScheduleDetailsEpic, fetchScheduleDetailsPageEpic, fetchScheduleListEpic, fetchSchedulesAccountEpic, fetchSubscriptionAddOnsEpic, fetchSubscriptionCouponsEpic, fetchSubscriptionCreateEstimateEpic, fetchSubscriptionDetailsEpic, fetchSubscriptionListEpic, fetchSubscriptionPlansEpic, fetchSubscriptionSummaryForTenantEpic, fetchSubscriptionUpdateEstimateEpic, fetchSubscriptionViewEpic, fetchSuggestedQuestionsEpic, fetchTaskDetailEpic, fetchTaskDetailPageEpic, fetchTaskGroupTemplatesEpic, fetchTaskHistoryEpic, fetchTaskListEpic, fetchTaskListPageEpic, fetchTasksCardEpic, fetchTopExEpic, fetchTransactionActivityLogEpic, fetchTransactionDetailEpic, fetchTransactionListByAccountEpic, fetchTransactionListByClassEpic, fetchTransactionListByProjectEpic, fetchTransactionListByEntityEpic, fetchTransactionsForEntityEpic, fetchTransactionsListByCategoryTypeEpic, fetchTransferAccountsEpic, fetchTreasuryDetailEpic, fetchTreasuryFundsEpic, fetchTreasuryHistoryEpic, fetchTreasurySetupViewEpic, fetchTreasuryStatementListEpic, fetchTreasuryTaxLetterListEpic, fetchTreasuryTransactionListEpic, updatePortfolioAllocationEpic, fetchPortfolioAllocationEpic, fetchTrendForEntityEpic, fetchUserDetailEpic, fetchUserFinancialAccountEpic, fetchUserListByTypeEpic, fetchUserRoleConfigEpic, fetchVendor1099TypeListEpic, fetchVendorAndUpdateBillLocalDataEpic, fetchVendorByNameAndParseInvoiceEpic, fetchVendorDetailsEpic, fetchVendorEpic, fetchVendorFirstReviewAttachmentsEpic, fetchVendorFirstReviewViewEpic, fetchVendorGlobalReviewViewEpic, fetchVendorsFiling1099AllEpic, fetchVendorsFiling1099DownloadEpic, fetchVendorsFiling1099ListEpic, fetchVendorsListEpic, fetchVendorsTabVendorDetailPageViewEpic, fetchVendorsTabVendorDetailsEpic, fetchVendorsTabVendorEpic, fetchVendorTabViewEpic, fetchVendorTypeListEpic, fetchZeniAccountListEpic, fetchZeniAccountsConfigEpic, fetchZeniAccountSetupViewEpic, fetchZeniAccountsPromoCardEpic, fetchZeniAccStatementListEpic, fetchZeniAccStatementPageEpic, fetchZeniUsersEpic, getOnboardingEmailGroupEpic, getOnboardingPlaidLinkTokenEpic, getPaymentAccountsEpic, getPlaidLinkTokenEpic, ignoreExpenseAutomationJEScheduleEpic, improveUsingZeniGPTEpic, initialiseExpenseAutomationReconciliationLocalDataForSelectedAccountIdEpic, initializeAccountMappingViewEpic, initializeAccountSettingsViewEpic, initializeBillPaySetupApproverViewUpdateDataEpic, initializeBillToLocalStoreEpic, initializeCardUserOnboardingLocalDataEpic, initializeCompanyHealthMetricViewLocalDataEpic, initializeDynamicFormEpic, initializeEditPersonEpic, initializeExpenseAutomationJeScheduleLocalDataEpic, initializeInternationalWireLocalDataEpic, initializeIntlVerificationFormEpic, initializeMyProfileLocalDataEpic, initializeOnboardingCustomerViewUpdateDataEpic, initializeRemiSetupApproverViewUpdateDataEpic, initializeRemiToLocalStoreEpic, initializeScheduleAccruedDetailLocalDataEpic, initializeScheduleDetailLocalDataEpic, initializeSubscriptionLocalDataEpic, initializeTaskToLocalStoreEpic, initializeTransactionDetailLocalDataEpic, initializeVendorAddressEpic, initiateChargeCardRepaymentEpic, invitePeopleEpic, inviteZeniPeopleEpic, issueChargeCardEpic, lockChargeCardEpic, lockChargeCardsEpic, markAsCompleteScheduleDetailEpic, markTransactionAsNotMiscategorizedEpic, notifyMeForFeatureEpic, parallelFetchAccountTransactionListEpic, parallelFetchClassTransactionListEpic, parallelFetchProjectTransactionListEpic, parallelFetchEntityTransactionListEpic, parallelFetchTransactionListByCategoryTypeEpic, parseInvoiceToBillEpic, parseReceiptsToRemiEpic, peopleSaveUpdatesEpic, pushToastNotificationEpic, refreshExpenseAutomationCurrentTabEpic, refreshIntegrationsDataEpic, rejectVendorGlobalReviewEpic, resendCardInviteEpic, resendInviteEpic, resendOtpEpic, resendVerifyDeviceOTPEpic, resendReferralInviteEpic, resetTransactionVendorLocalDataEpic, resetVendorDetailLocalDataEpic, resetVendorsTabVendorDetailLocalDataEpic, retryBankAccountConnectionEpic, retryBankAccountConnectionForOnboardingEpic, retryExpenseAutomationJEScheduleEpic, retryOrRefundBillEpic, validateBillsBulkActionEpic, reviewDraftRemisBulkActionEpic, reviewExpenseAutomationFluxAnalysisViewEpic, revokeCardInviteEpic, revokeChargeCardsInviteEpic, saveAccountMappingViewEpic, saveAccountSettingsViewEpic, saveAPIKeyConnectionEpic, saveBillDetailEpic, saveBillPaySetupApproverViewUpdatesEpic, saveCardOnboardingUserDetailsEpic, saveCompanyBillingAddressEpic, saveCompanyHealthMetricByIdEpic, saveCompanyMonthEndReportEpic, saveCompanyPassportDetailsEpic, initEmailConnectOAuthEpic, saveConnectorCredentialsEpic, saveCreditAgentMacroEpic, saveExpenseAutomationReconciliationDetailsEpic, saveExpenseAutomationReconciliationReviewEpic, saveExternalConnectionEpic, saveMagicLinkBankAccountEpic, saveNewAddressEpic, saveNotificationSettingsEpic, saveOAuthConnectionEpic, saveOnboardingCustomerCompletedStatusEpic, saveOnboardingCustomerNotesEpic, saveOnboardingCustomerViewUpdatesEpic, saveRealTimeApprovalEpic, saveReasonForAuditRuleEpic, saveRemiDetailEpic, saveRemiSetupApproverViewUpdatesEpic, saveScheduleAccruedDetailsEpic, saveScheduleDetailsEpic, saveSubscriptionNotesUpdatesEpic, saveSubscriptionUpdatesEpic, saveTaskDetailEpic, saveTransactionDetailEpic, saveTransactionVendorEpic, saveVendorDetailsViewEpic, saveVendorEpic, saveVendorFirstReviewViewEpic, saveVendorsTabVendorEpic, scheduleTenantCreditScoreCronEpic, sendCompanyMonthEndReportEpic, sendOnboardingCustomerViewInviteEpic, sendOtpEpic, sendReferralInviteEpic, statementCloseDayEpic, stopSubmitEpic, stopSubmitQuestionEpic, submitDraftBillsBulkActionEpic, submitDraftRemisBulkActionEpic, submitExpressPayEpic, submitIntlVerificationEpic, submitQuestionEpic, toggleReportUIOptionForecastModeEpic, transferMoneyEpic, treasuryTransferMoneyEpic, triggerAiAccountantJobEpic, triggerReviewTabRefetchEpic, unlinkPaymentAccountEpic, unlockChargeCardEpic, unlockChargeCardsEpic, updateAccruedJESchedulesEpic, updateAddressEpic, updateAmountsInScheduleAccruedDetailEpic, updateAmountsInScheduleDetailEpic, updateAutoTransferRuleEpic, updateBusinessVerificationDetailsEpic, updateCardProfileEpic, updateChargeCardDetailEpic, updateChargeCardLimitEpic, updateChargeCardNameEpic, updateChargeCardsLimitEpic, updateAccountingClassesEnabledEpic, dismissCapitalizationOnboardingEpic, updateCapitalizationThresholdEpic, updateCompanyDetailsEpic, updateCompanyOfficerEpic, updateCompanyPassportLocalStoreDataEpic, updateDashboardLayoutEpic, updateDebitCardPinAttemptEpic, updateDepositAccountEpic, updateExpenseAutomationReconciliationBalanceLocalDataEpic, updateFileNameEpic, updateFilesMetadataEpic, updateJESchedulesEpic, updateMappedCashAccountEpic, updateMileageDetailsEpic, updateMyProfileEpic, updateNetBurnOrIncomeStoryCardSettingsEpic, updateNotificationViewAllNotificationsStatusEpic, updateNotificationViewNotificationStatusEpic, updateOnboardingCustomerViewCompleteStatusEpic, acknowledgeOnboardingAiActivationViewedEpic, acknowledgeOnboardingAiFinanceTeamEpic, fetchAiAgentsActivationStatusEpic, updateOnboardingCustomerViewDashboardLoadedEpic, updateOnboardingCustomerViewEpic, updateOnboardingCustomerViewLocalStoreDataEpic, updateOnboardingPaymentAccountLoginStatusEpic, updateOnboardingPaymentAccountStatusEpic, updatePaymentAccountEpic, updatePaymentAccountLoginStatusEpic, updatePaymentAccountStatusEpic, updatePhysicalChargeCardAttemptEpic, updatePrimaryContactEpic, updatePrimaryFundingAccountEpic, updateQBOConnectionPoolExternalConnectionEpic, updateReferViewedEpic, updateRemiSetupViewLocalStoreDataEpic, updateReportUIOptionCOABalancesRangeEpic, updateReportUIOptionIsCompareModeEpic, updateReportUIOptionIsCompareModeOnEpic, updateReportUIOptionThisPeriodEpic, updateReportUIOptionTimeFrameEpic, updateSectionAccountsViewEpic, updateSectionClassesViewEpicV2, updateSectionProjectViewEpic, updateSelectedVendorForCreateFlowEpic, updateSetupViewLocalStoreDataEpic, parseUploadedKycDocumentEpic, parseUploadedKybDocumentEpic, updateTaskFromListViewEpic, updateTaskGroupNameEpic, fetchCannedResponsesEpic, saveCannedResponseEpic, deleteCannedResponseEpic, updateTransactionDetailEpic, updateTreasuryPromoIntroClosedByOutsideClickEpic, updateTreasuryPromoRemindMeLaterClickedEpic, updateTreasuryVideoViewedEpic, updateVendorContactEpic, uploadAccountStatementEpic, uploadMissingAttachmentSuccessEpic, uploadMissingReceiptSuccessEpic, uploadTransactionReceiptSuccessEpic, vendorFiling1099UploadDetailsSaveEpic, verifyOtpEpic, verifyUserEpic, waitForBillDetailThenInitializeLocalStoreEpic, waitForForecastListThenFetchNetBurnOrIncomeWithForecastEpic, waitForForecastListThenFetchOpExWithForecastEpic, waitForForecastListThenFetchRevenueWithForecastEpic, waitForMerchantRecommendationFetchThenUpdateRecommendationInMerchantEpic, waitForVendorByIdThenSaveBillUpdatetoLocalStoreEpic, waitForVendorByNameThenParsetoLocalStoreEpic, waitForVendorByNameThenUpdateBillDetailEpic, waitForVendorRecommendationFetchThenUpdateRecommendationInBillEpic, wiseRedirectEpic);
594
611
  const rootEpic = (action$, store$, dependencies) => combinedEpics(action$, store$, dependencies).pipe(map(identity), catchError((error, source) => {
595
612
  console.error(error);
596
613
  return source;