@rebilly/instruments 3.0.0-beta.0 → 3.1.2-beta.0

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 (169) hide show
  1. package/dist/index.js +88 -107
  2. package/dist/index.min.js +88 -0
  3. package/package.json +17 -6
  4. package/rollup.config.js +84 -0
  5. package/src/functions/mount/fetch-data.js +13 -1
  6. package/src/functions/mount/index.js +6 -42
  7. package/src/functions/mount/setup-framepay-theme.js +2 -2
  8. package/src/functions/mount/setup-options.js +3 -0
  9. package/src/functions/mount/setup-user-flow.js +49 -0
  10. package/src/functions/purchase.js +1 -1
  11. package/src/functions/setup.js +1 -1
  12. package/src/functions/show.spec.js +1 -1
  13. package/src/i18n/en.json +3 -0
  14. package/src/i18n/index.js +1 -1
  15. package/src/index.js +1 -61
  16. package/src/instance.js +65 -0
  17. package/src/{index.spec.js → instance.spec.js} +2 -1
  18. package/src/loader/index.js +21 -1
  19. package/src/storefront/models/ready-to-pay-model.js +13 -2
  20. package/src/storefront/plans.js +8 -4
  21. package/src/storefront/plans.spec.js +8 -2
  22. package/src/storefront/products.js +8 -4
  23. package/src/storefront/products.spec.js +8 -2
  24. package/src/storefront/ready-to-pay.js +5 -4
  25. package/src/style/base/__snapshots__/theme.spec.js.snap +34 -2
  26. package/src/style/base/default-theme.js +106 -3
  27. package/src/style/components/button.js +17 -1
  28. package/src/style/components/forms/label.js +0 -5
  29. package/src/style/components/loader.js +2 -1
  30. package/src/style/payment-instruments/payment-card.js +2 -1
  31. package/src/style/utils/remove-empty-null.js +9 -9
  32. package/src/style/vendor/postmate.js +13 -0
  33. package/src/style/views/confirmation.js +2 -1
  34. package/src/views/common/iframe/base-iframe.js +2 -0
  35. package/src/views/common/iframe/event-listeners.js +10 -0
  36. package/src/views/common/iframe/method-iframe.js +3 -1
  37. package/src/views/confirmation.js +1 -0
  38. package/src/views/method-selector/express-methods/{google-pay.js → index.js} +3 -2
  39. package/src/views/method-selector/mount-express-methods.js +6 -18
  40. package/src/views/result.js +1 -0
  41. package/tests/mocks/rebilly-instruments-mock.js +2 -2
  42. package/dist/events/base-event.js +0 -66
  43. package/dist/events/events.spec.js +0 -18
  44. package/dist/events/index.js +0 -22
  45. package/dist/functions/destroy.js +0 -34
  46. package/dist/functions/destroy.spec.js +0 -69
  47. package/dist/functions/mount/fetch-data.js +0 -187
  48. package/dist/functions/mount/fetch-data.spec.js +0 -189
  49. package/dist/functions/mount/index.js +0 -218
  50. package/dist/functions/mount/mount.spec.js +0 -64
  51. package/dist/functions/mount/setup-element.js +0 -40
  52. package/dist/functions/mount/setup-framepay-theme.js +0 -95
  53. package/dist/functions/mount/setup-framepay.js +0 -46
  54. package/dist/functions/mount/setup-i18n.js +0 -33
  55. package/dist/functions/mount/setup-options.js +0 -99
  56. package/dist/functions/mount/setup-options.spec.js +0 -66
  57. package/dist/functions/mount/setup-storefront.js +0 -34
  58. package/dist/functions/mount/setup-styles.js +0 -43
  59. package/dist/functions/on.js +0 -40
  60. package/dist/functions/on.spec.js +0 -55
  61. package/dist/functions/purchase.js +0 -158
  62. package/dist/functions/purchase.spec.js +0 -74
  63. package/dist/functions/setup.js +0 -85
  64. package/dist/functions/setup.spec.js +0 -87
  65. package/dist/functions/show.js +0 -55
  66. package/dist/functions/show.spec.js +0 -61
  67. package/dist/functions/update.js +0 -74
  68. package/dist/functions/update.spec.js +0 -86
  69. package/dist/i18n/en.json +0 -22
  70. package/dist/i18n/es.json +0 -22
  71. package/dist/i18n/i18n.spec.js +0 -22
  72. package/dist/i18n/index.js +0 -72
  73. package/dist/index.spec.js +0 -35
  74. package/dist/loader/index.js +0 -94
  75. package/dist/loader/loader.spec.js +0 -69
  76. package/dist/storefront/index.js +0 -73
  77. package/dist/storefront/invoices.js +0 -27
  78. package/dist/storefront/models/base-model.js +0 -18
  79. package/dist/storefront/models/invoice-model.js +0 -14
  80. package/dist/storefront/models/plan-model.js +0 -14
  81. package/dist/storefront/models/product-model.js +0 -14
  82. package/dist/storefront/models/ready-to-pay-model.js +0 -46
  83. package/dist/storefront/models/summary-model.js +0 -79
  84. package/dist/storefront/models/transaction-model.js +0 -31
  85. package/dist/storefront/payment-instruments.js +0 -47
  86. package/dist/storefront/payment-instruments.spec.js +0 -55
  87. package/dist/storefront/plans.js +0 -37
  88. package/dist/storefront/plans.spec.js +0 -64
  89. package/dist/storefront/products.js +0 -40
  90. package/dist/storefront/products.spec.js +0 -65
  91. package/dist/storefront/purchase.js +0 -43
  92. package/dist/storefront/purchase.spec.js +0 -48
  93. package/dist/storefront/ready-to-pay.js +0 -58
  94. package/dist/storefront/ready-to-pay.spec.js +0 -69
  95. package/dist/storefront/storefront.spec.js +0 -15
  96. package/dist/storefront/summary.js +0 -55
  97. package/dist/storefront/summary.spec.js +0 -124
  98. package/dist/storefront/transactions.js +0 -27
  99. package/dist/style/base/__snapshots__/theme.spec.js.snap +0 -195
  100. package/dist/style/base/default-theme.js +0 -699
  101. package/dist/style/base/index.js +0 -104
  102. package/dist/style/base/theme.js +0 -41
  103. package/dist/style/base/theme.spec.js +0 -19
  104. package/dist/style/browserslist.js +0 -8
  105. package/dist/style/components/address.js +0 -64
  106. package/dist/style/components/button.js +0 -71
  107. package/dist/style/components/divider.js +0 -48
  108. package/dist/style/components/forms/checkbox.js +0 -86
  109. package/dist/style/components/forms/field.js +0 -65
  110. package/dist/style/components/forms/form.js +0 -28
  111. package/dist/style/components/forms/input.js +0 -86
  112. package/dist/style/components/forms/label.js +0 -69
  113. package/dist/style/components/forms/select.js +0 -95
  114. package/dist/style/components/forms/validation.js +0 -81
  115. package/dist/style/components/icons.js +0 -22
  116. package/dist/style/components/index.js +0 -57
  117. package/dist/style/components/loader.js +0 -50
  118. package/dist/style/components/methods.js +0 -108
  119. package/dist/style/components/overlay.js +0 -33
  120. package/dist/style/helpers/index.js +0 -59
  121. package/dist/style/index.js +0 -50
  122. package/dist/style/payment-instruments/content.js +0 -17
  123. package/dist/style/payment-instruments/index.js +0 -20
  124. package/dist/style/payment-instruments/payment-card.js +0 -35
  125. package/dist/style/utils/border.js +0 -47
  126. package/dist/style/utils/color-values.js +0 -58
  127. package/dist/style/utils/remove-empty-null.js +0 -20
  128. package/dist/style/vendor/framepay.js +0 -37
  129. package/dist/style/vendor/postmate.js +0 -17
  130. package/dist/style/views/confirmation.js +0 -85
  131. package/dist/style/views/index.js +0 -29
  132. package/dist/style/views/method-selector.js +0 -20
  133. package/dist/style/views/modal.js +0 -93
  134. package/dist/style/views/result.js +0 -61
  135. package/dist/style/views/summary.js +0 -127
  136. package/dist/utils/add-dom-element.js +0 -26
  137. package/dist/utils/format-currency.js +0 -15
  138. package/dist/utils/has-valid-css-selector.js +0 -11
  139. package/dist/utils/index.js +0 -55
  140. package/dist/utils/is-dom-element.js +0 -10
  141. package/dist/utils/process-property-as-dom-element.js +0 -38
  142. package/dist/utils/sleep.js +0 -10
  143. package/dist/views/__snapshots__/summary.spec.js.snap +0 -246
  144. package/dist/views/common/iframe/base-iframe.js +0 -59
  145. package/dist/views/common/iframe/event-listeners.js +0 -50
  146. package/dist/views/common/iframe/index.js +0 -19
  147. package/dist/views/common/iframe/method-iframe.js +0 -33
  148. package/dist/views/common/iframe/modal-iframe.js +0 -84
  149. package/dist/views/common/iframe/view-iframe.js +0 -31
  150. package/dist/views/common/render-utilities.js +0 -11
  151. package/dist/views/confirmation.js +0 -92
  152. package/dist/views/method-selector/__snapshots__/method-selector.spec.js.snap +0 -3
  153. package/dist/views/method-selector/express-methods/apple-pay.js +0 -92
  154. package/dist/views/method-selector/express-methods/google-pay.js +0 -31
  155. package/dist/views/method-selector/express-methods/paypal.js +0 -19
  156. package/dist/views/method-selector/generate-digital-wallet.js +0 -68
  157. package/dist/views/method-selector/generate-digital-wallet.spec.js +0 -135
  158. package/dist/views/method-selector/get-method-data.js +0 -25
  159. package/dist/views/method-selector/get-payment-methods.js +0 -66
  160. package/dist/views/method-selector/get-payment-methods.spec.js +0 -46
  161. package/dist/views/method-selector/index.js +0 -122
  162. package/dist/views/method-selector/method-selector.spec.js +0 -124
  163. package/dist/views/method-selector/mount-express-methods.js +0 -69
  164. package/dist/views/method-selector/mount-methods.js +0 -74
  165. package/dist/views/modal.js +0 -88
  166. package/dist/views/result.js +0 -40
  167. package/dist/views/summary.js +0 -215
  168. package/dist/views/summary.spec.js +0 -134
  169. package/src/views/method-selector/express-methods/paypal.js +0 -7
package/dist/i18n/en.json DELETED
@@ -1,22 +0,0 @@
1
- {
2
- "en": {
3
- "summary": {
4
- "subTotal": "Sub Total",
5
- "discounts": "Discounts",
6
- "taxes": "Taxes",
7
- "shipping": "Shipping",
8
- "total": "Total"
9
- },
10
- "form": {
11
- "expressCheckout": "Express checkout",
12
- "or": "Or",
13
- "popupOverlayText": "Click here to show popup window",
14
- "error": {
15
- "noPaymentMethods": "No payment methods available for this transaction, please contact support."
16
- }
17
- },
18
- "paymentMethods": {
19
- "payment-card": "Payment card"
20
- }
21
- }
22
- }
package/dist/i18n/es.json DELETED
@@ -1,22 +0,0 @@
1
- {
2
- "es": {
3
- "summary": {
4
- "subTotal": "Sub Total",
5
- "discounts": "Descuentos",
6
- "taxes": "Impuestos",
7
- "shipping": "Envío",
8
- "total": "Total"
9
- },
10
- "form": {
11
- "expressCheckout": "Chequeo rápido",
12
- "or": "O pague con",
13
- "popupOverlayText": "Haga clic aquí para mostrar la ventana emergente",
14
- "error": {
15
- "noPaymentMethods": "No hay métodos de pago disponibles para esta transacción, por favor, póngase en contacto con el servicio de asistencia."
16
- }
17
- },
18
- "paymentMethods": {
19
- "payment-card": "Tarjeta de crédito"
20
- }
21
- }
22
- }
@@ -1,22 +0,0 @@
1
- "use strict";
2
-
3
- var _index = require("./index");
4
-
5
- describe('i18n Class', () => {
6
- const canTranslate = document.createElement('div');
7
- canTranslate.innerHTML = 'Discounts';
8
- canTranslate.setAttribute('data-rebilly-i18n', 'summary.discounts');
9
- const canNotTranslate = document.createElement('div');
10
- canNotTranslate.innerHTML = 'Untouched';
11
- canNotTranslate.setAttribute('data-rebilly-i18n', 'does.not.exist');
12
- document.body.append(canTranslate);
13
- document.body.append(canNotTranslate);
14
- it('can translate element with proper data attribute and skip wrong translation path or languages', () => {
15
- const translate = new _index.Translate();
16
- translate.init('es-US');
17
- translate.translateItems();
18
- const [translated, untouched] = document.querySelectorAll('[data-rebilly-i18n]');
19
- expect(translated.innerHTML).toEqual('Descuentos');
20
- expect(untouched.innerHTML).toEqual('Untouched');
21
- });
22
- });
@@ -1,72 +0,0 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.Translate = void 0;
7
-
8
- var _lodash = _interopRequireDefault(require("lodash.merge"));
9
-
10
- var _en = _interopRequireDefault(require("./en.json"));
11
-
12
- var _es = _interopRequireDefault(require("./es.json"));
13
-
14
- function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
15
-
16
- class Translate {
17
- constructor() {
18
- this.locale = '';
19
- this.items = [];
20
- this.languages = {};
21
- }
22
-
23
- init(locale, messages) {
24
- this.items = document.querySelectorAll('[data-rebilly-i18n]');
25
- this.locale = this.getLocale(locale);
26
- this.languages = (0, _lodash.default)({ ..._en.default,
27
- ..._es.default
28
- }, messages);
29
- }
30
-
31
- translateItems() {
32
- this.items = document.querySelectorAll('[data-rebilly-i18n]');
33
-
34
- if (this.locale in this.languages) {
35
- return this.items.forEach(item => {
36
- const translate = this.getTranslation(this.languages[this.locale], item.dataset.rebillyI18n);
37
-
38
- if (translate) {
39
- item.innerHTML = translate;
40
- }
41
- });
42
- }
43
-
44
- return false;
45
- }
46
-
47
- updateTranslationsToNewLocale(newLocale) {
48
- this.locale = newLocale;
49
- this.translateItems();
50
- }
51
-
52
- getLocale(locale = this.locale) {
53
- if (!locale.includes('-') || locale in this.languages) {
54
- return locale;
55
- }
56
-
57
- locale = locale.replace(/[-._]\w+$/gi, '');
58
- return this.getLocale(locale);
59
- }
60
-
61
- translateItem(item) {
62
- const locale = this.getLocale();
63
- return this.getTranslation(this.languages[locale], item.dataset.rebillyI18n);
64
- }
65
-
66
- getTranslation(lan = this.locale, prop) {
67
- return prop.split('.').reduce((acc, val) => acc === null || acc === void 0 ? void 0 : acc[val], lan);
68
- }
69
-
70
- }
71
-
72
- exports.Translate = Translate;
@@ -1,35 +0,0 @@
1
- "use strict";
2
-
3
- var _index = _interopRequireWildcard(require("./index"));
4
-
5
- var _asyncUtilities = require("../tests/async-utilities");
6
-
7
- function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function (nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
8
-
9
- function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
10
-
11
- describe('RebillyInstruments instance', () => {
12
- let rebillyInstruments;
13
- beforeEach(() => {
14
- rebillyInstruments = _index.default;
15
- });
16
- it('should have default export as instance of class', () => {
17
- expect(_index.default).toBeInstanceOf(_index.RebillyInstrumentsInstance);
18
- });
19
- it('should be mountable', async () => {
20
- jest.spyOn(rebillyInstruments, 'mount');
21
- document.body.innerHTML = `
22
- <div class="form-selector"></div>
23
- <div class="summary-selector"></div>
24
- `;
25
- const options = {
26
- form: '.form-selector',
27
- summary: '.summary-selector',
28
- items: []
29
- };
30
- await rebillyInstruments.mount(options);
31
- expect(rebillyInstruments.mount).toHaveBeenCalledTimes(1);
32
- expect(rebillyInstruments.mount).toHaveBeenCalledWith(options);
33
- await (0, _asyncUtilities.avoidUnhandledPromises)();
34
- });
35
- });
@@ -1,94 +0,0 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.Loader = void 0;
7
-
8
- var _isDomElement = _interopRequireDefault(require("../utils/is-dom-element"));
9
-
10
- function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
11
-
12
- class Loader {
13
- constructor() {
14
- this.summary = [];
15
- this.form = [];
16
- this.modal = [];
17
- this.DOM = {
18
- loading: `
19
- <div class="rebilly-instruments-loader is-active">
20
- <div class="rebilly-instruments-loader-spinner"></div>
21
- </div>
22
- `
23
- };
24
- }
25
-
26
- addDOMElement({
27
- section = 'form',
28
- el = null
29
- } = {}) {
30
- if ((0, _isDomElement.default)(el)) {
31
- el.style.position = 'relative';
32
- this.DOM[section] = el;
33
- }
34
- }
35
-
36
- startLoading({
37
- section = 'form',
38
- id = ''
39
- } = {}) {
40
- var _this$DOM;
41
-
42
- const minHeight = '200px';
43
- this[section].push(id);
44
-
45
- if ((_this$DOM = this.DOM) !== null && _this$DOM !== void 0 && _this$DOM[section]) {
46
- if (!this.DOM[section].querySelector('.rebilly-instruments-loader')) {
47
- this.DOM[section].innerHTML = this.DOM.loading;
48
- } else {
49
- this.DOM[section].querySelector('.rebilly-instruments-loader').classList.add('is-active');
50
- }
51
-
52
- this.DOM[section].style.minHeight = minHeight;
53
- }
54
- }
55
-
56
- stopLoading({
57
- section = 'form',
58
- id = ''
59
- } = {}) {
60
- const idIndex = this[section].indexOf(id);
61
-
62
- if (idIndex !== -1) {
63
- this[section].splice(idIndex, 1);
64
- }
65
-
66
- if (!this[section].length && this.DOM[section].querySelector('.rebilly-instruments-loader')) {
67
- this.DOM[section].querySelector('.rebilly-instruments-loader').classList.remove('is-active');
68
- this.DOM[section].style.minHeight = '';
69
- }
70
- }
71
-
72
- clearAll() {
73
- this.form.forEach(id => {
74
- this.stopLoading({
75
- id
76
- });
77
- });
78
- this.summary.forEach(id => {
79
- this.stopLoading({
80
- section: 'summary',
81
- id
82
- });
83
- });
84
- this.modal.forEach(id => {
85
- this.stopLoading({
86
- section: 'modal',
87
- id
88
- });
89
- });
90
- }
91
-
92
- }
93
-
94
- exports.Loader = Loader;
@@ -1,69 +0,0 @@
1
- "use strict";
2
-
3
- var _index = require("./index");
4
-
5
- describe('Loader Class', () => {
6
- let loader;
7
- beforeEach(() => {
8
- loader = new _index.Loader();
9
- document.body.innerHTML = `
10
- <div class="form-selector"></div>
11
- <div class="summary-selector"></div>
12
- `;
13
- loader.addDOMElement({
14
- el: document.querySelector('.form-selector')
15
- });
16
- loader.addDOMElement({
17
- section: 'summary',
18
- el: document.querySelector('.summary-selector')
19
- });
20
- });
21
- it('manage state of loading ids', () => {
22
- loader.startLoading({
23
- id: 'loadForm'
24
- });
25
- loader.startLoading({
26
- id: 'updateForm'
27
- }); // Start loading state
28
-
29
- loader.startLoading({
30
- section: 'summary',
31
- id: 'loadSummary'
32
- });
33
- loader.startLoading({
34
- section: 'summary',
35
- id: 'updateSummary'
36
- }); // Stop one loading state
37
-
38
- loader.stopLoading({
39
- id: 'loadForm'
40
- });
41
- expect(loader.form.length).toEqual(1);
42
- expect(loader.summary.length).toEqual(2);
43
- });
44
- it('adds the loader HTML on element and removes the active class when stoped', () => {
45
- loader.startLoading({
46
- id: 'loadForm'
47
- });
48
- expect(loader.DOM.form.innerHTML).toMatch('rebilly-instruments-loader');
49
- expect(loader.DOM.form.querySelector('.rebilly-instruments-loader').classList.contains('is-active')).toEqual(true);
50
- loader.stopLoading({
51
- id: 'loadForm'
52
- });
53
- expect(loader.DOM.form.querySelector('.rebilly-instruments-loader').classList.contains('is-active')).toEqual(false);
54
- });
55
- it('keeps loading when there are Ids on the element array', () => {
56
- loader.startLoading({
57
- id: 'loadForm'
58
- });
59
- loader.startLoading({
60
- id: 'updateForm'
61
- });
62
- expect(loader.DOM.form.innerHTML).toMatch('rebilly-instruments-loader');
63
- expect(loader.DOM.form.querySelector('.rebilly-instruments-loader').classList.contains('is-active')).toEqual(true);
64
- loader.stopLoading({
65
- id: 'loadForm'
66
- });
67
- expect(loader.DOM.form.querySelector('.rebilly-instruments-loader').classList.contains('is-active')).toEqual(true);
68
- });
69
- });
@@ -1,73 +0,0 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.validateStateForStorefront = validateStateForStorefront;
7
- exports.Endpoint = Endpoint;
8
- exports.default = exports.StorefrontInstance = void 0;
9
-
10
- var _rebillyJsSdk = require("rebilly-js-sdk");
11
-
12
- function validateStateForStorefront({
13
- state
14
- }) {
15
- if (!state.storefront) {
16
- throw new Error('Could not access rebilly-js-sdk instance');
17
- }
18
-
19
- if (!state.options) {
20
- throw new Error('Could not use Rebilly Instruments mount options to fetch Rebilly data');
21
- }
22
- }
23
-
24
- async function Endpoint({
25
- state
26
- } = {}, callback) {
27
- try {
28
- validateStateForStorefront({
29
- state
30
- });
31
- return await callback();
32
- } catch (error) {
33
- // TODO: standard error handling for all endpoints
34
- // console.error(error);
35
- if (error.status === 422) {
36
- error.details.forEach(e => console.error(e));
37
- }
38
-
39
- throw error;
40
- }
41
- }
42
-
43
- class StorefrontInstance {
44
- constructor({
45
- publishableKey = null,
46
- organizationId = null,
47
- mode = 'live',
48
- timeout = 10000,
49
- liveUrl = null,
50
- sandboxUrl = null
51
- } = {}) {
52
- const urls = {
53
- live: liveUrl || 'https://api.rebilly.com',
54
- sandbox: sandboxUrl || 'https://api-sandbox.rebilly.com'
55
- };
56
- const api = (0, _rebillyJsSdk.RebillyStorefrontAPI)({
57
- organizationId,
58
- sandbox: mode === 'sandbox',
59
- timeout: Number.isNaN(parseInt(timeout, 10)) ? 10000 : parseInt(timeout, 10),
60
- urls
61
- });
62
- api.setPublishableKey(publishableKey);
63
- this.api = api;
64
- return this.api;
65
- }
66
-
67
- }
68
-
69
- exports.StorefrontInstance = StorefrontInstance;
70
-
71
- var _default = (config = {}) => new StorefrontInstance(config);
72
-
73
- exports.default = _default;
@@ -1,27 +0,0 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.fetchInvoice = fetchInvoice;
7
-
8
- var _invoiceModel = _interopRequireDefault(require("./models/invoice-model"));
9
-
10
- var _index = require("./index");
11
-
12
- function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
13
-
14
- async function fetchInvoice({
15
- data = null,
16
- state = null
17
- }) {
18
- return (0, _index.Endpoint)({
19
- state
20
- }, async () => {
21
- state.storefront.setSessionToken(state.options.customerJwt);
22
- const {
23
- fields
24
- } = await state.storefront.invoices.get(data);
25
- return new _invoiceModel.default(fields);
26
- });
27
- }
@@ -1,18 +0,0 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.default = void 0;
7
-
8
- class BaseModel {
9
- constructor({ ...fields
10
- } = {}) {
11
- Object.entries(fields).forEach(([key, value]) => {
12
- this[key] = value;
13
- });
14
- }
15
-
16
- }
17
-
18
- exports.default = BaseModel;
@@ -1,14 +0,0 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.default = void 0;
7
-
8
- var _baseModel = _interopRequireDefault(require("./base-model"));
9
-
10
- function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
11
-
12
- class InvoiceModel extends _baseModel.default {}
13
-
14
- exports.default = InvoiceModel;
@@ -1,14 +0,0 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.default = void 0;
7
-
8
- var _baseModel = _interopRequireDefault(require("./base-model"));
9
-
10
- function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
11
-
12
- class PlanModel extends _baseModel.default {}
13
-
14
- exports.default = PlanModel;
@@ -1,14 +0,0 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.default = void 0;
7
-
8
- var _baseModel = _interopRequireDefault(require("./base-model"));
9
-
10
- function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
11
-
12
- class ProductModel extends _baseModel.default {}
13
-
14
- exports.default = ProductModel;
@@ -1,46 +0,0 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.default = exports.ReadyToPayFeatureModel = void 0;
7
-
8
- class ReadyToPayFeatureModel {
9
- constructor({
10
- name = '',
11
- // Google Pay fields
12
- merchantName = '',
13
- merchantOrigin = '',
14
- // Plaid fields
15
- linkToken = '',
16
- expirationTime = ''
17
- } = {}) {
18
- this.name = name;
19
- this.merchantName = merchantName;
20
- this.merchantOrigin = merchantOrigin;
21
- this.linkToken = linkToken;
22
- this.expirationTime = expirationTime;
23
- }
24
-
25
- }
26
-
27
- exports.ReadyToPayFeatureModel = ReadyToPayFeatureModel;
28
-
29
- class ReadyToPayModel {
30
- constructor({
31
- index = null,
32
- method = '',
33
- feature = null,
34
- brands = [],
35
- filters = []
36
- } = {}) {
37
- this.index = index;
38
- this.method = method;
39
- this.feature = feature ? new ReadyToPayFeatureModel(feature) : null;
40
- this.brands = brands;
41
- this.filters = filters;
42
- }
43
-
44
- }
45
-
46
- exports.default = ReadyToPayModel;
@@ -1,79 +0,0 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.default = exports.SummaryDiscountModel = exports.SummaryTaxModel = exports.SummaryLineItemModel = void 0;
7
-
8
- var _baseModel = _interopRequireDefault(require("./base-model"));
9
-
10
- function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
11
-
12
- class SummaryLineItemModel extends _baseModel.default {
13
- constructor({
14
- unitPrice = 0.0,
15
- quantity = 0,
16
- price = 0.0,
17
- ...fields
18
- } = {}) {
19
- super(fields);
20
- this.unitPrice = unitPrice;
21
- this.quantity = quantity;
22
- this.price = price;
23
- }
24
-
25
- }
26
-
27
- exports.SummaryLineItemModel = SummaryLineItemModel;
28
-
29
- class SummaryTaxModel extends _baseModel.default {}
30
-
31
- exports.SummaryTaxModel = SummaryTaxModel;
32
-
33
- class SummaryDiscountModel extends _baseModel.default {
34
- constructor({
35
- amount = 0,
36
- ...fields
37
- }) {
38
- super(fields);
39
- this.amount = amount;
40
- }
41
-
42
- }
43
-
44
- exports.SummaryDiscountModel = SummaryDiscountModel;
45
-
46
- class SummaryModel {
47
- constructor({
48
- currency = '',
49
- lineItems = [],
50
- taxes = [],
51
- discounts = [],
52
- subtotalAmount = 0.0,
53
- taxAmount = 0.0,
54
- shippingAmount = 0.0,
55
- discountsAmount = 0.0,
56
- total = 0.0
57
- } = {}) {
58
- function map(array) {
59
- const list = Array.isArray(array) ? array : [];
60
- return {
61
- // eslint-disable-next-line new-cap
62
- to: instance => list.map(item => new instance(item))
63
- };
64
- }
65
-
66
- this.currency = currency;
67
- this.lineItems = map(lineItems).to(SummaryLineItemModel);
68
- this.taxes = map(taxes).to(SummaryTaxModel);
69
- this.discounts = map(discounts).to(SummaryDiscountModel);
70
- this.subtotalAmount = subtotalAmount;
71
- this.taxAmount = taxAmount;
72
- this.shippingAmount = shippingAmount;
73
- this.discountsAmount = discountsAmount;
74
- this.total = total;
75
- }
76
-
77
- }
78
-
79
- exports.default = SummaryModel;
@@ -1,31 +0,0 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.default = void 0;
7
-
8
- var _baseModel = _interopRequireDefault(require("./base-model"));
9
-
10
- function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
11
-
12
- class TransactionModel extends _baseModel.default {
13
- constructor({
14
- invoiceIds = [],
15
- ...fields
16
- }) {
17
- super(fields);
18
- this.invoiceIds = invoiceIds || [];
19
- }
20
-
21
- get invoiceId() {
22
- return this.invoiceIds[0] || null;
23
- }
24
-
25
- get hasInvoice() {
26
- return !!this.invoiceId;
27
- }
28
-
29
- }
30
-
31
- exports.default = TransactionModel;