@deepgram/sdk 5.0.0-beta.3 → 5.0.0-beta.4
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 +50 -9
- package/dist/cjs/BaseClient.js +2 -2
- package/dist/cjs/CustomClient.js +7 -0
- package/dist/cjs/api/resources/agent/resources/v1/client/Client.d.ts +2 -0
- package/dist/cjs/api/resources/agent/resources/v1/client/Client.js +2 -2
- package/dist/cjs/api/resources/agent/resources/v1/types/AgentV1Settings.d.ts +2 -32
- package/dist/cjs/api/resources/agent/resources/v1/types/AgentV1UpdateSpeak.d.ts +2 -11
- package/dist/cjs/api/resources/listen/resources/v1/client/Client.d.ts +2 -0
- package/dist/cjs/api/resources/listen/resources/v1/client/Client.js +2 -2
- package/dist/cjs/api/resources/listen/resources/v2/client/Client.d.ts +2 -0
- package/dist/cjs/api/resources/listen/resources/v2/client/Client.js +2 -2
- package/dist/cjs/api/resources/speak/resources/v1/client/Client.d.ts +2 -0
- package/dist/cjs/api/resources/speak/resources/v1/client/Client.js +2 -2
- 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/SpeakSettingsV1Provider.d.ts +1 -1
- package/dist/cjs/api/types/ThinkSettingsV1.d.ts +2 -2
- package/dist/cjs/api/types/ThinkSettingsV1Provider.d.ts +19 -0
- package/dist/cjs/api/types/ThinkSettingsV1Provider.js +3 -0
- package/dist/cjs/api/types/index.d.ts +3 -1
- package/dist/cjs/api/types/index.js +3 -1
- 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 +2 -2
- package/dist/esm/CustomClient.mjs +7 -0
- package/dist/esm/api/resources/agent/resources/v1/client/Client.d.mts +2 -0
- package/dist/esm/api/resources/agent/resources/v1/client/Client.mjs +2 -2
- package/dist/esm/api/resources/agent/resources/v1/types/AgentV1Settings.d.mts +2 -32
- package/dist/esm/api/resources/agent/resources/v1/types/AgentV1UpdateSpeak.d.mts +2 -11
- package/dist/esm/api/resources/listen/resources/v1/client/Client.d.mts +2 -0
- package/dist/esm/api/resources/listen/resources/v1/client/Client.mjs +2 -2
- package/dist/esm/api/resources/listen/resources/v2/client/Client.d.mts +2 -0
- package/dist/esm/api/resources/listen/resources/v2/client/Client.mjs +2 -2
- package/dist/esm/api/resources/speak/resources/v1/client/Client.d.mts +2 -0
- package/dist/esm/api/resources/speak/resources/v1/client/Client.mjs +2 -2
- 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/SpeakSettingsV1Provider.d.mts +1 -1
- package/dist/esm/api/types/ThinkSettingsV1.d.mts +2 -2
- package/dist/esm/api/types/ThinkSettingsV1Provider.d.mts +19 -0
- package/dist/esm/api/types/ThinkSettingsV1Provider.mjs +2 -0
- package/dist/esm/api/types/index.d.mts +3 -1
- package/dist/esm/api/types/index.mjs +3 -1
- 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 +1 -1
package/dist/cjs/version.js
CHANGED
package/dist/esm/BaseClient.mjs
CHANGED
|
@@ -6,8 +6,8 @@ export function normalizeClientOptions(options) {
|
|
|
6
6
|
const headers = mergeHeaders({
|
|
7
7
|
"X-Fern-Language": "JavaScript",
|
|
8
8
|
"X-Fern-SDK-Name": "",
|
|
9
|
-
"X-Fern-SDK-Version": "0.0.
|
|
10
|
-
"User-Agent": "/0.0.
|
|
9
|
+
"X-Fern-SDK-Version": "0.0.320",
|
|
10
|
+
"User-Agent": "/0.0.320",
|
|
11
11
|
"X-Fern-Runtime": core.RUNTIME.type,
|
|
12
12
|
"X-Fern-Runtime-Version": core.RUNTIME.version,
|
|
13
13
|
}, options === null || options === void 0 ? void 0 : options.headers);
|
|
@@ -797,6 +797,13 @@ class WrappedSpeakV1Client extends SpeakV1Client {
|
|
|
797
797
|
class WrappedSpeakV1Socket extends SpeakV1Socket {
|
|
798
798
|
constructor(args) {
|
|
799
799
|
super(args);
|
|
800
|
+
// CRITICAL: Remove the autogenerated handleMessage that tries to parse EVERYTHING as JSON!
|
|
801
|
+
// The autogenerated Socket class assumes all messages are text/JSON, but TTS sends binary audio.
|
|
802
|
+
// We must remove that broken handler immediately after the parent constructor runs.
|
|
803
|
+
const socketAny = this;
|
|
804
|
+
if (socketAny.handleMessage) {
|
|
805
|
+
this.socket.removeEventListener("message", socketAny.handleMessage);
|
|
806
|
+
}
|
|
800
807
|
this.setupBinaryHandling();
|
|
801
808
|
}
|
|
802
809
|
setupBinaryHandling() {
|
|
@@ -6,6 +6,8 @@ export declare namespace V1Client {
|
|
|
6
6
|
type Options = BaseClientOptions;
|
|
7
7
|
interface ConnectArgs {
|
|
8
8
|
Authorization: string;
|
|
9
|
+
/** Additional query parameters to send with the websocket connect request. */
|
|
10
|
+
queryParams?: Record<string, unknown>;
|
|
9
11
|
/** Arbitrary headers to send with the websocket connect request. */
|
|
10
12
|
headers?: Record<string, string>;
|
|
11
13
|
/** Enable debug mode on the websocket. Defaults to false. */
|
|
@@ -25,12 +25,12 @@ export class V1Client {
|
|
|
25
25
|
connect(args) {
|
|
26
26
|
return __awaiter(this, void 0, void 0, function* () {
|
|
27
27
|
var _a, _b;
|
|
28
|
-
const { headers, debug, reconnectAttempts } = args;
|
|
28
|
+
const { queryParams, headers, debug, reconnectAttempts } = args;
|
|
29
29
|
const _headers = mergeHeaders(mergeOnlyDefinedHeaders({ Authorization: args.Authorization }), headers);
|
|
30
30
|
const socket = new core.ReconnectingWebSocket({
|
|
31
31
|
url: core.url.join((_a = (yield core.Supplier.get(this._options.baseUrl))) !== null && _a !== void 0 ? _a : ((_b = (yield core.Supplier.get(this._options.environment))) !== null && _b !== void 0 ? _b : environments.DeepgramEnvironment.Production).agent, "/v1/agent/converse"),
|
|
32
32
|
protocols: [],
|
|
33
|
-
queryParameters: {},
|
|
33
|
+
queryParameters: queryParams !== null && queryParams !== void 0 ? queryParams : {},
|
|
34
34
|
headers: _headers,
|
|
35
35
|
options: { debug: debug !== null && debug !== void 0 ? debug : false, maxRetries: reconnectAttempts !== null && reconnectAttempts !== void 0 ? reconnectAttempts : 30 },
|
|
36
36
|
});
|
|
@@ -122,37 +122,7 @@ export declare namespace AgentV1Settings {
|
|
|
122
122
|
interface Listen {
|
|
123
123
|
provider?: Deepgram.agent.AgentV1SettingsAgentListenProvider;
|
|
124
124
|
}
|
|
125
|
-
type Think =
|
|
126
|
-
|
|
127
|
-
endpoint?: {
|
|
128
|
-
url?: string | undefined;
|
|
129
|
-
headers?: Record<string, string> | undefined;
|
|
130
|
-
} | undefined;
|
|
131
|
-
functions?: Record<string, unknown>[] | undefined;
|
|
132
|
-
prompt?: string | undefined;
|
|
133
|
-
context_length?: ("max" | number) | undefined;
|
|
134
|
-
} | {
|
|
135
|
-
provider: Record<string, unknown>;
|
|
136
|
-
endpoint?: {
|
|
137
|
-
url?: string | undefined;
|
|
138
|
-
headers?: Record<string, string> | undefined;
|
|
139
|
-
} | undefined;
|
|
140
|
-
functions?: Record<string, unknown>[] | undefined;
|
|
141
|
-
prompt?: string | undefined;
|
|
142
|
-
context_length?: ("max" | number) | undefined;
|
|
143
|
-
}[];
|
|
144
|
-
type Speak = {
|
|
145
|
-
provider: Record<string, unknown>;
|
|
146
|
-
endpoint?: {
|
|
147
|
-
url?: string | undefined;
|
|
148
|
-
headers?: Record<string, string> | undefined;
|
|
149
|
-
} | undefined;
|
|
150
|
-
} | {
|
|
151
|
-
provider: Record<string, unknown>;
|
|
152
|
-
endpoint?: {
|
|
153
|
-
url?: string | undefined;
|
|
154
|
-
headers?: Record<string, string> | undefined;
|
|
155
|
-
} | undefined;
|
|
156
|
-
}[];
|
|
125
|
+
type Think = Deepgram.ThinkSettingsV1 | Deepgram.ThinkSettingsV1[];
|
|
126
|
+
type Speak = Deepgram.SpeakSettingsV1 | Deepgram.SpeakSettingsV1[];
|
|
157
127
|
}
|
|
158
128
|
}
|
|
@@ -1,18 +1,9 @@
|
|
|
1
|
+
import type * as Deepgram from "../../../../../index.mjs";
|
|
1
2
|
export interface AgentV1UpdateSpeak {
|
|
2
3
|
/** Message type identifier for updating the speak model */
|
|
3
4
|
type: "UpdateSpeak";
|
|
4
5
|
speak: AgentV1UpdateSpeak.Speak;
|
|
5
6
|
}
|
|
6
7
|
export declare namespace AgentV1UpdateSpeak {
|
|
7
|
-
|
|
8
|
-
/** TTS provider configuration (Deepgram, ElevenLabs, Cartesia, OpenAI, or AWS Polly) */
|
|
9
|
-
provider: Record<string, unknown>;
|
|
10
|
-
endpoint?: Speak.Endpoint;
|
|
11
|
-
}
|
|
12
|
-
namespace Speak {
|
|
13
|
-
interface Endpoint {
|
|
14
|
-
url?: string;
|
|
15
|
-
headers?: Record<string, string>;
|
|
16
|
-
}
|
|
17
|
-
}
|
|
8
|
+
type Speak = Deepgram.SpeakSettingsV1 | Deepgram.SpeakSettingsV1[];
|
|
18
9
|
}
|
|
@@ -34,6 +34,8 @@ export declare namespace V1Client {
|
|
|
34
34
|
vad_events?: string;
|
|
35
35
|
version?: string;
|
|
36
36
|
Authorization: string;
|
|
37
|
+
/** Additional query parameters to send with the websocket connect request. */
|
|
38
|
+
queryParams?: Record<string, unknown>;
|
|
37
39
|
/** Arbitrary headers to send with the websocket connect request. */
|
|
38
40
|
headers?: Record<string, string>;
|
|
39
41
|
/** Enable debug mode on the websocket. Defaults to false. */
|
|
@@ -25,7 +25,7 @@ export class V1Client {
|
|
|
25
25
|
connect(args) {
|
|
26
26
|
return __awaiter(this, void 0, void 0, function* () {
|
|
27
27
|
var _a, _b;
|
|
28
|
-
const { callback, callback_method: callbackMethod, channels, detect_entities: detectEntities, diarize, dictation, encoding, endpointing, extra, interim_results: interimResults, keyterm, keywords, language, mip_opt_out: mipOptOut, model, multichannel, numerals, profanity_filter: profanityFilter, punctuate, redact, replace, sample_rate: sampleRate, search, smart_format: smartFormat, tag, utterance_end_ms: utteranceEndMs, vad_events: vadEvents, version, headers, debug, reconnectAttempts, } = args;
|
|
28
|
+
const { callback, callback_method: callbackMethod, channels, detect_entities: detectEntities, diarize, dictation, encoding, endpointing, extra, interim_results: interimResults, keyterm, keywords, language, mip_opt_out: mipOptOut, model, multichannel, numerals, profanity_filter: profanityFilter, punctuate, redact, replace, sample_rate: sampleRate, search, smart_format: smartFormat, tag, utterance_end_ms: utteranceEndMs, vad_events: vadEvents, version, queryParams, headers, debug, reconnectAttempts, } = args;
|
|
29
29
|
const _queryParams = {
|
|
30
30
|
callback,
|
|
31
31
|
callback_method: callbackMethod,
|
|
@@ -60,7 +60,7 @@ export class V1Client {
|
|
|
60
60
|
const socket = new core.ReconnectingWebSocket({
|
|
61
61
|
url: core.url.join((_a = (yield core.Supplier.get(this._options.baseUrl))) !== null && _a !== void 0 ? _a : ((_b = (yield core.Supplier.get(this._options.environment))) !== null && _b !== void 0 ? _b : environments.DeepgramEnvironment.Production).production, "/v1/listen"),
|
|
62
62
|
protocols: [],
|
|
63
|
-
queryParameters: _queryParams,
|
|
63
|
+
queryParameters: Object.assign(Object.assign({}, _queryParams), queryParams),
|
|
64
64
|
headers: _headers,
|
|
65
65
|
options: { debug: debug !== null && debug !== void 0 ? debug : false, maxRetries: reconnectAttempts !== null && reconnectAttempts !== void 0 ? reconnectAttempts : 30 },
|
|
66
66
|
});
|
|
@@ -14,6 +14,8 @@ export declare namespace V2Client {
|
|
|
14
14
|
mip_opt_out?: string;
|
|
15
15
|
tag?: string;
|
|
16
16
|
Authorization: string;
|
|
17
|
+
/** Additional query parameters to send with the websocket connect request. */
|
|
18
|
+
queryParams?: Record<string, unknown>;
|
|
17
19
|
/** Arbitrary headers to send with the websocket connect request. */
|
|
18
20
|
headers?: Record<string, string>;
|
|
19
21
|
/** Enable debug mode on the websocket. Defaults to false. */
|
|
@@ -20,7 +20,7 @@ export class V2Client {
|
|
|
20
20
|
connect(args) {
|
|
21
21
|
return __awaiter(this, void 0, void 0, function* () {
|
|
22
22
|
var _a, _b;
|
|
23
|
-
const { model, encoding, sample_rate: sampleRate, eager_eot_threshold: eagerEotThreshold, eot_threshold: eotThreshold, eot_timeout_ms: eotTimeoutMs, keyterm, mip_opt_out: mipOptOut, tag, headers, debug, reconnectAttempts, } = args;
|
|
23
|
+
const { model, encoding, sample_rate: sampleRate, eager_eot_threshold: eagerEotThreshold, eot_threshold: eotThreshold, eot_timeout_ms: eotTimeoutMs, keyterm, mip_opt_out: mipOptOut, tag, queryParams, headers, debug, reconnectAttempts, } = args;
|
|
24
24
|
const _queryParams = {
|
|
25
25
|
model,
|
|
26
26
|
encoding,
|
|
@@ -36,7 +36,7 @@ export class V2Client {
|
|
|
36
36
|
const socket = new core.ReconnectingWebSocket({
|
|
37
37
|
url: core.url.join((_a = (yield core.Supplier.get(this._options.baseUrl))) !== null && _a !== void 0 ? _a : ((_b = (yield core.Supplier.get(this._options.environment))) !== null && _b !== void 0 ? _b : environments.DeepgramEnvironment.Production).production, "/v2/listen"),
|
|
38
38
|
protocols: [],
|
|
39
|
-
queryParameters: _queryParams,
|
|
39
|
+
queryParameters: Object.assign(Object.assign({}, _queryParams), queryParams),
|
|
40
40
|
headers: _headers,
|
|
41
41
|
options: { debug: debug !== null && debug !== void 0 ? debug : false, maxRetries: reconnectAttempts !== null && reconnectAttempts !== void 0 ? reconnectAttempts : 30 },
|
|
42
42
|
});
|
|
@@ -10,6 +10,8 @@ export declare namespace V1Client {
|
|
|
10
10
|
model?: string;
|
|
11
11
|
sample_rate?: string;
|
|
12
12
|
Authorization: string;
|
|
13
|
+
/** Additional query parameters to send with the websocket connect request. */
|
|
14
|
+
queryParams?: Record<string, unknown>;
|
|
13
15
|
/** Arbitrary headers to send with the websocket connect request. */
|
|
14
16
|
headers?: Record<string, string>;
|
|
15
17
|
/** Enable debug mode on the websocket. Defaults to false. */
|
|
@@ -25,7 +25,7 @@ export class V1Client {
|
|
|
25
25
|
connect(args) {
|
|
26
26
|
return __awaiter(this, void 0, void 0, function* () {
|
|
27
27
|
var _a, _b;
|
|
28
|
-
const { encoding, mip_opt_out: mipOptOut, model, sample_rate: sampleRate, headers, debug, reconnectAttempts, } = args;
|
|
28
|
+
const { encoding, mip_opt_out: mipOptOut, model, sample_rate: sampleRate, queryParams, headers, debug, reconnectAttempts, } = args;
|
|
29
29
|
const _queryParams = {
|
|
30
30
|
encoding,
|
|
31
31
|
mip_opt_out: mipOptOut,
|
|
@@ -36,7 +36,7 @@ export class V1Client {
|
|
|
36
36
|
const socket = new core.ReconnectingWebSocket({
|
|
37
37
|
url: core.url.join((_a = (yield core.Supplier.get(this._options.baseUrl))) !== null && _a !== void 0 ? _a : ((_b = (yield core.Supplier.get(this._options.environment))) !== null && _b !== void 0 ? _b : environments.DeepgramEnvironment.Production).production, "/v1/speak"),
|
|
38
38
|
protocols: [],
|
|
39
|
-
queryParameters: _queryParams,
|
|
39
|
+
queryParameters: Object.assign(Object.assign({}, _queryParams), queryParams),
|
|
40
40
|
headers: _headers,
|
|
41
41
|
options: { debug: debug !== null && debug !== void 0 ? debug : false, maxRetries: reconnectAttempts !== null && reconnectAttempts !== void 0 ? reconnectAttempts : 30 },
|
|
42
42
|
});
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
export interface OpenAiSpeakProvider {
|
|
2
|
+
type: "open_ai";
|
|
3
|
+
/** The REST API version for the OpenAI text-to-speech API */
|
|
4
|
+
version?: "v1";
|
|
5
|
+
/** OpenAI TTS model */
|
|
6
|
+
model: OpenAiSpeakProvider.Model;
|
|
7
|
+
/** OpenAI voice */
|
|
8
|
+
voice: OpenAiSpeakProvider.Voice;
|
|
9
|
+
}
|
|
10
|
+
export declare namespace OpenAiSpeakProvider {
|
|
11
|
+
/** OpenAI TTS model */
|
|
12
|
+
const Model: {
|
|
13
|
+
readonly Tts1: "tts-1";
|
|
14
|
+
readonly Tts1Hd: "tts-1-hd";
|
|
15
|
+
};
|
|
16
|
+
type Model = (typeof Model)[keyof typeof Model] | string;
|
|
17
|
+
/** OpenAI voice */
|
|
18
|
+
const Voice: {
|
|
19
|
+
readonly Alloy: "alloy";
|
|
20
|
+
readonly Echo: "echo";
|
|
21
|
+
readonly Fable: "fable";
|
|
22
|
+
readonly Onyx: "onyx";
|
|
23
|
+
readonly Nova: "nova";
|
|
24
|
+
readonly Shimmer: "shimmer";
|
|
25
|
+
};
|
|
26
|
+
type Voice = (typeof Voice)[keyof typeof Voice] | string;
|
|
27
|
+
}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
// This file was auto-generated by Fern from our API Definition.
|
|
2
|
+
export var OpenAiSpeakProvider;
|
|
3
|
+
(function (OpenAiSpeakProvider) {
|
|
4
|
+
/** OpenAI TTS model */
|
|
5
|
+
OpenAiSpeakProvider.Model = {
|
|
6
|
+
Tts1: "tts-1",
|
|
7
|
+
Tts1Hd: "tts-1-hd",
|
|
8
|
+
};
|
|
9
|
+
/** OpenAI voice */
|
|
10
|
+
OpenAiSpeakProvider.Voice = {
|
|
11
|
+
Alloy: "alloy",
|
|
12
|
+
Echo: "echo",
|
|
13
|
+
Fable: "fable",
|
|
14
|
+
Onyx: "onyx",
|
|
15
|
+
Nova: "nova",
|
|
16
|
+
Shimmer: "shimmer",
|
|
17
|
+
};
|
|
18
|
+
})(OpenAiSpeakProvider || (OpenAiSpeakProvider = {}));
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
export interface OpenAiThinkProvider {
|
|
2
|
+
type: "open_ai";
|
|
3
|
+
/** The REST API version for the OpenAI chat completions API */
|
|
4
|
+
version?: "v1";
|
|
5
|
+
/** OpenAI model to use */
|
|
6
|
+
model: OpenAiThinkProvider.Model;
|
|
7
|
+
/** OpenAI temperature (0-2) */
|
|
8
|
+
temperature?: number;
|
|
9
|
+
}
|
|
10
|
+
export declare namespace OpenAiThinkProvider {
|
|
11
|
+
/** OpenAI model to use */
|
|
12
|
+
const Model: {
|
|
13
|
+
readonly Gpt5: "gpt-5";
|
|
14
|
+
readonly Gpt5Mini: "gpt-5-mini";
|
|
15
|
+
readonly Gpt5Nano: "gpt-5-nano";
|
|
16
|
+
readonly Gpt41: "gpt-4.1";
|
|
17
|
+
readonly Gpt41Mini: "gpt-4.1-mini";
|
|
18
|
+
readonly Gpt41Nano: "gpt-4.1-nano";
|
|
19
|
+
readonly Gpt4O: "gpt-4o";
|
|
20
|
+
readonly Gpt4OMini: "gpt-4o-mini";
|
|
21
|
+
};
|
|
22
|
+
type Model = (typeof Model)[keyof typeof Model] | string;
|
|
23
|
+
}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
// This file was auto-generated by Fern from our API Definition.
|
|
2
|
+
export var OpenAiThinkProvider;
|
|
3
|
+
(function (OpenAiThinkProvider) {
|
|
4
|
+
/** OpenAI model to use */
|
|
5
|
+
OpenAiThinkProvider.Model = {
|
|
6
|
+
Gpt5: "gpt-5",
|
|
7
|
+
Gpt5Mini: "gpt-5-mini",
|
|
8
|
+
Gpt5Nano: "gpt-5-nano",
|
|
9
|
+
Gpt41: "gpt-4.1",
|
|
10
|
+
Gpt41Mini: "gpt-4.1-mini",
|
|
11
|
+
Gpt41Nano: "gpt-4.1-nano",
|
|
12
|
+
Gpt4O: "gpt-4o",
|
|
13
|
+
Gpt4OMini: "gpt-4o-mini",
|
|
14
|
+
};
|
|
15
|
+
})(OpenAiThinkProvider || (OpenAiThinkProvider = {}));
|
|
@@ -10,7 +10,7 @@ export declare namespace SpeakSettingsV1Provider {
|
|
|
10
10
|
interface Cartesia extends Deepgram.Cartesia {
|
|
11
11
|
type: "cartesia";
|
|
12
12
|
}
|
|
13
|
-
interface OpenAi extends Deepgram.
|
|
13
|
+
interface OpenAi extends Deepgram.OpenAiSpeakProvider {
|
|
14
14
|
type: "open_ai";
|
|
15
15
|
}
|
|
16
16
|
interface AwsPolly extends Deepgram.AwsPollySpeakProvider {
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
+
import type * as Deepgram from "../index.mjs";
|
|
1
2
|
export interface ThinkSettingsV1 {
|
|
2
|
-
|
|
3
|
-
provider: Record<string, unknown>;
|
|
3
|
+
provider: Deepgram.ThinkSettingsV1Provider;
|
|
4
4
|
/** Optional for non-Deepgram LLM providers. When present, must include url field and headers object */
|
|
5
5
|
endpoint?: ThinkSettingsV1.Endpoint;
|
|
6
6
|
functions?: ThinkSettingsV1.Functions.Item[];
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import type * as Deepgram from "../index.mjs";
|
|
2
|
+
export type ThinkSettingsV1Provider = Deepgram.ThinkSettingsV1Provider.OpenAi | Deepgram.ThinkSettingsV1Provider.AwsBedrock | Deepgram.ThinkSettingsV1Provider.Anthropic | Deepgram.ThinkSettingsV1Provider.Google | Deepgram.ThinkSettingsV1Provider.Groq;
|
|
3
|
+
export declare namespace ThinkSettingsV1Provider {
|
|
4
|
+
interface OpenAi extends Deepgram.OpenAiThinkProvider {
|
|
5
|
+
type: "open_ai";
|
|
6
|
+
}
|
|
7
|
+
interface AwsBedrock extends Deepgram.AwsBedrockThinkProvider {
|
|
8
|
+
type: "aws_bedrock";
|
|
9
|
+
}
|
|
10
|
+
interface Anthropic extends Deepgram.Anthropic {
|
|
11
|
+
type: "anthropic";
|
|
12
|
+
}
|
|
13
|
+
interface Google extends Deepgram.Google {
|
|
14
|
+
type: "google";
|
|
15
|
+
}
|
|
16
|
+
interface Groq extends Deepgram.Groq {
|
|
17
|
+
type: "groq";
|
|
18
|
+
}
|
|
19
|
+
}
|
|
@@ -88,7 +88,8 @@ export * from "./ListProjectMembersV1Response.mjs";
|
|
|
88
88
|
export * from "./ListProjectPurchasesV1Response.mjs";
|
|
89
89
|
export * from "./ListProjectRequestsV1Response.mjs";
|
|
90
90
|
export * from "./ListProjectsV1Response.mjs";
|
|
91
|
-
export * from "./
|
|
91
|
+
export * from "./OpenAiSpeakProvider.mjs";
|
|
92
|
+
export * from "./OpenAiThinkProvider.mjs";
|
|
92
93
|
export * from "./ProjectRequestResponse.mjs";
|
|
93
94
|
export * from "./ReadV1Request.mjs";
|
|
94
95
|
export * from "./ReadV1RequestText.mjs";
|
|
@@ -108,6 +109,7 @@ export * from "./SpeakV1Model.mjs";
|
|
|
108
109
|
export * from "./SpeakV1Response.mjs";
|
|
109
110
|
export * from "./SpeakV1SampleRate.mjs";
|
|
110
111
|
export * from "./ThinkSettingsV1.mjs";
|
|
112
|
+
export * from "./ThinkSettingsV1Provider.mjs";
|
|
111
113
|
export * from "./UpdateProjectMemberScopesV1Response.mjs";
|
|
112
114
|
export * from "./UpdateProjectV1Response.mjs";
|
|
113
115
|
export * from "./UsageBreakdownV1Response.mjs";
|
|
@@ -88,7 +88,8 @@ export * from "./ListProjectMembersV1Response.mjs";
|
|
|
88
88
|
export * from "./ListProjectPurchasesV1Response.mjs";
|
|
89
89
|
export * from "./ListProjectRequestsV1Response.mjs";
|
|
90
90
|
export * from "./ListProjectsV1Response.mjs";
|
|
91
|
-
export * from "./
|
|
91
|
+
export * from "./OpenAiSpeakProvider.mjs";
|
|
92
|
+
export * from "./OpenAiThinkProvider.mjs";
|
|
92
93
|
export * from "./ProjectRequestResponse.mjs";
|
|
93
94
|
export * from "./ReadV1Request.mjs";
|
|
94
95
|
export * from "./ReadV1RequestText.mjs";
|
|
@@ -108,6 +109,7 @@ export * from "./SpeakV1Model.mjs";
|
|
|
108
109
|
export * from "./SpeakV1Response.mjs";
|
|
109
110
|
export * from "./SpeakV1SampleRate.mjs";
|
|
110
111
|
export * from "./ThinkSettingsV1.mjs";
|
|
112
|
+
export * from "./ThinkSettingsV1Provider.mjs";
|
|
111
113
|
export * from "./UpdateProjectMemberScopesV1Response.mjs";
|
|
112
114
|
export * from "./UpdateProjectV1Response.mjs";
|
|
113
115
|
export * from "./UsageBreakdownV1Response.mjs";
|
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
|
+
}
|