@anam-ai/js-sdk 1.7.0-rc.1 → 1.8.1

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/main/AnamClient.d.ts +2 -5
  2. package/dist/main/AnamClient.d.ts.map +1 -1
  3. package/dist/main/AnamClient.js +26 -21
  4. package/dist/main/AnamClient.js.map +1 -1
  5. package/dist/main/lib/ClientError.d.ts +16 -0
  6. package/dist/main/lib/ClientError.d.ts.map +1 -0
  7. package/dist/main/lib/ClientError.js +25 -0
  8. package/dist/main/lib/ClientError.js.map +1 -0
  9. package/dist/main/modules/CoreApiRestClient.d.ts +4 -4
  10. package/dist/main/modules/CoreApiRestClient.d.ts.map +1 -1
  11. package/dist/main/modules/CoreApiRestClient.js +26 -3
  12. package/dist/main/modules/CoreApiRestClient.js.map +1 -1
  13. package/dist/main/modules/EngineApiRestClient.d.ts +2 -2
  14. package/dist/main/modules/EngineApiRestClient.d.ts.map +1 -1
  15. package/dist/module/AnamClient.d.ts +2 -5
  16. package/dist/module/AnamClient.d.ts.map +1 -1
  17. package/dist/module/AnamClient.js +27 -22
  18. package/dist/module/AnamClient.js.map +1 -1
  19. package/dist/module/lib/ClientError.d.ts +16 -0
  20. package/dist/module/lib/ClientError.d.ts.map +1 -0
  21. package/dist/module/lib/ClientError.js +21 -0
  22. package/dist/module/lib/ClientError.js.map +1 -0
  23. package/dist/module/modules/CoreApiRestClient.d.ts +4 -4
  24. package/dist/module/modules/CoreApiRestClient.d.ts.map +1 -1
  25. package/dist/module/modules/CoreApiRestClient.js +26 -3
  26. package/dist/module/modules/CoreApiRestClient.js.map +1 -1
  27. package/dist/module/modules/EngineApiRestClient.d.ts +2 -2
  28. package/dist/module/modules/EngineApiRestClient.d.ts.map +1 -1
  29. package/dist/umd/anam.js +1 -1
  30. package/package.json +1 -1
@@ -1,12 +1,9 @@
1
- import { MessageHistoryClient } from './modules';
1
+ import { AnamClientOptions, AnamEvent, EventCallbacks, InputAudioState, PersonaConfig } from './types';
2
2
  import { TalkMessageStream } from './types/TalkMessageStream';
3
- import { AnamEvent, EventCallbacks, InputAudioState, PersonaConfig, AnamClientOptions } from './types';
4
3
  export default class AnamClient {
5
4
  private publicEventEmitter;
6
5
  private internalEventEmitter;
7
- protected sessionToken: string | undefined;
8
- protected apiKey: string | undefined;
9
- protected messageHistoryClient: MessageHistoryClient;
6
+ private readonly messageHistoryClient;
10
7
  private personaConfig;
11
8
  private clientOptions;
12
9
  private inputAudioState;
@@ -1 +1 @@
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,CAAC,EAAE,aAAa,EAC7B,OAAO,CAAC,EAAE,iBAAiB;IA8B7B,OAAO,CAAC,SAAS;IAUjB,OAAO,CAAC,oBAAoB;IAoD5B,OAAO,CAAC,iCAAiC;YAY3B,YAAY;YAyDZ,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;IAIA,kBAAkB,IAAI,MAAM,GAAG,IAAI;CAG3C"}
1
+ {"version":3,"file":"AnamClient.d.ts","sourceRoot":"","sources":["../../src/AnamClient.ts"],"names":[],"mappings":"AAQA,OAAO,EACL,iBAAiB,EACjB,SAAS,EACT,cAAc,EACd,eAAe,EACf,aAAa,EAGd,MAAM,SAAS,CAAC;AACjB,OAAO,EAAE,iBAAiB,EAAE,MAAM,2BAA2B,CAAC;AAE9D,MAAM,CAAC,OAAO,OAAO,UAAU;IAC7B,OAAO,CAAC,kBAAkB,CAAqB;IAC/C,OAAO,CAAC,oBAAoB,CAAuB;IAEnD,OAAO,CAAC,QAAQ,CAAC,oBAAoB,CAAuB;IAE5D,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,CAAC,EAAE,aAAa,EAC7B,OAAO,CAAC,EAAE,iBAAiB;IA4B7B,OAAO,CAAC,SAAS;IAUjB,OAAO,CAAC,oBAAoB;IAoD5B,OAAO,CAAC,iCAAiC;YAY3B,YAAY;YA4DZ,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;IAiCH,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;IAIA,kBAAkB,IAAI,MAAM,GAAG,IAAI;CAG3C"}
@@ -9,6 +9,7 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
9
9
  });
10
10
  };
11
11
  Object.defineProperty(exports, "__esModule", { value: true });
12
+ const ClientError_1 = require("./lib/ClientError");
12
13
  const modules_1 = require("./modules");
13
14
  const types_1 = require("./types");
14
15
  class AnamClient {
@@ -21,8 +22,6 @@ class AnamClient {
21
22
  if (configError) {
22
23
  throw new Error(configError);
23
24
  }
24
- this.sessionToken = sessionToken;
25
- this.apiKey = options === null || options === void 0 ? void 0 : options.apiKey;
26
25
  this.personaConfig = personaConfig;
27
26
  this.clientOptions = options;
28
27
  this.publicEventEmitter = new modules_1.PublicEventEmitter();
@@ -99,15 +98,14 @@ class AnamClient {
99
98
  }
100
99
  startSession(userProvidedAudioStream) {
101
100
  return __awaiter(this, void 0, void 0, function* () {
101
+ const config = this.personaConfig;
102
+ // build session options from client options
103
+ const sessionOptions = this.buildStartSessionOptionsForClient();
104
+ // start a new session
105
+ const response = yield this.apiClient.startSession(config, sessionOptions);
106
+ const { sessionId, clientConfig, engineHost, engineProtocol, signallingEndpoint, } = response;
107
+ const { heartbeatIntervalSeconds, maxWsReconnectionAttempts, iceServers } = clientConfig;
102
108
  try {
103
- const config = this.personaConfig;
104
- // build session options from client options
105
- const sessionOptions = this.buildStartSessionOptionsForClient();
106
- // start a new session
107
- const response = yield this.apiClient.startSession(config, sessionOptions);
108
- const { sessionId, clientConfig, engineHost, engineProtocol, signallingEndpoint, } = response;
109
- const { heartbeatIntervalSeconds, maxWsReconnectionAttempts, iceServers, } = clientConfig;
110
- // create a new streaming client
111
109
  this.streamingClient = new modules_1.StreamingClient(sessionId, {
112
110
  engine: {
113
111
  baseUrl: `${engineProtocol}://${engineHost}`,
@@ -127,25 +125,22 @@ class AnamClient {
127
125
  userProvidedMediaStream: userProvidedAudioStream,
128
126
  },
129
127
  }, this.publicEventEmitter, this.internalEventEmitter);
130
- this.sessionId = sessionId;
131
- return sessionId;
132
128
  }
133
129
  catch (error) {
134
- throw new Error('Failed to start session');
130
+ throw new ClientError_1.ClientError('Failed to initialize streaming client', ClientError_1.ErrorCode.SERVER_ERROR, 500, { cause: error instanceof Error ? error.message : String(error) });
135
131
  }
132
+ this.sessionId = sessionId;
133
+ return sessionId;
136
134
  });
137
135
  }
138
136
  startSessionIfNeeded(userProvidedMediaStream) {
139
137
  return __awaiter(this, void 0, void 0, function* () {
140
138
  if (!this.sessionId || !this.streamingClient) {
141
- try {
142
- yield this.startSession(userProvidedMediaStream);
143
- }
144
- catch (error) {
145
- throw new Error('StreamToVideoAndAudioElements: Failed to start session');
146
- }
139
+ yield this.startSession(userProvidedMediaStream);
147
140
  if (!this.sessionId || !this.streamingClient) {
148
- throw new Error('StreamToVideoAndAudioElements: session Id or streaming client is not available after starting session');
141
+ throw new ClientError_1.ClientError('Session ID or streaming client is not available after starting session', ClientError_1.ErrorCode.SERVER_ERROR, 500, {
142
+ cause: 'Failed to initialize session properly',
143
+ });
149
144
  }
150
145
  }
151
146
  });
@@ -184,7 +179,17 @@ class AnamClient {
184
179
  }
185
180
  streamToVideoAndAudioElements(videoElementId, audioElementId, userProvidedMediaStream) {
186
181
  return __awaiter(this, void 0, void 0, function* () {
187
- yield this.startSessionIfNeeded(userProvidedMediaStream);
182
+ try {
183
+ yield this.startSessionIfNeeded(userProvidedMediaStream);
184
+ }
185
+ catch (error) {
186
+ if (error instanceof ClientError_1.ClientError) {
187
+ throw error;
188
+ }
189
+ throw new ClientError_1.ClientError('Failed to start session', ClientError_1.ErrorCode.SERVER_ERROR, 500, {
190
+ cause: error instanceof Error ? error.message : String(error),
191
+ });
192
+ }
188
193
  if (this._isStreaming) {
189
194
  throw new Error('Already streaming');
190
195
  }
@@ -1 +1 @@
1
- {"version":3,"file":"AnamClient.js","sourceRoot":"","sources":["../../src/AnamClient.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"AnamClient.js","sourceRoot":"","sources":["../../src/AnamClient.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,16 @@
1
+ export declare enum ErrorCode {
2
+ USAGE_LIMIT_REACHED = "USAGE_LIMIT_REACHED",
3
+ VALIDATION_ERROR = "VALIDATION_ERROR",
4
+ AUTHENTICATION_ERROR = "AUTHENTICATION_ERROR",
5
+ SERVER_ERROR = "SERVER_ERROR",
6
+ MAX_CONCURRENT_SESSIONS_REACHED = "MAX_CONCURRENT_SESSIONS_REACHED",
7
+ SERVICE_BUSY = "SERVICE_BUSY",
8
+ NO_PLAN_FOUND = "NO_PLAN_FOUND"
9
+ }
10
+ export declare class ClientError extends Error {
11
+ code: ErrorCode;
12
+ statusCode: number;
13
+ details?: any;
14
+ constructor(message: string, code: ErrorCode, statusCode?: number, details?: any);
15
+ }
16
+ //# sourceMappingURL=ClientError.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ClientError.d.ts","sourceRoot":"","sources":["../../../src/lib/ClientError.ts"],"names":[],"mappings":"AAAA,oBAAY,SAAS;IACnB,mBAAmB,wBAAwB;IAC3C,gBAAgB,qBAAqB;IACrC,oBAAoB,yBAAyB;IAC7C,YAAY,iBAAiB;IAC7B,+BAA+B,oCAAoC;IACnE,YAAY,iBAAiB;IAC7B,aAAa,kBAAkB;CAChC;AAED,qBAAa,WAAY,SAAQ,KAAK;IACpC,IAAI,EAAE,SAAS,CAAC;IAChB,UAAU,EAAE,MAAM,CAAC;IACnB,OAAO,CAAC,EAAE,GAAG,CAAC;gBAGZ,OAAO,EAAE,MAAM,EACf,IAAI,EAAE,SAAS,EACf,UAAU,GAAE,MAAY,EACxB,OAAO,CAAC,EAAE,GAAG;CAUhB"}
@@ -0,0 +1,25 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.ClientError = exports.ErrorCode = void 0;
4
+ var ErrorCode;
5
+ (function (ErrorCode) {
6
+ ErrorCode["USAGE_LIMIT_REACHED"] = "USAGE_LIMIT_REACHED";
7
+ ErrorCode["VALIDATION_ERROR"] = "VALIDATION_ERROR";
8
+ ErrorCode["AUTHENTICATION_ERROR"] = "AUTHENTICATION_ERROR";
9
+ ErrorCode["SERVER_ERROR"] = "SERVER_ERROR";
10
+ ErrorCode["MAX_CONCURRENT_SESSIONS_REACHED"] = "MAX_CONCURRENT_SESSIONS_REACHED";
11
+ ErrorCode["SERVICE_BUSY"] = "SERVICE_BUSY";
12
+ ErrorCode["NO_PLAN_FOUND"] = "NO_PLAN_FOUND";
13
+ })(ErrorCode || (exports.ErrorCode = ErrorCode = {}));
14
+ class ClientError extends Error {
15
+ constructor(message, code, statusCode = 500, details) {
16
+ super(message);
17
+ this.name = 'ClientError';
18
+ this.code = code;
19
+ this.statusCode = statusCode;
20
+ this.details = details;
21
+ Object.setPrototypeOf(this, ClientError.prototype);
22
+ }
23
+ }
24
+ exports.ClientError = ClientError;
25
+ //# sourceMappingURL=ClientError.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ClientError.js","sourceRoot":"","sources":["../../../src/lib/ClientError.ts"],"names":[],"mappings":";;;AAAA,IAAY,SAQX;AARD,WAAY,SAAS;IACnB,wDAA2C,CAAA;IAC3C,kDAAqC,CAAA;IACrC,0DAA6C,CAAA;IAC7C,0CAA6B,CAAA;IAC7B,gFAAmE,CAAA;IACnE,0CAA6B,CAAA;IAC7B,4CAA+B,CAAA;AACjC,CAAC,EARW,SAAS,yBAAT,SAAS,QAQpB;AAED,MAAa,WAAY,SAAQ,KAAK;IAKpC,YACE,OAAe,EACf,IAAe,EACf,aAAqB,GAAG,EACxB,OAAa;QAEb,KAAK,CAAC,OAAO,CAAC,CAAC;QACf,IAAI,CAAC,IAAI,GAAG,aAAa,CAAC;QAC1B,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QACjB,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC;QAC7B,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;QAEvB,MAAM,CAAC,cAAc,CAAC,IAAI,EAAE,WAAW,CAAC,SAAS,CAAC,CAAC;IACrD,CAAC;CACF;AAnBD,kCAmBC"}
@@ -1,10 +1,10 @@
1
1
  import { CoreApiRestClientOptions, PersonaConfig, StartSessionResponse } from '../types';
2
2
  import { StartSessionOptions } from '../types/coreApi/StartSessionOptions';
3
3
  export declare class CoreApiRestClient {
4
- protected baseUrl: string;
5
- protected apiVersion: string;
6
- protected apiKey: string | null;
7
- protected sessionToken: string | null;
4
+ private baseUrl;
5
+ private apiVersion;
6
+ private apiKey;
7
+ private sessionToken;
8
8
  constructor(sessionToken?: string, apiKey?: string, options?: CoreApiRestClientOptions);
9
9
  startSession(personaConfig?: PersonaConfig, sessionOptions?: StartSessionOptions): Promise<StartSessionResponse>;
10
10
  unsafe_getSessionToken(personaConfig: PersonaConfig): Promise<string>;
@@ -1 +1 @@
1
- {"version":3,"file":"CoreApiRestClient.d.ts","sourceRoot":"","sources":["../../../src/modules/CoreApiRestClient.ts"],"names":[],"mappings":"AACA,OAAO,EACL,wBAAwB,EACxB,aAAa,EACb,oBAAoB,EACrB,MAAM,UAAU,CAAC;AAClB,OAAO,EAAE,mBAAmB,EAAE,MAAM,sCAAsC,CAAC;AAG3E,qBAAa,iBAAiB;IAC5B,SAAS,CAAC,OAAO,EAAE,MAAM,CAAC;IAC1B,SAAS,CAAC,UAAU,EAAE,MAAM,CAAC;IAC7B,SAAS,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IAChC,SAAS,CAAC,YAAY,EAAE,MAAM,GAAG,IAAI,CAAC;gBAGpC,YAAY,CAAC,EAAE,MAAM,EACrB,MAAM,CAAC,EAAE,MAAM,EACf,OAAO,CAAC,EAAE,wBAAwB;IAWvB,YAAY,CACvB,aAAa,CAAC,EAAE,aAAa,EAC7B,cAAc,CAAC,EAAE,mBAAmB,GACnC,OAAO,CAAC,oBAAoB,CAAC;IAyBnB,sBAAsB,CACjC,aAAa,EAAE,aAAa,GAC3B,OAAO,CAAC,MAAM,CAAC;IA6BlB,OAAO,CAAC,SAAS;CAGlB"}
1
+ {"version":3,"file":"CoreApiRestClient.d.ts","sourceRoot":"","sources":["../../../src/modules/CoreApiRestClient.ts"],"names":[],"mappings":"AAEA,OAAO,EACL,wBAAwB,EACxB,aAAa,EACb,oBAAoB,EACrB,MAAM,UAAU,CAAC;AAClB,OAAO,EAAE,mBAAmB,EAAE,MAAM,sCAAsC,CAAC;AAG3E,qBAAa,iBAAiB;IAC5B,OAAO,CAAC,OAAO,CAAS;IACxB,OAAO,CAAC,UAAU,CAAS;IAC3B,OAAO,CAAC,MAAM,CAAgB;IAC9B,OAAO,CAAC,YAAY,CAAgB;gBAGlC,YAAY,CAAC,EAAE,MAAM,EACrB,MAAM,CAAC,EAAE,MAAM,EACf,OAAO,CAAC,EAAE,wBAAwB;IAWvB,YAAY,CACvB,aAAa,CAAC,EAAE,aAAa,EAC7B,cAAc,CAAC,EAAE,mBAAmB,GACnC,OAAO,CAAC,oBAAoB,CAAC;IA4FnB,sBAAsB,CACjC,aAAa,EAAE,aAAa,GAC3B,OAAO,CAAC,MAAM,CAAC;IA6BlB,OAAO,CAAC,SAAS;CAGlB"}
@@ -10,6 +10,7 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
10
10
  };
11
11
  Object.defineProperty(exports, "__esModule", { value: true });
12
12
  exports.CoreApiRestClient = void 0;
13
+ const ClientError_1 = require("../lib/ClientError");
13
14
  const constants_1 = require("../lib/constants");
14
15
  const PersonaConfig_1 = require("../types/PersonaConfig");
15
16
  class CoreApiRestClient {
@@ -26,8 +27,9 @@ class CoreApiRestClient {
26
27
  return __awaiter(this, void 0, void 0, function* () {
27
28
  if (!this.sessionToken) {
28
29
  if (!personaConfig) {
29
- throw new Error('Persona configuration must be provided when using apiKey');
30
+ throw new ClientError_1.ClientError('Persona configuration must be provided when using apiKey', ClientError_1.ErrorCode.VALIDATION_ERROR, 400);
30
31
  }
32
+ // TODO: why do we need to get the unsafe session token here?
31
33
  this.sessionToken = yield this.unsafe_getSessionToken(personaConfig);
32
34
  }
33
35
  try {
@@ -40,10 +42,31 @@ class CoreApiRestClient {
40
42
  body: JSON.stringify({ personaConfig, sessionOptions }),
41
43
  });
42
44
  const data = yield response.json();
43
- return data;
45
+ switch (response.status) {
46
+ case 200:
47
+ case 201:
48
+ return data;
49
+ case 400:
50
+ throw new ClientError_1.ClientError('Invalid request to start session', ClientError_1.ErrorCode.VALIDATION_ERROR, 400, { cause: data.message });
51
+ case 401:
52
+ throw new ClientError_1.ClientError('Authentication failed when starting session', ClientError_1.ErrorCode.AUTHENTICATION_ERROR, 401, { cause: data.message });
53
+ case 402:
54
+ throw new ClientError_1.ClientError('Please sign up for a plan to start a session', ClientError_1.ErrorCode.NO_PLAN_FOUND, 402, { cause: data.message });
55
+ case 403:
56
+ throw new ClientError_1.ClientError('Authentication failed when starting session', ClientError_1.ErrorCode.AUTHENTICATION_ERROR, 403, { cause: data.message });
57
+ case 429:
58
+ throw new ClientError_1.ClientError('Out of credits, please upgrade your plan', ClientError_1.ErrorCode.USAGE_LIMIT_REACHED, 429, { cause: data.message });
59
+ case 503:
60
+ throw new ClientError_1.ClientError('There are no available personas, please try again later', ClientError_1.ErrorCode.SERVICE_BUSY, 503, { cause: data.message });
61
+ default:
62
+ throw new ClientError_1.ClientError('Unknown error when starting session', ClientError_1.ErrorCode.SERVER_ERROR, 500, { cause: data.message });
63
+ }
44
64
  }
45
65
  catch (error) {
46
- throw new Error('Failed to start session');
66
+ if (error instanceof ClientError_1.ClientError) {
67
+ throw error;
68
+ }
69
+ throw new ClientError_1.ClientError('Failed to start session', ClientError_1.ErrorCode.SERVER_ERROR, 500, { cause: error instanceof Error ? error.message : String(error) });
47
70
  }
48
71
  });
49
72
  }
@@ -1 +1 @@
1
- {"version":3,"file":"CoreApiRestClient.js","sourceRoot":"","sources":["../../../src/modules/CoreApiRestClient.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"CoreApiRestClient.js","sourceRoot":"","sources":["../../../src/modules/CoreApiRestClient.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,6 @@
1
1
  export declare class EngineApiRestClient {
2
- protected baseUrl: string;
3
- protected sessionId: string;
2
+ private baseUrl;
3
+ private sessionId;
4
4
  constructor(baseUrl: string, sessionId: string);
5
5
  sendTalkCommand(content: string): Promise<void>;
6
6
  }
@@ -1 +1 @@
1
- {"version":3,"file":"EngineApiRestClient.d.ts","sourceRoot":"","sources":["../../../src/modules/EngineApiRestClient.ts"],"names":[],"mappings":"AAAA,qBAAa,mBAAmB;IAC9B,SAAS,CAAC,OAAO,EAAE,MAAM,CAAC;IAC1B,SAAS,CAAC,SAAS,EAAE,MAAM,CAAC;gBAEhB,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM;IAKjC,eAAe,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;CA0B7D"}
1
+ {"version":3,"file":"EngineApiRestClient.d.ts","sourceRoot":"","sources":["../../../src/modules/EngineApiRestClient.ts"],"names":[],"mappings":"AAAA,qBAAa,mBAAmB;IAC9B,OAAO,CAAC,OAAO,CAAS;IACxB,OAAO,CAAC,SAAS,CAAS;gBAEd,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM;IAKjC,eAAe,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;CA0B7D"}
@@ -1,12 +1,9 @@
1
- import { MessageHistoryClient } from './modules';
1
+ import { AnamClientOptions, AnamEvent, EventCallbacks, InputAudioState, PersonaConfig } from './types';
2
2
  import { TalkMessageStream } from './types/TalkMessageStream';
3
- import { AnamEvent, EventCallbacks, InputAudioState, PersonaConfig, AnamClientOptions } from './types';
4
3
  export default class AnamClient {
5
4
  private publicEventEmitter;
6
5
  private internalEventEmitter;
7
- protected sessionToken: string | undefined;
8
- protected apiKey: string | undefined;
9
- protected messageHistoryClient: MessageHistoryClient;
6
+ private readonly messageHistoryClient;
10
7
  private personaConfig;
11
8
  private clientOptions;
12
9
  private inputAudioState;
@@ -1 +1 @@
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,CAAC,EAAE,aAAa,EAC7B,OAAO,CAAC,EAAE,iBAAiB;IA8B7B,OAAO,CAAC,SAAS;IAUjB,OAAO,CAAC,oBAAoB;IAoD5B,OAAO,CAAC,iCAAiC;YAY3B,YAAY;YAyDZ,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;IAIA,kBAAkB,IAAI,MAAM,GAAG,IAAI;CAG3C"}
1
+ {"version":3,"file":"AnamClient.d.ts","sourceRoot":"","sources":["../../src/AnamClient.ts"],"names":[],"mappings":"AAQA,OAAO,EACL,iBAAiB,EACjB,SAAS,EACT,cAAc,EACd,eAAe,EACf,aAAa,EAGd,MAAM,SAAS,CAAC;AACjB,OAAO,EAAE,iBAAiB,EAAE,MAAM,2BAA2B,CAAC;AAE9D,MAAM,CAAC,OAAO,OAAO,UAAU;IAC7B,OAAO,CAAC,kBAAkB,CAAqB;IAC/C,OAAO,CAAC,oBAAoB,CAAuB;IAEnD,OAAO,CAAC,QAAQ,CAAC,oBAAoB,CAAuB;IAE5D,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,CAAC,EAAE,aAAa,EAC7B,OAAO,CAAC,EAAE,iBAAiB;IA4B7B,OAAO,CAAC,SAAS;IAUjB,OAAO,CAAC,oBAAoB;IAoD5B,OAAO,CAAC,iCAAiC;YAY3B,YAAY;YA4DZ,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;IAiCH,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;IAIA,kBAAkB,IAAI,MAAM,GAAG,IAAI;CAG3C"}
@@ -7,7 +7,8 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
7
7
  step((generator = generator.apply(thisArg, _arguments || [])).next());
8
8
  });
9
9
  };
10
- import { CoreApiRestClient, PublicEventEmitter, StreamingClient, MessageHistoryClient, InternalEventEmitter, } from './modules';
10
+ import { ClientError, ErrorCode } from './lib/ClientError';
11
+ import { CoreApiRestClient, InternalEventEmitter, MessageHistoryClient, PublicEventEmitter, StreamingClient, } from './modules';
11
12
  import { AnamEvent, } from './types';
12
13
  export default class AnamClient {
13
14
  constructor(sessionToken, personaConfig, options) {
@@ -19,8 +20,6 @@ export default class AnamClient {
19
20
  if (configError) {
20
21
  throw new Error(configError);
21
22
  }
22
- this.sessionToken = sessionToken;
23
- this.apiKey = options === null || options === void 0 ? void 0 : options.apiKey;
24
23
  this.personaConfig = personaConfig;
25
24
  this.clientOptions = options;
26
25
  this.publicEventEmitter = new PublicEventEmitter();
@@ -97,15 +96,14 @@ export default class AnamClient {
97
96
  }
98
97
  startSession(userProvidedAudioStream) {
99
98
  return __awaiter(this, void 0, void 0, function* () {
99
+ const config = this.personaConfig;
100
+ // build session options from client options
101
+ const sessionOptions = this.buildStartSessionOptionsForClient();
102
+ // start a new session
103
+ const response = yield this.apiClient.startSession(config, sessionOptions);
104
+ const { sessionId, clientConfig, engineHost, engineProtocol, signallingEndpoint, } = response;
105
+ const { heartbeatIntervalSeconds, maxWsReconnectionAttempts, iceServers } = clientConfig;
100
106
  try {
101
- const config = this.personaConfig;
102
- // build session options from client options
103
- const sessionOptions = this.buildStartSessionOptionsForClient();
104
- // start a new session
105
- const response = yield this.apiClient.startSession(config, sessionOptions);
106
- const { sessionId, clientConfig, engineHost, engineProtocol, signallingEndpoint, } = response;
107
- const { heartbeatIntervalSeconds, maxWsReconnectionAttempts, iceServers, } = clientConfig;
108
- // create a new streaming client
109
107
  this.streamingClient = new StreamingClient(sessionId, {
110
108
  engine: {
111
109
  baseUrl: `${engineProtocol}://${engineHost}`,
@@ -125,25 +123,22 @@ export default class AnamClient {
125
123
  userProvidedMediaStream: userProvidedAudioStream,
126
124
  },
127
125
  }, this.publicEventEmitter, this.internalEventEmitter);
128
- this.sessionId = sessionId;
129
- return sessionId;
130
126
  }
131
127
  catch (error) {
132
- throw new Error('Failed to start session');
128
+ throw new ClientError('Failed to initialize streaming client', ErrorCode.SERVER_ERROR, 500, { cause: error instanceof Error ? error.message : String(error) });
133
129
  }
130
+ this.sessionId = sessionId;
131
+ return sessionId;
134
132
  });
135
133
  }
136
134
  startSessionIfNeeded(userProvidedMediaStream) {
137
135
  return __awaiter(this, void 0, void 0, function* () {
138
136
  if (!this.sessionId || !this.streamingClient) {
139
- try {
140
- yield this.startSession(userProvidedMediaStream);
141
- }
142
- catch (error) {
143
- throw new Error('StreamToVideoAndAudioElements: Failed to start session');
144
- }
137
+ yield this.startSession(userProvidedMediaStream);
145
138
  if (!this.sessionId || !this.streamingClient) {
146
- throw new Error('StreamToVideoAndAudioElements: session Id or streaming client is not available after starting session');
139
+ throw new ClientError('Session ID or streaming client is not available after starting session', ErrorCode.SERVER_ERROR, 500, {
140
+ cause: 'Failed to initialize session properly',
141
+ });
147
142
  }
148
143
  }
149
144
  });
@@ -182,7 +177,17 @@ export default class AnamClient {
182
177
  }
183
178
  streamToVideoAndAudioElements(videoElementId, audioElementId, userProvidedMediaStream) {
184
179
  return __awaiter(this, void 0, void 0, function* () {
185
- yield this.startSessionIfNeeded(userProvidedMediaStream);
180
+ try {
181
+ yield this.startSessionIfNeeded(userProvidedMediaStream);
182
+ }
183
+ catch (error) {
184
+ if (error instanceof ClientError) {
185
+ throw error;
186
+ }
187
+ throw new ClientError('Failed to start session', ErrorCode.SERVER_ERROR, 500, {
188
+ cause: error instanceof Error ? error.message : String(error),
189
+ });
190
+ }
186
191
  if (this._isStreaming) {
187
192
  throw new Error('Already streaming');
188
193
  }
@@ -1 +1 @@
1
- {"version":3,"file":"AnamClient.js","sourceRoot":"","sources":["../../src/AnamClient.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"AnamClient.js","sourceRoot":"","sources":["../../src/AnamClient.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,16 @@
1
+ export declare enum ErrorCode {
2
+ USAGE_LIMIT_REACHED = "USAGE_LIMIT_REACHED",
3
+ VALIDATION_ERROR = "VALIDATION_ERROR",
4
+ AUTHENTICATION_ERROR = "AUTHENTICATION_ERROR",
5
+ SERVER_ERROR = "SERVER_ERROR",
6
+ MAX_CONCURRENT_SESSIONS_REACHED = "MAX_CONCURRENT_SESSIONS_REACHED",
7
+ SERVICE_BUSY = "SERVICE_BUSY",
8
+ NO_PLAN_FOUND = "NO_PLAN_FOUND"
9
+ }
10
+ export declare class ClientError extends Error {
11
+ code: ErrorCode;
12
+ statusCode: number;
13
+ details?: any;
14
+ constructor(message: string, code: ErrorCode, statusCode?: number, details?: any);
15
+ }
16
+ //# sourceMappingURL=ClientError.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ClientError.d.ts","sourceRoot":"","sources":["../../../src/lib/ClientError.ts"],"names":[],"mappings":"AAAA,oBAAY,SAAS;IACnB,mBAAmB,wBAAwB;IAC3C,gBAAgB,qBAAqB;IACrC,oBAAoB,yBAAyB;IAC7C,YAAY,iBAAiB;IAC7B,+BAA+B,oCAAoC;IACnE,YAAY,iBAAiB;IAC7B,aAAa,kBAAkB;CAChC;AAED,qBAAa,WAAY,SAAQ,KAAK;IACpC,IAAI,EAAE,SAAS,CAAC;IAChB,UAAU,EAAE,MAAM,CAAC;IACnB,OAAO,CAAC,EAAE,GAAG,CAAC;gBAGZ,OAAO,EAAE,MAAM,EACf,IAAI,EAAE,SAAS,EACf,UAAU,GAAE,MAAY,EACxB,OAAO,CAAC,EAAE,GAAG;CAUhB"}
@@ -0,0 +1,21 @@
1
+ export var ErrorCode;
2
+ (function (ErrorCode) {
3
+ ErrorCode["USAGE_LIMIT_REACHED"] = "USAGE_LIMIT_REACHED";
4
+ ErrorCode["VALIDATION_ERROR"] = "VALIDATION_ERROR";
5
+ ErrorCode["AUTHENTICATION_ERROR"] = "AUTHENTICATION_ERROR";
6
+ ErrorCode["SERVER_ERROR"] = "SERVER_ERROR";
7
+ ErrorCode["MAX_CONCURRENT_SESSIONS_REACHED"] = "MAX_CONCURRENT_SESSIONS_REACHED";
8
+ ErrorCode["SERVICE_BUSY"] = "SERVICE_BUSY";
9
+ ErrorCode["NO_PLAN_FOUND"] = "NO_PLAN_FOUND";
10
+ })(ErrorCode || (ErrorCode = {}));
11
+ export class ClientError extends Error {
12
+ constructor(message, code, statusCode = 500, details) {
13
+ super(message);
14
+ this.name = 'ClientError';
15
+ this.code = code;
16
+ this.statusCode = statusCode;
17
+ this.details = details;
18
+ Object.setPrototypeOf(this, ClientError.prototype);
19
+ }
20
+ }
21
+ //# sourceMappingURL=ClientError.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ClientError.js","sourceRoot":"","sources":["../../../src/lib/ClientError.ts"],"names":[],"mappings":"AAAA,MAAM,CAAN,IAAY,SAQX;AARD,WAAY,SAAS;IACnB,wDAA2C,CAAA;IAC3C,kDAAqC,CAAA;IACrC,0DAA6C,CAAA;IAC7C,0CAA6B,CAAA;IAC7B,gFAAmE,CAAA;IACnE,0CAA6B,CAAA;IAC7B,4CAA+B,CAAA;AACjC,CAAC,EARW,SAAS,KAAT,SAAS,QAQpB;AAED,MAAM,OAAO,WAAY,SAAQ,KAAK;IAKpC,YACE,OAAe,EACf,IAAe,EACf,aAAqB,GAAG,EACxB,OAAa;QAEb,KAAK,CAAC,OAAO,CAAC,CAAC;QACf,IAAI,CAAC,IAAI,GAAG,aAAa,CAAC;QAC1B,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QACjB,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC;QAC7B,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;QAEvB,MAAM,CAAC,cAAc,CAAC,IAAI,EAAE,WAAW,CAAC,SAAS,CAAC,CAAC;IACrD,CAAC;CACF"}
@@ -1,10 +1,10 @@
1
1
  import { CoreApiRestClientOptions, PersonaConfig, StartSessionResponse } from '../types';
2
2
  import { StartSessionOptions } from '../types/coreApi/StartSessionOptions';
3
3
  export declare class CoreApiRestClient {
4
- protected baseUrl: string;
5
- protected apiVersion: string;
6
- protected apiKey: string | null;
7
- protected sessionToken: string | null;
4
+ private baseUrl;
5
+ private apiVersion;
6
+ private apiKey;
7
+ private sessionToken;
8
8
  constructor(sessionToken?: string, apiKey?: string, options?: CoreApiRestClientOptions);
9
9
  startSession(personaConfig?: PersonaConfig, sessionOptions?: StartSessionOptions): Promise<StartSessionResponse>;
10
10
  unsafe_getSessionToken(personaConfig: PersonaConfig): Promise<string>;
@@ -1 +1 @@
1
- {"version":3,"file":"CoreApiRestClient.d.ts","sourceRoot":"","sources":["../../../src/modules/CoreApiRestClient.ts"],"names":[],"mappings":"AACA,OAAO,EACL,wBAAwB,EACxB,aAAa,EACb,oBAAoB,EACrB,MAAM,UAAU,CAAC;AAClB,OAAO,EAAE,mBAAmB,EAAE,MAAM,sCAAsC,CAAC;AAG3E,qBAAa,iBAAiB;IAC5B,SAAS,CAAC,OAAO,EAAE,MAAM,CAAC;IAC1B,SAAS,CAAC,UAAU,EAAE,MAAM,CAAC;IAC7B,SAAS,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IAChC,SAAS,CAAC,YAAY,EAAE,MAAM,GAAG,IAAI,CAAC;gBAGpC,YAAY,CAAC,EAAE,MAAM,EACrB,MAAM,CAAC,EAAE,MAAM,EACf,OAAO,CAAC,EAAE,wBAAwB;IAWvB,YAAY,CACvB,aAAa,CAAC,EAAE,aAAa,EAC7B,cAAc,CAAC,EAAE,mBAAmB,GACnC,OAAO,CAAC,oBAAoB,CAAC;IAyBnB,sBAAsB,CACjC,aAAa,EAAE,aAAa,GAC3B,OAAO,CAAC,MAAM,CAAC;IA6BlB,OAAO,CAAC,SAAS;CAGlB"}
1
+ {"version":3,"file":"CoreApiRestClient.d.ts","sourceRoot":"","sources":["../../../src/modules/CoreApiRestClient.ts"],"names":[],"mappings":"AAEA,OAAO,EACL,wBAAwB,EACxB,aAAa,EACb,oBAAoB,EACrB,MAAM,UAAU,CAAC;AAClB,OAAO,EAAE,mBAAmB,EAAE,MAAM,sCAAsC,CAAC;AAG3E,qBAAa,iBAAiB;IAC5B,OAAO,CAAC,OAAO,CAAS;IACxB,OAAO,CAAC,UAAU,CAAS;IAC3B,OAAO,CAAC,MAAM,CAAgB;IAC9B,OAAO,CAAC,YAAY,CAAgB;gBAGlC,YAAY,CAAC,EAAE,MAAM,EACrB,MAAM,CAAC,EAAE,MAAM,EACf,OAAO,CAAC,EAAE,wBAAwB;IAWvB,YAAY,CACvB,aAAa,CAAC,EAAE,aAAa,EAC7B,cAAc,CAAC,EAAE,mBAAmB,GACnC,OAAO,CAAC,oBAAoB,CAAC;IA4FnB,sBAAsB,CACjC,aAAa,EAAE,aAAa,GAC3B,OAAO,CAAC,MAAM,CAAC;IA6BlB,OAAO,CAAC,SAAS;CAGlB"}
@@ -7,6 +7,7 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
7
7
  step((generator = generator.apply(thisArg, _arguments || [])).next());
8
8
  });
9
9
  };
10
+ import { ClientError, ErrorCode } from '../lib/ClientError';
10
11
  import { DEFAULT_API_BASE_URL, DEFAULT_API_VERSION } from '../lib/constants';
11
12
  import { isCustomPersonaConfig } from '../types/PersonaConfig';
12
13
  export class CoreApiRestClient {
@@ -23,8 +24,9 @@ export class CoreApiRestClient {
23
24
  return __awaiter(this, void 0, void 0, function* () {
24
25
  if (!this.sessionToken) {
25
26
  if (!personaConfig) {
26
- throw new Error('Persona configuration must be provided when using apiKey');
27
+ throw new ClientError('Persona configuration must be provided when using apiKey', ErrorCode.VALIDATION_ERROR, 400);
27
28
  }
29
+ // TODO: why do we need to get the unsafe session token here?
28
30
  this.sessionToken = yield this.unsafe_getSessionToken(personaConfig);
29
31
  }
30
32
  try {
@@ -37,10 +39,31 @@ export class CoreApiRestClient {
37
39
  body: JSON.stringify({ personaConfig, sessionOptions }),
38
40
  });
39
41
  const data = yield response.json();
40
- return data;
42
+ switch (response.status) {
43
+ case 200:
44
+ case 201:
45
+ return data;
46
+ case 400:
47
+ throw new ClientError('Invalid request to start session', ErrorCode.VALIDATION_ERROR, 400, { cause: data.message });
48
+ case 401:
49
+ throw new ClientError('Authentication failed when starting session', ErrorCode.AUTHENTICATION_ERROR, 401, { cause: data.message });
50
+ case 402:
51
+ throw new ClientError('Please sign up for a plan to start a session', ErrorCode.NO_PLAN_FOUND, 402, { cause: data.message });
52
+ case 403:
53
+ throw new ClientError('Authentication failed when starting session', ErrorCode.AUTHENTICATION_ERROR, 403, { cause: data.message });
54
+ case 429:
55
+ throw new ClientError('Out of credits, please upgrade your plan', ErrorCode.USAGE_LIMIT_REACHED, 429, { cause: data.message });
56
+ case 503:
57
+ throw new ClientError('There are no available personas, please try again later', ErrorCode.SERVICE_BUSY, 503, { cause: data.message });
58
+ default:
59
+ throw new ClientError('Unknown error when starting session', ErrorCode.SERVER_ERROR, 500, { cause: data.message });
60
+ }
41
61
  }
42
62
  catch (error) {
43
- throw new Error('Failed to start session');
63
+ if (error instanceof ClientError) {
64
+ throw error;
65
+ }
66
+ throw new ClientError('Failed to start session', ErrorCode.SERVER_ERROR, 500, { cause: error instanceof Error ? error.message : String(error) });
44
67
  }
45
68
  });
46
69
  }
@@ -1 +1 @@
1
- {"version":3,"file":"CoreApiRestClient.js","sourceRoot":"","sources":["../../../src/modules/CoreApiRestClient.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"CoreApiRestClient.js","sourceRoot":"","sources":["../../../src/modules/CoreApiRestClient.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,6 @@
1
1
  export declare class EngineApiRestClient {
2
- protected baseUrl: string;
3
- protected sessionId: string;
2
+ private baseUrl;
3
+ private sessionId;
4
4
  constructor(baseUrl: string, sessionId: string);
5
5
  sendTalkCommand(content: string): Promise<void>;
6
6
  }
@@ -1 +1 @@
1
- {"version":3,"file":"EngineApiRestClient.d.ts","sourceRoot":"","sources":["../../../src/modules/EngineApiRestClient.ts"],"names":[],"mappings":"AAAA,qBAAa,mBAAmB;IAC9B,SAAS,CAAC,OAAO,EAAE,MAAM,CAAC;IAC1B,SAAS,CAAC,SAAS,EAAE,MAAM,CAAC;gBAEhB,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM;IAKjC,eAAe,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;CA0B7D"}
1
+ {"version":3,"file":"EngineApiRestClient.d.ts","sourceRoot":"","sources":["../../../src/modules/EngineApiRestClient.ts"],"names":[],"mappings":"AAAA,qBAAa,mBAAmB;IAC9B,OAAO,CAAC,OAAO,CAAS;IACxB,OAAO,CAAC,SAAS,CAAS;gBAEd,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM;IAKjC,eAAe,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;CA0B7D"}
package/dist/umd/anam.js CHANGED
@@ -1 +1 @@
1
- !function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t():"function"==typeof define&&define.amd?define([],t):"object"==typeof exports?exports.anam=t():e.anam=t()}(self,(()=>(()=>{"use strict";var e={816:function(e,t,n){var i=this&&this.__awaiter||function(e,t,n,i){return new(n||(n=Promise))((function(s,o){function r(e){try{l(i.next(e))}catch(e){o(e)}}function a(e){try{l(i.throw(e))}catch(e){o(e)}}function l(e){var t;e.done?s(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(r,a)}l((i=i.apply(e,t||[])).next())}))};Object.defineProperty(t,"__esModule",{value:!0});const s=n(958),o=n(170);t.default=class{constructor(e,t,n){this.inputAudioState={isMuted:!1},this.sessionId=null,this.streamingClient=null,this._isStreaming=!1;const i=this.validateClientConfig(e,t,n);if(i)throw new Error(i);this.sessionToken=e,this.apiKey=null==n?void 0:n.apiKey,this.personaConfig=t,this.clientOptions=n,this.publicEventEmitter=new s.PublicEventEmitter,this.internalEventEmitter=new s.InternalEventEmitter,this.apiClient=new s.CoreApiRestClient(e,null==n?void 0:n.apiKey,null==n?void 0:n.api),this.messageHistoryClient=new s.MessageHistoryClient(this.publicEventEmitter,this.internalEventEmitter)}decodeJwt(e){try{const t=e.split(".")[1];return JSON.parse(atob(t))}catch(e){throw new Error("Invalid session token format")}}validateClientConfig(e,t,n){var i;if(!e&&!(null==n?void 0:n.apiKey))return"Either sessionToken or apiKey must be provided";if((null==n?void 0:n.apiKey)&&e)return"Only one of sessionToken or apiKey should be used";if(e){const n=null===(i=this.decodeJwt(e).type)||void 0===i?void 0:i.toLowerCase();if("legacy"===n){if(!t||!("personaId"in t))return"Both session token and client are missing a persona configuration. Please provide a persona ID of a saved persona in the personaConfig parameter."}else if(("ephemeral"===n||"stateful"===n)&&t)return"This session token already contains a persona configuration. Please remove the personaConfig parameter."}else if(!t)return"Missing persona config. Persona configuration must be provided when using apiKey";if((null==n?void 0:n.voiceDetection)&&void 0!==n.voiceDetection.endOfSpeechSensitivity){if("number"!=typeof n.voiceDetection.endOfSpeechSensitivity)return"End of speech sensitivity must be a number";if(n.voiceDetection.endOfSpeechSensitivity<0||n.voiceDetection.endOfSpeechSensitivity>1)return"End of speech sensitivity must be between 0 and 1"}}buildStartSessionOptionsForClient(){var e;const t={};if((null===(e=this.clientOptions)||void 0===e?void 0:e.voiceDetection)&&(t.voiceDetection=this.clientOptions.voiceDetection),0!==Object.keys(t).length)return t}startSession(e){return i(this,void 0,void 0,(function*(){try{const t=this.personaConfig,n=this.buildStartSessionOptionsForClient(),i=yield this.apiClient.startSession(t,n),{sessionId:o,clientConfig:r,engineHost:a,engineProtocol:l,signallingEndpoint:c}=i,{heartbeatIntervalSeconds:d,maxWsReconnectionAttempts:u,iceServers:h}=r;return this.streamingClient=new s.StreamingClient(o,{engine:{baseUrl:`${l}://${a}`},signalling:{heartbeatIntervalSeconds:d,maxWsReconnectionAttempts:u,url:{baseUrl:a,protocol:l,signallingPath:c}},iceServers:h,inputAudio:{inputAudioState:this.inputAudioState,userProvidedMediaStream:e}},this.publicEventEmitter,this.internalEventEmitter),this.sessionId=o,o}catch(e){throw new Error("Failed to start session")}}))}startSessionIfNeeded(e){return i(this,void 0,void 0,(function*(){if(!this.sessionId||!this.streamingClient){try{yield this.startSession(e)}catch(e){throw new Error("StreamToVideoAndAudioElements: Failed to start session")}if(!this.sessionId||!this.streamingClient)throw new Error("StreamToVideoAndAudioElements: session Id or streaming client is not available after starting session")}}))}stream(e){return i(this,void 0,void 0,(function*(){if(yield this.startSessionIfNeeded(e),this._isStreaming)throw new Error("Already streaming");return this._isStreaming=!0,new Promise((e=>{var t;const n=[];let i=!1,s=!1;this.publicEventEmitter.addListener(o.AnamEvent.VIDEO_STREAM_STARTED,(t=>{n.push(t),i=!0,s&&e(n)})),this.publicEventEmitter.addListener(o.AnamEvent.AUDIO_STREAM_STARTED,(t=>{n.push(t),s=!0,i&&e(n)})),null===(t=this.streamingClient)||void 0===t||t.startConnection()}))}))}streamToVideoAndAudioElements(e,t,n){return i(this,void 0,void 0,(function*(){if(yield this.startSessionIfNeeded(n),this._isStreaming)throw new Error("Already streaming");if(this._isStreaming=!0,!this.streamingClient)throw new Error("Failed to stream: streaming client is not available");this.streamingClient.setMediaStreamTargetsById(e,t),this.streamingClient.startConnection()}))}talk(e){return i(this,void 0,void 0,(function*(){if(!this.streamingClient)throw new Error("Failed to send talk command: session is not started. Have you called startSession?");if(!this._isStreaming)throw new Error("Failed to send talk command: not currently streaming. Have you called stream?");yield this.streamingClient.sendTalkCommand(e)}))}sendDataMessage(e){if(!this.streamingClient)throw new Error("Failed to send message: session is not started.");this.streamingClient.sendDataMessage(e)}stopStreaming(){return i(this,void 0,void 0,(function*(){this.streamingClient&&(this.streamingClient.stopConnection(),this.streamingClient=null,this.sessionId=null,this._isStreaming=!1)}))}isStreaming(){return this._isStreaming}setPersonaConfig(e){this.personaConfig=e}getPersonaConfig(){return this.personaConfig}getInputAudioState(){return this.streamingClient&&(this.inputAudioState=this.streamingClient.getInputAudioState()),this.inputAudioState}muteInputAudio(){return this.streamingClient?this.inputAudioState=this.streamingClient.muteInputAudio():this.inputAudioState=Object.assign(Object.assign({},this.inputAudioState),{isMuted:!0}),this.inputAudioState}unmuteInputAudio(){return this.streamingClient?this.inputAudioState=this.streamingClient.unmuteInputAudio():this.inputAudioState=Object.assign(Object.assign({},this.inputAudioState),{isMuted:!1}),this.inputAudioState}createTalkMessageStream(e){if(!this.streamingClient)throw new Error("Failed to start talk message stream: session is not started.");if(e&&""===e.trim())throw new Error("Failed to start talk message stream: correlationId is empty");return this.streamingClient.startTalkMessageStream(e)}addListener(e,t){this.publicEventEmitter.addListener(e,t)}removeListener(e,t){this.publicEventEmitter.removeListener(e,t)}getActiveSessionId(){return this.sessionId}}},440:function(e,t,n){var i=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.unsafe_createClientWithApiKey=t.createClient=void 0;const s=i(n(816));t.createClient=(e,t,n)=>new s.default(e,t,n),t.unsafe_createClientWithApiKey=(e,t,n)=>new s.default(void 0,t,Object.assign(Object.assign({},n),{apiKey:e}))},985:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.PUBLIC_MESSAGE_ON_WEBRTC_FAILURE=t.PUBLIC_MESSAGE_ON_SIGNALLING_CLIENT_CONNECTION_FAILURE=t.DEFAULT_API_VERSION=t.DEFAULT_API_BASE_URL=t.DEFAULT_HEADERS=void 0,t.DEFAULT_HEADERS={"Content-Type":"application/json"},t.DEFAULT_API_BASE_URL="https://api.anam.ai",t.DEFAULT_API_VERSION="/v1",t.PUBLIC_MESSAGE_ON_SIGNALLING_CLIENT_CONNECTION_FAILURE="There was a problem connecting to our servers. Please try again.",t.PUBLIC_MESSAGE_ON_WEBRTC_FAILURE="There was an issue connecting to our servers. Please try again."},18:function(e,t,n){var i=this&&this.__awaiter||function(e,t,n,i){return new(n||(n=Promise))((function(s,o){function r(e){try{l(i.next(e))}catch(e){o(e)}}function a(e){try{l(i.throw(e))}catch(e){o(e)}}function l(e){var t;e.done?s(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(r,a)}l((i=i.apply(e,t||[])).next())}))};Object.defineProperty(t,"__esModule",{value:!0}),t.CoreApiRestClient=void 0;const s=n(985),o=n(672);t.CoreApiRestClient=class{constructor(e,t,n){if(!e&&!t)throw new Error("Either sessionToken or apiKey must be provided");this.sessionToken=e||null,this.apiKey=t||null,this.baseUrl=(null==n?void 0:n.baseUrl)||s.DEFAULT_API_BASE_URL,this.apiVersion=(null==n?void 0:n.apiVersion)||s.DEFAULT_API_VERSION}startSession(e,t){return i(this,void 0,void 0,(function*(){if(!this.sessionToken){if(!e)throw new Error("Persona configuration must be provided when using apiKey");this.sessionToken=yield this.unsafe_getSessionToken(e)}try{const n=yield fetch(`${this.getApiUrl()}/engine/session`,{method:"POST",headers:{"Content-Type":"application/json",Authorization:`Bearer ${this.sessionToken}`},body:JSON.stringify({personaConfig:e,sessionOptions:t})});return yield n.json()}catch(e){throw new Error("Failed to start session")}}))}unsafe_getSessionToken(e){return i(this,void 0,void 0,(function*(){if(console.warn("Using unsecure method. This method should not be used in production."),!this.apiKey)throw new Error("No apiKey provided");let t={clientLabel:"js-sdk-api-key"};(0,o.isCustomPersonaConfig)(e)&&(t=Object.assign(Object.assign({},t),{personaConfig:e}));try{const e=yield fetch(`${this.getApiUrl()}/auth/session-token`,{method:"POST",headers:{"Content-Type":"application/json",Authorization:`Bearer ${this.apiKey}`},body:JSON.stringify(t)});return(yield e.json()).sessionToken}catch(e){throw new Error("Failed to get session token")}}))}getApiUrl(){return`${this.baseUrl}${this.apiVersion}`}}},529:function(e,t){var n=this&&this.__awaiter||function(e,t,n,i){return new(n||(n=Promise))((function(s,o){function r(e){try{l(i.next(e))}catch(e){o(e)}}function a(e){try{l(i.throw(e))}catch(e){o(e)}}function l(e){var t;e.done?s(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(r,a)}l((i=i.apply(e,t||[])).next())}))};Object.defineProperty(t,"__esModule",{value:!0}),t.EngineApiRestClient=void 0,t.EngineApiRestClient=class{constructor(e,t){this.baseUrl=e,this.sessionId=t}sendTalkCommand(e){return n(this,void 0,void 0,(function*(){try{const t=yield fetch(`${this.baseUrl}/talk?session_id=${this.sessionId}`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({content:e})});if(!t.ok)throw new Error(`Failed to send talk command: ${t.status} ${t.statusText}`)}catch(e){throw console.error(e),new Error("EngineApiRestClient - sendTalkCommand: Failed to send talk command")}}))}}},259:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.InternalEventEmitter=void 0,t.InternalEventEmitter=class{constructor(){this.listeners={}}addListener(e,t){this.listeners[e]||(this.listeners[e]=new Set),this.listeners[e].add(t)}removeListener(e,t){this.listeners[e]&&this.listeners[e].delete(t)}emit(e,...t){this.listeners[e]&&this.listeners[e].forEach((e=>{e(...t)}))}}},462:(e,t,n)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.MessageHistoryClient=void 0;const i=n(170);t.MessageHistoryClient=class{constructor(e,t){this.messages=[],this.publicEventEmitter=e,this.internalEventEmitter=t,this.internalEventEmitter.addListener(i.InternalEvent.WEBRTC_CHAT_MESSAGE_RECEIVED,this.processWebRtcTextMessageEvent.bind(this))}webRtcTextMessageEventToMessageStreamEvent(e){return{id:`${e.role}::${e.message_id}`,content:e.content,role:e.role,endOfSpeech:e.end_of_speech,interrupted:e.interrupted}}processUserMessage(e){const t={id:e.id,content:e.content,role:e.role};this.messages.push(t)}processPersonaMessage(e){const t={id:e.id,content:e.content,role:e.role,interrupted:e.interrupted},n=this.messages.findIndex((e=>e.id===t.id));if(-1!==n){const e=this.messages[n];this.messages[n]=Object.assign(Object.assign({},e),{content:e.content+t.content,interrupted:e.interrupted||t.interrupted})}else this.messages.push(t)}processWebRtcTextMessageEvent(e){const t=this.webRtcTextMessageEventToMessageStreamEvent(e);switch(this.publicEventEmitter.emit(i.AnamEvent.MESSAGE_STREAM_EVENT_RECEIVED,t),t.role){case i.MessageRole.USER:this.processUserMessage(t);break;case i.MessageRole.PERSONA:this.processPersonaMessage(t)}t.endOfSpeech&&this.publicEventEmitter.emit(i.AnamEvent.MESSAGE_HISTORY_UPDATED,this.messages)}}},995:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.PublicEventEmitter=void 0,t.PublicEventEmitter=class{constructor(){this.listeners={}}addListener(e,t){this.listeners[e]||(this.listeners[e]=new Set),this.listeners[e].add(t)}removeListener(e,t){this.listeners[e]&&this.listeners[e].delete(t)}emit(e,...t){this.listeners[e]&&this.listeners[e].forEach((e=>{e(...t)}))}}},279:function(e,t,n){var i=this&&this.__awaiter||function(e,t,n,i){return new(n||(n=Promise))((function(s,o){function r(e){try{l(i.next(e))}catch(e){o(e)}}function a(e){try{l(i.throw(e))}catch(e){o(e)}}function l(e){var t;e.done?s(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(r,a)}l((i=i.apply(e,t||[])).next())}))};Object.defineProperty(t,"__esModule",{value:!0}),t.SignallingClient=void 0;const s=n(985),o=n(170);t.SignallingClient=class{constructor(e,t,n,i){var s;if(this.stopSignal=!1,this.sendingBuffer=[],this.wsConnectionAttempts=0,this.socket=null,this.heartBeatIntervalRef=null,this.publicEventEmitter=n,this.internalEventEmitter=i,!e)throw new Error("Signalling Client: sessionId is required");this.sessionId=e;const{heartbeatIntervalSeconds:o,maxWsReconnectionAttempts:r,url:a}=t;if(this.heartbeatIntervalSeconds=o||5,this.maxWsReconnectionAttempts=r||5,!a.baseUrl)throw new Error("Signalling Client: baseUrl is required");const l=`${a.protocol||"https"}://${a.baseUrl}`;this.url=new URL(l),this.url.protocol="http"===a.protocol?"ws:":"wss:",a.port&&(this.url.port=a.port),this.url.pathname=null!==(s=a.signallingPath)&&void 0!==s?s:"/ws",this.url.searchParams.append("session_id",e)}stop(){this.stopSignal=!0,this.closeSocket()}connect(){return this.socket=new WebSocket(this.url.href),this.socket.onopen=this.onOpen.bind(this),this.socket.onclose=this.onClose.bind(this),this.socket.onerror=this.onError.bind(this),this.socket}sendOffer(e){return i(this,void 0,void 0,(function*(){const t={connectionDescription:e,userUid:this.sessionId},n={actionType:o.SignalMessageAction.OFFER,sessionId:this.sessionId,payload:t};this.sendSignalMessage(n)}))}sendIceCandidate(e){return i(this,void 0,void 0,(function*(){const t={actionType:o.SignalMessageAction.ICE_CANDIDATE,sessionId:this.sessionId,payload:e.toJSON()};this.sendSignalMessage(t)}))}sendSignalMessage(e){var t;if((null===(t=this.socket)||void 0===t?void 0:t.readyState)===WebSocket.OPEN)try{this.socket.send(JSON.stringify(e))}catch(e){console.error("SignallingClient - sendSignalMessage: error sending message",e)}else this.sendingBuffer.push(e)}sendTalkMessage(e){return i(this,void 0,void 0,(function*(){const t={actionType:o.SignalMessageAction.TALK_STREAM_INPUT,sessionId:this.sessionId,payload:e};this.sendSignalMessage(t)}))}closeSocket(){this.socket&&(this.socket.close(),this.socket=null),this.heartBeatIntervalRef&&(clearInterval(this.heartBeatIntervalRef),this.heartBeatIntervalRef=null)}onOpen(){return i(this,void 0,void 0,(function*(){if(!this.socket)throw new Error("SignallingClient - onOpen: socket is null");try{this.wsConnectionAttempts=0,this.flushSendingBuffer(),this.socket.onmessage=this.onMessage.bind(this),this.startSendingHeartBeats(),this.internalEventEmitter.emit(o.InternalEvent.WEB_SOCKET_OPEN)}catch(e){console.error("SignallingClient - onOpen: error in onOpen",e),this.publicEventEmitter.emit(o.AnamEvent.CONNECTION_CLOSED,s.PUBLIC_MESSAGE_ON_SIGNALLING_CLIENT_CONNECTION_FAILURE)}}))}onClose(){return i(this,void 0,void 0,(function*(){this.wsConnectionAttempts+=1,this.stopSignal||(this.wsConnectionAttempts<=this.maxWsReconnectionAttempts?(this.socket=null,setTimeout((()=>{this.connect()}),100*this.wsConnectionAttempts)):(this.heartBeatIntervalRef&&(clearInterval(this.heartBeatIntervalRef),this.heartBeatIntervalRef=null),this.publicEventEmitter.emit(o.AnamEvent.CONNECTION_CLOSED,s.PUBLIC_MESSAGE_ON_SIGNALLING_CLIENT_CONNECTION_FAILURE)))}))}onError(e){this.stopSignal||console.error("SignallingClient - onError: ",e)}flushSendingBuffer(){const e=[];this.sendingBuffer.length>0&&this.sendingBuffer.forEach((t=>{var n;(null===(n=this.socket)||void 0===n?void 0:n.readyState)===WebSocket.OPEN?this.socket.send(JSON.stringify(t)):e.push(t)})),this.sendingBuffer=e}onMessage(e){return i(this,void 0,void 0,(function*(){const t=JSON.parse(e.data);this.internalEventEmitter.emit(o.InternalEvent.SIGNAL_MESSAGE_RECEIVED,t)}))}startSendingHeartBeats(){if(!this.socket)throw new Error("SignallingClient - startSendingHeartBeats: socket is null");this.heartBeatIntervalRef&&console.warn("SignallingClient - startSendingHeartBeats: heartbeat interval already set");const e=1e3*this.heartbeatIntervalSeconds,t={actionType:o.SignalMessageAction.HEARTBEAT,sessionId:this.sessionId,payload:""},n=JSON.stringify(t);this.heartBeatIntervalRef=setInterval((()=>{var e;this.stopSignal||(null===(e=this.socket)||void 0===e?void 0:e.readyState)===WebSocket.OPEN&&this.socket.send(n)}),e)}}},577:function(e,t,n){var i=this&&this.__awaiter||function(e,t,n,i){return new(n||(n=Promise))((function(s,o){function r(e){try{l(i.next(e))}catch(e){o(e)}}function a(e){try{l(i.throw(e))}catch(e){o(e)}}function l(e){var t;e.done?s(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(r,a)}l((i=i.apply(e,t||[])).next())}))};Object.defineProperty(t,"__esModule",{value:!0}),t.StreamingClient=void 0;const s=n(985),o=n(170),r=n(958),a=n(711);t.StreamingClient=class{constructor(e,t,n,i){this.peerConnection=null,this.connectionReceivedAnswer=!1,this.remoteIceCandidateBuffer=[],this.inputAudioStream=null,this.dataChannel=null,this.videoElement=null,this.videoStream=null,this.audioElement=null,this.audioStream=null,this.inputAudioState={isMuted:!1},this.publicEventEmitter=n,this.internalEventEmitter=i;const{inputAudio:s}=t;this.inputAudioState=s.inputAudioState,t.inputAudio.userProvidedMediaStream&&(this.inputAudioStream=t.inputAudio.userProvidedMediaStream),this.internalEventEmitter.addListener(o.InternalEvent.WEB_SOCKET_OPEN,this.onSignallingClientConnected.bind(this)),this.internalEventEmitter.addListener(o.InternalEvent.SIGNAL_MESSAGE_RECEIVED,this.onSignalMessage.bind(this)),this.iceServers=t.iceServers,this.signallingClient=new r.SignallingClient(e,t.signalling,this.publicEventEmitter,this.internalEventEmitter),this.engineApiRestClient=new r.EngineApiRestClient(t.engine.baseUrl,e)}onInputAudioStateChange(e,t){e.isMuted!==t.isMuted&&(t.isMuted?this.muteAllAudioTracks():this.unmuteAllAudioTracks())}muteAllAudioTracks(){var e;null===(e=this.inputAudioStream)||void 0===e||e.getAudioTracks().forEach((e=>{e.enabled=!1}))}unmuteAllAudioTracks(){var e;null===(e=this.inputAudioStream)||void 0===e||e.getAudioTracks().forEach((e=>{e.enabled=!0}))}muteInputAudio(){const e=this.inputAudioState,t=Object.assign(Object.assign({},this.inputAudioState),{isMuted:!0});return this.inputAudioState=t,this.onInputAudioStateChange(e,t),this.inputAudioState}unmuteInputAudio(){const e=this.inputAudioState,t=Object.assign(Object.assign({},this.inputAudioState),{isMuted:!1});return this.inputAudioState=t,this.onInputAudioStateChange(e,t),this.inputAudioState}getInputAudioState(){return this.inputAudioState}getPeerConnection(){return this.peerConnection}getInputAudioStream(){return this.inputAudioStream}getVideoStream(){return this.videoStream}getAudioStream(){return this.audioStream}sendDataMessage(e){this.dataChannel&&"open"===this.dataChannel.readyState&&this.dataChannel.send(e)}setMediaStreamTargetsById(e,t){if(e){const t=document.getElementById(e);if(!t)throw new Error(`StreamingClient: video element with id ${e} not found`);this.videoElement=t}if(t){const e=document.getElementById(t);if(!e)throw new Error(`StreamingClient: audio element with id ${t} not found`);this.audioElement=e}}startConnection(){try{if(this.peerConnection)return void console.error("StreamingClient - startConnection: peer connection already exists");this.signallingClient.connect()}catch(e){this.handleWebrtcFailure(e)}}stopConnection(){this.shutdown()}sendTalkCommand(e){return i(this,void 0,void 0,(function*(){if(!this.peerConnection)throw new Error("StreamingClient - sendTalkCommand: peer connection is null");yield this.engineApiRestClient.sendTalkCommand(e)}))}startTalkMessageStream(e){return e||(e=Math.random().toString(36).substring(2,15)),new a.TalkMessageStream(e,this.internalEventEmitter,this.signallingClient)}initPeerConnection(){return i(this,void 0,void 0,(function*(){this.peerConnection=new RTCPeerConnection({iceServers:this.iceServers}),this.peerConnection.onicecandidate=this.onIceCandidate.bind(this),this.peerConnection.oniceconnectionstatechange=this.onIceConnectionStateChange.bind(this),this.peerConnection.onconnectionstatechange=this.onConnectionStateChange.bind(this),this.peerConnection.addEventListener("track",this.onTrackEventHandler.bind(this)),yield this.setupDataChannels(),this.peerConnection.addTransceiver("video",{direction:"recvonly"}),this.peerConnection.addTransceiver("audio",{direction:"sendrecv"})}))}onSignalMessage(e){return i(this,void 0,void 0,(function*(){if(this.peerConnection)switch(e.actionType){case o.SignalMessageAction.ANSWER:const t=e.payload;yield this.peerConnection.setRemoteDescription(t),this.connectionReceivedAnswer=!0,this.flushRemoteIceCandidateBuffer();break;case o.SignalMessageAction.ICE_CANDIDATE:const n=e.payload,i=new RTCIceCandidate(n);this.connectionReceivedAnswer?yield this.peerConnection.addIceCandidate(i):this.remoteIceCandidateBuffer.push(i);break;case o.SignalMessageAction.END_SESSION:const s=e.payload;this.publicEventEmitter.emit(o.AnamEvent.CONNECTION_CLOSED,s),this.shutdown();break;case o.SignalMessageAction.WARNING:const r=e.payload;console.warn("Warning received from server: "+r);break;case o.SignalMessageAction.TALK_STREAM_INTERRUPTED:const a=e.payload;this.publicEventEmitter.emit(o.AnamEvent.TALK_STREAM_INTERRUPTED,a.correlationId);break;default:console.error("StreamingClient - onSignalMessage: unknown signal message action type",e)}else console.error("StreamingClient - onSignalMessage: peerConnection is not initialized")}))}onSignallingClientConnected(){return i(this,void 0,void 0,(function*(){if(!this.peerConnection)try{yield this.initPeerConnectionAndSendOffer()}catch(e){console.error("StreamingClient - onSignallingClientConnected: Error initializing peer connection",e),this.handleWebrtcFailure(e)}}))}flushRemoteIceCandidateBuffer(){this.remoteIceCandidateBuffer.forEach((e=>{var t;null===(t=this.peerConnection)||void 0===t||t.addIceCandidate(e)})),this.remoteIceCandidateBuffer=[]}onIceCandidate(e){e.candidate&&this.signallingClient.sendIceCandidate(e.candidate)}onIceConnectionStateChange(){var e,t;"connected"!==(null===(e=this.peerConnection)||void 0===e?void 0:e.iceConnectionState)&&"completed"!==(null===(t=this.peerConnection)||void 0===t?void 0:t.iceConnectionState)||this.publicEventEmitter.emit(o.AnamEvent.CONNECTION_ESTABLISHED)}onConnectionStateChange(){var e;"closed"===(null===(e=this.peerConnection)||void 0===e?void 0:e.connectionState)&&(console.error("StreamingClient - onConnectionStateChange: Connection closed"),this.handleWebrtcFailure("The connection to our servers was lost. Please try again."))}handleWebrtcFailure(e){console.error("StreamingClient - handleWebrtcFailure: ",e);try{this.stopConnection()}catch(e){console.error("StreamingClient - handleWebrtcFailure: error stopping connection",e)}this.publicEventEmitter.emit(o.AnamEvent.CONNECTION_CLOSED,s.PUBLIC_MESSAGE_ON_WEBRTC_FAILURE)}onTrackEventHandler(e){if("video"===e.track.kind){if(this.videoStream=e.streams[0],this.publicEventEmitter.emit(o.AnamEvent.VIDEO_STREAM_STARTED,this.videoStream),this.videoElement){this.videoElement.srcObject=this.videoStream;const e=this.videoElement.requestVideoFrameCallback((()=>{var t;null===(t=this.videoElement)||void 0===t||t.cancelVideoFrameCallback(e),this.publicEventEmitter.emit(o.AnamEvent.VIDEO_PLAY_STARTED)}))}}else"audio"===e.track.kind&&(this.audioStream=e.streams[0],this.publicEventEmitter.emit(o.AnamEvent.AUDIO_STREAM_STARTED,this.audioStream),this.audioElement&&(this.audioElement.srcObject=this.audioStream))}setupDataChannels(){return i(this,void 0,void 0,(function*(){if(!this.peerConnection)return void console.error("StreamingClient - setupDataChannels: peer connection is not initialized");if(this.inputAudioStream){if(!this.inputAudioStream.getAudioTracks().length)throw new Error("StreamingClient - setupDataChannels: user provided stream does not have audio tracks")}else this.inputAudioStream=yield navigator.mediaDevices.getUserMedia({audio:{echoCancellation:!0}});this.inputAudioState.isMuted&&this.muteAllAudioTracks();const e=this.inputAudioStream.getAudioTracks()[0];this.peerConnection.addTrack(e,this.inputAudioStream),this.publicEventEmitter.emit(o.AnamEvent.INPUT_AUDIO_STREAM_STARTED,this.inputAudioStream);const t=this.peerConnection.createDataChannel("chat",{ordered:!0});t.onopen=()=>{this.dataChannel=null!=t?t:null},t.onclose=()=>{},t.onmessage=e=>{const t=JSON.parse(e.data);this.internalEventEmitter.emit(o.InternalEvent.WEBRTC_CHAT_MESSAGE_RECEIVED,t)}}))}initPeerConnectionAndSendOffer(){return i(this,void 0,void 0,(function*(){if(yield this.initPeerConnection(),!this.peerConnection)return void console.error("StreamingClient - initPeerConnectionAndSendOffer: peer connection is not initialized");const e=yield this.peerConnection.createOffer();if(yield this.peerConnection.setLocalDescription(e),!this.peerConnection.localDescription)throw new Error("StreamingClient - initPeerConnectionAndSendOffer: local description is null");yield this.signallingClient.sendOffer(this.peerConnection.localDescription)}))}shutdown(){try{this.inputAudioStream&&this.inputAudioStream.getTracks().forEach((e=>{e.stop()})),this.inputAudioStream=null}catch(e){console.error("StreamingClient - shutdown: error stopping input audio stream",e)}try{this.signallingClient.stop()}catch(e){console.error("StreamingClient - shutdown: error stopping signallilng",e)}try{this.peerConnection&&"closed"!==this.peerConnection.connectionState&&(this.peerConnection.onconnectionstatechange=null,this.peerConnection.close(),this.peerConnection=null)}catch(e){console.error("StreamingClient - shutdown: error closing peer connection",e)}}}},958:(e,t,n)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.StreamingClient=t.PublicEventEmitter=t.MessageHistoryClient=t.InternalEventEmitter=t.EngineApiRestClient=t.CoreApiRestClient=t.SignallingClient=void 0;var i=n(279);Object.defineProperty(t,"SignallingClient",{enumerable:!0,get:function(){return i.SignallingClient}});var s=n(18);Object.defineProperty(t,"CoreApiRestClient",{enumerable:!0,get:function(){return s.CoreApiRestClient}});var o=n(529);Object.defineProperty(t,"EngineApiRestClient",{enumerable:!0,get:function(){return o.EngineApiRestClient}});var r=n(259);Object.defineProperty(t,"InternalEventEmitter",{enumerable:!0,get:function(){return r.InternalEventEmitter}});var a=n(462);Object.defineProperty(t,"MessageHistoryClient",{enumerable:!0,get:function(){return a.MessageHistoryClient}});var l=n(995);Object.defineProperty(t,"PublicEventEmitter",{enumerable:!0,get:function(){return l.PublicEventEmitter}});var c=n(577);Object.defineProperty(t,"StreamingClient",{enumerable:!0,get:function(){return c.StreamingClient}})},672:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.isCustomPersonaConfig=t.isSavedPersonaConfig=void 0,t.isSavedPersonaConfig=function(e){return"personaId"in e},t.isCustomPersonaConfig=function(e){return"brainType"in e}},711:function(e,t,n){var i=this&&this.__awaiter||function(e,t,n,i){return new(n||(n=Promise))((function(s,o){function r(e){try{l(i.next(e))}catch(e){o(e)}}function a(e){try{l(i.throw(e))}catch(e){o(e)}}function l(e){var t;e.done?s(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(r,a)}l((i=i.apply(e,t||[])).next())}))};Object.defineProperty(t,"__esModule",{value:!0}),t.TalkMessageStream=void 0;const s=n(170),o=n(322);t.TalkMessageStream=class{constructor(e,t,n){this.state=o.TalkMessageStreamState.UNSTARTED,this.correlationId=e,this.internalEventEmitter=t,this.signallingClient=n,this.internalEventEmitter.addListener(s.InternalEvent.SIGNAL_MESSAGE_RECEIVED,this.onSignalMessage.bind(this))}onDeactivate(){this.internalEventEmitter.removeListener(s.InternalEvent.SIGNAL_MESSAGE_RECEIVED,this.onSignalMessage.bind(this))}onSignalMessage(e){return i(this,void 0,void 0,(function*(){e.actionType===s.SignalMessageAction.TALK_STREAM_INTERRUPTED&&e.payload.correlationId===this.correlationId&&(this.state=o.TalkMessageStreamState.INTERRUPTED,this.onDeactivate())}))}endMessage(){return i(this,void 0,void 0,(function*(){if(this.state===o.TalkMessageStreamState.ENDED)return void console.warn("Talk stream is already ended via end of speech. No need to call endMessage.");if(this.state!==o.TalkMessageStreamState.STREAMING)return void console.warn("Talk stream is not active state: "+this.state);const e={content:"",startOfSpeech:!1,endOfSpeech:!0,correlationId:this.correlationId};yield this.signallingClient.sendTalkMessage(e),this.state=o.TalkMessageStreamState.ENDED,this.onDeactivate()}))}streamMessageChunk(e,t){return i(this,void 0,void 0,(function*(){if(this.state!==o.TalkMessageStreamState.STREAMING&&this.state!==o.TalkMessageStreamState.UNSTARTED)throw new Error("Talk stream is not in an active state: "+this.state);const n={content:e,startOfSpeech:this.state===o.TalkMessageStreamState.UNSTARTED,endOfSpeech:t,correlationId:this.correlationId};this.state=t?o.TalkMessageStreamState.ENDED:o.TalkMessageStreamState.STREAMING,this.state===o.TalkMessageStreamState.ENDED&&this.onDeactivate(),yield this.signallingClient.sendTalkMessage(n)}))}getCorrelationId(){return this.correlationId}isActive(){return this.state===o.TalkMessageStreamState.STREAMING||this.state===o.TalkMessageStreamState.UNSTARTED}getState(){return this.state}}},322:(e,t)=>{var n;Object.defineProperty(t,"__esModule",{value:!0}),t.TalkMessageStreamState=void 0,function(e){e[e.UNSTARTED=0]="UNSTARTED",e[e.STREAMING=1]="STREAMING",e[e.INTERRUPTED=2]="INTERRUPTED",e[e.ENDED=3]="ENDED"}(n||(t.TalkMessageStreamState=n={}))},878:(e,t,n)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.InternalEvent=t.AnamEvent=void 0;var i=n(21);Object.defineProperty(t,"AnamEvent",{enumerable:!0,get:function(){return i.AnamEvent}});var s=n(645);Object.defineProperty(t,"InternalEvent",{enumerable:!0,get:function(){return s.InternalEvent}})},645:(e,t)=>{var n;Object.defineProperty(t,"__esModule",{value:!0}),t.InternalEvent=void 0,function(e){e.WEB_SOCKET_OPEN="WEB_SOCKET_OPEN",e.SIGNAL_MESSAGE_RECEIVED="SIGNAL_MESSAGE_RECEIVED",e.WEBRTC_CHAT_MESSAGE_RECEIVED="WEBRTC_CHAT_MESSAGE_RECEIVED"}(n||(t.InternalEvent=n={}))},21:(e,t)=>{var n;Object.defineProperty(t,"__esModule",{value:!0}),t.AnamEvent=void 0,function(e){e.MESSAGE_HISTORY_UPDATED="MESSAGE_HISTORY_UPDATED",e.MESSAGE_STREAM_EVENT_RECEIVED="MESSAGE_STREAM_EVENT_RECEIVED",e.CONNECTION_ESTABLISHED="CONNECTION_ESTABLISHED",e.CONNECTION_CLOSED="CONNECTION_CLOSED",e.INPUT_AUDIO_STREAM_STARTED="INPUT_AUDIO_STREAM_STARTED",e.VIDEO_STREAM_STARTED="VIDEO_STREAM_STARTED",e.VIDEO_PLAY_STARTED="VIDEO_PLAY_STARTED",e.AUDIO_STREAM_STARTED="AUDIO_STREAM_STARTED",e.TALK_STREAM_INTERRUPTED="TALK_STREAM_INTERRUPTED"}(n||(t.AnamEvent=n={}))},170:(e,t,n)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.InternalEvent=t.AnamEvent=t.MessageRole=t.SignalMessageAction=void 0;var i=n(295);Object.defineProperty(t,"SignalMessageAction",{enumerable:!0,get:function(){return i.SignalMessageAction}});var s=n(822);Object.defineProperty(t,"MessageRole",{enumerable:!0,get:function(){return s.MessageRole}});var o=n(878);Object.defineProperty(t,"AnamEvent",{enumerable:!0,get:function(){return o.AnamEvent}});var r=n(878);Object.defineProperty(t,"InternalEvent",{enumerable:!0,get:function(){return r.InternalEvent}})},273:(e,t)=>{var n;Object.defineProperty(t,"__esModule",{value:!0}),t.MessageRole=void 0,function(e){e.USER="user",e.PERSONA="persona"}(n||(t.MessageRole=n={}))},822:(e,t,n)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.MessageRole=void 0;var i=n(273);Object.defineProperty(t,"MessageRole",{enumerable:!0,get:function(){return i.MessageRole}})},656:(e,t)=>{var n;Object.defineProperty(t,"__esModule",{value:!0}),t.SignalMessageAction=void 0,function(e){e.OFFER="offer",e.ANSWER="answer",e.ICE_CANDIDATE="icecandidate",e.END_SESSION="endsession",e.HEARTBEAT="heartbeat",e.WARNING="warning",e.TALK_STREAM_INTERRUPTED="talkinputstreaminterrupted",e.TALK_STREAM_INPUT="talkstream"}(n||(t.SignalMessageAction=n={}))},295:(e,t,n)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.SignalMessageAction=void 0;var i=n(656);Object.defineProperty(t,"SignalMessageAction",{enumerable:!0,get:function(){return i.SignalMessageAction}})}},t={};return function n(i){var s=t[i];if(void 0!==s)return s.exports;var o=t[i]={exports:{}};return e[i].call(o.exports,o,o.exports,n),o.exports}(440)})()));
1
+ !function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t():"function"==typeof define&&define.amd?define([],t):"object"==typeof exports?exports.anam=t():e.anam=t()}(self,(()=>(()=>{"use strict";var e={816:function(e,t,n){var i=this&&this.__awaiter||function(e,t,n,i){return new(n||(n=Promise))((function(s,r){function o(e){try{l(i.next(e))}catch(e){r(e)}}function a(e){try{l(i.throw(e))}catch(e){r(e)}}function l(e){var t;e.done?s(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(o,a)}l((i=i.apply(e,t||[])).next())}))};Object.defineProperty(t,"__esModule",{value:!0});const s=n(71),r=n(958),o=n(170);t.default=class{constructor(e,t,n){this.inputAudioState={isMuted:!1},this.sessionId=null,this.streamingClient=null,this._isStreaming=!1;const i=this.validateClientConfig(e,t,n);if(i)throw new Error(i);this.personaConfig=t,this.clientOptions=n,this.publicEventEmitter=new r.PublicEventEmitter,this.internalEventEmitter=new r.InternalEventEmitter,this.apiClient=new r.CoreApiRestClient(e,null==n?void 0:n.apiKey,null==n?void 0:n.api),this.messageHistoryClient=new r.MessageHistoryClient(this.publicEventEmitter,this.internalEventEmitter)}decodeJwt(e){try{const t=e.split(".")[1];return JSON.parse(atob(t))}catch(e){throw new Error("Invalid session token format")}}validateClientConfig(e,t,n){var i;if(!e&&!(null==n?void 0:n.apiKey))return"Either sessionToken or apiKey must be provided";if((null==n?void 0:n.apiKey)&&e)return"Only one of sessionToken or apiKey should be used";if(e){const n=null===(i=this.decodeJwt(e).type)||void 0===i?void 0:i.toLowerCase();if("legacy"===n){if(!t||!("personaId"in t))return"Both session token and client are missing a persona configuration. Please provide a persona ID of a saved persona in the personaConfig parameter."}else if(("ephemeral"===n||"stateful"===n)&&t)return"This session token already contains a persona configuration. Please remove the personaConfig parameter."}else if(!t)return"Missing persona config. Persona configuration must be provided when using apiKey";if((null==n?void 0:n.voiceDetection)&&void 0!==n.voiceDetection.endOfSpeechSensitivity){if("number"!=typeof n.voiceDetection.endOfSpeechSensitivity)return"End of speech sensitivity must be a number";if(n.voiceDetection.endOfSpeechSensitivity<0||n.voiceDetection.endOfSpeechSensitivity>1)return"End of speech sensitivity must be between 0 and 1"}}buildStartSessionOptionsForClient(){var e;const t={};if((null===(e=this.clientOptions)||void 0===e?void 0:e.voiceDetection)&&(t.voiceDetection=this.clientOptions.voiceDetection),0!==Object.keys(t).length)return t}startSession(e){return i(this,void 0,void 0,(function*(){const t=this.personaConfig,n=this.buildStartSessionOptionsForClient(),i=yield this.apiClient.startSession(t,n),{sessionId:o,clientConfig:a,engineHost:l,engineProtocol:c,signallingEndpoint:d}=i,{heartbeatIntervalSeconds:u,maxWsReconnectionAttempts:h,iceServers:E}=a;try{this.streamingClient=new r.StreamingClient(o,{engine:{baseUrl:`${c}://${l}`},signalling:{heartbeatIntervalSeconds:u,maxWsReconnectionAttempts:h,url:{baseUrl:l,protocol:c,signallingPath:d}},iceServers:E,inputAudio:{inputAudioState:this.inputAudioState,userProvidedMediaStream:e}},this.publicEventEmitter,this.internalEventEmitter)}catch(e){throw new s.ClientError("Failed to initialize streaming client",s.ErrorCode.SERVER_ERROR,500,{cause:e instanceof Error?e.message:String(e)})}return this.sessionId=o,o}))}startSessionIfNeeded(e){return i(this,void 0,void 0,(function*(){if(!(this.sessionId&&this.streamingClient||(yield this.startSession(e),this.sessionId&&this.streamingClient)))throw new s.ClientError("Session ID or streaming client is not available after starting session",s.ErrorCode.SERVER_ERROR,500,{cause:"Failed to initialize session properly"})}))}stream(e){return i(this,void 0,void 0,(function*(){if(yield this.startSessionIfNeeded(e),this._isStreaming)throw new Error("Already streaming");return this._isStreaming=!0,new Promise((e=>{var t;const n=[];let i=!1,s=!1;this.publicEventEmitter.addListener(o.AnamEvent.VIDEO_STREAM_STARTED,(t=>{n.push(t),i=!0,s&&e(n)})),this.publicEventEmitter.addListener(o.AnamEvent.AUDIO_STREAM_STARTED,(t=>{n.push(t),s=!0,i&&e(n)})),null===(t=this.streamingClient)||void 0===t||t.startConnection()}))}))}streamToVideoAndAudioElements(e,t,n){return i(this,void 0,void 0,(function*(){try{yield this.startSessionIfNeeded(n)}catch(e){if(e instanceof s.ClientError)throw e;throw new s.ClientError("Failed to start session",s.ErrorCode.SERVER_ERROR,500,{cause:e instanceof Error?e.message:String(e)})}if(this._isStreaming)throw new Error("Already streaming");if(this._isStreaming=!0,!this.streamingClient)throw new Error("Failed to stream: streaming client is not available");this.streamingClient.setMediaStreamTargetsById(e,t),this.streamingClient.startConnection()}))}talk(e){return i(this,void 0,void 0,(function*(){if(!this.streamingClient)throw new Error("Failed to send talk command: session is not started. Have you called startSession?");if(!this._isStreaming)throw new Error("Failed to send talk command: not currently streaming. Have you called stream?");yield this.streamingClient.sendTalkCommand(e)}))}sendDataMessage(e){if(!this.streamingClient)throw new Error("Failed to send message: session is not started.");this.streamingClient.sendDataMessage(e)}stopStreaming(){return i(this,void 0,void 0,(function*(){this.streamingClient&&(this.streamingClient.stopConnection(),this.streamingClient=null,this.sessionId=null,this._isStreaming=!1)}))}isStreaming(){return this._isStreaming}setPersonaConfig(e){this.personaConfig=e}getPersonaConfig(){return this.personaConfig}getInputAudioState(){return this.streamingClient&&(this.inputAudioState=this.streamingClient.getInputAudioState()),this.inputAudioState}muteInputAudio(){return this.streamingClient?this.inputAudioState=this.streamingClient.muteInputAudio():this.inputAudioState=Object.assign(Object.assign({},this.inputAudioState),{isMuted:!0}),this.inputAudioState}unmuteInputAudio(){return this.streamingClient?this.inputAudioState=this.streamingClient.unmuteInputAudio():this.inputAudioState=Object.assign(Object.assign({},this.inputAudioState),{isMuted:!1}),this.inputAudioState}createTalkMessageStream(e){if(!this.streamingClient)throw new Error("Failed to start talk message stream: session is not started.");if(e&&""===e.trim())throw new Error("Failed to start talk message stream: correlationId is empty");return this.streamingClient.startTalkMessageStream(e)}addListener(e,t){this.publicEventEmitter.addListener(e,t)}removeListener(e,t){this.publicEventEmitter.removeListener(e,t)}getActiveSessionId(){return this.sessionId}}},440:function(e,t,n){var i=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.unsafe_createClientWithApiKey=t.createClient=void 0;const s=i(n(816));t.createClient=(e,t,n)=>new s.default(e,t,n),t.unsafe_createClientWithApiKey=(e,t,n)=>new s.default(void 0,t,Object.assign(Object.assign({},n),{apiKey:e}))},71:(e,t)=>{var n;Object.defineProperty(t,"__esModule",{value:!0}),t.ClientError=t.ErrorCode=void 0,function(e){e.USAGE_LIMIT_REACHED="USAGE_LIMIT_REACHED",e.VALIDATION_ERROR="VALIDATION_ERROR",e.AUTHENTICATION_ERROR="AUTHENTICATION_ERROR",e.SERVER_ERROR="SERVER_ERROR",e.MAX_CONCURRENT_SESSIONS_REACHED="MAX_CONCURRENT_SESSIONS_REACHED",e.SERVICE_BUSY="SERVICE_BUSY",e.NO_PLAN_FOUND="NO_PLAN_FOUND"}(n||(t.ErrorCode=n={}));class i extends Error{constructor(e,t,n=500,s){super(e),this.name="ClientError",this.code=t,this.statusCode=n,this.details=s,Object.setPrototypeOf(this,i.prototype)}}t.ClientError=i},985:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.PUBLIC_MESSAGE_ON_WEBRTC_FAILURE=t.PUBLIC_MESSAGE_ON_SIGNALLING_CLIENT_CONNECTION_FAILURE=t.DEFAULT_API_VERSION=t.DEFAULT_API_BASE_URL=t.DEFAULT_HEADERS=void 0,t.DEFAULT_HEADERS={"Content-Type":"application/json"},t.DEFAULT_API_BASE_URL="https://api.anam.ai",t.DEFAULT_API_VERSION="/v1",t.PUBLIC_MESSAGE_ON_SIGNALLING_CLIENT_CONNECTION_FAILURE="There was a problem connecting to our servers. Please try again.",t.PUBLIC_MESSAGE_ON_WEBRTC_FAILURE="There was an issue connecting to our servers. Please try again."},18:function(e,t,n){var i=this&&this.__awaiter||function(e,t,n,i){return new(n||(n=Promise))((function(s,r){function o(e){try{l(i.next(e))}catch(e){r(e)}}function a(e){try{l(i.throw(e))}catch(e){r(e)}}function l(e){var t;e.done?s(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(o,a)}l((i=i.apply(e,t||[])).next())}))};Object.defineProperty(t,"__esModule",{value:!0}),t.CoreApiRestClient=void 0;const s=n(71),r=n(985),o=n(672);t.CoreApiRestClient=class{constructor(e,t,n){if(!e&&!t)throw new Error("Either sessionToken or apiKey must be provided");this.sessionToken=e||null,this.apiKey=t||null,this.baseUrl=(null==n?void 0:n.baseUrl)||r.DEFAULT_API_BASE_URL,this.apiVersion=(null==n?void 0:n.apiVersion)||r.DEFAULT_API_VERSION}startSession(e,t){return i(this,void 0,void 0,(function*(){if(!this.sessionToken){if(!e)throw new s.ClientError("Persona configuration must be provided when using apiKey",s.ErrorCode.VALIDATION_ERROR,400);this.sessionToken=yield this.unsafe_getSessionToken(e)}try{const n=yield fetch(`${this.getApiUrl()}/engine/session`,{method:"POST",headers:{"Content-Type":"application/json",Authorization:`Bearer ${this.sessionToken}`},body:JSON.stringify({personaConfig:e,sessionOptions:t})}),i=yield n.json();switch(n.status){case 200:case 201:return i;case 400:throw new s.ClientError("Invalid request to start session",s.ErrorCode.VALIDATION_ERROR,400,{cause:i.message});case 401:throw new s.ClientError("Authentication failed when starting session",s.ErrorCode.AUTHENTICATION_ERROR,401,{cause:i.message});case 402:throw new s.ClientError("Please sign up for a plan to start a session",s.ErrorCode.NO_PLAN_FOUND,402,{cause:i.message});case 403:throw new s.ClientError("Authentication failed when starting session",s.ErrorCode.AUTHENTICATION_ERROR,403,{cause:i.message});case 429:throw new s.ClientError("Out of credits, please upgrade your plan",s.ErrorCode.USAGE_LIMIT_REACHED,429,{cause:i.message});case 503:throw new s.ClientError("There are no available personas, please try again later",s.ErrorCode.SERVICE_BUSY,503,{cause:i.message});default:throw new s.ClientError("Unknown error when starting session",s.ErrorCode.SERVER_ERROR,500,{cause:i.message})}}catch(e){if(e instanceof s.ClientError)throw e;throw new s.ClientError("Failed to start session",s.ErrorCode.SERVER_ERROR,500,{cause:e instanceof Error?e.message:String(e)})}}))}unsafe_getSessionToken(e){return i(this,void 0,void 0,(function*(){if(console.warn("Using unsecure method. This method should not be used in production."),!this.apiKey)throw new Error("No apiKey provided");let t={clientLabel:"js-sdk-api-key"};(0,o.isCustomPersonaConfig)(e)&&(t=Object.assign(Object.assign({},t),{personaConfig:e}));try{const e=yield fetch(`${this.getApiUrl()}/auth/session-token`,{method:"POST",headers:{"Content-Type":"application/json",Authorization:`Bearer ${this.apiKey}`},body:JSON.stringify(t)});return(yield e.json()).sessionToken}catch(e){throw new Error("Failed to get session token")}}))}getApiUrl(){return`${this.baseUrl}${this.apiVersion}`}}},529:function(e,t){var n=this&&this.__awaiter||function(e,t,n,i){return new(n||(n=Promise))((function(s,r){function o(e){try{l(i.next(e))}catch(e){r(e)}}function a(e){try{l(i.throw(e))}catch(e){r(e)}}function l(e){var t;e.done?s(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(o,a)}l((i=i.apply(e,t||[])).next())}))};Object.defineProperty(t,"__esModule",{value:!0}),t.EngineApiRestClient=void 0,t.EngineApiRestClient=class{constructor(e,t){this.baseUrl=e,this.sessionId=t}sendTalkCommand(e){return n(this,void 0,void 0,(function*(){try{const t=yield fetch(`${this.baseUrl}/talk?session_id=${this.sessionId}`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({content:e})});if(!t.ok)throw new Error(`Failed to send talk command: ${t.status} ${t.statusText}`)}catch(e){throw console.error(e),new Error("EngineApiRestClient - sendTalkCommand: Failed to send talk command")}}))}}},259:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.InternalEventEmitter=void 0,t.InternalEventEmitter=class{constructor(){this.listeners={}}addListener(e,t){this.listeners[e]||(this.listeners[e]=new Set),this.listeners[e].add(t)}removeListener(e,t){this.listeners[e]&&this.listeners[e].delete(t)}emit(e,...t){this.listeners[e]&&this.listeners[e].forEach((e=>{e(...t)}))}}},462:(e,t,n)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.MessageHistoryClient=void 0;const i=n(170);t.MessageHistoryClient=class{constructor(e,t){this.messages=[],this.publicEventEmitter=e,this.internalEventEmitter=t,this.internalEventEmitter.addListener(i.InternalEvent.WEBRTC_CHAT_MESSAGE_RECEIVED,this.processWebRtcTextMessageEvent.bind(this))}webRtcTextMessageEventToMessageStreamEvent(e){return{id:`${e.role}::${e.message_id}`,content:e.content,role:e.role,endOfSpeech:e.end_of_speech,interrupted:e.interrupted}}processUserMessage(e){const t={id:e.id,content:e.content,role:e.role};this.messages.push(t)}processPersonaMessage(e){const t={id:e.id,content:e.content,role:e.role,interrupted:e.interrupted},n=this.messages.findIndex((e=>e.id===t.id));if(-1!==n){const e=this.messages[n];this.messages[n]=Object.assign(Object.assign({},e),{content:e.content+t.content,interrupted:e.interrupted||t.interrupted})}else this.messages.push(t)}processWebRtcTextMessageEvent(e){const t=this.webRtcTextMessageEventToMessageStreamEvent(e);switch(this.publicEventEmitter.emit(i.AnamEvent.MESSAGE_STREAM_EVENT_RECEIVED,t),t.role){case i.MessageRole.USER:this.processUserMessage(t);break;case i.MessageRole.PERSONA:this.processPersonaMessage(t)}t.endOfSpeech&&this.publicEventEmitter.emit(i.AnamEvent.MESSAGE_HISTORY_UPDATED,this.messages)}}},995:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.PublicEventEmitter=void 0,t.PublicEventEmitter=class{constructor(){this.listeners={}}addListener(e,t){this.listeners[e]||(this.listeners[e]=new Set),this.listeners[e].add(t)}removeListener(e,t){this.listeners[e]&&this.listeners[e].delete(t)}emit(e,...t){this.listeners[e]&&this.listeners[e].forEach((e=>{e(...t)}))}}},279:function(e,t,n){var i=this&&this.__awaiter||function(e,t,n,i){return new(n||(n=Promise))((function(s,r){function o(e){try{l(i.next(e))}catch(e){r(e)}}function a(e){try{l(i.throw(e))}catch(e){r(e)}}function l(e){var t;e.done?s(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(o,a)}l((i=i.apply(e,t||[])).next())}))};Object.defineProperty(t,"__esModule",{value:!0}),t.SignallingClient=void 0;const s=n(985),r=n(170);t.SignallingClient=class{constructor(e,t,n,i){var s;if(this.stopSignal=!1,this.sendingBuffer=[],this.wsConnectionAttempts=0,this.socket=null,this.heartBeatIntervalRef=null,this.publicEventEmitter=n,this.internalEventEmitter=i,!e)throw new Error("Signalling Client: sessionId is required");this.sessionId=e;const{heartbeatIntervalSeconds:r,maxWsReconnectionAttempts:o,url:a}=t;if(this.heartbeatIntervalSeconds=r||5,this.maxWsReconnectionAttempts=o||5,!a.baseUrl)throw new Error("Signalling Client: baseUrl is required");const l=`${a.protocol||"https"}://${a.baseUrl}`;this.url=new URL(l),this.url.protocol="http"===a.protocol?"ws:":"wss:",a.port&&(this.url.port=a.port),this.url.pathname=null!==(s=a.signallingPath)&&void 0!==s?s:"/ws",this.url.searchParams.append("session_id",e)}stop(){this.stopSignal=!0,this.closeSocket()}connect(){return this.socket=new WebSocket(this.url.href),this.socket.onopen=this.onOpen.bind(this),this.socket.onclose=this.onClose.bind(this),this.socket.onerror=this.onError.bind(this),this.socket}sendOffer(e){return i(this,void 0,void 0,(function*(){const t={connectionDescription:e,userUid:this.sessionId},n={actionType:r.SignalMessageAction.OFFER,sessionId:this.sessionId,payload:t};this.sendSignalMessage(n)}))}sendIceCandidate(e){return i(this,void 0,void 0,(function*(){const t={actionType:r.SignalMessageAction.ICE_CANDIDATE,sessionId:this.sessionId,payload:e.toJSON()};this.sendSignalMessage(t)}))}sendSignalMessage(e){var t;if((null===(t=this.socket)||void 0===t?void 0:t.readyState)===WebSocket.OPEN)try{this.socket.send(JSON.stringify(e))}catch(e){console.error("SignallingClient - sendSignalMessage: error sending message",e)}else this.sendingBuffer.push(e)}sendTalkMessage(e){return i(this,void 0,void 0,(function*(){const t={actionType:r.SignalMessageAction.TALK_STREAM_INPUT,sessionId:this.sessionId,payload:e};this.sendSignalMessage(t)}))}closeSocket(){this.socket&&(this.socket.close(),this.socket=null),this.heartBeatIntervalRef&&(clearInterval(this.heartBeatIntervalRef),this.heartBeatIntervalRef=null)}onOpen(){return i(this,void 0,void 0,(function*(){if(!this.socket)throw new Error("SignallingClient - onOpen: socket is null");try{this.wsConnectionAttempts=0,this.flushSendingBuffer(),this.socket.onmessage=this.onMessage.bind(this),this.startSendingHeartBeats(),this.internalEventEmitter.emit(r.InternalEvent.WEB_SOCKET_OPEN)}catch(e){console.error("SignallingClient - onOpen: error in onOpen",e),this.publicEventEmitter.emit(r.AnamEvent.CONNECTION_CLOSED,s.PUBLIC_MESSAGE_ON_SIGNALLING_CLIENT_CONNECTION_FAILURE)}}))}onClose(){return i(this,void 0,void 0,(function*(){this.wsConnectionAttempts+=1,this.stopSignal||(this.wsConnectionAttempts<=this.maxWsReconnectionAttempts?(this.socket=null,setTimeout((()=>{this.connect()}),100*this.wsConnectionAttempts)):(this.heartBeatIntervalRef&&(clearInterval(this.heartBeatIntervalRef),this.heartBeatIntervalRef=null),this.publicEventEmitter.emit(r.AnamEvent.CONNECTION_CLOSED,s.PUBLIC_MESSAGE_ON_SIGNALLING_CLIENT_CONNECTION_FAILURE)))}))}onError(e){this.stopSignal||console.error("SignallingClient - onError: ",e)}flushSendingBuffer(){const e=[];this.sendingBuffer.length>0&&this.sendingBuffer.forEach((t=>{var n;(null===(n=this.socket)||void 0===n?void 0:n.readyState)===WebSocket.OPEN?this.socket.send(JSON.stringify(t)):e.push(t)})),this.sendingBuffer=e}onMessage(e){return i(this,void 0,void 0,(function*(){const t=JSON.parse(e.data);this.internalEventEmitter.emit(r.InternalEvent.SIGNAL_MESSAGE_RECEIVED,t)}))}startSendingHeartBeats(){if(!this.socket)throw new Error("SignallingClient - startSendingHeartBeats: socket is null");this.heartBeatIntervalRef&&console.warn("SignallingClient - startSendingHeartBeats: heartbeat interval already set");const e=1e3*this.heartbeatIntervalSeconds,t={actionType:r.SignalMessageAction.HEARTBEAT,sessionId:this.sessionId,payload:""},n=JSON.stringify(t);this.heartBeatIntervalRef=setInterval((()=>{var e;this.stopSignal||(null===(e=this.socket)||void 0===e?void 0:e.readyState)===WebSocket.OPEN&&this.socket.send(n)}),e)}}},577:function(e,t,n){var i=this&&this.__awaiter||function(e,t,n,i){return new(n||(n=Promise))((function(s,r){function o(e){try{l(i.next(e))}catch(e){r(e)}}function a(e){try{l(i.throw(e))}catch(e){r(e)}}function l(e){var t;e.done?s(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(o,a)}l((i=i.apply(e,t||[])).next())}))};Object.defineProperty(t,"__esModule",{value:!0}),t.StreamingClient=void 0;const s=n(985),r=n(170),o=n(958),a=n(711);t.StreamingClient=class{constructor(e,t,n,i){this.peerConnection=null,this.connectionReceivedAnswer=!1,this.remoteIceCandidateBuffer=[],this.inputAudioStream=null,this.dataChannel=null,this.videoElement=null,this.videoStream=null,this.audioElement=null,this.audioStream=null,this.inputAudioState={isMuted:!1},this.publicEventEmitter=n,this.internalEventEmitter=i;const{inputAudio:s}=t;this.inputAudioState=s.inputAudioState,t.inputAudio.userProvidedMediaStream&&(this.inputAudioStream=t.inputAudio.userProvidedMediaStream),this.internalEventEmitter.addListener(r.InternalEvent.WEB_SOCKET_OPEN,this.onSignallingClientConnected.bind(this)),this.internalEventEmitter.addListener(r.InternalEvent.SIGNAL_MESSAGE_RECEIVED,this.onSignalMessage.bind(this)),this.iceServers=t.iceServers,this.signallingClient=new o.SignallingClient(e,t.signalling,this.publicEventEmitter,this.internalEventEmitter),this.engineApiRestClient=new o.EngineApiRestClient(t.engine.baseUrl,e)}onInputAudioStateChange(e,t){e.isMuted!==t.isMuted&&(t.isMuted?this.muteAllAudioTracks():this.unmuteAllAudioTracks())}muteAllAudioTracks(){var e;null===(e=this.inputAudioStream)||void 0===e||e.getAudioTracks().forEach((e=>{e.enabled=!1}))}unmuteAllAudioTracks(){var e;null===(e=this.inputAudioStream)||void 0===e||e.getAudioTracks().forEach((e=>{e.enabled=!0}))}muteInputAudio(){const e=this.inputAudioState,t=Object.assign(Object.assign({},this.inputAudioState),{isMuted:!0});return this.inputAudioState=t,this.onInputAudioStateChange(e,t),this.inputAudioState}unmuteInputAudio(){const e=this.inputAudioState,t=Object.assign(Object.assign({},this.inputAudioState),{isMuted:!1});return this.inputAudioState=t,this.onInputAudioStateChange(e,t),this.inputAudioState}getInputAudioState(){return this.inputAudioState}getPeerConnection(){return this.peerConnection}getInputAudioStream(){return this.inputAudioStream}getVideoStream(){return this.videoStream}getAudioStream(){return this.audioStream}sendDataMessage(e){this.dataChannel&&"open"===this.dataChannel.readyState&&this.dataChannel.send(e)}setMediaStreamTargetsById(e,t){if(e){const t=document.getElementById(e);if(!t)throw new Error(`StreamingClient: video element with id ${e} not found`);this.videoElement=t}if(t){const e=document.getElementById(t);if(!e)throw new Error(`StreamingClient: audio element with id ${t} not found`);this.audioElement=e}}startConnection(){try{if(this.peerConnection)return void console.error("StreamingClient - startConnection: peer connection already exists");this.signallingClient.connect()}catch(e){this.handleWebrtcFailure(e)}}stopConnection(){this.shutdown()}sendTalkCommand(e){return i(this,void 0,void 0,(function*(){if(!this.peerConnection)throw new Error("StreamingClient - sendTalkCommand: peer connection is null");yield this.engineApiRestClient.sendTalkCommand(e)}))}startTalkMessageStream(e){return e||(e=Math.random().toString(36).substring(2,15)),new a.TalkMessageStream(e,this.internalEventEmitter,this.signallingClient)}initPeerConnection(){return i(this,void 0,void 0,(function*(){this.peerConnection=new RTCPeerConnection({iceServers:this.iceServers}),this.peerConnection.onicecandidate=this.onIceCandidate.bind(this),this.peerConnection.oniceconnectionstatechange=this.onIceConnectionStateChange.bind(this),this.peerConnection.onconnectionstatechange=this.onConnectionStateChange.bind(this),this.peerConnection.addEventListener("track",this.onTrackEventHandler.bind(this)),yield this.setupDataChannels(),this.peerConnection.addTransceiver("video",{direction:"recvonly"}),this.peerConnection.addTransceiver("audio",{direction:"sendrecv"})}))}onSignalMessage(e){return i(this,void 0,void 0,(function*(){if(this.peerConnection)switch(e.actionType){case r.SignalMessageAction.ANSWER:const t=e.payload;yield this.peerConnection.setRemoteDescription(t),this.connectionReceivedAnswer=!0,this.flushRemoteIceCandidateBuffer();break;case r.SignalMessageAction.ICE_CANDIDATE:const n=e.payload,i=new RTCIceCandidate(n);this.connectionReceivedAnswer?yield this.peerConnection.addIceCandidate(i):this.remoteIceCandidateBuffer.push(i);break;case r.SignalMessageAction.END_SESSION:const s=e.payload;this.publicEventEmitter.emit(r.AnamEvent.CONNECTION_CLOSED,s),this.shutdown();break;case r.SignalMessageAction.WARNING:const o=e.payload;console.warn("Warning received from server: "+o);break;case r.SignalMessageAction.TALK_STREAM_INTERRUPTED:const a=e.payload;this.publicEventEmitter.emit(r.AnamEvent.TALK_STREAM_INTERRUPTED,a.correlationId);break;default:console.error("StreamingClient - onSignalMessage: unknown signal message action type",e)}else console.error("StreamingClient - onSignalMessage: peerConnection is not initialized")}))}onSignallingClientConnected(){return i(this,void 0,void 0,(function*(){if(!this.peerConnection)try{yield this.initPeerConnectionAndSendOffer()}catch(e){console.error("StreamingClient - onSignallingClientConnected: Error initializing peer connection",e),this.handleWebrtcFailure(e)}}))}flushRemoteIceCandidateBuffer(){this.remoteIceCandidateBuffer.forEach((e=>{var t;null===(t=this.peerConnection)||void 0===t||t.addIceCandidate(e)})),this.remoteIceCandidateBuffer=[]}onIceCandidate(e){e.candidate&&this.signallingClient.sendIceCandidate(e.candidate)}onIceConnectionStateChange(){var e,t;"connected"!==(null===(e=this.peerConnection)||void 0===e?void 0:e.iceConnectionState)&&"completed"!==(null===(t=this.peerConnection)||void 0===t?void 0:t.iceConnectionState)||this.publicEventEmitter.emit(r.AnamEvent.CONNECTION_ESTABLISHED)}onConnectionStateChange(){var e;"closed"===(null===(e=this.peerConnection)||void 0===e?void 0:e.connectionState)&&(console.error("StreamingClient - onConnectionStateChange: Connection closed"),this.handleWebrtcFailure("The connection to our servers was lost. Please try again."))}handleWebrtcFailure(e){console.error("StreamingClient - handleWebrtcFailure: ",e);try{this.stopConnection()}catch(e){console.error("StreamingClient - handleWebrtcFailure: error stopping connection",e)}this.publicEventEmitter.emit(r.AnamEvent.CONNECTION_CLOSED,s.PUBLIC_MESSAGE_ON_WEBRTC_FAILURE)}onTrackEventHandler(e){if("video"===e.track.kind){if(this.videoStream=e.streams[0],this.publicEventEmitter.emit(r.AnamEvent.VIDEO_STREAM_STARTED,this.videoStream),this.videoElement){this.videoElement.srcObject=this.videoStream;const e=this.videoElement.requestVideoFrameCallback((()=>{var t;null===(t=this.videoElement)||void 0===t||t.cancelVideoFrameCallback(e),this.publicEventEmitter.emit(r.AnamEvent.VIDEO_PLAY_STARTED)}))}}else"audio"===e.track.kind&&(this.audioStream=e.streams[0],this.publicEventEmitter.emit(r.AnamEvent.AUDIO_STREAM_STARTED,this.audioStream),this.audioElement&&(this.audioElement.srcObject=this.audioStream))}setupDataChannels(){return i(this,void 0,void 0,(function*(){if(!this.peerConnection)return void console.error("StreamingClient - setupDataChannels: peer connection is not initialized");if(this.inputAudioStream){if(!this.inputAudioStream.getAudioTracks().length)throw new Error("StreamingClient - setupDataChannels: user provided stream does not have audio tracks")}else this.inputAudioStream=yield navigator.mediaDevices.getUserMedia({audio:{echoCancellation:!0}});this.inputAudioState.isMuted&&this.muteAllAudioTracks();const e=this.inputAudioStream.getAudioTracks()[0];this.peerConnection.addTrack(e,this.inputAudioStream),this.publicEventEmitter.emit(r.AnamEvent.INPUT_AUDIO_STREAM_STARTED,this.inputAudioStream);const t=this.peerConnection.createDataChannel("chat",{ordered:!0});t.onopen=()=>{this.dataChannel=null!=t?t:null},t.onclose=()=>{},t.onmessage=e=>{const t=JSON.parse(e.data);this.internalEventEmitter.emit(r.InternalEvent.WEBRTC_CHAT_MESSAGE_RECEIVED,t)}}))}initPeerConnectionAndSendOffer(){return i(this,void 0,void 0,(function*(){if(yield this.initPeerConnection(),!this.peerConnection)return void console.error("StreamingClient - initPeerConnectionAndSendOffer: peer connection is not initialized");const e=yield this.peerConnection.createOffer();if(yield this.peerConnection.setLocalDescription(e),!this.peerConnection.localDescription)throw new Error("StreamingClient - initPeerConnectionAndSendOffer: local description is null");yield this.signallingClient.sendOffer(this.peerConnection.localDescription)}))}shutdown(){try{this.inputAudioStream&&this.inputAudioStream.getTracks().forEach((e=>{e.stop()})),this.inputAudioStream=null}catch(e){console.error("StreamingClient - shutdown: error stopping input audio stream",e)}try{this.signallingClient.stop()}catch(e){console.error("StreamingClient - shutdown: error stopping signallilng",e)}try{this.peerConnection&&"closed"!==this.peerConnection.connectionState&&(this.peerConnection.onconnectionstatechange=null,this.peerConnection.close(),this.peerConnection=null)}catch(e){console.error("StreamingClient - shutdown: error closing peer connection",e)}}}},958:(e,t,n)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.StreamingClient=t.PublicEventEmitter=t.MessageHistoryClient=t.InternalEventEmitter=t.EngineApiRestClient=t.CoreApiRestClient=t.SignallingClient=void 0;var i=n(279);Object.defineProperty(t,"SignallingClient",{enumerable:!0,get:function(){return i.SignallingClient}});var s=n(18);Object.defineProperty(t,"CoreApiRestClient",{enumerable:!0,get:function(){return s.CoreApiRestClient}});var r=n(529);Object.defineProperty(t,"EngineApiRestClient",{enumerable:!0,get:function(){return r.EngineApiRestClient}});var o=n(259);Object.defineProperty(t,"InternalEventEmitter",{enumerable:!0,get:function(){return o.InternalEventEmitter}});var a=n(462);Object.defineProperty(t,"MessageHistoryClient",{enumerable:!0,get:function(){return a.MessageHistoryClient}});var l=n(995);Object.defineProperty(t,"PublicEventEmitter",{enumerable:!0,get:function(){return l.PublicEventEmitter}});var c=n(577);Object.defineProperty(t,"StreamingClient",{enumerable:!0,get:function(){return c.StreamingClient}})},672:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.isCustomPersonaConfig=t.isSavedPersonaConfig=void 0,t.isSavedPersonaConfig=function(e){return"personaId"in e},t.isCustomPersonaConfig=function(e){return"brainType"in e}},711:function(e,t,n){var i=this&&this.__awaiter||function(e,t,n,i){return new(n||(n=Promise))((function(s,r){function o(e){try{l(i.next(e))}catch(e){r(e)}}function a(e){try{l(i.throw(e))}catch(e){r(e)}}function l(e){var t;e.done?s(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(o,a)}l((i=i.apply(e,t||[])).next())}))};Object.defineProperty(t,"__esModule",{value:!0}),t.TalkMessageStream=void 0;const s=n(170),r=n(322);t.TalkMessageStream=class{constructor(e,t,n){this.state=r.TalkMessageStreamState.UNSTARTED,this.correlationId=e,this.internalEventEmitter=t,this.signallingClient=n,this.internalEventEmitter.addListener(s.InternalEvent.SIGNAL_MESSAGE_RECEIVED,this.onSignalMessage.bind(this))}onDeactivate(){this.internalEventEmitter.removeListener(s.InternalEvent.SIGNAL_MESSAGE_RECEIVED,this.onSignalMessage.bind(this))}onSignalMessage(e){return i(this,void 0,void 0,(function*(){e.actionType===s.SignalMessageAction.TALK_STREAM_INTERRUPTED&&e.payload.correlationId===this.correlationId&&(this.state=r.TalkMessageStreamState.INTERRUPTED,this.onDeactivate())}))}endMessage(){return i(this,void 0,void 0,(function*(){if(this.state===r.TalkMessageStreamState.ENDED)return void console.warn("Talk stream is already ended via end of speech. No need to call endMessage.");if(this.state!==r.TalkMessageStreamState.STREAMING)return void console.warn("Talk stream is not active state: "+this.state);const e={content:"",startOfSpeech:!1,endOfSpeech:!0,correlationId:this.correlationId};yield this.signallingClient.sendTalkMessage(e),this.state=r.TalkMessageStreamState.ENDED,this.onDeactivate()}))}streamMessageChunk(e,t){return i(this,void 0,void 0,(function*(){if(this.state!==r.TalkMessageStreamState.STREAMING&&this.state!==r.TalkMessageStreamState.UNSTARTED)throw new Error("Talk stream is not in an active state: "+this.state);const n={content:e,startOfSpeech:this.state===r.TalkMessageStreamState.UNSTARTED,endOfSpeech:t,correlationId:this.correlationId};this.state=t?r.TalkMessageStreamState.ENDED:r.TalkMessageStreamState.STREAMING,this.state===r.TalkMessageStreamState.ENDED&&this.onDeactivate(),yield this.signallingClient.sendTalkMessage(n)}))}getCorrelationId(){return this.correlationId}isActive(){return this.state===r.TalkMessageStreamState.STREAMING||this.state===r.TalkMessageStreamState.UNSTARTED}getState(){return this.state}}},322:(e,t)=>{var n;Object.defineProperty(t,"__esModule",{value:!0}),t.TalkMessageStreamState=void 0,function(e){e[e.UNSTARTED=0]="UNSTARTED",e[e.STREAMING=1]="STREAMING",e[e.INTERRUPTED=2]="INTERRUPTED",e[e.ENDED=3]="ENDED"}(n||(t.TalkMessageStreamState=n={}))},878:(e,t,n)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.InternalEvent=t.AnamEvent=void 0;var i=n(21);Object.defineProperty(t,"AnamEvent",{enumerable:!0,get:function(){return i.AnamEvent}});var s=n(645);Object.defineProperty(t,"InternalEvent",{enumerable:!0,get:function(){return s.InternalEvent}})},645:(e,t)=>{var n;Object.defineProperty(t,"__esModule",{value:!0}),t.InternalEvent=void 0,function(e){e.WEB_SOCKET_OPEN="WEB_SOCKET_OPEN",e.SIGNAL_MESSAGE_RECEIVED="SIGNAL_MESSAGE_RECEIVED",e.WEBRTC_CHAT_MESSAGE_RECEIVED="WEBRTC_CHAT_MESSAGE_RECEIVED"}(n||(t.InternalEvent=n={}))},21:(e,t)=>{var n;Object.defineProperty(t,"__esModule",{value:!0}),t.AnamEvent=void 0,function(e){e.MESSAGE_HISTORY_UPDATED="MESSAGE_HISTORY_UPDATED",e.MESSAGE_STREAM_EVENT_RECEIVED="MESSAGE_STREAM_EVENT_RECEIVED",e.CONNECTION_ESTABLISHED="CONNECTION_ESTABLISHED",e.CONNECTION_CLOSED="CONNECTION_CLOSED",e.INPUT_AUDIO_STREAM_STARTED="INPUT_AUDIO_STREAM_STARTED",e.VIDEO_STREAM_STARTED="VIDEO_STREAM_STARTED",e.VIDEO_PLAY_STARTED="VIDEO_PLAY_STARTED",e.AUDIO_STREAM_STARTED="AUDIO_STREAM_STARTED",e.TALK_STREAM_INTERRUPTED="TALK_STREAM_INTERRUPTED"}(n||(t.AnamEvent=n={}))},170:(e,t,n)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.InternalEvent=t.AnamEvent=t.MessageRole=t.SignalMessageAction=void 0;var i=n(295);Object.defineProperty(t,"SignalMessageAction",{enumerable:!0,get:function(){return i.SignalMessageAction}});var s=n(822);Object.defineProperty(t,"MessageRole",{enumerable:!0,get:function(){return s.MessageRole}});var r=n(878);Object.defineProperty(t,"AnamEvent",{enumerable:!0,get:function(){return r.AnamEvent}});var o=n(878);Object.defineProperty(t,"InternalEvent",{enumerable:!0,get:function(){return o.InternalEvent}})},273:(e,t)=>{var n;Object.defineProperty(t,"__esModule",{value:!0}),t.MessageRole=void 0,function(e){e.USER="user",e.PERSONA="persona"}(n||(t.MessageRole=n={}))},822:(e,t,n)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.MessageRole=void 0;var i=n(273);Object.defineProperty(t,"MessageRole",{enumerable:!0,get:function(){return i.MessageRole}})},656:(e,t)=>{var n;Object.defineProperty(t,"__esModule",{value:!0}),t.SignalMessageAction=void 0,function(e){e.OFFER="offer",e.ANSWER="answer",e.ICE_CANDIDATE="icecandidate",e.END_SESSION="endsession",e.HEARTBEAT="heartbeat",e.WARNING="warning",e.TALK_STREAM_INTERRUPTED="talkinputstreaminterrupted",e.TALK_STREAM_INPUT="talkstream"}(n||(t.SignalMessageAction=n={}))},295:(e,t,n)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.SignalMessageAction=void 0;var i=n(656);Object.defineProperty(t,"SignalMessageAction",{enumerable:!0,get:function(){return i.SignalMessageAction}})}},t={};return function n(i){var s=t[i];if(void 0!==s)return s.exports;var r=t[i]={exports:{}};return e[i].call(r.exports,r,r.exports,n),r.exports}(440)})()));
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@anam-ai/js-sdk",
3
- "version": "1.7.0-rc.1",
3
+ "version": "1.8.1",
4
4
  "description": "Client side JavaScript SDK for Anam AI",
5
5
  "author": "Anam AI",
6
6
  "main": "dist/main/index.js",