@vapi-ai/web 1.0.216 → 1.0.218

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/vapi.d.ts CHANGED
@@ -1,7 +1,23 @@
1
1
  /// <reference types="node" />
2
2
  import { CreateAssistantDTO } from "./api";
3
3
  import EventEmitter from "events";
4
- export default class Vapi extends EventEmitter {
4
+ type VapiEventNames = "call-end" | "call-start" | "volume-level" | "speech-start" | "speech-end" | "error";
5
+ type VapiEventListeners = {
6
+ "call-end": () => void;
7
+ "call-start": () => void;
8
+ "volume-level": (volume: number) => void;
9
+ "speech-start": () => void;
10
+ "speech-end": () => void;
11
+ error: (error: any) => void;
12
+ };
13
+ declare class VapiEventEmitter extends EventEmitter {
14
+ on<E extends VapiEventNames>(event: E, listener: VapiEventListeners[E]): this;
15
+ once<E extends VapiEventNames>(event: E, listener: VapiEventListeners[E]): this;
16
+ emit<E extends VapiEventNames>(event: E, ...args: Parameters<VapiEventListeners[E]>): boolean;
17
+ removeListener<E extends VapiEventNames>(event: E, listener: VapiEventListeners[E]): this;
18
+ removeAllListeners(event?: VapiEventNames): this;
19
+ }
20
+ export default class Vapi extends VapiEventEmitter {
5
21
  private started;
6
22
  private call;
7
23
  private speakingTimeout;
@@ -10,3 +26,4 @@ export default class Vapi extends EventEmitter {
10
26
  private handleRemoteParticipantsAudioLevel;
11
27
  stop(): void;
12
28
  }
29
+ export {};
package/dist/vapi.js CHANGED
@@ -48,7 +48,28 @@ function subscribeToTracks(e, call) {
48
48
  },
49
49
  });
50
50
  }
51
- class Vapi extends events_1.default {
51
+ class VapiEventEmitter extends events_1.default {
52
+ on(event, listener) {
53
+ super.on(event, listener);
54
+ return this;
55
+ }
56
+ once(event, listener) {
57
+ super.once(event, listener);
58
+ return this;
59
+ }
60
+ emit(event, ...args) {
61
+ return super.emit(event, ...args);
62
+ }
63
+ removeListener(event, listener) {
64
+ super.removeListener(event, listener);
65
+ return this;
66
+ }
67
+ removeAllListeners(event) {
68
+ super.removeAllListeners(event);
69
+ return this;
70
+ }
71
+ }
72
+ class Vapi extends VapiEventEmitter {
52
73
  constructor(apiToken, apiBaseUrl) {
53
74
  super();
54
75
  this.started = false;
@@ -127,7 +148,7 @@ class Vapi extends events_1.default {
127
148
  }
128
149
  handleRemoteParticipantsAudioLevel(e) {
129
150
  const speechLevel = Object.values(e.participantsAudioLevel).reduce((a, b) => a + b, 0);
130
- this.emit("volume-level", speechLevel);
151
+ this.emit("volume-level", Math.min(1, speechLevel / 0.15));
131
152
  const isSpeaking = speechLevel > 0.1;
132
153
  if (!isSpeaking)
133
154
  return;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@vapi-ai/web",
3
- "version": "1.0.216",
3
+ "version": "1.0.218",
4
4
  "description": "",
5
5
  "main": "dist/vapi.js",
6
6
  "types": "dist/vapi.d.ts",
package/vapi.ts CHANGED
@@ -41,7 +41,57 @@ function subscribeToTracks(e: DailyEventObjectParticipant, call: DailyCall) {
41
41
  });
42
42
  }
43
43
 
44
- export default class Vapi extends EventEmitter {
44
+ type VapiEventNames =
45
+ | "call-end"
46
+ | "call-start"
47
+ | "volume-level"
48
+ | "speech-start"
49
+ | "speech-end"
50
+ | "error";
51
+ type VapiEventListeners = {
52
+ "call-end": () => void;
53
+ "call-start": () => void;
54
+ "volume-level": (volume: number) => void;
55
+ "speech-start": () => void;
56
+ "speech-end": () => void;
57
+ error: (error: any) => void;
58
+ };
59
+
60
+ class VapiEventEmitter extends EventEmitter {
61
+ on<E extends VapiEventNames>(
62
+ event: E,
63
+ listener: VapiEventListeners[E]
64
+ ): this {
65
+ super.on(event, listener);
66
+ return this;
67
+ }
68
+ once<E extends VapiEventNames>(
69
+ event: E,
70
+ listener: VapiEventListeners[E]
71
+ ): this {
72
+ super.once(event, listener);
73
+ return this;
74
+ }
75
+ emit<E extends VapiEventNames>(
76
+ event: E,
77
+ ...args: Parameters<VapiEventListeners[E]>
78
+ ): boolean {
79
+ return super.emit(event, ...args);
80
+ }
81
+ removeListener<E extends VapiEventNames>(
82
+ event: E,
83
+ listener: VapiEventListeners[E]
84
+ ): this {
85
+ super.removeListener(event, listener);
86
+ return this;
87
+ }
88
+ removeAllListeners(event?: VapiEventNames): this {
89
+ super.removeAllListeners(event);
90
+ return this;
91
+ }
92
+ }
93
+
94
+ export default class Vapi extends VapiEventEmitter {
45
95
  private started: boolean = false;
46
96
  private call: DailyCall | null = null;
47
97
  private speakingTimeout: NodeJS.Timeout | null = null;
@@ -135,7 +185,7 @@ export default class Vapi extends EventEmitter {
135
185
  (a, b) => a + b,
136
186
  0
137
187
  );
138
- this.emit("volume-level", speechLevel);
188
+ this.emit("volume-level", Math.min(1, speechLevel / 0.15));
139
189
 
140
190
  const isSpeaking = speechLevel > 0.1;
141
191
  if (!isSpeaking) return;