@bytescale/sdk 3.40.0 → 3.41.0
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.
- package/dist/browser/cjs/main.js +241 -100
- package/dist/browser/esm/main.mjs +241 -100
- package/dist/types/private/ServiceWorkerUtils.d.ts +7 -2
- package/dist/types/private/model/ServiceWorkerConfig.d.ts +3 -2
- package/dist/types/private/model/ServiceWorkerInitStatus.d.ts +0 -1
- package/package.json +1 -1
package/dist/browser/cjs/main.js
CHANGED
|
@@ -2572,31 +2572,7 @@ function ServiceWorkerUtils_await(value, then, direct) {
|
|
|
2572
2572
|
}
|
|
2573
2573
|
return then ? value.then(then) : value;
|
|
2574
2574
|
}
|
|
2575
|
-
function ServiceWorkerUtils_catch(body, recover) {
|
|
2576
|
-
try {
|
|
2577
|
-
var result = body();
|
|
2578
|
-
} catch (e) {
|
|
2579
|
-
return recover(e);
|
|
2580
|
-
}
|
|
2581
|
-
if (result && result.then) {
|
|
2582
|
-
return result.then(void 0, recover);
|
|
2583
|
-
}
|
|
2584
|
-
return result;
|
|
2585
|
-
}
|
|
2586
|
-
function ServiceWorkerUtils_invoke(body, then) {
|
|
2587
|
-
var result = body();
|
|
2588
|
-
if (result && result.then) {
|
|
2589
|
-
return result.then(then);
|
|
2590
|
-
}
|
|
2591
|
-
return then(result);
|
|
2592
|
-
}
|
|
2593
2575
|
function ServiceWorkerUtils_empty() {}
|
|
2594
|
-
function ServiceWorkerUtils_awaitIgnored(value, direct) {
|
|
2595
|
-
if (!direct) {
|
|
2596
|
-
return value && value.then ? value.then(ServiceWorkerUtils_empty) : Promise.resolve();
|
|
2597
|
-
}
|
|
2598
|
-
}
|
|
2599
|
-
var _iteratorSymbol = /*#__PURE__*/typeof Symbol !== "undefined" ? Symbol.iterator || (Symbol.iterator = Symbol("Symbol.iterator")) : "@@iterator";
|
|
2600
2576
|
function ServiceWorkerUtils_settle(pact, state, value) {
|
|
2601
2577
|
if (!pact.s) {
|
|
2602
2578
|
if (value instanceof ServiceWorkerUtils_Pact) {
|
|
@@ -2658,6 +2634,137 @@ var ServiceWorkerUtils_Pact = /*#__PURE__*/function () {
|
|
|
2658
2634
|
};
|
|
2659
2635
|
return _Pact;
|
|
2660
2636
|
}();
|
|
2637
|
+
function _switch(discriminant, cases) {
|
|
2638
|
+
var dispatchIndex = -1;
|
|
2639
|
+
var awaitBody;
|
|
2640
|
+
outer: {
|
|
2641
|
+
for (var i = 0; i < cases.length; i++) {
|
|
2642
|
+
var test = cases[i][0];
|
|
2643
|
+
if (test) {
|
|
2644
|
+
var testValue = test();
|
|
2645
|
+
if (testValue && testValue.then) {
|
|
2646
|
+
break outer;
|
|
2647
|
+
}
|
|
2648
|
+
if (testValue === discriminant) {
|
|
2649
|
+
dispatchIndex = i;
|
|
2650
|
+
break;
|
|
2651
|
+
}
|
|
2652
|
+
} else {
|
|
2653
|
+
// Found the default case, set it as the pending dispatch case
|
|
2654
|
+
dispatchIndex = i;
|
|
2655
|
+
}
|
|
2656
|
+
}
|
|
2657
|
+
if (dispatchIndex !== -1) {
|
|
2658
|
+
do {
|
|
2659
|
+
var body = cases[dispatchIndex][1];
|
|
2660
|
+
while (!body) {
|
|
2661
|
+
dispatchIndex++;
|
|
2662
|
+
body = cases[dispatchIndex][1];
|
|
2663
|
+
}
|
|
2664
|
+
var result = body();
|
|
2665
|
+
if (result && result.then) {
|
|
2666
|
+
awaitBody = true;
|
|
2667
|
+
break outer;
|
|
2668
|
+
}
|
|
2669
|
+
var fallthroughCheck = cases[dispatchIndex][2];
|
|
2670
|
+
dispatchIndex++;
|
|
2671
|
+
} while (fallthroughCheck && !fallthroughCheck());
|
|
2672
|
+
return result;
|
|
2673
|
+
}
|
|
2674
|
+
}
|
|
2675
|
+
var pact = new ServiceWorkerUtils_Pact();
|
|
2676
|
+
var reject = ServiceWorkerUtils_settle.bind(null, pact, 2);
|
|
2677
|
+
(awaitBody ? result.then(_resumeAfterBody) : testValue.then(_resumeAfterTest)).then(void 0, reject);
|
|
2678
|
+
return pact;
|
|
2679
|
+
function _resumeAfterTest(value) {
|
|
2680
|
+
for (;;) {
|
|
2681
|
+
if (value === discriminant) {
|
|
2682
|
+
dispatchIndex = i;
|
|
2683
|
+
break;
|
|
2684
|
+
}
|
|
2685
|
+
if (++i === cases.length) {
|
|
2686
|
+
if (dispatchIndex !== -1) {
|
|
2687
|
+
break;
|
|
2688
|
+
} else {
|
|
2689
|
+
ServiceWorkerUtils_settle(pact, 1, result);
|
|
2690
|
+
return;
|
|
2691
|
+
}
|
|
2692
|
+
}
|
|
2693
|
+
test = cases[i][0];
|
|
2694
|
+
if (test) {
|
|
2695
|
+
value = test();
|
|
2696
|
+
if (value && value.then) {
|
|
2697
|
+
value.then(_resumeAfterTest).then(void 0, reject);
|
|
2698
|
+
return;
|
|
2699
|
+
}
|
|
2700
|
+
} else {
|
|
2701
|
+
dispatchIndex = i;
|
|
2702
|
+
}
|
|
2703
|
+
}
|
|
2704
|
+
do {
|
|
2705
|
+
var body = cases[dispatchIndex][1];
|
|
2706
|
+
while (!body) {
|
|
2707
|
+
dispatchIndex++;
|
|
2708
|
+
body = cases[dispatchIndex][1];
|
|
2709
|
+
}
|
|
2710
|
+
var result = body();
|
|
2711
|
+
if (result && result.then) {
|
|
2712
|
+
result.then(_resumeAfterBody).then(void 0, reject);
|
|
2713
|
+
return;
|
|
2714
|
+
}
|
|
2715
|
+
var fallthroughCheck = cases[dispatchIndex][2];
|
|
2716
|
+
dispatchIndex++;
|
|
2717
|
+
} while (fallthroughCheck && !fallthroughCheck());
|
|
2718
|
+
ServiceWorkerUtils_settle(pact, 1, result);
|
|
2719
|
+
}
|
|
2720
|
+
function _resumeAfterBody(result) {
|
|
2721
|
+
for (;;) {
|
|
2722
|
+
var fallthroughCheck = cases[dispatchIndex][2];
|
|
2723
|
+
if (!fallthroughCheck || fallthroughCheck()) {
|
|
2724
|
+
break;
|
|
2725
|
+
}
|
|
2726
|
+
dispatchIndex++;
|
|
2727
|
+
var body = cases[dispatchIndex][1];
|
|
2728
|
+
while (!body) {
|
|
2729
|
+
dispatchIndex++;
|
|
2730
|
+
body = cases[dispatchIndex][1];
|
|
2731
|
+
}
|
|
2732
|
+
result = body();
|
|
2733
|
+
if (result && result.then) {
|
|
2734
|
+
result.then(_resumeAfterBody).then(void 0, reject);
|
|
2735
|
+
return;
|
|
2736
|
+
}
|
|
2737
|
+
}
|
|
2738
|
+
ServiceWorkerUtils_settle(pact, 1, result);
|
|
2739
|
+
}
|
|
2740
|
+
}
|
|
2741
|
+
function ServiceWorkerUtils_continue(value, then) {
|
|
2742
|
+
return value && value.then ? value.then(then) : then(value);
|
|
2743
|
+
}
|
|
2744
|
+
function ServiceWorkerUtils_catch(body, recover) {
|
|
2745
|
+
try {
|
|
2746
|
+
var result = body();
|
|
2747
|
+
} catch (e) {
|
|
2748
|
+
return recover(e);
|
|
2749
|
+
}
|
|
2750
|
+
if (result && result.then) {
|
|
2751
|
+
return result.then(void 0, recover);
|
|
2752
|
+
}
|
|
2753
|
+
return result;
|
|
2754
|
+
}
|
|
2755
|
+
function ServiceWorkerUtils_invoke(body, then) {
|
|
2756
|
+
var result = body();
|
|
2757
|
+
if (result && result.then) {
|
|
2758
|
+
return result.then(then);
|
|
2759
|
+
}
|
|
2760
|
+
return then(result);
|
|
2761
|
+
}
|
|
2762
|
+
function ServiceWorkerUtils_awaitIgnored(value, direct) {
|
|
2763
|
+
if (!direct) {
|
|
2764
|
+
return value && value.then ? value.then(ServiceWorkerUtils_empty) : Promise.resolve();
|
|
2765
|
+
}
|
|
2766
|
+
}
|
|
2767
|
+
var _iteratorSymbol = /*#__PURE__*/typeof Symbol !== "undefined" ? Symbol.iterator || (Symbol.iterator = Symbol("Symbol.iterator")) : "@@iterator";
|
|
2661
2768
|
function ServiceWorkerUtils_isSettledPact(thenable) {
|
|
2662
2769
|
return thenable instanceof ServiceWorkerUtils_Pact && thenable.s & 1;
|
|
2663
2770
|
}
|
|
@@ -2750,8 +2857,10 @@ function _forOf(target, body, check) {
|
|
|
2750
2857
|
return body(values[i]);
|
|
2751
2858
|
}, check);
|
|
2752
2859
|
}
|
|
2753
|
-
function
|
|
2754
|
-
|
|
2860
|
+
function ServiceWorkerUtils_continueIgnored(value) {
|
|
2861
|
+
if (value && value.then) {
|
|
2862
|
+
return value.then(ServiceWorkerUtils_empty);
|
|
2863
|
+
}
|
|
2755
2864
|
}
|
|
2756
2865
|
function ServiceWorkerUtils_typeof(o) { "@babel/helpers - typeof"; return ServiceWorkerUtils_typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, ServiceWorkerUtils_typeof(o); }
|
|
2757
2866
|
function ServiceWorkerUtils_classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
|
|
@@ -2760,6 +2869,7 @@ function ServiceWorkerUtils_createClass(Constructor, protoProps, staticProps) {
|
|
|
2760
2869
|
function ServiceWorkerUtils_toPropertyKey(t) { var i = ServiceWorkerUtils_toPrimitive(t, "string"); return "symbol" == ServiceWorkerUtils_typeof(i) ? i : i + ""; }
|
|
2761
2870
|
function ServiceWorkerUtils_toPrimitive(t, r) { if ("object" != ServiceWorkerUtils_typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != ServiceWorkerUtils_typeof(i)) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
|
|
2762
2871
|
|
|
2872
|
+
|
|
2763
2873
|
var ServiceWorkerUtils = /*#__PURE__*/function () {
|
|
2764
2874
|
function ServiceWorkerUtils() {
|
|
2765
2875
|
ServiceWorkerUtils_classCallCheck(this, ServiceWorkerUtils);
|
|
@@ -2774,10 +2884,13 @@ var ServiceWorkerUtils = /*#__PURE__*/function () {
|
|
|
2774
2884
|
value: function sendMessage(message, config, serviceWorkerScriptFieldName) {
|
|
2775
2885
|
try {
|
|
2776
2886
|
var _this = this;
|
|
2777
|
-
return ServiceWorkerUtils_await(
|
|
2778
|
-
|
|
2779
|
-
|
|
2780
|
-
|
|
2887
|
+
return ServiceWorkerUtils_await(_this.ensureActiveServiceWorkerExists(message, config, serviceWorkerScriptFieldName), function (result) {
|
|
2888
|
+
// Message delivery is at least once. We must always assume this as there is only 1 service worker instance and
|
|
2889
|
+
// potentially multiple browser tabs with AuthManager sessions running. As such, even if we ensure exactly-once
|
|
2890
|
+
// delivery within a single tab, there will still be at-least-once delivery across all. As such, we simplfy our
|
|
2891
|
+
// code by using at-least-once delivery here too (hence the following 'postMessage' will already have been called
|
|
2892
|
+
// in the scenario where a new worker is newly installed).
|
|
2893
|
+
result.serviceWorker.postMessage(message);
|
|
2781
2894
|
return result.config;
|
|
2782
2895
|
});
|
|
2783
2896
|
} catch (e) {
|
|
@@ -2785,34 +2898,41 @@ var ServiceWorkerUtils = /*#__PURE__*/function () {
|
|
|
2785
2898
|
}
|
|
2786
2899
|
}
|
|
2787
2900
|
}, {
|
|
2788
|
-
key: "
|
|
2789
|
-
value: function
|
|
2901
|
+
key: "ensureActiveServiceWorkerExists",
|
|
2902
|
+
value: function ensureActiveServiceWorkerExists(initMessage, config, serviceWorkerScriptFieldName) {
|
|
2790
2903
|
try {
|
|
2904
|
+
var _exit = false,
|
|
2905
|
+
_interrupt = false;
|
|
2791
2906
|
var _this2 = this;
|
|
2792
|
-
|
|
2793
|
-
|
|
2794
|
-
}
|
|
2795
|
-
|
|
2796
|
-
|
|
2797
|
-
|
|
2798
|
-
|
|
2799
|
-
|
|
2800
|
-
|
|
2801
|
-
|
|
2802
|
-
|
|
2803
|
-
|
|
2804
|
-
|
|
2805
|
-
|
|
2806
|
-
|
|
2807
|
-
|
|
2808
|
-
|
|
2809
|
-
|
|
2810
|
-
|
|
2811
|
-
|
|
2812
|
-
|
|
2813
|
-
|
|
2814
|
-
|
|
2815
|
-
|
|
2907
|
+
return ServiceWorkerUtils_await(ServiceWorkerUtils_continue(_switch(config.type, [[function () {
|
|
2908
|
+
return "Uninitialized";
|
|
2909
|
+
}, function () {
|
|
2910
|
+
{
|
|
2911
|
+
return ServiceWorkerUtils_await(_this2.unregisterOnHardReload(), function () {
|
|
2912
|
+
_interrupt = true;
|
|
2913
|
+
});
|
|
2914
|
+
}
|
|
2915
|
+
}], [function () {
|
|
2916
|
+
return "Initialized";
|
|
2917
|
+
}, function () {
|
|
2918
|
+
{
|
|
2919
|
+
return ServiceWorkerUtils_await(_this2.getActiveServiceWorker(config.serviceWorkerScope), function (serviceWorker) {
|
|
2920
|
+
if (serviceWorker !== undefined) {
|
|
2921
|
+
var _serviceWorker$config = {
|
|
2922
|
+
serviceWorker: serviceWorker,
|
|
2923
|
+
config: config
|
|
2924
|
+
};
|
|
2925
|
+
_exit = true;
|
|
2926
|
+
return _serviceWorker$config;
|
|
2927
|
+
}
|
|
2928
|
+
_interrupt = true;
|
|
2929
|
+
});
|
|
2930
|
+
}
|
|
2931
|
+
}], [void 0, function () {
|
|
2932
|
+
assertUnreachable(config);
|
|
2933
|
+
}, ServiceWorkerUtils_empty]]), function (_result) {
|
|
2934
|
+
return _exit ? _result : ServiceWorkerUtils_await(_this2.registerServiceWorker(config.serviceWorkerScript, initMessage, serviceWorkerScriptFieldName));
|
|
2935
|
+
}));
|
|
2816
2936
|
} catch (e) {
|
|
2817
2937
|
return Promise.reject(e);
|
|
2818
2938
|
}
|
|
@@ -2826,20 +2946,25 @@ var ServiceWorkerUtils = /*#__PURE__*/function () {
|
|
|
2826
2946
|
*/
|
|
2827
2947
|
}, {
|
|
2828
2948
|
key: "registerServiceWorker",
|
|
2829
|
-
value: function registerServiceWorker(serviceWorkerScript,
|
|
2949
|
+
value: function registerServiceWorker(serviceWorkerScript, initMessage, serviceWorkerScriptFieldName) {
|
|
2830
2950
|
try {
|
|
2831
|
-
var
|
|
2951
|
+
var _this3 = this;
|
|
2952
|
+
if (!serviceWorkerScript.startsWith("/")) {
|
|
2953
|
+
throw new Error("The '".concat(serviceWorkerScriptFieldName, "' field must start with a '/' and reference a script at the root of your website."));
|
|
2954
|
+
}
|
|
2955
|
+
var forwardSlashCount = serviceWorkerScript.split("/").length - 1;
|
|
2956
|
+
if (forwardSlashCount > 1) {
|
|
2957
|
+
ConsoleUtils.warn("The '".concat(serviceWorkerScriptFieldName, "' field should be a root script (e.g. '/script.js'). The Bytescale SDK can only authorize requests originating from webpages that are at the same level as the script or below."));
|
|
2958
|
+
}
|
|
2832
2959
|
return ServiceWorkerUtils_await(ServiceWorkerUtils_catch(function () {
|
|
2833
2960
|
return ServiceWorkerUtils_await(navigator.serviceWorker.register(serviceWorkerScript), function (registration) {
|
|
2834
|
-
return ServiceWorkerUtils_await(
|
|
2835
|
-
var serviceWorker = _ref.serviceWorker,
|
|
2836
|
-
messageSent = _ref.messageSent;
|
|
2961
|
+
return ServiceWorkerUtils_await(_this3.waitForActiveServiceWorker(registration, initMessage), function (_this3$waitForActiveS) {
|
|
2837
2962
|
return {
|
|
2838
|
-
serviceWorker:
|
|
2839
|
-
messageSent: messageSent,
|
|
2963
|
+
serviceWorker: _this3$waitForActiveS,
|
|
2840
2964
|
config: {
|
|
2841
2965
|
serviceWorkerScript: serviceWorkerScript,
|
|
2842
|
-
serviceWorkerScope: registration.scope
|
|
2966
|
+
serviceWorkerScope: registration.scope,
|
|
2967
|
+
type: "Initialized"
|
|
2843
2968
|
}
|
|
2844
2969
|
};
|
|
2845
2970
|
});
|
|
@@ -2853,9 +2978,9 @@ var ServiceWorkerUtils = /*#__PURE__*/function () {
|
|
|
2853
2978
|
}
|
|
2854
2979
|
}, {
|
|
2855
2980
|
key: "waitForActiveServiceWorker",
|
|
2856
|
-
value: function waitForActiveServiceWorker(registration,
|
|
2981
|
+
value: function waitForActiveServiceWorker(registration, initMessage) {
|
|
2857
2982
|
try {
|
|
2858
|
-
var
|
|
2983
|
+
var _exit2 = false;
|
|
2859
2984
|
// We must check the 'installing' state before the 'active' state (see comment below).
|
|
2860
2985
|
// The state will be 'installing' when the service worker is installed for the first time, or if there have been
|
|
2861
2986
|
// code changes to the service worker, else the state will be 'active'.
|
|
@@ -2867,31 +2992,29 @@ var ServiceWorkerUtils = /*#__PURE__*/function () {
|
|
|
2867
2992
|
var sw = e.target;
|
|
2868
2993
|
if (sw.state === "activated") {
|
|
2869
2994
|
installing.removeEventListener("statechange", stateChangeHandler);
|
|
2870
|
-
resolve(
|
|
2871
|
-
messageSent: true,
|
|
2872
|
-
serviceWorker: sw
|
|
2873
|
-
});
|
|
2995
|
+
resolve(sw);
|
|
2874
2996
|
}
|
|
2875
2997
|
};
|
|
2876
2998
|
installing.addEventListener("statechange", stateChangeHandler);
|
|
2877
2999
|
});
|
|
2878
|
-
|
|
3000
|
+
// We send the message during the INSTALL phase instead of ACTIVE phase to ensure that when replacing an
|
|
3001
|
+
// existing Service Worker instance, the new instance will be ready to run (with config received from this
|
|
3002
|
+
// 'postMessage' call) prior to it being activated, so that it can immediately start attaching auth headers to
|
|
3003
|
+
// intercepted 'fetch' requests.
|
|
3004
|
+
installing.postMessage(initMessage);
|
|
2879
3005
|
return ServiceWorkerUtils_await(waitForActive, function (_await$waitForActive) {
|
|
2880
|
-
|
|
3006
|
+
_exit2 = true;
|
|
2881
3007
|
return _await$waitForActive;
|
|
2882
3008
|
});
|
|
2883
3009
|
}
|
|
2884
|
-
}, function (
|
|
2885
|
-
if (
|
|
3010
|
+
}, function (_result2) {
|
|
3011
|
+
if (_exit2) return _result2;
|
|
2886
3012
|
// We must check the 'installing' state before the 'active' state, because if we've just installed a new service
|
|
2887
3013
|
// worker, then the new service worker will be in the 'installing' slot whereas the old service worker will be in
|
|
2888
3014
|
// the 'active' slot. So, if we checked this first, we would always return the old service worker, and therefore the
|
|
2889
3015
|
// new service worker would never be initialized.
|
|
2890
3016
|
if (registration.active !== null) {
|
|
2891
|
-
return
|
|
2892
|
-
serviceWorker: registration.active,
|
|
2893
|
-
messageSent: false
|
|
2894
|
-
};
|
|
3017
|
+
return registration.active;
|
|
2895
3018
|
}
|
|
2896
3019
|
// We expect the service worker to use 'skipWaiting', so we don't expect 'waiting' service workers.
|
|
2897
3020
|
throw new Error("Service worker was neither 'installing' or 'active'.");
|
|
@@ -2904,29 +3027,47 @@ var ServiceWorkerUtils = /*#__PURE__*/function () {
|
|
|
2904
3027
|
key: "getActiveServiceWorker",
|
|
2905
3028
|
value: function getActiveServiceWorker(serviceWorkerScope) {
|
|
2906
3029
|
try {
|
|
2907
|
-
|
|
2908
|
-
|
|
3030
|
+
var _this4 = this;
|
|
3031
|
+
var _a, _b;
|
|
3032
|
+
return ServiceWorkerUtils_await(_this4.getActiveRegistrations(), function (_this4$getActiveRegis) {
|
|
3033
|
+
var registrations = _this4$getActiveRegis.filter(function (x) {
|
|
3034
|
+
return x.scope === serviceWorkerScope;
|
|
3035
|
+
});
|
|
3036
|
+
return (_b = (_a = registrations[0]) === null || _a === void 0 ? void 0 : _a.active) !== null && _b !== void 0 ? _b : undefined;
|
|
3037
|
+
});
|
|
3038
|
+
} catch (e) {
|
|
3039
|
+
return Promise.reject(e);
|
|
3040
|
+
}
|
|
3041
|
+
}
|
|
3042
|
+
/**
|
|
3043
|
+
* Existing active Service Workers will not receive 'fetch' events in sessions that start with a hard reload, so
|
|
3044
|
+
* we must unregister them and register a new one. (See: https://github.com/mswjs/msw/issues/98#issuecomment-612118211)
|
|
3045
|
+
*/
|
|
3046
|
+
}, {
|
|
3047
|
+
key: "unregisterOnHardReload",
|
|
3048
|
+
value: function unregisterOnHardReload() {
|
|
3049
|
+
try {
|
|
3050
|
+
var _this5 = this;
|
|
2909
3051
|
var isHardReload = navigator.serviceWorker.controller === null;
|
|
3052
|
+
if (!isHardReload) {
|
|
3053
|
+
return ServiceWorkerUtils_await();
|
|
3054
|
+
}
|
|
3055
|
+
return ServiceWorkerUtils_await(_this5.getActiveRegistrations(), function (registrations) {
|
|
3056
|
+
return ServiceWorkerUtils_continueIgnored(_forOf(registrations, function (registration) {
|
|
3057
|
+
return ServiceWorkerUtils_awaitIgnored(registration.unregister());
|
|
3058
|
+
}));
|
|
3059
|
+
});
|
|
3060
|
+
} catch (e) {
|
|
3061
|
+
return Promise.reject(e);
|
|
3062
|
+
}
|
|
3063
|
+
}
|
|
3064
|
+
}, {
|
|
3065
|
+
key: "getActiveRegistrations",
|
|
3066
|
+
value: function getActiveRegistrations() {
|
|
3067
|
+
try {
|
|
2910
3068
|
return ServiceWorkerUtils_await(navigator.serviceWorker.getRegistrations(), function (registrations) {
|
|
2911
|
-
|
|
2912
|
-
|
|
2913
|
-
return function () {
|
|
2914
|
-
if (registration.active !== null && registration.scope === serviceWorkerScope) {
|
|
2915
|
-
return function () {
|
|
2916
|
-
if (isHardReload) {
|
|
2917
|
-
return ServiceWorkerUtils_awaitIgnored(registration.unregister());
|
|
2918
|
-
} else {
|
|
2919
|
-
var _registration$active = registration.active;
|
|
2920
|
-
_exit2 = true;
|
|
2921
|
-
return _registration$active;
|
|
2922
|
-
}
|
|
2923
|
-
}();
|
|
2924
|
-
}
|
|
2925
|
-
}();
|
|
2926
|
-
}, function () {
|
|
2927
|
-
return _exit2;
|
|
2928
|
-
}), function (_result4) {
|
|
2929
|
-
return _exit2 ? _result4 : undefined;
|
|
3069
|
+
return registrations.filter(function (registration) {
|
|
3070
|
+
return registration.active !== null;
|
|
2930
3071
|
});
|
|
2931
3072
|
});
|
|
2932
3073
|
} catch (e) {
|
|
@@ -3054,7 +3195,7 @@ var AuthManagerImpl = /*#__PURE__*/function () {
|
|
|
3054
3195
|
isActive: true,
|
|
3055
3196
|
authServiceWorker: params.serviceWorkerScript !== undefined && _this.serviceWorkerUtils.canUseServiceWorkers() ? {
|
|
3056
3197
|
serviceWorkerScript: params.serviceWorkerScript,
|
|
3057
|
-
|
|
3198
|
+
type: "Uninitialized"
|
|
3058
3199
|
} : undefined
|
|
3059
3200
|
};
|
|
3060
3201
|
AuthSessionState.setSession(newSession);
|
|
@@ -2557,31 +2557,7 @@ function ServiceWorkerUtils_await(value, then, direct) {
|
|
|
2557
2557
|
}
|
|
2558
2558
|
return then ? value.then(then) : value;
|
|
2559
2559
|
}
|
|
2560
|
-
function ServiceWorkerUtils_catch(body, recover) {
|
|
2561
|
-
try {
|
|
2562
|
-
var result = body();
|
|
2563
|
-
} catch (e) {
|
|
2564
|
-
return recover(e);
|
|
2565
|
-
}
|
|
2566
|
-
if (result && result.then) {
|
|
2567
|
-
return result.then(void 0, recover);
|
|
2568
|
-
}
|
|
2569
|
-
return result;
|
|
2570
|
-
}
|
|
2571
|
-
function ServiceWorkerUtils_invoke(body, then) {
|
|
2572
|
-
var result = body();
|
|
2573
|
-
if (result && result.then) {
|
|
2574
|
-
return result.then(then);
|
|
2575
|
-
}
|
|
2576
|
-
return then(result);
|
|
2577
|
-
}
|
|
2578
2560
|
function ServiceWorkerUtils_empty() {}
|
|
2579
|
-
function ServiceWorkerUtils_awaitIgnored(value, direct) {
|
|
2580
|
-
if (!direct) {
|
|
2581
|
-
return value && value.then ? value.then(ServiceWorkerUtils_empty) : Promise.resolve();
|
|
2582
|
-
}
|
|
2583
|
-
}
|
|
2584
|
-
var _iteratorSymbol = /*#__PURE__*/typeof Symbol !== "undefined" ? Symbol.iterator || (Symbol.iterator = Symbol("Symbol.iterator")) : "@@iterator";
|
|
2585
2561
|
function ServiceWorkerUtils_settle(pact, state, value) {
|
|
2586
2562
|
if (!pact.s) {
|
|
2587
2563
|
if (value instanceof ServiceWorkerUtils_Pact) {
|
|
@@ -2643,6 +2619,137 @@ var ServiceWorkerUtils_Pact = /*#__PURE__*/function () {
|
|
|
2643
2619
|
};
|
|
2644
2620
|
return _Pact;
|
|
2645
2621
|
}();
|
|
2622
|
+
function _switch(discriminant, cases) {
|
|
2623
|
+
var dispatchIndex = -1;
|
|
2624
|
+
var awaitBody;
|
|
2625
|
+
outer: {
|
|
2626
|
+
for (var i = 0; i < cases.length; i++) {
|
|
2627
|
+
var test = cases[i][0];
|
|
2628
|
+
if (test) {
|
|
2629
|
+
var testValue = test();
|
|
2630
|
+
if (testValue && testValue.then) {
|
|
2631
|
+
break outer;
|
|
2632
|
+
}
|
|
2633
|
+
if (testValue === discriminant) {
|
|
2634
|
+
dispatchIndex = i;
|
|
2635
|
+
break;
|
|
2636
|
+
}
|
|
2637
|
+
} else {
|
|
2638
|
+
// Found the default case, set it as the pending dispatch case
|
|
2639
|
+
dispatchIndex = i;
|
|
2640
|
+
}
|
|
2641
|
+
}
|
|
2642
|
+
if (dispatchIndex !== -1) {
|
|
2643
|
+
do {
|
|
2644
|
+
var body = cases[dispatchIndex][1];
|
|
2645
|
+
while (!body) {
|
|
2646
|
+
dispatchIndex++;
|
|
2647
|
+
body = cases[dispatchIndex][1];
|
|
2648
|
+
}
|
|
2649
|
+
var result = body();
|
|
2650
|
+
if (result && result.then) {
|
|
2651
|
+
awaitBody = true;
|
|
2652
|
+
break outer;
|
|
2653
|
+
}
|
|
2654
|
+
var fallthroughCheck = cases[dispatchIndex][2];
|
|
2655
|
+
dispatchIndex++;
|
|
2656
|
+
} while (fallthroughCheck && !fallthroughCheck());
|
|
2657
|
+
return result;
|
|
2658
|
+
}
|
|
2659
|
+
}
|
|
2660
|
+
var pact = new ServiceWorkerUtils_Pact();
|
|
2661
|
+
var reject = ServiceWorkerUtils_settle.bind(null, pact, 2);
|
|
2662
|
+
(awaitBody ? result.then(_resumeAfterBody) : testValue.then(_resumeAfterTest)).then(void 0, reject);
|
|
2663
|
+
return pact;
|
|
2664
|
+
function _resumeAfterTest(value) {
|
|
2665
|
+
for (;;) {
|
|
2666
|
+
if (value === discriminant) {
|
|
2667
|
+
dispatchIndex = i;
|
|
2668
|
+
break;
|
|
2669
|
+
}
|
|
2670
|
+
if (++i === cases.length) {
|
|
2671
|
+
if (dispatchIndex !== -1) {
|
|
2672
|
+
break;
|
|
2673
|
+
} else {
|
|
2674
|
+
ServiceWorkerUtils_settle(pact, 1, result);
|
|
2675
|
+
return;
|
|
2676
|
+
}
|
|
2677
|
+
}
|
|
2678
|
+
test = cases[i][0];
|
|
2679
|
+
if (test) {
|
|
2680
|
+
value = test();
|
|
2681
|
+
if (value && value.then) {
|
|
2682
|
+
value.then(_resumeAfterTest).then(void 0, reject);
|
|
2683
|
+
return;
|
|
2684
|
+
}
|
|
2685
|
+
} else {
|
|
2686
|
+
dispatchIndex = i;
|
|
2687
|
+
}
|
|
2688
|
+
}
|
|
2689
|
+
do {
|
|
2690
|
+
var body = cases[dispatchIndex][1];
|
|
2691
|
+
while (!body) {
|
|
2692
|
+
dispatchIndex++;
|
|
2693
|
+
body = cases[dispatchIndex][1];
|
|
2694
|
+
}
|
|
2695
|
+
var result = body();
|
|
2696
|
+
if (result && result.then) {
|
|
2697
|
+
result.then(_resumeAfterBody).then(void 0, reject);
|
|
2698
|
+
return;
|
|
2699
|
+
}
|
|
2700
|
+
var fallthroughCheck = cases[dispatchIndex][2];
|
|
2701
|
+
dispatchIndex++;
|
|
2702
|
+
} while (fallthroughCheck && !fallthroughCheck());
|
|
2703
|
+
ServiceWorkerUtils_settle(pact, 1, result);
|
|
2704
|
+
}
|
|
2705
|
+
function _resumeAfterBody(result) {
|
|
2706
|
+
for (;;) {
|
|
2707
|
+
var fallthroughCheck = cases[dispatchIndex][2];
|
|
2708
|
+
if (!fallthroughCheck || fallthroughCheck()) {
|
|
2709
|
+
break;
|
|
2710
|
+
}
|
|
2711
|
+
dispatchIndex++;
|
|
2712
|
+
var body = cases[dispatchIndex][1];
|
|
2713
|
+
while (!body) {
|
|
2714
|
+
dispatchIndex++;
|
|
2715
|
+
body = cases[dispatchIndex][1];
|
|
2716
|
+
}
|
|
2717
|
+
result = body();
|
|
2718
|
+
if (result && result.then) {
|
|
2719
|
+
result.then(_resumeAfterBody).then(void 0, reject);
|
|
2720
|
+
return;
|
|
2721
|
+
}
|
|
2722
|
+
}
|
|
2723
|
+
ServiceWorkerUtils_settle(pact, 1, result);
|
|
2724
|
+
}
|
|
2725
|
+
}
|
|
2726
|
+
function ServiceWorkerUtils_continue(value, then) {
|
|
2727
|
+
return value && value.then ? value.then(then) : then(value);
|
|
2728
|
+
}
|
|
2729
|
+
function ServiceWorkerUtils_catch(body, recover) {
|
|
2730
|
+
try {
|
|
2731
|
+
var result = body();
|
|
2732
|
+
} catch (e) {
|
|
2733
|
+
return recover(e);
|
|
2734
|
+
}
|
|
2735
|
+
if (result && result.then) {
|
|
2736
|
+
return result.then(void 0, recover);
|
|
2737
|
+
}
|
|
2738
|
+
return result;
|
|
2739
|
+
}
|
|
2740
|
+
function ServiceWorkerUtils_invoke(body, then) {
|
|
2741
|
+
var result = body();
|
|
2742
|
+
if (result && result.then) {
|
|
2743
|
+
return result.then(then);
|
|
2744
|
+
}
|
|
2745
|
+
return then(result);
|
|
2746
|
+
}
|
|
2747
|
+
function ServiceWorkerUtils_awaitIgnored(value, direct) {
|
|
2748
|
+
if (!direct) {
|
|
2749
|
+
return value && value.then ? value.then(ServiceWorkerUtils_empty) : Promise.resolve();
|
|
2750
|
+
}
|
|
2751
|
+
}
|
|
2752
|
+
var _iteratorSymbol = /*#__PURE__*/typeof Symbol !== "undefined" ? Symbol.iterator || (Symbol.iterator = Symbol("Symbol.iterator")) : "@@iterator";
|
|
2646
2753
|
function ServiceWorkerUtils_isSettledPact(thenable) {
|
|
2647
2754
|
return thenable instanceof ServiceWorkerUtils_Pact && thenable.s & 1;
|
|
2648
2755
|
}
|
|
@@ -2735,8 +2842,10 @@ function _forOf(target, body, check) {
|
|
|
2735
2842
|
return body(values[i]);
|
|
2736
2843
|
}, check);
|
|
2737
2844
|
}
|
|
2738
|
-
function
|
|
2739
|
-
|
|
2845
|
+
function ServiceWorkerUtils_continueIgnored(value) {
|
|
2846
|
+
if (value && value.then) {
|
|
2847
|
+
return value.then(ServiceWorkerUtils_empty);
|
|
2848
|
+
}
|
|
2740
2849
|
}
|
|
2741
2850
|
function ServiceWorkerUtils_typeof(o) { "@babel/helpers - typeof"; return ServiceWorkerUtils_typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, ServiceWorkerUtils_typeof(o); }
|
|
2742
2851
|
function ServiceWorkerUtils_classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
|
|
@@ -2745,6 +2854,7 @@ function ServiceWorkerUtils_createClass(Constructor, protoProps, staticProps) {
|
|
|
2745
2854
|
function ServiceWorkerUtils_toPropertyKey(t) { var i = ServiceWorkerUtils_toPrimitive(t, "string"); return "symbol" == ServiceWorkerUtils_typeof(i) ? i : i + ""; }
|
|
2746
2855
|
function ServiceWorkerUtils_toPrimitive(t, r) { if ("object" != ServiceWorkerUtils_typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != ServiceWorkerUtils_typeof(i)) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
|
|
2747
2856
|
|
|
2857
|
+
|
|
2748
2858
|
var ServiceWorkerUtils = /*#__PURE__*/function () {
|
|
2749
2859
|
function ServiceWorkerUtils() {
|
|
2750
2860
|
ServiceWorkerUtils_classCallCheck(this, ServiceWorkerUtils);
|
|
@@ -2759,10 +2869,13 @@ var ServiceWorkerUtils = /*#__PURE__*/function () {
|
|
|
2759
2869
|
value: function sendMessage(message, config, serviceWorkerScriptFieldName) {
|
|
2760
2870
|
try {
|
|
2761
2871
|
var _this = this;
|
|
2762
|
-
return ServiceWorkerUtils_await(
|
|
2763
|
-
|
|
2764
|
-
|
|
2765
|
-
|
|
2872
|
+
return ServiceWorkerUtils_await(_this.ensureActiveServiceWorkerExists(message, config, serviceWorkerScriptFieldName), function (result) {
|
|
2873
|
+
// Message delivery is at least once. We must always assume this as there is only 1 service worker instance and
|
|
2874
|
+
// potentially multiple browser tabs with AuthManager sessions running. As such, even if we ensure exactly-once
|
|
2875
|
+
// delivery within a single tab, there will still be at-least-once delivery across all. As such, we simplfy our
|
|
2876
|
+
// code by using at-least-once delivery here too (hence the following 'postMessage' will already have been called
|
|
2877
|
+
// in the scenario where a new worker is newly installed).
|
|
2878
|
+
result.serviceWorker.postMessage(message);
|
|
2766
2879
|
return result.config;
|
|
2767
2880
|
});
|
|
2768
2881
|
} catch (e) {
|
|
@@ -2770,34 +2883,41 @@ var ServiceWorkerUtils = /*#__PURE__*/function () {
|
|
|
2770
2883
|
}
|
|
2771
2884
|
}
|
|
2772
2885
|
}, {
|
|
2773
|
-
key: "
|
|
2774
|
-
value: function
|
|
2886
|
+
key: "ensureActiveServiceWorkerExists",
|
|
2887
|
+
value: function ensureActiveServiceWorkerExists(initMessage, config, serviceWorkerScriptFieldName) {
|
|
2775
2888
|
try {
|
|
2889
|
+
var _exit = false,
|
|
2890
|
+
_interrupt = false;
|
|
2776
2891
|
var _this2 = this;
|
|
2777
|
-
|
|
2778
|
-
|
|
2779
|
-
}
|
|
2780
|
-
|
|
2781
|
-
|
|
2782
|
-
|
|
2783
|
-
|
|
2784
|
-
|
|
2785
|
-
|
|
2786
|
-
|
|
2787
|
-
|
|
2788
|
-
|
|
2789
|
-
|
|
2790
|
-
|
|
2791
|
-
|
|
2792
|
-
|
|
2793
|
-
|
|
2794
|
-
|
|
2795
|
-
|
|
2796
|
-
|
|
2797
|
-
|
|
2798
|
-
|
|
2799
|
-
|
|
2800
|
-
|
|
2892
|
+
return ServiceWorkerUtils_await(ServiceWorkerUtils_continue(_switch(config.type, [[function () {
|
|
2893
|
+
return "Uninitialized";
|
|
2894
|
+
}, function () {
|
|
2895
|
+
{
|
|
2896
|
+
return ServiceWorkerUtils_await(_this2.unregisterOnHardReload(), function () {
|
|
2897
|
+
_interrupt = true;
|
|
2898
|
+
});
|
|
2899
|
+
}
|
|
2900
|
+
}], [function () {
|
|
2901
|
+
return "Initialized";
|
|
2902
|
+
}, function () {
|
|
2903
|
+
{
|
|
2904
|
+
return ServiceWorkerUtils_await(_this2.getActiveServiceWorker(config.serviceWorkerScope), function (serviceWorker) {
|
|
2905
|
+
if (serviceWorker !== undefined) {
|
|
2906
|
+
var _serviceWorker$config = {
|
|
2907
|
+
serviceWorker: serviceWorker,
|
|
2908
|
+
config: config
|
|
2909
|
+
};
|
|
2910
|
+
_exit = true;
|
|
2911
|
+
return _serviceWorker$config;
|
|
2912
|
+
}
|
|
2913
|
+
_interrupt = true;
|
|
2914
|
+
});
|
|
2915
|
+
}
|
|
2916
|
+
}], [void 0, function () {
|
|
2917
|
+
assertUnreachable(config);
|
|
2918
|
+
}, ServiceWorkerUtils_empty]]), function (_result) {
|
|
2919
|
+
return _exit ? _result : ServiceWorkerUtils_await(_this2.registerServiceWorker(config.serviceWorkerScript, initMessage, serviceWorkerScriptFieldName));
|
|
2920
|
+
}));
|
|
2801
2921
|
} catch (e) {
|
|
2802
2922
|
return Promise.reject(e);
|
|
2803
2923
|
}
|
|
@@ -2811,20 +2931,25 @@ var ServiceWorkerUtils = /*#__PURE__*/function () {
|
|
|
2811
2931
|
*/
|
|
2812
2932
|
}, {
|
|
2813
2933
|
key: "registerServiceWorker",
|
|
2814
|
-
value: function registerServiceWorker(serviceWorkerScript,
|
|
2934
|
+
value: function registerServiceWorker(serviceWorkerScript, initMessage, serviceWorkerScriptFieldName) {
|
|
2815
2935
|
try {
|
|
2816
|
-
var
|
|
2936
|
+
var _this3 = this;
|
|
2937
|
+
if (!serviceWorkerScript.startsWith("/")) {
|
|
2938
|
+
throw new Error("The '".concat(serviceWorkerScriptFieldName, "' field must start with a '/' and reference a script at the root of your website."));
|
|
2939
|
+
}
|
|
2940
|
+
var forwardSlashCount = serviceWorkerScript.split("/").length - 1;
|
|
2941
|
+
if (forwardSlashCount > 1) {
|
|
2942
|
+
ConsoleUtils.warn("The '".concat(serviceWorkerScriptFieldName, "' field should be a root script (e.g. '/script.js'). The Bytescale SDK can only authorize requests originating from webpages that are at the same level as the script or below."));
|
|
2943
|
+
}
|
|
2817
2944
|
return ServiceWorkerUtils_await(ServiceWorkerUtils_catch(function () {
|
|
2818
2945
|
return ServiceWorkerUtils_await(navigator.serviceWorker.register(serviceWorkerScript), function (registration) {
|
|
2819
|
-
return ServiceWorkerUtils_await(
|
|
2820
|
-
var serviceWorker = _ref.serviceWorker,
|
|
2821
|
-
messageSent = _ref.messageSent;
|
|
2946
|
+
return ServiceWorkerUtils_await(_this3.waitForActiveServiceWorker(registration, initMessage), function (_this3$waitForActiveS) {
|
|
2822
2947
|
return {
|
|
2823
|
-
serviceWorker:
|
|
2824
|
-
messageSent: messageSent,
|
|
2948
|
+
serviceWorker: _this3$waitForActiveS,
|
|
2825
2949
|
config: {
|
|
2826
2950
|
serviceWorkerScript: serviceWorkerScript,
|
|
2827
|
-
serviceWorkerScope: registration.scope
|
|
2951
|
+
serviceWorkerScope: registration.scope,
|
|
2952
|
+
type: "Initialized"
|
|
2828
2953
|
}
|
|
2829
2954
|
};
|
|
2830
2955
|
});
|
|
@@ -2838,9 +2963,9 @@ var ServiceWorkerUtils = /*#__PURE__*/function () {
|
|
|
2838
2963
|
}
|
|
2839
2964
|
}, {
|
|
2840
2965
|
key: "waitForActiveServiceWorker",
|
|
2841
|
-
value: function waitForActiveServiceWorker(registration,
|
|
2966
|
+
value: function waitForActiveServiceWorker(registration, initMessage) {
|
|
2842
2967
|
try {
|
|
2843
|
-
var
|
|
2968
|
+
var _exit2 = false;
|
|
2844
2969
|
// We must check the 'installing' state before the 'active' state (see comment below).
|
|
2845
2970
|
// The state will be 'installing' when the service worker is installed for the first time, or if there have been
|
|
2846
2971
|
// code changes to the service worker, else the state will be 'active'.
|
|
@@ -2852,31 +2977,29 @@ var ServiceWorkerUtils = /*#__PURE__*/function () {
|
|
|
2852
2977
|
var sw = e.target;
|
|
2853
2978
|
if (sw.state === "activated") {
|
|
2854
2979
|
installing.removeEventListener("statechange", stateChangeHandler);
|
|
2855
|
-
resolve(
|
|
2856
|
-
messageSent: true,
|
|
2857
|
-
serviceWorker: sw
|
|
2858
|
-
});
|
|
2980
|
+
resolve(sw);
|
|
2859
2981
|
}
|
|
2860
2982
|
};
|
|
2861
2983
|
installing.addEventListener("statechange", stateChangeHandler);
|
|
2862
2984
|
});
|
|
2863
|
-
|
|
2985
|
+
// We send the message during the INSTALL phase instead of ACTIVE phase to ensure that when replacing an
|
|
2986
|
+
// existing Service Worker instance, the new instance will be ready to run (with config received from this
|
|
2987
|
+
// 'postMessage' call) prior to it being activated, so that it can immediately start attaching auth headers to
|
|
2988
|
+
// intercepted 'fetch' requests.
|
|
2989
|
+
installing.postMessage(initMessage);
|
|
2864
2990
|
return ServiceWorkerUtils_await(waitForActive, function (_await$waitForActive) {
|
|
2865
|
-
|
|
2991
|
+
_exit2 = true;
|
|
2866
2992
|
return _await$waitForActive;
|
|
2867
2993
|
});
|
|
2868
2994
|
}
|
|
2869
|
-
}, function (
|
|
2870
|
-
if (
|
|
2995
|
+
}, function (_result2) {
|
|
2996
|
+
if (_exit2) return _result2;
|
|
2871
2997
|
// We must check the 'installing' state before the 'active' state, because if we've just installed a new service
|
|
2872
2998
|
// worker, then the new service worker will be in the 'installing' slot whereas the old service worker will be in
|
|
2873
2999
|
// the 'active' slot. So, if we checked this first, we would always return the old service worker, and therefore the
|
|
2874
3000
|
// new service worker would never be initialized.
|
|
2875
3001
|
if (registration.active !== null) {
|
|
2876
|
-
return
|
|
2877
|
-
serviceWorker: registration.active,
|
|
2878
|
-
messageSent: false
|
|
2879
|
-
};
|
|
3002
|
+
return registration.active;
|
|
2880
3003
|
}
|
|
2881
3004
|
// We expect the service worker to use 'skipWaiting', so we don't expect 'waiting' service workers.
|
|
2882
3005
|
throw new Error("Service worker was neither 'installing' or 'active'.");
|
|
@@ -2889,29 +3012,47 @@ var ServiceWorkerUtils = /*#__PURE__*/function () {
|
|
|
2889
3012
|
key: "getActiveServiceWorker",
|
|
2890
3013
|
value: function getActiveServiceWorker(serviceWorkerScope) {
|
|
2891
3014
|
try {
|
|
2892
|
-
|
|
2893
|
-
|
|
3015
|
+
var _this4 = this;
|
|
3016
|
+
var _a, _b;
|
|
3017
|
+
return ServiceWorkerUtils_await(_this4.getActiveRegistrations(), function (_this4$getActiveRegis) {
|
|
3018
|
+
var registrations = _this4$getActiveRegis.filter(function (x) {
|
|
3019
|
+
return x.scope === serviceWorkerScope;
|
|
3020
|
+
});
|
|
3021
|
+
return (_b = (_a = registrations[0]) === null || _a === void 0 ? void 0 : _a.active) !== null && _b !== void 0 ? _b : undefined;
|
|
3022
|
+
});
|
|
3023
|
+
} catch (e) {
|
|
3024
|
+
return Promise.reject(e);
|
|
3025
|
+
}
|
|
3026
|
+
}
|
|
3027
|
+
/**
|
|
3028
|
+
* Existing active Service Workers will not receive 'fetch' events in sessions that start with a hard reload, so
|
|
3029
|
+
* we must unregister them and register a new one. (See: https://github.com/mswjs/msw/issues/98#issuecomment-612118211)
|
|
3030
|
+
*/
|
|
3031
|
+
}, {
|
|
3032
|
+
key: "unregisterOnHardReload",
|
|
3033
|
+
value: function unregisterOnHardReload() {
|
|
3034
|
+
try {
|
|
3035
|
+
var _this5 = this;
|
|
2894
3036
|
var isHardReload = navigator.serviceWorker.controller === null;
|
|
3037
|
+
if (!isHardReload) {
|
|
3038
|
+
return ServiceWorkerUtils_await();
|
|
3039
|
+
}
|
|
3040
|
+
return ServiceWorkerUtils_await(_this5.getActiveRegistrations(), function (registrations) {
|
|
3041
|
+
return ServiceWorkerUtils_continueIgnored(_forOf(registrations, function (registration) {
|
|
3042
|
+
return ServiceWorkerUtils_awaitIgnored(registration.unregister());
|
|
3043
|
+
}));
|
|
3044
|
+
});
|
|
3045
|
+
} catch (e) {
|
|
3046
|
+
return Promise.reject(e);
|
|
3047
|
+
}
|
|
3048
|
+
}
|
|
3049
|
+
}, {
|
|
3050
|
+
key: "getActiveRegistrations",
|
|
3051
|
+
value: function getActiveRegistrations() {
|
|
3052
|
+
try {
|
|
2895
3053
|
return ServiceWorkerUtils_await(navigator.serviceWorker.getRegistrations(), function (registrations) {
|
|
2896
|
-
|
|
2897
|
-
|
|
2898
|
-
return function () {
|
|
2899
|
-
if (registration.active !== null && registration.scope === serviceWorkerScope) {
|
|
2900
|
-
return function () {
|
|
2901
|
-
if (isHardReload) {
|
|
2902
|
-
return ServiceWorkerUtils_awaitIgnored(registration.unregister());
|
|
2903
|
-
} else {
|
|
2904
|
-
var _registration$active = registration.active;
|
|
2905
|
-
_exit2 = true;
|
|
2906
|
-
return _registration$active;
|
|
2907
|
-
}
|
|
2908
|
-
}();
|
|
2909
|
-
}
|
|
2910
|
-
}();
|
|
2911
|
-
}, function () {
|
|
2912
|
-
return _exit2;
|
|
2913
|
-
}), function (_result4) {
|
|
2914
|
-
return _exit2 ? _result4 : undefined;
|
|
3054
|
+
return registrations.filter(function (registration) {
|
|
3055
|
+
return registration.active !== null;
|
|
2915
3056
|
});
|
|
2916
3057
|
});
|
|
2917
3058
|
} catch (e) {
|
|
@@ -3039,7 +3180,7 @@ var AuthManagerImpl = /*#__PURE__*/function () {
|
|
|
3039
3180
|
isActive: true,
|
|
3040
3181
|
authServiceWorker: params.serviceWorkerScript !== undefined && _this.serviceWorkerUtils.canUseServiceWorkers() ? {
|
|
3041
3182
|
serviceWorkerScript: params.serviceWorkerScript,
|
|
3042
|
-
|
|
3183
|
+
type: "Uninitialized"
|
|
3043
3184
|
} : undefined
|
|
3044
3185
|
};
|
|
3045
3186
|
AuthSessionState.setSession(newSession);
|
|
@@ -2,8 +2,7 @@ import { ServiceWorkerConfig, ServiceWorkerConfigInitialized } from "./model/Ser
|
|
|
2
2
|
export declare class ServiceWorkerUtils<TMessage> {
|
|
3
3
|
canUseServiceWorkers(): boolean;
|
|
4
4
|
sendMessage(message: TMessage, config: ServiceWorkerConfig, serviceWorkerScriptFieldName: string): Promise<ServiceWorkerConfigInitialized>;
|
|
5
|
-
private
|
|
6
|
-
private getActiveServiceWorkerElseRegister;
|
|
5
|
+
private ensureActiveServiceWorkerExists;
|
|
7
6
|
/**
|
|
8
7
|
* Idempotent.
|
|
9
8
|
*
|
|
@@ -14,4 +13,10 @@ export declare class ServiceWorkerUtils<TMessage> {
|
|
|
14
13
|
private registerServiceWorker;
|
|
15
14
|
private waitForActiveServiceWorker;
|
|
16
15
|
private getActiveServiceWorker;
|
|
16
|
+
/**
|
|
17
|
+
* Existing active Service Workers will not receive 'fetch' events in sessions that start with a hard reload, so
|
|
18
|
+
* we must unregister them and register a new one. (See: https://github.com/mswjs/msw/issues/98#issuecomment-612118211)
|
|
19
|
+
*/
|
|
20
|
+
private unregisterOnHardReload;
|
|
21
|
+
private getActiveRegistrations;
|
|
17
22
|
}
|
|
@@ -1,9 +1,10 @@
|
|
|
1
1
|
export type ServiceWorkerConfig = ServiceWorkerConfigUninitialized | ServiceWorkerConfigInitialized;
|
|
2
2
|
export interface ServiceWorkerConfigUninitialized {
|
|
3
|
-
serviceWorkerScope: undefined;
|
|
4
3
|
serviceWorkerScript: string;
|
|
4
|
+
type: "Uninitialized";
|
|
5
5
|
}
|
|
6
6
|
export interface ServiceWorkerConfigInitialized {
|
|
7
|
-
serviceWorkerScope: string;
|
|
7
|
+
serviceWorkerScope: string | undefined;
|
|
8
8
|
serviceWorkerScript: string;
|
|
9
|
+
type: "Initialized";
|
|
9
10
|
}
|