{"version":3,"file":"index.js","mappings":"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","sources":["webpack://orishoppingbagprovider/./node_modules/@ori/auth/node_modules/@babel/runtime/helpers/esm/typeof.js","webpack://orishoppingbagprovider/./node_modules/@ori/auth/node_modules/@babel/runtime/helpers/esm/toPropertyKey.js","webpack://orishoppingbagprovider/./node_modules/@ori/auth/node_modules/@babel/runtime/helpers/esm/toPrimitive.js","webpack://orishoppingbagprovider/./node_modules/@ori/auth/node_modules/@babel/runtime/helpers/esm/defineProperty.js","webpack://orishoppingbagprovider/./node_modules/jwt-decode/build/jwt-decode.esm.js","webpack://orishoppingbagprovider/./node_modules/@ori/auth/dist/esm/tokens/OidcToken.js","webpack://orishoppingbagprovider/./node_modules/@ori/auth/dist/esm/tokens/OidcAccessToken.js","webpack://orishoppingbagprovider/./node_modules/axios/index.js","webpack://orishoppingbagprovider/./node_modules/axios/lib/adapters/xhr.js","webpack://orishoppingbagprovider/./node_modules/axios/lib/axios.js","webpack://orishoppingbagprovider/./node_modules/axios/lib/cancel/CancelToken.js","webpack://orishoppingbagprovider/./node_modules/axios/lib/cancel/CanceledError.js","webpack://orishoppingbagprovider/./node_modules/axios/lib/cancel/isCancel.js","webpack://orishoppingbagprovider/./node_modules/axios/lib/core/Axios.js","webpack://orishoppingbagprovider/./node_modules/axios/lib/core/AxiosError.js","webpack://orishoppingbagprovider/./node_modules/axios/lib/core/InterceptorManager.js","webpack://orishoppingbagprovider/./node_modules/axios/lib/core/buildFullPath.js","webpack://orishoppingbagprovider/./node_modules/axios/lib/core/dispatchRequest.js","webpack://orishoppingbagprovider/./node_modules/axios/lib/core/mergeConfig.js","webpack://orishoppingbagprovider/./node_modules/axios/lib/core/settle.js","webpack://orishoppingbagprovider/./node_modules/axios/lib/core/transformData.js","webpack://orishoppingbagprovider/./node_modules/axios/lib/defaults/index.js","webpack://orishoppingbagprovider/./node_modules/axios/lib/defaults/transitional.js","webpack://orishoppingbagprovider/./node_modules/axios/lib/env/data.js","webpack://orishoppingbagprovider/./node_modules/axios/lib/helpers/bind.js","webpack://orishoppingbagprovider/./node_modules/axios/lib/helpers/buildURL.js","webpack://orishoppingbagprovider/./node_modules/axios/lib/helpers/combineURLs.js","webpack://orishoppingbagprovider/./node_modules/axios/lib/helpers/cookies.js","webpack://orishoppingbagprovider/./node_modules/axios/lib/helpers/isAbsoluteURL.js","webpack://orishoppingbagprovider/./node_modules/axios/lib/helpers/isAxiosError.js","webpack://orishoppingbagprovider/./node_modules/axios/lib/helpers/isURLSameOrigin.js","webpack://orishoppingbagprovider/./node_modules/axios/lib/helpers/normalizeHeaderName.js","webpack://orishoppingbagprovider/./node_modules/axios/lib/helpers/null.js","webpack://orishoppingbagprovider/./node_modules/axios/lib/helpers/parseHeaders.js","webpack://orishoppingbagprovider/./node_modules/axios/lib/helpers/parseProtocol.js","webpack://orishoppingbagprovider/./node_modules/axios/lib/helpers/spread.js","webpack://orishoppingbagprovider/./node_modules/axios/lib/helpers/toFormData.js","webpack://orishoppingbagprovider/./node_modules/axios/lib/helpers/validator.js","webpack://orishoppingbagprovider/./node_modules/axios/lib/utils.js","webpack://orishoppingbagprovider/./node_modules/lodash.camelcase/index.js","webpack://orishoppingbagprovider/webpack/bootstrap","webpack://orishoppingbagprovider/webpack/runtime/compat get default export","webpack://orishoppingbagprovider/webpack/runtime/define property getters","webpack://orishoppingbagprovider/webpack/runtime/global","webpack://orishoppingbagprovider/webpack/runtime/hasOwnProperty shorthand","webpack://orishoppingbagprovider/./node_modules/@babel/runtime/helpers/esm/arrayLikeToArray.js","webpack://orishoppingbagprovider/./node_modules/@babel/runtime/helpers/esm/slicedToArray.js","webpack://orishoppingbagprovider/./node_modules/@babel/runtime/helpers/esm/arrayWithHoles.js","webpack://orishoppingbagprovider/./node_modules/@babel/runtime/helpers/esm/iterableToArrayLimit.js","webpack://orishoppingbagprovider/./node_modules/@babel/runtime/helpers/esm/unsupportedIterableToArray.js","webpack://orishoppingbagprovider/./node_modules/@babel/runtime/helpers/esm/nonIterableRest.js","webpack://orishoppingbagprovider/./node_modules/@babel/runtime/helpers/esm/createClass.js","webpack://orishoppingbagprovider/./node_modules/@babel/runtime/helpers/esm/defineProperty.js","webpack://orishoppingbagprovider/./node_modules/@ori-events/accept-notification/esm/index.js","webpack://orishoppingbagprovider/./node_modules/@ori-events/add-to-basket/esm/index.js","webpack://orishoppingbagprovider/./node_modules/@ori-events/add-backorder-demand/esm/index.js","webpack://orishoppingbagprovider/./node_modules/@ori-events/add-basket-offer/esm/index.js","webpack://orishoppingbagprovider/./node_modules/@ori-events/add-catalogue-offer/esm/index.js","webpack://orishoppingbagprovider/./node_modules/@ori-events/add-customer-order/esm/index.js","webpack://orishoppingbagprovider/./node_modules/@ori-events/add-free-shipping-offer/esm/index.js","webpack://orishoppingbagprovider/./node_modules/@ori-events/add-voucher/esm/index.js","webpack://orishoppingbagprovider/./node_modules/@ori-events/loyalty-dialog-result/esm/index.js","webpack://orishoppingbagprovider/./node_modules/@ori-events/basket-updated/esm/BasketOffer.js","webpack://orishoppingbagprovider/./node_modules/@ori-events/basket-updated/esm/ShoppingNotification.js","webpack://orishoppingbagprovider/./node_modules/@ori-events/basket-updated/esm/index.js","webpack://orishoppingbagprovider/./src/models/enums.ts","webpack://orishoppingbagprovider/./src/models/HttpMethod.ts","webpack://orishoppingbagprovider/./node_modules/@ori-events/cancel-backorder-demand/esm/index.js","webpack://orishoppingbagprovider/./node_modules/@ori-events/cancel-subscription/esm/index.js","webpack://orishoppingbagprovider/./node_modules/@ori-events/clear-basket/esm/index.js","webpack://orishoppingbagprovider/./node_modules/@ori-events/delay-subscription/esm/index.js","webpack://orishoppingbagprovider/./node_modules/@ori-events/place-order-requested/esm/index.js","webpack://orishoppingbagprovider/./node_modules/@ori-events/remove-basket-item/esm/index.js","webpack://orishoppingbagprovider/./node_modules/@ori-events/remove-customer-order/esm/index.js","webpack://orishoppingbagprovider/./node_modules/@ori-events/remove-voucher/esm/index.js","webpack://orishoppingbagprovider/./node_modules/@ori-events/replace-shopping-bag-item/esm/index.js","webpack://orishoppingbagprovider/./node_modules/@ori-events/replace-subscription/esm/index.js","webpack://orishoppingbagprovider/./node_modules/@ori-events/request-clear-shopping-cache/esm/index.js","webpack://orishoppingbagprovider/./node_modules/@ori-events/request-shopping-context/esm/index.js","webpack://orishoppingbagprovider/./node_modules/@ori-events/reset-shipping-selection/esm/index.js","webpack://orishoppingbagprovider/./node_modules/@ori-events/shopping-context-loaded/esm/index.js","webpack://orishoppingbagprovider/./node_modules/@ori-events/update-basket-item/esm/index.js","webpack://orishoppingbagprovider/./node_modules/@ori-events/update-customer-order-item/esm/index.js","webpack://orishoppingbagprovider/./node_modules/@ori-events/update-delivery/esm/index.js","webpack://orishoppingbagprovider/./node_modules/@ori-events/update-delivery-channel/esm/index.js","webpack://orishoppingbagprovider/./node_modules/@ori-events/update-donation/esm/index.js","webpack://orishoppingbagprovider/./node_modules/@ori-events/update-offer-item/esm/index.js","webpack://orishoppingbagprovider/./node_modules/@ori-events/update-offer-items/esm/index.js","webpack://orishoppingbagprovider/./node_modules/@ori-events/update-payment-provider/esm/index.js","webpack://orishoppingbagprovider/./node_modules/@ori-events/failed-event-data/esm/index.js","webpack://orishoppingbagprovider/./node_modules/@ori-events/accept-notification-failed/esm/index.js","webpack://orishoppingbagprovider/./node_modules/@ori-events/add-basket-offer-failed/esm/index.js","webpack://orishoppingbagprovider/./src/models/AppConfiguration.ts","webpack://orishoppingbagprovider/./node_modules/@babel/runtime/helpers/esm/typeof.js","webpack://orishoppingbagprovider/./src/helpers/convertToCamelCase.ts","webpack://orishoppingbagprovider/./node_modules/@babel/runtime/helpers/esm/objectWithoutProperties.js","webpack://orishoppingbagprovider/./node_modules/@babel/runtime/helpers/esm/objectWithoutPropertiesLoose.js","webpack://orishoppingbagprovider/./src/helpers/getHttpRequestSettings.ts","webpack://orishoppingbagprovider/./src/utils/log.ts","webpack://orishoppingbagprovider/./src/helpers/addBasketOffer.ts","webpack://orishoppingbagprovider/./src/guards/addBasketOfferResponse.ts","webpack://orishoppingbagprovider/./src/constants/app.ts","webpack://orishoppingbagprovider/./src/helpers/clearCachePages.ts","webpack://orishoppingbagprovider/./src/helpers/dispatchBasketUpdatedEvent.ts","webpack://orishoppingbagprovider/./src/helpers/cookies.ts","webpack://orishoppingbagprovider/./src/helpers/storage.ts","webpack://orishoppingbagprovider/./src/helpers/hashes.ts","webpack://orishoppingbagprovider/./node_modules/@ori-events/update-basket-item-failed/esm/index.js","webpack://orishoppingbagprovider/./node_modules/@ori-events/add-catalogue-offer-failed/esm/index.js","webpack://orishoppingbagprovider/./src/handlers/addCatalogueOfferHandler.ts","webpack://orishoppingbagprovider/./node_modules/@ori-events/add-customer-order-failed/esm/index.js","webpack://orishoppingbagprovider/./node_modules/@ori-events/add-free-shipping-offer-failed/esm/index.js","webpack://orishoppingbagprovider/./src/handlers/addFreeShippingOfferHandler.ts","webpack://orishoppingbagprovider/./node_modules/@ori-events/add-to-basket-failed/esm/index.js","webpack://orishoppingbagprovider/./node_modules/@ori-events/show-loyalty-dialog/esm/index.js","webpack://orishoppingbagprovider/./src/constants/requestOptions.ts","webpack://orishoppingbagprovider/./src/utils/getAuthorizationToken.ts","webpack://orishoppingbagprovider/./src/utils/getToken.ts","webpack://orishoppingbagprovider/./src/utils/getPublicToken.ts","webpack://orishoppingbagprovider/./src/utils/isDataMockup.ts","webpack://orishoppingbagprovider/./src/utils/normalizeSlashChars.ts","webpack://orishoppingbagprovider/./src/helpers/addToBasket.ts","webpack://orishoppingbagprovider/./src/guards/addToBasketResponse.ts","webpack://orishoppingbagprovider/./node_modules/@ori-events/add-voucher-failed/esm/index.js","webpack://orishoppingbagprovider/./node_modules/@ori-events/cancel-subscription-failed/esm/index.js","webpack://orishoppingbagprovider/./node_modules/@ori-events/delay-subscription-failed/esm/index.js","webpack://orishoppingbagprovider/./node_modules/@ori-events/remove-customer-order-failed/esm/index.js","webpack://orishoppingbagprovider/./node_modules/@ori-events/remove-voucher-failed/esm/index.js","webpack://orishoppingbagprovider/./node_modules/@ori-events/replace-shopping-bag-item-failed/esm/index.js","webpack://orishoppingbagprovider/./node_modules/@ori-events/replace-subscription-failed/esm/index.js","webpack://orishoppingbagprovider/./src/handlers/replaceSubscriptionHandler.ts","webpack://orishoppingbagprovider/./src/utils/getUrl.ts","webpack://orishoppingbagprovider/./node_modules/@ori-events/update-customer-order-item-failed/esm/index.js","webpack://orishoppingbagprovider/./node_modules/@ori-events/update-delivery-channel-failed/esm/index.js","webpack://orishoppingbagprovider/./node_modules/@ori-events/update-delivery-failed/esm/index.js","webpack://orishoppingbagprovider/./node_modules/@ori-events/update-donation-failed/esm/index.js","webpack://orishoppingbagprovider/./node_modules/@ori-events/update-payment-provider-failed/esm/index.js","webpack://orishoppingbagprovider/./src/BasketProvider.ts","webpack://orishoppingbagprovider/./src/handlers/acceptNotificationHandler.ts","webpack://orishoppingbagprovider/./src/handlers/addBackorderDemandHandler.ts","webpack://orishoppingbagprovider/./src/handlers/addBasketOfferHandler.ts","webpack://orishoppingbagprovider/./src/guards/addBasketOfferRequest.ts","webpack://orishoppingbagprovider/./src/handlers/addCustomerOrderHandler.ts","webpack://orishoppingbagprovider/./src/guards/addCustomerOrderResponse.ts","webpack://orishoppingbagprovider/./src/handlers/addToBasketHandler.ts","webpack://orishoppingbagprovider/./src/helpers/getBuyingURLandMethod.ts","webpack://orishoppingbagprovider/./src/handlers/addVoucherHandler.ts","webpack://orishoppingbagprovider/./src/guards/addVoucherResponse.ts","webpack://orishoppingbagprovider/./src/handlers/cancelBackorderDemandHandler.ts","webpack://orishoppingbagprovider/./src/handlers/cancelSubscriptionHandler.ts","webpack://orishoppingbagprovider/./src/handlers/clearBasketHandler.ts","webpack://orishoppingbagprovider/./src/handlers/delaySubscriptionHandler.ts","webpack://orishoppingbagprovider/./src/guards/delaySubscriptionResponse.ts","webpack://orishoppingbagprovider/./src/handlers/checkLoyaltyDialogResultAndAddToBasketHandler.ts","webpack://orishoppingbagprovider/./src/handlers/removeFromBasketHandler.ts","webpack://orishoppingbagprovider/./src/handlers/removeCustomerOrderHandler.ts","webpack://orishoppingbagprovider/./src/guards/removeCustomerOrderResponse.ts","webpack://orishoppingbagprovider/./src/handlers/removeVoucherHandler.ts","webpack://orishoppingbagprovider/./src/guards/removeVoucherResponse.ts","webpack://orishoppingbagprovider/./src/handlers/replaceShoppingBagItemHandler.ts","webpack://orishoppingbagprovider/./src/guards/replaceShoppingBagItemResponse.ts","webpack://orishoppingbagprovider/./src/utils/getUrlOptions.ts","webpack://orishoppingbagprovider/./src/guards/replaceSubscriptionResponse.ts","webpack://orishoppingbagprovider/./src/handlers/resetShippingSelectionHandler.ts","webpack://orishoppingbagprovider/./src/handlers/updateBasketItemHandler.ts","webpack://orishoppingbagprovider/./src/handlers/updateCustomerOrderItemHandler.ts","webpack://orishoppingbagprovider/./src/guards/updateCustomerOrderItemResponse.ts","webpack://orishoppingbagprovider/./src/handlers/updateDeliveryHandler.ts","webpack://orishoppingbagprovider/./src/handlers/updateDeliveryChannelHandler.ts","webpack://orishoppingbagprovider/./src/handlers/updateDonationHandler.ts","webpack://orishoppingbagprovider/./src/handlers/updateOfferItemsHandler.ts","webpack://orishoppingbagprovider/./src/handlers/updateOfferItemHandler.ts","webpack://orishoppingbagprovider/./src/handlers/updatePaymentProviderHandler.ts","webpack://orishoppingbagprovider/./node_modules/@babel/runtime/helpers/esm/classCallCheck.js","webpack://orishoppingbagprovider/./src/handlers/requestShoppingContextHandler.ts","webpack://orishoppingbagprovider/./src/index.ts"],"sourcesContent":["export default function _typeof(obj) {\n \"@babel/helpers - typeof\";\n\n return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) {\n return typeof obj;\n } : function (obj) {\n return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n }, _typeof(obj);\n}","import _typeof from \"./typeof.js\";\nimport toPrimitive from \"./toPrimitive.js\";\nexport default function _toPropertyKey(arg) {\n var key = toPrimitive(arg, \"string\");\n return _typeof(key) === \"symbol\" ? key : String(key);\n}","import _typeof from \"./typeof.js\";\nexport default function _toPrimitive(input, hint) {\n if (_typeof(input) !== \"object\" || input === null) return input;\n var prim = input[Symbol.toPrimitive];\n if (prim !== undefined) {\n var res = prim.call(input, hint || \"default\");\n if (_typeof(res) !== \"object\") return res;\n throw new TypeError(\"@@toPrimitive must return a primitive value.\");\n }\n return (hint === \"string\" ? String : Number)(input);\n}","import toPropertyKey from \"./toPropertyKey.js\";\nexport default function _defineProperty(obj, key, value) {\n key = toPropertyKey(key);\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n return obj;\n}","function e(e){this.message=e}e.prototype=new Error,e.prototype.name=\"InvalidCharacterError\";var r=\"undefined\"!=typeof window&&window.atob&&window.atob.bind(window)||function(r){var t=String(r).replace(/=+$/,\"\");if(t.length%4==1)throw new e(\"'atob' failed: The string to be decoded is not correctly encoded.\");for(var n,o,a=0,i=0,c=\"\";o=t.charAt(i++);~o&&(n=a%4?64*n+o:o,a++%4)?c+=String.fromCharCode(255&n>>(-2*a&6)):0)o=\"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=\".indexOf(o);return c};function t(e){var t=e.replace(/-/g,\"+\").replace(/_/g,\"/\");switch(t.length%4){case 0:break;case 2:t+=\"==\";break;case 3:t+=\"=\";break;default:throw\"Illegal base64url string!\"}try{return function(e){return decodeURIComponent(r(e).replace(/(.)/g,(function(e,r){var t=r.charCodeAt(0).toString(16).toUpperCase();return t.length<2&&(t=\"0\"+t),\"%\"+t})))}(t)}catch(e){return r(t)}}function n(e){this.message=e}function o(e,r){if(\"string\"!=typeof e)throw new n(\"Invalid token specified\");var o=!0===(r=r||{}).header?0:1;try{return JSON.parse(t(e.split(\".\")[o]))}catch(e){throw new n(\"Invalid token specified: \"+e.message)}}n.prototype=new Error,n.prototype.name=\"InvalidTokenError\";export default o;export{n as InvalidTokenError};\n//# sourceMappingURL=jwt-decode.esm.js.map\n","import _defineProperty from \"@babel/runtime/helpers/defineProperty\";\n\n/* eslint-disable @typescript-eslint/naming-convention -- Token properties don't follow our rules */\nimport jwtDecode from 'jwt-decode';\nexport class OidcToken {\n constructor(token) {\n _defineProperty(this, \"token\", void 0);\n\n _defineProperty(this, \"payload\", void 0);\n\n _defineProperty(this, \"toString\", () => this.token);\n\n _defineProperty(this, \"getClaim\", claim => this.payload[claim]);\n\n if (typeof token === 'string') {\n this.token = token;\n } else {\n this.token = token.Token;\n }\n\n this.payload = jwtDecode(this.token);\n }\n\n}\n//# sourceMappingURL=OidcToken.js.map","import _defineProperty from \"@babel/runtime/helpers/defineProperty\";\nimport { OidcToken } from './OidcToken';\nexport class OidcAccessToken extends OidcToken {\n constructor(token) {\n super(typeof token === 'string' ? token.replace(/^Bearer /, '') : token);\n\n _defineProperty(this, \"toString\", () => `Bearer ${this.token}`);\n }\n\n}\n//# sourceMappingURL=OidcAccessToken.js.map","module.exports = require('./lib/axios');","'use strict';\n\nvar utils = require('./../utils');\nvar settle = require('./../core/settle');\nvar cookies = require('./../helpers/cookies');\nvar buildURL = require('./../helpers/buildURL');\nvar buildFullPath = require('../core/buildFullPath');\nvar parseHeaders = require('./../helpers/parseHeaders');\nvar isURLSameOrigin = require('./../helpers/isURLSameOrigin');\nvar transitionalDefaults = require('../defaults/transitional');\nvar AxiosError = require('../core/AxiosError');\nvar CanceledError = require('../cancel/CanceledError');\nvar parseProtocol = require('../helpers/parseProtocol');\n\nmodule.exports = function xhrAdapter(config) {\n return new Promise(function dispatchXhrRequest(resolve, reject) {\n var requestData = config.data;\n var requestHeaders = config.headers;\n var responseType = config.responseType;\n var onCanceled;\n function done() {\n if (config.cancelToken) {\n config.cancelToken.unsubscribe(onCanceled);\n }\n\n if (config.signal) {\n config.signal.removeEventListener('abort', onCanceled);\n }\n }\n\n if (utils.isFormData(requestData) && utils.isStandardBrowserEnv()) {\n delete requestHeaders['Content-Type']; // Let the browser set it\n }\n\n var request = new XMLHttpRequest();\n\n // HTTP basic authentication\n if (config.auth) {\n var username = config.auth.username || '';\n var password = config.auth.password ? unescape(encodeURIComponent(config.auth.password)) : '';\n requestHeaders.Authorization = 'Basic ' + btoa(username + ':' + password);\n }\n\n var fullPath = buildFullPath(config.baseURL, config.url);\n\n request.open(config.method.toUpperCase(), buildURL(fullPath, config.params, config.paramsSerializer), true);\n\n // Set the request timeout in MS\n request.timeout = config.timeout;\n\n function onloadend() {\n if (!request) {\n return;\n }\n // Prepare the response\n var responseHeaders = 'getAllResponseHeaders' in request ? parseHeaders(request.getAllResponseHeaders()) : null;\n var responseData = !responseType || responseType === 'text' || responseType === 'json' ?\n request.responseText : request.response;\n var response = {\n data: responseData,\n status: request.status,\n statusText: request.statusText,\n headers: responseHeaders,\n config: config,\n request: request\n };\n\n settle(function _resolve(value) {\n resolve(value);\n done();\n }, function _reject(err) {\n reject(err);\n done();\n }, response);\n\n // Clean up request\n request = null;\n }\n\n if ('onloadend' in request) {\n // Use onloadend if available\n request.onloadend = onloadend;\n } else {\n // Listen for ready state to emulate onloadend\n request.onreadystatechange = function handleLoad() {\n if (!request || request.readyState !== 4) {\n return;\n }\n\n // The request errored out and we didn't get a response, this will be\n // handled by onerror instead\n // With one exception: request that using file: protocol, most browsers\n // will return status as 0 even though it's a successful request\n if (request.status === 0 && !(request.responseURL && request.responseURL.indexOf('file:') === 0)) {\n return;\n }\n // readystate handler is calling before onerror or ontimeout handlers,\n // so we should call onloadend on the next 'tick'\n setTimeout(onloadend);\n };\n }\n\n // Handle browser request cancellation (as opposed to a manual cancellation)\n request.onabort = function handleAbort() {\n if (!request) {\n return;\n }\n\n reject(new AxiosError('Request aborted', AxiosError.ECONNABORTED, config, request));\n\n // Clean up request\n request = null;\n };\n\n // Handle low level network errors\n request.onerror = function handleError() {\n // Real errors are hidden from us by the browser\n // onerror should only fire if it's a network error\n reject(new AxiosError('Network Error', AxiosError.ERR_NETWORK, config, request, request));\n\n // Clean up request\n request = null;\n };\n\n // Handle timeout\n request.ontimeout = function handleTimeout() {\n var timeoutErrorMessage = config.timeout ? 'timeout of ' + config.timeout + 'ms exceeded' : 'timeout exceeded';\n var transitional = config.transitional || transitionalDefaults;\n if (config.timeoutErrorMessage) {\n timeoutErrorMessage = config.timeoutErrorMessage;\n }\n reject(new AxiosError(\n timeoutErrorMessage,\n transitional.clarifyTimeoutError ? AxiosError.ETIMEDOUT : AxiosError.ECONNABORTED,\n config,\n request));\n\n // Clean up request\n request = null;\n };\n\n // Add xsrf header\n // This is only done if running in a standard browser environment.\n // Specifically not if we're in a web worker, or react-native.\n if (utils.isStandardBrowserEnv()) {\n // Add xsrf header\n var xsrfValue = (config.withCredentials || isURLSameOrigin(fullPath)) && config.xsrfCookieName ?\n cookies.read(config.xsrfCookieName) :\n undefined;\n\n if (xsrfValue) {\n requestHeaders[config.xsrfHeaderName] = xsrfValue;\n }\n }\n\n // Add headers to the request\n if ('setRequestHeader' in request) {\n utils.forEach(requestHeaders, function setRequestHeader(val, key) {\n if (typeof requestData === 'undefined' && key.toLowerCase() === 'content-type') {\n // Remove Content-Type if data is undefined\n delete requestHeaders[key];\n } else {\n // Otherwise add header to the request\n request.setRequestHeader(key, val);\n }\n });\n }\n\n // Add withCredentials to request if needed\n if (!utils.isUndefined(config.withCredentials)) {\n request.withCredentials = !!config.withCredentials;\n }\n\n // Add responseType to request if needed\n if (responseType && responseType !== 'json') {\n request.responseType = config.responseType;\n }\n\n // Handle progress if needed\n if (typeof config.onDownloadProgress === 'function') {\n request.addEventListener('progress', config.onDownloadProgress);\n }\n\n // Not all browsers support upload events\n if (typeof config.onUploadProgress === 'function' && request.upload) {\n request.upload.addEventListener('progress', config.onUploadProgress);\n }\n\n if (config.cancelToken || config.signal) {\n // Handle cancellation\n // eslint-disable-next-line func-names\n onCanceled = function(cancel) {\n if (!request) {\n return;\n }\n reject(!cancel || (cancel && cancel.type) ? new CanceledError() : cancel);\n request.abort();\n request = null;\n };\n\n config.cancelToken && config.cancelToken.subscribe(onCanceled);\n if (config.signal) {\n config.signal.aborted ? onCanceled() : config.signal.addEventListener('abort', onCanceled);\n }\n }\n\n if (!requestData) {\n requestData = null;\n }\n\n var protocol = parseProtocol(fullPath);\n\n if (protocol && [ 'http', 'https', 'file' ].indexOf(protocol) === -1) {\n reject(new AxiosError('Unsupported protocol ' + protocol + ':', AxiosError.ERR_BAD_REQUEST, config));\n return;\n }\n\n\n // Send the request\n request.send(requestData);\n });\n};\n","'use strict';\n\nvar utils = require('./utils');\nvar bind = require('./helpers/bind');\nvar Axios = require('./core/Axios');\nvar mergeConfig = require('./core/mergeConfig');\nvar defaults = require('./defaults');\n\n/**\n * Create an instance of Axios\n *\n * @param {Object} defaultConfig The default config for the instance\n * @return {Axios} A new instance of Axios\n */\nfunction createInstance(defaultConfig) {\n var context = new Axios(defaultConfig);\n var instance = bind(Axios.prototype.request, context);\n\n // Copy axios.prototype to instance\n utils.extend(instance, Axios.prototype, context);\n\n // Copy context to instance\n utils.extend(instance, context);\n\n // Factory for creating new instances\n instance.create = function create(instanceConfig) {\n return createInstance(mergeConfig(defaultConfig, instanceConfig));\n };\n\n return instance;\n}\n\n// Create the default instance to be exported\nvar axios = createInstance(defaults);\n\n// Expose Axios class to allow class inheritance\naxios.Axios = Axios;\n\n// Expose Cancel & CancelToken\naxios.CanceledError = require('./cancel/CanceledError');\naxios.CancelToken = require('./cancel/CancelToken');\naxios.isCancel = require('./cancel/isCancel');\naxios.VERSION = require('./env/data').version;\naxios.toFormData = require('./helpers/toFormData');\n\n// Expose AxiosError class\naxios.AxiosError = require('../lib/core/AxiosError');\n\n// alias for CanceledError for backward compatibility\naxios.Cancel = axios.CanceledError;\n\n// Expose all/spread\naxios.all = function all(promises) {\n return Promise.all(promises);\n};\naxios.spread = require('./helpers/spread');\n\n// Expose isAxiosError\naxios.isAxiosError = require('./helpers/isAxiosError');\n\nmodule.exports = axios;\n\n// Allow use of default import syntax in TypeScript\nmodule.exports.default = axios;\n","'use strict';\n\nvar CanceledError = require('./CanceledError');\n\n/**\n * A `CancelToken` is an object that can be used to request cancellation of an operation.\n *\n * @class\n * @param {Function} executor The executor function.\n */\nfunction CancelToken(executor) {\n if (typeof executor !== 'function') {\n throw new TypeError('executor must be a function.');\n }\n\n var resolvePromise;\n\n this.promise = new Promise(function promiseExecutor(resolve) {\n resolvePromise = resolve;\n });\n\n var token = this;\n\n // eslint-disable-next-line func-names\n this.promise.then(function(cancel) {\n if (!token._listeners) return;\n\n var i;\n var l = token._listeners.length;\n\n for (i = 0; i < l; i++) {\n token._listeners[i](cancel);\n }\n token._listeners = null;\n });\n\n // eslint-disable-next-line func-names\n this.promise.then = function(onfulfilled) {\n var _resolve;\n // eslint-disable-next-line func-names\n var promise = new Promise(function(resolve) {\n token.subscribe(resolve);\n _resolve = resolve;\n }).then(onfulfilled);\n\n promise.cancel = function reject() {\n token.unsubscribe(_resolve);\n };\n\n return promise;\n };\n\n executor(function cancel(message) {\n if (token.reason) {\n // Cancellation has already been requested\n return;\n }\n\n token.reason = new CanceledError(message);\n resolvePromise(token.reason);\n });\n}\n\n/**\n * Throws a `CanceledError` if cancellation has been requested.\n */\nCancelToken.prototype.throwIfRequested = function throwIfRequested() {\n if (this.reason) {\n throw this.reason;\n }\n};\n\n/**\n * Subscribe to the cancel signal\n */\n\nCancelToken.prototype.subscribe = function subscribe(listener) {\n if (this.reason) {\n listener(this.reason);\n return;\n }\n\n if (this._listeners) {\n this._listeners.push(listener);\n } else {\n this._listeners = [listener];\n }\n};\n\n/**\n * Unsubscribe from the cancel signal\n */\n\nCancelToken.prototype.unsubscribe = function unsubscribe(listener) {\n if (!this._listeners) {\n return;\n }\n var index = this._listeners.indexOf(listener);\n if (index !== -1) {\n this._listeners.splice(index, 1);\n }\n};\n\n/**\n * Returns an object that contains a new `CancelToken` and a function that, when called,\n * cancels the `CancelToken`.\n */\nCancelToken.source = function source() {\n var cancel;\n var token = new CancelToken(function executor(c) {\n cancel = c;\n });\n return {\n token: token,\n cancel: cancel\n };\n};\n\nmodule.exports = CancelToken;\n","'use strict';\n\nvar AxiosError = require('../core/AxiosError');\nvar utils = require('../utils');\n\n/**\n * A `CanceledError` is an object that is thrown when an operation is canceled.\n *\n * @class\n * @param {string=} message The message.\n */\nfunction CanceledError(message) {\n // eslint-disable-next-line no-eq-null,eqeqeq\n AxiosError.call(this, message == null ? 'canceled' : message, AxiosError.ERR_CANCELED);\n this.name = 'CanceledError';\n}\n\nutils.inherits(CanceledError, AxiosError, {\n __CANCEL__: true\n});\n\nmodule.exports = CanceledError;\n","'use strict';\n\nmodule.exports = function isCancel(value) {\n return !!(value && value.__CANCEL__);\n};\n","'use strict';\n\nvar utils = require('./../utils');\nvar buildURL = require('../helpers/buildURL');\nvar InterceptorManager = require('./InterceptorManager');\nvar dispatchRequest = require('./dispatchRequest');\nvar mergeConfig = require('./mergeConfig');\nvar buildFullPath = require('./buildFullPath');\nvar validator = require('../helpers/validator');\n\nvar validators = validator.validators;\n/**\n * Create a new instance of Axios\n *\n * @param {Object} instanceConfig The default config for the instance\n */\nfunction Axios(instanceConfig) {\n this.defaults = instanceConfig;\n this.interceptors = {\n request: new InterceptorManager(),\n response: new InterceptorManager()\n };\n}\n\n/**\n * Dispatch a request\n *\n * @param {Object} config The config specific for this request (merged with this.defaults)\n */\nAxios.prototype.request = function request(configOrUrl, config) {\n /*eslint no-param-reassign:0*/\n // Allow for axios('example/url'[, config]) a la fetch API\n if (typeof configOrUrl === 'string') {\n config = config || {};\n config.url = configOrUrl;\n } else {\n config = configOrUrl || {};\n }\n\n config = mergeConfig(this.defaults, config);\n\n // Set config.method\n if (config.method) {\n config.method = config.method.toLowerCase();\n } else if (this.defaults.method) {\n config.method = this.defaults.method.toLowerCase();\n } else {\n config.method = 'get';\n }\n\n var transitional = config.transitional;\n\n if (transitional !== undefined) {\n validator.assertOptions(transitional, {\n silentJSONParsing: validators.transitional(validators.boolean),\n forcedJSONParsing: validators.transitional(validators.boolean),\n clarifyTimeoutError: validators.transitional(validators.boolean)\n }, false);\n }\n\n // filter out skipped interceptors\n var requestInterceptorChain = [];\n var synchronousRequestInterceptors = true;\n this.interceptors.request.forEach(function unshiftRequestInterceptors(interceptor) {\n if (typeof interceptor.runWhen === 'function' && interceptor.runWhen(config) === false) {\n return;\n }\n\n synchronousRequestInterceptors = synchronousRequestInterceptors && interceptor.synchronous;\n\n requestInterceptorChain.unshift(interceptor.fulfilled, interceptor.rejected);\n });\n\n var responseInterceptorChain = [];\n this.interceptors.response.forEach(function pushResponseInterceptors(interceptor) {\n responseInterceptorChain.push(interceptor.fulfilled, interceptor.rejected);\n });\n\n var promise;\n\n if (!synchronousRequestInterceptors) {\n var chain = [dispatchRequest, undefined];\n\n Array.prototype.unshift.apply(chain, requestInterceptorChain);\n chain = chain.concat(responseInterceptorChain);\n\n promise = Promise.resolve(config);\n while (chain.length) {\n promise = promise.then(chain.shift(), chain.shift());\n }\n\n return promise;\n }\n\n\n var newConfig = config;\n while (requestInterceptorChain.length) {\n var onFulfilled = requestInterceptorChain.shift();\n var onRejected = requestInterceptorChain.shift();\n try {\n newConfig = onFulfilled(newConfig);\n } catch (error) {\n onRejected(error);\n break;\n }\n }\n\n try {\n promise = dispatchRequest(newConfig);\n } catch (error) {\n return Promise.reject(error);\n }\n\n while (responseInterceptorChain.length) {\n promise = promise.then(responseInterceptorChain.shift(), responseInterceptorChain.shift());\n }\n\n return promise;\n};\n\nAxios.prototype.getUri = function getUri(config) {\n config = mergeConfig(this.defaults, config);\n var fullPath = buildFullPath(config.baseURL, config.url);\n return buildURL(fullPath, config.params, config.paramsSerializer);\n};\n\n// Provide aliases for supported request methods\nutils.forEach(['delete', 'get', 'head', 'options'], function forEachMethodNoData(method) {\n /*eslint func-names:0*/\n Axios.prototype[method] = function(url, config) {\n return this.request(mergeConfig(config || {}, {\n method: method,\n url: url,\n data: (config || {}).data\n }));\n };\n});\n\nutils.forEach(['post', 'put', 'patch'], function forEachMethodWithData(method) {\n /*eslint func-names:0*/\n\n function generateHTTPMethod(isForm) {\n return function httpMethod(url, data, config) {\n return this.request(mergeConfig(config || {}, {\n method: method,\n headers: isForm ? {\n 'Content-Type': 'multipart/form-data'\n } : {},\n url: url,\n data: data\n }));\n };\n }\n\n Axios.prototype[method] = generateHTTPMethod();\n\n Axios.prototype[method + 'Form'] = generateHTTPMethod(true);\n});\n\nmodule.exports = Axios;\n","'use strict';\n\nvar utils = require('../utils');\n\n/**\n * Create an Error with the specified message, config, error code, request and response.\n *\n * @param {string} message The error message.\n * @param {string} [code] The error code (for example, 'ECONNABORTED').\n * @param {Object} [config] The config.\n * @param {Object} [request] The request.\n * @param {Object} [response] The response.\n * @returns {Error} The created error.\n */\nfunction AxiosError(message, code, config, request, response) {\n Error.call(this);\n this.message = message;\n this.name = 'AxiosError';\n code && (this.code = code);\n config && (this.config = config);\n request && (this.request = request);\n response && (this.response = response);\n}\n\nutils.inherits(AxiosError, Error, {\n toJSON: function toJSON() {\n return {\n // Standard\n message: this.message,\n name: this.name,\n // Microsoft\n description: this.description,\n number: this.number,\n // Mozilla\n fileName: this.fileName,\n lineNumber: this.lineNumber,\n columnNumber: this.columnNumber,\n stack: this.stack,\n // Axios\n config: this.config,\n code: this.code,\n status: this.response && this.response.status ? this.response.status : null\n };\n }\n});\n\nvar prototype = AxiosError.prototype;\nvar descriptors = {};\n\n[\n 'ERR_BAD_OPTION_VALUE',\n 'ERR_BAD_OPTION',\n 'ECONNABORTED',\n 'ETIMEDOUT',\n 'ERR_NETWORK',\n 'ERR_FR_TOO_MANY_REDIRECTS',\n 'ERR_DEPRECATED',\n 'ERR_BAD_RESPONSE',\n 'ERR_BAD_REQUEST',\n 'ERR_CANCELED'\n// eslint-disable-next-line func-names\n].forEach(function(code) {\n descriptors[code] = {value: code};\n});\n\nObject.defineProperties(AxiosError, descriptors);\nObject.defineProperty(prototype, 'isAxiosError', {value: true});\n\n// eslint-disable-next-line func-names\nAxiosError.from = function(error, code, config, request, response, customProps) {\n var axiosError = Object.create(prototype);\n\n utils.toFlatObject(error, axiosError, function filter(obj) {\n return obj !== Error.prototype;\n });\n\n AxiosError.call(axiosError, error.message, code, config, request, response);\n\n axiosError.name = error.name;\n\n customProps && Object.assign(axiosError, customProps);\n\n return axiosError;\n};\n\nmodule.exports = AxiosError;\n","'use strict';\n\nvar utils = require('./../utils');\n\nfunction InterceptorManager() {\n this.handlers = [];\n}\n\n/**\n * Add a new interceptor to the stack\n *\n * @param {Function} fulfilled The function to handle `then` for a `Promise`\n * @param {Function} rejected The function to handle `reject` for a `Promise`\n *\n * @return {Number} An ID used to remove interceptor later\n */\nInterceptorManager.prototype.use = function use(fulfilled, rejected, options) {\n this.handlers.push({\n fulfilled: fulfilled,\n rejected: rejected,\n synchronous: options ? options.synchronous : false,\n runWhen: options ? options.runWhen : null\n });\n return this.handlers.length - 1;\n};\n\n/**\n * Remove an interceptor from the stack\n *\n * @param {Number} id The ID that was returned by `use`\n */\nInterceptorManager.prototype.eject = function eject(id) {\n if (this.handlers[id]) {\n this.handlers[id] = null;\n }\n};\n\n/**\n * Iterate over all the registered interceptors\n *\n * This method is particularly useful for skipping over any\n * interceptors that may have become `null` calling `eject`.\n *\n * @param {Function} fn The function to call for each interceptor\n */\nInterceptorManager.prototype.forEach = function forEach(fn) {\n utils.forEach(this.handlers, function forEachHandler(h) {\n if (h !== null) {\n fn(h);\n }\n });\n};\n\nmodule.exports = InterceptorManager;\n","'use strict';\n\nvar isAbsoluteURL = require('../helpers/isAbsoluteURL');\nvar combineURLs = require('../helpers/combineURLs');\n\n/**\n * Creates a new URL by combining the baseURL with the requestedURL,\n * only when the requestedURL is not already an absolute URL.\n * If the requestURL is absolute, this function returns the requestedURL untouched.\n *\n * @param {string} baseURL The base URL\n * @param {string} requestedURL Absolute or relative URL to combine\n * @returns {string} The combined full path\n */\nmodule.exports = function buildFullPath(baseURL, requestedURL) {\n if (baseURL && !isAbsoluteURL(requestedURL)) {\n return combineURLs(baseURL, requestedURL);\n }\n return requestedURL;\n};\n","'use strict';\n\nvar utils = require('./../utils');\nvar transformData = require('./transformData');\nvar isCancel = require('../cancel/isCancel');\nvar defaults = require('../defaults');\nvar CanceledError = require('../cancel/CanceledError');\n\n/**\n * Throws a `CanceledError` if cancellation has been requested.\n */\nfunction throwIfCancellationRequested(config) {\n if (config.cancelToken) {\n config.cancelToken.throwIfRequested();\n }\n\n if (config.signal && config.signal.aborted) {\n throw new CanceledError();\n }\n}\n\n/**\n * Dispatch a request to the server using the configured adapter.\n *\n * @param {object} config The config that is to be used for the request\n * @returns {Promise} The Promise to be fulfilled\n */\nmodule.exports = function dispatchRequest(config) {\n throwIfCancellationRequested(config);\n\n // Ensure headers exist\n config.headers = config.headers || {};\n\n // Transform request data\n config.data = transformData.call(\n config,\n config.data,\n config.headers,\n config.transformRequest\n );\n\n // Flatten headers\n config.headers = utils.merge(\n config.headers.common || {},\n config.headers[config.method] || {},\n config.headers\n );\n\n utils.forEach(\n ['delete', 'get', 'head', 'post', 'put', 'patch', 'common'],\n function cleanHeaderConfig(method) {\n delete config.headers[method];\n }\n );\n\n var adapter = config.adapter || defaults.adapter;\n\n return adapter(config).then(function onAdapterResolution(response) {\n throwIfCancellationRequested(config);\n\n // Transform response data\n response.data = transformData.call(\n config,\n response.data,\n response.headers,\n config.transformResponse\n );\n\n return response;\n }, function onAdapterRejection(reason) {\n if (!isCancel(reason)) {\n throwIfCancellationRequested(config);\n\n // Transform response data\n if (reason && reason.response) {\n reason.response.data = transformData.call(\n config,\n reason.response.data,\n reason.response.headers,\n config.transformResponse\n );\n }\n }\n\n return Promise.reject(reason);\n });\n};\n","'use strict';\n\nvar utils = require('../utils');\n\n/**\n * Config-specific merge-function which creates a new config-object\n * by merging two configuration objects together.\n *\n * @param {Object} config1\n * @param {Object} config2\n * @returns {Object} New object resulting from merging config2 to config1\n */\nmodule.exports = function mergeConfig(config1, config2) {\n // eslint-disable-next-line no-param-reassign\n config2 = config2 || {};\n var config = {};\n\n function getMergedValue(target, source) {\n if (utils.isPlainObject(target) && utils.isPlainObject(source)) {\n return utils.merge(target, source);\n } else if (utils.isPlainObject(source)) {\n return utils.merge({}, source);\n } else if (utils.isArray(source)) {\n return source.slice();\n }\n return source;\n }\n\n // eslint-disable-next-line consistent-return\n function mergeDeepProperties(prop) {\n if (!utils.isUndefined(config2[prop])) {\n return getMergedValue(config1[prop], config2[prop]);\n } else if (!utils.isUndefined(config1[prop])) {\n return getMergedValue(undefined, config1[prop]);\n }\n }\n\n // eslint-disable-next-line consistent-return\n function valueFromConfig2(prop) {\n if (!utils.isUndefined(config2[prop])) {\n return getMergedValue(undefined, config2[prop]);\n }\n }\n\n // eslint-disable-next-line consistent-return\n function defaultToConfig2(prop) {\n if (!utils.isUndefined(config2[prop])) {\n return getMergedValue(undefined, config2[prop]);\n } else if (!utils.isUndefined(config1[prop])) {\n return getMergedValue(undefined, config1[prop]);\n }\n }\n\n // eslint-disable-next-line consistent-return\n function mergeDirectKeys(prop) {\n if (prop in config2) {\n return getMergedValue(config1[prop], config2[prop]);\n } else if (prop in config1) {\n return getMergedValue(undefined, config1[prop]);\n }\n }\n\n var mergeMap = {\n 'url': valueFromConfig2,\n 'method': valueFromConfig2,\n 'data': valueFromConfig2,\n 'baseURL': defaultToConfig2,\n 'transformRequest': defaultToConfig2,\n 'transformResponse': defaultToConfig2,\n 'paramsSerializer': defaultToConfig2,\n 'timeout': defaultToConfig2,\n 'timeoutMessage': defaultToConfig2,\n 'withCredentials': defaultToConfig2,\n 'adapter': defaultToConfig2,\n 'responseType': defaultToConfig2,\n 'xsrfCookieName': defaultToConfig2,\n 'xsrfHeaderName': defaultToConfig2,\n 'onUploadProgress': defaultToConfig2,\n 'onDownloadProgress': defaultToConfig2,\n 'decompress': defaultToConfig2,\n 'maxContentLength': defaultToConfig2,\n 'maxBodyLength': defaultToConfig2,\n 'beforeRedirect': defaultToConfig2,\n 'transport': defaultToConfig2,\n 'httpAgent': defaultToConfig2,\n 'httpsAgent': defaultToConfig2,\n 'cancelToken': defaultToConfig2,\n 'socketPath': defaultToConfig2,\n 'responseEncoding': defaultToConfig2,\n 'validateStatus': mergeDirectKeys\n };\n\n utils.forEach(Object.keys(config1).concat(Object.keys(config2)), function computeConfigValue(prop) {\n var merge = mergeMap[prop] || mergeDeepProperties;\n var configValue = merge(prop);\n (utils.isUndefined(configValue) && merge !== mergeDirectKeys) || (config[prop] = configValue);\n });\n\n return config;\n};\n","'use strict';\n\nvar AxiosError = require('./AxiosError');\n\n/**\n * Resolve or reject a Promise based on response status.\n *\n * @param {Function} resolve A function that resolves the promise.\n * @param {Function} reject A function that rejects the promise.\n * @param {object} response The response.\n */\nmodule.exports = function settle(resolve, reject, response) {\n var validateStatus = response.config.validateStatus;\n if (!response.status || !validateStatus || validateStatus(response.status)) {\n resolve(response);\n } else {\n reject(new AxiosError(\n 'Request failed with status code ' + response.status,\n [AxiosError.ERR_BAD_REQUEST, AxiosError.ERR_BAD_RESPONSE][Math.floor(response.status / 100) - 4],\n response.config,\n response.request,\n response\n ));\n }\n};\n","'use strict';\n\nvar utils = require('./../utils');\nvar defaults = require('../defaults');\n\n/**\n * Transform the data for a request or a response\n *\n * @param {Object|String} data The data to be transformed\n * @param {Array} headers The headers for the request or response\n * @param {Array|Function} fns A single function or Array of functions\n * @returns {*} The resulting transformed data\n */\nmodule.exports = function transformData(data, headers, fns) {\n var context = this || defaults;\n /*eslint no-param-reassign:0*/\n utils.forEach(fns, function transform(fn) {\n data = fn.call(context, data, headers);\n });\n\n return data;\n};\n","'use strict';\n\nvar utils = require('../utils');\nvar normalizeHeaderName = require('../helpers/normalizeHeaderName');\nvar AxiosError = require('../core/AxiosError');\nvar transitionalDefaults = require('./transitional');\nvar toFormData = require('../helpers/toFormData');\n\nvar DEFAULT_CONTENT_TYPE = {\n 'Content-Type': 'application/x-www-form-urlencoded'\n};\n\nfunction setContentTypeIfUnset(headers, value) {\n if (!utils.isUndefined(headers) && utils.isUndefined(headers['Content-Type'])) {\n headers['Content-Type'] = value;\n }\n}\n\nfunction getDefaultAdapter() {\n var adapter;\n if (typeof XMLHttpRequest !== 'undefined') {\n // For browsers use XHR adapter\n adapter = require('../adapters/xhr');\n } else if (typeof process !== 'undefined' && Object.prototype.toString.call(process) === '[object process]') {\n // For node use HTTP adapter\n adapter = require('../adapters/http');\n }\n return adapter;\n}\n\nfunction stringifySafely(rawValue, parser, encoder) {\n if (utils.isString(rawValue)) {\n try {\n (parser || JSON.parse)(rawValue);\n return utils.trim(rawValue);\n } catch (e) {\n if (e.name !== 'SyntaxError') {\n throw e;\n }\n }\n }\n\n return (encoder || JSON.stringify)(rawValue);\n}\n\nvar defaults = {\n\n transitional: transitionalDefaults,\n\n adapter: getDefaultAdapter(),\n\n transformRequest: [function transformRequest(data, headers) {\n normalizeHeaderName(headers, 'Accept');\n normalizeHeaderName(headers, 'Content-Type');\n\n if (utils.isFormData(data) ||\n utils.isArrayBuffer(data) ||\n utils.isBuffer(data) ||\n utils.isStream(data) ||\n utils.isFile(data) ||\n utils.isBlob(data)\n ) {\n return data;\n }\n if (utils.isArrayBufferView(data)) {\n return data.buffer;\n }\n if (utils.isURLSearchParams(data)) {\n setContentTypeIfUnset(headers, 'application/x-www-form-urlencoded;charset=utf-8');\n return data.toString();\n }\n\n var isObjectPayload = utils.isObject(data);\n var contentType = headers && headers['Content-Type'];\n\n var isFileList;\n\n if ((isFileList = utils.isFileList(data)) || (isObjectPayload && contentType === 'multipart/form-data')) {\n var _FormData = this.env && this.env.FormData;\n return toFormData(isFileList ? {'files[]': data} : data, _FormData && new _FormData());\n } else if (isObjectPayload || contentType === 'application/json') {\n setContentTypeIfUnset(headers, 'application/json');\n return stringifySafely(data);\n }\n\n return data;\n }],\n\n transformResponse: [function transformResponse(data) {\n var transitional = this.transitional || defaults.transitional;\n var silentJSONParsing = transitional && transitional.silentJSONParsing;\n var forcedJSONParsing = transitional && transitional.forcedJSONParsing;\n var strictJSONParsing = !silentJSONParsing && this.responseType === 'json';\n\n if (strictJSONParsing || (forcedJSONParsing && utils.isString(data) && data.length)) {\n try {\n return JSON.parse(data);\n } catch (e) {\n if (strictJSONParsing) {\n if (e.name === 'SyntaxError') {\n throw AxiosError.from(e, AxiosError.ERR_BAD_RESPONSE, this, null, this.response);\n }\n throw e;\n }\n }\n }\n\n return data;\n }],\n\n /**\n * A timeout in milliseconds to abort a request. If set to 0 (default) a\n * timeout is not created.\n */\n timeout: 0,\n\n xsrfCookieName: 'XSRF-TOKEN',\n xsrfHeaderName: 'X-XSRF-TOKEN',\n\n maxContentLength: -1,\n maxBodyLength: -1,\n\n env: {\n FormData: require('./env/FormData')\n },\n\n validateStatus: function validateStatus(status) {\n return status >= 200 && status < 300;\n },\n\n headers: {\n common: {\n 'Accept': 'application/json, text/plain, */*'\n }\n }\n};\n\nutils.forEach(['delete', 'get', 'head'], function forEachMethodNoData(method) {\n defaults.headers[method] = {};\n});\n\nutils.forEach(['post', 'put', 'patch'], function forEachMethodWithData(method) {\n defaults.headers[method] = utils.merge(DEFAULT_CONTENT_TYPE);\n});\n\nmodule.exports = defaults;\n","'use strict';\n\nmodule.exports = {\n silentJSONParsing: true,\n forcedJSONParsing: true,\n clarifyTimeoutError: false\n};\n","module.exports = {\n \"version\": \"0.27.2\"\n};","'use strict';\n\nmodule.exports = function bind(fn, thisArg) {\n return function wrap() {\n var args = new Array(arguments.length);\n for (var i = 0; i < args.length; i++) {\n args[i] = arguments[i];\n }\n return fn.apply(thisArg, args);\n };\n};\n","'use strict';\n\nvar utils = require('./../utils');\n\nfunction encode(val) {\n return encodeURIComponent(val).\n replace(/%3A/gi, ':').\n replace(/%24/g, '$').\n replace(/%2C/gi, ',').\n replace(/%20/g, '+').\n replace(/%5B/gi, '[').\n replace(/%5D/gi, ']');\n}\n\n/**\n * Build a URL by appending params to the end\n *\n * @param {string} url The base of the url (e.g., http://www.google.com)\n * @param {object} [params] The params to be appended\n * @returns {string} The formatted url\n */\nmodule.exports = function buildURL(url, params, paramsSerializer) {\n /*eslint no-param-reassign:0*/\n if (!params) {\n return url;\n }\n\n var serializedParams;\n if (paramsSerializer) {\n serializedParams = paramsSerializer(params);\n } else if (utils.isURLSearchParams(params)) {\n serializedParams = params.toString();\n } else {\n var parts = [];\n\n utils.forEach(params, function serialize(val, key) {\n if (val === null || typeof val === 'undefined') {\n return;\n }\n\n if (utils.isArray(val)) {\n key = key + '[]';\n } else {\n val = [val];\n }\n\n utils.forEach(val, function parseValue(v) {\n if (utils.isDate(v)) {\n v = v.toISOString();\n } else if (utils.isObject(v)) {\n v = JSON.stringify(v);\n }\n parts.push(encode(key) + '=' + encode(v));\n });\n });\n\n serializedParams = parts.join('&');\n }\n\n if (serializedParams) {\n var hashmarkIndex = url.indexOf('#');\n if (hashmarkIndex !== -1) {\n url = url.slice(0, hashmarkIndex);\n }\n\n url += (url.indexOf('?') === -1 ? '?' : '&') + serializedParams;\n }\n\n return url;\n};\n","'use strict';\n\n/**\n * Creates a new URL by combining the specified URLs\n *\n * @param {string} baseURL The base URL\n * @param {string} relativeURL The relative URL\n * @returns {string} The combined URL\n */\nmodule.exports = function combineURLs(baseURL, relativeURL) {\n return relativeURL\n ? baseURL.replace(/\\/+$/, '') + '/' + relativeURL.replace(/^\\/+/, '')\n : baseURL;\n};\n","'use strict';\n\nvar utils = require('./../utils');\n\nmodule.exports = (\n utils.isStandardBrowserEnv() ?\n\n // Standard browser envs support document.cookie\n (function standardBrowserEnv() {\n return {\n write: function write(name, value, expires, path, domain, secure) {\n var cookie = [];\n cookie.push(name + '=' + encodeURIComponent(value));\n\n if (utils.isNumber(expires)) {\n cookie.push('expires=' + new Date(expires).toGMTString());\n }\n\n if (utils.isString(path)) {\n cookie.push('path=' + path);\n }\n\n if (utils.isString(domain)) {\n cookie.push('domain=' + domain);\n }\n\n if (secure === true) {\n cookie.push('secure');\n }\n\n document.cookie = cookie.join('; ');\n },\n\n read: function read(name) {\n var match = document.cookie.match(new RegExp('(^|;\\\\s*)(' + name + ')=([^;]*)'));\n return (match ? decodeURIComponent(match[3]) : null);\n },\n\n remove: function remove(name) {\n this.write(name, '', Date.now() - 86400000);\n }\n };\n })() :\n\n // Non standard browser env (web workers, react-native) lack needed support.\n (function nonStandardBrowserEnv() {\n return {\n write: function write() {},\n read: function read() { return null; },\n remove: function remove() {}\n };\n })()\n);\n","'use strict';\n\n/**\n * Determines whether the specified URL is absolute\n *\n * @param {string} url The URL to test\n * @returns {boolean} True if the specified URL is absolute, otherwise false\n */\nmodule.exports = function isAbsoluteURL(url) {\n // A URL is considered absolute if it begins with \"://\" or \"//\" (protocol-relative URL).\n // RFC 3986 defines scheme name as a sequence of characters beginning with a letter and followed\n // by any combination of letters, digits, plus, period, or hyphen.\n return /^([a-z][a-z\\d+\\-.]*:)?\\/\\//i.test(url);\n};\n","'use strict';\n\nvar utils = require('./../utils');\n\n/**\n * Determines whether the payload is an error thrown by Axios\n *\n * @param {*} payload The value to test\n * @returns {boolean} True if the payload is an error thrown by Axios, otherwise false\n */\nmodule.exports = function isAxiosError(payload) {\n return utils.isObject(payload) && (payload.isAxiosError === true);\n};\n","'use strict';\n\nvar utils = require('./../utils');\n\nmodule.exports = (\n utils.isStandardBrowserEnv() ?\n\n // Standard browser envs have full support of the APIs needed to test\n // whether the request URL is of the same origin as current location.\n (function standardBrowserEnv() {\n var msie = /(msie|trident)/i.test(navigator.userAgent);\n var urlParsingNode = document.createElement('a');\n var originURL;\n\n /**\n * Parse a URL to discover it's components\n *\n * @param {String} url The URL to be parsed\n * @returns {Object}\n */\n function resolveURL(url) {\n var href = url;\n\n if (msie) {\n // IE needs attribute set twice to normalize properties\n urlParsingNode.setAttribute('href', href);\n href = urlParsingNode.href;\n }\n\n urlParsingNode.setAttribute('href', href);\n\n // urlParsingNode provides the UrlUtils interface - http://url.spec.whatwg.org/#urlutils\n return {\n href: urlParsingNode.href,\n protocol: urlParsingNode.protocol ? urlParsingNode.protocol.replace(/:$/, '') : '',\n host: urlParsingNode.host,\n search: urlParsingNode.search ? urlParsingNode.search.replace(/^\\?/, '') : '',\n hash: urlParsingNode.hash ? urlParsingNode.hash.replace(/^#/, '') : '',\n hostname: urlParsingNode.hostname,\n port: urlParsingNode.port,\n pathname: (urlParsingNode.pathname.charAt(0) === '/') ?\n urlParsingNode.pathname :\n '/' + urlParsingNode.pathname\n };\n }\n\n originURL = resolveURL(window.location.href);\n\n /**\n * Determine if a URL shares the same origin as the current location\n *\n * @param {String} requestURL The URL to test\n * @returns {boolean} True if URL shares the same origin, otherwise false\n */\n return function isURLSameOrigin(requestURL) {\n var parsed = (utils.isString(requestURL)) ? resolveURL(requestURL) : requestURL;\n return (parsed.protocol === originURL.protocol &&\n parsed.host === originURL.host);\n };\n })() :\n\n // Non standard browser envs (web workers, react-native) lack needed support.\n (function nonStandardBrowserEnv() {\n return function isURLSameOrigin() {\n return true;\n };\n })()\n);\n","'use strict';\n\nvar utils = require('../utils');\n\nmodule.exports = function normalizeHeaderName(headers, normalizedName) {\n utils.forEach(headers, function processHeader(value, name) {\n if (name !== normalizedName && name.toUpperCase() === normalizedName.toUpperCase()) {\n headers[normalizedName] = value;\n delete headers[name];\n }\n });\n};\n","// eslint-disable-next-line strict\nmodule.exports = null;\n","'use strict';\n\nvar utils = require('./../utils');\n\n// Headers whose duplicates are ignored by node\n// c.f. https://nodejs.org/api/http.html#http_message_headers\nvar ignoreDuplicateOf = [\n 'age', 'authorization', 'content-length', 'content-type', 'etag',\n 'expires', 'from', 'host', 'if-modified-since', 'if-unmodified-since',\n 'last-modified', 'location', 'max-forwards', 'proxy-authorization',\n 'referer', 'retry-after', 'user-agent'\n];\n\n/**\n * Parse headers into an object\n *\n * ```\n * Date: Wed, 27 Aug 2014 08:58:49 GMT\n * Content-Type: application/json\n * Connection: keep-alive\n * Transfer-Encoding: chunked\n * ```\n *\n * @param {String} headers Headers needing to be parsed\n * @returns {Object} Headers parsed into an object\n */\nmodule.exports = function parseHeaders(headers) {\n var parsed = {};\n var key;\n var val;\n var i;\n\n if (!headers) { return parsed; }\n\n utils.forEach(headers.split('\\n'), function parser(line) {\n i = line.indexOf(':');\n key = utils.trim(line.substr(0, i)).toLowerCase();\n val = utils.trim(line.substr(i + 1));\n\n if (key) {\n if (parsed[key] && ignoreDuplicateOf.indexOf(key) >= 0) {\n return;\n }\n if (key === 'set-cookie') {\n parsed[key] = (parsed[key] ? parsed[key] : []).concat([val]);\n } else {\n parsed[key] = parsed[key] ? parsed[key] + ', ' + val : val;\n }\n }\n });\n\n return parsed;\n};\n","'use strict';\n\nmodule.exports = function parseProtocol(url) {\n var match = /^([-+\\w]{1,25})(:?\\/\\/|:)/.exec(url);\n return match && match[1] || '';\n};\n","'use strict';\n\n/**\n * Syntactic sugar for invoking a function and expanding an array for arguments.\n *\n * Common use case would be to use `Function.prototype.apply`.\n *\n * ```js\n * function f(x, y, z) {}\n * var args = [1, 2, 3];\n * f.apply(null, args);\n * ```\n *\n * With `spread` this example can be re-written.\n *\n * ```js\n * spread(function(x, y, z) {})([1, 2, 3]);\n * ```\n *\n * @param {Function} callback\n * @returns {Function}\n */\nmodule.exports = function spread(callback) {\n return function wrap(arr) {\n return callback.apply(null, arr);\n };\n};\n","'use strict';\n\nvar utils = require('../utils');\n\n/**\n * Convert a data object to FormData\n * @param {Object} obj\n * @param {?Object} [formData]\n * @returns {Object}\n **/\n\nfunction toFormData(obj, formData) {\n // eslint-disable-next-line no-param-reassign\n formData = formData || new FormData();\n\n var stack = [];\n\n function convertValue(value) {\n if (value === null) return '';\n\n if (utils.isDate(value)) {\n return value.toISOString();\n }\n\n if (utils.isArrayBuffer(value) || utils.isTypedArray(value)) {\n return typeof Blob === 'function' ? new Blob([value]) : Buffer.from(value);\n }\n\n return value;\n }\n\n function build(data, parentKey) {\n if (utils.isPlainObject(data) || utils.isArray(data)) {\n if (stack.indexOf(data) !== -1) {\n throw Error('Circular reference detected in ' + parentKey);\n }\n\n stack.push(data);\n\n utils.forEach(data, function each(value, key) {\n if (utils.isUndefined(value)) return;\n var fullKey = parentKey ? parentKey + '.' + key : key;\n var arr;\n\n if (value && !parentKey && typeof value === 'object') {\n if (utils.endsWith(key, '{}')) {\n // eslint-disable-next-line no-param-reassign\n value = JSON.stringify(value);\n } else if (utils.endsWith(key, '[]') && (arr = utils.toArray(value))) {\n // eslint-disable-next-line func-names\n arr.forEach(function(el) {\n !utils.isUndefined(el) && formData.append(fullKey, convertValue(el));\n });\n return;\n }\n }\n\n build(value, fullKey);\n });\n\n stack.pop();\n } else {\n formData.append(parentKey, convertValue(data));\n }\n }\n\n build(obj);\n\n return formData;\n}\n\nmodule.exports = toFormData;\n","'use strict';\n\nvar VERSION = require('../env/data').version;\nvar AxiosError = require('../core/AxiosError');\n\nvar validators = {};\n\n// eslint-disable-next-line func-names\n['object', 'boolean', 'number', 'function', 'string', 'symbol'].forEach(function(type, i) {\n validators[type] = function validator(thing) {\n return typeof thing === type || 'a' + (i < 1 ? 'n ' : ' ') + type;\n };\n});\n\nvar deprecatedWarnings = {};\n\n/**\n * Transitional option validator\n * @param {function|boolean?} validator - set to false if the transitional option has been removed\n * @param {string?} version - deprecated version / removed since version\n * @param {string?} message - some message with additional info\n * @returns {function}\n */\nvalidators.transitional = function transitional(validator, version, message) {\n function formatMessage(opt, desc) {\n return '[Axios v' + VERSION + '] Transitional option \\'' + opt + '\\'' + desc + (message ? '. ' + message : '');\n }\n\n // eslint-disable-next-line func-names\n return function(value, opt, opts) {\n if (validator === false) {\n throw new AxiosError(\n formatMessage(opt, ' has been removed' + (version ? ' in ' + version : '')),\n AxiosError.ERR_DEPRECATED\n );\n }\n\n if (version && !deprecatedWarnings[opt]) {\n deprecatedWarnings[opt] = true;\n // eslint-disable-next-line no-console\n console.warn(\n formatMessage(\n opt,\n ' has been deprecated since v' + version + ' and will be removed in the near future'\n )\n );\n }\n\n return validator ? validator(value, opt, opts) : true;\n };\n};\n\n/**\n * Assert object's properties type\n * @param {object} options\n * @param {object} schema\n * @param {boolean?} allowUnknown\n */\n\nfunction assertOptions(options, schema, allowUnknown) {\n if (typeof options !== 'object') {\n throw new AxiosError('options must be an object', AxiosError.ERR_BAD_OPTION_VALUE);\n }\n var keys = Object.keys(options);\n var i = keys.length;\n while (i-- > 0) {\n var opt = keys[i];\n var validator = schema[opt];\n if (validator) {\n var value = options[opt];\n var result = value === undefined || validator(value, opt, options);\n if (result !== true) {\n throw new AxiosError('option ' + opt + ' must be ' + result, AxiosError.ERR_BAD_OPTION_VALUE);\n }\n continue;\n }\n if (allowUnknown !== true) {\n throw new AxiosError('Unknown option ' + opt, AxiosError.ERR_BAD_OPTION);\n }\n }\n}\n\nmodule.exports = {\n assertOptions: assertOptions,\n validators: validators\n};\n","'use strict';\n\nvar bind = require('./helpers/bind');\n\n// utils is a library of generic helper functions non-specific to axios\n\nvar toString = Object.prototype.toString;\n\n// eslint-disable-next-line func-names\nvar kindOf = (function(cache) {\n // eslint-disable-next-line func-names\n return function(thing) {\n var str = toString.call(thing);\n return cache[str] || (cache[str] = str.slice(8, -1).toLowerCase());\n };\n})(Object.create(null));\n\nfunction kindOfTest(type) {\n type = type.toLowerCase();\n return function isKindOf(thing) {\n return kindOf(thing) === type;\n };\n}\n\n/**\n * Determine if a value is an Array\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is an Array, otherwise false\n */\nfunction isArray(val) {\n return Array.isArray(val);\n}\n\n/**\n * Determine if a value is undefined\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if the value is undefined, otherwise false\n */\nfunction isUndefined(val) {\n return typeof val === 'undefined';\n}\n\n/**\n * Determine if a value is a Buffer\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Buffer, otherwise false\n */\nfunction isBuffer(val) {\n return val !== null && !isUndefined(val) && val.constructor !== null && !isUndefined(val.constructor)\n && typeof val.constructor.isBuffer === 'function' && val.constructor.isBuffer(val);\n}\n\n/**\n * Determine if a value is an ArrayBuffer\n *\n * @function\n * @param {Object} val The value to test\n * @returns {boolean} True if value is an ArrayBuffer, otherwise false\n */\nvar isArrayBuffer = kindOfTest('ArrayBuffer');\n\n\n/**\n * Determine if a value is a view on an ArrayBuffer\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a view on an ArrayBuffer, otherwise false\n */\nfunction isArrayBufferView(val) {\n var result;\n if ((typeof ArrayBuffer !== 'undefined') && (ArrayBuffer.isView)) {\n result = ArrayBuffer.isView(val);\n } else {\n result = (val) && (val.buffer) && (isArrayBuffer(val.buffer));\n }\n return result;\n}\n\n/**\n * Determine if a value is a String\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a String, otherwise false\n */\nfunction isString(val) {\n return typeof val === 'string';\n}\n\n/**\n * Determine if a value is a Number\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Number, otherwise false\n */\nfunction isNumber(val) {\n return typeof val === 'number';\n}\n\n/**\n * Determine if a value is an Object\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is an Object, otherwise false\n */\nfunction isObject(val) {\n return val !== null && typeof val === 'object';\n}\n\n/**\n * Determine if a value is a plain Object\n *\n * @param {Object} val The value to test\n * @return {boolean} True if value is a plain Object, otherwise false\n */\nfunction isPlainObject(val) {\n if (kindOf(val) !== 'object') {\n return false;\n }\n\n var prototype = Object.getPrototypeOf(val);\n return prototype === null || prototype === Object.prototype;\n}\n\n/**\n * Determine if a value is a Date\n *\n * @function\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Date, otherwise false\n */\nvar isDate = kindOfTest('Date');\n\n/**\n * Determine if a value is a File\n *\n * @function\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a File, otherwise false\n */\nvar isFile = kindOfTest('File');\n\n/**\n * Determine if a value is a Blob\n *\n * @function\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Blob, otherwise false\n */\nvar isBlob = kindOfTest('Blob');\n\n/**\n * Determine if a value is a FileList\n *\n * @function\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a File, otherwise false\n */\nvar isFileList = kindOfTest('FileList');\n\n/**\n * Determine if a value is a Function\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Function, otherwise false\n */\nfunction isFunction(val) {\n return toString.call(val) === '[object Function]';\n}\n\n/**\n * Determine if a value is a Stream\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Stream, otherwise false\n */\nfunction isStream(val) {\n return isObject(val) && isFunction(val.pipe);\n}\n\n/**\n * Determine if a value is a FormData\n *\n * @param {Object} thing The value to test\n * @returns {boolean} True if value is an FormData, otherwise false\n */\nfunction isFormData(thing) {\n var pattern = '[object FormData]';\n return thing && (\n (typeof FormData === 'function' && thing instanceof FormData) ||\n toString.call(thing) === pattern ||\n (isFunction(thing.toString) && thing.toString() === pattern)\n );\n}\n\n/**\n * Determine if a value is a URLSearchParams object\n * @function\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a URLSearchParams object, otherwise false\n */\nvar isURLSearchParams = kindOfTest('URLSearchParams');\n\n/**\n * Trim excess whitespace off the beginning and end of a string\n *\n * @param {String} str The String to trim\n * @returns {String} The String freed of excess whitespace\n */\nfunction trim(str) {\n return str.trim ? str.trim() : str.replace(/^\\s+|\\s+$/g, '');\n}\n\n/**\n * Determine if we're running in a standard browser environment\n *\n * This allows axios to run in a web worker, and react-native.\n * Both environments support XMLHttpRequest, but not fully standard globals.\n *\n * web workers:\n * typeof window -> undefined\n * typeof document -> undefined\n *\n * react-native:\n * navigator.product -> 'ReactNative'\n * nativescript\n * navigator.product -> 'NativeScript' or 'NS'\n */\nfunction isStandardBrowserEnv() {\n if (typeof navigator !== 'undefined' && (navigator.product === 'ReactNative' ||\n navigator.product === 'NativeScript' ||\n navigator.product === 'NS')) {\n return false;\n }\n return (\n typeof window !== 'undefined' &&\n typeof document !== 'undefined'\n );\n}\n\n/**\n * Iterate over an Array or an Object invoking a function for each item.\n *\n * If `obj` is an Array callback will be called passing\n * the value, index, and complete array for each item.\n *\n * If 'obj' is an Object callback will be called passing\n * the value, key, and complete object for each property.\n *\n * @param {Object|Array} obj The object to iterate\n * @param {Function} fn The callback to invoke for each item\n */\nfunction forEach(obj, fn) {\n // Don't bother if no value provided\n if (obj === null || typeof obj === 'undefined') {\n return;\n }\n\n // Force an array if not already something iterable\n if (typeof obj !== 'object') {\n /*eslint no-param-reassign:0*/\n obj = [obj];\n }\n\n if (isArray(obj)) {\n // Iterate over array values\n for (var i = 0, l = obj.length; i < l; i++) {\n fn.call(null, obj[i], i, obj);\n }\n } else {\n // Iterate over object keys\n for (var key in obj) {\n if (Object.prototype.hasOwnProperty.call(obj, key)) {\n fn.call(null, obj[key], key, obj);\n }\n }\n }\n}\n\n/**\n * Accepts varargs expecting each argument to be an object, then\n * immutably merges the properties of each object and returns result.\n *\n * When multiple objects contain the same key the later object in\n * the arguments list will take precedence.\n *\n * Example:\n *\n * ```js\n * var result = merge({foo: 123}, {foo: 456});\n * console.log(result.foo); // outputs 456\n * ```\n *\n * @param {Object} obj1 Object to merge\n * @returns {Object} Result of all merge properties\n */\nfunction merge(/* obj1, obj2, obj3, ... */) {\n var result = {};\n function assignValue(val, key) {\n if (isPlainObject(result[key]) && isPlainObject(val)) {\n result[key] = merge(result[key], val);\n } else if (isPlainObject(val)) {\n result[key] = merge({}, val);\n } else if (isArray(val)) {\n result[key] = val.slice();\n } else {\n result[key] = val;\n }\n }\n\n for (var i = 0, l = arguments.length; i < l; i++) {\n forEach(arguments[i], assignValue);\n }\n return result;\n}\n\n/**\n * Extends object a by mutably adding to it the properties of object b.\n *\n * @param {Object} a The object to be extended\n * @param {Object} b The object to copy properties from\n * @param {Object} thisArg The object to bind function to\n * @return {Object} The resulting value of object a\n */\nfunction extend(a, b, thisArg) {\n forEach(b, function assignValue(val, key) {\n if (thisArg && typeof val === 'function') {\n a[key] = bind(val, thisArg);\n } else {\n a[key] = val;\n }\n });\n return a;\n}\n\n/**\n * Remove byte order marker. This catches EF BB BF (the UTF-8 BOM)\n *\n * @param {string} content with BOM\n * @return {string} content value without BOM\n */\nfunction stripBOM(content) {\n if (content.charCodeAt(0) === 0xFEFF) {\n content = content.slice(1);\n }\n return content;\n}\n\n/**\n * Inherit the prototype methods from one constructor into another\n * @param {function} constructor\n * @param {function} superConstructor\n * @param {object} [props]\n * @param {object} [descriptors]\n */\n\nfunction inherits(constructor, superConstructor, props, descriptors) {\n constructor.prototype = Object.create(superConstructor.prototype, descriptors);\n constructor.prototype.constructor = constructor;\n props && Object.assign(constructor.prototype, props);\n}\n\n/**\n * Resolve object with deep prototype chain to a flat object\n * @param {Object} sourceObj source object\n * @param {Object} [destObj]\n * @param {Function} [filter]\n * @returns {Object}\n */\n\nfunction toFlatObject(sourceObj, destObj, filter) {\n var props;\n var i;\n var prop;\n var merged = {};\n\n destObj = destObj || {};\n\n do {\n props = Object.getOwnPropertyNames(sourceObj);\n i = props.length;\n while (i-- > 0) {\n prop = props[i];\n if (!merged[prop]) {\n destObj[prop] = sourceObj[prop];\n merged[prop] = true;\n }\n }\n sourceObj = Object.getPrototypeOf(sourceObj);\n } while (sourceObj && (!filter || filter(sourceObj, destObj)) && sourceObj !== Object.prototype);\n\n return destObj;\n}\n\n/*\n * determines whether a string ends with the characters of a specified string\n * @param {String} str\n * @param {String} searchString\n * @param {Number} [position= 0]\n * @returns {boolean}\n */\nfunction endsWith(str, searchString, position) {\n str = String(str);\n if (position === undefined || position > str.length) {\n position = str.length;\n }\n position -= searchString.length;\n var lastIndex = str.indexOf(searchString, position);\n return lastIndex !== -1 && lastIndex === position;\n}\n\n\n/**\n * Returns new array from array like object\n * @param {*} [thing]\n * @returns {Array}\n */\nfunction toArray(thing) {\n if (!thing) return null;\n var i = thing.length;\n if (isUndefined(i)) return null;\n var arr = new Array(i);\n while (i-- > 0) {\n arr[i] = thing[i];\n }\n return arr;\n}\n\n// eslint-disable-next-line func-names\nvar isTypedArray = (function(TypedArray) {\n // eslint-disable-next-line func-names\n return function(thing) {\n return TypedArray && thing instanceof TypedArray;\n };\n})(typeof Uint8Array !== 'undefined' && Object.getPrototypeOf(Uint8Array));\n\nmodule.exports = {\n isArray: isArray,\n isArrayBuffer: isArrayBuffer,\n isBuffer: isBuffer,\n isFormData: isFormData,\n isArrayBufferView: isArrayBufferView,\n isString: isString,\n isNumber: isNumber,\n isObject: isObject,\n isPlainObject: isPlainObject,\n isUndefined: isUndefined,\n isDate: isDate,\n isFile: isFile,\n isBlob: isBlob,\n isFunction: isFunction,\n isStream: isStream,\n isURLSearchParams: isURLSearchParams,\n isStandardBrowserEnv: isStandardBrowserEnv,\n forEach: forEach,\n merge: merge,\n extend: extend,\n trim: trim,\n stripBOM: stripBOM,\n inherits: inherits,\n toFlatObject: toFlatObject,\n kindOf: kindOf,\n kindOfTest: kindOfTest,\n endsWith: endsWith,\n toArray: toArray,\n isTypedArray: isTypedArray,\n isFileList: isFileList\n};\n","/**\n * lodash (Custom Build) \n * Build: `lodash modularize exports=\"npm\" -o ./`\n * Copyright jQuery Foundation and other contributors \n * Released under MIT license \n * Based on Underscore.js 1.8.3 \n * Copyright Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors\n */\n\n/** Used as references for various `Number` constants. */\nvar INFINITY = 1 / 0;\n\n/** `Object#toString` result references. */\nvar symbolTag = '[object Symbol]';\n\n/** Used to match words composed of alphanumeric characters. */\nvar reAsciiWord = /[^\\x00-\\x2f\\x3a-\\x40\\x5b-\\x60\\x7b-\\x7f]+/g;\n\n/** Used to match Latin Unicode letters (excluding mathematical operators). */\nvar reLatin = /[\\xc0-\\xd6\\xd8-\\xf6\\xf8-\\xff\\u0100-\\u017f]/g;\n\n/** Used to compose unicode character classes. */\nvar rsAstralRange = '\\\\ud800-\\\\udfff',\n rsComboMarksRange = '\\\\u0300-\\\\u036f\\\\ufe20-\\\\ufe23',\n rsComboSymbolsRange = '\\\\u20d0-\\\\u20f0',\n rsDingbatRange = '\\\\u2700-\\\\u27bf',\n rsLowerRange = 'a-z\\\\xdf-\\\\xf6\\\\xf8-\\\\xff',\n rsMathOpRange = '\\\\xac\\\\xb1\\\\xd7\\\\xf7',\n rsNonCharRange = '\\\\x00-\\\\x2f\\\\x3a-\\\\x40\\\\x5b-\\\\x60\\\\x7b-\\\\xbf',\n rsPunctuationRange = '\\\\u2000-\\\\u206f',\n rsSpaceRange = ' \\\\t\\\\x0b\\\\f\\\\xa0\\\\ufeff\\\\n\\\\r\\\\u2028\\\\u2029\\\\u1680\\\\u180e\\\\u2000\\\\u2001\\\\u2002\\\\u2003\\\\u2004\\\\u2005\\\\u2006\\\\u2007\\\\u2008\\\\u2009\\\\u200a\\\\u202f\\\\u205f\\\\u3000',\n rsUpperRange = 'A-Z\\\\xc0-\\\\xd6\\\\xd8-\\\\xde',\n rsVarRange = '\\\\ufe0e\\\\ufe0f',\n rsBreakRange = rsMathOpRange + rsNonCharRange + rsPunctuationRange + rsSpaceRange;\n\n/** Used to compose unicode capture groups. */\nvar rsApos = \"['\\u2019]\",\n rsAstral = '[' + rsAstralRange + ']',\n rsBreak = '[' + rsBreakRange + ']',\n rsCombo = '[' + rsComboMarksRange + rsComboSymbolsRange + ']',\n rsDigits = '\\\\d+',\n rsDingbat = '[' + rsDingbatRange + ']',\n rsLower = '[' + rsLowerRange + ']',\n rsMisc = '[^' + rsAstralRange + rsBreakRange + rsDigits + rsDingbatRange + rsLowerRange + rsUpperRange + ']',\n rsFitz = '\\\\ud83c[\\\\udffb-\\\\udfff]',\n rsModifier = '(?:' + rsCombo + '|' + rsFitz + ')',\n rsNonAstral = '[^' + rsAstralRange + ']',\n rsRegional = '(?:\\\\ud83c[\\\\udde6-\\\\uddff]){2}',\n rsSurrPair = '[\\\\ud800-\\\\udbff][\\\\udc00-\\\\udfff]',\n rsUpper = '[' + rsUpperRange + ']',\n rsZWJ = '\\\\u200d';\n\n/** Used to compose unicode regexes. */\nvar rsLowerMisc = '(?:' + rsLower + '|' + rsMisc + ')',\n rsUpperMisc = '(?:' + rsUpper + '|' + rsMisc + ')',\n rsOptLowerContr = '(?:' + rsApos + '(?:d|ll|m|re|s|t|ve))?',\n rsOptUpperContr = '(?:' + rsApos + '(?:D|LL|M|RE|S|T|VE))?',\n reOptMod = rsModifier + '?',\n rsOptVar = '[' + rsVarRange + ']?',\n rsOptJoin = '(?:' + rsZWJ + '(?:' + [rsNonAstral, rsRegional, rsSurrPair].join('|') + ')' + rsOptVar + reOptMod + ')*',\n rsSeq = rsOptVar + reOptMod + rsOptJoin,\n rsEmoji = '(?:' + [rsDingbat, rsRegional, rsSurrPair].join('|') + ')' + rsSeq,\n rsSymbol = '(?:' + [rsNonAstral + rsCombo + '?', rsCombo, rsRegional, rsSurrPair, rsAstral].join('|') + ')';\n\n/** Used to match apostrophes. */\nvar reApos = RegExp(rsApos, 'g');\n\n/**\n * Used to match [combining diacritical marks](https://en.wikipedia.org/wiki/Combining_Diacritical_Marks) and\n * [combining diacritical marks for symbols](https://en.wikipedia.org/wiki/Combining_Diacritical_Marks_for_Symbols).\n */\nvar reComboMark = RegExp(rsCombo, 'g');\n\n/** Used to match [string symbols](https://mathiasbynens.be/notes/javascript-unicode). */\nvar reUnicode = RegExp(rsFitz + '(?=' + rsFitz + ')|' + rsSymbol + rsSeq, 'g');\n\n/** Used to match complex or compound words. */\nvar reUnicodeWord = RegExp([\n rsUpper + '?' + rsLower + '+' + rsOptLowerContr + '(?=' + [rsBreak, rsUpper, '$'].join('|') + ')',\n rsUpperMisc + '+' + rsOptUpperContr + '(?=' + [rsBreak, rsUpper + rsLowerMisc, '$'].join('|') + ')',\n rsUpper + '?' + rsLowerMisc + '+' + rsOptLowerContr,\n rsUpper + '+' + rsOptUpperContr,\n rsDigits,\n rsEmoji\n].join('|'), 'g');\n\n/** Used to detect strings with [zero-width joiners or code points from the astral planes](http://eev.ee/blog/2015/09/12/dark-corners-of-unicode/). */\nvar reHasUnicode = RegExp('[' + rsZWJ + rsAstralRange + rsComboMarksRange + rsComboSymbolsRange + rsVarRange + ']');\n\n/** Used to detect strings that need a more robust regexp to match words. */\nvar reHasUnicodeWord = /[a-z][A-Z]|[A-Z]{2,}[a-z]|[0-9][a-zA-Z]|[a-zA-Z][0-9]|[^a-zA-Z0-9 ]/;\n\n/** Used to map Latin Unicode letters to basic Latin letters. */\nvar deburredLetters = {\n // Latin-1 Supplement block.\n '\\xc0': 'A', '\\xc1': 'A', '\\xc2': 'A', '\\xc3': 'A', '\\xc4': 'A', '\\xc5': 'A',\n '\\xe0': 'a', '\\xe1': 'a', '\\xe2': 'a', '\\xe3': 'a', '\\xe4': 'a', '\\xe5': 'a',\n '\\xc7': 'C', '\\xe7': 'c',\n '\\xd0': 'D', '\\xf0': 'd',\n '\\xc8': 'E', '\\xc9': 'E', '\\xca': 'E', '\\xcb': 'E',\n '\\xe8': 'e', '\\xe9': 'e', '\\xea': 'e', '\\xeb': 'e',\n '\\xcc': 'I', '\\xcd': 'I', '\\xce': 'I', '\\xcf': 'I',\n '\\xec': 'i', '\\xed': 'i', '\\xee': 'i', '\\xef': 'i',\n '\\xd1': 'N', '\\xf1': 'n',\n '\\xd2': 'O', '\\xd3': 'O', '\\xd4': 'O', '\\xd5': 'O', '\\xd6': 'O', '\\xd8': 'O',\n '\\xf2': 'o', '\\xf3': 'o', '\\xf4': 'o', '\\xf5': 'o', '\\xf6': 'o', '\\xf8': 'o',\n '\\xd9': 'U', '\\xda': 'U', '\\xdb': 'U', '\\xdc': 'U',\n '\\xf9': 'u', '\\xfa': 'u', '\\xfb': 'u', '\\xfc': 'u',\n '\\xdd': 'Y', '\\xfd': 'y', '\\xff': 'y',\n '\\xc6': 'Ae', '\\xe6': 'ae',\n '\\xde': 'Th', '\\xfe': 'th',\n '\\xdf': 'ss',\n // Latin Extended-A block.\n '\\u0100': 'A', '\\u0102': 'A', '\\u0104': 'A',\n '\\u0101': 'a', '\\u0103': 'a', '\\u0105': 'a',\n '\\u0106': 'C', '\\u0108': 'C', '\\u010a': 'C', '\\u010c': 'C',\n '\\u0107': 'c', '\\u0109': 'c', '\\u010b': 'c', '\\u010d': 'c',\n '\\u010e': 'D', '\\u0110': 'D', '\\u010f': 'd', '\\u0111': 'd',\n '\\u0112': 'E', '\\u0114': 'E', '\\u0116': 'E', '\\u0118': 'E', '\\u011a': 'E',\n '\\u0113': 'e', '\\u0115': 'e', '\\u0117': 'e', '\\u0119': 'e', '\\u011b': 'e',\n '\\u011c': 'G', '\\u011e': 'G', '\\u0120': 'G', '\\u0122': 'G',\n '\\u011d': 'g', '\\u011f': 'g', '\\u0121': 'g', '\\u0123': 'g',\n '\\u0124': 'H', '\\u0126': 'H', '\\u0125': 'h', '\\u0127': 'h',\n '\\u0128': 'I', '\\u012a': 'I', '\\u012c': 'I', '\\u012e': 'I', '\\u0130': 'I',\n '\\u0129': 'i', '\\u012b': 'i', '\\u012d': 'i', '\\u012f': 'i', '\\u0131': 'i',\n '\\u0134': 'J', '\\u0135': 'j',\n '\\u0136': 'K', '\\u0137': 'k', '\\u0138': 'k',\n '\\u0139': 'L', '\\u013b': 'L', '\\u013d': 'L', '\\u013f': 'L', '\\u0141': 'L',\n '\\u013a': 'l', '\\u013c': 'l', '\\u013e': 'l', '\\u0140': 'l', '\\u0142': 'l',\n '\\u0143': 'N', '\\u0145': 'N', '\\u0147': 'N', '\\u014a': 'N',\n '\\u0144': 'n', '\\u0146': 'n', '\\u0148': 'n', '\\u014b': 'n',\n '\\u014c': 'O', '\\u014e': 'O', '\\u0150': 'O',\n '\\u014d': 'o', '\\u014f': 'o', '\\u0151': 'o',\n '\\u0154': 'R', '\\u0156': 'R', '\\u0158': 'R',\n '\\u0155': 'r', '\\u0157': 'r', '\\u0159': 'r',\n '\\u015a': 'S', '\\u015c': 'S', '\\u015e': 'S', '\\u0160': 'S',\n '\\u015b': 's', '\\u015d': 's', '\\u015f': 's', '\\u0161': 's',\n '\\u0162': 'T', '\\u0164': 'T', '\\u0166': 'T',\n '\\u0163': 't', '\\u0165': 't', '\\u0167': 't',\n '\\u0168': 'U', '\\u016a': 'U', '\\u016c': 'U', '\\u016e': 'U', '\\u0170': 'U', '\\u0172': 'U',\n '\\u0169': 'u', '\\u016b': 'u', '\\u016d': 'u', '\\u016f': 'u', '\\u0171': 'u', '\\u0173': 'u',\n '\\u0174': 'W', '\\u0175': 'w',\n '\\u0176': 'Y', '\\u0177': 'y', '\\u0178': 'Y',\n '\\u0179': 'Z', '\\u017b': 'Z', '\\u017d': 'Z',\n '\\u017a': 'z', '\\u017c': 'z', '\\u017e': 'z',\n '\\u0132': 'IJ', '\\u0133': 'ij',\n '\\u0152': 'Oe', '\\u0153': 'oe',\n '\\u0149': \"'n\", '\\u017f': 'ss'\n};\n\n/** Detect free variable `global` from Node.js. */\nvar freeGlobal = typeof global == 'object' && global && global.Object === Object && global;\n\n/** Detect free variable `self`. */\nvar freeSelf = typeof self == 'object' && self && self.Object === Object && self;\n\n/** Used as a reference to the global object. */\nvar root = freeGlobal || freeSelf || Function('return this')();\n\n/**\n * A specialized version of `_.reduce` for arrays without support for\n * iteratee shorthands.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @param {*} [accumulator] The initial value.\n * @param {boolean} [initAccum] Specify using the first element of `array` as\n * the initial value.\n * @returns {*} Returns the accumulated value.\n */\nfunction arrayReduce(array, iteratee, accumulator, initAccum) {\n var index = -1,\n length = array ? array.length : 0;\n\n if (initAccum && length) {\n accumulator = array[++index];\n }\n while (++index < length) {\n accumulator = iteratee(accumulator, array[index], index, array);\n }\n return accumulator;\n}\n\n/**\n * Converts an ASCII `string` to an array.\n *\n * @private\n * @param {string} string The string to convert.\n * @returns {Array} Returns the converted array.\n */\nfunction asciiToArray(string) {\n return string.split('');\n}\n\n/**\n * Splits an ASCII `string` into an array of its words.\n *\n * @private\n * @param {string} The string to inspect.\n * @returns {Array} Returns the words of `string`.\n */\nfunction asciiWords(string) {\n return string.match(reAsciiWord) || [];\n}\n\n/**\n * The base implementation of `_.propertyOf` without support for deep paths.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Function} Returns the new accessor function.\n */\nfunction basePropertyOf(object) {\n return function(key) {\n return object == null ? undefined : object[key];\n };\n}\n\n/**\n * Used by `_.deburr` to convert Latin-1 Supplement and Latin Extended-A\n * letters to basic Latin letters.\n *\n * @private\n * @param {string} letter The matched letter to deburr.\n * @returns {string} Returns the deburred letter.\n */\nvar deburrLetter = basePropertyOf(deburredLetters);\n\n/**\n * Checks if `string` contains Unicode symbols.\n *\n * @private\n * @param {string} string The string to inspect.\n * @returns {boolean} Returns `true` if a symbol is found, else `false`.\n */\nfunction hasUnicode(string) {\n return reHasUnicode.test(string);\n}\n\n/**\n * Checks if `string` contains a word composed of Unicode symbols.\n *\n * @private\n * @param {string} string The string to inspect.\n * @returns {boolean} Returns `true` if a word is found, else `false`.\n */\nfunction hasUnicodeWord(string) {\n return reHasUnicodeWord.test(string);\n}\n\n/**\n * Converts `string` to an array.\n *\n * @private\n * @param {string} string The string to convert.\n * @returns {Array} Returns the converted array.\n */\nfunction stringToArray(string) {\n return hasUnicode(string)\n ? unicodeToArray(string)\n : asciiToArray(string);\n}\n\n/**\n * Converts a Unicode `string` to an array.\n *\n * @private\n * @param {string} string The string to convert.\n * @returns {Array} Returns the converted array.\n */\nfunction unicodeToArray(string) {\n return string.match(reUnicode) || [];\n}\n\n/**\n * Splits a Unicode `string` into an array of its words.\n *\n * @private\n * @param {string} The string to inspect.\n * @returns {Array} Returns the words of `string`.\n */\nfunction unicodeWords(string) {\n return string.match(reUnicodeWord) || [];\n}\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/**\n * Used to resolve the\n * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)\n * of values.\n */\nvar objectToString = objectProto.toString;\n\n/** Built-in value references. */\nvar Symbol = root.Symbol;\n\n/** Used to convert symbols to primitives and strings. */\nvar symbolProto = Symbol ? Symbol.prototype : undefined,\n symbolToString = symbolProto ? symbolProto.toString : undefined;\n\n/**\n * The base implementation of `_.slice` without an iteratee call guard.\n *\n * @private\n * @param {Array} array The array to slice.\n * @param {number} [start=0] The start position.\n * @param {number} [end=array.length] The end position.\n * @returns {Array} Returns the slice of `array`.\n */\nfunction baseSlice(array, start, end) {\n var index = -1,\n length = array.length;\n\n if (start < 0) {\n start = -start > length ? 0 : (length + start);\n }\n end = end > length ? length : end;\n if (end < 0) {\n end += length;\n }\n length = start > end ? 0 : ((end - start) >>> 0);\n start >>>= 0;\n\n var result = Array(length);\n while (++index < length) {\n result[index] = array[index + start];\n }\n return result;\n}\n\n/**\n * The base implementation of `_.toString` which doesn't convert nullish\n * values to empty strings.\n *\n * @private\n * @param {*} value The value to process.\n * @returns {string} Returns the string.\n */\nfunction baseToString(value) {\n // Exit early for strings to avoid a performance hit in some environments.\n if (typeof value == 'string') {\n return value;\n }\n if (isSymbol(value)) {\n return symbolToString ? symbolToString.call(value) : '';\n }\n var result = (value + '');\n return (result == '0' && (1 / value) == -INFINITY) ? '-0' : result;\n}\n\n/**\n * Casts `array` to a slice if it's needed.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {number} start The start position.\n * @param {number} [end=array.length] The end position.\n * @returns {Array} Returns the cast slice.\n */\nfunction castSlice(array, start, end) {\n var length = array.length;\n end = end === undefined ? length : end;\n return (!start && end >= length) ? array : baseSlice(array, start, end);\n}\n\n/**\n * Creates a function like `_.lowerFirst`.\n *\n * @private\n * @param {string} methodName The name of the `String` case method to use.\n * @returns {Function} Returns the new case function.\n */\nfunction createCaseFirst(methodName) {\n return function(string) {\n string = toString(string);\n\n var strSymbols = hasUnicode(string)\n ? stringToArray(string)\n : undefined;\n\n var chr = strSymbols\n ? strSymbols[0]\n : string.charAt(0);\n\n var trailing = strSymbols\n ? castSlice(strSymbols, 1).join('')\n : string.slice(1);\n\n return chr[methodName]() + trailing;\n };\n}\n\n/**\n * Creates a function like `_.camelCase`.\n *\n * @private\n * @param {Function} callback The function to combine each word.\n * @returns {Function} Returns the new compounder function.\n */\nfunction createCompounder(callback) {\n return function(string) {\n return arrayReduce(words(deburr(string).replace(reApos, '')), callback, '');\n };\n}\n\n/**\n * Checks if `value` is object-like. A value is object-like if it's not `null`\n * and has a `typeof` result of \"object\".\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is object-like, else `false`.\n * @example\n *\n * _.isObjectLike({});\n * // => true\n *\n * _.isObjectLike([1, 2, 3]);\n * // => true\n *\n * _.isObjectLike(_.noop);\n * // => false\n *\n * _.isObjectLike(null);\n * // => false\n */\nfunction isObjectLike(value) {\n return !!value && typeof value == 'object';\n}\n\n/**\n * Checks if `value` is classified as a `Symbol` primitive or object.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a symbol, else `false`.\n * @example\n *\n * _.isSymbol(Symbol.iterator);\n * // => true\n *\n * _.isSymbol('abc');\n * // => false\n */\nfunction isSymbol(value) {\n return typeof value == 'symbol' ||\n (isObjectLike(value) && objectToString.call(value) == symbolTag);\n}\n\n/**\n * Converts `value` to a string. An empty string is returned for `null`\n * and `undefined` values. The sign of `-0` is preserved.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to process.\n * @returns {string} Returns the string.\n * @example\n *\n * _.toString(null);\n * // => ''\n *\n * _.toString(-0);\n * // => '-0'\n *\n * _.toString([1, 2, 3]);\n * // => '1,2,3'\n */\nfunction toString(value) {\n return value == null ? '' : baseToString(value);\n}\n\n/**\n * Converts `string` to [camel case](https://en.wikipedia.org/wiki/CamelCase).\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category String\n * @param {string} [string=''] The string to convert.\n * @returns {string} Returns the camel cased string.\n * @example\n *\n * _.camelCase('Foo Bar');\n * // => 'fooBar'\n *\n * _.camelCase('--foo-bar--');\n * // => 'fooBar'\n *\n * _.camelCase('__FOO_BAR__');\n * // => 'fooBar'\n */\nvar camelCase = createCompounder(function(result, word, index) {\n word = word.toLowerCase();\n return result + (index ? capitalize(word) : word);\n});\n\n/**\n * Converts the first character of `string` to upper case and the remaining\n * to lower case.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category String\n * @param {string} [string=''] The string to capitalize.\n * @returns {string} Returns the capitalized string.\n * @example\n *\n * _.capitalize('FRED');\n * // => 'Fred'\n */\nfunction capitalize(string) {\n return upperFirst(toString(string).toLowerCase());\n}\n\n/**\n * Deburrs `string` by converting\n * [Latin-1 Supplement](https://en.wikipedia.org/wiki/Latin-1_Supplement_(Unicode_block)#Character_table)\n * and [Latin Extended-A](https://en.wikipedia.org/wiki/Latin_Extended-A)\n * letters to basic Latin letters and removing\n * [combining diacritical marks](https://en.wikipedia.org/wiki/Combining_Diacritical_Marks).\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category String\n * @param {string} [string=''] The string to deburr.\n * @returns {string} Returns the deburred string.\n * @example\n *\n * _.deburr('déjà vu');\n * // => 'deja vu'\n */\nfunction deburr(string) {\n string = toString(string);\n return string && string.replace(reLatin, deburrLetter).replace(reComboMark, '');\n}\n\n/**\n * Converts the first character of `string` to upper case.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category String\n * @param {string} [string=''] The string to convert.\n * @returns {string} Returns the converted string.\n * @example\n *\n * _.upperFirst('fred');\n * // => 'Fred'\n *\n * _.upperFirst('FRED');\n * // => 'FRED'\n */\nvar upperFirst = createCaseFirst('toUpperCase');\n\n/**\n * Splits `string` into an array of its words.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category String\n * @param {string} [string=''] The string to inspect.\n * @param {RegExp|string} [pattern] The pattern to match words.\n * @param- {Object} [guard] Enables use as an iteratee for methods like `_.map`.\n * @returns {Array} Returns the words of `string`.\n * @example\n *\n * _.words('fred, barney, & pebbles');\n * // => ['fred', 'barney', 'pebbles']\n *\n * _.words('fred, barney, & pebbles', /[^, ]+/g);\n * // => ['fred', 'barney', '&', 'pebbles']\n */\nfunction words(string, pattern, guard) {\n string = toString(string);\n pattern = guard ? undefined : pattern;\n\n if (pattern === undefined) {\n return hasUnicodeWord(string) ? unicodeWords(string) : asciiWords(string);\n }\n return string.match(pattern) || [];\n}\n\nmodule.exports = camelCase;\n","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\t// no module.id needed\n\t\t// no module.loaded needed\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId](module, module.exports, __webpack_require__);\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n","// getDefaultExport function for compatibility with non-harmony modules\n__webpack_require__.n = (module) => {\n\tvar getter = module && module.__esModule ?\n\t\t() => (module['default']) :\n\t\t() => (module);\n\t__webpack_require__.d(getter, { a: getter });\n\treturn getter;\n};","// define getter functions for harmony exports\n__webpack_require__.d = (exports, definition) => {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.g = (function() {\n\tif (typeof globalThis === 'object') return globalThis;\n\ttry {\n\t\treturn this || new Function('return this')();\n\t} catch (e) {\n\t\tif (typeof window === 'object') return window;\n\t}\n})();","__webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))","export default function _arrayLikeToArray(arr, len) {\n if (len == null || len > arr.length) len = arr.length;\n\n for (var i = 0, arr2 = new Array(len); i < len; i++) {\n arr2[i] = arr[i];\n }\n\n return arr2;\n}","import arrayWithHoles from \"./arrayWithHoles.js\";\nimport iterableToArrayLimit from \"./iterableToArrayLimit.js\";\nimport unsupportedIterableToArray from \"./unsupportedIterableToArray.js\";\nimport nonIterableRest from \"./nonIterableRest.js\";\nexport default function _slicedToArray(arr, i) {\n return arrayWithHoles(arr) || iterableToArrayLimit(arr, i) || unsupportedIterableToArray(arr, i) || nonIterableRest();\n}","export default function _arrayWithHoles(arr) {\n if (Array.isArray(arr)) return arr;\n}","export default function _iterableToArrayLimit(arr, i) {\n var _i = arr == null ? null : typeof Symbol !== \"undefined\" && arr[Symbol.iterator] || arr[\"@@iterator\"];\n\n if (_i == null) return;\n var _arr = [];\n var _n = true;\n var _d = false;\n\n var _s, _e;\n\n try {\n for (_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true) {\n _arr.push(_s.value);\n\n if (i && _arr.length === i) break;\n }\n } catch (err) {\n _d = true;\n _e = err;\n } finally {\n try {\n if (!_n && _i[\"return\"] != null) _i[\"return\"]();\n } finally {\n if (_d) throw _e;\n }\n }\n\n return _arr;\n}","import arrayLikeToArray from \"./arrayLikeToArray.js\";\nexport default function _unsupportedIterableToArray(o, minLen) {\n if (!o) return;\n if (typeof o === \"string\") return arrayLikeToArray(o, minLen);\n var n = Object.prototype.toString.call(o).slice(8, -1);\n if (n === \"Object\" && o.constructor) n = o.constructor.name;\n if (n === \"Map\" || n === \"Set\") return Array.from(o);\n if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return arrayLikeToArray(o, minLen);\n}","export default function _nonIterableRest() {\n throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}","function _defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n}\n\nexport default function _createClass(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties(Constructor, staticProps);\n Object.defineProperty(Constructor, \"prototype\", {\n writable: false\n });\n return Constructor;\n}","export default function _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n}","export var Name = 'accept-notification';\nexport var AcceptNotificationEvent = Name;","export var Name = 'add-to-basket';\nexport var AddToBasketEvent = Name;\nexport var Method;\n\n(function (Method) {\n Method[\"BUY_FOR_MONEY\"] = \"BUY_FOR_MONEY\";\n Method[\"BUY_FOR_POINTS\"] = \"BUY_FOR_POINTS\";\n})(Method || (Method = {}));","export var Name = 'add-backorder-demand';\nexport var AddBackorderDemandEvent = Name;","export var Name = 'add-basket-offer';\nexport var AddBasketOffer = Name;","export var Name = 'add-catalogue-offer';\nexport var AddCatalogueOfferEvent = Name;","export var Name = 'add-customer-order';\nexport var AddCustomerOrderEvent = Name;","export var Name = 'add-free-shipping-offer';\nexport var AddFreeShippingOfferEvent = Name;","export var Name = 'add-voucher';\nexport var AddVoucherEvent = Name;","import { Method } from '@ori-events/add-to-basket';\nexport var Name = 'loyalty-dialog-result';\nexport var LoyaltyDialogResultEvent = Name;\nexport var LoyaltyDialogResults;\n\n(function (LoyaltyDialogResults) {\n LoyaltyDialogResults[\"CLOSE\"] = \"CLOSE\";\n})(LoyaltyDialogResults || (LoyaltyDialogResults = {}));\n\nexport { Method };\nexport var Results;\n\n(function (Results) {\n Results[Results[\"CLOSE\"] = LoyaltyDialogResults.CLOSE] = \"CLOSE\";\n Results[Results[\"BUY_FOR_MONEY\"] = Method.BUY_FOR_MONEY] = \"BUY_FOR_MONEY\";\n Results[Results[\"BUY_FOR_POINTS\"] = Method.BUY_FOR_POINTS] = \"BUY_FOR_POINTS\";\n})(Results || (Results = {}));\n\nexport var isLoyaltyBuyForMoneyResult = function isLoyaltyBuyForMoneyResult(result) {\n return result === Method.BUY_FOR_MONEY;\n};\nexport var isLoyaltyBuyForPointsResult = function isLoyaltyBuyForPointsResult(result) {\n return result === Method.BUY_FOR_POINTS;\n};\nexport var isLoyaltyCloseResult = function isLoyaltyCloseResult(result) {\n return result === LoyaltyDialogResults.CLOSE;\n};","export var BasketOfferTypes;\n\n(function (BasketOfferTypes) {\n BasketOfferTypes[BasketOfferTypes[\"BUY_WITH_DISCOUNT\"] = 1] = \"BUY_WITH_DISCOUNT\";\n BasketOfferTypes[BasketOfferTypes[\"GET_BENEFIT\"] = 2] = \"GET_BENEFIT\";\n BasketOfferTypes[BasketOfferTypes[\"CHOOSE_WITH_DISCOUNT\"] = 3] = \"CHOOSE_WITH_DISCOUNT\";\n BasketOfferTypes[BasketOfferTypes[\"CHOOSE_AND_GET\"] = 4] = \"CHOOSE_AND_GET\";\n BasketOfferTypes[BasketOfferTypes[\"CHOOSE_AND_CHOOSE\"] = 5] = \"CHOOSE_AND_CHOOSE\";\n})(BasketOfferTypes || (BasketOfferTypes = {}));","export var ShoppingNotificationType;\n\n(function (ShoppingNotificationType) {\n ShoppingNotificationType[\"Error\"] = \"Error\";\n ShoppingNotificationType[\"Info\"] = \"Info\";\n ShoppingNotificationType[\"Reminding\"] = \"Reminding\";\n ShoppingNotificationType[\"Success\"] = \"Success\";\n ShoppingNotificationType[\"Warning\"] = \"Warning\";\n})(ShoppingNotificationType || (ShoppingNotificationType = {}));","export { Results as LastAddedItemMethod } from '@ori-events/loyalty-dialog-result';\nexport { BasketOfferTypes } from './BasketOffer';\nexport { ShoppingNotificationType } from './ShoppingNotification';\nexport var Name = 'basket-updated';\nexport var BasketUpdatedEvent = Name;","export enum ContentTypes {\n Json = 'application/json',\n}\n\nexport enum Header {\n ContentType = 'Content-Type',\n Placement = 'x-placement',\n}\n\nexport enum RequestMethod {\n Get = 'GET',\n Post = 'POST',\n}\n\nexport enum RequestUrl {\n AcceptNotification = '/system/ajax/Message/AcceptFailMessage',\n AddBackorderDemand = '/system/ajax/ShoppingBag/AddBackorderDemand',\n AddBasketOffer = '/system/ajax/Offer/ApplyBasketOffer',\n AddCatalogueOffer = '/system/ajax/Offer/ApplyCatalogueOffer',\n AddCustomerOrder = '/system/ajax/EndConsumerOrder/ApproveOrders',\n AddFreeShippingOffer = '/system/ajax/Delivery/AddFreeShippingItem',\n AddToBasketCheckLoyalty = '/system/ajax/ShoppingBag/AddToShoppingBagItemAndCheckLoyalty',\n AddToBasketForMoney = '/system/ajax/ShoppingBag/AddOrUpdateShoppingBagItem',\n AddToBasketForPoints = '/system/ajax/Offer/AddOfferItem',\n AddToBasketForPointsRewardShop = '/system/ajax/Offer/RedeemLoyaltyPoints',\n AddVoucher = '/system/ajax/ShoppingBag/AddVoucher',\n CancelBackorderDemand = '/system/ajax/ShoppingBag/CancelBackorderDemand',\n CancelSubscription = '/system/ajax/ShoppingBag/CancelSubscription',\n ClearBasket = '/system/ajax/ShoppingBag/RemoveAllShoppingBagItems',\n DelaySubscription = '/system/ajax/ShoppingBag/DelaySubscription',\n GetShoppingContext = '/system/ajax/ShoppingBag/GetShoppingContext',\n PurchaseBasketOffer = '/system/ajax/Offer/PurchaseBasketOffer',\n RemoveBasketItem = '/system/ajax/ShoppingBag/RemoveShoppingBagItem',\n RemoveCustomerOrder = '/system/ajax/EndConsumerOrder/UnapproveOrder',\n RemoveVoucher = '/system/ajax/ShoppingBag/RemoveVoucher',\n ReplaceShoppingBagItem = '/system/ajax/ShoppingBag/ReplaceShoppingBagItem',\n ResetFreeShippingSelection = '/system/ajax/Delivery/ResetFreeShippingSelection',\n UpdateBasketItem = '/system/ajax/ShoppingBag/UpdateShoppingBagItem',\n UpdateCustomerOrderItem = '/system/ajax/EndConsumerOrder/UpdateEndConsumerOrderItem',\n UpdateDeliveryAddress = '/system/ajax/DeliverySelection/UpdateDeliveryAddress',\n UpdateDeliveryChannel = '/system/ajax/DeliverySelection/UpdateDeliveryChannel',\n UpdateDonation = '/system/ajax/Donation/UpdateDonation',\n UpdateOfferItem = '/system/ajax/Offer/UpdateOfferItem',\n UpdateOfferItems = '/system/ajax/Offer/UpdateOfferItems',\n UpdatePaymentProvider = '/system/ajax/Payment/UpdatePaymentProvider',\n}\n","/**\n * HTTP request methods.\n *\n * HTTP defines a set of request methods to indicate the desired action to be\n * performed for a given resource. Although they can also be nouns, these\n * request methods are sometimes referred as HTTP verbs. Each of them implements\n * a different semantic, but some common features are shared by a group of them:\n * e.g. a request method can be safe, idempotent, or cacheable.\n *\n */\nexport enum HttpMethod {\n /**\n * The `CONNECT` method establishes a tunnel to the server identified by the\n * target resource.\n */\n Connect = 'connect',\n\n /**\n * The `DELETE` method deletes the specified resource.\n */\n Delete = 'delete',\n\n /**\n * The `GET` method requests a representation of the specified resource.\n * Requests using GET should only retrieve data.\n */\n Get = 'get',\n\n /**\n * The `HEAD` method asks for a response identical to that of a GET request,\n * but without the response body.\n */\n Head = 'head',\n\n /**\n * The `OPTIONS` method is used to describe the communication options for the\n * target resource.\n */\n Options = 'options',\n\n /**\n * The PATCH method is used to apply partial modifications to a resource.\n */\n Patch = 'patch',\n\n /**\n * The `POST` method is used to submit an entity to the specified resource,\n * often causing a change in state or side effects on the server.\n */\n Post = 'post',\n\n /**\n * The `PUT` method replaces all current representations of the target\n * resource with the request payload.\n */\n Put = 'put',\n\n /**\n * The `TRACE` method performs a message loop-back test along the path to the\n * target resource.\n */\n Trace = 'trace',\n}\n","export var Name = 'cancel-backorder-demand';\nexport var CancelBackorderDemandEvent = Name;","export var Name = 'cancel-subscription';\nexport var CancelSubscriptionEvent = Name;","export var Name = 'clear-basket';\nexport var ClearBasketEvent = Name;","export var Name = 'delay-subscription';\nexport var DelaySubscriptionEvent = Name;","export var Name = 'place-order-requested';\nexport var PlaceOrderRequestedEvent = Name;","export var Name = 'remove-basket-item';\nexport var RemoveBasketItemEvent = Name;","export var Name = 'remove-customer-order';\nexport var RemoveCustomerOrderEvent = Name;","export var Name = 'remove-voucher';\nexport var RemoveVoucherEvent = Name;","export var Name = 'replace-shopping-bag-item';\nexport var ReplaceShoppingBagItemEvent = Name;","export var Name = 'replace-subscription';\nexport var ReplaceSubscriptionEvent = Name;","export var Name = 'request-clear-shopping-cache';\nexport var RequestClearShoppingCacheEvent = Name;","export var Name = 'request-shopping-context';\nexport var RequestShoppingContextEvent = Name;","export var Name = 'reset-shipping-selection';\nexport var ResetShippingSelectionEvent = Name;","export var Name = 'shopping-context-loaded';\nexport var ShoppingContextLoadedEvent = Name;","export var Name = 'update-basket-item';\nexport var UpdateBasketItemEvent = Name;","export var Name = 'update-customer-order-item';\nexport var UpdateCustomerOrderItemEvent = Name;","export var Name = 'update-delivery';\nexport var UpdateDeliveryEvent = Name;","export var Name = 'update-delivery-channel';\nexport var UpdateDeliveryChannelEvent = Name;","export var Name = 'update-donation';\nexport var UpdateDonationEvent = Name;","export var Name = 'update-offer-item';\nexport var UpdateOfferItemEvent = Name;","export var Name = 'update-offer-items';\nexport var UpdateOfferItemsEvent = Name;","export var Name = 'update-payment-provider';\nexport var UpdatePaymentProviderEvent = Name;","export var isErrorResponse = function isErrorResponse(response) {\n return typeof response === 'object' && response.isSuccess === false;\n};","import { isErrorResponse } from '@ori-events/failed-event-data';\nexport var Name = 'accept-notification-failed';\nexport var AcceptNotificationFailedEvent = Name;\nexport var isAcceptNotificationErrorResponse = function isAcceptNotificationErrorResponse(response) {\n return isErrorResponse(response);\n};","import { isErrorResponse } from '@ori-events/failed-event-data';\nexport var Name = 'add-basket-offer-failed';\nexport var AddBasketOfferFailedEvent = Name;\nexport var isAddBasketOfferErrorResponse = function isAddBasketOfferErrorResponse(response) {\n return isErrorResponse(response);\n};","export interface AppConfiguration {\n currentLanguage: string;\n customerId: number;\n globalApiUrl: string;\n identityUrl: string;\n isBrowserStorageUsed: boolean;\n isBrowserTabsSynchronizationUsed: boolean;\n tenant: string;\n}\n\nexport const DEFAULT_CONFIG = {\n currentLanguage: document.documentElement.lang,\n customerId: -1,\n globalApiUrl: 'https://we-test-api.oriflame.com/uat',\n identityUrl: 'https://identity-we-uat.oriflame.com',\n isBrowserStorageUsed: true,\n isBrowserTabsSynchronizationUsed: true,\n tenant: 'uk',\n};\n","export default function _typeof(obj) {\n \"@babel/helpers - typeof\";\n\n return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) {\n return typeof obj;\n } : function (obj) {\n return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n }, _typeof(obj);\n}","import camelCase from 'lodash.camelcase';\n\ntype CamelCaseObjectDeepType = (object?: unknown) => T;\n\nexport const convertToCamelCase: CamelCaseObjectDeepType = (object?: unknown) => {\n if (Array.isArray(object)) {\n return object.map(convertToCamelCase) as unknown as T;\n }\n\n if (typeof object === 'object' && object !== null && object.constructor === Object) {\n return Object.fromEntries(\n Object.entries(object).map(([key, value]) => [camelCase(key), convertToCamelCase(value)]),\n ) as unknown as T;\n }\n\n return object as T;\n};\n","import objectWithoutPropertiesLoose from \"./objectWithoutPropertiesLoose.js\";\nexport default function _objectWithoutProperties(source, excluded) {\n if (source == null) return {};\n var target = objectWithoutPropertiesLoose(source, excluded);\n var key, i;\n\n if (Object.getOwnPropertySymbols) {\n var sourceSymbolKeys = Object.getOwnPropertySymbols(source);\n\n for (i = 0; i < sourceSymbolKeys.length; i++) {\n key = sourceSymbolKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue;\n target[key] = source[key];\n }\n }\n\n return target;\n}","export default function _objectWithoutPropertiesLoose(source, excluded) {\n if (source == null) return {};\n var target = {};\n var sourceKeys = Object.keys(source);\n var key, i;\n\n for (i = 0; i < sourceKeys.length; i++) {\n key = sourceKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n target[key] = source[key];\n }\n\n return target;\n}","import type { PositionData } from '@ori/analytics-data';\n\nimport { ContentTypes, Header, RequestMethod } from '~/models';\n\nexport const getHttpRequestSettings: (\n data?: T,\n method?: RequestMethod,\n) => RequestInit = (data, method = RequestMethod.Get) => {\n const headers: HeadersInit = {\n [Header.ContentType]: ContentTypes.Json,\n };\n let body: BodyInit | undefined;\n if (data) {\n const { placement, ...finalData } = data;\n if (typeof placement !== 'undefined') {\n headers[Header.Placement] = placement;\n }\n const bodyValue = JSON.stringify(finalData);\n body = bodyValue === '{}' ? undefined : bodyValue;\n }\n\n return {\n credentials: 'same-origin',\n headers,\n method,\n ...(method === RequestMethod.Post && Boolean(body) && { body }),\n };\n};\n","/* eslint-disable no-console -- simple logger */\nimport { APPLICATION_NAME } from '~/constants/app';\n\nexport enum LogLevel {\n None,\n Error,\n Warning,\n Info,\n Debug,\n}\n\nexport type LogMethod = (...args: unknown[]) => void;\nexport type LogMethodsMap = Map;\n\nexport const DEFAULT_LOG_LEVEL = LogLevel.Warning;\n\nexport const logMethodsMap: LogMethodsMap = new Map([\n [LogLevel.None, (...args: unknown[]) => {}],\n [LogLevel.Error, console.error],\n [LogLevel.Warning, console.warn],\n [LogLevel.Info, console.info],\n [LogLevel.Debug, console.log],\n]);\n\nconst getTime = () => {\n const date = new Date();\n const minutes = `0${date.getMinutes()}`;\n const seconds = `0${date.getSeconds()}`;\n const milliseconds = `00${date.getMilliseconds()}`;\n const LAST_TWO_DIGITS = -2;\n const LAST_THREE_DIGITS = -3;\n\n return `${date.getHours()}:${minutes.slice(LAST_TWO_DIGITS)}:${seconds.slice(\n LAST_TWO_DIGITS,\n )}.${milliseconds.slice(LAST_THREE_DIGITS)}`;\n};\n\nexport const getLogLevel = () => {\n let result =\n Boolean(window.localStorage) &&\n Number(\n JSON.parse(localStorage.getItem(`${APPLICATION_NAME} debug`) ?? String(DEFAULT_LOG_LEVEL)),\n );\n if (typeof result !== 'number' || result < LogLevel.None || result > LogLevel.Debug) {\n result = DEFAULT_LOG_LEVEL;\n }\n\n return result;\n};\n\nexport const log = (level: LogLevel, ...args: unknown[]) => {\n const currentLevel = getLogLevel();\n if (currentLevel < level) {\n return;\n }\n const time = getTime();\n const method = logMethodsMap.get(level);\n method?.(`%c${time} %c${APPLICATION_NAME}:`, 'color: #09c', 'color: #c90;', ...args);\n};\n\nexport const logError = (...args: unknown[]) => log(LogLevel.Error, ...args);\nexport const logWarning = (...args: unknown[]) => log(LogLevel.Warning, ...args);\nexport const logInfo = (...args: unknown[]) => log(LogLevel.Info, ...args);\nexport const logDebug = (...args: unknown[]) => log(LogLevel.Debug, ...args);\n\nexport const logReceivedEvent = (event: T) =>\n logDebug(`Received ${event.type} event:\\n\\t`, event);\n","import type { BasketOfferItem } from '@ori-events/add-basket-offer';\nimport * as AddBasketOfferFailed from '@ori-events/add-basket-offer-failed';\nimport type { PositionData } from '@ori/analytics-data';\n\nimport type { AddBasketOfferResponse } from '../guards/addBasketOfferResponse';\nimport { isAddBasketOfferErrorResponse } from '../guards/addBasketOfferResponse';\nimport type { RequestUrl } from '../models';\nimport { RequestMethod } from '../models';\nimport { convertToCamelCase } from './convertToCamelCase';\nimport { getHttpRequestSettings } from './getHttpRequestSettings';\n\ninterface AddBasketOfferApplyParams extends PositionData {\n offerId: number;\n}\n\ninterface AddBasketOfferPurchaseParams extends PositionData {\n choiceId: number;\n items: BasketOfferItem[];\n}\n\nexport const addBasketOffer = async (\n url: RequestUrl.AddBasketOffer | RequestUrl.PurchaseBasketOffer,\n params: AddBasketOfferApplyParams | AddBasketOfferPurchaseParams,\n) => {\n const request = await fetch(url, getHttpRequestSettings(params, RequestMethod.Post));\n\n const response = convertToCamelCase((await request.json()) as object);\n\n if (isAddBasketOfferErrorResponse(response)) {\n const event = new CustomEvent(AddBasketOfferFailed.Name, {\n detail: response,\n });\n window.dispatchEvent(event);\n\n return false;\n }\n\n return response;\n};\n","import type * as AddBasketOfferFailed from '@ori-events/add-basket-offer-failed';\nimport type * as BasketUpdated from '@ori-events/basket-updated';\n\nexport type AddBasketOfferResponse = AddBasketOfferFailed.Data | BasketUpdated.Data;\n\nexport const isAddBasketOfferErrorResponse = (\n response: AddBasketOfferResponse,\n): response is AddBasketOfferFailed.Data => 'isSuccess' in response && !response.isSuccess;\n","export const ANONYMOUS_CUSTOMER_ID = -1;\nexport const APPLICATION_NAME = 'shopping-bag-provider';\n\n/** Identity server client ID for local (development-time) authentication. */\nexport const IDENTITY_CLIENT_ID = 'SPADev';\n","import { logDebug } from '~/utils/log';\n\nconst pagePathPatterns = ['/shopping/basket'];\n\nexport const isPageMarkedForCacheCleanup = () => {\n const isCleanupPage = pagePathPatterns.some((item) => window.location.pathname.includes(item));\n if (isCleanupPage) {\n logDebug('Cache cleanup is always requested for current page.');\n }\n\n return isCleanupPage;\n};\n","import * as BasketUpdated from '@ori-events/basket-updated';\n\nimport type { UpdateEventType } from '../models';\n\nexport const dispatchBasketUpdatedEvent = (\n detail: BasketUpdated.Data,\n eventType: UpdateEventType = BasketUpdated.Name,\n) => {\n const event = new CustomEvent(eventType, {\n detail,\n });\n window.dispatchEvent(event);\n};\n\nexport default dispatchBasketUpdatedEvent;\n","export const getCookie = (cookieName: string) => {\n const match = document.cookie.match(new RegExp(`${cookieName}=([^;]+)`));\n\n return match ? match[1] : undefined;\n};\n","import { getCookie } from './cookies';\nimport { adler32 } from './hashes';\nimport { logDebug } from '~/utils/log';\n\nexport const validDataTimeout = 300000; // 5 minutes in ms\nexport const contextKey = 'shoppingContext';\nexport const userCookieName = 'ShoppingKey';\nexport const scheduledCleanupKey = 'shopping-bag-provider cache cleanup';\n\nexport interface StoredValue {\n savedTimestamp: number;\n value: T;\n userCheck: number;\n}\n\nexport const isValidTimestamp = (timestamp: number) => Date.now() - timestamp <= validDataTimeout;\n\n// Both sessionStorage or localStorage could be used here.\n// The sessionStorage doesn't support triggering syncing events on other browser tabs.\n// The sessionStorage should clean up stored data after the browser tab gets closed.\n// But the browser's restore-session-on-reopen functionality may clash with this.\n// Both storage types have no connection with server-side session,\n// so, if working with server session data, manual cleanups / refreshing\n// has to be solved anyway.\nexport const storage = window.localStorage;\nexport const isStorageAvailable = Boolean(storage);\nif (!isStorageAvailable) {\n logDebug('Storage is not available.');\n}\n\n// In Online session, there should always be some value set.\n// The 'unknown' value is just a fallback for testing.\nexport const getUserCheck = () => adler32((getCookie(userCookieName) ?? '').trim() || 'unknown');\n\nconst parseValue = (serializedData: string) => {\n let parsedValue: StoredValue | undefined;\n try {\n parsedValue = JSON.parse(serializedData) as StoredValue;\n } catch (error) {\n logDebug(`Error parsing serialized data:`, error);\n }\n\n return parsedValue;\n};\n\nexport const getItem = (key: string): T | undefined => {\n if (!isStorageAvailable) {\n return undefined;\n }\n\n const data = storage.getItem(key);\n if (!data) {\n logDebug(`Item with key '${key}' wasn't found in storage.`);\n\n return undefined;\n }\n\n const parsedValue = parseValue(data);\n if (!parsedValue) {\n logDebug(`Error getting stored item with key '${key}'.`);\n\n return undefined;\n }\n\n const { savedTimestamp, value, userCheck } = parsedValue;\n if (!isValidTimestamp(savedTimestamp)) {\n storage.removeItem(key);\n logDebug(`Stored item with key '${key}' has expired and was deleted.`);\n\n return undefined;\n }\n\n if (userCheck !== getUserCheck()) {\n storage.removeItem(key);\n logDebug(`Item with key '${key}' was stored for different user and was deleted.`);\n\n return undefined;\n }\n\n logDebug(`Item with key ${key} was found in storage.\\n\\t`, parsedValue);\n\n return value;\n};\n\nexport const setItem = (key: string, value: T) => {\n if (!isStorageAvailable) {\n return false;\n }\n\n const data: StoredValue = {\n savedTimestamp: Date.now(),\n value,\n userCheck: getUserCheck(),\n };\n\n try {\n storage.setItem(key, JSON.stringify(data));\n logDebug(`Stored item with key '${key}', value:\\n\\t`, data);\n } catch (error) {\n logDebug(`Error storing item with ${key}:`, error);\n\n return false;\n }\n\n return true;\n};\n\nexport const removeItem = (key: string) => {\n try {\n storage.removeItem(key);\n logDebug(`Stored item with key '${key}' was removed.`);\n } catch (error) {\n logDebug(`Error removing item with key '${key}':`, error);\n\n return false;\n }\n\n return true;\n};\n\nexport const isScheduledCacheCleanup = (): boolean => {\n if (!isStorageAvailable) {\n return false;\n }\n\n const isScheduled = Boolean(storage.getItem(scheduledCleanupKey));\n if (isScheduled) {\n logDebug('Cache cleanup was scheduled with last page reload.');\n }\n\n return isScheduled;\n};\n\nexport const removeScheduledCacheCleanup = () => storage.removeItem(scheduledCleanupKey);\n\nexport const listenToStoredItemChanges = (\n key: string,\n callback?: (value: T | undefined) => unknown,\n) => {\n const eventName = 'storage';\n const eventListener = ((event: StorageEvent) => {\n if (event.storageArea !== storage || event.key !== key) {\n return undefined;\n }\n\n logDebug(\n `Storage change event from another browser tab was received for item with key '${key}'.`,\n );\n if (event.newValue === null) {\n logDebug(`Stored item with '${key}' was removed in another browser window.`);\n removeItem(key);\n\n return callback?.(undefined);\n }\n\n const parsedValue = parseValue(event.newValue);\n if (!parsedValue) {\n return undefined;\n }\n\n try {\n storage.setItem(key, event.newValue);\n logDebug(`Stored item with key '${key}', value:\\n\\t`, parsedValue);\n } catch (error) {\n logDebug(`Error storing item with key '${key}':`, error);\n }\n\n return callback?.(parsedValue.value);\n }) as EventListener;\n\n return { eventName, eventListener };\n};\n","export const adler32 = (data: string) => {\n const MOD_ADLER = 65521;\n const BITS_MOVED = 16;\n const { length } = data;\n\n let a = 1;\n let b = 0;\n\n for (let i = 0; i < length; i++) {\n // eslint-disable-next-line unicorn/prefer-code-point -- x\n a += data.charCodeAt(i);\n b += a;\n }\n\n a %= MOD_ADLER;\n b %= MOD_ADLER;\n\n // eslint-disable-next-line no-bitwise -- x\n return (b << BITS_MOVED) | a;\n};\n","import { isErrorResponse } from '@ori-events/failed-event-data';\nexport var Name = 'update-basket-item-failed';\nexport var UpdateBasketItemFailedEvent = Name;\nexport var isUpdateBasketItemErrorResponse = function isUpdateBasketItemErrorResponse(response) {\n return isErrorResponse(response);\n};","import { isErrorResponse } from '@ori-events/failed-event-data';\nexport var Name = 'add-catalogue-offer-failed';\nexport var AddCatalogueOfferFailedEvent = Name;\nexport var isAddCatalogueOfferErrorResponse = function isAddCatalogueOfferErrorResponse(response) {\n return isErrorResponse(response);\n};","import type * as AddCatalogueOffer from '@ori-events/add-catalogue-offer';\nimport * as AddCatalogueOfferFailed from '@ori-events/add-catalogue-offer-failed';\nimport type { PositionData } from '@ori/analytics-data';\n\nimport { convertToCamelCase, getHttpRequestSettings } from '../helpers';\nimport { RequestMethod, RequestUrl } from '../models';\n\ninterface Data extends AddCatalogueOffer.Data, PositionData {}\n\nexport const dispatchAddCatalogueOfferFailedEvent = (detail: AddCatalogueOfferFailed.Data) => {\n const event = new CustomEvent(AddCatalogueOfferFailed.Name, {\n detail,\n });\n window.dispatchEvent(event);\n};\n\nexport const addCatalogueOfferHandler = async ({\n detail: { offerId, placement },\n}: CustomEvent) => {\n const request = await fetch(\n RequestUrl.AddCatalogueOffer,\n getHttpRequestSettings({ offerId, placement }, RequestMethod.Post),\n );\n\n const response = convertToCamelCase(\n (await request.json()) as object,\n );\n if (AddCatalogueOfferFailed.isAddCatalogueOfferErrorResponse(response)) {\n dispatchAddCatalogueOfferFailedEvent(response);\n\n return false;\n }\n\n return response;\n};\n\nexport default addCatalogueOfferHandler;\n","import { isErrorResponse } from '@ori-events/failed-event-data';\nexport var Name = 'add-customer-order-failed';\nexport var AddCustomerOrderFailedEvent = Name;\nexport var isAddCustomerOrderErrorResponse = function isAddCustomerOrderErrorResponse(response) {\n return isErrorResponse(response);\n};","import { isErrorResponse } from '@ori-events/failed-event-data';\nexport var Name = 'add-free-shipping-offer-failed';\nexport var AddFreeShippingOfferFailedEvent = Name;\nexport var isAddFreeShippingOfferErrorResponse = function isAddFreeShippingOfferErrorResponse(response) {\n return isErrorResponse(response);\n};","import type * as AddFreeShippingOffer from '@ori-events/add-free-shipping-offer';\nimport * as AddFreeShippingOfferFailed from '@ori-events/add-free-shipping-offer-failed';\nimport type { PositionData } from '@ori/analytics-data';\n\nimport { convertToCamelCase, getHttpRequestSettings } from '~/helpers';\nimport { RequestMethod, RequestUrl } from '~/models';\n\ninterface Data extends AddFreeShippingOffer.Data, PositionData {}\n\nexport const dispatchAddFreeShippingOfferFailedEvent = (\n detail: AddFreeShippingOfferFailed.Data,\n) => {\n const event = new CustomEvent(AddFreeShippingOfferFailed.Name, {\n detail,\n });\n window.dispatchEvent(event);\n};\n\nexport const addFreeShippingOfferHandler = async ({\n detail: { itemCode, placement },\n}: CustomEvent) => {\n const request = await fetch(\n RequestUrl.AddFreeShippingOffer,\n getHttpRequestSettings({ itemCode, placement }, RequestMethod.Post),\n );\n\n const response = convertToCamelCase(\n (await request.json()) as object,\n );\n if (AddFreeShippingOfferFailed.isAddFreeShippingOfferErrorResponse(response)) {\n dispatchAddFreeShippingOfferFailedEvent(response);\n\n return false;\n }\n\n return response;\n};\n\nexport default addFreeShippingOfferHandler;\n","import { isErrorResponse } from '@ori-events/failed-event-data';\nexport var Name = 'add-to-basket-failed';\nexport var AddToBasketFailedEvent = Name;\nexport var isAddToBasketErrorResponse = function isAddToBasketErrorResponse(response) {\n return isErrorResponse(response);\n};","export var Name = 'show-loyalty-dialog';\nexport var ShowLoyaltyDialogEvent = Name;","export const putRequestOptions = {\n method: 'PUT',\n // eslint-disable-next-line @typescript-eslint/naming-convention -- predefined HTTP header name\n headers: { 'Content-Type': 'application/json' },\n};\n","import type { OidcAccessToken } from '@ori/auth';\n\nimport { getPublicToken } from './getPublicToken';\nimport { getToken } from './getToken';\nimport type { TokenConfiguration } from '~/models';\n\nexport const getAuthorizationToken = async (\n tokenConfiguration: TokenConfiguration,\n isCustomerAnonymous: boolean,\n) => {\n let token: OidcAccessToken | undefined;\n\n if (!isCustomerAnonymous) {\n token = await getToken(tokenConfiguration);\n }\n\n if (!token) {\n token = await getPublicToken();\n }\n\n if (!token) {\n throw new Error('Missing access token');\n }\n\n return token;\n};\n","import { OidcAccessToken, OidcClient, OidcTokenStorage } from '@ori/auth';\n\nimport { IDENTITY_CLIENT_ID } from '~/constants';\nimport type { TokenConfiguration } from '~/models';\nimport { logDebug } from '~/utils/log';\n\nexport async function getToken({ forceReload, identityUrl, tenant }: TokenConfiguration) {\n if (window.ori?.tokenService) {\n const oriToken = await window.ori.tokenService.getToken();\n\n if (oriToken) {\n return new OidcAccessToken(oriToken.Token);\n }\n }\n\n // only on dev machine, not needed elsewhere\n if (process.env.NODE_ENV !== 'production') {\n const oidcTokenStorage = new OidcTokenStorage();\n let token;\n\n try {\n token = oidcTokenStorage.getAccessToken();\n } catch {\n // no action here\n }\n\n if (token && !forceReload) {\n return token;\n }\n if (identityUrl) {\n const clientId = IDENTITY_CLIENT_ID;\n\n const oidcClient = new OidcClient(\n {\n callbackUrl: '#/',\n redirectUrl: window.location.href,\n },\n {\n acrValues: `tenant:${tenant}`,\n clientId,\n identityUrl,\n scope: 'openid profile user_identification all',\n },\n );\n\n oidcClient.doLogin();\n }\n }\n\n logDebug(\n `Couldn't get auth token.`,\n '\\n\\twindow.ori.tokenService',\n window.ori?.tokenService,\n '\\n\\tidentityUrl',\n identityUrl,\n );\n throw new Error('Unsupported token configuration');\n}\n","import { OidcAccessToken } from '@ori/auth';\n\nexport const getPublicToken = async () => {\n if (window.ori?.tokenService) {\n const oriToken = await window.ori.tokenService.getPublicToken();\n\n if (oriToken) {\n return new OidcAccessToken(oriToken.Token);\n }\n }\n\n return undefined;\n};\n","import { APPLICATION_NAME } from '~/constants';\n\nexport const MOCKUP_KEY = `${APPLICATION_NAME} API mock`;\n\nexport const isDataMockup = () =>\n Boolean(window.localStorage) && Boolean(JSON.parse(localStorage.getItem(MOCKUP_KEY) ?? '0'));\n","export function normalizeSlashChars(\n input: string,\n isStartingSlashRequired: boolean | undefined = undefined,\n isEndingSlashRequired: boolean | undefined = undefined,\n) {\n let result = input;\n\n if (isStartingSlashRequired !== undefined) {\n while (result[0] === '/') {\n result = result.slice(1);\n }\n }\n\n if (isEndingSlashRequired !== undefined) {\n while (result.at(-1) === '/') {\n result = result.slice(0, -1);\n }\n }\n\n if (isStartingSlashRequired) {\n result = `/${result}`;\n }\n\n if (isEndingSlashRequired) {\n result = `${result}/`;\n }\n\n return result;\n}\n","import type * as AddToBasket from '@ori-events/add-to-basket';\nimport * as AddToBasketFailed from '@ori-events/add-to-basket-failed';\nimport * as ShowLoyaltyDialog from '@ori-events/show-loyalty-dialog';\nimport type { PositionData } from '@ori/analytics-data';\n\nimport { convertToCamelCase } from '.';\nimport type { AddToBasketResponse } from '../guards/addToBasketResponse';\nimport {\n isAddToBasketErrorResponse,\n isAddToBasketLoyaltyResponse,\n isAddToBasketSuccessResponse,\n} from '../guards/addToBasketResponse';\nimport { RequestMethod } from '../models';\nimport { getHttpRequestSettings } from './getHttpRequestSettings';\nimport { logWarning } from '~/utils';\n\nexport interface AddToBasketParams extends AddToBasket.Data, PositionData {\n choiceId?: number | null;\n catalogueItemId?: string;\n}\n\nexport default async (url: string, params: AddToBasketParams, buyingMethod: AddToBasket.Method) => {\n const { itemCode, placement, quantity } = params;\n if (!placement) {\n logWarning(\n `Missing 'placement' property in add-to-basket action data will impact reporting, please contact your SE.`,\n );\n }\n const request = await fetch(url, getHttpRequestSettings(params, RequestMethod.Post));\n\n const response = convertToCamelCase((await request.json()) as object);\n\n if (isAddToBasketLoyaltyResponse(response)) {\n const event = new CustomEvent(ShowLoyaltyDialog.Name, {\n detail: {\n ...response,\n itemCode,\n placement,\n quantity,\n },\n });\n window.dispatchEvent(event);\n\n return false;\n }\n\n if (isAddToBasketSuccessResponse(response)) {\n return {\n ...response,\n lastAddedItem: {\n itemCode,\n method: buyingMethod,\n quantity,\n },\n };\n }\n\n if (isAddToBasketErrorResponse(response)) {\n const event = new CustomEvent(AddToBasketFailed.Name, {\n detail: response,\n });\n window.dispatchEvent(event);\n\n return false;\n }\n\n return false;\n};\n","import type * as AddToBasketFailed from '@ori-events/add-to-basket-failed';\nimport type * as BasketUpdated from '@ori-events/basket-updated';\nimport type * as ShowLoyaltyDialog from '@ori-events/show-loyalty-dialog';\n\nexport type AddToBasketResponse =\n | AddToBasketFailed.Data\n | BasketUpdated.Data\n | ShowLoyaltyDialog.Data;\n\nexport const isAddToBasketErrorResponse = (\n response: AddToBasketResponse,\n): response is AddToBasketFailed.Data =>\n typeof (response as AddToBasketFailed.Data).isSuccess === 'boolean' &&\n !(response as AddToBasketFailed.Data).isSuccess;\n\nexport const isAddToBasketLoyaltyResponse = (\n response: AddToBasketResponse,\n): response is ShowLoyaltyDialog.Data =>\n Boolean((response as ShowLoyaltyDialog.Data).loyaltyPoints);\n\nexport const isAddToBasketSuccessResponse = (\n response: AddToBasketResponse,\n): response is BasketUpdated.Data => Boolean((response as BasketUpdated.Data).shoppingBag);\n","import { isErrorResponse } from '@ori-events/failed-event-data';\nexport var Name = 'add-voucher-failed';\nexport var AddVoucherFailedEvent = Name;\nexport var isAddVoucherErrorResponse = function isAddVoucherErrorResponse(response) {\n return isErrorResponse(response);\n};","import { isErrorResponse } from '@ori-events/failed-event-data';\nexport var Name = 'cancel-subscription-failed';\nexport var CancelSubscriptionFailedEvent = Name;\nexport var isCancelSubscriptionErrorResponse = function isCancelSubscriptionErrorResponse(response) {\n return isErrorResponse(response);\n};","import { isErrorResponse } from '@ori-events/failed-event-data';\nexport var Name = 'delay-subscription-failed';\nexport var DelaySubscriptionFailedEvent = Name;\nexport var isDelaySubscriptionErrorResponse = function isDelaySubscriptionErrorResponse(response) {\n return isErrorResponse(response);\n};","import { isErrorResponse } from '@ori-events/failed-event-data';\nexport var Name = 'remove-customer-order-failed';\nexport var RemoveCustomerOrderFailedEvent = Name;\nexport var isRemoveCustomerOrderErrorResponse = function isRemoveCustomerOrderErrorResponse(response) {\n return isErrorResponse(response);\n};","import { isErrorResponse } from '@ori-events/failed-event-data';\nexport var Name = 'remove-voucher-failed';\nexport var RemoveVoucherFailedEvent = Name;\nexport var isRemoveVoucherErrorResponse = function isRemoveVoucherErrorResponse(response) {\n return isErrorResponse(response);\n};","import { isErrorResponse } from '@ori-events/failed-event-data';\nexport var Name = 'replace-shopping-bag-item-failed';\nexport var ReplaceShoppingBagItemFailedEvent = Name;\nexport var isReplaceShoppingBagItemErrorResponse = function isReplaceShoppingBagItemErrorResponse(response) {\n return isErrorResponse(response);\n};","import { isErrorResponse } from '@ori-events/failed-event-data';\nexport var Name = 'replace-subscription-failed';\nexport var ReplaceSubscriptionFailedEvent = Name;\nexport var isReplaceSubscriptionErrorResponse = function isReplaceSubscriptionErrorResponse(response) {\n return isErrorResponse(response);\n};","import type * as ReplaceSubscription from '@ori-events/replace-subscription';\nimport * as ReplaceSubscriptionFailed from '@ori-events/replace-subscription-failed';\nimport type { PositionData } from '@ori/analytics-data';\n\nimport type { ReplaceSubscriptionResponse } from '../guards/replaceSubscriptionResponse';\nimport { isReplaceSubscriptionErrorResponse } from '../guards/replaceSubscriptionResponse';\nimport { convertToCamelCase, getHttpRequestSettings } from '../helpers';\nimport type { AppConfiguration } from '../models';\nimport { HttpMethod, RequestMethod, RequestUrl } from '../models';\nimport { logDebug, logError, getUrl, getUrlOptions } from '~/utils';\nimport type { GetUrlOptions } from '~/utils';\n\ninterface Data extends ReplaceSubscription.Data, PositionData {}\n\ninterface ReplacementData {\n DroppingId: number;\n ItemCode: string;\n}\n\nconst fetchData = async (\n options: GetUrlOptions,\n data: ReplacementData,\n): Promise =>\n getUrl({\n ...options,\n method: HttpMethod.Put,\n isAuthorizationRequired: true,\n data,\n });\n\nexport default async (\n { detail: { droppingId, itemCode, subscriptionId } }: CustomEvent,\n configuration: AppConfiguration,\n) => {\n // STEP 1 - Update through API\n const { customerId, globalApiUrl } = configuration;\n const { urlOptions } = getUrlOptions({\n configuration,\n basePath: `/customers/${customerId}/subscriptions/${subscriptionId}/subscriptionItems/0`,\n host: globalApiUrl,\n });\n\n const fetcher = async () => {\n const promise = fetchData(urlOptions, { DroppingId: droppingId, ItemCode: itemCode });\n promise\n .then((result) => {\n logDebug(`Subscription successfully replaced: ${result}`);\n })\n .catch((error: unknown) => {\n const message = String(error);\n logError(`Error while replacing subscription in replaceSubscription event: ${message}`);\n });\n\n return promise;\n };\n\n try {\n await fetcher();\n } catch (error: unknown) {\n const message = String(error);\n logError(`Error while replacing subscription in replaceSubscription event: ${message}`);\n\n return false;\n }\n\n // STEP 2 - Update shopping context online endpoints\n const request = await fetch(\n RequestUrl.GetShoppingContext,\n getHttpRequestSettings(undefined, RequestMethod.Post),\n );\n\n const response = convertToCamelCase(\n (await request.json()) as object,\n );\n\n if (isReplaceSubscriptionErrorResponse(response)) {\n const errorEvent = new CustomEvent(\n ReplaceSubscriptionFailed.Name,\n {\n detail: response,\n },\n );\n window.dispatchEvent(errorEvent);\n\n return false;\n }\n\n return response;\n};\n","/* eslint-disable @typescript-eslint/naming-convention -- HTTP header names */\nimport type { OidcAccessToken } from '@ori/auth';\nimport type { AxiosRequestConfig } from 'axios';\nimport axios from 'axios';\n\nimport { getAuthorizationToken } from './getAuthorizationToken';\nimport { isDataMockup } from './isDataMockup';\nimport { normalizeSlashChars } from './normalizeSlashChars';\nimport { HttpMethod } from '~/models';\n\nexport interface GetUrlOptions {\n basePath: string;\n currentLanguage: string;\n host: string;\n identityUrl?: string;\n isAuthorizationRequired?: boolean;\n isCustomerAnonymous: boolean;\n query?: string;\n requestConfig?: AxiosRequestConfig;\n tenant: string;\n}\n\nexport async function getUrl({\n basePath: originalBasePath,\n currentLanguage,\n host: originalHost,\n identityUrl,\n isAuthorizationRequired,\n isCustomerAnonymous,\n method: originalMethod,\n query,\n tenant,\n ...config\n}: AxiosRequestConfig & GetUrlOptions): Promise {\n let isMockup = false;\n if (process.env.NODE_ENV !== 'production') {\n isMockup = isDataMockup();\n }\n let method = originalMethod;\n let token: OidcAccessToken | undefined;\n const basePath = normalizeSlashChars(originalBasePath, true, false);\n const host = normalizeSlashChars(originalHost, undefined, false);\n let url = `${host}${basePath}${query ?? ''}`;\n\n if (isMockup) {\n let mockupBasePath = basePath;\n\n if (basePath.includes('shoppingSessions')) {\n mockupBasePath = basePath.replace(/shoppingSessions\\/.*\\//, 'shoppingSessions/');\n }\n\n method = HttpMethod.Get;\n url = `/mockups${mockupBasePath}.json`;\n }\n\n if (!isMockup && isAuthorizationRequired) {\n token = await getAuthorizationToken(\n {\n identityUrl,\n tenant,\n },\n isCustomerAnonymous,\n );\n }\n\n const headers = {\n ...config.headers,\n ...(token && {\n Authorization: token.toString(),\n }),\n 'Accept-Language': currentLanguage,\n 'x-tenant-context': tenant,\n };\n const { data } = await axios.request({\n ...config,\n headers,\n method,\n url,\n });\n\n return data;\n}\n","import { isErrorResponse } from '@ori-events/failed-event-data';\nexport var Name = 'update-customer-order-item-failed';\nexport var UpdateCustomerOrderItemFailedEvent = Name;\nexport var isUpdateCustomerOrderItemErrorResponse = function isUpdateCustomerOrderItemErrorResponse(response) {\n return isErrorResponse(response);\n};","import { isErrorResponse } from '@ori-events/failed-event-data';\nexport var Name = 'update-delivery-channel-failed';\nexport var UpdateDeliveryChannelFailedEvent = Name;\nexport var isUpdateDeliveryChannelErrorResponse = function isUpdateDeliveryChannelErrorResponse(response) {\n return isErrorResponse(response);\n};","import { isErrorResponse } from '@ori-events/failed-event-data';\nexport var Name = 'update-delivery-failed';\nexport var UpdateDeliveryFailedEvent = Name;\nexport var isUpdateDeliveryErrorResponse = function isUpdateDeliveryErrorResponse(response) {\n return isErrorResponse(response);\n};","import { isErrorResponse } from '@ori-events/failed-event-data';\nexport var Name = 'update-donation-failed';\nexport var UpdateDonationFailedEvent = Name;\nexport var isUpdateDonationFailedResponse = function isUpdateDonationFailedResponse(response) {\n return isErrorResponse(response);\n};","import { isErrorResponse } from '@ori-events/failed-event-data';\nexport var Name = 'update-payment-provider-failed';\nexport var UpdatePaymentProviderFailedEvent = Name;\nexport var isUpdatePaymentProviderFailedResponse = function isUpdatePaymentProviderFailedResponse(response) {\n return isErrorResponse(response);\n};","import * as AcceptNotification from '@ori-events/accept-notification';\nimport * as AddBackorderDemand from '@ori-events/add-backorder-demand';\nimport * as AddBasketOffer from '@ori-events/add-basket-offer';\nimport * as AddCatalogueOffer from '@ori-events/add-catalogue-offer';\nimport * as AddCustomerOrder from '@ori-events/add-customer-order';\nimport * as AddFreeShippingOffer from '@ori-events/add-free-shipping-offer';\nimport * as AddToBasket from '@ori-events/add-to-basket';\nimport * as AddVoucher from '@ori-events/add-voucher';\nimport * as BasketUpdated from '@ori-events/basket-updated';\nimport * as CancelBackorderDemand from '@ori-events/cancel-backorder-demand';\nimport * as CancelSubscription from '@ori-events/cancel-subscription';\nimport * as ClearBasket from '@ori-events/clear-basket';\nimport * as DelaySubscription from '@ori-events/delay-subscription';\nimport * as LoyaltyDialogResult from '@ori-events/loyalty-dialog-result';\nimport * as PlaceOrderRequested from '@ori-events/place-order-requested';\nimport * as RemoveBasketItem from '@ori-events/remove-basket-item';\nimport * as RemoveCustomerOrder from '@ori-events/remove-customer-order';\nimport * as RemoveVoucher from '@ori-events/remove-voucher';\nimport * as ReplaceShoppingBagItem from '@ori-events/replace-shopping-bag-item';\nimport * as ReplaceSubscription from '@ori-events/replace-subscription';\nimport * as RequestClearShoppingCache from '@ori-events/request-clear-shopping-cache';\nimport * as RequestShoppingContext from '@ori-events/request-shopping-context';\nimport * as ResetShippingSelection from '@ori-events/reset-shipping-selection';\nimport { ShoppingContextLoadedEvent } from '@ori-events/shopping-context-loaded';\nimport * as UpdateBasketItem from '@ori-events/update-basket-item';\nimport * as UpdateCustomerOrderItem from '@ori-events/update-customer-order-item';\nimport * as UpdateDelivery from '@ori-events/update-delivery';\nimport * as UpdateDeliveryChannel from '@ori-events/update-delivery-channel';\nimport * as UpdateDonation from '@ori-events/update-donation';\nimport * as UpdateOfferItem from '@ori-events/update-offer-item';\nimport * as UpdateOfferItems from '@ori-events/update-offer-items';\nimport * as UpdatePaymentProvider from '@ori-events/update-payment-provider';\n\nimport acceptNotificationHandler from './handlers/acceptNotificationHandler';\nimport addBackorderDemandHandler from './handlers/addBackorderDemandHandler';\nimport addBasketOfferHandler from './handlers/addBasketOfferHandler';\nimport addCatalogueOfferHandler from './handlers/addCatalogueOfferHandler';\nimport addCustomerOrderHandler from './handlers/addCustomerOrderHandler';\nimport addFreeShippingOfferHandler from './handlers/addFreeShippingOfferHandler';\nimport addToBasketHandler from './handlers/addToBasketHandler';\nimport addVoucherHandler from './handlers/addVoucherHandler';\nimport cancelBackorderDemandHandler from './handlers/cancelBackorderDemandHandler';\nimport cancelSubscriptionHandler from './handlers/cancelSubscriptionHandler';\nimport checkLoyaltyDialogResultAndAddToBasketHandler from './handlers/checkLoyaltyDialogResultAndAddToBasketHandler';\nimport clearBasketHandler from './handlers/clearBasketHandler';\nimport delaySubscriptionHandler from './handlers/delaySubscriptionHandler';\nimport removeCustomerOrderHandler from './handlers/removeCustomerOrderHandler';\nimport removeFromBasketHandler from './handlers/removeFromBasketHandler';\nimport removeVoucherHandler from './handlers/removeVoucherHandler';\nimport replaceShoppingBagItemHandler from './handlers/replaceShoppingBagItemHandler';\nimport replaceSubscriptionHandler from './handlers/replaceSubscriptionHandler';\nimport requestShoppingContextHandler from './handlers/requestShoppingContextHandler';\nimport resetShippingSelectionHandler from './handlers/resetShippingSelectionHandler';\nimport updateBasketItemHandler from './handlers/updateBasketItemHandler';\nimport updateCustomerOrderItemHandler from './handlers/updateCustomerOrderItemHandler';\nimport updateDeliveryChannelHandler from './handlers/updateDeliveryChannelHandler';\nimport updateDeliveryHandler from './handlers/updateDeliveryHandler';\nimport updateDonationHandler from './handlers/updateDonationHandler';\nimport updateOfferItemHandler from './handlers/updateOfferItemHandler';\nimport updateOfferItemsHandler from './handlers/updateOfferItemsHandler';\nimport updatePaymentProviderHandler from './handlers/updatePaymentProviderHandler';\nimport {\n contextKey,\n dispatchBasketUpdatedEvent,\n getItem,\n isPageMarkedForCacheCleanup,\n isScheduledCacheCleanup,\n isStorageAvailable,\n listenToStoredItemChanges,\n removeItem,\n removeScheduledCacheCleanup,\n setItem,\n} from './helpers';\nimport type { AppConfiguration, UpdateEventType } from './models';\nimport { logDebug, logReceivedEvent, optionallyGetTokenFromUrl } from '~/utils';\n\ninterface Configuration {\n currentLanguage: string;\n customerId: number;\n globalApiUrl: string;\n identityUrl: string;\n useBrowserTabsSynchronization: boolean;\n useLocalStorage: boolean;\n tenant: string;\n}\n\ntype ContextUpdateEventHandler = (\n event: T,\n configuration: AppConfiguration,\n) => Promise;\n\nconst getCachedContext = () => getItem(contextKey);\nconst setCachedContext = (value: BasketUpdated.Data) => setItem(contextKey, value);\nconst clearCachedContext = () => removeItem(contextKey);\n\nexport const contextUpdatesMap = [\n [AcceptNotification.Name, acceptNotificationHandler],\n [AddBackorderDemand.Name, addBackorderDemandHandler],\n [AddBasketOffer.Name, addBasketOfferHandler],\n [AddCatalogueOffer.Name, addCatalogueOfferHandler],\n [AddCustomerOrder.Name, addCustomerOrderHandler],\n [AddFreeShippingOffer.Name, addFreeShippingOfferHandler],\n [AddToBasket.Name, addToBasketHandler],\n [AddVoucher.Name, addVoucherHandler],\n [CancelBackorderDemand.Name, cancelBackorderDemandHandler],\n [CancelSubscription.Name, cancelSubscriptionHandler],\n [ClearBasket.Name, clearBasketHandler],\n [DelaySubscription.Name, delaySubscriptionHandler],\n [LoyaltyDialogResult.Name, checkLoyaltyDialogResultAndAddToBasketHandler],\n [RemoveBasketItem.Name, removeFromBasketHandler],\n [RemoveCustomerOrder.Name, removeCustomerOrderHandler],\n [RemoveVoucher.Name, removeVoucherHandler],\n [ReplaceShoppingBagItem.Name, replaceShoppingBagItemHandler],\n [ReplaceSubscription.Name, replaceSubscriptionHandler],\n [ResetShippingSelection.Name, resetShippingSelectionHandler],\n [UpdateBasketItem.Name, updateBasketItemHandler],\n [UpdateCustomerOrderItem.Name, updateCustomerOrderItemHandler],\n [UpdateDelivery.Name, updateDeliveryHandler],\n [UpdateDeliveryChannel.Name, updateDeliveryChannelHandler],\n [UpdateDonation.Name, updateDonationHandler],\n [UpdateOfferItems.Name, updateOfferItemsHandler],\n [UpdateOfferItem.Name, updateOfferItemHandler],\n [UpdatePaymentProvider.Name, updatePaymentProviderHandler],\n] as const;\n\nexport class BasketProvider {\n static readonly CONFIG_ELEMENT_ID = 'basket-provider-data';\n\n private currentLanguage = '';\n private customerId = -1;\n private globalApiUrl = 'https://we-test-api.oriflame.com/uat';\n private identityUrl = 'https://identity-we-uat.oriflame.com';\n private eventListeners: Array<[string, EventListener]> = [];\n private isBrowserStorageUsed = false;\n private isBrowserTabsSynchronizationUsed = false;\n private isRequestingShoppingContext = false;\n private shoppingContext?: BasketUpdated.Data;\n private tenant = '';\n\n constructor() {\n this.parseConfiguration();\n if (process.env.NODE_ENV !== 'production') {\n optionallyGetTokenFromUrl(this.identityUrl);\n }\n if (this.isBrowserStorageUsed) {\n if (isPageMarkedForCacheCleanup() || isScheduledCacheCleanup()) {\n this.clearContext();\n removeScheduledCacheCleanup();\n } else {\n this.getStoredContext();\n }\n }\n this.initEventListeners();\n }\n\n getConfiguration(): AppConfiguration {\n const {\n currentLanguage,\n customerId,\n globalApiUrl,\n identityUrl,\n isBrowserStorageUsed,\n isBrowserTabsSynchronizationUsed,\n tenant,\n } = this;\n\n return {\n currentLanguage,\n customerId,\n globalApiUrl,\n identityUrl,\n isBrowserStorageUsed,\n isBrowserTabsSynchronizationUsed,\n tenant,\n };\n }\n\n getContext() {\n return this.shoppingContext ? { ...this.shoppingContext } : undefined;\n }\n\n private initEventListeners(): void {\n if (this.eventListeners.length) {\n this.removeEventListeners();\n }\n\n this.eventListeners = contextUpdatesMap.map(([eventName, handler]) => {\n const updateHandler = handler as ContextUpdateEventHandler;\n const action = (async (event: T) => {\n logReceivedEvent(event);\n const data = await updateHandler(event, this.getConfiguration());\n if (data === false) {\n logDebug('Shopping context update failed.');\n } else {\n this.updateContext(data, BasketUpdated.Name);\n }\n }) as EventListener;\n\n return [eventName, action];\n });\n\n const requestShoppingContextListener = (async (event: T) => {\n logReceivedEvent(event);\n\n if (this.shoppingContext) {\n logDebug(\n `Context data was loaded before. Triggering ${ShoppingContextLoadedEvent} event ...`,\n );\n dispatchBasketUpdatedEvent(this.shoppingContext, ShoppingContextLoadedEvent);\n\n return;\n }\n\n if (this.isRequestingShoppingContext) {\n logDebug('Shopping context was already requested. Waiting for response ...');\n\n return;\n }\n\n logDebug('Loading shopping context ...');\n this.isRequestingShoppingContext = true;\n const newData = await requestShoppingContextHandler();\n this.isRequestingShoppingContext = false;\n logDebug('Shopping context was loaded.');\n this.updateContext(newData, ShoppingContextLoadedEvent);\n }) as EventListener;\n\n this.eventListeners.push(\n // Requesting shopping context.\n [RequestShoppingContext.Name, requestShoppingContextListener],\n\n // This is now called when the user requests creating a new order.\n // That means that the cache should be cleared. But we don't know yet\n // if the create order action succeeds. Getting exact order creation\n // result / success might be problematic, as there are page redirects\n // involved, and after page reload, it is too late for clearing caches.\n // So current solution calls the PlaceOrderRequested event before\n // calling the request on server, so that there is enough time to\n // do this cache cleanup here before the redirects happen.\n // ATM, the redirect is being done in legacy module & this logic might\n // change after rewriting to React.\n [PlaceOrderRequested.Name, (event) => this.clearContextOnEvent(event)],\n\n // This is now called for other cases when clearing context data is needed.\n [RequestClearShoppingCache.Name, (event) => this.clearContextOnEvent(event)],\n );\n\n // If there was a change in stored data from another browser tab,\n // if the context value was set, update the context with triggering\n // basket-updated event. Other components need to be informed about\n // the new state & this will not happen on page load, but later.\n // So the basket-updated event should be fine for this.\n if (this.isBrowserTabsSynchronizationUsed) {\n const { eventName, eventListener } = listenToStoredItemChanges(\n contextKey,\n (value) => {\n if (value) {\n this.updateContext(value, BasketUpdated.Name, false);\n }\n },\n );\n this.eventListeners.push([eventName, eventListener]);\n }\n\n this.eventListeners.forEach(([eventName, action]) =>\n window.addEventListener(eventName, action),\n );\n logDebug('Event listeners are connected.');\n }\n\n removeEventListeners(): void {\n this.eventListeners.forEach(([eventName, action]) =>\n window.removeEventListener(eventName, action),\n );\n this.eventListeners = [];\n logDebug('Old event listeners were disconnected.');\n }\n\n private parseConfiguration(): void {\n const configElement = document.getElementById(BasketProvider.CONFIG_ELEMENT_ID);\n const rawData = configElement?.innerHTML ?? '{}';\n logDebug('Raw configuration data:\\n\\t', rawData);\n const {\n currentLanguage,\n customerId,\n globalApiUrl,\n identityUrl,\n tenant,\n // not sure yet if a feature toggle should be created for this\n // default ATM set to true for testing\n useBrowserTabsSynchronization = true,\n // feature toggle\n useLocalStorage = false,\n } = JSON.parse(rawData) as Configuration;\n\n this.currentLanguage = currentLanguage;\n this.customerId = customerId;\n this.globalApiUrl = globalApiUrl;\n this.identityUrl = identityUrl;\n this.tenant = tenant;\n\n this.isBrowserStorageUsed = isStorageAvailable && useLocalStorage;\n this.isBrowserTabsSynchronizationUsed =\n this.isBrowserStorageUsed && useBrowserTabsSynchronization;\n\n if (configElement) {\n logDebug(`Configuration was parsed from element #${BasketProvider.CONFIG_ELEMENT_ID}.`);\n }\n logDebug(\n 'Current configuration:',\n '\\n\\tisBrowserStorageUsed:',\n this.isBrowserStorageUsed,\n '\\n\\tisBrowserTabsSynchronizationUsed:',\n this.isBrowserTabsSynchronizationUsed,\n );\n }\n\n private getStoredContext(): void {\n const newData = getCachedContext();\n if (!newData) {\n return;\n }\n this.updateContext(newData, undefined, false);\n logDebug('Restored context data from storage.');\n }\n\n private updateContext(\n newData: BasketUpdated.Data,\n eventTypeToBeTriggered?: UpdateEventType,\n shouldStoreData = true,\n ): void {\n // compare old & new state - TODO\n this.shoppingContext = newData;\n if (typeof newData !== 'undefined') {\n this.customerId = newData.customerId;\n }\n if (shouldStoreData && this.isBrowserStorageUsed) {\n setCachedContext(newData);\n logDebug('Stored context was updated with new data:\\n\\t', newData);\n } else {\n logDebug('Context was updated with new data:\\n\\t', newData);\n }\n if (eventTypeToBeTriggered) {\n logDebug(`Triggering ${eventTypeToBeTriggered} event ...`);\n dispatchBasketUpdatedEvent(newData, eventTypeToBeTriggered);\n }\n }\n\n private clearContext(): void {\n logDebug('Clearing stored shopping context data ...');\n this.shoppingContext = undefined;\n clearCachedContext();\n }\n\n private clearContextOnEvent(event: Event): void {\n logReceivedEvent(event as CustomEvent);\n this.clearContext();\n }\n}\n\nexport default BasketProvider;\n","import type * as AcceptNotification from '@ori-events/accept-notification';\nimport type {\n Data as ErrorData,\n AcceptNotificationResponse,\n} from '@ori-events/accept-notification-failed';\nimport {\n isAcceptNotificationErrorResponse,\n Name as ErrorEventName,\n} from '@ori-events/accept-notification-failed';\n\nimport { convertToCamelCase } from '../helpers';\nimport { RequestUrl } from '../models';\n\ntype Data = AcceptNotification.Data;\n\nexport default async function acceptNotificationHandler({\n detail: { reasonId },\n}: CustomEvent) {\n const request = await fetch(`${RequestUrl.AcceptNotification}?reasonId=${reasonId}`);\n\n const response = convertToCamelCase((await request.json()) as object);\n\n if (isAcceptNotificationErrorResponse(response)) {\n const errorEvent = new CustomEvent(ErrorEventName, {\n detail: response,\n });\n window.dispatchEvent(errorEvent);\n\n return false;\n }\n\n return response;\n}\n","import type * as AddBackorderDemand from '@ori-events/add-backorder-demand';\nimport type * as BasketUpdated from '@ori-events/basket-updated';\nimport type {\n Data as ErrorData,\n UpdateBasketItemResponse,\n} from '@ori-events/update-basket-item-failed';\nimport {\n isUpdateBasketItemErrorResponse,\n Name as ErrorEventName,\n} from '@ori-events/update-basket-item-failed';\nimport type { PositionData } from '@ori/analytics-data';\n\nimport { convertToCamelCase, getHttpRequestSettings } from '../helpers';\nimport { RequestUrl } from '../models';\n\ninterface Data extends AddBackorderDemand.Data, PositionData {}\n\nexport default async ({ detail: { lineNumber, placement, quantity } }: CustomEvent) => {\n if (typeof quantity === 'number' && quantity > 0) {\n const requestItemUpdate = await fetch(\n `${RequestUrl.UpdateBasketItem}?lineNumber=${lineNumber}&quantity=${quantity}`,\n getHttpRequestSettings({ placement }),\n );\n\n const response = convertToCamelCase(\n (await requestItemUpdate.json()) as object,\n );\n\n if (isUpdateBasketItemErrorResponse(response)) {\n const errorEvent = new CustomEvent(ErrorEventName, {\n detail: response,\n });\n window.dispatchEvent(errorEvent);\n\n return false;\n }\n }\n\n const request = await fetch(\n `${RequestUrl.AddBackorderDemand}?lineNumber=${lineNumber}`,\n getHttpRequestSettings(),\n );\n\n return convertToCamelCase((await request.json()) as object);\n};\n","import type * as AddBasketOffer from '@ori-events/add-basket-offer';\nimport type { PositionData } from '@ori/analytics-data';\n\nimport { isAddBasketOfferPurchaseEvent } from '../guards/addBasketOfferRequest';\nimport { addBasketOffer } from '../helpers';\nimport { RequestUrl } from '../models';\n\ninterface Data extends AddBasketOffer.Data, PositionData {}\ninterface PurchaseData extends AddBasketOffer.AddBasketOfferPurchaseData, PositionData {}\n\nexport default async (event: AddBasketOffer.Event) => {\n if (isAddBasketOfferPurchaseEvent(event)) {\n const {\n detail: { items, offerId: choiceId, placement: currentPlacement },\n } = event as CustomEvent;\n\n return addBasketOffer(RequestUrl.PurchaseBasketOffer, {\n choiceId,\n items,\n placement: currentPlacement,\n });\n }\n\n const {\n detail: { offerId, placement },\n } = event as CustomEvent;\n\n return addBasketOffer(RequestUrl.AddBasketOffer, {\n offerId,\n placement,\n });\n};\n","import type { Event, AddBasketOfferPurchaseData } from '@ori-events/add-basket-offer';\n\nexport const isAddBasketOfferPurchaseEvent = (\n event: Event,\n): event is Event => Boolean(event.detail.items);\n","import type * as AddCustomerOrder from '@ori-events/add-customer-order';\nimport * as AddCustomerOrderFailed from '@ori-events/add-customer-order-failed';\nimport type { PositionData } from '@ori/analytics-data';\n\nimport type { AddCustomerOrderResponse } from '../guards/addCustomerOrderResponse';\nimport {\n isCustomerOrderErrorResponse,\n isCustomerOrderSuccessResponse,\n} from '../guards/addCustomerOrderResponse';\nimport { convertToCamelCase, getHttpRequestSettings } from '../helpers';\nimport { RequestUrl } from '../models';\n\ninterface Data extends AddCustomerOrder.Data, PositionData {}\n\nexport default async ({ detail: { orderIds, placement } }: CustomEvent) => {\n const url = new URL(RequestUrl.AddCustomerOrder, window.location.href);\n orderIds.forEach((id) => url.searchParams.append('orderIds', String(id)));\n\n const request = await fetch(url.toString(), getHttpRequestSettings({ placement }));\n\n const response = convertToCamelCase((await request.json()) as object);\n\n if (isCustomerOrderSuccessResponse(response)) {\n return {\n ...response,\n lastAddedCustomerOrderIds: orderIds,\n };\n }\n\n if (isCustomerOrderErrorResponse(response)) {\n const errorEvent = new CustomEvent(AddCustomerOrderFailed.Name, {\n detail: response,\n });\n window.dispatchEvent(errorEvent);\n\n return false;\n }\n\n return false;\n};\n","import type * as AddCustomerOrderFailed from '@ori-events/add-customer-order-failed';\nimport type * as BasketUpdated from '@ori-events/basket-updated';\n\nexport type AddCustomerOrderResponse = AddCustomerOrderFailed.Data | BasketUpdated.Data;\n\nexport const isCustomerOrderSuccessResponse = (\n response: AddCustomerOrderResponse,\n): response is BasketUpdated.Data => Boolean((response as BasketUpdated.Data).shoppingBag);\n\nexport const isCustomerOrderErrorResponse = (\n response: AddCustomerOrderResponse,\n): response is AddCustomerOrderFailed.Data =>\n typeof (response as AddCustomerOrderFailed.Data).isSuccess === 'boolean' &&\n !(response as AddCustomerOrderFailed.Data).isSuccess;\n","import type * as AddToBasket from '@ori-events/add-to-basket';\nimport type { PositionData } from '@ori/analytics-data';\n\nimport addToBasket from '../helpers/addToBasket';\nimport getBuyingURLandMethod from '../helpers/getBuyingURLandMethod';\n\ninterface Data extends AddToBasket.Data, PositionData {}\n\nexport default async ({\n detail: {\n itemCode,\n quantity,\n originalItemCode,\n replacementType,\n method: addToBasketMethod,\n placement,\n },\n}: CustomEvent) => {\n const { url, method } = getBuyingURLandMethod(addToBasketMethod);\n\n return addToBasket(\n url,\n {\n itemCode,\n quantity,\n originalItemCode,\n replacementType,\n placement,\n },\n method,\n );\n};\n","import * as AddToBasket from '@ori-events/add-to-basket';\n\nimport { RequestUrl } from '~/models';\n\ninterface BuyingURLandMethod {\n url: string;\n method: AddToBasket.Method;\n}\n\nexport default (method?: AddToBasket.Method): BuyingURLandMethod => {\n switch (method) {\n case AddToBasket.Method.BUY_FOR_MONEY:\n return {\n url: RequestUrl.AddToBasketForMoney,\n method: AddToBasket.Method.BUY_FOR_MONEY,\n };\n case AddToBasket.Method.BUY_FOR_POINTS:\n return {\n url: RequestUrl.AddToBasketForPointsRewardShop,\n method: AddToBasket.Method.BUY_FOR_POINTS,\n };\n default:\n return {\n url: RequestUrl.AddToBasketCheckLoyalty,\n method: AddToBasket.Method.BUY_FOR_MONEY,\n };\n }\n};\n","import type * as AddVoucher from '@ori-events/add-voucher';\nimport * as AddVoucherFailed from '@ori-events/add-voucher-failed';\nimport type { PositionData } from '@ori/analytics-data';\n\nimport type { AddVoucherResponse } from '../guards/addVoucherResponse';\nimport {\n isAddVoucherSuccessResponse,\n isAddVoucherErrorResponse,\n} from '../guards/addVoucherResponse';\nimport { convertToCamelCase, getHttpRequestSettings } from '../helpers';\nimport { RequestUrl } from '../models';\n\ninterface Data extends AddVoucher.Data, PositionData {}\n\nconst dispatchAddVoucherFailed = (detail: AddVoucherFailed.Data) => {\n const event = new CustomEvent(AddVoucherFailed.Name, {\n detail,\n });\n window.dispatchEvent(event);\n};\n\nexport default async ({ detail: { placement, voucherCode } }: CustomEvent) => {\n const fetchUrl = `${RequestUrl.AddVoucher}?voucherCode=${voucherCode}`;\n const request = await fetch(fetchUrl, getHttpRequestSettings({ placement }));\n\n const response = convertToCamelCase((await request.json()) as object);\n\n if (isAddVoucherSuccessResponse(response)) {\n return response;\n }\n\n if (isAddVoucherErrorResponse(response)) {\n dispatchAddVoucherFailed(response);\n }\n\n return false;\n};\n","import type * as AddVoucherFailed from '@ori-events/add-voucher-failed';\nimport type * as BasketUpdated from '@ori-events/basket-updated';\n\nexport type AddVoucherResponse = AddVoucherFailed.Data | BasketUpdated.Data;\n\nexport const isAddVoucherSuccessResponse = (\n response: AddVoucherResponse,\n): response is BasketUpdated.Data => Boolean((response as BasketUpdated.Data).shoppingBag);\n\nexport const isAddVoucherErrorResponse = (\n response: AddVoucherResponse,\n): response is AddVoucherFailed.Data =>\n typeof (response as AddVoucherFailed.Data).isSuccess === 'boolean' &&\n !(response as AddVoucherFailed.Data).isSuccess;\n","import type * as BasketUpdated from '@ori-events/basket-updated';\nimport type * as CancelBackorderDemand from '@ori-events/cancel-backorder-demand';\nimport type { PositionData } from '@ori/analytics-data';\n\nimport { convertToCamelCase, getHttpRequestSettings } from '../helpers';\nimport { RequestUrl } from '../models';\n\ninterface Data extends CancelBackorderDemand.Data, PositionData {}\n\nexport default async ({ detail: { lineNumber, placement } }: CustomEvent) => {\n const request = await fetch(\n `${RequestUrl.CancelBackorderDemand}?lineNumber=${lineNumber}`,\n getHttpRequestSettings({ placement }),\n );\n\n return convertToCamelCase((await request.json()) as object);\n};\n","import type * as CancelSubscription from '@ori-events/cancel-subscription';\nimport * as CancelSubscriptionFailed from '@ori-events/cancel-subscription-failed';\nimport type { PositionData } from '@ori/analytics-data';\n\nimport { convertToCamelCase, getHttpRequestSettings } from '../helpers';\nimport { RequestUrl } from '../models';\n\ninterface Data extends CancelSubscription.Data, PositionData {}\n\nexport const dispatchCancelSubscriptionFailedEvent = (detail: CancelSubscriptionFailed.Data) => {\n const event = new CustomEvent(CancelSubscriptionFailed.Name, {\n detail,\n });\n window.dispatchEvent(event);\n};\n\nexport default async ({\n detail: { consumerId, packageId, placement, subscriptionId },\n}: CustomEvent) => {\n const request = await fetch(\n `${RequestUrl.CancelSubscription}?consumerId=${consumerId}&subscriptionId=${subscriptionId}&packageId=${packageId}`,\n getHttpRequestSettings({ placement }),\n );\n\n const response = convertToCamelCase(\n (await request.json()) as object,\n );\n\n if (CancelSubscriptionFailed.isCancelSubscriptionErrorResponse(response)) {\n dispatchCancelSubscriptionFailedEvent(response);\n\n return false;\n }\n\n return response;\n};\n","import type * as BasketUpdated from '@ori-events/basket-updated';\n\nimport { convertToCamelCase, getHttpRequestSettings } from '../helpers';\nimport { RequestUrl } from '../models';\n\nexport default async () => {\n const request = await fetch(RequestUrl.ClearBasket, getHttpRequestSettings());\n\n return convertToCamelCase((await request.json()) as object);\n};\n","import type * as DelaySubscription from '@ori-events/delay-subscription';\nimport * as DelaySubscriptionFailed from '@ori-events/delay-subscription-failed';\nimport type { PositionData } from '@ori/analytics-data';\n\nimport type { DelaySubscriptionResponse } from '../guards/delaySubscriptionResponse';\nimport {\n isDelaySubscriptionSuccessResponse,\n isDelaySubscriptionErrorResponse,\n} from '../guards/delaySubscriptionResponse';\nimport { convertToCamelCase, getHttpRequestSettings } from '../helpers';\nimport { RequestMethod, RequestUrl } from '../models';\n\ninterface Data extends DelaySubscription.Data, PositionData {}\n\nexport const dispatchDelaySubscriptionFailedEvent = (detail: DelaySubscriptionFailed.Data) => {\n const event = new CustomEvent(DelaySubscriptionFailed.Name, {\n detail,\n });\n window.dispatchEvent(event);\n};\n\nexport default async ({\n detail: { cycle, placement, step, subscriptionId },\n}: CustomEvent) => {\n const request = await fetch(\n RequestUrl.DelaySubscription,\n getHttpRequestSettings({ cycle, placement, step, subscriptionId }, RequestMethod.Post),\n );\n\n const response = convertToCamelCase((await request.json()) as object);\n\n if (isDelaySubscriptionSuccessResponse(response)) {\n return response;\n }\n\n if (isDelaySubscriptionErrorResponse(response)) {\n dispatchDelaySubscriptionFailedEvent(response);\n }\n\n return false;\n};\n","import type * as BasketUpdated from '@ori-events/basket-updated';\nimport type * as DelaySubscriptionFailed from '@ori-events/delay-subscription-failed';\n\nexport type DelaySubscriptionResponse = BasketUpdated.Data | DelaySubscriptionFailed.Data;\n\nexport const isDelaySubscriptionSuccessResponse = (\n response: DelaySubscriptionResponse,\n): response is BasketUpdated.Data => Boolean((response as BasketUpdated.Data).shoppingBag);\n\nexport const isDelaySubscriptionErrorResponse = (\n response: DelaySubscriptionResponse,\n): response is DelaySubscriptionFailed.Data =>\n typeof (response as DelaySubscriptionFailed.Data).isSuccess === 'boolean' &&\n !(response as DelaySubscriptionFailed.Data).isSuccess;\n","import * as AddToBasket from '@ori-events/add-to-basket';\nimport * as LoyaltyDialogResult from '@ori-events/loyalty-dialog-result';\n\nimport addToBasket from '../helpers/addToBasket';\nimport { RequestUrl } from '../models';\n\nexport default ({ detail }: LoyaltyDialogResult.Event) => {\n const { result } = detail;\n\n if (LoyaltyDialogResult.isLoyaltyCloseResult(result)) {\n return false;\n }\n\n if (LoyaltyDialogResult.isLoyaltyBuyForPointsResult(result)) {\n const { catalogueItemId, choiceId, itemCode, quantity, placement } = detail;\n\n return addToBasket(\n RequestUrl.AddToBasketForPoints,\n {\n itemCode,\n quantity,\n choiceId,\n catalogueItemId,\n placement,\n },\n AddToBasket.Method.BUY_FOR_POINTS,\n );\n }\n\n if (LoyaltyDialogResult.isLoyaltyBuyForMoneyResult(result)) {\n const { itemCode, quantity, originalItemCode, replacementType, placement } = detail;\n\n return addToBasket(\n RequestUrl.AddToBasketForMoney,\n {\n itemCode,\n quantity,\n originalItemCode,\n replacementType,\n placement,\n },\n AddToBasket.Method.BUY_FOR_MONEY,\n );\n }\n\n return false;\n};\n","import type * as BasketUpdated from '@ori-events/basket-updated';\nimport type * as RemoveBasketItem from '@ori-events/remove-basket-item';\nimport type { PositionData } from '@ori/analytics-data';\n\nimport { convertToCamelCase, getHttpRequestSettings } from '../helpers';\nimport { RequestMethod, RequestUrl } from '../models';\n\ninterface Data extends RemoveBasketItem.Data, PositionData {}\n\nexport default async ({ detail: { lineNumber, placement } }: CustomEvent) => {\n const request = await fetch(\n RequestUrl.RemoveBasketItem,\n getHttpRequestSettings({ lineNumber, placement }, RequestMethod.Post),\n );\n\n return convertToCamelCase((await request.json()) as object);\n};\n","import type * as RemoveCustomerOrder from '@ori-events/remove-customer-order';\nimport * as RemoveCustomerOrderFailed from '@ori-events/remove-customer-order-failed';\nimport type { PositionData } from '@ori/analytics-data';\n\nimport type { RemoveCustomerOrderResponse } from '../guards/removeCustomerOrderResponse';\nimport {\n isRemoveCustomerOrderErrorResponse,\n isRemoveCustomerOrderSuccessResponse,\n} from '../guards/removeCustomerOrderResponse';\nimport { convertToCamelCase, getHttpRequestSettings } from '../helpers';\nimport { RequestUrl } from '../models';\n\ninterface Data extends RemoveCustomerOrder.Data, PositionData {}\n\nexport default async ({ detail: { endConsumerOrderId, placement } }: CustomEvent) => {\n const fetchUrl = `${RequestUrl.RemoveCustomerOrder}?endConsumerOrderId=${endConsumerOrderId}`;\n\n const request = await fetch(fetchUrl, getHttpRequestSettings({ placement }));\n\n const response = convertToCamelCase(\n (await request.json()) as object,\n );\n\n if (isRemoveCustomerOrderSuccessResponse(response)) {\n return response;\n }\n\n if (isRemoveCustomerOrderErrorResponse(response)) {\n const errorEvent = new CustomEvent(\n RemoveCustomerOrderFailed.Name,\n {\n detail: response,\n },\n );\n window.dispatchEvent(errorEvent);\n }\n\n return false;\n};\n","import type * as BasketUpdated from '@ori-events/basket-updated';\nimport type * as RemoveCustomerOrderFailed from '@ori-events/remove-customer-order-failed';\n\nexport type RemoveCustomerOrderResponse = BasketUpdated.Data | RemoveCustomerOrderFailed.Data;\n\nexport const isRemoveCustomerOrderSuccessResponse = (\n response: RemoveCustomerOrderResponse,\n): response is BasketUpdated.Data => Boolean((response as BasketUpdated.Data).shoppingBag);\n\nexport const isRemoveCustomerOrderErrorResponse = (\n response: RemoveCustomerOrderResponse,\n): response is RemoveCustomerOrderFailed.Data =>\n typeof (response as RemoveCustomerOrderFailed.Data).isSuccess === 'boolean' &&\n !(response as RemoveCustomerOrderFailed.Data).isSuccess;\n","import type * as RemoveVoucher from '@ori-events/remove-voucher';\nimport * as RemoveVoucherFailed from '@ori-events/remove-voucher-failed';\nimport type { PositionData } from '@ori/analytics-data';\n\nimport type { RemoveVoucherResponse } from '../guards/removeVoucherResponse';\nimport {\n isRemoveVoucherSuccessResponse,\n isRemoveVoucherErrorResponse,\n} from '../guards/removeVoucherResponse';\nimport { convertToCamelCase, getHttpRequestSettings } from '../helpers';\nimport { RequestUrl } from '../models';\n\ninterface Data extends RemoveVoucher.Data, PositionData {}\n\nconst dispatchRemoveVoucherFailed = (detail: RemoveVoucherFailed.Data) => {\n const event = new CustomEvent(RemoveVoucherFailed.Name, {\n detail,\n });\n window.dispatchEvent(event);\n};\n\nexport default async ({ detail: { placement, voucherCode } }: CustomEvent) => {\n const fetchUrl = `${RequestUrl.RemoveVoucher}?voucherCode=${voucherCode}`;\n const request = await fetch(fetchUrl, getHttpRequestSettings({ placement }));\n\n const response = convertToCamelCase((await request.json()) as object);\n\n if (isRemoveVoucherSuccessResponse(response)) {\n return response;\n }\n\n if (isRemoveVoucherErrorResponse(response)) {\n dispatchRemoveVoucherFailed(response);\n }\n\n return false;\n};\n","import type * as RemoveVoucherFailed from '@ori-events/add-voucher-failed';\nimport type * as BasketUpdated from '@ori-events/basket-updated';\n\nexport type RemoveVoucherResponse = BasketUpdated.Data | RemoveVoucherFailed.Data;\n\nexport const isRemoveVoucherSuccessResponse = (\n response: RemoveVoucherResponse,\n): response is BasketUpdated.Data => Boolean((response as BasketUpdated.Data).shoppingBag);\n\nexport const isRemoveVoucherErrorResponse = (\n response: RemoveVoucherResponse,\n): response is RemoveVoucherFailed.Data =>\n typeof (response as RemoveVoucherFailed.Data).isSuccess === 'boolean' &&\n !(response as RemoveVoucherFailed.Data).isSuccess;\n","import type * as ReplaceShoppingBagItem from '@ori-events/replace-shopping-bag-item';\nimport * as ReplaceShoppingBagItemFailed from '@ori-events/replace-shopping-bag-item-failed';\nimport type { PositionData } from '@ori/analytics-data';\n\nimport type { ReplaceShoppingBagItemResponse } from '../guards/replaceShoppingBagItemResponse';\nimport { isReplaceShoppingBagItemErrorResponse } from '../guards/replaceShoppingBagItemResponse';\nimport { convertToCamelCase, getHttpRequestSettings } from '../helpers';\nimport { RequestUrl } from '../models';\n\ninterface Data extends ReplaceShoppingBagItem.Data, PositionData {}\n\nexport default async ({ detail: { itemCode, lineNumber, placement } }: CustomEvent) => {\n const request = await fetch(\n `${RequestUrl.ReplaceShoppingBagItem}?lineNumber=${lineNumber}&itemCode=${itemCode}`,\n getHttpRequestSettings({ placement }),\n );\n\n const response = convertToCamelCase(\n (await request.json()) as object,\n );\n\n if (isReplaceShoppingBagItemErrorResponse(response)) {\n const errorEvent = new CustomEvent(\n ReplaceShoppingBagItemFailed.Name,\n {\n detail: response,\n },\n );\n window.dispatchEvent(errorEvent);\n\n return false;\n }\n\n return response;\n};\n","import type * as BasketUpdated from '@ori-events/basket-updated';\nimport type * as ReplaceShoppingBagItemFailed from '@ori-events/replace-shopping-bag-item-failed';\n\nexport type ReplaceShoppingBagItemResponse = BasketUpdated.Data | ReplaceShoppingBagItemFailed.Data;\n\nexport const isReplaceShoppingBagItemErrorResponse = (\n response: ReplaceShoppingBagItemResponse,\n): response is ReplaceShoppingBagItemFailed.Data => 'isSuccess' in response && !response.isSuccess;\n","import { ANONYMOUS_CUSTOMER_ID } from '~/constants';\nimport type { AppConfiguration } from '~/models';\nimport type { GetUrlOptions } from '~/utils';\n\ninterface UrlOptionsParams {\n configuration: AppConfiguration;\n basePath: string;\n queryParams?: T;\n host?: string;\n}\n\nexport const getUrlOptions = ({\n configuration,\n basePath,\n queryParams,\n host,\n}: UrlOptionsParams) => {\n const { currentLanguage, customerId, identityUrl, tenant } = configuration;\n const isCustomerAnonymous = customerId === ANONYMOUS_CUSTOMER_ID;\n let query: string | undefined;\n if (queryParams) {\n const params = new URLSearchParams();\n Object.entries(queryParams).forEach(([key, value]) => {\n if (value !== null && value !== undefined) {\n params.append(key, String(value));\n }\n });\n query = `?${params.toString()}`;\n }\n const usedHost = host ?? window.location.origin;\n const urlOptions: GetUrlOptions = {\n basePath,\n currentLanguage,\n host: usedHost,\n identityUrl,\n isCustomerAnonymous,\n query,\n tenant,\n };\n const cacheKeys = Object.values(urlOptions);\n\n return { cacheKeys, urlOptions };\n};\n","import type * as BasketUpdated from '@ori-events/basket-updated';\nimport type * as ReplaceSubscriptionFailed from '@ori-events/replace-subscription-failed';\n\nexport type ReplaceSubscriptionResponse = BasketUpdated.Data | ReplaceSubscriptionFailed.Data;\n\nexport const isReplaceSubscriptionErrorResponse = (\n response: ReplaceSubscriptionResponse,\n): response is ReplaceSubscriptionFailed.Data => 'isSuccess' in response && !response.isSuccess;\n","import type * as BasketUpdated from '@ori-events/basket-updated';\n\nimport { convertToCamelCase, getHttpRequestSettings } from '../helpers';\nimport { RequestUrl } from '../models';\n\nexport default async () => {\n const response = await fetch(RequestUrl.ResetFreeShippingSelection, getHttpRequestSettings());\n\n return convertToCamelCase((await response.json()) as object);\n};\n","import type * as UpdateBasketItem from '@ori-events/update-basket-item';\nimport type {\n Data as ErrorData,\n UpdateBasketItemResponse,\n} from '@ori-events/update-basket-item-failed';\nimport {\n isUpdateBasketItemErrorResponse,\n Name as ErrorEventName,\n} from '@ori-events/update-basket-item-failed';\nimport type { PositionData } from '@ori/analytics-data';\n\nimport { convertToCamelCase, getHttpRequestSettings } from '../helpers';\nimport { RequestUrl } from '../models';\n\ninterface Data extends UpdateBasketItem.Data, PositionData {}\n\nexport default async ({ detail: { lineNumber, placement, quantity } }: CustomEvent) => {\n const request = await fetch(\n `${RequestUrl.UpdateBasketItem}?lineNumber=${lineNumber}&quantity=${quantity}`,\n getHttpRequestSettings({ placement }),\n );\n\n const response = convertToCamelCase((await request.json()) as object);\n\n if (isUpdateBasketItemErrorResponse(response)) {\n const errorEvent = new CustomEvent(ErrorEventName, {\n detail: response,\n });\n window.dispatchEvent(errorEvent);\n\n return false;\n }\n\n return response;\n};\n","import type * as UpdateCustomerOrderItem from '@ori-events/update-customer-order-item';\nimport * as UpdateCustomerOrderItemFailed from '@ori-events/update-customer-order-item-failed';\nimport type { PositionData } from '@ori/analytics-data';\n\nimport type { UpdateCustomerOrderItemResponse } from '../guards/updateCustomerOrderItemResponse';\nimport {\n isUpdateCustomerOrderItemErrorResponse,\n isUpdateCustomerOrderItemSuccessResponse,\n} from '../guards/updateCustomerOrderItemResponse';\nimport { convertToCamelCase, getHttpRequestSettings } from '../helpers';\nimport { RequestUrl } from '../models';\n\ninterface Data extends UpdateCustomerOrderItem.Data, PositionData {}\n\nexport default async ({\n detail: { endConsumerOrderId, itemCode, placement, requestedQuantity },\n}: CustomEvent) => {\n const fetchUrl =\n `${RequestUrl.UpdateCustomerOrderItem}` +\n `?endConsumerOrderId=${endConsumerOrderId}` +\n `&itemCode=${itemCode}` +\n `&requestedQuantity=${requestedQuantity}`;\n\n const request = await fetch(fetchUrl, getHttpRequestSettings({ placement }));\n\n const response = convertToCamelCase(\n (await request.json()) as object,\n );\n\n if (isUpdateCustomerOrderItemSuccessResponse(response)) {\n return response;\n }\n\n if (isUpdateCustomerOrderItemErrorResponse(response)) {\n const errorEvent = new CustomEvent(\n UpdateCustomerOrderItemFailed.Name,\n {\n detail: response,\n },\n );\n window.dispatchEvent(errorEvent);\n }\n\n return false;\n};\n","import type * as BasketUpdated from '@ori-events/basket-updated';\nimport type * as UpdateCustomerOrderItemFailed from '@ori-events/update-customer-order-item-failed';\n\nexport type UpdateCustomerOrderItemResponse =\n | BasketUpdated.Data\n | UpdateCustomerOrderItemFailed.Data;\n\nexport const isUpdateCustomerOrderItemSuccessResponse = (\n response: UpdateCustomerOrderItemResponse,\n): response is BasketUpdated.Data => Boolean((response as BasketUpdated.Data).shoppingBag);\n\nexport const isUpdateCustomerOrderItemErrorResponse = (\n response: UpdateCustomerOrderItemResponse,\n): response is UpdateCustomerOrderItemFailed.Data =>\n typeof (response as UpdateCustomerOrderItemFailed.Data).isSuccess === 'boolean' &&\n !(response as UpdateCustomerOrderItemFailed.Data).isSuccess;\n","import type * as UpdateDelivery from '@ori-events/update-delivery';\nimport type { Data as ErrorData, UpdateDeliveryResponse } from '@ori-events/update-delivery-failed';\nimport {\n isUpdateDeliveryErrorResponse,\n Name as ErrorEventName,\n} from '@ori-events/update-delivery-failed';\n\nimport { convertToCamelCase } from '../helpers';\nimport { RequestUrl } from '../models';\nimport { putRequestOptions } from '~/constants';\n\ntype Data = UpdateDelivery.Data;\n\nexport default async ({\n detail: { deliveryAddressId, deliveryChannelId, registrationId },\n}: CustomEvent) => {\n // if needed, start with delivery channel ID update\n if (typeof deliveryChannelId !== 'undefined') {\n const channelRequestOptions = {\n ...putRequestOptions,\n body: JSON.stringify({ deliveryChannelId }),\n };\n const requestUpdateDeliveryChannel = await fetch(\n RequestUrl.UpdateDeliveryChannel,\n channelRequestOptions,\n );\n\n const channelResponse = convertToCamelCase(\n (await requestUpdateDeliveryChannel.json()) as object,\n );\n\n if (isUpdateDeliveryErrorResponse(channelResponse)) {\n const errorEvent = new CustomEvent(ErrorEventName, {\n detail: channelResponse,\n });\n window.dispatchEvent(errorEvent);\n\n return false;\n }\n }\n\n // delivery address ID update\n const addressParams: {\n addressId: number;\n registrationId?: string;\n } = {\n addressId: deliveryAddressId,\n };\n if (registrationId) {\n addressParams.registrationId = registrationId;\n }\n const addressRequestOptions = {\n ...putRequestOptions,\n body: JSON.stringify(addressParams),\n };\n const requestUpdateDeliveryAddress = await fetch(\n RequestUrl.UpdateDeliveryAddress,\n addressRequestOptions,\n );\n\n const addressResponse = convertToCamelCase(\n (await requestUpdateDeliveryAddress.json()) as object,\n );\n\n if (isUpdateDeliveryErrorResponse(addressResponse)) {\n const errorEvent = new CustomEvent(ErrorEventName, {\n detail: addressResponse,\n });\n window.dispatchEvent(errorEvent);\n\n return false;\n }\n\n return addressResponse;\n};\n","import type * as UpdateDeliveryChannel from '@ori-events/update-delivery-channel';\nimport type {\n Data as ErrorData,\n UpdateDeliveryChannelResponse,\n} from '@ori-events/update-delivery-channel-failed';\nimport {\n isUpdateDeliveryChannelErrorResponse,\n Name as ErrorEventName,\n} from '@ori-events/update-delivery-channel-failed';\n\nimport { convertToCamelCase } from '../helpers';\nimport { RequestUrl } from '../models';\nimport { putRequestOptions } from '~/constants';\n\ntype Data = UpdateDeliveryChannel.Data;\n\nexport default async ({ detail: { deliveryChannelId } }: CustomEvent) => {\n const requestOptions = {\n ...putRequestOptions,\n body: JSON.stringify({ deliveryChannelId }),\n };\n const request = await fetch(RequestUrl.UpdateDeliveryChannel, requestOptions);\n\n const response = convertToCamelCase(\n (await request.json()) as object,\n );\n\n if (isUpdateDeliveryChannelErrorResponse(response)) {\n const errorEvent = new CustomEvent(ErrorEventName, {\n detail: response,\n });\n window.dispatchEvent(errorEvent);\n\n return false;\n }\n\n return response;\n};\n","import type * as UpdateDonation from '@ori-events/update-donation';\nimport type { Data as ErrorData, UpdateDonationResponse } from '@ori-events/update-donation-failed';\nimport {\n isUpdateDonationFailedResponse,\n Name as ErrorEventName,\n} from '@ori-events/update-donation-failed';\nimport type { PositionData } from '@ori/analytics-data';\n\nimport { convertToCamelCase, getHttpRequestSettings } from '../helpers';\nimport { RequestMethod, RequestUrl } from '../models';\n\ninterface Data extends UpdateDonation.Data, PositionData {}\n\nexport default async function updateDonationHandler({\n detail: { choiceId, checked },\n}: CustomEvent) {\n const request = await fetch(\n RequestUrl.UpdateDonation,\n getHttpRequestSettings({ choiceId, checked }, RequestMethod.Post),\n );\n\n const response = convertToCamelCase((await request.json()) as object);\n\n if (isUpdateDonationFailedResponse(response)) {\n const event = new CustomEvent(ErrorEventName, {\n detail: response,\n });\n window.dispatchEvent(event);\n }\n\n return response;\n}\n","import type * as BasketUpdated from '@ori-events/basket-updated';\nimport type * as UpdateOfferItems from '@ori-events/update-offer-items';\nimport type { PositionData } from '@ori/analytics-data';\n\nimport { convertToCamelCase, getHttpRequestSettings } from '../helpers';\nimport { RequestMethod, RequestUrl } from '../models';\n\ninterface Data extends UpdateOfferItems.Data, PositionData {}\n\nexport default async ({ detail: { choiceId, items, placement } }: CustomEvent) => {\n const request = await fetch(\n RequestUrl.UpdateOfferItems,\n getHttpRequestSettings({ choiceId, items, placement }, RequestMethod.Post),\n );\n\n return convertToCamelCase((await request.json()) as object);\n};\n","import type * as BasketUpdated from '@ori-events/basket-updated';\nimport type * as UpdateOfferItem from '@ori-events/update-offer-item';\nimport type { PositionData } from '@ori/analytics-data';\n\nimport { convertToCamelCase, getHttpRequestSettings } from '../helpers';\nimport { RequestMethod, RequestUrl } from '../models';\n\ninterface Data extends UpdateOfferItem.Data, PositionData {}\n\nexport default async ({\n detail: { choiceId, itemCode, placement, quantity },\n}: CustomEvent) => {\n const request = await fetch(\n RequestUrl.UpdateOfferItem,\n getHttpRequestSettings({ choiceId, itemCode, placement, quantity }, RequestMethod.Post),\n );\n\n return convertToCamelCase((await request.json()) as object);\n};\n","import type * as UpdatePaymentProvider from '@ori-events/update-payment-provider';\nimport type {\n Data as ErrorData,\n UpdatePaymentProviderResponse,\n} from '@ori-events/update-payment-provider-failed';\nimport {\n isUpdatePaymentProviderFailedResponse,\n Name as ErrorEventName,\n} from '@ori-events/update-payment-provider-failed';\nimport type { PositionData } from '@ori/analytics-data';\n\nimport { convertToCamelCase, getHttpRequestSettings } from '../helpers';\nimport { RequestUrl } from '../models';\n\ninterface Data extends UpdatePaymentProvider.Data, PositionData {}\n\nexport default async ({ detail: { paymentProviderId, placement } }: CustomEvent) => {\n const request = await fetch(\n `${RequestUrl.UpdatePaymentProvider}?paymentProviderId=${paymentProviderId}`,\n getHttpRequestSettings({ placement }),\n );\n\n const response = convertToCamelCase(\n (await request.json()) as object,\n );\n\n if (isUpdatePaymentProviderFailedResponse(response)) {\n const errorEvent = new CustomEvent(ErrorEventName, {\n detail: response,\n });\n window.dispatchEvent(errorEvent);\n\n return false;\n }\n\n return response;\n};\n","export default function _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}","import type * as BasketUpdated from '@ori-events/basket-updated';\nimport * as ShoppingContextLoaded from '@ori-events/shopping-context-loaded';\n\nimport { convertToCamelCase, getHttpRequestSettings } from '../helpers';\nimport { RequestMethod, RequestUrl } from '../models';\n\nexport default async () => {\n const request = await fetch(\n RequestUrl.GetShoppingContext,\n getHttpRequestSettings(undefined, RequestMethod.Post),\n );\n\n const shoppingContext = convertToCamelCase((await request.json()) as object);\n\n const event = new CustomEvent(ShoppingContextLoaded.Name, {\n detail: shoppingContext,\n });\n window.dispatchEvent(event);\n\n return shoppingContext;\n};\n","import BasketProvider from './BasketProvider';\n\nvoid new BasketProvider();\n"],"names":["_typeof","obj","Symbol","iterator","constructor","prototype","_toPropertyKey","arg","key","input","hint","prim","toPrimitive","undefined","res","call","TypeError","String","Number","_defineProperty","value","Object","defineProperty","enumerable","configurable","writable","e","this","message","Error","name","r","window","atob","bind","t","replace","length","n","o","a","i","c","charAt","fromCharCode","indexOf","decodeURIComponent","charCodeAt","toString","toUpperCase","header","JSON","parse","split","OidcToken","token","claim","payload","Token","OidcAccessToken","super","module","exports","utils","settle","cookies","buildURL","buildFullPath","parseHeaders","isURLSameOrigin","transitionalDefaults","AxiosError","CanceledError","parseProtocol","config","Promise","resolve","reject","onCanceled","requestData","data","requestHeaders","headers","responseType","done","cancelToken","unsubscribe","signal","removeEventListener","isFormData","isStandardBrowserEnv","request","XMLHttpRequest","auth","username","password","unescape","encodeURIComponent","Authorization","btoa","fullPath","baseURL","url","onloadend","responseHeaders","getAllResponseHeaders","response","responseText","status","statusText","err","open","method","params","paramsSerializer","timeout","onreadystatechange","readyState","responseURL","setTimeout","onabort","ECONNABORTED","onerror","ERR_NETWORK","ontimeout","timeoutErrorMessage","transitional","clarifyTimeoutError","ETIMEDOUT","xsrfValue","withCredentials","xsrfCookieName","read","xsrfHeaderName","forEach","val","toLowerCase","setRequestHeader","isUndefined","onDownloadProgress","addEventListener","onUploadProgress","upload","cancel","type","abort","subscribe","aborted","protocol","ERR_BAD_REQUEST","send","Axios","mergeConfig","axios","createInstance","defaultConfig","context","instance","extend","create","instanceConfig","CancelToken","isCancel","VERSION","toFormData","Cancel","all","promises","spread","isAxiosError","executor","resolvePromise","promise","then","_listeners","l","onfulfilled","_resolve","reason","throwIfRequested","listener","push","index","splice","source","ERR_CANCELED","inherits","__CANCEL__","InterceptorManager","dispatchRequest","validator","validators","defaults","interceptors","configOrUrl","assertOptions","silentJSONParsing","boolean","forcedJSONParsing","requestInterceptorChain","synchronousRequestInterceptors","interceptor","runWhen","synchronous","unshift","fulfilled","rejected","responseInterceptorChain","chain","Array","apply","concat","shift","newConfig","onFulfilled","onRejected","error","getUri","generateHTTPMethod","isForm","code","toJSON","description","number","fileName","lineNumber","columnNumber","stack","descriptors","defineProperties","from","customProps","axiosError","toFlatObject","assign","handlers","use","options","eject","id","fn","h","isAbsoluteURL","combineURLs","requestedURL","transformData","throwIfCancellationRequested","transformRequest","merge","common","adapter","transformResponse","config1","config2","getMergedValue","target","isPlainObject","isArray","slice","mergeDeepProperties","prop","valueFromConfig2","defaultToConfig2","mergeDirectKeys","mergeMap","keys","configValue","validateStatus","ERR_BAD_RESPONSE","Math","floor","fns","normalizeHeaderName","DEFAULT_CONTENT_TYPE","setContentTypeIfUnset","process","isArrayBuffer","isBuffer","isStream","isFile","isBlob","isArrayBufferView","buffer","isURLSearchParams","isFileList","isObjectPayload","isObject","contentType","_FormData","env","FormData","rawValue","parser","encoder","isString","trim","stringify","stringifySafely","strictJSONParsing","maxContentLength","maxBodyLength","thisArg","args","arguments","encode","serializedParams","parts","v","isDate","toISOString","join","hashmarkIndex","relativeURL","write","expires","path","domain","secure","cookie","isNumber","Date","toGMTString","document","match","RegExp","remove","now","test","originURL","msie","navigator","userAgent","urlParsingNode","createElement","resolveURL","href","setAttribute","host","search","hash","hostname","port","pathname","location","requestURL","parsed","normalizedName","ignoreDuplicateOf","line","substr","exec","callback","arr","formData","convertValue","isTypedArray","Blob","Buffer","build","parentKey","fullKey","endsWith","toArray","el","append","pop","thing","deprecatedWarnings","version","formatMessage","opt","desc","opts","ERR_DEPRECATED","console","warn","schema","allowUnknown","ERR_BAD_OPTION_VALUE","result","ERR_BAD_OPTION","cache","kindOf","str","kindOfTest","getPrototypeOf","isFunction","hasOwnProperty","TypedArray","Uint8Array","pattern","ArrayBuffer","isView","pipe","product","assignValue","b","stripBOM","content","superConstructor","props","sourceObj","destObj","filter","merged","getOwnPropertyNames","searchString","position","lastIndex","symbolTag","reAsciiWord","reLatin","rsComboMarksRange","rsDingbatRange","rsLowerRange","rsUpperRange","rsBreakRange","rsMathOpRange","rsApos","rsAstral","rsBreak","rsCombo","rsDigits","rsDingbat","rsLower","rsMisc","rsFitz","rsNonAstral","rsRegional","rsSurrPair","rsUpper","rsLowerMisc","rsUpperMisc","rsOptLowerContr","rsOptUpperContr","reOptMod","rsOptVar","rsSeq","rsEmoji","rsSymbol","reApos","reComboMark","reUnicode","reUnicodeWord","reHasUnicode","reHasUnicodeWord","freeGlobal","g","freeSelf","self","root","Function","object","deburrLetter","hasUnicode","string","stringToArray","unicodeToArray","asciiToArray","objectToString","symbolProto","symbolToString","baseToString","isObjectLike","isSymbol","castSlice","array","start","end","baseSlice","camelCase","word","upperFirst","iteratee","accumulator","initAccum","arrayReduce","guard","hasUnicodeWord","unicodeWords","asciiWords","words","deburr","methodName","strSymbols","chr","trailing","__webpack_module_cache__","__webpack_require__","moduleId","cachedModule","__webpack_modules__","getter","__esModule","d","definition","get","globalThis","_arrayLikeToArray","len","arr2","_slicedToArray","_i","_s","_e","_arr","_n","_d","next","minLen","_defineProperties","descriptor","Method","Name","LoyaltyDialogResults","Results","CLOSE","BUY_FOR_MONEY","BUY_FOR_POINTS","BasketOfferTypes","ShoppingNotificationType","ContentTypes","Header","RequestMethod","RequestUrl","HttpMethod","ShoppingContextLoadedEvent","isSuccess","documentElement","lang","convertToCamelCase","map","fromEntries","entries","_objectWithoutProperties","excluded","sourceKeys","getOwnPropertySymbols","sourceSymbolKeys","propertyIsEnumerable","LogLevel","getHttpRequestSettings","body","Get","ContentType","Json","placement","finalData","Placement","bodyValue","credentials","Post","Boolean","addBasketOffer","async","fetch","json","isAddBasketOfferErrorResponse","event","CustomEvent","AddBasketOfferFailed","detail","dispatchEvent","APPLICATION_NAME","DEFAULT_LOG_LEVEL","Warning","logMethodsMap","Map","None","Info","info","Debug","log","getTime","date","minutes","getMinutes","seconds","getSeconds","milliseconds","getMilliseconds","getHours","getLogLevel","localStorage","getItem","level","currentLevel","time","logError","logDebug","logReceivedEvent","pagePathPatterns","dispatchBasketUpdatedEvent","eventType","BasketUpdated","contextKey","scheduledCleanupKey","storage","isStorageAvailable","getUserCheck","cookieName","adler32","parseValue","serializedData","parsedValue","timestamp","savedTimestamp","userCheck","removeItem","isUpdateBasketItemErrorResponse","offerId","AddCatalogueOffer","AddCatalogueOfferFailed","itemCode","AddFreeShippingOffer","AddFreeShippingOfferFailed","putRequestOptions","getAuthorizationToken","tokenConfiguration","isCustomerAnonymous","forceReload","identityUrl","tenant","ori","tokenService","oriToken","getToken","getPublicToken","normalizeSlashChars","isStartingSlashRequired","isEndingSlashRequired","at","buyingMethod","quantity","logWarning","loyaltyPoints","isAddToBasketLoyaltyResponse","ShowLoyaltyDialog","shoppingBag","isAddToBasketSuccessResponse","lastAddedItem","isAddToBasketErrorResponse","AddToBasketFailed","fetchData","originalBasePath","basePath","currentLanguage","originalHost","isAuthorizationRequired","originalMethod","query","getUrl","Put","isUpdateDeliveryErrorResponse","setCachedContext","setItem","contextUpdatesMap","AcceptNotification","reasonId","isAcceptNotificationErrorResponse","errorEvent","ErrorEventName","AddBackorderDemand","requestItemUpdate","UpdateBasketItem","AddBasketOffer","items","isAddBasketOfferPurchaseEvent","choiceId","currentPlacement","PurchaseBasketOffer","addCatalogueOfferHandler","AddCustomerOrder","orderIds","URL","searchParams","isCustomerOrderSuccessResponse","lastAddedCustomerOrderIds","isCustomerOrderErrorResponse","AddCustomerOrderFailed","addFreeShippingOfferHandler","AddToBasket","originalItemCode","replacementType","addToBasketMethod","AddToBasketForMoney","AddToBasketForPointsRewardShop","AddToBasketCheckLoyalty","getBuyingURLandMethod","addToBasket","AddVoucher","voucherCode","fetchUrl","isAddVoucherSuccessResponse","isAddVoucherErrorResponse","AddVoucherFailed","CancelBackorderDemand","CancelSubscription","consumerId","packageId","subscriptionId","CancelSubscriptionFailed","ClearBasket","DelaySubscription","cycle","step","isDelaySubscriptionSuccessResponse","isDelaySubscriptionErrorResponse","DelaySubscriptionFailed","LoyaltyDialogResult","catalogueItemId","AddToBasketForPoints","RemoveBasketItem","RemoveCustomerOrder","endConsumerOrderId","isRemoveCustomerOrderSuccessResponse","isRemoveCustomerOrderErrorResponse","RemoveCustomerOrderFailed","RemoveVoucher","isRemoveVoucherSuccessResponse","isRemoveVoucherErrorResponse","RemoveVoucherFailed","ReplaceShoppingBagItem","isReplaceShoppingBagItemErrorResponse","ReplaceShoppingBagItemFailed","ReplaceSubscription","configuration","droppingId","customerId","globalApiUrl","queryParams","URLSearchParams","urlOptions","origin","cacheKeys","values","getUrlOptions","DroppingId","ItemCode","catch","fetcher","GetShoppingContext","isReplaceSubscriptionErrorResponse","ReplaceSubscriptionFailed","ResetShippingSelection","ResetFreeShippingSelection","UpdateCustomerOrderItem","requestedQuantity","isUpdateCustomerOrderItemSuccessResponse","isUpdateCustomerOrderItemErrorResponse","UpdateCustomerOrderItemFailed","UpdateDelivery","deliveryAddressId","deliveryChannelId","registrationId","channelRequestOptions","requestUpdateDeliveryChannel","UpdateDeliveryChannel","channelResponse","addressParams","addressId","addressRequestOptions","requestUpdateDeliveryAddress","UpdateDeliveryAddress","addressResponse","requestOptions","isUpdateDeliveryChannelErrorResponse","UpdateDonation","checked","isUpdateDonationFailedResponse","UpdateOfferItems","UpdateOfferItem","UpdatePaymentProvider","paymentProviderId","isUpdatePaymentProviderFailedResponse","BasketProvider","isCleanupPage","Constructor","parseConfiguration","isBrowserStorageUsed","some","item","includes","isScheduled","isScheduledCacheCleanup","clearContext","getStoredContext","initEventListeners","protoProps","staticProps","isBrowserTabsSynchronizationUsed","shoppingContext","eventListeners","removeEventListeners","eventName","updateHandler","getConfiguration","updateContext","RequestShoppingContext","isRequestingShoppingContext","newData","ShoppingContextLoaded","requestShoppingContextHandler","PlaceOrderRequested","clearContextOnEvent","RequestClearShoppingCache","eventListener","storageArea","newValue","action","configElement","getElementById","CONFIG_ELEMENT_ID","rawData","innerHTML","useBrowserTabsSynchronization","useLocalStorage","eventTypeToBeTriggered","shouldStoreData"],"sourceRoot":""}