@zeniai/client-epic-state 5.0.4-beta0ND → 5.0.4-betaJK1
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.
- package/lib/coreEpics.js +1 -2
- package/lib/entity/accountRecon/accountReconState.d.ts +1 -1
- package/lib/entity/accountRecon/accountReconState.js +1 -0
- package/lib/entity/aiAccountantCustomer/aiAccountantCustomerPayload.d.ts +1 -9
- package/lib/entity/aiAccountantCustomer/aiAccountantCustomerPayload.js +1 -16
- package/lib/entity/tenant/tenantReducer.d.ts +1 -5
- package/lib/entity/tenant/tenantReducer.js +2 -23
- package/lib/entity/tenant/tenantState.d.ts +0 -1
- package/lib/esm/coreEpics.js +1 -2
- package/lib/esm/entity/accountRecon/accountReconState.js +1 -0
- package/lib/esm/entity/aiAccountantCustomer/aiAccountantCustomerPayload.js +1 -16
- package/lib/esm/entity/tenant/tenantReducer.js +1 -21
- package/lib/esm/index.js +2 -5
- package/lib/esm/view/expenseAutomationView/epics/accountRecon/fetchReconciliationViewEpic.js +2 -0
- package/lib/esm/view/expenseAutomationView/epics/accountRecon/initialiseLocalDataForSelectedAccountIdEpic.js +1 -0
- package/lib/esm/view/expenseAutomationView/epics/accountRecon/saveReconciliationReviewEpic.js +29 -2
- package/lib/esm/view/expenseAutomationView/epics/accountRecon/uploadAccountStatementDocumentAIHelper.js +2 -1
- package/lib/index.d.ts +2 -5
- package/lib/index.js +30 -36
- package/lib/view/expenseAutomationView/epics/accountRecon/fetchReconciliationViewEpic.js +2 -0
- package/lib/view/expenseAutomationView/epics/accountRecon/initialiseLocalDataForSelectedAccountIdEpic.js +1 -0
- package/lib/view/expenseAutomationView/epics/accountRecon/saveReconciliationReviewEpic.js +29 -2
- package/lib/view/expenseAutomationView/epics/accountRecon/uploadAccountStatementDocumentAIHelper.d.ts +1 -1
- package/lib/view/expenseAutomationView/epics/accountRecon/uploadAccountStatementDocumentAIHelper.js +2 -1
- package/lib/view/expenseAutomationView/types/reconciliationViewState.d.ts +4 -1
- package/package.json +1 -1
- package/lib/entity/tenant/SessionManager.d.ts +0 -38
- package/lib/entity/tenant/SessionManager.js +0 -171
- package/lib/entity/tenant/epic/sessionHeartbeatEpic.d.ts +0 -16
- package/lib/entity/tenant/epic/sessionHeartbeatEpic.js +0 -16
- package/lib/entity/tenant/sessionTypes.d.ts +0 -26
- package/lib/entity/tenant/sessionTypes.js +0 -12
- package/lib/esm/entity/tenant/SessionManager.js +0 -167
- package/lib/esm/entity/tenant/epic/sessionHeartbeatEpic.js +0 -12
- package/lib/esm/entity/tenant/sessionTypes.js +0 -9
- package/lib/tsconfig.typecheck.tsbuildinfo +0 -1
package/lib/coreEpics.js
CHANGED
|
@@ -24,7 +24,6 @@ const resendVerifyDeviceOTPEpic_1 = require("./entity/tenant/epic/resendVerifyDe
|
|
|
24
24
|
const saveExternalConnectionEpic_1 = require("./entity/tenant/epic/saveExternalConnectionEpic");
|
|
25
25
|
const sendEmailMagicLinkToUserEpic_1 = require("./entity/tenant/epic/sendEmailMagicLinkToUserEpic");
|
|
26
26
|
const signInUserEpic_1 = require("./entity/tenant/epic/signInUserEpic");
|
|
27
|
-
const sessionHeartbeatEpic_1 = require("./entity/tenant/epic/sessionHeartbeatEpic");
|
|
28
27
|
const signOutUserEpic_1 = require("./entity/tenant/epic/signOutUserEpic");
|
|
29
28
|
const verifyDeviceWithTwoFAEpic_1 = require("./entity/tenant/epic/verifyDeviceWithTwoFAEpic");
|
|
30
29
|
// ── Toast Notification Epic ──────────────────────────────────────────
|
|
@@ -49,7 +48,7 @@ const verifyOtpEpic_1 = require("./view/twoFactorAuthentication/verifyOtpEpic");
|
|
|
49
48
|
// RootActionType is only available in the dynamically imported epic.ts.
|
|
50
49
|
const coreRootEpic = (0, redux_observable_1.combineEpics)(
|
|
51
50
|
// Auth & tenant
|
|
52
|
-
clearAllEpic_1.clearAllEpic, doMagicLinkSignInEpic_1.doMagicLinkSignInEpic, signInUserEpic_1.doSignInEpic, signOutUserEpic_1.doSignOutEpic,
|
|
51
|
+
clearAllEpic_1.clearAllEpic, doMagicLinkSignInEpic_1.doMagicLinkSignInEpic, signInUserEpic_1.doSignInEpic, signOutUserEpic_1.doSignOutEpic, fetchActiveTenantEpic_1.fetchActiveTenantEpic, fetchAllTenantsEpic_1.fetchAllTenantsEpic, fetchExcludedResourcesEpic_1.fetchExcludedResourcesEpic, fetchExternalConnectionsEpic_1.fetchExternalConnectionsEpic, fetchSubscriptionSummaryForTenantEpic_1.fetchSubscriptionSummaryForTenantEpic, resendVerifyDeviceOTPEpic_1.resendVerifyDeviceOTPEpic, saveExternalConnectionEpic_1.saveExternalConnectionEpic, sendEmailMagicLinkToUserEpic_1.sendEmailMagicLinkToUserEpic, verifyDeviceWithTwoFAEpic_1.verifyDeviceWithTwoFAEpic,
|
|
53
52
|
// Toast
|
|
54
53
|
pushToastNotificationEpic_1.pushToastNotificationEpic,
|
|
55
54
|
// Collaboration
|
|
@@ -4,7 +4,7 @@ import { MonthYearPeriod } from '../../commonStateTypes/timePeriod';
|
|
|
4
4
|
import { ZeniDate } from '../../zeniDayJS';
|
|
5
5
|
import { MerchantType, TransactionDirectionType } from '../transaction/stateTypes/reconciliationTransaction';
|
|
6
6
|
import { TransactionType } from '../transaction/stateTypes/transactionType';
|
|
7
|
-
export declare const toRecommendedActionCodeType: (v: string) => "record_expense" | "record_deposit" | "record_transfer" | "record_bill_payment" | "record_cc_payment" | "record_cc_credit";
|
|
7
|
+
export declare const toRecommendedActionCodeType: (v: string) => "record_expense" | "record_deposit" | "record_transfer" | "record_bill_payment" | "record_cc_payment" | "record_cc_credit" | "record_journal_entry";
|
|
8
8
|
export type RecommendedActionCodeType = ReturnType<typeof toRecommendedActionCodeType>;
|
|
9
9
|
export declare const toReconciliationStatusCodeType: (v: string) => "pending" | "failed" | "in_progress" | "save_for_later" | "reconciled" | "reconciled_on_qbo";
|
|
10
10
|
export type ReconciliationStatusCodeType = ReturnType<typeof toReconciliationStatusCodeType>;
|
|
@@ -10,6 +10,7 @@ const RECOMMENDED_ACTION_CODE = [
|
|
|
10
10
|
'record_bill_payment', // Match
|
|
11
11
|
'record_cc_payment', // Categorize
|
|
12
12
|
'record_cc_credit', // Categorize
|
|
13
|
+
'record_journal_entry', // Journal Entry
|
|
13
14
|
];
|
|
14
15
|
const toRecommendedActionCodeType = (v) => (0, stringToUnion_1.stringToUnion)(v, RECOMMENDED_ACTION_CODE);
|
|
15
16
|
exports.toRecommendedActionCodeType = toRecommendedActionCodeType;
|
|
@@ -1,15 +1,7 @@
|
|
|
1
1
|
import { AiAccountantCustomer, AiAccountantEnrollment, AiAccountantJob } from './aiAccountantCustomerState';
|
|
2
|
-
export interface AiAccountantModelAccuracyPayload {
|
|
3
|
-
accuracy: number;
|
|
4
|
-
model_id: string;
|
|
5
|
-
passed: boolean;
|
|
6
|
-
threshold: number;
|
|
7
|
-
training_status: string;
|
|
8
|
-
validated_at: string;
|
|
9
|
-
}
|
|
10
2
|
export interface AiAccountantEnrollmentPayload {
|
|
11
3
|
status: string;
|
|
12
|
-
accuracy?: Record<string,
|
|
4
|
+
accuracy?: Record<string, number>;
|
|
13
5
|
latest_training?: string;
|
|
14
6
|
latest_transaction_sync?: string;
|
|
15
7
|
offboarded_at?: string;
|
|
@@ -4,24 +4,9 @@ exports.toAiAccountantJob = exports.toAiAccountantCustomer = exports.toAiAccount
|
|
|
4
4
|
const zeniDayJS_1 = require("../../zeniDayJS");
|
|
5
5
|
const aiAccountantCustomerState_1 = require("./aiAccountantCustomerState");
|
|
6
6
|
// ── Mapping functions (payload → state) ──
|
|
7
|
-
// Backend returns accuracy as a percent (0–100) inside a nested object; the UI
|
|
8
|
-
// layer treats it as a 0–1 fraction. Normalize here and drop malformed entries.
|
|
9
|
-
const toAccuracyByModel = (accuracyPayload) => {
|
|
10
|
-
if (accuracyPayload == null) {
|
|
11
|
-
return undefined;
|
|
12
|
-
}
|
|
13
|
-
const result = {};
|
|
14
|
-
Object.entries(accuracyPayload).forEach(([model, entry]) => {
|
|
15
|
-
const percent = entry?.accuracy;
|
|
16
|
-
if (typeof percent === 'number' && Number.isFinite(percent)) {
|
|
17
|
-
result[model] = percent / 100;
|
|
18
|
-
}
|
|
19
|
-
});
|
|
20
|
-
return Object.keys(result).length > 0 ? result : undefined;
|
|
21
|
-
};
|
|
22
7
|
const toAiAccountantEnrollment = (payload) => ({
|
|
23
8
|
status: (0, aiAccountantCustomerState_1.toAiAccountantEnrollmentStatus)(payload.status),
|
|
24
|
-
accuracy:
|
|
9
|
+
accuracy: payload.accuracy,
|
|
25
10
|
latestTraining: payload.latest_training != null
|
|
26
11
|
? (0, zeniDayJS_1.date)(payload.latest_training)
|
|
27
12
|
: undefined,
|
|
@@ -51,11 +51,7 @@ export declare const updateTenants: import("@reduxjs/toolkit").ActionCreatorWith
|
|
|
51
51
|
accountLockTime?: string;
|
|
52
52
|
accountUnlockTime?: string;
|
|
53
53
|
isAccountLocked?: boolean;
|
|
54
|
-
}, "tenant/sendEmailMagicLinkToUserFailure">, updateSignInState: import("@reduxjs/toolkit").ActionCreatorWithPayload<FetchState, "tenant/updateSignInState">, doSignOut: import("@reduxjs/toolkit").ActionCreatorWithoutPayload<"tenant/doSignOut">, signOutSuccess: import("@reduxjs/toolkit").ActionCreatorWithoutPayload<"tenant/signOutSuccess">,
|
|
55
|
-
expiresAt: string;
|
|
56
|
-
}, "tenant/sessionHeartbeatSuccess", never, never>, sessionHeartbeatFailure: import("@reduxjs/toolkit").ActionCreatorWithPreparedPayload<[error: ZeniAPIStatus<Record<string, unknown>>], {
|
|
57
|
-
error: ZeniAPIStatus<Record<string, unknown>>;
|
|
58
|
-
}, "tenant/sessionHeartbeatFailure", never, never>, updateLoggedInUser: import("@reduxjs/toolkit").ActionCreatorWithPreparedPayload<[userPayload: LoggedInUserPayload, zeniSessionId: string, authProvider: AuthProvider], {
|
|
54
|
+
}, "tenant/sendEmailMagicLinkToUserFailure">, updateSignInState: import("@reduxjs/toolkit").ActionCreatorWithPayload<FetchState, "tenant/updateSignInState">, doSignOut: import("@reduxjs/toolkit").ActionCreatorWithoutPayload<"tenant/doSignOut">, signOutSuccess: import("@reduxjs/toolkit").ActionCreatorWithoutPayload<"tenant/signOutSuccess">, updateLoggedInUser: import("@reduxjs/toolkit").ActionCreatorWithPreparedPayload<[userPayload: LoggedInUserPayload, zeniSessionId: string, authProvider: AuthProvider], {
|
|
59
55
|
userPayload: LoggedInUserPayload;
|
|
60
56
|
zeniSessionId: string;
|
|
61
57
|
authProvider: AuthProvider;
|
|
@@ -4,8 +4,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
4
4
|
};
|
|
5
5
|
var _a;
|
|
6
6
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
7
|
-
exports.resendVerifyDeviceOTPSuccess = exports.resendVerifyDeviceOTP = exports.verifyDeviceWithTwoFAFailure = exports.verifyDeviceWithTwoFASuccess = exports.verifyDeviceWithTwoFA = exports.updateTenantMasterTOSInfo = exports.updateTenantAccountingClassesEnabled = exports.trigger2FA = exports.resetSignInState = exports.updateTreasuryVideoViewedForLoggedInUser = exports.updateReferViewedForLoggedInUser = exports.updateTenantReimbursementInfo = exports.removeOnboardingTenant = exports.updateOnboardingTenants = exports.updateSubscriptionSummaryForTenantFailure = exports.updateSubscriptionSummaryForTenantSuccess = exports.fetchSubscriptionSummaryForTenant = exports.clearAll = exports.fetchExternalConnectionsSuccess = exports.fetchExternalConnectionsFailure = exports.saveExternalConnectionFailure = exports.saveExternalConnectionSuccess = exports.saveExternalConnection = exports.fetchExternalConnections = exports.updateLoggedInUser = exports.
|
|
8
|
-
exports.toConnection = exports.toRoleResource = exports.resendVerifyDeviceOTPFailure = void 0;
|
|
7
|
+
exports.toConnection = exports.toRoleResource = exports.resendVerifyDeviceOTPFailure = exports.resendVerifyDeviceOTPSuccess = exports.resendVerifyDeviceOTP = exports.verifyDeviceWithTwoFAFailure = exports.verifyDeviceWithTwoFASuccess = exports.verifyDeviceWithTwoFA = exports.updateTenantMasterTOSInfo = exports.updateTenantAccountingClassesEnabled = exports.trigger2FA = exports.resetSignInState = exports.updateTreasuryVideoViewedForLoggedInUser = exports.updateReferViewedForLoggedInUser = exports.updateTenantReimbursementInfo = exports.removeOnboardingTenant = exports.updateOnboardingTenants = exports.updateSubscriptionSummaryForTenantFailure = exports.updateSubscriptionSummaryForTenantSuccess = exports.fetchSubscriptionSummaryForTenant = exports.clearAll = exports.fetchExternalConnectionsSuccess = exports.fetchExternalConnectionsFailure = exports.saveExternalConnectionFailure = exports.saveExternalConnectionSuccess = exports.saveExternalConnection = exports.fetchExternalConnections = exports.updateLoggedInUser = exports.signOutSuccess = exports.doSignOut = exports.updateSignInState = exports.sendEmailMagicLinkToUserFailure = exports.sendEmailMagicLinkToUserSuccess = exports.sendEmailMagicLinkToUser = exports.magicLinkSignInFailure = exports.magicLinkSignInSuccess = exports.doMagicLinkSignIn = exports.doSignIn = exports.updateExcludedResourcesFailure = exports.updateExcludedResourcesSuccess = exports.fetchExcludedResources = exports.updateCurrentTenant = exports.updateTenantFailure = exports.updateTenantSuccess = exports.fetchActiveTenant = exports.updateTenantsFailure = exports.updateTenantsSuccess = exports.fetchAllTenants = exports.updateTenants = exports.initialState = void 0;
|
|
9
8
|
exports.mapConnectionsPayloadToState = mapConnectionsPayloadToState;
|
|
10
9
|
const toolkit_1 = require("@reduxjs/toolkit");
|
|
11
10
|
const js_base64_1 = require("js-base64");
|
|
@@ -437,26 +436,6 @@ const tenant = (0, toolkit_1.createSlice)({
|
|
|
437
436
|
signOutSuccess(draft) {
|
|
438
437
|
draft.loggedInUser = undefined;
|
|
439
438
|
draft.currentTenantId = undefined;
|
|
440
|
-
draft.sessionExpiresAt = undefined;
|
|
441
|
-
},
|
|
442
|
-
sendSessionHeartbeat() {
|
|
443
|
-
// No state change needed — epic handles the API call
|
|
444
|
-
},
|
|
445
|
-
sessionHeartbeatSuccess: {
|
|
446
|
-
prepare(expiresAt) {
|
|
447
|
-
return { payload: { expiresAt } };
|
|
448
|
-
},
|
|
449
|
-
reducer(draft, action) {
|
|
450
|
-
draft.sessionExpiresAt = action.payload.expiresAt;
|
|
451
|
-
},
|
|
452
|
-
},
|
|
453
|
-
sessionHeartbeatFailure: {
|
|
454
|
-
prepare(error) {
|
|
455
|
-
return { payload: { error } };
|
|
456
|
-
},
|
|
457
|
-
reducer(draft, action) {
|
|
458
|
-
draft.error = action.payload.error;
|
|
459
|
-
},
|
|
460
439
|
},
|
|
461
440
|
fetchSubscriptionSummaryForTenant: {
|
|
462
441
|
prepare(tenantId) {
|
|
@@ -564,7 +543,7 @@ const tenant = (0, toolkit_1.createSlice)({
|
|
|
564
543
|
},
|
|
565
544
|
},
|
|
566
545
|
});
|
|
567
|
-
_a = tenant.actions, exports.updateTenants = _a.updateTenants, exports.fetchAllTenants = _a.fetchAllTenants, exports.updateTenantsSuccess = _a.updateTenantsSuccess, exports.updateTenantsFailure = _a.updateTenantsFailure, exports.fetchActiveTenant = _a.fetchActiveTenant, exports.updateTenantSuccess = _a.updateTenantSuccess, exports.updateTenantFailure = _a.updateTenantFailure, exports.updateCurrentTenant = _a.updateCurrentTenant, exports.fetchExcludedResources = _a.fetchExcludedResources, exports.updateExcludedResourcesSuccess = _a.updateExcludedResourcesSuccess, exports.updateExcludedResourcesFailure = _a.updateExcludedResourcesFailure, exports.doSignIn = _a.doSignIn, exports.doMagicLinkSignIn = _a.doMagicLinkSignIn, exports.magicLinkSignInSuccess = _a.magicLinkSignInSuccess, exports.magicLinkSignInFailure = _a.magicLinkSignInFailure, exports.sendEmailMagicLinkToUser = _a.sendEmailMagicLinkToUser, exports.sendEmailMagicLinkToUserSuccess = _a.sendEmailMagicLinkToUserSuccess, exports.sendEmailMagicLinkToUserFailure = _a.sendEmailMagicLinkToUserFailure, exports.updateSignInState = _a.updateSignInState, exports.doSignOut = _a.doSignOut, exports.signOutSuccess = _a.signOutSuccess, exports.
|
|
546
|
+
_a = tenant.actions, exports.updateTenants = _a.updateTenants, exports.fetchAllTenants = _a.fetchAllTenants, exports.updateTenantsSuccess = _a.updateTenantsSuccess, exports.updateTenantsFailure = _a.updateTenantsFailure, exports.fetchActiveTenant = _a.fetchActiveTenant, exports.updateTenantSuccess = _a.updateTenantSuccess, exports.updateTenantFailure = _a.updateTenantFailure, exports.updateCurrentTenant = _a.updateCurrentTenant, exports.fetchExcludedResources = _a.fetchExcludedResources, exports.updateExcludedResourcesSuccess = _a.updateExcludedResourcesSuccess, exports.updateExcludedResourcesFailure = _a.updateExcludedResourcesFailure, exports.doSignIn = _a.doSignIn, exports.doMagicLinkSignIn = _a.doMagicLinkSignIn, exports.magicLinkSignInSuccess = _a.magicLinkSignInSuccess, exports.magicLinkSignInFailure = _a.magicLinkSignInFailure, exports.sendEmailMagicLinkToUser = _a.sendEmailMagicLinkToUser, exports.sendEmailMagicLinkToUserSuccess = _a.sendEmailMagicLinkToUserSuccess, exports.sendEmailMagicLinkToUserFailure = _a.sendEmailMagicLinkToUserFailure, exports.updateSignInState = _a.updateSignInState, exports.doSignOut = _a.doSignOut, exports.signOutSuccess = _a.signOutSuccess, exports.updateLoggedInUser = _a.updateLoggedInUser, exports.fetchExternalConnections = _a.fetchExternalConnections, exports.saveExternalConnection = _a.saveExternalConnection, exports.saveExternalConnectionSuccess = _a.saveExternalConnectionSuccess, exports.saveExternalConnectionFailure = _a.saveExternalConnectionFailure, exports.fetchExternalConnectionsFailure = _a.fetchExternalConnectionsFailure, exports.fetchExternalConnectionsSuccess = _a.fetchExternalConnectionsSuccess, exports.clearAll = _a.clearAll, exports.fetchSubscriptionSummaryForTenant = _a.fetchSubscriptionSummaryForTenant, exports.updateSubscriptionSummaryForTenantSuccess = _a.updateSubscriptionSummaryForTenantSuccess, exports.updateSubscriptionSummaryForTenantFailure = _a.updateSubscriptionSummaryForTenantFailure, exports.updateOnboardingTenants = _a.updateOnboardingTenants, exports.removeOnboardingTenant = _a.removeOnboardingTenant, exports.updateTenantReimbursementInfo = _a.updateTenantReimbursementInfo, exports.updateReferViewedForLoggedInUser = _a.updateReferViewedForLoggedInUser, exports.updateTreasuryVideoViewedForLoggedInUser = _a.updateTreasuryVideoViewedForLoggedInUser, exports.resetSignInState = _a.resetSignInState, exports.trigger2FA = _a.trigger2FA, exports.updateTenantAccountingClassesEnabled = _a.updateTenantAccountingClassesEnabled, exports.updateTenantMasterTOSInfo = _a.updateTenantMasterTOSInfo, exports.verifyDeviceWithTwoFA = _a.verifyDeviceWithTwoFA, exports.verifyDeviceWithTwoFASuccess = _a.verifyDeviceWithTwoFASuccess, exports.verifyDeviceWithTwoFAFailure = _a.verifyDeviceWithTwoFAFailure, exports.resendVerifyDeviceOTP = _a.resendVerifyDeviceOTP, exports.resendVerifyDeviceOTPSuccess = _a.resendVerifyDeviceOTPSuccess, exports.resendVerifyDeviceOTPFailure = _a.resendVerifyDeviceOTPFailure;
|
|
568
547
|
exports.default = tenant.reducer;
|
|
569
548
|
/**
|
|
570
549
|
* Converts tenants payload to Tenant and User State
|
package/lib/esm/coreEpics.js
CHANGED
|
@@ -22,7 +22,6 @@ import { resendVerifyDeviceOTPEpic } from './entity/tenant/epic/resendVerifyDevi
|
|
|
22
22
|
import { saveExternalConnectionEpic } from './entity/tenant/epic/saveExternalConnectionEpic';
|
|
23
23
|
import { sendEmailMagicLinkToUserEpic } from './entity/tenant/epic/sendEmailMagicLinkToUserEpic';
|
|
24
24
|
import { doSignInEpic } from './entity/tenant/epic/signInUserEpic';
|
|
25
|
-
import { sessionHeartbeatEpic } from './entity/tenant/epic/sessionHeartbeatEpic';
|
|
26
25
|
import { doSignOutEpic } from './entity/tenant/epic/signOutUserEpic';
|
|
27
26
|
import { verifyDeviceWithTwoFAEpic } from './entity/tenant/epic/verifyDeviceWithTwoFAEpic';
|
|
28
27
|
// ── Toast Notification Epic ──────────────────────────────────────────
|
|
@@ -47,7 +46,7 @@ import { verifyOtpEpic } from './view/twoFactorAuthentication/verifyOtpEpic';
|
|
|
47
46
|
// RootActionType is only available in the dynamically imported epic.ts.
|
|
48
47
|
const coreRootEpic = combineEpics(
|
|
49
48
|
// Auth & tenant
|
|
50
|
-
clearAllEpic, doMagicLinkSignInEpic, doSignInEpic, doSignOutEpic,
|
|
49
|
+
clearAllEpic, doMagicLinkSignInEpic, doSignInEpic, doSignOutEpic, fetchActiveTenantEpic, fetchAllTenantsEpic, fetchExcludedResourcesEpic, fetchExternalConnectionsEpic, fetchSubscriptionSummaryForTenantEpic, resendVerifyDeviceOTPEpic, saveExternalConnectionEpic, sendEmailMagicLinkToUserEpic, verifyDeviceWithTwoFAEpic,
|
|
51
50
|
// Toast
|
|
52
51
|
pushToastNotificationEpic,
|
|
53
52
|
// Collaboration
|
|
@@ -7,6 +7,7 @@ const RECOMMENDED_ACTION_CODE = [
|
|
|
7
7
|
'record_bill_payment', // Match
|
|
8
8
|
'record_cc_payment', // Categorize
|
|
9
9
|
'record_cc_credit', // Categorize
|
|
10
|
+
'record_journal_entry', // Journal Entry
|
|
10
11
|
];
|
|
11
12
|
export const toRecommendedActionCodeType = (v) => stringToUnion(v, RECOMMENDED_ACTION_CODE);
|
|
12
13
|
const RECONCILIATION_STATUS_CODE = [
|
|
@@ -1,24 +1,9 @@
|
|
|
1
1
|
import { date } from '../../zeniDayJS';
|
|
2
2
|
import { toAiAccountantEnrollmentStatus, toAiAccountantJobStatus, toAiAccountantOperationType, } from './aiAccountantCustomerState';
|
|
3
3
|
// ── Mapping functions (payload → state) ──
|
|
4
|
-
// Backend returns accuracy as a percent (0–100) inside a nested object; the UI
|
|
5
|
-
// layer treats it as a 0–1 fraction. Normalize here and drop malformed entries.
|
|
6
|
-
const toAccuracyByModel = (accuracyPayload) => {
|
|
7
|
-
if (accuracyPayload == null) {
|
|
8
|
-
return undefined;
|
|
9
|
-
}
|
|
10
|
-
const result = {};
|
|
11
|
-
Object.entries(accuracyPayload).forEach(([model, entry]) => {
|
|
12
|
-
const percent = entry?.accuracy;
|
|
13
|
-
if (typeof percent === 'number' && Number.isFinite(percent)) {
|
|
14
|
-
result[model] = percent / 100;
|
|
15
|
-
}
|
|
16
|
-
});
|
|
17
|
-
return Object.keys(result).length > 0 ? result : undefined;
|
|
18
|
-
};
|
|
19
4
|
export const toAiAccountantEnrollment = (payload) => ({
|
|
20
5
|
status: toAiAccountantEnrollmentStatus(payload.status),
|
|
21
|
-
accuracy:
|
|
6
|
+
accuracy: payload.accuracy,
|
|
22
7
|
latestTraining: payload.latest_training != null
|
|
23
8
|
? date(payload.latest_training)
|
|
24
9
|
: undefined,
|
|
@@ -428,26 +428,6 @@ const tenant = createSlice({
|
|
|
428
428
|
signOutSuccess(draft) {
|
|
429
429
|
draft.loggedInUser = undefined;
|
|
430
430
|
draft.currentTenantId = undefined;
|
|
431
|
-
draft.sessionExpiresAt = undefined;
|
|
432
|
-
},
|
|
433
|
-
sendSessionHeartbeat() {
|
|
434
|
-
// No state change needed — epic handles the API call
|
|
435
|
-
},
|
|
436
|
-
sessionHeartbeatSuccess: {
|
|
437
|
-
prepare(expiresAt) {
|
|
438
|
-
return { payload: { expiresAt } };
|
|
439
|
-
},
|
|
440
|
-
reducer(draft, action) {
|
|
441
|
-
draft.sessionExpiresAt = action.payload.expiresAt;
|
|
442
|
-
},
|
|
443
|
-
},
|
|
444
|
-
sessionHeartbeatFailure: {
|
|
445
|
-
prepare(error) {
|
|
446
|
-
return { payload: { error } };
|
|
447
|
-
},
|
|
448
|
-
reducer(draft, action) {
|
|
449
|
-
draft.error = action.payload.error;
|
|
450
|
-
},
|
|
451
431
|
},
|
|
452
432
|
fetchSubscriptionSummaryForTenant: {
|
|
453
433
|
prepare(tenantId) {
|
|
@@ -555,7 +535,7 @@ const tenant = createSlice({
|
|
|
555
535
|
},
|
|
556
536
|
},
|
|
557
537
|
});
|
|
558
|
-
export const { updateTenants, fetchAllTenants, updateTenantsSuccess, updateTenantsFailure, fetchActiveTenant, updateTenantSuccess, updateTenantFailure, updateCurrentTenant, fetchExcludedResources, updateExcludedResourcesSuccess, updateExcludedResourcesFailure, doSignIn, doMagicLinkSignIn, magicLinkSignInSuccess, magicLinkSignInFailure, sendEmailMagicLinkToUser, sendEmailMagicLinkToUserSuccess, sendEmailMagicLinkToUserFailure, updateSignInState, doSignOut, signOutSuccess,
|
|
538
|
+
export const { updateTenants, fetchAllTenants, updateTenantsSuccess, updateTenantsFailure, fetchActiveTenant, updateTenantSuccess, updateTenantFailure, updateCurrentTenant, fetchExcludedResources, updateExcludedResourcesSuccess, updateExcludedResourcesFailure, doSignIn, doMagicLinkSignIn, magicLinkSignInSuccess, magicLinkSignInFailure, sendEmailMagicLinkToUser, sendEmailMagicLinkToUserSuccess, sendEmailMagicLinkToUserFailure, updateSignInState, doSignOut, signOutSuccess, updateLoggedInUser, fetchExternalConnections, saveExternalConnection, saveExternalConnectionSuccess, saveExternalConnectionFailure, fetchExternalConnectionsFailure, fetchExternalConnectionsSuccess, clearAll, fetchSubscriptionSummaryForTenant, updateSubscriptionSummaryForTenantSuccess, updateSubscriptionSummaryForTenantFailure, updateOnboardingTenants, removeOnboardingTenant, updateTenantReimbursementInfo, updateReferViewedForLoggedInUser, updateTreasuryVideoViewedForLoggedInUser, resetSignInState, trigger2FA, updateTenantAccountingClassesEnabled, updateTenantMasterTOSInfo, verifyDeviceWithTwoFA, verifyDeviceWithTwoFASuccess, verifyDeviceWithTwoFAFailure, resendVerifyDeviceOTP, resendVerifyDeviceOTPSuccess, resendVerifyDeviceOTPFailure, } = tenant.actions;
|
|
559
539
|
export default tenant.reducer;
|
|
560
540
|
/**
|
|
561
541
|
* Converts tenants payload to Tenant and User State
|
package/lib/esm/index.js
CHANGED
|
@@ -59,7 +59,7 @@ import { closeSnackbar, openSnackbar } from './entity/snackbar/snackbarReducer';
|
|
|
59
59
|
import { getSnackbar } from './entity/snackbar/snackbarSelector';
|
|
60
60
|
import { toPriorityCodeType, toTaskStatusCodeType, } from './entity/task/taskState';
|
|
61
61
|
import { getTaskGroupById } from './entity/taskGroup/taskGroupSelector';
|
|
62
|
-
import { clearAll, doMagicLinkSignIn, doSignIn, doSignOut,
|
|
62
|
+
import { clearAll, doMagicLinkSignIn, doSignIn, doSignOut, fetchActiveTenant, fetchAllTenants, fetchExcludedResources as fetchExcludedResourcesForTenant, fetchExternalConnections as fetchExternalConnectionsForTenant, fetchSubscriptionSummaryForTenant, resendVerifyDeviceOTP, resetSignInState, saveExternalConnection as saveExternalConnectionForTenant, sendEmailMagicLinkToUser, updateCurrentTenant, updateSignInState, verifyDeviceWithTwoFA, } from './entity/tenant/tenantReducer';
|
|
63
63
|
import { getCurrentTenant, getIsAccountingClassesEnabled, getIsAccountingProjectsEnabled, getTenantBaseById, getTenantBaseViewForTenantId, getTenantBaseViewForTenantView, getTenantsBaseByCheckInDateSelector, getTenantsByCheckInDateSelector, getTenantsCoreDetailsByCheckInDateSelector, isOtherProductsEnabledForTenant, isTenantBankingOnly, isTenantBookkeepingEnabled, isTenantCardsOnly, isTenantUsingZeniCOA, isZeniDomainTenant, toTenantCoreDetailsView, } from './entity/tenant/tenantSelector';
|
|
64
64
|
import { pushToastNotification } from './entity/toastNotification/toastNotificationReducer';
|
|
65
65
|
import { getLastNotificationTime, getNotifications, } from './entity/toastNotification/toastNotificationSelector';
|
|
@@ -433,7 +433,7 @@ export { toTimeframeTick, mapTimePeriodtoTimeframeTick, toTimePeriod, toAbsolute
|
|
|
433
433
|
export { toVendorSpendTrendFilterTabsTypeStrict, } from './entity/vendorExpense/vendorExpenseSelector';
|
|
434
434
|
export { getNumberOfPeriods };
|
|
435
435
|
export { SCHEDULE_DAYS_OF_MONTH, toScheduleDaysOfMonth, toMonth, toMonthStrict, toQuarter, toQuarterStrict, };
|
|
436
|
-
export { getTenantBaseById, getCurrentTenant, getIsAccountingClassesEnabled, getIsAccountingProjectsEnabled, getTenantsByCheckInDateSelector, getTenantsBaseByCheckInDateSelector, getTenantsCoreDetailsByCheckInDateSelector, toTenantCoreDetailsView, getTenantBaseViewForTenantView, getTenantBaseViewForTenantId, isZeniDomainTenant, isTenantUsingZeniCOA, fetchActiveTenant, fetchAllTenants, updateCurrentTenant, clearAll, doMagicLinkSignIn, verifyDeviceWithTwoFA, resendVerifyDeviceOTP, sendEmailMagicLinkToUser, doSignIn, updateSignInState, doSignOut,
|
|
436
|
+
export { getTenantBaseById, getCurrentTenant, getIsAccountingClassesEnabled, getIsAccountingProjectsEnabled, getTenantsByCheckInDateSelector, getTenantsBaseByCheckInDateSelector, getTenantsCoreDetailsByCheckInDateSelector, toTenantCoreDetailsView, getTenantBaseViewForTenantView, getTenantBaseViewForTenantId, isZeniDomainTenant, isTenantUsingZeniCOA, fetchActiveTenant, fetchAllTenants, updateCurrentTenant, clearAll, doMagicLinkSignIn, verifyDeviceWithTwoFA, resendVerifyDeviceOTP, sendEmailMagicLinkToUser, doSignIn, updateSignInState, doSignOut, resetSignInState, fetchExcludedResourcesForTenant, fetchExternalConnectionsForTenant, saveExternalConnectionForTenant, fetchSubscriptionSummaryForTenant, isTenantBankingOnly, isTenantCardsOnly, isTenantBookkeepingEnabled, isOtherProductsEnabledForTenant, };
|
|
437
437
|
export { toAccountType, toAccountGroupType, getAccountGroupKey, };
|
|
438
438
|
export { getClassById } from './entity/class/classSelector';
|
|
439
439
|
export { getForecast };
|
|
@@ -631,6 +631,3 @@ export { getAutoTransferRules, getAutoTransferRuleById, getAutoTransferRuleHisto
|
|
|
631
631
|
export { BULK_UPLOAD_AUTOMATCHING_TIMEOUT_MS, BULK_UPLOAD_BAR_COMPLETE_HOLD_MS, } from './view/expenseAutomationView/helpers/bulkUploadTiming';
|
|
632
632
|
export { fetchTransactionActivityLog } from './view/transactionActivityLogView/transactionActivityLogViewReducer';
|
|
633
633
|
export { getTransactionActivityLogView, } from './view/transactionActivityLogView/transactionActivityLogViewSelector';
|
|
634
|
-
// ── Session Management ──────────────────────────────────────────────
|
|
635
|
-
export { SessionManager } from './entity/tenant/SessionManager';
|
|
636
|
-
export { DEFAULT_SESSION_CONFIG } from './entity/tenant/sessionTypes';
|
package/lib/esm/view/expenseAutomationView/epics/accountRecon/fetchReconciliationViewEpic.js
CHANGED
|
@@ -2,6 +2,7 @@ import { from, of } from 'rxjs';
|
|
|
2
2
|
import { catchError, filter, mergeMap } from 'rxjs/operators';
|
|
3
3
|
import { convertToPeriod, toMonthYearPeriodId, } from '../../../../commonStateTypes/timePeriod';
|
|
4
4
|
import { updateAccounts } from '../../../../entity/account/accountReducer';
|
|
5
|
+
import { toRecommendedActionCodeType } from '../../../../entity/accountRecon/accountReconState';
|
|
5
6
|
import { updateAccountRecon } from '../../../../entity/accountRecon/accountReconReducer';
|
|
6
7
|
import { getAccountReconByAccountIdAndSelectedPeriod } from '../../../../entity/accountRecon/accountReconSelector';
|
|
7
8
|
import { updateFiles } from '../../../../entity/file/fileReducer';
|
|
@@ -116,6 +117,7 @@ export const prepareReviewTabLocalData = (transactionsToReview) => {
|
|
|
116
117
|
.recommended_transactions[0].merchant_name,
|
|
117
118
|
}
|
|
118
119
|
: undefined,
|
|
120
|
+
recommendedActionType: toRecommendedActionCodeType(currentTransaction.recommended_action.recommended_actions),
|
|
119
121
|
};
|
|
120
122
|
return {
|
|
121
123
|
...prev,
|
package/lib/esm/view/expenseAutomationView/epics/accountRecon/saveReconciliationReviewEpic.js
CHANGED
|
@@ -30,8 +30,10 @@ export const saveReconciliationReviewEpic = (actions$, state$, zeniAPI) => actio
|
|
|
30
30
|
reconciliationId = reconciliationData?.reconciliationId;
|
|
31
31
|
updatedTransaction = reconciliationData?.transactionsToReview.find((transaction) => transaction.transactionId === transactionId);
|
|
32
32
|
}
|
|
33
|
+
const reviewAction = localData?.recommendedActionType ??
|
|
34
|
+
updatedTransaction?.recommendedAction.action;
|
|
33
35
|
const queryParam = {
|
|
34
|
-
review_action:
|
|
36
|
+
review_action: reviewAction,
|
|
35
37
|
reconciliation_id: reconciliationId ?? '',
|
|
36
38
|
ref_account_id: selectedAccountId,
|
|
37
39
|
ref_account_name: reconciliationData?.account.accountName,
|
|
@@ -41,7 +43,7 @@ export const saveReconciliationReviewEpic = (actions$, state$, zeniAPI) => actio
|
|
|
41
43
|
if (reconciliationData != null &&
|
|
42
44
|
updatedTransaction != null &&
|
|
43
45
|
localData != null) {
|
|
44
|
-
switch (
|
|
46
|
+
switch (reviewAction) {
|
|
45
47
|
case 'record_expense':
|
|
46
48
|
payload = getPayloadForExpenseRecord(updatedTransaction, localData);
|
|
47
49
|
break;
|
|
@@ -63,6 +65,9 @@ export const saveReconciliationReviewEpic = (actions$, state$, zeniAPI) => actio
|
|
|
63
65
|
case 'record_deposit':
|
|
64
66
|
payload = getPayloadForDeposit(updatedTransaction, localData, entityState);
|
|
65
67
|
break;
|
|
68
|
+
case 'record_journal_entry':
|
|
69
|
+
payload = getPayloadForJournalEntry(updatedTransaction, localData);
|
|
70
|
+
break;
|
|
66
71
|
}
|
|
67
72
|
}
|
|
68
73
|
payload = {
|
|
@@ -220,6 +225,28 @@ const getPayloadForBillPayment = (updatedTransaction, linkedTransaction, localDa
|
|
|
220
225
|
vendor_name: linkedTransaction?.merchantName,
|
|
221
226
|
};
|
|
222
227
|
};
|
|
228
|
+
function getPayloadForJournalEntry(updatedTransaction, localData) {
|
|
229
|
+
return {
|
|
230
|
+
transaction_id: updatedTransaction.transactionId,
|
|
231
|
+
transaction_date: updatedTransaction.transactionDate.format(DEFAULT_DATE_FORMAT),
|
|
232
|
+
transaction_memo: updatedTransaction.memo,
|
|
233
|
+
amount: updatedTransaction.amount.amount,
|
|
234
|
+
currency_code: updatedTransaction.amount.currencyCode,
|
|
235
|
+
transaction_direction: updatedTransaction.transactionDirection,
|
|
236
|
+
lines: [
|
|
237
|
+
{
|
|
238
|
+
class_id: localData.jeDebitClassId,
|
|
239
|
+
posting_type: 'Debit',
|
|
240
|
+
amount: updatedTransaction.amount.amount,
|
|
241
|
+
},
|
|
242
|
+
{
|
|
243
|
+
class_id: localData.jeCreditClassId,
|
|
244
|
+
posting_type: 'Credit',
|
|
245
|
+
amount: updatedTransaction.amount.amount,
|
|
246
|
+
},
|
|
247
|
+
],
|
|
248
|
+
};
|
|
249
|
+
}
|
|
223
250
|
const getToastMessageSection = (updatedTransaction) => {
|
|
224
251
|
if (updatedTransaction?.recommendedAction.action === 'record_bill_payment') {
|
|
225
252
|
return 'recon_transaction_match';
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import fetch from 'cross-fetch';
|
|
2
2
|
import { zeniAPI } from '../../../../init';
|
|
3
|
-
export default async function uploadAccountStatementIntoDocumentAI(accountType, fileBlob, authParams) {
|
|
3
|
+
export default async function uploadAccountStatementIntoDocumentAI(accountType, fileBlob, authParams, accountName) {
|
|
4
4
|
let statementUpload;
|
|
5
5
|
const urlEndPoint = `${zeniAPI.apiEndPoints.documentAIMicroServiceBaseUrl}/1.0/processors/statement`;
|
|
6
6
|
const data = new FormData();
|
|
@@ -10,6 +10,7 @@ export default async function uploadAccountStatementIntoDocumentAI(accountType,
|
|
|
10
10
|
? 'reconciliation_card_statement_upload'
|
|
11
11
|
: 'reconciliation_bank_statement_upload',
|
|
12
12
|
purpose_id: 'reconciliation',
|
|
13
|
+
...(accountName != null && { account_name: accountName }),
|
|
13
14
|
});
|
|
14
15
|
data.append('attachment_json_0', attachment_json);
|
|
15
16
|
try {
|
package/lib/index.d.ts
CHANGED
|
@@ -123,7 +123,7 @@ import { PriorityCodeType, Task, TaskCodeType, TaskPriority, TaskStatus, TaskSta
|
|
|
123
123
|
import { getTaskGroupById } from './entity/taskGroup/taskGroupSelector';
|
|
124
124
|
import { TaskGroupState } from './entity/taskGroup/taskGroupState';
|
|
125
125
|
import { TaskGroupTemplate } from './entity/taskGroupTemplate/taskGroupTemplateState';
|
|
126
|
-
import { DoSignInPayload, clearAll, doMagicLinkSignIn, doSignIn, doSignOut,
|
|
126
|
+
import { DoSignInPayload, clearAll, doMagicLinkSignIn, doSignIn, doSignOut, fetchActiveTenant, fetchAllTenants, fetchExcludedResources as fetchExcludedResourcesForTenant, fetchExternalConnections as fetchExternalConnectionsForTenant, fetchSubscriptionSummaryForTenant, resendVerifyDeviceOTP, resetSignInState, saveExternalConnection as saveExternalConnectionForTenant, sendEmailMagicLinkToUser, updateCurrentTenant, updateSignInState, verifyDeviceWithTwoFA } from './entity/tenant/tenantReducer';
|
|
127
127
|
import { CurrentTenant, TenantBaseView, TenantCoreDetailsView, TenantView, TenantsBaseOrdered, TenantsOrdered, getCurrentTenant, getIsAccountingClassesEnabled, getIsAccountingProjectsEnabled, getTenantBaseById, getTenantBaseViewForTenantId, getTenantBaseViewForTenantView, getTenantsBaseByCheckInDateSelector, getTenantsByCheckInDateSelector, getTenantsCoreDetailsByCheckInDateSelector, isOtherProductsEnabledForTenant, isTenantBankingOnly, isTenantBookkeepingEnabled, isTenantCardsOnly, isTenantUsingZeniCOA, isZeniDomainTenant, toTenantCoreDetailsView } from './entity/tenant/tenantSelector';
|
|
128
128
|
import { Connection, LoggedInUser, RoleResource, Tenant, TenantProductSettings } from './entity/tenant/tenantState';
|
|
129
129
|
import { ToastNotificationPayload } from './entity/toastNotification/toastNotificationPayload';
|
|
@@ -643,7 +643,7 @@ export { TimeframeTick, TimeframeTickWithMetaData, toTimeframeTick, mapTimePerio
|
|
|
643
643
|
export { VendorSpendTrendFilterTabType, toVendorSpendTrendFilterTabsTypeStrict, } from './entity/vendorExpense/vendorExpenseSelector';
|
|
644
644
|
export { getNumberOfPeriods };
|
|
645
645
|
export { SCHEDULE_DAYS_OF_MONTH, ScheduleDaysOfMonth, toScheduleDaysOfMonth, Day, Month, toMonth, toMonthStrict, Quarter, toQuarter, toQuarterStrict, AbsoluteDay, TimePeriod, };
|
|
646
|
-
export { Tenant, TenantView, LoggedInUser, TenantBaseView, CurrentTenant, TenantProductSettings, getTenantBaseById, getCurrentTenant, getIsAccountingClassesEnabled, getIsAccountingProjectsEnabled, getTenantsByCheckInDateSelector, getTenantsBaseByCheckInDateSelector, getTenantsCoreDetailsByCheckInDateSelector, toTenantCoreDetailsView, getTenantBaseViewForTenantView, getTenantBaseViewForTenantId, isZeniDomainTenant, isTenantUsingZeniCOA, TenantsBaseOrdered, TenantsOrdered, TenantCoreDetailsView, fetchActiveTenant, fetchAllTenants, updateCurrentTenant, clearAll, doMagicLinkSignIn, verifyDeviceWithTwoFA, resendVerifyDeviceOTP, sendEmailMagicLinkToUser, doSignIn, updateSignInState, DoSignInPayload, doSignOut,
|
|
646
|
+
export { Tenant, TenantView, LoggedInUser, TenantBaseView, CurrentTenant, TenantProductSettings, getTenantBaseById, getCurrentTenant, getIsAccountingClassesEnabled, getIsAccountingProjectsEnabled, getTenantsByCheckInDateSelector, getTenantsBaseByCheckInDateSelector, getTenantsCoreDetailsByCheckInDateSelector, toTenantCoreDetailsView, getTenantBaseViewForTenantView, getTenantBaseViewForTenantId, isZeniDomainTenant, isTenantUsingZeniCOA, TenantsBaseOrdered, TenantsOrdered, TenantCoreDetailsView, fetchActiveTenant, fetchAllTenants, updateCurrentTenant, clearAll, doMagicLinkSignIn, verifyDeviceWithTwoFA, resendVerifyDeviceOTP, sendEmailMagicLinkToUser, doSignIn, updateSignInState, DoSignInPayload, doSignOut, resetSignInState, RoleResource, Connection, fetchExcludedResourcesForTenant, fetchExternalConnectionsForTenant, saveExternalConnectionForTenant, fetchSubscriptionSummaryForTenant, isTenantBankingOnly, isTenantCardsOnly, isTenantBookkeepingEnabled, isOtherProductsEnabledForTenant, };
|
|
647
647
|
export { Account, AccountType, AccountBase, StatementCloseDay, toAccountType, AccountReport, NestedAccountReport, AccountWithBalanceReport, AccountGroup, AccountGroupReportV2, AccountGroupType, toAccountGroupType, AccountGroupReport, getAccountGroupKey, AccountGroupKey, RecommendedAccountBase, };
|
|
648
648
|
export { Class, ClassBase, RecommendedClassBase, } from './entity/class/classState';
|
|
649
649
|
export { getClassById } from './entity/class/classSelector';
|
|
@@ -901,6 +901,3 @@ export { BULK_UPLOAD_AUTOMATCHING_TIMEOUT_MS, BULK_UPLOAD_BAR_COMPLETE_HOLD_MS,
|
|
|
901
901
|
export { fetchTransactionActivityLog } from './view/transactionActivityLogView/transactionActivityLogViewReducer';
|
|
902
902
|
export { TransactionActivityLogViewSelectorView, getTransactionActivityLogView, } from './view/transactionActivityLogView/transactionActivityLogViewSelector';
|
|
903
903
|
export { UserGroup } from './entity/userGroups/userGroupsState';
|
|
904
|
-
export { SessionManager } from './entity/tenant/SessionManager';
|
|
905
|
-
export type { SessionCallbacks, SessionConfig } from './entity/tenant/sessionTypes';
|
|
906
|
-
export { DEFAULT_SESSION_CONFIG } from './entity/tenant/sessionTypes';
|