rehive 3.1.3 → 4.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (425) hide show
  1. package/README.md +211 -494
  2. package/dist/admin.d.mts +31284 -0
  3. package/dist/admin.d.ts +31284 -0
  4. package/dist/admin.js +1 -0
  5. package/dist/admin.mjs +1 -0
  6. package/dist/auth.d.mts +23 -0
  7. package/dist/auth.d.ts +23 -0
  8. package/dist/auth.js +1 -0
  9. package/dist/auth.mjs +1 -0
  10. package/dist/chunk-53JJUQ4V.js +1 -0
  11. package/dist/chunk-5MRX4DHT.js +1 -0
  12. package/dist/chunk-7WWCXCY2.mjs +1 -0
  13. package/dist/chunk-HF5XDXOU.mjs +1 -0
  14. package/dist/chunk-NFN3B6SG.mjs +1 -0
  15. package/dist/chunk-OEIQFP6T.js +1 -0
  16. package/dist/chunk-Q2ZX3WFY.mjs +7 -0
  17. package/dist/chunk-QWQ6ZENI.js +1 -0
  18. package/dist/chunk-RKDIBDG6.js +7 -0
  19. package/dist/chunk-S4QKN5WW.mjs +1 -0
  20. package/dist/chunk-UYUMXTPF.js +7 -0
  21. package/dist/chunk-V277OEVY.mjs +7 -0
  22. package/dist/create-api-client-BMeX50D6.d.ts +25 -0
  23. package/dist/create-api-client-BrsH1l8c.d.mts +25 -0
  24. package/dist/create-auth-UTklIOTc.d.mts +18340 -0
  25. package/dist/create-auth-UTklIOTc.d.ts +18340 -0
  26. package/dist/extensions/alchemy.d.mts +1114 -0
  27. package/dist/extensions/alchemy.d.ts +1114 -0
  28. package/dist/extensions/alchemy.js +7 -0
  29. package/dist/extensions/alchemy.mjs +7 -0
  30. package/dist/extensions/app.d.mts +2042 -0
  31. package/dist/extensions/app.d.ts +2042 -0
  32. package/dist/extensions/app.js +7 -0
  33. package/dist/extensions/app.mjs +7 -0
  34. package/dist/extensions/billing.d.mts +828 -0
  35. package/dist/extensions/billing.d.ts +828 -0
  36. package/dist/extensions/billing.js +7 -0
  37. package/dist/extensions/billing.mjs +7 -0
  38. package/dist/extensions/bridge.d.mts +2028 -0
  39. package/dist/extensions/bridge.d.ts +2028 -0
  40. package/dist/extensions/bridge.js +7 -0
  41. package/dist/extensions/bridge.mjs +7 -0
  42. package/dist/extensions/builder.d.mts +542 -0
  43. package/dist/extensions/builder.d.ts +542 -0
  44. package/dist/extensions/builder.js +7 -0
  45. package/dist/extensions/builder.mjs +7 -0
  46. package/dist/extensions/business.d.mts +8972 -0
  47. package/dist/extensions/business.d.ts +8972 -0
  48. package/dist/extensions/business.js +7 -0
  49. package/dist/extensions/business.mjs +7 -0
  50. package/dist/extensions/conversion.d.mts +2786 -0
  51. package/dist/extensions/conversion.d.ts +2786 -0
  52. package/dist/extensions/conversion.js +7 -0
  53. package/dist/extensions/conversion.mjs +7 -0
  54. package/dist/extensions/mass-send.d.mts +1294 -0
  55. package/dist/extensions/mass-send.d.ts +1294 -0
  56. package/dist/extensions/mass-send.js +7 -0
  57. package/dist/extensions/mass-send.mjs +7 -0
  58. package/dist/extensions/notifications.d.mts +2035 -0
  59. package/dist/extensions/notifications.d.ts +2035 -0
  60. package/dist/extensions/notifications.js +7 -0
  61. package/dist/extensions/notifications.mjs +7 -0
  62. package/dist/extensions/payment-requests.d.mts +3746 -0
  63. package/dist/extensions/payment-requests.d.ts +3746 -0
  64. package/dist/extensions/payment-requests.js +7 -0
  65. package/dist/extensions/payment-requests.mjs +7 -0
  66. package/dist/extensions/products.d.mts +10092 -0
  67. package/dist/extensions/products.d.ts +10092 -0
  68. package/dist/extensions/products.js +7 -0
  69. package/dist/extensions/products.mjs +7 -0
  70. package/dist/extensions/rain.d.mts +1896 -0
  71. package/dist/extensions/rain.d.ts +1896 -0
  72. package/dist/extensions/rain.js +7 -0
  73. package/dist/extensions/rain.mjs +7 -0
  74. package/dist/extensions/rewards.d.mts +2038 -0
  75. package/dist/extensions/rewards.d.ts +2038 -0
  76. package/dist/extensions/rewards.js +7 -0
  77. package/dist/extensions/rewards.mjs +7 -0
  78. package/dist/extensions/stellar-testnet.d.mts +3922 -0
  79. package/dist/extensions/stellar-testnet.d.ts +3922 -0
  80. package/dist/extensions/stellar-testnet.js +7 -0
  81. package/dist/extensions/stellar-testnet.mjs +7 -0
  82. package/dist/extensions/stellar.d.mts +3922 -0
  83. package/dist/extensions/stellar.d.ts +3922 -0
  84. package/dist/extensions/stellar.js +7 -0
  85. package/dist/extensions/stellar.mjs +7 -0
  86. package/dist/index.d.mts +6 -61050
  87. package/dist/index.d.ts +6 -61050
  88. package/dist/index.js +1 -1
  89. package/dist/index.mjs +1 -1
  90. package/dist/react.d.mts +8 -61087
  91. package/dist/react.d.ts +8 -61087
  92. package/dist/react.js +1 -1
  93. package/dist/react.mjs +1 -1
  94. package/dist/user.d.mts +1347 -0
  95. package/dist/user.d.ts +1347 -0
  96. package/dist/user.js +1 -0
  97. package/dist/user.mjs +1 -0
  98. package/package.json +99 -32
  99. package/src/auth/core/storage-adapters.ts +58 -0
  100. package/src/auth/create-auth.ts +563 -0
  101. package/src/auth/index.ts +4 -0
  102. package/src/auth/types/index.ts +28 -0
  103. package/src/extensions/alchemy/create-api.ts +13 -0
  104. package/src/extensions/alchemy/index.ts +3 -0
  105. package/src/extensions/alchemy/openapi-ts/client/client.gen.ts +288 -0
  106. package/src/extensions/alchemy/openapi-ts/client/index.ts +25 -0
  107. package/src/extensions/alchemy/openapi-ts/client/types.gen.ts +213 -0
  108. package/src/extensions/alchemy/openapi-ts/client/utils.gen.ts +316 -0
  109. package/src/extensions/alchemy/openapi-ts/client.gen.ts +16 -0
  110. package/src/extensions/alchemy/openapi-ts/core/auth.gen.ts +41 -0
  111. package/src/extensions/alchemy/openapi-ts/core/bodySerializer.gen.ts +84 -0
  112. package/src/extensions/alchemy/openapi-ts/core/params.gen.ts +169 -0
  113. package/src/extensions/alchemy/openapi-ts/core/pathSerializer.gen.ts +171 -0
  114. package/src/extensions/alchemy/openapi-ts/core/queryKeySerializer.gen.ts +117 -0
  115. package/src/extensions/alchemy/openapi-ts/core/serverSentEvents.gen.ts +243 -0
  116. package/src/extensions/alchemy/openapi-ts/core/types.gen.ts +104 -0
  117. package/src/extensions/alchemy/openapi-ts/core/utils.gen.ts +140 -0
  118. package/src/extensions/alchemy/openapi-ts/index.ts +4 -0
  119. package/src/extensions/alchemy/openapi-ts/sdk.gen.ts +179 -0
  120. package/src/extensions/alchemy/openapi-ts/types.gen.ts +851 -0
  121. package/src/extensions/app/create-api.ts +13 -0
  122. package/src/extensions/app/index.ts +3 -0
  123. package/src/extensions/app/openapi-ts/client/client.gen.ts +288 -0
  124. package/src/extensions/app/openapi-ts/client/index.ts +25 -0
  125. package/src/extensions/app/openapi-ts/client/types.gen.ts +213 -0
  126. package/src/extensions/app/openapi-ts/client/utils.gen.ts +316 -0
  127. package/src/extensions/app/openapi-ts/client.gen.ts +16 -0
  128. package/src/extensions/app/openapi-ts/core/auth.gen.ts +41 -0
  129. package/src/extensions/app/openapi-ts/core/bodySerializer.gen.ts +84 -0
  130. package/src/extensions/app/openapi-ts/core/params.gen.ts +169 -0
  131. package/src/extensions/app/openapi-ts/core/pathSerializer.gen.ts +171 -0
  132. package/src/extensions/app/openapi-ts/core/queryKeySerializer.gen.ts +117 -0
  133. package/src/extensions/app/openapi-ts/core/serverSentEvents.gen.ts +243 -0
  134. package/src/extensions/app/openapi-ts/core/types.gen.ts +104 -0
  135. package/src/extensions/app/openapi-ts/core/utils.gen.ts +140 -0
  136. package/src/extensions/app/openapi-ts/index.ts +4 -0
  137. package/src/extensions/app/openapi-ts/sdk.gen.ts +539 -0
  138. package/src/extensions/app/openapi-ts/types.gen.ts +1702 -0
  139. package/src/extensions/billing/create-api.ts +13 -0
  140. package/src/extensions/billing/index.ts +3 -0
  141. package/src/extensions/billing/openapi-ts/client/client.gen.ts +288 -0
  142. package/src/extensions/billing/openapi-ts/client/index.ts +25 -0
  143. package/src/extensions/billing/openapi-ts/client/types.gen.ts +213 -0
  144. package/src/extensions/billing/openapi-ts/client/utils.gen.ts +316 -0
  145. package/src/extensions/billing/openapi-ts/client.gen.ts +16 -0
  146. package/src/extensions/billing/openapi-ts/core/auth.gen.ts +41 -0
  147. package/src/extensions/billing/openapi-ts/core/bodySerializer.gen.ts +84 -0
  148. package/src/extensions/billing/openapi-ts/core/params.gen.ts +169 -0
  149. package/src/extensions/billing/openapi-ts/core/pathSerializer.gen.ts +171 -0
  150. package/src/extensions/billing/openapi-ts/core/queryKeySerializer.gen.ts +117 -0
  151. package/src/extensions/billing/openapi-ts/core/serverSentEvents.gen.ts +243 -0
  152. package/src/extensions/billing/openapi-ts/core/types.gen.ts +104 -0
  153. package/src/extensions/billing/openapi-ts/core/utils.gen.ts +140 -0
  154. package/src/extensions/billing/openapi-ts/index.ts +4 -0
  155. package/src/extensions/billing/openapi-ts/sdk.gen.ts +155 -0
  156. package/src/extensions/billing/openapi-ts/types.gen.ts +508 -0
  157. package/src/extensions/bridge/create-api.ts +13 -0
  158. package/src/extensions/bridge/index.ts +3 -0
  159. package/src/extensions/bridge/openapi-ts/client/client.gen.ts +288 -0
  160. package/src/extensions/bridge/openapi-ts/client/index.ts +25 -0
  161. package/src/extensions/bridge/openapi-ts/client/types.gen.ts +213 -0
  162. package/src/extensions/bridge/openapi-ts/client/utils.gen.ts +316 -0
  163. package/src/extensions/bridge/openapi-ts/client.gen.ts +16 -0
  164. package/src/extensions/bridge/openapi-ts/core/auth.gen.ts +41 -0
  165. package/src/extensions/bridge/openapi-ts/core/bodySerializer.gen.ts +84 -0
  166. package/src/extensions/bridge/openapi-ts/core/params.gen.ts +169 -0
  167. package/src/extensions/bridge/openapi-ts/core/pathSerializer.gen.ts +171 -0
  168. package/src/extensions/bridge/openapi-ts/core/queryKeySerializer.gen.ts +117 -0
  169. package/src/extensions/bridge/openapi-ts/core/serverSentEvents.gen.ts +243 -0
  170. package/src/extensions/bridge/openapi-ts/core/types.gen.ts +104 -0
  171. package/src/extensions/bridge/openapi-ts/core/utils.gen.ts +140 -0
  172. package/src/extensions/bridge/openapi-ts/index.ts +4 -0
  173. package/src/extensions/bridge/openapi-ts/sdk.gen.ts +383 -0
  174. package/src/extensions/bridge/openapi-ts/types.gen.ts +1855 -0
  175. package/src/extensions/builder/create-api.ts +13 -0
  176. package/src/extensions/builder/index.ts +3 -0
  177. package/src/extensions/builder/openapi-ts/client/client.gen.ts +288 -0
  178. package/src/extensions/builder/openapi-ts/client/index.ts +25 -0
  179. package/src/extensions/builder/openapi-ts/client/types.gen.ts +213 -0
  180. package/src/extensions/builder/openapi-ts/client/utils.gen.ts +316 -0
  181. package/src/extensions/builder/openapi-ts/client.gen.ts +16 -0
  182. package/src/extensions/builder/openapi-ts/core/auth.gen.ts +41 -0
  183. package/src/extensions/builder/openapi-ts/core/bodySerializer.gen.ts +84 -0
  184. package/src/extensions/builder/openapi-ts/core/params.gen.ts +169 -0
  185. package/src/extensions/builder/openapi-ts/core/pathSerializer.gen.ts +171 -0
  186. package/src/extensions/builder/openapi-ts/core/queryKeySerializer.gen.ts +117 -0
  187. package/src/extensions/builder/openapi-ts/core/serverSentEvents.gen.ts +243 -0
  188. package/src/extensions/builder/openapi-ts/core/types.gen.ts +104 -0
  189. package/src/extensions/builder/openapi-ts/core/utils.gen.ts +140 -0
  190. package/src/extensions/builder/openapi-ts/index.ts +4 -0
  191. package/src/extensions/builder/openapi-ts/sdk.gen.ts +60 -0
  192. package/src/extensions/builder/openapi-ts/types.gen.ts +215 -0
  193. package/src/extensions/business/create-api.ts +13 -0
  194. package/src/extensions/business/index.ts +3 -0
  195. package/src/extensions/business/openapi-ts/client/client.gen.ts +288 -0
  196. package/src/extensions/business/openapi-ts/client/index.ts +25 -0
  197. package/src/extensions/business/openapi-ts/client/types.gen.ts +213 -0
  198. package/src/extensions/business/openapi-ts/client/utils.gen.ts +316 -0
  199. package/src/extensions/business/openapi-ts/client.gen.ts +16 -0
  200. package/src/extensions/business/openapi-ts/core/auth.gen.ts +41 -0
  201. package/src/extensions/business/openapi-ts/core/bodySerializer.gen.ts +84 -0
  202. package/src/extensions/business/openapi-ts/core/params.gen.ts +169 -0
  203. package/src/extensions/business/openapi-ts/core/pathSerializer.gen.ts +171 -0
  204. package/src/extensions/business/openapi-ts/core/queryKeySerializer.gen.ts +117 -0
  205. package/src/extensions/business/openapi-ts/core/serverSentEvents.gen.ts +243 -0
  206. package/src/extensions/business/openapi-ts/core/types.gen.ts +104 -0
  207. package/src/extensions/business/openapi-ts/core/utils.gen.ts +140 -0
  208. package/src/extensions/business/openapi-ts/index.ts +4 -0
  209. package/src/extensions/business/openapi-ts/sdk.gen.ts +903 -0
  210. package/src/extensions/business/openapi-ts/types.gen.ts +8718 -0
  211. package/src/extensions/conversion/create-api.ts +13 -0
  212. package/src/extensions/conversion/index.ts +3 -0
  213. package/src/extensions/conversion/openapi-ts/client/client.gen.ts +288 -0
  214. package/src/extensions/conversion/openapi-ts/client/index.ts +25 -0
  215. package/src/extensions/conversion/openapi-ts/client/types.gen.ts +213 -0
  216. package/src/extensions/conversion/openapi-ts/client/utils.gen.ts +316 -0
  217. package/src/extensions/conversion/openapi-ts/client.gen.ts +16 -0
  218. package/src/extensions/conversion/openapi-ts/core/auth.gen.ts +41 -0
  219. package/src/extensions/conversion/openapi-ts/core/bodySerializer.gen.ts +84 -0
  220. package/src/extensions/conversion/openapi-ts/core/params.gen.ts +169 -0
  221. package/src/extensions/conversion/openapi-ts/core/pathSerializer.gen.ts +171 -0
  222. package/src/extensions/conversion/openapi-ts/core/queryKeySerializer.gen.ts +117 -0
  223. package/src/extensions/conversion/openapi-ts/core/serverSentEvents.gen.ts +243 -0
  224. package/src/extensions/conversion/openapi-ts/core/types.gen.ts +104 -0
  225. package/src/extensions/conversion/openapi-ts/core/utils.gen.ts +140 -0
  226. package/src/extensions/conversion/openapi-ts/index.ts +4 -0
  227. package/src/extensions/conversion/openapi-ts/sdk.gen.ts +684 -0
  228. package/src/extensions/conversion/openapi-ts/types.gen.ts +2467 -0
  229. package/src/extensions/mass-send/create-api.ts +13 -0
  230. package/src/extensions/mass-send/index.ts +3 -0
  231. package/src/extensions/mass-send/openapi-ts/client/client.gen.ts +288 -0
  232. package/src/extensions/mass-send/openapi-ts/client/index.ts +25 -0
  233. package/src/extensions/mass-send/openapi-ts/client/types.gen.ts +213 -0
  234. package/src/extensions/mass-send/openapi-ts/client/utils.gen.ts +316 -0
  235. package/src/extensions/mass-send/openapi-ts/client.gen.ts +16 -0
  236. package/src/extensions/mass-send/openapi-ts/core/auth.gen.ts +41 -0
  237. package/src/extensions/mass-send/openapi-ts/core/bodySerializer.gen.ts +84 -0
  238. package/src/extensions/mass-send/openapi-ts/core/params.gen.ts +169 -0
  239. package/src/extensions/mass-send/openapi-ts/core/pathSerializer.gen.ts +171 -0
  240. package/src/extensions/mass-send/openapi-ts/core/queryKeySerializer.gen.ts +117 -0
  241. package/src/extensions/mass-send/openapi-ts/core/serverSentEvents.gen.ts +243 -0
  242. package/src/extensions/mass-send/openapi-ts/core/types.gen.ts +104 -0
  243. package/src/extensions/mass-send/openapi-ts/core/utils.gen.ts +140 -0
  244. package/src/extensions/mass-send/openapi-ts/index.ts +4 -0
  245. package/src/extensions/mass-send/openapi-ts/sdk.gen.ts +270 -0
  246. package/src/extensions/mass-send/openapi-ts/types.gen.ts +988 -0
  247. package/src/extensions/notifications/create-api.ts +13 -0
  248. package/src/extensions/notifications/index.ts +3 -0
  249. package/src/extensions/notifications/openapi-ts/client/client.gen.ts +288 -0
  250. package/src/extensions/notifications/openapi-ts/client/index.ts +25 -0
  251. package/src/extensions/notifications/openapi-ts/client/types.gen.ts +213 -0
  252. package/src/extensions/notifications/openapi-ts/client/utils.gen.ts +316 -0
  253. package/src/extensions/notifications/openapi-ts/client.gen.ts +16 -0
  254. package/src/extensions/notifications/openapi-ts/core/auth.gen.ts +41 -0
  255. package/src/extensions/notifications/openapi-ts/core/bodySerializer.gen.ts +84 -0
  256. package/src/extensions/notifications/openapi-ts/core/params.gen.ts +169 -0
  257. package/src/extensions/notifications/openapi-ts/core/pathSerializer.gen.ts +171 -0
  258. package/src/extensions/notifications/openapi-ts/core/queryKeySerializer.gen.ts +117 -0
  259. package/src/extensions/notifications/openapi-ts/core/serverSentEvents.gen.ts +243 -0
  260. package/src/extensions/notifications/openapi-ts/core/types.gen.ts +104 -0
  261. package/src/extensions/notifications/openapi-ts/core/utils.gen.ts +140 -0
  262. package/src/extensions/notifications/openapi-ts/index.ts +4 -0
  263. package/src/extensions/notifications/openapi-ts/sdk.gen.ts +450 -0
  264. package/src/extensions/notifications/openapi-ts/types.gen.ts +1732 -0
  265. package/src/extensions/payment-requests/create-api.ts +13 -0
  266. package/src/extensions/payment-requests/index.ts +3 -0
  267. package/src/extensions/payment-requests/openapi-ts/client/client.gen.ts +288 -0
  268. package/src/extensions/payment-requests/openapi-ts/client/index.ts +25 -0
  269. package/src/extensions/payment-requests/openapi-ts/client/types.gen.ts +213 -0
  270. package/src/extensions/payment-requests/openapi-ts/client/utils.gen.ts +316 -0
  271. package/src/extensions/payment-requests/openapi-ts/client.gen.ts +16 -0
  272. package/src/extensions/payment-requests/openapi-ts/core/auth.gen.ts +41 -0
  273. package/src/extensions/payment-requests/openapi-ts/core/bodySerializer.gen.ts +84 -0
  274. package/src/extensions/payment-requests/openapi-ts/core/params.gen.ts +169 -0
  275. package/src/extensions/payment-requests/openapi-ts/core/pathSerializer.gen.ts +171 -0
  276. package/src/extensions/payment-requests/openapi-ts/core/queryKeySerializer.gen.ts +117 -0
  277. package/src/extensions/payment-requests/openapi-ts/core/serverSentEvents.gen.ts +243 -0
  278. package/src/extensions/payment-requests/openapi-ts/core/types.gen.ts +104 -0
  279. package/src/extensions/payment-requests/openapi-ts/core/utils.gen.ts +140 -0
  280. package/src/extensions/payment-requests/openapi-ts/index.ts +4 -0
  281. package/src/extensions/payment-requests/openapi-ts/sdk.gen.ts +845 -0
  282. package/src/extensions/payment-requests/openapi-ts/types.gen.ts +3415 -0
  283. package/src/extensions/products/create-api.ts +13 -0
  284. package/src/extensions/products/index.ts +3 -0
  285. package/src/extensions/products/openapi-ts/client/client.gen.ts +288 -0
  286. package/src/extensions/products/openapi-ts/client/index.ts +25 -0
  287. package/src/extensions/products/openapi-ts/client/types.gen.ts +213 -0
  288. package/src/extensions/products/openapi-ts/client/utils.gen.ts +316 -0
  289. package/src/extensions/products/openapi-ts/client.gen.ts +16 -0
  290. package/src/extensions/products/openapi-ts/core/auth.gen.ts +41 -0
  291. package/src/extensions/products/openapi-ts/core/bodySerializer.gen.ts +84 -0
  292. package/src/extensions/products/openapi-ts/core/params.gen.ts +169 -0
  293. package/src/extensions/products/openapi-ts/core/pathSerializer.gen.ts +171 -0
  294. package/src/extensions/products/openapi-ts/core/queryKeySerializer.gen.ts +117 -0
  295. package/src/extensions/products/openapi-ts/core/serverSentEvents.gen.ts +243 -0
  296. package/src/extensions/products/openapi-ts/core/types.gen.ts +104 -0
  297. package/src/extensions/products/openapi-ts/core/utils.gen.ts +140 -0
  298. package/src/extensions/products/openapi-ts/index.ts +4 -0
  299. package/src/extensions/products/openapi-ts/sdk.gen.ts +2619 -0
  300. package/src/extensions/products/openapi-ts/types.gen.ts +9717 -0
  301. package/src/extensions/rain/create-api.ts +13 -0
  302. package/src/extensions/rain/index.ts +3 -0
  303. package/src/extensions/rain/openapi-ts/client/client.gen.ts +288 -0
  304. package/src/extensions/rain/openapi-ts/client/index.ts +25 -0
  305. package/src/extensions/rain/openapi-ts/client/types.gen.ts +213 -0
  306. package/src/extensions/rain/openapi-ts/client/utils.gen.ts +316 -0
  307. package/src/extensions/rain/openapi-ts/client.gen.ts +16 -0
  308. package/src/extensions/rain/openapi-ts/core/auth.gen.ts +41 -0
  309. package/src/extensions/rain/openapi-ts/core/bodySerializer.gen.ts +84 -0
  310. package/src/extensions/rain/openapi-ts/core/params.gen.ts +169 -0
  311. package/src/extensions/rain/openapi-ts/core/pathSerializer.gen.ts +171 -0
  312. package/src/extensions/rain/openapi-ts/core/queryKeySerializer.gen.ts +117 -0
  313. package/src/extensions/rain/openapi-ts/core/serverSentEvents.gen.ts +243 -0
  314. package/src/extensions/rain/openapi-ts/core/types.gen.ts +104 -0
  315. package/src/extensions/rain/openapi-ts/core/utils.gen.ts +140 -0
  316. package/src/extensions/rain/openapi-ts/index.ts +4 -0
  317. package/src/extensions/rain/openapi-ts/sdk.gen.ts +227 -0
  318. package/src/extensions/rain/openapi-ts/types.gen.ts +1660 -0
  319. package/src/extensions/rewards/create-api.ts +13 -0
  320. package/src/extensions/rewards/index.ts +3 -0
  321. package/src/extensions/rewards/openapi-ts/client/client.gen.ts +288 -0
  322. package/src/extensions/rewards/openapi-ts/client/index.ts +25 -0
  323. package/src/extensions/rewards/openapi-ts/client/types.gen.ts +213 -0
  324. package/src/extensions/rewards/openapi-ts/client/utils.gen.ts +316 -0
  325. package/src/extensions/rewards/openapi-ts/client.gen.ts +16 -0
  326. package/src/extensions/rewards/openapi-ts/core/auth.gen.ts +41 -0
  327. package/src/extensions/rewards/openapi-ts/core/bodySerializer.gen.ts +84 -0
  328. package/src/extensions/rewards/openapi-ts/core/params.gen.ts +169 -0
  329. package/src/extensions/rewards/openapi-ts/core/pathSerializer.gen.ts +171 -0
  330. package/src/extensions/rewards/openapi-ts/core/queryKeySerializer.gen.ts +117 -0
  331. package/src/extensions/rewards/openapi-ts/core/serverSentEvents.gen.ts +243 -0
  332. package/src/extensions/rewards/openapi-ts/core/types.gen.ts +104 -0
  333. package/src/extensions/rewards/openapi-ts/core/utils.gen.ts +140 -0
  334. package/src/extensions/rewards/openapi-ts/index.ts +4 -0
  335. package/src/extensions/rewards/openapi-ts/sdk.gen.ts +345 -0
  336. package/src/extensions/rewards/openapi-ts/types.gen.ts +1718 -0
  337. package/src/extensions/stellar/create-api.ts +13 -0
  338. package/src/extensions/stellar/index.ts +3 -0
  339. package/src/extensions/stellar/openapi-ts/client/client.gen.ts +288 -0
  340. package/src/extensions/stellar/openapi-ts/client/index.ts +25 -0
  341. package/src/extensions/stellar/openapi-ts/client/types.gen.ts +213 -0
  342. package/src/extensions/stellar/openapi-ts/client/utils.gen.ts +316 -0
  343. package/src/extensions/stellar/openapi-ts/client.gen.ts +16 -0
  344. package/src/extensions/stellar/openapi-ts/core/auth.gen.ts +41 -0
  345. package/src/extensions/stellar/openapi-ts/core/bodySerializer.gen.ts +84 -0
  346. package/src/extensions/stellar/openapi-ts/core/params.gen.ts +169 -0
  347. package/src/extensions/stellar/openapi-ts/core/pathSerializer.gen.ts +171 -0
  348. package/src/extensions/stellar/openapi-ts/core/queryKeySerializer.gen.ts +117 -0
  349. package/src/extensions/stellar/openapi-ts/core/serverSentEvents.gen.ts +243 -0
  350. package/src/extensions/stellar/openapi-ts/core/types.gen.ts +104 -0
  351. package/src/extensions/stellar/openapi-ts/core/utils.gen.ts +140 -0
  352. package/src/extensions/stellar/openapi-ts/index.ts +4 -0
  353. package/src/extensions/stellar/openapi-ts/sdk.gen.ts +1049 -0
  354. package/src/extensions/stellar/openapi-ts/types.gen.ts +3543 -0
  355. package/src/extensions/stellar-testnet/create-api.ts +13 -0
  356. package/src/extensions/stellar-testnet/index.ts +3 -0
  357. package/src/extensions/stellar-testnet/openapi-ts/client/client.gen.ts +288 -0
  358. package/src/extensions/stellar-testnet/openapi-ts/client/index.ts +25 -0
  359. package/src/extensions/stellar-testnet/openapi-ts/client/types.gen.ts +213 -0
  360. package/src/extensions/stellar-testnet/openapi-ts/client/utils.gen.ts +316 -0
  361. package/src/extensions/stellar-testnet/openapi-ts/client.gen.ts +16 -0
  362. package/src/extensions/stellar-testnet/openapi-ts/core/auth.gen.ts +41 -0
  363. package/src/extensions/stellar-testnet/openapi-ts/core/bodySerializer.gen.ts +84 -0
  364. package/src/extensions/stellar-testnet/openapi-ts/core/params.gen.ts +169 -0
  365. package/src/extensions/stellar-testnet/openapi-ts/core/pathSerializer.gen.ts +171 -0
  366. package/src/extensions/stellar-testnet/openapi-ts/core/queryKeySerializer.gen.ts +117 -0
  367. package/src/extensions/stellar-testnet/openapi-ts/core/serverSentEvents.gen.ts +243 -0
  368. package/src/extensions/stellar-testnet/openapi-ts/core/types.gen.ts +104 -0
  369. package/src/extensions/stellar-testnet/openapi-ts/core/utils.gen.ts +140 -0
  370. package/src/extensions/stellar-testnet/openapi-ts/index.ts +4 -0
  371. package/src/extensions/stellar-testnet/openapi-ts/sdk.gen.ts +1049 -0
  372. package/src/extensions/stellar-testnet/openapi-ts/types.gen.ts +3543 -0
  373. package/src/platform/admin/create-api.ts +11 -0
  374. package/src/platform/admin/index.ts +3 -42
  375. package/src/platform/admin/openapi-ts/client/client.gen.ts +288 -0
  376. package/src/platform/admin/openapi-ts/client/index.ts +25 -0
  377. package/src/platform/admin/openapi-ts/client/types.gen.ts +213 -0
  378. package/src/platform/admin/openapi-ts/client/utils.gen.ts +316 -0
  379. package/src/platform/admin/openapi-ts/client.gen.ts +16 -0
  380. package/src/platform/admin/openapi-ts/core/auth.gen.ts +41 -0
  381. package/src/platform/admin/openapi-ts/core/bodySerializer.gen.ts +84 -0
  382. package/src/platform/admin/openapi-ts/core/params.gen.ts +169 -0
  383. package/src/platform/admin/openapi-ts/core/pathSerializer.gen.ts +171 -0
  384. package/src/platform/admin/openapi-ts/core/queryKeySerializer.gen.ts +117 -0
  385. package/src/platform/admin/openapi-ts/core/serverSentEvents.gen.ts +243 -0
  386. package/src/platform/admin/openapi-ts/core/types.gen.ts +104 -0
  387. package/src/platform/admin/openapi-ts/core/utils.gen.ts +140 -0
  388. package/src/platform/admin/openapi-ts/index.ts +4 -0
  389. package/src/platform/admin/openapi-ts/sdk.gen.ts +3975 -0
  390. package/src/platform/admin/openapi-ts/types.gen.ts +31193 -0
  391. package/src/platform/user/create-api.ts +11 -0
  392. package/src/platform/user/index.ts +3 -42
  393. package/src/platform/user/openapi-ts/client/client.gen.ts +288 -0
  394. package/src/platform/user/openapi-ts/client/index.ts +25 -0
  395. package/src/platform/user/openapi-ts/client/types.gen.ts +213 -0
  396. package/src/platform/user/openapi-ts/client/utils.gen.ts +316 -0
  397. package/src/platform/user/openapi-ts/client.gen.ts +16 -0
  398. package/src/platform/user/openapi-ts/core/auth.gen.ts +41 -0
  399. package/src/platform/user/openapi-ts/core/bodySerializer.gen.ts +84 -0
  400. package/src/platform/user/openapi-ts/core/params.gen.ts +169 -0
  401. package/src/platform/user/openapi-ts/core/pathSerializer.gen.ts +171 -0
  402. package/src/platform/user/openapi-ts/core/queryKeySerializer.gen.ts +117 -0
  403. package/src/platform/user/openapi-ts/core/serverSentEvents.gen.ts +243 -0
  404. package/src/platform/user/openapi-ts/core/types.gen.ts +104 -0
  405. package/src/platform/user/openapi-ts/core/utils.gen.ts +140 -0
  406. package/src/platform/user/openapi-ts/index.ts +4 -0
  407. package/src/platform/user/openapi-ts/sdk.gen.ts +2090 -0
  408. package/src/platform/user/openapi-ts/types.gen.ts +19540 -0
  409. package/src/shared/api-utils.ts +22 -0
  410. package/src/shared/bind-sdk.ts +48 -0
  411. package/src/shared/create-api-client.ts +54 -0
  412. package/src/extensions/app/http-client.ts +0 -1
  413. package/src/extensions/app/rehive-app-api.ts +0 -1827
  414. package/src/extensions/bridge/rehive-bridge-api.ts +0 -1436
  415. package/src/extensions/business/rehive-business-api.ts +0 -9480
  416. package/src/extensions/conversion/rehive-conversion-api.ts +0 -3054
  417. package/src/extensions/mass-send/rehive-mass-send-api.ts +0 -1061
  418. package/src/extensions/notifications/rehive-notifications-api.ts +0 -1964
  419. package/src/extensions/payment-requests/rehive-payment-requests-api.ts +0 -4026
  420. package/src/extensions/products/rehive-products-api.ts +0 -13107
  421. package/src/extensions/rewards/rehive-rewards-api.ts +0 -2139
  422. package/src/extensions/stellar/rehive-stellar-api.ts +0 -4219
  423. package/src/extensions/stellar-testnet/rehive-stellar-testnet-api.ts +0 -4219
  424. package/src/platform/admin/rehive-platform-admin-api.ts +0 -35075
  425. package/src/platform/user/rehive-platform-user-api.ts +0 -21554
package/README.md CHANGED
@@ -1,8 +1,8 @@
1
1
  # Rehive SDK
2
2
 
3
- A modern TypeScript SDK for the Rehive platform and extension APIs, providing a unified interface for both server-side and client-side usage.
3
+ A modern, fully typed TypeScript SDK for the Rehive platform and extension APIs. Tree-shakeable modular imports, shared authentication, and full autocomplete on every method.
4
4
 
5
- > **Note:** This is version 3 of the Rehive JavaScript SDK. For the previous version (v2) documentation, please refer to the [v2 branch](https://github.com/rehive/rehive-javascript/tree/v2).
5
+ > **Note:** This is version 4 of the Rehive JavaScript SDK -- a major rewrite with a modular architecture. For v3, see the [v3 branch](https://github.com/rehive/rehive-javascript/tree/v3). For v2, see the [v2 branch](https://github.com/rehive/rehive-javascript/tree/v2).
6
6
 
7
7
  ## Installation
8
8
 
@@ -12,63 +12,72 @@ npm install rehive
12
12
 
13
13
  ## Quick Start
14
14
 
15
- ### Server-side Usage (Permanent Token)
15
+ ### Modular API
16
16
 
17
- Perfect for backend services, webhooks, and admin operations:
17
+ Import only what you need. Each module is tree-shakeable and fully typed.
18
18
 
19
19
  ```typescript
20
- import { RehiveClient } from 'rehive';
21
-
22
- // Initialize with permanent token (baseUrl defaults to https://api.rehive.com)
23
- const rehive = new RehiveClient({
24
- token: 'your-permanent-admin-token'
20
+ import { createAuth } from "rehive/auth";
21
+ import { createUserApi } from "rehive/user";
22
+ import { createAdminApi } from "rehive/admin";
23
+ import { createConversionApi } from "rehive/extensions/conversion";
24
+
25
+ // Create a shared auth instance
26
+ const auth = createAuth({
27
+ baseUrl: "https://api.rehive.com",
28
+ storage: "local", // "local" | "memory" | custom StorageAdapter
25
29
  });
26
30
 
27
- // Or explicitly specify the baseUrl
28
- const rehive = new RehiveClient({
29
- baseUrl: 'https://api.rehive.com',
30
- token: 'your-permanent-admin-token'
31
- });
31
+ // Create API instances -- each uses auth.getToken() automatically
32
+ const user = createUserApi({ auth });
33
+ const admin = createAdminApi({ auth });
34
+ const conversion = createConversionApi({ auth });
32
35
 
33
- // Direct API access - no initialization needed
34
- await rehive.admin.adminUsersCreate({
35
- email: 'user@example.com',
36
- first_name: 'John',
37
- last_name: 'Doe'
38
- });
36
+ // Authenticate
37
+ await auth.login({ user: "email@example.com", password: "pass", company: "myco" });
39
38
 
40
- // User API with admin token (for impersonation)
41
- const userProfile = await rehive.user.userRetrieve();
42
- ```
39
+ // All APIs are now authenticated -- full autocomplete on every method
40
+ await user.userRetrieve();
41
+ await admin.adminUsersList({});
42
+ await conversion.userConversionPairsList({});
43
43
 
44
- ### Client-side Usage (Authentication Flows)
44
+ // Logout
45
+ await auth.logout();
46
+ ```
45
47
 
46
- Perfect for web and mobile applications:
48
+ ### Server-side with permanent token
47
49
 
48
50
  ```typescript
49
- import { RehiveClient } from 'rehive';
51
+ import { createAuth } from "rehive/auth";
52
+ import { createAdminApi } from "rehive/admin";
50
53
 
51
- // Initialize without token (baseUrl defaults to https://api.rehive.com)
52
- const rehive = new RehiveClient();
54
+ const auth = createAuth({ token: "your-permanent-admin-token" });
55
+ const admin = createAdminApi({ auth });
53
56
 
54
- // Or explicitly specify the baseUrl
55
- const rehive = new RehiveClient({
56
- baseUrl: 'https://api.rehive.com'
57
- });
57
+ await admin.adminUsersCreate({ body: { email: "user@example.com" } });
58
+ ```
58
59
 
59
- // Authentication flows
60
- await rehive.auth.login({
61
- user: 'user@example.com',
62
- password: 'secure-password',
63
- company: 'your-company'
64
- });
60
+ ### Authenticated Fetch (for custom endpoints)
65
61
 
66
- // Now all APIs are automatically authenticated
67
- const profile = await rehive.user.userRetrieve();
68
- const accounts = await rehive.user.userAccountsList({});
62
+ For API endpoints not covered by the generated SDK, use `createAuthenticatedFetch` to get a `fetch` function that automatically injects the auth token:
69
63
 
70
- // Logout when done
71
- await rehive.auth.logout();
64
+ ```typescript
65
+ import { createAuth } from "rehive/auth";
66
+ import { createAuthenticatedFetch } from "rehive";
67
+
68
+ const auth = createAuth({ storage: "local" });
69
+ await auth.login({ user: "email@example.com", password: "pass", company: "myco" });
70
+
71
+ // Create an authenticated fetch -- handles token refresh automatically
72
+ const authFetch = createAuthenticatedFetch(auth);
73
+
74
+ // Use it like regular fetch, but with auth headers injected
75
+ const response = await authFetch("https://example.services.rehive.com/api/custom-endpoint/", {
76
+ method: "POST",
77
+ headers: { "Content-Type": "application/json" },
78
+ body: JSON.stringify({ data: { /* ... */ } }),
79
+ });
80
+ const data = await response.json();
72
81
  ```
73
82
 
74
83
  ## React Integration
@@ -76,531 +85,239 @@ await rehive.auth.logout();
76
85
  For a complete working example, see the [interactive demo](./demo).
77
86
 
78
87
  ```typescript
79
- import { useState } from 'react';
80
- import { AuthProvider, useAuth } from 'rehive/react';
88
+ import { AuthProvider, useAuth } from "rehive/react";
81
89
 
82
90
  function App() {
83
91
  return (
84
- <AuthProvider config={{ baseUrl: 'https://api.rehive.com' }}>
85
- <UserDashboard />
92
+ <AuthProvider config={{ baseUrl: "https://api.rehive.com", storage: "local" }}>
93
+ <Dashboard />
86
94
  </AuthProvider>
87
95
  );
88
96
  }
89
97
 
90
- function UserDashboard() {
91
- const { login, logout, session, loading, rehive } = useAuth();
92
- const [userDetails, setUserDetails] = useState(null);
93
- const [isLoadingDetails, setIsLoadingDetails] = useState(false);
94
-
95
- const handleLogin = async () => {
96
- await login({
97
- user: 'email@example.com',
98
- password: 'password',
99
- company: 'my-company'
100
- });
101
- };
102
-
103
- const fetchUserDetails = async () => {
104
- setIsLoadingDetails(true);
105
- try {
106
- const response = await rehive.user.userRetrieve();
107
- setUserDetails(response.data);
108
- } catch (error) {
109
- console.error('Failed to fetch user details:', error);
110
- } finally {
111
- setIsLoadingDetails(false);
112
- }
113
- };
114
-
115
- if (loading) return <div>Loading...</div>;
116
-
117
- if (!session) {
118
- return <button onClick={handleLogin}>Login</button>;
98
+ function Dashboard() {
99
+ const { authUser, authLoading, login, logout, auth } = useAuth();
100
+
101
+ if (authLoading) return <div>Loading...</div>;
102
+
103
+ if (!authUser) {
104
+ return (
105
+ <button onClick={() => login({ user: "email@example.com", password: "pass", company: "myco" })}>
106
+ Login
107
+ </button>
108
+ );
119
109
  }
120
110
 
121
111
  return (
122
112
  <div>
123
- <h2>Welcome, {session.user.email}</h2>
113
+ <p>Logged in as {authUser.user.email}</p>
124
114
  <button onClick={logout}>Logout</button>
125
-
126
- <div>
127
- <button onClick={fetchUserDetails} disabled={isLoadingDetails}>
128
- {isLoadingDetails ? 'Loading...' : 'Fetch User Details'}
129
- </button>
130
-
131
- {userDetails && (
132
- <div>
133
- <h3>User Details</h3>
134
- <p>ID: {userDetails.id}</p>
135
- <p>Name: {userDetails.first_name} {userDetails.last_name}</p>
136
- <p>Status: {userDetails.status}</p>
137
- <p>Verified: {userDetails.verified ? 'Yes' : 'No'}</p>
138
- </div>
139
- )}
140
- </div>
141
115
  </div>
142
116
  );
143
117
  }
144
118
  ```
145
119
 
120
+ The `useAuth` hook provides: `authUser`, `authLoading`, `authError`, `login`, `register`, `registerCompany`, `logout`, `logoutAll`, `refresh`, `getSessions`, `switchToSession`, `clearAllSessions`, `deleteChallenge`, and `auth` (the `Auth` instance for creating modular API clients).
121
+
146
122
  ## Extension APIs
147
123
 
148
- All extension APIs work the same way with automatic token synchronization:
124
+ All 15 extension APIs follow the same pattern -- import the factory, pass `auth`, call methods:
149
125
 
150
126
  ```typescript
151
- // All extensions work the same way - no imports needed
152
- const conversion = rehive.extensions.conversion();
153
- await conversion.user.userConversionPairsList({});
154
- await conversion.admin.adminConversionRatesList({});
155
-
156
- const rewards = rehive.extensions.rewards();
157
- await rewards.user.userRewardsList({});
158
-
159
- const products = rehive.extensions.products();
160
- await products.user.userProductsList({});
161
-
162
- const notifications = rehive.extensions.notifications();
163
- await notifications.user.userNotificationsList({});
164
-
165
- const app = rehive.extensions.app();
166
- await app.user.userAppsRetrieve({});
167
-
168
- // Custom environment URLs (same pattern for all extensions)
169
- const stagingConversion = rehive.extensions.conversion({
170
- baseUrl: 'https://onversion.services.rehive.com/api/'
171
- });
172
-
173
- const stagingRewards = rehive.extensions.rewards({
174
- baseUrl: 'https://rewards.services.rehive.com/api/'
127
+ import { createConversionApi } from "rehive/extensions/conversion";
128
+ import { createRewardsApi } from "rehive/extensions/rewards";
129
+ import { createStellarApi } from "rehive/extensions/stellar";
130
+ import { createProductsApi } from "rehive/extensions/products";
131
+ import { createNotificationsApi } from "rehive/extensions/notifications";
132
+ import { createMassSendApi } from "rehive/extensions/mass-send";
133
+ import { createStellarTestnetApi } from "rehive/extensions/stellar-testnet";
134
+ import { createBusinessApi } from "rehive/extensions/business";
135
+ import { createPaymentRequestsApi } from "rehive/extensions/payment-requests";
136
+ import { createBridgeApi } from "rehive/extensions/bridge";
137
+ import { createAppApi } from "rehive/extensions/app";
138
+ import { createBillingApi } from "rehive/extensions/billing";
139
+ import { createBuilderApi } from "rehive/extensions/builder";
140
+ import { createRainApi } from "rehive/extensions/rain";
141
+ import { createAlchemyApi } from "rehive/extensions/alchemy";
142
+
143
+ const conversion = createConversionApi({ auth });
144
+ const rewards = createRewardsApi({ auth });
145
+ const stellar = createStellarApi({ auth });
146
+
147
+ // Each uses its default production base URL, or pass a custom one:
148
+ const conversionStaging = createConversionApi({
149
+ auth,
150
+ baseUrl: "https://staging-conversion.services.rehive.com/api/",
175
151
  });
176
152
  ```
177
153
 
178
- ### Custom Extensions and Ad-hoc API Calls
179
-
180
- For custom extensions or one-off API calls, use the authenticated fetch method:
154
+ | Extension | Default Base URL |
155
+ |-----------|-----------------|
156
+ | Conversion | `https://conversion.services.rehive.com/api/` |
157
+ | Mass Send | `https://mass-send.services.rehive.com/api/` |
158
+ | Notifications | `https://notification.services.rehive.com/api/` |
159
+ | Products | `https://product.services.rehive.com/api/` |
160
+ | Rewards | `https://reward.services.rehive.com/api/` |
161
+ | Stellar | `https://stellar.services.rehive.com/api/` |
162
+ | Stellar Testnet | `https://stellar-testnet.services.rehive.com/api/` |
163
+ | Business | `https://business.services.rehive.com/api/` |
164
+ | Payment Requests | `https://payment-requests.services.rehive.com/api/` |
165
+ | Bridge | `https://bridge.services.rehive.com/api/` |
166
+ | App | `https://app.services.rehive.com/api/` |
167
+ | Billing | `https://billing.services.rehive.com/api/` |
168
+ | Builder | `https://builder.services.rehive.com/api/` |
169
+ | Rain | `https://rain.services.rehive.com/api/` |
170
+ | Alchemy | `https://alchemy.services.rehive.com/api/` |
171
+
172
+ ## Error Handling
173
+
174
+ The SDK throws `ApiError` on non-200 responses:
181
175
 
182
176
  ```typescript
183
- // GET request to custom extension
184
- const response = await rehive.extensions.fetch('https://my-custom.services.rehive.com/api/users');
185
- const users = await response.json();
186
-
187
- // POST request with data
188
- const response = await rehive.extensions.fetch('https://my-custom.services.rehive.com/api/orders', {
189
- method: 'POST',
190
- headers: { 'Content-Type': 'application/json' },
191
- body: JSON.stringify({ product_id: 123, quantity: 2 })
192
- });
193
-
194
- // Works with any HTTP endpoint - automatically handles authentication
195
- const response = await rehive.extensions.fetch('https://api.external-service.com/data', {
196
- method: 'GET',
197
- headers: { 'X-Custom-Header': 'value' }
198
- });
199
- ```
200
-
201
- **Key Benefits:**
202
- - **Automatic authentication**: Attaches current user token to requests
203
- - **Token refresh**: Automatically refreshes expired tokens
204
- - **Works anywhere**: Use with any HTTP endpoint, not just Rehive services
205
- - **Standard fetch API**: Same interface as native `fetch()` with auth handling
206
-
207
- ## API Responses and Error Handling
208
-
209
- ### Response Structure
210
-
211
- All API methods return responses in a consistent format that matches the Rehive API structure:
212
-
213
- ```typescript
214
- // API responses have a standard structure
215
- const user = await rehive.user.authRetrieve();
216
- console.log(user.data.email); // Access user data
217
-
218
- const accounts = await rehive.user.userAccountsList({});
219
- console.log(accounts.data.results); // Access account list
220
- ```
221
-
222
- **Response Format:**
223
- ```typescript
224
- {
225
- status: "success",
226
- data: {
227
- // Your actual data here
228
- id: "user-id",
229
- email: "user@example.com",
230
- // ... other properties
231
- }
232
- }
233
- ```
234
-
235
- ### Error Handling
236
-
237
- The SDK provides error handling through the `ApiError` class:
238
-
239
- ```typescript
240
- import { RehiveClient, ApiError } from 'rehive';
177
+ import { ApiError } from "rehive";
241
178
 
242
179
  try {
243
- const user = await rehive.user.authRetrieve();
244
- console.log('User:', user.data.email);
180
+ await user.userRetrieve();
245
181
  } catch (error) {
246
182
  if (error instanceof ApiError) {
247
- // Structured API errors from Rehive
248
- console.log('Status Code:', error.status); // 401, 400, 500, etc.
249
- console.log('Error Message:', error.message); // Human-readable message
250
- console.log('Error Details:', error.error); // Full API error response
251
-
252
- // Handle specific error types
253
- switch (error.status) {
254
- case 401:
255
- console.log('Authentication required');
256
- // Redirect to login
257
- break;
258
- case 400:
259
- console.log('Bad request:', error.error.data);
260
- // Show validation errors
261
- break;
262
- case 429:
263
- console.log('Rate limited - retry later');
264
- break;
265
- default:
266
- console.log('API error:', error.message);
267
- }
268
- } else {
269
- // Network errors, timeouts, etc.
270
- console.error('Network error:', error.message);
271
- }
272
- }
273
- ```
274
-
275
- **Common Error Scenarios:**
276
-
277
- | Status Code | Description | Common Causes |
278
- |-------------|-------------|---------------|
279
- | `400` | Bad Request | Missing required fields, invalid data format |
280
- | `401` | Unauthorized | Missing or invalid authentication token |
281
- | `403` | Forbidden | Insufficient permissions for the operation |
282
- | `404` | Not Found | Resource doesn't exist or user lacks access |
283
- | `429` | Rate Limited | Too many requests - implement retry logic |
284
- | `500` | Server Error | Internal server error - retry or contact support |
285
-
286
- **Error Response Structure:**
287
- ```typescript
288
- // ApiError properties
289
- {
290
- status: 400, // HTTP status code
291
- message: "Validation failed", // Human-readable message
292
- error: { // Full API response
293
- status: "error",
294
- message: "Validation failed",
295
- data: {
296
- email: ["This field is required"],
297
- password: ["Password too short"]
298
- }
183
+ console.log("Status:", error.status); // 401, 400, 500, etc.
184
+ console.log("Message:", error.message); // Human-readable message
185
+ console.log("Details:", error.error); // Full API error response
299
186
  }
300
187
  }
301
188
  ```
302
189
 
303
- ### Authentication Error Handling
304
-
305
- The SDK provides specialized handlers for authentication flows:
190
+ Subscribe to auth errors for global handling:
306
191
 
307
192
  ```typescript
308
- // Subscribe to authentication errors
309
- const unsubscribe = rehive.auth.subscribeToErrors((error) => {
193
+ const unsubscribe = auth.subscribeToErrors((error) => {
310
194
  if (error) {
311
- console.error('Auth error:', error.message);
312
-
313
- // Handle different auth error types
314
- if (error.status === 401) {
315
- // Token expired or invalid
316
- window.location.href = '/login';
317
- } else if (error.status === 400) {
318
- // Invalid credentials
319
- showErrorMessage('Invalid email or password');
320
- }
195
+ console.error("Auth error:", error.message);
321
196
  }
322
197
  });
323
-
324
- // Subscribe to session changes
325
- const unsubscribeSession = rehive.auth.subscribeToSession((session) => {
326
- if (session) {
327
- console.log('User logged in:', session.user.email);
328
- // Update UI for authenticated state
329
- } else {
330
- console.log('User logged out');
331
- // Update UI for unauthenticated state
332
- }
333
- });
334
-
335
- // Clean up subscriptions
336
- unsubscribe();
337
- unsubscribeSession();
338
198
  ```
339
199
 
340
- ## Key Features
200
+ ## Multi-Session Support
341
201
 
342
- ### Smart Token Management
343
- - **Automatic refresh**: Tokens refresh 30 seconds before expiration
344
- - **Cross-API sync**: All API instances share the same authentication state
345
- - **Persistent sessions**: Authentication survives page reloads
346
- - **Cross-tab sync**: Authentication state syncs across browser tabs
347
-
348
- ### ✅ Extension Integration
349
- - **Factory methods**: Built-in methods for all Rehive extensions
350
- - **Default URLs**: Production URLs configured by default
351
- - **Environment flexibility**: Easy to override for staging/development
352
- - **Same DX**: Extensions get the same token management and response unwrapping
353
-
354
- ## Architecture
355
-
356
- The SDK includes multiple API clients generated from swagger specifications:
357
-
358
- ```
359
- src/
360
- ├── platform/
361
- │ ├── user/ # Platform User API (203 methods)
362
- │ └── admin/ # Platform Admin API (360 methods)
363
- ├── extensions/ # Service Extensions
364
- │ ├── conversion/ # 60 methods
365
- │ ├── mass-send/ # 18 methods
366
- │ ├── notifications/ # 37 methods
367
- │ ├── products/ # 241 methods
368
- │ ├── rewards/ # 30 methods
369
- │ ├── stellar/ # 101 methods
370
- │ ├── stellar-testnet/# 101 methods
371
- │ ├── business/ # 84 methods
372
- │ ├── payment-requests/# 77 methods
373
- │ ├── bridge/ # 27 methods
374
- │ └── app/ # 46 methods
375
- ├── shared/
376
- │ └── http-client.ts # Shared/customized HTTP client
377
- └── auth/ # Auth functionality using Platform User API
378
- ```
379
-
380
- ## Available APIs
381
-
382
- | API | Client Name | Methods | Documentation |
383
- |-----|-------------|---------|---------------|
384
- | Platform User API | `platform-user-api` | 203 | [Methods](./docs/api-methods/platform-user-methods.md) |
385
- | Platform Admin API | `platform-admin-api` | 360 | [Methods](./docs/api-methods/platform-admin-methods.md) |
386
- | Conversion Extension | `conversion-api` | 60 | [Methods](./docs/api-methods/conversion-methods.md) |
387
- | Mass Send Extension | `mass-send-api` | 18 | [Methods](./docs/api-methods/mass-send-methods.md) |
388
- | Notifications Extension | `notifications-api` | 37 | [Methods](./docs/api-methods/notifications-methods.md) |
389
- | Products Extension | `products-api` | 241 | [Methods](./docs/api-methods/products-methods.md) |
390
- | Rewards Extension | `rewards-api` | 30 | [Methods](./docs/api-methods/rewards-methods.md) |
391
- | Stellar Extension | `stellar-api` | 101 | [Methods](./docs/api-methods/stellar-methods.md) |
392
- | Stellar Testnet Extension | `stellar-testnet-api` | 101 | [Methods](./docs/api-methods/stellar-testnet-methods.md) |
393
- | Business Extension | `business-api` | 84 | [Methods](./docs/api-methods/business-methods.md) |
394
- | Payment Requests Extension | `payment-requests-api` | 77 | [Methods](./docs/api-methods/payment-requests-methods.md) |
395
- | Bridge Extension | `bridge-api` | 27 | [Methods](./docs/api-methods/bridge-methods.md) |
396
- | App Extension | `app-api` | 46 | [Methods](./docs/api-methods/app-methods.md) |
397
-
398
- **Total: 1,385 API methods across platform and extensions**
399
-
400
- 📋 [View complete API overview](./docs/api-methods-overview.md)
401
-
402
- ## Advanced Usage
403
-
404
- ### Multi-Company Session Management
405
-
406
- The SDK supports managing multiple sessions for the same user across different companies. This is useful for applications where users can be authenticated to multiple companies simultaneously.
202
+ The auth module supports multiple concurrent sessions across different companies:
407
203
 
408
204
  ```typescript
409
- // Login to first company
410
- await rehive.auth.login({
411
- user: 'user@example.com',
412
- password: 'password',
413
- company: 'company-one'
414
- });
415
-
416
- // Login to second company (adds a new session)
417
- await rehive.auth.login({
418
- user: 'user@example.com',
419
- password: 'password',
420
- company: 'company-two'
421
- });
422
-
423
- // Get all active sessions
424
- const sessions = rehive.auth.getSessions();
425
- console.log(`You have ${sessions.length} active sessions`);
426
-
427
- // Get sessions for a specific company
428
- const companyOneSessions = rehive.auth.getSessionsByCompany('company-one');
429
-
430
- // Switch between sessions without re-authenticating
431
- await rehive.auth.switchToSession('user-id', 'company-two');
432
-
433
- // All subsequent API calls will use the active session
434
- const profile = await rehive.user.userRetrieve(); // Uses company-two session
435
-
436
- // Clear all sessions locally (fast, but doesn't invalidate tokens on server)
437
- await rehive.auth.clearAllSessions();
438
-
439
- // Logout all sessions on the server (slower, but properly invalidates all tokens)
440
- await rehive.auth.logoutAll();
205
+ // Login to multiple companies
206
+ await auth.login({ user: "user@example.com", password: "pass", company: "company-one" });
207
+ await auth.login({ user: "user@example.com", password: "pass", company: "company-two" });
208
+
209
+ // List and switch sessions
210
+ const sessions = auth.getSessions(); // All sessions
211
+ const filtered = auth.getSessionsByCompany("company-one"); // By company
212
+ await auth.switchToSession("user-id", "company-two"); // Switch active
213
+
214
+ // Cleanup
215
+ await auth.clearAllSessions(); // Local only
216
+ await auth.logoutAll(); // Invalidates tokens on server
441
217
  ```
442
218
 
443
- **Key Features:**
444
- - **Multiple sessions per user**: Maintain separate sessions for different companies
445
- - **Seamless switching**: Change active session without re-authentication
446
- - **Automatic token refresh**: Sessions are refreshed automatically when switching
447
- - **Company tracking**: Each session stores the company identifier for easy lookup
219
+ ## Storage Options
448
220
 
449
- **React Integration:**
450
221
  ```typescript
451
- import { useAuth } from 'rehive/react';
452
-
453
- function SessionSwitcher() {
454
- const {
455
- getSessions,
456
- getSessionsByCompany,
457
- switchToSession,
458
- clearAllSessions,
459
- logoutAll
460
- } = useAuth();
461
-
462
- const sessions = getSessions();
463
-
464
- // Group sessions by company
465
- const sessionsByCompany = sessions.reduce((acc, session) => {
466
- const company = session.company || 'unknown';
467
- if (!acc[company]) acc[company] = [];
468
- acc[company].push(session);
469
- return acc;
470
- }, {});
471
-
472
- const handleSwitch = async (userId, company) => {
473
- await switchToSession(userId, company);
474
- // UI automatically updates via session listeners
475
- };
476
-
477
- const handleClearAll = async () => {
478
- if (confirm('Clear all sessions locally?')) {
479
- await clearAllSessions();
480
- }
481
- };
482
-
483
- const handleLogoutAll = async () => {
484
- if (confirm('Logout all sessions on server?')) {
485
- await logoutAll();
486
- }
487
- };
488
-
489
- return (
490
- <div>
491
- {Object.entries(sessionsByCompany).map(([company, sessions]) => (
492
- <div key={company}>
493
- <h3>{company}</h3>
494
- {sessions.map(session => (
495
- <button
496
- key={session.user.id}
497
- onClick={() => handleSwitch(session.user.id, session.company)}
498
- >
499
- {session.user.email}
500
- </button>
501
- ))}
502
- </div>
503
- ))}
504
-
505
- <button onClick={handleClearAll}>Clear All Sessions</button>
506
- <button onClick={handleLogoutAll}>Logout All Sessions</button>
507
- </div>
508
- );
509
- }
222
+ import { createAuth } from "rehive/auth";
223
+ import { WebStorageAdapter, MemoryStorageAdapter, AsyncStorageAdapter } from "rehive";
224
+
225
+ // localStorage (default in browser, auto-detected)
226
+ const auth = createAuth({ storage: "local" });
227
+
228
+ // In-memory (not persisted -- good for tests)
229
+ const auth = createAuth({ storage: "memory" });
230
+
231
+ // Custom adapter (e.g. React Native AsyncStorage)
232
+ import AsyncStorage from "@react-native-async-storage/async-storage";
233
+ const auth = createAuth({ storage: new AsyncStorageAdapter(AsyncStorage) });
234
+
235
+ // Or implement your own StorageAdapter
236
+ const auth = createAuth({
237
+ storage: {
238
+ getItem: async (key) => { /* ... */ },
239
+ setItem: async (key, value) => { /* ... */ },
240
+ removeItem: async (key) => { /* ... */ },
241
+ },
242
+ });
510
243
  ```
511
244
 
512
- ### Error Handling
245
+ ## Auth Configuration
513
246
 
514
247
  ```typescript
515
- // Subscribe to auth errors
516
- const unsubscribe = rehive.auth.subscribeToErrors((error) => {
517
- if (error) {
518
- console.error('Auth error:', error.message);
519
- // Handle login redirect, show error message, etc.
520
- }
521
- });
248
+ import { createAuth, type AuthConfig } from "rehive/auth";
522
249
 
523
- // Subscribe to session changes
524
- const unsubscribeSession = rehive.auth.subscribeToSession((session) => {
525
- if (session) {
526
- console.log('User logged in:', session.user.email);
527
- } else {
528
- console.log('User logged out');
529
- }
250
+ const auth = createAuth({
251
+ baseUrl: "https://api.rehive.com", // API base URL (default: https://api.rehive.com)
252
+ storage: "local", // Storage adapter or shorthand
253
+ token: "permanent-token", // Server-side permanent token
254
+ enableCrossTabSync: true, // Sync auth across browser tabs (default: true)
530
255
  });
531
256
  ```
532
257
 
533
- ### Custom Storage
534
-
535
- ```typescript
536
- import { RehiveClient, MemoryStorageAdapter } from 'rehive';
258
+ ## Architecture
537
259
 
538
- const rehive = new RehiveClient({
539
- baseUrl: 'https://api.rehive.com',
540
- storage: new MemoryStorageAdapter(), // Won't persist across page reloads
541
- enableCrossTabSync: false // Disable cross-tab synchronization
542
- });
260
+ ```
261
+ rehive/
262
+ ├── rehive/auth → createAuth()
263
+ ├── rehive/user → createUserApi()
264
+ ├── rehive/admin → createAdminApi()
265
+ ├── rehive/extensions/* → create*Api() for each extension
266
+ ├── rehive/react → AuthProvider, useAuth
267
+ └── rehive → re-exports + utilities
543
268
  ```
544
269
 
545
- ## TypeScript Support
546
-
547
- The SDK is fully typed with TypeScript support:
270
+ Each module is a separate entry point with its own bundle. Import only the factories you need for optimal tree-shaking.
548
271
 
549
- ```typescript
550
- import { RehiveClient, type RehiveConfig, type UserSession } from 'rehive';
272
+ ### How it works
551
273
 
552
- const config: RehiveConfig = {
553
- baseUrl: 'https://api.rehive.com',
554
- token: 'optional-permanent-token'
555
- };
274
+ 1. `createAuth()` manages sessions, tokens, and refresh internally using its own openapi-ts client
275
+ 2. Each API factory (`createUserApi`, `createAdminApi`, etc.) creates an openapi-ts client configured with `auth: () => auth.getToken()`
276
+ 3. `bindSdk()` injects the client into every generated SDK function, preserving full type safety
277
+ 4. All methods use v4 structured parameters: `{ query, body, path }`
556
278
 
557
- const rehive = new RehiveClient(config);
279
+ ## Available APIs
558
280
 
559
- // Full type safety on all API methods
560
- const session: UserSession = await rehive.auth.login({
561
- user: 'email@example.com',
562
- password: 'password',
563
- company: 'company-name'
564
- });
565
- ```
281
+ | API | Import | Methods |
282
+ |-----|--------|---------|
283
+ | Platform User | `rehive/user` | 203 |
284
+ | Platform Admin | `rehive/admin` | 360 |
285
+ | Conversion | `rehive/extensions/conversion` | 60 |
286
+ | Mass Send | `rehive/extensions/mass-send` | 18 |
287
+ | Notifications | `rehive/extensions/notifications` | 37 |
288
+ | Products | `rehive/extensions/products` | 241 |
289
+ | Rewards | `rehive/extensions/rewards` | 30 |
290
+ | Stellar | `rehive/extensions/stellar` | 101 |
291
+ | Stellar Testnet | `rehive/extensions/stellar-testnet` | 101 |
292
+ | Business | `rehive/extensions/business` | 84 |
293
+ | Payment Requests | `rehive/extensions/payment-requests` | 77 |
294
+ | Bridge | `rehive/extensions/bridge` | 27 |
295
+ | App | `rehive/extensions/app` | 46 |
296
+ | Billing | `rehive/extensions/billing` | 13 |
297
+ | Builder | `rehive/extensions/builder` | 5 |
298
+ | Rain | `rehive/extensions/rain` | 26 |
299
+ | Alchemy | `rehive/extensions/alchemy` | 20 |
300
+
301
+ **Total: 1,449 typed API methods across platform and extensions**
566
302
 
567
303
  ## Development
568
304
 
569
- ### Building the SDK
570
-
571
305
  ```bash
306
+ # Build
572
307
  npm run build
573
- ```
574
-
575
- ### Updating API Clients
576
-
577
- The SDK uses generated API clients from swagger specifications. To update them:
578
-
579
- ```bash
580
- # Extract current API methods for reference
581
- node scripts/extract-api-methods.js
582
-
583
- # Follow the code generation workflow
584
- ```
585
308
 
586
- 📖 [Complete code generation guide](./CODEGEN.md)
309
+ # Type check
310
+ npm run typecheck
587
311
 
588
- ### Testing
312
+ # Run tests
313
+ npm test
589
314
 
590
- ```bash
591
- npm run dev
315
+ # Regenerate API clients from OpenAPI specs
316
+ npm run codegen:openapi-ts
592
317
  ```
593
318
 
594
- ## Documentation
595
-
596
- - **[API Methods Overview](./docs/api-methods-overview.md)** - Complete list of all available API methods
597
- - **[Code Generation Workflow](./CODEGEN.md)** - How to update generated API clients
598
- - **Individual API Documentation** - Detailed method lists for each API in `docs/api-methods/`
319
+ See [CODEGEN.md](./CODEGEN.md) for the full code generation workflow.
599
320
 
600
321
  ## License
601
322
 
602
323
  MIT License
603
-
604
- ---
605
-
606
- This modern SDK design follows current best practices and provides a clean, intuitive developer experience for both server-side and client-side usage.