{"version":3,"file":"index.js","mappings":"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","sources":["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/webpack/runtime/make namespace object","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/typeof.js","webpack://orishoppingbagprovider/./node_modules/@babel/runtime/helpers/esm/toPropertyKey.js","webpack://orishoppingbagprovider/./node_modules/@babel/runtime/helpers/esm/toPrimitive.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/dist/esm/index.js","webpack://orishoppingbagprovider/./node_modules/@ori-events/add-backorder-demand/dist/esm/index.js","webpack://orishoppingbagprovider/./node_modules/@ori-events/add-basket-offer/dist/esm/index.js","webpack://orishoppingbagprovider/./node_modules/@ori-events/add-catalogue-offer/dist/esm/index.js","webpack://orishoppingbagprovider/./node_modules/@ori-events/add-customer-order/dist/esm/index.js","webpack://orishoppingbagprovider/./node_modules/@ori-events/add-free-shipping-offer/dist/esm/index.js","webpack://orishoppingbagprovider/./node_modules/@ori-events/add-to-basket/dist/esm/index.js","webpack://orishoppingbagprovider/./node_modules/@ori-events/add-voucher/dist/esm/index.js","webpack://orishoppingbagprovider/./node_modules/@ori-events/basket-updated/dist/esm/index.js","webpack://orishoppingbagprovider/./node_modules/@ori-events/cancel-backorder-demand/dist/esm/index.js","webpack://orishoppingbagprovider/./node_modules/@ori-events/cancel-subscription/dist/esm/index.js","webpack://orishoppingbagprovider/./node_modules/@ori-events/clear-basket/dist/esm/index.js","webpack://orishoppingbagprovider/./node_modules/@ori-events/delay-subscription/dist/esm/index.js","webpack://orishoppingbagprovider/./node_modules/@ori-events/loyalty-dialog-result/dist/esm/index.js","webpack://orishoppingbagprovider/./node_modules/@ori-events/place-order-requested/dist/esm/index.js","webpack://orishoppingbagprovider/./node_modules/@ori-events/remove-basket-item/dist/esm/index.js","webpack://orishoppingbagprovider/./node_modules/@ori-events/remove-customer-order/dist/esm/index.js","webpack://orishoppingbagprovider/./node_modules/@ori-events/remove-voucher/dist/esm/index.js","webpack://orishoppingbagprovider/./node_modules/@ori-events/replace-shopping-bag-item/dist/esm/index.js","webpack://orishoppingbagprovider/./node_modules/@ori-events/replace-subscription/dist/esm/index.js","webpack://orishoppingbagprovider/./node_modules/@ori-events/request-clear-shopping-cache/dist/esm/index.js","webpack://orishoppingbagprovider/./node_modules/@ori-events/request-shopping-context/dist/esm/index.js","webpack://orishoppingbagprovider/./node_modules/@ori-events/reset-shipping-selection/dist/esm/index.js","webpack://orishoppingbagprovider/./node_modules/@ori-events/shopping-context-loaded/dist/esm/index.js","webpack://orishoppingbagprovider/./node_modules/@ori-events/update-basket-item/dist/esm/index.js","webpack://orishoppingbagprovider/./node_modules/@ori-events/update-customer-order-item/dist/esm/index.js","webpack://orishoppingbagprovider/./node_modules/@ori-events/update-delivery/dist/esm/index.js","webpack://orishoppingbagprovider/./node_modules/@ori-events/update-delivery-channel/dist/esm/index.js","webpack://orishoppingbagprovider/./node_modules/@ori-events/update-donation/dist/esm/index.js","webpack://orishoppingbagprovider/./node_modules/@ori-events/update-offer-item/dist/esm/index.js","webpack://orishoppingbagprovider/./node_modules/@ori-events/update-offer-items/dist/esm/index.js","webpack://orishoppingbagprovider/./node_modules/@ori-events/update-payment-provider/dist/esm/index.js","webpack://orishoppingbagprovider/./node_modules/@ori-events/failed-event-data/dist/esm/index.js","webpack://orishoppingbagprovider/./node_modules/@ori-events/accept-notification-failed/dist/esm/index.js","webpack://orishoppingbagprovider/./node_modules/@ori-events/add-basket-offer-failed/dist/esm/index.js","webpack://orishoppingbagprovider/./src/models/AppConfiguration.ts","webpack://orishoppingbagprovider/./src/guards/addBasketOfferResponse.ts","webpack://orishoppingbagprovider/./src/models/enums.ts","webpack://orishoppingbagprovider/./src/models/HttpMethod.ts","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/helpers/addBasketOffer.ts","webpack://orishoppingbagprovider/./src/constants/app.ts","webpack://orishoppingbagprovider/./src/utils/log.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/dist/esm/index.js","webpack://orishoppingbagprovider/./src/handlers/addBasketOfferHandler.ts","webpack://orishoppingbagprovider/./node_modules/@ori-events/add-catalogue-offer-failed/dist/esm/index.js","webpack://orishoppingbagprovider/./src/handlers/addCatalogueOfferHandler.ts","webpack://orishoppingbagprovider/./node_modules/@ori-events/add-customer-order-failed/dist/esm/index.js","webpack://orishoppingbagprovider/./src/handlers/addCustomerOrderHandler.ts","webpack://orishoppingbagprovider/./node_modules/@ori-events/add-free-shipping-offer-failed/dist/esm/index.js","webpack://orishoppingbagprovider/./src/handlers/addFreeShippingOfferHandler.ts","webpack://orishoppingbagprovider/./node_modules/@ori-events/add-to-basket-failed/dist/esm/index.js","webpack://orishoppingbagprovider/./node_modules/@ori-events/show-loyalty-dialog/dist/esm/index.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/./src/utils/getPublicToken.ts","webpack://orishoppingbagprovider/./src/constants/requestOptions.ts","webpack://orishoppingbagprovider/./src/utils/getAuthorizationToken.ts","webpack://orishoppingbagprovider/./src/utils/getToken.ts","webpack://orishoppingbagprovider/./node_modules/axios/lib/helpers/bind.js","webpack://orishoppingbagprovider/./node_modules/axios/lib/utils.js","webpack://orishoppingbagprovider/./node_modules/axios/lib/core/AxiosError.js","webpack://orishoppingbagprovider/./node_modules/axios/lib/helpers/toFormData.js","webpack://orishoppingbagprovider/./node_modules/axios/lib/helpers/AxiosURLSearchParams.js","webpack://orishoppingbagprovider/./node_modules/axios/lib/helpers/buildURL.js","webpack://orishoppingbagprovider/./node_modules/axios/lib/core/InterceptorManager.js","webpack://orishoppingbagprovider/./node_modules/axios/lib/defaults/transitional.js","webpack://orishoppingbagprovider/./node_modules/axios/lib/platform/browser/index.js","webpack://orishoppingbagprovider/./node_modules/axios/lib/platform/browser/classes/URLSearchParams.js","webpack://orishoppingbagprovider/./node_modules/axios/lib/platform/browser/classes/FormData.js","webpack://orishoppingbagprovider/./node_modules/axios/lib/platform/browser/classes/Blob.js","webpack://orishoppingbagprovider/./node_modules/axios/lib/platform/common/utils.js","webpack://orishoppingbagprovider/./node_modules/axios/lib/platform/index.js","webpack://orishoppingbagprovider/./node_modules/axios/lib/helpers/formDataToJSON.js","webpack://orishoppingbagprovider/./node_modules/axios/lib/defaults/index.js","webpack://orishoppingbagprovider/./node_modules/axios/lib/helpers/toURLEncodedForm.js","webpack://orishoppingbagprovider/./node_modules/axios/lib/helpers/parseHeaders.js","webpack://orishoppingbagprovider/./node_modules/axios/lib/core/AxiosHeaders.js","webpack://orishoppingbagprovider/./node_modules/axios/lib/core/transformData.js","webpack://orishoppingbagprovider/./node_modules/axios/lib/cancel/isCancel.js","webpack://orishoppingbagprovider/./node_modules/axios/lib/cancel/CanceledError.js","webpack://orishoppingbagprovider/./node_modules/axios/lib/helpers/cookies.js","webpack://orishoppingbagprovider/./node_modules/axios/lib/core/buildFullPath.js","webpack://orishoppingbagprovider/./node_modules/axios/lib/helpers/isAbsoluteURL.js","webpack://orishoppingbagprovider/./node_modules/axios/lib/helpers/combineURLs.js","webpack://orishoppingbagprovider/./node_modules/axios/lib/helpers/isURLSameOrigin.js","webpack://orishoppingbagprovider/./node_modules/axios/lib/helpers/speedometer.js","webpack://orishoppingbagprovider/./node_modules/axios/lib/adapters/xhr.js","webpack://orishoppingbagprovider/./node_modules/axios/lib/adapters/adapters.js","webpack://orishoppingbagprovider/./node_modules/axios/lib/helpers/null.js","webpack://orishoppingbagprovider/./node_modules/axios/lib/core/settle.js","webpack://orishoppingbagprovider/./node_modules/axios/lib/helpers/parseProtocol.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/env/data.js","webpack://orishoppingbagprovider/./node_modules/axios/lib/helpers/validator.js","webpack://orishoppingbagprovider/./node_modules/axios/lib/core/Axios.js","webpack://orishoppingbagprovider/./node_modules/axios/lib/cancel/CancelToken.js","webpack://orishoppingbagprovider/./node_modules/axios/lib/helpers/HttpStatusCode.js","webpack://orishoppingbagprovider/./node_modules/axios/lib/axios.js","webpack://orishoppingbagprovider/./node_modules/axios/lib/helpers/spread.js","webpack://orishoppingbagprovider/./node_modules/axios/lib/helpers/isAxiosError.js","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/dist/esm/index.js","webpack://orishoppingbagprovider/./src/handlers/addVoucherHandler.ts","webpack://orishoppingbagprovider/./node_modules/@ori-events/cancel-subscription-failed/dist/esm/index.js","webpack://orishoppingbagprovider/./src/handlers/cancelSubscriptionHandler.ts","webpack://orishoppingbagprovider/./node_modules/@ori-events/delay-subscription-failed/dist/esm/index.js","webpack://orishoppingbagprovider/./src/handlers/delaySubscriptionHandler.ts","webpack://orishoppingbagprovider/./node_modules/@ori-events/remove-customer-order-failed/dist/esm/index.js","webpack://orishoppingbagprovider/./src/handlers/removeCustomerOrderHandler.ts","webpack://orishoppingbagprovider/./node_modules/@ori-events/remove-voucher-failed/dist/esm/index.js","webpack://orishoppingbagprovider/./src/handlers/removeVoucherHandler.ts","webpack://orishoppingbagprovider/./node_modules/@ori-events/replace-shopping-bag-item-failed/dist/esm/index.js","webpack://orishoppingbagprovider/./src/handlers/replaceShoppingBagItemHandler.ts","webpack://orishoppingbagprovider/./node_modules/@ori-events/replace-subscription-failed/dist/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/dist/esm/index.js","webpack://orishoppingbagprovider/./src/handlers/updateCustomerOrderItemHandler.ts","webpack://orishoppingbagprovider/./node_modules/@ori-events/update-delivery-channel-failed/dist/esm/index.js","webpack://orishoppingbagprovider/./src/handlers/updateDeliveryChannelHandler.ts","webpack://orishoppingbagprovider/./node_modules/@ori-events/update-delivery-failed/dist/esm/index.js","webpack://orishoppingbagprovider/./src/handlers/updateDeliveryHandler.ts","webpack://orishoppingbagprovider/./node_modules/@ori-events/update-donation-failed/dist/esm/index.js","webpack://orishoppingbagprovider/./src/handlers/updateOfferItemHandler.ts","webpack://orishoppingbagprovider/./node_modules/@ori-events/update-payment-provider-failed/dist/esm/index.js","webpack://orishoppingbagprovider/./src/BasketProvider.ts","webpack://orishoppingbagprovider/./src/handlers/acceptNotificationHandler.ts","webpack://orishoppingbagprovider/./src/handlers/addBackorderDemandHandler.ts","webpack://orishoppingbagprovider/./src/guards/addBasketOfferRequest.ts","webpack://orishoppingbagprovider/./src/guards/addCustomerOrderResponse.ts","webpack://orishoppingbagprovider/./src/handlers/addToBasketHandler.ts","webpack://orishoppingbagprovider/./src/helpers/getBuyingURLandMethod.ts","webpack://orishoppingbagprovider/./src/guards/addVoucherResponse.ts","webpack://orishoppingbagprovider/./src/handlers/cancelBackorderDemandHandler.ts","webpack://orishoppingbagprovider/./src/handlers/clearBasketHandler.ts","webpack://orishoppingbagprovider/./src/guards/delaySubscriptionResponse.ts","webpack://orishoppingbagprovider/./src/handlers/checkLoyaltyDialogResultAndAddToBasketHandler.ts","webpack://orishoppingbagprovider/./src/handlers/removeFromBasketHandler.ts","webpack://orishoppingbagprovider/./src/guards/removeCustomerOrderResponse.ts","webpack://orishoppingbagprovider/./src/guards/removeVoucherResponse.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/guards/updateCustomerOrderItemResponse.ts","webpack://orishoppingbagprovider/./src/handlers/updateDonationHandler.ts","webpack://orishoppingbagprovider/./src/handlers/updateOfferItemsHandler.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":["/**\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))","// define __esModule on exports\n__webpack_require__.r = (exports) => {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","export default function _arrayLikeToArray(arr, len) {\n if (len == null || len > arr.length) len = arr.length;\n for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i];\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(r, l) {\n var t = null == r ? null : \"undefined\" != typeof Symbol && r[Symbol.iterator] || r[\"@@iterator\"];\n if (null != t) {\n var e,\n n,\n i,\n u,\n a = [],\n f = !0,\n o = !1;\n try {\n if (i = (t = t.call(r)).next, 0 === l) {\n if (Object(t) !== t) return;\n f = !1;\n } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0);\n } catch (r) {\n o = !0, n = r;\n } finally {\n try {\n if (!f && null != t[\"return\"] && (u = t[\"return\"](), Object(u) !== u)) return;\n } finally {\n if (o) throw n;\n }\n }\n return a;\n }\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}","export default function _typeof(o) {\n \"@babel/helpers - typeof\";\n\n return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) {\n return typeof o;\n } : function (o) {\n return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o;\n }, _typeof(o);\n}","import _typeof from \"./typeof.js\";\nimport toPrimitive from \"./toPrimitive.js\";\nexport default function toPropertyKey(t) {\n var i = toPrimitive(t, \"string\");\n return \"symbol\" == _typeof(i) ? i : String(i);\n}","import _typeof from \"./typeof.js\";\nexport default function toPrimitive(t, r) {\n if (\"object\" != _typeof(t) || !t) return t;\n var e = t[Symbol.toPrimitive];\n if (void 0 !== e) {\n var i = e.call(t, r || \"default\");\n if (\"object\" != _typeof(i)) return i;\n throw new TypeError(\"@@toPrimitive must return a primitive value.\");\n }\n return (\"string\" === r ? String : Number)(t);\n}","import toPropertyKey from \"./toPropertyKey.js\";\nfunction _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, toPropertyKey(descriptor.key), descriptor);\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}","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}","export const Name = 'accept-notification';\nexport const AcceptNotificationEvent = Name;\n//# sourceMappingURL=index.js.map","export const Name = 'add-backorder-demand';\nexport const AddBackorderDemandEvent = Name;\n//# sourceMappingURL=index.js.map","export const Name = 'add-basket-offer';\nexport const AddBasketOffer = Name;\n//# sourceMappingURL=index.js.map","export const Name = 'add-catalogue-offer';\nexport const AddCatalogueOfferEvent = Name;\n//# sourceMappingURL=index.js.map","export const Name = 'add-customer-order';\nexport const AddCustomerOrderEvent = Name;\n//# sourceMappingURL=index.js.map","export const Name = 'add-free-shipping-offer';\nexport const AddFreeShippingOfferEvent = Name;\n//# sourceMappingURL=index.js.map","export const Name = 'add-to-basket';\nexport const AddToBasketEvent = Name;\nexport let Method = /*#__PURE__*/function (Method) {\n Method[\"BUY_FOR_MONEY\"] = \"BUY_FOR_MONEY\";\n Method[\"BUY_FOR_POINTS\"] = \"BUY_FOR_POINTS\";\n return Method;\n}({});\n//# sourceMappingURL=index.js.map","export const Name = 'add-voucher';\nexport const AddVoucherEvent = Name;\n//# sourceMappingURL=index.js.map","export { Results as LastAddedItemMethod } from '@ori-events/loyalty-dialog-result';\nexport { BasketOfferTypes } from './BasketOffer';\nexport { ShoppingNotificationType } from './ShoppingNotification';\nexport const Test = 'TEST';\nexport const Name = 'basket-updated';\nexport const BasketUpdatedEvent = Name;\n//# sourceMappingURL=index.js.map","export const Name = 'cancel-backorder-demand';\nexport const CancelBackorderDemandEvent = Name;\n//# sourceMappingURL=index.js.map","export const Name = 'cancel-subscription';\nexport const CancelSubscriptionEvent = Name;\n//# sourceMappingURL=index.js.map","export const Name = 'clear-basket';\nexport const ClearBasketEvent = Name;\n//# sourceMappingURL=index.js.map","export const Name = 'delay-subscription';\nexport const DelaySubscriptionEvent = Name;\n//# sourceMappingURL=index.js.map","import { Method } from '@ori-events/add-to-basket';\nexport const Name = 'loyalty-dialog-result';\nexport const LoyaltyDialogResultEvent = Name;\nexport let LoyaltyDialogResults = /*#__PURE__*/function (LoyaltyDialogResults) {\n LoyaltyDialogResults[\"CLOSE\"] = \"CLOSE\";\n return LoyaltyDialogResults;\n}({});\nexport { Method };\nexport let Results = function (Results) {\n Results[\"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 return Results;\n}({});\nexport const isLoyaltyBuyForMoneyResult = result => result === Method.BUY_FOR_MONEY;\nexport const isLoyaltyBuyForPointsResult = result => result === Method.BUY_FOR_POINTS;\nexport const isLoyaltyCloseResult = result => result === LoyaltyDialogResults.CLOSE;\n//# sourceMappingURL=index.js.map","export const Name = 'place-order-requested';\nexport const PlaceOrderRequestedEvent = Name;\n//# sourceMappingURL=index.js.map","export const Name = 'remove-basket-item';\nexport const RemoveBasketItemEvent = Name;\n//# sourceMappingURL=index.js.map","export const Name = 'remove-customer-order';\nexport const RemoveCustomerOrderEvent = Name;\n//# sourceMappingURL=index.js.map","export const Name = 'remove-voucher';\nexport const RemoveVoucherEvent = Name;\n//# sourceMappingURL=index.js.map","export const Name = 'replace-shopping-bag-item';\nexport const ReplaceShoppingBagItemEvent = Name;\n//# sourceMappingURL=index.js.map","export const Name = 'replace-subscription';\nexport const ReplaceSubscriptionEvent = Name;\n//# sourceMappingURL=index.js.map","export const Name = 'request-clear-shopping-cache';\nexport const RequestClearShoppingCacheEvent = Name;\n//# sourceMappingURL=index.js.map","export const Name = 'request-shopping-context';\nexport const RequestShoppingContextEvent = Name;\n//# sourceMappingURL=index.js.map","export const Name = 'reset-shipping-selection';\nexport const ResetShippingSelectionEvent = Name;\n//# sourceMappingURL=index.js.map","export const Name = 'shopping-context-loaded';\nexport const ShoppingContextLoadedEvent = Name;\n//# sourceMappingURL=index.js.map","export const Name = 'update-basket-item';\nexport const UpdateBasketItemEvent = Name;\n//# sourceMappingURL=index.js.map","export const Name = 'update-customer-order-item';\nexport const UpdateCustomerOrderItemEvent = Name;\n//# sourceMappingURL=index.js.map","export const Name = 'update-delivery';\nexport const UpdateDeliveryEvent = Name;\n//# sourceMappingURL=index.js.map","export const Name = 'update-delivery-channel';\nexport const UpdateDeliveryChannelEvent = Name;\n//# sourceMappingURL=index.js.map","export const Name = 'update-donation';\nexport const UpdateDonationEvent = Name;\n//# sourceMappingURL=index.js.map","export const Name = 'update-offer-item';\nexport const UpdateOfferItemEvent = Name;\n//# sourceMappingURL=index.js.map","export const Name = 'update-offer-items';\nexport const UpdateOfferItemsEvent = Name;\n//# sourceMappingURL=index.js.map","export const Name = 'update-payment-provider';\nexport const UpdatePaymentProviderEvent = Name;\n//# sourceMappingURL=index.js.map","export const isErrorResponse = response => typeof response === 'object' && response.isSuccess === false;\n//# sourceMappingURL=index.js.map","import { isErrorResponse } from '@ori-events/failed-event-data';\nexport const Name = 'accept-notification-failed';\nexport const AcceptNotificationFailedEvent = Name;\nexport const isAcceptNotificationErrorResponse = response => isErrorResponse(response);\n//# sourceMappingURL=index.js.map","import { isErrorResponse } from '@ori-events/failed-event-data';\nexport const Name = 'add-basket-offer-failed';\nexport const AddBasketOfferFailedEvent = Name;\nexport const isAddBasketOfferErrorResponse = response => isErrorResponse(response);\n//# sourceMappingURL=index.js.map","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","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 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","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 if (Object.getOwnPropertySymbols) {\n var sourceSymbolKeys = Object.getOwnPropertySymbols(source);\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 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 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 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","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\ntype AddBasketOfferApplyParams = PositionData & {\n offerId: number;\n};\n\ntype AddBasketOfferPurchaseParams = 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","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","/* 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 { 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 const Name = 'update-basket-item-failed';\nexport const UpdateBasketItemFailedEvent = Name;\nexport const isUpdateBasketItemErrorResponse = response => isErrorResponse(response);\n//# sourceMappingURL=index.js.map","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\ntype Data = AddBasketOffer.Data & PositionData;\ntype PurchaseData = 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 { isErrorResponse } from '@ori-events/failed-event-data';\nexport const Name = 'add-catalogue-offer-failed';\nexport const AddCatalogueOfferFailedEvent = Name;\nexport const isAddCatalogueOfferErrorResponse = response => isErrorResponse(response);\n//# sourceMappingURL=index.js.map","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\ntype Data = 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 const Name = 'add-customer-order-failed';\nexport const AddCustomerOrderFailedEvent = Name;\nexport const isAddCustomerOrderErrorResponse = response => isErrorResponse(response);\n//# sourceMappingURL=index.js.map","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\ntype Data = 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 { isErrorResponse } from '@ori-events/failed-event-data';\nexport const Name = 'add-free-shipping-offer-failed';\nexport const AddFreeShippingOfferFailedEvent = Name;\nexport const isAddFreeShippingOfferErrorResponse = response => isErrorResponse(response);\n//# sourceMappingURL=index.js.map","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\ntype Data = 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 const Name = 'add-to-basket-failed';\nexport const AddToBasketFailedEvent = Name;\nexport const isAddToBasketErrorResponse = response => isErrorResponse(response);\n//# sourceMappingURL=index.js.map","export const Name = 'show-loyalty-dialog';\nexport const ShowLoyaltyDialogEvent = Name;\n//# sourceMappingURL=index.js.map","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/* eslint-disable @typescript-eslint/naming-convention -- Token properties don't follow our rules */\n\nimport jwtDecode from 'jwt-decode';\nexport class OidcToken {\n constructor(token) {\n _defineProperty(this, \"token\", void 0);\n _defineProperty(this, \"payload\", void 0);\n _defineProperty(this, \"toString\", () => this.token);\n _defineProperty(this, \"getClaim\", claim => this.payload[claim]);\n if (typeof token === 'string') {\n this.token = token;\n } else {\n this.token = token.Token;\n }\n this.payload = jwtDecode(this.token);\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 _defineProperty(this, \"toString\", () => `Bearer ${this.token}`);\n }\n}\n//# sourceMappingURL=OidcAccessToken.js.map","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","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","'use strict';\n\nexport default function bind(fn, thisArg) {\n return function wrap() {\n return fn.apply(thisArg, arguments);\n };\n}\n","'use strict';\n\nimport bind from './helpers/bind.js';\n\n// utils is a library of generic helper functions non-specific to axios\n\nconst {toString} = Object.prototype;\nconst {getPrototypeOf} = Object;\n\nconst kindOf = (cache => thing => {\n const str = toString.call(thing);\n return cache[str] || (cache[str] = str.slice(8, -1).toLowerCase());\n})(Object.create(null));\n\nconst kindOfTest = (type) => {\n type = type.toLowerCase();\n return (thing) => kindOf(thing) === type\n}\n\nconst typeOfTest = type => thing => typeof thing === type;\n\n/**\n * Determine if a value is an Array\n *\n * @param {Object} val The value to test\n *\n * @returns {boolean} True if value is an Array, otherwise false\n */\nconst {isArray} = Array;\n\n/**\n * Determine if a value is undefined\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if the value is undefined, otherwise false\n */\nconst isUndefined = typeOfTest('undefined');\n\n/**\n * Determine if a value is a Buffer\n *\n * @param {*} val The value to test\n *\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 && isFunction(val.constructor.isBuffer) && val.constructor.isBuffer(val);\n}\n\n/**\n * Determine if a value is an ArrayBuffer\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is an ArrayBuffer, otherwise false\n */\nconst isArrayBuffer = kindOfTest('ArrayBuffer');\n\n\n/**\n * Determine if a value is a view on an ArrayBuffer\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a view on an ArrayBuffer, otherwise false\n */\nfunction isArrayBufferView(val) {\n let 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 {*} val The value to test\n *\n * @returns {boolean} True if value is a String, otherwise false\n */\nconst isString = typeOfTest('string');\n\n/**\n * Determine if a value is a Function\n *\n * @param {*} val The value to test\n * @returns {boolean} True if value is a Function, otherwise false\n */\nconst isFunction = typeOfTest('function');\n\n/**\n * Determine if a value is a Number\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a Number, otherwise false\n */\nconst isNumber = typeOfTest('number');\n\n/**\n * Determine if a value is an Object\n *\n * @param {*} thing The value to test\n *\n * @returns {boolean} True if value is an Object, otherwise false\n */\nconst isObject = (thing) => thing !== null && typeof thing === 'object';\n\n/**\n * Determine if a value is a Boolean\n *\n * @param {*} thing The value to test\n * @returns {boolean} True if value is a Boolean, otherwise false\n */\nconst isBoolean = thing => thing === true || thing === false;\n\n/**\n * Determine if a value is a plain Object\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a plain Object, otherwise false\n */\nconst isPlainObject = (val) => {\n if (kindOf(val) !== 'object') {\n return false;\n }\n\n const prototype = getPrototypeOf(val);\n return (prototype === null || prototype === Object.prototype || Object.getPrototypeOf(prototype) === null) && !(Symbol.toStringTag in val) && !(Symbol.iterator in val);\n}\n\n/**\n * Determine if a value is a Date\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a Date, otherwise false\n */\nconst isDate = kindOfTest('Date');\n\n/**\n * Determine if a value is a File\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a File, otherwise false\n */\nconst isFile = kindOfTest('File');\n\n/**\n * Determine if a value is a Blob\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a Blob, otherwise false\n */\nconst isBlob = kindOfTest('Blob');\n\n/**\n * Determine if a value is a FileList\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a File, otherwise false\n */\nconst isFileList = kindOfTest('FileList');\n\n/**\n * Determine if a value is a Stream\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a Stream, otherwise false\n */\nconst isStream = (val) => isObject(val) && isFunction(val.pipe);\n\n/**\n * Determine if a value is a FormData\n *\n * @param {*} thing The value to test\n *\n * @returns {boolean} True if value is an FormData, otherwise false\n */\nconst isFormData = (thing) => {\n let kind;\n return thing && (\n (typeof FormData === 'function' && thing instanceof FormData) || (\n isFunction(thing.append) && (\n (kind = kindOf(thing)) === 'formdata' ||\n // detect form-data instance\n (kind === 'object' && isFunction(thing.toString) && thing.toString() === '[object FormData]')\n )\n )\n )\n}\n\n/**\n * Determine if a value is a URLSearchParams object\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a URLSearchParams object, otherwise false\n */\nconst 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 *\n * @returns {String} The String freed of excess whitespace\n */\nconst trim = (str) => str.trim ?\n str.trim() : str.replace(/^[\\s\\uFEFF\\xA0]+|[\\s\\uFEFF\\xA0]+$/g, '');\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 *\n * @param {Boolean} [allOwnKeys = false]\n * @returns {any}\n */\nfunction forEach(obj, fn, {allOwnKeys = false} = {}) {\n // Don't bother if no value provided\n if (obj === null || typeof obj === 'undefined') {\n return;\n }\n\n let i;\n let l;\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 (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 const keys = allOwnKeys ? Object.getOwnPropertyNames(obj) : Object.keys(obj);\n const len = keys.length;\n let key;\n\n for (i = 0; i < len; i++) {\n key = keys[i];\n fn.call(null, obj[key], key, obj);\n }\n }\n}\n\nfunction findKey(obj, key) {\n key = key.toLowerCase();\n const keys = Object.keys(obj);\n let i = keys.length;\n let _key;\n while (i-- > 0) {\n _key = keys[i];\n if (key === _key.toLowerCase()) {\n return _key;\n }\n }\n return null;\n}\n\nconst _global = (() => {\n /*eslint no-undef:0*/\n if (typeof globalThis !== \"undefined\") return globalThis;\n return typeof self !== \"undefined\" ? self : (typeof window !== 'undefined' ? window : global)\n})();\n\nconst isContextDefined = (context) => !isUndefined(context) && context !== _global;\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 *\n * @returns {Object} Result of all merge properties\n */\nfunction merge(/* obj1, obj2, obj3, ... */) {\n const {caseless} = isContextDefined(this) && this || {};\n const result = {};\n const assignValue = (val, key) => {\n const targetKey = caseless && findKey(result, key) || key;\n if (isPlainObject(result[targetKey]) && isPlainObject(val)) {\n result[targetKey] = merge(result[targetKey], val);\n } else if (isPlainObject(val)) {\n result[targetKey] = merge({}, val);\n } else if (isArray(val)) {\n result[targetKey] = val.slice();\n } else {\n result[targetKey] = val;\n }\n }\n\n for (let i = 0, l = arguments.length; i < l; i++) {\n arguments[i] && 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 *\n * @param {Boolean} [allOwnKeys]\n * @returns {Object} The resulting value of object a\n */\nconst extend = (a, b, thisArg, {allOwnKeys}= {}) => {\n forEach(b, (val, key) => {\n if (thisArg && isFunction(val)) {\n a[key] = bind(val, thisArg);\n } else {\n a[key] = val;\n }\n }, {allOwnKeys});\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 *\n * @returns {string} content value without BOM\n */\nconst 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 * @returns {void}\n */\nconst inherits = (constructor, superConstructor, props, descriptors) => {\n constructor.prototype = Object.create(superConstructor.prototype, descriptors);\n constructor.prototype.constructor = constructor;\n Object.defineProperty(constructor, 'super', {\n value: superConstructor.prototype\n });\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|Boolean} [filter]\n * @param {Function} [propFilter]\n *\n * @returns {Object}\n */\nconst toFlatObject = (sourceObj, destObj, filter, propFilter) => {\n let props;\n let i;\n let prop;\n const merged = {};\n\n destObj = destObj || {};\n // eslint-disable-next-line no-eq-null,eqeqeq\n if (sourceObj == null) return destObj;\n\n do {\n props = Object.getOwnPropertyNames(sourceObj);\n i = props.length;\n while (i-- > 0) {\n prop = props[i];\n if ((!propFilter || propFilter(prop, sourceObj, destObj)) && !merged[prop]) {\n destObj[prop] = sourceObj[prop];\n merged[prop] = true;\n }\n }\n sourceObj = filter !== false && 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 *\n * @param {String} str\n * @param {String} searchString\n * @param {Number} [position= 0]\n *\n * @returns {boolean}\n */\nconst 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 const lastIndex = str.indexOf(searchString, position);\n return lastIndex !== -1 && lastIndex === position;\n}\n\n\n/**\n * Returns new array from array like object or null if failed\n *\n * @param {*} [thing]\n *\n * @returns {?Array}\n */\nconst toArray = (thing) => {\n if (!thing) return null;\n if (isArray(thing)) return thing;\n let i = thing.length;\n if (!isNumber(i)) return null;\n const arr = new Array(i);\n while (i-- > 0) {\n arr[i] = thing[i];\n }\n return arr;\n}\n\n/**\n * Checking if the Uint8Array exists and if it does, it returns a function that checks if the\n * thing passed in is an instance of Uint8Array\n *\n * @param {TypedArray}\n *\n * @returns {Array}\n */\n// eslint-disable-next-line func-names\nconst isTypedArray = (TypedArray => {\n // eslint-disable-next-line func-names\n return thing => {\n return TypedArray && thing instanceof TypedArray;\n };\n})(typeof Uint8Array !== 'undefined' && getPrototypeOf(Uint8Array));\n\n/**\n * For each entry in the object, call the function with the key and value.\n *\n * @param {Object} obj - The object to iterate over.\n * @param {Function} fn - The function to call for each entry.\n *\n * @returns {void}\n */\nconst forEachEntry = (obj, fn) => {\n const generator = obj && obj[Symbol.iterator];\n\n const iterator = generator.call(obj);\n\n let result;\n\n while ((result = iterator.next()) && !result.done) {\n const pair = result.value;\n fn.call(obj, pair[0], pair[1]);\n }\n}\n\n/**\n * It takes a regular expression and a string, and returns an array of all the matches\n *\n * @param {string} regExp - The regular expression to match against.\n * @param {string} str - The string to search.\n *\n * @returns {Array}\n */\nconst matchAll = (regExp, str) => {\n let matches;\n const arr = [];\n\n while ((matches = regExp.exec(str)) !== null) {\n arr.push(matches);\n }\n\n return arr;\n}\n\n/* Checking if the kindOfTest function returns true when passed an HTMLFormElement. */\nconst isHTMLForm = kindOfTest('HTMLFormElement');\n\nconst toCamelCase = str => {\n return str.toLowerCase().replace(/[-_\\s]([a-z\\d])(\\w*)/g,\n function replacer(m, p1, p2) {\n return p1.toUpperCase() + p2;\n }\n );\n};\n\n/* Creating a function that will check if an object has a property. */\nconst hasOwnProperty = (({hasOwnProperty}) => (obj, prop) => hasOwnProperty.call(obj, prop))(Object.prototype);\n\n/**\n * Determine if a value is a RegExp object\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a RegExp object, otherwise false\n */\nconst isRegExp = kindOfTest('RegExp');\n\nconst reduceDescriptors = (obj, reducer) => {\n const descriptors = Object.getOwnPropertyDescriptors(obj);\n const reducedDescriptors = {};\n\n forEach(descriptors, (descriptor, name) => {\n let ret;\n if ((ret = reducer(descriptor, name, obj)) !== false) {\n reducedDescriptors[name] = ret || descriptor;\n }\n });\n\n Object.defineProperties(obj, reducedDescriptors);\n}\n\n/**\n * Makes all methods read-only\n * @param {Object} obj\n */\n\nconst freezeMethods = (obj) => {\n reduceDescriptors(obj, (descriptor, name) => {\n // skip restricted props in strict mode\n if (isFunction(obj) && ['arguments', 'caller', 'callee'].indexOf(name) !== -1) {\n return false;\n }\n\n const value = obj[name];\n\n if (!isFunction(value)) return;\n\n descriptor.enumerable = false;\n\n if ('writable' in descriptor) {\n descriptor.writable = false;\n return;\n }\n\n if (!descriptor.set) {\n descriptor.set = () => {\n throw Error('Can not rewrite read-only method \\'' + name + '\\'');\n };\n }\n });\n}\n\nconst toObjectSet = (arrayOrString, delimiter) => {\n const obj = {};\n\n const define = (arr) => {\n arr.forEach(value => {\n obj[value] = true;\n });\n }\n\n isArray(arrayOrString) ? define(arrayOrString) : define(String(arrayOrString).split(delimiter));\n\n return obj;\n}\n\nconst noop = () => {}\n\nconst toFiniteNumber = (value, defaultValue) => {\n value = +value;\n return Number.isFinite(value) ? value : defaultValue;\n}\n\nconst ALPHA = 'abcdefghijklmnopqrstuvwxyz'\n\nconst DIGIT = '0123456789';\n\nconst ALPHABET = {\n DIGIT,\n ALPHA,\n ALPHA_DIGIT: ALPHA + ALPHA.toUpperCase() + DIGIT\n}\n\nconst generateString = (size = 16, alphabet = ALPHABET.ALPHA_DIGIT) => {\n let str = '';\n const {length} = alphabet;\n while (size--) {\n str += alphabet[Math.random() * length|0]\n }\n\n return str;\n}\n\n/**\n * If the thing is a FormData object, return true, otherwise return false.\n *\n * @param {unknown} thing - The thing to check.\n *\n * @returns {boolean}\n */\nfunction isSpecCompliantForm(thing) {\n return !!(thing && isFunction(thing.append) && thing[Symbol.toStringTag] === 'FormData' && thing[Symbol.iterator]);\n}\n\nconst toJSONObject = (obj) => {\n const stack = new Array(10);\n\n const visit = (source, i) => {\n\n if (isObject(source)) {\n if (stack.indexOf(source) >= 0) {\n return;\n }\n\n if(!('toJSON' in source)) {\n stack[i] = source;\n const target = isArray(source) ? [] : {};\n\n forEach(source, (value, key) => {\n const reducedValue = visit(value, i + 1);\n !isUndefined(reducedValue) && (target[key] = reducedValue);\n });\n\n stack[i] = undefined;\n\n return target;\n }\n }\n\n return source;\n }\n\n return visit(obj, 0);\n}\n\nconst isAsyncFn = kindOfTest('AsyncFunction');\n\nconst isThenable = (thing) =>\n thing && (isObject(thing) || isFunction(thing)) && isFunction(thing.then) && isFunction(thing.catch);\n\nexport default {\n isArray,\n isArrayBuffer,\n isBuffer,\n isFormData,\n isArrayBufferView,\n isString,\n isNumber,\n isBoolean,\n isObject,\n isPlainObject,\n isUndefined,\n isDate,\n isFile,\n isBlob,\n isRegExp,\n isFunction,\n isStream,\n isURLSearchParams,\n isTypedArray,\n isFileList,\n forEach,\n merge,\n extend,\n trim,\n stripBOM,\n inherits,\n toFlatObject,\n kindOf,\n kindOfTest,\n endsWith,\n toArray,\n forEachEntry,\n matchAll,\n isHTMLForm,\n hasOwnProperty,\n hasOwnProp: hasOwnProperty, // an alias to avoid ESLint no-prototype-builtins detection\n reduceDescriptors,\n freezeMethods,\n toObjectSet,\n toCamelCase,\n noop,\n toFiniteNumber,\n findKey,\n global: _global,\n isContextDefined,\n ALPHABET,\n generateString,\n isSpecCompliantForm,\n toJSONObject,\n isAsyncFn,\n isThenable\n};\n","'use strict';\n\nimport utils from '../utils.js';\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 *\n * @returns {Error} The created error.\n */\nfunction AxiosError(message, code, config, request, response) {\n Error.call(this);\n\n if (Error.captureStackTrace) {\n Error.captureStackTrace(this, this.constructor);\n } else {\n this.stack = (new Error()).stack;\n }\n\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: utils.toJSONObject(this.config),\n code: this.code,\n status: this.response && this.response.status ? this.response.status : null\n };\n }\n});\n\nconst prototype = AxiosError.prototype;\nconst 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 'ERR_NOT_SUPPORT',\n 'ERR_INVALID_URL'\n// eslint-disable-next-line func-names\n].forEach(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 = (error, code, config, request, response, customProps) => {\n const axiosError = Object.create(prototype);\n\n utils.toFlatObject(error, axiosError, function filter(obj) {\n return obj !== Error.prototype;\n }, prop => {\n return prop !== 'isAxiosError';\n });\n\n AxiosError.call(axiosError, error.message, code, config, request, response);\n\n axiosError.cause = error;\n\n axiosError.name = error.name;\n\n customProps && Object.assign(axiosError, customProps);\n\n return axiosError;\n};\n\nexport default AxiosError;\n","'use strict';\n\nimport utils from '../utils.js';\nimport AxiosError from '../core/AxiosError.js';\n// temporary hotfix to avoid circular references until AxiosURLSearchParams is refactored\nimport PlatformFormData from '../platform/node/classes/FormData.js';\n\n/**\n * Determines if the given thing is a array or js object.\n *\n * @param {string} thing - The object or array to be visited.\n *\n * @returns {boolean}\n */\nfunction isVisitable(thing) {\n return utils.isPlainObject(thing) || utils.isArray(thing);\n}\n\n/**\n * It removes the brackets from the end of a string\n *\n * @param {string} key - The key of the parameter.\n *\n * @returns {string} the key without the brackets.\n */\nfunction removeBrackets(key) {\n return utils.endsWith(key, '[]') ? key.slice(0, -2) : key;\n}\n\n/**\n * It takes a path, a key, and a boolean, and returns a string\n *\n * @param {string} path - The path to the current key.\n * @param {string} key - The key of the current object being iterated over.\n * @param {string} dots - If true, the key will be rendered with dots instead of brackets.\n *\n * @returns {string} The path to the current key.\n */\nfunction renderKey(path, key, dots) {\n if (!path) return key;\n return path.concat(key).map(function each(token, i) {\n // eslint-disable-next-line no-param-reassign\n token = removeBrackets(token);\n return !dots && i ? '[' + token + ']' : token;\n }).join(dots ? '.' : '');\n}\n\n/**\n * If the array is an array and none of its elements are visitable, then it's a flat array.\n *\n * @param {Array} arr - The array to check\n *\n * @returns {boolean}\n */\nfunction isFlatArray(arr) {\n return utils.isArray(arr) && !arr.some(isVisitable);\n}\n\nconst predicates = utils.toFlatObject(utils, {}, null, function filter(prop) {\n return /^is[A-Z]/.test(prop);\n});\n\n/**\n * Convert a data object to FormData\n *\n * @param {Object} obj\n * @param {?Object} [formData]\n * @param {?Object} [options]\n * @param {Function} [options.visitor]\n * @param {Boolean} [options.metaTokens = true]\n * @param {Boolean} [options.dots = false]\n * @param {?Boolean} [options.indexes = false]\n *\n * @returns {Object}\n **/\n\n/**\n * It converts an object into a FormData object\n *\n * @param {Object} obj - The object to convert to form data.\n * @param {string} formData - The FormData object to append to.\n * @param {Object} options\n *\n * @returns\n */\nfunction toFormData(obj, formData, options) {\n if (!utils.isObject(obj)) {\n throw new TypeError('target must be an object');\n }\n\n // eslint-disable-next-line no-param-reassign\n formData = formData || new (PlatformFormData || FormData)();\n\n // eslint-disable-next-line no-param-reassign\n options = utils.toFlatObject(options, {\n metaTokens: true,\n dots: false,\n indexes: false\n }, false, function defined(option, source) {\n // eslint-disable-next-line no-eq-null,eqeqeq\n return !utils.isUndefined(source[option]);\n });\n\n const metaTokens = options.metaTokens;\n // eslint-disable-next-line no-use-before-define\n const visitor = options.visitor || defaultVisitor;\n const dots = options.dots;\n const indexes = options.indexes;\n const _Blob = options.Blob || typeof Blob !== 'undefined' && Blob;\n const useBlob = _Blob && utils.isSpecCompliantForm(formData);\n\n if (!utils.isFunction(visitor)) {\n throw new TypeError('visitor must be a function');\n }\n\n function convertValue(value) {\n if (value === null) return '';\n\n if (utils.isDate(value)) {\n return value.toISOString();\n }\n\n if (!useBlob && utils.isBlob(value)) {\n throw new AxiosError('Blob is not supported. Use a Buffer instead.');\n }\n\n if (utils.isArrayBuffer(value) || utils.isTypedArray(value)) {\n return useBlob && typeof Blob === 'function' ? new Blob([value]) : Buffer.from(value);\n }\n\n return value;\n }\n\n /**\n * Default visitor.\n *\n * @param {*} value\n * @param {String|Number} key\n * @param {Array} path\n * @this {FormData}\n *\n * @returns {boolean} return true to visit the each prop of the value recursively\n */\n function defaultVisitor(value, key, path) {\n let arr = value;\n\n if (value && !path && typeof value === 'object') {\n if (utils.endsWith(key, '{}')) {\n // eslint-disable-next-line no-param-reassign\n key = metaTokens ? key : key.slice(0, -2);\n // eslint-disable-next-line no-param-reassign\n value = JSON.stringify(value);\n } else if (\n (utils.isArray(value) && isFlatArray(value)) ||\n ((utils.isFileList(value) || utils.endsWith(key, '[]')) && (arr = utils.toArray(value))\n )) {\n // eslint-disable-next-line no-param-reassign\n key = removeBrackets(key);\n\n arr.forEach(function each(el, index) {\n !(utils.isUndefined(el) || el === null) && formData.append(\n // eslint-disable-next-line no-nested-ternary\n indexes === true ? renderKey([key], index, dots) : (indexes === null ? key : key + '[]'),\n convertValue(el)\n );\n });\n return false;\n }\n }\n\n if (isVisitable(value)) {\n return true;\n }\n\n formData.append(renderKey(path, key, dots), convertValue(value));\n\n return false;\n }\n\n const stack = [];\n\n const exposedHelpers = Object.assign(predicates, {\n defaultVisitor,\n convertValue,\n isVisitable\n });\n\n function build(value, path) {\n if (utils.isUndefined(value)) return;\n\n if (stack.indexOf(value) !== -1) {\n throw Error('Circular reference detected in ' + path.join('.'));\n }\n\n stack.push(value);\n\n utils.forEach(value, function each(el, key) {\n const result = !(utils.isUndefined(el) || el === null) && visitor.call(\n formData, el, utils.isString(key) ? key.trim() : key, path, exposedHelpers\n );\n\n if (result === true) {\n build(el, path ? path.concat(key) : [key]);\n }\n });\n\n stack.pop();\n }\n\n if (!utils.isObject(obj)) {\n throw new TypeError('data must be an object');\n }\n\n build(obj);\n\n return formData;\n}\n\nexport default toFormData;\n","'use strict';\n\nimport toFormData from './toFormData.js';\n\n/**\n * It encodes a string by replacing all characters that are not in the unreserved set with\n * their percent-encoded equivalents\n *\n * @param {string} str - The string to encode.\n *\n * @returns {string} The encoded string.\n */\nfunction encode(str) {\n const charMap = {\n '!': '%21',\n \"'\": '%27',\n '(': '%28',\n ')': '%29',\n '~': '%7E',\n '%20': '+',\n '%00': '\\x00'\n };\n return encodeURIComponent(str).replace(/[!'()~]|%20|%00/g, function replacer(match) {\n return charMap[match];\n });\n}\n\n/**\n * It takes a params object and converts it to a FormData object\n *\n * @param {Object} params - The parameters to be converted to a FormData object.\n * @param {Object} options - The options object passed to the Axios constructor.\n *\n * @returns {void}\n */\nfunction AxiosURLSearchParams(params, options) {\n this._pairs = [];\n\n params && toFormData(params, this, options);\n}\n\nconst prototype = AxiosURLSearchParams.prototype;\n\nprototype.append = function append(name, value) {\n this._pairs.push([name, value]);\n};\n\nprototype.toString = function toString(encoder) {\n const _encode = encoder ? function(value) {\n return encoder.call(this, value, encode);\n } : encode;\n\n return this._pairs.map(function each(pair) {\n return _encode(pair[0]) + '=' + _encode(pair[1]);\n }, '').join('&');\n};\n\nexport default AxiosURLSearchParams;\n","'use strict';\n\nimport utils from '../utils.js';\nimport AxiosURLSearchParams from '../helpers/AxiosURLSearchParams.js';\n\n/**\n * It replaces all instances of the characters `:`, `$`, `,`, `+`, `[`, and `]` with their\n * URI encoded counterparts\n *\n * @param {string} val The value to be encoded.\n *\n * @returns {string} The encoded value.\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 * @param {?object} options\n *\n * @returns {string} The formatted url\n */\nexport default function buildURL(url, params, options) {\n /*eslint no-param-reassign:0*/\n if (!params) {\n return url;\n }\n \n const _encode = options && options.encode || encode;\n\n const serializeFn = options && options.serialize;\n\n let serializedParams;\n\n if (serializeFn) {\n serializedParams = serializeFn(params, options);\n } else {\n serializedParams = utils.isURLSearchParams(params) ?\n params.toString() :\n new AxiosURLSearchParams(params, options).toString(_encode);\n }\n\n if (serializedParams) {\n const hashmarkIndex = url.indexOf(\"#\");\n\n if (hashmarkIndex !== -1) {\n url = url.slice(0, hashmarkIndex);\n }\n url += (url.indexOf('?') === -1 ? '?' : '&') + serializedParams;\n }\n\n return url;\n}\n","'use strict';\n\nimport utils from './../utils.js';\n\nclass InterceptorManager {\n constructor() {\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 */\n use(fulfilled, rejected, options) {\n this.handlers.push({\n fulfilled,\n 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 *\n * @returns {Boolean} `true` if the interceptor was removed, `false` otherwise\n */\n eject(id) {\n if (this.handlers[id]) {\n this.handlers[id] = null;\n }\n }\n\n /**\n * Clear all interceptors from the stack\n *\n * @returns {void}\n */\n clear() {\n if (this.handlers) {\n this.handlers = [];\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 *\n * @returns {void}\n */\n forEach(fn) {\n utils.forEach(this.handlers, function forEachHandler(h) {\n if (h !== null) {\n fn(h);\n }\n });\n }\n}\n\nexport default InterceptorManager;\n","'use strict';\n\nexport default {\n silentJSONParsing: true,\n forcedJSONParsing: true,\n clarifyTimeoutError: false\n};\n","import URLSearchParams from './classes/URLSearchParams.js'\nimport FormData from './classes/FormData.js'\nimport Blob from './classes/Blob.js'\n\nexport default {\n isBrowser: true,\n classes: {\n URLSearchParams,\n FormData,\n Blob\n },\n protocols: ['http', 'https', 'file', 'blob', 'url', 'data']\n};\n","'use strict';\n\nimport AxiosURLSearchParams from '../../../helpers/AxiosURLSearchParams.js';\nexport default typeof URLSearchParams !== 'undefined' ? URLSearchParams : AxiosURLSearchParams;\n","'use strict';\n\nexport default typeof FormData !== 'undefined' ? FormData : null;\n","'use strict'\n\nexport default typeof Blob !== 'undefined' ? Blob : null\n","const hasBrowserEnv = typeof window !== 'undefined' && typeof document !== 'undefined';\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 *\n * @returns {boolean}\n */\nconst hasStandardBrowserEnv = (\n (product) => {\n return hasBrowserEnv && ['ReactNative', 'NativeScript', 'NS'].indexOf(product) < 0\n })(typeof navigator !== 'undefined' && navigator.product);\n\n/**\n * Determine if we're running in a standard browser webWorker environment\n *\n * Although the `isStandardBrowserEnv` method indicates that\n * `allows axios to run in a web worker`, the WebWorker will still be\n * filtered out due to its judgment standard\n * `typeof window !== 'undefined' && typeof document !== 'undefined'`.\n * This leads to a problem when axios post `FormData` in webWorker\n */\nconst hasStandardBrowserWebWorkerEnv = (() => {\n return (\n typeof WorkerGlobalScope !== 'undefined' &&\n // eslint-disable-next-line no-undef\n self instanceof WorkerGlobalScope &&\n typeof self.importScripts === 'function'\n );\n})();\n\nexport {\n hasBrowserEnv,\n hasStandardBrowserWebWorkerEnv,\n hasStandardBrowserEnv\n}\n","import platform from './node/index.js';\nimport * as utils from './common/utils.js';\n\nexport default {\n ...utils,\n ...platform\n}\n","'use strict';\n\nimport utils from '../utils.js';\n\n/**\n * It takes a string like `foo[x][y][z]` and returns an array like `['foo', 'x', 'y', 'z']\n *\n * @param {string} name - The name of the property to get.\n *\n * @returns An array of strings.\n */\nfunction parsePropPath(name) {\n // foo[x][y][z]\n // foo.x.y.z\n // foo-x-y-z\n // foo x y z\n return utils.matchAll(/\\w+|\\[(\\w*)]/g, name).map(match => {\n return match[0] === '[]' ? '' : match[1] || match[0];\n });\n}\n\n/**\n * Convert an array to an object.\n *\n * @param {Array} arr - The array to convert to an object.\n *\n * @returns An object with the same keys and values as the array.\n */\nfunction arrayToObject(arr) {\n const obj = {};\n const keys = Object.keys(arr);\n let i;\n const len = keys.length;\n let key;\n for (i = 0; i < len; i++) {\n key = keys[i];\n obj[key] = arr[key];\n }\n return obj;\n}\n\n/**\n * It takes a FormData object and returns a JavaScript object\n *\n * @param {string} formData The FormData object to convert to JSON.\n *\n * @returns {Object | null} The converted object.\n */\nfunction formDataToJSON(formData) {\n function buildPath(path, value, target, index) {\n let name = path[index++];\n\n if (name === '__proto__') return true;\n\n const isNumericKey = Number.isFinite(+name);\n const isLast = index >= path.length;\n name = !name && utils.isArray(target) ? target.length : name;\n\n if (isLast) {\n if (utils.hasOwnProp(target, name)) {\n target[name] = [target[name], value];\n } else {\n target[name] = value;\n }\n\n return !isNumericKey;\n }\n\n if (!target[name] || !utils.isObject(target[name])) {\n target[name] = [];\n }\n\n const result = buildPath(path, value, target[name], index);\n\n if (result && utils.isArray(target[name])) {\n target[name] = arrayToObject(target[name]);\n }\n\n return !isNumericKey;\n }\n\n if (utils.isFormData(formData) && utils.isFunction(formData.entries)) {\n const obj = {};\n\n utils.forEachEntry(formData, (name, value) => {\n buildPath(parsePropPath(name), value, obj, 0);\n });\n\n return obj;\n }\n\n return null;\n}\n\nexport default formDataToJSON;\n","'use strict';\n\nimport utils from '../utils.js';\nimport AxiosError from '../core/AxiosError.js';\nimport transitionalDefaults from './transitional.js';\nimport toFormData from '../helpers/toFormData.js';\nimport toURLEncodedForm from '../helpers/toURLEncodedForm.js';\nimport platform from '../platform/index.js';\nimport formDataToJSON from '../helpers/formDataToJSON.js';\n\n/**\n * It takes a string, tries to parse it, and if it fails, it returns the stringified version\n * of the input\n *\n * @param {any} rawValue - The value to be stringified.\n * @param {Function} parser - A function that parses a string into a JavaScript object.\n * @param {Function} encoder - A function that takes a value and returns a string.\n *\n * @returns {string} A stringified version of the rawValue.\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\nconst defaults = {\n\n transitional: transitionalDefaults,\n\n adapter: ['xhr', 'http'],\n\n transformRequest: [function transformRequest(data, headers) {\n const contentType = headers.getContentType() || '';\n const hasJSONContentType = contentType.indexOf('application/json') > -1;\n const isObjectPayload = utils.isObject(data);\n\n if (isObjectPayload && utils.isHTMLForm(data)) {\n data = new FormData(data);\n }\n\n const isFormData = utils.isFormData(data);\n\n if (isFormData) {\n return hasJSONContentType ? JSON.stringify(formDataToJSON(data)) : data;\n }\n\n if (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 headers.setContentType('application/x-www-form-urlencoded;charset=utf-8', false);\n return data.toString();\n }\n\n let isFileList;\n\n if (isObjectPayload) {\n if (contentType.indexOf('application/x-www-form-urlencoded') > -1) {\n return toURLEncodedForm(data, this.formSerializer).toString();\n }\n\n if ((isFileList = utils.isFileList(data)) || contentType.indexOf('multipart/form-data') > -1) {\n const _FormData = this.env && this.env.FormData;\n\n return toFormData(\n isFileList ? {'files[]': data} : data,\n _FormData && new _FormData(),\n this.formSerializer\n );\n }\n }\n\n if (isObjectPayload || hasJSONContentType ) {\n headers.setContentType('application/json', false);\n return stringifySafely(data);\n }\n\n return data;\n }],\n\n transformResponse: [function transformResponse(data) {\n const transitional = this.transitional || defaults.transitional;\n const forcedJSONParsing = transitional && transitional.forcedJSONParsing;\n const JSONRequested = this.responseType === 'json';\n\n if (data && utils.isString(data) && ((forcedJSONParsing && !this.responseType) || JSONRequested)) {\n const silentJSONParsing = transitional && transitional.silentJSONParsing;\n const strictJSONParsing = !silentJSONParsing && JSONRequested;\n\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: platform.classes.FormData,\n Blob: platform.classes.Blob\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 'Content-Type': undefined\n }\n }\n};\n\nutils.forEach(['delete', 'get', 'head', 'post', 'put', 'patch'], (method) => {\n defaults.headers[method] = {};\n});\n\nexport default defaults;\n","'use strict';\n\nimport utils from '../utils.js';\nimport toFormData from './toFormData.js';\nimport platform from '../platform/index.js';\n\nexport default function toURLEncodedForm(data, options) {\n return toFormData(data, new platform.classes.URLSearchParams(), Object.assign({\n visitor: function(value, key, path, helpers) {\n if (platform.isNode && utils.isBuffer(value)) {\n this.append(key, value.toString('base64'));\n return false;\n }\n\n return helpers.defaultVisitor.apply(this, arguments);\n }\n }, options));\n}\n","'use strict';\n\nimport utils from './../utils.js';\n\n// RawAxiosHeaders whose duplicates are ignored by node\n// c.f. https://nodejs.org/api/http.html#http_message_headers\nconst ignoreDuplicateOf = utils.toObjectSet([\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} rawHeaders Headers needing to be parsed\n *\n * @returns {Object} Headers parsed into an object\n */\nexport default rawHeaders => {\n const parsed = {};\n let key;\n let val;\n let i;\n\n rawHeaders && rawHeaders.split('\\n').forEach(function parser(line) {\n i = line.indexOf(':');\n key = line.substring(0, i).trim().toLowerCase();\n val = line.substring(i + 1).trim();\n\n if (!key || (parsed[key] && ignoreDuplicateOf[key])) {\n return;\n }\n\n if (key === 'set-cookie') {\n if (parsed[key]) {\n parsed[key].push(val);\n } else {\n parsed[key] = [val];\n }\n } else {\n parsed[key] = parsed[key] ? parsed[key] + ', ' + val : val;\n }\n });\n\n return parsed;\n};\n","'use strict';\n\nimport utils from '../utils.js';\nimport parseHeaders from '../helpers/parseHeaders.js';\n\nconst $internals = Symbol('internals');\n\nfunction normalizeHeader(header) {\n return header && String(header).trim().toLowerCase();\n}\n\nfunction normalizeValue(value) {\n if (value === false || value == null) {\n return value;\n }\n\n return utils.isArray(value) ? value.map(normalizeValue) : String(value);\n}\n\nfunction parseTokens(str) {\n const tokens = Object.create(null);\n const tokensRE = /([^\\s,;=]+)\\s*(?:=\\s*([^,;]+))?/g;\n let match;\n\n while ((match = tokensRE.exec(str))) {\n tokens[match[1]] = match[2];\n }\n\n return tokens;\n}\n\nconst isValidHeaderName = (str) => /^[-_a-zA-Z0-9^`|~,!#$%&'*+.]+$/.test(str.trim());\n\nfunction matchHeaderValue(context, value, header, filter, isHeaderNameFilter) {\n if (utils.isFunction(filter)) {\n return filter.call(this, value, header);\n }\n\n if (isHeaderNameFilter) {\n value = header;\n }\n\n if (!utils.isString(value)) return;\n\n if (utils.isString(filter)) {\n return value.indexOf(filter) !== -1;\n }\n\n if (utils.isRegExp(filter)) {\n return filter.test(value);\n }\n}\n\nfunction formatHeader(header) {\n return header.trim()\n .toLowerCase().replace(/([a-z\\d])(\\w*)/g, (w, char, str) => {\n return char.toUpperCase() + str;\n });\n}\n\nfunction buildAccessors(obj, header) {\n const accessorName = utils.toCamelCase(' ' + header);\n\n ['get', 'set', 'has'].forEach(methodName => {\n Object.defineProperty(obj, methodName + accessorName, {\n value: function(arg1, arg2, arg3) {\n return this[methodName].call(this, header, arg1, arg2, arg3);\n },\n configurable: true\n });\n });\n}\n\nclass AxiosHeaders {\n constructor(headers) {\n headers && this.set(headers);\n }\n\n set(header, valueOrRewrite, rewrite) {\n const self = this;\n\n function setHeader(_value, _header, _rewrite) {\n const lHeader = normalizeHeader(_header);\n\n if (!lHeader) {\n throw new Error('header name must be a non-empty string');\n }\n\n const key = utils.findKey(self, lHeader);\n\n if(!key || self[key] === undefined || _rewrite === true || (_rewrite === undefined && self[key] !== false)) {\n self[key || _header] = normalizeValue(_value);\n }\n }\n\n const setHeaders = (headers, _rewrite) =>\n utils.forEach(headers, (_value, _header) => setHeader(_value, _header, _rewrite));\n\n if (utils.isPlainObject(header) || header instanceof this.constructor) {\n setHeaders(header, valueOrRewrite)\n } else if(utils.isString(header) && (header = header.trim()) && !isValidHeaderName(header)) {\n setHeaders(parseHeaders(header), valueOrRewrite);\n } else {\n header != null && setHeader(valueOrRewrite, header, rewrite);\n }\n\n return this;\n }\n\n get(header, parser) {\n header = normalizeHeader(header);\n\n if (header) {\n const key = utils.findKey(this, header);\n\n if (key) {\n const value = this[key];\n\n if (!parser) {\n return value;\n }\n\n if (parser === true) {\n return parseTokens(value);\n }\n\n if (utils.isFunction(parser)) {\n return parser.call(this, value, key);\n }\n\n if (utils.isRegExp(parser)) {\n return parser.exec(value);\n }\n\n throw new TypeError('parser must be boolean|regexp|function');\n }\n }\n }\n\n has(header, matcher) {\n header = normalizeHeader(header);\n\n if (header) {\n const key = utils.findKey(this, header);\n\n return !!(key && this[key] !== undefined && (!matcher || matchHeaderValue(this, this[key], key, matcher)));\n }\n\n return false;\n }\n\n delete(header, matcher) {\n const self = this;\n let deleted = false;\n\n function deleteHeader(_header) {\n _header = normalizeHeader(_header);\n\n if (_header) {\n const key = utils.findKey(self, _header);\n\n if (key && (!matcher || matchHeaderValue(self, self[key], key, matcher))) {\n delete self[key];\n\n deleted = true;\n }\n }\n }\n\n if (utils.isArray(header)) {\n header.forEach(deleteHeader);\n } else {\n deleteHeader(header);\n }\n\n return deleted;\n }\n\n clear(matcher) {\n const keys = Object.keys(this);\n let i = keys.length;\n let deleted = false;\n\n while (i--) {\n const key = keys[i];\n if(!matcher || matchHeaderValue(this, this[key], key, matcher, true)) {\n delete this[key];\n deleted = true;\n }\n }\n\n return deleted;\n }\n\n normalize(format) {\n const self = this;\n const headers = {};\n\n utils.forEach(this, (value, header) => {\n const key = utils.findKey(headers, header);\n\n if (key) {\n self[key] = normalizeValue(value);\n delete self[header];\n return;\n }\n\n const normalized = format ? formatHeader(header) : String(header).trim();\n\n if (normalized !== header) {\n delete self[header];\n }\n\n self[normalized] = normalizeValue(value);\n\n headers[normalized] = true;\n });\n\n return this;\n }\n\n concat(...targets) {\n return this.constructor.concat(this, ...targets);\n }\n\n toJSON(asStrings) {\n const obj = Object.create(null);\n\n utils.forEach(this, (value, header) => {\n value != null && value !== false && (obj[header] = asStrings && utils.isArray(value) ? value.join(', ') : value);\n });\n\n return obj;\n }\n\n [Symbol.iterator]() {\n return Object.entries(this.toJSON())[Symbol.iterator]();\n }\n\n toString() {\n return Object.entries(this.toJSON()).map(([header, value]) => header + ': ' + value).join('\\n');\n }\n\n get [Symbol.toStringTag]() {\n return 'AxiosHeaders';\n }\n\n static from(thing) {\n return thing instanceof this ? thing : new this(thing);\n }\n\n static concat(first, ...targets) {\n const computed = new this(first);\n\n targets.forEach((target) => computed.set(target));\n\n return computed;\n }\n\n static accessor(header) {\n const internals = this[$internals] = (this[$internals] = {\n accessors: {}\n });\n\n const accessors = internals.accessors;\n const prototype = this.prototype;\n\n function defineAccessor(_header) {\n const lHeader = normalizeHeader(_header);\n\n if (!accessors[lHeader]) {\n buildAccessors(prototype, _header);\n accessors[lHeader] = true;\n }\n }\n\n utils.isArray(header) ? header.forEach(defineAccessor) : defineAccessor(header);\n\n return this;\n }\n}\n\nAxiosHeaders.accessor(['Content-Type', 'Content-Length', 'Accept', 'Accept-Encoding', 'User-Agent', 'Authorization']);\n\n// reserved names hotfix\nutils.reduceDescriptors(AxiosHeaders.prototype, ({value}, key) => {\n let mapped = key[0].toUpperCase() + key.slice(1); // map `set` => `Set`\n return {\n get: () => value,\n set(headerValue) {\n this[mapped] = headerValue;\n }\n }\n});\n\nutils.freezeMethods(AxiosHeaders);\n\nexport default AxiosHeaders;\n","'use strict';\n\nimport utils from './../utils.js';\nimport defaults from '../defaults/index.js';\nimport AxiosHeaders from '../core/AxiosHeaders.js';\n\n/**\n * Transform the data for a request or a response\n *\n * @param {Array|Function} fns A single function or Array of functions\n * @param {?Object} response The response object\n *\n * @returns {*} The resulting transformed data\n */\nexport default function transformData(fns, response) {\n const config = this || defaults;\n const context = response || config;\n const headers = AxiosHeaders.from(context.headers);\n let data = context.data;\n\n utils.forEach(fns, function transform(fn) {\n data = fn.call(config, data, headers.normalize(), response ? response.status : undefined);\n });\n\n headers.normalize();\n\n return data;\n}\n","'use strict';\n\nexport default function isCancel(value) {\n return !!(value && value.__CANCEL__);\n}\n","'use strict';\n\nimport AxiosError from '../core/AxiosError.js';\nimport utils from '../utils.js';\n\n/**\n * A `CanceledError` is an object that is thrown when an operation is canceled.\n *\n * @param {string=} message The message.\n * @param {Object=} config The config.\n * @param {Object=} request The request.\n *\n * @returns {CanceledError} The created error.\n */\nfunction CanceledError(message, config, request) {\n // eslint-disable-next-line no-eq-null,eqeqeq\n AxiosError.call(this, message == null ? 'canceled' : message, AxiosError.ERR_CANCELED, config, request);\n this.name = 'CanceledError';\n}\n\nutils.inherits(CanceledError, AxiosError, {\n __CANCEL__: true\n});\n\nexport default CanceledError;\n","import utils from './../utils.js';\nimport platform from '../platform/index.js';\n\nexport default platform.hasStandardBrowserEnv ?\n\n // Standard browser envs support document.cookie\n {\n write(name, value, expires, path, domain, secure) {\n const cookie = [name + '=' + encodeURIComponent(value)];\n\n utils.isNumber(expires) && cookie.push('expires=' + new Date(expires).toGMTString());\n\n utils.isString(path) && cookie.push('path=' + path);\n\n utils.isString(domain) && cookie.push('domain=' + domain);\n\n secure === true && cookie.push('secure');\n\n document.cookie = cookie.join('; ');\n },\n\n read(name) {\n const match = document.cookie.match(new RegExp('(^|;\\\\s*)(' + name + ')=([^;]*)'));\n return (match ? decodeURIComponent(match[3]) : null);\n },\n\n remove(name) {\n this.write(name, '', Date.now() - 86400000);\n }\n }\n\n :\n\n // Non-standard browser env (web workers, react-native) lack needed support.\n {\n write() {},\n read() {\n return null;\n },\n remove() {}\n };\n\n","'use strict';\n\nimport isAbsoluteURL from '../helpers/isAbsoluteURL.js';\nimport combineURLs from '../helpers/combineURLs.js';\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 *\n * @returns {string} The combined full path\n */\nexport default function buildFullPath(baseURL, requestedURL) {\n if (baseURL && !isAbsoluteURL(requestedURL)) {\n return combineURLs(baseURL, requestedURL);\n }\n return requestedURL;\n}\n","'use strict';\n\n/**\n * Determines whether the specified URL is absolute\n *\n * @param {string} url The URL to test\n *\n * @returns {boolean} True if the specified URL is absolute, otherwise false\n */\nexport default 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\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 *\n * @returns {string} The combined URL\n */\nexport default function combineURLs(baseURL, relativeURL) {\n return relativeURL\n ? baseURL.replace(/\\/?\\/$/, '') + '/' + relativeURL.replace(/^\\/+/, '')\n : baseURL;\n}\n","'use strict';\n\nimport utils from './../utils.js';\nimport platform from '../platform/index.js';\n\nexport default platform.hasStandardBrowserEnv ?\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 const msie = /(msie|trident)/i.test(navigator.userAgent);\n const urlParsingNode = document.createElement('a');\n let originURL;\n\n /**\n * Parse a URL to discover its components\n *\n * @param {String} url The URL to be parsed\n * @returns {Object}\n */\n function resolveURL(url) {\n let 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 const 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","'use strict';\n\n/**\n * Calculate data maxRate\n * @param {Number} [samplesCount= 10]\n * @param {Number} [min= 1000]\n * @returns {Function}\n */\nfunction speedometer(samplesCount, min) {\n samplesCount = samplesCount || 10;\n const bytes = new Array(samplesCount);\n const timestamps = new Array(samplesCount);\n let head = 0;\n let tail = 0;\n let firstSampleTS;\n\n min = min !== undefined ? min : 1000;\n\n return function push(chunkLength) {\n const now = Date.now();\n\n const startedAt = timestamps[tail];\n\n if (!firstSampleTS) {\n firstSampleTS = now;\n }\n\n bytes[head] = chunkLength;\n timestamps[head] = now;\n\n let i = tail;\n let bytesCount = 0;\n\n while (i !== head) {\n bytesCount += bytes[i++];\n i = i % samplesCount;\n }\n\n head = (head + 1) % samplesCount;\n\n if (head === tail) {\n tail = (tail + 1) % samplesCount;\n }\n\n if (now - firstSampleTS < min) {\n return;\n }\n\n const passed = startedAt && now - startedAt;\n\n return passed ? Math.round(bytesCount * 1000 / passed) : undefined;\n };\n}\n\nexport default speedometer;\n","'use strict';\n\nimport utils from './../utils.js';\nimport settle from './../core/settle.js';\nimport cookies from './../helpers/cookies.js';\nimport buildURL from './../helpers/buildURL.js';\nimport buildFullPath from '../core/buildFullPath.js';\nimport isURLSameOrigin from './../helpers/isURLSameOrigin.js';\nimport transitionalDefaults from '../defaults/transitional.js';\nimport AxiosError from '../core/AxiosError.js';\nimport CanceledError from '../cancel/CanceledError.js';\nimport parseProtocol from '../helpers/parseProtocol.js';\nimport platform from '../platform/index.js';\nimport AxiosHeaders from '../core/AxiosHeaders.js';\nimport speedometer from '../helpers/speedometer.js';\n\nfunction progressEventReducer(listener, isDownloadStream) {\n let bytesNotified = 0;\n const _speedometer = speedometer(50, 250);\n\n return e => {\n const loaded = e.loaded;\n const total = e.lengthComputable ? e.total : undefined;\n const progressBytes = loaded - bytesNotified;\n const rate = _speedometer(progressBytes);\n const inRange = loaded <= total;\n\n bytesNotified = loaded;\n\n const data = {\n loaded,\n total,\n progress: total ? (loaded / total) : undefined,\n bytes: progressBytes,\n rate: rate ? rate : undefined,\n estimated: rate && total && inRange ? (total - loaded) / rate : undefined,\n event: e\n };\n\n data[isDownloadStream ? 'download' : 'upload'] = true;\n\n listener(data);\n };\n}\n\nconst isXHRAdapterSupported = typeof XMLHttpRequest !== 'undefined';\n\nexport default isXHRAdapterSupported && function (config) {\n return new Promise(function dispatchXhrRequest(resolve, reject) {\n let requestData = config.data;\n const requestHeaders = AxiosHeaders.from(config.headers).normalize();\n let {responseType, withXSRFToken} = config;\n let 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 let contentType;\n\n if (utils.isFormData(requestData)) {\n if (platform.hasStandardBrowserEnv || platform.hasStandardBrowserWebWorkerEnv) {\n requestHeaders.setContentType(false); // Let the browser set it\n } else if ((contentType = requestHeaders.getContentType()) !== false) {\n // fix semicolon duplication issue for ReactNative FormData implementation\n const [type, ...tokens] = contentType ? contentType.split(';').map(token => token.trim()).filter(Boolean) : [];\n requestHeaders.setContentType([type || 'multipart/form-data', ...tokens].join('; '));\n }\n }\n\n let request = new XMLHttpRequest();\n\n // HTTP basic authentication\n if (config.auth) {\n const username = config.auth.username || '';\n const password = config.auth.password ? unescape(encodeURIComponent(config.auth.password)) : '';\n requestHeaders.set('Authorization', 'Basic ' + btoa(username + ':' + password));\n }\n\n const 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 const responseHeaders = AxiosHeaders.from(\n 'getAllResponseHeaders' in request && request.getAllResponseHeaders()\n );\n const responseData = !responseType || responseType === 'text' || responseType === 'json' ?\n request.responseText : request.response;\n const response = {\n data: responseData,\n status: request.status,\n statusText: request.statusText,\n headers: responseHeaders,\n config,\n 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));\n\n // Clean up request\n request = null;\n };\n\n // Handle timeout\n request.ontimeout = function handleTimeout() {\n let timeoutErrorMessage = config.timeout ? 'timeout of ' + config.timeout + 'ms exceeded' : 'timeout exceeded';\n const 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(platform.hasStandardBrowserEnv) {\n withXSRFToken && utils.isFunction(withXSRFToken) && (withXSRFToken = withXSRFToken(config));\n\n if (withXSRFToken || (withXSRFToken !== false && isURLSameOrigin(fullPath))) {\n // Add xsrf header\n const xsrfValue = config.xsrfHeaderName && config.xsrfCookieName && cookies.read(config.xsrfCookieName);\n\n if (xsrfValue) {\n requestHeaders.set(config.xsrfHeaderName, xsrfValue);\n }\n }\n }\n\n // Remove Content-Type if data is undefined\n requestData === undefined && requestHeaders.setContentType(null);\n\n // Add headers to the request\n if ('setRequestHeader' in request) {\n utils.forEach(requestHeaders.toJSON(), function setRequestHeader(val, key) {\n request.setRequestHeader(key, val);\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', progressEventReducer(config.onDownloadProgress, true));\n }\n\n // Not all browsers support upload events\n if (typeof config.onUploadProgress === 'function' && request.upload) {\n request.upload.addEventListener('progress', progressEventReducer(config.onUploadProgress));\n }\n\n if (config.cancelToken || config.signal) {\n // Handle cancellation\n // eslint-disable-next-line func-names\n onCanceled = cancel => {\n if (!request) {\n return;\n }\n reject(!cancel || cancel.type ? new CanceledError(null, config, request) : 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 const protocol = parseProtocol(fullPath);\n\n if (protocol && platform.protocols.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 || null);\n });\n}\n","import utils from '../utils.js';\nimport httpAdapter from './http.js';\nimport xhrAdapter from './xhr.js';\nimport AxiosError from \"../core/AxiosError.js\";\n\nconst knownAdapters = {\n http: httpAdapter,\n xhr: xhrAdapter\n}\n\nutils.forEach(knownAdapters, (fn, value) => {\n if (fn) {\n try {\n Object.defineProperty(fn, 'name', {value});\n } catch (e) {\n // eslint-disable-next-line no-empty\n }\n Object.defineProperty(fn, 'adapterName', {value});\n }\n});\n\nconst renderReason = (reason) => `- ${reason}`;\n\nconst isResolvedHandle = (adapter) => utils.isFunction(adapter) || adapter === null || adapter === false;\n\nexport default {\n getAdapter: (adapters) => {\n adapters = utils.isArray(adapters) ? adapters : [adapters];\n\n const {length} = adapters;\n let nameOrAdapter;\n let adapter;\n\n const rejectedReasons = {};\n\n for (let i = 0; i < length; i++) {\n nameOrAdapter = adapters[i];\n let id;\n\n adapter = nameOrAdapter;\n\n if (!isResolvedHandle(nameOrAdapter)) {\n adapter = knownAdapters[(id = String(nameOrAdapter)).toLowerCase()];\n\n if (adapter === undefined) {\n throw new AxiosError(`Unknown adapter '${id}'`);\n }\n }\n\n if (adapter) {\n break;\n }\n\n rejectedReasons[id || '#' + i] = adapter;\n }\n\n if (!adapter) {\n\n const reasons = Object.entries(rejectedReasons)\n .map(([id, state]) => `adapter ${id} ` +\n (state === false ? 'is not supported by the environment' : 'is not available in the build')\n );\n\n let s = length ?\n (reasons.length > 1 ? 'since :\\n' + reasons.map(renderReason).join('\\n') : ' ' + renderReason(reasons[0])) :\n 'as no adapter specified';\n\n throw new AxiosError(\n `There is no suitable adapter to dispatch the request ` + s,\n 'ERR_NOT_SUPPORT'\n );\n }\n\n return adapter;\n },\n adapters: knownAdapters\n}\n","// eslint-disable-next-line strict\nexport default null;\n","'use strict';\n\nimport AxiosError from './AxiosError.js';\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 *\n * @returns {object} The response.\n */\nexport default function settle(resolve, reject, response) {\n const 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\nexport default function parseProtocol(url) {\n const match = /^([-+\\w]{1,25})(:?\\/\\/|:)/.exec(url);\n return match && match[1] || '';\n}\n","'use strict';\n\nimport transformData from './transformData.js';\nimport isCancel from '../cancel/isCancel.js';\nimport defaults from '../defaults/index.js';\nimport CanceledError from '../cancel/CanceledError.js';\nimport AxiosHeaders from '../core/AxiosHeaders.js';\nimport adapters from \"../adapters/adapters.js\";\n\n/**\n * Throws a `CanceledError` if cancellation has been requested.\n *\n * @param {Object} config The config that is to be used for the request\n *\n * @returns {void}\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(null, config);\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 *\n * @returns {Promise} The Promise to be fulfilled\n */\nexport default function dispatchRequest(config) {\n throwIfCancellationRequested(config);\n\n config.headers = AxiosHeaders.from(config.headers);\n\n // Transform request data\n config.data = transformData.call(\n config,\n config.transformRequest\n );\n\n if (['post', 'put', 'patch'].indexOf(config.method) !== -1) {\n config.headers.setContentType('application/x-www-form-urlencoded', false);\n }\n\n const adapter = adapters.getAdapter(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 config.transformResponse,\n response\n );\n\n response.headers = AxiosHeaders.from(response.headers);\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 config.transformResponse,\n reason.response\n );\n reason.response.headers = AxiosHeaders.from(reason.response.headers);\n }\n }\n\n return Promise.reject(reason);\n });\n}\n","'use strict';\n\nimport utils from '../utils.js';\nimport AxiosHeaders from \"./AxiosHeaders.js\";\n\nconst headersToObject = (thing) => thing instanceof AxiosHeaders ? thing.toJSON() : thing;\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 *\n * @returns {Object} New object resulting from merging config2 to config1\n */\nexport default function mergeConfig(config1, config2) {\n // eslint-disable-next-line no-param-reassign\n config2 = config2 || {};\n const config = {};\n\n function getMergedValue(target, source, caseless) {\n if (utils.isPlainObject(target) && utils.isPlainObject(source)) {\n return utils.merge.call({caseless}, 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(a, b, caseless) {\n if (!utils.isUndefined(b)) {\n return getMergedValue(a, b, caseless);\n } else if (!utils.isUndefined(a)) {\n return getMergedValue(undefined, a, caseless);\n }\n }\n\n // eslint-disable-next-line consistent-return\n function valueFromConfig2(a, b) {\n if (!utils.isUndefined(b)) {\n return getMergedValue(undefined, b);\n }\n }\n\n // eslint-disable-next-line consistent-return\n function defaultToConfig2(a, b) {\n if (!utils.isUndefined(b)) {\n return getMergedValue(undefined, b);\n } else if (!utils.isUndefined(a)) {\n return getMergedValue(undefined, a);\n }\n }\n\n // eslint-disable-next-line consistent-return\n function mergeDirectKeys(a, b, prop) {\n if (prop in config2) {\n return getMergedValue(a, b);\n } else if (prop in config1) {\n return getMergedValue(undefined, a);\n }\n }\n\n const 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 withXSRFToken: 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 headers: (a, b) => mergeDeepProperties(headersToObject(a), headersToObject(b), true)\n };\n\n utils.forEach(Object.keys(Object.assign({}, config1, config2)), function computeConfigValue(prop) {\n const merge = mergeMap[prop] || mergeDeepProperties;\n const configValue = merge(config1[prop], config2[prop], prop);\n (utils.isUndefined(configValue) && merge !== mergeDirectKeys) || (config[prop] = configValue);\n });\n\n return config;\n}\n","export const VERSION = \"1.6.7\";","'use strict';\n\nimport {VERSION} from '../env/data.js';\nimport AxiosError from '../core/AxiosError.js';\n\nconst validators = {};\n\n// eslint-disable-next-line func-names\n['object', 'boolean', 'number', 'function', 'string', 'symbol'].forEach((type, i) => {\n validators[type] = function validator(thing) {\n return typeof thing === type || 'a' + (i < 1 ? 'n ' : ' ') + type;\n };\n});\n\nconst deprecatedWarnings = {};\n\n/**\n * Transitional option validator\n *\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 *\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 (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 *\n * @param {object} options\n * @param {object} schema\n * @param {boolean?} allowUnknown\n *\n * @returns {object}\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 const keys = Object.keys(options);\n let i = keys.length;\n while (i-- > 0) {\n const opt = keys[i];\n const validator = schema[opt];\n if (validator) {\n const value = options[opt];\n const 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\nexport default {\n assertOptions,\n validators\n};\n","'use strict';\n\nimport utils from './../utils.js';\nimport buildURL from '../helpers/buildURL.js';\nimport InterceptorManager from './InterceptorManager.js';\nimport dispatchRequest from './dispatchRequest.js';\nimport mergeConfig from './mergeConfig.js';\nimport buildFullPath from './buildFullPath.js';\nimport validator from '../helpers/validator.js';\nimport AxiosHeaders from './AxiosHeaders.js';\n\nconst validators = validator.validators;\n\n/**\n * Create a new instance of Axios\n *\n * @param {Object} instanceConfig The default config for the instance\n *\n * @return {Axios} A new instance of Axios\n */\nclass Axios {\n constructor(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 {String|Object} configOrUrl The config specific for this request (merged with this.defaults)\n * @param {?Object} config\n *\n * @returns {Promise} The Promise to be fulfilled\n */\n async request(configOrUrl, config) {\n try {\n return await this._request(configOrUrl, config);\n } catch (err) {\n if (err instanceof Error) {\n let dummy;\n\n Error.captureStackTrace ? Error.captureStackTrace(dummy = {}) : (dummy = new Error());\n\n // slice off the Error: ... line\n const stack = dummy.stack ? dummy.stack.replace(/^.+\\n/, '') : '';\n\n if (!err.stack) {\n err.stack = stack;\n // match without the 2 top stack lines\n } else if (stack && !String(err.stack).endsWith(stack.replace(/^.+\\n.+\\n/, ''))) {\n err.stack += '\\n' + stack\n }\n }\n\n throw err;\n }\n }\n\n _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 const {transitional, paramsSerializer, headers} = config;\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 if (paramsSerializer != null) {\n if (utils.isFunction(paramsSerializer)) {\n config.paramsSerializer = {\n serialize: paramsSerializer\n }\n } else {\n validator.assertOptions(paramsSerializer, {\n encode: validators.function,\n serialize: validators.function\n }, true);\n }\n }\n\n // Set config.method\n config.method = (config.method || this.defaults.method || 'get').toLowerCase();\n\n // Flatten headers\n let contextHeaders = headers && utils.merge(\n headers.common,\n headers[config.method]\n );\n\n headers && utils.forEach(\n ['delete', 'get', 'head', 'post', 'put', 'patch', 'common'],\n (method) => {\n delete headers[method];\n }\n );\n\n config.headers = AxiosHeaders.concat(contextHeaders, headers);\n\n // filter out skipped interceptors\n const requestInterceptorChain = [];\n let 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 const responseInterceptorChain = [];\n this.interceptors.response.forEach(function pushResponseInterceptors(interceptor) {\n responseInterceptorChain.push(interceptor.fulfilled, interceptor.rejected);\n });\n\n let promise;\n let i = 0;\n let len;\n\n if (!synchronousRequestInterceptors) {\n const chain = [dispatchRequest.bind(this), undefined];\n chain.unshift.apply(chain, requestInterceptorChain);\n chain.push.apply(chain, responseInterceptorChain);\n len = chain.length;\n\n promise = Promise.resolve(config);\n\n while (i < len) {\n promise = promise.then(chain[i++], chain[i++]);\n }\n\n return promise;\n }\n\n len = requestInterceptorChain.length;\n\n let newConfig = config;\n\n i = 0;\n\n while (i < len) {\n const onFulfilled = requestInterceptorChain[i++];\n const onRejected = requestInterceptorChain[i++];\n try {\n newConfig = onFulfilled(newConfig);\n } catch (error) {\n onRejected.call(this, error);\n break;\n }\n }\n\n try {\n promise = dispatchRequest.call(this, newConfig);\n } catch (error) {\n return Promise.reject(error);\n }\n\n i = 0;\n len = responseInterceptorChain.length;\n\n while (i < len) {\n promise = promise.then(responseInterceptorChain[i++], responseInterceptorChain[i++]);\n }\n\n return promise;\n }\n\n getUri(config) {\n config = mergeConfig(this.defaults, config);\n const fullPath = buildFullPath(config.baseURL, config.url);\n return buildURL(fullPath, config.params, config.paramsSerializer);\n }\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,\n 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,\n headers: isForm ? {\n 'Content-Type': 'multipart/form-data'\n } : {},\n url,\n data\n }));\n };\n }\n\n Axios.prototype[method] = generateHTTPMethod();\n\n Axios.prototype[method + 'Form'] = generateHTTPMethod(true);\n});\n\nexport default Axios;\n","'use strict';\n\nimport CanceledError from './CanceledError.js';\n\n/**\n * A `CancelToken` is an object that can be used to request cancellation of an operation.\n *\n * @param {Function} executor The executor function.\n *\n * @returns {CancelToken}\n */\nclass CancelToken {\n constructor(executor) {\n if (typeof executor !== 'function') {\n throw new TypeError('executor must be a function.');\n }\n\n let resolvePromise;\n\n this.promise = new Promise(function promiseExecutor(resolve) {\n resolvePromise = resolve;\n });\n\n const token = this;\n\n // eslint-disable-next-line func-names\n this.promise.then(cancel => {\n if (!token._listeners) return;\n\n let i = token._listeners.length;\n\n while (i-- > 0) {\n token._listeners[i](cancel);\n }\n token._listeners = null;\n });\n\n // eslint-disable-next-line func-names\n this.promise.then = onfulfilled => {\n let _resolve;\n // eslint-disable-next-line func-names\n const promise = new Promise(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, config, request) {\n if (token.reason) {\n // Cancellation has already been requested\n return;\n }\n\n token.reason = new CanceledError(message, config, request);\n resolvePromise(token.reason);\n });\n }\n\n /**\n * Throws a `CanceledError` if cancellation has been requested.\n */\n throwIfRequested() {\n if (this.reason) {\n throw this.reason;\n }\n }\n\n /**\n * Subscribe to the cancel signal\n */\n\n 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\n unsubscribe(listener) {\n if (!this._listeners) {\n return;\n }\n const 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 */\n static source() {\n let cancel;\n const token = new CancelToken(function executor(c) {\n cancel = c;\n });\n return {\n token,\n cancel\n };\n }\n}\n\nexport default CancelToken;\n","const HttpStatusCode = {\n Continue: 100,\n SwitchingProtocols: 101,\n Processing: 102,\n EarlyHints: 103,\n Ok: 200,\n Created: 201,\n Accepted: 202,\n NonAuthoritativeInformation: 203,\n NoContent: 204,\n ResetContent: 205,\n PartialContent: 206,\n MultiStatus: 207,\n AlreadyReported: 208,\n ImUsed: 226,\n MultipleChoices: 300,\n MovedPermanently: 301,\n Found: 302,\n SeeOther: 303,\n NotModified: 304,\n UseProxy: 305,\n Unused: 306,\n TemporaryRedirect: 307,\n PermanentRedirect: 308,\n BadRequest: 400,\n Unauthorized: 401,\n PaymentRequired: 402,\n Forbidden: 403,\n NotFound: 404,\n MethodNotAllowed: 405,\n NotAcceptable: 406,\n ProxyAuthenticationRequired: 407,\n RequestTimeout: 408,\n Conflict: 409,\n Gone: 410,\n LengthRequired: 411,\n PreconditionFailed: 412,\n PayloadTooLarge: 413,\n UriTooLong: 414,\n UnsupportedMediaType: 415,\n RangeNotSatisfiable: 416,\n ExpectationFailed: 417,\n ImATeapot: 418,\n MisdirectedRequest: 421,\n UnprocessableEntity: 422,\n Locked: 423,\n FailedDependency: 424,\n TooEarly: 425,\n UpgradeRequired: 426,\n PreconditionRequired: 428,\n TooManyRequests: 429,\n RequestHeaderFieldsTooLarge: 431,\n UnavailableForLegalReasons: 451,\n InternalServerError: 500,\n NotImplemented: 501,\n BadGateway: 502,\n ServiceUnavailable: 503,\n GatewayTimeout: 504,\n HttpVersionNotSupported: 505,\n VariantAlsoNegotiates: 506,\n InsufficientStorage: 507,\n LoopDetected: 508,\n NotExtended: 510,\n NetworkAuthenticationRequired: 511,\n};\n\nObject.entries(HttpStatusCode).forEach(([key, value]) => {\n HttpStatusCode[value] = key;\n});\n\nexport default HttpStatusCode;\n","'use strict';\n\nimport utils from './utils.js';\nimport bind from './helpers/bind.js';\nimport Axios from './core/Axios.js';\nimport mergeConfig from './core/mergeConfig.js';\nimport defaults from './defaults/index.js';\nimport formDataToJSON from './helpers/formDataToJSON.js';\nimport CanceledError from './cancel/CanceledError.js';\nimport CancelToken from './cancel/CancelToken.js';\nimport isCancel from './cancel/isCancel.js';\nimport {VERSION} from './env/data.js';\nimport toFormData from './helpers/toFormData.js';\nimport AxiosError from './core/AxiosError.js';\nimport spread from './helpers/spread.js';\nimport isAxiosError from './helpers/isAxiosError.js';\nimport AxiosHeaders from \"./core/AxiosHeaders.js\";\nimport adapters from './adapters/adapters.js';\nimport HttpStatusCode from './helpers/HttpStatusCode.js';\n\n/**\n * Create an instance of Axios\n *\n * @param {Object} defaultConfig The default config for the instance\n *\n * @returns {Axios} A new instance of Axios\n */\nfunction createInstance(defaultConfig) {\n const context = new Axios(defaultConfig);\n const instance = bind(Axios.prototype.request, context);\n\n // Copy axios.prototype to instance\n utils.extend(instance, Axios.prototype, context, {allOwnKeys: true});\n\n // Copy context to instance\n utils.extend(instance, context, null, {allOwnKeys: true});\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\nconst axios = createInstance(defaults);\n\n// Expose Axios class to allow class inheritance\naxios.Axios = Axios;\n\n// Expose Cancel & CancelToken\naxios.CanceledError = CanceledError;\naxios.CancelToken = CancelToken;\naxios.isCancel = isCancel;\naxios.VERSION = VERSION;\naxios.toFormData = toFormData;\n\n// Expose AxiosError class\naxios.AxiosError = 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};\n\naxios.spread = spread;\n\n// Expose isAxiosError\naxios.isAxiosError = isAxiosError;\n\n// Expose mergeConfig\naxios.mergeConfig = mergeConfig;\n\naxios.AxiosHeaders = AxiosHeaders;\n\naxios.formToJSON = thing => formDataToJSON(utils.isHTMLForm(thing) ? new FormData(thing) : thing);\n\naxios.getAdapter = adapters.getAdapter;\n\naxios.HttpStatusCode = HttpStatusCode;\n\naxios.default = axios;\n\n// this module should only have a default export\nexport default axios\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 *\n * @returns {Function}\n */\nexport default function spread(callback) {\n return function wrap(arr) {\n return callback.apply(null, arr);\n };\n}\n","'use strict';\n\nimport utils from './../utils.js';\n\n/**\n * Determines whether the payload is an error thrown by Axios\n *\n * @param {*} payload The value to test\n *\n * @returns {boolean} True if the payload is an error thrown by Axios, otherwise false\n */\nexport default function isAxiosError(payload) {\n return utils.isObject(payload) && (payload.isAxiosError === true);\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 type AddToBasketParams = AddToBasket.Data &\n 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 const Name = 'add-voucher-failed';\nexport const AddVoucherFailedEvent = Name;\nexport const isAddVoucherErrorResponse = response => isErrorResponse(response);\n//# sourceMappingURL=index.js.map","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\ntype Data = 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 { isErrorResponse } from '@ori-events/failed-event-data';\nexport const Name = 'cancel-subscription-failed';\nexport const CancelSubscriptionFailedEvent = Name;\nexport const isCancelSubscriptionErrorResponse = response => isErrorResponse(response);\n//# sourceMappingURL=index.js.map","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\ntype Data = 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 { isErrorResponse } from '@ori-events/failed-event-data';\nexport const Name = 'delay-subscription-failed';\nexport const DelaySubscriptionFailedEvent = Name;\nexport const isDelaySubscriptionErrorResponse = response => isErrorResponse(response);\n//# sourceMappingURL=index.js.map","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\ntype Data = 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 { isErrorResponse } from '@ori-events/failed-event-data';\nexport const Name = 'remove-customer-order-failed';\nexport const RemoveCustomerOrderFailedEvent = Name;\nexport const isRemoveCustomerOrderErrorResponse = response => isErrorResponse(response);\n//# sourceMappingURL=index.js.map","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\ntype Data = PositionData & RemoveCustomerOrder.Data;\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 { isErrorResponse } from '@ori-events/failed-event-data';\nexport const Name = 'remove-voucher-failed';\nexport const RemoveVoucherFailedEvent = Name;\nexport const isRemoveVoucherErrorResponse = response => isErrorResponse(response);\n//# sourceMappingURL=index.js.map","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\ntype Data = PositionData & RemoveVoucher.Data;\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 { isErrorResponse } from '@ori-events/failed-event-data';\nexport const Name = 'replace-shopping-bag-item-failed';\nexport const ReplaceShoppingBagItemFailedEvent = Name;\nexport const isReplaceShoppingBagItemErrorResponse = response => isErrorResponse(response);\n//# sourceMappingURL=index.js.map","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\ntype Data = PositionData & ReplaceShoppingBagItem.Data;\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 { isErrorResponse } from '@ori-events/failed-event-data';\nexport const Name = 'replace-subscription-failed';\nexport const ReplaceSubscriptionFailedEvent = Name;\nexport const isReplaceSubscriptionErrorResponse = response => isErrorResponse(response);\n//# sourceMappingURL=index.js.map","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\ntype Data = PositionData & ReplaceSubscription.Data;\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 const Name = 'update-customer-order-item-failed';\nexport const UpdateCustomerOrderItemFailedEvent = Name;\nexport const isUpdateCustomerOrderItemErrorResponse = response => isErrorResponse(response);\n//# sourceMappingURL=index.js.map","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\ntype Data = PositionData & UpdateCustomerOrderItem.Data;\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 { isErrorResponse } from '@ori-events/failed-event-data';\nexport const Name = 'update-delivery-channel-failed';\nexport const UpdateDeliveryChannelFailedEvent = Name;\nexport const isUpdateDeliveryChannelErrorResponse = response => isErrorResponse(response);\n//# sourceMappingURL=index.js.map","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 { isErrorResponse } from '@ori-events/failed-event-data';\nexport const Name = 'update-delivery-failed';\nexport const UpdateDeliveryFailedEvent = Name;\nexport const isUpdateDeliveryErrorResponse = response => isErrorResponse(response);\n//# sourceMappingURL=index.js.map","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 { isErrorResponse } from '@ori-events/failed-event-data';\nexport const Name = 'update-donation-failed';\nexport const UpdateDonationFailedEvent = Name;\nexport const isUpdateDonationFailedResponse = response => isErrorResponse(response);\n//# sourceMappingURL=index.js.map","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\ntype Data = PositionData & UpdateOfferItem.Data;\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 { isErrorResponse } from '@ori-events/failed-event-data';\nexport const Name = 'update-payment-provider-failed';\nexport const UpdatePaymentProviderFailedEvent = Name;\nexport const isUpdatePaymentProviderFailedResponse = response => isErrorResponse(response);\n//# sourceMappingURL=index.js.map","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\ndeclare global {\n interface Window {\n /**\n * Promise indicating that shopping bag provider handlers are connected\n * and other components can start communicating with the provider via events.\n */\n isBasketProviderReady?: Promise;\n }\n}\n\nlet isReadyPromiseResolve: (value: PromiseLike | boolean) => void;\n\n/**\n * Promise indicating that shopping bag provider handlers are connected\n * and other components can start communicating with the provider via events.\n */\nexport const isReady = new Promise((resolve) => {\n isReadyPromiseResolve = resolve;\n});\n\nwindow.isBasketProviderReady = isReady;\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 void 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 const triggerResponse = () => {\n if (!this.shoppingContext) {\n return;\n }\n logDebug(\n `Context data was loaded before. Triggering ${ShoppingContextLoadedEvent} event ...`,\n );\n dispatchBasketUpdatedEvent(this.shoppingContext, ShoppingContextLoadedEvent);\n };\n\n // postpone a bit to have same events order as when really fetching the data\n setTimeout(() => triggerResponse());\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\n logDebug('Event listeners are connected.');\n\n // resolve the promise to inform other components\n isReadyPromiseResolve(true);\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 { currentLanguage, customerId, globalApiUrl, identityUrl, tenant } = JSON.parse(\n rawData,\n ) 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;\n this.isBrowserTabsSynchronizationUsed = isStorageAvailable;\n\n if (configElement) {\n logDebug(`Configuration was parsed from element #${BasketProvider.CONFIG_ELEMENT_ID}.`);\n }\n logDebug('Current configuration:', {\n currentLanguage,\n customerId,\n globalApiUrl,\n identityUrl,\n tenant,\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\ntype Data = 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 { 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 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\ntype Data = 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 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\ntype Data = 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 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 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\ntype Data = PositionData & RemoveBasketItem.Data;\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 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 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 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\ntype Data = PositionData & UpdateBasketItem.Data;\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 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 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\ntype Data = PositionData & UpdateDonation.Data;\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\ntype Data = PositionData & UpdateOfferItems.Data;\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 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\ntype Data = PositionData & UpdatePaymentProvider.Data;\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, isReady } from './BasketProvider';\n\nexport { isReady };\n\nvoid new BasketProvider();\n"],"names":["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","join","rsEmoji","rsSymbol","reApos","RegExp","reComboMark","reUnicode","reUnicodeWord","reHasUnicode","reHasUnicodeWord","freeGlobal","g","Object","freeSelf","self","root","Function","object","deburrLetter","key","undefined","hasUnicode","string","test","stringToArray","match","unicodeToArray","split","asciiToArray","objectToString","prototype","toString","Symbol","symbolProto","symbolToString","baseToString","value","isObjectLike","call","isSymbol","result","castSlice","array","start","end","length","index","Array","baseSlice","callback","camelCase","word","toLowerCase","upperFirst","iteratee","accumulator","initAccum","arrayReduce","pattern","guard","hasUnicodeWord","unicodeWords","asciiWords","words","replace","deburr","methodName","strSymbols","chr","charAt","trailing","slice","module","exports","__webpack_module_cache__","__webpack_require__","moduleId","cachedModule","__webpack_modules__","n","getter","__esModule","d","a","definition","o","defineProperty","enumerable","get","globalThis","this","e","window","obj","prop","hasOwnProperty","r","toStringTag","_arrayLikeToArray","arr","len","i","arr2","_slicedToArray","isArray","l","t","iterator","u","f","next","done","push","minLen","constructor","name","from","TypeError","_typeof","toPropertyKey","toPrimitive","String","Number","_defineProperties","target","props","descriptor","configurable","writable","_defineProperty","Name","Method","LoyaltyDialogResults","Results","BUY_FOR_MONEY","BUY_FOR_POINTS","ShoppingContextLoadedEvent","response","isSuccess","document","documentElement","lang","ContentTypes","Header","RequestMethod","RequestUrl","HttpMethod","convertToCamelCase","map","fromEntries","entries","_ref","_ref2","_objectWithoutProperties","source","excluded","sourceKeys","keys","indexOf","getOwnPropertySymbols","sourceSymbolKeys","propertyIsEnumerable","getHttpRequestSettings","data","body","method","arguments","Get","headers","ContentType","Json","placement","finalData","_excluded","Placement","bodyValue","JSON","stringify","_objectSpread","credentials","Post","Boolean","addBasketOffer","async","url","params","request","fetch","json","isAddBasketOfferErrorResponse","event","CustomEvent","AddBasketOfferFailed","detail","dispatchEvent","APPLICATION_NAME","LogLevel","DEFAULT_LOG_LEVEL","Warning","logMethodsMap","Map","None","Error","console","error","warn","Info","info","Debug","log","getTime","date","Date","minutes","concat","getMinutes","seconds","getSeconds","milliseconds","getMilliseconds","getHours","getLogLevel","_localStorage$getItem","localStorage","parse","getItem","level","currentLevel","time","_len","args","_key","apply","logError","_len2","_key2","logDebug","_len5","_key5","logReceivedEvent","type","pagePathPatterns","dispatchBasketUpdatedEvent","eventType","BasketUpdated","contextKey","scheduledCleanupKey","storage","isStorageAvailable","getUserCheck","_getCookie","cookieName","b","charCodeAt","adler32","cookie","trim","parseValue","serializedData","parsedValue","timestamp","savedTimestamp","userCheck","now","removeItem","isUpdateBasketItemErrorResponse","_ref$detail","offerId","AddCatalogueOffer","AddCatalogueOfferFailed","itemCode","AddFreeShippingOffer","AddFreeShippingOfferFailed","message","atob","bind","c","fromCharCode","decodeURIComponent","toUpperCase","header","OidcToken","token","claim","payload","Token","OidcAccessToken","super","putRequestOptions","getAuthorizationToken","tokenConfiguration","isCustomerAnonymous","forceReload","_window$ori","_window$ori2","identityUrl","tenant","ori","tokenService","oriToken","getToken","getPublicToken","fn","thisArg","getPrototypeOf","kindOf","cache","create","thing","str","kindOfTest","typeOfTest","isUndefined","isArrayBuffer","isString","isFunction","isNumber","isObject","isPlainObject","val","isDate","isFile","isBlob","isFileList","isURLSearchParams","forEach","allOwnKeys","getOwnPropertyNames","findKey","_global","global","isContextDefined","context","isTypedArray","TypedArray","Uint8Array","isHTMLForm","isRegExp","reduceDescriptors","reducer","descriptors","getOwnPropertyDescriptors","reducedDescriptors","ret","defineProperties","ALPHA","DIGIT","ALPHABET","ALPHA_DIGIT","isAsyncFn","isBuffer","isFormData","kind","FormData","append","isArrayBufferView","ArrayBuffer","isView","buffer","isBoolean","isStream","pipe","merge","caseless","assignValue","targetKey","extend","stripBOM","content","inherits","superConstructor","assign","toFlatObject","sourceObj","destObj","filter","propFilter","merged","endsWith","searchString","position","lastIndex","toArray","forEachEntry","pair","matchAll","regExp","matches","exec","hasOwnProp","freezeMethods","set","toObjectSet","arrayOrString","delimiter","define","toCamelCase","m","p1","p2","noop","toFiniteNumber","defaultValue","isFinite","generateString","size","alphabet","Math","random","isSpecCompliantForm","toJSONObject","stack","visit","reducedValue","isThenable","then","catch","AxiosError","code","config","captureStackTrace","utils","toJSON","description","number","fileName","lineNumber","columnNumber","status","customProps","axiosError","cause","isVisitable","removeBrackets","renderKey","path","dots","predicates","formData","options","metaTokens","indexes","option","visitor","defaultVisitor","useBlob","Blob","convertValue","toISOString","Buffer","some","isFlatArray","el","exposedHelpers","build","pop","encode","charMap","encodeURIComponent","AxiosURLSearchParams","_pairs","encoder","_encode","buildURL","serializeFn","serialize","serializedParams","hashmarkIndex","handlers","use","fulfilled","rejected","synchronous","runWhen","eject","id","clear","h","silentJSONParsing","forcedJSONParsing","clarifyTimeoutError","isBrowser","classes","URLSearchParams","protocols","hasBrowserEnv","hasStandardBrowserEnv","product","navigator","hasStandardBrowserWebWorkerEnv","WorkerGlobalScope","importScripts","buildPath","isNumericKey","isLast","arrayToObject","parsePropPath","defaults","transitional","adapter","transformRequest","contentType","getContentType","hasJSONContentType","isObjectPayload","setContentType","platform","helpers","isNode","toURLEncodedForm","formSerializer","_FormData","env","rawValue","parser","stringifySafely","transformResponse","JSONRequested","responseType","strictJSONParsing","timeout","xsrfCookieName","xsrfHeaderName","maxContentLength","maxBodyLength","validateStatus","common","ignoreDuplicateOf","$internals","normalizeHeader","normalizeValue","matchHeaderValue","isHeaderNameFilter","AxiosHeaders","valueOrRewrite","rewrite","setHeader","_value","_header","_rewrite","lHeader","setHeaders","rawHeaders","parsed","line","substring","parseHeaders","tokens","tokensRE","parseTokens","has","matcher","delete","deleted","deleteHeader","normalize","format","normalized","w","char","formatHeader","targets","asStrings","static","first","computed","accessors","defineAccessor","accessorName","arg1","arg2","arg3","buildAccessors","accessor","mapped","headerValue","transformData","fns","isCancel","__CANCEL__","CanceledError","write","expires","domain","secure","toGMTString","read","remove","buildFullPath","baseURL","requestedURL","relativeURL","combineURLs","msie","userAgent","urlParsingNode","createElement","originURL","resolveURL","href","setAttribute","protocol","host","search","hash","hostname","port","pathname","location","requestURL","samplesCount","min","bytes","timestamps","firstSampleTS","head","tail","chunkLength","startedAt","bytesCount","passed","round","progressEventReducer","listener","isDownloadStream","bytesNotified","_speedometer","loaded","total","lengthComputable","progressBytes","rate","progress","estimated","knownAdapters","http","xhr","XMLHttpRequest","Promise","resolve","reject","requestData","requestHeaders","onCanceled","withXSRFToken","cancelToken","unsubscribe","signal","removeEventListener","auth","username","password","unescape","btoa","fullPath","onloadend","responseHeaders","getAllResponseHeaders","floor","settle","err","responseText","statusText","open","paramsSerializer","onreadystatechange","readyState","responseURL","setTimeout","onabort","onerror","ontimeout","timeoutErrorMessage","isURLSameOrigin","xsrfValue","cookies","setRequestHeader","withCredentials","onDownloadProgress","addEventListener","onUploadProgress","upload","cancel","abort","subscribe","aborted","parseProtocol","send","renderReason","reason","isResolvedHandle","adapters","nameOrAdapter","rejectedReasons","reasons","state","s","throwIfCancellationRequested","throwIfRequested","dispatchRequest","headersToObject","mergeConfig","config1","config2","getMergedValue","mergeDeepProperties","valueFromConfig2","defaultToConfig2","mergeDirectKeys","mergeMap","timeoutMessage","decompress","beforeRedirect","transport","httpAgent","httpsAgent","socketPath","responseEncoding","configValue","VERSION","validators","deprecatedWarnings","validator","version","formatMessage","opt","desc","opts","assertOptions","schema","allowUnknown","Axios","instanceConfig","interceptors","configOrUrl","_request","dummy","boolean","function","contextHeaders","requestInterceptorChain","synchronousRequestInterceptors","interceptor","unshift","responseInterceptorChain","promise","chain","newConfig","onFulfilled","onRejected","getUri","generateHTTPMethod","isForm","CancelToken","executor","resolvePromise","_listeners","onfulfilled","_resolve","splice","HttpStatusCode","Continue","SwitchingProtocols","Processing","EarlyHints","Ok","Created","Accepted","NonAuthoritativeInformation","NoContent","ResetContent","PartialContent","MultiStatus","AlreadyReported","ImUsed","MultipleChoices","MovedPermanently","Found","SeeOther","NotModified","UseProxy","Unused","TemporaryRedirect","PermanentRedirect","BadRequest","Unauthorized","PaymentRequired","Forbidden","NotFound","MethodNotAllowed","NotAcceptable","ProxyAuthenticationRequired","RequestTimeout","Conflict","Gone","LengthRequired","PreconditionFailed","PayloadTooLarge","UriTooLong","UnsupportedMediaType","RangeNotSatisfiable","ExpectationFailed","ImATeapot","MisdirectedRequest","UnprocessableEntity","Locked","FailedDependency","TooEarly","UpgradeRequired","PreconditionRequired","TooManyRequests","RequestHeaderFieldsTooLarge","UnavailableForLegalReasons","InternalServerError","NotImplemented","BadGateway","ServiceUnavailable","GatewayTimeout","HttpVersionNotSupported","VariantAlsoNegotiates","InsufficientStorage","LoopDetected","NotExtended","NetworkAuthenticationRequired","axios","createInstance","defaultConfig","instance","toFormData","Cancel","all","promises","spread","isAxiosError","formToJSON","getAdapter","default","normalizeSlashChars","input","isStartingSlashRequired","isEndingSlashRequired","at","buyingMethod","quantity","_len3","_key3","logWarning","loyaltyPoints","isAddToBasketLoyaltyResponse","ShowLoyaltyDialog","shoppingBag","isAddToBasketSuccessResponse","lastAddedItem","isAddToBasketErrorResponse","AddToBasketFailed","fetchData","originalBasePath","basePath","currentLanguage","originalHost","isAuthorizationRequired","originalMethod","query","Authorization","getUrl","Put","isUpdateDeliveryErrorResponse","isReadyPromiseResolve","isReady","isBasketProviderReady","setCachedContext","setItem","contextUpdatesMap","AcceptNotification","reasonId","isAcceptNotificationErrorResponse","errorEvent","ErrorEventName","AddBackorderDemand","requestItemUpdate","UpdateBasketItem","AddBasketOffer","items","isAddBasketOfferPurchaseEvent","choiceId","currentPlacement","PurchaseBasketOffer","_ref2$detail","addCatalogueOfferHandler","AddCustomerOrder","orderIds","URL","searchParams","isCustomerOrderSuccessResponse","lastAddedCustomerOrderIds","isCustomerOrderErrorResponse","AddCustomerOrderFailed","addFreeShippingOfferHandler","AddToBasket","originalItemCode","replacementType","addToBasketMethod","_getBuyingURLandMetho","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","CLOSE","catalogueItemId","AddToBasketForPoints","RemoveBasketItem","RemoveCustomerOrder","endConsumerOrderId","isRemoveCustomerOrderSuccessResponse","isRemoveCustomerOrderErrorResponse","RemoveCustomerOrderFailed","RemoveVoucher","isRemoveVoucherSuccessResponse","isRemoveVoucherErrorResponse","RemoveVoucherFailed","ReplaceShoppingBagItem","isReplaceShoppingBagItemErrorResponse","ReplaceShoppingBagItemFailed","ReplaceSubscription","configuration","droppingId","customerId","globalApiUrl","_getUrlOptions","queryParams","_ref3","urlOptions","origin","cacheKeys","values","getUrlOptions","DroppingId","ItemCode","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","_classCallCheck","parseConfiguration","isBrowserStorageUsed","item","includes","isScheduled","isScheduledCacheCleanup","clearContext","getStoredContext","initEventListeners","protoProps","staticProps","isBrowserTabsSynchronizationUsed","shoppingContext","_this","eventListeners","removeEventListeners","eventName","updateHandler","getConfiguration","updateContext","RequestShoppingContext","isRequestingShoppingContext","newData","ShoppingContextLoaded","requestShoppingContextHandler","PlaceOrderRequested","clearContextOnEvent","RequestClearShoppingCache","_listenToStoredItemCh","eventListener","storageArea","newValue","_ref4","action","_ref5","_ref6","_configElement$innerH","configElement","getElementById","CONFIG_ELEMENT_ID","rawData","innerHTML","_ref7","eventTypeToBeTriggered","shouldStoreData"],"sourceRoot":""}