jekyll-pwa-workbox 0.0.7.alpha → 0.0.7
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/lib/jekyll-pwa-workbox.rb +1 -1
- data/lib/vendor/{workbox-v5.0.0.alpha1 → workbox-v5.0.0}/workbox-background-sync.dev.js +12 -13
- data/lib/vendor/workbox-v5.0.0/workbox-background-sync.dev.js.map +1 -0
- data/lib/vendor/workbox-v5.0.0/workbox-background-sync.prod.js +2 -0
- data/lib/vendor/workbox-v5.0.0/workbox-background-sync.prod.js.map +1 -0
- data/lib/vendor/workbox-v5.0.0/workbox-broadcast-update.dev.js +288 -0
- data/lib/vendor/workbox-v5.0.0/workbox-broadcast-update.dev.js.map +1 -0
- data/lib/vendor/workbox-v5.0.0/workbox-broadcast-update.prod.js +2 -0
- data/lib/vendor/workbox-v5.0.0/workbox-broadcast-update.prod.js.map +1 -0
- data/lib/vendor/{workbox-v5.0.0.alpha1 → workbox-v5.0.0}/workbox-cacheable-response.dev.js +6 -7
- data/lib/vendor/workbox-v5.0.0/workbox-cacheable-response.dev.js.map +1 -0
- data/lib/vendor/workbox-v5.0.0/workbox-cacheable-response.prod.js +2 -0
- data/lib/vendor/workbox-v5.0.0/workbox-cacheable-response.prod.js.map +1 -0
- data/lib/vendor/{workbox-v5.0.0.alpha1 → workbox-v5.0.0}/workbox-core.dev.js +306 -67
- data/lib/vendor/workbox-v5.0.0/workbox-core.dev.js.map +1 -0
- data/lib/vendor/workbox-v5.0.0/workbox-core.prod.js +2 -0
- data/lib/vendor/workbox-v5.0.0/workbox-core.prod.js.map +1 -0
- data/lib/vendor/{workbox-v5.0.0.alpha1 → workbox-v5.0.0}/workbox-expiration.dev.js +13 -14
- data/lib/vendor/workbox-v5.0.0/workbox-expiration.dev.js.map +1 -0
- data/lib/vendor/workbox-v5.0.0/workbox-expiration.prod.js +2 -0
- data/lib/vendor/workbox-v5.0.0/workbox-expiration.prod.js.map +1 -0
- data/lib/vendor/{workbox-v5.0.0.alpha1 → workbox-v5.0.0}/workbox-navigation-preload.dev.js +4 -5
- data/lib/vendor/workbox-v5.0.0/workbox-navigation-preload.dev.js.map +1 -0
- data/lib/vendor/workbox-v5.0.0/workbox-navigation-preload.prod.js +2 -0
- data/lib/vendor/workbox-v5.0.0/workbox-navigation-preload.prod.js.map +1 -0
- data/lib/vendor/{workbox-v5.0.0.alpha1 → workbox-v5.0.0}/workbox-offline-ga.dev.js +12 -13
- data/lib/vendor/workbox-v5.0.0/workbox-offline-ga.dev.js.map +1 -0
- data/lib/vendor/workbox-v5.0.0/workbox-offline-ga.prod.js +2 -0
- data/lib/vendor/workbox-v5.0.0/workbox-offline-ga.prod.js.map +1 -0
- data/lib/vendor/{workbox-v5.0.0.alpha1 → workbox-v5.0.0}/workbox-precaching.dev.js +314 -86
- data/lib/vendor/workbox-v5.0.0/workbox-precaching.dev.js.map +1 -0
- data/lib/vendor/workbox-v5.0.0/workbox-precaching.prod.js +2 -0
- data/lib/vendor/workbox-v5.0.0/workbox-precaching.prod.js.map +1 -0
- data/lib/vendor/{workbox-v5.0.0.alpha1 → workbox-v5.0.0}/workbox-range-requests.dev.js +8 -9
- data/lib/vendor/workbox-v5.0.0/workbox-range-requests.dev.js.map +1 -0
- data/lib/vendor/workbox-v5.0.0/workbox-range-requests.prod.js +2 -0
- data/lib/vendor/workbox-v5.0.0/workbox-range-requests.prod.js.map +1 -0
- data/lib/vendor/{workbox-v5.0.0.alpha1 → workbox-v5.0.0}/workbox-routing.dev.js +79 -182
- data/lib/vendor/workbox-v5.0.0/workbox-routing.dev.js.map +1 -0
- data/lib/vendor/workbox-v5.0.0/workbox-routing.prod.js +2 -0
- data/lib/vendor/workbox-v5.0.0/workbox-routing.prod.js.map +1 -0
- data/lib/vendor/{workbox-v5.0.0.alpha1 → workbox-v5.0.0}/workbox-strategies.dev.js +23 -227
- data/lib/vendor/workbox-v5.0.0/workbox-strategies.dev.js.map +1 -0
- data/lib/vendor/workbox-v5.0.0/workbox-strategies.prod.js +2 -0
- data/lib/vendor/workbox-v5.0.0/workbox-strategies.prod.js.map +1 -0
- data/lib/vendor/{workbox-v5.0.0.alpha1 → workbox-v5.0.0}/workbox-streams.dev.js +16 -31
- data/lib/vendor/workbox-v5.0.0/workbox-streams.dev.js.map +1 -0
- data/lib/vendor/workbox-v5.0.0/workbox-streams.prod.js +2 -0
- data/lib/vendor/workbox-v5.0.0/workbox-streams.prod.js.map +1 -0
- data/lib/vendor/workbox-v5.0.0/workbox-sw.js +2 -0
- data/lib/vendor/workbox-v5.0.0/workbox-sw.js.map +1 -0
- data/lib/vendor/{workbox-v5.0.0.alpha1 → workbox-v5.0.0}/workbox-window.dev.es5.mjs +317 -113
- data/lib/vendor/workbox-v5.0.0/workbox-window.dev.es5.mjs.map +1 -0
- data/lib/vendor/{workbox-v5.0.0.alpha1 → workbox-v5.0.0}/workbox-window.dev.mjs +244 -44
- data/lib/vendor/workbox-v5.0.0/workbox-window.dev.mjs.map +1 -0
- data/lib/vendor/{workbox-v5.0.0.alpha1 → workbox-v5.0.0}/workbox-window.dev.umd.js +317 -113
- data/lib/vendor/workbox-v5.0.0/workbox-window.dev.umd.js.map +1 -0
- data/lib/vendor/workbox-v5.0.0/workbox-window.prod.es5.mjs +2 -0
- data/lib/vendor/workbox-v5.0.0/workbox-window.prod.es5.mjs.map +1 -0
- data/lib/vendor/workbox-v5.0.0/workbox-window.prod.mjs +2 -0
- data/lib/vendor/workbox-v5.0.0/workbox-window.prod.mjs.map +1 -0
- data/lib/vendor/workbox-v5.0.0/workbox-window.prod.umd.js +2 -0
- data/lib/vendor/workbox-v5.0.0/workbox-window.prod.umd.js.map +1 -0
- metadata +70 -69
- data/lib/vendor/workbox-v5.0.0.alpha1/workbox-background-sync.dev.js.map +0 -1
- data/lib/vendor/workbox-v5.0.0.alpha1/workbox-background-sync.prod.js +0 -2
- data/lib/vendor/workbox-v5.0.0.alpha1/workbox-background-sync.prod.js.map +0 -1
- data/lib/vendor/workbox-v5.0.0.alpha1/workbox-broadcast-update.dev.js +0 -486
- data/lib/vendor/workbox-v5.0.0.alpha1/workbox-broadcast-update.dev.js.map +0 -1
- data/lib/vendor/workbox-v5.0.0.alpha1/workbox-broadcast-update.prod.js +0 -2
- data/lib/vendor/workbox-v5.0.0.alpha1/workbox-broadcast-update.prod.js.map +0 -1
- data/lib/vendor/workbox-v5.0.0.alpha1/workbox-cacheable-response.dev.js.map +0 -1
- data/lib/vendor/workbox-v5.0.0.alpha1/workbox-cacheable-response.prod.js +0 -2
- data/lib/vendor/workbox-v5.0.0.alpha1/workbox-cacheable-response.prod.js.map +0 -1
- data/lib/vendor/workbox-v5.0.0.alpha1/workbox-core.dev.js.map +0 -1
- data/lib/vendor/workbox-v5.0.0.alpha1/workbox-core.prod.js +0 -2
- data/lib/vendor/workbox-v5.0.0.alpha1/workbox-core.prod.js.map +0 -1
- data/lib/vendor/workbox-v5.0.0.alpha1/workbox-expiration.dev.js.map +0 -1
- data/lib/vendor/workbox-v5.0.0.alpha1/workbox-expiration.prod.js +0 -2
- data/lib/vendor/workbox-v5.0.0.alpha1/workbox-expiration.prod.js.map +0 -1
- data/lib/vendor/workbox-v5.0.0.alpha1/workbox-navigation-preload.dev.js.map +0 -1
- data/lib/vendor/workbox-v5.0.0.alpha1/workbox-navigation-preload.prod.js +0 -2
- data/lib/vendor/workbox-v5.0.0.alpha1/workbox-navigation-preload.prod.js.map +0 -1
- data/lib/vendor/workbox-v5.0.0.alpha1/workbox-offline-ga.dev.js.map +0 -1
- data/lib/vendor/workbox-v5.0.0.alpha1/workbox-offline-ga.prod.js +0 -2
- data/lib/vendor/workbox-v5.0.0.alpha1/workbox-offline-ga.prod.js.map +0 -1
- data/lib/vendor/workbox-v5.0.0.alpha1/workbox-precaching.dev.js.map +0 -1
- data/lib/vendor/workbox-v5.0.0.alpha1/workbox-precaching.prod.js +0 -2
- data/lib/vendor/workbox-v5.0.0.alpha1/workbox-precaching.prod.js.map +0 -1
- data/lib/vendor/workbox-v5.0.0.alpha1/workbox-range-requests.dev.js.map +0 -1
- data/lib/vendor/workbox-v5.0.0.alpha1/workbox-range-requests.prod.js +0 -2
- data/lib/vendor/workbox-v5.0.0.alpha1/workbox-range-requests.prod.js.map +0 -1
- data/lib/vendor/workbox-v5.0.0.alpha1/workbox-routing.dev.js.map +0 -1
- data/lib/vendor/workbox-v5.0.0.alpha1/workbox-routing.prod.js +0 -2
- data/lib/vendor/workbox-v5.0.0.alpha1/workbox-routing.prod.js.map +0 -1
- data/lib/vendor/workbox-v5.0.0.alpha1/workbox-strategies.dev.js.map +0 -1
- data/lib/vendor/workbox-v5.0.0.alpha1/workbox-strategies.prod.js +0 -2
- data/lib/vendor/workbox-v5.0.0.alpha1/workbox-strategies.prod.js.map +0 -1
- data/lib/vendor/workbox-v5.0.0.alpha1/workbox-streams.dev.js.map +0 -1
- data/lib/vendor/workbox-v5.0.0.alpha1/workbox-streams.prod.js +0 -2
- data/lib/vendor/workbox-v5.0.0.alpha1/workbox-streams.prod.js.map +0 -1
- data/lib/vendor/workbox-v5.0.0.alpha1/workbox-sw.js +0 -2
- data/lib/vendor/workbox-v5.0.0.alpha1/workbox-sw.js.map +0 -1
- data/lib/vendor/workbox-v5.0.0.alpha1/workbox-window.dev.es5.mjs.map +0 -1
- data/lib/vendor/workbox-v5.0.0.alpha1/workbox-window.dev.mjs.map +0 -1
- data/lib/vendor/workbox-v5.0.0.alpha1/workbox-window.dev.umd.js.map +0 -1
- data/lib/vendor/workbox-v5.0.0.alpha1/workbox-window.prod.es5.mjs +0 -2
- data/lib/vendor/workbox-v5.0.0.alpha1/workbox-window.prod.es5.mjs.map +0 -1
- data/lib/vendor/workbox-v5.0.0.alpha1/workbox-window.prod.mjs +0 -2
- data/lib/vendor/workbox-v5.0.0.alpha1/workbox-window.prod.mjs.map +0 -1
- data/lib/vendor/workbox-v5.0.0.alpha1/workbox-window.prod.umd.js +0 -2
- data/lib/vendor/workbox-v5.0.0.alpha1/workbox-window.prod.umd.js.map +0 -1
@@ -4,9 +4,8 @@
|
|
4
4
|
(global = global || self, factory(global.workbox = {}));
|
5
5
|
}(this, function (exports) { 'use strict';
|
6
6
|
|
7
|
-
// @ts-ignore
|
8
7
|
try {
|
9
|
-
self['workbox:window:5.0.0
|
8
|
+
self['workbox:window:5.0.0'] && _();
|
10
9
|
} catch (e) {}
|
11
10
|
|
12
11
|
/*
|
@@ -28,7 +27,6 @@
|
|
28
27
|
* @param {ServiceWorker} sw The service worker to send the message to.
|
29
28
|
* @param {Object} data An object to send to the service worker.
|
30
29
|
* @return {Promise<Object|undefined>}
|
31
|
-
*
|
32
30
|
* @memberof module:workbox-window
|
33
31
|
*/
|
34
32
|
|
@@ -66,9 +64,8 @@
|
|
66
64
|
subClass.__proto__ = superClass;
|
67
65
|
}
|
68
66
|
|
69
|
-
// @ts-ignore
|
70
67
|
try {
|
71
|
-
self['workbox:core:5.0.0
|
68
|
+
self['workbox:core:5.0.0'] && _();
|
72
69
|
} catch (e) {}
|
73
70
|
|
74
71
|
/*
|
@@ -100,6 +97,23 @@
|
|
100
97
|
});
|
101
98
|
};
|
102
99
|
|
100
|
+
/*
|
101
|
+
Copyright 2019 Google LLC
|
102
|
+
Use of this source code is governed by an MIT-style
|
103
|
+
license that can be found in the LICENSE file or at
|
104
|
+
https://opensource.org/licenses/MIT.
|
105
|
+
*/
|
106
|
+
/**
|
107
|
+
* A helper function that prevents a promise from being flagged as unused.
|
108
|
+
*
|
109
|
+
* @private
|
110
|
+
**/
|
111
|
+
|
112
|
+
function dontWaitFor(promise) {
|
113
|
+
// Effective no-op.
|
114
|
+
promise.then(function () {});
|
115
|
+
}
|
116
|
+
|
103
117
|
/*
|
104
118
|
Copyright 2019 Google LLC
|
105
119
|
Use of this source code is governed by an MIT-style
|
@@ -107,6 +121,12 @@
|
|
107
121
|
https://opensource.org/licenses/MIT.
|
108
122
|
*/
|
109
123
|
var logger = function () {
|
124
|
+
// Don't overwrite this value if it's already set.
|
125
|
+
// See https://github.com/GoogleChrome/workbox/pull/2284#issuecomment-560470923
|
126
|
+
if (!('__WB_DISABLE_DEV_LOGS' in self)) {
|
127
|
+
self.__WB_DISABLE_DEV_LOGS = false;
|
128
|
+
}
|
129
|
+
|
110
130
|
var inGroup = false;
|
111
131
|
var methodToColorMap = {
|
112
132
|
debug: "#7f8c8d",
|
@@ -120,6 +140,10 @@
|
|
120
140
|
var print = function print(method, args) {
|
121
141
|
var _console2;
|
122
142
|
|
143
|
+
if (self.__WB_DISABLE_DEV_LOGS) {
|
144
|
+
return;
|
145
|
+
}
|
146
|
+
|
123
147
|
if (method === 'groupCollapsed') {
|
124
148
|
// Safari doesn't print all console.groupCollapsed() arguments:
|
125
149
|
// https://bugs.webkit.org/show_bug.cgi?id=182754
|
@@ -151,7 +175,7 @@
|
|
151
175
|
var loggerMethods = Object.keys(methodToColorMap);
|
152
176
|
|
153
177
|
var _loop = function _loop() {
|
154
|
-
var key =
|
178
|
+
var key = _loggerMethods[_i];
|
155
179
|
var method = key;
|
156
180
|
|
157
181
|
api[method] = function () {
|
@@ -163,7 +187,7 @@
|
|
163
187
|
};
|
164
188
|
};
|
165
189
|
|
166
|
-
for (var _i = 0; _i <
|
190
|
+
for (var _i = 0, _loggerMethods = loggerMethods; _i < _loggerMethods.length; _i++) {
|
167
191
|
_loop();
|
168
192
|
}
|
169
193
|
|
@@ -177,18 +201,18 @@
|
|
177
201
|
license that can be found in the LICENSE file or at
|
178
202
|
https://opensource.org/licenses/MIT.
|
179
203
|
*/
|
204
|
+
|
180
205
|
/**
|
181
206
|
* A minimal `EventTarget` shim.
|
182
207
|
* This is necessary because not all browsers support constructable
|
183
208
|
* `EventTarget`, so using a real `EventTarget` will error.
|
184
209
|
* @private
|
185
210
|
*/
|
186
|
-
|
187
211
|
var WorkboxEventTarget =
|
188
212
|
/*#__PURE__*/
|
189
213
|
function () {
|
190
214
|
function WorkboxEventTarget() {
|
191
|
-
this._eventListenerRegistry =
|
215
|
+
this._eventListenerRegistry = new Map();
|
192
216
|
}
|
193
217
|
/**
|
194
218
|
* @param {string} type
|
@@ -200,23 +224,25 @@
|
|
200
224
|
var _proto = WorkboxEventTarget.prototype;
|
201
225
|
|
202
226
|
_proto.addEventListener = function addEventListener(type, listener) {
|
203
|
-
this._getEventListenersByType(type)
|
204
|
-
|
227
|
+
var foo = this._getEventListenersByType(type);
|
228
|
+
|
229
|
+
foo.add(listener);
|
230
|
+
}
|
205
231
|
/**
|
206
232
|
* @param {string} type
|
207
233
|
* @param {Function} listener
|
208
234
|
* @private
|
209
235
|
*/
|
210
|
-
|
236
|
+
;
|
211
237
|
|
212
238
|
_proto.removeEventListener = function removeEventListener(type, listener) {
|
213
239
|
this._getEventListenersByType(type).delete(listener);
|
214
|
-
}
|
240
|
+
}
|
215
241
|
/**
|
216
242
|
* @param {Object} event
|
217
243
|
* @private
|
218
244
|
*/
|
219
|
-
|
245
|
+
;
|
220
246
|
|
221
247
|
_proto.dispatchEvent = function dispatchEvent(event) {
|
222
248
|
event.target = this;
|
@@ -238,7 +264,7 @@
|
|
238
264
|
var listener = _ref;
|
239
265
|
listener(event);
|
240
266
|
}
|
241
|
-
}
|
267
|
+
}
|
242
268
|
/**
|
243
269
|
* Returns a Set of listeners associated with the passed event type.
|
244
270
|
* If no handlers have been registered, an empty Set is returned.
|
@@ -247,10 +273,14 @@
|
|
247
273
|
* @return {Set<ListenerCallback>} An array of handler functions.
|
248
274
|
* @private
|
249
275
|
*/
|
250
|
-
|
276
|
+
;
|
251
277
|
|
252
278
|
_proto._getEventListenersByType = function _getEventListenersByType(type) {
|
253
|
-
|
279
|
+
if (!this._eventListenerRegistry.has(type)) {
|
280
|
+
this._eventListenerRegistry.set(type, new Set());
|
281
|
+
}
|
282
|
+
|
283
|
+
return this._eventListenerRegistry.get(type);
|
254
284
|
};
|
255
285
|
|
256
286
|
return WorkboxEventTarget;
|
@@ -298,20 +328,24 @@
|
|
298
328
|
Object.assign(this, props);
|
299
329
|
};
|
300
330
|
|
301
|
-
|
302
|
-
|
303
|
-
|
304
|
-
|
305
|
-
|
331
|
+
// `skipWaiting()` wasn't called. This 200 amount wasn't scientifically
|
332
|
+
// chosen, but it seems to avoid false positives in my testing.
|
333
|
+
|
334
|
+
function _await(value, then, direct) {
|
335
|
+
if (direct) {
|
336
|
+
return then ? then(value) : value;
|
306
337
|
}
|
307
338
|
|
308
|
-
if (
|
309
|
-
|
339
|
+
if (!value || !value.then) {
|
340
|
+
value = Promise.resolve(value);
|
310
341
|
}
|
311
342
|
|
312
|
-
return
|
343
|
+
return then ? value.then(then) : value;
|
313
344
|
}
|
314
345
|
|
346
|
+
var WAITING_TIMEOUT_DURATION = 200; // The amount of time after a registration that we can reasonably conclude
|
347
|
+
// that the registration didn't trigger an update.
|
348
|
+
|
315
349
|
function _async(f) {
|
316
350
|
return function () {
|
317
351
|
for (var args = [], i = 0; i < arguments.length; i++) {
|
@@ -326,41 +360,6 @@
|
|
326
360
|
};
|
327
361
|
}
|
328
362
|
|
329
|
-
function _invoke(body, then) {
|
330
|
-
var result = body();
|
331
|
-
|
332
|
-
if (result && result.then) {
|
333
|
-
return result.then(then);
|
334
|
-
}
|
335
|
-
|
336
|
-
return then(result);
|
337
|
-
}
|
338
|
-
|
339
|
-
function _await(value, then, direct) {
|
340
|
-
if (direct) {
|
341
|
-
return then ? then(value) : value;
|
342
|
-
}
|
343
|
-
|
344
|
-
if (!value || !value.then) {
|
345
|
-
value = Promise.resolve(value);
|
346
|
-
}
|
347
|
-
|
348
|
-
return then ? value.then(then) : value;
|
349
|
-
}
|
350
|
-
|
351
|
-
function _awaitIgnored(value, direct) {
|
352
|
-
if (!direct) {
|
353
|
-
return value && value.then ? value.then(_empty) : Promise.resolve();
|
354
|
-
}
|
355
|
-
}
|
356
|
-
|
357
|
-
function _empty() {}
|
358
|
-
// `skipWaiting()` wasn't called. This 200 amount wasn't scientifically
|
359
|
-
// chosen, but it seems to avoid false positives in my testing.
|
360
|
-
|
361
|
-
var WAITING_TIMEOUT_DURATION = 200; // The amount of time after a registration that we can reasonably conclude
|
362
|
-
// that the registration didn't trigger an update.
|
363
|
-
|
364
363
|
var REGISTRATION_TIMEOUT_DURATION = 60000;
|
365
364
|
/**
|
366
365
|
* A class to aid in handling service worker registration, updates, and
|
@@ -375,10 +374,11 @@
|
|
375
374
|
* @fires [externalinstalled]{@link module:workbox-window.Workbox#externalinstalled}
|
376
375
|
* @fires [externalwaiting]{@link module:workbox-window.Workbox#externalwaiting}
|
377
376
|
* @fires [externalactivated]{@link module:workbox-window.Workbox#externalactivated}
|
378
|
-
*
|
379
377
|
* @memberof module:workbox-window
|
380
378
|
*/
|
381
379
|
|
380
|
+
function _empty() {}
|
381
|
+
|
382
382
|
var Workbox =
|
383
383
|
/*#__PURE__*/
|
384
384
|
function (_WorkboxEventTarget) {
|
@@ -410,6 +410,7 @@
|
|
410
410
|
_this._activeDeferred = new Deferred();
|
411
411
|
_this._controllingDeferred = new Deferred();
|
412
412
|
_this._registrationTime = 0;
|
413
|
+
_this._ownSWs = new Set();
|
413
414
|
/**
|
414
415
|
* @private
|
415
416
|
*/
|
@@ -452,6 +453,8 @@
|
|
452
453
|
// SW is the one we registered, so we set it.
|
453
454
|
_this._sw = installingSW;
|
454
455
|
|
456
|
+
_this._ownSWs.add(installingSW);
|
457
|
+
|
455
458
|
_this._swDeferred.resolve(installingSW); // The `installing` state isn't something we have a dedicated
|
456
459
|
// callback for, but we do log messages for it in development.
|
457
460
|
|
@@ -591,17 +594,32 @@
|
|
591
594
|
*/
|
592
595
|
|
593
596
|
|
594
|
-
_this._onMessage = function (originalEvent) {
|
595
|
-
var data = originalEvent.data
|
596
|
-
|
597
|
-
|
598
|
-
data: data,
|
599
|
-
originalEvent: originalEvent
|
600
|
-
}));
|
601
|
-
};
|
597
|
+
_this._onMessage = _async(function (originalEvent) {
|
598
|
+
var data = originalEvent.data,
|
599
|
+
source = originalEvent.source; // Wait until there's an "own" service worker. This is used to buffer
|
600
|
+
// `message` events that may be received prior to calling `register()`.
|
602
601
|
|
602
|
+
return _await(_this.getSW(), function () {
|
603
|
+
if (_this._ownSWs.has(source)) {
|
604
|
+
_this.dispatchEvent(new WorkboxEvent('message', {
|
605
|
+
data: data,
|
606
|
+
sw: source,
|
607
|
+
originalEvent: originalEvent
|
608
|
+
}));
|
609
|
+
}
|
610
|
+
}); // If the service worker that sent the message is in the list of own
|
611
|
+
// service workers for this instance, dispatch a `message` event.
|
612
|
+
// NOTE: we check for all previously owned service workers rather than
|
613
|
+
// just the current one because some messages (e.g. cache updates) use
|
614
|
+
// a timeout when sent and may be delayed long enough for a service worker
|
615
|
+
// update to be found.
|
616
|
+
});
|
603
617
|
_this._scriptURL = scriptURL;
|
604
|
-
_this._registerOptions = registerOptions;
|
618
|
+
_this._registerOptions = registerOptions; // Add a message listener immediately since messages received during
|
619
|
+
// page load are buffered only until the DOMContentLoaded event:
|
620
|
+
// https://github.com/GoogleChrome/workbox/issues/2202
|
621
|
+
|
622
|
+
navigator.serviceWorker.addEventListener('message', _this._onMessage);
|
605
623
|
return _this;
|
606
624
|
}
|
607
625
|
/**
|
@@ -634,7 +652,7 @@
|
|
634
652
|
return _invoke(function () {
|
635
653
|
if (!immediate && document.readyState !== 'complete') {
|
636
654
|
return _awaitIgnored(new Promise(function (res) {
|
637
|
-
return addEventListener('load', res);
|
655
|
+
return window.addEventListener('load', res);
|
638
656
|
}));
|
639
657
|
}
|
640
658
|
}, function () {
|
@@ -657,14 +675,12 @@
|
|
657
675
|
|
658
676
|
_this2._controllingDeferred.resolve(_this2._compatibleControllingSW);
|
659
677
|
|
660
|
-
_this2._reportWindowReady(_this2._compatibleControllingSW);
|
661
|
-
|
662
678
|
_this2._compatibleControllingSW.addEventListener('statechange', _this2._onStateChange, {
|
663
679
|
once: true
|
664
680
|
});
|
665
681
|
} // If there's a waiting service worker with a matching URL before the
|
666
682
|
// `updatefound` event fires, it likely means that this site is open
|
667
|
-
// in another tab, or the user refreshed the page (and thus the
|
683
|
+
// in another tab, or the user refreshed the page (and thus the previous
|
668
684
|
// page wasn't fully unloaded before this page started loading).
|
669
685
|
// https://developers.google.com/web/fundamentals/primers/service-workers/lifecycle#waiting
|
670
686
|
|
@@ -677,7 +693,7 @@
|
|
677
693
|
_this2._sw = waitingSW; // Run this in the next microtask, so any code that adds an event
|
678
694
|
// listener after awaiting `register()` will get this event.
|
679
695
|
|
680
|
-
Promise.resolve().then(function () {
|
696
|
+
dontWaitFor(Promise.resolve().then(function () {
|
681
697
|
_this2.dispatchEvent(new WorkboxEvent('waiting', {
|
682
698
|
sw: waitingSW,
|
683
699
|
wasWaitingBeforeRegister: true
|
@@ -686,12 +702,14 @@
|
|
686
702
|
{
|
687
703
|
logger.warn('A service worker was already waiting to activate ' + 'before this script was registered...');
|
688
704
|
}
|
689
|
-
});
|
705
|
+
}));
|
690
706
|
} // If an "own" SW is already set, resolve the deferred.
|
691
707
|
|
692
708
|
|
693
709
|
if (_this2._sw) {
|
694
710
|
_this2._swDeferred.resolve(_this2._sw);
|
711
|
+
|
712
|
+
_this2._ownSWs.add(_this2._sw);
|
695
713
|
}
|
696
714
|
|
697
715
|
{
|
@@ -720,19 +738,29 @@
|
|
720
738
|
|
721
739
|
navigator.serviceWorker.addEventListener('controllerchange', _this2._onControllerChange, {
|
722
740
|
once: true
|
723
|
-
});
|
724
|
-
|
725
|
-
if ('BroadcastChannel' in self) {
|
726
|
-
_this2._broadcastChannel = new BroadcastChannel('workbox');
|
727
|
-
|
728
|
-
_this2._broadcastChannel.addEventListener('message', _this2._onMessage);
|
729
|
-
}
|
730
|
-
|
731
|
-
navigator.serviceWorker.addEventListener('message', _this2._onMessage);
|
741
|
+
});
|
732
742
|
return _this2._registration;
|
733
743
|
});
|
734
744
|
});
|
735
|
-
})
|
745
|
+
})
|
746
|
+
/**
|
747
|
+
* Checks for updates of the registered service worker.
|
748
|
+
*/
|
749
|
+
;
|
750
|
+
_proto.update = _async(function () {
|
751
|
+
var _this3 = this;
|
752
|
+
|
753
|
+
if (!_this3._registration) {
|
754
|
+
{
|
755
|
+
logger.error('Cannot update a Workbox instance without ' + 'being registered. Register the Workbox instance first.');
|
756
|
+
}
|
757
|
+
|
758
|
+
return;
|
759
|
+
} // Try to update registration
|
760
|
+
|
761
|
+
|
762
|
+
return _awaitIgnored(_this3._registration.update());
|
763
|
+
})
|
736
764
|
/**
|
737
765
|
* Resolves to the service worker registered by this instance as soon as it
|
738
766
|
* is active. If a service worker was already controlling at registration
|
@@ -742,6 +770,7 @@
|
|
742
770
|
*
|
743
771
|
* @return {Promise<ServiceWorker>}
|
744
772
|
*/
|
773
|
+
;
|
745
774
|
|
746
775
|
/**
|
747
776
|
* Resolves with a reference to a service worker that matches the script URL
|
@@ -759,12 +788,12 @@
|
|
759
788
|
* @return {Promise<ServiceWorker>}
|
760
789
|
*/
|
761
790
|
_proto.getSW = _async(function () {
|
762
|
-
var
|
791
|
+
var _this4 = this;
|
763
792
|
|
764
793
|
// If `this._sw` is set, resolve with that as we want `getSW()` to
|
765
794
|
// return the correct (new) service worker if an update is found.
|
766
|
-
return
|
767
|
-
})
|
795
|
+
return _this4._sw !== undefined ? _this4._sw : _this4._swDeferred.promise;
|
796
|
+
})
|
768
797
|
/**
|
769
798
|
* Sends the passed data object to the service worker registered by this
|
770
799
|
* instance (via [`getSW()`]{@link module:workbox-window.Workbox#getSW}) and resolves
|
@@ -778,21 +807,22 @@
|
|
778
807
|
* @param {Object} data An object to send to the service worker
|
779
808
|
* @return {Promise<Object>}
|
780
809
|
*/
|
781
|
-
|
810
|
+
;
|
782
811
|
_proto.messageSW = _async(function (data) {
|
783
|
-
var
|
812
|
+
var _this5 = this;
|
784
813
|
|
785
|
-
return _await(
|
814
|
+
return _await(_this5.getSW(), function (sw) {
|
786
815
|
return messageSW(sw, data);
|
787
816
|
});
|
788
|
-
})
|
817
|
+
})
|
789
818
|
/**
|
790
819
|
* Checks for a service worker already controlling the page and returns
|
791
|
-
* it if its script URL
|
820
|
+
* it if its script URL matches.
|
792
821
|
*
|
793
822
|
* @private
|
794
823
|
* @return {ServiceWorker|undefined}
|
795
824
|
*/
|
825
|
+
;
|
796
826
|
|
797
827
|
_proto._getControllingSWIfCompatible = function _getControllingSWIfCompatible() {
|
798
828
|
var controller = navigator.serviceWorker.controller;
|
@@ -802,24 +832,24 @@
|
|
802
832
|
} else {
|
803
833
|
return undefined;
|
804
834
|
}
|
805
|
-
}
|
835
|
+
}
|
806
836
|
/**
|
807
837
|
* Registers a service worker for this instances script URL and register
|
808
838
|
* options and tracks the time registration was complete.
|
809
839
|
*
|
810
840
|
* @private
|
811
841
|
*/
|
812
|
-
|
842
|
+
;
|
813
843
|
|
814
844
|
_proto._registerScript = _async(function () {
|
815
|
-
var
|
845
|
+
var _this6 = this;
|
816
846
|
|
817
847
|
return _catch(function () {
|
818
|
-
return _await(navigator.serviceWorker.register(
|
848
|
+
return _await(navigator.serviceWorker.register(_this6._scriptURL, _this6._registerOptions), function (reg) {
|
819
849
|
// Keep track of when registration happened, so it can be used in the
|
820
850
|
// `this._onUpdateFound` heuristic. Also use the presence of this
|
821
851
|
// property as a way to see if `.register()` has been called.
|
822
|
-
|
852
|
+
_this6._registrationTime = performance.now();
|
823
853
|
return reg;
|
824
854
|
});
|
825
855
|
}, function (error) {
|
@@ -831,19 +861,6 @@
|
|
831
861
|
throw error;
|
832
862
|
});
|
833
863
|
});
|
834
|
-
/**
|
835
|
-
* Sends a message to the passed service worker that the window is ready.
|
836
|
-
*
|
837
|
-
* @param {ServiceWorker} sw
|
838
|
-
* @private
|
839
|
-
*/
|
840
|
-
|
841
|
-
_proto._reportWindowReady = function _reportWindowReady(sw) {
|
842
|
-
messageSW(sw, {
|
843
|
-
type: 'WINDOW_READY',
|
844
|
-
meta: 'workbox-window'
|
845
|
-
});
|
846
|
-
};
|
847
864
|
|
848
865
|
_createClass(Workbox, [{
|
849
866
|
key: "active",
|
@@ -871,7 +888,194 @@
|
|
871
888
|
}]);
|
872
889
|
|
873
890
|
return Workbox;
|
874
|
-
}(WorkboxEventTarget);
|
891
|
+
}(WorkboxEventTarget);
|
892
|
+
|
893
|
+
function _awaitIgnored(value, direct) {
|
894
|
+
if (!direct) {
|
895
|
+
return value && value.then ? value.then(_empty) : Promise.resolve();
|
896
|
+
}
|
897
|
+
} // The jsdoc comments below outline the events this instance may dispatch:
|
898
|
+
// -----------------------------------------------------------------------
|
899
|
+
|
900
|
+
/**
|
901
|
+
* The `message` event is dispatched any time a `postMessage` is received.
|
902
|
+
*
|
903
|
+
* @event module:workbox-window.Workbox#message
|
904
|
+
* @type {WorkboxEvent}
|
905
|
+
* @property {*} data The `data` property from the original `message` event.
|
906
|
+
* @property {Event} originalEvent The original [`message`]{@link https://developer.mozilla.org/en-US/docs/Web/API/MessageEvent}
|
907
|
+
* event.
|
908
|
+
* @property {string} type `message`.
|
909
|
+
* @property {Workbox} target The `Workbox` instance.
|
910
|
+
*/
|
911
|
+
|
912
|
+
/**
|
913
|
+
* The `installed` event is dispatched if the state of a
|
914
|
+
* [`Workbox`]{@link module:workbox-window.Workbox} instance's
|
915
|
+
* [registered service worker]{@link https://developers.google.com/web/tools/workbox/modules/workbox-precaching#def-registered-sw}
|
916
|
+
* changes to `installed`.
|
917
|
+
*
|
918
|
+
* Then can happen either the very first time a service worker is installed,
|
919
|
+
* or after an update to the current service worker is found. In the case
|
920
|
+
* of an update being found, the event's `isUpdate` property will be `true`.
|
921
|
+
*
|
922
|
+
* @event module:workbox-window.Workbox#installed
|
923
|
+
* @type {WorkboxEvent}
|
924
|
+
* @property {ServiceWorker} sw The service worker instance.
|
925
|
+
* @property {Event} originalEvent The original [`statechange`]{@link https://developer.mozilla.org/en-US/docs/Web/API/ServiceWorker/onstatechange}
|
926
|
+
* event.
|
927
|
+
* @property {boolean|undefined} isUpdate True if a service worker was already
|
928
|
+
* controlling when this `Workbox` instance called `register()`.
|
929
|
+
* @property {string} type `installed`.
|
930
|
+
* @property {Workbox} target The `Workbox` instance.
|
931
|
+
*/
|
932
|
+
|
933
|
+
/**
|
934
|
+
* The `waiting` event is dispatched if the state of a
|
935
|
+
* [`Workbox`]{@link module:workbox-window.Workbox} instance's
|
936
|
+
* [registered service worker]{@link https://developers.google.com/web/tools/workbox/modules/workbox-precaching#def-registered-sw}
|
937
|
+
* changes to `installed` and then doesn't immediately change to `activating`.
|
938
|
+
* It may also be dispatched if a service worker with the same
|
939
|
+
* [`scriptURL`]{@link https://developer.mozilla.org/en-US/docs/Web/API/ServiceWorker/scriptURL}
|
940
|
+
* was already waiting when the [`register()`]{@link module:workbox-window.Workbox#register}
|
941
|
+
* method was called.
|
942
|
+
*
|
943
|
+
* @event module:workbox-window.Workbox#waiting
|
944
|
+
* @type {WorkboxEvent}
|
945
|
+
* @property {ServiceWorker} sw The service worker instance.
|
946
|
+
* @property {Event|undefined} originalEvent The original
|
947
|
+
* [`statechange`]{@link https://developer.mozilla.org/en-US/docs/Web/API/ServiceWorker/onstatechange}
|
948
|
+
* event, or `undefined` in the case where the service worker was waiting
|
949
|
+
* to before `.register()` was called.
|
950
|
+
* @property {boolean|undefined} isUpdate True if a service worker was already
|
951
|
+
* controlling when this `Workbox` instance called `register()`.
|
952
|
+
* @property {boolean|undefined} wasWaitingBeforeRegister True if a service worker with
|
953
|
+
* a matching `scriptURL` was already waiting when this `Workbox`
|
954
|
+
* instance called `register()`.
|
955
|
+
* @property {string} type `waiting`.
|
956
|
+
* @property {Workbox} target The `Workbox` instance.
|
957
|
+
*/
|
958
|
+
|
959
|
+
/**
|
960
|
+
* The `controlling` event is dispatched if a
|
961
|
+
* [`controllerchange`]{@link https://developer.mozilla.org/en-US/docs/Web/API/ServiceWorkerContainer/oncontrollerchange}
|
962
|
+
* fires on the service worker [container]{@link https://developer.mozilla.org/en-US/docs/Web/API/ServiceWorkerContainer}
|
963
|
+
* and the [`scriptURL`]{@link https://developer.mozilla.org/en-US/docs/Web/API/ServiceWorker/scriptURL}
|
964
|
+
* of the new [controller]{@link https://developer.mozilla.org/en-US/docs/Web/API/ServiceWorkerContainer/controller}
|
965
|
+
* matches the `scriptURL` of the `Workbox` instance's
|
966
|
+
* [registered service worker]{@link https://developers.google.com/web/tools/workbox/modules/workbox-precaching#def-registered-sw}.
|
967
|
+
*
|
968
|
+
* @event module:workbox-window.Workbox#controlling
|
969
|
+
* @type {WorkboxEvent}
|
970
|
+
* @property {ServiceWorker} sw The service worker instance.
|
971
|
+
* @property {Event} originalEvent The original [`controllerchange`]{@link https://developer.mozilla.org/en-US/docs/Web/API/ServiceWorkerContainer/oncontrollerchange}
|
972
|
+
* event.
|
973
|
+
* @property {boolean|undefined} isUpdate True if a service worker was already
|
974
|
+
* controlling when this service worker was registered.
|
975
|
+
* @property {string} type `controlling`.
|
976
|
+
* @property {Workbox} target The `Workbox` instance.
|
977
|
+
*/
|
978
|
+
|
979
|
+
/**
|
980
|
+
* The `activated` event is dispatched if the state of a
|
981
|
+
* [`Workbox`]{@link module:workbox-window.Workbox} instance's
|
982
|
+
* [registered service worker]{@link https://developers.google.com/web/tools/workbox/modules/workbox-precaching#def-registered-sw}
|
983
|
+
* changes to `activated`.
|
984
|
+
*
|
985
|
+
* @event module:workbox-window.Workbox#activated
|
986
|
+
* @type {WorkboxEvent}
|
987
|
+
* @property {ServiceWorker} sw The service worker instance.
|
988
|
+
* @property {Event} originalEvent The original [`statechange`]{@link https://developer.mozilla.org/en-US/docs/Web/API/ServiceWorker/onstatechange}
|
989
|
+
* event.
|
990
|
+
* @property {boolean|undefined} isUpdate True if a service worker was already
|
991
|
+
* controlling when this `Workbox` instance called `register()`.
|
992
|
+
* @property {string} type `activated`.
|
993
|
+
* @property {Workbox} target The `Workbox` instance.
|
994
|
+
*/
|
995
|
+
|
996
|
+
/**
|
997
|
+
* The `redundant` event is dispatched if the state of a
|
998
|
+
* [`Workbox`]{@link module:workbox-window.Workbox} instance's
|
999
|
+
* [registered service worker]{@link https://developers.google.com/web/tools/workbox/modules/workbox-precaching#def-registered-sw}
|
1000
|
+
* changes to `redundant`.
|
1001
|
+
*
|
1002
|
+
* @event module:workbox-window.Workbox#redundant
|
1003
|
+
* @type {WorkboxEvent}
|
1004
|
+
* @property {ServiceWorker} sw The service worker instance.
|
1005
|
+
* @property {Event} originalEvent The original [`statechange`]{@link https://developer.mozilla.org/en-US/docs/Web/API/ServiceWorker/onstatechange}
|
1006
|
+
* event.
|
1007
|
+
* @property {boolean|undefined} isUpdate True if a service worker was already
|
1008
|
+
* controlling when this `Workbox` instance called `register()`.
|
1009
|
+
* @property {string} type `redundant`.
|
1010
|
+
* @property {Workbox} target The `Workbox` instance.
|
1011
|
+
*/
|
1012
|
+
|
1013
|
+
/**
|
1014
|
+
* The `externalinstalled` event is dispatched if the state of an
|
1015
|
+
* [external service worker]{@link https://developers.google.com/web/tools/workbox/modules/workbox-window#when_an_unexpected_version_of_the_service_worker_is_found}
|
1016
|
+
* changes to `installed`.
|
1017
|
+
*
|
1018
|
+
* @event module:workbox-window.Workbox#externalinstalled
|
1019
|
+
* @type {WorkboxEvent}
|
1020
|
+
* @property {ServiceWorker} sw The service worker instance.
|
1021
|
+
* @property {Event} originalEvent The original [`statechange`]{@link https://developer.mozilla.org/en-US/docs/Web/API/ServiceWorker/onstatechange}
|
1022
|
+
* event.
|
1023
|
+
* @property {string} type `externalinstalled`.
|
1024
|
+
* @property {Workbox} target The `Workbox` instance.
|
1025
|
+
*/
|
1026
|
+
|
1027
|
+
/**
|
1028
|
+
* The `externalwaiting` event is dispatched if the state of an
|
1029
|
+
* [external service worker]{@link https://developers.google.com/web/tools/workbox/modules/workbox-window#when_an_unexpected_version_of_the_service_worker_is_found}
|
1030
|
+
* changes to `waiting`.
|
1031
|
+
*
|
1032
|
+
* @event module:workbox-window.Workbox#externalwaiting
|
1033
|
+
* @type {WorkboxEvent}
|
1034
|
+
* @property {ServiceWorker} sw The service worker instance.
|
1035
|
+
* @property {Event} originalEvent The original [`statechange`]{@link https://developer.mozilla.org/en-US/docs/Web/API/ServiceWorker/onstatechange}
|
1036
|
+
* event.
|
1037
|
+
* @property {string} type `externalwaiting`.
|
1038
|
+
* @property {Workbox} target The `Workbox` instance.
|
1039
|
+
*/
|
1040
|
+
|
1041
|
+
/**
|
1042
|
+
* The `externalactivated` event is dispatched if the state of an
|
1043
|
+
* [external service worker]{@link https://developers.google.com/web/tools/workbox/modules/workbox-window#when_an_unexpected_version_of_the_service_worker_is_found}
|
1044
|
+
* changes to `activated`.
|
1045
|
+
*
|
1046
|
+
* @event module:workbox-window.Workbox#externalactivated
|
1047
|
+
* @type {WorkboxEvent}
|
1048
|
+
* @property {ServiceWorker} sw The service worker instance.
|
1049
|
+
* @property {Event} originalEvent The original [`statechange`]{@link https://developer.mozilla.org/en-US/docs/Web/API/ServiceWorker/onstatechange}
|
1050
|
+
* event.
|
1051
|
+
* @property {string} type `externalactivated`.
|
1052
|
+
* @property {Workbox} target The `Workbox` instance.
|
1053
|
+
*/
|
1054
|
+
|
1055
|
+
|
1056
|
+
function _invoke(body, then) {
|
1057
|
+
var result = body();
|
1058
|
+
|
1059
|
+
if (result && result.then) {
|
1060
|
+
return result.then(then);
|
1061
|
+
}
|
1062
|
+
|
1063
|
+
return then(result);
|
1064
|
+
}
|
1065
|
+
|
1066
|
+
function _catch(body, recover) {
|
1067
|
+
try {
|
1068
|
+
var result = body();
|
1069
|
+
} catch (e) {
|
1070
|
+
return recover(e);
|
1071
|
+
}
|
1072
|
+
|
1073
|
+
if (result && result.then) {
|
1074
|
+
return result.then(void 0, recover);
|
1075
|
+
}
|
1076
|
+
|
1077
|
+
return result;
|
1078
|
+
}
|
875
1079
|
|
876
1080
|
exports.Workbox = Workbox;
|
877
1081
|
exports.messageSW = messageSW;
|