@s2-dev/streamstore 0.2.5

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 (467) hide show
  1. package/.devcontainer/README.md +35 -0
  2. package/.devcontainer/devcontainer.json +45 -0
  3. package/FUNCTIONS.md +106 -0
  4. package/README.md +559 -0
  5. package/RUNTIMES.md +48 -0
  6. package/core.d.ts +10 -0
  7. package/core.d.ts.map +1 -0
  8. package/core.js +17 -0
  9. package/core.js.map +1 -0
  10. package/docs/sdks/account/README.md +406 -0
  11. package/docs/sdks/basin/README.md +415 -0
  12. package/docs/sdks/s2/README.md +7 -0
  13. package/docs/sdks/stream/README.md +267 -0
  14. package/funcs/accountCreateBasin.d.ts +14 -0
  15. package/funcs/accountCreateBasin.d.ts.map +1 -0
  16. package/funcs/accountCreateBasin.js +118 -0
  17. package/funcs/accountCreateBasin.js.map +1 -0
  18. package/funcs/accountDeleteBasin.d.ts +13 -0
  19. package/funcs/accountDeleteBasin.d.ts.map +1 -0
  20. package/funcs/accountDeleteBasin.js +114 -0
  21. package/funcs/accountDeleteBasin.js.map +1 -0
  22. package/funcs/accountGetBasinConfig.d.ts +14 -0
  23. package/funcs/accountGetBasinConfig.d.ts.map +1 -0
  24. package/funcs/accountGetBasinConfig.js +114 -0
  25. package/funcs/accountGetBasinConfig.js.map +1 -0
  26. package/funcs/accountListBasins.d.ts +16 -0
  27. package/funcs/accountListBasins.d.ts.map +1 -0
  28. package/funcs/accountListBasins.js +130 -0
  29. package/funcs/accountListBasins.js.map +1 -0
  30. package/funcs/accountReconfigureBasin.d.ts +14 -0
  31. package/funcs/accountReconfigureBasin.d.ts.map +1 -0
  32. package/funcs/accountReconfigureBasin.js +115 -0
  33. package/funcs/accountReconfigureBasin.js.map +1 -0
  34. package/funcs/basinCreateStream.d.ts +14 -0
  35. package/funcs/basinCreateStream.d.ts.map +1 -0
  36. package/funcs/basinCreateStream.js +123 -0
  37. package/funcs/basinCreateStream.js.map +1 -0
  38. package/funcs/basinDeleteStream.d.ts +13 -0
  39. package/funcs/basinDeleteStream.d.ts.map +1 -0
  40. package/funcs/basinDeleteStream.js +119 -0
  41. package/funcs/basinDeleteStream.js.map +1 -0
  42. package/funcs/basinGetStreamConfig.d.ts +14 -0
  43. package/funcs/basinGetStreamConfig.d.ts.map +1 -0
  44. package/funcs/basinGetStreamConfig.js +119 -0
  45. package/funcs/basinGetStreamConfig.js.map +1 -0
  46. package/funcs/basinListStreams.d.ts +16 -0
  47. package/funcs/basinListStreams.d.ts.map +1 -0
  48. package/funcs/basinListStreams.js +137 -0
  49. package/funcs/basinListStreams.js.map +1 -0
  50. package/funcs/basinReconfigureStream.d.ts +14 -0
  51. package/funcs/basinReconfigureStream.d.ts.map +1 -0
  52. package/funcs/basinReconfigureStream.js +120 -0
  53. package/funcs/basinReconfigureStream.js.map +1 -0
  54. package/funcs/streamAppend.d.ts +14 -0
  55. package/funcs/streamAppend.d.ts.map +1 -0
  56. package/funcs/streamAppend.js +124 -0
  57. package/funcs/streamAppend.js.map +1 -0
  58. package/funcs/streamCheckTail.d.ts +14 -0
  59. package/funcs/streamCheckTail.d.ts.map +1 -0
  60. package/funcs/streamCheckTail.js +119 -0
  61. package/funcs/streamCheckTail.js.map +1 -0
  62. package/funcs/streamRead.d.ts +19 -0
  63. package/funcs/streamRead.d.ts.map +1 -0
  64. package/funcs/streamRead.js +134 -0
  65. package/funcs/streamRead.js.map +1 -0
  66. package/hooks/hooks.d.ts +24 -0
  67. package/hooks/hooks.d.ts.map +1 -0
  68. package/hooks/hooks.js +86 -0
  69. package/hooks/hooks.js.map +1 -0
  70. package/hooks/index.d.ts +3 -0
  71. package/hooks/index.d.ts.map +1 -0
  72. package/hooks/index.js +22 -0
  73. package/hooks/index.js.map +1 -0
  74. package/hooks/registration.d.ts +3 -0
  75. package/hooks/registration.d.ts.map +1 -0
  76. package/hooks/registration.js +15 -0
  77. package/hooks/registration.js.map +1 -0
  78. package/hooks/types.d.ts +77 -0
  79. package/hooks/types.d.ts.map +1 -0
  80. package/hooks/types.js +6 -0
  81. package/hooks/types.js.map +1 -0
  82. package/index.d.ts +4 -0
  83. package/index.d.ts.map +1 -0
  84. package/index.js +46 -0
  85. package/index.js.map +1 -0
  86. package/jsr.json +28 -0
  87. package/lib/base64.d.ts +10 -0
  88. package/lib/base64.d.ts.map +1 -0
  89. package/lib/base64.js +71 -0
  90. package/lib/base64.js.map +1 -0
  91. package/lib/config.d.ts +34 -0
  92. package/lib/config.d.ts.map +1 -0
  93. package/lib/config.js +35 -0
  94. package/lib/config.js.map +1 -0
  95. package/lib/dlv.d.ts +14 -0
  96. package/lib/dlv.d.ts.map +1 -0
  97. package/lib/dlv.js +49 -0
  98. package/lib/dlv.js.map +1 -0
  99. package/lib/encodings.d.ts +52 -0
  100. package/lib/encodings.d.ts.map +1 -0
  101. package/lib/encodings.js +368 -0
  102. package/lib/encodings.js.map +1 -0
  103. package/lib/env.d.ts +15 -0
  104. package/lib/env.d.ts.map +1 -0
  105. package/lib/env.js +65 -0
  106. package/lib/env.js.map +1 -0
  107. package/lib/event-streams.d.ts +17 -0
  108. package/lib/event-streams.d.ts.map +1 -0
  109. package/lib/event-streams.js +220 -0
  110. package/lib/event-streams.js.map +1 -0
  111. package/lib/files.d.ts +8 -0
  112. package/lib/files.d.ts.map +1 -0
  113. package/lib/files.js +36 -0
  114. package/lib/files.js.map +1 -0
  115. package/lib/http.d.ts +67 -0
  116. package/lib/http.d.ts.map +1 -0
  117. package/lib/http.js +217 -0
  118. package/lib/http.js.map +1 -0
  119. package/lib/is-plain-object.d.ts +2 -0
  120. package/lib/is-plain-object.d.ts.map +1 -0
  121. package/lib/is-plain-object.js +41 -0
  122. package/lib/is-plain-object.js.map +1 -0
  123. package/lib/logger.d.ts +6 -0
  124. package/lib/logger.d.ts.map +1 -0
  125. package/lib/logger.js +6 -0
  126. package/lib/logger.js.map +1 -0
  127. package/lib/matchers.d.ts +64 -0
  128. package/lib/matchers.d.ts.map +1 -0
  129. package/lib/matchers.js +207 -0
  130. package/lib/matchers.js.map +1 -0
  131. package/lib/primitives.d.ts +23 -0
  132. package/lib/primitives.d.ts.map +1 -0
  133. package/lib/primitives.js +104 -0
  134. package/lib/primitives.js.map +1 -0
  135. package/lib/retries.d.ts +38 -0
  136. package/lib/retries.d.ts.map +1 -0
  137. package/lib/retries.js +154 -0
  138. package/lib/retries.js.map +1 -0
  139. package/lib/schemas.d.ts +19 -0
  140. package/lib/schemas.d.ts.map +1 -0
  141. package/lib/schemas.js +62 -0
  142. package/lib/schemas.js.map +1 -0
  143. package/lib/sdks.d.ts +60 -0
  144. package/lib/sdks.d.ts.map +1 -0
  145. package/lib/sdks.js +280 -0
  146. package/lib/sdks.js.map +1 -0
  147. package/lib/security.d.ts +82 -0
  148. package/lib/security.d.ts.map +1 -0
  149. package/lib/security.js +139 -0
  150. package/lib/security.js.map +1 -0
  151. package/lib/url.d.ts +5 -0
  152. package/lib/url.d.ts.map +1 -0
  153. package/lib/url.js +25 -0
  154. package/lib/url.js.map +1 -0
  155. package/models/components/appendinput.d.ts +49 -0
  156. package/models/components/appendinput.d.ts.map +1 -0
  157. package/models/components/appendinput.js +85 -0
  158. package/models/components/appendinput.js.map +1 -0
  159. package/models/components/appendoutput.d.ts +51 -0
  160. package/models/components/appendoutput.d.ts.map +1 -0
  161. package/models/components/appendoutput.js +86 -0
  162. package/models/components/appendoutput.js.map +1 -0
  163. package/models/components/appendrecord.d.ts +40 -0
  164. package/models/components/appendrecord.d.ts.map +1 -0
  165. package/models/components/appendrecord.js +71 -0
  166. package/models/components/appendrecord.js.map +1 -0
  167. package/models/components/assignment.d.ts +90 -0
  168. package/models/components/assignment.d.ts.map +1 -0
  169. package/models/components/assignment.js +127 -0
  170. package/models/components/assignment.js.map +1 -0
  171. package/models/components/basinconfig.d.ts +33 -0
  172. package/models/components/basinconfig.d.ts.map +1 -0
  173. package/models/components/basinconfig.js +79 -0
  174. package/models/components/basinconfig.js.map +1 -0
  175. package/models/components/basininfo.d.ts +51 -0
  176. package/models/components/basininfo.d.ts.map +1 -0
  177. package/models/components/basininfo.js +76 -0
  178. package/models/components/basininfo.js.map +1 -0
  179. package/models/components/basinstate.d.ts +40 -0
  180. package/models/components/basinstate.d.ts.map +1 -0
  181. package/models/components/basinstate.js +66 -0
  182. package/models/components/basinstate.js.map +1 -0
  183. package/models/components/checktailresponse.d.ts +35 -0
  184. package/models/components/checktailresponse.d.ts.map +1 -0
  185. package/models/components/checktailresponse.js +78 -0
  186. package/models/components/checktailresponse.js.map +1 -0
  187. package/models/components/createbasinrequest.d.ts +36 -0
  188. package/models/components/createbasinrequest.d.ts.map +1 -0
  189. package/models/components/createbasinrequest.js +73 -0
  190. package/models/components/createbasinrequest.js.map +1 -0
  191. package/models/components/createstreamrequest.d.ts +33 -0
  192. package/models/components/createstreamrequest.d.ts.map +1 -0
  193. package/models/components/createstreamrequest.js +70 -0
  194. package/models/components/createstreamrequest.js.map +1 -0
  195. package/models/components/header.d.ts +43 -0
  196. package/models/components/header.d.ts.map +1 -0
  197. package/models/components/header.js +72 -0
  198. package/models/components/header.js.map +1 -0
  199. package/models/components/index.d.ts +23 -0
  200. package/models/components/index.d.ts.map +1 -0
  201. package/models/components/index.js +42 -0
  202. package/models/components/index.js.map +1 -0
  203. package/models/components/listbasinsresponse.d.ts +41 -0
  204. package/models/components/listbasinsresponse.d.ts.map +1 -0
  205. package/models/components/listbasinsresponse.js +81 -0
  206. package/models/components/listbasinsresponse.js.map +1 -0
  207. package/models/components/liststreamsresponse.d.ts +41 -0
  208. package/models/components/liststreamsresponse.d.ts.map +1 -0
  209. package/models/components/liststreamsresponse.js +81 -0
  210. package/models/components/liststreamsresponse.js.map +1 -0
  211. package/models/components/output.d.ts +140 -0
  212. package/models/components/output.d.ts.map +1 -0
  213. package/models/components/output.js +174 -0
  214. package/models/components/output.js.map +1 -0
  215. package/models/components/readresponse.d.ts +83 -0
  216. package/models/components/readresponse.d.ts.map +1 -0
  217. package/models/components/readresponse.js +141 -0
  218. package/models/components/readresponse.js.map +1 -0
  219. package/models/components/retentionpolicy.d.ts +68 -0
  220. package/models/components/retentionpolicy.d.ts.map +1 -0
  221. package/models/components/retentionpolicy.js +94 -0
  222. package/models/components/retentionpolicy.js.map +1 -0
  223. package/models/components/security.d.ts +29 -0
  224. package/models/components/security.d.ts.map +1 -0
  225. package/models/components/security.js +69 -0
  226. package/models/components/security.js.map +1 -0
  227. package/models/components/sequencedrecord.d.ts +46 -0
  228. package/models/components/sequencedrecord.d.ts.map +1 -0
  229. package/models/components/sequencedrecord.js +83 -0
  230. package/models/components/sequencedrecord.js.map +1 -0
  231. package/models/components/sequencedrecordbatch.d.ts +36 -0
  232. package/models/components/sequencedrecordbatch.d.ts.map +1 -0
  233. package/models/components/sequencedrecordbatch.js +70 -0
  234. package/models/components/sequencedrecordbatch.js.map +1 -0
  235. package/models/components/storageclass.d.ts +37 -0
  236. package/models/components/storageclass.d.ts.map +1 -0
  237. package/models/components/storageclass.js +64 -0
  238. package/models/components/storageclass.js.map +1 -0
  239. package/models/components/streamconfig.d.ts +39 -0
  240. package/models/components/streamconfig.d.ts.map +1 -0
  241. package/models/components/streamconfig.js +84 -0
  242. package/models/components/streamconfig.js.map +1 -0
  243. package/models/components/streaminfo.d.ts +45 -0
  244. package/models/components/streaminfo.d.ts.map +1 -0
  245. package/models/components/streaminfo.js +84 -0
  246. package/models/components/streaminfo.js.map +1 -0
  247. package/models/errors/apierror.d.ts +8 -0
  248. package/models/errors/apierror.d.ts.map +1 -0
  249. package/models/errors/apierror.js +21 -0
  250. package/models/errors/apierror.js.map +1 -0
  251. package/models/errors/errorresponse.d.ts +31 -0
  252. package/models/errors/errorresponse.d.ts.map +1 -0
  253. package/models/errors/errorresponse.js +77 -0
  254. package/models/errors/errorresponse.js.map +1 -0
  255. package/models/errors/httpclienterrors.d.ts +44 -0
  256. package/models/errors/httpclienterrors.d.ts.map +1 -0
  257. package/models/errors/httpclienterrors.js +78 -0
  258. package/models/errors/httpclienterrors.js.map +1 -0
  259. package/models/errors/index.d.ts +5 -0
  260. package/models/errors/index.d.ts.map +1 -0
  261. package/models/errors/index.js +24 -0
  262. package/models/errors/index.js.map +1 -0
  263. package/models/errors/sdkvalidationerror.d.ts +20 -0
  264. package/models/errors/sdkvalidationerror.d.ts.map +1 -0
  265. package/models/errors/sdkvalidationerror.js +115 -0
  266. package/models/errors/sdkvalidationerror.js.map +1 -0
  267. package/models/operations/append.d.ts +97 -0
  268. package/models/operations/append.d.ts.map +1 -0
  269. package/models/operations/append.js +134 -0
  270. package/models/operations/append.js.map +1 -0
  271. package/models/operations/checktail.d.ts +33 -0
  272. package/models/operations/checktail.d.ts.map +1 -0
  273. package/models/operations/checktail.js +75 -0
  274. package/models/operations/checktail.js.map +1 -0
  275. package/models/operations/createbasin.d.ts +37 -0
  276. package/models/operations/createbasin.d.ts.map +1 -0
  277. package/models/operations/createbasin.js +85 -0
  278. package/models/operations/createbasin.js.map +1 -0
  279. package/models/operations/createstream.d.ts +38 -0
  280. package/models/operations/createstream.d.ts.map +1 -0
  281. package/models/operations/createstream.js +91 -0
  282. package/models/operations/createstream.js.map +1 -0
  283. package/models/operations/deletebasin.d.ts +32 -0
  284. package/models/operations/deletebasin.d.ts.map +1 -0
  285. package/models/operations/deletebasin.js +69 -0
  286. package/models/operations/deletebasin.js.map +1 -0
  287. package/models/operations/deletestream.d.ts +33 -0
  288. package/models/operations/deletestream.d.ts.map +1 -0
  289. package/models/operations/deletestream.js +75 -0
  290. package/models/operations/deletestream.js.map +1 -0
  291. package/models/operations/getbasinconfig.d.ts +32 -0
  292. package/models/operations/getbasinconfig.d.ts.map +1 -0
  293. package/models/operations/getbasinconfig.js +69 -0
  294. package/models/operations/getbasinconfig.js.map +1 -0
  295. package/models/operations/getstreamconfig.d.ts +33 -0
  296. package/models/operations/getstreamconfig.d.ts.map +1 -0
  297. package/models/operations/getstreamconfig.js +75 -0
  298. package/models/operations/getstreamconfig.js.map +1 -0
  299. package/models/operations/index.d.ts +14 -0
  300. package/models/operations/index.d.ts.map +1 -0
  301. package/models/operations/index.js +33 -0
  302. package/models/operations/index.js.map +1 -0
  303. package/models/operations/listbasins.d.ts +72 -0
  304. package/models/operations/listbasins.d.ts.map +1 -0
  305. package/models/operations/listbasins.js +118 -0
  306. package/models/operations/listbasins.js.map +1 -0
  307. package/models/operations/liststreams.d.ts +73 -0
  308. package/models/operations/liststreams.d.ts.map +1 -0
  309. package/models/operations/liststreams.js +124 -0
  310. package/models/operations/liststreams.js.map +1 -0
  311. package/models/operations/read.d.ts +163 -0
  312. package/models/operations/read.d.ts.map +1 -0
  313. package/models/operations/read.js +200 -0
  314. package/models/operations/read.js.map +1 -0
  315. package/models/operations/reconfigurebasin.d.ts +35 -0
  316. package/models/operations/reconfigurebasin.d.ts.map +1 -0
  317. package/models/operations/reconfigurebasin.js +81 -0
  318. package/models/operations/reconfigurebasin.js.map +1 -0
  319. package/models/operations/reconfigurestream.d.ts +36 -0
  320. package/models/operations/reconfigurestream.d.ts.map +1 -0
  321. package/models/operations/reconfigurestream.js +87 -0
  322. package/models/operations/reconfigurestream.js.map +1 -0
  323. package/package.json +32 -0
  324. package/sdk/account.d.ts +29 -0
  325. package/sdk/account.d.ts.map +1 -0
  326. package/sdk/account.js +48 -0
  327. package/sdk/account.js.map +1 -0
  328. package/sdk/basin.d.ts +29 -0
  329. package/sdk/basin.d.ts.map +1 -0
  330. package/sdk/basin.js +48 -0
  331. package/sdk/basin.js.map +1 -0
  332. package/sdk/index.d.ts +2 -0
  333. package/sdk/index.d.ts.map +1 -0
  334. package/sdk/index.js +21 -0
  335. package/sdk/index.js.map +1 -0
  336. package/sdk/sdk.d.ts +13 -0
  337. package/sdk/sdk.d.ts.map +1 -0
  338. package/sdk/sdk.js +23 -0
  339. package/sdk/sdk.js.map +1 -0
  340. package/sdk/stream.d.ts +22 -0
  341. package/sdk/stream.d.ts.map +1 -0
  342. package/sdk/stream.js +35 -0
  343. package/sdk/stream.js.map +1 -0
  344. package/src/core.ts +13 -0
  345. package/src/funcs/accountCreateBasin.ts +149 -0
  346. package/src/funcs/accountDeleteBasin.ts +141 -0
  347. package/src/funcs/accountGetBasinConfig.ts +141 -0
  348. package/src/funcs/accountListBasins.ts +188 -0
  349. package/src/funcs/accountReconfigureBasin.ts +142 -0
  350. package/src/funcs/basinCreateStream.ts +155 -0
  351. package/src/funcs/basinDeleteStream.ts +147 -0
  352. package/src/funcs/basinGetStreamConfig.ts +147 -0
  353. package/src/funcs/basinListStreams.ts +196 -0
  354. package/src/funcs/basinReconfigureStream.ts +148 -0
  355. package/src/funcs/streamAppend.ts +152 -0
  356. package/src/funcs/streamCheckTail.ts +147 -0
  357. package/src/funcs/streamRead.ts +163 -0
  358. package/src/hooks/hooks.ts +132 -0
  359. package/src/hooks/index.ts +6 -0
  360. package/src/hooks/registration.ts +14 -0
  361. package/src/hooks/types.ts +109 -0
  362. package/src/index.ts +7 -0
  363. package/src/lib/base64.ts +37 -0
  364. package/src/lib/config.ts +60 -0
  365. package/src/lib/dlv.ts +53 -0
  366. package/src/lib/encodings.ts +483 -0
  367. package/src/lib/env.ts +41 -0
  368. package/src/lib/event-streams.ts +264 -0
  369. package/src/lib/files.ts +40 -0
  370. package/src/lib/http.ts +323 -0
  371. package/src/lib/is-plain-object.ts +43 -0
  372. package/src/lib/logger.ts +9 -0
  373. package/src/lib/matchers.ts +325 -0
  374. package/src/lib/primitives.ts +136 -0
  375. package/src/lib/retries.ts +219 -0
  376. package/src/lib/schemas.ts +91 -0
  377. package/src/lib/sdks.ts +400 -0
  378. package/src/lib/security.ts +254 -0
  379. package/src/lib/url.ts +33 -0
  380. package/src/models/components/appendinput.ts +102 -0
  381. package/src/models/components/appendoutput.ts +101 -0
  382. package/src/models/components/appendrecord.ts +75 -0
  383. package/src/models/components/assignment.ts +177 -0
  384. package/src/models/components/basinconfig.ts +80 -0
  385. package/src/models/components/basininfo.ts +94 -0
  386. package/src/models/components/basinstate.ts +39 -0
  387. package/src/models/components/checktailresponse.ts +81 -0
  388. package/src/models/components/createbasinrequest.ts +85 -0
  389. package/src/models/components/createstreamrequest.ts +75 -0
  390. package/src/models/components/header.ts +75 -0
  391. package/src/models/components/index.ts +26 -0
  392. package/src/models/components/listbasinsresponse.ts +94 -0
  393. package/src/models/components/liststreamsresponse.ts +94 -0
  394. package/src/models/components/output.ts +277 -0
  395. package/src/models/components/readresponse.ts +197 -0
  396. package/src/models/components/retentionpolicy.ts +122 -0
  397. package/src/models/components/security.ts +62 -0
  398. package/src/models/components/sequencedrecord.ts +99 -0
  399. package/src/models/components/sequencedrecordbatch.ts +78 -0
  400. package/src/models/components/storageclass.ts +38 -0
  401. package/src/models/components/streamconfig.ts +94 -0
  402. package/src/models/components/streaminfo.ts +93 -0
  403. package/src/models/errors/apierror.ts +27 -0
  404. package/src/models/errors/errorresponse.ts +69 -0
  405. package/src/models/errors/httpclienterrors.ts +62 -0
  406. package/src/models/errors/index.ts +8 -0
  407. package/src/models/errors/sdkvalidationerror.ts +97 -0
  408. package/src/models/operations/append.ts +176 -0
  409. package/src/models/operations/checktail.ts +76 -0
  410. package/src/models/operations/createbasin.ts +89 -0
  411. package/src/models/operations/createstream.ts +96 -0
  412. package/src/models/operations/deletebasin.ts +69 -0
  413. package/src/models/operations/deletestream.ts +76 -0
  414. package/src/models/operations/getbasinconfig.ts +69 -0
  415. package/src/models/operations/getstreamconfig.ts +76 -0
  416. package/src/models/operations/index.ts +17 -0
  417. package/src/models/operations/listbasins.ts +163 -0
  418. package/src/models/operations/liststreams.ts +170 -0
  419. package/src/models/operations/read.ts +309 -0
  420. package/src/models/operations/reconfigurebasin.ts +83 -0
  421. package/src/models/operations/reconfigurestream.ts +90 -0
  422. package/src/sdk/account.ts +86 -0
  423. package/src/sdk/basin.ts +86 -0
  424. package/src/sdk/index.ts +5 -0
  425. package/src/sdk/sdk.ts +25 -0
  426. package/src/sdk/stream.ts +57 -0
  427. package/src/types/blobs.ts +31 -0
  428. package/src/types/constdatetime.ts +15 -0
  429. package/src/types/enums.ts +16 -0
  430. package/src/types/fp.ts +50 -0
  431. package/src/types/index.ts +11 -0
  432. package/src/types/operations.ts +105 -0
  433. package/src/types/rfcdate.ts +54 -0
  434. package/src/types/streams.ts +21 -0
  435. package/tsconfig.json +41 -0
  436. package/types/blobs.d.ts +4 -0
  437. package/types/blobs.d.ts.map +1 -0
  438. package/types/blobs.js +62 -0
  439. package/types/blobs.js.map +1 -0
  440. package/types/constdatetime.d.ts +3 -0
  441. package/types/constdatetime.d.ts.map +1 -0
  442. package/types/constdatetime.js +46 -0
  443. package/types/constdatetime.js.map +1 -0
  444. package/types/enums.d.ts +12 -0
  445. package/types/enums.d.ts.map +1 -0
  446. package/types/enums.js +10 -0
  447. package/types/enums.js.map +1 -0
  448. package/types/fp.d.ts +31 -0
  449. package/types/fp.d.ts.map +1 -0
  450. package/types/fp.js +37 -0
  451. package/types/fp.js.map +1 -0
  452. package/types/index.d.ts +8 -0
  453. package/types/index.d.ts.map +1 -0
  454. package/types/index.js +16 -0
  455. package/types/index.js.map +1 -0
  456. package/types/operations.d.ts +27 -0
  457. package/types/operations.d.ts.map +1 -0
  458. package/types/operations.js +83 -0
  459. package/types/operations.js.map +1 -0
  460. package/types/rfcdate.d.ts +21 -0
  461. package/types/rfcdate.d.ts.map +1 -0
  462. package/types/rfcdate.js +46 -0
  463. package/types/rfcdate.js.map +1 -0
  464. package/types/streams.d.ts +2 -0
  465. package/types/streams.d.ts.map +1 -0
  466. package/types/streams.js +18 -0
  467. package/types/streams.js.map +1 -0
package/src/lib/dlv.ts ADDED
@@ -0,0 +1,53 @@
1
+ /*
2
+ * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.
3
+ */
4
+
5
+ /*
6
+ MIT License
7
+
8
+ Copyright (c) 2024 Jason Miller <jason@developit.ca> (http://jasonformat.com)
9
+
10
+ Permission is hereby granted, free of charge, to any person obtaining a copy of
11
+ this software and associated documentation files (the "Software"), to deal in
12
+ the Software without restriction, including without limitation the rights to
13
+ use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of
14
+ the Software, and to permit persons to whom the Software is furnished to do so,
15
+ subject to the following conditions:
16
+
17
+ The above copyright notice and this permission notice shall be included in all
18
+ copies or substantial portions of the Software.
19
+
20
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
21
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
22
+ FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
23
+ COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
24
+ IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
25
+ CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
26
+ */
27
+
28
+ /**
29
+ * @param obj The object to walk
30
+ * @param key The key path to walk the object with
31
+ * @param def A default value to return if the result is undefined
32
+ *
33
+ * @example
34
+ * dlv(obj, "a.b.c.d")
35
+ * @example
36
+ * dlv(object, ["a", "b", "c", "d"])
37
+ * @example
38
+ * dlv(object, "foo.bar.baz", "Hello, default value!")
39
+ */
40
+ export function dlv<T = any>(
41
+ obj: any,
42
+ key: string | string[],
43
+ def?: T,
44
+ p?: number,
45
+ undef?: never,
46
+ ): T | undefined {
47
+ key = Array.isArray(key) ? key : key.split(".");
48
+ for (p = 0; p < key.length; p++) {
49
+ const k = key[p];
50
+ obj = k != null && obj ? obj[k] : undef;
51
+ }
52
+ return obj === undef ? def : obj;
53
+ }
@@ -0,0 +1,483 @@
1
+ /*
2
+ * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.
3
+ */
4
+
5
+ import { bytesToBase64 } from "./base64.js";
6
+ import { isPlainObject } from "./is-plain-object.js";
7
+
8
+ export class EncodingError extends Error {
9
+ constructor(message: string) {
10
+ super(message);
11
+ this.name = "EncodingError";
12
+ }
13
+ }
14
+
15
+ export function encodeMatrix(
16
+ key: string,
17
+ value: unknown,
18
+ options?: { explode?: boolean; charEncoding?: "percent" | "none" },
19
+ ): string | undefined {
20
+ let out = "";
21
+ const pairs: [string, unknown][] = options?.explode
22
+ ? explode(key, value)
23
+ : [[key, value]];
24
+
25
+ if (pairs.every(([_, v]) => v == null)) {
26
+ return;
27
+ }
28
+
29
+ const encodeString = (v: string) => {
30
+ return options?.charEncoding === "percent" ? encodeURIComponent(v) : v;
31
+ };
32
+ const encodeValue = (v: unknown) => encodeString(serializeValue(v));
33
+
34
+ pairs.forEach(([pk, pv]) => {
35
+ let tmp = "";
36
+ let encValue: string | null | undefined = null;
37
+
38
+ if (pv == null) {
39
+ return;
40
+ } else if (Array.isArray(pv)) {
41
+ encValue = mapDefined(pv, (v) => `${encodeValue(v)}`)?.join(",");
42
+ } else if (isPlainObject(pv)) {
43
+ const mapped = mapDefinedEntries(Object.entries(pv), ([k, v]) => {
44
+ return `,${encodeString(k)},${encodeValue(v)}`;
45
+ });
46
+ encValue = mapped?.join("").slice(1);
47
+ } else {
48
+ encValue = `${encodeValue(pv)}`;
49
+ }
50
+
51
+ if (encValue == null) {
52
+ return;
53
+ }
54
+
55
+ const keyPrefix = encodeString(pk);
56
+ tmp = `${keyPrefix}=${encValue}`;
57
+ // trim trailing '=' if value was empty
58
+ if (tmp === `${keyPrefix}=`) {
59
+ tmp = tmp.slice(0, -1);
60
+ }
61
+
62
+ // If we end up with the nothing then skip forward
63
+ if (!tmp) {
64
+ return;
65
+ }
66
+
67
+ out += `;${tmp}`;
68
+ });
69
+
70
+ return out;
71
+ }
72
+
73
+ export function encodeLabel(
74
+ key: string,
75
+ value: unknown,
76
+ options?: { explode?: boolean; charEncoding?: "percent" | "none" },
77
+ ): string | undefined {
78
+ let out = "";
79
+ const pairs: [string, unknown][] = options?.explode
80
+ ? explode(key, value)
81
+ : [[key, value]];
82
+
83
+ if (pairs.every(([_, v]) => v == null)) {
84
+ return;
85
+ }
86
+
87
+ const encodeString = (v: string) => {
88
+ return options?.charEncoding === "percent" ? encodeURIComponent(v) : v;
89
+ };
90
+ const encodeValue = (v: unknown) => encodeString(serializeValue(v));
91
+
92
+ pairs.forEach(([pk, pv]) => {
93
+ let encValue: string | null | undefined = "";
94
+
95
+ if (pv == null) {
96
+ return;
97
+ } else if (Array.isArray(pv)) {
98
+ encValue = mapDefined(pv, (v) => `${encodeValue(v)}`)?.join(".");
99
+ } else if (isPlainObject(pv)) {
100
+ const mapped = mapDefinedEntries(Object.entries(pv), ([k, v]) => {
101
+ return `.${encodeString(k)}.${encodeValue(v)}`;
102
+ });
103
+ encValue = mapped?.join("").slice(1);
104
+ } else {
105
+ const k =
106
+ options?.explode && isPlainObject(value) ? `${encodeString(pk)}=` : "";
107
+ encValue = `${k}${encodeValue(pv)}`;
108
+ }
109
+
110
+ out += encValue == null ? "" : `.${encValue}`;
111
+ });
112
+
113
+ return out;
114
+ }
115
+
116
+ type FormEncoder = (
117
+ key: string,
118
+ value: unknown,
119
+ options?: { explode?: boolean; charEncoding?: "percent" | "none" },
120
+ ) => string | undefined;
121
+
122
+ function formEncoder(sep: string): FormEncoder {
123
+ return (
124
+ key: string,
125
+ value: unknown,
126
+ options?: { explode?: boolean; charEncoding?: "percent" | "none" },
127
+ ) => {
128
+ let out = "";
129
+ const pairs: [string, unknown][] = options?.explode
130
+ ? explode(key, value)
131
+ : [[key, value]];
132
+
133
+ if (pairs.every(([_, v]) => v == null)) {
134
+ return;
135
+ }
136
+
137
+ const encodeString = (v: string) => {
138
+ return options?.charEncoding === "percent" ? encodeURIComponent(v) : v;
139
+ };
140
+
141
+ const encodeValue = (v: unknown) => encodeString(serializeValue(v));
142
+
143
+ const encodedSep = encodeString(sep);
144
+
145
+ pairs.forEach(([pk, pv]) => {
146
+ let tmp = "";
147
+ let encValue: string | null | undefined = null;
148
+
149
+ if (pv == null) {
150
+ return;
151
+ } else if (Array.isArray(pv)) {
152
+ encValue = mapDefined(pv, (v) => `${encodeValue(v)}`)?.join(encodedSep);
153
+ } else if (isPlainObject(pv)) {
154
+ encValue = mapDefinedEntries(Object.entries(pv), ([k, v]) => {
155
+ return `${encodeString(k)}${encodedSep}${encodeValue(v)}`;
156
+ })?.join(encodedSep);
157
+ } else {
158
+ encValue = `${encodeValue(pv)}`;
159
+ }
160
+
161
+ if (encValue == null) {
162
+ return;
163
+ }
164
+
165
+ tmp = `${encodeString(pk)}=${encValue}`;
166
+
167
+ // If we end up with the nothing then skip forward
168
+ if (!tmp || tmp === "=") {
169
+ return;
170
+ }
171
+
172
+ out += `&${tmp}`;
173
+ });
174
+
175
+ return out.slice(1);
176
+ };
177
+ }
178
+
179
+ export const encodeForm = formEncoder(",");
180
+ export const encodeSpaceDelimited = formEncoder(" ");
181
+ export const encodePipeDelimited = formEncoder("|");
182
+
183
+ export function encodeBodyForm(
184
+ key: string,
185
+ value: unknown,
186
+ options?: { explode?: boolean; charEncoding?: "percent" | "none" },
187
+ ): string {
188
+ let out = "";
189
+ const pairs: [string, unknown][] = options?.explode
190
+ ? explode(key, value)
191
+ : [[key, value]];
192
+
193
+ const encodeString = (v: string) => {
194
+ return options?.charEncoding === "percent" ? encodeURIComponent(v) : v;
195
+ };
196
+
197
+ const encodeValue = (v: unknown) => encodeString(serializeValue(v));
198
+
199
+ pairs.forEach(([pk, pv]) => {
200
+ let tmp = "";
201
+ let encValue = "";
202
+
203
+ if (pv == null) {
204
+ return;
205
+ } else if (Array.isArray(pv)) {
206
+ encValue = JSON.stringify(pv, jsonReplacer);
207
+ } else if (isPlainObject(pv)) {
208
+ encValue = JSON.stringify(pv, jsonReplacer);
209
+ } else {
210
+ encValue = `${encodeValue(pv)}`;
211
+ }
212
+
213
+ tmp = `${encodeString(pk)}=${encValue}`;
214
+
215
+ // If we end up with the nothing then skip forward
216
+ if (!tmp || tmp === "=") {
217
+ return;
218
+ }
219
+
220
+ out += `&${tmp}`;
221
+ });
222
+
223
+ return out.slice(1);
224
+ }
225
+
226
+ export function encodeDeepObject(
227
+ key: string,
228
+ value: unknown,
229
+ options?: { charEncoding?: "percent" | "none" },
230
+ ): string | undefined {
231
+ if (value == null) {
232
+ return;
233
+ }
234
+
235
+ if (!isPlainObject(value)) {
236
+ throw new EncodingError(
237
+ `Value of parameter '${key}' which uses deepObject encoding must be an object or null`,
238
+ );
239
+ }
240
+
241
+ return encodeDeepObjectObject(key, value, options);
242
+ }
243
+
244
+ export function encodeDeepObjectObject(
245
+ key: string,
246
+ value: unknown,
247
+ options?: { charEncoding?: "percent" | "none" },
248
+ ): string | undefined {
249
+ if (value == null) {
250
+ return;
251
+ }
252
+
253
+ let out = "";
254
+
255
+ const encodeString = (v: string) => {
256
+ return options?.charEncoding === "percent" ? encodeURIComponent(v) : v;
257
+ };
258
+
259
+ if (!isPlainObject(value)) {
260
+ throw new EncodingError(`Expected parameter '${key}' to be an object.`);
261
+ }
262
+
263
+ Object.entries(value).forEach(([ck, cv]) => {
264
+ if (cv == null) {
265
+ return;
266
+ }
267
+
268
+ const pk = `${key}[${ck}]`;
269
+
270
+ if (isPlainObject(cv)) {
271
+ const objOut = encodeDeepObjectObject(pk, cv, options);
272
+
273
+ out += objOut == null ? "" : `&${objOut}`;
274
+
275
+ return;
276
+ }
277
+
278
+ const pairs: unknown[] = Array.isArray(cv) ? cv : [cv];
279
+ const encoded = mapDefined(pairs, (v) => {
280
+ return `${encodeString(pk)}=${encodeString(serializeValue(v))}`;
281
+ })?.join("&");
282
+
283
+ out += encoded == null ? "" : `&${encoded}`;
284
+ });
285
+
286
+ return out.slice(1);
287
+ }
288
+
289
+ export function encodeJSON(
290
+ key: string,
291
+ value: unknown,
292
+ options?: { explode?: boolean; charEncoding?: "percent" | "none" },
293
+ ): string | undefined {
294
+ if (typeof value === "undefined") {
295
+ return;
296
+ }
297
+
298
+ const encodeString = (v: string) => {
299
+ return options?.charEncoding === "percent" ? encodeURIComponent(v) : v;
300
+ };
301
+
302
+ const encVal = encodeString(JSON.stringify(value, jsonReplacer));
303
+
304
+ return options?.explode ? encVal : `${encodeString(key)}=${encVal}`;
305
+ }
306
+
307
+ export const encodeSimple = (
308
+ key: string,
309
+ value: unknown,
310
+ options?: { explode?: boolean; charEncoding?: "percent" | "none" },
311
+ ): string | undefined => {
312
+ let out = "";
313
+ const pairs: [string, unknown][] = options?.explode
314
+ ? explode(key, value)
315
+ : [[key, value]];
316
+
317
+ if (pairs.every(([_, v]) => v == null)) {
318
+ return;
319
+ }
320
+
321
+ const encodeString = (v: string) => {
322
+ return options?.charEncoding === "percent" ? encodeURIComponent(v) : v;
323
+ };
324
+ const encodeValue = (v: unknown) => encodeString(serializeValue(v));
325
+
326
+ pairs.forEach(([pk, pv]) => {
327
+ let tmp: string | null | undefined = "";
328
+
329
+ if (pv == null) {
330
+ return;
331
+ } else if (Array.isArray(pv)) {
332
+ tmp = mapDefined(pv, (v) => `${encodeValue(v)}`)?.join(",");
333
+ } else if (isPlainObject(pv)) {
334
+ const mapped = mapDefinedEntries(Object.entries(pv), ([k, v]) => {
335
+ return `,${encodeString(k)},${encodeValue(v)}`;
336
+ });
337
+ tmp = mapped?.join("").slice(1);
338
+ } else {
339
+ const k = options?.explode && isPlainObject(value) ? `${pk}=` : "";
340
+ tmp = `${k}${encodeValue(pv)}`;
341
+ }
342
+
343
+ out += tmp ? `,${tmp}` : "";
344
+ });
345
+
346
+ return out.slice(1);
347
+ };
348
+
349
+ function explode(key: string, value: unknown): [string, unknown][] {
350
+ if (Array.isArray(value)) {
351
+ return value.map((v) => [key, v]);
352
+ } else if (isPlainObject(value)) {
353
+ const o = value ?? {};
354
+ return Object.entries(o).map(([k, v]) => [k, v]);
355
+ } else {
356
+ return [[key, value]];
357
+ }
358
+ }
359
+
360
+ function serializeValue(value: unknown): string {
361
+ if (value == null) {
362
+ return "";
363
+ } else if (value instanceof Date) {
364
+ return value.toISOString();
365
+ } else if (value instanceof Uint8Array) {
366
+ return bytesToBase64(value);
367
+ } else if (typeof value === "object") {
368
+ return JSON.stringify(value, jsonReplacer);
369
+ }
370
+
371
+ return `${value}`;
372
+ }
373
+
374
+ function jsonReplacer(_: string, value: unknown): unknown {
375
+ if (value instanceof Uint8Array) {
376
+ return bytesToBase64(value);
377
+ } else {
378
+ return value;
379
+ }
380
+ }
381
+
382
+ function mapDefined<T, R>(inp: T[], mapper: (v: T) => R): R[] | null {
383
+ const res = inp.reduce<R[]>((acc, v) => {
384
+ if (v == null) {
385
+ return acc;
386
+ }
387
+
388
+ const m = mapper(v);
389
+ if (m == null) {
390
+ return acc;
391
+ }
392
+
393
+ acc.push(m);
394
+
395
+ return acc;
396
+ }, []);
397
+
398
+ return res.length ? res : null;
399
+ }
400
+
401
+ function mapDefinedEntries<K, V, R>(
402
+ inp: Iterable<[K, V]>,
403
+ mapper: (v: [K, V]) => R,
404
+ ): R[] | null {
405
+ const acc: R[] = [];
406
+ for (const [k, v] of inp) {
407
+ if (v == null) {
408
+ continue;
409
+ }
410
+
411
+ const m = mapper([k, v]);
412
+ if (m == null) {
413
+ continue;
414
+ }
415
+
416
+ acc.push(m);
417
+ }
418
+
419
+ return acc.length ? acc : null;
420
+ }
421
+
422
+ export function queryJoin(...args: (string | undefined)[]): string {
423
+ return args.filter(Boolean).join("&");
424
+ }
425
+
426
+ type QueryEncoderOptions = {
427
+ explode?: boolean;
428
+ charEncoding?: "percent" | "none";
429
+ };
430
+
431
+ type QueryEncoder = (
432
+ key: string,
433
+ value: unknown,
434
+ options?: QueryEncoderOptions,
435
+ ) => string | undefined;
436
+
437
+ type BulkQueryEncoder = (
438
+ values: Record<string, unknown>,
439
+ options?: QueryEncoderOptions,
440
+ ) => string;
441
+
442
+ export function queryEncoder(f: QueryEncoder): BulkQueryEncoder {
443
+ const bulkEncode = function (
444
+ values: Record<string, unknown>,
445
+ options?: QueryEncoderOptions,
446
+ ): string {
447
+ const opts: QueryEncoderOptions = {
448
+ ...options,
449
+ explode: options?.explode ?? true,
450
+ charEncoding: options?.charEncoding ?? "percent",
451
+ };
452
+
453
+ const encoded = Object.entries(values).map(([key, value]) => {
454
+ return f(key, value, opts);
455
+ });
456
+ return queryJoin(...encoded);
457
+ };
458
+
459
+ return bulkEncode;
460
+ }
461
+
462
+ export const encodeJSONQuery = queryEncoder(encodeJSON);
463
+ export const encodeFormQuery = queryEncoder(encodeForm);
464
+ export const encodeSpaceDelimitedQuery = queryEncoder(encodeSpaceDelimited);
465
+ export const encodePipeDelimitedQuery = queryEncoder(encodePipeDelimited);
466
+ export const encodeDeepObjectQuery = queryEncoder(encodeDeepObject);
467
+
468
+ export function appendForm(
469
+ fd: FormData,
470
+ key: string,
471
+ value: unknown,
472
+ fileName?: string,
473
+ ): void {
474
+ if (value == null) {
475
+ return;
476
+ } else if (value instanceof Blob && fileName) {
477
+ fd.append(key, value, fileName);
478
+ } else if (value instanceof Blob) {
479
+ fd.append(key, value);
480
+ } else {
481
+ fd.append(key, String(value));
482
+ }
483
+ }
package/src/lib/env.ts ADDED
@@ -0,0 +1,41 @@
1
+ /*
2
+ * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.
3
+ */
4
+
5
+ import { dlv } from "./dlv.js";
6
+
7
+ import * as z from "zod";
8
+
9
+ export interface Env {
10
+ S2_BEARER_AUTH?: string | undefined;
11
+
12
+ S2_DEBUG?: boolean | undefined;
13
+ }
14
+
15
+ export const envSchema: z.ZodType<Env, z.ZodTypeDef, unknown> = z.object({
16
+ S2_BEARER_AUTH: z.string().optional(),
17
+
18
+ S2_DEBUG: z.coerce.boolean().optional(),
19
+ });
20
+
21
+ let envMemo: Env | undefined = undefined;
22
+ /**
23
+ * Reads and validates environment variables.
24
+ */
25
+ export function env(): Env {
26
+ if (envMemo) {
27
+ return envMemo;
28
+ }
29
+
30
+ envMemo = envSchema.parse(
31
+ dlv(globalThis, "process.env") ?? dlv(globalThis, "Deno.env") ?? {},
32
+ );
33
+ return envMemo;
34
+ }
35
+
36
+ /**
37
+ * Clears the cached env object. Useful for testing with a fresh environment.
38
+ */
39
+ export function resetEnv() {
40
+ envMemo = undefined;
41
+ }