@zeniai/client-epic-state 5.1.83 → 5.1.84-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 (34) hide show
  1. package/lib/entity/snackbar/snackbarTypes.d.ts +1 -1
  2. package/lib/entity/snackbar/snackbarTypes.js +2 -0
  3. package/lib/entity/tenant/tenantReducer.d.ts +5 -1
  4. package/lib/entity/tenant/tenantReducer.js +19 -2
  5. package/lib/epic.d.ts +3 -1
  6. package/lib/epic.js +3 -1
  7. package/lib/esm/entity/snackbar/snackbarTypes.js +2 -0
  8. package/lib/esm/entity/tenant/tenantReducer.js +18 -1
  9. package/lib/esm/epic.js +3 -1
  10. package/lib/esm/index.js +3 -2
  11. package/lib/esm/view/companyView/companyViewReducer.js +55 -1
  12. package/lib/esm/view/companyView/epic/companyPassport/updateCompanyProductServicesEpic.js +81 -0
  13. package/lib/esm/view/companyView/epic/updateCompanyQboRealmIdEpic.js +57 -0
  14. package/lib/esm/view/companyView/selector/companyManagementViewSelector.js +8 -0
  15. package/lib/esm/view/companyView/types/cockpitTypes.js +2 -0
  16. package/lib/esm/view/companyView/types/companyManagementViewState.js +7 -0
  17. package/lib/esm/view/companyView/types/companyPassport/companyPassportViewState.js +4 -0
  18. package/lib/index.d.ts +3 -3
  19. package/lib/index.js +37 -33
  20. package/lib/view/companyView/companyViewReducer.d.ts +19 -1
  21. package/lib/view/companyView/companyViewReducer.js +57 -3
  22. package/lib/view/companyView/epic/companyPassport/updateCompanyProductServicesEpic.d.ts +10 -0
  23. package/lib/view/companyView/epic/companyPassport/updateCompanyProductServicesEpic.js +85 -0
  24. package/lib/view/companyView/epic/updateCompanyQboRealmIdEpic.d.ts +8 -0
  25. package/lib/view/companyView/epic/updateCompanyQboRealmIdEpic.js +61 -0
  26. package/lib/view/companyView/selector/companyManagementViewSelector.js +8 -0
  27. package/lib/view/companyView/types/cockpitTypes.d.ts +2 -2
  28. package/lib/view/companyView/types/cockpitTypes.js +2 -0
  29. package/lib/view/companyView/types/companyManagementViewState.d.ts +2 -0
  30. package/lib/view/companyView/types/companyManagementViewState.js +8 -0
  31. package/lib/view/companyView/types/companyPassport/companyPassportViewState.d.ts +1 -0
  32. package/lib/view/companyView/types/companyPassport/companyPassportViewState.js +4 -0
  33. package/lib/view/expenseAutomationView/helpers/transactionCategorizationLocalDataHelper.d.ts +1 -1
  34. package/package.json +1 -1
@@ -0,0 +1,85 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.updateCompanyProductServicesEpic = void 0;
4
+ const rxjs_1 = require("rxjs");
5
+ const operators_1 = require("rxjs/operators");
6
+ const companyReducer_1 = require("../../../../entity/company/companyReducer");
7
+ const snackbarReducer_1 = require("../../../../entity/snackbar/snackbarReducer");
8
+ const tenantReducer_1 = require("../../../../entity/tenant/tenantReducer");
9
+ const responsePayload_1 = require("../../../../responsePayload");
10
+ const companyViewReducer_1 = require("../../companyViewReducer");
11
+ const updateCompanyProductServicesEpic = (actions$, state$, zeniAPI) => actions$.pipe((0, operators_1.filter)(companyViewReducer_1.updateCompanyProductServices.match), (0, operators_1.switchMap)((action) => {
12
+ const { companyId, services } = action.payload;
13
+ const { isBookkeepingEnabled, isBillPayEnabled, isReimbursementEnabled } = services;
14
+ const tenantId = Object.values(state$.value.tenantState.tenantsById).find((tenant) => tenant?.companyId === companyId)?.tenantId;
15
+ // Send only the service-enable fields so the backend routes this through
16
+ // its isolated "enable services" path. Bookkeeping is a Tenant product
17
+ // flag and implies spend management; bill pay / reimbursement are Company
18
+ // feature flags.
19
+ const requestBody = {};
20
+ if (isBookkeepingEnabled != null) {
21
+ requestBody.is_book_keeping_enabled = isBookkeepingEnabled;
22
+ requestBody.is_spend_management_enabled = isBookkeepingEnabled;
23
+ }
24
+ if (isBillPayEnabled != null) {
25
+ requestBody.is_bill_pay_feature_enabled = isBillPayEnabled;
26
+ }
27
+ if (isReimbursementEnabled != null) {
28
+ requestBody.is_reimbursement_feature_enabled = isReimbursementEnabled;
29
+ }
30
+ return zeniAPI
31
+ .putAndGetJSON(`${zeniAPI.apiEndPoints.tenantMicroServiceBaseUrl}/1.0/companies/${companyId}`, requestBody)
32
+ .pipe((0, operators_1.mergeMap)((response) => {
33
+ if ((0, responsePayload_1.isSuccessResponse)(response)) {
34
+ const companies = response.data?.companies ?? [];
35
+ if (companies.length > 0) {
36
+ const actions = [
37
+ (0, companyReducer_1.updateCompanies)({
38
+ payload: companies,
39
+ schema: {},
40
+ }),
41
+ ];
42
+ // The company response carries the company feature flags; the
43
+ // tenant product flags are not part of it, so merge them from
44
+ // the (now-succeeded) request values.
45
+ if (isBookkeepingEnabled != null && tenantId != null) {
46
+ actions.push((0, tenantReducer_1.updateTenantProductSettings)({
47
+ tenantId,
48
+ isBookkeepingEnabled,
49
+ isSpendManagementEnabled: isBookkeepingEnabled,
50
+ }));
51
+ }
52
+ actions.push((0, companyViewReducer_1.updateCompanyProductServicesSuccess)());
53
+ actions.push((0, snackbarReducer_1.openSnackbar)({
54
+ messageSection: 'product_services_update',
55
+ messageText: 'success',
56
+ type: 'success',
57
+ }));
58
+ return (0, rxjs_1.from)(actions);
59
+ }
60
+ }
61
+ return (0, rxjs_1.from)([
62
+ (0, companyViewReducer_1.updateCompanyProductServicesFailure)({
63
+ status: response.status,
64
+ }),
65
+ (0, snackbarReducer_1.openSnackbar)({
66
+ messageSection: 'product_services_update',
67
+ messageText: 'failed',
68
+ type: 'error',
69
+ }),
70
+ ]);
71
+ }), (0, operators_1.catchError)((error) => (0, rxjs_1.from)([
72
+ (0, companyViewReducer_1.updateCompanyProductServicesFailure)({
73
+ status: (0, responsePayload_1.createZeniAPIStatus)('Unexpected error', 'Update Company Product Services errored out' +
74
+ (error instanceof Error
75
+ ? error.message
76
+ : JSON.stringify(error))),
77
+ }),
78
+ (0, snackbarReducer_1.openSnackbar)({
79
+ messageSection: 'product_services_update',
80
+ messageText: 'failed',
81
+ type: 'error',
82
+ }),
83
+ ])));
84
+ }));
85
+ exports.updateCompanyProductServicesEpic = updateCompanyProductServicesEpic;
@@ -0,0 +1,8 @@
1
+ import { ActionsObservable, StateObservable } from 'redux-observable';
2
+ import { Observable } from 'rxjs';
3
+ import { openSnackbar } from '../../../entity/snackbar/snackbarReducer';
4
+ import { RootState } from '../../../reducer';
5
+ import { ZeniAPI } from '../../../zeniAPI';
6
+ import { updateCompanyQboRealmId, updateCompanyQboRealmIdFailure, updateCompanyQboRealmIdSuccess } from '../companyViewReducer';
7
+ export type ActionType = ReturnType<typeof openSnackbar> | ReturnType<typeof updateCompanyQboRealmId> | ReturnType<typeof updateCompanyQboRealmIdSuccess> | ReturnType<typeof updateCompanyQboRealmIdFailure>;
8
+ export declare const updateCompanyQboRealmIdEpic: (actions$: ActionsObservable<ActionType>, state$: StateObservable<RootState>, zeniAPI: ZeniAPI) => Observable<ActionType>;
@@ -0,0 +1,61 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.updateCompanyQboRealmIdEpic = 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 responsePayload_1 = require("../../../responsePayload");
8
+ const companyViewReducer_1 = require("../companyViewReducer");
9
+ const updateCompanyQboRealmIdEpic = (actions$, state$, zeniAPI) => actions$.pipe((0, operators_1.filter)(companyViewReducer_1.updateCompanyQboRealmId.match),
10
+ // Per-row admin action: several rows can be in flight at once, so each
11
+ // trigger keeps its own request instead of cancelling the previous one.
12
+ (0, operators_1.mergeMap)((action) => {
13
+ const { companyId, qboRealmId } = action.payload;
14
+ const tenantId = Object.values(state$.value.tenantState.tenantsById).find((tenant) => tenant?.companyId === companyId)?.tenantId;
15
+ if (tenantId == null) {
16
+ return (0, rxjs_1.from)([
17
+ (0, companyViewReducer_1.updateCompanyQboRealmIdFailure)(companyId, (0, responsePayload_1.createZeniAPIStatus)('Unexpected error', `No tenant found for companyId: ${companyId}`)),
18
+ (0, snackbarReducer_1.openSnackbar)({
19
+ messageSection: 'qbo_realm_id_update',
20
+ messageText: 'failed',
21
+ type: 'error',
22
+ }),
23
+ ]);
24
+ }
25
+ // The FE route reads the target tenant from the zeni-tenant-id header,
26
+ // which overrides the operator's ambient tenant for this request only.
27
+ // qboRealmId omitted -> null clears the pin; a value overwrites it.
28
+ return zeniAPI
29
+ .putAndGetJSON(`${zeniAPI.apiEndPoints.tenantMicroServiceBaseUrl}/1.0/qbo-realm-id`, { qbo_realm_id: qboRealmId ?? null }, { 'zeni-tenant-id': tenantId })
30
+ .pipe((0, operators_1.mergeMap)((response) => {
31
+ if ((0, responsePayload_1.isSuccessResponse)(response)) {
32
+ return (0, rxjs_1.from)([
33
+ (0, companyViewReducer_1.updateCompanyQboRealmIdSuccess)({ companyId }),
34
+ (0, snackbarReducer_1.openSnackbar)({
35
+ messageSection: 'qbo_realm_id_update',
36
+ messageText: 'success',
37
+ type: 'success',
38
+ }),
39
+ ]);
40
+ }
41
+ return (0, rxjs_1.from)([
42
+ (0, companyViewReducer_1.updateCompanyQboRealmIdFailure)(companyId, response.status),
43
+ (0, snackbarReducer_1.openSnackbar)({
44
+ messageSection: 'qbo_realm_id_update',
45
+ messageText: 'failed',
46
+ type: 'error',
47
+ }),
48
+ ]);
49
+ }), (0, operators_1.catchError)((error) => (0, rxjs_1.from)([
50
+ (0, companyViewReducer_1.updateCompanyQboRealmIdFailure)(companyId, (0, responsePayload_1.createZeniAPIStatus)('Unexpected error', 'Update Company QBO realm id errored out' +
51
+ (error instanceof Error
52
+ ? error.message
53
+ : JSON.stringify(error)))),
54
+ (0, snackbarReducer_1.openSnackbar)({
55
+ messageSection: 'qbo_realm_id_update',
56
+ messageText: 'failed',
57
+ type: 'error',
58
+ }),
59
+ ])));
60
+ }));
61
+ exports.updateCompanyQboRealmIdEpic = updateCompanyQboRealmIdEpic;
@@ -201,6 +201,8 @@ const sortAndFilterCompanies = (sortKey, sortOrder, filterText, companies, userS
201
201
  updatedCompanies.forEach((company) => {
202
202
  switch (sortKey) {
203
203
  case 'companyName':
204
+ case 'productVerticals':
205
+ case 'realmId':
204
206
  companiesWithSortKeyValue.push(company);
205
207
  break;
206
208
  case 'status':
@@ -436,6 +438,12 @@ const sortAndFilterCompanies = (sortKey, sortOrder, filterText, companies, userS
436
438
  primarySortValue = (company.company.company.companyInfo.bookCloseDate ??
437
439
  (0, zeniDayJS_1.date)('1970-01-01T00:00:00.000Z')).valueOf();
438
440
  break;
441
+ case 'productVerticals':
442
+ case 'realmId':
443
+ // Not a meaningful sort axis (both are cockpit action columns);
444
+ // keep stable order rather than falling through to the status/group
445
+ // default sort.
446
+ break;
439
447
  case 'status':
440
448
  default: {
441
449
  isMultiSortApplicable = true;
@@ -4,9 +4,9 @@ import { SubscriptionViewSortKey } from '../../subscriptionView/types/subscripti
4
4
  import { FilterCategoryValueType } from '../helpers/cockpitHelpers';
5
5
  import { CockpitDownloadTabsID, CockpitTabsFileType } from './cockpitTabsID';
6
6
  export declare const toPortfolioSortKeyType: (v: string) => "companyName" | "expenses" | "runway" | "cashBalance" | "revenues" | "netIncome";
7
- export declare const toManagementSortKeyType: (v: string) => "status" | "bookCloseDate" | "companyName" | "group" | "controller" | "plans" | "monthlyRecurringRevenue" | "notes" | "taxStatus" | "preparer" | "reviewer" | "annualRecurringRevenue" | "task" | "customerSuccessManager" | "apAnalyst" | "reportSent" | "taxLead" | "satisfaction";
7
+ export declare const toManagementSortKeyType: (v: string) => "status" | "bookCloseDate" | "companyName" | "group" | "controller" | "plans" | "monthlyRecurringRevenue" | "notes" | "taxStatus" | "preparer" | "reviewer" | "annualRecurringRevenue" | "realmId" | "task" | "productVerticals" | "customerSuccessManager" | "apAnalyst" | "reportSent" | "taxLead" | "satisfaction";
8
8
  export declare const toOnboardingSortKeyType: (v: string) => "companyName" | "notes" | "businessVerified" | "identityVerified" | "bankAccountLinked" | "customerCreated" | "groupCreated" | "qboLinked" | "enroller" | "invite" | "latestCreated";
9
- export declare const toHealthSortKeyType: (v: string) => "companyName" | "group" | "controller" | "monthlyRecurringRevenue" | "runway" | "companyEngagementMetricsUpdatedAt" | "customerSatisfactionScore" | "externalProductServiceExposure" | "netPromoterScore" | "customerSuccessManager" | "issues" | "productVerticals" | "churnProbability" | "lastReportSent" | "subscriptionDate" | "renewalDate" | "dashboardLastSeen" | "lastEngagement";
9
+ export declare const toHealthSortKeyType: (v: string) => "companyName" | "group" | "controller" | "monthlyRecurringRevenue" | "runway" | "companyEngagementMetricsUpdatedAt" | "customerSatisfactionScore" | "externalProductServiceExposure" | "netPromoterScore" | "productVerticals" | "customerSuccessManager" | "issues" | "churnProbability" | "lastReportSent" | "subscriptionDate" | "renewalDate" | "dashboardLastSeen" | "lastEngagement";
10
10
  export declare const toTaskManagerSortKeyType: (v: string) => "status" | "name" | "priority" | "tags" | "createdBy" | "dueDate" | "assignee" | "taskName";
11
11
  export type PortfolioViewSortKey = ReturnType<typeof toPortfolioSortKeyType>;
12
12
  export type ManagementViewSortKey = ReturnType<typeof toManagementSortKeyType>;
@@ -16,6 +16,8 @@ const ALL_MANAGEMENT_SORT_KEYS = [
16
16
  'status',
17
17
  'group',
18
18
  'plans',
19
+ 'productVerticals',
20
+ 'realmId',
19
21
  'controller',
20
22
  'customerSuccessManager',
21
23
  'reviewer',
@@ -4,6 +4,7 @@ import { CompanyManagementInfo } from '../../../entity/company/companyStateTypes
4
4
  import { CockpitFilters, ManagementViewSortKey } from './cockpitTypes';
5
5
  import { CommonState } from './commonState';
6
6
  export interface CompanyManagementViewState extends CommonState {
7
+ qboRealmIdUpdateStatusByCompanyId: Record<ID, FetchStateAndError>;
7
8
  uiState: ManagementUIState;
8
9
  updatesByCompanyId: Record<ID, CompanyManagementUpdateState>;
9
10
  }
@@ -18,6 +19,7 @@ export interface CompanyManagementUpdateState {
18
19
  }
19
20
  export declare function getCompanyManagementUpdatesInProgress(state: CompanyManagementViewState, companyId: ID, includeCompletedUpdates?: boolean): CompanyManagementUpdatesInProgress | undefined;
20
21
  export declare function getCompanyManagementPendingUpdates(companyId: ID, state: CompanyManagementViewState): Partial<CompanyManagementInfo> | undefined;
22
+ export declare function getCompanyQboRealmIdUpdateStatus(state: CompanyManagementViewState, companyId: ID): FetchStateAndError;
21
23
  export interface ManagementUIState {
22
24
  filters: CockpitFilters;
23
25
  filterText: string;
@@ -3,6 +3,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.initialCompanyManagementView = void 0;
4
4
  exports.getCompanyManagementUpdatesInProgress = getCompanyManagementUpdatesInProgress;
5
5
  exports.getCompanyManagementPendingUpdates = getCompanyManagementPendingUpdates;
6
+ exports.getCompanyQboRealmIdUpdateStatus = getCompanyQboRealmIdUpdateStatus;
6
7
  const commonState_1 = require("./commonState");
7
8
  function getCompanyManagementUpdatesInProgress(state, companyId, includeCompletedUpdates = false) {
8
9
  const updatesInProgress = state.updatesByCompanyId[companyId]?.updatesInProgress;
@@ -21,9 +22,16 @@ function getCompanyManagementUpdatesInProgress(state, companyId, includeComplete
21
22
  function getCompanyManagementPendingUpdates(companyId, state) {
22
23
  return state.updatesByCompanyId[companyId]?.pendingUpdates;
23
24
  }
25
+ function getCompanyQboRealmIdUpdateStatus(state, companyId) {
26
+ return (state.qboRealmIdUpdateStatusByCompanyId[companyId] ?? {
27
+ fetchState: 'Not-Started',
28
+ error: undefined,
29
+ });
30
+ }
24
31
  exports.initialCompanyManagementView = {
25
32
  ...commonState_1.initialCommonState,
26
33
  updatesByCompanyId: {},
34
+ qboRealmIdUpdateStatusByCompanyId: {},
27
35
  uiState: {
28
36
  sortKey: 'status',
29
37
  sortOrder: 'ascending',
@@ -20,5 +20,6 @@ export interface CompanyPassportViewState extends CommonState, FetchedState {
20
20
  updateStatus: FetchStateAndError;
21
21
  localData?: PrimaryContactLocalData;
22
22
  };
23
+ productServicesUpdateStatus: FetchStateAndError;
23
24
  }
24
25
  export declare const initialCompanyPassportView: CompanyPassportViewState;
@@ -12,6 +12,10 @@ exports.initialCompanyPassportView = {
12
12
  fetchState: 'Not-Started',
13
13
  error: undefined,
14
14
  },
15
+ productServicesUpdateStatus: {
16
+ fetchState: 'Not-Started',
17
+ error: undefined,
18
+ },
15
19
  capitalizationThresholdUpdateStatus: {
16
20
  fetchState: 'Not-Started',
17
21
  error: undefined,
@@ -39,7 +39,7 @@ export declare const getLineItemsByTransactionsIdsFromResponse: (transactions: S
39
39
  export declare const getLineItemsByTransactionIdsFromLocalData: (transactionLocalData: TransactionReviewLocalDataSelectorView[], selectedTab: TransactionsTab) => Record<ID, string[]>;
40
40
  export declare const mergeTabSpecificLineItems: (currentTabSpecificLineItems: TabSpecificLineItems, selectedTab: TransactionsTab, newLineItems: TabSpecificLineItems) => TabSpecificLineItems;
41
41
  export declare const getSnackbarMessageForTransactionReview: (updatedCount: number, failedCount: number, categorizedCount: number) => {
42
- messageSection: "common" | "transactionDetails_updatingPastTransactions" | "transactionDetails_transactionUpdated" | "cockpit_month_end_email_sent" | "cockpit_month_end_email_save" | "cockpit_month_end_email_attachment_upload" | "je_bill_link" | "je_posted" | "audit_score_updated" | "people_invite_people" | "people_invite_multiple_people" | "people_delete_person" | "people_update_person" | "reimbursement_updated" | "reimbursement_deleted" | "reimbursement_cancelled_deleted" | "reimbursement_cancelled" | "reimbursement_approved" | "reimbursement_rejected" | "reimbursement_sent_for_approval" | "account_added" | "business_verification_save" | "business_verification_submit" | "business_verification_from_bills_submit" | "plaid_connection" | "unlink_deposit_account" | "reimbursement_setup" | "reimbursement_approval_create" | "reimbursement_duplicate_approval_create" | "reimbursement_approval_update" | "reimbursement_duplicate_approval_update" | "reimbursement_approval_delete" | "reimbursement_approval_reorder" | "reimbursement_create_mileage" | "reimbursement_update_mileage" | "reimbursement_accept_term" | "reimbursement_accept_employee_term" | "reimbursement_bulk_submit" | "reimbursement_bulk_processed" | "bill_pay_setup" | "zeni_accounts_setup" | "bill_pay_approval_create" | "bill_pay_duplicate_approval_create" | "bill_pay_approval_update" | "bill_pay_duplicate_approval_update" | "bill_pay_approval_delete" | "bill_pay_approval_reorder" | "bill_pay_updated" | "bill_pay_deleted" | "bill_pay_cancelled_deleted" | "bill_pay_cancelled" | "bill_pay_approved" | "real_time_approver_added" | "bill_pay_rejected" | "bill_pay_sent_for_approval" | "bill_pay_accept_term" | "bill_pay_bulk_submit" | "bill_pay_bulk_processed" | "bill_pay_refund" | "bill_pay_retry" | "bill_pay_marked_as_paid" | "zeni_account_accept_term" | "update_vendor" | "data_refresh_update" | "delete_bank_account" | "create_bank_account" | "create_bank_account_ach" | "create_bank_account_wire" | "create_bank_account_international" | "transfer_money" | "update_zeni_account_nickname" | "create_checking_account" | "deposit_check" | "create_vendor" | "onboarding_customer_view" | "onboarding_customer_view_complete" | "onboarding_customer_identity_verification_save" | "onboarding_customer_identity_verification_submit" | "onboarding_customer_business_verification_save" | "onboarding_customer_business_verification_submit" | "retry_bank_account_connection" | "dashboard_invite_sent" | "onboarding_info_saved" | "approve_original_merchant" | "approve_global_merchant" | "reject_global_merchant" | "create_global_merchant" | "fetch_global_merchant_no_recommendation" | "save_vendor_renamed" | "save_vendor_sent_for_review" | "save_vendor_marked_as_employee" | "save_vendor_marked_as_local_contractor" | "charge_card_setup" | "charge_card_accept_term" | "charge_card_receipt_upload" | "charge_card_resend_invite" | "charge_card_revoke_invite" | "card_policy_created" | "card_policy_updated" | "card_policy_deleted" | "charge_card_update_limit" | "charge_cards_update_limit" | "close_charge_card" | "lock_charge_card" | "lock_charge_card_card_user" | "lock_charge_cards" | "unlock_charge_card" | "unlock_charge_card_card_user" | "unlock_charge_cards" | "close_charge_cards" | "revoke_invite_charge_cards" | "charge_card_express_interest" | "create_schedule" | "save_schedule" | "delete_schedule" | "ignore_schedule" | "save_task_detail" | "fetch_task_detail" | "delete_task" | "archive_task" | "snooze_task" | "unsnooze_task" | "create_tag" | "delete_tag" | "update_charge_card" | "update_charge_card_name" | "update_charge_card_name_card_user" | "issue_charge_card" | "issue_charge_cards" | "notification_settings_saved" | "referral_invite_sent" | "notification_mark_as_read" | "mark_as_complete_schedule" | "cancel_journal_entry" | "settings_accounting_accounts_updated" | "create_card_setup" | "confirm_card_setup" | "add_card_payment_source" | "fetch_payment_sources" | "task_assigned_toast_notification" | "task_due_tomorrow_toast_notification" | "task_deleted_toast_notification" | "task_archived_toast_notification" | "task_overdue_toast_notification" | "task_overdue_toast_notification_creator" | "task_notification_count" | "task_activities_toast_notification" | "task_created_toast_notification" | "task_group_creation_success" | "task_group_deletion_success" | "task_group_update_success" | "primary_funding_account_updated" | "task_time_spent_validation" | "missing_receipts_attachment" | "flux_analysis_unreviewed" | "flux_analysis_reviewed" | "receipt_match" | "receipts_upload" | "receipts_bulk_match" | "billing_address_view" | "express_pay_submit" | "exclude_transaction" | "reconcile" | "save_reconcile_for_later" | "recon_transaction_categorize" | "recon_transaction_match" | "update_debit_card_pin_attempt" | "set_debit_card_pin" | "ai_cfo_create_session_and_submit" | "ai_cfo_chat_session_deleted" | "charge_card_auto_pay_enable" | "charge_card_auto_pay_disable" | "treasury_setup" | "treasury_accept_term" | "treasury_transfer_money" | "treasury_transfer_money_failed" | "auto_transfer_rule_create" | "auto_transfer_rule_update" | "auto_transfer_rule_delete" | "auto_transfer_rule_pause" | "auto_transfer_rule_resume" | "treasury_update_portfolio_allocation" | "send_email_magic_link_to_user" | "complete_profile_done" | "create_transfer_entry" | "reports_resync" | "invalid_phone_number" | "transactions_categorized_updated_failed" | "transaction_categorized_updated_failed" | "transactionsCategorized_transactionsUpdated" | "transactionsCategorized_transactionUpdated" | "transactionCategorized_transactionsUpdated" | "transactionCategorized_transactionUpdated" | "transactionsCategorized_transactionsFailed" | "transactionsCategorized_transactionFailed" | "transactionCategorized_transactionsFailed" | "transactionCategorized_transactionFailed" | "transactionsUpdated_transactionsFailed" | "transactionsUpdated_transactionFailed" | "transactionUpdated_transactionsFailed" | "transactionUpdated_transactionFailed" | "transactionsCategorized_transactionsUpdated_transactionsFailed" | "transactionsCategorized_transactionsUpdated_transactionFailed" | "transactionsCategorized_transactionUpdated_transactionsFailed" | "transactionCategorized_transactionsUpdated_transactionsFailed" | "transactionsCategorized_transactionUpdated_transactionFailed" | "transactionCategorized_transactionsUpdated_transactionFailed" | "transactionCategorized_transactionUpdated_transactionsFailed" | "transactionCategorized_transactionUpdated_transactionFailed" | "accounting_classes_enabled_update" | "accounting_projects_enabled_update" | "accounting_projects_qbo_not_enabled" | "capitalization_threshold_update" | "account_excluded_from_reconciliation" | "account_included_in_reconciliation" | "statement_parsing_in_progress" | "statement_parsing_complete" | "ai_accountant_trigger_job" | "oauth_consent_approve" | "oauth_consent_invalid_request" | "credit_agent_update_profile" | "credit_agent_save_macro" | "credit_agent_schedule_cron" | "create_sub_task" | "qbo_connection_already_linked" | "qbo_connection_failed" | "accounting_projects_qbo_reconnect_failed" | "invoicing_dunning_case_resolved" | "invoicing_dunning_retry" | "invoicing_dunning_cancel" | "invoicing_dunning_settings_save" | "invoicing_qbo_backfill" | "invoicing_qbo_sync_health_retry" | "invoicing_qbo_settings_save" | "invoicing_branding_save" | "invoicing_discount_archive" | "invoicing_discount_unarchive" | "invoicing_discount_delete" | "invoicing_invoice_reminder_sent" | "invoicing_invoice_regenerated" | "invoicing_invoice_voided" | "invoicing_catalog_item_saved" | "invoicing_customer_saved" | "invoicing_subscription_saved" | "invoicing_coupon_saved" | "invoicing_invoice_saved" | "invoicing_credit_note_saved" | "invoicing_payment_recorded" | "invoicing_subscription_activated" | "invoicing_subscription_cancellation_removed" | "invoicing_subscription_cancelled" | "invoicing_subscription_non_renewing" | "invoicing_subscription_paused" | "invoicing_subscription_reactivated" | "invoicing_subscription_resumed" | "invoicing_subscription_term_end_changed";
42
+ messageSection: "common" | "transactionDetails_updatingPastTransactions" | "transactionDetails_transactionUpdated" | "cockpit_month_end_email_sent" | "cockpit_month_end_email_save" | "cockpit_month_end_email_attachment_upload" | "je_bill_link" | "je_posted" | "audit_score_updated" | "people_invite_people" | "people_invite_multiple_people" | "people_delete_person" | "people_update_person" | "reimbursement_updated" | "reimbursement_deleted" | "reimbursement_cancelled_deleted" | "reimbursement_cancelled" | "reimbursement_approved" | "reimbursement_rejected" | "reimbursement_sent_for_approval" | "account_added" | "business_verification_save" | "business_verification_submit" | "business_verification_from_bills_submit" | "plaid_connection" | "unlink_deposit_account" | "reimbursement_setup" | "reimbursement_approval_create" | "reimbursement_duplicate_approval_create" | "reimbursement_approval_update" | "reimbursement_duplicate_approval_update" | "reimbursement_approval_delete" | "reimbursement_approval_reorder" | "reimbursement_create_mileage" | "reimbursement_update_mileage" | "reimbursement_accept_term" | "reimbursement_accept_employee_term" | "reimbursement_bulk_submit" | "reimbursement_bulk_processed" | "bill_pay_setup" | "zeni_accounts_setup" | "bill_pay_approval_create" | "bill_pay_duplicate_approval_create" | "bill_pay_approval_update" | "bill_pay_duplicate_approval_update" | "bill_pay_approval_delete" | "bill_pay_approval_reorder" | "bill_pay_updated" | "bill_pay_deleted" | "bill_pay_cancelled_deleted" | "bill_pay_cancelled" | "bill_pay_approved" | "real_time_approver_added" | "bill_pay_rejected" | "bill_pay_sent_for_approval" | "bill_pay_accept_term" | "bill_pay_bulk_submit" | "bill_pay_bulk_processed" | "bill_pay_refund" | "bill_pay_retry" | "bill_pay_marked_as_paid" | "zeni_account_accept_term" | "update_vendor" | "data_refresh_update" | "delete_bank_account" | "create_bank_account" | "create_bank_account_ach" | "create_bank_account_wire" | "create_bank_account_international" | "transfer_money" | "update_zeni_account_nickname" | "create_checking_account" | "deposit_check" | "create_vendor" | "onboarding_customer_view" | "onboarding_customer_view_complete" | "onboarding_customer_identity_verification_save" | "onboarding_customer_identity_verification_submit" | "onboarding_customer_business_verification_save" | "onboarding_customer_business_verification_submit" | "retry_bank_account_connection" | "dashboard_invite_sent" | "onboarding_info_saved" | "approve_original_merchant" | "approve_global_merchant" | "reject_global_merchant" | "create_global_merchant" | "fetch_global_merchant_no_recommendation" | "save_vendor_renamed" | "save_vendor_sent_for_review" | "save_vendor_marked_as_employee" | "save_vendor_marked_as_local_contractor" | "charge_card_setup" | "charge_card_accept_term" | "charge_card_receipt_upload" | "charge_card_resend_invite" | "charge_card_revoke_invite" | "card_policy_created" | "card_policy_updated" | "card_policy_deleted" | "charge_card_update_limit" | "charge_cards_update_limit" | "close_charge_card" | "lock_charge_card" | "lock_charge_card_card_user" | "lock_charge_cards" | "unlock_charge_card" | "unlock_charge_card_card_user" | "unlock_charge_cards" | "close_charge_cards" | "revoke_invite_charge_cards" | "charge_card_express_interest" | "create_schedule" | "save_schedule" | "delete_schedule" | "ignore_schedule" | "save_task_detail" | "fetch_task_detail" | "delete_task" | "archive_task" | "snooze_task" | "unsnooze_task" | "create_tag" | "delete_tag" | "update_charge_card" | "update_charge_card_name" | "update_charge_card_name_card_user" | "issue_charge_card" | "issue_charge_cards" | "notification_settings_saved" | "referral_invite_sent" | "notification_mark_as_read" | "mark_as_complete_schedule" | "cancel_journal_entry" | "settings_accounting_accounts_updated" | "create_card_setup" | "confirm_card_setup" | "add_card_payment_source" | "fetch_payment_sources" | "task_assigned_toast_notification" | "task_due_tomorrow_toast_notification" | "task_deleted_toast_notification" | "task_archived_toast_notification" | "task_overdue_toast_notification" | "task_overdue_toast_notification_creator" | "task_notification_count" | "task_activities_toast_notification" | "task_created_toast_notification" | "task_group_creation_success" | "task_group_deletion_success" | "task_group_update_success" | "primary_funding_account_updated" | "task_time_spent_validation" | "missing_receipts_attachment" | "flux_analysis_unreviewed" | "flux_analysis_reviewed" | "receipt_match" | "receipts_upload" | "receipts_bulk_match" | "billing_address_view" | "express_pay_submit" | "exclude_transaction" | "reconcile" | "save_reconcile_for_later" | "recon_transaction_categorize" | "recon_transaction_match" | "update_debit_card_pin_attempt" | "set_debit_card_pin" | "ai_cfo_create_session_and_submit" | "ai_cfo_chat_session_deleted" | "charge_card_auto_pay_enable" | "charge_card_auto_pay_disable" | "treasury_setup" | "treasury_accept_term" | "treasury_transfer_money" | "treasury_transfer_money_failed" | "auto_transfer_rule_create" | "auto_transfer_rule_update" | "auto_transfer_rule_delete" | "auto_transfer_rule_pause" | "auto_transfer_rule_resume" | "treasury_update_portfolio_allocation" | "send_email_magic_link_to_user" | "complete_profile_done" | "create_transfer_entry" | "reports_resync" | "invalid_phone_number" | "transactions_categorized_updated_failed" | "transaction_categorized_updated_failed" | "transactionsCategorized_transactionsUpdated" | "transactionsCategorized_transactionUpdated" | "transactionCategorized_transactionsUpdated" | "transactionCategorized_transactionUpdated" | "transactionsCategorized_transactionsFailed" | "transactionsCategorized_transactionFailed" | "transactionCategorized_transactionsFailed" | "transactionCategorized_transactionFailed" | "transactionsUpdated_transactionsFailed" | "transactionsUpdated_transactionFailed" | "transactionUpdated_transactionsFailed" | "transactionUpdated_transactionFailed" | "transactionsCategorized_transactionsUpdated_transactionsFailed" | "transactionsCategorized_transactionsUpdated_transactionFailed" | "transactionsCategorized_transactionUpdated_transactionsFailed" | "transactionCategorized_transactionsUpdated_transactionsFailed" | "transactionsCategorized_transactionUpdated_transactionFailed" | "transactionCategorized_transactionsUpdated_transactionFailed" | "transactionCategorized_transactionUpdated_transactionsFailed" | "transactionCategorized_transactionUpdated_transactionFailed" | "accounting_classes_enabled_update" | "accounting_projects_enabled_update" | "accounting_projects_qbo_not_enabled" | "capitalization_threshold_update" | "account_excluded_from_reconciliation" | "account_included_in_reconciliation" | "statement_parsing_in_progress" | "statement_parsing_complete" | "ai_accountant_trigger_job" | "oauth_consent_approve" | "oauth_consent_invalid_request" | "credit_agent_update_profile" | "credit_agent_save_macro" | "credit_agent_schedule_cron" | "create_sub_task" | "qbo_connection_already_linked" | "qbo_connection_failed" | "accounting_projects_qbo_reconnect_failed" | "product_services_update" | "qbo_realm_id_update" | "invoicing_dunning_case_resolved" | "invoicing_dunning_retry" | "invoicing_dunning_cancel" | "invoicing_dunning_settings_save" | "invoicing_qbo_backfill" | "invoicing_qbo_sync_health_retry" | "invoicing_qbo_settings_save" | "invoicing_branding_save" | "invoicing_discount_archive" | "invoicing_discount_unarchive" | "invoicing_discount_delete" | "invoicing_invoice_reminder_sent" | "invoicing_invoice_regenerated" | "invoicing_invoice_voided" | "invoicing_catalog_item_saved" | "invoicing_customer_saved" | "invoicing_subscription_saved" | "invoicing_coupon_saved" | "invoicing_invoice_saved" | "invoicing_credit_note_saved" | "invoicing_payment_recorded" | "invoicing_subscription_activated" | "invoicing_subscription_cancellation_removed" | "invoicing_subscription_cancelled" | "invoicing_subscription_non_renewing" | "invoicing_subscription_paused" | "invoicing_subscription_reactivated" | "invoicing_subscription_resumed" | "invoicing_subscription_term_end_changed";
43
43
  messageText: "notification" | "failed" | "success";
44
44
  type: "error" | "success" | "info";
45
45
  variables: {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@zeniai/client-epic-state",
3
- "version": "5.1.83",
3
+ "version": "5.1.84-beta0ND",
4
4
  "description": "Shared module between Web & Mobile containing required abstractions for state management, async network communication. ",
5
5
  "main": "lib/index.js",
6
6
  "module": "lib/esm/index.js",