@deepgram/sdk 5.0.0 → 5.1.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 (404) hide show
  1. package/dist/browser/index.global.js +1172 -199
  2. package/dist/cjs/BaseClient.js +2 -2
  3. package/dist/cjs/Client.d.ts +15 -0
  4. package/dist/cjs/Client.js +79 -0
  5. package/dist/cjs/api/resources/agent/resources/v1/client/Client.d.ts +2 -0
  6. package/dist/cjs/api/resources/agent/resources/v1/client/Client.js +5 -5
  7. package/dist/cjs/api/resources/agent/resources/v1/client/Socket.d.ts +6 -6
  8. package/dist/cjs/api/resources/agent/resources/v1/client/Socket.js +6 -6
  9. package/dist/cjs/api/resources/agent/resources/v1/exports.d.ts +1 -0
  10. package/dist/cjs/api/resources/agent/resources/v1/exports.js +3 -1
  11. package/dist/cjs/api/resources/agent/resources/v1/resources/settings/resources/think/resources/models/client/Client.js +1 -1
  12. package/dist/cjs/api/resources/agent/resources/v1/types/AgentV1FunctionCallRequest.d.ts +2 -0
  13. package/dist/cjs/api/resources/agent/resources/v1/types/AgentV1History.d.ts +24 -0
  14. package/dist/cjs/api/resources/agent/resources/v1/types/AgentV1History.js +3 -0
  15. package/dist/cjs/api/resources/agent/resources/v1/types/AgentV1Settings.d.ts +2 -1
  16. package/dist/cjs/api/resources/agent/resources/v1/types/index.d.ts +1 -0
  17. package/dist/cjs/api/resources/agent/resources/v1/types/index.js +1 -0
  18. package/dist/cjs/api/resources/auth/resources/v1/resources/tokens/client/Client.js +1 -1
  19. package/dist/cjs/api/resources/index.d.ts +1 -0
  20. package/dist/cjs/api/resources/index.js +2 -1
  21. package/dist/cjs/api/resources/listen/resources/v1/client/Client.d.ts +2 -0
  22. package/dist/cjs/api/resources/listen/resources/v1/client/Client.js +5 -5
  23. package/dist/cjs/api/resources/listen/resources/v1/client/Socket.d.ts +3 -3
  24. package/dist/cjs/api/resources/listen/resources/v1/client/Socket.js +2 -2
  25. package/dist/cjs/api/resources/listen/resources/v1/exports.d.ts +1 -0
  26. package/dist/cjs/api/resources/listen/resources/v1/exports.js +3 -1
  27. package/dist/cjs/api/resources/listen/resources/v1/resources/media/client/Client.d.ts +1 -0
  28. package/dist/cjs/api/resources/listen/resources/v1/resources/media/client/Client.js +11 -2
  29. package/dist/cjs/api/resources/listen/resources/v1/resources/media/client/requests/ListenV1RequestUrl.d.ts +1 -0
  30. package/dist/cjs/api/resources/listen/resources/v2/client/Client.d.ts +2 -0
  31. package/dist/cjs/api/resources/listen/resources/v2/client/Client.js +5 -5
  32. package/dist/cjs/api/resources/listen/resources/v2/client/Socket.d.ts +4 -4
  33. package/dist/cjs/api/resources/listen/resources/v2/client/Socket.js +3 -3
  34. package/dist/cjs/api/resources/listen/resources/v2/exports.d.ts +1 -0
  35. package/dist/cjs/api/resources/listen/resources/v2/exports.js +3 -1
  36. package/dist/cjs/api/resources/listen/resources/v2/types/ListenV2Configure.d.ts +6 -0
  37. package/dist/cjs/api/resources/listen/resources/v2/types/ListenV2TurnInfo.d.ts +11 -0
  38. package/dist/cjs/api/resources/manage/resources/v1/resources/models/client/Client.js +6 -2
  39. package/dist/cjs/api/resources/manage/resources/v1/resources/projects/client/Client.js +9 -5
  40. package/dist/cjs/api/resources/manage/resources/v1/resources/projects/resources/billing/resources/balances/client/Client.js +2 -2
  41. package/dist/cjs/api/resources/manage/resources/v1/resources/projects/resources/billing/resources/breakdown/client/Client.d.ts +2 -1
  42. package/dist/cjs/api/resources/manage/resources/v1/resources/projects/resources/billing/resources/breakdown/client/Client.js +7 -2
  43. package/dist/cjs/api/resources/manage/resources/v1/resources/projects/resources/billing/resources/breakdown/client/requests/BreakdownListRequest.d.ts +2 -1
  44. package/dist/cjs/api/resources/manage/resources/v1/resources/projects/resources/billing/resources/fields/client/Client.js +5 -1
  45. package/dist/cjs/api/resources/manage/resources/v1/resources/projects/resources/billing/resources/purchases/client/Client.js +5 -1
  46. package/dist/cjs/api/resources/manage/resources/v1/resources/projects/resources/keys/client/Client.js +8 -4
  47. package/dist/cjs/api/resources/manage/resources/v1/resources/projects/resources/members/client/Client.js +2 -2
  48. package/dist/cjs/api/resources/manage/resources/v1/resources/projects/resources/members/resources/invites/client/Client.js +3 -3
  49. package/dist/cjs/api/resources/manage/resources/v1/resources/projects/resources/members/resources/scopes/client/Client.js +2 -2
  50. package/dist/cjs/api/resources/manage/resources/v1/resources/projects/resources/models/client/Client.js +6 -2
  51. package/dist/cjs/api/resources/manage/resources/v1/resources/projects/resources/requests/client/Client.js +6 -2
  52. package/dist/cjs/api/resources/manage/resources/v1/resources/projects/resources/usage/client/Client.js +5 -1
  53. package/dist/cjs/api/resources/manage/resources/v1/resources/projects/resources/usage/resources/breakdown/client/Client.js +5 -1
  54. package/dist/cjs/api/resources/manage/resources/v1/resources/projects/resources/usage/resources/fields/client/Client.js +5 -1
  55. package/dist/cjs/api/resources/read/resources/v1/resources/text/client/Client.js +5 -1
  56. package/dist/cjs/api/resources/selfHosted/resources/v1/resources/distributionCredentials/client/Client.d.ts +1 -0
  57. package/dist/cjs/api/resources/selfHosted/resources/v1/resources/distributionCredentials/client/Client.js +9 -4
  58. package/dist/cjs/api/resources/selfHosted/resources/v1/resources/distributionCredentials/client/requests/CreateProjectDistributionCredentialsV1Request.d.ts +1 -0
  59. package/dist/cjs/api/resources/speak/resources/v1/client/Client.d.ts +3 -0
  60. package/dist/cjs/api/resources/speak/resources/v1/client/Client.js +6 -5
  61. package/dist/cjs/api/resources/speak/resources/v1/client/Socket.d.ts +2 -2
  62. package/dist/cjs/api/resources/speak/resources/v1/client/Socket.js +2 -2
  63. package/dist/cjs/api/resources/speak/resources/v1/exports.d.ts +1 -0
  64. package/dist/cjs/api/resources/speak/resources/v1/exports.js +3 -1
  65. package/dist/cjs/api/resources/speak/resources/v1/resources/audio/client/Client.js +7 -2
  66. package/dist/cjs/api/resources/speak/resources/v1/resources/audio/client/requests/SpeakV1Request.d.ts +2 -0
  67. package/dist/cjs/api/resources/speak/resources/v1/types/SpeakV1Metadata.d.ts +2 -4
  68. package/dist/cjs/api/resources/voiceAgent/client/Client.d.ts +15 -0
  69. package/dist/cjs/api/resources/voiceAgent/client/Client.js +21 -0
  70. package/dist/cjs/api/resources/voiceAgent/exports.d.ts +3 -0
  71. package/dist/cjs/api/resources/voiceAgent/exports.js +22 -0
  72. package/dist/cjs/api/resources/voiceAgent/index.d.ts +2 -0
  73. package/dist/cjs/api/resources/voiceAgent/index.js +18 -0
  74. package/dist/cjs/api/resources/voiceAgent/resources/configurations/client/Client.d.ts +89 -0
  75. package/dist/cjs/api/resources/voiceAgent/resources/configurations/client/Client.js +325 -0
  76. package/dist/cjs/api/resources/voiceAgent/resources/configurations/client/index.d.ts +1 -0
  77. package/dist/cjs/api/resources/voiceAgent/resources/configurations/client/index.js +17 -0
  78. package/dist/cjs/api/resources/voiceAgent/resources/configurations/client/requests/CreateAgentConfigurationV1Request.d.ts +14 -0
  79. package/dist/cjs/api/resources/voiceAgent/resources/configurations/client/requests/CreateAgentConfigurationV1Request.js +3 -0
  80. package/dist/cjs/api/resources/voiceAgent/resources/configurations/client/requests/UpdateAgentMetadataV1Request.d.ts +12 -0
  81. package/dist/cjs/api/resources/voiceAgent/resources/configurations/client/requests/UpdateAgentMetadataV1Request.js +3 -0
  82. package/dist/cjs/api/resources/voiceAgent/resources/configurations/client/requests/index.d.ts +2 -0
  83. package/dist/cjs/api/resources/voiceAgent/resources/configurations/client/requests/index.js +2 -0
  84. package/dist/cjs/api/resources/voiceAgent/resources/configurations/exports.d.ts +2 -0
  85. package/dist/cjs/api/resources/voiceAgent/resources/configurations/exports.js +21 -0
  86. package/dist/cjs/api/resources/voiceAgent/resources/configurations/index.d.ts +1 -0
  87. package/dist/cjs/api/resources/voiceAgent/resources/configurations/index.js +17 -0
  88. package/dist/cjs/api/resources/voiceAgent/resources/index.d.ts +4 -0
  89. package/dist/cjs/api/resources/voiceAgent/resources/index.js +43 -0
  90. package/dist/cjs/api/resources/voiceAgent/resources/variables/client/Client.d.ts +92 -0
  91. package/dist/cjs/api/resources/voiceAgent/resources/variables/client/Client.js +325 -0
  92. package/dist/cjs/api/resources/voiceAgent/resources/variables/client/index.d.ts +1 -0
  93. package/dist/cjs/api/resources/voiceAgent/resources/variables/client/index.js +17 -0
  94. package/dist/cjs/api/resources/voiceAgent/resources/variables/client/requests/CreateAgentVariableV1Request.d.ts +16 -0
  95. package/dist/cjs/api/resources/voiceAgent/resources/variables/client/requests/CreateAgentVariableV1Request.js +3 -0
  96. package/dist/cjs/api/resources/voiceAgent/resources/variables/client/requests/UpdateAgentVariableV1Request.d.ts +11 -0
  97. package/dist/cjs/api/resources/voiceAgent/resources/variables/client/requests/UpdateAgentVariableV1Request.js +3 -0
  98. package/dist/cjs/api/resources/voiceAgent/resources/variables/client/requests/index.d.ts +2 -0
  99. package/dist/cjs/api/resources/voiceAgent/resources/variables/client/requests/index.js +2 -0
  100. package/dist/cjs/api/resources/voiceAgent/resources/variables/exports.d.ts +2 -0
  101. package/dist/cjs/api/resources/voiceAgent/resources/variables/exports.js +21 -0
  102. package/dist/cjs/api/resources/voiceAgent/resources/variables/index.d.ts +1 -0
  103. package/dist/cjs/api/resources/voiceAgent/resources/variables/index.js +17 -0
  104. package/dist/cjs/api/types/AgentConfigurationV1.d.ts +15 -0
  105. package/dist/cjs/api/types/AgentConfigurationV1.js +3 -0
  106. package/dist/cjs/api/types/AgentVariableV1.d.ts +14 -0
  107. package/dist/cjs/api/types/AgentVariableV1.js +3 -0
  108. package/dist/cjs/api/types/Cartesia.d.ts +2 -0
  109. package/dist/cjs/api/types/CreateAgentConfigurationV1Response.d.ts +8 -0
  110. package/dist/cjs/api/types/CreateAgentConfigurationV1Response.js +3 -0
  111. package/dist/cjs/api/types/Deepgram.d.ts +2 -0
  112. package/dist/cjs/api/types/DeleteAgentConfigurationV1Response.d.ts +4 -0
  113. package/dist/cjs/api/types/DeleteAgentConfigurationV1Response.js +3 -0
  114. package/dist/cjs/api/types/DeleteAgentVariableV1Response.d.ts +4 -0
  115. package/dist/cjs/api/types/DeleteAgentVariableV1Response.js +3 -0
  116. package/dist/cjs/api/types/ListAgentConfigurationsV1Response.d.ts +5 -0
  117. package/dist/cjs/api/types/ListAgentConfigurationsV1Response.js +3 -0
  118. package/dist/cjs/api/types/ListAgentVariablesV1Response.d.ts +5 -0
  119. package/dist/cjs/api/types/ListAgentVariablesV1Response.js +3 -0
  120. package/dist/cjs/api/types/ListenV1Callback.d.ts +3 -0
  121. package/dist/cjs/api/types/ListenV1Channels.d.ts +3 -0
  122. package/dist/cjs/api/types/ListenV1Endpointing.d.ts +3 -0
  123. package/dist/cjs/api/types/ListenV1Extra.d.ts +3 -0
  124. package/dist/cjs/api/types/ListenV1Keyterm.d.ts +3 -0
  125. package/dist/cjs/api/types/ListenV1Keywords.d.ts +3 -0
  126. package/dist/cjs/api/types/ListenV1Language.d.ts +3 -0
  127. package/dist/cjs/api/types/ListenV1MipOptOut.d.ts +3 -0
  128. package/dist/cjs/api/types/ListenV1Replace.d.ts +3 -0
  129. package/dist/cjs/api/types/ListenV1SampleRate.d.ts +3 -0
  130. package/dist/cjs/api/types/ListenV1Search.d.ts +3 -0
  131. package/dist/cjs/api/types/ListenV1Tag.d.ts +3 -0
  132. package/dist/cjs/api/types/ListenV1UtteranceEndMs.d.ts +3 -0
  133. package/dist/cjs/api/types/ListenV1Version.d.ts +3 -0
  134. package/dist/cjs/api/types/ListenV2EagerEotThreshold.d.ts +5 -0
  135. package/dist/cjs/api/types/ListenV2EotThreshold.d.ts +4 -0
  136. package/dist/cjs/api/types/ListenV2EotTimeoutMs.d.ts +4 -0
  137. package/dist/cjs/api/types/ListenV2MipOptOut.d.ts +5 -0
  138. package/dist/cjs/api/types/ListenV2Model.d.ts +6 -4
  139. package/dist/cjs/api/types/ListenV2Model.js +6 -0
  140. package/dist/cjs/api/types/ListenV2SampleRate.d.ts +3 -0
  141. package/dist/cjs/api/types/ListenV2Tag.d.ts +4 -0
  142. package/dist/cjs/api/types/SpeakV1MipOptOut.d.ts +3 -0
  143. package/dist/cjs/api/types/SpeakV1Speed.d.ts +4 -0
  144. package/dist/cjs/api/types/SpeakV1Speed.js +3 -0
  145. package/dist/cjs/api/types/UsageBreakdownV1Response.d.ts +3 -4
  146. package/dist/cjs/api/types/index.d.ts +8 -0
  147. package/dist/cjs/api/types/index.js +8 -0
  148. package/dist/cjs/core/auth/BasicAuth.d.ts +2 -2
  149. package/dist/cjs/core/auth/BasicAuth.js +7 -1
  150. package/dist/cjs/core/fetcher/BinaryResponse.d.ts +1 -1
  151. package/dist/cjs/core/fetcher/Fetcher.d.ts +8 -0
  152. package/dist/cjs/core/fetcher/Fetcher.js +13 -8
  153. package/dist/cjs/core/fetcher/index.d.ts +2 -0
  154. package/dist/cjs/core/fetcher/index.js +3 -1
  155. package/dist/cjs/core/fetcher/makePassthroughRequest.d.ts +49 -0
  156. package/dist/cjs/core/fetcher/makePassthroughRequest.js +135 -0
  157. package/dist/cjs/core/file/file.js +3 -2
  158. package/dist/cjs/core/url/QueryStringBuilder.d.ts +47 -0
  159. package/dist/cjs/core/url/QueryStringBuilder.js +83 -0
  160. package/dist/cjs/core/url/index.d.ts +1 -0
  161. package/dist/cjs/core/url/index.js +3 -1
  162. package/dist/cjs/core/url/qs.d.ts +2 -1
  163. package/dist/cjs/core/url/qs.js +24 -12
  164. package/dist/cjs/core/websocket/ws.d.ts +10 -1
  165. package/dist/cjs/core/websocket/ws.js +19 -5
  166. package/dist/cjs/errors/DeepgramError.d.ts +3 -1
  167. package/dist/cjs/errors/DeepgramError.js +4 -1
  168. package/dist/cjs/errors/DeepgramTimeoutError.d.ts +4 -1
  169. package/dist/cjs/errors/DeepgramTimeoutError.js +4 -1
  170. package/dist/cjs/errors/handleNonStatusCodeError.js +4 -1
  171. package/dist/cjs/version.d.ts +1 -1
  172. package/dist/cjs/version.js +1 -1
  173. package/dist/esm/BaseClient.mjs +2 -2
  174. package/dist/esm/Client.d.mts +15 -0
  175. package/dist/esm/Client.mjs +46 -0
  176. package/dist/esm/api/resources/agent/resources/v1/client/Client.d.mts +2 -0
  177. package/dist/esm/api/resources/agent/resources/v1/client/Client.mjs +5 -5
  178. package/dist/esm/api/resources/agent/resources/v1/client/Socket.d.mts +6 -6
  179. package/dist/esm/api/resources/agent/resources/v1/client/Socket.mjs +6 -6
  180. package/dist/esm/api/resources/agent/resources/v1/exports.d.mts +1 -0
  181. package/dist/esm/api/resources/agent/resources/v1/exports.mjs +1 -0
  182. package/dist/esm/api/resources/agent/resources/v1/resources/settings/resources/think/resources/models/client/Client.mjs +1 -1
  183. package/dist/esm/api/resources/agent/resources/v1/types/AgentV1FunctionCallRequest.d.mts +2 -0
  184. package/dist/esm/api/resources/agent/resources/v1/types/AgentV1History.d.mts +24 -0
  185. package/dist/esm/api/resources/agent/resources/v1/types/AgentV1History.mjs +2 -0
  186. package/dist/esm/api/resources/agent/resources/v1/types/AgentV1Settings.d.mts +2 -1
  187. package/dist/esm/api/resources/agent/resources/v1/types/index.d.mts +1 -0
  188. package/dist/esm/api/resources/agent/resources/v1/types/index.mjs +1 -0
  189. package/dist/esm/api/resources/auth/resources/v1/resources/tokens/client/Client.mjs +1 -1
  190. package/dist/esm/api/resources/index.d.mts +1 -0
  191. package/dist/esm/api/resources/index.mjs +1 -0
  192. package/dist/esm/api/resources/listen/resources/v1/client/Client.d.mts +2 -0
  193. package/dist/esm/api/resources/listen/resources/v1/client/Client.mjs +5 -5
  194. package/dist/esm/api/resources/listen/resources/v1/client/Socket.d.mts +3 -3
  195. package/dist/esm/api/resources/listen/resources/v1/client/Socket.mjs +2 -2
  196. package/dist/esm/api/resources/listen/resources/v1/exports.d.mts +1 -0
  197. package/dist/esm/api/resources/listen/resources/v1/exports.mjs +1 -0
  198. package/dist/esm/api/resources/listen/resources/v1/resources/media/client/Client.d.mts +1 -0
  199. package/dist/esm/api/resources/listen/resources/v1/resources/media/client/Client.mjs +11 -2
  200. package/dist/esm/api/resources/listen/resources/v1/resources/media/client/requests/ListenV1RequestUrl.d.mts +1 -0
  201. package/dist/esm/api/resources/listen/resources/v2/client/Client.d.mts +2 -0
  202. package/dist/esm/api/resources/listen/resources/v2/client/Client.mjs +5 -5
  203. package/dist/esm/api/resources/listen/resources/v2/client/Socket.d.mts +4 -4
  204. package/dist/esm/api/resources/listen/resources/v2/client/Socket.mjs +3 -3
  205. package/dist/esm/api/resources/listen/resources/v2/exports.d.mts +1 -0
  206. package/dist/esm/api/resources/listen/resources/v2/exports.mjs +1 -0
  207. package/dist/esm/api/resources/listen/resources/v2/types/ListenV2Configure.d.mts +6 -0
  208. package/dist/esm/api/resources/listen/resources/v2/types/ListenV2TurnInfo.d.mts +11 -0
  209. package/dist/esm/api/resources/manage/resources/v1/resources/models/client/Client.mjs +6 -2
  210. package/dist/esm/api/resources/manage/resources/v1/resources/projects/client/Client.mjs +9 -5
  211. package/dist/esm/api/resources/manage/resources/v1/resources/projects/resources/billing/resources/balances/client/Client.mjs +2 -2
  212. package/dist/esm/api/resources/manage/resources/v1/resources/projects/resources/billing/resources/breakdown/client/Client.d.mts +2 -1
  213. package/dist/esm/api/resources/manage/resources/v1/resources/projects/resources/billing/resources/breakdown/client/Client.mjs +7 -2
  214. package/dist/esm/api/resources/manage/resources/v1/resources/projects/resources/billing/resources/breakdown/client/requests/BreakdownListRequest.d.mts +2 -1
  215. package/dist/esm/api/resources/manage/resources/v1/resources/projects/resources/billing/resources/fields/client/Client.mjs +5 -1
  216. package/dist/esm/api/resources/manage/resources/v1/resources/projects/resources/billing/resources/purchases/client/Client.mjs +5 -1
  217. package/dist/esm/api/resources/manage/resources/v1/resources/projects/resources/keys/client/Client.mjs +8 -4
  218. package/dist/esm/api/resources/manage/resources/v1/resources/projects/resources/members/client/Client.mjs +2 -2
  219. package/dist/esm/api/resources/manage/resources/v1/resources/projects/resources/members/resources/invites/client/Client.mjs +3 -3
  220. package/dist/esm/api/resources/manage/resources/v1/resources/projects/resources/members/resources/scopes/client/Client.mjs +2 -2
  221. package/dist/esm/api/resources/manage/resources/v1/resources/projects/resources/models/client/Client.mjs +6 -2
  222. package/dist/esm/api/resources/manage/resources/v1/resources/projects/resources/requests/client/Client.mjs +6 -2
  223. package/dist/esm/api/resources/manage/resources/v1/resources/projects/resources/usage/client/Client.mjs +5 -1
  224. package/dist/esm/api/resources/manage/resources/v1/resources/projects/resources/usage/resources/breakdown/client/Client.mjs +5 -1
  225. package/dist/esm/api/resources/manage/resources/v1/resources/projects/resources/usage/resources/fields/client/Client.mjs +5 -1
  226. package/dist/esm/api/resources/read/resources/v1/resources/text/client/Client.mjs +5 -1
  227. package/dist/esm/api/resources/selfHosted/resources/v1/resources/distributionCredentials/client/Client.d.mts +1 -0
  228. package/dist/esm/api/resources/selfHosted/resources/v1/resources/distributionCredentials/client/Client.mjs +9 -4
  229. package/dist/esm/api/resources/selfHosted/resources/v1/resources/distributionCredentials/client/requests/CreateProjectDistributionCredentialsV1Request.d.mts +1 -0
  230. package/dist/esm/api/resources/speak/resources/v1/client/Client.d.mts +3 -0
  231. package/dist/esm/api/resources/speak/resources/v1/client/Client.mjs +6 -5
  232. package/dist/esm/api/resources/speak/resources/v1/client/Socket.d.mts +2 -2
  233. package/dist/esm/api/resources/speak/resources/v1/client/Socket.mjs +2 -2
  234. package/dist/esm/api/resources/speak/resources/v1/exports.d.mts +1 -0
  235. package/dist/esm/api/resources/speak/resources/v1/exports.mjs +1 -0
  236. package/dist/esm/api/resources/speak/resources/v1/resources/audio/client/Client.mjs +7 -2
  237. package/dist/esm/api/resources/speak/resources/v1/resources/audio/client/requests/SpeakV1Request.d.mts +2 -0
  238. package/dist/esm/api/resources/speak/resources/v1/types/SpeakV1Metadata.d.mts +2 -4
  239. package/dist/esm/api/resources/voiceAgent/client/Client.d.mts +15 -0
  240. package/dist/esm/api/resources/voiceAgent/client/Client.mjs +17 -0
  241. package/dist/esm/api/resources/voiceAgent/client/index.d.mts +1 -0
  242. package/dist/esm/api/resources/voiceAgent/client/index.mjs +1 -0
  243. package/dist/esm/api/resources/voiceAgent/exports.d.mts +3 -0
  244. package/dist/esm/api/resources/voiceAgent/exports.mjs +4 -0
  245. package/dist/esm/api/resources/voiceAgent/index.d.mts +2 -0
  246. package/dist/esm/api/resources/voiceAgent/index.mjs +2 -0
  247. package/dist/esm/api/resources/voiceAgent/resources/configurations/client/Client.d.mts +89 -0
  248. package/dist/esm/api/resources/voiceAgent/resources/configurations/client/Client.mjs +288 -0
  249. package/dist/esm/api/resources/voiceAgent/resources/configurations/client/index.d.mts +1 -0
  250. package/dist/esm/api/resources/voiceAgent/resources/configurations/client/index.mjs +1 -0
  251. package/dist/esm/api/resources/voiceAgent/resources/configurations/client/requests/CreateAgentConfigurationV1Request.d.mts +14 -0
  252. package/dist/esm/api/resources/voiceAgent/resources/configurations/client/requests/CreateAgentConfigurationV1Request.mjs +2 -0
  253. package/dist/esm/api/resources/voiceAgent/resources/configurations/client/requests/UpdateAgentMetadataV1Request.d.mts +12 -0
  254. package/dist/esm/api/resources/voiceAgent/resources/configurations/client/requests/UpdateAgentMetadataV1Request.mjs +2 -0
  255. package/dist/esm/api/resources/voiceAgent/resources/configurations/client/requests/index.d.mts +2 -0
  256. package/dist/esm/api/resources/voiceAgent/resources/configurations/client/requests/index.mjs +1 -0
  257. package/dist/esm/api/resources/voiceAgent/resources/configurations/exports.d.mts +2 -0
  258. package/dist/esm/api/resources/voiceAgent/resources/configurations/exports.mjs +3 -0
  259. package/dist/esm/api/resources/voiceAgent/resources/configurations/index.d.mts +1 -0
  260. package/dist/esm/api/resources/voiceAgent/resources/configurations/index.mjs +1 -0
  261. package/dist/esm/api/resources/voiceAgent/resources/index.d.mts +4 -0
  262. package/dist/esm/api/resources/voiceAgent/resources/index.mjs +4 -0
  263. package/dist/esm/api/resources/voiceAgent/resources/variables/client/Client.d.mts +92 -0
  264. package/dist/esm/api/resources/voiceAgent/resources/variables/client/Client.mjs +288 -0
  265. package/dist/esm/api/resources/voiceAgent/resources/variables/client/index.d.mts +1 -0
  266. package/dist/esm/api/resources/voiceAgent/resources/variables/client/index.mjs +1 -0
  267. package/dist/esm/api/resources/voiceAgent/resources/variables/client/requests/CreateAgentVariableV1Request.d.mts +16 -0
  268. package/dist/esm/api/resources/voiceAgent/resources/variables/client/requests/CreateAgentVariableV1Request.mjs +2 -0
  269. package/dist/esm/api/resources/voiceAgent/resources/variables/client/requests/UpdateAgentVariableV1Request.d.mts +11 -0
  270. package/dist/esm/api/resources/voiceAgent/resources/variables/client/requests/UpdateAgentVariableV1Request.mjs +2 -0
  271. package/dist/esm/api/resources/voiceAgent/resources/variables/client/requests/index.d.mts +2 -0
  272. package/dist/esm/api/resources/voiceAgent/resources/variables/client/requests/index.mjs +1 -0
  273. package/dist/esm/api/resources/voiceAgent/resources/variables/exports.d.mts +2 -0
  274. package/dist/esm/api/resources/voiceAgent/resources/variables/exports.mjs +3 -0
  275. package/dist/esm/api/resources/voiceAgent/resources/variables/index.d.mts +1 -0
  276. package/dist/esm/api/resources/voiceAgent/resources/variables/index.mjs +1 -0
  277. package/dist/esm/api/types/AgentConfigurationV1.d.mts +15 -0
  278. package/dist/esm/api/types/AgentConfigurationV1.mjs +2 -0
  279. package/dist/esm/api/types/AgentVariableV1.d.mts +14 -0
  280. package/dist/esm/api/types/AgentVariableV1.mjs +2 -0
  281. package/dist/esm/api/types/Cartesia.d.mts +2 -0
  282. package/dist/esm/api/types/CreateAgentConfigurationV1Response.d.mts +8 -0
  283. package/dist/esm/api/types/CreateAgentConfigurationV1Response.mjs +2 -0
  284. package/dist/esm/api/types/Deepgram.d.mts +2 -0
  285. package/dist/esm/api/types/DeleteAgentConfigurationV1Response.d.mts +4 -0
  286. package/dist/esm/api/types/DeleteAgentConfigurationV1Response.mjs +2 -0
  287. package/dist/esm/api/types/DeleteAgentVariableV1Response.d.mts +4 -0
  288. package/dist/esm/api/types/DeleteAgentVariableV1Response.mjs +2 -0
  289. package/dist/esm/api/types/ListAgentConfigurationsV1Response.d.mts +5 -0
  290. package/dist/esm/api/types/ListAgentConfigurationsV1Response.mjs +2 -0
  291. package/dist/esm/api/types/ListAgentVariablesV1Response.d.mts +5 -0
  292. package/dist/esm/api/types/ListAgentVariablesV1Response.mjs +2 -0
  293. package/dist/esm/api/types/ListenV1Callback.d.mts +3 -0
  294. package/dist/esm/api/types/ListenV1Channels.d.mts +3 -0
  295. package/dist/esm/api/types/ListenV1Endpointing.d.mts +3 -0
  296. package/dist/esm/api/types/ListenV1Extra.d.mts +3 -0
  297. package/dist/esm/api/types/ListenV1Keyterm.d.mts +3 -0
  298. package/dist/esm/api/types/ListenV1Keywords.d.mts +3 -0
  299. package/dist/esm/api/types/ListenV1Language.d.mts +3 -0
  300. package/dist/esm/api/types/ListenV1MipOptOut.d.mts +3 -0
  301. package/dist/esm/api/types/ListenV1Replace.d.mts +3 -0
  302. package/dist/esm/api/types/ListenV1SampleRate.d.mts +3 -0
  303. package/dist/esm/api/types/ListenV1Search.d.mts +3 -0
  304. package/dist/esm/api/types/ListenV1Tag.d.mts +3 -0
  305. package/dist/esm/api/types/ListenV1UtteranceEndMs.d.mts +3 -0
  306. package/dist/esm/api/types/ListenV1Version.d.mts +3 -0
  307. package/dist/esm/api/types/ListenV2EagerEotThreshold.d.mts +5 -0
  308. package/dist/esm/api/types/ListenV2EotThreshold.d.mts +4 -0
  309. package/dist/esm/api/types/ListenV2EotTimeoutMs.d.mts +4 -0
  310. package/dist/esm/api/types/ListenV2MipOptOut.d.mts +5 -0
  311. package/dist/esm/api/types/ListenV2Model.d.mts +6 -4
  312. package/dist/esm/api/types/ListenV2Model.mjs +5 -1
  313. package/dist/esm/api/types/ListenV2SampleRate.d.mts +3 -0
  314. package/dist/esm/api/types/ListenV2Tag.d.mts +4 -0
  315. package/dist/esm/api/types/SpeakV1MipOptOut.d.mts +3 -0
  316. package/dist/esm/api/types/SpeakV1Speed.d.mts +4 -0
  317. package/dist/esm/api/types/SpeakV1Speed.mjs +2 -0
  318. package/dist/esm/api/types/UsageBreakdownV1Response.d.mts +3 -4
  319. package/dist/esm/api/types/index.d.mts +8 -0
  320. package/dist/esm/api/types/index.mjs +8 -0
  321. package/dist/esm/core/auth/BasicAuth.d.mts +2 -2
  322. package/dist/esm/core/auth/BasicAuth.mjs +7 -1
  323. package/dist/esm/core/fetcher/BinaryResponse.d.mts +1 -1
  324. package/dist/esm/core/fetcher/Fetcher.d.mts +8 -0
  325. package/dist/esm/core/fetcher/Fetcher.mjs +13 -8
  326. package/dist/esm/core/fetcher/index.d.mts +2 -0
  327. package/dist/esm/core/fetcher/index.mjs +1 -0
  328. package/dist/esm/core/fetcher/makePassthroughRequest.d.mts +49 -0
  329. package/dist/esm/core/fetcher/makePassthroughRequest.mjs +132 -0
  330. package/dist/esm/core/file/file.mjs +3 -2
  331. package/dist/esm/core/url/QueryStringBuilder.d.mts +47 -0
  332. package/dist/esm/core/url/QueryStringBuilder.mjs +80 -0
  333. package/dist/esm/core/url/index.d.mts +1 -0
  334. package/dist/esm/core/url/index.mjs +1 -0
  335. package/dist/esm/core/url/qs.d.mts +2 -1
  336. package/dist/esm/core/url/qs.mjs +24 -12
  337. package/dist/esm/core/websocket/ws.d.mts +10 -1
  338. package/dist/esm/core/websocket/ws.mjs +19 -5
  339. package/dist/esm/errors/DeepgramError.d.mts +3 -1
  340. package/dist/esm/errors/DeepgramError.mjs +4 -1
  341. package/dist/esm/errors/DeepgramTimeoutError.d.mts +4 -1
  342. package/dist/esm/errors/DeepgramTimeoutError.mjs +4 -1
  343. package/dist/esm/errors/handleNonStatusCodeError.mjs +4 -1
  344. package/dist/esm/version.d.mts +1 -1
  345. package/dist/esm/version.mjs +1 -1
  346. package/package.json +540 -500
  347. package/reference.md +731 -1
  348. package/dist/cjs/api/resources/agent/resources/v1/types/AgentV1SettingsAgentSpeakEndpointProvider.d.ts +0 -201
  349. package/dist/cjs/api/resources/agent/resources/v1/types/AgentV1SettingsAgentSpeakEndpointProvider.js +0 -139
  350. package/dist/cjs/api/resources/agent/resources/v1/types/AgentV1SettingsAgentSpeakOneItemProvider.d.ts +0 -201
  351. package/dist/cjs/api/resources/agent/resources/v1/types/AgentV1SettingsAgentSpeakOneItemProvider.js +0 -139
  352. package/dist/cjs/api/resources/agent/resources/v1/types/AgentV1SettingsAgentThinkProvider.d.ts +0 -115
  353. package/dist/cjs/api/resources/agent/resources/v1/types/AgentV1SettingsAgentThinkProvider.js +0 -57
  354. package/dist/cjs/api/resources/agent/resources/v1/types/AgentV1UpdateSpeakSpeakProvider.d.ts +0 -201
  355. package/dist/cjs/api/resources/agent/resources/v1/types/AgentV1UpdateSpeakSpeakProvider.js +0 -139
  356. package/dist/cjs/api/types/OpenAi.d.ts +0 -27
  357. package/dist/cjs/api/types/OpenAi.js +0 -21
  358. package/dist/cjs/middleware/adapters/express.d.ts +0 -103
  359. package/dist/cjs/middleware/adapters/express.js +0 -141
  360. package/dist/cjs/middleware/adapters/fastify.d.ts +0 -32
  361. package/dist/cjs/middleware/adapters/fastify.js +0 -194
  362. package/dist/cjs/middleware/adapters/http.d.ts +0 -153
  363. package/dist/cjs/middleware/adapters/http.js +0 -192
  364. package/dist/cjs/middleware/core/ProxyHandler.d.ts +0 -35
  365. package/dist/cjs/middleware/core/ProxyHandler.js +0 -225
  366. package/dist/cjs/middleware/core/TokenManager.d.ts +0 -29
  367. package/dist/cjs/middleware/core/TokenManager.js +0 -110
  368. package/dist/cjs/middleware/core/WebSocketProxy.d.ts +0 -32
  369. package/dist/cjs/middleware/core/WebSocketProxy.js +0 -169
  370. package/dist/cjs/middleware/core/jwt.d.ts +0 -71
  371. package/dist/cjs/middleware/core/jwt.js +0 -136
  372. package/dist/cjs/middleware/core/types.d.ts +0 -37
  373. package/dist/cjs/middleware/index.d.ts +0 -55
  374. package/dist/cjs/middleware/index.js +0 -75
  375. package/dist/cjs/tests/manual/test-custom-baseurl.js +0 -124
  376. package/dist/esm/api/resources/agent/resources/v1/types/AgentV1SettingsAgentSpeakEndpointProvider.d.mts +0 -201
  377. package/dist/esm/api/resources/agent/resources/v1/types/AgentV1SettingsAgentSpeakEndpointProvider.mjs +0 -136
  378. package/dist/esm/api/resources/agent/resources/v1/types/AgentV1SettingsAgentSpeakOneItemProvider.d.mts +0 -201
  379. package/dist/esm/api/resources/agent/resources/v1/types/AgentV1SettingsAgentSpeakOneItemProvider.mjs +0 -136
  380. package/dist/esm/api/resources/agent/resources/v1/types/AgentV1SettingsAgentThinkProvider.d.mts +0 -115
  381. package/dist/esm/api/resources/agent/resources/v1/types/AgentV1SettingsAgentThinkProvider.mjs +0 -54
  382. package/dist/esm/api/resources/agent/resources/v1/types/AgentV1UpdateSpeakSpeakProvider.d.mts +0 -201
  383. package/dist/esm/api/resources/agent/resources/v1/types/AgentV1UpdateSpeakSpeakProvider.mjs +0 -136
  384. package/dist/esm/api/types/OpenAi.d.mts +0 -27
  385. package/dist/esm/api/types/OpenAi.mjs +0 -18
  386. package/dist/esm/middleware/adapters/express.d.mts +0 -103
  387. package/dist/esm/middleware/adapters/express.mjs +0 -136
  388. package/dist/esm/middleware/adapters/fastify.d.mts +0 -32
  389. package/dist/esm/middleware/adapters/fastify.mjs +0 -157
  390. package/dist/esm/middleware/adapters/http.d.mts +0 -153
  391. package/dist/esm/middleware/adapters/http.mjs +0 -187
  392. package/dist/esm/middleware/core/ProxyHandler.d.mts +0 -35
  393. package/dist/esm/middleware/core/ProxyHandler.mjs +0 -218
  394. package/dist/esm/middleware/core/TokenManager.d.mts +0 -29
  395. package/dist/esm/middleware/core/TokenManager.mjs +0 -106
  396. package/dist/esm/middleware/core/WebSocketProxy.d.mts +0 -32
  397. package/dist/esm/middleware/core/WebSocketProxy.mjs +0 -162
  398. package/dist/esm/middleware/core/jwt.d.mts +0 -71
  399. package/dist/esm/middleware/core/jwt.mjs +0 -99
  400. package/dist/esm/middleware/core/types.d.mts +0 -37
  401. package/dist/esm/middleware/index.d.mts +0 -55
  402. package/dist/esm/middleware/index.mjs +0 -59
  403. /package/dist/{esm/middleware/core/types.mjs → cjs/api/resources/voiceAgent/client/index.d.ts} +0 -0
  404. /package/dist/cjs/{middleware/core/types.js → api/resources/voiceAgent/client/index.js} +0 -0
@@ -1,218 +0,0 @@
1
- var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
2
- function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
3
- return new (P || (P = Promise))(function (resolve, reject) {
4
- function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
5
- function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
6
- function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
7
- step((generator = generator.apply(thisArg, _arguments || [])).next());
8
- });
9
- };
10
- import https from "node:https";
11
- import { URL } from "node:url";
12
- import { verifyProxyToken } from "./jwt.mjs";
13
- /**
14
- * Handles HTTP/REST request proxying to Deepgram API
15
- */
16
- export class ProxyHandler {
17
- constructor(options) {
18
- var _a, _b;
19
- this.apiKey = options.apiKey;
20
- this.baseUrl = (_a = options.baseUrl) !== null && _a !== void 0 ? _a : "https://api.deepgram.com";
21
- this.tokenMode = (_b = options.tokenMode) !== null && _b !== void 0 ? _b : "deepgram";
22
- }
23
- /**
24
- * Handle incoming HTTP request and proxy to Deepgram
25
- */
26
- handleRequest(req, res) {
27
- return __awaiter(this, void 0, void 0, function* () {
28
- try {
29
- // Handle CORS preflight
30
- if (req.method === "OPTIONS") {
31
- this.handleCorsPreflightRequest(req, res);
32
- return;
33
- }
34
- // Forward request to Deepgram
35
- yield this.forwardToDeepgram(req, res);
36
- }
37
- catch (error) {
38
- this.handleError(error, res);
39
- }
40
- });
41
- }
42
- /**
43
- * Forward request to Deepgram API
44
- */
45
- forwardToDeepgram(req, res) {
46
- return __awaiter(this, void 0, void 0, function* () {
47
- var _a;
48
- console.log(`[ProxyHandler] Starting forward to Deepgram`);
49
- console.log(`[ProxyHandler] Original URL: ${req.url}`);
50
- // Strip /api/deepgram prefix if present
51
- const cleanUrl = ((_a = req.url) !== null && _a !== void 0 ? _a : "/").replace(/^\/api\/deepgram/, "");
52
- console.log(`[ProxyHandler] Clean URL: ${cleanUrl}`);
53
- // Build Deepgram URL
54
- const targetUrl = new URL(cleanUrl, this.baseUrl);
55
- console.log(`[ProxyHandler] Target URL: ${targetUrl.toString()}`);
56
- // Prepare headers (may verify JWT)
57
- const headers = yield this.prepareHeaders(req);
58
- console.log(`[ProxyHandler] Request headers prepared`);
59
- // Create request to Deepgram
60
- const options = {
61
- method: req.method,
62
- headers,
63
- };
64
- console.log(`[ProxyHandler] Creating ${req.method} request to Deepgram...`);
65
- console.log(`[ProxyHandler] Headers being SENT to Deepgram:`, JSON.stringify(headers, null, 2));
66
- const deepgramReq = https.request(targetUrl, options, (deepgramRes) => {
67
- var _a;
68
- console.log(`[ProxyHandler] Received response from Deepgram: ${deepgramRes.statusCode}`);
69
- console.log(`[ProxyHandler] Response headers from Deepgram:`, JSON.stringify(deepgramRes.headers, null, 2));
70
- // Don't set headers if they were already sent
71
- if (res.headersSent) {
72
- console.log(`[ProxyHandler] Headers already sent, skipping`);
73
- return;
74
- }
75
- // Build response headers with CORS
76
- const responseHeaders = Object.assign(Object.assign({}, deepgramRes.headers), { "access-control-allow-origin": "*", "access-control-allow-methods": "GET, POST, PUT, DELETE, OPTIONS", "access-control-allow-headers": "Authorization, Content-Type, x-fern-language, x-fern-sdk-name, x-fern-sdk-version, x-deepgram-session-id", "access-control-max-age": "3600" });
77
- // Forward status and headers
78
- console.log(`[ProxyHandler] Writing response headers`);
79
- res.writeHead((_a = deepgramRes.statusCode) !== null && _a !== void 0 ? _a : 200, responseHeaders);
80
- // Stream response body
81
- console.log(`[ProxyHandler] Piping response body to client`);
82
- deepgramRes.pipe(res);
83
- deepgramRes.on('end', () => {
84
- console.log(`[ProxyHandler] Response stream ended`);
85
- });
86
- });
87
- // Handle request errors
88
- deepgramReq.on("error", (error) => {
89
- console.error(`[ProxyHandler] Request error:`, error);
90
- this.handleError(error, res);
91
- });
92
- // Check if request stream is readable
93
- console.log(`[ProxyHandler] Request stream readable: ${req.readable}`);
94
- console.log(`[ProxyHandler] Request stream readableEnded: ${req.readableEnded}`);
95
- console.log(`[ProxyHandler] Request method: ${req.method}`);
96
- // For POST/PUT requests, manually read and forward the body
97
- if (req.method === 'POST' || req.method === 'PUT' || req.method === 'PATCH') {
98
- console.log(`[ProxyHandler] Reading request body for ${req.method} request...`);
99
- const chunks = [];
100
- req.on('data', (chunk) => {
101
- console.log(`[ProxyHandler] Received request chunk: ${chunk.length} bytes`);
102
- chunks.push(chunk);
103
- });
104
- req.on('end', () => {
105
- const body = Buffer.concat(chunks);
106
- console.log(`[ProxyHandler] Request body complete: ${body.length} bytes total`);
107
- console.log(`[ProxyHandler] Request body content: ${body.toString()}`);
108
- deepgramReq.write(body);
109
- deepgramReq.end();
110
- console.log(`[ProxyHandler] Request sent to Deepgram`);
111
- });
112
- req.on('error', (err) => {
113
- console.error(`[ProxyHandler] Request stream error:`, err);
114
- });
115
- }
116
- else {
117
- // For GET requests, just end immediately
118
- console.log(`[ProxyHandler] No body expected for ${req.method} request`);
119
- deepgramReq.end();
120
- }
121
- });
122
- }
123
- /**
124
- * Prepare headers for Deepgram request
125
- */
126
- prepareHeaders(req) {
127
- return __awaiter(this, void 0, void 0, function* () {
128
- const headers = {};
129
- // Copy relevant headers
130
- const allowedHeaders = [
131
- "content-type",
132
- "content-length",
133
- "accept",
134
- "user-agent",
135
- "x-fern-language",
136
- "x-fern-sdk-name",
137
- "x-fern-sdk-version",
138
- "x-fern-runtime",
139
- "x-fern-runtime-version",
140
- "x-deepgram-session-id",
141
- ];
142
- for (const header of allowedHeaders) {
143
- const value = req.headers[header];
144
- if (value) {
145
- headers[header] = Array.isArray(value) ? value[0] : value;
146
- }
147
- }
148
- // Authentication logic:
149
- // 1. If client sends dummy key "Token Dummy key for SDK proxying" -> use server API key
150
- // 2. If tokenMode is "jwt" and client sends Bearer token -> verify JWT and use server API key
151
- // 3. If tokenMode is "deepgram" and client sends Token -> forward it (Deepgram temp token)
152
- // 4. If client sends no auth header -> use server API key
153
- const clientAuth = req.headers.authorization;
154
- const isDummyKey = clientAuth === "Token Dummy key for SDK proxying";
155
- if (clientAuth && !isDummyKey) {
156
- // Check if it's a JWT Bearer token
157
- if (this.tokenMode === "jwt" && clientAuth.startsWith("Bearer ")) {
158
- const token = clientAuth.replace("Bearer ", "");
159
- console.log(`[ProxyHandler] Client provided JWT token, verifying...`);
160
- try {
161
- yield verifyProxyToken(token, this.apiKey);
162
- console.log(`[ProxyHandler] JWT verified successfully, using server API key`);
163
- headers.authorization = `Token ${this.apiKey}`;
164
- }
165
- catch (error) {
166
- console.error(`[ProxyHandler] JWT verification failed:`, error);
167
- throw new Error("Invalid or expired token");
168
- }
169
- }
170
- else {
171
- console.log(`[ProxyHandler] Client provided authorization header, forwarding to Deepgram`);
172
- headers.authorization = clientAuth;
173
- console.log(`[ProxyHandler] Authorization header: ${headers.authorization.substring(0, 30)}...`);
174
- }
175
- }
176
- else {
177
- if (isDummyKey) {
178
- console.log(`[ProxyHandler] Client sent dummy key, using server API key`);
179
- }
180
- else {
181
- console.log(`[ProxyHandler] No client auth, using server API key`);
182
- }
183
- headers.authorization = `Token ${this.apiKey}`;
184
- console.log(`[ProxyHandler] Authorization header: ${headers.authorization.substring(0, 30)}...`);
185
- }
186
- return headers;
187
- });
188
- }
189
- /**
190
- * Add CORS headers to response
191
- */
192
- addCorsHeaders(res) {
193
- res.setHeader("Access-Control-Allow-Origin", "*");
194
- res.setHeader("Access-Control-Allow-Methods", "GET, POST, PUT, DELETE, OPTIONS");
195
- res.setHeader("Access-Control-Allow-Headers", "Authorization, Content-Type, x-fern-language, x-fern-sdk-name, x-fern-sdk-version, x-fern-runtime, x-fern-runtime-version, x-deepgram-session-id");
196
- res.setHeader("Access-Control-Max-Age", "3600");
197
- }
198
- /**
199
- * Handle CORS preflight requests
200
- */
201
- handleCorsPreflightRequest(req, res) {
202
- this.addCorsHeaders(res);
203
- res.writeHead(204);
204
- res.end();
205
- }
206
- /**
207
- * Handle errors and send appropriate response
208
- */
209
- handleError(error, res) {
210
- console.error("ProxyHandler error:", error);
211
- const message = error instanceof Error ? error.message : "Internal server error";
212
- this.addCorsHeaders(res);
213
- res.writeHead(500, { "Content-Type": "application/json" });
214
- res.end(JSON.stringify({
215
- error: message,
216
- }));
217
- }
218
- }
@@ -1,29 +0,0 @@
1
- import type { IncomingMessage, ServerResponse } from "node:http";
2
- import type { MiddlewareOptions } from "./types.mjs";
3
- /**
4
- * Manages temporary token generation for client authentication
5
- */
6
- export declare class TokenManager {
7
- private readonly client;
8
- private readonly apiKey;
9
- private readonly tokenMode;
10
- private readonly defaultExpiration;
11
- constructor(options: MiddlewareOptions);
12
- /**
13
- * Generate a temporary access token
14
- * Uses either Deepgram's native token API or JWT signing based on tokenMode
15
- */
16
- generateToken(ttlSeconds: number): Promise<string>;
17
- /**
18
- * Handle token generation request from client
19
- */
20
- handleTokenRequest(req: IncomingMessage, res: ServerResponse): Promise<void>;
21
- /**
22
- * Parse JSON request body
23
- */
24
- private parseBody;
25
- /**
26
- * Handle errors and send appropriate response
27
- */
28
- private handleError;
29
- }
@@ -1,106 +0,0 @@
1
- var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
2
- function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
3
- return new (P || (P = Promise))(function (resolve, reject) {
4
- function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
5
- function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
6
- function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
7
- step((generator = generator.apply(thisArg, _arguments || [])).next());
8
- });
9
- };
10
- import { CustomDeepgramClient as DeepgramClient } from "../../CustomClient.mjs";
11
- import { createProxyToken } from "./jwt.mjs";
12
- /**
13
- * Manages temporary token generation for client authentication
14
- */
15
- export class TokenManager {
16
- constructor(options) {
17
- var _a, _b;
18
- this.client = new DeepgramClient({ apiKey: options.apiKey });
19
- this.apiKey = options.apiKey;
20
- this.tokenMode = (_a = options.tokenMode) !== null && _a !== void 0 ? _a : "deepgram";
21
- this.defaultExpiration = (_b = options.defaultTokenExpiration) !== null && _b !== void 0 ? _b : 3600;
22
- }
23
- /**
24
- * Generate a temporary access token
25
- * Uses either Deepgram's native token API or JWT signing based on tokenMode
26
- */
27
- generateToken(ttlSeconds) {
28
- return __awaiter(this, void 0, void 0, function* () {
29
- if (this.tokenMode === "jwt") {
30
- return createProxyToken(this.apiKey, { ttl: ttlSeconds });
31
- }
32
- const response = yield this.client.auth.v1.tokens.grant({
33
- ttl_seconds: ttlSeconds,
34
- });
35
- return response.access_token;
36
- });
37
- }
38
- /**
39
- * Handle token generation request from client
40
- */
41
- handleTokenRequest(req, res) {
42
- return __awaiter(this, void 0, void 0, function* () {
43
- var _a;
44
- try {
45
- // Parse request body
46
- const body = yield this.parseBody(req);
47
- const tokenRequest = body;
48
- // Generate token with requested or default TTL
49
- const ttlSeconds = (_a = tokenRequest.ttlSeconds) !== null && _a !== void 0 ? _a : this.defaultExpiration;
50
- const token = yield this.generateToken(ttlSeconds);
51
- // Send response
52
- const response = {
53
- token,
54
- expiresIn: ttlSeconds,
55
- };
56
- res.writeHead(200, {
57
- "Content-Type": "application/json",
58
- "Access-Control-Allow-Origin": "*",
59
- "Access-Control-Allow-Methods": "POST, OPTIONS",
60
- "Access-Control-Allow-Headers": "Content-Type",
61
- });
62
- res.end(JSON.stringify(response));
63
- }
64
- catch (error) {
65
- this.handleError(error, res);
66
- }
67
- });
68
- }
69
- /**
70
- * Parse JSON request body
71
- */
72
- parseBody(req) {
73
- return __awaiter(this, void 0, void 0, function* () {
74
- return new Promise((resolve, reject) => {
75
- let body = "";
76
- req.on("data", (chunk) => {
77
- body += chunk.toString();
78
- });
79
- req.on("end", () => {
80
- try {
81
- resolve(body ? JSON.parse(body) : {});
82
- }
83
- catch (error) {
84
- reject(new Error("Invalid JSON in request body"));
85
- }
86
- });
87
- req.on("error", reject);
88
- });
89
- });
90
- }
91
- /**
92
- * Handle errors and send appropriate response
93
- */
94
- handleError(error, res) {
95
- console.error("TokenManager error:", error);
96
- const message = error instanceof Error ? error.message : "Internal server error";
97
- const statusCode = message.includes("Invalid JSON") ? 400 : 500;
98
- res.writeHead(statusCode, {
99
- "Content-Type": "application/json",
100
- "Access-Control-Allow-Origin": "*",
101
- });
102
- res.end(JSON.stringify({
103
- error: message,
104
- }));
105
- }
106
- }
@@ -1,32 +0,0 @@
1
- import type { IncomingMessage } from "node:http";
2
- import type { Duplex } from "node:stream";
3
- import type { MiddlewareOptions } from "./types.mjs";
4
- /**
5
- * Handles WebSocket proxying to Deepgram API
6
- */
7
- export declare class WebSocketProxy {
8
- private readonly apiKey;
9
- private readonly baseUrl;
10
- private readonly tokenMode;
11
- constructor(options: MiddlewareOptions);
12
- /**
13
- * Handle WebSocket upgrade request
14
- */
15
- handleUpgrade(req: IncomingMessage, socket: Duplex, head: Buffer): void;
16
- /**
17
- * Async version of handleUpgrade to support JWT verification
18
- */
19
- private handleUpgradeAsync;
20
- /**
21
- * Build WebSocket URL for Deepgram
22
- */
23
- private buildWebSocketUrl;
24
- /**
25
- * Prepare headers for Deepgram WebSocket connection
26
- */
27
- private prepareHeaders;
28
- /**
29
- * Forward WebSocket messages bidirectionally
30
- */
31
- private forwardMessages;
32
- }
@@ -1,162 +0,0 @@
1
- var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
2
- function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
3
- return new (P || (P = Promise))(function (resolve, reject) {
4
- function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
5
- function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
6
- function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
7
- step((generator = generator.apply(thisArg, _arguments || [])).next());
8
- });
9
- };
10
- import { URL } from "node:url";
11
- import WebSocket from "ws";
12
- import { verifyProxyToken } from "./jwt.mjs";
13
- /**
14
- * Handles WebSocket proxying to Deepgram API
15
- */
16
- export class WebSocketProxy {
17
- constructor(options) {
18
- var _a, _b;
19
- this.apiKey = options.apiKey;
20
- this.tokenMode = (_a = options.tokenMode) !== null && _a !== void 0 ? _a : "deepgram";
21
- // Convert HTTP(S) base URL to WebSocket URL
22
- this.baseUrl = ((_b = options.baseUrl) !== null && _b !== void 0 ? _b : "https://api.deepgram.com")
23
- .replace(/^https:/, "wss:")
24
- .replace(/^http:/, "ws:");
25
- }
26
- /**
27
- * Handle WebSocket upgrade request
28
- */
29
- handleUpgrade(req, socket, head) {
30
- this.handleUpgradeAsync(req, socket, head).catch((error) => {
31
- console.error("WebSocket upgrade error:", error);
32
- socket.destroy();
33
- });
34
- }
35
- /**
36
- * Async version of handleUpgrade to support JWT verification
37
- */
38
- handleUpgradeAsync(req, socket, head) {
39
- return __awaiter(this, void 0, void 0, function* () {
40
- try {
41
- // Build Deepgram WebSocket URL
42
- const targetUrl = this.buildWebSocketUrl(req);
43
- // Prepare headers (may verify JWT)
44
- const headers = yield this.prepareHeaders(req);
45
- // Connect to Deepgram WebSocket
46
- const deepgramSocket = new WebSocket(targetUrl, { headers });
47
- // Handle connection open
48
- deepgramSocket.on("open", () => {
49
- // Complete the client upgrade
50
- socket.write("HTTP/1.1 101 Switching Protocols\r\n" +
51
- "Upgrade: websocket\r\n" +
52
- "Connection: Upgrade\r\n" +
53
- "\r\n");
54
- // Create client WebSocket
55
- const clientSocket = new WebSocket(null, null);
56
- // eslint-disable-next-line @typescript-eslint/no-explicit-any -- WebSocket internals
57
- clientSocket.setSocket(socket, head, { maxPayload: 100 * 1024 * 1024 });
58
- // Forward messages bidirectionally
59
- this.forwardMessages(clientSocket, deepgramSocket);
60
- });
61
- // Handle connection errors
62
- deepgramSocket.on("error", (error) => {
63
- console.error("WebSocket proxy error (Deepgram):", error);
64
- socket.destroy();
65
- });
66
- }
67
- catch (error) {
68
- console.error("WebSocket upgrade error:", error);
69
- throw error;
70
- }
71
- });
72
- }
73
- /**
74
- * Build WebSocket URL for Deepgram
75
- */
76
- buildWebSocketUrl(req) {
77
- var _a;
78
- // Strip /api/deepgram prefix if present
79
- const cleanUrl = ((_a = req.url) !== null && _a !== void 0 ? _a : "/").replace(/^\/api\/deepgram/, "");
80
- const url = new URL(cleanUrl, this.baseUrl);
81
- return url.toString();
82
- }
83
- /**
84
- * Prepare headers for Deepgram WebSocket connection
85
- */
86
- prepareHeaders(req) {
87
- return __awaiter(this, void 0, void 0, function* () {
88
- const headers = {};
89
- // Copy relevant headers
90
- const allowedHeaders = [
91
- "user-agent",
92
- "x-fern-language",
93
- "x-fern-sdk-name",
94
- "x-fern-sdk-version",
95
- "x-deepgram-session-id",
96
- ];
97
- for (const header of allowedHeaders) {
98
- const value = req.headers[header];
99
- if (value) {
100
- headers[header] = Array.isArray(value) ? value[0] : value;
101
- }
102
- }
103
- // Authentication logic (similar to ProxyHandler)
104
- const clientAuth = req.headers.authorization;
105
- if (clientAuth && this.tokenMode === "jwt" && clientAuth.startsWith("Bearer ")) {
106
- const token = clientAuth.replace("Bearer ", "");
107
- console.log(`[WebSocketProxy] Client provided JWT token, verifying...`);
108
- try {
109
- yield verifyProxyToken(token, this.apiKey);
110
- console.log(`[WebSocketProxy] JWT verified successfully, using server API key`);
111
- headers.authorization = `Token ${this.apiKey}`;
112
- }
113
- catch (error) {
114
- console.error(`[WebSocketProxy] JWT verification failed:`, error);
115
- throw new Error("Invalid or expired token");
116
- }
117
- }
118
- else {
119
- // Use server API key
120
- headers.authorization = `Token ${this.apiKey}`;
121
- }
122
- return headers;
123
- });
124
- }
125
- /**
126
- * Forward WebSocket messages bidirectionally
127
- */
128
- forwardMessages(clientSocket, deepgramSocket) {
129
- // Forward client messages to Deepgram
130
- clientSocket.on("message", (data, isBinary) => {
131
- if (deepgramSocket.readyState === WebSocket.OPEN) {
132
- deepgramSocket.send(data, { binary: isBinary });
133
- }
134
- });
135
- // Forward Deepgram messages to client
136
- deepgramSocket.on("message", (data, isBinary) => {
137
- if (clientSocket.readyState === WebSocket.OPEN) {
138
- clientSocket.send(data, { binary: isBinary });
139
- }
140
- });
141
- // Handle closures
142
- clientSocket.on("close", (code, reason) => {
143
- if (deepgramSocket.readyState === WebSocket.OPEN) {
144
- deepgramSocket.close(code, reason);
145
- }
146
- });
147
- deepgramSocket.on("close", (code, reason) => {
148
- if (clientSocket.readyState === WebSocket.OPEN) {
149
- clientSocket.close(code, reason);
150
- }
151
- });
152
- // Handle errors
153
- clientSocket.on("error", (error) => {
154
- console.error("WebSocket error (client):", error);
155
- deepgramSocket.close();
156
- });
157
- deepgramSocket.on("error", (error) => {
158
- console.error("WebSocket error (Deepgram):", error);
159
- clientSocket.close();
160
- });
161
- }
162
- }
@@ -1,71 +0,0 @@
1
- /**
2
- * Options for creating a proxy token
3
- */
4
- export interface ProxyTokenOptions {
5
- /** Optional user or session identifier */
6
- identity?: string;
7
- /** Token time-to-live (e.g., "1h", "30m", 3600). Defaults to "1h" */
8
- ttl?: string | number;
9
- /** Optional scopes/permissions for the token */
10
- scopes?: string[];
11
- /** Optional custom metadata to include in token */
12
- metadata?: Record<string, unknown>;
13
- }
14
- /**
15
- * Decoded proxy token payload
16
- */
17
- export interface ProxyTokenPayload {
18
- /** Issuer - the project ID extracted from API key */
19
- iss: string;
20
- /** Subject - optional user/session identifier */
21
- sub?: string;
22
- /** Issued at timestamp */
23
- iat: number;
24
- /** Expiration timestamp */
25
- exp: number;
26
- /** Not before timestamp */
27
- nbf: number;
28
- /** Optional scopes/permissions */
29
- scopes?: string[];
30
- /** Optional custom metadata */
31
- metadata?: Record<string, unknown>;
32
- }
33
- /**
34
- * Creates a proxy token signed with the Deepgram API key.
35
- * This token should be generated on the backend and sent to browser clients.
36
- * The browser uses this token to connect to the proxy middleware.
37
- *
38
- * @param apiKey - Deepgram API key (used as signing secret)
39
- * @param options - Token configuration options
40
- * @returns JWT token string
41
- *
42
- * @example
43
- * ```typescript
44
- * const token = await createProxyToken(process.env.DEEPGRAM_API_KEY, {
45
- * identity: 'user-123',
46
- * ttl: '1h',
47
- * scopes: ['listen', 'speak']
48
- * });
49
- * ```
50
- */
51
- export declare function createProxyToken(apiKey: string, options?: ProxyTokenOptions): Promise<string>;
52
- /**
53
- * Verifies a proxy token and returns the decoded payload.
54
- * This should be called by the proxy middleware to validate tokens from clients.
55
- *
56
- * @param token - JWT token to verify
57
- * @param apiKey - Deepgram API key (used to verify signature)
58
- * @returns Decoded token payload
59
- * @throws Error if token is invalid, expired, or signature doesn't match
60
- *
61
- * @example
62
- * ```typescript
63
- * try {
64
- * const payload = await verifyProxyToken(token, process.env.DEEPGRAM_API_KEY);
65
- * console.log('Valid token for user:', payload.sub);
66
- * } catch (error) {
67
- * console.error('Invalid token:', error);
68
- * }
69
- * ```
70
- */
71
- export declare function verifyProxyToken(token: string, apiKey: string): Promise<ProxyTokenPayload>;