@xapp/chat-widget 1.38.1 → 1.40.2

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.
Files changed (30) hide show
  1. package/dist/components/ActionItem/ActionItem.d.ts +2 -2
  2. package/dist/components/ActionItem/ActionItem.stories.d.ts +1 -1
  3. package/dist/components/ChatFooter/ChatFooter.d.ts +1 -0
  4. package/dist/components/ChatMessageBubble/ChatMessageBubble.d.ts +2 -2
  5. package/dist/components/ChatMessagePart/ChatMessagePart.d.ts +2 -2
  6. package/dist/components/FailureMessage/FailureMessage.d.ts +8 -0
  7. package/dist/components/FailureMessage/FailureMessage.stories.d.ts +5 -0
  8. package/dist/components/FailureMessage/index.d.ts +1 -0
  9. package/dist/components/Input/Input.d.ts +1 -0
  10. package/dist/components/OptionalLink/OptionalLink.d.ts +2 -2
  11. package/dist/components/OptionalLink/OptionalLink.stories.d.ts +1 -1
  12. package/dist/components/WidgetStylesheet/WidgetStylesheet.d.ts +1 -0
  13. package/dist/index.css +1 -1
  14. package/dist/index.d.ts +1 -1
  15. package/dist/index.es.js +22606 -283
  16. package/dist/index.es.js.map +1 -1
  17. package/dist/index.js +22606 -283
  18. package/dist/index.js.map +1 -1
  19. package/dist/store/ChatAction.d.ts +9 -1
  20. package/dist/store/ChatState.d.ts +6 -0
  21. package/dist/utils/compiler/compileSlotValues.d.ts +19 -0
  22. package/dist/utils/compiler/models.d.ts +172 -0
  23. package/dist/utils/compiler/response.d.ts +75 -0
  24. package/dist/utils/configurableMessages.d.ts +8 -0
  25. package/dist/utils/index.d.ts +1 -0
  26. package/dist/utils/retryRequest.d.ts +13 -0
  27. package/dist/xapp/ChatServer.d.ts +2 -1
  28. package/dist/xapp/ChatServerMessage.d.ts +1 -1
  29. package/dist/xapp/StentorDirectChat.d.ts +2 -0
  30. package/package.json +42 -40
@@ -42,6 +42,14 @@ export interface ChatFileDetail extends ChatActionDetail<"chat.file"> {
42
42
  export interface ChatMsgDetail extends ChatActionDetail<"chat.msg"> {
43
43
  msg: ChatServerMessage;
44
44
  }
45
+ export interface ChatFailureMsgDetail extends ChatActionDetail<"chat.failureMsg"> {
46
+ failureMsg: FailureMessageDetail;
47
+ }
48
+ export interface FailureMessageDetail {
49
+ readonly retry: number;
50
+ readonly delay: number;
51
+ readonly text: string;
52
+ }
45
53
  export interface ChatTypingDetail extends ChatActionDetail<"chat.typing"> {
46
54
  typing: boolean;
47
55
  }
@@ -106,4 +114,4 @@ export interface SyntheticFileDetail extends ChatActionDetail<"visitor.send.file
106
114
  export interface ResetAction extends Action<"reset"> {
107
115
  }
108
116
  export declare type ActionType = ChatAction | ConnectionUpdateAction | AccountStatusAction | DepartmentUpdateAction | VisitorUpdateAction | AgentUpdateAction | SyntheticAction | ChatSendGreetingDetail | ConnectionReceiveTokenDetail | ResetAction;
109
- export declare type ChatDetail = ChatMemberJoinDetail | ChatMemberLeaveDetail | ChatMemberPositionDetail | ChatRequestRatingDetail | ChatRatingDetail | ChatFileDetail | ChatMsgDetail | ChatTypingDetail | ChatOfflineDetail | ChatPrechatDetail;
117
+ export declare type ChatDetail = ChatMemberJoinDetail | ChatMemberLeaveDetail | ChatMemberPositionDetail | ChatRequestRatingDetail | ChatRatingDetail | ChatFileDetail | ChatMsgDetail | ChatFailureMsgDetail | ChatTypingDetail | ChatOfflineDetail | ChatPrechatDetail;
@@ -11,6 +11,11 @@ export interface ChatAgentInfo {
11
11
  readonly typing: boolean;
12
12
  readonly user: ChatUserInfo;
13
13
  readonly joined: boolean;
14
+ readonly requestFailed?: boolean;
15
+ }
16
+ export interface ChatFailureMsgDetail {
17
+ delay: number;
18
+ text: string;
14
19
  }
15
20
  export interface ChatState {
16
21
  readonly connection: ConnectionState;
@@ -24,6 +29,7 @@ export interface ChatState {
24
29
  hasRating: boolean;
25
30
  isChatting: boolean;
26
31
  queuePosition: number;
32
+ failureMsg: ChatFailureMsgDetail;
27
33
  chips: (string | ChatServerActionLink)[];
28
34
  /**
29
35
  * @deprecated Use userId
@@ -0,0 +1,19 @@
1
+ import { RequestSlotMap, ResponseOutput } from "./models";
2
+ /**
3
+ * Compiles a templated response with slot values from the
4
+ * provided slot map.
5
+ *
6
+ * For example, when passed "What date do you want your ${flowers}?"
7
+ * and the slot map contains a slot with name `flowers` it will replace
8
+ * it with the value.
9
+ *
10
+ * It will handle the different potential value types for slots such as
11
+ * strings, numbers, dates and durations.
12
+ *
13
+ * By default, if the slot value does not exist, the template value is left untouched.
14
+ *
15
+ * @param responseOutput
16
+ * @param slots
17
+ * @param replaceWhenUndefined - When set to true, it will replace the value with 'undefined' if it doesn't exist, default behavior is to leave the template as is.
18
+ */
19
+ export declare function compileSlotValues(responseOutput: string | ResponseOutput, slots: RequestSlotMap, replaceWhenUndefined?: boolean): string | ResponseOutput;
@@ -0,0 +1,172 @@
1
+ export declare type RequestSlotValues = string | number | object | DateTimeRange | DateTime | Duration | (string)[];
2
+ /**
3
+ * Information for a slot coming in on the request.
4
+ */
5
+ export interface RequestSlot<T = RequestSlotValues> {
6
+ /**
7
+ * The name of the slot, also used as the key in the RequestSlotMap.
8
+ *
9
+ * For example, "FIRST_TEAM" or "Podcast", this is typically user defined.
10
+ */
11
+ name: string;
12
+ /**
13
+ * The slot normalized value.
14
+ *
15
+ * When leveraging synonyms, this will be the canonical value. If not then it is
16
+ * the same as the rawValue.
17
+ *
18
+ * For example, "University of Virginia" or "Red Wine".
19
+ */
20
+ value?: T;
21
+ /**
22
+ * The original value provided by the NLU before normalization.
23
+ */
24
+ original?: any;
25
+ /**
26
+ * The raw spoken value.
27
+ *
28
+ * For example, "cavaliers" or "red"
29
+ */
30
+ rawValue?: string;
31
+ /**
32
+ * ID of the slot, if applicable.
33
+ *
34
+ * For example, "UVA"
35
+ */
36
+ id?: string;
37
+ /**
38
+ * Confidence on the slot match. Range is between 0 - 1 where 1 is the highest confidence.
39
+ */
40
+ matchConfidence?: number;
41
+ /**
42
+ * If the entity resolution was successful or not.
43
+ *
44
+ * See {@link https://developer.amazon.com/docs/custom-skills/define-synonyms-and-ids-for-slot-type-values-entity-resolution.html#er-built-in-types}
45
+ */
46
+ successfulMatch?: boolean;
47
+ }
48
+ /**
49
+ * Map of slots where the key is the name of the slot.
50
+ */
51
+ export interface RequestSlotMap {
52
+ /**
53
+ * Each key is the slot name and the corresponding value is the slot.
54
+ */
55
+ [slotName: string]: RequestSlot;
56
+ }
57
+ export interface ResponseOutput extends Localizable<LocaleSpecificResponseOutput> {
58
+ /**
59
+ * The SSML
60
+ */
61
+ ssml?: string;
62
+ /**
63
+ * Text to speech
64
+ *
65
+ * @deprecated Do not use, instead use both ssml and displayText
66
+ */
67
+ textToSpeech?: string;
68
+ /**
69
+ * Used only display/chat capable surfaces
70
+ */
71
+ displayText?: string;
72
+ /**
73
+ * Sanitized HTML, suitable for displaying within a web environment.
74
+ *
75
+ * This is typically generated from the displayText based on markdown found within.
76
+ *
77
+ * @beta
78
+ */
79
+ html?: string;
80
+ /**
81
+ * Used where suggestions can be displayed to the user.
82
+ *
83
+ * Note: These only apply to prompts, not reprompts.
84
+ */
85
+ suggestions?: SuggestionTypes[];
86
+ /**
87
+ * The locale for the response, defaults to "en"
88
+ */
89
+ defaultLocale?: Locale;
90
+ /**
91
+ * The language code for the response output.
92
+ */
93
+ locales?: Partial<Record<Locale, LocaleSpecificResponseOutput>>;
94
+ }
95
+ export declare type SuggestionTypes = SimpleSuggestion | SuggestionObjectTypes;
96
+ export declare type SuggestionObjectTypes = Suggestion | LinkOutSuggestion;
97
+ export declare type SimpleSuggestion = string;
98
+ /**
99
+ * Suggested responses that a user can tap.
100
+ *
101
+ * The title has a limit of 25 characters.
102
+ *
103
+ * Only Google Assistant at the moment.
104
+ */
105
+ export interface Suggestion {
106
+ title: string;
107
+ }
108
+ /**
109
+ * Suggestion chip that links out to an App or Website. Ownership of the
110
+ * URL must be validated in the Actions on Google developer console or the suggestion will not
111
+ * be shown.
112
+ *
113
+ * The title has a limit of 20 characters, note this is different from when
114
+ * it is a normal suggestion
115
+ *
116
+ * Only Google Assistant at the moment.
117
+ */
118
+ export interface LinkOutSuggestion extends Suggestion {
119
+ url: string;
120
+ }
121
+ export declare type LocaleSpecificResponseOutput = Partial<Pick<ResponseOutput, "displayText" | "ssml" | "textToSpeech" | "suggestions">>;
122
+ export interface DateTime {
123
+ /**
124
+ * ISO-8601 for time, in the format HH:mm:ss
125
+ */
126
+ time?: string;
127
+ /**
128
+ * ISO-8601 for the date, in the format YYYY-MM-dd
129
+ */
130
+ date?: string;
131
+ /**
132
+ * ISO-8601 timezone offset string in the format -05:00 or Z
133
+ */
134
+ tz?: string;
135
+ }
136
+ export interface DateTimeRange {
137
+ /**
138
+ * Start of the range
139
+ */
140
+ start: DateTime;
141
+ /**
142
+ * End of the range.
143
+ */
144
+ end: DateTime;
145
+ }
146
+ /**
147
+ * Text that describes the format of a duration, for example "years" or "M" for months.
148
+ *
149
+ * This is the same as the moment.js duration format.
150
+ */
151
+ export declare type DurationFormat = "year" | "years" | "y" | "quarter" | "quarters" | "Q" | "month" | "months" | "M" | "week" | "weeks" | "w" | "day" | "days" | "d" | "hour" | "hours" | "h" | "minute" | "minutes" | "m" | "second" | "seconds" | "s" | "millisecond" | "milliseconds" | "ms";
152
+ /**
153
+ * Duration, amount and format.
154
+ */
155
+ export interface Duration {
156
+ readonly amount: number;
157
+ readonly format: DurationFormat;
158
+ }
159
+ export declare type LocaleObject = object;
160
+ /**
161
+ * An object that has a default locale and separate localalized versions.
162
+ */
163
+ export interface Localizable<O extends LocaleObject> {
164
+ defaultLocale?: Locale;
165
+ locales?: Partial<Record<Locale, Partial<O>>>;
166
+ }
167
+ export declare type LanguageTag = "de-DE" | "en-AU" | "en-CA" | "en-GB" | "en-IN" | "en-US" | "es-419" | "es-ES" | "es-MX" | "fr-CA" | "fr-FR" | "it-IT" | "ja-JP" | "pt-BR" | "zh-CH" | "zh-HK" | "zh-TW";
168
+ export declare type Language = "da" | "de" | "en" | "es" | "fr" | "it" | "ja" | "nl" | "no" | "pt" | "ru" | "sv" | "th" | "tr" | "uk" | "zh";
169
+ /**
170
+ * The different kinds of locales that can be assigned in Stentor.
171
+ */
172
+ export declare type Locale = LanguageTag | Language;
@@ -0,0 +1,75 @@
1
+ import { DateTime, DateTimeRange, Duration, DurationFormat, RequestSlotValues } from "./models";
2
+ export declare enum ListDelimiter {
3
+ or = 0,
4
+ and = 1
5
+ }
6
+ /**
7
+ * Based on the provided slot value, it will return the appropriate <say-as> tag.
8
+ *
9
+ * {@link https://cloud.google.com/text-to-speech/docs/ssml#say%E2%80%91as}
10
+ * {@link https://developer.amazon.com/en-US/docs/alexa/custom-skills/speech-synthesis-markup-language-ssml-reference.html#say-as}
11
+ * {@link https://docs.aws.amazon.com/polly/latest/dg/supportedtags.html#say-as-tag}
12
+ *
13
+ * @param value
14
+ * @returns
15
+ */
16
+ export declare function slotValueToSpeech(value: RequestSlotValues, type?: "ssml" | "displayText"): string;
17
+ /**
18
+ * Determine if the request slot value is a DateTime
19
+ *
20
+ * @public
21
+ * @param slotValue - Slot value to check
22
+ */
23
+ export declare function isDateTime(slotValue: RequestSlotValues): slotValue is DateTime;
24
+ /**
25
+ * Determine if the request slot value is a DateTimeRange
26
+ *
27
+ * @public
28
+ * @param slotValue - Slot value to check
29
+ */
30
+ export declare function isDateTimeRange(slotValue: RequestSlotValues): slotValue is DateTimeRange;
31
+ /**
32
+ * Determine if the request slot value is a Duration
33
+ *
34
+ * @public
35
+ * @param slotValue - Slot value to check
36
+ */
37
+ export declare function isDuration(slotValue: RequestSlotValues): slotValue is Duration;
38
+ /**
39
+ * Converts a date time object to a string that can be used in either SSML or display text.
40
+ *
41
+ * @privateRemarks
42
+ * We will want to consider how we tackle localization of dates. date-fns
43
+ * can handle it we just need to pass in the locale. Additionally, when generating
44
+ * a response for display, we may want to support a short and long form.
45
+ *
46
+ * @beta
47
+ * @param value
48
+ * @param type
49
+ */
50
+ export declare function dateTimeToSpeech(value: DateTime, type?: "ssml" | "displayText"): string;
51
+ export declare function dateTimeRangeToSpeech(value: DateTimeRange, type?: "ssml" | "displayText"): string;
52
+ export declare function durationToSpeech(duration: Duration, type?: "ssml" | "displayText"): string;
53
+ /**
54
+ * Converts a date time object to a string.
55
+ *
56
+ * Either a single date (2020-07-19T23:59:59) or a range (2019-07-19T00:00:00 --> 2020-07-19T23:59:59).
57
+ *
58
+ * @param dateTime - Either DateTime or DateTimeRange to convert to a string
59
+ */
60
+ export declare function dateTimeToString(dateTime: DateTime | DateTimeRange): string;
61
+ export declare type DurationFormatToMSMultiplier = Record<DurationFormat, number>;
62
+ /**
63
+ * Lookup table to convert a duration format to a multiplier that will convert it to milliseconds
64
+ */
65
+ export declare const DURATION_FORMAT_TO_MS_MULTIPLIER: DurationFormatToMSMultiplier;
66
+ /**
67
+ * Builds a speakable and readable list from a set of items.
68
+ *
69
+ * For example, ["one", "two", "three", "four"] will be transformed
70
+ * to "one, two, three or four".
71
+ *
72
+ * @param {string[]} items
73
+ * @param {ListisizeDelimiter} [delimiter]
74
+ */
75
+ export declare function listisize(items: string[], preferredDelimiter?: ListDelimiter): string;
@@ -0,0 +1,8 @@
1
+ import { WidgetConfigurableMessagesConfig } from "@xapp/stentor-chat-widget";
2
+ export interface ConfigurableMessagesItems {
3
+ retry: number;
4
+ delay: number;
5
+ text: string;
6
+ }
7
+ export declare function getConfigurableMessages(): WidgetConfigurableMessagesConfig;
8
+ export declare function getConfigurableMessagesConfig(messages: WidgetConfigurableMessagesConfig): ConfigurableMessagesItems[];
@@ -7,3 +7,4 @@ export { default as insertSorted } from "./insertSorted";
7
7
  export * from "./nick-utils";
8
8
  export * from "./PersistentStorage";
9
9
  export * from "./useIsMounted";
10
+ export * from "./retryRequest";
@@ -0,0 +1,13 @@
1
+ export declare class RetryOptions {
2
+ retries?: number;
3
+ timeout?: number;
4
+ log?: boolean;
5
+ }
6
+ export declare class RetryRequest {
7
+ private attempts;
8
+ private options;
9
+ private lastError;
10
+ constructor(options?: RetryOptions);
11
+ retry<T>(executor: Promise<T>): Promise<T>;
12
+ private log;
13
+ }
@@ -1,4 +1,4 @@
1
- import { UserInfo } from "@xapp/stentor-chat-widget";
1
+ import { UserInfo, WidgetConfigurableMessagesConfig } from "@xapp/stentor-chat-widget";
2
2
  import { ActionType } from "../store/ChatAction";
3
3
  import { ChatMessageRequest, ChatServerMessage } from "./ChatServerMessage";
4
4
  export interface ChatServer {
@@ -27,6 +27,7 @@ export interface ChatServer {
27
27
  export interface ChatServerOptions {
28
28
  readonly token?: string;
29
29
  readonly bot?: UserInfo;
30
+ readonly configurableMessages?: WidgetConfigurableMessagesConfig;
30
31
  }
31
32
  export interface OfflineMessage {
32
33
  readonly name: string;
@@ -10,7 +10,7 @@ export interface ChatMessageRequest {
10
10
  /**
11
11
  * Type of message
12
12
  */
13
- type: "rating" | "ratingRequest" | "comment" | "msg" | "custom" | "startTyping" | "stopTyping" | "userJoined" | "userLeft" | "handOff" | "handBack" | "permissionRequest" | "permissionGrant";
13
+ type: "rating" | "ratingRequest" | "comment" | "msg" | "failureMsg" | "custom" | "startTyping" | "stopTyping" | "userJoined" | "userLeft" | "handOff" | "handBack" | "permissionRequest" | "permissionGrant";
14
14
  timestamp: number;
15
15
  msg?: ChatServerMessage;
16
16
  /**
@@ -13,6 +13,7 @@ export declare class StentorDirectChat implements ChatServer {
13
13
  private dispatch;
14
14
  private visitorInfo;
15
15
  private isNewSession;
16
+ private readonly configurableMessages;
16
17
  private readonly config;
17
18
  private readonly options;
18
19
  constructor(config: StentorDirectChatConfig, options?: ChatServerOptions);
@@ -23,6 +24,7 @@ export declare class StentorDirectChat implements ChatServer {
23
24
  private userJoined;
24
25
  private typing;
25
26
  private stopTyping;
27
+ private sendFailureMessage;
26
28
  sendOfflineMsg(_: OfflineMessage, cb: (error?: Error) => void): void;
27
29
  sendChatMsg(message: ChatServerMessage, cb: (err?: Error) => void): Promise<void>;
28
30
  private getBot;
package/package.json CHANGED
@@ -1,11 +1,11 @@
1
1
  {
2
2
  "name": "@xapp/chat-widget",
3
- "version": "1.38.1",
3
+ "version": "1.40.2",
4
4
  "description": "XAPP Chat Widget",
5
5
  "scripts": {
6
6
  "clean": "rm -rf ./lib/* && rm -rf ./dist/*",
7
7
  "lint": "eslint src/**/* --ext .ts,.tsx --fix",
8
- "test": "jest",
8
+ "test": "jest --maxWorkers=50%",
9
9
  "prebuild": "tsc -d false",
10
10
  "build": "rollup -c",
11
11
  "start": "rollup -c -w && npm run prettier-watch",
@@ -38,75 +38,77 @@
38
38
  },
39
39
  "homepage": "https://github.com/XappMedia/chat-widget#readme",
40
40
  "devDependencies": {
41
- "@babel/core": "7.16.5",
42
- "@rollup/plugin-commonjs": "21.0.2",
43
- "@rollup/plugin-node-resolve": "13.1.3",
44
- "@storybook/addon-actions": "6.4.9",
45
- "@storybook/addon-essentials": "6.4.9",
46
- "@storybook/addon-links": "6.4.9",
47
- "@storybook/react": "6.4.9",
48
- "@testing-library/jest-dom": "5.16.3",
49
- "@types/enzyme": "3.10.11",
41
+ "@babel/core": "7.17.9",
42
+ "@rollup/plugin-commonjs": "21.1.0",
43
+ "@rollup/plugin-json": "4.1.0",
44
+ "@rollup/plugin-node-resolve": "13.2.1",
45
+ "@storybook/addon-actions": "6.4.22",
46
+ "@storybook/addon-essentials": "6.4.22",
47
+ "@storybook/addon-links": "6.4.22",
48
+ "@storybook/react": "6.4.22",
49
+ "@testing-library/jest-dom": "5.16.4",
50
+ "@types/enzyme": "3.10.12",
50
51
  "@types/enzyme-adapter-react-16": "1.0.6",
51
- "@types/jest": "27.0.3",
52
- "@types/react": "17.0.42",
53
- "@types/react-redux": "7.1.23",
52
+ "@types/jest": "27.4.1",
53
+ "@types/react": "17.0.44",
54
+ "@types/react-redux": "7.1.24",
54
55
  "@types/react-transition-group": "4.4.4",
55
56
  "@types/socket.io-client": "1.4.36",
56
57
  "@types/store": "2.0.2",
57
- "@typescript-eslint/eslint-plugin": "5.10.2",
58
- "@typescript-eslint/parser": "5.10.2",
58
+ "@typescript-eslint/eslint-plugin": "5.20.0",
59
+ "@typescript-eslint/parser": "5.20.0",
59
60
  "babel-eslint": "10.1.0",
60
- "babel-jest": "27.4.5",
61
- "babel-loader": "8.2.3",
61
+ "babel-jest": "27.5.1",
62
+ "babel-loader": "8.2.5",
62
63
  "enzyme": "3.11.0",
63
64
  "enzyme-adapter-react-16": "1.15.6",
64
- "eslint": "8.8.0",
65
+ "eslint": "8.14.0",
65
66
  "eslint-config-prettier": "7.2.0",
66
67
  "eslint-config-react-app": "6.0.0",
67
68
  "eslint-plugin-flowtype": "8.0.3",
68
- "eslint-plugin-import": "2.25.4",
69
+ "eslint-plugin-import": "2.26.0",
69
70
  "eslint-plugin-jsx-a11y": "6.5.1",
70
- "eslint-plugin-react": "7.27.1",
71
- "eslint-plugin-react-hooks": "4.3.0",
72
- "jest": "27.4.5",
73
- "prettier": "2.4.1",
74
- "react": "16.14.0",
75
- "react-dom": "16.14.0",
76
- "react-redux": "7.2.6",
77
- "redux": "4.1.2",
71
+ "eslint-plugin-react": "7.29.4",
72
+ "eslint-plugin-react-hooks": "4.5.0",
73
+ "jest": "27.5.1",
74
+ "prettier": "2.6.2",
75
+ "react": "17.0.2",
76
+ "react-dom": "17.0.2",
77
+ "react-redux": "7.2.8",
78
+ "redux": "4.2.0",
78
79
  "redux-thunk": "2.4.1",
79
- "rollup": "2.61.1",
80
+ "rollup": "2.70.2",
80
81
  "rollup-plugin-inject-process-env": "1.3.1",
81
82
  "rollup-plugin-peer-deps-external": "2.2.4",
82
83
  "rollup-plugin-scss": "3.0.0",
83
84
  "rollup-plugin-terser": "7.0.2",
84
85
  "rollup-plugin-typescript2": "0.31.2",
85
- "sass": "1.45.0",
86
+ "sass": "1.50.1",
86
87
  "sass-loader": "10.2.1",
87
- "stentor-models": "1.54.7",
88
- "ts-jest": "27.1.3",
89
- "typescript": "4.5.4"
88
+ "stentor-models": "1.55.10",
89
+ "ts-jest": "27.1.4",
90
+ "typescript": "4.6.3"
90
91
  },
91
92
  "files": [
92
93
  "dist"
93
94
  ],
94
95
  "peerDependencies": {
95
- "react": "16.X",
96
- "react-dom": "16.X",
96
+ "react": "17.X",
97
+ "react-dom": "17.X",
97
98
  "react-redux": "7.X",
98
99
  "redux": "4.X",
99
100
  "redux-thunk": "2.X",
100
101
  "stentor-models": "1.X"
101
102
  },
102
103
  "dependencies": {
103
- "@rollup/plugin-replace": "^3.0.0",
104
- "@xapp/chat-widget-core": "1.38.1",
105
- "@xapp/stentor-chat-widget": "1.38.0",
104
+ "@rollup/plugin-replace": "^4.0.0",
105
+ "@xapp/chat-widget-core": "1.40.2",
106
+ "@xapp/stentor-chat-widget": "1.40.2",
107
+ "date-fns": "2.28.0",
106
108
  "react-transition-group": "4.4.2",
107
- "socket.io-client": "4.4.0",
109
+ "socket.io-client": "4.4.1",
108
110
  "store": "2.0.12",
109
111
  "tslib": "2.3.1"
110
112
  },
111
- "gitHead": "a3c3a5d4d0eddb1e45c6493d15e3cd38d5aeaf0c"
113
+ "gitHead": "c2add5f5b25f69959d08e5b6ffa7547d79c992e7"
112
114
  }