PageSourceSearch

https://www.grandvelas.com/serviceworker.js

js grandvelas.com collected 2026-10-03 20:51:44 UTC 7,463 bytes, 212 lines download raw bytes

1'use strict';
2importScripts('sw-analytics.js');
3self.analytics.trackingId = 'G-W593ZSG28J';
4
5try {
6
7    /* Replace below code with current site start*/
8
9
10// 86acbd31cd7c09cf30acb66d2fbedc91daa48b86:1594362511.2451456
11// 86acbd31cd7c09cf30acb66d2fbedc91daa48b86:1724922914.5667512
12importScripts('https://aswpsdkus.com/notify/v1/ua-sdk.min.js')
13uaSetup.worker(self, {
14  
15  defaultIcon: 'https://www.grandvelas.com/resourcefiles/pwa_images/grandvelas\u002D192x192.png',
16  defaultTitle: 'Grand Velas',
17  defaultActionURL: 'https://www.grandvelas.com/',
18  appKey: 'ZPirAuM6TnWTwR5KJ8sFTQ',
19  token: 'MTpaUGlyQXVNNlRuV1R3UjVLSjhzRlRROkRIX3k5eWVfcExuRTJfeElxYjRBc0V5Y2ZSOXVxSWZoeEJsSkRIQ0RwYkU',
20  vapidPublicKey: 'BM-CG3cuw5z1oL6eOdIEa_UC584hPRhGItLU3X9jOBmUZ1Z9vHBsQykpqjAcRavcIKBHPxJWr0U8n8kiHgjn20s='
21,workerUrl: 'https://www.grandvelas.com/serviceworker.js'})
22
23
24    /* Replace below code with current site end*/
25} catch (err) {
26    /* console.log(err.message); */
27}
28
29
30
31var cacheName = 'grandvelas2024-202610021614145970';
32
33var filesToCache = [
34'./',
35'./offline',
36'./dynamic/css/without-banner.aspx',
37'./dynamic/js/without-banner.aspx'
38];
39
40var siteURL = "https://www.grandvelas.com/";
41/* Install Service Worker*/
42self.addEventListener('install', function (event) {
43
44    event.waitUntil(
45        /* Open the Cache*/
46        caches.open(cacheName).then(function (cache) {
47            /* Add Files to the Cache*/
48            return cache.addAll(filesToCache);
49        })
50    );
51});
52
53
54/* Fired when the Service Worker starts up*/
55self.addEventListener('activate', function (event) {
56    event.waitUntil(
57        caches.keys().then(function (cacheNames) {
58            return Promise.all(cacheNames.map(function (key) {
59                if (key !== cacheName) {
60                    return caches.delete(key);
61                }
62            }));
63        })
64    );
65    return self.clients.claim();
66
67});
68
69
70self.addEventListener('fetch', function (event) {
71    // bypass cache for specific routes
72    if (/\/cms7\//.test(event.request.url) || /IsDraftPage=true/.test(event.request.url) || /reqsrc=clientlogin/.test(event.request.url) || /ccadmin\/cms/.test(event.request.url) || /googletagmanager/.test(event.request.url) || /content_editor/.test(event.request.url) || /api/.test(event.request.url) || /recaptcha/.test(event.request.url) || /.pdf/.test(event.request.url) || /weatherwidgethandler.ashx/.test(event.request.url) || /events/.test(event.request.url) || /serviceworker.js/.test(event.request.url)) {}
73    else {
74         // bypass cache for all post requests
75        if (event.request.method === 'POST') {
76            return;
77        }
78         // fetch cache-first for all resource types and external urls, fetch from cache if no network
79        if (navigator.onLine==false ||  event.request.url.indexOf(siteURL) == -1 || /.ico/.test(event.request.url) || /.woff/.test(event.request.url) || /.woff2/.test(event.request.url) || /.svg/.test(event.request.url) || /.png/.test(event.request.url) || /.bmp/.test(event.request.url) || /.jpeg/.test(event.request.url) || /.jpg/.test(event.request.url) || /.js/.test(event.request.url) || /.css/.test(event.request.url) || /.aspx/.test(event.request.url) || /.aspx/.test(event.request.url) || /\/image\//.test(event.request.url) || /\/images\//.test(event.request.url) || /\/images_noindex\//.test(event.request.url) || /\/resourcefiles\//.test(event.request.url) || /\/fonts\//.test(event.request.url)) {
80            event.respondWith(
81                caches.match(event.request)
82                    .then(function (response) {
83                        return response || fetchAndCache(event.request);
84                    })
85            );
86        }         
87        else {
88            // fetch network-first for all the pages if no network serve from cache
89            event.respondWith(
90                fromNetwork(event.request).catch(() =>
91                    caches.match(event.request)
92                        .then(function (response) {
93                            // server from cache
94                            if (response != undefined) {
95                                return response;
96                            }
97                            else {
98                                // if cache not avaible during no network then show offline page
99                                if (event.request.url.search("/amp") > -1) {
100                                    return caches.match('amp/offline');
101                                }
102
103                                return caches.match('offline');
104                            }
105
106                        })
107                )
108            );
109        }
110    }
111});
112
113// fetch the resource from the network
114const fromNetwork = (request) =>
115    new Promise((fulfill, reject) => {
116        fetch(request).then(response => {
117            var res = response.clone();
118            fulfill(response);
119            if (!response.type == 'basic') {
120                throw Error(response.statusText);
121            }
122            // caching the response for next request
123            caches.open(cacheName)
124                .then(function (cache) {
125                    cache.put(request, res);
126                });
127        }, reject);
128    });
129
130function fetchAndCache(url) {
131    return fetch(url)
132        .then(function (response) {
133            /* Check if we received a valid response*/
134
135            if (!response.type == 'basic') {
136                throw Error(response.statusText);
137            }
138            return caches.open(cacheName)
139                .then(function (cache) {
140                    cache.put(url, response.clone());
141                    return response;
142                });
143        })
144        .catch(function (error) {
145
146            // var checkstring1 = window.location.pathname;
147            if (url.url.search("/amp") > -1) {
148                return caches.match('amp/offline');
149
150            }
151
152            return caches.match('offline');
153
154        });
155}
156
157self.addEventListener('push', function (event) {
158
159    self.analytics.trackEvent('pushmessage-received');
160});
161
162
163self.addEventListener('notificationclick', function (event) {
164
165    event.notification.close();
166    var notification = event.notification;
167    var rc_data = event.notification.data;
168    /*  console.log(JSON.stringify(rc_data));*/
169
170    var tk = rc_data.channel_id;
171    var msgid = rc_data.data.extras.msgid;
172    var key1 = Object.keys(rc_data.action)[0];
173    var url = rc_data.action[key1];
174    var currentdate = encodeURIComponent(new Date());
175
176    fetch('https://www.grandvelas.com/api/PushNotificationApi/notificationviewed?msgid=' + msgid + '&tokn=' + tk + '&cdate=' + currentdate).then(function (response) {
177        if (response.status !== 200) {
178
179            throw new Error();
180        }
181    })
182
183    if (navigator.userAgent.toLowerCase().indexOf('firefox') > -1) {
184        /* Firefox no action*/
185
186        event.waitUntil(
187            Promise.all([
188		self.analytics.trackEvent('pushmessage-clicked')
189		])
190        );
191    } else {
192        event.waitUntil(
193            Promise.all([
194		clients.openWindow(url),
195		self.analytics.trackEvent('pushmessage-clicked')
196		])
197        );
198    }
199
200
201
202
203
204});
205
206
207
208
209self.addEventListener('notificationclose', function (event) {
210    event.notification.close();
211
212});

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.