@deepgram/sdk 5.0.0-beta.3 → 5.0.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 (433) hide show
  1. package/README.md +234 -1472
  2. package/dist/browser/index.global.js +288 -192
  3. package/dist/cjs/BaseClient.js +3 -3
  4. package/dist/cjs/CustomClient.js +90 -107
  5. package/dist/cjs/api/resources/agent/exports.d.ts +3 -0
  6. package/dist/cjs/api/resources/agent/exports.js +22 -0
  7. package/dist/cjs/api/resources/agent/resources/v1/client/Client.d.ts +6 -0
  8. package/dist/cjs/api/resources/agent/resources/v1/client/Client.js +8 -3
  9. package/dist/cjs/api/resources/agent/resources/v1/client/Socket.d.ts +3 -2
  10. package/dist/cjs/api/resources/agent/resources/v1/client/Socket.js +4 -0
  11. package/dist/cjs/api/resources/agent/resources/v1/exports.d.ts +3 -0
  12. package/dist/cjs/api/resources/agent/resources/v1/exports.js +22 -0
  13. package/dist/cjs/api/resources/agent/resources/v1/resources/settings/exports.d.ts +3 -0
  14. package/dist/cjs/api/resources/agent/resources/v1/resources/settings/exports.js +22 -0
  15. package/dist/cjs/api/resources/agent/resources/v1/resources/settings/resources/think/exports.d.ts +3 -0
  16. package/dist/cjs/api/resources/agent/resources/v1/resources/settings/resources/think/exports.js +22 -0
  17. package/dist/cjs/api/resources/agent/resources/v1/resources/settings/resources/think/resources/models/exports.d.ts +2 -0
  18. package/dist/cjs/api/resources/agent/resources/v1/resources/settings/resources/think/resources/models/exports.js +21 -0
  19. package/dist/cjs/api/resources/agent/resources/v1/types/AgentV1ReceiveFunctionCallResponse.d.ts +1 -1
  20. package/dist/cjs/api/resources/agent/resources/v1/types/AgentV1SendFunctionCallResponse.d.ts +1 -1
  21. package/dist/cjs/api/resources/agent/resources/v1/types/AgentV1Settings.d.ts +21 -51
  22. package/dist/cjs/api/resources/agent/resources/v1/types/AgentV1SettingsAgentListenProvider.d.ts +5 -5
  23. package/dist/cjs/api/resources/agent/resources/v1/types/AgentV1ThinkUpdated.d.ts +4 -0
  24. package/dist/cjs/api/resources/agent/resources/v1/types/AgentV1ThinkUpdated.js +3 -0
  25. package/dist/cjs/api/resources/agent/resources/v1/types/AgentV1UpdateSpeak.d.ts +2 -11
  26. package/dist/cjs/api/resources/agent/resources/v1/types/AgentV1UpdateThink.d.ts +9 -0
  27. package/dist/cjs/api/resources/agent/resources/v1/types/AgentV1UpdateThink.js +3 -0
  28. package/dist/cjs/api/resources/agent/resources/v1/types/index.d.ts +2 -0
  29. package/dist/cjs/api/resources/agent/resources/v1/types/index.js +2 -0
  30. package/dist/cjs/api/resources/auth/exports.d.ts +3 -0
  31. package/dist/cjs/api/resources/auth/exports.js +22 -0
  32. package/dist/cjs/api/resources/auth/resources/v1/exports.d.ts +3 -0
  33. package/dist/cjs/api/resources/auth/resources/v1/exports.js +22 -0
  34. package/dist/cjs/api/resources/auth/resources/v1/resources/tokens/exports.d.ts +2 -0
  35. package/dist/cjs/api/resources/auth/resources/v1/resources/tokens/exports.js +21 -0
  36. package/dist/cjs/api/resources/listen/exports.d.ts +3 -0
  37. package/dist/cjs/api/resources/listen/exports.js +22 -0
  38. package/dist/cjs/api/resources/listen/resources/v1/client/Client.d.ts +35 -28
  39. package/dist/cjs/api/resources/listen/resources/v1/client/Client.js +40 -30
  40. package/dist/cjs/api/resources/listen/resources/v1/exports.d.ts +3 -0
  41. package/dist/cjs/api/resources/listen/resources/v1/exports.js +22 -0
  42. package/dist/cjs/api/resources/listen/resources/v1/resources/media/client/requests/MediaTranscribeRequestOctetStream.d.ts +0 -3
  43. package/dist/cjs/api/resources/listen/resources/v1/resources/media/exports.d.ts +2 -0
  44. package/dist/cjs/api/resources/listen/resources/v1/resources/media/exports.js +21 -0
  45. package/dist/cjs/api/resources/listen/resources/v1/types/ListenV1Results.d.ts +8 -8
  46. package/dist/cjs/api/resources/listen/resources/v2/client/Client.d.ts +16 -9
  47. package/dist/cjs/api/resources/listen/resources/v2/client/Client.js +29 -11
  48. package/dist/cjs/api/resources/listen/resources/v2/client/Socket.d.ts +3 -2
  49. package/dist/cjs/api/resources/listen/resources/v2/client/Socket.js +4 -0
  50. package/dist/cjs/api/resources/listen/resources/v2/exports.d.ts +2 -0
  51. package/dist/cjs/api/resources/listen/resources/v2/exports.js +21 -0
  52. package/dist/cjs/api/resources/listen/resources/v2/types/ListenV2Configure.d.ts +22 -0
  53. package/dist/cjs/api/resources/listen/resources/v2/types/ListenV2Configure.js +3 -0
  54. package/dist/cjs/api/resources/listen/resources/v2/types/ListenV2ConfigureFailure.d.ts +12 -0
  55. package/dist/cjs/api/resources/listen/resources/v2/types/ListenV2ConfigureFailure.js +3 -0
  56. package/dist/cjs/api/resources/listen/resources/v2/types/ListenV2ConfigureSuccess.d.ts +30 -0
  57. package/dist/cjs/api/resources/listen/resources/v2/types/ListenV2ConfigureSuccess.js +3 -0
  58. package/dist/cjs/api/resources/listen/resources/v2/types/index.d.ts +3 -0
  59. package/dist/cjs/api/resources/listen/resources/v2/types/index.js +3 -0
  60. package/dist/cjs/api/resources/manage/exports.d.ts +3 -0
  61. package/dist/cjs/api/resources/manage/exports.js +22 -0
  62. package/dist/cjs/api/resources/manage/resources/v1/exports.d.ts +3 -0
  63. package/dist/cjs/api/resources/manage/resources/v1/exports.js +22 -0
  64. package/dist/cjs/api/resources/manage/resources/v1/resources/models/exports.d.ts +2 -0
  65. package/dist/cjs/api/resources/manage/resources/v1/resources/models/exports.js +21 -0
  66. package/dist/cjs/api/resources/manage/resources/v1/resources/projects/exports.d.ts +3 -0
  67. package/dist/cjs/api/resources/manage/resources/v1/resources/projects/exports.js +22 -0
  68. package/dist/cjs/api/resources/manage/resources/v1/resources/projects/resources/billing/exports.d.ts +3 -0
  69. package/dist/cjs/api/resources/manage/resources/v1/resources/projects/resources/billing/exports.js +22 -0
  70. package/dist/cjs/api/resources/manage/resources/v1/resources/projects/resources/billing/resources/balances/exports.d.ts +2 -0
  71. package/dist/cjs/api/resources/manage/resources/v1/resources/projects/resources/billing/resources/balances/exports.js +21 -0
  72. package/dist/cjs/api/resources/manage/resources/v1/resources/projects/resources/billing/resources/breakdown/exports.d.ts +2 -0
  73. package/dist/cjs/api/resources/manage/resources/v1/resources/projects/resources/billing/resources/breakdown/exports.js +21 -0
  74. package/dist/cjs/api/resources/manage/resources/v1/resources/projects/resources/billing/resources/fields/exports.d.ts +2 -0
  75. package/dist/cjs/api/resources/manage/resources/v1/resources/projects/resources/billing/resources/fields/exports.js +21 -0
  76. package/dist/cjs/api/resources/manage/resources/v1/resources/projects/resources/billing/resources/purchases/exports.d.ts +2 -0
  77. package/dist/cjs/api/resources/manage/resources/v1/resources/projects/resources/billing/resources/purchases/exports.js +21 -0
  78. package/dist/cjs/api/resources/manage/resources/v1/resources/projects/resources/keys/exports.d.ts +2 -0
  79. package/dist/cjs/api/resources/manage/resources/v1/resources/projects/resources/keys/exports.js +21 -0
  80. package/dist/cjs/api/resources/manage/resources/v1/resources/projects/resources/members/exports.d.ts +3 -0
  81. package/dist/cjs/api/resources/manage/resources/v1/resources/projects/resources/members/exports.js +22 -0
  82. package/dist/cjs/api/resources/manage/resources/v1/resources/projects/resources/members/resources/invites/exports.d.ts +2 -0
  83. package/dist/cjs/api/resources/manage/resources/v1/resources/projects/resources/members/resources/invites/exports.js +21 -0
  84. package/dist/cjs/api/resources/manage/resources/v1/resources/projects/resources/members/resources/scopes/exports.d.ts +2 -0
  85. package/dist/cjs/api/resources/manage/resources/v1/resources/projects/resources/members/resources/scopes/exports.js +21 -0
  86. package/dist/cjs/api/resources/manage/resources/v1/resources/projects/resources/models/exports.d.ts +2 -0
  87. package/dist/cjs/api/resources/manage/resources/v1/resources/projects/resources/models/exports.js +21 -0
  88. package/dist/cjs/api/resources/manage/resources/v1/resources/projects/resources/requests/exports.d.ts +2 -0
  89. package/dist/cjs/api/resources/manage/resources/v1/resources/projects/resources/requests/exports.js +21 -0
  90. package/dist/cjs/api/resources/manage/resources/v1/resources/projects/resources/usage/client/Client.d.ts +2 -0
  91. package/dist/cjs/api/resources/manage/resources/v1/resources/projects/resources/usage/client/Client.js +2 -0
  92. package/dist/cjs/api/resources/manage/resources/v1/resources/projects/resources/usage/exports.d.ts +3 -0
  93. package/dist/cjs/api/resources/manage/resources/v1/resources/projects/resources/usage/exports.js +22 -0
  94. package/dist/cjs/api/resources/manage/resources/v1/resources/projects/resources/usage/resources/breakdown/exports.d.ts +2 -0
  95. package/dist/cjs/api/resources/manage/resources/v1/resources/projects/resources/usage/resources/breakdown/exports.js +21 -0
  96. package/dist/cjs/api/resources/manage/resources/v1/resources/projects/resources/usage/resources/fields/exports.d.ts +2 -0
  97. package/dist/cjs/api/resources/manage/resources/v1/resources/projects/resources/usage/resources/fields/exports.js +21 -0
  98. package/dist/cjs/api/resources/read/exports.d.ts +3 -0
  99. package/dist/cjs/api/resources/read/exports.js +22 -0
  100. package/dist/cjs/api/resources/read/resources/v1/exports.d.ts +3 -0
  101. package/dist/cjs/api/resources/read/resources/v1/exports.js +22 -0
  102. package/dist/cjs/api/resources/read/resources/v1/resources/text/exports.d.ts +2 -0
  103. package/dist/cjs/api/resources/read/resources/v1/resources/text/exports.js +21 -0
  104. package/dist/cjs/api/resources/selfHosted/exports.d.ts +3 -0
  105. package/dist/cjs/api/resources/selfHosted/exports.js +22 -0
  106. package/dist/cjs/api/resources/selfHosted/resources/v1/exports.d.ts +3 -0
  107. package/dist/cjs/api/resources/selfHosted/resources/v1/exports.js +22 -0
  108. package/dist/cjs/api/resources/selfHosted/resources/v1/resources/distributionCredentials/exports.d.ts +2 -0
  109. package/dist/cjs/api/resources/selfHosted/resources/v1/resources/distributionCredentials/exports.js +21 -0
  110. package/dist/cjs/api/resources/speak/exports.d.ts +3 -0
  111. package/dist/cjs/api/resources/speak/exports.js +22 -0
  112. package/dist/cjs/api/resources/speak/resources/v1/client/Client.d.ts +11 -4
  113. package/dist/cjs/api/resources/speak/resources/v1/client/Client.js +13 -7
  114. package/dist/cjs/api/resources/speak/resources/v1/exports.d.ts +3 -0
  115. package/dist/cjs/api/resources/speak/resources/v1/exports.js +22 -0
  116. package/dist/cjs/api/resources/speak/resources/v1/resources/audio/client/Client.d.ts +1 -0
  117. package/dist/cjs/api/resources/speak/resources/v1/resources/audio/client/Client.js +1 -0
  118. package/dist/cjs/api/resources/speak/resources/v1/resources/audio/exports.d.ts +2 -0
  119. package/dist/cjs/api/resources/speak/resources/v1/resources/audio/exports.js +21 -0
  120. package/dist/cjs/api/resources/speak/resources/v1/types/SpeakV1Metadata.d.ts +4 -2
  121. package/dist/cjs/api/types/Anthropic.d.ts +2 -2
  122. package/dist/cjs/api/types/AwsBedrockThinkProvider.d.ts +7 -7
  123. package/dist/cjs/api/types/AwsPollySpeakProvider.d.ts +2 -2
  124. package/dist/cjs/api/types/BillingBreakdownV1Response.d.ts +6 -6
  125. package/dist/cjs/api/types/Cartesia.d.ts +2 -2
  126. package/dist/cjs/api/types/CreateKeyV1Response.d.ts +6 -6
  127. package/dist/cjs/api/types/CreateProjectDistributionCredentialsV1Response.d.ts +1 -1
  128. package/dist/cjs/api/types/CreateProjectInviteV1Response.d.ts +1 -1
  129. package/dist/cjs/api/types/Deepgram.d.ts +1 -1
  130. package/dist/cjs/api/types/DeleteProjectInviteV1Response.d.ts +1 -1
  131. package/dist/cjs/api/types/DeleteProjectKeyV1Response.d.ts +1 -1
  132. package/dist/cjs/api/types/DeleteProjectMemberV1Response.d.ts +1 -1
  133. package/dist/cjs/api/types/DeleteProjectV1Response.d.ts +1 -1
  134. package/dist/cjs/api/types/ElevenLabsSpeakProvider.d.ts +3 -3
  135. package/dist/cjs/api/types/ErrorResponseLegacyError.d.ts +3 -3
  136. package/dist/cjs/api/types/ErrorResponseModernError.d.ts +4 -4
  137. package/dist/cjs/api/types/GetProjectBalanceV1Response.d.ts +4 -4
  138. package/dist/cjs/api/types/GetProjectDistributionCredentialsV1Response.d.ts +1 -1
  139. package/dist/cjs/api/types/GetProjectKeyV1Response.d.ts +13 -13
  140. package/dist/cjs/api/types/GetProjectRequestV1Response.d.ts +1 -1
  141. package/dist/cjs/api/types/GetProjectV1Response.d.ts +3 -3
  142. package/dist/cjs/api/types/Google.d.ts +2 -2
  143. package/dist/cjs/api/types/GrantV1Response.d.ts +1 -1
  144. package/dist/cjs/api/types/Groq.d.ts +2 -2
  145. package/dist/cjs/api/types/LeaveProjectV1Response.d.ts +1 -1
  146. package/dist/cjs/api/types/ListBillingFieldsV1Response.d.ts +4 -4
  147. package/dist/cjs/api/types/ListModelsV1Response.d.ts +2 -2
  148. package/dist/cjs/api/types/ListModelsV1ResponseSttModels.d.ts +9 -9
  149. package/dist/cjs/api/types/ListModelsV1ResponseTtsModels.d.ts +14 -14
  150. package/dist/cjs/api/types/ListProjectBalancesV1Response.d.ts +5 -5
  151. package/dist/cjs/api/types/ListProjectDistributionCredentialsV1Response.d.ts +2 -2
  152. package/dist/cjs/api/types/ListProjectInvitesV1Response.d.ts +3 -3
  153. package/dist/cjs/api/types/ListProjectKeysV1Response.d.ts +9 -9
  154. package/dist/cjs/api/types/ListProjectMemberScopesV1Response.d.ts +1 -1
  155. package/dist/cjs/api/types/ListProjectMembersV1Response.d.ts +3 -3
  156. package/dist/cjs/api/types/ListProjectPurchasesV1Response.d.ts +7 -7
  157. package/dist/cjs/api/types/ListProjectRequestsV1Response.d.ts +3 -3
  158. package/dist/cjs/api/types/ListProjectsV1Response.d.ts +3 -3
  159. package/dist/cjs/api/types/ListenV1ResponseMetadata.d.ts +18 -18
  160. package/dist/cjs/api/types/ListenV1ResponseResults.d.ts +5 -5
  161. package/dist/cjs/api/types/ListenV1ResponseResultsChannelsItem.d.ts +43 -43
  162. package/dist/cjs/api/types/ListenV1ResponseResultsSummary.d.ts +2 -2
  163. package/dist/cjs/api/types/ListenV1ResponseResultsUtterancesItem.d.ts +15 -15
  164. package/dist/cjs/api/types/OpenAiSpeakProvider.d.ts +27 -0
  165. package/dist/cjs/api/types/OpenAiSpeakProvider.js +21 -0
  166. package/dist/cjs/api/types/OpenAiThinkProvider.d.ts +23 -0
  167. package/dist/cjs/api/types/OpenAiThinkProvider.js +18 -0
  168. package/dist/cjs/api/types/ProjectRequestResponse.d.ts +9 -9
  169. package/dist/cjs/api/types/ReadV1ResponseMetadata.d.ts +20 -20
  170. package/dist/cjs/api/types/ReadV1ResponseResults.d.ts +4 -4
  171. package/dist/cjs/api/types/ReadV1ResponseResultsSummary.d.ts +3 -3
  172. package/dist/cjs/api/types/SharedIntents.d.ts +9 -9
  173. package/dist/cjs/api/types/SharedSentiments.d.ts +9 -9
  174. package/dist/cjs/api/types/SharedTopics.d.ts +9 -9
  175. package/dist/cjs/api/types/SpeakSettingsV1.d.ts +3 -3
  176. package/dist/cjs/api/types/SpeakSettingsV1Provider.d.ts +1 -1
  177. package/dist/cjs/api/types/ThinkSettingsV1.d.ts +15 -15
  178. package/dist/cjs/api/types/ThinkSettingsV1Provider.d.ts +19 -0
  179. package/dist/cjs/api/types/ThinkSettingsV1Provider.js +3 -0
  180. package/dist/cjs/api/types/UpdateProjectMemberScopesV1Response.d.ts +1 -1
  181. package/dist/cjs/api/types/UpdateProjectV1Response.d.ts +1 -1
  182. package/dist/cjs/api/types/UsageBreakdownV1Response.d.ts +9 -9
  183. package/dist/cjs/api/types/UsageFieldsV1Response.d.ts +8 -8
  184. package/dist/cjs/api/types/UsageV1Response.d.ts +5 -5
  185. package/dist/cjs/api/types/index.d.ts +3 -1
  186. package/dist/cjs/api/types/index.js +3 -1
  187. package/dist/cjs/core/fetcher/Fetcher.js +8 -2
  188. package/dist/cjs/core/fetcher/makeRequest.d.ts +6 -1
  189. package/dist/cjs/core/fetcher/makeRequest.js +30 -9
  190. package/dist/cjs/core/runtime/runtime.js +8 -7
  191. package/dist/cjs/core/websocket/ws.d.ts +4 -1
  192. package/dist/cjs/core/websocket/ws.js +32 -2
  193. package/dist/cjs/environments.d.ts +3 -3
  194. package/dist/cjs/environments.js +2 -2
  195. package/dist/cjs/index.d.ts +2 -0
  196. package/dist/cjs/index.js +6 -0
  197. package/dist/cjs/middleware/adapters/express.d.ts +103 -0
  198. package/dist/cjs/middleware/adapters/express.js +141 -0
  199. package/dist/cjs/middleware/adapters/fastify.d.ts +32 -0
  200. package/dist/cjs/middleware/adapters/fastify.js +194 -0
  201. package/dist/cjs/middleware/adapters/http.d.ts +153 -0
  202. package/dist/cjs/middleware/adapters/http.js +192 -0
  203. package/dist/cjs/middleware/core/ProxyHandler.d.ts +35 -0
  204. package/dist/cjs/middleware/core/ProxyHandler.js +225 -0
  205. package/dist/cjs/middleware/core/TokenManager.d.ts +29 -0
  206. package/dist/cjs/middleware/core/TokenManager.js +110 -0
  207. package/dist/cjs/middleware/core/WebSocketProxy.d.ts +32 -0
  208. package/dist/cjs/middleware/core/WebSocketProxy.js +169 -0
  209. package/dist/cjs/middleware/core/jwt.d.ts +71 -0
  210. package/dist/cjs/middleware/core/jwt.js +136 -0
  211. package/dist/cjs/middleware/core/types.d.ts +37 -0
  212. package/dist/cjs/middleware/core/types.js +2 -0
  213. package/dist/cjs/middleware/index.d.ts +55 -0
  214. package/dist/cjs/middleware/index.js +75 -0
  215. package/dist/cjs/tests/manual/test-custom-baseurl.js +124 -0
  216. package/dist/cjs/version.d.ts +1 -1
  217. package/dist/cjs/version.js +1 -1
  218. package/dist/esm/BaseClient.mjs +3 -3
  219. package/dist/esm/CustomClient.mjs +90 -107
  220. package/dist/esm/api/resources/agent/exports.d.mts +3 -0
  221. package/dist/esm/api/resources/agent/exports.mjs +4 -0
  222. package/dist/esm/api/resources/agent/resources/v1/client/Client.d.mts +6 -0
  223. package/dist/esm/api/resources/agent/resources/v1/client/Client.mjs +8 -3
  224. package/dist/esm/api/resources/agent/resources/v1/client/Socket.d.mts +3 -2
  225. package/dist/esm/api/resources/agent/resources/v1/client/Socket.mjs +4 -0
  226. package/dist/esm/api/resources/agent/resources/v1/exports.d.mts +3 -0
  227. package/dist/esm/api/resources/agent/resources/v1/exports.mjs +4 -0
  228. package/dist/esm/api/resources/agent/resources/v1/resources/settings/exports.d.mts +3 -0
  229. package/dist/esm/api/resources/agent/resources/v1/resources/settings/exports.mjs +4 -0
  230. package/dist/esm/api/resources/agent/resources/v1/resources/settings/resources/think/exports.d.mts +3 -0
  231. package/dist/esm/api/resources/agent/resources/v1/resources/settings/resources/think/exports.mjs +4 -0
  232. package/dist/esm/api/resources/agent/resources/v1/resources/settings/resources/think/resources/models/exports.d.mts +2 -0
  233. package/dist/esm/api/resources/agent/resources/v1/resources/settings/resources/think/resources/models/exports.mjs +3 -0
  234. package/dist/esm/api/resources/agent/resources/v1/types/AgentV1ReceiveFunctionCallResponse.d.mts +1 -1
  235. package/dist/esm/api/resources/agent/resources/v1/types/AgentV1SendFunctionCallResponse.d.mts +1 -1
  236. package/dist/esm/api/resources/agent/resources/v1/types/AgentV1Settings.d.mts +21 -51
  237. package/dist/esm/api/resources/agent/resources/v1/types/AgentV1SettingsAgentListenProvider.d.mts +5 -5
  238. package/dist/esm/api/resources/agent/resources/v1/types/AgentV1ThinkUpdated.d.mts +4 -0
  239. package/dist/esm/api/resources/agent/resources/v1/types/AgentV1ThinkUpdated.mjs +2 -0
  240. package/dist/esm/api/resources/agent/resources/v1/types/AgentV1UpdateSpeak.d.mts +2 -11
  241. package/dist/esm/api/resources/agent/resources/v1/types/AgentV1UpdateThink.d.mts +9 -0
  242. package/dist/esm/api/resources/agent/resources/v1/types/AgentV1UpdateThink.mjs +2 -0
  243. package/dist/esm/api/resources/agent/resources/v1/types/index.d.mts +2 -0
  244. package/dist/esm/api/resources/agent/resources/v1/types/index.mjs +2 -0
  245. package/dist/esm/api/resources/auth/exports.d.mts +3 -0
  246. package/dist/esm/api/resources/auth/exports.mjs +4 -0
  247. package/dist/esm/api/resources/auth/resources/v1/exports.d.mts +3 -0
  248. package/dist/esm/api/resources/auth/resources/v1/exports.mjs +4 -0
  249. package/dist/esm/api/resources/auth/resources/v1/resources/tokens/exports.d.mts +2 -0
  250. package/dist/esm/api/resources/auth/resources/v1/resources/tokens/exports.mjs +3 -0
  251. package/dist/esm/api/resources/listen/exports.d.mts +3 -0
  252. package/dist/esm/api/resources/listen/exports.mjs +4 -0
  253. package/dist/esm/api/resources/listen/resources/v1/client/Client.d.mts +35 -28
  254. package/dist/esm/api/resources/listen/resources/v1/client/Client.mjs +40 -30
  255. package/dist/esm/api/resources/listen/resources/v1/exports.d.mts +3 -0
  256. package/dist/esm/api/resources/listen/resources/v1/exports.mjs +4 -0
  257. package/dist/esm/api/resources/listen/resources/v1/resources/media/client/requests/MediaTranscribeRequestOctetStream.d.mts +0 -3
  258. package/dist/esm/api/resources/listen/resources/v1/resources/media/exports.d.mts +2 -0
  259. package/dist/esm/api/resources/listen/resources/v1/resources/media/exports.mjs +3 -0
  260. package/dist/esm/api/resources/listen/resources/v1/types/ListenV1Results.d.mts +8 -8
  261. package/dist/esm/api/resources/listen/resources/v2/client/Client.d.mts +16 -9
  262. package/dist/esm/api/resources/listen/resources/v2/client/Client.mjs +29 -11
  263. package/dist/esm/api/resources/listen/resources/v2/client/Socket.d.mts +3 -2
  264. package/dist/esm/api/resources/listen/resources/v2/client/Socket.mjs +4 -0
  265. package/dist/esm/api/resources/listen/resources/v2/exports.d.mts +2 -0
  266. package/dist/esm/api/resources/listen/resources/v2/exports.mjs +3 -0
  267. package/dist/esm/api/resources/listen/resources/v2/types/ListenV2Configure.d.mts +22 -0
  268. package/dist/esm/api/resources/listen/resources/v2/types/ListenV2Configure.mjs +2 -0
  269. package/dist/esm/api/resources/listen/resources/v2/types/ListenV2ConfigureFailure.d.mts +12 -0
  270. package/dist/esm/api/resources/listen/resources/v2/types/ListenV2ConfigureFailure.mjs +2 -0
  271. package/dist/esm/api/resources/listen/resources/v2/types/ListenV2ConfigureSuccess.d.mts +30 -0
  272. package/dist/esm/api/resources/listen/resources/v2/types/ListenV2ConfigureSuccess.mjs +2 -0
  273. package/dist/esm/api/resources/listen/resources/v2/types/index.d.mts +3 -0
  274. package/dist/esm/api/resources/listen/resources/v2/types/index.mjs +3 -0
  275. package/dist/esm/api/resources/manage/exports.d.mts +3 -0
  276. package/dist/esm/api/resources/manage/exports.mjs +4 -0
  277. package/dist/esm/api/resources/manage/resources/v1/exports.d.mts +3 -0
  278. package/dist/esm/api/resources/manage/resources/v1/exports.mjs +4 -0
  279. package/dist/esm/api/resources/manage/resources/v1/resources/models/exports.d.mts +2 -0
  280. package/dist/esm/api/resources/manage/resources/v1/resources/models/exports.mjs +3 -0
  281. package/dist/esm/api/resources/manage/resources/v1/resources/projects/exports.d.mts +3 -0
  282. package/dist/esm/api/resources/manage/resources/v1/resources/projects/exports.mjs +4 -0
  283. package/dist/esm/api/resources/manage/resources/v1/resources/projects/resources/billing/exports.d.mts +3 -0
  284. package/dist/esm/api/resources/manage/resources/v1/resources/projects/resources/billing/exports.mjs +4 -0
  285. package/dist/esm/api/resources/manage/resources/v1/resources/projects/resources/billing/resources/balances/exports.d.mts +2 -0
  286. package/dist/esm/api/resources/manage/resources/v1/resources/projects/resources/billing/resources/balances/exports.mjs +3 -0
  287. package/dist/esm/api/resources/manage/resources/v1/resources/projects/resources/billing/resources/breakdown/exports.d.mts +2 -0
  288. package/dist/esm/api/resources/manage/resources/v1/resources/projects/resources/billing/resources/breakdown/exports.mjs +3 -0
  289. package/dist/esm/api/resources/manage/resources/v1/resources/projects/resources/billing/resources/fields/exports.d.mts +2 -0
  290. package/dist/esm/api/resources/manage/resources/v1/resources/projects/resources/billing/resources/fields/exports.mjs +3 -0
  291. package/dist/esm/api/resources/manage/resources/v1/resources/projects/resources/billing/resources/purchases/exports.d.mts +2 -0
  292. package/dist/esm/api/resources/manage/resources/v1/resources/projects/resources/billing/resources/purchases/exports.mjs +3 -0
  293. package/dist/esm/api/resources/manage/resources/v1/resources/projects/resources/keys/exports.d.mts +2 -0
  294. package/dist/esm/api/resources/manage/resources/v1/resources/projects/resources/keys/exports.mjs +3 -0
  295. package/dist/esm/api/resources/manage/resources/v1/resources/projects/resources/members/exports.d.mts +3 -0
  296. package/dist/esm/api/resources/manage/resources/v1/resources/projects/resources/members/exports.mjs +4 -0
  297. package/dist/esm/api/resources/manage/resources/v1/resources/projects/resources/members/resources/invites/exports.d.mts +2 -0
  298. package/dist/esm/api/resources/manage/resources/v1/resources/projects/resources/members/resources/invites/exports.mjs +3 -0
  299. package/dist/esm/api/resources/manage/resources/v1/resources/projects/resources/members/resources/scopes/exports.d.mts +2 -0
  300. package/dist/esm/api/resources/manage/resources/v1/resources/projects/resources/members/resources/scopes/exports.mjs +3 -0
  301. package/dist/esm/api/resources/manage/resources/v1/resources/projects/resources/models/exports.d.mts +2 -0
  302. package/dist/esm/api/resources/manage/resources/v1/resources/projects/resources/models/exports.mjs +3 -0
  303. package/dist/esm/api/resources/manage/resources/v1/resources/projects/resources/requests/exports.d.mts +2 -0
  304. package/dist/esm/api/resources/manage/resources/v1/resources/projects/resources/requests/exports.mjs +3 -0
  305. package/dist/esm/api/resources/manage/resources/v1/resources/projects/resources/usage/client/Client.d.mts +2 -0
  306. package/dist/esm/api/resources/manage/resources/v1/resources/projects/resources/usage/client/Client.mjs +2 -0
  307. package/dist/esm/api/resources/manage/resources/v1/resources/projects/resources/usage/exports.d.mts +3 -0
  308. package/dist/esm/api/resources/manage/resources/v1/resources/projects/resources/usage/exports.mjs +4 -0
  309. package/dist/esm/api/resources/manage/resources/v1/resources/projects/resources/usage/resources/breakdown/exports.d.mts +2 -0
  310. package/dist/esm/api/resources/manage/resources/v1/resources/projects/resources/usage/resources/breakdown/exports.mjs +3 -0
  311. package/dist/esm/api/resources/manage/resources/v1/resources/projects/resources/usage/resources/fields/exports.d.mts +2 -0
  312. package/dist/esm/api/resources/manage/resources/v1/resources/projects/resources/usage/resources/fields/exports.mjs +3 -0
  313. package/dist/esm/api/resources/read/exports.d.mts +3 -0
  314. package/dist/esm/api/resources/read/exports.mjs +4 -0
  315. package/dist/esm/api/resources/read/resources/v1/exports.d.mts +3 -0
  316. package/dist/esm/api/resources/read/resources/v1/exports.mjs +4 -0
  317. package/dist/esm/api/resources/read/resources/v1/resources/text/exports.d.mts +2 -0
  318. package/dist/esm/api/resources/read/resources/v1/resources/text/exports.mjs +3 -0
  319. package/dist/esm/api/resources/selfHosted/exports.d.mts +3 -0
  320. package/dist/esm/api/resources/selfHosted/exports.mjs +4 -0
  321. package/dist/esm/api/resources/selfHosted/resources/v1/exports.d.mts +3 -0
  322. package/dist/esm/api/resources/selfHosted/resources/v1/exports.mjs +4 -0
  323. package/dist/esm/api/resources/selfHosted/resources/v1/resources/distributionCredentials/exports.d.mts +2 -0
  324. package/dist/esm/api/resources/selfHosted/resources/v1/resources/distributionCredentials/exports.mjs +3 -0
  325. package/dist/esm/api/resources/speak/exports.d.mts +3 -0
  326. package/dist/esm/api/resources/speak/exports.mjs +4 -0
  327. package/dist/esm/api/resources/speak/resources/v1/client/Client.d.mts +11 -4
  328. package/dist/esm/api/resources/speak/resources/v1/client/Client.mjs +13 -7
  329. package/dist/esm/api/resources/speak/resources/v1/exports.d.mts +3 -0
  330. package/dist/esm/api/resources/speak/resources/v1/exports.mjs +4 -0
  331. package/dist/esm/api/resources/speak/resources/v1/resources/audio/client/Client.d.mts +1 -0
  332. package/dist/esm/api/resources/speak/resources/v1/resources/audio/client/Client.mjs +1 -0
  333. package/dist/esm/api/resources/speak/resources/v1/resources/audio/exports.d.mts +2 -0
  334. package/dist/esm/api/resources/speak/resources/v1/resources/audio/exports.mjs +3 -0
  335. package/dist/esm/api/resources/speak/resources/v1/types/SpeakV1Metadata.d.mts +4 -2
  336. package/dist/esm/api/types/Anthropic.d.mts +2 -2
  337. package/dist/esm/api/types/AwsBedrockThinkProvider.d.mts +7 -7
  338. package/dist/esm/api/types/AwsPollySpeakProvider.d.mts +2 -2
  339. package/dist/esm/api/types/BillingBreakdownV1Response.d.mts +6 -6
  340. package/dist/esm/api/types/Cartesia.d.mts +2 -2
  341. package/dist/esm/api/types/CreateKeyV1Response.d.mts +6 -6
  342. package/dist/esm/api/types/CreateProjectDistributionCredentialsV1Response.d.mts +1 -1
  343. package/dist/esm/api/types/CreateProjectInviteV1Response.d.mts +1 -1
  344. package/dist/esm/api/types/Deepgram.d.mts +1 -1
  345. package/dist/esm/api/types/DeleteProjectInviteV1Response.d.mts +1 -1
  346. package/dist/esm/api/types/DeleteProjectKeyV1Response.d.mts +1 -1
  347. package/dist/esm/api/types/DeleteProjectMemberV1Response.d.mts +1 -1
  348. package/dist/esm/api/types/DeleteProjectV1Response.d.mts +1 -1
  349. package/dist/esm/api/types/ElevenLabsSpeakProvider.d.mts +3 -3
  350. package/dist/esm/api/types/ErrorResponseLegacyError.d.mts +3 -3
  351. package/dist/esm/api/types/ErrorResponseModernError.d.mts +4 -4
  352. package/dist/esm/api/types/GetProjectBalanceV1Response.d.mts +4 -4
  353. package/dist/esm/api/types/GetProjectDistributionCredentialsV1Response.d.mts +1 -1
  354. package/dist/esm/api/types/GetProjectKeyV1Response.d.mts +13 -13
  355. package/dist/esm/api/types/GetProjectRequestV1Response.d.mts +1 -1
  356. package/dist/esm/api/types/GetProjectV1Response.d.mts +3 -3
  357. package/dist/esm/api/types/Google.d.mts +2 -2
  358. package/dist/esm/api/types/GrantV1Response.d.mts +1 -1
  359. package/dist/esm/api/types/Groq.d.mts +2 -2
  360. package/dist/esm/api/types/LeaveProjectV1Response.d.mts +1 -1
  361. package/dist/esm/api/types/ListBillingFieldsV1Response.d.mts +4 -4
  362. package/dist/esm/api/types/ListModelsV1Response.d.mts +2 -2
  363. package/dist/esm/api/types/ListModelsV1ResponseSttModels.d.mts +9 -9
  364. package/dist/esm/api/types/ListModelsV1ResponseTtsModels.d.mts +14 -14
  365. package/dist/esm/api/types/ListProjectBalancesV1Response.d.mts +5 -5
  366. package/dist/esm/api/types/ListProjectDistributionCredentialsV1Response.d.mts +2 -2
  367. package/dist/esm/api/types/ListProjectInvitesV1Response.d.mts +3 -3
  368. package/dist/esm/api/types/ListProjectKeysV1Response.d.mts +9 -9
  369. package/dist/esm/api/types/ListProjectMemberScopesV1Response.d.mts +1 -1
  370. package/dist/esm/api/types/ListProjectMembersV1Response.d.mts +3 -3
  371. package/dist/esm/api/types/ListProjectPurchasesV1Response.d.mts +7 -7
  372. package/dist/esm/api/types/ListProjectRequestsV1Response.d.mts +3 -3
  373. package/dist/esm/api/types/ListProjectsV1Response.d.mts +3 -3
  374. package/dist/esm/api/types/ListenV1ResponseMetadata.d.mts +18 -18
  375. package/dist/esm/api/types/ListenV1ResponseResults.d.mts +5 -5
  376. package/dist/esm/api/types/ListenV1ResponseResultsChannelsItem.d.mts +43 -43
  377. package/dist/esm/api/types/ListenV1ResponseResultsSummary.d.mts +2 -2
  378. package/dist/esm/api/types/ListenV1ResponseResultsUtterancesItem.d.mts +15 -15
  379. package/dist/esm/api/types/OpenAiSpeakProvider.d.mts +27 -0
  380. package/dist/esm/api/types/OpenAiSpeakProvider.mjs +18 -0
  381. package/dist/esm/api/types/OpenAiThinkProvider.d.mts +23 -0
  382. package/dist/esm/api/types/OpenAiThinkProvider.mjs +15 -0
  383. package/dist/esm/api/types/ProjectRequestResponse.d.mts +9 -9
  384. package/dist/esm/api/types/ReadV1ResponseMetadata.d.mts +20 -20
  385. package/dist/esm/api/types/ReadV1ResponseResults.d.mts +4 -4
  386. package/dist/esm/api/types/ReadV1ResponseResultsSummary.d.mts +3 -3
  387. package/dist/esm/api/types/SharedIntents.d.mts +9 -9
  388. package/dist/esm/api/types/SharedSentiments.d.mts +9 -9
  389. package/dist/esm/api/types/SharedTopics.d.mts +9 -9
  390. package/dist/esm/api/types/SpeakSettingsV1.d.mts +3 -3
  391. package/dist/esm/api/types/SpeakSettingsV1Provider.d.mts +1 -1
  392. package/dist/esm/api/types/ThinkSettingsV1.d.mts +15 -15
  393. package/dist/esm/api/types/ThinkSettingsV1Provider.d.mts +19 -0
  394. package/dist/esm/api/types/ThinkSettingsV1Provider.mjs +2 -0
  395. package/dist/esm/api/types/UpdateProjectMemberScopesV1Response.d.mts +1 -1
  396. package/dist/esm/api/types/UpdateProjectV1Response.d.mts +1 -1
  397. package/dist/esm/api/types/UsageBreakdownV1Response.d.mts +9 -9
  398. package/dist/esm/api/types/UsageFieldsV1Response.d.mts +8 -8
  399. package/dist/esm/api/types/UsageV1Response.d.mts +5 -5
  400. package/dist/esm/api/types/index.d.mts +3 -1
  401. package/dist/esm/api/types/index.mjs +3 -1
  402. package/dist/esm/core/fetcher/Fetcher.mjs +8 -2
  403. package/dist/esm/core/fetcher/makeRequest.d.mts +6 -1
  404. package/dist/esm/core/fetcher/makeRequest.mjs +28 -9
  405. package/dist/esm/core/runtime/runtime.mjs +8 -7
  406. package/dist/esm/core/websocket/ws.d.mts +4 -1
  407. package/dist/esm/core/websocket/ws.mjs +32 -2
  408. package/dist/esm/environments.d.mts +3 -3
  409. package/dist/esm/environments.mjs +2 -2
  410. package/dist/esm/index.d.mts +2 -0
  411. package/dist/esm/index.mjs +6 -0
  412. package/dist/esm/middleware/adapters/express.d.mts +103 -0
  413. package/dist/esm/middleware/adapters/express.mjs +136 -0
  414. package/dist/esm/middleware/adapters/fastify.d.mts +32 -0
  415. package/dist/esm/middleware/adapters/fastify.mjs +157 -0
  416. package/dist/esm/middleware/adapters/http.d.mts +153 -0
  417. package/dist/esm/middleware/adapters/http.mjs +187 -0
  418. package/dist/esm/middleware/core/ProxyHandler.d.mts +35 -0
  419. package/dist/esm/middleware/core/ProxyHandler.mjs +218 -0
  420. package/dist/esm/middleware/core/TokenManager.d.mts +29 -0
  421. package/dist/esm/middleware/core/TokenManager.mjs +106 -0
  422. package/dist/esm/middleware/core/WebSocketProxy.d.mts +32 -0
  423. package/dist/esm/middleware/core/WebSocketProxy.mjs +162 -0
  424. package/dist/esm/middleware/core/jwt.d.mts +71 -0
  425. package/dist/esm/middleware/core/jwt.mjs +99 -0
  426. package/dist/esm/middleware/core/types.d.mts +37 -0
  427. package/dist/esm/middleware/core/types.mjs +1 -0
  428. package/dist/esm/middleware/index.d.mts +55 -0
  429. package/dist/esm/middleware/index.mjs +59 -0
  430. package/dist/esm/version.d.mts +1 -1
  431. package/dist/esm/version.mjs +1 -1
  432. package/package.json +433 -4
  433. package/reference.md +1 -0
@@ -0,0 +1,153 @@
1
+ /**
2
+ * Raw Node.js HTTP/HTTPS server adapter for proxying Deepgram API requests.
3
+ *
4
+ * @packageDocumentation
5
+ *
6
+ * **No Dependencies Required** - Uses only built-in Node.js modules
7
+ *
8
+ * This module provides a request handler for raw Node.js `http` and `https` servers,
9
+ * allowing proxy integration without any framework dependencies.
10
+ */
11
+ import type { IncomingMessage, Server, ServerResponse } from "node:http";
12
+ import type { Duplex } from "node:stream";
13
+ import type { MiddlewareOptions } from "../core/types.mjs";
14
+ /**
15
+ * Request handler type for Node.js HTTP server
16
+ */
17
+ export type HttpRequestHandler = (req: IncomingMessage, res: ServerResponse) => void | Promise<void>;
18
+ /**
19
+ * WebSocket upgrade handler type
20
+ */
21
+ export type UpgradeHandler = (req: IncomingMessage, socket: Duplex, head: Buffer) => void;
22
+ /**
23
+ * Create a request handler for raw Node.js HTTP/HTTPS servers
24
+ *
25
+ * This handler can be used directly with `http.createServer()` or `https.createServer()`.
26
+ *
27
+ * @param options - Middleware configuration options
28
+ * @returns HTTP request handler function
29
+ *
30
+ * @example Basic HTTP server
31
+ * ```typescript
32
+ * import http from 'node:http';
33
+ * import { createHttpHandler, createUpgradeHandler } from '@deepgram/sdk';
34
+ *
35
+ * const options = {
36
+ * apiKey: process.env.DEEPGRAM_API_KEY!,
37
+ * enableTokenAuth: true
38
+ * };
39
+ *
40
+ * // Create request handler
41
+ * const handler = createHttpHandler(options);
42
+ *
43
+ * // Create server
44
+ * const server = http.createServer(handler);
45
+ *
46
+ * // Register WebSocket upgrade handler
47
+ * server.on('upgrade', createUpgradeHandler(options));
48
+ *
49
+ * server.listen(3000);
50
+ * ```
51
+ *
52
+ * @example HTTPS server
53
+ * ```typescript
54
+ * import https from 'node:https';
55
+ * import fs from 'node:fs';
56
+ * import { createHttpHandler, createUpgradeHandler } from '@deepgram/sdk';
57
+ *
58
+ * const options = {
59
+ * apiKey: process.env.DEEPGRAM_API_KEY!
60
+ * };
61
+ *
62
+ * const server = https.createServer({
63
+ * key: fs.readFileSync('server.key'),
64
+ * cert: fs.readFileSync('server.cert')
65
+ * }, createHttpHandler(options));
66
+ *
67
+ * server.on('upgrade', createUpgradeHandler(options));
68
+ * server.listen(443);
69
+ * ```
70
+ *
71
+ * @example With routing
72
+ * ```typescript
73
+ * import http from 'node:http';
74
+ * import { createHttpHandler } from '@deepgram/sdk';
75
+ *
76
+ * const deepgramHandler = createHttpHandler({
77
+ * apiKey: process.env.DEEPGRAM_API_KEY!
78
+ * });
79
+ *
80
+ * const server = http.createServer((req, res) => {
81
+ * // Route /api/deepgram/* to Deepgram proxy
82
+ * if (req.url?.startsWith('/api/deepgram')) {
83
+ * // Strip prefix before proxying
84
+ * req.url = req.url.slice('/api/deepgram'.length);
85
+ * return deepgramHandler(req, res);
86
+ * }
87
+ *
88
+ * // Handle other routes
89
+ * res.writeHead(404);
90
+ * res.end('Not Found');
91
+ * });
92
+ *
93
+ * server.listen(3000);
94
+ * ```
95
+ */
96
+ export declare function createHttpHandler(options: MiddlewareOptions): HttpRequestHandler;
97
+ /**
98
+ * Create WebSocket upgrade handler for raw Node.js HTTP/HTTPS servers
99
+ *
100
+ * This must be registered on the server using `server.on('upgrade', handler)`.
101
+ *
102
+ * @param options - Middleware configuration options
103
+ * @returns Upgrade handler function
104
+ *
105
+ * @example
106
+ * ```typescript
107
+ * import http from 'node:http';
108
+ * import { createHttpHandler, createUpgradeHandler } from '@deepgram/sdk';
109
+ *
110
+ * const options = {
111
+ * apiKey: process.env.DEEPGRAM_API_KEY!
112
+ * };
113
+ *
114
+ * const server = http.createServer(createHttpHandler(options));
115
+ *
116
+ * // Register WebSocket handler
117
+ * server.on('upgrade', createUpgradeHandler(options));
118
+ *
119
+ * server.listen(3000);
120
+ * ```
121
+ */
122
+ export declare function createUpgradeHandler(options: MiddlewareOptions): UpgradeHandler;
123
+ /**
124
+ * Combined helper that returns both HTTP handler and upgrade handler
125
+ *
126
+ * Convenience function for setting up both REST and WebSocket proxying.
127
+ *
128
+ * @param options - Middleware configuration options
129
+ * @returns Object with HTTP handler and upgrade handler
130
+ *
131
+ * @example
132
+ * ```typescript
133
+ * import http from 'node:http';
134
+ * import { createDeepgramHttpServer } from '@deepgram/sdk';
135
+ *
136
+ * const { handler, upgradeHandler } = createDeepgramHttpServer({
137
+ * apiKey: process.env.DEEPGRAM_API_KEY!,
138
+ * enableTokenAuth: true
139
+ * });
140
+ *
141
+ * const server = http.createServer(handler);
142
+ * server.on('upgrade', upgradeHandler);
143
+ *
144
+ * server.listen(3000, () => {
145
+ * console.log('Deepgram proxy running on port 3000');
146
+ * });
147
+ * ```
148
+ */
149
+ export declare function createDeepgramHttpServer(options: MiddlewareOptions): {
150
+ handler: HttpRequestHandler;
151
+ upgradeHandler: UpgradeHandler;
152
+ server: (httpServer: Server) => void;
153
+ };
@@ -0,0 +1,187 @@
1
+ /**
2
+ * Raw Node.js HTTP/HTTPS server adapter for proxying Deepgram API requests.
3
+ *
4
+ * @packageDocumentation
5
+ *
6
+ * **No Dependencies Required** - Uses only built-in Node.js modules
7
+ *
8
+ * This module provides a request handler for raw Node.js `http` and `https` servers,
9
+ * allowing proxy integration without any framework dependencies.
10
+ */
11
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
12
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
13
+ return new (P || (P = Promise))(function (resolve, reject) {
14
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
15
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
16
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
17
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
18
+ });
19
+ };
20
+ import { ProxyHandler } from "../core/ProxyHandler.mjs";
21
+ import { TokenManager } from "../core/TokenManager.mjs";
22
+ import { WebSocketProxy } from "../core/WebSocketProxy.mjs";
23
+ /**
24
+ * Create a request handler for raw Node.js HTTP/HTTPS servers
25
+ *
26
+ * This handler can be used directly with `http.createServer()` or `https.createServer()`.
27
+ *
28
+ * @param options - Middleware configuration options
29
+ * @returns HTTP request handler function
30
+ *
31
+ * @example Basic HTTP server
32
+ * ```typescript
33
+ * import http from 'node:http';
34
+ * import { createHttpHandler, createUpgradeHandler } from '@deepgram/sdk';
35
+ *
36
+ * const options = {
37
+ * apiKey: process.env.DEEPGRAM_API_KEY!,
38
+ * enableTokenAuth: true
39
+ * };
40
+ *
41
+ * // Create request handler
42
+ * const handler = createHttpHandler(options);
43
+ *
44
+ * // Create server
45
+ * const server = http.createServer(handler);
46
+ *
47
+ * // Register WebSocket upgrade handler
48
+ * server.on('upgrade', createUpgradeHandler(options));
49
+ *
50
+ * server.listen(3000);
51
+ * ```
52
+ *
53
+ * @example HTTPS server
54
+ * ```typescript
55
+ * import https from 'node:https';
56
+ * import fs from 'node:fs';
57
+ * import { createHttpHandler, createUpgradeHandler } from '@deepgram/sdk';
58
+ *
59
+ * const options = {
60
+ * apiKey: process.env.DEEPGRAM_API_KEY!
61
+ * };
62
+ *
63
+ * const server = https.createServer({
64
+ * key: fs.readFileSync('server.key'),
65
+ * cert: fs.readFileSync('server.cert')
66
+ * }, createHttpHandler(options));
67
+ *
68
+ * server.on('upgrade', createUpgradeHandler(options));
69
+ * server.listen(443);
70
+ * ```
71
+ *
72
+ * @example With routing
73
+ * ```typescript
74
+ * import http from 'node:http';
75
+ * import { createHttpHandler } from '@deepgram/sdk';
76
+ *
77
+ * const deepgramHandler = createHttpHandler({
78
+ * apiKey: process.env.DEEPGRAM_API_KEY!
79
+ * });
80
+ *
81
+ * const server = http.createServer((req, res) => {
82
+ * // Route /api/deepgram/* to Deepgram proxy
83
+ * if (req.url?.startsWith('/api/deepgram')) {
84
+ * // Strip prefix before proxying
85
+ * req.url = req.url.slice('/api/deepgram'.length);
86
+ * return deepgramHandler(req, res);
87
+ * }
88
+ *
89
+ * // Handle other routes
90
+ * res.writeHead(404);
91
+ * res.end('Not Found');
92
+ * });
93
+ *
94
+ * server.listen(3000);
95
+ * ```
96
+ */
97
+ export function createHttpHandler(options) {
98
+ const proxyHandler = new ProxyHandler(options);
99
+ const tokenManager = options.enableTokenAuth ? new TokenManager(options) : null;
100
+ return (req, res) => __awaiter(this, void 0, void 0, function* () {
101
+ try {
102
+ // Handle token generation requests
103
+ if (options.enableTokenAuth && req.url === "/token" && req.method === "GET") {
104
+ yield tokenManager.handleTokenRequest(req, res);
105
+ return;
106
+ }
107
+ // Handle all other requests (proxy to Deepgram)
108
+ yield proxyHandler.handleRequest(req, res);
109
+ }
110
+ catch (error) {
111
+ // Set error response
112
+ res.statusCode = 500;
113
+ res.setHeader("Content-Type", "application/json");
114
+ res.end(JSON.stringify({
115
+ error: error instanceof Error ? error.message : String(error),
116
+ }));
117
+ }
118
+ });
119
+ }
120
+ /**
121
+ * Create WebSocket upgrade handler for raw Node.js HTTP/HTTPS servers
122
+ *
123
+ * This must be registered on the server using `server.on('upgrade', handler)`.
124
+ *
125
+ * @param options - Middleware configuration options
126
+ * @returns Upgrade handler function
127
+ *
128
+ * @example
129
+ * ```typescript
130
+ * import http from 'node:http';
131
+ * import { createHttpHandler, createUpgradeHandler } from '@deepgram/sdk';
132
+ *
133
+ * const options = {
134
+ * apiKey: process.env.DEEPGRAM_API_KEY!
135
+ * };
136
+ *
137
+ * const server = http.createServer(createHttpHandler(options));
138
+ *
139
+ * // Register WebSocket handler
140
+ * server.on('upgrade', createUpgradeHandler(options));
141
+ *
142
+ * server.listen(3000);
143
+ * ```
144
+ */
145
+ export function createUpgradeHandler(options) {
146
+ const wsProxy = new WebSocketProxy(options);
147
+ return (req, socket, head) => {
148
+ wsProxy.handleUpgrade(req, socket, head);
149
+ };
150
+ }
151
+ /**
152
+ * Combined helper that returns both HTTP handler and upgrade handler
153
+ *
154
+ * Convenience function for setting up both REST and WebSocket proxying.
155
+ *
156
+ * @param options - Middleware configuration options
157
+ * @returns Object with HTTP handler and upgrade handler
158
+ *
159
+ * @example
160
+ * ```typescript
161
+ * import http from 'node:http';
162
+ * import { createDeepgramHttpServer } from '@deepgram/sdk';
163
+ *
164
+ * const { handler, upgradeHandler } = createDeepgramHttpServer({
165
+ * apiKey: process.env.DEEPGRAM_API_KEY!,
166
+ * enableTokenAuth: true
167
+ * });
168
+ *
169
+ * const server = http.createServer(handler);
170
+ * server.on('upgrade', upgradeHandler);
171
+ *
172
+ * server.listen(3000, () => {
173
+ * console.log('Deepgram proxy running on port 3000');
174
+ * });
175
+ * ```
176
+ */
177
+ export function createDeepgramHttpServer(options) {
178
+ const handler = createHttpHandler(options);
179
+ const upgradeHandler = createUpgradeHandler(options);
180
+ return {
181
+ handler,
182
+ upgradeHandler,
183
+ server: (httpServer) => {
184
+ httpServer.on("upgrade", upgradeHandler);
185
+ },
186
+ };
187
+ }
@@ -0,0 +1,35 @@
1
+ import type { IncomingMessage, ServerResponse } from "node:http";
2
+ import type { MiddlewareOptions } from "./types.mjs";
3
+ /**
4
+ * Handles HTTP/REST request proxying to Deepgram API
5
+ */
6
+ export declare class ProxyHandler {
7
+ private readonly apiKey;
8
+ private readonly baseUrl;
9
+ private readonly tokenMode;
10
+ constructor(options: MiddlewareOptions);
11
+ /**
12
+ * Handle incoming HTTP request and proxy to Deepgram
13
+ */
14
+ handleRequest(req: IncomingMessage, res: ServerResponse): Promise<void>;
15
+ /**
16
+ * Forward request to Deepgram API
17
+ */
18
+ private forwardToDeepgram;
19
+ /**
20
+ * Prepare headers for Deepgram request
21
+ */
22
+ private prepareHeaders;
23
+ /**
24
+ * Add CORS headers to response
25
+ */
26
+ private addCorsHeaders;
27
+ /**
28
+ * Handle CORS preflight requests
29
+ */
30
+ private handleCorsPreflightRequest;
31
+ /**
32
+ * Handle errors and send appropriate response
33
+ */
34
+ private handleError;
35
+ }
@@ -0,0 +1,218 @@
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
+ }
@@ -0,0 +1,29 @@
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
+ }