@zeniai/client-epic-state 5.2.11-betaAM5 → 5.2.11-betaAM7
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/entity/jeSchedules/jeSchedulesPayload.d.ts +2 -0
- package/lib/entity/jeSchedules/jeSchedulesPayload.js +4 -0
- package/lib/entity/jeSchedules/jeSchedulesState.d.ts +2 -0
- package/lib/esm/entity/jeSchedules/jeSchedulesPayload.js +4 -0
- package/lib/esm/view/expenseAutomationView/payload/actualMatchingPayload.js +26 -6
- package/lib/esm/view/expenseAutomationView/selectors/actualMatchingViewSelector.js +33 -7
- package/lib/esm/view/expenseAutomationView/types/actualMatchingViewState.js +1 -1
- package/lib/view/expenseAutomationView/payload/actualMatchingPayload.d.ts +2 -1
- package/lib/view/expenseAutomationView/payload/actualMatchingPayload.js +26 -6
- package/lib/view/expenseAutomationView/selectors/actualMatchingViewSelector.d.ts +1 -0
- package/lib/view/expenseAutomationView/selectors/actualMatchingViewSelector.js +34 -7
- package/lib/view/expenseAutomationView/types/actualMatchingViewState.d.ts +1 -1
- package/lib/view/expenseAutomationView/types/actualMatchingViewState.js +1 -1
- package/package.json +1 -1
|
@@ -128,7 +128,9 @@ export interface JEOneTimeAccrualAiSuggestionPayload {
|
|
|
128
128
|
memo?: string | null;
|
|
129
129
|
}
|
|
130
130
|
export interface JEOneTimeAccrualClearedPayload {
|
|
131
|
+
accrual_ids?: string[] | null;
|
|
131
132
|
consumed_line_ids?: string[] | null;
|
|
133
|
+
group_sum?: number | null;
|
|
132
134
|
match_shape?: string | null;
|
|
133
135
|
match_tier?: string | null;
|
|
134
136
|
matched_amount?: number | null;
|
|
@@ -465,6 +465,10 @@ function toJEOneTimeAccrualCleared(payload, currencyCode) {
|
|
|
465
465
|
matchedAmount: payload.matched_amount != null
|
|
466
466
|
? toOneTimeAccrualAmount(payload.matched_amount, currencyCode)
|
|
467
467
|
: undefined,
|
|
468
|
+
groupSum: payload.group_sum != null
|
|
469
|
+
? toOneTimeAccrualAmount(payload.group_sum, currencyCode)
|
|
470
|
+
: undefined,
|
|
471
|
+
accrualIds: payload.accrual_ids ?? undefined,
|
|
468
472
|
reversedAt: payload.reversed_at != null ? (0, zeniDayJS_1.date)(payload.reversed_at) : undefined,
|
|
469
473
|
matchTier: payload.match_tier ?? undefined,
|
|
470
474
|
matchShape: payload.match_shape ?? undefined,
|
|
@@ -199,7 +199,9 @@ export interface JEOneTimeAccrualAiSuggestion {
|
|
|
199
199
|
}
|
|
200
200
|
/** Cleared-bill stamp written when an accrual is matched and reversed. */
|
|
201
201
|
export interface JEOneTimeAccrualCleared {
|
|
202
|
+
accrualIds?: ID[];
|
|
202
203
|
consumedLineIds?: string[];
|
|
204
|
+
groupSum?: Amount;
|
|
203
205
|
matchedAmount?: Amount;
|
|
204
206
|
matchedLineId?: string;
|
|
205
207
|
matchedTransactionId?: string;
|
|
@@ -454,6 +454,10 @@ function toJEOneTimeAccrualCleared(payload, currencyCode) {
|
|
|
454
454
|
matchedAmount: payload.matched_amount != null
|
|
455
455
|
? toOneTimeAccrualAmount(payload.matched_amount, currencyCode)
|
|
456
456
|
: undefined,
|
|
457
|
+
groupSum: payload.group_sum != null
|
|
458
|
+
? toOneTimeAccrualAmount(payload.group_sum, currencyCode)
|
|
459
|
+
: undefined,
|
|
460
|
+
accrualIds: payload.accrual_ids ?? undefined,
|
|
457
461
|
reversedAt: payload.reversed_at != null ? date(payload.reversed_at) : undefined,
|
|
458
462
|
matchTier: payload.match_tier ?? undefined,
|
|
459
463
|
matchShape: payload.match_shape ?? undefined,
|
|
@@ -5,8 +5,31 @@ export function toServiceMonthFromPeriod(period) {
|
|
|
5
5
|
}
|
|
6
6
|
const DEFAULT_CURRENCY_CODE = 'USD';
|
|
7
7
|
const DEFAULT_CURRENCY_SYMBOL = '$';
|
|
8
|
+
function resolveMatchSearchAmount(payload) {
|
|
9
|
+
const raw = payload.total_amount ?? payload.amount;
|
|
10
|
+
if (typeof raw === 'number' && Number.isFinite(raw)) {
|
|
11
|
+
return raw;
|
|
12
|
+
}
|
|
13
|
+
if (typeof raw === 'string' && raw !== '') {
|
|
14
|
+
const parsed = Number(raw);
|
|
15
|
+
if (Number.isFinite(parsed)) {
|
|
16
|
+
return parsed;
|
|
17
|
+
}
|
|
18
|
+
}
|
|
19
|
+
return 0;
|
|
20
|
+
}
|
|
21
|
+
function resolveMatchSearchCurrencySymbol(payload, currencyCode) {
|
|
22
|
+
if (payload.currency_symbol != null && payload.currency_symbol !== '') {
|
|
23
|
+
return payload.currency_symbol;
|
|
24
|
+
}
|
|
25
|
+
return currencyCode === DEFAULT_CURRENCY_CODE
|
|
26
|
+
? DEFAULT_CURRENCY_SYMBOL
|
|
27
|
+
: currencyCode;
|
|
28
|
+
}
|
|
8
29
|
export function toActualMatchingTransactionSearchResult(payload) {
|
|
9
|
-
const currencyCode = payload.currency_code
|
|
30
|
+
const currencyCode = payload.currency_code != null && payload.currency_code !== ''
|
|
31
|
+
? payload.currency_code
|
|
32
|
+
: DEFAULT_CURRENCY_CODE;
|
|
10
33
|
return {
|
|
11
34
|
transactionId: payload.transaction_id,
|
|
12
35
|
transactionIntegrationId: payload.transaction_integration_id,
|
|
@@ -14,7 +37,7 @@ export function toActualMatchingTransactionSearchResult(payload) {
|
|
|
14
37
|
lineId: payload.line_id,
|
|
15
38
|
vendorId: payload.vendor_id ?? undefined,
|
|
16
39
|
vendorName: payload.vendor_name ?? '',
|
|
17
|
-
amount: payload
|
|
40
|
+
amount: resolveMatchSearchAmount(payload),
|
|
18
41
|
transactionDate: payload.transaction_date,
|
|
19
42
|
accountId: payload.account_id ?? undefined,
|
|
20
43
|
accountName: payload.account_name ?? undefined,
|
|
@@ -22,10 +45,7 @@ export function toActualMatchingTransactionSearchResult(payload) {
|
|
|
22
45
|
accountingClassId: payload.accounting_class_id ?? undefined,
|
|
23
46
|
accountingClassName: payload.accounting_class_name ?? undefined,
|
|
24
47
|
currencyCode,
|
|
25
|
-
currencySymbol: payload
|
|
26
|
-
(currencyCode === DEFAULT_CURRENCY_CODE
|
|
27
|
-
? DEFAULT_CURRENCY_SYMBOL
|
|
28
|
-
: currencyCode),
|
|
48
|
+
currencySymbol: resolveMatchSearchCurrencySymbol(payload, currencyCode),
|
|
29
49
|
transactionMemo: payload.transaction_memo ?? undefined,
|
|
30
50
|
transactionDescription: payload.transaction_description ?? undefined,
|
|
31
51
|
transactionTypeName: payload.transaction_type_name ?? undefined,
|
|
@@ -17,10 +17,38 @@ export function isPendingReviewAccrual(accrual) {
|
|
|
17
17
|
const resolution = accrual.matchSuggestion.resolution;
|
|
18
18
|
return resolution == null || resolution.length === 0;
|
|
19
19
|
}
|
|
20
|
+
function isGroupedClearedMatch(accrual) {
|
|
21
|
+
const groupSum = accrual.cleared?.groupSum?.amount;
|
|
22
|
+
if (groupSum == null || groupSum <= 0) {
|
|
23
|
+
return false;
|
|
24
|
+
}
|
|
25
|
+
const matchShape = accrual.cleared?.matchShape;
|
|
26
|
+
const accrualIdsLength = accrual.cleared?.accrualIds?.length ?? 0;
|
|
27
|
+
return matchShape === '1:N' || matchShape === 'N:1' || accrualIdsLength > 1;
|
|
28
|
+
}
|
|
29
|
+
export function getClearedAllocatedActualAmount(accrual) {
|
|
30
|
+
const matchedAmount = accrual.cleared?.matchedAmount?.amount;
|
|
31
|
+
if (matchedAmount == null) {
|
|
32
|
+
return undefined;
|
|
33
|
+
}
|
|
34
|
+
if (!isGroupedClearedMatch(accrual)) {
|
|
35
|
+
return matchedAmount;
|
|
36
|
+
}
|
|
37
|
+
const groupSum = accrual.cleared?.groupSum?.amount;
|
|
38
|
+
if (groupSum == null || groupSum <= 0) {
|
|
39
|
+
return matchedAmount;
|
|
40
|
+
}
|
|
41
|
+
return matchedAmount * (accrual.estimatedAmount.amount / groupSum);
|
|
42
|
+
}
|
|
20
43
|
export function getActualMatchingAmount(accrual) {
|
|
21
|
-
|
|
22
|
-
accrual.matchSuggestion?.matchedAmount?.amount ??
|
|
23
|
-
|
|
44
|
+
if (isPendingReviewAccrual(accrual)) {
|
|
45
|
+
return (accrual.matchSuggestion?.matchedAmount?.amount ??
|
|
46
|
+
accrual.estimatedAmount.amount);
|
|
47
|
+
}
|
|
48
|
+
if (isAutoReversedAccrual(accrual) || isManuallyReversedAccrual(accrual)) {
|
|
49
|
+
return (getClearedAllocatedActualAmount(accrual) ?? accrual.estimatedAmount.amount);
|
|
50
|
+
}
|
|
51
|
+
return accrual.estimatedAmount.amount;
|
|
24
52
|
}
|
|
25
53
|
export function getActualMatchingReversalDate(accrual) {
|
|
26
54
|
if (!isAutoReversedAccrual(accrual) && !isManuallyReversedAccrual(accrual)) {
|
|
@@ -124,12 +152,10 @@ export function getExpenseAutomationActualMatchingView(state) {
|
|
|
124
152
|
amount: listedAccruals.reduce((sum, accrual) => sum + getActualMatchingAmount(accrual), 0),
|
|
125
153
|
},
|
|
126
154
|
ai: {
|
|
127
|
-
count: listedAccruals.filter((accrual) => accrual.origin === 'agent')
|
|
128
|
-
.length,
|
|
155
|
+
count: listedAccruals.filter((accrual) => accrual.origin === 'agent').length,
|
|
129
156
|
},
|
|
130
157
|
manual: {
|
|
131
|
-
count: listedAccruals.filter((accrual) => accrual.origin === 'human')
|
|
132
|
-
.length,
|
|
158
|
+
count: listedAccruals.filter((accrual) => accrual.origin === 'human').length,
|
|
133
159
|
},
|
|
134
160
|
};
|
|
135
161
|
const accrualSearchResults = matchModal.accrualSearch.results
|
|
@@ -9,7 +9,7 @@ const ACTUAL_MATCHING_SORT_KEYS = [
|
|
|
9
9
|
'lifecycle',
|
|
10
10
|
];
|
|
11
11
|
export const toActualMatchingSortKey = (v) => stringToUnion(v, ACTUAL_MATCHING_SORT_KEYS);
|
|
12
|
-
export const MATCH_TRANSACTION_SEARCH_PAGE_SIZE =
|
|
12
|
+
export const MATCH_TRANSACTION_SEARCH_PAGE_SIZE = 50;
|
|
13
13
|
export const MATCH_ACCRUAL_SEARCH_LIMIT = 50;
|
|
14
14
|
export const MATCH_SEARCH_DEBOUNCE_MS = 300;
|
|
15
15
|
const MATCH_AND_REVERSE_RESULT_STATUSES = [
|
|
@@ -25,7 +25,6 @@ export interface MatchTransactionSearchQueryPayload {
|
|
|
25
25
|
}
|
|
26
26
|
export interface MatchTransactionSearchResultPayload {
|
|
27
27
|
line_id: string;
|
|
28
|
-
total_amount: number;
|
|
29
28
|
transaction_date: string;
|
|
30
29
|
transaction_id: ID;
|
|
31
30
|
transaction_integration_id: string;
|
|
@@ -35,8 +34,10 @@ export interface MatchTransactionSearchResultPayload {
|
|
|
35
34
|
account_name?: string | null;
|
|
36
35
|
accounting_class_id?: ID | null;
|
|
37
36
|
accounting_class_name?: string | null;
|
|
37
|
+
amount?: number | null;
|
|
38
38
|
currency_code?: string | null;
|
|
39
39
|
currency_symbol?: string | null;
|
|
40
|
+
total_amount?: number | null;
|
|
40
41
|
transaction_description?: string | null;
|
|
41
42
|
transaction_memo?: string | null;
|
|
42
43
|
transaction_type_name?: string | null;
|
|
@@ -10,8 +10,31 @@ function toServiceMonthFromPeriod(period) {
|
|
|
10
10
|
}
|
|
11
11
|
const DEFAULT_CURRENCY_CODE = 'USD';
|
|
12
12
|
const DEFAULT_CURRENCY_SYMBOL = '$';
|
|
13
|
+
function resolveMatchSearchAmount(payload) {
|
|
14
|
+
const raw = payload.total_amount ?? payload.amount;
|
|
15
|
+
if (typeof raw === 'number' && Number.isFinite(raw)) {
|
|
16
|
+
return raw;
|
|
17
|
+
}
|
|
18
|
+
if (typeof raw === 'string' && raw !== '') {
|
|
19
|
+
const parsed = Number(raw);
|
|
20
|
+
if (Number.isFinite(parsed)) {
|
|
21
|
+
return parsed;
|
|
22
|
+
}
|
|
23
|
+
}
|
|
24
|
+
return 0;
|
|
25
|
+
}
|
|
26
|
+
function resolveMatchSearchCurrencySymbol(payload, currencyCode) {
|
|
27
|
+
if (payload.currency_symbol != null && payload.currency_symbol !== '') {
|
|
28
|
+
return payload.currency_symbol;
|
|
29
|
+
}
|
|
30
|
+
return currencyCode === DEFAULT_CURRENCY_CODE
|
|
31
|
+
? DEFAULT_CURRENCY_SYMBOL
|
|
32
|
+
: currencyCode;
|
|
33
|
+
}
|
|
13
34
|
function toActualMatchingTransactionSearchResult(payload) {
|
|
14
|
-
const currencyCode = payload.currency_code
|
|
35
|
+
const currencyCode = payload.currency_code != null && payload.currency_code !== ''
|
|
36
|
+
? payload.currency_code
|
|
37
|
+
: DEFAULT_CURRENCY_CODE;
|
|
15
38
|
return {
|
|
16
39
|
transactionId: payload.transaction_id,
|
|
17
40
|
transactionIntegrationId: payload.transaction_integration_id,
|
|
@@ -19,7 +42,7 @@ function toActualMatchingTransactionSearchResult(payload) {
|
|
|
19
42
|
lineId: payload.line_id,
|
|
20
43
|
vendorId: payload.vendor_id ?? undefined,
|
|
21
44
|
vendorName: payload.vendor_name ?? '',
|
|
22
|
-
amount: payload
|
|
45
|
+
amount: resolveMatchSearchAmount(payload),
|
|
23
46
|
transactionDate: payload.transaction_date,
|
|
24
47
|
accountId: payload.account_id ?? undefined,
|
|
25
48
|
accountName: payload.account_name ?? undefined,
|
|
@@ -27,10 +50,7 @@ function toActualMatchingTransactionSearchResult(payload) {
|
|
|
27
50
|
accountingClassId: payload.accounting_class_id ?? undefined,
|
|
28
51
|
accountingClassName: payload.accounting_class_name ?? undefined,
|
|
29
52
|
currencyCode,
|
|
30
|
-
currencySymbol: payload
|
|
31
|
-
(currencyCode === DEFAULT_CURRENCY_CODE
|
|
32
|
-
? DEFAULT_CURRENCY_SYMBOL
|
|
33
|
-
: currencyCode),
|
|
53
|
+
currencySymbol: resolveMatchSearchCurrencySymbol(payload, currencyCode),
|
|
34
54
|
transactionMemo: payload.transaction_memo ?? undefined,
|
|
35
55
|
transactionDescription: payload.transaction_description ?? undefined,
|
|
36
56
|
transactionTypeName: payload.transaction_type_name ?? undefined,
|
|
@@ -5,6 +5,7 @@ import { ExpenseAutomationActualMatchingViewSelector } from '../selectorTypes/ac
|
|
|
5
5
|
export declare function isAutoReversedAccrual(accrual: JEOneTimeAccrual): boolean;
|
|
6
6
|
export declare function isManuallyReversedAccrual(accrual: JEOneTimeAccrual): boolean;
|
|
7
7
|
export declare function isPendingReviewAccrual(accrual: JEOneTimeAccrual): boolean;
|
|
8
|
+
export declare function getClearedAllocatedActualAmount(accrual: JEOneTimeAccrual): number | undefined;
|
|
8
9
|
export declare function getActualMatchingAmount(accrual: JEOneTimeAccrual): number;
|
|
9
10
|
export declare function getActualMatchingReversalDate(accrual: JEOneTimeAccrual): ZeniDate | undefined;
|
|
10
11
|
export declare function getExpenseAutomationActualMatchingView(state: RootState): ExpenseAutomationActualMatchingViewSelector;
|
|
@@ -6,6 +6,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
6
6
|
exports.isAutoReversedAccrual = isAutoReversedAccrual;
|
|
7
7
|
exports.isManuallyReversedAccrual = isManuallyReversedAccrual;
|
|
8
8
|
exports.isPendingReviewAccrual = isPendingReviewAccrual;
|
|
9
|
+
exports.getClearedAllocatedActualAmount = getClearedAllocatedActualAmount;
|
|
9
10
|
exports.getActualMatchingAmount = getActualMatchingAmount;
|
|
10
11
|
exports.getActualMatchingReversalDate = getActualMatchingReversalDate;
|
|
11
12
|
exports.getExpenseAutomationActualMatchingView = getExpenseAutomationActualMatchingView;
|
|
@@ -28,10 +29,38 @@ function isPendingReviewAccrual(accrual) {
|
|
|
28
29
|
const resolution = accrual.matchSuggestion.resolution;
|
|
29
30
|
return resolution == null || resolution.length === 0;
|
|
30
31
|
}
|
|
32
|
+
function isGroupedClearedMatch(accrual) {
|
|
33
|
+
const groupSum = accrual.cleared?.groupSum?.amount;
|
|
34
|
+
if (groupSum == null || groupSum <= 0) {
|
|
35
|
+
return false;
|
|
36
|
+
}
|
|
37
|
+
const matchShape = accrual.cleared?.matchShape;
|
|
38
|
+
const accrualIdsLength = accrual.cleared?.accrualIds?.length ?? 0;
|
|
39
|
+
return matchShape === '1:N' || matchShape === 'N:1' || accrualIdsLength > 1;
|
|
40
|
+
}
|
|
41
|
+
function getClearedAllocatedActualAmount(accrual) {
|
|
42
|
+
const matchedAmount = accrual.cleared?.matchedAmount?.amount;
|
|
43
|
+
if (matchedAmount == null) {
|
|
44
|
+
return undefined;
|
|
45
|
+
}
|
|
46
|
+
if (!isGroupedClearedMatch(accrual)) {
|
|
47
|
+
return matchedAmount;
|
|
48
|
+
}
|
|
49
|
+
const groupSum = accrual.cleared?.groupSum?.amount;
|
|
50
|
+
if (groupSum == null || groupSum <= 0) {
|
|
51
|
+
return matchedAmount;
|
|
52
|
+
}
|
|
53
|
+
return matchedAmount * (accrual.estimatedAmount.amount / groupSum);
|
|
54
|
+
}
|
|
31
55
|
function getActualMatchingAmount(accrual) {
|
|
32
|
-
|
|
33
|
-
accrual.matchSuggestion?.matchedAmount?.amount ??
|
|
34
|
-
|
|
56
|
+
if (isPendingReviewAccrual(accrual)) {
|
|
57
|
+
return (accrual.matchSuggestion?.matchedAmount?.amount ??
|
|
58
|
+
accrual.estimatedAmount.amount);
|
|
59
|
+
}
|
|
60
|
+
if (isAutoReversedAccrual(accrual) || isManuallyReversedAccrual(accrual)) {
|
|
61
|
+
return (getClearedAllocatedActualAmount(accrual) ?? accrual.estimatedAmount.amount);
|
|
62
|
+
}
|
|
63
|
+
return accrual.estimatedAmount.amount;
|
|
35
64
|
}
|
|
36
65
|
function getActualMatchingReversalDate(accrual) {
|
|
37
66
|
if (!isAutoReversedAccrual(accrual) && !isManuallyReversedAccrual(accrual)) {
|
|
@@ -135,12 +164,10 @@ function getExpenseAutomationActualMatchingView(state) {
|
|
|
135
164
|
amount: listedAccruals.reduce((sum, accrual) => sum + getActualMatchingAmount(accrual), 0),
|
|
136
165
|
},
|
|
137
166
|
ai: {
|
|
138
|
-
count: listedAccruals.filter((accrual) => accrual.origin === 'agent')
|
|
139
|
-
.length,
|
|
167
|
+
count: listedAccruals.filter((accrual) => accrual.origin === 'agent').length,
|
|
140
168
|
},
|
|
141
169
|
manual: {
|
|
142
|
-
count: listedAccruals.filter((accrual) => accrual.origin === 'human')
|
|
143
|
-
.length,
|
|
170
|
+
count: listedAccruals.filter((accrual) => accrual.origin === 'human').length,
|
|
144
171
|
},
|
|
145
172
|
};
|
|
146
173
|
const accrualSearchResults = matchModal.accrualSearch.results
|
|
@@ -4,7 +4,7 @@ import { MonthYearPeriodId } from '../../../commonStateTypes/timePeriod';
|
|
|
4
4
|
import { JEOneTimeAccrualKey } from '../../../entity/jeSchedules/jeSchedulesTypes';
|
|
5
5
|
export declare const toActualMatchingSortKey: (v: string) => "type" | "date" | "vendor" | "category" | "class" | "amount" | "lifecycle";
|
|
6
6
|
export type ActualMatchingSortKey = ReturnType<typeof toActualMatchingSortKey>;
|
|
7
|
-
export declare const MATCH_TRANSACTION_SEARCH_PAGE_SIZE =
|
|
7
|
+
export declare const MATCH_TRANSACTION_SEARCH_PAGE_SIZE = 50;
|
|
8
8
|
export declare const MATCH_ACCRUAL_SEARCH_LIMIT = 50;
|
|
9
9
|
export declare const MATCH_SEARCH_DEBOUNCE_MS = 300;
|
|
10
10
|
export declare const toMatchAndReverseResultStatus: (v: string) => "error" | "reversed" | "noop" | "conflict" | "claim_lost";
|
|
@@ -13,7 +13,7 @@ const ACTUAL_MATCHING_SORT_KEYS = [
|
|
|
13
13
|
];
|
|
14
14
|
const toActualMatchingSortKey = (v) => (0, stringToUnion_1.stringToUnion)(v, ACTUAL_MATCHING_SORT_KEYS);
|
|
15
15
|
exports.toActualMatchingSortKey = toActualMatchingSortKey;
|
|
16
|
-
exports.MATCH_TRANSACTION_SEARCH_PAGE_SIZE =
|
|
16
|
+
exports.MATCH_TRANSACTION_SEARCH_PAGE_SIZE = 50;
|
|
17
17
|
exports.MATCH_ACCRUAL_SEARCH_LIMIT = 50;
|
|
18
18
|
exports.MATCH_SEARCH_DEBOUNCE_MS = 300;
|
|
19
19
|
const MATCH_AND_REVERSE_RESULT_STATUSES = [
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@zeniai/client-epic-state",
|
|
3
|
-
"version": "5.2.11-
|
|
3
|
+
"version": "5.2.11-betaAM7",
|
|
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",
|