autumn-js 0.0.66 → 0.0.67

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 (279) hide show
  1. package/dist/libraries/backend/chunk-45WVZY23.mjs +41 -0
  2. package/dist/libraries/backend/{chunk-FRL4IWBU.mjs → chunk-46YP3QFO.mjs} +5 -5
  3. package/dist/libraries/backend/{chunk-C2YFOJYP.mjs → chunk-6N4RVNZ5.mjs} +13 -8
  4. package/dist/libraries/backend/{chunk-NDN25XDG.mjs → chunk-6OVW4YXK.mjs} +1 -1
  5. package/dist/libraries/backend/{chunk-NDS3EHT3.mjs → chunk-AEEYR55J.mjs} +1 -1
  6. package/dist/libraries/backend/{chunk-W63TY2DI.mjs → chunk-BYAXY6C4.mjs} +69 -58
  7. package/dist/libraries/backend/{chunk-QXJ7YDTB.mjs → chunk-IZAQ6MUN.mjs} +1 -1
  8. package/dist/libraries/backend/express.d.mts +2 -2
  9. package/dist/libraries/backend/express.d.ts +2 -2
  10. package/dist/libraries/backend/express.js +123 -71
  11. package/dist/libraries/backend/express.mjs +7 -6
  12. package/dist/libraries/backend/fastify.js +123 -71
  13. package/dist/libraries/backend/fastify.mjs +7 -6
  14. package/dist/libraries/backend/hono.js +123 -71
  15. package/dist/libraries/backend/hono.mjs +7 -6
  16. package/dist/libraries/backend/next.js +207 -165
  17. package/dist/libraries/backend/next.mjs +101 -100
  18. package/dist/libraries/backend/react-router.js +123 -71
  19. package/dist/libraries/backend/react-router.mjs +7 -6
  20. package/dist/libraries/backend/{referralTypes-p6A_PZbz.d.ts → referralTypes-7NmhI47Z.d.mts} +7 -7
  21. package/dist/libraries/backend/{referralTypes-BdY-EkkQ.d.mts → referralTypes-CURy8Tnw.d.ts} +7 -7
  22. package/dist/libraries/backend/remix_dep.js +123 -71
  23. package/dist/libraries/backend/remix_dep.mjs +7 -6
  24. package/dist/libraries/backend/{response-ByHPEnHs.d.mts → response-CV6KGWH5.d.mts} +1 -0
  25. package/dist/libraries/backend/{response-ByHPEnHs.d.ts → response-CV6KGWH5.d.ts} +1 -0
  26. package/dist/libraries/backend/routes/backendRouter.js +123 -70
  27. package/dist/libraries/backend/routes/backendRouter.mjs +7 -6
  28. package/dist/libraries/backend/routes/entityRoutes.js +122 -65
  29. package/dist/libraries/backend/routes/entityRoutes.mjs +5 -3
  30. package/dist/libraries/backend/routes/genRoutes.js +123 -70
  31. package/dist/libraries/backend/routes/genRoutes.mjs +4 -3
  32. package/dist/libraries/backend/routes/referralRoutes.js +123 -68
  33. package/dist/libraries/backend/routes/referralRoutes.mjs +4 -3
  34. package/dist/libraries/backend/supabase.js +123 -71
  35. package/dist/libraries/backend/supabase.mjs +7 -6
  36. package/dist/libraries/backend/tanstack.js +126 -72
  37. package/dist/libraries/backend/tanstack.mjs +10 -9
  38. package/dist/libraries/backend/utils/backendRes.d.mts +1 -1
  39. package/dist/libraries/backend/utils/backendRes.d.ts +1 -1
  40. package/dist/libraries/backend/utils/backendRes.js +113 -58
  41. package/dist/libraries/backend/utils/backendRes.mjs +3 -1
  42. package/dist/libraries/backend/utils/logBackendErrors.d.mts +5 -0
  43. package/dist/libraries/backend/utils/logBackendErrors.d.ts +5 -0
  44. package/dist/libraries/backend/utils/logBackendErrors.js +84 -0
  45. package/dist/libraries/backend/utils/logBackendErrors.mjs +14 -0
  46. package/dist/libraries/backend/utils/withAuth.d.mts +2 -2
  47. package/dist/libraries/backend/utils/withAuth.d.ts +2 -2
  48. package/dist/libraries/backend/utils/withAuth.js +122 -65
  49. package/dist/libraries/backend/utils/withAuth.mjs +4 -2
  50. package/dist/libraries/react/AutumnContext.d.mts +11 -15
  51. package/dist/libraries/react/AutumnContext.d.ts +11 -15
  52. package/dist/libraries/react/AutumnContext.js +177 -97
  53. package/dist/libraries/react/AutumnContext.mjs +4 -3
  54. package/dist/libraries/react/BaseAutumnProvider.d.mts +8 -5
  55. package/dist/libraries/react/BaseAutumnProvider.d.ts +8 -5
  56. package/dist/libraries/react/BaseAutumnProvider.js +241 -274
  57. package/dist/libraries/react/BaseAutumnProvider.mjs +7 -7
  58. package/dist/libraries/react/{ReactAutumnClient-DNcV0gAT.d.ts → ReactAutumnClient-BM8hrCEC.d.ts} +20 -28
  59. package/dist/libraries/react/{ReactAutumnClient-BQtmw21U.d.mts → ReactAutumnClient-EjsfCAgE.d.mts} +20 -28
  60. package/dist/libraries/react/ReactAutumnProvider.d.mts +1 -1
  61. package/dist/libraries/react/ReactAutumnProvider.d.ts +1 -1
  62. package/dist/libraries/react/ReactAutumnProvider.js +247 -276
  63. package/dist/libraries/react/ReactAutumnProvider.mjs +7 -8
  64. package/dist/libraries/react/{chunk-KHU4NOQJ.mjs → chunk-2MVQH6J5.mjs} +10 -4
  65. package/dist/libraries/react/chunk-57I3B4BV.mjs +20 -0
  66. package/dist/libraries/react/chunk-5S5BL6HV.mjs +17 -0
  67. package/dist/libraries/react/chunk-A6J237PD.mjs +57 -0
  68. package/dist/{next/client/hooks/useEntityProvider.js → libraries/react/chunk-BGEO5REY.mjs} +12 -10
  69. package/dist/libraries/react/chunk-CIBQ4BJU.mjs +19 -0
  70. package/dist/libraries/react/{chunk-O4SNGQNB.mjs → chunk-CQ27LXPH.mjs} +35 -36
  71. package/dist/libraries/react/chunk-DMU3G7UZ.mjs +17 -0
  72. package/dist/libraries/react/{chunk-ILWLFCTA.mjs → chunk-EOSHPHLH.mjs} +10 -22
  73. package/dist/libraries/react/chunk-IXVPNA4H.mjs +20 -0
  74. package/dist/libraries/react/{chunk-OCZFV7OX.mjs → chunk-JNJ53ZW6.mjs} +103 -55
  75. package/dist/libraries/react/{chunk-PW6WFMLB.mjs → chunk-NJFRQ6T4.mjs} +7 -36
  76. package/dist/libraries/react/chunk-PSE3LKMR.mjs +64 -0
  77. package/dist/libraries/react/{chunk-STABYMUY.mjs → chunk-XDAZD5HF.mjs} +48 -23
  78. package/dist/libraries/react/client/ReactAutumnClient.d.mts +4 -3
  79. package/dist/libraries/react/client/ReactAutumnClient.d.ts +4 -3
  80. package/dist/libraries/react/client/ReactAutumnClient.js +167 -75
  81. package/dist/libraries/react/client/ReactAutumnClient.mjs +3 -2
  82. package/dist/libraries/react/client/clientCompMethods.d.mts +4 -3
  83. package/dist/libraries/react/client/clientCompMethods.d.ts +4 -3
  84. package/dist/libraries/react/client/clientCusMethods.d.mts +4 -3
  85. package/dist/libraries/react/client/clientCusMethods.d.ts +4 -3
  86. package/dist/libraries/react/client/clientEntityMethods.d.mts +4 -3
  87. package/dist/libraries/react/client/clientEntityMethods.d.ts +4 -3
  88. package/dist/libraries/react/client/clientGenMethods.d.mts +4 -3
  89. package/dist/libraries/react/client/clientGenMethods.d.ts +4 -3
  90. package/dist/libraries/react/client/clientReferralMethods.d.mts +4 -3
  91. package/dist/libraries/react/client/clientReferralMethods.d.ts +4 -3
  92. package/dist/libraries/react/client/types/clientGenTypes.d.mts +2 -2
  93. package/dist/libraries/react/client/types/clientGenTypes.d.ts +2 -2
  94. package/dist/libraries/react/componentTypes-HF9MRJPX.d.mts +15 -0
  95. package/dist/libraries/react/componentTypes-HF9MRJPX.d.ts +15 -0
  96. package/dist/libraries/react/{error-CG2LXoa7.d.ts → error-DHbclCVh.d.mts} +1 -0
  97. package/dist/libraries/react/{error-CG2LXoa7.d.mts → error-DHbclCVh.d.ts} +1 -0
  98. package/dist/libraries/react/errorUtils/logAuthError.d.mts +8 -0
  99. package/dist/libraries/react/errorUtils/logAuthError.d.ts +8 -0
  100. package/dist/libraries/react/{hooks/usePricingTableProvider.js → errorUtils/logAuthError.js} +128 -96
  101. package/dist/libraries/react/errorUtils/logAuthError.mjs +21 -0
  102. package/dist/libraries/react/errorUtils/logFetchError.d.mts +8 -0
  103. package/dist/libraries/react/errorUtils/logFetchError.d.ts +8 -0
  104. package/dist/libraries/react/errorUtils/logFetchError.js +42 -0
  105. package/dist/libraries/react/errorUtils/logFetchError.mjs +8 -0
  106. package/dist/libraries/react/hooks/useAutumn.d.mts +2 -2
  107. package/dist/libraries/react/hooks/useAutumn.d.ts +2 -2
  108. package/dist/libraries/react/hooks/useAutumn.js +264 -133
  109. package/dist/libraries/react/hooks/useAutumn.mjs +7 -4
  110. package/dist/libraries/react/hooks/useAutumnBase.d.mts +55 -0
  111. package/dist/libraries/react/hooks/useAutumnBase.d.ts +55 -0
  112. package/dist/libraries/react/hooks/useAutumnBase.js +944 -0
  113. package/dist/libraries/react/hooks/useAutumnBase.mjs +19 -0
  114. package/dist/libraries/react/hooks/useCustomer.d.mts +10 -17
  115. package/dist/libraries/react/hooks/useCustomer.d.ts +10 -17
  116. package/dist/libraries/react/hooks/useCustomer.js +224 -114
  117. package/dist/libraries/react/hooks/useCustomer.mjs +6 -4
  118. package/dist/libraries/react/hooks/useCustomerBase.d.mts +31 -0
  119. package/dist/libraries/react/hooks/useCustomerBase.d.ts +31 -0
  120. package/dist/libraries/react/hooks/{useEntityProvider.js → useCustomerBase.js} +419 -93
  121. package/dist/libraries/react/hooks/useCustomerBase.mjs +18 -0
  122. package/dist/libraries/react/hooks/useEntity.d.mts +4 -4
  123. package/dist/libraries/react/hooks/useEntity.d.ts +4 -4
  124. package/dist/libraries/react/hooks/useEntity.js +215 -140
  125. package/dist/libraries/react/hooks/useEntity.mjs +6 -5
  126. package/dist/libraries/react/hooks/useEntityBase.d.mts +25 -0
  127. package/dist/libraries/react/hooks/useEntityBase.d.ts +25 -0
  128. package/dist/libraries/react/hooks/useEntityBase.js +87 -0
  129. package/dist/libraries/react/hooks/useEntityBase.mjs +8 -0
  130. package/dist/libraries/react/hooks/usePricingTable.d.mts +8 -12
  131. package/dist/libraries/react/hooks/usePricingTable.d.ts +8 -12
  132. package/dist/libraries/react/hooks/usePricingTable.js +211 -113
  133. package/dist/libraries/react/hooks/usePricingTable.mjs +6 -4
  134. package/dist/libraries/react/hooks/usePricingTableBase.d.mts +27 -0
  135. package/dist/libraries/react/hooks/usePricingTableBase.d.ts +27 -0
  136. package/dist/libraries/react/hooks/usePricingTableBase.js +810 -0
  137. package/dist/libraries/react/hooks/usePricingTableBase.mjs +18 -0
  138. package/dist/libraries/react/index.d.mts +8 -5
  139. package/dist/libraries/react/index.d.ts +8 -5
  140. package/dist/libraries/react/index.js +380 -408
  141. package/dist/libraries/react/index.mjs +14 -13
  142. package/dist/libraries/react/{response-B1KyqUB9.d.ts → response-B2MqTR7X.d.ts} +4 -4
  143. package/dist/libraries/react/{response-B5dHU3I9.d.mts → response-By38xiUq.d.mts} +4 -4
  144. package/dist/libraries/react/utils/compareParams.mjs +18 -3
  145. package/dist/next/AutumnProvider.js +2 -2
  146. package/dist/next/AutumnProvider.mjs +2 -2
  147. package/dist/next/client/AutumnClientProvider.d.mts +2 -0
  148. package/dist/next/client/AutumnClientProvider.d.ts +2 -0
  149. package/dist/next/client/NextAutumnClient.d.mts +81 -0
  150. package/dist/next/client/NextAutumnClient.d.ts +81 -0
  151. package/dist/next/client/NextAutumnClient.js +95 -0
  152. package/dist/next/client/NextAutumnClient.mjs +95 -0
  153. package/dist/next/client/NextAutumnProvider.d.mts +10 -0
  154. package/dist/next/client/NextAutumnProvider.d.ts +10 -0
  155. package/dist/next/client/NextAutumnProvider.js +21 -0
  156. package/dist/next/client/NextAutumnProvider.mjs +21 -0
  157. package/dist/next/client/clientEntTypes-ClSxkMvK.d.mts +29 -0
  158. package/dist/next/client/clientEntTypes-DuYXyCN4.d.ts +29 -0
  159. package/dist/next/client/clientGenTypes-BvnGc6fc.d.mts +156 -0
  160. package/dist/next/client/clientGenTypes-F8OKtPMU.d.ts +156 -0
  161. package/dist/next/client/clientReferralTypes-C9JiOk2s.d.mts +20 -0
  162. package/dist/next/client/clientReferralTypes-C9JiOk2s.d.ts +20 -0
  163. package/dist/next/client/clientUtils.d.mts +2 -2
  164. package/dist/next/client/clientUtils.d.ts +2 -2
  165. package/dist/next/client/componentTypes-HF9MRJPX.d.mts +15 -0
  166. package/dist/next/client/componentTypes-HF9MRJPX.d.ts +15 -0
  167. package/dist/next/client/{cusTypes-sh5_cN7N.d.ts → cusTypes-D9vXDh6B.d.mts} +23 -1
  168. package/dist/next/client/{cusTypes-sh5_cN7N.d.mts → cusTypes-D9vXDh6B.d.ts} +23 -1
  169. package/dist/next/client/{entTypes-C9TNWMk6.d.mts → entTypes-C2xwPhrH.d.mts} +5 -2
  170. package/dist/next/client/{entTypes-BDqnMLZ4.d.ts → entTypes-D5Bk72AS.d.ts} +5 -2
  171. package/dist/next/client/error-DHbclCVh.d.mts +17 -0
  172. package/dist/next/client/error-DHbclCVh.d.ts +17 -0
  173. package/dist/next/client/hooks/useAutumn.d.mts +41 -33
  174. package/dist/next/client/hooks/useAutumn.d.ts +41 -33
  175. package/dist/next/client/hooks/useAutumn.js +3 -236
  176. package/dist/next/client/hooks/useAutumn.mjs +3 -236
  177. package/dist/next/client/hooks/useCustomer.d.mts +19 -20
  178. package/dist/next/client/hooks/useCustomer.d.ts +19 -20
  179. package/dist/next/client/hooks/useCustomer.js +6 -120
  180. package/dist/next/client/hooks/useCustomer.mjs +6 -120
  181. package/dist/next/client/hooks/useEntity.d.mts +5 -5
  182. package/dist/next/client/hooks/useEntity.d.ts +5 -5
  183. package/dist/next/client/hooks/useEntity.js +3 -2
  184. package/dist/next/client/hooks/useEntity.mjs +3 -2
  185. package/dist/next/client/hooks/usePricingTable.d.mts +16 -14
  186. package/dist/next/client/hooks/usePricingTable.d.ts +16 -14
  187. package/dist/next/client/hooks/usePricingTable.js +4 -50
  188. package/dist/next/client/hooks/usePricingTable.mjs +4 -50
  189. package/dist/next/client/types.d.mts +2 -2
  190. package/dist/next/client/types.d.ts +2 -2
  191. package/dist/next/index.d.mts +363 -132
  192. package/dist/next/index.d.ts +363 -132
  193. package/dist/next/index.js +13 -8
  194. package/dist/next/index.mjs +6 -4
  195. package/dist/next/server/auth/handleAuthProvider.d.mts +2 -2
  196. package/dist/next/server/auth/handleAuthProvider.d.ts +2 -2
  197. package/dist/next/server/auth/supabase-wrapper.d.mts +1 -3
  198. package/dist/next/server/auth/supabase-wrapper.d.ts +1 -3
  199. package/dist/next/server/auth/{withAuth.d.mts → withNextAuth.d.mts} +1 -1
  200. package/dist/next/server/auth/{withAuth.d.ts → withNextAuth.d.ts} +1 -1
  201. package/dist/next/server/clientEntTypes-CWr4xXQ1.d.mts +14 -0
  202. package/dist/next/server/clientEntTypes-CWr4xXQ1.d.ts +14 -0
  203. package/dist/next/server/componentActions.d.mts +1 -1
  204. package/dist/next/server/componentActions.d.ts +1 -1
  205. package/dist/next/server/componentActions.js +1 -1
  206. package/dist/next/server/componentActions.mjs +1 -1
  207. package/dist/next/server/cusActions.d.mts +213 -14
  208. package/dist/next/server/cusActions.d.ts +213 -14
  209. package/dist/next/server/cusActions.js +12 -22
  210. package/dist/next/server/cusActions.mjs +12 -22
  211. package/dist/next/server/{cusTypes-BD42O-7Z.d.mts → cusTypes-DYgbKGrd.d.mts} +1 -1
  212. package/dist/next/server/{cusTypes-BD42O-7Z.d.ts → cusTypes-DYgbKGrd.d.ts} +1 -1
  213. package/dist/next/server/genActions.d.mts +41 -26
  214. package/dist/next/server/genActions.d.ts +41 -26
  215. package/dist/next/server/genActions.js +14 -62
  216. package/dist/next/server/genActions.mjs +14 -62
  217. package/dist/next/server/{response-BCg7kiiN.d.mts → response-eH4S4sg0.d.mts} +1 -0
  218. package/dist/next/server/{response-BCg7kiiN.d.ts → response-eH4S4sg0.d.ts} +1 -0
  219. package/dist/next/server/utils.d.mts +1 -1
  220. package/dist/next/server/utils.d.ts +1 -1
  221. package/dist/sdk/check.d.mts +3 -3
  222. package/dist/sdk/check.d.ts +3 -3
  223. package/dist/sdk/general.d.mts +3 -3
  224. package/dist/sdk/general.d.ts +3 -3
  225. package/dist/sdk/index.d.mts +9 -4
  226. package/dist/sdk/index.d.ts +9 -4
  227. package/dist/sdk/index.js +106 -71
  228. package/dist/sdk/index.mjs +102 -71
  229. package/dist/utils/chunk-V7R5DCYR.mjs +41 -0
  230. package/dist/utils/encryptUtils.js +103 -55
  231. package/dist/utils/encryptUtils.mjs +69 -55
  232. package/dist/utils/logger.d.mts +45 -0
  233. package/dist/utils/logger.d.ts +45 -0
  234. package/dist/utils/logger.js +75 -0
  235. package/dist/utils/logger.mjs +6 -0
  236. package/dist/utils/toSnakeCase.d.mts +3 -0
  237. package/dist/utils/toSnakeCase.d.ts +3 -0
  238. package/dist/utils/toSnakeCase.js +45 -0
  239. package/dist/utils/toSnakeCase.mjs +20 -0
  240. package/package.json +4 -5
  241. package/tsup.config.ts +1 -6
  242. package/dist/libraries/react/chunk-5LNSASJV.mjs +0 -33
  243. package/dist/libraries/react/chunk-CZA5WF64.mjs +0 -51
  244. package/dist/libraries/react/chunk-PIIGEXKQ.mjs +0 -77
  245. package/dist/libraries/react/chunk-PYM4YPRD.mjs +0 -38
  246. package/dist/libraries/react/chunk-Q5SSQSDP.mjs +0 -48
  247. package/dist/libraries/react/chunk-URAFNMTH.mjs +0 -48
  248. package/dist/libraries/react/chunk-VN4AVW2V.mjs +0 -24
  249. package/dist/libraries/react/hooks/useCustomerProvider.d.mts +0 -28
  250. package/dist/libraries/react/hooks/useCustomerProvider.d.ts +0 -28
  251. package/dist/libraries/react/hooks/useCustomerProvider.js +0 -100
  252. package/dist/libraries/react/hooks/useCustomerProvider.mjs +0 -8
  253. package/dist/libraries/react/hooks/useEntityProvider.d.mts +0 -33
  254. package/dist/libraries/react/hooks/useEntityProvider.d.ts +0 -33
  255. package/dist/libraries/react/hooks/useEntityProvider.mjs +0 -9
  256. package/dist/libraries/react/hooks/usePricingTableProvider.d.mts +0 -19
  257. package/dist/libraries/react/hooks/usePricingTableProvider.d.ts +0 -19
  258. package/dist/libraries/react/hooks/usePricingTableProvider.mjs +0 -9
  259. package/dist/next/client/AutumnContext.d.mts +0 -9
  260. package/dist/next/client/AutumnContext.d.ts +0 -9
  261. package/dist/next/client/AutumnContext.js +0 -47
  262. package/dist/next/client/AutumnContext.mjs +0 -47
  263. package/dist/next/client/AutumnProvider.d.mts +0 -11
  264. package/dist/next/client/AutumnProvider.d.ts +0 -11
  265. package/dist/next/client/AutumnProvider.js +0 -117
  266. package/dist/next/client/AutumnProvider.mjs +0 -117
  267. package/dist/next/client/clientEntTypes-pqnB95m3.d.mts +0 -9
  268. package/dist/next/client/clientEntTypes-pqnB95m3.d.ts +0 -9
  269. package/dist/next/client/hooks/types.d.mts +0 -27
  270. package/dist/next/client/hooks/types.d.ts +0 -27
  271. package/dist/next/client/hooks/useEntityProvider.d.mts +0 -11
  272. package/dist/next/client/hooks/useEntityProvider.d.ts +0 -11
  273. package/dist/next/client/hooks/useEntityProvider.mjs +0 -52
  274. package/dist/next/server/clientEntTypes-B3DRcw3U.d.mts +0 -216
  275. package/dist/next/server/clientEntTypes-BRUTcNUD.d.ts +0 -216
  276. /package/dist/next/client/{hooks/types.js → AutumnClientProvider.js} +0 -0
  277. /package/dist/next/client/{hooks/types.mjs → AutumnClientProvider.mjs} +0 -0
  278. /package/dist/next/server/auth/{withAuth.js → withNextAuth.js} +0 -0
  279. /package/dist/next/server/auth/{withAuth.mjs → withNextAuth.mjs} +0 -0
@@ -1,9 +1,11 @@
1
1
  "use client";
2
2
 
3
3
  "use strict";
4
+ var __create = Object.create;
4
5
  var __defProp = Object.defineProperty;
5
6
  var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
6
7
  var __getOwnPropNames = Object.getOwnPropertyNames;
8
+ var __getProtoOf = Object.getPrototypeOf;
7
9
  var __hasOwnProp = Object.prototype.hasOwnProperty;
8
10
  var __export = (target, all) => {
9
11
  for (var name in all)
@@ -17,6 +19,14 @@ var __copyProps = (to, from, except, desc) => {
17
19
  }
18
20
  return to;
19
21
  };
22
+ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
23
+ // If the importer is in node compatibility mode or this is not an ESM
24
+ // file that has been converted to a CommonJS file using a Babel-
25
+ // compatible transform (i.e. "__esModule" has not been set), then set
26
+ // "default" to the CommonJS "module.exports" for node compatibility.
27
+ isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
28
+ mod
29
+ ));
20
30
  var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
21
31
 
22
32
  // src/libraries/react/index.ts
@@ -30,11 +40,29 @@ __export(index_exports, {
30
40
  });
31
41
  module.exports = __toCommonJS(index_exports);
32
42
 
33
- // src/libraries/react/AutumnContext.tsx
43
+ // src/libraries/react/BaseAutumnProvider.tsx
44
+ var import_react3 = require("react");
45
+
46
+ // src/libraries/react/hooks/useDialog.tsx
34
47
  var import_react = require("react");
48
+ var useDialog = (component) => {
49
+ const [dialogProps, setDialogProps] = (0, import_react.useState)(null);
50
+ const [dialogOpen, setDialogOpen] = (0, import_react.useState)(false);
51
+ (0, import_react.useEffect)(() => {
52
+ if (!dialogOpen) {
53
+ setTimeout(() => {
54
+ setDialogProps(null);
55
+ }, 200);
56
+ }
57
+ }, [dialogOpen]);
58
+ return [dialogProps, setDialogProps, dialogOpen, setDialogOpen];
59
+ };
60
+
61
+ // src/libraries/react/hooks/useCustomerBase.tsx
62
+ var import_swr = __toESM(require("swr"));
35
63
 
36
64
  // src/sdk/error.ts
37
- var AutumnError = class extends Error {
65
+ var AutumnError = class _AutumnError extends Error {
38
66
  message;
39
67
  code;
40
68
  constructor(response) {
@@ -42,6 +70,12 @@ var AutumnError = class extends Error {
42
70
  this.message = response.message;
43
71
  this.code = response.code;
44
72
  }
73
+ static fromError(error) {
74
+ return new _AutumnError({
75
+ message: error.message || "Unknown error",
76
+ code: error.code || "unknown_error"
77
+ });
78
+ }
45
79
  toString() {
46
80
  return `${this.message} (code: ${this.code})`;
47
81
  }
@@ -53,6 +87,53 @@ var AutumnError = class extends Error {
53
87
  }
54
88
  };
55
89
 
90
+ // src/sdk/general/genMethods.ts
91
+ var handleAttach = async ({
92
+ instance,
93
+ params
94
+ }) => {
95
+ return instance.post("/attach", params);
96
+ };
97
+ var handleCancel = async ({
98
+ instance,
99
+ params
100
+ }) => {
101
+ return instance.post("/cancel", params);
102
+ };
103
+ var handleEntitled = async ({
104
+ instance,
105
+ params
106
+ }) => {
107
+ return instance.post("/entitled", params);
108
+ };
109
+ var handleEvent = async ({
110
+ instance,
111
+ params
112
+ }) => {
113
+ return instance.post("/events", params);
114
+ };
115
+ var handleTrack = async ({
116
+ instance,
117
+ params
118
+ }) => {
119
+ return instance.post("/track", params);
120
+ };
121
+ var handleUsage = async ({
122
+ instance,
123
+ params
124
+ }) => {
125
+ return instance.post("/usage", params);
126
+ };
127
+ var handleCheck = async ({
128
+ instance,
129
+ params
130
+ }) => {
131
+ return instance.post("/check", params);
132
+ };
133
+
134
+ // src/libraries/backend/constants.ts
135
+ var autumnApiUrl = "https://api.useautumn.com/v1";
136
+
56
137
  // src/sdk/utils.ts
57
138
  var staticWrapper = (callback, instance, args) => {
58
139
  if (!instance) {
@@ -165,50 +246,6 @@ var deleteEntity = async ({
165
246
  return instance.delete(`/customers/${customer_id}/entities/${entity_id}`);
166
247
  };
167
248
 
168
- // src/sdk/general/genMethods.ts
169
- var handleAttach = async ({
170
- instance,
171
- params
172
- }) => {
173
- return instance.post("/attach", params);
174
- };
175
- var handleCancel = async ({
176
- instance,
177
- params
178
- }) => {
179
- return instance.post("/cancel", params);
180
- };
181
- var handleEntitled = async ({
182
- instance,
183
- params
184
- }) => {
185
- return instance.post("/entitled", params);
186
- };
187
- var handleEvent = async ({
188
- instance,
189
- params
190
- }) => {
191
- return instance.post("/events", params);
192
- };
193
- var handleTrack = async ({
194
- instance,
195
- params
196
- }) => {
197
- return instance.post("/track", params);
198
- };
199
- var handleUsage = async ({
200
- instance,
201
- params
202
- }) => {
203
- return instance.post("/usage", params);
204
- };
205
- var handleCheck = async ({
206
- instance,
207
- params
208
- }) => {
209
- return instance.post("/check", params);
210
- };
211
-
212
249
  // src/sdk/products/prodMethods.ts
213
250
  var productMethods = (instance) => {
214
251
  return {
@@ -270,12 +307,14 @@ var redeemReferralCode = async ({
270
307
  };
271
308
 
272
309
  // src/sdk/response.ts
273
- var toContainerResult = async (response) => {
310
+ var toContainerResult = async ({ response, logger: logger2 }) => {
274
311
  if (response.status < 200 || response.status >= 300) {
275
312
  let error;
276
313
  try {
277
314
  error = await response.json();
315
+ logger2.error(`[Autumn] ${error.message}`);
278
316
  } catch (error2) {
317
+ throw error2;
279
318
  return {
280
319
  data: null,
281
320
  error: new AutumnError({
@@ -302,6 +341,7 @@ var toContainerResult = async (response) => {
302
341
  statusCode: response?.status
303
342
  };
304
343
  } catch (error) {
344
+ throw error;
305
345
  return {
306
346
  data: null,
307
347
  error: new AutumnError({
@@ -313,14 +353,52 @@ var toContainerResult = async (response) => {
313
353
  }
314
354
  };
315
355
 
356
+ // src/utils/logger.ts
357
+ var import_chalk = __toESM(require("chalk"));
358
+ var getTime = () => {
359
+ let timeString = (/* @__PURE__ */ new Date()).toISOString();
360
+ return `[${timeString.split("T")[1].split(".")[0]}]`;
361
+ };
362
+ var greaterThanLevel = (level) => {
363
+ return levels.indexOf(level) >= levels.indexOf(logger.level);
364
+ };
365
+ var levels = ["debug", "info", "warn", "error", "fatal"];
366
+ var logger = {
367
+ ...console,
368
+ level: "info",
369
+ debug: (...args) => {
370
+ if (greaterThanLevel("debug")) {
371
+ console.log(getTime(), import_chalk.default.gray("DEBUG"), ...args);
372
+ }
373
+ },
374
+ log: (...args) => {
375
+ console.log(getTime(), import_chalk.default.blue("INFO"), ...args);
376
+ },
377
+ info: (...args) => {
378
+ if (greaterThanLevel("info")) {
379
+ console.log(getTime(), import_chalk.default.blue("INFO"), ...args);
380
+ }
381
+ },
382
+ warn: (...args) => {
383
+ if (greaterThanLevel("warn")) {
384
+ console.log(getTime(), import_chalk.default.yellow("WARN"), ...args);
385
+ }
386
+ },
387
+ error: (...args) => {
388
+ if (greaterThanLevel("error")) {
389
+ console.log(getTime(), import_chalk.default.red("ERROR"), ...args);
390
+ }
391
+ }
392
+ };
393
+
316
394
  // src/sdk/client.ts
317
395
  var LATEST_API_VERSION = "1.2";
318
396
  var Autumn = class {
319
397
  secretKey;
320
398
  publishableKey;
321
- level;
322
399
  headers;
323
400
  url;
401
+ logger = console;
324
402
  constructor(options) {
325
403
  try {
326
404
  this.secretKey = options?.secretKey || process.env.AUTUMN_SECRET_KEY;
@@ -336,17 +414,15 @@ var Autumn = class {
336
414
  };
337
415
  let version = options?.version || LATEST_API_VERSION;
338
416
  this.headers["x-api-version"] = version;
339
- this.url = options?.url || "https://api.useautumn.com/v1";
340
- this.level = this.secretKey ? "secret" : "publishable";
341
- }
342
- getLevel() {
343
- return this.level;
417
+ this.url = options?.url || autumnApiUrl;
418
+ this.logger = logger;
419
+ this.logger.level = options?.logLevel || "info";
344
420
  }
345
421
  async get(path) {
346
422
  const response = await fetch(`${this.url}${path}`, {
347
423
  headers: this.headers
348
424
  });
349
- return toContainerResult(response);
425
+ return toContainerResult({ response, logger: this.logger });
350
426
  }
351
427
  async post(path, body) {
352
428
  try {
@@ -355,7 +431,7 @@ var Autumn = class {
355
431
  headers: this.headers,
356
432
  body: JSON.stringify(body)
357
433
  });
358
- return toContainerResult(response);
434
+ return toContainerResult({ response, logger: this.logger });
359
435
  } catch (error) {
360
436
  console.error("Error sending request:", error);
361
437
  throw error;
@@ -366,7 +442,7 @@ var Autumn = class {
366
442
  method: "DELETE",
367
443
  headers: this.headers
368
444
  });
369
- return toContainerResult(response);
445
+ return toContainerResult({ response, logger: this.logger });
370
446
  }
371
447
  static customers = customerMethods();
372
448
  static products = productMethods();
@@ -443,6 +519,19 @@ var Autumn = class {
443
519
  }
444
520
  };
445
521
 
522
+ // src/libraries/react/errorUtils/logFetchError.ts
523
+ var logFetchError = ({
524
+ method,
525
+ backendUrl,
526
+ path,
527
+ error
528
+ }) => {
529
+ console.error(`[Autumn] Fetch failed: ${method} ${backendUrl}${path}
530
+
531
+ 1. Check that backendUrl in <AutumnProvider/> is correctly set.
532
+ 2. Check that autumnHandler is correctly registered on your backend.`);
533
+ };
534
+
446
535
  // src/libraries/react/client/clientCompMethods.ts
447
536
  async function getPricingTableMethod() {
448
537
  const res = await this.get("/api/autumn/components/pricing_table");
@@ -573,36 +662,57 @@ var AutumnClient = class {
573
662
  }
574
663
  return headers;
575
664
  }
576
- async handleFetchResult(result) {
577
- let res = await toContainerResult(result);
578
- return res;
665
+ async handleFetch({
666
+ path,
667
+ method,
668
+ body
669
+ }) {
670
+ body = method === "POST" ? JSON.stringify({
671
+ ...body,
672
+ customer_data: this.customerData || void 0
673
+ }) : void 0;
674
+ try {
675
+ const response = await fetch(`${this.backendUrl}${path}`, {
676
+ method,
677
+ body,
678
+ headers: await this.getHeaders(),
679
+ credentials: this.includeCredentials ? "include" : void 0
680
+ });
681
+ return await toContainerResult({ response, logger: console });
682
+ } catch (error) {
683
+ logFetchError({
684
+ method,
685
+ backendUrl: this.backendUrl || "",
686
+ path,
687
+ error
688
+ });
689
+ return {
690
+ data: null,
691
+ error: new AutumnError({
692
+ message: error.message,
693
+ code: "fetch_failed"
694
+ })
695
+ };
696
+ }
579
697
  }
580
698
  async post(path, body) {
581
- const response = await fetch(`${this.backendUrl}${path}`, {
699
+ return await this.handleFetch({
700
+ path,
582
701
  method: "POST",
583
- body: JSON.stringify({
584
- ...body,
585
- customer_data: this.customerData || void 0
586
- }),
587
- headers: await this.getHeaders(),
588
- credentials: this.includeCredentials ? "include" : void 0
702
+ body
589
703
  });
590
- return await this.handleFetchResult(response);
591
704
  }
592
705
  async get(path) {
593
- const response = await fetch(`${this.backendUrl}${path}`, {
594
- method: "GET",
595
- headers: await this.getHeaders(),
596
- credentials: this.includeCredentials ? "include" : void 0
706
+ return await this.handleFetch({
707
+ path,
708
+ method: "GET"
597
709
  });
598
- return await this.handleFetchResult(response);
599
710
  }
600
711
  async delete(path) {
601
- const response = await fetch(`${this.backendUrl}${path}`, {
602
- method: "DELETE",
603
- headers: await this.getHeaders()
712
+ return await this.handleFetch({
713
+ path,
714
+ method: "DELETE"
604
715
  });
605
- return await this.handleFetchResult(response);
606
716
  }
607
717
  async createCustomer(params) {
608
718
  return await createCustomerMethod({
@@ -630,23 +740,11 @@ var AutumnClient = class {
630
740
  };
631
741
 
632
742
  // src/libraries/react/AutumnContext.tsx
633
- var AutumnContext = (0, import_react.createContext)({
634
- customerProvider: null,
635
- pricingTableProvider: {
636
- pricingTableProducts: null,
637
- isLoading: true,
638
- error: null,
639
- refetch: () => Promise.resolve()
640
- },
641
- entityProvider: {
642
- entity: null,
643
- isLoading: true,
644
- error: null,
645
- refetch: () => Promise.resolve(),
646
- lastParams: null
647
- },
743
+ var import_react2 = require("react");
744
+ var AutumnContext = (0, import_react2.createContext)({
745
+ initialized: false,
648
746
  client: new AutumnClient({
649
- backendUrl: "http://localhost:8000"
747
+ backendUrl: process.env.NEXT_PUBLIC_AUTUMN_BACKEND_URL
650
748
  }),
651
749
  paywallDialog: {
652
750
  props: null,
@@ -669,190 +767,72 @@ var AutumnContext = (0, import_react.createContext)({
669
767
  }
670
768
  }
671
769
  });
672
- var useAutumnContext = () => {
673
- const context = (0, import_react.useContext)(AutumnContext);
674
- if (context === void 0) {
675
- throw new Error(
676
- "useAutumnContext must be used within a AutumnContextProvider"
677
- );
770
+ var useAutumnContext = ({
771
+ AutumnContext: AutumnContext2,
772
+ name
773
+ }) => {
774
+ const context = (0, import_react2.useContext)(AutumnContext2);
775
+ if (!context.initialized) {
776
+ throw new Error(`${name} must be used within <AutumnProvider />`);
678
777
  }
679
778
  return context;
680
779
  };
681
780
 
682
- // src/libraries/react/BaseAutumnProvider.tsx
683
- var import_react6 = require("react");
684
-
685
- // src/libraries/react/hooks/useDialog.tsx
686
- var import_react2 = require("react");
687
- var useDialog = (component) => {
688
- const [dialogProps, setDialogProps] = (0, import_react2.useState)(null);
689
- const [dialogOpen, setDialogOpen] = (0, import_react2.useState)(false);
690
- (0, import_react2.useEffect)(() => {
691
- if (!dialogOpen) {
692
- setTimeout(() => {
693
- setDialogProps(null);
694
- }, 200);
695
- }
696
- }, [dialogOpen]);
697
- return [dialogProps, setDialogProps, dialogOpen, setDialogOpen];
698
- };
699
-
700
- // src/libraries/react/hooks/usePricingTableProvider.tsx
701
- var import_react3 = require("react");
702
- var usePricingTableProvider = ({
781
+ // src/libraries/react/hooks/useCustomerBase.tsx
782
+ var useCustomerBase = ({
783
+ params,
784
+ AutumnContext: AutumnContext2,
703
785
  client
704
786
  }) => {
705
- const [pricingTableProducts, setPricingTableProducts] = (0, import_react3.useState)(null);
706
- const [isLoading, setIsLoading] = (0, import_react3.useState)(true);
707
- const [error, setError] = (0, import_react3.useState)(null);
708
- const fetchProducts = async () => {
709
- try {
710
- setIsLoading(true);
711
- const { data, error: error2 } = await client.getPricingTable();
712
- if (error2) {
713
- setError(error2);
714
- setPricingTableProducts(null);
715
- } else {
716
- setPricingTableProducts(data?.list || []);
717
- setError(null);
718
- }
719
- } catch (error2) {
720
- setError(
721
- new AutumnError({
722
- message: "Failed to fetch pricing table products",
723
- code: "failed_to_fetch_pricing_table_products"
724
- })
725
- );
726
- setPricingTableProducts(null);
727
- } finally {
728
- setIsLoading(false);
729
- }
730
- };
731
- return {
732
- pricingTableProducts,
733
- isLoading: isLoading && !pricingTableProducts,
734
- error,
735
- refetch: fetchProducts
736
- };
737
- };
738
-
739
- // src/libraries/react/hooks/useEntityProvider.tsx
740
- var import_react4 = require("react");
741
- var useEntityProvider = ({ client }) => {
742
- const [entity, setEntity] = (0, import_react4.useState)(null);
743
- const [error, setError] = (0, import_react4.useState)(null);
744
- const [isLoading, setIsLoading] = (0, import_react4.useState)(true);
745
- const [lastParams, setLastParams] = (0, import_react4.useState)(null);
746
- const fetchEntity = async ({
747
- entityId,
748
- params
749
- }) => {
750
- if (!entityId) {
751
- console.warn("(Autumn) No entity ID provided in useEntity hook");
752
- return;
753
- }
754
- setIsLoading(true);
755
- setLastParams(params || null);
756
- try {
757
- const { data, error: error2 } = await client.entities.get(entityId, params);
758
- if (error2) {
759
- setError(error2);
760
- setEntity(null);
761
- } else {
762
- setEntity(data);
763
- setError(null);
764
- }
765
- } catch (error2) {
766
- setError(
767
- new AutumnError({
768
- message: error2?.message || "Failed to fetch entity",
769
- code: "entity_fetch_failed"
770
- })
771
- );
772
- }
773
- setIsLoading(false);
774
- };
775
- return { entity, isLoading, error, refetch: fetchEntity, lastParams };
776
- };
777
-
778
- // src/libraries/react/hooks/useCustomerProvider.tsx
779
- var import_react5 = require("react");
780
- function useCustomerProvider(client) {
781
- const [stateMap, setStateMap] = (0, import_react5.useState)({});
782
- const inProgressFetches = (0, import_react5.useRef)({});
783
- const getQueryKey = (params) => {
784
- return JSON.stringify(params || {});
785
- };
786
- const getState = (params) => {
787
- const queryKey = getQueryKey(params);
788
- if (!stateMap[queryKey]) {
789
- return {
790
- customer: null,
791
- isLoading: true,
792
- error: null
793
- };
787
+ const queryKey = ["customer"];
788
+ let context;
789
+ if (AutumnContext2) {
790
+ context = useAutumnContext({ AutumnContext: AutumnContext2, name: "useCustomer" });
791
+ }
792
+ if (!client) {
793
+ client = context.client;
794
+ }
795
+ const fetchCustomer = async () => {
796
+ const { data: data2, error: error2 } = await client.createCustomer({
797
+ errorOnNotFound: params?.errorOnNotFound,
798
+ expand: params?.expand
799
+ });
800
+ if (error2) {
801
+ throw error2;
794
802
  }
795
- return stateMap[queryKey];
796
- };
797
- const refetch = async ({
798
- params,
799
- errorOnNotFound = true
800
- }) => {
801
- const queryKey = getQueryKey(params);
802
- if (inProgressFetches.current[queryKey]) {
803
- return;
803
+ if (!data2) {
804
+ return null;
804
805
  }
805
- inProgressFetches.current[queryKey] = true;
806
- setStateMap((prevState) => ({
807
- ...prevState,
808
- [queryKey]: {
809
- ...prevState[queryKey] || { customer: null },
810
- isLoading: true,
811
- error: null
812
- }
813
- }));
814
- const { data, error } = await client.createCustomer({
815
- expand: params?.expand,
816
- errorOnNotFound
817
- });
818
- let newState = {
819
- customer: data,
820
- isLoading: false,
821
- error
822
- };
823
- setStateMap((prevState) => ({
824
- ...prevState,
825
- [queryKey]: newState
826
- }));
827
- inProgressFetches.current[queryKey] = false;
806
+ return data2;
828
807
  };
829
- const refetchFirstTwo = async () => {
830
- try {
831
- let batchRefetch = [];
832
- for (const key of Object.keys(stateMap)) {
833
- batchRefetch.push(refetch({ params: JSON.parse(key) }));
808
+ const { data, error, isLoading, mutate } = (0, import_swr.default)(queryKey, fetchCustomer, {
809
+ fallbackData: null,
810
+ onErrorRetry: (error2, key, config) => {
811
+ if (error2.code == "entity_not_found") {
812
+ return false;
834
813
  }
835
- await Promise.all(batchRefetch);
836
- } catch (error) {
837
- console.error("Failed to refetch customer (useCustomerProvider)");
838
- console.error(error);
814
+ return true;
839
815
  }
840
- };
816
+ });
841
817
  return {
842
- // stateMap,
843
- getState,
844
- refetch,
845
- refetchFirstTwo
818
+ customer: error ? null : data,
819
+ isLoading,
820
+ error,
821
+ refetch: mutate,
822
+ createEntity: client.entities.create,
823
+ createReferralCode: client.referrals.createCode,
824
+ redeemReferralCode: client.referrals.redeemCode
846
825
  };
847
- }
826
+ };
848
827
 
849
828
  // src/libraries/react/BaseAutumnProvider.tsx
850
829
  var import_jsx_runtime = require("react/jsx-runtime");
851
830
  function BaseAutumnProvider({
852
831
  client,
853
- children
832
+ children,
833
+ AutumnContext: AutumnContext2
854
834
  }) {
855
- const [components, setComponents] = (0, import_react6.useState)({});
835
+ const [components, setComponents] = (0, import_react3.useState)({});
856
836
  const [paywallProps, setPaywallProps, paywallOpen, setPaywallOpen] = useDialog(components.paywallDialog);
857
837
  const [
858
838
  productChangeProps,
@@ -860,33 +840,12 @@ function BaseAutumnProvider({
860
840
  productChangeOpen,
861
841
  setProductChangeOpen
862
842
  ] = useDialog(components.productChangeDialog);
863
- const customerProvider = useCustomerProvider(client);
864
- const entityProvider = useEntityProvider({ client });
865
- const {
866
- pricingTableProducts,
867
- isLoading: pricingTableLoading,
868
- error: pricingTableError,
869
- refetch
870
- } = usePricingTableProvider({
871
- client
872
- });
873
- (0, import_react6.useEffect)(() => {
874
- customerProvider.refetch({
875
- errorOnNotFound: false
876
- });
877
- }, []);
843
+ useCustomerBase({ client, params: { errorOnNotFound: false } });
878
844
  return /* @__PURE__ */ (0, import_jsx_runtime.jsxs)(
879
- AutumnContext.Provider,
845
+ AutumnContext2.Provider,
880
846
  {
881
847
  value: {
882
- customerProvider,
883
- entityProvider,
884
- pricingTableProvider: {
885
- pricingTableProducts,
886
- isLoading: pricingTableLoading,
887
- error: pricingTableError,
888
- refetch
889
- },
848
+ initialized: true,
890
849
  client,
891
850
  paywallDialog: {
892
851
  props: paywallProps,
@@ -945,48 +904,88 @@ var ReactAutumnProvider = ({
945
904
  customerData,
946
905
  includeCredentials = true
947
906
  }) => {
907
+ if (backendUrl && !backendUrl.startsWith("http")) {
908
+ console.warn(`backendUrl is not a valid URL: ${backendUrl}`);
909
+ }
948
910
  let client = new AutumnClient({
949
- backendUrl,
911
+ backendUrl: backendUrl || "",
950
912
  getBearerToken,
951
913
  customerData,
952
914
  includeCredentials
953
915
  });
954
- return /* @__PURE__ */ (0, import_jsx_runtime2.jsx)(BaseAutumnProvider, { client, children });
916
+ return /* @__PURE__ */ (0, import_jsx_runtime2.jsx)(BaseAutumnProvider, { client, AutumnContext, children });
955
917
  };
956
918
 
957
919
  // src/libraries/react/hooks/useCustomer.tsx
958
- var import_react7 = require("react");
959
920
  var useCustomer = (params) => {
960
- const { customerProvider, client } = useAutumnContext();
961
- const { getState, refetch } = customerProvider;
962
- const { customer, isLoading, error } = getState(params);
963
- (0, import_react7.useEffect)(() => {
964
- if (!customer) {
965
- refetch({ params });
921
+ return useCustomerBase({
922
+ params,
923
+ AutumnContext
924
+ });
925
+ };
926
+
927
+ // src/libraries/react/hooks/usePricingTableBase.tsx
928
+ var import_swr2 = __toESM(require("swr"));
929
+ var mergeProductDetails = (products, productDetails) => {
930
+ if (!products) {
931
+ return null;
932
+ }
933
+ if (!productDetails) {
934
+ return products;
935
+ }
936
+ let mergedProducts = structuredClone(products);
937
+ for (const product of productDetails) {
938
+ let index = mergedProducts.findIndex((p) => p.id === product.id);
939
+ if (index == -1) {
940
+ console.warn(`Product with id ${product.id} not found`);
941
+ continue;
966
942
  }
967
- }, []);
943
+ mergedProducts[index] = {
944
+ ...mergedProducts[index],
945
+ ...product
946
+ };
947
+ }
948
+ return mergedProducts;
949
+ };
950
+ var usePricingTableBase = ({
951
+ AutumnContext: AutumnContext2,
952
+ params
953
+ }) => {
954
+ const context = useAutumnContext({ AutumnContext: AutumnContext2, name: "usePricingTable" });
955
+ const fetcher = async () => {
956
+ try {
957
+ const { data: data2, error: error2 } = await context.client.getPricingTable();
958
+ if (error2) throw error2;
959
+ return data2?.list || [];
960
+ } catch (error2) {
961
+ throw new AutumnError({
962
+ message: "Failed to fetch pricing table products",
963
+ code: "failed_to_fetch_pricing_table_products"
964
+ });
965
+ }
966
+ };
967
+ const { data, error, mutate } = (0, import_swr2.default)(
968
+ "pricing-table",
969
+ fetcher
970
+ );
968
971
  return {
969
- customer,
970
- isLoading: isLoading && !customer,
972
+ products: mergeProductDetails(data || void 0, params?.productDetails),
973
+ isLoading: !error && !data,
971
974
  error,
972
- refetch: async () => {
973
- await refetch({ params });
974
- },
975
- createEntity: client.entities.create,
976
- createReferralCode: client.referrals.createCode,
977
- redeemReferralCode: client.referrals.redeemCode
975
+ refetch: mutate
978
976
  };
979
977
  };
980
978
 
981
- // src/libraries/react/hooks/useAutumn.tsx
982
- var useAutumn = () => {
983
- const { client } = useAutumnContext();
984
- const {
985
- prodChangeDialog,
986
- paywallDialog,
987
- pricingTableProvider,
988
- customerProvider
989
- } = useAutumnContext();
979
+ // src/libraries/react/hooks/useAutumnBase.tsx
980
+ var useAutumnBase = ({
981
+ AutumnContext: AutumnContext2
982
+ }) => {
983
+ const context = useAutumnContext({ AutumnContext: AutumnContext2, name: "useAutumn" });
984
+ const { prodChangeDialog, paywallDialog } = context;
985
+ const client = context.client;
986
+ const { refetch: refetchPricingTable } = usePricingTableBase({
987
+ AutumnContext: AutumnContext2
988
+ });
990
989
  let {
991
990
  setProps: setProdChangeDialogProps,
992
991
  setOpen: setProdChangeDialogOpen,
@@ -998,23 +997,20 @@ var useAutumn = () => {
998
997
  setComponent: setPaywallComponent
999
998
  } = paywallDialog;
1000
999
  const attachWithDialog = async (params) => {
1001
- const attachWithoutDialog = async (options) => {
1002
- let { dialog, ...rest } = params;
1003
- return await attach(rest);
1004
- };
1000
+ let { dialog, ...rest } = params;
1005
1001
  const { productId, entityId, entityData } = params;
1006
1002
  const checkRes = await client.check({
1007
1003
  productId,
1008
1004
  entityId,
1009
1005
  entityData,
1010
- withPreview: "formatted"
1006
+ withPreview: true
1011
1007
  });
1012
1008
  if (checkRes.error) {
1013
1009
  return checkRes;
1014
1010
  }
1015
1011
  let preview = checkRes.data.preview;
1016
1012
  if (!preview) {
1017
- return await attachWithoutDialog();
1013
+ return await attach(rest);
1018
1014
  } else {
1019
1015
  setProdChangeDialogProps({
1020
1016
  preview
@@ -1024,7 +1020,7 @@ var useAutumn = () => {
1024
1020
  return checkRes;
1025
1021
  };
1026
1022
  const attach = async (params) => {
1027
- const { dialog, callback, openInNewTab } = params;
1023
+ const { dialog, openInNewTab } = params;
1028
1024
  if (dialog) {
1029
1025
  setProdChangeComponent(dialog);
1030
1026
  return await attachWithDialog(params);
@@ -1041,18 +1037,7 @@ var useAutumn = () => {
1041
1037
  window.location.href = data.checkout_url;
1042
1038
  }
1043
1039
  }
1044
- try {
1045
- await callback?.();
1046
- } catch (error) {
1047
- return result;
1048
- }
1049
- await Promise.all([
1050
- pricingTableProvider.pricingTableProducts ? pricingTableProvider.refetch().catch((error) => {
1051
- console.warn("Failed to refetch pricing table data");
1052
- console.warn(error);
1053
- }) : Promise.resolve(),
1054
- customerProvider.refetchFirstTwo()
1055
- ]);
1040
+ await refetchPricingTable();
1056
1041
  if (setProdChangeDialogOpen) {
1057
1042
  setProdChangeDialogOpen(false);
1058
1043
  }
@@ -1072,7 +1057,7 @@ var useAutumn = () => {
1072
1057
  }
1073
1058
  const res = await client.check({
1074
1059
  ...params,
1075
- withPreview: withPreview || dialog ? "formatted" : void 0
1060
+ withPreview: withPreview || dialog ? true : false
1076
1061
  });
1077
1062
  if (res.error) {
1078
1063
  return res;
@@ -1080,9 +1065,7 @@ var useAutumn = () => {
1080
1065
  let data = res.data;
1081
1066
  if (data && data.preview && dialog) {
1082
1067
  let preview = data.preview;
1083
- setPaywallDialogProps({
1084
- preview
1085
- });
1068
+ setPaywallDialogProps({ preview });
1086
1069
  setPaywallDialogOpen(true);
1087
1070
  }
1088
1071
  return res;
@@ -1095,13 +1078,24 @@ var useAutumn = () => {
1095
1078
  return res;
1096
1079
  };
1097
1080
  const openBillingPortal = async (params) => {
1098
- const res = await client.openBillingPortal(params);
1081
+ let defaultParams = {
1082
+ openInNewTab: false
1083
+ };
1084
+ let finalParams = {
1085
+ ...defaultParams,
1086
+ ...params
1087
+ };
1088
+ const res = await client.openBillingPortal(finalParams);
1099
1089
  if (res.error) {
1100
1090
  return res;
1101
1091
  }
1102
1092
  let data = res.data;
1103
1093
  if (data?.url && typeof window !== "undefined") {
1104
- window.open(data.url, "_blank");
1094
+ if (finalParams.openInNewTab) {
1095
+ window.open(data.url, "_blank");
1096
+ } else {
1097
+ window.open(data.url, "_self");
1098
+ }
1105
1099
  return res;
1106
1100
  } else {
1107
1101
  return res;
@@ -1116,92 +1110,70 @@ var useAutumn = () => {
1116
1110
  };
1117
1111
  };
1118
1112
 
1113
+ // src/libraries/react/hooks/useAutumn.tsx
1114
+ var useAutumn = () => {
1115
+ return useAutumnBase({ AutumnContext });
1116
+ };
1117
+
1119
1118
  // src/libraries/react/hooks/usePricingTable.tsx
1120
- var import_react8 = require("react");
1121
- var mergeProductDetails = (products, productDetails) => {
1122
- if (!products) {
1123
- return null;
1124
- }
1125
- if (!productDetails) {
1126
- return products;
1127
- }
1128
- let mergedProducts = structuredClone(products);
1129
- for (const product of productDetails) {
1130
- let index = mergedProducts.findIndex((p) => p.id === product.id);
1131
- if (index == -1) {
1132
- console.warn(`Product with id ${product.id} not found`);
1133
- continue;
1119
+ var usePricingTable = (params) => {
1120
+ return usePricingTableBase({
1121
+ AutumnContext,
1122
+ params
1123
+ });
1124
+ };
1125
+
1126
+ // src/libraries/react/hooks/useEntityBase.tsx
1127
+ var import_swr3 = __toESM(require("swr"));
1128
+ var import_react4 = require("react");
1129
+ var useEntityBase = ({
1130
+ entityId,
1131
+ params,
1132
+ AutumnContext: AutumnContext2
1133
+ }) => {
1134
+ const { client } = (0, import_react4.useContext)(AutumnContext2);
1135
+ const queryKey = ["entity", entityId, params?.expand];
1136
+ const fetchEntity = async () => {
1137
+ if (!entityId) {
1138
+ return null;
1134
1139
  }
1135
- mergedProducts[index] = {
1136
- ...mergedProducts[index],
1137
- ...product
1140
+ const { data: data2, error: error2 } = await client.entities.get(entityId, params);
1141
+ if (error2) {
1142
+ throw error2;
1143
+ }
1144
+ if (!data2) {
1145
+ return null;
1146
+ }
1147
+ return data2;
1148
+ };
1149
+ const { data, error, isLoading, mutate } = (0, import_swr3.default)(queryKey, fetchEntity, {
1150
+ fallbackData: null,
1151
+ onErrorRetry: (error2, key, config) => {
1152
+ if (error2.code == "entity_not_found") {
1153
+ return false;
1154
+ }
1155
+ return true;
1156
+ }
1157
+ });
1158
+ if (!entityId) {
1159
+ return {
1160
+ entity: null,
1161
+ isLoading: false,
1162
+ error: null,
1163
+ refetch: mutate
1138
1164
  };
1139
1165
  }
1140
- return mergedProducts;
1141
- };
1142
- var usePricingTable = (options) => {
1143
- const { pricingTableProvider } = useAutumnContext();
1144
- const { pricingTableProducts, isLoading, error, refetch } = pricingTableProvider;
1145
- (0, import_react8.useEffect)(() => {
1146
- if (!pricingTableProducts) {
1147
- refetch();
1148
- }
1149
- }, [pricingTableProducts]);
1150
1166
  return {
1151
- products: mergeProductDetails(
1152
- pricingTableProducts || void 0,
1153
- options?.productDetails
1154
- ),
1155
- isLoading: isLoading && !pricingTableProducts,
1167
+ entity: error ? null : data,
1168
+ isLoading,
1156
1169
  error,
1157
- refetch
1170
+ refetch: mutate
1158
1171
  };
1159
1172
  };
1160
1173
 
1161
- // src/libraries/react/hooks/useEntity.tsx
1162
- var import_react9 = require("react");
1163
-
1164
- // src/libraries/react/utils/compareParams.ts
1165
- var compareParams = (a, b) => {
1166
- if (a === b) return true;
1167
- if (a === null || b === null) return false;
1168
- if (typeof a !== "object" || typeof b !== "object") return false;
1169
- if (Array.isArray(a) && Array.isArray(b)) {
1170
- if (a.length !== b.length) return false;
1171
- return a.every((item, index) => compareParams(item, b[index]));
1172
- }
1173
- const keysA = Object.keys(a);
1174
- const keysB = Object.keys(b);
1175
- if (keysA.length !== keysB.length) return false;
1176
- return keysA.every((key) => {
1177
- if (!Object.prototype.hasOwnProperty.call(b, key)) return false;
1178
- return compareParams(a[key], b[key]);
1179
- });
1180
- };
1181
-
1182
1174
  // src/libraries/react/hooks/useEntity.tsx
1183
1175
  var useEntity = (entityId, params) => {
1184
- const { entityProvider } = useAutumnContext();
1185
- const {
1186
- entity,
1187
- isLoading,
1188
- error,
1189
- refetch: refetchEntity,
1190
- lastParams
1191
- } = entityProvider;
1192
- (0, import_react9.useEffect)(() => {
1193
- if (entityId !== entity?.id || !compareParams(params, lastParams)) {
1194
- refetchEntity({ entityId, params });
1195
- }
1196
- }, [entityId]);
1197
- return {
1198
- entity,
1199
- isLoading: isLoading && !entity,
1200
- error,
1201
- refetch: async (params2) => {
1202
- await refetchEntity({ entityId, params: params2 });
1203
- }
1204
- };
1176
+ return useEntityBase({ AutumnContext, entityId, params });
1205
1177
  };
1206
1178
  // Annotate the CommonJS export names for ESM import in node:
1207
1179
  0 && (module.exports = {