@zeniai/client-epic-state 5.2.81 → 5.2.83-beta0UT
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/esm/index.js +2 -0
- package/lib/esm/view/expenseAutomationView/helpers/transactionCategorizationLocalDataHelper.js +5 -1
- package/lib/esm/view/invoicing/editInvoicingSubscriptionDetailView/editInvoicingSubscriptionDetailViewPayload.js +50 -0
- package/lib/esm/view/settingsView/epic/saveNotificationSettingsEpic.js +7 -0
- package/lib/esm/view/settingsView/settingsViewHelpers.js +1 -0
- package/lib/esm/view/settingsView/settingsViewReducer.js +5 -1
- package/lib/esm/view/settingsView/settingsViewState.js +1 -0
- package/lib/esm/view/taskManager/taskDetailView/epics/saveTaskDetailEpic.js +2 -1
- package/lib/esm/view/taskManager/taskDetailView/taskDetailSelector.js +6 -4
- package/lib/esm/view/userGroupListView/userGroupListViewSelector.js +5 -0
- package/lib/esm/view/userListView/fetchUserListByTypeEpic.js +14 -5
- package/lib/esm/view/userListView/userListViewReducer.js +7 -1
- package/lib/index.d.ts +3 -1
- package/lib/index.js +42 -39
- package/lib/view/expenseAutomationView/helpers/transactionCategorizationLocalDataHelper.js +5 -1
- package/lib/view/invoicing/editInvoicingSubscriptionDetailView/editInvoicingSubscriptionDetailViewPayload.d.ts +10 -0
- package/lib/view/invoicing/editInvoicingSubscriptionDetailView/editInvoicingSubscriptionDetailViewPayload.js +50 -0
- package/lib/view/invoicing/editInvoicingSubscriptionDetailView/editInvoicingSubscriptionDetailViewState.d.ts +13 -0
- package/lib/view/settingsView/epic/saveNotificationSettingsEpic.js +7 -0
- package/lib/view/settingsView/settingsViewHelpers.js +1 -0
- package/lib/view/settingsView/settingsViewPayload.d.ts +2 -0
- package/lib/view/settingsView/settingsViewReducer.js +5 -1
- package/lib/view/settingsView/settingsViewState.d.ts +2 -2
- package/lib/view/settingsView/settingsViewState.js +1 -0
- package/lib/view/taskManager/taskDetailView/epics/saveTaskDetailEpic.js +2 -1
- package/lib/view/taskManager/taskDetailView/taskDetailSelector.js +6 -4
- package/lib/view/userGroupListView/userGroupListViewSelector.d.ts +2 -0
- package/lib/view/userGroupListView/userGroupListViewSelector.js +6 -1
- package/lib/view/userListView/fetchUserListByTypeEpic.d.ts +2 -2
- package/lib/view/userListView/fetchUserListByTypeEpic.js +13 -4
- package/lib/view/userListView/userListViewReducer.d.ts +3 -1
- package/lib/view/userListView/userListViewReducer.js +8 -2
- package/package.json +1 -1
|
@@ -153,6 +153,7 @@ const isRemindersSectionVisibleOnSettingsPage = (reminderNotificationSettings) =
|
|
|
153
153
|
reminderNotificationSettings.pendingBillApprovalNotification != null ||
|
|
154
154
|
reminderNotificationSettings.pendingReimbursementApprovalNotification !=
|
|
155
155
|
null ||
|
|
156
|
+
reminderNotificationSettings.pendingTaskNotification != null ||
|
|
156
157
|
reminderNotificationSettings.uncategorizedTransactionNotification != null);
|
|
157
158
|
};
|
|
158
159
|
exports.isRemindersSectionVisibleOnSettingsPage = isRemindersSectionVisibleOnSettingsPage;
|
|
@@ -32,10 +32,12 @@ export interface NotificationSettingsPayload {
|
|
|
32
32
|
is_month_end_insights_active: boolean | null;
|
|
33
33
|
is_pending_bill_approval_notification_active: boolean | null;
|
|
34
34
|
is_pending_reimbursement_approval_notification_active: boolean | null;
|
|
35
|
+
is_pending_task_notification_active: boolean | null;
|
|
35
36
|
is_uncategorized_transaction_notification_active: boolean | null;
|
|
36
37
|
missing_receipt_notification: RemindersPayload | null;
|
|
37
38
|
pending_bill_approval_notification: RemindersPayload | null;
|
|
38
39
|
pending_reimbursement_approval_notification: RemindersPayload | null;
|
|
40
|
+
pending_task_notification: RemindersPayload | null;
|
|
39
41
|
uncategorized_transaction_notification: RemindersPayload | null;
|
|
40
42
|
month_end_email_recipient_email_ids?: string[];
|
|
41
43
|
task_checklist_preferences?: NotificationPreferencesPayload;
|
|
@@ -8,6 +8,7 @@ const settingsViewState_1 = require("./settingsViewState");
|
|
|
8
8
|
const initialNotificationSettingsData = {
|
|
9
9
|
reminderNotificationSettings: {
|
|
10
10
|
missingReceiptNotification: null,
|
|
11
|
+
pendingTaskNotification: null,
|
|
11
12
|
uncategorizedTransactionNotification: null,
|
|
12
13
|
pendingBillApprovalNotification: null,
|
|
13
14
|
pendingReimbursementApprovalNotification: null,
|
|
@@ -48,6 +49,7 @@ const initialNotificationSettingsLocalData = {
|
|
|
48
49
|
missingReceiptNotification: initialRemindersLocalData,
|
|
49
50
|
pendingBillApprovalNotification: initialRemindersLocalData,
|
|
50
51
|
pendingReimbursementApprovalNotification: initialRemindersLocalData,
|
|
52
|
+
pendingTaskNotification: initialRemindersLocalData,
|
|
51
53
|
uncategorizedTransactionNotification: initialRemindersLocalData,
|
|
52
54
|
},
|
|
53
55
|
};
|
|
@@ -377,7 +379,7 @@ function toRemindersLocalData(reminderNotificationSettingDetails) {
|
|
|
377
379
|
}
|
|
378
380
|
const toNotificationSettingsLocalData = (data, loggedInUserEmail) => {
|
|
379
381
|
const { monthEndInsightsNotificationSettings, reminderNotificationSettings } = data;
|
|
380
|
-
const { missingReceiptNotification, pendingBillApprovalNotification, pendingReimbursementApprovalNotification, uncategorizedTransactionNotification, } = reminderNotificationSettings;
|
|
382
|
+
const { missingReceiptNotification, pendingBillApprovalNotification, pendingReimbursementApprovalNotification, pendingTaskNotification, uncategorizedTransactionNotification, } = reminderNotificationSettings;
|
|
381
383
|
return {
|
|
382
384
|
monthEndInsights: {
|
|
383
385
|
notify: monthEndInsightsNotificationSettings.enabled ??
|
|
@@ -388,6 +390,7 @@ const toNotificationSettingsLocalData = (data, loggedInUserEmail) => {
|
|
|
388
390
|
missingReceiptNotification: toRemindersLocalData(missingReceiptNotification),
|
|
389
391
|
pendingBillApprovalNotification: toRemindersLocalData(pendingBillApprovalNotification),
|
|
390
392
|
pendingReimbursementApprovalNotification: toRemindersLocalData(pendingReimbursementApprovalNotification),
|
|
393
|
+
pendingTaskNotification: toRemindersLocalData(pendingTaskNotification),
|
|
391
394
|
uncategorizedTransactionNotification: toRemindersLocalData(uncategorizedTransactionNotification),
|
|
392
395
|
},
|
|
393
396
|
};
|
|
@@ -412,6 +415,7 @@ const toNotificationSettings = (data) => {
|
|
|
412
415
|
missingReceiptNotification: toReminderNotificationSettingsDetails(data.is_missing_receipt_notification_active, data.missing_receipt_notification),
|
|
413
416
|
pendingBillApprovalNotification: toReminderNotificationSettingsDetails(data.is_pending_bill_approval_notification_active, data.pending_bill_approval_notification),
|
|
414
417
|
pendingReimbursementApprovalNotification: toReminderNotificationSettingsDetails(data.is_pending_reimbursement_approval_notification_active, data.pending_reimbursement_approval_notification),
|
|
418
|
+
pendingTaskNotification: toReminderNotificationSettingsDetails(data.is_pending_task_notification_active, data.pending_task_notification),
|
|
415
419
|
uncategorizedTransactionNotification: toReminderNotificationSettingsDetails(data.is_uncategorized_transaction_notification_active, data.uncategorized_transaction_notification),
|
|
416
420
|
},
|
|
417
421
|
monthEndInsightsNotificationSettings: {
|
|
@@ -9,8 +9,8 @@ interface BillingAddress extends FetchStateAndError {
|
|
|
9
9
|
export interface IntegrationsSettings {
|
|
10
10
|
refreshQBO: FetchStateAndError;
|
|
11
11
|
}
|
|
12
|
-
export declare const REMINDER_NOTIFICATION_TYPES: readonly ["missingReceiptNotification", "uncategorizedTransactionNotification", "pendingBillApprovalNotification", "pendingReimbursementApprovalNotification"];
|
|
13
|
-
declare const toReminderTypeKey: (v: string) => "missingReceiptNotification" | "uncategorizedTransactionNotification" | "pendingBillApprovalNotification" | "pendingReimbursementApprovalNotification";
|
|
12
|
+
export declare const REMINDER_NOTIFICATION_TYPES: readonly ["missingReceiptNotification", "pendingTaskNotification", "uncategorizedTransactionNotification", "pendingBillApprovalNotification", "pendingReimbursementApprovalNotification"];
|
|
13
|
+
declare const toReminderTypeKey: (v: string) => "missingReceiptNotification" | "pendingTaskNotification" | "uncategorizedTransactionNotification" | "pendingBillApprovalNotification" | "pendingReimbursementApprovalNotification";
|
|
14
14
|
export type ReminderTypeKey = ReturnType<typeof toReminderTypeKey>;
|
|
15
15
|
export declare const toRemindersFrequencyType: (v: string) => "weekly" | "monthly" | "daily" | "bi-weekly";
|
|
16
16
|
export type FrequencyTypeKey = ReturnType<typeof toRemindersFrequencyType>;
|
|
@@ -4,6 +4,7 @@ exports.toNotificationMode = exports.NOTIFICATION_MODES = exports.toRemindersFre
|
|
|
4
4
|
const stringToUnion_1 = require("../../commonStateTypes/stringToUnion");
|
|
5
5
|
exports.REMINDER_NOTIFICATION_TYPES = [
|
|
6
6
|
'missingReceiptNotification',
|
|
7
|
+
'pendingTaskNotification',
|
|
7
8
|
'uncategorizedTransactionNotification',
|
|
8
9
|
'pendingBillApprovalNotification',
|
|
9
10
|
'pendingReimbursementApprovalNotification',
|
|
@@ -9,6 +9,7 @@ const snackbarReducer_1 = require("../../../../entity/snackbar/snackbarReducer")
|
|
|
9
9
|
const taskReducer_1 = require("../../../../entity/task/taskReducer");
|
|
10
10
|
const taskSelector_1 = require("../../../../entity/task/taskSelector");
|
|
11
11
|
const responsePayload_1 = require("../../../../responsePayload");
|
|
12
|
+
const zeniDayJS_1 = require("../../../../zeniDayJS");
|
|
12
13
|
const taskListReducer_1 = require("../../taskListView/taskListReducer");
|
|
13
14
|
const taskDetailReducer_1 = require("../taskDetailReducer");
|
|
14
15
|
const saveTaskDetailEpic = (actions$, state$, zeniAPI) => actions$.pipe((0, operators_1.filter)(taskDetailReducer_1.saveTaskDetail.match), (0, operators_1.mergeMap)((action) => {
|
|
@@ -154,7 +155,7 @@ const prepareTaskPayload = (state, taskId, taskGroupIds) => {
|
|
|
154
155
|
: null,
|
|
155
156
|
recurring_frequency: localData.type.code === 'recurring' ? localData.recurringFrequency : null,
|
|
156
157
|
recurring_start_date: localData.type.code === 'recurring'
|
|
157
|
-
? (localData.recurringStartDate
|
|
158
|
+
? (localData.recurringStartDate ?? (0, zeniDayJS_1.dateNow)()).format(timePeriod_1.DEFAULT_DATE_FORMAT)
|
|
158
159
|
: null,
|
|
159
160
|
recurring_days_of_week: localData.type.code === 'recurring' &&
|
|
160
161
|
localData.recurringFrequency === 'semi_weekly'
|
|
@@ -177,10 +177,12 @@ const showFormFooter = (taskDetailLocalData, taskDetailInStore) => {
|
|
|
177
177
|
!(0, isEqual_1.default)(taskDetailLocalData.fileIds, taskDetailInStore.fileIds ?? []) ||
|
|
178
178
|
!(0, isEqual_1.default)(taskDetailLocalData.dueDate, taskDetailInStore.dueDate) ||
|
|
179
179
|
!(0, isEqual_1.default)(taskDetailLocalData.type, taskDetailInStore.type) ||
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
180
|
+
// Only a recurring task saves these, so on any other type they are not an edit.
|
|
181
|
+
(taskDetailLocalData.type.code === 'recurring' &&
|
|
182
|
+
(!(0, isEqual_1.default)(taskDetailLocalData.savedRecurringEndDate, taskDetailInStore.recurringEndDate) ||
|
|
183
|
+
!(0, isEqual_1.default)(taskDetailLocalData.recurringFrequency, taskDetailInStore.recurringFrequency) ||
|
|
184
|
+
!(0, isEqual_1.default)(taskDetailLocalData.recurringDaysOfWeek, taskDetailInStore.recurringDaysOfWeek) ||
|
|
185
|
+
!(0, isEqual_1.default)(taskDetailLocalData.recurringStartDate, taskDetailInStore.recurringStartDate))) ||
|
|
184
186
|
!(0, isEqual_1.default)(taskDetailLocalData.timeSpent, taskDetailInStore.timeSpent) ||
|
|
185
187
|
!(0, isEqual_1.default)(taskDetailLocalData.taskGroupId, taskDetailInStore.taskGroupIds.length > 0
|
|
186
188
|
? taskDetailInStore.taskGroupIds[0]
|
|
@@ -1,7 +1,9 @@
|
|
|
1
1
|
import { SelectorView } from '../../commonStateTypes/viewAndReport/viewAndReport';
|
|
2
2
|
import { UserGroup, UserGroupsState } from '../../entity/userGroups/userGroupsState';
|
|
3
|
+
import { RootState } from '../../rootStateTypes';
|
|
3
4
|
import { UserGroupListType, UserGroupListViewState } from './userGroupListViewState';
|
|
4
5
|
export interface UserGroupListSelectorView extends SelectorView {
|
|
5
6
|
userGroups: UserGroup[];
|
|
6
7
|
}
|
|
7
8
|
export declare const getUserGroupList: (userGroupsState: UserGroupsState, userGroupListViewState: UserGroupListViewState, userGroupType: UserGroupListType) => UserGroupListSelectorView;
|
|
9
|
+
export declare const getTaskManagerCandidateUserGroups: (state: RootState) => UserGroup[];
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.getUserGroupList = void 0;
|
|
3
|
+
exports.getTaskManagerCandidateUserGroups = exports.getUserGroupList = void 0;
|
|
4
|
+
const toolkit_1 = require("@reduxjs/toolkit");
|
|
4
5
|
const userGroupsSelector_1 = require("../../entity/userGroups/userGroupsSelector");
|
|
5
6
|
const getUserGroupList = (userGroupsState, userGroupListViewState, userGroupType) => {
|
|
6
7
|
const listState = userGroupListViewState.userGroupListByType[userGroupType];
|
|
@@ -18,3 +19,7 @@ function getUserGroupListByIds(userGroupsState, userGroupListViewState, type) {
|
|
|
18
19
|
.map((id) => (0, userGroupsSelector_1.getUserGroupByUserGroupId)(userGroupsState, id))
|
|
19
20
|
.filter((value) => value != null);
|
|
20
21
|
}
|
|
22
|
+
exports.getTaskManagerCandidateUserGroups = (0, toolkit_1.createSelector)([
|
|
23
|
+
(state) => state.userGroupsState,
|
|
24
|
+
(state) => state.userGroupListViewState,
|
|
25
|
+
], (userGroupsState, userGroupListViewState) => getUserGroupListByIds(userGroupsState, userGroupListViewState, 'taskManagerCandidate'));
|
|
@@ -7,6 +7,6 @@ import { RootState } from '../../rootStateTypes';
|
|
|
7
7
|
import { ZeniAPI } from '../../zeniAPI';
|
|
8
8
|
import { updateChargeCardCount, updateDebitCardCount } from '../spendManagement/chargeCards/issueChargeCard/issueChargeCardReducer';
|
|
9
9
|
import { updateUserGroupIds } from '../userGroupListView/userGroupListViewReducer';
|
|
10
|
-
import { fetchUserListByType, updateUserIds, updateUserListFetchFailure } from './userListViewReducer';
|
|
11
|
-
export type ActionType = ReturnType<typeof fetchUserListByType> | ReturnType<typeof updateAllUsers> | ReturnType<typeof updateUserRoles> | ReturnType<typeof updateUserIds> | ReturnType<typeof updateChargeCardCount> | ReturnType<typeof updateDebitCardCount> | ReturnType<typeof updateAddresses> | ReturnType<typeof updateUserListFetchFailure> | ReturnType<typeof updateAllUserGroups> | ReturnType<typeof updateUserGroupIds>;
|
|
10
|
+
import { fetchUserListByType, resetUserListFetchState, updateUserIds, updateUserListFetchFailure } from './userListViewReducer';
|
|
11
|
+
export type ActionType = ReturnType<typeof fetchUserListByType> | ReturnType<typeof updateAllUsers> | ReturnType<typeof updateUserRoles> | ReturnType<typeof updateUserIds> | ReturnType<typeof updateChargeCardCount> | ReturnType<typeof updateDebitCardCount> | ReturnType<typeof updateAddresses> | ReturnType<typeof updateUserListFetchFailure> | ReturnType<typeof resetUserListFetchState> | ReturnType<typeof updateAllUserGroups> | ReturnType<typeof updateUserGroupIds>;
|
|
12
12
|
export declare const fetchUserListByTypeEpic: (actions$: ActionsObservable<ActionType>, state$: StateObservable<RootState>, zeniAPI: ZeniAPI) => import("rxjs").Observable<ActionType>;
|
|
@@ -24,7 +24,14 @@ const fetchUserListByTypeEpic = (actions$, state$, zeniAPI) => actions$.pipe((0,
|
|
|
24
24
|
const queryParam = getQueryParam(userType, isZeniTenant);
|
|
25
25
|
apiUrl =
|
|
26
26
|
apiUrl + `?query=${encodeURIComponent(JSON.stringify(queryParam))}`;
|
|
27
|
+
// The tenant the request is sent for. A reply after a tenant switch must
|
|
28
|
+
// not land in the new tenant's state, so the fetch is reset instead.
|
|
29
|
+
const requestTenantId = zeniAPI.tenantId;
|
|
30
|
+
const isForPreviousTenant = () => requestTenantId != null && zeniAPI.tenantId !== requestTenantId;
|
|
27
31
|
return zeniAPI.getJSON(apiUrl).pipe((0, operators_1.mergeMap)((response) => {
|
|
32
|
+
if (isForPreviousTenant()) {
|
|
33
|
+
return (0, rxjs_1.of)((0, userListViewReducer_1.resetUserListFetchState)({ userType }));
|
|
34
|
+
}
|
|
28
35
|
if ((0, responsePayload_1.isSuccessResponse)(response)) {
|
|
29
36
|
const userListAction = [
|
|
30
37
|
(0, userReducer_1.updateAllUsers)({ users: response.data?.users ?? [] }),
|
|
@@ -53,10 +60,12 @@ const fetchUserListByTypeEpic = (actions$, state$, zeniAPI) => actions$.pipe((0,
|
|
|
53
60
|
else {
|
|
54
61
|
return (0, rxjs_1.of)((0, userListViewReducer_1.updateUserListFetchFailure)({ userType, status: response.status }));
|
|
55
62
|
}
|
|
56
|
-
}), (0, operators_1.catchError)((error) => (0, rxjs_1.of)((
|
|
57
|
-
userType
|
|
58
|
-
|
|
59
|
-
|
|
63
|
+
}), (0, operators_1.catchError)((error) => (0, rxjs_1.of)(isForPreviousTenant()
|
|
64
|
+
? (0, userListViewReducer_1.resetUserListFetchState)({ userType })
|
|
65
|
+
: (0, userListViewReducer_1.updateUserListFetchFailure)({
|
|
66
|
+
userType,
|
|
67
|
+
status: (0, responsePayload_1.createZeniAPIStatus)('Unexpected error', 'User REST API call errored out' + JSON.stringify(error)),
|
|
68
|
+
}))));
|
|
60
69
|
}
|
|
61
70
|
else {
|
|
62
71
|
return (0, rxjs_1.from)([]);
|
|
@@ -18,6 +18,8 @@ export declare const fetchUserListByType: import("@reduxjs/toolkit").ActionCreat
|
|
|
18
18
|
}, "userListView/removeUserId">, updateUserListFetchFailure: import("@reduxjs/toolkit").ActionCreatorWithPayload<{
|
|
19
19
|
status: ZeniAPIStatus;
|
|
20
20
|
userType: UserListType;
|
|
21
|
-
}, "userListView/updateUserListFetchFailure"
|
|
21
|
+
}, "userListView/updateUserListFetchFailure">, resetUserListFetchState: import("@reduxjs/toolkit").ActionCreatorWithPayload<{
|
|
22
|
+
userType: UserListType;
|
|
23
|
+
}, "userListView/resetUserListFetchState">;
|
|
22
24
|
declare const _default: import("redux").Reducer<UserListViewState>;
|
|
23
25
|
export default _default;
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
var _a;
|
|
3
3
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
4
|
-
exports.updateUserListFetchFailure = exports.removeUserId = exports.addUserId = exports.updateUserIds = exports.fetchUserListByType = exports.initialState = void 0;
|
|
4
|
+
exports.resetUserListFetchState = exports.updateUserListFetchFailure = exports.removeUserId = exports.addUserId = exports.updateUserIds = exports.fetchUserListByType = exports.initialState = void 0;
|
|
5
5
|
const toolkit_1 = require("@reduxjs/toolkit");
|
|
6
6
|
const rootActions_1 = require("../../rootActions");
|
|
7
7
|
const initialUserList = {
|
|
@@ -63,6 +63,12 @@ const userListView = (0, toolkit_1.createSlice)({
|
|
|
63
63
|
draft.userListByType[userType].ids.splice(userIndex, 1);
|
|
64
64
|
}
|
|
65
65
|
},
|
|
66
|
+
resetUserListFetchState(draft, action) {
|
|
67
|
+
const list = draft.userListByType[action.payload.userType];
|
|
68
|
+
if (list.fetchState === 'In-Progress') {
|
|
69
|
+
list.fetchState = 'Not-Started';
|
|
70
|
+
}
|
|
71
|
+
},
|
|
66
72
|
updateUserListFetchFailure(draft, action) {
|
|
67
73
|
const { userType, status } = action.payload;
|
|
68
74
|
draft.userListByType[userType].fetchState = 'Error';
|
|
@@ -75,5 +81,5 @@ const userListView = (0, toolkit_1.createSlice)({
|
|
|
75
81
|
});
|
|
76
82
|
},
|
|
77
83
|
});
|
|
78
|
-
_a = userListView.actions, exports.fetchUserListByType = _a.fetchUserListByType, exports.updateUserIds = _a.updateUserIds, exports.addUserId = _a.addUserId, exports.removeUserId = _a.removeUserId, exports.updateUserListFetchFailure = _a.updateUserListFetchFailure;
|
|
84
|
+
_a = userListView.actions, exports.fetchUserListByType = _a.fetchUserListByType, exports.updateUserIds = _a.updateUserIds, exports.addUserId = _a.addUserId, exports.removeUserId = _a.removeUserId, exports.updateUserListFetchFailure = _a.updateUserListFetchFailure, exports.resetUserListFetchState = _a.resetUserListFetchState;
|
|
79
85
|
exports.default = userListView.reducer;
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@zeniai/client-epic-state",
|
|
3
|
-
"version": "5.2.
|
|
3
|
+
"version": "5.2.83-beta0UT",
|
|
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",
|