JAVASCRIPT   118

firebase-messaging.js

Guest on 3rd August 2021 11:11:54 AM

  1. ! function(e, t) {
  2.     "object" == typeof exports && "undefined" != typeof module ? t(require("@firebase/app")) : "function" == typeof define && define.amd ? define(["@firebase/app"], t) : t(e.firebase)
  3. }(this, function(e) {
  4.     "use strict";
  5.     try {
  6.         (function() {
  7.             e = e && e.hasOwnProperty("default") ? e.default : e;
  8.             var t = Object.setPrototypeOf || {
  9.                 __proto__: []
  10.             }
  11.             instanceof Array && function(e, t) {
  12.                 e.__proto__ = t
  13.             } || function(e, t) {
  14.                 for (var n in t) t.hasOwnProperty(n) && (e[n] = t[n])
  15.             };
  16.  
  17.             function n(e, n) {
  18.                 function r() {
  19.                     this.constructor = e
  20.                 }
  21.                 t(e, n), e.prototype = null === n ? Object.create(n) : (r.prototype = n.prototype, new r)
  22.             }
  23.             var r = Object.assign || function(e) {
  24.                 for (var t, n = 1, r = arguments.length; n < r; n++)
  25.                     for (var i in t = arguments[n]) Object.prototype.hasOwnProperty.call(t, i) && (e[i] = t[i]);
  26.                 return e
  27.             };
  28.  
  29.             function i(e, t, n, r) {
  30.                 return new(n || (n = Promise))(function(i, o) {
  31.                     function s(e) {
  32.                         try {
  33.                             c(r.next(e))
  34.                         } catch (e) {
  35.                             o(e)
  36.                         }
  37.                     }
  38.  
  39.                     function a(e) {
  40.                         try {
  41.                             c(r.throw(e))
  42.                         } catch (e) {
  43.                             o(e)
  44.                         }
  45.                     }
  46.  
  47.                     function c(e) {
  48.                         e.done ? i(e.value) : new n(function(t) {
  49.                             t(e.value)
  50.                         }).then(s, a)
  51.                     }
  52.                     c((r = r.apply(e, t || [])).next())
  53.                 })
  54.             }
  55.  
  56.             function o(e, t) {
  57.                 var n, r, i, o, s = {
  58.                     label: 0,
  59.                     sent: function() {
  60.                         if (1 & i[0]) throw i[1];
  61.                         return i[1]
  62.                     },
  63.                     trys: [],
  64.                     ops: []
  65.                 };
  66.                 return o = {
  67.                     next: a(0),
  68.                     throw: a(1),
  69.                     return: a(2)
  70.                 }, "function" == typeof Symbol && (o[Symbol.iterator] = function() {
  71.                     return this
  72.                 }), o;
  73.  
  74.                 function a(o) {
  75.                     return function(a) {
  76.                         return function(o) {
  77.                             if (n) throw new TypeError("Generator is already executing.");
  78.                             for (; s;) try {
  79.                                 if (n = 1, r && (i = r[2 & o[0] ? "return" : o[0] ? "throw" : "next"]) && !(i = i.call(r, o[1])).done) return i;
  80.                                 switch (r = 0, i && (o = [0, i.value]), o[0]) {
  81.                                     case 0:
  82.                                     case 1:
  83.                                         i = o;
  84.                                         break;
  85.                                     case 4:
  86.                                         return s.label++, {
  87.                                             value: o[1],
  88.                                             done: !1
  89.                                         };
  90.                                     case 5:
  91.                                         s.label++, r = o[1], o = [0];
  92.                                         continue;
  93.                                     case 7:
  94.                                         o = s.ops.pop(), s.trys.pop();
  95.                                         continue;
  96.                                     default:
  97.                                         if (!(i = (i = s.trys).length > 0 && i[i.length - 1]) && (6 === o[0] || 2 === o[0])) {
  98.                                             s = 0;
  99.                                             continue
  100.                                         }
  101.                                         if (3 === o[0] && (!i || o[1] > i[0] && o[1] < i[3])) {
  102.                                             s.label = o[1];
  103.                                             break
  104.                                         }
  105.                                         if (6 === o[0] && s.label < i[1]) {
  106.                                             s.label = i[1], i = o;
  107.                                             break
  108.                                         }
  109.                                         if (i && s.label < i[2]) {
  110.                                             s.label = i[2], s.ops.push(o);
  111.                                             break
  112.                                         }
  113.                                         i[2] && s.ops.pop(), s.trys.pop();
  114.                                         continue
  115.                                 }
  116.                                 o = t.call(e, s)
  117.                             } catch (e) {
  118.                                 o = [6, e], r = 0
  119.                             } finally {
  120.                                 n = i = 0
  121.                             }
  122.                             if (5 & o[0]) throw o[1];
  123.                             return {
  124.                                 value: o[0] ? o[1] : void 0,
  125.                                 done: !0
  126.                             }
  127.                         }([o, a])
  128.                     }
  129.                 }
  130.             }
  131.             var s = "FirebaseError",
  132.                 a = Error.captureStackTrace,
  133.                 c = function() {
  134.                     return function(e, t) {
  135.                         if (this.code = e, this.message = t, a) a(this, u.prototype.create);
  136.                         else try {
  137.                             throw Error.apply(this, arguments)
  138.                         } catch (e) {
  139.                             this.name = s, Object.defineProperty(this, "stack", {
  140.                                 get: function() {
  141.                                     return e.stack
  142.                                 }
  143.                             })
  144.                         }
  145.                     }
  146.                 }();
  147.             c.prototype = Object.create(Error.prototype), c.prototype.constructor = c, c.prototype.name = s;
  148.             var u = function() {
  149.                 function e(e, t, n) {
  150.                     this.service = e, this.serviceName = t, this.errors = n, this.pattern = /\{\$([^}]+)}/g
  151.                 }
  152.                 return e.prototype.create = function(e, t) {
  153.                     void 0 === t && (t = {});
  154.                     var n, r = this.errors[e],
  155.                         i = this.service + "/" + e;
  156.                     n = void 0 === r ? "Error" : r.replace(this.pattern, function(e, n) {
  157.                         var r = t[n];
  158.                         return void 0 !== r ? r.toString() : "<" + n + "?>"
  159.                     }), n = this.serviceName + ": " + n + " (" + i + ").";
  160.                     var o = new c(i, n);
  161.                     for (var s in t) t.hasOwnProperty(s) && "_" !== s.slice(-1) && (o[s] = t[s]);
  162.                     return o
  163.                 }, e
  164.             }();
  165.             ! function(e) {
  166.                 function t() {
  167.                     var t = e.call(this) || this;
  168.                     t.chain_ = [], t.buf_ = [], t.W_ = [], t.pad_ = [], t.inbuf_ = 0, t.total_ = 0, t.blockSize = 64, t.pad_[0] = 128;
  169.                     for (var n = 1; n < t.blockSize; ++n) t.pad_[n] = 0;
  170.                     return t.reset(), t
  171.                 }
  172.                 n(t, e), t.prototype.reset = function() {
  173.                     this.chain_[0] = 1732584193, this.chain_[1] = 4023233417, this.chain_[2] = 2562383102, this.chain_[3] = 271733878, this.chain_[4] = 3285377520, this.inbuf_ = 0, this.total_ = 0
  174.                 }, t.prototype.compress_ = function(e, t) {
  175.                     t || (t = 0);
  176.                     var n = this.W_;
  177.                     if ("string" == typeof e)
  178.                         for (var r = 0; r < 16; r++) n[r] = e.charCodeAt(t) << 24 | e.charCodeAt(t + 1) << 16 | e.charCodeAt(t + 2) << 8 | e.charCodeAt(t + 3), t += 4;
  179.                     else
  180.                         for (r = 0; r < 16; r++) n[r] = e[t] << 24 | e[t + 1] << 16 | e[t + 2] << 8 | e[t + 3], t += 4;
  181.                     for (r = 16; r < 80; r++) {
  182.                         var i = n[r - 3] ^ n[r - 8] ^ n[r - 14] ^ n[r - 16];
  183.                         n[r] = 4294967295 & (i << 1 | i >>> 31)
  184.                     }
  185.                     var o, s, a = this.chain_[0],
  186.                         c = this.chain_[1],
  187.                         u = this.chain_[2],
  188.                         h = this.chain_[3],
  189.                         f = this.chain_[4];
  190.                     for (r = 0; r < 80; r++) {
  191.                         r < 40 ? r < 20 ? (o = h ^ c & (u ^ h), s = 1518500249) : (o = c ^ u ^ h, s = 1859775393) : r < 60 ? (o = c & u | h & (c | u), s = 2400959708) : (o = c ^ u ^ h, s = 3395469782);
  192.                         i = (a << 5 | a >>> 27) + o + f + s + n[r] & 4294967295;
  193.                         f = h, h = u, u = 4294967295 & (c << 30 | c >>> 2), c = a, a = i
  194.                     }
  195.                     this.chain_[0] = this.chain_[0] + a & 4294967295, this.chain_[1] = this.chain_[1] + c & 4294967295, this.chain_[2] = this.chain_[2] + u & 4294967295, this.chain_[3] = this.chain_[3] + h & 4294967295, this.chain_[4] = this.chain_[4] + f & 4294967295
  196.                 }, t.prototype.update = function(e, t) {
  197.                     if (null != e) {
  198.                         void 0 === t && (t = e.length);
  199.                         for (var n = t - this.blockSize, r = 0, i = this.buf_, o = this.inbuf_; r < t;) {
  200.                             if (0 == o)
  201.                                 for (; r <= n;) this.compress_(e, r), r += this.blockSize;
  202.                             if ("string" == typeof e) {
  203.                                 for (; r < t;)
  204.                                     if (i[o] = e.charCodeAt(r), ++r, ++o == this.blockSize) {
  205.                                         this.compress_(i), o = 0;
  206.                                         break
  207.                                     }
  208.                             } else
  209.                                 for (; r < t;)
  210.                                     if (i[o] = e[r], ++r, ++o == this.blockSize) {
  211.                                         this.compress_(i), o = 0;
  212.                                         break
  213.                                     }
  214.                         }
  215.                         this.inbuf_ = o, this.total_ += t
  216.                     }
  217.                 }, t.prototype.digest = function() {
  218.                     var e = [],
  219.                         t = 8 * this.total_;
  220.                     this.inbuf_ < 56 ? this.update(this.pad_, 56 - this.inbuf_) : this.update(this.pad_, this.blockSize - (this.inbuf_ - 56));
  221.                     for (var n = this.blockSize - 1; n >= 56; n--) this.buf_[n] = 255 & t, t /= 256;
  222.                     this.compress_(this.buf_);
  223.                     var r = 0;
  224.                     for (n = 0; n < 5; n++)
  225.                         for (var i = 24; i >= 0; i -= 8) e[r] = this.chain_[n] >> i & 255, ++r;
  226.                     return e
  227.                 }
  228.             }(function() {
  229.                 return function() {
  230.                     this.blockSize = -1
  231.                 }
  232.             }());
  233.  
  234.             function h(e, t) {
  235.                 var n = new f(e, t);
  236.                 return n.subscribe.bind(n)
  237.             }
  238.             var f = function() {
  239.                 function e(e, t) {
  240.                     var n = this;
  241.                     this.observers = [], this.unsubscribes = [], this.observerCount = 0, this.task = Promise.resolve(), this.finalized = !1, this.onNoObservers = t, this.task.then(function() {
  242.                         e(n)
  243.                     }).catch(function(e) {
  244.                         n.error(e)
  245.                     })
  246.                 }
  247.                 return e.prototype.next = function(e) {
  248.                     this.forEachObserver(function(t) {
  249.                         t.next(e)
  250.                     })
  251.                 }, e.prototype.error = function(e) {
  252.                     this.forEachObserver(function(t) {
  253.                         t.error(e)
  254.                     }), this.close(e)
  255.                 }, e.prototype.complete = function() {
  256.                     this.forEachObserver(function(e) {
  257.                         e.complete()
  258.                     }), this.close()
  259.                 }, e.prototype.subscribe = function(e, t, n) {
  260.                     var r, i = this;
  261.                     if (void 0 === e && void 0 === t && void 0 === n) throw new Error("Missing Observer.");
  262.                     void 0 === (r = function(e, t) {
  263.                         if ("object" != typeof e || null === e) return !1;
  264.                         for (var n = 0, r = t; n < r.length; n++) {
  265.                             var i = r[n];
  266.                             if (i in e && "function" == typeof e[i]) return !0
  267.                         }
  268.                         return !1
  269.                     }(e, ["next", "error", "complete"]) ? e : {
  270.                         next: e,
  271.                         error: t,
  272.                         complete: n
  273.                     }).next && (r.next = d), void 0 === r.error && (r.error = d), void 0 === r.complete && (r.complete = d);
  274.                     var o = this.unsubscribeOne.bind(this, this.observers.length);
  275.                     return this.finalized && this.task.then(function() {
  276.                         try {
  277.                             i.finalError ? r.error(i.finalError) : r.complete()
  278.                         } catch (e) {}
  279.                     }), this.observers.push(r), o
  280.                 }, e.prototype.unsubscribeOne = function(e) {
  281.                     void 0 !== this.observers && void 0 !== this.observers[e] && (delete this.observers[e], this.observerCount -= 1, 0 === this.observerCount && void 0 !== this.onNoObservers && this.onNoObservers(this))
  282.                 }, e.prototype.forEachObserver = function(e) {
  283.                     if (!this.finalized)
  284.                         for (var t = 0; t < this.observers.length; t++) this.sendOne(t, e)
  285.                 }, e.prototype.sendOne = function(e, t) {
  286.                     var n = this;
  287.                     this.task.then(function() {
  288.                         if (void 0 !== n.observers && void 0 !== n.observers[e]) try {
  289.                             t(n.observers[e])
  290.                         } catch (e) {
  291.                             "undefined" != typeof console && console.error && console.error(e)
  292.                         }
  293.                     })
  294.                 }, e.prototype.close = function(e) {
  295.                     var t = this;
  296.                     this.finalized || (this.finalized = !0, void 0 !== e && (this.finalError = e), this.task.then(function() {
  297.                         t.observers = void 0, t.onNoObservers = void 0
  298.                     }))
  299.                 }, e
  300.             }();
  301.  
  302.             function d() {}
  303.             var p, l, _, E = {
  304.                     AVAILABLE_IN_WINDOW: "only-available-in-window",
  305.                     AVAILABLE_IN_SW: "only-available-in-sw",
  306.                     SHOULD_BE_INHERITED: "should-be-overriden",
  307.                     BAD_SENDER_ID: "bad-sender-id",
  308.                     INCORRECT_GCM_SENDER_ID: "incorrect-gcm-sender-id",
  309.                     PERMISSION_DEFAULT: "permission-default",
  310.                     PERMISSION_BLOCKED: "permission-blocked",
  311.                     UNSUPPORTED_BROWSER: "unsupported-browser",
  312.                     NOTIFICATIONS_BLOCKED: "notifications-blocked",
  313.                     FAILED_DEFAULT_REGISTRATION: "failed-serviceworker-registration",
  314.                     SW_REGISTRATION_EXPECTED: "sw-registration-expected",
  315.                     GET_SUBSCRIPTION_FAILED: "get-subscription-failed",
  316.                     INVALID_SAVED_TOKEN: "invalid-saved-token",
  317.                     SW_REG_REDUNDANT: "sw-reg-redundant",
  318.                     TOKEN_SUBSCRIBE_FAILED: "token-subscribe-failed",
  319.                     TOKEN_SUBSCRIBE_NO_TOKEN: "token-subscribe-no-token",
  320.                     TOKEN_SUBSCRIBE_NO_PUSH_SET: "token-subscribe-no-push-set",
  321.                     TOKEN_UNSUBSCRIBE_FAILED: "token-unsubscribe-failed",
  322.                     TOKEN_UPDATE_FAILED: "token-update-failed",
  323.                     TOKEN_UPDATE_NO_TOKEN: "token-update-no-token",
  324.                     USE_SW_BEFORE_GET_TOKEN: "use-sw-before-get-token",
  325.                     INVALID_DELETE_TOKEN: "invalid-delete-token",
  326.                     DELETE_TOKEN_NOT_FOUND: "delete-token-not-found",
  327.                     DELETE_SCOPE_NOT_FOUND: "delete-scope-not-found",
  328.                     BG_HANDLER_FUNCTION_EXPECTED: "bg-handler-function-expected",
  329.                     NO_WINDOW_CLIENT_TO_MSG: "no-window-client-to-msg",
  330.                     UNABLE_TO_RESUBSCRIBE: "unable-to-resubscribe",
  331.                     NO_FCM_TOKEN_FOR_RESUBSCRIBE: "no-fcm-token-for-resubscribe",
  332.                     FAILED_TO_DELETE_TOKEN: "failed-to-delete-token",
  333.                     NO_SW_IN_REG: "no-sw-in-reg",
  334.                     BAD_SCOPE: "bad-scope",
  335.                     BAD_VAPID_KEY: "bad-vapid-key",
  336.                     BAD_SUBSCRIPTION: "bad-subscription",
  337.                     BAD_TOKEN: "bad-token",
  338.                     BAD_PUSH_SET: "bad-push-set",
  339.                     FAILED_DELETE_VAPID_KEY: "failed-delete-vapid-key",
  340.                     INVALID_PUBLIC_VAPID_KEY: "invalid-public-vapid-key",
  341.                     USE_PUBLIC_KEY_BEFORE_GET_TOKEN: "use-public-key-before-get-token",
  342.                     PUBLIC_KEY_DECRYPTION_FAILED: "public-vapid-key-decryption-failed"
  343.                 },
  344.                 b = ((p = {})[E.AVAILABLE_IN_WINDOW] = "This method is available in a Window context.", p[E.AVAILABLE_IN_SW] = "This method is available in a service worker context.", p[E.SHOULD_BE_INHERITED] = "This method should be overriden by extended classes.", p[E.BAD_SENDER_ID] = "Please ensure that 'messagingSenderId' is set correctly in the options passed into firebase.initializeApp().", p[E.PERMISSION_DEFAULT] = "The required permissions were not granted and dismissed instead.", p[E.PERMISSION_BLOCKED] = "The required permissions were not granted and blocked instead.", p[E.UNSUPPORTED_BROWSER] = "This browser doesn't support the API's required to use the firebase SDK.", p[E.NOTIFICATIONS_BLOCKED] = "Notifications have been blocked.", p[E.FAILED_DEFAULT_REGISTRATION] = "We are unable to register the default service worker. {$browserErrorMessage}", p[E.SW_REGISTRATION_EXPECTED] = "A service worker registration was the expected input.", p[E.GET_SUBSCRIPTION_FAILED] = "There was an error when trying to get any existing Push Subscriptions.", p[E.INVALID_SAVED_TOKEN] = "Unable to access details of the saved token.", p[E.SW_REG_REDUNDANT] = "The service worker being used for push was made redundant.", p[E.TOKEN_SUBSCRIBE_FAILED] = "A problem occured while subscribing the user to FCM: {$message}", p[E.TOKEN_SUBSCRIBE_NO_TOKEN] = "FCM returned no token when subscribing the user to push.", p[E.TOKEN_SUBSCRIBE_NO_PUSH_SET] = "FCM returned an invalid response when getting an FCM token.", p[E.TOKEN_UNSUBSCRIBE_FAILED] = "A problem occured while unsubscribing the user from FCM: {$message}", p[E.TOKEN_UPDATE_FAILED] = "A problem occured while updating the user from FCM: {$message}", p[E.TOKEN_UPDATE_NO_TOKEN] = "FCM returned no token when updating the user to push.", p[E.USE_SW_BEFORE_GET_TOKEN] = "The useServiceWorker() method may only be called once and must be called before calling getToken() to ensure your service worker is used.", p[E.INVALID_DELETE_TOKEN] = "You must pass a valid token into deleteToken(), i.e. the token from getToken().", p[E.DELETE_TOKEN_NOT_FOUND] = "The deletion attempt for token could not be performed as the token was not found.", p[E.DELETE_SCOPE_NOT_FOUND] = "The deletion attempt for service worker scope could not be performed as the scope was not found.", p[E.BG_HANDLER_FUNCTION_EXPECTED] = "The input to setBackgroundMessageHandler() must be a function.", p[E.NO_WINDOW_CLIENT_TO_MSG] = "An attempt was made to message a non-existant window client.", p[E.UNABLE_TO_RESUBSCRIBE] = "There was an error while re-subscribing the FCM token for push messaging. Will have to resubscribe the user on next visit. {$message}", p[E.NO_FCM_TOKEN_FOR_RESUBSCRIBE] = "Could not find an FCM token and as a result, unable to resubscribe. Will have to resubscribe the user on next visit.", p[E.FAILED_TO_DELETE_TOKEN] = "Unable to delete the currently saved token.", p[E.NO_SW_IN_REG] = "Even though the service worker registration was successful, there was a problem accessing the service worker itself.", p[E.INCORRECT_GCM_SENDER_ID] = "Please change your web app manifest's 'gcm_sender_id' value to '103953800507' to use Firebase messaging.", p[E.BAD_SCOPE] = "The service worker scope must be a string with at least one character.", p[E.BAD_VAPID_KEY] = "The public VAPID key is not a Uint8Array with 65 bytes.", p[E.BAD_SUBSCRIPTION] = "The subscription must be a valid PushSubscription.", p[E.BAD_TOKEN] = "The FCM Token used for storage / lookup was not a valid token string.", p[E.BAD_PUSH_SET] = "The FCM push set used for storage / lookup was not not a valid push set string.", p[E.FAILED_DELETE_VAPID_KEY] = "The VAPID key could not be deleted.", p[E.INVALID_PUBLIC_VAPID_KEY] = "The public VAPID key must be a string.", p[E.PUBLIC_KEY_DECRYPTION_FAILED] = "The public VAPID key did not equal 65 bytes when decrypted.", p),
  345.                 v = new u("messaging", "Messaging", b),
  346.                 g = new Uint8Array([4, 51, 148, 247, 223, 161, 235, 177, 220, 3, 162, 94, 21, 113, 219, 72, 211, 46, 237, 237, 178, 52, 219, 183, 71, 58, 12, 143, 196, 204, 225, 111, 60, 140, 132, 223, 171, 182, 102, 62, 242, 12, 212, 139, 254, 227, 249, 118, 47, 20, 28, 99, 8, 106, 111, 45, 177, 26, 149, 176, 206, 55, 192, 156, 110]),
  347.                 T = "https://fcm.googleapis.com";
  348.  
  349.             function S(e, t) {
  350.                 if (null == e || null == t) return !1;
  351.                 if (e === t) return !0;
  352.                 if (e.byteLength !== t.byteLength) return !1;
  353.                 for (var n = new DataView(e), r = new DataView(t), i = 0; i < e.byteLength; i++)
  354.                     if (n.getUint8(i) !== r.getUint8(i)) return !1;
  355.                 return !0
  356.             }
  357.  
  358.             function y(e) {
  359.                 return function(e) {
  360.                     var t = new Uint8Array(e);
  361.                     return btoa(String.fromCharCode.apply(null, t))
  362.                 }(e).replace(/=/g, "").replace(/\+/g, "-").replace(/\//g, "_")
  363.             }! function(e) {
  364.                 e.TYPE_OF_MSG = "firebase-messaging-msg-type", e.DATA = "firebase-messaging-msg-data"
  365.             }(l || (l = {})),
  366.             function(e) {
  367.                 e.PUSH_MSG_RECEIVED = "push-msg-received", e.NOTIFICATION_CLICKED = "notification-clicked"
  368.             }(_ || (_ = {}));
  369.             var w = function() {
  370.                 function e() {}
  371.                 return e.prototype.getToken = function(e, t, n) {
  372.                     return i(this, void 0, void 0, function() {
  373.                         var r, i, s, a, c, u, h, f;
  374.                         return o(this, function(o) {
  375.                             switch (o.label) {
  376.                                 case 0:
  377.                                     r = y(t.getKey("p256dh")), i = y(t.getKey("auth")), s = "authorized_entity=" + e + "&endpoint=" + t.endpoint + "&encryption_key=" + r + "&encryption_auth=" + i, S(n.buffer, g.buffer) || (a = y(n), s += "&application_pub_key=" + a), (c = new Headers).append("Content-Type", "application/x-www-form-urlencoded"), u = {
  378.                                         method: "POST",
  379.                                         headers: c,
  380.                                         body: s
  381.                                     }, o.label = 1;
  382.                                 case 1:
  383.                                     return o.trys.push([1, 4, , 5]), [4, fetch(T + "/fcm/connect/subscribe", u)];
  384.                                 case 2:
  385.                                     return [4, o.sent().json()];
  386.                                 case 3:
  387.                                     return h = o.sent(), [3, 5];
  388.                                 case 4:
  389.                                     throw o.sent(), v.create(E.TOKEN_SUBSCRIBE_FAILED);
  390.                                 case 5:
  391.                                     if (h.error) throw f = h.error.message, v.create(E.TOKEN_SUBSCRIBE_FAILED, {
  392.                                         message: f
  393.                                     });
  394.                                     if (!h.token) throw v.create(E.TOKEN_SUBSCRIBE_NO_TOKEN);
  395.                                     if (!h.pushSet) throw v.create(E.TOKEN_SUBSCRIBE_NO_PUSH_SET);
  396.                                     return [2, {
  397.                                         token: h.token,
  398.                                         pushSet: h.pushSet
  399.                                     }]
  400.                             }
  401.                         })
  402.                     })
  403.                 }, e.prototype.updateToken = function(e, t, n, r, s) {
  404.                     return i(this, void 0, void 0, function() {
  405.                         var i, a, c, u, h, f, d, p;
  406.                         return o(this, function(o) {
  407.                             switch (o.label) {
  408.                                 case 0:
  409.                                     i = y(r.getKey("p256dh")), a = y(r.getKey("auth")), c = "push_set=" + n + "&token=" + t + "&authorized_entity=" + e + "&endpoint=" + r.endpoint + "&encryption_key=" + i + "&encryption_auth=" + a, S(s.buffer, g.buffer) || (u = y(s), c += "&application_pub_key=" + u), (h = new Headers).append("Content-Type", "application/x-www-form-urlencoded"), f = {
  410.                                         method: "POST",
  411.                                         headers: h,
  412.                                         body: c
  413.                                     }, o.label = 1;
  414.                                 case 1:
  415.                                     return o.trys.push([1, 4, , 5]), [4, fetch(T + "/fcm/connect/subscribe", f)];
  416.                                 case 2:
  417.                                     return [4, o.sent().json()];
  418.                                 case 3:
  419.                                     return d = o.sent(), [3, 5];
  420.                                 case 4:
  421.                                     throw o.sent(), v.create(E.TOKEN_UPDATE_FAILED);
  422.                                 case 5:
  423.                                     if (d.error) throw p = d.error.message, v.create(E.TOKEN_UPDATE_FAILED, {
  424.                                         message: p
  425.                                     });
  426.                                     if (!d.token) throw v.create(E.TOKEN_UPDATE_NO_TOKEN);
  427.                                     return [2, d.token]
  428.                             }
  429.                         })
  430.                     })
  431.                 }, e.prototype.deleteToken = function(e, t, n) {
  432.                     return i(this, void 0, void 0, function() {
  433.                         var r, i, s, a, c;
  434.                         return o(this, function(o) {
  435.                             switch (o.label) {
  436.                                 case 0:
  437.                                     r = "authorized_entity=" + e + "&token=" + t + "&pushSet=" + n, (i = new Headers).append("Content-Type", "application/x-www-form-urlencoded"), s = {
  438.                                         method: "POST",
  439.                                         headers: i,
  440.                                         body: r
  441.                                     }, o.label = 1;
  442.                                 case 1:
  443.                                     return o.trys.push([1, 4, , 5]), [4, fetch(T + "/fcm/connect/unsubscribe", s)];
  444.                                 case 2:
  445.                                     return [4, o.sent().json()];
  446.                                 case 3:
  447.                                     if ((a = o.sent()).error) throw c = a.error.message, v.create(E.TOKEN_UNSUBSCRIBE_FAILED, {
  448.                                         message: c
  449.                                     });
  450.                                     return [3, 5];
  451.                                 case 4:
  452.                                     throw o.sent(), v.create(E.TOKEN_UNSUBSCRIBE_FAILED);
  453.                                 case 5:
  454.                                     return [2]
  455.                             }
  456.                         })
  457.                     })
  458.                 }, e
  459.             }();
  460.  
  461.             function I(e) {
  462.                 for (var t = (e + "=".repeat((4 - e.length % 4) % 4)).replace(/\-/g, "+").replace(/_/g, "/"), n = atob(t), r = new Uint8Array(n.length), i = 0; i < n.length; ++i) r[i] = n.charCodeAt(i);
  463.                 return r
  464.             }
  465.             var D = "undefined",
  466.                 N = "fcm_token_object_Store";
  467.  
  468.             function m() {
  469.                 var e = indexedDB.open(D);
  470.                 e.onerror = function(e) {}, e.onsuccess = function(t) {
  471.                     ! function(e) {
  472.                         if (e.objectStoreNames.contains(N)) {
  473.                             var t = e.transaction(N).objectStore(N),
  474.                                 n = new w,
  475.                                 r = t.openCursor();
  476.                             r.onerror = function(e) {
  477.                                 console.warn("Unable to cleanup old IDB.", e)
  478.                             }, r.onsuccess = function() {
  479.                                 var t = r.result;
  480.                                 if (t) {
  481.                                     var i = t.value;
  482.                                     n.deleteToken(i.fcmSenderId, i.fcmToken, i.fcmPushSet), t.continue()
  483.                                 } else e.close(), indexedDB.deleteDatabase(D)
  484.                             }
  485.                         }
  486.                     }(e.result)
  487.                 }
  488.             }
  489.             var O = function() {
  490.                 function e() {
  491.                     this.dbPromise = null
  492.                 }
  493.                 return e.prototype.get = function(e) {
  494.                     return this.createTransaction(function(t) {
  495.                         return t.get(e)
  496.                     })
  497.                 }, e.prototype.getIndex = function(e, t) {
  498.                     return this.createTransaction(function(n) {
  499.                         return n.index(e).get(t)
  500.                     })
  501.                 }, e.prototype.put = function(e) {
  502.                     return this.createTransaction(function(t) {
  503.                         return t.put(e)
  504.                     }, "readwrite")
  505.                 }, e.prototype.delete = function(e) {
  506.                     return this.createTransaction(function(t) {
  507.                         return t.delete(e)
  508.                     }, "readwrite")
  509.                 }, e.prototype.closeDatabase = function() {
  510.                     return i(this, void 0, void 0, function() {
  511.                         return o(this, function(e) {
  512.                             switch (e.label) {
  513.                                 case 0:
  514.                                     return this.dbPromise ? [4, this.dbPromise] : [3, 2];
  515.                                 case 1:
  516.                                     e.sent().close(), this.dbPromise = null, e.label = 2;
  517.                                 case 2:
  518.                                     return [2]
  519.                             }
  520.                         })
  521.                     })
  522.                 }, e.prototype.createTransaction = function(e, t) {
  523.                     return void 0 === t && (t = "readonly"), i(this, void 0, void 0, function() {
  524.                         var n, r, i, s;
  525.                         return o(this, function(o) {
  526.                             switch (o.label) {
  527.                                 case 0:
  528.                                     return [4, this.getDb()];
  529.                                 case 1:
  530.                                     return n = o.sent(), r = n.transaction(this.objectStoreName, t), i = r.objectStore(this.objectStoreName), [4, function(e) {
  531.                                         return new Promise(function(t, n) {
  532.                                             e.onsuccess = function() {
  533.                                                 t(e.result)
  534.                                             }, e.onerror = function() {
  535.                                                 n(e.error)
  536.                                             }
  537.                                         })
  538.                                     }(e(i))];
  539.                                 case 2:
  540.                                     return s = o.sent(), [2, new Promise(function(e, t) {
  541.                                         r.oncomplete = function() {
  542.                                             e(s)
  543.                                         }, r.onerror = function() {
  544.                                             t(r.error)
  545.                                         }
  546.                                     })]
  547.                             }
  548.                         })
  549.                     })
  550.                 }, e.prototype.getDb = function() {
  551.                     var e = this;
  552.                     return this.dbPromise || (this.dbPromise = new Promise(function(t, n) {
  553.                         var r = indexedDB.open(e.dbName, e.dbVersion);
  554.                         r.onsuccess = function() {
  555.                             t(r.result)
  556.                         }, r.onerror = function() {
  557.                             e.dbPromise = null, n(r.error)
  558.                         }, r.onupgradeneeded = function(t) {
  559.                             return e.onDbUpgrade(r, t)
  560.                         }
  561.                     })), this.dbPromise
  562.                 }, e
  563.             }();
  564.             var k = function(e) {
  565.                 function t() {
  566.                     var t = null !== e && e.apply(this, arguments) || this;
  567.                     return t.dbName = "fcm_token_details_db", t.dbVersion = 3, t.objectStoreName = "fcm_token_object_Store", t
  568.                 }
  569.                 return n(t, e), t.prototype.onDbUpgrade = function(e, t) {
  570.                     var n = e.result;
  571.                     switch (t.oldVersion) {
  572.                         case 0:
  573.                             (i = n.createObjectStore(this.objectStoreName, {
  574.                                 keyPath: "swScope"
  575.                             })).createIndex("fcmSenderId", "fcmSenderId", {
  576.                                 unique: !1
  577.                             }), i.createIndex("fcmToken", "fcmToken", {
  578.                                 unique: !0
  579.                             });
  580.                         case 1:
  581.                             m();
  582.                         case 2:
  583.                             var i, o = (i = e.transaction.objectStore(this.objectStoreName)).openCursor();
  584.                             o.onsuccess = function() {
  585.                                 var e = o.result;
  586.                                 if (e) {
  587.                                     var t = e.value,
  588.                                         n = r({}, t);
  589.                                     t.createTime || (n.createTime = Date.now()), "string" == typeof t.vapidKey && (n.vapidKey = I(t.vapidKey)), "string" == typeof t.auth && (n.auth = I(t.auth).buffer), "string" == typeof t.auth && (n.p256dh = I(t.p256dh).buffer), e.update(n), e.continue()
  590.                                 }
  591.                             }
  592.                     }
  593.                 }, t.prototype.getTokenDetailsFromToken = function(e) {
  594.                     return i(this, void 0, void 0, function() {
  595.                         return o(this, function(t) {
  596.                             if (!e) throw v.create(E.BAD_TOKEN);
  597.                             return A({
  598.                                 fcmToken: e
  599.                             }), [2, this.getIndex("fcmToken", e)]
  600.                         })
  601.                     })
  602.                 }, t.prototype.getTokenDetailsFromSWScope = function(e) {
  603.                     return i(this, void 0, void 0, function() {
  604.                         return o(this, function(t) {
  605.                             if (!e) throw v.create(E.BAD_SCOPE);
  606.                             return A({
  607.                                 swScope: e
  608.                             }), [2, this.get(e)]
  609.                         })
  610.                     })
  611.                 }, t.prototype.saveTokenDetails = function(e) {
  612.                     return i(this, void 0, void 0, function() {
  613.                         return o(this, function(t) {
  614.                             if (!e.swScope) throw v.create(E.BAD_SCOPE);
  615.                             if (!e.vapidKey) throw v.create(E.BAD_VAPID_KEY);
  616.                             if (!e.endpoint || !e.auth || !e.p256dh) throw v.create(E.BAD_SUBSCRIPTION);
  617.                             if (!e.fcmSenderId) throw v.create(E.BAD_SENDER_ID);
  618.                             if (!e.fcmToken) throw v.create(E.BAD_TOKEN);
  619.                             if (!e.fcmPushSet) throw v.create(E.BAD_PUSH_SET);
  620.                             return A(e), [2, this.put(e)]
  621.                         })
  622.                     })
  623.                 }, t.prototype.deleteToken = function(e) {
  624.                     return i(this, void 0, void 0, function() {
  625.                         var t;
  626.                         return o(this, function(n) {
  627.                             switch (n.label) {
  628.                                 case 0:
  629.                                     return "string" != typeof e || 0 === e.length ? [2, Promise.reject(v.create(E.INVALID_DELETE_TOKEN))] : [4, this.getTokenDetailsFromToken(e)];
  630.                                 case 1:
  631.                                     if (!(t = n.sent())) throw v.create(E.DELETE_TOKEN_NOT_FOUND);
  632.                                     return [4, this.delete(t.swScope)];
  633.                                 case 2:
  634.                                     return n.sent(), [2, t]
  635.                             }
  636.                         })
  637.                     })
  638.                 }, t
  639.             }(O);
  640.  
  641.             function A(e) {
  642.                 if (e.fcmToken && ("string" != typeof e.fcmToken || 0 === e.fcmToken.length)) throw v.create(E.BAD_TOKEN);
  643.                 if (e.swScope && ("string" != typeof e.swScope || 0 === e.swScope.length)) throw v.create(E.BAD_SCOPE);
  644.                 if (e.vapidKey && (!(e.vapidKey instanceof Uint8Array) || 65 !== e.vapidKey.length)) throw v.create(E.BAD_VAPID_KEY);
  645.                 if (e.endpoint && ("string" != typeof e.endpoint || 0 === e.endpoint.length)) throw v.create(E.BAD_SUBSCRIPTION);
  646.                 if (e.auth && !(e.auth instanceof ArrayBuffer)) throw v.create(E.BAD_SUBSCRIPTION);
  647.                 if (e.p256dh && !(e.p256dh instanceof ArrayBuffer)) throw v.create(E.BAD_SUBSCRIPTION);
  648.                 if (e.fcmSenderId && ("string" != typeof e.fcmSenderId || 0 === e.fcmSenderId.length)) throw v.create(E.BAD_SENDER_ID);
  649.                 if (e.fcmPushSet && ("string" != typeof e.fcmPushSet || 0 === e.fcmPushSet.length)) throw v.create(E.BAD_PUSH_SET)
  650.             }
  651.             var P = function(e) {
  652.                     function t() {
  653.                         var t = null !== e && e.apply(this, arguments) || this;
  654.                         return t.dbName = "fcm_vapid_details_db", t.dbVersion = 1, t.objectStoreName = "fcm_vapid_object_Store", t
  655.                     }
  656.                     return n(t, e), t.prototype.onDbUpgrade = function(e) {
  657.                         e.result.createObjectStore(this.objectStoreName, {
  658.                             keyPath: "swScope"
  659.                         })
  660.                     }, t.prototype.getVapidFromSWScope = function(e) {
  661.                         return i(this, void 0, void 0, function() {
  662.                             var t;
  663.                             return o(this, function(n) {
  664.                                 switch (n.label) {
  665.                                     case 0:
  666.                                         if ("string" != typeof e || 0 === e.length) throw v.create(E.BAD_SCOPE);
  667.                                         return [4, this.get(e)];
  668.                                     case 1:
  669.                                         return [2, (t = n.sent()) ? t.vapidKey : void 0]
  670.                                 }
  671.                             })
  672.                         })
  673.                     }, t.prototype.saveVapidDetails = function(e, t) {
  674.                         return i(this, void 0, void 0, function() {
  675.                             var n;
  676.                             return o(this, function(r) {
  677.                                 if ("string" != typeof e || 0 === e.length) throw v.create(E.BAD_SCOPE);
  678.                                 if (null === t || 65 !== t.length) throw v.create(E.BAD_VAPID_KEY);
  679.                                 return n = {
  680.                                     swScope: e,
  681.                                     vapidKey: t
  682.                                 }, [2, this.put(n)]
  683.                             })
  684.                         })
  685.                     }, t.prototype.deleteVapidDetails = function(e) {
  686.                         return i(this, void 0, void 0, function() {
  687.                             var t;
  688.                             return o(this, function(n) {
  689.                                 switch (n.label) {
  690.                                     case 0:
  691.                                         return [4, this.getVapidFromSWScope(e)];
  692.                                     case 1:
  693.                                         if (!(t = n.sent())) throw v.create(E.DELETE_SCOPE_NOT_FOUND);
  694.                                         return [4, this.delete(e)];
  695.                                     case 2:
  696.                                         return n.sent(), [2, t]
  697.                                 }
  698.                             })
  699.                         })
  700.                     }, t
  701.                 }(O),
  702.                 C = "messagingSenderId",
  703.                 B = function() {
  704.                     function e(e) {
  705.                         var t = this;
  706.                         if (!e.options[C] || "string" != typeof e.options[C]) throw v.create(E.BAD_SENDER_ID);
  707.                         this.messagingSenderId = e.options[C], this.tokenDetailsModel = new k, this.vapidDetailsModel = new P, this.iidModel = new w, this.app = e, this.INTERNAL = {
  708.                             delete: function() {
  709.                                 return t.delete()
  710.                             }
  711.                         }
  712.                     }
  713.                     return e.prototype.getToken = function() {
  714.                         return i(this, void 0, void 0, function() {
  715.                             var e, t, n, r, i;
  716.                             return o(this, function(o) {
  717.                                 switch (o.label) {
  718.                                     case 0:
  719.                                         if ("denied" === (e = this.getNotificationPermission_())) throw v.create(E.NOTIFICATIONS_BLOCKED);
  720.                                         return "granted" !== e ? [2, null] : [4, this.getSWRegistration_()];
  721.                                     case 1:
  722.                                         return t = o.sent(), [4, this.getPublicVapidKey_()];
  723.                                     case 2:
  724.                                         return n = o.sent(), [4, this.getPushSubscription(t, n)];
  725.                                     case 3:
  726.                                         return r = o.sent(), [4, this.tokenDetailsModel.getTokenDetailsFromSWScope(t.scope)];
  727.                                     case 4:
  728.                                         return (i = o.sent()) ? [2, this.manageExistingToken(t, r, n, i)] : [2, this.getNewToken(t, r, n)]
  729.                                 }
  730.                             })
  731.                         })
  732.                     }, e.prototype.manageExistingToken = function(e, t, n, r) {
  733.                         return i(this, void 0, void 0, function() {
  734.                             return o(this, function(i) {
  735.                                 switch (i.label) {
  736.                                     case 0:
  737.                                         return function(e, t, n) {
  738.                                             if (!n.vapidKey || !S(t.buffer, n.vapidKey.buffer)) return !1;
  739.                                             var r = e.endpoint === n.endpoint,
  740.                                                 i = S(e.getKey("auth"), n.auth),
  741.                                                 o = S(e.getKey("p256dh"), n.p256dh);
  742.                                             return r && i && o
  743.                                         }(t, n, r) ? Date.now() < r.createTime + 6048e5 ? [2, r.fcmToken] : [2, this.updateToken(e, t, n, r)] : [4, this.deleteTokenFromDB(r.fcmToken)];
  744.                                     case 1:
  745.                                         return i.sent(), [2, this.getNewToken(e, t, n)]
  746.                                 }
  747.                             })
  748.                         })
  749.                     }, e.prototype.updateToken = function(e, t, n, r) {
  750.                         return i(this, void 0, void 0, function() {
  751.                             var i, s, a;
  752.                             return o(this, function(o) {
  753.                                 switch (o.label) {
  754.                                     case 0:
  755.                                         return o.trys.push([0, 4, , 6]), [4, this.iidModel.updateToken(this.messagingSenderId, r.fcmToken, r.fcmPushSet, t, n)];
  756.                                     case 1:
  757.                                         return i = o.sent(), s = {
  758.                                             swScope: e.scope,
  759.                                             vapidKey: n,
  760.                                             fcmSenderId: this.messagingSenderId,
  761.                                             fcmToken: i,
  762.                                             fcmPushSet: r.fcmPushSet,
  763.                                             createTime: Date.now(),
  764.                                             endpoint: t.endpoint,
  765.                                             auth: t.getKey("auth"),
  766.                                             p256dh: t.getKey("p256dh")
  767.                                         }, [4, this.tokenDetailsModel.saveTokenDetails(s)];
  768.                                     case 2:
  769.                                         return o.sent(), [4, this.vapidDetailsModel.saveVapidDetails(e.scope, n)];
  770.                                     case 3:
  771.                                         return o.sent(), [2, i];
  772.                                     case 4:
  773.                                         return a = o.sent(), [4, this.deleteToken(r.fcmToken)];
  774.                                     case 5:
  775.                                         throw o.sent(), a;
  776.                                     case 6:
  777.                                         return [2]
  778.                                 }
  779.                             })
  780.                         })
  781.                     }, e.prototype.getNewToken = function(e, t, n) {
  782.                         return i(this, void 0, void 0, function() {
  783.                             var r, i;
  784.                             return o(this, function(o) {
  785.                                 switch (o.label) {
  786.                                     case 0:
  787.                                         return [4, this.iidModel.getToken(this.messagingSenderId, t, n)];
  788.                                     case 1:
  789.                                         return r = o.sent(), i = {
  790.                                             swScope: e.scope,
  791.                                             vapidKey: n,
  792.                                             fcmSenderId: this.messagingSenderId,
  793.                                             fcmToken: r.token,
  794.                                             fcmPushSet: r.pushSet,
  795.                                             createTime: Date.now(),
  796.                                             endpoint: t.endpoint,
  797.                                             auth: t.getKey("auth"),
  798.                                             p256dh: t.getKey("p256dh")
  799.                                         }, [4, this.tokenDetailsModel.saveTokenDetails(i)];
  800.                                     case 2:
  801.                                         return o.sent(), [4, this.vapidDetailsModel.saveVapidDetails(e.scope, n)];
  802.                                     case 3:
  803.                                         return o.sent(), [2, r.token]
  804.                                 }
  805.                             })
  806.                         })
  807.                     }, e.prototype.deleteToken = function(e) {
  808.                         return i(this, void 0, void 0, function() {
  809.                             var t, n;
  810.                             return o(this, function(r) {
  811.                                 switch (r.label) {
  812.                                     case 0:
  813.                                         return [4, this.deleteTokenFromDB(e)];
  814.                                     case 1:
  815.                                         return r.sent(), [4, this.getSWRegistration_()];
  816.                                     case 2:
  817.                                         return (t = r.sent()) ? [4, t.pushManager.getSubscription()] : [3, 4];
  818.                                     case 3:
  819.                                         if (n = r.sent()) return [2, n.unsubscribe()];
  820.                                         r.label = 4;
  821.                                     case 4:
  822.                                         return [2, !0]
  823.                                 }
  824.                             })
  825.                         })
  826.                     }, e.prototype.deleteTokenFromDB = function(e) {
  827.                         return i(this, void 0, void 0, function() {
  828.                             var t;
  829.                             return o(this, function(n) {
  830.                                 switch (n.label) {
  831.                                     case 0:
  832.                                         return [4, this.tokenDetailsModel.deleteToken(e)];
  833.                                     case 1:
  834.                                         return t = n.sent(), [4, this.iidModel.deleteToken(t.fcmSenderId, t.fcmToken, t.fcmPushSet)];
  835.                                     case 2:
  836.                                         return n.sent(), [2]
  837.                                 }
  838.                             })
  839.                         })
  840.                     }, e.prototype.getPushSubscription = function(e, t) {
  841.                         return e.pushManager.getSubscription().then(function(n) {
  842.                             return n || e.pushManager.subscribe({
  843.                                 userVisibleOnly: !0,
  844.                                 applicationServerKey: t
  845.                             })
  846.                         })
  847.                     }, e.prototype.requestPermission = function() {
  848.                         throw v.create(E.AVAILABLE_IN_WINDOW)
  849.                     }, e.prototype.useServiceWorker = function(e) {
  850.                         throw v.create(E.AVAILABLE_IN_WINDOW)
  851.                     }, e.prototype.usePublicVapidKey = function(e) {
  852.                         throw v.create(E.AVAILABLE_IN_WINDOW)
  853.                     }, e.prototype.onMessage = function(e, t, n) {
  854.                         throw v.create(E.AVAILABLE_IN_WINDOW)
  855.                     }, e.prototype.onTokenRefresh = function(e, t, n) {
  856.                         throw v.create(E.AVAILABLE_IN_WINDOW)
  857.                     }, e.prototype.setBackgroundMessageHandler = function(e) {
  858.                         throw v.create(E.AVAILABLE_IN_SW)
  859.                     }, e.prototype.delete = function() {
  860.                         return i(this, void 0, void 0, function() {
  861.                             return o(this, function(e) {
  862.                                 switch (e.label) {
  863.                                     case 0:
  864.                                         return [4, Promise.all([this.tokenDetailsModel.closeDatabase(), this.vapidDetailsModel.closeDatabase()])];
  865.                                     case 1:
  866.                                         return e.sent(), [2]
  867.                                 }
  868.                             })
  869.                         })
  870.                     }, e.prototype.getNotificationPermission_ = function() {
  871.                         return Notification.permission
  872.                     }, e.prototype.getTokenDetailsModel = function() {
  873.                         return this.tokenDetailsModel
  874.                     }, e.prototype.getVapidDetailsModel = function() {
  875.                         return this.vapidDetailsModel
  876.                     }, e.prototype.getIidModel = function() {
  877.                         return this.iidModel
  878.                     }, e
  879.                 }();
  880.             var R = function(e) {
  881.                 function t(t) {
  882.                     var n = e.call(this, t) || this;
  883.                     return n.bgMessageHandler = null, self.addEventListener("push", function(e) {
  884.                         n.onPush(e)
  885.                     }), self.addEventListener("pushsubscriptionchange", function(e) {
  886.                         n.onSubChange(e)
  887.                     }), self.addEventListener("notificationclick", function(e) {
  888.                         n.onNotificationClick(e)
  889.                     }), n
  890.                 }
  891.                 return n(t, e), t.prototype.onPush = function(e) {
  892.                     e.waitUntil(this.onPush_(e))
  893.                 }, t.prototype.onSubChange = function(e) {
  894.                     e.waitUntil(this.onSubChange_(e))
  895.                 }, t.prototype.onNotificationClick = function(e) {
  896.                     e.waitUntil(this.onNotificationClick_(e))
  897.                 }, t.prototype.onPush_ = function(e) {
  898.                     return i(this, void 0, void 0, function() {
  899.                         var t, n, r, i, s, a;
  900.                         return o(this, function(o) {
  901.                             switch (o.label) {
  902.                                 case 0:
  903.                                     if (!e.data) return [2];
  904.                                     try {
  905.                                         t = e.data.json()
  906.                                     } catch (e) {
  907.                                         return [2]
  908.                                     }
  909.                                     return [4, this.hasVisibleClients_()];
  910.                                 case 1:
  911.                                     return o.sent() ? [2, this.sendMessageToWindowClients_(t)] : (n = this.getNotificationData_(t)) ? (r = n.title || "", [4, this.getSWRegistration_()]) : [3, 3];
  912.                                 case 2:
  913.                                     return i = o.sent(), s = n.actions, a = Notification.maxActions, s && a && s.length > a && console.warn("This browser only supports " + a + " actions.The remaining actions will not be displayed."), [2, i.showNotification(r, n)];
  914.                                 case 3:
  915.                                     return this.bgMessageHandler ? [4, this.bgMessageHandler(t)] : [3, 5];
  916.                                 case 4:
  917.                                     return o.sent(), [2];
  918.                                 case 5:
  919.                                     return [2]
  920.                             }
  921.                         })
  922.                     })
  923.                 }, t.prototype.onSubChange_ = function(e) {
  924.                     return i(this, void 0, void 0, function() {
  925.                         var e, t, n, r;
  926.                         return o(this, function(i) {
  927.                             switch (i.label) {
  928.                                 case 0:
  929.                                     return i.trys.push([0, 2, , 3]), [4, this.getSWRegistration_()];
  930.                                 case 1:
  931.                                     return e = i.sent(), [3, 3];
  932.                                 case 2:
  933.                                     throw t = i.sent(), v.create(E.UNABLE_TO_RESUBSCRIBE, {
  934.                                         message: t
  935.                                     });
  936.                                 case 3:
  937.                                     return i.trys.push([3, 5, , 8]), [4, e.pushManager.getSubscription()];
  938.                                 case 4:
  939.                                     return i.sent(), [3, 8];
  940.                                 case 5:
  941.                                     return n = i.sent(), [4, this.getTokenDetailsModel().getTokenDetailsFromSWScope(e.scope)];
  942.                                 case 6:
  943.                                     if (!(r = i.sent())) throw n;
  944.                                     return [4, this.deleteToken(r.fcmToken)];
  945.                                 case 7:
  946.                                     throw i.sent(), n;
  947.                                 case 8:
  948.                                     return [2]
  949.                             }
  950.                         })
  951.                     })
  952.                 }, t.prototype.onNotificationClick_ = function(e) {
  953.                     return i(this, void 0, void 0, function() {
  954.                         var t, n, r, i;
  955.                         return o(this, function(o) {
  956.                             switch (o.label) {
  957.                                 case 0:
  958.                                     return e.notification && e.notification.data && e.notification.data.FCM_MSG ? e.action ? [2] : (e.stopImmediatePropagation(), e.notification.close(), (t = e.notification.data.FCM_MSG).notification && (n = t.fcmOptions && t.fcmOptions.link || t.notification.click_action) ? [4, this.getWindowClient_(n)] : [2]) : [2];
  959.                                 case 1:
  960.                                     return (r = o.sent()) ? [3, 3] : [4, self.clients.openWindow(n)];
  961.                                 case 2:
  962.                                     return r = o.sent(), [3, 5];
  963.                                 case 3:
  964.                                     return [4, r.focus()];
  965.                                 case 4:
  966.                                     r = o.sent(), o.label = 5;
  967.                                 case 5:
  968.                                     return r ? (delete t.notification, delete t.fcmOptions, i = L(_.NOTIFICATION_CLICKED, t), [2, this.attemptToMessageClient_(r, i)]) : [2]
  969.                             }
  970.                         })
  971.                     })
  972.                 }, t.prototype.getNotificationData_ = function(e) {
  973.                     if (e && "object" == typeof e.notification) {
  974.                         var t, n = r({}, e.notification);
  975.                         return n.data = r({}, e.notification.data, ((t = {}).FCM_MSG = e, t)), n
  976.                     }
  977.                 }, t.prototype.setBackgroundMessageHandler = function(e) {
  978.                     if (!e || "function" != typeof e) throw v.create(E.BG_HANDLER_FUNCTION_EXPECTED);
  979.                     this.bgMessageHandler = e
  980.                 }, t.prototype.getWindowClient_ = function(e) {
  981.                     return i(this, void 0, void 0, function() {
  982.                         var t, n, r, i;
  983.                         return o(this, function(o) {
  984.                             switch (o.label) {
  985.                                 case 0:
  986.                                     return t = new URL(e, self.location.href).href, [4, U()];
  987.                                 case 1:
  988.                                     for (n = o.sent(), r = null, i = 0; i < n.length; i++)
  989.                                         if (new URL(n[i].url, self.location.href).href === t) {
  990.                                             r = n[i];
  991.                                             break
  992.                                         }
  993.                                     return [2, r]
  994.                             }
  995.                         })
  996.                     })
  997.                 }, t.prototype.attemptToMessageClient_ = function(e, t) {
  998.                     return i(this, void 0, void 0, function() {
  999.                         return o(this, function(n) {
  1000.                             if (!e) throw v.create(E.NO_WINDOW_CLIENT_TO_MSG);
  1001.                             return e.postMessage(t), [2]
  1002.                         })
  1003.                     })
  1004.                 }, t.prototype.hasVisibleClients_ = function() {
  1005.                     return i(this, void 0, void 0, function() {
  1006.                         return o(this, function(e) {
  1007.                             switch (e.label) {
  1008.                                 case 0:
  1009.                                     return [4, U()];
  1010.                                 case 1:
  1011.                                     return [2, e.sent().some(function(e) {
  1012.                                         return "visible" === e.visibilityState
  1013.                                     })]
  1014.                             }
  1015.                         })
  1016.                     })
  1017.                 }, t.prototype.sendMessageToWindowClients_ = function(e) {
  1018.                     return i(this, void 0, void 0, function() {
  1019.                         var t, n, r = this;
  1020.                         return o(this, function(i) {
  1021.                             switch (i.label) {
  1022.                                 case 0:
  1023.                                     return [4, U()];
  1024.                                 case 1:
  1025.                                     return t = i.sent(), n = L(_.PUSH_MSG_RECEIVED, e), [4, Promise.all(t.map(function(e) {
  1026.                                         return r.attemptToMessageClient_(e, n)
  1027.                                     }))];
  1028.                                 case 2:
  1029.                                     return i.sent(), [2]
  1030.                             }
  1031.                         })
  1032.                     })
  1033.                 }, t.prototype.getSWRegistration_ = function() {
  1034.                     return i(this, void 0, void 0, function() {
  1035.                         return o(this, function(e) {
  1036.                             return [2, self.registration]
  1037.                         })
  1038.                     })
  1039.                 }, t.prototype.getPublicVapidKey_ = function() {
  1040.                     return i(this, void 0, void 0, function() {
  1041.                         var e, t;
  1042.                         return o(this, function(n) {
  1043.                             switch (n.label) {
  1044.                                 case 0:
  1045.                                     return [4, this.getSWRegistration_()];
  1046.                                 case 1:
  1047.                                     if (!(e = n.sent())) throw v.create(E.SW_REGISTRATION_EXPECTED);
  1048.                                     return [4, this.getVapidDetailsModel().getVapidFromSWScope(e.scope)];
  1049.                                 case 2:
  1050.                                     return null == (t = n.sent()) ? [2, g] : [2, t]
  1051.                             }
  1052.                         })
  1053.                     })
  1054.                 }, t
  1055.             }(B);
  1056.  
  1057.             function U() {
  1058.                 return self.clients.matchAll({
  1059.                     type: "window",
  1060.                     includeUncontrolled: !0
  1061.                 })
  1062.             }
  1063.  
  1064.             function L(e, t) {
  1065.                 return (n = {})[l.TYPE_OF_MSG] = e, n[l.DATA] = t, n;
  1066.                 var n
  1067.             }
  1068.             var K, M = function(e) {
  1069.                 function t(t) {
  1070.                     var n = e.call(this, t) || this;
  1071.                     return n.registrationToUse = null, n.publicVapidKeyToUse = null, n.manifestCheckPromise = null, n.messageObserver = null, n.tokenRefreshObserver = null, n.onMessageInternal = h(function(e) {
  1072.                         n.messageObserver = e
  1073.                     }), n.onTokenRefreshInternal = h(function(e) {
  1074.                         n.tokenRefreshObserver = e
  1075.                     }), n.setupSWMessageListener_(), n
  1076.                 }
  1077.                 return n(t, e), t.prototype.getToken = function() {
  1078.                     return i(this, void 0, void 0, function() {
  1079.                         return o(this, function(t) {
  1080.                             switch (t.label) {
  1081.                                 case 0:
  1082.                                     return this.manifestCheckPromise || (this.manifestCheckPromise = function() {
  1083.                                         return i(this, void 0, void 0, function() {
  1084.                                             var e, t;
  1085.                                             return o(this, function(n) {
  1086.                                                 switch (n.label) {
  1087.                                                     case 0:
  1088.                                                         if (!(e = document.querySelector('link[rel="manifest"]'))) return [2];
  1089.                                                         n.label = 1;
  1090.                                                     case 1:
  1091.                                                         return n.trys.push([1, 4, , 5]), [4, fetch(e.href)];
  1092.                                                     case 2:
  1093.                                                         return [4, n.sent().json()];
  1094.                                                     case 3:
  1095.                                                         return t = n.sent(), [3, 5];
  1096.                                                     case 4:
  1097.                                                         return n.sent(), [2];
  1098.                                                     case 5:
  1099.                                                         if (!t || !t.gcm_sender_id) return [2];
  1100.                                                         if ("103953800507" !== t.gcm_sender_id) throw v.create(E.INCORRECT_GCM_SENDER_ID);
  1101.                                                         return [2]
  1102.                                                 }
  1103.                                             })
  1104.                                         })
  1105.                                     }()), [4, this.manifestCheckPromise];
  1106.                                 case 1:
  1107.                                     return t.sent(), [2, e.prototype.getToken.call(this)]
  1108.                             }
  1109.                         })
  1110.                     })
  1111.                 }, t.prototype.requestPermission = function() {
  1112.                     return i(this, void 0, void 0, function() {
  1113.                         var e;
  1114.                         return o(this, function(t) {
  1115.                             switch (t.label) {
  1116.                                 case 0:
  1117.                                     return "granted" === this.getNotificationPermission_() ? [2] : [4, Notification.requestPermission()];
  1118.                                 case 1:
  1119.                                     if ("granted" === (e = t.sent())) return [2];
  1120.                                     throw "denied" === e ? v.create(E.PERMISSION_BLOCKED) : v.create(E.PERMISSION_DEFAULT)
  1121.                             }
  1122.                         })
  1123.                     })
  1124.                 }, t.prototype.useServiceWorker = function(e) {
  1125.                     if (!(e instanceof ServiceWorkerRegistration)) throw v.create(E.SW_REGISTRATION_EXPECTED);
  1126.                     if (null != this.registrationToUse) throw v.create(E.USE_SW_BEFORE_GET_TOKEN);
  1127.                     this.registrationToUse = e
  1128.                 }, t.prototype.usePublicVapidKey = function(e) {
  1129.                     if ("string" != typeof e) throw v.create(E.INVALID_PUBLIC_VAPID_KEY);
  1130.                     if (null != this.publicVapidKeyToUse) throw v.create(E.USE_PUBLIC_KEY_BEFORE_GET_TOKEN);
  1131.                     var t = I(e);
  1132.                     if (65 !== t.length) throw v.create(E.PUBLIC_KEY_DECRYPTION_FAILED);
  1133.                     this.publicVapidKeyToUse = t
  1134.                 }, t.prototype.onMessage = function(e, t, n) {
  1135.                     return "function" == typeof e ? this.onMessageInternal(e, t, n) : this.onMessageInternal(e)
  1136.                 }, t.prototype.onTokenRefresh = function(e, t, n) {
  1137.                     return "function" == typeof e ? this.onTokenRefreshInternal(e, t, n) : this.onTokenRefreshInternal(e)
  1138.                 }, t.prototype.waitForRegistrationToActivate_ = function(e) {
  1139.                     var t = e.installing || e.waiting || e.active;
  1140.                     return new Promise(function(n, r) {
  1141.                         if (t)
  1142.                             if ("activated" !== t.state)
  1143.                                 if ("redundant" !== t.state) {
  1144.                                     var i = function() {
  1145.                                         if ("activated" === t.state) n(e);
  1146.                                         else {
  1147.                                             if ("redundant" !== t.state) return;
  1148.                                             r(v.create(E.SW_REG_REDUNDANT))
  1149.                                         }
  1150.                                         t.removeEventListener("statechange", i)
  1151.                                     };
  1152.                                     t.addEventListener("statechange", i)
  1153.                                 } else r(v.create(E.SW_REG_REDUNDANT));
  1154.                         else n(e);
  1155.                         else r(v.create(E.NO_SW_IN_REG))
  1156.                     })
  1157.                 }, t.prototype.getSWRegistration_ = function() {
  1158.                     var e = this;
  1159.                     return this.registrationToUse ? this.waitForRegistrationToActivate_(this.registrationToUse) : (this.registrationToUse = null, navigator.serviceWorker.register("/firebase-messaging-sw.js", {
  1160.                         scope: "/firebase-cloud-messaging-push-scope"
  1161.                     }).catch(function(e) {
  1162.                         throw v.create(E.FAILED_DEFAULT_REGISTRATION, {
  1163.                             browserErrorMessage: e.message
  1164.                         })
  1165.                     }).then(function(t) {
  1166.                         return e.waitForRegistrationToActivate_(t).then(function() {
  1167.                             return e.registrationToUse = t, t.update(), t
  1168.                         })
  1169.                     }))
  1170.                 }, t.prototype.getPublicVapidKey_ = function() {
  1171.                     return i(this, void 0, void 0, function() {
  1172.                         return o(this, function(e) {
  1173.                             return this.publicVapidKeyToUse ? [2, this.publicVapidKeyToUse] : [2, g]
  1174.                         })
  1175.                     })
  1176.                 }, t.prototype.setupSWMessageListener_ = function() {
  1177.                     var e = this;
  1178.                     navigator.serviceWorker.addEventListener("message", function(t) {
  1179.                         if (t.data && t.data[l.TYPE_OF_MSG]) {
  1180.                             var n = t.data;
  1181.                             switch (n[l.TYPE_OF_MSG]) {
  1182.                                 case _.PUSH_MSG_RECEIVED:
  1183.                                 case _.NOTIFICATION_CLICKED:
  1184.                                     var r = n[l.DATA];
  1185.                                     e.messageObserver && e.messageObserver.next(r)
  1186.                             }
  1187.                         }
  1188.                     }, !1)
  1189.                 }, t
  1190.             }(B);
  1191.  
  1192.             function F() {
  1193.                 return self && "ServiceWorkerGlobalScope" in self ? "PushManager" in self && "Notification" in self && ServiceWorkerRegistration.prototype.hasOwnProperty("showNotification") && PushSubscription.prototype.hasOwnProperty("getKey") : navigator.cookieEnabled && "serviceWorker" in navigator && "PushManager" in window && "Notification" in window && "fetch" in window && ServiceWorkerRegistration.prototype.hasOwnProperty("showNotification") && PushSubscription.prototype.hasOwnProperty("getKey")
  1194.             }
  1195.             K = {
  1196.                 isSupported: F
  1197.             }, e.INTERNAL.registerService("messaging", function(e) {
  1198.                 if (!F()) throw v.create(E.UNSUPPORTED_BROWSER);
  1199.                 return self && "ServiceWorkerGlobalScope" in self ? new R(e) : new M(e)
  1200.             }, K)
  1201.         }).apply(this, arguments)
  1202.     } catch (e) {
  1203.         throw console.error(e), new Error("Cannot instantiate firebase-messaging - be sure to load firebase-app.js first.")
  1204.     }
  1205. });
  1206. //# sourceMappingURL=firebase-messaging.js.map

Raw Paste


Login or Register to edit or fork this paste. It's free.