@zshannon/streamstore 0.22.3

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 (444) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +93 -0
  3. package/dist/cjs/accessTokens.d.ts +51 -0
  4. package/dist/cjs/accessTokens.d.ts.map +1 -0
  5. package/dist/cjs/accessTokens.js +127 -0
  6. package/dist/cjs/accessTokens.js.map +1 -0
  7. package/dist/cjs/auth/biscuit.d.ts +42 -0
  8. package/dist/cjs/auth/biscuit.d.ts.map +1 -0
  9. package/dist/cjs/auth/biscuit.js +72 -0
  10. package/dist/cjs/auth/biscuit.js.map +1 -0
  11. package/dist/cjs/auth/index.d.ts +5 -0
  12. package/dist/cjs/auth/index.d.ts.map +1 -0
  13. package/dist/cjs/auth/index.js +14 -0
  14. package/dist/cjs/auth/index.js.map +1 -0
  15. package/dist/cjs/auth/pki-auth.d.ts +60 -0
  16. package/dist/cjs/auth/pki-auth.d.ts.map +1 -0
  17. package/dist/cjs/auth/pki-auth.js +102 -0
  18. package/dist/cjs/auth/pki-auth.js.map +1 -0
  19. package/dist/cjs/auth/sign.d.ts +39 -0
  20. package/dist/cjs/auth/sign.d.ts.map +1 -0
  21. package/dist/cjs/auth/sign.js +128 -0
  22. package/dist/cjs/auth/sign.js.map +1 -0
  23. package/dist/cjs/auth/signing-key.d.ts +42 -0
  24. package/dist/cjs/auth/signing-key.d.ts.map +1 -0
  25. package/dist/cjs/auth/signing-key.js +66 -0
  26. package/dist/cjs/auth/signing-key.js.map +1 -0
  27. package/dist/cjs/basin.d.ts +33 -0
  28. package/dist/cjs/basin.d.ts.map +1 -0
  29. package/dist/cjs/basin.js +54 -0
  30. package/dist/cjs/basin.js.map +1 -0
  31. package/dist/cjs/basins.d.ts +62 -0
  32. package/dist/cjs/basins.d.ts.map +1 -0
  33. package/dist/cjs/basins.js +201 -0
  34. package/dist/cjs/basins.js.map +1 -0
  35. package/dist/cjs/batch-transform.d.ts +60 -0
  36. package/dist/cjs/batch-transform.d.ts.map +1 -0
  37. package/dist/cjs/batch-transform.js +171 -0
  38. package/dist/cjs/batch-transform.js.map +1 -0
  39. package/dist/cjs/common.d.ts +156 -0
  40. package/dist/cjs/common.d.ts.map +1 -0
  41. package/dist/cjs/common.js +54 -0
  42. package/dist/cjs/common.js.map +1 -0
  43. package/dist/cjs/endpoints.d.ts +63 -0
  44. package/dist/cjs/endpoints.d.ts.map +1 -0
  45. package/dist/cjs/endpoints.js +120 -0
  46. package/dist/cjs/endpoints.js.map +1 -0
  47. package/dist/cjs/error.d.ts +119 -0
  48. package/dist/cjs/error.d.ts.map +1 -0
  49. package/dist/cjs/error.js +373 -0
  50. package/dist/cjs/error.js.map +1 -0
  51. package/dist/cjs/generated/client/client.gen.d.ts +3 -0
  52. package/dist/cjs/generated/client/client.gen.d.ts.map +1 -0
  53. package/dist/cjs/generated/client/client.gen.js +209 -0
  54. package/dist/cjs/generated/client/client.gen.js.map +1 -0
  55. package/dist/cjs/generated/client/index.d.ts +9 -0
  56. package/dist/cjs/generated/client/index.d.ts.map +1 -0
  57. package/dist/cjs/generated/client/index.js +18 -0
  58. package/dist/cjs/generated/client/index.js.map +1 -0
  59. package/dist/cjs/generated/client/types.gen.d.ts +125 -0
  60. package/dist/cjs/generated/client/types.gen.d.ts.map +1 -0
  61. package/dist/cjs/generated/client/types.gen.js +4 -0
  62. package/dist/cjs/generated/client/types.gen.js.map +1 -0
  63. package/dist/cjs/generated/client/utils.gen.d.ts +34 -0
  64. package/dist/cjs/generated/client/utils.gen.d.ts.map +1 -0
  65. package/dist/cjs/generated/client/utils.gen.js +243 -0
  66. package/dist/cjs/generated/client/utils.gen.js.map +1 -0
  67. package/dist/cjs/generated/client.gen.d.ts +13 -0
  68. package/dist/cjs/generated/client.gen.d.ts.map +1 -0
  69. package/dist/cjs/generated/client.gen.js +9 -0
  70. package/dist/cjs/generated/client.gen.js.map +1 -0
  71. package/dist/cjs/generated/core/auth.gen.d.ts +19 -0
  72. package/dist/cjs/generated/core/auth.gen.d.ts.map +1 -0
  73. package/dist/cjs/generated/core/auth.gen.js +19 -0
  74. package/dist/cjs/generated/core/auth.gen.js.map +1 -0
  75. package/dist/cjs/generated/core/bodySerializer.gen.d.ts +26 -0
  76. package/dist/cjs/generated/core/bodySerializer.gen.d.ts.map +1 -0
  77. package/dist/cjs/generated/core/bodySerializer.gen.js +61 -0
  78. package/dist/cjs/generated/core/bodySerializer.gen.js.map +1 -0
  79. package/dist/cjs/generated/core/params.gen.d.ts +44 -0
  80. package/dist/cjs/generated/core/params.gen.d.ts.map +1 -0
  81. package/dist/cjs/generated/core/params.gen.js +105 -0
  82. package/dist/cjs/generated/core/params.gen.js.map +1 -0
  83. package/dist/cjs/generated/core/pathSerializer.gen.d.ts +34 -0
  84. package/dist/cjs/generated/core/pathSerializer.gen.d.ts.map +1 -0
  85. package/dist/cjs/generated/core/pathSerializer.gen.js +124 -0
  86. package/dist/cjs/generated/core/pathSerializer.gen.js.map +1 -0
  87. package/dist/cjs/generated/core/queryKeySerializer.gen.d.ts +19 -0
  88. package/dist/cjs/generated/core/queryKeySerializer.gen.d.ts.map +1 -0
  89. package/dist/cjs/generated/core/queryKeySerializer.gen.js +106 -0
  90. package/dist/cjs/generated/core/queryKeySerializer.gen.js.map +1 -0
  91. package/dist/cjs/generated/core/serverSentEvents.gen.d.ts +72 -0
  92. package/dist/cjs/generated/core/serverSentEvents.gen.d.ts.map +1 -0
  93. package/dist/cjs/generated/core/serverSentEvents.gen.js +140 -0
  94. package/dist/cjs/generated/core/serverSentEvents.gen.js.map +1 -0
  95. package/dist/cjs/generated/core/types.gen.d.ts +79 -0
  96. package/dist/cjs/generated/core/types.gen.d.ts.map +1 -0
  97. package/dist/cjs/generated/core/types.gen.js +4 -0
  98. package/dist/cjs/generated/core/types.gen.js.map +1 -0
  99. package/dist/cjs/generated/core/utils.gen.d.ts +20 -0
  100. package/dist/cjs/generated/core/utils.gen.d.ts.map +1 -0
  101. package/dist/cjs/generated/core/utils.gen.js +94 -0
  102. package/dist/cjs/generated/core/utils.gen.js.map +1 -0
  103. package/dist/cjs/generated/index.d.ts +3 -0
  104. package/dist/cjs/generated/index.d.ts.map +1 -0
  105. package/dist/cjs/generated/index.js +19 -0
  106. package/dist/cjs/generated/index.js.map +1 -0
  107. package/dist/cjs/generated/proto/s2.d.ts +250 -0
  108. package/dist/cjs/generated/proto/s2.d.ts.map +1 -0
  109. package/dist/cjs/generated/proto/s2.js +426 -0
  110. package/dist/cjs/generated/proto/s2.js.map +1 -0
  111. package/dist/cjs/generated/sdk.gen.d.ts +100 -0
  112. package/dist/cjs/generated/sdk.gen.d.ts.map +1 -0
  113. package/dist/cjs/generated/sdk.gen.js +374 -0
  114. package/dist/cjs/generated/sdk.gen.js.map +1 -0
  115. package/dist/cjs/generated/types.gen.d.ts +1064 -0
  116. package/dist/cjs/generated/types.gen.d.ts.map +1 -0
  117. package/dist/cjs/generated/types.gen.js +4 -0
  118. package/dist/cjs/generated/types.gen.js.map +1 -0
  119. package/dist/cjs/index.d.ts +42 -0
  120. package/dist/cjs/index.d.ts.map +1 -0
  121. package/dist/cjs/index.js +81 -0
  122. package/dist/cjs/index.js.map +1 -0
  123. package/dist/cjs/internal/case-transform.d.ts +59 -0
  124. package/dist/cjs/internal/case-transform.d.ts.map +1 -0
  125. package/dist/cjs/internal/case-transform.js +80 -0
  126. package/dist/cjs/internal/case-transform.js.map +1 -0
  127. package/dist/cjs/internal/mappers.d.ts +51 -0
  128. package/dist/cjs/internal/mappers.d.ts.map +1 -0
  129. package/dist/cjs/internal/mappers.js +225 -0
  130. package/dist/cjs/internal/mappers.js.map +1 -0
  131. package/dist/cjs/internal/sdk-types.d.ts +127 -0
  132. package/dist/cjs/internal/sdk-types.d.ts.map +1 -0
  133. package/dist/cjs/internal/sdk-types.js +9 -0
  134. package/dist/cjs/internal/sdk-types.js.map +1 -0
  135. package/dist/cjs/lib/base64.d.ts +12 -0
  136. package/dist/cjs/lib/base64.d.ts.map +1 -0
  137. package/dist/cjs/lib/base64.js +172 -0
  138. package/dist/cjs/lib/base64.js.map +1 -0
  139. package/dist/cjs/lib/event-stream.d.ts +26 -0
  140. package/dist/cjs/lib/event-stream.d.ts.map +1 -0
  141. package/dist/cjs/lib/event-stream.js +154 -0
  142. package/dist/cjs/lib/event-stream.js.map +1 -0
  143. package/dist/cjs/lib/paginate.d.ts +61 -0
  144. package/dist/cjs/lib/paginate.d.ts.map +1 -0
  145. package/dist/cjs/lib/paginate.js +51 -0
  146. package/dist/cjs/lib/paginate.js.map +1 -0
  147. package/dist/cjs/lib/redacted.d.ts +17 -0
  148. package/dist/cjs/lib/redacted.d.ts.map +1 -0
  149. package/dist/cjs/lib/redacted.js +34 -0
  150. package/dist/cjs/lib/redacted.js.map +1 -0
  151. package/dist/cjs/lib/result.d.ts +57 -0
  152. package/dist/cjs/lib/result.d.ts.map +1 -0
  153. package/dist/cjs/lib/result.js +43 -0
  154. package/dist/cjs/lib/result.js.map +1 -0
  155. package/dist/cjs/lib/retry.d.ts +167 -0
  156. package/dist/cjs/lib/retry.d.ts.map +1 -0
  157. package/dist/cjs/lib/retry.js +1011 -0
  158. package/dist/cjs/lib/retry.js.map +1 -0
  159. package/dist/cjs/lib/stream/factory.d.ts +14 -0
  160. package/dist/cjs/lib/stream/factory.d.ts.map +1 -0
  161. package/dist/cjs/lib/stream/factory.js +35 -0
  162. package/dist/cjs/lib/stream/factory.js.map +1 -0
  163. package/dist/cjs/lib/stream/runtime.d.ts +27 -0
  164. package/dist/cjs/lib/stream/runtime.d.ts.map +1 -0
  165. package/dist/cjs/lib/stream/runtime.js +70 -0
  166. package/dist/cjs/lib/stream/runtime.js.map +1 -0
  167. package/dist/cjs/lib/stream/transport/fetch/index.d.ts +64 -0
  168. package/dist/cjs/lib/stream/transport/fetch/index.d.ts.map +1 -0
  169. package/dist/cjs/lib/stream/transport/fetch/index.js +462 -0
  170. package/dist/cjs/lib/stream/transport/fetch/index.js.map +1 -0
  171. package/dist/cjs/lib/stream/transport/fetch/shared.d.ts +11 -0
  172. package/dist/cjs/lib/stream/transport/fetch/shared.d.ts.map +1 -0
  173. package/dist/cjs/lib/stream/transport/fetch/shared.js +118 -0
  174. package/dist/cjs/lib/stream/transport/fetch/shared.js.map +1 -0
  175. package/dist/cjs/lib/stream/transport/proto.d.ts +9 -0
  176. package/dist/cjs/lib/stream/transport/proto.d.ts.map +1 -0
  177. package/dist/cjs/lib/stream/transport/proto.js +118 -0
  178. package/dist/cjs/lib/stream/transport/proto.js.map +1 -0
  179. package/dist/cjs/lib/stream/transport/s2s/framing.d.ts +47 -0
  180. package/dist/cjs/lib/stream/transport/s2s/framing.d.ts.map +1 -0
  181. package/dist/cjs/lib/stream/transport/s2s/framing.js +123 -0
  182. package/dist/cjs/lib/stream/transport/s2s/framing.js.map +1 -0
  183. package/dist/cjs/lib/stream/transport/s2s/index.d.ts +24 -0
  184. package/dist/cjs/lib/stream/transport/s2s/index.d.ts.map +1 -0
  185. package/dist/cjs/lib/stream/transport/s2s/index.js +823 -0
  186. package/dist/cjs/lib/stream/transport/s2s/index.js.map +1 -0
  187. package/dist/cjs/lib/stream/types.d.ts +199 -0
  188. package/dist/cjs/lib/stream/types.d.ts.map +1 -0
  189. package/dist/cjs/lib/stream/types.js +21 -0
  190. package/dist/cjs/lib/stream/types.js.map +1 -0
  191. package/dist/cjs/metrics.d.ts +46 -0
  192. package/dist/cjs/metrics.d.ts.map +1 -0
  193. package/dist/cjs/metrics.js +127 -0
  194. package/dist/cjs/metrics.js.map +1 -0
  195. package/dist/cjs/package.json +3 -0
  196. package/dist/cjs/producer.d.ts +82 -0
  197. package/dist/cjs/producer.d.ts.map +1 -0
  198. package/dist/cjs/producer.js +305 -0
  199. package/dist/cjs/producer.js.map +1 -0
  200. package/dist/cjs/s2.d.ts +41 -0
  201. package/dist/cjs/s2.d.ts.map +1 -0
  202. package/dist/cjs/s2.js +119 -0
  203. package/dist/cjs/s2.js.map +1 -0
  204. package/dist/cjs/stream.d.ts +78 -0
  205. package/dist/cjs/stream.d.ts.map +1 -0
  206. package/dist/cjs/stream.js +176 -0
  207. package/dist/cjs/stream.js.map +1 -0
  208. package/dist/cjs/streams.d.ts +61 -0
  209. package/dist/cjs/streams.d.ts.map +1 -0
  210. package/dist/cjs/streams.js +201 -0
  211. package/dist/cjs/streams.js.map +1 -0
  212. package/dist/cjs/types.d.ts +633 -0
  213. package/dist/cjs/types.d.ts.map +1 -0
  214. package/dist/cjs/types.js +129 -0
  215. package/dist/cjs/types.js.map +1 -0
  216. package/dist/cjs/utils.d.ts +25 -0
  217. package/dist/cjs/utils.d.ts.map +1 -0
  218. package/dist/cjs/utils.js +108 -0
  219. package/dist/cjs/utils.js.map +1 -0
  220. package/dist/cjs/version.d.ts +8 -0
  221. package/dist/cjs/version.d.ts.map +1 -0
  222. package/dist/cjs/version.js +11 -0
  223. package/dist/cjs/version.js.map +1 -0
  224. package/dist/esm/accessTokens.d.ts +51 -0
  225. package/dist/esm/accessTokens.d.ts.map +1 -0
  226. package/dist/esm/accessTokens.js +123 -0
  227. package/dist/esm/accessTokens.js.map +1 -0
  228. package/dist/esm/auth/biscuit.d.ts +42 -0
  229. package/dist/esm/auth/biscuit.d.ts.map +1 -0
  230. package/dist/esm/auth/biscuit.js +68 -0
  231. package/dist/esm/auth/biscuit.js.map +1 -0
  232. package/dist/esm/auth/index.d.ts +5 -0
  233. package/dist/esm/auth/index.d.ts.map +1 -0
  234. package/dist/esm/auth/index.js +5 -0
  235. package/dist/esm/auth/index.js.map +1 -0
  236. package/dist/esm/auth/pki-auth.d.ts +60 -0
  237. package/dist/esm/auth/pki-auth.d.ts.map +1 -0
  238. package/dist/esm/auth/pki-auth.js +99 -0
  239. package/dist/esm/auth/pki-auth.js.map +1 -0
  240. package/dist/esm/auth/sign.d.ts +39 -0
  241. package/dist/esm/auth/sign.d.ts.map +1 -0
  242. package/dist/esm/auth/sign.js +125 -0
  243. package/dist/esm/auth/sign.js.map +1 -0
  244. package/dist/esm/auth/signing-key.d.ts +42 -0
  245. package/dist/esm/auth/signing-key.d.ts.map +1 -0
  246. package/dist/esm/auth/signing-key.js +62 -0
  247. package/dist/esm/auth/signing-key.js.map +1 -0
  248. package/dist/esm/basin.d.ts +33 -0
  249. package/dist/esm/basin.d.ts.map +1 -0
  250. package/dist/esm/basin.js +50 -0
  251. package/dist/esm/basin.js.map +1 -0
  252. package/dist/esm/basins.d.ts +62 -0
  253. package/dist/esm/basins.d.ts.map +1 -0
  254. package/dist/esm/basins.js +197 -0
  255. package/dist/esm/basins.js.map +1 -0
  256. package/dist/esm/batch-transform.d.ts +60 -0
  257. package/dist/esm/batch-transform.d.ts.map +1 -0
  258. package/dist/esm/batch-transform.js +167 -0
  259. package/dist/esm/batch-transform.js.map +1 -0
  260. package/dist/esm/common.d.ts +156 -0
  261. package/dist/esm/common.d.ts.map +1 -0
  262. package/dist/esm/common.js +49 -0
  263. package/dist/esm/common.js.map +1 -0
  264. package/dist/esm/endpoints.d.ts +63 -0
  265. package/dist/esm/endpoints.d.ts.map +1 -0
  266. package/dist/esm/endpoints.js +115 -0
  267. package/dist/esm/endpoints.js.map +1 -0
  268. package/dist/esm/error.d.ts +119 -0
  269. package/dist/esm/error.d.ts.map +1 -0
  270. package/dist/esm/error.js +358 -0
  271. package/dist/esm/error.js.map +1 -0
  272. package/dist/esm/generated/client/client.gen.d.ts +3 -0
  273. package/dist/esm/generated/client/client.gen.d.ts.map +1 -0
  274. package/dist/esm/generated/client/client.gen.js +205 -0
  275. package/dist/esm/generated/client/client.gen.js.map +1 -0
  276. package/dist/esm/generated/client/index.d.ts +9 -0
  277. package/dist/esm/generated/client/index.d.ts.map +1 -0
  278. package/dist/esm/generated/client/index.js +7 -0
  279. package/dist/esm/generated/client/index.js.map +1 -0
  280. package/dist/esm/generated/client/types.gen.d.ts +125 -0
  281. package/dist/esm/generated/client/types.gen.d.ts.map +1 -0
  282. package/dist/esm/generated/client/types.gen.js +3 -0
  283. package/dist/esm/generated/client/types.gen.js.map +1 -0
  284. package/dist/esm/generated/client/utils.gen.d.ts +34 -0
  285. package/dist/esm/generated/client/utils.gen.d.ts.map +1 -0
  286. package/dist/esm/generated/client/utils.gen.js +232 -0
  287. package/dist/esm/generated/client/utils.gen.js.map +1 -0
  288. package/dist/esm/generated/client.gen.d.ts +13 -0
  289. package/dist/esm/generated/client.gen.d.ts.map +1 -0
  290. package/dist/esm/generated/client.gen.js +6 -0
  291. package/dist/esm/generated/client.gen.js.map +1 -0
  292. package/dist/esm/generated/core/auth.gen.d.ts +19 -0
  293. package/dist/esm/generated/core/auth.gen.d.ts.map +1 -0
  294. package/dist/esm/generated/core/auth.gen.js +15 -0
  295. package/dist/esm/generated/core/auth.gen.js.map +1 -0
  296. package/dist/esm/generated/core/bodySerializer.gen.d.ts +26 -0
  297. package/dist/esm/generated/core/bodySerializer.gen.d.ts.map +1 -0
  298. package/dist/esm/generated/core/bodySerializer.gen.js +58 -0
  299. package/dist/esm/generated/core/bodySerializer.gen.js.map +1 -0
  300. package/dist/esm/generated/core/params.gen.d.ts +44 -0
  301. package/dist/esm/generated/core/params.gen.d.ts.map +1 -0
  302. package/dist/esm/generated/core/params.gen.js +101 -0
  303. package/dist/esm/generated/core/params.gen.js.map +1 -0
  304. package/dist/esm/generated/core/pathSerializer.gen.d.ts +34 -0
  305. package/dist/esm/generated/core/pathSerializer.gen.d.ts.map +1 -0
  306. package/dist/esm/generated/core/pathSerializer.gen.js +115 -0
  307. package/dist/esm/generated/core/pathSerializer.gen.js.map +1 -0
  308. package/dist/esm/generated/core/queryKeySerializer.gen.d.ts +19 -0
  309. package/dist/esm/generated/core/queryKeySerializer.gen.d.ts.map +1 -0
  310. package/dist/esm/generated/core/queryKeySerializer.gen.js +100 -0
  311. package/dist/esm/generated/core/queryKeySerializer.gen.js.map +1 -0
  312. package/dist/esm/generated/core/serverSentEvents.gen.d.ts +72 -0
  313. package/dist/esm/generated/core/serverSentEvents.gen.d.ts.map +1 -0
  314. package/dist/esm/generated/core/serverSentEvents.gen.js +136 -0
  315. package/dist/esm/generated/core/serverSentEvents.gen.js.map +1 -0
  316. package/dist/esm/generated/core/types.gen.d.ts +79 -0
  317. package/dist/esm/generated/core/types.gen.d.ts.map +1 -0
  318. package/dist/esm/generated/core/types.gen.js +3 -0
  319. package/dist/esm/generated/core/types.gen.js.map +1 -0
  320. package/dist/esm/generated/core/utils.gen.d.ts +20 -0
  321. package/dist/esm/generated/core/utils.gen.d.ts.map +1 -0
  322. package/dist/esm/generated/core/utils.gen.js +88 -0
  323. package/dist/esm/generated/core/utils.gen.js.map +1 -0
  324. package/dist/esm/generated/index.d.ts +3 -0
  325. package/dist/esm/generated/index.d.ts.map +1 -0
  326. package/dist/esm/generated/index.js +3 -0
  327. package/dist/esm/generated/index.js.map +1 -0
  328. package/dist/esm/generated/proto/s2.d.ts +250 -0
  329. package/dist/esm/generated/proto/s2.d.ts.map +1 -0
  330. package/dist/esm/generated/proto/s2.js +423 -0
  331. package/dist/esm/generated/proto/s2.js.map +1 -0
  332. package/dist/esm/generated/sdk.gen.d.ts +100 -0
  333. package/dist/esm/generated/sdk.gen.d.ts.map +1 -0
  334. package/dist/esm/generated/sdk.gen.js +350 -0
  335. package/dist/esm/generated/sdk.gen.js.map +1 -0
  336. package/dist/esm/generated/types.gen.d.ts +1064 -0
  337. package/dist/esm/generated/types.gen.d.ts.map +1 -0
  338. package/dist/esm/generated/types.gen.js +3 -0
  339. package/dist/esm/generated/types.gen.js.map +1 -0
  340. package/dist/esm/index.d.ts +42 -0
  341. package/dist/esm/index.d.ts.map +1 -0
  342. package/dist/esm/index.js +47 -0
  343. package/dist/esm/index.js.map +1 -0
  344. package/dist/esm/internal/case-transform.d.ts +59 -0
  345. package/dist/esm/internal/case-transform.d.ts.map +1 -0
  346. package/dist/esm/internal/case-transform.js +76 -0
  347. package/dist/esm/internal/case-transform.js.map +1 -0
  348. package/dist/esm/internal/mappers.d.ts +51 -0
  349. package/dist/esm/internal/mappers.d.ts.map +1 -0
  350. package/dist/esm/internal/mappers.js +218 -0
  351. package/dist/esm/internal/mappers.js.map +1 -0
  352. package/dist/esm/internal/sdk-types.d.ts +127 -0
  353. package/dist/esm/internal/sdk-types.d.ts.map +1 -0
  354. package/dist/esm/internal/sdk-types.js +8 -0
  355. package/dist/esm/internal/sdk-types.js.map +1 -0
  356. package/dist/esm/lib/base64.d.ts +12 -0
  357. package/dist/esm/lib/base64.d.ts.map +1 -0
  358. package/dist/esm/lib/base64.js +165 -0
  359. package/dist/esm/lib/base64.js.map +1 -0
  360. package/dist/esm/lib/event-stream.d.ts +26 -0
  361. package/dist/esm/lib/event-stream.d.ts.map +1 -0
  362. package/dist/esm/lib/event-stream.js +150 -0
  363. package/dist/esm/lib/event-stream.js.map +1 -0
  364. package/dist/esm/lib/paginate.d.ts +61 -0
  365. package/dist/esm/lib/paginate.d.ts.map +1 -0
  366. package/dist/esm/lib/paginate.js +48 -0
  367. package/dist/esm/lib/paginate.js.map +1 -0
  368. package/dist/esm/lib/redacted.d.ts +17 -0
  369. package/dist/esm/lib/redacted.d.ts.map +1 -0
  370. package/dist/esm/lib/redacted.js +28 -0
  371. package/dist/esm/lib/redacted.js.map +1 -0
  372. package/dist/esm/lib/result.d.ts +57 -0
  373. package/dist/esm/lib/result.d.ts.map +1 -0
  374. package/dist/esm/lib/result.js +37 -0
  375. package/dist/esm/lib/result.js.map +1 -0
  376. package/dist/esm/lib/retry.d.ts +167 -0
  377. package/dist/esm/lib/retry.d.ts.map +1 -0
  378. package/dist/esm/lib/retry.js +1003 -0
  379. package/dist/esm/lib/retry.js.map +1 -0
  380. package/dist/esm/lib/stream/factory.d.ts +14 -0
  381. package/dist/esm/lib/stream/factory.d.ts.map +1 -0
  382. package/dist/esm/lib/stream/factory.js +32 -0
  383. package/dist/esm/lib/stream/factory.js.map +1 -0
  384. package/dist/esm/lib/stream/runtime.d.ts +27 -0
  385. package/dist/esm/lib/stream/runtime.d.ts.map +1 -0
  386. package/dist/esm/lib/stream/runtime.js +71 -0
  387. package/dist/esm/lib/stream/runtime.js.map +1 -0
  388. package/dist/esm/lib/stream/transport/fetch/index.d.ts +64 -0
  389. package/dist/esm/lib/stream/transport/fetch/index.d.ts.map +1 -0
  390. package/dist/esm/lib/stream/transport/fetch/index.js +456 -0
  391. package/dist/esm/lib/stream/transport/fetch/index.js.map +1 -0
  392. package/dist/esm/lib/stream/transport/fetch/shared.d.ts +11 -0
  393. package/dist/esm/lib/stream/transport/fetch/shared.d.ts.map +1 -0
  394. package/dist/esm/lib/stream/transport/fetch/shared.js +114 -0
  395. package/dist/esm/lib/stream/transport/fetch/shared.js.map +1 -0
  396. package/dist/esm/lib/stream/transport/proto.d.ts +9 -0
  397. package/dist/esm/lib/stream/transport/proto.d.ts.map +1 -0
  398. package/dist/esm/lib/stream/transport/proto.js +110 -0
  399. package/dist/esm/lib/stream/transport/proto.js.map +1 -0
  400. package/dist/esm/lib/stream/transport/s2s/framing.d.ts +47 -0
  401. package/dist/esm/lib/stream/transport/s2s/framing.d.ts.map +1 -0
  402. package/dist/esm/lib/stream/transport/s2s/framing.js +118 -0
  403. package/dist/esm/lib/stream/transport/s2s/framing.js.map +1 -0
  404. package/dist/esm/lib/stream/transport/s2s/index.d.ts +24 -0
  405. package/dist/esm/lib/stream/transport/s2s/index.d.ts.map +1 -0
  406. package/dist/esm/lib/stream/transport/s2s/index.js +819 -0
  407. package/dist/esm/lib/stream/transport/s2s/index.js.map +1 -0
  408. package/dist/esm/lib/stream/types.d.ts +199 -0
  409. package/dist/esm/lib/stream/types.d.ts.map +1 -0
  410. package/dist/esm/lib/stream/types.js +18 -0
  411. package/dist/esm/lib/stream/types.js.map +1 -0
  412. package/dist/esm/metrics.d.ts +46 -0
  413. package/dist/esm/metrics.d.ts.map +1 -0
  414. package/dist/esm/metrics.js +122 -0
  415. package/dist/esm/metrics.js.map +1 -0
  416. package/dist/esm/producer.d.ts +82 -0
  417. package/dist/esm/producer.d.ts.map +1 -0
  418. package/dist/esm/producer.js +300 -0
  419. package/dist/esm/producer.js.map +1 -0
  420. package/dist/esm/s2.d.ts +41 -0
  421. package/dist/esm/s2.d.ts.map +1 -0
  422. package/dist/esm/s2.js +115 -0
  423. package/dist/esm/s2.js.map +1 -0
  424. package/dist/esm/stream.d.ts +78 -0
  425. package/dist/esm/stream.d.ts.map +1 -0
  426. package/dist/esm/stream.js +172 -0
  427. package/dist/esm/stream.js.map +1 -0
  428. package/dist/esm/streams.d.ts +61 -0
  429. package/dist/esm/streams.d.ts.map +1 -0
  430. package/dist/esm/streams.js +197 -0
  431. package/dist/esm/streams.js.map +1 -0
  432. package/dist/esm/types.d.ts +633 -0
  433. package/dist/esm/types.d.ts.map +1 -0
  434. package/dist/esm/types.js +126 -0
  435. package/dist/esm/types.js.map +1 -0
  436. package/dist/esm/utils.d.ts +25 -0
  437. package/dist/esm/utils.d.ts.map +1 -0
  438. package/dist/esm/utils.js +103 -0
  439. package/dist/esm/utils.js.map +1 -0
  440. package/dist/esm/version.d.ts +8 -0
  441. package/dist/esm/version.d.ts.map +1 -0
  442. package/dist/esm/version.js +8 -0
  443. package/dist/esm/version.js.map +1 -0
  444. package/package.json +47 -0
@@ -0,0 +1,39 @@
1
+ import { SigningKey } from "./signing-key.js";
2
+ export type SignRequestOptions = {
3
+ /** Request to sign */
4
+ request: Request;
5
+ /** P256 signing key */
6
+ signingKey: SigningKey;
7
+ /** Duration until signature expires (default: 300 seconds) */
8
+ expiresIn?: number;
9
+ };
10
+ /**
11
+ * Signs a Request using RFC 9421 HTTP Message Signatures with a P256 key.
12
+ *
13
+ * Components signed: @method, @path, @authority, authorization, content-digest (if body present)
14
+ *
15
+ * @returns A new Request with signature headers added
16
+ */
17
+ export declare function signRequest(options: SignRequestOptions): Promise<Request>;
18
+ export type SignHeadersOptions = {
19
+ /** HTTP method */
20
+ method: string;
21
+ /** Full URL */
22
+ url: string;
23
+ /** Headers to sign (will be mutated to add signature headers) */
24
+ headers: Record<string, string>;
25
+ /** P256 signing key */
26
+ signingKey: SigningKey;
27
+ /** Request body (optional, for content-digest) */
28
+ body?: Uint8Array;
29
+ /** Duration until signature expires (default: 300 seconds) */
30
+ expiresIn?: number;
31
+ };
32
+ /**
33
+ * Signs HTTP headers using RFC 9421 HTTP Message Signatures with a P256 key.
34
+ * Mutates the headers object to add signature headers.
35
+ *
36
+ * Components signed: @method, @path, @authority, authorization, content-digest (if body present)
37
+ */
38
+ export declare function signHeaders(options: SignHeadersOptions): Promise<void>;
39
+ //# sourceMappingURL=sign.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sign.d.ts","sourceRoot":"","sources":["../../../src/auth/sign.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAE9C,MAAM,MAAM,kBAAkB,GAAG;IAChC,sBAAsB;IACtB,OAAO,EAAE,OAAO,CAAC;IACjB,uBAAuB;IACvB,UAAU,EAAE,UAAU,CAAC;IACvB,8DAA8D;IAC9D,SAAS,CAAC,EAAE,MAAM,CAAC;CACnB,CAAC;AAoDF;;;;;;GAMG;AACH,wBAAsB,WAAW,CAAC,OAAO,EAAE,kBAAkB,GAAG,OAAO,CAAC,OAAO,CAAC,CA8D/E;AAED,MAAM,MAAM,kBAAkB,GAAG;IAChC,kBAAkB;IAClB,MAAM,EAAE,MAAM,CAAC;IACf,eAAe;IACf,GAAG,EAAE,MAAM,CAAC;IACZ,iEAAiE;IACjE,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAChC,uBAAuB;IACvB,UAAU,EAAE,UAAU,CAAC;IACvB,kDAAkD;IAClD,IAAI,CAAC,EAAE,UAAU,CAAC;IAClB,8DAA8D;IAC9D,SAAS,CAAC,EAAE,MAAM,CAAC;CACnB,CAAC;AAEF;;;;;GAKG;AACH,wBAAsB,WAAW,CAAC,OAAO,EAAE,kBAAkB,GAAG,OAAO,CAAC,IAAI,CAAC,CA2B5E"}
@@ -0,0 +1,128 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.signRequest = signRequest;
4
+ exports.signHeaders = signHeaders;
5
+ const nist_js_1 = require("@noble/curves/nist.js");
6
+ const sha256_1 = require("@noble/hashes/sha256");
7
+ const base_1 = require("@scure/base");
8
+ /**
9
+ * Build the signature base string per RFC 9421.
10
+ * The @signature-params line uses the same parameter order as the Rust httpsig crate:
11
+ * created, alg, keyid (to ensure compatibility with server verification).
12
+ */
13
+ function buildSignatureBase(method, path, authority, headers, components, created, keyid) {
14
+ const lines = [];
15
+ for (const component of components) {
16
+ let value;
17
+ if (component === "@method") {
18
+ value = method.toUpperCase();
19
+ }
20
+ else if (component === "@path") {
21
+ value = path;
22
+ }
23
+ else if (component === "@authority") {
24
+ value = authority;
25
+ }
26
+ else {
27
+ // Regular header
28
+ value = headers.get(component) ?? "";
29
+ }
30
+ lines.push(`"${component}": ${value}`);
31
+ }
32
+ // Build signature-params with Rust httpsig order: created, alg, keyid
33
+ const componentsList = components.map((c) => `"${c}"`).join(" ");
34
+ const signatureParams = `(${componentsList});created=${created};alg="ecdsa-p256-sha256";keyid="${keyid}"`;
35
+ lines.push(`"@signature-params": ${signatureParams}`);
36
+ return lines.join("\n");
37
+ }
38
+ /**
39
+ * Extract authority from URL, stripping default ports per RFC 9421.
40
+ */
41
+ function getAuthority(url) {
42
+ const port = url.port ? parseInt(url.port, 10) : null;
43
+ if (port && ![80, 443].includes(port)) {
44
+ return `${url.hostname}:${port}`;
45
+ }
46
+ return url.hostname;
47
+ }
48
+ /**
49
+ * Signs a Request using RFC 9421 HTTP Message Signatures with a P256 key.
50
+ *
51
+ * Components signed: @method, @path, @authority, authorization, content-digest (if body present)
52
+ *
53
+ * @returns A new Request with signature headers added
54
+ */
55
+ async function signRequest(options) {
56
+ const { request, signingKey } = options;
57
+ // Clone request headers
58
+ const headers = new Headers(request.headers);
59
+ // Determine components to sign
60
+ const components = ["@method", "@path", "@authority", "authorization"];
61
+ // Compute content-digest if body exists
62
+ const body = await request.clone().arrayBuffer();
63
+ if (body.byteLength > 0) {
64
+ const hash = (0, sha256_1.sha256)(new Uint8Array(body));
65
+ const hashBase64 = base_1.base64.encode(hash);
66
+ headers.set("Content-Digest", `sha-256=:${hashBase64}:`);
67
+ components.push("content-digest");
68
+ }
69
+ // Extract URL components
70
+ // Per RFC 9421: @path is the path without query string
71
+ const url = new URL(request.url);
72
+ const path = url.pathname;
73
+ const authority = getAuthority(url);
74
+ // Get signing parameters
75
+ const created = Math.floor(Date.now() / 1000);
76
+ const keyid = signingKey.publicKeyBase58();
77
+ const privateKeyBytes = signingKey.getPrivateKeyBytes();
78
+ // Build signature base (RFC 9421 format, Rust httpsig-compatible param order)
79
+ const signatureBase = buildSignatureBase(request.method, path, authority, headers, components, created, keyid);
80
+ // Sign the signature base
81
+ const signatureBytes = nist_js_1.p256.sign(new TextEncoder().encode(signatureBase), privateKeyBytes, { lowS: true });
82
+ const signatureB64 = base_1.base64.encode(signatureBytes);
83
+ // Build signature-input header (same param order as signature base)
84
+ const componentsList = components.map((c) => `"${c}"`).join(" ");
85
+ const signatureInput = `sig1=(${componentsList});created=${created};alg="ecdsa-p256-sha256";keyid="${keyid}"`;
86
+ // Apply signature headers
87
+ headers.set("Signature", `sig1=:${signatureB64}:`);
88
+ headers.set("Signature-Input", signatureInput);
89
+ // Create new request with signed headers
90
+ return new Request(request.url, {
91
+ body: body.byteLength > 0 ? body : undefined,
92
+ headers,
93
+ method: request.method,
94
+ });
95
+ }
96
+ /**
97
+ * Signs HTTP headers using RFC 9421 HTTP Message Signatures with a P256 key.
98
+ * Mutates the headers object to add signature headers.
99
+ *
100
+ * Components signed: @method, @path, @authority, authorization, content-digest (if body present)
101
+ */
102
+ async function signHeaders(options) {
103
+ const { method, url, headers, signingKey, body, expiresIn = 300 } = options;
104
+ // Build headers (skip pseudo-headers for HTTP/2)
105
+ const requestHeaders = new Headers();
106
+ for (const [key, value] of Object.entries(headers)) {
107
+ if (!key.startsWith(":")) {
108
+ requestHeaders.set(key, value);
109
+ }
110
+ }
111
+ const request = new Request(url, {
112
+ method,
113
+ headers: requestHeaders,
114
+ body: body && body.byteLength > 0 ? body.slice().buffer : undefined,
115
+ });
116
+ const signedRequest = await signRequest({ request, signingKey, expiresIn });
117
+ // Extract signature headers and apply to original headers object
118
+ const signature = signedRequest.headers.get("Signature");
119
+ const signatureInput = signedRequest.headers.get("Signature-Input");
120
+ const contentDigest = signedRequest.headers.get("Content-Digest");
121
+ if (signature)
122
+ headers["signature"] = signature;
123
+ if (signatureInput)
124
+ headers["signature-input"] = signatureInput;
125
+ if (contentDigest)
126
+ headers["content-digest"] = contentDigest;
127
+ }
128
+ //# sourceMappingURL=sign.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sign.js","sourceRoot":"","sources":["../../../src/auth/sign.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,42 @@
1
+ /**
2
+ * P-256 signing key for RFC 9421 HTTP message signatures.
3
+ *
4
+ * When configured, the SDK will sign every HTTP request per RFC 9421,
5
+ * binding the request to both the bearer token and this cryptographic key.
6
+ *
7
+ * @example
8
+ * ```typescript
9
+ * // Generate a new key
10
+ * const key = SigningKey.generate();
11
+ * console.log("Public key:", key.publicKeyBase58());
12
+ *
13
+ * // Import from base58
14
+ * const key = SigningKey.fromBase58("your-base58-encoded-private-key");
15
+ * ```
16
+ */
17
+ export declare class SigningKey {
18
+ private readonly privateKeyBytes;
19
+ private constructor();
20
+ /**
21
+ * Generate a new random P-256 signing key.
22
+ */
23
+ static generate(): SigningKey;
24
+ /**
25
+ * Create a signing key from a base58-encoded 32-byte private key.
26
+ */
27
+ static fromBase58(encoded: string): SigningKey;
28
+ /**
29
+ * Export the private key as a base58-encoded string.
30
+ */
31
+ toBase58(): string;
32
+ /**
33
+ * Get the public key as a base58-encoded compressed point (33 bytes).
34
+ */
35
+ publicKeyBase58(): string;
36
+ /**
37
+ * Get the raw private key bytes (for internal use).
38
+ * @internal
39
+ */
40
+ getPrivateKeyBytes(): Uint8Array;
41
+ }
42
+ //# sourceMappingURL=signing-key.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"signing-key.d.ts","sourceRoot":"","sources":["../../../src/auth/signing-key.ts"],"names":[],"mappings":"AAGA;;;;;;;;;;;;;;;GAeG;AACH,qBAAa,UAAU;IACtB,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAa;IAE7C,OAAO;IAIP;;OAEG;IACH,MAAM,CAAC,QAAQ,IAAI,UAAU;IAK7B;;OAEG;IACH,MAAM,CAAC,UAAU,CAAC,OAAO,EAAE,MAAM,GAAG,UAAU;IAU9C;;OAEG;IACH,QAAQ,IAAI,MAAM;IAIlB;;OAEG;IACH,eAAe,IAAI,MAAM;IAKzB;;;OAGG;IACH,kBAAkB,IAAI,UAAU;CAGhC"}
@@ -0,0 +1,66 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.SigningKey = void 0;
4
+ const nist_js_1 = require("@noble/curves/nist.js");
5
+ const base_1 = require("@scure/base");
6
+ /**
7
+ * P-256 signing key for RFC 9421 HTTP message signatures.
8
+ *
9
+ * When configured, the SDK will sign every HTTP request per RFC 9421,
10
+ * binding the request to both the bearer token and this cryptographic key.
11
+ *
12
+ * @example
13
+ * ```typescript
14
+ * // Generate a new key
15
+ * const key = SigningKey.generate();
16
+ * console.log("Public key:", key.publicKeyBase58());
17
+ *
18
+ * // Import from base58
19
+ * const key = SigningKey.fromBase58("your-base58-encoded-private-key");
20
+ * ```
21
+ */
22
+ class SigningKey {
23
+ privateKeyBytes;
24
+ constructor(privateKeyBytes) {
25
+ this.privateKeyBytes = privateKeyBytes;
26
+ }
27
+ /**
28
+ * Generate a new random P-256 signing key.
29
+ */
30
+ static generate() {
31
+ const privateKey = nist_js_1.p256.utils.randomSecretKey();
32
+ return new SigningKey(privateKey);
33
+ }
34
+ /**
35
+ * Create a signing key from a base58-encoded 32-byte private key.
36
+ */
37
+ static fromBase58(encoded) {
38
+ const privateKey = base_1.base58.decode(encoded);
39
+ if (privateKey.length !== 32) {
40
+ throw new Error(`Invalid signing key: expected 32 bytes, got ${privateKey.length}`);
41
+ }
42
+ return new SigningKey(privateKey);
43
+ }
44
+ /**
45
+ * Export the private key as a base58-encoded string.
46
+ */
47
+ toBase58() {
48
+ return base_1.base58.encode(this.privateKeyBytes);
49
+ }
50
+ /**
51
+ * Get the public key as a base58-encoded compressed point (33 bytes).
52
+ */
53
+ publicKeyBase58() {
54
+ const publicKey = nist_js_1.p256.getPublicKey(this.privateKeyBytes, true);
55
+ return base_1.base58.encode(publicKey);
56
+ }
57
+ /**
58
+ * Get the raw private key bytes (for internal use).
59
+ * @internal
60
+ */
61
+ getPrivateKeyBytes() {
62
+ return this.privateKeyBytes;
63
+ }
64
+ }
65
+ exports.SigningKey = SigningKey;
66
+ //# sourceMappingURL=signing-key.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"signing-key.js","sourceRoot":"","sources":["../../../src/auth/signing-key.ts"],"names":[],"mappings":";;;AAAA,mDAA6C;AAC7C,sCAAqC;AAErC;;;;;;;;;;;;;;;GAeG;AACH,MAAa,UAAU;IACL,eAAe,CAAa;IAE7C,YAAoB,eAA2B;QAC9C,IAAI,CAAC,eAAe,GAAG,eAAe,CAAC;IACxC,CAAC;IAED;;OAEG;IACH,MAAM,CAAC,QAAQ;QACd,MAAM,UAAU,GAAG,cAAI,CAAC,KAAK,CAAC,eAAe,EAAE,CAAC;QAChD,OAAO,IAAI,UAAU,CAAC,UAAU,CAAC,CAAC;IACnC,CAAC;IAED;;OAEG;IACH,MAAM,CAAC,UAAU,CAAC,OAAe;QAChC,MAAM,UAAU,GAAG,aAAM,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;QAC1C,IAAI,UAAU,CAAC,MAAM,KAAK,EAAE,EAAE,CAAC;YAC9B,MAAM,IAAI,KAAK,CACd,+CAA+C,UAAU,CAAC,MAAM,EAAE,CAClE,CAAC;QACH,CAAC;QACD,OAAO,IAAI,UAAU,CAAC,UAAU,CAAC,CAAC;IACnC,CAAC;IAED;;OAEG;IACH,QAAQ;QACP,OAAO,aAAM,CAAC,MAAM,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;IAC5C,CAAC;IAED;;OAEG;IACH,eAAe;QACd,MAAM,SAAS,GAAG,cAAI,CAAC,YAAY,CAAC,IAAI,CAAC,eAAe,EAAE,IAAI,CAAC,CAAC;QAChE,OAAO,aAAM,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;IACjC,CAAC;IAED;;;OAGG;IACH,kBAAkB;QACjB,OAAO,IAAI,CAAC,eAAe,CAAC;IAC7B,CAAC;CACD;AAlDD,gCAkDC"}
@@ -0,0 +1,33 @@
1
+ import { type AuthProvider, type RetryConfig } from "./common.js";
2
+ import type { SessionTransports } from "./lib/stream/types.js";
3
+ import { S2Stream } from "./stream.js";
4
+ import { S2Streams } from "./streams.js";
5
+ export declare class S2Basin {
6
+ private readonly client;
7
+ private readonly transportConfig;
8
+ private readonly retryConfig?;
9
+ readonly name: string;
10
+ readonly streams: S2Streams;
11
+ /**
12
+ * Create a basin-scoped client that talks to `https://{basin}.b.aws.s2.dev/v1`.
13
+ *
14
+ * Use this to work with streams inside a single basin.
15
+ * @param name Basin name
16
+ * @param options Configuration for the basin-scoped client
17
+ */
18
+ constructor(name: string, options: {
19
+ authProvider: AuthProvider;
20
+ baseUrl: string;
21
+ includeBasinHeader: boolean;
22
+ retryConfig?: RetryConfig;
23
+ });
24
+ /**
25
+ * Create a stream-scoped helper bound to `this` basin.
26
+ * @param name Stream name
27
+ */
28
+ stream(name: string, options?: StreamOptions): S2Stream;
29
+ }
30
+ export interface StreamOptions {
31
+ forceTransport?: SessionTransports;
32
+ }
33
+ //# sourceMappingURL=basin.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"basin.d.ts","sourceRoot":"","sources":["../../src/basin.ts"],"names":[],"mappings":"AAAA,OAAO,EAA6B,KAAK,YAAY,EAAE,KAAK,WAAW,EAAE,MAAM,aAAa,CAAC;AAG7F,OAAO,KAAK,EAAE,iBAAiB,EAAmB,MAAM,uBAAuB,CAAC;AAChF,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AACvC,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAEzC,qBAAa,OAAO;IACnB,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAS;IAChC,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAkB;IAClD,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAc;IAC3C,SAAgB,IAAI,EAAE,MAAM,CAAC;IAC7B,SAAgB,OAAO,EAAE,SAAS,CAAC;IAEnC;;;;;;OAMG;gBAEF,IAAI,EAAE,MAAM,EACZ,OAAO,EAAE;QACR,YAAY,EAAE,YAAY,CAAC;QAC3B,OAAO,EAAE,MAAM,CAAC;QAChB,kBAAkB,EAAE,OAAO,CAAC;QAC5B,WAAW,CAAC,EAAE,WAAW,CAAC;KAC1B;IAuBF;;;OAGG;IACI,MAAM,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,aAAa;CAWnD;AAED,MAAM,WAAW,aAAa;IAC7B,cAAc,CAAC,EAAE,iBAAiB,CAAC;CACnC"}
@@ -0,0 +1,54 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.S2Basin = void 0;
4
+ const common_js_1 = require("./common.js");
5
+ const runtime_js_1 = require("./lib/stream/runtime.js");
6
+ const stream_js_1 = require("./stream.js");
7
+ const streams_js_1 = require("./streams.js");
8
+ class S2Basin {
9
+ client;
10
+ transportConfig;
11
+ retryConfig;
12
+ name;
13
+ streams;
14
+ /**
15
+ * Create a basin-scoped client that talks to `https://{basin}.b.aws.s2.dev/v1`.
16
+ *
17
+ * Use this to work with streams inside a single basin.
18
+ * @param name Basin name
19
+ * @param options Configuration for the basin-scoped client
20
+ */
21
+ constructor(name, options) {
22
+ this.name = name;
23
+ this.retryConfig = options.retryConfig;
24
+ this.transportConfig = {
25
+ baseUrl: options.baseUrl,
26
+ authProvider: options.authProvider,
27
+ basinName: options.includeBasinHeader ? name : undefined,
28
+ connectionTimeoutMillis: options.retryConfig?.connectionTimeoutMillis,
29
+ requestTimeoutMillis: options.retryConfig?.requestTimeoutMillis,
30
+ retry: options.retryConfig,
31
+ };
32
+ const headers = {};
33
+ if (options.includeBasinHeader) {
34
+ headers["s2-basin"] = name;
35
+ }
36
+ if ((0, runtime_js_1.canSetUserAgentHeader)()) {
37
+ headers["user-agent"] = runtime_js_1.DEFAULT_USER_AGENT;
38
+ }
39
+ this.client = (0, common_js_1.createAuthenticatedClient)(options.baseUrl, options.authProvider, headers);
40
+ this.streams = new streams_js_1.S2Streams(this.client, this.retryConfig);
41
+ }
42
+ /**
43
+ * Create a stream-scoped helper bound to `this` basin.
44
+ * @param name Stream name
45
+ */
46
+ stream(name, options) {
47
+ return new stream_js_1.S2Stream(name, this.client, {
48
+ ...this.transportConfig,
49
+ forceTransport: options?.forceTransport,
50
+ }, this.retryConfig);
51
+ }
52
+ }
53
+ exports.S2Basin = S2Basin;
54
+ //# sourceMappingURL=basin.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"basin.js","sourceRoot":"","sources":["../../src/basin.ts"],"names":[],"mappings":";;;AAAA,2CAA6F;AAE7F,wDAAoF;AAEpF,2CAAuC;AACvC,6CAAyC;AAEzC,MAAa,OAAO;IACF,MAAM,CAAS;IACf,eAAe,CAAkB;IACjC,WAAW,CAAe;IAC3B,IAAI,CAAS;IACb,OAAO,CAAY;IAEnC;;;;;;OAMG;IACH,YACC,IAAY,EACZ,OAKC;QAED,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QACjB,IAAI,CAAC,WAAW,GAAG,OAAO,CAAC,WAAW,CAAC;QACvC,IAAI,CAAC,eAAe,GAAG;YACtB,OAAO,EAAE,OAAO,CAAC,OAAO;YACxB,YAAY,EAAE,OAAO,CAAC,YAAY;YAClC,SAAS,EAAE,OAAO,CAAC,kBAAkB,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS;YACxD,uBAAuB,EAAE,OAAO,CAAC,WAAW,EAAE,uBAAuB;YACrE,oBAAoB,EAAE,OAAO,CAAC,WAAW,EAAE,oBAAoB;YAC/D,KAAK,EAAE,OAAO,CAAC,WAAW;SAC1B,CAAC;QACF,MAAM,OAAO,GAA2B,EAAE,CAAC;QAC3C,IAAI,OAAO,CAAC,kBAAkB,EAAE,CAAC;YAChC,OAAO,CAAC,UAAU,CAAC,GAAG,IAAI,CAAC;QAC5B,CAAC;QACD,IAAI,IAAA,kCAAqB,GAAE,EAAE,CAAC;YAC7B,OAAO,CAAC,YAAY,CAAC,GAAG,+BAAkB,CAAC;QAC5C,CAAC;QACD,IAAI,CAAC,MAAM,GAAG,IAAA,qCAAyB,EAAC,OAAO,CAAC,OAAO,EAAE,OAAO,CAAC,YAAY,EAAE,OAAO,CAAC,CAAC;QACxF,IAAI,CAAC,OAAO,GAAG,IAAI,sBAAS,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;IAC7D,CAAC;IAED;;;OAGG;IACI,MAAM,CAAC,IAAY,EAAE,OAAuB;QAClD,OAAO,IAAI,oBAAQ,CAClB,IAAI,EACJ,IAAI,CAAC,MAAM,EACX;YACC,GAAG,IAAI,CAAC,eAAe;YACvB,cAAc,EAAE,OAAO,EAAE,cAAc;SACvC,EACD,IAAI,CAAC,WAAW,CAChB,CAAC;IACH,CAAC;CACD;AA3DD,0BA2DC"}
@@ -0,0 +1,62 @@
1
+ import type { RetryConfig, S2RequestOptions } from "./common.js";
2
+ import type { Client } from "./generated/client/types.gen.js";
3
+ import type * as Types from "./types.js";
4
+ /**
5
+ * Account-scoped helper for listing, creating, deleting, and reconfiguring basins.
6
+ *
7
+ * Retrieve this via {@link S2.basins}. Each method retries according to the client-level retry config.
8
+ */
9
+ export declare class S2Basins {
10
+ private readonly client;
11
+ private readonly retryConfig;
12
+ constructor(client: Client, retryConfig: RetryConfig);
13
+ /**
14
+ * List basins.
15
+ *
16
+ * @param args.prefix Return basins whose names start with the given prefix
17
+ * @param args.startAfter Name to start after (for pagination)
18
+ * @param args.limit Max results (up to 1000)
19
+ */
20
+ list(args?: Types.ListBasinsInput, options?: S2RequestOptions): Promise<Types.ListBasinsResponse>;
21
+ /**
22
+ * List all basins with automatic pagination.
23
+ * Returns a lazy async iterable that fetches pages as needed.
24
+ *
25
+ * @param args - Optional options: `prefix` to filter by name prefix, `limit` for max results per page, `includeDeleted` to include basins pending deletion
26
+ *
27
+ * @example
28
+ * ```ts
29
+ * for await (const basin of s2.basins.listAll({ prefix: "my-" })) {
30
+ * console.log(basin.name);
31
+ * }
32
+ * ```
33
+ */
34
+ listAll(args?: Types.ListAllBasinsInput, options?: S2RequestOptions): AsyncIterable<Types.BasinInfo>;
35
+ /**
36
+ * Create a basin.
37
+ *
38
+ * @param args.basin Globally unique basin name (8-48 chars, lowercase letters, numbers, hyphens; cannot begin or end with a hyphen)
39
+ * @param args.config Optional basin configuration (e.g. defaultStreamConfig)
40
+ * @param args.scope Basin scope
41
+ */
42
+ create(args: Types.CreateBasinInput, options?: S2RequestOptions): Promise<Types.CreateBasinResponse>;
43
+ /**
44
+ * Get basin configuration.
45
+ *
46
+ * @param args.basin Basin name
47
+ */
48
+ getConfig(args: Types.GetBasinConfigInput, options?: S2RequestOptions): Promise<Types.BasinConfig>;
49
+ /**
50
+ * Delete a basin.
51
+ *
52
+ * @param args.basin Basin name
53
+ */
54
+ delete(args: Types.DeleteBasinInput, options?: S2RequestOptions): Promise<void>;
55
+ /**
56
+ * Reconfigure a basin.
57
+ *
58
+ * @param args Configuration for the basin to reconfigure (including basin name and fields to change)
59
+ */
60
+ reconfigure(args: Types.ReconfigureBasinInput, options?: S2RequestOptions): Promise<Types.ReconfigureBasinResponse>;
61
+ }
62
+ //# sourceMappingURL=basins.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"basins.d.ts","sourceRoot":"","sources":["../../src/basins.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAEjE,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,iCAAiC,CAAC;AAa9D,OAAO,KAAK,KAAK,KAAK,MAAM,YAAY,CAAC;AAsEzC;;;;GAIG;AACH,qBAAa,QAAQ;IACpB,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAS;IAChC,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAc;gBAE9B,MAAM,EAAE,MAAM,EAAE,WAAW,EAAE,WAAW;IAKpD;;;;;;OAMG;IACU,IAAI,CAChB,IAAI,CAAC,EAAE,KAAK,CAAC,eAAe,EAC5B,OAAO,CAAC,EAAE,gBAAgB,GACxB,OAAO,CAAC,KAAK,CAAC,kBAAkB,CAAC;IAapC;;;;;;;;;;;;OAYG;IACI,OAAO,CACb,IAAI,CAAC,EAAE,KAAK,CAAC,kBAAkB,EAC/B,OAAO,CAAC,EAAE,gBAAgB,GACxB,aAAa,CAAC,KAAK,CAAC,SAAS,CAAC;IAejC;;;;;;OAMG;IACU,MAAM,CAClB,IAAI,EAAE,KAAK,CAAC,gBAAgB,EAC5B,OAAO,CAAC,EAAE,gBAAgB,GACxB,OAAO,CAAC,KAAK,CAAC,mBAAmB,CAAC;IAoBrC;;;;OAIG;IACU,SAAS,CACrB,IAAI,EAAE,KAAK,CAAC,mBAAmB,EAC/B,OAAO,CAAC,EAAE,gBAAgB,GACxB,OAAO,CAAC,KAAK,CAAC,WAAW,CAAC;IAc7B;;;;OAIG;IACU,MAAM,CAClB,IAAI,EAAE,KAAK,CAAC,gBAAgB,EAC5B,OAAO,CAAC,EAAE,gBAAgB,GACxB,OAAO,CAAC,IAAI,CAAC;IAYhB;;;;OAIG;IACU,WAAW,CACvB,IAAI,EAAE,KAAK,CAAC,qBAAqB,EACjC,OAAO,CAAC,EAAE,gBAAgB,GACxB,OAAO,CAAC,KAAK,CAAC,wBAAwB,CAAC;CAmB1C"}
@@ -0,0 +1,201 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.S2Basins = void 0;
4
+ const error_js_1 = require("./error.js");
5
+ const index_js_1 = require("./generated/index.js");
6
+ const case_transform_js_1 = require("./internal/case-transform.js");
7
+ const base64_js_1 = require("./lib/base64.js");
8
+ const paginate_js_1 = require("./lib/paginate.js");
9
+ const retry_js_1 = require("./lib/retry.js");
10
+ /** Convert SDK RetentionPolicy (ageSecs) to API RetentionPolicy (age). */
11
+ function toAPIRetentionPolicy(policy) {
12
+ if (policy === null)
13
+ return null;
14
+ if (policy === undefined)
15
+ return undefined;
16
+ if ("ageSecs" in policy) {
17
+ return { age: Math.floor(policy.ageSecs) };
18
+ }
19
+ return policy; // { infinite: ... } passes through
20
+ }
21
+ /** Convert API RetentionPolicy (age) to SDK RetentionPolicy (ageSecs). */
22
+ function toSDKRetentionPolicy(policy) {
23
+ if (policy === null)
24
+ return null;
25
+ if (policy === undefined)
26
+ return undefined;
27
+ if ("age" in policy) {
28
+ return { ageSecs: policy.age };
29
+ }
30
+ return policy; // { infinite: ... } passes through
31
+ }
32
+ /** Convert SDK StreamConfig to API format (handles retentionPolicy.ageSecs → age). */
33
+ function toAPIStreamConfig(config) {
34
+ if (config === null || config === undefined)
35
+ return config;
36
+ return {
37
+ ...config,
38
+ deleteOnEmpty: config.deleteOnEmpty
39
+ ? {
40
+ ...config.deleteOnEmpty,
41
+ minAgeSecs: config.deleteOnEmpty.minAgeSecs === undefined
42
+ ? undefined
43
+ : Math.max(0, Math.floor(config.deleteOnEmpty.minAgeSecs)),
44
+ }
45
+ : config.deleteOnEmpty,
46
+ retentionPolicy: toAPIRetentionPolicy(config.retentionPolicy),
47
+ };
48
+ }
49
+ /** Convert API StreamConfig to SDK format (handles retentionPolicy.age → ageSecs). */
50
+ function toSDKStreamConfig(config) {
51
+ if (config === null || config === undefined)
52
+ return config;
53
+ return {
54
+ ...config,
55
+ retentionPolicy: toSDKRetentionPolicy(config?.retentionPolicy),
56
+ };
57
+ }
58
+ /** Convert SDK BasinConfig to API format. */
59
+ function toAPIBasinConfig(config) {
60
+ if (config === null || config === undefined)
61
+ return config;
62
+ return {
63
+ ...config,
64
+ defaultStreamConfig: toAPIStreamConfig(config.defaultStreamConfig),
65
+ };
66
+ }
67
+ /** Convert API BasinConfig to SDK format. */
68
+ function toSDKBasinConfig(config) {
69
+ return {
70
+ ...config,
71
+ defaultStreamConfig: toSDKStreamConfig(config?.defaultStreamConfig),
72
+ };
73
+ }
74
+ /**
75
+ * Account-scoped helper for listing, creating, deleting, and reconfiguring basins.
76
+ *
77
+ * Retrieve this via {@link S2.basins}. Each method retries according to the client-level retry config.
78
+ */
79
+ class S2Basins {
80
+ client;
81
+ retryConfig;
82
+ constructor(client, retryConfig) {
83
+ this.client = client;
84
+ this.retryConfig = retryConfig;
85
+ }
86
+ /**
87
+ * List basins.
88
+ *
89
+ * @param args.prefix Return basins whose names start with the given prefix
90
+ * @param args.startAfter Name to start after (for pagination)
91
+ * @param args.limit Max results (up to 1000)
92
+ */
93
+ async list(args, options) {
94
+ const response = await (0, retry_js_1.withRetries)(this.retryConfig, async () => {
95
+ return await (0, error_js_1.withS2Data)(() => (0, index_js_1.listBasins)({
96
+ client: this.client,
97
+ query: (0, case_transform_js_1.toSnakeCase)(args),
98
+ ...options,
99
+ }));
100
+ });
101
+ return (0, case_transform_js_1.toCamelCase)(response);
102
+ }
103
+ /**
104
+ * List all basins with automatic pagination.
105
+ * Returns a lazy async iterable that fetches pages as needed.
106
+ *
107
+ * @param args - Optional options: `prefix` to filter by name prefix, `limit` for max results per page, `includeDeleted` to include basins pending deletion
108
+ *
109
+ * @example
110
+ * ```ts
111
+ * for await (const basin of s2.basins.listAll({ prefix: "my-" })) {
112
+ * console.log(basin.name);
113
+ * }
114
+ * ```
115
+ */
116
+ listAll(args, options) {
117
+ const { includeDeleted, ...listArgs } = args ?? {};
118
+ return (0, paginate_js_1.paginate)((a) => this.list(a, options).then((r) => ({
119
+ items: r.basins.filter((b) => includeDeleted || b.state !== "deleting"),
120
+ hasMore: r.hasMore,
121
+ })), listArgs, (basin) => basin.name);
122
+ }
123
+ /**
124
+ * Create a basin.
125
+ *
126
+ * @param args.basin Globally unique basin name (8-48 chars, lowercase letters, numbers, hyphens; cannot begin or end with a hyphen)
127
+ * @param args.config Optional basin configuration (e.g. defaultStreamConfig)
128
+ * @param args.scope Basin scope
129
+ */
130
+ async create(args, options) {
131
+ const requestToken = (0, base64_js_1.randomToken)();
132
+ // Convert SDK config to API format (ageSecs → age)
133
+ const apiArgs = {
134
+ ...args,
135
+ config: toAPIBasinConfig(args.config),
136
+ };
137
+ const response = await (0, retry_js_1.withRetries)(this.retryConfig, async () => {
138
+ return await (0, error_js_1.withS2Data)(() => (0, index_js_1.createBasin)({
139
+ client: this.client,
140
+ body: (0, case_transform_js_1.toSnakeCase)(apiArgs),
141
+ headers: { "s2-request-token": requestToken },
142
+ ...options,
143
+ }));
144
+ });
145
+ return (0, case_transform_js_1.toCamelCase)(response);
146
+ }
147
+ /**
148
+ * Get basin configuration.
149
+ *
150
+ * @param args.basin Basin name
151
+ */
152
+ async getConfig(args, options) {
153
+ const response = await (0, retry_js_1.withRetries)(this.retryConfig, async () => {
154
+ return await (0, error_js_1.withS2Data)(() => (0, index_js_1.getBasinConfig)({
155
+ client: this.client,
156
+ path: args,
157
+ ...options,
158
+ }));
159
+ });
160
+ // Convert API format to SDK (age → ageSecs)
161
+ return toSDKBasinConfig((0, case_transform_js_1.toCamelCase)(response));
162
+ }
163
+ /**
164
+ * Delete a basin.
165
+ *
166
+ * @param args.basin Basin name
167
+ */
168
+ async delete(args, options) {
169
+ await (0, retry_js_1.withRetries)(this.retryConfig, async () => {
170
+ return await (0, error_js_1.withS2Data)(() => (0, index_js_1.deleteBasin)({
171
+ client: this.client,
172
+ path: args,
173
+ ...options,
174
+ }));
175
+ });
176
+ }
177
+ /**
178
+ * Reconfigure a basin.
179
+ *
180
+ * @param args Configuration for the basin to reconfigure (including basin name and fields to change)
181
+ */
182
+ async reconfigure(args, options) {
183
+ // Convert SDK config to API format (ageSecs → age)
184
+ const apiArgs = {
185
+ ...args,
186
+ defaultStreamConfig: toAPIStreamConfig(args.defaultStreamConfig),
187
+ };
188
+ const response = await (0, retry_js_1.withRetries)(this.retryConfig, async () => {
189
+ return await (0, error_js_1.withS2Data)(() => (0, index_js_1.reconfigureBasin)({
190
+ client: this.client,
191
+ path: args,
192
+ body: (0, case_transform_js_1.toSnakeCase)(apiArgs),
193
+ ...options,
194
+ }));
195
+ });
196
+ // Convert API format to SDK (age → ageSecs)
197
+ return toSDKBasinConfig((0, case_transform_js_1.toCamelCase)(response));
198
+ }
199
+ }
200
+ exports.S2Basins = S2Basins;
201
+ //# sourceMappingURL=basins.js.map