autumn-js 0.0.84 → 0.0.92

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 (236) hide show
  1. package/dist/libraries/backend/better-auth.d.mts +764 -4
  2. package/dist/libraries/backend/better-auth.d.ts +764 -4
  3. package/dist/libraries/backend/better-auth.js +341 -19184
  4. package/dist/libraries/backend/better-auth.mjs +232 -19135
  5. package/dist/libraries/backend/{chunk-XGB3TDIC.mjs → chunk-6DZX6EAA.mjs} +0 -5
  6. package/dist/libraries/backend/{chunk-J3QM5KFT.mjs → chunk-7QSJB2C5.mjs} +1 -1
  7. package/dist/libraries/backend/{chunk-UJQBHXII.mjs → chunk-FCEB2GBS.mjs} +1 -1
  8. package/dist/libraries/backend/{chunk-A46IKTLH.mjs → chunk-JPNRDMMC.mjs} +1 -1
  9. package/dist/libraries/backend/{chunk-PDPPNHEU.mjs → chunk-NTFR7Z2G.mjs} +6 -6
  10. package/dist/libraries/backend/{chunk-DG3FZZQH.mjs → chunk-U7335VZS.mjs} +1 -1
  11. package/dist/libraries/backend/{chunk-VCEQ3QBX.mjs → chunk-V6M7KRGN.mjs} +57 -0
  12. package/dist/libraries/backend/{chunk-WDRHQJKV.mjs → chunk-VFTHGJ5N.mjs} +1 -1
  13. package/dist/libraries/backend/constants.mjs +1 -1
  14. package/dist/libraries/backend/convex.js +57 -0
  15. package/dist/libraries/backend/convex.mjs +8 -8
  16. package/dist/libraries/backend/express.d.mts +2 -1
  17. package/dist/libraries/backend/express.d.ts +2 -1
  18. package/dist/libraries/backend/express.js +57 -0
  19. package/dist/libraries/backend/express.mjs +8 -8
  20. package/dist/libraries/backend/fastify.js +57 -0
  21. package/dist/libraries/backend/fastify.mjs +8 -8
  22. package/dist/libraries/backend/hono.js +57 -0
  23. package/dist/libraries/backend/hono.mjs +8 -8
  24. package/dist/libraries/backend/next.js +59 -2
  25. package/dist/libraries/backend/next.mjs +8 -8
  26. package/dist/libraries/backend/react-router.js +57 -0
  27. package/dist/libraries/backend/react-router.mjs +8 -8
  28. package/dist/libraries/backend/{referralTypes-C6ao6j-_.d.mts → referralTypes-C_LRkLGP.d.mts} +101 -36
  29. package/dist/libraries/backend/{referralTypes-BZ4WOVK5.d.ts → referralTypes-KJHGHDgD.d.ts} +101 -36
  30. package/dist/libraries/backend/remix_dep.js +57 -0
  31. package/dist/libraries/backend/remix_dep.mjs +8 -8
  32. package/dist/libraries/backend/routes/backendRouter.js +57 -0
  33. package/dist/libraries/backend/routes/backendRouter.mjs +8 -8
  34. package/dist/libraries/backend/routes/entityRoutes.js +57 -0
  35. package/dist/libraries/backend/routes/entityRoutes.mjs +4 -4
  36. package/dist/libraries/backend/routes/genRoutes.js +57 -0
  37. package/dist/libraries/backend/routes/genRoutes.mjs +4 -4
  38. package/dist/libraries/backend/routes/productRoutes.js +57 -0
  39. package/dist/libraries/backend/routes/productRoutes.mjs +4 -4
  40. package/dist/libraries/backend/routes/referralRoutes.js +57 -0
  41. package/dist/libraries/backend/routes/referralRoutes.mjs +4 -4
  42. package/dist/libraries/backend/schemas/zod.d.mts +208 -0
  43. package/dist/libraries/backend/schemas/zod.d.ts +208 -0
  44. package/dist/libraries/backend/schemas/zod.js +100 -0
  45. package/dist/libraries/backend/schemas/zod.mjs +69 -0
  46. package/dist/libraries/backend/supabase.js +57 -0
  47. package/dist/libraries/backend/supabase.mjs +8 -8
  48. package/dist/libraries/backend/tanstack.js +57 -0
  49. package/dist/libraries/backend/tanstack.mjs +8 -8
  50. package/dist/libraries/backend/utils/backendRes.js +57 -0
  51. package/dist/libraries/backend/utils/backendRes.mjs +2 -2
  52. package/dist/libraries/backend/utils/logBackendErrors.mjs +1 -1
  53. package/dist/libraries/backend/utils/secretKeyCheck.mjs +1 -1
  54. package/dist/libraries/backend/utils/withAuth.d.mts +2 -1
  55. package/dist/libraries/backend/utils/withAuth.d.ts +2 -1
  56. package/dist/libraries/backend/utils/withAuth.js +57 -0
  57. package/dist/libraries/backend/utils/withAuth.mjs +3 -3
  58. package/dist/libraries/react/AutumnContext.d.mts +7 -6
  59. package/dist/libraries/react/AutumnContext.d.ts +7 -6
  60. package/dist/libraries/react/AutumnContext.js +59 -4
  61. package/dist/libraries/react/AutumnContext.mjs +5 -5
  62. package/dist/libraries/react/BaseAutumnProvider.d.mts +6 -7
  63. package/dist/libraries/react/BaseAutumnProvider.d.ts +6 -7
  64. package/dist/libraries/react/BaseAutumnProvider.js +140 -31
  65. package/dist/libraries/react/BaseAutumnProvider.mjs +10 -10
  66. package/dist/libraries/react/{ReactAutumnClient-DXwfNOsU.d.mts → ReactAutumnClient-BmHGkNH1.d.mts} +59 -11
  67. package/dist/libraries/react/{ReactAutumnClient-BUgyWQJZ.d.ts → ReactAutumnClient-PGnPqPkr.d.ts} +59 -11
  68. package/dist/libraries/react/ReactAutumnProvider.d.mts +3 -3
  69. package/dist/libraries/react/ReactAutumnProvider.d.ts +3 -3
  70. package/dist/libraries/react/ReactAutumnProvider.js +141 -41
  71. package/dist/libraries/react/ReactAutumnProvider.mjs +11 -11
  72. package/dist/libraries/react/{chunk-JFXBUWKA.mjs → chunk-3JJC2VU5.mjs} +22 -5
  73. package/dist/libraries/react/{chunk-NTQCSYCC.mjs → chunk-6SDVW33H.mjs} +24 -14
  74. package/dist/libraries/react/{chunk-UVW2G6D5.mjs → chunk-DIJJCQ2N.mjs} +2 -4
  75. package/dist/libraries/react/{chunk-MH2YTNJL.mjs → chunk-HL4JNKWK.mjs} +3 -5
  76. package/dist/libraries/react/{chunk-3ZEXZOM3.mjs → chunk-L3IZ2O3T.mjs} +4 -13
  77. package/dist/libraries/react/{chunk-NM57LOHB.mjs → chunk-LPJSRHPQ.mjs} +2 -2
  78. package/dist/libraries/react/{chunk-UDRQNZZS.mjs → chunk-NCPXL3J2.mjs} +70 -13
  79. package/dist/libraries/react/{chunk-FFSCKSIZ.mjs → chunk-OGFFPM5T.mjs} +2 -2
  80. package/dist/libraries/react/{chunk-RXM5BXAF.mjs → chunk-PJK6OPCU.mjs} +2 -2
  81. package/dist/libraries/react/{chunk-XKG7TR4L.mjs → chunk-RZW3QO6B.mjs} +25 -6
  82. package/dist/libraries/react/{chunk-AY477KTD.mjs → chunk-SDZ5NW6G.mjs} +2 -2
  83. package/dist/libraries/react/{chunk-C23P4R7T.mjs → chunk-TCCWWPEC.mjs} +16 -6
  84. package/dist/libraries/react/{chunk-TW3RVWYN.mjs → chunk-VH4FTCAC.mjs} +2 -2
  85. package/dist/libraries/react/{chunk-K6IX3SOV.mjs → chunk-Y6RO4AM2.mjs} +279 -279
  86. package/dist/libraries/react/client/ReactAutumnClient.d.mts +6 -5
  87. package/dist/libraries/react/client/ReactAutumnClient.d.ts +6 -5
  88. package/dist/libraries/react/client/ReactAutumnClient.js +57 -0
  89. package/dist/libraries/react/client/ReactAutumnClient.mjs +4 -4
  90. package/dist/libraries/react/client/clientCompMethods.d.mts +6 -5
  91. package/dist/libraries/react/client/clientCompMethods.d.ts +6 -5
  92. package/dist/libraries/react/client/clientCusMethods.d.mts +6 -5
  93. package/dist/libraries/react/client/clientCusMethods.d.ts +6 -5
  94. package/dist/libraries/react/client/clientEntityMethods.d.mts +6 -5
  95. package/dist/libraries/react/client/clientEntityMethods.d.ts +6 -5
  96. package/dist/libraries/react/client/clientGenMethods.d.mts +6 -5
  97. package/dist/libraries/react/client/clientGenMethods.d.ts +6 -5
  98. package/dist/libraries/react/client/clientProdMethods.d.mts +6 -5
  99. package/dist/libraries/react/client/clientProdMethods.d.ts +6 -5
  100. package/dist/libraries/react/client/clientReferralMethods.d.mts +6 -4
  101. package/dist/libraries/react/client/clientReferralMethods.d.ts +6 -4
  102. package/dist/libraries/react/client/types/clientGenTypes.d.mts +136 -41
  103. package/dist/libraries/react/client/types/clientGenTypes.d.ts +136 -41
  104. package/dist/libraries/react/client/types/clientGenTypes.js +62 -0
  105. package/dist/libraries/react/client/types/clientGenTypes.mjs +52 -0
  106. package/dist/libraries/react/client/types/clientReferralTypes.d.mts +17 -5
  107. package/dist/libraries/react/client/types/clientReferralTypes.d.ts +17 -5
  108. package/dist/libraries/react/client/types/clientReferralTypes.js +20 -0
  109. package/dist/libraries/react/client/types/clientReferralTypes.mjs +13 -0
  110. package/dist/libraries/react/components/attach-dialog/attach-dialog-synced.d.mts +2 -1
  111. package/dist/libraries/react/components/attach-dialog/attach-dialog-synced.d.ts +2 -1
  112. package/dist/libraries/react/components/attach-dialog/attach-dialog-synced.js +139 -28
  113. package/dist/libraries/react/components/attach-dialog/attach-dialog-synced.mjs +21 -21
  114. package/dist/libraries/react/components/attach-dialog/lib/attach-content.d.mts +2 -1
  115. package/dist/libraries/react/components/attach-dialog/lib/attach-content.d.ts +2 -1
  116. package/dist/libraries/react/components/check-dialog/check-dialog-synced.d.mts +2 -1
  117. package/dist/libraries/react/components/check-dialog/check-dialog-synced.d.ts +2 -1
  118. package/dist/libraries/react/components/check-dialog/lib/check-content.d.mts +2 -1
  119. package/dist/libraries/react/components/check-dialog/lib/check-content.d.ts +2 -1
  120. package/dist/libraries/react/components/pricing-table/pricing-table-synced.d.mts +2 -1
  121. package/dist/libraries/react/components/pricing-table/pricing-table-synced.d.ts +2 -1
  122. package/dist/libraries/react/components/pricing-table/pricing-table-synced.js +139 -28
  123. package/dist/libraries/react/components/pricing-table/pricing-table-synced.mjs +21 -21
  124. package/dist/libraries/react/{cusTypes-MRvvutK7.d.ts → cusTypes-WaPJKeAb.d.mts} +29 -9
  125. package/dist/libraries/react/{cusTypes-MRvvutK7.d.mts → cusTypes-WaPJKeAb.d.ts} +29 -9
  126. package/dist/libraries/react/{entTypes-CNg4mN1E.d.ts → entTypes-D01S8gFX.d.ts} +1 -1
  127. package/dist/libraries/react/{entTypes-CGReDkQ9.d.mts → entTypes-aIV0QUCW.d.mts} +1 -1
  128. package/dist/libraries/react/hooks/handleAllowed.d.mts +4 -3
  129. package/dist/libraries/react/hooks/handleAllowed.d.ts +4 -3
  130. package/dist/libraries/react/hooks/handleAllowed.js +22 -5
  131. package/dist/libraries/react/hooks/handleAllowed.mjs +1 -1
  132. package/dist/libraries/react/hooks/useAutumn.d.mts +6 -5
  133. package/dist/libraries/react/hooks/useAutumn.d.ts +6 -5
  134. package/dist/libraries/react/hooks/useAutumn.js +96 -12
  135. package/dist/libraries/react/hooks/useAutumn.mjs +8 -8
  136. package/dist/libraries/react/hooks/useAutumnBase.d.mts +9 -8
  137. package/dist/libraries/react/hooks/useAutumnBase.d.ts +9 -8
  138. package/dist/libraries/react/hooks/useAutumnBase.js +96 -12
  139. package/dist/libraries/react/hooks/useAutumnBase.mjs +7 -7
  140. package/dist/libraries/react/hooks/useCustomer.d.mts +7 -5
  141. package/dist/libraries/react/hooks/useCustomer.d.ts +7 -5
  142. package/dist/libraries/react/hooks/useCustomer.js +139 -28
  143. package/dist/libraries/react/hooks/useCustomer.mjs +10 -10
  144. package/dist/libraries/react/hooks/useCustomerBase.d.mts +8 -4
  145. package/dist/libraries/react/hooks/useCustomerBase.d.ts +8 -4
  146. package/dist/libraries/react/hooks/useCustomerBase.js +139 -28
  147. package/dist/libraries/react/hooks/useCustomerBase.mjs +9 -9
  148. package/dist/libraries/react/hooks/useEntity.d.mts +7 -5
  149. package/dist/libraries/react/hooks/useEntity.d.ts +7 -5
  150. package/dist/libraries/react/hooks/useEntity.js +118 -17
  151. package/dist/libraries/react/hooks/useEntity.mjs +10 -10
  152. package/dist/libraries/react/hooks/useEntityBase.d.mts +7 -7
  153. package/dist/libraries/react/hooks/useEntityBase.d.ts +7 -7
  154. package/dist/libraries/react/hooks/useEntityBase.js +118 -17
  155. package/dist/libraries/react/hooks/useEntityBase.mjs +9 -9
  156. package/dist/libraries/react/hooks/usePricingTable.d.mts +2 -1
  157. package/dist/libraries/react/hooks/usePricingTable.d.ts +2 -1
  158. package/dist/libraries/react/hooks/usePricingTable.js +73 -8
  159. package/dist/libraries/react/hooks/usePricingTable.mjs +7 -7
  160. package/dist/libraries/react/hooks/usePricingTableBase.d.mts +7 -6
  161. package/dist/libraries/react/hooks/usePricingTableBase.d.ts +7 -6
  162. package/dist/libraries/react/hooks/usePricingTableBase.js +73 -8
  163. package/dist/libraries/react/hooks/usePricingTableBase.mjs +6 -6
  164. package/dist/libraries/react/hooks/useProductsBase.js +59 -4
  165. package/dist/libraries/react/hooks/useProductsBase.mjs +5 -5
  166. package/dist/libraries/react/index.d.mts +611 -0
  167. package/dist/libraries/react/index.d.ts +168 -57
  168. package/dist/libraries/react/index.js +142 -42
  169. package/dist/libraries/react/index.mjs +142 -42
  170. package/dist/libraries/react/{response-JxL9qiek.d.mts → response-Bt5OMm4y.d.mts} +21 -5
  171. package/dist/libraries/react/{response-D_2cMcet.d.ts → response-CvPzWrT9.d.ts} +21 -5
  172. package/dist/next/{AutumnProvider-DPcEuE_Q.d.ts → AutumnProvider-DtLqoQp6.d.mts} +28 -9
  173. package/dist/next/{AutumnProvider-DPcEuE_Q.d.mts → AutumnProvider-DtLqoQp6.d.ts} +28 -9
  174. package/dist/next/AutumnProvider.d.mts +2 -1
  175. package/dist/next/AutumnProvider.d.ts +2 -1
  176. package/dist/next/client/NextAutumnClient.d.mts +60 -10
  177. package/dist/next/client/NextAutumnClient.d.ts +60 -10
  178. package/dist/next/client/NextAutumnProvider.d.mts +2 -1
  179. package/dist/next/client/NextAutumnProvider.d.ts +2 -1
  180. package/dist/next/client/clientEntTypes-BFkleT6a.d.mts +22 -0
  181. package/dist/next/client/clientEntTypes-BFkleT6a.d.ts +22 -0
  182. package/dist/next/client/clientGenTypes-BPjTbeG-.d.mts +195 -0
  183. package/dist/next/client/clientGenTypes-Bqecpl58.d.ts +195 -0
  184. package/dist/next/client/clientUtils.d.mts +3 -2
  185. package/dist/next/client/clientUtils.d.ts +3 -2
  186. package/dist/next/client/{cusTypes-CJI8rdlY.d.mts → cusTypes-D8lhXGaX.d.mts} +29 -9
  187. package/dist/next/client/{cusTypes-CJI8rdlY.d.ts → cusTypes-D8lhXGaX.d.ts} +29 -9
  188. package/dist/next/client/{entTypes-okM0aeOM.d.mts → entTypes-B-2_9hzP.d.mts} +1 -1
  189. package/dist/next/client/{entTypes-CqHWTcCX.d.ts → entTypes-Dq2mbehl.d.ts} +1 -1
  190. package/dist/next/client/hooks/useAutumn.d.mts +6 -4
  191. package/dist/next/client/hooks/useAutumn.d.ts +6 -4
  192. package/dist/next/client/hooks/useCustomer.d.mts +26 -4
  193. package/dist/next/client/hooks/useCustomer.d.ts +26 -4
  194. package/dist/next/client/hooks/useCustomer.js +3 -1
  195. package/dist/next/client/hooks/useCustomer.mjs +3 -1
  196. package/dist/next/client/hooks/useEntity.d.mts +7 -5
  197. package/dist/next/client/hooks/useEntity.d.ts +7 -5
  198. package/dist/next/client/hooks/usePricingTable.d.mts +2 -1
  199. package/dist/next/client/hooks/usePricingTable.d.ts +2 -1
  200. package/dist/next/client/types.d.mts +3 -2
  201. package/dist/next/client/types.d.ts +3 -2
  202. package/dist/next/index.d.mts +221 -65
  203. package/dist/next/index.d.ts +221 -65
  204. package/dist/next/server/auth/withNextAuth.d.mts +2 -1
  205. package/dist/next/server/auth/withNextAuth.d.ts +2 -1
  206. package/dist/next/server/componentActions.d.mts +2 -1
  207. package/dist/next/server/componentActions.d.ts +2 -1
  208. package/dist/next/server/cusActions.d.mts +93 -38
  209. package/dist/next/server/cusActions.d.ts +93 -38
  210. package/dist/next/server/{cusTypes-DuSwXVmp.d.mts → cusTypes-C86FOl99.d.mts} +28 -8
  211. package/dist/next/server/{cusTypes-DuSwXVmp.d.ts → cusTypes-C86FOl99.d.ts} +28 -8
  212. package/dist/next/server/genActions.d.mts +44 -49
  213. package/dist/next/server/genActions.d.ts +44 -49
  214. package/dist/sdk/index.d.mts +123 -29
  215. package/dist/sdk/index.d.ts +123 -29
  216. package/dist/sdk/index.js +60 -9
  217. package/dist/sdk/index.mjs +57 -10
  218. package/dist/styles/global.css +42 -4
  219. package/dist/utils/encryptUtils.js +57 -0
  220. package/dist/utils/encryptUtils.mjs +57 -0
  221. package/package.json +27 -4
  222. package/tsup.config.ts +1 -22
  223. package/components.json +0 -21
  224. package/dist/next/client/clientGenTypes-CAv4hwb4.d.ts +0 -108
  225. package/dist/next/client/clientGenTypes-Dlpw9wy_.d.mts +0 -108
  226. package/dist/next/client/clientReferralTypes-C9JiOk2s.d.mts +0 -20
  227. package/dist/next/client/clientReferralTypes-C9JiOk2s.d.ts +0 -20
  228. package/dist/next/server/clientEntTypes-BOVTwIKv.d.mts +0 -14
  229. package/dist/next/server/clientEntTypes-BOVTwIKv.d.ts +0 -14
  230. package/postcss.config.js +0 -25
  231. package/publish.sh +0 -18
  232. package/scripts/css-transform-plugin.js +0 -28
  233. package/scripts/post-build.js +0 -91
  234. package/scripts/sync-registry.ts +0 -190
  235. package/tailwind.config.ts +0 -96
  236. package/tsup.dev.config.ts +0 -199
@@ -5567,6 +5567,63 @@ var Autumn = class {
5567
5567
  }
5568
5568
  };
5569
5569
 
5570
+ // src/sdk/general/genTypes.ts
5571
+ var import_zod = require("zod");
5572
+ var AttachParamsSchema = import_zod.z.object({
5573
+ customer_id: import_zod.z.string(),
5574
+ product_id: import_zod.z.string().optional(),
5575
+ entity_id: import_zod.z.string().optional(),
5576
+ options: import_zod.z.array(import_zod.z.object({
5577
+ feature_id: import_zod.z.string(),
5578
+ quantity: import_zod.z.number()
5579
+ })).optional(),
5580
+ product_ids: import_zod.z.array(import_zod.z.string()).optional(),
5581
+ // If set, will attach multiple products to the customer (cannot be used with product_id)
5582
+ free_trial: import_zod.z.boolean().optional(),
5583
+ // Default is true -- if set to false, will bypass product free trial
5584
+ success_url: import_zod.z.string().optional(),
5585
+ // Passed to Stripe
5586
+ metadata: import_zod.z.record(import_zod.z.string()).optional(),
5587
+ // Passed to Stripe
5588
+ force_checkout: import_zod.z.boolean().optional(),
5589
+ // Default is false -- if set to true, will force the customer to checkout (not allowed for upgrades / downgrades)
5590
+ customer_data: import_zod.z.any().optional(),
5591
+ entity_data: import_zod.z.any().optional(),
5592
+ checkout_session_params: import_zod.z.record(import_zod.z.any()).optional(),
5593
+ // Passed to Stripe
5594
+ reward: import_zod.z.string().optional()
5595
+ });
5596
+ var AttachResultSchema = import_zod.z.object({
5597
+ checkout_url: import_zod.z.string().optional(),
5598
+ customer_id: import_zod.z.string(),
5599
+ product_ids: import_zod.z.array(import_zod.z.string()),
5600
+ code: import_zod.z.string(),
5601
+ message: import_zod.z.string(),
5602
+ customer_data: import_zod.z.any().optional()
5603
+ });
5604
+
5605
+ // src/sdk/customers/cusEnums.ts
5606
+ var import_zod2 = require("zod");
5607
+ var CustomerExpandEnum = import_zod2.z.enum([
5608
+ "invoices",
5609
+ "rewards",
5610
+ "trials_used",
5611
+ "entities",
5612
+ "referrals",
5613
+ "payment_method"
5614
+ ]);
5615
+
5616
+ // src/sdk/customers/cusTypes.ts
5617
+ var import_zod3 = require("zod");
5618
+ var CreateCustomerParamsSchema = import_zod3.z.object({
5619
+ id: import_zod3.z.string().nullish(),
5620
+ email: import_zod3.z.string().nullish(),
5621
+ name: import_zod3.z.string().nullish(),
5622
+ fingerprint: import_zod3.z.string().nullish(),
5623
+ metadata: import_zod3.z.record(import_zod3.z.any()).optional(),
5624
+ expand: import_zod3.z.array(CustomerExpandEnum).optional()
5625
+ });
5626
+
5570
5627
  // src/libraries/react/errorUtils/logFetchError.ts
5571
5628
  var logFetchError = ({
5572
5629
  method,
@@ -5891,12 +5948,10 @@ var AutumnContext = (0, import_react5.createContext)({
5891
5948
  });
5892
5949
  var useAutumnContext = ({
5893
5950
  AutumnContext: AutumnContext2,
5894
- name
5951
+ name,
5952
+ errorIfNotInitialized = true
5895
5953
  }) => {
5896
5954
  const context = (0, import_react5.useContext)(AutumnContext2);
5897
- if (!context.initialized) {
5898
- throw new Error(`${name} must be used within <AutumnProvider />`);
5899
- }
5900
5955
  return context;
5901
5956
  };
5902
5957
 
@@ -6057,14 +6112,23 @@ var mergeProductDetails = (products, productDetails) => {
6057
6112
  }
6058
6113
  return mergedProducts;
6059
6114
  };
6115
+ var defaultSWRConfig = {
6116
+ refreshInterval: 0
6117
+ };
6060
6118
  var usePricingTableBase = ({
6061
6119
  AutumnContext: AutumnContext2,
6062
- params
6120
+ params,
6121
+ authClient
6063
6122
  }) => {
6064
- const context = useAutumnContext({ AutumnContext: AutumnContext2, name: "usePricingTable" });
6123
+ const context = useAutumnContext({
6124
+ AutumnContext: AutumnContext2,
6125
+ name: "usePricingTable",
6126
+ errorIfNotInitialized: !authClient
6127
+ });
6128
+ const client = authClient ? authClient.autumn : context.client;
6065
6129
  const fetcher = async () => {
6066
6130
  try {
6067
- const { data: data2, error: error2 } = await context.client.products.list();
6131
+ const { data: data2, error: error2 } = await client.products.list();
6068
6132
  if (error2) throw error2;
6069
6133
  return data2?.list || [];
6070
6134
  } catch (error2) {
@@ -6076,7 +6140,8 @@ var usePricingTableBase = ({
6076
6140
  };
6077
6141
  const { data, error, mutate } = (0, import_swr.default)(
6078
6142
  "pricing-table",
6079
- fetcher
6143
+ fetcher,
6144
+ { ...defaultSWRConfig }
6080
6145
  );
6081
6146
  return {
6082
6147
  products: mergeProductDetails(data || [], params?.productDetails),
@@ -6089,13 +6154,20 @@ var usePricingTableBase = ({
6089
6154
 
6090
6155
  // src/libraries/react/hooks/useAutumnBase.tsx
6091
6156
  var useAutumnBase = ({
6092
- AutumnContext: AutumnContext2
6157
+ AutumnContext: AutumnContext2,
6158
+ authClient
6093
6159
  }) => {
6094
- const context = useAutumnContext({ AutumnContext: AutumnContext2, name: "useAutumn" });
6160
+ const context = useAutumnContext({
6161
+ AutumnContext: AutumnContext2,
6162
+ name: "useAutumn",
6163
+ errorIfNotInitialized: !authClient
6164
+ });
6095
6165
  const { attachDialog, paywallDialog } = context;
6096
- const client = context.client;
6166
+ const client = authClient ? authClient.autumn : context.client;
6167
+ const authClientExists = !!authClient;
6097
6168
  const { refetch: refetchPricingTable } = usePricingTableBase({
6098
- AutumnContext: AutumnContext2
6169
+ AutumnContext: AutumnContext2,
6170
+ authClient
6099
6171
  });
6100
6172
  let {
6101
6173
  open: attachOpen,
@@ -6151,6 +6223,12 @@ var useAutumnBase = ({
6151
6223
  const attach = async (params) => {
6152
6224
  const { dialog, openInNewTab } = params;
6153
6225
  let finalDialog = dialog;
6226
+ if (dialog && authClientExists) {
6227
+ console.error(
6228
+ "[Autumn] Attach dialog cannot be used with better auth plugin. To use this, please switch to <AutumnProvider /> and autumnHandler. Learn more here: https://docs.useautumn.com/quickstart/quickstart"
6229
+ );
6230
+ return void 0;
6231
+ }
6154
6232
  if (finalDialog && !attachOpen) {
6155
6233
  setAttachComponent(finalDialog);
6156
6234
  return await attachWithDialog(params);
@@ -6166,6 +6244,12 @@ var useAutumnBase = ({
6166
6244
  };
6167
6245
  const check = async (params) => {
6168
6246
  let { dialog, withPreview } = params;
6247
+ if (dialog && authClientExists) {
6248
+ console.error(
6249
+ "[Autumn] Check dialog cannot be used with better auth plugin. To use this, please switch to <AutumnProvider /> and autumnHandler. Learn more here: https://docs.useautumn.com/quickstart/quickstart"
6250
+ );
6251
+ return void 0;
6252
+ }
6169
6253
  if (dialog) {
6170
6254
  setPaywallComponent(dialog);
6171
6255
  }
@@ -6251,9 +6335,13 @@ var getCusFeature = ({
6251
6335
  featureId,
6252
6336
  requiredBalance = 1
6253
6337
  }) => {
6254
- let creditSchema = Object.values(customer.features).find((f) => f.credit_schema && f.credit_schema.some((c) => c.feature_id === featureId));
6338
+ let creditSchema = Object.values(customer.features).find(
6339
+ (f) => f.credit_schema && f.credit_schema.some((c) => c.feature_id === featureId)
6340
+ );
6255
6341
  if (creditSchema) {
6256
- let schemaItem = creditSchema.credit_schema?.find((c) => c.feature_id === featureId);
6342
+ let schemaItem = creditSchema.credit_schema?.find(
6343
+ (c) => c.feature_id === featureId
6344
+ );
6257
6345
  return {
6258
6346
  feature: creditSchema,
6259
6347
  requiredBalance: schemaItem.credit_amount * requiredBalance
@@ -6264,14 +6352,27 @@ var getCusFeature = ({
6264
6352
  requiredBalance
6265
6353
  };
6266
6354
  };
6267
- var handleFeatureAllowed = ({ customer, params }) => {
6268
- let { cusFeature, requiredBalance } = getCusFeature({ customer, featureId: params.featureId });
6355
+ var handleFeatureAllowed = ({
6356
+ customer,
6357
+ params
6358
+ }) => {
6359
+ let { cusFeature, requiredBalance } = getCusFeature({
6360
+ customer,
6361
+ featureId: params.featureId
6362
+ });
6269
6363
  if (!cusFeature) return false;
6270
6364
  if (cusFeature.type == "static") return true;
6271
6365
  if (cusFeature.unlimited || cusFeature.overage_allowed) return true;
6366
+ if (cusFeature.usage_limit) {
6367
+ let extraUsage = (cusFeature.usage_limit || 0) - (cusFeature.included_usage || 0);
6368
+ return (cusFeature.balance || 0) + extraUsage >= requiredBalance;
6369
+ }
6272
6370
  return (cusFeature.balance || 0) >= requiredBalance;
6273
6371
  };
6274
- var handleAllowed = ({ customer, params }) => {
6372
+ var handleAllowed = ({
6373
+ customer,
6374
+ params
6375
+ }) => {
6275
6376
  if (!customer) return false;
6276
6377
  if (!params.featureId && !params.productId) {
6277
6378
  throw new Error("allowed() requires either featureId or productId");
@@ -6305,10 +6406,17 @@ var useCustomerBase = ({
6305
6406
  }) => {
6306
6407
  const queryKey = ["customer", params?.expand];
6307
6408
  let context;
6409
+ let authClientExists = !!params?.authClient;
6308
6410
  if (AutumnContext2) {
6309
- context = useAutumnContext({ AutumnContext: AutumnContext2, name: "useCustomer" });
6411
+ context = useAutumnContext({
6412
+ AutumnContext: AutumnContext2,
6413
+ name: "useCustomer",
6414
+ errorIfNotInitialized: !authClientExists
6415
+ });
6310
6416
  }
6311
- if (!client) {
6417
+ if (authClientExists) {
6418
+ client = params?.authClient?.autumn;
6419
+ } else if (!client) {
6312
6420
  client = context.client;
6313
6421
  }
6314
6422
  const fetchCustomer = async () => {
@@ -6324,18 +6432,21 @@ var useCustomerBase = ({
6324
6432
  }
6325
6433
  return data;
6326
6434
  };
6327
- const { data: customer, error, isLoading, mutate } = (0, import_swr2.default)(queryKey, fetchCustomer, {
6435
+ const {
6436
+ data: customer,
6437
+ error,
6438
+ isLoading,
6439
+ mutate
6440
+ } = (0, import_swr2.default)(queryKey, fetchCustomer, {
6328
6441
  fallbackData: null,
6329
- onErrorRetry: (error2, key, config) => {
6330
- if (error2.code == "entity_not_found") {
6331
- return false;
6332
- }
6333
- return true;
6334
- }
6442
+ ...params?.swrConfig
6335
6443
  });
6336
6444
  let autumnFunctions = emptyDefaultFunctions;
6337
- if (AutumnContext2) {
6338
- autumnFunctions = useAutumnBase({ AutumnContext: AutumnContext2 });
6445
+ if (AutumnContext2 || params?.authClient) {
6446
+ autumnFunctions = useAutumnBase({
6447
+ AutumnContext: AutumnContext2,
6448
+ authClient: params?.authClient
6449
+ });
6339
6450
  }
6340
6451
  return {
6341
6452
  customer: error ? null : customer,
@@ -8,41 +8,41 @@ import {
8
8
  PricingDialogButton,
9
9
  QuantityInput,
10
10
  TotalPrice
11
- } from "../../chunk-K6IX3SOV.mjs";
12
- import "../../chunk-27OTS3Q5.mjs";
11
+ } from "../../chunk-Y6RO4AM2.mjs";
12
+ import "../../chunk-CMO5LYYU.mjs";
13
+ import "../../chunk-QBBE72EF.mjs";
13
14
  import "../../chunk-BCMBFJ7E.mjs";
15
+ import "../../chunk-WVKYZYFT.mjs";
16
+ import "../../chunk-27OTS3Q5.mjs";
14
17
  import "../../chunk-MY2ODATB.mjs";
15
- import "../../chunk-QBBE72EF.mjs";
16
18
  import "../../chunk-P2O4LZFD.mjs";
17
19
  import "../../chunk-5FZ7IV6P.mjs";
18
- import "../../chunk-CMO5LYYU.mjs";
19
20
  import "../../chunk-FPI3PLEL.mjs";
20
21
  import "../../chunk-FEFGYFXQ.mjs";
21
- import "../../chunk-WVKYZYFT.mjs";
22
- import "../../chunk-FFSCKSIZ.mjs";
23
- import "../../chunk-NM57LOHB.mjs";
24
- import "../../chunk-RXM5BXAF.mjs";
22
+ import "../../chunk-OGFFPM5T.mjs";
23
+ import "../../chunk-LPJSRHPQ.mjs";
24
+ import "../../chunk-PJK6OPCU.mjs";
25
25
  import "../../chunk-4J6OC4ZQ.mjs";
26
- import "../../chunk-AY477KTD.mjs";
27
- import "../../chunk-TW3RVWYN.mjs";
28
- import "../../chunk-3ZEXZOM3.mjs";
29
- import "../../chunk-UVW2G6D5.mjs";
26
+ import "../../chunk-SDZ5NW6G.mjs";
27
+ import "../../chunk-VH4FTCAC.mjs";
28
+ import "../../chunk-L3IZ2O3T.mjs";
29
+ import "../../chunk-DIJJCQ2N.mjs";
30
30
  import "../../chunk-4QPHNIQ7.mjs";
31
- import "../../chunk-NTQCSYCC.mjs";
32
- import "../../chunk-JFXBUWKA.mjs";
33
- import "../../chunk-XKG7TR4L.mjs";
34
- import "../../chunk-C23P4R7T.mjs";
35
- import "../../chunk-MH2YTNJL.mjs";
36
- import "../../chunk-UDRQNZZS.mjs";
31
+ import "../../chunk-6SDVW33H.mjs";
32
+ import "../../chunk-3JJC2VU5.mjs";
33
+ import "../../chunk-RZW3QO6B.mjs";
34
+ import "../../chunk-TCCWWPEC.mjs";
35
+ import "../../chunk-HL4JNKWK.mjs";
36
+ import "../../chunk-NCPXL3J2.mjs";
37
+ import "../../chunk-V5PKOA5A.mjs";
38
+ import "../../chunk-JNM4BLTM.mjs";
37
39
  import "../../chunk-YUV2Y2RW.mjs";
38
40
  import "../../chunk-3EYF7OI5.mjs";
41
+ import "../../chunk-KQT5G3HT.mjs";
39
42
  import "../../chunk-JVCOY7ZL.mjs";
40
43
  import "../../chunk-CIBQ4BJU.mjs";
41
44
  import "../../chunk-NZ5PEXT2.mjs";
42
45
  import "../../chunk-TGX6UKKS.mjs";
43
- import "../../chunk-V5PKOA5A.mjs";
44
- import "../../chunk-JNM4BLTM.mjs";
45
- import "../../chunk-KQT5G3HT.mjs";
46
46
  export {
47
47
  OptionsInput,
48
48
  PriceItem,
@@ -1,5 +1,6 @@
1
1
  import * as react_jsx_runtime from 'react/jsx-runtime';
2
- import { g as CheckProductPreview } from '../../../cusTypes-MRvvutK7.mjs';
2
+ import { i as CheckProductPreview } from '../../../cusTypes-WaPJKeAb.mjs';
3
+ import 'zod';
3
4
 
4
5
  declare const getAttachContent: (preview: CheckProductPreview) => {
5
6
  title: react_jsx_runtime.JSX.Element;
@@ -1,5 +1,6 @@
1
1
  import * as react_jsx_runtime from 'react/jsx-runtime';
2
- import { g as CheckProductPreview } from '../../../cusTypes-MRvvutK7.js';
2
+ import { i as CheckProductPreview } from '../../../cusTypes-WaPJKeAb.js';
3
+ import 'zod';
3
4
 
4
5
  declare const getAttachContent: (preview: CheckProductPreview) => {
5
6
  title: react_jsx_runtime.JSX.Element;
@@ -1,5 +1,6 @@
1
1
  import * as react_jsx_runtime from 'react/jsx-runtime';
2
- import { i as CheckFeaturePreview } from '../../cusTypes-MRvvutK7.mjs';
2
+ import { g as CheckFeaturePreview } from '../../cusTypes-WaPJKeAb.mjs';
3
+ import 'zod';
3
4
 
4
5
  interface CheckDialogProps {
5
6
  open: boolean;
@@ -1,5 +1,6 @@
1
1
  import * as react_jsx_runtime from 'react/jsx-runtime';
2
- import { i as CheckFeaturePreview } from '../../cusTypes-MRvvutK7.js';
2
+ import { g as CheckFeaturePreview } from '../../cusTypes-WaPJKeAb.js';
3
+ import 'zod';
3
4
 
4
5
  interface CheckDialogProps {
5
6
  open: boolean;
@@ -1,4 +1,5 @@
1
- import { i as CheckFeaturePreview } from '../../../cusTypes-MRvvutK7.mjs';
1
+ import { g as CheckFeaturePreview } from '../../../cusTypes-WaPJKeAb.mjs';
2
+ import 'zod';
2
3
 
3
4
  declare const getCheckContent: (preview: CheckFeaturePreview) => {
4
5
  title: string;
@@ -1,4 +1,5 @@
1
- import { i as CheckFeaturePreview } from '../../../cusTypes-MRvvutK7.js';
1
+ import { g as CheckFeaturePreview } from '../../../cusTypes-WaPJKeAb.js';
2
+ import 'zod';
2
3
 
3
4
  declare const getCheckContent: (preview: CheckFeaturePreview) => {
4
5
  title: string;
@@ -1,6 +1,7 @@
1
1
  import * as react_jsx_runtime from 'react/jsx-runtime';
2
2
  import React__default from 'react';
3
- import { P as Product, h as ProductItem } from '../../cusTypes-MRvvutK7.mjs';
3
+ import { P as Product, h as ProductItem } from '../../cusTypes-WaPJKeAb.mjs';
4
+ import 'zod';
4
5
 
5
6
  declare function PricingTable({ productDetails, }: {
6
7
  productDetails?: any;
@@ -1,6 +1,7 @@
1
1
  import * as react_jsx_runtime from 'react/jsx-runtime';
2
2
  import React__default from 'react';
3
- import { P as Product, h as ProductItem } from '../../cusTypes-MRvvutK7.js';
3
+ import { P as Product, h as ProductItem } from '../../cusTypes-WaPJKeAb.js';
4
+ import 'zod';
4
5
 
5
6
  declare function PricingTable({ productDetails, }: {
6
7
  productDetails?: any;
@@ -546,6 +546,63 @@ var Autumn = class {
546
546
  }
547
547
  };
548
548
 
549
+ // src/sdk/general/genTypes.ts
550
+ var import_zod = require("zod");
551
+ var AttachParamsSchema = import_zod.z.object({
552
+ customer_id: import_zod.z.string(),
553
+ product_id: import_zod.z.string().optional(),
554
+ entity_id: import_zod.z.string().optional(),
555
+ options: import_zod.z.array(import_zod.z.object({
556
+ feature_id: import_zod.z.string(),
557
+ quantity: import_zod.z.number()
558
+ })).optional(),
559
+ product_ids: import_zod.z.array(import_zod.z.string()).optional(),
560
+ // If set, will attach multiple products to the customer (cannot be used with product_id)
561
+ free_trial: import_zod.z.boolean().optional(),
562
+ // Default is true -- if set to false, will bypass product free trial
563
+ success_url: import_zod.z.string().optional(),
564
+ // Passed to Stripe
565
+ metadata: import_zod.z.record(import_zod.z.string()).optional(),
566
+ // Passed to Stripe
567
+ force_checkout: import_zod.z.boolean().optional(),
568
+ // Default is false -- if set to true, will force the customer to checkout (not allowed for upgrades / downgrades)
569
+ customer_data: import_zod.z.any().optional(),
570
+ entity_data: import_zod.z.any().optional(),
571
+ checkout_session_params: import_zod.z.record(import_zod.z.any()).optional(),
572
+ // Passed to Stripe
573
+ reward: import_zod.z.string().optional()
574
+ });
575
+ var AttachResultSchema = import_zod.z.object({
576
+ checkout_url: import_zod.z.string().optional(),
577
+ customer_id: import_zod.z.string(),
578
+ product_ids: import_zod.z.array(import_zod.z.string()),
579
+ code: import_zod.z.string(),
580
+ message: import_zod.z.string(),
581
+ customer_data: import_zod.z.any().optional()
582
+ });
583
+
584
+ // src/sdk/customers/cusEnums.ts
585
+ var import_zod2 = require("zod");
586
+ var CustomerExpandEnum = import_zod2.z.enum([
587
+ "invoices",
588
+ "rewards",
589
+ "trials_used",
590
+ "entities",
591
+ "referrals",
592
+ "payment_method"
593
+ ]);
594
+
595
+ // src/sdk/customers/cusTypes.ts
596
+ var import_zod3 = require("zod");
597
+ var CreateCustomerParamsSchema = import_zod3.z.object({
598
+ id: import_zod3.z.string().nullish(),
599
+ email: import_zod3.z.string().nullish(),
600
+ name: import_zod3.z.string().nullish(),
601
+ fingerprint: import_zod3.z.string().nullish(),
602
+ metadata: import_zod3.z.record(import_zod3.z.any()).optional(),
603
+ expand: import_zod3.z.array(CustomerExpandEnum).optional()
604
+ });
605
+
549
606
  // src/libraries/react/errorUtils/logFetchError.ts
550
607
  var logFetchError = ({
551
608
  method,
@@ -870,12 +927,10 @@ var AutumnContext = (0, import_react2.createContext)({
870
927
  });
871
928
  var useAutumnContext = ({
872
929
  AutumnContext: AutumnContext2,
873
- name
930
+ name,
931
+ errorIfNotInitialized = true
874
932
  }) => {
875
933
  const context = (0, import_react2.useContext)(AutumnContext2);
876
- if (!context.initialized) {
877
- throw new Error(`${name} must be used within <AutumnProvider />`);
878
- }
879
934
  return context;
880
935
  };
881
936
 
@@ -1036,14 +1091,23 @@ var mergeProductDetails = (products, productDetails) => {
1036
1091
  }
1037
1092
  return mergedProducts;
1038
1093
  };
1094
+ var defaultSWRConfig = {
1095
+ refreshInterval: 0
1096
+ };
1039
1097
  var usePricingTableBase = ({
1040
1098
  AutumnContext: AutumnContext2,
1041
- params
1099
+ params,
1100
+ authClient
1042
1101
  }) => {
1043
- const context = useAutumnContext({ AutumnContext: AutumnContext2, name: "usePricingTable" });
1102
+ const context = useAutumnContext({
1103
+ AutumnContext: AutumnContext2,
1104
+ name: "usePricingTable",
1105
+ errorIfNotInitialized: !authClient
1106
+ });
1107
+ const client = authClient ? authClient.autumn : context.client;
1044
1108
  const fetcher = async () => {
1045
1109
  try {
1046
- const { data: data2, error: error2 } = await context.client.products.list();
1110
+ const { data: data2, error: error2 } = await client.products.list();
1047
1111
  if (error2) throw error2;
1048
1112
  return data2?.list || [];
1049
1113
  } catch (error2) {
@@ -1055,7 +1119,8 @@ var usePricingTableBase = ({
1055
1119
  };
1056
1120
  const { data, error, mutate } = (0, import_swr.default)(
1057
1121
  "pricing-table",
1058
- fetcher
1122
+ fetcher,
1123
+ { ...defaultSWRConfig }
1059
1124
  );
1060
1125
  return {
1061
1126
  products: mergeProductDetails(data || [], params?.productDetails),
@@ -1068,13 +1133,20 @@ var usePricingTableBase = ({
1068
1133
 
1069
1134
  // src/libraries/react/hooks/useAutumnBase.tsx
1070
1135
  var useAutumnBase = ({
1071
- AutumnContext: AutumnContext2
1136
+ AutumnContext: AutumnContext2,
1137
+ authClient
1072
1138
  }) => {
1073
- const context = useAutumnContext({ AutumnContext: AutumnContext2, name: "useAutumn" });
1139
+ const context = useAutumnContext({
1140
+ AutumnContext: AutumnContext2,
1141
+ name: "useAutumn",
1142
+ errorIfNotInitialized: !authClient
1143
+ });
1074
1144
  const { attachDialog, paywallDialog } = context;
1075
- const client = context.client;
1145
+ const client = authClient ? authClient.autumn : context.client;
1146
+ const authClientExists = !!authClient;
1076
1147
  const { refetch: refetchPricingTable } = usePricingTableBase({
1077
- AutumnContext: AutumnContext2
1148
+ AutumnContext: AutumnContext2,
1149
+ authClient
1078
1150
  });
1079
1151
  let {
1080
1152
  open: attachOpen,
@@ -1130,6 +1202,12 @@ var useAutumnBase = ({
1130
1202
  const attach = async (params) => {
1131
1203
  const { dialog, openInNewTab } = params;
1132
1204
  let finalDialog = dialog;
1205
+ if (dialog && authClientExists) {
1206
+ console.error(
1207
+ "[Autumn] Attach dialog cannot be used with better auth plugin. To use this, please switch to <AutumnProvider /> and autumnHandler. Learn more here: https://docs.useautumn.com/quickstart/quickstart"
1208
+ );
1209
+ return void 0;
1210
+ }
1133
1211
  if (finalDialog && !attachOpen) {
1134
1212
  setAttachComponent(finalDialog);
1135
1213
  return await attachWithDialog(params);
@@ -1145,6 +1223,12 @@ var useAutumnBase = ({
1145
1223
  };
1146
1224
  const check = async (params) => {
1147
1225
  let { dialog, withPreview } = params;
1226
+ if (dialog && authClientExists) {
1227
+ console.error(
1228
+ "[Autumn] Check dialog cannot be used with better auth plugin. To use this, please switch to <AutumnProvider /> and autumnHandler. Learn more here: https://docs.useautumn.com/quickstart/quickstart"
1229
+ );
1230
+ return void 0;
1231
+ }
1148
1232
  if (dialog) {
1149
1233
  setPaywallComponent(dialog);
1150
1234
  }
@@ -1230,9 +1314,13 @@ var getCusFeature = ({
1230
1314
  featureId,
1231
1315
  requiredBalance = 1
1232
1316
  }) => {
1233
- let creditSchema = Object.values(customer.features).find((f) => f.credit_schema && f.credit_schema.some((c) => c.feature_id === featureId));
1317
+ let creditSchema = Object.values(customer.features).find(
1318
+ (f) => f.credit_schema && f.credit_schema.some((c) => c.feature_id === featureId)
1319
+ );
1234
1320
  if (creditSchema) {
1235
- let schemaItem = creditSchema.credit_schema?.find((c) => c.feature_id === featureId);
1321
+ let schemaItem = creditSchema.credit_schema?.find(
1322
+ (c) => c.feature_id === featureId
1323
+ );
1236
1324
  return {
1237
1325
  feature: creditSchema,
1238
1326
  requiredBalance: schemaItem.credit_amount * requiredBalance
@@ -1243,14 +1331,27 @@ var getCusFeature = ({
1243
1331
  requiredBalance
1244
1332
  };
1245
1333
  };
1246
- var handleFeatureAllowed = ({ customer, params }) => {
1247
- let { cusFeature, requiredBalance } = getCusFeature({ customer, featureId: params.featureId });
1334
+ var handleFeatureAllowed = ({
1335
+ customer,
1336
+ params
1337
+ }) => {
1338
+ let { cusFeature, requiredBalance } = getCusFeature({
1339
+ customer,
1340
+ featureId: params.featureId
1341
+ });
1248
1342
  if (!cusFeature) return false;
1249
1343
  if (cusFeature.type == "static") return true;
1250
1344
  if (cusFeature.unlimited || cusFeature.overage_allowed) return true;
1345
+ if (cusFeature.usage_limit) {
1346
+ let extraUsage = (cusFeature.usage_limit || 0) - (cusFeature.included_usage || 0);
1347
+ return (cusFeature.balance || 0) + extraUsage >= requiredBalance;
1348
+ }
1251
1349
  return (cusFeature.balance || 0) >= requiredBalance;
1252
1350
  };
1253
- var handleAllowed = ({ customer, params }) => {
1351
+ var handleAllowed = ({
1352
+ customer,
1353
+ params
1354
+ }) => {
1254
1355
  if (!customer) return false;
1255
1356
  if (!params.featureId && !params.productId) {
1256
1357
  throw new Error("allowed() requires either featureId or productId");
@@ -1284,10 +1385,17 @@ var useCustomerBase = ({
1284
1385
  }) => {
1285
1386
  const queryKey = ["customer", params?.expand];
1286
1387
  let context;
1388
+ let authClientExists = !!params?.authClient;
1287
1389
  if (AutumnContext2) {
1288
- context = useAutumnContext({ AutumnContext: AutumnContext2, name: "useCustomer" });
1390
+ context = useAutumnContext({
1391
+ AutumnContext: AutumnContext2,
1392
+ name: "useCustomer",
1393
+ errorIfNotInitialized: !authClientExists
1394
+ });
1289
1395
  }
1290
- if (!client) {
1396
+ if (authClientExists) {
1397
+ client = params?.authClient?.autumn;
1398
+ } else if (!client) {
1291
1399
  client = context.client;
1292
1400
  }
1293
1401
  const fetchCustomer = async () => {
@@ -1303,18 +1411,21 @@ var useCustomerBase = ({
1303
1411
  }
1304
1412
  return data;
1305
1413
  };
1306
- const { data: customer, error, isLoading, mutate } = (0, import_swr2.default)(queryKey, fetchCustomer, {
1414
+ const {
1415
+ data: customer,
1416
+ error,
1417
+ isLoading,
1418
+ mutate
1419
+ } = (0, import_swr2.default)(queryKey, fetchCustomer, {
1307
1420
  fallbackData: null,
1308
- onErrorRetry: (error2, key, config) => {
1309
- if (error2.code == "entity_not_found") {
1310
- return false;
1311
- }
1312
- return true;
1313
- }
1421
+ ...params?.swrConfig
1314
1422
  });
1315
1423
  let autumnFunctions = emptyDefaultFunctions;
1316
- if (AutumnContext2) {
1317
- autumnFunctions = useAutumnBase({ AutumnContext: AutumnContext2 });
1424
+ if (AutumnContext2 || params?.authClient) {
1425
+ autumnFunctions = useAutumnBase({
1426
+ AutumnContext: AutumnContext2,
1427
+ authClient: params?.authClient
1428
+ });
1318
1429
  }
1319
1430
  return {
1320
1431
  customer: error ? null : customer,