@anthropic-ai/claude-code 0.2.9

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 (424) hide show
  1. package/LICENSE.md +3 -0
  2. package/README.md +55 -0
  3. package/cli.mjs +1398 -0
  4. package/package.json +31 -0
  5. package/vendor/ripgrep/COPYING +3 -0
  6. package/vendor/ripgrep/arm64-darwin/rg +0 -0
  7. package/vendor/ripgrep/arm64-linux/rg +0 -0
  8. package/vendor/ripgrep/x64-darwin/rg +0 -0
  9. package/vendor/ripgrep/x64-linux/rg +0 -0
  10. package/vendor/ripgrep/x64-win32/rg.exe +0 -0
  11. package/vendor/sdk/CHANGELOG.md +1421 -0
  12. package/vendor/sdk/LICENSE +8 -0
  13. package/vendor/sdk/README.md +536 -0
  14. package/vendor/sdk/_shims/MultipartBody.d.ts +9 -0
  15. package/vendor/sdk/_shims/MultipartBody.d.ts.map +1 -0
  16. package/vendor/sdk/_shims/MultipartBody.js +16 -0
  17. package/vendor/sdk/_shims/MultipartBody.js.map +1 -0
  18. package/vendor/sdk/_shims/MultipartBody.mjs +12 -0
  19. package/vendor/sdk/_shims/MultipartBody.mjs.map +1 -0
  20. package/vendor/sdk/_shims/README.md +46 -0
  21. package/vendor/sdk/_shims/auto/runtime-bun.d.ts +5 -0
  22. package/vendor/sdk/_shims/auto/runtime-bun.d.ts.map +1 -0
  23. package/vendor/sdk/_shims/auto/runtime-bun.js +21 -0
  24. package/vendor/sdk/_shims/auto/runtime-bun.js.map +1 -0
  25. package/vendor/sdk/_shims/auto/runtime-bun.mjs +2 -0
  26. package/vendor/sdk/_shims/auto/runtime-bun.mjs.map +1 -0
  27. package/vendor/sdk/_shims/auto/runtime-node.d.ts +5 -0
  28. package/vendor/sdk/_shims/auto/runtime-node.d.ts.map +1 -0
  29. package/vendor/sdk/_shims/auto/runtime-node.js +21 -0
  30. package/vendor/sdk/_shims/auto/runtime-node.js.map +1 -0
  31. package/vendor/sdk/_shims/auto/runtime-node.mjs +2 -0
  32. package/vendor/sdk/_shims/auto/runtime-node.mjs.map +1 -0
  33. package/vendor/sdk/_shims/auto/runtime.d.ts +5 -0
  34. package/vendor/sdk/_shims/auto/runtime.d.ts.map +1 -0
  35. package/vendor/sdk/_shims/auto/runtime.js +21 -0
  36. package/vendor/sdk/_shims/auto/runtime.js.map +1 -0
  37. package/vendor/sdk/_shims/auto/runtime.mjs +2 -0
  38. package/vendor/sdk/_shims/auto/runtime.mjs.map +1 -0
  39. package/vendor/sdk/_shims/auto/types-node.d.ts +5 -0
  40. package/vendor/sdk/_shims/auto/types-node.d.ts.map +1 -0
  41. package/vendor/sdk/_shims/auto/types-node.js +21 -0
  42. package/vendor/sdk/_shims/auto/types-node.js.map +1 -0
  43. package/vendor/sdk/_shims/auto/types-node.mjs +2 -0
  44. package/vendor/sdk/_shims/auto/types-node.mjs.map +1 -0
  45. package/vendor/sdk/_shims/auto/types.d.ts +101 -0
  46. package/vendor/sdk/_shims/auto/types.js +3 -0
  47. package/vendor/sdk/_shims/auto/types.mjs +3 -0
  48. package/vendor/sdk/_shims/bun-runtime.d.ts +6 -0
  49. package/vendor/sdk/_shims/bun-runtime.d.ts.map +1 -0
  50. package/vendor/sdk/_shims/bun-runtime.js +14 -0
  51. package/vendor/sdk/_shims/bun-runtime.js.map +1 -0
  52. package/vendor/sdk/_shims/bun-runtime.mjs +10 -0
  53. package/vendor/sdk/_shims/bun-runtime.mjs.map +1 -0
  54. package/vendor/sdk/_shims/index.d.ts +81 -0
  55. package/vendor/sdk/_shims/index.js +13 -0
  56. package/vendor/sdk/_shims/index.mjs +7 -0
  57. package/vendor/sdk/_shims/manual-types.d.ts +12 -0
  58. package/vendor/sdk/_shims/manual-types.js +3 -0
  59. package/vendor/sdk/_shims/manual-types.mjs +3 -0
  60. package/vendor/sdk/_shims/node-runtime.d.ts +3 -0
  61. package/vendor/sdk/_shims/node-runtime.d.ts.map +1 -0
  62. package/vendor/sdk/_shims/node-runtime.js +89 -0
  63. package/vendor/sdk/_shims/node-runtime.js.map +1 -0
  64. package/vendor/sdk/_shims/node-runtime.mjs +56 -0
  65. package/vendor/sdk/_shims/node-runtime.mjs.map +1 -0
  66. package/vendor/sdk/_shims/node-types.d.ts +42 -0
  67. package/vendor/sdk/_shims/node-types.js +3 -0
  68. package/vendor/sdk/_shims/node-types.mjs +3 -0
  69. package/vendor/sdk/_shims/registry.d.ts +37 -0
  70. package/vendor/sdk/_shims/registry.d.ts.map +1 -0
  71. package/vendor/sdk/_shims/registry.js +41 -0
  72. package/vendor/sdk/_shims/registry.js.map +1 -0
  73. package/vendor/sdk/_shims/registry.mjs +37 -0
  74. package/vendor/sdk/_shims/registry.mjs.map +1 -0
  75. package/vendor/sdk/_shims/web-runtime.d.ts +5 -0
  76. package/vendor/sdk/_shims/web-runtime.d.ts.map +1 -0
  77. package/vendor/sdk/_shims/web-runtime.js +78 -0
  78. package/vendor/sdk/_shims/web-runtime.js.map +1 -0
  79. package/vendor/sdk/_shims/web-runtime.mjs +71 -0
  80. package/vendor/sdk/_shims/web-runtime.mjs.map +1 -0
  81. package/vendor/sdk/_shims/web-types.d.ts +83 -0
  82. package/vendor/sdk/_shims/web-types.js +3 -0
  83. package/vendor/sdk/_shims/web-types.mjs +3 -0
  84. package/vendor/sdk/_vendor/partial-json-parser/parser.d.ts +3 -0
  85. package/vendor/sdk/_vendor/partial-json-parser/parser.d.ts.map +1 -0
  86. package/vendor/sdk/_vendor/partial-json-parser/parser.js +226 -0
  87. package/vendor/sdk/_vendor/partial-json-parser/parser.js.map +1 -0
  88. package/vendor/sdk/_vendor/partial-json-parser/parser.mjs +223 -0
  89. package/vendor/sdk/_vendor/partial-json-parser/parser.mjs.map +1 -0
  90. package/vendor/sdk/core.d.ts +248 -0
  91. package/vendor/sdk/core.d.ts.map +1 -0
  92. package/vendor/sdk/core.js +935 -0
  93. package/vendor/sdk/core.js.map +1 -0
  94. package/vendor/sdk/core.mjs +903 -0
  95. package/vendor/sdk/core.mjs.map +1 -0
  96. package/vendor/sdk/error.d.ts +48 -0
  97. package/vendor/sdk/error.d.ts.map +1 -0
  98. package/vendor/sdk/error.js +114 -0
  99. package/vendor/sdk/error.js.map +1 -0
  100. package/vendor/sdk/error.mjs +98 -0
  101. package/vendor/sdk/error.mjs.map +1 -0
  102. package/vendor/sdk/index.d.mts +152 -0
  103. package/vendor/sdk/index.d.ts +152 -0
  104. package/vendor/sdk/index.d.ts.map +1 -0
  105. package/vendor/sdk/index.js +179 -0
  106. package/vendor/sdk/index.js.map +1 -0
  107. package/vendor/sdk/index.mjs +136 -0
  108. package/vendor/sdk/index.mjs.map +1 -0
  109. package/vendor/sdk/internal/decoders/jsonl.d.ts +12 -0
  110. package/vendor/sdk/internal/decoders/jsonl.d.ts.map +1 -0
  111. package/vendor/sdk/internal/decoders/jsonl.js +35 -0
  112. package/vendor/sdk/internal/decoders/jsonl.js.map +1 -0
  113. package/vendor/sdk/internal/decoders/jsonl.mjs +31 -0
  114. package/vendor/sdk/internal/decoders/jsonl.mjs.map +1 -0
  115. package/vendor/sdk/internal/decoders/line.d.ts +20 -0
  116. package/vendor/sdk/internal/decoders/line.d.ts.map +1 -0
  117. package/vendor/sdk/internal/decoders/line.js +123 -0
  118. package/vendor/sdk/internal/decoders/line.js.map +1 -0
  119. package/vendor/sdk/internal/decoders/line.mjs +119 -0
  120. package/vendor/sdk/internal/decoders/line.mjs.map +1 -0
  121. package/vendor/sdk/internal/stream-utils.d.ts +8 -0
  122. package/vendor/sdk/internal/stream-utils.d.ts.map +1 -0
  123. package/vendor/sdk/internal/stream-utils.js +39 -0
  124. package/vendor/sdk/internal/stream-utils.js.map +1 -0
  125. package/vendor/sdk/internal/stream-utils.mjs +35 -0
  126. package/vendor/sdk/internal/stream-utils.mjs.map +1 -0
  127. package/vendor/sdk/lib/BetaMessageStream.d.ts +114 -0
  128. package/vendor/sdk/lib/BetaMessageStream.d.ts.map +1 -0
  129. package/vendor/sdk/lib/BetaMessageStream.js +547 -0
  130. package/vendor/sdk/lib/BetaMessageStream.js.map +1 -0
  131. package/vendor/sdk/lib/BetaMessageStream.mjs +543 -0
  132. package/vendor/sdk/lib/BetaMessageStream.mjs.map +1 -0
  133. package/vendor/sdk/lib/MessageStream.d.ts +114 -0
  134. package/vendor/sdk/lib/MessageStream.d.ts.map +1 -0
  135. package/vendor/sdk/lib/MessageStream.js +547 -0
  136. package/vendor/sdk/lib/MessageStream.js.map +1 -0
  137. package/vendor/sdk/lib/MessageStream.mjs +543 -0
  138. package/vendor/sdk/lib/MessageStream.mjs.map +1 -0
  139. package/vendor/sdk/node_modules/@types/node/LICENSE +21 -0
  140. package/vendor/sdk/node_modules/@types/node/README.md +15 -0
  141. package/vendor/sdk/node_modules/@types/node/assert/strict.d.ts +8 -0
  142. package/vendor/sdk/node_modules/@types/node/assert.d.ts +985 -0
  143. package/vendor/sdk/node_modules/@types/node/async_hooks.d.ts +522 -0
  144. package/vendor/sdk/node_modules/@types/node/buffer.buffer.d.ts +385 -0
  145. package/vendor/sdk/node_modules/@types/node/buffer.d.ts +1903 -0
  146. package/vendor/sdk/node_modules/@types/node/child_process.d.ts +1549 -0
  147. package/vendor/sdk/node_modules/@types/node/cluster.d.ts +578 -0
  148. package/vendor/sdk/node_modules/@types/node/compatibility/disposable.d.ts +14 -0
  149. package/vendor/sdk/node_modules/@types/node/compatibility/index.d.ts +9 -0
  150. package/vendor/sdk/node_modules/@types/node/compatibility/indexable.d.ts +20 -0
  151. package/vendor/sdk/node_modules/@types/node/compatibility/iterators.d.ts +20 -0
  152. package/vendor/sdk/node_modules/@types/node/console.d.ts +452 -0
  153. package/vendor/sdk/node_modules/@types/node/constants.d.ts +19 -0
  154. package/vendor/sdk/node_modules/@types/node/crypto.d.ts +4453 -0
  155. package/vendor/sdk/node_modules/@types/node/dgram.d.ts +596 -0
  156. package/vendor/sdk/node_modules/@types/node/diagnostics_channel.d.ts +546 -0
  157. package/vendor/sdk/node_modules/@types/node/dns/promises.d.ts +475 -0
  158. package/vendor/sdk/node_modules/@types/node/dns.d.ts +853 -0
  159. package/vendor/sdk/node_modules/@types/node/dom-events.d.ts +124 -0
  160. package/vendor/sdk/node_modules/@types/node/domain.d.ts +170 -0
  161. package/vendor/sdk/node_modules/@types/node/events.d.ts +819 -0
  162. package/vendor/sdk/node_modules/@types/node/fs/promises.d.ts +1205 -0
  163. package/vendor/sdk/node_modules/@types/node/fs.d.ts +4237 -0
  164. package/vendor/sdk/node_modules/@types/node/globals.d.ts +442 -0
  165. package/vendor/sdk/node_modules/@types/node/globals.typedarray.d.ts +21 -0
  166. package/vendor/sdk/node_modules/@types/node/http.d.ts +1839 -0
  167. package/vendor/sdk/node_modules/@types/node/http2.d.ts +2517 -0
  168. package/vendor/sdk/node_modules/@types/node/https.d.ts +544 -0
  169. package/vendor/sdk/node_modules/@types/node/index.d.ts +90 -0
  170. package/vendor/sdk/node_modules/@types/node/inspector.d.ts +2775 -0
  171. package/vendor/sdk/node_modules/@types/node/module.d.ts +291 -0
  172. package/vendor/sdk/node_modules/@types/node/net.d.ts +924 -0
  173. package/vendor/sdk/node_modules/@types/node/os.d.ts +473 -0
  174. package/vendor/sdk/node_modules/@types/node/package.json +225 -0
  175. package/vendor/sdk/node_modules/@types/node/path.d.ts +191 -0
  176. package/vendor/sdk/node_modules/@types/node/perf_hooks.d.ts +753 -0
  177. package/vendor/sdk/node_modules/@types/node/process.d.ts +1553 -0
  178. package/vendor/sdk/node_modules/@types/node/punycode.d.ts +117 -0
  179. package/vendor/sdk/node_modules/@types/node/querystring.d.ts +141 -0
  180. package/vendor/sdk/node_modules/@types/node/readline/promises.d.ts +154 -0
  181. package/vendor/sdk/node_modules/@types/node/readline.d.ts +715 -0
  182. package/vendor/sdk/node_modules/@types/node/repl.d.ts +430 -0
  183. package/vendor/sdk/node_modules/@types/node/stream/consumers.d.ts +12 -0
  184. package/vendor/sdk/node_modules/@types/node/stream/promises.d.ts +90 -0
  185. package/vendor/sdk/node_modules/@types/node/stream/web.d.ts +523 -0
  186. package/vendor/sdk/node_modules/@types/node/stream.d.ts +1731 -0
  187. package/vendor/sdk/node_modules/@types/node/string_decoder.d.ts +67 -0
  188. package/vendor/sdk/node_modules/@types/node/test.d.ts +1245 -0
  189. package/vendor/sdk/node_modules/@types/node/timers/promises.d.ts +93 -0
  190. package/vendor/sdk/node_modules/@types/node/timers.d.ts +126 -0
  191. package/vendor/sdk/node_modules/@types/node/tls.d.ts +1203 -0
  192. package/vendor/sdk/node_modules/@types/node/trace_events.d.ts +171 -0
  193. package/vendor/sdk/node_modules/@types/node/ts5.6/buffer.buffer.d.ts +385 -0
  194. package/vendor/sdk/node_modules/@types/node/ts5.6/globals.typedarray.d.ts +19 -0
  195. package/vendor/sdk/node_modules/@types/node/ts5.6/index.d.ts +90 -0
  196. package/vendor/sdk/node_modules/@types/node/tty.d.ts +206 -0
  197. package/vendor/sdk/node_modules/@types/node/url.d.ts +957 -0
  198. package/vendor/sdk/node_modules/@types/node/util.d.ts +2083 -0
  199. package/vendor/sdk/node_modules/@types/node/v8.d.ts +753 -0
  200. package/vendor/sdk/node_modules/@types/node/vm.d.ts +666 -0
  201. package/vendor/sdk/node_modules/@types/node/wasi.d.ts +160 -0
  202. package/vendor/sdk/node_modules/@types/node/worker_threads.d.ts +695 -0
  203. package/vendor/sdk/node_modules/@types/node/zlib.d.ts +517 -0
  204. package/vendor/sdk/node_modules/undici-types/README.md +6 -0
  205. package/vendor/sdk/node_modules/undici-types/agent.d.ts +31 -0
  206. package/vendor/sdk/node_modules/undici-types/api.d.ts +43 -0
  207. package/vendor/sdk/node_modules/undici-types/balanced-pool.d.ts +18 -0
  208. package/vendor/sdk/node_modules/undici-types/cache.d.ts +36 -0
  209. package/vendor/sdk/node_modules/undici-types/client.d.ts +97 -0
  210. package/vendor/sdk/node_modules/undici-types/connector.d.ts +34 -0
  211. package/vendor/sdk/node_modules/undici-types/content-type.d.ts +21 -0
  212. package/vendor/sdk/node_modules/undici-types/cookies.d.ts +28 -0
  213. package/vendor/sdk/node_modules/undici-types/diagnostics-channel.d.ts +67 -0
  214. package/vendor/sdk/node_modules/undici-types/dispatcher.d.ts +241 -0
  215. package/vendor/sdk/node_modules/undici-types/errors.d.ts +128 -0
  216. package/vendor/sdk/node_modules/undici-types/fetch.d.ts +209 -0
  217. package/vendor/sdk/node_modules/undici-types/file.d.ts +39 -0
  218. package/vendor/sdk/node_modules/undici-types/filereader.d.ts +54 -0
  219. package/vendor/sdk/node_modules/undici-types/formdata.d.ts +108 -0
  220. package/vendor/sdk/node_modules/undici-types/global-dispatcher.d.ts +9 -0
  221. package/vendor/sdk/node_modules/undici-types/global-origin.d.ts +7 -0
  222. package/vendor/sdk/node_modules/undici-types/handlers.d.ts +9 -0
  223. package/vendor/sdk/node_modules/undici-types/header.d.ts +4 -0
  224. package/vendor/sdk/node_modules/undici-types/index.d.ts +63 -0
  225. package/vendor/sdk/node_modules/undici-types/interceptors.d.ts +5 -0
  226. package/vendor/sdk/node_modules/undici-types/mock-agent.d.ts +50 -0
  227. package/vendor/sdk/node_modules/undici-types/mock-client.d.ts +25 -0
  228. package/vendor/sdk/node_modules/undici-types/mock-errors.d.ts +12 -0
  229. package/vendor/sdk/node_modules/undici-types/mock-interceptor.d.ts +93 -0
  230. package/vendor/sdk/node_modules/undici-types/mock-pool.d.ts +25 -0
  231. package/vendor/sdk/node_modules/undici-types/package.json +55 -0
  232. package/vendor/sdk/node_modules/undici-types/patch.d.ts +71 -0
  233. package/vendor/sdk/node_modules/undici-types/pool-stats.d.ts +19 -0
  234. package/vendor/sdk/node_modules/undici-types/pool.d.ts +28 -0
  235. package/vendor/sdk/node_modules/undici-types/proxy-agent.d.ts +30 -0
  236. package/vendor/sdk/node_modules/undici-types/readable.d.ts +61 -0
  237. package/vendor/sdk/node_modules/undici-types/webidl.d.ts +220 -0
  238. package/vendor/sdk/node_modules/undici-types/websocket.d.ts +131 -0
  239. package/vendor/sdk/package.json +124 -0
  240. package/vendor/sdk/pagination.d.ts +27 -0
  241. package/vendor/sdk/pagination.d.ts.map +1 -0
  242. package/vendor/sdk/pagination.js +60 -0
  243. package/vendor/sdk/pagination.js.map +1 -0
  244. package/vendor/sdk/pagination.mjs +56 -0
  245. package/vendor/sdk/pagination.mjs.map +1 -0
  246. package/vendor/sdk/resource.d.ts +6 -0
  247. package/vendor/sdk/resource.d.ts.map +1 -0
  248. package/vendor/sdk/resource.js +11 -0
  249. package/vendor/sdk/resource.js.map +1 -0
  250. package/vendor/sdk/resource.mjs +7 -0
  251. package/vendor/sdk/resource.mjs.map +1 -0
  252. package/vendor/sdk/resources/beta/beta.d.ts +57 -0
  253. package/vendor/sdk/resources/beta/beta.d.ts.map +1 -0
  254. package/vendor/sdk/resources/beta/beta.js +44 -0
  255. package/vendor/sdk/resources/beta/beta.js.map +1 -0
  256. package/vendor/sdk/resources/beta/beta.mjs +17 -0
  257. package/vendor/sdk/resources/beta/beta.mjs.map +1 -0
  258. package/vendor/sdk/resources/beta/index.d.ts +4 -0
  259. package/vendor/sdk/resources/beta/index.d.ts.map +1 -0
  260. package/vendor/sdk/resources/beta/index.js +12 -0
  261. package/vendor/sdk/resources/beta/index.js.map +1 -0
  262. package/vendor/sdk/resources/beta/index.mjs +5 -0
  263. package/vendor/sdk/resources/beta/index.mjs.map +1 -0
  264. package/vendor/sdk/resources/beta/messages/batches.d.ts +289 -0
  265. package/vendor/sdk/resources/beta/messages/batches.d.ts.map +1 -0
  266. package/vendor/sdk/resources/beta/messages/batches.js +112 -0
  267. package/vendor/sdk/resources/beta/messages/batches.js.map +1 -0
  268. package/vendor/sdk/resources/beta/messages/batches.mjs +107 -0
  269. package/vendor/sdk/resources/beta/messages/batches.mjs.map +1 -0
  270. package/vendor/sdk/resources/beta/messages/index.d.ts +3 -0
  271. package/vendor/sdk/resources/beta/messages/index.d.ts.map +1 -0
  272. package/vendor/sdk/resources/beta/messages/index.js +10 -0
  273. package/vendor/sdk/resources/beta/messages/index.js.map +1 -0
  274. package/vendor/sdk/resources/beta/messages/index.mjs +4 -0
  275. package/vendor/sdk/resources/beta/messages/index.mjs.map +1 -0
  276. package/vendor/sdk/resources/beta/messages/messages.d.ts +1038 -0
  277. package/vendor/sdk/resources/beta/messages/messages.d.ts.map +1 -0
  278. package/vendor/sdk/resources/beta/messages/messages.js +93 -0
  279. package/vendor/sdk/resources/beta/messages/messages.js.map +1 -0
  280. package/vendor/sdk/resources/beta/messages/messages.mjs +66 -0
  281. package/vendor/sdk/resources/beta/messages/messages.mjs.map +1 -0
  282. package/vendor/sdk/resources/beta/models.d.ts +49 -0
  283. package/vendor/sdk/resources/beta/models.d.ts.map +1 -0
  284. package/vendor/sdk/resources/beta/models.js +30 -0
  285. package/vendor/sdk/resources/beta/models.js.map +1 -0
  286. package/vendor/sdk/resources/beta/models.mjs +25 -0
  287. package/vendor/sdk/resources/beta/models.mjs.map +1 -0
  288. package/vendor/sdk/resources/completions.d.ts +166 -0
  289. package/vendor/sdk/resources/completions.d.ts.map +1 -0
  290. package/vendor/sdk/resources/completions.js +17 -0
  291. package/vendor/sdk/resources/completions.js.map +1 -0
  292. package/vendor/sdk/resources/completions.mjs +13 -0
  293. package/vendor/sdk/resources/completions.mjs.map +1 -0
  294. package/vendor/sdk/resources/index.d.ts +6 -0
  295. package/vendor/sdk/resources/index.d.ts.map +1 -0
  296. package/vendor/sdk/resources/index.js +29 -0
  297. package/vendor/sdk/resources/index.js.map +1 -0
  298. package/vendor/sdk/resources/index.mjs +7 -0
  299. package/vendor/sdk/resources/index.mjs.map +1 -0
  300. package/vendor/sdk/resources/messages/batches.d.ts +253 -0
  301. package/vendor/sdk/resources/messages/batches.d.ts.map +1 -0
  302. package/vendor/sdk/resources/messages/batches.js +102 -0
  303. package/vendor/sdk/resources/messages/batches.js.map +1 -0
  304. package/vendor/sdk/resources/messages/batches.mjs +97 -0
  305. package/vendor/sdk/resources/messages/batches.mjs.map +1 -0
  306. package/vendor/sdk/resources/messages/index.d.ts +3 -0
  307. package/vendor/sdk/resources/messages/index.d.ts.map +1 -0
  308. package/vendor/sdk/resources/messages/index.js +10 -0
  309. package/vendor/sdk/resources/messages/index.js.map +1 -0
  310. package/vendor/sdk/resources/messages/index.mjs +4 -0
  311. package/vendor/sdk/resources/messages/index.mjs.map +1 -0
  312. package/vendor/sdk/resources/messages/messages.d.ts +1028 -0
  313. package/vendor/sdk/resources/messages/messages.d.ts.map +1 -0
  314. package/vendor/sdk/resources/messages/messages.js +82 -0
  315. package/vendor/sdk/resources/messages/messages.js.map +1 -0
  316. package/vendor/sdk/resources/messages/messages.mjs +54 -0
  317. package/vendor/sdk/resources/messages/messages.mjs.map +1 -0
  318. package/vendor/sdk/resources/models.d.ts +49 -0
  319. package/vendor/sdk/resources/models.d.ts.map +1 -0
  320. package/vendor/sdk/resources/models.js +30 -0
  321. package/vendor/sdk/resources/models.js.map +1 -0
  322. package/vendor/sdk/resources/models.mjs +25 -0
  323. package/vendor/sdk/resources/models.mjs.map +1 -0
  324. package/vendor/sdk/resources/shared.d.ts +42 -0
  325. package/vendor/sdk/resources/shared.d.ts.map +1 -0
  326. package/vendor/sdk/resources/shared.js +4 -0
  327. package/vendor/sdk/resources/shared.js.map +1 -0
  328. package/vendor/sdk/resources/shared.mjs +3 -0
  329. package/vendor/sdk/resources/shared.mjs.map +1 -0
  330. package/vendor/sdk/resources/top-level.d.ts +2 -0
  331. package/vendor/sdk/resources/top-level.d.ts.map +1 -0
  332. package/vendor/sdk/resources/top-level.js +4 -0
  333. package/vendor/sdk/resources/top-level.js.map +1 -0
  334. package/vendor/sdk/resources/top-level.mjs +3 -0
  335. package/vendor/sdk/resources/top-level.mjs.map +1 -0
  336. package/vendor/sdk/shims/node.d.ts +30 -0
  337. package/vendor/sdk/shims/node.d.ts.map +1 -0
  338. package/vendor/sdk/shims/node.js +31 -0
  339. package/vendor/sdk/shims/node.js.map +1 -0
  340. package/vendor/sdk/shims/node.mjs +5 -0
  341. package/vendor/sdk/shims/node.mjs.map +1 -0
  342. package/vendor/sdk/shims/web.d.ts +26 -0
  343. package/vendor/sdk/shims/web.d.ts.map +1 -0
  344. package/vendor/sdk/shims/web.js +31 -0
  345. package/vendor/sdk/shims/web.js.map +1 -0
  346. package/vendor/sdk/shims/web.mjs +5 -0
  347. package/vendor/sdk/shims/web.mjs.map +1 -0
  348. package/vendor/sdk/src/_shims/MultipartBody.ts +9 -0
  349. package/vendor/sdk/src/_shims/README.md +46 -0
  350. package/vendor/sdk/src/_shims/auto/runtime-bun.ts +4 -0
  351. package/vendor/sdk/src/_shims/auto/runtime-node.ts +4 -0
  352. package/vendor/sdk/src/_shims/auto/runtime.ts +4 -0
  353. package/vendor/sdk/src/_shims/auto/types-node.ts +4 -0
  354. package/vendor/sdk/src/_shims/auto/types.d.ts +101 -0
  355. package/vendor/sdk/src/_shims/auto/types.js +3 -0
  356. package/vendor/sdk/src/_shims/auto/types.mjs +3 -0
  357. package/vendor/sdk/src/_shims/bun-runtime.ts +14 -0
  358. package/vendor/sdk/src/_shims/index.d.ts +81 -0
  359. package/vendor/sdk/src/_shims/index.js +13 -0
  360. package/vendor/sdk/src/_shims/index.mjs +7 -0
  361. package/vendor/sdk/src/_shims/manual-types.d.ts +12 -0
  362. package/vendor/sdk/src/_shims/manual-types.js +3 -0
  363. package/vendor/sdk/src/_shims/manual-types.mjs +3 -0
  364. package/vendor/sdk/src/_shims/node-runtime.ts +81 -0
  365. package/vendor/sdk/src/_shims/node-types.d.ts +42 -0
  366. package/vendor/sdk/src/_shims/node-types.js +3 -0
  367. package/vendor/sdk/src/_shims/node-types.mjs +3 -0
  368. package/vendor/sdk/src/_shims/registry.ts +67 -0
  369. package/vendor/sdk/src/_shims/web-runtime.ts +103 -0
  370. package/vendor/sdk/src/_shims/web-types.d.ts +83 -0
  371. package/vendor/sdk/src/_shims/web-types.js +3 -0
  372. package/vendor/sdk/src/_shims/web-types.mjs +3 -0
  373. package/vendor/sdk/src/_vendor/partial-json-parser/README.md +3 -0
  374. package/vendor/sdk/src/_vendor/partial-json-parser/parser.ts +264 -0
  375. package/vendor/sdk/src/core.ts +1250 -0
  376. package/vendor/sdk/src/error.ts +133 -0
  377. package/vendor/sdk/src/index.ts +465 -0
  378. package/vendor/sdk/src/internal/decoders/jsonl.ts +41 -0
  379. package/vendor/sdk/src/internal/decoders/line.ts +145 -0
  380. package/vendor/sdk/src/internal/stream-utils.ts +32 -0
  381. package/vendor/sdk/src/lib/.keep +4 -0
  382. package/vendor/sdk/src/lib/BetaMessageStream.ts +661 -0
  383. package/vendor/sdk/src/lib/MessageStream.ts +662 -0
  384. package/vendor/sdk/src/pagination.ts +92 -0
  385. package/vendor/sdk/src/resource.ts +11 -0
  386. package/vendor/sdk/src/resources/beta/beta.ts +249 -0
  387. package/vendor/sdk/src/resources/beta/index.ts +83 -0
  388. package/vendor/sdk/src/resources/beta/messages/batches.ts +486 -0
  389. package/vendor/sdk/src/resources/beta/messages/index.ts +87 -0
  390. package/vendor/sdk/src/resources/beta/messages/messages.ts +1444 -0
  391. package/vendor/sdk/src/resources/beta/models.ts +78 -0
  392. package/vendor/sdk/src/resources/completions.ts +210 -0
  393. package/vendor/sdk/src/resources/index.ts +95 -0
  394. package/vendor/sdk/src/resources/messages/batches.ts +352 -0
  395. package/vendor/sdk/src/resources/messages/index.ts +85 -0
  396. package/vendor/sdk/src/resources/messages/messages.ts +1412 -0
  397. package/vendor/sdk/src/resources/models.ts +75 -0
  398. package/vendor/sdk/src/resources/shared.ts +72 -0
  399. package/vendor/sdk/src/resources/top-level.ts +3 -0
  400. package/vendor/sdk/src/shims/node.ts +50 -0
  401. package/vendor/sdk/src/shims/web.ts +50 -0
  402. package/vendor/sdk/src/streaming.ts +372 -0
  403. package/vendor/sdk/src/tsconfig.json +11 -0
  404. package/vendor/sdk/src/uploads.ts +255 -0
  405. package/vendor/sdk/src/version.ts +1 -0
  406. package/vendor/sdk/streaming.d.ts +36 -0
  407. package/vendor/sdk/streaming.d.ts.map +1 -0
  408. package/vendor/sdk/streaming.js +316 -0
  409. package/vendor/sdk/streaming.js.map +1 -0
  410. package/vendor/sdk/streaming.mjs +310 -0
  411. package/vendor/sdk/streaming.mjs.map +1 -0
  412. package/vendor/sdk/uploads.d.ts +75 -0
  413. package/vendor/sdk/uploads.d.ts.map +1 -0
  414. package/vendor/sdk/uploads.js +171 -0
  415. package/vendor/sdk/uploads.js.map +1 -0
  416. package/vendor/sdk/uploads.mjs +158 -0
  417. package/vendor/sdk/uploads.mjs.map +1 -0
  418. package/vendor/sdk/version.d.ts +2 -0
  419. package/vendor/sdk/version.d.ts.map +1 -0
  420. package/vendor/sdk/version.js +5 -0
  421. package/vendor/sdk/version.js.map +1 -0
  422. package/vendor/sdk/version.mjs +2 -0
  423. package/vendor/sdk/version.mjs.map +1 -0
  424. package/yoga.wasm +0 -0
@@ -0,0 +1,75 @@
1
+ // File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
2
+
3
+ import { APIResource } from "../resource.js";
4
+ import { isRequestOptions } from "../core.js";
5
+ import * as Core from "../core.js";
6
+ import { Page, type PageParams } from "../pagination.js";
7
+
8
+ export class Models extends APIResource {
9
+ /**
10
+ * Get a specific model.
11
+ *
12
+ * The Models API response can be used to determine information about a specific
13
+ * model or resolve a model alias to a model ID.
14
+ */
15
+ retrieve(modelId: string, options?: Core.RequestOptions): Core.APIPromise<ModelInfo> {
16
+ return this._client.get(`/v1/models/${modelId}`, options);
17
+ }
18
+
19
+ /**
20
+ * List available models.
21
+ *
22
+ * The Models API response can be used to determine which models are available for
23
+ * use in the API. More recently released models are listed first.
24
+ */
25
+ list(query?: ModelListParams, options?: Core.RequestOptions): Core.PagePromise<ModelInfosPage, ModelInfo>;
26
+ list(options?: Core.RequestOptions): Core.PagePromise<ModelInfosPage, ModelInfo>;
27
+ list(
28
+ query: ModelListParams | Core.RequestOptions = {},
29
+ options?: Core.RequestOptions,
30
+ ): Core.PagePromise<ModelInfosPage, ModelInfo> {
31
+ if (isRequestOptions(query)) {
32
+ return this.list({}, query);
33
+ }
34
+ return this._client.getAPIList('/v1/models', ModelInfosPage, { query, ...options });
35
+ }
36
+ }
37
+
38
+ export class ModelInfosPage extends Page<ModelInfo> {}
39
+
40
+ export interface ModelInfo {
41
+ /**
42
+ * Unique model identifier.
43
+ */
44
+ id: string;
45
+
46
+ /**
47
+ * RFC 3339 datetime string representing the time at which the model was released.
48
+ * May be set to an epoch value if the release date is unknown.
49
+ */
50
+ created_at: string;
51
+
52
+ /**
53
+ * A human-readable name for the model.
54
+ */
55
+ display_name: string;
56
+
57
+ /**
58
+ * Object type.
59
+ *
60
+ * For Models, this is always `"model"`.
61
+ */
62
+ type: 'model';
63
+ }
64
+
65
+ export interface ModelListParams extends PageParams {}
66
+
67
+ Models.ModelInfosPage = ModelInfosPage;
68
+
69
+ export declare namespace Models {
70
+ export {
71
+ type ModelInfo as ModelInfo,
72
+ ModelInfosPage as ModelInfosPage,
73
+ type ModelListParams as ModelListParams,
74
+ };
75
+ }
@@ -0,0 +1,72 @@
1
+ // File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
2
+
3
+ export interface APIErrorObject {
4
+ message: string;
5
+
6
+ type: 'api_error';
7
+ }
8
+
9
+ export interface AuthenticationError {
10
+ message: string;
11
+
12
+ type: 'authentication_error';
13
+ }
14
+
15
+ export interface BillingError {
16
+ message: string;
17
+
18
+ type: 'billing_error';
19
+ }
20
+
21
+ export type ErrorObject =
22
+ | InvalidRequestError
23
+ | AuthenticationError
24
+ | BillingError
25
+ | PermissionError
26
+ | NotFoundError
27
+ | RateLimitError
28
+ | GatewayTimeoutError
29
+ | APIErrorObject
30
+ | OverloadedError;
31
+
32
+ export interface ErrorResponse {
33
+ error: ErrorObject;
34
+
35
+ type: 'error';
36
+ }
37
+
38
+ export interface GatewayTimeoutError {
39
+ message: string;
40
+
41
+ type: 'timeout_error';
42
+ }
43
+
44
+ export interface InvalidRequestError {
45
+ message: string;
46
+
47
+ type: 'invalid_request_error';
48
+ }
49
+
50
+ export interface NotFoundError {
51
+ message: string;
52
+
53
+ type: 'not_found_error';
54
+ }
55
+
56
+ export interface OverloadedError {
57
+ message: string;
58
+
59
+ type: 'overloaded_error';
60
+ }
61
+
62
+ export interface PermissionError {
63
+ message: string;
64
+
65
+ type: 'permission_error';
66
+ }
67
+
68
+ export interface RateLimitError {
69
+ message: string;
70
+
71
+ type: 'rate_limit_error';
72
+ }
@@ -0,0 +1,3 @@
1
+ // File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
2
+
3
+ export {};
@@ -0,0 +1,50 @@
1
+ // @ts-ignore
2
+ import * as types from "../_shims/node-types.js";
3
+ import { setShims } from "../_shims/registry.js";
4
+ import { getRuntime } from "../_shims/node-runtime.js";
5
+ setShims(getRuntime());
6
+
7
+ declare module '../_shims/manual-types' {
8
+ export namespace manual {
9
+ // @ts-ignore
10
+ export type Agent = types.Agent;
11
+ // @ts-ignore
12
+ export import fetch = types.fetch;
13
+ // @ts-ignore
14
+ export type Request = types.Request;
15
+ // @ts-ignore
16
+ export type RequestInfo = types.RequestInfo;
17
+ // @ts-ignore
18
+ export type RequestInit = types.RequestInit;
19
+ // @ts-ignore
20
+ export type Response = types.Response;
21
+ // @ts-ignore
22
+ export type ResponseInit = types.ResponseInit;
23
+ // @ts-ignore
24
+ export type ResponseType = types.ResponseType;
25
+ // @ts-ignore
26
+ export type BodyInit = types.BodyInit;
27
+ // @ts-ignore
28
+ export type Headers = types.Headers;
29
+ // @ts-ignore
30
+ export type HeadersInit = types.HeadersInit;
31
+ // @ts-ignore
32
+ export type BlobPropertyBag = types.BlobPropertyBag;
33
+ // @ts-ignore
34
+ export type FilePropertyBag = types.FilePropertyBag;
35
+ // @ts-ignore
36
+ export type FileFromPathOptions = types.FileFromPathOptions;
37
+ // @ts-ignore
38
+ export import FormData = types.FormData;
39
+ // @ts-ignore
40
+ export import File = types.File;
41
+ // @ts-ignore
42
+ export import Blob = types.Blob;
43
+ // @ts-ignore
44
+ export type Readable = types.Readable;
45
+ // @ts-ignore
46
+ export type FsReadStream = types.FsReadStream;
47
+ // @ts-ignore
48
+ export import ReadableStream = types.ReadableStream;
49
+ }
50
+ }
@@ -0,0 +1,50 @@
1
+ // @ts-ignore
2
+ import * as types from "../_shims/web-types.js";
3
+ import { setShims } from "../_shims/registry.js";
4
+ import { getRuntime } from "../_shims/web-runtime.js";
5
+ setShims(getRuntime({ manuallyImported: true }));
6
+
7
+ declare module '../_shims/manual-types' {
8
+ export namespace manual {
9
+ // @ts-ignore
10
+ export type Agent = types.Agent;
11
+ // @ts-ignore
12
+ export import fetch = types.fetch;
13
+ // @ts-ignore
14
+ export type Request = types.Request;
15
+ // @ts-ignore
16
+ export type RequestInfo = types.RequestInfo;
17
+ // @ts-ignore
18
+ export type RequestInit = types.RequestInit;
19
+ // @ts-ignore
20
+ export type Response = types.Response;
21
+ // @ts-ignore
22
+ export type ResponseInit = types.ResponseInit;
23
+ // @ts-ignore
24
+ export type ResponseType = types.ResponseType;
25
+ // @ts-ignore
26
+ export type BodyInit = types.BodyInit;
27
+ // @ts-ignore
28
+ export type Headers = types.Headers;
29
+ // @ts-ignore
30
+ export type HeadersInit = types.HeadersInit;
31
+ // @ts-ignore
32
+ export type BlobPropertyBag = types.BlobPropertyBag;
33
+ // @ts-ignore
34
+ export type FilePropertyBag = types.FilePropertyBag;
35
+ // @ts-ignore
36
+ export type FileFromPathOptions = types.FileFromPathOptions;
37
+ // @ts-ignore
38
+ export import FormData = types.FormData;
39
+ // @ts-ignore
40
+ export import File = types.File;
41
+ // @ts-ignore
42
+ export import Blob = types.Blob;
43
+ // @ts-ignore
44
+ export type Readable = types.Readable;
45
+ // @ts-ignore
46
+ export type FsReadStream = types.FsReadStream;
47
+ // @ts-ignore
48
+ export import ReadableStream = types.ReadableStream;
49
+ }
50
+ }
@@ -0,0 +1,372 @@
1
+ import { ReadableStream, type Response } from "./_shims/index.js";
2
+ import { AnthropicError } from "./error.js";
3
+ import { LineDecoder } from "./internal/decoders/line.js";
4
+ import { ReadableStreamToAsyncIterable } from "./internal/stream-utils.js";
5
+
6
+ import { createResponseHeaders } from "./core.js";
7
+ import { APIError } from "./error.js";
8
+
9
+ type Bytes = string | ArrayBuffer | Uint8Array | Buffer | null | undefined;
10
+
11
+ export type ServerSentEvent = {
12
+ event: string | null;
13
+ data: string;
14
+ raw: string[];
15
+ };
16
+
17
+ export class Stream<Item> implements AsyncIterable<Item> {
18
+ controller: AbortController;
19
+
20
+ constructor(
21
+ private iterator: () => AsyncIterator<Item>,
22
+ controller: AbortController,
23
+ ) {
24
+ this.controller = controller;
25
+ }
26
+
27
+ static fromSSEResponse<Item>(response: Response, controller: AbortController): Stream<Item> {
28
+ let consumed = false;
29
+
30
+ async function* iterator(): AsyncIterator<Item, any, undefined> {
31
+ if (consumed) {
32
+ throw new Error('Cannot iterate over a consumed stream, use `.tee()` to split the stream.');
33
+ }
34
+ consumed = true;
35
+ let done = false;
36
+ try {
37
+ for await (const sse of _iterSSEMessages(response, controller)) {
38
+ if (sse.event === 'completion') {
39
+ try {
40
+ yield JSON.parse(sse.data);
41
+ } catch (e) {
42
+ console.error(`Could not parse message into JSON:`, sse.data);
43
+ console.error(`From chunk:`, sse.raw);
44
+ throw e;
45
+ }
46
+ }
47
+
48
+ if (
49
+ sse.event === 'message_start' ||
50
+ sse.event === 'message_delta' ||
51
+ sse.event === 'message_stop' ||
52
+ sse.event === 'content_block_start' ||
53
+ sse.event === 'content_block_delta' ||
54
+ sse.event === 'content_block_stop'
55
+ ) {
56
+ try {
57
+ yield JSON.parse(sse.data);
58
+ } catch (e) {
59
+ console.error(`Could not parse message into JSON:`, sse.data);
60
+ console.error(`From chunk:`, sse.raw);
61
+ throw e;
62
+ }
63
+ }
64
+
65
+ if (sse.event === 'ping') {
66
+ continue;
67
+ }
68
+
69
+ if (sse.event === 'error') {
70
+ throw APIError.generate(
71
+ undefined,
72
+ `SSE Error: ${sse.data}`,
73
+ sse.data,
74
+ createResponseHeaders(response.headers),
75
+ );
76
+ }
77
+ }
78
+ done = true;
79
+ } catch (e) {
80
+ // If the user calls `stream.controller.abort()`, we should exit without throwing.
81
+ if (e instanceof Error && e.name === 'AbortError') return;
82
+ throw e;
83
+ } finally {
84
+ // If the user `break`s, abort the ongoing request.
85
+ if (!done) controller.abort();
86
+ }
87
+ }
88
+
89
+ return new Stream(iterator, controller);
90
+ }
91
+
92
+ /**
93
+ * Generates a Stream from a newline-separated ReadableStream
94
+ * where each item is a JSON value.
95
+ */
96
+ static fromReadableStream<Item>(readableStream: ReadableStream, controller: AbortController): Stream<Item> {
97
+ let consumed = false;
98
+
99
+ async function* iterLines(): AsyncGenerator<string, void, unknown> {
100
+ const lineDecoder = new LineDecoder();
101
+
102
+ const iter = ReadableStreamToAsyncIterable<Bytes>(readableStream);
103
+ for await (const chunk of iter) {
104
+ for (const line of lineDecoder.decode(chunk)) {
105
+ yield line;
106
+ }
107
+ }
108
+
109
+ for (const line of lineDecoder.flush()) {
110
+ yield line;
111
+ }
112
+ }
113
+
114
+ async function* iterator(): AsyncIterator<Item, any, undefined> {
115
+ if (consumed) {
116
+ throw new Error('Cannot iterate over a consumed stream, use `.tee()` to split the stream.');
117
+ }
118
+ consumed = true;
119
+ let done = false;
120
+ try {
121
+ for await (const line of iterLines()) {
122
+ if (done) continue;
123
+ if (line) yield JSON.parse(line);
124
+ }
125
+ done = true;
126
+ } catch (e) {
127
+ // If the user calls `stream.controller.abort()`, we should exit without throwing.
128
+ if (e instanceof Error && e.name === 'AbortError') return;
129
+ throw e;
130
+ } finally {
131
+ // If the user `break`s, abort the ongoing request.
132
+ if (!done) controller.abort();
133
+ }
134
+ }
135
+
136
+ return new Stream(iterator, controller);
137
+ }
138
+
139
+ [Symbol.asyncIterator](): AsyncIterator<Item> {
140
+ return this.iterator();
141
+ }
142
+
143
+ /**
144
+ * Splits the stream into two streams which can be
145
+ * independently read from at different speeds.
146
+ */
147
+ tee(): [Stream<Item>, Stream<Item>] {
148
+ const left: Array<Promise<IteratorResult<Item>>> = [];
149
+ const right: Array<Promise<IteratorResult<Item>>> = [];
150
+ const iterator = this.iterator();
151
+
152
+ const teeIterator = (queue: Array<Promise<IteratorResult<Item>>>): AsyncIterator<Item> => {
153
+ return {
154
+ next: () => {
155
+ if (queue.length === 0) {
156
+ const result = iterator.next();
157
+ left.push(result);
158
+ right.push(result);
159
+ }
160
+ return queue.shift()!;
161
+ },
162
+ };
163
+ };
164
+
165
+ return [
166
+ new Stream(() => teeIterator(left), this.controller),
167
+ new Stream(() => teeIterator(right), this.controller),
168
+ ];
169
+ }
170
+
171
+ /**
172
+ * Converts this stream to a newline-separated ReadableStream of
173
+ * JSON stringified values in the stream
174
+ * which can be turned back into a Stream with `Stream.fromReadableStream()`.
175
+ */
176
+ toReadableStream(): ReadableStream {
177
+ const self = this;
178
+ let iter: AsyncIterator<Item>;
179
+ const encoder = new TextEncoder();
180
+
181
+ return new ReadableStream({
182
+ async start() {
183
+ iter = self[Symbol.asyncIterator]();
184
+ },
185
+ async pull(ctrl: any) {
186
+ try {
187
+ const { value, done } = await iter.next();
188
+ if (done) return ctrl.close();
189
+
190
+ const bytes = encoder.encode(JSON.stringify(value) + '\n');
191
+
192
+ ctrl.enqueue(bytes);
193
+ } catch (err) {
194
+ ctrl.error(err);
195
+ }
196
+ },
197
+ async cancel() {
198
+ await iter.return?.();
199
+ },
200
+ });
201
+ }
202
+ }
203
+
204
+ export async function* _iterSSEMessages(
205
+ response: Response,
206
+ controller: AbortController,
207
+ ): AsyncGenerator<ServerSentEvent, void, unknown> {
208
+ if (!response.body) {
209
+ controller.abort();
210
+ throw new AnthropicError(`Attempted to iterate over a response with no body`);
211
+ }
212
+
213
+ const sseDecoder = new SSEDecoder();
214
+ const lineDecoder = new LineDecoder();
215
+
216
+ const iter = ReadableStreamToAsyncIterable<Bytes>(response.body);
217
+ for await (const sseChunk of iterSSEChunks(iter)) {
218
+ for (const line of lineDecoder.decode(sseChunk)) {
219
+ const sse = sseDecoder.decode(line);
220
+ if (sse) yield sse;
221
+ }
222
+ }
223
+
224
+ for (const line of lineDecoder.flush()) {
225
+ const sse = sseDecoder.decode(line);
226
+ if (sse) yield sse;
227
+ }
228
+ }
229
+
230
+ /**
231
+ * Given an async iterable iterator, iterates over it and yields full
232
+ * SSE chunks, i.e. yields when a double new-line is encountered.
233
+ */
234
+ async function* iterSSEChunks(iterator: AsyncIterableIterator<Bytes>): AsyncGenerator<Uint8Array> {
235
+ let data = new Uint8Array();
236
+
237
+ for await (const chunk of iterator) {
238
+ if (chunk == null) {
239
+ continue;
240
+ }
241
+
242
+ const binaryChunk =
243
+ chunk instanceof ArrayBuffer ? new Uint8Array(chunk)
244
+ : typeof chunk === 'string' ? new TextEncoder().encode(chunk)
245
+ : chunk;
246
+
247
+ let newData = new Uint8Array(data.length + binaryChunk.length);
248
+ newData.set(data);
249
+ newData.set(binaryChunk, data.length);
250
+ data = newData;
251
+
252
+ let patternIndex;
253
+ while ((patternIndex = findDoubleNewlineIndex(data)) !== -1) {
254
+ yield data.slice(0, patternIndex);
255
+ data = data.slice(patternIndex);
256
+ }
257
+ }
258
+
259
+ if (data.length > 0) {
260
+ yield data;
261
+ }
262
+ }
263
+
264
+ function findDoubleNewlineIndex(buffer: Uint8Array): number {
265
+ // This function searches the buffer for the end patterns (\r\r, \n\n, \r\n\r\n)
266
+ // and returns the index right after the first occurrence of any pattern,
267
+ // or -1 if none of the patterns are found.
268
+ const newline = 0x0a; // \n
269
+ const carriage = 0x0d; // \r
270
+
271
+ for (let i = 0; i < buffer.length - 2; i++) {
272
+ if (buffer[i] === newline && buffer[i + 1] === newline) {
273
+ // \n\n
274
+ return i + 2;
275
+ }
276
+ if (buffer[i] === carriage && buffer[i + 1] === carriage) {
277
+ // \r\r
278
+ return i + 2;
279
+ }
280
+ if (
281
+ buffer[i] === carriage &&
282
+ buffer[i + 1] === newline &&
283
+ i + 3 < buffer.length &&
284
+ buffer[i + 2] === carriage &&
285
+ buffer[i + 3] === newline
286
+ ) {
287
+ // \r\n\r\n
288
+ return i + 4;
289
+ }
290
+ }
291
+
292
+ return -1;
293
+ }
294
+
295
+ class SSEDecoder {
296
+ private data: string[];
297
+ private event: string | null;
298
+ private chunks: string[];
299
+
300
+ constructor() {
301
+ this.event = null;
302
+ this.data = [];
303
+ this.chunks = [];
304
+ }
305
+
306
+ decode(line: string) {
307
+ if (line.endsWith('\r')) {
308
+ line = line.substring(0, line.length - 1);
309
+ }
310
+
311
+ if (!line) {
312
+ // empty line and we didn't previously encounter any messages
313
+ if (!this.event && !this.data.length) return null;
314
+
315
+ const sse: ServerSentEvent = {
316
+ event: this.event,
317
+ data: this.data.join('\n'),
318
+ raw: this.chunks,
319
+ };
320
+
321
+ this.event = null;
322
+ this.data = [];
323
+ this.chunks = [];
324
+
325
+ return sse;
326
+ }
327
+
328
+ this.chunks.push(line);
329
+
330
+ if (line.startsWith(':')) {
331
+ return null;
332
+ }
333
+
334
+ let [fieldname, _, value] = partition(line, ':');
335
+
336
+ if (value.startsWith(' ')) {
337
+ value = value.substring(1);
338
+ }
339
+
340
+ if (fieldname === 'event') {
341
+ this.event = value;
342
+ } else if (fieldname === 'data') {
343
+ this.data.push(value);
344
+ }
345
+
346
+ return null;
347
+ }
348
+ }
349
+
350
+ /** This is an internal helper function that's just used for testing */
351
+ export function _decodeChunks(chunks: string[], { flush }: { flush: boolean } = { flush: false }): string[] {
352
+ const decoder = new LineDecoder();
353
+ const lines: string[] = [];
354
+ for (const chunk of chunks) {
355
+ lines.push(...decoder.decode(chunk));
356
+ }
357
+
358
+ if (flush) {
359
+ lines.push(...decoder.flush());
360
+ }
361
+
362
+ return lines;
363
+ }
364
+
365
+ function partition(str: string, delimiter: string): [string, string, string] {
366
+ const index = str.indexOf(delimiter);
367
+ if (index !== -1) {
368
+ return [str.substring(0, index), delimiter, str.substring(index + delimiter.length)];
369
+ }
370
+
371
+ return [str, '', ''];
372
+ }
@@ -0,0 +1,11 @@
1
+ {
2
+ // this config is included in the published src directory to prevent TS errors
3
+ // from appearing when users go to source, and VSCode opens the source .ts file
4
+ // via declaration maps
5
+ "include": ["index.ts"],
6
+ "compilerOptions": {
7
+ "target": "es2015",
8
+ "lib": ["DOM"],
9
+ "moduleResolution": "node"
10
+ }
11
+ }