openai 7.5.0 → 7.7.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 (597) hide show
  1. package/CHANGELOG.md +117 -0
  2. package/README.md +46 -2
  3. package/auth/index.d.mts +1 -1
  4. package/auth/index.d.mts.map +1 -1
  5. package/auth/index.d.ts +1 -1
  6. package/auth/index.d.ts.map +1 -1
  7. package/auth/index.js.map +1 -1
  8. package/auth/index.mjs.map +1 -1
  9. package/auth/subject-token-providers.d.mts.map +1 -1
  10. package/auth/subject-token-providers.d.ts.map +1 -1
  11. package/auth/subject-token-providers.js +176 -4
  12. package/auth/subject-token-providers.js.map +1 -1
  13. package/auth/subject-token-providers.mjs +176 -4
  14. package/auth/subject-token-providers.mjs.map +1 -1
  15. package/auth/types.d.mts +17 -0
  16. package/auth/types.d.mts.map +1 -1
  17. package/auth/types.d.ts +17 -0
  18. package/auth/types.d.ts.map +1 -1
  19. package/auth/workload-identity-auth.d.mts.map +1 -1
  20. package/auth/workload-identity-auth.d.ts.map +1 -1
  21. package/auth/workload-identity-auth.js +80 -7
  22. package/auth/workload-identity-auth.js.map +1 -1
  23. package/auth/workload-identity-auth.mjs +80 -7
  24. package/auth/workload-identity-auth.mjs.map +1 -1
  25. package/auth/x509-transport.d.mts +5 -0
  26. package/auth/x509-transport.d.mts.map +1 -0
  27. package/auth/x509-transport.d.ts +5 -0
  28. package/auth/x509-transport.d.ts.map +1 -0
  29. package/auth/x509-transport.js +39 -0
  30. package/auth/x509-transport.js.map +1 -0
  31. package/auth/x509-transport.mjs +36 -0
  32. package/auth/x509-transport.mjs.map +1 -0
  33. package/azure.d.mts +11 -2
  34. package/azure.d.mts.map +1 -1
  35. package/azure.d.ts +11 -2
  36. package/azure.d.ts.map +1 -1
  37. package/azure.js +7 -1
  38. package/azure.js.map +1 -1
  39. package/azure.mjs +7 -1
  40. package/azure.mjs.map +1 -1
  41. package/bedrock.d.mts +6 -2
  42. package/bedrock.d.mts.map +1 -1
  43. package/bedrock.d.ts +6 -2
  44. package/bedrock.d.ts.map +1 -1
  45. package/bedrock.js +34 -4
  46. package/bedrock.js.map +1 -1
  47. package/bedrock.mjs +35 -5
  48. package/bedrock.mjs.map +1 -1
  49. package/beta/realtime/internal-base.d.mts +2 -0
  50. package/beta/realtime/internal-base.d.mts.map +1 -1
  51. package/beta/realtime/internal-base.d.ts +2 -0
  52. package/beta/realtime/internal-base.d.ts.map +1 -1
  53. package/beta/realtime/internal-base.js +15 -0
  54. package/beta/realtime/internal-base.js.map +1 -1
  55. package/beta/realtime/internal-base.mjs +14 -0
  56. package/beta/realtime/internal-base.mjs.map +1 -1
  57. package/beta/realtime/websocket.d.mts +11 -5
  58. package/beta/realtime/websocket.d.mts.map +1 -1
  59. package/beta/realtime/websocket.d.ts +11 -5
  60. package/beta/realtime/websocket.d.ts.map +1 -1
  61. package/beta/realtime/websocket.js +106 -31
  62. package/beta/realtime/websocket.js.map +1 -1
  63. package/beta/realtime/websocket.mjs +107 -32
  64. package/beta/realtime/websocket.mjs.map +1 -1
  65. package/beta/realtime/ws.d.mts +0 -2
  66. package/beta/realtime/ws.d.mts.map +1 -1
  67. package/beta/realtime/ws.d.ts +0 -2
  68. package/beta/realtime/ws.d.ts.map +1 -1
  69. package/beta/realtime/ws.js +24 -5
  70. package/beta/realtime/ws.js.map +1 -1
  71. package/beta/realtime/ws.mjs +25 -6
  72. package/beta/realtime/ws.mjs.map +1 -1
  73. package/client.d.mts +17 -2
  74. package/client.d.mts.map +1 -1
  75. package/client.d.ts +17 -2
  76. package/client.d.ts.map +1 -1
  77. package/client.js +422 -70
  78. package/client.js.map +1 -1
  79. package/client.mjs +423 -71
  80. package/client.mjs.map +1 -1
  81. package/core/EventEmitter.d.mts.map +1 -1
  82. package/core/EventEmitter.d.ts.map +1 -1
  83. package/core/EventEmitter.js +67 -9
  84. package/core/EventEmitter.js.map +1 -1
  85. package/core/EventEmitter.mjs +68 -10
  86. package/core/EventEmitter.mjs.map +1 -1
  87. package/core/streaming.d.mts +1 -0
  88. package/core/streaming.d.mts.map +1 -1
  89. package/core/streaming.d.ts +1 -0
  90. package/core/streaming.d.ts.map +1 -1
  91. package/core/streaming.js +216 -26
  92. package/core/streaming.js.map +1 -1
  93. package/core/streaming.mjs +216 -26
  94. package/core/streaming.mjs.map +1 -1
  95. package/helpers/audio.d.mts +5 -5
  96. package/helpers/audio.d.mts.map +1 -1
  97. package/helpers/audio.d.ts +5 -5
  98. package/helpers/audio.d.ts.map +1 -1
  99. package/helpers/audio.js +93 -22
  100. package/helpers/audio.js.map +1 -1
  101. package/helpers/audio.mjs +93 -22
  102. package/helpers/audio.mjs.map +1 -1
  103. package/helpers/standard-schema.d.mts.map +1 -1
  104. package/helpers/standard-schema.d.ts.map +1 -1
  105. package/helpers/standard-schema.js +34 -14
  106. package/helpers/standard-schema.js.map +1 -1
  107. package/helpers/standard-schema.mjs +35 -15
  108. package/helpers/standard-schema.mjs.map +1 -1
  109. package/helpers/zod-v3-strict-schema.d.mts +7 -0
  110. package/helpers/zod-v3-strict-schema.d.mts.map +1 -0
  111. package/helpers/zod-v3-strict-schema.d.ts +7 -0
  112. package/helpers/zod-v3-strict-schema.d.ts.map +1 -0
  113. package/helpers/zod-v3-strict-schema.js +403 -0
  114. package/helpers/zod-v3-strict-schema.js.map +1 -0
  115. package/helpers/zod-v3-strict-schema.mjs +399 -0
  116. package/helpers/zod-v3-strict-schema.mjs.map +1 -0
  117. package/helpers/zod.d.mts.map +1 -1
  118. package/helpers/zod.d.ts.map +1 -1
  119. package/helpers/zod.js +11 -3
  120. package/helpers/zod.js.map +1 -1
  121. package/helpers/zod.mjs +12 -4
  122. package/helpers/zod.mjs.map +1 -1
  123. package/index.d.mts +1 -1
  124. package/index.d.mts.map +1 -1
  125. package/index.d.ts +1 -1
  126. package/index.d.ts.map +1 -1
  127. package/index.js.map +1 -1
  128. package/index.mjs.map +1 -1
  129. package/internal/assistant-stream-delta.d.mts.map +1 -1
  130. package/internal/assistant-stream-delta.d.ts.map +1 -1
  131. package/internal/assistant-stream-delta.js +28 -8
  132. package/internal/assistant-stream-delta.js.map +1 -1
  133. package/internal/assistant-stream-delta.mjs +28 -8
  134. package/internal/assistant-stream-delta.mjs.map +1 -1
  135. package/internal/auth/x509-token-exchange.d.mts +16 -0
  136. package/internal/auth/x509-token-exchange.d.mts.map +1 -0
  137. package/internal/auth/x509-token-exchange.d.ts +16 -0
  138. package/internal/auth/x509-token-exchange.d.ts.map +1 -0
  139. package/internal/auth/x509-token-exchange.js +246 -0
  140. package/internal/auth/x509-token-exchange.js.map +1 -0
  141. package/internal/auth/x509-token-exchange.mjs +243 -0
  142. package/internal/auth/x509-token-exchange.mjs.map +1 -0
  143. package/internal/auth/x509-transport-capability.d.mts +37 -0
  144. package/internal/auth/x509-transport-capability.d.mts.map +1 -0
  145. package/internal/auth/x509-transport-capability.d.ts +37 -0
  146. package/internal/auth/x509-transport-capability.d.ts.map +1 -0
  147. package/internal/auth/x509-transport-capability.js +169 -0
  148. package/internal/auth/x509-transport-capability.js.map +1 -0
  149. package/internal/auth/x509-transport-capability.mjs +164 -0
  150. package/internal/auth/x509-transport-capability.mjs.map +1 -0
  151. package/internal/auth/x509-transport-registry.d.mts +63 -0
  152. package/internal/auth/x509-transport-registry.d.mts.map +1 -0
  153. package/internal/auth/x509-transport-registry.d.ts +63 -0
  154. package/internal/auth/x509-transport-registry.d.ts.map +1 -0
  155. package/internal/auth/x509-transport-registry.js +53 -0
  156. package/internal/auth/x509-transport-registry.js.map +1 -0
  157. package/internal/auth/x509-transport-registry.mjs +48 -0
  158. package/internal/auth/x509-transport-registry.mjs.map +1 -0
  159. package/internal/auth/x509-transport-state-browser.d.mts +21 -0
  160. package/internal/auth/x509-transport-state-browser.d.mts.map +1 -0
  161. package/internal/auth/x509-transport-state-browser.d.ts +21 -0
  162. package/internal/auth/x509-transport-state-browser.d.ts.map +1 -0
  163. package/internal/auth/x509-transport-state-browser.js +30 -0
  164. package/internal/auth/x509-transport-state-browser.js.map +1 -0
  165. package/internal/auth/x509-transport-state-browser.mjs +27 -0
  166. package/internal/auth/x509-transport-state-browser.mjs.map +1 -0
  167. package/internal/auth/x509-transport-state.cjs +30 -0
  168. package/internal/auth/x509-transport-state.cjs.map +1 -0
  169. package/internal/auth/x509-transport-state.d.cts +21 -0
  170. package/internal/auth/x509-transport-state.d.cts.map +1 -0
  171. package/internal/auth/x509-workload-identity-auth.d.mts +128 -0
  172. package/internal/auth/x509-workload-identity-auth.d.mts.map +1 -0
  173. package/internal/auth/x509-workload-identity-auth.d.ts +128 -0
  174. package/internal/auth/x509-workload-identity-auth.d.ts.map +1 -0
  175. package/internal/auth/x509-workload-identity-auth.js +767 -0
  176. package/internal/auth/x509-workload-identity-auth.js.map +1 -0
  177. package/internal/auth/x509-workload-identity-auth.mjs +757 -0
  178. package/internal/auth/x509-workload-identity-auth.mjs.map +1 -0
  179. package/internal/bedrock.d.mts +2 -0
  180. package/internal/bedrock.d.mts.map +1 -1
  181. package/internal/bedrock.d.ts +2 -0
  182. package/internal/bedrock.d.ts.map +1 -1
  183. package/internal/bedrock.js +169 -5
  184. package/internal/bedrock.js.map +1 -1
  185. package/internal/bedrock.mjs +168 -5
  186. package/internal/bedrock.mjs.map +1 -1
  187. package/internal/data-residency.d.mts +12 -0
  188. package/internal/data-residency.d.mts.map +1 -0
  189. package/internal/data-residency.d.ts +12 -0
  190. package/internal/data-residency.d.ts.map +1 -0
  191. package/internal/data-residency.js +34 -0
  192. package/internal/data-residency.js.map +1 -0
  193. package/internal/data-residency.mjs +30 -0
  194. package/internal/data-residency.mjs.map +1 -0
  195. package/internal/multipart-encoding.d.mts +8 -0
  196. package/internal/multipart-encoding.d.mts.map +1 -0
  197. package/internal/multipart-encoding.d.ts +8 -0
  198. package/internal/multipart-encoding.d.ts.map +1 -0
  199. package/internal/multipart-encoding.js +51 -0
  200. package/internal/multipart-encoding.js.map +1 -0
  201. package/internal/multipart-encoding.mjs +48 -0
  202. package/internal/multipart-encoding.mjs.map +1 -0
  203. package/internal/qs/utils.d.mts.map +1 -1
  204. package/internal/qs/utils.d.ts.map +1 -1
  205. package/internal/qs/utils.js +307 -10
  206. package/internal/qs/utils.js.map +1 -1
  207. package/internal/qs/utils.mjs +307 -10
  208. package/internal/qs/utils.mjs.map +1 -1
  209. package/internal/request-options.d.mts +7 -0
  210. package/internal/request-options.d.mts.map +1 -1
  211. package/internal/request-options.d.ts +7 -0
  212. package/internal/request-options.d.ts.map +1 -1
  213. package/internal/request-options.js +43 -1
  214. package/internal/request-options.js.map +1 -1
  215. package/internal/request-options.mjs +42 -1
  216. package/internal/request-options.mjs.map +1 -1
  217. package/internal/responses/canonical-output-text.js +3 -3
  218. package/internal/responses/canonical-output-text.js.map +1 -1
  219. package/internal/responses/canonical-output-text.mjs +3 -3
  220. package/internal/responses/canonical-output-text.mjs.map +1 -1
  221. package/internal/responses/response-accumulator.d.mts +1 -1
  222. package/internal/responses/response-accumulator.d.mts.map +1 -1
  223. package/internal/responses/response-accumulator.d.ts +1 -1
  224. package/internal/responses/response-accumulator.d.ts.map +1 -1
  225. package/internal/responses/response-accumulator.js +331 -25
  226. package/internal/responses/response-accumulator.js.map +1 -1
  227. package/internal/responses/response-accumulator.mjs +331 -25
  228. package/internal/responses/response-accumulator.mjs.map +1 -1
  229. package/internal/tslib.js +6 -0
  230. package/internal/tslib.mjs +6 -1
  231. package/internal/uploads.d.mts +10 -6
  232. package/internal/uploads.d.mts.map +1 -1
  233. package/internal/uploads.d.ts +10 -6
  234. package/internal/uploads.d.ts.map +1 -1
  235. package/internal/uploads.js +65 -24
  236. package/internal/uploads.js.map +1 -1
  237. package/internal/uploads.mjs +65 -24
  238. package/internal/uploads.mjs.map +1 -1
  239. package/internal/utils/env.d.mts.map +1 -1
  240. package/internal/utils/env.d.ts.map +1 -1
  241. package/internal/utils/env.js +9 -4
  242. package/internal/utils/env.js.map +1 -1
  243. package/internal/utils/env.mjs +9 -4
  244. package/internal/utils/env.mjs.map +1 -1
  245. package/internal/ws.d.mts.map +1 -1
  246. package/internal/ws.d.ts.map +1 -1
  247. package/internal/ws.js +23 -1
  248. package/internal/ws.js.map +1 -1
  249. package/internal/ws.mjs +23 -1
  250. package/internal/ws.mjs.map +1 -1
  251. package/lib/AbstractChatCompletionRunner.d.mts.map +1 -1
  252. package/lib/AbstractChatCompletionRunner.d.ts.map +1 -1
  253. package/lib/AbstractChatCompletionRunner.js +32 -7
  254. package/lib/AbstractChatCompletionRunner.js.map +1 -1
  255. package/lib/AbstractChatCompletionRunner.mjs +34 -9
  256. package/lib/AbstractChatCompletionRunner.mjs.map +1 -1
  257. package/lib/AssistantStream.d.mts.map +1 -1
  258. package/lib/AssistantStream.d.ts.map +1 -1
  259. package/lib/AssistantStream.js +211 -23
  260. package/lib/AssistantStream.js.map +1 -1
  261. package/lib/AssistantStream.mjs +211 -23
  262. package/lib/AssistantStream.mjs.map +1 -1
  263. package/lib/ChatCompletionStream.d.mts +1 -1
  264. package/lib/ChatCompletionStream.d.mts.map +1 -1
  265. package/lib/ChatCompletionStream.d.ts +1 -1
  266. package/lib/ChatCompletionStream.d.ts.map +1 -1
  267. package/lib/ChatCompletionStream.js +1118 -67
  268. package/lib/ChatCompletionStream.js.map +1 -1
  269. package/lib/ChatCompletionStream.mjs +1119 -68
  270. package/lib/ChatCompletionStream.mjs.map +1 -1
  271. package/lib/EventEmitter.d.mts.map +1 -1
  272. package/lib/EventEmitter.d.ts.map +1 -1
  273. package/lib/EventEmitter.js +67 -9
  274. package/lib/EventEmitter.js.map +1 -1
  275. package/lib/EventEmitter.mjs +68 -10
  276. package/lib/EventEmitter.mjs.map +1 -1
  277. package/lib/EventStream.d.mts +4 -0
  278. package/lib/EventStream.d.mts.map +1 -1
  279. package/lib/EventStream.d.ts +4 -0
  280. package/lib/EventStream.d.ts.map +1 -1
  281. package/lib/EventStream.js +1096 -11
  282. package/lib/EventStream.js.map +1 -1
  283. package/lib/EventStream.mjs +1097 -12
  284. package/lib/EventStream.mjs.map +1 -1
  285. package/lib/ResponsesParser.d.mts.map +1 -1
  286. package/lib/ResponsesParser.d.ts.map +1 -1
  287. package/lib/ResponsesParser.js +1 -1
  288. package/lib/ResponsesParser.js.map +1 -1
  289. package/lib/ResponsesParser.mjs +1 -1
  290. package/lib/ResponsesParser.mjs.map +1 -1
  291. package/lib/Util.d.mts +2 -0
  292. package/lib/Util.d.mts.map +1 -1
  293. package/lib/Util.d.ts +2 -0
  294. package/lib/Util.d.ts.map +1 -1
  295. package/lib/Util.js +7 -4
  296. package/lib/Util.js.map +1 -1
  297. package/lib/Util.mjs +7 -4
  298. package/lib/Util.mjs.map +1 -1
  299. package/lib/assistant-run-polling.d.mts +12 -0
  300. package/lib/assistant-run-polling.d.mts.map +1 -0
  301. package/lib/assistant-run-polling.d.ts +12 -0
  302. package/lib/assistant-run-polling.d.ts.map +1 -0
  303. package/lib/assistant-run-polling.js +17 -0
  304. package/lib/assistant-run-polling.js.map +1 -0
  305. package/lib/assistant-run-polling.mjs +14 -0
  306. package/lib/assistant-run-polling.mjs.map +1 -0
  307. package/lib/embeddings.d.mts +18 -0
  308. package/lib/embeddings.d.mts.map +1 -0
  309. package/lib/embeddings.d.ts +18 -0
  310. package/lib/embeddings.d.ts.map +1 -0
  311. package/lib/embeddings.js +50 -0
  312. package/lib/embeddings.js.map +1 -0
  313. package/lib/embeddings.mjs +47 -0
  314. package/lib/embeddings.mjs.map +1 -0
  315. package/lib/file-processing.d.mts +10 -0
  316. package/lib/file-processing.d.mts.map +1 -0
  317. package/lib/file-processing.d.ts +10 -0
  318. package/lib/file-processing.d.ts.map +1 -0
  319. package/lib/file-processing.js +30 -0
  320. package/lib/file-processing.js.map +1 -0
  321. package/lib/file-processing.mjs +27 -0
  322. package/lib/file-processing.mjs.map +1 -0
  323. package/lib/parser.d.mts.map +1 -1
  324. package/lib/parser.d.ts.map +1 -1
  325. package/lib/parser.js +16 -4
  326. package/lib/parser.js.map +1 -1
  327. package/lib/parser.mjs +16 -4
  328. package/lib/parser.mjs.map +1 -1
  329. package/lib/polling.d.mts +20 -0
  330. package/lib/polling.d.mts.map +1 -0
  331. package/lib/polling.d.ts +20 -0
  332. package/lib/polling.d.ts.map +1 -0
  333. package/lib/polling.js +130 -0
  334. package/lib/polling.js.map +1 -0
  335. package/lib/polling.mjs +127 -0
  336. package/lib/polling.mjs.map +1 -0
  337. package/lib/responses/ResponseStream.d.mts.map +1 -1
  338. package/lib/responses/ResponseStream.d.ts.map +1 -1
  339. package/lib/responses/ResponseStream.js +21 -11
  340. package/lib/responses/ResponseStream.js.map +1 -1
  341. package/lib/responses/ResponseStream.mjs +21 -11
  342. package/lib/responses/ResponseStream.mjs.map +1 -1
  343. package/lib/vector-store-polling.d.mts +22 -0
  344. package/lib/vector-store-polling.d.mts.map +1 -0
  345. package/lib/vector-store-polling.d.ts +22 -0
  346. package/lib/vector-store-polling.d.ts.map +1 -0
  347. package/lib/vector-store-polling.js +24 -0
  348. package/lib/vector-store-polling.js.map +1 -0
  349. package/lib/vector-store-polling.mjs +20 -0
  350. package/lib/vector-store-polling.mjs.map +1 -0
  351. package/lib/vector-store-upload.d.mts +17 -0
  352. package/lib/vector-store-upload.d.mts.map +1 -0
  353. package/lib/vector-store-upload.d.ts +17 -0
  354. package/lib/vector-store-upload.d.ts.map +1 -0
  355. package/lib/vector-store-upload.js +37 -0
  356. package/lib/vector-store-upload.js.map +1 -0
  357. package/lib/vector-store-upload.mjs +34 -0
  358. package/lib/vector-store-upload.mjs.map +1 -0
  359. package/lib/webhook-signature.d.mts +15 -0
  360. package/lib/webhook-signature.d.mts.map +1 -0
  361. package/lib/webhook-signature.d.ts +15 -0
  362. package/lib/webhook-signature.d.ts.map +1 -0
  363. package/lib/webhook-signature.js +125 -0
  364. package/lib/webhook-signature.js.map +1 -0
  365. package/lib/webhook-signature.mjs +121 -0
  366. package/lib/webhook-signature.mjs.map +1 -0
  367. package/package.json +14 -1
  368. package/realtime/internal-base.d.mts +2 -0
  369. package/realtime/internal-base.d.mts.map +1 -1
  370. package/realtime/internal-base.d.ts +2 -0
  371. package/realtime/internal-base.d.ts.map +1 -1
  372. package/realtime/internal-base.js +15 -0
  373. package/realtime/internal-base.js.map +1 -1
  374. package/realtime/internal-base.mjs +14 -0
  375. package/realtime/internal-base.mjs.map +1 -1
  376. package/realtime/websocket.d.mts +3 -2
  377. package/realtime/websocket.d.mts.map +1 -1
  378. package/realtime/websocket.d.ts +3 -2
  379. package/realtime/websocket.d.ts.map +1 -1
  380. package/realtime/websocket.js +90 -26
  381. package/realtime/websocket.js.map +1 -1
  382. package/realtime/websocket.mjs +91 -27
  383. package/realtime/websocket.mjs.map +1 -1
  384. package/realtime/ws.d.mts.map +1 -1
  385. package/realtime/ws.d.ts.map +1 -1
  386. package/realtime/ws.js +9 -1
  387. package/realtime/ws.js.map +1 -1
  388. package/realtime/ws.mjs +10 -2
  389. package/realtime/ws.mjs.map +1 -1
  390. package/resources/admin/organization/index.d.mts +2 -2
  391. package/resources/admin/organization/index.d.mts.map +1 -1
  392. package/resources/admin/organization/index.d.ts +2 -2
  393. package/resources/admin/organization/index.d.ts.map +1 -1
  394. package/resources/admin/organization/index.js.map +1 -1
  395. package/resources/admin/organization/index.mjs.map +1 -1
  396. package/resources/admin/organization/organization.d.mts +4 -4
  397. package/resources/admin/organization/organization.d.mts.map +1 -1
  398. package/resources/admin/organization/organization.d.ts +4 -4
  399. package/resources/admin/organization/organization.d.ts.map +1 -1
  400. package/resources/admin/organization/organization.js.map +1 -1
  401. package/resources/admin/organization/organization.mjs.map +1 -1
  402. package/resources/admin/organization/projects/index.d.mts +1 -1
  403. package/resources/admin/organization/projects/index.d.mts.map +1 -1
  404. package/resources/admin/organization/projects/index.d.ts +1 -1
  405. package/resources/admin/organization/projects/index.d.ts.map +1 -1
  406. package/resources/admin/organization/projects/index.js.map +1 -1
  407. package/resources/admin/organization/projects/index.mjs.map +1 -1
  408. package/resources/admin/organization/projects/projects.d.mts +22 -5
  409. package/resources/admin/organization/projects/projects.d.mts.map +1 -1
  410. package/resources/admin/organization/projects/projects.d.ts +22 -5
  411. package/resources/admin/organization/projects/projects.d.ts.map +1 -1
  412. package/resources/admin/organization/projects/projects.js.map +1 -1
  413. package/resources/admin/organization/projects/projects.mjs.map +1 -1
  414. package/resources/admin/organization/usage.d.mts +62 -1
  415. package/resources/admin/organization/usage.d.mts.map +1 -1
  416. package/resources/admin/organization/usage.d.ts +62 -1
  417. package/resources/admin/organization/usage.d.ts.map +1 -1
  418. package/resources/admin/organization/usage.js.map +1 -1
  419. package/resources/admin/organization/usage.mjs.map +1 -1
  420. package/resources/beta/responses/internal-base.d.mts.map +1 -1
  421. package/resources/beta/responses/internal-base.d.ts.map +1 -1
  422. package/resources/beta/responses/internal-base.js +2 -0
  423. package/resources/beta/responses/internal-base.js.map +1 -1
  424. package/resources/beta/responses/internal-base.mjs +2 -0
  425. package/resources/beta/responses/internal-base.mjs.map +1 -1
  426. package/resources/beta/responses/responses.d.mts +17 -20
  427. package/resources/beta/responses/responses.d.mts.map +1 -1
  428. package/resources/beta/responses/responses.d.ts +17 -20
  429. package/resources/beta/responses/responses.d.ts.map +1 -1
  430. package/resources/beta/responses/responses.js.map +1 -1
  431. package/resources/beta/responses/responses.mjs.map +1 -1
  432. package/resources/beta/threads/runs/index.d.mts +1 -1
  433. package/resources/beta/threads/runs/index.d.mts.map +1 -1
  434. package/resources/beta/threads/runs/index.d.ts +1 -1
  435. package/resources/beta/threads/runs/index.d.ts.map +1 -1
  436. package/resources/beta/threads/runs/runs.d.mts.map +1 -1
  437. package/resources/beta/threads/runs/runs.d.ts.map +1 -1
  438. package/resources/beta/threads/runs/runs.js +2 -43
  439. package/resources/beta/threads/runs/runs.js.map +1 -1
  440. package/resources/beta/threads/runs/runs.mjs +2 -43
  441. package/resources/beta/threads/runs/runs.mjs.map +1 -1
  442. package/resources/chat/completions/completions.d.mts +6 -0
  443. package/resources/chat/completions/completions.d.mts.map +1 -1
  444. package/resources/chat/completions/completions.d.ts +6 -0
  445. package/resources/chat/completions/completions.d.ts.map +1 -1
  446. package/resources/chat/completions/completions.js.map +1 -1
  447. package/resources/chat/completions/completions.mjs.map +1 -1
  448. package/resources/embeddings.d.mts.map +1 -1
  449. package/resources/embeddings.d.ts.map +1 -1
  450. package/resources/embeddings.js +2 -36
  451. package/resources/embeddings.js.map +1 -1
  452. package/resources/embeddings.mjs +2 -36
  453. package/resources/embeddings.mjs.map +1 -1
  454. package/resources/files.d.mts.map +1 -1
  455. package/resources/files.d.ts.map +1 -1
  456. package/resources/files.js +2 -15
  457. package/resources/files.js.map +1 -1
  458. package/resources/files.mjs +2 -15
  459. package/resources/files.mjs.map +1 -1
  460. package/resources/images.d.mts +12 -22
  461. package/resources/images.d.mts.map +1 -1
  462. package/resources/images.d.ts +12 -22
  463. package/resources/images.d.ts.map +1 -1
  464. package/resources/realtime/calls.d.mts +23 -1
  465. package/resources/realtime/calls.d.mts.map +1 -1
  466. package/resources/realtime/calls.d.ts +23 -1
  467. package/resources/realtime/calls.d.ts.map +1 -1
  468. package/resources/realtime/calls.js +24 -0
  469. package/resources/realtime/calls.js.map +1 -1
  470. package/resources/realtime/calls.mjs +24 -0
  471. package/resources/realtime/calls.mjs.map +1 -1
  472. package/resources/realtime/index.d.mts +1 -1
  473. package/resources/realtime/index.d.mts.map +1 -1
  474. package/resources/realtime/index.d.ts +1 -1
  475. package/resources/realtime/index.d.ts.map +1 -1
  476. package/resources/realtime/index.js.map +1 -1
  477. package/resources/realtime/index.mjs +1 -1
  478. package/resources/realtime/index.mjs.map +1 -1
  479. package/resources/realtime/realtime.d.mts +5 -4
  480. package/resources/realtime/realtime.d.mts.map +1 -1
  481. package/resources/realtime/realtime.d.ts +5 -4
  482. package/resources/realtime/realtime.d.ts.map +1 -1
  483. package/resources/realtime/realtime.js.map +1 -1
  484. package/resources/realtime/realtime.mjs.map +1 -1
  485. package/resources/responses/internal-base.d.mts.map +1 -1
  486. package/resources/responses/internal-base.d.ts.map +1 -1
  487. package/resources/responses/internal-base.js +2 -0
  488. package/resources/responses/internal-base.js.map +1 -1
  489. package/resources/responses/internal-base.mjs +2 -0
  490. package/resources/responses/internal-base.mjs.map +1 -1
  491. package/resources/responses/responses.d.mts +17 -20
  492. package/resources/responses/responses.d.mts.map +1 -1
  493. package/resources/responses/responses.d.ts +17 -20
  494. package/resources/responses/responses.d.ts.map +1 -1
  495. package/resources/responses/responses.js.map +1 -1
  496. package/resources/responses/responses.mjs.map +1 -1
  497. package/resources/vector-stores/file-batches.d.mts.map +1 -1
  498. package/resources/vector-stores/file-batches.d.ts.map +1 -1
  499. package/resources/vector-stores/file-batches.js +4 -61
  500. package/resources/vector-stores/file-batches.js.map +1 -1
  501. package/resources/vector-stores/file-batches.mjs +4 -61
  502. package/resources/vector-stores/file-batches.mjs.map +1 -1
  503. package/resources/vector-stores/files.d.mts +1 -1
  504. package/resources/vector-stores/files.d.mts.map +1 -1
  505. package/resources/vector-stores/files.d.ts +1 -1
  506. package/resources/vector-stores/files.d.ts.map +1 -1
  507. package/resources/vector-stores/files.js +2 -35
  508. package/resources/vector-stores/files.js.map +1 -1
  509. package/resources/vector-stores/files.mjs +2 -35
  510. package/resources/vector-stores/files.mjs.map +1 -1
  511. package/resources/webhooks/webhooks.d.mts.map +1 -1
  512. package/resources/webhooks/webhooks.d.ts.map +1 -1
  513. package/resources/webhooks/webhooks.js +5 -43
  514. package/resources/webhooks/webhooks.js.map +1 -1
  515. package/resources/webhooks/webhooks.mjs +5 -43
  516. package/resources/webhooks/webhooks.mjs.map +1 -1
  517. package/src/auth/index.ts +6 -1
  518. package/src/auth/subject-token-providers.ts +196 -4
  519. package/src/auth/types.ts +24 -0
  520. package/src/auth/workload-identity-auth.ts +104 -7
  521. package/src/auth/x509-transport.ts +49 -0
  522. package/src/azure.ts +22 -1
  523. package/src/bedrock.ts +49 -5
  524. package/src/beta/realtime/internal-base.ts +15 -0
  525. package/src/beta/realtime/websocket.ts +148 -40
  526. package/src/beta/realtime/ws.ts +31 -13
  527. package/src/client.ts +536 -92
  528. package/src/core/EventEmitter.ts +91 -7
  529. package/src/core/streaming.ts +226 -30
  530. package/src/helpers/audio.ts +93 -22
  531. package/src/helpers/standard-schema.ts +50 -16
  532. package/src/helpers/zod-v3-strict-schema.ts +514 -0
  533. package/src/helpers/zod.ts +17 -4
  534. package/src/index.ts +1 -1
  535. package/src/internal/assistant-stream-delta.ts +33 -10
  536. package/src/internal/auth/x509-token-exchange.ts +310 -0
  537. package/src/internal/auth/x509-transport-capability.ts +219 -0
  538. package/src/internal/auth/x509-transport-registry.ts +118 -0
  539. package/src/internal/auth/x509-transport-state-browser.ts +36 -0
  540. package/src/internal/auth/x509-transport-state.cts +36 -0
  541. package/src/internal/auth/x509-workload-identity-auth.ts +958 -0
  542. package/src/internal/bedrock.ts +182 -5
  543. package/src/internal/data-residency.ts +44 -0
  544. package/src/internal/multipart-encoding.ts +53 -0
  545. package/src/internal/qs/utils.ts +375 -13
  546. package/src/internal/request-options.ts +52 -1
  547. package/src/internal/responses/canonical-output-text.ts +3 -3
  548. package/src/internal/responses/response-accumulator.ts +411 -24
  549. package/src/internal/uploads.ts +81 -26
  550. package/src/internal/utils/env.ts +9 -5
  551. package/src/internal/ws.ts +24 -3
  552. package/src/lib/AbstractChatCompletionRunner.ts +33 -6
  553. package/src/lib/AssistantStream.ts +262 -22
  554. package/src/lib/ChatCompletionStream.ts +1467 -103
  555. package/src/lib/EventEmitter.ts +91 -7
  556. package/src/lib/EventStream.ts +1483 -10
  557. package/src/lib/ResponsesParser.ts +4 -1
  558. package/src/lib/Util.ts +7 -5
  559. package/src/lib/assistant-run-polling.ts +27 -0
  560. package/src/lib/embeddings.ts +65 -0
  561. package/src/lib/file-processing.ts +36 -0
  562. package/src/lib/parser.ts +19 -4
  563. package/src/lib/polling.ts +144 -0
  564. package/src/lib/responses/ResponseStream.ts +22 -10
  565. package/src/lib/vector-store-polling.ts +46 -0
  566. package/src/lib/vector-store-upload.ts +53 -0
  567. package/src/lib/webhook-signature.ts +164 -0
  568. package/src/realtime/internal-base.ts +15 -0
  569. package/src/realtime/websocket.ts +130 -27
  570. package/src/realtime/ws.ts +15 -2
  571. package/src/resources/admin/organization/index.ts +2 -0
  572. package/src/resources/admin/organization/organization.ts +4 -0
  573. package/src/resources/admin/organization/projects/index.ts +1 -0
  574. package/src/resources/admin/organization/projects/projects.ts +37 -4
  575. package/src/resources/admin/organization/usage.ts +83 -0
  576. package/src/resources/beta/responses/internal-base.ts +2 -0
  577. package/src/resources/beta/responses/responses.ts +19 -22
  578. package/src/resources/beta/threads/runs/index.ts +1 -1
  579. package/src/resources/beta/threads/runs/runs.ts +2 -45
  580. package/src/resources/chat/completions/completions.ts +7 -0
  581. package/src/resources/embeddings.ts +2 -42
  582. package/src/resources/files.ts +2 -19
  583. package/src/resources/images.ts +12 -22
  584. package/src/resources/realtime/api.md +1 -0
  585. package/src/resources/realtime/calls.ts +46 -0
  586. package/src/resources/realtime/index.ts +7 -1
  587. package/src/resources/realtime/realtime.ts +5 -3
  588. package/src/resources/responses/internal-base.ts +2 -0
  589. package/src/resources/responses/responses.ts +19 -22
  590. package/src/resources/vector-stores/file-batches.ts +8 -77
  591. package/src/resources/vector-stores/files.ts +3 -43
  592. package/src/resources/webhooks/webhooks.ts +5 -61
  593. package/src/version.ts +1 -1
  594. package/version.d.mts +1 -1
  595. package/version.d.ts +1 -1
  596. package/version.js +1 -1
  597. package/version.mjs +1 -1
@@ -0,0 +1,243 @@
1
+ import { APIConnectionError, APIConnectionTimeoutError, APIError, OAuthError, OpenAIError, } from "../../core/error.mjs";
2
+ import { hasOwn } from "../utils/values.mjs";
3
+ import { sendX509Request } from "./x509-transport-capability.mjs";
4
+ import { isRetryableX509TransportFailure } from "./x509-transport-registry.mjs";
5
+ import { isTransientX509ConnectionError, markRetryableX509IssuerError, markTransientX509ConnectionError, rememberX509OAuthError, } from '#x509-transport-state';
6
+ const TOKEN_EXCHANGE_URL = new URL('https://mtls.auth.openai.com/oauth/token');
7
+ const TOKEN_EXCHANGE_GRANT = 'urn:ietf:params:oauth:grant-type:token-exchange';
8
+ const X509_SUBJECT_TOKEN = 'urn:openai:params:oauth:token-type:x509';
9
+ const ACCESS_TOKEN_TYPE = 'urn:ietf:params:oauth:token-type:access_token';
10
+ const SAFE_ACCESS_TOKEN = /^[A-Za-z0-9._~+/-]+=*$/u;
11
+ const SAFE_OAUTH_ERRORS = new Set(['invalid_grant', 'invalid_subject_token', 'token_exchange_server_error']);
12
+ const SAFE_RESPONSE_HEADERS = ['retry-after', 'retry-after-ms', 'x-should-retry', 'x-request-id'];
13
+ const MAX_TOKEN_EXCHANGE_DURATION_MS = 5000;
14
+ function transientConnectionError(message, failure) {
15
+ const error = new APIConnectionError({ message });
16
+ if (isRetryableX509TransportFailure(failure)) {
17
+ markTransientX509ConnectionError(error);
18
+ }
19
+ return error;
20
+ }
21
+ async function cancelReader(reader, reason) {
22
+ try {
23
+ await reader.cancel(reason);
24
+ }
25
+ catch {
26
+ // Response retirement is best-effort and must never replace the sanitized exchange result.
27
+ }
28
+ }
29
+ function cancelResponseBody(response) {
30
+ if (!response.body) {
31
+ return;
32
+ }
33
+ const reader = response.body.getReader();
34
+ try {
35
+ void cancelReader(reader);
36
+ }
37
+ finally {
38
+ reader.releaseLock();
39
+ }
40
+ }
41
+ async function readResponseBody(response, signal) {
42
+ if (!response.body) {
43
+ throw new OpenAIError('X.509 workload identity token exchange returned invalid JSON.');
44
+ }
45
+ const reader = response.body.getReader();
46
+ const chunks = [];
47
+ let totalBytes = 0;
48
+ const cancel = () => {
49
+ void cancelReader(reader, signal?.reason);
50
+ };
51
+ signal?.addEventListener('abort', cancel, { once: true });
52
+ try {
53
+ while (true) {
54
+ signal?.throwIfAborted();
55
+ // oxlint-disable-next-line no-await-in-loop -- Token-response chunks must be consumed in wire order.
56
+ const chunk = await reader.read();
57
+ signal?.throwIfAborted();
58
+ if (chunk.done) {
59
+ break;
60
+ }
61
+ chunks.push(chunk.value);
62
+ totalBytes += chunk.value.byteLength;
63
+ }
64
+ }
65
+ catch (error) {
66
+ cancel();
67
+ if (signal?.aborted) {
68
+ signal.throwIfAborted();
69
+ }
70
+ throw transientConnectionError('X.509 workload identity token response could not be read.', error);
71
+ }
72
+ finally {
73
+ signal?.removeEventListener('abort', cancel);
74
+ reader.releaseLock();
75
+ }
76
+ const bytes = new Uint8Array(totalBytes);
77
+ let offset = 0;
78
+ for (const chunk of chunks) {
79
+ bytes.set(chunk, offset);
80
+ offset += chunk.byteLength;
81
+ }
82
+ try {
83
+ return JSON.parse(new TextDecoder('utf-8', { fatal: true }).decode(bytes));
84
+ }
85
+ catch {
86
+ throw new OpenAIError('X.509 workload identity token exchange returned invalid JSON.');
87
+ }
88
+ }
89
+ function validateTokenResponse(value) {
90
+ if (typeof value !== 'object' || value === null || Array.isArray(value)) {
91
+ throw new OpenAIError('X.509 workload identity token exchange returned an invalid token response.');
92
+ }
93
+ const response = value;
94
+ if (!hasOwn(response, 'access_token') ||
95
+ typeof response['access_token'] !== 'string' ||
96
+ !SAFE_ACCESS_TOKEN.test(response['access_token'])) {
97
+ throw new OpenAIError('X.509 workload identity token exchange returned an invalid access token.');
98
+ }
99
+ if (!hasOwn(response, 'token_type') || !hasOwn(response, 'issued_token_type')) {
100
+ throw new OpenAIError('X.509 workload identity token exchange returned an invalid token type.');
101
+ }
102
+ const tokenType = response['token_type'];
103
+ if (typeof tokenType !== 'string' ||
104
+ tokenType.toLowerCase() !== 'bearer' ||
105
+ response['issued_token_type'] !== ACCESS_TOKEN_TYPE) {
106
+ throw new OpenAIError('X.509 workload identity token exchange returned an invalid token type.');
107
+ }
108
+ if (!hasOwn(response, 'expires_in')) {
109
+ throw new OpenAIError('X.509 workload identity token exchange returned an invalid token lifetime.');
110
+ }
111
+ const expiresIn = response['expires_in'];
112
+ if (typeof expiresIn !== 'number' || !Number.isFinite(expiresIn) || expiresIn <= 0 || expiresIn > 3600) {
113
+ throw new OpenAIError('X.509 workload identity token exchange returned an invalid token lifetime.');
114
+ }
115
+ return { accessToken: response['access_token'], expiresIn };
116
+ }
117
+ function safeResponseHeaders(response, includeRetryHints = false) {
118
+ const headers = new Headers();
119
+ for (const name of SAFE_RESPONSE_HEADERS) {
120
+ if (name !== 'x-request-id' && !includeRetryHints) {
121
+ continue;
122
+ }
123
+ const value = response.headers.get(name);
124
+ if (value !== null) {
125
+ headers.set(name, value);
126
+ }
127
+ }
128
+ return headers;
129
+ }
130
+ function readOAuthErrorCode(value) {
131
+ if (typeof value === 'string') {
132
+ return value;
133
+ }
134
+ if (typeof value === 'object' && value !== null && hasOwn(value, 'code')) {
135
+ const code = Object.getOwnPropertyDescriptor(value, 'code')?.value;
136
+ return typeof code === 'string' ? code : undefined;
137
+ }
138
+ return undefined;
139
+ }
140
+ async function oauthError(response, signal, callerSignal) {
141
+ let errorCode;
142
+ try {
143
+ const parsed = await readResponseBody(response, signal);
144
+ if (typeof parsed === 'object' && parsed !== null && hasOwn(parsed, 'error')) {
145
+ const code = readOAuthErrorCode(Object.getOwnPropertyDescriptor(parsed, 'error')?.value);
146
+ if (code !== undefined && SAFE_OAUTH_ERRORS.has(code)) {
147
+ errorCode = { error: code };
148
+ }
149
+ }
150
+ }
151
+ catch {
152
+ callerSignal?.throwIfAborted();
153
+ if (signal?.aborted &&
154
+ !(signal.reason instanceof APIConnectionTimeoutError && isTransientX509ConnectionError(signal.reason))) {
155
+ signal.throwIfAborted();
156
+ }
157
+ }
158
+ const { status } = response;
159
+ if (status !== 400 && status !== 401 && status !== 403) {
160
+ throw new OpenAIError('X.509 workload identity received an invalid OAuth error status.');
161
+ }
162
+ const headers = safeResponseHeaders(response);
163
+ const error = new OAuthError(status, errorCode, headers);
164
+ rememberX509OAuthError(error, { status, error: errorCode, headers });
165
+ return error;
166
+ }
167
+ /** Exchanges one enrolled client certificate for a validated OpenAI workload access token. */
168
+ export async function exchangeX509Token(options) {
169
+ const { signal: callerSignal } = options;
170
+ callerSignal?.throwIfAborted();
171
+ const { identityProviderId, serviceAccountId, transport } = options;
172
+ if (typeof identityProviderId !== 'string' ||
173
+ identityProviderId.trim().length === 0 ||
174
+ typeof serviceAccountId !== 'string' ||
175
+ serviceAccountId.trim().length === 0) {
176
+ throw new OpenAIError('X.509 workload identity requires nonempty provider and service-account identifiers.');
177
+ }
178
+ const timeoutController = new AbortController();
179
+ const signal = callerSignal
180
+ ? AbortSignal.any([callerSignal, timeoutController.signal])
181
+ : timeoutController.signal;
182
+ const timeout = setTimeout(() => {
183
+ const error = new APIConnectionTimeoutError({
184
+ message: 'X.509 workload identity token exchange timed out.',
185
+ });
186
+ markTransientX509ConnectionError(error);
187
+ timeoutController.abort(error);
188
+ }, MAX_TOKEN_EXCHANGE_DURATION_MS);
189
+ timeout.unref();
190
+ try {
191
+ const body = JSON.stringify({
192
+ grant_type: TOKEN_EXCHANGE_GRANT,
193
+ subject_token_type: X509_SUBJECT_TOKEN,
194
+ identity_provider_id: identityProviderId,
195
+ service_account_id: serviceAccountId,
196
+ });
197
+ let response;
198
+ try {
199
+ response = await sendX509Request(transport, TOKEN_EXCHANGE_URL, {
200
+ method: 'POST',
201
+ headers: { 'Content-Type': 'application/json' },
202
+ body,
203
+ redirect: 'manual',
204
+ signal,
205
+ });
206
+ }
207
+ catch (error) {
208
+ signal.throwIfAborted();
209
+ throw transientConnectionError('X.509 workload identity token exchange connection failed.', error);
210
+ }
211
+ signal.throwIfAborted();
212
+ if (response.ok) {
213
+ try {
214
+ return validateTokenResponse(await readResponseBody(response, signal));
215
+ }
216
+ catch (error) {
217
+ signal.throwIfAborted();
218
+ if (error instanceof APIConnectionError) {
219
+ throw error;
220
+ }
221
+ if (error instanceof OpenAIError) {
222
+ throw APIError.generate(response.status, undefined, error.message, safeResponseHeaders(response));
223
+ }
224
+ throw error;
225
+ }
226
+ }
227
+ if (response.status === 400 || response.status === 401 || response.status === 403) {
228
+ throw await oauthError(response, signal, callerSignal);
229
+ }
230
+ cancelResponseBody(response);
231
+ const retryableStatus = response.status === 408 || response.status === 409 || response.status === 429 || response.status >= 500;
232
+ const headers = safeResponseHeaders(response, retryableStatus);
233
+ const error = APIError.generate(response.status, undefined, 'X.509 workload identity token exchange failed.', headers);
234
+ if (retryableStatus && headers.get('x-should-retry') !== 'false') {
235
+ markRetryableX509IssuerError(error);
236
+ }
237
+ throw error;
238
+ }
239
+ finally {
240
+ clearTimeout(timeout);
241
+ }
242
+ }
243
+ //# sourceMappingURL=x509-token-exchange.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"x509-token-exchange.mjs","sourceRoot":"","sources":["../../src/internal/auth/x509-token-exchange.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,kBAAkB,EAClB,yBAAyB,EACzB,QAAQ,EACR,UAAU,EACV,WAAW,GACZ,6BAAyB;AAC1B,OAAO,EAAE,MAAM,EAAE,4BAAwB;AACzC,OAAO,EAAE,eAAe,EAAE,wCAAoC;AAC9D,OAAO,EAAE,+BAA+B,EAAE,sCAAkC;AAC5E,OAAO,EACL,8BAA8B,EAC9B,4BAA4B,EAC5B,gCAAgC,EAChC,sBAAsB,GACvB,MAAM,uBAAuB,CAAC;AAK/B,MAAM,kBAAkB,GAAG,IAAI,GAAG,CAAC,0CAA0C,CAAC,CAAC;AAC/E,MAAM,oBAAoB,GAAG,iDAAiD,CAAC;AAC/E,MAAM,kBAAkB,GAAG,yCAAyC,CAAC;AACrE,MAAM,iBAAiB,GAAG,+CAA+C,CAAC;AAC1E,MAAM,iBAAiB,GAAG,yBAAyB,CAAC;AACpD,MAAM,iBAAiB,GAAG,IAAI,GAAG,CAAC,CAAC,eAAe,EAAE,uBAAuB,EAAE,6BAA6B,CAAC,CAAC,CAAC;AAC7G,MAAM,qBAAqB,GAAG,CAAC,aAAa,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,cAAc,CAAC,CAAC;AAClG,MAAM,8BAA8B,GAAG,IAAI,CAAC;AAE5C,SAAS,wBAAwB,CAAC,OAAe,EAAE,OAAgB;IACjE,MAAM,KAAK,GAAG,IAAI,kBAAkB,CAAC,EAAE,OAAO,EAAE,CAAC,CAAC;IAClD,IAAI,+BAA+B,CAAC,OAAO,CAAC,EAAE,CAAC;QAC7C,gCAAgC,CAAC,KAAK,CAAC,CAAC;IAC1C,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAiBD,KAAK,UAAU,YAAY,CACzB,MAA+C,EAC/C,MAAgB;IAEhB,IAAI,CAAC;QACH,MAAM,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;IAC9B,CAAC;IAAC,MAAM,CAAC;QACP,2FAA2F;IAC7F,CAAC;AACH,CAAC;AAED,SAAS,kBAAkB,CAAC,QAAkB;IAC5C,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC;QACnB,OAAO;IACT,CAAC;IAED,MAAM,MAAM,GAAG,QAAQ,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC;IACzC,IAAI,CAAC;QACH,KAAK,YAAY,CAAC,MAAM,CAAC,CAAC;IAC5B,CAAC;YAAS,CAAC;QACT,MAAM,CAAC,WAAW,EAAE,CAAC;IACvB,CAAC;AACH,CAAC;AAED,KAAK,UAAU,gBAAgB,CAAC,QAAkB,EAAE,MAAoB;IACtE,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC;QACnB,MAAM,IAAI,WAAW,CAAC,+DAA+D,CAAC,CAAC;IACzF,CAAC;IAED,MAAM,MAAM,GAAG,QAAQ,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC;IACzC,MAAM,MAAM,GAAiB,EAAE,CAAC;IAChC,IAAI,UAAU,GAAG,CAAC,CAAC;IACnB,MAAM,MAAM,GAAG,GAAG,EAAE;QAClB,KAAK,YAAY,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;IAC5C,CAAC,CAAC;IACF,MAAM,EAAE,gBAAgB,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;IAE1D,IAAI,CAAC;QACH,OAAO,IAAI,EAAE,CAAC;YACZ,MAAM,EAAE,cAAc,EAAE,CAAC;YACzB,qGAAqG;YACrG,MAAM,KAAK,GAAG,MAAM,MAAM,CAAC,IAAI,EAAE,CAAC;YAClC,MAAM,EAAE,cAAc,EAAE,CAAC;YACzB,IAAI,KAAK,CAAC,IAAI,EAAE,CAAC;gBACf,MAAM;YACR,CAAC;YACD,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;YACzB,UAAU,IAAI,KAAK,CAAC,KAAK,CAAC,UAAU,CAAC;QACvC,CAAC;IACH,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,MAAM,EAAE,CAAC;QACT,IAAI,MAAM,EAAE,OAAO,EAAE,CAAC;YACpB,MAAM,CAAC,cAAc,EAAE,CAAC;QAC1B,CAAC;QACD,MAAM,wBAAwB,CAAC,2DAA2D,EAAE,KAAK,CAAC,CAAC;IACrG,CAAC;YAAS,CAAC;QACT,MAAM,EAAE,mBAAmB,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;QAC7C,MAAM,CAAC,WAAW,EAAE,CAAC;IACvB,CAAC;IAED,MAAM,KAAK,GAAG,IAAI,UAAU,CAAC,UAAU,CAAC,CAAC;IACzC,IAAI,MAAM,GAAG,CAAC,CAAC;IACf,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;QAC3B,KAAK,CAAC,GAAG,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;QACzB,MAAM,IAAI,KAAK,CAAC,UAAU,CAAC;IAC7B,CAAC;IAED,IAAI,CAAC;QACH,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,WAAW,CAAC,OAAO,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;IAC7E,CAAC;IAAC,MAAM,CAAC;QACP,MAAM,IAAI,WAAW,CAAC,+DAA+D,CAAC,CAAC;IACzF,CAAC;AACH,CAAC;AAED,SAAS,qBAAqB,CAAC,KAAc;IAC3C,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;QACxE,MAAM,IAAI,WAAW,CAAC,4EAA4E,CAAC,CAAC;IACtG,CAAC;IAED,MAAM,QAAQ,GAAG,KAAgC,CAAC;IAClD,IACE,CAAC,MAAM,CAAC,QAAQ,EAAE,cAAc,CAAC;QACjC,OAAO,QAAQ,CAAC,cAAc,CAAC,KAAK,QAAQ;QAC5C,CAAC,iBAAiB,CAAC,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC,CAAC,EACjD,CAAC;QACD,MAAM,IAAI,WAAW,CAAC,0EAA0E,CAAC,CAAC;IACpG,CAAC;IACD,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE,YAAY,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE,mBAAmB,CAAC,EAAE,CAAC;QAC9E,MAAM,IAAI,WAAW,CAAC,wEAAwE,CAAC,CAAC;IAClG,CAAC;IACD,MAAM,SAAS,GAAG,QAAQ,CAAC,YAAY,CAAC,CAAC;IACzC,IACE,OAAO,SAAS,KAAK,QAAQ;QAC7B,SAAS,CAAC,WAAW,EAAE,KAAK,QAAQ;QACpC,QAAQ,CAAC,mBAAmB,CAAC,KAAK,iBAAiB,EACnD,CAAC;QACD,MAAM,IAAI,WAAW,CAAC,wEAAwE,CAAC,CAAC;IAClG,CAAC;IAED,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE,YAAY,CAAC,EAAE,CAAC;QACpC,MAAM,IAAI,WAAW,CAAC,4EAA4E,CAAC,CAAC;IACtG,CAAC;IACD,MAAM,SAAS,GAAG,QAAQ,CAAC,YAAY,CAAC,CAAC;IACzC,IAAI,OAAO,SAAS,KAAK,QAAQ,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,SAAS,CAAC,IAAI,SAAS,IAAI,CAAC,IAAI,SAAS,GAAG,IAAI,EAAE,CAAC;QACvG,MAAM,IAAI,WAAW,CAAC,4EAA4E,CAAC,CAAC;IACtG,CAAC;IAED,OAAO,EAAE,WAAW,EAAE,QAAQ,CAAC,cAAc,CAAC,EAAE,SAAS,EAAE,CAAC;AAC9D,CAAC;AAED,SAAS,mBAAmB,CAAC,QAAkB,EAAE,iBAAiB,GAAG,KAAK;IACxE,MAAM,OAAO,GAAG,IAAI,OAAO,EAAE,CAAC;IAC9B,KAAK,MAAM,IAAI,IAAI,qBAAqB,EAAE,CAAC;QACzC,IAAI,IAAI,KAAK,cAAc,IAAI,CAAC,iBAAiB,EAAE,CAAC;YAClD,SAAS;QACX,CAAC;QACD,MAAM,KAAK,GAAG,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QACzC,IAAI,KAAK,KAAK,IAAI,EAAE,CAAC;YACnB,OAAO,CAAC,GAAG,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;QAC3B,CAAC;IACH,CAAC;IACD,OAAO,OAAO,CAAC;AACjB,CAAC;AAED,SAAS,kBAAkB,CAAC,KAAc;IACxC,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;QAC9B,OAAO,KAAK,CAAC;IACf,CAAC;IACD,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI,IAAI,MAAM,CAAC,KAAK,EAAE,MAAM,CAAC,EAAE,CAAC;QACzE,MAAM,IAAI,GAAY,MAAM,CAAC,wBAAwB,CAAC,KAAK,EAAE,MAAM,CAAC,EAAE,KAAK,CAAC;QAC5E,OAAO,OAAO,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC;IACrD,CAAC;IACD,OAAO,SAAS,CAAC;AACnB,CAAC;AAED,KAAK,UAAU,UAAU,CACvB,QAAkB,EAClB,MAAoB,EACpB,YAA0B;IAE1B,IAAI,SAAwC,CAAC;IAE7C,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,MAAM,gBAAgB,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;QACxD,IAAI,OAAO,MAAM,KAAK,QAAQ,IAAI,MAAM,KAAK,IAAI,IAAI,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,CAAC;YAC7E,MAAM,IAAI,GAAG,kBAAkB,CAAC,MAAM,CAAC,wBAAwB,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,KAAK,CAAC,CAAC;YACzF,IAAI,IAAI,KAAK,SAAS,IAAI,iBAAiB,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC;gBACtD,SAAS,GAAG,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC;YAC9B,CAAC;QACH,CAAC;IACH,CAAC;IAAC,MAAM,CAAC;QACP,YAAY,EAAE,cAAc,EAAE,CAAC;QAC/B,IACE,MAAM,EAAE,OAAO;YACf,CAAC,CAAC,MAAM,CAAC,MAAM,YAAY,yBAAyB,IAAI,8BAA8B,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,EACtG,CAAC;YACD,MAAM,CAAC,cAAc,EAAE,CAAC;QAC1B,CAAC;IACH,CAAC;IAED,MAAM,EAAE,MAAM,EAAE,GAAG,QAAQ,CAAC;IAC5B,IAAI,MAAM,KAAK,GAAG,IAAI,MAAM,KAAK,GAAG,IAAI,MAAM,KAAK,GAAG,EAAE,CAAC;QACvD,MAAM,IAAI,WAAW,CAAC,iEAAiE,CAAC,CAAC;IAC3F,CAAC;IACD,MAAM,OAAO,GAAG,mBAAmB,CAAC,QAAQ,CAAC,CAAC;IAC9C,MAAM,KAAK,GAAG,IAAI,UAAU,CAAC,MAAM,EAAE,SAAS,EAAE,OAAO,CAAC,CAAC;IACzD,sBAAsB,CAAC,KAAK,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,SAAS,EAAE,OAAO,EAAE,CAAC,CAAC;IACrE,OAAO,KAAK,CAAC;AACf,CAAC;AAED,8FAA8F;AAC9F,MAAM,CAAC,KAAK,UAAU,iBAAiB,CAAC,OAAiC;IACvE,MAAM,EAAE,MAAM,EAAE,YAAY,EAAE,GAAG,OAAO,CAAC;IACzC,YAAY,EAAE,cAAc,EAAE,CAAC;IAC/B,MAAM,EAAE,kBAAkB,EAAE,gBAAgB,EAAE,SAAS,EAAE,GAAG,OAAO,CAAC;IACpE,IACE,OAAO,kBAAkB,KAAK,QAAQ;QACtC,kBAAkB,CAAC,IAAI,EAAE,CAAC,MAAM,KAAK,CAAC;QACtC,OAAO,gBAAgB,KAAK,QAAQ;QACpC,gBAAgB,CAAC,IAAI,EAAE,CAAC,MAAM,KAAK,CAAC,EACpC,CAAC;QACD,MAAM,IAAI,WAAW,CACnB,qFAAqF,CACtF,CAAC;IACJ,CAAC;IAED,MAAM,iBAAiB,GAAG,IAAI,eAAe,EAAE,CAAC;IAChD,MAAM,MAAM,GAAG,YAAY;QACzB,CAAC,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,YAAY,EAAE,iBAAiB,CAAC,MAAM,CAAC,CAAC;QAC3D,CAAC,CAAC,iBAAiB,CAAC,MAAM,CAAC;IAC7B,MAAM,OAAO,GAAG,UAAU,CAAC,GAAG,EAAE;QAC9B,MAAM,KAAK,GAAG,IAAI,yBAAyB,CAAC;YAC1C,OAAO,EAAE,mDAAmD;SAC7D,CAAC,CAAC;QACH,gCAAgC,CAAC,KAAK,CAAC,CAAC;QACxC,iBAAiB,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;IACjC,CAAC,EAAE,8BAA8B,CAAC,CAAC;IACnC,OAAO,CAAC,KAAK,EAAE,CAAC;IAEhB,IAAI,CAAC;QACH,MAAM,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC;YAC1B,UAAU,EAAE,oBAAoB;YAChC,kBAAkB,EAAE,kBAAkB;YACtC,oBAAoB,EAAE,kBAAkB;YACxC,kBAAkB,EAAE,gBAAgB;SACrC,CAAC,CAAC;QAEH,IAAI,QAAkB,CAAC;QACvB,IAAI,CAAC;YACH,QAAQ,GAAG,MAAM,eAAe,CAAC,SAAS,EAAE,kBAAkB,EAAE;gBAC9D,MAAM,EAAE,MAAM;gBACd,OAAO,EAAE,EAAE,cAAc,EAAE,kBAAkB,EAAE;gBAC/C,IAAI;gBACJ,QAAQ,EAAE,QAAQ;gBAClB,MAAM;aACP,CAAC,CAAC;QACL,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,CAAC,cAAc,EAAE,CAAC;YACxB,MAAM,wBAAwB,CAAC,2DAA2D,EAAE,KAAK,CAAC,CAAC;QACrG,CAAC;QACD,MAAM,CAAC,cAAc,EAAE,CAAC;QAExB,IAAI,QAAQ,CAAC,EAAE,EAAE,CAAC;YAChB,IAAI,CAAC;gBACH,OAAO,qBAAqB,CAAC,MAAM,gBAAgB,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC,CAAC;YACzE,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,MAAM,CAAC,cAAc,EAAE,CAAC;gBACxB,IAAI,KAAK,YAAY,kBAAkB,EAAE,CAAC;oBACxC,MAAM,KAAK,CAAC;gBACd,CAAC;gBACD,IAAI,KAAK,YAAY,WAAW,EAAE,CAAC;oBACjC,MAAM,QAAQ,CAAC,QAAQ,CAAC,QAAQ,CAAC,MAAM,EAAE,SAAS,EAAE,KAAK,CAAC,OAAO,EAAE,mBAAmB,CAAC,QAAQ,CAAC,CAAC,CAAC;gBACpG,CAAC;gBACD,MAAM,KAAK,CAAC;YACd,CAAC;QACH,CAAC;QACD,IAAI,QAAQ,CAAC,MAAM,KAAK,GAAG,IAAI,QAAQ,CAAC,MAAM,KAAK,GAAG,IAAI,QAAQ,CAAC,MAAM,KAAK,GAAG,EAAE,CAAC;YAClF,MAAM,MAAM,UAAU,CAAC,QAAQ,EAAE,MAAM,EAAE,YAAY,CAAC,CAAC;QACzD,CAAC;QAED,kBAAkB,CAAC,QAAQ,CAAC,CAAC;QAC7B,MAAM,eAAe,GACnB,QAAQ,CAAC,MAAM,KAAK,GAAG,IAAI,QAAQ,CAAC,MAAM,KAAK,GAAG,IAAI,QAAQ,CAAC,MAAM,KAAK,GAAG,IAAI,QAAQ,CAAC,MAAM,IAAI,GAAG,CAAC;QAC1G,MAAM,OAAO,GAAG,mBAAmB,CAAC,QAAQ,EAAE,eAAe,CAAC,CAAC;QAC/D,MAAM,KAAK,GAAG,QAAQ,CAAC,QAAQ,CAC7B,QAAQ,CAAC,MAAM,EACf,SAAS,EACT,gDAAgD,EAChD,OAAO,CACR,CAAC;QACF,IAAI,eAAe,IAAI,OAAO,CAAC,GAAG,CAAC,gBAAgB,CAAC,KAAK,OAAO,EAAE,CAAC;YACjE,4BAA4B,CAAC,KAAK,CAAC,CAAC;QACtC,CAAC;QACD,MAAM,KAAK,CAAC;IACd,CAAC;YAAS,CAAC;QACT,YAAY,CAAC,OAAO,CAAC,CAAC;IACxB,CAAC;AACH,CAAC"}
@@ -0,0 +1,37 @@
1
+ import { Agent, ProxyAgent } from 'undici';
2
+ import type { RegisteredX509Transport, X509Transport } from "./x509-transport-registry.mjs";
3
+ export type { X509Transport } from "./x509-transport-registry.mjs";
4
+ /** Explicitly supported, application-owned Undici proxy configurations. */
5
+ export type X509ProxyMode = 'direct' | 'http-connect' | 'https-connect';
6
+ /** Application attestation for one caller-owned static-certificate Undici transport. */
7
+ export interface X509TransportOptions {
8
+ /** X.509 transport currently supports genuine Node.js runtimes only. */
9
+ runtime: 'node';
10
+ /** Caller-owned Undici Agent or ProxyAgent; the SDK never closes or inspects it. */
11
+ dispatcher: Agent | ProxyAgent;
12
+ /** Attests that the dispatcher uses one static workload-certificate identity. */
13
+ certificateIdentity: 'static';
14
+ /** Attests that proxy TLS and CONNECT credentials are independently configured. */
15
+ proxy: X509ProxyMode;
16
+ }
17
+ /** Registers only a genuine frozen capability whose JavaScript private dispatcher cannot be forged. */
18
+ export declare function registerX509Transport(transport: X509Transport, registered: RegisteredX509Transport): void;
19
+ /**
20
+ * Creates a frozen, opaque capability for one caller-owned Undici transport.
21
+ *
22
+ * `certificateIdentity: 'static'` is an application attestation: the SDK does
23
+ * not inspect certificates, private dispatcher internals, callbacks, or TLS
24
+ * options and cannot cryptographically prove certificate selection. Configure
25
+ * one static identity without custom dispatcher factories. For HTTPS CONNECT,
26
+ * independently configure `proxyTls` and `requestTls` so workload credentials
27
+ * never reach the proxy. Rotation requires creating a fresh dispatcher and
28
+ * capability; the application remains responsible for draining the old one.
29
+ *
30
+ * This Node-only preview entrypoint requires the optional `undici` peer at
31
+ * version 5.2.0 or later. CONNECT proxy modes require version 5.5.1 or
32
+ * later; ordinary SDK clients retain broader compatibility.
33
+ */
34
+ export declare function createX509Transport(options: X509TransportOptions): X509Transport;
35
+ /** Dispatches through the opaque attested transport without accepting replacement dispatchers. */
36
+ export declare function sendX509Request(transport: X509Transport, target: URL, options: RequestInit): Promise<Response>;
37
+ //# sourceMappingURL=x509-transport-capability.d.mts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"x509-transport-capability.d.mts","sourceRoot":"","sources":["../../src/internal/auth/x509-transport-capability.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,EAAE,UAAU,EAAkB,MAAM,QAAQ,CAAC;AAG3D,OAAO,KAAK,EAAE,uBAAuB,EAAE,aAAa,EAAE,sCAAkC;AAGxF,YAAY,EAAE,aAAa,EAAE,sCAAkC;AAE/D,2EAA2E;AAC3E,MAAM,MAAM,aAAa,GAAG,QAAQ,GAAG,cAAc,GAAG,eAAe,CAAC;AAExE,wFAAwF;AACxF,MAAM,WAAW,oBAAoB;IACnC,wEAAwE;IACxE,OAAO,EAAE,MAAM,CAAC;IAEhB,oFAAoF;IACpF,UAAU,EAAE,KAAK,GAAG,UAAU,CAAC;IAE/B,iFAAiF;IACjF,mBAAmB,EAAE,QAAQ,CAAC;IAE9B,mFAAmF;IACnF,KAAK,EAAE,aAAa,CAAC;CACtB;AAoBD,uGAAuG;AACvG,wBAAgB,qBAAqB,CAAC,SAAS,EAAE,aAAa,EAAE,UAAU,EAAE,uBAAuB,GAAG,IAAI,CAczG;AAsFD;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,oBAAoB,GAAG,aAAa,CA2BhF;AAED,kGAAkG;AAClG,wBAAsB,eAAe,CACnC,SAAS,EAAE,aAAa,EACxB,MAAM,EAAE,GAAG,EACX,OAAO,EAAE,WAAW,GACnB,OAAO,CAAC,QAAQ,CAAC,CAuBnB"}
@@ -0,0 +1,37 @@
1
+ import { Agent, ProxyAgent } from 'undici';
2
+ import type { RegisteredX509Transport, X509Transport } from "./x509-transport-registry.js";
3
+ export type { X509Transport } from "./x509-transport-registry.js";
4
+ /** Explicitly supported, application-owned Undici proxy configurations. */
5
+ export type X509ProxyMode = 'direct' | 'http-connect' | 'https-connect';
6
+ /** Application attestation for one caller-owned static-certificate Undici transport. */
7
+ export interface X509TransportOptions {
8
+ /** X.509 transport currently supports genuine Node.js runtimes only. */
9
+ runtime: 'node';
10
+ /** Caller-owned Undici Agent or ProxyAgent; the SDK never closes or inspects it. */
11
+ dispatcher: Agent | ProxyAgent;
12
+ /** Attests that the dispatcher uses one static workload-certificate identity. */
13
+ certificateIdentity: 'static';
14
+ /** Attests that proxy TLS and CONNECT credentials are independently configured. */
15
+ proxy: X509ProxyMode;
16
+ }
17
+ /** Registers only a genuine frozen capability whose JavaScript private dispatcher cannot be forged. */
18
+ export declare function registerX509Transport(transport: X509Transport, registered: RegisteredX509Transport): void;
19
+ /**
20
+ * Creates a frozen, opaque capability for one caller-owned Undici transport.
21
+ *
22
+ * `certificateIdentity: 'static'` is an application attestation: the SDK does
23
+ * not inspect certificates, private dispatcher internals, callbacks, or TLS
24
+ * options and cannot cryptographically prove certificate selection. Configure
25
+ * one static identity without custom dispatcher factories. For HTTPS CONNECT,
26
+ * independently configure `proxyTls` and `requestTls` so workload credentials
27
+ * never reach the proxy. Rotation requires creating a fresh dispatcher and
28
+ * capability; the application remains responsible for draining the old one.
29
+ *
30
+ * This Node-only preview entrypoint requires the optional `undici` peer at
31
+ * version 5.2.0 or later. CONNECT proxy modes require version 5.5.1 or
32
+ * later; ordinary SDK clients retain broader compatibility.
33
+ */
34
+ export declare function createX509Transport(options: X509TransportOptions): X509Transport;
35
+ /** Dispatches through the opaque attested transport without accepting replacement dispatchers. */
36
+ export declare function sendX509Request(transport: X509Transport, target: URL, options: RequestInit): Promise<Response>;
37
+ //# sourceMappingURL=x509-transport-capability.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"x509-transport-capability.d.ts","sourceRoot":"","sources":["../../src/internal/auth/x509-transport-capability.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,EAAE,UAAU,EAAkB,MAAM,QAAQ,CAAC;AAG3D,OAAO,KAAK,EAAE,uBAAuB,EAAE,aAAa,EAAE,qCAAkC;AAGxF,YAAY,EAAE,aAAa,EAAE,qCAAkC;AAE/D,2EAA2E;AAC3E,MAAM,MAAM,aAAa,GAAG,QAAQ,GAAG,cAAc,GAAG,eAAe,CAAC;AAExE,wFAAwF;AACxF,MAAM,WAAW,oBAAoB;IACnC,wEAAwE;IACxE,OAAO,EAAE,MAAM,CAAC;IAEhB,oFAAoF;IACpF,UAAU,EAAE,KAAK,GAAG,UAAU,CAAC;IAE/B,iFAAiF;IACjF,mBAAmB,EAAE,QAAQ,CAAC;IAE9B,mFAAmF;IACnF,KAAK,EAAE,aAAa,CAAC;CACtB;AAoBD,uGAAuG;AACvG,wBAAgB,qBAAqB,CAAC,SAAS,EAAE,aAAa,EAAE,UAAU,EAAE,uBAAuB,GAAG,IAAI,CAczG;AAsFD;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,oBAAoB,GAAG,aAAa,CA2BhF;AAED,kGAAkG;AAClG,wBAAsB,eAAe,CACnC,SAAS,EAAE,aAAa,EACxB,MAAM,EAAE,GAAG,EACX,OAAO,EAAE,WAAW,GACnB,OAAO,CAAC,QAAQ,CAAC,CAuBnB"}
@@ -0,0 +1,169 @@
1
+ "use strict";
2
+ var _NodeX509Transport_dispatcher;
3
+ Object.defineProperty(exports, "__esModule", { value: true });
4
+ exports.registerX509Transport = registerX509Transport;
5
+ exports.createX509Transport = createX509Transport;
6
+ exports.sendX509Request = sendX509Request;
7
+ const tslib_1 = require("../tslib.js");
8
+ const node_util_1 = require("node:util");
9
+ const undici_1 = require("undici");
10
+ const error_1 = require("../../core/error.js");
11
+ const x509_transport_registry_1 = require("./x509-transport-registry.js");
12
+ const _x509_transport_state_1 = require("#x509-transport-state");
13
+ const allowedOptionNames = new Set(['runtime', 'dispatcher', 'certificateIdentity', 'proxy']);
14
+ const transportBrand = x509_transport_registry_1.x509TransportBrand;
15
+ class NodeX509Transport {
16
+ constructor(dispatcher) {
17
+ _NodeX509Transport_dispatcher.set(this, void 0);
18
+ tslib_1.__classPrivateFieldSet(this, _NodeX509Transport_dispatcher, dispatcher, "f");
19
+ Object.freeze(this);
20
+ }
21
+ static dispatcher(value) {
22
+ return tslib_1.__classPrivateFieldIn(_NodeX509Transport_dispatcher, value) ? tslib_1.__classPrivateFieldGet(value, _NodeX509Transport_dispatcher, "f") : undefined;
23
+ }
24
+ }
25
+ _NodeX509Transport_dispatcher = new WeakMap();
26
+ /** Registers only a genuine frozen capability whose JavaScript private dispatcher cannot be forged. */
27
+ function registerX509Transport(transport, registered) {
28
+ if (!transport ||
29
+ typeof transport !== 'object' ||
30
+ node_util_1.types.isProxy(transport) ||
31
+ !Object.isFrozen(transport) ||
32
+ !NodeX509Transport.dispatcher(transport)) {
33
+ throw new error_1.OpenAIError('Only a genuine frozen X.509 transport capability can be registered.');
34
+ }
35
+ if ((0, _x509_transport_state_1.findRegisteredX509Transport)(transport)) {
36
+ throw new error_1.OpenAIError('An approved X.509 transport capability cannot be registered more than once.');
37
+ }
38
+ (0, _x509_transport_state_1.rememberRegisteredX509Transport)(transport, Object.freeze(registered));
39
+ }
40
+ function dataOption(options, name) {
41
+ const descriptor = Object.getOwnPropertyDescriptor(options, name);
42
+ if (!descriptor || !('value' in descriptor)) {
43
+ throw new Error(`X.509 transport option \`${name}\` must be an own plain data property.`);
44
+ }
45
+ return descriptor.value;
46
+ }
47
+ function assertNodeRuntime() {
48
+ if (typeof process === 'undefined' ||
49
+ process.release.name !== 'node' ||
50
+ 'bun' in process.versions ||
51
+ 'Bun' in globalThis ||
52
+ 'Deno' in globalThis) {
53
+ throw new Error('X.509 transport requires a genuine Node.js runtime.');
54
+ }
55
+ }
56
+ function attestedDispatcher(options) {
57
+ const dispatcher = dataOption(options, 'dispatcher');
58
+ if (!dispatcher || typeof dispatcher !== 'object') {
59
+ throw new Error('X.509 transport requires a caller-owned Undici Agent or ProxyAgent.');
60
+ }
61
+ if (node_util_1.types.isProxy(dispatcher)) {
62
+ throw new Error('X.509 transport does not accept a dispatcher proxy.');
63
+ }
64
+ const isDirect = dispatcher instanceof undici_1.Agent;
65
+ const isConnect = dispatcher instanceof undici_1.ProxyAgent;
66
+ if (!isDirect && !isConnect) {
67
+ throw new Error('X.509 transport requires a caller-owned Undici Agent or ProxyAgent.');
68
+ }
69
+ const proxy = dataOption(options, 'proxy');
70
+ if (proxy !== 'direct' && proxy !== 'http-connect' && proxy !== 'https-connect') {
71
+ throw new Error('X.509 transport requires an explicitly supported proxy mode.');
72
+ }
73
+ if ((proxy === 'direct') !== isDirect) {
74
+ throw new Error('An X.509 CONNECT proxy requires an Undici ProxyAgent.');
75
+ }
76
+ return dispatcher;
77
+ }
78
+ function assertRequestDispatcherSupport(dispatcher) {
79
+ let observesRequestDispatcher = false;
80
+ // about:blank never reaches the network; the getter checks the actual fetch contract.
81
+ void Promise.allSettled([
82
+ (0, undici_1.fetch)('about:blank', {
83
+ get dispatcher() {
84
+ observesRequestDispatcher = true;
85
+ return dispatcher;
86
+ },
87
+ }),
88
+ ]);
89
+ if (!observesRequestDispatcher) {
90
+ throw new Error('X.509 transport requires Undici 5.2.0 or later with per-request dispatcher support.');
91
+ }
92
+ }
93
+ function assertConnectProxySupport() {
94
+ const targetOrigin = 'https://127.0.0.1:65535';
95
+ let routedOrigin;
96
+ const probe = new undici_1.ProxyAgent({
97
+ uri: 'http://127.0.0.1:1',
98
+ factory(origin) {
99
+ routedOrigin = String(origin);
100
+ throw new Error('X.509 CONNECT capability probe');
101
+ },
102
+ });
103
+ // The throwing factory reveals the actual routing decision before any socket opens.
104
+ const request = (0, undici_1.fetch)(targetOrigin, { dispatcher: probe });
105
+ void Promise.allSettled([request, probe.close()]);
106
+ if (routedOrigin !== targetOrigin) {
107
+ throw new Error('X.509 CONNECT proxy requires Undici 5.5.1 or later with target TLS tunneling.');
108
+ }
109
+ }
110
+ /**
111
+ * Creates a frozen, opaque capability for one caller-owned Undici transport.
112
+ *
113
+ * `certificateIdentity: 'static'` is an application attestation: the SDK does
114
+ * not inspect certificates, private dispatcher internals, callbacks, or TLS
115
+ * options and cannot cryptographically prove certificate selection. Configure
116
+ * one static identity without custom dispatcher factories. For HTTPS CONNECT,
117
+ * independently configure `proxyTls` and `requestTls` so workload credentials
118
+ * never reach the proxy. Rotation requires creating a fresh dispatcher and
119
+ * capability; the application remains responsible for draining the old one.
120
+ *
121
+ * This Node-only preview entrypoint requires the optional `undici` peer at
122
+ * version 5.2.0 or later. CONNECT proxy modes require version 5.5.1 or
123
+ * later; ordinary SDK clients retain broader compatibility.
124
+ */
125
+ function createX509Transport(options) {
126
+ assertNodeRuntime();
127
+ if (!options || typeof options !== 'object' || node_util_1.types.isProxy(options)) {
128
+ throw new Error('X.509 transport configuration must be a non-proxy object.');
129
+ }
130
+ for (const name of Reflect.ownKeys(options)) {
131
+ if (typeof name !== 'string' || !allowedOptionNames.has(name)) {
132
+ throw new Error(`Unsupported X.509 transport option: \`${String(name)}\`.`);
133
+ }
134
+ }
135
+ if (dataOption(options, 'runtime') !== 'node') {
136
+ throw new Error('X.509 transport requires an explicitly attested Node.js runtime.');
137
+ }
138
+ if (dataOption(options, 'certificateIdentity') !== 'static') {
139
+ throw new Error('X.509 transport requires an explicitly attested static client certificate.');
140
+ }
141
+ const dispatcher = attestedDispatcher(options);
142
+ assertRequestDispatcherSupport(dispatcher);
143
+ if (dispatcher instanceof undici_1.ProxyAgent) {
144
+ assertConnectProxySupport();
145
+ }
146
+ return new NodeX509Transport(dispatcher);
147
+ }
148
+ /** Dispatches through the opaque attested transport without accepting replacement dispatchers. */
149
+ async function sendX509Request(transport, target, options) {
150
+ if (!transport || typeof transport !== 'object' || node_util_1.types.isProxy(transport)) {
151
+ throw new Error('Invalid X.509 transport capability.');
152
+ }
153
+ const dispatcher = NodeX509Transport.dispatcher(transport);
154
+ if (!dispatcher) {
155
+ throw new Error('Invalid X.509 transport capability.');
156
+ }
157
+ const normalizedTarget = new URL(target.href);
158
+ if (normalizedTarget.protocol !== 'https:') {
159
+ throw new Error('X.509 transport requires an HTTPS destination.');
160
+ }
161
+ if (Object.getOwnPropertyDescriptor(options, 'dispatcher')) {
162
+ throw new Error('X.509 transport does not allow a per-request dispatcher override.');
163
+ }
164
+ const requestOptions = options;
165
+ const request = new undici_1.Request(normalizedTarget, requestOptions);
166
+ const response = await (0, undici_1.fetch)(request, { dispatcher, redirect: 'manual' });
167
+ return response;
168
+ }
169
+ //# sourceMappingURL=x509-transport-capability.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"x509-transport-capability.js","sourceRoot":"","sources":["../../src/internal/auth/x509-transport-capability.ts"],"names":[],"mappings":";;;AA8CA,sDAcC;AAqGD,kDA2BC;AAGD,0CA2BC;;AA1ND,yCAAkC;AAClC,mCAA2D;AAC3D,+CAA+C;AAC/C,0EAA+D;AAE/D,iEAAqG;AAsBrG,MAAM,kBAAkB,GAAG,IAAI,GAAG,CAAC,CAAC,SAAS,EAAE,YAAY,EAAE,qBAAqB,EAAE,OAAO,CAAC,CAAC,CAAC;AAC9F,MAAM,cAAc,GAA8B,4CAAkB,CAAC;AAErE,MAAM,iBAAiB;IAKrB,YAAY,UAA8B;QAFjC,gDAAgC;QAGvC,+BAAA,IAAI,iCAAe,UAAU,MAAA,CAAC;QAC9B,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;IACtB,CAAC;IAED,MAAM,CAAC,UAAU,CAAC,KAAa;QAC7B,OAAO,6DAAe,KAAK,EAAC,CAAC,CAAC,+BAAA,KAAK,qCAAY,CAAC,CAAC,CAAC,SAAS,CAAC;IAC9D,CAAC;CACF;;AAED,uGAAuG;AACvG,SAAgB,qBAAqB,CAAC,SAAwB,EAAE,UAAmC;IACjG,IACE,CAAC,SAAS;QACV,OAAO,SAAS,KAAK,QAAQ;QAC7B,iBAAK,CAAC,OAAO,CAAC,SAAS,CAAC;QACxB,CAAC,MAAM,CAAC,QAAQ,CAAC,SAAS,CAAC;QAC3B,CAAC,iBAAiB,CAAC,UAAU,CAAC,SAAS,CAAC,EACxC,CAAC;QACD,MAAM,IAAI,mBAAW,CAAC,qEAAqE,CAAC,CAAC;IAC/F,CAAC;IACD,IAAI,IAAA,mDAA2B,EAAC,SAAS,CAAC,EAAE,CAAC;QAC3C,MAAM,IAAI,mBAAW,CAAC,6EAA6E,CAAC,CAAC;IACvG,CAAC;IACD,IAAA,uDAA+B,EAAC,SAAS,EAAE,MAAM,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC;AACxE,CAAC;AAED,SAAS,UAAU,CAAC,OAA6B,EAAE,IAAgC;IACjF,MAAM,UAAU,GAAG,MAAM,CAAC,wBAAwB,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;IAClE,IAAI,CAAC,UAAU,IAAI,CAAC,CAAC,OAAO,IAAI,UAAU,CAAC,EAAE,CAAC;QAC5C,MAAM,IAAI,KAAK,CAAC,4BAA4B,IAAI,wCAAwC,CAAC,CAAC;IAC5F,CAAC;IACD,OAAO,UAAU,CAAC,KAAK,CAAC;AAC1B,CAAC;AAED,SAAS,iBAAiB;IACxB,IACE,OAAO,OAAO,KAAK,WAAW;QAC9B,OAAO,CAAC,OAAO,CAAC,IAAI,KAAK,MAAM;QAC/B,KAAK,IAAI,OAAO,CAAC,QAAQ;QACzB,KAAK,IAAI,UAAU;QACnB,MAAM,IAAI,UAAU,EACpB,CAAC;QACD,MAAM,IAAI,KAAK,CAAC,qDAAqD,CAAC,CAAC;IACzE,CAAC;AACH,CAAC;AAED,SAAS,kBAAkB,CAAC,OAA6B;IACvD,MAAM,UAAU,GAAG,UAAU,CAAC,OAAO,EAAE,YAAY,CAAC,CAAC;IACrD,IAAI,CAAC,UAAU,IAAI,OAAO,UAAU,KAAK,QAAQ,EAAE,CAAC;QAClD,MAAM,IAAI,KAAK,CAAC,qEAAqE,CAAC,CAAC;IACzF,CAAC;IACD,IAAI,iBAAK,CAAC,OAAO,CAAC,UAAU,CAAC,EAAE,CAAC;QAC9B,MAAM,IAAI,KAAK,CAAC,qDAAqD,CAAC,CAAC;IACzE,CAAC;IAED,MAAM,QAAQ,GAAG,UAAU,YAAY,cAAK,CAAC;IAC7C,MAAM,SAAS,GAAG,UAAU,YAAY,mBAAU,CAAC;IACnD,IAAI,CAAC,QAAQ,IAAI,CAAC,SAAS,EAAE,CAAC;QAC5B,MAAM,IAAI,KAAK,CAAC,qEAAqE,CAAC,CAAC;IACzF,CAAC;IAED,MAAM,KAAK,GAAG,UAAU,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;IAC3C,IAAI,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,cAAc,IAAI,KAAK,KAAK,eAAe,EAAE,CAAC;QAChF,MAAM,IAAI,KAAK,CAAC,8DAA8D,CAAC,CAAC;IAClF,CAAC;IACD,IAAI,CAAC,KAAK,KAAK,QAAQ,CAAC,KAAK,QAAQ,EAAE,CAAC;QACtC,MAAM,IAAI,KAAK,CAAC,uDAAuD,CAAC,CAAC;IAC3E,CAAC;IAED,OAAO,UAAU,CAAC;AACpB,CAAC;AAED,SAAS,8BAA8B,CAAC,UAA8B;IACpE,IAAI,yBAAyB,GAAG,KAAK,CAAC;IAEtC,sFAAsF;IACtF,KAAK,OAAO,CAAC,UAAU,CAAC;QACtB,IAAA,cAAK,EAAC,aAAa,EAAE;YACnB,IAAI,UAAU;gBACZ,yBAAyB,GAAG,IAAI,CAAC;gBACjC,OAAO,UAAU,CAAC;YACpB,CAAC;SACF,CAAC;KACH,CAAC,CAAC;IAEH,IAAI,CAAC,yBAAyB,EAAE,CAAC;QAC/B,MAAM,IAAI,KAAK,CAAC,qFAAqF,CAAC,CAAC;IACzG,CAAC;AACH,CAAC;AAED,SAAS,yBAAyB;IAChC,MAAM,YAAY,GAAG,yBAAyB,CAAC;IAC/C,IAAI,YAAgC,CAAC;IACrC,MAAM,KAAK,GAAG,IAAI,mBAAU,CAAC;QAC3B,GAAG,EAAE,oBAAoB;QACzB,OAAO,CAAC,MAAM;YACZ,YAAY,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC;YAC9B,MAAM,IAAI,KAAK,CAAC,gCAAgC,CAAC,CAAC;QACpD,CAAC;KACF,CAAC,CAAC;IAEH,oFAAoF;IACpF,MAAM,OAAO,GAAG,IAAA,cAAK,EAAC,YAAY,EAAE,EAAE,UAAU,EAAE,KAAK,EAAE,CAAC,CAAC;IAC3D,KAAK,OAAO,CAAC,UAAU,CAAC,CAAC,OAAO,EAAE,KAAK,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;IAElD,IAAI,YAAY,KAAK,YAAY,EAAE,CAAC;QAClC,MAAM,IAAI,KAAK,CAAC,+EAA+E,CAAC,CAAC;IACnG,CAAC;AACH,CAAC;AAED;;;;;;;;;;;;;;GAcG;AACH,SAAgB,mBAAmB,CAAC,OAA6B;IAC/D,iBAAiB,EAAE,CAAC;IAEpB,IAAI,CAAC,OAAO,IAAI,OAAO,OAAO,KAAK,QAAQ,IAAI,iBAAK,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC;QACtE,MAAM,IAAI,KAAK,CAAC,2DAA2D,CAAC,CAAC;IAC/E,CAAC;IAED,KAAK,MAAM,IAAI,IAAI,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC;QAC5C,IAAI,OAAO,IAAI,KAAK,QAAQ,IAAI,CAAC,kBAAkB,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC;YAC9D,MAAM,IAAI,KAAK,CAAC,yCAAyC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAC9E,CAAC;IACH,CAAC;IAED,IAAI,UAAU,CAAC,OAAO,EAAE,SAAS,CAAC,KAAK,MAAM,EAAE,CAAC;QAC9C,MAAM,IAAI,KAAK,CAAC,kEAAkE,CAAC,CAAC;IACtF,CAAC;IAED,IAAI,UAAU,CAAC,OAAO,EAAE,qBAAqB,CAAC,KAAK,QAAQ,EAAE,CAAC;QAC5D,MAAM,IAAI,KAAK,CAAC,4EAA4E,CAAC,CAAC;IAChG,CAAC;IAED,MAAM,UAAU,GAAG,kBAAkB,CAAC,OAAO,CAAC,CAAC;IAC/C,8BAA8B,CAAC,UAAU,CAAC,CAAC;IAC3C,IAAI,UAAU,YAAY,mBAAU,EAAE,CAAC;QACrC,yBAAyB,EAAE,CAAC;IAC9B,CAAC;IACD,OAAO,IAAI,iBAAiB,CAAC,UAAU,CAAC,CAAC;AAC3C,CAAC;AAED,kGAAkG;AAC3F,KAAK,UAAU,eAAe,CACnC,SAAwB,EACxB,MAAW,EACX,OAAoB;IAEpB,IAAI,CAAC,SAAS,IAAI,OAAO,SAAS,KAAK,QAAQ,IAAI,iBAAK,CAAC,OAAO,CAAC,SAAS,CAAC,EAAE,CAAC;QAC5E,MAAM,IAAI,KAAK,CAAC,qCAAqC,CAAC,CAAC;IACzD,CAAC;IAED,MAAM,UAAU,GAAG,iBAAiB,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC;IAC3D,IAAI,CAAC,UAAU,EAAE,CAAC;QAChB,MAAM,IAAI,KAAK,CAAC,qCAAqC,CAAC,CAAC;IACzD,CAAC;IAED,MAAM,gBAAgB,GAAG,IAAI,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;IAC9C,IAAI,gBAAgB,CAAC,QAAQ,KAAK,QAAQ,EAAE,CAAC;QAC3C,MAAM,IAAI,KAAK,CAAC,gDAAgD,CAAC,CAAC;IACpE,CAAC;IAED,IAAI,MAAM,CAAC,wBAAwB,CAAC,OAAO,EAAE,YAAY,CAAC,EAAE,CAAC;QAC3D,MAAM,IAAI,KAAK,CAAC,mEAAmE,CAAC,CAAC;IACvF,CAAC;IAED,MAAM,cAAc,GAAoC,OAAO,CAAC;IAChE,MAAM,OAAO,GAAG,IAAI,gBAAO,CAAC,gBAAgB,EAAE,cAAc,CAAC,CAAC;IAC9D,MAAM,QAAQ,GAAG,MAAM,IAAA,cAAK,EAAC,OAAO,EAAE,EAAE,UAAU,EAAE,QAAQ,EAAE,QAAQ,EAAE,CAAC,CAAC;IAC1E,OAAO,QAAQ,CAAC;AAClB,CAAC"}