1/** 2 * Copyright 2016 Google Inc. All rights reserved. 3 * 4 * Licensed under the Apache License, Version 2.0 (the "License"); 5 * you may not use this file except in compliance with the License. 6 * You may obtain a copy of the License at 7 * 8 * http://www.apache.org/licenses/LICENSE-2.0 9 * 10 * Unless required by applicable law or agreed to in writing, software 11 * distributed under the License is distributed on an "AS IS" BASIS, 12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 * See the License for the specific language governing permissions and 14 * limitations under the License. 15*/ 16 17// DO NOT EDIT THIS GENERATED OUTPUT DIRECTLY! 18// This file should be overwritten as part of your build process. 19// If you need to extend the behavior of the generated service worker, the best approach is to write 20// additional code and include it using the importScripts option: 21// https://github.com/GoogleChrome/sw-precache#importscripts-arraystring 22// 23// Alternatively, it's possible to make changes to the underlying template file and then use that as the 24// new base for generating output, via the templateFilePath option: 25// https://github.com/GoogleChrome/sw-precache#templatefilepath-string 26// 27// If you go that route, make sure that whenever you update your sw-precache dependency, you reconcile any 28// changes made to this original template file with your modified copy. 29 30// This generated service worker JavaScript will precache your site's resources. 31// The code needs to be saved in a .js file at the top-level of your site, and registered 32// from your pages in order to be used. See 33// https://github.com/googlechrome/sw-precache/blob/master/demo/app/js/service-worker-registration.js 34// for an example of how you can register this script and handle various service worker events. 35 36/* eslint-env worker, serviceworker */ 37/* eslint-disable indent, no-unused-vars, no-multiple-empty-lines, max-nested-callbacks, space-before-function-paren, quotes, comma-spacing */ 38'use strict'; 39 40var precacheConfig = [["dist/dayjs-locales-da.1842637f1a48b0628a3f.js","afba8ab44e974cc3af162cb4cccce5e0"],["dist/dayjs-locales-de.1842637f1a48b0628a3f.js","1a70298148fca2b7387efc1944b93e83"],["dist/dayjs-locales-en.1842637f1a48b0628a3f.js","87ce2cd20f8c4565e025840ed673f170"],["dist/dayjs-locales-es.1842637f1a48b0628a3f.js","0e74e9de2c22c4d22303cfa25c5b3c00"],["dist/dayjs-locales-fr.1842637f1a48b0628a3f.js","94965781455c3683b942b397b89a65ec"],["dist/dayjs-locales-it.1842637f1a48b0628a3f.js","a7c44dc97909828b18842edaf5c889a5"],["dist/dayjs-locales-nl.1842637f1a48b0628a3f.js","441adbd45decbd9291baaebd27c0b5b2"],["dist/dayjs-locales-pl.1842637f1a48b0628a3f.js","2535c2baae040417766ad6f910e38965"],["dist/manifest.1842637f1a48b0628a3f.js","08ecef9deeaef299ea5785c14c567eb5"],["dist/vendor.1842637f1a48b0628a3f.js","00e4db7d1121b4f9e51c78b94f370305"],["dist/vendors~bodybuilder.1842637f1a48b0628a3f.js","58cd273a14b4b6e1490b0fcf84caee19"],["dist/vendors~vsf-category.1842637f1a48b0628a3f.js","d8b1247ee55617667d78671b977fe433"],["dist/vendors~vsf-graphql.1842637f1a48b0628a3f.js","00296fc58fbd1667de4c7a873979b0bc"],["dist/vendors~vsf-product.1842637f1a48b0628a3f.js","8e857fe0705ca570ff18c408d5bf6f7b"],["dist/vsf-category.1842637f1a48b0628a3f.js","eb7ccd2b3e7f423d5c025bad2212fd18"],["dist/vsf-checkout.1842637f1a48b0628a3f.js","71ccc2b336c2b14399decad0f0007917"],["dist/vsf-checkout~vsf-layout-default.1842637f1a48b0628a3f.js","02b76773931299fd354905dbbf21bce9"],["dist/vsf-checkout~vsf-my-account.1842637f1a48b0628a3f.js","75516b81a5011bc94877176c2725d3a1"],["dist/vsf-checkout~vsf-my-account~vsf-salon.1842637f1a48b0628a3f.js","50f16c4af6fc28c35fbcff685ff6f0bf"],["dist/vsf-checkout~vsf-salon.1842637f1a48b0628a3f.js","a0de6d8663c2f26e449e33b3f7a98fec"],["dist/vsf-community-competition.1842637f1a48b0628a3f.js","5e14ee0cff8187f6756bcea022e42fe1"],["dist/vsf-contact.1842637f1a48b0628a3f.js","8b54fe753579f4d79872bbe0d1451eec"],["dist/vsf-contact~vsf-product.1842637f1a48b0628a3f.js","0f55b614f92c92ab34a3768f33acb57b"],["dist/vsf-error.1842637f1a48b0628a3f.js","2637b6ddb09e11b758a39874140289ef"],["dist/vsf-factfinder.1842637f1a48b0628a3f.js","90ab1b3d09884614c869e9427ce77b0b"],["dist/vsf-head-img-banners-de_main-image-json.1842637f1a48b0628a3f.js","3afa74213e4ba523d45a0220d5c8e8bd"],["dist/vsf-head-img-banners-de_promoted_offers-json.1842637f1a48b0628a3f.js","87a9cbace644f7366b44a71f15d932d5"],["dist/vsf-head-img-banners-it_main-image-json.1842637f1a48b0628a3f.js","3e72dd527d6d1b664810c8252447a2b6"],["dist/vsf-head-img-banners-it_promoted_offers-json.1842637f1a48b0628a3f.js","e86d2dbab52539cec6f51ebf93178ce7"],["dist/vsf-head-img-main-image-json.1842637f1a48b0628a3f.js","aa0f3957e2d49c473049f5989ef86f8f"],["dist/vsf-head-img-promoted_offers-json.1842637f1a48b0628a3f.js","0a2142c62c78b322c7567cfa9150d992"],["dist/vsf-head-img-slider-json.1842637f1a48b0628a3f.js","d96b62686db09665f377835a1f57600f"],["dist/vsf-layout-default.1842637f1a48b0628a3f.js","bd5e48d23dd9b24d6bed65852568f5ae"],["dist/vsf-layout-default~vsf-layout-hr~vsf-layout-minimal.1842637f1a48b0628a3f.js","0cf9a805ba1255a23d44840ee2c0ad2a"],["dist/vsf-layout-default~vsf-layout-hr~vsf-layout-styleguide.1842637f1a48b0628a3f.js","627138cfb48647f02893b83e9848b47e"],["dist/vsf-layout-empty.1842637f1a48b0628a3f.js","0be0691ccd420915eeb5a030565be50a"],["dist/vsf-layout-hr.1842637f1a48b0628a3f.js","86c3f0442fe819734efa4b2b5038c84c"],["dist/vsf-layout-minimal.1842637f1a48b0628a3f.js","a80c380e49170da74451037c8c7164c3"],["dist/vsf-layout-styleguide.1842637f1a48b0628a3f.js","1da269e8ceb731338815a53a558b09a5"],["dist/vsf-maintenance.1842637f1a48b0628a3f.js","de08ee1be5f10f41f42cfeda16197505"],["dist/vsf-microcart.1842637f1a48b0628a3f.js","346446c39ce402b94e4f6e7b72f076be"],["dist/vsf-my-account.1842637f1a48b0628a3f.js","97e4e25b7bdb52464b2846c51da802fe"],["dist/vsf-my-account~vsf-wishlist.1842637f1a48b0628a3f.js","7de90bc9c06fef5ab77353a33ff8741b"],["dist/vsf-newsletter-thank-you.1842637f1a48b0628a3f.js","8a1d39aad523ec45b2f449850c652731"],["dist/vsf-newsletter.1842637f1a48b0628a3f.js","fa7945ec7e4e244501f007cbd5ad7284"],["dist/vsf-order-confirmation.1842637f1a48b0628a3f.js","4d906fd766d4db9572cc12118fe80888"],["dist/vsf-password-reset.1842637f1a48b0628a3f.js","69b7481ce229cc0ba0e755ceb2118983"],["dist/vsf-product.1842637f1a48b0628a3f.js","5e554649b8d9de5b7deb1c832b91a7de"],["dist/vsf-redirect.1842637f1a48b0628a3f.js","4e944f1b
400ee843e6280183b101e0b328"],["dist/vsf-salon-affiliate.1842637f1a48b0628a3f.js","64722fc4a8c71545fc278ea2af0a42f1"],["dist/vsf-salon.1842637f1a48b0628a3f.js","b0cbc188d8cceba9960b16142ae09704"],["dist/vsf-search-adapter-0.1842637f1a48b0628a3f.js","17ab73d107f485d3b8b3e65f86b5582b"],["dist/vsf-search-adapter-1.1842637f1a48b0628a3f.js","5d2eaaaad9f360aba7d034a0f365155a"],["dist/vsf-search-panel.1842637f1a48b0628a3f.js","373a02d8125d604633e3a5a83767fafa"],["dist/vsf-sidebar-menu.1842637f1a48b0628a3f.js","f9af4954e2938bbba3aa2b129f14fa05"],["dist/vsf-styla-static.1842637f1a48b0628a3f.js","02c42b8fee915a4d3bf7187e10a147bd"],["dist/vsf-wishlist.1842637f1a48b0628a3f.js","6980d4b105d70f8b9e474531f39e385a"]]; 41var cacheName = 'sw-precache-v3-vue-sfr-' + (self.registration ? self.registration.scope : ''); 42 43 44var ignoreUrlParametersMatching = [/^utm_/]; 45 46 47 48var addDirectoryIndex = function(originalUrl, index) { 49 var url = new URL(originalUrl); 50 if (url.pathname.slice(-1) === '/') { 51 url.pathname += index; 52 } 53 return url.toString(); 54 }; 55 56var cleanResponse = function(originalResponse) { 57 // If this is not a redirected response, then we don't have to do anything. 58 if (!originalResponse.redirected) { 59 return Promise.resolve(originalResponse); 60 } 61 62 // Firefox 50 and below doesn't support the Response.body stream, so we may 63 // need to read the entire body to memory as a Blob. 64 var bodyPromise = 'body' in originalResponse ? 65 Promise.resolve(originalResponse.body) : 66 originalResponse.blob(); 67 68 return bodyPromise.then(function(body) { 69 // new Response() is happy when passed either a stream or a Blob. 70 return new Response(body, { 71 headers: originalResponse.headers, 72 status: originalResponse.status, 73 statusText: originalResponse.statusText 74 }); 75 }); 76 }; 77 78var createCacheKey = function(originalUrl, paramName, paramValue, 79 dontCacheBustUrlsMatching) { 80 // Create a new URL object to avoid modifying originalUrl. 81 var url = new URL(originalUrl); 82 83 // If dontCacheBustUrlsMatching is not set, or if we don't have a match, 84 // then add in the extra cache-busting URL parameter. 85 if (!dontCacheBustUrlsMatching || 86 !(url.pathname.match(dontCacheBustUrlsMatching))) { 87 url.search += (url.search ? '&' : '') + 88 encodeURIComponent(paramName) + '=' + encodeURIComponent(paramValue); 89 } 90 91 return url.toString(); 92 }; 93 94var isPathWhitelisted = function(whitelist, absoluteUrlString) { 95 // If the whitelist is empty, then consider all URLs to be whitelisted. 96 if (whitelist.length === 0) { 97 return true; 98 } 99 100 // Otherwise compare each path regex to the path of the URL passed in. 101 var path = (new URL(absoluteUrlString)).pathname; 102 return whitelist.some(function(whitelistedPathRegex) { 103 return path.match(whitelistedPathRegex); 104 }); 105 }; 106 107var stripIgnoredUrlParameters = function(originalUrl, 108 ignoreUrlParametersMatching) { 109 var url = new URL(originalUrl); 110 // Remove the hash; see https://github.com/GoogleChrome/sw-precache/issues/290 111 url.hash = ''; 112 113 url.search = url.search.slice(1) // Exclude initial '?' 114 .split('&') // Split into an array of 'key=value' strings 115 .map(function(kv) { 116 return kv.split('='); // Split each 'key=value' string into a [key, value] array 117 }) 118 .filter(function(kv) { 119 return ignoreUrlParametersMatching.every(function(ignoredRegex) { 120 return !ignoredRegex.test(kv[0]); // Return true iff the key doesn't match any of the regexes. 121 }); 122 }) 123 .map(function(kv) { 124 return kv.join('='); // Join each [key, value] array into a 'key=value' string 125 }) 126 .join('&'); // Join the array of 'key=value' strings into a string with '&' in between each 127 128 return url.toString(); 129 }; 130 131 132var hashParamName = '_sw-precache'; 133var urlsToCacheKeys = new Map( 134 precacheConfig.map(function(item) { 135 var relativeUrl = item[0]; 136 var hash = item[1]; 137 var absoluteUrl = new URL(relativeUrl, self.location); 138 var cacheKey = createCacheKey(absoluteUrl, hashParamName, hash, false); 139 return [absoluteUrl.toString(), cacheKey]; 140 }) 141); 142 143function setOfCachedUrls(cache) { 144 return cache.keys().then(function(requests) { 145 return requests.map(function(request) { 146 return request.url; 147 }); 148 }).then(function(urls) { 149 return new Set(urls); 150 }); 151} 152 153self.addEventListener('install', function(event) { 154 event.waitUntil( 155 caches.open(cacheName).then(function(cache) { 156 return setOfCachedUrls(cache).then(function(cachedUrls) { 157 return Promise.all( 158 Array.from(urlsToCacheKeys.values()).map(function(cacheKey) { 159 // If we don't have a key matching url in the cache already, add it. 160 if (!cachedUrls.has(cacheKey)) {
161 var request = new Request(cacheKey, {credentials: 'same-origin'}); 162 return fetch(request).then(function(response) { 163 // Bail out of installation unless we get back a 200 OK for 164 // every request. 165 if (!response.ok) { 166 throw new Error('Request for ' + cacheKey + ' returned a ' + 167 'response with status ' + response.status); 168 } 169 170 return cleanResponse(response).then(function(responseToCache) { 171 return cache.put(cacheKey, responseToCache); 172 }); 173 }); 174 } 175 }) 176 ); 177 }); 178 }).then(function() { 179 180 // Force the SW to transition from installing -> active state 181 return self.skipWaiting(); 182 183 }) 184 ); 185}); 186 187self.addEventListener('activate', function(event) { 188 var setOfExpectedUrls = new Set(urlsToCacheKeys.values()); 189 190 event.waitUntil( 191 caches.open(cacheName).then(function(cache) { 192 return cache.keys().then(function(existingRequests) { 193 return Promise.all( 194 existingRequests.map(function(existingRequest) { 195 if (!setOfExpectedUrls.has(existingRequest.url)) { 196 return cache.delete(existingRequest); 197 } 198 }) 199 ); 200 }); 201 }).then(function() { 202 203 return self.clients.claim(); 204 205 }) 206 ); 207}); 208 209 210self.addEventListener('fetch', function(event) { 211 if (event.request.method === 'GET') { 212 // Should we call event.respondWith() inside this fetch event handler? 213 // This needs to be determined synchronously, which will give other fetch 214 // handlers a chance to handle the request if need be. 215 var shouldRespond; 216 217 // First, remove all the ignored parameters and hash fragment, and see if we 218 // have that URL in our cache. If so, great! shouldRespond will be true. 219 var url = stripIgnoredUrlParameters(event.request.url, ignoreUrlParametersMatching); 220 shouldRespond = urlsToCacheKeys.has(url); 221 222 // If shouldRespond is false, check again, this time with 'index.html' 223 // (or whatever the directoryIndex option is set to) at the end. 224 var directoryIndex = 'index.html'; 225 if (!shouldRespond && directoryIndex) { 226 url = addDirectoryIndex(url, directoryIndex); 227 shouldRespond = urlsToCacheKeys.has(url); 228 } 229 230 // If shouldRespond is still false, check to see if this is a navigation 231 // request, and if so, whether the URL matches navigateFallbackWhitelist. 232 var navigateFallback = ''; 233 if (!shouldRespond && 234 navigateFallback && 235 (event.request.mode === 'navigate') && 236 isPathWhitelisted([], event.request.url)) { 237 url = new URL(navigateFallback, self.location).toString(); 238 shouldRespond = urlsToCacheKeys.has(url); 239 } 240 241 // If shouldRespond was set to true at any point, then call 242 // event.respondWith(), using the appropriate cache key. 243 if (shouldRespond) { 244 event.respondWith( 245 caches.open(cacheName).then(function(cache) { 246 return cache.match(urlsToCacheKeys.get(url)).then(function(response) { 247 if (response) { 248 return response; 249 } 250 throw Error('The cached response that was expected is missing.'); 251 }); 252 }).catch(function(e) { 253 // Fall back to just fetch()ing the request if some unexpected error 254 // prevented the cached response from being valid. 255 console.warn('Couldn\'t serve response for "%s" from cache: %O', event.request.url, e); 256 return fetch(event.request); 257 }) 258 ); 259 } 260 } 261}); 262 263 264// *** Start of auto-included sw-toolbox code. *** 265/* 266 Copyright 2016 Google Inc. All Rights Reserved. 267 268 Licensed under the Apache License, Version 2.0 (the "License");
269 you may not use this file except in compliance with the License. 270 You may obtain a copy of the License at 271 272 http://www.apache.org/licenses/LICENSE-2.0 273 274 Unless required by applicable law or agreed to in writing, software 275 distributed under the License is distributed on an "AS IS" BASIS, 276 WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 277 See the License for the specific language governing permissions and 278 limitations under the License. 279*/!function(e){if("object"==typeof exports&&"undefined"!=typeof module)module.exports=e();else if("function"==typeof define&&define.amd)define([],e);else{var t;t="undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:this,t.toolbox=e()}}(function(){return function e(t,n,r){function o(c,s){if(!n[c]){if(!t[c]){var a="function"==typeof require&&require;if(!s&&a)return a(c,!0);if(i)return i(c,!0);var u=new Error("Cannot find module '"+c+"'");throw u.code="MODULE_NOT_FOUND",u}var f=n[c]={exports:{}};t[c][0].call(f.exports,function(e){var n=t[c][1][e];return o(n?n:e)},f,f.exports,e,t,n,r)}return n[c].exports}for(var i="function"==typeof require&&require,c=0;c<r.length;c++)o(r[c]);return o}({1:[function(e,t,n){"use strict";function r(e,t){t=t||{};var n=t.debug||m.debug;n&&console.log("[sw-toolbox] "+e)}function o(e){var t;return e&&e.cache&&(t=e.cache.name),t=t||m.cache.name,caches.open(t)}function i(e,t){t=t||{};var n=t.successResponses||m.successResponses;return fetch(e.clone()).then(function(r){return"GET"===e.method&&n.test(r.status)&&o(t).then(function(n){n.put(e,r).then(function(){var r=t.cache||m.cache;(r.maxEntries||r.maxAgeSeconds)&&r.name&&c(e,n,r)})}),r.clone()})}function c(e,t,n){var r=s.bind(null,e,t,n);d=d?d.then(r):r()}function s(e,t,n){var o=e.url,i=n.maxAgeSeconds,c=n.maxEntries,s=n.name,a=Date.now();return r("Updating LRU order for "+o+". Max entries is "+c+", max age is "+i),g.getDb(s).then(function(e){return g.setTimestampForUrl(e,o,a)}).then(function(e){return g.expireEntries(e,c,i,a)}).then(function(e){r("Successfully updated IDB.");var n=e.map(function(e){return t.delete(e)});return Promise.all(n).then(function(){r("Done with cache cleanup.")})}).catch(function(e){r(e)})}function a(e,t,n){return r("Renaming cache: ["+e+"] to ["+t+"]",n),caches.delete(t).then(function(){return Promise.all([caches.open(e),caches.open(t)]).then(function(t){var n=t[0],r=t[1];return n.keys().then(function(e){return Promise.all(e.map(function(e){return n.match(e).then(function(t){return r.put(e,t)})}))}).then(function(){return caches.delete(e)})})})}function u(e,t){return o(t).then(function(t){return t.add(e)})}function f(e,t){return o(t).then(function(t){return t.delete(e)})}function h(e){e instanceof Promise||p(e),m.preCacheItems=m.preCacheItems.concat(e)}function p(e){var t=Array.isArray(e);if(t&&e.forEach(function(e){"string"==typeof e||e instanceof Request||(t=!1)}),!t)throw new TypeError("The precache method expects either an array of strings and/or Requests or a Promise that resolves to an array of strings and/or Requests.");return e}function l(e,t,n){if(!e)return!1;if(t){var r=e.headers.get("date");if(r){var o=new Date(r);if(o.getTime()+1e3*t<n)return!1}}return!0}var d,m=e("./options"),g=e("./idb-cache-expiration");t.exports={debug:r,fetchAndCache:i,openCache:o,renameCache:a,cache:u,uncache:f,precache:h,validatePrecacheInput:p,isResponseFresh:l}},{"./idb-cache-expiration":2,"./options":4}],2:[function(e,t,n){"use strict";function r(e){return new Promise(function(t,n){var r=indexedDB.open(u+e,f);r.onupgradeneeded=function(){var e=r.result.createObjectStore(h,{keyPath:p});e.createIndex(l,l,{unique:!1})},r.onsuccess=function(){t(r.result)},r.onerror=function(){n(r.error)}})}function o(e){return e in d||(d[e]=r(e)),d[e]}function i(e,t,n){return new Promise(function(r,o){var i=e.transaction(h,"readwrite"),c=i.objectStore(h);c.put({url:t,timestamp:n}),i.oncomplete=function(){r(e)},i.onabort=function(){o(i.error)}})}function c(e,t,n){return t?new Promise(function(r,o){var i=1e3*t,c=[],s=e.transaction(h,"readwrite"),a=s.objectStore(h),u=a.index(l);u.openCursor().onsuccess=function(e){var t=e.target.result;if(t&&n-i>t.value[l]){var r=t.value[p];c.push(r),a.delete(r),t.continue()}},s.oncomplete=function(){r(c)},s.onabort=o}):Promise.resolve([])}function s(e,t){return t?new Promise(function(n,r){var o=[],i=e.transaction(h,"readwrite"),c=i.objectStore(h),s=c.index(l),a=s.count();s.count().onsuccess=function(){var e=a.result;e>t&&(s.openCursor().onsuccess=function(n){var r=n.target.result;if(r){var i=r.value[p];o.push(i),c.delete(i),e-o.length>t&&r.continue()}})},i.oncomplete=function(){n(o)},i.onabort=r}):Promise.resolve([])}function a(e,t,n,r){return c(e,n,r).then(function(n){return s(e,t).then(function(e){return n.concat(e)})})}var u="sw-toolbox-",f=1,h="store",p="url",l="timestamp",d={};t.exports={getDb:o,setTimestampForUrl:i,expireEntries:a}},{}],3:[function(e,t,n){"use strict";function r(e){var t=a.match(e.request);t?e.respondWith(t(e.request)):a.default&&"GET"===e.request.method&&0===e.request.url.indexOf("http")&&e.respondWith(a.default(e.request))}function o(e){s.debug("activate event fired");var t=u.cache.name+"$$$inactive$$$";e.waitUntil(s.renameCache(t,u.cache.name))}function i(e){return e.reduce(function(e,t){return e.concat(t)},[])}function c(e){var t=u.cache.name+"$$$inactive$$$";s.debug("install event fired"),s.debug("creating cache ["+t+"]"),e.waitUntil(s.openCache({cache:{name:t}}).then(function(e){return Promise.all(u.preCacheItems).then(i).then(s.validatePrecacheInput).then(function(t){return s.debug("preCache list: "+(t.join(", ")||"(none)")),e.addAll(t)})}))}e("serviceworker-cache-polyfill");var s=e("./helpers"),a=e("./router"),u=e("./options");t.exports={fetchListener:r,activateListener:o,installListener:c}},{"./helpers":1,"./options":4,"./router":6,"serviceworker-cache-polyfill":16}],4:[function(e,t,n){"use strict";var r;r=self.registration?self.registration.scope:self.scope||new URL("./",self.location).href,t.exports={cache:{name:"$$$toolbox-cache$$$"+r+"$$$",maxAgeSeconds:null,maxEntries:null},debug:!1,networkTimeoutSeconds:null,preCacheItems:[],successResponses:/^0|([123]\d\d)|(40[14567])|410$/}},{}],5:[function(e,t,n){"use strict";
279var r=new URL("./",self.location),o=r.pathname,i=e("path-to-regexp"),c=function(e,t,n,r){t instanceof RegExp?this.fullUrlRegExp=t:(0!==t.indexOf("/")&&(t=o+t),this.keys=[],this.regexp=i(t,this.keys)),this.method=e,this.options=r,this.handler=n};c.prototype.makeHandler=function(e){var t;if(this.regexp){var n=this.regexp.exec(e);t={},this.keys.forEach(function(e,r){t[e.name]=n[r+1]})}return function(e){return this.handler(e,t,this.options)}.bind(this)},t.exports=c},{"path-to-regexp":15}],6:[function(e,t,n){"use strict";function r(e){return e.replace(/[-\/\\^$*+?.()|[\]{}]/g,"\\$&")}var o=e("./route"),i=e("./helpers"),c=function(e,t){for(var n=e.entries(),r=n.next(),o=[];!r.done;){var i=new RegExp(r.value[0]);i.test(t)&&o.push(r.value[1]),r=n.next()}return o},s=function(){this.routes=new Map,this.routes.set(RegExp,new Map),this.default=null};["get","post","put","delete","head","any"].forEach(function(e){s.prototype[e]=function(t,n,r){return this.add(e,t,n,r)}}),s.prototype.add=function(e,t,n,c){c=c||{};var s;t instanceof RegExp?s=RegExp:(s=c.origin||self.location.origin,s=s instanceof RegExp?s.source:r(s)),e=e.toLowerCase();var a=new o(e,t,n,c);this.routes.has(s)||this.routes.set(s,new Map);var u=this.routes.get(s);u.has(e)||u.set(e,new Map);var f=u.get(e),h=a.regexp||a.fullUrlRegExp;f.has(h.source)&&i.debug('"'+t+'" resolves to same regex as existing route.'),f.set(h.source,a)},s.prototype.matchMethod=function(e,t){var n=new URL(t),r=n.origin,o=n.pathname;return this._match(e,c(this.routes,r),o)||this._match(e,[this.routes.get(RegExp)],t)},s.prototype._match=function(e,t,n){if(0===t.length)return null;for(var r=0;r<t.length;r++){var o=t[r],i=o&&o.get(e.toLowerCase());if(i){var s=c(i,n);if(s.length>0)return s[0].makeHandler(n)}}return null},s.prototype.match=function(e){return this.matchMethod(e.method,e.url)||this.matchMethod("any",e.url)},t.exports=new s},{"./helpers":1,"./route":5}],7:[function(e,t,n){"use strict";function r(e,t,n){return n=n||{},i.debug("Strategy: cache first ["+e.url+"]",n),i.openCache(n).then(function(t){return t.match(e).then(function(t){var r=n.cache||o.cache,c=Date.now();return i.isResponseFresh(t,r.maxAgeSeconds,c)?t:i.fetchAndCache(e,n)})})}var o=e("../options"),i=e("../helpers");t.exports=r},{"../helpers":1,"../options":4}],8:[function(e,t,n){"use strict";function r(e,t,n){return n=n||{},i.debug("Strategy: cache only ["+e.url+"]",n),i.openCache(n).then(function(t){return t.match(e).then(function(e){var t=n.cache||o.cache,r=Date.now();if(i.isResponseFresh(e,t.maxAgeSeconds,r))return e})})}var o=e("../options"),i=e("../helpers");t.exports=r},{"../helpers":1,"../options":4}],9:[function(e,t,n){"use strict";function r(e,t,n){return o.debug("Strategy: fastest ["+e.url+"]",n),new Promise(function(r,c){var s=!1,a=[],u=function(e){a.push(e.toString()),s?c(new Error('Both cache and network failed: "'+a.join('", "')+'"')):s=!0},f=function(e){e instanceof Response?r(e):u("No result returned")};o.fetchAndCache(e.clone(),n).then(f,u),i(e,t,n).then(f,u)})}var o=e("../helpers"),i=e("./cacheOnly");t.exports=r},{"../helpers":1,"./cacheOnly":8}],10:[function(e,t,n){t.exports={networkOnly:e("./networkOnly"),networkFirst:e("./networkFirst"),cacheOnly:e("./cacheOnly"),cacheFirst:e("./cacheFirst"),fastest:e("./fastest")}},{"./cacheFirst":7,"./cacheOnly":8,"./fastest":9,"./networkFirst":11,"./networkOnly":12}],11:[function(e,t,n){"use strict";function r(e,t,n){n=n||{};var r=n.successResponses||o.successResponses,c=n.networkTimeoutSeconds||o.networkTimeoutSeconds;return i.debug("Strategy: network first ["+e.url+"]",n),i.openCache(n).then(function(t){var s,a,u=[];if(c){var f=new Promise(function(r){s=setTimeout(function(){t.match(e).then(function(e){var t=n.cache||o.cache,c=Date.now(),s=t.maxAgeSeconds;i.isResponseFresh(e,s,c)&&r(e)})},1e3*c)});u.push(f)}var h=i.fetchAndCache(e,n).then(function(e){if(s&&clearTimeout(s),r.test(e.status))return e;throw i.debug("Response was an HTTP error: "+e.statusText,n),a=e,new Error("Bad response")}).catch(function(r){return i.debug("Network or response error, fallback to cache ["+e.url+"]",n),t.match(e).then(function(e){if(e)return e;if(a)return a;throw r})});return u.push(h),Promise.race(u)})}var o=e("../options"),i=e("../helpers");t.exports=r},{"../helpers":1,"../options":4}],12:[function(e,t,n){"use strict";function r(e,t,n){return o.debug("Strategy: network only ["+e.url+"]",n),fetch(e)}var o=e("../helpers");t.exports=r},{"../helpers":1}],13:[function(e,t,n){"use strict";var r=e("./options"),o=e("./router"),i=e("./helpers"),c=e("./strategies"),s=e("./listeners");i.debug("Service Worker Toolbox is loading"),self.addEventListener("install",s.installListener),self.addEventListener("activate",s.activateListener),self.addEventListener("fetch",s.fetchListener),t.exports={networkOnly:c.networkOnly,networkFirst:c.networkFirst,cacheOnly:c.cacheOnly,cacheFirst:c.cacheFirst,fastest:c.fastest,router:o,options:r,cache:i.cache,uncache:i.uncache,precache:i.precache}},{"./helpers":1,"./listeners":3,"./options":4,"./router":6,"./strategies":10}],14:[function(e,t,n){t.exports=Array.isArray||function(e){return"[object Array]"==Object.prototype.toString.call(e)}},{}],15:[function(e,t,n){function r(e,t){for(var n,r=[],o=0,i=0,c="",s=t&&t.delimiter||"/";null!=(n=x.exec(e));){var f=n[0],h=n[1],p=n.index;if(c+=e.slice(i,p),i=p+f.length,h)c+=h[1];else{var l=e[i],d=n[2],m=n[3],g=n[4],v=n[5],w=n[6],y=n[7];c&&(r.push(c),c="");var b=null!=d&&null!=l&&l!==d,E="+"===w||"*"===w,R="?"===w||"*"===w,k=n[2]||s,$=g||v;r.push({name:m||o++,prefix:d||"",delimiter:k,optional:R,repeat:E,partial:b,asterisk:!!y,pattern:$?u($):y?".*":"[^"+a(k)+"]+?"})}}return i<e.length&&(c+=e.substr(i)),c&&r.push(c),r}function o(e,t){return s(r(e,t))}function i(e){return encodeURI(e).replace(/[\/?#]/g,function(e){return"%"+e.charCodeAt(0).toString(16).toUpperCase()})}function c(e){return encodeURI(e).replace(/[?#]/g,function(e){return"%"+e.charCodeAt(0).toString(16).toUpperCase()})}function s(e){for(var t=new Array(e.length),n=0;n<e.length;n++)"object"==typeof e[n]&&(t[n]=new RegExp("^(?:"+e[n].pattern+")$"));return function(n,r){for(var o="",s=n||{},a=r||{},u=a.pretty?i:encodeURIComponent,f=0;f<e.length;f++){var h=e[f];if("string"!=typeof h){var p,l=s[h.name];if(null==l){if(h.optional){h.partial&&(o+=h.prefix);continue}throw new TypeError('Expected "'+h.name+'" to be defined')}
279if(v(l)){if(!h.repeat)throw new TypeError('Expected "'+h.name+'" to not repeat, but received `'+JSON.stringify(l)+"`");if(0===l.length){if(h.optional)continue;throw new TypeError('Expected "'+h.name+'" to not be empty')}for(var d=0;d<l.length;d++){if(p=u(l[d]),!t[f].test(p))throw new TypeError('Expected all "'+h.name+'" to match "'+h.pattern+'", but received `'+JSON.stringify(p)+"`");o+=(0===d?h.prefix:h.delimiter)+p}}else{if(p=h.asterisk?c(l):u(l),!t[f].test(p))throw new TypeError('Expected "'+h.name+'" to match "'+h.pattern+'", but received "'+p+'"');o+=h.prefix+p}}else o+=h}return o}}function a(e){return e.replace(/([.+*?=^!:${}()[\]|\/\\])/g,"\\$1")}function u(e){return e.replace(/([=!:$\/()])/g,"\\$1")}function f(e,t){return e.keys=t,e}function h(e){return e.sensitive?"":"i"}function p(e,t){var n=e.source.match(/\((?!\?)/g);if(n)for(var r=0;r<n.length;r++)t.push({name:r,prefix:null,delimiter:null,optional:!1,repeat:!1,partial:!1,asterisk:!1,pattern:null});return f(e,t)}function l(e,t,n){for(var r=[],o=0;o<e.length;o++)r.push(g(e[o],t,n).source);var i=new RegExp("(?:"+r.join("|")+")",h(n));return f(i,t)}function d(e,t,n){return m(r(e,n),t,n)}function m(e,t,n){v(t)||(n=t||n,t=[]),n=n||{};for(var r=n.strict,o=n.end!==!1,i="",c=0;c<e.length;c++){var s=e[c];if("string"==typeof s)i+=a(s);else{var u=a(s.prefix),p="(?:"+s.pattern+")";t.push(s),s.repeat&&(p+="(?:"+u+p+")*"),p=s.optional?s.partial?u+"("+p+")?":"(?:"+u+"("+p+"))?":u+"("+p+")",i+=p}}var l=a(n.delimiter||"/"),d=i.slice(-l.length)===l;return r||(i=(d?i.slice(0,-l.length):i)+"(?:"+l+"(?=$))?"),i+=o?"$":r&&d?"":"(?="+l+"|$)",f(new RegExp("^"+i,h(n)),t)}function g(e,t,n){return v(t)||(n=t||n,t=[]),n=n||{},e instanceof RegExp?p(e,t):v(e)?l(e,t,n):d(e,t,n)}var v=e("isarray");t.exports=g,t.exports.parse=r,t.exports.compile=o,t.exports.tokensToFunction=s,t.exports.tokensToRegExp=m;var x=new RegExp(["(\\\\.)","([\\/.])?(?:(?:\\:(\\w+)(?:\\(((?:\\\\.|[^\\\\()])+)\\))?|\\(((?:\\\\.|[^\\\\()])+)\\))([+*?])?|(\\*))"].join("|"),"g")},{isarray:14}],16:[function(e,t,n){!function(){var e=Cache.prototype.addAll,t=navigator.userAgent.match(/(Firefox|Chrome)\/(\d+\.)/);if(t)var n=t[1],r=parseInt(t[2]);e&&(!t||"Firefox"===n&&r>=46||"Chrome"===n&&r>=50)||(Cache.prototype.addAll=function(e){function t(e){this.name="NetworkError",this.code=19,this.message=e}var n=this;return t.prototype=Object.create(Error.prototype),Promise.resolve().then(function(){if(arguments.length<1)throw new TypeError;return e=e.map(function(e){return e instanceof Request?e:String(e)}),Promise.all(e.map(function(e){"string"==typeof e&&(e=new Request(e));var n=new URL(e.url).protocol;if("http:"!==n&&"https:"!==n)throw new t("Invalid scheme");return fetch(e.clone())}))}).then(function(r){if(r.some(function(e){return!e.ok}))throw new t("Incorrect response status");return Promise.all(r.map(function(t,r){return n.put(e[r],t)}))}).then(function(){})},Cache.prototype.add=function(e){return this.addAll([e])})}()},{}]},{},[13])(13)}); 280 281 282// *** End of auto-included sw-toolbox code. *** 283 284 285 286// Runtime cache configuration, using the sw-toolbox library. 287 288toolbox.router.get("^https://fonts.googleapis.com/", toolbox.cacheFirst, {}); 289toolbox.router.get("^https://fonts.gstatic.com/", toolbox.cacheFirst, {}); 290toolbox.router.get("^https://unpkg.com/", toolbox.cacheFirst, {}); 291toolbox.router.get("/pwa.html", toolbox.networkFirst, {}); 292toolbox.router.get("/", toolbox.networkFirst, {}); 293toolbox.router.get("/p/*", toolbox.networkFirst, {}); 294toolbox.router.get("/c/*", toolbox.networkFirst, {}); 295toolbox.router.get("/img/(.*)", toolbox.fastest, {}); 296toolbox.router.get(/(http[s]?:\/\/)?(\/)?([^\/\s]+\/)?(api\/catalog\/)(.*)/g, toolbox.networkFirst, {}); 297toolbox.router.get("/api/*", toolbox.networkFirst, {}); 298toolbox.router.get("/assets/logo.svg", toolbox.networkFirst, {}); 299toolbox.router.get("/index.html", toolbox.networkFirst, {}); 300toolbox.router.get("/assets/*", toolbox.fastest, {}); 301toolbox.router.get("/assets/ig/(.*)", toolbox.fastest, {}); 302toolbox.router.get("/dist/(.*)", toolbox.fastest, {}); 303toolbox.router.get("/*/*", toolbox.networkFirst, {}); 304toolbox.router.get("/*/*/*", toolbox.networkFirst, {}); 305toolbox.router.get("/*", toolbox.networkFirst, {}); 306 307 308 309 310importScripts("/dist/core-service-worker.js"); 311
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.