@anam-ai/js-sdk 1.3.0 → 1.4.0-alpha.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.
- package/README.md +63 -56
- package/dist/main/AnamClient.d.ts +14 -4
- package/dist/main/AnamClient.d.ts.map +1 -1
- package/dist/main/AnamClient.js +35 -14
- package/dist/main/AnamClient.js.map +1 -1
- package/dist/main/modules/InternalEventEmitter.d.ts +9 -0
- package/dist/main/modules/InternalEventEmitter.d.ts.map +1 -0
- package/dist/main/modules/InternalEventEmitter.js +28 -0
- package/dist/main/modules/InternalEventEmitter.js.map +1 -0
- package/dist/main/modules/MessageHistoryClient.d.ts +5 -6
- package/dist/main/modules/MessageHistoryClient.d.ts.map +1 -1
- package/dist/main/modules/MessageHistoryClient.js +8 -13
- package/dist/main/modules/MessageHistoryClient.js.map +1 -1
- package/dist/main/modules/PublicEventEmitter.d.ts +9 -0
- package/dist/main/modules/PublicEventEmitter.d.ts.map +1 -0
- package/dist/main/modules/PublicEventEmitter.js +28 -0
- package/dist/main/modules/PublicEventEmitter.js.map +1 -0
- package/dist/main/modules/SignallingClient.d.ts +11 -9
- package/dist/main/modules/SignallingClient.d.ts.map +1 -1
- package/dist/main/modules/SignallingClient.js +20 -25
- package/dist/main/modules/SignallingClient.js.map +1 -1
- package/dist/main/modules/StreamingClient.d.ts +11 -24
- package/dist/main/modules/StreamingClient.d.ts.map +1 -1
- package/dist/main/modules/StreamingClient.js +33 -77
- package/dist/main/modules/StreamingClient.js.map +1 -1
- package/dist/main/modules/index.d.ts +6 -0
- package/dist/main/modules/index.d.ts.map +1 -1
- package/dist/main/modules/index.js +13 -1
- package/dist/main/modules/index.js.map +1 -1
- package/dist/main/types/TalkMessageStream.d.ts +18 -0
- package/dist/main/types/TalkMessageStream.d.ts.map +1 -0
- package/dist/main/types/TalkMessageStream.js +93 -0
- package/dist/main/types/TalkMessageStream.js.map +1 -0
- package/dist/main/types/TalkMessageStreamState.d.ts +7 -0
- package/dist/main/types/TalkMessageStreamState.d.ts.map +1 -0
- package/dist/main/types/TalkMessageStreamState.js +11 -0
- package/dist/main/types/TalkMessageStreamState.js.map +1 -0
- package/dist/main/types/coreApi/index.d.ts +1 -0
- package/dist/main/types/coreApi/index.d.ts.map +1 -1
- package/dist/main/types/events/EventCallback.d.ts +2 -0
- package/dist/main/types/events/EventCallback.d.ts.map +1 -0
- package/dist/main/types/{streaming/ConnectionCallbacks.js → events/EventCallback.js} +1 -1
- package/dist/main/types/events/EventCallback.js.map +1 -0
- package/dist/main/types/events/index.d.ts +6 -0
- package/dist/main/types/events/index.d.ts.map +1 -0
- package/dist/main/types/events/index.js +8 -0
- package/dist/main/types/events/index.js.map +1 -0
- package/dist/main/types/events/internal/InternalEvent.d.ts +6 -0
- package/dist/main/types/events/internal/InternalEvent.d.ts.map +1 -0
- package/dist/main/types/events/internal/InternalEvent.js +10 -0
- package/dist/main/types/events/internal/InternalEvent.js.map +1 -0
- package/dist/main/types/events/internal/InternalEventCallbacks.d.ts +7 -0
- package/dist/main/types/events/internal/InternalEventCallbacks.d.ts.map +1 -0
- package/dist/main/types/events/internal/InternalEventCallbacks.js +4 -0
- package/dist/main/types/events/internal/InternalEventCallbacks.js.map +1 -0
- package/dist/main/types/events/public/AnamEvent.d.ts +12 -0
- package/dist/main/types/events/public/AnamEvent.d.ts.map +1 -0
- package/dist/main/types/events/public/AnamEvent.js +16 -0
- package/dist/main/types/events/public/AnamEvent.js.map +1 -0
- package/dist/main/types/events/public/EventCallbacks.d.ts +13 -0
- package/dist/main/types/events/public/EventCallbacks.d.ts.map +1 -0
- package/dist/main/types/events/public/EventCallbacks.js +4 -0
- package/dist/main/types/events/public/EventCallbacks.js.map +1 -0
- package/dist/main/types/index.d.ts +3 -0
- package/dist/main/types/index.d.ts.map +1 -1
- package/dist/main/types/index.js +5 -1
- package/dist/main/types/index.js.map +1 -1
- package/dist/main/types/signalling/SignalMessage.d.ts +3 -1
- package/dist/main/types/signalling/SignalMessage.d.ts.map +1 -1
- package/dist/main/types/signalling/SignalMessage.js +2 -0
- package/dist/main/types/signalling/SignalMessage.js.map +1 -1
- package/dist/main/types/signalling/TalkMessageStreamPayload.d.ts +7 -0
- package/dist/main/types/signalling/TalkMessageStreamPayload.d.ts.map +1 -0
- package/dist/main/types/signalling/TalkMessageStreamPayload.js +3 -0
- package/dist/main/types/signalling/TalkMessageStreamPayload.js.map +1 -0
- package/dist/main/types/signalling/TalkStreamInterruptedSignalMessage.d.ts +5 -0
- package/dist/main/types/signalling/TalkStreamInterruptedSignalMessage.d.ts.map +1 -0
- package/dist/main/types/signalling/TalkStreamInterruptedSignalMessage.js +11 -0
- package/dist/main/types/signalling/TalkStreamInterruptedSignalMessage.js.map +1 -0
- package/dist/main/types/streaming/index.d.ts +0 -1
- package/dist/main/types/streaming/index.d.ts.map +1 -1
- package/dist/module/AnamClient.d.ts +14 -4
- package/dist/module/AnamClient.d.ts.map +1 -1
- package/dist/module/AnamClient.js +33 -12
- package/dist/module/AnamClient.js.map +1 -1
- package/dist/module/modules/InternalEventEmitter.d.ts +9 -0
- package/dist/module/modules/InternalEventEmitter.d.ts.map +1 -0
- package/dist/module/modules/InternalEventEmitter.js +24 -0
- package/dist/module/modules/InternalEventEmitter.js.map +1 -0
- package/dist/module/modules/MessageHistoryClient.d.ts +5 -6
- package/dist/module/modules/MessageHistoryClient.d.ts.map +1 -1
- package/dist/module/modules/MessageHistoryClient.js +9 -14
- package/dist/module/modules/MessageHistoryClient.js.map +1 -1
- package/dist/module/modules/PublicEventEmitter.d.ts +9 -0
- package/dist/module/modules/PublicEventEmitter.d.ts.map +1 -0
- package/dist/module/modules/PublicEventEmitter.js +24 -0
- package/dist/module/modules/PublicEventEmitter.js.map +1 -0
- package/dist/module/modules/SignallingClient.d.ts +11 -9
- package/dist/module/modules/SignallingClient.d.ts.map +1 -1
- package/dist/module/modules/SignallingClient.js +21 -26
- package/dist/module/modules/SignallingClient.js.map +1 -1
- package/dist/module/modules/StreamingClient.d.ts +11 -24
- package/dist/module/modules/StreamingClient.d.ts.map +1 -1
- package/dist/module/modules/StreamingClient.js +29 -73
- package/dist/module/modules/StreamingClient.js.map +1 -1
- package/dist/module/modules/index.d.ts +6 -0
- package/dist/module/modules/index.d.ts.map +1 -1
- package/dist/module/modules/index.js +6 -0
- package/dist/module/modules/index.js.map +1 -1
- package/dist/module/types/TalkMessageStream.d.ts +18 -0
- package/dist/module/types/TalkMessageStream.d.ts.map +1 -0
- package/dist/module/types/TalkMessageStream.js +89 -0
- package/dist/module/types/TalkMessageStream.js.map +1 -0
- package/dist/module/types/TalkMessageStreamState.d.ts +7 -0
- package/dist/module/types/TalkMessageStreamState.d.ts.map +1 -0
- package/dist/module/types/TalkMessageStreamState.js +8 -0
- package/dist/module/types/TalkMessageStreamState.js.map +1 -0
- package/dist/module/types/coreApi/index.d.ts +1 -0
- package/dist/module/types/coreApi/index.d.ts.map +1 -1
- package/dist/module/types/events/EventCallback.d.ts +2 -0
- package/dist/module/types/events/EventCallback.d.ts.map +1 -0
- package/dist/module/types/events/EventCallback.js +2 -0
- package/dist/module/types/events/EventCallback.js.map +1 -0
- package/dist/module/types/events/index.d.ts +6 -0
- package/dist/module/types/events/index.d.ts.map +1 -0
- package/dist/module/types/events/index.js +3 -0
- package/dist/module/types/events/index.js.map +1 -0
- package/dist/module/types/events/internal/InternalEvent.d.ts +6 -0
- package/dist/module/types/events/internal/InternalEvent.d.ts.map +1 -0
- package/dist/module/types/events/internal/InternalEvent.js +7 -0
- package/dist/module/types/events/internal/InternalEvent.js.map +1 -0
- package/dist/module/types/events/internal/InternalEventCallbacks.d.ts +7 -0
- package/dist/module/types/events/internal/InternalEventCallbacks.d.ts.map +1 -0
- package/dist/module/types/events/internal/InternalEventCallbacks.js +2 -0
- package/dist/module/types/events/internal/InternalEventCallbacks.js.map +1 -0
- package/dist/module/types/events/public/AnamEvent.d.ts +12 -0
- package/dist/module/types/events/public/AnamEvent.d.ts.map +1 -0
- package/dist/module/types/events/public/AnamEvent.js +13 -0
- package/dist/module/types/events/public/AnamEvent.js.map +1 -0
- package/dist/module/types/events/public/EventCallbacks.d.ts +13 -0
- package/dist/module/types/events/public/EventCallbacks.d.ts.map +1 -0
- package/dist/module/types/events/public/EventCallbacks.js +2 -0
- package/dist/module/types/events/public/EventCallbacks.js.map +1 -0
- package/dist/module/types/index.d.ts +3 -0
- package/dist/module/types/index.d.ts.map +1 -1
- package/dist/module/types/index.js +2 -0
- package/dist/module/types/index.js.map +1 -1
- package/dist/module/types/signalling/SignalMessage.d.ts +3 -1
- package/dist/module/types/signalling/SignalMessage.d.ts.map +1 -1
- package/dist/module/types/signalling/SignalMessage.js +2 -0
- package/dist/module/types/signalling/SignalMessage.js.map +1 -1
- package/dist/module/types/signalling/TalkMessageStreamPayload.d.ts +7 -0
- package/dist/module/types/signalling/TalkMessageStreamPayload.d.ts.map +1 -0
- package/dist/module/types/signalling/TalkMessageStreamPayload.js +2 -0
- package/dist/module/types/signalling/TalkMessageStreamPayload.js.map +1 -0
- package/dist/module/types/signalling/TalkStreamInterruptedSignalMessage.d.ts +5 -0
- package/dist/module/types/signalling/TalkStreamInterruptedSignalMessage.d.ts.map +1 -0
- package/dist/module/types/signalling/TalkStreamInterruptedSignalMessage.js +7 -0
- package/dist/module/types/signalling/TalkStreamInterruptedSignalMessage.js.map +1 -0
- package/dist/module/types/streaming/index.d.ts +0 -1
- package/dist/module/types/streaming/index.d.ts.map +1 -1
- package/dist/umd/anam.js +1 -1
- package/package.json +1 -1
- package/dist/main/types/streaming/ConnectionCallbacks.d.ts +0 -14
- package/dist/main/types/streaming/ConnectionCallbacks.d.ts.map +0 -1
- package/dist/main/types/streaming/ConnectionCallbacks.js.map +0 -1
- package/dist/module/types/streaming/ConnectionCallbacks.d.ts +0 -14
- package/dist/module/types/streaming/ConnectionCallbacks.d.ts.map +0 -1
- package/dist/module/types/streaming/ConnectionCallbacks.js +0 -2
- package/dist/module/types/streaming/ConnectionCallbacks.js.map +0 -1
package/README.md
CHANGED
|
@@ -133,9 +133,6 @@ If you wish to control the microphone input audio capture yourself you can inste
|
|
|
133
133
|
anamClient.streamToVideoAndAudioElements(
|
|
134
134
|
'video-element-id',
|
|
135
135
|
'audio-element-id',
|
|
136
|
-
{
|
|
137
|
-
/** register any callbacks **/
|
|
138
|
-
},
|
|
139
136
|
userProvidedMediaStream,
|
|
140
137
|
);
|
|
141
138
|
```
|
|
@@ -219,33 +216,30 @@ const anamClient = createClient(
|
|
|
219
216
|
| ---------------- | ------------------------ | ------ | ------------------------------------------------------- | ----------- |
|
|
220
217
|
| `voiceDetection` | `endOfSpeechSensitivity` | number | Adjusts the sensitivity of the end-of-speech detection. | Coming soon |
|
|
221
218
|
|
|
222
|
-
##
|
|
219
|
+
## Listening to Events
|
|
223
220
|
|
|
224
|
-
|
|
221
|
+
After initialising the Anam client you can register any event listeners using the `addListener` method.
|
|
225
222
|
|
|
226
223
|
```typescript
|
|
227
|
-
|
|
228
|
-
'
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
onMessageHistoryUpdatedCallback: onMessageHistoryUpdated,
|
|
235
|
-
},
|
|
236
|
-
);
|
|
224
|
+
anamClient.addListener(AnamEvent.CONNECTION_ESTABLISHED, () => {
|
|
225
|
+
console.log('Connection Established');
|
|
226
|
+
});
|
|
227
|
+
|
|
228
|
+
anamClient.addListener(AnamEvent.MESSAGE_HISTORY_UPDATED, (messages) => {
|
|
229
|
+
console.log('Updated Messages: ', messages);
|
|
230
|
+
});
|
|
237
231
|
```
|
|
238
232
|
|
|
239
|
-
###
|
|
233
|
+
### Event Types
|
|
240
234
|
|
|
241
|
-
|
|
|
242
|
-
|
|
|
243
|
-
| `
|
|
244
|
-
| `
|
|
245
|
-
| `
|
|
246
|
-
| `
|
|
247
|
-
| `
|
|
248
|
-
| `
|
|
235
|
+
| Event Name | Description |
|
|
236
|
+
| ------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
|
|
237
|
+
| `CONNECTION_ESTABLISHED` | Called when the direct connection between the browser and the Anam Engine has been established. |
|
|
238
|
+
| `CONNECTION_CLOSED` | Called when the direct connection between the browser and the Anam Engine has been closed. |
|
|
239
|
+
| `VIDEO_PLAY_STARTED` | When streaming directly to a video element this event is fired when the first frames start playing. Useful for removing any loading indicators during connection. |
|
|
240
|
+
| `MESSAGE_HISTORY_UPDATED` | Called with the message history transcription of the current session each time the user or the persona finishes speaking. |
|
|
241
|
+
| `MESSAGE_STREAM_EVENT_RECEIVED` | For persona speech, this stream is updated with each transcribed speech chunk as the persona is speaking. For the user speech this stream is updated with a complete transcription of the user's sentence once they finish speaking |
|
|
242
|
+
| `INPUT_AUDIO_STREAM_STARTED` | Called with the users input audio stream when microphone input has been initialised. |
|
|
249
243
|
|
|
250
244
|
# Personas
|
|
251
245
|
|
|
@@ -255,44 +249,57 @@ Available personas are managed via the [Anam API](https://api.anam.ai/api).
|
|
|
255
249
|
|
|
256
250
|
### Listing Available Personas
|
|
257
251
|
|
|
258
|
-
To list all personas available for your account use the `/v1/
|
|
252
|
+
To list all personas available for your account use the `/v1/personas` endpoint.
|
|
259
253
|
|
|
260
254
|
```bash
|
|
261
255
|
# Example Request
|
|
262
|
-
curl -X GET "https://api.anam.ai/v1/
|
|
256
|
+
curl -X GET "https://api.anam.ai/v1/personas" -H "Authorization: Bearer your-api-key"
|
|
263
257
|
|
|
264
258
|
# Example Response
|
|
265
|
-
|
|
266
|
-
|
|
267
|
-
|
|
268
|
-
|
|
269
|
-
|
|
270
|
-
|
|
271
|
-
|
|
272
|
-
|
|
259
|
+
|
|
260
|
+
{
|
|
261
|
+
"data": [
|
|
262
|
+
{
|
|
263
|
+
"id": "773a8ca8-efd8-4449-9305-8b8bc1591475",
|
|
264
|
+
"name": "Leo",
|
|
265
|
+
"description": "Leo is the virtual receptionist of the Sunset Hotel.",
|
|
266
|
+
"personaPreset": "leo",
|
|
267
|
+
"isDefaultPersona": true,
|
|
268
|
+
"createdAt": "2021-01-01T00:00:00Z",
|
|
269
|
+
"updatedAt": "2021-01-02T00:00:00Z"
|
|
270
|
+
}
|
|
271
|
+
],
|
|
272
|
+
"meta": {
|
|
273
|
+
"total": 1,
|
|
274
|
+
"lastPage": 0,
|
|
275
|
+
"currentPage": 1,
|
|
276
|
+
"perPage": 10,
|
|
277
|
+
"prev": 0,
|
|
278
|
+
"next": 0
|
|
273
279
|
}
|
|
274
|
-
|
|
280
|
+
}
|
|
281
|
+
|
|
275
282
|
```
|
|
276
283
|
|
|
277
|
-
|
|
284
|
+
Every Anam account has access to a pre-defined list of 'default personas', identifiable by the `isDefaultPersona` attribute. Currently there is one default persona 'Leo', the virtual receptionist of the Sunset Hotel.
|
|
278
285
|
|
|
279
|
-
> **Quick start**:
|
|
286
|
+
> **Quick start**: Use the persona id `773a8ca8-efd8-4449-9305-8b8bc1591475` when initialising the SDK if you wish to try out Leo.
|
|
280
287
|
|
|
281
|
-
To show more detail about a specific persona you can use the `/v1/
|
|
288
|
+
To show more detail about a specific persona you can use the `/v1/personas/{id}` endpoint.
|
|
282
289
|
|
|
283
290
|
```bash
|
|
284
291
|
# Example Request
|
|
285
|
-
curl -X GET "https://api.anam.ai/v1/
|
|
292
|
+
curl -X GET "https://api.anam.ai/v1/personas/773a8ca8-efd8-4449-9305-8b8bc1591475" -H "Authorization: Bearer your-api-key"
|
|
286
293
|
|
|
287
294
|
# Example Response
|
|
288
295
|
{
|
|
289
|
-
"id": "
|
|
290
|
-
"name": "
|
|
291
|
-
"description": "
|
|
292
|
-
"personaPreset": "
|
|
296
|
+
"id": "773a8ca8-efd8-4449-9305-8b8bc1591475",
|
|
297
|
+
"name": "Leo",
|
|
298
|
+
"description": "Leo is the virtual receptionist of the Sunset Hotel.",
|
|
299
|
+
"personaPreset": "leo",
|
|
293
300
|
"brain": {
|
|
294
301
|
"id": "3c4525f0-698d-4e8d-b619-8c97a23780512",
|
|
295
|
-
"personality": "You are role-playing as a text chatbot hotel receptionist at The Sunset Hotel. Your name is
|
|
302
|
+
"personality": "You are role-playing as a text chatbot hotel receptionist at The Sunset Hotel. Your name is Leo.",
|
|
296
303
|
"systemPrompt": "You are role-playing as a text chatbot hotel receptionist at The Sunset Hotel...",
|
|
297
304
|
"fillerPhrases": ["One moment please.", "Let me check that for you."],
|
|
298
305
|
"createdAt": "2021-01-01T00:00:00Z",
|
|
@@ -303,12 +310,12 @@ curl -X GET "https://api.anam.ai/v1/persona/3c6025f0-698d-4e8d-b619-9c97a2750584
|
|
|
303
310
|
|
|
304
311
|
### Creating Custom Personas
|
|
305
312
|
|
|
306
|
-
You can create your own custom personas by using the `/v1/
|
|
313
|
+
You can create your own custom personas by using the `/v1/personas` endpoint via a `POST` request which defined the following properties:
|
|
307
314
|
| Persona parameter | Description |
|
|
308
315
|
|----------------|---------------------------------------------------------------------------------------------------------|
|
|
309
316
|
| `name` | The name for the persona. This is used as a human-readable identifier for the persona. |
|
|
310
317
|
| `description` | A brief description of the persona. This is optional and helps provide context about the persona's role. Not used by calls to the LLM|
|
|
311
|
-
| `personaPreset`| Defines the face and voice of the persona from a list of available presets.
|
|
318
|
+
| `personaPreset`| Defines the face and voice of the persona from a list of available presets. |
|
|
312
319
|
| `brain` | Configuration for the persona's LLM 'brain' including the system prompt, personality, and filler phrases.|
|
|
313
320
|
|
|
314
321
|
| Brain Parameter | Description |
|
|
@@ -321,13 +328,13 @@ Example usage
|
|
|
321
328
|
|
|
322
329
|
```bash
|
|
323
330
|
# Example Request
|
|
324
|
-
curl -X POST "https://api.anam.ai/v1/
|
|
325
|
-
"name": "
|
|
326
|
-
"description": "
|
|
327
|
-
"personaPreset": "
|
|
331
|
+
curl -X POST "https://api.anam.ai/v1/personas" -H "Content-Type: application/json" -H "Authorization: Bearer your-api-key" -d '{
|
|
332
|
+
"name": "Leo",
|
|
333
|
+
"description": "Leo is the virtual receptionist of the Sunset Hotel.",
|
|
334
|
+
"personaPreset": "leo",
|
|
328
335
|
"brain": {
|
|
329
|
-
"systemPrompt": "You are
|
|
330
|
-
"personality": "You are role-playing as a text chatbot hotel receptionist at The Sunset Hotel. Your name is
|
|
336
|
+
"systemPrompt": "You are Leo, a virtual receptionist...",
|
|
337
|
+
"personality": "You are role-playing as a text chatbot hotel receptionist at The Sunset Hotel. Your name is Leo.",
|
|
331
338
|
"fillerPhrases": ["One moment please.", "Let me check that for you."]
|
|
332
339
|
}
|
|
333
340
|
}'
|
|
@@ -335,13 +342,13 @@ curl -X POST "https://api.anam.ai/v1/persona" -H "Content-Type: application/json
|
|
|
335
342
|
# Example Response
|
|
336
343
|
{
|
|
337
344
|
"id": "new_persona_id",
|
|
338
|
-
"name": "
|
|
339
|
-
"description": "
|
|
340
|
-
"personaPreset": "
|
|
345
|
+
"name": "Leo",
|
|
346
|
+
"description": "Leo is the virtual receptionist of the Sunset Hotel.",
|
|
347
|
+
"personaPreset": "leo",
|
|
341
348
|
"brain": {
|
|
342
349
|
"id": "new_brain_id",
|
|
343
350
|
"personality": "helpful and friendly",
|
|
344
|
-
"systemPrompt": "You are
|
|
351
|
+
"systemPrompt": "You are Leo, a virtual receptionist...",
|
|
345
352
|
"fillerPhrases": ["One moment please...", "Let me check that for you..."],
|
|
346
353
|
"createdAt": "2021-01-01T00:00:00Z",
|
|
347
354
|
"updatedAt": "2021-01-02T00:00:00Z"
|
|
@@ -1,8 +1,12 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import {
|
|
1
|
+
import { MessageHistoryClient } from './modules';
|
|
2
|
+
import { TalkMessageStream } from './types/TalkMessageStream';
|
|
3
|
+
import { AnamEvent, EventCallbacks, InputAudioState, PersonaConfig, AnamClientOptions } from './types';
|
|
3
4
|
export default class AnamClient {
|
|
5
|
+
private publicEventEmitter;
|
|
6
|
+
private internalEventEmitter;
|
|
4
7
|
protected sessionToken: string | undefined;
|
|
5
8
|
protected apiKey: string | undefined;
|
|
9
|
+
protected messageHistoryClient: MessageHistoryClient;
|
|
6
10
|
private personaConfig;
|
|
7
11
|
private clientOptions;
|
|
8
12
|
private inputAudioState;
|
|
@@ -15,8 +19,8 @@ export default class AnamClient {
|
|
|
15
19
|
private buildStartSessionOptionsForClient;
|
|
16
20
|
private startSession;
|
|
17
21
|
private startSessionIfNeeded;
|
|
18
|
-
stream(
|
|
19
|
-
streamToVideoAndAudioElements(videoElementId: string, audioElementId: string,
|
|
22
|
+
stream(userProvidedAudioStream?: MediaStream): Promise<MediaStream[]>;
|
|
23
|
+
streamToVideoAndAudioElements(videoElementId: string, audioElementId: string, userProvidedMediaStream?: MediaStream): Promise<void>;
|
|
20
24
|
talk(content: string): Promise<void>;
|
|
21
25
|
sendDataMessage(message: string): void;
|
|
22
26
|
stopStreaming(): Promise<void>;
|
|
@@ -26,5 +30,11 @@ export default class AnamClient {
|
|
|
26
30
|
getInputAudioState(): InputAudioState;
|
|
27
31
|
muteInputAudio(): InputAudioState;
|
|
28
32
|
unmuteInputAudio(): InputAudioState;
|
|
33
|
+
createTalkMessageStream(correlationId?: string): TalkMessageStream;
|
|
34
|
+
/**
|
|
35
|
+
* Event handling
|
|
36
|
+
*/
|
|
37
|
+
addListener<K extends AnamEvent>(event: K, callback: EventCallbacks[K]): void;
|
|
38
|
+
removeListener<K extends AnamEvent>(event: K, callback: EventCallbacks[K]): void;
|
|
29
39
|
}
|
|
30
40
|
//# sourceMappingURL=AnamClient.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AnamClient.d.ts","sourceRoot":"","sources":["../../src/AnamClient.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"AnamClient.d.ts","sourceRoot":"","sources":["../../src/AnamClient.ts"],"names":[],"mappings":"AAAA,OAAO,EAIL,oBAAoB,EAErB,MAAM,WAAW,CAAC;AACnB,OAAO,EAAE,iBAAiB,EAAE,MAAM,2BAA2B,CAAC;AAC9D,OAAO,EACL,SAAS,EACT,cAAc,EACd,eAAe,EACf,aAAa,EAEb,iBAAiB,EAElB,MAAM,SAAS,CAAC;AAEjB,MAAM,CAAC,OAAO,OAAO,UAAU;IAC7B,OAAO,CAAC,kBAAkB,CAAqB;IAC/C,OAAO,CAAC,oBAAoB,CAAuB;IAEnD,SAAS,CAAC,YAAY,EAAE,MAAM,GAAG,SAAS,CAAC;IAC3C,SAAS,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC;IACrC,SAAS,CAAC,oBAAoB,EAAE,oBAAoB,CAAC;IAErD,OAAO,CAAC,aAAa,CAA4B;IACjD,OAAO,CAAC,aAAa,CAAgC;IACrD,OAAO,CAAC,eAAe,CAAuC;IAE9D,OAAO,CAAC,SAAS,CAAuB;IAExC,OAAO,CAAC,eAAe,CAAgC;IACvD,OAAO,CAAC,SAAS,CAAoB;IAErC,OAAO,CAAC,YAAY,CAAS;gBAG3B,YAAY,EAAE,MAAM,GAAG,SAAS,EAChC,aAAa,EAAE,aAAa,EAC5B,OAAO,CAAC,EAAE,iBAAiB;IA8B7B,OAAO,CAAC,oBAAoB;IAqC5B,OAAO,CAAC,iCAAiC;YAY3B,YAAY;YA8DZ,oBAAoB;IAiBrB,MAAM,CACjB,uBAAuB,CAAC,EAAE,WAAW,GACpC,OAAO,CAAC,WAAW,EAAE,CAAC;IAoCZ,6BAA6B,CACxC,cAAc,EAAE,MAAM,EACtB,cAAc,EAAE,MAAM,EACtB,uBAAuB,CAAC,EAAE,WAAW,GACpC,OAAO,CAAC,IAAI,CAAC;IAiBH,IAAI,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAe1C,eAAe,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI;IAQhC,aAAa,IAAI,OAAO,CAAC,IAAI,CAAC;IASpC,WAAW,IAAI,OAAO;IAItB,gBAAgB,CAAC,aAAa,EAAE,aAAa,GAAG,IAAI;IAIpD,gBAAgB,IAAI,aAAa,GAAG,SAAS;IAI7C,kBAAkB,IAAI,eAAe;IAOrC,cAAc,IAAI,eAAe;IAYjC,gBAAgB,IAAI,eAAe;IAYnC,uBAAuB,CAAC,aAAa,CAAC,EAAE,MAAM,GAAG,iBAAiB;IAezE;;OAEG;IACI,WAAW,CAAC,CAAC,SAAS,SAAS,EACpC,KAAK,EAAE,CAAC,EACR,QAAQ,EAAE,cAAc,CAAC,CAAC,CAAC,GAC1B,IAAI;IAIA,cAAc,CAAC,CAAC,SAAS,SAAS,EACvC,KAAK,EAAE,CAAC,EACR,QAAQ,EAAE,cAAc,CAAC,CAAC,CAAC,GAC1B,IAAI;CAGR"}
|
package/dist/main/AnamClient.js
CHANGED
|
@@ -9,8 +9,8 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
|
|
|
9
9
|
});
|
|
10
10
|
};
|
|
11
11
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
|
-
const
|
|
13
|
-
const
|
|
12
|
+
const modules_1 = require("./modules");
|
|
13
|
+
const types_1 = require("./types");
|
|
14
14
|
class AnamClient {
|
|
15
15
|
constructor(sessionToken, personaConfig, options) {
|
|
16
16
|
this.inputAudioState = { isMuted: false };
|
|
@@ -25,7 +25,10 @@ class AnamClient {
|
|
|
25
25
|
this.apiKey = options === null || options === void 0 ? void 0 : options.apiKey;
|
|
26
26
|
this.personaConfig = personaConfig;
|
|
27
27
|
this.clientOptions = options;
|
|
28
|
-
this.
|
|
28
|
+
this.publicEventEmitter = new modules_1.PublicEventEmitter();
|
|
29
|
+
this.internalEventEmitter = new modules_1.InternalEventEmitter();
|
|
30
|
+
this.apiClient = new modules_1.CoreApiRestClient(sessionToken, options === null || options === void 0 ? void 0 : options.apiKey, options === null || options === void 0 ? void 0 : options.api);
|
|
31
|
+
this.messageHistoryClient = new modules_1.MessageHistoryClient(this.publicEventEmitter, this.internalEventEmitter);
|
|
29
32
|
}
|
|
30
33
|
validateClientConfig(sessionToken, personaConfig, options) {
|
|
31
34
|
// Validate authentication configuration
|
|
@@ -83,7 +86,7 @@ class AnamClient {
|
|
|
83
86
|
const { sessionId, clientConfig, engineHost, engineProtocol, signallingEndpoint, } = response;
|
|
84
87
|
const { heartbeatIntervalSeconds, maxWsReconnectionAttempts, iceServers, } = clientConfig;
|
|
85
88
|
// create a new streaming client
|
|
86
|
-
this.streamingClient = new
|
|
89
|
+
this.streamingClient = new modules_1.StreamingClient(sessionId, {
|
|
87
90
|
engine: {
|
|
88
91
|
baseUrl: `${engineProtocol}://${engineHost}`,
|
|
89
92
|
},
|
|
@@ -101,7 +104,7 @@ class AnamClient {
|
|
|
101
104
|
inputAudioState: this.inputAudioState,
|
|
102
105
|
userProvidedMediaStream: userProvidedAudioStream,
|
|
103
106
|
},
|
|
104
|
-
});
|
|
107
|
+
}, this.publicEventEmitter, this.internalEventEmitter);
|
|
105
108
|
this.sessionId = sessionId;
|
|
106
109
|
return sessionId;
|
|
107
110
|
}
|
|
@@ -125,27 +128,27 @@ class AnamClient {
|
|
|
125
128
|
}
|
|
126
129
|
});
|
|
127
130
|
}
|
|
128
|
-
stream() {
|
|
129
|
-
return __awaiter(this,
|
|
131
|
+
stream(userProvidedAudioStream) {
|
|
132
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
130
133
|
yield this.startSessionIfNeeded(userProvidedAudioStream);
|
|
131
134
|
if (this._isStreaming) {
|
|
132
135
|
throw new Error('Already streaming');
|
|
133
136
|
}
|
|
134
137
|
this._isStreaming = true;
|
|
135
138
|
return new Promise((resolve) => {
|
|
136
|
-
var _a
|
|
139
|
+
var _a;
|
|
137
140
|
// set stream callbacks to capture the stream
|
|
138
141
|
const streams = [];
|
|
139
142
|
let videoReceived = false;
|
|
140
143
|
let audioReceived = false;
|
|
141
|
-
|
|
144
|
+
this.publicEventEmitter.addListener(types_1.AnamEvent.VIDEO_STREAM_STARTED, (videoStream) => {
|
|
142
145
|
streams.push(videoStream);
|
|
143
146
|
videoReceived = true;
|
|
144
147
|
if (audioReceived) {
|
|
145
148
|
resolve(streams);
|
|
146
149
|
}
|
|
147
150
|
});
|
|
148
|
-
|
|
151
|
+
this.publicEventEmitter.addListener(types_1.AnamEvent.AUDIO_STREAM_STARTED, (audioStream) => {
|
|
149
152
|
streams.push(audioStream);
|
|
150
153
|
audioReceived = true;
|
|
151
154
|
if (videoReceived) {
|
|
@@ -153,12 +156,12 @@ class AnamClient {
|
|
|
153
156
|
}
|
|
154
157
|
});
|
|
155
158
|
// start streaming
|
|
156
|
-
(
|
|
159
|
+
(_a = this.streamingClient) === null || _a === void 0 ? void 0 : _a.startConnection();
|
|
157
160
|
});
|
|
158
161
|
});
|
|
159
162
|
}
|
|
160
|
-
streamToVideoAndAudioElements(
|
|
161
|
-
return __awaiter(this,
|
|
163
|
+
streamToVideoAndAudioElements(videoElementId, audioElementId, userProvidedMediaStream) {
|
|
164
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
162
165
|
yield this.startSessionIfNeeded(userProvidedMediaStream);
|
|
163
166
|
if (this._isStreaming) {
|
|
164
167
|
throw new Error('Already streaming');
|
|
@@ -168,7 +171,7 @@ class AnamClient {
|
|
|
168
171
|
throw new Error('Failed to stream: streaming client is not available');
|
|
169
172
|
}
|
|
170
173
|
this.streamingClient.setMediaStreamTargetsById(videoElementId, audioElementId);
|
|
171
|
-
this.streamingClient.startConnection(
|
|
174
|
+
this.streamingClient.startConnection();
|
|
172
175
|
});
|
|
173
176
|
}
|
|
174
177
|
talk(content) {
|
|
@@ -235,6 +238,24 @@ class AnamClient {
|
|
|
235
238
|
}
|
|
236
239
|
return this.inputAudioState;
|
|
237
240
|
}
|
|
241
|
+
createTalkMessageStream(correlationId) {
|
|
242
|
+
if (!this.streamingClient) {
|
|
243
|
+
throw new Error('Failed to start chat message stream: session is not started.');
|
|
244
|
+
}
|
|
245
|
+
if (correlationId && correlationId.trim() === '') {
|
|
246
|
+
throw new Error('Failed to start chat message stream: correlationId is empty');
|
|
247
|
+
}
|
|
248
|
+
return this.streamingClient.startTalkMessageStream(correlationId);
|
|
249
|
+
}
|
|
250
|
+
/**
|
|
251
|
+
* Event handling
|
|
252
|
+
*/
|
|
253
|
+
addListener(event, callback) {
|
|
254
|
+
this.publicEventEmitter.addListener(event, callback);
|
|
255
|
+
}
|
|
256
|
+
removeListener(event, callback) {
|
|
257
|
+
this.publicEventEmitter.removeListener(event, callback);
|
|
258
|
+
}
|
|
238
259
|
}
|
|
239
260
|
exports.default = AnamClient;
|
|
240
261
|
//# sourceMappingURL=AnamClient.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AnamClient.js","sourceRoot":"","sources":["../../src/AnamClient.ts"],"names":[],"mappings":";;;;;;;;;;;AAAA,
|
|
1
|
+
{"version":3,"file":"AnamClient.js","sourceRoot":"","sources":["../../src/AnamClient.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { InternalEvent, InternalEventCallbacks } from '../types';
|
|
2
|
+
export declare class InternalEventEmitter {
|
|
3
|
+
private listeners;
|
|
4
|
+
constructor();
|
|
5
|
+
addListener<K extends InternalEvent>(event: K, callback: InternalEventCallbacks[K]): void;
|
|
6
|
+
removeListener<K extends InternalEvent>(event: K, callback: InternalEventCallbacks[K]): void;
|
|
7
|
+
emit<K extends InternalEvent>(event: K, ...args: InternalEventCallbacks[K] extends (...args: infer P) => any ? P : never): void;
|
|
8
|
+
}
|
|
9
|
+
//# sourceMappingURL=InternalEventEmitter.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"InternalEventEmitter.d.ts","sourceRoot":"","sources":["../../../src/modules/InternalEventEmitter.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,sBAAsB,EAAE,MAAM,UAAU,CAAC;AAEjE,qBAAa,oBAAoB;IAC/B,OAAO,CAAC,SAAS,CAEV;;IAIA,WAAW,CAAC,CAAC,SAAS,aAAa,EACxC,KAAK,EAAE,CAAC,EACR,QAAQ,EAAE,sBAAsB,CAAC,CAAC,CAAC,GAClC,IAAI;IASA,cAAc,CAAC,CAAC,SAAS,aAAa,EAC3C,KAAK,EAAE,CAAC,EACR,QAAQ,EAAE,sBAAsB,CAAC,CAAC,CAAC,GAClC,IAAI;IAKA,IAAI,CAAC,CAAC,SAAS,aAAa,EACjC,KAAK,EAAE,CAAC,EACR,GAAG,IAAI,EAAE,sBAAsB,CAAC,CAAC,CAAC,SAAS,CAAC,GAAG,IAAI,EAAE,MAAM,CAAC,KAAK,GAAG,GAChE,CAAC,GACD,KAAK,GACR,IAAI;CAQR"}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.InternalEventEmitter = void 0;
|
|
4
|
+
class InternalEventEmitter {
|
|
5
|
+
constructor() {
|
|
6
|
+
this.listeners = {};
|
|
7
|
+
}
|
|
8
|
+
addListener(event, callback) {
|
|
9
|
+
if (!this.listeners[event]) {
|
|
10
|
+
this.listeners[event] = new Set();
|
|
11
|
+
}
|
|
12
|
+
this.listeners[event].add(callback);
|
|
13
|
+
}
|
|
14
|
+
removeListener(event, callback) {
|
|
15
|
+
if (!this.listeners[event])
|
|
16
|
+
return;
|
|
17
|
+
this.listeners[event].delete(callback);
|
|
18
|
+
}
|
|
19
|
+
emit(event, ...args) {
|
|
20
|
+
if (!this.listeners[event])
|
|
21
|
+
return;
|
|
22
|
+
this.listeners[event].forEach((callback) => {
|
|
23
|
+
callback(...args);
|
|
24
|
+
});
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
exports.InternalEventEmitter = InternalEventEmitter;
|
|
28
|
+
//# sourceMappingURL=InternalEventEmitter.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"InternalEventEmitter.js","sourceRoot":"","sources":["../../../src/modules/InternalEventEmitter.ts"],"names":[],"mappings":";;;AAEA,MAAa,oBAAoB;IAK/B;QAJQ,cAAS,GAEb,EAAE,CAAC;IAEQ,CAAC;IAET,WAAW,CAChB,KAAQ,EACR,QAAmC;QAEnC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC;YAC1B,IAAI,CAAC,SAAS,CAAC,KAAK,CAAoC,GAAG,IAAI,GAAG,EAEhE,CAAC;QACN,CAAC;QACA,IAAI,CAAC,SAAS,CAAC,KAAK,CAAoC,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;IAC1E,CAAC;IAEM,cAAc,CACnB,KAAQ,EACR,QAAmC;QAEnC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC;YAAE,OAAO;QAClC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAoC,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;IAC7E,CAAC;IAEM,IAAI,CACT,KAAQ,EACR,GAAG,IAEM;QAET,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC;YAAE,OAAO;QAClC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAoC,CAAC,OAAO,CAC/D,CAAC,QAAQ,EAAE,EAAE;YACV,QAAqC,CAAC,GAAG,IAAI,CAAC,CAAC;QAClD,CAAC,CACF,CAAC;IACJ,CAAC;CACF;AAxCD,oDAwCC"}
|
|
@@ -1,14 +1,13 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { WebRtcTextMessageEvent } from '../types';
|
|
2
|
+
import { PublicEventEmitter, InternalEventEmitter } from '../modules';
|
|
2
3
|
export declare class MessageHistoryClient {
|
|
4
|
+
private publicEventEmitter;
|
|
5
|
+
private internalEventEmitter;
|
|
3
6
|
private messages;
|
|
4
|
-
|
|
5
|
-
private onMessageStreamEvent;
|
|
6
|
-
constructor(onMessageHistoryUpdated?: (messages: Message[]) => void);
|
|
7
|
+
constructor(publicEventEmitter: PublicEventEmitter, internalEventEmitter: InternalEventEmitter);
|
|
7
8
|
private webRtcTextMessageEventToMessageStreamEvent;
|
|
8
9
|
private processUserMessage;
|
|
9
10
|
private processPersonaMessage;
|
|
10
11
|
processWebRtcTextMessageEvent(event: WebRtcTextMessageEvent): void;
|
|
11
|
-
setOnMessageHistoryUpdated(onMessageHistoryUpdated: (messages: Message[]) => void): void;
|
|
12
|
-
setOnMessageStreamEvent(onMessageStreamEvent: (messageEvent: MessageStreamEvent) => void): void;
|
|
13
12
|
}
|
|
14
13
|
//# sourceMappingURL=MessageHistoryClient.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MessageHistoryClient.d.ts","sourceRoot":"","sources":["../../../src/modules/MessageHistoryClient.ts"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"MessageHistoryClient.d.ts","sourceRoot":"","sources":["../../../src/modules/MessageHistoryClient.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,sBAAsB,EAKvB,MAAM,UAAU,CAAC;AAClB,OAAO,EAAE,kBAAkB,EAAE,oBAAoB,EAAE,MAAM,YAAY,CAAC;AACtE,qBAAa,oBAAoB;IAC/B,OAAO,CAAC,kBAAkB,CAAqB;IAC/C,OAAO,CAAC,oBAAoB,CAAuB;IAEnD,OAAO,CAAC,QAAQ,CAAiB;gBAG/B,kBAAkB,EAAE,kBAAkB,EACtC,oBAAoB,EAAE,oBAAoB;IAW5C,OAAO,CAAC,0CAA0C;IAYlD,OAAO,CAAC,kBAAkB;IAW1B,OAAO,CAAC,qBAAqB;IAyBtB,6BAA6B,CAAC,KAAK,EAAE,sBAAsB,GAAG,IAAI;CAwB1E"}
|
|
@@ -3,9 +3,12 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
exports.MessageHistoryClient = void 0;
|
|
4
4
|
const types_1 = require("../types");
|
|
5
5
|
class MessageHistoryClient {
|
|
6
|
-
constructor(
|
|
6
|
+
constructor(publicEventEmitter, internalEventEmitter) {
|
|
7
7
|
this.messages = [];
|
|
8
|
-
this.
|
|
8
|
+
this.publicEventEmitter = publicEventEmitter;
|
|
9
|
+
this.internalEventEmitter = internalEventEmitter;
|
|
10
|
+
// register for events
|
|
11
|
+
this.internalEventEmitter.addListener(types_1.InternalEvent.WEBRTC_CHAT_MESSAGE_RECEIVED, this.processWebRtcTextMessageEvent.bind(this));
|
|
9
12
|
}
|
|
10
13
|
webRtcTextMessageEventToMessageStreamEvent(event) {
|
|
11
14
|
return {
|
|
@@ -48,9 +51,7 @@ class MessageHistoryClient {
|
|
|
48
51
|
processWebRtcTextMessageEvent(event) {
|
|
49
52
|
const messageStreamEvent = this.webRtcTextMessageEventToMessageStreamEvent(event);
|
|
50
53
|
// pass to callback stream
|
|
51
|
-
|
|
52
|
-
this.onMessageStreamEvent(messageStreamEvent);
|
|
53
|
-
}
|
|
54
|
+
this.publicEventEmitter.emit(types_1.AnamEvent.MESSAGE_STREAM_EVENT_RECEIVED, messageStreamEvent);
|
|
54
55
|
// update the message history
|
|
55
56
|
switch (messageStreamEvent.role) {
|
|
56
57
|
case types_1.MessageRole.USER:
|
|
@@ -60,16 +61,10 @@ class MessageHistoryClient {
|
|
|
60
61
|
this.processPersonaMessage(messageStreamEvent);
|
|
61
62
|
break;
|
|
62
63
|
}
|
|
63
|
-
if (messageStreamEvent.endOfSpeech
|
|
64
|
-
this.
|
|
64
|
+
if (messageStreamEvent.endOfSpeech) {
|
|
65
|
+
this.publicEventEmitter.emit(types_1.AnamEvent.MESSAGE_HISTORY_UPDATED, this.messages);
|
|
65
66
|
}
|
|
66
67
|
}
|
|
67
|
-
setOnMessageHistoryUpdated(onMessageHistoryUpdated) {
|
|
68
|
-
this.onMessageHistoryUpdated = onMessageHistoryUpdated;
|
|
69
|
-
}
|
|
70
|
-
setOnMessageStreamEvent(onMessageStreamEvent) {
|
|
71
|
-
this.onMessageStreamEvent = onMessageStreamEvent;
|
|
72
|
-
}
|
|
73
68
|
}
|
|
74
69
|
exports.MessageHistoryClient = MessageHistoryClient;
|
|
75
70
|
//# sourceMappingURL=MessageHistoryClient.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MessageHistoryClient.js","sourceRoot":"","sources":["../../../src/modules/MessageHistoryClient.ts"],"names":[],"mappings":";;;AAAA,
|
|
1
|
+
{"version":3,"file":"MessageHistoryClient.js","sourceRoot":"","sources":["../../../src/modules/MessageHistoryClient.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { AnamEvent, EventCallbacks } from '../types';
|
|
2
|
+
export declare class PublicEventEmitter {
|
|
3
|
+
private listeners;
|
|
4
|
+
constructor();
|
|
5
|
+
addListener<K extends AnamEvent>(event: K, callback: EventCallbacks[K]): void;
|
|
6
|
+
removeListener<K extends AnamEvent>(event: K, callback: EventCallbacks[K]): void;
|
|
7
|
+
emit<K extends AnamEvent>(event: K, ...args: EventCallbacks[K] extends (...args: infer P) => any ? P : never): void;
|
|
8
|
+
}
|
|
9
|
+
//# sourceMappingURL=PublicEventEmitter.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"PublicEventEmitter.d.ts","sourceRoot":"","sources":["../../../src/modules/PublicEventEmitter.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,cAAc,EAAE,MAAM,UAAU,CAAC;AAErD,qBAAa,kBAAkB;IAC7B,OAAO,CAAC,SAAS,CAEV;;IAIA,WAAW,CAAC,CAAC,SAAS,SAAS,EACpC,KAAK,EAAE,CAAC,EACR,QAAQ,EAAE,cAAc,CAAC,CAAC,CAAC,GAC1B,IAAI;IASA,cAAc,CAAC,CAAC,SAAS,SAAS,EACvC,KAAK,EAAE,CAAC,EACR,QAAQ,EAAE,cAAc,CAAC,CAAC,CAAC,GAC1B,IAAI;IAKA,IAAI,CAAC,CAAC,SAAS,SAAS,EAC7B,KAAK,EAAE,CAAC,EACR,GAAG,IAAI,EAAE,cAAc,CAAC,CAAC,CAAC,SAAS,CAAC,GAAG,IAAI,EAAE,MAAM,CAAC,KAAK,GAAG,GAAG,CAAC,GAAG,KAAK,GACvE,IAAI;CAMR"}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.PublicEventEmitter = void 0;
|
|
4
|
+
class PublicEventEmitter {
|
|
5
|
+
constructor() {
|
|
6
|
+
this.listeners = {};
|
|
7
|
+
}
|
|
8
|
+
addListener(event, callback) {
|
|
9
|
+
if (!this.listeners[event]) {
|
|
10
|
+
this.listeners[event] = new Set();
|
|
11
|
+
}
|
|
12
|
+
this.listeners[event].add(callback);
|
|
13
|
+
}
|
|
14
|
+
removeListener(event, callback) {
|
|
15
|
+
if (!this.listeners[event])
|
|
16
|
+
return;
|
|
17
|
+
this.listeners[event].delete(callback);
|
|
18
|
+
}
|
|
19
|
+
emit(event, ...args) {
|
|
20
|
+
if (!this.listeners[event])
|
|
21
|
+
return;
|
|
22
|
+
this.listeners[event].forEach((callback) => {
|
|
23
|
+
callback(...args);
|
|
24
|
+
});
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
exports.PublicEventEmitter = PublicEventEmitter;
|
|
28
|
+
//# sourceMappingURL=PublicEventEmitter.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"PublicEventEmitter.js","sourceRoot":"","sources":["../../../src/modules/PublicEventEmitter.ts"],"names":[],"mappings":";;;AAEA,MAAa,kBAAkB;IAK7B;QAJQ,cAAS,GAEb,EAAE,CAAC;IAEQ,CAAC;IAET,WAAW,CAChB,KAAQ,EACR,QAA2B;QAE3B,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC;YAC1B,IAAI,CAAC,SAAS,CAAC,KAAK,CAA4B,GAAG,IAAI,GAAG,EAExD,CAAC;QACN,CAAC;QACA,IAAI,CAAC,SAAS,CAAC,KAAK,CAA4B,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;IAClE,CAAC;IAEM,cAAc,CACnB,KAAQ,EACR,QAA2B;QAE3B,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC;YAAE,OAAO;QAClC,IAAI,CAAC,SAAS,CAAC,KAAK,CAA4B,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;IACrE,CAAC;IAEM,IAAI,CACT,KAAQ,EACR,GAAG,IAAqE;QAExE,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC;YAAE,OAAO;QAClC,IAAI,CAAC,SAAS,CAAC,KAAK,CAA4B,CAAC,OAAO,CAAC,CAAC,QAAQ,EAAE,EAAE;YACpE,QAAqC,CAAC,GAAG,IAAI,CAAC,CAAC;QAClD,CAAC,CAAC,CAAC;IACL,CAAC;CACF;AApCD,gDAoCC"}
|
|
@@ -1,23 +1,25 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { SignallingClientOptions } from '../types';
|
|
2
|
+
import { PublicEventEmitter, InternalEventEmitter } from '../modules';
|
|
3
|
+
import { TalkMessageStreamPayload } from '../types/signalling/TalkMessageStreamPayload';
|
|
2
4
|
export declare class SignallingClient {
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
protected onClientConnectionFailureCallback?: () => Promise<void> | void;
|
|
5
|
+
private publicEventEmitter;
|
|
6
|
+
private internalEventEmitter;
|
|
7
|
+
private url;
|
|
8
|
+
private sessionId;
|
|
9
|
+
private heartbeatIntervalSeconds;
|
|
10
|
+
private maxWsReconnectionAttempts;
|
|
10
11
|
private stopSignal;
|
|
11
12
|
private sendingBuffer;
|
|
12
13
|
private wsConnectionAttempts;
|
|
13
14
|
private socket;
|
|
14
15
|
private heartBeatIntervalRef;
|
|
15
|
-
constructor(sessionId: string, options: SignallingClientOptions,
|
|
16
|
+
constructor(sessionId: string, options: SignallingClientOptions, publicEventEmitter: PublicEventEmitter, internalEventEmitter: InternalEventEmitter);
|
|
16
17
|
stop(): void;
|
|
17
18
|
connect(): WebSocket;
|
|
18
19
|
sendOffer(localDescription: RTCSessionDescription): Promise<void>;
|
|
19
20
|
sendIceCandidate(candidate: RTCIceCandidate): Promise<void>;
|
|
20
21
|
private sendSignalMessage;
|
|
22
|
+
sendChatMessage(payload: TalkMessageStreamPayload): Promise<void>;
|
|
21
23
|
private closeSocket;
|
|
22
24
|
private onOpen;
|
|
23
25
|
private onClose;
|