openai 5.17.0 → 5.18.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (61) hide show
  1. package/CHANGELOG.md +13 -0
  2. package/azure.d.mts +0 -5
  3. package/azure.d.mts.map +1 -1
  4. package/azure.d.ts +0 -5
  5. package/azure.d.ts.map +1 -1
  6. package/azure.js +1 -42
  7. package/azure.js.map +1 -1
  8. package/azure.mjs +1 -42
  9. package/azure.mjs.map +1 -1
  10. package/beta/realtime/websocket.d.mts +7 -1
  11. package/beta/realtime/websocket.d.mts.map +1 -1
  12. package/beta/realtime/websocket.d.ts +7 -1
  13. package/beta/realtime/websocket.d.ts.map +1 -1
  14. package/beta/realtime/websocket.js +17 -10
  15. package/beta/realtime/websocket.js.map +1 -1
  16. package/beta/realtime/websocket.mjs +17 -10
  17. package/beta/realtime/websocket.mjs.map +1 -1
  18. package/beta/realtime/ws.d.mts +6 -1
  19. package/beta/realtime/ws.d.mts.map +1 -1
  20. package/beta/realtime/ws.d.ts +6 -1
  21. package/beta/realtime/ws.d.ts.map +1 -1
  22. package/beta/realtime/ws.js +26 -18
  23. package/beta/realtime/ws.js.map +1 -1
  24. package/beta/realtime/ws.mjs +26 -18
  25. package/beta/realtime/ws.mjs.map +1 -1
  26. package/client.d.mts +12 -2
  27. package/client.d.mts.map +1 -1
  28. package/client.d.ts +12 -2
  29. package/client.d.ts.map +1 -1
  30. package/client.js +26 -3
  31. package/client.js.map +1 -1
  32. package/client.mjs +26 -3
  33. package/client.mjs.map +1 -1
  34. package/package.json +1 -1
  35. package/realtime/websocket.d.mts +7 -1
  36. package/realtime/websocket.d.mts.map +1 -1
  37. package/realtime/websocket.d.ts +7 -1
  38. package/realtime/websocket.d.ts.map +1 -1
  39. package/realtime/websocket.js +18 -10
  40. package/realtime/websocket.js.map +1 -1
  41. package/realtime/websocket.mjs +18 -10
  42. package/realtime/websocket.mjs.map +1 -1
  43. package/realtime/ws.d.mts +6 -1
  44. package/realtime/ws.d.mts.map +1 -1
  45. package/realtime/ws.d.ts +6 -1
  46. package/realtime/ws.d.ts.map +1 -1
  47. package/realtime/ws.js +27 -18
  48. package/realtime/ws.js.map +1 -1
  49. package/realtime/ws.mjs +27 -18
  50. package/realtime/ws.mjs.map +1 -1
  51. package/src/azure.ts +1 -50
  52. package/src/beta/realtime/websocket.ts +27 -12
  53. package/src/beta/realtime/ws.ts +38 -20
  54. package/src/client.ts +42 -6
  55. package/src/realtime/websocket.ts +28 -12
  56. package/src/realtime/ws.ts +39 -20
  57. package/src/version.ts +1 -1
  58. package/version.d.mts +1 -1
  59. package/version.d.ts +1 -1
  60. package/version.js +1 -1
  61. package/version.mjs +1 -1
package/CHANGELOG.md CHANGED
@@ -1,5 +1,18 @@
1
1
  # Changelog
2
2
 
3
+ ## 5.18.0 (2025-09-02)
4
+
5
+ Full Changelog: [v5.17.0...v5.18.0](https://github.com/openai/openai-node/compare/v5.17.0...v5.18.0)
6
+
7
+ ### Features
8
+
9
+ * **client:** support api key provider functions ([#1587](https://github.com/openai/openai-node/issues/1587)) ([c3a92c7](https://github.com/openai/openai-node/commit/c3a92c7ee6f5f7c26c9297be04343326c9854bfd))
10
+
11
+
12
+ ### Bug Fixes
13
+
14
+ * update non beta realtime websockets helpers ([265a42f](https://github.com/openai/openai-node/commit/265a42f9101b0479b7d8dcbf05d45ce29539a7f3))
15
+
3
16
  ## 5.17.0 (2025-09-02)
4
17
 
5
18
  Full Changelog: [v5.16.0...v5.17.0](https://github.com/openai/openai-node/compare/v5.16.0...v5.17.0)
package/azure.d.mts CHANGED
@@ -1,7 +1,6 @@
1
1
  import type { RequestInit } from "./internal/builtin-types.mjs";
2
2
  import { FinalRequestOptions } from "./internal/request-options.mjs";
3
3
  import { ClientOptions, OpenAI } from "./client.mjs";
4
- import { NullableHeaders } from "./internal/headers.mjs";
5
4
  /** API Client for interfacing with the Azure OpenAI API. */
6
5
  export interface AzureClientOptions extends ClientOptions {
7
6
  /**
@@ -29,7 +28,6 @@ export interface AzureClientOptions extends ClientOptions {
29
28
  }
30
29
  /** API Client for interfacing with the Azure OpenAI API. */
31
30
  export declare class AzureOpenAI extends OpenAI {
32
- private _azureADTokenProvider;
33
31
  deploymentName: string | undefined;
34
32
  apiVersion: string;
35
33
  /**
@@ -59,8 +57,5 @@ export declare class AzureOpenAI extends OpenAI {
59
57
  url: string;
60
58
  timeout: number;
61
59
  }>;
62
- _getAzureADToken(): Promise<string | undefined>;
63
- protected authHeaders(opts: FinalRequestOptions): Promise<NullableHeaders | undefined>;
64
- protected prepareOptions(opts: FinalRequestOptions): Promise<void>;
65
60
  }
66
61
  //# sourceMappingURL=azure.d.mts.map
package/azure.d.mts.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"azure.d.mts","sourceRoot":"","sources":["src/azure.ts"],"names":[],"mappings":"OAAO,KAAK,EAAE,WAAW,EAAE;OAEpB,EAAE,mBAAmB,EAAE;OAEvB,EAAE,aAAa,EAAE,MAAM,EAAE;OACzB,EAAgB,eAAe,EAAE;AAExC,4DAA4D;AAC5D,MAAM,WAAW,kBAAmB,SAAQ,aAAa;IACvD;;OAEG;IACH,UAAU,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAEhC;;OAEG;IACH,QAAQ,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAE9B;;;OAGG;IACH,UAAU,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAEhC;;OAEG;IACH,MAAM,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAE5B;;;OAGG;IACH,oBAAoB,CAAC,EAAE,CAAC,MAAM,OAAO,CAAC,MAAM,CAAC,CAAC,GAAG,SAAS,CAAC;CAC5D;AAED,4DAA4D;AAC5D,qBAAa,WAAY,SAAQ,MAAM;IACrC,OAAO,CAAC,qBAAqB,CAAsC;IACnE,cAAc,EAAE,MAAM,GAAG,SAAS,CAAC;IACnC,UAAU,EAAE,MAAM,CAAM;IAExB;;;;;;;;;;;;;;;;OAgBG;gBACS,EACV,OAAoC,EACpC,MAAwC,EACxC,UAA0C,EAC1C,QAAQ,EACR,UAAU,EACV,oBAAoB,EACpB,uBAAuB,EACvB,GAAG,IAAI,EACR,GAAE,kBAAuB;IA0DX,YAAY,CACzB,OAAO,EAAE,mBAAmB,EAC5B,KAAK,GAAE;QAAE,UAAU,CAAC,EAAE,MAAM,CAAA;KAAO,GAClC,OAAO,CAAC;QAAE,GAAG,EAAE,WAAW,GAAG;YAAE,OAAO,EAAE,OAAO,CAAA;SAAE,CAAC;QAAC,GAAG,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,CAAC;IAa/E,gBAAgB,IAAI,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC;cAa5B,WAAW,CAAC,IAAI,EAAE,mBAAmB,GAAG,OAAO,CAAC,eAAe,GAAG,SAAS,CAAC;cAI5E,cAAc,CAAC,IAAI,EAAE,mBAAmB,GAAG,OAAO,CAAC,IAAI,CAAC;CAuBlF"}
1
+ {"version":3,"file":"azure.d.mts","sourceRoot":"","sources":["src/azure.ts"],"names":[],"mappings":"OAAO,KAAK,EAAE,WAAW,EAAE;OAEpB,EAAE,mBAAmB,EAAE;OAEvB,EAAE,aAAa,EAAE,MAAM,EAAE;AAEhC,4DAA4D;AAC5D,MAAM,WAAW,kBAAmB,SAAQ,aAAa;IACvD;;OAEG;IACH,UAAU,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAEhC;;OAEG;IACH,QAAQ,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAE9B;;;OAGG;IACH,UAAU,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAEhC;;OAEG;IACH,MAAM,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAE5B;;;OAGG;IACH,oBAAoB,CAAC,EAAE,CAAC,MAAM,OAAO,CAAC,MAAM,CAAC,CAAC,GAAG,SAAS,CAAC;CAC5D;AAED,4DAA4D;AAC5D,qBAAa,WAAY,SAAQ,MAAM;IACrC,cAAc,EAAE,MAAM,GAAG,SAAS,CAAC;IACnC,UAAU,EAAE,MAAM,CAAM;IAExB;;;;;;;;;;;;;;;;OAgBG;gBACS,EACV,OAAoC,EACpC,MAAwC,EACxC,UAA0C,EAC1C,QAAQ,EACR,UAAU,EACV,oBAAoB,EACpB,uBAAuB,EACvB,GAAG,IAAI,EACR,GAAE,kBAAuB;IAsDX,YAAY,CACzB,OAAO,EAAE,mBAAmB,EAC5B,KAAK,GAAE;QAAE,UAAU,CAAC,EAAE,MAAM,CAAA;KAAO,GAClC,OAAO,CAAC;QAAE,GAAG,EAAE,WAAW,GAAG;YAAE,OAAO,EAAE,OAAO,CAAA;SAAE,CAAC;QAAC,GAAG,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,CAAC;CAYtF"}
package/azure.d.ts CHANGED
@@ -1,7 +1,6 @@
1
1
  import type { RequestInit } from "./internal/builtin-types.js";
2
2
  import { FinalRequestOptions } from "./internal/request-options.js";
3
3
  import { ClientOptions, OpenAI } from "./client.js";
4
- import { NullableHeaders } from "./internal/headers.js";
5
4
  /** API Client for interfacing with the Azure OpenAI API. */
6
5
  export interface AzureClientOptions extends ClientOptions {
7
6
  /**
@@ -29,7 +28,6 @@ export interface AzureClientOptions extends ClientOptions {
29
28
  }
30
29
  /** API Client for interfacing with the Azure OpenAI API. */
31
30
  export declare class AzureOpenAI extends OpenAI {
32
- private _azureADTokenProvider;
33
31
  deploymentName: string | undefined;
34
32
  apiVersion: string;
35
33
  /**
@@ -59,8 +57,5 @@ export declare class AzureOpenAI extends OpenAI {
59
57
  url: string;
60
58
  timeout: number;
61
59
  }>;
62
- _getAzureADToken(): Promise<string | undefined>;
63
- protected authHeaders(opts: FinalRequestOptions): Promise<NullableHeaders | undefined>;
64
- protected prepareOptions(opts: FinalRequestOptions): Promise<void>;
65
60
  }
66
61
  //# sourceMappingURL=azure.d.ts.map
package/azure.d.ts.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"azure.d.ts","sourceRoot":"","sources":["src/azure.ts"],"names":[],"mappings":"OAAO,KAAK,EAAE,WAAW,EAAE;OAEpB,EAAE,mBAAmB,EAAE;OAEvB,EAAE,aAAa,EAAE,MAAM,EAAE;OACzB,EAAgB,eAAe,EAAE;AAExC,4DAA4D;AAC5D,MAAM,WAAW,kBAAmB,SAAQ,aAAa;IACvD;;OAEG;IACH,UAAU,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAEhC;;OAEG;IACH,QAAQ,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAE9B;;;OAGG;IACH,UAAU,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAEhC;;OAEG;IACH,MAAM,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAE5B;;;OAGG;IACH,oBAAoB,CAAC,EAAE,CAAC,MAAM,OAAO,CAAC,MAAM,CAAC,CAAC,GAAG,SAAS,CAAC;CAC5D;AAED,4DAA4D;AAC5D,qBAAa,WAAY,SAAQ,MAAM;IACrC,OAAO,CAAC,qBAAqB,CAAsC;IACnE,cAAc,EAAE,MAAM,GAAG,SAAS,CAAC;IACnC,UAAU,EAAE,MAAM,CAAM;IAExB;;;;;;;;;;;;;;;;OAgBG;gBACS,EACV,OAAoC,EACpC,MAAwC,EACxC,UAA0C,EAC1C,QAAQ,EACR,UAAU,EACV,oBAAoB,EACpB,uBAAuB,EACvB,GAAG,IAAI,EACR,GAAE,kBAAuB;IA0DX,YAAY,CACzB,OAAO,EAAE,mBAAmB,EAC5B,KAAK,GAAE;QAAE,UAAU,CAAC,EAAE,MAAM,CAAA;KAAO,GAClC,OAAO,CAAC;QAAE,GAAG,EAAE,WAAW,GAAG;YAAE,OAAO,EAAE,OAAO,CAAA;SAAE,CAAC;QAAC,GAAG,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,CAAC;IAa/E,gBAAgB,IAAI,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC;cAa5B,WAAW,CAAC,IAAI,EAAE,mBAAmB,GAAG,OAAO,CAAC,eAAe,GAAG,SAAS,CAAC;cAI5E,cAAc,CAAC,IAAI,EAAE,mBAAmB,GAAG,OAAO,CAAC,IAAI,CAAC;CAuBlF"}
1
+ {"version":3,"file":"azure.d.ts","sourceRoot":"","sources":["src/azure.ts"],"names":[],"mappings":"OAAO,KAAK,EAAE,WAAW,EAAE;OAEpB,EAAE,mBAAmB,EAAE;OAEvB,EAAE,aAAa,EAAE,MAAM,EAAE;AAEhC,4DAA4D;AAC5D,MAAM,WAAW,kBAAmB,SAAQ,aAAa;IACvD;;OAEG;IACH,UAAU,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAEhC;;OAEG;IACH,QAAQ,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAE9B;;;OAGG;IACH,UAAU,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAEhC;;OAEG;IACH,MAAM,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAE5B;;;OAGG;IACH,oBAAoB,CAAC,EAAE,CAAC,MAAM,OAAO,CAAC,MAAM,CAAC,CAAC,GAAG,SAAS,CAAC;CAC5D;AAED,4DAA4D;AAC5D,qBAAa,WAAY,SAAQ,MAAM;IACrC,cAAc,EAAE,MAAM,GAAG,SAAS,CAAC;IACnC,UAAU,EAAE,MAAM,CAAM;IAExB;;;;;;;;;;;;;;;;OAgBG;gBACS,EACV,OAAoC,EACpC,MAAwC,EACxC,UAA0C,EAC1C,QAAQ,EACR,UAAU,EACV,oBAAoB,EACpB,uBAAuB,EACvB,GAAG,IAAI,EACR,GAAE,kBAAuB;IAsDX,YAAY,CACzB,OAAO,EAAE,mBAAmB,EAC5B,KAAK,GAAE;QAAE,UAAU,CAAC,EAAE,MAAM,CAAA;KAAO,GAClC,OAAO,CAAC;QAAE,GAAG,EAAE,WAAW,GAAG;YAAE,OAAO,EAAE,OAAO,CAAA;SAAE,CAAC;QAAC,GAAG,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,CAAC;CAYtF"}
package/azure.js CHANGED
@@ -5,7 +5,6 @@ const tslib_1 = require("./internal/tslib.js");
5
5
  const Errors = tslib_1.__importStar(require("./error.js"));
6
6
  const utils_1 = require("./internal/utils.js");
7
7
  const client_1 = require("./client.js");
8
- const headers_1 = require("./internal/headers.js");
9
8
  /** API Client for interfacing with the Azure OpenAI API. */
10
9
  class AzureOpenAI extends client_1.OpenAI {
11
10
  /**
@@ -38,8 +37,6 @@ class AzureOpenAI extends client_1.OpenAI {
38
37
  if (azureADTokenProvider && apiKey) {
39
38
  throw new Errors.OpenAIError('The `apiKey` and `azureADTokenProvider` arguments are mutually exclusive; only one can be passed at a time.');
40
39
  }
41
- // define a sentinel value to avoid any typing issues
42
- apiKey ?? (apiKey = API_KEY_SENTINEL);
43
40
  opts.defaultQuery = { ...opts.defaultQuery, 'api-version': apiVersion };
44
41
  if (!baseURL) {
45
42
  if (!endpoint) {
@@ -56,13 +53,12 @@ class AzureOpenAI extends client_1.OpenAI {
56
53
  }
57
54
  }
58
55
  super({
59
- apiKey,
56
+ apiKey: azureADTokenProvider ?? apiKey,
60
57
  baseURL,
61
58
  ...opts,
62
59
  ...(dangerouslyAllowBrowser !== undefined ? { dangerouslyAllowBrowser } : {}),
63
60
  });
64
61
  this.apiVersion = '';
65
- this._azureADTokenProvider = azureADTokenProvider;
66
62
  this.apiVersion = apiVersion;
67
63
  this.deploymentName = deployment;
68
64
  }
@@ -78,42 +74,6 @@ class AzureOpenAI extends client_1.OpenAI {
78
74
  }
79
75
  return super.buildRequest(options, props);
80
76
  }
81
- async _getAzureADToken() {
82
- if (typeof this._azureADTokenProvider === 'function') {
83
- const token = await this._azureADTokenProvider();
84
- if (!token || typeof token !== 'string') {
85
- throw new Errors.OpenAIError(`Expected 'azureADTokenProvider' argument to return a string but it returned ${token}`);
86
- }
87
- return token;
88
- }
89
- return undefined;
90
- }
91
- async authHeaders(opts) {
92
- return;
93
- }
94
- async prepareOptions(opts) {
95
- opts.headers = (0, headers_1.buildHeaders)([opts.headers]);
96
- /**
97
- * The user should provide a bearer token provider if they want
98
- * to use Azure AD authentication. The user shouldn't set the
99
- * Authorization header manually because the header is overwritten
100
- * with the Azure AD token if a bearer token provider is provided.
101
- */
102
- if (opts.headers.values.get('Authorization') || opts.headers.values.get('api-key')) {
103
- return super.prepareOptions(opts);
104
- }
105
- const token = await this._getAzureADToken();
106
- if (token) {
107
- opts.headers.values.set('Authorization', `Bearer ${token}`);
108
- }
109
- else if (this.apiKey !== API_KEY_SENTINEL) {
110
- opts.headers.values.set('api-key', this.apiKey);
111
- }
112
- else {
113
- throw new Errors.OpenAIError('Unable to handle auth');
114
- }
115
- return super.prepareOptions(opts);
116
- }
117
77
  }
118
78
  exports.AzureOpenAI = AzureOpenAI;
119
79
  const _deployments_endpoints = new Set([
@@ -127,5 +87,4 @@ const _deployments_endpoints = new Set([
127
87
  '/batches',
128
88
  '/images/edits',
129
89
  ]);
130
- const API_KEY_SENTINEL = '<Missing Key>';
131
90
  //# sourceMappingURL=azure.js.map
package/azure.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"azure.js","sourceRoot":"","sources":["src/azure.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"azure.js","sourceRoot":"","sources":["src/azure.ts"],"names":[],"mappings":"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"}
package/azure.mjs CHANGED
@@ -1,7 +1,6 @@
1
1
  import * as Errors from "./error.mjs";
2
2
  import { isObj, readEnv } from "./internal/utils.mjs";
3
3
  import { OpenAI } from "./client.mjs";
4
- import { buildHeaders } from "./internal/headers.mjs";
5
4
  /** API Client for interfacing with the Azure OpenAI API. */
6
5
  export class AzureOpenAI extends OpenAI {
7
6
  /**
@@ -34,8 +33,6 @@ export class AzureOpenAI extends OpenAI {
34
33
  if (azureADTokenProvider && apiKey) {
35
34
  throw new Errors.OpenAIError('The `apiKey` and `azureADTokenProvider` arguments are mutually exclusive; only one can be passed at a time.');
36
35
  }
37
- // define a sentinel value to avoid any typing issues
38
- apiKey ?? (apiKey = API_KEY_SENTINEL);
39
36
  opts.defaultQuery = { ...opts.defaultQuery, 'api-version': apiVersion };
40
37
  if (!baseURL) {
41
38
  if (!endpoint) {
@@ -52,13 +49,12 @@ export class AzureOpenAI extends OpenAI {
52
49
  }
53
50
  }
54
51
  super({
55
- apiKey,
52
+ apiKey: azureADTokenProvider ?? apiKey,
56
53
  baseURL,
57
54
  ...opts,
58
55
  ...(dangerouslyAllowBrowser !== undefined ? { dangerouslyAllowBrowser } : {}),
59
56
  });
60
57
  this.apiVersion = '';
61
- this._azureADTokenProvider = azureADTokenProvider;
62
58
  this.apiVersion = apiVersion;
63
59
  this.deploymentName = deployment;
64
60
  }
@@ -74,42 +70,6 @@ export class AzureOpenAI extends OpenAI {
74
70
  }
75
71
  return super.buildRequest(options, props);
76
72
  }
77
- async _getAzureADToken() {
78
- if (typeof this._azureADTokenProvider === 'function') {
79
- const token = await this._azureADTokenProvider();
80
- if (!token || typeof token !== 'string') {
81
- throw new Errors.OpenAIError(`Expected 'azureADTokenProvider' argument to return a string but it returned ${token}`);
82
- }
83
- return token;
84
- }
85
- return undefined;
86
- }
87
- async authHeaders(opts) {
88
- return;
89
- }
90
- async prepareOptions(opts) {
91
- opts.headers = buildHeaders([opts.headers]);
92
- /**
93
- * The user should provide a bearer token provider if they want
94
- * to use Azure AD authentication. The user shouldn't set the
95
- * Authorization header manually because the header is overwritten
96
- * with the Azure AD token if a bearer token provider is provided.
97
- */
98
- if (opts.headers.values.get('Authorization') || opts.headers.values.get('api-key')) {
99
- return super.prepareOptions(opts);
100
- }
101
- const token = await this._getAzureADToken();
102
- if (token) {
103
- opts.headers.values.set('Authorization', `Bearer ${token}`);
104
- }
105
- else if (this.apiKey !== API_KEY_SENTINEL) {
106
- opts.headers.values.set('api-key', this.apiKey);
107
- }
108
- else {
109
- throw new Errors.OpenAIError('Unable to handle auth');
110
- }
111
- return super.prepareOptions(opts);
112
- }
113
73
  }
114
74
  const _deployments_endpoints = new Set([
115
75
  '/completions',
@@ -122,5 +82,4 @@ const _deployments_endpoints = new Set([
122
82
  '/batches',
123
83
  '/images/edits',
124
84
  ]);
125
- const API_KEY_SENTINEL = '<Missing Key>';
126
85
  //# sourceMappingURL=azure.mjs.map
package/azure.mjs.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"azure.mjs","sourceRoot":"","sources":["src/azure.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"azure.mjs","sourceRoot":"","sources":["src/azure.ts"],"names":[],"mappings":"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"}
@@ -15,8 +15,14 @@ export declare class OpenAIRealtimeWebSocket extends OpenAIRealtimeEmitter {
15
15
  * @internal
16
16
  */
17
17
  onURL?: (url: URL) => void;
18
+ /** Indicates the token was resolved by the factory just before connecting. @internal */
19
+ __resolvedApiKey?: boolean;
18
20
  }, client?: Pick<OpenAI, 'apiKey' | 'baseURL'>);
19
- static azure(client: Pick<AzureOpenAI, '_getAzureADToken' | 'apiVersion' | 'apiKey' | 'baseURL' | 'deploymentName'>, options?: {
21
+ static create(client: Pick<OpenAI, 'apiKey' | 'baseURL' | '_callApiKey'>, props: {
22
+ model: string;
23
+ dangerouslyAllowBrowser?: boolean;
24
+ }): Promise<OpenAIRealtimeWebSocket>;
25
+ static azure(client: Pick<AzureOpenAI, '_callApiKey' | 'apiVersion' | 'apiKey' | 'baseURL' | 'deploymentName'>, options?: {
20
26
  deploymentName?: string;
21
27
  dangerouslyAllowBrowser?: boolean;
22
28
  }): Promise<OpenAIRealtimeWebSocket>;
@@ -1 +1 @@
1
- {"version":3,"file":"websocket.d.mts","sourceRoot":"","sources":["../../src/beta/realtime/websocket.ts"],"names":[],"mappings":"OAAO,EAAE,WAAW,EAAE,MAAM,EAAE;OAEvB,KAAK,EAAE,mBAAmB,EAAuB;OACjD,EAAE,qBAAqB,EAA6B;AAO3D,KAAK,UAAU,GACb,OAAO,UAAU,SAAS,CACxB;IACE,SAAS,EAAE,MAAM,EAAE,SAAS,QAAQ,MAAM,GAAG,IAAI,EAAE,GAAG,KAAK,GAAG,CAAC;CAChE,CACF,GAEC,YAAY,CAAC,EAAE,CAAC,GAChB,GAAG,CAAC;AAER,qBAAa,uBAAwB,SAAQ,qBAAqB;IAChE,GAAG,EAAE,GAAG,CAAC;IACT,MAAM,EAAE,UAAU,CAAC;gBAGjB,KAAK,EAAE;QACL,KAAK,EAAE,MAAM,CAAC;QACd,uBAAuB,CAAC,EAAE,OAAO,CAAC;QAClC;;;WAGG;QACH,KAAK,CAAC,EAAE,CAAC,GAAG,EAAE,GAAG,KAAK,IAAI,CAAC;KAC5B,EACD,MAAM,CAAC,EAAE,IAAI,CAAC,MAAM,EAAE,QAAQ,GAAG,SAAS,CAAC;WA8DhC,KAAK,CAChB,MAAM,EAAE,IAAI,CAAC,WAAW,EAAE,kBAAkB,GAAG,YAAY,GAAG,QAAQ,GAAG,SAAS,GAAG,gBAAgB,CAAC,EACtG,OAAO,GAAE;QAAE,cAAc,CAAC,EAAE,MAAM,CAAC;QAAC,uBAAuB,CAAC,EAAE,OAAO,CAAA;KAAO,GAC3E,OAAO,CAAC,uBAAuB,CAAC;IA4BnC,IAAI,CAAC,KAAK,EAAE,mBAAmB;IAQ/B,KAAK,CAAC,KAAK,CAAC,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE;CAO/C"}
1
+ {"version":3,"file":"websocket.d.mts","sourceRoot":"","sources":["../../src/beta/realtime/websocket.ts"],"names":[],"mappings":"OAAO,EAAE,WAAW,EAAE,MAAM,EAAE;OAEvB,KAAK,EAAE,mBAAmB,EAAuB;OACjD,EAAE,qBAAqB,EAA6B;AAO3D,KAAK,UAAU,GACb,OAAO,UAAU,SAAS,CACxB;IACE,SAAS,EAAE,MAAM,EAAE,SAAS,QAAQ,MAAM,GAAG,IAAI,EAAE,GAAG,KAAK,GAAG,CAAC;CAChE,CACF,GAEC,YAAY,CAAC,EAAE,CAAC,GAChB,GAAG,CAAC;AAER,qBAAa,uBAAwB,SAAQ,qBAAqB;IAChE,GAAG,EAAE,GAAG,CAAC;IACT,MAAM,EAAE,UAAU,CAAC;gBAGjB,KAAK,EAAE;QACL,KAAK,EAAE,MAAM,CAAC;QACd,uBAAuB,CAAC,EAAE,OAAO,CAAC;QAClC;;;WAGG;QACH,KAAK,CAAC,EAAE,CAAC,GAAG,EAAE,GAAG,KAAK,IAAI,CAAC;QAC3B,wFAAwF;QACxF,gBAAgB,CAAC,EAAE,OAAO,CAAC;KAC5B,EACD,MAAM,CAAC,EAAE,IAAI,CAAC,MAAM,EAAE,QAAQ,GAAG,SAAS,CAAC;WAuEhC,MAAM,CACjB,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,QAAQ,GAAG,SAAS,GAAG,aAAa,CAAC,EAC1D,KAAK,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,uBAAuB,CAAC,EAAE,OAAO,CAAA;KAAE,GAC1D,OAAO,CAAC,uBAAuB,CAAC;WAItB,KAAK,CAChB,MAAM,EAAE,IAAI,CAAC,WAAW,EAAE,aAAa,GAAG,YAAY,GAAG,QAAQ,GAAG,SAAS,GAAG,gBAAgB,CAAC,EACjG,OAAO,GAAE;QAAE,cAAc,CAAC,EAAE,MAAM,CAAC;QAAC,uBAAuB,CAAC,EAAE,OAAO,CAAA;KAAO,GAC3E,OAAO,CAAC,uBAAuB,CAAC;IAyBnC,IAAI,CAAC,KAAK,EAAE,mBAAmB;IAQ/B,KAAK,CAAC,KAAK,CAAC,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE;CAO/C"}
@@ -15,8 +15,14 @@ export declare class OpenAIRealtimeWebSocket extends OpenAIRealtimeEmitter {
15
15
  * @internal
16
16
  */
17
17
  onURL?: (url: URL) => void;
18
+ /** Indicates the token was resolved by the factory just before connecting. @internal */
19
+ __resolvedApiKey?: boolean;
18
20
  }, client?: Pick<OpenAI, 'apiKey' | 'baseURL'>);
19
- static azure(client: Pick<AzureOpenAI, '_getAzureADToken' | 'apiVersion' | 'apiKey' | 'baseURL' | 'deploymentName'>, options?: {
21
+ static create(client: Pick<OpenAI, 'apiKey' | 'baseURL' | '_callApiKey'>, props: {
22
+ model: string;
23
+ dangerouslyAllowBrowser?: boolean;
24
+ }): Promise<OpenAIRealtimeWebSocket>;
25
+ static azure(client: Pick<AzureOpenAI, '_callApiKey' | 'apiVersion' | 'apiKey' | 'baseURL' | 'deploymentName'>, options?: {
20
26
  deploymentName?: string;
21
27
  dangerouslyAllowBrowser?: boolean;
22
28
  }): Promise<OpenAIRealtimeWebSocket>;
@@ -1 +1 @@
1
- {"version":3,"file":"websocket.d.ts","sourceRoot":"","sources":["../../src/beta/realtime/websocket.ts"],"names":[],"mappings":"OAAO,EAAE,WAAW,EAAE,MAAM,EAAE;OAEvB,KAAK,EAAE,mBAAmB,EAAuB;OACjD,EAAE,qBAAqB,EAA6B;AAO3D,KAAK,UAAU,GACb,OAAO,UAAU,SAAS,CACxB;IACE,SAAS,EAAE,MAAM,EAAE,SAAS,QAAQ,MAAM,GAAG,IAAI,EAAE,GAAG,KAAK,GAAG,CAAC;CAChE,CACF,GAEC,YAAY,CAAC,EAAE,CAAC,GAChB,GAAG,CAAC;AAER,qBAAa,uBAAwB,SAAQ,qBAAqB;IAChE,GAAG,EAAE,GAAG,CAAC;IACT,MAAM,EAAE,UAAU,CAAC;gBAGjB,KAAK,EAAE;QACL,KAAK,EAAE,MAAM,CAAC;QACd,uBAAuB,CAAC,EAAE,OAAO,CAAC;QAClC;;;WAGG;QACH,KAAK,CAAC,EAAE,CAAC,GAAG,EAAE,GAAG,KAAK,IAAI,CAAC;KAC5B,EACD,MAAM,CAAC,EAAE,IAAI,CAAC,MAAM,EAAE,QAAQ,GAAG,SAAS,CAAC;WA8DhC,KAAK,CAChB,MAAM,EAAE,IAAI,CAAC,WAAW,EAAE,kBAAkB,GAAG,YAAY,GAAG,QAAQ,GAAG,SAAS,GAAG,gBAAgB,CAAC,EACtG,OAAO,GAAE;QAAE,cAAc,CAAC,EAAE,MAAM,CAAC;QAAC,uBAAuB,CAAC,EAAE,OAAO,CAAA;KAAO,GAC3E,OAAO,CAAC,uBAAuB,CAAC;IA4BnC,IAAI,CAAC,KAAK,EAAE,mBAAmB;IAQ/B,KAAK,CAAC,KAAK,CAAC,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE;CAO/C"}
1
+ {"version":3,"file":"websocket.d.ts","sourceRoot":"","sources":["../../src/beta/realtime/websocket.ts"],"names":[],"mappings":"OAAO,EAAE,WAAW,EAAE,MAAM,EAAE;OAEvB,KAAK,EAAE,mBAAmB,EAAuB;OACjD,EAAE,qBAAqB,EAA6B;AAO3D,KAAK,UAAU,GACb,OAAO,UAAU,SAAS,CACxB;IACE,SAAS,EAAE,MAAM,EAAE,SAAS,QAAQ,MAAM,GAAG,IAAI,EAAE,GAAG,KAAK,GAAG,CAAC;CAChE,CACF,GAEC,YAAY,CAAC,EAAE,CAAC,GAChB,GAAG,CAAC;AAER,qBAAa,uBAAwB,SAAQ,qBAAqB;IAChE,GAAG,EAAE,GAAG,CAAC;IACT,MAAM,EAAE,UAAU,CAAC;gBAGjB,KAAK,EAAE;QACL,KAAK,EAAE,MAAM,CAAC;QACd,uBAAuB,CAAC,EAAE,OAAO,CAAC;QAClC;;;WAGG;QACH,KAAK,CAAC,EAAE,CAAC,GAAG,EAAE,GAAG,KAAK,IAAI,CAAC;QAC3B,wFAAwF;QACxF,gBAAgB,CAAC,EAAE,OAAO,CAAC;KAC5B,EACD,MAAM,CAAC,EAAE,IAAI,CAAC,MAAM,EAAE,QAAQ,GAAG,SAAS,CAAC;WAuEhC,MAAM,CACjB,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,QAAQ,GAAG,SAAS,GAAG,aAAa,CAAC,EAC1D,KAAK,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,uBAAuB,CAAC,EAAE,OAAO,CAAA;KAAE,GAC1D,OAAO,CAAC,uBAAuB,CAAC;WAItB,KAAK,CAChB,MAAM,EAAE,IAAI,CAAC,WAAW,EAAE,aAAa,GAAG,YAAY,GAAG,QAAQ,GAAG,SAAS,GAAG,gBAAgB,CAAC,EACjG,OAAO,GAAE;QAAE,cAAc,CAAC,EAAE,MAAM,CAAC;QAAC,uBAAuB,CAAC,EAAE,OAAO,CAAA;KAAO,GAC3E,OAAO,CAAC,uBAAuB,CAAC;IAyBnC,IAAI,CAAC,KAAK,EAAE,mBAAmB;IAQ/B,KAAK,CAAC,KAAK,CAAC,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE;CAO/C"}
@@ -8,13 +8,21 @@ const detect_platform_1 = require("../../internal/detect-platform.js");
8
8
  class OpenAIRealtimeWebSocket extends internal_base_1.OpenAIRealtimeEmitter {
9
9
  constructor(props, client) {
10
10
  super();
11
+ const hasProvider = typeof client?._options?.apiKey === 'function';
11
12
  const dangerouslyAllowBrowser = props.dangerouslyAllowBrowser ??
12
13
  client?._options?.dangerouslyAllowBrowser ??
13
- (client?.apiKey.startsWith('ek_') ? true : null);
14
+ (client?.apiKey?.startsWith('ek_') ? true : null);
14
15
  if (!dangerouslyAllowBrowser && (0, detect_platform_1.isRunningInBrowser)()) {
15
16
  throw new error_1.OpenAIError("It looks like you're running in a browser-like environment.\n\nThis is disabled by default, as it risks exposing your secret API credentials to attackers.\n\nYou can avoid this error by creating an ephemeral session token:\nhttps://platform.openai.com/docs/api-reference/realtime-sessions\n");
16
17
  }
17
18
  client ?? (client = new index_1.OpenAI({ dangerouslyAllowBrowser }));
19
+ if (hasProvider && !props?.__resolvedApiKey) {
20
+ throw new Error([
21
+ 'Cannot open Realtime WebSocket with a function-based apiKey.',
22
+ 'Use the .create() method so that the key is resolved before connecting:',
23
+ 'await OpenAIRealtimeWebSocket.create(client, { model })',
24
+ ].join('\n'));
25
+ }
18
26
  this.url = (0, internal_base_1.buildRealtimeURL)(client, props.model);
19
27
  props.onURL?.(this.url);
20
28
  // @ts-ignore
@@ -56,19 +64,17 @@ class OpenAIRealtimeWebSocket extends internal_base_1.OpenAIRealtimeEmitter {
56
64
  }
57
65
  }
58
66
  }
67
+ static async create(client, props) {
68
+ return new OpenAIRealtimeWebSocket({ ...props, __resolvedApiKey: await client._callApiKey() }, client);
69
+ }
59
70
  static async azure(client, options = {}) {
60
- const token = await client._getAzureADToken();
71
+ const isApiKeyProvider = await client._callApiKey();
61
72
  function onURL(url) {
62
- if (client.apiKey !== '<Missing Key>') {
63
- url.searchParams.set('api-key', client.apiKey);
73
+ if (isApiKeyProvider) {
74
+ url.searchParams.set('Authorization', `Bearer ${client.apiKey}`);
64
75
  }
65
76
  else {
66
- if (token) {
67
- url.searchParams.set('Authorization', `Bearer ${token}`);
68
- }
69
- else {
70
- throw new Error('AzureOpenAI is not instantiated correctly. No API key or token provided.');
71
- }
77
+ url.searchParams.set('api-key', client.apiKey);
72
78
  }
73
79
  }
74
80
  const deploymentName = options.deploymentName ?? client.deploymentName;
@@ -80,6 +86,7 @@ class OpenAIRealtimeWebSocket extends internal_base_1.OpenAIRealtimeEmitter {
80
86
  model: deploymentName,
81
87
  onURL,
82
88
  ...(dangerouslyAllowBrowser ? { dangerouslyAllowBrowser } : {}),
89
+ __resolvedApiKey: isApiKeyProvider,
83
90
  }, client);
84
91
  }
85
92
  send(event) {
@@ -1 +1 @@
1
- {"version":3,"file":"websocket.js","sourceRoot":"","sources":["../../src/beta/realtime/websocket.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"websocket.js","sourceRoot":"","sources":["../../src/beta/realtime/websocket.ts"],"names":[],"mappings":"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"}
@@ -5,13 +5,21 @@ import { isRunningInBrowser } from "../../internal/detect-platform.mjs";
5
5
  export class OpenAIRealtimeWebSocket extends OpenAIRealtimeEmitter {
6
6
  constructor(props, client) {
7
7
  super();
8
+ const hasProvider = typeof client?._options?.apiKey === 'function';
8
9
  const dangerouslyAllowBrowser = props.dangerouslyAllowBrowser ??
9
10
  client?._options?.dangerouslyAllowBrowser ??
10
- (client?.apiKey.startsWith('ek_') ? true : null);
11
+ (client?.apiKey?.startsWith('ek_') ? true : null);
11
12
  if (!dangerouslyAllowBrowser && isRunningInBrowser()) {
12
13
  throw new OpenAIError("It looks like you're running in a browser-like environment.\n\nThis is disabled by default, as it risks exposing your secret API credentials to attackers.\n\nYou can avoid this error by creating an ephemeral session token:\nhttps://platform.openai.com/docs/api-reference/realtime-sessions\n");
13
14
  }
14
15
  client ?? (client = new OpenAI({ dangerouslyAllowBrowser }));
16
+ if (hasProvider && !props?.__resolvedApiKey) {
17
+ throw new Error([
18
+ 'Cannot open Realtime WebSocket with a function-based apiKey.',
19
+ 'Use the .create() method so that the key is resolved before connecting:',
20
+ 'await OpenAIRealtimeWebSocket.create(client, { model })',
21
+ ].join('\n'));
22
+ }
15
23
  this.url = buildRealtimeURL(client, props.model);
16
24
  props.onURL?.(this.url);
17
25
  // @ts-ignore
@@ -53,19 +61,17 @@ export class OpenAIRealtimeWebSocket extends OpenAIRealtimeEmitter {
53
61
  }
54
62
  }
55
63
  }
64
+ static async create(client, props) {
65
+ return new OpenAIRealtimeWebSocket({ ...props, __resolvedApiKey: await client._callApiKey() }, client);
66
+ }
56
67
  static async azure(client, options = {}) {
57
- const token = await client._getAzureADToken();
68
+ const isApiKeyProvider = await client._callApiKey();
58
69
  function onURL(url) {
59
- if (client.apiKey !== '<Missing Key>') {
60
- url.searchParams.set('api-key', client.apiKey);
70
+ if (isApiKeyProvider) {
71
+ url.searchParams.set('Authorization', `Bearer ${client.apiKey}`);
61
72
  }
62
73
  else {
63
- if (token) {
64
- url.searchParams.set('Authorization', `Bearer ${token}`);
65
- }
66
- else {
67
- throw new Error('AzureOpenAI is not instantiated correctly. No API key or token provided.');
68
- }
74
+ url.searchParams.set('api-key', client.apiKey);
69
75
  }
70
76
  }
71
77
  const deploymentName = options.deploymentName ?? client.deploymentName;
@@ -77,6 +83,7 @@ export class OpenAIRealtimeWebSocket extends OpenAIRealtimeEmitter {
77
83
  model: deploymentName,
78
84
  onURL,
79
85
  ...(dangerouslyAllowBrowser ? { dangerouslyAllowBrowser } : {}),
86
+ __resolvedApiKey: isApiKeyProvider,
80
87
  }, client);
81
88
  }
82
89
  send(event) {
@@ -1 +1 @@
1
- {"version":3,"file":"websocket.mjs","sourceRoot":"","sources":["../../src/beta/realtime/websocket.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"websocket.mjs","sourceRoot":"","sources":["../../src/beta/realtime/websocket.ts"],"names":[],"mappings":"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"}
@@ -8,8 +8,13 @@ export declare class OpenAIRealtimeWS extends OpenAIRealtimeEmitter {
8
8
  constructor(props: {
9
9
  model: string;
10
10
  options?: WS.ClientOptions | undefined;
11
+ /** @internal */ __resolvedApiKey?: boolean;
11
12
  }, client?: Pick<OpenAI, 'apiKey' | 'baseURL'>);
12
- static azure(client: Pick<AzureOpenAI, '_getAzureADToken' | 'apiVersion' | 'apiKey' | 'baseURL' | 'deploymentName'>, options?: {
13
+ static create(client: Pick<OpenAI, 'apiKey' | 'baseURL' | '_callApiKey'>, props: {
14
+ model: string;
15
+ options?: WS.ClientOptions | undefined;
16
+ }): Promise<OpenAIRealtimeWS>;
17
+ static azure(client: Pick<AzureOpenAI, '_callApiKey' | 'apiVersion' | 'apiKey' | 'baseURL' | 'deploymentName'>, props?: {
13
18
  deploymentName?: string;
14
19
  options?: WS.ClientOptions | undefined;
15
20
  }): Promise<OpenAIRealtimeWS>;
@@ -1 +1 @@
1
- {"version":3,"file":"ws.d.mts","sourceRoot":"","sources":["../../src/beta/realtime/ws.ts"],"names":[],"mappings":"OAAO,KAAK,EAAE,MAAM,IAAI;OACjB,EAAE,WAAW,EAAE,MAAM,EAAE;OACvB,KAAK,EAAE,mBAAmB,EAAuB;OACjD,EAAE,qBAAqB,EAA6B;AAE3D,qBAAa,gBAAiB,SAAQ,qBAAqB;IACzD,GAAG,EAAE,GAAG,CAAC;IACT,MAAM,EAAE,EAAE,CAAC,SAAS,CAAC;gBAGnB,KAAK,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,OAAO,CAAC,EAAE,EAAE,CAAC,aAAa,GAAG,SAAS,CAAA;KAAE,EAChE,MAAM,CAAC,EAAE,IAAI,CAAC,MAAM,EAAE,QAAQ,GAAG,SAAS,CAAC;WA0ChC,KAAK,CAChB,MAAM,EAAE,IAAI,CAAC,WAAW,EAAE,kBAAkB,GAAG,YAAY,GAAG,QAAQ,GAAG,SAAS,GAAG,gBAAgB,CAAC,EACtG,OAAO,GAAE;QAAE,cAAc,CAAC,EAAE,MAAM,CAAC;QAAC,OAAO,CAAC,EAAE,EAAE,CAAC,aAAa,GAAG,SAAS,CAAA;KAAO,GAChF,OAAO,CAAC,gBAAgB,CAAC;IAW5B,IAAI,CAAC,KAAK,EAAE,mBAAmB;IAQ/B,KAAK,CAAC,KAAK,CAAC,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE;CAO/C"}
1
+ {"version":3,"file":"ws.d.mts","sourceRoot":"","sources":["../../src/beta/realtime/ws.ts"],"names":[],"mappings":"OAAO,KAAK,EAAE,MAAM,IAAI;OACjB,EAAE,WAAW,EAAE,MAAM,EAAE;OACvB,KAAK,EAAE,mBAAmB,EAAuB;OACjD,EAAE,qBAAqB,EAA6B;AAE3D,qBAAa,gBAAiB,SAAQ,qBAAqB;IACzD,GAAG,EAAE,GAAG,CAAC;IACT,MAAM,EAAE,EAAE,CAAC,SAAS,CAAC;gBAGnB,KAAK,EAAE;QACL,KAAK,EAAE,MAAM,CAAC;QACd,OAAO,CAAC,EAAE,EAAE,CAAC,aAAa,GAAG,SAAS,CAAC;QACvC,gBAAgB,CAAC,gBAAgB,CAAC,EAAE,OAAO,CAAC;KAC7C,EACD,MAAM,CAAC,EAAE,IAAI,CAAC,MAAM,EAAE,QAAQ,GAAG,SAAS,CAAC;WAmDhC,MAAM,CACjB,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,QAAQ,GAAG,SAAS,GAAG,aAAa,CAAC,EAC1D,KAAK,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,OAAO,CAAC,EAAE,EAAE,CAAC,aAAa,GAAG,SAAS,CAAA;KAAE,GAC/D,OAAO,CAAC,gBAAgB,CAAC;WAIf,KAAK,CAChB,MAAM,EAAE,IAAI,CAAC,WAAW,EAAE,aAAa,GAAG,YAAY,GAAG,QAAQ,GAAG,SAAS,GAAG,gBAAgB,CAAC,EACjG,KAAK,GAAE;QAAE,cAAc,CAAC,EAAE,MAAM,CAAC;QAAC,OAAO,CAAC,EAAE,EAAE,CAAC,aAAa,GAAG,SAAS,CAAA;KAAO,GAC9E,OAAO,CAAC,gBAAgB,CAAC;IAsB5B,IAAI,CAAC,KAAK,EAAE,mBAAmB;IAQ/B,KAAK,CAAC,KAAK,CAAC,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE;CAO/C"}
@@ -8,8 +8,13 @@ export declare class OpenAIRealtimeWS extends OpenAIRealtimeEmitter {
8
8
  constructor(props: {
9
9
  model: string;
10
10
  options?: WS.ClientOptions | undefined;
11
+ /** @internal */ __resolvedApiKey?: boolean;
11
12
  }, client?: Pick<OpenAI, 'apiKey' | 'baseURL'>);
12
- static azure(client: Pick<AzureOpenAI, '_getAzureADToken' | 'apiVersion' | 'apiKey' | 'baseURL' | 'deploymentName'>, options?: {
13
+ static create(client: Pick<OpenAI, 'apiKey' | 'baseURL' | '_callApiKey'>, props: {
14
+ model: string;
15
+ options?: WS.ClientOptions | undefined;
16
+ }): Promise<OpenAIRealtimeWS>;
17
+ static azure(client: Pick<AzureOpenAI, '_callApiKey' | 'apiVersion' | 'apiKey' | 'baseURL' | 'deploymentName'>, props?: {
13
18
  deploymentName?: string;
14
19
  options?: WS.ClientOptions | undefined;
15
20
  }): Promise<OpenAIRealtimeWS>;
@@ -1 +1 @@
1
- {"version":3,"file":"ws.d.ts","sourceRoot":"","sources":["../../src/beta/realtime/ws.ts"],"names":[],"mappings":"OAAO,KAAK,EAAE,MAAM,IAAI;OACjB,EAAE,WAAW,EAAE,MAAM,EAAE;OACvB,KAAK,EAAE,mBAAmB,EAAuB;OACjD,EAAE,qBAAqB,EAA6B;AAE3D,qBAAa,gBAAiB,SAAQ,qBAAqB;IACzD,GAAG,EAAE,GAAG,CAAC;IACT,MAAM,EAAE,EAAE,CAAC,SAAS,CAAC;gBAGnB,KAAK,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,OAAO,CAAC,EAAE,EAAE,CAAC,aAAa,GAAG,SAAS,CAAA;KAAE,EAChE,MAAM,CAAC,EAAE,IAAI,CAAC,MAAM,EAAE,QAAQ,GAAG,SAAS,CAAC;WA0ChC,KAAK,CAChB,MAAM,EAAE,IAAI,CAAC,WAAW,EAAE,kBAAkB,GAAG,YAAY,GAAG,QAAQ,GAAG,SAAS,GAAG,gBAAgB,CAAC,EACtG,OAAO,GAAE;QAAE,cAAc,CAAC,EAAE,MAAM,CAAC;QAAC,OAAO,CAAC,EAAE,EAAE,CAAC,aAAa,GAAG,SAAS,CAAA;KAAO,GAChF,OAAO,CAAC,gBAAgB,CAAC;IAW5B,IAAI,CAAC,KAAK,EAAE,mBAAmB;IAQ/B,KAAK,CAAC,KAAK,CAAC,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE;CAO/C"}
1
+ {"version":3,"file":"ws.d.ts","sourceRoot":"","sources":["../../src/beta/realtime/ws.ts"],"names":[],"mappings":"OAAO,KAAK,EAAE,MAAM,IAAI;OACjB,EAAE,WAAW,EAAE,MAAM,EAAE;OACvB,KAAK,EAAE,mBAAmB,EAAuB;OACjD,EAAE,qBAAqB,EAA6B;AAE3D,qBAAa,gBAAiB,SAAQ,qBAAqB;IACzD,GAAG,EAAE,GAAG,CAAC;IACT,MAAM,EAAE,EAAE,CAAC,SAAS,CAAC;gBAGnB,KAAK,EAAE;QACL,KAAK,EAAE,MAAM,CAAC;QACd,OAAO,CAAC,EAAE,EAAE,CAAC,aAAa,GAAG,SAAS,CAAC;QACvC,gBAAgB,CAAC,gBAAgB,CAAC,EAAE,OAAO,CAAC;KAC7C,EACD,MAAM,CAAC,EAAE,IAAI,CAAC,MAAM,EAAE,QAAQ,GAAG,SAAS,CAAC;WAmDhC,MAAM,CACjB,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,QAAQ,GAAG,SAAS,GAAG,aAAa,CAAC,EAC1D,KAAK,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,OAAO,CAAC,EAAE,EAAE,CAAC,aAAa,GAAG,SAAS,CAAA;KAAE,GAC/D,OAAO,CAAC,gBAAgB,CAAC;WAIf,KAAK,CAChB,MAAM,EAAE,IAAI,CAAC,WAAW,EAAE,aAAa,GAAG,YAAY,GAAG,QAAQ,GAAG,SAAS,GAAG,gBAAgB,CAAC,EACjG,KAAK,GAAE;QAAE,cAAc,CAAC,EAAE,MAAM,CAAC;QAAC,OAAO,CAAC,EAAE,EAAE,CAAC,aAAa,GAAG,SAAS,CAAA;KAAO,GAC9E,OAAO,CAAC,gBAAgB,CAAC;IAsB5B,IAAI,CAAC,KAAK,EAAE,mBAAmB;IAQ/B,KAAK,CAAC,KAAK,CAAC,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE;CAO/C"}
@@ -9,12 +9,20 @@ class OpenAIRealtimeWS extends internal_base_1.OpenAIRealtimeEmitter {
9
9
  constructor(props, client) {
10
10
  super();
11
11
  client ?? (client = new index_1.OpenAI());
12
+ const hasProvider = typeof client?._options?.apiKey === 'function';
13
+ if (hasProvider && !props.__resolvedApiKey) {
14
+ throw new Error([
15
+ 'Cannot open Realtime WebSocket with a function-based apiKey.',
16
+ 'Use the .create() method so that the key is resolved before connecting:',
17
+ 'await OpenAIRealtimeWS.create(client, { model })',
18
+ ].join('\n'));
19
+ }
12
20
  this.url = (0, internal_base_1.buildRealtimeURL)(client, props.model);
13
21
  this.socket = new WS.WebSocket(this.url, {
14
22
  ...props.options,
15
23
  headers: {
16
24
  ...props.options?.headers,
17
- ...((0, internal_base_1.isAzure)(client) ? {} : { Authorization: `Bearer ${client.apiKey}` }),
25
+ ...((0, internal_base_1.isAzure)(client) && !props.__resolvedApiKey ? {} : { Authorization: `Bearer ${client.apiKey}` }),
18
26
  'OpenAI-Beta': 'realtime=v1',
19
27
  },
20
28
  });
@@ -43,12 +51,26 @@ class OpenAIRealtimeWS extends internal_base_1.OpenAIRealtimeEmitter {
43
51
  this._onError(null, err.message, err);
44
52
  });
45
53
  }
46
- static async azure(client, options = {}) {
47
- const deploymentName = options.deploymentName ?? client.deploymentName;
54
+ static async create(client, props) {
55
+ return new OpenAIRealtimeWS({ ...props, __resolvedApiKey: await client._callApiKey() }, client);
56
+ }
57
+ static async azure(client, props = {}) {
58
+ const isApiKeyProvider = await client._callApiKey();
59
+ const deploymentName = props.deploymentName ?? client.deploymentName;
48
60
  if (!deploymentName) {
49
61
  throw new Error('No deployment name provided');
50
62
  }
51
- return new OpenAIRealtimeWS({ model: deploymentName, options: { headers: await getAzureHeaders(client) } }, client);
63
+ return new OpenAIRealtimeWS({
64
+ model: deploymentName,
65
+ options: {
66
+ ...props.options,
67
+ headers: {
68
+ ...props.options?.headers,
69
+ ...(isApiKeyProvider ? {} : { 'api-key': client.apiKey }),
70
+ },
71
+ },
72
+ __resolvedApiKey: isApiKeyProvider,
73
+ }, client);
52
74
  }
53
75
  send(event) {
54
76
  try {
@@ -68,18 +90,4 @@ class OpenAIRealtimeWS extends internal_base_1.OpenAIRealtimeEmitter {
68
90
  }
69
91
  }
70
92
  exports.OpenAIRealtimeWS = OpenAIRealtimeWS;
71
- async function getAzureHeaders(client) {
72
- if (client.apiKey !== '<Missing Key>') {
73
- return { 'api-key': client.apiKey };
74
- }
75
- else {
76
- const token = await client._getAzureADToken();
77
- if (token) {
78
- return { Authorization: `Bearer ${token}` };
79
- }
80
- else {
81
- throw new Error('AzureOpenAI is not instantiated correctly. No API key or token provided.');
82
- }
83
- }
84
- }
85
93
  //# sourceMappingURL=ws.js.map