@beamimpact/web-sdk 1.55.6 → 1.55.8

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 (223) hide show
  1. package/dist/chunks/{_share-dialog-dependencies-BA9f_o0p.esm.js → _share-dialog-dependencies-BG0p8uUr.esm.js} +2 -2
  2. package/dist/chunks/{_share-dialog-dependencies-BA9f_o0p.esm.js.map → _share-dialog-dependencies-BG0p8uUr.esm.js.map} +1 -1
  3. package/dist/chunks/{_share-dialog-dependencies-C9KUQdZi.esm.js → _share-dialog-dependencies-dHlBUqo0.esm.js} +2 -2
  4. package/dist/chunks/{_share-dialog-dependencies-C9KUQdZi.esm.js.map → _share-dialog-dependencies-dHlBUqo0.esm.js.map} +1 -1
  5. package/dist/chunks/beam-errors-Ci0d3926.esm.js.map +1 -1
  6. package/dist/chunks/css-card-grid-CvoGpsJH.esm.js.map +1 -1
  7. package/dist/chunks/enforce-config-Ba1JkOHs.esm.js.map +1 -1
  8. package/dist/chunks/enforce-config-CZ3ToOgr.esm.js.map +1 -1
  9. package/dist/chunks/{events-B7l6VPsF.esm.d.ts → events-CSyogxoH.esm.d.ts} +2 -2
  10. package/dist/chunks/events-Dki0ka4F.esm.js.map +1 -1
  11. package/dist/chunks/{index-DkN5rVx1.esm.js → index-2OQzw7UI.esm.js} +2 -2
  12. package/dist/chunks/{index-DkN5rVx1.esm.js.map → index-2OQzw7UI.esm.js.map} +1 -1
  13. package/dist/chunks/index-B1Y88trP.esm.js +2 -0
  14. package/dist/chunks/index-B1Y88trP.esm.js.map +1 -0
  15. package/dist/chunks/{index-Bliur1O3.esm.d.ts → index-B1lGZARl.esm.d.ts} +1 -1
  16. package/dist/chunks/{index-DHK-p5LV.esm.d.ts → index-B7hOLixE.esm.d.ts} +2 -2
  17. package/dist/chunks/index-BNjsFEGn.esm.js.map +1 -1
  18. package/dist/chunks/{index-CQNxdYCM.esm.js → index-BTDB5Gk-.esm.js} +2 -2
  19. package/dist/chunks/index-BTDB5Gk-.esm.js.map +1 -0
  20. package/dist/chunks/index-BX6GnRsb.esm.js +2 -0
  21. package/dist/chunks/index-BX6GnRsb.esm.js.map +1 -0
  22. package/dist/chunks/{index-DbaDUPup.esm.d.ts → index-BjGPkgs-.esm.d.ts} +11 -11
  23. package/dist/chunks/{index-B-y_clPF.esm.js → index-C5gnsl34.esm.js} +2 -2
  24. package/dist/chunks/{index-B-y_clPF.esm.js.map → index-C5gnsl34.esm.js.map} +1 -1
  25. package/dist/chunks/{index-DEoMwStx.esm.d.ts → index-CJ1y1kTs.esm.d.ts} +1 -1
  26. package/dist/chunks/index-CWKcDbs6.esm.js +2 -0
  27. package/dist/chunks/index-CWKcDbs6.esm.js.map +1 -0
  28. package/dist/chunks/{index-Cvwx-mJw.esm.js → index-Cg65EbvX.esm.js} +2 -2
  29. package/dist/chunks/index-Cg65EbvX.esm.js.map +1 -0
  30. package/dist/chunks/{index-R8pxCm8G.esm.js → index-DEaZqGi7.esm.js} +2 -2
  31. package/dist/chunks/{index-R8pxCm8G.esm.js.map → index-DEaZqGi7.esm.js.map} +1 -1
  32. package/dist/chunks/{index-Cc56yRag.esm.js → index-DnTE6QlY.esm.js} +2 -2
  33. package/dist/chunks/index-DnTE6QlY.esm.js.map +1 -0
  34. package/dist/chunks/{index-D4P62wPH.esm.js → index-DrxhkT6Y.esm.js} +2 -2
  35. package/dist/chunks/index-DrxhkT6Y.esm.js.map +1 -0
  36. package/dist/chunks/index-IKiJwo5v.esm.js.map +1 -1
  37. package/dist/chunks/{index-Dcs5wzZR.esm.js → index-RhV6PBPH.esm.js} +2 -2
  38. package/dist/chunks/{index-Dcs5wzZR.esm.js.map → index-RhV6PBPH.esm.js.map} +1 -1
  39. package/dist/chunks/index-eCVyk0rc.esm.js +2 -0
  40. package/dist/chunks/index-eCVyk0rc.esm.js.map +1 -0
  41. package/dist/chunks/{index-DTPlqZRf.esm.d.ts → index-iqYDqEil.esm.d.ts} +1 -1
  42. package/dist/chunks/lit-WqMxC_PA.esm.js.map +1 -1
  43. package/dist/chunks/localize-Btu9xYcE.esm.js.map +1 -1
  44. package/dist/chunks/localize-C25pEGnx.esm.js.map +1 -1
  45. package/dist/chunks/lodash-D3TLHRR_.esm.js.map +1 -1
  46. package/dist/chunks/{order-page-BrgnL0la.esm.js → order-page-BRG7MXZ2.esm.js} +2 -2
  47. package/dist/chunks/{order-page-BrgnL0la.esm.js.map → order-page-BRG7MXZ2.esm.js.map} +1 -1
  48. package/dist/chunks/{order-page-BVDbpEg3.esm.js → order-page-BbHDQfmy.esm.js} +2 -2
  49. package/dist/chunks/{order-page-BVDbpEg3.esm.js.map → order-page-BbHDQfmy.esm.js.map} +1 -1
  50. package/dist/chunks/{order-page-M7a2TINy.esm.d.ts → order-page-Qn1yyNbN.esm.d.ts} +2 -2
  51. package/dist/chunks/progress-bar-DF7UuuHb.esm.js.map +1 -1
  52. package/dist/chunks/{promo-pill-label-B5ymzjIe.esm.js → promo-pill-label-ByFGhdxh.esm.js} +2 -2
  53. package/dist/chunks/{promo-pill-label-B5ymzjIe.esm.js.map → promo-pill-label-ByFGhdxh.esm.js.map} +1 -1
  54. package/dist/chunks/{promo-pill-label-Fdt5WTOL.esm.js → promo-pill-label-WGLW3bql.esm.js} +2 -2
  55. package/dist/chunks/{promo-pill-label-Fdt5WTOL.esm.js.map → promo-pill-label-WGLW3bql.esm.js.map} +1 -1
  56. package/dist/chunks/{promo-types-BPmDZ5dF.esm.d.ts → promo-types-7r9-UuiP.esm.d.ts} +1 -1
  57. package/dist/chunks/promo-types-DKAOFHJr.esm.js.map +1 -1
  58. package/dist/chunks/responsive-BR8qUfBa.esm.js.map +1 -1
  59. package/dist/chunks/{routes-DpniIBF7.esm.js → routes-BvX92EDq.esm.js} +2 -2
  60. package/dist/chunks/{routes-DpniIBF7.esm.js.map → routes-BvX92EDq.esm.js.map} +1 -1
  61. package/dist/chunks/{routes-BoeGe1RQ.esm.d.ts → routes-DahRzf8t.esm.d.ts} +1 -1
  62. package/dist/chunks/{routes-DzqKnt5D.esm.js → routes-DguZveS3.esm.js} +2 -2
  63. package/dist/chunks/{routes-DzqKnt5D.esm.js.map → routes-DguZveS3.esm.js.map} +1 -1
  64. package/dist/chunks/{share-button-B2RwMJdP.esm.js → share-button-BRjKJc5L.esm.js} +2 -2
  65. package/dist/chunks/{share-button-DOejRGE7.esm.js.map → share-button-BRjKJc5L.esm.js.map} +1 -1
  66. package/dist/chunks/{share-button-CnN0Q1m3.esm.js → share-button-DPNNnXeM.esm.js} +2 -2
  67. package/dist/chunks/{share-button-CnN0Q1m3.esm.js.map → share-button-DPNNnXeM.esm.js.map} +1 -1
  68. package/dist/chunks/{share-button-DOejRGE7.esm.js → share-button-DmjRJmXh.esm.js} +2 -2
  69. package/dist/chunks/{share-button-B2RwMJdP.esm.js.map → share-button-DmjRJmXh.esm.js.map} +1 -1
  70. package/dist/chunks/{share-button-Gz4GlT28.esm.js → share-button-M8cMa6ol.esm.js} +2 -2
  71. package/dist/chunks/{share-button-Gz4GlT28.esm.js.map → share-button-M8cMa6ol.esm.js.map} +1 -1
  72. package/dist/chunks/{update-cart-BJPNyfQK.esm.js → update-cart-CJywJNax.esm.js} +2 -2
  73. package/dist/chunks/{update-cart-BJPNyfQK.esm.js.map → update-cart-CJywJNax.esm.js.map} +1 -1
  74. package/dist/chunks/{update-cart-_BGjED9E.esm.js → update-cart-gwNcGXkd.esm.js} +2 -2
  75. package/dist/chunks/{update-cart-_BGjED9E.esm.js.map → update-cart-gwNcGXkd.esm.js.map} +1 -1
  76. package/dist/chunks/vendor-KKSARHWL.esm.js.map +1 -1
  77. package/dist/components/beam-partner-logos.esm.js.map +1 -1
  78. package/dist/components/beam-partner-logos.js.map +1 -1
  79. package/dist/components/community-impact.esm.js +1 -1
  80. package/dist/components/community-impact.esm.js.map +1 -1
  81. package/dist/components/community-impact.js +1 -1
  82. package/dist/components/community-impact.js.map +1 -1
  83. package/dist/components/cumulative-impact.esm.js +1 -1
  84. package/dist/components/cumulative-impact.esm.js.map +1 -1
  85. package/dist/components/cumulative-impact.js +1 -1
  86. package/dist/components/cumulative-impact.js.map +1 -1
  87. package/dist/components/impact-overview.esm.js +1 -1
  88. package/dist/components/impact-overview.esm.js.map +1 -1
  89. package/dist/components/impact-overview.js +1 -1
  90. package/dist/components/impact-overview.js.map +1 -1
  91. package/dist/components/index.d.ts +1 -1
  92. package/dist/components/index.esm.js +1 -1
  93. package/dist/components/index.js +1 -1
  94. package/dist/components/post-purchase.d.ts +2 -1
  95. package/dist/components/post-purchase.esm.js +3 -3
  96. package/dist/components/post-purchase.esm.js.map +1 -1
  97. package/dist/components/post-purchase.js +3 -3
  98. package/dist/components/post-purchase.js.map +1 -1
  99. package/dist/components/product-details-page.d.ts +2 -2
  100. package/dist/components/product-details-page.esm.js +7 -7
  101. package/dist/components/product-details-page.esm.js.map +1 -1
  102. package/dist/components/product-details-page.js +7 -7
  103. package/dist/components/product-details-page.js.map +1 -1
  104. package/dist/components/redeem-transaction.d.ts +1 -1
  105. package/dist/components/redeem-transaction.esm.js +1 -1
  106. package/dist/components/redeem-transaction.js +1 -1
  107. package/dist/components/select-nonprofit.d.ts +1 -1
  108. package/dist/components/select-nonprofit.esm.js +1 -1
  109. package/dist/components/select-nonprofit.esm.js.map +1 -1
  110. package/dist/components/select-nonprofit.js +1 -1
  111. package/dist/components/select-nonprofit.js.map +1 -1
  112. package/dist/components/select-subscription-nonprofit.d.ts +1 -1
  113. package/dist/components/select-subscription-nonprofit.esm.js +1 -1
  114. package/dist/components/select-subscription-nonprofit.esm.js.map +1 -1
  115. package/dist/components/select-subscription-nonprofit.js +1 -1
  116. package/dist/components/select-subscription-nonprofit.js.map +1 -1
  117. package/dist/components/shopify.d.ts +4 -4
  118. package/dist/components/shopify.esm.js +1 -1
  119. package/dist/components/shopify.js +1 -1
  120. package/dist/components/social-share.esm.js +1 -1
  121. package/dist/components/social-share.esm.js.map +1 -1
  122. package/dist/components/social-share.js +1 -1
  123. package/dist/components/social-share.js.map +1 -1
  124. package/dist/components/subscription-impact.d.ts +1 -1
  125. package/dist/components/subscription-impact.esm.js +1 -1
  126. package/dist/components/subscription-impact.esm.js.map +1 -1
  127. package/dist/components/subscription-impact.js +1 -1
  128. package/dist/components/subscription-impact.js.map +1 -1
  129. package/dist/components/subscription-management.d.ts +2 -2
  130. package/dist/components/subscription-management.esm.js +1 -1
  131. package/dist/components/subscription-management.esm.js.map +1 -1
  132. package/dist/components/subscription-management.js +1 -1
  133. package/dist/components/subscription-management.js.map +1 -1
  134. package/dist/index.d.ts +9 -9
  135. package/dist/index.esm.js +1 -1
  136. package/dist/index.js +1 -1
  137. package/dist/integrations/beam.esm.js +1 -1
  138. package/dist/integrations/beam.esm.js.map +1 -1
  139. package/dist/integrations/beam.js +1 -1
  140. package/dist/integrations/beam.js.map +1 -1
  141. package/dist/integrations/cart.esm.js +1 -1
  142. package/dist/integrations/cart.js +1 -1
  143. package/dist/integrations/index.d.ts +6 -6
  144. package/dist/integrations/index.esm.js +1 -1
  145. package/dist/integrations/index.js +1 -1
  146. package/dist/integrations/logs.esm.js +1 -1
  147. package/dist/integrations/logs.js +1 -1
  148. package/dist/integrations/promoManager.esm.js.map +1 -1
  149. package/dist/integrations/promoManager.js.map +1 -1
  150. package/dist/integrations/shopify.d.ts +2 -2
  151. package/dist/integrations/shopify.esm.js +1 -1
  152. package/dist/integrations/shopify.js +1 -1
  153. package/dist/integrations/statsig.esm.js +1 -1
  154. package/dist/integrations/statsig.esm.js.map +1 -1
  155. package/dist/integrations/statsig.js +1 -1
  156. package/dist/integrations/statsig.js.map +1 -1
  157. package/dist/integrations/utils.d.ts +2 -2
  158. package/dist/react/beam-partner-logos.esm.js.map +1 -1
  159. package/dist/react/beam-partner-logos.js.map +1 -1
  160. package/dist/react/community-impact.esm.js +1 -1
  161. package/dist/react/community-impact.js +1 -1
  162. package/dist/react/cumulative-impact.esm.js +1 -1
  163. package/dist/react/cumulative-impact.js +1 -1
  164. package/dist/react/impact-overview.esm.js +1 -1
  165. package/dist/react/impact-overview.js +1 -1
  166. package/dist/react/index.d.ts +14 -14
  167. package/dist/react/index.esm.js +1 -1
  168. package/dist/react/index.js +1 -1
  169. package/dist/react/post-purchase.esm.js +1 -1
  170. package/dist/react/post-purchase.js +1 -1
  171. package/dist/react/product-details-page.d.ts +1 -1
  172. package/dist/react/product-details-page.esm.js +1 -1
  173. package/dist/react/product-details-page.js +1 -1
  174. package/dist/react/redeem-transaction.d.ts +2 -2
  175. package/dist/react/redeem-transaction.esm.js +1 -1
  176. package/dist/react/redeem-transaction.esm.js.map +1 -1
  177. package/dist/react/redeem-transaction.js +1 -1
  178. package/dist/react/redeem-transaction.js.map +1 -1
  179. package/dist/react/select-nonprofit.d.ts +2 -2
  180. package/dist/react/select-nonprofit.esm.js +1 -1
  181. package/dist/react/select-nonprofit.esm.js.map +1 -1
  182. package/dist/react/select-nonprofit.js +1 -1
  183. package/dist/react/select-nonprofit.js.map +1 -1
  184. package/dist/react/select-subscription-nonprofit.d.ts +2 -2
  185. package/dist/react/select-subscription-nonprofit.esm.js +1 -1
  186. package/dist/react/select-subscription-nonprofit.esm.js.map +1 -1
  187. package/dist/react/select-subscription-nonprofit.js +1 -1
  188. package/dist/react/select-subscription-nonprofit.js.map +1 -1
  189. package/dist/react/social-share.esm.js +1 -1
  190. package/dist/react/social-share.js +1 -1
  191. package/dist/react/subscription-impact.esm.js +1 -1
  192. package/dist/react/subscription-impact.js +1 -1
  193. package/dist/react/subscription-management.d.ts +1 -1
  194. package/dist/react/subscription-management.esm.js +1 -1
  195. package/dist/react/subscription-management.js +1 -1
  196. package/dist/utils/cookies.esm.js.map +1 -1
  197. package/dist/utils/cookies.js.map +1 -1
  198. package/dist/utils/events.d.ts +2 -2
  199. package/dist/utils/index.d.ts +2 -2
  200. package/dist/utils/makeApiKeyHeader.esm.js.map +1 -1
  201. package/dist/utils/makeApiKeyHeader.js.map +1 -1
  202. package/dist/utils/memoize-last.esm.js.map +1 -1
  203. package/dist/utils/memoize-last.js.map +1 -1
  204. package/dist/utils/network-listeners.esm.js.map +1 -1
  205. package/dist/utils/network-listeners.js.map +1 -1
  206. package/dist/utils/promoManager.d.ts +1 -1
  207. package/dist/utils/promoManager.esm.js.map +1 -1
  208. package/dist/utils/promoManager.js.map +1 -1
  209. package/dist/utils/wait-for-element.esm.js.map +1 -1
  210. package/dist/utils/wait-for-element.js.map +1 -1
  211. package/package.json +2 -2
  212. package/dist/chunks/index-8_I5ySms.esm.js +0 -2
  213. package/dist/chunks/index-8_I5ySms.esm.js.map +0 -1
  214. package/dist/chunks/index-CNk8n3rH.esm.js +0 -2
  215. package/dist/chunks/index-CNk8n3rH.esm.js.map +0 -1
  216. package/dist/chunks/index-CQNxdYCM.esm.js.map +0 -1
  217. package/dist/chunks/index-Cc56yRag.esm.js.map +0 -1
  218. package/dist/chunks/index-Cvwx-mJw.esm.js.map +0 -1
  219. package/dist/chunks/index-D4P62wPH.esm.js.map +0 -1
  220. package/dist/chunks/index-D9fJ0fnB.esm.js +0 -2
  221. package/dist/chunks/index-D9fJ0fnB.esm.js.map +0 -1
  222. package/dist/chunks/index-DuOCy5gV.esm.js +0 -2
  223. package/dist/chunks/index-DuOCy5gV.esm.js.map +0 -1
@@ -1,10 +1,10 @@
1
1
  import * as _lit_react from '@lit/react';
2
2
  import { EventName } from '@lit/react';
3
- import { B as BeamNonprofitSelectEvent } from '../chunks/events-B7l6VPsF.esm.js';
3
+ import { B as BeamNonprofitSelectEvent } from '../chunks/events-CSyogxoH.esm.js';
4
4
  import { BeamRedeemTransaction as BeamRedeemTransaction$1 } from '../components/redeem-transaction.js';
5
5
  import '../chunks/cart-contents-CLT7p7Gd.esm.js';
6
6
  import '../chunks/openapi-spec-Bk7E2QQP.esm.js';
7
- import '../chunks/promo-types-BPmDZ5dF.esm.js';
7
+ import '../chunks/promo-types-7r9-UuiP.esm.js';
8
8
  import '../chunks/types-CPxMwnoR.esm.js';
9
9
  import 'lit-html';
10
10
  import 'lit';
@@ -1,2 +1,2 @@
1
- import o from"react";import{l as r}from"../chunks/lit-WqMxC_PA.esm.js";import{c as e}from"../chunks/events-Dki0ka4F.esm.js";import{B as t}from"../chunks/index-B-y_clPF.esm.js";import"../chunks/lodash-D3TLHRR_.esm.js";import"../chunks/localize-Btu9xYcE.esm.js";import"../chunks/beam-errors-Ci0d3926.esm.js";import"../utils/logger.esm.js";import"../chunks/routes-DzqKnt5D.esm.js";import"../chunks/promo-types-DKAOFHJr.esm.js";import"../chunks/progress-bar-DF7UuuHb.esm.js";import"../chunks/promo-pill-label-Fdt5WTOL.esm.js";import"../chunks/_share-dialog-dependencies-C9KUQdZi.esm.js";import"../chunks/vendor-KKSARHWL.esm.js";import"../components/beam-partner-logos.esm.js";import"../chunks/enforce-config-CZ3ToOgr.esm.js";import"../chunks/loading-template-DG4lkIIc.esm.js";import"../utils/local-storage.esm.js";import"../chunks/css-card-grid-CvoGpsJH.esm.js";const m=r({tagName:t.tagName,elementClass:t,react:o,events:{onNonprofitSelect:e.eventName}});export{m as BeamRedeemTransaction,m as default};
1
+ import o from"react";import{l as r}from"../chunks/lit-WqMxC_PA.esm.js";import{c as e}from"../chunks/events-Dki0ka4F.esm.js";import{B as t}from"../chunks/index-C5gnsl34.esm.js";import"../chunks/lodash-D3TLHRR_.esm.js";import"../chunks/localize-Btu9xYcE.esm.js";import"../chunks/beam-errors-Ci0d3926.esm.js";import"../utils/logger.esm.js";import"../chunks/routes-DguZveS3.esm.js";import"../chunks/promo-types-DKAOFHJr.esm.js";import"../chunks/progress-bar-DF7UuuHb.esm.js";import"../chunks/promo-pill-label-WGLW3bql.esm.js";import"../chunks/_share-dialog-dependencies-dHlBUqo0.esm.js";import"../chunks/vendor-KKSARHWL.esm.js";import"../components/beam-partner-logos.esm.js";import"../chunks/enforce-config-CZ3ToOgr.esm.js";import"../chunks/loading-template-DG4lkIIc.esm.js";import"../utils/local-storage.esm.js";import"../chunks/css-card-grid-CvoGpsJH.esm.js";const m=r({tagName:t.tagName,elementClass:t,react:o,events:{onNonprofitSelect:e.eventName}});export{m as BeamRedeemTransaction,m as default};
2
2
  //# sourceMappingURL=redeem-transaction.esm.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"redeem-transaction.esm.js","sources":["../../src/components/redeem-transaction/react.ts"],"sourcesContent":["import React from \"react\";\nimport { createComponent, EventName } from \"@lit/react\";\nimport { BeamNonprofitSelectEvent } from \"../../utils/events\";\nimport { BeamRedeemTransaction as _BeamRedeemTransaction } from \"./index\";\n\nexport const BeamRedeemTransaction = createComponent({\n tagName: _BeamRedeemTransaction.tagName,\n elementClass: _BeamRedeemTransaction,\n react: React,\n events: {\n onNonprofitSelect: BeamNonprofitSelectEvent.eventName as EventName<BeamNonprofitSelectEvent>,\n },\n});\n\nexport default BeamRedeemTransaction; // default alias for use with async import utils like next/dynamic and react.lazy\n"],"names":["BeamRedeemTransaction","createComponent","_BeamRedeemTransaction","React","BeamNonprofitSelectEvent"],"mappings":"01BAKa,MAAAA,EAAwBC,EAAgB,CACnD,QAASC,EAAuB,QAChC,aAAcA,EACd,MAAOC,EACP,OAAQ,CACN,kBAAmBC,EAAyB,SAC9C,CACF,CAAC"}
1
+ {"version":3,"file":"redeem-transaction.esm.js","sources":["../../src/components/redeem-transaction/react.ts"],"sourcesContent":["import React from \"react\";\nimport { createComponent, EventName } from \"@lit/react\";\nimport { BeamNonprofitSelectEvent } from \"../../utils/events\";\nimport { BeamRedeemTransaction as _BeamRedeemTransaction } from \"./index\";\n\nexport const BeamRedeemTransaction = createComponent({\n tagName: _BeamRedeemTransaction.tagName,\n elementClass: _BeamRedeemTransaction,\n react: React,\n events: {\n onNonprofitSelect: BeamNonprofitSelectEvent.eventName as EventName<BeamNonprofitSelectEvent>,\n },\n});\n\nexport default BeamRedeemTransaction; // default alias for use with async import utils like next/dynamic and react.lazy\n"],"names":["BeamRedeemTransaction","createComponent","_BeamRedeemTransaction","React","BeamNonprofitSelectEvent"],"mappings":"01BAKO,MAAMA,EAAwBC,EAAgB,CACnD,QAASC,EAAuB,QAChC,aAAcA,EACd,MAAOC,EACP,OAAQ,CACN,kBAAmBC,EAAyB,SAC9C,CACF,CAAC"}
@@ -1,2 +1,2 @@
1
- import o from"react";import{l as r}from"../chunks/lit-WqMxC_PA.esm.js";import{c as e}from"../chunks/events-Dki0ka4F.esm.js";import{B as t}from"../chunks/index-DkN5rVx1.esm.js";import"../chunks/lodash-D3TLHRR_.esm.js";import"../chunks/localize-C25pEGnx.esm.js";import"../chunks/beam-errors-Ci0d3926.esm.js";import"../utils/logger.js";import"../chunks/routes-DpniIBF7.esm.js";import"../chunks/promo-types-DKAOFHJr.esm.js";import"../chunks/progress-bar-DF7UuuHb.esm.js";import"../chunks/promo-pill-label-B5ymzjIe.esm.js";import"../chunks/_share-dialog-dependencies-BA9f_o0p.esm.js";import"../chunks/vendor-KKSARHWL.esm.js";import"../components/beam-partner-logos.js";import"../chunks/enforce-config-Ba1JkOHs.esm.js";import"../chunks/loading-template-DG4lkIIc.esm.js";import"../utils/local-storage.js";import"../chunks/css-card-grid-CvoGpsJH.esm.js";const m=r({tagName:t.tagName,elementClass:t,react:o,events:{onNonprofitSelect:e.eventName}});export{m as BeamRedeemTransaction,m as default};
1
+ import o from"react";import{l as r}from"../chunks/lit-WqMxC_PA.esm.js";import{c as e}from"../chunks/events-Dki0ka4F.esm.js";import{B as t}from"../chunks/index-2OQzw7UI.esm.js";import"../chunks/lodash-D3TLHRR_.esm.js";import"../chunks/localize-C25pEGnx.esm.js";import"../chunks/beam-errors-Ci0d3926.esm.js";import"../utils/logger.js";import"../chunks/routes-BvX92EDq.esm.js";import"../chunks/promo-types-DKAOFHJr.esm.js";import"../chunks/progress-bar-DF7UuuHb.esm.js";import"../chunks/promo-pill-label-ByFGhdxh.esm.js";import"../chunks/_share-dialog-dependencies-BG0p8uUr.esm.js";import"../chunks/vendor-KKSARHWL.esm.js";import"../components/beam-partner-logos.js";import"../chunks/enforce-config-Ba1JkOHs.esm.js";import"../chunks/loading-template-DG4lkIIc.esm.js";import"../utils/local-storage.js";import"../chunks/css-card-grid-CvoGpsJH.esm.js";const m=r({tagName:t.tagName,elementClass:t,react:o,events:{onNonprofitSelect:e.eventName}});export{m as BeamRedeemTransaction,m as default};
2
2
  //# sourceMappingURL=redeem-transaction.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"redeem-transaction.js","sources":["../../src/components/redeem-transaction/react.ts"],"sourcesContent":["import React from \"react\";\nimport { createComponent, EventName } from \"@lit/react\";\nimport { BeamNonprofitSelectEvent } from \"../../utils/events\";\nimport { BeamRedeemTransaction as _BeamRedeemTransaction } from \"./index\";\n\nexport const BeamRedeemTransaction = createComponent({\n tagName: _BeamRedeemTransaction.tagName,\n elementClass: _BeamRedeemTransaction,\n react: React,\n events: {\n onNonprofitSelect: BeamNonprofitSelectEvent.eventName as EventName<BeamNonprofitSelectEvent>,\n },\n});\n\nexport default BeamRedeemTransaction; // default alias for use with async import utils like next/dynamic and react.lazy\n"],"names":["BeamRedeemTransaction","createComponent","_BeamRedeemTransaction","React","BeamNonprofitSelectEvent"],"mappings":"80BAKa,MAAAA,EAAwBC,EAAgB,CACnD,QAASC,EAAuB,QAChC,aAAcA,EACd,MAAOC,EACP,OAAQ,CACN,kBAAmBC,EAAyB,SAC9C,CACF,CAAC"}
1
+ {"version":3,"file":"redeem-transaction.js","sources":["../../src/components/redeem-transaction/react.ts"],"sourcesContent":["import React from \"react\";\nimport { createComponent, EventName } from \"@lit/react\";\nimport { BeamNonprofitSelectEvent } from \"../../utils/events\";\nimport { BeamRedeemTransaction as _BeamRedeemTransaction } from \"./index\";\n\nexport const BeamRedeemTransaction = createComponent({\n tagName: _BeamRedeemTransaction.tagName,\n elementClass: _BeamRedeemTransaction,\n react: React,\n events: {\n onNonprofitSelect: BeamNonprofitSelectEvent.eventName as EventName<BeamNonprofitSelectEvent>,\n },\n});\n\nexport default BeamRedeemTransaction; // default alias for use with async import utils like next/dynamic and react.lazy\n"],"names":["BeamRedeemTransaction","createComponent","_BeamRedeemTransaction","React","BeamNonprofitSelectEvent"],"mappings":"80BAKO,MAAMA,EAAwBC,EAAgB,CACnD,QAASC,EAAuB,QAChC,aAAcA,EACd,MAAOC,EACP,OAAQ,CACN,kBAAmBC,EAAyB,SAC9C,CACF,CAAC"}
@@ -1,10 +1,10 @@
1
1
  import * as _lit_react from '@lit/react';
2
2
  import { EventName } from '@lit/react';
3
- import { B as BeamNonprofitSelectEvent } from '../chunks/events-B7l6VPsF.esm.js';
3
+ import { B as BeamNonprofitSelectEvent } from '../chunks/events-CSyogxoH.esm.js';
4
4
  import { BeamSelectNonprofit as BeamSelectNonprofit$1 } from '../components/select-nonprofit.js';
5
5
  import '../chunks/cart-contents-CLT7p7Gd.esm.js';
6
6
  import '../chunks/openapi-spec-Bk7E2QQP.esm.js';
7
- import '../chunks/promo-types-BPmDZ5dF.esm.js';
7
+ import '../chunks/promo-types-7r9-UuiP.esm.js';
8
8
  import '../chunks/types-CPxMwnoR.esm.js';
9
9
  import 'lit-html';
10
10
  import 'lit';
@@ -1,2 +1,2 @@
1
- import o from"react";import{l as m}from"../chunks/lit-WqMxC_PA.esm.js";import{c as r}from"../chunks/events-Dki0ka4F.esm.js";import{BeamSelectNonprofit as e}from"../components/select-nonprofit.esm.js";import"../chunks/lodash-D3TLHRR_.esm.js";import"../chunks/localize-Btu9xYcE.esm.js";import"../chunks/beam-errors-Ci0d3926.esm.js";import"../utils/logger.esm.js";import"../chunks/routes-DzqKnt5D.esm.js";import"../chunks/promo-types-DKAOFHJr.esm.js";import"../chunks/progress-bar-DF7UuuHb.esm.js";import"../chunks/promo-pill-label-Fdt5WTOL.esm.js";import"../chunks/_share-dialog-dependencies-C9KUQdZi.esm.js";import"../chunks/vendor-KKSARHWL.esm.js";import"../chunks/enforce-config-CZ3ToOgr.esm.js";import"../chunks/loading-template-DG4lkIIc.esm.js";import"../utils/local-storage.esm.js";import"../utils/promoManager.esm.js";import"../utils/cookies.esm.js";import"../chunks/responsive-BR8qUfBa.esm.js";import"../chunks/cart-contents-DkoytiZh.esm.js";import"../utils/cart.esm.js";const t=m({tagName:"beam-select-nonprofit",elementClass:e,react:o,events:{onNonprofitSelect:r.eventName}});export{t as BeamSelectNonprofit,t as default};
1
+ import o from"react";import{l as m}from"../chunks/lit-WqMxC_PA.esm.js";import{c as r}from"../chunks/events-Dki0ka4F.esm.js";import{BeamSelectNonprofit as e}from"../components/select-nonprofit.esm.js";import"../chunks/lodash-D3TLHRR_.esm.js";import"../chunks/localize-Btu9xYcE.esm.js";import"../chunks/beam-errors-Ci0d3926.esm.js";import"../utils/logger.esm.js";import"../chunks/routes-DguZveS3.esm.js";import"../chunks/promo-types-DKAOFHJr.esm.js";import"../chunks/progress-bar-DF7UuuHb.esm.js";import"../chunks/promo-pill-label-WGLW3bql.esm.js";import"../chunks/_share-dialog-dependencies-dHlBUqo0.esm.js";import"../chunks/vendor-KKSARHWL.esm.js";import"../chunks/enforce-config-CZ3ToOgr.esm.js";import"../chunks/loading-template-DG4lkIIc.esm.js";import"../utils/local-storage.esm.js";import"../utils/promoManager.esm.js";import"../utils/cookies.esm.js";import"../chunks/responsive-BR8qUfBa.esm.js";import"../chunks/cart-contents-DkoytiZh.esm.js";import"../utils/cart.esm.js";const t=m({tagName:"beam-select-nonprofit",elementClass:e,react:o,events:{onNonprofitSelect:r.eventName}});export{t as BeamSelectNonprofit,t as default};
2
2
  //# sourceMappingURL=select-nonprofit.esm.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"select-nonprofit.esm.js","sources":["../../src/components/select-nonprofit/react.ts"],"sourcesContent":["import React from \"react\";\nimport { createComponent, EventName } from \"@lit/react\";\nimport { BeamNonprofitSelectEvent } from \"../../utils/events\";\nimport { BeamSelectNonprofit as _BeamSelectNonprofit } from \"./index\";\n\nexport const BeamSelectNonprofit = createComponent({\n tagName: \"beam-select-nonprofit\",\n elementClass: _BeamSelectNonprofit,\n react: React,\n events: {\n onNonprofitSelect: BeamNonprofitSelectEvent.eventName as EventName<BeamNonprofitSelectEvent>,\n },\n});\n\nexport default BeamSelectNonprofit; // default alias for use with async import utils like next/dynamic and react.lazy\n"],"names":["BeamSelectNonprofit","createComponent","_BeamSelectNonprofit","React","BeamNonprofitSelectEvent"],"mappings":"i9BAKa,MAAAA,EAAsBC,EAAgB,CACjD,QAAS,wBACT,aAAcC,EACd,MAAOC,EACP,OAAQ,CACN,kBAAmBC,EAAyB,SAC9C,CACF,CAAC"}
1
+ {"version":3,"file":"select-nonprofit.esm.js","sources":["../../src/components/select-nonprofit/react.ts"],"sourcesContent":["import React from \"react\";\nimport { createComponent, EventName } from \"@lit/react\";\nimport { BeamNonprofitSelectEvent } from \"../../utils/events\";\nimport { BeamSelectNonprofit as _BeamSelectNonprofit } from \"./index\";\n\nexport const BeamSelectNonprofit = createComponent({\n tagName: \"beam-select-nonprofit\",\n elementClass: _BeamSelectNonprofit,\n react: React,\n events: {\n onNonprofitSelect: BeamNonprofitSelectEvent.eventName as EventName<BeamNonprofitSelectEvent>,\n },\n});\n\nexport default BeamSelectNonprofit; // default alias for use with async import utils like next/dynamic and react.lazy\n"],"names":["BeamSelectNonprofit","createComponent","_BeamSelectNonprofit","React","BeamNonprofitSelectEvent"],"mappings":"i9BAKO,MAAMA,EAAsBC,EAAgB,CACjD,QAAS,wBACT,aAAcC,EACd,MAAOC,EACP,OAAQ,CACN,kBAAmBC,EAAyB,SAC9C,CACF,CAAC"}
@@ -1,2 +1,2 @@
1
- import o from"react";import{l as m}from"../chunks/lit-WqMxC_PA.esm.js";import{c as r}from"../chunks/events-Dki0ka4F.esm.js";import{BeamSelectNonprofit as e}from"../components/select-nonprofit.js";import"../chunks/lodash-D3TLHRR_.esm.js";import"../chunks/localize-C25pEGnx.esm.js";import"../chunks/beam-errors-Ci0d3926.esm.js";import"../utils/logger.js";import"../chunks/routes-DpniIBF7.esm.js";import"../chunks/promo-types-DKAOFHJr.esm.js";import"../chunks/progress-bar-DF7UuuHb.esm.js";import"../chunks/promo-pill-label-B5ymzjIe.esm.js";import"../chunks/_share-dialog-dependencies-BA9f_o0p.esm.js";import"../chunks/vendor-KKSARHWL.esm.js";import"../chunks/enforce-config-Ba1JkOHs.esm.js";import"../chunks/loading-template-DG4lkIIc.esm.js";import"../utils/local-storage.js";import"../utils/promoManager.js";import"../utils/cookies.js";import"../chunks/responsive-BR8qUfBa.esm.js";import"../chunks/cart-contents-DkoytiZh.esm.js";import"../utils/cart.js";const t=m({tagName:"beam-select-nonprofit",elementClass:e,react:o,events:{onNonprofitSelect:r.eventName}});export{t as BeamSelectNonprofit,t as default};
1
+ import o from"react";import{l as m}from"../chunks/lit-WqMxC_PA.esm.js";import{c as r}from"../chunks/events-Dki0ka4F.esm.js";import{BeamSelectNonprofit as e}from"../components/select-nonprofit.js";import"../chunks/lodash-D3TLHRR_.esm.js";import"../chunks/localize-C25pEGnx.esm.js";import"../chunks/beam-errors-Ci0d3926.esm.js";import"../utils/logger.js";import"../chunks/routes-BvX92EDq.esm.js";import"../chunks/promo-types-DKAOFHJr.esm.js";import"../chunks/progress-bar-DF7UuuHb.esm.js";import"../chunks/promo-pill-label-ByFGhdxh.esm.js";import"../chunks/_share-dialog-dependencies-BG0p8uUr.esm.js";import"../chunks/vendor-KKSARHWL.esm.js";import"../chunks/enforce-config-Ba1JkOHs.esm.js";import"../chunks/loading-template-DG4lkIIc.esm.js";import"../utils/local-storage.js";import"../utils/promoManager.js";import"../utils/cookies.js";import"../chunks/responsive-BR8qUfBa.esm.js";import"../chunks/cart-contents-DkoytiZh.esm.js";import"../utils/cart.js";const t=m({tagName:"beam-select-nonprofit",elementClass:e,react:o,events:{onNonprofitSelect:r.eventName}});export{t as BeamSelectNonprofit,t as default};
2
2
  //# sourceMappingURL=select-nonprofit.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"select-nonprofit.js","sources":["../../src/components/select-nonprofit/react.ts"],"sourcesContent":["import React from \"react\";\nimport { createComponent, EventName } from \"@lit/react\";\nimport { BeamNonprofitSelectEvent } from \"../../utils/events\";\nimport { BeamSelectNonprofit as _BeamSelectNonprofit } from \"./index\";\n\nexport const BeamSelectNonprofit = createComponent({\n tagName: \"beam-select-nonprofit\",\n elementClass: _BeamSelectNonprofit,\n react: React,\n events: {\n onNonprofitSelect: BeamNonprofitSelectEvent.eventName as EventName<BeamNonprofitSelectEvent>,\n },\n});\n\nexport default BeamSelectNonprofit; // default alias for use with async import utils like next/dynamic and react.lazy\n"],"names":["BeamSelectNonprofit","createComponent","_BeamSelectNonprofit","React","BeamNonprofitSelectEvent"],"mappings":"y7BAKa,MAAAA,EAAsBC,EAAgB,CACjD,QAAS,wBACT,aAAcC,EACd,MAAOC,EACP,OAAQ,CACN,kBAAmBC,EAAyB,SAC9C,CACF,CAAC"}
1
+ {"version":3,"file":"select-nonprofit.js","sources":["../../src/components/select-nonprofit/react.ts"],"sourcesContent":["import React from \"react\";\nimport { createComponent, EventName } from \"@lit/react\";\nimport { BeamNonprofitSelectEvent } from \"../../utils/events\";\nimport { BeamSelectNonprofit as _BeamSelectNonprofit } from \"./index\";\n\nexport const BeamSelectNonprofit = createComponent({\n tagName: \"beam-select-nonprofit\",\n elementClass: _BeamSelectNonprofit,\n react: React,\n events: {\n onNonprofitSelect: BeamNonprofitSelectEvent.eventName as EventName<BeamNonprofitSelectEvent>,\n },\n});\n\nexport default BeamSelectNonprofit; // default alias for use with async import utils like next/dynamic and react.lazy\n"],"names":["BeamSelectNonprofit","createComponent","_BeamSelectNonprofit","React","BeamNonprofitSelectEvent"],"mappings":"y7BAKO,MAAMA,EAAsBC,EAAgB,CACjD,QAAS,wBACT,aAAcC,EACd,MAAOC,EACP,OAAQ,CACN,kBAAmBC,EAAyB,SAC9C,CACF,CAAC"}
@@ -1,10 +1,10 @@
1
1
  import * as _lit_react from '@lit/react';
2
2
  import { EventName } from '@lit/react';
3
- import { B as BeamNonprofitSelectEvent } from '../chunks/events-B7l6VPsF.esm.js';
3
+ import { B as BeamNonprofitSelectEvent } from '../chunks/events-CSyogxoH.esm.js';
4
4
  import { BeamSelectSubscriptionNonprofit as BeamSelectSubscriptionNonprofit$1 } from '../components/select-subscription-nonprofit.js';
5
5
  import '../chunks/cart-contents-CLT7p7Gd.esm.js';
6
6
  import '../chunks/openapi-spec-Bk7E2QQP.esm.js';
7
- import '../chunks/promo-types-BPmDZ5dF.esm.js';
7
+ import '../chunks/promo-types-7r9-UuiP.esm.js';
8
8
  import '../chunks/types-CPxMwnoR.esm.js';
9
9
  import 'lit-html';
10
10
  import 'lit';
@@ -1,2 +1,2 @@
1
- import r from"react";import{l as m}from"../chunks/lit-WqMxC_PA.esm.js";import{c as e}from"../chunks/events-Dki0ka4F.esm.js";import{BeamSelectSubscriptionNonprofit as t}from"../components/select-subscription-nonprofit.esm.js";import"../chunks/lodash-D3TLHRR_.esm.js";import"../chunks/routes-DzqKnt5D.esm.js";import"../chunks/promo-types-DKAOFHJr.esm.js";import"../chunks/beam-errors-Ci0d3926.esm.js";import"../utils/logger.esm.js";import"../chunks/localize-Btu9xYcE.esm.js";import"../chunks/progress-bar-DF7UuuHb.esm.js";import"../chunks/enforce-config-CZ3ToOgr.esm.js";import"../chunks/loading-template-DG4lkIIc.esm.js";import"../utils/makeApiKeyHeader.esm.js";import"../utils/local-storage.esm.js";import"../chunks/css-card-grid-CvoGpsJH.esm.js";import"../components/beam-partner-logos.esm.js";const o=m({tagName:t.tagName,elementClass:t,react:r,events:{onNonprofitSelect:e.eventName}});export{o as BeamSelectSubscriptionNonprofit,o as default};
1
+ import r from"react";import{l as m}from"../chunks/lit-WqMxC_PA.esm.js";import{c as e}from"../chunks/events-Dki0ka4F.esm.js";import{BeamSelectSubscriptionNonprofit as t}from"../components/select-subscription-nonprofit.esm.js";import"../chunks/lodash-D3TLHRR_.esm.js";import"../chunks/routes-DguZveS3.esm.js";import"../chunks/promo-types-DKAOFHJr.esm.js";import"../chunks/beam-errors-Ci0d3926.esm.js";import"../utils/logger.esm.js";import"../chunks/localize-Btu9xYcE.esm.js";import"../chunks/progress-bar-DF7UuuHb.esm.js";import"../chunks/enforce-config-CZ3ToOgr.esm.js";import"../chunks/loading-template-DG4lkIIc.esm.js";import"../utils/makeApiKeyHeader.esm.js";import"../utils/local-storage.esm.js";import"../chunks/css-card-grid-CvoGpsJH.esm.js";import"../components/beam-partner-logos.esm.js";const o=m({tagName:t.tagName,elementClass:t,react:r,events:{onNonprofitSelect:e.eventName}});export{o as BeamSelectSubscriptionNonprofit,o as default};
2
2
  //# sourceMappingURL=select-subscription-nonprofit.esm.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"select-subscription-nonprofit.esm.js","sources":["../../src/components/select-subscription-nonprofit/react.ts"],"sourcesContent":["import React from \"react\";\nimport { createComponent, EventName } from \"@lit/react\";\nimport { BeamNonprofitSelectEvent } from \"../../utils/events\";\nimport { BeamSelectSubscriptionNonprofit as _BeamSelectSubscriptionNonprofit } from \"./index\";\n\nexport const BeamSelectSubscriptionNonprofit = createComponent({\n tagName: _BeamSelectSubscriptionNonprofit.tagName,\n elementClass: _BeamSelectSubscriptionNonprofit,\n react: React,\n events: {\n onNonprofitSelect: BeamNonprofitSelectEvent.eventName as EventName<BeamNonprofitSelectEvent>,\n },\n});\n\nexport default BeamSelectSubscriptionNonprofit; // default alias for use with async import utils like next/dynamic and react.lazy\n"],"names":["BeamSelectSubscriptionNonprofit","createComponent","_BeamSelectSubscriptionNonprofit","React","BeamNonprofitSelectEvent"],"mappings":"2xBAKa,MAAAA,EAAkCC,EAAgB,CAC7D,QAASC,EAAiC,QAC1C,aAAcA,EACd,MAAOC,EACP,OAAQ,CACN,kBAAmBC,EAAyB,SAC9C,CACF,CAAC"}
1
+ {"version":3,"file":"select-subscription-nonprofit.esm.js","sources":["../../src/components/select-subscription-nonprofit/react.ts"],"sourcesContent":["import React from \"react\";\nimport { createComponent, EventName } from \"@lit/react\";\nimport { BeamNonprofitSelectEvent } from \"../../utils/events\";\nimport { BeamSelectSubscriptionNonprofit as _BeamSelectSubscriptionNonprofit } from \"./index\";\n\nexport const BeamSelectSubscriptionNonprofit = createComponent({\n tagName: _BeamSelectSubscriptionNonprofit.tagName,\n elementClass: _BeamSelectSubscriptionNonprofit,\n react: React,\n events: {\n onNonprofitSelect: BeamNonprofitSelectEvent.eventName as EventName<BeamNonprofitSelectEvent>,\n },\n});\n\nexport default BeamSelectSubscriptionNonprofit; // default alias for use with async import utils like next/dynamic and react.lazy\n"],"names":["BeamSelectSubscriptionNonprofit","createComponent","_BeamSelectSubscriptionNonprofit","React","BeamNonprofitSelectEvent"],"mappings":"2xBAKO,MAAMA,EAAkCC,EAAgB,CAC7D,QAASC,EAAiC,QAC1C,aAAcA,EACd,MAAOC,EACP,OAAQ,CACN,kBAAmBC,EAAyB,SAC9C,CACF,CAAC"}
@@ -1,2 +1,2 @@
1
- import r from"react";import{l as m}from"../chunks/lit-WqMxC_PA.esm.js";import{c as e}from"../chunks/events-Dki0ka4F.esm.js";import{BeamSelectSubscriptionNonprofit as t}from"../components/select-subscription-nonprofit.js";import"../chunks/lodash-D3TLHRR_.esm.js";import"../chunks/routes-DpniIBF7.esm.js";import"../chunks/promo-types-DKAOFHJr.esm.js";import"../chunks/beam-errors-Ci0d3926.esm.js";import"../utils/logger.js";import"../chunks/localize-C25pEGnx.esm.js";import"../chunks/progress-bar-DF7UuuHb.esm.js";import"../chunks/enforce-config-Ba1JkOHs.esm.js";import"../chunks/loading-template-DG4lkIIc.esm.js";import"../utils/makeApiKeyHeader.js";import"../utils/local-storage.js";import"../chunks/css-card-grid-CvoGpsJH.esm.js";import"../components/beam-partner-logos.js";const o=m({tagName:t.tagName,elementClass:t,react:r,events:{onNonprofitSelect:e.eventName}});export{o as BeamSelectSubscriptionNonprofit,o as default};
1
+ import r from"react";import{l as m}from"../chunks/lit-WqMxC_PA.esm.js";import{c as e}from"../chunks/events-Dki0ka4F.esm.js";import{BeamSelectSubscriptionNonprofit as t}from"../components/select-subscription-nonprofit.js";import"../chunks/lodash-D3TLHRR_.esm.js";import"../chunks/routes-BvX92EDq.esm.js";import"../chunks/promo-types-DKAOFHJr.esm.js";import"../chunks/beam-errors-Ci0d3926.esm.js";import"../utils/logger.js";import"../chunks/localize-C25pEGnx.esm.js";import"../chunks/progress-bar-DF7UuuHb.esm.js";import"../chunks/enforce-config-Ba1JkOHs.esm.js";import"../chunks/loading-template-DG4lkIIc.esm.js";import"../utils/makeApiKeyHeader.js";import"../utils/local-storage.js";import"../chunks/css-card-grid-CvoGpsJH.esm.js";import"../components/beam-partner-logos.js";const o=m({tagName:t.tagName,elementClass:t,react:r,events:{onNonprofitSelect:e.eventName}});export{o as BeamSelectSubscriptionNonprofit,o as default};
2
2
  //# sourceMappingURL=select-subscription-nonprofit.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"select-subscription-nonprofit.js","sources":["../../src/components/select-subscription-nonprofit/react.ts"],"sourcesContent":["import React from \"react\";\nimport { createComponent, EventName } from \"@lit/react\";\nimport { BeamNonprofitSelectEvent } from \"../../utils/events\";\nimport { BeamSelectSubscriptionNonprofit as _BeamSelectSubscriptionNonprofit } from \"./index\";\n\nexport const BeamSelectSubscriptionNonprofit = createComponent({\n tagName: _BeamSelectSubscriptionNonprofit.tagName,\n elementClass: _BeamSelectSubscriptionNonprofit,\n react: React,\n events: {\n onNonprofitSelect: BeamNonprofitSelectEvent.eventName as EventName<BeamNonprofitSelectEvent>,\n },\n});\n\nexport default BeamSelectSubscriptionNonprofit; // default alias for use with async import utils like next/dynamic and react.lazy\n"],"names":["BeamSelectSubscriptionNonprofit","createComponent","_BeamSelectSubscriptionNonprofit","React","BeamNonprofitSelectEvent"],"mappings":"uwBAKa,MAAAA,EAAkCC,EAAgB,CAC7D,QAASC,EAAiC,QAC1C,aAAcA,EACd,MAAOC,EACP,OAAQ,CACN,kBAAmBC,EAAyB,SAC9C,CACF,CAAC"}
1
+ {"version":3,"file":"select-subscription-nonprofit.js","sources":["../../src/components/select-subscription-nonprofit/react.ts"],"sourcesContent":["import React from \"react\";\nimport { createComponent, EventName } from \"@lit/react\";\nimport { BeamNonprofitSelectEvent } from \"../../utils/events\";\nimport { BeamSelectSubscriptionNonprofit as _BeamSelectSubscriptionNonprofit } from \"./index\";\n\nexport const BeamSelectSubscriptionNonprofit = createComponent({\n tagName: _BeamSelectSubscriptionNonprofit.tagName,\n elementClass: _BeamSelectSubscriptionNonprofit,\n react: React,\n events: {\n onNonprofitSelect: BeamNonprofitSelectEvent.eventName as EventName<BeamNonprofitSelectEvent>,\n },\n});\n\nexport default BeamSelectSubscriptionNonprofit; // default alias for use with async import utils like next/dynamic and react.lazy\n"],"names":["BeamSelectSubscriptionNonprofit","createComponent","_BeamSelectSubscriptionNonprofit","React","BeamNonprofitSelectEvent"],"mappings":"uwBAKO,MAAMA,EAAkCC,EAAgB,CAC7D,QAASC,EAAiC,QAC1C,aAAcA,EACd,MAAOC,EACP,OAAQ,CACN,kBAAmBC,EAAyB,SAC9C,CACF,CAAC"}
@@ -1,2 +1,2 @@
1
- import r from"react";import{l as t}from"../chunks/lit-WqMxC_PA.esm.js";import{BeamSocialShare as m}from"../components/social-share.esm.js";import"../chunks/vendor-KKSARHWL.esm.js";import"../chunks/_share-dialog-dependencies-C9KUQdZi.esm.js";import"../chunks/routes-DzqKnt5D.esm.js";import"../chunks/promo-types-DKAOFHJr.esm.js";import"../chunks/beam-errors-Ci0d3926.esm.js";import"../utils/logger.esm.js";import"../chunks/progress-bar-DF7UuuHb.esm.js";import"../components/beam-partner-logos.esm.js";import"../chunks/enforce-config-CZ3ToOgr.esm.js";import"../chunks/loading-template-DG4lkIIc.esm.js";import"../chunks/share-button-CnN0Q1m3.esm.js";const o=t({tagName:m.tagName,elementClass:m,react:r});export{o as BeamSocialShare,o as default};
1
+ import r from"react";import{l as t}from"../chunks/lit-WqMxC_PA.esm.js";import{BeamSocialShare as m}from"../components/social-share.esm.js";import"../chunks/vendor-KKSARHWL.esm.js";import"../chunks/_share-dialog-dependencies-dHlBUqo0.esm.js";import"../chunks/routes-DguZveS3.esm.js";import"../chunks/promo-types-DKAOFHJr.esm.js";import"../chunks/beam-errors-Ci0d3926.esm.js";import"../utils/logger.esm.js";import"../chunks/progress-bar-DF7UuuHb.esm.js";import"../components/beam-partner-logos.esm.js";import"../chunks/enforce-config-CZ3ToOgr.esm.js";import"../chunks/loading-template-DG4lkIIc.esm.js";import"../chunks/share-button-M8cMa6ol.esm.js";const o=t({tagName:m.tagName,elementClass:m,react:r});export{o as BeamSocialShare,o as default};
2
2
  //# sourceMappingURL=social-share.esm.js.map
@@ -1,2 +1,2 @@
1
- import r from"react";import{l as t}from"../chunks/lit-WqMxC_PA.esm.js";import{BeamSocialShare as m}from"../components/social-share.js";import"../chunks/vendor-KKSARHWL.esm.js";import"../chunks/_share-dialog-dependencies-BA9f_o0p.esm.js";import"../chunks/routes-DpniIBF7.esm.js";import"../chunks/promo-types-DKAOFHJr.esm.js";import"../chunks/beam-errors-Ci0d3926.esm.js";import"../utils/logger.js";import"../chunks/progress-bar-DF7UuuHb.esm.js";import"../components/beam-partner-logos.js";import"../chunks/enforce-config-Ba1JkOHs.esm.js";import"../chunks/loading-template-DG4lkIIc.esm.js";import"../chunks/share-button-Gz4GlT28.esm.js";const o=t({tagName:m.tagName,elementClass:m,react:r});export{o as BeamSocialShare,o as default};
1
+ import r from"react";import{l as t}from"../chunks/lit-WqMxC_PA.esm.js";import{BeamSocialShare as m}from"../components/social-share.js";import"../chunks/vendor-KKSARHWL.esm.js";import"../chunks/_share-dialog-dependencies-BG0p8uUr.esm.js";import"../chunks/routes-BvX92EDq.esm.js";import"../chunks/promo-types-DKAOFHJr.esm.js";import"../chunks/beam-errors-Ci0d3926.esm.js";import"../utils/logger.js";import"../chunks/progress-bar-DF7UuuHb.esm.js";import"../components/beam-partner-logos.js";import"../chunks/enforce-config-Ba1JkOHs.esm.js";import"../chunks/loading-template-DG4lkIIc.esm.js";import"../chunks/share-button-DPNNnXeM.esm.js";const o=t({tagName:m.tagName,elementClass:m,react:r});export{o as BeamSocialShare,o as default};
2
2
  //# sourceMappingURL=social-share.js.map
@@ -1,2 +1,2 @@
1
- import o from"react";import{l as r}from"../chunks/lit-WqMxC_PA.esm.js";import{BeamSubscriptionImpact as t}from"../components/subscription-impact.esm.js";import"../chunks/lodash-D3TLHRR_.esm.js";import"../chunks/progress-bar-DF7UuuHb.esm.js";import"../chunks/share-button-DOejRGE7.esm.js";import"../chunks/is-all-html-elements-fcB7UUA1.esm.js";import"../chunks/share-button-CnN0Q1m3.esm.js";import"../chunks/routes-DzqKnt5D.esm.js";import"../chunks/promo-types-DKAOFHJr.esm.js";import"../chunks/beam-errors-Ci0d3926.esm.js";import"../utils/logger.esm.js";import"../chunks/vendor-KKSARHWL.esm.js";import"../chunks/_share-dialog-dependencies-C9KUQdZi.esm.js";import"../chunks/localize-Btu9xYcE.esm.js";import"../chunks/enforce-config-CZ3ToOgr.esm.js";import"../chunks/loading-template-DG4lkIIc.esm.js";import"../utils/makeApiKeyHeader.esm.js";import"../chunks/responsive-BR8qUfBa.esm.js";import"../chunks/css-card-grid-CvoGpsJH.esm.js";const m=r({tagName:t.tagName,elementClass:t,react:o,events:{}});export{m as BeamSubscriptionImpact,m as default};
1
+ import o from"react";import{l as r}from"../chunks/lit-WqMxC_PA.esm.js";import{BeamSubscriptionImpact as t}from"../components/subscription-impact.esm.js";import"../chunks/lodash-D3TLHRR_.esm.js";import"../chunks/progress-bar-DF7UuuHb.esm.js";import"../chunks/share-button-DmjRJmXh.esm.js";import"../chunks/is-all-html-elements-fcB7UUA1.esm.js";import"../chunks/share-button-M8cMa6ol.esm.js";import"../chunks/routes-DguZveS3.esm.js";import"../chunks/promo-types-DKAOFHJr.esm.js";import"../chunks/beam-errors-Ci0d3926.esm.js";import"../utils/logger.esm.js";import"../chunks/vendor-KKSARHWL.esm.js";import"../chunks/_share-dialog-dependencies-dHlBUqo0.esm.js";import"../chunks/localize-Btu9xYcE.esm.js";import"../chunks/enforce-config-CZ3ToOgr.esm.js";import"../chunks/loading-template-DG4lkIIc.esm.js";import"../utils/makeApiKeyHeader.esm.js";import"../chunks/responsive-BR8qUfBa.esm.js";import"../chunks/css-card-grid-CvoGpsJH.esm.js";const m=r({tagName:t.tagName,elementClass:t,react:o,events:{}});export{m as BeamSubscriptionImpact,m as default};
2
2
  //# sourceMappingURL=subscription-impact.esm.js.map
@@ -1,2 +1,2 @@
1
- import o from"react";import{l as r}from"../chunks/lit-WqMxC_PA.esm.js";import{BeamSubscriptionImpact as t}from"../components/subscription-impact.js";import"../chunks/lodash-D3TLHRR_.esm.js";import"../chunks/progress-bar-DF7UuuHb.esm.js";import"../chunks/share-button-B2RwMJdP.esm.js";import"../chunks/is-all-html-elements-fcB7UUA1.esm.js";import"../chunks/share-button-Gz4GlT28.esm.js";import"../chunks/routes-DpniIBF7.esm.js";import"../chunks/promo-types-DKAOFHJr.esm.js";import"../chunks/beam-errors-Ci0d3926.esm.js";import"../utils/logger.js";import"../chunks/vendor-KKSARHWL.esm.js";import"../chunks/_share-dialog-dependencies-BA9f_o0p.esm.js";import"../chunks/localize-C25pEGnx.esm.js";import"../chunks/enforce-config-Ba1JkOHs.esm.js";import"../chunks/loading-template-DG4lkIIc.esm.js";import"../utils/makeApiKeyHeader.js";import"../chunks/responsive-BR8qUfBa.esm.js";import"../chunks/css-card-grid-CvoGpsJH.esm.js";const m=r({tagName:t.tagName,elementClass:t,react:o,events:{}});export{m as BeamSubscriptionImpact,m as default};
1
+ import o from"react";import{l as r}from"../chunks/lit-WqMxC_PA.esm.js";import{BeamSubscriptionImpact as t}from"../components/subscription-impact.js";import"../chunks/lodash-D3TLHRR_.esm.js";import"../chunks/progress-bar-DF7UuuHb.esm.js";import"../chunks/share-button-BRjKJc5L.esm.js";import"../chunks/is-all-html-elements-fcB7UUA1.esm.js";import"../chunks/share-button-DPNNnXeM.esm.js";import"../chunks/routes-BvX92EDq.esm.js";import"../chunks/promo-types-DKAOFHJr.esm.js";import"../chunks/beam-errors-Ci0d3926.esm.js";import"../utils/logger.js";import"../chunks/vendor-KKSARHWL.esm.js";import"../chunks/_share-dialog-dependencies-BG0p8uUr.esm.js";import"../chunks/localize-C25pEGnx.esm.js";import"../chunks/enforce-config-Ba1JkOHs.esm.js";import"../chunks/loading-template-DG4lkIIc.esm.js";import"../utils/makeApiKeyHeader.js";import"../chunks/responsive-BR8qUfBa.esm.js";import"../chunks/css-card-grid-CvoGpsJH.esm.js";const m=r({tagName:t.tagName,elementClass:t,react:o,events:{}});export{m as BeamSubscriptionImpact,m as default};
2
2
  //# sourceMappingURL=subscription-impact.js.map
@@ -2,7 +2,7 @@ import * as _lit_react from '@lit/react';
2
2
  import { BeamSubscriptionManagement as BeamSubscriptionManagement$1 } from '../components/subscription-management.js';
3
3
  import 'lit-html';
4
4
  import 'lit';
5
- import '../chunks/routes-BoeGe1RQ.esm.js';
5
+ import '../chunks/routes-DahRzf8t.esm.js';
6
6
  import '../chunks/cart-contents-CLT7p7Gd.esm.js';
7
7
  import '../chunks/openapi-spec-Bk7E2QQP.esm.js';
8
8
  import '../components/select-subscription-nonprofit.js';
@@ -1,2 +1,2 @@
1
- import o from"react";import{l as r}from"../chunks/lit-WqMxC_PA.esm.js";import{BeamSubscriptionManagement as t}from"../components/subscription-management.esm.js";import"../chunks/routes-DzqKnt5D.esm.js";import"../chunks/promo-types-DKAOFHJr.esm.js";import"../chunks/beam-errors-Ci0d3926.esm.js";import"../utils/logger.esm.js";import"../chunks/progress-bar-DF7UuuHb.esm.js";import"../chunks/enforce-config-CZ3ToOgr.esm.js";import"../chunks/localize-Btu9xYcE.esm.js";import"../chunks/events-Dki0ka4F.esm.js";import"../components/select-subscription-nonprofit.esm.js";import"../chunks/lodash-D3TLHRR_.esm.js";import"../chunks/loading-template-DG4lkIIc.esm.js";import"../utils/makeApiKeyHeader.esm.js";import"../utils/local-storage.esm.js";import"../chunks/css-card-grid-CvoGpsJH.esm.js";import"../components/beam-partner-logos.esm.js";import"../components/subscription-impact.esm.js";import"../chunks/share-button-DOejRGE7.esm.js";import"../chunks/is-all-html-elements-fcB7UUA1.esm.js";import"../chunks/share-button-CnN0Q1m3.esm.js";import"../chunks/vendor-KKSARHWL.esm.js";import"../chunks/_share-dialog-dependencies-C9KUQdZi.esm.js";import"../chunks/responsive-BR8qUfBa.esm.js";const m=r({tagName:t.tagName,elementClass:t,react:o,events:{}});export{m as BeamSubscriptionManagement,m as default};
1
+ import o from"react";import{l as r}from"../chunks/lit-WqMxC_PA.esm.js";import{BeamSubscriptionManagement as t}from"../components/subscription-management.esm.js";import"../chunks/routes-DguZveS3.esm.js";import"../chunks/promo-types-DKAOFHJr.esm.js";import"../chunks/beam-errors-Ci0d3926.esm.js";import"../utils/logger.esm.js";import"../chunks/progress-bar-DF7UuuHb.esm.js";import"../chunks/enforce-config-CZ3ToOgr.esm.js";import"../chunks/localize-Btu9xYcE.esm.js";import"../chunks/events-Dki0ka4F.esm.js";import"../components/select-subscription-nonprofit.esm.js";import"../chunks/lodash-D3TLHRR_.esm.js";import"../chunks/loading-template-DG4lkIIc.esm.js";import"../utils/makeApiKeyHeader.esm.js";import"../utils/local-storage.esm.js";import"../chunks/css-card-grid-CvoGpsJH.esm.js";import"../components/beam-partner-logos.esm.js";import"../components/subscription-impact.esm.js";import"../chunks/share-button-DmjRJmXh.esm.js";import"../chunks/is-all-html-elements-fcB7UUA1.esm.js";import"../chunks/share-button-M8cMa6ol.esm.js";import"../chunks/vendor-KKSARHWL.esm.js";import"../chunks/_share-dialog-dependencies-dHlBUqo0.esm.js";import"../chunks/responsive-BR8qUfBa.esm.js";const m=r({tagName:t.tagName,elementClass:t,react:o,events:{}});export{m as BeamSubscriptionManagement,m as default};
2
2
  //# sourceMappingURL=subscription-management.esm.js.map
@@ -1,2 +1,2 @@
1
- import o from"react";import{l as r}from"../chunks/lit-WqMxC_PA.esm.js";import{BeamSubscriptionManagement as t}from"../components/subscription-management.js";import"../chunks/routes-DpniIBF7.esm.js";import"../chunks/promo-types-DKAOFHJr.esm.js";import"../chunks/beam-errors-Ci0d3926.esm.js";import"../utils/logger.js";import"../chunks/progress-bar-DF7UuuHb.esm.js";import"../chunks/enforce-config-Ba1JkOHs.esm.js";import"../chunks/localize-C25pEGnx.esm.js";import"../chunks/events-Dki0ka4F.esm.js";import"../components/select-subscription-nonprofit.js";import"../chunks/lodash-D3TLHRR_.esm.js";import"../chunks/loading-template-DG4lkIIc.esm.js";import"../utils/makeApiKeyHeader.js";import"../utils/local-storage.js";import"../chunks/css-card-grid-CvoGpsJH.esm.js";import"../components/beam-partner-logos.js";import"../components/subscription-impact.js";import"../chunks/share-button-B2RwMJdP.esm.js";import"../chunks/is-all-html-elements-fcB7UUA1.esm.js";import"../chunks/share-button-Gz4GlT28.esm.js";import"../chunks/vendor-KKSARHWL.esm.js";import"../chunks/_share-dialog-dependencies-BA9f_o0p.esm.js";import"../chunks/responsive-BR8qUfBa.esm.js";const m=r({tagName:t.tagName,elementClass:t,react:o,events:{}});export{m as BeamSubscriptionManagement,m as default};
1
+ import o from"react";import{l as r}from"../chunks/lit-WqMxC_PA.esm.js";import{BeamSubscriptionManagement as t}from"../components/subscription-management.js";import"../chunks/routes-BvX92EDq.esm.js";import"../chunks/promo-types-DKAOFHJr.esm.js";import"../chunks/beam-errors-Ci0d3926.esm.js";import"../utils/logger.js";import"../chunks/progress-bar-DF7UuuHb.esm.js";import"../chunks/enforce-config-Ba1JkOHs.esm.js";import"../chunks/localize-C25pEGnx.esm.js";import"../chunks/events-Dki0ka4F.esm.js";import"../components/select-subscription-nonprofit.js";import"../chunks/lodash-D3TLHRR_.esm.js";import"../chunks/loading-template-DG4lkIIc.esm.js";import"../utils/makeApiKeyHeader.js";import"../utils/local-storage.js";import"../chunks/css-card-grid-CvoGpsJH.esm.js";import"../components/beam-partner-logos.js";import"../components/subscription-impact.js";import"../chunks/share-button-BRjKJc5L.esm.js";import"../chunks/is-all-html-elements-fcB7UUA1.esm.js";import"../chunks/share-button-DPNNnXeM.esm.js";import"../chunks/vendor-KKSARHWL.esm.js";import"../chunks/_share-dialog-dependencies-BG0p8uUr.esm.js";import"../chunks/responsive-BR8qUfBa.esm.js";const m=r({tagName:t.tagName,elementClass:t,react:o,events:{}});export{m as BeamSubscriptionManagement,m as default};
2
2
  //# sourceMappingURL=subscription-management.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"cookies.esm.js","sources":["../../src/utils/cookies.ts"],"sourcesContent":["/*\n * Wrapper functions for CookieStore using document.cookie as a fallback if not supported\n */\n\nexport const getCookieMap = (cookieString = document.cookie) => {\n // document.cookie has the format: \"key1=value1; key2=value2; key3=value3\"\n return cookieString.split(\";\").reduce((result: Map<string, string>, next: string) => {\n const cookieKeyValuePair = next.trim(); // \" key=value \" => \"key=value\"\n const [key, ...restOfString] = cookieKeyValuePair.split(\"=\"); // [\"key\", [\"value\"]]\n const value = decodeURIComponent(restOfString.join(\"=\")); // .join() handles if value contained \"=\"\n return result.set(key, value);\n }, new Map<string, string>());\n};\n\nexport const getCookieValue = (name: string): string | undefined => {\n // New Async API, not supported in FF/Safari:\n // if (window.cookieStore) {\n // return (await window.cookieStore.get(name))?.value;\n // }\n return getCookieMap().get(name);\n};\n\nexport const setCookieValue = (options: CookieInit): undefined => {\n // New Async API, not supported in FF/Safari:\n // if (window.cookieStore) {\n // const { domain, ...rest } = options;\n // const validatedDomain = domain === \"localhost\" ? undefined : domain;\n // return await window.cookieStore.set({ ...rest, domain: validatedDomain });\n // }\n // https://developer.mozilla.org/en-US/docs/Web/API/Document/cookie#write_a_new_cookie\n const { name, value, expires, ...rest } = options;\n const encodedValue = encodeURIComponent(value);\n const base = `${name}=${encodedValue}`;\n const expiration = expires != null ? ` ;expires=${new Date(expires).toUTCString()}` : \"\";\n const modifiers = Object.entries(rest)\n .map(([key, val]) => (val != null ? ` ;${key}=${val}` : \"\"))\n .join(\"\");\n document.cookie = base + modifiers + expiration;\n return;\n};\n\nexport const deleteCookieValue = (options: { name: string; domain?: string; path?: string }): undefined => {\n const { name, domain, path } = options;\n const cookieOptions: any = {\n name: name,\n value: \"\",\n expires: 0,\n };\n if (path !== undefined) {\n cookieOptions.path = path;\n }\n if (domain !== undefined) {\n cookieOptions.domain = domain;\n }\n return setCookieValue(cookieOptions);\n};\n\n/*\n * CookieStore API Types\n * https://developer.mozilla.org/en-US/docs/Web/API/CookieStore#browser_compatibility\n */\n\ninterface CookieListItem {\n name: string;\n value: string;\n path: string;\n domain: string | null;\n expires: number | null; // timestamp, unix time in ms\n secure: boolean;\n sameSite: \"strict\" | \"lax\" | \"none\";\n}\n\ninterface CookieInit {\n name: string;\n value: string;\n path?: string;\n domain?: string;\n expires?: number; // timestamp, unix time in ms\n sameSite?: \"strict\" | \"lax\" | \"none\";\n}\n\n// https://wicg.github.io/cookie-store/#CookieChangeEvent\nexport interface CookieChangeEvent extends Event {\n readonly changed: CookieListItem[];\n readonly deleted: CookieListItem[];\n type: \"deleted\" | \"changed\";\n}\n\ntype SetCookie = {\n (options: CookieInit): Promise<undefined>;\n (name: string, value: string): Promise<undefined>;\n};\n\n// https://wicg.github.io/cookie-store/#CookieStore\ninterface CookieStore extends EventTarget {\n get: (name: string | { name: string; url: string }) => Promise<CookieListItem | undefined>;\n getAll: (name: string | { name: string; url: string }) => Promise<CookieListItem[]>;\n set: SetCookie; // function overload for multiple signatures\n delete: (name: string | { name: string; domain?: string | null; path?: string }) => Promise<undefined>;\n onchange: (event: CookieChangeEvent) => boolean | void | Promise<boolean | void>;\n}\n\ndeclare global {\n interface Window {\n cookieStore: CookieStore;\n }\n}\n"],"names":["getCookieMap","cookieString","result","next","cookieKeyValuePair","key","restOfString","value","getCookieValue","name","setCookieValue","options","expires","rest","encodedValue","base","expiration","modifiers","val","deleteCookieValue","domain","path","cookieOptions"],"mappings":"AAIO,MAAMA,EAAe,CAACC,EAAe,SAAS,SAE5CA,EAAa,MAAM,GAAG,EAAE,OAAO,CAACC,EAA6BC,IAAiB,CACnF,MAAMC,EAAqBD,EAAK,KAAK,EAC/B,CAACE,EAAK,GAAGC,CAAY,EAAIF,EAAmB,MAAM,GAAG,EACrDG,EAAQ,mBAAmBD,EAAa,KAAK,GAAG,CAAC,EACvD,OAAOJ,EAAO,IAAIG,EAAKE,CAAK,CAC9B,EAAG,IAAI,GAAqB,EAGjBC,EAAkBC,GAKtBT,EAAA,EAAe,IAAIS,CAAI,EAGnBC,EAAkBC,GAAmC,CAQhE,KAAM,CAAE,KAAAF,EAAM,MAAAF,EAAO,QAAAK,EAAS,GAAGC,CAAK,EAAIF,EACpCG,EAAe,mBAAmBP,CAAK,EACvCQ,EAAO,GAAGN,CAAI,IAAIK,CAAY,GAC9BE,EAAaJ,GAAW,KAAO,aAAa,IAAI,KAAKA,CAAO,EAAE,YAAa,CAAA,GAAK,GAChFK,EAAY,OAAO,QAAQJ,CAAI,EAClC,IAAI,CAAC,CAACR,EAAKa,CAAG,IAAOA,GAAO,KAAO,KAAKb,CAAG,IAAIa,CAAG,GAAK,EAAG,EAC1D,KAAK,EAAE,EACV,SAAS,OAASH,EAAOE,EAAYD,CAEvC,EAEaG,EAAqBR,GAAyE,CACzG,KAAM,CAAE,KAAAF,EAAM,OAAAW,EAAQ,KAAAC,CAAK,EAAIV,EACzBW,EAAqB,CACzB,KAAMb,EACN,MAAO,GACP,QAAS,CACX,EACA,OAAIY,IAAS,SACXC,EAAc,KAAOD,GAEnBD,IAAW,SACbE,EAAc,OAASF,GAElBV,EAAeY,CAAa,CACrC"}
1
+ {"version":3,"file":"cookies.esm.js","sources":["../../src/utils/cookies.ts"],"sourcesContent":["/*\n * Wrapper functions for CookieStore using document.cookie as a fallback if not supported\n */\n\nexport const getCookieMap = (cookieString = document.cookie) => {\n // document.cookie has the format: \"key1=value1; key2=value2; key3=value3\"\n return cookieString.split(\";\").reduce((result: Map<string, string>, next: string) => {\n const cookieKeyValuePair = next.trim(); // \" key=value \" => \"key=value\"\n const [key, ...restOfString] = cookieKeyValuePair.split(\"=\"); // [\"key\", [\"value\"]]\n const value = decodeURIComponent(restOfString.join(\"=\")); // .join() handles if value contained \"=\"\n return result.set(key, value);\n }, new Map<string, string>());\n};\n\nexport const getCookieValue = (name: string): string | undefined => {\n // New Async API, not supported in FF/Safari:\n // if (window.cookieStore) {\n // return (await window.cookieStore.get(name))?.value;\n // }\n return getCookieMap().get(name);\n};\n\nexport const setCookieValue = (options: CookieInit): undefined => {\n // New Async API, not supported in FF/Safari:\n // if (window.cookieStore) {\n // const { domain, ...rest } = options;\n // const validatedDomain = domain === \"localhost\" ? undefined : domain;\n // return await window.cookieStore.set({ ...rest, domain: validatedDomain });\n // }\n // https://developer.mozilla.org/en-US/docs/Web/API/Document/cookie#write_a_new_cookie\n const { name, value, expires, ...rest } = options;\n const encodedValue = encodeURIComponent(value);\n const base = `${name}=${encodedValue}`;\n const expiration = expires != null ? ` ;expires=${new Date(expires).toUTCString()}` : \"\";\n const modifiers = Object.entries(rest)\n .map(([key, val]) => (val != null ? ` ;${key}=${val}` : \"\"))\n .join(\"\");\n document.cookie = base + modifiers + expiration;\n return;\n};\n\nexport const deleteCookieValue = (options: { name: string; domain?: string; path?: string }): undefined => {\n const { name, domain, path } = options;\n const cookieOptions: any = {\n name: name,\n value: \"\",\n expires: 0,\n };\n if (path !== undefined) {\n cookieOptions.path = path;\n }\n if (domain !== undefined) {\n cookieOptions.domain = domain;\n }\n return setCookieValue(cookieOptions);\n};\n\n/*\n * CookieStore API Types\n * https://developer.mozilla.org/en-US/docs/Web/API/CookieStore#browser_compatibility\n */\n\ninterface CookieListItem {\n name: string;\n value: string;\n path: string;\n domain: string | null;\n expires: number | null; // timestamp, unix time in ms\n secure: boolean;\n sameSite: \"strict\" | \"lax\" | \"none\";\n}\n\ninterface CookieInit {\n name: string;\n value: string;\n path?: string;\n domain?: string;\n expires?: number; // timestamp, unix time in ms\n sameSite?: \"strict\" | \"lax\" | \"none\";\n}\n\n// https://wicg.github.io/cookie-store/#CookieChangeEvent\nexport interface CookieChangeEvent extends Event {\n readonly changed: CookieListItem[];\n readonly deleted: CookieListItem[];\n type: \"deleted\" | \"changed\";\n}\n\ntype SetCookie = {\n (options: CookieInit): Promise<undefined>;\n (name: string, value: string): Promise<undefined>;\n};\n\n// https://wicg.github.io/cookie-store/#CookieStore\ninterface CookieStore extends EventTarget {\n get: (name: string | { name: string; url: string }) => Promise<CookieListItem | undefined>;\n getAll: (name: string | { name: string; url: string }) => Promise<CookieListItem[]>;\n set: SetCookie; // function overload for multiple signatures\n delete: (name: string | { name: string; domain?: string | null; path?: string }) => Promise<undefined>;\n onchange: (event: CookieChangeEvent) => boolean | void | Promise<boolean | void>;\n}\n\ndeclare global {\n interface Window {\n cookieStore: CookieStore;\n }\n}\n"],"names":["getCookieMap","cookieString","result","next","cookieKeyValuePair","key","restOfString","value","getCookieValue","name","setCookieValue","options","expires","rest","encodedValue","base","expiration","modifiers","val","deleteCookieValue","domain","path","cookieOptions"],"mappings":"AAIO,MAAMA,EAAe,CAACC,EAAe,SAAS,SAE5CA,EAAa,MAAM,GAAG,EAAE,OAAO,CAACC,EAA6BC,IAAiB,CACnF,MAAMC,EAAqBD,EAAK,KAAA,EAC1B,CAACE,EAAK,GAAGC,CAAY,EAAIF,EAAmB,MAAM,GAAG,EACrDG,EAAQ,mBAAmBD,EAAa,KAAK,GAAG,CAAC,EACvD,OAAOJ,EAAO,IAAIG,EAAKE,CAAK,CAC9B,EAAG,IAAI,GAAqB,EAGjBC,EAAkBC,GAKtBT,EAAA,EAAe,IAAIS,CAAI,EAGnBC,EAAkBC,GAAmC,CAQhE,KAAM,CAAE,KAAAF,EAAM,MAAAF,EAAO,QAAAK,EAAS,GAAGC,CAAK,EAAIF,EACpCG,EAAe,mBAAmBP,CAAK,EACvCQ,EAAO,GAAGN,CAAI,IAAIK,CAAY,GAC9BE,EAAaJ,GAAW,KAAO,aAAa,IAAI,KAAKA,CAAO,EAAE,YAAA,CAAa,GAAK,GAChFK,EAAY,OAAO,QAAQJ,CAAI,EAClC,IAAI,CAAC,CAACR,EAAKa,CAAG,IAAOA,GAAO,KAAO,KAAKb,CAAG,IAAIa,CAAG,GAAK,EAAG,EAC1D,KAAK,EAAE,EACV,SAAS,OAASH,EAAOE,EAAYD,CAEvC,EAEaG,EAAqBR,GAAyE,CACzG,KAAM,CAAE,KAAAF,EAAM,OAAAW,EAAQ,KAAAC,CAAK,EAAIV,EACzBW,EAAqB,CACzB,KAAMb,EACN,MAAO,GACP,QAAS,CACX,EACA,OAAIY,IAAS,SACXC,EAAc,KAAOD,GAEnBD,IAAW,SACbE,EAAc,OAASF,GAElBV,EAAeY,CAAa,CACrC"}
@@ -1 +1 @@
1
- {"version":3,"file":"cookies.js","sources":["../../src/utils/cookies.ts"],"sourcesContent":["/*\n * Wrapper functions for CookieStore using document.cookie as a fallback if not supported\n */\n\nexport const getCookieMap = (cookieString = document.cookie) => {\n // document.cookie has the format: \"key1=value1; key2=value2; key3=value3\"\n return cookieString.split(\";\").reduce((result: Map<string, string>, next: string) => {\n const cookieKeyValuePair = next.trim(); // \" key=value \" => \"key=value\"\n const [key, ...restOfString] = cookieKeyValuePair.split(\"=\"); // [\"key\", [\"value\"]]\n const value = decodeURIComponent(restOfString.join(\"=\")); // .join() handles if value contained \"=\"\n return result.set(key, value);\n }, new Map<string, string>());\n};\n\nexport const getCookieValue = (name: string): string | undefined => {\n // New Async API, not supported in FF/Safari:\n // if (window.cookieStore) {\n // return (await window.cookieStore.get(name))?.value;\n // }\n return getCookieMap().get(name);\n};\n\nexport const setCookieValue = (options: CookieInit): undefined => {\n // New Async API, not supported in FF/Safari:\n // if (window.cookieStore) {\n // const { domain, ...rest } = options;\n // const validatedDomain = domain === \"localhost\" ? undefined : domain;\n // return await window.cookieStore.set({ ...rest, domain: validatedDomain });\n // }\n // https://developer.mozilla.org/en-US/docs/Web/API/Document/cookie#write_a_new_cookie\n const { name, value, expires, ...rest } = options;\n const encodedValue = encodeURIComponent(value);\n const base = `${name}=${encodedValue}`;\n const expiration = expires != null ? ` ;expires=${new Date(expires).toUTCString()}` : \"\";\n const modifiers = Object.entries(rest)\n .map(([key, val]) => (val != null ? ` ;${key}=${val}` : \"\"))\n .join(\"\");\n document.cookie = base + modifiers + expiration;\n return;\n};\n\nexport const deleteCookieValue = (options: { name: string; domain?: string; path?: string }): undefined => {\n const { name, domain, path } = options;\n const cookieOptions: any = {\n name: name,\n value: \"\",\n expires: 0,\n };\n if (path !== undefined) {\n cookieOptions.path = path;\n }\n if (domain !== undefined) {\n cookieOptions.domain = domain;\n }\n return setCookieValue(cookieOptions);\n};\n\n/*\n * CookieStore API Types\n * https://developer.mozilla.org/en-US/docs/Web/API/CookieStore#browser_compatibility\n */\n\ninterface CookieListItem {\n name: string;\n value: string;\n path: string;\n domain: string | null;\n expires: number | null; // timestamp, unix time in ms\n secure: boolean;\n sameSite: \"strict\" | \"lax\" | \"none\";\n}\n\ninterface CookieInit {\n name: string;\n value: string;\n path?: string;\n domain?: string;\n expires?: number; // timestamp, unix time in ms\n sameSite?: \"strict\" | \"lax\" | \"none\";\n}\n\n// https://wicg.github.io/cookie-store/#CookieChangeEvent\nexport interface CookieChangeEvent extends Event {\n readonly changed: CookieListItem[];\n readonly deleted: CookieListItem[];\n type: \"deleted\" | \"changed\";\n}\n\ntype SetCookie = {\n (options: CookieInit): Promise<undefined>;\n (name: string, value: string): Promise<undefined>;\n};\n\n// https://wicg.github.io/cookie-store/#CookieStore\ninterface CookieStore extends EventTarget {\n get: (name: string | { name: string; url: string }) => Promise<CookieListItem | undefined>;\n getAll: (name: string | { name: string; url: string }) => Promise<CookieListItem[]>;\n set: SetCookie; // function overload for multiple signatures\n delete: (name: string | { name: string; domain?: string | null; path?: string }) => Promise<undefined>;\n onchange: (event: CookieChangeEvent) => boolean | void | Promise<boolean | void>;\n}\n\ndeclare global {\n interface Window {\n cookieStore: CookieStore;\n }\n}\n"],"names":["getCookieMap","cookieString","result","next","cookieKeyValuePair","key","restOfString","value","getCookieValue","name","setCookieValue","options","expires","rest","encodedValue","base","expiration","modifiers","val","deleteCookieValue","domain","path","cookieOptions"],"mappings":"AAIO,MAAMA,EAAe,CAACC,EAAe,SAAS,SAE5CA,EAAa,MAAM,GAAG,EAAE,OAAO,CAACC,EAA6BC,IAAiB,CACnF,MAAMC,EAAqBD,EAAK,KAAK,EAC/B,CAACE,EAAK,GAAGC,CAAY,EAAIF,EAAmB,MAAM,GAAG,EACrDG,EAAQ,mBAAmBD,EAAa,KAAK,GAAG,CAAC,EACvD,OAAOJ,EAAO,IAAIG,EAAKE,CAAK,CAC9B,EAAG,IAAI,GAAqB,EAGjBC,EAAkBC,GAKtBT,EAAA,EAAe,IAAIS,CAAI,EAGnBC,EAAkBC,GAAmC,CAQhE,KAAM,CAAE,KAAAF,EAAM,MAAAF,EAAO,QAAAK,EAAS,GAAGC,CAAK,EAAIF,EACpCG,EAAe,mBAAmBP,CAAK,EACvCQ,EAAO,GAAGN,CAAI,IAAIK,CAAY,GAC9BE,EAAaJ,GAAW,KAAO,aAAa,IAAI,KAAKA,CAAO,EAAE,YAAa,CAAA,GAAK,GAChFK,EAAY,OAAO,QAAQJ,CAAI,EAClC,IAAI,CAAC,CAACR,EAAKa,CAAG,IAAOA,GAAO,KAAO,KAAKb,CAAG,IAAIa,CAAG,GAAK,EAAG,EAC1D,KAAK,EAAE,EACV,SAAS,OAASH,EAAOE,EAAYD,CAEvC,EAEaG,EAAqBR,GAAyE,CACzG,KAAM,CAAE,KAAAF,EAAM,OAAAW,EAAQ,KAAAC,CAAK,EAAIV,EACzBW,EAAqB,CACzB,KAAMb,EACN,MAAO,GACP,QAAS,CACX,EACA,OAAIY,IAAS,SACXC,EAAc,KAAOD,GAEnBD,IAAW,SACbE,EAAc,OAASF,GAElBV,EAAeY,CAAa,CACrC"}
1
+ {"version":3,"file":"cookies.js","sources":["../../src/utils/cookies.ts"],"sourcesContent":["/*\n * Wrapper functions for CookieStore using document.cookie as a fallback if not supported\n */\n\nexport const getCookieMap = (cookieString = document.cookie) => {\n // document.cookie has the format: \"key1=value1; key2=value2; key3=value3\"\n return cookieString.split(\";\").reduce((result: Map<string, string>, next: string) => {\n const cookieKeyValuePair = next.trim(); // \" key=value \" => \"key=value\"\n const [key, ...restOfString] = cookieKeyValuePair.split(\"=\"); // [\"key\", [\"value\"]]\n const value = decodeURIComponent(restOfString.join(\"=\")); // .join() handles if value contained \"=\"\n return result.set(key, value);\n }, new Map<string, string>());\n};\n\nexport const getCookieValue = (name: string): string | undefined => {\n // New Async API, not supported in FF/Safari:\n // if (window.cookieStore) {\n // return (await window.cookieStore.get(name))?.value;\n // }\n return getCookieMap().get(name);\n};\n\nexport const setCookieValue = (options: CookieInit): undefined => {\n // New Async API, not supported in FF/Safari:\n // if (window.cookieStore) {\n // const { domain, ...rest } = options;\n // const validatedDomain = domain === \"localhost\" ? undefined : domain;\n // return await window.cookieStore.set({ ...rest, domain: validatedDomain });\n // }\n // https://developer.mozilla.org/en-US/docs/Web/API/Document/cookie#write_a_new_cookie\n const { name, value, expires, ...rest } = options;\n const encodedValue = encodeURIComponent(value);\n const base = `${name}=${encodedValue}`;\n const expiration = expires != null ? ` ;expires=${new Date(expires).toUTCString()}` : \"\";\n const modifiers = Object.entries(rest)\n .map(([key, val]) => (val != null ? ` ;${key}=${val}` : \"\"))\n .join(\"\");\n document.cookie = base + modifiers + expiration;\n return;\n};\n\nexport const deleteCookieValue = (options: { name: string; domain?: string; path?: string }): undefined => {\n const { name, domain, path } = options;\n const cookieOptions: any = {\n name: name,\n value: \"\",\n expires: 0,\n };\n if (path !== undefined) {\n cookieOptions.path = path;\n }\n if (domain !== undefined) {\n cookieOptions.domain = domain;\n }\n return setCookieValue(cookieOptions);\n};\n\n/*\n * CookieStore API Types\n * https://developer.mozilla.org/en-US/docs/Web/API/CookieStore#browser_compatibility\n */\n\ninterface CookieListItem {\n name: string;\n value: string;\n path: string;\n domain: string | null;\n expires: number | null; // timestamp, unix time in ms\n secure: boolean;\n sameSite: \"strict\" | \"lax\" | \"none\";\n}\n\ninterface CookieInit {\n name: string;\n value: string;\n path?: string;\n domain?: string;\n expires?: number; // timestamp, unix time in ms\n sameSite?: \"strict\" | \"lax\" | \"none\";\n}\n\n// https://wicg.github.io/cookie-store/#CookieChangeEvent\nexport interface CookieChangeEvent extends Event {\n readonly changed: CookieListItem[];\n readonly deleted: CookieListItem[];\n type: \"deleted\" | \"changed\";\n}\n\ntype SetCookie = {\n (options: CookieInit): Promise<undefined>;\n (name: string, value: string): Promise<undefined>;\n};\n\n// https://wicg.github.io/cookie-store/#CookieStore\ninterface CookieStore extends EventTarget {\n get: (name: string | { name: string; url: string }) => Promise<CookieListItem | undefined>;\n getAll: (name: string | { name: string; url: string }) => Promise<CookieListItem[]>;\n set: SetCookie; // function overload for multiple signatures\n delete: (name: string | { name: string; domain?: string | null; path?: string }) => Promise<undefined>;\n onchange: (event: CookieChangeEvent) => boolean | void | Promise<boolean | void>;\n}\n\ndeclare global {\n interface Window {\n cookieStore: CookieStore;\n }\n}\n"],"names":["getCookieMap","cookieString","result","next","cookieKeyValuePair","key","restOfString","value","getCookieValue","name","setCookieValue","options","expires","rest","encodedValue","base","expiration","modifiers","val","deleteCookieValue","domain","path","cookieOptions"],"mappings":"AAIO,MAAMA,EAAe,CAACC,EAAe,SAAS,SAE5CA,EAAa,MAAM,GAAG,EAAE,OAAO,CAACC,EAA6BC,IAAiB,CACnF,MAAMC,EAAqBD,EAAK,KAAA,EAC1B,CAACE,EAAK,GAAGC,CAAY,EAAIF,EAAmB,MAAM,GAAG,EACrDG,EAAQ,mBAAmBD,EAAa,KAAK,GAAG,CAAC,EACvD,OAAOJ,EAAO,IAAIG,EAAKE,CAAK,CAC9B,EAAG,IAAI,GAAqB,EAGjBC,EAAkBC,GAKtBT,EAAA,EAAe,IAAIS,CAAI,EAGnBC,EAAkBC,GAAmC,CAQhE,KAAM,CAAE,KAAAF,EAAM,MAAAF,EAAO,QAAAK,EAAS,GAAGC,CAAK,EAAIF,EACpCG,EAAe,mBAAmBP,CAAK,EACvCQ,EAAO,GAAGN,CAAI,IAAIK,CAAY,GAC9BE,EAAaJ,GAAW,KAAO,aAAa,IAAI,KAAKA,CAAO,EAAE,YAAA,CAAa,GAAK,GAChFK,EAAY,OAAO,QAAQJ,CAAI,EAClC,IAAI,CAAC,CAACR,EAAKa,CAAG,IAAOA,GAAO,KAAO,KAAKb,CAAG,IAAIa,CAAG,GAAK,EAAG,EAC1D,KAAK,EAAE,EACV,SAAS,OAASH,EAAOE,EAAYD,CAEvC,EAEaG,EAAqBR,GAAyE,CACzG,KAAM,CAAE,KAAAF,EAAM,OAAAW,EAAQ,KAAAC,CAAK,EAAIV,EACzBW,EAAqB,CACzB,KAAMb,EACN,MAAO,GACP,QAAS,CACX,EACA,OAAIY,IAAS,SACXC,EAAc,KAAOD,GAEnBD,IAAW,SACbE,EAAc,OAASF,GAElBV,EAAeY,CAAa,CACrC"}
@@ -1,5 +1,5 @@
1
1
  import '../chunks/cart-contents-CLT7p7Gd.esm.js';
2
- import '../chunks/promo-types-BPmDZ5dF.esm.js';
2
+ import '../chunks/promo-types-7r9-UuiP.esm.js';
3
3
  import '../chunks/types-CPxMwnoR.esm.js';
4
- export { b as BeamCartChangeEvent, c as BeamCartCreatedEvent, a as BeamNetworkCallEvent, B as BeamNonprofitSelectEvent, g as BeamNonprofitSelectionRemovedEvent, d as BeamOrderCreatedEvent, h as BeamPromoCodesStoredEvent, f as BeamStatusChangeEvent, k as BeamWidgetInitialNonprofitSyncCancelEvent, j as BeamWidgetInitialNonprofitSyncEvent, i as BeamWidgetStoredPromoCodesEvent } from '../chunks/events-B7l6VPsF.esm.js';
4
+ export { a as BeamCartChangeEvent, b as BeamCartCreatedEvent, c as BeamNetworkCallEvent, B as BeamNonprofitSelectEvent, d as BeamNonprofitSelectionRemovedEvent, f as BeamOrderCreatedEvent, g as BeamPromoCodesStoredEvent, h as BeamStatusChangeEvent, i as BeamWidgetInitialNonprofitSyncCancelEvent, j as BeamWidgetInitialNonprofitSyncEvent, k as BeamWidgetStoredPromoCodesEvent } from '../chunks/events-CSyogxoH.esm.js';
5
5
  import '../chunks/openapi-spec-Bk7E2QQP.esm.js';
@@ -1,5 +1,5 @@
1
1
  export { b as errors } from '../chunks/beam-errors-CCe004HS.esm.js';
2
- export { e as events } from '../chunks/events-B7l6VPsF.esm.js';
2
+ export { e as events } from '../chunks/events-CSyogxoH.esm.js';
3
3
  export { logger } from './logger.js';
4
4
  export { initNetworkListeners } from './network-listeners.js';
5
5
  export { createScopedLocalStorage } from './local-storage.js';
@@ -12,5 +12,5 @@ export { default as isEqual } from 'lodash-es/isEqual';
12
12
  export { formatStoreAndReturnPromoCodes, getAllPromoCodesFromCookie, getPromoCodeFromShopifyCookie, getPromoCodesFromCart, getPromoCodesLocalStorage, getSanitizedUrlForStorage, isEmptyPromoData, mapToUnvalidatedPromoCodes, mergeStoreAndReturnPromos, parseJsonStringArray, promoCodesAreEqual, setPromoCodeInCookie, setPromoCodesInLocalStorage } from './promoManager.js';
13
13
  import '../chunks/cart-contents-CLT7p7Gd.esm.js';
14
14
  import '../chunks/openapi-spec-Bk7E2QQP.esm.js';
15
- import '../chunks/promo-types-BPmDZ5dF.esm.js';
15
+ import '../chunks/promo-types-7r9-UuiP.esm.js';
16
16
  import '../chunks/types-CPxMwnoR.esm.js';
@@ -1 +1 @@
1
- {"version":3,"file":"makeApiKeyHeader.esm.js","sources":["../../src/utils/makeApiKeyHeader.ts"],"sourcesContent":["export function makeApiKeyHeader(apiKey: string) {\n return {\n authorization: `Api-Key ${apiKey}`,\n };\n}\n"],"names":["makeApiKeyHeader","apiKey"],"mappings":"AAAgB,SAAAA,EAAiBC,EAAgB,CAC/C,MAAO,CACL,cAAe,WAAWA,CAAM,EAClC,CACF"}
1
+ {"version":3,"file":"makeApiKeyHeader.esm.js","sources":["../../src/utils/makeApiKeyHeader.ts"],"sourcesContent":["export function makeApiKeyHeader(apiKey: string) {\n return {\n authorization: `Api-Key ${apiKey}`,\n };\n}\n"],"names":["makeApiKeyHeader","apiKey"],"mappings":"AAAO,SAASA,EAAiBC,EAAgB,CAC/C,MAAO,CACL,cAAe,WAAWA,CAAM,EAClC,CACF"}
@@ -1 +1 @@
1
- {"version":3,"file":"makeApiKeyHeader.js","sources":["../../src/utils/makeApiKeyHeader.ts"],"sourcesContent":["export function makeApiKeyHeader(apiKey: string) {\n return {\n authorization: `Api-Key ${apiKey}`,\n };\n}\n"],"names":["makeApiKeyHeader","apiKey"],"mappings":"AAAgB,SAAAA,EAAiBC,EAAgB,CAC/C,MAAO,CACL,cAAe,WAAWA,CAAM,EAClC,CACF"}
1
+ {"version":3,"file":"makeApiKeyHeader.js","sources":["../../src/utils/makeApiKeyHeader.ts"],"sourcesContent":["export function makeApiKeyHeader(apiKey: string) {\n return {\n authorization: `Api-Key ${apiKey}`,\n };\n}\n"],"names":["makeApiKeyHeader","apiKey"],"mappings":"AAAO,SAASA,EAAiBC,EAAgB,CAC/C,MAAO,CACL,cAAe,WAAWA,CAAM,EAClC,CACF"}
@@ -1 +1 @@
1
- {"version":3,"file":"memoize-last.esm.js","sources":["../../src/utils/memoize-last.ts"],"sourcesContent":["import { isEqual as defaultIsEqual } from \"./is-equal\";\n\ntype Func<T extends any[], R> = (...args: T) => R;\n\n/**\n * Takes a function and returns a new memoized function.\n * If the same arguments are passed to the memoized function, it will return the previously computed result.\n * This is a \"memoize once\" function meaning it only compares the previous and current arguments, not historic values.\n * Results that throw errors or return rejected Promises are not cached.\n *\n * @param {Function} fn - The function to be memoized.\n * @param {(value: any) => boolean} [isEqual]- The equality function used to compare arguments.\n * @returns {Function} - The memoized function.\n * @param func\n */\nexport function memoizeLast<T extends any[], R>(func: Func<T, R>, { isEqual = defaultIsEqual } = {}): Func<T, R> {\n let lastArgs: T | null = null;\n let lastResult: R | null = null;\n let hasResult = false; // Separate variable to track whether lastResult exists because lastResult could be falsy\n let promiseCounter = 0; // Used to keep track of result order in async invocation so we know to replace cache or not\n\n return (...args: T): R => {\n if (hasResult && isEqual(lastArgs, args)) {\n return lastResult as R;\n }\n\n const result = func(...args); // Errors here are not caught, so result will not cache if there is an error\n\n if (result instanceof Promise) {\n promiseCounter++;\n const promiseCounterAtStart = promiseCounter;\n result.catch(() => {\n // Don't return cached result next time if the Promise rejects, unless a new Promise has already replaced\n // the one that rejected\n if (promiseCounterAtStart === promiseCounter) {\n hasResult = false;\n }\n });\n }\n\n // Cache the latest args and result.\n lastArgs = args;\n lastResult = result;\n hasResult = true;\n\n return result;\n };\n}\n"],"names":["memoizeLast","func","isEqual","defaultIsEqual","lastArgs","lastResult","hasResult","promiseCounter","args","result","promiseCounterAtStart"],"mappings":"qDAeO,SAASA,EAAgCC,EAAkB,CAAE,QAAAC,EAAUC,CAAe,EAAI,CAAC,EAAe,CAC/G,IAAIC,EAAqB,KACrBC,EAAuB,KACvBC,EAAY,GACZC,EAAiB,EAErB,MAAO,IAAIC,IAAe,CACxB,GAAIF,GAAaJ,EAAQE,EAAUI,CAAI,EACrC,OAAOH,EAGT,MAAMI,EAASR,EAAK,GAAGO,CAAI,EAE3B,GAAIC,aAAkB,QAAS,CAC7BF,IACA,MAAMG,EAAwBH,EAC9BE,EAAO,MAAM,IAAM,CAGbC,IAA0BH,IAC5BD,EAAY,GAEhB,CAAC,CACH,CAGA,OAAAF,EAAWI,EACXH,EAAaI,EACbH,EAAY,GAELG,CACT,CACF"}
1
+ {"version":3,"file":"memoize-last.esm.js","sources":["../../src/utils/memoize-last.ts"],"sourcesContent":["import { isEqual as defaultIsEqual } from \"./is-equal\";\n\ntype Func<T extends any[], R> = (...args: T) => R;\n\n/**\n * Takes a function and returns a new memoized function.\n * If the same arguments are passed to the memoized function, it will return the previously computed result.\n * This is a \"memoize once\" function meaning it only compares the previous and current arguments, not historic values.\n * Results that throw errors or return rejected Promises are not cached.\n *\n * @param {Function} fn - The function to be memoized.\n * @param {(value: any) => boolean} [isEqual]- The equality function used to compare arguments.\n * @returns {Function} - The memoized function.\n * @param func\n */\nexport function memoizeLast<T extends any[], R>(func: Func<T, R>, { isEqual = defaultIsEqual } = {}): Func<T, R> {\n let lastArgs: T | null = null;\n let lastResult: R | null = null;\n let hasResult = false; // Separate variable to track whether lastResult exists because lastResult could be falsy\n let promiseCounter = 0; // Used to keep track of result order in async invocation so we know to replace cache or not\n\n return (...args: T): R => {\n if (hasResult && isEqual(lastArgs, args)) {\n return lastResult as R;\n }\n\n const result = func(...args); // Errors here are not caught, so result will not cache if there is an error\n\n if (result instanceof Promise) {\n promiseCounter++;\n const promiseCounterAtStart = promiseCounter;\n result.catch(() => {\n // Don't return cached result next time if the Promise rejects, unless a new Promise has already replaced\n // the one that rejected\n if (promiseCounterAtStart === promiseCounter) {\n hasResult = false;\n }\n });\n }\n\n // Cache the latest args and result.\n lastArgs = args;\n lastResult = result;\n hasResult = true;\n\n return result;\n };\n}\n"],"names":["memoizeLast","func","isEqual","defaultIsEqual","lastArgs","lastResult","hasResult","promiseCounter","args","result","promiseCounterAtStart"],"mappings":"qDAeO,SAASA,EAAgCC,EAAkB,CAAE,QAAAC,EAAUC,CAAe,EAAI,CAAA,EAAgB,CAC/G,IAAIC,EAAqB,KACrBC,EAAuB,KACvBC,EAAY,GACZC,EAAiB,EAErB,MAAO,IAAIC,IAAe,CACxB,GAAIF,GAAaJ,EAAQE,EAAUI,CAAI,EACrC,OAAOH,EAGT,MAAMI,EAASR,EAAK,GAAGO,CAAI,EAE3B,GAAIC,aAAkB,QAAS,CAC7BF,IACA,MAAMG,EAAwBH,EAC9BE,EAAO,MAAM,IAAM,CAGbC,IAA0BH,IAC5BD,EAAY,GAEhB,CAAC,CACH,CAGA,OAAAF,EAAWI,EACXH,EAAaI,EACbH,EAAY,GAELG,CACT,CACF"}
@@ -1 +1 @@
1
- {"version":3,"file":"memoize-last.js","sources":["../../src/utils/memoize-last.ts"],"sourcesContent":["import { isEqual as defaultIsEqual } from \"./is-equal\";\n\ntype Func<T extends any[], R> = (...args: T) => R;\n\n/**\n * Takes a function and returns a new memoized function.\n * If the same arguments are passed to the memoized function, it will return the previously computed result.\n * This is a \"memoize once\" function meaning it only compares the previous and current arguments, not historic values.\n * Results that throw errors or return rejected Promises are not cached.\n *\n * @param {Function} fn - The function to be memoized.\n * @param {(value: any) => boolean} [isEqual]- The equality function used to compare arguments.\n * @returns {Function} - The memoized function.\n * @param func\n */\nexport function memoizeLast<T extends any[], R>(func: Func<T, R>, { isEqual = defaultIsEqual } = {}): Func<T, R> {\n let lastArgs: T | null = null;\n let lastResult: R | null = null;\n let hasResult = false; // Separate variable to track whether lastResult exists because lastResult could be falsy\n let promiseCounter = 0; // Used to keep track of result order in async invocation so we know to replace cache or not\n\n return (...args: T): R => {\n if (hasResult && isEqual(lastArgs, args)) {\n return lastResult as R;\n }\n\n const result = func(...args); // Errors here are not caught, so result will not cache if there is an error\n\n if (result instanceof Promise) {\n promiseCounter++;\n const promiseCounterAtStart = promiseCounter;\n result.catch(() => {\n // Don't return cached result next time if the Promise rejects, unless a new Promise has already replaced\n // the one that rejected\n if (promiseCounterAtStart === promiseCounter) {\n hasResult = false;\n }\n });\n }\n\n // Cache the latest args and result.\n lastArgs = args;\n lastResult = result;\n hasResult = true;\n\n return result;\n };\n}\n"],"names":["memoizeLast","func","isEqual","defaultIsEqual","lastArgs","lastResult","hasResult","promiseCounter","args","result","promiseCounterAtStart"],"mappings":"qDAeO,SAASA,EAAgCC,EAAkB,CAAE,QAAAC,EAAUC,CAAe,EAAI,CAAC,EAAe,CAC/G,IAAIC,EAAqB,KACrBC,EAAuB,KACvBC,EAAY,GACZC,EAAiB,EAErB,MAAO,IAAIC,IAAe,CACxB,GAAIF,GAAaJ,EAAQE,EAAUI,CAAI,EACrC,OAAOH,EAGT,MAAMI,EAASR,EAAK,GAAGO,CAAI,EAE3B,GAAIC,aAAkB,QAAS,CAC7BF,IACA,MAAMG,EAAwBH,EAC9BE,EAAO,MAAM,IAAM,CAGbC,IAA0BH,IAC5BD,EAAY,GAEhB,CAAC,CACH,CAGA,OAAAF,EAAWI,EACXH,EAAaI,EACbH,EAAY,GAELG,CACT,CACF"}
1
+ {"version":3,"file":"memoize-last.js","sources":["../../src/utils/memoize-last.ts"],"sourcesContent":["import { isEqual as defaultIsEqual } from \"./is-equal\";\n\ntype Func<T extends any[], R> = (...args: T) => R;\n\n/**\n * Takes a function and returns a new memoized function.\n * If the same arguments are passed to the memoized function, it will return the previously computed result.\n * This is a \"memoize once\" function meaning it only compares the previous and current arguments, not historic values.\n * Results that throw errors or return rejected Promises are not cached.\n *\n * @param {Function} fn - The function to be memoized.\n * @param {(value: any) => boolean} [isEqual]- The equality function used to compare arguments.\n * @returns {Function} - The memoized function.\n * @param func\n */\nexport function memoizeLast<T extends any[], R>(func: Func<T, R>, { isEqual = defaultIsEqual } = {}): Func<T, R> {\n let lastArgs: T | null = null;\n let lastResult: R | null = null;\n let hasResult = false; // Separate variable to track whether lastResult exists because lastResult could be falsy\n let promiseCounter = 0; // Used to keep track of result order in async invocation so we know to replace cache or not\n\n return (...args: T): R => {\n if (hasResult && isEqual(lastArgs, args)) {\n return lastResult as R;\n }\n\n const result = func(...args); // Errors here are not caught, so result will not cache if there is an error\n\n if (result instanceof Promise) {\n promiseCounter++;\n const promiseCounterAtStart = promiseCounter;\n result.catch(() => {\n // Don't return cached result next time if the Promise rejects, unless a new Promise has already replaced\n // the one that rejected\n if (promiseCounterAtStart === promiseCounter) {\n hasResult = false;\n }\n });\n }\n\n // Cache the latest args and result.\n lastArgs = args;\n lastResult = result;\n hasResult = true;\n\n return result;\n };\n}\n"],"names":["memoizeLast","func","isEqual","defaultIsEqual","lastArgs","lastResult","hasResult","promiseCounter","args","result","promiseCounterAtStart"],"mappings":"qDAeO,SAASA,EAAgCC,EAAkB,CAAE,QAAAC,EAAUC,CAAe,EAAI,CAAA,EAAgB,CAC/G,IAAIC,EAAqB,KACrBC,EAAuB,KACvBC,EAAY,GACZC,EAAiB,EAErB,MAAO,IAAIC,IAAe,CACxB,GAAIF,GAAaJ,EAAQE,EAAUI,CAAI,EACrC,OAAOH,EAGT,MAAMI,EAASR,EAAK,GAAGO,CAAI,EAE3B,GAAIC,aAAkB,QAAS,CAC7BF,IACA,MAAMG,EAAwBH,EAC9BE,EAAO,MAAM,IAAM,CAGbC,IAA0BH,IAC5BD,EAAY,GAEhB,CAAC,CACH,CAGA,OAAAF,EAAWI,EACXH,EAAaI,EACbH,EAAY,GAELG,CACT,CACF"}
@@ -1 +1 @@
1
- {"version":3,"file":"network-listeners.esm.js","sources":["../../src/utils/network-listeners.ts"],"sourcesContent":["import { BeamNetworkCallEvent } from \"./events\";\n\n/**\n * Fetch Listener\n */\n\nconst fetchHandler = {\n apply: function (target: any, _thisArg: any, args: any[]) {\n return target(...args).then((response: Response) => {\n if (response.ok) {\n const responseCopy = response.clone();\n window.dispatchEvent(\n new BeamNetworkCallEvent({\n url: args[0].toString(),\n method: (args[1]?.method || \"get\").toLowerCase(),\n type: \"fetch\",\n response: responseCopy,\n })\n );\n }\n return response;\n });\n },\n};\n\n/**\n * XMLHTTPRequest Listener\n */\nconst xhrHandler = {\n construct(TargetConstructor: any, args: any[]) {\n const xhr: XMLHttpRequest = new TargetConstructor(...args);\n const _open: (method: string, url: string | URL) => void = xhr.open;\n let _method: string;\n let _url: string | URL;\n\n xhr.open = function (method: string, url: string | URL) {\n _method = method;\n _url = url;\n // @ts-expect-error arguments is untyped since xhr.open is an overloaded method\n // eslint-disable-next-line prefer-rest-params\n _open.apply(this, arguments);\n };\n\n xhr.addEventListener(\"load\", () => {\n window.dispatchEvent(\n new BeamNetworkCallEvent({\n url: (_url || \"\").toString(),\n method: (_method || \"get\").toLowerCase(),\n type: \"xhr\",\n xhr,\n })\n );\n });\n\n return xhr;\n },\n};\n\n/**\n * Side-Effects Setup (initialize listeners)\n */\n\nlet initializedListeners = false;\n\nexport const initNetworkListeners = () => {\n if (initializedListeners) return;\n window.fetch = new Proxy(window.fetch, fetchHandler);\n XMLHttpRequest = new Proxy(XMLHttpRequest, xhrHandler);\n initializedListeners = true;\n};\n"],"names":["fetchHandler","target","_thisArg","args","response","responseCopy","BeamNetworkCallEvent","xhrHandler","TargetConstructor","xhr","_open","_method","_url","method","url","initializedListeners","initNetworkListeners"],"mappings":"qDAMA,MAAMA,EAAe,CACnB,MAAO,SAAUC,EAAaC,EAAeC,EAAa,CACxD,OAAOF,EAAO,GAAGE,CAAI,EAAE,KAAMC,GAAuB,CAClD,GAAIA,EAAS,GAAI,CACf,MAAMC,EAAeD,EAAS,MAAM,EACpC,OAAO,cACL,IAAIE,EAAqB,CACvB,IAAKH,EAAK,CAAC,EAAE,SACb,EAAA,QAASA,EAAK,CAAC,GAAG,QAAU,OAAO,YAAY,EAC/C,KAAM,QACN,SAAUE,CACZ,CAAC,CACH,CACF,CACA,OAAOD,CACT,CAAC,CACH,CACF,EAKMG,EAAa,CACjB,UAAUC,EAAwBL,EAAa,CAC7C,MAAMM,EAAsB,IAAID,EAAkB,GAAGL,CAAI,EACnDO,EAAqDD,EAAI,KAC/D,IAAIE,EACAC,EAEJ,OAAAH,EAAI,KAAO,SAAUI,EAAgBC,EAAmB,CACtDH,EAAUE,EACVD,EAAOE,EAGPJ,EAAM,MAAM,KAAM,SAAS,CAC7B,EAEAD,EAAI,iBAAiB,OAAQ,IAAM,CACjC,OAAO,cACL,IAAIH,EAAqB,CACvB,KAAMM,GAAQ,IAAI,WAClB,QAASD,GAAW,OAAO,YAAA,EAC3B,KAAM,MACN,IAAAF,CACF,CAAC,CACH,CACF,CAAC,EAEMA,CACT,CACF,EAMA,IAAIM,EAAuB,GAEd,MAAAC,EAAuB,IAAM,CACpCD,IACJ,OAAO,MAAQ,IAAI,MAAM,OAAO,MAAOf,CAAY,EACnD,eAAiB,IAAI,MAAM,eAAgBO,CAAU,EACrDQ,EAAuB,GACzB"}
1
+ {"version":3,"file":"network-listeners.esm.js","sources":["../../src/utils/network-listeners.ts"],"sourcesContent":["import { BeamNetworkCallEvent } from \"./events\";\n\n/**\n * Fetch Listener\n */\n\nconst fetchHandler = {\n apply: function (target: any, _thisArg: any, args: any[]) {\n return target(...args).then((response: Response) => {\n if (response.ok) {\n const responseCopy = response.clone();\n window.dispatchEvent(\n new BeamNetworkCallEvent({\n url: args[0].toString(),\n method: (args[1]?.method || \"get\").toLowerCase(),\n type: \"fetch\",\n response: responseCopy,\n })\n );\n }\n return response;\n });\n },\n};\n\n/**\n * XMLHTTPRequest Listener\n */\nconst xhrHandler = {\n construct(TargetConstructor: any, args: any[]) {\n const xhr: XMLHttpRequest = new TargetConstructor(...args);\n const _open: (method: string, url: string | URL) => void = xhr.open;\n let _method: string;\n let _url: string | URL;\n\n xhr.open = function (method: string, url: string | URL) {\n _method = method;\n _url = url;\n // @ts-expect-error arguments is untyped since xhr.open is an overloaded method\n // eslint-disable-next-line prefer-rest-params\n _open.apply(this, arguments);\n };\n\n xhr.addEventListener(\"load\", () => {\n window.dispatchEvent(\n new BeamNetworkCallEvent({\n url: (_url || \"\").toString(),\n method: (_method || \"get\").toLowerCase(),\n type: \"xhr\",\n xhr,\n })\n );\n });\n\n return xhr;\n },\n};\n\n/**\n * Side-Effects Setup (initialize listeners)\n */\n\nlet initializedListeners = false;\n\nexport const initNetworkListeners = () => {\n if (initializedListeners) return;\n window.fetch = new Proxy(window.fetch, fetchHandler);\n XMLHttpRequest = new Proxy(XMLHttpRequest, xhrHandler);\n initializedListeners = true;\n};\n"],"names":["fetchHandler","target","_thisArg","args","response","responseCopy","BeamNetworkCallEvent","xhrHandler","TargetConstructor","xhr","_open","_method","_url","method","url","initializedListeners","initNetworkListeners"],"mappings":"qDAMA,MAAMA,EAAe,CACnB,MAAO,SAAUC,EAAaC,EAAeC,EAAa,CACxD,OAAOF,EAAO,GAAGE,CAAI,EAAE,KAAMC,GAAuB,CAClD,GAAIA,EAAS,GAAI,CACf,MAAMC,EAAeD,EAAS,MAAA,EAC9B,OAAO,cACL,IAAIE,EAAqB,CACvB,IAAKH,EAAK,CAAC,EAAE,SAAA,EACb,QAASA,EAAK,CAAC,GAAG,QAAU,OAAO,YAAA,EACnC,KAAM,QACN,SAAUE,CACZ,CAAC,CACH,CACF,CACA,OAAOD,CACT,CAAC,CACH,CACF,EAKMG,EAAa,CACjB,UAAUC,EAAwBL,EAAa,CAC7C,MAAMM,EAAsB,IAAID,EAAkB,GAAGL,CAAI,EACnDO,EAAqDD,EAAI,KAC/D,IAAIE,EACAC,EAEJ,OAAAH,EAAI,KAAO,SAAUI,EAAgBC,EAAmB,CACtDH,EAAUE,EACVD,EAAOE,EAGPJ,EAAM,MAAM,KAAM,SAAS,CAC7B,EAEAD,EAAI,iBAAiB,OAAQ,IAAM,CACjC,OAAO,cACL,IAAIH,EAAqB,CACvB,KAAMM,GAAQ,IAAI,SAAA,EAClB,QAASD,GAAW,OAAO,YAAA,EAC3B,KAAM,MACN,IAAAF,CACF,CAAC,CACH,CACF,CAAC,EAEMA,CACT,CACF,EAMA,IAAIM,EAAuB,GAEpB,MAAMC,EAAuB,IAAM,CACpCD,IACJ,OAAO,MAAQ,IAAI,MAAM,OAAO,MAAOf,CAAY,EACnD,eAAiB,IAAI,MAAM,eAAgBO,CAAU,EACrDQ,EAAuB,GACzB"}
@@ -1 +1 @@
1
- {"version":3,"file":"network-listeners.js","sources":["../../src/utils/network-listeners.ts"],"sourcesContent":["import { BeamNetworkCallEvent } from \"./events\";\n\n/**\n * Fetch Listener\n */\n\nconst fetchHandler = {\n apply: function (target: any, _thisArg: any, args: any[]) {\n return target(...args).then((response: Response) => {\n if (response.ok) {\n const responseCopy = response.clone();\n window.dispatchEvent(\n new BeamNetworkCallEvent({\n url: args[0].toString(),\n method: (args[1]?.method || \"get\").toLowerCase(),\n type: \"fetch\",\n response: responseCopy,\n })\n );\n }\n return response;\n });\n },\n};\n\n/**\n * XMLHTTPRequest Listener\n */\nconst xhrHandler = {\n construct(TargetConstructor: any, args: any[]) {\n const xhr: XMLHttpRequest = new TargetConstructor(...args);\n const _open: (method: string, url: string | URL) => void = xhr.open;\n let _method: string;\n let _url: string | URL;\n\n xhr.open = function (method: string, url: string | URL) {\n _method = method;\n _url = url;\n // @ts-expect-error arguments is untyped since xhr.open is an overloaded method\n // eslint-disable-next-line prefer-rest-params\n _open.apply(this, arguments);\n };\n\n xhr.addEventListener(\"load\", () => {\n window.dispatchEvent(\n new BeamNetworkCallEvent({\n url: (_url || \"\").toString(),\n method: (_method || \"get\").toLowerCase(),\n type: \"xhr\",\n xhr,\n })\n );\n });\n\n return xhr;\n },\n};\n\n/**\n * Side-Effects Setup (initialize listeners)\n */\n\nlet initializedListeners = false;\n\nexport const initNetworkListeners = () => {\n if (initializedListeners) return;\n window.fetch = new Proxy(window.fetch, fetchHandler);\n XMLHttpRequest = new Proxy(XMLHttpRequest, xhrHandler);\n initializedListeners = true;\n};\n"],"names":["fetchHandler","target","_thisArg","args","response","responseCopy","BeamNetworkCallEvent","xhrHandler","TargetConstructor","xhr","_open","_method","_url","method","url","initializedListeners","initNetworkListeners"],"mappings":"qDAMA,MAAMA,EAAe,CACnB,MAAO,SAAUC,EAAaC,EAAeC,EAAa,CACxD,OAAOF,EAAO,GAAGE,CAAI,EAAE,KAAMC,GAAuB,CAClD,GAAIA,EAAS,GAAI,CACf,MAAMC,EAAeD,EAAS,MAAM,EACpC,OAAO,cACL,IAAIE,EAAqB,CACvB,IAAKH,EAAK,CAAC,EAAE,SACb,EAAA,QAASA,EAAK,CAAC,GAAG,QAAU,OAAO,YAAY,EAC/C,KAAM,QACN,SAAUE,CACZ,CAAC,CACH,CACF,CACA,OAAOD,CACT,CAAC,CACH,CACF,EAKMG,EAAa,CACjB,UAAUC,EAAwBL,EAAa,CAC7C,MAAMM,EAAsB,IAAID,EAAkB,GAAGL,CAAI,EACnDO,EAAqDD,EAAI,KAC/D,IAAIE,EACAC,EAEJ,OAAAH,EAAI,KAAO,SAAUI,EAAgBC,EAAmB,CACtDH,EAAUE,EACVD,EAAOE,EAGPJ,EAAM,MAAM,KAAM,SAAS,CAC7B,EAEAD,EAAI,iBAAiB,OAAQ,IAAM,CACjC,OAAO,cACL,IAAIH,EAAqB,CACvB,KAAMM,GAAQ,IAAI,WAClB,QAASD,GAAW,OAAO,YAAA,EAC3B,KAAM,MACN,IAAAF,CACF,CAAC,CACH,CACF,CAAC,EAEMA,CACT,CACF,EAMA,IAAIM,EAAuB,GAEd,MAAAC,EAAuB,IAAM,CACpCD,IACJ,OAAO,MAAQ,IAAI,MAAM,OAAO,MAAOf,CAAY,EACnD,eAAiB,IAAI,MAAM,eAAgBO,CAAU,EACrDQ,EAAuB,GACzB"}
1
+ {"version":3,"file":"network-listeners.js","sources":["../../src/utils/network-listeners.ts"],"sourcesContent":["import { BeamNetworkCallEvent } from \"./events\";\n\n/**\n * Fetch Listener\n */\n\nconst fetchHandler = {\n apply: function (target: any, _thisArg: any, args: any[]) {\n return target(...args).then((response: Response) => {\n if (response.ok) {\n const responseCopy = response.clone();\n window.dispatchEvent(\n new BeamNetworkCallEvent({\n url: args[0].toString(),\n method: (args[1]?.method || \"get\").toLowerCase(),\n type: \"fetch\",\n response: responseCopy,\n })\n );\n }\n return response;\n });\n },\n};\n\n/**\n * XMLHTTPRequest Listener\n */\nconst xhrHandler = {\n construct(TargetConstructor: any, args: any[]) {\n const xhr: XMLHttpRequest = new TargetConstructor(...args);\n const _open: (method: string, url: string | URL) => void = xhr.open;\n let _method: string;\n let _url: string | URL;\n\n xhr.open = function (method: string, url: string | URL) {\n _method = method;\n _url = url;\n // @ts-expect-error arguments is untyped since xhr.open is an overloaded method\n // eslint-disable-next-line prefer-rest-params\n _open.apply(this, arguments);\n };\n\n xhr.addEventListener(\"load\", () => {\n window.dispatchEvent(\n new BeamNetworkCallEvent({\n url: (_url || \"\").toString(),\n method: (_method || \"get\").toLowerCase(),\n type: \"xhr\",\n xhr,\n })\n );\n });\n\n return xhr;\n },\n};\n\n/**\n * Side-Effects Setup (initialize listeners)\n */\n\nlet initializedListeners = false;\n\nexport const initNetworkListeners = () => {\n if (initializedListeners) return;\n window.fetch = new Proxy(window.fetch, fetchHandler);\n XMLHttpRequest = new Proxy(XMLHttpRequest, xhrHandler);\n initializedListeners = true;\n};\n"],"names":["fetchHandler","target","_thisArg","args","response","responseCopy","BeamNetworkCallEvent","xhrHandler","TargetConstructor","xhr","_open","_method","_url","method","url","initializedListeners","initNetworkListeners"],"mappings":"qDAMA,MAAMA,EAAe,CACnB,MAAO,SAAUC,EAAaC,EAAeC,EAAa,CACxD,OAAOF,EAAO,GAAGE,CAAI,EAAE,KAAMC,GAAuB,CAClD,GAAIA,EAAS,GAAI,CACf,MAAMC,EAAeD,EAAS,MAAA,EAC9B,OAAO,cACL,IAAIE,EAAqB,CACvB,IAAKH,EAAK,CAAC,EAAE,SAAA,EACb,QAASA,EAAK,CAAC,GAAG,QAAU,OAAO,YAAA,EACnC,KAAM,QACN,SAAUE,CACZ,CAAC,CACH,CACF,CACA,OAAOD,CACT,CAAC,CACH,CACF,EAKMG,EAAa,CACjB,UAAUC,EAAwBL,EAAa,CAC7C,MAAMM,EAAsB,IAAID,EAAkB,GAAGL,CAAI,EACnDO,EAAqDD,EAAI,KAC/D,IAAIE,EACAC,EAEJ,OAAAH,EAAI,KAAO,SAAUI,EAAgBC,EAAmB,CACtDH,EAAUE,EACVD,EAAOE,EAGPJ,EAAM,MAAM,KAAM,SAAS,CAC7B,EAEAD,EAAI,iBAAiB,OAAQ,IAAM,CACjC,OAAO,cACL,IAAIH,EAAqB,CACvB,KAAMM,GAAQ,IAAI,SAAA,EAClB,QAASD,GAAW,OAAO,YAAA,EAC3B,KAAM,MACN,IAAAF,CACF,CAAC,CACH,CACF,CAAC,EAEMA,CACT,CACF,EAMA,IAAIM,EAAuB,GAEpB,MAAMC,EAAuB,IAAM,CACpCD,IACJ,OAAO,MAAQ,IAAI,MAAM,OAAO,MAAOf,CAAY,EACnD,eAAiB,IAAI,MAAM,eAAgBO,CAAU,EACrDQ,EAAuB,GACzB"}
@@ -1,5 +1,5 @@
1
1
  import { b as TBeamCartLocalStorage } from '../chunks/cart-contents-CLT7p7Gd.esm.js';
2
- import { a as TPromoCodeResponse, b as TValidatedPromoResponse, T as TPromoCodeRequest, c as TPromoCodeAttribute } from '../chunks/promo-types-BPmDZ5dF.esm.js';
2
+ import { a as TPromoCodeAttribute, T as TPromoCodeRequest, b as TPromoCodeResponse, c as TValidatedPromoResponse } from '../chunks/promo-types-7r9-UuiP.esm.js';
3
3
  import '../chunks/openapi-spec-Bk7E2QQP.esm.js';
4
4
 
5
5
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"promoManager.esm.js","sources":["../../src/utils/promoManager.ts"],"sourcesContent":["import { Discount, TBeamCartLocalStorage } from \"../shared/cart-contents\";\nimport {\n TPromoCodeAttribute,\n PromoCodeSource,\n TPromoCodeRequest,\n TPromoCodeResponse,\n TValidatedPromoResponse,\n TUnvalidatedPromoRequest,\n PROMO_LOCAL_STORAGE_KEY,\n PROMO_CODES_COOKIE_NAME,\n TUnvalidatedPromoCode,\n} from \"../shared/promo-types\";\nimport { LocalStorageError } from \"./beam-errors\";\nimport { getCookieValue, setCookieValue } from \"./cookies\";\nimport { createScopedLocalStorage } from \"./local-storage\";\nimport { logger } from \"./logger\";\n\nconst URL_QUERY_PARAM_CHAR_LIMIT = 100;\nconst ALLOWED_URL_PREFIX = \"utm_\";\n// Standard name for Shopify's discount tracking cookie\nconst DISCOUNT_CODE_COOKIE_NAME = \"discount_code\";\n// < --------- Cookie ------- >\n\n/**\n * Retrieves all validated promo codes stored in the \"beam_promo_codes\" cookie and parses it\n *\n * @returns {TPromoCodeResponse | undefined} An array of `ValidatedPromoCode` objects if found and parsed successfully, otherwise `undefined`\n */\nexport const getAllPromoCodesFromCookie = (): TPromoCodeResponse | undefined => {\n const promoCodesString = getCookieValue(PROMO_CODES_COOKIE_NAME);\n\n if (!promoCodesString) return undefined;\n\n try {\n const promoCodes: TPromoCodeResponse = JSON.parse(promoCodesString);\n return promoCodes;\n } catch (error) {\n logger.error(\"Failed to parse beam_promo_codes cookie:\", error);\n return undefined;\n }\n};\n\n/**\n * Stores the validated promo codes in the \"beam_promo_codes\" cookie, replaces and does not merge\n *\n * @param {TValidatedPromoResponse} validatedPromoCodes\n * @param {string} domain\n */\nexport const setPromoCodeInCookie = ({\n validatedPromoCodes,\n domain,\n}: {\n validatedPromoCodes: TValidatedPromoResponse;\n domain?: string;\n}) => {\n const promoCodeData = {\n validatedPromoCodes: validatedPromoCodes,\n };\n const threeMonthsFromNow = Date.now() + 1000 * 60 * 60 * 24 * 90;\n\n setCookieValue({\n name: PROMO_CODES_COOKIE_NAME,\n value: JSON.stringify(promoCodeData),\n path: \"/\",\n domain,\n // If we don't set an expiration, the cookie will be cleared when the tab is closed\n expires: threeMonthsFromNow,\n });\n};\n\n// < --------- Local Storage ------- >\n/**\n * Retrieves promo codes from localStorage, scoped by API key\n * @param {string} apiKey API key used for storage scoping\n * @returns {TPromoCodeRequest | null} - Returns stored promo codes object containing both\n * validated and unvalidated codes\n * - If no codes exist, returns a fresh object with empty arrays\n *\n */\nexport const getPromoCodesLocalStorage = ({ apiKey }: { apiKey: string }): TPromoCodeRequest | null => {\n if (!apiKey) {\n logger.error(new LocalStorageError(\"API key is required to get promo codes\"));\n return null;\n }\n\n const storage = createScopedLocalStorage({ apiKey });\n const allPromos = storage.getItemJson<TPromoCodeRequest>(PROMO_LOCAL_STORAGE_KEY) ?? {\n unvalidatedPromoCodes: [],\n validatedPromoCodes: [],\n };\n\n return allPromos;\n};\n\n/**\n * Sets promo codes in localStorage\n * @param {TPromoCodeRequest} promoCodes New promo codes to add\n * @param {string} apiKey API key for storage scoping\n */\nexport const setPromoCodesInLocalStorage = ({\n apiKey,\n promoCodes,\n}: {\n apiKey?: string;\n promoCodes: Partial<TPromoCodeRequest>;\n}): void => {\n if (!apiKey) {\n logger.error(new LocalStorageError(\"API key is required to set promo codes\"));\n return;\n }\n const storage = createScopedLocalStorage({ apiKey });\n const completePromoCodes: TPromoCodeRequest = {\n unvalidatedPromoCodes: promoCodes?.unvalidatedPromoCodes || [],\n validatedPromoCodes: promoCodes?.validatedPromoCodes || [],\n };\n storage.setItemJson(PROMO_LOCAL_STORAGE_KEY, completePromoCodes);\n};\n\n/**\n * Merges new promo codes with existing ones and returns the combined result\n * @param {Partial<TPromoCodeRequest>} newPromos New promo codes to add\n * @param {string} apiKey API key for storage scoping\n * @returns {TPromoCodeRequest} An object containing both validated and unvalidated promo codes\n * @example\n * const result = mergePromoCodes({\n * apiKey: 'beam_123',\n * newPromos: {\n * unvalidatedPromoCodes: [\n * { type: 'manual', attributes: { value: 'WINTER20' } },\n * { type: 'url', attributes: { url: 'www.example.com/?promo=HOLIDAY25' } }\n * ]\n * }\n * });\n */\nexport const mergeStoreAndReturnPromos = ({\n newPromos,\n apiKey,\n}: {\n newPromos: Partial<TPromoCodeRequest>;\n apiKey: string;\n}): TPromoCodeRequest => {\n const existing = getPromoCodesLocalStorage({ apiKey }) ?? {\n unvalidatedPromoCodes: [],\n validatedPromoCodes: [],\n };\n\n const uniqueNewUnvalidatedPromos = (newPromos?.unvalidatedPromoCodes || []).filter((newPromo) => {\n const isDuplicate = existing.unvalidatedPromoCodes.some((existingPromo) => {\n return JSON.stringify(existingPromo) === JSON.stringify(newPromo);\n });\n return !isDuplicate;\n });\n\n const mergedCodes: TPromoCodeRequest = {\n unvalidatedPromoCodes: [...existing.unvalidatedPromoCodes, ...uniqueNewUnvalidatedPromos],\n validatedPromoCodes: [...existing.validatedPromoCodes, ...(newPromos?.validatedPromoCodes || [])],\n };\n\n const shouldStore = mergedCodes.unvalidatedPromoCodes.length > 0 || mergedCodes.validatedPromoCodes.length > 0;\n\n if (shouldStore) {\n setPromoCodesInLocalStorage({ apiKey, promoCodes: mergedCodes });\n }\n return {\n ...mergedCodes,\n };\n};\n\n/**\n * Formats unvalidated promo codes by determining their source and attributes\n * The function will assign `QueryParam` as the source if a `url` exists,\n * otherwise, it will assign `Manual` as the source\n *\n * @param {TPromoCodeAttribute[]} promoAttributes An array of promo attributes to be formatted\n * @returns {TUnvalidatedPromoRequest} - An array of UnvalidatedPromoCode objects,\n * each with a source and attributes object\n */\nexport const mapToUnvalidatedPromoCodes = (promoAttributes: TPromoCodeAttribute[]): TUnvalidatedPromoRequest => {\n return promoAttributes.reduce<TUnvalidatedPromoRequest>((acc, attr) => {\n const result: TUnvalidatedPromoRequest = acc || [];\n if (attr.url) {\n result.push({\n type: PromoCodeSource.Url,\n attributes: { url: attr.url },\n });\n } else if (attr.value) {\n result.push({\n type: PromoCodeSource.Manual,\n attributes: { value: attr.value },\n });\n } else {\n logger.error(\"Invalid PromoAttribute - must contain either 'url' or 'value'\", { attr });\n }\n return result;\n }, []);\n};\n\n/**\n * @param {TPromoCodeAttribute[]} promoAttributes An array of promo attributes to be formatted\n * @param {string} apiKey API key for storage scoping\n * @returns {TPromoCodeRequest} An object containing both validated and unvalidated promo codes\n */\nexport const formatStoreAndReturnPromoCodes = (\n promoAttributes: TPromoCodeAttribute[],\n apiKey: string\n): TPromoCodeRequest => {\n const unvalidatedPromoCodes = mapToUnvalidatedPromoCodes(promoAttributes);\n return mergeStoreAndReturnPromos({ newPromos: { unvalidatedPromoCodes }, apiKey });\n};\n\n/**\n * Extracts applicable promo codes from the cart object\n * This function retrieves discounts stored in the cart's `content.discounts` array,\n * filters out only the applicable promo codes, and returns them as an array of strings\n *\n * @param {TBeamCartLocalStorage} cart The cart object retrieved from local storage\n * @returns {string[]} An array of applicable promo codes\n */\nexport const getPromoCodesFromCart = (cart: TBeamCartLocalStorage): string[] => {\n if (!cart?.content) return [];\n\n const cartLevelCodes = cart.content.discounts?.filter((d) => d.applicable)?.map((d) => d.code) || [];\n\n const itemLevelCodes =\n cart.content.items?.flatMap(\n (item) => item.discounts?.filter((d: Discount) => d.applicable)?.map((d: Discount) => d.code) || []\n ) || [];\n\n const allCodes = [...cartLevelCodes, ...itemLevelCodes];\n\n return [...new Set(allCodes)];\n};\n\n/**\n * Gets promo code exclusively from Shopify discount cookie\n * @returns {string | null} Single discount code or null if not found\n */\nexport const getPromoCodeFromShopifyCookie = (): string | null => {\n return getCookieValue(DISCOUNT_CODE_COOKIE_NAME) ?? null;\n};\n\n/**\n * Safely parses a JSON string into an array of strings\n * If parsing fails or the input is not a valid JSON array, it returns an empty array\n *\n * @param {string | undefined | null} jsonString The JSON string to parse\n * @returns {string[]} The parsed array of strings or an empty array if parsing fails\n */\nexport const parseJsonStringArray = (jsonString: string | undefined | null): string[] => {\n if (!jsonString) return [];\n try {\n const parsed = JSON.parse(jsonString);\n if (Array.isArray(parsed) && parsed.every((item) => typeof item === \"string\")) {\n return parsed;\n }\n return [];\n } catch (error) {\n logger.error(\"Failed to parse JSON:\", error);\n return [];\n }\n};\n\n/**\n * Retrieves and sanitizes the current URL for storage, preserving only safe query parameters\n *\n * @returns {TPromoCodeAttribute} Returns an object with only the `url` property set\n */\nexport const getSanitizedUrlForStorage = (): TPromoCodeAttribute | undefined => {\n try {\n const url = new URL(window.location.href);\n\n if (!url.search) return undefined;\n\n // Create NEW URL instead of modifying existing one\n const cleanUrl = new URL(url.origin + url.pathname);\n let hasValidParams = false;\n\n // Process all parameters\n url.searchParams.forEach((value, key) => {\n const isAllowed = key.startsWith(ALLOWED_URL_PREFIX);\n const isValidLength = value.length <= URL_QUERY_PARAM_CHAR_LIMIT;\n\n if (isAllowed && isValidLength) {\n cleanUrl.searchParams.append(key, value);\n hasValidParams = true;\n }\n });\n\n const finalUrl = cleanUrl.toString();\n return hasValidParams ? { url: finalUrl } : undefined;\n } catch (error) {\n return undefined;\n }\n};\n\nexport const promoCodesAreEqual = (a: TPromoCodeRequest, b: TPromoCodeRequest): boolean => {\n const extract = (codes: unknown): string => {\n const validCodes = (Array.isArray(codes) ? codes : []) as TUnvalidatedPromoCode[];\n\n const flattened = validCodes\n .map((c) => {\n if (c.type === \"manual\") {\n return c.attributes?.value;\n }\n if (c.type === \"url\") {\n return c.attributes?.url;\n }\n return \"\";\n })\n .filter(Boolean)\n .sort()\n .join(\",\");\n return flattened;\n };\n\n return extract(a?.unvalidatedPromoCodes) === extract(b?.unvalidatedPromoCodes);\n};\n\nexport const isEmptyPromoData = (promos: {\n unvalidatedPromoCodes?: unknown[];\n validatedPromoCodes?: unknown[];\n}): boolean => {\n return (\n (!promos.unvalidatedPromoCodes || promos.unvalidatedPromoCodes.length === 0) &&\n (!promos.validatedPromoCodes || promos.validatedPromoCodes.length === 0)\n );\n};\n"],"names":["URL_QUERY_PARAM_CHAR_LIMIT","ALLOWED_URL_PREFIX","DISCOUNT_CODE_COOKIE_NAME","getAllPromoCodesFromCookie","promoCodesString","getCookieValue","PROMO_CODES_COOKIE_NAME","error","logger","setPromoCodeInCookie","validatedPromoCodes","domain","promoCodeData","threeMonthsFromNow","setCookieValue","getPromoCodesLocalStorage","apiKey","createScopedLocalStorage","PROMO_LOCAL_STORAGE_KEY","LocalStorageError","setPromoCodesInLocalStorage","promoCodes","storage","completePromoCodes","mergeStoreAndReturnPromos","newPromos","existing","uniqueNewUnvalidatedPromos","newPromo","existingPromo","mergedCodes","mapToUnvalidatedPromoCodes","promoAttributes","acc","attr","result","PromoCodeSource","formatStoreAndReturnPromoCodes","unvalidatedPromoCodes","getPromoCodesFromCart","cart","cartLevelCodes","d","itemLevelCodes","item","allCodes","getPromoCodeFromShopifyCookie","parseJsonStringArray","jsonString","parsed","getSanitizedUrlForStorage","url","cleanUrl","hasValidParams","value","key","isAllowed","isValidLength","finalUrl","promoCodesAreEqual","a","b","extract","codes","c","isEmptyPromoData","promos"],"mappings":"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"}
1
+ {"version":3,"file":"promoManager.esm.js","sources":["../../src/utils/promoManager.ts"],"sourcesContent":["import { Discount, TBeamCartLocalStorage } from \"../shared/cart-contents\";\nimport {\n TPromoCodeAttribute,\n PromoCodeSource,\n TPromoCodeRequest,\n TPromoCodeResponse,\n TValidatedPromoResponse,\n TUnvalidatedPromoRequest,\n PROMO_LOCAL_STORAGE_KEY,\n PROMO_CODES_COOKIE_NAME,\n TUnvalidatedPromoCode,\n} from \"../shared/promo-types\";\nimport { LocalStorageError } from \"./beam-errors\";\nimport { getCookieValue, setCookieValue } from \"./cookies\";\nimport { createScopedLocalStorage } from \"./local-storage\";\nimport { logger } from \"./logger\";\n\nconst URL_QUERY_PARAM_CHAR_LIMIT = 100;\nconst ALLOWED_URL_PREFIX = \"utm_\";\n// Standard name for Shopify's discount tracking cookie\nconst DISCOUNT_CODE_COOKIE_NAME = \"discount_code\";\n// < --------- Cookie ------- >\n\n/**\n * Retrieves all validated promo codes stored in the \"beam_promo_codes\" cookie and parses it\n *\n * @returns {TPromoCodeResponse | undefined} An array of `ValidatedPromoCode` objects if found and parsed successfully, otherwise `undefined`\n */\nexport const getAllPromoCodesFromCookie = (): TPromoCodeResponse | undefined => {\n const promoCodesString = getCookieValue(PROMO_CODES_COOKIE_NAME);\n\n if (!promoCodesString) return undefined;\n\n try {\n const promoCodes: TPromoCodeResponse = JSON.parse(promoCodesString);\n return promoCodes;\n } catch (error) {\n logger.error(\"Failed to parse beam_promo_codes cookie:\", error);\n return undefined;\n }\n};\n\n/**\n * Stores the validated promo codes in the \"beam_promo_codes\" cookie, replaces and does not merge\n *\n * @param {TValidatedPromoResponse} validatedPromoCodes\n * @param {string} domain\n */\nexport const setPromoCodeInCookie = ({\n validatedPromoCodes,\n domain,\n}: {\n validatedPromoCodes: TValidatedPromoResponse;\n domain?: string;\n}) => {\n const promoCodeData = {\n validatedPromoCodes: validatedPromoCodes,\n };\n const threeMonthsFromNow = Date.now() + 1000 * 60 * 60 * 24 * 90;\n\n setCookieValue({\n name: PROMO_CODES_COOKIE_NAME,\n value: JSON.stringify(promoCodeData),\n path: \"/\",\n domain,\n // If we don't set an expiration, the cookie will be cleared when the tab is closed\n expires: threeMonthsFromNow,\n });\n};\n\n// < --------- Local Storage ------- >\n/**\n * Retrieves promo codes from localStorage, scoped by API key\n * @param {string} apiKey API key used for storage scoping\n * @returns {TPromoCodeRequest | null} - Returns stored promo codes object containing both\n * validated and unvalidated codes\n * - If no codes exist, returns a fresh object with empty arrays\n *\n */\nexport const getPromoCodesLocalStorage = ({ apiKey }: { apiKey: string }): TPromoCodeRequest | null => {\n if (!apiKey) {\n logger.error(new LocalStorageError(\"API key is required to get promo codes\"));\n return null;\n }\n\n const storage = createScopedLocalStorage({ apiKey });\n const allPromos = storage.getItemJson<TPromoCodeRequest>(PROMO_LOCAL_STORAGE_KEY) ?? {\n unvalidatedPromoCodes: [],\n validatedPromoCodes: [],\n };\n\n return allPromos;\n};\n\n/**\n * Sets promo codes in localStorage\n * @param {TPromoCodeRequest} promoCodes New promo codes to add\n * @param {string} apiKey API key for storage scoping\n */\nexport const setPromoCodesInLocalStorage = ({\n apiKey,\n promoCodes,\n}: {\n apiKey?: string;\n promoCodes: Partial<TPromoCodeRequest>;\n}): void => {\n if (!apiKey) {\n logger.error(new LocalStorageError(\"API key is required to set promo codes\"));\n return;\n }\n const storage = createScopedLocalStorage({ apiKey });\n const completePromoCodes: TPromoCodeRequest = {\n unvalidatedPromoCodes: promoCodes?.unvalidatedPromoCodes || [],\n validatedPromoCodes: promoCodes?.validatedPromoCodes || [],\n };\n storage.setItemJson(PROMO_LOCAL_STORAGE_KEY, completePromoCodes);\n};\n\n/**\n * Merges new promo codes with existing ones and returns the combined result\n * @param {Partial<TPromoCodeRequest>} newPromos New promo codes to add\n * @param {string} apiKey API key for storage scoping\n * @returns {TPromoCodeRequest} An object containing both validated and unvalidated promo codes\n * @example\n * const result = mergePromoCodes({\n * apiKey: 'beam_123',\n * newPromos: {\n * unvalidatedPromoCodes: [\n * { type: 'manual', attributes: { value: 'WINTER20' } },\n * { type: 'url', attributes: { url: 'www.example.com/?promo=HOLIDAY25' } }\n * ]\n * }\n * });\n */\nexport const mergeStoreAndReturnPromos = ({\n newPromos,\n apiKey,\n}: {\n newPromos: Partial<TPromoCodeRequest>;\n apiKey: string;\n}): TPromoCodeRequest => {\n const existing = getPromoCodesLocalStorage({ apiKey }) ?? {\n unvalidatedPromoCodes: [],\n validatedPromoCodes: [],\n };\n\n const uniqueNewUnvalidatedPromos = (newPromos?.unvalidatedPromoCodes || []).filter((newPromo) => {\n const isDuplicate = existing.unvalidatedPromoCodes.some((existingPromo) => {\n return JSON.stringify(existingPromo) === JSON.stringify(newPromo);\n });\n return !isDuplicate;\n });\n\n const mergedCodes: TPromoCodeRequest = {\n unvalidatedPromoCodes: [...existing.unvalidatedPromoCodes, ...uniqueNewUnvalidatedPromos],\n validatedPromoCodes: [...existing.validatedPromoCodes, ...(newPromos?.validatedPromoCodes || [])],\n };\n\n const shouldStore = mergedCodes.unvalidatedPromoCodes.length > 0 || mergedCodes.validatedPromoCodes.length > 0;\n\n if (shouldStore) {\n setPromoCodesInLocalStorage({ apiKey, promoCodes: mergedCodes });\n }\n return {\n ...mergedCodes,\n };\n};\n\n/**\n * Formats unvalidated promo codes by determining their source and attributes\n * The function will assign `QueryParam` as the source if a `url` exists,\n * otherwise, it will assign `Manual` as the source\n *\n * @param {TPromoCodeAttribute[]} promoAttributes An array of promo attributes to be formatted\n * @returns {TUnvalidatedPromoRequest} - An array of UnvalidatedPromoCode objects,\n * each with a source and attributes object\n */\nexport const mapToUnvalidatedPromoCodes = (promoAttributes: TPromoCodeAttribute[]): TUnvalidatedPromoRequest => {\n return promoAttributes.reduce<TUnvalidatedPromoRequest>((acc, attr) => {\n const result: TUnvalidatedPromoRequest = acc || [];\n if (attr.url) {\n result.push({\n type: PromoCodeSource.Url,\n attributes: { url: attr.url },\n });\n } else if (attr.value) {\n result.push({\n type: PromoCodeSource.Manual,\n attributes: { value: attr.value },\n });\n } else {\n logger.error(\"Invalid PromoAttribute - must contain either 'url' or 'value'\", { attr });\n }\n return result;\n }, []);\n};\n\n/**\n * @param {TPromoCodeAttribute[]} promoAttributes An array of promo attributes to be formatted\n * @param {string} apiKey API key for storage scoping\n * @returns {TPromoCodeRequest} An object containing both validated and unvalidated promo codes\n */\nexport const formatStoreAndReturnPromoCodes = (\n promoAttributes: TPromoCodeAttribute[],\n apiKey: string\n): TPromoCodeRequest => {\n const unvalidatedPromoCodes = mapToUnvalidatedPromoCodes(promoAttributes);\n return mergeStoreAndReturnPromos({ newPromos: { unvalidatedPromoCodes }, apiKey });\n};\n\n/**\n * Extracts applicable promo codes from the cart object\n * This function retrieves discounts stored in the cart's `content.discounts` array,\n * filters out only the applicable promo codes, and returns them as an array of strings\n *\n * @param {TBeamCartLocalStorage} cart The cart object retrieved from local storage\n * @returns {string[]} An array of applicable promo codes\n */\nexport const getPromoCodesFromCart = (cart: TBeamCartLocalStorage): string[] => {\n if (!cart?.content) return [];\n\n const cartLevelCodes = cart.content.discounts?.filter((d) => d.applicable)?.map((d) => d.code) || [];\n\n const itemLevelCodes =\n cart.content.items?.flatMap(\n (item) => item.discounts?.filter((d: Discount) => d.applicable)?.map((d: Discount) => d.code) || []\n ) || [];\n\n const allCodes = [...cartLevelCodes, ...itemLevelCodes];\n\n return [...new Set(allCodes)];\n};\n\n/**\n * Gets promo code exclusively from Shopify discount cookie\n * @returns {string | null} Single discount code or null if not found\n */\nexport const getPromoCodeFromShopifyCookie = (): string | null => {\n return getCookieValue(DISCOUNT_CODE_COOKIE_NAME) ?? null;\n};\n\n/**\n * Safely parses a JSON string into an array of strings\n * If parsing fails or the input is not a valid JSON array, it returns an empty array\n *\n * @param {string | undefined | null} jsonString The JSON string to parse\n * @returns {string[]} The parsed array of strings or an empty array if parsing fails\n */\nexport const parseJsonStringArray = (jsonString: string | undefined | null): string[] => {\n if (!jsonString) return [];\n try {\n const parsed = JSON.parse(jsonString);\n if (Array.isArray(parsed) && parsed.every((item) => typeof item === \"string\")) {\n return parsed;\n }\n return [];\n } catch (error) {\n logger.error(\"Failed to parse JSON:\", error);\n return [];\n }\n};\n\n/**\n * Retrieves and sanitizes the current URL for storage, preserving only safe query parameters\n *\n * @returns {TPromoCodeAttribute} Returns an object with only the `url` property set\n */\nexport const getSanitizedUrlForStorage = (): TPromoCodeAttribute | undefined => {\n try {\n const url = new URL(window.location.href);\n\n if (!url.search) return undefined;\n\n // Create NEW URL instead of modifying existing one\n const cleanUrl = new URL(url.origin + url.pathname);\n let hasValidParams = false;\n\n // Process all parameters\n url.searchParams.forEach((value, key) => {\n const isAllowed = key.startsWith(ALLOWED_URL_PREFIX);\n const isValidLength = value.length <= URL_QUERY_PARAM_CHAR_LIMIT;\n\n if (isAllowed && isValidLength) {\n cleanUrl.searchParams.append(key, value);\n hasValidParams = true;\n }\n });\n\n const finalUrl = cleanUrl.toString();\n return hasValidParams ? { url: finalUrl } : undefined;\n } catch (error) {\n return undefined;\n }\n};\n\nexport const promoCodesAreEqual = (a: TPromoCodeRequest, b: TPromoCodeRequest): boolean => {\n const extract = (codes: unknown): string => {\n const validCodes = (Array.isArray(codes) ? codes : []) as TUnvalidatedPromoCode[];\n\n const flattened = validCodes\n .map((c) => {\n if (c.type === \"manual\") {\n return c.attributes?.value;\n }\n if (c.type === \"url\") {\n return c.attributes?.url;\n }\n return \"\";\n })\n .filter(Boolean)\n .sort()\n .join(\",\");\n return flattened;\n };\n\n return extract(a?.unvalidatedPromoCodes) === extract(b?.unvalidatedPromoCodes);\n};\n\nexport const isEmptyPromoData = (promos: {\n unvalidatedPromoCodes?: unknown[];\n validatedPromoCodes?: unknown[];\n}): boolean => {\n return (\n (!promos.unvalidatedPromoCodes || promos.unvalidatedPromoCodes.length === 0) &&\n (!promos.validatedPromoCodes || promos.validatedPromoCodes.length === 0)\n );\n};\n"],"names":["URL_QUERY_PARAM_CHAR_LIMIT","ALLOWED_URL_PREFIX","DISCOUNT_CODE_COOKIE_NAME","getAllPromoCodesFromCookie","promoCodesString","getCookieValue","PROMO_CODES_COOKIE_NAME","error","logger","setPromoCodeInCookie","validatedPromoCodes","domain","promoCodeData","threeMonthsFromNow","setCookieValue","getPromoCodesLocalStorage","apiKey","createScopedLocalStorage","PROMO_LOCAL_STORAGE_KEY","LocalStorageError","setPromoCodesInLocalStorage","promoCodes","storage","completePromoCodes","mergeStoreAndReturnPromos","newPromos","existing","uniqueNewUnvalidatedPromos","newPromo","existingPromo","mergedCodes","mapToUnvalidatedPromoCodes","promoAttributes","acc","attr","result","PromoCodeSource","formatStoreAndReturnPromoCodes","unvalidatedPromoCodes","getPromoCodesFromCart","cart","cartLevelCodes","d","itemLevelCodes","item","allCodes","getPromoCodeFromShopifyCookie","parseJsonStringArray","jsonString","parsed","getSanitizedUrlForStorage","url","cleanUrl","hasValidParams","value","key","isAllowed","isValidLength","finalUrl","promoCodesAreEqual","a","b","extract","codes","c","isEmptyPromoData","promos"],"mappings":"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"}