openai 7.5.0 → 7.6.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 +105 -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 +58 -19
  92. package/core/streaming.js.map +1 -1
  93. package/core/streaming.mjs +58 -19
  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 +9 -12
  427. package/resources/beta/responses/responses.d.mts.map +1 -1
  428. package/resources/beta/responses/responses.d.ts +9 -12
  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 +9 -12
  492. package/resources/responses/responses.d.mts.map +1 -1
  493. package/resources/responses/responses.d.ts +9 -12
  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 +71 -20
  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 +9 -12
  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 +9 -12
  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
@@ -1,9 +1,343 @@
1
1
  "use strict";
2
- var _EventStream_instances, _EventStream_connectedPromise, _EventStream_resolveConnectedPromise, _EventStream_rejectConnectedPromise, _EventStream_endPromise, _EventStream_resolveEndPromise, _EventStream_rejectEndPromise, _EventStream_listeners, _EventStream_abortListeners, _EventStream_ended, _EventStream_errored, _EventStream_aborted, _EventStream_catchingPromiseCreated, _EventStream_removeAbortListeners, _EventStream_handleError;
2
+ var _EventStream_instances, _EventStream_connectedPromise, _EventStream_resolveConnectedPromise, _EventStream_rejectConnectedPromise, _EventStream_endPromise, _EventStream_resolveEndPromise, _EventStream_rejectEndPromise, _EventStream_listeners, _EventStream_abortListeners, _EventStream_emittedListenerRegistrations, _EventStream_pendingListenerCleanup, _EventStream_pendingBufferedEventChecks, _EventStream_listenerDispatchDepth, _EventStream_ended, _EventStream_errored, _EventStream_aborted, _EventStream_catchingPromiseCreated, _EventStream_removeAbortListeners, _EventStream_onceForEmitted, _EventStream_removeEmittedListener, _EventStream_cleanupEmittedListeners, _EventStream_handleError;
3
3
  Object.defineProperty(exports, "__esModule", { value: true });
4
4
  exports.EventStream = void 0;
5
5
  const tslib_1 = require("../internal/tslib.js");
6
6
  const error_1 = require("../error.js");
7
+ const MAX_BUFFERED_ITERATOR_EVENTS = 4096;
8
+ const MAX_BUFFERED_ITERATOR_BYTES = 8 * 1024 * 1024;
9
+ // Typed-array own-key enumeration materializes every dense index before custom keys.
10
+ const MAX_INSPECTABLE_TYPED_ARRAY_ELEMENTS = 4096;
11
+ // Structured JSON may nest 128 levels before stream-event wrappers are added.
12
+ const MAX_BUFFERED_EVENT_DEPTH = 256;
13
+ const bufferedJSONStringify = JSON.stringify;
14
+ const bufferedJSONParse = JSON.parse;
15
+ const sdkOwnedBufferedEventArguments = new WeakSet();
16
+ const typedArrayBufferGetter = Object.getOwnPropertyDescriptor(Object.getPrototypeOf(Uint8Array.prototype), 'buffer')?.get;
17
+ const typedArrayLengthGetter = Object.getOwnPropertyDescriptor(Object.getPrototypeOf(Uint8Array.prototype), 'length')?.get;
18
+ const dataViewBufferGetter = Object.getOwnPropertyDescriptor(DataView.prototype, 'buffer')?.get;
19
+ const symbolDescriptionGetter = Object.getOwnPropertyDescriptor(Symbol.prototype, 'description')?.get;
20
+ const dateTimestampGetter = Date.prototype.getTime;
21
+ const arrayBufferByteLengthGetter = Object.getOwnPropertyDescriptor(ArrayBuffer.prototype, 'byteLength')?.get;
22
+ const sharedArrayBufferByteLengthGetter = typeof SharedArrayBuffer === 'function'
23
+ ? Object.getOwnPropertyDescriptor(SharedArrayBuffer.prototype, 'byteLength')?.get
24
+ : undefined;
25
+ // V8 uses the same trusted lazy-stack accessor pair for native Error instances.
26
+ const errorStackDescriptor = Object.getOwnPropertyDescriptor(new Error('native stack descriptor'), 'stack');
27
+ const functionToString = Function.prototype.toString;
28
+ const objectToString = Object.prototype.toString;
29
+ const errorBrandDescriptor = Object.getOwnPropertyDescriptor(Error, 'isError');
30
+ const nativeErrorBrand = errorBrandDescriptor && 'value' in errorBrandDescriptor && typeof errorBrandDescriptor.value === 'function'
31
+ ? errorBrandDescriptor.value
32
+ : undefined;
33
+ const nativeErrorConstructorSource = functionToString.call(Error);
34
+ const nativeDateConstructorSource = functionToString.call(Date);
35
+ const nativeFunctionConstructorSource = functionToString.call(Function);
36
+ const trustedIntrinsicPrototypes = new Set([
37
+ error_1.APIConnectionError.prototype,
38
+ error_1.APIConnectionTimeoutError.prototype,
39
+ error_1.APIError.prototype,
40
+ error_1.OpenAIError.prototype,
41
+ error_1.APIUserAbortError.prototype,
42
+ error_1.AuthenticationError.prototype,
43
+ error_1.BadRequestError.prototype,
44
+ error_1.ConflictError.prototype,
45
+ error_1.ContentFilterFinishReasonError.prototype,
46
+ error_1.InternalServerError.prototype,
47
+ error_1.InvalidWebhookSignatureError.prototype,
48
+ error_1.LengthFinishReasonError.prototype,
49
+ error_1.NotFoundError.prototype,
50
+ error_1.OAuthError.prototype,
51
+ error_1.PermissionDeniedError.prototype,
52
+ error_1.RateLimitError.prototype,
53
+ error_1.SubjectTokenProviderError.prototype,
54
+ error_1.UnprocessableEntityError.prototype,
55
+ ]);
56
+ const trustedNativeConstructorSources = new Set();
57
+ const canonicalIntrinsicDescriptors = new Map();
58
+ const foreignErrorStackDescriptors = new WeakMap();
59
+ function captureNativeProxyDetector() {
60
+ if (typeof process === 'undefined') {
61
+ return undefined;
62
+ }
63
+ try {
64
+ const loader = Object.getOwnPropertyDescriptor(process, 'getBuiltinModule');
65
+ if (!loader || !('value' in loader) || typeof loader.value !== 'function') {
66
+ return undefined;
67
+ }
68
+ const util = Reflect.apply(loader.value, process, ['node:util']);
69
+ if (typeof util !== 'object' || util === null) {
70
+ return undefined;
71
+ }
72
+ const types = Object.getOwnPropertyDescriptor(util, 'types');
73
+ if (!types || !('value' in types) || typeof types.value !== 'object' || types.value === null) {
74
+ return undefined;
75
+ }
76
+ const detector = Object.getOwnPropertyDescriptor(types.value, 'isProxy');
77
+ if (!detector || !('value' in detector) || typeof detector.value !== 'function') {
78
+ return undefined;
79
+ }
80
+ return detector.value;
81
+ }
82
+ catch {
83
+ return undefined;
84
+ }
85
+ }
86
+ // Transparent proxies have no portable ECMAScript brand. Newer Node runtimes
87
+ // expose one without adding a Node-only import to browser-compatible bundles.
88
+ const nativeProxyDetector = captureNativeProxyDetector();
89
+ function rememberTrustedIntrinsic(constructor) {
90
+ if (typeof constructor !== 'function') {
91
+ return;
92
+ }
93
+ const prototypeDescriptor = Object.getOwnPropertyDescriptor(constructor, 'prototype');
94
+ if (!prototypeDescriptor ||
95
+ !('value' in prototypeDescriptor) ||
96
+ (typeof prototypeDescriptor.value !== 'object' && typeof prototypeDescriptor.value !== 'function')) {
97
+ return;
98
+ }
99
+ trustedIntrinsicPrototypes.add(prototypeDescriptor.value);
100
+ const source = functionToString.call(constructor);
101
+ if (/^function [A-Za-z_$][\w$]*\(\) \{ \[native code\] \}$/u.test(source) &&
102
+ prototypeDescriptor.configurable === false &&
103
+ prototypeDescriptor.writable === false) {
104
+ trustedNativeConstructorSources.add(source);
105
+ const descriptors = new Map();
106
+ for (const key of Reflect.ownKeys(prototypeDescriptor.value)) {
107
+ const descriptor = Object.getOwnPropertyDescriptor(prototypeDescriptor.value, key);
108
+ if (descriptor) {
109
+ descriptors.set(key, descriptor);
110
+ }
111
+ }
112
+ canonicalIntrinsicDescriptors.set(source, descriptors);
113
+ }
114
+ }
115
+ for (const constructor of [
116
+ Object,
117
+ Function,
118
+ Array,
119
+ Date,
120
+ Map,
121
+ Set,
122
+ ArrayBuffer,
123
+ DataView,
124
+ Error,
125
+ EvalError,
126
+ RangeError,
127
+ ReferenceError,
128
+ SyntaxError,
129
+ TypeError,
130
+ URIError,
131
+ Uint8Array,
132
+ Uint8ClampedArray,
133
+ Uint16Array,
134
+ Uint32Array,
135
+ Int8Array,
136
+ Int16Array,
137
+ Int32Array,
138
+ Float32Array,
139
+ Float64Array,
140
+ ]) {
141
+ rememberTrustedIntrinsic(constructor);
142
+ }
143
+ for (const name of [
144
+ 'SharedArrayBuffer',
145
+ 'AggregateError',
146
+ 'Float16Array',
147
+ 'BigInt64Array',
148
+ 'BigUint64Array',
149
+ 'Blob',
150
+ 'File',
151
+ 'Headers',
152
+ ]) {
153
+ const descriptor = Object.getOwnPropertyDescriptor(globalThis, name);
154
+ if (descriptor && 'value' in descriptor) {
155
+ rememberTrustedIntrinsic(descriptor.value);
156
+ }
157
+ }
158
+ const typedArrayConstructorDescriptor = Object.getOwnPropertyDescriptor(Object.getPrototypeOf(Uint8Array.prototype), 'constructor');
159
+ if (typedArrayConstructorDescriptor && 'value' in typedArrayConstructorDescriptor) {
160
+ rememberTrustedIntrinsic(typedArrayConstructorDescriptor.value);
161
+ }
162
+ if (typeof Buffer === 'function') {
163
+ rememberTrustedIntrinsic(Buffer);
164
+ }
165
+ const blobInternalHandlePrototype = (() => {
166
+ if (typeof Blob !== 'function') {
167
+ return undefined;
168
+ }
169
+ try {
170
+ const blob = new Blob([]);
171
+ for (const key of Object.getOwnPropertySymbols(blob)) {
172
+ const descriptor = Object.getOwnPropertyDescriptor(blob, key);
173
+ if (descriptor && 'value' in descriptor && typeof descriptor.value === 'object' && descriptor.value) {
174
+ return Object.getPrototypeOf(descriptor.value);
175
+ }
176
+ }
177
+ }
178
+ catch {
179
+ return undefined;
180
+ }
181
+ return undefined;
182
+ })();
183
+ const mapEntries = Map.prototype.entries;
184
+ const setValues = Set.prototype.values;
185
+ const headersEntriesDescriptor = typeof Headers === 'function' ? Object.getOwnPropertyDescriptor(Headers.prototype, 'entries') : undefined;
186
+ const headersEntries = headersEntriesDescriptor &&
187
+ 'value' in headersEntriesDescriptor &&
188
+ typeof headersEntriesDescriptor.value === 'function'
189
+ ? headersEntriesDescriptor.value
190
+ : undefined;
191
+ const retainedStorageBrands = new Set([
192
+ 'ArrayBuffer',
193
+ 'SharedArrayBuffer',
194
+ 'Blob',
195
+ 'File',
196
+ 'Map',
197
+ 'Date',
198
+ 'Set',
199
+ 'Headers',
200
+ ]);
201
+ function getTrustedForeignIntrinsic(prototype) {
202
+ const descriptor = Object.getOwnPropertyDescriptor(prototype, 'constructor');
203
+ if (!descriptor || !('value' in descriptor) || typeof descriptor.value !== 'function') {
204
+ return undefined;
205
+ }
206
+ const constructor = descriptor.value;
207
+ const source = functionToString.call(constructor);
208
+ const descriptors = canonicalIntrinsicDescriptors.get(source);
209
+ if (!trustedNativeConstructorSources.has(source) || !descriptors) {
210
+ return undefined;
211
+ }
212
+ const constructorPrototype = Object.getOwnPropertyDescriptor(constructor, 'prototype');
213
+ if (!constructorPrototype ||
214
+ !('value' in constructorPrototype) ||
215
+ constructorPrototype.value !== prototype ||
216
+ constructorPrototype.configurable !== false ||
217
+ constructorPrototype.writable !== false) {
218
+ return undefined;
219
+ }
220
+ return { constructor, descriptors, functionPrototype: Object.getPrototypeOf(constructor) };
221
+ }
222
+ function isTrustedIntrinsicPrototype(prototype) {
223
+ return trustedIntrinsicPrototypes.has(prototype) || getTrustedForeignIntrinsic(prototype) !== undefined;
224
+ }
225
+ function isCanonicalIntrinsicFunction(value, canonical, functionPrototype) {
226
+ if (canonical === undefined) {
227
+ return value === undefined;
228
+ }
229
+ if (typeof value !== 'function' || typeof canonical !== 'function') {
230
+ return false;
231
+ }
232
+ const source = functionToString.call(canonical);
233
+ if (functionToString.call(value) !== source) {
234
+ return false;
235
+ }
236
+ const actualFunctionPrototype = Object.getPrototypeOf(value);
237
+ if (actualFunctionPrototype === functionPrototype) {
238
+ return true;
239
+ }
240
+ if (!/^function [A-Za-z_$][\w$]*\(\) \{ \[native code\] \}$/u.test(source)) {
241
+ return false;
242
+ }
243
+ const intrinsic = getTrustedForeignIntrinsic(actualFunctionPrototype);
244
+ return (intrinsic !== undefined &&
245
+ functionToString.call(intrinsic.constructor) === nativeFunctionConstructorSource);
246
+ }
247
+ function isCanonicalIntrinsicDescriptor(descriptor, canonical, functionPrototype) {
248
+ if (!canonical ||
249
+ descriptor.configurable !== canonical.configurable ||
250
+ descriptor.enumerable !== canonical.enumerable ||
251
+ 'value' in descriptor !== 'value' in canonical) {
252
+ return false;
253
+ }
254
+ if ('value' in descriptor && 'value' in canonical) {
255
+ if (descriptor.writable !== canonical.writable) {
256
+ return false;
257
+ }
258
+ if (typeof canonical.value === 'function') {
259
+ return isCanonicalIntrinsicFunction(descriptor.value, canonical.value, functionPrototype);
260
+ }
261
+ if (canonical.value !== null && typeof canonical.value === 'object') {
262
+ return false;
263
+ }
264
+ return Object.is(descriptor.value, canonical.value);
265
+ }
266
+ return (isCanonicalIntrinsicFunction(descriptor.get, canonical.get, functionPrototype) &&
267
+ isCanonicalIntrinsicFunction(descriptor.set, canonical.set, functionPrototype));
268
+ }
269
+ function hasNativeErrorBrand(current) {
270
+ if (nativeErrorBrand) {
271
+ return nativeErrorBrand.call(Error, current);
272
+ }
273
+ let prototype = current;
274
+ for (let depth = 0; prototype !== null && depth < MAX_BUFFERED_EVENT_DEPTH; depth += 1) {
275
+ if (Object.getOwnPropertyDescriptor(prototype, Symbol.toStringTag)) {
276
+ return false;
277
+ }
278
+ prototype = Object.getPrototypeOf(prototype);
279
+ }
280
+ return prototype === null && objectToString.call(current) === '[object Error]';
281
+ }
282
+ function getVerifiedForeignErrorConstructor(current, stackDescriptor) {
283
+ if (typeof stackDescriptor.get !== 'function' || typeof stackDescriptor.set !== 'function') {
284
+ return undefined;
285
+ }
286
+ let prototype = Object.getPrototypeOf(current);
287
+ for (let depth = 0; prototype !== null && depth < MAX_BUFFERED_EVENT_DEPTH; depth += 1) {
288
+ const descriptor = Object.getOwnPropertyDescriptor(prototype, 'constructor');
289
+ if (descriptor && 'value' in descriptor && typeof descriptor.value === 'function') {
290
+ const constructor = descriptor.value;
291
+ if (functionToString.call(constructor) === nativeErrorConstructorSource &&
292
+ isTrustedIntrinsicPrototype(prototype)) {
293
+ const functionPrototype = Object.getPrototypeOf(constructor);
294
+ if (Object.getPrototypeOf(stackDescriptor.get) === functionPrototype &&
295
+ Object.getPrototypeOf(stackDescriptor.set) === functionPrototype) {
296
+ return { constructor, prototype };
297
+ }
298
+ return undefined;
299
+ }
300
+ }
301
+ prototype = Object.getPrototypeOf(prototype);
302
+ }
303
+ return undefined;
304
+ }
305
+ function isTrustedNativeErrorStack(current, descriptor) {
306
+ if (!hasNativeErrorBrand(current)) {
307
+ return false;
308
+ }
309
+ if (errorStackDescriptor &&
310
+ !('value' in errorStackDescriptor) &&
311
+ typeof errorStackDescriptor.get === 'function' &&
312
+ Object.prototype.isPrototypeOf.call(Error.prototype, current) &&
313
+ descriptor.get === errorStackDescriptor.get &&
314
+ descriptor.set === errorStackDescriptor.set) {
315
+ return true;
316
+ }
317
+ const verified = getVerifiedForeignErrorConstructor(current, descriptor);
318
+ if (!verified) {
319
+ return false;
320
+ }
321
+ let canonicalDescriptor = foreignErrorStackDescriptors.get(verified.prototype);
322
+ if (!canonicalDescriptor) {
323
+ const canonical = Reflect.construct(verified.constructor, []);
324
+ if (typeof canonical !== 'object' ||
325
+ canonical === null ||
326
+ !hasNativeErrorBrand(canonical) ||
327
+ Object.getPrototypeOf(canonical) !== verified.prototype) {
328
+ return false;
329
+ }
330
+ canonicalDescriptor = Object.getOwnPropertyDescriptor(canonical, 'stack');
331
+ if (!canonicalDescriptor ||
332
+ 'value' in canonicalDescriptor ||
333
+ typeof canonicalDescriptor.get !== 'function' ||
334
+ typeof canonicalDescriptor.set !== 'function') {
335
+ return false;
336
+ }
337
+ foreignErrorStackDescriptors.set(verified.prototype, canonicalDescriptor);
338
+ }
339
+ return descriptor.get === canonicalDescriptor.get && descriptor.set === canonicalDescriptor.set;
340
+ }
7
341
  function createEventQueue() {
8
342
  let entries = [];
9
343
  let head = 0;
@@ -37,6 +371,605 @@ function createEventQueue() {
37
371
  },
38
372
  };
39
373
  }
374
+ function getRetainedStorageBrand(current) {
375
+ let prototype = Object.getPrototypeOf(current);
376
+ for (let depth = 0; prototype !== null && depth < MAX_BUFFERED_EVENT_DEPTH; depth += 1) {
377
+ if (prototype === Date.prototype) {
378
+ return 'Date';
379
+ }
380
+ if (!trustedIntrinsicPrototypes.has(prototype)) {
381
+ const constructor = Object.getOwnPropertyDescriptor(prototype, 'constructor');
382
+ if (constructor &&
383
+ 'value' in constructor &&
384
+ typeof constructor.value === 'function' &&
385
+ functionToString.call(constructor.value) === nativeDateConstructorSource &&
386
+ getTrustedForeignIntrinsic(prototype)) {
387
+ return 'Date';
388
+ }
389
+ }
390
+ const descriptor = Object.getOwnPropertyDescriptor(prototype, Symbol.toStringTag);
391
+ if (descriptor &&
392
+ 'value' in descriptor &&
393
+ typeof descriptor.value === 'string' &&
394
+ retainedStorageBrands.has(descriptor.value)) {
395
+ return descriptor.value;
396
+ }
397
+ prototype = Object.getPrototypeOf(prototype);
398
+ }
399
+ return undefined;
400
+ }
401
+ function estimateRetainedBufferBytes(current, visit, depth) {
402
+ if (ArrayBuffer.isView(current)) {
403
+ let buffer;
404
+ let kind = 'typed-array';
405
+ try {
406
+ buffer = typedArrayBufferGetter?.call(current);
407
+ }
408
+ catch {
409
+ kind = 'data-view';
410
+ buffer = dataViewBufferGetter?.call(current);
411
+ }
412
+ if (typeof buffer !== 'object' || buffer === null) {
413
+ return { bytes: Number.POSITIVE_INFINITY, kind };
414
+ }
415
+ // Even a one-byte cross-realm view retains its complete backing allocation.
416
+ visit(buffer, depth + 1);
417
+ return { bytes: 0, kind };
418
+ }
419
+ const brand = getRetainedStorageBrand(current);
420
+ if (!brand) {
421
+ return undefined;
422
+ }
423
+ let getter;
424
+ const kind = 'buffer';
425
+ switch (brand) {
426
+ case 'ArrayBuffer': {
427
+ getter = arrayBufferByteLengthGetter;
428
+ break;
429
+ }
430
+ case 'SharedArrayBuffer': {
431
+ getter = sharedArrayBufferByteLengthGetter;
432
+ break;
433
+ }
434
+ case 'Blob':
435
+ case 'File': {
436
+ // Blob slices can retain an arbitrarily larger native backing allocation,
437
+ // and neither browser nor Node exposes its extent or ownership. Detached
438
+ // queues must fail closed; waiting readers bypass retained-size inspection.
439
+ return { bytes: Number.POSITIVE_INFINITY, kind: 'blob' };
440
+ }
441
+ case 'Map': {
442
+ return { bytes: 0, kind: 'map' };
443
+ }
444
+ case 'Date': {
445
+ Reflect.apply(dateTimestampGetter, current, []);
446
+ return { bytes: 8, kind: 'date' };
447
+ }
448
+ case 'Set': {
449
+ return { bytes: 0, kind: 'set' };
450
+ }
451
+ case 'Headers': {
452
+ return { bytes: 0, kind: 'headers' };
453
+ }
454
+ default: {
455
+ return undefined;
456
+ }
457
+ }
458
+ const bytes = getter?.call(current);
459
+ return {
460
+ bytes: typeof bytes === 'number' && Number.isSafeInteger(bytes) && bytes >= 0
461
+ ? bytes
462
+ : Number.POSITIVE_INFINITY,
463
+ kind,
464
+ };
465
+ }
466
+ function visitHiddenEventValues(current, kind, visit) {
467
+ if (kind === 'map') {
468
+ for (const [key, entry] of mapEntries.call(current)) {
469
+ if (!visit(key, 8) || !visit(entry, 8)) {
470
+ return false;
471
+ }
472
+ }
473
+ }
474
+ if (kind === 'set') {
475
+ for (const entry of setValues.call(current)) {
476
+ if (!visit(entry, 8)) {
477
+ return false;
478
+ }
479
+ }
480
+ }
481
+ if (kind === 'headers') {
482
+ if (!headersEntries) {
483
+ return false;
484
+ }
485
+ for (const [name, value] of headersEntries.call(current)) {
486
+ if (!visit(name, 8) || !visit(value, 8)) {
487
+ return false;
488
+ }
489
+ }
490
+ }
491
+ return true;
492
+ }
493
+ function getInspectableEventKeys(current, kind, availableBytes) {
494
+ if (Array.isArray(current)) {
495
+ const descriptor = Object.getOwnPropertyDescriptor(current, 'length');
496
+ const length = descriptor && 'value' in descriptor ? descriptor.value : undefined;
497
+ if (typeof length !== 'number' ||
498
+ !Number.isSafeInteger(length) ||
499
+ length < 0 ||
500
+ length > Math.floor(availableBytes / 16)) {
501
+ return undefined;
502
+ }
503
+ }
504
+ if (kind !== 'typed-array') {
505
+ return Reflect.ownKeys(current);
506
+ }
507
+ const length = typedArrayLengthGetter?.call(current);
508
+ if (typeof length !== 'number' ||
509
+ !Number.isSafeInteger(length) ||
510
+ length < 0 ||
511
+ length > MAX_INSPECTABLE_TYPED_ARRAY_ELEMENTS) {
512
+ return undefined;
513
+ }
514
+ return Reflect.ownKeys(current).filter((key) => {
515
+ if (typeof key !== 'string') {
516
+ return true;
517
+ }
518
+ const index = Number(key);
519
+ return !Number.isInteger(index) || index < 0 || index >= length || String(index) !== key;
520
+ });
521
+ }
522
+ function visitInspectableEventProperties(current, kind, depth, availableBytes, charge, visit) {
523
+ const keys = getInspectableEventKeys(current, kind, availableBytes());
524
+ if (keys === undefined) {
525
+ return false;
526
+ }
527
+ for (const key of keys) {
528
+ if (!charge(typeof key === 'string' ? key.length * 2 + 8 : 8)) {
529
+ return false;
530
+ }
531
+ if (typeof key === 'symbol') {
532
+ visit(key, depth + 1);
533
+ }
534
+ const descriptor = Object.getOwnPropertyDescriptor(current, key);
535
+ if (!descriptor) {
536
+ return false;
537
+ }
538
+ if (!('value' in descriptor)) {
539
+ if (key === 'stack' && isTrustedNativeErrorStack(current, descriptor)) {
540
+ continue;
541
+ }
542
+ return false;
543
+ }
544
+ visit(descriptor.value, depth + 1, kind === 'blob');
545
+ }
546
+ return true;
547
+ }
548
+ function visitRetainedEventPrototypes(current, depth, isBlobInternalHandle, visited, availableBytes, charge, visit, retainPrototype) {
549
+ let prototype = Object.getPrototypeOf(current);
550
+ for (let prototypeDepth = depth + 1; prototype !== null; prototypeDepth += 1) {
551
+ if (prototypeDepth >= MAX_BUFFERED_EVENT_DEPTH) {
552
+ return false;
553
+ }
554
+ if (trustedIntrinsicPrototypes.has(prototype) ||
555
+ (isBlobInternalHandle && prototype === blobInternalHandlePrototype)) {
556
+ return true;
557
+ }
558
+ if (visited.has(prototype)) {
559
+ visit(prototype, prototypeDepth);
560
+ return availableBytes() >= 0;
561
+ }
562
+ visited.add(prototype);
563
+ const retainedPrototype = prototype;
564
+ const retained = retainPrototype(retainedPrototype, () => {
565
+ if (!charge(16)) {
566
+ return false;
567
+ }
568
+ const intrinsic = getTrustedForeignIntrinsic(retainedPrototype);
569
+ if (!intrinsic) {
570
+ return visitInspectableEventProperties(retainedPrototype, undefined, prototypeDepth, availableBytes, charge, visit);
571
+ }
572
+ for (const key of Reflect.ownKeys(retainedPrototype)) {
573
+ const descriptor = Object.getOwnPropertyDescriptor(retainedPrototype, key);
574
+ if (!descriptor) {
575
+ return false;
576
+ }
577
+ if (isCanonicalIntrinsicDescriptor(descriptor, intrinsic.descriptors.get(key), intrinsic.functionPrototype)) {
578
+ continue;
579
+ }
580
+ if (!charge(typeof key === 'string' ? key.length * 2 + 8 : 8) || !('value' in descriptor)) {
581
+ return false;
582
+ }
583
+ if (typeof key === 'symbol') {
584
+ visit(key, prototypeDepth + 1);
585
+ }
586
+ visit(descriptor.value, prototypeDepth + 1);
587
+ }
588
+ return availableBytes() >= 0;
589
+ });
590
+ if (!retained) {
591
+ return false;
592
+ }
593
+ prototype = Object.getPrototypeOf(retainedPrototype);
594
+ }
595
+ return true;
596
+ }
597
+ const BUFFERED_LEDGER_ENTRY_BYTES = 32;
598
+ const BUFFERED_LEDGER_NODE_BYTES = 32;
599
+ const BUFFERED_LEDGER_EDGE_BYTES = 8;
600
+ const BUFFERED_LEDGER_OWNER_BYTES = 16;
601
+ const MAX_BUFFERED_LEDGER_RECONCILIATION_WORK = 128 * 1024;
602
+ function inspectBufferedEventGraph(value, remainingBytes) {
603
+ let bytes = 0;
604
+ let scalarBytes = 0;
605
+ const visited = new WeakSet();
606
+ const visitedSymbols = new Set();
607
+ const roots = new Set();
608
+ const nodes = new Map();
609
+ let activeNode;
610
+ const availableBytes = () => remainingBytes - bytes;
611
+ const charge = (amount) => {
612
+ if (!Number.isSafeInteger(amount) || amount < 0) {
613
+ bytes = remainingBytes + 1;
614
+ return false;
615
+ }
616
+ bytes += amount;
617
+ if (activeNode) {
618
+ activeNode.bytes += amount;
619
+ }
620
+ else {
621
+ scalarBytes += amount;
622
+ }
623
+ return bytes <= remainingBytes;
624
+ };
625
+ const addIdentity = (identity) => {
626
+ if (activeNode) {
627
+ activeNode.edges.add(identity);
628
+ }
629
+ else {
630
+ roots.add(identity);
631
+ }
632
+ };
633
+ const retainIdentity = (identity, inspect) => {
634
+ addIdentity(identity);
635
+ const node = { bytes: 0, edges: new Set() };
636
+ nodes.set(identity, node);
637
+ const previous = activeNode;
638
+ activeNode = node;
639
+ try {
640
+ return inspect();
641
+ }
642
+ finally {
643
+ activeNode = previous;
644
+ }
645
+ };
646
+ const visitSymbol = (current) => {
647
+ if (visitedSymbols.has(current)) {
648
+ addIdentity(current);
649
+ charge(8);
650
+ return;
651
+ }
652
+ visitedSymbols.add(current);
653
+ if (!retainIdentity(current, () => {
654
+ if (!symbolDescriptionGetter) {
655
+ return false;
656
+ }
657
+ const description = Reflect.apply(symbolDescriptionGetter, current, []);
658
+ return charge(8 + (description?.length ?? 0) * 2);
659
+ })) {
660
+ bytes = remainingBytes + 1;
661
+ }
662
+ };
663
+ const visit = (current, depth, isBlobInternalHandle = false) => {
664
+ if (bytes > remainingBytes) {
665
+ return;
666
+ }
667
+ if (typeof current === 'string') {
668
+ charge(current.length * 2);
669
+ return;
670
+ }
671
+ if (typeof current === 'symbol') {
672
+ visitSymbol(current);
673
+ return;
674
+ }
675
+ if (typeof current === 'function') {
676
+ bytes = remainingBytes + 1;
677
+ return;
678
+ }
679
+ if (current === null || typeof current !== 'object') {
680
+ charge(8);
681
+ return;
682
+ }
683
+ if (nativeProxyDetector?.(current)) {
684
+ bytes = remainingBytes + 1;
685
+ return;
686
+ }
687
+ if (depth >= MAX_BUFFERED_EVENT_DEPTH) {
688
+ bytes = remainingBytes + 1;
689
+ return;
690
+ }
691
+ if (visited.has(current)) {
692
+ addIdentity(current);
693
+ charge(8);
694
+ return;
695
+ }
696
+ visited.add(current);
697
+ if (!retainIdentity(current, () => {
698
+ if (!charge(16)) {
699
+ return false;
700
+ }
701
+ const retainedStorage = estimateRetainedBufferBytes(current, visit, depth);
702
+ if (!visitRetainedEventPrototypes(current, depth, isBlobInternalHandle, visited, availableBytes, charge, visit, retainIdentity)) {
703
+ return false;
704
+ }
705
+ if (retainedStorage !== undefined && !charge(retainedStorage.bytes)) {
706
+ return false;
707
+ }
708
+ if (!visitHiddenEventValues(current, retainedStorage?.kind, (hiddenValue, overhead) => {
709
+ if (!charge(overhead)) {
710
+ return false;
711
+ }
712
+ visit(hiddenValue, depth + 1);
713
+ return bytes <= remainingBytes;
714
+ })) {
715
+ return false;
716
+ }
717
+ return visitInspectableEventProperties(current, retainedStorage?.kind, depth, availableBytes, charge, visit);
718
+ })) {
719
+ bytes = remainingBytes + 1;
720
+ }
721
+ };
722
+ try {
723
+ visit(value, 0);
724
+ }
725
+ catch {
726
+ return undefined;
727
+ }
728
+ return bytes <= remainingBytes ? { scalarBytes, roots, nodes } : undefined;
729
+ }
730
+ function areBufferedRetainedEdgesEqual(first, second) {
731
+ if (first.size !== second.size) {
732
+ return false;
733
+ }
734
+ for (const identity of first) {
735
+ if (!second.has(identity)) {
736
+ return false;
737
+ }
738
+ }
739
+ return true;
740
+ }
741
+ function getBufferedLedgerNodeBytes(node, owners) {
742
+ return (node.bytes +
743
+ BUFFERED_LEDGER_NODE_BYTES +
744
+ node.edges.size * BUFFERED_LEDGER_EDGE_BYTES +
745
+ owners * BUFFERED_LEDGER_OWNER_BYTES);
746
+ }
747
+ function getBufferedLedgerEntryBytes(entry) {
748
+ return BUFFERED_LEDGER_ENTRY_BYTES + entry.scalarBytes + entry.roots.size * BUFFERED_LEDGER_EDGE_BYTES;
749
+ }
750
+ function collectBufferedLedgerIdentities(roots, candidate, records, work) {
751
+ const identities = new Set();
752
+ const pending = [...roots];
753
+ while (pending.length) {
754
+ work.remaining -= 1;
755
+ if (work.remaining < 0) {
756
+ return undefined;
757
+ }
758
+ const identity = pending.pop();
759
+ if (identities.has(identity)) {
760
+ continue;
761
+ }
762
+ const node = candidate.get(identity) ?? records.get(identity);
763
+ if (!node) {
764
+ return undefined;
765
+ }
766
+ identities.add(identity);
767
+ for (const edge of node.edges) {
768
+ pending.push(edge);
769
+ }
770
+ }
771
+ return identities;
772
+ }
773
+ function getBufferedLedgerChange(identity, graph, records, changes, node) {
774
+ const existing = changes.get(identity);
775
+ if (existing) {
776
+ if (node) {
777
+ existing.node = node;
778
+ }
779
+ return existing;
780
+ }
781
+ const current = node ?? graph.nodes.get(identity) ?? records.get(identity);
782
+ if (!current) {
783
+ return undefined;
784
+ }
785
+ const update = { node: current, ownerDelta: 0 };
786
+ changes.set(identity, update);
787
+ return update;
788
+ }
789
+ function findBufferedLedgerAffectedOwners(entry, graph, records, changes, work) {
790
+ const affected = new Set([entry]);
791
+ for (const [identity, node] of graph.nodes) {
792
+ work.remaining -= 1;
793
+ if (work.remaining < 0) {
794
+ return undefined;
795
+ }
796
+ const previous = records.get(identity);
797
+ if (!previous) {
798
+ continue;
799
+ }
800
+ const changedEdges = !areBufferedRetainedEdgesEqual(previous.edges, node.edges);
801
+ if (previous.bytes !== node.bytes || changedEdges) {
802
+ getBufferedLedgerChange(identity, graph, records, changes, node);
803
+ }
804
+ if (!changedEdges) {
805
+ continue;
806
+ }
807
+ for (const owner of previous.owners) {
808
+ work.remaining -= 1;
809
+ if (work.remaining < 0) {
810
+ return undefined;
811
+ }
812
+ affected.add(owner);
813
+ }
814
+ }
815
+ return affected;
816
+ }
817
+ function updateBufferedLedgerMembershipChanges(owner, next, graph, records, changes, work) {
818
+ for (const identity of owner.identities) {
819
+ work.remaining -= 1;
820
+ if (work.remaining < 0) {
821
+ return false;
822
+ }
823
+ if (!next.has(identity)) {
824
+ const update = getBufferedLedgerChange(identity, graph, records, changes);
825
+ if (!update) {
826
+ return false;
827
+ }
828
+ update.ownerDelta -= 1;
829
+ }
830
+ }
831
+ for (const identity of next) {
832
+ work.remaining -= 1;
833
+ if (work.remaining < 0) {
834
+ return false;
835
+ }
836
+ if (!owner.identities.has(identity)) {
837
+ const update = getBufferedLedgerChange(identity, graph, records, changes);
838
+ if (!update) {
839
+ return false;
840
+ }
841
+ update.ownerDelta += 1;
842
+ }
843
+ }
844
+ return true;
845
+ }
846
+ function collectBufferedLedgerMemberships(entry, graph, affected, records, changes, work) {
847
+ const memberships = new Map();
848
+ for (const owner of affected) {
849
+ const roots = owner === entry ? graph.roots : owner.roots;
850
+ const next = collectBufferedLedgerIdentities(roots, graph.nodes, records, work);
851
+ if (!next || !updateBufferedLedgerMembershipChanges(owner, next, graph, records, changes, work)) {
852
+ return undefined;
853
+ }
854
+ memberships.set(owner, next);
855
+ }
856
+ return memberships;
857
+ }
858
+ function projectBufferedLedgerBytes(currentBytes, entry, graph, isNew, changes, records) {
859
+ let projected = currentBytes - (isNew ? 0 : getBufferedLedgerEntryBytes(entry)) + getBufferedLedgerEntryBytes(graph);
860
+ for (const [identity, update] of changes) {
861
+ const previous = records.get(identity);
862
+ const owners = (previous?.owners.size ?? 0) + update.ownerDelta;
863
+ if (owners < 0) {
864
+ return undefined;
865
+ }
866
+ if (previous) {
867
+ projected -= getBufferedLedgerNodeBytes(previous, previous.owners.size);
868
+ }
869
+ if (owners) {
870
+ projected += getBufferedLedgerNodeBytes(update.node, owners);
871
+ }
872
+ }
873
+ return Number.isSafeInteger(projected) && projected >= 0 && projected <= MAX_BUFFERED_ITERATOR_BYTES
874
+ ? projected
875
+ : undefined;
876
+ }
877
+ function applyBufferedLedgerChanges(records, changes, memberships) {
878
+ for (const [identity, update] of changes) {
879
+ const previous = records.get(identity);
880
+ const owners = (previous?.owners.size ?? 0) + update.ownerDelta;
881
+ if (!owners) {
882
+ continue;
883
+ }
884
+ if (previous) {
885
+ previous.bytes = update.node.bytes;
886
+ previous.edges = update.node.edges;
887
+ }
888
+ else {
889
+ records.set(identity, {
890
+ bytes: update.node.bytes,
891
+ edges: update.node.edges,
892
+ owners: new Set(),
893
+ });
894
+ }
895
+ }
896
+ for (const [owner, next] of memberships) {
897
+ for (const identity of owner.identities) {
898
+ if (!next.has(identity)) {
899
+ records.get(identity)?.owners.delete(owner);
900
+ }
901
+ }
902
+ for (const identity of next) {
903
+ if (!owner.identities.has(identity)) {
904
+ records.get(identity).owners.add(owner);
905
+ }
906
+ }
907
+ owner.identities = next;
908
+ }
909
+ for (const identity of changes.keys()) {
910
+ if (records.get(identity)?.owners.size === 0) {
911
+ records.delete(identity);
912
+ }
913
+ }
914
+ }
915
+ /**
916
+ * Account for queue-owned identities once while charging bounded ownership and
917
+ * edge metadata. Shared topology changes are reconciled for every queued owner.
918
+ */
919
+ function createBufferedEventLedger() {
920
+ const records = new Map();
921
+ let bytes = 0;
922
+ const reconcile = (entry, graph, isNew) => {
923
+ const work = { remaining: MAX_BUFFERED_LEDGER_RECONCILIATION_WORK };
924
+ const changes = new Map();
925
+ const affected = findBufferedLedgerAffectedOwners(entry, graph, records, changes, work);
926
+ if (!affected) {
927
+ return false;
928
+ }
929
+ const memberships = collectBufferedLedgerMemberships(entry, graph, affected, records, changes, work);
930
+ if (!memberships) {
931
+ return false;
932
+ }
933
+ const projectedBytes = projectBufferedLedgerBytes(bytes, entry, graph, isNew, changes, records);
934
+ if (projectedBytes === undefined) {
935
+ return false;
936
+ }
937
+ applyBufferedLedgerChanges(records, changes, memberships);
938
+ entry.scalarBytes = graph.scalarBytes;
939
+ entry.roots = graph.roots;
940
+ bytes = projectedBytes;
941
+ return true;
942
+ };
943
+ const release = (entry) => {
944
+ bytes -= getBufferedLedgerEntryBytes(entry);
945
+ for (const identity of entry.identities) {
946
+ const record = records.get(identity);
947
+ if (!record?.owners.delete(entry)) {
948
+ continue;
949
+ }
950
+ bytes -= BUFFERED_LEDGER_OWNER_BYTES;
951
+ if (record.owners.size === 0) {
952
+ bytes -= getBufferedLedgerNodeBytes(record, 0);
953
+ records.delete(identity);
954
+ }
955
+ }
956
+ entry.identities.clear();
957
+ };
958
+ return {
959
+ retain(graph) {
960
+ const entry = { scalarBytes: 0, roots: new Set(), identities: new Set() };
961
+ return reconcile(entry, graph, true) ? entry : undefined;
962
+ },
963
+ refresh(entry, graph) {
964
+ return reconcile(entry, graph, false);
965
+ },
966
+ release,
967
+ clear() {
968
+ records.clear();
969
+ bytes = 0;
970
+ },
971
+ };
972
+ }
40
973
  /** An abortable event stream with typed listeners, asynchronous iteration, and lifecycle state. */
41
974
  class EventStream {
42
975
  /** Creates an unstarted stream with independent connection and completion lifecycle promises. */
@@ -54,6 +987,10 @@ class EventStream {
54
987
  // oxlint-enable class-methods-use-this
55
988
  _EventStream_listeners.set(this, Object.create(null));
56
989
  _EventStream_abortListeners.set(this, []);
990
+ _EventStream_emittedListenerRegistrations.set(this, new WeakMap());
991
+ _EventStream_pendingListenerCleanup.set(this, new Set());
992
+ _EventStream_pendingBufferedEventChecks.set(this, new Set());
993
+ _EventStream_listenerDispatchDepth.set(this, 0);
57
994
  _EventStream_ended.set(this, false);
58
995
  _EventStream_errored.set(this, false);
59
996
  _EventStream_aborted.set(this, false);
@@ -162,7 +1099,14 @@ class EventStream {
162
1099
  if (!listeners) {
163
1100
  return this;
164
1101
  }
165
- const index = listeners.findIndex((l) => l.listener === listener);
1102
+ const emittedRegistration = tslib_1.__classPrivateFieldGet(this, _EventStream_emittedListenerRegistrations, "f").get(listener);
1103
+ if (emittedRegistration?.event === event &&
1104
+ !emittedRegistration.registration.removed &&
1105
+ !emittedRegistration.registration.detached) {
1106
+ tslib_1.__classPrivateFieldGet(this, _EventStream_instances, "m", _EventStream_removeEmittedListener).call(this, event, emittedRegistration.registration);
1107
+ return this;
1108
+ }
1109
+ const index = listeners.findIndex((l) => !l.removed && l.listener === listener);
166
1110
  if (index !== -1) {
167
1111
  listeners.splice(index, 1);
168
1112
  }
@@ -206,9 +1150,9 @@ class EventStream {
206
1150
  resolve((values.length > 1 ? values : values[0]));
207
1151
  };
208
1152
  if (event !== 'error') {
209
- this.once('error', onError);
1153
+ tslib_1.__classPrivateFieldGet(this, _EventStream_instances, "m", _EventStream_onceForEmitted).call(this, 'error', onError);
210
1154
  }
211
- this.once(event, onEvent);
1155
+ tslib_1.__classPrivateFieldGet(this, _EventStream_instances, "m", _EventStream_onceForEmitted).call(this, event, onEvent);
212
1156
  });
213
1157
  }
214
1158
  /**
@@ -225,7 +1169,15 @@ class EventStream {
225
1169
  */
226
1170
  events(event) {
227
1171
  return this._createIterator((push) => {
228
- const onEvent = (...args) => push(args);
1172
+ const onEvent = (...args) => {
1173
+ sdkOwnedBufferedEventArguments.add(args);
1174
+ try {
1175
+ push(args);
1176
+ }
1177
+ finally {
1178
+ sdkOwnedBufferedEventArguments.delete(args);
1179
+ }
1180
+ };
229
1181
  this.on(event, onEvent);
230
1182
  return () => this.off(event, onEvent);
231
1183
  }, {
@@ -243,10 +1195,16 @@ class EventStream {
243
1195
  * here: the iterator ends when the stream ends, listeners are removed on
244
1196
  * end/return, and a terminal error is retained until buffered values have
245
1197
  * drained so it is surfaced even when no reader was waiting when it fired.
1198
+ * Detached consumers have bounded event and byte queues; exceeding either
1199
+ * limit fails the stream and aborts its underlying request. Detached queues
1200
+ * also reject accessor-backed payloads because getter closures cannot be
1201
+ * safely sized without executing untrusted code.
246
1202
  */
247
1203
  _createIterator(attach, { rejectOnError = true, rejectOnAbort = true, onReturn, } = {}) {
248
1204
  const pushQueue = createEventQueue();
1205
+ const bufferedEventSizes = createEventQueue();
249
1206
  const readQueue = createEventQueue();
1207
+ const bufferedLedger = createBufferedEventLedger();
250
1208
  let ended = this.ended;
251
1209
  let failure;
252
1210
  let failureDelivered = false;
@@ -274,6 +1232,39 @@ class EventStream {
274
1232
  this.off('abort', onFailure);
275
1233
  }
276
1234
  };
1235
+ const deactivateBufferedEvent = (entry) => {
1236
+ entry.active = false;
1237
+ if (entry.check) {
1238
+ tslib_1.__classPrivateFieldGet(this, _EventStream_pendingBufferedEventChecks, "f").delete(entry.check);
1239
+ entry.check = undefined;
1240
+ }
1241
+ };
1242
+ const failBufferedEvents = (discardRetained = false) => {
1243
+ if (discardRetained) {
1244
+ while (bufferedEventSizes.length) {
1245
+ deactivateBufferedEvent(bufferedEventSizes.dequeue());
1246
+ }
1247
+ pushQueue.clear();
1248
+ bufferedLedger.clear();
1249
+ }
1250
+ const error = new error_1.OpenAIError(`Event stream iterator buffer limit exceeded (${MAX_BUFFERED_ITERATOR_EVENTS} events or ${MAX_BUFFERED_ITERATOR_BYTES} bytes); consume events as they arrive.`);
1251
+ try {
1252
+ tslib_1.__classPrivateFieldGet(this, _EventStream_instances, "m", _EventStream_handleError).call(this, error);
1253
+ }
1254
+ finally {
1255
+ this.controller.abort();
1256
+ }
1257
+ return error;
1258
+ };
1259
+ const revalidateBufferedEvent = (value, entry) => {
1260
+ if (!entry.active || tslib_1.__classPrivateFieldGet(this, _EventStream_ended, "f")) {
1261
+ return;
1262
+ }
1263
+ const graph = inspectBufferedEventGraph(value, MAX_BUFFERED_ITERATOR_BYTES);
1264
+ if (!graph || !bufferedLedger.refresh(entry.retention, graph)) {
1265
+ failBufferedEvents(true);
1266
+ }
1267
+ };
277
1268
  const push = (value) => {
278
1269
  if (ended) {
279
1270
  return;
@@ -283,7 +1274,34 @@ class EventStream {
283
1274
  reader.resolve({ value, done: false });
284
1275
  }
285
1276
  else {
1277
+ if (pushQueue.length >= MAX_BUFFERED_ITERATOR_EVENTS) {
1278
+ failBufferedEvents();
1279
+ return;
1280
+ }
1281
+ const graph = inspectBufferedEventGraph(value, MAX_BUFFERED_ITERATOR_BYTES);
1282
+ const retention = graph && bufferedLedger.retain(graph);
1283
+ if (!retention) {
1284
+ failBufferedEvents();
1285
+ return;
1286
+ }
1287
+ if (typeof value === 'object' && value !== null && sdkOwnedBufferedEventArguments.has(value)) {
1288
+ const argumentsTuple = value;
1289
+ for (let index = 0; index < argumentsTuple.length; index += 1) {
1290
+ const argument = argumentsTuple[index];
1291
+ if (typeof argument === 'string') {
1292
+ argumentsTuple[index] = bufferedJSONParse(bufferedJSONStringify(argument));
1293
+ }
1294
+ }
1295
+ }
1296
+ const entry = { retention, active: true, check: undefined };
286
1297
  pushQueue.enqueue(value);
1298
+ bufferedEventSizes.enqueue(entry);
1299
+ const check = () => {
1300
+ entry.check = undefined;
1301
+ revalidateBufferedEvent(value, entry);
1302
+ };
1303
+ entry.check = check;
1304
+ tslib_1.__classPrivateFieldGet(this, _EventStream_pendingBufferedEventChecks, "f").add(check);
287
1305
  }
288
1306
  };
289
1307
  const onFailure = (error) => {
@@ -313,7 +1331,17 @@ class EventStream {
313
1331
  return {
314
1332
  next: () => {
315
1333
  if (pushQueue.length) {
316
- return Promise.resolve({ value: pushQueue.dequeue(), done: false });
1334
+ const value = pushQueue.dequeue();
1335
+ const entry = bufferedEventSizes.dequeue();
1336
+ deactivateBufferedEvent(entry);
1337
+ const graph = inspectBufferedEventGraph(value, MAX_BUFFERED_ITERATOR_BYTES);
1338
+ if (!graph || !bufferedLedger.refresh(entry.retention, graph)) {
1339
+ const error = failBufferedEvents(true);
1340
+ failureDelivered = true;
1341
+ return Promise.reject(error);
1342
+ }
1343
+ bufferedLedger.release(entry.retention);
1344
+ return Promise.resolve({ value, done: false });
317
1345
  }
318
1346
  if (failure && !failureDelivered) {
319
1347
  failureDelivered = true;
@@ -328,7 +1356,11 @@ class EventStream {
328
1356
  },
329
1357
  return: () => {
330
1358
  ended = true;
1359
+ while (bufferedEventSizes.length) {
1360
+ deactivateBufferedEvent(bufferedEventSizes.dequeue());
1361
+ }
331
1362
  pushQueue.clear();
1363
+ bufferedLedger.clear();
332
1364
  cleanup();
333
1365
  finishReaders();
334
1366
  if (onReturn) {
@@ -353,7 +1385,7 @@ class EventStream {
353
1385
  }
354
1386
  /** Returns whether an event currently has one or more registered listeners. */
355
1387
  _hasListeners(event) {
356
- return Boolean(tslib_1.__classPrivateFieldGet(this, _EventStream_listeners, "f")[event]?.length);
1388
+ return Boolean(tslib_1.__classPrivateFieldGet(this, _EventStream_listeners, "f")[event]?.some((listener) => !listener.removed));
357
1389
  }
358
1390
  /** Dispatches a stream event and performs the associated lifecycle transitions. */
359
1391
  _emit(event, ...args) {
@@ -368,9 +1400,31 @@ class EventStream {
368
1400
  }
369
1401
  const listeners = tslib_1.__classPrivateFieldGet(this, _EventStream_listeners, "f")[event];
370
1402
  if (listeners) {
371
- tslib_1.__classPrivateFieldGet(this, _EventStream_listeners, "f")[event] = listeners.filter((l) => !l.once);
372
- for (const { listener } of listeners) {
373
- listener(...args);
1403
+ tslib_1.__classPrivateFieldGet(this, _EventStream_listeners, "f")[event] = listeners.filter((listener) => {
1404
+ if (listener.once) {
1405
+ listener.detached = true;
1406
+ }
1407
+ return !listener.once && !listener.removed;
1408
+ });
1409
+ tslib_1.__classPrivateFieldSet(this, _EventStream_listenerDispatchDepth, tslib_1.__classPrivateFieldGet(this, _EventStream_listenerDispatchDepth, "f") + 1, "f");
1410
+ try {
1411
+ for (const registration of listeners) {
1412
+ if (!registration.removed) {
1413
+ registration.listener(...args);
1414
+ }
1415
+ }
1416
+ }
1417
+ finally {
1418
+ tslib_1.__classPrivateFieldSet(this, _EventStream_listenerDispatchDepth, tslib_1.__classPrivateFieldGet(this, _EventStream_listenerDispatchDepth, "f") - 1, "f");
1419
+ if (tslib_1.__classPrivateFieldGet(this, _EventStream_listenerDispatchDepth, "f") === 0) {
1420
+ tslib_1.__classPrivateFieldGet(this, _EventStream_instances, "m", _EventStream_cleanupEmittedListeners).call(this);
1421
+ for (const check of tslib_1.__classPrivateFieldGet(this, _EventStream_pendingBufferedEventChecks, "f")) {
1422
+ tslib_1.__classPrivateFieldGet(this, _EventStream_pendingBufferedEventChecks, "f").delete(check);
1423
+ if (!tslib_1.__classPrivateFieldGet(this, _EventStream_ended, "f")) {
1424
+ check();
1425
+ }
1426
+ }
1427
+ }
374
1428
  }
375
1429
  }
376
1430
  if (event === 'abort') {
@@ -406,10 +1460,41 @@ class EventStream {
406
1460
  }
407
1461
  }
408
1462
  exports.EventStream = EventStream;
409
- _EventStream_connectedPromise = new WeakMap(), _EventStream_resolveConnectedPromise = new WeakMap(), _EventStream_rejectConnectedPromise = new WeakMap(), _EventStream_endPromise = new WeakMap(), _EventStream_resolveEndPromise = new WeakMap(), _EventStream_rejectEndPromise = new WeakMap(), _EventStream_listeners = new WeakMap(), _EventStream_abortListeners = new WeakMap(), _EventStream_ended = new WeakMap(), _EventStream_errored = new WeakMap(), _EventStream_aborted = new WeakMap(), _EventStream_catchingPromiseCreated = new WeakMap(), _EventStream_instances = new WeakSet(), _EventStream_removeAbortListeners = function _EventStream_removeAbortListeners() {
1463
+ _EventStream_connectedPromise = new WeakMap(), _EventStream_resolveConnectedPromise = new WeakMap(), _EventStream_rejectConnectedPromise = new WeakMap(), _EventStream_endPromise = new WeakMap(), _EventStream_resolveEndPromise = new WeakMap(), _EventStream_rejectEndPromise = new WeakMap(), _EventStream_listeners = new WeakMap(), _EventStream_abortListeners = new WeakMap(), _EventStream_emittedListenerRegistrations = new WeakMap(), _EventStream_pendingListenerCleanup = new WeakMap(), _EventStream_pendingBufferedEventChecks = new WeakMap(), _EventStream_listenerDispatchDepth = new WeakMap(), _EventStream_ended = new WeakMap(), _EventStream_errored = new WeakMap(), _EventStream_aborted = new WeakMap(), _EventStream_catchingPromiseCreated = new WeakMap(), _EventStream_instances = new WeakSet(), _EventStream_removeAbortListeners = function _EventStream_removeAbortListeners() {
410
1464
  for (const { signal, listener } of tslib_1.__classPrivateFieldGet(this, _EventStream_abortListeners, "f").splice(0)) {
411
1465
  signal.removeEventListener('abort', listener);
412
1466
  }
1467
+ }, _EventStream_onceForEmitted = function _EventStream_onceForEmitted(event, listener) {
1468
+ const previousListeners = tslib_1.__classPrivateFieldGet(this, _EventStream_listeners, "f")[event];
1469
+ const previousLength = previousListeners?.length ?? 0;
1470
+ this.once(event, listener);
1471
+ const listeners = tslib_1.__classPrivateFieldGet(this, _EventStream_listeners, "f")[event];
1472
+ const [registration] = listeners?.slice(-1) ?? [];
1473
+ if ((previousListeners === undefined || listeners === previousListeners) &&
1474
+ listeners?.length === previousLength + 1 &&
1475
+ registration?.listener === listener &&
1476
+ registration.once) {
1477
+ tslib_1.__classPrivateFieldGet(this, _EventStream_emittedListenerRegistrations, "f").set(listener, { event, registration });
1478
+ }
1479
+ }, _EventStream_removeEmittedListener = function _EventStream_removeEmittedListener(event, registration) {
1480
+ if (registration.removed) {
1481
+ return;
1482
+ }
1483
+ registration.removed = true;
1484
+ tslib_1.__classPrivateFieldGet(this, _EventStream_emittedListenerRegistrations, "f").delete(registration.listener);
1485
+ tslib_1.__classPrivateFieldGet(this, _EventStream_pendingListenerCleanup, "f").add(event);
1486
+ if (tslib_1.__classPrivateFieldGet(this, _EventStream_listenerDispatchDepth, "f") === 0) {
1487
+ tslib_1.__classPrivateFieldGet(this, _EventStream_instances, "m", _EventStream_cleanupEmittedListeners).call(this);
1488
+ }
1489
+ }, _EventStream_cleanupEmittedListeners = function _EventStream_cleanupEmittedListeners() {
1490
+ for (const event of tslib_1.__classPrivateFieldGet(this, _EventStream_pendingListenerCleanup, "f")) {
1491
+ const eventType = event;
1492
+ const listeners = tslib_1.__classPrivateFieldGet(this, _EventStream_listeners, "f")[eventType];
1493
+ if (listeners) {
1494
+ tslib_1.__classPrivateFieldGet(this, _EventStream_listeners, "f")[eventType] = listeners.filter((listener) => !listener.removed);
1495
+ }
1496
+ }
1497
+ tslib_1.__classPrivateFieldGet(this, _EventStream_pendingListenerCleanup, "f").clear();
413
1498
  }, _EventStream_handleError = function _EventStream_handleError(error) {
414
1499
  tslib_1.__classPrivateFieldSet(this, _EventStream_errored, true, "f");
415
1500
  if (error instanceof Error && error.name === 'AbortError') {