@stardeckai/autumn-js 0.1.85

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 (536) hide show
  1. package/LICENSE.md +7 -0
  2. package/README.md +12 -0
  3. package/dist/libraries/backend/balancesTypes-BrQjQCw3.d.ts +1822 -0
  4. package/dist/libraries/backend/balancesTypes-Dk9mLKO8.d.mts +1822 -0
  5. package/dist/libraries/backend/better-auth.d.mts +772 -0
  6. package/dist/libraries/backend/better-auth.d.ts +772 -0
  7. package/dist/libraries/backend/better-auth.js +2872 -0
  8. package/dist/libraries/backend/better-auth.mjs +482 -0
  9. package/dist/libraries/backend/chunk-4LJK3VUJ.mjs +48 -0
  10. package/dist/libraries/backend/chunk-7AOVJSWM.mjs +158 -0
  11. package/dist/libraries/backend/chunk-ENC3BP6R.mjs +53 -0
  12. package/dist/libraries/backend/chunk-IZDJ3I6T.mjs +1749 -0
  13. package/dist/libraries/backend/chunk-KSG3E4Q2.mjs +8 -0
  14. package/dist/libraries/backend/chunk-LM7CBUUT.mjs +95 -0
  15. package/dist/libraries/backend/chunk-NRKSUO62.mjs +115 -0
  16. package/dist/libraries/backend/chunk-SGEUXFOF.mjs +40 -0
  17. package/dist/libraries/backend/chunk-SRJD6EXQ.mjs +104 -0
  18. package/dist/libraries/backend/chunk-UNZHJTEY.mjs +18 -0
  19. package/dist/libraries/backend/chunk-ZGBFNNRL.mjs +78 -0
  20. package/dist/libraries/backend/chunk-ZW3KBZDU.mjs +30 -0
  21. package/dist/libraries/backend/constants.d.mts +4 -0
  22. package/dist/libraries/backend/constants.d.ts +4 -0
  23. package/dist/libraries/backend/constants.js +33 -0
  24. package/dist/libraries/backend/constants.mjs +8 -0
  25. package/dist/libraries/backend/convex.d.mts +16 -0
  26. package/dist/libraries/backend/convex.d.ts +16 -0
  27. package/dist/libraries/backend/convex.js +2468 -0
  28. package/dist/libraries/backend/convex.mjs +164 -0
  29. package/dist/libraries/backend/elysia.d.mts +35 -0
  30. package/dist/libraries/backend/elysia.d.ts +35 -0
  31. package/dist/libraries/backend/elysia.js +2399 -0
  32. package/dist/libraries/backend/elysia.mjs +102 -0
  33. package/dist/libraries/backend/express.d.mts +16 -0
  34. package/dist/libraries/backend/express.d.ts +16 -0
  35. package/dist/libraries/backend/express.js +2371 -0
  36. package/dist/libraries/backend/express.mjs +72 -0
  37. package/dist/libraries/backend/fastify.d.mts +9 -0
  38. package/dist/libraries/backend/fastify.d.ts +9 -0
  39. package/dist/libraries/backend/fastify.js +2368 -0
  40. package/dist/libraries/backend/fastify.mjs +69 -0
  41. package/dist/libraries/backend/hono.d.mts +12 -0
  42. package/dist/libraries/backend/hono.d.ts +12 -0
  43. package/dist/libraries/backend/hono.js +2365 -0
  44. package/dist/libraries/backend/hono.mjs +66 -0
  45. package/dist/libraries/backend/index.d.mts +25 -0
  46. package/dist/libraries/backend/index.d.ts +25 -0
  47. package/dist/libraries/backend/index.js +2376 -0
  48. package/dist/libraries/backend/index.mjs +74 -0
  49. package/dist/libraries/backend/next.d.mts +13 -0
  50. package/dist/libraries/backend/next.d.ts +13 -0
  51. package/dist/libraries/backend/next.js +2395 -0
  52. package/dist/libraries/backend/next.mjs +94 -0
  53. package/dist/libraries/backend/react-router.d.mts +12 -0
  54. package/dist/libraries/backend/react-router.d.ts +12 -0
  55. package/dist/libraries/backend/react-router.js +2396 -0
  56. package/dist/libraries/backend/react-router.mjs +97 -0
  57. package/dist/libraries/backend/remix_dep.d.mts +15 -0
  58. package/dist/libraries/backend/remix_dep.d.ts +15 -0
  59. package/dist/libraries/backend/remix_dep.js +2360 -0
  60. package/dist/libraries/backend/remix_dep.mjs +73 -0
  61. package/dist/libraries/backend/response-BBvvMvoC.d.mts +30 -0
  62. package/dist/libraries/backend/response-BBvvMvoC.d.ts +30 -0
  63. package/dist/libraries/backend/routes/analyticsRoutes.d.mts +6 -0
  64. package/dist/libraries/backend/routes/analyticsRoutes.d.ts +6 -0
  65. package/dist/libraries/backend/routes/analyticsRoutes.js +1936 -0
  66. package/dist/libraries/backend/routes/analyticsRoutes.mjs +10 -0
  67. package/dist/libraries/backend/routes/backendRouter.d.mts +12 -0
  68. package/dist/libraries/backend/routes/backendRouter.d.ts +12 -0
  69. package/dist/libraries/backend/routes/backendRouter.js +2304 -0
  70. package/dist/libraries/backend/routes/backendRouter.mjs +15 -0
  71. package/dist/libraries/backend/routes/basePath.d.mts +2 -0
  72. package/dist/libraries/backend/routes/basePath.d.ts +2 -0
  73. package/dist/libraries/backend/routes/basePath.js +1 -0
  74. package/dist/libraries/backend/routes/basePath.mjs +0 -0
  75. package/dist/libraries/backend/routes/entityRoutes.d.mts +6 -0
  76. package/dist/libraries/backend/routes/entityRoutes.d.ts +6 -0
  77. package/dist/libraries/backend/routes/entityRoutes.js +1963 -0
  78. package/dist/libraries/backend/routes/entityRoutes.mjs +10 -0
  79. package/dist/libraries/backend/routes/genRoutes.d.mts +6 -0
  80. package/dist/libraries/backend/routes/genRoutes.d.ts +6 -0
  81. package/dist/libraries/backend/routes/genRoutes.js +2041 -0
  82. package/dist/libraries/backend/routes/genRoutes.mjs +10 -0
  83. package/dist/libraries/backend/routes/productRoutes.d.mts +6 -0
  84. package/dist/libraries/backend/routes/productRoutes.d.ts +6 -0
  85. package/dist/libraries/backend/routes/productRoutes.js +1913 -0
  86. package/dist/libraries/backend/routes/productRoutes.mjs +10 -0
  87. package/dist/libraries/backend/routes/referralRoutes.d.mts +6 -0
  88. package/dist/libraries/backend/routes/referralRoutes.d.ts +6 -0
  89. package/dist/libraries/backend/routes/referralRoutes.js +1931 -0
  90. package/dist/libraries/backend/routes/referralRoutes.mjs +10 -0
  91. package/dist/libraries/backend/schemas/zod.d.mts +71 -0
  92. package/dist/libraries/backend/schemas/zod.d.ts +71 -0
  93. package/dist/libraries/backend/schemas/zod.js +101 -0
  94. package/dist/libraries/backend/schemas/zod.mjs +68 -0
  95. package/dist/libraries/backend/supabase.d.mts +9 -0
  96. package/dist/libraries/backend/supabase.d.ts +9 -0
  97. package/dist/libraries/backend/supabase.js +2394 -0
  98. package/dist/libraries/backend/supabase.mjs +95 -0
  99. package/dist/libraries/backend/tanstack.d.mts +32 -0
  100. package/dist/libraries/backend/tanstack.d.ts +32 -0
  101. package/dist/libraries/backend/tanstack.js +2384 -0
  102. package/dist/libraries/backend/tanstack.mjs +83 -0
  103. package/dist/libraries/backend/utils/AuthFunction.d.mts +9 -0
  104. package/dist/libraries/backend/utils/AuthFunction.d.ts +9 -0
  105. package/dist/libraries/backend/utils/AuthFunction.js +18 -0
  106. package/dist/libraries/backend/utils/AuthFunction.mjs +0 -0
  107. package/dist/libraries/backend/utils/backendRes.d.mts +19 -0
  108. package/dist/libraries/backend/utils/backendRes.d.ts +19 -0
  109. package/dist/libraries/backend/utils/backendRes.js +1791 -0
  110. package/dist/libraries/backend/utils/backendRes.mjs +10 -0
  111. package/dist/libraries/backend/utils/betterAuth/middlewares.d.mts +26 -0
  112. package/dist/libraries/backend/utils/betterAuth/middlewares.d.ts +26 -0
  113. package/dist/libraries/backend/utils/betterAuth/middlewares.js +130 -0
  114. package/dist/libraries/backend/utils/betterAuth/middlewares.mjs +10 -0
  115. package/dist/libraries/backend/utils/betterAuth/types.d.mts +19 -0
  116. package/dist/libraries/backend/utils/betterAuth/types.d.ts +19 -0
  117. package/dist/libraries/backend/utils/betterAuth/types.js +18 -0
  118. package/dist/libraries/backend/utils/betterAuth/types.mjs +0 -0
  119. package/dist/libraries/backend/utils/logBackendErrors.d.mts +5 -0
  120. package/dist/libraries/backend/utils/logBackendErrors.d.ts +5 -0
  121. package/dist/libraries/backend/utils/logBackendErrors.js +73 -0
  122. package/dist/libraries/backend/utils/logBackendErrors.mjs +13 -0
  123. package/dist/libraries/backend/utils/secretKeyCheck.d.mts +13 -0
  124. package/dist/libraries/backend/utils/secretKeyCheck.d.ts +13 -0
  125. package/dist/libraries/backend/utils/secretKeyCheck.js +42 -0
  126. package/dist/libraries/backend/utils/secretKeyCheck.mjs +6 -0
  127. package/dist/libraries/backend/utils/withAuth.d.mts +29 -0
  128. package/dist/libraries/backend/utils/withAuth.d.ts +29 -0
  129. package/dist/libraries/backend/utils/withAuth.js +1892 -0
  130. package/dist/libraries/backend/utils/withAuth.mjs +9 -0
  131. package/dist/libraries/react/AutumnContext.d.mts +34 -0
  132. package/dist/libraries/react/AutumnContext.d.ts +34 -0
  133. package/dist/libraries/react/AutumnContext.js +2162 -0
  134. package/dist/libraries/react/AutumnContext.mjs +20 -0
  135. package/dist/libraries/react/BaseAutumnProvider.d.mts +18 -0
  136. package/dist/libraries/react/BaseAutumnProvider.d.ts +18 -0
  137. package/dist/libraries/react/BaseAutumnProvider.js +2833 -0
  138. package/dist/libraries/react/BaseAutumnProvider.mjs +25 -0
  139. package/dist/libraries/react/ReactAutumnClient-BJzchCM3.d.ts +304 -0
  140. package/dist/libraries/react/ReactAutumnClient-Cc2rjUsz.d.mts +304 -0
  141. package/dist/libraries/react/ReactAutumnProvider.d.mts +20 -0
  142. package/dist/libraries/react/ReactAutumnProvider.d.ts +20 -0
  143. package/dist/libraries/react/ReactAutumnProvider.js +3229 -0
  144. package/dist/libraries/react/ReactAutumnProvider.mjs +26 -0
  145. package/dist/libraries/react/attachTypes-BNlJ6XXa.d.mts +69 -0
  146. package/dist/libraries/react/attachTypes-eg914-6v.d.ts +69 -0
  147. package/dist/libraries/react/chunk-2ZZJUGBO.mjs +138 -0
  148. package/dist/libraries/react/chunk-4J2T27L6.mjs +99 -0
  149. package/dist/libraries/react/chunk-4J6OC4ZQ.mjs +2532 -0
  150. package/dist/libraries/react/chunk-6EXNYWJX.mjs +67 -0
  151. package/dist/libraries/react/chunk-736TFHSL.mjs +18 -0
  152. package/dist/libraries/react/chunk-ACRIHVEO.mjs +134 -0
  153. package/dist/libraries/react/chunk-ACSLCOHZ.mjs +198 -0
  154. package/dist/libraries/react/chunk-BGOD72CO.mjs +20 -0
  155. package/dist/libraries/react/chunk-BLM4DAAR.mjs +158 -0
  156. package/dist/libraries/react/chunk-BVK3DYFG.mjs +157 -0
  157. package/dist/libraries/react/chunk-CIBQ4BJU.mjs +19 -0
  158. package/dist/libraries/react/chunk-CSHDMTUY.mjs +52 -0
  159. package/dist/libraries/react/chunk-D2TXVOAD.mjs +50 -0
  160. package/dist/libraries/react/chunk-EAZME3W6.mjs +89 -0
  161. package/dist/libraries/react/chunk-FDURBIAI.mjs +2520 -0
  162. package/dist/libraries/react/chunk-FK5QRKSW.mjs +747 -0
  163. package/dist/libraries/react/chunk-GUM4HIGI.mjs +30 -0
  164. package/dist/libraries/react/chunk-I5ZGIAIX.mjs +57 -0
  165. package/dist/libraries/react/chunk-IKJYNTI5.mjs +1335 -0
  166. package/dist/libraries/react/chunk-J24P6YUI.mjs +25 -0
  167. package/dist/libraries/react/chunk-JNGOZQHP.mjs +62 -0
  168. package/dist/libraries/react/chunk-JVCOY7ZL.mjs +22 -0
  169. package/dist/libraries/react/chunk-KEGHYZMH.mjs +584 -0
  170. package/dist/libraries/react/chunk-LDGZ322L.mjs +92 -0
  171. package/dist/libraries/react/chunk-MPAPGILW.mjs +360 -0
  172. package/dist/libraries/react/chunk-NBCD7YQN.mjs +151 -0
  173. package/dist/libraries/react/chunk-OO5IBU2P.mjs +67 -0
  174. package/dist/libraries/react/chunk-OYBOLAL5.mjs +31 -0
  175. package/dist/libraries/react/chunk-Q24L3UDQ.mjs +206 -0
  176. package/dist/libraries/react/chunk-R4I7MVEX.mjs +46 -0
  177. package/dist/libraries/react/chunk-RFSQBGLO.mjs +21 -0
  178. package/dist/libraries/react/chunk-SGEO7BFC.mjs +44 -0
  179. package/dist/libraries/react/chunk-SUENW2KS.mjs +17 -0
  180. package/dist/libraries/react/chunk-TI73WOTR.mjs +256 -0
  181. package/dist/libraries/react/chunk-URQMBRFZ.mjs +62 -0
  182. package/dist/libraries/react/chunk-V575SGOW.mjs +12 -0
  183. package/dist/libraries/react/chunk-VPW2CMGB.mjs +165 -0
  184. package/dist/libraries/react/chunk-WA7QZHL5.mjs +101 -0
  185. package/dist/libraries/react/chunk-WFFVOEUG.mjs +15 -0
  186. package/dist/libraries/react/chunk-WVKYZYFT.mjs +37 -0
  187. package/dist/libraries/react/chunk-XDQLJ7QR.mjs +17 -0
  188. package/dist/libraries/react/chunk-XGG7IZUQ.mjs +218 -0
  189. package/dist/libraries/react/chunk-ZBHCIMJH.mjs +448 -0
  190. package/dist/libraries/react/chunk-ZJPIZX24.mjs +1736 -0
  191. package/dist/libraries/react/chunk-ZPW4DL3O.mjs +96 -0
  192. package/dist/libraries/react/client/ConvexAutumnClient.d.mts +77 -0
  193. package/dist/libraries/react/client/ConvexAutumnClient.d.ts +77 -0
  194. package/dist/libraries/react/client/ConvexAutumnClient.js +2119 -0
  195. package/dist/libraries/react/client/ConvexAutumnClient.mjs +9 -0
  196. package/dist/libraries/react/client/ReactAutumnClient.d.mts +9 -0
  197. package/dist/libraries/react/client/ReactAutumnClient.d.ts +9 -0
  198. package/dist/libraries/react/client/ReactAutumnClient.js +2120 -0
  199. package/dist/libraries/react/client/ReactAutumnClient.mjs +17 -0
  200. package/dist/libraries/react/client/clientAnalyticsMethods.d.mts +14 -0
  201. package/dist/libraries/react/client/clientAnalyticsMethods.d.ts +14 -0
  202. package/dist/libraries/react/client/clientAnalyticsMethods.js +41 -0
  203. package/dist/libraries/react/client/clientAnalyticsMethods.mjs +10 -0
  204. package/dist/libraries/react/client/clientCompMethods.d.mts +33 -0
  205. package/dist/libraries/react/client/clientCompMethods.d.ts +33 -0
  206. package/dist/libraries/react/client/clientCompMethods.js +35 -0
  207. package/dist/libraries/react/client/clientCompMethods.mjs +11 -0
  208. package/dist/libraries/react/client/clientCusMethods.d.mts +16 -0
  209. package/dist/libraries/react/client/clientCusMethods.d.ts +16 -0
  210. package/dist/libraries/react/client/clientCusMethods.js +38 -0
  211. package/dist/libraries/react/client/clientCusMethods.mjs +8 -0
  212. package/dist/libraries/react/client/clientEntityMethods.d.mts +16 -0
  213. package/dist/libraries/react/client/clientEntityMethods.d.ts +16 -0
  214. package/dist/libraries/react/client/clientEntityMethods.js +58 -0
  215. package/dist/libraries/react/client/clientEntityMethods.mjs +12 -0
  216. package/dist/libraries/react/client/clientGenMethods.d.mts +22 -0
  217. package/dist/libraries/react/client/clientGenMethods.d.ts +22 -0
  218. package/dist/libraries/react/client/clientGenMethods.js +97 -0
  219. package/dist/libraries/react/client/clientGenMethods.mjs +22 -0
  220. package/dist/libraries/react/client/clientProdMethods.d.mts +15 -0
  221. package/dist/libraries/react/client/clientProdMethods.d.ts +15 -0
  222. package/dist/libraries/react/client/clientProdMethods.js +35 -0
  223. package/dist/libraries/react/client/clientProdMethods.mjs +8 -0
  224. package/dist/libraries/react/client/clientReferralMethods.d.mts +15 -0
  225. package/dist/libraries/react/client/clientReferralMethods.d.ts +15 -0
  226. package/dist/libraries/react/client/clientReferralMethods.js +41 -0
  227. package/dist/libraries/react/client/clientReferralMethods.mjs +10 -0
  228. package/dist/libraries/react/client/types/clientAnalyticsTypes.d.mts +78 -0
  229. package/dist/libraries/react/client/types/clientAnalyticsTypes.d.ts +78 -0
  230. package/dist/libraries/react/client/types/clientAnalyticsTypes.js +92 -0
  231. package/dist/libraries/react/client/types/clientAnalyticsTypes.mjs +62 -0
  232. package/dist/libraries/react/client/types/clientAttachTypes.d.mts +48 -0
  233. package/dist/libraries/react/client/types/clientAttachTypes.d.ts +48 -0
  234. package/dist/libraries/react/client/types/clientAttachTypes.js +76 -0
  235. package/dist/libraries/react/client/types/clientAttachTypes.mjs +50 -0
  236. package/dist/libraries/react/client/types/clientCusTypes.d.mts +5 -0
  237. package/dist/libraries/react/client/types/clientCusTypes.d.ts +5 -0
  238. package/dist/libraries/react/client/types/clientCusTypes.js +20 -0
  239. package/dist/libraries/react/client/types/clientCusTypes.mjs +2 -0
  240. package/dist/libraries/react/client/types/clientEntTypes.d.mts +19 -0
  241. package/dist/libraries/react/client/types/clientEntTypes.d.ts +19 -0
  242. package/dist/libraries/react/client/types/clientEntTypes.js +48 -0
  243. package/dist/libraries/react/client/types/clientEntTypes.mjs +22 -0
  244. package/dist/libraries/react/client/types/clientGenTypes.d.mts +56 -0
  245. package/dist/libraries/react/client/types/clientGenTypes.d.ts +56 -0
  246. package/dist/libraries/react/client/types/clientGenTypes.js +1819 -0
  247. package/dist/libraries/react/client/types/clientGenTypes.mjs +54 -0
  248. package/dist/libraries/react/client/types/clientPricingTableTypes.d.mts +20 -0
  249. package/dist/libraries/react/client/types/clientPricingTableTypes.d.ts +20 -0
  250. package/dist/libraries/react/client/types/clientPricingTableTypes.js +20 -0
  251. package/dist/libraries/react/client/types/clientPricingTableTypes.mjs +2 -0
  252. package/dist/libraries/react/client/types/clientProdTypes.d.mts +5 -0
  253. package/dist/libraries/react/client/types/clientProdTypes.d.ts +5 -0
  254. package/dist/libraries/react/client/types/clientProdTypes.js +20 -0
  255. package/dist/libraries/react/client/types/clientProdTypes.mjs +2 -0
  256. package/dist/libraries/react/client/types/clientReferralTypes.d.mts +12 -0
  257. package/dist/libraries/react/client/types/clientReferralTypes.d.ts +12 -0
  258. package/dist/libraries/react/client/types/clientReferralTypes.js +40 -0
  259. package/dist/libraries/react/client/types/clientReferralTypes.mjs +15 -0
  260. package/dist/libraries/react/client/types/responseTypes.d.mts +2 -0
  261. package/dist/libraries/react/client/types/responseTypes.d.ts +2 -0
  262. package/dist/libraries/react/client/types/responseTypes.js +3 -0
  263. package/dist/libraries/react/client/types/responseTypes.mjs +2 -0
  264. package/dist/libraries/react/components/checkout-dialog/checkout-dialog-synced.css +1460 -0
  265. package/dist/libraries/react/components/checkout-dialog/checkout-dialog-synced.d.mts +25 -0
  266. package/dist/libraries/react/components/checkout-dialog/checkout-dialog-synced.d.ts +25 -0
  267. package/dist/libraries/react/components/checkout-dialog/checkout-dialog-synced.js +11543 -0
  268. package/dist/libraries/react/components/checkout-dialog/checkout-dialog-synced.mjs +57 -0
  269. package/dist/libraries/react/components/checkout-dialog/lib/checkout-content.d.mts +11 -0
  270. package/dist/libraries/react/components/checkout-dialog/lib/checkout-content.d.ts +11 -0
  271. package/dist/libraries/react/components/checkout-dialog/lib/checkout-content.js +181 -0
  272. package/dist/libraries/react/components/checkout-dialog/lib/checkout-content.mjs +8 -0
  273. package/dist/libraries/react/components/paywall-dialog/lib/paywall-content.d.mts +9 -0
  274. package/dist/libraries/react/components/paywall-dialog/lib/paywall-content.d.ts +9 -0
  275. package/dist/libraries/react/components/paywall-dialog/lib/paywall-content.js +80 -0
  276. package/dist/libraries/react/components/paywall-dialog/lib/paywall-content.mjs +8 -0
  277. package/dist/libraries/react/components/paywall-dialog/paywall-dialog-synced.css +1460 -0
  278. package/dist/libraries/react/components/paywall-dialog/paywall-dialog-synced.d.mts +11 -0
  279. package/dist/libraries/react/components/paywall-dialog/paywall-dialog-synced.d.ts +11 -0
  280. package/dist/libraries/react/components/paywall-dialog/paywall-dialog-synced.js +10566 -0
  281. package/dist/libraries/react/components/paywall-dialog/paywall-dialog-synced.mjs +53 -0
  282. package/dist/libraries/react/components/pricing-table/lib/pricing-table-content.d.mts +9 -0
  283. package/dist/libraries/react/components/pricing-table/lib/pricing-table-content.d.ts +9 -0
  284. package/dist/libraries/react/components/pricing-table/lib/pricing-table-content.js +85 -0
  285. package/dist/libraries/react/components/pricing-table/lib/pricing-table-content.mjs +8 -0
  286. package/dist/libraries/react/components/pricing-table/pricing-table-synced.css +1460 -0
  287. package/dist/libraries/react/components/pricing-table/pricing-table-synced.d.mts +52 -0
  288. package/dist/libraries/react/components/pricing-table/pricing-table-synced.d.ts +52 -0
  289. package/dist/libraries/react/components/pricing-table/pricing-table-synced.js +11834 -0
  290. package/dist/libraries/react/components/pricing-table/pricing-table-synced.mjs +66 -0
  291. package/dist/libraries/react/components/ui/accordion.d.mts +15 -0
  292. package/dist/libraries/react/components/ui/accordion.d.ts +15 -0
  293. package/dist/libraries/react/components/ui/accordion.js +3679 -0
  294. package/dist/libraries/react/components/ui/accordion.mjs +19 -0
  295. package/dist/libraries/react/components/ui/button.d.mts +11 -0
  296. package/dist/libraries/react/components/ui/button.d.ts +11 -0
  297. package/dist/libraries/react/components/ui/button.js +2776 -0
  298. package/dist/libraries/react/components/ui/button.mjs +12 -0
  299. package/dist/libraries/react/components/ui/dialog.d.mts +29 -0
  300. package/dist/libraries/react/components/ui/dialog.d.ts +29 -0
  301. package/dist/libraries/react/components/ui/dialog.js +4880 -0
  302. package/dist/libraries/react/components/ui/dialog.mjs +33 -0
  303. package/dist/libraries/react/components/ui/input.d.mts +5 -0
  304. package/dist/libraries/react/components/ui/input.d.ts +5 -0
  305. package/dist/libraries/react/components/ui/input.js +2587 -0
  306. package/dist/libraries/react/components/ui/input.mjs +9 -0
  307. package/dist/libraries/react/components/ui/popover.d.mts +11 -0
  308. package/dist/libraries/react/components/ui/popover.d.ts +11 -0
  309. package/dist/libraries/react/components/ui/popover.js +6852 -0
  310. package/dist/libraries/react/components/ui/popover.mjs +20 -0
  311. package/dist/libraries/react/components/ui/switch.d.mts +8 -0
  312. package/dist/libraries/react/components/ui/switch.d.ts +8 -0
  313. package/dist/libraries/react/components/ui/switch.js +3096 -0
  314. package/dist/libraries/react/components/ui/switch.mjs +13 -0
  315. package/dist/libraries/react/cusTypes-CfdKzRo3.d.mts +210 -0
  316. package/dist/libraries/react/cusTypes-CmjJWspY.d.ts +210 -0
  317. package/dist/libraries/react/error-DHbclCVh.d.mts +17 -0
  318. package/dist/libraries/react/error-DHbclCVh.d.ts +17 -0
  319. package/dist/libraries/react/errorUtils/logAuthError.d.mts +3 -0
  320. package/dist/libraries/react/errorUtils/logAuthError.d.ts +3 -0
  321. package/dist/libraries/react/errorUtils/logAuthError.js +45 -0
  322. package/dist/libraries/react/errorUtils/logAuthError.mjs +8 -0
  323. package/dist/libraries/react/errorUtils/logFetchError.d.mts +8 -0
  324. package/dist/libraries/react/errorUtils/logFetchError.d.ts +8 -0
  325. package/dist/libraries/react/errorUtils/logFetchError.js +42 -0
  326. package/dist/libraries/react/errorUtils/logFetchError.mjs +8 -0
  327. package/dist/libraries/react/eventTypes-5iJYcv30.d.mts +26 -0
  328. package/dist/libraries/react/eventTypes-5iJYcv30.d.ts +26 -0
  329. package/dist/libraries/react/genTypes-BouhbtKm.d.ts +24 -0
  330. package/dist/libraries/react/genTypes-DT5O0rCP.d.mts +24 -0
  331. package/dist/libraries/react/hooks/helpers/handleCheck.d.mts +34 -0
  332. package/dist/libraries/react/hooks/helpers/handleCheck.d.ts +34 -0
  333. package/dist/libraries/react/hooks/helpers/handleCheck.js +1917 -0
  334. package/dist/libraries/react/hooks/helpers/handleCheck.mjs +11 -0
  335. package/dist/libraries/react/hooks/helpers/useAutumnBase.d.mts +32 -0
  336. package/dist/libraries/react/hooks/helpers/useAutumnBase.d.ts +32 -0
  337. package/dist/libraries/react/hooks/helpers/useAutumnBase.js +2115 -0
  338. package/dist/libraries/react/hooks/helpers/useAutumnBase.mjs +10 -0
  339. package/dist/libraries/react/hooks/helpers/useDialog.d.mts +3 -0
  340. package/dist/libraries/react/hooks/helpers/useDialog.d.ts +3 -0
  341. package/dist/libraries/react/hooks/helpers/useDialog.js +44 -0
  342. package/dist/libraries/react/hooks/helpers/useDialog.mjs +8 -0
  343. package/dist/libraries/react/hooks/useAggregateEvents.d.mts +20 -0
  344. package/dist/libraries/react/hooks/useAggregateEvents.d.ts +20 -0
  345. package/dist/libraries/react/hooks/useAggregateEvents.js +2216 -0
  346. package/dist/libraries/react/hooks/useAggregateEvents.mjs +19 -0
  347. package/dist/libraries/react/hooks/useAnalytics.d.mts +21 -0
  348. package/dist/libraries/react/hooks/useAnalytics.d.ts +21 -0
  349. package/dist/libraries/react/hooks/useAnalytics.js +2201 -0
  350. package/dist/libraries/react/hooks/useAnalytics.mjs +19 -0
  351. package/dist/libraries/react/hooks/useCustomer.d.mts +89 -0
  352. package/dist/libraries/react/hooks/useCustomer.d.ts +89 -0
  353. package/dist/libraries/react/hooks/useCustomer.js +2738 -0
  354. package/dist/libraries/react/hooks/useCustomer.mjs +23 -0
  355. package/dist/libraries/react/hooks/useCustomerBase.d.mts +91 -0
  356. package/dist/libraries/react/hooks/useCustomerBase.d.ts +91 -0
  357. package/dist/libraries/react/hooks/useCustomerBase.js +2728 -0
  358. package/dist/libraries/react/hooks/useCustomerBase.mjs +22 -0
  359. package/dist/libraries/react/hooks/useEntity.d.mts +30 -0
  360. package/dist/libraries/react/hooks/useEntity.d.ts +30 -0
  361. package/dist/libraries/react/hooks/useEntity.js +2740 -0
  362. package/dist/libraries/react/hooks/useEntity.mjs +23 -0
  363. package/dist/libraries/react/hooks/useEntityBase.d.mts +39 -0
  364. package/dist/libraries/react/hooks/useEntityBase.d.ts +39 -0
  365. package/dist/libraries/react/hooks/useEntityBase.js +2732 -0
  366. package/dist/libraries/react/hooks/useEntityBase.mjs +22 -0
  367. package/dist/libraries/react/hooks/useListEvents.d.mts +43 -0
  368. package/dist/libraries/react/hooks/useListEvents.d.ts +43 -0
  369. package/dist/libraries/react/hooks/useListEvents.js +2238 -0
  370. package/dist/libraries/react/hooks/useListEvents.mjs +19 -0
  371. package/dist/libraries/react/hooks/usePaywall.d.mts +13 -0
  372. package/dist/libraries/react/hooks/usePaywall.d.ts +13 -0
  373. package/dist/libraries/react/hooks/usePaywall.js +2194 -0
  374. package/dist/libraries/react/hooks/usePaywall.mjs +19 -0
  375. package/dist/libraries/react/hooks/usePricingTable.d.mts +15 -0
  376. package/dist/libraries/react/hooks/usePricingTable.d.ts +15 -0
  377. package/dist/libraries/react/hooks/usePricingTable.js +2363 -0
  378. package/dist/libraries/react/hooks/usePricingTable.mjs +20 -0
  379. package/dist/libraries/react/hooks/usePricingTableBase.d.mts +25 -0
  380. package/dist/libraries/react/hooks/usePricingTableBase.d.ts +25 -0
  381. package/dist/libraries/react/hooks/usePricingTableBase.js +1957 -0
  382. package/dist/libraries/react/hooks/usePricingTableBase.mjs +9 -0
  383. package/dist/libraries/react/hooks/useProductsBase.d.mts +19 -0
  384. package/dist/libraries/react/hooks/useProductsBase.d.ts +19 -0
  385. package/dist/libraries/react/hooks/useProductsBase.js +55 -0
  386. package/dist/libraries/react/hooks/useProductsBase.mjs +21 -0
  387. package/dist/libraries/react/index.d.mts +951 -0
  388. package/dist/libraries/react/index.d.ts +951 -0
  389. package/dist/libraries/react/index.js +12709 -0
  390. package/dist/libraries/react/index.mjs +12662 -0
  391. package/dist/libraries/react/lib/utils.d.mts +5 -0
  392. package/dist/libraries/react/lib/utils.d.ts +5 -0
  393. package/dist/libraries/react/lib/utils.js +2556 -0
  394. package/dist/libraries/react/lib/utils.mjs +8 -0
  395. package/dist/libraries/react/prodTypes-C4aZSZfO.d.mts +171 -0
  396. package/dist/libraries/react/prodTypes-C4aZSZfO.d.ts +171 -0
  397. package/dist/libraries/react/utils/compareParams.d.mts +3 -0
  398. package/dist/libraries/react/utils/compareParams.d.ts +3 -0
  399. package/dist/libraries/react/utils/compareParams.js +47 -0
  400. package/dist/libraries/react/utils/compareParams.mjs +23 -0
  401. package/dist/libraries/react/utils/errorUtils.d.mts +20 -0
  402. package/dist/libraries/react/utils/errorUtils.d.ts +20 -0
  403. package/dist/libraries/react/utils/errorUtils.js +61 -0
  404. package/dist/libraries/react/utils/errorUtils.mjs +36 -0
  405. package/dist/libraries/react/utils/inject-styles.d.mts +4 -0
  406. package/dist/libraries/react/utils/inject-styles.d.ts +4 -0
  407. package/dist/libraries/react/utils/inject-styles.js +61 -0
  408. package/dist/libraries/react/utils/inject-styles.mjs +10 -0
  409. package/dist/next/AutumnProvider.d.mts +30 -0
  410. package/dist/next/AutumnProvider.d.ts +30 -0
  411. package/dist/next/AutumnProvider.js +68 -0
  412. package/dist/next/AutumnProvider.mjs +44 -0
  413. package/dist/next/client/AutumnClientProvider.d.mts +2 -0
  414. package/dist/next/client/AutumnClientProvider.d.ts +2 -0
  415. package/dist/next/client/AutumnClientProvider.js +2 -0
  416. package/dist/next/client/AutumnClientProvider.mjs +2 -0
  417. package/dist/next/client/NextAutumnClient.d.mts +375 -0
  418. package/dist/next/client/NextAutumnClient.d.ts +375 -0
  419. package/dist/next/client/NextAutumnClient.js +107 -0
  420. package/dist/next/client/NextAutumnClient.mjs +107 -0
  421. package/dist/next/client/NextAutumnProvider.d.mts +13 -0
  422. package/dist/next/client/NextAutumnProvider.d.ts +13 -0
  423. package/dist/next/client/NextAutumnProvider.js +23 -0
  424. package/dist/next/client/NextAutumnProvider.mjs +23 -0
  425. package/dist/next/client/clientAttachTypes-CZ0FmsbF.d.mts +104 -0
  426. package/dist/next/client/clientAttachTypes-Dczm087t.d.ts +104 -0
  427. package/dist/next/client/clientEntTypes-CeaZbrIq.d.ts +73 -0
  428. package/dist/next/client/clientEntTypes-jltPLNQ5.d.mts +73 -0
  429. package/dist/next/client/clientUtils.d.mts +18 -0
  430. package/dist/next/client/clientUtils.d.ts +18 -0
  431. package/dist/next/client/clientUtils.js +72 -0
  432. package/dist/next/client/clientUtils.mjs +72 -0
  433. package/dist/next/client/cusTypes-BgJmgZt6.d.ts +215 -0
  434. package/dist/next/client/cusTypes-BngiltFz.d.mts +215 -0
  435. package/dist/next/client/error-DHbclCVh.d.mts +17 -0
  436. package/dist/next/client/error-DHbclCVh.d.ts +17 -0
  437. package/dist/next/client/hooks/useAutumn.d.mts +20 -0
  438. package/dist/next/client/hooks/useAutumn.d.ts +20 -0
  439. package/dist/next/client/hooks/useAutumn.js +17 -0
  440. package/dist/next/client/hooks/useAutumn.mjs +17 -0
  441. package/dist/next/client/hooks/useCustomer.d.mts +89 -0
  442. package/dist/next/client/hooks/useCustomer.d.ts +89 -0
  443. package/dist/next/client/hooks/useCustomer.js +15 -0
  444. package/dist/next/client/hooks/useCustomer.mjs +15 -0
  445. package/dist/next/client/hooks/useEntity.d.mts +27 -0
  446. package/dist/next/client/hooks/useEntity.d.ts +27 -0
  447. package/dist/next/client/hooks/useEntity.js +11 -0
  448. package/dist/next/client/hooks/useEntity.mjs +11 -0
  449. package/dist/next/client/hooks/usePricingTable.d.mts +33 -0
  450. package/dist/next/client/hooks/usePricingTable.d.ts +33 -0
  451. package/dist/next/client/hooks/usePricingTable.js +14 -0
  452. package/dist/next/client/hooks/usePricingTable.mjs +14 -0
  453. package/dist/next/client/prodTypes-G6W3NUPg.d.mts +162 -0
  454. package/dist/next/client/prodTypes-G6W3NUPg.d.ts +162 -0
  455. package/dist/next/client/response-CLgEplsF.d.ts +16 -0
  456. package/dist/next/client/response-DKQ_cb7U.d.mts +16 -0
  457. package/dist/next/client/types.d.mts +74 -0
  458. package/dist/next/client/types.d.ts +74 -0
  459. package/dist/next/client/types.js +21 -0
  460. package/dist/next/client/types.mjs +21 -0
  461. package/dist/next/enums.d.mts +5 -0
  462. package/dist/next/enums.d.ts +5 -0
  463. package/dist/next/enums.js +31 -0
  464. package/dist/next/enums.mjs +7 -0
  465. package/dist/next/index.d.mts +19 -0
  466. package/dist/next/index.d.ts +19 -0
  467. package/dist/next/index.js +22 -0
  468. package/dist/next/index.mjs +1 -0
  469. package/dist/next/server/auth/authPlugin.d.mts +13 -0
  470. package/dist/next/server/auth/authPlugin.d.ts +13 -0
  471. package/dist/next/server/auth/authPlugin.js +11 -0
  472. package/dist/next/server/auth/authPlugin.mjs +11 -0
  473. package/dist/next/server/auth/clerk-wrapper.d.mts +3 -0
  474. package/dist/next/server/auth/clerk-wrapper.d.ts +3 -0
  475. package/dist/next/server/auth/clerk-wrapper.js +22 -0
  476. package/dist/next/server/auth/clerk-wrapper.mjs +22 -0
  477. package/dist/next/server/auth/get-next-headers.d.mts +6 -0
  478. package/dist/next/server/auth/get-next-headers.d.ts +6 -0
  479. package/dist/next/server/auth/get-next-headers.js +18 -0
  480. package/dist/next/server/auth/get-next-headers.mjs +18 -0
  481. package/dist/next/server/auth/handleAuthProvider.d.mts +44 -0
  482. package/dist/next/server/auth/handleAuthProvider.d.ts +44 -0
  483. package/dist/next/server/auth/handleAuthProvider.js +179 -0
  484. package/dist/next/server/auth/handleAuthProvider.mjs +179 -0
  485. package/dist/next/server/auth/supabase-wrapper.d.mts +3 -0
  486. package/dist/next/server/auth/supabase-wrapper.d.ts +3 -0
  487. package/dist/next/server/auth/supabase-wrapper.js +45 -0
  488. package/dist/next/server/auth/supabase-wrapper.mjs +45 -0
  489. package/dist/next/server/auth/withNextAuth.d.mts +16 -0
  490. package/dist/next/server/auth/withNextAuth.d.ts +16 -0
  491. package/dist/next/server/auth/withNextAuth.js +42 -0
  492. package/dist/next/server/auth/withNextAuth.mjs +42 -0
  493. package/dist/next/server/componentActions.d.mts +12 -0
  494. package/dist/next/server/componentActions.d.ts +12 -0
  495. package/dist/next/server/componentActions.js +21 -0
  496. package/dist/next/server/componentActions.mjs +21 -0
  497. package/dist/next/server/cusActions.d.mts +1421 -0
  498. package/dist/next/server/cusActions.d.ts +1421 -0
  499. package/dist/next/server/cusActions.js +70 -0
  500. package/dist/next/server/cusActions.mjs +70 -0
  501. package/dist/next/server/cusTypes-C7g7DT5P.d.mts +444 -0
  502. package/dist/next/server/cusTypes-C7g7DT5P.d.ts +444 -0
  503. package/dist/next/server/genActions.d.mts +86 -0
  504. package/dist/next/server/genActions.d.ts +86 -0
  505. package/dist/next/server/genActions.js +90 -0
  506. package/dist/next/server/genActions.mjs +90 -0
  507. package/dist/next/server/response-Bal_cFRb.d.mts +30 -0
  508. package/dist/next/server/response-Bal_cFRb.d.ts +30 -0
  509. package/dist/next/server/utils.d.mts +5 -0
  510. package/dist/next/server/utils.d.ts +5 -0
  511. package/dist/next/server/utils.js +16 -0
  512. package/dist/next/server/utils.mjs +16 -0
  513. package/dist/sdk/index.d.mts +2859 -0
  514. package/dist/sdk/index.d.ts +2859 -0
  515. package/dist/sdk/index.js +1832 -0
  516. package/dist/sdk/index.mjs +1742 -0
  517. package/dist/styles/global.css +1498 -0
  518. package/dist/utils/chunk-EG37DNU2.mjs +40 -0
  519. package/dist/utils/encryptUtils.d.mts +4 -0
  520. package/dist/utils/encryptUtils.d.ts +4 -0
  521. package/dist/utils/encryptUtils.js +1811 -0
  522. package/dist/utils/encryptUtils.mjs +1742 -0
  523. package/dist/utils/entityUtils.d.mts +3 -0
  524. package/dist/utils/entityUtils.d.ts +3 -0
  525. package/dist/utils/entityUtils.js +35 -0
  526. package/dist/utils/entityUtils.mjs +10 -0
  527. package/dist/utils/logger.d.mts +45 -0
  528. package/dist/utils/logger.d.ts +45 -0
  529. package/dist/utils/logger.js +64 -0
  530. package/dist/utils/logger.mjs +6 -0
  531. package/dist/utils/toSnakeCase.d.mts +7 -0
  532. package/dist/utils/toSnakeCase.d.ts +7 -0
  533. package/dist/utils/toSnakeCase.js +64 -0
  534. package/dist/utils/toSnakeCase.mjs +39 -0
  535. package/package.json +201 -0
  536. package/tsup.config.ts +213 -0
@@ -0,0 +1,3229 @@
1
+ "use client";
2
+
3
+ "use strict";
4
+ var __create = Object.create;
5
+ var __defProp = Object.defineProperty;
6
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
7
+ var __getOwnPropNames = Object.getOwnPropertyNames;
8
+ var __getProtoOf = Object.getPrototypeOf;
9
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
10
+ var __export = (target, all) => {
11
+ for (var name in all)
12
+ __defProp(target, name, { get: all[name], enumerable: true });
13
+ };
14
+ var __copyProps = (to, from, except, desc) => {
15
+ if (from && typeof from === "object" || typeof from === "function") {
16
+ for (let key of __getOwnPropNames(from))
17
+ if (!__hasOwnProp.call(to, key) && key !== except)
18
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
19
+ }
20
+ return to;
21
+ };
22
+ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
23
+ // If the importer is in node compatibility mode or this is not an ESM
24
+ // file that has been converted to a CommonJS file using a Babel-
25
+ // compatible transform (i.e. "__esModule" has not been set), then set
26
+ // "default" to the CommonJS "module.exports" for node compatibility.
27
+ isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
28
+ mod
29
+ ));
30
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
31
+
32
+ // src/libraries/react/ReactAutumnProvider.tsx
33
+ var ReactAutumnProvider_exports = {};
34
+ __export(ReactAutumnProvider_exports, {
35
+ ReactAutumnProvider: () => ReactAutumnProvider
36
+ });
37
+ module.exports = __toCommonJS(ReactAutumnProvider_exports);
38
+
39
+ // src/libraries/react/BaseAutumnProvider.tsx
40
+ var import_react3 = require("react");
41
+
42
+ // src/libraries/react/hooks/helpers/useDialog.tsx
43
+ var import_react = require("react");
44
+ var useDialog = (component) => {
45
+ const [dialogProps, setDialogProps] = (0, import_react.useState)(null);
46
+ const [dialogOpen, setDialogOpen] = (0, import_react.useState)(false);
47
+ (0, import_react.useEffect)(() => {
48
+ if (!dialogOpen) {
49
+ setTimeout(() => {
50
+ setDialogProps(null);
51
+ }, 200);
52
+ }
53
+ }, [dialogOpen]);
54
+ return [dialogProps, setDialogProps, dialogOpen, setDialogOpen];
55
+ };
56
+
57
+ // src/libraries/react/hooks/useCustomerBase.tsx
58
+ var import_swr2 = __toESM(require("swr"));
59
+
60
+ // src/libraries/react/errorUtils/logAuthError.ts
61
+ var logAuthError = async (response) => {
62
+ if (response.status === 401) {
63
+ let clonedResponse = response.clone();
64
+ let data = await clonedResponse.json();
65
+ if (data.message.includes("Missing authorization header")) {
66
+ console.error(`[Autumn] Missing authorization header.
67
+
68
+ Use the getBearerToken prop in <AutumnProvider /> to set the authorization header.
69
+ https://docs.useautumn.com/quickstart/quickstart#5-set-up-autumnprovider`);
70
+ return true;
71
+ }
72
+ }
73
+ return false;
74
+ };
75
+
76
+ // src/libraries/backend/constants.ts
77
+ var autumnApiUrl = "https://api.useautumn.com/v1";
78
+
79
+ // src/utils/logger.ts
80
+ var getTime = () => {
81
+ const timeString = (/* @__PURE__ */ new Date()).toISOString();
82
+ return `[${timeString.split("T")[1].split(".")[0]}]`;
83
+ };
84
+ var greaterThanLevel = (level) => {
85
+ return levels.indexOf(level) >= levels.indexOf(logger.level);
86
+ };
87
+ var levels = ["debug", "info", "warn", "error", "fatal"];
88
+ var logger = {
89
+ ...console,
90
+ level: "info",
91
+ debug: (...args) => {
92
+ if (greaterThanLevel("debug")) {
93
+ console.log(getTime(), "DEBUG", ...args);
94
+ }
95
+ },
96
+ log: (...args) => {
97
+ console.log(getTime(), "INFO", ...args);
98
+ },
99
+ info: (...args) => {
100
+ if (greaterThanLevel("info")) {
101
+ console.log(getTime(), "INFO", ...args);
102
+ }
103
+ },
104
+ warn: (...args) => {
105
+ if (greaterThanLevel("warn")) {
106
+ console.log(getTime(), "WARN", ...args);
107
+ }
108
+ },
109
+ error: (...args) => {
110
+ if (greaterThanLevel("error")) {
111
+ console.log(getTime(), "ERROR", ...args);
112
+ }
113
+ }
114
+ };
115
+
116
+ // src/sdk/utils.ts
117
+ var import_query_string = __toESM(require("query-string"));
118
+ var staticWrapper = (callback, instance, args) => {
119
+ if (!instance) {
120
+ instance = new Autumn();
121
+ }
122
+ return callback({ instance, ...args });
123
+ };
124
+ var buildQueryString = (params) => {
125
+ if (!params) return "";
126
+ return import_query_string.default.stringify(params, {
127
+ skipNull: true,
128
+ skipEmptyString: true
129
+ });
130
+ };
131
+ var buildPathWithQuery = (basePath, params) => {
132
+ const query = buildQueryString(params);
133
+ return query ? `${basePath}?${query}` : basePath;
134
+ };
135
+
136
+ // src/sdk/balances/balancesMethods.ts
137
+ var balanceMethods = (instance) => {
138
+ return {
139
+ create: (params) => staticWrapper(handleCreateBalance, instance, { params })
140
+ };
141
+ };
142
+ var handleCreateBalance = async ({
143
+ instance,
144
+ params
145
+ }) => {
146
+ return instance.post("/balances/create", params);
147
+ };
148
+
149
+ // src/sdk/error.ts
150
+ var AutumnError = class _AutumnError extends Error {
151
+ message;
152
+ code;
153
+ constructor(response) {
154
+ super(response.message);
155
+ this.message = response.message;
156
+ this.code = response.code;
157
+ }
158
+ static fromError(error) {
159
+ return new _AutumnError({
160
+ message: error.message || "Unknown error",
161
+ code: error.code || "unknown_error"
162
+ });
163
+ }
164
+ toString() {
165
+ return `${this.message} (code: ${this.code})`;
166
+ }
167
+ toJSON() {
168
+ return {
169
+ message: this.message,
170
+ code: this.code
171
+ };
172
+ }
173
+ };
174
+
175
+ // src/sdk/customers/cusMethods.ts
176
+ var customerMethods = (instance) => {
177
+ return {
178
+ list: (params) => staticWrapper(listCustomers, instance, { params }),
179
+ get: (id, params) => staticWrapper(getCustomer, instance, { id, params }),
180
+ create: (params) => staticWrapper(createCustomer, instance, { params }),
181
+ update: (id, params) => staticWrapper(updateCustomer, instance, { id, params }),
182
+ delete: (id, params) => staticWrapper(deleteCustomer, instance, { id, params }),
183
+ billingPortal: (id, params) => staticWrapper(billingPortal, instance, { id, params }),
184
+ updateBalances: (id, params) => staticWrapper(updateBalances, instance, { id, params })
185
+ };
186
+ };
187
+ var getExpandStr = (expand) => {
188
+ if (!expand) {
189
+ return "";
190
+ }
191
+ return `expand=${expand.join(",")}`;
192
+ };
193
+ var listCustomers = async ({
194
+ instance,
195
+ params
196
+ }) => {
197
+ const path = buildPathWithQuery("/customers", params);
198
+ return instance.get(path);
199
+ };
200
+ var getCustomer = async ({
201
+ instance,
202
+ id,
203
+ params
204
+ }) => {
205
+ if (!id) {
206
+ return {
207
+ data: null,
208
+ error: new AutumnError({
209
+ message: "Customer ID is required",
210
+ code: "CUSTOMER_ID_REQUIRED"
211
+ })
212
+ };
213
+ }
214
+ return instance.get(`/customers/${id}?${getExpandStr(params?.expand)}`);
215
+ };
216
+ var createCustomer = async ({
217
+ instance,
218
+ params
219
+ }) => {
220
+ return instance.post(`/customers?${getExpandStr(params?.expand)}`, params);
221
+ };
222
+ var updateCustomer = async ({
223
+ instance,
224
+ id,
225
+ params
226
+ }) => {
227
+ return instance.post(`/customers/${id}`, params);
228
+ };
229
+ var deleteCustomer = async ({
230
+ instance,
231
+ id,
232
+ params
233
+ }) => {
234
+ return instance.delete(`/customers/${id}${params?.delete_in_stripe ? "?delete_in_stripe=true" : ""}`);
235
+ };
236
+ var billingPortal = async ({
237
+ instance,
238
+ id,
239
+ params
240
+ }) => {
241
+ const finalParams = {
242
+ ...params,
243
+ return_url: params?.return_url ?? instance.defaultReturnUrl
244
+ };
245
+ return instance.post(`/customers/${id}/billing_portal`, finalParams);
246
+ };
247
+ var updateBalances = async ({
248
+ instance,
249
+ id,
250
+ params
251
+ }) => {
252
+ return instance.post(`/customers/${id}/balances`, {
253
+ balances: Array.isArray(params) ? params : [params]
254
+ });
255
+ };
256
+
257
+ // src/sdk/customers/entities/entMethods.ts
258
+ var entityMethods = (instance) => {
259
+ return {
260
+ get: (customer_id, entity_id, params) => staticWrapper(getEntity, instance, {
261
+ customer_id,
262
+ entity_id,
263
+ params
264
+ }),
265
+ create: (customer_id, params) => staticWrapper(createEntity, instance, { customer_id, params }),
266
+ transfer: (customer_id, params) => staticWrapper(transferProduct, instance, { customer_id, params }),
267
+ delete: (customer_id, entity_id) => staticWrapper(deleteEntity, instance, { customer_id, entity_id })
268
+ };
269
+ };
270
+ var getExpandStr2 = (expand) => {
271
+ if (!expand) {
272
+ return "";
273
+ }
274
+ return `expand=${expand.join(",")}`;
275
+ };
276
+ var getEntity = async ({
277
+ instance,
278
+ customer_id,
279
+ entity_id,
280
+ params
281
+ }) => {
282
+ return instance.get(
283
+ `/customers/${customer_id}/entities/${entity_id}?${getExpandStr2(
284
+ params?.expand
285
+ )}`
286
+ );
287
+ };
288
+ var createEntity = async ({
289
+ instance,
290
+ customer_id,
291
+ params
292
+ }) => {
293
+ return instance.post(`/customers/${customer_id}/entities`, params);
294
+ };
295
+ var deleteEntity = async ({
296
+ instance,
297
+ customer_id,
298
+ entity_id
299
+ }) => {
300
+ return instance.delete(`/customers/${customer_id}/entities/${entity_id}`);
301
+ };
302
+ var transferProduct = async ({
303
+ instance,
304
+ customer_id,
305
+ params
306
+ }) => {
307
+ return instance.post(`/customers/${customer_id}/transfer`, params);
308
+ };
309
+
310
+ // src/sdk/events/eventMethods.ts
311
+ var eventMethods = (instance) => {
312
+ return {
313
+ list: (params) => staticWrapper(handleEventList, instance, { params }),
314
+ aggregate: (params) => staticWrapper(handleEventAggregate, instance, { params })
315
+ };
316
+ };
317
+ var handleEventList = async ({
318
+ instance,
319
+ params
320
+ }) => {
321
+ return instance.post("/events/list", params);
322
+ };
323
+ var handleEventAggregate = async ({
324
+ instance,
325
+ params
326
+ }) => {
327
+ return instance.post("/events/aggregate", params);
328
+ };
329
+
330
+ // src/sdk/features/featureMethods.ts
331
+ var featureMethods = (instance) => {
332
+ return {
333
+ list: () => staticWrapper(listFeatures, instance, {}),
334
+ get: (id) => staticWrapper(getFeature, instance, { id })
335
+ };
336
+ };
337
+ var listFeatures = async ({
338
+ instance,
339
+ params
340
+ }) => {
341
+ let path = "/features";
342
+ if (params) {
343
+ const queryParams = new URLSearchParams();
344
+ for (const [key, value] of Object.entries(params)) {
345
+ if (value !== void 0) {
346
+ queryParams.append(key, String(value));
347
+ }
348
+ }
349
+ const queryString2 = queryParams.toString();
350
+ if (queryString2) {
351
+ path += `?${queryString2}`;
352
+ }
353
+ }
354
+ return instance.get(path);
355
+ };
356
+ var getFeature = async ({
357
+ instance,
358
+ id
359
+ }) => {
360
+ return instance.get(`/features/${id}`);
361
+ };
362
+
363
+ // src/sdk/general/genMethods.ts
364
+ var handleCheckout = async ({
365
+ instance,
366
+ params
367
+ }) => {
368
+ const finalParams = {
369
+ ...params,
370
+ success_url: params.success_url ?? instance.defaultReturnUrl
371
+ };
372
+ return instance.post("/checkout", finalParams);
373
+ };
374
+ var handleAttach = async ({
375
+ instance,
376
+ params
377
+ }) => {
378
+ const finalParams = {
379
+ ...params,
380
+ success_url: params.success_url ?? instance.defaultReturnUrl
381
+ };
382
+ return instance.post("/attach", finalParams);
383
+ };
384
+ var handleSetupPayment = async ({
385
+ instance,
386
+ params
387
+ }) => {
388
+ const finalParams = {
389
+ ...params,
390
+ success_url: params.success_url ?? instance.defaultReturnUrl
391
+ };
392
+ return instance.post("/setup_payment", finalParams);
393
+ };
394
+ var handleCancel = async ({
395
+ instance,
396
+ params
397
+ }) => {
398
+ return instance.post("/cancel", params);
399
+ };
400
+ var handleTrack = async ({
401
+ instance,
402
+ params
403
+ }) => {
404
+ return instance.post("/track", params);
405
+ };
406
+ var handleUsage = async ({
407
+ instance,
408
+ params
409
+ }) => {
410
+ return instance.post("/usage", params);
411
+ };
412
+ var handleCheck = async ({
413
+ instance,
414
+ params
415
+ }) => {
416
+ return instance.post("/check", params);
417
+ };
418
+ var handleQuery = async ({
419
+ instance,
420
+ params
421
+ }) => {
422
+ return instance.post("/query", params);
423
+ };
424
+
425
+ // src/sdk/products/prodMethods.ts
426
+ var productMethods = (instance) => {
427
+ return {
428
+ get: (id) => staticWrapper(getProduct, instance, { id }),
429
+ create: (params) => staticWrapper(createProduct, instance, { params }),
430
+ list: (params) => staticWrapper(listProducts, instance, { params }),
431
+ delete: (id) => staticWrapper(deleteProduct, instance, { id })
432
+ };
433
+ };
434
+ var listProducts = async ({
435
+ instance,
436
+ params
437
+ }) => {
438
+ let path = "/products_beta";
439
+ if (params) {
440
+ const queryParams = new URLSearchParams();
441
+ for (const [key, value] of Object.entries(params)) {
442
+ if (value !== void 0) {
443
+ queryParams.append(key, String(value));
444
+ }
445
+ }
446
+ const queryString2 = queryParams.toString();
447
+ if (queryString2) {
448
+ path += `?${queryString2}`;
449
+ }
450
+ }
451
+ return instance.get(path);
452
+ };
453
+ var getProduct = async ({
454
+ instance,
455
+ id
456
+ }) => {
457
+ return instance.get(`/products/${id}`);
458
+ };
459
+ var createProduct = async ({
460
+ instance,
461
+ params
462
+ }) => {
463
+ return instance.post("/products", params);
464
+ };
465
+ var deleteProduct = async ({
466
+ instance,
467
+ id,
468
+ params
469
+ }) => {
470
+ const path = buildPathWithQuery(`/products/${id}`, params);
471
+ return instance.delete(path);
472
+ };
473
+
474
+ // src/sdk/referrals/referralMethods.ts
475
+ var referralMethods = (instance) => {
476
+ return {
477
+ createCode: (params) => staticWrapper(createReferralCode, instance, { params }),
478
+ redeemCode: (params) => staticWrapper(redeemReferralCode, instance, { params })
479
+ };
480
+ };
481
+ var createReferralCode = async ({
482
+ instance,
483
+ params
484
+ }) => {
485
+ return instance.post("/referrals/code", params);
486
+ };
487
+ var redeemReferralCode = async ({
488
+ instance,
489
+ params
490
+ }) => {
491
+ return instance.post("/referrals/redeem", params);
492
+ };
493
+
494
+ // src/sdk/response.ts
495
+ var toContainerResult = async ({
496
+ response,
497
+ logger: logger2,
498
+ logError = true
499
+ }) => {
500
+ if (response.status < 200 || response.status >= 300) {
501
+ let error;
502
+ try {
503
+ error = await response.json();
504
+ if (logError) {
505
+ logger2.error(`[Autumn] ${error.message}`);
506
+ }
507
+ } catch (error2) {
508
+ throw error2;
509
+ }
510
+ return {
511
+ data: null,
512
+ error: new AutumnError({
513
+ message: error.message,
514
+ code: error.code
515
+ }),
516
+ statusCode: response.status
517
+ };
518
+ }
519
+ try {
520
+ const data = await response.json();
521
+ return {
522
+ data,
523
+ error: null,
524
+ statusCode: response?.status
525
+ };
526
+ } catch (error) {
527
+ throw error;
528
+ }
529
+ };
530
+
531
+ // src/sdk/v2/balancesMethods.ts
532
+ var V2_API_VERSION = "2.1.0";
533
+ var handleBalancesUpdate = async ({
534
+ instance,
535
+ params
536
+ }) => {
537
+ return instance.postWithVersion("/balances.update", params, V2_API_VERSION);
538
+ };
539
+ var handleBalancesFinalize = async ({
540
+ instance,
541
+ params
542
+ }) => {
543
+ return instance.postWithVersion("/balances.finalize", params, V2_API_VERSION);
544
+ };
545
+ var v2BalancesMethods = (instance) => {
546
+ const wrapper = (handler, params) => {
547
+ const inst = instance || new Autumn();
548
+ return handler({ instance: inst, params });
549
+ };
550
+ return {
551
+ /**
552
+ * Updates a customer's balance for a specific feature.
553
+ *
554
+ * @param params - Update balance parameters
555
+ * @returns Promise resolving to update balance response
556
+ *
557
+ * @example
558
+ * ```typescript
559
+ * // Set remaining balance to exact value
560
+ * await autumn.v2.balances.update({
561
+ * customer_id: "cus_123",
562
+ * feature_id: "api_calls",
563
+ * remaining: 1000,
564
+ * });
565
+ *
566
+ * // Add to existing balance
567
+ * await autumn.v2.balances.update({
568
+ * customer_id: "cus_123",
569
+ * feature_id: "credits",
570
+ * add_to_balance: 500,
571
+ * });
572
+ *
573
+ * // Update usage
574
+ * await autumn.v2.balances.update({
575
+ * customer_id: "cus_123",
576
+ * feature_id: "api_calls",
577
+ * usage: 100,
578
+ * });
579
+ *
580
+ * // Target specific balance by interval or balance_id
581
+ * await autumn.v2.balances.update({
582
+ * customer_id: "cus_123",
583
+ * feature_id: "api_calls",
584
+ * balance_id: "bal_xyz",
585
+ * remaining: 500,
586
+ * });
587
+ * ```
588
+ */
589
+ update: (params) => wrapper(handleBalancesUpdate, params),
590
+ /**
591
+ * Finalizes a balance lock by confirming or releasing it.
592
+ *
593
+ * @param params - Finalize lock parameters
594
+ * @returns Promise resolving to finalize lock response
595
+ *
596
+ * @example
597
+ * ```typescript
598
+ * // Confirm a lock (deduct the reserved balance)
599
+ * await autumn.v2.balances.finalize({
600
+ * lock_id: "lock_abc123",
601
+ * action: "confirm",
602
+ * });
603
+ *
604
+ * // Release a lock (return the reserved balance)
605
+ * await autumn.v2.balances.finalize({
606
+ * lock_id: "lock_abc123",
607
+ * action: "release",
608
+ * });
609
+ *
610
+ * // Confirm with a different value than originally reserved
611
+ * await autumn.v2.balances.finalize({
612
+ * lock_id: "lock_abc123",
613
+ * action: "confirm",
614
+ * override_value: 5,
615
+ * });
616
+ * ```
617
+ */
618
+ finalize: (params) => wrapper(handleBalancesFinalize, params)
619
+ };
620
+ };
621
+
622
+ // src/sdk/v2/billingMethods.ts
623
+ var V2_API_VERSION2 = "2.1.0";
624
+ var handleBillingAttach = async ({
625
+ instance,
626
+ params
627
+ }) => {
628
+ const finalParams = {
629
+ ...params,
630
+ success_url: params.success_url ?? instance.defaultReturnUrl,
631
+ redirect_mode: params.redirect_mode ?? "if_required"
632
+ };
633
+ return instance.postWithVersion(
634
+ "/billing.attach",
635
+ finalParams,
636
+ V2_API_VERSION2
637
+ );
638
+ };
639
+ var handleBillingUpdate = async ({
640
+ instance,
641
+ params
642
+ }) => {
643
+ return instance.postWithVersion("/billing.update", params, V2_API_VERSION2);
644
+ };
645
+ var handleBillingPreviewAttach = async ({
646
+ instance,
647
+ params
648
+ }) => {
649
+ return instance.postWithVersion(
650
+ "/billing.preview_attach",
651
+ params,
652
+ V2_API_VERSION2
653
+ );
654
+ };
655
+ var handleBillingPreviewUpdate = async ({
656
+ instance,
657
+ params
658
+ }) => {
659
+ return instance.postWithVersion(
660
+ "/billing.preview_update",
661
+ params,
662
+ V2_API_VERSION2
663
+ );
664
+ };
665
+ var handleBillingMultiAttach = async ({
666
+ instance,
667
+ params
668
+ }) => {
669
+ const finalParams = {
670
+ ...params,
671
+ success_url: params.success_url ?? instance.defaultReturnUrl,
672
+ redirect_mode: params.redirect_mode ?? "if_required"
673
+ };
674
+ return instance.postWithVersion(
675
+ "/billing.multi_attach",
676
+ finalParams,
677
+ V2_API_VERSION2
678
+ );
679
+ };
680
+ var handleBillingPreviewMultiAttach = async ({
681
+ instance,
682
+ params
683
+ }) => {
684
+ return instance.postWithVersion(
685
+ "/billing.preview_multi_attach",
686
+ params,
687
+ V2_API_VERSION2
688
+ );
689
+ };
690
+ var handleBillingSetupPayment = async ({
691
+ instance,
692
+ params
693
+ }) => {
694
+ const finalParams = {
695
+ ...params,
696
+ success_url: params.success_url ?? instance.defaultReturnUrl
697
+ };
698
+ return instance.postWithVersion(
699
+ "/billing.setup_payment",
700
+ finalParams,
701
+ V2_API_VERSION2
702
+ );
703
+ };
704
+ var v2BillingMethods = (instance) => {
705
+ const wrapper = (handler, params) => {
706
+ const inst = instance || new Autumn();
707
+ return handler({ instance: inst, params });
708
+ };
709
+ return {
710
+ /**
711
+ * Attaches a plan to a customer, enabling access and handling billing.
712
+ *
713
+ * @param params - Attach parameters including customer ID, plan ID, and options
714
+ * @returns Promise resolving to billing response with checkout URL if needed
715
+ *
716
+ * @example
717
+ * ```typescript
718
+ * const result = await autumn.v2.billing.attach({
719
+ * customer_id: "cus_123",
720
+ * plan_id: "pro_plan",
721
+ * success_url: "https://myapp.com/success"
722
+ * });
723
+ *
724
+ * if (result.payment_url) {
725
+ * // Payment required - redirect to checkout
726
+ * window.location.href = result.payment_url;
727
+ * }
728
+ * ```
729
+ */
730
+ attach: (params) => wrapper(handleBillingAttach, params),
731
+ /**
732
+ * Updates a customer's subscription, handling plan changes and cancellations.
733
+ *
734
+ * @param params - Update parameters including customer ID, plan ID, and cancel action
735
+ * @returns Promise resolving to billing response with invoice details
736
+ *
737
+ * @example
738
+ * ```typescript
739
+ * // Update to a new plan
740
+ * const result = await autumn.v2.billing.update({
741
+ * customer_id: "cus_123",
742
+ * plan_id: "enterprise_plan",
743
+ * feature_quantities: [{ feature_id: "seats", quantity: 10 }]
744
+ * });
745
+ *
746
+ * // Cancel at end of billing cycle
747
+ * const cancelResult = await autumn.v2.billing.update({
748
+ * customer_id: "cus_123",
749
+ * plan_id: "pro_plan",
750
+ * cancel_action: "cancel_end_of_cycle"
751
+ * });
752
+ * ```
753
+ */
754
+ update: (params) => wrapper(handleBillingUpdate, params),
755
+ /**
756
+ * Preview what attaching a plan would cost without actually attaching it.
757
+ *
758
+ * @param params - Same parameters as attach
759
+ * @returns Promise resolving to preview response with line items and totals
760
+ *
761
+ * @example
762
+ * ```typescript
763
+ * const preview = await autumn.v2.billing.previewAttach({
764
+ * customer_id: "cus_123",
765
+ * plan_id: "pro_plan"
766
+ * });
767
+ *
768
+ * console.log(`Total: $${preview.total / 100}`);
769
+ * preview.line_items.forEach(item => {
770
+ * console.log(`${item.title}: $${item.amount / 100}`);
771
+ * });
772
+ * ```
773
+ */
774
+ previewAttach: (params) => wrapper(handleBillingPreviewAttach, params),
775
+ /**
776
+ * Preview what updating a subscription would cost without actually updating it.
777
+ *
778
+ * @param params - Same parameters as update
779
+ * @returns Promise resolving to preview response with line items and totals
780
+ *
781
+ * @example
782
+ * ```typescript
783
+ * const preview = await autumn.v2.billing.previewUpdate({
784
+ * customer_id: "cus_123",
785
+ * plan_id: "enterprise_plan",
786
+ * feature_quantities: [{ feature_id: "seats", quantity: 20 }]
787
+ * });
788
+ *
789
+ * console.log(`Prorated charge: $${preview.total / 100}`);
790
+ * ```
791
+ */
792
+ previewUpdate: (params) => wrapper(handleBillingPreviewUpdate, params),
793
+ /**
794
+ * Attaches multiple plans to a customer in a single request.
795
+ *
796
+ * @param params - Multi-attach parameters including customer ID and array of plans
797
+ * @returns Promise resolving to billing response with checkout URL if needed
798
+ *
799
+ * @example
800
+ * ```typescript
801
+ * const result = await autumn.v2.billing.multiAttach({
802
+ * customer_id: "cus_123",
803
+ * plans: [
804
+ * { plan_id: "base_plan" },
805
+ * { plan_id: "addon_plan", feature_quantities: [{ feature_id: "seats", quantity: 5 }] }
806
+ * ],
807
+ * success_url: "https://myapp.com/success"
808
+ * });
809
+ * ```
810
+ */
811
+ multiAttach: (params) => wrapper(handleBillingMultiAttach, params),
812
+ /**
813
+ * Preview what attaching multiple plans would cost without actually attaching them.
814
+ *
815
+ * @param params - Same parameters as multiAttach
816
+ * @returns Promise resolving to preview response with line items and totals
817
+ *
818
+ * @example
819
+ * ```typescript
820
+ * const preview = await autumn.v2.billing.previewMultiAttach({
821
+ * customer_id: "cus_123",
822
+ * plans: [
823
+ * { plan_id: "base_plan" },
824
+ * { plan_id: "addon_plan" }
825
+ * ]
826
+ * });
827
+ *
828
+ * console.log(`Total: $${preview.total / 100}`);
829
+ * ```
830
+ */
831
+ previewMultiAttach: (params) => wrapper(handleBillingPreviewMultiAttach, params),
832
+ /**
833
+ * Sets up a payment method for a customer. Optionally attach a plan after setup.
834
+ *
835
+ * @param params - Setup payment parameters including customer ID and optional plan
836
+ * @returns Promise resolving to setup payment response with redirect URL
837
+ *
838
+ * @example
839
+ * ```typescript
840
+ * // Just setup payment method
841
+ * const result = await autumn.v2.billing.setupPayment({
842
+ * customer_id: "cus_123",
843
+ * success_url: "https://myapp.com/account"
844
+ * });
845
+ *
846
+ * // Setup payment and attach a plan after
847
+ * const result = await autumn.v2.billing.setupPayment({
848
+ * customer_id: "cus_123",
849
+ * plan_id: "pro_plan",
850
+ * success_url: "https://myapp.com/success"
851
+ * });
852
+ *
853
+ * // Redirect to Stripe
854
+ * window.location.href = result.url;
855
+ * ```
856
+ */
857
+ setupPayment: (params) => wrapper(handleBillingSetupPayment, params)
858
+ };
859
+ };
860
+
861
+ // src/sdk/client.ts
862
+ var LATEST_API_VERSION = "1.2";
863
+ var Autumn = class {
864
+ secretKey;
865
+ publishableKey;
866
+ headers;
867
+ url;
868
+ logger = console;
869
+ defaultReturnUrl;
870
+ constructor(options) {
871
+ try {
872
+ this.secretKey = options?.secretKey || process.env.AUTUMN_SECRET_KEY;
873
+ this.publishableKey = options?.publishableKey || process.env.AUTUMN_PUBLISHABLE_KEY;
874
+ } catch (error) {
875
+ }
876
+ if (!this.secretKey && !this.publishableKey && !options?.headers) {
877
+ throw new Error("Autumn secret key or publishable key is required");
878
+ }
879
+ this.headers = options?.headers || {
880
+ Authorization: `Bearer ${this.secretKey || this.publishableKey}`,
881
+ "Content-Type": "application/json"
882
+ };
883
+ const version = options?.version || LATEST_API_VERSION;
884
+ this.headers["x-api-version"] = version;
885
+ this.url = options?.url || autumnApiUrl;
886
+ this.logger = logger;
887
+ this.logger.level = options?.logLevel || "info";
888
+ this.defaultReturnUrl = options?.defaultReturnUrl;
889
+ }
890
+ async get(path) {
891
+ const response = await fetch(`${this.url}${path}`, {
892
+ headers: this.headers
893
+ });
894
+ return toContainerResult({ response, logger: this.logger });
895
+ }
896
+ async post(path, body) {
897
+ try {
898
+ const response = await fetch(`${this.url}${path}`, {
899
+ method: "POST",
900
+ headers: this.headers,
901
+ body: JSON.stringify(body)
902
+ });
903
+ return toContainerResult({ response, logger: this.logger });
904
+ } catch (error) {
905
+ console.error("Error sending request:", error);
906
+ throw error;
907
+ }
908
+ }
909
+ async postWithVersion(path, body, version) {
910
+ try {
911
+ const headers = {
912
+ ...this.headers,
913
+ "x-api-version": version
914
+ };
915
+ const response = await fetch(`${this.url}${path}`, {
916
+ method: "POST",
917
+ headers,
918
+ body: JSON.stringify(body)
919
+ });
920
+ return toContainerResult({ response, logger: this.logger });
921
+ } catch (error) {
922
+ console.error("Error sending request:", error);
923
+ throw error;
924
+ }
925
+ }
926
+ async delete(path) {
927
+ const response = await fetch(`${this.url}${path}`, {
928
+ method: "DELETE",
929
+ headers: this.headers
930
+ });
931
+ return toContainerResult({ response, logger: this.logger });
932
+ }
933
+ static customers = customerMethods();
934
+ static products = productMethods();
935
+ static entities = entityMethods();
936
+ static referrals = referralMethods();
937
+ static features = featureMethods();
938
+ static events = eventMethods();
939
+ static balances = balanceMethods();
940
+ static v2 = {
941
+ billing: v2BillingMethods(),
942
+ balances: v2BalancesMethods()
943
+ };
944
+ customers = customerMethods(this);
945
+ products = productMethods(this);
946
+ entities = entityMethods(this);
947
+ referrals = referralMethods(this);
948
+ features = featureMethods(this);
949
+ events = eventMethods(this);
950
+ balances = balanceMethods(this);
951
+ v2 = {
952
+ billing: v2BillingMethods(this),
953
+ balances: v2BalancesMethods(this)
954
+ };
955
+ /**
956
+ * Initiates a checkout flow for a product purchase.
957
+ *
958
+ * The checkout function handles the purchase process for products with pricing.
959
+ * It determines whether to show a dialog for user input or redirect directly
960
+ * to Stripe based on the customer's state and product requirements.
961
+ *
962
+ * @param params - Checkout parameters including product ID, customer data, and options
963
+ * @returns Promise resolving to checkout details including pricing, prorations, and URLs
964
+ *
965
+ * @example
966
+ * ```typescript
967
+ * const result = await autumn.checkout({
968
+ * customer_id: "user_123",
969
+ * product_id: "pro",
970
+ * success_url: "https://myapp.com/success"
971
+ * });
972
+ *
973
+ * if (result.url) {
974
+ * // Redirect to Stripe checkout
975
+ * window.location.href = result.url;
976
+ * }
977
+ * ```
978
+ */
979
+ async checkout(params) {
980
+ return handleCheckout({
981
+ instance: this,
982
+ params
983
+ });
984
+ }
985
+ static checkout = (params) => staticWrapper(handleCheckout, void 0, { params });
986
+ static usage = (params) => staticWrapper(handleUsage, void 0, { params });
987
+ /**
988
+ * Attaches a product to a customer, enabling access and handling billing.
989
+ *
990
+ * The attach function activates a product for a customer and applies all product items.
991
+ * When you attach a product:
992
+ * - The customer gains access to all features in the product
993
+ * - If the product has prices, the customer will be billed accordingly
994
+ * - If there's no existing payment method, a checkout URL will be generated
995
+ *
996
+ * @param params - Attach parameters including customer ID, product ID, and options
997
+ * @returns Promise resolving to attachment result with checkout URL if needed
998
+ *
999
+ * @example
1000
+ * ```typescript
1001
+ * const result = await autumn.attach({
1002
+ * customer_id: "user_123",
1003
+ * product_id: "pro",
1004
+ * success_url: "https://myapp.com/success"
1005
+ * });
1006
+ *
1007
+ * if (result.checkout_url) {
1008
+ * // Payment required - redirect to checkout
1009
+ * window.location.href = result.checkout_url;
1010
+ * } else {
1011
+ * // Product successfully attached
1012
+ * console.log("Access granted:", result.message);
1013
+ * }
1014
+ * ```
1015
+ */
1016
+ async attach(params) {
1017
+ return handleAttach({
1018
+ instance: this,
1019
+ params
1020
+ });
1021
+ }
1022
+ static attach = (params) => staticWrapper(handleAttach, void 0, { params });
1023
+ static setupPayment = (params) => staticWrapper(handleSetupPayment, void 0, { params });
1024
+ /**
1025
+ * Sets up a payment method for a customer.
1026
+ *
1027
+ * This method allows you to set up payment methods for customers without
1028
+ * immediately charging them. Useful for collecting payment information
1029
+ * before product attachment or for updating existing payment methods.
1030
+ *
1031
+ * @param params - Setup payment parameters including customer information
1032
+ * @returns Promise resolving to setup payment result
1033
+ *
1034
+ * @example
1035
+ * ```typescript
1036
+ * const result = await autumn.setupPayment({
1037
+ * customer_id: "user_123"
1038
+ * });
1039
+ * ```
1040
+ */
1041
+ async setupPayment(params) {
1042
+ return handleSetupPayment({
1043
+ instance: this,
1044
+ params
1045
+ });
1046
+ }
1047
+ static cancel = (params) => staticWrapper(handleCancel, void 0, { params });
1048
+ /**
1049
+ * Cancels a customer's subscription or product attachment.
1050
+ *
1051
+ * This method allows you to cancel a customer's subscription to a specific product.
1052
+ * You can choose to cancel immediately or at the end of the billing cycle.
1053
+ *
1054
+ * @param params - Cancel parameters including customer ID and product ID
1055
+ * @returns Promise resolving to cancellation result
1056
+ *
1057
+ * @example
1058
+ * ```typescript
1059
+ * const result = await autumn.cancel({
1060
+ * customer_id: "user_123",
1061
+ * product_id: "pro",
1062
+ * cancel_immediately: false // Cancel at end of billing cycle
1063
+ * });
1064
+ * ```
1065
+ */
1066
+ async cancel(params) {
1067
+ return handleCancel({
1068
+ instance: this,
1069
+ params
1070
+ });
1071
+ }
1072
+ static check = (params) => staticWrapper(handleCheck, void 0, { params });
1073
+ /**
1074
+ * Checks if a customer has access to a specific feature.
1075
+ *
1076
+ * This method verifies whether a customer has permission to use a feature
1077
+ * and checks their remaining balance/usage limits. It can be used to gate
1078
+ * features and determine when to show upgrade prompts.
1079
+ *
1080
+ * @param params - Check parameters including customer ID and feature ID
1081
+ * @returns Promise resolving to access check result with allowed status and balance info
1082
+ *
1083
+ * @example
1084
+ * ```typescript
1085
+ * const result = await autumn.check({
1086
+ * customer_id: "user_123",
1087
+ * feature_id: "messages",
1088
+ * required_balance: 1
1089
+ * });
1090
+ *
1091
+ * if (!result.allowed) {
1092
+ * console.log("Feature access denied - upgrade required");
1093
+ * }
1094
+ * ```
1095
+ */
1096
+ async check(params) {
1097
+ return handleCheck({
1098
+ instance: this,
1099
+ params
1100
+ });
1101
+ }
1102
+ static track = (params) => staticWrapper(handleTrack, void 0, { params });
1103
+ /**
1104
+ * Tracks usage events for features or analytics.
1105
+ *
1106
+ * This method records usage events for metered features, updating the customer's
1107
+ * balance and usage statistics. It's typically used server-side to ensure
1108
+ * accurate tracking that cannot be manipulated by users.
1109
+ *
1110
+ * @param params - Track parameters including customer ID, feature ID, and usage value
1111
+ * @returns Promise resolving to tracking result
1112
+ *
1113
+ * @example
1114
+ * ```typescript
1115
+ * const result = await autumn.track({
1116
+ * customer_id: "user_123",
1117
+ * feature_id: "messages",
1118
+ * value: 1 // Track 1 message sent
1119
+ * });
1120
+ * ```
1121
+ */
1122
+ async track(params) {
1123
+ return handleTrack({
1124
+ instance: this,
1125
+ params
1126
+ });
1127
+ }
1128
+ /**
1129
+ * Retrieves usage statistics and analytics for a customer.
1130
+ *
1131
+ * This method fetches detailed usage information for a customer's features,
1132
+ * including current balances, usage history, and analytics data. Useful
1133
+ * for displaying usage dashboards or generating reports.
1134
+ *
1135
+ * @param params - Usage parameters including customer ID and optional filters
1136
+ * @returns Promise resolving to usage statistics and analytics data
1137
+ *
1138
+ * @example
1139
+ * ```typescript
1140
+ * const result = await autumn.usage({
1141
+ * customer_id: "user_123",
1142
+ * feature_id: "messages"
1143
+ * value: 20 // Usage value
1144
+ * });
1145
+ * ```
1146
+ */
1147
+ async usage(params) {
1148
+ return handleUsage({
1149
+ instance: this,
1150
+ params
1151
+ });
1152
+ }
1153
+ static query = (params) => staticWrapper(handleQuery, void 0, { params });
1154
+ /**
1155
+ * Performs advanced queries on customer data and analytics.
1156
+ *
1157
+ * This method allows you to run complex queries against customer data,
1158
+ * usage patterns, and billing information. Useful for generating reports,
1159
+ * analytics, and custom data insights.
1160
+ *
1161
+ * @param params - Query parameters including customer ID and query specifications
1162
+ * @returns Promise resolving to query results with requested data
1163
+ *
1164
+ * @example
1165
+ * ```typescript
1166
+ * const result = await autumn.query({
1167
+ * customer_id: "user_123",
1168
+ * feature_id: "messages" // feature id to fetch for query, can also be an array
1169
+ * });
1170
+ *
1171
+ * ```
1172
+ */
1173
+ async query(params) {
1174
+ return handleQuery({
1175
+ instance: this,
1176
+ params
1177
+ });
1178
+ }
1179
+ };
1180
+
1181
+ // src/sdk/customers/cusEnums.ts
1182
+ var import_v4 = require("zod/v4");
1183
+ var CustomerExpandEnum = import_v4.z.enum([
1184
+ "invoices",
1185
+ "rewards",
1186
+ "trials_used",
1187
+ "entities",
1188
+ "referrals",
1189
+ "payment_method"
1190
+ ]);
1191
+
1192
+ // src/sdk/customers/cusTypes.ts
1193
+ var import_v42 = require("zod/v4");
1194
+
1195
+ // src/sdk/products/prodEnums.ts
1196
+ var ProductItemInterval = /* @__PURE__ */ ((ProductItemInterval2) => {
1197
+ ProductItemInterval2["Minute"] = "minute";
1198
+ ProductItemInterval2["Hour"] = "hour";
1199
+ ProductItemInterval2["Day"] = "day";
1200
+ ProductItemInterval2["Week"] = "week";
1201
+ ProductItemInterval2["Month"] = "month";
1202
+ ProductItemInterval2["Quarter"] = "quarter";
1203
+ ProductItemInterval2["SemiAnnual"] = "semi_annual";
1204
+ ProductItemInterval2["Year"] = "year";
1205
+ ProductItemInterval2["Multiple"] = "multiple";
1206
+ return ProductItemInterval2;
1207
+ })(ProductItemInterval || {});
1208
+
1209
+ // src/sdk/customers/cusTypes.ts
1210
+ var PurchaseLimitInterval = ["hour", "day", "week", "month"];
1211
+ var PurchaseLimitIntervalEnum = import_v42.z.enum(PurchaseLimitInterval);
1212
+ var AutoTopupPurchaseLimitSchema = import_v42.z.object({
1213
+ interval: PurchaseLimitIntervalEnum,
1214
+ interval_count: import_v42.z.number().min(1).default(1),
1215
+ limit: import_v42.z.number().min(1)
1216
+ });
1217
+ var AutoTopupSchema = import_v42.z.object({
1218
+ feature_id: import_v42.z.string(),
1219
+ enabled: import_v42.z.boolean().default(false),
1220
+ threshold: import_v42.z.number().min(0),
1221
+ quantity: import_v42.z.number().min(1),
1222
+ purchase_limit: AutoTopupPurchaseLimitSchema.optional()
1223
+ });
1224
+ var CustomerBillingControlsSchema = import_v42.z.object({
1225
+ auto_topups: import_v42.z.array(AutoTopupSchema).optional()
1226
+ });
1227
+ var CoreCusFeatureSchema = import_v42.z.object({
1228
+ unlimited: import_v42.z.boolean().optional(),
1229
+ interval: import_v42.z.enum(ProductItemInterval).optional(),
1230
+ balance: import_v42.z.number().nullish(),
1231
+ usage: import_v42.z.number().optional(),
1232
+ included_usage: import_v42.z.number().optional(),
1233
+ next_reset_at: import_v42.z.number().nullish(),
1234
+ overage_allowed: import_v42.z.boolean().optional(),
1235
+ usage_limit: import_v42.z.number().optional(),
1236
+ rollovers: import_v42.z.object({
1237
+ balance: import_v42.z.number(),
1238
+ expires_at: import_v42.z.number()
1239
+ }).optional(),
1240
+ breakdown: import_v42.z.array(
1241
+ import_v42.z.object({
1242
+ interval: import_v42.z.enum(ProductItemInterval),
1243
+ balance: import_v42.z.number().optional(),
1244
+ usage: import_v42.z.number().optional(),
1245
+ included_usage: import_v42.z.number().optional(),
1246
+ next_reset_at: import_v42.z.number().optional()
1247
+ })
1248
+ ).optional(),
1249
+ credit_schema: import_v42.z.array(
1250
+ import_v42.z.object({
1251
+ feature_id: import_v42.z.string(),
1252
+ credit_amount: import_v42.z.number()
1253
+ })
1254
+ ).optional()
1255
+ });
1256
+ var CustomerDataSchema = import_v42.z.object({
1257
+ name: import_v42.z.string().nullish(),
1258
+ email: import_v42.z.string().nullish(),
1259
+ fingerprint: import_v42.z.string().nullish()
1260
+ });
1261
+ var CreateCustomerParamsSchema = import_v42.z.object({
1262
+ id: import_v42.z.string().nullish(),
1263
+ email: import_v42.z.string().nullish(),
1264
+ name: import_v42.z.string().nullish(),
1265
+ fingerprint: import_v42.z.string().nullish(),
1266
+ metadata: import_v42.z.record(import_v42.z.string(), import_v42.z.any()).optional(),
1267
+ expand: import_v42.z.array(CustomerExpandEnum).optional(),
1268
+ stripe_id: import_v42.z.string().nullish(),
1269
+ auto_enable_plan_id: import_v42.z.string().optional(),
1270
+ billing_controls: CustomerBillingControlsSchema.optional()
1271
+ });
1272
+ var BillingPortalParamsSchema = import_v42.z.object({
1273
+ return_url: import_v42.z.string().optional()
1274
+ });
1275
+ var UpdateBalancesParamsSchema = import_v42.z.object({
1276
+ feature_id: import_v42.z.string(),
1277
+ balance: import_v42.z.number()
1278
+ }).or(
1279
+ import_v42.z.array(
1280
+ import_v42.z.object({
1281
+ feature_id: import_v42.z.string(),
1282
+ balance: import_v42.z.number()
1283
+ })
1284
+ )
1285
+ ).or(
1286
+ import_v42.z.object({
1287
+ entity_id: import_v42.z.string().optional(),
1288
+ balances: import_v42.z.array(
1289
+ import_v42.z.object({
1290
+ feature_id: import_v42.z.string(),
1291
+ balance: import_v42.z.number()
1292
+ })
1293
+ )
1294
+ })
1295
+ );
1296
+ var DeleteCustomerParamsSchema = import_v42.z.object({
1297
+ delete_in_stripe: import_v42.z.boolean().optional()
1298
+ });
1299
+ var ListCustomersParamsSchema = import_v42.z.object({
1300
+ limit: import_v42.z.number().optional(),
1301
+ offset: import_v42.z.number().optional()
1302
+ });
1303
+
1304
+ // src/sdk/customers/entities/entTypes.ts
1305
+ var import_v43 = require("zod/v4");
1306
+ var EntityDataSchema = import_v43.z.object({
1307
+ name: import_v43.z.string().optional(),
1308
+ feature_id: import_v43.z.string()
1309
+ });
1310
+ var TransferProductParamsSchema = import_v43.z.object({
1311
+ from_entity_id: import_v43.z.string(),
1312
+ to_entity_id: import_v43.z.string(),
1313
+ product_id: import_v43.z.string()
1314
+ });
1315
+
1316
+ // src/sdk/general/pageTypes.ts
1317
+ var import_v44 = require("zod/v4");
1318
+ var PagePaginationDefaults = {
1319
+ Limit: 100,
1320
+ MaxLimit: 1e3
1321
+ };
1322
+ var PagePaginationQuerySchema = import_v44.z.object({
1323
+ offset: import_v44.z.coerce.number().int().min(0).default(0).describe("Number of items to skip"),
1324
+ limit: import_v44.z.coerce.number().int().min(1).max(PagePaginationDefaults.MaxLimit).default(PagePaginationDefaults.Limit).describe(
1325
+ `Number of items to return. Default ${PagePaginationDefaults.Limit}, max ${PagePaginationDefaults.MaxLimit}.`
1326
+ )
1327
+ });
1328
+ var createPagePaginatedResponseSchema = (itemSchema) => import_v44.z.object({
1329
+ list: import_v44.z.array(itemSchema).describe("Array of items for current page"),
1330
+ has_more: import_v44.z.boolean().describe("Whether more results exist after this page"),
1331
+ offset: import_v44.z.number().describe("Current offset position"),
1332
+ limit: import_v44.z.number().describe("Limit passed in the request"),
1333
+ total: import_v44.z.number().describe("Total number of items returned in the current page")
1334
+ });
1335
+
1336
+ // src/sdk/events/eventTypes.ts
1337
+ var import_v45 = require("zod/v4");
1338
+ var QueryRangeEnum = import_v45.z.enum([
1339
+ "24h",
1340
+ "7d",
1341
+ "30d",
1342
+ "90d",
1343
+ "last_cycle",
1344
+ "1bc",
1345
+ "3bc"
1346
+ ]);
1347
+ var BinSizeEnum = import_v45.z.enum(["day", "hour"]);
1348
+ var QueryParamsSchema = import_v45.z.object({
1349
+ customer_id: import_v45.z.string(),
1350
+ feature_id: import_v45.z.string().or(import_v45.z.array(import_v45.z.string())),
1351
+ range: QueryRangeEnum.optional(),
1352
+ group_by: import_v45.z.string().startsWith("properties.").optional(),
1353
+ bin_size: BinSizeEnum.optional(),
1354
+ custom_range: import_v45.z.object({
1355
+ start: import_v45.z.number(),
1356
+ end: import_v45.z.number()
1357
+ }).optional()
1358
+ });
1359
+ var EventsListParamsSchema = PagePaginationQuerySchema.extend({
1360
+ customer_id: import_v45.z.string(),
1361
+ feature_id: import_v45.z.string().or(import_v45.z.array(import_v45.z.string())),
1362
+ custom_range: import_v45.z.object({
1363
+ start: import_v45.z.coerce.number().optional(),
1364
+ end: import_v45.z.coerce.number().optional()
1365
+ }).optional()
1366
+ });
1367
+ var EventsListItemSchema = import_v45.z.object({
1368
+ id: import_v45.z.string().describe("Event ID (KSUID)"),
1369
+ timestamp: import_v45.z.number().describe("Event timestamp (epoch milliseconds)"),
1370
+ feature_id: import_v45.z.string().describe("Name of the event"),
1371
+ customer_id: import_v45.z.string().describe("Customer identifier"),
1372
+ value: import_v45.z.number().describe("Event value/count"),
1373
+ properties: import_v45.z.object({}).describe("Event properties (JSONB)")
1374
+ });
1375
+ var EventsListResponseSchema = createPagePaginatedResponseSchema(EventsListItemSchema);
1376
+
1377
+ // src/sdk/features/featureTypes.ts
1378
+ var import_v46 = require("zod/v4");
1379
+ var FeatureType = /* @__PURE__ */ ((FeatureType2) => {
1380
+ FeatureType2["Boolean"] = "boolean";
1381
+ FeatureType2["SingleUse"] = "single_use";
1382
+ FeatureType2["ContinuousUse"] = "continuous_use";
1383
+ FeatureType2["CreditSystem"] = "credit_system";
1384
+ return FeatureType2;
1385
+ })(FeatureType || {});
1386
+ var FeatureSchema = import_v46.z.object({
1387
+ id: import_v46.z.string(),
1388
+ name: import_v46.z.string(),
1389
+ type: import_v46.z.enum(FeatureType),
1390
+ display: import_v46.z.object({
1391
+ singular: import_v46.z.string(),
1392
+ plural: import_v46.z.string()
1393
+ }).nullish(),
1394
+ credit_schema: import_v46.z.array(
1395
+ import_v46.z.object({
1396
+ metered_feature_id: import_v46.z.string(),
1397
+ credit_cost: import_v46.z.number()
1398
+ })
1399
+ ).nullish(),
1400
+ archived: import_v46.z.boolean()
1401
+ });
1402
+
1403
+ // src/sdk/general/attachTypes.ts
1404
+ var import_v47 = require("zod/v4");
1405
+ var AttachFeatureOptionsSchema = import_v47.z.object({
1406
+ feature_id: import_v47.z.string(),
1407
+ quantity: import_v47.z.number()
1408
+ });
1409
+ var AttachParamsSchema = import_v47.z.object({
1410
+ customer_id: import_v47.z.string(),
1411
+ product_id: import_v47.z.string().optional(),
1412
+ entity_id: import_v47.z.string().optional(),
1413
+ options: import_v47.z.array(AttachFeatureOptionsSchema).optional(),
1414
+ product_ids: import_v47.z.array(import_v47.z.string()).optional(),
1415
+ free_trial: import_v47.z.boolean().optional(),
1416
+ success_url: import_v47.z.string().optional(),
1417
+ metadata: import_v47.z.record(import_v47.z.string(), import_v47.z.string()).optional(),
1418
+ force_checkout: import_v47.z.boolean().optional(),
1419
+ customer_data: CustomerDataSchema.optional(),
1420
+ entity_data: import_v47.z.any().optional(),
1421
+ checkout_session_params: import_v47.z.record(import_v47.z.string(), import_v47.z.any()).optional(),
1422
+ reward: import_v47.z.string().optional(),
1423
+ invoice: import_v47.z.boolean().optional(),
1424
+ new_billing_subscription: import_v47.z.boolean().optional()
1425
+ });
1426
+ var AttachResultSchema = import_v47.z.object({
1427
+ checkout_url: import_v47.z.string().optional(),
1428
+ customer_id: import_v47.z.string(),
1429
+ product_ids: import_v47.z.array(import_v47.z.string()),
1430
+ code: import_v47.z.string(),
1431
+ message: import_v47.z.string(),
1432
+ customer_data: import_v47.z.any().optional(),
1433
+ invoice: import_v47.z.object({
1434
+ status: import_v47.z.string(),
1435
+ stripe_id: import_v47.z.string(),
1436
+ hosted_invoice_url: import_v47.z.string().nullable(),
1437
+ total: import_v47.z.number(),
1438
+ currency: import_v47.z.string()
1439
+ }).optional()
1440
+ });
1441
+ var CheckoutParamsSchema = import_v47.z.object({
1442
+ customer_id: import_v47.z.string(),
1443
+ product_id: import_v47.z.string(),
1444
+ product_ids: import_v47.z.array(import_v47.z.string()).optional(),
1445
+ entity_id: import_v47.z.string().optional(),
1446
+ options: import_v47.z.array(AttachFeatureOptionsSchema).optional(),
1447
+ force_checkout: import_v47.z.boolean().optional(),
1448
+ invoice: import_v47.z.boolean().optional(),
1449
+ success_url: import_v47.z.string().optional(),
1450
+ customer_data: CustomerDataSchema.optional(),
1451
+ entity_data: import_v47.z.any().optional(),
1452
+ checkout_session_params: import_v47.z.record(import_v47.z.string(), import_v47.z.any()).optional(),
1453
+ reward: import_v47.z.string().optional(),
1454
+ new_billing_subscription: import_v47.z.boolean().optional()
1455
+ });
1456
+
1457
+ // src/sdk/general/checkTypes.ts
1458
+ var import_v48 = require("zod/v4");
1459
+ var CheckFeatureResultSchema = import_v48.z.object({
1460
+ allowed: import_v48.z.boolean(),
1461
+ feature_id: import_v48.z.string(),
1462
+ customer_id: import_v48.z.string(),
1463
+ entity_id: import_v48.z.string().optional(),
1464
+ required_balance: import_v48.z.number()
1465
+ }).extend(CoreCusFeatureSchema.shape);
1466
+
1467
+ // src/sdk/general/genTypes.ts
1468
+ var import_v49 = require("zod/v4");
1469
+ var LockParamsSchema = import_v49.z.object({
1470
+ lock_id: import_v49.z.string().max(256),
1471
+ enabled: import_v49.z.literal(true),
1472
+ expires_at: import_v49.z.number().optional()
1473
+ });
1474
+ var CancelParamsSchema = import_v49.z.object({
1475
+ customer_id: import_v49.z.string(),
1476
+ product_id: import_v49.z.string(),
1477
+ entity_id: import_v49.z.string().optional(),
1478
+ cancel_immediately: import_v49.z.boolean().optional(),
1479
+ prorate: import_v49.z.boolean().optional()
1480
+ });
1481
+ var CancelResultSchema = import_v49.z.object({
1482
+ success: import_v49.z.boolean(),
1483
+ customer_id: import_v49.z.string(),
1484
+ product_id: import_v49.z.string()
1485
+ });
1486
+ var TrackParamsSchema = import_v49.z.object({
1487
+ customer_id: import_v49.z.string(),
1488
+ value: import_v49.z.number().optional(),
1489
+ feature_id: import_v49.z.string().optional(),
1490
+ event_name: import_v49.z.string().optional(),
1491
+ entity_id: import_v49.z.string().optional(),
1492
+ customer_data: import_v49.z.any().optional(),
1493
+ idempotency_key: import_v49.z.string().optional(),
1494
+ entity_data: import_v49.z.any().optional(),
1495
+ properties: import_v49.z.record(import_v49.z.string(), import_v49.z.any()).optional(),
1496
+ lock: LockParamsSchema.optional()
1497
+ });
1498
+ var TrackResultSchema = import_v49.z.object({
1499
+ id: import_v49.z.string(),
1500
+ code: import_v49.z.string(),
1501
+ customer_id: import_v49.z.string(),
1502
+ feature_id: import_v49.z.string().optional(),
1503
+ event_name: import_v49.z.string().optional()
1504
+ });
1505
+ var CheckParamsSchema = import_v49.z.object({
1506
+ customer_id: import_v49.z.string(),
1507
+ feature_id: import_v49.z.string().optional(),
1508
+ product_id: import_v49.z.string().optional(),
1509
+ entity_id: import_v49.z.string().optional(),
1510
+ customer_data: import_v49.z.any().optional(),
1511
+ required_balance: import_v49.z.number().optional(),
1512
+ send_event: import_v49.z.boolean().optional(),
1513
+ with_preview: import_v49.z.boolean().optional(),
1514
+ entity_data: EntityDataSchema.optional(),
1515
+ lock: LockParamsSchema.optional()
1516
+ });
1517
+
1518
+ // src/sdk/referrals/referralTypes.ts
1519
+ var import_v410 = require("zod/v4");
1520
+ var CreateReferralCodeParamsSchema = import_v410.z.object({
1521
+ customer_id: import_v410.z.string(),
1522
+ program_id: import_v410.z.string()
1523
+ });
1524
+ var RedeemReferralCodeParamsSchema = import_v410.z.object({
1525
+ code: import_v410.z.string(),
1526
+ customer_id: import_v410.z.string()
1527
+ });
1528
+
1529
+ // src/sdk/balances/balancesTypes.ts
1530
+ var import_v411 = require("zod/v4");
1531
+ var ResetInterval = [
1532
+ "one_off",
1533
+ "minute",
1534
+ "hour",
1535
+ "day",
1536
+ "week",
1537
+ "month",
1538
+ "quarter",
1539
+ "semi_annual",
1540
+ "year"
1541
+ ];
1542
+ var CreateBalanceParamsSchema = import_v411.z.object({
1543
+ feature_id: import_v411.z.string().describe("The feature ID to create the balance for"),
1544
+ customer_id: import_v411.z.string().describe("The customer ID to assign the balance to"),
1545
+ entity_id: import_v411.z.string().optional().describe("Entity ID for entity-scoped balances"),
1546
+ granted_balance: import_v411.z.number().optional().describe("The initial balance amount to grant"),
1547
+ unlimited: import_v411.z.boolean().optional().describe("Whether the balance is unlimited"),
1548
+ reset: import_v411.z.object({
1549
+ interval: import_v411.z.enum(ResetInterval),
1550
+ interval_count: import_v411.z.number().optional()
1551
+ }).optional().describe("Reset configuration for the balance"),
1552
+ expires_at: import_v411.z.number().optional().describe("Unix timestamp (milliseconds) when the balance expires")
1553
+ });
1554
+
1555
+ // src/sdk/v2/billingTypes.ts
1556
+ var import_v412 = require("zod/v4");
1557
+ var BillingIntervalSchema = import_v412.z.enum([
1558
+ "one_off",
1559
+ "week",
1560
+ "month",
1561
+ "quarter",
1562
+ "semi_annual",
1563
+ "year"
1564
+ ]);
1565
+ var ResetIntervalSchema = import_v412.z.enum([
1566
+ "one_off",
1567
+ "minute",
1568
+ "hour",
1569
+ "day",
1570
+ "week",
1571
+ "month",
1572
+ "quarter",
1573
+ "semi_annual",
1574
+ "year"
1575
+ ]);
1576
+ var BillingMethodSchema = import_v412.z.enum(["prepaid", "usage_based"]);
1577
+ var OnIncreaseSchema = import_v412.z.enum([
1578
+ "bill_immediately",
1579
+ "prorate_immediately",
1580
+ "prorate_next_cycle",
1581
+ "bill_next_cycle"
1582
+ ]);
1583
+ var OnDecreaseSchema = import_v412.z.enum([
1584
+ "prorate",
1585
+ "prorate_immediately",
1586
+ "prorate_next_cycle",
1587
+ "none",
1588
+ "no_prorations"
1589
+ ]);
1590
+ var RolloverExpiryDurationTypeSchema = import_v412.z.enum(["month", "forever"]);
1591
+ var FeatureQuantityParamsSchema = import_v412.z.object({
1592
+ feature_id: import_v412.z.string(),
1593
+ quantity: import_v412.z.number().min(0).optional(),
1594
+ adjustable: import_v412.z.boolean().optional()
1595
+ });
1596
+ var FreeTrialParamsSchema = import_v412.z.object({
1597
+ duration_length: import_v412.z.number(),
1598
+ duration_type: import_v412.z.enum(["day", "month", "year"]).default("month"),
1599
+ card_required: import_v412.z.boolean().default(true)
1600
+ });
1601
+ var AttachDiscountSchema = import_v412.z.union([
1602
+ import_v412.z.object({ reward_id: import_v412.z.string() }),
1603
+ import_v412.z.object({ promotion_code: import_v412.z.string() })
1604
+ ]);
1605
+ var InvoiceModeParamsSchema = import_v412.z.object({
1606
+ enabled: import_v412.z.boolean(),
1607
+ enable_plan_immediately: import_v412.z.boolean().default(false),
1608
+ finalize: import_v412.z.boolean().default(true)
1609
+ });
1610
+ var ProrationBehaviorSchema = import_v412.z.enum(["prorate_immediately", "none"]);
1611
+ var RedirectModeSchema = import_v412.z.enum(["always", "if_required", "never"]);
1612
+ var PlanScheduleSchema = import_v412.z.enum(["immediate", "end_of_cycle"]);
1613
+ var CancelActionSchema = import_v412.z.enum([
1614
+ "cancel_immediately",
1615
+ "cancel_end_of_cycle",
1616
+ "uncancel"
1617
+ ]);
1618
+ var UsageTierSchema = import_v412.z.object({
1619
+ to: import_v412.z.number().or(import_v412.z.literal("inf")),
1620
+ amount: import_v412.z.number()
1621
+ });
1622
+ var BasePriceParamsSchema = import_v412.z.object({
1623
+ amount: import_v412.z.number(),
1624
+ interval: BillingIntervalSchema,
1625
+ interval_count: import_v412.z.number().optional()
1626
+ });
1627
+ var CreatePlanItemParamsSchema = import_v412.z.object({
1628
+ feature_id: import_v412.z.string(),
1629
+ included: import_v412.z.number().optional(),
1630
+ unlimited: import_v412.z.boolean().optional(),
1631
+ reset: import_v412.z.object({
1632
+ interval: ResetIntervalSchema,
1633
+ interval_count: import_v412.z.number().optional()
1634
+ }).optional(),
1635
+ price: import_v412.z.object({
1636
+ amount: import_v412.z.number().optional(),
1637
+ tiers: import_v412.z.array(UsageTierSchema).optional(),
1638
+ interval: BillingIntervalSchema,
1639
+ interval_count: import_v412.z.number().default(1).optional(),
1640
+ billing_units: import_v412.z.number().default(1).optional(),
1641
+ billing_method: BillingMethodSchema,
1642
+ max_purchase: import_v412.z.number().optional()
1643
+ }).optional(),
1644
+ proration: import_v412.z.object({
1645
+ on_increase: OnIncreaseSchema,
1646
+ on_decrease: OnDecreaseSchema
1647
+ }).optional(),
1648
+ rollover: import_v412.z.object({
1649
+ max: import_v412.z.number().optional(),
1650
+ expiry_duration_type: RolloverExpiryDurationTypeSchema,
1651
+ expiry_duration_length: import_v412.z.number().optional()
1652
+ }).optional()
1653
+ });
1654
+ var CustomizePlanSchema = import_v412.z.object({
1655
+ price: BasePriceParamsSchema.nullable().optional(),
1656
+ items: import_v412.z.array(CreatePlanItemParamsSchema).optional(),
1657
+ free_trial: FreeTrialParamsSchema.nullable().optional()
1658
+ });
1659
+ var CustomLineItemSchema = import_v412.z.object({
1660
+ amount: import_v412.z.number(),
1661
+ description: import_v412.z.string()
1662
+ });
1663
+ var BillingParamsBaseSchema = import_v412.z.object({
1664
+ customer_id: import_v412.z.string(),
1665
+ entity_id: import_v412.z.string().optional(),
1666
+ feature_quantities: import_v412.z.array(FeatureQuantityParamsSchema).optional(),
1667
+ version: import_v412.z.number().optional(),
1668
+ customize: CustomizePlanSchema.optional(),
1669
+ invoice_mode: InvoiceModeParamsSchema.optional(),
1670
+ proration_behavior: ProrationBehaviorSchema.optional(),
1671
+ subscription_id: import_v412.z.string().optional()
1672
+ });
1673
+ var BillingAttachParamsSchema = BillingParamsBaseSchema.extend({
1674
+ plan_id: import_v412.z.string(),
1675
+ discounts: import_v412.z.array(AttachDiscountSchema).optional(),
1676
+ success_url: import_v412.z.string().optional(),
1677
+ redirect_mode: RedirectModeSchema.optional(),
1678
+ new_billing_subscription: import_v412.z.boolean().optional(),
1679
+ plan_schedule: PlanScheduleSchema.optional(),
1680
+ checkout_session_params: import_v412.z.record(import_v412.z.string(), import_v412.z.unknown()).optional(),
1681
+ custom_line_items: import_v412.z.array(CustomLineItemSchema).optional()
1682
+ });
1683
+ var BillingUpdateParamsSchema = BillingParamsBaseSchema.extend({
1684
+ plan_id: import_v412.z.string().optional(),
1685
+ cancel_action: CancelActionSchema.optional()
1686
+ });
1687
+ var PaymentFailureCodeSchema = import_v412.z.enum([
1688
+ "3ds_required",
1689
+ "payment_method_required",
1690
+ "payment_failed"
1691
+ ]);
1692
+ var BillingRequiredActionSchema = import_v412.z.object({
1693
+ code: PaymentFailureCodeSchema,
1694
+ reason: import_v412.z.string()
1695
+ });
1696
+ var BillingResponseSchema = import_v412.z.object({
1697
+ customer_id: import_v412.z.string(),
1698
+ entity_id: import_v412.z.string().optional(),
1699
+ invoice: import_v412.z.object({
1700
+ status: import_v412.z.string().nullable(),
1701
+ stripe_id: import_v412.z.string(),
1702
+ total: import_v412.z.number(),
1703
+ currency: import_v412.z.string(),
1704
+ hosted_invoice_url: import_v412.z.string().nullable()
1705
+ }).optional(),
1706
+ payment_url: import_v412.z.string().nullable(),
1707
+ required_action: BillingRequiredActionSchema.optional()
1708
+ });
1709
+ var MultiAttachCustomizePlanSchema = import_v412.z.object({
1710
+ price: BasePriceParamsSchema.nullable().optional(),
1711
+ items: import_v412.z.array(CreatePlanItemParamsSchema).optional()
1712
+ });
1713
+ var MultiAttachPlanSchema = import_v412.z.object({
1714
+ plan_id: import_v412.z.string(),
1715
+ customize: MultiAttachCustomizePlanSchema.optional(),
1716
+ feature_quantities: import_v412.z.array(FeatureQuantityParamsSchema).optional(),
1717
+ version: import_v412.z.number().optional(),
1718
+ subscription_id: import_v412.z.string().optional()
1719
+ });
1720
+ var MultiAttachParamsSchema = import_v412.z.object({
1721
+ customer_id: import_v412.z.string(),
1722
+ entity_id: import_v412.z.string().optional(),
1723
+ plans: import_v412.z.array(MultiAttachPlanSchema).min(1),
1724
+ free_trial: FreeTrialParamsSchema.nullable().optional(),
1725
+ invoice_mode: InvoiceModeParamsSchema.optional(),
1726
+ discounts: import_v412.z.array(AttachDiscountSchema).optional(),
1727
+ success_url: import_v412.z.string().optional(),
1728
+ checkout_session_params: import_v412.z.record(import_v412.z.string(), import_v412.z.unknown()).optional(),
1729
+ redirect_mode: RedirectModeSchema.optional(),
1730
+ new_billing_subscription: import_v412.z.boolean().optional()
1731
+ });
1732
+ var SetupPaymentParamsSchema = import_v412.z.object({
1733
+ customer_id: import_v412.z.string(),
1734
+ entity_id: import_v412.z.string().optional(),
1735
+ plan_id: import_v412.z.string().optional(),
1736
+ feature_quantities: import_v412.z.array(FeatureQuantityParamsSchema).optional(),
1737
+ version: import_v412.z.number().optional(),
1738
+ customize: CustomizePlanSchema.optional(),
1739
+ discounts: import_v412.z.array(AttachDiscountSchema).optional(),
1740
+ success_url: import_v412.z.string().optional(),
1741
+ checkout_session_params: import_v412.z.record(import_v412.z.string(), import_v412.z.unknown()).optional()
1742
+ });
1743
+ var SetupPaymentResponseSchema = import_v412.z.object({
1744
+ customer_id: import_v412.z.string(),
1745
+ entity_id: import_v412.z.string().optional(),
1746
+ url: import_v412.z.string()
1747
+ });
1748
+ var PreviewLineItemSchema = import_v412.z.object({
1749
+ title: import_v412.z.string(),
1750
+ description: import_v412.z.string(),
1751
+ amount: import_v412.z.number()
1752
+ });
1753
+ var BillingPreviewResponseSchema = import_v412.z.object({
1754
+ customer_id: import_v412.z.string(),
1755
+ line_items: import_v412.z.array(PreviewLineItemSchema),
1756
+ total: import_v412.z.number(),
1757
+ currency: import_v412.z.string(),
1758
+ next_cycle: import_v412.z.object({
1759
+ starts_at: import_v412.z.number(),
1760
+ total: import_v412.z.number()
1761
+ }).optional()
1762
+ });
1763
+
1764
+ // src/sdk/v2/balancesTypes.ts
1765
+ var import_v413 = require("zod/v4");
1766
+ var V2ResetIntervalSchema = import_v413.z.enum([
1767
+ "one_off",
1768
+ "minute",
1769
+ "hour",
1770
+ "day",
1771
+ "week",
1772
+ "month",
1773
+ "quarter",
1774
+ "semi_annual",
1775
+ "year"
1776
+ ]);
1777
+ var V2UpdateBalanceParamsSchema = import_v413.z.object({
1778
+ customer_id: import_v413.z.string(),
1779
+ feature_id: import_v413.z.string(),
1780
+ entity_id: import_v413.z.string().optional(),
1781
+ remaining: import_v413.z.number().optional(),
1782
+ add_to_balance: import_v413.z.number().optional(),
1783
+ usage: import_v413.z.number().optional(),
1784
+ interval: V2ResetIntervalSchema.optional(),
1785
+ included_grant: import_v413.z.number().optional(),
1786
+ balance_id: import_v413.z.string().optional(),
1787
+ next_reset_at: import_v413.z.number().optional()
1788
+ });
1789
+ var V2UpdateBalanceResponseSchema = import_v413.z.object({
1790
+ message: import_v413.z.string()
1791
+ });
1792
+ var V2FinalizeLockActionSchema = import_v413.z.enum(["confirm", "release"]);
1793
+ var V2FinalizeLockParamsSchema = import_v413.z.object({
1794
+ lock_id: import_v413.z.string(),
1795
+ action: V2FinalizeLockActionSchema,
1796
+ override_value: import_v413.z.number().optional(),
1797
+ properties: import_v413.z.record(import_v413.z.string(), import_v413.z.any()).optional()
1798
+ });
1799
+ var V2FinalizeLockResponseSchema = import_v413.z.object({
1800
+ success: import_v413.z.literal(true)
1801
+ });
1802
+
1803
+ // src/libraries/react/errorUtils/logFetchError.ts
1804
+ var logFetchError = ({
1805
+ method,
1806
+ backendUrl,
1807
+ path,
1808
+ error
1809
+ }) => {
1810
+ console.error(`[Autumn] Fetch failed: ${method} ${backendUrl}${path}
1811
+
1812
+ 1. Check that backendUrl in <AutumnProvider/> is correctly set.
1813
+ 2. Check that autumnHandler is correctly registered on your backend.`);
1814
+ };
1815
+
1816
+ // src/libraries/react/client/clientAnalyticsMethods.ts
1817
+ async function eventListMethod(params) {
1818
+ const res = await this.post(`${this.prefix}/events/list`, params);
1819
+ return res;
1820
+ }
1821
+ async function eventAggregateMethod(params) {
1822
+ const res = await this.post(`${this.prefix}/events/aggregate`, params);
1823
+ return res;
1824
+ }
1825
+
1826
+ // src/libraries/react/client/clientCusMethods.ts
1827
+ var createCustomerMethod = async ({
1828
+ client,
1829
+ params
1830
+ }) => {
1831
+ let result = await client.post(`${client.prefix}/customers`, params);
1832
+ return result;
1833
+ };
1834
+
1835
+ // src/utils/entityUtils.tsx
1836
+ var getEntityExpandStr = (expand) => {
1837
+ if (!expand) {
1838
+ return "";
1839
+ }
1840
+ return `expand=${expand.join(",")}`;
1841
+ };
1842
+
1843
+ // src/libraries/react/client/clientEntityMethods.ts
1844
+ async function createEntityMethod(params) {
1845
+ const res = await this.post(`${this.prefix}/entities`, params);
1846
+ return res;
1847
+ }
1848
+ async function getEntityMethod(entityId, params) {
1849
+ const expand = getEntityExpandStr(params?.expand);
1850
+ const res = await this.get(`${this.prefix}/entities/${entityId}?${expand}`);
1851
+ return res;
1852
+ }
1853
+ async function deleteEntityMethod(entityId) {
1854
+ const res = await this.delete(`${this.prefix}/entities/${entityId}`);
1855
+ return res;
1856
+ }
1857
+
1858
+ // src/libraries/react/client/clientGenMethods.ts
1859
+ async function checkoutMethod(params) {
1860
+ const finalParams = {
1861
+ ...params,
1862
+ successUrl: params.successUrl ?? this.defaultReturnUrl
1863
+ };
1864
+ const res = await this.post(`${this.prefix}/checkout`, finalParams);
1865
+ return res;
1866
+ }
1867
+ async function attachMethod(params) {
1868
+ const finalParams = {
1869
+ ...params,
1870
+ successUrl: params.successUrl ?? this.defaultReturnUrl
1871
+ };
1872
+ const res = await this.post(`${this.prefix}/attach`, finalParams);
1873
+ return res;
1874
+ }
1875
+ async function setupPaymentMethod(params = {}) {
1876
+ const finalParams = {
1877
+ ...params,
1878
+ successUrl: params.successUrl ?? this.defaultReturnUrl
1879
+ };
1880
+ const res = await this.post(`${this.prefix}/setup_payment`, finalParams);
1881
+ return res;
1882
+ }
1883
+ async function cancelMethod(params) {
1884
+ const res = await this.post(`${this.prefix}/cancel`, params);
1885
+ return res;
1886
+ }
1887
+ async function checkMethod(params) {
1888
+ const noDialogParams = {
1889
+ ...params,
1890
+ dialog: void 0
1891
+ };
1892
+ const res = await this.post(`${this.prefix}/check`, noDialogParams);
1893
+ return res;
1894
+ }
1895
+ async function trackMethod(params) {
1896
+ const res = await this.post(`${this.prefix}/track`, params);
1897
+ return res;
1898
+ }
1899
+ async function openBillingPortalMethod(params) {
1900
+ const finalParams = {
1901
+ ...params || {},
1902
+ returnUrl: params?.returnUrl ?? this.defaultReturnUrl
1903
+ };
1904
+ const res = await this.post(`${this.prefix}/billing_portal`, finalParams);
1905
+ return res;
1906
+ }
1907
+ async function queryMethod(params) {
1908
+ const res = await this.post(`${this.prefix}/query`, params);
1909
+ return res;
1910
+ }
1911
+
1912
+ // src/libraries/react/client/clientProdMethods.ts
1913
+ async function listProductsMethod() {
1914
+ const res = await this.get(`${this.prefix}/products`);
1915
+ return res;
1916
+ }
1917
+
1918
+ // src/libraries/react/client/clientReferralMethods.ts
1919
+ async function createCode(params) {
1920
+ const res = await this.post(`${this.prefix}/referrals/code`, params);
1921
+ return res;
1922
+ }
1923
+ async function redeemCode(params) {
1924
+ const res = await this.post(`${this.prefix}/referrals/redeem`, params);
1925
+ return res;
1926
+ }
1927
+
1928
+ // src/libraries/react/client/ReactAutumnClient.tsx
1929
+ var AutumnClient = class {
1930
+ backendUrl;
1931
+ getBearerToken;
1932
+ customerData;
1933
+ includeCredentials;
1934
+ prefix;
1935
+ camelCase;
1936
+ headers;
1937
+ framework;
1938
+ defaultReturnUrl;
1939
+ suppressLogs;
1940
+ constructor({
1941
+ backendUrl,
1942
+ getBearerToken,
1943
+ customerData,
1944
+ includeCredentials,
1945
+ betterAuthUrl,
1946
+ headers,
1947
+ pathPrefix,
1948
+ defaultReturnUrl,
1949
+ suppressLogs
1950
+ }) {
1951
+ this.backendUrl = backendUrl;
1952
+ this.getBearerToken = getBearerToken;
1953
+ this.customerData = customerData;
1954
+ this.includeCredentials = includeCredentials;
1955
+ this.prefix = "/api/autumn";
1956
+ let camelCase = false;
1957
+ if (betterAuthUrl) {
1958
+ this.prefix = "/api/auth/autumn";
1959
+ this.backendUrl = betterAuthUrl;
1960
+ camelCase = true;
1961
+ }
1962
+ const providedPrefix = pathPrefix;
1963
+ if (providedPrefix) {
1964
+ const normalized = `/${providedPrefix}`.replace(/\/+/g, "/").replace(/\/$/, "");
1965
+ this.prefix = normalized;
1966
+ }
1967
+ this.headers = headers;
1968
+ if (betterAuthUrl) camelCase = true;
1969
+ this.camelCase = camelCase;
1970
+ this.defaultReturnUrl = defaultReturnUrl;
1971
+ this.suppressLogs = suppressLogs ?? false;
1972
+ }
1973
+ /**
1974
+ * Detects if the backend supports CORS credentials by making an OPTIONS request
1975
+ */
1976
+ async detectCors() {
1977
+ if (this.prefix?.includes("/api/auth")) {
1978
+ return { valid: true, includeCredentials: true };
1979
+ }
1980
+ const testEndpoint = `${this.backendUrl}${this.prefix}/cors`;
1981
+ try {
1982
+ await fetch(testEndpoint, {
1983
+ method: "POST",
1984
+ credentials: "include",
1985
+ headers: { "Content-Type": "application/json" },
1986
+ body: JSON.stringify({})
1987
+ });
1988
+ return { valid: true, includeCredentials: true };
1989
+ } catch (_) {
1990
+ try {
1991
+ await fetch(testEndpoint, {
1992
+ method: "POST",
1993
+ credentials: "omit",
1994
+ headers: { "Content-Type": "application/json" },
1995
+ body: JSON.stringify({})
1996
+ });
1997
+ return { valid: true, includeCredentials: false };
1998
+ } catch (_2) {
1999
+ return { valid: false, includeCredentials: void 0 };
2000
+ }
2001
+ }
2002
+ }
2003
+ /**
2004
+ * Automatically determines whether to include credentials based on CORS detection
2005
+ */
2006
+ async shouldIncludeCredentials() {
2007
+ if (this.includeCredentials !== void 0) {
2008
+ return this.includeCredentials;
2009
+ }
2010
+ try {
2011
+ const corsResult = await this.detectCors();
2012
+ if (corsResult.valid) {
2013
+ console.warn(
2014
+ `[Autumn] Detected CORS credentials: ${corsResult.includeCredentials}`
2015
+ );
2016
+ console.warn(
2017
+ `[Autumn] To disable this warning, you can set includeCredentials={${corsResult.includeCredentials ? "true" : "false"}} in <AutumnProvider />`
2018
+ );
2019
+ this.includeCredentials = corsResult.includeCredentials;
2020
+ return corsResult.includeCredentials || false;
2021
+ }
2022
+ console.warn(`[Autumn] CORS detection failed, defaulting to false`);
2023
+ return false;
2024
+ } catch (error) {
2025
+ console.error(`[Autumn] Error detecting CORS: ${error.message}`);
2026
+ return false;
2027
+ }
2028
+ }
2029
+ async getHeaders() {
2030
+ let headers = {
2031
+ "Content-Type": "application/json"
2032
+ };
2033
+ if (this.getBearerToken) {
2034
+ try {
2035
+ const token = await this.getBearerToken();
2036
+ headers.Authorization = `Bearer ${token}`;
2037
+ } catch (_) {
2038
+ console.error(`Failed to call getToken() in AutumnProvider`);
2039
+ }
2040
+ }
2041
+ if (this.headers) {
2042
+ headers = { ...headers, ...this.headers };
2043
+ }
2044
+ return headers;
2045
+ }
2046
+ async handleFetch({
2047
+ path,
2048
+ method,
2049
+ body
2050
+ }) {
2051
+ body = method === "POST" ? {
2052
+ ...body,
2053
+ [this.camelCase ? "customerData" : "customer_data"]: this.customerData || void 0
2054
+ } : void 0;
2055
+ const includeCredentials = await this.shouldIncludeCredentials();
2056
+ try {
2057
+ const response = await fetch(`${this.backendUrl}${path}`, {
2058
+ method,
2059
+ body: body ? JSON.stringify(body) : void 0,
2060
+ headers: await this.getHeaders(),
2061
+ credentials: includeCredentials ? "include" : "omit",
2062
+ cache: "no-store"
2063
+ });
2064
+ const loggedError = this.suppressLogs ? false : await logAuthError(response);
2065
+ return await toContainerResult({
2066
+ response,
2067
+ logger: console,
2068
+ logError: !this.suppressLogs && !loggedError
2069
+ });
2070
+ } catch (error) {
2071
+ if (!this.suppressLogs) {
2072
+ logFetchError({
2073
+ method,
2074
+ backendUrl: this.backendUrl || "",
2075
+ path,
2076
+ error
2077
+ });
2078
+ }
2079
+ return {
2080
+ data: null,
2081
+ error: new AutumnError({
2082
+ message: error instanceof Error ? error.message : JSON.stringify(error),
2083
+ code: "fetch_failed"
2084
+ })
2085
+ };
2086
+ }
2087
+ }
2088
+ async post(path, body) {
2089
+ return await this.handleFetch({
2090
+ path,
2091
+ method: "POST",
2092
+ body
2093
+ });
2094
+ }
2095
+ async get(path) {
2096
+ return await this.handleFetch({
2097
+ path,
2098
+ method: "GET"
2099
+ });
2100
+ }
2101
+ async delete(path) {
2102
+ return await this.handleFetch({
2103
+ path,
2104
+ method: "DELETE"
2105
+ });
2106
+ }
2107
+ async createCustomer(params) {
2108
+ return await createCustomerMethod({
2109
+ client: this,
2110
+ params
2111
+ });
2112
+ }
2113
+ attach = attachMethod.bind(this);
2114
+ checkout = checkoutMethod.bind(this);
2115
+ cancel = cancelMethod.bind(this);
2116
+ check = checkMethod.bind(this);
2117
+ track = trackMethod.bind(this);
2118
+ openBillingPortal = openBillingPortalMethod.bind(this);
2119
+ setupPayment = setupPaymentMethod.bind(this);
2120
+ query = queryMethod.bind(this);
2121
+ entities = {
2122
+ create: createEntityMethod.bind(this),
2123
+ get: getEntityMethod.bind(this),
2124
+ delete: deleteEntityMethod.bind(this)
2125
+ };
2126
+ referrals = {
2127
+ createCode: createCode.bind(this),
2128
+ redeemCode: redeemCode.bind(this)
2129
+ };
2130
+ products = {
2131
+ list: listProductsMethod.bind(this)
2132
+ };
2133
+ events = {
2134
+ list: eventListMethod.bind(this),
2135
+ aggregate: eventAggregateMethod.bind(this)
2136
+ };
2137
+ };
2138
+
2139
+ // src/libraries/react/AutumnContext.tsx
2140
+ var import_react2 = require("react");
2141
+ var AutumnContext = (0, import_react2.createContext)({
2142
+ initialized: false,
2143
+ disableDialogs: false,
2144
+ client: new AutumnClient({ backendUrl: "" }),
2145
+ paywallDialog: {
2146
+ props: null,
2147
+ setProps: () => {
2148
+ },
2149
+ open: false,
2150
+ setOpen: () => {
2151
+ },
2152
+ setComponent: () => {
2153
+ }
2154
+ },
2155
+ attachDialog: {
2156
+ props: null,
2157
+ setProps: () => {
2158
+ },
2159
+ open: false,
2160
+ setOpen: () => {
2161
+ },
2162
+ setComponent: () => {
2163
+ }
2164
+ },
2165
+ paywallRef: { current: null }
2166
+ });
2167
+ var useAutumnContext = ({
2168
+ AutumnContext: AutumnContext2,
2169
+ name,
2170
+ errorIfNotInitialized = true
2171
+ }) => {
2172
+ const context = (0, import_react2.useContext)(AutumnContext2);
2173
+ if (!context.initialized && errorIfNotInitialized) {
2174
+ throw new Error(`${name} must be used within <AutumnProvider />`);
2175
+ }
2176
+ return context;
2177
+ };
2178
+
2179
+ // src/libraries/react/hooks/helpers/handleCheck.ts
2180
+ var getCusFeature = ({
2181
+ customer,
2182
+ featureId,
2183
+ requiredBalance = 1
2184
+ }) => {
2185
+ let cusFeature = customer.features[featureId];
2186
+ if (cusFeature && typeof cusFeature.balance === "number" && cusFeature.balance >= requiredBalance) {
2187
+ return {
2188
+ cusFeature,
2189
+ requiredBalance
2190
+ };
2191
+ }
2192
+ let creditSchema = Object.values(customer.features).find(
2193
+ (f) => f.credit_schema && f.credit_schema.some((c) => c.feature_id === featureId)
2194
+ );
2195
+ if (creditSchema) {
2196
+ let schemaItem = creditSchema.credit_schema?.find(
2197
+ (c) => c.feature_id === featureId
2198
+ );
2199
+ return {
2200
+ cusFeature: creditSchema,
2201
+ requiredBalance: schemaItem.credit_amount * requiredBalance
2202
+ };
2203
+ }
2204
+ return {
2205
+ cusFeature: customer.features[featureId],
2206
+ requiredBalance
2207
+ };
2208
+ };
2209
+ var getFeatureAllowed = ({
2210
+ cusFeature,
2211
+ requiredBalance
2212
+ }) => {
2213
+ if (!cusFeature) return false;
2214
+ if (cusFeature.type == "static") return true;
2215
+ if (cusFeature.unlimited || cusFeature.overage_allowed) return true;
2216
+ if (cusFeature.usage_limit) {
2217
+ let extraUsage = (cusFeature.usage_limit || 0) - (cusFeature.included_usage || 0);
2218
+ return (cusFeature.balance || 0) + extraUsage >= requiredBalance;
2219
+ }
2220
+ return (cusFeature.balance || 0) >= requiredBalance;
2221
+ };
2222
+ var handleFeatureCheck = ({
2223
+ customer,
2224
+ isEntity,
2225
+ params
2226
+ }) => {
2227
+ let { cusFeature, requiredBalance } = getCusFeature({
2228
+ customer,
2229
+ featureId: params.featureId,
2230
+ ...params.requiredBalance ? { requiredBalance: params.requiredBalance } : {}
2231
+ });
2232
+ let allowed = getFeatureAllowed({
2233
+ cusFeature,
2234
+ requiredBalance: requiredBalance ?? 1
2235
+ });
2236
+ let result = {
2237
+ allowed,
2238
+ feature_id: cusFeature?.id ?? params.featureId,
2239
+ customer_id: isEntity ? customer.customer_id : customer.id,
2240
+ required_balance: requiredBalance,
2241
+ ...cusFeature
2242
+ };
2243
+ if (isEntity) {
2244
+ result.entity_id = customer.id;
2245
+ }
2246
+ try {
2247
+ return CheckFeatureResultSchema.parse(result);
2248
+ } catch (error) {
2249
+ return result;
2250
+ }
2251
+ };
2252
+ var handleProductCheck = ({
2253
+ customer,
2254
+ isEntity,
2255
+ params
2256
+ }) => {
2257
+ let product = customer.products.find((p) => p.id == params.productId);
2258
+ let allowed = product?.status === "active" || product?.status === "trialing";
2259
+ let result = {
2260
+ allowed,
2261
+ customer_id: isEntity ? customer.customer_id : customer.id,
2262
+ product_id: params.productId
2263
+ };
2264
+ if (product) {
2265
+ result.status = product.status;
2266
+ }
2267
+ if (isEntity) {
2268
+ result.entity_id = customer.id;
2269
+ }
2270
+ return result;
2271
+ };
2272
+ var openDialog = ({
2273
+ result,
2274
+ params,
2275
+ context
2276
+ }) => {
2277
+ let open = result?.allowed === false && params.dialog && context;
2278
+ if (!open) return;
2279
+ const isInRenderCycle = (() => {
2280
+ const stack = new Error().stack || "";
2281
+ return stack.includes("renderWithHooks") || stack.includes("updateFunctionComponent") || stack.includes("beginWork") || stack.includes("performUnitOfWork") || stack.includes("workLoop") || stack.includes("Component.render") || stack.includes("FunctionComponent");
2282
+ })();
2283
+ if (isInRenderCycle) {
2284
+ context.paywallRef.current = {
2285
+ component: params.dialog,
2286
+ open: true,
2287
+ props: params
2288
+ };
2289
+ } else {
2290
+ context.paywallDialog.setComponent(params.dialog);
2291
+ context.paywallDialog.setProps(params);
2292
+ context.paywallDialog.setOpen(true);
2293
+ }
2294
+ };
2295
+ var handleCheck2 = ({
2296
+ customer,
2297
+ isEntity,
2298
+ params,
2299
+ context
2300
+ }) => {
2301
+ if (!customer) {
2302
+ return {
2303
+ data: {
2304
+ allowed: false,
2305
+ feature_id: "",
2306
+ customer_id: "",
2307
+ required_balance: 0
2308
+ },
2309
+ error: null
2310
+ };
2311
+ }
2312
+ if (!params.featureId && !params.productId) {
2313
+ throw new Error("allowed() requires either featureId or productId");
2314
+ }
2315
+ let result;
2316
+ if (params.featureId)
2317
+ result = handleFeatureCheck({ customer, params, isEntity });
2318
+ if (params.productId)
2319
+ result = handleProductCheck({ customer, params, isEntity });
2320
+ return {
2321
+ data: result,
2322
+ error: null
2323
+ };
2324
+ };
2325
+
2326
+ // src/libraries/react/hooks/usePricingTableBase.tsx
2327
+ var import_swr = __toESM(require("swr"));
2328
+ var mergeProductDetails = (products, productDetails) => {
2329
+ if (!products) {
2330
+ return null;
2331
+ }
2332
+ if (!productDetails) {
2333
+ return products.map((product) => {
2334
+ if (product.base_variant_id) {
2335
+ let baseProduct = products.find(
2336
+ (p) => p.id === product.base_variant_id
2337
+ );
2338
+ if (baseProduct) {
2339
+ return {
2340
+ ...product,
2341
+ name: baseProduct.name
2342
+ };
2343
+ }
2344
+ }
2345
+ return product;
2346
+ });
2347
+ }
2348
+ let fetchedProducts = structuredClone(products);
2349
+ let mergedProducts = [];
2350
+ for (const overrideDetails of productDetails) {
2351
+ if (!overrideDetails.id) {
2352
+ let properties = {};
2353
+ let overrideItems2 = overrideDetails.items?.map((item) => ({
2354
+ display: {
2355
+ primary_text: item.primaryText,
2356
+ secondary_text: item.secondaryText
2357
+ }
2358
+ }));
2359
+ let overridePrice2 = overrideDetails.price;
2360
+ if (overrideDetails.price) {
2361
+ properties.is_free = false;
2362
+ overrideItems2 = [
2363
+ {
2364
+ display: {
2365
+ primary_text: overridePrice2?.primaryText,
2366
+ secondary_text: overridePrice2?.secondaryText
2367
+ }
2368
+ },
2369
+ ...overrideItems2 || []
2370
+ ];
2371
+ }
2372
+ if (!overrideItems2 || overrideItems2.length === 0) {
2373
+ overrideItems2 = [
2374
+ {
2375
+ display: {
2376
+ primary_text: ""
2377
+ }
2378
+ }
2379
+ ];
2380
+ }
2381
+ mergedProducts.push({
2382
+ display: {
2383
+ name: overrideDetails.name,
2384
+ description: overrideDetails.description,
2385
+ button_text: overrideDetails.buttonText,
2386
+ recommend_text: overrideDetails.recommendText,
2387
+ everything_from: overrideDetails.everythingFrom,
2388
+ button_url: overrideDetails.buttonUrl
2389
+ },
2390
+ items: overrideItems2,
2391
+ properties
2392
+ });
2393
+ continue;
2394
+ }
2395
+ let fetchedProduct = fetchedProducts.find(
2396
+ (p) => p.id === overrideDetails.id
2397
+ );
2398
+ if (!fetchedProduct) {
2399
+ continue;
2400
+ }
2401
+ let displayName = fetchedProduct.name;
2402
+ let baseVariantId = fetchedProduct.base_variant_id;
2403
+ if (baseVariantId) {
2404
+ let baseProduct = fetchedProducts.find((p) => p.id === baseVariantId);
2405
+ if (baseProduct) {
2406
+ displayName = baseProduct.name;
2407
+ }
2408
+ }
2409
+ displayName = overrideDetails.name || displayName;
2410
+ const originalIsFree = fetchedProduct.properties?.is_free;
2411
+ let overrideProperties = fetchedProduct.properties || {};
2412
+ let overrideItems = overrideDetails.items;
2413
+ let overridePrice = overrideDetails.price;
2414
+ let mergedItems = [];
2415
+ if (overridePrice) {
2416
+ overrideProperties.is_free = false;
2417
+ if (originalIsFree || overrideItems !== void 0) {
2418
+ mergedItems.push({
2419
+ display: {
2420
+ primary_text: overridePrice.primaryText,
2421
+ secondary_text: overridePrice.secondaryText
2422
+ }
2423
+ });
2424
+ } else {
2425
+ fetchedProduct.items[0].display = {
2426
+ primary_text: overridePrice.primaryText,
2427
+ secondary_text: overridePrice.secondaryText
2428
+ };
2429
+ }
2430
+ } else {
2431
+ if (overrideItems && !originalIsFree) {
2432
+ mergedItems.push(fetchedProduct.items[0]);
2433
+ }
2434
+ }
2435
+ if (overrideItems) {
2436
+ for (const overrideItem of overrideItems) {
2437
+ if (!overrideItem.featureId) {
2438
+ mergedItems.push({
2439
+ display: {
2440
+ primary_text: overrideItem.primaryText,
2441
+ secondary_text: overrideItem.secondaryText
2442
+ }
2443
+ });
2444
+ } else {
2445
+ let fetchedItem = fetchedProduct.items.find(
2446
+ (i) => i.feature_id === overrideItem.featureId
2447
+ );
2448
+ if (!fetchedItem) {
2449
+ console.error(
2450
+ `Feature with id ${overrideItem.featureId} not found for product ${fetchedProduct.id}`
2451
+ );
2452
+ continue;
2453
+ }
2454
+ mergedItems.push({
2455
+ ...fetchedItem,
2456
+ display: {
2457
+ primary_text: overrideItem.primaryText || fetchedItem.display?.primary_text,
2458
+ secondary_text: overrideItem.secondaryText || fetchedItem.display?.secondary_text
2459
+ }
2460
+ });
2461
+ }
2462
+ }
2463
+ } else {
2464
+ mergedItems = fetchedProduct.items;
2465
+ }
2466
+ const mergedProduct = {
2467
+ ...fetchedProduct,
2468
+ items: mergedItems,
2469
+ properties: overrideProperties,
2470
+ display: {
2471
+ name: displayName,
2472
+ description: overrideDetails.description,
2473
+ button_text: overrideDetails.buttonText,
2474
+ recommend_text: overrideDetails.recommendText,
2475
+ everything_from: overrideDetails.everythingFrom,
2476
+ button_url: overrideDetails.buttonUrl
2477
+ }
2478
+ };
2479
+ mergedProducts.push(mergedProduct);
2480
+ }
2481
+ return mergedProducts;
2482
+ };
2483
+ var defaultSWRConfig = {
2484
+ refreshInterval: 0
2485
+ };
2486
+ var usePricingTableBase = ({
2487
+ client,
2488
+ params
2489
+ }) => {
2490
+ const fetcher = async () => {
2491
+ try {
2492
+ const { data: data2, error: error2 } = await client.products.list();
2493
+ if (error2) throw error2;
2494
+ return data2?.list || [];
2495
+ } catch (error2) {
2496
+ throw new AutumnError({
2497
+ message: "Failed to fetch pricing table products",
2498
+ code: "failed_to_fetch_pricing_table_products"
2499
+ });
2500
+ }
2501
+ };
2502
+ const { data, error, mutate } = (0, import_swr.default)(
2503
+ ["pricing-table", client.backendUrl, JSON.stringify(client.customerData)],
2504
+ fetcher,
2505
+ { ...defaultSWRConfig }
2506
+ );
2507
+ return {
2508
+ products: mergeProductDetails(data || [], params?.productDetails),
2509
+ isLoading: !error && !data,
2510
+ error,
2511
+ refetch: mutate
2512
+ };
2513
+ };
2514
+
2515
+ // src/libraries/react/hooks/helpers/useAutumnBase.tsx
2516
+ var useAutumnBase = ({
2517
+ // AutumnContext,
2518
+ context,
2519
+ client,
2520
+ refetchCustomer
2521
+ }) => {
2522
+ const { attachDialog, paywallDialog } = context || {};
2523
+ const { refetch: refetchPricingTable } = usePricingTableBase({ client });
2524
+ const attachWithoutDialog = async (params) => {
2525
+ const result = await client.attach(params);
2526
+ if (result.error) {
2527
+ return result;
2528
+ }
2529
+ const data = result.data;
2530
+ if (data?.checkout_url && typeof window !== "undefined") {
2531
+ if (params.openInNewTab) {
2532
+ window.open(data.checkout_url, "_blank");
2533
+ } else {
2534
+ window.location.href = data.checkout_url;
2535
+ }
2536
+ }
2537
+ await refetchPricingTable();
2538
+ if (refetchCustomer) {
2539
+ await refetchCustomer();
2540
+ }
2541
+ attachDialog?.setOpen(false);
2542
+ return result;
2543
+ };
2544
+ const checkout = async (params) => {
2545
+ const { data, error } = await client.checkout(params);
2546
+ const { dialog, ...rest } = params;
2547
+ if (params.dialog && params.productIds) {
2548
+ throw new Error(
2549
+ "Dialog and productIds are not supported together in checkout()"
2550
+ );
2551
+ }
2552
+ if (error) {
2553
+ return { data, error };
2554
+ }
2555
+ const hasPrepaid = data.product.items.some(
2556
+ (item) => item.usage_model === "prepaid"
2557
+ );
2558
+ const showDialog = hasPrepaid && params.dialog;
2559
+ if (data.url && !showDialog) {
2560
+ if (params.openInNewTab) {
2561
+ window.open(data.url, "_blank");
2562
+ } else {
2563
+ window.location.href = data.url;
2564
+ }
2565
+ return { data, error };
2566
+ }
2567
+ if (params.dialog) {
2568
+ attachDialog?.setProps({ checkoutResult: data, checkoutParams: rest });
2569
+ attachDialog?.setComponent(params.dialog);
2570
+ attachDialog?.setOpen(true);
2571
+ }
2572
+ return { data, error };
2573
+ };
2574
+ const attachWithDialog = async (params) => {
2575
+ const { ...rest } = params;
2576
+ const { productId, entityId, entityData } = params;
2577
+ const checkRes = await client.check({
2578
+ productId,
2579
+ entityId,
2580
+ entityData,
2581
+ withPreview: true
2582
+ });
2583
+ if (checkRes.error) {
2584
+ return checkRes;
2585
+ }
2586
+ const preview = checkRes.data.preview;
2587
+ if (!preview) {
2588
+ return await attachWithoutDialog(rest);
2589
+ } else {
2590
+ attachDialog?.setProps({ preview, attachParams: rest });
2591
+ attachDialog?.setOpen(true);
2592
+ }
2593
+ return checkRes;
2594
+ };
2595
+ const attach = async (params) => {
2596
+ const { dialog } = params;
2597
+ if (dialog && !attachDialog?.open) {
2598
+ attachDialog?.setComponent(dialog);
2599
+ return await attachWithDialog(params);
2600
+ }
2601
+ return await attachWithoutDialog(params);
2602
+ };
2603
+ const cancel = async (params) => {
2604
+ const res = await client.cancel(params);
2605
+ if (res.error) {
2606
+ return res;
2607
+ }
2608
+ return res;
2609
+ };
2610
+ const track = async (params) => {
2611
+ const res = await client.track(params);
2612
+ if (res.error) {
2613
+ return res;
2614
+ }
2615
+ return res;
2616
+ };
2617
+ const openBillingPortal = async (params) => {
2618
+ const defaultParams = {
2619
+ openInNewTab: false
2620
+ };
2621
+ const finalParams = {
2622
+ ...defaultParams,
2623
+ ...params
2624
+ };
2625
+ const res = await client.openBillingPortal(finalParams);
2626
+ if (res.error) {
2627
+ return res;
2628
+ }
2629
+ const data = res.data;
2630
+ if (data?.url && typeof window !== "undefined") {
2631
+ if (finalParams.openInNewTab) {
2632
+ window.open(data.url, "_blank");
2633
+ } else {
2634
+ window.open(data.url, "_self");
2635
+ }
2636
+ return res;
2637
+ } else {
2638
+ return res;
2639
+ }
2640
+ };
2641
+ const setupPayment = async (params) => {
2642
+ const defaultParams = {
2643
+ openInNewTab: false
2644
+ };
2645
+ const finalParams = {
2646
+ ...defaultParams,
2647
+ ...params || {}
2648
+ };
2649
+ const res = await client.setupPayment(finalParams);
2650
+ if (res.data?.url && typeof window !== "undefined") {
2651
+ if (finalParams.openInNewTab) {
2652
+ window.open(res.data.url, "_blank");
2653
+ } else {
2654
+ window.open(res.data.url, "_self");
2655
+ }
2656
+ return res;
2657
+ } else {
2658
+ return res;
2659
+ }
2660
+ };
2661
+ return {
2662
+ attach,
2663
+ track,
2664
+ cancel,
2665
+ openBillingPortal,
2666
+ setupPayment,
2667
+ checkout
2668
+ };
2669
+ };
2670
+
2671
+ // src/libraries/react/hooks/useCustomerBase.tsx
2672
+ var useCustomerBase = ({
2673
+ params,
2674
+ AutumnContext: AutumnContext2,
2675
+ client
2676
+ }) => {
2677
+ let context;
2678
+ if (AutumnContext2) {
2679
+ context = useAutumnContext({
2680
+ AutumnContext: AutumnContext2,
2681
+ name: "useCustomer"
2682
+ });
2683
+ }
2684
+ if (!client) {
2685
+ client = context.client;
2686
+ }
2687
+ const baseUrl = client?.backendUrl || "";
2688
+ const queryKey = ["customer", baseUrl, JSON.stringify(client?.customerData), params?.expand, ...params?.extraQueryKeys ?? []];
2689
+ const fetchCustomer = async () => {
2690
+ const { data, error: error2 } = await client.createCustomer({
2691
+ errorOnNotFound: params?.errorOnNotFound,
2692
+ expand: params?.expand
2693
+ });
2694
+ if (error2) {
2695
+ throw error2;
2696
+ }
2697
+ if (!data) {
2698
+ return null;
2699
+ }
2700
+ return data;
2701
+ };
2702
+ const {
2703
+ data: customer,
2704
+ error,
2705
+ isLoading,
2706
+ mutate
2707
+ } = (0, import_swr2.default)(queryKey, fetchCustomer, {
2708
+ fallbackData: null,
2709
+ shouldRetryOnError: false,
2710
+ refreshInterval: 0,
2711
+ dedupingInterval: 2e3,
2712
+ keepPreviousData: true,
2713
+ ...params?.swrConfig
2714
+ });
2715
+ const autumnFunctions = useAutumnBase({
2716
+ context,
2717
+ client,
2718
+ refetchCustomer: mutate
2719
+ });
2720
+ return {
2721
+ customer: customer ?? null,
2722
+ isLoading,
2723
+ error,
2724
+ refetch: mutate,
2725
+ ...autumnFunctions,
2726
+ createEntity: client.entities.create,
2727
+ createReferralCode: client.referrals.createCode,
2728
+ redeemReferralCode: client.referrals.redeemCode,
2729
+ check: (params2) => {
2730
+ const res = handleCheck2({
2731
+ customer,
2732
+ params: params2,
2733
+ isEntity: false,
2734
+ context
2735
+ });
2736
+ openDialog({
2737
+ result: res.data,
2738
+ params: params2,
2739
+ context
2740
+ });
2741
+ return res;
2742
+ }
2743
+ };
2744
+ };
2745
+
2746
+ // src/libraries/react/BaseAutumnProvider.tsx
2747
+ var import_jsx_runtime = require("react/jsx-runtime");
2748
+ function BaseAutumnProvider({
2749
+ client,
2750
+ children,
2751
+ AutumnContext: AutumnContext2
2752
+ }) {
2753
+ const [components, setComponents] = (0, import_react3.useState)({});
2754
+ const [paywallProps, setPaywallProps, paywallOpen, setPaywallOpen] = useDialog(components.paywallDialog);
2755
+ const [
2756
+ productChangeProps,
2757
+ setProductChangeProps,
2758
+ productChangeOpen,
2759
+ setProductChangeOpen
2760
+ ] = useDialog(components.productChangeDialog);
2761
+ useCustomerBase({
2762
+ client,
2763
+ params: { errorOnNotFound: false }
2764
+ });
2765
+ const paywallRef = (0, import_react3.useRef)(null);
2766
+ const [refresh, setRefresh] = (0, import_react3.useState)(0);
2767
+ return /* @__PURE__ */ (0, import_jsx_runtime.jsxs)(
2768
+ AutumnContext2.Provider,
2769
+ {
2770
+ value: {
2771
+ initialized: true,
2772
+ client,
2773
+ paywallDialog: {
2774
+ props: paywallProps,
2775
+ setProps: setPaywallProps,
2776
+ open: paywallOpen,
2777
+ setOpen: setPaywallOpen,
2778
+ setComponent: (component) => {
2779
+ setComponents({
2780
+ ...components,
2781
+ paywallDialog: component
2782
+ });
2783
+ }
2784
+ },
2785
+ attachDialog: {
2786
+ props: productChangeProps,
2787
+ setProps: setProductChangeProps,
2788
+ open: productChangeOpen,
2789
+ setOpen: setProductChangeOpen,
2790
+ setComponent: (component) => {
2791
+ setComponents({
2792
+ ...components,
2793
+ productChangeDialog: component
2794
+ });
2795
+ }
2796
+ },
2797
+ paywallRef,
2798
+ refresh,
2799
+ setRefresh
2800
+ },
2801
+ children: [
2802
+ paywallRef.current && /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
2803
+ paywallRef.current.component,
2804
+ {
2805
+ open: paywallRef.current.open,
2806
+ setOpen: paywallRef.current.setOpen,
2807
+ ...paywallRef.current.props
2808
+ }
2809
+ ),
2810
+ components.paywallDialog && /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
2811
+ components.paywallDialog,
2812
+ {
2813
+ open: paywallOpen,
2814
+ setOpen: setPaywallOpen,
2815
+ ...paywallProps
2816
+ }
2817
+ ),
2818
+ components.productChangeDialog && /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
2819
+ components.productChangeDialog,
2820
+ {
2821
+ open: productChangeOpen,
2822
+ setOpen: setProductChangeOpen,
2823
+ ...productChangeProps
2824
+ }
2825
+ ),
2826
+ children
2827
+ ]
2828
+ }
2829
+ );
2830
+ }
2831
+
2832
+ // src/libraries/react/client/ConvexAutumnClient.tsx
2833
+ var ConvexAutumnClient = class {
2834
+ convexApi;
2835
+ convex;
2836
+ // protected readonly convexClient: ConvexHttpClient;
2837
+ customerData;
2838
+ headers;
2839
+ backendUrl = void 0;
2840
+ prefix = "/api/convex";
2841
+ getBearerToken;
2842
+ suppressLogs;
2843
+ // Stub implementations for HTTP-specific methods that the interface requires
2844
+ async detectCors() {
2845
+ return {
2846
+ valid: true,
2847
+ includeCredentials: false
2848
+ };
2849
+ }
2850
+ async shouldIncludeCredentials() {
2851
+ return false;
2852
+ }
2853
+ async getHeaders() {
2854
+ return { "Content-Type": "application/json" };
2855
+ }
2856
+ async handleFetch() {
2857
+ throw new Error("HTTP methods not supported in Convex mode");
2858
+ }
2859
+ async post() {
2860
+ throw new Error("HTTP methods not supported in Convex mode");
2861
+ }
2862
+ async get() {
2863
+ throw new Error("HTTP methods not supported in Convex mode");
2864
+ }
2865
+ async delete() {
2866
+ throw new Error("HTTP methods not supported in Convex mode");
2867
+ }
2868
+ constructor({
2869
+ convexApi,
2870
+ customerData,
2871
+ headers,
2872
+ getBearerToken,
2873
+ convex,
2874
+ suppressLogs
2875
+ }) {
2876
+ this.convex = convex;
2877
+ this.convexApi = convexApi;
2878
+ this.getBearerToken = getBearerToken;
2879
+ this.customerData = customerData;
2880
+ this.headers = headers;
2881
+ this.suppressLogs = suppressLogs ?? false;
2882
+ }
2883
+ async createCustomer(params) {
2884
+ try {
2885
+ const result = await this.convex.action(
2886
+ this.convexApi.createCustomer,
2887
+ params
2888
+ );
2889
+ return result;
2890
+ } catch (error) {
2891
+ return {
2892
+ data: null,
2893
+ error: new AutumnError({
2894
+ message: error.message,
2895
+ code: "convex_action_failed"
2896
+ })
2897
+ };
2898
+ }
2899
+ }
2900
+ // Core methods that wrap Convex actions
2901
+ attach = async (args) => {
2902
+ try {
2903
+ const { dialog, openInNewTab, ...backendArgs } = args;
2904
+ const result = await this.convex.action(
2905
+ this.convexApi.attach,
2906
+ backendArgs
2907
+ );
2908
+ return result;
2909
+ } catch (error) {
2910
+ return {
2911
+ data: null,
2912
+ error: new AutumnError({
2913
+ message: error.message,
2914
+ code: "convex_action_failed"
2915
+ })
2916
+ };
2917
+ }
2918
+ };
2919
+ checkout = async (args) => {
2920
+ try {
2921
+ const { dialog, openInNewTab, ...backendArgs } = args;
2922
+ const result = await this.convex.action(
2923
+ this.convexApi.checkout,
2924
+ backendArgs
2925
+ );
2926
+ return result;
2927
+ } catch (error) {
2928
+ return {
2929
+ data: null,
2930
+ error: new AutumnError({
2931
+ message: error.message,
2932
+ code: "convex_action_failed"
2933
+ })
2934
+ };
2935
+ }
2936
+ };
2937
+ cancel = async (args) => {
2938
+ try {
2939
+ const result = await this.convex.action(this.convexApi.cancel, args);
2940
+ return result;
2941
+ } catch (error) {
2942
+ return {
2943
+ data: null,
2944
+ error: new AutumnError({
2945
+ message: error.message,
2946
+ code: "convex_action_failed"
2947
+ })
2948
+ };
2949
+ }
2950
+ };
2951
+ check = async (args) => {
2952
+ try {
2953
+ const result = await this.convex.action(this.convexApi.check, args);
2954
+ return result;
2955
+ } catch (error) {
2956
+ return {
2957
+ data: null,
2958
+ error: new AutumnError({
2959
+ message: error.message,
2960
+ code: "convex_action_failed"
2961
+ })
2962
+ };
2963
+ }
2964
+ };
2965
+ track = async (args) => {
2966
+ try {
2967
+ const result = await this.convex.action(this.convexApi.track, args);
2968
+ return result;
2969
+ } catch (error) {
2970
+ return {
2971
+ data: null,
2972
+ error: new AutumnError({
2973
+ message: error.message,
2974
+ code: "convex_action_failed"
2975
+ })
2976
+ };
2977
+ }
2978
+ };
2979
+ openBillingPortal = async (args) => {
2980
+ try {
2981
+ const { openInNewTab, ...backendArgs } = args;
2982
+ const result = await this.convex.action(
2983
+ this.convexApi.billingPortal,
2984
+ backendArgs
2985
+ );
2986
+ return result;
2987
+ } catch (error) {
2988
+ return {
2989
+ data: null,
2990
+ error: new AutumnError({
2991
+ message: error.message,
2992
+ code: "convex_action_failed"
2993
+ })
2994
+ };
2995
+ }
2996
+ };
2997
+ setupPayment = async (args) => {
2998
+ try {
2999
+ const result = await this.convex.action(
3000
+ this.convexApi.setupPayment,
3001
+ args
3002
+ );
3003
+ return result;
3004
+ } catch (error) {
3005
+ return {
3006
+ data: null,
3007
+ error: new AutumnError({
3008
+ message: error.message,
3009
+ code: "convex_action_failed"
3010
+ })
3011
+ };
3012
+ }
3013
+ };
3014
+ query = async (args) => {
3015
+ try {
3016
+ const result = await this.convex.action(this.convexApi.query, args);
3017
+ return result;
3018
+ } catch (error) {
3019
+ return {
3020
+ data: null,
3021
+ error: new AutumnError({
3022
+ message: error.message,
3023
+ code: "convex_action_failed"
3024
+ })
3025
+ };
3026
+ }
3027
+ };
3028
+ entities = {
3029
+ create: async (args) => {
3030
+ try {
3031
+ if (Array.isArray(args)) {
3032
+ throw new Error(
3033
+ "Passing an array of entities to createEntity() is not supported for Convex"
3034
+ );
3035
+ } else {
3036
+ const result = await this.convex.action(
3037
+ this.convexApi.createEntity,
3038
+ args
3039
+ );
3040
+ return result;
3041
+ }
3042
+ } catch (error) {
3043
+ return {
3044
+ data: null,
3045
+ error: new AutumnError({
3046
+ message: error.message,
3047
+ code: "convex_action_failed"
3048
+ })
3049
+ };
3050
+ }
3051
+ },
3052
+ get: async (entityId, args) => {
3053
+ try {
3054
+ const result = await this.convex.action(this.convexApi.getEntity, {
3055
+ entityId,
3056
+ ...args
3057
+ });
3058
+ return result;
3059
+ } catch (error) {
3060
+ if (!this.suppressLogs) {
3061
+ console.error("Error fetching entity: ", error);
3062
+ }
3063
+ return {
3064
+ data: null,
3065
+ error: new AutumnError({
3066
+ message: error.message,
3067
+ code: "convex_action_failed"
3068
+ })
3069
+ };
3070
+ }
3071
+ },
3072
+ delete: async (args) => {
3073
+ try {
3074
+ const result = await this.convex.action(
3075
+ this.convexApi.deleteEntity,
3076
+ args
3077
+ );
3078
+ return result;
3079
+ } catch (error) {
3080
+ return {
3081
+ data: null,
3082
+ error: new AutumnError({
3083
+ message: error.message,
3084
+ code: "convex_action_failed"
3085
+ })
3086
+ };
3087
+ }
3088
+ }
3089
+ };
3090
+ referrals = {
3091
+ createCode: async (args) => {
3092
+ try {
3093
+ const result = await this.convex.action(
3094
+ this.convexApi.createReferralCode,
3095
+ args
3096
+ );
3097
+ return result;
3098
+ } catch (error) {
3099
+ return {
3100
+ data: null,
3101
+ error: new AutumnError({
3102
+ message: error.message,
3103
+ code: "convex_action_failed"
3104
+ })
3105
+ };
3106
+ }
3107
+ },
3108
+ redeemCode: async (args) => {
3109
+ try {
3110
+ const result = await this.convex.action(
3111
+ this.convexApi.redeemReferralCode,
3112
+ args
3113
+ );
3114
+ return result;
3115
+ } catch (error) {
3116
+ return {
3117
+ data: null,
3118
+ error: new AutumnError({
3119
+ message: error.message,
3120
+ code: "convex_action_failed"
3121
+ })
3122
+ };
3123
+ }
3124
+ }
3125
+ };
3126
+ products = {
3127
+ list: async () => {
3128
+ try {
3129
+ const result = await this.convex.action(
3130
+ this.convexApi.listProducts,
3131
+ {}
3132
+ );
3133
+ return result;
3134
+ } catch (error) {
3135
+ return {
3136
+ data: null,
3137
+ error: new AutumnError({
3138
+ message: error.message,
3139
+ code: "convex_action_failed"
3140
+ })
3141
+ };
3142
+ }
3143
+ }
3144
+ };
3145
+ events = {
3146
+ list: async (params) => {
3147
+ try {
3148
+ const result = await this.convex.action(
3149
+ this.convexApi.listEvents,
3150
+ params
3151
+ );
3152
+ return result;
3153
+ } catch (error) {
3154
+ return {
3155
+ data: null,
3156
+ error: new AutumnError({
3157
+ message: error.message,
3158
+ code: "convex_action_failed"
3159
+ })
3160
+ };
3161
+ }
3162
+ },
3163
+ aggregate: async (params) => {
3164
+ try {
3165
+ const result = await this.convex.action(
3166
+ this.convexApi.aggregateEvents,
3167
+ params
3168
+ );
3169
+ return result;
3170
+ } catch (error) {
3171
+ return {
3172
+ data: null,
3173
+ error: new AutumnError({
3174
+ message: error.message,
3175
+ code: "convex_action_failed"
3176
+ })
3177
+ };
3178
+ }
3179
+ }
3180
+ };
3181
+ };
3182
+
3183
+ // src/libraries/react/ReactAutumnProvider.tsx
3184
+ var import_jsx_runtime2 = require("react/jsx-runtime");
3185
+ var getBackendUrl = (backendUrl) => {
3186
+ if (backendUrl) {
3187
+ return backendUrl;
3188
+ }
3189
+ if (backendUrl && !backendUrl.startsWith("http")) {
3190
+ console.warn(`backendUrl is not a valid URL: ${backendUrl}`);
3191
+ }
3192
+ return "";
3193
+ };
3194
+ var ReactAutumnProvider = ({
3195
+ children,
3196
+ getBearerToken,
3197
+ convex,
3198
+ backendUrl,
3199
+ customerData,
3200
+ includeCredentials,
3201
+ betterAuthUrl,
3202
+ headers,
3203
+ convexApi,
3204
+ pathPrefix,
3205
+ suppressLogs
3206
+ }) => {
3207
+ let client = convexApi ? new ConvexAutumnClient({
3208
+ convex,
3209
+ convexApi,
3210
+ customerData,
3211
+ headers,
3212
+ getBearerToken,
3213
+ suppressLogs
3214
+ }) : new AutumnClient({
3215
+ backendUrl: getBackendUrl(backendUrl),
3216
+ getBearerToken,
3217
+ customerData,
3218
+ includeCredentials,
3219
+ betterAuthUrl,
3220
+ headers,
3221
+ pathPrefix,
3222
+ suppressLogs
3223
+ });
3224
+ return /* @__PURE__ */ (0, import_jsx_runtime2.jsx)(BaseAutumnProvider, { client, AutumnContext, children });
3225
+ };
3226
+ // Annotate the CommonJS export names for ESM import in node:
3227
+ 0 && (module.exports = {
3228
+ ReactAutumnProvider
3229
+ });