{"version":3,"sources":["../webpack/bootstrap","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/regenerator/index.js","../node_modules/workbox-core/_version.js","../node_modules/workbox-precaching/_version.js","../node_modules/workbox-routing/_version.js","../node_modules/workbox-strategies/_version.js","../node_modules/workbox-expiration/_version.js","../node_modules/babel-preset-react-app/node_modules/regenerator-runtime/runtime.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/arrayLikeToArray.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/unsupportedIterableToArray.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/toConsumableArray.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/arrayWithoutHoles.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/iterableToArray.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/nonIterableSpread.js","../node_modules/workbox-core/_private/logger.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/createForOfIteratorHelper.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/classCallCheck.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/setPrototypeOf.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/inherits.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/getPrototypeOf.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/isNativeReflectConstruct.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/typeof.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/possibleConstructorReturn.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/assertThisInitialized.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/createSuper.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/construct.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/wrapNativeSuper.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/isNativeFunction.js","../node_modules/workbox-core/models/messages/messages.js","../node_modules/workbox-core/models/messages/messageGenerator.js","../node_modules/workbox-core/_private/WorkboxError.js","../node_modules/workbox-core/models/quotaErrorCallbacks.js","../node_modules/workbox-core/registerQuotaErrorCallback.js","../node_modules/workbox-core/_private/cacheNames.js","../node_modules/workbox-core/_private/canConstructResponseFromBodyStream.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/defineProperty.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/objectSpread2.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/asyncToGenerator.js","../node_modules/workbox-core/_private/cacheMatchIgnoreParams.js","../node_modules/workbox-core/_private/dontWaitFor.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/slicedToArray.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/arrayWithHoles.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/iterableToArrayLimit.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/nonIterableRest.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/createClass.js","../node_modules/workbox-core/_private/DBWrapper.js","../node_modules/workbox-core/_private/Deferred.js","../node_modules/workbox-core/_private/deleteDatabase.js","../node_modules/workbox-core/_private/executeQuotaErrorCallbacks.js","../node_modules/workbox-core/_private/getFriendlyURL.js","../node_modules/workbox-core/_private/timeout.js","../node_modules/workbox-core/_private/waitUntil.js","../node_modules/workbox-core/copyResponse.js","../node_modules/workbox-expiration/models/CacheTimestampsModel.js","../node_modules/workbox-expiration/CacheExpiration.js","../node_modules/workbox-expiration/ExpirationPlugin.js","../node_modules/workbox-precaching/utils/createCacheKey.js","../node_modules/workbox-precaching/utils/PrecacheInstallReportPlugin.js","../node_modules/workbox-precaching/utils/PrecacheCacheKeyPlugin.js","../node_modules/workbox-strategies/StrategyHandler.js","../node_modules/workbox-strategies/Strategy.js","../node_modules/workbox-precaching/PrecacheStrategy.js","../node_modules/workbox-precaching/PrecacheController.js","../node_modules/workbox-precaching/utils/getOrCreatePrecacheController.js","../node_modules/workbox-routing/utils/getOrCreateDefaultRouter.js","../node_modules/workbox-routing/utils/constants.js","../node_modules/workbox-routing/utils/normalizeHandler.js","../node_modules/workbox-routing/Route.js","../node_modules/workbox-routing/RegExpRoute.js","../node_modules/workbox-routing/Router.js","../node_modules/workbox-routing/registerRoute.js","../node_modules/workbox-precaching/utils/removeIgnoredSearchParams.js","../node_modules/workbox-precaching/utils/generateURLVariations.js","../node_modules/workbox-precaching/PrecacheRoute.js","../node_modules/workbox-strategies/utils/messages.js","../node_modules/workbox-precaching/precacheAndRoute.js","../node_modules/workbox-strategies/plugins/cacheOkAndOpaquePlugin.js","../node_modules/workbox-strategies/StaleWhileRevalidate.js","../node_modules/workbox-core/clientsClaim.js","../node_modules/workbox-precaching/precache.js","service-worker.ts","../node_modules/workbox-precaching/addRoute.js","../node_modules/workbox-precaching/createHandlerBoundToURL.js"],"names":["installedModules","__webpack_require__","moduleId","exports","module","i","l","modules","call","m","c","d","name","getter","o","Object","defineProperty","enumerable","get","r","Symbol","toStringTag","value","t","mode","__esModule","ns","create","key","bind","n","object","property","prototype","hasOwnProperty","p","s","self","_","e","runtime","undefined","Op","hasOwn","$Symbol","iteratorSymbol","iterator","asyncIteratorSymbol","asyncIterator","toStringTagSymbol","define","obj","configurable","writable","err","wrap","innerFn","outerFn","tryLocsList","protoGenerator","Generator","generator","context","Context","_invoke","state","GenStateSuspendedStart","method","arg","GenStateExecuting","Error","GenStateCompleted","doneResult","delegate","delegateResult","maybeInvokeDelegate","ContinueSentinel","sent","_sent","dispatchException","abrupt","record","tryCatch","type","done","GenStateSuspendedYield","makeInvokeMethod","fn","GeneratorFunction","GeneratorFunctionPrototype","IteratorPrototype","this","getProto","getPrototypeOf","NativeIteratorPrototype","values","Gp","defineIteratorMethods","forEach","AsyncIterator","PromiseImpl","invoke","resolve","reject","result","__await","then","unwrapped","error","previousPromise","callInvokeWithMethodAndArg","TypeError","info","resultName","next","nextLoc","pushTryEntry","locs","entry","tryLoc","catchLoc","finallyLoc","afterLoc","tryEntries","push","resetTryEntry","completion","reset","iterable","iteratorMethod","isNaN","length","constructor","displayName","isGeneratorFunction","genFun","ctor","mark","setPrototypeOf","__proto__","awrap","async","Promise","iter","toString","keys","reverse","pop","skipTempReset","prev","charAt","slice","stop","rootRecord","rval","exception","handle","loc","caught","hasCatch","hasFinally","finallyEntry","complete","finish","thrown","delegateYield","regeneratorRuntime","accidentalStrictMode","Function","_arrayLikeToArray","arr","len","arr2","Array","_unsupportedIterableToArray","minLen","from","test","_toConsumableArray","isArray","logger","_createForOfIteratorHelper","allowArrayLike","it","F","_e","f","normalCompletion","didErr","step","_e2","_classCallCheck","instance","Constructor","_setPrototypeOf","_inherits","subClass","superClass","_getPrototypeOf","_isNativeReflectConstruct","Reflect","construct","sham","Proxy","Date","_typeof","_possibleConstructorReturn","ReferenceError","_createSuper","Derived","hasNativeReflectConstruct","Super","NewTarget","arguments","apply","Parent","args","Class","a","_cache","Map","indexOf","has","set","Wrapper","messageGenerator","code","msg","_len","_key","concat","JSON","stringify","_Error","WorkboxError","_super","errorCode","details","_this","message","quotaErrorCallbacks","Set","registerQuotaErrorCallback","callback","add","_cacheNameDetails","googleAnalytics","precache","prefix","suffix","registration","scope","_createCacheName","cacheName","filter","join","userCacheName","_defineProperty","ownKeys","enumerableOnly","getOwnPropertySymbols","symbols","sym","getOwnPropertyDescriptor","_objectSpread2","target","source","getOwnPropertyDescriptors","defineProperties","asyncGeneratorStep","gen","_next","_throw","_asyncToGenerator","stripParams","fullURL","ignoreParams","_step","strippedURL","URL","_iterator","param","searchParams","delete","href","cacheMatchIgnoreParams","_x","_x2","_x3","_x4","_cacheMatchIgnoreParams","_callee","cache","request","matchOptions","strippedRequestURL","keysOptions","cacheKeys","_iterator2","_step2","cacheKey","strippedCacheKeyURL","_context","url","match","ignoreSearch","t0","canConstructResponseFromBodyStream","testResponse","Response","body","dontWaitFor","promise","_slicedToArray","_arr","_n","_d","_s","_i","_defineProperties","props","descriptor","_createClass","protoProps","staticProps","DBWrapper","version","_ref","onupgradeneeded","onversionchange","_db","_name","_version","_onupgradeneeded","_onversionchange","close","_open","_this2","openRequestTimedOut","setTimeout","OPEN_TIMEOUT","openRequest","indexedDB","open","onerror","evt","transaction","abort","onsuccess","db","_getKey","_callee2","storeName","query","_context2","getAllKeys","_getAll","_callee3","count","_context3","getAllMatching","_x5","_getAllKeys","_callee4","entries","_context4","includeKeys","map","_x6","_x7","_x8","_getAllMatching","_callee5","_ref2","index","_ref2$query","_ref2$direction","direction","_ref2$includeKeys","_args5","_context5","txn","store","objectStore","results","openCursor","cursor","continue","_x9","_transaction","_callee6","storeNames","_this3","_context6","onabort","oncomplete","_x10","_x11","_x12","_call2","_callee7","_args7","_context7","objStore","_x13","_x14","_x15","_Object$entries$_i","_Object$entries","_loop2","IDBObjectStore","_ref3","_callee8","_len2","_key2","_args8","_context8","_call","_x16","readonly","readwrite","Deferred","deleteDatabase","onblocked","executeQuotaErrorCallbacks","_executeQuotaErrorCallbacks","getFriendlyURL","String","location","replace","RegExp","origin","timeout","ms","waitUntil","event","asyncFn","returnPromise","copyResponse","_copyResponse","response","modifier","responseURL","clonedResponse","responseInit","modifiedResponseInit","clone","headers","Headers","status","statusText","blob","OBJECT_STORE_NAME","normalizeURL","unNormalizedUrl","hash","CacheTimestampsModel","_cacheName","_handleUpgrade","createObjectStore","keyPath","createIndex","unique","_setTimestamp","timestamp","id","_getId","put","_getTimestamp","_expireEntries","minTimestamp","maxCount","entriesToDelete","urlsDeleted","entriesNotDeletedCount","CacheExpiration","config","_isRunning","_rerunRequested","_maxEntries","maxEntries","_maxAgeSeconds","maxAgeSeconds","_matchOptions","_timestampModel","urlsExpired","now","expireEntries","caches","_updateTimestamp","setTimestamp","_isURLExpired","expireOlderThan","getTimestamp","_delete2","Infinity","ExpirationPlugin","cachedResponseWillBeUsed","cachedResponse","isFresh","cacheExpiration","updateTimestampDone","_isResponseDateFresh","_getCacheExpiration","updateTimestamp","cacheDidUpdate","_ref4","_config","_cacheExpirations","purgeOnQuotaError","deleteCacheAndMetadata","dateHeaderTimestamp","_getDateHeaderTimestamp","dateHeader","headerTime","getTime","_deleteCacheAndMetadata","_step$value","createCacheKey","urlObject","revision","_urlObject","cacheKeyURL","originalURL","PrecacheInstallReportPlugin","updatedURLs","notUpdatedURLs","handlerWillStart","originalRequest","PrecacheCacheKeyPlugin","precacheController","cacheKeyWillBeUsed","params","_precacheController","getCacheKeyForURL","Request","toRequest","input","StrategyHandler","strategy","options","_cacheKeys","assign","_strategy","_handlerDeferred","_extendLifetimePromises","_plugins","plugins","_pluginStateMap","plugin","_fetch","fetch","possiblePreloadResponse","cb","pluginFilteredRequest","fetchResponse","_iterator3","_step3","FetchEvent","preloadResponse","hasCallback","iterateCallbacks","t1","thrownError","fetchOptions","t2","t3","runCallbacks","_fetchAndCachePut","responseClone","cachePut","_cacheMatch","_this$_strategy","effectiveRequest","multiMatchOptions","_iterator4","_step4","getCacheKey","_cachePut","responseToCache","_this$_strategy2","hasCacheUpdateCallback","oldResponse","_iterator5","_step5","_ensureResponseSafeToCache","newResponse","_getCacheKey","_iterator6","_step6","_step7","_iterator7","_runCallbacks","_iterator8","_step8","_iterator9","_step9","_loop","statefulCallback","statefulParam","_doneWaiting","_context9","shift","_ensureResponseSafeToCache2","pluginsUsed","_iterator10","_step10","_context10","Strategy","handleAll","handler","responseDone","_getResponse","_awaitComplete","_getResponse2","_callback","_handle","_awaitComplete2","doneWaiting","destroy","_Strategy","PrecacheStrategy","_fallbackToNetwork","fallbackToNetwork","copyRedirectedCacheableResponsesPlugin","_handle2","cacheMatch","_handleInstall","_handleFetch","_handleFetch2","groupCollapsed","log","groupEnd","_handleInstall2","_useDefaultCacheabilityPluginIfNeeded","defaultPluginIndex","cacheWillUpdatePluginCount","defaultPrecacheCacheabilityPlugin","cacheWillUpdate","splice","redirected","PrecacheController","_ref$plugins","_ref$fallbackToNetwor","_urlsToCacheKeys","_urlsToCacheModes","_cacheKeysToIntegrities","install","activate","addToCacheList","_installAndActiveListenersAdded","addEventListener","urlsToWarnAbout","_createCacheKey","cacheMode","firstEntry","secondEntry","integrity","warningMessage","console","warn","installReportPlugin","_step2$value","credentials","all","currentlyCachedRequests","expectedCacheKeys","deletedURLs","_matchPrecache","defaultMethod","normalizeHandler","Route","catchHandler","_Route","RegExpRoute","regExp","exec","Router","_routes","_defaultHandlerMap","responsePromise","handleRequest","respondWith","data","payload","requestPromises","urlsToCache","ports","postMessage","protocol","startsWith","sameOrigin","_this$findMatchingRou","findMatchingRoute","route","_catchHandler","catch","matchResult","routeIndex","addFetchListener","addCacheListener","registerRoute","capture","captureUrl","moduleName","funcName","paramName","removeIgnoredSearchParams","ignoreURLParametersMatching","some","_marked","generateURLVariations","_ref$ignoreURLParamet","_ref$directoryIndex","directoryIndex","_ref$cleanURLs","cleanURLs","urlManipulation","urlWithoutIgnoredParams","directoryURL","cleanURL","additionalURLs","urlToAttempt","_args","pathname","endsWith","PrecacheRoute","urlsToCacheKeys","getURLsToCacheKeys","possibleURL","cacheOkAndOpaquePlugin","_cacheWillUpdate","StaleWhileRevalidate","unshift","fetchAndCachePromise","fetchAndCachePut","clients","claim","__WB_MANIFEST","addRoute","fileExtensionRegexp","process","createHandlerBoundToURL","skipWaiting"],"mappings":"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","file":"service-worker.js","sourceRoot":"","sourcesContent":[" \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n \t\t}\n \t};\n\n \t// define __esModule on exports\n \t__webpack_require__.r = function(exports) {\n \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n \t\t}\n \t\tObject.defineProperty(exports, '__esModule', { value: true });\n \t};\n\n \t// create a fake namespace object\n \t// mode & 1: value is a module id, require it\n \t// mode & 2: merge all properties of value into the ns\n \t// mode & 4: return value when already ns object\n \t// mode & 8|1: behave like require\n \t__webpack_require__.t = function(value, mode) {\n \t\tif(mode & 1) value = __webpack_require__(value);\n \t\tif(mode & 8) return value;\n \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n \t\tvar ns = Object.create(null);\n \t\t__webpack_require__.r(ns);\n \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n \t\treturn ns;\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"/shlink-web-client/feature-recover-pwa/\";\n\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = 7);\n","module.exports = require(\"regenerator-runtime\");\n","\"use strict\"; // @ts-ignore\n\ntry {\n self['workbox:core:6.1.5'] && _();\n} catch (e) {}","\"use strict\"; // @ts-ignore\n\ntry {\n self['workbox:precaching:6.1.5'] && _();\n} catch (e) {}","\"use strict\"; // @ts-ignore\n\ntry {\n self['workbox:routing:6.1.5'] && _();\n} catch (e) {}","\"use strict\"; // @ts-ignore\n\ntry {\n self['workbox:strategies:6.1.5'] && _();\n} catch (e) {}","\"use strict\"; // @ts-ignore\n\ntry {\n self['workbox:expiration:6.1.5'] && _();\n} catch (e) {}","/**\n * Copyright (c) 2014-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\nvar runtime = function (exports) {\n \"use strict\";\n\n var Op = Object.prototype;\n var hasOwn = Op.hasOwnProperty;\n var undefined; // More compressible than void 0.\n\n var $Symbol = typeof Symbol === \"function\" ? Symbol : {};\n var iteratorSymbol = $Symbol.iterator || \"@@iterator\";\n var asyncIteratorSymbol = $Symbol.asyncIterator || \"@@asyncIterator\";\n var toStringTagSymbol = $Symbol.toStringTag || \"@@toStringTag\";\n\n function define(obj, key, value) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n return obj[key];\n }\n\n try {\n // IE 8 has a broken Object.defineProperty that only works on DOM objects.\n define({}, \"\");\n } catch (err) {\n define = function define(obj, key, value) {\n return obj[key] = value;\n };\n }\n\n function wrap(innerFn, outerFn, self, tryLocsList) {\n // If outerFn provided and outerFn.prototype is a Generator, then outerFn.prototype instanceof Generator.\n var protoGenerator = outerFn && outerFn.prototype instanceof Generator ? outerFn : Generator;\n var generator = Object.create(protoGenerator.prototype);\n var context = new Context(tryLocsList || []); // The ._invoke method unifies the implementations of the .next,\n // .throw, and .return methods.\n\n generator._invoke = makeInvokeMethod(innerFn, self, context);\n return generator;\n }\n\n exports.wrap = wrap; // Try/catch helper to minimize deoptimizations. Returns a completion\n // record like context.tryEntries[i].completion. This interface could\n // have been (and was previously) designed to take a closure to be\n // invoked without arguments, but in all the cases we care about we\n // already have an existing method we want to call, so there's no need\n // to create a new function object. We can even get away with assuming\n // the method takes exactly one argument, since that happens to be true\n // in every case, so we don't have to touch the arguments object. The\n // only additional allocation required is the completion record, which\n // has a stable shape and so hopefully should be cheap to allocate.\n\n function tryCatch(fn, obj, arg) {\n try {\n return {\n type: \"normal\",\n arg: fn.call(obj, arg)\n };\n } catch (err) {\n return {\n type: \"throw\",\n arg: err\n };\n }\n }\n\n var GenStateSuspendedStart = \"suspendedStart\";\n var GenStateSuspendedYield = \"suspendedYield\";\n var GenStateExecuting = \"executing\";\n var GenStateCompleted = \"completed\"; // Returning this object from the innerFn has the same effect as\n // breaking out of the dispatch switch statement.\n\n var ContinueSentinel = {}; // Dummy constructor functions that we use as the .constructor and\n // .constructor.prototype properties for functions that return Generator\n // objects. For full spec compliance, you may wish to configure your\n // minifier not to mangle the names of these two functions.\n\n function Generator() {}\n\n function GeneratorFunction() {}\n\n function GeneratorFunctionPrototype() {} // This is a polyfill for %IteratorPrototype% for environments that\n // don't natively support it.\n\n\n var IteratorPrototype = {};\n\n IteratorPrototype[iteratorSymbol] = function () {\n return this;\n };\n\n var getProto = Object.getPrototypeOf;\n var NativeIteratorPrototype = getProto && getProto(getProto(values([])));\n\n if (NativeIteratorPrototype && NativeIteratorPrototype !== Op && hasOwn.call(NativeIteratorPrototype, iteratorSymbol)) {\n // This environment has a native %IteratorPrototype%; use it instead\n // of the polyfill.\n IteratorPrototype = NativeIteratorPrototype;\n }\n\n var Gp = GeneratorFunctionPrototype.prototype = Generator.prototype = Object.create(IteratorPrototype);\n GeneratorFunction.prototype = Gp.constructor = GeneratorFunctionPrototype;\n GeneratorFunctionPrototype.constructor = GeneratorFunction;\n GeneratorFunction.displayName = define(GeneratorFunctionPrototype, toStringTagSymbol, \"GeneratorFunction\"); // Helper for defining the .next, .throw, and .return methods of the\n // Iterator interface in terms of a single ._invoke method.\n\n function defineIteratorMethods(prototype) {\n [\"next\", \"throw\", \"return\"].forEach(function (method) {\n define(prototype, method, function (arg) {\n return this._invoke(method, arg);\n });\n });\n }\n\n exports.isGeneratorFunction = function (genFun) {\n var ctor = typeof genFun === \"function\" && genFun.constructor;\n return ctor ? ctor === GeneratorFunction || // For the native GeneratorFunction constructor, the best we can\n // do is to check its .name property.\n (ctor.displayName || ctor.name) === \"GeneratorFunction\" : false;\n };\n\n exports.mark = function (genFun) {\n if (Object.setPrototypeOf) {\n Object.setPrototypeOf(genFun, GeneratorFunctionPrototype);\n } else {\n genFun.__proto__ = GeneratorFunctionPrototype;\n define(genFun, toStringTagSymbol, \"GeneratorFunction\");\n }\n\n genFun.prototype = Object.create(Gp);\n return genFun;\n }; // Within the body of any async function, `await x` is transformed to\n // `yield regeneratorRuntime.awrap(x)`, so that the runtime can test\n // `hasOwn.call(value, \"__await\")` to determine if the yielded value is\n // meant to be awaited.\n\n\n exports.awrap = function (arg) {\n return {\n __await: arg\n };\n };\n\n function AsyncIterator(generator, PromiseImpl) {\n function invoke(method, arg, resolve, reject) {\n var record = tryCatch(generator[method], generator, arg);\n\n if (record.type === \"throw\") {\n reject(record.arg);\n } else {\n var result = record.arg;\n var value = result.value;\n\n if (value && typeof value === \"object\" && hasOwn.call(value, \"__await\")) {\n return PromiseImpl.resolve(value.__await).then(function (value) {\n invoke(\"next\", value, resolve, reject);\n }, function (err) {\n invoke(\"throw\", err, resolve, reject);\n });\n }\n\n return PromiseImpl.resolve(value).then(function (unwrapped) {\n // When a yielded Promise is resolved, its final value becomes\n // the .value of the Promise<{value,done}> result for the\n // current iteration.\n result.value = unwrapped;\n resolve(result);\n }, function (error) {\n // If a rejected Promise was yielded, throw the rejection back\n // into the async generator function so it can be handled there.\n return invoke(\"throw\", error, resolve, reject);\n });\n }\n }\n\n var previousPromise;\n\n function enqueue(method, arg) {\n function callInvokeWithMethodAndArg() {\n return new PromiseImpl(function (resolve, reject) {\n invoke(method, arg, resolve, reject);\n });\n }\n\n return previousPromise = // If enqueue has been called before, then we want to wait until\n // all previous Promises have been resolved before calling invoke,\n // so that results are always delivered in the correct order. If\n // enqueue has not been called before, then it is important to\n // call invoke immediately, without waiting on a callback to fire,\n // so that the async generator function has the opportunity to do\n // any necessary setup in a predictable way. This predictability\n // is why the Promise constructor synchronously invokes its\n // executor callback, and why async functions synchronously\n // execute code before the first await. Since we implement simple\n // async functions in terms of async generators, it is especially\n // important to get this right, even though it requires care.\n previousPromise ? previousPromise.then(callInvokeWithMethodAndArg, // Avoid propagating failures to Promises returned by later\n // invocations of the iterator.\n callInvokeWithMethodAndArg) : callInvokeWithMethodAndArg();\n } // Define the unified helper method that is used to implement .next,\n // .throw, and .return (see defineIteratorMethods).\n\n\n this._invoke = enqueue;\n }\n\n defineIteratorMethods(AsyncIterator.prototype);\n\n AsyncIterator.prototype[asyncIteratorSymbol] = function () {\n return this;\n };\n\n exports.AsyncIterator = AsyncIterator; // Note that simple async functions are implemented on top of\n // AsyncIterator objects; they just return a Promise for the value of\n // the final result produced by the iterator.\n\n exports.async = function (innerFn, outerFn, self, tryLocsList, PromiseImpl) {\n if (PromiseImpl === void 0) PromiseImpl = Promise;\n var iter = new AsyncIterator(wrap(innerFn, outerFn, self, tryLocsList), PromiseImpl);\n return exports.isGeneratorFunction(outerFn) ? iter // If outerFn is a generator, return the full iterator.\n : iter.next().then(function (result) {\n return result.done ? result.value : iter.next();\n });\n };\n\n function makeInvokeMethod(innerFn, self, context) {\n var state = GenStateSuspendedStart;\n return function invoke(method, arg) {\n if (state === GenStateExecuting) {\n throw new Error(\"Generator is already running\");\n }\n\n if (state === GenStateCompleted) {\n if (method === \"throw\") {\n throw arg;\n } // Be forgiving, per 25.3.3.3.3 of the spec:\n // https://people.mozilla.org/~jorendorff/es6-draft.html#sec-generatorresume\n\n\n return doneResult();\n }\n\n context.method = method;\n context.arg = arg;\n\n while (true) {\n var delegate = context.delegate;\n\n if (delegate) {\n var delegateResult = maybeInvokeDelegate(delegate, context);\n\n if (delegateResult) {\n if (delegateResult === ContinueSentinel) continue;\n return delegateResult;\n }\n }\n\n if (context.method === \"next\") {\n // Setting context._sent for legacy support of Babel's\n // function.sent implementation.\n context.sent = context._sent = context.arg;\n } else if (context.method === \"throw\") {\n if (state === GenStateSuspendedStart) {\n state = GenStateCompleted;\n throw context.arg;\n }\n\n context.dispatchException(context.arg);\n } else if (context.method === \"return\") {\n context.abrupt(\"return\", context.arg);\n }\n\n state = GenStateExecuting;\n var record = tryCatch(innerFn, self, context);\n\n if (record.type === \"normal\") {\n // If an exception is thrown from innerFn, we leave state ===\n // GenStateExecuting and loop back for another invocation.\n state = context.done ? GenStateCompleted : GenStateSuspendedYield;\n\n if (record.arg === ContinueSentinel) {\n continue;\n }\n\n return {\n value: record.arg,\n done: context.done\n };\n } else if (record.type === \"throw\") {\n state = GenStateCompleted; // Dispatch the exception by looping back around to the\n // context.dispatchException(context.arg) call above.\n\n context.method = \"throw\";\n context.arg = record.arg;\n }\n }\n };\n } // Call delegate.iterator[context.method](context.arg) and handle the\n // result, either by returning a { value, done } result from the\n // delegate iterator, or by modifying context.method and context.arg,\n // setting context.delegate to null, and returning the ContinueSentinel.\n\n\n function maybeInvokeDelegate(delegate, context) {\n var method = delegate.iterator[context.method];\n\n if (method === undefined) {\n // A .throw or .return when the delegate iterator has no .throw\n // method always terminates the yield* loop.\n context.delegate = null;\n\n if (context.method === \"throw\") {\n // Note: [\"return\"] must be used for ES3 parsing compatibility.\n if (delegate.iterator[\"return\"]) {\n // If the delegate iterator has a return method, give it a\n // chance to clean up.\n context.method = \"return\";\n context.arg = undefined;\n maybeInvokeDelegate(delegate, context);\n\n if (context.method === \"throw\") {\n // If maybeInvokeDelegate(context) changed context.method from\n // \"return\" to \"throw\", let that override the TypeError below.\n return ContinueSentinel;\n }\n }\n\n context.method = \"throw\";\n context.arg = new TypeError(\"The iterator does not provide a 'throw' method\");\n }\n\n return ContinueSentinel;\n }\n\n var record = tryCatch(method, delegate.iterator, context.arg);\n\n if (record.type === \"throw\") {\n context.method = \"throw\";\n context.arg = record.arg;\n context.delegate = null;\n return ContinueSentinel;\n }\n\n var info = record.arg;\n\n if (!info) {\n context.method = \"throw\";\n context.arg = new TypeError(\"iterator result is not an object\");\n context.delegate = null;\n return ContinueSentinel;\n }\n\n if (info.done) {\n // Assign the result of the finished delegate to the temporary\n // variable specified by delegate.resultName (see delegateYield).\n context[delegate.resultName] = info.value; // Resume execution at the desired location (see delegateYield).\n\n context.next = delegate.nextLoc; // If context.method was \"throw\" but the delegate handled the\n // exception, let the outer generator proceed normally. If\n // context.method was \"next\", forget context.arg since it has been\n // \"consumed\" by the delegate iterator. If context.method was\n // \"return\", allow the original .return call to continue in the\n // outer generator.\n\n if (context.method !== \"return\") {\n context.method = \"next\";\n context.arg = undefined;\n }\n } else {\n // Re-yield the result returned by the delegate method.\n return info;\n } // The delegate iterator is finished, so forget it and continue with\n // the outer generator.\n\n\n context.delegate = null;\n return ContinueSentinel;\n } // Define Generator.prototype.{next,throw,return} in terms of the\n // unified ._invoke helper method.\n\n\n defineIteratorMethods(Gp);\n define(Gp, toStringTagSymbol, \"Generator\"); // A Generator should always return itself as the iterator object when the\n // @@iterator function is called on it. Some browsers' implementations of the\n // iterator prototype chain incorrectly implement this, causing the Generator\n // object to not be returned from this call. This ensures that doesn't happen.\n // See https://github.com/facebook/regenerator/issues/274 for more details.\n\n Gp[iteratorSymbol] = function () {\n return this;\n };\n\n Gp.toString = function () {\n return \"[object Generator]\";\n };\n\n function pushTryEntry(locs) {\n var entry = {\n tryLoc: locs[0]\n };\n\n if (1 in locs) {\n entry.catchLoc = locs[1];\n }\n\n if (2 in locs) {\n entry.finallyLoc = locs[2];\n entry.afterLoc = locs[3];\n }\n\n this.tryEntries.push(entry);\n }\n\n function resetTryEntry(entry) {\n var record = entry.completion || {};\n record.type = \"normal\";\n delete record.arg;\n entry.completion = record;\n }\n\n function Context(tryLocsList) {\n // The root entry object (effectively a try statement without a catch\n // or a finally block) gives us a place to store values thrown from\n // locations where there is no enclosing try statement.\n this.tryEntries = [{\n tryLoc: \"root\"\n }];\n tryLocsList.forEach(pushTryEntry, this);\n this.reset(true);\n }\n\n exports.keys = function (object) {\n var keys = [];\n\n for (var key in object) {\n keys.push(key);\n }\n\n keys.reverse(); // Rather than returning an object with a next method, we keep\n // things simple and return the next function itself.\n\n return function next() {\n while (keys.length) {\n var key = keys.pop();\n\n if (key in object) {\n next.value = key;\n next.done = false;\n return next;\n }\n } // To avoid creating an additional object, we just hang the .value\n // and .done properties off the next function object itself. This\n // also ensures that the minifier will not anonymize the function.\n\n\n next.done = true;\n return next;\n };\n };\n\n function values(iterable) {\n if (iterable) {\n var iteratorMethod = iterable[iteratorSymbol];\n\n if (iteratorMethod) {\n return iteratorMethod.call(iterable);\n }\n\n if (typeof iterable.next === \"function\") {\n return iterable;\n }\n\n if (!isNaN(iterable.length)) {\n var i = -1,\n next = function next() {\n while (++i < iterable.length) {\n if (hasOwn.call(iterable, i)) {\n next.value = iterable[i];\n next.done = false;\n return next;\n }\n }\n\n next.value = undefined;\n next.done = true;\n return next;\n };\n\n return next.next = next;\n }\n } // Return an iterator with no values.\n\n\n return {\n next: doneResult\n };\n }\n\n exports.values = values;\n\n function doneResult() {\n return {\n value: undefined,\n done: true\n };\n }\n\n Context.prototype = {\n constructor: Context,\n reset: function reset(skipTempReset) {\n this.prev = 0;\n this.next = 0; // Resetting context._sent for legacy support of Babel's\n // function.sent implementation.\n\n this.sent = this._sent = undefined;\n this.done = false;\n this.delegate = null;\n this.method = \"next\";\n this.arg = undefined;\n this.tryEntries.forEach(resetTryEntry);\n\n if (!skipTempReset) {\n for (var name in this) {\n // Not sure about the optimal order of these conditions:\n if (name.charAt(0) === \"t\" && hasOwn.call(this, name) && !isNaN(+name.slice(1))) {\n this[name] = undefined;\n }\n }\n }\n },\n stop: function stop() {\n this.done = true;\n var rootEntry = this.tryEntries[0];\n var rootRecord = rootEntry.completion;\n\n if (rootRecord.type === \"throw\") {\n throw rootRecord.arg;\n }\n\n return this.rval;\n },\n dispatchException: function dispatchException(exception) {\n if (this.done) {\n throw exception;\n }\n\n var context = this;\n\n function handle(loc, caught) {\n record.type = \"throw\";\n record.arg = exception;\n context.next = loc;\n\n if (caught) {\n // If the dispatched exception was caught by a catch block,\n // then let that catch block handle the exception normally.\n context.method = \"next\";\n context.arg = undefined;\n }\n\n return !!caught;\n }\n\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n var record = entry.completion;\n\n if (entry.tryLoc === \"root\") {\n // Exception thrown outside of any try block that could handle\n // it, so set the completion value of the entire function to\n // throw the exception.\n return handle(\"end\");\n }\n\n if (entry.tryLoc <= this.prev) {\n var hasCatch = hasOwn.call(entry, \"catchLoc\");\n var hasFinally = hasOwn.call(entry, \"finallyLoc\");\n\n if (hasCatch && hasFinally) {\n if (this.prev < entry.catchLoc) {\n return handle(entry.catchLoc, true);\n } else if (this.prev < entry.finallyLoc) {\n return handle(entry.finallyLoc);\n }\n } else if (hasCatch) {\n if (this.prev < entry.catchLoc) {\n return handle(entry.catchLoc, true);\n }\n } else if (hasFinally) {\n if (this.prev < entry.finallyLoc) {\n return handle(entry.finallyLoc);\n }\n } else {\n throw new Error(\"try statement without catch or finally\");\n }\n }\n }\n },\n abrupt: function abrupt(type, arg) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n\n if (entry.tryLoc <= this.prev && hasOwn.call(entry, \"finallyLoc\") && this.prev < entry.finallyLoc) {\n var finallyEntry = entry;\n break;\n }\n }\n\n if (finallyEntry && (type === \"break\" || type === \"continue\") && finallyEntry.tryLoc <= arg && arg <= finallyEntry.finallyLoc) {\n // Ignore the finally entry if control is not jumping to a\n // location outside the try/catch block.\n finallyEntry = null;\n }\n\n var record = finallyEntry ? finallyEntry.completion : {};\n record.type = type;\n record.arg = arg;\n\n if (finallyEntry) {\n this.method = \"next\";\n this.next = finallyEntry.finallyLoc;\n return ContinueSentinel;\n }\n\n return this.complete(record);\n },\n complete: function complete(record, afterLoc) {\n if (record.type === \"throw\") {\n throw record.arg;\n }\n\n if (record.type === \"break\" || record.type === \"continue\") {\n this.next = record.arg;\n } else if (record.type === \"return\") {\n this.rval = this.arg = record.arg;\n this.method = \"return\";\n this.next = \"end\";\n } else if (record.type === \"normal\" && afterLoc) {\n this.next = afterLoc;\n }\n\n return ContinueSentinel;\n },\n finish: function finish(finallyLoc) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n\n if (entry.finallyLoc === finallyLoc) {\n this.complete(entry.completion, entry.afterLoc);\n resetTryEntry(entry);\n return ContinueSentinel;\n }\n }\n },\n \"catch\": function _catch(tryLoc) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n\n if (entry.tryLoc === tryLoc) {\n var record = entry.completion;\n\n if (record.type === \"throw\") {\n var thrown = record.arg;\n resetTryEntry(entry);\n }\n\n return thrown;\n }\n } // The context.catch method must only be called with a location\n // argument that corresponds to a known catch block.\n\n\n throw new Error(\"illegal catch attempt\");\n },\n delegateYield: function delegateYield(iterable, resultName, nextLoc) {\n this.delegate = {\n iterator: values(iterable),\n resultName: resultName,\n nextLoc: nextLoc\n };\n\n if (this.method === \"next\") {\n // Deliberately forget the last sent value so that we don't\n // accidentally pass it on to the delegate.\n this.arg = undefined;\n }\n\n return ContinueSentinel;\n }\n }; // Regardless of whether this script is executing as a CommonJS module\n // or not, return the runtime object so that we can declare the variable\n // regeneratorRuntime in the outer scope, which allows this module to be\n // injected easily by `bin/regenerator --include-runtime script.js`.\n\n return exports;\n}( // If this script is executing as a CommonJS module, use module.exports\n// as the regeneratorRuntime namespace. Otherwise create a new empty\n// object. Either way, the resulting object will be used to initialize\n// the regeneratorRuntime variable at the top of this file.\ntypeof module === \"object\" ? module.exports : {});\n\ntry {\n regeneratorRuntime = runtime;\n} catch (accidentalStrictMode) {\n // This module should not be running in strict mode, so the above\n // assignment should always work unless something is misconfigured. Just\n // in case runtime.js accidentally runs in strict mode, we can escape\n // strict mode using a global Function call. This could conceivably fail\n // if a Content Security Policy forbids using Function, but in that case\n // the proper solution is to fix the accidental strict mode problem. If\n // you've misconfigured your bundler to force strict mode and applied a\n // CSP to forbid Function, and you're not willing to fix either of those\n // problems, please detail your unique predicament in a GitHub issue.\n Function(\"r\", \"regeneratorRuntime = r\")(runtime);\n}","export default function _arrayLikeToArray(arr, len) {\n if (len == null || len > arr.length) len = arr.length;\n\n for (var i = 0, arr2 = new Array(len); i < len; i++) {\n arr2[i] = arr[i];\n }\n\n return arr2;\n}","import arrayLikeToArray from \"@babel/runtime/helpers/esm/arrayLikeToArray\";\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}","import arrayWithoutHoles from \"@babel/runtime/helpers/esm/arrayWithoutHoles\";\nimport iterableToArray from \"@babel/runtime/helpers/esm/iterableToArray\";\nimport unsupportedIterableToArray from \"@babel/runtime/helpers/esm/unsupportedIterableToArray\";\nimport nonIterableSpread from \"@babel/runtime/helpers/esm/nonIterableSpread\";\nexport default function _toConsumableArray(arr) {\n return arrayWithoutHoles(arr) || iterableToArray(arr) || unsupportedIterableToArray(arr) || nonIterableSpread();\n}","import arrayLikeToArray from \"@babel/runtime/helpers/esm/arrayLikeToArray\";\nexport default function _arrayWithoutHoles(arr) {\n if (Array.isArray(arr)) return arrayLikeToArray(arr);\n}","export default function _iterableToArray(iter) {\n if (typeof Symbol !== \"undefined\" && Symbol.iterator in Object(iter)) return Array.from(iter);\n}","export default function _nonIterableSpread() {\n throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}","import _toConsumableArray from \"/home/runner/work/shlink-web-client/shlink-web-client/node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/toConsumableArray\";\n\n/*\n Copyright 2019 Google LLC\n Use of this source code is governed by an MIT-style\n license that can be found in the LICENSE file or at\n https://opensource.org/licenses/MIT.\n*/\nimport '../_version.js';\nvar logger = process.env.NODE_ENV === 'production' ? null : function () {\n // Don't overwrite this value if it's already set.\n // See https://github.com/GoogleChrome/workbox/pull/2284#issuecomment-560470923\n if (!('__WB_DISABLE_DEV_LOGS' in self)) {\n self.__WB_DISABLE_DEV_LOGS = false;\n }\n\n var inGroup = false;\n var methodToColorMap = {\n debug: \"#7f8c8d\",\n log: \"#2ecc71\",\n warn: \"#f39c12\",\n error: \"#c0392b\",\n groupCollapsed: \"#3498db\",\n groupEnd: null\n };\n\n var print = function print(method, args) {\n var _console2;\n\n if (self.__WB_DISABLE_DEV_LOGS) {\n return;\n }\n\n if (method === 'groupCollapsed') {\n // Safari doesn't print all console.groupCollapsed() arguments:\n // https://bugs.webkit.org/show_bug.cgi?id=182754\n if (/^((?!chrome|android).)*safari/i.test(navigator.userAgent)) {\n var _console;\n\n (_console = console)[method].apply(_console, _toConsumableArray(args));\n\n return;\n }\n }\n\n var styles = [\"background: \".concat(methodToColorMap[method]), \"border-radius: 0.5em\", \"color: white\", \"font-weight: bold\", \"padding: 2px 0.5em\"]; // When in a group, the workbox prefix is not displayed.\n\n var logPrefix = inGroup ? [] : ['%cworkbox', styles.join(';')];\n\n (_console2 = console)[method].apply(_console2, logPrefix.concat(_toConsumableArray(args)));\n\n if (method === 'groupCollapsed') {\n inGroup = true;\n }\n\n if (method === 'groupEnd') {\n inGroup = false;\n }\n };\n\n var api = {};\n var loggerMethods = Object.keys(methodToColorMap);\n\n var _loop = function _loop() {\n var key = _loggerMethods[_i];\n var method = key;\n\n api[method] = function () {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n print(method, args);\n };\n };\n\n for (var _i = 0, _loggerMethods = loggerMethods; _i < _loggerMethods.length; _i++) {\n _loop();\n }\n\n return api;\n}();\nexport { logger };","import unsupportedIterableToArray from \"@babel/runtime/helpers/esm/unsupportedIterableToArray\";\nexport default function _createForOfIteratorHelper(o, allowArrayLike) {\n var it;\n\n if (typeof Symbol === \"undefined\" || o[Symbol.iterator] == null) {\n if (Array.isArray(o) || (it = unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === \"number\") {\n if (it) o = it;\n var i = 0;\n\n var F = function F() {};\n\n return {\n s: F,\n n: function n() {\n if (i >= o.length) return {\n done: true\n };\n return {\n done: false,\n value: o[i++]\n };\n },\n e: function e(_e) {\n throw _e;\n },\n f: F\n };\n }\n\n throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n }\n\n var normalCompletion = true,\n didErr = false,\n err;\n return {\n s: function s() {\n it = o[Symbol.iterator]();\n },\n n: function n() {\n var step = it.next();\n normalCompletion = step.done;\n return step;\n },\n e: function e(_e2) {\n didErr = true;\n err = _e2;\n },\n f: function f() {\n try {\n if (!normalCompletion && it[\"return\"] != null) it[\"return\"]();\n } finally {\n if (didErr) throw err;\n }\n }\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}","export default function _setPrototypeOf(o, p) {\n _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) {\n o.__proto__ = p;\n return o;\n };\n\n return _setPrototypeOf(o, p);\n}","import setPrototypeOf from \"@babel/runtime/helpers/esm/setPrototypeOf\";\nexport default function _inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function\");\n }\n\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n writable: true,\n configurable: true\n }\n });\n if (superClass) setPrototypeOf(subClass, superClass);\n}","export default function _getPrototypeOf(o) {\n _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) {\n return o.__proto__ || Object.getPrototypeOf(o);\n };\n return _getPrototypeOf(o);\n}","export default function _isNativeReflectConstruct() {\n if (typeof Reflect === \"undefined\" || !Reflect.construct) return false;\n if (Reflect.construct.sham) return false;\n if (typeof Proxy === \"function\") return true;\n\n try {\n Date.prototype.toString.call(Reflect.construct(Date, [], function () {}));\n return true;\n } catch (e) {\n return false;\n }\n}","export default function _typeof(obj) {\n \"@babel/helpers - typeof\";\n\n if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") {\n _typeof = function _typeof(obj) {\n return typeof obj;\n };\n } else {\n _typeof = function _typeof(obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n };\n }\n\n return _typeof(obj);\n}","import _typeof from \"@babel/runtime/helpers/esm/typeof\";\nimport assertThisInitialized from \"@babel/runtime/helpers/esm/assertThisInitialized\";\nexport default function _possibleConstructorReturn(self, call) {\n if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) {\n return call;\n }\n\n return assertThisInitialized(self);\n}","export default function _assertThisInitialized(self) {\n if (self === void 0) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return self;\n}","import getPrototypeOf from \"@babel/runtime/helpers/esm/getPrototypeOf\";\nimport isNativeReflectConstruct from \"@babel/runtime/helpers/esm/isNativeReflectConstruct\";\nimport possibleConstructorReturn from \"@babel/runtime/helpers/esm/possibleConstructorReturn\";\nexport default function _createSuper(Derived) {\n var hasNativeReflectConstruct = isNativeReflectConstruct();\n return function _createSuperInternal() {\n var Super = getPrototypeOf(Derived),\n result;\n\n if (hasNativeReflectConstruct) {\n var NewTarget = getPrototypeOf(this).constructor;\n result = Reflect.construct(Super, arguments, NewTarget);\n } else {\n result = Super.apply(this, arguments);\n }\n\n return possibleConstructorReturn(this, result);\n };\n}","import setPrototypeOf from \"@babel/runtime/helpers/esm/setPrototypeOf\";\nimport isNativeReflectConstruct from \"@babel/runtime/helpers/esm/isNativeReflectConstruct\";\nexport default function _construct(Parent, args, Class) {\n if (isNativeReflectConstruct()) {\n _construct = Reflect.construct;\n } else {\n _construct = function _construct(Parent, args, Class) {\n var a = [null];\n a.push.apply(a, args);\n var Constructor = Function.bind.apply(Parent, a);\n var instance = new Constructor();\n if (Class) setPrototypeOf(instance, Class.prototype);\n return instance;\n };\n }\n\n return _construct.apply(null, arguments);\n}","import getPrototypeOf from \"@babel/runtime/helpers/esm/getPrototypeOf\";\nimport setPrototypeOf from \"@babel/runtime/helpers/esm/setPrototypeOf\";\nimport isNativeFunction from \"@babel/runtime/helpers/esm/isNativeFunction\";\nimport construct from \"@babel/runtime/helpers/esm/construct\";\nexport default function _wrapNativeSuper(Class) {\n var _cache = typeof Map === \"function\" ? new Map() : undefined;\n\n _wrapNativeSuper = function _wrapNativeSuper(Class) {\n if (Class === null || !isNativeFunction(Class)) return Class;\n\n if (typeof Class !== \"function\") {\n throw new TypeError(\"Super expression must either be null or a function\");\n }\n\n if (typeof _cache !== \"undefined\") {\n if (_cache.has(Class)) return _cache.get(Class);\n\n _cache.set(Class, Wrapper);\n }\n\n function Wrapper() {\n return construct(Class, arguments, getPrototypeOf(this).constructor);\n }\n\n Wrapper.prototype = Object.create(Class.prototype, {\n constructor: {\n value: Wrapper,\n enumerable: false,\n writable: true,\n configurable: true\n }\n });\n return setPrototypeOf(Wrapper, Class);\n };\n\n return _wrapNativeSuper(Class);\n}","export default function _isNativeFunction(fn) {\n return Function.toString.call(fn).indexOf(\"[native code]\") !== -1;\n}","/*\n Copyright 2018 Google LLC\n\n Use of this source code is governed by an MIT-style\n license that can be found in the LICENSE file or at\n https://opensource.org/licenses/MIT.\n*/\nimport '../../_version.js';\nexport var messages = {\n 'invalid-value': function invalidValue(_ref) {\n var paramName = _ref.paramName,\n validValueDescription = _ref.validValueDescription,\n value = _ref.value;\n\n if (!paramName || !validValueDescription) {\n throw new Error(\"Unexpected input to 'invalid-value' error.\");\n }\n\n return \"The '\".concat(paramName, \"' parameter was given a value with an \") + \"unexpected value. \".concat(validValueDescription, \" Received a value of \") + \"\".concat(JSON.stringify(value), \".\");\n },\n 'not-an-array': function notAnArray(_ref2) {\n var moduleName = _ref2.moduleName,\n className = _ref2.className,\n funcName = _ref2.funcName,\n paramName = _ref2.paramName;\n\n if (!moduleName || !className || !funcName || !paramName) {\n throw new Error(\"Unexpected input to 'not-an-array' error.\");\n }\n\n return \"The parameter '\".concat(paramName, \"' passed into \") + \"'\".concat(moduleName, \".\").concat(className, \".\").concat(funcName, \"()' must be an array.\");\n },\n 'incorrect-type': function incorrectType(_ref3) {\n var expectedType = _ref3.expectedType,\n paramName = _ref3.paramName,\n moduleName = _ref3.moduleName,\n className = _ref3.className,\n funcName = _ref3.funcName;\n\n if (!expectedType || !paramName || !moduleName || !funcName) {\n throw new Error(\"Unexpected input to 'incorrect-type' error.\");\n }\n\n return \"The parameter '\".concat(paramName, \"' passed into \") + \"'\".concat(moduleName, \".\").concat(className ? className + '.' : '') + \"\".concat(funcName, \"()' must be of type \").concat(expectedType, \".\");\n },\n 'incorrect-class': function incorrectClass(_ref4) {\n var expectedClass = _ref4.expectedClass,\n paramName = _ref4.paramName,\n moduleName = _ref4.moduleName,\n className = _ref4.className,\n funcName = _ref4.funcName,\n isReturnValueProblem = _ref4.isReturnValueProblem;\n\n if (!expectedClass || !moduleName || !funcName) {\n throw new Error(\"Unexpected input to 'incorrect-class' error.\");\n }\n\n if (isReturnValueProblem) {\n return \"The return value from \" + \"'\".concat(moduleName, \".\").concat(className ? className + '.' : '').concat(funcName, \"()' \") + \"must be an instance of class \".concat(expectedClass.name, \".\");\n }\n\n return \"The parameter '\".concat(paramName, \"' passed into \") + \"'\".concat(moduleName, \".\").concat(className ? className + '.' : '').concat(funcName, \"()' \") + \"must be an instance of class \".concat(expectedClass.name, \".\");\n },\n 'missing-a-method': function missingAMethod(_ref5) {\n var expectedMethod = _ref5.expectedMethod,\n paramName = _ref5.paramName,\n moduleName = _ref5.moduleName,\n className = _ref5.className,\n funcName = _ref5.funcName;\n\n if (!expectedMethod || !paramName || !moduleName || !className || !funcName) {\n throw new Error(\"Unexpected input to 'missing-a-method' error.\");\n }\n\n return \"\".concat(moduleName, \".\").concat(className, \".\").concat(funcName, \"() expected the \") + \"'\".concat(paramName, \"' parameter to expose a '\").concat(expectedMethod, \"' method.\");\n },\n 'add-to-cache-list-unexpected-type': function addToCacheListUnexpectedType(_ref6) {\n var entry = _ref6.entry;\n return \"An unexpected entry was passed to \" + \"'workbox-precaching.PrecacheController.addToCacheList()' The entry \" + \"'\".concat(JSON.stringify(entry), \"' isn't supported. You must supply an array of \") + \"strings with one or more characters, objects with a url property or \" + \"Request objects.\";\n },\n 'add-to-cache-list-conflicting-entries': function addToCacheListConflictingEntries(_ref7) {\n var firstEntry = _ref7.firstEntry,\n secondEntry = _ref7.secondEntry;\n\n if (!firstEntry || !secondEntry) {\n throw new Error(\"Unexpected input to \" + \"'add-to-cache-list-duplicate-entries' error.\");\n }\n\n return \"Two of the entries passed to \" + \"'workbox-precaching.PrecacheController.addToCacheList()' had the URL \" + \"\".concat(firstEntry._entryId, \" but different revision details. Workbox is \") + \"unable to cache and version the asset correctly. Please remove one \" + \"of the entries.\";\n },\n 'plugin-error-request-will-fetch': function pluginErrorRequestWillFetch(_ref8) {\n var thrownError = _ref8.thrownError;\n\n if (!thrownError) {\n throw new Error(\"Unexpected input to \" + \"'plugin-error-request-will-fetch', error.\");\n }\n\n return \"An error was thrown by a plugins 'requestWillFetch()' method. \" + \"The thrown error message was: '\".concat(thrownError.message, \"'.\");\n },\n 'invalid-cache-name': function invalidCacheName(_ref9) {\n var cacheNameId = _ref9.cacheNameId,\n value = _ref9.value;\n\n if (!cacheNameId) {\n throw new Error(\"Expected a 'cacheNameId' for error 'invalid-cache-name'\");\n }\n\n return \"You must provide a name containing at least one character for \" + \"setCacheDetails({\".concat(cacheNameId, \": '...'}). Received a value of \") + \"'\".concat(JSON.stringify(value), \"'\");\n },\n 'unregister-route-but-not-found-with-method': function unregisterRouteButNotFoundWithMethod(_ref10) {\n var method = _ref10.method;\n\n if (!method) {\n throw new Error(\"Unexpected input to \" + \"'unregister-route-but-not-found-with-method' error.\");\n }\n\n return \"The route you're trying to unregister was not previously \" + \"registered for the method type '\".concat(method, \"'.\");\n },\n 'unregister-route-route-not-registered': function unregisterRouteRouteNotRegistered() {\n return \"The route you're trying to unregister was not previously \" + \"registered.\";\n },\n 'queue-replay-failed': function queueReplayFailed(_ref11) {\n var name = _ref11.name;\n return \"Replaying the background sync queue '\".concat(name, \"' failed.\");\n },\n 'duplicate-queue-name': function duplicateQueueName(_ref12) {\n var name = _ref12.name;\n return \"The Queue name '\".concat(name, \"' is already being used. \") + \"All instances of backgroundSync.Queue must be given unique names.\";\n },\n 'expired-test-without-max-age': function expiredTestWithoutMaxAge(_ref13) {\n var methodName = _ref13.methodName,\n paramName = _ref13.paramName;\n return \"The '\".concat(methodName, \"()' method can only be used when the \") + \"'\".concat(paramName, \"' is used in the constructor.\");\n },\n 'unsupported-route-type': function unsupportedRouteType(_ref14) {\n var moduleName = _ref14.moduleName,\n className = _ref14.className,\n funcName = _ref14.funcName,\n paramName = _ref14.paramName;\n return \"The supplied '\".concat(paramName, \"' parameter was an unsupported type. \") + \"Please check the docs for \".concat(moduleName, \".\").concat(className, \".\").concat(funcName, \" for \") + \"valid input types.\";\n },\n 'not-array-of-class': function notArrayOfClass(_ref15) {\n var value = _ref15.value,\n expectedClass = _ref15.expectedClass,\n moduleName = _ref15.moduleName,\n className = _ref15.className,\n funcName = _ref15.funcName,\n paramName = _ref15.paramName;\n return \"The supplied '\".concat(paramName, \"' parameter must be an array of \") + \"'\".concat(expectedClass, \"' objects. Received '\").concat(JSON.stringify(value), \",'. \") + \"Please check the call to \".concat(moduleName, \".\").concat(className, \".\").concat(funcName, \"() \") + \"to fix the issue.\";\n },\n 'max-entries-or-age-required': function maxEntriesOrAgeRequired(_ref16) {\n var moduleName = _ref16.moduleName,\n className = _ref16.className,\n funcName = _ref16.funcName;\n return \"You must define either config.maxEntries or config.maxAgeSeconds\" + \"in \".concat(moduleName, \".\").concat(className, \".\").concat(funcName);\n },\n 'statuses-or-headers-required': function statusesOrHeadersRequired(_ref17) {\n var moduleName = _ref17.moduleName,\n className = _ref17.className,\n funcName = _ref17.funcName;\n return \"You must define either config.statuses or config.headers\" + \"in \".concat(moduleName, \".\").concat(className, \".\").concat(funcName);\n },\n 'invalid-string': function invalidString(_ref18) {\n var moduleName = _ref18.moduleName,\n funcName = _ref18.funcName,\n paramName = _ref18.paramName;\n\n if (!paramName || !moduleName || !funcName) {\n throw new Error(\"Unexpected input to 'invalid-string' error.\");\n }\n\n return \"When using strings, the '\".concat(paramName, \"' parameter must start with \") + \"'http' (for cross-origin matches) or '/' (for same-origin matches). \" + \"Please see the docs for \".concat(moduleName, \".\").concat(funcName, \"() for \") + \"more info.\";\n },\n 'channel-name-required': function channelNameRequired() {\n return \"You must provide a channelName to construct a \" + \"BroadcastCacheUpdate instance.\";\n },\n 'invalid-responses-are-same-args': function invalidResponsesAreSameArgs() {\n return \"The arguments passed into responsesAreSame() appear to be \" + \"invalid. Please ensure valid Responses are used.\";\n },\n 'expire-custom-caches-only': function expireCustomCachesOnly() {\n return \"You must provide a 'cacheName' property when using the \" + \"expiration plugin with a runtime caching strategy.\";\n },\n 'unit-must-be-bytes': function unitMustBeBytes(_ref19) {\n var normalizedRangeHeader = _ref19.normalizedRangeHeader;\n\n if (!normalizedRangeHeader) {\n throw new Error(\"Unexpected input to 'unit-must-be-bytes' error.\");\n }\n\n return \"The 'unit' portion of the Range header must be set to 'bytes'. \" + \"The Range header provided was \\\"\".concat(normalizedRangeHeader, \"\\\"\");\n },\n 'single-range-only': function singleRangeOnly(_ref20) {\n var normalizedRangeHeader = _ref20.normalizedRangeHeader;\n\n if (!normalizedRangeHeader) {\n throw new Error(\"Unexpected input to 'single-range-only' error.\");\n }\n\n return \"Multiple ranges are not supported. Please use a single start \" + \"value, and optional end value. The Range header provided was \" + \"\\\"\".concat(normalizedRangeHeader, \"\\\"\");\n },\n 'invalid-range-values': function invalidRangeValues(_ref21) {\n var normalizedRangeHeader = _ref21.normalizedRangeHeader;\n\n if (!normalizedRangeHeader) {\n throw new Error(\"Unexpected input to 'invalid-range-values' error.\");\n }\n\n return \"The Range header is missing both start and end values. At least \" + \"one of those values is needed. The Range header provided was \" + \"\\\"\".concat(normalizedRangeHeader, \"\\\"\");\n },\n 'no-range-header': function noRangeHeader() {\n return \"No Range header was found in the Request provided.\";\n },\n 'range-not-satisfiable': function rangeNotSatisfiable(_ref22) {\n var size = _ref22.size,\n start = _ref22.start,\n end = _ref22.end;\n return \"The start (\".concat(start, \") and end (\").concat(end, \") values in the Range are \") + \"not satisfiable by the cached response, which is \".concat(size, \" bytes.\");\n },\n 'attempt-to-cache-non-get-request': function attemptToCacheNonGetRequest(_ref23) {\n var url = _ref23.url,\n method = _ref23.method;\n return \"Unable to cache '\".concat(url, \"' because it is a '\").concat(method, \"' request and \") + \"only 'GET' requests can be cached.\";\n },\n 'cache-put-with-no-response': function cachePutWithNoResponse(_ref24) {\n var url = _ref24.url;\n return \"There was an attempt to cache '\".concat(url, \"' but the response was not \") + \"defined.\";\n },\n 'no-response': function noResponse(_ref25) {\n var url = _ref25.url,\n error = _ref25.error;\n var message = \"The strategy could not generate a response for '\".concat(url, \"'.\");\n\n if (error) {\n message += \" The underlying error is \".concat(error, \".\");\n }\n\n return message;\n },\n 'bad-precaching-response': function badPrecachingResponse(_ref26) {\n var url = _ref26.url,\n status = _ref26.status;\n return \"The precaching request for '\".concat(url, \"' failed\") + (status ? \" with an HTTP status of \".concat(status, \".\") : \".\");\n },\n 'non-precached-url': function nonPrecachedUrl(_ref27) {\n var url = _ref27.url;\n return \"createHandlerBoundToURL('\".concat(url, \"') was called, but that URL is \") + \"not precached. Please pass in a URL that is precached instead.\";\n },\n 'add-to-cache-list-conflicting-integrities': function addToCacheListConflictingIntegrities(_ref28) {\n var url = _ref28.url;\n return \"Two of the entries passed to \" + \"'workbox-precaching.PrecacheController.addToCacheList()' had the URL \" + \"\".concat(url, \" with different integrity values. Please remove one of them.\");\n },\n 'missing-precache-entry': function missingPrecacheEntry(_ref29) {\n var cacheName = _ref29.cacheName,\n url = _ref29.url;\n return \"Unable to find a precached response in \".concat(cacheName, \" for \").concat(url, \".\");\n },\n 'cross-origin-copy-response': function crossOriginCopyResponse(_ref30) {\n var origin = _ref30.origin;\n return \"workbox-core.copyResponse() can only be used with same-origin \" + \"responses. It was passed a response with origin \".concat(origin, \".\");\n }\n};","/*\n Copyright 2018 Google LLC\n\n Use of this source code is governed by an MIT-style\n license that can be found in the LICENSE file or at\n https://opensource.org/licenses/MIT.\n*/\nimport { messages } from './messages.js';\nimport '../../_version.js';\n\nvar fallback = function fallback(code) {\n var msg = code;\n\n for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n args[_key - 1] = arguments[_key];\n }\n\n if (args.length > 0) {\n msg += \" :: \".concat(JSON.stringify(args));\n }\n\n return msg;\n};\n\nvar generatorFunction = function generatorFunction(code) {\n var details = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var message = messages[code];\n\n if (!message) {\n throw new Error(\"Unable to find message for code '\".concat(code, \"'.\"));\n }\n\n return message(details);\n};\n\nexport var messageGenerator = process.env.NODE_ENV === 'production' ? fallback : generatorFunction;","import _classCallCheck from \"/home/runner/work/shlink-web-client/shlink-web-client/node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/classCallCheck\";\nimport _inherits from \"/home/runner/work/shlink-web-client/shlink-web-client/node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/inherits\";\nimport _createSuper from \"/home/runner/work/shlink-web-client/shlink-web-client/node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/createSuper\";\nimport _wrapNativeSuper from \"/home/runner/work/shlink-web-client/shlink-web-client/node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/wrapNativeSuper\";\n\n/*\n Copyright 2018 Google LLC\n\n Use of this source code is governed by an MIT-style\n license that can be found in the LICENSE file or at\n https://opensource.org/licenses/MIT.\n*/\nimport { messageGenerator } from '../models/messages/messageGenerator.js';\nimport '../_version.js';\n/**\n * Workbox errors should be thrown with this class.\n * This allows use to ensure the type easily in tests,\n * helps developers identify errors from workbox\n * easily and allows use to optimise error\n * messages correctly.\n *\n * @private\n */\n\nvar WorkboxError = /*#__PURE__*/function (_Error) {\n _inherits(WorkboxError, _Error);\n\n var _super = _createSuper(WorkboxError);\n\n /**\n *\n * @param {string} errorCode The error code that\n * identifies this particular error.\n * @param {Object=} details Any relevant arguments\n * that will help developers identify issues should\n * be added as a key on the context object.\n */\n function WorkboxError(errorCode, details) {\n var _this;\n\n _classCallCheck(this, WorkboxError);\n\n var message = messageGenerator(errorCode, details);\n _this = _super.call(this, message);\n _this.name = errorCode;\n _this.details = details;\n return _this;\n }\n\n return WorkboxError;\n}( /*#__PURE__*/_wrapNativeSuper(Error));\n\nexport { WorkboxError };","/*\n Copyright 2018 Google LLC\n\n Use of this source code is governed by an MIT-style\n license that can be found in the LICENSE file or at\n https://opensource.org/licenses/MIT.\n*/\nimport '../_version.js'; // Callbacks to be executed whenever there's a quota error.\n\nvar quotaErrorCallbacks = new Set();\nexport { quotaErrorCallbacks };","/*\n Copyright 2019 Google LLC\n\n Use of this source code is governed by an MIT-style\n license that can be found in the LICENSE file or at\n https://opensource.org/licenses/MIT.\n*/\nimport { logger } from './_private/logger.js';\nimport { assert } from './_private/assert.js';\nimport { quotaErrorCallbacks } from './models/quotaErrorCallbacks.js';\nimport './_version.js';\n/**\n * Adds a function to the set of quotaErrorCallbacks that will be executed if\n * there's a quota error.\n *\n * @param {Function} callback\n * @memberof module:workbox-core\n */\n\nfunction registerQuotaErrorCallback(callback) {\n if (process.env.NODE_ENV !== 'production') {\n assert.isType(callback, 'function', {\n moduleName: 'workbox-core',\n funcName: 'register',\n paramName: 'callback'\n });\n }\n\n quotaErrorCallbacks.add(callback);\n\n if (process.env.NODE_ENV !== 'production') {\n logger.log('Registered a callback to respond to quota errors.', callback);\n }\n}\n\nexport { registerQuotaErrorCallback };","/*\n Copyright 2018 Google LLC\n\n Use of this source code is governed by an MIT-style\n license that can be found in the LICENSE file or at\n https://opensource.org/licenses/MIT.\n*/\nimport '../_version.js';\nvar _cacheNameDetails = {\n googleAnalytics: 'googleAnalytics',\n precache: 'precache-v2',\n prefix: 'workbox',\n runtime: 'runtime',\n suffix: typeof registration !== 'undefined' ? registration.scope : ''\n};\n\nvar _createCacheName = function _createCacheName(cacheName) {\n return [_cacheNameDetails.prefix, cacheName, _cacheNameDetails.suffix].filter(function (value) {\n return value && value.length > 0;\n }).join('-');\n};\n\nvar eachCacheNameDetail = function eachCacheNameDetail(fn) {\n for (var _i = 0, _Object$keys = Object.keys(_cacheNameDetails); _i < _Object$keys.length; _i++) {\n var key = _Object$keys[_i];\n fn(key);\n }\n};\n\nexport var cacheNames = {\n updateDetails: function updateDetails(details) {\n eachCacheNameDetail(function (key) {\n if (typeof details[key] === 'string') {\n _cacheNameDetails[key] = details[key];\n }\n });\n },\n getGoogleAnalyticsName: function getGoogleAnalyticsName(userCacheName) {\n return userCacheName || _createCacheName(_cacheNameDetails.googleAnalytics);\n },\n getPrecacheName: function getPrecacheName(userCacheName) {\n return userCacheName || _createCacheName(_cacheNameDetails.precache);\n },\n getPrefix: function getPrefix() {\n return _cacheNameDetails.prefix;\n },\n getRuntimeName: function getRuntimeName(userCacheName) {\n return userCacheName || _createCacheName(_cacheNameDetails.runtime);\n },\n getSuffix: function getSuffix() {\n return _cacheNameDetails.suffix;\n }\n};","/*\n Copyright 2019 Google LLC\n\n Use of this source code is governed by an MIT-style\n license that can be found in the LICENSE file or at\n https://opensource.org/licenses/MIT.\n*/\nimport '../_version.js';\nvar supportStatus;\n/**\n * A utility function that determines whether the current browser supports\n * constructing a new `Response` from a `response.body` stream.\n *\n * @return {boolean} `true`, if the current browser can successfully\n * construct a `Response` from a `response.body` stream, `false` otherwise.\n *\n * @private\n */\n\nfunction canConstructResponseFromBodyStream() {\n if (supportStatus === undefined) {\n var testResponse = new Response('');\n\n if ('body' in testResponse) {\n try {\n new Response(testResponse.body);\n supportStatus = true;\n } catch (error) {\n supportStatus = false;\n }\n }\n\n supportStatus = false;\n }\n\n return supportStatus;\n}\n\nexport { canConstructResponseFromBodyStream };","export default function _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n}","import defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\n\nfunction ownKeys(object, enumerableOnly) {\n var keys = Object.keys(object);\n\n if (Object.getOwnPropertySymbols) {\n var symbols = Object.getOwnPropertySymbols(object);\n if (enumerableOnly) symbols = symbols.filter(function (sym) {\n return Object.getOwnPropertyDescriptor(object, sym).enumerable;\n });\n keys.push.apply(keys, symbols);\n }\n\n return keys;\n}\n\nexport default function _objectSpread2(target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i] != null ? arguments[i] : {};\n\n if (i % 2) {\n ownKeys(Object(source), true).forEach(function (key) {\n defineProperty(target, key, source[key]);\n });\n } else if (Object.getOwnPropertyDescriptors) {\n Object.defineProperties(target, Object.getOwnPropertyDescriptors(source));\n } else {\n ownKeys(Object(source)).forEach(function (key) {\n Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));\n });\n }\n }\n\n return target;\n}","function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) {\n try {\n var info = gen[key](arg);\n var value = info.value;\n } catch (error) {\n reject(error);\n return;\n }\n\n if (info.done) {\n resolve(value);\n } else {\n Promise.resolve(value).then(_next, _throw);\n }\n}\n\nexport default function _asyncToGenerator(fn) {\n return function () {\n var self = this,\n args = arguments;\n return new Promise(function (resolve, reject) {\n var gen = fn.apply(self, args);\n\n function _next(value) {\n asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"next\", value);\n }\n\n function _throw(err) {\n asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"throw\", err);\n }\n\n _next(undefined);\n });\n };\n}","import _regeneratorRuntime from \"/home/runner/work/shlink-web-client/shlink-web-client/node_modules/babel-preset-react-app/node_modules/@babel/runtime/regenerator\";\nimport _objectSpread from \"/home/runner/work/shlink-web-client/shlink-web-client/node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/objectSpread2\";\nimport _asyncToGenerator from \"/home/runner/work/shlink-web-client/shlink-web-client/node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/asyncToGenerator\";\nimport _createForOfIteratorHelper from \"/home/runner/work/shlink-web-client/shlink-web-client/node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/createForOfIteratorHelper\";\n\n/*\n Copyright 2020 Google LLC\n Use of this source code is governed by an MIT-style\n license that can be found in the LICENSE file or at\n https://opensource.org/licenses/MIT.\n*/\nimport '../_version.js';\n\nfunction stripParams(fullURL, ignoreParams) {\n var strippedURL = new URL(fullURL);\n\n var _iterator = _createForOfIteratorHelper(ignoreParams),\n _step;\n\n try {\n for (_iterator.s(); !(_step = _iterator.n()).done;) {\n var param = _step.value;\n strippedURL.searchParams.delete(param);\n }\n } catch (err) {\n _iterator.e(err);\n } finally {\n _iterator.f();\n }\n\n return strippedURL.href;\n}\n/**\n * Matches an item in the cache, ignoring specific URL params. This is similar\n * to the `ignoreSearch` option, but it allows you to ignore just specific\n * params (while continuing to match on the others).\n *\n * @private\n * @param {Cache} cache\n * @param {Request} request\n * @param {Object} matchOptions\n * @param {Array} ignoreParams\n * @return {Promise}\n */\n\n\nfunction cacheMatchIgnoreParams(_x, _x2, _x3, _x4) {\n return _cacheMatchIgnoreParams.apply(this, arguments);\n}\n\nfunction _cacheMatchIgnoreParams() {\n _cacheMatchIgnoreParams = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee(cache, request, ignoreParams, matchOptions) {\n var strippedRequestURL, keysOptions, cacheKeys, _iterator2, _step2, cacheKey, strippedCacheKeyURL;\n\n return _regeneratorRuntime.wrap(function _callee$(_context) {\n while (1) {\n switch (_context.prev = _context.next) {\n case 0:\n strippedRequestURL = stripParams(request.url, ignoreParams); // If the request doesn't include any ignored params, match as normal.\n\n if (!(request.url === strippedRequestURL)) {\n _context.next = 3;\n break;\n }\n\n return _context.abrupt(\"return\", cache.match(request, matchOptions));\n\n case 3:\n // Otherwise, match by comparing keys\n keysOptions = _objectSpread(_objectSpread({}, matchOptions), {}, {\n ignoreSearch: true\n });\n _context.next = 6;\n return cache.keys(request, keysOptions);\n\n case 6:\n cacheKeys = _context.sent;\n _iterator2 = _createForOfIteratorHelper(cacheKeys);\n _context.prev = 8;\n\n _iterator2.s();\n\n case 10:\n if ((_step2 = _iterator2.n()).done) {\n _context.next = 17;\n break;\n }\n\n cacheKey = _step2.value;\n strippedCacheKeyURL = stripParams(cacheKey.url, ignoreParams);\n\n if (!(strippedRequestURL === strippedCacheKeyURL)) {\n _context.next = 15;\n break;\n }\n\n return _context.abrupt(\"return\", cache.match(cacheKey, matchOptions));\n\n case 15:\n _context.next = 10;\n break;\n\n case 17:\n _context.next = 22;\n break;\n\n case 19:\n _context.prev = 19;\n _context.t0 = _context[\"catch\"](8);\n\n _iterator2.e(_context.t0);\n\n case 22:\n _context.prev = 22;\n\n _iterator2.f();\n\n return _context.finish(22);\n\n case 25:\n return _context.abrupt(\"return\");\n\n case 26:\n case \"end\":\n return _context.stop();\n }\n }\n }, _callee, null, [[8, 19, 22, 25]]);\n }));\n return _cacheMatchIgnoreParams.apply(this, arguments);\n}\n\nexport { cacheMatchIgnoreParams };","/*\n Copyright 2019 Google LLC\n Use of this source code is governed by an MIT-style\n license that can be found in the LICENSE file or at\n https://opensource.org/licenses/MIT.\n*/\nimport '../_version.js';\n/**\n * A helper function that prevents a promise from being flagged as unused.\n *\n * @private\n **/\n\nexport function dontWaitFor(promise) {\n // Effective no-op.\n promise.then(function () {});\n}","import arrayWithHoles from \"@babel/runtime/helpers/esm/arrayWithHoles\";\nimport iterableToArrayLimit from \"@babel/runtime/helpers/esm/iterableToArrayLimit\";\nimport unsupportedIterableToArray from \"@babel/runtime/helpers/esm/unsupportedIterableToArray\";\nimport nonIterableRest from \"@babel/runtime/helpers/esm/nonIterableRest\";\nexport default function _slicedToArray(arr, i) {\n return arrayWithHoles(arr) || iterableToArrayLimit(arr, i) || unsupportedIterableToArray(arr, i) || nonIterableRest();\n}","export default function _arrayWithHoles(arr) {\n if (Array.isArray(arr)) return arr;\n}","export default function _iterableToArrayLimit(arr, i) {\n if (typeof Symbol === \"undefined\" || !(Symbol.iterator in Object(arr))) return;\n var _arr = [];\n var _n = true;\n var _d = false;\n var _e = undefined;\n\n try {\n for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) {\n _arr.push(_s.value);\n\n if (i && _arr.length === i) break;\n }\n } catch (err) {\n _d = true;\n _e = err;\n } finally {\n try {\n if (!_n && _i[\"return\"] != null) _i[\"return\"]();\n } finally {\n if (_d) throw _e;\n }\n }\n\n return _arr;\n}","export default function _nonIterableRest() {\n throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}","function _defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n}\n\nexport default function _createClass(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties(Constructor, staticProps);\n return Constructor;\n}","import _createForOfIteratorHelper from \"/home/runner/work/shlink-web-client/shlink-web-client/node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/createForOfIteratorHelper\";\nimport _slicedToArray from \"/home/runner/work/shlink-web-client/shlink-web-client/node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/slicedToArray\";\nimport _regeneratorRuntime from \"/home/runner/work/shlink-web-client/shlink-web-client/node_modules/babel-preset-react-app/node_modules/@babel/runtime/regenerator\";\nimport _asyncToGenerator from \"/home/runner/work/shlink-web-client/shlink-web-client/node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/asyncToGenerator\";\nimport _classCallCheck from \"/home/runner/work/shlink-web-client/shlink-web-client/node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/classCallCheck\";\nimport _createClass from \"/home/runner/work/shlink-web-client/shlink-web-client/node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/createClass\";\n\n/*\n Copyright 2018 Google LLC\n\n Use of this source code is governed by an MIT-style\n license that can be found in the LICENSE file or at\n https://opensource.org/licenses/MIT.\n*/\nimport '../_version.js';\n/**\n * A class that wraps common IndexedDB functionality in a promise-based API.\n * It exposes all the underlying power and functionality of IndexedDB, but\n * wraps the most commonly used features in a way that's much simpler to use.\n *\n * @private\n */\n\nexport var DBWrapper = /*#__PURE__*/function () {\n /**\n * @param {string} name\n * @param {number} version\n * @param {Object=} [callback]\n * @param {!Function} [callbacks.onupgradeneeded]\n * @param {!Function} [callbacks.onversionchange] Defaults to\n * DBWrapper.prototype._onversionchange when not specified.\n * @private\n */\n function DBWrapper(name, version) {\n var _this = this;\n\n var _ref = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {},\n onupgradeneeded = _ref.onupgradeneeded,\n onversionchange = _ref.onversionchange;\n\n _classCallCheck(this, DBWrapper);\n\n this._db = null;\n this._name = name;\n this._version = version;\n this._onupgradeneeded = onupgradeneeded;\n\n this._onversionchange = onversionchange || function () {\n return _this.close();\n };\n }\n /**\n * Returns the IDBDatabase instance (not normally needed).\n * @return {IDBDatabase|undefined}\n *\n * @private\n */\n\n\n _createClass(DBWrapper, [{\n key: \"open\",\n\n /**\n * Opens a connected to an IDBDatabase, invokes any onupgradedneeded\n * callback, and added an onversionchange callback to the database.\n *\n * @return {IDBDatabase}\n * @private\n */\n value: function () {\n var _open = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee() {\n var _this2 = this;\n\n return _regeneratorRuntime.wrap(function _callee$(_context) {\n while (1) {\n switch (_context.prev = _context.next) {\n case 0:\n if (!this._db) {\n _context.next = 2;\n break;\n }\n\n return _context.abrupt(\"return\");\n\n case 2:\n _context.next = 4;\n return new Promise(function (resolve, reject) {\n // This flag is flipped to true if the timeout callback runs prior\n // to the request failing or succeeding. Note: we use a timeout instead\n // of an onblocked handler since there are cases where onblocked will\n // never never run. A timeout better handles all possible scenarios:\n // https://github.com/w3c/IndexedDB/issues/223\n var openRequestTimedOut = false;\n setTimeout(function () {\n openRequestTimedOut = true;\n reject(new Error('The open request was blocked and timed out'));\n }, _this2.OPEN_TIMEOUT);\n var openRequest = indexedDB.open(_this2._name, _this2._version);\n\n openRequest.onerror = function () {\n return reject(openRequest.error);\n };\n\n openRequest.onupgradeneeded = function (evt) {\n if (openRequestTimedOut) {\n openRequest.transaction.abort();\n openRequest.result.close();\n } else if (typeof _this2._onupgradeneeded === 'function') {\n _this2._onupgradeneeded(evt);\n }\n };\n\n openRequest.onsuccess = function () {\n var db = openRequest.result;\n\n if (openRequestTimedOut) {\n db.close();\n } else {\n db.onversionchange = _this2._onversionchange.bind(_this2);\n resolve(db);\n }\n };\n });\n\n case 4:\n this._db = _context.sent;\n return _context.abrupt(\"return\", this);\n\n case 6:\n case \"end\":\n return _context.stop();\n }\n }\n }, _callee, this);\n }));\n\n function open() {\n return _open.apply(this, arguments);\n }\n\n return open;\n }()\n /**\n * Polyfills the native `getKey()` method. Note, this is overridden at\n * runtime if the browser supports the native method.\n *\n * @param {string} storeName\n * @param {*} query\n * @return {Array}\n * @private\n */\n\n }, {\n key: \"getKey\",\n value: function () {\n var _getKey = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee2(storeName, query) {\n return _regeneratorRuntime.wrap(function _callee2$(_context2) {\n while (1) {\n switch (_context2.prev = _context2.next) {\n case 0:\n _context2.next = 2;\n return this.getAllKeys(storeName, query, 1);\n\n case 2:\n return _context2.abrupt(\"return\", _context2.sent[0]);\n\n case 3:\n case \"end\":\n return _context2.stop();\n }\n }\n }, _callee2, this);\n }));\n\n function getKey(_x, _x2) {\n return _getKey.apply(this, arguments);\n }\n\n return getKey;\n }()\n /**\n * Polyfills the native `getAll()` method. Note, this is overridden at\n * runtime if the browser supports the native method.\n *\n * @param {string} storeName\n * @param {*} query\n * @param {number} count\n * @return {Array}\n * @private\n */\n\n }, {\n key: \"getAll\",\n value: function () {\n var _getAll = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee3(storeName, query, count) {\n return _regeneratorRuntime.wrap(function _callee3$(_context3) {\n while (1) {\n switch (_context3.prev = _context3.next) {\n case 0:\n _context3.next = 2;\n return this.getAllMatching(storeName, {\n query: query,\n count: count\n });\n\n case 2:\n return _context3.abrupt(\"return\", _context3.sent);\n\n case 3:\n case \"end\":\n return _context3.stop();\n }\n }\n }, _callee3, this);\n }));\n\n function getAll(_x3, _x4, _x5) {\n return _getAll.apply(this, arguments);\n }\n\n return getAll;\n }()\n /**\n * Polyfills the native `getAllKeys()` method. Note, this is overridden at\n * runtime if the browser supports the native method.\n *\n * @param {string} storeName\n * @param {*} query\n * @param {number} count\n * @return {Array}\n * @private\n */\n\n }, {\n key: \"getAllKeys\",\n value: function () {\n var _getAllKeys = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee4(storeName, query, count) {\n var entries;\n return _regeneratorRuntime.wrap(function _callee4$(_context4) {\n while (1) {\n switch (_context4.prev = _context4.next) {\n case 0:\n _context4.next = 2;\n return this.getAllMatching(storeName, {\n query: query,\n count: count,\n includeKeys: true\n });\n\n case 2:\n entries = _context4.sent;\n return _context4.abrupt(\"return\", entries.map(function (entry) {\n return entry.key;\n }));\n\n case 4:\n case \"end\":\n return _context4.stop();\n }\n }\n }, _callee4, this);\n }));\n\n function getAllKeys(_x6, _x7, _x8) {\n return _getAllKeys.apply(this, arguments);\n }\n\n return getAllKeys;\n }()\n /**\n * Supports flexible lookup in an object store by specifying an index,\n * query, direction, and count. This method returns an array of objects\n * with the signature .\n *\n * @param {string} storeName\n * @param {Object} [opts]\n * @param {string} [opts.index] The index to use (if specified).\n * @param {*} [opts.query]\n * @param {IDBCursorDirection} [opts.direction]\n * @param {number} [opts.count] The max number of results to return.\n * @param {boolean} [opts.includeKeys] When true, the structure of the\n * returned objects is changed from an array of values to an array of\n * objects in the form {key, primaryKey, value}.\n * @return {Array}\n * @private\n */\n\n }, {\n key: \"getAllMatching\",\n value: function () {\n var _getAllMatching = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee5(storeName) {\n var _ref2,\n index,\n _ref2$query,\n query,\n _ref2$direction,\n direction,\n count,\n _ref2$includeKeys,\n includeKeys,\n _args5 = arguments;\n\n return _regeneratorRuntime.wrap(function _callee5$(_context5) {\n while (1) {\n switch (_context5.prev = _context5.next) {\n case 0:\n _ref2 = _args5.length > 1 && _args5[1] !== undefined ? _args5[1] : {}, index = _ref2.index, _ref2$query = _ref2.query, query = _ref2$query === void 0 ? null : _ref2$query, _ref2$direction = _ref2.direction, direction = _ref2$direction === void 0 ? 'next' : _ref2$direction, count = _ref2.count, _ref2$includeKeys = _ref2.includeKeys, includeKeys = _ref2$includeKeys === void 0 ? false : _ref2$includeKeys;\n _context5.next = 3;\n return this.transaction([storeName], 'readonly', function (txn, done) {\n var store = txn.objectStore(storeName);\n var target = index ? store.index(index) : store;\n var results = [];\n var request = target.openCursor(query, direction);\n\n request.onsuccess = function () {\n var cursor = request.result;\n\n if (cursor) {\n results.push(includeKeys ? cursor : cursor.value);\n\n if (count && results.length >= count) {\n done(results);\n } else {\n cursor.continue();\n }\n } else {\n done(results);\n }\n };\n });\n\n case 3:\n return _context5.abrupt(\"return\", _context5.sent);\n\n case 4:\n case \"end\":\n return _context5.stop();\n }\n }\n }, _callee5, this);\n }));\n\n function getAllMatching(_x9) {\n return _getAllMatching.apply(this, arguments);\n }\n\n return getAllMatching;\n }()\n /**\n * Accepts a list of stores, a transaction type, and a callback and\n * performs a transaction. A promise is returned that resolves to whatever\n * value the callback chooses. The callback holds all the transaction logic\n * and is invoked with two arguments:\n * 1. The IDBTransaction object\n * 2. A `done` function, that's used to resolve the promise when\n * when the transaction is done, if passed a value, the promise is\n * resolved to that value.\n *\n * @param {Array} storeNames An array of object store names\n * involved in the transaction.\n * @param {string} type Can be `readonly` or `readwrite`.\n * @param {!Function} callback\n * @return {*} The result of the transaction ran by the callback.\n * @private\n */\n\n }, {\n key: \"transaction\",\n value: function () {\n var _transaction = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee6(storeNames, type, callback) {\n var _this3 = this;\n\n return _regeneratorRuntime.wrap(function _callee6$(_context6) {\n while (1) {\n switch (_context6.prev = _context6.next) {\n case 0:\n _context6.next = 2;\n return this.open();\n\n case 2:\n _context6.next = 4;\n return new Promise(function (resolve, reject) {\n var txn = _this3._db.transaction(storeNames, type);\n\n txn.onabort = function () {\n return reject(txn.error);\n };\n\n txn.oncomplete = function () {\n return resolve();\n };\n\n callback(txn, function (value) {\n return resolve(value);\n });\n });\n\n case 4:\n return _context6.abrupt(\"return\", _context6.sent);\n\n case 5:\n case \"end\":\n return _context6.stop();\n }\n }\n }, _callee6, this);\n }));\n\n function transaction(_x10, _x11, _x12) {\n return _transaction.apply(this, arguments);\n }\n\n return transaction;\n }()\n /**\n * Delegates async to a native IDBObjectStore method.\n *\n * @param {string} method The method name.\n * @param {string} storeName The object store name.\n * @param {string} type Can be `readonly` or `readwrite`.\n * @param {...*} args The list of args to pass to the native method.\n * @return {*} The result of the transaction.\n * @private\n */\n\n }, {\n key: \"_call\",\n value: function () {\n var _call2 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee7(method, storeName, type) {\n var _len,\n args,\n _key,\n callback,\n _args7 = arguments;\n\n return _regeneratorRuntime.wrap(function _callee7$(_context7) {\n while (1) {\n switch (_context7.prev = _context7.next) {\n case 0:\n for (_len = _args7.length, args = new Array(_len > 3 ? _len - 3 : 0), _key = 3; _key < _len; _key++) {\n args[_key - 3] = _args7[_key];\n }\n\n callback = function callback(txn, done) {\n var objStore = txn.objectStore(storeName); // TODO(philipwalton): Fix this underlying TS2684 error.\n // @ts-ignore\n\n var request = objStore[method].apply(objStore, args);\n\n request.onsuccess = function () {\n return done(request.result);\n };\n };\n\n _context7.next = 4;\n return this.transaction([storeName], type, callback);\n\n case 4:\n return _context7.abrupt(\"return\", _context7.sent);\n\n case 5:\n case \"end\":\n return _context7.stop();\n }\n }\n }, _callee7, this);\n }));\n\n function _call(_x13, _x14, _x15) {\n return _call2.apply(this, arguments);\n }\n\n return _call;\n }()\n /**\n * Closes the connection opened by `DBWrapper.open()`. Generally this method\n * doesn't need to be called since:\n * 1. It's usually better to keep a connection open since opening\n * a new connection is somewhat slow.\n * 2. Connections are automatically closed when the reference is\n * garbage collected.\n * The primary use case for needing to close a connection is when another\n * reference (typically in another tab) needs to upgrade it and would be\n * blocked by the current, open connection.\n *\n * @private\n */\n\n }, {\n key: \"close\",\n value: function close() {\n if (this._db) {\n this._db.close();\n\n this._db = null;\n }\n }\n }, {\n key: \"db\",\n get: function get() {\n return this._db;\n }\n }]);\n\n return DBWrapper;\n}(); // Exposed on the prototype to let users modify the default timeout on a\n// per-instance or global basis.\n\nDBWrapper.prototype.OPEN_TIMEOUT = 2000; // Wrap native IDBObjectStore methods according to their mode.\n\nvar methodsToWrap = {\n readonly: ['get', 'count', 'getKey', 'getAll', 'getAllKeys'],\n readwrite: ['add', 'put', 'clear', 'delete']\n};\n\nvar _loop = function _loop() {\n var _Object$entries$_i = _slicedToArray(_Object$entries[_i], 2),\n mode = _Object$entries$_i[0],\n methods = _Object$entries$_i[1];\n\n var _iterator = _createForOfIteratorHelper(methods),\n _step;\n\n try {\n var _loop2 = function _loop2() {\n var method = _step.value;\n\n if (method in IDBObjectStore.prototype) {\n // Don't use arrow functions here since we're outside of the class.\n DBWrapper.prototype[method] = /*#__PURE__*/function () {\n var _ref3 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee8(storeName) {\n var _len2,\n args,\n _key2,\n _args8 = arguments;\n\n return _regeneratorRuntime.wrap(function _callee8$(_context8) {\n while (1) {\n switch (_context8.prev = _context8.next) {\n case 0:\n for (_len2 = _args8.length, args = new Array(_len2 > 1 ? _len2 - 1 : 0), _key2 = 1; _key2 < _len2; _key2++) {\n args[_key2 - 1] = _args8[_key2];\n }\n\n _context8.next = 3;\n return this._call.apply(this, [method, storeName, mode].concat(args));\n\n case 3:\n return _context8.abrupt(\"return\", _context8.sent);\n\n case 4:\n case \"end\":\n return _context8.stop();\n }\n }\n }, _callee8, this);\n }));\n\n return function (_x16) {\n return _ref3.apply(this, arguments);\n };\n }();\n }\n };\n\n for (_iterator.s(); !(_step = _iterator.n()).done;) {\n _loop2();\n }\n } catch (err) {\n _iterator.e(err);\n } finally {\n _iterator.f();\n }\n};\n\nfor (var _i = 0, _Object$entries = Object.entries(methodsToWrap); _i < _Object$entries.length; _i++) {\n _loop();\n}","import _classCallCheck from \"/home/runner/work/shlink-web-client/shlink-web-client/node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/classCallCheck\";\n\n/*\n Copyright 2018 Google LLC\n\n Use of this source code is governed by an MIT-style\n license that can be found in the LICENSE file or at\n https://opensource.org/licenses/MIT.\n*/\nimport '../_version.js';\n/**\n * The Deferred class composes Promises in a way that allows for them to be\n * resolved or rejected from outside the constructor. In most cases promises\n * should be used directly, but Deferreds can be necessary when the logic to\n * resolve a promise must be separate.\n *\n * @private\n */\n\nvar Deferred =\n/**\n * Creates a promise and exposes its resolve and reject functions as methods.\n */\nfunction Deferred() {\n var _this = this;\n\n _classCallCheck(this, Deferred);\n\n this.promise = new Promise(function (resolve, reject) {\n _this.resolve = resolve;\n _this.reject = reject;\n });\n};\n\nexport { Deferred };","import _regeneratorRuntime from \"/home/runner/work/shlink-web-client/shlink-web-client/node_modules/babel-preset-react-app/node_modules/@babel/runtime/regenerator\";\nimport _asyncToGenerator from \"/home/runner/work/shlink-web-client/shlink-web-client/node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/asyncToGenerator\";\n\n/*\n Copyright 2018 Google LLC\n\n Use of this source code is governed by an MIT-style\n license that can be found in the LICENSE file or at\n https://opensource.org/licenses/MIT.\n*/\nimport '../_version.js';\n/**\n * Deletes the database.\n * Note: this is exported separately from the DBWrapper module because most\n * usages of IndexedDB in workbox dont need deleting, and this way it can be\n * reused in tests to delete databases without creating DBWrapper instances.\n *\n * @param {string} name The database name.\n * @private\n */\n\nexport var deleteDatabase = /*#__PURE__*/function () {\n var _ref = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee(name) {\n return _regeneratorRuntime.wrap(function _callee$(_context) {\n while (1) {\n switch (_context.prev = _context.next) {\n case 0:\n _context.next = 2;\n return new Promise(function (resolve, reject) {\n var request = indexedDB.deleteDatabase(name);\n\n request.onerror = function () {\n reject(request.error);\n };\n\n request.onblocked = function () {\n reject(new Error('Delete blocked'));\n };\n\n request.onsuccess = function () {\n resolve();\n };\n });\n\n case 2:\n case \"end\":\n return _context.stop();\n }\n }\n }, _callee);\n }));\n\n return function deleteDatabase(_x) {\n return _ref.apply(this, arguments);\n };\n}();","import _regeneratorRuntime from \"/home/runner/work/shlink-web-client/shlink-web-client/node_modules/babel-preset-react-app/node_modules/@babel/runtime/regenerator\";\nimport _createForOfIteratorHelper from \"/home/runner/work/shlink-web-client/shlink-web-client/node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/createForOfIteratorHelper\";\nimport _asyncToGenerator from \"/home/runner/work/shlink-web-client/shlink-web-client/node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/asyncToGenerator\";\n\n/*\n Copyright 2018 Google LLC\n\n Use of this source code is governed by an MIT-style\n license that can be found in the LICENSE file or at\n https://opensource.org/licenses/MIT.\n*/\nimport { logger } from '../_private/logger.js';\nimport { quotaErrorCallbacks } from '../models/quotaErrorCallbacks.js';\nimport '../_version.js';\n/**\n * Runs all of the callback functions, one at a time sequentially, in the order\n * in which they were registered.\n *\n * @memberof module:workbox-core\n * @private\n */\n\nfunction executeQuotaErrorCallbacks() {\n return _executeQuotaErrorCallbacks.apply(this, arguments);\n}\n\nfunction _executeQuotaErrorCallbacks() {\n _executeQuotaErrorCallbacks = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee() {\n var _iterator, _step, callback;\n\n return _regeneratorRuntime.wrap(function _callee$(_context) {\n while (1) {\n switch (_context.prev = _context.next) {\n case 0:\n if (process.env.NODE_ENV !== 'production') {\n logger.log(\"About to run \".concat(quotaErrorCallbacks.size, \" \") + \"callbacks to clean up caches.\");\n }\n\n _iterator = _createForOfIteratorHelper(quotaErrorCallbacks);\n _context.prev = 2;\n\n _iterator.s();\n\n case 4:\n if ((_step = _iterator.n()).done) {\n _context.next = 11;\n break;\n }\n\n callback = _step.value;\n _context.next = 8;\n return callback();\n\n case 8:\n if (process.env.NODE_ENV !== 'production') {\n logger.log(callback, 'is complete.');\n }\n\n case 9:\n _context.next = 4;\n break;\n\n case 11:\n _context.next = 16;\n break;\n\n case 13:\n _context.prev = 13;\n _context.t0 = _context[\"catch\"](2);\n\n _iterator.e(_context.t0);\n\n case 16:\n _context.prev = 16;\n\n _iterator.f();\n\n return _context.finish(16);\n\n case 19:\n if (process.env.NODE_ENV !== 'production') {\n logger.log('Finished running callbacks.');\n }\n\n case 20:\n case \"end\":\n return _context.stop();\n }\n }\n }, _callee, null, [[2, 13, 16, 19]]);\n }));\n return _executeQuotaErrorCallbacks.apply(this, arguments);\n}\n\nexport { executeQuotaErrorCallbacks };","/*\n Copyright 2018 Google LLC\n\n Use of this source code is governed by an MIT-style\n license that can be found in the LICENSE file or at\n https://opensource.org/licenses/MIT.\n*/\nimport '../_version.js';\n\nvar getFriendlyURL = function getFriendlyURL(url) {\n var urlObj = new URL(String(url), location.href); // See https://github.com/GoogleChrome/workbox/issues/2323\n // We want to include everything, except for the origin if it's same-origin.\n\n return urlObj.href.replace(new RegExp(\"^\".concat(location.origin)), '');\n};\n\nexport { getFriendlyURL };","/*\n Copyright 2019 Google LLC\n Use of this source code is governed by an MIT-style\n license that can be found in the LICENSE file or at\n https://opensource.org/licenses/MIT.\n*/\nimport '../_version.js';\n/**\n * Returns a promise that resolves and the passed number of milliseconds.\n * This utility is an async/await-friendly version of `setTimeout`.\n *\n * @param {number} ms\n * @return {Promise}\n * @private\n */\n\nexport function timeout(ms) {\n return new Promise(function (resolve) {\n return setTimeout(resolve, ms);\n });\n}","/*\n Copyright 2020 Google LLC\n Use of this source code is governed by an MIT-style\n license that can be found in the LICENSE file or at\n https://opensource.org/licenses/MIT.\n*/\nimport '../_version.js';\n/**\n * A utility method that makes it easier to use `event.waitUntil` with\n * async functions and return the result.\n *\n * @param {ExtendableEvent} event\n * @param {Function} asyncFn\n * @return {Function}\n * @private\n */\n\nfunction waitUntil(event, asyncFn) {\n var returnPromise = asyncFn();\n event.waitUntil(returnPromise);\n return returnPromise;\n}\n\nexport { waitUntil };","import _regeneratorRuntime from \"/home/runner/work/shlink-web-client/shlink-web-client/node_modules/babel-preset-react-app/node_modules/@babel/runtime/regenerator\";\nimport _asyncToGenerator from \"/home/runner/work/shlink-web-client/shlink-web-client/node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/asyncToGenerator\";\n\n/*\n Copyright 2019 Google LLC\n\n Use of this source code is governed by an MIT-style\n license that can be found in the LICENSE file or at\n https://opensource.org/licenses/MIT.\n*/\nimport { canConstructResponseFromBodyStream } from './_private/canConstructResponseFromBodyStream.js';\nimport { WorkboxError } from './_private/WorkboxError.js';\nimport './_version.js';\n/**\n * Allows developers to copy a response and modify its `headers`, `status`,\n * or `statusText` values (the values settable via a\n * [`ResponseInit`]{@link https://developer.mozilla.org/en-US/docs/Web/API/Response/Response#Syntax}\n * object in the constructor).\n * To modify these values, pass a function as the second argument. That\n * function will be invoked with a single object with the response properties\n * `{headers, status, statusText}`. The return value of this function will\n * be used as the `ResponseInit` for the new `Response`. To change the values\n * either modify the passed parameter(s) and return it, or return a totally\n * new object.\n *\n * This method is intentionally limited to same-origin responses, regardless of\n * whether CORS was used or not.\n *\n * @param {Response} response\n * @param {Function} modifier\n * @memberof module:workbox-core\n */\n\nfunction copyResponse(_x, _x2) {\n return _copyResponse.apply(this, arguments);\n}\n\nfunction _copyResponse() {\n _copyResponse = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee(response, modifier) {\n var origin, responseURL, clonedResponse, responseInit, modifiedResponseInit, body;\n return _regeneratorRuntime.wrap(function _callee$(_context) {\n while (1) {\n switch (_context.prev = _context.next) {\n case 0:\n origin = null; // If response.url isn't set, assume it's cross-origin and keep origin null.\n\n if (response.url) {\n responseURL = new URL(response.url);\n origin = responseURL.origin;\n }\n\n if (!(origin !== self.location.origin)) {\n _context.next = 4;\n break;\n }\n\n throw new WorkboxError('cross-origin-copy-response', {\n origin: origin\n });\n\n case 4:\n clonedResponse = response.clone(); // Create a fresh `ResponseInit` object by cloning the headers.\n\n responseInit = {\n headers: new Headers(clonedResponse.headers),\n status: clonedResponse.status,\n statusText: clonedResponse.statusText\n }; // Apply any user modifications.\n\n modifiedResponseInit = modifier ? modifier(responseInit) : responseInit; // Create the new response from the body stream and `ResponseInit`\n // modifications. Note: not all browsers support the Response.body stream,\n // so fall back to reading the entire body into memory as a blob.\n\n if (!canConstructResponseFromBodyStream()) {\n _context.next = 11;\n break;\n }\n\n _context.t0 = clonedResponse.body;\n _context.next = 14;\n break;\n\n case 11:\n _context.next = 13;\n return clonedResponse.blob();\n\n case 13:\n _context.t0 = _context.sent;\n\n case 14:\n body = _context.t0;\n return _context.abrupt(\"return\", new Response(body, modifiedResponseInit));\n\n case 16:\n case \"end\":\n return _context.stop();\n }\n }\n }, _callee);\n }));\n return _copyResponse.apply(this, arguments);\n}\n\nexport { copyResponse };","import _createForOfIteratorHelper from \"/home/runner/work/shlink-web-client/shlink-web-client/node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/createForOfIteratorHelper\";\nimport _regeneratorRuntime from \"/home/runner/work/shlink-web-client/shlink-web-client/node_modules/babel-preset-react-app/node_modules/@babel/runtime/regenerator\";\nimport _asyncToGenerator from \"/home/runner/work/shlink-web-client/shlink-web-client/node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/asyncToGenerator\";\nimport _classCallCheck from \"/home/runner/work/shlink-web-client/shlink-web-client/node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/classCallCheck\";\nimport _createClass from \"/home/runner/work/shlink-web-client/shlink-web-client/node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/createClass\";\n\n/*\n Copyright 2018 Google LLC\n\n Use of this source code is governed by an MIT-style\n license that can be found in the LICENSE file or at\n https://opensource.org/licenses/MIT.\n*/\nimport { DBWrapper } from 'workbox-core/_private/DBWrapper.js';\nimport { deleteDatabase } from 'workbox-core/_private/deleteDatabase.js';\nimport '../_version.js';\nvar DB_NAME = 'workbox-expiration';\nvar OBJECT_STORE_NAME = 'cache-entries';\n\nvar normalizeURL = function normalizeURL(unNormalizedUrl) {\n var url = new URL(unNormalizedUrl, location.href);\n url.hash = '';\n return url.href;\n};\n/**\n * Returns the timestamp model.\n *\n * @private\n */\n\n\nvar CacheTimestampsModel = /*#__PURE__*/function () {\n /**\n *\n * @param {string} cacheName\n *\n * @private\n */\n function CacheTimestampsModel(cacheName) {\n var _this = this;\n\n _classCallCheck(this, CacheTimestampsModel);\n\n this._cacheName = cacheName;\n this._db = new DBWrapper(DB_NAME, 1, {\n onupgradeneeded: function onupgradeneeded(event) {\n return _this._handleUpgrade(event);\n }\n });\n }\n /**\n * Should perform an upgrade of indexedDB.\n *\n * @param {Event} event\n *\n * @private\n */\n\n\n _createClass(CacheTimestampsModel, [{\n key: \"_handleUpgrade\",\n value: function _handleUpgrade(event) {\n var db = event.target.result; // TODO(philipwalton): EdgeHTML doesn't support arrays as a keyPath, so we\n // have to use the `id` keyPath here and create our own values (a\n // concatenation of `url + cacheName`) instead of simply using\n // `keyPath: ['url', 'cacheName']`, which is supported in other browsers.\n\n var objStore = db.createObjectStore(OBJECT_STORE_NAME, {\n keyPath: 'id'\n }); // TODO(philipwalton): once we don't have to support EdgeHTML, we can\n // create a single index with the keyPath `['cacheName', 'timestamp']`\n // instead of doing both these indexes.\n\n objStore.createIndex('cacheName', 'cacheName', {\n unique: false\n });\n objStore.createIndex('timestamp', 'timestamp', {\n unique: false\n }); // Previous versions of `workbox-expiration` used `this._cacheName`\n // as the IDBDatabase name.\n\n deleteDatabase(this._cacheName);\n }\n /**\n * @param {string} url\n * @param {number} timestamp\n *\n * @private\n */\n\n }, {\n key: \"setTimestamp\",\n value: function () {\n var _setTimestamp = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee(url, timestamp) {\n var entry;\n return _regeneratorRuntime.wrap(function _callee$(_context) {\n while (1) {\n switch (_context.prev = _context.next) {\n case 0:\n url = normalizeURL(url);\n entry = {\n url: url,\n timestamp: timestamp,\n cacheName: this._cacheName,\n // Creating an ID from the URL and cache name won't be necessary once\n // Edge switches to Chromium and all browsers we support work with\n // array keyPaths.\n id: this._getId(url)\n };\n _context.next = 4;\n return this._db.put(OBJECT_STORE_NAME, entry);\n\n case 4:\n case \"end\":\n return _context.stop();\n }\n }\n }, _callee, this);\n }));\n\n function setTimestamp(_x, _x2) {\n return _setTimestamp.apply(this, arguments);\n }\n\n return setTimestamp;\n }()\n /**\n * Returns the timestamp stored for a given URL.\n *\n * @param {string} url\n * @return {number}\n *\n * @private\n */\n\n }, {\n key: \"getTimestamp\",\n value: function () {\n var _getTimestamp = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee2(url) {\n var entry;\n return _regeneratorRuntime.wrap(function _callee2$(_context2) {\n while (1) {\n switch (_context2.prev = _context2.next) {\n case 0:\n _context2.next = 2;\n return this._db.get(OBJECT_STORE_NAME, this._getId(url));\n\n case 2:\n entry = _context2.sent;\n return _context2.abrupt(\"return\", entry.timestamp);\n\n case 4:\n case \"end\":\n return _context2.stop();\n }\n }\n }, _callee2, this);\n }));\n\n function getTimestamp(_x3) {\n return _getTimestamp.apply(this, arguments);\n }\n\n return getTimestamp;\n }()\n /**\n * Iterates through all the entries in the object store (from newest to\n * oldest) and removes entries once either `maxCount` is reached or the\n * entry's timestamp is less than `minTimestamp`.\n *\n * @param {number} minTimestamp\n * @param {number} maxCount\n * @return {Array}\n *\n * @private\n */\n\n }, {\n key: \"expireEntries\",\n value: function () {\n var _expireEntries = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee3(minTimestamp, maxCount) {\n var _this2 = this;\n\n var entriesToDelete, urlsDeleted, _iterator, _step, entry;\n\n return _regeneratorRuntime.wrap(function _callee3$(_context3) {\n while (1) {\n switch (_context3.prev = _context3.next) {\n case 0:\n _context3.next = 2;\n return this._db.transaction(OBJECT_STORE_NAME, 'readwrite', function (txn, done) {\n var store = txn.objectStore(OBJECT_STORE_NAME);\n var request = store.index('timestamp').openCursor(null, 'prev');\n var entriesToDelete = [];\n var entriesNotDeletedCount = 0;\n\n request.onsuccess = function () {\n var cursor = request.result;\n\n if (cursor) {\n var result = cursor.value; // TODO(philipwalton): once we can use a multi-key index, we\n // won't have to check `cacheName` here.\n\n if (result.cacheName === _this2._cacheName) {\n // Delete an entry if it's older than the max age or\n // if we already have the max number allowed.\n if (minTimestamp && result.timestamp < minTimestamp || maxCount && entriesNotDeletedCount >= maxCount) {\n // TODO(philipwalton): we should be able to delete the\n // entry right here, but doing so causes an iteration\n // bug in Safari stable (fixed in TP). Instead we can\n // store the keys of the entries to delete, and then\n // delete the separate transactions.\n // https://github.com/GoogleChrome/workbox/issues/1978\n // cursor.delete();\n // We only need to return the URL, not the whole entry.\n entriesToDelete.push(cursor.value);\n } else {\n entriesNotDeletedCount++;\n }\n }\n\n cursor.continue();\n } else {\n done(entriesToDelete);\n }\n };\n });\n\n case 2:\n entriesToDelete = _context3.sent;\n // TODO(philipwalton): once the Safari bug in the following issue is fixed,\n // we should be able to remove this loop and do the entry deletion in the\n // cursor loop above:\n // https://github.com/GoogleChrome/workbox/issues/1978\n urlsDeleted = [];\n _iterator = _createForOfIteratorHelper(entriesToDelete);\n _context3.prev = 5;\n\n _iterator.s();\n\n case 7:\n if ((_step = _iterator.n()).done) {\n _context3.next = 14;\n break;\n }\n\n entry = _step.value;\n _context3.next = 11;\n return this._db.delete(OBJECT_STORE_NAME, entry.id);\n\n case 11:\n urlsDeleted.push(entry.url);\n\n case 12:\n _context3.next = 7;\n break;\n\n case 14:\n _context3.next = 19;\n break;\n\n case 16:\n _context3.prev = 16;\n _context3.t0 = _context3[\"catch\"](5);\n\n _iterator.e(_context3.t0);\n\n case 19:\n _context3.prev = 19;\n\n _iterator.f();\n\n return _context3.finish(19);\n\n case 22:\n return _context3.abrupt(\"return\", urlsDeleted);\n\n case 23:\n case \"end\":\n return _context3.stop();\n }\n }\n }, _callee3, this, [[5, 16, 19, 22]]);\n }));\n\n function expireEntries(_x4, _x5) {\n return _expireEntries.apply(this, arguments);\n }\n\n return expireEntries;\n }()\n /**\n * Takes a URL and returns an ID that will be unique in the object store.\n *\n * @param {string} url\n * @return {string}\n *\n * @private\n */\n\n }, {\n key: \"_getId\",\n value: function _getId(url) {\n // Creating an ID from the URL and cache name won't be necessary once\n // Edge switches to Chromium and all browsers we support work with\n // array keyPaths.\n return this._cacheName + '|' + normalizeURL(url);\n }\n }]);\n\n return CacheTimestampsModel;\n}();\n\nexport { CacheTimestampsModel };","import _regeneratorRuntime from \"/home/runner/work/shlink-web-client/shlink-web-client/node_modules/babel-preset-react-app/node_modules/@babel/runtime/regenerator\";\nimport _createForOfIteratorHelper from \"/home/runner/work/shlink-web-client/shlink-web-client/node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/createForOfIteratorHelper\";\nimport _asyncToGenerator from \"/home/runner/work/shlink-web-client/shlink-web-client/node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/asyncToGenerator\";\nimport _classCallCheck from \"/home/runner/work/shlink-web-client/shlink-web-client/node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/classCallCheck\";\nimport _createClass from \"/home/runner/work/shlink-web-client/shlink-web-client/node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/createClass\";\n\n/*\n Copyright 2018 Google LLC\n\n Use of this source code is governed by an MIT-style\n license that can be found in the LICENSE file or at\n https://opensource.org/licenses/MIT.\n*/\nimport { assert } from 'workbox-core/_private/assert.js';\nimport { dontWaitFor } from 'workbox-core/_private/dontWaitFor.js';\nimport { logger } from 'workbox-core/_private/logger.js';\nimport { WorkboxError } from 'workbox-core/_private/WorkboxError.js';\nimport { CacheTimestampsModel } from './models/CacheTimestampsModel.js';\nimport './_version.js';\n/**\n * The `CacheExpiration` class allows you define an expiration and / or\n * limit on the number of responses stored in a\n * [`Cache`](https://developer.mozilla.org/en-US/docs/Web/API/Cache).\n *\n * @memberof module:workbox-expiration\n */\n\nvar CacheExpiration = /*#__PURE__*/function () {\n /**\n * To construct a new CacheExpiration instance you must provide at least\n * one of the `config` properties.\n *\n * @param {string} cacheName Name of the cache to apply restrictions to.\n * @param {Object} config\n * @param {number} [config.maxEntries] The maximum number of entries to cache.\n * Entries used the least will be removed as the maximum is reached.\n * @param {number} [config.maxAgeSeconds] The maximum age of an entry before\n * it's treated as stale and removed.\n * @param {Object} [config.matchOptions] The [`CacheQueryOptions`](https://developer.mozilla.org/en-US/docs/Web/API/Cache/delete#Parameters)\n * that will be used when calling `delete()` on the cache.\n */\n function CacheExpiration(cacheName) {\n var config = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n\n _classCallCheck(this, CacheExpiration);\n\n this._isRunning = false;\n this._rerunRequested = false;\n\n if (process.env.NODE_ENV !== 'production') {\n assert.isType(cacheName, 'string', {\n moduleName: 'workbox-expiration',\n className: 'CacheExpiration',\n funcName: 'constructor',\n paramName: 'cacheName'\n });\n\n if (!(config.maxEntries || config.maxAgeSeconds)) {\n throw new WorkboxError('max-entries-or-age-required', {\n moduleName: 'workbox-expiration',\n className: 'CacheExpiration',\n funcName: 'constructor'\n });\n }\n\n if (config.maxEntries) {\n assert.isType(config.maxEntries, 'number', {\n moduleName: 'workbox-expiration',\n className: 'CacheExpiration',\n funcName: 'constructor',\n paramName: 'config.maxEntries'\n });\n }\n\n if (config.maxAgeSeconds) {\n assert.isType(config.maxAgeSeconds, 'number', {\n moduleName: 'workbox-expiration',\n className: 'CacheExpiration',\n funcName: 'constructor',\n paramName: 'config.maxAgeSeconds'\n });\n }\n }\n\n this._maxEntries = config.maxEntries;\n this._maxAgeSeconds = config.maxAgeSeconds;\n this._matchOptions = config.matchOptions;\n this._cacheName = cacheName;\n this._timestampModel = new CacheTimestampsModel(cacheName);\n }\n /**\n * Expires entries for the given cache and given criteria.\n */\n\n\n _createClass(CacheExpiration, [{\n key: \"expireEntries\",\n value: function () {\n var _expireEntries = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee() {\n var minTimestamp, urlsExpired, cache, _iterator, _step, url;\n\n return _regeneratorRuntime.wrap(function _callee$(_context) {\n while (1) {\n switch (_context.prev = _context.next) {\n case 0:\n if (!this._isRunning) {\n _context.next = 3;\n break;\n }\n\n this._rerunRequested = true;\n return _context.abrupt(\"return\");\n\n case 3:\n this._isRunning = true;\n minTimestamp = this._maxAgeSeconds ? Date.now() - this._maxAgeSeconds * 1000 : 0;\n _context.next = 7;\n return this._timestampModel.expireEntries(minTimestamp, this._maxEntries);\n\n case 7:\n urlsExpired = _context.sent;\n _context.next = 10;\n return self.caches.open(this._cacheName);\n\n case 10:\n cache = _context.sent;\n _iterator = _createForOfIteratorHelper(urlsExpired);\n _context.prev = 12;\n\n _iterator.s();\n\n case 14:\n if ((_step = _iterator.n()).done) {\n _context.next = 20;\n break;\n }\n\n url = _step.value;\n _context.next = 18;\n return cache.delete(url, this._matchOptions);\n\n case 18:\n _context.next = 14;\n break;\n\n case 20:\n _context.next = 25;\n break;\n\n case 22:\n _context.prev = 22;\n _context.t0 = _context[\"catch\"](12);\n\n _iterator.e(_context.t0);\n\n case 25:\n _context.prev = 25;\n\n _iterator.f();\n\n return _context.finish(25);\n\n case 28:\n if (process.env.NODE_ENV !== 'production') {\n if (urlsExpired.length > 0) {\n logger.groupCollapsed(\"Expired \".concat(urlsExpired.length, \" \") + \"\".concat(urlsExpired.length === 1 ? 'entry' : 'entries', \" and removed \") + \"\".concat(urlsExpired.length === 1 ? 'it' : 'them', \" from the \") + \"'\".concat(this._cacheName, \"' cache.\"));\n logger.log(\"Expired the following \".concat(urlsExpired.length === 1 ? 'URL' : 'URLs', \":\"));\n urlsExpired.forEach(function (url) {\n return logger.log(\" \".concat(url));\n });\n logger.groupEnd();\n } else {\n logger.debug(\"Cache expiration ran and found no entries to remove.\");\n }\n }\n\n this._isRunning = false;\n\n if (this._rerunRequested) {\n this._rerunRequested = false;\n dontWaitFor(this.expireEntries());\n }\n\n case 31:\n case \"end\":\n return _context.stop();\n }\n }\n }, _callee, this, [[12, 22, 25, 28]]);\n }));\n\n function expireEntries() {\n return _expireEntries.apply(this, arguments);\n }\n\n return expireEntries;\n }()\n /**\n * Update the timestamp for the given URL. This ensures the when\n * removing entries based on maximum entries, most recently used\n * is accurate or when expiring, the timestamp is up-to-date.\n *\n * @param {string} url\n */\n\n }, {\n key: \"updateTimestamp\",\n value: function () {\n var _updateTimestamp = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee2(url) {\n return _regeneratorRuntime.wrap(function _callee2$(_context2) {\n while (1) {\n switch (_context2.prev = _context2.next) {\n case 0:\n if (process.env.NODE_ENV !== 'production') {\n assert.isType(url, 'string', {\n moduleName: 'workbox-expiration',\n className: 'CacheExpiration',\n funcName: 'updateTimestamp',\n paramName: 'url'\n });\n }\n\n _context2.next = 3;\n return this._timestampModel.setTimestamp(url, Date.now());\n\n case 3:\n case \"end\":\n return _context2.stop();\n }\n }\n }, _callee2, this);\n }));\n\n function updateTimestamp(_x) {\n return _updateTimestamp.apply(this, arguments);\n }\n\n return updateTimestamp;\n }()\n /**\n * Can be used to check if a URL has expired or not before it's used.\n *\n * This requires a look up from IndexedDB, so can be slow.\n *\n * Note: This method will not remove the cached entry, call\n * `expireEntries()` to remove indexedDB and Cache entries.\n *\n * @param {string} url\n * @return {boolean}\n */\n\n }, {\n key: \"isURLExpired\",\n value: function () {\n var _isURLExpired = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee3(url) {\n var timestamp, expireOlderThan;\n return _regeneratorRuntime.wrap(function _callee3$(_context3) {\n while (1) {\n switch (_context3.prev = _context3.next) {\n case 0:\n if (this._maxAgeSeconds) {\n _context3.next = 6;\n break;\n }\n\n if (!(process.env.NODE_ENV !== 'production')) {\n _context3.next = 3;\n break;\n }\n\n throw new WorkboxError(\"expired-test-without-max-age\", {\n methodName: 'isURLExpired',\n paramName: 'maxAgeSeconds'\n });\n\n case 3:\n return _context3.abrupt(\"return\", false);\n\n case 6:\n _context3.next = 8;\n return this._timestampModel.getTimestamp(url);\n\n case 8:\n timestamp = _context3.sent;\n expireOlderThan = Date.now() - this._maxAgeSeconds * 1000;\n return _context3.abrupt(\"return\", timestamp < expireOlderThan);\n\n case 11:\n case \"end\":\n return _context3.stop();\n }\n }\n }, _callee3, this);\n }));\n\n function isURLExpired(_x2) {\n return _isURLExpired.apply(this, arguments);\n }\n\n return isURLExpired;\n }()\n /**\n * Removes the IndexedDB object store used to keep track of cache expiration\n * metadata.\n */\n\n }, {\n key: \"delete\",\n value: function () {\n var _delete2 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee4() {\n return _regeneratorRuntime.wrap(function _callee4$(_context4) {\n while (1) {\n switch (_context4.prev = _context4.next) {\n case 0:\n // Make sure we don't attempt another rerun if we're called in the middle of\n // a cache expiration.\n this._rerunRequested = false;\n _context4.next = 3;\n return this._timestampModel.expireEntries(Infinity);\n\n case 3:\n case \"end\":\n return _context4.stop();\n }\n }\n }, _callee4, this);\n }));\n\n function _delete() {\n return _delete2.apply(this, arguments);\n }\n\n return _delete;\n }()\n }]);\n\n return CacheExpiration;\n}();\n\nexport { CacheExpiration };","import _slicedToArray from \"/home/runner/work/shlink-web-client/shlink-web-client/node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/slicedToArray\";\nimport _createForOfIteratorHelper from \"/home/runner/work/shlink-web-client/shlink-web-client/node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/createForOfIteratorHelper\";\nimport _regeneratorRuntime from \"/home/runner/work/shlink-web-client/shlink-web-client/node_modules/babel-preset-react-app/node_modules/@babel/runtime/regenerator\";\nimport _asyncToGenerator from \"/home/runner/work/shlink-web-client/shlink-web-client/node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/asyncToGenerator\";\nimport _classCallCheck from \"/home/runner/work/shlink-web-client/shlink-web-client/node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/classCallCheck\";\nimport _createClass from \"/home/runner/work/shlink-web-client/shlink-web-client/node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/createClass\";\n\n/*\n Copyright 2018 Google LLC\n\n Use of this source code is governed by an MIT-style\n license that can be found in the LICENSE file or at\n https://opensource.org/licenses/MIT.\n*/\nimport { assert } from 'workbox-core/_private/assert.js';\nimport { cacheNames } from 'workbox-core/_private/cacheNames.js';\nimport { dontWaitFor } from 'workbox-core/_private/dontWaitFor.js';\nimport { getFriendlyURL } from 'workbox-core/_private/getFriendlyURL.js';\nimport { logger } from 'workbox-core/_private/logger.js';\nimport { registerQuotaErrorCallback } from 'workbox-core/registerQuotaErrorCallback.js';\nimport { WorkboxError } from 'workbox-core/_private/WorkboxError.js';\nimport { CacheExpiration } from './CacheExpiration.js';\nimport './_version.js';\n/**\n * This plugin can be used in a `workbox-strategy` to regularly enforce a\n * limit on the age and / or the number of cached requests.\n *\n * It can only be used with `workbox-strategy` instances that have a\n * [custom `cacheName` property set](/web/tools/workbox/guides/configure-workbox#custom_cache_names_in_strategies).\n * In other words, it can't be used to expire entries in strategy that uses the\n * default runtime cache name.\n *\n * Whenever a cached request is used or updated, this plugin will look\n * at the associated cache and remove any old or extra requests.\n *\n * When using `maxAgeSeconds`, requests may be used *once* after expiring\n * because the expiration clean up will not have occurred until *after* the\n * cached request has been used. If the request has a \"Date\" header, then\n * a light weight expiration check is performed and the request will not be\n * used immediately.\n *\n * When using `maxEntries`, the entry least-recently requested will be removed\n * from the cache first.\n *\n * @memberof module:workbox-expiration\n */\n\nvar ExpirationPlugin = /*#__PURE__*/function () {\n /**\n * @param {Object} config\n * @param {number} [config.maxEntries] The maximum number of entries to cache.\n * Entries used the least will be removed as the maximum is reached.\n * @param {number} [config.maxAgeSeconds] The maximum age of an entry before\n * it's treated as stale and removed.\n * @param {Object} [config.matchOptions] The [`CacheQueryOptions`](https://developer.mozilla.org/en-US/docs/Web/API/Cache/delete#Parameters)\n * that will be used when calling `delete()` on the cache.\n * @param {boolean} [config.purgeOnQuotaError] Whether to opt this cache in to\n * automatic deletion if the available storage quota has been exceeded.\n */\n function ExpirationPlugin() {\n var _this = this;\n\n var config = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n\n _classCallCheck(this, ExpirationPlugin);\n\n /**\n * A \"lifecycle\" callback that will be triggered automatically by the\n * `workbox-strategies` handlers when a `Response` is about to be returned\n * from a [Cache](https://developer.mozilla.org/en-US/docs/Web/API/Cache) to\n * the handler. It allows the `Response` to be inspected for freshness and\n * prevents it from being used if the `Response`'s `Date` header value is\n * older than the configured `maxAgeSeconds`.\n *\n * @param {Object} options\n * @param {string} options.cacheName Name of the cache the response is in.\n * @param {Response} options.cachedResponse The `Response` object that's been\n * read from a cache and whose freshness should be checked.\n * @return {Response} Either the `cachedResponse`, if it's\n * fresh, or `null` if the `Response` is older than `maxAgeSeconds`.\n *\n * @private\n */\n this.cachedResponseWillBeUsed = /*#__PURE__*/function () {\n var _ref2 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee(_ref) {\n var event, request, cacheName, cachedResponse, isFresh, cacheExpiration, updateTimestampDone;\n return _regeneratorRuntime.wrap(function _callee$(_context) {\n while (1) {\n switch (_context.prev = _context.next) {\n case 0:\n event = _ref.event, request = _ref.request, cacheName = _ref.cacheName, cachedResponse = _ref.cachedResponse;\n\n if (cachedResponse) {\n _context.next = 3;\n break;\n }\n\n return _context.abrupt(\"return\", null);\n\n case 3:\n isFresh = _this._isResponseDateFresh(cachedResponse); // Expire entries to ensure that even if the expiration date has\n // expired, it'll only be used once.\n\n cacheExpiration = _this._getCacheExpiration(cacheName);\n dontWaitFor(cacheExpiration.expireEntries()); // Update the metadata for the request URL to the current timestamp,\n // but don't `await` it as we don't want to block the response.\n\n updateTimestampDone = cacheExpiration.updateTimestamp(request.url);\n\n if (event) {\n try {\n event.waitUntil(updateTimestampDone);\n } catch (error) {\n if (process.env.NODE_ENV !== 'production') {\n // The event may not be a fetch event; only log the URL if it is.\n if ('request' in event) {\n logger.warn(\"Unable to ensure service worker stays alive when \" + \"updating cache entry for \" + \"'\".concat(getFriendlyURL(event.request.url), \"'.\"));\n }\n }\n }\n }\n\n return _context.abrupt(\"return\", isFresh ? cachedResponse : null);\n\n case 9:\n case \"end\":\n return _context.stop();\n }\n }\n }, _callee);\n }));\n\n return function (_x) {\n return _ref2.apply(this, arguments);\n };\n }();\n /**\n * A \"lifecycle\" callback that will be triggered automatically by the\n * `workbox-strategies` handlers when an entry is added to a cache.\n *\n * @param {Object} options\n * @param {string} options.cacheName Name of the cache that was updated.\n * @param {string} options.request The Request for the cached entry.\n *\n * @private\n */\n\n\n this.cacheDidUpdate = /*#__PURE__*/function () {\n var _ref4 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee2(_ref3) {\n var cacheName, request, cacheExpiration;\n return _regeneratorRuntime.wrap(function _callee2$(_context2) {\n while (1) {\n switch (_context2.prev = _context2.next) {\n case 0:\n cacheName = _ref3.cacheName, request = _ref3.request;\n\n if (process.env.NODE_ENV !== 'production') {\n assert.isType(cacheName, 'string', {\n moduleName: 'workbox-expiration',\n className: 'Plugin',\n funcName: 'cacheDidUpdate',\n paramName: 'cacheName'\n });\n assert.isInstance(request, Request, {\n moduleName: 'workbox-expiration',\n className: 'Plugin',\n funcName: 'cacheDidUpdate',\n paramName: 'request'\n });\n }\n\n cacheExpiration = _this._getCacheExpiration(cacheName);\n _context2.next = 5;\n return cacheExpiration.updateTimestamp(request.url);\n\n case 5:\n _context2.next = 7;\n return cacheExpiration.expireEntries();\n\n case 7:\n case \"end\":\n return _context2.stop();\n }\n }\n }, _callee2);\n }));\n\n return function (_x2) {\n return _ref4.apply(this, arguments);\n };\n }();\n\n if (process.env.NODE_ENV !== 'production') {\n if (!(config.maxEntries || config.maxAgeSeconds)) {\n throw new WorkboxError('max-entries-or-age-required', {\n moduleName: 'workbox-expiration',\n className: 'Plugin',\n funcName: 'constructor'\n });\n }\n\n if (config.maxEntries) {\n assert.isType(config.maxEntries, 'number', {\n moduleName: 'workbox-expiration',\n className: 'Plugin',\n funcName: 'constructor',\n paramName: 'config.maxEntries'\n });\n }\n\n if (config.maxAgeSeconds) {\n assert.isType(config.maxAgeSeconds, 'number', {\n moduleName: 'workbox-expiration',\n className: 'Plugin',\n funcName: 'constructor',\n paramName: 'config.maxAgeSeconds'\n });\n }\n }\n\n this._config = config;\n this._maxAgeSeconds = config.maxAgeSeconds;\n this._cacheExpirations = new Map();\n\n if (config.purgeOnQuotaError) {\n registerQuotaErrorCallback(function () {\n return _this.deleteCacheAndMetadata();\n });\n }\n }\n /**\n * A simple helper method to return a CacheExpiration instance for a given\n * cache name.\n *\n * @param {string} cacheName\n * @return {CacheExpiration}\n *\n * @private\n */\n\n\n _createClass(ExpirationPlugin, [{\n key: \"_getCacheExpiration\",\n value: function _getCacheExpiration(cacheName) {\n if (cacheName === cacheNames.getRuntimeName()) {\n throw new WorkboxError('expire-custom-caches-only');\n }\n\n var cacheExpiration = this._cacheExpirations.get(cacheName);\n\n if (!cacheExpiration) {\n cacheExpiration = new CacheExpiration(cacheName, this._config);\n\n this._cacheExpirations.set(cacheName, cacheExpiration);\n }\n\n return cacheExpiration;\n }\n /**\n * @param {Response} cachedResponse\n * @return {boolean}\n *\n * @private\n */\n\n }, {\n key: \"_isResponseDateFresh\",\n value: function _isResponseDateFresh(cachedResponse) {\n if (!this._maxAgeSeconds) {\n // We aren't expiring by age, so return true, it's fresh\n return true;\n } // Check if the 'date' header will suffice a quick expiration check.\n // See https://github.com/GoogleChromeLabs/sw-toolbox/issues/164 for\n // discussion.\n\n\n var dateHeaderTimestamp = this._getDateHeaderTimestamp(cachedResponse);\n\n if (dateHeaderTimestamp === null) {\n // Unable to parse date, so assume it's fresh.\n return true;\n } // If we have a valid headerTime, then our response is fresh iff the\n // headerTime plus maxAgeSeconds is greater than the current time.\n\n\n var now = Date.now();\n return dateHeaderTimestamp >= now - this._maxAgeSeconds * 1000;\n }\n /**\n * This method will extract the data header and parse it into a useful\n * value.\n *\n * @param {Response} cachedResponse\n * @return {number|null}\n *\n * @private\n */\n\n }, {\n key: \"_getDateHeaderTimestamp\",\n value: function _getDateHeaderTimestamp(cachedResponse) {\n if (!cachedResponse.headers.has('date')) {\n return null;\n }\n\n var dateHeader = cachedResponse.headers.get('date');\n var parsedDate = new Date(dateHeader);\n var headerTime = parsedDate.getTime(); // If the Date header was invalid for some reason, parsedDate.getTime()\n // will return NaN.\n\n if (isNaN(headerTime)) {\n return null;\n }\n\n return headerTime;\n }\n /**\n * This is a helper method that performs two operations:\n *\n * - Deletes *all* the underlying Cache instances associated with this plugin\n * instance, by calling caches.delete() on your behalf.\n * - Deletes the metadata from IndexedDB used to keep track of expiration\n * details for each Cache instance.\n *\n * When using cache expiration, calling this method is preferable to calling\n * `caches.delete()` directly, since this will ensure that the IndexedDB\n * metadata is also cleanly removed and open IndexedDB instances are deleted.\n *\n * Note that if you're *not* using cache expiration for a given cache, calling\n * `caches.delete()` and passing in the cache's name should be sufficient.\n * There is no Workbox-specific method needed for cleanup in that case.\n */\n\n }, {\n key: \"deleteCacheAndMetadata\",\n value: function () {\n var _deleteCacheAndMetadata = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee3() {\n var _iterator, _step, _step$value, cacheName, cacheExpiration;\n\n return _regeneratorRuntime.wrap(function _callee3$(_context3) {\n while (1) {\n switch (_context3.prev = _context3.next) {\n case 0:\n // Do this one at a time instead of all at once via `Promise.all()` to\n // reduce the chance of inconsistency if a promise rejects.\n _iterator = _createForOfIteratorHelper(this._cacheExpirations);\n _context3.prev = 1;\n\n _iterator.s();\n\n case 3:\n if ((_step = _iterator.n()).done) {\n _context3.next = 11;\n break;\n }\n\n _step$value = _slicedToArray(_step.value, 2), cacheName = _step$value[0], cacheExpiration = _step$value[1];\n _context3.next = 7;\n return self.caches.delete(cacheName);\n\n case 7:\n _context3.next = 9;\n return cacheExpiration.delete();\n\n case 9:\n _context3.next = 3;\n break;\n\n case 11:\n _context3.next = 16;\n break;\n\n case 13:\n _context3.prev = 13;\n _context3.t0 = _context3[\"catch\"](1);\n\n _iterator.e(_context3.t0);\n\n case 16:\n _context3.prev = 16;\n\n _iterator.f();\n\n return _context3.finish(16);\n\n case 19:\n // Reset this._cacheExpirations to its initial state.\n this._cacheExpirations = new Map();\n\n case 20:\n case \"end\":\n return _context3.stop();\n }\n }\n }, _callee3, this, [[1, 13, 16, 19]]);\n }));\n\n function deleteCacheAndMetadata() {\n return _deleteCacheAndMetadata.apply(this, arguments);\n }\n\n return deleteCacheAndMetadata;\n }()\n }]);\n\n return ExpirationPlugin;\n}();\n\nexport { ExpirationPlugin };","/*\n Copyright 2018 Google LLC\n\n Use of this source code is governed by an MIT-style\n license that can be found in the LICENSE file or at\n https://opensource.org/licenses/MIT.\n*/\nimport { WorkboxError } from 'workbox-core/_private/WorkboxError.js';\nimport '../_version.js'; // Name of the search parameter used to store revision info.\n\nvar REVISION_SEARCH_PARAM = '__WB_REVISION__';\n/**\n * Converts a manifest entry into a versioned URL suitable for precaching.\n *\n * @param {Object|string} entry\n * @return {string} A URL with versioning info.\n *\n * @private\n * @memberof module:workbox-precaching\n */\n\nexport function createCacheKey(entry) {\n if (!entry) {\n throw new WorkboxError('add-to-cache-list-unexpected-type', {\n entry: entry\n });\n } // If a precache manifest entry is a string, it's assumed to be a versioned\n // URL, like '/app.abcd1234.js'. Return as-is.\n\n\n if (typeof entry === 'string') {\n var urlObject = new URL(entry, location.href);\n return {\n cacheKey: urlObject.href,\n url: urlObject.href\n };\n }\n\n var revision = entry.revision,\n url = entry.url;\n\n if (!url) {\n throw new WorkboxError('add-to-cache-list-unexpected-type', {\n entry: entry\n });\n } // If there's just a URL and no revision, then it's also assumed to be a\n // versioned URL.\n\n\n if (!revision) {\n var _urlObject = new URL(url, location.href);\n\n return {\n cacheKey: _urlObject.href,\n url: _urlObject.href\n };\n } // Otherwise, construct a properly versioned URL using the custom Workbox\n // search parameter along with the revision info.\n\n\n var cacheKeyURL = new URL(url, location.href);\n var originalURL = new URL(url, location.href);\n cacheKeyURL.searchParams.set(REVISION_SEARCH_PARAM, revision);\n return {\n cacheKey: cacheKeyURL.href,\n url: originalURL.href\n };\n}","import _regeneratorRuntime from \"/home/runner/work/shlink-web-client/shlink-web-client/node_modules/babel-preset-react-app/node_modules/@babel/runtime/regenerator\";\nimport _asyncToGenerator from \"/home/runner/work/shlink-web-client/shlink-web-client/node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/asyncToGenerator\";\nimport _classCallCheck from \"/home/runner/work/shlink-web-client/shlink-web-client/node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/classCallCheck\";\n\n/*\n Copyright 2020 Google LLC\n\n Use of this source code is governed by an MIT-style\n license that can be found in the LICENSE file or at\n https://opensource.org/licenses/MIT.\n*/\nimport '../_version.js';\n/**\n * A plugin, designed to be used with PrecacheController, to determine the\n * of assets that were updated (or not updated) during the install event.\n *\n * @private\n */\n\nvar PrecacheInstallReportPlugin = function PrecacheInstallReportPlugin() {\n var _this = this;\n\n _classCallCheck(this, PrecacheInstallReportPlugin);\n\n this.updatedURLs = [];\n this.notUpdatedURLs = [];\n\n this.handlerWillStart = /*#__PURE__*/function () {\n var _ref2 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee(_ref) {\n var request, state;\n return _regeneratorRuntime.wrap(function _callee$(_context) {\n while (1) {\n switch (_context.prev = _context.next) {\n case 0:\n request = _ref.request, state = _ref.state;\n\n // TODO: `state` should never be undefined...\n if (state) {\n state.originalRequest = request;\n }\n\n case 2:\n case \"end\":\n return _context.stop();\n }\n }\n }, _callee);\n }));\n\n return function (_x) {\n return _ref2.apply(this, arguments);\n };\n }();\n\n this.cachedResponseWillBeUsed = /*#__PURE__*/function () {\n var _ref4 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee2(_ref3) {\n var event, state, cachedResponse, url;\n return _regeneratorRuntime.wrap(function _callee2$(_context2) {\n while (1) {\n switch (_context2.prev = _context2.next) {\n case 0:\n event = _ref3.event, state = _ref3.state, cachedResponse = _ref3.cachedResponse;\n\n if (event.type === 'install') {\n // TODO: `state` should never be undefined...\n url = state.originalRequest.url;\n\n if (cachedResponse) {\n _this.notUpdatedURLs.push(url);\n } else {\n _this.updatedURLs.push(url);\n }\n }\n\n return _context2.abrupt(\"return\", cachedResponse);\n\n case 3:\n case \"end\":\n return _context2.stop();\n }\n }\n }, _callee2);\n }));\n\n return function (_x2) {\n return _ref4.apply(this, arguments);\n };\n }();\n};\n\nexport { PrecacheInstallReportPlugin };","import _regeneratorRuntime from \"/home/runner/work/shlink-web-client/shlink-web-client/node_modules/babel-preset-react-app/node_modules/@babel/runtime/regenerator\";\nimport _asyncToGenerator from \"/home/runner/work/shlink-web-client/shlink-web-client/node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/asyncToGenerator\";\nimport _classCallCheck from \"/home/runner/work/shlink-web-client/shlink-web-client/node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/classCallCheck\";\n\n/*\n Copyright 2020 Google LLC\n\n Use of this source code is governed by an MIT-style\n license that can be found in the LICENSE file or at\n https://opensource.org/licenses/MIT.\n*/\nimport '../_version.js';\n/**\n * A plugin, designed to be used with PrecacheController, to translate URLs into\n * the corresponding cache key, based on the current revision info.\n *\n * @private\n */\n\nvar PrecacheCacheKeyPlugin = function PrecacheCacheKeyPlugin(_ref) {\n var _this = this;\n\n var precacheController = _ref.precacheController;\n\n _classCallCheck(this, PrecacheCacheKeyPlugin);\n\n this.cacheKeyWillBeUsed = /*#__PURE__*/function () {\n var _ref3 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee(_ref2) {\n var request, params, cacheKey;\n return _regeneratorRuntime.wrap(function _callee$(_context) {\n while (1) {\n switch (_context.prev = _context.next) {\n case 0:\n request = _ref2.request, params = _ref2.params;\n cacheKey = params && params.cacheKey || _this._precacheController.getCacheKeyForURL(request.url);\n return _context.abrupt(\"return\", cacheKey ? new Request(cacheKey) : request);\n\n case 3:\n case \"end\":\n return _context.stop();\n }\n }\n }, _callee);\n }));\n\n return function (_x) {\n return _ref3.apply(this, arguments);\n };\n }();\n\n this._precacheController = precacheController;\n};\n\nexport { PrecacheCacheKeyPlugin };","import _objectSpread from \"/home/runner/work/shlink-web-client/shlink-web-client/node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/objectSpread2\";\nimport _regeneratorRuntime from \"/home/runner/work/shlink-web-client/shlink-web-client/node_modules/babel-preset-react-app/node_modules/@babel/runtime/regenerator\";\nimport _asyncToGenerator from \"/home/runner/work/shlink-web-client/shlink-web-client/node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/asyncToGenerator\";\nimport _createForOfIteratorHelper from \"/home/runner/work/shlink-web-client/shlink-web-client/node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/createForOfIteratorHelper\";\nimport _toConsumableArray from \"/home/runner/work/shlink-web-client/shlink-web-client/node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/toConsumableArray\";\nimport _classCallCheck from \"/home/runner/work/shlink-web-client/shlink-web-client/node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/classCallCheck\";\nimport _createClass from \"/home/runner/work/shlink-web-client/shlink-web-client/node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/createClass\";\n\n/*\n Copyright 2020 Google LLC\n\n Use of this source code is governed by an MIT-style\n license that can be found in the LICENSE file or at\n https://opensource.org/licenses/MIT.\n*/\nimport { assert } from 'workbox-core/_private/assert.js';\nimport { cacheMatchIgnoreParams } from 'workbox-core/_private/cacheMatchIgnoreParams.js';\nimport { Deferred } from 'workbox-core/_private/Deferred.js';\nimport { executeQuotaErrorCallbacks } from 'workbox-core/_private/executeQuotaErrorCallbacks.js';\nimport { getFriendlyURL } from 'workbox-core/_private/getFriendlyURL.js';\nimport { logger } from 'workbox-core/_private/logger.js';\nimport { timeout } from 'workbox-core/_private/timeout.js';\nimport { WorkboxError } from 'workbox-core/_private/WorkboxError.js';\nimport './_version.js';\n\nfunction toRequest(input) {\n return typeof input === 'string' ? new Request(input) : input;\n}\n/**\n * A class created every time a Strategy instance instance calls\n * [handle()]{@link module:workbox-strategies.Strategy~handle} or\n * [handleAll()]{@link module:workbox-strategies.Strategy~handleAll} that wraps all fetch and\n * cache actions around plugin callbacks and keeps track of when the strategy\n * is \"done\" (i.e. all added `event.waitUntil()` promises have resolved).\n *\n * @memberof module:workbox-strategies\n */\n\n\nvar StrategyHandler = /*#__PURE__*/function () {\n /**\n * Creates a new instance associated with the passed strategy and event\n * that's handling the request.\n *\n * The constructor also initializes the state that will be passed to each of\n * the plugins handling this request.\n *\n * @param {module:workbox-strategies.Strategy} strategy\n * @param {Object} options\n * @param {Request|string} options.request A request to run this strategy for.\n * @param {ExtendableEvent} options.event The event associated with the\n * request.\n * @param {URL} [options.url]\n * @param {*} [options.params]\n * [match callback]{@link module:workbox-routing~matchCallback},\n * (if applicable).\n */\n function StrategyHandler(strategy, options) {\n _classCallCheck(this, StrategyHandler);\n\n this._cacheKeys = {};\n /**\n * The request the strategy is performing (passed to the strategy's\n * `handle()` or `handleAll()` method).\n * @name request\n * @instance\n * @type {Request}\n * @memberof module:workbox-strategies.StrategyHandler\n */\n\n /**\n * The event associated with this request.\n * @name event\n * @instance\n * @type {ExtendableEvent}\n * @memberof module:workbox-strategies.StrategyHandler\n */\n\n /**\n * A `URL` instance of `request.url` (if passed to the strategy's\n * `handle()` or `handleAll()` method).\n * Note: the `url` param will be present if the strategy was invoked\n * from a workbox `Route` object.\n * @name url\n * @instance\n * @type {URL|undefined}\n * @memberof module:workbox-strategies.StrategyHandler\n */\n\n /**\n * A `param` value (if passed to the strategy's\n * `handle()` or `handleAll()` method).\n * Note: the `param` param will be present if the strategy was invoked\n * from a workbox `Route` object and the\n * [match callback]{@link module:workbox-routing~matchCallback} returned\n * a truthy value (it will be that value).\n * @name params\n * @instance\n * @type {*|undefined}\n * @memberof module:workbox-strategies.StrategyHandler\n */\n\n if (process.env.NODE_ENV !== 'production') {\n assert.isInstance(options.event, ExtendableEvent, {\n moduleName: 'workbox-strategies',\n className: 'StrategyHandler',\n funcName: 'constructor',\n paramName: 'options.event'\n });\n }\n\n Object.assign(this, options);\n this.event = options.event;\n this._strategy = strategy;\n this._handlerDeferred = new Deferred();\n this._extendLifetimePromises = []; // Copy the plugins list (since it's mutable on the strategy),\n // so any mutations don't affect this handler instance.\n\n this._plugins = _toConsumableArray(strategy.plugins);\n this._pluginStateMap = new Map();\n\n var _iterator = _createForOfIteratorHelper(this._plugins),\n _step;\n\n try {\n for (_iterator.s(); !(_step = _iterator.n()).done;) {\n var plugin = _step.value;\n\n this._pluginStateMap.set(plugin, {});\n }\n } catch (err) {\n _iterator.e(err);\n } finally {\n _iterator.f();\n }\n\n this.event.waitUntil(this._handlerDeferred.promise);\n }\n /**\n * Fetches a given request (and invokes any applicable plugin callback\n * methods) using the `fetchOptions` (for non-navigation requests) and\n * `plugins` defined on the `Strategy` object.\n *\n * The following plugin lifecycle methods are invoked when using this method:\n * - `requestWillFetch()`\n * - `fetchDidSucceed()`\n * - `fetchDidFail()`\n *\n * @param {Request|string} input The URL or request to fetch.\n * @return {Promise}\n */\n\n\n _createClass(StrategyHandler, [{\n key: \"fetch\",\n value: function (_fetch) {\n function fetch(_x) {\n return _fetch.apply(this, arguments);\n }\n\n fetch.toString = function () {\n return _fetch.toString();\n };\n\n return fetch;\n }( /*#__PURE__*/function () {\n var _ref = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee(input) {\n var event, request, possiblePreloadResponse, originalRequest, _iterator2, _step2, cb, pluginFilteredRequest, fetchResponse, _iterator3, _step3, callback;\n\n return _regeneratorRuntime.wrap(function _callee$(_context) {\n while (1) {\n switch (_context.prev = _context.next) {\n case 0:\n event = this.event;\n request = toRequest(input);\n\n if (!(request.mode === 'navigate' && event instanceof FetchEvent && event.preloadResponse)) {\n _context.next = 9;\n break;\n }\n\n _context.next = 5;\n return event.preloadResponse;\n\n case 5:\n possiblePreloadResponse = _context.sent;\n\n if (!possiblePreloadResponse) {\n _context.next = 9;\n break;\n }\n\n if (process.env.NODE_ENV !== 'production') {\n logger.log(\"Using a preloaded navigation response for \" + \"'\".concat(getFriendlyURL(request.url), \"'\"));\n }\n\n return _context.abrupt(\"return\", possiblePreloadResponse);\n\n case 9:\n // If there is a fetchDidFail plugin, we need to save a clone of the\n // original request before it's either modified by a requestWillFetch\n // plugin or before the original request's body is consumed via fetch().\n originalRequest = this.hasCallback('fetchDidFail') ? request.clone() : null;\n _context.prev = 10;\n _iterator2 = _createForOfIteratorHelper(this.iterateCallbacks('requestWillFetch'));\n _context.prev = 12;\n\n _iterator2.s();\n\n case 14:\n if ((_step2 = _iterator2.n()).done) {\n _context.next = 21;\n break;\n }\n\n cb = _step2.value;\n _context.next = 18;\n return cb({\n request: request.clone(),\n event: event\n });\n\n case 18:\n request = _context.sent;\n\n case 19:\n _context.next = 14;\n break;\n\n case 21:\n _context.next = 26;\n break;\n\n case 23:\n _context.prev = 23;\n _context.t0 = _context[\"catch\"](12);\n\n _iterator2.e(_context.t0);\n\n case 26:\n _context.prev = 26;\n\n _iterator2.f();\n\n return _context.finish(26);\n\n case 29:\n _context.next = 34;\n break;\n\n case 31:\n _context.prev = 31;\n _context.t1 = _context[\"catch\"](10);\n throw new WorkboxError('plugin-error-request-will-fetch', {\n thrownError: _context.t1\n });\n\n case 34:\n // The request can be altered by plugins with `requestWillFetch` making\n // the original request (most likely from a `fetch` event) different\n // from the Request we make. Pass both to `fetchDidFail` to aid debugging.\n pluginFilteredRequest = request.clone();\n _context.prev = 35;\n _context.next = 38;\n return fetch(request, request.mode === 'navigate' ? undefined : this._strategy.fetchOptions);\n\n case 38:\n fetchResponse = _context.sent;\n\n if (process.env.NODE_ENV !== 'production') {\n logger.debug(\"Network request for \" + \"'\".concat(getFriendlyURL(request.url), \"' returned a response with \") + \"status '\".concat(fetchResponse.status, \"'.\"));\n }\n\n _iterator3 = _createForOfIteratorHelper(this.iterateCallbacks('fetchDidSucceed'));\n _context.prev = 41;\n\n _iterator3.s();\n\n case 43:\n if ((_step3 = _iterator3.n()).done) {\n _context.next = 50;\n break;\n }\n\n callback = _step3.value;\n _context.next = 47;\n return callback({\n event: event,\n request: pluginFilteredRequest,\n response: fetchResponse\n });\n\n case 47:\n fetchResponse = _context.sent;\n\n case 48:\n _context.next = 43;\n break;\n\n case 50:\n _context.next = 55;\n break;\n\n case 52:\n _context.prev = 52;\n _context.t2 = _context[\"catch\"](41);\n\n _iterator3.e(_context.t2);\n\n case 55:\n _context.prev = 55;\n\n _iterator3.f();\n\n return _context.finish(55);\n\n case 58:\n return _context.abrupt(\"return\", fetchResponse);\n\n case 61:\n _context.prev = 61;\n _context.t3 = _context[\"catch\"](35);\n\n if (process.env.NODE_ENV !== 'production') {\n logger.log(\"Network request for \" + \"'\".concat(getFriendlyURL(request.url), \"' threw an error.\"), _context.t3);\n } // `originalRequest` will only exist if a `fetchDidFail` callback\n // is being used (see above).\n\n\n if (!originalRequest) {\n _context.next = 67;\n break;\n }\n\n _context.next = 67;\n return this.runCallbacks('fetchDidFail', {\n error: _context.t3,\n event: event,\n originalRequest: originalRequest.clone(),\n request: pluginFilteredRequest.clone()\n });\n\n case 67:\n throw _context.t3;\n\n case 68:\n case \"end\":\n return _context.stop();\n }\n }\n }, _callee, this, [[10, 31], [12, 23, 26, 29], [35, 61], [41, 52, 55, 58]]);\n }));\n\n return function (_x2) {\n return _ref.apply(this, arguments);\n };\n }())\n /**\n * Calls `this.fetch()` and (in the background) runs `this.cachePut()` on\n * the response generated by `this.fetch()`.\n *\n * The call to `this.cachePut()` automatically invokes `this.waitUntil()`,\n * so you do not have to manually call `waitUntil()` on the event.\n *\n * @param {Request|string} input The request or URL to fetch and cache.\n * @return {Promise}\n */\n\n }, {\n key: \"fetchAndCachePut\",\n value: function () {\n var _fetchAndCachePut = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee2(input) {\n var response, responseClone;\n return _regeneratorRuntime.wrap(function _callee2$(_context2) {\n while (1) {\n switch (_context2.prev = _context2.next) {\n case 0:\n _context2.next = 2;\n return this.fetch(input);\n\n case 2:\n response = _context2.sent;\n responseClone = response.clone();\n this.waitUntil(this.cachePut(input, responseClone));\n return _context2.abrupt(\"return\", response);\n\n case 6:\n case \"end\":\n return _context2.stop();\n }\n }\n }, _callee2, this);\n }));\n\n function fetchAndCachePut(_x3) {\n return _fetchAndCachePut.apply(this, arguments);\n }\n\n return fetchAndCachePut;\n }()\n /**\n * Matches a request from the cache (and invokes any applicable plugin\n * callback methods) using the `cacheName`, `matchOptions`, and `plugins`\n * defined on the strategy object.\n *\n * The following plugin lifecycle methods are invoked when using this method:\n * - cacheKeyWillByUsed()\n * - cachedResponseWillByUsed()\n *\n * @param {Request|string} key The Request or URL to use as the cache key.\n * @return {Promise} A matching response, if found.\n */\n\n }, {\n key: \"cacheMatch\",\n value: function () {\n var _cacheMatch = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee3(key) {\n var request, cachedResponse, _this$_strategy, cacheName, matchOptions, effectiveRequest, multiMatchOptions, _iterator4, _step4, callback;\n\n return _regeneratorRuntime.wrap(function _callee3$(_context3) {\n while (1) {\n switch (_context3.prev = _context3.next) {\n case 0:\n request = toRequest(key);\n _this$_strategy = this._strategy, cacheName = _this$_strategy.cacheName, matchOptions = _this$_strategy.matchOptions;\n _context3.next = 4;\n return this.getCacheKey(request, 'read');\n\n case 4:\n effectiveRequest = _context3.sent;\n multiMatchOptions = _objectSpread(_objectSpread({}, matchOptions), {\n cacheName: cacheName\n });\n _context3.next = 8;\n return caches.match(effectiveRequest, multiMatchOptions);\n\n case 8:\n cachedResponse = _context3.sent;\n\n if (process.env.NODE_ENV !== 'production') {\n if (cachedResponse) {\n logger.debug(\"Found a cached response in '\".concat(cacheName, \"'.\"));\n } else {\n logger.debug(\"No cached response found in '\".concat(cacheName, \"'.\"));\n }\n }\n\n _iterator4 = _createForOfIteratorHelper(this.iterateCallbacks('cachedResponseWillBeUsed'));\n _context3.prev = 11;\n\n _iterator4.s();\n\n case 13:\n if ((_step4 = _iterator4.n()).done) {\n _context3.next = 23;\n break;\n }\n\n callback = _step4.value;\n _context3.next = 17;\n return callback({\n cacheName: cacheName,\n matchOptions: matchOptions,\n cachedResponse: cachedResponse,\n request: effectiveRequest,\n event: this.event\n });\n\n case 17:\n _context3.t0 = _context3.sent;\n\n if (_context3.t0) {\n _context3.next = 20;\n break;\n }\n\n _context3.t0 = undefined;\n\n case 20:\n cachedResponse = _context3.t0;\n\n case 21:\n _context3.next = 13;\n break;\n\n case 23:\n _context3.next = 28;\n break;\n\n case 25:\n _context3.prev = 25;\n _context3.t1 = _context3[\"catch\"](11);\n\n _iterator4.e(_context3.t1);\n\n case 28:\n _context3.prev = 28;\n\n _iterator4.f();\n\n return _context3.finish(28);\n\n case 31:\n return _context3.abrupt(\"return\", cachedResponse);\n\n case 32:\n case \"end\":\n return _context3.stop();\n }\n }\n }, _callee3, this, [[11, 25, 28, 31]]);\n }));\n\n function cacheMatch(_x4) {\n return _cacheMatch.apply(this, arguments);\n }\n\n return cacheMatch;\n }()\n /**\n * Puts a request/response pair in the cache (and invokes any applicable\n * plugin callback methods) using the `cacheName` and `plugins` defined on\n * the strategy object.\n *\n * The following plugin lifecycle methods are invoked when using this method:\n * - cacheKeyWillByUsed()\n * - cacheWillUpdate()\n * - cacheDidUpdate()\n *\n * @param {Request|string} key The request or URL to use as the cache key.\n * @param {Response} response The response to cache.\n * @return {Promise} `false` if a cacheWillUpdate caused the response\n * not be cached, and `true` otherwise.\n */\n\n }, {\n key: \"cachePut\",\n value: function () {\n var _cachePut = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee4(key, response) {\n var request, effectiveRequest, responseToCache, _this$_strategy2, cacheName, matchOptions, cache, hasCacheUpdateCallback, oldResponse, _iterator5, _step5, callback;\n\n return _regeneratorRuntime.wrap(function _callee4$(_context4) {\n while (1) {\n switch (_context4.prev = _context4.next) {\n case 0:\n request = toRequest(key); // Run in the next task to avoid blocking other cache reads.\n // https://github.com/w3c/ServiceWorker/issues/1397\n\n _context4.next = 3;\n return timeout(0);\n\n case 3:\n _context4.next = 5;\n return this.getCacheKey(request, 'write');\n\n case 5:\n effectiveRequest = _context4.sent;\n\n if (!(process.env.NODE_ENV !== 'production')) {\n _context4.next = 9;\n break;\n }\n\n if (!(effectiveRequest.method && effectiveRequest.method !== 'GET')) {\n _context4.next = 9;\n break;\n }\n\n throw new WorkboxError('attempt-to-cache-non-get-request', {\n url: getFriendlyURL(effectiveRequest.url),\n method: effectiveRequest.method\n });\n\n case 9:\n if (response) {\n _context4.next = 12;\n break;\n }\n\n if (process.env.NODE_ENV !== 'production') {\n logger.error(\"Cannot cache non-existent response for \" + \"'\".concat(getFriendlyURL(effectiveRequest.url), \"'.\"));\n }\n\n throw new WorkboxError('cache-put-with-no-response', {\n url: getFriendlyURL(effectiveRequest.url)\n });\n\n case 12:\n _context4.next = 14;\n return this._ensureResponseSafeToCache(response);\n\n case 14:\n responseToCache = _context4.sent;\n\n if (responseToCache) {\n _context4.next = 18;\n break;\n }\n\n if (process.env.NODE_ENV !== 'production') {\n logger.debug(\"Response '\".concat(getFriendlyURL(effectiveRequest.url), \"' \") + \"will not be cached.\", responseToCache);\n }\n\n return _context4.abrupt(\"return\", false);\n\n case 18:\n _this$_strategy2 = this._strategy, cacheName = _this$_strategy2.cacheName, matchOptions = _this$_strategy2.matchOptions;\n _context4.next = 21;\n return self.caches.open(cacheName);\n\n case 21:\n cache = _context4.sent;\n hasCacheUpdateCallback = this.hasCallback('cacheDidUpdate');\n\n if (!hasCacheUpdateCallback) {\n _context4.next = 29;\n break;\n }\n\n _context4.next = 26;\n return cacheMatchIgnoreParams( // TODO(philipwalton): the `__WB_REVISION__` param is a precaching\n // feature. Consider into ways to only add this behavior if using\n // precaching.\n cache, effectiveRequest.clone(), ['__WB_REVISION__'], matchOptions);\n\n case 26:\n _context4.t0 = _context4.sent;\n _context4.next = 30;\n break;\n\n case 29:\n _context4.t0 = null;\n\n case 30:\n oldResponse = _context4.t0;\n\n if (process.env.NODE_ENV !== 'production') {\n logger.debug(\"Updating the '\".concat(cacheName, \"' cache with a new Response \") + \"for \".concat(getFriendlyURL(effectiveRequest.url), \".\"));\n }\n\n _context4.prev = 32;\n _context4.next = 35;\n return cache.put(effectiveRequest, hasCacheUpdateCallback ? responseToCache.clone() : responseToCache);\n\n case 35:\n _context4.next = 43;\n break;\n\n case 37:\n _context4.prev = 37;\n _context4.t1 = _context4[\"catch\"](32);\n\n if (!(_context4.t1.name === 'QuotaExceededError')) {\n _context4.next = 42;\n break;\n }\n\n _context4.next = 42;\n return executeQuotaErrorCallbacks();\n\n case 42:\n throw _context4.t1;\n\n case 43:\n _iterator5 = _createForOfIteratorHelper(this.iterateCallbacks('cacheDidUpdate'));\n _context4.prev = 44;\n\n _iterator5.s();\n\n case 46:\n if ((_step5 = _iterator5.n()).done) {\n _context4.next = 52;\n break;\n }\n\n callback = _step5.value;\n _context4.next = 50;\n return callback({\n cacheName: cacheName,\n oldResponse: oldResponse,\n newResponse: responseToCache.clone(),\n request: effectiveRequest,\n event: this.event\n });\n\n case 50:\n _context4.next = 46;\n break;\n\n case 52:\n _context4.next = 57;\n break;\n\n case 54:\n _context4.prev = 54;\n _context4.t2 = _context4[\"catch\"](44);\n\n _iterator5.e(_context4.t2);\n\n case 57:\n _context4.prev = 57;\n\n _iterator5.f();\n\n return _context4.finish(57);\n\n case 60:\n return _context4.abrupt(\"return\", true);\n\n case 61:\n case \"end\":\n return _context4.stop();\n }\n }\n }, _callee4, this, [[32, 37], [44, 54, 57, 60]]);\n }));\n\n function cachePut(_x5, _x6) {\n return _cachePut.apply(this, arguments);\n }\n\n return cachePut;\n }()\n /**\n * Checks the list of plugins for the `cacheKeyWillBeUsed` callback, and\n * executes any of those callbacks found in sequence. The final `Request`\n * object returned by the last plugin is treated as the cache key for cache\n * reads and/or writes. If no `cacheKeyWillBeUsed` plugin callbacks have\n * been registered, the passed request is returned unmodified\n *\n * @param {Request} request\n * @param {string} mode\n * @return {Promise}\n */\n\n }, {\n key: \"getCacheKey\",\n value: function () {\n var _getCacheKey = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee5(request, mode) {\n var effectiveRequest, _iterator6, _step6, callback;\n\n return _regeneratorRuntime.wrap(function _callee5$(_context5) {\n while (1) {\n switch (_context5.prev = _context5.next) {\n case 0:\n if (this._cacheKeys[mode]) {\n _context5.next = 23;\n break;\n }\n\n effectiveRequest = request;\n _iterator6 = _createForOfIteratorHelper(this.iterateCallbacks('cacheKeyWillBeUsed'));\n _context5.prev = 3;\n\n _iterator6.s();\n\n case 5:\n if ((_step6 = _iterator6.n()).done) {\n _context5.next = 14;\n break;\n }\n\n callback = _step6.value;\n _context5.t0 = toRequest;\n _context5.next = 10;\n return callback({\n mode: mode,\n request: effectiveRequest,\n event: this.event,\n params: this.params\n });\n\n case 10:\n _context5.t1 = _context5.sent;\n effectiveRequest = (0, _context5.t0)(_context5.t1);\n\n case 12:\n _context5.next = 5;\n break;\n\n case 14:\n _context5.next = 19;\n break;\n\n case 16:\n _context5.prev = 16;\n _context5.t2 = _context5[\"catch\"](3);\n\n _iterator6.e(_context5.t2);\n\n case 19:\n _context5.prev = 19;\n\n _iterator6.f();\n\n return _context5.finish(19);\n\n case 22:\n this._cacheKeys[mode] = effectiveRequest;\n\n case 23:\n return _context5.abrupt(\"return\", this._cacheKeys[mode]);\n\n case 24:\n case \"end\":\n return _context5.stop();\n }\n }\n }, _callee5, this, [[3, 16, 19, 22]]);\n }));\n\n function getCacheKey(_x7, _x8) {\n return _getCacheKey.apply(this, arguments);\n }\n\n return getCacheKey;\n }()\n /**\n * Returns true if the strategy has at least one plugin with the given\n * callback.\n *\n * @param {string} name The name of the callback to check for.\n * @return {boolean}\n */\n\n }, {\n key: \"hasCallback\",\n value: function hasCallback(name) {\n var _iterator7 = _createForOfIteratorHelper(this._strategy.plugins),\n _step7;\n\n try {\n for (_iterator7.s(); !(_step7 = _iterator7.n()).done;) {\n var plugin = _step7.value;\n\n if (name in plugin) {\n return true;\n }\n }\n } catch (err) {\n _iterator7.e(err);\n } finally {\n _iterator7.f();\n }\n\n return false;\n }\n /**\n * Runs all plugin callbacks matching the given name, in order, passing the\n * given param object (merged ith the current plugin state) as the only\n * argument.\n *\n * Note: since this method runs all plugins, it's not suitable for cases\n * where the return value of a callback needs to be applied prior to calling\n * the next callback. See\n * [`iterateCallbacks()`]{@link module:workbox-strategies.StrategyHandler#iterateCallbacks}\n * below for how to handle that case.\n *\n * @param {string} name The name of the callback to run within each plugin.\n * @param {Object} param The object to pass as the first (and only) param\n * when executing each callback. This object will be merged with the\n * current plugin state prior to callback execution.\n */\n\n }, {\n key: \"runCallbacks\",\n value: function () {\n var _runCallbacks = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee6(name, param) {\n var _iterator8, _step8, callback;\n\n return _regeneratorRuntime.wrap(function _callee6$(_context6) {\n while (1) {\n switch (_context6.prev = _context6.next) {\n case 0:\n _iterator8 = _createForOfIteratorHelper(this.iterateCallbacks(name));\n _context6.prev = 1;\n\n _iterator8.s();\n\n case 3:\n if ((_step8 = _iterator8.n()).done) {\n _context6.next = 9;\n break;\n }\n\n callback = _step8.value;\n _context6.next = 7;\n return callback(param);\n\n case 7:\n _context6.next = 3;\n break;\n\n case 9:\n _context6.next = 14;\n break;\n\n case 11:\n _context6.prev = 11;\n _context6.t0 = _context6[\"catch\"](1);\n\n _iterator8.e(_context6.t0);\n\n case 14:\n _context6.prev = 14;\n\n _iterator8.f();\n\n return _context6.finish(14);\n\n case 17:\n case \"end\":\n return _context6.stop();\n }\n }\n }, _callee6, this, [[1, 11, 14, 17]]);\n }));\n\n function runCallbacks(_x9, _x10) {\n return _runCallbacks.apply(this, arguments);\n }\n\n return runCallbacks;\n }()\n /**\n * Accepts a callback and returns an iterable of matching plugin callbacks,\n * where each callback is wrapped with the current handler state (i.e. when\n * you call each callback, whatever object parameter you pass it will\n * be merged with the plugin's current state).\n *\n * @param {string} name The name fo the callback to run\n * @return {Array}\n */\n\n }, {\n key: \"iterateCallbacks\",\n value: /*#__PURE__*/_regeneratorRuntime.mark(function iterateCallbacks(name) {\n var _this = this;\n\n var _iterator9, _step9, _loop;\n\n return _regeneratorRuntime.wrap(function iterateCallbacks$(_context8) {\n while (1) {\n switch (_context8.prev = _context8.next) {\n case 0:\n _iterator9 = _createForOfIteratorHelper(this._strategy.plugins);\n _context8.prev = 1;\n _loop = /*#__PURE__*/_regeneratorRuntime.mark(function _loop() {\n var plugin, state, statefulCallback;\n return _regeneratorRuntime.wrap(function _loop$(_context7) {\n while (1) {\n switch (_context7.prev = _context7.next) {\n case 0:\n plugin = _step9.value;\n\n if (!(typeof plugin[name] === 'function')) {\n _context7.next = 6;\n break;\n }\n\n state = _this._pluginStateMap.get(plugin);\n\n statefulCallback = function statefulCallback(param) {\n var statefulParam = _objectSpread(_objectSpread({}, param), {}, {\n state: state\n }); // TODO(philipwalton): not sure why `any` is needed. It seems like\n // this should work with `as WorkboxPluginCallbackParam[C]`.\n\n\n return plugin[name](statefulParam);\n };\n\n _context7.next = 6;\n return statefulCallback;\n\n case 6:\n case \"end\":\n return _context7.stop();\n }\n }\n }, _loop);\n });\n\n _iterator9.s();\n\n case 4:\n if ((_step9 = _iterator9.n()).done) {\n _context8.next = 8;\n break;\n }\n\n return _context8.delegateYield(_loop(), \"t0\", 6);\n\n case 6:\n _context8.next = 4;\n break;\n\n case 8:\n _context8.next = 13;\n break;\n\n case 10:\n _context8.prev = 10;\n _context8.t1 = _context8[\"catch\"](1);\n\n _iterator9.e(_context8.t1);\n\n case 13:\n _context8.prev = 13;\n\n _iterator9.f();\n\n return _context8.finish(13);\n\n case 16:\n case \"end\":\n return _context8.stop();\n }\n }\n }, iterateCallbacks, this, [[1, 10, 13, 16]]);\n })\n /**\n * Adds a promise to the\n * [extend lifetime promises]{@link https://w3c.github.io/ServiceWorker/#extendableevent-extend-lifetime-promises}\n * of the event event associated with the request being handled (usually a\n * `FetchEvent`).\n *\n * Note: you can await\n * [`doneWaiting()`]{@link module:workbox-strategies.StrategyHandler~doneWaiting}\n * to know when all added promises have settled.\n *\n * @param {Promise} promise A promise to add to the extend lifetime promises\n * of the event that triggered the request.\n */\n\n }, {\n key: \"waitUntil\",\n value: function waitUntil(promise) {\n this._extendLifetimePromises.push(promise);\n\n return promise;\n }\n /**\n * Returns a promise that resolves once all promises passed to\n * [`waitUntil()`]{@link module:workbox-strategies.StrategyHandler~waitUntil}\n * have settled.\n *\n * Note: any work done after `doneWaiting()` settles should be manually\n * passed to an event's `waitUntil()` method (not this handler's\n * `waitUntil()` method), otherwise the service worker thread my be killed\n * prior to your work completing.\n */\n\n }, {\n key: \"doneWaiting\",\n value: function () {\n var _doneWaiting = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee7() {\n var promise;\n return _regeneratorRuntime.wrap(function _callee7$(_context9) {\n while (1) {\n switch (_context9.prev = _context9.next) {\n case 0:\n if (!(promise = this._extendLifetimePromises.shift())) {\n _context9.next = 5;\n break;\n }\n\n _context9.next = 3;\n return promise;\n\n case 3:\n _context9.next = 0;\n break;\n\n case 5:\n case \"end\":\n return _context9.stop();\n }\n }\n }, _callee7, this);\n }));\n\n function doneWaiting() {\n return _doneWaiting.apply(this, arguments);\n }\n\n return doneWaiting;\n }()\n /**\n * Stops running the strategy and immediately resolves any pending\n * `waitUntil()` promises.\n */\n\n }, {\n key: \"destroy\",\n value: function destroy() {\n this._handlerDeferred.resolve();\n }\n /**\n * This method will call cacheWillUpdate on the available plugins (or use\n * status === 200) to determine if the Response is safe and valid to cache.\n *\n * @param {Request} options.request\n * @param {Response} options.response\n * @return {Promise}\n *\n * @private\n */\n\n }, {\n key: \"_ensureResponseSafeToCache\",\n value: function () {\n var _ensureResponseSafeToCache2 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee8(response) {\n var responseToCache, pluginsUsed, _iterator10, _step10, callback;\n\n return _regeneratorRuntime.wrap(function _callee8$(_context10) {\n while (1) {\n switch (_context10.prev = _context10.next) {\n case 0:\n responseToCache = response;\n pluginsUsed = false;\n _iterator10 = _createForOfIteratorHelper(this.iterateCallbacks('cacheWillUpdate'));\n _context10.prev = 3;\n\n _iterator10.s();\n\n case 5:\n if ((_step10 = _iterator10.n()).done) {\n _context10.next = 18;\n break;\n }\n\n callback = _step10.value;\n _context10.next = 9;\n return callback({\n request: this.request,\n response: responseToCache,\n event: this.event\n });\n\n case 9:\n _context10.t0 = _context10.sent;\n\n if (_context10.t0) {\n _context10.next = 12;\n break;\n }\n\n _context10.t0 = undefined;\n\n case 12:\n responseToCache = _context10.t0;\n pluginsUsed = true;\n\n if (responseToCache) {\n _context10.next = 16;\n break;\n }\n\n return _context10.abrupt(\"break\", 18);\n\n case 16:\n _context10.next = 5;\n break;\n\n case 18:\n _context10.next = 23;\n break;\n\n case 20:\n _context10.prev = 20;\n _context10.t1 = _context10[\"catch\"](3);\n\n _iterator10.e(_context10.t1);\n\n case 23:\n _context10.prev = 23;\n\n _iterator10.f();\n\n return _context10.finish(23);\n\n case 26:\n if (!pluginsUsed) {\n if (responseToCache && responseToCache.status !== 200) {\n responseToCache = undefined;\n }\n\n if (process.env.NODE_ENV !== 'production') {\n if (responseToCache) {\n if (responseToCache.status !== 200) {\n if (responseToCache.status === 0) {\n logger.warn(\"The response for '\".concat(this.request.url, \"' \") + \"is an opaque response. The caching strategy that you're \" + \"using will not cache opaque responses by default.\");\n } else {\n logger.debug(\"The response for '\".concat(this.request.url, \"' \") + \"returned a status code of '\".concat(response.status, \"' and won't \") + \"be cached as a result.\");\n }\n }\n }\n }\n }\n\n return _context10.abrupt(\"return\", responseToCache);\n\n case 28:\n case \"end\":\n return _context10.stop();\n }\n }\n }, _callee8, this, [[3, 20, 23, 26]]);\n }));\n\n function _ensureResponseSafeToCache(_x11) {\n return _ensureResponseSafeToCache2.apply(this, arguments);\n }\n\n return _ensureResponseSafeToCache;\n }()\n }]);\n\n return StrategyHandler;\n}();\n\nexport { StrategyHandler };","import _regeneratorRuntime from \"/home/runner/work/shlink-web-client/shlink-web-client/node_modules/babel-preset-react-app/node_modules/@babel/runtime/regenerator\";\nimport _createForOfIteratorHelper from \"/home/runner/work/shlink-web-client/shlink-web-client/node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/createForOfIteratorHelper\";\nimport _asyncToGenerator from \"/home/runner/work/shlink-web-client/shlink-web-client/node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/asyncToGenerator\";\nimport _slicedToArray from \"/home/runner/work/shlink-web-client/shlink-web-client/node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/slicedToArray\";\nimport _classCallCheck from \"/home/runner/work/shlink-web-client/shlink-web-client/node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/classCallCheck\";\nimport _createClass from \"/home/runner/work/shlink-web-client/shlink-web-client/node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/createClass\";\n\n/*\n Copyright 2020 Google LLC\n\n Use of this source code is governed by an MIT-style\n license that can be found in the LICENSE file or at\n https://opensource.org/licenses/MIT.\n*/\nimport { cacheNames } from 'workbox-core/_private/cacheNames.js';\nimport { WorkboxError } from 'workbox-core/_private/WorkboxError.js';\nimport { logger } from 'workbox-core/_private/logger.js';\nimport { getFriendlyURL } from 'workbox-core/_private/getFriendlyURL.js';\nimport { StrategyHandler } from './StrategyHandler.js';\nimport './_version.js';\n/**\n * An abstract base class that all other strategy classes must extend from:\n *\n * @memberof module:workbox-strategies\n */\n\nvar Strategy = /*#__PURE__*/function () {\n /**\n * Creates a new instance of the strategy and sets all documented option\n * properties as public instance properties.\n *\n * Note: if a custom strategy class extends the base Strategy class and does\n * not need more than these properties, it does not need to define its own\n * constructor.\n *\n * @param {Object} [options]\n * @param {string} [options.cacheName] Cache name to store and retrieve\n * requests. Defaults to the cache names provided by\n * [workbox-core]{@link module:workbox-core.cacheNames}.\n * @param {Array} [options.plugins] [Plugins]{@link https://developers.google.com/web/tools/workbox/guides/using-plugins}\n * to use in conjunction with this caching strategy.\n * @param {Object} [options.fetchOptions] Values passed along to the\n * [`init`](https://developer.mozilla.org/en-US/docs/Web/API/WindowOrWorkerGlobalScope/fetch#Parameters)\n * of [non-navigation](https://github.com/GoogleChrome/workbox/issues/1796)\n * `fetch()` requests made by this strategy.\n * @param {Object} [options.matchOptions] The\n * [`CacheQueryOptions`]{@link https://w3c.github.io/ServiceWorker/#dictdef-cachequeryoptions}\n * for any `cache.match()` or `cache.put()` calls made by this strategy.\n */\n function Strategy() {\n var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n\n _classCallCheck(this, Strategy);\n\n /**\n * Cache name to store and retrieve\n * requests. Defaults to the cache names provided by\n * [workbox-core]{@link module:workbox-core.cacheNames}.\n *\n * @type {string}\n */\n this.cacheName = cacheNames.getRuntimeName(options.cacheName);\n /**\n * The list\n * [Plugins]{@link https://developers.google.com/web/tools/workbox/guides/using-plugins}\n * used by this strategy.\n *\n * @type {Array}\n */\n\n this.plugins = options.plugins || [];\n /**\n * Values passed along to the\n * [`init`]{@link https://developer.mozilla.org/en-US/docs/Web/API/WindowOrWorkerGlobalScope/fetch#Parameters}\n * of all fetch() requests made by this strategy.\n *\n * @type {Object}\n */\n\n this.fetchOptions = options.fetchOptions;\n /**\n * The\n * [`CacheQueryOptions`]{@link https://w3c.github.io/ServiceWorker/#dictdef-cachequeryoptions}\n * for any `cache.match()` or `cache.put()` calls made by this strategy.\n *\n * @type {Object}\n */\n\n this.matchOptions = options.matchOptions;\n }\n /**\n * Perform a request strategy and returns a `Promise` that will resolve with\n * a `Response`, invoking all relevant plugin callbacks.\n *\n * When a strategy instance is registered with a Workbox\n * [route]{@link module:workbox-routing.Route}, this method is automatically\n * called when the route matches.\n *\n * Alternatively, this method can be used in a standalone `FetchEvent`\n * listener by passing it to `event.respondWith()`.\n *\n * @param {FetchEvent|Object} options A `FetchEvent` or an object with the\n * properties listed below.\n * @param {Request|string} options.request A request to run this strategy for.\n * @param {ExtendableEvent} options.event The event associated with the\n * request.\n * @param {URL} [options.url]\n * @param {*} [options.params]\n */\n\n\n _createClass(Strategy, [{\n key: \"handle\",\n value: function handle(options) {\n var _this$handleAll = this.handleAll(options),\n _this$handleAll2 = _slicedToArray(_this$handleAll, 1),\n responseDone = _this$handleAll2[0];\n\n return responseDone;\n }\n /**\n * Similar to [`handle()`]{@link module:workbox-strategies.Strategy~handle}, but\n * instead of just returning a `Promise` that resolves to a `Response` it\n * it will return an tuple of [response, done] promises, where the former\n * (`response`) is equivalent to what `handle()` returns, and the latter is a\n * Promise that will resolve once any promises that were added to\n * `event.waitUntil()` as part of performing the strategy have completed.\n *\n * You can await the `done` promise to ensure any extra work performed by\n * the strategy (usually caching responses) completes successfully.\n *\n * @param {FetchEvent|Object} options A `FetchEvent` or an object with the\n * properties listed below.\n * @param {Request|string} options.request A request to run this strategy for.\n * @param {ExtendableEvent} options.event The event associated with the\n * request.\n * @param {URL} [options.url]\n * @param {*} [options.params]\n * @return {Array} A tuple of [response, done]\n * promises that can be used to determine when the response resolves as\n * well as when the handler has completed all its work.\n */\n\n }, {\n key: \"handleAll\",\n value: function handleAll(options) {\n // Allow for flexible options to be passed.\n if (options instanceof FetchEvent) {\n options = {\n event: options,\n request: options.request\n };\n }\n\n var event = options.event;\n var request = typeof options.request === 'string' ? new Request(options.request) : options.request;\n var params = 'params' in options ? options.params : undefined;\n var handler = new StrategyHandler(this, {\n event: event,\n request: request,\n params: params\n });\n\n var responseDone = this._getResponse(handler, request, event);\n\n var handlerDone = this._awaitComplete(responseDone, handler, request, event); // Return an array of promises, suitable for use with Promise.all().\n\n\n return [responseDone, handlerDone];\n }\n }, {\n key: \"_getResponse\",\n value: function () {\n var _getResponse2 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee(handler, request, event) {\n var response, _iterator, _step, callback, _iterator2, _step2, _callback;\n\n return _regeneratorRuntime.wrap(function _callee$(_context) {\n while (1) {\n switch (_context.prev = _context.next) {\n case 0:\n _context.next = 2;\n return handler.runCallbacks('handlerWillStart', {\n event: event,\n request: request\n });\n\n case 2:\n response = undefined;\n _context.prev = 3;\n _context.next = 6;\n return this._handle(request, handler);\n\n case 6:\n response = _context.sent;\n\n if (!(!response || response.type === 'error')) {\n _context.next = 9;\n break;\n }\n\n throw new WorkboxError('no-response', {\n url: request.url\n });\n\n case 9:\n _context.next = 38;\n break;\n\n case 11:\n _context.prev = 11;\n _context.t0 = _context[\"catch\"](3);\n _iterator = _createForOfIteratorHelper(handler.iterateCallbacks('handlerDidError'));\n _context.prev = 14;\n\n _iterator.s();\n\n case 16:\n if ((_step = _iterator.n()).done) {\n _context.next = 25;\n break;\n }\n\n callback = _step.value;\n _context.next = 20;\n return callback({\n error: _context.t0,\n event: event,\n request: request\n });\n\n case 20:\n response = _context.sent;\n\n if (!response) {\n _context.next = 23;\n break;\n }\n\n return _context.abrupt(\"break\", 25);\n\n case 23:\n _context.next = 16;\n break;\n\n case 25:\n _context.next = 30;\n break;\n\n case 27:\n _context.prev = 27;\n _context.t1 = _context[\"catch\"](14);\n\n _iterator.e(_context.t1);\n\n case 30:\n _context.prev = 30;\n\n _iterator.f();\n\n return _context.finish(30);\n\n case 33:\n if (response) {\n _context.next = 37;\n break;\n }\n\n throw _context.t0;\n\n case 37:\n if (process.env.NODE_ENV !== 'production') {\n logger.log(\"While responding to '\".concat(getFriendlyURL(request.url), \"', \") + \"an \".concat(_context.t0, \" error occurred. Using a fallback response provided by \") + \"a handlerDidError plugin.\");\n }\n\n case 38:\n _iterator2 = _createForOfIteratorHelper(handler.iterateCallbacks('handlerWillRespond'));\n _context.prev = 39;\n\n _iterator2.s();\n\n case 41:\n if ((_step2 = _iterator2.n()).done) {\n _context.next = 48;\n break;\n }\n\n _callback = _step2.value;\n _context.next = 45;\n return _callback({\n event: event,\n request: request,\n response: response\n });\n\n case 45:\n response = _context.sent;\n\n case 46:\n _context.next = 41;\n break;\n\n case 48:\n _context.next = 53;\n break;\n\n case 50:\n _context.prev = 50;\n _context.t2 = _context[\"catch\"](39);\n\n _iterator2.e(_context.t2);\n\n case 53:\n _context.prev = 53;\n\n _iterator2.f();\n\n return _context.finish(53);\n\n case 56:\n return _context.abrupt(\"return\", response);\n\n case 57:\n case \"end\":\n return _context.stop();\n }\n }\n }, _callee, this, [[3, 11], [14, 27, 30, 33], [39, 50, 53, 56]]);\n }));\n\n function _getResponse(_x, _x2, _x3) {\n return _getResponse2.apply(this, arguments);\n }\n\n return _getResponse;\n }()\n }, {\n key: \"_awaitComplete\",\n value: function () {\n var _awaitComplete2 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee2(responseDone, handler, request, event) {\n var response, error;\n return _regeneratorRuntime.wrap(function _callee2$(_context2) {\n while (1) {\n switch (_context2.prev = _context2.next) {\n case 0:\n _context2.prev = 0;\n _context2.next = 3;\n return responseDone;\n\n case 3:\n response = _context2.sent;\n _context2.next = 8;\n break;\n\n case 6:\n _context2.prev = 6;\n _context2.t0 = _context2[\"catch\"](0);\n\n case 8:\n _context2.prev = 8;\n _context2.next = 11;\n return handler.runCallbacks('handlerDidRespond', {\n event: event,\n request: request,\n response: response\n });\n\n case 11:\n _context2.next = 13;\n return handler.doneWaiting();\n\n case 13:\n _context2.next = 18;\n break;\n\n case 15:\n _context2.prev = 15;\n _context2.t1 = _context2[\"catch\"](8);\n error = _context2.t1;\n\n case 18:\n _context2.next = 20;\n return handler.runCallbacks('handlerDidComplete', {\n event: event,\n request: request,\n response: response,\n error: error\n });\n\n case 20:\n handler.destroy();\n\n if (!error) {\n _context2.next = 23;\n break;\n }\n\n throw error;\n\n case 23:\n case \"end\":\n return _context2.stop();\n }\n }\n }, _callee2, null, [[0, 6], [8, 15]]);\n }));\n\n function _awaitComplete(_x4, _x5, _x6, _x7) {\n return _awaitComplete2.apply(this, arguments);\n }\n\n return _awaitComplete;\n }()\n }]);\n\n return Strategy;\n}();\n\nexport { Strategy };\n/**\n * Classes extending the `Strategy` based class should implement this method,\n * and leverage the [`handler`]{@link module:workbox-strategies.StrategyHandler}\n * arg to perform all fetching and cache logic, which will ensure all relevant\n * cache, cache options, fetch options and plugins are used (per the current\n * strategy instance).\n *\n * @name _handle\n * @instance\n * @abstract\n * @function\n * @param {Request} request\n * @param {module:workbox-strategies.StrategyHandler} handler\n * @return {Promise}\n *\n * @memberof module:workbox-strategies.Strategy\n */","import _slicedToArray from \"/home/runner/work/shlink-web-client/shlink-web-client/node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/slicedToArray\";\nimport _createForOfIteratorHelper from \"/home/runner/work/shlink-web-client/shlink-web-client/node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/createForOfIteratorHelper\";\nimport _regeneratorRuntime from \"/home/runner/work/shlink-web-client/shlink-web-client/node_modules/babel-preset-react-app/node_modules/@babel/runtime/regenerator\";\nimport _asyncToGenerator from \"/home/runner/work/shlink-web-client/shlink-web-client/node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/asyncToGenerator\";\nimport _classCallCheck from \"/home/runner/work/shlink-web-client/shlink-web-client/node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/classCallCheck\";\nimport _createClass from \"/home/runner/work/shlink-web-client/shlink-web-client/node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/createClass\";\nimport _inherits from \"/home/runner/work/shlink-web-client/shlink-web-client/node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/inherits\";\nimport _createSuper from \"/home/runner/work/shlink-web-client/shlink-web-client/node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/createSuper\";\n\n/*\n Copyright 2020 Google LLC\n\n Use of this source code is governed by an MIT-style\n license that can be found in the LICENSE file or at\n https://opensource.org/licenses/MIT.\n*/\nimport { copyResponse } from 'workbox-core/copyResponse.js';\nimport { cacheNames } from 'workbox-core/_private/cacheNames.js';\nimport { getFriendlyURL } from 'workbox-core/_private/getFriendlyURL.js';\nimport { logger } from 'workbox-core/_private/logger.js';\nimport { WorkboxError } from 'workbox-core/_private/WorkboxError.js';\nimport { Strategy } from 'workbox-strategies/Strategy.js';\nimport './_version.js';\n/**\n * A [Strategy]{@link module:workbox-strategies.Strategy} implementation\n * specifically designed to work with\n * [PrecacheController]{@link module:workbox-precaching.PrecacheController}\n * to both cache and fetch precached assets.\n *\n * Note: an instance of this class is created automatically when creating a\n * `PrecacheController`; it's generally not necessary to create this yourself.\n *\n * @extends module:workbox-strategies.Strategy\n * @memberof module:workbox-precaching\n */\n\nvar PrecacheStrategy = /*#__PURE__*/function (_Strategy) {\n _inherits(PrecacheStrategy, _Strategy);\n\n var _super = _createSuper(PrecacheStrategy);\n\n /**\n *\n * @param {Object} [options]\n * @param {string} [options.cacheName] Cache name to store and retrieve\n * requests. Defaults to the cache names provided by\n * [workbox-core]{@link module:workbox-core.cacheNames}.\n * @param {Array} [options.plugins] [Plugins]{@link https://developers.google.com/web/tools/workbox/guides/using-plugins}\n * to use in conjunction with this caching strategy.\n * @param {Object} [options.fetchOptions] Values passed along to the\n * [`init`]{@link https://developer.mozilla.org/en-US/docs/Web/API/WindowOrWorkerGlobalScope/fetch#Parameters}\n * of all fetch() requests made by this strategy.\n * @param {Object} [options.matchOptions] The\n * [`CacheQueryOptions`]{@link https://w3c.github.io/ServiceWorker/#dictdef-cachequeryoptions}\n * for any `cache.match()` or `cache.put()` calls made by this strategy.\n * @param {boolean} [options.fallbackToNetwork=true] Whether to attempt to\n * get the response from the network if there's a precache miss.\n */\n function PrecacheStrategy() {\n var _this;\n\n var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n\n _classCallCheck(this, PrecacheStrategy);\n\n options.cacheName = cacheNames.getPrecacheName(options.cacheName);\n _this = _super.call(this, options);\n _this._fallbackToNetwork = options.fallbackToNetwork === false ? false : true; // Redirected responses cannot be used to satisfy a navigation request, so\n // any redirected response must be \"copied\" rather than cloned, so the new\n // response doesn't contain the `redirected` flag. See:\n // https://bugs.chromium.org/p/chromium/issues/detail?id=669363&desc=2#c1\n\n _this.plugins.push(PrecacheStrategy.copyRedirectedCacheableResponsesPlugin);\n\n return _this;\n }\n /**\n * @private\n * @param {Request|string} request A request to run this strategy for.\n * @param {module:workbox-strategies.StrategyHandler} handler The event that\n * triggered the request.\n * @return {Promise}\n */\n\n\n _createClass(PrecacheStrategy, [{\n key: \"_handle\",\n value: function () {\n var _handle2 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee(request, handler) {\n var response;\n return _regeneratorRuntime.wrap(function _callee$(_context) {\n while (1) {\n switch (_context.prev = _context.next) {\n case 0:\n _context.next = 2;\n return handler.cacheMatch(request);\n\n case 2:\n response = _context.sent;\n\n if (response) {\n _context.next = 11;\n break;\n }\n\n if (!(handler.event && handler.event.type === 'install')) {\n _context.next = 8;\n break;\n }\n\n _context.next = 7;\n return this._handleInstall(request, handler);\n\n case 7:\n return _context.abrupt(\"return\", _context.sent);\n\n case 8:\n _context.next = 10;\n return this._handleFetch(request, handler);\n\n case 10:\n return _context.abrupt(\"return\", _context.sent);\n\n case 11:\n return _context.abrupt(\"return\", response);\n\n case 12:\n case \"end\":\n return _context.stop();\n }\n }\n }, _callee, this);\n }));\n\n function _handle(_x, _x2) {\n return _handle2.apply(this, arguments);\n }\n\n return _handle;\n }()\n }, {\n key: \"_handleFetch\",\n value: function () {\n var _handleFetch2 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee2(request, handler) {\n var response, cacheKey;\n return _regeneratorRuntime.wrap(function _callee2$(_context2) {\n while (1) {\n switch (_context2.prev = _context2.next) {\n case 0:\n if (!this._fallbackToNetwork) {\n _context2.next = 7;\n break;\n }\n\n if (process.env.NODE_ENV !== 'production') {\n logger.warn(\"The precached response for \" + \"\".concat(getFriendlyURL(request.url), \" in \").concat(this.cacheName, \" was not \") + \"found. Falling back to the network instead.\");\n }\n\n _context2.next = 4;\n return handler.fetch(request);\n\n case 4:\n response = _context2.sent;\n _context2.next = 8;\n break;\n\n case 7:\n throw new WorkboxError('missing-precache-entry', {\n cacheName: this.cacheName,\n url: request.url\n });\n\n case 8:\n if (!(process.env.NODE_ENV !== 'production')) {\n _context2.next = 24;\n break;\n }\n\n _context2.t0 = handler.params && handler.params.cacheKey;\n\n if (_context2.t0) {\n _context2.next = 14;\n break;\n }\n\n _context2.next = 13;\n return handler.getCacheKey(request, 'read');\n\n case 13:\n _context2.t0 = _context2.sent;\n\n case 14:\n cacheKey = _context2.t0;\n // Workbox is going to handle the route.\n // print the routing details to the console.\n logger.groupCollapsed(\"Precaching is responding to: \" + getFriendlyURL(request.url));\n logger.log(\"Serving the precached url: \".concat(getFriendlyURL(cacheKey.url)));\n logger.groupCollapsed(\"View request details here.\");\n logger.log(request);\n logger.groupEnd();\n logger.groupCollapsed(\"View response details here.\");\n logger.log(response);\n logger.groupEnd();\n logger.groupEnd();\n\n case 24:\n return _context2.abrupt(\"return\", response);\n\n case 25:\n case \"end\":\n return _context2.stop();\n }\n }\n }, _callee2, this);\n }));\n\n function _handleFetch(_x3, _x4) {\n return _handleFetch2.apply(this, arguments);\n }\n\n return _handleFetch;\n }()\n }, {\n key: \"_handleInstall\",\n value: function () {\n var _handleInstall2 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee3(request, handler) {\n var response, wasCached;\n return _regeneratorRuntime.wrap(function _callee3$(_context3) {\n while (1) {\n switch (_context3.prev = _context3.next) {\n case 0:\n this._useDefaultCacheabilityPluginIfNeeded();\n\n _context3.next = 3;\n return handler.fetch(request);\n\n case 3:\n response = _context3.sent;\n _context3.next = 6;\n return handler.cachePut(request, response.clone());\n\n case 6:\n wasCached = _context3.sent;\n\n if (wasCached) {\n _context3.next = 9;\n break;\n }\n\n throw new WorkboxError('bad-precaching-response', {\n url: request.url,\n status: response.status\n });\n\n case 9:\n return _context3.abrupt(\"return\", response);\n\n case 10:\n case \"end\":\n return _context3.stop();\n }\n }\n }, _callee3, this);\n }));\n\n function _handleInstall(_x5, _x6) {\n return _handleInstall2.apply(this, arguments);\n }\n\n return _handleInstall;\n }()\n /**\n * This method is complex, as there a number of things to account for:\n *\n * The `plugins` array can be set at construction, and/or it might be added to\n * to at any time before the strategy is used.\n *\n * At the time the strategy is used (i.e. during an `install` event), there\n * needs to be at least one plugin that implements `cacheWillUpdate` in the\n * array, other than `copyRedirectedCacheableResponsesPlugin`.\n *\n * - If this method is called and there are no suitable `cacheWillUpdate`\n * plugins, we need to add `defaultPrecacheCacheabilityPlugin`.\n *\n * - If this method is called and there is exactly one `cacheWillUpdate`, then\n * we don't have to do anything (this might be a previously added\n * `defaultPrecacheCacheabilityPlugin`, or it might be a custom plugin).\n *\n * - If this method is called and there is more than one `cacheWillUpdate`,\n * then we need to check if one is `defaultPrecacheCacheabilityPlugin`. If so,\n * we need to remove it. (This situation is unlikely, but it could happen if\n * the strategy is used multiple times, the first without a `cacheWillUpdate`,\n * and then later on after manually adding a custom `cacheWillUpdate`.)\n *\n * See https://github.com/GoogleChrome/workbox/issues/2737 for more context.\n *\n * @private\n */\n\n }, {\n key: \"_useDefaultCacheabilityPluginIfNeeded\",\n value: function _useDefaultCacheabilityPluginIfNeeded() {\n var defaultPluginIndex = null;\n var cacheWillUpdatePluginCount = 0;\n\n var _iterator = _createForOfIteratorHelper(this.plugins.entries()),\n _step;\n\n try {\n for (_iterator.s(); !(_step = _iterator.n()).done;) {\n var _step$value = _slicedToArray(_step.value, 2),\n index = _step$value[0],\n plugin = _step$value[1];\n\n // Ignore the copy redirected plugin when determining what to do.\n if (plugin === PrecacheStrategy.copyRedirectedCacheableResponsesPlugin) {\n continue;\n } // Save the default plugin's index, in case it needs to be removed.\n\n\n if (plugin === PrecacheStrategy.defaultPrecacheCacheabilityPlugin) {\n defaultPluginIndex = index;\n }\n\n if (plugin.cacheWillUpdate) {\n cacheWillUpdatePluginCount++;\n }\n }\n } catch (err) {\n _iterator.e(err);\n } finally {\n _iterator.f();\n }\n\n if (cacheWillUpdatePluginCount === 0) {\n this.plugins.push(PrecacheStrategy.defaultPrecacheCacheabilityPlugin);\n } else if (cacheWillUpdatePluginCount > 1 && defaultPluginIndex !== null) {\n // Only remove the default plugin; multiple custom plugins are allowed.\n this.plugins.splice(defaultPluginIndex, 1);\n } // Nothing needs to be done if cacheWillUpdatePluginCount is 1\n\n }\n }]);\n\n return PrecacheStrategy;\n}(Strategy);\n\nPrecacheStrategy.defaultPrecacheCacheabilityPlugin = {\n cacheWillUpdate: function cacheWillUpdate(_ref) {\n return _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee4() {\n var response;\n return _regeneratorRuntime.wrap(function _callee4$(_context4) {\n while (1) {\n switch (_context4.prev = _context4.next) {\n case 0:\n response = _ref.response;\n\n if (!(!response || response.status >= 400)) {\n _context4.next = 3;\n break;\n }\n\n return _context4.abrupt(\"return\", null);\n\n case 3:\n return _context4.abrupt(\"return\", response);\n\n case 4:\n case \"end\":\n return _context4.stop();\n }\n }\n }, _callee4);\n }))();\n }\n};\nPrecacheStrategy.copyRedirectedCacheableResponsesPlugin = {\n cacheWillUpdate: function cacheWillUpdate(_ref2) {\n return _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee5() {\n var response;\n return _regeneratorRuntime.wrap(function _callee5$(_context5) {\n while (1) {\n switch (_context5.prev = _context5.next) {\n case 0:\n response = _ref2.response;\n\n if (!response.redirected) {\n _context5.next = 7;\n break;\n }\n\n _context5.next = 4;\n return copyResponse(response);\n\n case 4:\n _context5.t0 = _context5.sent;\n _context5.next = 8;\n break;\n\n case 7:\n _context5.t0 = response;\n\n case 8:\n return _context5.abrupt(\"return\", _context5.t0);\n\n case 9:\n case \"end\":\n return _context5.stop();\n }\n }\n }, _callee5);\n }))();\n }\n};\nexport { PrecacheStrategy };","import _objectSpread from \"/home/runner/work/shlink-web-client/shlink-web-client/node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/objectSpread2\";\nimport _regeneratorRuntime from \"/home/runner/work/shlink-web-client/shlink-web-client/node_modules/babel-preset-react-app/node_modules/@babel/runtime/regenerator\";\nimport _slicedToArray from \"/home/runner/work/shlink-web-client/shlink-web-client/node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/slicedToArray\";\nimport _asyncToGenerator from \"/home/runner/work/shlink-web-client/shlink-web-client/node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/asyncToGenerator\";\nimport _createForOfIteratorHelper from \"/home/runner/work/shlink-web-client/shlink-web-client/node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/createForOfIteratorHelper\";\nimport _toConsumableArray from \"/home/runner/work/shlink-web-client/shlink-web-client/node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/toConsumableArray\";\nimport _classCallCheck from \"/home/runner/work/shlink-web-client/shlink-web-client/node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/classCallCheck\";\nimport _createClass from \"/home/runner/work/shlink-web-client/shlink-web-client/node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/createClass\";\n\n/*\n Copyright 2019 Google LLC\n\n Use of this source code is governed by an MIT-style\n license that can be found in the LICENSE file or at\n https://opensource.org/licenses/MIT.\n*/\nimport { assert } from 'workbox-core/_private/assert.js';\nimport { cacheNames } from 'workbox-core/_private/cacheNames.js';\nimport { logger } from 'workbox-core/_private/logger.js';\nimport { WorkboxError } from 'workbox-core/_private/WorkboxError.js';\nimport { waitUntil } from 'workbox-core/_private/waitUntil.js';\nimport { createCacheKey } from './utils/createCacheKey.js';\nimport { PrecacheInstallReportPlugin } from './utils/PrecacheInstallReportPlugin.js';\nimport { PrecacheCacheKeyPlugin } from './utils/PrecacheCacheKeyPlugin.js';\nimport { printCleanupDetails } from './utils/printCleanupDetails.js';\nimport { printInstallDetails } from './utils/printInstallDetails.js';\nimport { PrecacheStrategy } from './PrecacheStrategy.js';\nimport './_version.js';\n/**\n * Performs efficient precaching of assets.\n *\n * @memberof module:workbox-precaching\n */\n\nvar PrecacheController = /*#__PURE__*/function () {\n /**\n * Create a new PrecacheController.\n *\n * @param {Object} [options]\n * @param {string} [options.cacheName] The cache to use for precaching.\n * @param {string} [options.plugins] Plugins to use when precaching as well\n * as responding to fetch events for precached assets.\n * @param {boolean} [options.fallbackToNetwork=true] Whether to attempt to\n * get the response from the network if there's a precache miss.\n */\n function PrecacheController() {\n var _ref = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},\n cacheName = _ref.cacheName,\n _ref$plugins = _ref.plugins,\n plugins = _ref$plugins === void 0 ? [] : _ref$plugins,\n _ref$fallbackToNetwor = _ref.fallbackToNetwork,\n fallbackToNetwork = _ref$fallbackToNetwor === void 0 ? true : _ref$fallbackToNetwor;\n\n _classCallCheck(this, PrecacheController);\n\n this._urlsToCacheKeys = new Map();\n this._urlsToCacheModes = new Map();\n this._cacheKeysToIntegrities = new Map();\n this._strategy = new PrecacheStrategy({\n cacheName: cacheNames.getPrecacheName(cacheName),\n plugins: [].concat(_toConsumableArray(plugins), [new PrecacheCacheKeyPlugin({\n precacheController: this\n })]),\n fallbackToNetwork: fallbackToNetwork\n }); // Bind the install and activate methods to the instance.\n\n this.install = this.install.bind(this);\n this.activate = this.activate.bind(this);\n }\n /**\n * @type {module:workbox-precaching.PrecacheStrategy} The strategy created by this controller and\n * used to cache assets and respond to fetch events.\n */\n\n\n _createClass(PrecacheController, [{\n key: \"precache\",\n\n /**\n * Adds items to the precache list, removing any duplicates and\n * stores the files in the\n * [\"precache cache\"]{@link module:workbox-core.cacheNames} when the service\n * worker installs.\n *\n * This method can be called multiple times.\n *\n * @param {Array} [entries=[]] Array of entries to precache.\n */\n value: function precache(entries) {\n this.addToCacheList(entries);\n\n if (!this._installAndActiveListenersAdded) {\n self.addEventListener('install', this.install);\n self.addEventListener('activate', this.activate);\n this._installAndActiveListenersAdded = true;\n }\n }\n /**\n * This method will add items to the precache list, removing duplicates\n * and ensuring the information is valid.\n *\n * @param {Array} entries\n * Array of entries to precache.\n */\n\n }, {\n key: \"addToCacheList\",\n value: function addToCacheList(entries) {\n if (process.env.NODE_ENV !== 'production') {\n assert.isArray(entries, {\n moduleName: 'workbox-precaching',\n className: 'PrecacheController',\n funcName: 'addToCacheList',\n paramName: 'entries'\n });\n }\n\n var urlsToWarnAbout = [];\n\n var _iterator = _createForOfIteratorHelper(entries),\n _step;\n\n try {\n for (_iterator.s(); !(_step = _iterator.n()).done;) {\n var entry = _step.value;\n\n // See https://github.com/GoogleChrome/workbox/issues/2259\n if (typeof entry === 'string') {\n urlsToWarnAbout.push(entry);\n } else if (entry && entry.revision === undefined) {\n urlsToWarnAbout.push(entry.url);\n }\n\n var _createCacheKey = createCacheKey(entry),\n cacheKey = _createCacheKey.cacheKey,\n url = _createCacheKey.url;\n\n var cacheMode = typeof entry !== 'string' && entry.revision ? 'reload' : 'default';\n\n if (this._urlsToCacheKeys.has(url) && this._urlsToCacheKeys.get(url) !== cacheKey) {\n throw new WorkboxError('add-to-cache-list-conflicting-entries', {\n firstEntry: this._urlsToCacheKeys.get(url),\n secondEntry: cacheKey\n });\n }\n\n if (typeof entry !== 'string' && entry.integrity) {\n if (this._cacheKeysToIntegrities.has(cacheKey) && this._cacheKeysToIntegrities.get(cacheKey) !== entry.integrity) {\n throw new WorkboxError('add-to-cache-list-conflicting-integrities', {\n url: url\n });\n }\n\n this._cacheKeysToIntegrities.set(cacheKey, entry.integrity);\n }\n\n this._urlsToCacheKeys.set(url, cacheKey);\n\n this._urlsToCacheModes.set(url, cacheMode);\n\n if (urlsToWarnAbout.length > 0) {\n var warningMessage = \"Workbox is precaching URLs without revision \" + \"info: \".concat(urlsToWarnAbout.join(', '), \"\\nThis is generally NOT safe. \") + \"Learn more at https://bit.ly/wb-precache\";\n\n if (process.env.NODE_ENV === 'production') {\n // Use console directly to display this warning without bloating\n // bundle sizes by pulling in all of the logger codebase in prod.\n console.warn(warningMessage);\n } else {\n logger.warn(warningMessage);\n }\n }\n }\n } catch (err) {\n _iterator.e(err);\n } finally {\n _iterator.f();\n }\n }\n /**\n * Precaches new and updated assets. Call this method from the service worker\n * install event.\n *\n * Note: this method calls `event.waitUntil()` for you, so you do not need\n * to call it yourself in your event handlers.\n *\n * @param {ExtendableEvent} event\n * @return {Promise}\n */\n\n }, {\n key: \"install\",\n value: function install(event) {\n var _this = this;\n\n return waitUntil(event, /*#__PURE__*/_asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee() {\n var installReportPlugin, _iterator2, _step2, _step2$value, url, cacheKey, integrity, cacheMode, request, updatedURLs, notUpdatedURLs;\n\n return _regeneratorRuntime.wrap(function _callee$(_context) {\n while (1) {\n switch (_context.prev = _context.next) {\n case 0:\n installReportPlugin = new PrecacheInstallReportPlugin();\n\n _this.strategy.plugins.push(installReportPlugin); // Cache entries one at a time.\n // See https://github.com/GoogleChrome/workbox/issues/2528\n\n\n _iterator2 = _createForOfIteratorHelper(_this._urlsToCacheKeys);\n _context.prev = 3;\n\n _iterator2.s();\n\n case 5:\n if ((_step2 = _iterator2.n()).done) {\n _context.next = 14;\n break;\n }\n\n _step2$value = _slicedToArray(_step2.value, 2), url = _step2$value[0], cacheKey = _step2$value[1];\n integrity = _this._cacheKeysToIntegrities.get(cacheKey);\n cacheMode = _this._urlsToCacheModes.get(url);\n request = new Request(url, {\n integrity: integrity,\n cache: cacheMode,\n credentials: 'same-origin'\n });\n _context.next = 12;\n return Promise.all(_this.strategy.handleAll({\n params: {\n cacheKey: cacheKey\n },\n request: request,\n event: event\n }));\n\n case 12:\n _context.next = 5;\n break;\n\n case 14:\n _context.next = 19;\n break;\n\n case 16:\n _context.prev = 16;\n _context.t0 = _context[\"catch\"](3);\n\n _iterator2.e(_context.t0);\n\n case 19:\n _context.prev = 19;\n\n _iterator2.f();\n\n return _context.finish(19);\n\n case 22:\n updatedURLs = installReportPlugin.updatedURLs, notUpdatedURLs = installReportPlugin.notUpdatedURLs;\n\n if (process.env.NODE_ENV !== 'production') {\n printInstallDetails(updatedURLs, notUpdatedURLs);\n }\n\n return _context.abrupt(\"return\", {\n updatedURLs: updatedURLs,\n notUpdatedURLs: notUpdatedURLs\n });\n\n case 25:\n case \"end\":\n return _context.stop();\n }\n }\n }, _callee, null, [[3, 16, 19, 22]]);\n })));\n }\n /**\n * Deletes assets that are no longer present in the current precache manifest.\n * Call this method from the service worker activate event.\n *\n * Note: this method calls `event.waitUntil()` for you, so you do not need\n * to call it yourself in your event handlers.\n *\n * @param {ExtendableEvent} event\n * @return {Promise}\n */\n\n }, {\n key: \"activate\",\n value: function activate(event) {\n var _this2 = this;\n\n return waitUntil(event, /*#__PURE__*/_asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee2() {\n var cache, currentlyCachedRequests, expectedCacheKeys, deletedURLs, _iterator3, _step3, request;\n\n return _regeneratorRuntime.wrap(function _callee2$(_context2) {\n while (1) {\n switch (_context2.prev = _context2.next) {\n case 0:\n _context2.next = 2;\n return self.caches.open(_this2.strategy.cacheName);\n\n case 2:\n cache = _context2.sent;\n _context2.next = 5;\n return cache.keys();\n\n case 5:\n currentlyCachedRequests = _context2.sent;\n expectedCacheKeys = new Set(_this2._urlsToCacheKeys.values());\n deletedURLs = [];\n _iterator3 = _createForOfIteratorHelper(currentlyCachedRequests);\n _context2.prev = 9;\n\n _iterator3.s();\n\n case 11:\n if ((_step3 = _iterator3.n()).done) {\n _context2.next = 19;\n break;\n }\n\n request = _step3.value;\n\n if (expectedCacheKeys.has(request.url)) {\n _context2.next = 17;\n break;\n }\n\n _context2.next = 16;\n return cache.delete(request);\n\n case 16:\n deletedURLs.push(request.url);\n\n case 17:\n _context2.next = 11;\n break;\n\n case 19:\n _context2.next = 24;\n break;\n\n case 21:\n _context2.prev = 21;\n _context2.t0 = _context2[\"catch\"](9);\n\n _iterator3.e(_context2.t0);\n\n case 24:\n _context2.prev = 24;\n\n _iterator3.f();\n\n return _context2.finish(24);\n\n case 27:\n if (process.env.NODE_ENV !== 'production') {\n printCleanupDetails(deletedURLs);\n }\n\n return _context2.abrupt(\"return\", {\n deletedURLs: deletedURLs\n });\n\n case 29:\n case \"end\":\n return _context2.stop();\n }\n }\n }, _callee2, null, [[9, 21, 24, 27]]);\n })));\n }\n /**\n * Returns a mapping of a precached URL to the corresponding cache key, taking\n * into account the revision information for the URL.\n *\n * @return {Map} A URL to cache key mapping.\n */\n\n }, {\n key: \"getURLsToCacheKeys\",\n value: function getURLsToCacheKeys() {\n return this._urlsToCacheKeys;\n }\n /**\n * Returns a list of all the URLs that have been precached by the current\n * service worker.\n *\n * @return {Array} The precached URLs.\n */\n\n }, {\n key: \"getCachedURLs\",\n value: function getCachedURLs() {\n return _toConsumableArray(this._urlsToCacheKeys.keys());\n }\n /**\n * Returns the cache key used for storing a given URL. If that URL is\n * unversioned, like `/index.html', then the cache key will be the original\n * URL with a search parameter appended to it.\n *\n * @param {string} url A URL whose cache key you want to look up.\n * @return {string} The versioned URL that corresponds to a cache key\n * for the original URL, or undefined if that URL isn't precached.\n */\n\n }, {\n key: \"getCacheKeyForURL\",\n value: function getCacheKeyForURL(url) {\n var urlObject = new URL(url, location.href);\n return this._urlsToCacheKeys.get(urlObject.href);\n }\n /**\n * This acts as a drop-in replacement for\n * [`cache.match()`](https://developer.mozilla.org/en-US/docs/Web/API/Cache/match)\n * with the following differences:\n *\n * - It knows what the name of the precache is, and only checks in that cache.\n * - It allows you to pass in an \"original\" URL without versioning parameters,\n * and it will automatically look up the correct cache key for the currently\n * active revision of that URL.\n *\n * E.g., `matchPrecache('index.html')` will find the correct precached\n * response for the currently active service worker, even if the actual cache\n * key is `'/index.html?__WB_REVISION__=1234abcd'`.\n *\n * @param {string|Request} request The key (without revisioning parameters)\n * to look up in the precache.\n * @return {Promise}\n */\n\n }, {\n key: \"matchPrecache\",\n value: function () {\n var _matchPrecache = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee3(request) {\n var url, cacheKey, cache;\n return _regeneratorRuntime.wrap(function _callee3$(_context3) {\n while (1) {\n switch (_context3.prev = _context3.next) {\n case 0:\n url = request instanceof Request ? request.url : request;\n cacheKey = this.getCacheKeyForURL(url);\n\n if (!cacheKey) {\n _context3.next = 7;\n break;\n }\n\n _context3.next = 5;\n return self.caches.open(this.strategy.cacheName);\n\n case 5:\n cache = _context3.sent;\n return _context3.abrupt(\"return\", cache.match(cacheKey));\n\n case 7:\n return _context3.abrupt(\"return\", undefined);\n\n case 8:\n case \"end\":\n return _context3.stop();\n }\n }\n }, _callee3, this);\n }));\n\n function matchPrecache(_x) {\n return _matchPrecache.apply(this, arguments);\n }\n\n return matchPrecache;\n }()\n /**\n * Returns a function that looks up `url` in the precache (taking into\n * account revision information), and returns the corresponding `Response`.\n *\n * @param {string} url The precached URL which will be used to lookup the\n * `Response`.\n * @return {module:workbox-routing~handlerCallback}\n */\n\n }, {\n key: \"createHandlerBoundToURL\",\n value: function createHandlerBoundToURL(url) {\n var _this3 = this;\n\n var cacheKey = this.getCacheKeyForURL(url);\n\n if (!cacheKey) {\n throw new WorkboxError('non-precached-url', {\n url: url\n });\n }\n\n return function (options) {\n options.request = new Request(url);\n options.params = _objectSpread({\n cacheKey: cacheKey\n }, options.params);\n return _this3.strategy.handle(options);\n };\n }\n }, {\n key: \"strategy\",\n get: function get() {\n return this._strategy;\n }\n }]);\n\n return PrecacheController;\n}();\n\nexport { PrecacheController };","/*\n Copyright 2019 Google LLC\n\n Use of this source code is governed by an MIT-style\n license that can be found in the LICENSE file or at\n https://opensource.org/licenses/MIT.\n*/\nimport { PrecacheController } from '../PrecacheController.js';\nimport '../_version.js';\nvar precacheController;\n/**\n * @return {PrecacheController}\n * @private\n */\n\nexport var getOrCreatePrecacheController = function getOrCreatePrecacheController() {\n if (!precacheController) {\n precacheController = new PrecacheController();\n }\n\n return precacheController;\n};","/*\n Copyright 2019 Google LLC\n\n Use of this source code is governed by an MIT-style\n license that can be found in the LICENSE file or at\n https://opensource.org/licenses/MIT.\n*/\nimport { Router } from '../Router.js';\nimport '../_version.js';\nvar defaultRouter;\n/**\n * Creates a new, singleton Router instance if one does not exist. If one\n * does already exist, that instance is returned.\n *\n * @private\n * @return {Router}\n */\n\nexport var getOrCreateDefaultRouter = function getOrCreateDefaultRouter() {\n if (!defaultRouter) {\n defaultRouter = new Router(); // The helpers that use the default Router assume these listeners exist.\n\n defaultRouter.addFetchListener();\n defaultRouter.addCacheListener();\n }\n\n return defaultRouter;\n};","/*\n Copyright 2018 Google LLC\n\n Use of this source code is governed by an MIT-style\n license that can be found in the LICENSE file or at\n https://opensource.org/licenses/MIT.\n*/\nimport '../_version.js';\n/**\n * The default HTTP method, 'GET', used when there's no specific method\n * configured for a route.\n *\n * @type {string}\n *\n * @private\n */\n\nexport var defaultMethod = 'GET';\n/**\n * The list of valid HTTP methods associated with requests that could be routed.\n *\n * @type {Array}\n *\n * @private\n */\n\nexport var validMethods = ['DELETE', 'GET', 'HEAD', 'PATCH', 'POST', 'PUT'];","/*\n Copyright 2018 Google LLC\n\n Use of this source code is governed by an MIT-style\n license that can be found in the LICENSE file or at\n https://opensource.org/licenses/MIT.\n*/\nimport { assert } from 'workbox-core/_private/assert.js';\nimport '../_version.js';\n/**\n * @param {function()|Object} handler Either a function, or an object with a\n * 'handle' method.\n * @return {Object} An object with a handle method.\n *\n * @private\n */\n\nexport var normalizeHandler = function normalizeHandler(handler) {\n if (handler && typeof handler === 'object') {\n if (process.env.NODE_ENV !== 'production') {\n assert.hasMethod(handler, 'handle', {\n moduleName: 'workbox-routing',\n className: 'Route',\n funcName: 'constructor',\n paramName: 'handler'\n });\n }\n\n return handler;\n } else {\n if (process.env.NODE_ENV !== 'production') {\n assert.isType(handler, 'function', {\n moduleName: 'workbox-routing',\n className: 'Route',\n funcName: 'constructor',\n paramName: 'handler'\n });\n }\n\n return {\n handle: handler\n };\n }\n};","import _classCallCheck from \"/home/runner/work/shlink-web-client/shlink-web-client/node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/classCallCheck\";\nimport _createClass from \"/home/runner/work/shlink-web-client/shlink-web-client/node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/createClass\";\n\n/*\n Copyright 2018 Google LLC\n\n Use of this source code is governed by an MIT-style\n license that can be found in the LICENSE file or at\n https://opensource.org/licenses/MIT.\n*/\nimport { assert } from 'workbox-core/_private/assert.js';\nimport { defaultMethod, validMethods } from './utils/constants.js';\nimport { normalizeHandler } from './utils/normalizeHandler.js';\nimport './_version.js';\n/**\n * A `Route` consists of a pair of callback functions, \"match\" and \"handler\".\n * The \"match\" callback determine if a route should be used to \"handle\" a\n * request by returning a non-falsy value if it can. The \"handler\" callback\n * is called when there is a match and should return a Promise that resolves\n * to a `Response`.\n *\n * @memberof module:workbox-routing\n */\n\nvar Route = /*#__PURE__*/function () {\n /**\n * Constructor for Route class.\n *\n * @param {module:workbox-routing~matchCallback} match\n * A callback function that determines whether the route matches a given\n * `fetch` event by returning a non-falsy value.\n * @param {module:workbox-routing~handlerCallback} handler A callback\n * function that returns a Promise resolving to a Response.\n * @param {string} [method='GET'] The HTTP method to match the Route\n * against.\n */\n function Route(match, handler) {\n var method = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : defaultMethod;\n\n _classCallCheck(this, Route);\n\n if (process.env.NODE_ENV !== 'production') {\n assert.isType(match, 'function', {\n moduleName: 'workbox-routing',\n className: 'Route',\n funcName: 'constructor',\n paramName: 'match'\n });\n\n if (method) {\n assert.isOneOf(method, validMethods, {\n paramName: 'method'\n });\n }\n } // These values are referenced directly by Router so cannot be\n // altered by minificaton.\n\n\n this.handler = normalizeHandler(handler);\n this.match = match;\n this.method = method;\n }\n /**\n *\n * @param {module:workbox-routing-handlerCallback} handler A callback\n * function that returns a Promise resolving to a Response\n */\n\n\n _createClass(Route, [{\n key: \"setCatchHandler\",\n value: function setCatchHandler(handler) {\n this.catchHandler = normalizeHandler(handler);\n }\n }]);\n\n return Route;\n}();\n\nexport { Route };","import _classCallCheck from \"/home/runner/work/shlink-web-client/shlink-web-client/node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/classCallCheck\";\nimport _inherits from \"/home/runner/work/shlink-web-client/shlink-web-client/node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/inherits\";\nimport _createSuper from \"/home/runner/work/shlink-web-client/shlink-web-client/node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/createSuper\";\n\n/*\n Copyright 2018 Google LLC\n\n Use of this source code is governed by an MIT-style\n license that can be found in the LICENSE file or at\n https://opensource.org/licenses/MIT.\n*/\nimport { assert } from 'workbox-core/_private/assert.js';\nimport { logger } from 'workbox-core/_private/logger.js';\nimport { Route } from './Route.js';\nimport './_version.js';\n/**\n * RegExpRoute makes it easy to create a regular expression based\n * [Route]{@link module:workbox-routing.Route}.\n *\n * For same-origin requests the RegExp only needs to match part of the URL. For\n * requests against third-party servers, you must define a RegExp that matches\n * the start of the URL.\n *\n * [See the module docs for info.]{@link https://developers.google.com/web/tools/workbox/modules/workbox-routing}\n *\n * @memberof module:workbox-routing\n * @extends module:workbox-routing.Route\n */\n\nvar RegExpRoute = /*#__PURE__*/function (_Route) {\n _inherits(RegExpRoute, _Route);\n\n var _super = _createSuper(RegExpRoute);\n\n /**\n * If the regular expression contains\n * [capture groups]{@link https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/RegExp#grouping-back-references},\n * the captured values will be passed to the\n * [handler's]{@link module:workbox-routing~handlerCallback} `params`\n * argument.\n *\n * @param {RegExp} regExp The regular expression to match against URLs.\n * @param {module:workbox-routing~handlerCallback} handler A callback\n * function that returns a Promise resulting in a Response.\n * @param {string} [method='GET'] The HTTP method to match the Route\n * against.\n */\n function RegExpRoute(regExp, handler, method) {\n _classCallCheck(this, RegExpRoute);\n\n if (process.env.NODE_ENV !== 'production') {\n assert.isInstance(regExp, RegExp, {\n moduleName: 'workbox-routing',\n className: 'RegExpRoute',\n funcName: 'constructor',\n paramName: 'pattern'\n });\n }\n\n var match = function match(_ref) {\n var url = _ref.url;\n var result = regExp.exec(url.href); // Return immediately if there's no match.\n\n if (!result) {\n return;\n } // Require that the match start at the first character in the URL string\n // if it's a cross-origin request.\n // See https://github.com/GoogleChrome/workbox/issues/281 for the context\n // behind this behavior.\n\n\n if (url.origin !== location.origin && result.index !== 0) {\n if (process.env.NODE_ENV !== 'production') {\n logger.debug(\"The regular expression '\".concat(regExp, \"' only partially matched \") + \"against the cross-origin URL '\".concat(url, \"'. RegExpRoute's will only \") + \"handle cross-origin requests if they match the entire URL.\");\n }\n\n return;\n } // If the route matches, but there aren't any capture groups defined, then\n // this will return [], which is truthy and therefore sufficient to\n // indicate a match.\n // If there are capture groups, then it will return their values.\n\n\n return result.slice(1);\n };\n\n return _super.call(this, match, handler, method);\n }\n\n return RegExpRoute;\n}(Route);\n\nexport { RegExpRoute };","import _createForOfIteratorHelper from \"/home/runner/work/shlink-web-client/shlink-web-client/node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/createForOfIteratorHelper\";\nimport _regeneratorRuntime from \"/home/runner/work/shlink-web-client/shlink-web-client/node_modules/babel-preset-react-app/node_modules/@babel/runtime/regenerator\";\nimport _asyncToGenerator from \"/home/runner/work/shlink-web-client/shlink-web-client/node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/asyncToGenerator\";\nimport _construct from \"/home/runner/work/shlink-web-client/shlink-web-client/node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/construct\";\nimport _toConsumableArray from \"/home/runner/work/shlink-web-client/shlink-web-client/node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/toConsumableArray\";\nimport _classCallCheck from \"/home/runner/work/shlink-web-client/shlink-web-client/node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/classCallCheck\";\nimport _createClass from \"/home/runner/work/shlink-web-client/shlink-web-client/node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/createClass\";\n\n/*\n Copyright 2018 Google LLC\n\n Use of this source code is governed by an MIT-style\n license that can be found in the LICENSE file or at\n https://opensource.org/licenses/MIT.\n*/\nimport { assert } from 'workbox-core/_private/assert.js';\nimport { getFriendlyURL } from 'workbox-core/_private/getFriendlyURL.js';\nimport { defaultMethod } from './utils/constants.js';\nimport { logger } from 'workbox-core/_private/logger.js';\nimport { normalizeHandler } from './utils/normalizeHandler.js';\nimport { WorkboxError } from 'workbox-core/_private/WorkboxError.js';\nimport './_version.js';\n/**\n * The Router can be used to process a FetchEvent through one or more\n * [Routes]{@link module:workbox-routing.Route} responding with a Request if\n * a matching route exists.\n *\n * If no route matches a given a request, the Router will use a \"default\"\n * handler if one is defined.\n *\n * Should the matching Route throw an error, the Router will use a \"catch\"\n * handler if one is defined to gracefully deal with issues and respond with a\n * Request.\n *\n * If a request matches multiple routes, the **earliest** registered route will\n * be used to respond to the request.\n *\n * @memberof module:workbox-routing\n */\n\nvar Router = /*#__PURE__*/function () {\n /**\n * Initializes a new Router.\n */\n function Router() {\n _classCallCheck(this, Router);\n\n this._routes = new Map();\n this._defaultHandlerMap = new Map();\n }\n /**\n * @return {Map>} routes A `Map` of HTTP\n * method name ('GET', etc.) to an array of all the corresponding `Route`\n * instances that are registered.\n */\n\n\n _createClass(Router, [{\n key: \"addFetchListener\",\n\n /**\n * Adds a fetch event listener to respond to events when a route matches\n * the event's request.\n */\n value: function addFetchListener() {\n var _this = this;\n\n // See https://github.com/Microsoft/TypeScript/issues/28357#issuecomment-436484705\n self.addEventListener('fetch', function (event) {\n var request = event.request;\n\n var responsePromise = _this.handleRequest({\n request: request,\n event: event\n });\n\n if (responsePromise) {\n event.respondWith(responsePromise);\n }\n });\n }\n /**\n * Adds a message event listener for URLs to cache from the window.\n * This is useful to cache resources loaded on the page prior to when the\n * service worker started controlling it.\n *\n * The format of the message data sent from the window should be as follows.\n * Where the `urlsToCache` array may consist of URL strings or an array of\n * URL string + `requestInit` object (the same as you'd pass to `fetch()`).\n *\n * ```\n * {\n * type: 'CACHE_URLS',\n * payload: {\n * urlsToCache: [\n * './script1.js',\n * './script2.js',\n * ['./script3.js', {mode: 'no-cors'}],\n * ],\n * },\n * }\n * ```\n */\n\n }, {\n key: \"addCacheListener\",\n value: function addCacheListener() {\n var _this2 = this;\n\n // See https://github.com/Microsoft/TypeScript/issues/28357#issuecomment-436484705\n self.addEventListener('message', function (event) {\n if (event.data && event.data.type === 'CACHE_URLS') {\n var payload = event.data.payload;\n\n if (process.env.NODE_ENV !== 'production') {\n logger.debug(\"Caching URLs from the window\", payload.urlsToCache);\n }\n\n var requestPromises = Promise.all(payload.urlsToCache.map(function (entry) {\n if (typeof entry === 'string') {\n entry = [entry];\n }\n\n var request = _construct(Request, _toConsumableArray(entry));\n\n return _this2.handleRequest({\n request: request,\n event: event\n }); // TODO(philipwalton): TypeScript errors without this typecast for\n // some reason (probably a bug). The real type here should work but\n // doesn't: `Array | undefined>`.\n })); // TypeScript\n\n event.waitUntil(requestPromises); // If a MessageChannel was used, reply to the message on success.\n\n if (event.ports && event.ports[0]) {\n requestPromises.then(function () {\n return event.ports[0].postMessage(true);\n });\n }\n }\n });\n }\n /**\n * Apply the routing rules to a FetchEvent object to get a Response from an\n * appropriate Route's handler.\n *\n * @param {Object} options\n * @param {Request} options.request The request to handle.\n * @param {ExtendableEvent} options.event The event that triggered the\n * request.\n * @return {Promise|undefined} A promise is returned if a\n * registered route can handle the request. If there is no matching\n * route and there's no `defaultHandler`, `undefined` is returned.\n */\n\n }, {\n key: \"handleRequest\",\n value: function handleRequest(_ref) {\n var _this3 = this;\n\n var request = _ref.request,\n event = _ref.event;\n\n if (process.env.NODE_ENV !== 'production') {\n assert.isInstance(request, Request, {\n moduleName: 'workbox-routing',\n className: 'Router',\n funcName: 'handleRequest',\n paramName: 'options.request'\n });\n }\n\n var url = new URL(request.url, location.href);\n\n if (!url.protocol.startsWith('http')) {\n if (process.env.NODE_ENV !== 'production') {\n logger.debug(\"Workbox Router only supports URLs that start with 'http'.\");\n }\n\n return;\n }\n\n var sameOrigin = url.origin === location.origin;\n\n var _this$findMatchingRou = this.findMatchingRoute({\n event: event,\n request: request,\n sameOrigin: sameOrigin,\n url: url\n }),\n params = _this$findMatchingRou.params,\n route = _this$findMatchingRou.route;\n\n var handler = route && route.handler;\n var debugMessages = [];\n\n if (process.env.NODE_ENV !== 'production') {\n if (handler) {\n debugMessages.push([\"Found a route to handle this request:\", route]);\n\n if (params) {\n debugMessages.push([\"Passing the following params to the route's handler:\", params]);\n }\n }\n } // If we don't have a handler because there was no matching route, then\n // fall back to defaultHandler if that's defined.\n\n\n var method = request.method;\n\n if (!handler && this._defaultHandlerMap.has(method)) {\n if (process.env.NODE_ENV !== 'production') {\n debugMessages.push(\"Failed to find a matching route. Falling \" + \"back to the default handler for \".concat(method, \".\"));\n }\n\n handler = this._defaultHandlerMap.get(method);\n }\n\n if (!handler) {\n if (process.env.NODE_ENV !== 'production') {\n // No handler so Workbox will do nothing. If logs is set of debug\n // i.e. verbose, we should print out this information.\n logger.debug(\"No route found for: \".concat(getFriendlyURL(url)));\n }\n\n return;\n }\n\n if (process.env.NODE_ENV !== 'production') {\n // We have a handler, meaning Workbox is going to handle the route.\n // print the routing details to the console.\n logger.groupCollapsed(\"Router is responding to: \".concat(getFriendlyURL(url)));\n debugMessages.forEach(function (msg) {\n if (Array.isArray(msg)) {\n logger.log.apply(logger, _toConsumableArray(msg));\n } else {\n logger.log(msg);\n }\n });\n logger.groupEnd();\n } // Wrap in try and catch in case the handle method throws a synchronous\n // error. It should still callback to the catch handler.\n\n\n var responsePromise;\n\n try {\n responsePromise = handler.handle({\n url: url,\n request: request,\n event: event,\n params: params\n });\n } catch (err) {\n responsePromise = Promise.reject(err);\n } // Get route's catch handler, if it exists\n\n\n var catchHandler = route && route.catchHandler;\n\n if (responsePromise instanceof Promise && (this._catchHandler || catchHandler)) {\n responsePromise = responsePromise.catch( /*#__PURE__*/function () {\n var _ref2 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee(err) {\n return _regeneratorRuntime.wrap(function _callee$(_context) {\n while (1) {\n switch (_context.prev = _context.next) {\n case 0:\n if (!catchHandler) {\n _context.next = 11;\n break;\n }\n\n if (process.env.NODE_ENV !== 'production') {\n // Still include URL here as it will be async from the console group\n // and may not make sense without the URL\n logger.groupCollapsed(\"Error thrown when responding to: \" + \" \".concat(getFriendlyURL(url), \". Falling back to route's Catch Handler.\"));\n logger.error(\"Error thrown by:\", route);\n logger.error(err);\n logger.groupEnd();\n }\n\n _context.prev = 2;\n _context.next = 5;\n return catchHandler.handle({\n url: url,\n request: request,\n event: event,\n params: params\n });\n\n case 5:\n return _context.abrupt(\"return\", _context.sent);\n\n case 8:\n _context.prev = 8;\n _context.t0 = _context[\"catch\"](2);\n err = _context.t0;\n\n case 11:\n if (!_this3._catchHandler) {\n _context.next = 14;\n break;\n }\n\n if (process.env.NODE_ENV !== 'production') {\n // Still include URL here as it will be async from the console group\n // and may not make sense without the URL\n logger.groupCollapsed(\"Error thrown when responding to: \" + \" \".concat(getFriendlyURL(url), \". Falling back to global Catch Handler.\"));\n logger.error(\"Error thrown by:\", route);\n logger.error(err);\n logger.groupEnd();\n }\n\n return _context.abrupt(\"return\", _this3._catchHandler.handle({\n url: url,\n request: request,\n event: event\n }));\n\n case 14:\n throw err;\n\n case 15:\n case \"end\":\n return _context.stop();\n }\n }\n }, _callee, null, [[2, 8]]);\n }));\n\n return function (_x) {\n return _ref2.apply(this, arguments);\n };\n }());\n }\n\n return responsePromise;\n }\n /**\n * Checks a request and URL (and optionally an event) against the list of\n * registered routes, and if there's a match, returns the corresponding\n * route along with any params generated by the match.\n *\n * @param {Object} options\n * @param {URL} options.url\n * @param {boolean} options.sameOrigin The result of comparing `url.origin`\n * against the current origin.\n * @param {Request} options.request The request to match.\n * @param {Event} options.event The corresponding event.\n * @return {Object} An object with `route` and `params` properties.\n * They are populated if a matching route was found or `undefined`\n * otherwise.\n */\n\n }, {\n key: \"findMatchingRoute\",\n value: function findMatchingRoute(_ref3) {\n var url = _ref3.url,\n sameOrigin = _ref3.sameOrigin,\n request = _ref3.request,\n event = _ref3.event;\n var routes = this._routes.get(request.method) || [];\n\n var _iterator = _createForOfIteratorHelper(routes),\n _step;\n\n try {\n for (_iterator.s(); !(_step = _iterator.n()).done;) {\n var route = _step.value;\n var params = void 0;\n var matchResult = route.match({\n url: url,\n sameOrigin: sameOrigin,\n request: request,\n event: event\n });\n\n if (matchResult) {\n if (process.env.NODE_ENV !== 'production') {\n // Warn developers that using an async matchCallback is almost always\n // not the right thing to do. \n if (matchResult instanceof Promise) {\n logger.warn(\"While routing \".concat(getFriendlyURL(url), \", an async \") + \"matchCallback function was used. Please convert the \" + \"following route to use a synchronous matchCallback function:\", route);\n }\n } // See https://github.com/GoogleChrome/workbox/issues/2079\n\n\n params = matchResult;\n\n if (Array.isArray(matchResult) && matchResult.length === 0) {\n // Instead of passing an empty array in as params, use undefined.\n params = undefined;\n } else if (matchResult.constructor === Object && Object.keys(matchResult).length === 0) {\n // Instead of passing an empty object in as params, use undefined.\n params = undefined;\n } else if (typeof matchResult === 'boolean') {\n // For the boolean value true (rather than just something truth-y),\n // don't set params.\n // See https://github.com/GoogleChrome/workbox/pull/2134#issuecomment-513924353\n params = undefined;\n } // Return early if have a match.\n\n\n return {\n route: route,\n params: params\n };\n }\n } // If no match was found above, return and empty object.\n\n } catch (err) {\n _iterator.e(err);\n } finally {\n _iterator.f();\n }\n\n return {};\n }\n /**\n * Define a default `handler` that's called when no routes explicitly\n * match the incoming request.\n *\n * Each HTTP method ('GET', 'POST', etc.) gets its own default handler.\n *\n * Without a default handler, unmatched requests will go against the\n * network as if there were no service worker present.\n *\n * @param {module:workbox-routing~handlerCallback} handler A callback\n * function that returns a Promise resulting in a Response.\n * @param {string} [method='GET'] The HTTP method to associate with this\n * default handler. Each method has its own default.\n */\n\n }, {\n key: \"setDefaultHandler\",\n value: function setDefaultHandler(handler) {\n var method = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : defaultMethod;\n\n this._defaultHandlerMap.set(method, normalizeHandler(handler));\n }\n /**\n * If a Route throws an error while handling a request, this `handler`\n * will be called and given a chance to provide a response.\n *\n * @param {module:workbox-routing~handlerCallback} handler A callback\n * function that returns a Promise resulting in a Response.\n */\n\n }, {\n key: \"setCatchHandler\",\n value: function setCatchHandler(handler) {\n this._catchHandler = normalizeHandler(handler);\n }\n /**\n * Registers a route with the router.\n *\n * @param {module:workbox-routing.Route} route The route to register.\n */\n\n }, {\n key: \"registerRoute\",\n value: function registerRoute(route) {\n if (process.env.NODE_ENV !== 'production') {\n assert.isType(route, 'object', {\n moduleName: 'workbox-routing',\n className: 'Router',\n funcName: 'registerRoute',\n paramName: 'route'\n });\n assert.hasMethod(route, 'match', {\n moduleName: 'workbox-routing',\n className: 'Router',\n funcName: 'registerRoute',\n paramName: 'route'\n });\n assert.isType(route.handler, 'object', {\n moduleName: 'workbox-routing',\n className: 'Router',\n funcName: 'registerRoute',\n paramName: 'route'\n });\n assert.hasMethod(route.handler, 'handle', {\n moduleName: 'workbox-routing',\n className: 'Router',\n funcName: 'registerRoute',\n paramName: 'route.handler'\n });\n assert.isType(route.method, 'string', {\n moduleName: 'workbox-routing',\n className: 'Router',\n funcName: 'registerRoute',\n paramName: 'route.method'\n });\n }\n\n if (!this._routes.has(route.method)) {\n this._routes.set(route.method, []);\n } // Give precedence to all of the earlier routes by adding this additional\n // route to the end of the array.\n\n\n this._routes.get(route.method).push(route);\n }\n /**\n * Unregisters a route with the router.\n *\n * @param {module:workbox-routing.Route} route The route to unregister.\n */\n\n }, {\n key: \"unregisterRoute\",\n value: function unregisterRoute(route) {\n if (!this._routes.has(route.method)) {\n throw new WorkboxError('unregister-route-but-not-found-with-method', {\n method: route.method\n });\n }\n\n var routeIndex = this._routes.get(route.method).indexOf(route);\n\n if (routeIndex > -1) {\n this._routes.get(route.method).splice(routeIndex, 1);\n } else {\n throw new WorkboxError('unregister-route-route-not-registered');\n }\n }\n }, {\n key: \"routes\",\n get: function get() {\n return this._routes;\n }\n }]);\n\n return Router;\n}();\n\nexport { Router };","/*\n Copyright 2019 Google LLC\n\n Use of this source code is governed by an MIT-style\n license that can be found in the LICENSE file or at\n https://opensource.org/licenses/MIT.\n*/\nimport { logger } from 'workbox-core/_private/logger.js';\nimport { WorkboxError } from 'workbox-core/_private/WorkboxError.js';\nimport { Route } from './Route.js';\nimport { RegExpRoute } from './RegExpRoute.js';\nimport { getOrCreateDefaultRouter } from './utils/getOrCreateDefaultRouter.js';\nimport './_version.js';\n/**\n * Easily register a RegExp, string, or function with a caching\n * strategy to a singleton Router instance.\n *\n * This method will generate a Route for you if needed and\n * call [registerRoute()]{@link module:workbox-routing.Router#registerRoute}.\n *\n * @param {RegExp|string|module:workbox-routing.Route~matchCallback|module:workbox-routing.Route} capture\n * If the capture param is a `Route`, all other arguments will be ignored.\n * @param {module:workbox-routing~handlerCallback} [handler] A callback\n * function that returns a Promise resulting in a Response. This parameter\n * is required if `capture` is not a `Route` object.\n * @param {string} [method='GET'] The HTTP method to match the Route\n * against.\n * @return {module:workbox-routing.Route} The generated `Route`(Useful for\n * unregistering).\n *\n * @memberof module:workbox-routing\n */\n\nfunction registerRoute(capture, handler, method) {\n var route;\n\n if (typeof capture === 'string') {\n var captureUrl = new URL(capture, location.href);\n\n if (process.env.NODE_ENV !== 'production') {\n if (!(capture.startsWith('/') || capture.startsWith('http'))) {\n throw new WorkboxError('invalid-string', {\n moduleName: 'workbox-routing',\n funcName: 'registerRoute',\n paramName: 'capture'\n });\n } // We want to check if Express-style wildcards are in the pathname only.\n // TODO: Remove this log message in v4.\n\n\n var valueToCheck = capture.startsWith('http') ? captureUrl.pathname : capture; // See https://github.com/pillarjs/path-to-regexp#parameters\n\n var wildcards = '[*:?+]';\n\n if (new RegExp(\"\".concat(wildcards)).exec(valueToCheck)) {\n logger.debug(\"The '$capture' parameter contains an Express-style wildcard \" + \"character (\".concat(wildcards, \"). Strings are now always interpreted as \") + \"exact matches; use a RegExp for partial or wildcard matches.\");\n }\n }\n\n var matchCallback = function matchCallback(_ref) {\n var url = _ref.url;\n\n if (process.env.NODE_ENV !== 'production') {\n if (url.pathname === captureUrl.pathname && url.origin !== captureUrl.origin) {\n logger.debug(\"\".concat(capture, \" only partially matches the cross-origin URL \") + \"\".concat(url, \". This route will only handle cross-origin requests \") + \"if they match the entire URL.\");\n }\n }\n\n return url.href === captureUrl.href;\n }; // If `capture` is a string then `handler` and `method` must be present.\n\n\n route = new Route(matchCallback, handler, method);\n } else if (capture instanceof RegExp) {\n // If `capture` is a `RegExp` then `handler` and `method` must be present.\n route = new RegExpRoute(capture, handler, method);\n } else if (typeof capture === 'function') {\n // If `capture` is a function then `handler` and `method` must be present.\n route = new Route(capture, handler, method);\n } else if (capture instanceof Route) {\n route = capture;\n } else {\n throw new WorkboxError('unsupported-route-type', {\n moduleName: 'workbox-routing',\n funcName: 'registerRoute',\n paramName: 'capture'\n });\n }\n\n var defaultRouter = getOrCreateDefaultRouter();\n defaultRouter.registerRoute(route);\n return route;\n}\n\nexport { registerRoute };","import _toConsumableArray from \"/home/runner/work/shlink-web-client/shlink-web-client/node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/toConsumableArray\";\n\n/*\n Copyright 2018 Google LLC\n\n Use of this source code is governed by an MIT-style\n license that can be found in the LICENSE file or at\n https://opensource.org/licenses/MIT.\n*/\nimport '../_version.js';\n/**\n * Removes any URL search parameters that should be ignored.\n *\n * @param {URL} urlObject The original URL.\n * @param {Array} ignoreURLParametersMatching RegExps to test against\n * each search parameter name. Matches mean that the search parameter should be\n * ignored.\n * @return {URL} The URL with any ignored search parameters removed.\n *\n * @private\n * @memberof module:workbox-precaching\n */\n\nexport function removeIgnoredSearchParams(urlObject) {\n var ignoreURLParametersMatching = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : [];\n\n var _loop = function _loop() {\n var paramName = _arr[_i];\n\n if (ignoreURLParametersMatching.some(function (regExp) {\n return regExp.test(paramName);\n })) {\n urlObject.searchParams.delete(paramName);\n }\n };\n\n // Convert the iterable into an array at the start of the loop to make sure\n // deletion doesn't mess up iteration.\n for (var _i = 0, _arr = _toConsumableArray(urlObject.searchParams.keys()); _i < _arr.length; _i++) {\n _loop();\n }\n\n return urlObject;\n}","import _regeneratorRuntime from \"/home/runner/work/shlink-web-client/shlink-web-client/node_modules/babel-preset-react-app/node_modules/@babel/runtime/regenerator\";\nimport _createForOfIteratorHelper from \"/home/runner/work/shlink-web-client/shlink-web-client/node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/createForOfIteratorHelper\";\n\nvar _marked = /*#__PURE__*/_regeneratorRuntime.mark(generateURLVariations);\n\n/*\n Copyright 2019 Google LLC\n\n Use of this source code is governed by an MIT-style\n license that can be found in the LICENSE file or at\n https://opensource.org/licenses/MIT.\n*/\nimport { removeIgnoredSearchParams } from './removeIgnoredSearchParams.js';\nimport '../_version.js';\n/**\n * Generator function that yields possible variations on the original URL to\n * check, one at a time.\n *\n * @param {string} url\n * @param {Object} options\n *\n * @private\n * @memberof module:workbox-precaching\n */\n\nexport function generateURLVariations(url) {\n var _ref,\n _ref$ignoreURLParamet,\n ignoreURLParametersMatching,\n _ref$directoryIndex,\n directoryIndex,\n _ref$cleanURLs,\n cleanURLs,\n urlManipulation,\n urlObject,\n urlWithoutIgnoredParams,\n directoryURL,\n cleanURL,\n additionalURLs,\n _iterator,\n _step,\n urlToAttempt,\n _args = arguments;\n\n return _regeneratorRuntime.wrap(function generateURLVariations$(_context) {\n while (1) {\n switch (_context.prev = _context.next) {\n case 0:\n _ref = _args.length > 1 && _args[1] !== undefined ? _args[1] : {}, _ref$ignoreURLParamet = _ref.ignoreURLParametersMatching, ignoreURLParametersMatching = _ref$ignoreURLParamet === void 0 ? [/^utm_/, /^fbclid$/] : _ref$ignoreURLParamet, _ref$directoryIndex = _ref.directoryIndex, directoryIndex = _ref$directoryIndex === void 0 ? 'index.html' : _ref$directoryIndex, _ref$cleanURLs = _ref.cleanURLs, cleanURLs = _ref$cleanURLs === void 0 ? true : _ref$cleanURLs, urlManipulation = _ref.urlManipulation;\n urlObject = new URL(url, location.href);\n urlObject.hash = '';\n _context.next = 5;\n return urlObject.href;\n\n case 5:\n urlWithoutIgnoredParams = removeIgnoredSearchParams(urlObject, ignoreURLParametersMatching);\n _context.next = 8;\n return urlWithoutIgnoredParams.href;\n\n case 8:\n if (!(directoryIndex && urlWithoutIgnoredParams.pathname.endsWith('/'))) {\n _context.next = 13;\n break;\n }\n\n directoryURL = new URL(urlWithoutIgnoredParams.href);\n directoryURL.pathname += directoryIndex;\n _context.next = 13;\n return directoryURL.href;\n\n case 13:\n if (!cleanURLs) {\n _context.next = 18;\n break;\n }\n\n cleanURL = new URL(urlWithoutIgnoredParams.href);\n cleanURL.pathname += '.html';\n _context.next = 18;\n return cleanURL.href;\n\n case 18:\n if (!urlManipulation) {\n _context.next = 37;\n break;\n }\n\n additionalURLs = urlManipulation({\n url: urlObject\n });\n _iterator = _createForOfIteratorHelper(additionalURLs);\n _context.prev = 21;\n\n _iterator.s();\n\n case 23:\n if ((_step = _iterator.n()).done) {\n _context.next = 29;\n break;\n }\n\n urlToAttempt = _step.value;\n _context.next = 27;\n return urlToAttempt.href;\n\n case 27:\n _context.next = 23;\n break;\n\n case 29:\n _context.next = 34;\n break;\n\n case 31:\n _context.prev = 31;\n _context.t0 = _context[\"catch\"](21);\n\n _iterator.e(_context.t0);\n\n case 34:\n _context.prev = 34;\n\n _iterator.f();\n\n return _context.finish(34);\n\n case 37:\n case \"end\":\n return _context.stop();\n }\n }\n }, _marked, null, [[21, 31, 34, 37]]);\n}","import _createForOfIteratorHelper from \"/home/runner/work/shlink-web-client/shlink-web-client/node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/createForOfIteratorHelper\";\nimport _classCallCheck from \"/home/runner/work/shlink-web-client/shlink-web-client/node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/classCallCheck\";\nimport _inherits from \"/home/runner/work/shlink-web-client/shlink-web-client/node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/inherits\";\nimport _createSuper from \"/home/runner/work/shlink-web-client/shlink-web-client/node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/createSuper\";\n\n/*\n Copyright 2020 Google LLC\n\n Use of this source code is governed by an MIT-style\n license that can be found in the LICENSE file or at\n https://opensource.org/licenses/MIT.\n*/\nimport { logger } from 'workbox-core/_private/logger.js';\nimport { getFriendlyURL } from 'workbox-core/_private/getFriendlyURL.js';\nimport { Route } from 'workbox-routing/Route.js';\nimport { generateURLVariations } from './utils/generateURLVariations.js';\nimport './_version.js';\n/**\n * A subclass of [Route]{@link module:workbox-routing.Route} that takes a\n * [PrecacheController]{@link module:workbox-precaching.PrecacheController}\n * instance and uses it to match incoming requests and handle fetching\n * responses from the precache.\n *\n * @memberof module:workbox-precaching\n * @extends module:workbox-routing.Route\n */\n\nvar PrecacheRoute = /*#__PURE__*/function (_Route) {\n _inherits(PrecacheRoute, _Route);\n\n var _super = _createSuper(PrecacheRoute);\n\n /**\n * @param {PrecacheController} precacheController A `PrecacheController`\n * instance used to both match requests and respond to fetch events.\n * @param {Object} [options] Options to control how requests are matched\n * against the list of precached URLs.\n * @param {string} [options.directoryIndex=index.html] The `directoryIndex` will\n * check cache entries for a URLs ending with '/' to see if there is a hit when\n * appending the `directoryIndex` value.\n * @param {Array} [options.ignoreURLParametersMatching=[/^utm_/, /^fbclid$/]] An\n * array of regex's to remove search params when looking for a cache match.\n * @param {boolean} [options.cleanURLs=true] The `cleanURLs` option will\n * check the cache for the URL with a `.html` added to the end of the end.\n * @param {module:workbox-precaching~urlManipulation} [options.urlManipulation]\n * This is a function that should take a URL and return an array of\n * alternative URLs that should be checked for precache matches.\n */\n function PrecacheRoute(precacheController, options) {\n _classCallCheck(this, PrecacheRoute);\n\n var match = function match(_ref) {\n var request = _ref.request;\n var urlsToCacheKeys = precacheController.getURLsToCacheKeys();\n\n var _iterator = _createForOfIteratorHelper(generateURLVariations(request.url, options)),\n _step;\n\n try {\n for (_iterator.s(); !(_step = _iterator.n()).done;) {\n var possibleURL = _step.value;\n var cacheKey = urlsToCacheKeys.get(possibleURL);\n\n if (cacheKey) {\n return {\n cacheKey: cacheKey\n };\n }\n }\n } catch (err) {\n _iterator.e(err);\n } finally {\n _iterator.f();\n }\n\n if (process.env.NODE_ENV !== 'production') {\n logger.debug(\"Precaching did not find a match for \" + getFriendlyURL(request.url));\n }\n\n return;\n };\n\n return _super.call(this, match, precacheController.strategy);\n }\n\n return PrecacheRoute;\n}(Route);\n\nexport { PrecacheRoute };","/*\n Copyright 2018 Google LLC\n\n Use of this source code is governed by an MIT-style\n license that can be found in the LICENSE file or at\n https://opensource.org/licenses/MIT.\n*/\nimport { logger } from 'workbox-core/_private/logger.js';\nimport { getFriendlyURL } from 'workbox-core/_private/getFriendlyURL.js';\nimport '../_version.js';\nexport var messages = {\n strategyStart: function strategyStart(strategyName, request) {\n return \"Using \".concat(strategyName, \" to respond to '\").concat(getFriendlyURL(request.url), \"'\");\n },\n printFinalResponse: function printFinalResponse(response) {\n if (response) {\n logger.groupCollapsed(\"View the final response here.\");\n logger.log(response || '[No response returned]');\n logger.groupEnd();\n }\n }\n};","/*\n Copyright 2019 Google LLC\n\n Use of this source code is governed by an MIT-style\n license that can be found in the LICENSE file or at\n https://opensource.org/licenses/MIT.\n*/\nimport { addRoute } from './addRoute.js';\nimport { precache } from './precache.js';\nimport './_version.js';\n/**\n * This method will add entries to the precache list and add a route to\n * respond to fetch events.\n *\n * This is a convenience method that will call\n * [precache()]{@link module:workbox-precaching.precache} and\n * [addRoute()]{@link module:workbox-precaching.addRoute} in a single call.\n *\n * @param {Array} entries Array of entries to precache.\n * @param {Object} [options] See\n * [PrecacheRoute options]{@link module:workbox-precaching.PrecacheRoute}.\n *\n * @memberof module:workbox-precaching\n */\n\nfunction precacheAndRoute(entries, options) {\n precache(entries);\n addRoute(options);\n}\n\nexport { precacheAndRoute };","import _regeneratorRuntime from \"/home/runner/work/shlink-web-client/shlink-web-client/node_modules/babel-preset-react-app/node_modules/@babel/runtime/regenerator\";\nimport _asyncToGenerator from \"/home/runner/work/shlink-web-client/shlink-web-client/node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/asyncToGenerator\";\n\n/*\n Copyright 2018 Google LLC\n\n Use of this source code is governed by an MIT-style\n license that can be found in the LICENSE file or at\n https://opensource.org/licenses/MIT.\n*/\nimport '../_version.js';\nexport var cacheOkAndOpaquePlugin = {\n /**\n * Returns a valid response (to allow caching) if the status is 200 (OK) or\n * 0 (opaque).\n *\n * @param {Object} options\n * @param {Response} options.response\n * @return {Response|null}\n *\n * @private\n */\n cacheWillUpdate: function () {\n var _cacheWillUpdate = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee(_ref) {\n var response;\n return _regeneratorRuntime.wrap(function _callee$(_context) {\n while (1) {\n switch (_context.prev = _context.next) {\n case 0:\n response = _ref.response;\n\n if (!(response.status === 200 || response.status === 0)) {\n _context.next = 3;\n break;\n }\n\n return _context.abrupt(\"return\", response);\n\n case 3:\n return _context.abrupt(\"return\", null);\n\n case 4:\n case \"end\":\n return _context.stop();\n }\n }\n }, _callee);\n }));\n\n function cacheWillUpdate(_x) {\n return _cacheWillUpdate.apply(this, arguments);\n }\n\n return cacheWillUpdate;\n }()\n};","import _regeneratorRuntime from \"/home/runner/work/shlink-web-client/shlink-web-client/node_modules/babel-preset-react-app/node_modules/@babel/runtime/regenerator\";\nimport _createForOfIteratorHelper from \"/home/runner/work/shlink-web-client/shlink-web-client/node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/createForOfIteratorHelper\";\nimport _asyncToGenerator from \"/home/runner/work/shlink-web-client/shlink-web-client/node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/asyncToGenerator\";\nimport _classCallCheck from \"/home/runner/work/shlink-web-client/shlink-web-client/node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/classCallCheck\";\nimport _createClass from \"/home/runner/work/shlink-web-client/shlink-web-client/node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/createClass\";\nimport _inherits from \"/home/runner/work/shlink-web-client/shlink-web-client/node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/inherits\";\nimport _createSuper from \"/home/runner/work/shlink-web-client/shlink-web-client/node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/createSuper\";\n\n/*\n Copyright 2018 Google LLC\n\n Use of this source code is governed by an MIT-style\n license that can be found in the LICENSE file or at\n https://opensource.org/licenses/MIT.\n*/\nimport { assert } from 'workbox-core/_private/assert.js';\nimport { logger } from 'workbox-core/_private/logger.js';\nimport { WorkboxError } from 'workbox-core/_private/WorkboxError.js';\nimport { cacheOkAndOpaquePlugin } from './plugins/cacheOkAndOpaquePlugin.js';\nimport { Strategy } from './Strategy.js';\nimport { messages } from './utils/messages.js';\nimport './_version.js';\n/**\n * An implementation of a\n * [stale-while-revalidate]{@link https://developers.google.com/web/fundamentals/instant-and-offline/offline-cookbook/#stale-while-revalidate}\n * request strategy.\n *\n * Resources are requested from both the cache and the network in parallel.\n * The strategy will respond with the cached version if available, otherwise\n * wait for the network response. The cache is updated with the network response\n * with each successful request.\n *\n * By default, this strategy will cache responses with a 200 status code as\n * well as [opaque responses]{@link https://developers.google.com/web/tools/workbox/guides/handle-third-party-requests}.\n * Opaque responses are cross-origin requests where the response doesn't\n * support [CORS]{@link https://enable-cors.org/}.\n *\n * If the network request fails, and there is no cache match, this will throw\n * a `WorkboxError` exception.\n *\n * @extends module:workbox-strategies.Strategy\n * @memberof module:workbox-strategies\n */\n\nvar StaleWhileRevalidate = /*#__PURE__*/function (_Strategy) {\n _inherits(StaleWhileRevalidate, _Strategy);\n\n var _super = _createSuper(StaleWhileRevalidate);\n\n /**\n * @param {Object} [options]\n * @param {string} [options.cacheName] Cache name to store and retrieve\n * requests. Defaults to cache names provided by\n * [workbox-core]{@link module:workbox-core.cacheNames}.\n * @param {Array} [options.plugins] [Plugins]{@link https://developers.google.com/web/tools/workbox/guides/using-plugins}\n * to use in conjunction with this caching strategy.\n * @param {Object} [options.fetchOptions] Values passed along to the\n * [`init`](https://developer.mozilla.org/en-US/docs/Web/API/WindowOrWorkerGlobalScope/fetch#Parameters)\n * of [non-navigation](https://github.com/GoogleChrome/workbox/issues/1796)\n * `fetch()` requests made by this strategy.\n * @param {Object} [options.matchOptions] [`CacheQueryOptions`](https://w3c.github.io/ServiceWorker/#dictdef-cachequeryoptions)\n */\n function StaleWhileRevalidate(options) {\n var _this;\n\n _classCallCheck(this, StaleWhileRevalidate);\n\n _this = _super.call(this, options); // If this instance contains no plugins with a 'cacheWillUpdate' callback,\n // prepend the `cacheOkAndOpaquePlugin` plugin to the plugins list.\n\n if (!_this.plugins.some(function (p) {\n return 'cacheWillUpdate' in p;\n })) {\n _this.plugins.unshift(cacheOkAndOpaquePlugin);\n }\n\n return _this;\n }\n /**\n * @private\n * @param {Request|string} request A request to run this strategy for.\n * @param {module:workbox-strategies.StrategyHandler} handler The event that\n * triggered the request.\n * @return {Promise}\n */\n\n\n _createClass(StaleWhileRevalidate, [{\n key: \"_handle\",\n value: function () {\n var _handle2 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee(request, handler) {\n var logs, fetchAndCachePromise, response, error, _iterator, _step, log;\n\n return _regeneratorRuntime.wrap(function _callee$(_context) {\n while (1) {\n switch (_context.prev = _context.next) {\n case 0:\n logs = [];\n\n if (process.env.NODE_ENV !== 'production') {\n assert.isInstance(request, Request, {\n moduleName: 'workbox-strategies',\n className: this.constructor.name,\n funcName: 'handle',\n paramName: 'request'\n });\n }\n\n fetchAndCachePromise = handler.fetchAndCachePut(request).catch(function () {// Swallow this error because a 'no-response' error will be thrown in\n // main handler return flow. This will be in the `waitUntil()` flow.\n });\n _context.next = 5;\n return handler.cacheMatch(request);\n\n case 5:\n response = _context.sent;\n\n if (!response) {\n _context.next = 10;\n break;\n }\n\n if (process.env.NODE_ENV !== 'production') {\n logs.push(\"Found a cached response in the '\".concat(this.cacheName, \"'\") + \" cache. Will update with the network response in the background.\");\n }\n\n _context.next = 20;\n break;\n\n case 10:\n if (process.env.NODE_ENV !== 'production') {\n logs.push(\"No response found in the '\".concat(this.cacheName, \"' cache. \") + \"Will wait for the network response.\");\n }\n\n _context.prev = 11;\n _context.next = 14;\n return fetchAndCachePromise;\n\n case 14:\n response = _context.sent;\n _context.next = 20;\n break;\n\n case 17:\n _context.prev = 17;\n _context.t0 = _context[\"catch\"](11);\n error = _context.t0;\n\n case 20:\n if (process.env.NODE_ENV !== 'production') {\n logger.groupCollapsed(messages.strategyStart(this.constructor.name, request));\n _iterator = _createForOfIteratorHelper(logs);\n\n try {\n for (_iterator.s(); !(_step = _iterator.n()).done;) {\n log = _step.value;\n logger.log(log);\n }\n } catch (err) {\n _iterator.e(err);\n } finally {\n _iterator.f();\n }\n\n messages.printFinalResponse(response);\n logger.groupEnd();\n }\n\n if (response) {\n _context.next = 23;\n break;\n }\n\n throw new WorkboxError('no-response', {\n url: request.url,\n error: error\n });\n\n case 23:\n return _context.abrupt(\"return\", response);\n\n case 24:\n case \"end\":\n return _context.stop();\n }\n }\n }, _callee, this, [[11, 17]]);\n }));\n\n function _handle(_x, _x2) {\n return _handle2.apply(this, arguments);\n }\n\n return _handle;\n }()\n }]);\n\n return StaleWhileRevalidate;\n}(Strategy);\n\nexport { StaleWhileRevalidate };","/*\n Copyright 2019 Google LLC\n\n Use of this source code is governed by an MIT-style\n license that can be found in the LICENSE file or at\n https://opensource.org/licenses/MIT.\n*/\nimport './_version.js';\n/**\n * Claim any currently available clients once the service worker\n * becomes active. This is normally used in conjunction with `skipWaiting()`.\n *\n * @memberof module:workbox-core\n */\n\nfunction clientsClaim() {\n self.addEventListener('activate', function () {\n return self.clients.claim();\n });\n}\n\nexport { clientsClaim };","/*\n Copyright 2019 Google LLC\n\n Use of this source code is governed by an MIT-style\n license that can be found in the LICENSE file or at\n https://opensource.org/licenses/MIT.\n*/\nimport { getOrCreatePrecacheController } from './utils/getOrCreatePrecacheController.js';\nimport './_version.js';\n/**\n * Adds items to the precache list, removing any duplicates and\n * stores the files in the\n * [\"precache cache\"]{@link module:workbox-core.cacheNames} when the service\n * worker installs.\n *\n * This method can be called multiple times.\n *\n * Please note: This method **will not** serve any of the cached files for you.\n * It only precaches files. To respond to a network request you call\n * [addRoute()]{@link module:workbox-precaching.addRoute}.\n *\n * If you have a single array of files to precache, you can just call\n * [precacheAndRoute()]{@link module:workbox-precaching.precacheAndRoute}.\n *\n * @param {Array} [entries=[]] Array of entries to precache.\n *\n * @memberof module:workbox-precaching\n */\n\nfunction precache(entries) {\n var precacheController = getOrCreatePrecacheController();\n precacheController.precache(entries);\n}\n\nexport { precache };","/// \n/* eslint-disable no-restricted-globals */\n\n// This service worker can be customized!\n// See https://developers.google.com/web/tools/workbox/modules\n// for the list of available Workbox modules, or add any other\n// code you'd like.\n// You can also remove this file if you'd prefer not to use a\n// service worker, and the Workbox build step will be skipped.\n\nimport { clientsClaim } from 'workbox-core';\nimport { ExpirationPlugin } from 'workbox-expiration';\nimport { precacheAndRoute, createHandlerBoundToURL } from 'workbox-precaching';\nimport { registerRoute } from 'workbox-routing';\nimport { StaleWhileRevalidate } from 'workbox-strategies';\n\ndeclare const self: ServiceWorkerGlobalScope;\n\nclientsClaim();\n\n// Precache all of the assets generated by your build process.\n// Their URLs are injected into the manifest variable below.\n// This variable must be present somewhere in your service worker file,\n// even if you decide not to use precaching. See https://cra.link/PWA\nprecacheAndRoute(self.__WB_MANIFEST);\n\n// Set up App Shell-style routing, so that all navigation requests\n// are fulfilled with your index.html shell. Learn more at\n// https://developers.google.com/web/fundamentals/architecture/app-shell\nconst fileExtensionRegexp = new RegExp('/[^/?]+\\\\.[^/]+$');\nregisterRoute(\n // Return false to exempt requests from being fulfilled by index.html.\n ({ request, url }: { request: Request; url: URL }) => {\n // If this isn't a navigation, skip.\n if (request.mode !== 'navigate') {\n return false;\n }\n\n // If this is a URL that starts with /_, skip.\n if (url.pathname.startsWith('/_')) {\n return false;\n }\n\n // If this looks like a URL for a resource, because it contains\n // a file extension, skip.\n if (url.pathname.match(fileExtensionRegexp)) {\n return false;\n }\n\n // Return true to signal that we want to use the handler.\n return true;\n },\n createHandlerBoundToURL(process.env.PUBLIC_URL + '/index.html')\n);\n\n// An example runtime caching route for requests that aren't handled by the\n// precache, in this case same-origin .png requests like those from in public/\nregisterRoute(\n // Add in any other file extensions or routing criteria as needed.\n ({ url }) => url.origin === self.location.origin && url.pathname.endsWith('.png'),\n // Customize this strategy as needed, e.g., by changing to CacheFirst.\n new StaleWhileRevalidate({\n cacheName: 'images',\n plugins: [\n // Ensure that once this runtime cache reaches a maximum size the\n // least-recently used images are removed.\n new ExpirationPlugin({ maxEntries: 50 }),\n ],\n })\n);\n\n// This allows the web app to trigger skipWaiting via\n// registration.waiting.postMessage({type: 'SKIP_WAITING'})\nself.addEventListener('message', (event) => {\n if (event.data && event.data.type === 'SKIP_WAITING') {\n self.skipWaiting();\n }\n});\n\n// Any other custom service worker logic can go here.\n","/*\n Copyright 2019 Google LLC\n Use of this source code is governed by an MIT-style\n license that can be found in the LICENSE file or at\n https://opensource.org/licenses/MIT.\n*/\nimport { registerRoute } from 'workbox-routing/registerRoute.js';\nimport { getOrCreatePrecacheController } from './utils/getOrCreatePrecacheController.js';\nimport { PrecacheRoute } from './PrecacheRoute.js';\nimport './_version.js';\n/**\n * Add a `fetch` listener to the service worker that will\n * respond to\n * [network requests]{@link https://developer.mozilla.org/en-US/docs/Web/API/Service_Worker_API/Using_Service_Workers#Custom_responses_to_requests}\n * with precached assets.\n *\n * Requests for assets that aren't precached, the `FetchEvent` will not be\n * responded to, allowing the event to fall through to other `fetch` event\n * listeners.\n *\n * @param {Object} [options] See\n * [PrecacheRoute options]{@link module:workbox-precaching.PrecacheRoute}.\n *\n * @memberof module:workbox-precaching\n */\n\nfunction addRoute(options) {\n var precacheController = getOrCreatePrecacheController();\n var precacheRoute = new PrecacheRoute(precacheController, options);\n registerRoute(precacheRoute);\n}\n\nexport { addRoute };","/*\n Copyright 2019 Google LLC\n\n Use of this source code is governed by an MIT-style\n license that can be found in the LICENSE file or at\n https://opensource.org/licenses/MIT.\n*/\nimport { getOrCreatePrecacheController } from './utils/getOrCreatePrecacheController.js';\nimport './_version.js';\n/**\n * Helper function that calls\n * {@link PrecacheController#createHandlerBoundToURL} on the default\n * {@link PrecacheController} instance.\n *\n * If you are creating your own {@link PrecacheController}, then call the\n * {@link PrecacheController#createHandlerBoundToURL} on that instance,\n * instead of using this function.\n *\n * @param {string} url The precached URL which will be used to lookup the\n * `Response`.\n * @param {boolean} [fallbackToNetwork=true] Whether to attempt to get the\n * response from the network if there's a precache miss.\n * @return {module:workbox-routing~handlerCallback}\n *\n * @memberof module:workbox-precaching\n */\n\nfunction createHandlerBoundToURL(url) {\n var precacheController = getOrCreatePrecacheController();\n return precacheController.createHandlerBoundToURL(url);\n}\n\nexport { createHandlerBoundToURL };"]}