@zeniai/client-epic-state 5.0.69-betaML4 → 5.0.69-betaML51

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 (82) hide show
  1. package/lib/commonStateTypes/viewAndReport/viewAndReport.d.ts +2 -2
  2. package/lib/commonStateTypes/viewAndReport/viewAndReport.js +0 -2
  3. package/lib/entity/account/accountSelector.d.ts +0 -9
  4. package/lib/entity/account/accountSelector.js +1 -14
  5. package/lib/entity/account/accountState.d.ts +1 -1
  6. package/lib/entity/accountGroup/accountGroupState.d.ts +1 -1
  7. package/lib/entity/class/classReducer.d.ts +4 -4
  8. package/lib/entity/class/classState.d.ts +1 -1
  9. package/lib/entity/forecast/forecastState.d.ts +1 -1
  10. package/lib/entity/sectionAccountsView/sectionAccountsView.d.ts +1 -1
  11. package/lib/entity/sectionClassesViewV2/sectionClassesView.d.ts +1 -1
  12. package/lib/entity/sectionClassesViewV2/sectionClassesViewReducer.d.ts +2 -2
  13. package/lib/entity/sectionProjectView/sectionProjectView.d.ts +1 -1
  14. package/lib/entity/sectionProjectView/sectionProjectViewReducer.d.ts +2 -2
  15. package/lib/entity/snackbar/snackbarTypes.d.ts +1 -1
  16. package/lib/entity/snackbar/snackbarTypes.js +0 -1
  17. package/lib/entity/transaction/payloadTypes/transactionPayload.d.ts +0 -4
  18. package/lib/entity/transaction/payloadTypes/transactionPayload.js +58 -20
  19. package/lib/entity/transaction/stateTypes/transaction.d.ts +0 -3
  20. package/lib/epic.d.ts +1 -3
  21. package/lib/epic.js +1 -3
  22. package/lib/esm/commonStateTypes/viewAndReport/viewAndReport.js +0 -2
  23. package/lib/esm/entity/account/accountSelector.js +0 -11
  24. package/lib/esm/entity/snackbar/snackbarTypes.js +0 -1
  25. package/lib/esm/entity/transaction/payloadTypes/transactionPayload.js +58 -20
  26. package/lib/esm/epic.js +1 -3
  27. package/lib/esm/index.js +4 -5
  28. package/lib/esm/reducer.js +0 -3
  29. package/lib/esm/view/expenseAutomationView/epics/transactionCategorization/fetchTransactionCategorizationViewEpic.js +0 -8
  30. package/lib/esm/view/expenseAutomationView/reducers/transactionsViewReducer.js +1 -13
  31. package/lib/esm/view/expenseAutomationView/selectors/transactionCategorizationSelector.js +1 -9
  32. package/lib/esm/view/transactionDetail/epics/transactionDetailEpic.js +2 -14
  33. package/lib/esm/view/transactionDetail/transactionDetailReducer.js +1 -2
  34. package/lib/esm/view/transactionDetail/transactionDetailSelector.js +1 -6
  35. package/lib/index.d.ts +4 -5
  36. package/lib/index.js +33 -43
  37. package/lib/reducer.d.ts +0 -3
  38. package/lib/reducer.js +0 -3
  39. package/lib/view/auditReportView/auditReportViewState.d.ts +1 -1
  40. package/lib/view/billPayCard/billPayCardSelector.d.ts +1 -1
  41. package/lib/view/cardBalance/cardBalanceSelector.d.ts +1 -1
  42. package/lib/view/cashBalance/cashBalanceSelector.d.ts +1 -1
  43. package/lib/view/cashInCashOut/cashInCashOutSelector.d.ts +1 -1
  44. package/lib/view/cashPosition/cashPositionSelector.d.ts +1 -1
  45. package/lib/view/dashboard/dashboardReducer.d.ts +2 -2
  46. package/lib/view/expenseAutomationView/epics/transactionCategorization/fetchTransactionCategorizationViewEpic.d.ts +1 -2
  47. package/lib/view/expenseAutomationView/epics/transactionCategorization/fetchTransactionCategorizationViewEpic.js +0 -8
  48. package/lib/view/expenseAutomationView/helpers/transactionCategorizationLocalDataHelper.d.ts +1 -1
  49. package/lib/view/expenseAutomationView/reducers/transactionsViewReducer.d.ts +1 -3
  50. package/lib/view/expenseAutomationView/reducers/transactionsViewReducer.js +2 -14
  51. package/lib/view/expenseAutomationView/selectorTypes/transactionsViewSelectorTypes.d.ts +1 -4
  52. package/lib/view/expenseAutomationView/selectors/transactionCategorizationSelector.d.ts +0 -1
  53. package/lib/view/expenseAutomationView/selectors/transactionCategorizationSelector.js +1 -11
  54. package/lib/view/financeStatement/financeStatementReducer.d.ts +1 -1
  55. package/lib/view/globalMerchantView/globalMerchantViewReducer.d.ts +2 -2
  56. package/lib/view/reimbursementCard/reimbursementCardSelector.d.ts +1 -1
  57. package/lib/view/reportsResync/reportsResyncReducer.d.ts +2 -2
  58. package/lib/view/tasksCard/tasksCardSelector.d.ts +1 -1
  59. package/lib/view/topEx/topExSelector.d.ts +1 -1
  60. package/lib/view/transactionDetail/epics/transactionDetailEpic.d.ts +1 -2
  61. package/lib/view/transactionDetail/epics/transactionDetailEpic.js +2 -14
  62. package/lib/view/transactionDetail/transactionDetailPayload.d.ts +1 -1
  63. package/lib/view/transactionDetail/transactionDetailReducer.d.ts +1 -2
  64. package/lib/view/transactionDetail/transactionDetailReducer.js +1 -2
  65. package/lib/view/transactionDetail/transactionDetailSelector.d.ts +1 -6
  66. package/lib/view/transactionDetail/transactionDetailSelector.js +1 -6
  67. package/package.json +1 -1
  68. package/lib/esm/view/createTransferEntry/createTransferEntryReducer.js +0 -56
  69. package/lib/esm/view/createTransferEntry/createTransferEntrySelector.js +0 -64
  70. package/lib/esm/view/createTransferEntry/createTransferEntryState.js +0 -17
  71. package/lib/esm/view/createTransferEntry/epics/createTransferEntryEpic.js +0 -112
  72. package/lib/esm/view/createTransferEntry/epics/fetchTransferAccountsEpic.js +0 -36
  73. package/lib/view/createTransferEntry/createTransferEntryReducer.d.ts +0 -32
  74. package/lib/view/createTransferEntry/createTransferEntryReducer.js +0 -60
  75. package/lib/view/createTransferEntry/createTransferEntrySelector.d.ts +0 -39
  76. package/lib/view/createTransferEntry/createTransferEntrySelector.js +0 -69
  77. package/lib/view/createTransferEntry/createTransferEntryState.d.ts +0 -30
  78. package/lib/view/createTransferEntry/createTransferEntryState.js +0 -20
  79. package/lib/view/createTransferEntry/epics/createTransferEntryEpic.d.ts +0 -11
  80. package/lib/view/createTransferEntry/epics/createTransferEntryEpic.js +0 -116
  81. package/lib/view/createTransferEntry/epics/fetchTransferAccountsEpic.d.ts +0 -14
  82. package/lib/view/createTransferEntry/epics/fetchTransferAccountsEpic.js +0 -40
@@ -1,116 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.createTransferEntryEpic = void 0;
4
- const rxjs_1 = require("rxjs");
5
- const operators_1 = require("rxjs/operators");
6
- const snackbarReducer_1 = require("../../../entity/snackbar/snackbarReducer");
7
- const transactionIDPayload_1 = require("../../../entity/transaction/payloadTypes/transactionIDPayload");
8
- const transactionReducer_1 = require("../../../entity/transaction/transactionReducer");
9
- const responsePayload_1 = require("../../../responsePayload");
10
- const transactionsViewReducer_1 = require("../../expenseAutomationView/reducers/transactionsViewReducer");
11
- const transactionDetailReducer_1 = require("../../transactionDetail/transactionDetailReducer");
12
- const transactionDetailState_1 = require("../../transactionDetail/transactionDetailState");
13
- const createTransferEntryReducer_1 = require("../createTransferEntryReducer");
14
- // ─── Pure helpers ────────────────────────────────────────────────────────────
15
- function transactionIdsAreEqual(a, b) {
16
- return a.id === b.id && a.type === b.type;
17
- }
18
- const successSnackbar = () => (0, snackbarReducer_1.openSnackbar)({
19
- messageSection: 'create_transfer_entry',
20
- messageText: 'success',
21
- type: 'success',
22
- });
23
- const failureSnackbar = () => (0, snackbarReducer_1.openSnackbar)({
24
- messageSection: 'create_transfer_entry',
25
- messageText: 'failed',
26
- type: 'error',
27
- });
28
- function buildFailureActions() {
29
- return [(0, createTransferEntryReducer_1.createTransferEntryFailure)(), failureSnackbar()];
30
- }
31
- function buildSuccessSideEffects(sourceTransactionId) {
32
- return [
33
- (0, createTransferEntryReducer_1.createTransferEntrySuccess)(),
34
- (0, transactionsViewReducer_1.removeTransactionFromAllTabs)(sourceTransactionId),
35
- successSnackbar(),
36
- ];
37
- }
38
- function buildPreviousTransactionCleanupActions(previousTransactionId) {
39
- return [
40
- (0, transactionReducer_1.removeTransaction)((0, transactionDetailState_1.getTransactionDetailKey)(previousTransactionId)),
41
- (0, transactionDetailReducer_1.removeTransactionDetail)(previousTransactionId),
42
- (0, createTransferEntryReducer_1.clearTransferEntryRouteReplacement)(),
43
- ];
44
- }
45
- /**
46
- * Emits `resetCreateTransferEntryStatus()` (and, on the replacement path, the
47
- * follow-up cleanup actions) one scheduler tick after the success actions.
48
- *
49
- * Why the `timer(0)` (and not synchronous emission):
50
- * On the replacement path the host (web-app-ui) watches
51
- * `lastTransferEntryReplacement`, navigates to the new transaction url, and
52
- * then sees `clearTransferEntryRouteReplacement` clear the signal. If we
53
- * dispatched the cleanup actions in the same tick as
54
- * `createTransferEntryReplacedTransaction`, redux subscribers would observe
55
- * `lastTransferEntryReplacement` flicker on then off in a single render, and
56
- * the old transaction's state (which the still-mounted detail view may be
57
- * reading) would be torn down before the host has had a chance to start
58
- * navigating. Deferring by one microtask gives the host exactly one render
59
- * pass to react before we tear down the previous transaction.
60
- */
61
- function delayedResetAndPreviousCleanup(previousTransactionId) {
62
- return (0, rxjs_1.timer)(0).pipe((0, operators_1.mergeMap)(() => {
63
- const actions = [(0, createTransferEntryReducer_1.resetCreateTransferEntryStatus)()];
64
- if (previousTransactionId != null) {
65
- actions.push(...buildPreviousTransactionCleanupActions(previousTransactionId));
66
- }
67
- return (0, rxjs_1.from)(actions);
68
- }));
69
- }
70
- // ─── Success-path branches ───────────────────────────────────────────────────
71
- function handleSuccessWithoutTransactionBody(transactionId) {
72
- return (0, rxjs_1.concat)((0, rxjs_1.from)(buildSuccessSideEffects(transactionId)), delayedResetAndPreviousCleanup(undefined));
73
- }
74
- function handleSuccessWithTransactionBody(transactionPayload, vendorPayload, previousTransactionId, sourceTransactionId) {
75
- const newTransactionId = (0, transactionIDPayload_1.toTransactionID)(transactionPayload);
76
- const replaced = !transactionIdsAreEqual(previousTransactionId, newTransactionId);
77
- const immediate = [
78
- (0, transactionReducer_1.updateTransaction)((0, transactionDetailState_1.getTransactionDetailKey)(newTransactionId), transactionPayload),
79
- (0, transactionDetailReducer_1.initializeTransactionDetailLocalData)({
80
- transactionId: newTransactionId,
81
- vendorId: vendorPayload?.[0]?.vendor_id,
82
- }),
83
- ...buildSuccessSideEffects(sourceTransactionId),
84
- ];
85
- if (replaced) {
86
- immediate.push((0, createTransferEntryReducer_1.createTransferEntryReplacedTransaction)(previousTransactionId, newTransactionId));
87
- }
88
- return (0, rxjs_1.concat)((0, rxjs_1.from)(immediate), delayedResetAndPreviousCleanup(replaced ? previousTransactionId : undefined));
89
- }
90
- // ─── Top-level epic ──────────────────────────────────────────────────────────
91
- const CREATE_TRANSFER_ENTRY_URL = `https://dev.api.zeni.ai/version/accounting/komal/1.0/transactions/transaction-type-update`;
92
- const createTransferEntryEpic = (actions$, _state$, zeniAPI) => actions$.pipe((0, operators_1.filter)(createTransferEntryReducer_1.createTransferEntry.match), (0, operators_1.mergeMap)((action) => {
93
- const { transactionId, creditAccountIntegrationId, debitAccountIntegrationId, memo, transactionType, sourceTransactionType, } = action.payload;
94
- const previousTransactionId = {
95
- id: transactionId,
96
- type: sourceTransactionType,
97
- };
98
- return zeniAPI
99
- .postAndGetJSON(CREATE_TRANSFER_ENTRY_URL, {
100
- transaction_type: transactionType,
101
- transaction_id: transactionId,
102
- to_account_integration_id: creditAccountIntegrationId,
103
- from_account_integration_id: debitAccountIntegrationId,
104
- memo,
105
- })
106
- .pipe((0, operators_1.mergeMap)((response) => {
107
- if (!(0, responsePayload_1.isSuccessResponse)(response)) {
108
- return (0, rxjs_1.from)(buildFailureActions());
109
- }
110
- if (response.data?.transaction != null) {
111
- return handleSuccessWithTransactionBody(response.data.transaction, response.data.vendors, previousTransactionId, transactionId);
112
- }
113
- return handleSuccessWithoutTransactionBody(transactionId);
114
- }), (0, operators_1.catchError)(() => (0, rxjs_1.from)(buildFailureActions())));
115
- }));
116
- exports.createTransferEntryEpic = createTransferEntryEpic;
@@ -1,14 +0,0 @@
1
- import { ActionsObservable, StateObservable } from 'redux-observable';
2
- import { Observable } from 'rxjs';
3
- import { updateAccounts } from '../../../entity/account/accountReducer';
4
- import { RootState } from '../../../reducer';
5
- import { ZeniAPI } from '../../../zeniAPI';
6
- import { fetchAccountsForTransferFlow, updateAccountsForTransferFlow, updateAccountsForTransferFlowFailure } from '../createTransferEntryReducer';
7
- export type ActionType = ReturnType<typeof fetchAccountsForTransferFlow> | ReturnType<typeof updateAccountsForTransferFlow> | ReturnType<typeof updateAccountsForTransferFlowFailure> | ReturnType<typeof updateAccounts>;
8
- /**
9
- * Pools fetched concurrently: `groupBy(kind)` keeps `transferEntryEligible`
10
- * and `creditCardOnlyEligible` in their own streams so a back-to-back dispatch
11
- * of both does not cancel the first. Within a single type, a fresh dispatch
12
- * supersedes any in-flight request (per-group `switchMap`).
13
- */
14
- export declare const fetchTransferAccountsEpic: (actions$: ActionsObservable<ActionType>, _state$: StateObservable<RootState>, zeniAPI: ZeniAPI) => Observable<ActionType>;
@@ -1,40 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.fetchTransferAccountsEpic = void 0;
4
- const rxjs_1 = require("rxjs");
5
- const operators_1 = require("rxjs/operators");
6
- const accountReducer_1 = require("../../../entity/account/accountReducer");
7
- const responsePayload_1 = require("../../../responsePayload");
8
- const createTransferEntryReducer_1 = require("../createTransferEntryReducer");
9
- const REPORT_ID_BY_TYPE = {
10
- transferEntryEligible: 'transfer_accounts',
11
- creditCardOnlyEligible: 'credit_card_transfer_accounts',
12
- };
13
- const QUERY_BY_TYPE = {
14
- transferEntryEligible: { is_only_include_transfer_accounts: true },
15
- creditCardOnlyEligible: { is_include_only_credit_card_accounts: true },
16
- };
17
- /**
18
- * Pools fetched concurrently: `groupBy(kind)` keeps `transferEntryEligible`
19
- * and `creditCardOnlyEligible` in their own streams so a back-to-back dispatch
20
- * of both does not cancel the first. Within a single type, a fresh dispatch
21
- * supersedes any in-flight request (per-group `switchMap`).
22
- */
23
- const fetchTransferAccountsEpic = (actions$, _state$, zeniAPI) => actions$.pipe((0, operators_1.filter)(createTransferEntryReducer_1.fetchAccountsForTransferFlow.match), (0, operators_1.groupBy)((action) => action.payload.kind), (0, operators_1.mergeMap)((group$) => group$.pipe((0, operators_1.switchMap)((action) => {
24
- const { kind } = action.payload;
25
- const queryValue = QUERY_BY_TYPE[kind];
26
- const reportId = REPORT_ID_BY_TYPE[kind];
27
- const url = `https://dev.api.zeni.ai/version/accounting/komal/1.0/accounts?query=${encodeURIComponent(JSON.stringify(queryValue))}`;
28
- return zeniAPI.getJSON(url).pipe((0, operators_1.mergeMap)((response) => {
29
- if ((0, responsePayload_1.isSuccessResponse)(response) && response.data != null) {
30
- const accountIds = response.data.accounts.map((account) => account.account_id);
31
- const actions = [
32
- (0, accountReducer_1.updateAccounts)(response.data.accounts, reportId),
33
- (0, createTransferEntryReducer_1.updateAccountsForTransferFlow)({ accountIds, kind }),
34
- ];
35
- return (0, rxjs_1.of)(...actions);
36
- }
37
- return (0, rxjs_1.of)((0, createTransferEntryReducer_1.updateAccountsForTransferFlowFailure)({ kind }));
38
- }), (0, operators_1.catchError)(() => (0, rxjs_1.of)((0, createTransferEntryReducer_1.updateAccountsForTransferFlowFailure)({ kind }))));
39
- }))));
40
- exports.fetchTransferAccountsEpic = fetchTransferAccountsEpic;