@merchi/cart 1.4.4 → 1.4.6

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 (49) hide show
  1. package/esm/CartProvider.js +58 -20
  2. package/esm/forms/FormShipmentAddressAndNotes.js +24 -3
  3. package/esm/stripe/LegacyStripeCardForm.js +11 -4
  4. package/esm/stripe/StripeCardForm.js +122 -16
  5. package/esm/stripe/actions.js +155 -57
  6. package/esm/stripe/actions.test.js +120 -0
  7. package/esm/utilities/cookie.js +15 -12
  8. package/esm/utilities/index.js +2 -0
  9. package/esm/utilities/job_source.js +139 -0
  10. package/esm/utilities/job_source.test.js +75 -0
  11. package/esm/utilities/shipment.js +22 -0
  12. package/esm/utilities/shipment.test.js +60 -0
  13. package/esm/utilities/test_checkout.js +25 -0
  14. package/esm/utilities/test_checkout.test.js +31 -0
  15. package/lib/CartProvider.js +58 -20
  16. package/lib/forms/FormShipmentAddressAndNotes.js +22 -1
  17. package/lib/stripe/LegacyStripeCardForm.js +10 -3
  18. package/lib/stripe/StripeCardForm.js +123 -17
  19. package/lib/stripe/actions.d.ts +2 -0
  20. package/lib/stripe/actions.js +157 -57
  21. package/lib/stripe/actions.test.d.ts +1 -0
  22. package/lib/utilities/cookie.d.ts +3 -3
  23. package/lib/utilities/cookie.js +15 -12
  24. package/lib/utilities/index.d.ts +2 -0
  25. package/lib/utilities/index.js +22 -0
  26. package/lib/utilities/job_source.d.ts +23 -0
  27. package/lib/utilities/job_source.js +152 -0
  28. package/lib/utilities/job_source.test.d.ts +1 -0
  29. package/lib/utilities/shipment.d.ts +15 -0
  30. package/lib/utilities/shipment.js +24 -0
  31. package/lib/utilities/shipment.test.d.ts +1 -0
  32. package/lib/utilities/test_checkout.d.ts +6 -0
  33. package/lib/utilities/test_checkout.js +34 -0
  34. package/lib/utilities/test_checkout.test.d.ts +1 -0
  35. package/package.json +8 -5
  36. package/src/CartProvider.tsx +42 -4
  37. package/src/forms/FormShipmentAddressAndNotes.tsx +34 -2
  38. package/src/stripe/LegacyStripeCardForm.tsx +9 -3
  39. package/src/stripe/StripeCardForm.tsx +92 -8
  40. package/src/stripe/actions.test.ts +50 -0
  41. package/src/stripe/actions.ts +41 -0
  42. package/src/utilities/cookie.ts +9 -6
  43. package/src/utilities/index.ts +2 -0
  44. package/src/utilities/job_source.test.ts +86 -0
  45. package/src/utilities/job_source.ts +165 -0
  46. package/src/utilities/shipment.test.ts +68 -0
  47. package/src/utilities/shipment.ts +34 -0
  48. package/src/utilities/test_checkout.test.ts +39 -0
  49. package/src/utilities/test_checkout.ts +27 -0
@@ -5,38 +5,144 @@ Object.defineProperty(exports, "__esModule", {
5
5
  value: true
6
6
  });
7
7
  exports["default"] = StripeCardForm;
8
- var React = _interopRequireWildcard(require("react"));
8
+ var _react = _interopRequireWildcard(require("react"));
9
+ var React = _react;
9
10
  var _invoice = require("@merchi/invoice");
10
11
  var _LegacyStripeCardForm = _interopRequireDefault(require("./LegacyStripeCardForm"));
12
+ var _actions = require("./actions");
11
13
  var _CartProvider = require("../CartProvider");
12
14
  var _tabs = require("../utilities/tabs");
15
+ var _test_checkout = require("../utilities/test_checkout");
13
16
  var _jsxRuntime = require("react/jsx-runtime");
14
17
  function _interopRequireDefault(e) { return e && e.__esModule ? e : { "default": e }; }
15
- function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function _interopRequireWildcard(e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, "default": e }; if (null === e || "object" != _typeof(e) && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (var _t in e) "default" !== _t && {}.hasOwnProperty.call(e, _t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, _t)) && (i.get || i.set) ? o(f, _t, i) : f[_t] = e[_t]); return f; })(e, t); }
18
+ function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function _interopRequireWildcard(e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, "default": e }; if (null === e || "object" != _typeof(e) && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (var _t2 in e) "default" !== _t2 && {}.hasOwnProperty.call(e, _t2) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, _t2)) && (i.get || i.set) ? o(f, _t2, i) : f[_t2] = e[_t2]); return f; })(e, t); }
19
+ function _regenerator() { /*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/babel/babel/blob/main/packages/babel-helpers/LICENSE */ var e, t, r = "function" == typeof Symbol ? Symbol : {}, n = r.iterator || "@@iterator", o = r.toStringTag || "@@toStringTag"; function i(r, n, o, i) { var c = n && n.prototype instanceof Generator ? n : Generator, u = Object.create(c.prototype); return _regeneratorDefine2(u, "_invoke", function (r, n, o) { var i, c, u, f = 0, p = o || [], y = !1, G = { p: 0, n: 0, v: e, a: d, f: d.bind(e, 4), d: function d(t, r) { return i = t, c = 0, u = e, G.n = r, a; } }; function d(r, n) { for (c = r, u = n, t = 0; !y && f && !o && t < p.length; t++) { var o, i = p[t], d = G.p, l = i[2]; r > 3 ? (o = l === n) && (u = i[(c = i[4]) ? 5 : (c = 3, 3)], i[4] = i[5] = e) : i[0] <= d && ((o = r < 2 && d < i[1]) ? (c = 0, G.v = n, G.n = i[1]) : d < l && (o = r < 3 || i[0] > n || n > l) && (i[4] = r, i[5] = n, G.n = l, c = 0)); } if (o || r > 1) return a; throw y = !0, n; } return function (o, p, l) { if (f > 1) throw TypeError("Generator is already running"); for (y && 1 === p && d(p, l), c = p, u = l; (t = c < 2 ? e : u) || !y;) { i || (c ? c < 3 ? (c > 1 && (G.n = -1), d(c, u)) : G.n = u : G.v = u); try { if (f = 2, i) { if (c || (o = "next"), t = i[o]) { if (!(t = t.call(i, u))) throw TypeError("iterator result is not an object"); if (!t.done) return t; u = t.value, c < 2 && (c = 0); } else 1 === c && (t = i["return"]) && t.call(i), c < 2 && (u = TypeError("The iterator does not provide a '" + o + "' method"), c = 1); i = e; } else if ((t = (y = G.n < 0) ? u : r.call(n, G)) !== a) break; } catch (t) { i = e, c = 1, u = t; } finally { f = 1; } } return { value: t, done: y }; }; }(r, o, i), !0), u; } var a = {}; function Generator() {} function GeneratorFunction() {} function GeneratorFunctionPrototype() {} t = Object.getPrototypeOf; var c = [][n] ? t(t([][n]())) : (_regeneratorDefine2(t = {}, n, function () { return this; }), t), u = GeneratorFunctionPrototype.prototype = Generator.prototype = Object.create(c); function f(e) { return Object.setPrototypeOf ? Object.setPrototypeOf(e, GeneratorFunctionPrototype) : (e.__proto__ = GeneratorFunctionPrototype, _regeneratorDefine2(e, o, "GeneratorFunction")), e.prototype = Object.create(u), e; } return GeneratorFunction.prototype = GeneratorFunctionPrototype, _regeneratorDefine2(u, "constructor", GeneratorFunctionPrototype), _regeneratorDefine2(GeneratorFunctionPrototype, "constructor", GeneratorFunction), GeneratorFunction.displayName = "GeneratorFunction", _regeneratorDefine2(GeneratorFunctionPrototype, o, "GeneratorFunction"), _regeneratorDefine2(u), _regeneratorDefine2(u, o, "Generator"), _regeneratorDefine2(u, n, function () { return this; }), _regeneratorDefine2(u, "toString", function () { return "[object Generator]"; }), (_regenerator = function _regenerator() { return { w: i, m: f }; })(); }
20
+ function _regeneratorDefine2(e, r, n, t) { var i = Object.defineProperty; try { i({}, "", {}); } catch (e) { i = 0; } _regeneratorDefine2 = function _regeneratorDefine(e, r, n, t) { function o(r, n) { _regeneratorDefine2(e, r, function (e) { return this._invoke(r, n, e); }); } r ? i ? i(e, r, { value: n, enumerable: !t, configurable: !t, writable: !t }) : e[r] = n : (o("next", 0), o("throw", 1), o("return", 2)); }, _regeneratorDefine2(e, r, n, t); }
21
+ function asyncGeneratorStep(n, t, e, r, o, a, c) { try { var i = n[a](c), u = i.value; } catch (n) { return void e(n); } i.done ? t(u) : Promise.resolve(u).then(r, o); }
22
+ function _asyncToGenerator(n) { return function () { var t = this, e = arguments; return new Promise(function (r, o) { var a = n.apply(t, e); function _next(n) { asyncGeneratorStep(a, r, o, _next, _throw, "next", n); } function _throw(n) { asyncGeneratorStep(a, r, o, _next, _throw, "throw", n); } _next(void 0); }); }; }
23
+ function _slicedToArray(r, e) { return _arrayWithHoles(r) || _iterableToArrayLimit(r, e) || _unsupportedIterableToArray(r, e) || _nonIterableRest(); }
24
+ function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
25
+ function _unsupportedIterableToArray(r, a) { if (r) { if ("string" == typeof r) return _arrayLikeToArray(r, a); var t = {}.toString.call(r).slice(8, -1); return "Object" === t && r.constructor && (t = r.constructor.name), "Map" === t || "Set" === t ? Array.from(r) : "Arguments" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray(r, a) : void 0; } }
26
+ function _arrayLikeToArray(r, a) { (null == a || a > r.length) && (a = r.length); for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; return n; }
27
+ function _iterableToArrayLimit(r, l) { var t = null == r ? null : "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (null != t) { var e, n, i, u, a = [], f = !0, o = !1; try { if (i = (t = t.call(r)).next, 0 === l) { if (Object(t) !== t) return; f = !1; } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0); } catch (r) { o = !0, n = r; } finally { try { if (!f && null != t["return"] && (u = t["return"](), Object(u) !== u)) return; } finally { if (o) throw n; } } return a; } }
28
+ function _arrayWithHoles(r) { if (Array.isArray(r)) return r; }
29
+ var testCheckoutHint = /*#__PURE__*/(0, _jsxRuntime.jsxs)("div", {
30
+ style: {
31
+ marginBottom: '12px'
32
+ },
33
+ children: [/*#__PURE__*/(0, _jsxRuntime.jsx)("div", {
34
+ style: {
35
+ color: 'red',
36
+ fontWeight: 600
37
+ },
38
+ children: "Test checkout"
39
+ }), /*#__PURE__*/(0, _jsxRuntime.jsxs)("p", {
40
+ style: {
41
+ margin: '4px 0 0',
42
+ fontSize: '13px'
43
+ },
44
+ children: ["No real charge. Use card ", _test_checkout.TEST_CARD_NUMBER, ", any future expiry, any CVC, any ZIP."]
45
+ })]
46
+ });
16
47
  function StripeCardForm() {
17
48
  var _useCartContext = (0, _CartProvider.useCartContext)(),
18
49
  alertError = _useCartContext.alertError,
19
50
  apiUrl = _useCartContext.apiUrl,
20
51
  cart = _useCartContext.cart,
52
+ classNameBtnPay = _useCartContext.classNameBtnPay,
21
53
  setActiveTabIndex = _useCartContext.setActiveTabIndex,
22
54
  setInvoiceJson = _useCartContext.setInvoiceJson;
23
- return /*#__PURE__*/(0, _jsxRuntime.jsx)(_invoice.StripePaymentGate, {
24
- engine: cart.stripePaymentEngine,
25
- apiUrl: apiUrl || 'https://api.merchi.co/v6/',
26
- resource: "cart",
27
- resourceId: cart.id,
28
- resourceToken: cart.token || cart.cartToken,
29
- legacy: /*#__PURE__*/(0, _jsxRuntime.jsx)(_LegacyStripeCardForm["default"], {}),
30
- children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_invoice.StripePaymentForm, {
31
- apiUrl: apiUrl || 'https://api.merchi.co/v6/',
55
+ var isTestCheckout = Boolean(cart.isTest);
56
+ var url = apiUrl || 'https://api.merchi.co/v6/';
57
+ var _useState = (0, _react.useState)(false),
58
+ _useState2 = _slicedToArray(_useState, 2),
59
+ testKeyMissing = _useState2[0],
60
+ setTestKeyMissing = _useState2[1];
61
+ var _useState3 = (0, _react.useState)(false),
62
+ _useState4 = _slicedToArray(_useState3, 2),
63
+ loadingTestPayment = _useState4[0],
64
+ setLoadingTestPayment = _useState4[1];
65
+ (0, _react.useEffect)(function () {
66
+ if (!isTestCheckout) {
67
+ setTestKeyMissing(false);
68
+ return;
69
+ }
70
+ (0, _actions.fetchTestPublishableKey)(url).then(function () {
71
+ return setTestKeyMissing(false);
72
+ })["catch"](function () {
73
+ return setTestKeyMissing(true);
74
+ });
75
+ }, [isTestCheckout, url]);
76
+ function doCompleteTestPayment() {
77
+ return _doCompleteTestPayment.apply(this, arguments);
78
+ }
79
+ function _doCompleteTestPayment() {
80
+ _doCompleteTestPayment = _asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee() {
81
+ var invoice, _t;
82
+ return _regenerator().w(function (_context) {
83
+ while (1) switch (_context.p = _context.n) {
84
+ case 0:
85
+ setLoadingTestPayment(true);
86
+ _context.p = 1;
87
+ _context.n = 2;
88
+ return (0, _actions.completeTestPayment)(url, cart);
89
+ case 2:
90
+ invoice = _context.v;
91
+ setInvoiceJson(invoice);
92
+ setActiveTabIndex(_tabs.tabIdPaymentSuccess);
93
+ _context.n = 4;
94
+ break;
95
+ case 3:
96
+ _context.p = 3;
97
+ _t = _context.v;
98
+ alertError(_t.message);
99
+ case 4:
100
+ _context.p = 4;
101
+ setLoadingTestPayment(false);
102
+ return _context.f(4);
103
+ case 5:
104
+ return _context.a(2);
105
+ }
106
+ }, _callee, null, [[1, 3, 4, 5]]);
107
+ }));
108
+ return _doCompleteTestPayment.apply(this, arguments);
109
+ }
110
+ if (isTestCheckout && testKeyMissing) {
111
+ return /*#__PURE__*/(0, _jsxRuntime.jsxs)(_jsxRuntime.Fragment, {
112
+ children: [testCheckoutHint, /*#__PURE__*/(0, _jsxRuntime.jsx)("p", {
113
+ style: {
114
+ fontSize: '13px',
115
+ marginBottom: '12px'
116
+ },
117
+ children: "Stripe test keys are not configured. Complete this as a test order without a card."
118
+ }), /*#__PURE__*/(0, _jsxRuntime.jsx)("button", {
119
+ type: "button",
120
+ className: classNameBtnPay,
121
+ disabled: loadingTestPayment,
122
+ onClick: doCompleteTestPayment,
123
+ children: loadingTestPayment ? 'Completing…' : 'Complete test order'
124
+ })]
125
+ });
126
+ }
127
+ return /*#__PURE__*/(0, _jsxRuntime.jsxs)(_jsxRuntime.Fragment, {
128
+ children: [isTestCheckout && testCheckoutHint, /*#__PURE__*/(0, _jsxRuntime.jsx)(_invoice.StripePaymentGate, {
129
+ engine: isTestCheckout ? 'legacy' : cart.stripePaymentEngine,
130
+ apiUrl: url,
32
131
  resource: "cart",
33
132
  resourceId: cart.id,
34
133
  resourceToken: cart.token || cart.cartToken,
35
- onError: alertError,
36
- onSuccess: function onSuccess(invoice) {
37
- setInvoiceJson(invoice);
38
- setActiveTabIndex(_tabs.tabIdPaymentSuccess);
39
- }
40
- })
134
+ legacy: /*#__PURE__*/(0, _jsxRuntime.jsx)(_LegacyStripeCardForm["default"], {}),
135
+ children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_invoice.StripePaymentForm, {
136
+ apiUrl: url,
137
+ resource: "cart",
138
+ resourceId: cart.id,
139
+ resourceToken: cart.token || cart.cartToken,
140
+ onError: alertError,
141
+ onSuccess: function onSuccess(invoice) {
142
+ setInvoiceJson(invoice);
143
+ setActiveTabIndex(_tabs.tabIdPaymentSuccess);
144
+ }
145
+ })
146
+ })]
41
147
  });
42
148
  }
@@ -1,4 +1,6 @@
1
1
  import { PaymentRequestPaymentMethodEvent } from '@stripe/stripe-js';
2
2
  export declare function stripeInitPromise(apiUrl: string): Promise<any>;
3
+ export declare function fetchTestPublishableKey(apiUrl: string): Promise<any>;
4
+ export declare function completeTestPayment(apiUrl: string, cart: any): Promise<any>;
3
5
  export declare function stripeCardFormSubmit(apiUrl: string, stripe: any, card: any, cart: any): Promise<any>;
4
6
  export declare function stripePaymentButtonSubmit(apiUrl: string, stripe: any, cart: any, paymentMethodEvent: PaymentRequestPaymentMethodEvent): Promise<any>;
@@ -3,6 +3,8 @@
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
+ exports.completeTestPayment = completeTestPayment;
7
+ exports.fetchTestPublishableKey = fetchTestPublishableKey;
6
8
  exports.stripeCardFormSubmit = stripeCardFormSubmit;
7
9
  exports.stripeInitPromise = stripeInitPromise;
8
10
  exports.stripePaymentButtonSubmit = stripePaymentButtonSubmit;
@@ -32,14 +34,112 @@ function _stripeInitPromise() {
32
34
  }));
33
35
  return _stripeInitPromise.apply(this, arguments);
34
36
  }
35
- function createPaymentIntent(_x2, _x3, _x4) {
37
+ function fetchTestPublishableKey(_x2) {
38
+ return _fetchTestPublishableKey.apply(this, arguments);
39
+ }
40
+ function _fetchTestPublishableKey() {
41
+ _fetchTestPublishableKey = _asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee2(apiUrl) {
42
+ var response, data;
43
+ return _regenerator().w(function (_context2) {
44
+ while (1) switch (_context2.n) {
45
+ case 0:
46
+ _context2.n = 1;
47
+ return fetch("".concat(apiUrl, "stripe/test_publishable_key/"), {
48
+ method: 'GET',
49
+ mode: 'cors'
50
+ });
51
+ case 1:
52
+ response = _context2.v;
53
+ if (!(response && typeof response.json === 'function')) {
54
+ _context2.n = 5;
55
+ break;
56
+ }
57
+ if (response.ok) {
58
+ _context2.n = 2;
59
+ break;
60
+ }
61
+ throw new Error('Stripe test keys are not configured');
62
+ case 2:
63
+ _context2.n = 3;
64
+ return response.json();
65
+ case 3:
66
+ data = _context2.v;
67
+ if (!(!data || !data.key)) {
68
+ _context2.n = 4;
69
+ break;
70
+ }
71
+ throw new Error('Stripe test keys are not configured');
72
+ case 4:
73
+ return _context2.a(2, data.key);
74
+ case 5:
75
+ if (!(!response || !response.key)) {
76
+ _context2.n = 6;
77
+ break;
78
+ }
79
+ throw new Error('Stripe test keys are not configured');
80
+ case 6:
81
+ return _context2.a(2, response.key);
82
+ }
83
+ }, _callee2);
84
+ }));
85
+ return _fetchTestPublishableKey.apply(this, arguments);
86
+ }
87
+ function completeTestPayment(_x3, _x4) {
88
+ return _completeTestPayment.apply(this, arguments);
89
+ }
90
+ function _completeTestPayment() {
91
+ _completeTestPayment = _asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee3(apiUrl, cart) {
92
+ var query, response, message, _data, data, _t;
93
+ return _regenerator().w(function (_context3) {
94
+ while (1) switch (_context3.p = _context3.n) {
95
+ case 0:
96
+ query = new URLSearchParams({
97
+ cart_token: cart.token
98
+ }).toString();
99
+ _context3.n = 1;
100
+ return fetch("".concat(apiUrl, "carts/").concat(cart.id, "/complete_test_payment/?").concat(query), {
101
+ method: 'POST',
102
+ mode: 'cors'
103
+ });
104
+ case 1:
105
+ response = _context3.v;
106
+ if (response.ok) {
107
+ _context3.n = 6;
108
+ break;
109
+ }
110
+ message = 'Unable to complete the test order.';
111
+ _context3.p = 2;
112
+ _context3.n = 3;
113
+ return response.json();
114
+ case 3:
115
+ _data = _context3.v;
116
+ message = _data.message || _data.errorMessage || message;
117
+ _context3.n = 5;
118
+ break;
119
+ case 4:
120
+ _context3.p = 4;
121
+ _t = _context3.v;
122
+ case 5:
123
+ throw new Error(message);
124
+ case 6:
125
+ _context3.n = 7;
126
+ return response.json();
127
+ case 7:
128
+ data = _context3.v;
129
+ return _context3.a(2, data.invoice);
130
+ }
131
+ }, _callee3, null, [[2, 4]]);
132
+ }));
133
+ return _completeTestPayment.apply(this, arguments);
134
+ }
135
+ function createPaymentIntent(_x5, _x6, _x7) {
36
136
  return _createPaymentIntent.apply(this, arguments);
37
137
  }
38
138
  function _createPaymentIntent() {
39
- _createPaymentIntent = _asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee2(apiUrl, cart, paymentMethodType) {
139
+ _createPaymentIntent = _asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee4(apiUrl, cart, paymentMethodType) {
40
140
  var id, token, fetchOptions, queryParams, queryString, uri, url, response;
41
- return _regenerator().w(function (_context2) {
42
- while (1) switch (_context2.n) {
141
+ return _regenerator().w(function (_context4) {
142
+ while (1) switch (_context4.n) {
43
143
  case 0:
44
144
  id = cart.id, token = cart.token;
45
145
  fetchOptions = {
@@ -53,33 +153,33 @@ function _createPaymentIntent() {
53
153
  queryString = new URLSearchParams(queryParams).toString();
54
154
  uri = "stripe/payment_intent/cart/".concat(id, "/");
55
155
  url = "".concat(apiUrl).concat(uri, "?").concat(queryString);
56
- _context2.n = 1;
156
+ _context4.n = 1;
57
157
  return fetch(url, fetchOptions);
58
158
  case 1:
59
- response = _context2.v;
159
+ response = _context4.v;
60
160
  if (response.ok) {
61
- _context2.n = 2;
161
+ _context4.n = 2;
62
162
  break;
63
163
  }
64
164
  throw new Error("Failed to create payment intent.");
65
165
  case 2:
66
- _context2.n = 3;
166
+ _context4.n = 3;
67
167
  return response.json();
68
168
  case 3:
69
- return _context2.a(2, _context2.v);
169
+ return _context4.a(2, _context4.v);
70
170
  }
71
- }, _callee2);
171
+ }, _callee4);
72
172
  }));
73
173
  return _createPaymentIntent.apply(this, arguments);
74
174
  }
75
- function checkPaymentIntnetIsComplete(_x5, _x6) {
175
+ function checkPaymentIntnetIsComplete(_x8, _x9) {
76
176
  return _checkPaymentIntnetIsComplete.apply(this, arguments);
77
177
  }
78
178
  function _checkPaymentIntnetIsComplete() {
79
- _checkPaymentIntnetIsComplete = _asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee3(apiUrl, cart) {
179
+ _checkPaymentIntnetIsComplete = _asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee5(apiUrl, cart) {
80
180
  var url, fetchOptions, queryString, response, i;
81
- return _regenerator().w(function (_context3) {
82
- while (1) switch (_context3.n) {
181
+ return _regenerator().w(function (_context5) {
182
+ while (1) switch (_context5.n) {
83
183
  case 0:
84
184
  url = "stripe/payment_intent/cart/complete/".concat(cart.id, "/");
85
185
  fetchOptions = {
@@ -89,112 +189,112 @@ function _checkPaymentIntnetIsComplete() {
89
189
  queryString = new URLSearchParams({
90
190
  cart_token: cart.token
91
191
  }).toString();
92
- _context3.n = 1;
192
+ _context5.n = 1;
93
193
  return fetch("".concat(apiUrl).concat(url, "?").concat(queryString), fetchOptions);
94
194
  case 1:
95
- response = _context3.v;
195
+ response = _context5.v;
96
196
  if (response.ok) {
97
- _context3.n = 2;
197
+ _context5.n = 2;
98
198
  break;
99
199
  }
100
200
  throw new Error("Failed to check if payment intent is complete.");
101
201
  case 2:
102
- _context3.n = 3;
202
+ _context5.n = 3;
103
203
  return response.json();
104
204
  case 3:
105
- i = _context3.v;
106
- return _context3.a(2, i.invoice);
205
+ i = _context5.v;
206
+ return _context5.a(2, i.invoice);
107
207
  }
108
- }, _callee3);
208
+ }, _callee5);
109
209
  }));
110
210
  return _checkPaymentIntnetIsComplete.apply(this, arguments);
111
211
  }
112
- function stripeCardFormSubmit(_x7, _x8, _x9, _x0) {
212
+ function stripeCardFormSubmit(_x0, _x1, _x10, _x11) {
113
213
  return _stripeCardFormSubmit.apply(this, arguments);
114
214
  }
115
215
  function _stripeCardFormSubmit() {
116
- _stripeCardFormSubmit = _asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee4(apiUrl, stripe, card, cart) {
117
- var intent, stripePayment, _t;
118
- return _regenerator().w(function (_context4) {
119
- while (1) switch (_context4.p = _context4.n) {
216
+ _stripeCardFormSubmit = _asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee6(apiUrl, stripe, card, cart) {
217
+ var intent, stripePayment, _t2;
218
+ return _regenerator().w(function (_context6) {
219
+ while (1) switch (_context6.p = _context6.n) {
120
220
  case 0:
121
- _context4.p = 0;
122
- _context4.n = 1;
221
+ _context6.p = 0;
222
+ _context6.n = 1;
123
223
  return createPaymentIntent(apiUrl, cart);
124
224
  case 1:
125
- intent = _context4.v;
126
- _context4.n = 2;
225
+ intent = _context6.v;
226
+ _context6.n = 2;
127
227
  return stripe.confirmCardPayment(intent.stripeClientSecret, {
128
228
  payment_method: {
129
229
  card: card
130
230
  }
131
231
  });
132
232
  case 2:
133
- stripePayment = _context4.v;
233
+ stripePayment = _context6.v;
134
234
  if (!stripePayment.error) {
135
- _context4.n = 3;
235
+ _context6.n = 3;
136
236
  break;
137
237
  }
138
238
  throw new Error(stripePayment.error.message || 'Stripe connect unknown error');
139
239
  case 3:
140
- _context4.n = 4;
240
+ _context6.n = 4;
141
241
  return checkPaymentIntnetIsComplete(apiUrl, cart);
142
242
  case 4:
143
- return _context4.a(2, _context4.v);
243
+ return _context6.a(2, _context6.v);
144
244
  case 5:
145
- _context4.p = 5;
146
- _t = _context4.v;
147
- throw _t;
245
+ _context6.p = 5;
246
+ _t2 = _context6.v;
247
+ throw _t2;
148
248
  case 6:
149
- return _context4.a(2);
249
+ return _context6.a(2);
150
250
  }
151
- }, _callee4, null, [[0, 5]]);
251
+ }, _callee6, null, [[0, 5]]);
152
252
  }));
153
253
  return _stripeCardFormSubmit.apply(this, arguments);
154
254
  }
155
- function stripePaymentButtonSubmit(_x1, _x10, _x11, _x12) {
255
+ function stripePaymentButtonSubmit(_x12, _x13, _x14, _x15) {
156
256
  return _stripePaymentButtonSubmit.apply(this, arguments);
157
257
  }
158
258
  function _stripePaymentButtonSubmit() {
159
- _stripePaymentButtonSubmit = _asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee5(apiUrl, stripe, cart, paymentMethodEvent) {
160
- var complete, paymentMethod, intent, stripePayment, _t2;
161
- return _regenerator().w(function (_context5) {
162
- while (1) switch (_context5.p = _context5.n) {
259
+ _stripePaymentButtonSubmit = _asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee7(apiUrl, stripe, cart, paymentMethodEvent) {
260
+ var complete, paymentMethod, intent, stripePayment, _t3;
261
+ return _regenerator().w(function (_context7) {
262
+ while (1) switch (_context7.p = _context7.n) {
163
263
  case 0:
164
264
  complete = paymentMethodEvent.complete, paymentMethod = paymentMethodEvent.paymentMethod;
165
- _context5.p = 1;
166
- _context5.n = 2;
265
+ _context7.p = 1;
266
+ _context7.n = 2;
167
267
  return createPaymentIntent(apiUrl, cart);
168
268
  case 2:
169
- intent = _context5.v;
170
- _context5.n = 3;
269
+ intent = _context7.v;
270
+ _context7.n = 3;
171
271
  return stripe.confirmCardPayment(intent.stripeClientSecret, {
172
272
  payment_method: paymentMethod.id
173
273
  }, {
174
274
  handleActions: false
175
275
  });
176
276
  case 3:
177
- stripePayment = _context5.v;
277
+ stripePayment = _context7.v;
178
278
  if (!stripePayment.error) {
179
- _context5.n = 4;
279
+ _context7.n = 4;
180
280
  break;
181
281
  }
182
282
  throw new Error(stripePayment.error.message || 'Stripe unknown error');
183
283
  case 4:
184
284
  complete('success');
185
- _context5.n = 5;
285
+ _context7.n = 5;
186
286
  return checkPaymentIntnetIsComplete(apiUrl, cart);
187
287
  case 5:
188
- return _context5.a(2, _context5.v);
288
+ return _context7.a(2, _context7.v);
189
289
  case 6:
190
- _context5.p = 6;
191
- _t2 = _context5.v;
290
+ _context7.p = 6;
291
+ _t3 = _context7.v;
192
292
  complete('fail');
193
- throw _t2;
293
+ throw _t3;
194
294
  case 7:
195
- return _context5.a(2);
295
+ return _context7.a(2);
196
296
  }
197
- }, _callee5, null, [[1, 6]]);
297
+ }, _callee7, null, [[1, 6]]);
198
298
  }));
199
299
  return _stripePaymentButtonSubmit.apply(this, arguments);
200
300
  }
@@ -0,0 +1 @@
1
+ export {};
@@ -1,4 +1,4 @@
1
1
  export declare function getCookie(name: string, defaultValue: any): Promise<any>;
2
- export declare function getCartCookie(domainId: number | string): Promise<string[]>;
3
- export declare function getCartCookieToken(domainId: number | string): Promise<string>;
4
- export declare const setCartCookie: (storeId: number, cart: any, domain?: any) => Promise<void>;
2
+ export declare function getCartCookie(domainId: number | string, isTest?: boolean): Promise<string[]>;
3
+ export declare function getCartCookieToken(domainId: number | string, isTest?: boolean): Promise<string>;
4
+ export declare const setCartCookie: (storeId: number, cart: any, domain?: any, isTest?: boolean) => Promise<void>;
@@ -8,6 +8,7 @@ exports.getCartCookieToken = getCartCookieToken;
8
8
  exports.getCookie = getCookie;
9
9
  exports.setCartCookie = void 0;
10
10
  var _browserOrNode = require("browser-or-node");
11
+ var _test_checkout = require("./test_checkout");
11
12
  function _regenerator() { /*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/babel/babel/blob/main/packages/babel-helpers/LICENSE */ var e, t, r = "function" == typeof Symbol ? Symbol : {}, n = r.iterator || "@@iterator", o = r.toStringTag || "@@toStringTag"; function i(r, n, o, i) { var c = n && n.prototype instanceof Generator ? n : Generator, u = Object.create(c.prototype); return _regeneratorDefine2(u, "_invoke", function (r, n, o) { var i, c, u, f = 0, p = o || [], y = !1, G = { p: 0, n: 0, v: e, a: d, f: d.bind(e, 4), d: function d(t, r) { return i = t, c = 0, u = e, G.n = r, a; } }; function d(r, n) { for (c = r, u = n, t = 0; !y && f && !o && t < p.length; t++) { var o, i = p[t], d = G.p, l = i[2]; r > 3 ? (o = l === n) && (u = i[(c = i[4]) ? 5 : (c = 3, 3)], i[4] = i[5] = e) : i[0] <= d && ((o = r < 2 && d < i[1]) ? (c = 0, G.v = n, G.n = i[1]) : d < l && (o = r < 3 || i[0] > n || n > l) && (i[4] = r, i[5] = n, G.n = l, c = 0)); } if (o || r > 1) return a; throw y = !0, n; } return function (o, p, l) { if (f > 1) throw TypeError("Generator is already running"); for (y && 1 === p && d(p, l), c = p, u = l; (t = c < 2 ? e : u) || !y;) { i || (c ? c < 3 ? (c > 1 && (G.n = -1), d(c, u)) : G.n = u : G.v = u); try { if (f = 2, i) { if (c || (o = "next"), t = i[o]) { if (!(t = t.call(i, u))) throw TypeError("iterator result is not an object"); if (!t.done) return t; u = t.value, c < 2 && (c = 0); } else 1 === c && (t = i["return"]) && t.call(i), c < 2 && (u = TypeError("The iterator does not provide a '" + o + "' method"), c = 1); i = e; } else if ((t = (y = G.n < 0) ? u : r.call(n, G)) !== a) break; } catch (t) { i = e, c = 1, u = t; } finally { f = 1; } } return { value: t, done: y }; }; }(r, o, i), !0), u; } var a = {}; function Generator() {} function GeneratorFunction() {} function GeneratorFunctionPrototype() {} t = Object.getPrototypeOf; var c = [][n] ? t(t([][n]())) : (_regeneratorDefine2(t = {}, n, function () { return this; }), t), u = GeneratorFunctionPrototype.prototype = Generator.prototype = Object.create(c); function f(e) { return Object.setPrototypeOf ? Object.setPrototypeOf(e, GeneratorFunctionPrototype) : (e.__proto__ = GeneratorFunctionPrototype, _regeneratorDefine2(e, o, "GeneratorFunction")), e.prototype = Object.create(u), e; } return GeneratorFunction.prototype = GeneratorFunctionPrototype, _regeneratorDefine2(u, "constructor", GeneratorFunctionPrototype), _regeneratorDefine2(GeneratorFunctionPrototype, "constructor", GeneratorFunction), GeneratorFunction.displayName = "GeneratorFunction", _regeneratorDefine2(GeneratorFunctionPrototype, o, "GeneratorFunction"), _regeneratorDefine2(u), _regeneratorDefine2(u, o, "Generator"), _regeneratorDefine2(u, n, function () { return this; }), _regeneratorDefine2(u, "toString", function () { return "[object Generator]"; }), (_regenerator = function _regenerator() { return { w: i, m: f }; })(); }
12
13
  function _regeneratorDefine2(e, r, n, t) { var i = Object.defineProperty; try { i({}, "", {}); } catch (e) { i = 0; } _regeneratorDefine2 = function _regeneratorDefine(e, r, n, t) { function o(r, n) { _regeneratorDefine2(e, r, function (e) { return this._invoke(r, n, e); }); } r ? i ? i(e, r, { value: n, enumerable: !t, configurable: !t, writable: !t }) : e[r] = n : (o("next", 0), o("throw", 1), o("return", 2)); }, _regeneratorDefine2(e, r, n, t); }
13
14
  function asyncGeneratorStep(n, t, e, r, o, a, c) { try { var i = n[a](c), u = i.value; } catch (n) { return void e(n); } i.done ? t(u) : Promise.resolve(u).then(r, o); }
@@ -61,17 +62,18 @@ function _getCookie() {
61
62
  }));
62
63
  return _getCookie.apply(this, arguments);
63
64
  }
64
- function getCartCookie(_x3) {
65
+ function getCartCookie(_x3, _x4) {
65
66
  return _getCartCookie.apply(this, arguments);
66
67
  }
67
68
  function _getCartCookie() {
68
- _getCartCookie = _asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee3(domainId) {
69
- var idAndToken;
69
+ _getCartCookie = _asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee3(domainId, isTest) {
70
+ var test, idAndToken;
70
71
  return _regenerator().w(function (_context3) {
71
72
  while (1) switch (_context3.n) {
72
73
  case 0:
74
+ test = isTest !== null && isTest !== void 0 ? isTest : (0, _test_checkout.readTestCheckoutFlag)();
73
75
  _context3.n = 1;
74
- return getCookie("cart-".concat(domainId), null);
76
+ return getCookie((0, _test_checkout.cartCookieName)(domainId, test), null);
75
77
  case 1:
76
78
  idAndToken = _context3.v;
77
79
  return _context3.a(2, idAndToken ? idAndToken.split(',') : null);
@@ -80,11 +82,11 @@ function _getCartCookie() {
80
82
  }));
81
83
  return _getCartCookie.apply(this, arguments);
82
84
  }
83
- function getCartCookieToken(_x4) {
85
+ function getCartCookieToken(_x5, _x6) {
84
86
  return _getCartCookieToken.apply(this, arguments);
85
87
  }
86
88
  function _getCartCookieToken() {
87
- _getCartCookieToken = _asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee4(domainId) {
89
+ _getCartCookieToken = _asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee4(domainId, isTest) {
88
90
  var cartIdAndToken, _t;
89
91
  return _regenerator().w(function (_context4) {
90
92
  while (1) switch (_context4.n) {
@@ -94,7 +96,7 @@ function _getCartCookieToken() {
94
96
  break;
95
97
  }
96
98
  _context4.n = 1;
97
- return getCartCookie(Number(domainId));
99
+ return getCartCookie(Number(domainId), isTest);
98
100
  case 1:
99
101
  _t = _context4.v;
100
102
  _context4.n = 3;
@@ -109,7 +111,7 @@ function _getCartCookieToken() {
109
111
  }));
110
112
  return _getCartCookieToken.apply(this, arguments);
111
113
  }
112
- function setSessionCookie(_x5, _x6, _x7) {
114
+ function setSessionCookie(_x7, _x8, _x9) {
113
115
  return _setSessionCookie.apply(this, arguments);
114
116
  }
115
117
  function _setSessionCookie() {
@@ -146,20 +148,21 @@ function _setSessionCookie() {
146
148
  return _setSessionCookie.apply(this, arguments);
147
149
  }
148
150
  var setCartCookie = exports.setCartCookie = /*#__PURE__*/function () {
149
- var _ref = _asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee(storeId, cart, domain) {
150
- var cookieValue;
151
+ var _ref = _asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee(storeId, cart, domain, isTest) {
152
+ var test, cookieValue;
151
153
  return _regenerator().w(function (_context) {
152
154
  while (1) switch (_context.n) {
153
155
  case 0:
156
+ test = isTest !== null && isTest !== void 0 ? isTest : cart ? Boolean(cart.isTest) : (0, _test_checkout.readTestCheckoutFlag)();
154
157
  cookieValue = cart ? cart.id + ',' + cart.token : '';
155
158
  _context.n = 1;
156
- return setSessionCookie('cart-' + String(storeId), cookieValue, domain);
159
+ return setSessionCookie((0, _test_checkout.cartCookieName)(storeId, test), cookieValue, domain);
157
160
  case 1:
158
161
  return _context.a(2);
159
162
  }
160
163
  }, _callee);
161
164
  }));
162
- return function setCartCookie(_x8, _x9, _x0) {
165
+ return function setCartCookie(_x0, _x1, _x10, _x11) {
163
166
  return _ref.apply(this, arguments);
164
167
  };
165
168
  }();
@@ -6,9 +6,11 @@ export * from './currency';
6
6
  export * from './helpers';
7
7
  export * from './invoice';
8
8
  export * from './job';
9
+ export * from './job_source';
9
10
  export * from './local_storage';
10
11
  export * from './product';
11
12
  export * from './shipment';
12
13
  export * from './tabs';
14
+ export * from './test_checkout';
13
15
  export * from './user';
14
16
  export * from './variations';
@@ -91,6 +91,17 @@ Object.keys(_job).forEach(function (key) {
91
91
  }
92
92
  });
93
93
  });
94
+ var _job_source = require("./job_source");
95
+ Object.keys(_job_source).forEach(function (key) {
96
+ if (key === "default" || key === "__esModule") return;
97
+ if (key in exports && exports[key] === _job_source[key]) return;
98
+ Object.defineProperty(exports, key, {
99
+ enumerable: true,
100
+ get: function get() {
101
+ return _job_source[key];
102
+ }
103
+ });
104
+ });
94
105
  var _local_storage = require("./local_storage");
95
106
  Object.keys(_local_storage).forEach(function (key) {
96
107
  if (key === "default" || key === "__esModule") return;
@@ -135,6 +146,17 @@ Object.keys(_tabs).forEach(function (key) {
135
146
  }
136
147
  });
137
148
  });
149
+ var _test_checkout = require("./test_checkout");
150
+ Object.keys(_test_checkout).forEach(function (key) {
151
+ if (key === "default" || key === "__esModule") return;
152
+ if (key in exports && exports[key] === _test_checkout[key]) return;
153
+ Object.defineProperty(exports, key, {
154
+ enumerable: true,
155
+ get: function get() {
156
+ return _test_checkout[key];
157
+ }
158
+ });
159
+ });
138
160
  var _user = require("./user");
139
161
  Object.keys(_user).forEach(function (key) {
140
162
  if (key === "default" || key === "__esModule") return;