autumn-js 0.0.81 → 0.0.83

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 (165) 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-Z7MRLSU3.mjs} +9 -9
  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.css +7 -0
  85. package/dist/libraries/react/components/attach-dialog/attach-dialog-synced.d.mts +1 -1
  86. package/dist/libraries/react/components/attach-dialog/attach-dialog-synced.d.ts +1 -1
  87. package/dist/libraries/react/components/attach-dialog/attach-dialog-synced.js +94 -17
  88. package/dist/libraries/react/components/attach-dialog/attach-dialog-synced.mjs +20 -20
  89. package/dist/libraries/react/components/attach-dialog/lib/attach-content.d.mts +1 -1
  90. package/dist/libraries/react/components/attach-dialog/lib/attach-content.d.ts +1 -1
  91. package/dist/libraries/react/components/check-dialog/check-dialog-synced.d.mts +1 -1
  92. package/dist/libraries/react/components/check-dialog/check-dialog-synced.d.ts +1 -1
  93. package/dist/libraries/react/components/check-dialog/lib/check-content.d.mts +1 -1
  94. package/dist/libraries/react/components/check-dialog/lib/check-content.d.ts +1 -1
  95. package/dist/libraries/react/components/pricing-table/pricing-table-synced.css +7 -0
  96. package/dist/libraries/react/components/pricing-table/pricing-table-synced.d.mts +1 -1
  97. package/dist/libraries/react/components/pricing-table/pricing-table-synced.d.ts +1 -1
  98. package/dist/libraries/react/components/pricing-table/pricing-table-synced.js +105 -28
  99. package/dist/libraries/react/components/pricing-table/pricing-table-synced.mjs +20 -20
  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 +109 -38
  145. package/dist/libraries/react/index.mjs +87 -16
  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/styles/global.css +7 -0
  161. package/dist/utils/encryptUtils.js +8 -2
  162. package/dist/utils/encryptUtils.mjs +8 -2
  163. package/package.json +1 -1
  164. package/scripts/post-build.js +17 -1
  165. package/dist/libraries/react/chunk-ET534E5H.mjs +0 -152
@@ -37,6 +37,22 @@ __export(useCustomerBase_exports, {
37
37
  module.exports = __toCommonJS(useCustomerBase_exports);
38
38
  var import_swr2 = __toESM(require("swr"));
39
39
 
40
+ // src/libraries/react/errorUtils/logAuthError.ts
41
+ var logAuthError = async (response) => {
42
+ if (response.status === 401) {
43
+ let clonedResponse = response.clone();
44
+ let data = await clonedResponse.json();
45
+ if (data.message.includes("Missing authorization header")) {
46
+ console.error(`[Autumn] Missing authorization header.
47
+
48
+ Use the getBearerToken prop in <AutumnProvider /> to set the authorization header.
49
+ https://docs.useautumn.com/quickstart/quickstart#5-set-up-autumnprovider`);
50
+ return true;
51
+ }
52
+ }
53
+ return false;
54
+ };
55
+
40
56
  // src/sdk/error.ts
41
57
  var AutumnError = class _AutumnError extends Error {
42
58
  message;
@@ -289,12 +305,18 @@ var redeemReferralCode = async ({
289
305
  };
290
306
 
291
307
  // src/sdk/response.ts
292
- var toContainerResult = async ({ response, logger: logger2 }) => {
308
+ var toContainerResult = async ({
309
+ response,
310
+ logger: logger2,
311
+ logError = true
312
+ }) => {
293
313
  if (response.status < 200 || response.status >= 300) {
294
314
  let error;
295
315
  try {
296
316
  error = await response.json();
297
- logger2.error(`[Autumn] ${error.message}`);
317
+ if (logError) {
318
+ logger2.error(`[Autumn] ${error.message}`);
319
+ }
298
320
  } catch (error2) {
299
321
  throw error2;
300
322
  return {
@@ -640,7 +662,8 @@ var AutumnClient = class {
640
662
  getBearerToken;
641
663
  customerData;
642
664
  includeCredentials;
643
- // protected readonly pathPrefix?: string;
665
+ corsDetected;
666
+ corsSupportsCredentials;
644
667
  constructor({
645
668
  backendUrl,
646
669
  getBearerToken,
@@ -652,6 +675,55 @@ var AutumnClient = class {
652
675
  this.customerData = customerData;
653
676
  this.includeCredentials = includeCredentials;
654
677
  }
678
+ /**
679
+ * Detects if the backend supports CORS credentials by making an OPTIONS request
680
+ */
681
+ async detectCors() {
682
+ const testEndpoint = `${this.backendUrl}/api/autumn/cors`;
683
+ try {
684
+ await fetch(testEndpoint, {
685
+ method: "POST",
686
+ credentials: "include",
687
+ headers: { "Content-Type": "application/json" }
688
+ });
689
+ return { valid: true, includeCredentials: true };
690
+ } catch (error) {
691
+ try {
692
+ await fetch(testEndpoint, {
693
+ method: "POST",
694
+ credentials: "omit",
695
+ headers: { "Content-Type": "application/json" }
696
+ });
697
+ return { valid: true, includeCredentials: false };
698
+ } catch (error2) {
699
+ return { valid: false, includeCredentials: void 0 };
700
+ }
701
+ }
702
+ }
703
+ /**
704
+ * Automatically determines whether to include credentials based on CORS detection
705
+ */
706
+ async shouldIncludeCredentials() {
707
+ if (this.includeCredentials !== void 0) {
708
+ return this.includeCredentials;
709
+ }
710
+ try {
711
+ const corsResult = await this.detectCors();
712
+ if (corsResult.valid) {
713
+ console.warn(
714
+ `[Autumn] Detected CORS credentials: ${corsResult.includeCredentials}`
715
+ );
716
+ console.warn(
717
+ `[Autumn] To disable this warning, you can set includeCredentials={${corsResult.includeCredentials ? "true" : "false"}} in <AutumnProvider />`
718
+ );
719
+ this.includeCredentials = corsResult.includeCredentials;
720
+ }
721
+ return corsResult.includeCredentials || false;
722
+ } catch (error) {
723
+ console.error(`[Autumn] Error detecting CORS: ${error.message}`);
724
+ return false;
725
+ }
726
+ }
655
727
  async getHeaders() {
656
728
  let headers = {
657
729
  "Content-Type": "application/json"
@@ -675,14 +747,20 @@ var AutumnClient = class {
675
747
  ...body,
676
748
  customer_data: this.customerData || void 0
677
749
  }) : void 0;
750
+ const includeCredentials = await this.shouldIncludeCredentials();
678
751
  try {
679
752
  const response = await fetch(`${this.backendUrl}${path}`, {
680
753
  method,
681
754
  body,
682
755
  headers: await this.getHeaders(),
683
- credentials: this.includeCredentials ? "include" : void 0
756
+ credentials: includeCredentials ? "include" : "omit"
757
+ });
758
+ const loggedError = await logAuthError(response);
759
+ return await toContainerResult({
760
+ response,
761
+ logger: console,
762
+ logError: !loggedError
684
763
  });
685
- return await toContainerResult({ response, logger: console });
686
764
  } catch (error) {
687
765
  logFetchError({
688
766
  method,
@@ -2,21 +2,21 @@
2
2
 
3
3
  import {
4
4
  useCustomerBase
5
- } from "../chunk-ELPGPLUJ.mjs";
5
+ } from "../chunk-GEIECHWI.mjs";
6
6
  import "../chunk-JFXBUWKA.mjs";
7
- import "../chunk-4DZUJMZF.mjs";
8
- import "../chunk-XNJDRLWX.mjs";
9
- import "../chunk-DFKCNRXM.mjs";
10
- import "../chunk-ET534E5H.mjs";
11
- import "../chunk-V5PKOA5A.mjs";
12
- import "../chunk-JNM4BLTM.mjs";
7
+ import "../chunk-CQMTU2M4.mjs";
8
+ import "../chunk-JOY6LN3M.mjs";
9
+ import "../chunk-MH2YTNJL.mjs";
10
+ import "../chunk-UDRQNZZS.mjs";
13
11
  import "../chunk-YUV2Y2RW.mjs";
14
12
  import "../chunk-3EYF7OI5.mjs";
15
- import "../chunk-KQT5G3HT.mjs";
13
+ import "../chunk-JVCOY7ZL.mjs";
14
+ import "../chunk-CIBQ4BJU.mjs";
16
15
  import "../chunk-NZ5PEXT2.mjs";
17
16
  import "../chunk-TGX6UKKS.mjs";
18
- import "../chunk-RRXCG32N.mjs";
19
- import "../chunk-CIBQ4BJU.mjs";
17
+ import "../chunk-V5PKOA5A.mjs";
18
+ import "../chunk-JNM4BLTM.mjs";
19
+ import "../chunk-KQT5G3HT.mjs";
20
20
  export {
21
21
  useCustomerBase
22
22
  };
@@ -1,11 +1,11 @@
1
- import { a as AutumnPromise, C as CheckResult, R as Result, A as AttachResult, b as CancelResult, T as TrackResult } from '../response-CCcWrbaE.mjs';
1
+ import { A as AutumnPromise, b as CheckResult, R as Result, a as AttachResult, C as CancelResult, T as TrackResult } from '../response-CxtkXvb4.mjs';
2
2
  import { CheckParams, AttachParams, CancelParams, TrackParams } from '../client/types/clientGenTypes.mjs';
3
3
  import { AllowedParams } from './handleAllowed.mjs';
4
4
  import * as swr from 'swr';
5
5
  import { A as AutumnError } from '../error-DHbclCVh.mjs';
6
- import { E as Entity } from '../entTypes-CIemXnyX.mjs';
6
+ import { E as Entity } from '../entTypes-DPTZOorv.mjs';
7
7
  import { GetEntityParams } from '../client/types/clientEntTypes.mjs';
8
- import '../cusTypes-JFEvVZLp.mjs';
8
+ import '../cusTypes-CO4FwQ_s.mjs';
9
9
 
10
10
  declare const useEntity: (entityId: string | null, params?: GetEntityParams) => {
11
11
  entity: Entity | null;
@@ -1,11 +1,11 @@
1
- import { a as AutumnPromise, C as CheckResult, R as Result, A as AttachResult, b as CancelResult, T as TrackResult } from '../response-BIBRaj58.js';
1
+ import { A as AutumnPromise, b as CheckResult, R as Result, a as AttachResult, C as CancelResult, T as TrackResult } from '../response-Z4Yeokd8.js';
2
2
  import { CheckParams, AttachParams, CancelParams, TrackParams } from '../client/types/clientGenTypes.js';
3
3
  import { AllowedParams } from './handleAllowed.js';
4
4
  import * as swr from 'swr';
5
5
  import { A as AutumnError } from '../error-DHbclCVh.js';
6
- import { E as Entity } from '../entTypes-CJ3jqOWR.js';
6
+ import { E as Entity } from '../entTypes-UxZ5bRqE.js';
7
7
  import { GetEntityParams } from '../client/types/clientEntTypes.js';
8
- import '../cusTypes-JFEvVZLp.js';
8
+ import '../cusTypes-CO4FwQ_s.js';
9
9
 
10
10
  declare const useEntity: (entityId: string | null, params?: GetEntityParams) => {
11
11
  entity: Entity | null;
@@ -36,6 +36,22 @@ __export(useEntity_exports, {
36
36
  });
37
37
  module.exports = __toCommonJS(useEntity_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
  useEntity
5
- } from "../chunk-QEYI3IGZ.mjs";
6
- import "../chunk-DSHLYZWS.mjs";
5
+ } from "../chunk-SCT4E6YW.mjs";
6
+ import "../chunk-L55GLFAX.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
  useEntity
23
23
  };
@@ -1,14 +1,14 @@
1
- import { a as AutumnPromise, C as CheckResult, R as Result, A as AttachResult, b as CancelResult, T as TrackResult } from '../response-CCcWrbaE.mjs';
1
+ import { A as AutumnPromise, b as CheckResult, R as Result, a as AttachResult, C as CancelResult, T as TrackResult } from '../response-CxtkXvb4.mjs';
2
2
  import * as swr from 'swr';
3
3
  import { A as AutumnError } from '../error-DHbclCVh.mjs';
4
- import { E as Entity } from '../entTypes-CIemXnyX.mjs';
4
+ import { E as Entity } from '../entTypes-DPTZOorv.mjs';
5
5
  import { GetEntityParams } from '../client/types/clientEntTypes.mjs';
6
6
  import { AutumnContextParams } from '../AutumnContext.mjs';
7
7
  import { AllowedParams } from './handleAllowed.mjs';
8
8
  import { CheckParams, AttachParams, CancelParams, TrackParams } from '../client/types/clientGenTypes.mjs';
9
- import '../cusTypes-JFEvVZLp.mjs';
9
+ import '../cusTypes-CO4FwQ_s.mjs';
10
10
  import 'react';
11
- import '../ReactAutumnClient-DglSetDZ.mjs';
11
+ import '../ReactAutumnClient-Cj2h9TXJ.mjs';
12
12
  import '../client/types/clientReferralTypes.mjs';
13
13
 
14
14
  declare const useEntityBase: ({ entityId, params, AutumnContext, }: {
@@ -1,14 +1,14 @@
1
- import { a as AutumnPromise, C as CheckResult, R as Result, A as AttachResult, b as CancelResult, T as TrackResult } from '../response-BIBRaj58.js';
1
+ import { A as AutumnPromise, b as CheckResult, R as Result, a as AttachResult, C as CancelResult, T as TrackResult } from '../response-Z4Yeokd8.js';
2
2
  import * as swr from 'swr';
3
3
  import { A as AutumnError } from '../error-DHbclCVh.js';
4
- import { E as Entity } from '../entTypes-CJ3jqOWR.js';
4
+ import { E as Entity } from '../entTypes-UxZ5bRqE.js';
5
5
  import { GetEntityParams } from '../client/types/clientEntTypes.js';
6
6
  import { AutumnContextParams } from '../AutumnContext.js';
7
7
  import { AllowedParams } from './handleAllowed.js';
8
8
  import { CheckParams, AttachParams, CancelParams, TrackParams } from '../client/types/clientGenTypes.js';
9
- import '../cusTypes-JFEvVZLp.js';
9
+ import '../cusTypes-CO4FwQ_s.js';
10
10
  import 'react';
11
- import '../ReactAutumnClient-CD6wjJoS.js';
11
+ import '../ReactAutumnClient-DS-MPWXt.js';
12
12
  import '../client/types/clientReferralTypes.js';
13
13
 
14
14
  declare const useEntityBase: ({ entityId, params, AutumnContext, }: {
@@ -82,6 +82,22 @@ var handleAllowed = ({ customer, params }) => {
82
82
  return false;
83
83
  };
84
84
 
85
+ // src/libraries/react/errorUtils/logAuthError.ts
86
+ var logAuthError = async (response) => {
87
+ if (response.status === 401) {
88
+ let clonedResponse = response.clone();
89
+ let data = await clonedResponse.json();
90
+ if (data.message.includes("Missing authorization header")) {
91
+ console.error(`[Autumn] Missing authorization header.
92
+
93
+ Use the getBearerToken prop in <AutumnProvider /> to set the authorization header.
94
+ https://docs.useautumn.com/quickstart/quickstart#5-set-up-autumnprovider`);
95
+ return true;
96
+ }
97
+ }
98
+ return false;
99
+ };
100
+
85
101
  // src/sdk/error.ts
86
102
  var AutumnError = class _AutumnError extends Error {
87
103
  message;
@@ -334,12 +350,18 @@ var redeemReferralCode = async ({
334
350
  };
335
351
 
336
352
  // src/sdk/response.ts
337
- var toContainerResult = async ({ response, logger: logger2 }) => {
353
+ var toContainerResult = async ({
354
+ response,
355
+ logger: logger2,
356
+ logError = true
357
+ }) => {
338
358
  if (response.status < 200 || response.status >= 300) {
339
359
  let error;
340
360
  try {
341
361
  error = await response.json();
342
- logger2.error(`[Autumn] ${error.message}`);
362
+ if (logError) {
363
+ logger2.error(`[Autumn] ${error.message}`);
364
+ }
343
365
  } catch (error2) {
344
366
  throw error2;
345
367
  return {
@@ -685,7 +707,8 @@ var AutumnClient = class {
685
707
  getBearerToken;
686
708
  customerData;
687
709
  includeCredentials;
688
- // protected readonly pathPrefix?: string;
710
+ corsDetected;
711
+ corsSupportsCredentials;
689
712
  constructor({
690
713
  backendUrl,
691
714
  getBearerToken,
@@ -697,6 +720,55 @@ var AutumnClient = class {
697
720
  this.customerData = customerData;
698
721
  this.includeCredentials = includeCredentials;
699
722
  }
723
+ /**
724
+ * Detects if the backend supports CORS credentials by making an OPTIONS request
725
+ */
726
+ async detectCors() {
727
+ const testEndpoint = `${this.backendUrl}/api/autumn/cors`;
728
+ try {
729
+ await fetch(testEndpoint, {
730
+ method: "POST",
731
+ credentials: "include",
732
+ headers: { "Content-Type": "application/json" }
733
+ });
734
+ return { valid: true, includeCredentials: true };
735
+ } catch (error) {
736
+ try {
737
+ await fetch(testEndpoint, {
738
+ method: "POST",
739
+ credentials: "omit",
740
+ headers: { "Content-Type": "application/json" }
741
+ });
742
+ return { valid: true, includeCredentials: false };
743
+ } catch (error2) {
744
+ return { valid: false, includeCredentials: void 0 };
745
+ }
746
+ }
747
+ }
748
+ /**
749
+ * Automatically determines whether to include credentials based on CORS detection
750
+ */
751
+ async shouldIncludeCredentials() {
752
+ if (this.includeCredentials !== void 0) {
753
+ return this.includeCredentials;
754
+ }
755
+ try {
756
+ const corsResult = await this.detectCors();
757
+ if (corsResult.valid) {
758
+ console.warn(
759
+ `[Autumn] Detected CORS credentials: ${corsResult.includeCredentials}`
760
+ );
761
+ console.warn(
762
+ `[Autumn] To disable this warning, you can set includeCredentials={${corsResult.includeCredentials ? "true" : "false"}} in <AutumnProvider />`
763
+ );
764
+ this.includeCredentials = corsResult.includeCredentials;
765
+ }
766
+ return corsResult.includeCredentials || false;
767
+ } catch (error) {
768
+ console.error(`[Autumn] Error detecting CORS: ${error.message}`);
769
+ return false;
770
+ }
771
+ }
700
772
  async getHeaders() {
701
773
  let headers = {
702
774
  "Content-Type": "application/json"
@@ -720,14 +792,20 @@ var AutumnClient = class {
720
792
  ...body,
721
793
  customer_data: this.customerData || void 0
722
794
  }) : void 0;
795
+ const includeCredentials = await this.shouldIncludeCredentials();
723
796
  try {
724
797
  const response = await fetch(`${this.backendUrl}${path}`, {
725
798
  method,
726
799
  body,
727
800
  headers: await this.getHeaders(),
728
- credentials: this.includeCredentials ? "include" : void 0
801
+ credentials: includeCredentials ? "include" : "omit"
802
+ });
803
+ const loggedError = await logAuthError(response);
804
+ return await toContainerResult({
805
+ response,
806
+ logger: console,
807
+ logError: !loggedError
729
808
  });
730
- return await toContainerResult({ response, logger: console });
731
809
  } catch (error) {
732
810
  logFetchError({
733
811
  method,
@@ -2,21 +2,21 @@
2
2
 
3
3
  import {
4
4
  useEntityBase
5
- } from "../chunk-DSHLYZWS.mjs";
5
+ } from "../chunk-L55GLFAX.mjs";
6
6
  import "../chunk-JFXBUWKA.mjs";
7
- import "../chunk-4DZUJMZF.mjs";
8
- import "../chunk-XNJDRLWX.mjs";
9
- import "../chunk-DFKCNRXM.mjs";
10
- import "../chunk-ET534E5H.mjs";
11
- import "../chunk-V5PKOA5A.mjs";
12
- import "../chunk-JNM4BLTM.mjs";
7
+ import "../chunk-CQMTU2M4.mjs";
8
+ import "../chunk-JOY6LN3M.mjs";
9
+ import "../chunk-MH2YTNJL.mjs";
10
+ import "../chunk-UDRQNZZS.mjs";
13
11
  import "../chunk-YUV2Y2RW.mjs";
14
12
  import "../chunk-3EYF7OI5.mjs";
15
- import "../chunk-KQT5G3HT.mjs";
13
+ import "../chunk-JVCOY7ZL.mjs";
14
+ import "../chunk-CIBQ4BJU.mjs";
16
15
  import "../chunk-NZ5PEXT2.mjs";
17
16
  import "../chunk-TGX6UKKS.mjs";
18
- import "../chunk-RRXCG32N.mjs";
19
- import "../chunk-CIBQ4BJU.mjs";
17
+ import "../chunk-V5PKOA5A.mjs";
18
+ import "../chunk-JNM4BLTM.mjs";
19
+ import "../chunk-KQT5G3HT.mjs";
20
20
  export {
21
21
  useEntityBase
22
22
  };
@@ -1,6 +1,6 @@
1
1
  import * as swr from 'swr';
2
2
  import { A as AutumnError } from '../error-DHbclCVh.mjs';
3
- import { P as Product } from '../cusTypes-JFEvVZLp.mjs';
3
+ import { P as Product } from '../cusTypes-CO4FwQ_s.mjs';
4
4
  import { ProductDetails } from '../client/types/clientPricingTableTypes.mjs';
5
5
 
6
6
  declare const usePricingTable: (params?: {
@@ -1,6 +1,6 @@
1
1
  import * as swr from 'swr';
2
2
  import { A as AutumnError } from '../error-DHbclCVh.js';
3
- import { P as Product } from '../cusTypes-JFEvVZLp.js';
3
+ import { P as Product } from '../cusTypes-CO4FwQ_s.js';
4
4
  import { ProductDetails } from '../client/types/clientPricingTableTypes.js';
5
5
 
6
6
  declare const usePricingTable: (params?: {