@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
|
@@ -8,7 +8,32 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
|
|
|
8
8
|
});
|
|
9
9
|
};
|
|
10
10
|
import { anySignal, getTimeoutSignal } from "./signals.mjs";
|
|
11
|
-
|
|
11
|
+
/**
|
|
12
|
+
* Cached result of checking whether the current runtime supports
|
|
13
|
+
* the `cache` option in `Request`. Some runtimes (e.g. Cloudflare Workers)
|
|
14
|
+
* throw a TypeError when this option is used.
|
|
15
|
+
*/
|
|
16
|
+
let _cacheNoStoreSupported;
|
|
17
|
+
export function isCacheNoStoreSupported() {
|
|
18
|
+
if (_cacheNoStoreSupported != null) {
|
|
19
|
+
return _cacheNoStoreSupported;
|
|
20
|
+
}
|
|
21
|
+
try {
|
|
22
|
+
new Request("http://localhost", { cache: "no-store" });
|
|
23
|
+
_cacheNoStoreSupported = true;
|
|
24
|
+
}
|
|
25
|
+
catch (_a) {
|
|
26
|
+
_cacheNoStoreSupported = false;
|
|
27
|
+
}
|
|
28
|
+
return _cacheNoStoreSupported;
|
|
29
|
+
}
|
|
30
|
+
/**
|
|
31
|
+
* Reset the cached result of `isCacheNoStoreSupported`. Exposed for testing only.
|
|
32
|
+
*/
|
|
33
|
+
export function resetCacheNoStoreSupported() {
|
|
34
|
+
_cacheNoStoreSupported = undefined;
|
|
35
|
+
}
|
|
36
|
+
export const makeRequest = (fetchFn, url, method, headers, requestBody, timeoutMs, abortSignal, withCredentials, duplex, disableCache) => __awaiter(void 0, void 0, void 0, function* () {
|
|
12
37
|
const signals = [];
|
|
13
38
|
let timeoutAbortId;
|
|
14
39
|
if (timeoutMs != null) {
|
|
@@ -20,15 +45,9 @@ export const makeRequest = (fetchFn, url, method, headers, requestBody, timeoutM
|
|
|
20
45
|
signals.push(abortSignal);
|
|
21
46
|
}
|
|
22
47
|
const newSignals = anySignal(signals);
|
|
23
|
-
const response = yield fetchFn(url, {
|
|
24
|
-
method: method,
|
|
25
|
-
headers,
|
|
26
|
-
body: requestBody,
|
|
27
|
-
signal: newSignals,
|
|
28
|
-
credentials: withCredentials ? "include" : undefined,
|
|
48
|
+
const response = yield fetchFn(url, Object.assign({ method: method, headers, body: requestBody, signal: newSignals, credentials: withCredentials ? "include" : undefined,
|
|
29
49
|
// @ts-ignore
|
|
30
|
-
duplex,
|
|
31
|
-
});
|
|
50
|
+
duplex }, (disableCache && isCacheNoStoreSupported() ? { cache: "no-store" } : {})));
|
|
32
51
|
if (timeoutAbortId != null) {
|
|
33
52
|
clearTimeout(timeoutAbortId);
|
|
34
53
|
}
|
|
@@ -81,17 +81,18 @@ function evaluateRuntime() {
|
|
|
81
81
|
}
|
|
82
82
|
/**
|
|
83
83
|
* A constant that indicates whether the environment the code is running is Node.JS.
|
|
84
|
+
*
|
|
85
|
+
* We assign `process` to a local variable first to avoid being flagged by
|
|
86
|
+
* bundlers that perform static analysis on `process.versions` (e.g. Next.js
|
|
87
|
+
* Edge Runtime warns about Node.js APIs even when they are guarded).
|
|
84
88
|
*/
|
|
85
|
-
const
|
|
86
|
-
|
|
87
|
-
!!process.version &&
|
|
88
|
-
"versions" in process &&
|
|
89
|
-
!!((_e = process.versions) === null || _e === void 0 ? void 0 : _e.node);
|
|
89
|
+
const _process = typeof process !== "undefined" ? process : undefined;
|
|
90
|
+
const isNode = typeof _process !== "undefined" && typeof ((_e = _process.versions) === null || _e === void 0 ? void 0 : _e.node) === "string";
|
|
90
91
|
if (isNode) {
|
|
91
92
|
return {
|
|
92
93
|
type: "node",
|
|
93
|
-
version:
|
|
94
|
-
parsedVersion: Number(
|
|
94
|
+
version: _process.versions.node,
|
|
95
|
+
parsedVersion: Number(_process.versions.node.split(".")[0]),
|
|
95
96
|
};
|
|
96
97
|
}
|
|
97
98
|
return {
|
|
@@ -9,6 +9,7 @@ export declare namespace ReconnectingWebSocket {
|
|
|
9
9
|
options?: ReconnectingWebSocket.Options;
|
|
10
10
|
headers?: Record<string, unknown>;
|
|
11
11
|
queryParameters?: Record<string, unknown>;
|
|
12
|
+
abortSignal?: AbortSignal;
|
|
12
13
|
}
|
|
13
14
|
type Options = {
|
|
14
15
|
WebSocket?: any;
|
|
@@ -47,7 +48,8 @@ export declare class ReconnectingWebSocket {
|
|
|
47
48
|
private readonly _options;
|
|
48
49
|
private readonly _headers?;
|
|
49
50
|
private readonly _queryParameters?;
|
|
50
|
-
|
|
51
|
+
private readonly _abortSignal?;
|
|
52
|
+
constructor({ url, protocols, options, headers, queryParameters, abortSignal }: ReconnectingWebSocket.Args);
|
|
51
53
|
static readonly CONNECTING = 0;
|
|
52
54
|
static readonly OPEN = 1;
|
|
53
55
|
static readonly CLOSING = 2;
|
|
@@ -133,6 +135,7 @@ export declare class ReconnectingWebSocket {
|
|
|
133
135
|
private _wait;
|
|
134
136
|
private _getNextUrl;
|
|
135
137
|
private _connect;
|
|
138
|
+
private _handleAbort;
|
|
136
139
|
private _handleTimeout;
|
|
137
140
|
private _disconnect;
|
|
138
141
|
private _acceptOpen;
|
|
@@ -28,7 +28,7 @@ const DEFAULT_OPTIONS = {
|
|
|
28
28
|
debug: false,
|
|
29
29
|
};
|
|
30
30
|
export class ReconnectingWebSocket {
|
|
31
|
-
constructor({ url, protocols, options, headers, queryParameters }) {
|
|
31
|
+
constructor({ url, protocols, options, headers, queryParameters, abortSignal }) {
|
|
32
32
|
this._listeners = {
|
|
33
33
|
error: [],
|
|
34
34
|
message: [],
|
|
@@ -62,6 +62,25 @@ export class ReconnectingWebSocket {
|
|
|
62
62
|
* this indicates that the connection is ready to send and receive data
|
|
63
63
|
*/
|
|
64
64
|
this.onopen = null;
|
|
65
|
+
this._handleAbort = () => {
|
|
66
|
+
if (this._closeCalled) {
|
|
67
|
+
return;
|
|
68
|
+
}
|
|
69
|
+
this._debug("abort signal fired");
|
|
70
|
+
this._shouldReconnect = false;
|
|
71
|
+
this._closeCalled = true;
|
|
72
|
+
this._clearTimeouts();
|
|
73
|
+
if (this._ws) {
|
|
74
|
+
this._removeListeners();
|
|
75
|
+
try {
|
|
76
|
+
this._ws.close(1000, "aborted");
|
|
77
|
+
this._handleClose(new Events.CloseEvent(1000, "aborted", this));
|
|
78
|
+
}
|
|
79
|
+
catch (_error) {
|
|
80
|
+
// ignore
|
|
81
|
+
}
|
|
82
|
+
}
|
|
83
|
+
};
|
|
65
84
|
this._handleOpen = (event) => {
|
|
66
85
|
this._debug("open event");
|
|
67
86
|
const { minUptime = DEFAULT_OPTIONS.minUptime } = this._options;
|
|
@@ -112,6 +131,10 @@ export class ReconnectingWebSocket {
|
|
|
112
131
|
this._options = options !== null && options !== void 0 ? options : DEFAULT_OPTIONS;
|
|
113
132
|
this._headers = headers;
|
|
114
133
|
this._queryParameters = queryParameters;
|
|
134
|
+
this._abortSignal = abortSignal;
|
|
135
|
+
if (this._abortSignal) {
|
|
136
|
+
this._abortSignal.addEventListener("abort", this._handleAbort, { once: true });
|
|
137
|
+
}
|
|
115
138
|
if (this._options.startClosed) {
|
|
116
139
|
this._shouldReconnect = false;
|
|
117
140
|
}
|
|
@@ -304,9 +327,14 @@ export class ReconnectingWebSocket {
|
|
|
304
327
|
throw Error("Invalid URL");
|
|
305
328
|
}
|
|
306
329
|
_connect() {
|
|
330
|
+
var _a;
|
|
307
331
|
if (this._connectLock || !this._shouldReconnect) {
|
|
308
332
|
return;
|
|
309
333
|
}
|
|
334
|
+
if ((_a = this._abortSignal) === null || _a === void 0 ? void 0 : _a.aborted) {
|
|
335
|
+
this._debug("connect aborted");
|
|
336
|
+
return;
|
|
337
|
+
}
|
|
310
338
|
this._connectLock = true;
|
|
311
339
|
const { maxRetries = DEFAULT_OPTIONS.maxRetries, connectionTimeout = DEFAULT_OPTIONS.connectionTimeout, WebSocket = getGlobalWebSocket(), } = this._options;
|
|
312
340
|
if (this._retryCount >= maxRetries) {
|
|
@@ -322,7 +350,9 @@ export class ReconnectingWebSocket {
|
|
|
322
350
|
this._wait()
|
|
323
351
|
.then(() => this._getNextUrl(this._url))
|
|
324
352
|
.then((url) => {
|
|
325
|
-
|
|
353
|
+
var _a;
|
|
354
|
+
if (this._closeCalled || ((_a = this._abortSignal) === null || _a === void 0 ? void 0 : _a.aborted)) {
|
|
355
|
+
this._connectLock = false;
|
|
326
356
|
return;
|
|
327
357
|
}
|
|
328
358
|
const options = {};
|
|
@@ -1,18 +1,18 @@
|
|
|
1
1
|
export interface DeepgramEnvironmentUrls {
|
|
2
2
|
base: string;
|
|
3
|
-
production: string;
|
|
4
3
|
agent: string;
|
|
4
|
+
production: string;
|
|
5
5
|
}
|
|
6
6
|
export declare const DeepgramEnvironment: {
|
|
7
7
|
readonly Production: {
|
|
8
8
|
readonly base: "https://api.deepgram.com";
|
|
9
|
-
readonly production: "wss://api.deepgram.com";
|
|
10
9
|
readonly agent: "wss://agent.deepgram.com";
|
|
10
|
+
readonly production: "wss://api.deepgram.com";
|
|
11
11
|
};
|
|
12
12
|
readonly Agent: {
|
|
13
13
|
readonly base: "https://agent.deepgram.com";
|
|
14
|
-
readonly production: "wss://api.deepgram.com";
|
|
15
14
|
readonly agent: "wss://agent.deepgram.com";
|
|
15
|
+
readonly production: "wss://api.deepgram.com";
|
|
16
16
|
};
|
|
17
17
|
};
|
|
18
18
|
export type DeepgramEnvironment = typeof DeepgramEnvironment.Production | typeof DeepgramEnvironment.Agent;
|
|
@@ -2,12 +2,12 @@
|
|
|
2
2
|
export const DeepgramEnvironment = {
|
|
3
3
|
Production: {
|
|
4
4
|
base: "https://api.deepgram.com",
|
|
5
|
-
production: "wss://api.deepgram.com",
|
|
6
5
|
agent: "wss://agent.deepgram.com",
|
|
6
|
+
production: "wss://api.deepgram.com",
|
|
7
7
|
},
|
|
8
8
|
Agent: {
|
|
9
9
|
base: "https://agent.deepgram.com",
|
|
10
|
-
production: "wss://api.deepgram.com",
|
|
11
10
|
agent: "wss://agent.deepgram.com",
|
|
11
|
+
production: "wss://api.deepgram.com",
|
|
12
12
|
},
|
|
13
13
|
};
|
package/dist/esm/index.d.mts
CHANGED
|
@@ -1,4 +1,6 @@
|
|
|
1
1
|
export * as Deepgram from "./api/index.mjs";
|
|
2
|
+
export * from "./api/types/index.mjs";
|
|
3
|
+
export * from "./api/resources/index.mjs";
|
|
2
4
|
export type { BaseClientOptions, BaseRequestOptions } from "./BaseClient.mjs";
|
|
3
5
|
export { DeepgramClient as DefaultDeepgramClient } from "./Client.mjs";
|
|
4
6
|
export { CustomDeepgramClient as DeepgramClient } from "./CustomClient.mjs";
|
package/dist/esm/index.mjs
CHANGED
|
@@ -1,4 +1,10 @@
|
|
|
1
|
+
// Export everything under Deepgram namespace for backwards compatibility
|
|
1
2
|
export * as Deepgram from "./api/index.mjs";
|
|
3
|
+
// ALSO export all types directly for better discoverability and IDE autocomplete
|
|
4
|
+
// This allows: import { ListenV1Response } from "@deepgram/sdk"
|
|
5
|
+
// While still supporting: import { Deepgram } from "@deepgram/sdk"; type Response = Deepgram.ListenV1Response;
|
|
6
|
+
export * from "./api/types/index.mjs";
|
|
7
|
+
export * from "./api/resources/index.mjs";
|
|
2
8
|
export { DeepgramClient as DefaultDeepgramClient } from "./Client.mjs";
|
|
3
9
|
export { CustomDeepgramClient as DeepgramClient } from "./CustomClient.mjs";
|
|
4
10
|
export { DeepgramEnvironment } from "./environments.mjs";
|
|
@@ -0,0 +1,103 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Express middleware for proxying Deepgram API requests.
|
|
3
|
+
*
|
|
4
|
+
* @packageDocumentation
|
|
5
|
+
*
|
|
6
|
+
* **Peer Dependencies Required:**
|
|
7
|
+
* ```bash
|
|
8
|
+
* npm install express
|
|
9
|
+
* # or
|
|
10
|
+
* pnpm add express
|
|
11
|
+
* ```
|
|
12
|
+
*
|
|
13
|
+
* This module provides Express-compatible middleware for proxying requests to the
|
|
14
|
+
* Deepgram API, including REST endpoints and WebSocket connections.
|
|
15
|
+
*/
|
|
16
|
+
import type { IncomingMessage, Server, ServerResponse } from "node:http";
|
|
17
|
+
import type { Duplex } from "node:stream";
|
|
18
|
+
import type { MiddlewareOptions } from "../core/types.mjs";
|
|
19
|
+
/**
|
|
20
|
+
* Express middleware type
|
|
21
|
+
*/
|
|
22
|
+
export type ExpressMiddleware = (req: IncomingMessage, res: ServerResponse, next: (error?: Error) => void) => void | Promise<void>;
|
|
23
|
+
/**
|
|
24
|
+
* WebSocket upgrade handler type
|
|
25
|
+
*/
|
|
26
|
+
export type UpgradeHandler = (req: IncomingMessage, socket: Duplex, head: Buffer) => void;
|
|
27
|
+
/**
|
|
28
|
+
* Create Express middleware for proxying Deepgram API requests
|
|
29
|
+
*
|
|
30
|
+
* @param options - Middleware configuration options
|
|
31
|
+
* @returns Express middleware function
|
|
32
|
+
*
|
|
33
|
+
* @example
|
|
34
|
+
* ```typescript
|
|
35
|
+
* import express from 'express';
|
|
36
|
+
* import { createDeepgramProxy, createWebSocketHandler } from '@deepgram/sdk';
|
|
37
|
+
*
|
|
38
|
+
* const app = express();
|
|
39
|
+
* const proxyOptions = {
|
|
40
|
+
* apiKey: process.env.DEEPGRAM_API_KEY!,
|
|
41
|
+
* enableTokenAuth: true
|
|
42
|
+
* };
|
|
43
|
+
*
|
|
44
|
+
* // REST API proxy
|
|
45
|
+
* app.use('/api/deepgram', createDeepgramProxy(proxyOptions));
|
|
46
|
+
*
|
|
47
|
+
* // WebSocket upgrade handler
|
|
48
|
+
* const server = app.listen(3000);
|
|
49
|
+
* server.on('upgrade', createWebSocketHandler(proxyOptions));
|
|
50
|
+
* ```
|
|
51
|
+
*/
|
|
52
|
+
export declare function createDeepgramProxy(options: MiddlewareOptions): ExpressMiddleware;
|
|
53
|
+
/**
|
|
54
|
+
* Create WebSocket upgrade handler for Express
|
|
55
|
+
*
|
|
56
|
+
* This must be registered on the HTTP server, not the Express app.
|
|
57
|
+
*
|
|
58
|
+
* @param options - Middleware configuration options
|
|
59
|
+
* @returns Upgrade handler function
|
|
60
|
+
*
|
|
61
|
+
* @example
|
|
62
|
+
* ```typescript
|
|
63
|
+
* import express from 'express';
|
|
64
|
+
* import { createWebSocketHandler } from '@deepgram/sdk';
|
|
65
|
+
*
|
|
66
|
+
* const app = express();
|
|
67
|
+
* const server = app.listen(3000);
|
|
68
|
+
*
|
|
69
|
+
* // Register WebSocket handler on the server
|
|
70
|
+
* server.on('upgrade', createWebSocketHandler({
|
|
71
|
+
* apiKey: process.env.DEEPGRAM_API_KEY!
|
|
72
|
+
* }));
|
|
73
|
+
* ```
|
|
74
|
+
*/
|
|
75
|
+
export declare function createWebSocketHandler(options: MiddlewareOptions): UpgradeHandler;
|
|
76
|
+
/**
|
|
77
|
+
* Combined helper that returns both middleware and upgrade handler
|
|
78
|
+
*
|
|
79
|
+
* @param options - Middleware configuration options
|
|
80
|
+
* @returns Object with middleware and upgrade handler
|
|
81
|
+
*
|
|
82
|
+
* @example
|
|
83
|
+
* ```typescript
|
|
84
|
+
* import express from 'express';
|
|
85
|
+
* import { createDeepgramMiddleware } from '@deepgram/sdk';
|
|
86
|
+
*
|
|
87
|
+
* const app = express();
|
|
88
|
+
* const { middleware, upgradeHandler } = createDeepgramMiddleware({
|
|
89
|
+
* apiKey: process.env.DEEPGRAM_API_KEY!,
|
|
90
|
+
* enableTokenAuth: true
|
|
91
|
+
* });
|
|
92
|
+
*
|
|
93
|
+
* app.use('/api/deepgram', middleware);
|
|
94
|
+
*
|
|
95
|
+
* const server = app.listen(3000);
|
|
96
|
+
* server.on('upgrade', upgradeHandler);
|
|
97
|
+
* ```
|
|
98
|
+
*/
|
|
99
|
+
export declare function createDeepgramMiddleware(options: MiddlewareOptions): {
|
|
100
|
+
middleware: ExpressMiddleware;
|
|
101
|
+
upgradeHandler: UpgradeHandler;
|
|
102
|
+
server: (httpServer: Server) => void;
|
|
103
|
+
};
|
|
@@ -0,0 +1,136 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Express middleware for proxying Deepgram API requests.
|
|
3
|
+
*
|
|
4
|
+
* @packageDocumentation
|
|
5
|
+
*
|
|
6
|
+
* **Peer Dependencies Required:**
|
|
7
|
+
* ```bash
|
|
8
|
+
* npm install express
|
|
9
|
+
* # or
|
|
10
|
+
* pnpm add express
|
|
11
|
+
* ```
|
|
12
|
+
*
|
|
13
|
+
* This module provides Express-compatible middleware for proxying requests to the
|
|
14
|
+
* Deepgram API, including REST endpoints and WebSocket connections.
|
|
15
|
+
*/
|
|
16
|
+
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
17
|
+
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
18
|
+
return new (P || (P = Promise))(function (resolve, reject) {
|
|
19
|
+
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
20
|
+
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
21
|
+
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
22
|
+
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
23
|
+
});
|
|
24
|
+
};
|
|
25
|
+
import { ProxyHandler } from "../core/ProxyHandler.mjs";
|
|
26
|
+
import { TokenManager } from "../core/TokenManager.mjs";
|
|
27
|
+
import { WebSocketProxy } from "../core/WebSocketProxy.mjs";
|
|
28
|
+
/**
|
|
29
|
+
* Create Express middleware for proxying Deepgram API requests
|
|
30
|
+
*
|
|
31
|
+
* @param options - Middleware configuration options
|
|
32
|
+
* @returns Express middleware function
|
|
33
|
+
*
|
|
34
|
+
* @example
|
|
35
|
+
* ```typescript
|
|
36
|
+
* import express from 'express';
|
|
37
|
+
* import { createDeepgramProxy, createWebSocketHandler } from '@deepgram/sdk';
|
|
38
|
+
*
|
|
39
|
+
* const app = express();
|
|
40
|
+
* const proxyOptions = {
|
|
41
|
+
* apiKey: process.env.DEEPGRAM_API_KEY!,
|
|
42
|
+
* enableTokenAuth: true
|
|
43
|
+
* };
|
|
44
|
+
*
|
|
45
|
+
* // REST API proxy
|
|
46
|
+
* app.use('/api/deepgram', createDeepgramProxy(proxyOptions));
|
|
47
|
+
*
|
|
48
|
+
* // WebSocket upgrade handler
|
|
49
|
+
* const server = app.listen(3000);
|
|
50
|
+
* server.on('upgrade', createWebSocketHandler(proxyOptions));
|
|
51
|
+
* ```
|
|
52
|
+
*/
|
|
53
|
+
export function createDeepgramProxy(options) {
|
|
54
|
+
const proxyHandler = new ProxyHandler(options);
|
|
55
|
+
const tokenManager = options.enableTokenAuth
|
|
56
|
+
? new TokenManager(options)
|
|
57
|
+
: null;
|
|
58
|
+
return (req, res, next) => __awaiter(this, void 0, void 0, function* () {
|
|
59
|
+
try {
|
|
60
|
+
// Handle token generation requests
|
|
61
|
+
if (options.enableTokenAuth &&
|
|
62
|
+
req.url === "/token" &&
|
|
63
|
+
req.method === "GET") {
|
|
64
|
+
yield tokenManager.handleTokenRequest(req, res);
|
|
65
|
+
return;
|
|
66
|
+
}
|
|
67
|
+
// Handle all other requests (proxy to Deepgram)
|
|
68
|
+
yield proxyHandler.handleRequest(req, res);
|
|
69
|
+
}
|
|
70
|
+
catch (error) {
|
|
71
|
+
next(error instanceof Error ? error : new Error(String(error)));
|
|
72
|
+
}
|
|
73
|
+
});
|
|
74
|
+
}
|
|
75
|
+
/**
|
|
76
|
+
* Create WebSocket upgrade handler for Express
|
|
77
|
+
*
|
|
78
|
+
* This must be registered on the HTTP server, not the Express app.
|
|
79
|
+
*
|
|
80
|
+
* @param options - Middleware configuration options
|
|
81
|
+
* @returns Upgrade handler function
|
|
82
|
+
*
|
|
83
|
+
* @example
|
|
84
|
+
* ```typescript
|
|
85
|
+
* import express from 'express';
|
|
86
|
+
* import { createWebSocketHandler } from '@deepgram/sdk';
|
|
87
|
+
*
|
|
88
|
+
* const app = express();
|
|
89
|
+
* const server = app.listen(3000);
|
|
90
|
+
*
|
|
91
|
+
* // Register WebSocket handler on the server
|
|
92
|
+
* server.on('upgrade', createWebSocketHandler({
|
|
93
|
+
* apiKey: process.env.DEEPGRAM_API_KEY!
|
|
94
|
+
* }));
|
|
95
|
+
* ```
|
|
96
|
+
*/
|
|
97
|
+
export function createWebSocketHandler(options) {
|
|
98
|
+
const wsProxy = new WebSocketProxy(options);
|
|
99
|
+
return (req, socket, head) => {
|
|
100
|
+
wsProxy.handleUpgrade(req, socket, head);
|
|
101
|
+
};
|
|
102
|
+
}
|
|
103
|
+
/**
|
|
104
|
+
* Combined helper that returns both middleware and upgrade handler
|
|
105
|
+
*
|
|
106
|
+
* @param options - Middleware configuration options
|
|
107
|
+
* @returns Object with middleware and upgrade handler
|
|
108
|
+
*
|
|
109
|
+
* @example
|
|
110
|
+
* ```typescript
|
|
111
|
+
* import express from 'express';
|
|
112
|
+
* import { createDeepgramMiddleware } from '@deepgram/sdk';
|
|
113
|
+
*
|
|
114
|
+
* const app = express();
|
|
115
|
+
* const { middleware, upgradeHandler } = createDeepgramMiddleware({
|
|
116
|
+
* apiKey: process.env.DEEPGRAM_API_KEY!,
|
|
117
|
+
* enableTokenAuth: true
|
|
118
|
+
* });
|
|
119
|
+
*
|
|
120
|
+
* app.use('/api/deepgram', middleware);
|
|
121
|
+
*
|
|
122
|
+
* const server = app.listen(3000);
|
|
123
|
+
* server.on('upgrade', upgradeHandler);
|
|
124
|
+
* ```
|
|
125
|
+
*/
|
|
126
|
+
export function createDeepgramMiddleware(options) {
|
|
127
|
+
const middleware = createDeepgramProxy(options);
|
|
128
|
+
const upgradeHandler = createWebSocketHandler(options);
|
|
129
|
+
return {
|
|
130
|
+
middleware,
|
|
131
|
+
upgradeHandler,
|
|
132
|
+
server: (httpServer) => {
|
|
133
|
+
httpServer.on("upgrade", upgradeHandler);
|
|
134
|
+
},
|
|
135
|
+
};
|
|
136
|
+
}
|
|
@@ -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.mjs";
|
|
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,157 @@
|
|
|
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
|
+
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
17
|
+
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
18
|
+
return new (P || (P = Promise))(function (resolve, reject) {
|
|
19
|
+
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
20
|
+
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
21
|
+
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
22
|
+
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
23
|
+
});
|
|
24
|
+
};
|
|
25
|
+
import { ProxyHandler } from "../core/ProxyHandler.mjs";
|
|
26
|
+
import { TokenManager } from "../core/TokenManager.mjs";
|
|
27
|
+
import { WebSocketProxy } from "../core/WebSocketProxy.mjs";
|
|
28
|
+
// Lazy-load fastify-plugin
|
|
29
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any -- Dynamic loading
|
|
30
|
+
let fp = null;
|
|
31
|
+
function loadFastifyPlugin() {
|
|
32
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
33
|
+
if (fp) {
|
|
34
|
+
return fp;
|
|
35
|
+
}
|
|
36
|
+
try {
|
|
37
|
+
const module = yield import("fastify-plugin");
|
|
38
|
+
fp = module.default || module;
|
|
39
|
+
return fp;
|
|
40
|
+
}
|
|
41
|
+
catch (_a) {
|
|
42
|
+
throw new Error("fastify-plugin is required for Fastify middleware. Install it with: npm install fastify-plugin");
|
|
43
|
+
}
|
|
44
|
+
});
|
|
45
|
+
}
|
|
46
|
+
/**
|
|
47
|
+
* Fastify plugin for proxying Deepgram API requests
|
|
48
|
+
*
|
|
49
|
+
* @param fastify - Fastify instance
|
|
50
|
+
* @param options - Plugin configuration options
|
|
51
|
+
*
|
|
52
|
+
* @example
|
|
53
|
+
* ```typescript
|
|
54
|
+
* import Fastify from 'fastify';
|
|
55
|
+
* import { fastifyDeepgramProxy } from '@deepgram/sdk';
|
|
56
|
+
*
|
|
57
|
+
* const fastify = Fastify();
|
|
58
|
+
*
|
|
59
|
+
* fastify.register(fastifyDeepgramProxy, {
|
|
60
|
+
* prefix: '/api/deepgram',
|
|
61
|
+
* apiKey: process.env.DEEPGRAM_API_KEY!,
|
|
62
|
+
* enableTokenAuth: true
|
|
63
|
+
* });
|
|
64
|
+
*
|
|
65
|
+
* fastify.listen({ port: 3000 });
|
|
66
|
+
* ```
|
|
67
|
+
*/
|
|
68
|
+
const fastifyDeepgramProxyPlugin = (fastify, options) => __awaiter(void 0, void 0, void 0, function* () {
|
|
69
|
+
var _a;
|
|
70
|
+
const proxyHandler = new ProxyHandler(options);
|
|
71
|
+
const tokenManager = options.enableTokenAuth
|
|
72
|
+
? new TokenManager(options)
|
|
73
|
+
: null;
|
|
74
|
+
const wsProxy = new WebSocketProxy(options);
|
|
75
|
+
// NOTE: We do NOT add a custom content type parser here because:
|
|
76
|
+
// 1. fastify-plugin breaks encapsulation, so it would affect ALL routes
|
|
77
|
+
// 2. We handle body reconstruction in our route handlers instead
|
|
78
|
+
// This allows users to use their own body parsers for their routes
|
|
79
|
+
// Register token endpoint if token auth is enabled
|
|
80
|
+
if (tokenManager) {
|
|
81
|
+
fastify.get("/token", (request, reply) => {
|
|
82
|
+
reply.hijack();
|
|
83
|
+
tokenManager.handleTokenRequest(request.raw, reply.raw).catch((error) => {
|
|
84
|
+
console.error("Token generation error:", error);
|
|
85
|
+
});
|
|
86
|
+
});
|
|
87
|
+
}
|
|
88
|
+
// Register wildcard route to catch ALL paths
|
|
89
|
+
// This must match any path depth: /, /v1, /v1/listen, /v1/listen/more/paths
|
|
90
|
+
fastify.all("/*", (request, reply) => {
|
|
91
|
+
reply.hijack();
|
|
92
|
+
// Fastify has already consumed the request body stream, so we need to
|
|
93
|
+
// write the parsed body back to the raw request
|
|
94
|
+
if (request.body && (request.method === 'POST' || request.method === 'PUT' || request.method === 'PATCH')) {
|
|
95
|
+
const bodyString = typeof request.body === 'string' ? request.body : JSON.stringify(request.body);
|
|
96
|
+
// Write the body to the raw request stream
|
|
97
|
+
process.nextTick(() => {
|
|
98
|
+
request.raw.emit('data', Buffer.from(bodyString));
|
|
99
|
+
request.raw.emit('end');
|
|
100
|
+
});
|
|
101
|
+
}
|
|
102
|
+
proxyHandler.handleRequest(request.raw, reply.raw).catch((error) => {
|
|
103
|
+
console.error("[Fastify] Proxy error:", error);
|
|
104
|
+
});
|
|
105
|
+
});
|
|
106
|
+
// Also catch root path explicitly
|
|
107
|
+
fastify.all("/", (request, reply) => {
|
|
108
|
+
reply.hijack();
|
|
109
|
+
// Reconstruct body if needed
|
|
110
|
+
if (request.body && (request.method === 'POST' || request.method === 'PUT' || request.method === 'PATCH')) {
|
|
111
|
+
const bodyString = typeof request.body === 'string' ? request.body : JSON.stringify(request.body);
|
|
112
|
+
process.nextTick(() => {
|
|
113
|
+
request.raw.emit('data', Buffer.from(bodyString));
|
|
114
|
+
request.raw.emit('end');
|
|
115
|
+
});
|
|
116
|
+
}
|
|
117
|
+
proxyHandler.handleRequest(request.raw, reply.raw).catch((error) => {
|
|
118
|
+
console.error("[Fastify] Root proxy error:", error);
|
|
119
|
+
});
|
|
120
|
+
});
|
|
121
|
+
// Register WebSocket upgrade handler
|
|
122
|
+
if (fastify.server) {
|
|
123
|
+
const prefix = (_a = options.prefix) !== null && _a !== void 0 ? _a : "";
|
|
124
|
+
fastify.server.on("upgrade", (req, socket, head) => {
|
|
125
|
+
var _a;
|
|
126
|
+
// Only handle requests matching our prefix
|
|
127
|
+
if ((_a = req.url) === null || _a === void 0 ? void 0 : _a.startsWith(prefix)) {
|
|
128
|
+
// Remove prefix from URL before proxying
|
|
129
|
+
const originalUrl = req.url;
|
|
130
|
+
req.url = originalUrl.slice(prefix.length);
|
|
131
|
+
wsProxy.handleUpgrade(req, socket, head);
|
|
132
|
+
}
|
|
133
|
+
});
|
|
134
|
+
}
|
|
135
|
+
});
|
|
136
|
+
/**
|
|
137
|
+
* Lazy-loaded Fastify plugin (only loads fastify-plugin when called)
|
|
138
|
+
*/
|
|
139
|
+
let _fastifyDeepgramProxy = null;
|
|
140
|
+
/**
|
|
141
|
+
* Export as Fastify plugin with proper typing
|
|
142
|
+
*/
|
|
143
|
+
export const fastifyDeepgramProxy = (fastify, options) => __awaiter(void 0, void 0, void 0, function* () {
|
|
144
|
+
if (!_fastifyDeepgramProxy) {
|
|
145
|
+
const pluginWrapper = yield loadFastifyPlugin();
|
|
146
|
+
_fastifyDeepgramProxy = pluginWrapper(fastifyDeepgramProxyPlugin, {
|
|
147
|
+
fastify: ">=4.0.0",
|
|
148
|
+
name: "@deepgram/sdk-middleware",
|
|
149
|
+
});
|
|
150
|
+
}
|
|
151
|
+
// eslint-disable-next-line @typescript-eslint/no-non-null-assertion -- Guaranteed to be set above
|
|
152
|
+
return _fastifyDeepgramProxy(fastify, options);
|
|
153
|
+
});
|
|
154
|
+
/**
|
|
155
|
+
* Alternative export for direct usage (without fastify-plugin wrapper)
|
|
156
|
+
*/
|
|
157
|
+
export const deepgramProxyPlugin = fastifyDeepgramProxyPlugin;
|