@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.
- package/README.md +234 -1472
- package/dist/browser/index.global.js +288 -192
- package/dist/cjs/BaseClient.js +3 -3
- package/dist/cjs/CustomClient.js +90 -107
- package/dist/cjs/api/resources/agent/exports.d.ts +3 -0
- package/dist/cjs/api/resources/agent/exports.js +22 -0
- package/dist/cjs/api/resources/agent/resources/v1/client/Client.d.ts +6 -0
- package/dist/cjs/api/resources/agent/resources/v1/client/Client.js +8 -3
- package/dist/cjs/api/resources/agent/resources/v1/client/Socket.d.ts +3 -2
- package/dist/cjs/api/resources/agent/resources/v1/client/Socket.js +4 -0
- package/dist/cjs/api/resources/agent/resources/v1/exports.d.ts +3 -0
- package/dist/cjs/api/resources/agent/resources/v1/exports.js +22 -0
- package/dist/cjs/api/resources/agent/resources/v1/resources/settings/exports.d.ts +3 -0
- package/dist/cjs/api/resources/agent/resources/v1/resources/settings/exports.js +22 -0
- package/dist/cjs/api/resources/agent/resources/v1/resources/settings/resources/think/exports.d.ts +3 -0
- package/dist/cjs/api/resources/agent/resources/v1/resources/settings/resources/think/exports.js +22 -0
- package/dist/cjs/api/resources/agent/resources/v1/resources/settings/resources/think/resources/models/exports.d.ts +2 -0
- package/dist/cjs/api/resources/agent/resources/v1/resources/settings/resources/think/resources/models/exports.js +21 -0
- package/dist/cjs/api/resources/agent/resources/v1/types/AgentV1ReceiveFunctionCallResponse.d.ts +1 -1
- package/dist/cjs/api/resources/agent/resources/v1/types/AgentV1SendFunctionCallResponse.d.ts +1 -1
- package/dist/cjs/api/resources/agent/resources/v1/types/AgentV1Settings.d.ts +21 -51
- package/dist/cjs/api/resources/agent/resources/v1/types/AgentV1SettingsAgentListenProvider.d.ts +5 -5
- package/dist/cjs/api/resources/agent/resources/v1/types/AgentV1ThinkUpdated.d.ts +4 -0
- package/dist/cjs/api/resources/agent/resources/v1/types/AgentV1ThinkUpdated.js +3 -0
- package/dist/cjs/api/resources/agent/resources/v1/types/AgentV1UpdateSpeak.d.ts +2 -11
- package/dist/cjs/api/resources/agent/resources/v1/types/AgentV1UpdateThink.d.ts +9 -0
- package/dist/cjs/api/resources/agent/resources/v1/types/AgentV1UpdateThink.js +3 -0
- package/dist/cjs/api/resources/agent/resources/v1/types/index.d.ts +2 -0
- package/dist/cjs/api/resources/agent/resources/v1/types/index.js +2 -0
- package/dist/cjs/api/resources/auth/exports.d.ts +3 -0
- package/dist/cjs/api/resources/auth/exports.js +22 -0
- package/dist/cjs/api/resources/auth/resources/v1/exports.d.ts +3 -0
- package/dist/cjs/api/resources/auth/resources/v1/exports.js +22 -0
- package/dist/cjs/api/resources/auth/resources/v1/resources/tokens/exports.d.ts +2 -0
- package/dist/cjs/api/resources/auth/resources/v1/resources/tokens/exports.js +21 -0
- package/dist/cjs/api/resources/listen/exports.d.ts +3 -0
- package/dist/cjs/api/resources/listen/exports.js +22 -0
- package/dist/cjs/api/resources/listen/resources/v1/client/Client.d.ts +35 -28
- package/dist/cjs/api/resources/listen/resources/v1/client/Client.js +40 -30
- package/dist/cjs/api/resources/listen/resources/v1/exports.d.ts +3 -0
- package/dist/cjs/api/resources/listen/resources/v1/exports.js +22 -0
- package/dist/cjs/api/resources/listen/resources/v1/resources/media/client/requests/MediaTranscribeRequestOctetStream.d.ts +0 -3
- package/dist/cjs/api/resources/listen/resources/v1/resources/media/exports.d.ts +2 -0
- package/dist/cjs/api/resources/listen/resources/v1/resources/media/exports.js +21 -0
- package/dist/cjs/api/resources/listen/resources/v1/types/ListenV1Results.d.ts +8 -8
- package/dist/cjs/api/resources/listen/resources/v2/client/Client.d.ts +16 -9
- package/dist/cjs/api/resources/listen/resources/v2/client/Client.js +29 -11
- package/dist/cjs/api/resources/listen/resources/v2/client/Socket.d.ts +3 -2
- package/dist/cjs/api/resources/listen/resources/v2/client/Socket.js +4 -0
- package/dist/cjs/api/resources/listen/resources/v2/exports.d.ts +2 -0
- package/dist/cjs/api/resources/listen/resources/v2/exports.js +21 -0
- package/dist/cjs/api/resources/listen/resources/v2/types/ListenV2Configure.d.ts +22 -0
- package/dist/cjs/api/resources/listen/resources/v2/types/ListenV2Configure.js +3 -0
- package/dist/cjs/api/resources/listen/resources/v2/types/ListenV2ConfigureFailure.d.ts +12 -0
- package/dist/cjs/api/resources/listen/resources/v2/types/ListenV2ConfigureFailure.js +3 -0
- package/dist/cjs/api/resources/listen/resources/v2/types/ListenV2ConfigureSuccess.d.ts +30 -0
- package/dist/cjs/api/resources/listen/resources/v2/types/ListenV2ConfigureSuccess.js +3 -0
- package/dist/cjs/api/resources/listen/resources/v2/types/index.d.ts +3 -0
- package/dist/cjs/api/resources/listen/resources/v2/types/index.js +3 -0
- package/dist/cjs/api/resources/manage/exports.d.ts +3 -0
- package/dist/cjs/api/resources/manage/exports.js +22 -0
- package/dist/cjs/api/resources/manage/resources/v1/exports.d.ts +3 -0
- package/dist/cjs/api/resources/manage/resources/v1/exports.js +22 -0
- package/dist/cjs/api/resources/manage/resources/v1/resources/models/exports.d.ts +2 -0
- package/dist/cjs/api/resources/manage/resources/v1/resources/models/exports.js +21 -0
- package/dist/cjs/api/resources/manage/resources/v1/resources/projects/exports.d.ts +3 -0
- package/dist/cjs/api/resources/manage/resources/v1/resources/projects/exports.js +22 -0
- package/dist/cjs/api/resources/manage/resources/v1/resources/projects/resources/billing/exports.d.ts +3 -0
- package/dist/cjs/api/resources/manage/resources/v1/resources/projects/resources/billing/exports.js +22 -0
- package/dist/cjs/api/resources/manage/resources/v1/resources/projects/resources/billing/resources/balances/exports.d.ts +2 -0
- package/dist/cjs/api/resources/manage/resources/v1/resources/projects/resources/billing/resources/balances/exports.js +21 -0
- package/dist/cjs/api/resources/manage/resources/v1/resources/projects/resources/billing/resources/breakdown/exports.d.ts +2 -0
- package/dist/cjs/api/resources/manage/resources/v1/resources/projects/resources/billing/resources/breakdown/exports.js +21 -0
- package/dist/cjs/api/resources/manage/resources/v1/resources/projects/resources/billing/resources/fields/exports.d.ts +2 -0
- package/dist/cjs/api/resources/manage/resources/v1/resources/projects/resources/billing/resources/fields/exports.js +21 -0
- package/dist/cjs/api/resources/manage/resources/v1/resources/projects/resources/billing/resources/purchases/exports.d.ts +2 -0
- package/dist/cjs/api/resources/manage/resources/v1/resources/projects/resources/billing/resources/purchases/exports.js +21 -0
- package/dist/cjs/api/resources/manage/resources/v1/resources/projects/resources/keys/exports.d.ts +2 -0
- package/dist/cjs/api/resources/manage/resources/v1/resources/projects/resources/keys/exports.js +21 -0
- package/dist/cjs/api/resources/manage/resources/v1/resources/projects/resources/members/exports.d.ts +3 -0
- package/dist/cjs/api/resources/manage/resources/v1/resources/projects/resources/members/exports.js +22 -0
- package/dist/cjs/api/resources/manage/resources/v1/resources/projects/resources/members/resources/invites/exports.d.ts +2 -0
- package/dist/cjs/api/resources/manage/resources/v1/resources/projects/resources/members/resources/invites/exports.js +21 -0
- package/dist/cjs/api/resources/manage/resources/v1/resources/projects/resources/members/resources/scopes/exports.d.ts +2 -0
- package/dist/cjs/api/resources/manage/resources/v1/resources/projects/resources/members/resources/scopes/exports.js +21 -0
- package/dist/cjs/api/resources/manage/resources/v1/resources/projects/resources/models/exports.d.ts +2 -0
- package/dist/cjs/api/resources/manage/resources/v1/resources/projects/resources/models/exports.js +21 -0
- package/dist/cjs/api/resources/manage/resources/v1/resources/projects/resources/requests/exports.d.ts +2 -0
- package/dist/cjs/api/resources/manage/resources/v1/resources/projects/resources/requests/exports.js +21 -0
- package/dist/cjs/api/resources/manage/resources/v1/resources/projects/resources/usage/client/Client.d.ts +2 -0
- package/dist/cjs/api/resources/manage/resources/v1/resources/projects/resources/usage/client/Client.js +2 -0
- package/dist/cjs/api/resources/manage/resources/v1/resources/projects/resources/usage/exports.d.ts +3 -0
- package/dist/cjs/api/resources/manage/resources/v1/resources/projects/resources/usage/exports.js +22 -0
- package/dist/cjs/api/resources/manage/resources/v1/resources/projects/resources/usage/resources/breakdown/exports.d.ts +2 -0
- package/dist/cjs/api/resources/manage/resources/v1/resources/projects/resources/usage/resources/breakdown/exports.js +21 -0
- package/dist/cjs/api/resources/manage/resources/v1/resources/projects/resources/usage/resources/fields/exports.d.ts +2 -0
- package/dist/cjs/api/resources/manage/resources/v1/resources/projects/resources/usage/resources/fields/exports.js +21 -0
- package/dist/cjs/api/resources/read/exports.d.ts +3 -0
- package/dist/cjs/api/resources/read/exports.js +22 -0
- package/dist/cjs/api/resources/read/resources/v1/exports.d.ts +3 -0
- package/dist/cjs/api/resources/read/resources/v1/exports.js +22 -0
- package/dist/cjs/api/resources/read/resources/v1/resources/text/exports.d.ts +2 -0
- package/dist/cjs/api/resources/read/resources/v1/resources/text/exports.js +21 -0
- package/dist/cjs/api/resources/selfHosted/exports.d.ts +3 -0
- package/dist/cjs/api/resources/selfHosted/exports.js +22 -0
- package/dist/cjs/api/resources/selfHosted/resources/v1/exports.d.ts +3 -0
- package/dist/cjs/api/resources/selfHosted/resources/v1/exports.js +22 -0
- package/dist/cjs/api/resources/selfHosted/resources/v1/resources/distributionCredentials/exports.d.ts +2 -0
- package/dist/cjs/api/resources/selfHosted/resources/v1/resources/distributionCredentials/exports.js +21 -0
- package/dist/cjs/api/resources/speak/exports.d.ts +3 -0
- package/dist/cjs/api/resources/speak/exports.js +22 -0
- package/dist/cjs/api/resources/speak/resources/v1/client/Client.d.ts +11 -4
- package/dist/cjs/api/resources/speak/resources/v1/client/Client.js +13 -7
- package/dist/cjs/api/resources/speak/resources/v1/exports.d.ts +3 -0
- package/dist/cjs/api/resources/speak/resources/v1/exports.js +22 -0
- package/dist/cjs/api/resources/speak/resources/v1/resources/audio/client/Client.d.ts +1 -0
- package/dist/cjs/api/resources/speak/resources/v1/resources/audio/client/Client.js +1 -0
- package/dist/cjs/api/resources/speak/resources/v1/resources/audio/exports.d.ts +2 -0
- package/dist/cjs/api/resources/speak/resources/v1/resources/audio/exports.js +21 -0
- package/dist/cjs/api/resources/speak/resources/v1/types/SpeakV1Metadata.d.ts +4 -2
- package/dist/cjs/api/types/Anthropic.d.ts +2 -2
- package/dist/cjs/api/types/AwsBedrockThinkProvider.d.ts +7 -7
- package/dist/cjs/api/types/AwsPollySpeakProvider.d.ts +2 -2
- package/dist/cjs/api/types/BillingBreakdownV1Response.d.ts +6 -6
- package/dist/cjs/api/types/Cartesia.d.ts +2 -2
- package/dist/cjs/api/types/CreateKeyV1Response.d.ts +6 -6
- package/dist/cjs/api/types/CreateProjectDistributionCredentialsV1Response.d.ts +1 -1
- package/dist/cjs/api/types/CreateProjectInviteV1Response.d.ts +1 -1
- package/dist/cjs/api/types/Deepgram.d.ts +1 -1
- package/dist/cjs/api/types/DeleteProjectInviteV1Response.d.ts +1 -1
- package/dist/cjs/api/types/DeleteProjectKeyV1Response.d.ts +1 -1
- package/dist/cjs/api/types/DeleteProjectMemberV1Response.d.ts +1 -1
- package/dist/cjs/api/types/DeleteProjectV1Response.d.ts +1 -1
- package/dist/cjs/api/types/ElevenLabsSpeakProvider.d.ts +3 -3
- package/dist/cjs/api/types/ErrorResponseLegacyError.d.ts +3 -3
- package/dist/cjs/api/types/ErrorResponseModernError.d.ts +4 -4
- package/dist/cjs/api/types/GetProjectBalanceV1Response.d.ts +4 -4
- package/dist/cjs/api/types/GetProjectDistributionCredentialsV1Response.d.ts +1 -1
- package/dist/cjs/api/types/GetProjectKeyV1Response.d.ts +13 -13
- package/dist/cjs/api/types/GetProjectRequestV1Response.d.ts +1 -1
- package/dist/cjs/api/types/GetProjectV1Response.d.ts +3 -3
- package/dist/cjs/api/types/Google.d.ts +2 -2
- package/dist/cjs/api/types/GrantV1Response.d.ts +1 -1
- package/dist/cjs/api/types/Groq.d.ts +2 -2
- package/dist/cjs/api/types/LeaveProjectV1Response.d.ts +1 -1
- package/dist/cjs/api/types/ListBillingFieldsV1Response.d.ts +4 -4
- package/dist/cjs/api/types/ListModelsV1Response.d.ts +2 -2
- package/dist/cjs/api/types/ListModelsV1ResponseSttModels.d.ts +9 -9
- package/dist/cjs/api/types/ListModelsV1ResponseTtsModels.d.ts +14 -14
- package/dist/cjs/api/types/ListProjectBalancesV1Response.d.ts +5 -5
- package/dist/cjs/api/types/ListProjectDistributionCredentialsV1Response.d.ts +2 -2
- package/dist/cjs/api/types/ListProjectInvitesV1Response.d.ts +3 -3
- package/dist/cjs/api/types/ListProjectKeysV1Response.d.ts +9 -9
- package/dist/cjs/api/types/ListProjectMemberScopesV1Response.d.ts +1 -1
- package/dist/cjs/api/types/ListProjectMembersV1Response.d.ts +3 -3
- package/dist/cjs/api/types/ListProjectPurchasesV1Response.d.ts +7 -7
- package/dist/cjs/api/types/ListProjectRequestsV1Response.d.ts +3 -3
- package/dist/cjs/api/types/ListProjectsV1Response.d.ts +3 -3
- package/dist/cjs/api/types/ListenV1ResponseMetadata.d.ts +18 -18
- package/dist/cjs/api/types/ListenV1ResponseResults.d.ts +5 -5
- package/dist/cjs/api/types/ListenV1ResponseResultsChannelsItem.d.ts +43 -43
- package/dist/cjs/api/types/ListenV1ResponseResultsSummary.d.ts +2 -2
- package/dist/cjs/api/types/ListenV1ResponseResultsUtterancesItem.d.ts +15 -15
- package/dist/cjs/api/types/OpenAiSpeakProvider.d.ts +27 -0
- package/dist/cjs/api/types/OpenAiSpeakProvider.js +21 -0
- package/dist/cjs/api/types/OpenAiThinkProvider.d.ts +23 -0
- package/dist/cjs/api/types/OpenAiThinkProvider.js +18 -0
- package/dist/cjs/api/types/ProjectRequestResponse.d.ts +9 -9
- package/dist/cjs/api/types/ReadV1ResponseMetadata.d.ts +20 -20
- package/dist/cjs/api/types/ReadV1ResponseResults.d.ts +4 -4
- package/dist/cjs/api/types/ReadV1ResponseResultsSummary.d.ts +3 -3
- package/dist/cjs/api/types/SharedIntents.d.ts +9 -9
- package/dist/cjs/api/types/SharedSentiments.d.ts +9 -9
- package/dist/cjs/api/types/SharedTopics.d.ts +9 -9
- package/dist/cjs/api/types/SpeakSettingsV1.d.ts +3 -3
- package/dist/cjs/api/types/SpeakSettingsV1Provider.d.ts +1 -1
- package/dist/cjs/api/types/ThinkSettingsV1.d.ts +15 -15
- package/dist/cjs/api/types/ThinkSettingsV1Provider.d.ts +19 -0
- package/dist/cjs/api/types/ThinkSettingsV1Provider.js +3 -0
- package/dist/cjs/api/types/UpdateProjectMemberScopesV1Response.d.ts +1 -1
- package/dist/cjs/api/types/UpdateProjectV1Response.d.ts +1 -1
- package/dist/cjs/api/types/UsageBreakdownV1Response.d.ts +9 -9
- package/dist/cjs/api/types/UsageFieldsV1Response.d.ts +8 -8
- package/dist/cjs/api/types/UsageV1Response.d.ts +5 -5
- package/dist/cjs/api/types/index.d.ts +3 -1
- package/dist/cjs/api/types/index.js +3 -1
- package/dist/cjs/core/fetcher/Fetcher.js +8 -2
- package/dist/cjs/core/fetcher/makeRequest.d.ts +6 -1
- package/dist/cjs/core/fetcher/makeRequest.js +30 -9
- package/dist/cjs/core/runtime/runtime.js +8 -7
- package/dist/cjs/core/websocket/ws.d.ts +4 -1
- package/dist/cjs/core/websocket/ws.js +32 -2
- package/dist/cjs/environments.d.ts +3 -3
- package/dist/cjs/environments.js +2 -2
- package/dist/cjs/index.d.ts +2 -0
- package/dist/cjs/index.js +6 -0
- package/dist/cjs/middleware/adapters/express.d.ts +103 -0
- package/dist/cjs/middleware/adapters/express.js +141 -0
- package/dist/cjs/middleware/adapters/fastify.d.ts +32 -0
- package/dist/cjs/middleware/adapters/fastify.js +194 -0
- package/dist/cjs/middleware/adapters/http.d.ts +153 -0
- package/dist/cjs/middleware/adapters/http.js +192 -0
- package/dist/cjs/middleware/core/ProxyHandler.d.ts +35 -0
- package/dist/cjs/middleware/core/ProxyHandler.js +225 -0
- package/dist/cjs/middleware/core/TokenManager.d.ts +29 -0
- package/dist/cjs/middleware/core/TokenManager.js +110 -0
- package/dist/cjs/middleware/core/WebSocketProxy.d.ts +32 -0
- package/dist/cjs/middleware/core/WebSocketProxy.js +169 -0
- package/dist/cjs/middleware/core/jwt.d.ts +71 -0
- package/dist/cjs/middleware/core/jwt.js +136 -0
- package/dist/cjs/middleware/core/types.d.ts +37 -0
- package/dist/cjs/middleware/core/types.js +2 -0
- package/dist/cjs/middleware/index.d.ts +55 -0
- package/dist/cjs/middleware/index.js +75 -0
- package/dist/cjs/tests/manual/test-custom-baseurl.js +124 -0
- package/dist/cjs/version.d.ts +1 -1
- package/dist/cjs/version.js +1 -1
- package/dist/esm/BaseClient.mjs +3 -3
- package/dist/esm/CustomClient.mjs +90 -107
- package/dist/esm/api/resources/agent/exports.d.mts +3 -0
- package/dist/esm/api/resources/agent/exports.mjs +4 -0
- package/dist/esm/api/resources/agent/resources/v1/client/Client.d.mts +6 -0
- package/dist/esm/api/resources/agent/resources/v1/client/Client.mjs +8 -3
- package/dist/esm/api/resources/agent/resources/v1/client/Socket.d.mts +3 -2
- package/dist/esm/api/resources/agent/resources/v1/client/Socket.mjs +4 -0
- package/dist/esm/api/resources/agent/resources/v1/exports.d.mts +3 -0
- package/dist/esm/api/resources/agent/resources/v1/exports.mjs +4 -0
- package/dist/esm/api/resources/agent/resources/v1/resources/settings/exports.d.mts +3 -0
- package/dist/esm/api/resources/agent/resources/v1/resources/settings/exports.mjs +4 -0
- package/dist/esm/api/resources/agent/resources/v1/resources/settings/resources/think/exports.d.mts +3 -0
- package/dist/esm/api/resources/agent/resources/v1/resources/settings/resources/think/exports.mjs +4 -0
- package/dist/esm/api/resources/agent/resources/v1/resources/settings/resources/think/resources/models/exports.d.mts +2 -0
- package/dist/esm/api/resources/agent/resources/v1/resources/settings/resources/think/resources/models/exports.mjs +3 -0
- package/dist/esm/api/resources/agent/resources/v1/types/AgentV1ReceiveFunctionCallResponse.d.mts +1 -1
- package/dist/esm/api/resources/agent/resources/v1/types/AgentV1SendFunctionCallResponse.d.mts +1 -1
- package/dist/esm/api/resources/agent/resources/v1/types/AgentV1Settings.d.mts +21 -51
- package/dist/esm/api/resources/agent/resources/v1/types/AgentV1SettingsAgentListenProvider.d.mts +5 -5
- package/dist/esm/api/resources/agent/resources/v1/types/AgentV1ThinkUpdated.d.mts +4 -0
- package/dist/esm/api/resources/agent/resources/v1/types/AgentV1ThinkUpdated.mjs +2 -0
- package/dist/esm/api/resources/agent/resources/v1/types/AgentV1UpdateSpeak.d.mts +2 -11
- package/dist/esm/api/resources/agent/resources/v1/types/AgentV1UpdateThink.d.mts +9 -0
- package/dist/esm/api/resources/agent/resources/v1/types/AgentV1UpdateThink.mjs +2 -0
- package/dist/esm/api/resources/agent/resources/v1/types/index.d.mts +2 -0
- package/dist/esm/api/resources/agent/resources/v1/types/index.mjs +2 -0
- package/dist/esm/api/resources/auth/exports.d.mts +3 -0
- package/dist/esm/api/resources/auth/exports.mjs +4 -0
- package/dist/esm/api/resources/auth/resources/v1/exports.d.mts +3 -0
- package/dist/esm/api/resources/auth/resources/v1/exports.mjs +4 -0
- package/dist/esm/api/resources/auth/resources/v1/resources/tokens/exports.d.mts +2 -0
- package/dist/esm/api/resources/auth/resources/v1/resources/tokens/exports.mjs +3 -0
- package/dist/esm/api/resources/listen/exports.d.mts +3 -0
- package/dist/esm/api/resources/listen/exports.mjs +4 -0
- package/dist/esm/api/resources/listen/resources/v1/client/Client.d.mts +35 -28
- package/dist/esm/api/resources/listen/resources/v1/client/Client.mjs +40 -30
- package/dist/esm/api/resources/listen/resources/v1/exports.d.mts +3 -0
- package/dist/esm/api/resources/listen/resources/v1/exports.mjs +4 -0
- package/dist/esm/api/resources/listen/resources/v1/resources/media/client/requests/MediaTranscribeRequestOctetStream.d.mts +0 -3
- package/dist/esm/api/resources/listen/resources/v1/resources/media/exports.d.mts +2 -0
- package/dist/esm/api/resources/listen/resources/v1/resources/media/exports.mjs +3 -0
- package/dist/esm/api/resources/listen/resources/v1/types/ListenV1Results.d.mts +8 -8
- package/dist/esm/api/resources/listen/resources/v2/client/Client.d.mts +16 -9
- package/dist/esm/api/resources/listen/resources/v2/client/Client.mjs +29 -11
- package/dist/esm/api/resources/listen/resources/v2/client/Socket.d.mts +3 -2
- package/dist/esm/api/resources/listen/resources/v2/client/Socket.mjs +4 -0
- package/dist/esm/api/resources/listen/resources/v2/exports.d.mts +2 -0
- package/dist/esm/api/resources/listen/resources/v2/exports.mjs +3 -0
- package/dist/esm/api/resources/listen/resources/v2/types/ListenV2Configure.d.mts +22 -0
- package/dist/esm/api/resources/listen/resources/v2/types/ListenV2Configure.mjs +2 -0
- package/dist/esm/api/resources/listen/resources/v2/types/ListenV2ConfigureFailure.d.mts +12 -0
- package/dist/esm/api/resources/listen/resources/v2/types/ListenV2ConfigureFailure.mjs +2 -0
- package/dist/esm/api/resources/listen/resources/v2/types/ListenV2ConfigureSuccess.d.mts +30 -0
- package/dist/esm/api/resources/listen/resources/v2/types/ListenV2ConfigureSuccess.mjs +2 -0
- package/dist/esm/api/resources/listen/resources/v2/types/index.d.mts +3 -0
- package/dist/esm/api/resources/listen/resources/v2/types/index.mjs +3 -0
- package/dist/esm/api/resources/manage/exports.d.mts +3 -0
- package/dist/esm/api/resources/manage/exports.mjs +4 -0
- package/dist/esm/api/resources/manage/resources/v1/exports.d.mts +3 -0
- package/dist/esm/api/resources/manage/resources/v1/exports.mjs +4 -0
- package/dist/esm/api/resources/manage/resources/v1/resources/models/exports.d.mts +2 -0
- package/dist/esm/api/resources/manage/resources/v1/resources/models/exports.mjs +3 -0
- package/dist/esm/api/resources/manage/resources/v1/resources/projects/exports.d.mts +3 -0
- package/dist/esm/api/resources/manage/resources/v1/resources/projects/exports.mjs +4 -0
- package/dist/esm/api/resources/manage/resources/v1/resources/projects/resources/billing/exports.d.mts +3 -0
- package/dist/esm/api/resources/manage/resources/v1/resources/projects/resources/billing/exports.mjs +4 -0
- package/dist/esm/api/resources/manage/resources/v1/resources/projects/resources/billing/resources/balances/exports.d.mts +2 -0
- package/dist/esm/api/resources/manage/resources/v1/resources/projects/resources/billing/resources/balances/exports.mjs +3 -0
- package/dist/esm/api/resources/manage/resources/v1/resources/projects/resources/billing/resources/breakdown/exports.d.mts +2 -0
- package/dist/esm/api/resources/manage/resources/v1/resources/projects/resources/billing/resources/breakdown/exports.mjs +3 -0
- package/dist/esm/api/resources/manage/resources/v1/resources/projects/resources/billing/resources/fields/exports.d.mts +2 -0
- package/dist/esm/api/resources/manage/resources/v1/resources/projects/resources/billing/resources/fields/exports.mjs +3 -0
- package/dist/esm/api/resources/manage/resources/v1/resources/projects/resources/billing/resources/purchases/exports.d.mts +2 -0
- package/dist/esm/api/resources/manage/resources/v1/resources/projects/resources/billing/resources/purchases/exports.mjs +3 -0
- package/dist/esm/api/resources/manage/resources/v1/resources/projects/resources/keys/exports.d.mts +2 -0
- package/dist/esm/api/resources/manage/resources/v1/resources/projects/resources/keys/exports.mjs +3 -0
- package/dist/esm/api/resources/manage/resources/v1/resources/projects/resources/members/exports.d.mts +3 -0
- package/dist/esm/api/resources/manage/resources/v1/resources/projects/resources/members/exports.mjs +4 -0
- package/dist/esm/api/resources/manage/resources/v1/resources/projects/resources/members/resources/invites/exports.d.mts +2 -0
- package/dist/esm/api/resources/manage/resources/v1/resources/projects/resources/members/resources/invites/exports.mjs +3 -0
- package/dist/esm/api/resources/manage/resources/v1/resources/projects/resources/members/resources/scopes/exports.d.mts +2 -0
- package/dist/esm/api/resources/manage/resources/v1/resources/projects/resources/members/resources/scopes/exports.mjs +3 -0
- package/dist/esm/api/resources/manage/resources/v1/resources/projects/resources/models/exports.d.mts +2 -0
- package/dist/esm/api/resources/manage/resources/v1/resources/projects/resources/models/exports.mjs +3 -0
- package/dist/esm/api/resources/manage/resources/v1/resources/projects/resources/requests/exports.d.mts +2 -0
- package/dist/esm/api/resources/manage/resources/v1/resources/projects/resources/requests/exports.mjs +3 -0
- package/dist/esm/api/resources/manage/resources/v1/resources/projects/resources/usage/client/Client.d.mts +2 -0
- package/dist/esm/api/resources/manage/resources/v1/resources/projects/resources/usage/client/Client.mjs +2 -0
- package/dist/esm/api/resources/manage/resources/v1/resources/projects/resources/usage/exports.d.mts +3 -0
- package/dist/esm/api/resources/manage/resources/v1/resources/projects/resources/usage/exports.mjs +4 -0
- package/dist/esm/api/resources/manage/resources/v1/resources/projects/resources/usage/resources/breakdown/exports.d.mts +2 -0
- package/dist/esm/api/resources/manage/resources/v1/resources/projects/resources/usage/resources/breakdown/exports.mjs +3 -0
- package/dist/esm/api/resources/manage/resources/v1/resources/projects/resources/usage/resources/fields/exports.d.mts +2 -0
- package/dist/esm/api/resources/manage/resources/v1/resources/projects/resources/usage/resources/fields/exports.mjs +3 -0
- package/dist/esm/api/resources/read/exports.d.mts +3 -0
- package/dist/esm/api/resources/read/exports.mjs +4 -0
- package/dist/esm/api/resources/read/resources/v1/exports.d.mts +3 -0
- package/dist/esm/api/resources/read/resources/v1/exports.mjs +4 -0
- package/dist/esm/api/resources/read/resources/v1/resources/text/exports.d.mts +2 -0
- package/dist/esm/api/resources/read/resources/v1/resources/text/exports.mjs +3 -0
- package/dist/esm/api/resources/selfHosted/exports.d.mts +3 -0
- package/dist/esm/api/resources/selfHosted/exports.mjs +4 -0
- package/dist/esm/api/resources/selfHosted/resources/v1/exports.d.mts +3 -0
- package/dist/esm/api/resources/selfHosted/resources/v1/exports.mjs +4 -0
- package/dist/esm/api/resources/selfHosted/resources/v1/resources/distributionCredentials/exports.d.mts +2 -0
- package/dist/esm/api/resources/selfHosted/resources/v1/resources/distributionCredentials/exports.mjs +3 -0
- package/dist/esm/api/resources/speak/exports.d.mts +3 -0
- package/dist/esm/api/resources/speak/exports.mjs +4 -0
- package/dist/esm/api/resources/speak/resources/v1/client/Client.d.mts +11 -4
- package/dist/esm/api/resources/speak/resources/v1/client/Client.mjs +13 -7
- package/dist/esm/api/resources/speak/resources/v1/exports.d.mts +3 -0
- package/dist/esm/api/resources/speak/resources/v1/exports.mjs +4 -0
- package/dist/esm/api/resources/speak/resources/v1/resources/audio/client/Client.d.mts +1 -0
- package/dist/esm/api/resources/speak/resources/v1/resources/audio/client/Client.mjs +1 -0
- package/dist/esm/api/resources/speak/resources/v1/resources/audio/exports.d.mts +2 -0
- package/dist/esm/api/resources/speak/resources/v1/resources/audio/exports.mjs +3 -0
- package/dist/esm/api/resources/speak/resources/v1/types/SpeakV1Metadata.d.mts +4 -2
- package/dist/esm/api/types/Anthropic.d.mts +2 -2
- package/dist/esm/api/types/AwsBedrockThinkProvider.d.mts +7 -7
- package/dist/esm/api/types/AwsPollySpeakProvider.d.mts +2 -2
- package/dist/esm/api/types/BillingBreakdownV1Response.d.mts +6 -6
- package/dist/esm/api/types/Cartesia.d.mts +2 -2
- package/dist/esm/api/types/CreateKeyV1Response.d.mts +6 -6
- package/dist/esm/api/types/CreateProjectDistributionCredentialsV1Response.d.mts +1 -1
- package/dist/esm/api/types/CreateProjectInviteV1Response.d.mts +1 -1
- package/dist/esm/api/types/Deepgram.d.mts +1 -1
- package/dist/esm/api/types/DeleteProjectInviteV1Response.d.mts +1 -1
- package/dist/esm/api/types/DeleteProjectKeyV1Response.d.mts +1 -1
- package/dist/esm/api/types/DeleteProjectMemberV1Response.d.mts +1 -1
- package/dist/esm/api/types/DeleteProjectV1Response.d.mts +1 -1
- package/dist/esm/api/types/ElevenLabsSpeakProvider.d.mts +3 -3
- package/dist/esm/api/types/ErrorResponseLegacyError.d.mts +3 -3
- package/dist/esm/api/types/ErrorResponseModernError.d.mts +4 -4
- package/dist/esm/api/types/GetProjectBalanceV1Response.d.mts +4 -4
- package/dist/esm/api/types/GetProjectDistributionCredentialsV1Response.d.mts +1 -1
- package/dist/esm/api/types/GetProjectKeyV1Response.d.mts +13 -13
- package/dist/esm/api/types/GetProjectRequestV1Response.d.mts +1 -1
- package/dist/esm/api/types/GetProjectV1Response.d.mts +3 -3
- package/dist/esm/api/types/Google.d.mts +2 -2
- package/dist/esm/api/types/GrantV1Response.d.mts +1 -1
- package/dist/esm/api/types/Groq.d.mts +2 -2
- package/dist/esm/api/types/LeaveProjectV1Response.d.mts +1 -1
- package/dist/esm/api/types/ListBillingFieldsV1Response.d.mts +4 -4
- package/dist/esm/api/types/ListModelsV1Response.d.mts +2 -2
- package/dist/esm/api/types/ListModelsV1ResponseSttModels.d.mts +9 -9
- package/dist/esm/api/types/ListModelsV1ResponseTtsModels.d.mts +14 -14
- package/dist/esm/api/types/ListProjectBalancesV1Response.d.mts +5 -5
- package/dist/esm/api/types/ListProjectDistributionCredentialsV1Response.d.mts +2 -2
- package/dist/esm/api/types/ListProjectInvitesV1Response.d.mts +3 -3
- package/dist/esm/api/types/ListProjectKeysV1Response.d.mts +9 -9
- package/dist/esm/api/types/ListProjectMemberScopesV1Response.d.mts +1 -1
- package/dist/esm/api/types/ListProjectMembersV1Response.d.mts +3 -3
- package/dist/esm/api/types/ListProjectPurchasesV1Response.d.mts +7 -7
- package/dist/esm/api/types/ListProjectRequestsV1Response.d.mts +3 -3
- package/dist/esm/api/types/ListProjectsV1Response.d.mts +3 -3
- package/dist/esm/api/types/ListenV1ResponseMetadata.d.mts +18 -18
- package/dist/esm/api/types/ListenV1ResponseResults.d.mts +5 -5
- package/dist/esm/api/types/ListenV1ResponseResultsChannelsItem.d.mts +43 -43
- package/dist/esm/api/types/ListenV1ResponseResultsSummary.d.mts +2 -2
- package/dist/esm/api/types/ListenV1ResponseResultsUtterancesItem.d.mts +15 -15
- package/dist/esm/api/types/OpenAiSpeakProvider.d.mts +27 -0
- package/dist/esm/api/types/OpenAiSpeakProvider.mjs +18 -0
- package/dist/esm/api/types/OpenAiThinkProvider.d.mts +23 -0
- package/dist/esm/api/types/OpenAiThinkProvider.mjs +15 -0
- package/dist/esm/api/types/ProjectRequestResponse.d.mts +9 -9
- package/dist/esm/api/types/ReadV1ResponseMetadata.d.mts +20 -20
- package/dist/esm/api/types/ReadV1ResponseResults.d.mts +4 -4
- package/dist/esm/api/types/ReadV1ResponseResultsSummary.d.mts +3 -3
- package/dist/esm/api/types/SharedIntents.d.mts +9 -9
- package/dist/esm/api/types/SharedSentiments.d.mts +9 -9
- package/dist/esm/api/types/SharedTopics.d.mts +9 -9
- package/dist/esm/api/types/SpeakSettingsV1.d.mts +3 -3
- package/dist/esm/api/types/SpeakSettingsV1Provider.d.mts +1 -1
- package/dist/esm/api/types/ThinkSettingsV1.d.mts +15 -15
- package/dist/esm/api/types/ThinkSettingsV1Provider.d.mts +19 -0
- package/dist/esm/api/types/ThinkSettingsV1Provider.mjs +2 -0
- package/dist/esm/api/types/UpdateProjectMemberScopesV1Response.d.mts +1 -1
- package/dist/esm/api/types/UpdateProjectV1Response.d.mts +1 -1
- package/dist/esm/api/types/UsageBreakdownV1Response.d.mts +9 -9
- package/dist/esm/api/types/UsageFieldsV1Response.d.mts +8 -8
- package/dist/esm/api/types/UsageV1Response.d.mts +5 -5
- package/dist/esm/api/types/index.d.mts +3 -1
- package/dist/esm/api/types/index.mjs +3 -1
- package/dist/esm/core/fetcher/Fetcher.mjs +8 -2
- package/dist/esm/core/fetcher/makeRequest.d.mts +6 -1
- package/dist/esm/core/fetcher/makeRequest.mjs +28 -9
- package/dist/esm/core/runtime/runtime.mjs +8 -7
- package/dist/esm/core/websocket/ws.d.mts +4 -1
- package/dist/esm/core/websocket/ws.mjs +32 -2
- package/dist/esm/environments.d.mts +3 -3
- package/dist/esm/environments.mjs +2 -2
- package/dist/esm/index.d.mts +2 -0
- package/dist/esm/index.mjs +6 -0
- package/dist/esm/middleware/adapters/express.d.mts +103 -0
- package/dist/esm/middleware/adapters/express.mjs +136 -0
- package/dist/esm/middleware/adapters/fastify.d.mts +32 -0
- package/dist/esm/middleware/adapters/fastify.mjs +157 -0
- package/dist/esm/middleware/adapters/http.d.mts +153 -0
- package/dist/esm/middleware/adapters/http.mjs +187 -0
- package/dist/esm/middleware/core/ProxyHandler.d.mts +35 -0
- package/dist/esm/middleware/core/ProxyHandler.mjs +218 -0
- package/dist/esm/middleware/core/TokenManager.d.mts +29 -0
- package/dist/esm/middleware/core/TokenManager.mjs +106 -0
- package/dist/esm/middleware/core/WebSocketProxy.d.mts +32 -0
- package/dist/esm/middleware/core/WebSocketProxy.mjs +162 -0
- package/dist/esm/middleware/core/jwt.d.mts +71 -0
- package/dist/esm/middleware/core/jwt.mjs +99 -0
- package/dist/esm/middleware/core/types.d.mts +37 -0
- package/dist/esm/middleware/core/types.mjs +1 -0
- package/dist/esm/middleware/index.d.mts +55 -0
- package/dist/esm/middleware/index.mjs +59 -0
- package/dist/esm/version.d.mts +1 -1
- package/dist/esm/version.mjs +1 -1
- package/package.json +433 -4
- package/reference.md +1 -0
|
@@ -0,0 +1,106 @@
|
|
|
1
|
+
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
2
|
+
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
3
|
+
return new (P || (P = Promise))(function (resolve, reject) {
|
|
4
|
+
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
5
|
+
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
6
|
+
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
7
|
+
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
8
|
+
});
|
|
9
|
+
};
|
|
10
|
+
import { CustomDeepgramClient as DeepgramClient } from "../../CustomClient.mjs";
|
|
11
|
+
import { createProxyToken } from "./jwt.mjs";
|
|
12
|
+
/**
|
|
13
|
+
* Manages temporary token generation for client authentication
|
|
14
|
+
*/
|
|
15
|
+
export class TokenManager {
|
|
16
|
+
constructor(options) {
|
|
17
|
+
var _a, _b;
|
|
18
|
+
this.client = new DeepgramClient({ apiKey: options.apiKey });
|
|
19
|
+
this.apiKey = options.apiKey;
|
|
20
|
+
this.tokenMode = (_a = options.tokenMode) !== null && _a !== void 0 ? _a : "deepgram";
|
|
21
|
+
this.defaultExpiration = (_b = options.defaultTokenExpiration) !== null && _b !== void 0 ? _b : 3600;
|
|
22
|
+
}
|
|
23
|
+
/**
|
|
24
|
+
* Generate a temporary access token
|
|
25
|
+
* Uses either Deepgram's native token API or JWT signing based on tokenMode
|
|
26
|
+
*/
|
|
27
|
+
generateToken(ttlSeconds) {
|
|
28
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
29
|
+
if (this.tokenMode === "jwt") {
|
|
30
|
+
return createProxyToken(this.apiKey, { ttl: ttlSeconds });
|
|
31
|
+
}
|
|
32
|
+
const response = yield this.client.auth.v1.tokens.grant({
|
|
33
|
+
ttl_seconds: ttlSeconds,
|
|
34
|
+
});
|
|
35
|
+
return response.access_token;
|
|
36
|
+
});
|
|
37
|
+
}
|
|
38
|
+
/**
|
|
39
|
+
* Handle token generation request from client
|
|
40
|
+
*/
|
|
41
|
+
handleTokenRequest(req, res) {
|
|
42
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
43
|
+
var _a;
|
|
44
|
+
try {
|
|
45
|
+
// Parse request body
|
|
46
|
+
const body = yield this.parseBody(req);
|
|
47
|
+
const tokenRequest = body;
|
|
48
|
+
// Generate token with requested or default TTL
|
|
49
|
+
const ttlSeconds = (_a = tokenRequest.ttlSeconds) !== null && _a !== void 0 ? _a : this.defaultExpiration;
|
|
50
|
+
const token = yield this.generateToken(ttlSeconds);
|
|
51
|
+
// Send response
|
|
52
|
+
const response = {
|
|
53
|
+
token,
|
|
54
|
+
expiresIn: ttlSeconds,
|
|
55
|
+
};
|
|
56
|
+
res.writeHead(200, {
|
|
57
|
+
"Content-Type": "application/json",
|
|
58
|
+
"Access-Control-Allow-Origin": "*",
|
|
59
|
+
"Access-Control-Allow-Methods": "POST, OPTIONS",
|
|
60
|
+
"Access-Control-Allow-Headers": "Content-Type",
|
|
61
|
+
});
|
|
62
|
+
res.end(JSON.stringify(response));
|
|
63
|
+
}
|
|
64
|
+
catch (error) {
|
|
65
|
+
this.handleError(error, res);
|
|
66
|
+
}
|
|
67
|
+
});
|
|
68
|
+
}
|
|
69
|
+
/**
|
|
70
|
+
* Parse JSON request body
|
|
71
|
+
*/
|
|
72
|
+
parseBody(req) {
|
|
73
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
74
|
+
return new Promise((resolve, reject) => {
|
|
75
|
+
let body = "";
|
|
76
|
+
req.on("data", (chunk) => {
|
|
77
|
+
body += chunk.toString();
|
|
78
|
+
});
|
|
79
|
+
req.on("end", () => {
|
|
80
|
+
try {
|
|
81
|
+
resolve(body ? JSON.parse(body) : {});
|
|
82
|
+
}
|
|
83
|
+
catch (error) {
|
|
84
|
+
reject(new Error("Invalid JSON in request body"));
|
|
85
|
+
}
|
|
86
|
+
});
|
|
87
|
+
req.on("error", reject);
|
|
88
|
+
});
|
|
89
|
+
});
|
|
90
|
+
}
|
|
91
|
+
/**
|
|
92
|
+
* Handle errors and send appropriate response
|
|
93
|
+
*/
|
|
94
|
+
handleError(error, res) {
|
|
95
|
+
console.error("TokenManager error:", error);
|
|
96
|
+
const message = error instanceof Error ? error.message : "Internal server error";
|
|
97
|
+
const statusCode = message.includes("Invalid JSON") ? 400 : 500;
|
|
98
|
+
res.writeHead(statusCode, {
|
|
99
|
+
"Content-Type": "application/json",
|
|
100
|
+
"Access-Control-Allow-Origin": "*",
|
|
101
|
+
});
|
|
102
|
+
res.end(JSON.stringify({
|
|
103
|
+
error: message,
|
|
104
|
+
}));
|
|
105
|
+
}
|
|
106
|
+
}
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
import type { IncomingMessage } from "node:http";
|
|
2
|
+
import type { Duplex } from "node:stream";
|
|
3
|
+
import type { MiddlewareOptions } from "./types.mjs";
|
|
4
|
+
/**
|
|
5
|
+
* Handles WebSocket proxying to Deepgram API
|
|
6
|
+
*/
|
|
7
|
+
export declare class WebSocketProxy {
|
|
8
|
+
private readonly apiKey;
|
|
9
|
+
private readonly baseUrl;
|
|
10
|
+
private readonly tokenMode;
|
|
11
|
+
constructor(options: MiddlewareOptions);
|
|
12
|
+
/**
|
|
13
|
+
* Handle WebSocket upgrade request
|
|
14
|
+
*/
|
|
15
|
+
handleUpgrade(req: IncomingMessage, socket: Duplex, head: Buffer): void;
|
|
16
|
+
/**
|
|
17
|
+
* Async version of handleUpgrade to support JWT verification
|
|
18
|
+
*/
|
|
19
|
+
private handleUpgradeAsync;
|
|
20
|
+
/**
|
|
21
|
+
* Build WebSocket URL for Deepgram
|
|
22
|
+
*/
|
|
23
|
+
private buildWebSocketUrl;
|
|
24
|
+
/**
|
|
25
|
+
* Prepare headers for Deepgram WebSocket connection
|
|
26
|
+
*/
|
|
27
|
+
private prepareHeaders;
|
|
28
|
+
/**
|
|
29
|
+
* Forward WebSocket messages bidirectionally
|
|
30
|
+
*/
|
|
31
|
+
private forwardMessages;
|
|
32
|
+
}
|
|
@@ -0,0 +1,162 @@
|
|
|
1
|
+
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
2
|
+
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
3
|
+
return new (P || (P = Promise))(function (resolve, reject) {
|
|
4
|
+
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
5
|
+
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
6
|
+
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
7
|
+
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
8
|
+
});
|
|
9
|
+
};
|
|
10
|
+
import { URL } from "node:url";
|
|
11
|
+
import WebSocket from "ws";
|
|
12
|
+
import { verifyProxyToken } from "./jwt.mjs";
|
|
13
|
+
/**
|
|
14
|
+
* Handles WebSocket proxying to Deepgram API
|
|
15
|
+
*/
|
|
16
|
+
export class WebSocketProxy {
|
|
17
|
+
constructor(options) {
|
|
18
|
+
var _a, _b;
|
|
19
|
+
this.apiKey = options.apiKey;
|
|
20
|
+
this.tokenMode = (_a = options.tokenMode) !== null && _a !== void 0 ? _a : "deepgram";
|
|
21
|
+
// Convert HTTP(S) base URL to WebSocket URL
|
|
22
|
+
this.baseUrl = ((_b = options.baseUrl) !== null && _b !== void 0 ? _b : "https://api.deepgram.com")
|
|
23
|
+
.replace(/^https:/, "wss:")
|
|
24
|
+
.replace(/^http:/, "ws:");
|
|
25
|
+
}
|
|
26
|
+
/**
|
|
27
|
+
* Handle WebSocket upgrade request
|
|
28
|
+
*/
|
|
29
|
+
handleUpgrade(req, socket, head) {
|
|
30
|
+
this.handleUpgradeAsync(req, socket, head).catch((error) => {
|
|
31
|
+
console.error("WebSocket upgrade error:", error);
|
|
32
|
+
socket.destroy();
|
|
33
|
+
});
|
|
34
|
+
}
|
|
35
|
+
/**
|
|
36
|
+
* Async version of handleUpgrade to support JWT verification
|
|
37
|
+
*/
|
|
38
|
+
handleUpgradeAsync(req, socket, head) {
|
|
39
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
40
|
+
try {
|
|
41
|
+
// Build Deepgram WebSocket URL
|
|
42
|
+
const targetUrl = this.buildWebSocketUrl(req);
|
|
43
|
+
// Prepare headers (may verify JWT)
|
|
44
|
+
const headers = yield this.prepareHeaders(req);
|
|
45
|
+
// Connect to Deepgram WebSocket
|
|
46
|
+
const deepgramSocket = new WebSocket(targetUrl, { headers });
|
|
47
|
+
// Handle connection open
|
|
48
|
+
deepgramSocket.on("open", () => {
|
|
49
|
+
// Complete the client upgrade
|
|
50
|
+
socket.write("HTTP/1.1 101 Switching Protocols\r\n" +
|
|
51
|
+
"Upgrade: websocket\r\n" +
|
|
52
|
+
"Connection: Upgrade\r\n" +
|
|
53
|
+
"\r\n");
|
|
54
|
+
// Create client WebSocket
|
|
55
|
+
const clientSocket = new WebSocket(null, null);
|
|
56
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any -- WebSocket internals
|
|
57
|
+
clientSocket.setSocket(socket, head, { maxPayload: 100 * 1024 * 1024 });
|
|
58
|
+
// Forward messages bidirectionally
|
|
59
|
+
this.forwardMessages(clientSocket, deepgramSocket);
|
|
60
|
+
});
|
|
61
|
+
// Handle connection errors
|
|
62
|
+
deepgramSocket.on("error", (error) => {
|
|
63
|
+
console.error("WebSocket proxy error (Deepgram):", error);
|
|
64
|
+
socket.destroy();
|
|
65
|
+
});
|
|
66
|
+
}
|
|
67
|
+
catch (error) {
|
|
68
|
+
console.error("WebSocket upgrade error:", error);
|
|
69
|
+
throw error;
|
|
70
|
+
}
|
|
71
|
+
});
|
|
72
|
+
}
|
|
73
|
+
/**
|
|
74
|
+
* Build WebSocket URL for Deepgram
|
|
75
|
+
*/
|
|
76
|
+
buildWebSocketUrl(req) {
|
|
77
|
+
var _a;
|
|
78
|
+
// Strip /api/deepgram prefix if present
|
|
79
|
+
const cleanUrl = ((_a = req.url) !== null && _a !== void 0 ? _a : "/").replace(/^\/api\/deepgram/, "");
|
|
80
|
+
const url = new URL(cleanUrl, this.baseUrl);
|
|
81
|
+
return url.toString();
|
|
82
|
+
}
|
|
83
|
+
/**
|
|
84
|
+
* Prepare headers for Deepgram WebSocket connection
|
|
85
|
+
*/
|
|
86
|
+
prepareHeaders(req) {
|
|
87
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
88
|
+
const headers = {};
|
|
89
|
+
// Copy relevant headers
|
|
90
|
+
const allowedHeaders = [
|
|
91
|
+
"user-agent",
|
|
92
|
+
"x-fern-language",
|
|
93
|
+
"x-fern-sdk-name",
|
|
94
|
+
"x-fern-sdk-version",
|
|
95
|
+
"x-deepgram-session-id",
|
|
96
|
+
];
|
|
97
|
+
for (const header of allowedHeaders) {
|
|
98
|
+
const value = req.headers[header];
|
|
99
|
+
if (value) {
|
|
100
|
+
headers[header] = Array.isArray(value) ? value[0] : value;
|
|
101
|
+
}
|
|
102
|
+
}
|
|
103
|
+
// Authentication logic (similar to ProxyHandler)
|
|
104
|
+
const clientAuth = req.headers.authorization;
|
|
105
|
+
if (clientAuth && this.tokenMode === "jwt" && clientAuth.startsWith("Bearer ")) {
|
|
106
|
+
const token = clientAuth.replace("Bearer ", "");
|
|
107
|
+
console.log(`[WebSocketProxy] Client provided JWT token, verifying...`);
|
|
108
|
+
try {
|
|
109
|
+
yield verifyProxyToken(token, this.apiKey);
|
|
110
|
+
console.log(`[WebSocketProxy] JWT verified successfully, using server API key`);
|
|
111
|
+
headers.authorization = `Token ${this.apiKey}`;
|
|
112
|
+
}
|
|
113
|
+
catch (error) {
|
|
114
|
+
console.error(`[WebSocketProxy] JWT verification failed:`, error);
|
|
115
|
+
throw new Error("Invalid or expired token");
|
|
116
|
+
}
|
|
117
|
+
}
|
|
118
|
+
else {
|
|
119
|
+
// Use server API key
|
|
120
|
+
headers.authorization = `Token ${this.apiKey}`;
|
|
121
|
+
}
|
|
122
|
+
return headers;
|
|
123
|
+
});
|
|
124
|
+
}
|
|
125
|
+
/**
|
|
126
|
+
* Forward WebSocket messages bidirectionally
|
|
127
|
+
*/
|
|
128
|
+
forwardMessages(clientSocket, deepgramSocket) {
|
|
129
|
+
// Forward client messages to Deepgram
|
|
130
|
+
clientSocket.on("message", (data, isBinary) => {
|
|
131
|
+
if (deepgramSocket.readyState === WebSocket.OPEN) {
|
|
132
|
+
deepgramSocket.send(data, { binary: isBinary });
|
|
133
|
+
}
|
|
134
|
+
});
|
|
135
|
+
// Forward Deepgram messages to client
|
|
136
|
+
deepgramSocket.on("message", (data, isBinary) => {
|
|
137
|
+
if (clientSocket.readyState === WebSocket.OPEN) {
|
|
138
|
+
clientSocket.send(data, { binary: isBinary });
|
|
139
|
+
}
|
|
140
|
+
});
|
|
141
|
+
// Handle closures
|
|
142
|
+
clientSocket.on("close", (code, reason) => {
|
|
143
|
+
if (deepgramSocket.readyState === WebSocket.OPEN) {
|
|
144
|
+
deepgramSocket.close(code, reason);
|
|
145
|
+
}
|
|
146
|
+
});
|
|
147
|
+
deepgramSocket.on("close", (code, reason) => {
|
|
148
|
+
if (clientSocket.readyState === WebSocket.OPEN) {
|
|
149
|
+
clientSocket.close(code, reason);
|
|
150
|
+
}
|
|
151
|
+
});
|
|
152
|
+
// Handle errors
|
|
153
|
+
clientSocket.on("error", (error) => {
|
|
154
|
+
console.error("WebSocket error (client):", error);
|
|
155
|
+
deepgramSocket.close();
|
|
156
|
+
});
|
|
157
|
+
deepgramSocket.on("error", (error) => {
|
|
158
|
+
console.error("WebSocket error (Deepgram):", error);
|
|
159
|
+
clientSocket.close();
|
|
160
|
+
});
|
|
161
|
+
}
|
|
162
|
+
}
|
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Options for creating a proxy token
|
|
3
|
+
*/
|
|
4
|
+
export interface ProxyTokenOptions {
|
|
5
|
+
/** Optional user or session identifier */
|
|
6
|
+
identity?: string;
|
|
7
|
+
/** Token time-to-live (e.g., "1h", "30m", 3600). Defaults to "1h" */
|
|
8
|
+
ttl?: string | number;
|
|
9
|
+
/** Optional scopes/permissions for the token */
|
|
10
|
+
scopes?: string[];
|
|
11
|
+
/** Optional custom metadata to include in token */
|
|
12
|
+
metadata?: Record<string, unknown>;
|
|
13
|
+
}
|
|
14
|
+
/**
|
|
15
|
+
* Decoded proxy token payload
|
|
16
|
+
*/
|
|
17
|
+
export interface ProxyTokenPayload {
|
|
18
|
+
/** Issuer - the project ID extracted from API key */
|
|
19
|
+
iss: string;
|
|
20
|
+
/** Subject - optional user/session identifier */
|
|
21
|
+
sub?: string;
|
|
22
|
+
/** Issued at timestamp */
|
|
23
|
+
iat: number;
|
|
24
|
+
/** Expiration timestamp */
|
|
25
|
+
exp: number;
|
|
26
|
+
/** Not before timestamp */
|
|
27
|
+
nbf: number;
|
|
28
|
+
/** Optional scopes/permissions */
|
|
29
|
+
scopes?: string[];
|
|
30
|
+
/** Optional custom metadata */
|
|
31
|
+
metadata?: Record<string, unknown>;
|
|
32
|
+
}
|
|
33
|
+
/**
|
|
34
|
+
* Creates a proxy token signed with the Deepgram API key.
|
|
35
|
+
* This token should be generated on the backend and sent to browser clients.
|
|
36
|
+
* The browser uses this token to connect to the proxy middleware.
|
|
37
|
+
*
|
|
38
|
+
* @param apiKey - Deepgram API key (used as signing secret)
|
|
39
|
+
* @param options - Token configuration options
|
|
40
|
+
* @returns JWT token string
|
|
41
|
+
*
|
|
42
|
+
* @example
|
|
43
|
+
* ```typescript
|
|
44
|
+
* const token = await createProxyToken(process.env.DEEPGRAM_API_KEY, {
|
|
45
|
+
* identity: 'user-123',
|
|
46
|
+
* ttl: '1h',
|
|
47
|
+
* scopes: ['listen', 'speak']
|
|
48
|
+
* });
|
|
49
|
+
* ```
|
|
50
|
+
*/
|
|
51
|
+
export declare function createProxyToken(apiKey: string, options?: ProxyTokenOptions): Promise<string>;
|
|
52
|
+
/**
|
|
53
|
+
* Verifies a proxy token and returns the decoded payload.
|
|
54
|
+
* This should be called by the proxy middleware to validate tokens from clients.
|
|
55
|
+
*
|
|
56
|
+
* @param token - JWT token to verify
|
|
57
|
+
* @param apiKey - Deepgram API key (used to verify signature)
|
|
58
|
+
* @returns Decoded token payload
|
|
59
|
+
* @throws Error if token is invalid, expired, or signature doesn't match
|
|
60
|
+
*
|
|
61
|
+
* @example
|
|
62
|
+
* ```typescript
|
|
63
|
+
* try {
|
|
64
|
+
* const payload = await verifyProxyToken(token, process.env.DEEPGRAM_API_KEY);
|
|
65
|
+
* console.log('Valid token for user:', payload.sub);
|
|
66
|
+
* } catch (error) {
|
|
67
|
+
* console.error('Invalid token:', error);
|
|
68
|
+
* }
|
|
69
|
+
* ```
|
|
70
|
+
*/
|
|
71
|
+
export declare function verifyProxyToken(token: string, apiKey: string): Promise<ProxyTokenPayload>;
|
|
@@ -0,0 +1,99 @@
|
|
|
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 * as jose from "jose";
|
|
11
|
+
/**
|
|
12
|
+
* Creates a proxy token signed with the Deepgram API key.
|
|
13
|
+
* This token should be generated on the backend and sent to browser clients.
|
|
14
|
+
* The browser uses this token to connect to the proxy middleware.
|
|
15
|
+
*
|
|
16
|
+
* @param apiKey - Deepgram API key (used as signing secret)
|
|
17
|
+
* @param options - Token configuration options
|
|
18
|
+
* @returns JWT token string
|
|
19
|
+
*
|
|
20
|
+
* @example
|
|
21
|
+
* ```typescript
|
|
22
|
+
* const token = await createProxyToken(process.env.DEEPGRAM_API_KEY, {
|
|
23
|
+
* identity: 'user-123',
|
|
24
|
+
* ttl: '1h',
|
|
25
|
+
* scopes: ['listen', 'speak']
|
|
26
|
+
* });
|
|
27
|
+
* ```
|
|
28
|
+
*/
|
|
29
|
+
export function createProxyToken(apiKey_1) {
|
|
30
|
+
return __awaiter(this, arguments, void 0, function* (apiKey, options = {}) {
|
|
31
|
+
const { identity, ttl = "1h", scopes, metadata } = options;
|
|
32
|
+
const projectId = extractProjectId(apiKey);
|
|
33
|
+
const secret = new TextEncoder().encode(apiKey);
|
|
34
|
+
const payload = {};
|
|
35
|
+
if (scopes !== undefined) {
|
|
36
|
+
payload.scopes = scopes;
|
|
37
|
+
}
|
|
38
|
+
if (metadata !== undefined) {
|
|
39
|
+
payload.metadata = metadata;
|
|
40
|
+
}
|
|
41
|
+
const expirationTime = typeof ttl === "number"
|
|
42
|
+
? Math.floor(Date.now() / 1000) + ttl
|
|
43
|
+
: ttl;
|
|
44
|
+
const jwt = new jose.SignJWT(payload)
|
|
45
|
+
.setProtectedHeader({ alg: "HS256" })
|
|
46
|
+
.setIssuer(projectId)
|
|
47
|
+
.setIssuedAt()
|
|
48
|
+
.setNotBefore(new Date())
|
|
49
|
+
.setExpirationTime(expirationTime);
|
|
50
|
+
if (identity !== undefined) {
|
|
51
|
+
jwt.setSubject(identity);
|
|
52
|
+
}
|
|
53
|
+
return jwt.sign(secret);
|
|
54
|
+
});
|
|
55
|
+
}
|
|
56
|
+
/**
|
|
57
|
+
* Verifies a proxy token and returns the decoded payload.
|
|
58
|
+
* This should be called by the proxy middleware to validate tokens from clients.
|
|
59
|
+
*
|
|
60
|
+
* @param token - JWT token to verify
|
|
61
|
+
* @param apiKey - Deepgram API key (used to verify signature)
|
|
62
|
+
* @returns Decoded token payload
|
|
63
|
+
* @throws Error if token is invalid, expired, or signature doesn't match
|
|
64
|
+
*
|
|
65
|
+
* @example
|
|
66
|
+
* ```typescript
|
|
67
|
+
* try {
|
|
68
|
+
* const payload = await verifyProxyToken(token, process.env.DEEPGRAM_API_KEY);
|
|
69
|
+
* console.log('Valid token for user:', payload.sub);
|
|
70
|
+
* } catch (error) {
|
|
71
|
+
* console.error('Invalid token:', error);
|
|
72
|
+
* }
|
|
73
|
+
* ```
|
|
74
|
+
*/
|
|
75
|
+
export function verifyProxyToken(token, apiKey) {
|
|
76
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
77
|
+
const secret = new TextEncoder().encode(apiKey);
|
|
78
|
+
const projectId = extractProjectId(apiKey);
|
|
79
|
+
const { payload } = yield jose.jwtVerify(token, secret, {
|
|
80
|
+
algorithms: ["HS256"],
|
|
81
|
+
issuer: projectId,
|
|
82
|
+
});
|
|
83
|
+
return payload;
|
|
84
|
+
});
|
|
85
|
+
}
|
|
86
|
+
/**
|
|
87
|
+
* Extracts the project ID from a Deepgram API key.
|
|
88
|
+
* API keys are formatted as: {project_id}:{secret}
|
|
89
|
+
*
|
|
90
|
+
* @param apiKey - Deepgram API key
|
|
91
|
+
* @returns Project ID portion of the API key
|
|
92
|
+
*/
|
|
93
|
+
function extractProjectId(apiKey) {
|
|
94
|
+
const parts = apiKey.split(":");
|
|
95
|
+
if (parts.length < 2) {
|
|
96
|
+
throw new Error("Invalid API key format");
|
|
97
|
+
}
|
|
98
|
+
return parts[0];
|
|
99
|
+
}
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Options for configuring the Deepgram proxy middleware
|
|
3
|
+
*/
|
|
4
|
+
export interface MiddlewareOptions {
|
|
5
|
+
/** Deepgram API key for server-side authentication */
|
|
6
|
+
apiKey: string;
|
|
7
|
+
/** Enable temporary token generation endpoint (GET /token) */
|
|
8
|
+
enableTokenAuth?: boolean;
|
|
9
|
+
/**
|
|
10
|
+
* Token mode: how tokens are generated and verified
|
|
11
|
+
* - "deepgram": Use Deepgram's native temporary token API (legacy)
|
|
12
|
+
* - "jwt": Use JWT tokens signed with API key (recommended for browser clients)
|
|
13
|
+
*
|
|
14
|
+
* @default "deepgram"
|
|
15
|
+
*/
|
|
16
|
+
tokenMode?: "deepgram" | "jwt";
|
|
17
|
+
/** Custom Deepgram API base URL (e.g., for EU endpoint) */
|
|
18
|
+
baseUrl?: string;
|
|
19
|
+
/** Default token expiration in seconds (default: 3600 = 1 hour) */
|
|
20
|
+
defaultTokenExpiration?: number;
|
|
21
|
+
}
|
|
22
|
+
/**
|
|
23
|
+
* Request body for token generation
|
|
24
|
+
*/
|
|
25
|
+
export interface TokenRequest {
|
|
26
|
+
/** Token time-to-live in seconds */
|
|
27
|
+
ttlSeconds?: number;
|
|
28
|
+
}
|
|
29
|
+
/**
|
|
30
|
+
* Response from token generation
|
|
31
|
+
*/
|
|
32
|
+
export interface TokenResponse {
|
|
33
|
+
/** The generated access token */
|
|
34
|
+
token: string;
|
|
35
|
+
/** Token expiration time in seconds */
|
|
36
|
+
expiresIn: number;
|
|
37
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Deepgram SDK Middleware
|
|
3
|
+
*
|
|
4
|
+
* This module provides middleware for integrating Deepgram API proxying
|
|
5
|
+
* into Node.js web frameworks like Express and Fastify.
|
|
6
|
+
*
|
|
7
|
+
* ## Features
|
|
8
|
+
* - Server-side API key injection (hide keys from clients)
|
|
9
|
+
* - Temporary token generation (client requests token, uses it temporarily)
|
|
10
|
+
* - WebSocket proxying for Live/Agent APIs
|
|
11
|
+
* - Framework integration (Raw Node.js, Express, Fastify)
|
|
12
|
+
*
|
|
13
|
+
* @example Express
|
|
14
|
+
* ```typescript
|
|
15
|
+
* import express from 'express';
|
|
16
|
+
* import { createDeepgramProxy, createWebSocketHandler } from '@deepgram/sdk';
|
|
17
|
+
*
|
|
18
|
+
* const app = express();
|
|
19
|
+
* const options = {
|
|
20
|
+
* apiKey: process.env.DEEPGRAM_API_KEY!,
|
|
21
|
+
* enableTokenAuth: true
|
|
22
|
+
* };
|
|
23
|
+
*
|
|
24
|
+
* app.use('/api/deepgram', createDeepgramProxy(options));
|
|
25
|
+
*
|
|
26
|
+
* const server = app.listen(3000);
|
|
27
|
+
* server.on('upgrade', createWebSocketHandler(options));
|
|
28
|
+
* ```
|
|
29
|
+
*
|
|
30
|
+
* @example Fastify
|
|
31
|
+
* ```typescript
|
|
32
|
+
* import Fastify from 'fastify';
|
|
33
|
+
* import { fastifyDeepgramProxy } from '@deepgram/sdk';
|
|
34
|
+
*
|
|
35
|
+
* const fastify = Fastify();
|
|
36
|
+
*
|
|
37
|
+
* fastify.register(fastifyDeepgramProxy, {
|
|
38
|
+
* prefix: '/api/deepgram',
|
|
39
|
+
* apiKey: process.env.DEEPGRAM_API_KEY!,
|
|
40
|
+
* enableTokenAuth: true
|
|
41
|
+
* });
|
|
42
|
+
*
|
|
43
|
+
* fastify.listen({ port: 3000 });
|
|
44
|
+
* ```
|
|
45
|
+
*
|
|
46
|
+
* @packageDocumentation
|
|
47
|
+
*/
|
|
48
|
+
export type { MiddlewareOptions, TokenRequest, TokenResponse } from "./core/types.mjs";
|
|
49
|
+
export { createHttpHandler, createUpgradeHandler as createHttpUpgradeHandler, createDeepgramHttpServer, type HttpRequestHandler, type UpgradeHandler as HttpUpgradeHandler, } from "./adapters/http.mjs";
|
|
50
|
+
export { createDeepgramProxy, createDeepgramMiddleware, createWebSocketHandler, type ExpressMiddleware, type UpgradeHandler, } from "./adapters/express.mjs";
|
|
51
|
+
export { fastifyDeepgramProxy, deepgramProxyPlugin, type FastifyDeepgramProxyOptions, } from "./adapters/fastify.mjs";
|
|
52
|
+
export { createProxyToken, verifyProxyToken, type ProxyTokenOptions, type ProxyTokenPayload, } from "./core/jwt.mjs";
|
|
53
|
+
export { ProxyHandler } from "./core/ProxyHandler.mjs";
|
|
54
|
+
export { TokenManager } from "./core/TokenManager.mjs";
|
|
55
|
+
export { WebSocketProxy } from "./core/WebSocketProxy.mjs";
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Deepgram SDK Middleware
|
|
3
|
+
*
|
|
4
|
+
* This module provides middleware for integrating Deepgram API proxying
|
|
5
|
+
* into Node.js web frameworks like Express and Fastify.
|
|
6
|
+
*
|
|
7
|
+
* ## Features
|
|
8
|
+
* - Server-side API key injection (hide keys from clients)
|
|
9
|
+
* - Temporary token generation (client requests token, uses it temporarily)
|
|
10
|
+
* - WebSocket proxying for Live/Agent APIs
|
|
11
|
+
* - Framework integration (Raw Node.js, Express, Fastify)
|
|
12
|
+
*
|
|
13
|
+
* @example Express
|
|
14
|
+
* ```typescript
|
|
15
|
+
* import express from 'express';
|
|
16
|
+
* import { createDeepgramProxy, createWebSocketHandler } from '@deepgram/sdk';
|
|
17
|
+
*
|
|
18
|
+
* const app = express();
|
|
19
|
+
* const options = {
|
|
20
|
+
* apiKey: process.env.DEEPGRAM_API_KEY!,
|
|
21
|
+
* enableTokenAuth: true
|
|
22
|
+
* };
|
|
23
|
+
*
|
|
24
|
+
* app.use('/api/deepgram', createDeepgramProxy(options));
|
|
25
|
+
*
|
|
26
|
+
* const server = app.listen(3000);
|
|
27
|
+
* server.on('upgrade', createWebSocketHandler(options));
|
|
28
|
+
* ```
|
|
29
|
+
*
|
|
30
|
+
* @example Fastify
|
|
31
|
+
* ```typescript
|
|
32
|
+
* import Fastify from 'fastify';
|
|
33
|
+
* import { fastifyDeepgramProxy } from '@deepgram/sdk';
|
|
34
|
+
*
|
|
35
|
+
* const fastify = Fastify();
|
|
36
|
+
*
|
|
37
|
+
* fastify.register(fastifyDeepgramProxy, {
|
|
38
|
+
* prefix: '/api/deepgram',
|
|
39
|
+
* apiKey: process.env.DEEPGRAM_API_KEY!,
|
|
40
|
+
* enableTokenAuth: true
|
|
41
|
+
* });
|
|
42
|
+
*
|
|
43
|
+
* fastify.listen({ port: 3000 });
|
|
44
|
+
* ```
|
|
45
|
+
*
|
|
46
|
+
* @packageDocumentation
|
|
47
|
+
*/
|
|
48
|
+
// Raw Node.js HTTP/HTTPS adapter (no dependencies)
|
|
49
|
+
export { createHttpHandler, createUpgradeHandler as createHttpUpgradeHandler, createDeepgramHttpServer, } from "./adapters/http.mjs";
|
|
50
|
+
// Express adapter
|
|
51
|
+
export { createDeepgramProxy, createDeepgramMiddleware, createWebSocketHandler, } from "./adapters/express.mjs";
|
|
52
|
+
// Fastify adapter
|
|
53
|
+
export { fastifyDeepgramProxy, deepgramProxyPlugin, } from "./adapters/fastify.mjs";
|
|
54
|
+
// JWT token management
|
|
55
|
+
export { createProxyToken, verifyProxyToken, } from "./core/jwt.mjs";
|
|
56
|
+
// Core classes (for advanced usage)
|
|
57
|
+
export { ProxyHandler } from "./core/ProxyHandler.mjs";
|
|
58
|
+
export { TokenManager } from "./core/TokenManager.mjs";
|
|
59
|
+
export { WebSocketProxy } from "./core/WebSocketProxy.mjs";
|
package/dist/esm/version.d.mts
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
export declare const SDK_VERSION = "
|
|
1
|
+
export declare const SDK_VERSION = "4.11.4";
|
package/dist/esm/version.mjs
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
export const SDK_VERSION = "
|
|
1
|
+
export const SDK_VERSION = "4.11.4";
|