@elevenlabs/client 1.7.0 → 1.8.0

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 (160) hide show
  1. package/dist/BaseConversation.d.ts +5 -5
  2. package/dist/BaseConversation.d.ts.map +1 -1
  3. package/dist/BaseConversation.js +19 -16
  4. package/dist/BaseConversation.js.map +1 -1
  5. package/dist/InputController.d.ts +9 -0
  6. package/dist/InputController.d.ts.map +1 -1
  7. package/dist/OutputController.d.ts +18 -0
  8. package/dist/OutputController.d.ts.map +1 -1
  9. package/dist/TextConversation.js +2 -2
  10. package/dist/TextConversation.js.map +1 -1
  11. package/dist/VoiceConversation.d.ts +3 -6
  12. package/dist/VoiceConversation.d.ts.map +1 -1
  13. package/dist/VoiceConversation.js +15 -69
  14. package/dist/VoiceConversation.js.map +1 -1
  15. package/dist/WebRTCAudioAdapter.d.ts +52 -0
  16. package/dist/WebRTCAudioAdapter.d.ts.map +1 -0
  17. package/dist/WebRTCAudioAdapter.js +17 -0
  18. package/dist/WebRTCAudioAdapter.js.map +1 -0
  19. package/dist/index.d.ts +3 -5
  20. package/dist/index.d.ts.map +1 -1
  21. package/dist/index.js +3 -1
  22. package/dist/index.js.map +1 -1
  23. package/dist/internal.d.ts +6 -1
  24. package/dist/internal.d.ts.map +1 -1
  25. package/dist/internal.js +4 -1
  26. package/dist/internal.js.map +1 -1
  27. package/dist/lib.iife.js +3664 -3449
  28. package/dist/lib.iife.js.map +1 -1
  29. package/dist/platform/VoiceSessionSetup.d.ts +10 -15
  30. package/dist/platform/VoiceSessionSetup.d.ts.map +1 -1
  31. package/dist/platform/VoiceSessionSetup.js +20 -62
  32. package/dist/platform/VoiceSessionSetup.js.map +1 -1
  33. package/dist/platform/tsconfig.test.tsbuildinfo +1 -0
  34. package/dist/platform/web/VoiceSessionSetup.d.ts +9 -0
  35. package/dist/platform/web/VoiceSessionSetup.d.ts.map +1 -0
  36. package/dist/platform/web/VoiceSessionSetup.js +154 -0
  37. package/dist/platform/web/VoiceSessionSetup.js.map +1 -0
  38. package/dist/platform/web/addLibsamplerateModule.d.ts.map +1 -0
  39. package/dist/platform/web/addLibsamplerateModule.js.map +1 -0
  40. package/dist/platform/web/audioConcatProcessor.generated.d.ts.map +1 -0
  41. package/dist/platform/web/audioConcatProcessor.generated.js.map +1 -0
  42. package/dist/platform/web/compatibility.d.ts.map +1 -0
  43. package/dist/platform/web/compatibility.js.map +1 -0
  44. package/dist/platform/web/createWorkletModuleLoader.d.ts.map +1 -0
  45. package/dist/platform/web/createWorkletModuleLoader.js.map +1 -0
  46. package/dist/platform/web/index.d.ts +3 -0
  47. package/dist/platform/web/index.d.ts.map +1 -0
  48. package/dist/platform/web/index.js +12 -0
  49. package/dist/platform/web/index.js.map +1 -0
  50. package/dist/{utils → platform/web}/input.d.ts +3 -12
  51. package/dist/platform/web/input.d.ts.map +1 -0
  52. package/dist/platform/web/input.js.map +1 -0
  53. package/dist/{utils → platform/web}/output.d.ts +3 -21
  54. package/dist/platform/web/output.d.ts.map +1 -0
  55. package/dist/platform/web/output.js.map +1 -0
  56. package/dist/platform/web/rawAudioProcessor.generated.d.ts.map +1 -0
  57. package/dist/platform/web/rawAudioProcessor.generated.js.map +1 -0
  58. package/dist/platform/web/scribeAudioProcessor.generated.d.ts.map +1 -0
  59. package/dist/platform/web/scribeAudioProcessor.generated.js.map +1 -0
  60. package/dist/platform/web/scribeMicrophone.d.ts +10 -0
  61. package/dist/platform/web/scribeMicrophone.d.ts.map +1 -0
  62. package/dist/platform/web/scribeMicrophone.js +65 -0
  63. package/dist/platform/web/scribeMicrophone.js.map +1 -0
  64. package/dist/platform/web/volumeProvider.d.ts +4 -0
  65. package/dist/platform/web/volumeProvider.d.ts.map +1 -0
  66. package/dist/platform/web/volumeProvider.js +24 -0
  67. package/dist/platform/web/volumeProvider.js.map +1 -0
  68. package/dist/platform/web/webAudioAdapter.d.ts +23 -0
  69. package/dist/platform/web/webAudioAdapter.d.ts.map +1 -0
  70. package/dist/platform/web/webAudioAdapter.js +127 -0
  71. package/dist/platform/web/webAudioAdapter.js.map +1 -0
  72. package/dist/runtime.d.ts +181 -0
  73. package/dist/runtime.d.ts.map +1 -0
  74. package/dist/runtime.js +34 -0
  75. package/dist/runtime.js.map +1 -0
  76. package/dist/scribe/microphone.d.ts +31 -0
  77. package/dist/scribe/microphone.d.ts.map +1 -0
  78. package/dist/scribe/microphone.js +23 -0
  79. package/dist/scribe/microphone.js.map +1 -0
  80. package/dist/scribe/scribe.d.ts +1 -1
  81. package/dist/scribe/scribe.d.ts.map +1 -1
  82. package/dist/scribe/scribe.js +6 -62
  83. package/dist/scribe/scribe.js.map +1 -1
  84. package/dist/types.d.ts +93 -0
  85. package/dist/types.d.ts.map +1 -0
  86. package/dist/types.js +29 -0
  87. package/dist/types.js.map +1 -0
  88. package/dist/utils/BaseConnection.d.ts +4 -2
  89. package/dist/utils/BaseConnection.d.ts.map +1 -1
  90. package/dist/utils/WebRTCConnection.d.ts +4 -7
  91. package/dist/utils/WebRTCConnection.d.ts.map +1 -1
  92. package/dist/utils/WebRTCConnection.js +57 -129
  93. package/dist/utils/WebRTCConnection.js.map +1 -1
  94. package/dist/utils/WebSocketConnection.d.ts +1 -1
  95. package/dist/utils/WebSocketConnection.d.ts.map +1 -1
  96. package/dist/utils/WebSocketConnection.js +14 -12
  97. package/dist/utils/WebSocketConnection.js.map +1 -1
  98. package/dist/utils/applyDelay.d.ts +3 -2
  99. package/dist/utils/applyDelay.d.ts.map +1 -1
  100. package/dist/utils/applyDelay.js +18 -12
  101. package/dist/utils/applyDelay.js.map +1 -1
  102. package/dist/utils/assert.d.ts +3 -0
  103. package/dist/utils/assert.d.ts.map +1 -0
  104. package/dist/utils/assert.js +9 -0
  105. package/dist/utils/assert.js.map +1 -0
  106. package/dist/utils/attachConnectionToOutput.d.ts +1 -1
  107. package/dist/utils/attachConnectionToOutput.d.ts.map +1 -1
  108. package/dist/utils/attachInputToConnection.d.ts +1 -1
  109. package/dist/utils/attachInputToConnection.d.ts.map +1 -1
  110. package/dist/utils/audio.d.ts.map +1 -1
  111. package/dist/utils/audio.js +2 -3
  112. package/dist/utils/audio.js.map +1 -1
  113. package/dist/utils/connection.d.ts +1 -1
  114. package/dist/utils/connection.d.ts.map +1 -1
  115. package/dist/utils/connection.js.map +1 -1
  116. package/dist/utils/errors.d.ts.map +1 -1
  117. package/dist/utils/errors.js +5 -1
  118. package/dist/utils/errors.js.map +1 -1
  119. package/dist/utils/events.d.ts +2 -1
  120. package/dist/utils/events.d.ts.map +1 -1
  121. package/dist/utils/mergeOptions.d.ts.map +1 -1
  122. package/dist/utils/mergeOptions.js +1 -3
  123. package/dist/utils/mergeOptions.js.map +1 -1
  124. package/dist/utils/volumeProvider.d.ts +0 -1
  125. package/dist/utils/volumeProvider.d.ts.map +1 -1
  126. package/dist/utils/volumeProvider.js +0 -22
  127. package/dist/utils/volumeProvider.js.map +1 -1
  128. package/dist/version.d.ts +1 -1
  129. package/dist/version.js +1 -1
  130. package/package.json +6 -5
  131. package/dist/utils/addLibsamplerateModule.d.ts.map +0 -1
  132. package/dist/utils/addLibsamplerateModule.js.map +0 -1
  133. package/dist/utils/audioConcatProcessor.generated.d.ts.map +0 -1
  134. package/dist/utils/audioConcatProcessor.generated.js.map +0 -1
  135. package/dist/utils/compatibility.d.ts.map +0 -1
  136. package/dist/utils/compatibility.js.map +0 -1
  137. package/dist/utils/createWorkletModuleLoader.d.ts.map +0 -1
  138. package/dist/utils/createWorkletModuleLoader.js.map +0 -1
  139. package/dist/utils/input.d.ts.map +0 -1
  140. package/dist/utils/input.js.map +0 -1
  141. package/dist/utils/output.d.ts.map +0 -1
  142. package/dist/utils/output.js.map +0 -1
  143. package/dist/utils/rawAudioProcessor.generated.d.ts.map +0 -1
  144. package/dist/utils/rawAudioProcessor.generated.js.map +0 -1
  145. package/dist/utils/scribeAudioProcessor.generated.d.ts.map +0 -1
  146. package/dist/utils/scribeAudioProcessor.generated.js.map +0 -1
  147. /package/dist/{utils → platform/web}/addLibsamplerateModule.d.ts +0 -0
  148. /package/dist/{utils → platform/web}/addLibsamplerateModule.js +0 -0
  149. /package/dist/{utils → platform/web}/audioConcatProcessor.generated.d.ts +0 -0
  150. /package/dist/{utils → platform/web}/audioConcatProcessor.generated.js +0 -0
  151. /package/dist/{utils → platform/web}/compatibility.d.ts +0 -0
  152. /package/dist/{utils → platform/web}/compatibility.js +0 -0
  153. /package/dist/{utils → platform/web}/createWorkletModuleLoader.d.ts +0 -0
  154. /package/dist/{utils → platform/web}/createWorkletModuleLoader.js +0 -0
  155. /package/dist/{utils → platform/web}/input.js +0 -0
  156. /package/dist/{utils → platform/web}/output.js +0 -0
  157. /package/dist/{utils → platform/web}/rawAudioProcessor.generated.d.ts +0 -0
  158. /package/dist/{utils → platform/web}/rawAudioProcessor.generated.js +0 -0
  159. /package/dist/{utils → platform/web}/scribeAudioProcessor.generated.d.ts +0 -0
  160. /package/dist/{utils → platform/web}/scribeAudioProcessor.generated.js +0 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/platform/web/index.ts"],"names":[],"mappings":"AAAA,8DAA8D;AAC9D,OAAO,wBAAwB,CAAC;AAEhC,sEAAsE;AACtE,OAAO,EAAE,4BAA4B,EAAE,MAAM,6BAA6B,CAAC;AAC3E,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AACvD,4BAA4B,CAAC,GAAG,EAAE,CAAC,IAAI,eAAe,EAAE,CAAC,CAAC;AAE1D,kEAAkE;AAClE,OAAO,EAAE,wBAAwB,EAAE,MAAM,4BAA4B,CAAC;AACtE,OAAO,EAAE,wBAAwB,EAAE,MAAM,uBAAuB,CAAC;AACjE,wBAAwB,CAAC,wBAAwB,CAAC,CAAC;AAEnD,cAAc,gBAAgB,CAAC"}
@@ -1,15 +1,6 @@
1
- import type { FormatConfig } from "./connection.js";
2
- import type { AudioWorkletConfig } from "../BaseConversation.js";
3
- import type { InputController, InputDeviceConfig } from "../InputController.js";
4
- export type InputConfig = InputDeviceConfig & {
5
- onError?(message: string, context?: unknown): void;
6
- };
7
- export type InputMessageEvent = MessageEvent<[Uint8Array, number]>;
8
- export type InputListener = (event: InputMessageEvent) => void;
9
- export type InputEventTarget = {
10
- addListener(listener: InputListener): void;
11
- removeListener(listener: InputListener): void;
12
- };
1
+ import type { FormatConfig } from "../../utils/BaseConnection.js";
2
+ import type { AudioWorkletConfig } from "../../BaseConversation.js";
3
+ import type { InputController, InputDeviceConfig, InputConfig, InputEventTarget, InputListener } from "../../InputController.js";
13
4
  export declare class MediaDeviceInput implements InputController, InputEventTarget {
14
5
  private readonly context;
15
6
  private readonly analyser;
@@ -0,0 +1 @@
1
+ {"version":3,"file":"input.d.ts","sourceRoot":"","sources":["../../../src/platform/web/input.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,+BAA+B,CAAC;AAElE,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,2BAA2B,CAAC;AAEpE,OAAO,KAAK,EACV,eAAe,EACf,iBAAiB,EACjB,WAAW,EACX,gBAAgB,EAChB,aAAa,EACd,MAAM,0BAA0B,CAAC;AAelC,qBAAa,gBAAiB,YAAW,eAAe,EAAE,gBAAgB;IA2GtE,OAAO,CAAC,QAAQ,CAAC,OAAO;IACxB,OAAO,CAAC,QAAQ,CAAC,QAAQ;IACzB,OAAO,CAAC,QAAQ,CAAC,OAAO;IACxB,OAAO,CAAC,WAAW;IACnB,OAAO,CAAC,iBAAiB;IACzB,OAAO,CAAC,WAAW;IACnB,OAAO,CAAC,OAAO;WAhHG,MAAM,CAAC,EACzB,UAAU,EACV,MAAM,EACN,6BAA6B,EAC7B,aAAa,EACb,YAAY,EACZ,iBAAiB,EACjB,OAAO,GACR,EAAE,YAAY,GACb,WAAW,GACX,kBAAkB,GAAG,OAAO,CAAC,gBAAgB,CAAC;IAmFhD,OAAO,CAAC,MAAM,CAAC,qBAAqB;IASpC,OAAO,CAAC,KAAK,CAAS;IACtB,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAiB;IAEhD,OAAO;IAsBA,WAAW,IAAI,YAAY;IAI3B,SAAS,IAAI,MAAM;IAKnB,oBAAoB,CAAC,MAAM,EAAE,UAAU,CAAC,WAAW,CAAC,GAAG,IAAI;IAQ3D,OAAO,IAAI,OAAO;IAIlB,WAAW,CAAC,QAAQ,EAAE,aAAa,GAAG,IAAI;IAI1C,cAAc,CAAC,QAAQ,EAAE,aAAa,GAAG,IAAI;IAIpD,OAAO,CAAC,0BAA0B;IAOrB,KAAK;IASL,QAAQ,CAAC,OAAO,EAAE,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC;IAKtD,OAAO,CAAC,YAAY,CAAkB;IACzB,SAAS,CACpB,MAAM,CAAC,EAAE,OAAO,CAAC,YAAY,CAAC,GAAG,iBAAiB,GACjD,OAAO,CAAC,IAAI,CAAC;IAkDhB,OAAO,CAAC,uBAAuB,CAe7B;CACH"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"input.js","sourceRoot":"","sources":["../../../src/platform/web/input.ts"],"names":[],"mappings":"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"}
@@ -1,24 +1,6 @@
1
- import type { FormatConfig } from "./connection.js";
2
- import type { AudioWorkletConfig } from "../BaseConversation.js";
3
- import type { OutputController, OutputDeviceConfig } from "../OutputController.js";
4
- export type OutputConfig = OutputDeviceConfig;
5
- export type OutputAudioEvent = {
6
- audio_base_64: string;
7
- };
8
- export type OutputListener = (event: OutputAudioEvent) => void;
9
- export type OutputEventTarget = {
10
- addListener(listener: OutputListener): void;
11
- removeListener(listener: OutputListener): void;
12
- };
13
- export type PlaybackStateEvent = MessageEvent<{
14
- type: "process";
15
- finished: boolean;
16
- }>;
17
- export type PlaybackListener = (event: PlaybackStateEvent) => void;
18
- export type PlaybackEventTarget = {
19
- addListener(listener: PlaybackListener): void;
20
- removeListener(listener: PlaybackListener): void;
21
- };
1
+ import type { FormatConfig } from "../../utils/BaseConnection.js";
2
+ import type { AudioWorkletConfig } from "../../BaseConversation.js";
3
+ import type { OutputController, OutputDeviceConfig, OutputConfig, PlaybackEventTarget, PlaybackListener } from "../../OutputController.js";
22
4
  export declare class MediaDeviceOutput implements OutputController, PlaybackEventTarget {
23
5
  private readonly context;
24
6
  private readonly analyser;
@@ -0,0 +1 @@
1
+ {"version":3,"file":"output.d.ts","sourceRoot":"","sources":["../../../src/platform/web/output.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,+BAA+B,CAAC;AAClE,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,2BAA2B,CAAC;AAEpE,OAAO,KAAK,EACV,gBAAgB,EAChB,kBAAkB,EAClB,YAAY,EACZ,mBAAmB,EACnB,gBAAgB,EACjB,MAAM,2BAA2B,CAAC;AAMnC,qBAAa,iBACX,YAAW,gBAAgB,EAAE,mBAAmB;IA2F9C,OAAO,CAAC,QAAQ,CAAC,OAAO;IACxB,OAAO,CAAC,QAAQ,CAAC,QAAQ;IACzB,OAAO,CAAC,QAAQ,CAAC,IAAI;IACrB,OAAO,CAAC,QAAQ,CAAC,OAAO;IACxB,OAAO,CAAC,QAAQ,CAAC,YAAY;WA7FX,MAAM,CAAC,EACzB,UAAU,EACV,MAAM,EACN,cAAc,EACd,YAAY,EACZ,iBAAiB,GAClB,EAAE,YAAY,GACb,YAAY,GACZ,kBAAkB,GAAG,OAAO,CAAC,iBAAiB,CAAC;IA2EjD,OAAO,CAAC,MAAM,CAAK;IACnB,OAAO,CAAC,WAAW,CAAS;IAC5B,OAAO,CAAC,gBAAgB,CAA8C;IACtE,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAiB;IAEhD,OAAO;IAgBA,WAAW,IAAI,YAAY;IAI3B,SAAS,IAAI,MAAM;IAInB,oBAAoB,CAAC,MAAM,EAAE,UAAU,CAAC,WAAW,CAAC,GAAG,IAAI;IAI3D,WAAW,CAAC,QAAQ,EAAE,gBAAgB,GAAG,IAAI;IAI7C,cAAc,CAAC,QAAQ,EAAE,gBAAgB,GAAG,IAAI;IAIhD,SAAS,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI;IAK/B,SAAS,CAAC,KAAK,EAAE,WAAW,GAAG,IAAI;IAWnC,SAAS,CAAC,aAAa,SAAO,GAAG,IAAI;IA2B/B,SAAS,CACpB,MAAM,CAAC,EAAE,OAAO,CAAC,YAAY,CAAC,GAAG,kBAAkB,GAClD,OAAO,CAAC,IAAI,CAAC;IAgBH,KAAK;CAcnB"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"output.js","sourceRoot":"","sources":["../../../src/platform/web/output.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"rawAudioProcessor.generated.d.ts","sourceRoot":"","sources":["../../../src/platform/web/rawAudioProcessor.generated.ts"],"names":[],"mappings":"AAGA,eAAO,MAAM,qBAAqB,yDAgIjC,CAAC"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"rawAudioProcessor.generated.js","sourceRoot":"","sources":["../../../src/platform/web/rawAudioProcessor.generated.ts"],"names":[],"mappings":"AAAA,gEAAgE;AAChE,OAAO,EAAE,yBAAyB,EAAE,MAAM,gCAAgC,CAAC;AAE3E,MAAM,CAAC,MAAM,qBAAqB,GAAG,yBAAyB,CAC5D,mBAAmB;AACnB,sBAAsB;AACtB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA4HD,CACA,CAAC"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"scribeAudioProcessor.generated.d.ts","sourceRoot":"","sources":["../../../src/platform/web/scribeAudioProcessor.generated.ts"],"names":[],"mappings":"AAGA,eAAO,MAAM,wBAAwB,yDA8GpC,CAAC"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"scribeAudioProcessor.generated.js","sourceRoot":"","sources":["../../../src/platform/web/scribeAudioProcessor.generated.ts"],"names":[],"mappings":"AAAA,gEAAgE;AAChE,OAAO,EAAE,yBAAyB,EAAE,MAAM,gCAAgC,CAAC;AAE3E,MAAM,CAAC,MAAM,wBAAwB,GAAG,yBAAyB,CAC/D,sBAAsB;AACtB,sBAAsB;AACtB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA0GD,CACA,CAAC"}
@@ -0,0 +1,10 @@
1
+ import type { ScribeMicrophoneSetup } from "../../scribe/microphone.js";
2
+ /**
3
+ * Web implementation of Scribe microphone streaming.
4
+ *
5
+ * Uses `navigator.mediaDevices.getUserMedia`, `AudioContext`, and an
6
+ * `AudioWorkletNode` to capture, resample, and encode microphone audio
7
+ * as base64 PCM16 chunks.
8
+ */
9
+ export declare const webScribeMicrophoneSetup: ScribeMicrophoneSetup;
10
+ //# sourceMappingURL=scribeMicrophone.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"scribeMicrophone.d.ts","sourceRoot":"","sources":["../../../src/platform/web/scribeMicrophone.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAGV,qBAAqB,EACtB,MAAM,4BAA4B,CAAC;AAMpC;;;;;;GAMG;AACH,eAAO,MAAM,wBAAwB,EAAE,qBAmEtC,CAAC"}
@@ -0,0 +1,65 @@
1
+ import { arrayBufferToBase64 } from "../../utils/audio.js";
2
+ import { loadScribeAudioProcessor } from "./scribeAudioProcessor.generated.js";
3
+ const TARGET_SAMPLE_RATE = 16000;
4
+ /**
5
+ * Web implementation of Scribe microphone streaming.
6
+ *
7
+ * Uses `navigator.mediaDevices.getUserMedia`, `AudioContext`, and an
8
+ * `AudioWorkletNode` to capture, resample, and encode microphone audio
9
+ * as base64 PCM16 chunks.
10
+ */
11
+ export const webScribeMicrophoneSetup = async (config, onAudioData) => {
12
+ // Get microphone access
13
+ const stream = await navigator.mediaDevices.getUserMedia({
14
+ audio: {
15
+ deviceId: config.deviceId,
16
+ echoCancellation: config.echoCancellation ?? true,
17
+ noiseSuppression: config.noiseSuppression ?? true,
18
+ autoGainControl: config.autoGainControl ?? true,
19
+ channelCount: config.channelCount ?? 1,
20
+ sampleRate: { ideal: TARGET_SAMPLE_RATE },
21
+ },
22
+ });
23
+ // Get the actual sample rate from the stream — the ideal may not have been honored
24
+ const [audioTrack] = stream.getAudioTracks();
25
+ const streamSampleRate = audioTrack?.getSettings().sampleRate;
26
+ // Create audio context matching the stream's sample rate to avoid Firefox errors.
27
+ // Firefox requires the AudioContext to match the microphone's native sample rate.
28
+ const audioContext = new AudioContext(streamSampleRate ? { sampleRate: streamSampleRate } : {});
29
+ // Load scribe worklet
30
+ await loadScribeAudioProcessor(audioContext.audioWorklet);
31
+ // Set up audio pipeline
32
+ const source = audioContext.createMediaStreamSource(stream);
33
+ const scribeNode = new AudioWorkletNode(audioContext, "scribeAudioProcessor");
34
+ // Configure the worklet with sample rate info for resampling
35
+ // (only needed when AudioContext sample rate differs from target)
36
+ if (audioContext.sampleRate !== TARGET_SAMPLE_RATE) {
37
+ scribeNode.port.postMessage({
38
+ type: "configure",
39
+ inputSampleRate: audioContext.sampleRate,
40
+ outputSampleRate: TARGET_SAMPLE_RATE,
41
+ });
42
+ }
43
+ // Handle audio data from worklet
44
+ scribeNode.port.onmessage = event => {
45
+ onAudioData(arrayBufferToBase64(event.data.audioData));
46
+ };
47
+ // Connect audio pipeline
48
+ source.connect(scribeNode);
49
+ // Resume audio context if needed
50
+ if (audioContext.state === "suspended") {
51
+ await audioContext.resume();
52
+ }
53
+ return {
54
+ mediaStreamTrack: audioTrack,
55
+ cleanup: () => {
56
+ for (const track of stream.getTracks()) {
57
+ track.stop();
58
+ }
59
+ source.disconnect();
60
+ scribeNode.disconnect();
61
+ void audioContext.close();
62
+ },
63
+ };
64
+ };
65
+ //# sourceMappingURL=scribeMicrophone.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"scribeMicrophone.js","sourceRoot":"","sources":["../../../src/platform/web/scribeMicrophone.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,mBAAmB,EAAE,MAAM,sBAAsB,CAAC;AAC3D,OAAO,EAAE,wBAAwB,EAAE,MAAM,qCAAqC,CAAC;AAE/E,MAAM,kBAAkB,GAAG,KAAK,CAAC;AAEjC;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,wBAAwB,GAA0B,KAAK,EAClE,MAA8B,EAC9B,WAA0C,EACT,EAAE;IACnC,wBAAwB;IACxB,MAAM,MAAM,GAAG,MAAM,SAAS,CAAC,YAAY,CAAC,YAAY,CAAC;QACvD,KAAK,EAAE;YACL,QAAQ,EAAE,MAAM,CAAC,QAAQ;YACzB,gBAAgB,EAAE,MAAM,CAAC,gBAAgB,IAAI,IAAI;YACjD,gBAAgB,EAAE,MAAM,CAAC,gBAAgB,IAAI,IAAI;YACjD,eAAe,EAAE,MAAM,CAAC,eAAe,IAAI,IAAI;YAC/C,YAAY,EAAE,MAAM,CAAC,YAAY,IAAI,CAAC;YACtC,UAAU,EAAE,EAAE,KAAK,EAAE,kBAAkB,EAAE;SAC1C;KACF,CAAC,CAAC;IAEH,mFAAmF;IACnF,MAAM,CAAC,UAAU,CAAC,GAAG,MAAM,CAAC,cAAc,EAAE,CAAC;IAC7C,MAAM,gBAAgB,GAAG,UAAU,EAAE,WAAW,EAAE,CAAC,UAAU,CAAC;IAE9D,kFAAkF;IAClF,kFAAkF;IAClF,MAAM,YAAY,GAAG,IAAI,YAAY,CACnC,gBAAgB,CAAC,CAAC,CAAC,EAAE,UAAU,EAAE,gBAAgB,EAAE,CAAC,CAAC,CAAC,EAAE,CACzD,CAAC;IAEF,sBAAsB;IACtB,MAAM,wBAAwB,CAAC,YAAY,CAAC,YAAY,CAAC,CAAC;IAE1D,wBAAwB;IACxB,MAAM,MAAM,GAAG,YAAY,CAAC,uBAAuB,CAAC,MAAM,CAAC,CAAC;IAC5D,MAAM,UAAU,GAAG,IAAI,gBAAgB,CAAC,YAAY,EAAE,sBAAsB,CAAC,CAAC;IAE9E,6DAA6D;IAC7D,kEAAkE;IAClE,IAAI,YAAY,CAAC,UAAU,KAAK,kBAAkB,EAAE,CAAC;QACnD,UAAU,CAAC,IAAI,CAAC,WAAW,CAAC;YAC1B,IAAI,EAAE,WAAW;YACjB,eAAe,EAAE,YAAY,CAAC,UAAU;YACxC,gBAAgB,EAAE,kBAAkB;SACrC,CAAC,CAAC;IACL,CAAC;IAED,iCAAiC;IACjC,UAAU,CAAC,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC,EAAE;QAClC,WAAW,CAAC,mBAAmB,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC;IACzD,CAAC,CAAC;IAEF,yBAAyB;IACzB,MAAM,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;IAE3B,iCAAiC;IACjC,IAAI,YAAY,CAAC,KAAK,KAAK,WAAW,EAAE,CAAC;QACvC,MAAM,YAAY,CAAC,MAAM,EAAE,CAAC;IAC9B,CAAC;IAED,OAAO;QACL,gBAAgB,EAAE,UAAU;QAC5B,OAAO,EAAE,GAAG,EAAE;YACZ,KAAK,MAAM,KAAK,IAAI,MAAM,CAAC,SAAS,EAAE,EAAE,CAAC;gBACvC,KAAK,CAAC,IAAI,EAAE,CAAC;YACf,CAAC;YACD,MAAM,CAAC,UAAU,EAAE,CAAC;YACpB,UAAU,CAAC,UAAU,EAAE,CAAC;YACxB,KAAK,YAAY,CAAC,KAAK,EAAE,CAAC;QAC5B,CAAC;KACF,CAAC;AACJ,CAAC,CAAC"}
@@ -0,0 +1,4 @@
1
+ import { type VolumeProvider } from "../../utils/volumeProvider.js";
2
+ export { type VolumeProvider } from "../../utils/volumeProvider.js";
3
+ export declare function createAnalyserVolumeProvider(analyser: AnalyserNode, sampleRate: number): VolumeProvider;
4
+ //# sourceMappingURL=volumeProvider.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"volumeProvider.d.ts","sourceRoot":"","sources":["../../../src/platform/web/volumeProvider.ts"],"names":[],"mappings":"AACA,OAAO,EACL,KAAK,cAAc,EAEpB,MAAM,+BAA+B,CAAC;AAEvC,OAAO,EAAE,KAAK,cAAc,EAAE,MAAM,+BAA+B,CAAC;AAEpE,wBAAgB,4BAA4B,CAC1C,QAAQ,EAAE,YAAY,EACtB,UAAU,EAAE,MAAM,GACjB,cAAc,CAqBhB"}
@@ -0,0 +1,24 @@
1
+ import { calculateVolume } from "../../utils/calculateVolume.js";
2
+ import { resampleVoiceRange, } from "../../utils/volumeProvider.js";
3
+ export function createAnalyserVolumeProvider(analyser, sampleRate) {
4
+ const binCount = analyser.frequencyBinCount;
5
+ let rawData;
6
+ // Resampled buffer used by getVolume() so the scalar is computed from the
7
+ // voice-frequency range only, matching RN's RMS processor behaviour.
8
+ let voiceData;
9
+ return {
10
+ getVolume() {
11
+ rawData ??= new Uint8Array(binCount);
12
+ voiceData ??= new Uint8Array(binCount);
13
+ analyser.getByteFrequencyData(rawData);
14
+ resampleVoiceRange(rawData, voiceData, sampleRate);
15
+ return calculateVolume(voiceData);
16
+ },
17
+ getByteFrequencyData(buffer) {
18
+ rawData ??= new Uint8Array(binCount);
19
+ analyser.getByteFrequencyData(rawData);
20
+ resampleVoiceRange(rawData, buffer, sampleRate);
21
+ },
22
+ };
23
+ }
24
+ //# sourceMappingURL=volumeProvider.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"volumeProvider.js","sourceRoot":"","sources":["../../../src/platform/web/volumeProvider.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,gCAAgC,CAAC;AACjE,OAAO,EAEL,kBAAkB,GACnB,MAAM,+BAA+B,CAAC;AAIvC,MAAM,UAAU,4BAA4B,CAC1C,QAAsB,EACtB,UAAkB;IAElB,MAAM,QAAQ,GAAG,QAAQ,CAAC,iBAAiB,CAAC;IAC5C,IAAI,OAA4C,CAAC;IACjD,0EAA0E;IAC1E,qEAAqE;IACrE,IAAI,SAA8C,CAAC;IAEnD,OAAO;QACL,SAAS;YACP,OAAO,KAAK,IAAI,UAAU,CAAC,QAAQ,CAA4B,CAAC;YAChE,SAAS,KAAK,IAAI,UAAU,CAAC,QAAQ,CAA4B,CAAC;YAClE,QAAQ,CAAC,oBAAoB,CAAC,OAAO,CAAC,CAAC;YACvC,kBAAkB,CAAC,OAAO,EAAE,SAAS,EAAE,UAAU,CAAC,CAAC;YACnD,OAAO,eAAe,CAAC,SAAS,CAAC,CAAC;QACpC,CAAC;QACD,oBAAoB,CAAC,MAA+B;YAClD,OAAO,KAAK,IAAI,UAAU,CAAC,QAAQ,CAA4B,CAAC;YAChE,QAAQ,CAAC,oBAAoB,CAAC,OAAO,CAAC,CAAC;YACvC,kBAAkB,CAAC,OAAO,EAAE,MAAM,EAAE,UAAU,CAAC,CAAC;QAClD,CAAC;KACF,CAAC;AACJ,CAAC"}
@@ -0,0 +1,23 @@
1
+ import type { RemoteAudioTrack } from "livekit-client";
2
+ import type { FormatConfig } from "../../utils/BaseConnection.js";
3
+ import type { WebRTCAudioAdapter, AnalysisResult } from "../../WebRTCAudioAdapter.js";
4
+ /**
5
+ * Web implementation of {@link WebRTCAudioAdapter}.
6
+ *
7
+ * Uses AudioContext, HTMLAudioElement, and AudioWorkletNode to:
8
+ * - Attach remote audio tracks for playback via the DOM
9
+ * - Analyse input/output volume via AnalyserNode
10
+ * - Capture raw output audio via an AudioWorklet for the `onAudio` callback
11
+ */
12
+ export declare class WebAudioAdapter implements WebRTCAudioAdapter {
13
+ private audioElements;
14
+ private inputAudioContext;
15
+ private audioCaptureContext;
16
+ attachRemoteTrack(track: RemoteAudioTrack, outputDeviceId: string | null): Promise<void>;
17
+ setupInputAnalysis(mediaStreamTrack: MediaStreamTrack): AnalysisResult;
18
+ setupOutputAnalysis(track: RemoteAudioTrack, format: FormatConfig, onAudioData: (audioData: ArrayBuffer, maxVolume: number) => void): Promise<AnalysisResult>;
19
+ setVolume(volume: number): void;
20
+ setOutputDevice(deviceId: string): Promise<void>;
21
+ cleanup(): void;
22
+ }
23
+ //# sourceMappingURL=webAudioAdapter.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"webAudioAdapter.d.ts","sourceRoot":"","sources":["../../../src/platform/web/webAudioAdapter.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AACvD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,+BAA+B,CAAC;AAClE,OAAO,KAAK,EACV,kBAAkB,EAClB,cAAc,EACf,MAAM,6BAA6B,CAAC;AAIrC;;;;;;;GAOG;AACH,qBAAa,eAAgB,YAAW,kBAAkB;IACxD,OAAO,CAAC,aAAa,CAA0B;IAE/C,OAAO,CAAC,iBAAiB,CAA6B;IACtD,OAAO,CAAC,mBAAmB,CAA6B;IAElD,iBAAiB,CACrB,KAAK,EAAE,gBAAgB,EACvB,cAAc,EAAE,MAAM,GAAG,IAAI,GAC5B,OAAO,CAAC,IAAI,CAAC;IAyBhB,kBAAkB,CAAC,gBAAgB,EAAE,gBAAgB,GAAG,cAAc;IAsBhE,mBAAmB,CACvB,KAAK,EAAE,gBAAgB,EACvB,MAAM,EAAE,YAAY,EACpB,WAAW,EAAE,CAAC,SAAS,EAAE,WAAW,EAAE,SAAS,EAAE,MAAM,KAAK,IAAI,GAC/D,OAAO,CAAC,cAAc,CAAC;IAgD1B,SAAS,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI;IAMzB,eAAe,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAiBtD,OAAO,IAAI,IAAI;CAuBhB"}
@@ -0,0 +1,127 @@
1
+ import { loadRawAudioProcessor } from "./rawAudioProcessor.generated.js";
2
+ import { createAnalyserVolumeProvider } from "./volumeProvider.js";
3
+ /**
4
+ * Web implementation of {@link WebRTCAudioAdapter}.
5
+ *
6
+ * Uses AudioContext, HTMLAudioElement, and AudioWorkletNode to:
7
+ * - Attach remote audio tracks for playback via the DOM
8
+ * - Analyse input/output volume via AnalyserNode
9
+ * - Capture raw output audio via an AudioWorklet for the `onAudio` callback
10
+ */
11
+ export class WebAudioAdapter {
12
+ audioElements = [];
13
+ inputAudioContext = null;
14
+ audioCaptureContext = null;
15
+ async attachRemoteTrack(track, outputDeviceId) {
16
+ const audioElement = track.attach();
17
+ audioElement.autoplay = true;
18
+ audioElement.controls = false;
19
+ // Set output device if one was previously selected
20
+ if (outputDeviceId && audioElement.setSinkId) {
21
+ try {
22
+ await audioElement.setSinkId(outputDeviceId);
23
+ }
24
+ catch (error) {
25
+ console.warn("Failed to set output device for new audio element:", error);
26
+ }
27
+ }
28
+ // Add to DOM (hidden) to ensure it plays
29
+ audioElement.style.display = "none";
30
+ document.body.appendChild(audioElement);
31
+ // Store reference for volume control and cleanup
32
+ this.audioElements.push(audioElement);
33
+ }
34
+ setupInputAnalysis(mediaStreamTrack) {
35
+ // Clean up previous input audio context
36
+ if (this.inputAudioContext) {
37
+ this.inputAudioContext.close().catch(() => { });
38
+ this.inputAudioContext = null;
39
+ }
40
+ const ctx = new AudioContext();
41
+ const analyser = ctx.createAnalyser();
42
+ const source = ctx.createMediaStreamSource(new MediaStream([mediaStreamTrack]));
43
+ source.connect(analyser);
44
+ this.inputAudioContext = ctx;
45
+ return {
46
+ volumeProvider: createAnalyserVolumeProvider(analyser, ctx.sampleRate),
47
+ analyser,
48
+ };
49
+ }
50
+ async setupOutputAnalysis(track, format, onAudioData) {
51
+ // Clean up previous audio capture context
52
+ if (this.audioCaptureContext) {
53
+ this.audioCaptureContext.close().catch(() => { });
54
+ this.audioCaptureContext = null;
55
+ }
56
+ // Create audio context for processing
57
+ const audioContext = new AudioContext();
58
+ this.audioCaptureContext = audioContext;
59
+ // Create analyser for frequency data
60
+ const analyser = audioContext.createAnalyser();
61
+ analyser.fftSize = 2048;
62
+ analyser.smoothingTimeConstant = 0.8;
63
+ // Create MediaStream from the track
64
+ const mediaStream = new MediaStream([track.mediaStreamTrack]);
65
+ // Create audio source from the stream
66
+ const source = audioContext.createMediaStreamSource(mediaStream);
67
+ const volumeProvider = createAnalyserVolumeProvider(analyser, audioContext.sampleRate);
68
+ await loadRawAudioProcessor(audioContext.audioWorklet);
69
+ const worklet = new AudioWorkletNode(audioContext, "rawAudioProcessor");
70
+ // Configure the processor and set up the message listener
71
+ // before connecting the graph, so no early messages are missed.
72
+ worklet.port.postMessage({
73
+ type: "setFormat",
74
+ format: format.format,
75
+ sampleRate: format.sampleRate,
76
+ });
77
+ worklet.port.onmessage = (event) => {
78
+ const [audioData, maxVolume] = event.data;
79
+ onAudioData(audioData.buffer, maxVolume);
80
+ };
81
+ // Connect the audio graph: source → analyser → worklet
82
+ source.connect(analyser);
83
+ analyser.connect(worklet);
84
+ return { volumeProvider, analyser };
85
+ }
86
+ setVolume(volume) {
87
+ for (const element of this.audioElements) {
88
+ element.volume = volume;
89
+ }
90
+ }
91
+ async setOutputDevice(deviceId) {
92
+ if (!("setSinkId" in HTMLAudioElement.prototype)) {
93
+ throw new Error("setSinkId is not supported in this browser");
94
+ }
95
+ await Promise.all(this.audioElements.map(async (element) => {
96
+ try {
97
+ await element.setSinkId(deviceId);
98
+ }
99
+ catch (error) {
100
+ console.error("Failed to set sink ID for audio element:", error);
101
+ throw error;
102
+ }
103
+ }));
104
+ }
105
+ cleanup() {
106
+ // Clean up input audio context
107
+ if (this.inputAudioContext) {
108
+ this.inputAudioContext.close().catch(error => {
109
+ console.warn("Error closing input audio context:", error);
110
+ });
111
+ this.inputAudioContext = null;
112
+ }
113
+ // Clean up audio capture context
114
+ if (this.audioCaptureContext) {
115
+ this.audioCaptureContext.close().catch(error => {
116
+ console.warn("Error closing audio capture context:", error);
117
+ });
118
+ this.audioCaptureContext = null;
119
+ }
120
+ // Clean up audio elements
121
+ for (const element of this.audioElements) {
122
+ element.remove();
123
+ }
124
+ this.audioElements = [];
125
+ }
126
+ }
127
+ //# sourceMappingURL=webAudioAdapter.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"webAudioAdapter.js","sourceRoot":"","sources":["../../../src/platform/web/webAudioAdapter.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,181 @@
1
+ declare global {
2
+ interface Console {
3
+ log(message?: unknown, ...optionalParams: unknown[]): void;
4
+ error(message?: unknown, ...optionalParams: unknown[]): void;
5
+ warn(message?: unknown, ...optionalParams: unknown[]): void;
6
+ info(message?: unknown, ...optionalParams: unknown[]): void;
7
+ debug(message?: unknown, ...optionalParams: unknown[]): void;
8
+ }
9
+ var console: Console;
10
+ function setTimeout(callback: () => void, ms?: number, ...args: unknown[]): number;
11
+ function setInterval(callback: () => void, ms?: number, ...args: unknown[]): number;
12
+ function setImmediate(callback: () => void, ...args: unknown[]): number;
13
+ function clearTimeout(handle?: number): void;
14
+ function clearInterval(handle?: number): void;
15
+ function clearImmediate(handle?: number): void;
16
+ function queueMicrotask(callback: () => void): void;
17
+ function fetch(input: string | Request, init?: RequestInit): Promise<Response>;
18
+ class Headers {
19
+ constructor(init?: Record<string, string> | [string, string][]);
20
+ append(name: string, value: string): void;
21
+ get(name: string): string | null;
22
+ has(name: string): boolean;
23
+ set(name: string, value: string): void;
24
+ }
25
+ class Request {
26
+ constructor(input: string | Request, init?: RequestInit);
27
+ readonly url: string;
28
+ readonly method: string;
29
+ readonly headers: Headers;
30
+ }
31
+ interface RequestInit {
32
+ method?: string;
33
+ headers?: Record<string, string> | Headers;
34
+ body?: string | FormData | Blob | ArrayBuffer;
35
+ signal?: AbortSignal;
36
+ }
37
+ class Response {
38
+ readonly ok: boolean;
39
+ readonly status: number;
40
+ readonly statusText: string;
41
+ readonly headers: Headers;
42
+ json(): Promise<unknown>;
43
+ text(): Promise<string>;
44
+ blob(): Promise<Blob>;
45
+ arrayBuffer(): Promise<ArrayBuffer>;
46
+ }
47
+ class FormData {
48
+ append(name: string, value: string | Blob, filename?: string): void;
49
+ }
50
+ class Blob {
51
+ readonly size: number;
52
+ readonly type: string;
53
+ constructor(parts?: (string | ArrayBuffer | Blob)[], options?: {
54
+ type?: string;
55
+ });
56
+ text(): Promise<string>;
57
+ arrayBuffer(): Promise<ArrayBuffer>;
58
+ }
59
+ class URL {
60
+ constructor(url: string, base?: string);
61
+ readonly href: string;
62
+ readonly origin: string;
63
+ readonly protocol: string;
64
+ readonly host: string;
65
+ readonly hostname: string;
66
+ readonly pathname: string;
67
+ readonly search: string;
68
+ readonly searchParams: URLSearchParams;
69
+ toString(): string;
70
+ }
71
+ class URLSearchParams {
72
+ constructor(init?: string | Record<string, string> | [string, string][]);
73
+ append(name: string, value: string): void;
74
+ get(name: string): string | null;
75
+ has(name: string): boolean;
76
+ set(name: string, value: string): void;
77
+ toString(): string;
78
+ }
79
+ class TextEncoder {
80
+ encode(input?: string): Uint8Array;
81
+ }
82
+ class TextDecoder {
83
+ constructor(label?: string, options?: {
84
+ fatal?: boolean;
85
+ });
86
+ decode(input?: ArrayBuffer | Uint8Array): string;
87
+ }
88
+ function btoa(data: string): string;
89
+ function atob(data: string): string;
90
+ class AbortController {
91
+ readonly signal: AbortSignal;
92
+ abort(reason?: unknown): void;
93
+ }
94
+ class AbortSignal {
95
+ readonly aborted: boolean;
96
+ }
97
+ class WebSocket {
98
+ static readonly CONNECTING: 0;
99
+ static readonly OPEN: 1;
100
+ static readonly CLOSING: 2;
101
+ static readonly CLOSED: 3;
102
+ constructor(url: string, protocols?: string | string[]);
103
+ readonly readyState: number;
104
+ send(data: string | ArrayBuffer | Uint8Array): void;
105
+ close(code?: number, reason?: string): void;
106
+ addEventListener(type: "open", listener: (event: Event) => void, options?: {
107
+ once?: boolean;
108
+ }): void;
109
+ addEventListener(type: "close", listener: (event: CloseEvent) => void, options?: {
110
+ once?: boolean;
111
+ }): void;
112
+ addEventListener(type: "message", listener: (event: MessageEvent) => void, options?: {
113
+ once?: boolean;
114
+ }): void;
115
+ addEventListener(type: "error", listener: (event: Event) => void, options?: {
116
+ once?: boolean;
117
+ }): void;
118
+ }
119
+ interface MediaStreamTrack {
120
+ readonly kind: string;
121
+ readonly id: string;
122
+ enabled: boolean;
123
+ stop(): void;
124
+ clone(): MediaStreamTrack;
125
+ getConstraints(): MediaTrackConstraints;
126
+ }
127
+ interface MediaDeviceConstraintParameters {
128
+ exact?: string | string[];
129
+ ideal?: string | string[];
130
+ }
131
+ type MediaDeviceConstraint = string | string[] | MediaDeviceConstraintParameters;
132
+ interface MediaTrackConstraints {
133
+ deviceId?: MediaDeviceConstraint;
134
+ echoCancellation?: boolean;
135
+ noiseSuppression?: boolean;
136
+ autoGainControl?: boolean;
137
+ channelCount?: number | {
138
+ exact?: number;
139
+ ideal?: number;
140
+ };
141
+ sampleRate?: number | {
142
+ exact?: number;
143
+ ideal?: number;
144
+ };
145
+ }
146
+ class MediaStream {
147
+ constructor(tracks?: MediaStreamTrack[]);
148
+ getTracks(): MediaStreamTrack[];
149
+ getAudioTracks(): MediaStreamTrack[];
150
+ addTrack(track: MediaStreamTrack): void;
151
+ }
152
+ /**
153
+ * Minimal AnalyserNode declaration for the deprecated
154
+ * `InputController.getAnalyser()` / `OutputController.getAnalyser()`
155
+ * return types. On web this resolves to the full DOM AnalyserNode; on
156
+ * other platforms the methods return `undefined`.
157
+ */
158
+ interface AnalyserNode {
159
+ readonly frequencyBinCount: number;
160
+ getByteFrequencyData(array: Uint8Array): void;
161
+ getByteTimeDomainData(array: Uint8Array): void;
162
+ getFloatFrequencyData(array: Float32Array): void;
163
+ }
164
+ interface Event {
165
+ readonly type: string;
166
+ }
167
+ interface CloseEvent extends Event {
168
+ readonly code: number;
169
+ readonly reason: string;
170
+ readonly wasClean: boolean;
171
+ }
172
+ interface MessageEvent<T = string> extends Event {
173
+ readonly data: T;
174
+ }
175
+ }
176
+ /**
177
+ * Throws if any of the expected cross-platform globals are missing.
178
+ * Call once at startup to surface environment issues early.
179
+ */
180
+ export declare function assertRuntimeCompatibility(): void;
181
+ //# sourceMappingURL=runtime.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"runtime.d.ts","sourceRoot":"","sources":["../src/runtime.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,34 @@
1
+ // Cross-platform runtime globals.
2
+ //
3
+ // These APIs are available natively on the web, Node.js (>=18), and
4
+ // React Native, but are not part of TypeScript's standard library when
5
+ // `lib` omits "DOM". We declare the minimal subset actually used by
6
+ // the codebase so that `tsconfig.common.json` (lib: ["ES2022"]) compiles
7
+ // without DOM.
8
+ //
9
+ // Because this file has an `export`, TypeScript treats it as a module.
10
+ // All ambient declarations must therefore be inside `declare global`.
11
+ // ---------------------------------------------------------------------------
12
+ // Runtime assertions
13
+ // ---------------------------------------------------------------------------
14
+ /**
15
+ * Throws if any of the expected cross-platform globals are missing.
16
+ * Call once at startup to surface environment issues early.
17
+ */
18
+ export function assertRuntimeCompatibility() {
19
+ const required = [
20
+ "fetch",
21
+ "WebSocket",
22
+ "TextEncoder",
23
+ "TextDecoder",
24
+ "URL",
25
+ "btoa",
26
+ "atob",
27
+ ];
28
+ for (const name of required) {
29
+ if (typeof globalThis[name] === "undefined") {
30
+ throw new Error(`${name} is not available in this environment.`);
31
+ }
32
+ }
33
+ }
34
+ //# sourceMappingURL=runtime.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"runtime.js","sourceRoot":"","sources":["../src/runtime.ts"],"names":[],"mappings":"AAAA,kCAAkC;AAClC,EAAE;AACF,oEAAoE;AACpE,uEAAuE;AACvE,oEAAoE;AACpE,yEAAyE;AACzE,eAAe;AACf,EAAE;AACF,uEAAuE;AACvE,sEAAsE;AA6QtE,8EAA8E;AAC9E,qBAAqB;AACrB,8EAA8E;AAE9E;;;GAGG;AACH,MAAM,UAAU,0BAA0B;IACxC,MAAM,QAAQ,GAAG;QACf,OAAO;QACP,WAAW;QACX,aAAa;QACb,aAAa;QACb,KAAK;QACL,MAAM;QACN,MAAM;KACP,CAAC;IACF,KAAK,MAAM,IAAI,IAAI,QAAQ,EAAE,CAAC;QAC5B,IAAI,OAAQ,UAAsC,CAAC,IAAI,CAAC,KAAK,WAAW,EAAE,CAAC;YACzE,MAAM,IAAI,KAAK,CAAC,GAAG,IAAI,wCAAwC,CAAC,CAAC;QACnE,CAAC;IACH,CAAC;AACH,CAAC"}