@dropins/storefront-checkout 2.0.1 → 2.1.0-beta2

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 (97) hide show
  1. package/api/fragments.d.ts +4 -1
  2. package/{lib/network-error.d.ts → api/getNegotiableQuote/getNegotiableQuote.d.ts} +7 -7
  3. package/{signals/ServerErrorSignal.d.ts → api/getNegotiableQuote/graphql/getNegotiableQuote.graphql.d.ts} +3 -3
  4. package/{errors → api/getNegotiableQuote/graphql}/index.d.ts +2 -2
  5. package/{signals → api/getNegotiableQuote}/index.d.ts +2 -2
  6. package/api/graphql/CartAddressFragment.graphql.d.ts +1 -1
  7. package/api/graphql/NegotiableQuoteAddressFragment.graphql.d.ts +19 -0
  8. package/api/graphql/NegotiableQuoteFragment.graphql.d.ts +18 -0
  9. package/api/graphql/{CartPaymentMethodFragment.graphql.d.ts → PaymentMethodFragment.graphql.d.ts} +1 -1
  10. package/api/graphql/ShippingMethodFragment.graphql.d.ts +19 -0
  11. package/api/index.d.ts +5 -1
  12. package/api/setNegotiableQuoteBillingAddress/graphql/index.d.ts +18 -0
  13. package/api/setNegotiableQuoteBillingAddress/graphql/setNegotiableQuoteBillingAddress.graphql.d.ts +18 -0
  14. package/api/setNegotiableQuoteBillingAddress/index.d.ts +18 -0
  15. package/api/setNegotiableQuoteBillingAddress/setNegotiableQuoteBillingAddress.d.ts +6 -0
  16. package/api/setNegotiableQuotePaymentMethod/graphql/index.d.ts +18 -0
  17. package/api/setNegotiableQuotePaymentMethod/graphql/setNegotiableQuotePaymentMethod.graphql.d.ts +18 -0
  18. package/api/setNegotiableQuotePaymentMethod/index.d.ts +18 -0
  19. package/api/setNegotiableQuotePaymentMethod/setNegotiableQuotePaymentMethod.d.ts +6 -0
  20. package/api/setNegotiableQuoteShippingAddress/graphql/index.d.ts +18 -0
  21. package/api/setNegotiableQuoteShippingAddress/graphql/setNegotiableQuoteShippingAddress.graphql.d.ts +18 -0
  22. package/api/setNegotiableQuoteShippingAddress/index.d.ts +18 -0
  23. package/api/setNegotiableQuoteShippingAddress/setNegotiableQuoteShippingAddress.d.ts +6 -0
  24. package/api/setNegotiableQuoteShippingMethods/graphql/index.d.ts +18 -0
  25. package/api/setNegotiableQuoteShippingMethods/graphql/setNegotiableQuoteShippingMethods.graphql.d.ts +18 -0
  26. package/api/setNegotiableQuoteShippingMethods/index.d.ts +18 -0
  27. package/api/setNegotiableQuoteShippingMethods/setNegotiableQuoteShippingMethods.d.ts +18 -0
  28. package/api.js +78 -7
  29. package/api.js.map +1 -1
  30. package/chunks/checkout.js.map +1 -1
  31. package/chunks/fetch-graphql.js +14 -0
  32. package/chunks/fetch-graphql.js.map +1 -0
  33. package/chunks/setBillingAddress.js +2 -2
  34. package/chunks/setBillingAddress.js.map +1 -1
  35. package/chunks/setGuestEmailOnCart.js +4 -4
  36. package/chunks/setGuestEmailOnCart.js.map +1 -1
  37. package/chunks/setPaymentMethod.js +2 -2
  38. package/chunks/setPaymentMethod.js.map +1 -1
  39. package/chunks/setShippingMethods.js +3 -3
  40. package/chunks/setShippingMethods.js.map +1 -1
  41. package/chunks/synchronizeCheckout.js +3 -3
  42. package/chunks/synchronizeCheckout.js.map +1 -1
  43. package/containers/BillToShippingAddress.js +1 -1
  44. package/containers/BillToShippingAddress.js.map +1 -1
  45. package/containers/EstimateShipping.js +1 -1
  46. package/containers/EstimateShipping.js.map +1 -1
  47. package/containers/LoginForm.js +1 -1
  48. package/containers/LoginForm.js.map +1 -1
  49. package/containers/OutOfStock.js +1 -1
  50. package/containers/OutOfStock.js.map +1 -1
  51. package/containers/PaymentMethods.js +1 -1
  52. package/containers/PaymentMethods.js.map +1 -1
  53. package/containers/PlaceOrder.js +1 -1
  54. package/containers/PlaceOrder.js.map +1 -1
  55. package/containers/ServerError.js +1 -1
  56. package/containers/ServerError.js.map +1 -1
  57. package/containers/ShippingMethods.js +1 -1
  58. package/containers/ShippingMethods.js.map +1 -1
  59. package/containers/TermsAndConditions.js +1 -1
  60. package/containers/TermsAndConditions.js.map +1 -1
  61. package/data/models/address.d.ts +5 -8
  62. package/data/models/api.d.ts +3 -3
  63. package/data/models/cart.d.ts +14 -7
  64. package/data/models/checkout.d.ts +14 -0
  65. package/data/models/country.d.ts +1 -1
  66. package/data/models/index.d.ts +2 -1
  67. package/data/models/{price.d.ts → money.d.ts} +2 -2
  68. package/data/models/quote.d.ts +15 -0
  69. package/data/models/shipping-estimate.d.ts +4 -4
  70. package/data/models/shipping-method.d.ts +4 -4
  71. package/data/transforms/index.d.ts +6 -1
  72. package/data/transforms/{transform-address.d.ts → transform-cart-address.d.ts} +12 -13
  73. package/data/transforms/transform-cart.d.ts +1 -1
  74. package/data/transforms/transform-country.d.ts +8 -0
  75. package/data/transforms/transform-negotiable-quote.d.ts +7 -0
  76. package/data/transforms/transform-payment-methods.d.ts +1 -1
  77. package/data/transforms/transform-quote-address.d.ts +75 -0
  78. package/data/transforms/transform-region.d.ts +8 -0
  79. package/fragments.js +126 -43
  80. package/fragments.js.map +1 -1
  81. package/lib/enqueueRequest.d.ts +1 -0
  82. package/lib/errors/classifiers.d.ts +36 -0
  83. package/lib/errors/customErrors.d.ts +39 -0
  84. package/lib/errors/index.d.ts +20 -0
  85. package/lib/errors/mapErrorToCode.d.ts +4 -0
  86. package/lib/index.d.ts +1 -1
  87. package/lib/state.d.ts +1 -0
  88. package/package.json +1 -1
  89. package/render.js +1 -1
  90. package/render.js.map +1 -1
  91. package/tests/constants.d.ts +1 -0
  92. package/tests/fixtures/fragments/cart.d.ts +1 -2
  93. package/chunks/ServerErrorSignal.js +0 -4
  94. package/chunks/ServerErrorSignal.js.map +0 -1
  95. package/chunks/errors.js +0 -14
  96. package/chunks/errors.js.map +0 -1
  97. package/errors/errors.d.ts +0 -30
package/fragments.js CHANGED
@@ -1,6 +1,45 @@
1
1
  /*! Copyright 2025 Adobe
2
2
  All Rights Reserved. */
3
3
  const e=`
4
+ fragment AVAILABLE_SHIPPING_METHOD_FRAGMENT on AvailableShippingMethod {
5
+ amount {
6
+ currency
7
+ value
8
+ }
9
+ carrier_code
10
+ carrier_title
11
+ error_message
12
+ method_code
13
+ method_title
14
+ price_excl_tax {
15
+ value
16
+ currency
17
+ }
18
+ price_incl_tax {
19
+ value
20
+ currency
21
+ }
22
+ }
23
+ `,_=`
24
+ fragment SELECTED_SHIPPING_METHOD_FRAGMENT on SelectedShippingMethod {
25
+ amount {
26
+ currency
27
+ value
28
+ }
29
+ carrier_code
30
+ carrier_title
31
+ method_code
32
+ method_title
33
+ price_excl_tax {
34
+ value
35
+ currency
36
+ }
37
+ price_incl_tax {
38
+ value
39
+ currency
40
+ }
41
+ }
42
+ `,a=`
4
43
  fragment BILLING_CART_ADDRESS_FRAGMENT on BillingCartAddress {
5
44
  id
6
45
  city
@@ -31,7 +70,7 @@ const e=`
31
70
  middlename
32
71
  fax
33
72
  }
34
- `,t=`
73
+ `,A=`
35
74
  fragment SHIPPING_CART_ADDRESS_FRAGMENT on ShippingCartAddress {
36
75
  id
37
76
  firstname
@@ -58,42 +97,10 @@ const e=`
58
97
  }
59
98
  }
60
99
  available_shipping_methods {
61
- amount {
62
- currency
63
- value
64
- }
65
- available
66
- carrier_code
67
- carrier_title
68
- error_message
69
- method_code
70
- method_title
71
- price_excl_tax {
72
- value
73
- currency
74
- }
75
- price_incl_tax {
76
- value
77
- currency
78
- }
100
+ ...AVAILABLE_SHIPPING_METHOD_FRAGMENT
79
101
  }
80
102
  selected_shipping_method {
81
- amount {
82
- value
83
- currency
84
- }
85
- carrier_code
86
- carrier_title
87
- method_code
88
- method_title
89
- price_excl_tax {
90
- value
91
- currency
92
- }
93
- price_incl_tax {
94
- value
95
- currency
96
- }
103
+ ...SELECTED_SHIPPING_METHOD_FRAGMENT
97
104
  }
98
105
  same_as_billing
99
106
  prefix
@@ -101,17 +108,20 @@ const e=`
101
108
  middlename
102
109
  fax
103
110
  }
104
- `,_=`
111
+
112
+ ${e}
113
+ ${_}
114
+ `,t=`
105
115
  fragment AVAILABLE_PAYMENT_METHOD_FRAGMENT on AvailablePaymentMethod {
106
116
  code
107
117
  title
108
118
  }
109
- `,a=`
119
+ `,E=`
110
120
  fragment SELECTED_PAYMENT_METHOD_FRAGMENT on SelectedPaymentMethod {
111
121
  code
112
122
  title
113
123
  }
114
- `,i=`
124
+ `,o=`
115
125
  fragment CHECKOUT_DATA_FRAGMENT on Cart {
116
126
  id
117
127
  is_virtual
@@ -131,15 +141,88 @@ const e=`
131
141
  }
132
142
  }
133
143
 
134
- ${e}
135
- ${t}
136
- ${_}
137
144
  ${a}
138
- `,r=`
145
+ ${A}
146
+ ${t}
147
+ ${E}
148
+ `,T=`
139
149
  fragment CUSTOMER_FRAGMENT on Customer {
140
150
  firstname
141
151
  lastname
142
152
  email
143
153
  }
144
- `;export{_ as AVAILABLE_PAYMENT_METHOD_FRAGMENT,e as BILLING_CART_ADDRESS_FRAGMENT,i as CHECKOUT_DATA_FRAGMENT,r as CUSTOMER_FRAGMENT,a as SELECTED_PAYMENT_METHOD_FRAGMENT,t as SHIPPING_CART_ADDRESS_FRAGMENT};
154
+ `,i=`
155
+ fragment NEGOTIABLE_QUOTE_BILLING_ADDRESS_FRAGMENT on NegotiableQuoteBillingAddress {
156
+ city
157
+ country {
158
+ code
159
+ label
160
+ }
161
+ firstname
162
+ lastname
163
+ company
164
+ postcode
165
+ region {
166
+ region_id
167
+ code
168
+ label
169
+ }
170
+ street
171
+ telephone
172
+ }
173
+ `,n=`
174
+ fragment NEGOTIABLE_QUOTE_SHIPPING_ADDRESS_FRAGMENT on NegotiableQuoteShippingAddress {
175
+ firstname
176
+ lastname
177
+ company
178
+ street
179
+ city
180
+ postcode
181
+ region {
182
+ region_id
183
+ code
184
+ label
185
+ }
186
+ country {
187
+ code
188
+ label
189
+ }
190
+ telephone
191
+ available_shipping_methods {
192
+ ...AVAILABLE_SHIPPING_METHOD_FRAGMENT
193
+ }
194
+ selected_shipping_method {
195
+ ...SELECTED_SHIPPING_METHOD_FRAGMENT
196
+ }
197
+ }
198
+
199
+ ${e}
200
+ ${_}
201
+ `,l=`
202
+ fragment NEGOTIABLE_QUOTE_FRAGMENT on NegotiableQuote {
203
+ available_payment_methods {
204
+ ...AVAILABLE_PAYMENT_METHOD_FRAGMENT
205
+ }
206
+ billing_address {
207
+ ...NEGOTIABLE_QUOTE_BILLING_ADDRESS_FRAGMENT
208
+ }
209
+ email
210
+ is_virtual
211
+ name
212
+ selected_payment_method {
213
+ ...SELECTED_PAYMENT_METHOD_FRAGMENT
214
+ }
215
+ shipping_addresses {
216
+ ...NEGOTIABLE_QUOTE_SHIPPING_ADDRESS_FRAGMENT
217
+ }
218
+ status
219
+ total_quantity
220
+ uid
221
+ }
222
+
223
+ ${i}
224
+ ${n}
225
+ ${t}
226
+ ${E}
227
+ `;export{t as AVAILABLE_PAYMENT_METHOD_FRAGMENT,e as AVAILABLE_SHIPPING_METHOD_FRAGMENT,a as BILLING_CART_ADDRESS_FRAGMENT,o as CHECKOUT_DATA_FRAGMENT,T as CUSTOMER_FRAGMENT,i as NEGOTIABLE_QUOTE_BILLING_ADDRESS_FRAGMENT,l as NEGOTIABLE_QUOTE_FRAGMENT,n as NEGOTIABLE_QUOTE_SHIPPING_ADDRESS_FRAGMENT,E as SELECTED_PAYMENT_METHOD_FRAGMENT,_ as SELECTED_SHIPPING_METHOD_FRAGMENT,A as SHIPPING_CART_ADDRESS_FRAGMENT};
145
228
  //# sourceMappingURL=fragments.js.map
package/fragments.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"fragments.js","sources":["/@dropins/storefront-checkout/src/api/graphql/CartAddressFragment.graphql.ts","/@dropins/storefront-checkout/src/api/graphql/CartPaymentMethodFragment.graphql.ts","/@dropins/storefront-checkout/src/api/graphql/CheckoutDataFragment.graphql.ts","/@dropins/storefront-checkout/src/api/graphql/CustomerFragment.graphql.ts"],"sourcesContent":["/********************************************************************\n * ADOBE CONFIDENTIAL\n * __________________\n *\n * Copyright 2024 Adobe\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe and its suppliers, if any. The intellectual\n * and technical concepts contained herein are proprietary to Adobe\n * and its suppliers and are protected by all applicable intellectual\n * property laws, including trade secret and copyright laws.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe.\n *******************************************************************/\n\nexport const BILLING_CART_ADDRESS_FRAGMENT = /* GraphQL */ `\n fragment BILLING_CART_ADDRESS_FRAGMENT on BillingCartAddress {\n id\n city\n country {\n code\n label\n }\n firstname\n lastname\n company\n postcode\n vat_id\n region {\n region_id\n code\n label\n }\n street\n telephone\n custom_attributes {\n ... on AttributeValue {\n code\n value\n }\n }\n prefix\n suffix\n middlename\n fax\n }\n`;\n\nexport const SHIPPING_CART_ADDRESS_FRAGMENT = /* GraphQL */ `\n fragment SHIPPING_CART_ADDRESS_FRAGMENT on ShippingCartAddress {\n id\n firstname\n lastname\n company\n street\n city\n postcode\n vat_id\n region {\n region_id\n code\n label\n }\n country {\n code\n label\n }\n telephone\n custom_attributes {\n ... on AttributeValue {\n code\n value\n }\n }\n available_shipping_methods {\n amount {\n currency\n value\n }\n available\n carrier_code\n carrier_title\n error_message\n method_code\n method_title\n price_excl_tax {\n value\n currency\n }\n price_incl_tax {\n value\n currency\n }\n }\n selected_shipping_method {\n amount {\n value\n currency\n }\n carrier_code\n carrier_title\n method_code\n method_title\n price_excl_tax {\n value\n currency\n }\n price_incl_tax {\n value\n currency\n }\n }\n same_as_billing\n prefix\n suffix\n middlename\n fax\n }\n`;\n","/********************************************************************\n * ADOBE CONFIDENTIAL\n * __________________\n *\n * Copyright 2025 Adobe\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe and its suppliers, if any. The intellectual\n * and technical concepts contained herein are proprietary to Adobe\n * and its suppliers and are protected by all applicable intellectual\n * property laws, including trade secret and copyright laws.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe.\n *******************************************************************/\n\nexport const AVAILABLE_PAYMENT_METHOD_FRAGMENT = /* GraphQL */ `\n fragment AVAILABLE_PAYMENT_METHOD_FRAGMENT on AvailablePaymentMethod {\n code\n title\n }\n`;\n\nexport const SELECTED_PAYMENT_METHOD_FRAGMENT = /* GraphQL */ `\n fragment SELECTED_PAYMENT_METHOD_FRAGMENT on SelectedPaymentMethod {\n code\n title\n }\n`;\n","/********************************************************************\n * ADOBE CONFIDENTIAL\n * __________________\n *\n * Copyright 2024 Adobe\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe and its suppliers, if any. The intellectual\n * and technical concepts contained herein are proprietary to Adobe\n * and its suppliers and are protected by all applicable intellectual\n * property laws, including trade secret and copyright laws.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe.\n *******************************************************************/\n\nimport {\n BILLING_CART_ADDRESS_FRAGMENT,\n SHIPPING_CART_ADDRESS_FRAGMENT,\n} from './CartAddressFragment.graphql';\nimport {\n AVAILABLE_PAYMENT_METHOD_FRAGMENT,\n SELECTED_PAYMENT_METHOD_FRAGMENT,\n} from './CartPaymentMethodFragment.graphql';\n\nexport const CHECKOUT_DATA_FRAGMENT = /* GraphQL */ `\n fragment CHECKOUT_DATA_FRAGMENT on Cart {\n id\n is_virtual\n email\n total_quantity\n billing_address {\n ...BILLING_CART_ADDRESS_FRAGMENT\n }\n shipping_addresses {\n ...SHIPPING_CART_ADDRESS_FRAGMENT\n }\n available_payment_methods {\n ...AVAILABLE_PAYMENT_METHOD_FRAGMENT\n }\n selected_payment_method {\n ...SELECTED_PAYMENT_METHOD_FRAGMENT\n }\n }\n\n ${BILLING_CART_ADDRESS_FRAGMENT}\n ${SHIPPING_CART_ADDRESS_FRAGMENT}\n ${AVAILABLE_PAYMENT_METHOD_FRAGMENT}\n ${SELECTED_PAYMENT_METHOD_FRAGMENT}\n`;\n","/********************************************************************\n * ADOBE CONFIDENTIAL\n * __________________\n *\n * Copyright 2024 Adobe\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe and its suppliers, if any. The intellectual\n * and technical concepts contained herein are proprietary to Adobe\n * and its suppliers and are protected by all applicable intellectual\n * property laws, including trade secret and copyright laws.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe.\n *******************************************************************/\n\nexport const CUSTOMER_FRAGMENT = /* GraphQL */ `\n fragment CUSTOMER_FRAGMENT on Customer {\n firstname\n lastname\n email\n }\n`;\n"],"names":["BILLING_CART_ADDRESS_FRAGMENT","SHIPPING_CART_ADDRESS_FRAGMENT","AVAILABLE_PAYMENT_METHOD_FRAGMENT","SELECTED_PAYMENT_METHOD_FRAGMENT","CHECKOUT_DATA_FRAGMENT","CUSTOMER_FRAGMENT"],"mappings":"AAiBa,MAAAA,EAA8C;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAiC9CC,EAA+C;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,ECjC/CC,EAAkD;AAAA;AAAA;AAAA;AAAA;AAAA,EAOlDC,EAAiD;AAAA;AAAA;AAAA;AAAA;AAAA,ECEjDC,EAAuC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IAoBhDJ,CAA6B;AAAA,IAC7BC,CAA8B;AAAA,IAC9BC,CAAiC;AAAA,IACjCC,CAAgC;AAAA,EChCvBE,EAAkC;AAAA;AAAA;AAAA;AAAA;AAAA;"}
1
+ {"version":3,"file":"fragments.js","sources":["/@dropins/storefront-checkout/src/api/graphql/ShippingMethodFragment.graphql.ts","/@dropins/storefront-checkout/src/api/graphql/CartAddressFragment.graphql.ts","/@dropins/storefront-checkout/src/api/graphql/PaymentMethodFragment.graphql.ts","/@dropins/storefront-checkout/src/api/graphql/CheckoutDataFragment.graphql.ts","/@dropins/storefront-checkout/src/api/graphql/CustomerFragment.graphql.ts","/@dropins/storefront-checkout/src/api/graphql/NegotiableQuoteAddressFragment.graphql.ts","/@dropins/storefront-checkout/src/api/graphql/NegotiableQuoteFragment.graphql.ts"],"sourcesContent":["/********************************************************************\n * ADOBE CONFIDENTIAL\n * __________________\n *\n * Copyright 2025 Adobe\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe and its suppliers, if any. The intellectual\n * and technical concepts contained herein are proprietary to Adobe\n * and its suppliers and are protected by all applicable intellectual\n * property laws, including trade secret and copyright laws.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe.\n *******************************************************************/\n\nexport const AVAILABLE_SHIPPING_METHOD_FRAGMENT = /* GraphQL */ `\n fragment AVAILABLE_SHIPPING_METHOD_FRAGMENT on AvailableShippingMethod {\n amount {\n currency\n value\n }\n carrier_code\n carrier_title\n error_message\n method_code\n method_title\n price_excl_tax {\n value\n currency\n }\n price_incl_tax {\n value\n currency\n }\n }\n`;\n\nexport const SELECTED_SHIPPING_METHOD_FRAGMENT = /* GraphQL */ `\n fragment SELECTED_SHIPPING_METHOD_FRAGMENT on SelectedShippingMethod {\n amount {\n currency\n value\n }\n carrier_code\n carrier_title\n method_code\n method_title\n price_excl_tax {\n value\n currency\n }\n price_incl_tax {\n value\n currency\n }\n }\n`;\n","/********************************************************************\n * ADOBE CONFIDENTIAL\n * __________________\n *\n * Copyright 2024 Adobe\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe and its suppliers, if any. The intellectual\n * and technical concepts contained herein are proprietary to Adobe\n * and its suppliers and are protected by all applicable intellectual\n * property laws, including trade secret and copyright laws.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe.\n *******************************************************************/\n\nimport {\n AVAILABLE_SHIPPING_METHOD_FRAGMENT,\n SELECTED_SHIPPING_METHOD_FRAGMENT,\n} from './ShippingMethodFragment.graphql';\n\nexport const BILLING_CART_ADDRESS_FRAGMENT = /* GraphQL */ `\n fragment BILLING_CART_ADDRESS_FRAGMENT on BillingCartAddress {\n id\n city\n country {\n code\n label\n }\n firstname\n lastname\n company\n postcode\n vat_id\n region {\n region_id\n code\n label\n }\n street\n telephone\n custom_attributes {\n ... on AttributeValue {\n code\n value\n }\n }\n prefix\n suffix\n middlename\n fax\n }\n`;\n\nexport const SHIPPING_CART_ADDRESS_FRAGMENT = /* GraphQL */ `\n fragment SHIPPING_CART_ADDRESS_FRAGMENT on ShippingCartAddress {\n id\n firstname\n lastname\n company\n street\n city\n postcode\n vat_id\n region {\n region_id\n code\n label\n }\n country {\n code\n label\n }\n telephone\n custom_attributes {\n ... on AttributeValue {\n code\n value\n }\n }\n available_shipping_methods {\n ...AVAILABLE_SHIPPING_METHOD_FRAGMENT\n }\n selected_shipping_method {\n ...SELECTED_SHIPPING_METHOD_FRAGMENT\n }\n same_as_billing\n prefix\n suffix\n middlename\n fax\n }\n\n ${AVAILABLE_SHIPPING_METHOD_FRAGMENT}\n ${SELECTED_SHIPPING_METHOD_FRAGMENT}\n`;\n","/********************************************************************\n * ADOBE CONFIDENTIAL\n * __________________\n *\n * Copyright 2025 Adobe\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe and its suppliers, if any. The intellectual\n * and technical concepts contained herein are proprietary to Adobe\n * and its suppliers and are protected by all applicable intellectual\n * property laws, including trade secret and copyright laws.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe.\n *******************************************************************/\n\nexport const AVAILABLE_PAYMENT_METHOD_FRAGMENT = /* GraphQL */ `\n fragment AVAILABLE_PAYMENT_METHOD_FRAGMENT on AvailablePaymentMethod {\n code\n title\n }\n`;\n\nexport const SELECTED_PAYMENT_METHOD_FRAGMENT = /* GraphQL */ `\n fragment SELECTED_PAYMENT_METHOD_FRAGMENT on SelectedPaymentMethod {\n code\n title\n }\n`;\n","/********************************************************************\n * ADOBE CONFIDENTIAL\n * __________________\n *\n * Copyright 2024 Adobe\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe and its suppliers, if any. The intellectual\n * and technical concepts contained herein are proprietary to Adobe\n * and its suppliers and are protected by all applicable intellectual\n * property laws, including trade secret and copyright laws.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe.\n *******************************************************************/\n\nimport {\n BILLING_CART_ADDRESS_FRAGMENT,\n SHIPPING_CART_ADDRESS_FRAGMENT,\n} from './CartAddressFragment.graphql';\nimport {\n AVAILABLE_PAYMENT_METHOD_FRAGMENT,\n SELECTED_PAYMENT_METHOD_FRAGMENT,\n} from './PaymentMethodFragment.graphql';\n\nexport const CHECKOUT_DATA_FRAGMENT = /* GraphQL */ `\n fragment CHECKOUT_DATA_FRAGMENT on Cart {\n id\n is_virtual\n email\n total_quantity\n billing_address {\n ...BILLING_CART_ADDRESS_FRAGMENT\n }\n shipping_addresses {\n ...SHIPPING_CART_ADDRESS_FRAGMENT\n }\n available_payment_methods {\n ...AVAILABLE_PAYMENT_METHOD_FRAGMENT\n }\n selected_payment_method {\n ...SELECTED_PAYMENT_METHOD_FRAGMENT\n }\n }\n\n ${BILLING_CART_ADDRESS_FRAGMENT}\n ${SHIPPING_CART_ADDRESS_FRAGMENT}\n ${AVAILABLE_PAYMENT_METHOD_FRAGMENT}\n ${SELECTED_PAYMENT_METHOD_FRAGMENT}\n`;\n","/********************************************************************\n * ADOBE CONFIDENTIAL\n * __________________\n *\n * Copyright 2024 Adobe\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe and its suppliers, if any. The intellectual\n * and technical concepts contained herein are proprietary to Adobe\n * and its suppliers and are protected by all applicable intellectual\n * property laws, including trade secret and copyright laws.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe.\n *******************************************************************/\n\nexport const CUSTOMER_FRAGMENT = /* GraphQL */ `\n fragment CUSTOMER_FRAGMENT on Customer {\n firstname\n lastname\n email\n }\n`;\n","/********************************************************************\n * ADOBE CONFIDENTIAL\n * __________________\n *\n * Copyright 2025 Adobe\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe and its suppliers, if any. The intellectual\n * and technical concepts contained herein are proprietary to Adobe\n * and its suppliers and are protected by all applicable intellectual\n * property laws, including trade secret and copyright laws.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe.\n *******************************************************************/\n\nimport {\n AVAILABLE_SHIPPING_METHOD_FRAGMENT,\n SELECTED_SHIPPING_METHOD_FRAGMENT,\n} from './ShippingMethodFragment.graphql';\n\nexport const NEGOTIABLE_QUOTE_BILLING_ADDRESS_FRAGMENT = /* GraphQL */ `\n fragment NEGOTIABLE_QUOTE_BILLING_ADDRESS_FRAGMENT on NegotiableQuoteBillingAddress {\n city\n country {\n code\n label\n }\n firstname\n lastname\n company\n postcode\n region {\n region_id\n code\n label\n }\n street\n telephone\n }\n`;\n\nexport const NEGOTIABLE_QUOTE_SHIPPING_ADDRESS_FRAGMENT = /* GraphQL */ `\n fragment NEGOTIABLE_QUOTE_SHIPPING_ADDRESS_FRAGMENT on NegotiableQuoteShippingAddress {\n firstname\n lastname\n company\n street\n city\n postcode\n region {\n region_id\n code\n label\n }\n country {\n code\n label\n }\n telephone\n available_shipping_methods {\n ...AVAILABLE_SHIPPING_METHOD_FRAGMENT\n }\n selected_shipping_method {\n ...SELECTED_SHIPPING_METHOD_FRAGMENT\n }\n }\n\n ${AVAILABLE_SHIPPING_METHOD_FRAGMENT}\n ${SELECTED_SHIPPING_METHOD_FRAGMENT}\n`;\n","/********************************************************************\n * ADOBE CONFIDENTIAL\n * __________________\n *\n * Copyright 2025 Adobe\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe and its suppliers, if any. The intellectual\n * and technical concepts contained herein are proprietary to Adobe\n * and its suppliers and are protected by all applicable intellectual\n * property laws, including trade secret and copyright laws.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe.\n *******************************************************************/\n\nimport {\n NEGOTIABLE_QUOTE_BILLING_ADDRESS_FRAGMENT,\n NEGOTIABLE_QUOTE_SHIPPING_ADDRESS_FRAGMENT,\n} from './NegotiableQuoteAddressFragment.graphql';\n\nimport {\n AVAILABLE_PAYMENT_METHOD_FRAGMENT,\n SELECTED_PAYMENT_METHOD_FRAGMENT,\n} from './PaymentMethodFragment.graphql';\n\nexport const NEGOTIABLE_QUOTE_FRAGMENT = /* GraphQL */ `\n fragment NEGOTIABLE_QUOTE_FRAGMENT on NegotiableQuote {\n available_payment_methods {\n ...AVAILABLE_PAYMENT_METHOD_FRAGMENT\n }\n billing_address {\n ...NEGOTIABLE_QUOTE_BILLING_ADDRESS_FRAGMENT\n }\n email\n is_virtual\n name\n selected_payment_method {\n ...SELECTED_PAYMENT_METHOD_FRAGMENT\n }\n shipping_addresses {\n ...NEGOTIABLE_QUOTE_SHIPPING_ADDRESS_FRAGMENT\n }\n status\n total_quantity\n uid\n }\n\n ${NEGOTIABLE_QUOTE_BILLING_ADDRESS_FRAGMENT}\n ${NEGOTIABLE_QUOTE_SHIPPING_ADDRESS_FRAGMENT}\n ${AVAILABLE_PAYMENT_METHOD_FRAGMENT}\n ${SELECTED_PAYMENT_METHOD_FRAGMENT}\n`;\n"],"names":["AVAILABLE_SHIPPING_METHOD_FRAGMENT","SELECTED_SHIPPING_METHOD_FRAGMENT","BILLING_CART_ADDRESS_FRAGMENT","SHIPPING_CART_ADDRESS_FRAGMENT","AVAILABLE_PAYMENT_METHOD_FRAGMENT","SELECTED_PAYMENT_METHOD_FRAGMENT","CHECKOUT_DATA_FRAGMENT","CUSTOMER_FRAGMENT","NEGOTIABLE_QUOTE_BILLING_ADDRESS_FRAGMENT","NEGOTIABLE_QUOTE_SHIPPING_ADDRESS_FRAGMENT","NEGOTIABLE_QUOTE_FRAGMENT"],"mappings":"AAiBa,MAAAA,EAAmD;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAsBnDC,EAAkD;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,ECjBlDC,EAA8C;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAiC9CC,EAA+C;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IAuCxDH,CAAkC;AAAA,IAClCC,CAAiC;AAAA,EC9ExBG,EAAkD;AAAA;AAAA;AAAA;AAAA;AAAA,EAOlDC,EAAiD;AAAA;AAAA;AAAA;AAAA;AAAA,ECEjDC,EAAuC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IAoBhDJ,CAA6B;AAAA,IAC7BC,CAA8B;AAAA,IAC9BC,CAAiC;AAAA,IACjCC,CAAgC;AAAA,EChCvBE,EAAkC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,ECKlCC,EAA0D;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAqB1DC,EAA2D;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IA0BpET,CAAkC;AAAA,IAClCC,CAAiC;AAAA,EC3CxBS,EAA0C;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IAsBnDF,CAAyC;AAAA,IACzCC,CAA0C;AAAA,IAC1CL,CAAiC;AAAA,IACjCC,CAAgC;"}
@@ -2,6 +2,7 @@ import { ReadonlySignal } from '@dropins/tools/types/elsie/src/lib/signals';
2
2
 
3
3
  export declare enum QueueName {
4
4
  CartUpdate = "cartUpdate",
5
+ QuoteUpdates = "quoteUpdates",
5
6
  Default = "default",
6
7
  ShippingEstimate = "shippingEstimate"
7
8
  }
@@ -0,0 +1,36 @@
1
+ /********************************************************************
2
+ * ADOBE CONFIDENTIAL
3
+ * __________________
4
+ *
5
+ * Copyright 2025 Adobe
6
+ * All Rights Reserved.
7
+ *
8
+ * NOTICE: All information contained herein is, and remains
9
+ * the property of Adobe and its suppliers, if any. The intellectual
10
+ * and technical concepts contained herein are proprietary to Adobe
11
+ * and its suppliers and are protected by all applicable intellectual
12
+ * property laws, including trade secret and copyright laws.
13
+ * Dissemination of this information or reproduction of this material
14
+ * is strictly forbidden unless prior written permission is obtained
15
+ * from Adobe.
16
+ *******************************************************************/
17
+ export type ErrorCode = string;
18
+ export declare enum ErrorCodes {
19
+ INVALID_INPUT = "INVALID_INPUT",
20
+ SERVER_ERROR = "SERVER_ERROR",
21
+ UNAUTHENTICATED = "UNAUTHENTICATED",
22
+ UNKNOWN_ERROR = "UNKNOWN_ERROR"
23
+ }
24
+ export interface ErrorClassifier {
25
+ /**
26
+ * The specific code to return if this classifier matches.
27
+ */
28
+ code: ErrorCode;
29
+ /**
30
+ * A function that returns `true` if it recognizes the error.
31
+ * It must safely handle `unknown` inputs.
32
+ */
33
+ matches: (error: unknown) => boolean;
34
+ }
35
+ export declare const classifiers: ErrorClassifier[];
36
+ //# sourceMappingURL=classifiers.d.ts.map
@@ -0,0 +1,39 @@
1
+ import { FetchQueryError } from '../../api/fetch-graphql';
2
+
3
+ export declare class FetchError extends Error {
4
+ constructor(reasons: FetchQueryError);
5
+ }
6
+ export declare class InvalidInput extends Error {
7
+ constructor(message: string);
8
+ }
9
+ export declare class MissingArgument extends InvalidInput {
10
+ constructor(argumentName: string);
11
+ }
12
+ export declare class MissingCart extends MissingArgument {
13
+ constructor();
14
+ }
15
+ export declare class Unauthenticated extends Error {
16
+ constructor();
17
+ }
18
+ export declare class MissingNegotiableQuoteId extends MissingArgument {
19
+ constructor();
20
+ }
21
+ export declare class MissingEmail extends MissingArgument {
22
+ constructor();
23
+ }
24
+ export declare class MissingPaymentMethod extends MissingArgument {
25
+ constructor();
26
+ }
27
+ export declare class MissingShippingAddress extends MissingArgument {
28
+ constructor();
29
+ }
30
+ export declare class MissingShippingMethod extends MissingArgument {
31
+ constructor();
32
+ }
33
+ export declare class MissingBillingAddress extends MissingArgument {
34
+ constructor();
35
+ }
36
+ export declare class MissingCountry extends MissingArgument {
37
+ constructor();
38
+ }
39
+ //# sourceMappingURL=customErrors.d.ts.map
@@ -0,0 +1,20 @@
1
+ /********************************************************************
2
+ * ADOBE CONFIDENTIAL
3
+ * __________________
4
+ *
5
+ * Copyright 2025 Adobe
6
+ * All Rights Reserved.
7
+ *
8
+ * NOTICE: All information contained herein is, and remains
9
+ * the property of Adobe and its suppliers, if any. The intellectual
10
+ * and technical concepts contained herein are proprietary to Adobe
11
+ * and its suppliers and are protected by all applicable intellectual
12
+ * property laws, including trade secret and copyright laws.
13
+ * Dissemination of this information or reproduction of this material
14
+ * is strictly forbidden unless prior written permission is obtained
15
+ * from Adobe.
16
+ *******************************************************************/
17
+ export * from './classifiers';
18
+ export * from './customErrors';
19
+ export * from './mapErrorToCode';
20
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1,4 @@
1
+ import { ErrorCode } from './classifiers';
2
+
3
+ export declare function mapErrorToCode(error: unknown): ErrorCode;
4
+ //# sourceMappingURL=mapErrorToCode.d.ts.map
package/lib/index.d.ts CHANGED
@@ -17,8 +17,8 @@
17
17
  export * from './dispatchApiCall';
18
18
  export * from './dom';
19
19
  export * from './enqueueRequest';
20
+ export * from './errors/mapErrorToCode';
20
21
  export * from './events';
21
- export * from './network-error';
22
22
  export * from './preact';
23
23
  export * from './state';
24
24
  export * from './validation';
package/lib/state.d.ts CHANGED
@@ -3,6 +3,7 @@ import { StoreConfig } from '../data/models';
3
3
  type State = {
4
4
  authenticated: boolean;
5
5
  cartId: string | null;
6
+ quoteId?: string | null;
6
7
  initialized: boolean;
7
8
  config: StoreConfig | null;
8
9
  };
package/package.json CHANGED
@@ -1 +1 @@
1
- {"name": "@dropins/storefront-checkout", "version": "2.0.1", "@dropins/tools": "^1.4.0", "license": "SEE LICENSE IN LICENSE.md"}
1
+ {"name": "@dropins/storefront-checkout", "version": "2.1.0-beta2", "@dropins/tools": "^1.4.0", "license": "SEE LICENSE IN LICENSE.md"}
package/render.js CHANGED
@@ -6,5 +6,5 @@ All Rights Reserved. */
6
6
  .checkout-place-order{display:grid;padding-bottom:var(--spacing-big)}.checkout-place-order__button{align-self:flex-end;justify-self:flex-end}@media only screen and (min-width: 320px) and (max-width: 768px){.checkout-place-order{background-color:var(--color-neutral-200);padding:var(--spacing-medium) var(--spacing-medium) var(--spacing-big) var(--spacing-medium)}.checkout-place-order__button{align-self:center;justify-self:stretch}}
7
7
  .checkout-payment-methods__title,.checkout-payment-methods__title h2{color:var(--color-neutral-800);font:var(--type-headline-2-default-font);letter-spacing:var(--type-headline-2-default-letter-spacing);margin:0 0 var(--spacing-medium) 0}.checkout-payment-methods__wrapper{position:relative;display:grid}.checkout-payment-methods__wrapper--busy{opacity:.4;pointer-events:none}.checkout-payment-methods__methods{display:grid;grid-template-columns:1fr 1fr;gap:var(--spacing-medium)}.checkout-payment-methods__content{font:var(--type-body-2-default-font);letter-spacing:var(--type-body-2-default-letter-spacing);margin-top:var(--spacing-xbig)}.checkout-payment-methods__content>div[data-slot=PaymentMethodSlot]:not(:empty){margin-top:var(--spacing-medium)}.checkout-payment-methods--full-width{grid-template-columns:1fr}.checkout-payment-methods__spinner{margin:0 auto;position:absolute;z-index:999;left:0;right:0;top:calc(50% - (var(--size) / 2));bottom:0}.checkout__content [data-slot=PaymentMethods]:empty{display:none}.checkout-payment-methods__error{margin-top:var(--spacing-medium)}@media only screen and (min-width: 320px) and (max-width: 768px){.checkout-payment-methods__methods{grid-template-columns:1fr}}
8
8
  .checkout-bill-to-shipping-address label{font:var(--type-body-2-default-font);letter-spacing:var(--type-body-2-default-letter-spacing);gap:0}.checkout-bill-to-shipping-address__error{margin-top:var(--spacing-medium)}`,{styleId:"checkout"});
9
- import{jsx as f}from"@dropins/tools/preact-jsx-runtime.js";import{Render as d}from"@dropins/tools/lib.js";import"./chunks/errors.js";import{events as y}from"@dropins/tools/event-bus.js";import{c as g}from"./chunks/synchronizeCheckout.js";import{UIProvider as p}from"@dropins/tools/components.js";import{useState as b,useEffect as h}from"@dropins/tools/preact-hooks.js";import"@dropins/tools/signals.js";import"@dropins/tools/fetch-graphql.js";import"./fragments.js";function O(e){return e&&e.__esModule&&Object.prototype.hasOwnProperty.call(e,"default")?e.default:e}var S=function(r){return w(r)&&!E(r)};function w(e){return!!e&&typeof e=="object"}function E(e){var r=Object.prototype.toString.call(e);return r==="[object RegExp]"||r==="[object Date]"||j(e)}var v=typeof Symbol=="function"&&Symbol.for,P=v?Symbol.for("react.element"):60103;function j(e){return e.$$typeof===P}function M(e){return Array.isArray(e)?[]:{}}function i(e,r){return r.clone!==!1&&r.isMergeableObject(e)?o(M(e),e,r):e}function A(e,r,t){return e.concat(r).map(function(a){return i(a,t)})}function T(e,r){if(!r.customMerge)return o;var t=r.customMerge(e);return typeof t=="function"?t:o}function I(e){return Object.getOwnPropertySymbols?Object.getOwnPropertySymbols(e).filter(function(r){return Object.propertyIsEnumerable.call(e,r)}):[]}function u(e){return Object.keys(e).concat(I(e))}function m(e,r){try{return r in e}catch{return!1}}function C(e,r){return m(e,r)&&!(Object.hasOwnProperty.call(e,r)&&Object.propertyIsEnumerable.call(e,r))}function x(e,r,t){var a={};return t.isMergeableObject(e)&&u(e).forEach(function(n){a[n]=i(e[n],t)}),u(r).forEach(function(n){C(e,n)||(m(e,n)&&t.isMergeableObject(r[n])?a[n]=T(n,t)(e[n],r[n],t):a[n]=i(r[n],t))}),a}function o(e,r,t){t=t||{},t.arrayMerge=t.arrayMerge||A,t.isMergeableObject=t.isMergeableObject||S,t.cloneUnlessOtherwiseSpecified=i;var a=Array.isArray(r),n=Array.isArray(e),s=a===n;return s?a?t.arrayMerge(e,r,t):x(e,r,t):i(r,t)}o.all=function(r,t){if(!Array.isArray(r))throw new Error("first argument should be an array");return r.reduce(function(a,n){return o(a,n,t)},{})};var D=o,_=D;const L=O(_),R={BillToShippingAddress:{cartSyncError:"We were unable to save your changes. Please try again later.",title:"Bill to shipping address"},EmptyCart:{button:"Start shopping",title:"Your cart is empty"},EstimateShipping:{estimated:"Estimated Shipping",freeShipping:"Free",label:"Shipping",taxToBeDetermined:"TBD",withoutTaxes:"Excluding taxes",withTaxes:"Including taxes"},LoginForm:{account:"Already have an account?",ariaLabel:"Email",emailExists:{alreadyHaveAccount:"It looks like you already have an account.",forFasterCheckout:"for a faster checkout.",signInButton:"Sign in"},floatingLabel:"Email *",invalidEmailError:"Please enter a valid email address.",missingEmailError:"Enter an email address.",cartSyncError:"We were unable to save your changes. Please try again later.",placeholder:"Enter your email address",signIn:"Sign In",signOut:"Sign Out",switch:"Do you want to switch account?",title:"Contact details"},MergedCartBanner:{items:{many:"{{count}} items from a previous session were added to your cart. Please review your new subtotal.",one:"1 item from a previous session was added to your cart. Please review your new subtotal."}},OutOfStock:{actions:{removeOutOfStock:"Remove out of stock items",reviewCart:"Review cart"},alert:"Out of stock!",lowInventory:{many:"Only {{count}} left!",one:"Last item!"},message:"The following items are out of stock:",title:"Your cart contains items that are out of stock"},PaymentMethods:{cartSyncError:"We were unable to save your changes. Please try again later.",emptyState:"No payment methods available",title:"Payment"},PlaceOrder:{button:"Place Order"},ServerError:{button:"Try again",contactSupport:"If you continue to have issues, please contact support.",title:"We were unable to process your order",unexpected:"An unexpected error occurred while processing your order. Please try again later."},ShippingMethods:{cartSyncError:"We were unable to save your changes. Please try again later.",emptyState:"This order can't be shipped to the address provided. Please review the address details you entered and make sure they're correct.",title:"Shipping options"},Summary:{Edit:"Edit"},TermsAndConditions:{error:"Please accept the Terms and Conditions to continue.",label:"I have read, understand, and accept our <a href='https://www.adobe.com/legal/terms.html' target='_blank'>Terms of Use, Terms of Sales, Privacy Policy, and Return Policy</a>."},title:"Checkout"},U={Checkout:R},B={default:U},k=({children:e})=>{var s;const[r,t]=b(),a=(s=g.getConfig())==null?void 0:s.langDefinitions;h(()=>{const c=y.on("locale",l=>{l!==r&&t(l)},{eager:!0});return()=>{c==null||c.off()}},[r]);const n=L(B,a??{});return f(p,{lang:r,langDefinitions:n,children:e})},G=new d(f(k,{}));export{k as Provider,G as render};
9
+ import{jsx as f}from"@dropins/tools/preact-jsx-runtime.js";import{Render as d}from"@dropins/tools/lib.js";import"./chunks/fetch-graphql.js";import{events as y}from"@dropins/tools/event-bus.js";import{c as g}from"./chunks/synchronizeCheckout.js";import{UIProvider as p}from"@dropins/tools/components.js";import{useState as b,useEffect as h}from"@dropins/tools/preact-hooks.js";import"@dropins/tools/signals.js";import"@dropins/tools/fetch-graphql.js";import"./fragments.js";function O(e){return e&&e.__esModule&&Object.prototype.hasOwnProperty.call(e,"default")?e.default:e}var S=function(r){return w(r)&&!E(r)};function w(e){return!!e&&typeof e=="object"}function E(e){var r=Object.prototype.toString.call(e);return r==="[object RegExp]"||r==="[object Date]"||j(e)}var v=typeof Symbol=="function"&&Symbol.for,P=v?Symbol.for("react.element"):60103;function j(e){return e.$$typeof===P}function M(e){return Array.isArray(e)?[]:{}}function i(e,r){return r.clone!==!1&&r.isMergeableObject(e)?o(M(e),e,r):e}function A(e,r,t){return e.concat(r).map(function(a){return i(a,t)})}function T(e,r){if(!r.customMerge)return o;var t=r.customMerge(e);return typeof t=="function"?t:o}function I(e){return Object.getOwnPropertySymbols?Object.getOwnPropertySymbols(e).filter(function(r){return Object.propertyIsEnumerable.call(e,r)}):[]}function u(e){return Object.keys(e).concat(I(e))}function m(e,r){try{return r in e}catch{return!1}}function C(e,r){return m(e,r)&&!(Object.hasOwnProperty.call(e,r)&&Object.propertyIsEnumerable.call(e,r))}function x(e,r,t){var a={};return t.isMergeableObject(e)&&u(e).forEach(function(n){a[n]=i(e[n],t)}),u(r).forEach(function(n){C(e,n)||(m(e,n)&&t.isMergeableObject(r[n])?a[n]=T(n,t)(e[n],r[n],t):a[n]=i(r[n],t))}),a}function o(e,r,t){t=t||{},t.arrayMerge=t.arrayMerge||A,t.isMergeableObject=t.isMergeableObject||S,t.cloneUnlessOtherwiseSpecified=i;var a=Array.isArray(r),n=Array.isArray(e),s=a===n;return s?a?t.arrayMerge(e,r,t):x(e,r,t):i(r,t)}o.all=function(r,t){if(!Array.isArray(r))throw new Error("first argument should be an array");return r.reduce(function(a,n){return o(a,n,t)},{})};var D=o,_=D;const L=O(_),R={BillToShippingAddress:{cartSyncError:"We were unable to save your changes. Please try again later.",title:"Bill to shipping address"},EmptyCart:{button:"Start shopping",title:"Your cart is empty"},EstimateShipping:{estimated:"Estimated Shipping",freeShipping:"Free",label:"Shipping",taxToBeDetermined:"TBD",withoutTaxes:"Excluding taxes",withTaxes:"Including taxes"},LoginForm:{account:"Already have an account?",ariaLabel:"Email",emailExists:{alreadyHaveAccount:"It looks like you already have an account.",forFasterCheckout:"for a faster checkout.",signInButton:"Sign in"},floatingLabel:"Email *",invalidEmailError:"Please enter a valid email address.",missingEmailError:"Enter an email address.",cartSyncError:"We were unable to save your changes. Please try again later.",placeholder:"Enter your email address",signIn:"Sign In",signOut:"Sign Out",switch:"Do you want to switch account?",title:"Contact details"},MergedCartBanner:{items:{many:"{{count}} items from a previous session were added to your cart. Please review your new subtotal.",one:"1 item from a previous session was added to your cart. Please review your new subtotal."}},OutOfStock:{actions:{removeOutOfStock:"Remove out of stock items",reviewCart:"Review cart"},alert:"Out of stock!",lowInventory:{many:"Only {{count}} left!",one:"Last item!"},message:"The following items are out of stock:",title:"Your cart contains items that are out of stock"},PaymentMethods:{cartSyncError:"We were unable to save your changes. Please try again later.",emptyState:"No payment methods available",title:"Payment"},PlaceOrder:{button:"Place Order"},ServerError:{button:"Try again",contactSupport:"If you continue to have issues, please contact support.",title:"We were unable to process your order",unexpected:"An unexpected error occurred while processing your order. Please try again later."},ShippingMethods:{cartSyncError:"We were unable to save your changes. Please try again later.",emptyState:"This order can't be shipped to the address provided. Please review the address details you entered and make sure they're correct.",title:"Shipping options"},Summary:{Edit:"Edit"},TermsAndConditions:{error:"Please accept the Terms and Conditions to continue.",label:"I have read, understand, and accept our <a href='https://www.adobe.com/legal/terms.html' target='_blank'>Terms of Use, Terms of Sales, Privacy Policy, and Return Policy</a>."},title:"Checkout"},U={Checkout:R},B={default:U},k=({children:e})=>{var s;const[r,t]=b(),a=(s=g.getConfig())==null?void 0:s.langDefinitions;h(()=>{const c=y.on("locale",l=>{l!==r&&t(l)},{eager:!0});return()=>{c==null||c.off()}},[r]);const n=L(B,a??{});return f(p,{lang:r,langDefinitions:n,children:e})},G=new d(f(k,{}));export{k as Provider,G as render};
10
10
  //# sourceMappingURL=render.js.map
package/render.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"render.js","sources":["../node_modules/deepmerge/dist/cjs.js","/@dropins/storefront-checkout/src/render/Provider.tsx","/@dropins/storefront-checkout/src/render/render.tsx"],"sourcesContent":["'use strict';\n\nvar isMergeableObject = function isMergeableObject(value) {\n\treturn isNonNullObject(value)\n\t\t&& !isSpecial(value)\n};\n\nfunction isNonNullObject(value) {\n\treturn !!value && typeof value === 'object'\n}\n\nfunction isSpecial(value) {\n\tvar stringValue = Object.prototype.toString.call(value);\n\n\treturn stringValue === '[object RegExp]'\n\t\t|| stringValue === '[object Date]'\n\t\t|| isReactElement(value)\n}\n\n// see https://github.com/facebook/react/blob/b5ac963fb791d1298e7f396236383bc955f916c1/src/isomorphic/classic/element/ReactElement.js#L21-L25\nvar canUseSymbol = typeof Symbol === 'function' && Symbol.for;\nvar REACT_ELEMENT_TYPE = canUseSymbol ? Symbol.for('react.element') : 0xeac7;\n\nfunction isReactElement(value) {\n\treturn value.$$typeof === REACT_ELEMENT_TYPE\n}\n\nfunction emptyTarget(val) {\n\treturn Array.isArray(val) ? [] : {}\n}\n\nfunction cloneUnlessOtherwiseSpecified(value, options) {\n\treturn (options.clone !== false && options.isMergeableObject(value))\n\t\t? deepmerge(emptyTarget(value), value, options)\n\t\t: value\n}\n\nfunction defaultArrayMerge(target, source, options) {\n\treturn target.concat(source).map(function(element) {\n\t\treturn cloneUnlessOtherwiseSpecified(element, options)\n\t})\n}\n\nfunction getMergeFunction(key, options) {\n\tif (!options.customMerge) {\n\t\treturn deepmerge\n\t}\n\tvar customMerge = options.customMerge(key);\n\treturn typeof customMerge === 'function' ? customMerge : deepmerge\n}\n\nfunction getEnumerableOwnPropertySymbols(target) {\n\treturn Object.getOwnPropertySymbols\n\t\t? Object.getOwnPropertySymbols(target).filter(function(symbol) {\n\t\t\treturn Object.propertyIsEnumerable.call(target, symbol)\n\t\t})\n\t\t: []\n}\n\nfunction getKeys(target) {\n\treturn Object.keys(target).concat(getEnumerableOwnPropertySymbols(target))\n}\n\nfunction propertyIsOnObject(object, property) {\n\ttry {\n\t\treturn property in object\n\t} catch(_) {\n\t\treturn false\n\t}\n}\n\n// Protects from prototype poisoning and unexpected merging up the prototype chain.\nfunction propertyIsUnsafe(target, key) {\n\treturn propertyIsOnObject(target, key) // Properties are safe to merge if they don't exist in the target yet,\n\t\t&& !(Object.hasOwnProperty.call(target, key) // unsafe if they exist up the prototype chain,\n\t\t\t&& Object.propertyIsEnumerable.call(target, key)) // and also unsafe if they're nonenumerable.\n}\n\nfunction mergeObject(target, source, options) {\n\tvar destination = {};\n\tif (options.isMergeableObject(target)) {\n\t\tgetKeys(target).forEach(function(key) {\n\t\t\tdestination[key] = cloneUnlessOtherwiseSpecified(target[key], options);\n\t\t});\n\t}\n\tgetKeys(source).forEach(function(key) {\n\t\tif (propertyIsUnsafe(target, key)) {\n\t\t\treturn\n\t\t}\n\n\t\tif (propertyIsOnObject(target, key) && options.isMergeableObject(source[key])) {\n\t\t\tdestination[key] = getMergeFunction(key, options)(target[key], source[key], options);\n\t\t} else {\n\t\t\tdestination[key] = cloneUnlessOtherwiseSpecified(source[key], options);\n\t\t}\n\t});\n\treturn destination\n}\n\nfunction deepmerge(target, source, options) {\n\toptions = options || {};\n\toptions.arrayMerge = options.arrayMerge || defaultArrayMerge;\n\toptions.isMergeableObject = options.isMergeableObject || isMergeableObject;\n\t// cloneUnlessOtherwiseSpecified is added to `options` so that custom arrayMerge()\n\t// implementations can use it. The caller may not replace it.\n\toptions.cloneUnlessOtherwiseSpecified = cloneUnlessOtherwiseSpecified;\n\n\tvar sourceIsArray = Array.isArray(source);\n\tvar targetIsArray = Array.isArray(target);\n\tvar sourceAndTargetTypesMatch = sourceIsArray === targetIsArray;\n\n\tif (!sourceAndTargetTypesMatch) {\n\t\treturn cloneUnlessOtherwiseSpecified(source, options)\n\t} else if (sourceIsArray) {\n\t\treturn options.arrayMerge(target, source, options)\n\t} else {\n\t\treturn mergeObject(target, source, options)\n\t}\n}\n\ndeepmerge.all = function deepmergeAll(array, options) {\n\tif (!Array.isArray(array)) {\n\t\tthrow new Error('first argument should be an array')\n\t}\n\n\treturn array.reduce(function(prev, next) {\n\t\treturn deepmerge(prev, next, options)\n\t}, {})\n};\n\nvar deepmerge_1 = deepmerge;\n\nmodule.exports = deepmerge_1;\n","/********************************************************************\n * ADOBE CONFIDENTIAL\n * __________________\n *\n * Copyright 2024 Adobe\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe and its suppliers, if any. The intellectual\n * and technical concepts contained herein are proprietary to Adobe\n * and its suppliers and are protected by all applicable intellectual\n * property laws, including trade secret and copyright laws.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe.\n *******************************************************************/\n\nimport { config } from '@/checkout/api';\nimport { UIProvider } from '@adobe-commerce/elsie/components';\nimport { Lang } from '@adobe-commerce/elsie/i18n';\nimport { deepmerge } from '@adobe-commerce/elsie/lib/deepmerge';\nimport { events } from '@adobe-commerce/event-bus';\nimport { FunctionComponent } from 'preact';\nimport { useEffect, useState } from 'preact/hooks';\n\nimport en_US from '../i18n/en_US.json';\n\n// Langs\nconst langDefinitions = {\n default: en_US,\n};\n\ninterface IntlProviderProps {\n children?: any;\n}\n\nexport const Provider: FunctionComponent<IntlProviderProps> = ({\n children,\n}) => {\n const [locale, setLang] = useState<Lang>();\n\n const userLangDefinitions = config.getConfig()?.langDefinitions;\n\n useEffect(() => {\n const localeEvent = events.on(\n 'locale',\n (payload) => {\n if (payload !== locale) setLang(payload as Lang);\n },\n { eager: true }\n );\n return () => {\n localeEvent?.off();\n };\n }, [locale]);\n\n // Merge language definitions with user language definitions\n const definitions = deepmerge(langDefinitions, userLangDefinitions ?? {});\n\n return (\n <UIProvider lang={locale} langDefinitions={definitions}>\n {children}\n </UIProvider>\n );\n};\n","/********************************************************************\n * ADOBE CONFIDENTIAL\n * __________________\n *\n * Copyright 2024 Adobe\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe and its suppliers, if any. The intellectual\n * and technical concepts contained herein are proprietary to Adobe\n * and its suppliers and are protected by all applicable intellectual\n * property laws, including trade secret and copyright laws.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe.\n *******************************************************************/\n\nimport { Render } from '@adobe-commerce/elsie/lib';\nimport { Provider } from './Provider';\nexport { Provider };\nexport const render = new Render(<Provider />);\n"],"names":["isMergeableObject","value","isNonNullObject","isSpecial","stringValue","isReactElement","canUseSymbol","REACT_ELEMENT_TYPE","emptyTarget","val","cloneUnlessOtherwiseSpecified","options","deepmerge","defaultArrayMerge","target","source","element","getMergeFunction","key","customMerge","getEnumerableOwnPropertySymbols","symbol","getKeys","propertyIsOnObject","object","property","propertyIsUnsafe","mergeObject","destination","sourceIsArray","targetIsArray","sourceAndTargetTypesMatch","array","prev","next","deepmerge_1","cjs","langDefinitions","en_US","Provider","children","locale","setLang","useState","userLangDefinitions","_a","config","useEffect","localeEvent","events","payload","definitions","UIProvider","render","Render","jsx"],"mappings":"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","x_google_ignoreList":[0]}
1
+ {"version":3,"file":"render.js","sources":["../node_modules/deepmerge/dist/cjs.js","/@dropins/storefront-checkout/src/render/Provider.tsx","/@dropins/storefront-checkout/src/render/render.tsx"],"sourcesContent":["'use strict';\n\nvar isMergeableObject = function isMergeableObject(value) {\n\treturn isNonNullObject(value)\n\t\t&& !isSpecial(value)\n};\n\nfunction isNonNullObject(value) {\n\treturn !!value && typeof value === 'object'\n}\n\nfunction isSpecial(value) {\n\tvar stringValue = Object.prototype.toString.call(value);\n\n\treturn stringValue === '[object RegExp]'\n\t\t|| stringValue === '[object Date]'\n\t\t|| isReactElement(value)\n}\n\n// see https://github.com/facebook/react/blob/b5ac963fb791d1298e7f396236383bc955f916c1/src/isomorphic/classic/element/ReactElement.js#L21-L25\nvar canUseSymbol = typeof Symbol === 'function' && Symbol.for;\nvar REACT_ELEMENT_TYPE = canUseSymbol ? Symbol.for('react.element') : 0xeac7;\n\nfunction isReactElement(value) {\n\treturn value.$$typeof === REACT_ELEMENT_TYPE\n}\n\nfunction emptyTarget(val) {\n\treturn Array.isArray(val) ? [] : {}\n}\n\nfunction cloneUnlessOtherwiseSpecified(value, options) {\n\treturn (options.clone !== false && options.isMergeableObject(value))\n\t\t? deepmerge(emptyTarget(value), value, options)\n\t\t: value\n}\n\nfunction defaultArrayMerge(target, source, options) {\n\treturn target.concat(source).map(function(element) {\n\t\treturn cloneUnlessOtherwiseSpecified(element, options)\n\t})\n}\n\nfunction getMergeFunction(key, options) {\n\tif (!options.customMerge) {\n\t\treturn deepmerge\n\t}\n\tvar customMerge = options.customMerge(key);\n\treturn typeof customMerge === 'function' ? customMerge : deepmerge\n}\n\nfunction getEnumerableOwnPropertySymbols(target) {\n\treturn Object.getOwnPropertySymbols\n\t\t? Object.getOwnPropertySymbols(target).filter(function(symbol) {\n\t\t\treturn Object.propertyIsEnumerable.call(target, symbol)\n\t\t})\n\t\t: []\n}\n\nfunction getKeys(target) {\n\treturn Object.keys(target).concat(getEnumerableOwnPropertySymbols(target))\n}\n\nfunction propertyIsOnObject(object, property) {\n\ttry {\n\t\treturn property in object\n\t} catch(_) {\n\t\treturn false\n\t}\n}\n\n// Protects from prototype poisoning and unexpected merging up the prototype chain.\nfunction propertyIsUnsafe(target, key) {\n\treturn propertyIsOnObject(target, key) // Properties are safe to merge if they don't exist in the target yet,\n\t\t&& !(Object.hasOwnProperty.call(target, key) // unsafe if they exist up the prototype chain,\n\t\t\t&& Object.propertyIsEnumerable.call(target, key)) // and also unsafe if they're nonenumerable.\n}\n\nfunction mergeObject(target, source, options) {\n\tvar destination = {};\n\tif (options.isMergeableObject(target)) {\n\t\tgetKeys(target).forEach(function(key) {\n\t\t\tdestination[key] = cloneUnlessOtherwiseSpecified(target[key], options);\n\t\t});\n\t}\n\tgetKeys(source).forEach(function(key) {\n\t\tif (propertyIsUnsafe(target, key)) {\n\t\t\treturn\n\t\t}\n\n\t\tif (propertyIsOnObject(target, key) && options.isMergeableObject(source[key])) {\n\t\t\tdestination[key] = getMergeFunction(key, options)(target[key], source[key], options);\n\t\t} else {\n\t\t\tdestination[key] = cloneUnlessOtherwiseSpecified(source[key], options);\n\t\t}\n\t});\n\treturn destination\n}\n\nfunction deepmerge(target, source, options) {\n\toptions = options || {};\n\toptions.arrayMerge = options.arrayMerge || defaultArrayMerge;\n\toptions.isMergeableObject = options.isMergeableObject || isMergeableObject;\n\t// cloneUnlessOtherwiseSpecified is added to `options` so that custom arrayMerge()\n\t// implementations can use it. The caller may not replace it.\n\toptions.cloneUnlessOtherwiseSpecified = cloneUnlessOtherwiseSpecified;\n\n\tvar sourceIsArray = Array.isArray(source);\n\tvar targetIsArray = Array.isArray(target);\n\tvar sourceAndTargetTypesMatch = sourceIsArray === targetIsArray;\n\n\tif (!sourceAndTargetTypesMatch) {\n\t\treturn cloneUnlessOtherwiseSpecified(source, options)\n\t} else if (sourceIsArray) {\n\t\treturn options.arrayMerge(target, source, options)\n\t} else {\n\t\treturn mergeObject(target, source, options)\n\t}\n}\n\ndeepmerge.all = function deepmergeAll(array, options) {\n\tif (!Array.isArray(array)) {\n\t\tthrow new Error('first argument should be an array')\n\t}\n\n\treturn array.reduce(function(prev, next) {\n\t\treturn deepmerge(prev, next, options)\n\t}, {})\n};\n\nvar deepmerge_1 = deepmerge;\n\nmodule.exports = deepmerge_1;\n","/********************************************************************\n * ADOBE CONFIDENTIAL\n * __________________\n *\n * Copyright 2024 Adobe\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe and its suppliers, if any. The intellectual\n * and technical concepts contained herein are proprietary to Adobe\n * and its suppliers and are protected by all applicable intellectual\n * property laws, including trade secret and copyright laws.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe.\n *******************************************************************/\n\nimport { config } from '@/checkout/api';\nimport { UIProvider } from '@adobe-commerce/elsie/components';\nimport { Lang } from '@adobe-commerce/elsie/i18n';\nimport { deepmerge } from '@adobe-commerce/elsie/lib/deepmerge';\nimport { events } from '@adobe-commerce/event-bus';\nimport { FunctionComponent } from 'preact';\nimport { useEffect, useState } from 'preact/hooks';\n\nimport en_US from '../i18n/en_US.json';\n\n// Langs\nconst langDefinitions = {\n default: en_US,\n};\n\ninterface IntlProviderProps {\n children?: any;\n}\n\nexport const Provider: FunctionComponent<IntlProviderProps> = ({\n children,\n}) => {\n const [locale, setLang] = useState<Lang>();\n\n const userLangDefinitions = config.getConfig()?.langDefinitions;\n\n useEffect(() => {\n const localeEvent = events.on(\n 'locale',\n (payload) => {\n if (payload !== locale) setLang(payload as Lang);\n },\n { eager: true }\n );\n return () => {\n localeEvent?.off();\n };\n }, [locale]);\n\n // Merge language definitions with user language definitions\n const definitions = deepmerge(langDefinitions, userLangDefinitions ?? {});\n\n return (\n <UIProvider lang={locale} langDefinitions={definitions}>\n {children}\n </UIProvider>\n );\n};\n","/********************************************************************\n * ADOBE CONFIDENTIAL\n * __________________\n *\n * Copyright 2024 Adobe\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe and its suppliers, if any. The intellectual\n * and technical concepts contained herein are proprietary to Adobe\n * and its suppliers and are protected by all applicable intellectual\n * property laws, including trade secret and copyright laws.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe.\n *******************************************************************/\n\nimport { Render } from '@adobe-commerce/elsie/lib';\nimport { Provider } from './Provider';\nexport { Provider };\nexport const render = new Render(<Provider />);\n"],"names":["isMergeableObject","value","isNonNullObject","isSpecial","stringValue","isReactElement","canUseSymbol","REACT_ELEMENT_TYPE","emptyTarget","val","cloneUnlessOtherwiseSpecified","options","deepmerge","defaultArrayMerge","target","source","element","getMergeFunction","key","customMerge","getEnumerableOwnPropertySymbols","symbol","getKeys","propertyIsOnObject","object","property","propertyIsUnsafe","mergeObject","destination","sourceIsArray","targetIsArray","sourceAndTargetTypesMatch","array","prev","next","deepmerge_1","cjs","langDefinitions","en_US","Provider","children","locale","setLang","useState","userLangDefinitions","_a","config","useEffect","localeEvent","events","payload","definitions","UIProvider","render","Render","jsx"],"mappings":"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","x_google_ignoreList":[0]}
@@ -16,4 +16,5 @@
16
16
  *******************************************************************/
17
17
  export declare const TEST_CART_ID = "fake-cart-id";
18
18
  export declare const TEST_ORDER_ID = "fake-order-id";
19
+ export declare const TEST_QUOTE_ID = "fake-quote-id";
19
20
  //# sourceMappingURL=constants.d.ts.map
@@ -90,7 +90,6 @@ export declare const cartFixture: {
90
90
  } | null)[];
91
91
  available_shipping_methods?: ({
92
92
  __typename?: "AvailableShippingMethod" | undefined;
93
- available: boolean;
94
93
  carrier_code: string;
95
94
  carrier_title: string;
96
95
  error_message?: string | null | undefined;
@@ -120,8 +119,8 @@ export declare const cartFixture: {
120
119
  method_title: string;
121
120
  amount: {
122
121
  __typename?: "Money" | undefined;
123
- value?: number | null | undefined;
124
122
  currency?: import('../../../__generated__/types').CurrencyEnum | null | undefined;
123
+ value?: number | null | undefined;
125
124
  };
126
125
  price_excl_tax: {
127
126
  __typename?: "Money" | undefined;
@@ -1,4 +0,0 @@
1
- /*! Copyright 2025 Adobe
2
- All Rights Reserved. */
3
- import{signal as r}from"@dropins/tools/signals.js";const s=r();export{s};
4
- //# sourceMappingURL=ServerErrorSignal.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"ServerErrorSignal.js","sources":["/@dropins/storefront-checkout/src/signals/ServerErrorSignal.ts"],"sourcesContent":["/********************************************************************\n * ADOBE CONFIDENTIAL\n * __________________\n *\n * Copyright 2024 Adobe\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe and its suppliers, if any. The intellectual\n * and technical concepts contained herein are proprietary to Adobe\n * and its suppliers and are protected by all applicable intellectual\n * property laws, including trade secret and copyright laws.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe.\n *******************************************************************/\n\nimport { signal } from '@adobe-commerce/elsie/lib/signals';\n\nexport const serverErrorSignal = signal<string | undefined>();\n"],"names":["serverErrorSignal","signal"],"mappings":"mDAmBO,MAAMA,EAAoBC,EAA2B"}
package/chunks/errors.js DELETED
@@ -1,14 +0,0 @@
1
- /*! Copyright 2025 Adobe
2
- All Rights Reserved. */
3
- import"@dropins/tools/lib.js";import{events as m}from"@dropins/tools/event-bus.js";import{signal as y,computed as E}from"@dropins/tools/signals.js";import{FetchGraphQL as w}from"@dropins/tools/fetch-graphql.js";const A={authenticated:!1,cartId:null,initialized:!1,config:null},N=new Proxy(A,{set(e,t,r){return e[t]=r,!0},get(e,t){return e[t]}}),V=()=>N.config;var i=(e=>(e.EXCLUDING_TAX="EXCLUDING_TAX",e.INCLUDING_EXCLUDING_TAX="INCLUDING_AND_EXCLUDING_TAX",e.INCLUDING_TAX="INCLUDING_TAX",e))(i||{}),D=(e=>(e.CartUpdate="cartUpdate",e.Default="default",e.ShippingEstimate="shippingEstimate",e))(D||{});const d=new Map,g=new Map,c=y(new Set),I=new Map;I.set("cartUpdate",e=>{m.emit("checkout/updated",e)});async function G(e){g.set(e,!0);const t=d.get(e);let r;for(;t.length>0;){const o=t.shift();try{const n=await o.requestFn();o.resolve(n),r=n}catch(n){o.reject(n)}}g.set(e,!1);const s=new Set(c.value);s.delete(e),c.value=s;const a=I.get(e);a&&r&&a(r)}function S(e,t="default"){d.has(t)||d.set(t,[]);const r=d.get(t),s=new Promise((o,n)=>{r.push({requestFn:e,resolve:o,reject:n})}),a=new Set(c.value);return a.add(t),c.value=a,g.get(t)||G(t),s}const B=E(()=>c.value.has("cartUpdate")),z=E(()=>c.value.has("shippingEstimate")),q=["sender_email","recipient_email"];function X(e){return e.filter(t=>!t.path||!q.some(r=>{var s;return((s=t.path)==null?void 0:s.at(-1))===r}))}const v=e=>{throw e instanceof DOMException&&e.name==="AbortError"||m.emit("error",{source:"checkout",type:"network",error:e}),e};function T(e,t){return t.split(".").reduce((r,s)=>r&&r[s]!==void 0?r[s]:void 0,e)}async function L(e){const{defaultValueOnFail:t,options:r,path:s,query:a,queueName:o,transformer:n,type:p}=e;try{const l=async()=>{const{data:U,errors:_}=await k(a,{method:p==="query"?"GET":"POST",cache:p==="query"?"no-cache":void 0,...r}).catch(v);if(_){const C=X(_);if(C.length>0)throw new P(C)}let h=T(U,s);if(h===void 0)throw new Error(`No data found at path: ${s}`);return n?n(h):h};return p==="mutation"?await S(l,o):await l()}catch(l){if(t!==void 0)return t;throw l}}const x=`
4
- query getStoreConfig {
5
- storeConfig {
6
- default_country
7
- is_checkout_agreements_enabled
8
- is_guest_checkout_enabled
9
- is_one_page_checkout_enabled
10
- shopping_cart_display_shipping
11
- }
12
- }
13
- `,F="US",f={defaultCountry:F,agreementsEnabled:!0,shoppingCartDisplaySetting:{shipping:i.EXCLUDING_TAX}},Y=async()=>await L({defaultValueOnFail:f,options:{method:"GET",cache:"no-cache"},path:"storeConfig",query:x,transformer:b,type:"query"});function M(e){switch(e){case 1:return i.EXCLUDING_TAX;case 2:return i.INCLUDING_TAX;case 3:return i.INCLUDING_EXCLUDING_TAX;default:return i.EXCLUDING_TAX}}function b(e){if(!e)return f;const{default_country:t,is_checkout_agreements_enabled:r,shopping_cart_display_shipping:s}=e;return{defaultCountry:t||f.defaultCountry,agreementsEnabled:r,shoppingCartDisplaySetting:{shipping:M(s)}}}const{setEndpoint:$,setFetchGraphQlHeader:J,removeFetchGraphQlHeader:K,setFetchGraphQlHeaders:W,fetchGraphQl:k,getConfig:Z}=new w().getMethods();class P extends Error{constructor(t){super(t.map(r=>r.message).join(" ")),this.name="FetchError"}}class u extends Error{constructor(t){super(t),this.name="InvalidArgument"}}class ee extends Error{constructor(t){super(t),this.name="UnexpectedError"}}class te extends u{constructor(){super("Cart ID is required")}}class re extends u{constructor(){super("Email is required")}}class se extends u{constructor(){super("Payment method code is required")}}class ne extends u{constructor(){super("Shipping address is required")}}class ae extends u{constructor(){super("Billing address is required")}}class oe extends u{constructor(){super("Country Code is required")}}export{F as D,P as F,u as I,te as M,D as Q,f as S,i as T,ee as U,z as a,oe as b,ne as c,L as d,$ as e,J as f,V as g,B as h,W as i,k as j,Z as k,Y as l,re as m,se as n,ae as o,K as r,N as s};
14
- //# sourceMappingURL=errors.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"errors.js","sources":["/@dropins/storefront-checkout/src/lib/state.ts","/@dropins/storefront-checkout/src/data/models/store-config.ts","/@dropins/storefront-checkout/src/lib/enqueueRequest.ts","/@dropins/storefront-checkout/src/lib/filterControlledErrors.ts","/@dropins/storefront-checkout/src/lib/network-error.ts","/@dropins/storefront-checkout/src/lib/dispatchApiCall.ts","/@dropins/storefront-checkout/src/api/getStoreConfig/graphql/getStoreConfig.graphql.ts","/@dropins/storefront-checkout/src/api/getStoreConfig/getStoreConfig.ts","/@dropins/storefront-checkout/src/data/transforms/transform-store-config.ts","/@dropins/storefront-checkout/src/api/fetch-graphql/fetch-graphql.ts","/@dropins/storefront-checkout/src/errors/errors.ts"],"sourcesContent":["/********************************************************************\n * ADOBE CONFIDENTIAL\n * __________________\n *\n * Copyright 2024 Adobe\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe and its suppliers, if any. The intellectual\n * and technical concepts contained herein are proprietary to Adobe\n * and its suppliers and are protected by all applicable intellectual\n * property laws, including trade secret and copyright laws.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe.\n *******************************************************************/\n\nimport { StoreConfig } from '@/checkout/data/models';\n\ntype State = {\n authenticated: boolean;\n cartId: string | null;\n initialized: boolean;\n config: StoreConfig | null;\n};\n\nconst _state: State = (() => ({\n authenticated: false,\n cartId: null,\n initialized: false,\n config: null,\n}))();\n\n// Proxy state to allow reactivity\nexport const state = new Proxy(_state, {\n set(target, key, value) {\n // @ts-ignore\n target[key] = value;\n return true;\n },\n get(target, key) {\n return target[key as keyof State];\n },\n});\n\nexport const getStoreConfigCache = () => state.config;\n","/********************************************************************\n * ADOBE CONFIDENTIAL\n * __________________\n *\n * Copyright 2024 Adobe\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe and its suppliers, if any. The intellectual\n * and technical concepts contained herein are proprietary to Adobe\n * and its suppliers and are protected by all applicable intellectual\n * property laws, including trade secret and copyright laws.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe.\n *******************************************************************/\n\nexport enum TaxDisplay {\n EXCLUDING_TAX = 'EXCLUDING_TAX',\n INCLUDING_EXCLUDING_TAX = 'INCLUDING_AND_EXCLUDING_TAX',\n INCLUDING_TAX = 'INCLUDING_TAX',\n}\n\nexport interface StoreConfig {\n defaultCountry: string;\n agreementsEnabled: boolean;\n shoppingCartDisplaySetting: {\n shipping: TaxDisplay;\n };\n}\n","/********************************************************************\n * ADOBE CONFIDENTIAL\n * __________________\n *\n * Copyright 2024 Adobe\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe and its suppliers, if any. The intellectual\n * and technical concepts contained herein are proprietary to Adobe\n * and its suppliers and are protected by all applicable intellectual\n * property laws, including trade secret and copyright laws.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe.\n *******************************************************************/\n\nimport { Cart } from '@/checkout/data/models';\nimport {\n computed,\n ReadonlySignal,\n signal,\n} from '@adobe-commerce/elsie/lib/signals';\nimport { events } from '@adobe-commerce/event-bus';\n\nexport enum QueueName {\n CartUpdate = 'cartUpdate',\n Default = 'default',\n ShippingEstimate = 'shippingEstimate',\n}\n\ntype Request<T> = () => Promise<T>;\ntype QueueCompletedHandler<T> = (result: T) => void;\n\ninterface QueuedRequest<T> {\n requestFn: Request<T>;\n resolve: (value: T) => void;\n reject: (error: any) => void;\n}\n\nconst queues = new Map<QueueName, QueuedRequest<any>[]>();\nconst processing = new Map<QueueName, boolean>();\nconst pendingRequests = signal<Set<QueueName>>(new Set());\nconst onQueueCompleted = new Map<QueueName, QueueCompletedHandler<any>>();\n\nonQueueCompleted.set(QueueName.CartUpdate, (latestResult: Cart) => {\n events.emit('checkout/updated', latestResult);\n});\n\nasync function processQueue(type: QueueName): Promise<void> {\n processing.set(type, true);\n\n const queue = queues.get(type)!;\n let latestSuccessResult: any;\n\n while (queue.length > 0) {\n const request = queue.shift()!;\n\n try {\n const result = await request.requestFn();\n request.resolve(result);\n latestSuccessResult = result;\n } catch (error) {\n request.reject(error);\n }\n }\n\n processing.set(type, false);\n\n const pendingSet = new Set(pendingRequests.value);\n pendingSet.delete(type);\n pendingRequests.value = pendingSet;\n\n const handler = onQueueCompleted.get(type);\n\n if (handler && latestSuccessResult) {\n handler(latestSuccessResult);\n }\n}\n\nexport function enqueueRequest<T>(\n requestFn: Request<T>,\n name: QueueName = QueueName.Default\n): Promise<T> {\n if (!queues.has(name)) {\n queues.set(name, []);\n }\n\n const queue = queues.get(name)!;\n\n const promise = new Promise<T>((resolve, reject) => {\n queue.push({ requestFn, resolve, reject });\n });\n\n const pendingSet = new Set(pendingRequests.value);\n pendingSet.add(name);\n pendingRequests.value = pendingSet;\n\n if (!processing.get(name)) {\n processQueue(name);\n }\n\n return promise;\n}\n\nexport const hasPendingCartUpdates: ReadonlySignal<boolean> = computed(() => {\n return pendingRequests.value.has(QueueName.CartUpdate);\n});\n\nexport const hasPendingShippingEstimate: ReadonlySignal<boolean> = computed(\n () => {\n return pendingRequests.value.has(QueueName.ShippingEstimate);\n }\n);\n","/********************************************************************\n * ADOBE CONFIDENTIAL\n * __________________\n *\n * Copyright 2024 Adobe\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe and its suppliers, if any. The intellectual\n * and technical concepts contained herein are proprietary to Adobe\n * and its suppliers and are protected by all applicable intellectual\n * property laws, including trade secret and copyright laws.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe.\n *******************************************************************/\n\nimport { FetchQueryError } from '@/checkout/api/fetch-graphql';\n\ntype ErrorPath = (string | number)[];\n\nexport type ErrorWithPath = FetchQueryError[number] & {\n path?: ErrorPath;\n};\n\nconst controlledErrorProps: string[] = ['sender_email', 'recipient_email'];\n\n/**\n * Filters out errors with known paths from a list of errors generated by a GraphQL query.\n *\n * Known issue: The query does not differentiate between physical and virtual gift cards, leading\n * to errors for physical ones as they don't have 'sender_email' and 'recipient_email' properties.\n *\n * @param {ErrorWithPath[]} errors - Array of errors to be filtered.\n * @return {ErrorWithPath[]} Uncontrolled (unexpected) errors not matching predefined paths.\n */\n\nexport function filterControlledErrors(errors: ErrorWithPath[]) {\n return errors.filter(\n (error) =>\n !error.path ||\n !controlledErrorProps.some((controlledErrorProp) => {\n return error.path?.at(-1) === controlledErrorProp;\n })\n );\n}\n","/********************************************************************\n * ADOBE CONFIDENTIAL\n * __________________\n *\n * Copyright 2024 Adobe\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe and its suppliers, if any. The intellectual\n * and technical concepts contained herein are proprietary to Adobe\n * and its suppliers and are protected by all applicable intellectual\n * property laws, including trade secret and copyright laws.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe.\n *******************************************************************/\n\nimport { events } from '@adobe-commerce/event-bus';\n\n/**\n * A function which can be attached to fetchGraphQL to handle thrown errors in\n * a generic way.\n */\nexport const handleNetworkError = (error: Error) => {\n const isAbortError =\n error instanceof DOMException && error.name === 'AbortError';\n\n if (!isAbortError) {\n events.emit('error', {\n source: 'checkout',\n type: 'network',\n error,\n });\n }\n\n throw error;\n};\n","/********************************************************************\n * ADOBE CONFIDENTIAL\n * __________________\n *\n * Copyright 2024 Adobe\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe and its suppliers, if any. The intellectual\n * and technical concepts contained herein are proprietary to Adobe\n * and its suppliers and are protected by all applicable intellectual\n * property laws, including trade secret and copyright laws.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe.\n *******************************************************************/\n\nimport {\n FetchError,\n fetchGraphQl,\n FetchOptions,\n FetchQueryError,\n} from '@/checkout/api';\nimport { enqueueRequest, QueueName } from '@/checkout/lib/enqueueRequest';\nimport { filterControlledErrors } from '@/checkout/lib/filterControlledErrors';\nimport { handleNetworkError } from '@/checkout/lib/network-error';\n\ntype DispatchApiCallParams<T> = {\n defaultValueOnFail?: T;\n options?: FetchOptions;\n path: string;\n query: string;\n queueName?: QueueName;\n transformer?: (data: any) => T;\n type: 'query' | 'mutation';\n};\n\nexport function getValueAtPath(obj: any, path: string) {\n return path\n .split('.')\n .reduce(\n (acc, part) => (acc && acc[part] !== undefined ? acc[part] : undefined),\n obj\n );\n}\n\nasync function dispatchApiCall<T>(\n params: DispatchApiCallParams<T>\n): Promise<T> {\n const {\n defaultValueOnFail,\n options,\n path,\n query,\n queueName,\n transformer,\n type,\n } = params;\n\n try {\n const processApiCall = async () => {\n const { data, errors } = await fetchGraphQl<T>(query, {\n method: type === 'query' ? 'GET' : 'POST',\n cache: type === 'query' ? 'no-cache' : undefined,\n ...options,\n }).catch(handleNetworkError);\n\n if (errors) {\n const uncontrolledErrors = filterControlledErrors(errors);\n\n if (uncontrolledErrors.length > 0) {\n throw new FetchError(uncontrolledErrors as FetchQueryError);\n }\n }\n\n let result = getValueAtPath(data, path);\n\n if (result === undefined) {\n throw new Error(`No data found at path: ${path}`);\n }\n\n return transformer ? transformer(result) : result;\n };\n\n // Execute the API call, either directly or through the queue\n const result =\n type === 'mutation'\n ? await enqueueRequest<T>(processApiCall, queueName)\n : await processApiCall();\n\n return result;\n } catch (error: any) {\n if (defaultValueOnFail !== undefined) return defaultValueOnFail;\n throw error;\n }\n}\n\nexport { dispatchApiCall };\n","/********************************************************************\n * ADOBE CONFIDENTIAL\n * __________________\n *\n * Copyright 2024 Adobe\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe and its suppliers, if any. The intellectual\n * and technical concepts contained herein are proprietary to Adobe\n * and its suppliers and are protected by all applicable intellectual\n * property laws, including trade secret and copyright laws.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe.\n *******************************************************************/\n\nexport const getStoreConfigQuery = /* GraphQL */ `\n query getStoreConfig {\n storeConfig {\n default_country\n is_checkout_agreements_enabled\n is_guest_checkout_enabled\n is_one_page_checkout_enabled\n shopping_cart_display_shipping\n }\n }\n`;\n","/********************************************************************\n * ADOBE CONFIDENTIAL\n * __________________\n *\n * Copyright 2024 Adobe\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe and its suppliers, if any. The intellectual\n * and technical concepts contained herein are proprietary to Adobe\n * and its suppliers and are protected by all applicable intellectual\n * property laws, including trade secret and copyright laws.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe.\n *******************************************************************/\n\nimport { StoreConfig, TaxDisplay } from '@/checkout/data/models';\nimport { transformStoreConfig } from '@/checkout/data/transforms';\nimport { dispatchApiCall } from '@/checkout/lib';\nimport { getStoreConfigQuery } from './graphql/getStoreConfig.graphql';\n\nexport const DEFAULT_COUNTRY = 'US';\n\nexport const STORE_CONFIG_DEFAULTS: StoreConfig = {\n defaultCountry: DEFAULT_COUNTRY,\n agreementsEnabled: true,\n shoppingCartDisplaySetting: {\n shipping: TaxDisplay.EXCLUDING_TAX,\n },\n};\n\nexport const getStoreConfig = async () => {\n return await dispatchApiCall({\n defaultValueOnFail: STORE_CONFIG_DEFAULTS,\n options: { method: 'GET', cache: 'no-cache' },\n path: 'storeConfig',\n query: getStoreConfigQuery,\n transformer: transformStoreConfig,\n type: 'query',\n });\n};\n","/********************************************************************\n * ADOBE CONFIDENTIAL\n * __________________\n *\n * Copyright 2024 Adobe\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe and its suppliers, if any. The intellectual\n * and technical concepts contained herein are proprietary to Adobe\n * and its suppliers and are protected by all applicable intellectual\n * property laws, including trade secret and copyright laws.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe.\n *******************************************************************/\n\nimport { GetStoreConfigQuery } from '@/checkout/__generated__/types';\nimport { STORE_CONFIG_DEFAULTS } from '@/checkout/api/getStoreConfig';\nimport { StoreConfig, TaxDisplay } from '@/checkout/data/models';\n\nexport function transformTaxDisplay(data: number | null | undefined) {\n switch (data) {\n case 1:\n return TaxDisplay.EXCLUDING_TAX;\n case 2:\n return TaxDisplay.INCLUDING_TAX;\n case 3:\n return TaxDisplay.INCLUDING_EXCLUDING_TAX;\n default:\n return TaxDisplay.EXCLUDING_TAX;\n }\n}\n\nexport function transformStoreConfig(\n data: GetStoreConfigQuery['storeConfig']\n): StoreConfig {\n if (!data) return STORE_CONFIG_DEFAULTS;\n\n const {\n default_country,\n is_checkout_agreements_enabled,\n shopping_cart_display_shipping,\n } = data;\n\n return {\n defaultCountry: default_country || STORE_CONFIG_DEFAULTS.defaultCountry,\n agreementsEnabled: is_checkout_agreements_enabled,\n shoppingCartDisplaySetting: {\n shipping: transformTaxDisplay(shopping_cart_display_shipping),\n },\n };\n}\n","/********************************************************************\n * ADOBE CONFIDENTIAL\n * __________________\n *\n * Copyright 2024 Adobe\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe and its suppliers, if any. The intellectual\n * and technical concepts contained herein are proprietary to Adobe\n * and its suppliers and are protected by all applicable intellectual\n * property laws, including trade secret and copyright laws.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe.\n *******************************************************************/\n\nimport { FetchGraphQL } from '@adobe-commerce/fetch-graphql';\n\nexport const {\n setEndpoint,\n setFetchGraphQlHeader,\n removeFetchGraphQlHeader,\n setFetchGraphQlHeaders,\n fetchGraphQl,\n getConfig,\n} = new FetchGraphQL().getMethods();\n\nexport type {\n FetchOptions,\n FetchQueryError,\n} from '@adobe-commerce/fetch-graphql';\n","/********************************************************************\n * ADOBE CONFIDENTIAL\n * __________________\n *\n * Copyright 2024 Adobe\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe and its suppliers, if any. The intellectual\n * and technical concepts contained herein are proprietary to Adobe\n * and its suppliers and are protected by all applicable intellectual\n * property laws, including trade secret and copyright laws.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe.\n *******************************************************************/\n\nimport { FetchQueryError } from '@/checkout/api/fetch-graphql';\n\nexport class FetchError extends Error {\n constructor(reasons: FetchQueryError) {\n super(reasons.map((e: any) => e.message).join(' '));\n this.name = 'FetchError';\n }\n}\n\nexport class InvalidArgument extends Error {\n constructor(message: string) {\n super(message);\n this.name = 'InvalidArgument';\n }\n}\n\nexport class UnexpectedError extends Error {\n constructor(message: string) {\n super(message);\n this.name = 'UnexpectedError';\n }\n}\n\nexport class MissingCart extends InvalidArgument {\n constructor() {\n super('Cart ID is required');\n }\n}\nexport class MissingEmail extends InvalidArgument {\n constructor() {\n super('Email is required');\n }\n}\n\nexport class MissingPaymentMethod extends InvalidArgument {\n constructor() {\n super('Payment method code is required');\n }\n}\n\nexport class MissingShippinghAddress extends InvalidArgument {\n constructor() {\n super('Shipping address is required');\n }\n}\n\nexport class MissingBillingAddress extends InvalidArgument {\n constructor() {\n super('Billing address is required');\n }\n}\n\nexport class MissingCountry extends InvalidArgument {\n constructor() {\n super('Country Code is required');\n }\n}\n"],"names":["_state","state","target","key","value","getStoreConfigCache","TaxDisplay","QueueName","queues","processing","pendingRequests","signal","onQueueCompleted","latestResult","events","processQueue","type","queue","latestSuccessResult","request","result","error","pendingSet","handler","enqueueRequest","requestFn","name","promise","resolve","reject","hasPendingCartUpdates","computed","hasPendingShippingEstimate","controlledErrorProps","filterControlledErrors","errors","controlledErrorProp","_a","handleNetworkError","getValueAtPath","obj","path","acc","part","dispatchApiCall","params","defaultValueOnFail","options","query","queueName","transformer","processApiCall","data","fetchGraphQl","uncontrolledErrors","FetchError","getStoreConfigQuery","DEFAULT_COUNTRY","STORE_CONFIG_DEFAULTS","getStoreConfig","transformStoreConfig","transformTaxDisplay","default_country","is_checkout_agreements_enabled","shopping_cart_display_shipping","setEndpoint","setFetchGraphQlHeader","removeFetchGraphQlHeader","setFetchGraphQlHeaders","getConfig","FetchGraphQL","reasons","e","InvalidArgument","message","UnexpectedError","MissingCart","MissingEmail","MissingPaymentMethod","MissingShippinghAddress","MissingBillingAddress","MissingCountry"],"mappings":"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"}