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
@@ -1,5 +1,37 @@
1
1
  "use client";
2
2
 
3
+ import {
4
+ listProductsMethod
5
+ } from "./chunk-YUV2Y2RW.mjs";
6
+ import {
7
+ createCode,
8
+ redeemCode
9
+ } from "./chunk-3EYF7OI5.mjs";
10
+ import {
11
+ logAuthError
12
+ } from "./chunk-JVCOY7ZL.mjs";
13
+ import {
14
+ logFetchError
15
+ } from "./chunk-CIBQ4BJU.mjs";
16
+ import {
17
+ getPricingTableMethod
18
+ } from "./chunk-NZ5PEXT2.mjs";
19
+ import {
20
+ createCustomerMethod
21
+ } from "./chunk-TGX6UKKS.mjs";
22
+ import {
23
+ createEntityMethod,
24
+ deleteEntityMethod,
25
+ getEntityMethod
26
+ } from "./chunk-V5PKOA5A.mjs";
27
+ import {
28
+ attachMethod,
29
+ cancelMethod,
30
+ checkMethod,
31
+ openBillingPortalMethod,
32
+ setupPaymentMethod,
33
+ trackMethod
34
+ } from "./chunk-JNM4BLTM.mjs";
3
35
 
4
36
  // src/sdk/error.ts
5
37
  var AutumnError = class _AutumnError extends Error {
@@ -27,53 +59,6 @@ var AutumnError = class _AutumnError extends Error {
27
59
  }
28
60
  };
29
61
 
30
- // src/sdk/response.ts
31
- var toContainerResult = async ({ response, logger: logger2 }) => {
32
- if (response.status < 200 || response.status >= 300) {
33
- let error;
34
- try {
35
- error = await response.json();
36
- logger2.error(`[Autumn] ${error.message}`);
37
- } catch (error2) {
38
- throw error2;
39
- return {
40
- data: null,
41
- error: new AutumnError({
42
- message: "Failed to parse JSON response from Autumn",
43
- code: "internal_error"
44
- }),
45
- statusCode: response.status
46
- };
47
- }
48
- return {
49
- data: null,
50
- error: new AutumnError({
51
- message: error.message,
52
- code: error.code
53
- }),
54
- statusCode: response.status
55
- };
56
- }
57
- try {
58
- let data = await response.json();
59
- return {
60
- data,
61
- error: null,
62
- statusCode: response?.status
63
- };
64
- } catch (error) {
65
- throw error;
66
- return {
67
- data: null,
68
- error: new AutumnError({
69
- message: "Failed to parse Autumn API response",
70
- code: "internal_error"
71
- }),
72
- statusCode: response?.status
73
- };
74
- }
75
- };
76
-
77
62
  // src/sdk/general/genMethods.ts
78
63
  var handleAttach = async ({
79
64
  instance,
@@ -299,6 +284,59 @@ var redeemReferralCode = async ({
299
284
  return instance.post("/referrals/redeem", params);
300
285
  };
301
286
 
287
+ // src/sdk/response.ts
288
+ var toContainerResult = async ({
289
+ response,
290
+ logger: logger2,
291
+ logError = true
292
+ }) => {
293
+ if (response.status < 200 || response.status >= 300) {
294
+ let error;
295
+ try {
296
+ error = await response.json();
297
+ if (logError) {
298
+ logger2.error(`[Autumn] ${error.message}`);
299
+ }
300
+ } catch (error2) {
301
+ throw error2;
302
+ return {
303
+ data: null,
304
+ error: new AutumnError({
305
+ message: "Failed to parse JSON response from Autumn",
306
+ code: "internal_error"
307
+ }),
308
+ statusCode: response.status
309
+ };
310
+ }
311
+ return {
312
+ data: null,
313
+ error: new AutumnError({
314
+ message: error.message,
315
+ code: error.code
316
+ }),
317
+ statusCode: response.status
318
+ };
319
+ }
320
+ try {
321
+ let data = await response.json();
322
+ return {
323
+ data,
324
+ error: null,
325
+ statusCode: response?.status
326
+ };
327
+ } catch (error) {
328
+ throw error;
329
+ return {
330
+ data: null,
331
+ error: new AutumnError({
332
+ message: "Failed to parse Autumn API response",
333
+ code: "internal_error"
334
+ }),
335
+ statusCode: response?.status
336
+ };
337
+ }
338
+ };
339
+
302
340
  // src/utils/logger.ts
303
341
  import chalk from "chalk";
304
342
  var getTime = () => {
@@ -472,7 +510,176 @@ var Autumn = class {
472
510
  }
473
511
  };
474
512
 
513
+ // src/libraries/react/client/ReactAutumnClient.tsx
514
+ var AutumnClient = class {
515
+ backendUrl;
516
+ getBearerToken;
517
+ customerData;
518
+ includeCredentials;
519
+ corsDetected;
520
+ corsSupportsCredentials;
521
+ constructor({
522
+ backendUrl,
523
+ getBearerToken,
524
+ customerData,
525
+ includeCredentials
526
+ }) {
527
+ this.backendUrl = backendUrl;
528
+ this.getBearerToken = getBearerToken;
529
+ this.customerData = customerData;
530
+ this.includeCredentials = includeCredentials;
531
+ }
532
+ /**
533
+ * Detects if the backend supports CORS credentials by making an OPTIONS request
534
+ */
535
+ async detectCors() {
536
+ const testEndpoint = `${this.backendUrl}/api/autumn/cors`;
537
+ try {
538
+ await fetch(testEndpoint, {
539
+ method: "POST",
540
+ credentials: "include",
541
+ headers: { "Content-Type": "application/json" }
542
+ });
543
+ return { valid: true, includeCredentials: true };
544
+ } catch (error) {
545
+ try {
546
+ await fetch(testEndpoint, {
547
+ method: "POST",
548
+ credentials: "omit",
549
+ headers: { "Content-Type": "application/json" }
550
+ });
551
+ return { valid: true, includeCredentials: false };
552
+ } catch (error2) {
553
+ return { valid: false, includeCredentials: void 0 };
554
+ }
555
+ }
556
+ }
557
+ /**
558
+ * Automatically determines whether to include credentials based on CORS detection
559
+ */
560
+ async shouldIncludeCredentials() {
561
+ if (this.includeCredentials !== void 0) {
562
+ return this.includeCredentials;
563
+ }
564
+ try {
565
+ const corsResult = await this.detectCors();
566
+ if (corsResult.valid) {
567
+ console.warn(
568
+ `[Autumn] Detected CORS credentials: ${corsResult.includeCredentials}`
569
+ );
570
+ console.warn(
571
+ `[Autumn] To disable this warning, you can set includeCredentials={${corsResult.includeCredentials ? "true" : "false"}} in <AutumnProvider />`
572
+ );
573
+ this.includeCredentials = corsResult.includeCredentials;
574
+ }
575
+ return corsResult.includeCredentials || false;
576
+ } catch (error) {
577
+ console.error(`[Autumn] Error detecting CORS: ${error.message}`);
578
+ return false;
579
+ }
580
+ }
581
+ async getHeaders() {
582
+ let headers = {
583
+ "Content-Type": "application/json"
584
+ };
585
+ if (this.getBearerToken) {
586
+ try {
587
+ let token = await this.getBearerToken();
588
+ headers.Authorization = `Bearer ${token}`;
589
+ } catch (error) {
590
+ console.error(`Failed to call getToken() in AutumnProvider`);
591
+ }
592
+ }
593
+ return headers;
594
+ }
595
+ async handleFetch({
596
+ path,
597
+ method,
598
+ body
599
+ }) {
600
+ body = method === "POST" ? JSON.stringify({
601
+ ...body,
602
+ customer_data: this.customerData || void 0
603
+ }) : void 0;
604
+ const includeCredentials = await this.shouldIncludeCredentials();
605
+ try {
606
+ const response = await fetch(`${this.backendUrl}${path}`, {
607
+ method,
608
+ body,
609
+ headers: await this.getHeaders(),
610
+ credentials: includeCredentials ? "include" : "omit"
611
+ });
612
+ const loggedError = await logAuthError(response);
613
+ return await toContainerResult({
614
+ response,
615
+ logger: console,
616
+ logError: !loggedError
617
+ });
618
+ } catch (error) {
619
+ logFetchError({
620
+ method,
621
+ backendUrl: this.backendUrl || "",
622
+ path,
623
+ error
624
+ });
625
+ return {
626
+ data: null,
627
+ error: new AutumnError({
628
+ message: error.message,
629
+ code: "fetch_failed"
630
+ })
631
+ };
632
+ }
633
+ }
634
+ async post(path, body) {
635
+ return await this.handleFetch({
636
+ path,
637
+ method: "POST",
638
+ body
639
+ });
640
+ }
641
+ async get(path) {
642
+ return await this.handleFetch({
643
+ path,
644
+ method: "GET"
645
+ });
646
+ }
647
+ async delete(path) {
648
+ return await this.handleFetch({
649
+ path,
650
+ method: "DELETE"
651
+ });
652
+ }
653
+ async createCustomer(params) {
654
+ return await createCustomerMethod({
655
+ client: this,
656
+ params
657
+ });
658
+ }
659
+ async getPricingTable() {
660
+ return await getPricingTableMethod.bind(this)();
661
+ }
662
+ attach = attachMethod.bind(this);
663
+ cancel = cancelMethod.bind(this);
664
+ check = checkMethod.bind(this);
665
+ track = trackMethod.bind(this);
666
+ openBillingPortal = openBillingPortalMethod.bind(this);
667
+ setupPayment = setupPaymentMethod.bind(this);
668
+ entities = {
669
+ create: createEntityMethod.bind(this),
670
+ get: getEntityMethod.bind(this),
671
+ delete: deleteEntityMethod.bind(this)
672
+ };
673
+ referrals = {
674
+ createCode: createCode.bind(this),
675
+ redeemCode: redeemCode.bind(this)
676
+ };
677
+ products = {
678
+ list: listProductsMethod.bind(this)
679
+ };
680
+ };
681
+
475
682
  export {
476
683
  AutumnError,
477
- toContainerResult
684
+ AutumnClient
478
685
  };
@@ -2,23 +2,22 @@
2
2
 
3
3
  import {
4
4
  BaseAutumnProvider
5
- } from "./chunk-ZLYUPJN5.mjs";
5
+ } from "./chunk-KVGD37VB.mjs";
6
6
  import {
7
7
  AutumnContext
8
- } from "./chunk-DFKCNRXM.mjs";
8
+ } from "./chunk-MH2YTNJL.mjs";
9
9
  import {
10
10
  AutumnClient
11
- } from "./chunk-ET534E5H.mjs";
11
+ } from "./chunk-UDRQNZZS.mjs";
12
12
 
13
13
  // src/libraries/react/ReactAutumnProvider.tsx
14
- import { useEffect } from "react";
15
14
  import { jsx } from "react/jsx-runtime";
16
15
  var ReactAutumnProvider = ({
17
16
  children,
18
17
  getBearerToken,
19
18
  backendUrl,
20
19
  customerData,
21
- includeCredentials = true,
20
+ includeCredentials,
22
21
  disableDialogs = false,
23
22
  authClient
24
23
  }) => {
@@ -31,12 +30,6 @@ var ReactAutumnProvider = ({
31
30
  customerData,
32
31
  includeCredentials
33
32
  });
34
- const analyseAuthClient = async () => {
35
- console.log("Auth client:", authClient);
36
- };
37
- useEffect(() => {
38
- analyseAuthClient();
39
- }, [authClient]);
40
33
  return /* @__PURE__ */ jsx(
41
34
  BaseAutumnProvider,
42
35
  {
@@ -21,19 +21,19 @@ import {
21
21
  DialogTitle,
22
22
  LoaderCircle
23
23
  } from "./chunk-5FZ7IV6P.mjs";
24
- import {
25
- cn
26
- } from "./chunk-4J6OC4ZQ.mjs";
27
24
  import {
28
25
  loadingStyles,
29
26
  spinnerStyles
30
27
  } from "./chunk-OWFX3JFF.mjs";
31
- import {
32
- useCustomer
33
- } from "./chunk-6XKT4CR3.mjs";
34
28
  import {
35
29
  usePricingTable
36
- } from "./chunk-LLOLCHBX.mjs";
30
+ } from "./chunk-S4VDT54B.mjs";
31
+ import {
32
+ cn
33
+ } from "./chunk-4J6OC4ZQ.mjs";
34
+ import {
35
+ useCustomer
36
+ } from "./chunk-6ULRUGQO.mjs";
37
37
 
38
38
  // src/libraries/react/components/pricing-table/pricing-table-synced.tsx
39
39
  import React2 from "react";
@@ -2,7 +2,7 @@ import './types/clientReferralTypes.mjs';
2
2
  import './types/clientEntTypes.mjs';
3
3
  import './types/clientGenTypes.mjs';
4
4
  import '../error-DHbclCVh.mjs';
5
- import '../response-CCcWrbaE.mjs';
6
- import '../cusTypes-JFEvVZLp.mjs';
7
- export { A as AutumnClient, a as AutumnClientConfig, E as ErrorResponse, O as OmitCustomerType } from '../ReactAutumnClient-DglSetDZ.mjs';
8
- import '../entTypes-CIemXnyX.mjs';
5
+ import '../response-CxtkXvb4.mjs';
6
+ import '../cusTypes-CO4FwQ_s.mjs';
7
+ export { A as AutumnClient, a as AutumnClientConfig, E as ErrorResponse, O as OmitCustomerType } from '../ReactAutumnClient-Cj2h9TXJ.mjs';
8
+ import '../entTypes-DPTZOorv.mjs';
@@ -2,7 +2,7 @@ import './types/clientReferralTypes.js';
2
2
  import './types/clientEntTypes.js';
3
3
  import './types/clientGenTypes.js';
4
4
  import '../error-DHbclCVh.js';
5
- import '../response-BIBRaj58.js';
6
- import '../cusTypes-JFEvVZLp.js';
7
- export { A as AutumnClient, a as AutumnClientConfig, E as ErrorResponse, O as OmitCustomerType } from '../ReactAutumnClient-CD6wjJoS.js';
8
- import '../entTypes-CJ3jqOWR.js';
5
+ import '../response-Z4Yeokd8.js';
6
+ import '../cusTypes-CO4FwQ_s.js';
7
+ export { A as AutumnClient, a as AutumnClientConfig, E as ErrorResponse, O as OmitCustomerType } from '../ReactAutumnClient-DS-MPWXt.js';
8
+ import '../entTypes-UxZ5bRqE.js';
@@ -36,6 +36,22 @@ __export(ReactAutumnClient_exports, {
36
36
  });
37
37
  module.exports = __toCommonJS(ReactAutumnClient_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,16 +2,16 @@
2
2
 
3
3
  import {
4
4
  AutumnClient
5
- } from "../chunk-ET534E5H.mjs";
6
- import "../chunk-V5PKOA5A.mjs";
7
- import "../chunk-JNM4BLTM.mjs";
5
+ } from "../chunk-UDRQNZZS.mjs";
8
6
  import "../chunk-YUV2Y2RW.mjs";
9
7
  import "../chunk-3EYF7OI5.mjs";
10
- import "../chunk-KQT5G3HT.mjs";
8
+ import "../chunk-JVCOY7ZL.mjs";
9
+ import "../chunk-CIBQ4BJU.mjs";
11
10
  import "../chunk-NZ5PEXT2.mjs";
12
11
  import "../chunk-TGX6UKKS.mjs";
13
- import "../chunk-RRXCG32N.mjs";
14
- import "../chunk-CIBQ4BJU.mjs";
12
+ import "../chunk-V5PKOA5A.mjs";
13
+ import "../chunk-JNM4BLTM.mjs";
14
+ import "../chunk-KQT5G3HT.mjs";
15
15
  export {
16
16
  AutumnClient
17
17
  };
@@ -1,11 +1,11 @@
1
- import { A as AutumnClient, P as PricingTableProduct } from '../ReactAutumnClient-DglSetDZ.mjs';
2
- import { a as AutumnPromise } from '../response-CCcWrbaE.mjs';
1
+ import { A as AutumnClient, P as PricingTableProduct } from '../ReactAutumnClient-Cj2h9TXJ.mjs';
2
+ import { A as AutumnPromise } from '../response-CxtkXvb4.mjs';
3
3
  import './types/clientReferralTypes.mjs';
4
4
  import './types/clientEntTypes.mjs';
5
5
  import './types/clientGenTypes.mjs';
6
6
  import '../error-DHbclCVh.mjs';
7
- import '../cusTypes-JFEvVZLp.mjs';
8
- import '../entTypes-CIemXnyX.mjs';
7
+ import '../cusTypes-CO4FwQ_s.mjs';
8
+ import '../entTypes-DPTZOorv.mjs';
9
9
 
10
10
  declare function getPricingTableMethod(this: AutumnClient): AutumnPromise<{
11
11
  list: PricingTableProduct[];
@@ -1,11 +1,11 @@
1
- import { A as AutumnClient, P as PricingTableProduct } from '../ReactAutumnClient-CD6wjJoS.js';
2
- import { a as AutumnPromise } from '../response-BIBRaj58.js';
1
+ import { A as AutumnClient, P as PricingTableProduct } from '../ReactAutumnClient-DS-MPWXt.js';
2
+ import { A as AutumnPromise } from '../response-Z4Yeokd8.js';
3
3
  import './types/clientReferralTypes.js';
4
4
  import './types/clientEntTypes.js';
5
5
  import './types/clientGenTypes.js';
6
6
  import '../error-DHbclCVh.js';
7
- import '../cusTypes-JFEvVZLp.js';
8
- import '../entTypes-CJ3jqOWR.js';
7
+ import '../cusTypes-CO4FwQ_s.js';
8
+ import '../entTypes-UxZ5bRqE.js';
9
9
 
10
10
  declare function getPricingTableMethod(this: AutumnClient): AutumnPromise<{
11
11
  list: PricingTableProduct[];
@@ -1,11 +1,11 @@
1
- import { A as AutumnClient, O as OmitCustomerType } from '../ReactAutumnClient-DglSetDZ.mjs';
2
- import { c as CreateCustomerParams, b as Customer } from '../cusTypes-JFEvVZLp.mjs';
3
- import { a as AutumnPromise } from '../response-CCcWrbaE.mjs';
1
+ import { A as AutumnClient, O as OmitCustomerType } from '../ReactAutumnClient-Cj2h9TXJ.mjs';
2
+ import { a as CreateCustomerParams, b as Customer } from '../cusTypes-CO4FwQ_s.mjs';
3
+ import { A as AutumnPromise } from '../response-CxtkXvb4.mjs';
4
4
  import './types/clientReferralTypes.mjs';
5
5
  import './types/clientEntTypes.mjs';
6
6
  import './types/clientGenTypes.mjs';
7
7
  import '../error-DHbclCVh.mjs';
8
- import '../entTypes-CIemXnyX.mjs';
8
+ import '../entTypes-DPTZOorv.mjs';
9
9
 
10
10
  declare const createCustomerMethod: ({ client, params, }: {
11
11
  client: AutumnClient;
@@ -1,11 +1,11 @@
1
- import { A as AutumnClient, O as OmitCustomerType } from '../ReactAutumnClient-CD6wjJoS.js';
2
- import { c as CreateCustomerParams, b as Customer } from '../cusTypes-JFEvVZLp.js';
3
- import { a as AutumnPromise } from '../response-BIBRaj58.js';
1
+ import { A as AutumnClient, O as OmitCustomerType } from '../ReactAutumnClient-DS-MPWXt.js';
2
+ import { a as CreateCustomerParams, b as Customer } from '../cusTypes-CO4FwQ_s.js';
3
+ import { A as AutumnPromise } from '../response-Z4Yeokd8.js';
4
4
  import './types/clientReferralTypes.js';
5
5
  import './types/clientEntTypes.js';
6
6
  import './types/clientGenTypes.js';
7
7
  import '../error-DHbclCVh.js';
8
- import '../entTypes-CJ3jqOWR.js';
8
+ import '../entTypes-UxZ5bRqE.js';
9
9
 
10
10
  declare const createCustomerMethod: ({ client, params, }: {
11
11
  client: AutumnClient;
@@ -1,8 +1,8 @@
1
- import { E as Entity, D as DeleteEntityResult } from '../entTypes-CIemXnyX.mjs';
2
- import { a as AutumnPromise } from '../response-CCcWrbaE.mjs';
3
- import { A as AutumnClient } from '../ReactAutumnClient-DglSetDZ.mjs';
1
+ import { E as Entity, D as DeleteEntityResult } from '../entTypes-DPTZOorv.mjs';
2
+ import { A as AutumnPromise } from '../response-CxtkXvb4.mjs';
3
+ import { A as AutumnClient } from '../ReactAutumnClient-Cj2h9TXJ.mjs';
4
4
  import { CreateEntityParams, GetEntityParams } from './types/clientEntTypes.mjs';
5
- import '../cusTypes-JFEvVZLp.mjs';
5
+ import '../cusTypes-CO4FwQ_s.mjs';
6
6
  import '../error-DHbclCVh.mjs';
7
7
  import './types/clientReferralTypes.mjs';
8
8
  import './types/clientGenTypes.mjs';
@@ -1,8 +1,8 @@
1
- import { E as Entity, D as DeleteEntityResult } from '../entTypes-CJ3jqOWR.js';
2
- import { a as AutumnPromise } from '../response-BIBRaj58.js';
3
- import { A as AutumnClient } from '../ReactAutumnClient-CD6wjJoS.js';
1
+ import { E as Entity, D as DeleteEntityResult } from '../entTypes-UxZ5bRqE.js';
2
+ import { A as AutumnPromise } from '../response-Z4Yeokd8.js';
3
+ import { A as AutumnClient } from '../ReactAutumnClient-DS-MPWXt.js';
4
4
  import { CreateEntityParams, GetEntityParams } from './types/clientEntTypes.js';
5
- import '../cusTypes-JFEvVZLp.js';
5
+ import '../cusTypes-CO4FwQ_s.js';
6
6
  import '../error-DHbclCVh.js';
7
7
  import './types/clientReferralTypes.js';
8
8
  import './types/clientGenTypes.js';