@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,32 @@
1
+ /**
2
+ * Fastify plugin for proxying Deepgram API requests.
3
+ *
4
+ * @packageDocumentation
5
+ *
6
+ * **Peer Dependencies Required:**
7
+ * ```bash
8
+ * npm install fastify fastify-plugin
9
+ * # or
10
+ * pnpm add fastify fastify-plugin
11
+ * ```
12
+ *
13
+ * This module provides a Fastify plugin for proxying requests to the Deepgram API,
14
+ * including REST endpoints and WebSocket connections.
15
+ */
16
+ import type { FastifyPluginAsync, FastifyPluginOptions } from "fastify";
17
+ import type { MiddlewareOptions } from "../core/types.js";
18
+ /**
19
+ * Fastify plugin options
20
+ */
21
+ export interface FastifyDeepgramProxyOptions extends MiddlewareOptions, FastifyPluginOptions {
22
+ /** URL prefix for the proxy routes (default: "") */
23
+ prefix?: string;
24
+ }
25
+ /**
26
+ * Export as Fastify plugin with proper typing
27
+ */
28
+ export declare const fastifyDeepgramProxy: FastifyPluginAsync<FastifyDeepgramProxyOptions>;
29
+ /**
30
+ * Alternative export for direct usage (without fastify-plugin wrapper)
31
+ */
32
+ export declare const deepgramProxyPlugin: FastifyPluginAsync<FastifyDeepgramProxyOptions>;
@@ -0,0 +1,194 @@
1
+ "use strict";
2
+ /**
3
+ * Fastify plugin for proxying Deepgram API requests.
4
+ *
5
+ * @packageDocumentation
6
+ *
7
+ * **Peer Dependencies Required:**
8
+ * ```bash
9
+ * npm install fastify fastify-plugin
10
+ * # or
11
+ * pnpm add fastify fastify-plugin
12
+ * ```
13
+ *
14
+ * This module provides a Fastify plugin for proxying requests to the Deepgram API,
15
+ * including REST endpoints and WebSocket connections.
16
+ */
17
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
18
+ if (k2 === undefined) k2 = k;
19
+ var desc = Object.getOwnPropertyDescriptor(m, k);
20
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
21
+ desc = { enumerable: true, get: function() { return m[k]; } };
22
+ }
23
+ Object.defineProperty(o, k2, desc);
24
+ }) : (function(o, m, k, k2) {
25
+ if (k2 === undefined) k2 = k;
26
+ o[k2] = m[k];
27
+ }));
28
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
29
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
30
+ }) : function(o, v) {
31
+ o["default"] = v;
32
+ });
33
+ var __importStar = (this && this.__importStar) || (function () {
34
+ var ownKeys = function(o) {
35
+ ownKeys = Object.getOwnPropertyNames || function (o) {
36
+ var ar = [];
37
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
38
+ return ar;
39
+ };
40
+ return ownKeys(o);
41
+ };
42
+ return function (mod) {
43
+ if (mod && mod.__esModule) return mod;
44
+ var result = {};
45
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
46
+ __setModuleDefault(result, mod);
47
+ return result;
48
+ };
49
+ })();
50
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
51
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
52
+ return new (P || (P = Promise))(function (resolve, reject) {
53
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
54
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
55
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
56
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
57
+ });
58
+ };
59
+ Object.defineProperty(exports, "__esModule", { value: true });
60
+ exports.deepgramProxyPlugin = exports.fastifyDeepgramProxy = void 0;
61
+ const ProxyHandler_js_1 = require("../core/ProxyHandler.js");
62
+ const TokenManager_js_1 = require("../core/TokenManager.js");
63
+ const WebSocketProxy_js_1 = require("../core/WebSocketProxy.js");
64
+ // Lazy-load fastify-plugin
65
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any -- Dynamic loading
66
+ let fp = null;
67
+ function loadFastifyPlugin() {
68
+ return __awaiter(this, void 0, void 0, function* () {
69
+ if (fp) {
70
+ return fp;
71
+ }
72
+ try {
73
+ const module = yield Promise.resolve().then(() => __importStar(require("fastify-plugin")));
74
+ fp = module.default || module;
75
+ return fp;
76
+ }
77
+ catch (_a) {
78
+ throw new Error("fastify-plugin is required for Fastify middleware. Install it with: npm install fastify-plugin");
79
+ }
80
+ });
81
+ }
82
+ /**
83
+ * Fastify plugin for proxying Deepgram API requests
84
+ *
85
+ * @param fastify - Fastify instance
86
+ * @param options - Plugin configuration options
87
+ *
88
+ * @example
89
+ * ```typescript
90
+ * import Fastify from 'fastify';
91
+ * import { fastifyDeepgramProxy } from '@deepgram/sdk';
92
+ *
93
+ * const fastify = Fastify();
94
+ *
95
+ * fastify.register(fastifyDeepgramProxy, {
96
+ * prefix: '/api/deepgram',
97
+ * apiKey: process.env.DEEPGRAM_API_KEY!,
98
+ * enableTokenAuth: true
99
+ * });
100
+ *
101
+ * fastify.listen({ port: 3000 });
102
+ * ```
103
+ */
104
+ const fastifyDeepgramProxyPlugin = (fastify, options) => __awaiter(void 0, void 0, void 0, function* () {
105
+ var _a;
106
+ const proxyHandler = new ProxyHandler_js_1.ProxyHandler(options);
107
+ const tokenManager = options.enableTokenAuth
108
+ ? new TokenManager_js_1.TokenManager(options)
109
+ : null;
110
+ const wsProxy = new WebSocketProxy_js_1.WebSocketProxy(options);
111
+ // NOTE: We do NOT add a custom content type parser here because:
112
+ // 1. fastify-plugin breaks encapsulation, so it would affect ALL routes
113
+ // 2. We handle body reconstruction in our route handlers instead
114
+ // This allows users to use their own body parsers for their routes
115
+ // Register token endpoint if token auth is enabled
116
+ if (tokenManager) {
117
+ fastify.get("/token", (request, reply) => {
118
+ reply.hijack();
119
+ tokenManager.handleTokenRequest(request.raw, reply.raw).catch((error) => {
120
+ console.error("Token generation error:", error);
121
+ });
122
+ });
123
+ }
124
+ // Register wildcard route to catch ALL paths
125
+ // This must match any path depth: /, /v1, /v1/listen, /v1/listen/more/paths
126
+ fastify.all("/*", (request, reply) => {
127
+ reply.hijack();
128
+ // Fastify has already consumed the request body stream, so we need to
129
+ // write the parsed body back to the raw request
130
+ if (request.body && (request.method === 'POST' || request.method === 'PUT' || request.method === 'PATCH')) {
131
+ const bodyString = typeof request.body === 'string' ? request.body : JSON.stringify(request.body);
132
+ // Write the body to the raw request stream
133
+ process.nextTick(() => {
134
+ request.raw.emit('data', Buffer.from(bodyString));
135
+ request.raw.emit('end');
136
+ });
137
+ }
138
+ proxyHandler.handleRequest(request.raw, reply.raw).catch((error) => {
139
+ console.error("[Fastify] Proxy error:", error);
140
+ });
141
+ });
142
+ // Also catch root path explicitly
143
+ fastify.all("/", (request, reply) => {
144
+ reply.hijack();
145
+ // Reconstruct body if needed
146
+ if (request.body && (request.method === 'POST' || request.method === 'PUT' || request.method === 'PATCH')) {
147
+ const bodyString = typeof request.body === 'string' ? request.body : JSON.stringify(request.body);
148
+ process.nextTick(() => {
149
+ request.raw.emit('data', Buffer.from(bodyString));
150
+ request.raw.emit('end');
151
+ });
152
+ }
153
+ proxyHandler.handleRequest(request.raw, reply.raw).catch((error) => {
154
+ console.error("[Fastify] Root proxy error:", error);
155
+ });
156
+ });
157
+ // Register WebSocket upgrade handler
158
+ if (fastify.server) {
159
+ const prefix = (_a = options.prefix) !== null && _a !== void 0 ? _a : "";
160
+ fastify.server.on("upgrade", (req, socket, head) => {
161
+ var _a;
162
+ // Only handle requests matching our prefix
163
+ if ((_a = req.url) === null || _a === void 0 ? void 0 : _a.startsWith(prefix)) {
164
+ // Remove prefix from URL before proxying
165
+ const originalUrl = req.url;
166
+ req.url = originalUrl.slice(prefix.length);
167
+ wsProxy.handleUpgrade(req, socket, head);
168
+ }
169
+ });
170
+ }
171
+ });
172
+ /**
173
+ * Lazy-loaded Fastify plugin (only loads fastify-plugin when called)
174
+ */
175
+ let _fastifyDeepgramProxy = null;
176
+ /**
177
+ * Export as Fastify plugin with proper typing
178
+ */
179
+ const fastifyDeepgramProxy = (fastify, options) => __awaiter(void 0, void 0, void 0, function* () {
180
+ if (!_fastifyDeepgramProxy) {
181
+ const pluginWrapper = yield loadFastifyPlugin();
182
+ _fastifyDeepgramProxy = pluginWrapper(fastifyDeepgramProxyPlugin, {
183
+ fastify: ">=4.0.0",
184
+ name: "@deepgram/sdk-middleware",
185
+ });
186
+ }
187
+ // eslint-disable-next-line @typescript-eslint/no-non-null-assertion -- Guaranteed to be set above
188
+ return _fastifyDeepgramProxy(fastify, options);
189
+ });
190
+ exports.fastifyDeepgramProxy = fastifyDeepgramProxy;
191
+ /**
192
+ * Alternative export for direct usage (without fastify-plugin wrapper)
193
+ */
194
+ exports.deepgramProxyPlugin = fastifyDeepgramProxyPlugin;
@@ -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.js";
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,192 @@
1
+ "use strict";
2
+ /**
3
+ * Raw Node.js HTTP/HTTPS server adapter for proxying Deepgram API requests.
4
+ *
5
+ * @packageDocumentation
6
+ *
7
+ * **No Dependencies Required** - Uses only built-in Node.js modules
8
+ *
9
+ * This module provides a request handler for raw Node.js `http` and `https` servers,
10
+ * allowing proxy integration without any framework dependencies.
11
+ */
12
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
13
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
14
+ return new (P || (P = Promise))(function (resolve, reject) {
15
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
16
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
17
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
18
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
19
+ });
20
+ };
21
+ Object.defineProperty(exports, "__esModule", { value: true });
22
+ exports.createHttpHandler = createHttpHandler;
23
+ exports.createUpgradeHandler = createUpgradeHandler;
24
+ exports.createDeepgramHttpServer = createDeepgramHttpServer;
25
+ const ProxyHandler_js_1 = require("../core/ProxyHandler.js");
26
+ const TokenManager_js_1 = require("../core/TokenManager.js");
27
+ const WebSocketProxy_js_1 = require("../core/WebSocketProxy.js");
28
+ /**
29
+ * Create a request handler for raw Node.js HTTP/HTTPS servers
30
+ *
31
+ * This handler can be used directly with `http.createServer()` or `https.createServer()`.
32
+ *
33
+ * @param options - Middleware configuration options
34
+ * @returns HTTP request handler function
35
+ *
36
+ * @example Basic HTTP server
37
+ * ```typescript
38
+ * import http from 'node:http';
39
+ * import { createHttpHandler, createUpgradeHandler } from '@deepgram/sdk';
40
+ *
41
+ * const options = {
42
+ * apiKey: process.env.DEEPGRAM_API_KEY!,
43
+ * enableTokenAuth: true
44
+ * };
45
+ *
46
+ * // Create request handler
47
+ * const handler = createHttpHandler(options);
48
+ *
49
+ * // Create server
50
+ * const server = http.createServer(handler);
51
+ *
52
+ * // Register WebSocket upgrade handler
53
+ * server.on('upgrade', createUpgradeHandler(options));
54
+ *
55
+ * server.listen(3000);
56
+ * ```
57
+ *
58
+ * @example HTTPS server
59
+ * ```typescript
60
+ * import https from 'node:https';
61
+ * import fs from 'node:fs';
62
+ * import { createHttpHandler, createUpgradeHandler } from '@deepgram/sdk';
63
+ *
64
+ * const options = {
65
+ * apiKey: process.env.DEEPGRAM_API_KEY!
66
+ * };
67
+ *
68
+ * const server = https.createServer({
69
+ * key: fs.readFileSync('server.key'),
70
+ * cert: fs.readFileSync('server.cert')
71
+ * }, createHttpHandler(options));
72
+ *
73
+ * server.on('upgrade', createUpgradeHandler(options));
74
+ * server.listen(443);
75
+ * ```
76
+ *
77
+ * @example With routing
78
+ * ```typescript
79
+ * import http from 'node:http';
80
+ * import { createHttpHandler } from '@deepgram/sdk';
81
+ *
82
+ * const deepgramHandler = createHttpHandler({
83
+ * apiKey: process.env.DEEPGRAM_API_KEY!
84
+ * });
85
+ *
86
+ * const server = http.createServer((req, res) => {
87
+ * // Route /api/deepgram/* to Deepgram proxy
88
+ * if (req.url?.startsWith('/api/deepgram')) {
89
+ * // Strip prefix before proxying
90
+ * req.url = req.url.slice('/api/deepgram'.length);
91
+ * return deepgramHandler(req, res);
92
+ * }
93
+ *
94
+ * // Handle other routes
95
+ * res.writeHead(404);
96
+ * res.end('Not Found');
97
+ * });
98
+ *
99
+ * server.listen(3000);
100
+ * ```
101
+ */
102
+ function createHttpHandler(options) {
103
+ const proxyHandler = new ProxyHandler_js_1.ProxyHandler(options);
104
+ const tokenManager = options.enableTokenAuth ? new TokenManager_js_1.TokenManager(options) : null;
105
+ return (req, res) => __awaiter(this, void 0, void 0, function* () {
106
+ try {
107
+ // Handle token generation requests
108
+ if (options.enableTokenAuth && req.url === "/token" && req.method === "GET") {
109
+ yield tokenManager.handleTokenRequest(req, res);
110
+ return;
111
+ }
112
+ // Handle all other requests (proxy to Deepgram)
113
+ yield proxyHandler.handleRequest(req, res);
114
+ }
115
+ catch (error) {
116
+ // Set error response
117
+ res.statusCode = 500;
118
+ res.setHeader("Content-Type", "application/json");
119
+ res.end(JSON.stringify({
120
+ error: error instanceof Error ? error.message : String(error),
121
+ }));
122
+ }
123
+ });
124
+ }
125
+ /**
126
+ * Create WebSocket upgrade handler for raw Node.js HTTP/HTTPS servers
127
+ *
128
+ * This must be registered on the server using `server.on('upgrade', handler)`.
129
+ *
130
+ * @param options - Middleware configuration options
131
+ * @returns Upgrade handler function
132
+ *
133
+ * @example
134
+ * ```typescript
135
+ * import http from 'node:http';
136
+ * import { createHttpHandler, createUpgradeHandler } from '@deepgram/sdk';
137
+ *
138
+ * const options = {
139
+ * apiKey: process.env.DEEPGRAM_API_KEY!
140
+ * };
141
+ *
142
+ * const server = http.createServer(createHttpHandler(options));
143
+ *
144
+ * // Register WebSocket handler
145
+ * server.on('upgrade', createUpgradeHandler(options));
146
+ *
147
+ * server.listen(3000);
148
+ * ```
149
+ */
150
+ function createUpgradeHandler(options) {
151
+ const wsProxy = new WebSocketProxy_js_1.WebSocketProxy(options);
152
+ return (req, socket, head) => {
153
+ wsProxy.handleUpgrade(req, socket, head);
154
+ };
155
+ }
156
+ /**
157
+ * Combined helper that returns both HTTP handler and upgrade handler
158
+ *
159
+ * Convenience function for setting up both REST and WebSocket proxying.
160
+ *
161
+ * @param options - Middleware configuration options
162
+ * @returns Object with HTTP handler and upgrade handler
163
+ *
164
+ * @example
165
+ * ```typescript
166
+ * import http from 'node:http';
167
+ * import { createDeepgramHttpServer } from '@deepgram/sdk';
168
+ *
169
+ * const { handler, upgradeHandler } = createDeepgramHttpServer({
170
+ * apiKey: process.env.DEEPGRAM_API_KEY!,
171
+ * enableTokenAuth: true
172
+ * });
173
+ *
174
+ * const server = http.createServer(handler);
175
+ * server.on('upgrade', upgradeHandler);
176
+ *
177
+ * server.listen(3000, () => {
178
+ * console.log('Deepgram proxy running on port 3000');
179
+ * });
180
+ * ```
181
+ */
182
+ function createDeepgramHttpServer(options) {
183
+ const handler = createHttpHandler(options);
184
+ const upgradeHandler = createUpgradeHandler(options);
185
+ return {
186
+ handler,
187
+ upgradeHandler,
188
+ server: (httpServer) => {
189
+ httpServer.on("upgrade", upgradeHandler);
190
+ },
191
+ };
192
+ }
@@ -0,0 +1,35 @@
1
+ import type { IncomingMessage, ServerResponse } from "node:http";
2
+ import type { MiddlewareOptions } from "./types.js";
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
+ }