autumn-js 0.1.53 → 0.1.56

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 (218) hide show
  1. package/dist/libraries/backend/better-auth.d.mts +30 -34
  2. package/dist/libraries/backend/better-auth.d.ts +30 -34
  3. package/dist/libraries/backend/better-auth.js +323 -332
  4. package/dist/libraries/backend/better-auth.mjs +135 -148
  5. package/dist/libraries/backend/{chunk-ZDGVHVDZ.mjs → chunk-ABXR5LZJ.mjs} +1 -1
  6. package/dist/libraries/backend/{chunk-NCUEPWFJ.mjs → chunk-DMVFEWDM.mjs} +7 -7
  7. package/dist/libraries/backend/{chunk-DUTH4YIQ.mjs → chunk-EGTNCWHG.mjs} +198 -194
  8. package/dist/libraries/backend/{chunk-IUUFQ3OI.mjs → chunk-IVO6PRCK.mjs} +2 -2
  9. package/dist/libraries/backend/{chunk-PLADIABP.mjs → chunk-L4HVOC7A.mjs} +1 -1
  10. package/dist/libraries/backend/{chunk-M3WWSFNX.mjs → chunk-NK3RQBHK.mjs} +1 -1
  11. package/dist/libraries/backend/{chunk-2TEL6LR5.mjs → chunk-SGEUXFOF.mjs} +1 -1
  12. package/dist/libraries/backend/{chunk-GUY7BZZ4.mjs → chunk-VSBNSHZS.mjs} +1 -1
  13. package/dist/libraries/backend/{chunk-OWJBOQNO.mjs → chunk-Z3GRABBZ.mjs} +1 -1
  14. package/dist/libraries/backend/convex.js +197 -193
  15. package/dist/libraries/backend/convex.mjs +9 -9
  16. package/dist/libraries/backend/elysia.js +197 -193
  17. package/dist/libraries/backend/elysia.mjs +9 -9
  18. package/dist/libraries/backend/express.d.mts +1 -1
  19. package/dist/libraries/backend/express.d.ts +1 -1
  20. package/dist/libraries/backend/express.js +197 -193
  21. package/dist/libraries/backend/express.mjs +9 -9
  22. package/dist/libraries/backend/fastify.js +197 -193
  23. package/dist/libraries/backend/fastify.mjs +9 -9
  24. package/dist/libraries/backend/hono.js +197 -193
  25. package/dist/libraries/backend/hono.mjs +9 -9
  26. package/dist/libraries/backend/index.d.mts +1 -1
  27. package/dist/libraries/backend/index.d.ts +1 -1
  28. package/dist/libraries/backend/index.js +197 -193
  29. package/dist/libraries/backend/index.mjs +9 -9
  30. package/dist/libraries/backend/next.js +197 -193
  31. package/dist/libraries/backend/next.mjs +9 -9
  32. package/dist/libraries/backend/react-router.js +197 -193
  33. package/dist/libraries/backend/react-router.mjs +9 -9
  34. package/dist/libraries/backend/{referralTypes-CrOWHkir.d.ts → referralTypes-DFoyaks_.d.ts} +2 -35
  35. package/dist/libraries/backend/{referralTypes-DUfnhwYC.d.mts → referralTypes-DQvRryhI.d.mts} +2 -35
  36. package/dist/libraries/backend/remix_dep.js +197 -193
  37. package/dist/libraries/backend/remix_dep.mjs +9 -9
  38. package/dist/libraries/backend/routes/analyticsRoutes.js +176 -172
  39. package/dist/libraries/backend/routes/analyticsRoutes.mjs +4 -4
  40. package/dist/libraries/backend/routes/backendRouter.js +197 -193
  41. package/dist/libraries/backend/routes/backendRouter.mjs +9 -9
  42. package/dist/libraries/backend/routes/entityRoutes.js +173 -169
  43. package/dist/libraries/backend/routes/entityRoutes.mjs +4 -4
  44. package/dist/libraries/backend/routes/genRoutes.js +173 -169
  45. package/dist/libraries/backend/routes/genRoutes.mjs +4 -4
  46. package/dist/libraries/backend/routes/productRoutes.js +173 -169
  47. package/dist/libraries/backend/routes/productRoutes.mjs +4 -4
  48. package/dist/libraries/backend/routes/referralRoutes.js +173 -169
  49. package/dist/libraries/backend/routes/referralRoutes.mjs +4 -4
  50. package/dist/libraries/backend/supabase.js +197 -193
  51. package/dist/libraries/backend/supabase.mjs +9 -9
  52. package/dist/libraries/backend/tanstack.js +197 -193
  53. package/dist/libraries/backend/tanstack.mjs +9 -9
  54. package/dist/libraries/backend/utils/backendRes.js +173 -169
  55. package/dist/libraries/backend/utils/backendRes.mjs +2 -2
  56. package/dist/libraries/backend/utils/logBackendErrors.js +1 -1
  57. package/dist/libraries/backend/utils/logBackendErrors.mjs +1 -1
  58. package/dist/libraries/backend/utils/withAuth.d.mts +1 -1
  59. package/dist/libraries/backend/utils/withAuth.d.ts +1 -1
  60. package/dist/libraries/backend/utils/withAuth.js +173 -169
  61. package/dist/libraries/backend/utils/withAuth.mjs +3 -3
  62. package/dist/libraries/react/AutumnContext.d.mts +3 -3
  63. package/dist/libraries/react/AutumnContext.d.ts +3 -3
  64. package/dist/libraries/react/AutumnContext.js +183 -179
  65. package/dist/libraries/react/AutumnContext.mjs +5 -5
  66. package/dist/libraries/react/BaseAutumnProvider.d.mts +3 -3
  67. package/dist/libraries/react/BaseAutumnProvider.d.ts +3 -3
  68. package/dist/libraries/react/BaseAutumnProvider.js +350 -343
  69. package/dist/libraries/react/BaseAutumnProvider.mjs +10 -10
  70. package/dist/libraries/react/{ReactAutumnClient-DBRxtvI5.d.mts → ReactAutumnClient-Cmh9bCXD.d.mts} +14 -14
  71. package/dist/libraries/react/{ReactAutumnClient-CgvqoNfl.d.ts → ReactAutumnClient-DgCDKkGy.d.ts} +14 -14
  72. package/dist/libraries/react/ReactAutumnProvider.js +350 -343
  73. package/dist/libraries/react/ReactAutumnProvider.mjs +12 -12
  74. package/dist/libraries/react/{chunk-YJ66CCNM.mjs → chunk-2GEDBGON.mjs} +1 -1
  75. package/dist/libraries/react/{chunk-OCLWLKH7.mjs → chunk-2LZIBRD4.mjs} +4 -4
  76. package/dist/libraries/react/{chunk-QCGPJ5QU.mjs → chunk-3J4DYJET.mjs} +1 -1
  77. package/dist/libraries/react/{chunk-YGXSVTYJ.mjs → chunk-4J4Y5AAU.mjs} +6 -5
  78. package/dist/libraries/react/{chunk-OGDFDSBE.mjs → chunk-4KLTPVNG.mjs} +6 -6
  79. package/dist/libraries/react/{chunk-RZVWBOKP.mjs → chunk-4QVAJKUF.mjs} +5 -5
  80. package/dist/libraries/react/{chunk-3HGWHP3P.mjs → chunk-5TLRC3ED.mjs} +2 -2
  81. package/dist/libraries/react/{chunk-Y3AJHLDS.mjs → chunk-5YRCYEG5.mjs} +1 -1
  82. package/dist/libraries/react/{chunk-FO7GCPGQ.mjs → chunk-6XHXGLPY.mjs} +1 -1
  83. package/dist/libraries/react/{chunk-O4KFMQ34.mjs → chunk-CDWIZ4FK.mjs} +1 -1
  84. package/dist/libraries/react/{chunk-OQMAGWNJ.mjs → chunk-E27FVCYB.mjs} +2 -2
  85. package/dist/libraries/react/{chunk-XMJFBTHX.mjs → chunk-ESF5JUVR.mjs} +231 -227
  86. package/dist/libraries/react/chunk-FZEXI65Y.mjs +64 -0
  87. package/dist/libraries/react/{chunk-G3FR7GFT.mjs → chunk-G75EJQHU.mjs} +7 -7
  88. package/dist/libraries/react/{chunk-VMRN7YTJ.mjs → chunk-HGURN5SI.mjs} +17 -11
  89. package/dist/libraries/react/{chunk-MM4LTFTB.mjs → chunk-I274Z7T2.mjs} +11 -11
  90. package/dist/libraries/react/{chunk-VFYARVJM.mjs → chunk-I4WOYOTA.mjs} +2 -2
  91. package/dist/libraries/react/{chunk-3NVSJPCH.mjs → chunk-KHXGA6KQ.mjs} +1 -1
  92. package/dist/libraries/react/{chunk-ARG7A7DZ.mjs → chunk-KZ7KACBC.mjs} +2 -2
  93. package/dist/libraries/react/{chunk-74TUFYHU.mjs → chunk-MHAXHLX4.mjs} +7 -7
  94. package/dist/libraries/react/{chunk-GWG6ISTT.mjs → chunk-O6TLUOYG.mjs} +5 -5
  95. package/dist/libraries/react/{chunk-VCTI23H4.mjs → chunk-OIFXT3AO.mjs} +6 -4
  96. package/dist/libraries/react/{chunk-ZOXTGPMK.mjs → chunk-OQUXN5ST.mjs} +1 -1
  97. package/dist/libraries/react/{chunk-OK35S3KG.mjs → chunk-QAXLT5FQ.mjs} +4 -4
  98. package/dist/libraries/react/{chunk-2CIFBRPG.mjs → chunk-QEWVBDWJ.mjs} +1 -1
  99. package/dist/libraries/react/{chunk-UOCXSRR2.mjs → chunk-RVEGBFYS.mjs} +21 -21
  100. package/dist/libraries/react/chunk-RWPPMNTA.mjs +88 -0
  101. package/dist/libraries/react/client/ConvexAutumnClient.d.mts +5 -5
  102. package/dist/libraries/react/client/ConvexAutumnClient.d.ts +5 -5
  103. package/dist/libraries/react/client/ConvexAutumnClient.js +173 -169
  104. package/dist/libraries/react/client/ConvexAutumnClient.mjs +2 -2
  105. package/dist/libraries/react/client/ReactAutumnClient.d.mts +3 -3
  106. package/dist/libraries/react/client/ReactAutumnClient.d.ts +3 -3
  107. package/dist/libraries/react/client/ReactAutumnClient.js +183 -179
  108. package/dist/libraries/react/client/ReactAutumnClient.mjs +4 -4
  109. package/dist/libraries/react/client/clientAnalyticsMethods.d.mts +6 -6
  110. package/dist/libraries/react/client/clientAnalyticsMethods.d.ts +6 -6
  111. package/dist/libraries/react/client/clientCompMethods.d.mts +3 -3
  112. package/dist/libraries/react/client/clientCompMethods.d.ts +3 -3
  113. package/dist/libraries/react/client/clientCusMethods.d.mts +3 -3
  114. package/dist/libraries/react/client/clientCusMethods.d.ts +3 -3
  115. package/dist/libraries/react/client/clientEntityMethods.d.mts +3 -3
  116. package/dist/libraries/react/client/clientEntityMethods.d.ts +3 -3
  117. package/dist/libraries/react/client/clientGenMethods.d.mts +2 -2
  118. package/dist/libraries/react/client/clientGenMethods.d.ts +2 -2
  119. package/dist/libraries/react/client/clientProdMethods.d.mts +3 -3
  120. package/dist/libraries/react/client/clientProdMethods.d.ts +3 -3
  121. package/dist/libraries/react/client/clientReferralMethods.d.mts +3 -3
  122. package/dist/libraries/react/client/clientReferralMethods.d.ts +3 -3
  123. package/dist/libraries/react/client/types/clientAnalyticsTypes.d.mts +13 -37
  124. package/dist/libraries/react/client/types/clientAnalyticsTypes.d.ts +13 -37
  125. package/dist/libraries/react/client/types/clientAnalyticsTypes.js +20 -37
  126. package/dist/libraries/react/client/types/clientAnalyticsTypes.mjs +17 -32
  127. package/dist/libraries/react/client/types/clientGenTypes.js +173 -169
  128. package/dist/libraries/react/client/types/clientGenTypes.mjs +1 -1
  129. package/dist/libraries/react/components/checkout-dialog/checkout-dialog-synced.js +423 -418
  130. package/dist/libraries/react/components/checkout-dialog/checkout-dialog-synced.mjs +31 -31
  131. package/dist/libraries/react/components/paywall-dialog/paywall-dialog-synced.js +320 -316
  132. package/dist/libraries/react/components/paywall-dialog/paywall-dialog-synced.mjs +31 -31
  133. package/dist/libraries/react/components/pricing-table/pricing-table-synced.js +694 -689
  134. package/dist/libraries/react/components/pricing-table/pricing-table-synced.mjs +31 -31
  135. package/dist/libraries/react/components/ui/accordion.js +8 -8
  136. package/dist/libraries/react/components/ui/accordion.mjs +3 -3
  137. package/dist/libraries/react/components/ui/dialog.js +9 -9
  138. package/dist/libraries/react/components/ui/dialog.mjs +4 -4
  139. package/dist/libraries/react/components/ui/popover.js +12 -12
  140. package/dist/libraries/react/components/ui/popover.mjs +5 -5
  141. package/dist/libraries/react/components/ui/switch.js +4 -4
  142. package/dist/libraries/react/components/ui/switch.mjs +3 -3
  143. package/dist/libraries/react/eventTypes-5iJYcv30.d.mts +26 -0
  144. package/dist/libraries/react/eventTypes-5iJYcv30.d.ts +26 -0
  145. package/dist/libraries/react/hooks/helpers/handleCheck.d.mts +3 -3
  146. package/dist/libraries/react/hooks/helpers/handleCheck.d.ts +3 -3
  147. package/dist/libraries/react/hooks/helpers/handleCheck.js +173 -169
  148. package/dist/libraries/react/hooks/helpers/handleCheck.mjs +2 -2
  149. package/dist/libraries/react/hooks/helpers/useAutumnBase.d.mts +3 -3
  150. package/dist/libraries/react/hooks/helpers/useAutumnBase.d.ts +3 -3
  151. package/dist/libraries/react/hooks/helpers/useAutumnBase.js +173 -169
  152. package/dist/libraries/react/hooks/helpers/useAutumnBase.mjs +3 -3
  153. package/dist/libraries/react/hooks/useAggregateEvents.d.mts +4 -1
  154. package/dist/libraries/react/hooks/useAggregateEvents.d.ts +4 -1
  155. package/dist/libraries/react/hooks/useAggregateEvents.js +229 -206
  156. package/dist/libraries/react/hooks/useAggregateEvents.mjs +6 -6
  157. package/dist/libraries/react/hooks/useAnalytics.d.mts +2 -2
  158. package/dist/libraries/react/hooks/useAnalytics.d.ts +2 -2
  159. package/dist/libraries/react/hooks/useAnalytics.js +217 -205
  160. package/dist/libraries/react/hooks/useAnalytics.mjs +6 -6
  161. package/dist/libraries/react/hooks/useCustomer.d.mts +5 -5
  162. package/dist/libraries/react/hooks/useCustomer.d.ts +5 -5
  163. package/dist/libraries/react/hooks/useCustomer.js +184 -179
  164. package/dist/libraries/react/hooks/useCustomer.mjs +10 -10
  165. package/dist/libraries/react/hooks/useCustomerBase.d.mts +5 -5
  166. package/dist/libraries/react/hooks/useCustomerBase.d.ts +5 -5
  167. package/dist/libraries/react/hooks/useCustomerBase.js +344 -339
  168. package/dist/libraries/react/hooks/useCustomerBase.mjs +9 -9
  169. package/dist/libraries/react/hooks/useEntity.d.mts +1 -1
  170. package/dist/libraries/react/hooks/useEntity.d.ts +1 -1
  171. package/dist/libraries/react/hooks/useEntity.js +183 -179
  172. package/dist/libraries/react/hooks/useEntity.mjs +10 -10
  173. package/dist/libraries/react/hooks/useEntityBase.d.mts +3 -3
  174. package/dist/libraries/react/hooks/useEntityBase.d.ts +3 -3
  175. package/dist/libraries/react/hooks/useEntityBase.js +183 -179
  176. package/dist/libraries/react/hooks/useEntityBase.mjs +9 -9
  177. package/dist/libraries/react/hooks/useListEvents.d.mts +15 -5
  178. package/dist/libraries/react/hooks/useListEvents.d.ts +15 -5
  179. package/dist/libraries/react/hooks/useListEvents.js +257 -211
  180. package/dist/libraries/react/hooks/useListEvents.mjs +6 -6
  181. package/dist/libraries/react/hooks/usePaywall.js +183 -179
  182. package/dist/libraries/react/hooks/usePaywall.mjs +6 -6
  183. package/dist/libraries/react/hooks/usePricingTable.d.mts +1 -1
  184. package/dist/libraries/react/hooks/usePricingTable.d.ts +1 -1
  185. package/dist/libraries/react/hooks/usePricingTable.js +183 -179
  186. package/dist/libraries/react/hooks/usePricingTable.mjs +7 -7
  187. package/dist/libraries/react/hooks/usePricingTableBase.d.mts +3 -3
  188. package/dist/libraries/react/hooks/usePricingTableBase.d.ts +3 -3
  189. package/dist/libraries/react/hooks/usePricingTableBase.js +173 -169
  190. package/dist/libraries/react/hooks/usePricingTableBase.mjs +2 -2
  191. package/dist/libraries/react/hooks/useProductsBase.d.mts +3 -3
  192. package/dist/libraries/react/hooks/useProductsBase.d.ts +3 -3
  193. package/dist/libraries/react/index.d.mts +265 -256
  194. package/dist/libraries/react/index.d.ts +265 -256
  195. package/dist/libraries/react/index.js +1160 -1088
  196. package/dist/libraries/react/index.mjs +1177 -1105
  197. package/dist/next/client/NextAutumnClient.d.mts +32 -32
  198. package/dist/next/client/NextAutumnClient.d.ts +32 -32
  199. package/dist/next/client/hooks/useCustomer.d.mts +1 -1
  200. package/dist/next/client/hooks/useCustomer.d.ts +1 -1
  201. package/dist/next/client/hooks/usePricingTable.d.mts +1 -1
  202. package/dist/next/client/hooks/usePricingTable.d.ts +1 -1
  203. package/dist/next/server/cusActions.d.mts +2 -35
  204. package/dist/next/server/cusActions.d.ts +2 -35
  205. package/dist/sdk/index.d.mts +34 -51
  206. package/dist/sdk/index.d.ts +34 -51
  207. package/dist/sdk/index.js +194 -190
  208. package/dist/sdk/index.mjs +192 -188
  209. package/dist/utils/{chunk-WNUBT3GZ.mjs → chunk-EG37DNU2.mjs} +1 -1
  210. package/dist/utils/encryptUtils.js +173 -169
  211. package/dist/utils/encryptUtils.mjs +173 -169
  212. package/dist/utils/logger.js +1 -1
  213. package/dist/utils/logger.mjs +1 -1
  214. package/package.json +1 -1
  215. package/dist/libraries/react/chunk-AEWKNTLD.mjs +0 -48
  216. package/dist/libraries/react/chunk-VTZUF5OC.mjs +0 -47
  217. package/dist/libraries/react/eventTypes-MwzIb0X5.d.mts +0 -9
  218. package/dist/libraries/react/eventTypes-MwzIb0X5.d.ts +0 -9
@@ -38,7 +38,6 @@ module.exports = __toCommonJS(ReactAutumnProvider_exports);
38
38
 
39
39
  // src/libraries/react/BaseAutumnProvider.tsx
40
40
  var import_react3 = require("react");
41
- var import_react4 = require("react");
42
41
 
43
42
  // src/libraries/react/hooks/helpers/useDialog.tsx
44
43
  var import_react = require("react");
@@ -58,30 +57,20 @@ var useDialog = (component) => {
58
57
  // src/libraries/react/hooks/useCustomerBase.tsx
59
58
  var import_swr2 = __toESM(require("swr"));
60
59
 
61
- // src/sdk/error.ts
62
- var AutumnError = class _AutumnError extends Error {
63
- message;
64
- code;
65
- constructor(response) {
66
- super(response.message);
67
- this.message = response.message;
68
- this.code = response.code;
69
- }
70
- static fromError(error) {
71
- return new _AutumnError({
72
- message: error.message || "Unknown error",
73
- code: error.code || "unknown_error"
74
- });
75
- }
76
- toString() {
77
- return `${this.message} (code: ${this.code})`;
78
- }
79
- toJSON() {
80
- return {
81
- message: this.message,
82
- code: this.code
83
- };
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
+ }
84
72
  }
73
+ return false;
85
74
  };
86
75
 
87
76
  // src/sdk/general/genMethods.ts
@@ -169,6 +158,32 @@ var buildPathWithQuery = (basePath, params) => {
169
158
  return query ? `${basePath}?${query}` : basePath;
170
159
  };
171
160
 
161
+ // src/sdk/error.ts
162
+ var AutumnError = class _AutumnError extends Error {
163
+ message;
164
+ code;
165
+ constructor(response) {
166
+ super(response.message);
167
+ this.message = response.message;
168
+ this.code = response.code;
169
+ }
170
+ static fromError(error) {
171
+ return new _AutumnError({
172
+ message: error.message || "Unknown error",
173
+ code: error.code || "unknown_error"
174
+ });
175
+ }
176
+ toString() {
177
+ return `${this.message} (code: ${this.code})`;
178
+ }
179
+ toJSON() {
180
+ return {
181
+ message: this.message,
182
+ code: this.code
183
+ };
184
+ }
185
+ };
186
+
172
187
  // src/sdk/customers/cusMethods.ts
173
188
  var customerMethods = (instance) => {
174
189
  return {
@@ -412,7 +427,7 @@ var toContainerResult = async ({
412
427
 
413
428
  // src/utils/logger.ts
414
429
  var getTime = () => {
415
- let timeString = (/* @__PURE__ */ new Date()).toISOString();
430
+ const timeString = (/* @__PURE__ */ new Date()).toISOString();
416
431
  return `[${timeString.split("T")[1].split(".")[0]}]`;
417
432
  };
418
433
  var greaterThanLevel = (level) => {
@@ -793,6 +808,17 @@ var Autumn = class {
793
808
  }
794
809
  };
795
810
 
811
+ // src/sdk/customers/cusEnums.ts
812
+ var import_v4 = require("zod/v4");
813
+ var CustomerExpandEnum = import_v4.z.enum([
814
+ "invoices",
815
+ "rewards",
816
+ "trials_used",
817
+ "entities",
818
+ "referrals",
819
+ "payment_method"
820
+ ]);
821
+
796
822
  // src/sdk/products/prodEnums.ts
797
823
  var ProductItemInterval = /* @__PURE__ */ ((ProductItemInterval2) => {
798
824
  ProductItemInterval2["Minute"] = "minute";
@@ -807,17 +833,6 @@ var ProductItemInterval = /* @__PURE__ */ ((ProductItemInterval2) => {
807
833
  return ProductItemInterval2;
808
834
  })(ProductItemInterval || {});
809
835
 
810
- // src/sdk/customers/cusEnums.ts
811
- var import_v4 = require("zod/v4");
812
- var CustomerExpandEnum = import_v4.z.enum([
813
- "invoices",
814
- "rewards",
815
- "trials_used",
816
- "entities",
817
- "referrals",
818
- "payment_method"
819
- ]);
820
-
821
836
  // src/sdk/customers/cusTypes.ts
822
837
  var import_v42 = require("zod/v4");
823
838
  var CoreCusFeatureSchema = import_v42.z.object({
@@ -885,80 +900,103 @@ var ListCustomersParamsSchema = import_v42.z.object({
885
900
  offset: import_v42.z.number().optional()
886
901
  });
887
902
 
888
- // src/sdk/general/checkTypes.ts
903
+ // src/sdk/customers/entities/entTypes.ts
889
904
  var import_v43 = require("zod/v4");
890
- var CheckFeatureResultSchema = import_v43.z.object({
891
- allowed: import_v43.z.boolean(),
892
- feature_id: import_v43.z.string(),
893
- customer_id: import_v43.z.string(),
894
- entity_id: import_v43.z.string().optional(),
895
- required_balance: import_v43.z.number()
896
- }).extend(CoreCusFeatureSchema.shape);
905
+ var EntityDataSchema = import_v43.z.object({
906
+ name: import_v43.z.string().optional(),
907
+ feature_id: import_v43.z.string()
908
+ });
909
+ var TransferProductParamsSchema = import_v43.z.object({
910
+ from_entity_id: import_v43.z.string(),
911
+ to_entity_id: import_v43.z.string(),
912
+ product_id: import_v43.z.string()
913
+ });
897
914
 
898
- // src/sdk/customers/entities/entTypes.ts
915
+ // src/sdk/general/pageTypes.ts
899
916
  var import_v44 = require("zod/v4");
900
- var EntityDataSchema = import_v44.z.object({
901
- name: import_v44.z.string().optional(),
902
- feature_id: import_v44.z.string()
917
+ var PagePaginationDefaults = {
918
+ Limit: 100,
919
+ MaxLimit: 1e3
920
+ };
921
+ var PagePaginationQuerySchema = import_v44.z.object({
922
+ offset: import_v44.z.coerce.number().int().min(0).default(0).describe("Number of items to skip"),
923
+ limit: import_v44.z.coerce.number().int().min(1).max(PagePaginationDefaults.MaxLimit).default(PagePaginationDefaults.Limit).describe(
924
+ `Number of items to return. Default ${PagePaginationDefaults.Limit}, max ${PagePaginationDefaults.MaxLimit}.`
925
+ )
903
926
  });
904
- var TransferProductParamsSchema = import_v44.z.object({
905
- from_entity_id: import_v44.z.string(),
906
- to_entity_id: import_v44.z.string(),
907
- product_id: import_v44.z.string()
927
+ var createPagePaginatedResponseSchema = (itemSchema) => import_v44.z.object({
928
+ list: import_v44.z.array(itemSchema).describe("Array of items for current page"),
929
+ has_more: import_v44.z.boolean().describe("Whether more results exist after this page"),
930
+ offset: import_v44.z.number().describe("Current offset position"),
931
+ limit: import_v44.z.number().describe("Limit passed in the request"),
932
+ total: import_v44.z.number().describe("Total number of items returned in the current page")
908
933
  });
909
934
 
910
- // src/sdk/general/genTypes.ts
935
+ // src/sdk/events/eventTypes.ts
911
936
  var import_v45 = require("zod/v4");
912
- var CancelParamsSchema = import_v45.z.object({
913
- customer_id: import_v45.z.string(),
914
- product_id: import_v45.z.string(),
915
- entity_id: import_v45.z.string().optional(),
916
- cancel_immediately: import_v45.z.boolean().optional()
917
- });
918
- var CancelResultSchema = import_v45.z.object({
919
- success: import_v45.z.boolean(),
920
- customer_id: import_v45.z.string(),
921
- product_id: import_v45.z.string()
922
- });
923
- var TrackParamsSchema = import_v45.z.object({
937
+ var QueryRangeEnum = import_v45.z.enum([
938
+ "24h",
939
+ "7d",
940
+ "30d",
941
+ "90d",
942
+ "last_cycle",
943
+ "1bc",
944
+ "3bc"
945
+ ]);
946
+ var BinSizeEnum = import_v45.z.enum(["day", "hour"]);
947
+ var QueryParamsSchema = import_v45.z.object({
924
948
  customer_id: import_v45.z.string(),
925
- value: import_v45.z.number().optional(),
926
- feature_id: import_v45.z.string().optional(),
927
- event_name: import_v45.z.string().optional(),
928
- entity_id: import_v45.z.string().optional(),
929
- customer_data: import_v45.z.any().optional(),
930
- idempotency_key: import_v45.z.string().optional(),
931
- entity_data: import_v45.z.any().optional(),
932
- properties: import_v45.z.record(import_v45.z.string(), import_v45.z.any()).optional()
949
+ feature_id: import_v45.z.string().or(import_v45.z.array(import_v45.z.string())),
950
+ range: QueryRangeEnum.optional(),
951
+ group_by: import_v45.z.string().startsWith("properties.").optional(),
952
+ bin_size: BinSizeEnum.optional(),
953
+ custom_range: import_v45.z.object({
954
+ start: import_v45.z.number(),
955
+ end: import_v45.z.number()
956
+ }).optional()
933
957
  });
934
- var TrackResultSchema = import_v45.z.object({
935
- id: import_v45.z.string(),
936
- code: import_v45.z.string(),
958
+ var EventsListParamsSchema = PagePaginationQuerySchema.extend({
937
959
  customer_id: import_v45.z.string(),
938
- feature_id: import_v45.z.string().optional(),
939
- event_name: import_v45.z.string().optional()
960
+ feature_id: import_v45.z.string().or(import_v45.z.array(import_v45.z.string())),
961
+ custom_range: import_v45.z.object({
962
+ start: import_v45.z.coerce.number().optional(),
963
+ end: import_v45.z.coerce.number().optional()
964
+ }).optional()
940
965
  });
941
- var CheckParamsSchema = import_v45.z.object({
942
- customer_id: import_v45.z.string(),
943
- feature_id: import_v45.z.string().optional(),
944
- product_id: import_v45.z.string().optional(),
945
- entity_id: import_v45.z.string().optional(),
946
- customer_data: import_v45.z.any().optional(),
947
- required_balance: import_v45.z.number().optional(),
948
- send_event: import_v45.z.boolean().optional(),
949
- with_preview: import_v45.z.boolean().optional(),
950
- entity_data: EntityDataSchema.optional()
966
+ var EventsListItemSchema = import_v45.z.object({
967
+ id: import_v45.z.string().describe("Event ID (KSUID)"),
968
+ timestamp: import_v45.z.number().describe("Event timestamp (epoch milliseconds)"),
969
+ feature_id: import_v45.z.string().describe("Name of the event"),
970
+ customer_id: import_v45.z.string().describe("Customer identifier"),
971
+ value: import_v45.z.number().describe("Event value/count"),
972
+ properties: import_v45.z.object({}).describe("Event properties (JSONB)")
951
973
  });
974
+ var EventsListResponseSchema = createPagePaginatedResponseSchema(EventsListItemSchema);
952
975
 
953
- // src/sdk/referrals/referralTypes.ts
976
+ // src/sdk/features/featureTypes.ts
954
977
  var import_v46 = require("zod/v4");
955
- var CreateReferralCodeParamsSchema = import_v46.z.object({
956
- customer_id: import_v46.z.string(),
957
- program_id: import_v46.z.string()
958
- });
959
- var RedeemReferralCodeParamsSchema = import_v46.z.object({
960
- code: import_v46.z.string(),
961
- customer_id: import_v46.z.string()
978
+ var FeatureType = /* @__PURE__ */ ((FeatureType2) => {
979
+ FeatureType2["Boolean"] = "boolean";
980
+ FeatureType2["SingleUse"] = "single_use";
981
+ FeatureType2["ContinuousUse"] = "continuous_use";
982
+ FeatureType2["CreditSystem"] = "credit_system";
983
+ return FeatureType2;
984
+ })(FeatureType || {});
985
+ var FeatureSchema = import_v46.z.object({
986
+ id: import_v46.z.string(),
987
+ name: import_v46.z.string(),
988
+ type: import_v46.z.enum(FeatureType),
989
+ display: import_v46.z.object({
990
+ singular: import_v46.z.string(),
991
+ plural: import_v46.z.string()
992
+ }).nullish(),
993
+ credit_schema: import_v46.z.array(
994
+ import_v46.z.object({
995
+ metered_feature_id: import_v46.z.string(),
996
+ credit_cost: import_v46.z.number()
997
+ })
998
+ ).nullish(),
999
+ archived: import_v46.z.boolean()
962
1000
  });
963
1001
 
964
1002
  // src/sdk/general/attachTypes.ts
@@ -1015,251 +1053,69 @@ var CheckoutParamsSchema = import_v47.z.object({
1015
1053
  new_billing_subscription: import_v47.z.boolean().optional()
1016
1054
  });
1017
1055
 
1018
- // src/sdk/general/cursorTypes.ts
1056
+ // src/sdk/general/checkTypes.ts
1019
1057
  var import_v48 = require("zod/v4");
1020
- var PaginationDefaults = {
1021
- Limit: 100,
1022
- MaxLimit: 1e3
1023
- };
1024
- var CursorPaginationQuerySchema = import_v48.z.object({
1025
- starting_after: import_v48.z.string().optional(),
1026
- limit: import_v48.z.coerce.number().int().min(1).max(PaginationDefaults.MaxLimit).default(PaginationDefaults.Limit).optional()
1027
- });
1028
- var createCursorPaginatedResponseSchema = (itemSchema) => import_v48.z.object({
1029
- list: import_v48.z.array(itemSchema),
1030
- has_more: import_v48.z.boolean(),
1031
- next_cursor: import_v48.z.string().nullable()
1032
- });
1058
+ var CheckFeatureResultSchema = import_v48.z.object({
1059
+ allowed: import_v48.z.boolean(),
1060
+ feature_id: import_v48.z.string(),
1061
+ customer_id: import_v48.z.string(),
1062
+ entity_id: import_v48.z.string().optional(),
1063
+ required_balance: import_v48.z.number()
1064
+ }).extend(CoreCusFeatureSchema.shape);
1033
1065
 
1034
- // src/sdk/events/eventTypes.ts
1066
+ // src/sdk/general/genTypes.ts
1035
1067
  var import_v49 = require("zod/v4");
1036
- var QueryRangeEnum = import_v49.z.enum([
1037
- "24h",
1038
- "7d",
1039
- "30d",
1040
- "90d",
1041
- "last_cycle",
1042
- "1bc",
1043
- "3bc"
1044
- ]);
1045
- var BinSizeEnum = import_v49.z.enum(["day", "hour"]);
1046
- var QueryParamsSchema = import_v49.z.object({
1068
+ var CancelParamsSchema = import_v49.z.object({
1047
1069
  customer_id: import_v49.z.string(),
1048
- feature_id: import_v49.z.string().or(import_v49.z.array(import_v49.z.string())),
1049
- range: QueryRangeEnum.optional(),
1050
- group_by: import_v49.z.string().startsWith("properties.").optional(),
1051
- bin_size: BinSizeEnum.optional(),
1052
- custom_range: import_v49.z.object({
1053
- start: import_v49.z.number(),
1054
- end: import_v49.z.number()
1055
- }).optional()
1070
+ product_id: import_v49.z.string(),
1071
+ entity_id: import_v49.z.string().optional(),
1072
+ cancel_immediately: import_v49.z.boolean().optional()
1056
1073
  });
1057
- var LogParamsSchema = CursorPaginationQuerySchema.extend({
1074
+ var CancelResultSchema = import_v49.z.object({
1075
+ success: import_v49.z.boolean(),
1058
1076
  customer_id: import_v49.z.string(),
1059
- feature_id: import_v49.z.string().or(import_v49.z.array(import_v49.z.string())),
1060
- time_range: import_v49.z.object({
1061
- start: import_v49.z.coerce.number().optional(),
1062
- end: import_v49.z.coerce.number().optional()
1063
- }).optional()
1077
+ product_id: import_v49.z.string()
1078
+ });
1079
+ var TrackParamsSchema = import_v49.z.object({
1080
+ customer_id: import_v49.z.string(),
1081
+ value: import_v49.z.number().optional(),
1082
+ feature_id: import_v49.z.string().optional(),
1083
+ event_name: import_v49.z.string().optional(),
1084
+ entity_id: import_v49.z.string().optional(),
1085
+ customer_data: import_v49.z.any().optional(),
1086
+ idempotency_key: import_v49.z.string().optional(),
1087
+ entity_data: import_v49.z.any().optional(),
1088
+ properties: import_v49.z.record(import_v49.z.string(), import_v49.z.any()).optional()
1089
+ });
1090
+ var TrackResultSchema = import_v49.z.object({
1091
+ id: import_v49.z.string(),
1092
+ code: import_v49.z.string(),
1093
+ customer_id: import_v49.z.string(),
1094
+ feature_id: import_v49.z.string().optional(),
1095
+ event_name: import_v49.z.string().optional()
1064
1096
  });
1065
- var EventListItemSchema = import_v49.z.object({
1066
- id: import_v49.z.string().describe("Event ID (KSUID)"),
1067
- timestamp: import_v49.z.number().describe("Event timestamp (epoch milliseconds)"),
1068
- feature_id: import_v49.z.string().describe("Name of the event"),
1069
- customer_id: import_v49.z.string().describe("Customer identifier"),
1070
- value: import_v49.z.number().describe("Event value/count"),
1071
- properties: import_v49.z.object({}).describe("Event properties (JSONB)")
1097
+ var CheckParamsSchema = import_v49.z.object({
1098
+ customer_id: import_v49.z.string(),
1099
+ feature_id: import_v49.z.string().optional(),
1100
+ product_id: import_v49.z.string().optional(),
1101
+ entity_id: import_v49.z.string().optional(),
1102
+ customer_data: import_v49.z.any().optional(),
1103
+ required_balance: import_v49.z.number().optional(),
1104
+ send_event: import_v49.z.boolean().optional(),
1105
+ with_preview: import_v49.z.boolean().optional(),
1106
+ entity_data: EntityDataSchema.optional()
1072
1107
  });
1073
- var EventListResponseSchema = createCursorPaginatedResponseSchema(EventListItemSchema);
1074
1108
 
1075
- // src/sdk/features/featureTypes.ts
1109
+ // src/sdk/referrals/referralTypes.ts
1076
1110
  var import_v410 = require("zod/v4");
1077
- var FeatureType = /* @__PURE__ */ ((FeatureType2) => {
1078
- FeatureType2["Boolean"] = "boolean";
1079
- FeatureType2["SingleUse"] = "single_use";
1080
- FeatureType2["ContinuousUse"] = "continuous_use";
1081
- FeatureType2["CreditSystem"] = "credit_system";
1082
- return FeatureType2;
1083
- })(FeatureType || {});
1084
- var FeatureSchema = import_v410.z.object({
1085
- id: import_v410.z.string(),
1086
- name: import_v410.z.string(),
1087
- type: import_v410.z.enum(FeatureType),
1088
- display: import_v410.z.object({
1089
- singular: import_v410.z.string(),
1090
- plural: import_v410.z.string()
1091
- }).nullish(),
1092
- credit_schema: import_v410.z.array(
1093
- import_v410.z.object({
1094
- metered_feature_id: import_v410.z.string(),
1095
- credit_cost: import_v410.z.number()
1096
- })
1097
- ).nullish(),
1098
- archived: import_v410.z.boolean()
1111
+ var CreateReferralCodeParamsSchema = import_v410.z.object({
1112
+ customer_id: import_v410.z.string(),
1113
+ program_id: import_v410.z.string()
1114
+ });
1115
+ var RedeemReferralCodeParamsSchema = import_v410.z.object({
1116
+ code: import_v410.z.string(),
1117
+ customer_id: import_v410.z.string()
1099
1118
  });
1100
-
1101
- // src/libraries/react/hooks/helpers/handleCheck.ts
1102
- var getCusFeature = ({
1103
- customer,
1104
- featureId,
1105
- requiredBalance = 1
1106
- }) => {
1107
- let cusFeature = customer.features[featureId];
1108
- if (cusFeature && typeof cusFeature.balance === "number" && cusFeature.balance >= requiredBalance) {
1109
- return {
1110
- cusFeature,
1111
- requiredBalance
1112
- };
1113
- }
1114
- let creditSchema = Object.values(customer.features).find(
1115
- (f) => f.credit_schema && f.credit_schema.some((c) => c.feature_id === featureId)
1116
- );
1117
- if (creditSchema) {
1118
- let schemaItem = creditSchema.credit_schema?.find(
1119
- (c) => c.feature_id === featureId
1120
- );
1121
- return {
1122
- cusFeature: creditSchema,
1123
- requiredBalance: schemaItem.credit_amount * requiredBalance
1124
- };
1125
- }
1126
- return {
1127
- cusFeature: customer.features[featureId],
1128
- requiredBalance
1129
- };
1130
- };
1131
- var getFeatureAllowed = ({
1132
- cusFeature,
1133
- requiredBalance
1134
- }) => {
1135
- if (!cusFeature) return false;
1136
- if (cusFeature.type == "static") return true;
1137
- if (cusFeature.unlimited || cusFeature.overage_allowed) return true;
1138
- if (cusFeature.usage_limit) {
1139
- let extraUsage = (cusFeature.usage_limit || 0) - (cusFeature.included_usage || 0);
1140
- return (cusFeature.balance || 0) + extraUsage >= requiredBalance;
1141
- }
1142
- return (cusFeature.balance || 0) >= requiredBalance;
1143
- };
1144
- var handleFeatureCheck = ({
1145
- customer,
1146
- isEntity,
1147
- params
1148
- }) => {
1149
- let { cusFeature, requiredBalance } = getCusFeature({
1150
- customer,
1151
- featureId: params.featureId,
1152
- ...params.requiredBalance ? { requiredBalance: params.requiredBalance } : {}
1153
- });
1154
- let allowed = getFeatureAllowed({
1155
- cusFeature,
1156
- requiredBalance: requiredBalance ?? 1
1157
- });
1158
- let result = {
1159
- allowed,
1160
- feature_id: cusFeature?.id ?? params.featureId,
1161
- customer_id: isEntity ? customer.customer_id : customer.id,
1162
- required_balance: requiredBalance,
1163
- ...cusFeature
1164
- };
1165
- if (isEntity) {
1166
- result.entity_id = customer.id;
1167
- }
1168
- try {
1169
- return CheckFeatureResultSchema.parse(result);
1170
- } catch (error) {
1171
- return result;
1172
- }
1173
- };
1174
- var handleProductCheck = ({
1175
- customer,
1176
- isEntity,
1177
- params
1178
- }) => {
1179
- let product = customer.products.find((p) => p.id == params.productId);
1180
- let allowed = product?.status === "active" || product?.status === "trialing";
1181
- let result = {
1182
- allowed,
1183
- customer_id: isEntity ? customer.customer_id : customer.id,
1184
- product_id: params.productId
1185
- };
1186
- if (product) {
1187
- result.status = product.status;
1188
- }
1189
- if (isEntity) {
1190
- result.entity_id = customer.id;
1191
- }
1192
- return result;
1193
- };
1194
- var openDialog = ({
1195
- result,
1196
- params,
1197
- context
1198
- }) => {
1199
- let open = result?.allowed === false && params.dialog && context;
1200
- if (!open) return;
1201
- const isInRenderCycle = (() => {
1202
- const stack = new Error().stack || "";
1203
- return stack.includes("renderWithHooks") || stack.includes("updateFunctionComponent") || stack.includes("beginWork") || stack.includes("performUnitOfWork") || stack.includes("workLoop") || stack.includes("Component.render") || stack.includes("FunctionComponent");
1204
- })();
1205
- if (isInRenderCycle) {
1206
- context.paywallRef.current = {
1207
- component: params.dialog,
1208
- open: true,
1209
- props: params
1210
- };
1211
- } else {
1212
- context.paywallDialog.setComponent(params.dialog);
1213
- context.paywallDialog.setProps(params);
1214
- context.paywallDialog.setOpen(true);
1215
- }
1216
- };
1217
- var handleCheck2 = ({
1218
- customer,
1219
- isEntity,
1220
- params,
1221
- context
1222
- }) => {
1223
- if (!customer) {
1224
- return {
1225
- data: {
1226
- allowed: false,
1227
- feature_id: "",
1228
- customer_id: "",
1229
- required_balance: 0
1230
- },
1231
- error: null
1232
- };
1233
- }
1234
- if (!params.featureId && !params.productId) {
1235
- throw new Error("allowed() requires either featureId or productId");
1236
- }
1237
- let result;
1238
- if (params.featureId)
1239
- result = handleFeatureCheck({ customer, params, isEntity });
1240
- if (params.productId)
1241
- result = handleProductCheck({ customer, params, isEntity });
1242
- return {
1243
- data: result,
1244
- error: null
1245
- };
1246
- };
1247
-
1248
- // src/libraries/react/errorUtils/logAuthError.ts
1249
- var logAuthError = async (response) => {
1250
- if (response.status === 401) {
1251
- let clonedResponse = response.clone();
1252
- let data = await clonedResponse.json();
1253
- if (data.message.includes("Missing authorization header")) {
1254
- console.error(`[Autumn] Missing authorization header.
1255
-
1256
- Use the getBearerToken prop in <AutumnProvider /> to set the authorization header.
1257
- https://docs.useautumn.com/quickstart/quickstart#5-set-up-autumnprovider`);
1258
- return true;
1259
- }
1260
- }
1261
- return false;
1262
- };
1263
1119
 
1264
1120
  // src/libraries/react/errorUtils/logFetchError.ts
1265
1121
  var logFetchError = ({
@@ -1274,6 +1130,16 @@ var logFetchError = ({
1274
1130
  2. Check that autumnHandler is correctly registered on your backend.`);
1275
1131
  };
1276
1132
 
1133
+ // src/libraries/react/client/clientAnalyticsMethods.ts
1134
+ async function eventListMethod(params) {
1135
+ const res = await this.post(`${this.prefix}/events/list`, params);
1136
+ return res;
1137
+ }
1138
+ async function eventAggregateMethod(params) {
1139
+ const res = await this.post(`${this.prefix}/events/aggregate`, params);
1140
+ return res;
1141
+ }
1142
+
1277
1143
  // src/libraries/react/client/clientCusMethods.ts
1278
1144
  var createCustomerMethod = async ({
1279
1145
  client,
@@ -1376,16 +1242,6 @@ async function redeemCode(params) {
1376
1242
  return res;
1377
1243
  }
1378
1244
 
1379
- // src/libraries/react/client/clientAnalyticsMethods.ts
1380
- async function eventListMethod(params) {
1381
- const res = await this.post(`${this.prefix}/events/list`, params);
1382
- return res;
1383
- }
1384
- async function eventAggregateMethod(params) {
1385
- const res = await this.post(`${this.prefix}/events/aggregate`, params);
1386
- return res;
1387
- }
1388
-
1389
1245
  // src/libraries/react/client/ReactAutumnClient.tsx
1390
1246
  var AutumnClient = class {
1391
1247
  backendUrl;
@@ -1631,6 +1487,153 @@ var useAutumnContext = ({
1631
1487
  return context;
1632
1488
  };
1633
1489
 
1490
+ // src/libraries/react/hooks/helpers/handleCheck.ts
1491
+ var getCusFeature = ({
1492
+ customer,
1493
+ featureId,
1494
+ requiredBalance = 1
1495
+ }) => {
1496
+ let cusFeature = customer.features[featureId];
1497
+ if (cusFeature && typeof cusFeature.balance === "number" && cusFeature.balance >= requiredBalance) {
1498
+ return {
1499
+ cusFeature,
1500
+ requiredBalance
1501
+ };
1502
+ }
1503
+ let creditSchema = Object.values(customer.features).find(
1504
+ (f) => f.credit_schema && f.credit_schema.some((c) => c.feature_id === featureId)
1505
+ );
1506
+ if (creditSchema) {
1507
+ let schemaItem = creditSchema.credit_schema?.find(
1508
+ (c) => c.feature_id === featureId
1509
+ );
1510
+ return {
1511
+ cusFeature: creditSchema,
1512
+ requiredBalance: schemaItem.credit_amount * requiredBalance
1513
+ };
1514
+ }
1515
+ return {
1516
+ cusFeature: customer.features[featureId],
1517
+ requiredBalance
1518
+ };
1519
+ };
1520
+ var getFeatureAllowed = ({
1521
+ cusFeature,
1522
+ requiredBalance
1523
+ }) => {
1524
+ if (!cusFeature) return false;
1525
+ if (cusFeature.type == "static") return true;
1526
+ if (cusFeature.unlimited || cusFeature.overage_allowed) return true;
1527
+ if (cusFeature.usage_limit) {
1528
+ let extraUsage = (cusFeature.usage_limit || 0) - (cusFeature.included_usage || 0);
1529
+ return (cusFeature.balance || 0) + extraUsage >= requiredBalance;
1530
+ }
1531
+ return (cusFeature.balance || 0) >= requiredBalance;
1532
+ };
1533
+ var handleFeatureCheck = ({
1534
+ customer,
1535
+ isEntity,
1536
+ params
1537
+ }) => {
1538
+ let { cusFeature, requiredBalance } = getCusFeature({
1539
+ customer,
1540
+ featureId: params.featureId,
1541
+ ...params.requiredBalance ? { requiredBalance: params.requiredBalance } : {}
1542
+ });
1543
+ let allowed = getFeatureAllowed({
1544
+ cusFeature,
1545
+ requiredBalance: requiredBalance ?? 1
1546
+ });
1547
+ let result = {
1548
+ allowed,
1549
+ feature_id: cusFeature?.id ?? params.featureId,
1550
+ customer_id: isEntity ? customer.customer_id : customer.id,
1551
+ required_balance: requiredBalance,
1552
+ ...cusFeature
1553
+ };
1554
+ if (isEntity) {
1555
+ result.entity_id = customer.id;
1556
+ }
1557
+ try {
1558
+ return CheckFeatureResultSchema.parse(result);
1559
+ } catch (error) {
1560
+ return result;
1561
+ }
1562
+ };
1563
+ var handleProductCheck = ({
1564
+ customer,
1565
+ isEntity,
1566
+ params
1567
+ }) => {
1568
+ let product = customer.products.find((p) => p.id == params.productId);
1569
+ let allowed = product?.status === "active" || product?.status === "trialing";
1570
+ let result = {
1571
+ allowed,
1572
+ customer_id: isEntity ? customer.customer_id : customer.id,
1573
+ product_id: params.productId
1574
+ };
1575
+ if (product) {
1576
+ result.status = product.status;
1577
+ }
1578
+ if (isEntity) {
1579
+ result.entity_id = customer.id;
1580
+ }
1581
+ return result;
1582
+ };
1583
+ var openDialog = ({
1584
+ result,
1585
+ params,
1586
+ context
1587
+ }) => {
1588
+ let open = result?.allowed === false && params.dialog && context;
1589
+ if (!open) return;
1590
+ const isInRenderCycle = (() => {
1591
+ const stack = new Error().stack || "";
1592
+ return stack.includes("renderWithHooks") || stack.includes("updateFunctionComponent") || stack.includes("beginWork") || stack.includes("performUnitOfWork") || stack.includes("workLoop") || stack.includes("Component.render") || stack.includes("FunctionComponent");
1593
+ })();
1594
+ if (isInRenderCycle) {
1595
+ context.paywallRef.current = {
1596
+ component: params.dialog,
1597
+ open: true,
1598
+ props: params
1599
+ };
1600
+ } else {
1601
+ context.paywallDialog.setComponent(params.dialog);
1602
+ context.paywallDialog.setProps(params);
1603
+ context.paywallDialog.setOpen(true);
1604
+ }
1605
+ };
1606
+ var handleCheck2 = ({
1607
+ customer,
1608
+ isEntity,
1609
+ params,
1610
+ context
1611
+ }) => {
1612
+ if (!customer) {
1613
+ return {
1614
+ data: {
1615
+ allowed: false,
1616
+ feature_id: "",
1617
+ customer_id: "",
1618
+ required_balance: 0
1619
+ },
1620
+ error: null
1621
+ };
1622
+ }
1623
+ if (!params.featureId && !params.productId) {
1624
+ throw new Error("allowed() requires either featureId or productId");
1625
+ }
1626
+ let result;
1627
+ if (params.featureId)
1628
+ result = handleFeatureCheck({ customer, params, isEntity });
1629
+ if (params.productId)
1630
+ result = handleProductCheck({ customer, params, isEntity });
1631
+ return {
1632
+ data: result,
1633
+ error: null
1634
+ };
1635
+ };
1636
+
1634
1637
  // src/libraries/react/hooks/usePricingTableBase.tsx
1635
1638
  var import_swr = __toESM(require("swr"));
1636
1639
  var mergeProductDetails = (products, productDetails) => {
@@ -2018,6 +2021,7 @@ var useCustomerBase = ({
2018
2021
  swrConfig: {
2019
2022
  shouldRetryOnError: false,
2020
2023
  refreshInterval: 0,
2024
+ dedupingInterval: 2e3,
2021
2025
  ...params?.swrConfig
2022
2026
  }
2023
2027
  });
@@ -2059,7 +2063,7 @@ function BaseAutumnProvider({
2059
2063
  children,
2060
2064
  AutumnContext: AutumnContext2
2061
2065
  }) {
2062
- const [components, setComponents] = (0, import_react4.useState)({});
2066
+ const [components, setComponents] = (0, import_react3.useState)({});
2063
2067
  const [paywallProps, setPaywallProps, paywallOpen, setPaywallOpen] = useDialog(components.paywallDialog);
2064
2068
  const [
2065
2069
  productChangeProps,
@@ -2067,9 +2071,12 @@ function BaseAutumnProvider({
2067
2071
  productChangeOpen,
2068
2072
  setProductChangeOpen
2069
2073
  ] = useDialog(components.productChangeDialog);
2070
- useCustomerBase({ client, params: { errorOnNotFound: false } });
2074
+ useCustomerBase({
2075
+ client,
2076
+ params: { errorOnNotFound: false }
2077
+ });
2071
2078
  const paywallRef = (0, import_react3.useRef)(null);
2072
- const [refresh, setRefresh] = (0, import_react4.useState)(0);
2079
+ const [refresh, setRefresh] = (0, import_react3.useState)(0);
2073
2080
  return /* @__PURE__ */ (0, import_jsx_runtime.jsxs)(
2074
2081
  AutumnContext2.Provider,
2075
2082
  {