@zeniai/client-epic-state 4.19.96-betaRD2 → 4.19.96-betaRD3

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 CHANGED
@@ -21,6 +21,7 @@ const fetchExcludedResourcesEpic_1 = require("./entity/tenant/epic/fetchExcluded
21
21
  const fetchExternalConnectionsEpic_1 = require("./entity/tenant/epic/fetchExternalConnectionsEpic");
22
22
  const fetchSubscriptionSummaryForTenantEpic_1 = require("./entity/tenant/epic/fetchSubscriptionSummaryForTenantEpic");
23
23
  const resendVerifyDeviceOTPEpic_1 = require("./entity/tenant/epic/resendVerifyDeviceOTPEpic");
24
+ const deleteConnectionEpic_1 = require("./entity/tenant/epic/deleteConnectionEpic");
24
25
  const saveAPIKeyConnectionEpic_1 = require("./entity/tenant/epic/saveAPIKeyConnectionEpic");
25
26
  const saveExternalConnectionEpic_1 = require("./entity/tenant/epic/saveExternalConnectionEpic");
26
27
  const saveOAuthConnectionEpic_1 = require("./entity/tenant/epic/saveOAuthConnectionEpic");
@@ -50,7 +51,7 @@ const verifyOtpEpic_1 = require("./view/twoFactorAuthentication/verifyOtpEpic");
50
51
  // RootActionType is only available in the dynamically imported epic.ts.
51
52
  const coreRootEpic = (0, redux_observable_1.combineEpics)(
52
53
  // Auth & tenant
53
- 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, saveAPIKeyConnectionEpic_1.saveAPIKeyConnectionEpic, saveExternalConnectionEpic_1.saveExternalConnectionEpic, saveOAuthConnectionEpic_1.saveOAuthConnectionEpic, sendEmailMagicLinkToUserEpic_1.sendEmailMagicLinkToUserEpic, verifyDeviceWithTwoFAEpic_1.verifyDeviceWithTwoFAEpic,
54
+ 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, deleteConnectionEpic_1.deleteConnectionEpic, saveAPIKeyConnectionEpic_1.saveAPIKeyConnectionEpic, saveExternalConnectionEpic_1.saveExternalConnectionEpic, saveOAuthConnectionEpic_1.saveOAuthConnectionEpic, sendEmailMagicLinkToUserEpic_1.sendEmailMagicLinkToUserEpic, verifyDeviceWithTwoFAEpic_1.verifyDeviceWithTwoFAEpic,
54
55
  // Toast
55
56
  pushToastNotificationEpic_1.pushToastNotificationEpic,
56
57
  // Collaboration
@@ -0,0 +1,19 @@
1
+ import { ActionsObservable, StateObservable } from 'redux-observable';
2
+ import { RootState } from '../../../reducer';
3
+ import { ZeniAPI } from '../../../zeniAPI';
4
+ import { deleteConnection, deleteConnectionFailure, deleteConnectionSuccess } from '../tenantReducer';
5
+ export type ActionType = ReturnType<typeof deleteConnection> | ReturnType<typeof deleteConnectionSuccess> | ReturnType<typeof deleteConnectionFailure>;
6
+ export declare const deleteConnectionEpic: (actions$: ActionsObservable<ActionType>, _: StateObservable<RootState>, zeniAPI: ZeniAPI) => import("rxjs").Observable<{
7
+ payload: {
8
+ tenantId: string;
9
+ connectionId: string;
10
+ connectionType: "analytics" | "crm";
11
+ };
12
+ type: "tenant/deleteConnectionSuccess";
13
+ } | {
14
+ payload: {
15
+ tenantId: string;
16
+ status: import("../../../responsePayload").ZeniAPIStatus<Record<string, unknown>>;
17
+ };
18
+ type: "tenant/deleteConnectionFailure";
19
+ }>;
@@ -0,0 +1,29 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.deleteConnectionEpic = void 0;
4
+ const rxjs_1 = require("rxjs");
5
+ const operators_1 = require("rxjs/operators");
6
+ const responsePayload_1 = require("../../../responsePayload");
7
+ const tenantReducer_1 = require("../tenantReducer");
8
+ const deleteConnectionEpic = (actions$, _, zeniAPI) => actions$.pipe((0, operators_1.filter)(tenantReducer_1.deleteConnection.match), (0, operators_1.switchMap)((action) => zeniAPI
9
+ .deleteAndGetJSON(`${zeniAPI.apiEndPoints.tenantMicroServiceBaseUrl}/1.0/connections/${action.payload.connectionId}`, undefined, Object.assign({ 'zeni-tenant-id': action.payload.tenantId }))
10
+ .pipe((0, operators_1.mergeMap)((response) => {
11
+ if ((0, responsePayload_1.isSuccessStatus)(response)) {
12
+ return (0, rxjs_1.from)([
13
+ (0, tenantReducer_1.deleteConnectionSuccess)(action.payload.tenantId, action.payload.connectionId, action.payload.connectionType),
14
+ ]);
15
+ }
16
+ const status = response.status ??
17
+ (0, responsePayload_1.createZeniAPIStatus)('Failed to delete connection. Please try again.');
18
+ return (0, rxjs_1.from)([
19
+ (0, tenantReducer_1.deleteConnectionFailure)(action.payload.tenantId, status),
20
+ ]);
21
+ }), (0, operators_1.catchError)((error) => {
22
+ const message = error instanceof Error
23
+ ? error.message
24
+ : 'Unexpected error deleting connection.';
25
+ return (0, rxjs_1.from)([
26
+ (0, tenantReducer_1.deleteConnectionFailure)(action.payload.tenantId, (0, responsePayload_1.createZeniAPIStatus)(message)),
27
+ ]);
28
+ }))));
29
+ exports.deleteConnectionEpic = deleteConnectionEpic;
@@ -122,7 +122,18 @@ export declare const updateTenants: import("@reduxjs/toolkit").ActionCreatorWith
122
122
  }, "tenant/saveOAuthConnectionSuccess", never, never>, saveOAuthConnectionFailure: import("@reduxjs/toolkit").ActionCreatorWithPreparedPayload<[tenantId: string, status: ZeniAPIStatus<Record<string, unknown>>], {
123
123
  tenantId: string;
124
124
  status: ZeniAPIStatus<Record<string, unknown>>;
125
- }, "tenant/saveOAuthConnectionFailure", never, never>, clearAll: import("@reduxjs/toolkit").ActionCreatorWithPreparedPayload<[keepTenantCompanyState?: boolean | undefined], {
125
+ }, "tenant/saveOAuthConnectionFailure", never, never>, deleteConnection: import("@reduxjs/toolkit").ActionCreatorWithPreparedPayload<[tenantId: string, connectionId: string, connectionType: "analytics" | "crm"], {
126
+ tenantId: string;
127
+ connectionId: string;
128
+ connectionType: "analytics" | "crm";
129
+ }, "tenant/deleteConnection", never, never>, deleteConnectionSuccess: import("@reduxjs/toolkit").ActionCreatorWithPreparedPayload<[tenantId: string, connectionId: string, connectionType: "analytics" | "crm"], {
130
+ tenantId: string;
131
+ connectionId: string;
132
+ connectionType: "analytics" | "crm";
133
+ }, "tenant/deleteConnectionSuccess", never, never>, deleteConnectionFailure: import("@reduxjs/toolkit").ActionCreatorWithPreparedPayload<[tenantId: string, status: ZeniAPIStatus<Record<string, unknown>>], {
134
+ tenantId: string;
135
+ status: ZeniAPIStatus<Record<string, unknown>>;
136
+ }, "tenant/deleteConnectionFailure", never, never>, clearAll: import("@reduxjs/toolkit").ActionCreatorWithPreparedPayload<[keepTenantCompanyState?: boolean | undefined], {
126
137
  keepTenantCompanyState: boolean;
127
138
  }, "tenant/clearAll", never, never>, fetchSubscriptionSummaryForTenant: import("@reduxjs/toolkit").ActionCreatorWithPreparedPayload<[tenantId: string], {
128
139
  tenantId: string;
@@ -4,8 +4,8 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
4
4
  };
5
5
  var _a;
6
6
  Object.defineProperty(exports, "__esModule", { value: true });
7
- exports.verifyDeviceWithTwoFA = exports.updateTenantMasterTOSInfo = exports.trigger2FA = exports.resetSignInState = exports.updateTreasuryVideoViewedForLoggedInUser = exports.updateReferViewedForLoggedInUser = exports.updateTenantReimbursementInfo = exports.removeOnboardingTenant = exports.updateOnboardingTenants = exports.updateSubscriptionSummaryForTenantFailure = exports.updateSubscriptionSummaryForTenantSuccess = exports.fetchSubscriptionSummaryForTenant = exports.clearAll = exports.saveOAuthConnectionFailure = exports.saveOAuthConnectionSuccess = exports.saveOAuthConnection = exports.saveAPIKeyConnectionFailure = exports.saveAPIKeyConnectionSuccess = exports.saveAPIKeyConnection = 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 = exports.toExternalSupportedTool = exports.toExternalIntegrationType = void 0;
8
- exports.toConnection = exports.toRoleResource = exports.resendVerifyDeviceOTPFailure = exports.resendVerifyDeviceOTPSuccess = exports.resendVerifyDeviceOTP = exports.verifyDeviceWithTwoFAFailure = exports.verifyDeviceWithTwoFASuccess = void 0;
7
+ exports.resetSignInState = exports.updateTreasuryVideoViewedForLoggedInUser = exports.updateReferViewedForLoggedInUser = exports.updateTenantReimbursementInfo = exports.removeOnboardingTenant = exports.updateOnboardingTenants = exports.updateSubscriptionSummaryForTenantFailure = exports.updateSubscriptionSummaryForTenantSuccess = exports.fetchSubscriptionSummaryForTenant = exports.clearAll = exports.deleteConnectionFailure = exports.deleteConnectionSuccess = exports.deleteConnection = exports.saveOAuthConnectionFailure = exports.saveOAuthConnectionSuccess = exports.saveOAuthConnection = exports.saveAPIKeyConnectionFailure = exports.saveAPIKeyConnectionSuccess = exports.saveAPIKeyConnection = 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 = exports.toExternalSupportedTool = exports.toExternalIntegrationType = void 0;
8
+ exports.toConnection = exports.toRoleResource = exports.resendVerifyDeviceOTPFailure = exports.resendVerifyDeviceOTPSuccess = exports.resendVerifyDeviceOTP = exports.verifyDeviceWithTwoFAFailure = exports.verifyDeviceWithTwoFASuccess = exports.verifyDeviceWithTwoFA = exports.updateTenantMasterTOSInfo = exports.trigger2FA = void 0;
9
9
  exports.mapConnectionsPayloadToState = mapConnectionsPayloadToState;
10
10
  const toolkit_1 = require("@reduxjs/toolkit");
11
11
  const js_base64_1 = require("js-base64");
@@ -347,6 +347,7 @@ const tenant = (0, toolkit_1.createSlice)({
347
347
  saveConnectionState: 'Not-Started',
348
348
  saveAPIKeyConnectionState: 'Not-Started',
349
349
  saveOAuthConnectionState: 'Not-Started',
350
+ deleteConnectionState: 'Not-Started',
350
351
  error: undefined,
351
352
  };
352
353
  },
@@ -366,6 +367,7 @@ const tenant = (0, toolkit_1.createSlice)({
366
367
  saveConnectionState: 'Completed',
367
368
  saveAPIKeyConnectionState: 'Not-Started',
368
369
  saveOAuthConnectionState: 'Not-Started',
370
+ deleteConnectionState: 'Not-Started',
369
371
  error: undefined,
370
372
  };
371
373
  },
@@ -385,6 +387,7 @@ const tenant = (0, toolkit_1.createSlice)({
385
387
  saveConnectionState: 'Error',
386
388
  saveAPIKeyConnectionState: 'Not-Started',
387
389
  saveOAuthConnectionState: 'Not-Started',
390
+ deleteConnectionState: 'Not-Started',
388
391
  error: status,
389
392
  };
390
393
  },
@@ -504,6 +507,47 @@ const tenant = (0, toolkit_1.createSlice)({
504
507
  }
505
508
  },
506
509
  },
510
+ deleteConnection: {
511
+ prepare(tenantId, connectionId, connectionType) {
512
+ return { payload: { tenantId, connectionId, connectionType } };
513
+ },
514
+ reducer(draft, action) {
515
+ const existing = draft.externalConnectionsByTenant[action.payload.tenantId];
516
+ if (existing != null) {
517
+ existing.deleteConnectionState = 'In-Progress';
518
+ existing.deleteConnectionError = undefined;
519
+ }
520
+ },
521
+ },
522
+ deleteConnectionSuccess: {
523
+ prepare(tenantId, connectionId, connectionType) {
524
+ return { payload: { tenantId, connectionId, connectionType } };
525
+ },
526
+ reducer(draft, action) {
527
+ const existing = draft.externalConnectionsByTenant[action.payload.tenantId];
528
+ if (existing != null) {
529
+ existing.deleteConnectionState = 'Completed';
530
+ existing.deleteConnectionError = undefined;
531
+ const arr = existing[action.payload.connectionType];
532
+ const idx = arr.findIndex((c) => c.connectionId === action.payload.connectionId);
533
+ if (idx !== -1) {
534
+ arr[idx] = { ...arr[idx], isValid: false };
535
+ }
536
+ }
537
+ },
538
+ },
539
+ deleteConnectionFailure: {
540
+ prepare(tenantId, status) {
541
+ return { payload: { tenantId, status } };
542
+ },
543
+ reducer(draft, action) {
544
+ const existing = draft.externalConnectionsByTenant[action.payload.tenantId];
545
+ if (existing != null) {
546
+ existing.deleteConnectionState = 'Error';
547
+ existing.deleteConnectionError = action.payload.status;
548
+ }
549
+ },
550
+ },
507
551
  doSignOut(draft) {
508
552
  draft.fetchState = 'Not-Started';
509
553
  draft.signInState = 'Not-Started';
@@ -631,7 +675,7 @@ const tenant = (0, toolkit_1.createSlice)({
631
675
  },
632
676
  },
633
677
  });
634
- _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.saveAPIKeyConnection = _a.saveAPIKeyConnection, exports.saveAPIKeyConnectionSuccess = _a.saveAPIKeyConnectionSuccess, exports.saveAPIKeyConnectionFailure = _a.saveAPIKeyConnectionFailure, exports.saveOAuthConnection = _a.saveOAuthConnection, exports.saveOAuthConnectionSuccess = _a.saveOAuthConnectionSuccess, exports.saveOAuthConnectionFailure = _a.saveOAuthConnectionFailure, 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.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;
678
+ _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.saveAPIKeyConnection = _a.saveAPIKeyConnection, exports.saveAPIKeyConnectionSuccess = _a.saveAPIKeyConnectionSuccess, exports.saveAPIKeyConnectionFailure = _a.saveAPIKeyConnectionFailure, exports.saveOAuthConnection = _a.saveOAuthConnection, exports.saveOAuthConnectionSuccess = _a.saveOAuthConnectionSuccess, exports.saveOAuthConnectionFailure = _a.saveOAuthConnectionFailure, exports.deleteConnection = _a.deleteConnection, exports.deleteConnectionSuccess = _a.deleteConnectionSuccess, exports.deleteConnectionFailure = _a.deleteConnectionFailure, 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.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;
635
679
  exports.default = tenant.reducer;
636
680
  /**
637
681
  * Converts tenants payload to Tenant and User State
@@ -14,11 +14,13 @@ export interface TenantExternalConnections {
14
14
  accounting: Connection[];
15
15
  analytics: Connection[];
16
16
  crm: Connection[];
17
+ deleteConnectionState: FetchState;
17
18
  fetchState: FetchState;
18
19
  payments: Connection[];
19
20
  saveAPIKeyConnectionState: FetchState;
20
21
  saveConnectionState: FetchState;
21
22
  saveOAuthConnectionState: FetchState;
23
+ deleteConnectionError?: ZeniAPIStatus;
22
24
  error?: ZeniAPIStatus;
23
25
  saveAPIKeyConnectionError?: ZeniAPIStatus;
24
26
  saveOAuthConnectionError?: ZeniAPIStatus;
@@ -19,6 +19,7 @@ import { fetchExcludedResourcesEpic } from './entity/tenant/epic/fetchExcludedRe
19
19
  import { fetchExternalConnectionsEpic } from './entity/tenant/epic/fetchExternalConnectionsEpic';
20
20
  import { fetchSubscriptionSummaryForTenantEpic } from './entity/tenant/epic/fetchSubscriptionSummaryForTenantEpic';
21
21
  import { resendVerifyDeviceOTPEpic } from './entity/tenant/epic/resendVerifyDeviceOTPEpic';
22
+ import { deleteConnectionEpic } from './entity/tenant/epic/deleteConnectionEpic';
22
23
  import { saveAPIKeyConnectionEpic } from './entity/tenant/epic/saveAPIKeyConnectionEpic';
23
24
  import { saveExternalConnectionEpic } from './entity/tenant/epic/saveExternalConnectionEpic';
24
25
  import { saveOAuthConnectionEpic } from './entity/tenant/epic/saveOAuthConnectionEpic';
@@ -48,7 +49,7 @@ import { verifyOtpEpic } from './view/twoFactorAuthentication/verifyOtpEpic';
48
49
  // RootActionType is only available in the dynamically imported epic.ts.
49
50
  const coreRootEpic = combineEpics(
50
51
  // Auth & tenant
51
- clearAllEpic, doMagicLinkSignInEpic, doSignInEpic, doSignOutEpic, fetchActiveTenantEpic, fetchAllTenantsEpic, fetchExcludedResourcesEpic, fetchExternalConnectionsEpic, fetchSubscriptionSummaryForTenantEpic, resendVerifyDeviceOTPEpic, saveAPIKeyConnectionEpic, saveExternalConnectionEpic, saveOAuthConnectionEpic, sendEmailMagicLinkToUserEpic, verifyDeviceWithTwoFAEpic,
52
+ clearAllEpic, doMagicLinkSignInEpic, doSignInEpic, doSignOutEpic, fetchActiveTenantEpic, fetchAllTenantsEpic, fetchExcludedResourcesEpic, fetchExternalConnectionsEpic, fetchSubscriptionSummaryForTenantEpic, resendVerifyDeviceOTPEpic, deleteConnectionEpic, saveAPIKeyConnectionEpic, saveExternalConnectionEpic, saveOAuthConnectionEpic, sendEmailMagicLinkToUserEpic, verifyDeviceWithTwoFAEpic,
52
53
  // Toast
53
54
  pushToastNotificationEpic,
54
55
  // Collaboration
@@ -0,0 +1,25 @@
1
+ import { from } from 'rxjs';
2
+ import { catchError, filter, mergeMap, switchMap } from 'rxjs/operators';
3
+ import { createZeniAPIStatus, isSuccessStatus, } from '../../../responsePayload';
4
+ import { deleteConnection, deleteConnectionFailure, deleteConnectionSuccess, } from '../tenantReducer';
5
+ export const deleteConnectionEpic = (actions$, _, zeniAPI) => actions$.pipe(filter(deleteConnection.match), switchMap((action) => zeniAPI
6
+ .deleteAndGetJSON(`${zeniAPI.apiEndPoints.tenantMicroServiceBaseUrl}/1.0/connections/${action.payload.connectionId}`, undefined, Object.assign({ 'zeni-tenant-id': action.payload.tenantId }))
7
+ .pipe(mergeMap((response) => {
8
+ if (isSuccessStatus(response)) {
9
+ return from([
10
+ deleteConnectionSuccess(action.payload.tenantId, action.payload.connectionId, action.payload.connectionType),
11
+ ]);
12
+ }
13
+ const status = response.status ??
14
+ createZeniAPIStatus('Failed to delete connection. Please try again.');
15
+ return from([
16
+ deleteConnectionFailure(action.payload.tenantId, status),
17
+ ]);
18
+ }), catchError((error) => {
19
+ const message = error instanceof Error
20
+ ? error.message
21
+ : 'Unexpected error deleting connection.';
22
+ return from([
23
+ deleteConnectionFailure(action.payload.tenantId, createZeniAPIStatus(message)),
24
+ ]);
25
+ }))));
@@ -336,6 +336,7 @@ const tenant = createSlice({
336
336
  saveConnectionState: 'Not-Started',
337
337
  saveAPIKeyConnectionState: 'Not-Started',
338
338
  saveOAuthConnectionState: 'Not-Started',
339
+ deleteConnectionState: 'Not-Started',
339
340
  error: undefined,
340
341
  };
341
342
  },
@@ -355,6 +356,7 @@ const tenant = createSlice({
355
356
  saveConnectionState: 'Completed',
356
357
  saveAPIKeyConnectionState: 'Not-Started',
357
358
  saveOAuthConnectionState: 'Not-Started',
359
+ deleteConnectionState: 'Not-Started',
358
360
  error: undefined,
359
361
  };
360
362
  },
@@ -374,6 +376,7 @@ const tenant = createSlice({
374
376
  saveConnectionState: 'Error',
375
377
  saveAPIKeyConnectionState: 'Not-Started',
376
378
  saveOAuthConnectionState: 'Not-Started',
379
+ deleteConnectionState: 'Not-Started',
377
380
  error: status,
378
381
  };
379
382
  },
@@ -493,6 +496,47 @@ const tenant = createSlice({
493
496
  }
494
497
  },
495
498
  },
499
+ deleteConnection: {
500
+ prepare(tenantId, connectionId, connectionType) {
501
+ return { payload: { tenantId, connectionId, connectionType } };
502
+ },
503
+ reducer(draft, action) {
504
+ const existing = draft.externalConnectionsByTenant[action.payload.tenantId];
505
+ if (existing != null) {
506
+ existing.deleteConnectionState = 'In-Progress';
507
+ existing.deleteConnectionError = undefined;
508
+ }
509
+ },
510
+ },
511
+ deleteConnectionSuccess: {
512
+ prepare(tenantId, connectionId, connectionType) {
513
+ return { payload: { tenantId, connectionId, connectionType } };
514
+ },
515
+ reducer(draft, action) {
516
+ const existing = draft.externalConnectionsByTenant[action.payload.tenantId];
517
+ if (existing != null) {
518
+ existing.deleteConnectionState = 'Completed';
519
+ existing.deleteConnectionError = undefined;
520
+ const arr = existing[action.payload.connectionType];
521
+ const idx = arr.findIndex((c) => c.connectionId === action.payload.connectionId);
522
+ if (idx !== -1) {
523
+ arr[idx] = { ...arr[idx], isValid: false };
524
+ }
525
+ }
526
+ },
527
+ },
528
+ deleteConnectionFailure: {
529
+ prepare(tenantId, status) {
530
+ return { payload: { tenantId, status } };
531
+ },
532
+ reducer(draft, action) {
533
+ const existing = draft.externalConnectionsByTenant[action.payload.tenantId];
534
+ if (existing != null) {
535
+ existing.deleteConnectionState = 'Error';
536
+ existing.deleteConnectionError = action.payload.status;
537
+ }
538
+ },
539
+ },
496
540
  doSignOut(draft) {
497
541
  draft.fetchState = 'Not-Started';
498
542
  draft.signInState = 'Not-Started';
@@ -620,7 +664,7 @@ const tenant = createSlice({
620
664
  },
621
665
  },
622
666
  });
623
- 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, saveAPIKeyConnection, saveAPIKeyConnectionSuccess, saveAPIKeyConnectionFailure, saveOAuthConnection, saveOAuthConnectionSuccess, saveOAuthConnectionFailure, clearAll, fetchSubscriptionSummaryForTenant, updateSubscriptionSummaryForTenantSuccess, updateSubscriptionSummaryForTenantFailure, updateOnboardingTenants, removeOnboardingTenant, updateTenantReimbursementInfo, updateReferViewedForLoggedInUser, updateTreasuryVideoViewedForLoggedInUser, resetSignInState, trigger2FA, updateTenantMasterTOSInfo, verifyDeviceWithTwoFA, verifyDeviceWithTwoFASuccess, verifyDeviceWithTwoFAFailure, resendVerifyDeviceOTP, resendVerifyDeviceOTPSuccess, resendVerifyDeviceOTPFailure, } = tenant.actions;
667
+ 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, saveAPIKeyConnection, saveAPIKeyConnectionSuccess, saveAPIKeyConnectionFailure, saveOAuthConnection, saveOAuthConnectionSuccess, saveOAuthConnectionFailure, deleteConnection, deleteConnectionSuccess, deleteConnectionFailure, clearAll, fetchSubscriptionSummaryForTenant, updateSubscriptionSummaryForTenantSuccess, updateSubscriptionSummaryForTenantFailure, updateOnboardingTenants, removeOnboardingTenant, updateTenantReimbursementInfo, updateReferViewedForLoggedInUser, updateTreasuryVideoViewedForLoggedInUser, resetSignInState, trigger2FA, updateTenantMasterTOSInfo, verifyDeviceWithTwoFA, verifyDeviceWithTwoFASuccess, verifyDeviceWithTwoFAFailure, resendVerifyDeviceOTP, resendVerifyDeviceOTPSuccess, resendVerifyDeviceOTPFailure, } = tenant.actions;
624
668
  export default tenant.reducer;
625
669
  /**
626
670
  * 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, fetchActiveTenant, fetchAllTenants, fetchExcludedResources as fetchExcludedResourcesForTenant, fetchExternalConnections as fetchExternalConnectionsForTenant, fetchSubscriptionSummaryForTenant, resendVerifyDeviceOTP, resetSignInState, saveAPIKeyConnection, saveAPIKeyConnectionFailure, saveAPIKeyConnectionSuccess, saveExternalConnection as saveExternalConnectionForTenant, saveOAuthConnection, saveOAuthConnectionFailure, saveOAuthConnectionSuccess, sendEmailMagicLinkToUser, toExternalIntegrationType, toExternalSupportedTool, updateCurrentTenant, updateSignInState, verifyDeviceWithTwoFA, } from './entity/tenant/tenantReducer';
62
+ import { clearAll, doMagicLinkSignIn, doSignIn, doSignOut, fetchActiveTenant, fetchAllTenants, fetchExcludedResources as fetchExcludedResourcesForTenant, fetchExternalConnections as fetchExternalConnectionsForTenant, fetchSubscriptionSummaryForTenant, resendVerifyDeviceOTP, resetSignInState, deleteConnection, deleteConnectionFailure, deleteConnectionSuccess, saveAPIKeyConnection, saveAPIKeyConnectionFailure, saveAPIKeyConnectionSuccess, saveExternalConnection as saveExternalConnectionForTenant, saveOAuthConnection, saveOAuthConnectionFailure, saveOAuthConnectionSuccess, sendEmailMagicLinkToUser, toExternalIntegrationType, toExternalSupportedTool, updateCurrentTenant, updateSignInState, verifyDeviceWithTwoFA, } from './entity/tenant/tenantReducer';
63
63
  import { getCurrentTenant, getIsAccountingClassesEnabled, 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';
@@ -428,7 +428,7 @@ export { toTimeframeTick, mapTimePeriodtoTimeframeTick, toTimePeriod, toAbsolute
428
428
  export { toVendorSpendTrendFilterTabsTypeStrict, } from './entity/vendorExpense/vendorExpenseSelector';
429
429
  export { getNumberOfPeriods };
430
430
  export { SCHEDULE_DAYS_OF_MONTH, toScheduleDaysOfMonth, toMonth, toMonthStrict, toQuarter, toQuarterStrict, };
431
- export { getTenantBaseById, getCurrentTenant, getIsAccountingClassesEnabled, getTenantsByCheckInDateSelector, getTenantsBaseByCheckInDateSelector, getTenantsCoreDetailsByCheckInDateSelector, toTenantCoreDetailsView, getTenantBaseViewForTenantView, getTenantBaseViewForTenantId, isZeniDomainTenant, isTenantUsingZeniCOA, fetchActiveTenant, fetchAllTenants, updateCurrentTenant, clearAll, doMagicLinkSignIn, verifyDeviceWithTwoFA, resendVerifyDeviceOTP, sendEmailMagicLinkToUser, doSignIn, updateSignInState, doSignOut, resetSignInState, fetchExcludedResourcesForTenant, fetchExternalConnectionsForTenant, saveExternalConnectionForTenant, saveAPIKeyConnection, saveAPIKeyConnectionFailure, saveAPIKeyConnectionSuccess, saveOAuthConnection, saveOAuthConnectionFailure, saveOAuthConnectionSuccess, toExternalIntegrationType, toExternalSupportedTool, fetchSubscriptionSummaryForTenant, isTenantBankingOnly, isTenantCardsOnly, isTenantBookkeepingEnabled, isOtherProductsEnabledForTenant, };
431
+ export { getTenantBaseById, getCurrentTenant, getIsAccountingClassesEnabled, getTenantsByCheckInDateSelector, getTenantsBaseByCheckInDateSelector, getTenantsCoreDetailsByCheckInDateSelector, toTenantCoreDetailsView, getTenantBaseViewForTenantView, getTenantBaseViewForTenantId, isZeniDomainTenant, isTenantUsingZeniCOA, fetchActiveTenant, fetchAllTenants, updateCurrentTenant, clearAll, doMagicLinkSignIn, verifyDeviceWithTwoFA, resendVerifyDeviceOTP, sendEmailMagicLinkToUser, doSignIn, updateSignInState, doSignOut, resetSignInState, fetchExcludedResourcesForTenant, fetchExternalConnectionsForTenant, saveExternalConnectionForTenant, deleteConnection, deleteConnectionFailure, deleteConnectionSuccess, saveAPIKeyConnection, saveAPIKeyConnectionFailure, saveAPIKeyConnectionSuccess, saveOAuthConnection, saveOAuthConnectionFailure, saveOAuthConnectionSuccess, toExternalIntegrationType, toExternalSupportedTool, fetchSubscriptionSummaryForTenant, isTenantBankingOnly, isTenantCardsOnly, isTenantBookkeepingEnabled, isOtherProductsEnabledForTenant, };
432
432
  export { toAccountType, toAccountGroupType, getAccountGroupKey, };
433
433
  export { getClassById } from './entity/class/classSelector';
434
434
  export { getForecast };
package/lib/index.d.ts CHANGED
@@ -122,7 +122,7 @@ import { PriorityCodeType, Task, TaskCodeType, TaskPriority, TaskStatus, TaskSta
122
122
  import { getTaskGroupById } from './entity/taskGroup/taskGroupSelector';
123
123
  import { TaskGroupState } from './entity/taskGroup/taskGroupState';
124
124
  import { TaskGroupTemplate } from './entity/taskGroupTemplate/taskGroupTemplateState';
125
- import { DoSignInPayload, ExternalIntegrationType, ExternalSupportedTool, clearAll, doMagicLinkSignIn, doSignIn, doSignOut, fetchActiveTenant, fetchAllTenants, fetchExcludedResources as fetchExcludedResourcesForTenant, fetchExternalConnections as fetchExternalConnectionsForTenant, fetchSubscriptionSummaryForTenant, resendVerifyDeviceOTP, resetSignInState, saveAPIKeyConnection, saveAPIKeyConnectionFailure, saveAPIKeyConnectionSuccess, saveExternalConnection as saveExternalConnectionForTenant, saveOAuthConnection, saveOAuthConnectionFailure, saveOAuthConnectionSuccess, sendEmailMagicLinkToUser, toExternalIntegrationType, toExternalSupportedTool, updateCurrentTenant, updateSignInState, verifyDeviceWithTwoFA } from './entity/tenant/tenantReducer';
125
+ import { DoSignInPayload, ExternalIntegrationType, ExternalSupportedTool, clearAll, doMagicLinkSignIn, doSignIn, doSignOut, fetchActiveTenant, fetchAllTenants, fetchExcludedResources as fetchExcludedResourcesForTenant, fetchExternalConnections as fetchExternalConnectionsForTenant, fetchSubscriptionSummaryForTenant, resendVerifyDeviceOTP, resetSignInState, deleteConnection, deleteConnectionFailure, deleteConnectionSuccess, saveAPIKeyConnection, saveAPIKeyConnectionFailure, saveAPIKeyConnectionSuccess, saveExternalConnection as saveExternalConnectionForTenant, saveOAuthConnection, saveOAuthConnectionFailure, saveOAuthConnectionSuccess, sendEmailMagicLinkToUser, toExternalIntegrationType, toExternalSupportedTool, updateCurrentTenant, updateSignInState, verifyDeviceWithTwoFA } from './entity/tenant/tenantReducer';
126
126
  import { CurrentTenant, TenantBaseView, TenantCoreDetailsView, TenantView, TenantsBaseOrdered, TenantsOrdered, getCurrentTenant, getIsAccountingClassesEnabled, getTenantBaseById, getTenantBaseViewForTenantId, getTenantBaseViewForTenantView, getTenantsBaseByCheckInDateSelector, getTenantsByCheckInDateSelector, getTenantsCoreDetailsByCheckInDateSelector, isOtherProductsEnabledForTenant, isTenantBankingOnly, isTenantBookkeepingEnabled, isTenantCardsOnly, isTenantUsingZeniCOA, isZeniDomainTenant, toTenantCoreDetailsView } from './entity/tenant/tenantSelector';
127
127
  import { Connection, LoggedInUser, RoleResource, Tenant, TenantProductSettings } from './entity/tenant/tenantState';
128
128
  import { ToastNotificationPayload } from './entity/toastNotification/toastNotificationPayload';
@@ -633,7 +633,7 @@ export { TimeframeTick, TimeframeTickWithMetaData, toTimeframeTick, mapTimePerio
633
633
  export { VendorSpendTrendFilterTabType, toVendorSpendTrendFilterTabsTypeStrict, } from './entity/vendorExpense/vendorExpenseSelector';
634
634
  export { getNumberOfPeriods };
635
635
  export { SCHEDULE_DAYS_OF_MONTH, ScheduleDaysOfMonth, toScheduleDaysOfMonth, Day, Month, toMonth, toMonthStrict, Quarter, toQuarter, toQuarterStrict, AbsoluteDay, TimePeriod, };
636
- export { Tenant, TenantView, LoggedInUser, TenantBaseView, CurrentTenant, TenantProductSettings, getTenantBaseById, getCurrentTenant, getIsAccountingClassesEnabled, 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, saveAPIKeyConnection, saveAPIKeyConnectionFailure, saveAPIKeyConnectionSuccess, saveOAuthConnection, saveOAuthConnectionFailure, saveOAuthConnectionSuccess, toExternalIntegrationType, toExternalSupportedTool, ExternalIntegrationType, ExternalSupportedTool, fetchSubscriptionSummaryForTenant, isTenantBankingOnly, isTenantCardsOnly, isTenantBookkeepingEnabled, isOtherProductsEnabledForTenant, };
636
+ export { Tenant, TenantView, LoggedInUser, TenantBaseView, CurrentTenant, TenantProductSettings, getTenantBaseById, getCurrentTenant, getIsAccountingClassesEnabled, 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, deleteConnection, deleteConnectionFailure, deleteConnectionSuccess, saveAPIKeyConnection, saveAPIKeyConnectionFailure, saveAPIKeyConnectionSuccess, saveOAuthConnection, saveOAuthConnectionFailure, saveOAuthConnectionSuccess, toExternalIntegrationType, toExternalSupportedTool, ExternalIntegrationType, ExternalSupportedTool, fetchSubscriptionSummaryForTenant, isTenantBankingOnly, isTenantCardsOnly, isTenantBookkeepingEnabled, isOtherProductsEnabledForTenant, };
637
637
  export { Account, AccountType, AccountBase, StatementCloseDay, toAccountType, AccountReport, NestedAccountReport, AccountWithBalanceReport, AccountGroup, AccountGroupReportV2, AccountGroupType, toAccountGroupType, AccountGroupReport, getAccountGroupKey, AccountGroupKey, RecommendedAccountBase, };
638
638
  export { Class, ClassBase, RecommendedClassBase, } from './entity/class/classState';
639
639
  export { getClassById } from './entity/class/classSelector';