rehive 3.1.4 → 4.1.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 -506
  2. package/dist/admin.d.mts +31507 -0
  3. package/dist/admin.d.ts +31507 -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-7WQMKBQ6.js +7 -0
  11. package/dist/chunk-CUQ6U73E.mjs +1 -0
  12. package/dist/chunk-DRLSOKDI.js +7 -0
  13. package/dist/chunk-GR5TETAU.js +1 -0
  14. package/dist/chunk-JK4JOKBZ.js +1 -0
  15. package/dist/chunk-KQ5BJOW2.mjs +1 -0
  16. package/dist/chunk-KUM3UI4C.mjs +7 -0
  17. package/dist/chunk-OEIQFP6T.js +1 -0
  18. package/dist/chunk-S4QKN5WW.mjs +1 -0
  19. package/dist/chunk-S5UXBHRU.mjs +1 -0
  20. package/dist/chunk-UMUOM4B2.mjs +7 -0
  21. package/dist/chunk-YRYX3G3E.js +1 -0
  22. package/dist/create-api-client-2vNCP2LN.d.mts +25 -0
  23. package/dist/create-api-client-D-Z8R83N.d.ts +25 -0
  24. package/dist/create-auth-CHzmb_8_.d.mts +18570 -0
  25. package/dist/create-auth-CHzmb_8_.d.ts +18570 -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 +214 -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 +214 -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 +214 -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 +214 -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 +214 -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 +214 -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 +214 -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 +214 -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 +214 -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 +214 -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 +214 -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 +214 -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 +214 -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 +214 -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 +214 -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 +214 -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 +31428 -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 +214 -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 +19780 -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 +55 -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,543 +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
 
146
- ## Extension APIs
147
-
148
- All extension APIs work the same way with automatic token synchronization:
149
-
150
- ```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({});
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).
167
121
 
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/'
175
- });
176
- ```
177
-
178
- ### Custom Extensions and Ad-hoc API Calls
122
+ ## Extension APIs
179
123
 
180
- For custom extensions or one-off API calls, use the authenticated fetch method:
124
+ All 15 extension APIs follow the same pattern -- import the factory, pass `auth`, call methods:
181
125
 
182
126
  ```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' }
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/",
198
151
  });
199
152
  ```
200
153
 
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:
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:
238
175
 
239
176
  ```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);
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
271
186
  }
272
187
  }
273
188
  ```
274
189
 
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
- }
299
- }
300
- }
301
- ```
302
-
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
- }
510
- ```
511
-
512
- ### Error Handling
513
-
514
- ```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
- });
522
-
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
- }
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
+ },
530
242
  });
531
243
  ```
532
244
 
533
- ### Custom Storage
245
+ ## Auth Configuration
534
246
 
535
247
  ```typescript
536
- import { RehiveClient, MemoryStorageAdapter } from 'rehive';
248
+ import { createAuth, type AuthConfig } from "rehive/auth";
537
249
 
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
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)
542
255
  });
543
256
  ```
544
257
 
545
- ## TypeScript Support
546
-
547
- The SDK is fully typed with TypeScript support:
548
-
549
- ```typescript
550
- import { RehiveClient, type RehiveConfig, type UserSession } from 'rehive';
551
-
552
- const config: RehiveConfig = {
553
- baseUrl: 'https://api.rehive.com',
554
- token: 'optional-permanent-token'
555
- };
556
-
557
- const rehive = new RehiveClient(config);
258
+ ## Architecture
558
259
 
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
260
  ```
566
-
567
- ## Development
568
-
569
- ### Building the SDK
570
-
571
- ```bash
572
- npm run build
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
573
268
  ```
574
269
 
575
- ### Updating API Clients
270
+ Each module is a separate entry point with its own bundle. Import only the factories you need for optimal tree-shaking.
576
271
 
577
- The SDK uses generated API clients from swagger specifications. To update them:
272
+ ### How it works
578
273
 
579
- ```bash
580
- # Extract current API methods for reference
581
- node scripts/extract-api-methods.js
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 }`
582
278
 
583
- # Follow the code generation workflow
584
- ```
279
+ ## Available APIs
585
280
 
586
- 📖 [Complete code generation guide](./CODEGEN.md)
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**
587
302
 
588
- ### Testing
303
+ ## Development
589
304
 
590
305
  ```bash
591
- npm run dev
592
- ```
306
+ # Build
307
+ npm run build
593
308
 
594
- ### Publishing
309
+ # Type check
310
+ npm run typecheck
595
311
 
596
- ```bash
597
- # Bump version (choose one)
598
- npm version patch # e.g. 3.1.4 → 3.1.5
599
- npm version minor # e.g. 3.1.4 → 3.2.0
600
- npm version major # e.g. 3.1.4 → 4.0.0
312
+ # Run tests
313
+ npm test
601
314
 
602
- # Publish to npm (builds automatically via prepublishOnly)
603
- npm publish
315
+ # Regenerate API clients from OpenAPI specs
316
+ npm run codegen:openapi-ts
604
317
  ```
605
318
 
606
- ## Documentation
607
-
608
- - **[API Methods Overview](./docs/api-methods-overview.md)** - Complete list of all available API methods
609
- - **[Code Generation Workflow](./CODEGEN.md)** - How to update generated API clients
610
- - **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.
611
320
 
612
321
  ## License
613
322
 
614
323
  MIT License
615
-
616
- ---
617
-
618
- This modern SDK design follows current best practices and provides a clean, intuitive developer experience for both server-side and client-side usage.