openai 7.10.0 → 7.12.1

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 (421) hide show
  1. package/CHANGELOG.md +196 -0
  2. package/README.md +7 -5
  3. package/_vendor/partial-json-parser/parser.d.mts.map +1 -1
  4. package/_vendor/partial-json-parser/parser.d.ts.map +1 -1
  5. package/_vendor/partial-json-parser/parser.js +4 -3
  6. package/_vendor/partial-json-parser/parser.js.map +1 -1
  7. package/_vendor/partial-json-parser/parser.mjs +4 -3
  8. package/_vendor/partial-json-parser/parser.mjs.map +1 -1
  9. package/_vendor/zod-to-json-schema/parsers/string.js +1 -1
  10. package/_vendor/zod-to-json-schema/parsers/string.js.map +1 -1
  11. package/_vendor/zod-to-json-schema/parsers/string.mjs +1 -1
  12. package/_vendor/zod-to-json-schema/parsers/string.mjs.map +1 -1
  13. package/_vendor/zod-to-json-schema/parsers/tuple.d.mts.map +1 -1
  14. package/_vendor/zod-to-json-schema/parsers/tuple.d.ts.map +1 -1
  15. package/_vendor/zod-to-json-schema/parsers/tuple.js +19 -12
  16. package/_vendor/zod-to-json-schema/parsers/tuple.js.map +1 -1
  17. package/_vendor/zod-to-json-schema/parsers/tuple.mjs +19 -12
  18. package/_vendor/zod-to-json-schema/parsers/tuple.mjs.map +1 -1
  19. package/_vendor/zod-to-json-schema/zodToJsonSchema.d.mts.map +1 -1
  20. package/_vendor/zod-to-json-schema/zodToJsonSchema.d.ts.map +1 -1
  21. package/_vendor/zod-to-json-schema/zodToJsonSchema.js +6 -2
  22. package/_vendor/zod-to-json-schema/zodToJsonSchema.js.map +1 -1
  23. package/_vendor/zod-to-json-schema/zodToJsonSchema.mjs +6 -2
  24. package/_vendor/zod-to-json-schema/zodToJsonSchema.mjs.map +1 -1
  25. package/auth/subject-token-providers.d.mts.map +1 -1
  26. package/auth/subject-token-providers.d.ts.map +1 -1
  27. package/auth/subject-token-providers.js +10 -5
  28. package/auth/subject-token-providers.js.map +1 -1
  29. package/auth/subject-token-providers.mjs +10 -5
  30. package/auth/subject-token-providers.mjs.map +1 -1
  31. package/auth/workload-identity-auth.d.mts.map +1 -1
  32. package/auth/workload-identity-auth.d.ts.map +1 -1
  33. package/auth/workload-identity-auth.js +21 -11
  34. package/auth/workload-identity-auth.js.map +1 -1
  35. package/auth/workload-identity-auth.mjs +21 -11
  36. package/auth/workload-identity-auth.mjs.map +1 -1
  37. package/azure.d.mts.map +1 -1
  38. package/azure.d.ts.map +1 -1
  39. package/azure.js +31 -2
  40. package/azure.js.map +1 -1
  41. package/azure.mjs +32 -3
  42. package/azure.mjs.map +1 -1
  43. package/beta/realtime/internal-base.d.mts.map +1 -1
  44. package/beta/realtime/internal-base.d.ts.map +1 -1
  45. package/beta/realtime/internal-base.js +3 -2
  46. package/beta/realtime/internal-base.js.map +1 -1
  47. package/beta/realtime/internal-base.mjs +3 -2
  48. package/beta/realtime/internal-base.mjs.map +1 -1
  49. package/beta/realtime/websocket.d.mts +2 -0
  50. package/beta/realtime/websocket.d.mts.map +1 -1
  51. package/beta/realtime/websocket.d.ts +2 -0
  52. package/beta/realtime/websocket.d.ts.map +1 -1
  53. package/beta/realtime/websocket.js +12 -7
  54. package/beta/realtime/websocket.js.map +1 -1
  55. package/beta/realtime/websocket.mjs +12 -7
  56. package/beta/realtime/websocket.mjs.map +1 -1
  57. package/beta/realtime/ws.d.mts +2 -0
  58. package/beta/realtime/ws.d.mts.map +1 -1
  59. package/beta/realtime/ws.d.ts +2 -0
  60. package/beta/realtime/ws.d.ts.map +1 -1
  61. package/beta/realtime/ws.js +7 -5
  62. package/beta/realtime/ws.js.map +1 -1
  63. package/beta/realtime/ws.mjs +7 -5
  64. package/beta/realtime/ws.mjs.map +1 -1
  65. package/client.d.mts +9 -1
  66. package/client.d.mts.map +1 -1
  67. package/client.d.ts +9 -1
  68. package/client.d.ts.map +1 -1
  69. package/client.js +17 -4
  70. package/client.js.map +1 -1
  71. package/client.mjs +17 -4
  72. package/client.mjs.map +1 -1
  73. package/core/EventEmitter.d.mts +2 -1
  74. package/core/EventEmitter.d.mts.map +1 -1
  75. package/core/EventEmitter.d.ts +2 -1
  76. package/core/EventEmitter.d.ts.map +1 -1
  77. package/core/EventEmitter.js +2 -1
  78. package/core/EventEmitter.js.map +1 -1
  79. package/core/EventEmitter.mjs +2 -1
  80. package/core/EventEmitter.mjs.map +1 -1
  81. package/core/pagination.js +1 -1
  82. package/core/pagination.js.map +1 -1
  83. package/core/pagination.mjs +1 -1
  84. package/core/pagination.mjs.map +1 -1
  85. package/core/streaming.d.mts +8 -0
  86. package/core/streaming.d.mts.map +1 -1
  87. package/core/streaming.d.ts +8 -0
  88. package/core/streaming.d.ts.map +1 -1
  89. package/core/streaming.js +68 -15
  90. package/core/streaming.js.map +1 -1
  91. package/core/streaming.mjs +68 -15
  92. package/core/streaming.mjs.map +1 -1
  93. package/helpers/audio.d.mts +1 -1
  94. package/helpers/audio.d.mts.map +1 -1
  95. package/helpers/audio.d.ts +1 -1
  96. package/helpers/audio.d.ts.map +1 -1
  97. package/helpers/audio.js +25 -5
  98. package/helpers/audio.js.map +1 -1
  99. package/helpers/audio.mjs +25 -5
  100. package/helpers/audio.mjs.map +1 -1
  101. package/helpers/zod.d.mts +28 -15
  102. package/helpers/zod.d.mts.map +1 -1
  103. package/helpers/zod.d.ts +28 -15
  104. package/helpers/zod.d.ts.map +1 -1
  105. package/helpers/zod.js +30 -23
  106. package/helpers/zod.js.map +1 -1
  107. package/helpers/zod.mjs +30 -23
  108. package/helpers/zod.mjs.map +1 -1
  109. package/index.js +4 -5
  110. package/internal/bedrock.d.mts +11 -0
  111. package/internal/bedrock.d.mts.map +1 -1
  112. package/internal/bedrock.d.ts +11 -0
  113. package/internal/bedrock.d.ts.map +1 -1
  114. package/internal/bedrock.js +71 -55
  115. package/internal/bedrock.js.map +1 -1
  116. package/internal/bedrock.mjs +70 -55
  117. package/internal/bedrock.mjs.map +1 -1
  118. package/internal/detect-platform.js +2 -2
  119. package/internal/detect-platform.js.map +1 -1
  120. package/internal/detect-platform.mjs +2 -2
  121. package/internal/detect-platform.mjs.map +1 -1
  122. package/internal/errors.d.mts.map +1 -1
  123. package/internal/errors.d.ts.map +1 -1
  124. package/internal/errors.js +3 -2
  125. package/internal/errors.js.map +1 -1
  126. package/internal/errors.mjs +3 -2
  127. package/internal/errors.mjs.map +1 -1
  128. package/internal/headers.d.mts.map +1 -1
  129. package/internal/headers.d.ts.map +1 -1
  130. package/internal/headers.js +4 -5
  131. package/internal/headers.js.map +1 -1
  132. package/internal/headers.mjs +4 -5
  133. package/internal/headers.mjs.map +1 -1
  134. package/internal/parse.js +1 -1
  135. package/internal/parse.js.map +1 -1
  136. package/internal/parse.mjs +1 -1
  137. package/internal/parse.mjs.map +1 -1
  138. package/internal/realtime-credentials.d.mts +15 -0
  139. package/internal/realtime-credentials.d.mts.map +1 -0
  140. package/internal/realtime-credentials.d.ts +15 -0
  141. package/internal/realtime-credentials.d.ts.map +1 -0
  142. package/internal/realtime-credentials.js +23 -0
  143. package/internal/realtime-credentials.js.map +1 -0
  144. package/internal/realtime-credentials.mjs +19 -0
  145. package/internal/realtime-credentials.mjs.map +1 -0
  146. package/internal/responses/response-accumulator.d.mts.map +1 -1
  147. package/internal/responses/response-accumulator.d.ts.map +1 -1
  148. package/internal/responses/response-accumulator.js +2 -1
  149. package/internal/responses/response-accumulator.js.map +1 -1
  150. package/internal/responses/response-accumulator.mjs +2 -1
  151. package/internal/responses/response-accumulator.mjs.map +1 -1
  152. package/internal/to-file.d.mts +2 -1
  153. package/internal/to-file.d.mts.map +1 -1
  154. package/internal/to-file.d.ts +2 -1
  155. package/internal/to-file.d.ts.map +1 -1
  156. package/internal/to-file.js +5 -4
  157. package/internal/to-file.js.map +1 -1
  158. package/internal/to-file.mjs +6 -5
  159. package/internal/to-file.mjs.map +1 -1
  160. package/internal/types.d.mts +3 -3
  161. package/internal/types.d.mts.map +1 -1
  162. package/internal/types.d.ts +3 -3
  163. package/internal/types.d.ts.map +1 -1
  164. package/internal/uploads.d.mts +2 -0
  165. package/internal/uploads.d.mts.map +1 -1
  166. package/internal/uploads.d.ts +2 -0
  167. package/internal/uploads.d.ts.map +1 -1
  168. package/internal/uploads.js +12 -1
  169. package/internal/uploads.js.map +1 -1
  170. package/internal/uploads.mjs +11 -1
  171. package/internal/uploads.mjs.map +1 -1
  172. package/internal/utils/base64.d.mts.map +1 -1
  173. package/internal/utils/base64.d.ts.map +1 -1
  174. package/internal/utils/base64.js +3 -0
  175. package/internal/utils/base64.js.map +1 -1
  176. package/internal/utils/base64.mjs +3 -0
  177. package/internal/utils/base64.mjs.map +1 -1
  178. package/lib/AbstractChatCompletionRunner.d.mts +1 -1
  179. package/lib/AbstractChatCompletionRunner.d.mts.map +1 -1
  180. package/lib/AbstractChatCompletionRunner.d.ts +1 -1
  181. package/lib/AbstractChatCompletionRunner.d.ts.map +1 -1
  182. package/lib/AbstractChatCompletionRunner.js +31 -9
  183. package/lib/AbstractChatCompletionRunner.js.map +1 -1
  184. package/lib/AbstractChatCompletionRunner.mjs +31 -9
  185. package/lib/AbstractChatCompletionRunner.mjs.map +1 -1
  186. package/lib/AssistantStream.d.mts +4 -1
  187. package/lib/AssistantStream.d.mts.map +1 -1
  188. package/lib/AssistantStream.d.ts +4 -1
  189. package/lib/AssistantStream.d.ts.map +1 -1
  190. package/lib/AssistantStream.js +23 -8
  191. package/lib/AssistantStream.js.map +1 -1
  192. package/lib/AssistantStream.mjs +24 -9
  193. package/lib/AssistantStream.mjs.map +1 -1
  194. package/lib/ChatCompletionRunner.d.mts +6 -3
  195. package/lib/ChatCompletionRunner.d.mts.map +1 -1
  196. package/lib/ChatCompletionRunner.d.ts +6 -3
  197. package/lib/ChatCompletionRunner.d.ts.map +1 -1
  198. package/lib/ChatCompletionRunner.js +7 -4
  199. package/lib/ChatCompletionRunner.js.map +1 -1
  200. package/lib/ChatCompletionRunner.mjs +7 -4
  201. package/lib/ChatCompletionRunner.mjs.map +1 -1
  202. package/lib/ChatCompletionStream.d.mts.map +1 -1
  203. package/lib/ChatCompletionStream.d.ts.map +1 -1
  204. package/lib/ChatCompletionStream.js +6 -0
  205. package/lib/ChatCompletionStream.js.map +1 -1
  206. package/lib/ChatCompletionStream.mjs +7 -1
  207. package/lib/ChatCompletionStream.mjs.map +1 -1
  208. package/lib/ChatCompletionStreamingRunner.d.mts.map +1 -1
  209. package/lib/ChatCompletionStreamingRunner.d.ts.map +1 -1
  210. package/lib/ChatCompletionStreamingRunner.js +1 -0
  211. package/lib/ChatCompletionStreamingRunner.js.map +1 -1
  212. package/lib/ChatCompletionStreamingRunner.mjs +1 -0
  213. package/lib/ChatCompletionStreamingRunner.mjs.map +1 -1
  214. package/lib/EventEmitter.d.mts +3 -1
  215. package/lib/EventEmitter.d.mts.map +1 -1
  216. package/lib/EventEmitter.d.ts +3 -1
  217. package/lib/EventEmitter.d.ts.map +1 -1
  218. package/lib/EventEmitter.js +2 -1
  219. package/lib/EventEmitter.js.map +1 -1
  220. package/lib/EventEmitter.mjs +2 -1
  221. package/lib/EventEmitter.mjs.map +1 -1
  222. package/lib/EventStream.d.mts +2 -1
  223. package/lib/EventStream.d.mts.map +1 -1
  224. package/lib/EventStream.d.ts +2 -1
  225. package/lib/EventStream.d.ts.map +1 -1
  226. package/lib/EventStream.js +99 -46
  227. package/lib/EventStream.js.map +1 -1
  228. package/lib/EventStream.mjs +99 -46
  229. package/lib/EventStream.mjs.map +1 -1
  230. package/lib/ResponsesParser.d.mts +5 -4
  231. package/lib/ResponsesParser.d.mts.map +1 -1
  232. package/lib/ResponsesParser.d.ts +5 -4
  233. package/lib/ResponsesParser.d.ts.map +1 -1
  234. package/lib/ResponsesParser.js +21 -7
  235. package/lib/ResponsesParser.js.map +1 -1
  236. package/lib/ResponsesParser.mjs +21 -7
  237. package/lib/ResponsesParser.mjs.map +1 -1
  238. package/lib/RunnableFunction.d.mts +2 -2
  239. package/lib/RunnableFunction.d.mts.map +1 -1
  240. package/lib/RunnableFunction.d.ts +2 -2
  241. package/lib/RunnableFunction.d.ts.map +1 -1
  242. package/lib/embeddings.d.mts.map +1 -1
  243. package/lib/embeddings.d.ts.map +1 -1
  244. package/lib/embeddings.js +18 -12
  245. package/lib/embeddings.js.map +1 -1
  246. package/lib/embeddings.mjs +18 -12
  247. package/lib/embeddings.mjs.map +1 -1
  248. package/lib/file-processing.d.mts +3 -2
  249. package/lib/file-processing.d.mts.map +1 -1
  250. package/lib/file-processing.d.ts +3 -2
  251. package/lib/file-processing.d.ts.map +1 -1
  252. package/lib/file-processing.js +5 -4
  253. package/lib/file-processing.js.map +1 -1
  254. package/lib/file-processing.mjs +5 -4
  255. package/lib/file-processing.mjs.map +1 -1
  256. package/lib/parser.d.mts +16 -4
  257. package/lib/parser.d.mts.map +1 -1
  258. package/lib/parser.d.ts +16 -4
  259. package/lib/parser.d.ts.map +1 -1
  260. package/lib/parser.js +1 -1
  261. package/lib/parser.js.map +1 -1
  262. package/lib/parser.mjs +1 -1
  263. package/lib/parser.mjs.map +1 -1
  264. package/lib/polling.d.mts +2 -2
  265. package/lib/polling.d.mts.map +1 -1
  266. package/lib/polling.d.ts +2 -2
  267. package/lib/polling.d.ts.map +1 -1
  268. package/lib/polling.js +5 -4
  269. package/lib/polling.js.map +1 -1
  270. package/lib/polling.mjs +5 -4
  271. package/lib/polling.mjs.map +1 -1
  272. package/lib/responses/EventTypes.d.mts +2 -2
  273. package/lib/responses/EventTypes.d.mts.map +1 -1
  274. package/lib/responses/EventTypes.d.ts +2 -2
  275. package/lib/responses/EventTypes.d.ts.map +1 -1
  276. package/lib/responses/ResponseInputItems.d.mts +3 -2
  277. package/lib/responses/ResponseInputItems.d.mts.map +1 -1
  278. package/lib/responses/ResponseInputItems.d.ts +3 -2
  279. package/lib/responses/ResponseInputItems.d.ts.map +1 -1
  280. package/lib/responses/ResponseInputItems.js +27 -4
  281. package/lib/responses/ResponseInputItems.js.map +1 -1
  282. package/lib/responses/ResponseInputItems.mjs +27 -4
  283. package/lib/responses/ResponseInputItems.mjs.map +1 -1
  284. package/lib/transform.d.mts.map +1 -1
  285. package/lib/transform.d.ts.map +1 -1
  286. package/lib/transform.js +1 -0
  287. package/lib/transform.js.map +1 -1
  288. package/lib/transform.mjs +1 -0
  289. package/lib/transform.mjs.map +1 -1
  290. package/lib/vector-store-polling.d.mts +2 -2
  291. package/lib/vector-store-polling.d.ts +2 -2
  292. package/lib/vector-store-polling.js +3 -3
  293. package/lib/vector-store-polling.js.map +1 -1
  294. package/lib/vector-store-polling.mjs +3 -3
  295. package/lib/vector-store-polling.mjs.map +1 -1
  296. package/lib/vector-store-upload.d.mts +2 -1
  297. package/lib/vector-store-upload.d.mts.map +1 -1
  298. package/lib/vector-store-upload.d.ts +2 -1
  299. package/lib/vector-store-upload.d.ts.map +1 -1
  300. package/lib/vector-store-upload.js +5 -1
  301. package/lib/vector-store-upload.js.map +1 -1
  302. package/lib/vector-store-upload.mjs +5 -1
  303. package/lib/vector-store-upload.mjs.map +1 -1
  304. package/package.json +1 -1
  305. package/providers/bedrock/aws.d.mts.map +1 -1
  306. package/providers/bedrock/aws.d.ts.map +1 -1
  307. package/providers/bedrock/aws.js +14 -16
  308. package/providers/bedrock/aws.js.map +1 -1
  309. package/providers/bedrock/aws.mjs +15 -17
  310. package/providers/bedrock/aws.mjs.map +1 -1
  311. package/realtime/internal-base.d.mts.map +1 -1
  312. package/realtime/internal-base.d.ts.map +1 -1
  313. package/realtime/internal-base.js +3 -5
  314. package/realtime/internal-base.js.map +1 -1
  315. package/realtime/internal-base.mjs +3 -5
  316. package/realtime/internal-base.mjs.map +1 -1
  317. package/realtime/websocket.d.mts +2 -0
  318. package/realtime/websocket.d.mts.map +1 -1
  319. package/realtime/websocket.d.ts +2 -0
  320. package/realtime/websocket.d.ts.map +1 -1
  321. package/realtime/websocket.js +12 -6
  322. package/realtime/websocket.js.map +1 -1
  323. package/realtime/websocket.mjs +12 -6
  324. package/realtime/websocket.mjs.map +1 -1
  325. package/realtime/ws.d.mts +2 -0
  326. package/realtime/ws.d.mts.map +1 -1
  327. package/realtime/ws.d.ts +2 -0
  328. package/realtime/ws.d.ts.map +1 -1
  329. package/realtime/ws.js +7 -4
  330. package/realtime/ws.js.map +1 -1
  331. package/realtime/ws.mjs +7 -4
  332. package/realtime/ws.mjs.map +1 -1
  333. package/resources/admin/organization/projects/service-accounts/api-keys.d.mts +9 -0
  334. package/resources/admin/organization/projects/service-accounts/api-keys.d.mts.map +1 -1
  335. package/resources/admin/organization/projects/service-accounts/api-keys.d.ts +9 -0
  336. package/resources/admin/organization/projects/service-accounts/api-keys.d.ts.map +1 -1
  337. package/resources/beta/responses/responses.d.mts +112 -33
  338. package/resources/beta/responses/responses.d.mts.map +1 -1
  339. package/resources/beta/responses/responses.d.ts +112 -33
  340. package/resources/beta/responses/responses.d.ts.map +1 -1
  341. package/resources/beta/responses/responses.js.map +1 -1
  342. package/resources/beta/responses/responses.mjs.map +1 -1
  343. package/resources/conversations/items.d.mts +9 -0
  344. package/resources/conversations/items.d.mts.map +1 -1
  345. package/resources/conversations/items.d.ts +9 -0
  346. package/resources/conversations/items.d.ts.map +1 -1
  347. package/resources/images.d.mts +73 -58
  348. package/resources/images.d.mts.map +1 -1
  349. package/resources/images.d.ts +73 -58
  350. package/resources/images.d.ts.map +1 -1
  351. package/resources/images.js.map +1 -1
  352. package/resources/images.mjs.map +1 -1
  353. package/resources/responses/responses.d.mts +112 -32
  354. package/resources/responses/responses.d.mts.map +1 -1
  355. package/resources/responses/responses.d.ts +112 -32
  356. package/resources/responses/responses.d.ts.map +1 -1
  357. package/resources/responses/responses.js.map +1 -1
  358. package/resources/responses/responses.mjs.map +1 -1
  359. package/resources/webhooks/webhooks.d.mts +6 -4
  360. package/resources/webhooks/webhooks.d.mts.map +1 -1
  361. package/resources/webhooks/webhooks.d.ts +6 -4
  362. package/resources/webhooks/webhooks.d.ts.map +1 -1
  363. package/src/_vendor/partial-json-parser/parser.ts +4 -3
  364. package/src/_vendor/zod-to-json-schema/parsers/string.ts +1 -1
  365. package/src/_vendor/zod-to-json-schema/parsers/tuple.ts +23 -16
  366. package/src/_vendor/zod-to-json-schema/zodToJsonSchema.ts +11 -6
  367. package/src/auth/subject-token-providers.ts +12 -7
  368. package/src/auth/workload-identity-auth.ts +27 -12
  369. package/src/azure.ts +34 -3
  370. package/src/beta/realtime/internal-base.ts +3 -2
  371. package/src/beta/realtime/websocket.ts +17 -7
  372. package/src/beta/realtime/ws.ts +9 -5
  373. package/src/client.ts +19 -4
  374. package/src/core/EventEmitter.ts +5 -8
  375. package/src/core/pagination.ts +1 -1
  376. package/src/core/streaming.ts +69 -13
  377. package/src/helpers/audio.ts +27 -6
  378. package/src/helpers/zod.ts +78 -29
  379. package/src/internal/bedrock.ts +84 -58
  380. package/src/internal/detect-platform.ts +2 -2
  381. package/src/internal/errors.ts +3 -2
  382. package/src/internal/headers.ts +7 -5
  383. package/src/internal/parse.ts +1 -1
  384. package/src/internal/realtime-credentials.ts +27 -0
  385. package/src/internal/responses/response-accumulator.ts +1 -0
  386. package/src/internal/to-file.ts +6 -5
  387. package/src/internal/uploads.ts +12 -1
  388. package/src/internal/utils/base64.ts +3 -0
  389. package/src/lib/AbstractChatCompletionRunner.ts +31 -6
  390. package/src/lib/AssistantStream.ts +25 -11
  391. package/src/lib/ChatCompletionRunner.ts +8 -4
  392. package/src/lib/ChatCompletionStream.ts +8 -0
  393. package/src/lib/ChatCompletionStreamingRunner.ts +1 -0
  394. package/src/lib/EventEmitter.ts +17 -8
  395. package/src/lib/EventStream.ts +105 -52
  396. package/src/lib/ResponsesParser.ts +33 -12
  397. package/src/lib/RunnableFunction.ts +2 -2
  398. package/src/lib/embeddings.ts +18 -12
  399. package/src/lib/file-processing.ts +5 -4
  400. package/src/lib/parser.ts +35 -11
  401. package/src/lib/polling.ts +5 -4
  402. package/src/lib/responses/EventTypes.ts +3 -69
  403. package/src/lib/responses/ResponseInputItems.ts +29 -4
  404. package/src/lib/transform.ts +1 -0
  405. package/src/lib/vector-store-polling.ts +3 -3
  406. package/src/lib/vector-store-upload.ts +5 -1
  407. package/src/providers/bedrock/aws.ts +23 -24
  408. package/src/realtime/internal-base.ts +3 -5
  409. package/src/realtime/websocket.ts +14 -6
  410. package/src/realtime/ws.ts +9 -4
  411. package/src/resources/admin/organization/projects/service-accounts/api-keys.ts +11 -0
  412. package/src/resources/beta/responses/responses.ts +143 -31
  413. package/src/resources/conversations/items.ts +11 -0
  414. package/src/resources/images.ts +76 -57
  415. package/src/resources/responses/responses.ts +143 -30
  416. package/src/resources/webhooks/webhooks.ts +6 -4
  417. package/src/version.ts +1 -1
  418. package/version.d.mts +1 -1
  419. package/version.d.ts +1 -1
  420. package/version.js +1 -1
  421. package/version.mjs +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"webhooks.d.ts","sourceRoot":"","sources":["../../src/resources/webhooks/webhooks.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,WAAW,EAAE,+BAA4B;AAClD,OAAO,EAAgB,WAAW,EAAE,kCAA+B;AAGnE,qBAAa,QAAS,SAAQ,WAAW;;IACvC;;OAEG;IACG,MAAM,CACV,OAAO,EAAE,MAAM,EACf,OAAO,EAAE,WAAW,EACpB,MAAM,GAAE,MAAM,GAAG,SAAS,GAAG,IAAiC,EAC9D,SAAS,GAAE,MAAY,GACtB,OAAO,CAAC,kBAAkB,CAAC;IAM9B;;;;;;;;;OASG;IACG,eAAe,CACnB,OAAO,EAAE,MAAM,EACf,OAAO,EAAE,WAAW,EACpB,MAAM,GAAE,MAAM,GAAG,SAAS,GAAG,IAAiC,EAC9D,SAAS,GAAE,MAAY,GACtB,OAAO,CAAC,IAAI,CAAC;CA4CjB;AAED;;GAEG;AACH,MAAM,WAAW,0BAA0B;IACzC;;OAEG;IACH,EAAE,EAAE,MAAM,CAAC;IAEX;;OAEG;IACH,UAAU,EAAE,MAAM,CAAC;IAEnB;;OAEG;IACH,IAAI,EAAE,0BAA0B,CAAC,IAAI,CAAC;IAEtC;;OAEG;IACH,IAAI,EAAE,iBAAiB,CAAC;IAExB;;OAEG;IACH,MAAM,CAAC,EAAE,OAAO,CAAC;CAClB;AAED,yBAAiB,0BAA0B,CAAC;IAC1C;;OAEG;IACH,UAAiB,IAAI;QACnB;;WAEG;QACH,EAAE,EAAE,MAAM,CAAC;KACZ;CACF;AAED;;GAEG;AACH,MAAM,WAAW,0BAA0B;IACzC;;OAEG;IACH,EAAE,EAAE,MAAM,CAAC;IAEX;;OAEG;IACH,UAAU,EAAE,MAAM,CAAC;IAEnB;;OAEG;IACH,IAAI,EAAE,0BAA0B,CAAC,IAAI,CAAC;IAEtC;;OAEG;IACH,IAAI,EAAE,iBAAiB,CAAC;IAExB;;OAEG;IACH,MAAM,CAAC,EAAE,OAAO,CAAC;CAClB;AAED,yBAAiB,0BAA0B,CAAC;IAC1C;;OAEG;IACH,UAAiB,IAAI;QACnB;;WAEG;QACH,EAAE,EAAE,MAAM,CAAC;KACZ;CACF;AAED;;GAEG;AACH,MAAM,WAAW,wBAAwB;IACvC;;OAEG;IACH,EAAE,EAAE,MAAM,CAAC;IAEX;;OAEG;IACH,UAAU,EAAE,MAAM,CAAC;IAEnB;;OAEG;IACH,IAAI,EAAE,wBAAwB,CAAC,IAAI,CAAC;IAEpC;;OAEG;IACH,IAAI,EAAE,eAAe,CAAC;IAEtB;;OAEG;IACH,MAAM,CAAC,EAAE,OAAO,CAAC;CAClB;AAED,yBAAiB,wBAAwB,CAAC;IACxC;;OAEG;IACH,UAAiB,IAAI;QACnB;;WAEG;QACH,EAAE,EAAE,MAAM,CAAC;KACZ;CACF;AAED;;GAEG;AACH,MAAM,WAAW,uBAAuB;IACtC;;OAEG;IACH,EAAE,EAAE,MAAM,CAAC;IAEX;;OAEG;IACH,UAAU,EAAE,MAAM,CAAC;IAEnB;;OAEG;IACH,IAAI,EAAE,uBAAuB,CAAC,IAAI,CAAC;IAEnC;;OAEG;IACH,IAAI,EAAE,cAAc,CAAC;IAErB;;OAEG;IACH,MAAM,CAAC,EAAE,OAAO,CAAC;CAClB;AAED,yBAAiB,uBAAuB,CAAC;IACvC;;OAEG;IACH,UAAiB,IAAI;QACnB;;WAEG;QACH,EAAE,EAAE,MAAM,CAAC;KACZ;CACF;AAED;;GAEG;AACH,MAAM,WAAW,2BAA2B;IAC1C;;OAEG;IACH,EAAE,EAAE,MAAM,CAAC;IAEX;;OAEG;IACH,UAAU,EAAE,MAAM,CAAC;IAEnB;;OAEG;IACH,IAAI,EAAE,2BAA2B,CAAC,IAAI,CAAC;IAEvC;;OAEG;IACH,IAAI,EAAE,mBAAmB,CAAC;IAE1B;;OAEG;IACH,MAAM,CAAC,EAAE,OAAO,CAAC;CAClB;AAED,yBAAiB,2BAA2B,CAAC;IAC3C;;OAEG;IACH,UAAiB,IAAI;QACnB;;WAEG;QACH,EAAE,EAAE,MAAM,CAAC;KACZ;CACF;AAED;;GAEG;AACH,MAAM,WAAW,yBAAyB;IACxC;;OAEG;IACH,EAAE,EAAE,MAAM,CAAC;IAEX;;OAEG;IACH,UAAU,EAAE,MAAM,CAAC;IAEnB;;OAEG;IACH,IAAI,EAAE,yBAAyB,CAAC,IAAI,CAAC;IAErC;;OAEG;IACH,IAAI,EAAE,iBAAiB,CAAC;IAExB;;OAEG;IACH,MAAM,CAAC,EAAE,OAAO,CAAC;CAClB;AAED,yBAAiB,yBAAyB,CAAC;IACzC;;OAEG;IACH,UAAiB,IAAI;QACnB;;WAEG;QACH,EAAE,EAAE,MAAM,CAAC;KACZ;CACF;AAED;;GAEG;AACH,MAAM,WAAW,4BAA4B;IAC3C;;OAEG;IACH,EAAE,EAAE,MAAM,CAAC;IAEX;;OAEG;IACH,UAAU,EAAE,MAAM,CAAC;IAEnB;;OAEG;IACH,IAAI,EAAE,4BAA4B,CAAC,IAAI,CAAC;IAExC;;OAEG;IACH,IAAI,EAAE,oBAAoB,CAAC;IAE3B;;OAEG;IACH,MAAM,CAAC,EAAE,OAAO,CAAC;CAClB;AAED,yBAAiB,4BAA4B,CAAC;IAC5C;;OAEG;IACH,UAAiB,IAAI;QACnB;;WAEG;QACH,EAAE,EAAE,MAAM,CAAC;KACZ;CACF;AAED;;GAEG;AACH,MAAM,WAAW,kCAAkC;IACjD;;OAEG;IACH,EAAE,EAAE,MAAM,CAAC;IAEX;;OAEG;IACH,UAAU,EAAE,MAAM,CAAC;IAEnB;;OAEG;IACH,IAAI,EAAE,kCAAkC,CAAC,IAAI,CAAC;IAE9C;;OAEG;IACH,IAAI,EAAE,2BAA2B,CAAC;IAElC;;OAEG;IACH,MAAM,CAAC,EAAE,OAAO,CAAC;CAClB;AAED,yBAAiB,kCAAkC,CAAC;IAClD;;OAEG;IACH,UAAiB,IAAI;QACnB;;WAEG;QACH,EAAE,EAAE,MAAM,CAAC;KACZ;CACF;AAED;;GAEG;AACH,MAAM,WAAW,+BAA+B;IAC9C;;OAEG;IACH,EAAE,EAAE,MAAM,CAAC;IAEX;;OAEG;IACH,UAAU,EAAE,MAAM,CAAC;IAEnB;;OAEG;IACH,IAAI,EAAE,+BAA+B,CAAC,IAAI,CAAC;IAE3C;;OAEG;IACH,IAAI,EAAE,wBAAwB,CAAC;IAE/B;;OAEG;IACH,MAAM,CAAC,EAAE,OAAO,CAAC;CAClB;AAED,yBAAiB,+BAA+B,CAAC;IAC/C;;OAEG;IACH,UAAiB,IAAI;QACnB;;WAEG;QACH,EAAE,EAAE,MAAM,CAAC;KACZ;CACF;AAED;;GAEG;AACH,MAAM,WAAW,kCAAkC;IACjD;;OAEG;IACH,EAAE,EAAE,MAAM,CAAC;IAEX;;OAEG;IACH,UAAU,EAAE,MAAM,CAAC;IAEnB;;OAEG;IACH,IAAI,EAAE,kCAAkC,CAAC,IAAI,CAAC;IAE9C;;OAEG;IACH,IAAI,EAAE,2BAA2B,CAAC;IAElC;;OAEG;IACH,MAAM,CAAC,EAAE,OAAO,CAAC;CAClB;AAED,yBAAiB,kCAAkC,CAAC;IAClD;;OAEG;IACH,UAAiB,IAAI;QACnB;;WAEG;QACH,EAAE,EAAE,MAAM,CAAC;KACZ;CACF;AAED;;;;GAIG;AACH,MAAM,WAAW,4BAA4B;IAC3C;;OAEG;IACH,EAAE,EAAE,MAAM,CAAC;IAEX;;OAEG;IACH,UAAU,EAAE,MAAM,CAAC;IAEnB;;OAEG;IACH,IAAI,EAAE,4BAA4B,CAAC,IAAI,CAAC;IAExC;;OAEG;IACH,IAAI,EAAE,oBAAoB,CAAC;IAE3B;;OAEG;IACH,MAAM,CAAC,EAAE,OAAO,CAAC;CAClB;AAED,yBAAiB,4BAA4B,CAAC;IAC5C;;OAEG;IACH,UAAiB,IAAI;QACnB;;;WAGG;QACH,UAAU,EAAE,MAAM,CAAC;QAEnB;;WAEG;QACH,WAAW,EAAE,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;KACpC;IAED,UAAiB,IAAI,CAAC;QACpB;;WAEG;QACH,UAAiB,SAAS;YACxB;;eAEG;YACH,IAAI,EAAE,MAAM,CAAC;YAEb;;eAEG;YACH,KAAK,EAAE,MAAM,CAAC;SACf;KACF;CACF;AAED;;;;GAIG;AACH,MAAM,WAAW,gCAAgC;IAC/C;;OAEG;IACH,EAAE,EAAE,MAAM,CAAC;IAEX;;OAEG;IACH,UAAU,EAAE,MAAM,CAAC;IAEnB;;OAEG;IACH,IAAI,EAAE,gCAAgC,CAAC,IAAI,CAAC;IAE5C;;OAEG;IACH,IAAI,EAAE,wBAAwB,CAAC;IAE/B;;OAEG;IACH,MAAM,CAAC,EAAE,OAAO,CAAC;CAClB;AAED,yBAAiB,gCAAgC,CAAC;IAChD;;OAEG;IACH,UAAiB,IAAI;QACnB;;;WAGG;QACH,OAAO,EAAE,MAAM,CAAC;QAEhB;;WAEG;QACH,WAAW,EAAE,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;KACpC;IAED,UAAiB,IAAI,CAAC;QACpB;;WAEG;QACH,UAAiB,SAAS;YACxB;;eAEG;YACH,IAAI,EAAE,MAAM,CAAC;YAEb;;eAEG;YACH,KAAK,EAAE,MAAM,CAAC;SACf;KACF;CACF;AAED;;GAEG;AACH,MAAM,WAAW,6BAA6B;IAC5C;;OAEG;IACH,EAAE,EAAE,MAAM,CAAC;IAEX;;OAEG;IACH,UAAU,EAAE,MAAM,CAAC;IAEnB;;OAEG;IACH,IAAI,EAAE,6BAA6B,CAAC,IAAI,CAAC;IAEzC;;OAEG;IACH,IAAI,EAAE,oBAAoB,CAAC;IAE3B;;OAEG;IACH,MAAM,CAAC,EAAE,OAAO,CAAC;CAClB;AAED,yBAAiB,6BAA6B,CAAC;IAC7C;;OAEG;IACH,UAAiB,IAAI;QACnB;;WAEG;QACH,EAAE,EAAE,MAAM,CAAC;KACZ;CACF;AAED;;GAEG;AACH,MAAM,WAAW,6BAA6B;IAC5C;;OAEG;IACH,EAAE,EAAE,MAAM,CAAC;IAEX;;OAEG;IACH,UAAU,EAAE,MAAM,CAAC;IAEnB;;OAEG;IACH,IAAI,EAAE,6BAA6B,CAAC,IAAI,CAAC;IAEzC;;OAEG;IACH,IAAI,EAAE,oBAAoB,CAAC;IAE3B;;OAEG;IACH,MAAM,CAAC,EAAE,OAAO,CAAC;CAClB;AAED,yBAAiB,6BAA6B,CAAC;IAC7C;;OAEG;IACH,UAAiB,IAAI;QACnB;;WAEG;QACH,EAAE,EAAE,MAAM,CAAC;KACZ;CACF;AAED;;GAEG;AACH,MAAM,WAAW,0BAA0B;IACzC;;OAEG;IACH,EAAE,EAAE,MAAM,CAAC;IAEX;;OAEG;IACH,UAAU,EAAE,MAAM,CAAC;IAEnB;;OAEG;IACH,IAAI,EAAE,0BAA0B,CAAC,IAAI,CAAC;IAEtC;;OAEG;IACH,IAAI,EAAE,iBAAiB,CAAC;IAExB;;OAEG;IACH,MAAM,CAAC,EAAE,OAAO,CAAC;CAClB;AAED,yBAAiB,0BAA0B,CAAC;IAC1C;;OAEG;IACH,UAAiB,IAAI;QACnB;;WAEG;QACH,EAAE,EAAE,MAAM,CAAC;KACZ;CACF;AAED;;GAEG;AACH,MAAM,WAAW,8BAA8B;IAC7C;;OAEG;IACH,EAAE,EAAE,MAAM,CAAC;IAEX;;OAEG;IACH,UAAU,EAAE,MAAM,CAAC;IAEnB;;OAEG;IACH,IAAI,EAAE,8BAA8B,CAAC,IAAI,CAAC;IAE1C;;OAEG;IACH,IAAI,EAAE,qBAAqB,CAAC;IAE5B;;OAEG;IACH,MAAM,CAAC,EAAE,OAAO,CAAC;CAClB;AAED,yBAAiB,8BAA8B,CAAC;IAC9C;;OAEG;IACH,UAAiB,IAAI;QACnB;;WAEG;QACH,EAAE,EAAE,MAAM,CAAC;KACZ;CACF;AAED;;GAEG;AACH,MAAM,WAAW,8BAA8B;IAC7C;;OAEG;IACH,EAAE,EAAE,MAAM,CAAC;IAEX;;OAEG;IACH,UAAU,EAAE,MAAM,CAAC;IAEnB,IAAI,EAAE,8BAA8B,CAAC,IAAI,CAAC;IAE1C;;OAEG;IACH,MAAM,EAAE,OAAO,CAAC;IAEhB;;OAEG;IACH,IAAI,EAAE,sBAAsB,CAAC;CAC9B;AAED,yBAAiB,8BAA8B,CAAC;IAC9C,UAAiB,IAAI;QACnB;;WAEG;QACH,EAAE,EAAE,MAAM,CAAC;KACZ;CACF;AAED;;GAEG;AACH,MAAM,WAAW,iCAAiC;IAChD;;OAEG;IACH,EAAE,EAAE,MAAM,CAAC;IAEX;;OAEG;IACH,UAAU,EAAE,MAAM,CAAC;IAEnB,IAAI,EAAE,iCAAiC,CAAC,IAAI,CAAC;IAE7C;;OAEG;IACH,MAAM,EAAE,OAAO,CAAC;IAEhB;;OAEG;IACH,IAAI,EAAE,0BAA0B,CAAC;CAClC;AAED,yBAAiB,iCAAiC,CAAC;IACjD,UAAiB,IAAI;QACnB;;WAEG;QACH,EAAE,EAAE,MAAM,CAAC;KACZ;CACF;AAED;;GAEG;AACH,MAAM,MAAM,kBAAkB,GAC1B,0BAA0B,GAC1B,0BAA0B,GAC1B,wBAAwB,GACxB,uBAAuB,GACvB,2BAA2B,GAC3B,yBAAyB,GACzB,4BAA4B,GAC5B,kCAAkC,GAClC,+BAA+B,GAC/B,kCAAkC,GAClC,4BAA4B,GAC5B,gCAAgC,GAChC,6BAA6B,GAC7B,6BAA6B,GAC7B,0BAA0B,GAC1B,8BAA8B,GAC9B,8BAA8B,GAC9B,iCAAiC,CAAC;AAEtC,MAAM,CAAC,OAAO,WAAW,QAAQ,CAAC;IAChC,OAAO,EACL,KAAK,0BAA0B,IAAI,0BAA0B,EAC7D,KAAK,0BAA0B,IAAI,0BAA0B,EAC7D,KAAK,wBAAwB,IAAI,wBAAwB,EACzD,KAAK,uBAAuB,IAAI,uBAAuB,EACvD,KAAK,2BAA2B,IAAI,2BAA2B,EAC/D,KAAK,yBAAyB,IAAI,yBAAyB,EAC3D,KAAK,4BAA4B,IAAI,4BAA4B,EACjE,KAAK,kCAAkC,IAAI,kCAAkC,EAC7E,KAAK,+BAA+B,IAAI,+BAA+B,EACvE,KAAK,kCAAkC,IAAI,kCAAkC,EAC7E,KAAK,4BAA4B,IAAI,4BAA4B,EACjE,KAAK,gCAAgC,IAAI,gCAAgC,EACzE,KAAK,6BAA6B,IAAI,6BAA6B,EACnE,KAAK,6BAA6B,IAAI,6BAA6B,EACnE,KAAK,0BAA0B,IAAI,0BAA0B,EAC7D,KAAK,8BAA8B,IAAI,8BAA8B,EACrE,KAAK,8BAA8B,IAAI,8BAA8B,EACrE,KAAK,iCAAiC,IAAI,iCAAiC,EAC3E,KAAK,kBAAkB,IAAI,kBAAkB,GAC9C,CAAC;CACH"}
1
+ {"version":3,"file":"webhooks.d.ts","sourceRoot":"","sources":["../../src/resources/webhooks/webhooks.ts"],"names":[],"mappings":"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"}
@@ -248,14 +248,15 @@ const _parseJSON = (jsonString: string, allow: number) => {
248
248
  markPartialJSON('Unterminated number literal');
249
249
  }
250
250
 
251
+ const number = jsonString.substring(start, index);
251
252
  try {
252
- return JSON.parse(jsonString.substring(start, index));
253
+ return JSON.parse(number);
253
254
  } catch {
254
- if (jsonString.substring(start, index) === '-' && Allow.NUM & allow) {
255
+ if (number === '-' && Allow.NUM & allow) {
255
256
  markPartialJSON("Not sure what '-' is");
256
257
  }
257
258
  try {
258
- return JSON.parse(jsonString.substring(start, jsonString.lastIndexOf('e')));
259
+ return JSON.parse(number.substring(0, number.lastIndexOf('e')));
259
260
  } catch (e) {
260
261
  throwMalformedError(String(e));
261
262
  }
@@ -410,7 +410,7 @@ const processRegExp = (regexOrFunction: RegExp | (() => RegExp), refs: Refs): st
410
410
  }
411
411
 
412
412
  try {
413
- const regexTest = new RegExp(pattern);
413
+ void new RegExp(pattern);
414
414
  } catch {
415
415
  console.warn(
416
416
  `Could not convert regex pattern at ${refs.currentPath.join(
@@ -16,6 +16,27 @@ export type JsonSchema7TupleType = {
16
16
  }
17
17
  );
18
18
 
19
+ /**
20
+ * `items` is positional and `minItems`/`maxItems` come from `def.items.length`, so the
21
+ * array has to carry one entry per declared element. A parser may legitimately return
22
+ * `undefined` -- a wrapper whose inner type produces no schema, for instance -- and
23
+ * dropping that entry shifts every later element onto the wrong index while the length
24
+ * constraints still claim the original arity, so the document accepts and rejects the
25
+ * opposite arrays from the Zod schema it was generated from.
26
+ *
27
+ * An unconstrained `{}` keeps the positions aligned and constrains nothing, which is
28
+ * what the element was already saying.
29
+ */
30
+ function parseTupleItems(items: ZodTupleItems | [], refs: Refs): JsonSchema7Type[] {
31
+ return items.map(
32
+ (x, i) =>
33
+ parseDef(x._def, {
34
+ ...refs,
35
+ currentPath: [...refs.currentPath, 'items', `${i}`],
36
+ }) ?? {},
37
+ );
38
+ }
39
+
19
40
  export function parseTupleDef(
20
41
  def: ZodTupleDef<ZodTupleItems | [], ZodTypeAny | null>,
21
42
  refs: Refs,
@@ -24,14 +45,7 @@ export function parseTupleDef(
24
45
  return {
25
46
  type: 'array',
26
47
  minItems: def.items.length,
27
- items: def.items
28
- .map((x, i) =>
29
- parseDef(x._def, {
30
- ...refs,
31
- currentPath: [...refs.currentPath, 'items', `${i}`],
32
- }),
33
- )
34
- .filter((x): x is JsonSchema7Type => x !== undefined),
48
+ items: parseTupleItems(def.items, refs),
35
49
  additionalItems: parseDef(def.rest._def, {
36
50
  ...refs,
37
51
  currentPath: [...refs.currentPath, 'additionalItems'],
@@ -42,13 +56,6 @@ export function parseTupleDef(
42
56
  type: 'array',
43
57
  minItems: def.items.length,
44
58
  maxItems: def.items.length,
45
- items: def.items
46
- .map((x, i) =>
47
- parseDef(x._def, {
48
- ...refs,
49
- currentPath: [...refs.currentPath, 'items', `${i}`],
50
- }),
51
- )
52
- .filter((x): x is JsonSchema7Type => x !== undefined),
59
+ items: parseTupleItems(def.items, refs),
53
60
  };
54
61
  }
@@ -137,12 +137,17 @@ const zodToJsonSchema = <Target extends Targets = 'jsonSchema7'>(
137
137
  }
138
138
 
139
139
  for (const [key, schema] of newDefinitions) {
140
- definitions[key] =
141
- parseDef(
142
- zodDef(schema),
143
- { ...refs, currentPath: [...refs.basePath, refs.definitionPath, key] },
144
- true,
145
- ) ?? {};
140
+ Object.defineProperty(definitions, key, {
141
+ value:
142
+ parseDef(
143
+ zodDef(schema),
144
+ { ...refs, currentPath: [...refs.basePath, refs.definitionPath, key] },
145
+ true,
146
+ ) ?? {},
147
+ enumerable: true,
148
+ configurable: true,
149
+ writable: true,
150
+ });
146
151
  processedDefinitions.add(key);
147
152
  }
148
153
  }
@@ -3,6 +3,7 @@ import type { SubjectTokenProvider } from './types';
3
3
  import type { Fetch } from '../internal/builtin-types';
4
4
  import * as Shims from '../internal/shims';
5
5
  import { SubjectTokenProviderError } from '../core/error';
6
+ import { hasOwn, isObj } from '../internal/utils/values';
6
7
 
7
8
  const DEFAULT_RESOURCE = 'https://management.azure.com/';
8
9
  const DEFAULT_AZURE_API_VERSION = '2018-02-01';
@@ -149,6 +150,14 @@ function isMalformedAzureJSONError(error: unknown): boolean {
149
150
  }
150
151
  }
151
152
 
153
+ function readAzureAccessToken(data: unknown): string {
154
+ const token = isObj(data) && hasOwn(data, 'access_token') ? data['access_token'] : undefined;
155
+ if (typeof token !== 'string' || token.trim().length === 0) {
156
+ throw new SubjectTokenProviderError("IMDS response missing 'access_token' field", 'azure-imds');
157
+ }
158
+ return token;
159
+ }
160
+
152
161
  /** Reads the UTF-8 contents of a Kubernetes service-account token file. */
153
162
  type ReadFile = (path: string) => Promise<string>;
154
163
 
@@ -316,9 +325,9 @@ export function azureManagedIdentityTokenProvider(
316
325
  );
317
326
  }
318
327
 
319
- let data: { access_token?: string };
328
+ let data: unknown;
320
329
  try {
321
- data = (await response.json()) as { access_token?: string };
330
+ data = await response.json();
322
331
  } catch (error) {
323
332
  if (isMalformedAzureJSONError(error)) {
324
333
  throw new SyntaxError('IMDS response contains invalid JSON');
@@ -326,11 +335,7 @@ export function azureManagedIdentityTokenProvider(
326
335
  throw error;
327
336
  }
328
337
 
329
- if (!data.access_token) {
330
- throw new SubjectTokenProviderError("IMDS response missing 'access_token' field", 'azure-imds');
331
- }
332
-
333
- return data.access_token;
338
+ return readAzureAccessToken(data);
334
339
  } catch (error) {
335
340
  if (error instanceof SubjectTokenProviderError) {
336
341
  throw error;
@@ -19,13 +19,34 @@ const TOKEN_EXCHANGE_GRANT_TYPE = 'urn:ietf:params:oauth:grant-type:token-exchan
19
19
  // workload-identity path, so short-lived tokens keep a usable cache window.
20
20
  const MAX_REFRESH_BUFFER_FRACTION = 0.5;
21
21
 
22
+ function calculateExpiresAt(expiresIn: unknown, exchangeStartedAt: number): number {
23
+ if (typeof expiresIn !== 'number' || !Number.isFinite(expiresIn) || expiresIn <= 0) {
24
+ throw new OpenAIError("Token exchange response has invalid 'expires_in' field");
25
+ }
26
+
27
+ const now = Date.now();
28
+ const fullLifetimeDeadline = now + expiresIn * 1000;
29
+ if (!Number.isSafeInteger(fullLifetimeDeadline) || fullLifetimeDeadline <= now) {
30
+ throw new OpenAIError("Token exchange response has invalid 'expires_in' field");
31
+ }
32
+ const expiresAt = fullLifetimeDeadline - (performance.now() - exchangeStartedAt);
33
+ if (expiresAt <= now) {
34
+ throw new OpenAIError('Workload identity token expired before its exchange completed.');
35
+ }
36
+
37
+ return expiresAt;
38
+ }
39
+
22
40
  function calculateRefreshAt(
23
41
  expiresAt: number,
24
- now: number,
42
+ lifetimeSeconds: number,
25
43
  refreshBufferSeconds: number | undefined,
26
44
  ): number {
27
45
  const configuredBufferMs = (refreshBufferSeconds ?? 1200) * 1000;
28
- const effectiveBufferMs = Math.min(configuredBufferMs, (expiresAt - now) * MAX_REFRESH_BUFFER_FRACTION);
46
+ const effectiveBufferMs = Math.min(
47
+ configuredBufferMs,
48
+ lifetimeSeconds * 1000 * MAX_REFRESH_BUFFER_FRACTION,
49
+ );
29
50
  return expiresAt - effectiveBufferMs;
30
51
  }
31
52
 
@@ -217,6 +238,8 @@ export class WorkloadIdentityAuth {
217
238
  body['client_id'] = this.config.clientId;
218
239
  }
219
240
 
241
+ // Exclude provider acquisition and measure delivery time independently of wall-clock changes.
242
+ const exchangeStartedAt = performance.now();
220
243
  const response = await this.fetch(this.tokenExchangeUrl, {
221
244
  method: 'POST',
222
245
  headers: {
@@ -261,21 +284,13 @@ export class WorkloadIdentityAuth {
261
284
  }
262
285
 
263
286
  const expiresIn = (tokenResponse as Partial<TokenExchangeResponse>).expires_in ?? 3600;
264
- if (typeof expiresIn !== 'number' || !Number.isFinite(expiresIn) || expiresIn <= 0) {
265
- throw new OpenAIError("Token exchange response has invalid 'expires_in' field");
266
- }
267
-
268
- const now = Date.now();
269
- const expiresAt = now + expiresIn * 1000;
270
- if (!Number.isSafeInteger(expiresAt) || expiresAt <= now) {
271
- throw new OpenAIError("Token exchange response has invalid 'expires_in' field");
272
- }
287
+ const expiresAt = calculateExpiresAt(expiresIn, exchangeStartedAt);
273
288
 
274
289
  if (this.tokenGeneration === generation) {
275
290
  this.cachedToken = {
276
291
  token: accessToken,
277
292
  expiresAt,
278
- refreshAt: calculateRefreshAt(expiresAt, now, this.config.refreshBufferSeconds),
293
+ refreshAt: calculateRefreshAt(expiresAt, expiresIn, this.config.refreshBufferSeconds),
279
294
  };
280
295
  }
281
296
 
package/src/azure.ts CHANGED
@@ -3,7 +3,7 @@ import type { NullableHeaders } from './internal/headers';
3
3
  import { buildHeaders } from './internal/headers';
4
4
  import * as Errors from './error';
5
5
  import type { FinalRequestOptions } from './internal/request-options';
6
- import { isObj, readEnv } from './internal/utils';
6
+ import { hasOwn, isObj, readEnv } from './internal/utils';
7
7
  import { path } from './internal/utils/path';
8
8
  import { OpenAI } from './client';
9
9
  import type { ClientOptions } from './client';
@@ -152,7 +152,23 @@ export class AzureOpenAI extends OpenAI {
152
152
 
153
153
  /** Clones this client with Azure options; OpenAI data residency remains unsupported. */
154
154
  override withOptions(options: Partial<AzureClientOptions>): this {
155
- return super.withOptions(options);
155
+ // `OpenAI.withOptions` rebuilds the clone from `this._options`, which never holds the
156
+ // Azure-only construction options, so they are re-injected here the same way the Bedrock
157
+ // client re-injects its own subclass-only field.
158
+ const azureOptions: Partial<AzureClientOptions> = {
159
+ apiVersion: this.apiVersion,
160
+ deployment: this.deploymentName,
161
+ ...options,
162
+ };
163
+
164
+ // The inherited base URL is always carried into the clone, so an `endpoint` override would
165
+ // otherwise collide with it; let the endpoint rebuild the base URL instead. Both tests read
166
+ // own properties, so an option bag that passed neither field keeps the inherited base URL.
167
+ if (hasOwn(options, 'endpoint') && options.endpoint !== undefined && !hasOwn(options, 'baseURL')) {
168
+ azureOptions.baseURL = undefined;
169
+ }
170
+
171
+ return super.withOptions(azureOptions);
156
172
  }
157
173
 
158
174
  /** Builds an Azure request and inserts its deployment into model-scoped endpoint paths. */
@@ -178,7 +194,7 @@ export class AzureOpenAI extends OpenAI {
178
194
  throw new Error('Expected request body to be an object');
179
195
  }
180
196
  const model = this.deploymentName || options.body['model'] || options.__metadata?.['model'];
181
- if (model !== undefined && !this.baseURL.includes('/deployments')) {
197
+ if (model !== undefined && !hasDeploymentPathSegment(this.baseURL)) {
182
198
  options.path = path`/deployments/${model}` + options.path;
183
199
  }
184
200
  }
@@ -215,6 +231,21 @@ export class AzureOpenAI extends OpenAI {
215
231
  }
216
232
  }
217
233
 
234
+ /**
235
+ * Reports whether the base URL already routes through a `/deployments` path segment, so the
236
+ * deployment must not be inserted again. A substring test would also match an unrelated segment
237
+ * such as `/deployments-proxy/`, or a host like `deployments.example.com`.
238
+ */
239
+ function hasDeploymentPathSegment(baseURL: string): boolean {
240
+ try {
241
+ return new URL(baseURL).pathname.split('/').includes('deployments');
242
+ } catch {
243
+ // A base URL that is not an absolute URL has no path segments to read. Report none, the way
244
+ // the previous substring test did, and let joining the request path reject it as it did before.
245
+ return false;
246
+ }
247
+ }
248
+
218
249
  const _deployments_endpoints = new Set([
219
250
  '/completions',
220
251
  '/chat/completions',
@@ -186,8 +186,9 @@ export function buildRealtimeURL(
186
186
  const hasModel = !!config.model;
187
187
  const hasCallID = !!config.callID;
188
188
 
189
- const path = '/realtime';
190
- const url = new URL(baseURL + (baseURL.endsWith('/') ? path.slice(1) : path));
189
+ const url = new URL(baseURL);
190
+ url.pathname += url.pathname.endsWith('/') ? 'realtime' : '/realtime';
191
+ url.hash = '';
191
192
 
192
193
  if (hasModel === hasCallID) {
193
194
  throw new Error('Pass exactly one of `model` or `callID` when opening a Realtime WebSocket.');
@@ -1,3 +1,4 @@
1
+ import { getRealtimeAPIKey, resolveRealtimeAPIKey } from '../../internal/realtime-credentials';
1
2
  import type { AzureOpenAI } from '../../index';
2
3
  import { assertBedrockWebSocketOrigin } from '../../internal/bedrock';
3
4
  import { OpenAI } from '../../index';
@@ -181,15 +182,18 @@ export class OpenAIRealtimeWebSocket extends OpenAIRealtimeEmitter {
181
182
  onURL?: (url: URL) => void;
182
183
  /** Indicates the token was resolved by the factory just before connecting. @internal */
183
184
  __resolvedApiKey?: boolean;
185
+ /** Credential captured by an async factory for this connection. @internal */
186
+ __apiKey?: string | null;
184
187
  },
185
188
  client?: Pick<OpenAI, 'apiKey' | 'baseURL'>,
186
189
  ) {
187
190
  super();
191
+ let apiKey = getRealtimeAPIKey(client, props.__apiKey);
188
192
  const hasProvider = typeof (client as any)?._options?.apiKey === 'function';
189
193
  const dangerouslyAllowBrowser =
190
194
  props.dangerouslyAllowBrowser ??
191
195
  (client as any)?._options?.dangerouslyAllowBrowser ??
192
- (client?.apiKey?.startsWith('ek_') ? true : null);
196
+ (apiKey?.startsWith('ek_') ? true : null);
193
197
  if (!dangerouslyAllowBrowser && isRunningInBrowserOrBrowserWorker()) {
194
198
  throw new OpenAIError(
195
199
  "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",
@@ -197,6 +201,9 @@ export class OpenAIRealtimeWebSocket extends OpenAIRealtimeEmitter {
197
201
  }
198
202
 
199
203
  client ??= new OpenAI({ dangerouslyAllowBrowser });
204
+ if (apiKey === undefined) {
205
+ apiKey = client.apiKey;
206
+ }
200
207
 
201
208
  if (hasProvider && !props?.__resolvedApiKey) {
202
209
  throw new Error(
@@ -215,12 +222,12 @@ export class OpenAIRealtimeWebSocket extends OpenAIRealtimeEmitter {
215
222
  const azure = isAzure(client);
216
223
  const protocols = [
217
224
  'realtime',
218
- ...(azure ? [] : [`openai-insecure-api-key.${client.apiKey}`]),
225
+ ...(azure ? [] : [`openai-insecure-api-key.${apiKey}`]),
219
226
  'openai-beta.realtime-v1',
220
227
  ];
221
228
 
222
229
  this.socket = azure
223
- ? createAzureWebSocket(this.url, client.apiKey, props.__resolvedApiKey === true, protocols)
230
+ ? createAzureWebSocket(this.url, apiKey, props.__resolvedApiKey === true, protocols)
224
231
  : new WebSocket(this.url.toString(), protocols);
225
232
 
226
233
  this.socket.addEventListener('message', (websocketEvent: MessageEvent) => {
@@ -280,10 +287,13 @@ export class OpenAIRealtimeWebSocket extends OpenAIRealtimeEmitter {
280
287
  const url = buildRealtimeURL(client, props);
281
288
  assertTrustedRealtimeURL(client, url);
282
289
  assertBedrockWebSocketOrigin(client, url);
283
- const resolvedApiKey = await client._callApiKey();
290
+ const { apiKey, isProvider: resolvedApiKey } = await resolveRealtimeAPIKey(client);
284
291
  assertTrustedRealtimeURL(client, url);
285
292
  assertBedrockWebSocketOrigin(client, url);
286
- return new OpenAIRealtimeWebSocket({ ...props, __resolvedApiKey: resolvedApiKey }, client);
293
+ return new OpenAIRealtimeWebSocket(
294
+ { ...props, __resolvedApiKey: resolvedApiKey, __apiKey: apiKey },
295
+ client,
296
+ );
287
297
  }
288
298
 
289
299
  /**
@@ -307,8 +317,7 @@ export class OpenAIRealtimeWebSocket extends OpenAIRealtimeEmitter {
307
317
  dangerouslyAllowBrowser?: boolean;
308
318
  } = {},
309
319
  ): Promise<OpenAIRealtimeWebSocket> {
310
- const isApiKeyProvider = await client._callApiKey();
311
- const apiKey = client.apiKey;
320
+ const { apiKey, isProvider: isApiKeyProvider } = await resolveRealtimeAPIKey(client);
312
321
  if (!apiKey) {
313
322
  throw new Error('Azure OpenAI Realtime requires an API key');
314
323
  }
@@ -322,6 +331,7 @@ export class OpenAIRealtimeWebSocket extends OpenAIRealtimeEmitter {
322
331
  model: deploymentName,
323
332
  ...(dangerouslyAllowBrowser === undefined ? {} : { dangerouslyAllowBrowser }),
324
333
  __resolvedApiKey: isApiKeyProvider,
334
+ __apiKey: apiKey,
325
335
  },
326
336
  client,
327
337
  );
@@ -1,3 +1,4 @@
1
+ import { resolveRealtimeAPIKey } from '../../internal/realtime-credentials';
1
2
  import * as WS from 'ws';
2
3
  import { assertBedrockWebSocketOrigin } from '../../internal/bedrock';
3
4
  import { protectWebSocketOptionsFromCredentialRedirects } from '../../internal/ws';
@@ -51,11 +52,14 @@ export class OpenAIRealtimeWS extends OpenAIRealtimeEmitter {
51
52
 
52
53
  /** Indicates that a function-based credential was resolved by an async factory. @internal */
53
54
  __resolvedApiKey?: boolean;
55
+ /** Credential captured by an async factory for this connection. @internal */
56
+ __apiKey?: string | null;
54
57
  },
55
58
  client?: Pick<OpenAI, 'apiKey' | 'baseURL'>,
56
59
  ) {
57
60
  super();
58
61
  client ??= new OpenAI();
62
+ const apiKey = props.__apiKey === undefined ? client.apiKey : props.__apiKey;
59
63
  const hasProvider = typeof (client as any)?._options?.apiKey === 'function';
60
64
  if (hasProvider && !props.__resolvedApiKey) {
61
65
  throw new Error(
@@ -71,7 +75,7 @@ export class OpenAIRealtimeWS extends OpenAIRealtimeEmitter {
71
75
  const headers = {
72
76
  'User-Agent': `${client.constructor.name}/JS ${VERSION}`,
73
77
  ...props.options?.headers,
74
- ...(isAzure(client) && !props.__resolvedApiKey ? {} : { Authorization: `Bearer ${client.apiKey}` }),
78
+ ...(isAzure(client) && !props.__resolvedApiKey ? {} : { Authorization: `Bearer ${apiKey}` }),
75
79
  'OpenAI-Beta': 'realtime=v1',
76
80
  };
77
81
 
@@ -140,10 +144,10 @@ export class OpenAIRealtimeWS extends OpenAIRealtimeEmitter {
140
144
  const url = buildRealtimeURL(client, props);
141
145
  assertTrustedRealtimeURL(client, url);
142
146
  assertBedrockWebSocketOrigin(client, url);
143
- const resolvedApiKey = await client._callApiKey();
147
+ const { apiKey, isProvider: resolvedApiKey } = await resolveRealtimeAPIKey(client);
144
148
  assertTrustedRealtimeURL(client, url);
145
149
  assertBedrockWebSocketOrigin(client, url);
146
- return new OpenAIRealtimeWS({ ...props, __resolvedApiKey: resolvedApiKey }, client);
150
+ return new OpenAIRealtimeWS({ ...props, __resolvedApiKey: resolvedApiKey, __apiKey: apiKey }, client);
147
151
  }
148
152
 
149
153
  /**
@@ -167,8 +171,7 @@ export class OpenAIRealtimeWS extends OpenAIRealtimeEmitter {
167
171
  options?: WS.ClientOptions | undefined;
168
172
  } = {},
169
173
  ): Promise<OpenAIRealtimeWS> {
170
- const isApiKeyProvider = await client._callApiKey();
171
- const apiKey = client.apiKey;
174
+ const { apiKey, isProvider: isApiKeyProvider } = await resolveRealtimeAPIKey(client);
172
175
  if (!apiKey) {
173
176
  throw new Error('Azure OpenAI Realtime requires an API key');
174
177
  }
@@ -187,6 +190,7 @@ export class OpenAIRealtimeWS extends OpenAIRealtimeEmitter {
187
190
  },
188
191
  },
189
192
  __resolvedApiKey: isApiKeyProvider,
193
+ __apiKey: apiKey,
190
194
  },
191
195
  client,
192
196
  );
package/src/client.ts CHANGED
@@ -849,11 +849,25 @@ export class OpenAI {
849
849
  return Errors.APIError.generate(status, normalizedError, message, headers);
850
850
  }
851
851
 
852
- async _callApiKey(): Promise<boolean> {
853
- if (this._provider) return false;
852
+ /**
853
+ * Resolves a function-based API key and retains the resolved value on this client.
854
+ * Returns whether a provider was invoked. Internal callers can capture this
855
+ * invocation's key before another request updates the shared `apiKey` property.
856
+ * Overrides should forward `capture` or invoke it with their own resolved key
857
+ * to preserve connection-local credentials in concurrent Realtime factories.
858
+ * @internal
859
+ */
860
+ async _callApiKey(capture?: (apiKey: string | null) => void): Promise<boolean> {
861
+ if (this._provider) {
862
+ capture?.(this.apiKey);
863
+ return false;
864
+ }
854
865
 
855
866
  const apiKey = this._options.apiKey;
856
- if (typeof apiKey !== 'function') return false;
867
+ if (typeof apiKey !== 'function') {
868
+ capture?.(this.apiKey);
869
+ return false;
870
+ }
857
871
 
858
872
  let token: unknown;
859
873
  try {
@@ -873,6 +887,7 @@ export class OpenAI {
873
887
  );
874
888
  }
875
889
  this.apiKey = token;
890
+ capture?.(this.apiKey);
876
891
  return true;
877
892
  }
878
893
 
@@ -1535,7 +1550,7 @@ export class OpenAI {
1535
1550
  if (this._workloadIdentityAuth && !this.#x509Fetch && schemes.bearerAuth) {
1536
1551
  const headers = init.headers as Headers;
1537
1552
  const authHeader = headers.get('Authorization');
1538
- if (!authHeader || authHeader === `Bearer ${WORKLOAD_IDENTITY_API_KEY_PLACEHOLDER}`) {
1553
+ if (authHeader === `Bearer ${WORKLOAD_IDENTITY_API_KEY_PLACEHOLDER}`) {
1539
1554
  const token = await this._workloadIdentityAuth.getToken();
1540
1555
  headers.set('Authorization', `Bearer ${token}`);
1541
1556
  }
@@ -1,3 +1,5 @@
1
+ import type { EmittedEventResult } from '../lib/EventEmitter';
2
+
1
3
  /** Listener callback associated with one event name in a typed event map. */
2
4
  type EventListener<Events, EventType extends keyof Events> = Events[EventType];
3
5
 
@@ -145,13 +147,7 @@ export class EventEmitter<EventTypes extends Record<string, (...args: any) => an
145
147
  */
146
148
  emitted<Event extends keyof EventTypes>(
147
149
  event: Event,
148
- ): Promise<
149
- EventParameters<EventTypes, Event> extends [infer Param]
150
- ? Param
151
- : EventParameters<EventTypes, Event> extends []
152
- ? void
153
- : EventParameters<EventTypes, Event>
154
- > {
150
+ ): Promise<EmittedEventResult<EventParameters<EventTypes, Event>>> {
155
151
  return new Promise((resolve, reject) => {
156
152
  const listeners = {
157
153
  onError: (error: unknown) => {
@@ -193,7 +189,8 @@ export class EventEmitter<EventTypes extends Record<string, (...args: any) => an
193
189
  for (const registration of listeners as any) {
194
190
  if (!registration.removed) {
195
191
  try {
196
- registration.listener(...(args as any));
192
+ const { listener } = registration;
193
+ listener(...(args as any));
197
194
  } catch (error) {
198
195
  if (!listenerThrew) {
199
196
  listenerThrew = true;
@@ -309,7 +309,7 @@ export class NextCursorPage<Item> extends AbstractPage<Item> implements NextCurs
309
309
  return false;
310
310
  }
311
311
 
312
- return super.hasNextPage();
312
+ return this.nextPageRequestOptions() != null;
313
313
  }
314
314
 
315
315
  nextPageRequestOptions(): PageRequestOptions | null {