autumn-js 0.0.81 → 0.0.82

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 (163) hide show
  1. package/dist/libraries/backend/better-auth.js +18 -2
  2. package/dist/libraries/backend/better-auth.mjs +7 -7
  3. package/dist/libraries/backend/{chunk-6YOFMAEQ.mjs → chunk-52OTZ4SQ.mjs} +16 -6
  4. package/dist/libraries/backend/{chunk-HDGYVYU5.mjs → chunk-A46IKTLH.mjs} +1 -1
  5. package/dist/libraries/backend/{chunk-7NHMUGUP.mjs → chunk-DG3FZZQH.mjs} +1 -1
  6. package/dist/libraries/backend/{chunk-MIWNIVVB.mjs → chunk-J3QM5KFT.mjs} +1 -1
  7. package/dist/libraries/backend/{chunk-PCYIWHGN.mjs → chunk-UJQBHXII.mjs} +1 -1
  8. package/dist/libraries/backend/{chunk-3VWJMYUQ.mjs → chunk-VCEQ3QBX.mjs} +8 -2
  9. package/dist/libraries/backend/{chunk-CPLIRBCA.mjs → chunk-WDRHQJKV.mjs} +1 -1
  10. package/dist/libraries/backend/express.js +18 -2
  11. package/dist/libraries/backend/express.mjs +7 -7
  12. package/dist/libraries/backend/fastify.js +18 -2
  13. package/dist/libraries/backend/fastify.mjs +7 -7
  14. package/dist/libraries/backend/hono.js +18 -2
  15. package/dist/libraries/backend/hono.mjs +7 -7
  16. package/dist/libraries/backend/next.js +18 -2
  17. package/dist/libraries/backend/next.mjs +7 -7
  18. package/dist/libraries/backend/react-router.js +18 -2
  19. package/dist/libraries/backend/react-router.mjs +7 -7
  20. package/dist/libraries/backend/remix_dep.js +18 -2
  21. package/dist/libraries/backend/remix_dep.mjs +7 -7
  22. package/dist/libraries/backend/routes/backendRouter.js +18 -2
  23. package/dist/libraries/backend/routes/backendRouter.mjs +7 -7
  24. package/dist/libraries/backend/routes/entityRoutes.js +8 -2
  25. package/dist/libraries/backend/routes/entityRoutes.mjs +3 -3
  26. package/dist/libraries/backend/routes/genRoutes.js +8 -2
  27. package/dist/libraries/backend/routes/genRoutes.mjs +3 -3
  28. package/dist/libraries/backend/routes/productRoutes.js +8 -2
  29. package/dist/libraries/backend/routes/productRoutes.mjs +3 -3
  30. package/dist/libraries/backend/routes/referralRoutes.js +8 -2
  31. package/dist/libraries/backend/routes/referralRoutes.mjs +3 -3
  32. package/dist/libraries/backend/supabase.js +18 -2
  33. package/dist/libraries/backend/supabase.mjs +7 -7
  34. package/dist/libraries/backend/tanstack.js +18 -2
  35. package/dist/libraries/backend/tanstack.mjs +7 -7
  36. package/dist/libraries/backend/utils/backendRes.js +8 -2
  37. package/dist/libraries/backend/utils/backendRes.mjs +1 -1
  38. package/dist/libraries/backend/utils/withAuth.js +8 -2
  39. package/dist/libraries/backend/utils/withAuth.mjs +2 -2
  40. package/dist/libraries/react/AutumnContext.d.mts +4 -4
  41. package/dist/libraries/react/AutumnContext.d.ts +4 -4
  42. package/dist/libraries/react/AutumnContext.js +83 -5
  43. package/dist/libraries/react/AutumnContext.mjs +7 -7
  44. package/dist/libraries/react/BaseAutumnProvider.d.mts +4 -4
  45. package/dist/libraries/react/BaseAutumnProvider.d.ts +4 -4
  46. package/dist/libraries/react/BaseAutumnProvider.js +83 -5
  47. package/dist/libraries/react/BaseAutumnProvider.mjs +11 -11
  48. package/dist/libraries/react/{ReactAutumnClient-DglSetDZ.d.mts → ReactAutumnClient-Cj2h9TXJ.d.mts} +15 -5
  49. package/dist/libraries/react/{ReactAutumnClient-CD6wjJoS.d.ts → ReactAutumnClient-DS-MPWXt.d.ts} +15 -5
  50. package/dist/libraries/react/ReactAutumnProvider.d.mts +1 -1
  51. package/dist/libraries/react/ReactAutumnProvider.d.ts +1 -1
  52. package/dist/libraries/react/ReactAutumnProvider.js +84 -13
  53. package/dist/libraries/react/ReactAutumnProvider.mjs +12 -12
  54. package/dist/libraries/react/{chunk-6XKT4CR3.mjs → chunk-6ULRUGQO.mjs} +2 -2
  55. package/dist/libraries/react/{chunk-4DZUJMZF.mjs → chunk-CQMTU2M4.mjs} +2 -2
  56. package/dist/libraries/react/{chunk-KOX2RKIK.mjs → chunk-EWMKQDQ6.mjs} +2 -2
  57. package/dist/libraries/react/{chunk-ELPGPLUJ.mjs → chunk-GEIECHWI.mjs} +2 -2
  58. package/dist/libraries/react/{chunk-XNJDRLWX.mjs → chunk-JOY6LN3M.mjs} +2 -2
  59. package/dist/libraries/react/chunk-JVCOY7ZL.mjs +22 -0
  60. package/dist/libraries/react/{chunk-ZLYUPJN5.mjs → chunk-KVGD37VB.mjs} +3 -3
  61. package/dist/libraries/react/{chunk-DSHLYZWS.mjs → chunk-L55GLFAX.mjs} +1 -1
  62. package/dist/libraries/react/{chunk-DFKCNRXM.mjs → chunk-MH2YTNJL.mjs} +1 -1
  63. package/dist/libraries/react/{chunk-LLOLCHBX.mjs → chunk-S4VDT54B.mjs} +2 -2
  64. package/dist/libraries/react/{chunk-QEYI3IGZ.mjs → chunk-SCT4E6YW.mjs} +2 -2
  65. package/dist/libraries/react/{chunk-RRXCG32N.mjs → chunk-UDRQNZZS.mjs} +255 -48
  66. package/dist/libraries/react/{chunk-I2TAKPWB.mjs → chunk-UO2PX7P3.mjs} +4 -11
  67. package/dist/libraries/react/{chunk-EI2TXOE2.mjs → chunk-W2ZI3EI4.mjs} +7 -7
  68. package/dist/libraries/react/client/ReactAutumnClient.d.mts +4 -4
  69. package/dist/libraries/react/client/ReactAutumnClient.d.ts +4 -4
  70. package/dist/libraries/react/client/ReactAutumnClient.js +83 -5
  71. package/dist/libraries/react/client/ReactAutumnClient.mjs +6 -6
  72. package/dist/libraries/react/client/clientCompMethods.d.mts +4 -4
  73. package/dist/libraries/react/client/clientCompMethods.d.ts +4 -4
  74. package/dist/libraries/react/client/clientCusMethods.d.mts +4 -4
  75. package/dist/libraries/react/client/clientCusMethods.d.ts +4 -4
  76. package/dist/libraries/react/client/clientEntityMethods.d.mts +4 -4
  77. package/dist/libraries/react/client/clientEntityMethods.d.ts +4 -4
  78. package/dist/libraries/react/client/clientGenMethods.d.mts +4 -4
  79. package/dist/libraries/react/client/clientGenMethods.d.ts +4 -4
  80. package/dist/libraries/react/client/clientProdMethods.d.mts +4 -4
  81. package/dist/libraries/react/client/clientProdMethods.d.ts +4 -4
  82. package/dist/libraries/react/client/clientReferralMethods.d.mts +4 -4
  83. package/dist/libraries/react/client/clientReferralMethods.d.ts +4 -4
  84. package/dist/libraries/react/components/attach-dialog/attach-dialog-synced.d.mts +1 -1
  85. package/dist/libraries/react/components/attach-dialog/attach-dialog-synced.d.ts +1 -1
  86. package/dist/libraries/react/components/attach-dialog/attach-dialog-synced.js +94 -17
  87. package/dist/libraries/react/components/attach-dialog/attach-dialog-synced.mjs +19 -19
  88. package/dist/libraries/react/components/attach-dialog/lib/attach-content.d.mts +1 -1
  89. package/dist/libraries/react/components/attach-dialog/lib/attach-content.d.ts +1 -1
  90. package/dist/libraries/react/components/check-dialog/check-dialog-synced.d.mts +1 -1
  91. package/dist/libraries/react/components/check-dialog/check-dialog-synced.d.ts +1 -1
  92. package/dist/libraries/react/components/check-dialog/lib/check-content.d.mts +1 -1
  93. package/dist/libraries/react/components/check-dialog/lib/check-content.d.ts +1 -1
  94. package/dist/libraries/react/components/pricing-table/pricing-table-synced.d.mts +1 -1
  95. package/dist/libraries/react/components/pricing-table/pricing-table-synced.d.ts +1 -1
  96. package/dist/libraries/react/components/pricing-table/pricing-table-synced.js +105 -28
  97. package/dist/libraries/react/components/pricing-table/pricing-table-synced.mjs +19 -19
  98. package/dist/libraries/react/components/ui/button.d.mts +1 -1
  99. package/dist/libraries/react/components/ui/button.d.ts +1 -1
  100. package/dist/libraries/react/{cusTypes-JFEvVZLp.d.ts → cusTypes-CO4FwQ_s.d.mts} +1 -1
  101. package/dist/libraries/react/{cusTypes-JFEvVZLp.d.mts → cusTypes-CO4FwQ_s.d.ts} +1 -1
  102. package/dist/libraries/react/{entTypes-CIemXnyX.d.mts → entTypes-DPTZOorv.d.mts} +1 -1
  103. package/dist/libraries/react/{entTypes-CJ3jqOWR.d.ts → entTypes-UxZ5bRqE.d.ts} +1 -1
  104. package/dist/libraries/react/errorUtils/logAuthError.d.mts +1 -6
  105. package/dist/libraries/react/errorUtils/logAuthError.d.ts +1 -6
  106. package/dist/libraries/react/errorUtils/logAuthError.js +10 -490
  107. package/dist/libraries/react/errorUtils/logAuthError.mjs +2 -15
  108. package/dist/libraries/react/hooks/handleAllowed.d.mts +2 -2
  109. package/dist/libraries/react/hooks/handleAllowed.d.ts +2 -2
  110. package/dist/libraries/react/hooks/useAutumn.d.mts +2 -2
  111. package/dist/libraries/react/hooks/useAutumn.d.ts +2 -2
  112. package/dist/libraries/react/hooks/useAutumn.js +83 -5
  113. package/dist/libraries/react/hooks/useAutumn.mjs +10 -10
  114. package/dist/libraries/react/hooks/useAutumnBase.d.mts +4 -4
  115. package/dist/libraries/react/hooks/useAutumnBase.d.ts +4 -4
  116. package/dist/libraries/react/hooks/useAutumnBase.js +83 -5
  117. package/dist/libraries/react/hooks/useAutumnBase.mjs +9 -9
  118. package/dist/libraries/react/hooks/useCustomer.d.mts +4 -4
  119. package/dist/libraries/react/hooks/useCustomer.d.ts +4 -4
  120. package/dist/libraries/react/hooks/useCustomer.js +83 -5
  121. package/dist/libraries/react/hooks/useCustomer.mjs +11 -11
  122. package/dist/libraries/react/hooks/useCustomerBase.d.mts +4 -4
  123. package/dist/libraries/react/hooks/useCustomerBase.d.ts +4 -4
  124. package/dist/libraries/react/hooks/useCustomerBase.js +83 -5
  125. package/dist/libraries/react/hooks/useCustomerBase.mjs +10 -10
  126. package/dist/libraries/react/hooks/useEntity.d.mts +3 -3
  127. package/dist/libraries/react/hooks/useEntity.d.ts +3 -3
  128. package/dist/libraries/react/hooks/useEntity.js +83 -5
  129. package/dist/libraries/react/hooks/useEntity.mjs +11 -11
  130. package/dist/libraries/react/hooks/useEntityBase.d.mts +4 -4
  131. package/dist/libraries/react/hooks/useEntityBase.d.ts +4 -4
  132. package/dist/libraries/react/hooks/useEntityBase.js +83 -5
  133. package/dist/libraries/react/hooks/useEntityBase.mjs +10 -10
  134. package/dist/libraries/react/hooks/usePricingTable.d.mts +1 -1
  135. package/dist/libraries/react/hooks/usePricingTable.d.ts +1 -1
  136. package/dist/libraries/react/hooks/usePricingTable.js +83 -5
  137. package/dist/libraries/react/hooks/usePricingTable.mjs +9 -9
  138. package/dist/libraries/react/hooks/usePricingTableBase.d.mts +4 -4
  139. package/dist/libraries/react/hooks/usePricingTableBase.d.ts +4 -4
  140. package/dist/libraries/react/hooks/usePricingTableBase.js +83 -5
  141. package/dist/libraries/react/hooks/usePricingTableBase.mjs +8 -8
  142. package/dist/libraries/react/hooks/useProductsBase.js +83 -5
  143. package/dist/libraries/react/hooks/useProductsBase.mjs +7 -7
  144. package/dist/libraries/react/index.js +108 -37
  145. package/dist/libraries/react/index.mjs +86 -15
  146. package/dist/libraries/react/{response-CCcWrbaE.d.mts → response-CxtkXvb4.d.mts} +2 -2
  147. package/dist/libraries/react/{response-BIBRaj58.d.ts → response-Z4Yeokd8.d.ts} +2 -2
  148. package/dist/next/client/NextAutumnClient.d.mts +12 -2
  149. package/dist/next/client/NextAutumnClient.d.ts +12 -2
  150. package/dist/next/client/hooks/useAutumn.d.mts +2 -2
  151. package/dist/next/client/hooks/useAutumn.d.ts +2 -2
  152. package/dist/next/client/hooks/useEntity.d.mts +1 -1
  153. package/dist/next/client/hooks/useEntity.d.ts +1 -1
  154. package/dist/next/index.d.mts +12 -2
  155. package/dist/next/index.d.ts +12 -2
  156. package/dist/sdk/index.d.mts +2 -1
  157. package/dist/sdk/index.d.ts +2 -1
  158. package/dist/sdk/index.js +8 -2
  159. package/dist/sdk/index.mjs +8 -2
  160. package/dist/utils/encryptUtils.js +8 -2
  161. package/dist/utils/encryptUtils.mjs +8 -2
  162. package/package.json +1 -1
  163. package/dist/libraries/react/chunk-ET534E5H.mjs +0 -152
@@ -36,6 +36,22 @@ __export(useAutumn_exports, {
36
36
  });
37
37
  module.exports = __toCommonJS(useAutumn_exports);
38
38
 
39
+ // src/libraries/react/errorUtils/logAuthError.ts
40
+ var logAuthError = async (response) => {
41
+ if (response.status === 401) {
42
+ let clonedResponse = response.clone();
43
+ let data = await clonedResponse.json();
44
+ if (data.message.includes("Missing authorization header")) {
45
+ console.error(`[Autumn] Missing authorization header.
46
+
47
+ Use the getBearerToken prop in <AutumnProvider /> to set the authorization header.
48
+ https://docs.useautumn.com/quickstart/quickstart#5-set-up-autumnprovider`);
49
+ return true;
50
+ }
51
+ }
52
+ return false;
53
+ };
54
+
39
55
  // src/sdk/error.ts
40
56
  var AutumnError = class _AutumnError extends Error {
41
57
  message;
@@ -288,12 +304,18 @@ var redeemReferralCode = async ({
288
304
  };
289
305
 
290
306
  // src/sdk/response.ts
291
- var toContainerResult = async ({ response, logger: logger2 }) => {
307
+ var toContainerResult = async ({
308
+ response,
309
+ logger: logger2,
310
+ logError = true
311
+ }) => {
292
312
  if (response.status < 200 || response.status >= 300) {
293
313
  let error;
294
314
  try {
295
315
  error = await response.json();
296
- logger2.error(`[Autumn] ${error.message}`);
316
+ if (logError) {
317
+ logger2.error(`[Autumn] ${error.message}`);
318
+ }
297
319
  } catch (error2) {
298
320
  throw error2;
299
321
  return {
@@ -639,7 +661,8 @@ var AutumnClient = class {
639
661
  getBearerToken;
640
662
  customerData;
641
663
  includeCredentials;
642
- // protected readonly pathPrefix?: string;
664
+ corsDetected;
665
+ corsSupportsCredentials;
643
666
  constructor({
644
667
  backendUrl,
645
668
  getBearerToken,
@@ -651,6 +674,55 @@ var AutumnClient = class {
651
674
  this.customerData = customerData;
652
675
  this.includeCredentials = includeCredentials;
653
676
  }
677
+ /**
678
+ * Detects if the backend supports CORS credentials by making an OPTIONS request
679
+ */
680
+ async detectCors() {
681
+ const testEndpoint = `${this.backendUrl}/api/autumn/cors`;
682
+ try {
683
+ await fetch(testEndpoint, {
684
+ method: "POST",
685
+ credentials: "include",
686
+ headers: { "Content-Type": "application/json" }
687
+ });
688
+ return { valid: true, includeCredentials: true };
689
+ } catch (error) {
690
+ try {
691
+ await fetch(testEndpoint, {
692
+ method: "POST",
693
+ credentials: "omit",
694
+ headers: { "Content-Type": "application/json" }
695
+ });
696
+ return { valid: true, includeCredentials: false };
697
+ } catch (error2) {
698
+ return { valid: false, includeCredentials: void 0 };
699
+ }
700
+ }
701
+ }
702
+ /**
703
+ * Automatically determines whether to include credentials based on CORS detection
704
+ */
705
+ async shouldIncludeCredentials() {
706
+ if (this.includeCredentials !== void 0) {
707
+ return this.includeCredentials;
708
+ }
709
+ try {
710
+ const corsResult = await this.detectCors();
711
+ if (corsResult.valid) {
712
+ console.warn(
713
+ `[Autumn] Detected CORS credentials: ${corsResult.includeCredentials}`
714
+ );
715
+ console.warn(
716
+ `[Autumn] To disable this warning, you can set includeCredentials={${corsResult.includeCredentials ? "true" : "false"}} in <AutumnProvider />`
717
+ );
718
+ this.includeCredentials = corsResult.includeCredentials;
719
+ }
720
+ return corsResult.includeCredentials || false;
721
+ } catch (error) {
722
+ console.error(`[Autumn] Error detecting CORS: ${error.message}`);
723
+ return false;
724
+ }
725
+ }
654
726
  async getHeaders() {
655
727
  let headers = {
656
728
  "Content-Type": "application/json"
@@ -674,14 +746,20 @@ var AutumnClient = class {
674
746
  ...body,
675
747
  customer_data: this.customerData || void 0
676
748
  }) : void 0;
749
+ const includeCredentials = await this.shouldIncludeCredentials();
677
750
  try {
678
751
  const response = await fetch(`${this.backendUrl}${path}`, {
679
752
  method,
680
753
  body,
681
754
  headers: await this.getHeaders(),
682
- credentials: this.includeCredentials ? "include" : void 0
755
+ credentials: includeCredentials ? "include" : "omit"
756
+ });
757
+ const loggedError = await logAuthError(response);
758
+ return await toContainerResult({
759
+ response,
760
+ logger: console,
761
+ logError: !loggedError
683
762
  });
684
- return await toContainerResult({ response, logger: console });
685
763
  } catch (error) {
686
764
  logFetchError({
687
765
  method,
@@ -2,20 +2,20 @@
2
2
 
3
3
  import {
4
4
  useAutumn
5
- } from "../chunk-KOX2RKIK.mjs";
6
- import "../chunk-4DZUJMZF.mjs";
7
- import "../chunk-XNJDRLWX.mjs";
8
- import "../chunk-DFKCNRXM.mjs";
9
- import "../chunk-ET534E5H.mjs";
10
- import "../chunk-V5PKOA5A.mjs";
11
- import "../chunk-JNM4BLTM.mjs";
5
+ } from "../chunk-EWMKQDQ6.mjs";
6
+ import "../chunk-CQMTU2M4.mjs";
7
+ import "../chunk-JOY6LN3M.mjs";
8
+ import "../chunk-MH2YTNJL.mjs";
9
+ import "../chunk-UDRQNZZS.mjs";
12
10
  import "../chunk-YUV2Y2RW.mjs";
13
11
  import "../chunk-3EYF7OI5.mjs";
14
- import "../chunk-KQT5G3HT.mjs";
12
+ import "../chunk-JVCOY7ZL.mjs";
13
+ import "../chunk-CIBQ4BJU.mjs";
15
14
  import "../chunk-NZ5PEXT2.mjs";
16
15
  import "../chunk-TGX6UKKS.mjs";
17
- import "../chunk-RRXCG32N.mjs";
18
- import "../chunk-CIBQ4BJU.mjs";
16
+ import "../chunk-V5PKOA5A.mjs";
17
+ import "../chunk-JNM4BLTM.mjs";
18
+ import "../chunk-KQT5G3HT.mjs";
19
19
  export {
20
20
  useAutumn
21
21
  };
@@ -1,13 +1,13 @@
1
- import { R as Result, A as AttachResult, C as CheckResult, a as AutumnPromise, T as TrackResult, b as CancelResult, S as SetupPaymentResult } from '../response-CCcWrbaE.mjs';
1
+ import { R as Result, a as AttachResult, b as CheckResult, A as AutumnPromise, T as TrackResult, C as CancelResult, S as SetupPaymentResult } from '../response-CxtkXvb4.mjs';
2
2
  import { A as AutumnError } from '../error-DHbclCVh.mjs';
3
- import { B as BillingPortalResult } from '../cusTypes-JFEvVZLp.mjs';
3
+ import { B as BillingPortalResult } from '../cusTypes-CO4FwQ_s.mjs';
4
4
  import { AutumnContextParams } from '../AutumnContext.mjs';
5
5
  import { AttachParams, CheckParams, TrackParams, CancelParams, OpenBillingPortalParams, SetupPaymentParams } from '../client/types/clientGenTypes.mjs';
6
6
  import 'react';
7
- import '../ReactAutumnClient-DglSetDZ.mjs';
7
+ import '../ReactAutumnClient-Cj2h9TXJ.mjs';
8
8
  import '../client/types/clientReferralTypes.mjs';
9
9
  import '../client/types/clientEntTypes.mjs';
10
- import '../entTypes-CIemXnyX.mjs';
10
+ import '../entTypes-DPTZOorv.mjs';
11
11
 
12
12
  declare const useAutumnBase: ({ AutumnContext, }: {
13
13
  AutumnContext: React.Context<AutumnContextParams>;
@@ -1,13 +1,13 @@
1
- import { R as Result, A as AttachResult, C as CheckResult, a as AutumnPromise, T as TrackResult, b as CancelResult, S as SetupPaymentResult } from '../response-BIBRaj58.js';
1
+ import { R as Result, a as AttachResult, b as CheckResult, A as AutumnPromise, T as TrackResult, C as CancelResult, S as SetupPaymentResult } from '../response-Z4Yeokd8.js';
2
2
  import { A as AutumnError } from '../error-DHbclCVh.js';
3
- import { B as BillingPortalResult } from '../cusTypes-JFEvVZLp.js';
3
+ import { B as BillingPortalResult } from '../cusTypes-CO4FwQ_s.js';
4
4
  import { AutumnContextParams } from '../AutumnContext.js';
5
5
  import { AttachParams, CheckParams, TrackParams, CancelParams, OpenBillingPortalParams, SetupPaymentParams } from '../client/types/clientGenTypes.js';
6
6
  import 'react';
7
- import '../ReactAutumnClient-CD6wjJoS.js';
7
+ import '../ReactAutumnClient-DS-MPWXt.js';
8
8
  import '../client/types/clientReferralTypes.js';
9
9
  import '../client/types/clientEntTypes.js';
10
- import '../entTypes-CJ3jqOWR.js';
10
+ import '../entTypes-UxZ5bRqE.js';
11
11
 
12
12
  declare const useAutumnBase: ({ AutumnContext, }: {
13
13
  AutumnContext: React.Context<AutumnContextParams>;
@@ -36,6 +36,22 @@ __export(useAutumnBase_exports, {
36
36
  });
37
37
  module.exports = __toCommonJS(useAutumnBase_exports);
38
38
 
39
+ // src/libraries/react/errorUtils/logAuthError.ts
40
+ var logAuthError = async (response) => {
41
+ if (response.status === 401) {
42
+ let clonedResponse = response.clone();
43
+ let data = await clonedResponse.json();
44
+ if (data.message.includes("Missing authorization header")) {
45
+ console.error(`[Autumn] Missing authorization header.
46
+
47
+ Use the getBearerToken prop in <AutumnProvider /> to set the authorization header.
48
+ https://docs.useautumn.com/quickstart/quickstart#5-set-up-autumnprovider`);
49
+ return true;
50
+ }
51
+ }
52
+ return false;
53
+ };
54
+
39
55
  // src/sdk/error.ts
40
56
  var AutumnError = class _AutumnError extends Error {
41
57
  message;
@@ -288,12 +304,18 @@ var redeemReferralCode = async ({
288
304
  };
289
305
 
290
306
  // src/sdk/response.ts
291
- var toContainerResult = async ({ response, logger: logger2 }) => {
307
+ var toContainerResult = async ({
308
+ response,
309
+ logger: logger2,
310
+ logError = true
311
+ }) => {
292
312
  if (response.status < 200 || response.status >= 300) {
293
313
  let error;
294
314
  try {
295
315
  error = await response.json();
296
- logger2.error(`[Autumn] ${error.message}`);
316
+ if (logError) {
317
+ logger2.error(`[Autumn] ${error.message}`);
318
+ }
297
319
  } catch (error2) {
298
320
  throw error2;
299
321
  return {
@@ -639,7 +661,8 @@ var AutumnClient = class {
639
661
  getBearerToken;
640
662
  customerData;
641
663
  includeCredentials;
642
- // protected readonly pathPrefix?: string;
664
+ corsDetected;
665
+ corsSupportsCredentials;
643
666
  constructor({
644
667
  backendUrl,
645
668
  getBearerToken,
@@ -651,6 +674,55 @@ var AutumnClient = class {
651
674
  this.customerData = customerData;
652
675
  this.includeCredentials = includeCredentials;
653
676
  }
677
+ /**
678
+ * Detects if the backend supports CORS credentials by making an OPTIONS request
679
+ */
680
+ async detectCors() {
681
+ const testEndpoint = `${this.backendUrl}/api/autumn/cors`;
682
+ try {
683
+ await fetch(testEndpoint, {
684
+ method: "POST",
685
+ credentials: "include",
686
+ headers: { "Content-Type": "application/json" }
687
+ });
688
+ return { valid: true, includeCredentials: true };
689
+ } catch (error) {
690
+ try {
691
+ await fetch(testEndpoint, {
692
+ method: "POST",
693
+ credentials: "omit",
694
+ headers: { "Content-Type": "application/json" }
695
+ });
696
+ return { valid: true, includeCredentials: false };
697
+ } catch (error2) {
698
+ return { valid: false, includeCredentials: void 0 };
699
+ }
700
+ }
701
+ }
702
+ /**
703
+ * Automatically determines whether to include credentials based on CORS detection
704
+ */
705
+ async shouldIncludeCredentials() {
706
+ if (this.includeCredentials !== void 0) {
707
+ return this.includeCredentials;
708
+ }
709
+ try {
710
+ const corsResult = await this.detectCors();
711
+ if (corsResult.valid) {
712
+ console.warn(
713
+ `[Autumn] Detected CORS credentials: ${corsResult.includeCredentials}`
714
+ );
715
+ console.warn(
716
+ `[Autumn] To disable this warning, you can set includeCredentials={${corsResult.includeCredentials ? "true" : "false"}} in <AutumnProvider />`
717
+ );
718
+ this.includeCredentials = corsResult.includeCredentials;
719
+ }
720
+ return corsResult.includeCredentials || false;
721
+ } catch (error) {
722
+ console.error(`[Autumn] Error detecting CORS: ${error.message}`);
723
+ return false;
724
+ }
725
+ }
654
726
  async getHeaders() {
655
727
  let headers = {
656
728
  "Content-Type": "application/json"
@@ -674,14 +746,20 @@ var AutumnClient = class {
674
746
  ...body,
675
747
  customer_data: this.customerData || void 0
676
748
  }) : void 0;
749
+ const includeCredentials = await this.shouldIncludeCredentials();
677
750
  try {
678
751
  const response = await fetch(`${this.backendUrl}${path}`, {
679
752
  method,
680
753
  body,
681
754
  headers: await this.getHeaders(),
682
- credentials: this.includeCredentials ? "include" : void 0
755
+ credentials: includeCredentials ? "include" : "omit"
756
+ });
757
+ const loggedError = await logAuthError(response);
758
+ return await toContainerResult({
759
+ response,
760
+ logger: console,
761
+ logError: !loggedError
683
762
  });
684
- return await toContainerResult({ response, logger: console });
685
763
  } catch (error) {
686
764
  logFetchError({
687
765
  method,
@@ -2,19 +2,19 @@
2
2
 
3
3
  import {
4
4
  useAutumnBase
5
- } from "../chunk-4DZUJMZF.mjs";
6
- import "../chunk-XNJDRLWX.mjs";
7
- import "../chunk-DFKCNRXM.mjs";
8
- import "../chunk-ET534E5H.mjs";
9
- import "../chunk-V5PKOA5A.mjs";
10
- import "../chunk-JNM4BLTM.mjs";
5
+ } from "../chunk-CQMTU2M4.mjs";
6
+ import "../chunk-JOY6LN3M.mjs";
7
+ import "../chunk-MH2YTNJL.mjs";
8
+ import "../chunk-UDRQNZZS.mjs";
11
9
  import "../chunk-YUV2Y2RW.mjs";
12
10
  import "../chunk-3EYF7OI5.mjs";
13
- import "../chunk-KQT5G3HT.mjs";
11
+ import "../chunk-JVCOY7ZL.mjs";
12
+ import "../chunk-CIBQ4BJU.mjs";
14
13
  import "../chunk-NZ5PEXT2.mjs";
15
14
  import "../chunk-TGX6UKKS.mjs";
16
- import "../chunk-RRXCG32N.mjs";
17
- import "../chunk-CIBQ4BJU.mjs";
15
+ import "../chunk-V5PKOA5A.mjs";
16
+ import "../chunk-JNM4BLTM.mjs";
17
+ import "../chunk-KQT5G3HT.mjs";
18
18
  export {
19
19
  useAutumnBase
20
20
  };
@@ -1,9 +1,9 @@
1
1
  import { UseCustomerParams, UseCustomerResult } from './useCustomerBase.mjs';
2
2
  import '../error-DHbclCVh.mjs';
3
- import '../response-CCcWrbaE.mjs';
4
- import '../cusTypes-JFEvVZLp.mjs';
5
- import '../entTypes-CIemXnyX.mjs';
6
- import '../ReactAutumnClient-DglSetDZ.mjs';
3
+ import '../response-CxtkXvb4.mjs';
4
+ import '../cusTypes-CO4FwQ_s.mjs';
5
+ import '../entTypes-DPTZOorv.mjs';
6
+ import '../ReactAutumnClient-Cj2h9TXJ.mjs';
7
7
  import '../client/types/clientReferralTypes.mjs';
8
8
  import '../client/types/clientEntTypes.mjs';
9
9
  import '../client/types/clientGenTypes.mjs';
@@ -1,9 +1,9 @@
1
1
  import { UseCustomerParams, UseCustomerResult } from './useCustomerBase.js';
2
2
  import '../error-DHbclCVh.js';
3
- import '../response-BIBRaj58.js';
4
- import '../cusTypes-JFEvVZLp.js';
5
- import '../entTypes-CJ3jqOWR.js';
6
- import '../ReactAutumnClient-CD6wjJoS.js';
3
+ import '../response-Z4Yeokd8.js';
4
+ import '../cusTypes-CO4FwQ_s.js';
5
+ import '../entTypes-UxZ5bRqE.js';
6
+ import '../ReactAutumnClient-DS-MPWXt.js';
7
7
  import '../client/types/clientReferralTypes.js';
8
8
  import '../client/types/clientEntTypes.js';
9
9
  import '../client/types/clientGenTypes.js';
@@ -36,6 +36,22 @@ __export(useCustomer_exports, {
36
36
  });
37
37
  module.exports = __toCommonJS(useCustomer_exports);
38
38
 
39
+ // src/libraries/react/errorUtils/logAuthError.ts
40
+ var logAuthError = async (response) => {
41
+ if (response.status === 401) {
42
+ let clonedResponse = response.clone();
43
+ let data = await clonedResponse.json();
44
+ if (data.message.includes("Missing authorization header")) {
45
+ console.error(`[Autumn] Missing authorization header.
46
+
47
+ Use the getBearerToken prop in <AutumnProvider /> to set the authorization header.
48
+ https://docs.useautumn.com/quickstart/quickstart#5-set-up-autumnprovider`);
49
+ return true;
50
+ }
51
+ }
52
+ return false;
53
+ };
54
+
39
55
  // src/sdk/error.ts
40
56
  var AutumnError = class _AutumnError extends Error {
41
57
  message;
@@ -288,12 +304,18 @@ var redeemReferralCode = async ({
288
304
  };
289
305
 
290
306
  // src/sdk/response.ts
291
- var toContainerResult = async ({ response, logger: logger2 }) => {
307
+ var toContainerResult = async ({
308
+ response,
309
+ logger: logger2,
310
+ logError = true
311
+ }) => {
292
312
  if (response.status < 200 || response.status >= 300) {
293
313
  let error;
294
314
  try {
295
315
  error = await response.json();
296
- logger2.error(`[Autumn] ${error.message}`);
316
+ if (logError) {
317
+ logger2.error(`[Autumn] ${error.message}`);
318
+ }
297
319
  } catch (error2) {
298
320
  throw error2;
299
321
  return {
@@ -639,7 +661,8 @@ var AutumnClient = class {
639
661
  getBearerToken;
640
662
  customerData;
641
663
  includeCredentials;
642
- // protected readonly pathPrefix?: string;
664
+ corsDetected;
665
+ corsSupportsCredentials;
643
666
  constructor({
644
667
  backendUrl,
645
668
  getBearerToken,
@@ -651,6 +674,55 @@ var AutumnClient = class {
651
674
  this.customerData = customerData;
652
675
  this.includeCredentials = includeCredentials;
653
676
  }
677
+ /**
678
+ * Detects if the backend supports CORS credentials by making an OPTIONS request
679
+ */
680
+ async detectCors() {
681
+ const testEndpoint = `${this.backendUrl}/api/autumn/cors`;
682
+ try {
683
+ await fetch(testEndpoint, {
684
+ method: "POST",
685
+ credentials: "include",
686
+ headers: { "Content-Type": "application/json" }
687
+ });
688
+ return { valid: true, includeCredentials: true };
689
+ } catch (error) {
690
+ try {
691
+ await fetch(testEndpoint, {
692
+ method: "POST",
693
+ credentials: "omit",
694
+ headers: { "Content-Type": "application/json" }
695
+ });
696
+ return { valid: true, includeCredentials: false };
697
+ } catch (error2) {
698
+ return { valid: false, includeCredentials: void 0 };
699
+ }
700
+ }
701
+ }
702
+ /**
703
+ * Automatically determines whether to include credentials based on CORS detection
704
+ */
705
+ async shouldIncludeCredentials() {
706
+ if (this.includeCredentials !== void 0) {
707
+ return this.includeCredentials;
708
+ }
709
+ try {
710
+ const corsResult = await this.detectCors();
711
+ if (corsResult.valid) {
712
+ console.warn(
713
+ `[Autumn] Detected CORS credentials: ${corsResult.includeCredentials}`
714
+ );
715
+ console.warn(
716
+ `[Autumn] To disable this warning, you can set includeCredentials={${corsResult.includeCredentials ? "true" : "false"}} in <AutumnProvider />`
717
+ );
718
+ this.includeCredentials = corsResult.includeCredentials;
719
+ }
720
+ return corsResult.includeCredentials || false;
721
+ } catch (error) {
722
+ console.error(`[Autumn] Error detecting CORS: ${error.message}`);
723
+ return false;
724
+ }
725
+ }
654
726
  async getHeaders() {
655
727
  let headers = {
656
728
  "Content-Type": "application/json"
@@ -674,14 +746,20 @@ var AutumnClient = class {
674
746
  ...body,
675
747
  customer_data: this.customerData || void 0
676
748
  }) : void 0;
749
+ const includeCredentials = await this.shouldIncludeCredentials();
677
750
  try {
678
751
  const response = await fetch(`${this.backendUrl}${path}`, {
679
752
  method,
680
753
  body,
681
754
  headers: await this.getHeaders(),
682
- credentials: this.includeCredentials ? "include" : void 0
755
+ credentials: includeCredentials ? "include" : "omit"
756
+ });
757
+ const loggedError = await logAuthError(response);
758
+ return await toContainerResult({
759
+ response,
760
+ logger: console,
761
+ logError: !loggedError
683
762
  });
684
- return await toContainerResult({ response, logger: console });
685
763
  } catch (error) {
686
764
  logFetchError({
687
765
  method,
@@ -2,22 +2,22 @@
2
2
 
3
3
  import {
4
4
  useCustomer
5
- } from "../chunk-6XKT4CR3.mjs";
6
- import "../chunk-ELPGPLUJ.mjs";
5
+ } from "../chunk-6ULRUGQO.mjs";
6
+ import "../chunk-GEIECHWI.mjs";
7
7
  import "../chunk-JFXBUWKA.mjs";
8
- import "../chunk-4DZUJMZF.mjs";
9
- import "../chunk-XNJDRLWX.mjs";
10
- import "../chunk-DFKCNRXM.mjs";
11
- import "../chunk-ET534E5H.mjs";
12
- import "../chunk-V5PKOA5A.mjs";
13
- import "../chunk-JNM4BLTM.mjs";
8
+ import "../chunk-CQMTU2M4.mjs";
9
+ import "../chunk-JOY6LN3M.mjs";
10
+ import "../chunk-MH2YTNJL.mjs";
11
+ import "../chunk-UDRQNZZS.mjs";
14
12
  import "../chunk-YUV2Y2RW.mjs";
15
13
  import "../chunk-3EYF7OI5.mjs";
16
- import "../chunk-KQT5G3HT.mjs";
14
+ import "../chunk-JVCOY7ZL.mjs";
15
+ import "../chunk-CIBQ4BJU.mjs";
17
16
  import "../chunk-NZ5PEXT2.mjs";
18
17
  import "../chunk-TGX6UKKS.mjs";
19
- import "../chunk-RRXCG32N.mjs";
20
- import "../chunk-CIBQ4BJU.mjs";
18
+ import "../chunk-V5PKOA5A.mjs";
19
+ import "../chunk-JNM4BLTM.mjs";
20
+ import "../chunk-KQT5G3HT.mjs";
21
21
  export {
22
22
  useCustomer
23
23
  };
@@ -1,8 +1,8 @@
1
1
  import { A as AutumnError } from '../error-DHbclCVh.mjs';
2
- import { a as AutumnPromise, A as AttachResult, C as CheckResult, T as TrackResult, b as CancelResult, S as SetupPaymentResult } from '../response-CCcWrbaE.mjs';
3
- import { a as CustomerExpandOption, b as Customer, B as BillingPortalResult } from '../cusTypes-JFEvVZLp.mjs';
4
- import { E as Entity } from '../entTypes-CIemXnyX.mjs';
5
- import { C as CreateReferralCodeResult, R as RedeemReferralCodeResult, A as AutumnClient } from '../ReactAutumnClient-DglSetDZ.mjs';
2
+ import { A as AutumnPromise, a as AttachResult, b as CheckResult, T as TrackResult, C as CancelResult, S as SetupPaymentResult } from '../response-CxtkXvb4.mjs';
3
+ import { c as CustomerExpandOption, b as Customer, B as BillingPortalResult } from '../cusTypes-CO4FwQ_s.mjs';
4
+ import { E as Entity } from '../entTypes-DPTZOorv.mjs';
5
+ import { C as CreateReferralCodeResult, R as RedeemReferralCodeResult, A as AutumnClient } from '../ReactAutumnClient-Cj2h9TXJ.mjs';
6
6
  import { CreateEntityParams } from '../client/types/clientEntTypes.mjs';
7
7
  import { CreateReferralCodeParams, RedeemReferralCodeParams } from '../client/types/clientReferralTypes.mjs';
8
8
  import React__default from 'react';
@@ -1,8 +1,8 @@
1
1
  import { A as AutumnError } from '../error-DHbclCVh.js';
2
- import { a as AutumnPromise, A as AttachResult, C as CheckResult, T as TrackResult, b as CancelResult, S as SetupPaymentResult } from '../response-BIBRaj58.js';
3
- import { a as CustomerExpandOption, b as Customer, B as BillingPortalResult } from '../cusTypes-JFEvVZLp.js';
4
- import { E as Entity } from '../entTypes-CJ3jqOWR.js';
5
- import { C as CreateReferralCodeResult, R as RedeemReferralCodeResult, A as AutumnClient } from '../ReactAutumnClient-CD6wjJoS.js';
2
+ import { A as AutumnPromise, a as AttachResult, b as CheckResult, T as TrackResult, C as CancelResult, S as SetupPaymentResult } from '../response-Z4Yeokd8.js';
3
+ import { c as CustomerExpandOption, b as Customer, B as BillingPortalResult } from '../cusTypes-CO4FwQ_s.js';
4
+ import { E as Entity } from '../entTypes-UxZ5bRqE.js';
5
+ import { C as CreateReferralCodeResult, R as RedeemReferralCodeResult, A as AutumnClient } from '../ReactAutumnClient-DS-MPWXt.js';
6
6
  import { CreateEntityParams } from '../client/types/clientEntTypes.js';
7
7
  import { CreateReferralCodeParams, RedeemReferralCodeParams } from '../client/types/clientReferralTypes.js';
8
8
  import React__default from 'react';