autumn-js 0.0.115 → 0.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (229) hide show
  1. package/README.md +1 -139
  2. package/dist/libraries/backend/better-auth.js +17 -0
  3. package/dist/libraries/backend/better-auth.mjs +7 -7
  4. package/dist/libraries/backend/{chunk-VJTYMTEE.mjs → chunk-BDMGQV75.mjs} +1 -1
  5. package/dist/libraries/backend/{chunk-CZIMXJXT.mjs → chunk-BX2LACTF.mjs} +1 -1
  6. package/dist/libraries/backend/{chunk-5OVGQBAX.mjs → chunk-EIP7LDKF.mjs} +1 -1
  7. package/dist/libraries/backend/{chunk-FV6S6G2B.mjs → chunk-N4PGGU3D.mjs} +1 -1
  8. package/dist/libraries/backend/{chunk-SLHP34YX.mjs → chunk-O6KXYXQN.mjs} +1 -1
  9. package/dist/libraries/backend/{chunk-BBXZMPWZ.mjs → chunk-QGX7ZACH.mjs} +17 -0
  10. package/dist/libraries/backend/{chunk-RZCIKER6.mjs → chunk-WTKY2U3S.mjs} +10 -10
  11. package/dist/libraries/backend/convex.d.mts +1 -0
  12. package/dist/libraries/backend/convex.d.ts +1 -0
  13. package/dist/libraries/backend/convex.js +24 -5
  14. package/dist/libraries/backend/convex.mjs +14 -12
  15. package/dist/libraries/backend/elysia.d.mts +3 -3
  16. package/dist/libraries/backend/elysia.d.ts +3 -3
  17. package/dist/libraries/backend/elysia.js +67 -9
  18. package/dist/libraries/backend/elysia.mjs +58 -15
  19. package/dist/libraries/backend/express.d.mts +1 -1
  20. package/dist/libraries/backend/express.d.ts +1 -1
  21. package/dist/libraries/backend/express.js +17 -0
  22. package/dist/libraries/backend/express.mjs +7 -7
  23. package/dist/libraries/backend/fastify.js +17 -0
  24. package/dist/libraries/backend/fastify.mjs +7 -7
  25. package/dist/libraries/backend/hono.js +17 -0
  26. package/dist/libraries/backend/hono.mjs +7 -7
  27. package/dist/libraries/backend/index.d.mts +1 -1
  28. package/dist/libraries/backend/index.d.ts +1 -1
  29. package/dist/libraries/backend/index.js +17 -0
  30. package/dist/libraries/backend/index.mjs +7 -7
  31. package/dist/libraries/backend/next.js +17 -0
  32. package/dist/libraries/backend/next.mjs +7 -7
  33. package/dist/libraries/backend/react-router.js +17 -0
  34. package/dist/libraries/backend/react-router.mjs +7 -7
  35. package/dist/libraries/backend/{referralTypes-Tn4tzWbT.d.ts → referralTypes-DHs1hY4_.d.ts} +55 -0
  36. package/dist/libraries/backend/{referralTypes-CxBMvbW7.d.mts → referralTypes-DRsv8not.d.mts} +55 -0
  37. package/dist/libraries/backend/remix_dep.js +17 -0
  38. package/dist/libraries/backend/remix_dep.mjs +7 -7
  39. package/dist/libraries/backend/routes/backendRouter.js +17 -0
  40. package/dist/libraries/backend/routes/backendRouter.mjs +7 -7
  41. package/dist/libraries/backend/routes/entityRoutes.js +17 -0
  42. package/dist/libraries/backend/routes/entityRoutes.mjs +3 -3
  43. package/dist/libraries/backend/routes/genRoutes.js +17 -0
  44. package/dist/libraries/backend/routes/genRoutes.mjs +3 -3
  45. package/dist/libraries/backend/routes/productRoutes.js +17 -0
  46. package/dist/libraries/backend/routes/productRoutes.mjs +3 -3
  47. package/dist/libraries/backend/routes/referralRoutes.js +17 -0
  48. package/dist/libraries/backend/routes/referralRoutes.mjs +3 -3
  49. package/dist/libraries/backend/supabase.js +17 -0
  50. package/dist/libraries/backend/supabase.mjs +7 -7
  51. package/dist/libraries/backend/tanstack.js +17 -0
  52. package/dist/libraries/backend/tanstack.mjs +7 -7
  53. package/dist/libraries/backend/utils/backendRes.js +17 -0
  54. package/dist/libraries/backend/utils/backendRes.mjs +1 -1
  55. package/dist/libraries/backend/utils/withAuth.d.mts +1 -1
  56. package/dist/libraries/backend/utils/withAuth.d.ts +1 -1
  57. package/dist/libraries/backend/utils/withAuth.js +17 -0
  58. package/dist/libraries/backend/utils/withAuth.mjs +2 -2
  59. package/dist/libraries/react/AutumnContext.d.mts +6 -6
  60. package/dist/libraries/react/AutumnContext.d.ts +6 -6
  61. package/dist/libraries/react/AutumnContext.js +17 -0
  62. package/dist/libraries/react/AutumnContext.mjs +5 -5
  63. package/dist/libraries/react/BaseAutumnProvider.d.mts +6 -6
  64. package/dist/libraries/react/BaseAutumnProvider.d.ts +6 -6
  65. package/dist/libraries/react/BaseAutumnProvider.js +19 -1
  66. package/dist/libraries/react/BaseAutumnProvider.mjs +10 -10
  67. package/dist/libraries/react/{ReactAutumnClient-Deg9KIoK.d.mts → ReactAutumnClient-BK3wjb-u.d.mts} +17 -17
  68. package/dist/libraries/react/{ReactAutumnClient-DWq3CtTo.d.ts → ReactAutumnClient-Bh0Sgw6f.d.ts} +17 -17
  69. package/dist/libraries/react/ReactAutumnProvider.d.mts +2 -2
  70. package/dist/libraries/react/ReactAutumnProvider.d.ts +2 -2
  71. package/dist/libraries/react/ReactAutumnProvider.js +19 -1
  72. package/dist/libraries/react/ReactAutumnProvider.mjs +11 -11
  73. package/dist/{next/client/attachTypes-D1J8GKaX.d.ts → libraries/react/attachTypes-Cy6WgUas.d.ts} +3 -3
  74. package/dist/libraries/react/{attachTypes-BfITg8QI.d.mts → attachTypes-DKmoXHQO.d.mts} +5 -5
  75. package/dist/libraries/react/{chunk-2ZJIVJC3.mjs → chunk-4NCB2TMQ.mjs} +3 -3
  76. package/dist/libraries/react/{chunk-TTQ2JFWO.mjs → chunk-53HYUF2F.mjs} +5 -4
  77. package/dist/libraries/react/{chunk-WLMUN7LO.mjs → chunk-7RICWVXV.mjs} +2 -2
  78. package/dist/libraries/react/{chunk-JKCNFNPN.mjs → chunk-BGLWB5O2.mjs} +28 -30
  79. package/dist/libraries/react/{chunk-HRD7CMV2.mjs → chunk-CZBWEEWD.mjs} +17 -0
  80. package/dist/libraries/react/{chunk-UO4CQY4C.mjs → chunk-H4J73SMR.mjs} +1 -1
  81. package/dist/libraries/react/{chunk-SQETBIDZ.mjs → chunk-IFZCH7DR.mjs} +2 -2
  82. package/dist/libraries/react/{chunk-ID6R6YXN.mjs → chunk-JLJPPCQJ.mjs} +2 -2
  83. package/dist/libraries/react/{chunk-GB3FANSE.mjs → chunk-LFLX6NJU.mjs} +1 -1
  84. package/dist/libraries/react/{chunk-WEOR6KVG.mjs → chunk-LMQMA7VL.mjs} +7 -7
  85. package/dist/libraries/react/{chunk-MRJXFGYA.mjs → chunk-MRZA4JWN.mjs} +1 -1
  86. package/dist/libraries/react/{chunk-GUN6SIBL.mjs → chunk-PFN52PHR.mjs} +2 -2
  87. package/dist/libraries/react/{chunk-YOP5NTBJ.mjs → chunk-TM3NBNVM.mjs} +1 -1
  88. package/dist/libraries/react/{chunk-IJNOJKLD.mjs → chunk-UAK4XMNC.mjs} +1 -1
  89. package/dist/libraries/react/{chunk-6ZNJROK5.mjs → chunk-UCUAGLCJ.mjs} +1 -1
  90. package/dist/libraries/react/{chunk-3TWEC5VD.mjs → chunk-WZG3QTZI.mjs} +3 -3
  91. package/dist/libraries/react/client/ReactAutumnClient.d.mts +6 -6
  92. package/dist/libraries/react/client/ReactAutumnClient.d.ts +6 -6
  93. package/dist/libraries/react/client/ReactAutumnClient.js +17 -0
  94. package/dist/libraries/react/client/ReactAutumnClient.mjs +4 -4
  95. package/dist/libraries/react/client/clientCompMethods.d.mts +6 -6
  96. package/dist/libraries/react/client/clientCompMethods.d.ts +6 -6
  97. package/dist/libraries/react/client/clientCusMethods.d.mts +6 -6
  98. package/dist/libraries/react/client/clientCusMethods.d.ts +6 -6
  99. package/dist/libraries/react/client/clientEntityMethods.d.mts +6 -6
  100. package/dist/libraries/react/client/clientEntityMethods.d.ts +6 -6
  101. package/dist/libraries/react/client/clientGenMethods.d.mts +6 -6
  102. package/dist/libraries/react/client/clientGenMethods.d.ts +6 -6
  103. package/dist/libraries/react/client/clientProdMethods.d.mts +6 -6
  104. package/dist/libraries/react/client/clientProdMethods.d.ts +6 -6
  105. package/dist/libraries/react/client/clientReferralMethods.d.mts +6 -6
  106. package/dist/libraries/react/client/clientReferralMethods.d.ts +6 -6
  107. package/dist/libraries/react/client/types/clientAttachTypes.d.mts +20 -20
  108. package/dist/libraries/react/client/types/clientAttachTypes.d.ts +20 -20
  109. package/dist/libraries/react/client/types/clientGenTypes.d.mts +4 -4
  110. package/dist/libraries/react/client/types/clientGenTypes.d.ts +4 -4
  111. package/dist/libraries/react/client/types/clientGenTypes.js +17 -0
  112. package/dist/libraries/react/client/types/clientGenTypes.mjs +1 -1
  113. package/dist/libraries/react/components/checkout-dialog/checkout-dialog-synced.d.mts +2 -2
  114. package/dist/libraries/react/components/checkout-dialog/checkout-dialog-synced.d.ts +2 -2
  115. package/dist/libraries/react/components/checkout-dialog/checkout-dialog-synced.js +19 -1
  116. package/dist/libraries/react/components/checkout-dialog/checkout-dialog-synced.mjs +27 -27
  117. package/dist/libraries/react/components/checkout-dialog/lib/checkout-content.d.mts +2 -2
  118. package/dist/libraries/react/components/checkout-dialog/lib/checkout-content.d.ts +2 -2
  119. package/dist/libraries/react/components/paywall-dialog/lib/paywall-content.d.mts +1 -1
  120. package/dist/libraries/react/components/paywall-dialog/lib/paywall-content.d.ts +1 -1
  121. package/dist/libraries/react/components/paywall-dialog/paywall-dialog-synced.js +17 -0
  122. package/dist/libraries/react/components/paywall-dialog/paywall-dialog-synced.mjs +27 -27
  123. package/dist/libraries/react/components/pricing-table/lib/pricing-table-content.d.mts +1 -1
  124. package/dist/libraries/react/components/pricing-table/lib/pricing-table-content.d.ts +1 -1
  125. package/dist/libraries/react/components/pricing-table/pricing-table-synced.d.mts +4 -4
  126. package/dist/libraries/react/components/pricing-table/pricing-table-synced.d.ts +4 -4
  127. package/dist/libraries/react/components/pricing-table/pricing-table-synced.js +20 -4
  128. package/dist/libraries/react/components/pricing-table/pricing-table-synced.mjs +27 -27
  129. package/dist/libraries/react/components/ui/dialog.mjs +2 -2
  130. package/dist/libraries/react/components/ui/popover.mjs +2 -2
  131. package/dist/libraries/react/{cusTypes-CMj2sP-4.d.ts → cusTypes-Dlt0fQmq.d.mts} +23 -5
  132. package/dist/libraries/react/{cusTypes-Dj2tcwg7.d.mts → cusTypes-eNmWJ2rC.d.ts} +23 -5
  133. package/dist/libraries/react/{entTypes-Cltx_-C_.d.mts → entTypes-BDZUfZE_.d.mts} +1 -1
  134. package/dist/libraries/react/{entTypes-fYtiTl7W.d.ts → entTypes-B_DvaeRL.d.ts} +1 -1
  135. package/dist/libraries/react/{genTypes-CH9EbOfb.d.mts → genTypes-BIPS92_Q.d.mts} +5 -5
  136. package/dist/libraries/react/{genTypes-A2nf2M_h.d.ts → genTypes-Rn-oq2sc.d.ts} +5 -5
  137. package/dist/libraries/react/hooks/helpers/handleCheck.d.mts +6 -6
  138. package/dist/libraries/react/hooks/helpers/handleCheck.d.ts +6 -6
  139. package/dist/libraries/react/hooks/helpers/handleCheck.js +17 -0
  140. package/dist/libraries/react/hooks/helpers/handleCheck.mjs +2 -2
  141. package/dist/libraries/react/hooks/helpers/useAutumnBase.d.mts +7 -7
  142. package/dist/libraries/react/hooks/helpers/useAutumnBase.d.ts +7 -7
  143. package/dist/libraries/react/hooks/helpers/useAutumnBase.js +17 -0
  144. package/dist/libraries/react/hooks/helpers/useAutumnBase.mjs +3 -3
  145. package/dist/libraries/react/hooks/useAnalytics.d.mts +2 -2
  146. package/dist/libraries/react/hooks/useAnalytics.d.ts +2 -2
  147. package/dist/libraries/react/hooks/useAnalytics.js +17 -0
  148. package/dist/libraries/react/hooks/useAnalytics.mjs +6 -6
  149. package/dist/libraries/react/hooks/useCustomer.d.mts +6 -6
  150. package/dist/libraries/react/hooks/useCustomer.d.ts +6 -6
  151. package/dist/libraries/react/hooks/useCustomer.js +19 -1
  152. package/dist/libraries/react/hooks/useCustomer.mjs +10 -10
  153. package/dist/libraries/react/hooks/useCustomerBase.d.mts +6 -6
  154. package/dist/libraries/react/hooks/useCustomerBase.d.ts +6 -6
  155. package/dist/libraries/react/hooks/useCustomerBase.js +19 -1
  156. package/dist/libraries/react/hooks/useCustomerBase.mjs +9 -9
  157. package/dist/libraries/react/hooks/useEntity.d.mts +6 -6
  158. package/dist/libraries/react/hooks/useEntity.d.ts +6 -6
  159. package/dist/libraries/react/hooks/useEntity.js +17 -0
  160. package/dist/libraries/react/hooks/useEntity.mjs +10 -10
  161. package/dist/libraries/react/hooks/useEntityBase.d.mts +8 -8
  162. package/dist/libraries/react/hooks/useEntityBase.d.ts +8 -8
  163. package/dist/libraries/react/hooks/useEntityBase.js +17 -0
  164. package/dist/libraries/react/hooks/useEntityBase.mjs +9 -9
  165. package/dist/libraries/react/hooks/usePaywall.d.mts +1 -1
  166. package/dist/libraries/react/hooks/usePaywall.d.ts +1 -1
  167. package/dist/libraries/react/hooks/usePaywall.js +17 -0
  168. package/dist/libraries/react/hooks/usePaywall.mjs +6 -6
  169. package/dist/libraries/react/hooks/usePricingTable.d.mts +1 -1
  170. package/dist/libraries/react/hooks/usePricingTable.d.ts +1 -1
  171. package/dist/libraries/react/hooks/usePricingTable.js +17 -0
  172. package/dist/libraries/react/hooks/usePricingTable.mjs +7 -7
  173. package/dist/libraries/react/hooks/usePricingTableBase.d.mts +6 -6
  174. package/dist/libraries/react/hooks/usePricingTableBase.d.ts +6 -6
  175. package/dist/libraries/react/hooks/usePricingTableBase.js +17 -0
  176. package/dist/libraries/react/hooks/usePricingTableBase.mjs +2 -2
  177. package/dist/libraries/react/hooks/useProductsBase.d.mts +6 -6
  178. package/dist/libraries/react/hooks/useProductsBase.d.ts +6 -6
  179. package/dist/libraries/react/index.d.mts +37 -1
  180. package/dist/libraries/react/index.d.ts +37 -1
  181. package/dist/libraries/react/index.js +20 -4
  182. package/dist/libraries/react/index.mjs +20 -4
  183. package/dist/libraries/react/{prodTypes-DZUJPsRN.d.mts → prodTypes-DuLXGCiA.d.mts} +23 -5
  184. package/dist/libraries/react/{prodTypes-DZUJPsRN.d.ts → prodTypes-DuLXGCiA.d.ts} +23 -5
  185. package/dist/next/client/NextAutumnClient.d.mts +7 -7
  186. package/dist/next/client/NextAutumnClient.d.ts +7 -7
  187. package/dist/next/client/NextAutumnProvider.d.mts +2 -2
  188. package/dist/next/client/NextAutumnProvider.d.ts +2 -2
  189. package/dist/{libraries/react/attachTypes-ZMWuxpzI.d.ts → next/client/attachTypes-BCt7D8ym.d.ts} +5 -5
  190. package/dist/next/client/{attachTypes-Ds4c3m_f.d.mts → attachTypes-BThbMcvF.d.mts} +3 -3
  191. package/dist/next/client/{clientAttachTypes-CTlrbiN0.d.ts → clientAttachTypes-Df5FVGkw.d.ts} +3 -3
  192. package/dist/next/client/{clientAttachTypes-BkPjc5Md.d.mts → clientAttachTypes-whHUVrE3.d.mts} +3 -3
  193. package/dist/next/client/clientUtils.d.mts +3 -3
  194. package/dist/next/client/clientUtils.d.ts +3 -3
  195. package/dist/next/client/{cusTypes-cin7tsQv.d.mts → cusTypes-BuLw67IH.d.mts} +21 -3
  196. package/dist/next/client/{cusTypes-7rPpQ98G.d.ts → cusTypes-CqAsUZEp.d.ts} +21 -3
  197. package/dist/next/client/{entTypes-Nr9DDaGQ.d.ts → entTypes-BLLymqnn.d.ts} +1 -1
  198. package/dist/next/client/{entTypes-DhVNxsHB.d.mts → entTypes-DTRFxh07.d.mts} +1 -1
  199. package/dist/next/client/hooks/useAutumn.d.mts +4 -4
  200. package/dist/next/client/hooks/useAutumn.d.ts +4 -4
  201. package/dist/next/client/hooks/useCustomer.d.mts +5 -5
  202. package/dist/next/client/hooks/useCustomer.d.ts +5 -5
  203. package/dist/next/client/hooks/useEntity.d.mts +4 -4
  204. package/dist/next/client/hooks/useEntity.d.ts +4 -4
  205. package/dist/next/client/hooks/usePricingTable.d.mts +1 -1
  206. package/dist/next/client/hooks/usePricingTable.d.ts +1 -1
  207. package/dist/next/client/{prodTypes-CYd9Q1Rw.d.mts → prodTypes-UFM-PYm-.d.mts} +18 -0
  208. package/dist/next/client/{prodTypes-CYd9Q1Rw.d.ts → prodTypes-UFM-PYm-.d.ts} +18 -0
  209. package/dist/next/client/types.d.mts +3 -3
  210. package/dist/next/client/types.d.ts +3 -3
  211. package/dist/next/server/auth/withNextAuth.d.mts +1 -1
  212. package/dist/next/server/auth/withNextAuth.d.ts +1 -1
  213. package/dist/next/server/componentActions.d.mts +1 -1
  214. package/dist/next/server/componentActions.d.ts +1 -1
  215. package/dist/next/server/cusActions.d.mts +34 -15
  216. package/dist/next/server/cusActions.d.ts +34 -15
  217. package/dist/next/server/{cusTypes-wfx--BDG.d.mts → cusTypes-B0zde-Pl.d.mts} +40 -4
  218. package/dist/next/server/{cusTypes-wfx--BDG.d.ts → cusTypes-B0zde-Pl.d.ts} +40 -4
  219. package/dist/next/server/genActions.d.mts +1 -1
  220. package/dist/next/server/genActions.d.ts +1 -1
  221. package/dist/sdk/index.d.mts +56 -1
  222. package/dist/sdk/index.d.ts +56 -1
  223. package/dist/sdk/index.js +18 -0
  224. package/dist/sdk/index.mjs +18 -1
  225. package/dist/utils/encryptUtils.js +17 -0
  226. package/dist/utils/encryptUtils.mjs +17 -0
  227. package/package.json +7 -4
  228. package/dist/libraries/react/{chunk-7JNU5ABT.mjs → chunk-FJWZPMWU.mjs} +3 -3
  229. package/dist/libraries/react/{chunk-LCWL3TIT.mjs → chunk-OTZ65PCT.mjs} +3 -3
package/README.md CHANGED
@@ -1,11 +1,10 @@
1
1
  # Autumn JS Library
2
2
 
3
- autumn-js is a comprehensive JavaScript/TypeScript library for interacting with the Autumn pricing platform. This package provides both a server-side SDK for the Autumn API and a Next.js integration package for seamless client-side implementation.
3
+ autumn-js is a JavaScript/TypeScript library for interacting with the Autumn pricing and billing platform. This package provides both a server-side SDK for the Autumn API and a React package for client-side implementation.
4
4
 
5
5
  ## Features
6
6
 
7
7
  - 🚀 Complete Autumn API SDK
8
- - ⚡ Next.js Integration
9
8
  - 🔒 Type-safe API interactions
10
9
  - 🛠️ Easy-to-use hooks and components
11
10
 
@@ -14,140 +13,3 @@ autumn-js is a comprehensive JavaScript/TypeScript library for interacting with
14
13
  ```bash
15
14
  npm install autumn-js
16
15
  ```
17
-
18
- ## Configuration
19
-
20
- Add your Autumn secret key to your environment variables:
21
-
22
- ```env
23
- AUTUMN_SECRET_KEY=your_secret_key_here
24
- ```
25
-
26
- ## Usage
27
-
28
- ### Server-Side SDK
29
-
30
- For server-side applications (Node.js, Express, etc.), use the SDK like this:
31
-
32
- ```typescript
33
- import { Autumn } from 'autumn-js'
34
-
35
- // Initialize Autumn
36
- const autumn = new Autumn()
37
-
38
- // Create a customer
39
- await autumn.customers.create({
40
- id: "customer_123",
41
- name: "John Doe"
42
- })
43
- ```
44
-
45
- ### Next.js Integration
46
-
47
- For Next.js applications, Autumn.js provides a dedicated integration with helpful hooks and components.
48
-
49
- **1.** First, wrap your application with the `AutumnProvider` in your root layout.tsx (this must be a Server Component):
50
-
51
- ```jsx
52
- // app/layout.tsx
53
-
54
- import { AutumnProvider } from 'autumn-js/next'
55
-
56
- export default function RootLayout({
57
- children,
58
- }: {
59
- children: React.ReactNode
60
- }) {
61
- return (
62
- <html>
63
- <body>
64
- <AutumnProvider customerId="YOUR_CUSTOMER_ID">
65
- {children}
66
- </AutumnProvider>
67
- </body>
68
- </html>
69
- )
70
- }
71
- ```
72
-
73
- **2.** Then use the `useAutumn` hook in your components:
74
-
75
- ```jsx
76
- import { useAutumn } from 'autumn-js/next'
77
-
78
- export default function BillingPage() {
79
- const { attach, openBillingPortal } = useAutumn()
80
-
81
- return (
82
- <div>
83
- <button onClick={() => openBillingPortal()}>
84
- Manage Billing
85
- </button>
86
- <button onClick={() => attach()}>
87
- Upgrade to Pro
88
- </button>
89
- </div>
90
- )
91
- }
92
- ```
93
-
94
- The `useAutumn` hook exports several useful functions:
95
-
96
- - `attach({ productId })`: Opens a checkout URL automatically when called to attach a product to the customer
97
- - `check({ featureId })`: Checks if the customer is entitled to use a specific feature
98
- - `track({ featureId, value })`: Send usage for a particular feature
99
- - `openBillingPortal()`: Opens Stripe's billing portal for the current customer to manage their subscription and billing settings
100
-
101
-
102
- <br/>
103
-
104
- **3.** For authentication, you can either pass a customer ID directly or use our auth plugin (which allows you to easily integrate with popular providers like Better Auth):
105
-
106
- Better Auth Example:
107
- ```jsx
108
- <AutumnProvider
109
- authPlugin={{
110
- provider: "better-auth",
111
- instance: auth, // Your server-side better-auth instance
112
- useOrg: true, // Set to true if organizations are your customers
113
- }}
114
- >
115
- {children}
116
- </AutumnProvider>
117
- ```
118
-
119
- Supabase Example:
120
- ```jsx
121
- <AutumnProvider
122
- authPlugin={{
123
- provider: "supabase",
124
- }}
125
- >
126
- {children}
127
- </AutumnProvider>
128
- ```
129
-
130
- Clerk Example:
131
- ```jsx
132
- <AutumnProvider
133
- authPlugin={{
134
- provider: "clerk",
135
- useOrg: true,
136
- }}
137
- >
138
- {children}
139
- </AutumnProvider>
140
- ```
141
-
142
-
143
- ## API Reference
144
-
145
- For detailed API documentation, visit [docs.useautumn.com](https://docs.useautumn.com)
146
-
147
- ## Support
148
-
149
- For support, email hey@useautumn.com!
150
-
151
- ## License
152
-
153
- MIT
@@ -183,6 +183,7 @@ var entityMethods = (instance) => {
183
183
  params
184
184
  }),
185
185
  create: (customer_id, params) => staticWrapper(createEntity, instance, { customer_id, params }),
186
+ transfer: (customer_id, params) => staticWrapper(transferProduct, instance, { customer_id, params }),
186
187
  delete: (customer_id, entity_id) => staticWrapper(deleteEntity, instance, { customer_id, entity_id })
187
188
  };
188
189
  };
@@ -218,6 +219,13 @@ var deleteEntity = async ({
218
219
  }) => {
219
220
  return instance.delete(`/customers/${customer_id}/entities/${entity_id}`);
220
221
  };
222
+ var transferProduct = async ({
223
+ instance,
224
+ customer_id,
225
+ params
226
+ }) => {
227
+ return instance.post(`/customers/${customer_id}/transfer`, params);
228
+ };
221
229
 
222
230
  // src/sdk/products/prodMethods.ts
223
231
  var productMethods = (instance) => {
@@ -524,6 +532,10 @@ var CoreCusFeatureSchema = import_zod2.z.object({
524
532
  next_reset_at: import_zod2.z.number().nullish(),
525
533
  overage_allowed: import_zod2.z.boolean().optional(),
526
534
  usage_limit: import_zod2.z.number().optional(),
535
+ rollovers: import_zod2.z.object({
536
+ balance: import_zod2.z.number(),
537
+ expires_at: import_zod2.z.number()
538
+ }).optional(),
527
539
  breakdown: import_zod2.z.array(
528
540
  import_zod2.z.object({
529
541
  interval: import_zod2.z.nativeEnum(ProductItemInterval),
@@ -573,6 +585,11 @@ var EntityDataSchema = import_zod4.z.object({
573
585
  name: import_zod4.z.string().optional(),
574
586
  feature_id: import_zod4.z.string()
575
587
  });
588
+ var TransferProductParamsSchema = import_zod4.z.object({
589
+ from_entity_id: import_zod4.z.string(),
590
+ to_entity_id: import_zod4.z.string(),
591
+ product_id: import_zod4.z.string()
592
+ });
576
593
 
577
594
  // src/sdk/general/genTypes.ts
578
595
  var import_zod5 = require("zod");
@@ -3,12 +3,12 @@ import {
3
3
  } from "./chunk-UNZHJTEY.mjs";
4
4
  import {
5
5
  createRouterWithOptions
6
- } from "./chunk-RZCIKER6.mjs";
7
- import "./chunk-FV6S6G2B.mjs";
8
- import "./chunk-VJTYMTEE.mjs";
9
- import "./chunk-5OVGQBAX.mjs";
10
- import "./chunk-CZIMXJXT.mjs";
11
- import "./chunk-SLHP34YX.mjs";
6
+ } from "./chunk-WTKY2U3S.mjs";
7
+ import "./chunk-EIP7LDKF.mjs";
8
+ import "./chunk-BX2LACTF.mjs";
9
+ import "./chunk-N4PGGU3D.mjs";
10
+ import "./chunk-BDMGQV75.mjs";
11
+ import "./chunk-O6KXYXQN.mjs";
12
12
  import {
13
13
  AttachParamsSchema,
14
14
  Autumn,
@@ -19,7 +19,7 @@ import {
19
19
  CustomerExpandEnum,
20
20
  RedeemReferralCodeParamsSchema,
21
21
  TrackParamsSchema
22
- } from "./chunk-BBXZMPWZ.mjs";
22
+ } from "./chunk-QGX7ZACH.mjs";
23
23
  import "./chunk-2TEL6LR5.mjs";
24
24
  import "./chunk-KSG3E4Q2.mjs";
25
25
 
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  withAuth
3
- } from "./chunk-SLHP34YX.mjs";
3
+ } from "./chunk-O6KXYXQN.mjs";
4
4
 
5
5
  // src/libraries/backend/routes/entityRoutes.ts
6
6
  import { addRoute } from "rou3";
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  withAuth
3
- } from "./chunk-SLHP34YX.mjs";
3
+ } from "./chunk-O6KXYXQN.mjs";
4
4
  import {
5
5
  BASE_PATH
6
6
  } from "./chunk-KSG3E4Q2.mjs";
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  withAuth
3
- } from "./chunk-SLHP34YX.mjs";
3
+ } from "./chunk-O6KXYXQN.mjs";
4
4
  import {
5
5
  BASE_PATH
6
6
  } from "./chunk-KSG3E4Q2.mjs";
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  withAuth
3
- } from "./chunk-SLHP34YX.mjs";
3
+ } from "./chunk-O6KXYXQN.mjs";
4
4
  import {
5
5
  BASE_PATH
6
6
  } from "./chunk-KSG3E4Q2.mjs";
@@ -1,7 +1,7 @@
1
1
  import {
2
2
  toBackendError,
3
3
  toBackendRes
4
- } from "./chunk-BBXZMPWZ.mjs";
4
+ } from "./chunk-QGX7ZACH.mjs";
5
5
  import {
6
6
  logger
7
7
  } from "./chunk-2TEL6LR5.mjs";
@@ -157,6 +157,7 @@ var entityMethods = (instance) => {
157
157
  params
158
158
  }),
159
159
  create: (customer_id, params) => staticWrapper(createEntity, instance, { customer_id, params }),
160
+ transfer: (customer_id, params) => staticWrapper(transferProduct, instance, { customer_id, params }),
160
161
  delete: (customer_id, entity_id) => staticWrapper(deleteEntity, instance, { customer_id, entity_id })
161
162
  };
162
163
  };
@@ -192,6 +193,13 @@ var deleteEntity = async ({
192
193
  }) => {
193
194
  return instance.delete(`/customers/${customer_id}/entities/${entity_id}`);
194
195
  };
196
+ var transferProduct = async ({
197
+ instance,
198
+ customer_id,
199
+ params
200
+ }) => {
201
+ return instance.post(`/customers/${customer_id}/transfer`, params);
202
+ };
195
203
 
196
204
  // src/sdk/products/prodMethods.ts
197
205
  var productMethods = (instance) => {
@@ -461,6 +469,10 @@ var CoreCusFeatureSchema = z2.object({
461
469
  next_reset_at: z2.number().nullish(),
462
470
  overage_allowed: z2.boolean().optional(),
463
471
  usage_limit: z2.number().optional(),
472
+ rollovers: z2.object({
473
+ balance: z2.number(),
474
+ expires_at: z2.number()
475
+ }).optional(),
464
476
  breakdown: z2.array(
465
477
  z2.object({
466
478
  interval: z2.nativeEnum(ProductItemInterval),
@@ -510,6 +522,11 @@ var EntityDataSchema = z4.object({
510
522
  name: z4.string().optional(),
511
523
  feature_id: z4.string()
512
524
  });
525
+ var TransferProductParamsSchema = z4.object({
526
+ from_entity_id: z4.string(),
527
+ to_entity_id: z4.string(),
528
+ product_id: z4.string()
529
+ });
513
530
 
514
531
  // src/sdk/general/genTypes.ts
515
532
  import { z as z5 } from "zod";
@@ -1,21 +1,21 @@
1
- import {
2
- addReferralRoutes
3
- } from "./chunk-FV6S6G2B.mjs";
4
- import {
5
- addEntityRoutes
6
- } from "./chunk-VJTYMTEE.mjs";
7
1
  import {
8
2
  addGenRoutes
9
- } from "./chunk-5OVGQBAX.mjs";
3
+ } from "./chunk-EIP7LDKF.mjs";
10
4
  import {
11
5
  addProductRoutes
12
- } from "./chunk-CZIMXJXT.mjs";
6
+ } from "./chunk-BX2LACTF.mjs";
7
+ import {
8
+ addReferralRoutes
9
+ } from "./chunk-N4PGGU3D.mjs";
10
+ import {
11
+ addEntityRoutes
12
+ } from "./chunk-BDMGQV75.mjs";
13
13
  import {
14
14
  withAuth
15
- } from "./chunk-SLHP34YX.mjs";
15
+ } from "./chunk-O6KXYXQN.mjs";
16
16
  import {
17
17
  fetchPricingTable
18
- } from "./chunk-BBXZMPWZ.mjs";
18
+ } from "./chunk-QGX7ZACH.mjs";
19
19
  import {
20
20
  BASE_PATH
21
21
  } from "./chunk-KSG3E4Q2.mjs";
@@ -5,6 +5,7 @@ declare function autumnHandler(options: {
5
5
  identify: (ctx: any, request: any) => AuthResult;
6
6
  url?: string;
7
7
  secretKey?: string;
8
+ clientOrigin?: string;
8
9
  }): any;
9
10
 
10
11
  export { autumnHandler };
@@ -5,6 +5,7 @@ declare function autumnHandler(options: {
5
5
  identify: (ctx: any, request: any) => AuthResult;
6
6
  url?: string;
7
7
  secretKey?: string;
8
+ clientOrigin?: string;
8
9
  }): any;
9
10
 
10
11
  export { autumnHandler };
@@ -180,6 +180,7 @@ var entityMethods = (instance) => {
180
180
  params
181
181
  }),
182
182
  create: (customer_id, params) => staticWrapper(createEntity, instance, { customer_id, params }),
183
+ transfer: (customer_id, params) => staticWrapper(transferProduct, instance, { customer_id, params }),
183
184
  delete: (customer_id, entity_id) => staticWrapper(deleteEntity, instance, { customer_id, entity_id })
184
185
  };
185
186
  };
@@ -215,6 +216,13 @@ var deleteEntity = async ({
215
216
  }) => {
216
217
  return instance.delete(`/customers/${customer_id}/entities/${entity_id}`);
217
218
  };
219
+ var transferProduct = async ({
220
+ instance,
221
+ customer_id,
222
+ params
223
+ }) => {
224
+ return instance.post(`/customers/${customer_id}/transfer`, params);
225
+ };
218
226
 
219
227
  // src/sdk/products/prodMethods.ts
220
228
  var productMethods = (instance) => {
@@ -521,6 +529,10 @@ var CoreCusFeatureSchema = import_zod2.z.object({
521
529
  next_reset_at: import_zod2.z.number().nullish(),
522
530
  overage_allowed: import_zod2.z.boolean().optional(),
523
531
  usage_limit: import_zod2.z.number().optional(),
532
+ rollovers: import_zod2.z.object({
533
+ balance: import_zod2.z.number(),
534
+ expires_at: import_zod2.z.number()
535
+ }).optional(),
524
536
  breakdown: import_zod2.z.array(
525
537
  import_zod2.z.object({
526
538
  interval: import_zod2.z.nativeEnum(ProductItemInterval),
@@ -570,6 +582,11 @@ var EntityDataSchema = import_zod4.z.object({
570
582
  name: import_zod4.z.string().optional(),
571
583
  feature_id: import_zod4.z.string()
572
584
  });
585
+ var TransferProductParamsSchema = import_zod4.z.object({
586
+ from_entity_id: import_zod4.z.string(),
587
+ to_entity_id: import_zod4.z.string(),
588
+ product_id: import_zod4.z.string()
589
+ });
573
590
 
574
591
  // src/sdk/general/genTypes.ts
575
592
  var import_zod5 = require("zod");
@@ -1143,10 +1160,11 @@ function autumnHandler(options) {
1143
1160
  if (headers.get("Origin") !== null && headers.get("Access-Control-Request-Method") !== null && headers.get("Access-Control-Request-Headers") !== null) {
1144
1161
  return new Response(null, {
1145
1162
  headers: new Headers({
1146
- // e.g. https://mywebsite.com, configured on your Convex dashboard
1147
- "Access-Control-Allow-Origin": process.env.CLIENT_ORIGIN,
1148
- "Access-Control-Allow-Methods": "POST",
1149
- "Access-Control-Allow-Headers": "Content-Type, Digest",
1163
+ // e.g. https://mywebsite.com, configured on your Convex dashboard, or passed in as an option
1164
+ "Access-Control-Allow-Origin": options.clientOrigin ?? process.env.CLIENT_ORIGIN ?? "http://localhost:3000",
1165
+ "Access-Control-Allow-Methods": "POST, GET, PATCH, DELETE, OPTIONS",
1166
+ "Access-Control-Allow-Headers": "Content-Type, Digest, Authorization, Cookie",
1167
+ "Access-Control-Allow-Credentials": "true",
1150
1168
  "Access-Control-Max-Age": "86400"
1151
1169
  })
1152
1170
  });
@@ -1187,7 +1205,8 @@ function autumnHandler(options) {
1187
1205
  return Response.json(result.body, {
1188
1206
  status: result.statusCode,
1189
1207
  headers: new Headers({
1190
- "Access-Control-Allow-Origin": process.env.CLIENT_ORIGIN,
1208
+ "Access-Control-Allow-Origin": options.clientOrigin ?? process.env.CLIENT_ORIGIN ?? "http://localhost:3000",
1209
+ "Access-Control-Allow-Credentials": "true",
1191
1210
  Vary: "origin"
1192
1211
  })
1193
1212
  });
@@ -3,15 +3,15 @@ import {
3
3
  } from "./chunk-UNZHJTEY.mjs";
4
4
  import {
5
5
  createRouterWithOptions
6
- } from "./chunk-RZCIKER6.mjs";
7
- import "./chunk-FV6S6G2B.mjs";
8
- import "./chunk-VJTYMTEE.mjs";
9
- import "./chunk-5OVGQBAX.mjs";
10
- import "./chunk-CZIMXJXT.mjs";
11
- import "./chunk-SLHP34YX.mjs";
6
+ } from "./chunk-WTKY2U3S.mjs";
7
+ import "./chunk-EIP7LDKF.mjs";
8
+ import "./chunk-BX2LACTF.mjs";
9
+ import "./chunk-N4PGGU3D.mjs";
10
+ import "./chunk-BDMGQV75.mjs";
11
+ import "./chunk-O6KXYXQN.mjs";
12
12
  import {
13
13
  Autumn
14
- } from "./chunk-BBXZMPWZ.mjs";
14
+ } from "./chunk-QGX7ZACH.mjs";
15
15
  import "./chunk-2TEL6LR5.mjs";
16
16
  import "./chunk-KSG3E4Q2.mjs";
17
17
 
@@ -24,10 +24,11 @@ function autumnHandler(options) {
24
24
  if (headers.get("Origin") !== null && headers.get("Access-Control-Request-Method") !== null && headers.get("Access-Control-Request-Headers") !== null) {
25
25
  return new Response(null, {
26
26
  headers: new Headers({
27
- // e.g. https://mywebsite.com, configured on your Convex dashboard
28
- "Access-Control-Allow-Origin": process.env.CLIENT_ORIGIN,
29
- "Access-Control-Allow-Methods": "POST",
30
- "Access-Control-Allow-Headers": "Content-Type, Digest",
27
+ // e.g. https://mywebsite.com, configured on your Convex dashboard, or passed in as an option
28
+ "Access-Control-Allow-Origin": options.clientOrigin ?? process.env.CLIENT_ORIGIN ?? "http://localhost:3000",
29
+ "Access-Control-Allow-Methods": "POST, GET, PATCH, DELETE, OPTIONS",
30
+ "Access-Control-Allow-Headers": "Content-Type, Digest, Authorization, Cookie",
31
+ "Access-Control-Allow-Credentials": "true",
31
32
  "Access-Control-Max-Age": "86400"
32
33
  })
33
34
  });
@@ -68,7 +69,8 @@ function autumnHandler(options) {
68
69
  return Response.json(result.body, {
69
70
  status: result.statusCode,
70
71
  headers: new Headers({
71
- "Access-Control-Allow-Origin": process.env.CLIENT_ORIGIN,
72
+ "Access-Control-Allow-Origin": options.clientOrigin ?? process.env.CLIENT_ORIGIN ?? "http://localhost:3000",
73
+ "Access-Control-Allow-Credentials": "true",
72
74
  Vary: "origin"
73
75
  })
74
76
  });
@@ -1,8 +1,8 @@
1
1
  import { AuthResult } from './utils/AuthFunction.mjs';
2
- import { Context, Elysia } from 'elysia';
2
+ import { Elysia } from 'elysia';
3
3
 
4
- declare function autumnHandler<ContextType extends Context = Context>(options: {
5
- identify: (context: ContextType) => AuthResult | Promise<AuthResult>;
4
+ declare function autumnHandler(options: {
5
+ identify: (context: any) => AuthResult | Promise<AuthResult>;
6
6
  version?: string;
7
7
  secretKey?: string;
8
8
  url?: string;
@@ -1,8 +1,8 @@
1
1
  import { AuthResult } from './utils/AuthFunction.js';
2
- import { Context, Elysia } from 'elysia';
2
+ import { Elysia } from 'elysia';
3
3
 
4
- declare function autumnHandler<ContextType extends Context = Context>(options: {
5
- identify: (context: ContextType) => AuthResult | Promise<AuthResult>;
4
+ declare function autumnHandler(options: {
5
+ identify: (context: any) => AuthResult | Promise<AuthResult>;
6
6
  version?: string;
7
7
  secretKey?: string;
8
8
  url?: string;
@@ -181,6 +181,7 @@ var entityMethods = (instance) => {
181
181
  params
182
182
  }),
183
183
  create: (customer_id, params) => staticWrapper(createEntity, instance, { customer_id, params }),
184
+ transfer: (customer_id, params) => staticWrapper(transferProduct, instance, { customer_id, params }),
184
185
  delete: (customer_id, entity_id) => staticWrapper(deleteEntity, instance, { customer_id, entity_id })
185
186
  };
186
187
  };
@@ -216,6 +217,13 @@ var deleteEntity = async ({
216
217
  }) => {
217
218
  return instance.delete(`/customers/${customer_id}/entities/${entity_id}`);
218
219
  };
220
+ var transferProduct = async ({
221
+ instance,
222
+ customer_id,
223
+ params
224
+ }) => {
225
+ return instance.post(`/customers/${customer_id}/transfer`, params);
226
+ };
219
227
 
220
228
  // src/sdk/products/prodMethods.ts
221
229
  var productMethods = (instance) => {
@@ -522,6 +530,10 @@ var CoreCusFeatureSchema = import_zod2.z.object({
522
530
  next_reset_at: import_zod2.z.number().nullish(),
523
531
  overage_allowed: import_zod2.z.boolean().optional(),
524
532
  usage_limit: import_zod2.z.number().optional(),
533
+ rollovers: import_zod2.z.object({
534
+ balance: import_zod2.z.number(),
535
+ expires_at: import_zod2.z.number()
536
+ }).optional(),
525
537
  breakdown: import_zod2.z.array(
526
538
  import_zod2.z.object({
527
539
  interval: import_zod2.z.nativeEnum(ProductItemInterval),
@@ -571,6 +583,11 @@ var EntityDataSchema = import_zod4.z.object({
571
583
  name: import_zod4.z.string().optional(),
572
584
  feature_id: import_zod4.z.string()
573
585
  });
586
+ var TransferProductParamsSchema = import_zod4.z.object({
587
+ from_entity_id: import_zod4.z.string(),
588
+ to_entity_id: import_zod4.z.string(),
589
+ product_id: import_zod4.z.string()
590
+ });
574
591
 
575
592
  // src/sdk/general/genTypes.ts
576
593
  var import_zod5 = require("zod");
@@ -1135,8 +1152,25 @@ var secretKeyCheck = (secretKey) => {
1135
1152
  return { found: true, error: null };
1136
1153
  };
1137
1154
 
1155
+ // src/utils/toSnakeCase.ts
1156
+ function stringToSnakeCase2(str) {
1157
+ return str.replace(/([a-z])([A-Z])/g, "$1_$2").replace(/[-\s]+/g, "_").toLowerCase();
1158
+ }
1159
+ var toSnakeCase2 = (obj) => {
1160
+ if (Array.isArray(obj)) {
1161
+ return obj.map(toSnakeCase2);
1162
+ } else if (obj !== null && typeof obj === "object") {
1163
+ return Object.fromEntries(
1164
+ Object.entries(obj).map(([key, value]) => [
1165
+ stringToSnakeCase2(key),
1166
+ toSnakeCase2(value)
1167
+ ])
1168
+ );
1169
+ }
1170
+ return obj;
1171
+ };
1172
+
1138
1173
  // src/libraries/backend/elysia.ts
1139
- var import_toSnakeCase2 = require("src/utils/toSnakeCase");
1140
1174
  function autumnHandler(options) {
1141
1175
  const { found, error: resError } = secretKeyCheck(options.secretKey);
1142
1176
  if (!found && !options.secretKey) {
@@ -1144,12 +1178,32 @@ function autumnHandler(options) {
1144
1178
  }
1145
1179
  const router = createRouterWithOptions();
1146
1180
  return function plugin(app) {
1147
- const autumn = new Autumn({
1148
- url: options.url || autumnApiUrl,
1149
- version: options.version,
1150
- secretKey: options.secretKey
1181
+ app.get("/api/autumn/*", async (context) => {
1182
+ return handleRequest(context);
1183
+ });
1184
+ app.delete("/api/autumn/*", async (context) => {
1185
+ return handleRequest(context);
1186
+ });
1187
+ app.post("/api/autumn/*", async (context) => {
1188
+ return handleRequest(context);
1189
+ });
1190
+ app.put("/api/autumn/*", async (context) => {
1191
+ return handleRequest(context);
1151
1192
  });
1152
- app.all("/api/autumn/*", async (context) => {
1193
+ app.patch("/api/autumn/*", async (context) => {
1194
+ return handleRequest(context);
1195
+ });
1196
+ async function handleRequest(context) {
1197
+ let { found: found2, error: resError2 } = secretKeyCheck(options.secretKey);
1198
+ if (!found2) {
1199
+ context.set.status = resError2.statusCode;
1200
+ return resError2;
1201
+ }
1202
+ const autumn = new Autumn({
1203
+ url: options.url || autumnApiUrl,
1204
+ version: options.version,
1205
+ secretKey: options.secretKey
1206
+ });
1153
1207
  const request = context.request;
1154
1208
  const url = new URL(request.url);
1155
1209
  const path = url.pathname;
@@ -1164,12 +1218,16 @@ function autumnHandler(options) {
1164
1218
  const { handler } = data;
1165
1219
  let body = null;
1166
1220
  if (["POST", "PUT", "PATCH"].includes(method)) {
1167
- body = context.body;
1221
+ try {
1222
+ body = context.body;
1223
+ } catch (error) {
1224
+ body = null;
1225
+ }
1168
1226
  }
1169
1227
  try {
1170
1228
  const result = await handler({
1171
1229
  autumn,
1172
- body: (0, import_toSnakeCase2.toSnakeCase)(body),
1230
+ body: toSnakeCase2(body),
1173
1231
  path,
1174
1232
  getCustomer: async () => await options.identify(context),
1175
1233
  pathParams,
@@ -1184,7 +1242,7 @@ function autumnHandler(options) {
1184
1242
  message: error?.message || "Unknown error"
1185
1243
  };
1186
1244
  }
1187
- });
1245
+ }
1188
1246
  return app;
1189
1247
  };
1190
1248
  }