@magmamath/students-features 0.3.0-rc.13 → 0.3.0-rc.14
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/dist/commonjs/features/chatbot/components/Alternatives/Alternatives.js +1 -1
- package/dist/commonjs/features/chatbot/components/Alternatives/Alternatives.js.map +1 -1
- package/dist/commonjs/features/chatbot/components/ChatControls/ChatControls.js +1 -1
- package/dist/commonjs/features/chatbot/components/ChatControls/ChatControls.js.map +1 -1
- package/dist/commonjs/features/chatbot/components/Chatbot.js +1 -1
- package/dist/commonjs/features/chatbot/components/Chatbot.js.map +1 -1
- package/dist/commonjs/features/chatbot/model/ChatBotModel.js +34 -60
- package/dist/commonjs/features/chatbot/model/ChatBotModel.js.map +1 -1
- package/dist/commonjs/features/chatbot/model/api.js.map +1 -1
- package/dist/commonjs/features/chatbot/model/messagesHelper.js +46 -0
- package/dist/commonjs/features/chatbot/model/messagesHelper.js.map +1 -0
- package/dist/commonjs/features/chatbot/model/translation.helpers.js +62 -0
- package/dist/commonjs/features/chatbot/model/translation.helpers.js.map +1 -0
- package/dist/commonjs/features/chatbot/model/translation.js +94 -130
- package/dist/commonjs/features/chatbot/model/translation.js.map +1 -1
- package/dist/commonjs/features/chatbot/types/model.types.js.map +1 -1
- package/dist/commonjs/index.js +9 -1
- package/dist/commonjs/index.js.map +1 -1
- package/dist/commonjs/lib/helpers/types.js +2 -0
- package/dist/commonjs/lib/helpers/types.js.map +1 -0
- package/dist/module/features/chatbot/components/Alternatives/Alternatives.js +1 -1
- package/dist/module/features/chatbot/components/Alternatives/Alternatives.js.map +1 -1
- package/dist/module/features/chatbot/components/ChatControls/ChatControls.js +1 -1
- package/dist/module/features/chatbot/components/ChatControls/ChatControls.js.map +1 -1
- package/dist/module/features/chatbot/components/Chatbot.js +1 -1
- package/dist/module/features/chatbot/components/Chatbot.js.map +1 -1
- package/dist/module/features/chatbot/index.js.map +1 -1
- package/dist/module/features/chatbot/model/ChatBotModel.js +34 -60
- package/dist/module/features/chatbot/model/ChatBotModel.js.map +1 -1
- package/dist/module/features/chatbot/model/api.js.map +1 -1
- package/dist/module/features/chatbot/model/messagesHelper.js +41 -0
- package/dist/module/features/chatbot/model/messagesHelper.js.map +1 -0
- package/dist/module/features/chatbot/model/translation.helpers.js +57 -0
- package/dist/module/features/chatbot/model/translation.helpers.js.map +1 -0
- package/dist/module/features/chatbot/model/translation.js +95 -131
- package/dist/module/features/chatbot/model/translation.js.map +1 -1
- package/dist/module/features/chatbot/types/model.types.js.map +1 -1
- package/dist/module/index.js +1 -0
- package/dist/module/index.js.map +1 -1
- package/dist/module/lib/helpers/types.js +2 -0
- package/dist/module/lib/helpers/types.js.map +1 -0
- package/dist/typescript/commonjs/features/chatbot/index.d.ts +1 -1
- package/dist/typescript/commonjs/features/chatbot/index.d.ts.map +1 -1
- package/dist/typescript/commonjs/features/chatbot/model/ChatBotModel.d.ts +6 -6
- package/dist/typescript/commonjs/features/chatbot/model/ChatBotModel.d.ts.map +1 -1
- package/dist/typescript/commonjs/features/chatbot/model/api.d.ts +5 -7
- package/dist/typescript/commonjs/features/chatbot/model/api.d.ts.map +1 -1
- package/dist/typescript/commonjs/features/chatbot/model/messagesHelper.d.ts +21 -0
- package/dist/typescript/commonjs/features/chatbot/model/messagesHelper.d.ts.map +1 -0
- package/dist/typescript/commonjs/features/chatbot/model/translation.d.ts +9 -9
- package/dist/typescript/commonjs/features/chatbot/model/translation.d.ts.map +1 -1
- package/dist/typescript/commonjs/features/chatbot/model/translation.helpers.d.ts +20 -0
- package/dist/typescript/commonjs/features/chatbot/model/translation.helpers.d.ts.map +1 -0
- package/dist/typescript/commonjs/features/chatbot/types/model.types.d.ts +4 -0
- package/dist/typescript/commonjs/features/chatbot/types/model.types.d.ts.map +1 -1
- package/dist/typescript/commonjs/features/chatbot/types/translation.types.d.ts +19 -4
- package/dist/typescript/commonjs/features/chatbot/types/translation.types.d.ts.map +1 -1
- package/dist/typescript/commonjs/index.d.ts +1 -0
- package/dist/typescript/commonjs/index.d.ts.map +1 -1
- package/dist/typescript/commonjs/lib/helpers/types.d.ts +2 -0
- package/dist/typescript/commonjs/lib/helpers/types.d.ts.map +1 -0
- package/dist/typescript/module/features/chatbot/index.d.ts +1 -1
- package/dist/typescript/module/features/chatbot/index.d.ts.map +1 -1
- package/dist/typescript/module/features/chatbot/model/ChatBotModel.d.ts +6 -6
- package/dist/typescript/module/features/chatbot/model/ChatBotModel.d.ts.map +1 -1
- package/dist/typescript/module/features/chatbot/model/api.d.ts +5 -7
- package/dist/typescript/module/features/chatbot/model/api.d.ts.map +1 -1
- package/dist/typescript/module/features/chatbot/model/messagesHelper.d.ts +21 -0
- package/dist/typescript/module/features/chatbot/model/messagesHelper.d.ts.map +1 -0
- package/dist/typescript/module/features/chatbot/model/translation.d.ts +9 -9
- package/dist/typescript/module/features/chatbot/model/translation.d.ts.map +1 -1
- package/dist/typescript/module/features/chatbot/model/translation.helpers.d.ts +20 -0
- package/dist/typescript/module/features/chatbot/model/translation.helpers.d.ts.map +1 -0
- package/dist/typescript/module/features/chatbot/types/model.types.d.ts +4 -0
- package/dist/typescript/module/features/chatbot/types/model.types.d.ts.map +1 -1
- package/dist/typescript/module/features/chatbot/types/translation.types.d.ts +19 -4
- package/dist/typescript/module/features/chatbot/types/translation.types.d.ts.map +1 -1
- package/dist/typescript/module/index.d.ts +1 -0
- package/dist/typescript/module/index.d.ts.map +1 -1
- package/dist/typescript/module/lib/helpers/types.d.ts +2 -0
- package/dist/typescript/module/lib/helpers/types.d.ts.map +1 -0
- package/package.json +1 -1
- package/src/features/chatbot/components/Alternatives/Alternatives.tsx +1 -1
- package/src/features/chatbot/components/ChatControls/ChatControls.tsx +1 -1
- package/src/features/chatbot/components/Chatbot.tsx +1 -1
- package/src/features/chatbot/index.ts +6 -1
- package/src/features/chatbot/model/ChatBotModel.ts +36 -67
- package/src/features/chatbot/model/api.ts +24 -33
- package/src/features/chatbot/model/messagesHelper.ts +48 -0
- package/src/features/chatbot/model/translation.helpers.ts +50 -0
- package/src/features/chatbot/model/translation.ts +91 -147
- package/src/features/chatbot/types/model.types.ts +5 -0
- package/src/features/chatbot/types/translation.types.ts +20 -4
- package/src/index.ts +1 -0
- package/src/lib/helpers/types.ts +1 -0
|
@@ -1,23 +1,16 @@
|
|
|
1
|
+
import { attach, createEffect, createEvent, EventCallable, restore, sample, Store } from 'effector'
|
|
1
2
|
import {
|
|
2
|
-
|
|
3
|
-
restore,
|
|
4
|
-
attach,
|
|
5
|
-
createEffect,
|
|
6
|
-
type Effect,
|
|
7
|
-
sample,
|
|
8
|
-
Store,
|
|
9
|
-
EventCallable,
|
|
10
|
-
} from 'effector'
|
|
11
|
-
import {
|
|
12
|
-
TranslateAlternativesFxProps,
|
|
3
|
+
AddTranslationToAlternativesProps,
|
|
13
4
|
TranslateBatchFxProps,
|
|
14
5
|
TranslateMessageFxProps,
|
|
6
|
+
TranslateRequestProps,
|
|
15
7
|
} from '../types/translation.types'
|
|
16
8
|
import { ChatbotModelProps, ConversationMessage } from '../types/model.types'
|
|
17
9
|
import { GetAlternativesResponse } from '../types/api.types'
|
|
18
10
|
import { decodeHTMLEntities } from '../helpers'
|
|
19
11
|
import { ChatbotAPI } from './api'
|
|
20
12
|
import { EntityFieldStore } from '../../../lib/effector/createEntityFieldStore'
|
|
13
|
+
import { addTranslationsToAlternative, getOptionsForTranslation } from './translation.helpers'
|
|
21
14
|
|
|
22
15
|
type ChatbotTranslationProps = {
|
|
23
16
|
api: ChatbotAPI
|
|
@@ -40,12 +33,7 @@ export class ChatbotTranslation {
|
|
|
40
33
|
readonly setIsTranslated = createEvent<boolean>()
|
|
41
34
|
readonly $isTranslated = restore(this.setIsTranslated, false)
|
|
42
35
|
|
|
43
|
-
readonly
|
|
44
|
-
readonly translateBatchFx: Effect<TranslateBatchFxProps['params'], ConversationMessage[]>
|
|
45
|
-
readonly translateAlternativesFx: Effect<
|
|
46
|
-
TranslateAlternativesFxProps['params'],
|
|
47
|
-
GetAlternativesResponse | null
|
|
48
|
-
>
|
|
36
|
+
readonly translateAllMessagesFx
|
|
49
37
|
|
|
50
38
|
constructor({
|
|
51
39
|
api,
|
|
@@ -60,10 +48,15 @@ export class ChatbotTranslation {
|
|
|
60
48
|
this.messagesModel = messagesModel
|
|
61
49
|
this.alternativesModel = alternativesModel
|
|
62
50
|
|
|
63
|
-
this.
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
51
|
+
this.translateAllMessagesFx = attach({
|
|
52
|
+
source: [this.$key, this.messagesModel.$state, this.alternativesModel.$store],
|
|
53
|
+
mapParams: (params: TranslateBatchFxProps['params'], [key, messages, alternatives]) => ({
|
|
54
|
+
params,
|
|
55
|
+
messages: messages[key] ?? [],
|
|
56
|
+
alternatives,
|
|
57
|
+
}),
|
|
58
|
+
effect: this.translateBatchFx,
|
|
59
|
+
})
|
|
67
60
|
this.initTranslationSamples()
|
|
68
61
|
}
|
|
69
62
|
|
|
@@ -73,7 +66,7 @@ export class ChatbotTranslation {
|
|
|
73
66
|
return true
|
|
74
67
|
}
|
|
75
68
|
|
|
76
|
-
const allTranslated = messages.every(message => message.translatedMessage)
|
|
69
|
+
const allTranslated = messages.every((message) => message.translatedMessage)
|
|
77
70
|
if (allTranslated) {
|
|
78
71
|
this.setIsTranslated(true)
|
|
79
72
|
return true
|
|
@@ -84,69 +77,91 @@ export class ChatbotTranslation {
|
|
|
84
77
|
|
|
85
78
|
private initTranslationSamples() {
|
|
86
79
|
sample({
|
|
87
|
-
clock: this.
|
|
80
|
+
clock: this.translateAllMessagesFx.doneData,
|
|
88
81
|
source: [this.$key] as const,
|
|
89
82
|
fn: ([key], translatedMessages) => ({ key, data: translatedMessages }),
|
|
90
83
|
target: this.messagesModel.setField,
|
|
91
84
|
})
|
|
92
85
|
}
|
|
93
86
|
|
|
94
|
-
private
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
params,
|
|
99
|
-
alternatives,
|
|
100
|
-
}),
|
|
101
|
-
effect: createEffect(async ({ alternatives, params }: TranslateAlternativesFxProps) => {
|
|
102
|
-
const hintAlternatives = alternatives?.options.hints ?? []
|
|
103
|
-
const defaultAlternatives = alternatives?.options.default ?? []
|
|
104
|
-
|
|
105
|
-
const translatedAlternatives = { ...alternatives }
|
|
106
|
-
|
|
107
|
-
if (hintAlternatives.length) {
|
|
108
|
-
const hintText = hintAlternatives.map(({ text }) => text)
|
|
109
|
-
const response = await this.api.translateTextFx({
|
|
110
|
-
text: hintText,
|
|
111
|
-
targetLanguage: params.targetLanguage,
|
|
112
|
-
})
|
|
113
|
-
|
|
114
|
-
if (translatedAlternatives.options) {
|
|
115
|
-
translatedAlternatives.options.hints = hintAlternatives.map((alternative, index) => ({
|
|
116
|
-
...alternative,
|
|
117
|
-
translatedMessage: decodeHTMLEntities(
|
|
118
|
-
response.data.translations[index].translatedText,
|
|
119
|
-
),
|
|
120
|
-
}))
|
|
121
|
-
}
|
|
122
|
-
}
|
|
87
|
+
private async translateRequest<List extends Record<string, string[]>>(
|
|
88
|
+
props: TranslateRequestProps<List>,
|
|
89
|
+
) {
|
|
90
|
+
const text = Object.values(props.text).flat()
|
|
123
91
|
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
targetLanguage: params.targetLanguage,
|
|
129
|
-
})
|
|
130
|
-
|
|
131
|
-
if (translatedAlternatives.options) {
|
|
132
|
-
translatedAlternatives.options.default = defaultAlternatives.map(
|
|
133
|
-
(alternative, index) => ({
|
|
134
|
-
...alternative,
|
|
135
|
-
translatedText: decodeHTMLEntities(
|
|
136
|
-
response.data.translations[index].translatedText,
|
|
137
|
-
),
|
|
138
|
-
}),
|
|
139
|
-
)
|
|
140
|
-
}
|
|
141
|
-
}
|
|
92
|
+
const response = await this.api.translateTextFx({
|
|
93
|
+
text,
|
|
94
|
+
targetLanguage: props.targetLanguage,
|
|
95
|
+
})
|
|
142
96
|
|
|
143
|
-
|
|
144
|
-
|
|
97
|
+
const translatedText = response.data.translations.map(({ translatedText }) =>
|
|
98
|
+
decodeHTMLEntities(translatedText),
|
|
99
|
+
)
|
|
100
|
+
|
|
101
|
+
const result = {} as Record<keyof List, string[]>
|
|
102
|
+
Object.keys(props.text).forEach((key) => {
|
|
103
|
+
const count = props.text[key].length
|
|
104
|
+
result[key as keyof List] = translatedText.splice(0, count)
|
|
145
105
|
})
|
|
106
|
+
return result
|
|
146
107
|
}
|
|
147
108
|
|
|
148
|
-
private
|
|
149
|
-
|
|
109
|
+
private addTranslationToAlternatives(props: AddTranslationToAlternativesProps) {
|
|
110
|
+
this.alternativesModel.set(addTranslationsToAlternative(props))
|
|
111
|
+
}
|
|
112
|
+
|
|
113
|
+
private readonly translateBatchFx = createEffect(
|
|
114
|
+
async ({ messages, params, alternatives }: TranslateBatchFxProps) => {
|
|
115
|
+
if (this.shouldSkipTranslation(messages)) {
|
|
116
|
+
return messages
|
|
117
|
+
}
|
|
118
|
+
|
|
119
|
+
const defaultMessages = [this.defaultMessages.error, this.defaultMessages.endMessage]
|
|
120
|
+
const defaultOptions = [this.defaultMessages.anotherHintOption]
|
|
121
|
+
const options = getOptionsForTranslation({ lastMessage: messages.at(-1), alternatives })
|
|
122
|
+
|
|
123
|
+
const translatedTextsList = await this.translateRequest({
|
|
124
|
+
text: {
|
|
125
|
+
messages: messages.map(({ message }) => message),
|
|
126
|
+
defaultMessages: defaultMessages.map(({ message }) => message),
|
|
127
|
+
defaultOptions: defaultOptions.map(({ text }) => text),
|
|
128
|
+
lastMessage: options.lastMessage || [],
|
|
129
|
+
alternativesHints: options.alternatives?.hints || [],
|
|
130
|
+
alternativesDefaults: options.alternatives?.default || [],
|
|
131
|
+
},
|
|
132
|
+
targetLanguage: params.targetLanguage,
|
|
133
|
+
})
|
|
134
|
+
|
|
135
|
+
translatedTextsList.defaultMessages.forEach((message, index) => {
|
|
136
|
+
defaultMessages[index].translatedMessage = message
|
|
137
|
+
})
|
|
138
|
+
translatedTextsList.defaultOptions.forEach((message, index) => {
|
|
139
|
+
defaultOptions[index].translatedText = message
|
|
140
|
+
})
|
|
141
|
+
if (options.alternatives && alternatives) {
|
|
142
|
+
this.addTranslationToAlternatives({
|
|
143
|
+
alternatives,
|
|
144
|
+
translatedHints: translatedTextsList.alternativesHints,
|
|
145
|
+
translatedDefaults: translatedTextsList.alternativesDefaults,
|
|
146
|
+
})
|
|
147
|
+
}
|
|
148
|
+
|
|
149
|
+
// TODO: move this AFTER state update in sample and remove initTranslationSamples it is not needed
|
|
150
|
+
this.setIsTranslated(true)
|
|
151
|
+
|
|
152
|
+
return messages.map((message, index) => {
|
|
153
|
+
const isLastMessage = index === messages.length - 1
|
|
154
|
+
return {
|
|
155
|
+
...message,
|
|
156
|
+
options: isLastMessage ? translatedTextsList.lastMessage : message.options,
|
|
157
|
+
translatedMessage: translatedTextsList.messages[index],
|
|
158
|
+
}
|
|
159
|
+
}) as ConversationMessage[]
|
|
160
|
+
},
|
|
161
|
+
)
|
|
162
|
+
|
|
163
|
+
public readonly translateMessageFx = createEffect(
|
|
164
|
+
async ({ message, targetLanguage }: TranslateMessageFxProps) => {
|
|
150
165
|
const optionsText = message.options.map(({ text }) => text)
|
|
151
166
|
const response = await this.api.translateTextFx({
|
|
152
167
|
text: [message.message, ...optionsText],
|
|
@@ -165,79 +180,8 @@ export class ChatbotTranslation {
|
|
|
165
180
|
translatedMessage: decodeHTMLEntities(response.data.translations[0].translatedText),
|
|
166
181
|
options: newOptions,
|
|
167
182
|
} as ConversationMessage
|
|
168
|
-
}
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
private createTranslateBatchEffect() {
|
|
172
|
-
return attach({
|
|
173
|
-
source: [this.$key, this.messagesModel.$state],
|
|
174
|
-
mapParams: (params: TranslateBatchFxProps['params'], [key, messages]) => ({
|
|
175
|
-
params,
|
|
176
|
-
messages: messages[key] ?? [],
|
|
177
|
-
}),
|
|
178
|
-
effect: createEffect(async ({ messages, params }: TranslateBatchFxProps) => {
|
|
179
|
-
if (this.shouldSkipTranslation(messages)) {
|
|
180
|
-
return messages
|
|
181
|
-
}
|
|
182
|
-
|
|
183
|
-
const messagesText = messages.map(({ message }) => message)
|
|
184
|
-
const response = await this.api.translateTextFx({
|
|
185
|
-
text: messagesText,
|
|
186
|
-
targetLanguage: params.targetLanguage,
|
|
187
|
-
})
|
|
188
|
-
|
|
189
|
-
const lastMessage = messages.at(-1)
|
|
190
|
-
const lastMessageTranslatedOptions = lastMessage
|
|
191
|
-
? await this.translateMessageOptions(lastMessage, params.targetLanguage)
|
|
192
|
-
: undefined
|
|
193
|
-
|
|
194
|
-
const errorMessageTranslationResponse = await this.api.translateTextFx({
|
|
195
|
-
text: [this.defaultMessages.error.message],
|
|
196
|
-
targetLanguage: params.targetLanguage,
|
|
197
|
-
})
|
|
198
|
-
|
|
199
|
-
this.defaultMessages.error.translatedMessage = decodeHTMLEntities(
|
|
200
|
-
errorMessageTranslationResponse.data.translations[0].translatedText,
|
|
201
|
-
)
|
|
202
|
-
|
|
203
|
-
// TODO: move this AFTER state update in sample and remove initTranslationSamples it is not needed
|
|
204
|
-
// TODO: maybe just one request to translate everything
|
|
205
|
-
this.setIsTranslated(true)
|
|
206
|
-
|
|
207
|
-
const translatedMessages = response.data.translations.map(
|
|
208
|
-
({ translatedText }) => translatedText,
|
|
209
|
-
)
|
|
210
|
-
|
|
211
|
-
return messages.map((message, index) => {
|
|
212
|
-
const isLastMessage = index === messages.length - 1
|
|
213
|
-
return {
|
|
214
|
-
...message,
|
|
215
|
-
options: isLastMessage ? lastMessageTranslatedOptions : message.options,
|
|
216
|
-
translatedMessage: decodeHTMLEntities(translatedMessages[index]),
|
|
217
|
-
}
|
|
218
|
-
}) as ConversationMessage[]
|
|
219
|
-
}),
|
|
220
|
-
})
|
|
221
|
-
}
|
|
222
|
-
|
|
223
|
-
private async translateMessageOptions(message: ConversationMessage, targetLanguage: string) {
|
|
224
|
-
if (!message?.options?.length) {
|
|
225
|
-
const translatedAlternatives = await this.translateAlternativesFx({ targetLanguage })
|
|
226
|
-
this.alternativesModel.set(translatedAlternatives)
|
|
227
|
-
return
|
|
228
|
-
}
|
|
229
|
-
|
|
230
|
-
const optionsText = message.options.map(({ text }) => text)
|
|
231
|
-
const response = await this.api.translateTextFx({
|
|
232
|
-
text: optionsText,
|
|
233
|
-
targetLanguage,
|
|
234
|
-
})
|
|
235
|
-
|
|
236
|
-
return message.options.map((option, index) => ({
|
|
237
|
-
...option,
|
|
238
|
-
translatedText: decodeHTMLEntities(response.data.translations[index].translatedText),
|
|
239
|
-
}))
|
|
240
|
-
}
|
|
183
|
+
},
|
|
184
|
+
)
|
|
241
185
|
|
|
242
186
|
public reset() {
|
|
243
187
|
this.setIsTranslated(false)
|
|
@@ -10,6 +10,7 @@ import {
|
|
|
10
10
|
ChatAnswer,
|
|
11
11
|
GetAlternativesPayload,
|
|
12
12
|
} from './api.types'
|
|
13
|
+
import { AccomplishTo } from '../../../lib/helpers/types'
|
|
13
14
|
|
|
14
15
|
export type ConversationMessage = {
|
|
15
16
|
id: string
|
|
@@ -32,6 +33,8 @@ export type ChatbotModelProps = {
|
|
|
32
33
|
messages: {
|
|
33
34
|
error: ConversationMessage
|
|
34
35
|
start: ConversationMessage
|
|
36
|
+
endMessage: ConversationMessage
|
|
37
|
+
anotherHintOption: ChatAnswer
|
|
35
38
|
}
|
|
36
39
|
}
|
|
37
40
|
|
|
@@ -66,3 +69,5 @@ export type ChatbotRenderer = {
|
|
|
66
69
|
variant: MessageVariant
|
|
67
70
|
withTextToSpeech: boolean
|
|
68
71
|
}
|
|
72
|
+
|
|
73
|
+
export type CreateMessageResponse = AccomplishTo<PostMessageResponse, ConversationMessage>
|
|
@@ -6,6 +6,7 @@ export type TranslateBatchFxProps = {
|
|
|
6
6
|
params: {
|
|
7
7
|
targetLanguage: string
|
|
8
8
|
}
|
|
9
|
+
alternatives: GetAlternativesResponse | null
|
|
9
10
|
}
|
|
10
11
|
|
|
11
12
|
export type TranslateMessageFxProps = {
|
|
@@ -13,9 +14,24 @@ export type TranslateMessageFxProps = {
|
|
|
13
14
|
targetLanguage: string
|
|
14
15
|
}
|
|
15
16
|
|
|
16
|
-
export type
|
|
17
|
+
export type AddTranslationToAlternativesProps = {
|
|
18
|
+
alternatives: GetAlternativesResponse
|
|
19
|
+
translatedHints: string[]
|
|
20
|
+
translatedDefaults: string[]
|
|
21
|
+
}
|
|
22
|
+
export type GetOptionsProps = {
|
|
17
23
|
alternatives: GetAlternativesResponse | null
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
24
|
+
lastMessage: ConversationMessage | undefined
|
|
25
|
+
}
|
|
26
|
+
export type GetOptionsResult = {
|
|
27
|
+
lastMessage: string[] | null
|
|
28
|
+
alternatives: {
|
|
29
|
+
hints: string[]
|
|
30
|
+
default: string[]
|
|
31
|
+
} | null
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
export type TranslateRequestProps<List extends Record<string, string[]>> = {
|
|
35
|
+
text: List
|
|
36
|
+
targetLanguage: string
|
|
21
37
|
}
|
package/src/index.ts
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
export { useFeaturesLocalization, setFeaturesLocalization, Locale } from './shared/translation'
|
|
2
2
|
export type { LocalizationConfig } from './shared/translation'
|
|
3
|
+
export { generateRandomId } from './lib/helpers/helpers'
|
|
3
4
|
export * from './features/chatbot'
|
|
4
5
|
export * from './features/feedback'
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export type AccomplishTo<T, To> = Partial<Omit<To, keyof T>> & T
|