@zeniai/client-epic-state 4.19.17 → 4.19.18

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.
@@ -70,7 +70,14 @@ export declare const submitQuestion: import("@reduxjs/toolkit").ActionCreatorWit
70
70
  error: ZeniAPIStatus;
71
71
  }, "aiCfoView/stopSubmitQuestionFailure">, acceptMasterTOS: import("@reduxjs/toolkit").ActionCreatorWithPreparedPayload<[userRoleId: string], {
72
72
  userRoleId: string;
73
- }, "aiCfoView/acceptMasterTOS", never, never>, acceptMasterTOSSuccess: import("@reduxjs/toolkit").ActionCreatorWithoutPayload<"aiCfoView/acceptMasterTOSSuccess">, acceptMasterTOSFailure: import("@reduxjs/toolkit").ActionCreatorWithPayload<ZeniAPIStatus<Record<string, unknown>>, "aiCfoView/acceptMasterTOSFailure">, clearAiCfoView: import("@reduxjs/toolkit").ActionCreatorWithoutPayload<"aiCfoView/clearAiCfoView">, updateCotCollapsedState: import("@reduxjs/toolkit").ActionCreatorWithPayload<{
73
+ }, "aiCfoView/acceptMasterTOS", never, never>, acceptMasterTOSSuccess: import("@reduxjs/toolkit").ActionCreatorWithoutPayload<"aiCfoView/acceptMasterTOSSuccess">, acceptMasterTOSFailure: import("@reduxjs/toolkit").ActionCreatorWithPayload<ZeniAPIStatus<Record<string, unknown>>, "aiCfoView/acceptMasterTOSFailure">, deleteChatSession: import("@reduxjs/toolkit").ActionCreatorWithPreparedPayload<[chatSessionId: string], {
74
+ chatSessionId: string;
75
+ }, "aiCfoView/deleteChatSession", never, never>, deleteChatSessionSuccess: import("@reduxjs/toolkit").ActionCreatorWithPayload<{
76
+ chatSessionId: ID;
77
+ }, "aiCfoView/deleteChatSessionSuccess">, deleteChatSessionFailure: import("@reduxjs/toolkit").ActionCreatorWithPayload<{
78
+ chatSessionId: ID;
79
+ error: ZeniAPIStatus;
80
+ }, "aiCfoView/deleteChatSessionFailure">, clearAiCfoView: import("@reduxjs/toolkit").ActionCreatorWithoutPayload<"aiCfoView/clearAiCfoView">, updateCotCollapsedState: import("@reduxjs/toolkit").ActionCreatorWithPayload<{
74
81
  isCollapsed: boolean;
75
82
  questionAnswerId: ID;
76
83
  }, "aiCfoView/updateCotCollapsedState">;
@@ -1,7 +1,7 @@
1
1
  "use strict";
2
2
  var _a;
3
3
  Object.defineProperty(exports, "__esModule", { value: true });
4
- exports.updateCotCollapsedState = exports.clearAiCfoView = exports.acceptMasterTOSFailure = exports.acceptMasterTOSSuccess = exports.acceptMasterTOS = exports.stopSubmitQuestionFailure = exports.stopSubmitQuestionSuccess = exports.stopSubmitQuestion = exports.stopSubmitFailure = exports.stopSubmitSuccess = exports.stopSubmit = exports.clearCurrentSessionId = exports.fetchChatHistoryFailure = exports.fetchChatHistorySuccess = exports.fetchChatHistory = exports.fetchChatSessionsForUserFailure = exports.fetchChatSessionsForUserSuccess = exports.fetchChatSessionsForUser = exports.createSessionAndSubmitFailure = exports.createSessionAndSubmitSuccess = exports.initializeNewSessionState = exports.createSessionAndSubmit = exports.createSessionFailure = exports.createSessionSuccess = exports.createSession = exports.setSession = exports.clearInput = exports.updateCurrentInput = exports.updateAiCfoViewScrollPosition = exports.updateResponseState = exports.submitQuestionFailure = exports.submitQuestionSuccess = exports.submitQuestion = exports.initialAiCfoViewState = void 0;
4
+ exports.updateCotCollapsedState = exports.clearAiCfoView = exports.deleteChatSessionFailure = exports.deleteChatSessionSuccess = exports.deleteChatSession = exports.acceptMasterTOSFailure = exports.acceptMasterTOSSuccess = exports.acceptMasterTOS = exports.stopSubmitQuestionFailure = exports.stopSubmitQuestionSuccess = exports.stopSubmitQuestion = exports.stopSubmitFailure = exports.stopSubmitSuccess = exports.stopSubmit = exports.clearCurrentSessionId = exports.fetchChatHistoryFailure = exports.fetchChatHistorySuccess = exports.fetchChatHistory = exports.fetchChatSessionsForUserFailure = exports.fetchChatSessionsForUserSuccess = exports.fetchChatSessionsForUser = exports.createSessionAndSubmitFailure = exports.createSessionAndSubmitSuccess = exports.initializeNewSessionState = exports.createSessionAndSubmit = exports.createSessionFailure = exports.createSessionSuccess = exports.createSession = exports.setSession = exports.clearInput = exports.updateCurrentInput = exports.updateAiCfoViewScrollPosition = exports.updateResponseState = exports.submitQuestionFailure = exports.submitQuestionSuccess = exports.submitQuestion = exports.initialAiCfoViewState = void 0;
5
5
  const toolkit_1 = require("@reduxjs/toolkit");
6
6
  exports.initialAiCfoViewState = {
7
7
  fetchState: 'Not-Started',
@@ -29,6 +29,7 @@ exports.initialAiCfoViewState = {
29
29
  fetchState: 'Not-Started',
30
30
  error: undefined,
31
31
  },
32
+ deleteChatSessionStateByChatSessionId: {},
32
33
  fetchChatSessionHistoryByChatSessionId: {},
33
34
  responseStateByChatSessionId: {},
34
35
  stopSubmitStateByChatSessionId: {},
@@ -310,6 +311,39 @@ const aiCfoView = (0, toolkit_1.createSlice)({
310
311
  draft.masterTOSAcceptanceState.fetchState = 'Error';
311
312
  draft.masterTOSAcceptanceState.error = action.payload;
312
313
  },
314
+ deleteChatSession: {
315
+ reducer(draft, action) {
316
+ const { chatSessionId } = action.payload;
317
+ draft.deleteChatSessionStateByChatSessionId[chatSessionId] = {
318
+ fetchState: 'In-Progress',
319
+ error: undefined,
320
+ };
321
+ },
322
+ prepare(chatSessionId) {
323
+ return { payload: { chatSessionId } };
324
+ },
325
+ },
326
+ deleteChatSessionSuccess(draft, action) {
327
+ const { chatSessionId } = action.payload;
328
+ delete draft.deleteChatSessionStateByChatSessionId[chatSessionId];
329
+ draft.allChatSessionIds = draft.allChatSessionIds.filter((id) => id !== chatSessionId);
330
+ if (draft.uiState.currentChatSessionId === chatSessionId) {
331
+ draft.uiState.currentChatSessionId = undefined;
332
+ draft.uiState.agentId = undefined;
333
+ }
334
+ delete draft.uiState.chatHistoryNextPageToken[chatSessionId];
335
+ delete draft.uiState.scrollPositionByChatSessionId[chatSessionId];
336
+ delete draft.fetchChatSessionHistoryByChatSessionId[chatSessionId];
337
+ delete draft.responseStateByChatSessionId[chatSessionId];
338
+ delete draft.stopSubmitStateByChatSessionId[chatSessionId];
339
+ },
340
+ deleteChatSessionFailure(draft, action) {
341
+ const { chatSessionId, error } = action.payload;
342
+ draft.deleteChatSessionStateByChatSessionId[chatSessionId] = {
343
+ fetchState: 'Error',
344
+ error,
345
+ };
346
+ },
313
347
  clearInput(draft) {
314
348
  draft.uiState.currentInput = '';
315
349
  },
@@ -326,5 +360,5 @@ const aiCfoView = (0, toolkit_1.createSlice)({
326
360
  },
327
361
  },
328
362
  });
329
- _a = aiCfoView.actions, exports.submitQuestion = _a.submitQuestion, exports.submitQuestionSuccess = _a.submitQuestionSuccess, exports.submitQuestionFailure = _a.submitQuestionFailure, exports.updateResponseState = _a.updateResponseState, exports.updateAiCfoViewScrollPosition = _a.updateAiCfoViewScrollPosition, exports.updateCurrentInput = _a.updateCurrentInput, exports.clearInput = _a.clearInput, exports.setSession = _a.setSession, exports.createSession = _a.createSession, exports.createSessionSuccess = _a.createSessionSuccess, exports.createSessionFailure = _a.createSessionFailure, exports.createSessionAndSubmit = _a.createSessionAndSubmit, exports.initializeNewSessionState = _a.initializeNewSessionState, exports.createSessionAndSubmitSuccess = _a.createSessionAndSubmitSuccess, exports.createSessionAndSubmitFailure = _a.createSessionAndSubmitFailure, exports.fetchChatSessionsForUser = _a.fetchChatSessionsForUser, exports.fetchChatSessionsForUserSuccess = _a.fetchChatSessionsForUserSuccess, exports.fetchChatSessionsForUserFailure = _a.fetchChatSessionsForUserFailure, exports.fetchChatHistory = _a.fetchChatHistory, exports.fetchChatHistorySuccess = _a.fetchChatHistorySuccess, exports.fetchChatHistoryFailure = _a.fetchChatHistoryFailure, exports.clearCurrentSessionId = _a.clearCurrentSessionId, exports.stopSubmit = _a.stopSubmit, exports.stopSubmitSuccess = _a.stopSubmitSuccess, exports.stopSubmitFailure = _a.stopSubmitFailure, exports.stopSubmitQuestion = _a.stopSubmitQuestion, exports.stopSubmitQuestionSuccess = _a.stopSubmitQuestionSuccess, exports.stopSubmitQuestionFailure = _a.stopSubmitQuestionFailure, exports.acceptMasterTOS = _a.acceptMasterTOS, exports.acceptMasterTOSSuccess = _a.acceptMasterTOSSuccess, exports.acceptMasterTOSFailure = _a.acceptMasterTOSFailure, exports.clearAiCfoView = _a.clearAiCfoView, exports.updateCotCollapsedState = _a.updateCotCollapsedState;
363
+ _a = aiCfoView.actions, exports.submitQuestion = _a.submitQuestion, exports.submitQuestionSuccess = _a.submitQuestionSuccess, exports.submitQuestionFailure = _a.submitQuestionFailure, exports.updateResponseState = _a.updateResponseState, exports.updateAiCfoViewScrollPosition = _a.updateAiCfoViewScrollPosition, exports.updateCurrentInput = _a.updateCurrentInput, exports.clearInput = _a.clearInput, exports.setSession = _a.setSession, exports.createSession = _a.createSession, exports.createSessionSuccess = _a.createSessionSuccess, exports.createSessionFailure = _a.createSessionFailure, exports.createSessionAndSubmit = _a.createSessionAndSubmit, exports.initializeNewSessionState = _a.initializeNewSessionState, exports.createSessionAndSubmitSuccess = _a.createSessionAndSubmitSuccess, exports.createSessionAndSubmitFailure = _a.createSessionAndSubmitFailure, exports.fetchChatSessionsForUser = _a.fetchChatSessionsForUser, exports.fetchChatSessionsForUserSuccess = _a.fetchChatSessionsForUserSuccess, exports.fetchChatSessionsForUserFailure = _a.fetchChatSessionsForUserFailure, exports.fetchChatHistory = _a.fetchChatHistory, exports.fetchChatHistorySuccess = _a.fetchChatHistorySuccess, exports.fetchChatHistoryFailure = _a.fetchChatHistoryFailure, exports.clearCurrentSessionId = _a.clearCurrentSessionId, exports.stopSubmit = _a.stopSubmit, exports.stopSubmitSuccess = _a.stopSubmitSuccess, exports.stopSubmitFailure = _a.stopSubmitFailure, exports.stopSubmitQuestion = _a.stopSubmitQuestion, exports.stopSubmitQuestionSuccess = _a.stopSubmitQuestionSuccess, exports.stopSubmitQuestionFailure = _a.stopSubmitQuestionFailure, exports.acceptMasterTOS = _a.acceptMasterTOS, exports.acceptMasterTOSSuccess = _a.acceptMasterTOSSuccess, exports.acceptMasterTOSFailure = _a.acceptMasterTOSFailure, exports.deleteChatSession = _a.deleteChatSession, exports.deleteChatSessionSuccess = _a.deleteChatSessionSuccess, exports.deleteChatSessionFailure = _a.deleteChatSessionFailure, exports.clearAiCfoView = _a.clearAiCfoView, exports.updateCotCollapsedState = _a.updateCotCollapsedState;
330
364
  exports.default = aiCfoView.reducer;
@@ -7,6 +7,7 @@ import { AiCfoViewUIState } from './aiCfoViewState';
7
7
  export interface AiCfoViewSelector extends SelectorView, AiCfoSelectorView {
8
8
  createSessionAndSubmitState: FetchStateAndError;
9
9
  createSessionState: FetchStateAndError;
10
+ deleteChatSessionStateByChatSessionId: Record<ID, FetchStateAndError>;
10
11
  fetchChatSessionHistoryByChatSessionId: Record<ID, FetchStateAndError>;
11
12
  masterTOSAcceptanceState: FetchStateAndError;
12
13
  responseStateByChatSessionId: Record<ID, {
@@ -3,11 +3,12 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.getAiCfoView = void 0;
4
4
  const aiCfoSelector_1 = require("../../entity/aiCfo/aiCfoSelector");
5
5
  const getAiCfoView = (state) => {
6
- const { fetchState, error, uiState, createSessionState, createSessionAndSubmitState, stopSubmitStateByChatSessionId, responseStateByChatSessionId, fetchChatSessionHistoryByChatSessionId, masterTOSAcceptanceState, } = state.aiCfoViewState;
6
+ const { fetchState, error, uiState, createSessionState, createSessionAndSubmitState, deleteChatSessionStateByChatSessionId, stopSubmitStateByChatSessionId, responseStateByChatSessionId, fetchChatSessionHistoryByChatSessionId, masterTOSAcceptanceState, } = state.aiCfoViewState;
7
7
  return Object.assign(Object.assign({ fetchState,
8
8
  error,
9
9
  createSessionState,
10
10
  createSessionAndSubmitState,
11
+ deleteChatSessionStateByChatSessionId,
11
12
  stopSubmitStateByChatSessionId,
12
13
  responseStateByChatSessionId,
13
14
  uiState,
@@ -26,6 +26,7 @@ export interface AiCfoViewState extends FetchStateAndError {
26
26
  allChatSessionIds: ID[];
27
27
  createSessionAndSubmitState: FetchStateAndError;
28
28
  createSessionState: FetchStateAndError;
29
+ deleteChatSessionStateByChatSessionId: Record<ID, FetchStateAndError>;
29
30
  fetchChatSessionHistoryByChatSessionId: Record<ID, FetchStateAndError>;
30
31
  masterTOSAcceptanceState: FetchStateAndError;
31
32
  responseStateByChatSessionId: Record<ID, {
@@ -0,0 +1,21 @@
1
+ import { ActionsObservable, StateObservable } from 'redux-observable';
2
+ import { clearSession } from '../../../entity/aiCfo/aiCfoReducer';
3
+ import { RootState } from '../../../reducer';
4
+ import { ZeniAPI } from '../../../zeniAPI';
5
+ import { deleteChatSession, deleteChatSessionFailure, deleteChatSessionSuccess } from '../aiCfoViewReducer';
6
+ export type ActionType = ReturnType<typeof deleteChatSession> | ReturnType<typeof clearSession> | ReturnType<typeof deleteChatSessionSuccess> | ReturnType<typeof deleteChatSessionFailure>;
7
+ export declare const deleteChatSessionEpic: (actions$: ActionsObservable<ActionType>, _state$: StateObservable<RootState>, zeniAPI: ZeniAPI) => import("rxjs").Observable<{
8
+ payload: string;
9
+ type: "aiCfo/clearSession";
10
+ } | {
11
+ payload: {
12
+ chatSessionId: import("../../..").ID;
13
+ };
14
+ type: "aiCfoView/deleteChatSessionSuccess";
15
+ } | {
16
+ payload: {
17
+ chatSessionId: import("../../..").ID;
18
+ error: import("../../../responsePayload").ZeniAPIStatus;
19
+ };
20
+ type: "aiCfoView/deleteChatSessionFailure";
21
+ }>;
@@ -0,0 +1,33 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.deleteChatSessionEpic = void 0;
4
+ const rxjs_1 = require("rxjs");
5
+ const operators_1 = require("rxjs/operators");
6
+ const aiCfoReducer_1 = require("../../../entity/aiCfo/aiCfoReducer");
7
+ const responsePayload_1 = require("../../../responsePayload");
8
+ const aiCfoViewReducer_1 = require("../aiCfoViewReducer");
9
+ const deleteChatSessionEpic = (actions$, _state$, zeniAPI) => actions$.pipe((0, operators_1.filter)(aiCfoViewReducer_1.deleteChatSession.match), (0, operators_1.mergeMap)((action) => {
10
+ const { chatSessionId } = action.payload;
11
+ // No request body; chat_session_id is in the path. API returns 204 No Content on success.
12
+ return zeniAPI
13
+ .deleteAndGetJSON(`${zeniAPI.apiEndPoints.aiCfoMicroServiceBaseUrl}/1.0/sessions/${chatSessionId}`)
14
+ .pipe((0, operators_1.mergeMap)((response) => {
15
+ if ((0, responsePayload_1.isSuccessStatus)(response)) {
16
+ return (0, rxjs_1.from)([
17
+ (0, aiCfoViewReducer_1.deleteChatSessionSuccess)({ chatSessionId }),
18
+ (0, aiCfoReducer_1.clearSession)(chatSessionId),
19
+ ]);
20
+ }
21
+ else {
22
+ return (0, rxjs_1.of)((0, aiCfoViewReducer_1.deleteChatSessionFailure)({
23
+ chatSessionId,
24
+ error: response.status,
25
+ }));
26
+ }
27
+ }), (0, operators_1.catchError)((error) => (0, rxjs_1.of)((0, aiCfoViewReducer_1.deleteChatSessionFailure)({
28
+ chatSessionId,
29
+ error: (0, responsePayload_1.createZeniAPIStatus)('Unexpected Error', 'Delete chat session REST API call errored out ' +
30
+ JSON.stringify(error)),
31
+ }))));
32
+ }));
33
+ exports.deleteChatSessionEpic = deleteChatSessionEpic;
@@ -30,12 +30,12 @@ export interface RunwayPayload {
30
30
  quarters?: number | null;
31
31
  }
32
32
  export interface NetBurnOrIncomeStoryCardPayload extends ReportPayload {
33
- earnings_before_interest_and_tax: NetBurnOrIncomeCOABalanceWithAveragesPayload;
34
- net_income: NetBurnOrIncomeCOABalanceWithAveragesPayload;
35
- opex_cash: NetBurnOrIncomeCOABalanceWithAveragesPayload;
36
33
  runway_cash: RunwayPayload[];
37
34
  runway_ebitda: RunwayPayload[];
38
35
  runway_net_income: RunwayPayload[];
36
+ earnings_before_interest_and_tax?: NetBurnOrIncomeCOABalanceWithAveragesPayload;
37
+ net_income?: NetBurnOrIncomeCOABalanceWithAveragesPayload;
38
+ opex_cash?: NetBurnOrIncomeCOABalanceWithAveragesPayload;
39
39
  }
40
40
  export type NetBurnOrIncomeStoryCardResponse = ZeniReportResponse<NetBurnOrIncomeStoryCardPayload>;
41
41
  interface TenantsPayload {
@@ -45,6 +45,6 @@ export type UpdateNetBurnSettingsResponse = ZeniAPIResponse<TenantsPayload>;
45
45
  /**
46
46
  * Helpers
47
47
  */
48
- export declare const toNetBurnOrIncomeCOABalanceWithAveragesGrouped: (payload: NetBurnOrIncomeCOABalanceWithAveragesPayload) => NetBurnOrIncomeCOABalanceWithAveragesGrouped;
48
+ export declare const toNetBurnOrIncomeCOABalanceWithAveragesGrouped: (payload?: NetBurnOrIncomeCOABalanceWithAveragesPayload) => NetBurnOrIncomeCOABalanceWithAveragesGrouped;
49
49
  export declare const toNetBurnOrIncomeRunway: (payload: RunwayPayload) => NetBurnOrIncomeRunway;
50
50
  export {};
@@ -14,9 +14,9 @@ const netBurnOrIncomeStoryCardState_1 = require("./netBurnOrIncomeStoryCardState
14
14
  const toNetBurnOrIncomeCOABalanceWithAveragesGrouped = (payload) => {
15
15
  var _a, _b, _c, _d, _e, _f;
16
16
  return {
17
- months: (_b = (_a = payload.months) === null || _a === void 0 ? void 0 : _a.map((monthPayload) => (0, coaBalancePayload_1.mapCOABalancePayloadToCOABalance)(monthPayload, 'month'))) !== null && _b !== void 0 ? _b : [],
17
+ months: (_b = (_a = payload === null || payload === void 0 ? void 0 : payload.months) === null || _a === void 0 ? void 0 : _a.map((monthPayload) => (0, coaBalancePayload_1.mapCOABalancePayloadToCOABalance)(monthPayload, 'month'))) !== null && _b !== void 0 ? _b : [],
18
18
  averages: {
19
- months: (_f = (_e = (_d = (_c = payload.averages) === null || _c === void 0 ? void 0 : _c.months) === null || _d === void 0 ? void 0 : _d.filter((monthPayload) => Object.keys(monthPayload).length > 0) // Filtering out empty months averages - https://github.com/zeni-ai/client-epic-state/pull/730
19
+ months: (_f = (_e = (_d = (_c = payload === null || payload === void 0 ? void 0 : payload.averages) === null || _c === void 0 ? void 0 : _c.months) === null || _d === void 0 ? void 0 : _d.filter((monthPayload) => Object.keys(monthPayload).length > 0) // Filtering out empty months averages - https://github.com/zeni-ai/client-epic-state/pull/730
20
20
  ) === null || _e === void 0 ? void 0 : _e.map((monthPayload) => toNetBurnOrIncomeAveragesCOABalance(monthPayload))) !== null && _f !== void 0 ? _f : [],
21
21
  },
22
22
  };
@@ -407,8 +407,7 @@ const editBillView = (0, toolkit_1.createSlice)({
407
407
  targetState.billDetailLocalData.lastRecommendedVendorName = undefined;
408
408
  targetState.billDetailLocalData.candidateVendorname = undefined;
409
409
  targetState.billDetailLocalData.toAccountVendorEmail = undefined;
410
- targetState.billDetailLocalData.isCollectToAccountInfoFromVendorContact =
411
- false;
410
+ targetState.billDetailLocalData.isCollectToAccountInfoFromVendorContact = false;
412
411
  targetState.suggestedVendorIdFromParsedInvoice = undefined;
413
412
  }
414
413
  },
package/lib/zeniAPI.d.ts CHANGED
@@ -53,6 +53,7 @@ export declare class ZeniAPIClient implements ZeniAPI {
53
53
  private checkSessionValidity;
54
54
  /**
55
55
  * Parse JSON response and check for session validity.
56
+ * For 204 No Content, the response body is empty so we return a minimal status object.
56
57
  */
57
58
  private processJsonResponse;
58
59
  getJSON<T>(restEndPoint: string, headers?: Record<string, unknown>, signal?: AbortSignal): Observable<T>;
package/lib/zeniAPI.js CHANGED
@@ -36,8 +36,14 @@ class ZeniAPIClient {
36
36
  }
37
37
  /**
38
38
  * Parse JSON response and check for session validity.
39
+ * For 204 No Content, the response body is empty so we return a minimal status object.
39
40
  */
40
41
  processJsonResponse(response) {
42
+ if (response.status === 204) {
43
+ const json = { status: { code: 204, message: 'No Content' } };
44
+ this.checkSessionValidity(json);
45
+ return Promise.resolve(json);
46
+ }
41
47
  return response.json().then((json) => {
42
48
  this.checkSessionValidity(json);
43
49
  return json;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@zeniai/client-epic-state",
3
- "version": "4.19.17",
3
+ "version": "4.19.18",
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
  "types": "lib/index.d.ts",