@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,60 @@
1
+ import { SigningKey } from "./signing-key.js";
2
+ import type { SignHeadersOptions } from "./sign.js";
3
+ /**
4
+ * Configuration for PKI authentication.
5
+ *
6
+ * Two modes are supported:
7
+ *
8
+ * 1. **Token + SigningKey mode** (for regular operations): Provide `token` and `signingKey`.
9
+ * Use this for basins, streams, and other regular operations.
10
+ *
11
+ * 2. **Root key mode** (for all operations): Provide only `rootKey`.
12
+ * The SDK generates tokens locally (signed by root key, bound to a generated client key).
13
+ */
14
+ export type PkiAuthConfig = {
15
+ /** Biscuit token issued with the signing key's public key */
16
+ token?: string;
17
+ /** P256 signing key that matches the token's bound public key */
18
+ signingKey?: SigningKey;
19
+ /** P256 private key as base58-encoded 32 bytes (root key) */
20
+ rootKey?: string;
21
+ /** Token expiry in seconds (default: 3600 = 1 hour) */
22
+ tokenExpiresIn?: number;
23
+ /** Signature expiry in seconds (default: 300 = 5 minutes) */
24
+ signatureExpiresIn?: number;
25
+ };
26
+ /**
27
+ * Auth mode indicates what operations are allowed.
28
+ */
29
+ export type PkiAuthMode = "root" | "token";
30
+ export type PkiAuthContext = {
31
+ /** The auth mode */
32
+ mode: PkiAuthMode;
33
+ /** The signing key's public key (base58) */
34
+ publicKey: string;
35
+ /** Get current token */
36
+ getToken: () => Promise<string>;
37
+ /** Sign a request with RFC 9421 HTTP message signatures */
38
+ signRequest: (request: Request) => Promise<Request>;
39
+ /** Sign headers with RFC 9421 HTTP message signatures */
40
+ signHeaders: (options: Omit<SignHeadersOptions, "signingKey" | "expiresIn">) => Promise<void>;
41
+ /** The signing key (for token mode, can be used to issue sub-tokens) */
42
+ signingKey: SigningKey;
43
+ };
44
+ /**
45
+ * Creates a PKI auth context.
46
+ *
47
+ * @example Token + SigningKey mode (for regular operations)
48
+ * ```typescript
49
+ * const auth = createPkiAuth({ token: accessToken, signingKey });
50
+ * const s2 = new S2({ authContext: auth, endpoints: { ... } });
51
+ * ```
52
+ *
53
+ * @example Root key mode (for all operations)
54
+ * ```typescript
55
+ * const auth = createPkiAuth({ rootKey: "..." });
56
+ * const s2 = new S2({ authContext: auth, endpoints: { ... } });
57
+ * ```
58
+ */
59
+ export declare function createPkiAuth(config: PkiAuthConfig): PkiAuthContext;
60
+ //# sourceMappingURL=pki-auth.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pki-auth.d.ts","sourceRoot":"","sources":["../../../src/auth/pki-auth.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAC9C,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,WAAW,CAAC;AAEpD;;;;;;;;;;GAUG;AACH,MAAM,MAAM,aAAa,GAAG;IAC3B,6DAA6D;IAC7D,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,iEAAiE;IACjE,UAAU,CAAC,EAAE,UAAU,CAAC;IACxB,6DAA6D;IAC7D,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,uDAAuD;IACvD,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,6DAA6D;IAC7D,kBAAkB,CAAC,EAAE,MAAM,CAAC;CAC5B,CAAC;AAEF;;GAEG;AACH,MAAM,MAAM,WAAW,GAAG,MAAM,GAAG,OAAO,CAAC;AAE3C,MAAM,MAAM,cAAc,GAAG;IAC5B,oBAAoB;IACpB,IAAI,EAAE,WAAW,CAAC;IAClB,4CAA4C;IAC5C,SAAS,EAAE,MAAM,CAAC;IAClB,wBAAwB;IACxB,QAAQ,EAAE,MAAM,OAAO,CAAC,MAAM,CAAC,CAAC;IAChC,2DAA2D;IAC3D,WAAW,EAAE,CAAC,OAAO,EAAE,OAAO,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC;IACpD,yDAAyD;IACzD,WAAW,EAAE,CAAC,OAAO,EAAE,IAAI,CAAC,kBAAkB,EAAE,YAAY,GAAG,WAAW,CAAC,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IAC9F,wEAAwE;IACxE,UAAU,EAAE,UAAU,CAAC;CACvB,CAAC;AAEF;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,aAAa,CAAC,MAAM,EAAE,aAAa,GAAG,cAAc,CAcnE"}
@@ -0,0 +1,99 @@
1
+ import { createBiscuitToken } from "./biscuit.js";
2
+ import { signRequest, signHeaders } from "./sign.js";
3
+ import { SigningKey } from "./signing-key.js";
4
+ /**
5
+ * Creates a PKI auth context.
6
+ *
7
+ * @example Token + SigningKey mode (for regular operations)
8
+ * ```typescript
9
+ * const auth = createPkiAuth({ token: accessToken, signingKey });
10
+ * const s2 = new S2({ authContext: auth, endpoints: { ... } });
11
+ * ```
12
+ *
13
+ * @example Root key mode (for all operations)
14
+ * ```typescript
15
+ * const auth = createPkiAuth({ rootKey: "..." });
16
+ * const s2 = new S2({ authContext: auth, endpoints: { ... } });
17
+ * ```
18
+ */
19
+ export function createPkiAuth(config) {
20
+ const { signatureExpiresIn = 300 } = config;
21
+ if (config.token && config.signingKey) {
22
+ return createTokenAuth(config.token, config.signingKey, signatureExpiresIn);
23
+ }
24
+ else if (config.rootKey) {
25
+ return createRootKeyAuth(config.rootKey, config.tokenExpiresIn ?? 3600, signatureExpiresIn);
26
+ }
27
+ else if (config.token && !config.signingKey) {
28
+ throw new Error("PKI auth: token provided without signingKey");
29
+ }
30
+ else if (!config.token && config.signingKey) {
31
+ throw new Error("PKI auth: signingKey provided without token");
32
+ }
33
+ else {
34
+ throw new Error("PKI auth: either (token + signingKey) or rootKey required");
35
+ }
36
+ }
37
+ function createTokenAuth(token, signingKey, signatureExpiresIn) {
38
+ const publicKey = signingKey.publicKeyBase58();
39
+ function isAccessTokenEndpoint(path) {
40
+ return /^\/v\d+\/access-tokens(\/[^\/]+)?$/.test(path);
41
+ }
42
+ function extractPath(urlOrRequest) {
43
+ const url = typeof urlOrRequest === "string" ? new URL(urlOrRequest) : new URL(urlOrRequest.url);
44
+ return url.pathname;
45
+ }
46
+ return {
47
+ mode: "token",
48
+ publicKey,
49
+ signingKey,
50
+ async getToken() {
51
+ return token;
52
+ },
53
+ async signRequest(request) {
54
+ const path = extractPath(request);
55
+ if (isAccessTokenEndpoint(path)) {
56
+ throw new Error("Token mode cannot be used for access token endpoints. Use root key mode instead.");
57
+ }
58
+ return signRequest({ request, signingKey, expiresIn: signatureExpiresIn });
59
+ },
60
+ async signHeaders(options) {
61
+ const path = extractPath(options.url);
62
+ if (isAccessTokenEndpoint(path)) {
63
+ throw new Error("Token mode cannot be used for access token endpoints. Use root key mode instead.");
64
+ }
65
+ return signHeaders({ ...options, signingKey, expiresIn: signatureExpiresIn });
66
+ },
67
+ };
68
+ }
69
+ function createRootKeyAuth(rootKey, tokenExpiresIn, signatureExpiresIn) {
70
+ const clientKey = SigningKey.generate();
71
+ const clientPublicKey = clientKey.publicKeyBase58();
72
+ let cachedToken = null;
73
+ let tokenExpiry = 0;
74
+ async function getToken() {
75
+ const now = Date.now();
76
+ if (!cachedToken || now >= tokenExpiry - 60000) {
77
+ cachedToken = await createBiscuitToken({
78
+ privateKey: rootKey,
79
+ publicKey: clientPublicKey,
80
+ expiresIn: tokenExpiresIn,
81
+ });
82
+ tokenExpiry = now + tokenExpiresIn * 1000;
83
+ }
84
+ return cachedToken;
85
+ }
86
+ return {
87
+ mode: "root",
88
+ publicKey: clientPublicKey,
89
+ signingKey: clientKey,
90
+ getToken,
91
+ async signRequest(request) {
92
+ return signRequest({ request, signingKey: clientKey, expiresIn: signatureExpiresIn });
93
+ },
94
+ async signHeaders(options) {
95
+ return signHeaders({ ...options, signingKey: clientKey, expiresIn: signatureExpiresIn });
96
+ },
97
+ };
98
+ }
99
+ //# sourceMappingURL=pki-auth.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pki-auth.js","sourceRoot":"","sources":["../../../src/auth/pki-auth.ts"],"names":[],"mappings":"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"}
@@ -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,125 @@
1
+ import { p256 } from "@noble/curves/nist.js";
2
+ import { sha256 } from "@noble/hashes/sha256";
3
+ import { base64 } from "@scure/base";
4
+ import { SigningKey } from "./signing-key.js";
5
+ /**
6
+ * Build the signature base string per RFC 9421.
7
+ * The @signature-params line uses the same parameter order as the Rust httpsig crate:
8
+ * created, alg, keyid (to ensure compatibility with server verification).
9
+ */
10
+ function buildSignatureBase(method, path, authority, headers, components, created, keyid) {
11
+ const lines = [];
12
+ for (const component of components) {
13
+ let value;
14
+ if (component === "@method") {
15
+ value = method.toUpperCase();
16
+ }
17
+ else if (component === "@path") {
18
+ value = path;
19
+ }
20
+ else if (component === "@authority") {
21
+ value = authority;
22
+ }
23
+ else {
24
+ // Regular header
25
+ value = headers.get(component) ?? "";
26
+ }
27
+ lines.push(`"${component}": ${value}`);
28
+ }
29
+ // Build signature-params with Rust httpsig order: created, alg, keyid
30
+ const componentsList = components.map((c) => `"${c}"`).join(" ");
31
+ const signatureParams = `(${componentsList});created=${created};alg="ecdsa-p256-sha256";keyid="${keyid}"`;
32
+ lines.push(`"@signature-params": ${signatureParams}`);
33
+ return lines.join("\n");
34
+ }
35
+ /**
36
+ * Extract authority from URL, stripping default ports per RFC 9421.
37
+ */
38
+ function getAuthority(url) {
39
+ const port = url.port ? parseInt(url.port, 10) : null;
40
+ if (port && ![80, 443].includes(port)) {
41
+ return `${url.hostname}:${port}`;
42
+ }
43
+ return url.hostname;
44
+ }
45
+ /**
46
+ * Signs a Request using RFC 9421 HTTP Message Signatures with a P256 key.
47
+ *
48
+ * Components signed: @method, @path, @authority, authorization, content-digest (if body present)
49
+ *
50
+ * @returns A new Request with signature headers added
51
+ */
52
+ export async function signRequest(options) {
53
+ const { request, signingKey } = options;
54
+ // Clone request headers
55
+ const headers = new Headers(request.headers);
56
+ // Determine components to sign
57
+ const components = ["@method", "@path", "@authority", "authorization"];
58
+ // Compute content-digest if body exists
59
+ const body = await request.clone().arrayBuffer();
60
+ if (body.byteLength > 0) {
61
+ const hash = sha256(new Uint8Array(body));
62
+ const hashBase64 = base64.encode(hash);
63
+ headers.set("Content-Digest", `sha-256=:${hashBase64}:`);
64
+ components.push("content-digest");
65
+ }
66
+ // Extract URL components
67
+ // Per RFC 9421: @path is the path without query string
68
+ const url = new URL(request.url);
69
+ const path = url.pathname;
70
+ const authority = getAuthority(url);
71
+ // Get signing parameters
72
+ const created = Math.floor(Date.now() / 1000);
73
+ const keyid = signingKey.publicKeyBase58();
74
+ const privateKeyBytes = signingKey.getPrivateKeyBytes();
75
+ // Build signature base (RFC 9421 format, Rust httpsig-compatible param order)
76
+ const signatureBase = buildSignatureBase(request.method, path, authority, headers, components, created, keyid);
77
+ // Sign the signature base
78
+ const signatureBytes = p256.sign(new TextEncoder().encode(signatureBase), privateKeyBytes, { lowS: true });
79
+ const signatureB64 = base64.encode(signatureBytes);
80
+ // Build signature-input header (same param order as signature base)
81
+ const componentsList = components.map((c) => `"${c}"`).join(" ");
82
+ const signatureInput = `sig1=(${componentsList});created=${created};alg="ecdsa-p256-sha256";keyid="${keyid}"`;
83
+ // Apply signature headers
84
+ headers.set("Signature", `sig1=:${signatureB64}:`);
85
+ headers.set("Signature-Input", signatureInput);
86
+ // Create new request with signed headers
87
+ return new Request(request.url, {
88
+ body: body.byteLength > 0 ? body : undefined,
89
+ headers,
90
+ method: request.method,
91
+ });
92
+ }
93
+ /**
94
+ * Signs HTTP headers using RFC 9421 HTTP Message Signatures with a P256 key.
95
+ * Mutates the headers object to add signature headers.
96
+ *
97
+ * Components signed: @method, @path, @authority, authorization, content-digest (if body present)
98
+ */
99
+ export async function signHeaders(options) {
100
+ const { method, url, headers, signingKey, body, expiresIn = 300 } = options;
101
+ // Build headers (skip pseudo-headers for HTTP/2)
102
+ const requestHeaders = new Headers();
103
+ for (const [key, value] of Object.entries(headers)) {
104
+ if (!key.startsWith(":")) {
105
+ requestHeaders.set(key, value);
106
+ }
107
+ }
108
+ const request = new Request(url, {
109
+ method,
110
+ headers: requestHeaders,
111
+ body: body && body.byteLength > 0 ? body.slice().buffer : undefined,
112
+ });
113
+ const signedRequest = await signRequest({ request, signingKey, expiresIn });
114
+ // Extract signature headers and apply to original headers object
115
+ const signature = signedRequest.headers.get("Signature");
116
+ const signatureInput = signedRequest.headers.get("Signature-Input");
117
+ const contentDigest = signedRequest.headers.get("Content-Digest");
118
+ if (signature)
119
+ headers["signature"] = signature;
120
+ if (signatureInput)
121
+ headers["signature-input"] = signatureInput;
122
+ if (contentDigest)
123
+ headers["content-digest"] = contentDigest;
124
+ }
125
+ //# 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,62 @@
1
+ import { p256 } from "@noble/curves/nist.js";
2
+ import { base58 } from "@scure/base";
3
+ /**
4
+ * P-256 signing key for RFC 9421 HTTP message signatures.
5
+ *
6
+ * When configured, the SDK will sign every HTTP request per RFC 9421,
7
+ * binding the request to both the bearer token and this cryptographic key.
8
+ *
9
+ * @example
10
+ * ```typescript
11
+ * // Generate a new key
12
+ * const key = SigningKey.generate();
13
+ * console.log("Public key:", key.publicKeyBase58());
14
+ *
15
+ * // Import from base58
16
+ * const key = SigningKey.fromBase58("your-base58-encoded-private-key");
17
+ * ```
18
+ */
19
+ export class SigningKey {
20
+ privateKeyBytes;
21
+ constructor(privateKeyBytes) {
22
+ this.privateKeyBytes = privateKeyBytes;
23
+ }
24
+ /**
25
+ * Generate a new random P-256 signing key.
26
+ */
27
+ static generate() {
28
+ const privateKey = p256.utils.randomSecretKey();
29
+ return new SigningKey(privateKey);
30
+ }
31
+ /**
32
+ * Create a signing key from a base58-encoded 32-byte private key.
33
+ */
34
+ static fromBase58(encoded) {
35
+ const privateKey = base58.decode(encoded);
36
+ if (privateKey.length !== 32) {
37
+ throw new Error(`Invalid signing key: expected 32 bytes, got ${privateKey.length}`);
38
+ }
39
+ return new SigningKey(privateKey);
40
+ }
41
+ /**
42
+ * Export the private key as a base58-encoded string.
43
+ */
44
+ toBase58() {
45
+ return base58.encode(this.privateKeyBytes);
46
+ }
47
+ /**
48
+ * Get the public key as a base58-encoded compressed point (33 bytes).
49
+ */
50
+ publicKeyBase58() {
51
+ const publicKey = p256.getPublicKey(this.privateKeyBytes, true);
52
+ return base58.encode(publicKey);
53
+ }
54
+ /**
55
+ * Get the raw private key bytes (for internal use).
56
+ * @internal
57
+ */
58
+ getPrivateKeyBytes() {
59
+ return this.privateKeyBytes;
60
+ }
61
+ }
62
+ //# 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,OAAO,EAAE,IAAI,EAAE,MAAM,uBAAuB,CAAC;AAC7C,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAErC;;;;;;;;;;;;;;;GAeG;AACH,MAAM,OAAO,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,IAAI,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,MAAM,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,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;IAC5C,CAAC;IAED;;OAEG;IACH,eAAe;QACd,MAAM,SAAS,GAAG,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,eAAe,EAAE,IAAI,CAAC,CAAC;QAChE,OAAO,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;IACjC,CAAC;IAED;;;OAGG;IACH,kBAAkB;QACjB,OAAO,IAAI,CAAC,eAAe,CAAC;IAC7B,CAAC;CACD"}
@@ -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,50 @@
1
+ import { createAuthenticatedClient } from "./common.js";
2
+ import { canSetUserAgentHeader, DEFAULT_USER_AGENT } from "./lib/stream/runtime.js";
3
+ import { S2Stream } from "./stream.js";
4
+ import { S2Streams } from "./streams.js";
5
+ export class S2Basin {
6
+ client;
7
+ transportConfig;
8
+ retryConfig;
9
+ name;
10
+ streams;
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, options) {
19
+ this.name = name;
20
+ this.retryConfig = options.retryConfig;
21
+ this.transportConfig = {
22
+ baseUrl: options.baseUrl,
23
+ authProvider: options.authProvider,
24
+ basinName: options.includeBasinHeader ? name : undefined,
25
+ connectionTimeoutMillis: options.retryConfig?.connectionTimeoutMillis,
26
+ requestTimeoutMillis: options.retryConfig?.requestTimeoutMillis,
27
+ retry: options.retryConfig,
28
+ };
29
+ const headers = {};
30
+ if (options.includeBasinHeader) {
31
+ headers["s2-basin"] = name;
32
+ }
33
+ if (canSetUserAgentHeader()) {
34
+ headers["user-agent"] = DEFAULT_USER_AGENT;
35
+ }
36
+ this.client = createAuthenticatedClient(options.baseUrl, options.authProvider, headers);
37
+ this.streams = new S2Streams(this.client, this.retryConfig);
38
+ }
39
+ /**
40
+ * Create a stream-scoped helper bound to `this` basin.
41
+ * @param name Stream name
42
+ */
43
+ stream(name, options) {
44
+ return new S2Stream(name, this.client, {
45
+ ...this.transportConfig,
46
+ forceTransport: options?.forceTransport,
47
+ }, this.retryConfig);
48
+ }
49
+ }
50
+ //# sourceMappingURL=basin.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"basin.js","sourceRoot":"","sources":["../../src/basin.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,yBAAyB,EAAuC,MAAM,aAAa,CAAC;AAE7F,OAAO,EAAE,qBAAqB,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAEpF,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AACvC,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAEzC,MAAM,OAAO,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,qBAAqB,EAAE,EAAE,CAAC;YAC7B,OAAO,CAAC,YAAY,CAAC,GAAG,kBAAkB,CAAC;QAC5C,CAAC;QACD,IAAI,CAAC,MAAM,GAAG,yBAAyB,CAAC,OAAO,CAAC,OAAO,EAAE,OAAO,CAAC,YAAY,EAAE,OAAO,CAAC,CAAC;QACxF,IAAI,CAAC,OAAO,GAAG,IAAI,SAAS,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;IAC7D,CAAC;IAED;;;OAGG;IACI,MAAM,CAAC,IAAY,EAAE,OAAuB;QAClD,OAAO,IAAI,QAAQ,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"}
@@ -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"}