diff --git a/dist/index.js b/dist/index.js new file mode 100644 index 0000000..cba38ce --- /dev/null +++ b/dist/index.js @@ -0,0 +1,1083 @@ +var se = Object.defineProperty; +var ce = (t, r, e) => r in t ? se(t, r, { enumerable: !0, configurable: !0, writable: !0, value: e }) : t[r] = e; +var m = (t, r, e) => (ce(t, typeof r != "symbol" ? r + "" : r, e), e); +function ue(t) { + return t && t.__esModule && Object.prototype.hasOwnProperty.call(t, "default") ? t.default : t; +} +var M = { exports: {} }, A, z; +function ae() { + if (z) + return A; + z = 1; + var t = 1e3, r = t * 60, e = r * 60, n = e * 24, o = n * 7, s = n * 365.25; + A = function(i, c) { + c = c || {}; + var u = typeof i; + if (u === "string" && i.length > 0) + return a(i); + if (u === "number" && isFinite(i)) + return c.long ? l(i) : f(i); + throw new Error( + "val is not a non-empty string or a valid number. val=" + JSON.stringify(i) + ); + }; + function a(i) { + if (i = String(i), !(i.length > 100)) { + var c = /^(-?(?:\d+)?\.?\d+) *(milliseconds?|msecs?|ms|seconds?|secs?|s|minutes?|mins?|m|hours?|hrs?|h|days?|d|weeks?|w|years?|yrs?|y)?$/i.exec( + i + ); + if (c) { + var u = parseFloat(c[1]), d = (c[2] || "ms").toLowerCase(); + switch (d) { + case "years": + case "year": + case "yrs": + case "yr": + case "y": + return u * s; + case "weeks": + case "week": + case "w": + return u * o; + case "days": + case "day": + case "d": + return u * n; + case "hours": + case "hour": + case "hrs": + case "hr": + case "h": + return u * e; + case "minutes": + case "minute": + case "mins": + case "min": + case "m": + return u * r; + case "seconds": + case "second": + case "secs": + case "sec": + case "s": + return u * t; + case "milliseconds": + case "millisecond": + case "msecs": + case "msec": + case "ms": + return u; + default: + return; + } + } + } + } + function f(i) { + var c = Math.abs(i); + return c >= n ? Math.round(i / n) + "d" : c >= e ? Math.round(i / e) + "h" : c >= r ? Math.round(i / r) + "m" : c >= t ? Math.round(i / t) + "s" : i + "ms"; + } + function l(i) { + var c = Math.abs(i); + return c >= n ? p(i, c, n, "day") : c >= e ? p(i, c, e, "hour") : c >= r ? p(i, c, r, "minute") : c >= t ? p(i, c, t, "second") : i + " ms"; + } + function p(i, c, u, d) { + var g = c >= u * 1.5; + return Math.round(i / u) + " " + d + (g ? "s" : ""); + } + return A; +} +function le(t) { + e.debug = e, e.default = e, e.coerce = l, e.disable = s, e.enable = o, e.enabled = a, e.humanize = ae(), e.destroy = p, Object.keys(t).forEach((i) => { + e[i] = t[i]; + }), e.names = [], e.skips = [], e.formatters = {}; + function r(i) { + let c = 0; + for (let u = 0; u < i.length; u++) + c = (c << 5) - c + i.charCodeAt(u), c |= 0; + return e.colors[Math.abs(c) % e.colors.length]; + } + e.selectColor = r; + function e(i) { + let c, u = null, d, g; + function h(...b) { + if (!h.enabled) + return; + const C = h, w = Number(/* @__PURE__ */ new Date()), ne = w - (c || w); + C.diff = ne, C.prev = c, C.curr = w, c = w, b[0] = e.coerce(b[0]), typeof b[0] != "string" && b.unshift("%O"); + let F = 0; + b[0] = b[0].replace(/%([a-zA-Z%])/g, (O, oe) => { + if (O === "%%") + return "%"; + F++; + const Y = e.formatters[oe]; + if (typeof Y == "function") { + const ie = b[F]; + O = Y.call(C, ie), b.splice(F, 1), F--; + } + return O; + }), e.formatArgs.call(C, b), (C.log || e.log).apply(C, b); + } + return h.namespace = i, h.useColors = e.useColors(), h.color = e.selectColor(i), h.extend = n, h.destroy = e.destroy, Object.defineProperty(h, "enabled", { + enumerable: !0, + configurable: !1, + get: () => u !== null ? u : (d !== e.namespaces && (d = e.namespaces, g = e.enabled(i)), g), + set: (b) => { + u = b; + } + }), typeof e.init == "function" && e.init(h), h; + } + function n(i, c) { + const u = e(this.namespace + (typeof c > "u" ? ":" : c) + i); + return u.log = this.log, u; + } + function o(i) { + e.save(i), e.namespaces = i, e.names = [], e.skips = []; + let c; + const u = (typeof i == "string" ? i : "").split(/[\s,]+/), d = u.length; + for (c = 0; c < d; c++) + u[c] && (i = u[c].replace(/\*/g, ".*?"), i[0] === "-" ? e.skips.push(new RegExp("^" + i.slice(1) + "$")) : e.names.push(new RegExp("^" + i + "$"))); + } + function s() { + const i = [ + ...e.names.map(f), + ...e.skips.map(f).map((c) => "-" + c) + ].join(","); + return e.enable(""), i; + } + function a(i) { + if (i[i.length - 1] === "*") + return !0; + let c, u; + for (c = 0, u = e.skips.length; c < u; c++) + if (e.skips[c].test(i)) + return !1; + for (c = 0, u = e.names.length; c < u; c++) + if (e.names[c].test(i)) + return !0; + return !1; + } + function f(i) { + return i.toString().substring(2, i.toString().length - 2).replace(/\.\*\?$/, "*"); + } + function l(i) { + return i instanceof Error ? i.stack || i.message : i; + } + function p() { + console.warn("Instance method `debug.destroy()` is deprecated and no longer does anything. It will be removed in the next major version of `debug`."); + } + return e.enable(e.load()), e; +} +var fe = le; +(function(t, r) { + r.formatArgs = n, r.save = o, r.load = s, r.useColors = e, r.storage = a(), r.destroy = (() => { + let l = !1; + return () => { + l || (l = !0, console.warn("Instance method `debug.destroy()` is deprecated and no longer does anything. It will be removed in the next major version of `debug`.")); + }; + })(), r.colors = [ + "#0000CC", + "#0000FF", + "#0033CC", + "#0033FF", + "#0066CC", + "#0066FF", + "#0099CC", + "#0099FF", + "#00CC00", + "#00CC33", + "#00CC66", + "#00CC99", + "#00CCCC", + "#00CCFF", + "#3300CC", + "#3300FF", + "#3333CC", + "#3333FF", + "#3366CC", + "#3366FF", + "#3399CC", + "#3399FF", + "#33CC00", + "#33CC33", + "#33CC66", + "#33CC99", + "#33CCCC", + "#33CCFF", + "#6600CC", + "#6600FF", + "#6633CC", + "#6633FF", + "#66CC00", + "#66CC33", + "#9900CC", + "#9900FF", + "#9933CC", + "#9933FF", + "#99CC00", + "#99CC33", + "#CC0000", + "#CC0033", + "#CC0066", + "#CC0099", + "#CC00CC", + "#CC00FF", + "#CC3300", + "#CC3333", + "#CC3366", + "#CC3399", + "#CC33CC", + "#CC33FF", + "#CC6600", + "#CC6633", + "#CC9900", + "#CC9933", + "#CCCC00", + "#CCCC33", + "#FF0000", + "#FF0033", + "#FF0066", + "#FF0099", + "#FF00CC", + "#FF00FF", + "#FF3300", + "#FF3333", + "#FF3366", + "#FF3399", + "#FF33CC", + "#FF33FF", + "#FF6600", + "#FF6633", + "#FF9900", + "#FF9933", + "#FFCC00", + "#FFCC33" + ]; + function e() { + return typeof window < "u" && window.process && (window.process.type === "renderer" || window.process.__nwjs) ? !0 : typeof navigator < "u" && navigator.userAgent && navigator.userAgent.toLowerCase().match(/(edge|trident)\/(\d+)/) ? !1 : typeof document < "u" && document.documentElement && document.documentElement.style && document.documentElement.style.WebkitAppearance || // Is firebug? http://stackoverflow.com/a/398120/376773 + typeof window < "u" && window.console && (window.console.firebug || window.console.exception && window.console.table) || // Is firefox >= v31? + // https://developer.mozilla.org/en-US/docs/Tools/Web_Console#Styling_messages + typeof navigator < "u" && navigator.userAgent && navigator.userAgent.toLowerCase().match(/firefox\/(\d+)/) && parseInt(RegExp.$1, 10) >= 31 || // Double check webkit in userAgent just in case we are in a worker + typeof navigator < "u" && navigator.userAgent && navigator.userAgent.toLowerCase().match(/applewebkit\/(\d+)/); + } + function n(l) { + if (l[0] = (this.useColors ? "%c" : "") + this.namespace + (this.useColors ? " %c" : " ") + l[0] + (this.useColors ? "%c " : " ") + "+" + t.exports.humanize(this.diff), !this.useColors) + return; + const p = "color: " + this.color; + l.splice(1, 0, p, "color: inherit"); + let i = 0, c = 0; + l[0].replace(/%[a-zA-Z%]/g, (u) => { + u !== "%%" && (i++, u === "%c" && (c = i)); + }), l.splice(c, 0, p); + } + r.log = console.debug || console.log || (() => { + }); + function o(l) { + try { + l ? r.storage.setItem("debug", l) : r.storage.removeItem("debug"); + } catch { + } + } + function s() { + let l; + try { + l = r.storage.getItem("debug"); + } catch { + } + return !l && typeof process < "u" && "env" in process && (l = process.env.DEBUG), l; + } + function a() { + try { + return localStorage; + } catch { + } + } + t.exports = fe(r); + const { formatters: f } = t.exports; + f.j = function(l) { + try { + return JSON.stringify(l); + } catch (p) { + return "[UnexpectedJSONParseError]: " + p.message; + } + }; +})(M, M.exports); +var he = M.exports; +const pe = /* @__PURE__ */ ue(he); +class y { + static debug(r) { + pe("cypress-signalr-mock")(r); + } + static info(r, e = void 0) { + console.info(this._prefix + r, e); + } + static warn(r) { + console.warn(this._prefix + r); + } + static error(r, e = !0) { + if (e) + throw new Error(this._prefix + r); + console.error(this._prefix + r); + } +} +m(y, "_prefix", "[Cypress-SignalR-Mock] - "); +var T = function(t, r) { + return T = Object.setPrototypeOf || { __proto__: [] } instanceof Array && function(e, n) { + e.__proto__ = n; + } || function(e, n) { + for (var o in n) + Object.prototype.hasOwnProperty.call(n, o) && (e[o] = n[o]); + }, T(t, r); +}; +function x(t, r) { + if (typeof r != "function" && r !== null) + throw new TypeError("Class extends value " + String(r) + " is not a constructor or null"); + T(t, r); + function e() { + this.constructor = t; + } + t.prototype = r === null ? Object.create(r) : (e.prototype = r.prototype, new e()); +} +function $(t) { + var r = typeof Symbol == "function" && Symbol.iterator, e = r && t[r], n = 0; + if (e) + return e.call(t); + if (t && typeof t.length == "number") + return { + next: function() { + return t && n >= t.length && (t = void 0), { value: t && t[n++], done: !t }; + } + }; + throw new TypeError(r ? "Object is not iterable." : "Symbol.iterator is not defined."); +} +function E(t, r) { + var e = typeof Symbol == "function" && t[Symbol.iterator]; + if (!e) + return t; + var n = e.call(t), o, s = [], a; + try { + for (; (r === void 0 || r-- > 0) && !(o = n.next()).done; ) + s.push(o.value); + } catch (f) { + a = { error: f }; + } finally { + try { + o && !o.done && (e = n.return) && e.call(n); + } finally { + if (a) + throw a.error; + } + } + return s; +} +function k(t, r, e) { + if (e || arguments.length === 2) + for (var n = 0, o = r.length, s; n < o; n++) + (s || !(n in r)) && (s || (s = Array.prototype.slice.call(r, 0, n)), s[n] = r[n]); + return t.concat(s || Array.prototype.slice.call(r)); +} +function v(t) { + return typeof t == "function"; +} +function W(t) { + var r = function(n) { + Error.call(n), n.stack = new Error().stack; + }, e = t(r); + return e.prototype = Object.create(Error.prototype), e.prototype.constructor = e, e; +} +var D = W(function(t) { + return function(e) { + t(this), this.message = e ? e.length + ` errors occurred during unsubscription: +` + e.map(function(n, o) { + return o + 1 + ") " + n.toString(); + }).join(` + `) : "", this.name = "UnsubscriptionError", this.errors = e; + }; +}); +function R(t, r) { + if (t) { + var e = t.indexOf(r); + 0 <= e && t.splice(e, 1); + } +} +var P = function() { + function t(r) { + this.initialTeardown = r, this.closed = !1, this._parentage = null, this._finalizers = null; + } + return t.prototype.unsubscribe = function() { + var r, e, n, o, s; + if (!this.closed) { + this.closed = !0; + var a = this._parentage; + if (a) + if (this._parentage = null, Array.isArray(a)) + try { + for (var f = $(a), l = f.next(); !l.done; l = f.next()) { + var p = l.value; + p.remove(this); + } + } catch (h) { + r = { error: h }; + } finally { + try { + l && !l.done && (e = f.return) && e.call(f); + } finally { + if (r) + throw r.error; + } + } + else + a.remove(this); + var i = this.initialTeardown; + if (v(i)) + try { + i(); + } catch (h) { + s = h instanceof D ? h.errors : [h]; + } + var c = this._finalizers; + if (c) { + this._finalizers = null; + try { + for (var u = $(c), d = u.next(); !d.done; d = u.next()) { + var g = d.value; + try { + B(g); + } catch (h) { + s = s ?? [], h instanceof D ? s = k(k([], E(s)), E(h.errors)) : s.push(h); + } + } + } catch (h) { + n = { error: h }; + } finally { + try { + d && !d.done && (o = u.return) && o.call(u); + } finally { + if (n) + throw n.error; + } + } + } + if (s) + throw new D(s); + } + }, t.prototype.add = function(r) { + var e; + if (r && r !== this) + if (this.closed) + B(r); + else { + if (r instanceof t) { + if (r.closed || r._hasParent(this)) + return; + r._addParent(this); + } + (this._finalizers = (e = this._finalizers) !== null && e !== void 0 ? e : []).push(r); + } + }, t.prototype._hasParent = function(r) { + var e = this._parentage; + return e === r || Array.isArray(e) && e.includes(r); + }, t.prototype._addParent = function(r) { + var e = this._parentage; + this._parentage = Array.isArray(e) ? (e.push(r), e) : e ? [e, r] : r; + }, t.prototype._removeParent = function(r) { + var e = this._parentage; + e === r ? this._parentage = null : Array.isArray(e) && R(e, r); + }, t.prototype.remove = function(r) { + var e = this._finalizers; + e && R(e, r), r instanceof t && r._removeParent(this); + }, t.EMPTY = function() { + var r = new t(); + return r.closed = !0, r; + }(), t; +}(), K = P.EMPTY; +function Q(t) { + return t instanceof P || t && "closed" in t && v(t.remove) && v(t.add) && v(t.unsubscribe); +} +function B(t) { + v(t) ? t() : t.unsubscribe(); +} +var X = { + onUnhandledError: null, + onStoppedNotification: null, + Promise: void 0, + useDeprecatedSynchronousErrorHandling: !1, + useDeprecatedNextContext: !1 +}, U = { + setTimeout: function(t, r) { + for (var e = [], n = 2; n < arguments.length; n++) + e[n - 2] = arguments[n]; + var o = U.delegate; + return o != null && o.setTimeout ? o.setTimeout.apply(o, k([t, r], E(e))) : setTimeout.apply(void 0, k([t, r], E(e))); + }, + clearTimeout: function(t) { + var r = U.delegate; + return ((r == null ? void 0 : r.clearTimeout) || clearTimeout)(t); + }, + delegate: void 0 +}; +function de(t) { + U.setTimeout(function() { + throw t; + }); +} +function J() { +} +function S(t) { + t(); +} +var N = function(t) { + x(r, t); + function r(e) { + var n = t.call(this) || this; + return n.isStopped = !1, e ? (n.destination = e, Q(e) && e.add(n)) : n.destination = Ce, n; + } + return r.create = function(e, n, o) { + return new L(e, n, o); + }, r.prototype.next = function(e) { + this.isStopped || this._next(e); + }, r.prototype.error = function(e) { + this.isStopped || (this.isStopped = !0, this._error(e)); + }, r.prototype.complete = function() { + this.isStopped || (this.isStopped = !0, this._complete()); + }, r.prototype.unsubscribe = function() { + this.closed || (this.isStopped = !0, t.prototype.unsubscribe.call(this), this.destination = null); + }, r.prototype._next = function(e) { + this.destination.next(e); + }, r.prototype._error = function(e) { + try { + this.destination.error(e); + } finally { + this.unsubscribe(); + } + }, r.prototype._complete = function() { + try { + this.destination.complete(); + } finally { + this.unsubscribe(); + } + }, r; +}(P), be = Function.prototype.bind; +function I(t, r) { + return be.call(t, r); +} +var ye = function() { + function t(r) { + this.partialObserver = r; + } + return t.prototype.next = function(r) { + var e = this.partialObserver; + if (e.next) + try { + e.next(r); + } catch (n) { + _(n); + } + }, t.prototype.error = function(r) { + var e = this.partialObserver; + if (e.error) + try { + e.error(r); + } catch (n) { + _(n); + } + else + _(r); + }, t.prototype.complete = function() { + var r = this.partialObserver; + if (r.complete) + try { + r.complete(); + } catch (e) { + _(e); + } + }, t; +}(), L = function(t) { + x(r, t); + function r(e, n, o) { + var s = t.call(this) || this, a; + if (v(e) || !e) + a = { + next: e ?? void 0, + error: n ?? void 0, + complete: o ?? void 0 + }; + else { + var f; + s && X.useDeprecatedNextContext ? (f = Object.create(e), f.unsubscribe = function() { + return s.unsubscribe(); + }, a = { + next: e.next && I(e.next, f), + error: e.error && I(e.error, f), + complete: e.complete && I(e.complete, f) + }) : a = e; + } + return s.destination = new ye(a), s; + } + return r; +}(N); +function _(t) { + de(t); +} +function ve(t) { + throw t; +} +var Ce = { + closed: !0, + next: J, + error: ve, + complete: J +}, ge = function() { + return typeof Symbol == "function" && Symbol.observable || "@@observable"; +}(); +function me(t) { + return t; +} +function we(t) { + return t.length === 0 ? me : t.length === 1 ? t[0] : function(e) { + return t.reduce(function(n, o) { + return o(n); + }, e); + }; +} +var q = function() { + function t(r) { + r && (this._subscribe = r); + } + return t.prototype.lift = function(r) { + var e = new t(); + return e.source = this, e.operator = r, e; + }, t.prototype.subscribe = function(r, e, n) { + var o = this, s = _e(r) ? r : new L(r, e, n); + return S(function() { + var a = o, f = a.operator, l = a.source; + s.add(f ? f.call(s, l) : l ? o._subscribe(s) : o._trySubscribe(s)); + }), s; + }, t.prototype._trySubscribe = function(r) { + try { + return this._subscribe(r); + } catch (e) { + r.error(e); + } + }, t.prototype.forEach = function(r, e) { + var n = this; + return e = Z(e), new e(function(o, s) { + var a = new L({ + next: function(f) { + try { + r(f); + } catch (l) { + s(l), a.unsubscribe(); + } + }, + error: s, + complete: o + }); + n.subscribe(a); + }); + }, t.prototype._subscribe = function(r) { + var e; + return (e = this.source) === null || e === void 0 ? void 0 : e.subscribe(r); + }, t.prototype[ge] = function() { + return this; + }, t.prototype.pipe = function() { + for (var r = [], e = 0; e < arguments.length; e++) + r[e] = arguments[e]; + return we(r)(this); + }, t.prototype.toPromise = function(r) { + var e = this; + return r = Z(r), new r(function(n, o) { + var s; + e.subscribe(function(a) { + return s = a; + }, function(a) { + return o(a); + }, function() { + return n(s); + }); + }); + }, t.create = function(r) { + return new t(r); + }, t; +}(); +function Z(t) { + var r; + return (r = t ?? X.Promise) !== null && r !== void 0 ? r : Promise; +} +function Fe(t) { + return t && v(t.next) && v(t.error) && v(t.complete); +} +function _e(t) { + return t && t instanceof N || Fe(t) && Q(t); +} +var Se = W(function(t) { + return function() { + t(this), this.name = "ObjectUnsubscribedError", this.message = "object unsubscribed"; + }; +}), H = function(t) { + x(r, t); + function r() { + var e = t.call(this) || this; + return e.closed = !1, e.currentObservers = null, e.observers = [], e.isStopped = !1, e.hasError = !1, e.thrownError = null, e; + } + return r.prototype.lift = function(e) { + var n = new G(this, this); + return n.operator = e, n; + }, r.prototype._throwIfClosed = function() { + if (this.closed) + throw new Se(); + }, r.prototype.next = function(e) { + var n = this; + S(function() { + var o, s; + if (n._throwIfClosed(), !n.isStopped) { + n.currentObservers || (n.currentObservers = Array.from(n.observers)); + try { + for (var a = $(n.currentObservers), f = a.next(); !f.done; f = a.next()) { + var l = f.value; + l.next(e); + } + } catch (p) { + o = { error: p }; + } finally { + try { + f && !f.done && (s = a.return) && s.call(a); + } finally { + if (o) + throw o.error; + } + } + } + }); + }, r.prototype.error = function(e) { + var n = this; + S(function() { + if (n._throwIfClosed(), !n.isStopped) { + n.hasError = n.isStopped = !0, n.thrownError = e; + for (var o = n.observers; o.length; ) + o.shift().error(e); + } + }); + }, r.prototype.complete = function() { + var e = this; + S(function() { + if (e._throwIfClosed(), !e.isStopped) { + e.isStopped = !0; + for (var n = e.observers; n.length; ) + n.shift().complete(); + } + }); + }, r.prototype.unsubscribe = function() { + this.isStopped = this.closed = !0, this.observers = this.currentObservers = null; + }, Object.defineProperty(r.prototype, "observed", { + get: function() { + var e; + return ((e = this.observers) === null || e === void 0 ? void 0 : e.length) > 0; + }, + enumerable: !1, + configurable: !0 + }), r.prototype._trySubscribe = function(e) { + return this._throwIfClosed(), t.prototype._trySubscribe.call(this, e); + }, r.prototype._subscribe = function(e) { + return this._throwIfClosed(), this._checkFinalizedStatuses(e), this._innerSubscribe(e); + }, r.prototype._innerSubscribe = function(e) { + var n = this, o = this, s = o.hasError, a = o.isStopped, f = o.observers; + return s || a ? K : (this.currentObservers = null, f.push(e), new P(function() { + n.currentObservers = null, R(f, e); + })); + }, r.prototype._checkFinalizedStatuses = function(e) { + var n = this, o = n.hasError, s = n.thrownError, a = n.isStopped; + o ? e.error(s) : a && e.complete(); + }, r.prototype.asObservable = function() { + var e = new q(); + return e.source = this, e; + }, r.create = function(e, n) { + return new G(e, n); + }, r; +}(q), G = function(t) { + x(r, t); + function r(e, n) { + var o = t.call(this) || this; + return o.destination = e, o.source = n, o; + } + return r.prototype.next = function(e) { + var n, o; + (o = (n = this.destination) === null || n === void 0 ? void 0 : n.next) === null || o === void 0 || o.call(n, e); + }, r.prototype.error = function(e) { + var n, o; + (o = (n = this.destination) === null || n === void 0 ? void 0 : n.error) === null || o === void 0 || o.call(n, e); + }, r.prototype.complete = function() { + var e, n; + (n = (e = this.destination) === null || e === void 0 ? void 0 : e.complete) === null || n === void 0 || n.call(e); + }, r.prototype._subscribe = function(e) { + var n, o; + return (o = (n = this.source) === null || n === void 0 ? void 0 : n.subscribe(e)) !== null && o !== void 0 ? o : K; + }, r; +}(H); +class Ee { + constructor(r, e) { + this._subject = r, this._observer = e; + } + dispose() { + const r = this._subject.observers.indexOf(this._observer); + r > -1 && this._subject.observers.splice(r, 1), this._subject.observers.length === 0 && this._subject.cancelCallback && this._subject.cancelCallback().catch((e) => { + }); + } +} +class ke { + constructor() { + this.observers = []; + } + next(r) { + for (const e of this.observers) + e.next(r); + } + error(r) { + for (const e of this.observers) + e.error && e.error(r); + } + complete() { + for (const r of this.observers) + r.complete && r.complete(); + } + subscribe(r) { + return this.observers.push(r), new Ee(this, r); + } +} +class xe { + constructor(r) { + m(this, "_hubConnectionData", []); + m(this, "_serverInvokes", []); + m(this, "name"); + this.name = r; + } + publish(r, e) { + r = r.toLowerCase(); + const n = this._hubConnectionData.filter( + (o) => o.messageType === r + ); + if (n.length === 0) { + y.warn(`No subscribers for ${r}`); + return; + } + y.debug( + `Publishing action: ${r} to ${n.length} subscribers` + ), n.forEach((o) => { + o.channel.next({ name: r, value: e }); + }); + } + verify(r, e) { + r = r.toLowerCase(); + const n = this._serverInvokes.filter( + (o) => o.action === r + ); + e && e(n); + } + on(r, e) { + r = r.toLowerCase(), this._hubConnectionData.some((s) => s.messageType === r) || this._hubConnectionData.push({ + messageType: r, + isStream: !1, + channel: new H(), + subscriptions: [] + }); + let n = this._hubConnectionData.find( + (s) => s.messageType === r + ); + if (!n) + throw new Error(`Could not find connection data for ${r}`); + let o = n.channel.subscribe((s) => { + e(s.value); + }); + n.subscriptions.push({ + handler: e, + subscription: o + }); + } + /** Invokes a streaming hub method on the server using the specified name and arguments. + * + * @typeparam T The type of the items returned by the server. + * @param {string} methodName The name of the server method to invoke. + * @param {any[]} args The arguments used to invoke the server method. + * @returns {IStreamResult} An object that yields results from the server as they are received. + */ + // @ts-ignore + stream(r, ...e) { + r = r.toLowerCase(), this._hubConnectionData.some((s) => s.messageType === r) || this._hubConnectionData.push({ + messageType: r, + isStream: !0, + channel: new H(), + subscriptions: [] + }); + let n = this._hubConnectionData.find( + (s) => s.messageType === r + ); + if (!n) + throw new Error(`Could not find connection data for ${r}`); + const o = new ke(); + return n.channel.subscribe({ + next: (s) => o.next(s), + error: (s) => o.error(s), + complete: () => o.complete() + }), o; + } + /** Invokes a hub method on the server using the specified name and arguments. + * + * The Promise returned by this method resolves when the server indicates it has finished invoking the method. When the promise + * resolves, the server has finished invoking the method. If the server method returns a result, it is produced as the result of + * resolving the Promise. + * + * @typeparam T The expected return type. + * @param {string} methodName The name of the server method to invoke. + * @param {any[]} args The arguments used to invoke the server method. + * @returns {Promise} A Promise that resolves with the result of the server method (if any), or rejects with an error. + */ + invoke(r, ...e) { + return new Promise((n) => { + this._serverInvokes.push({ + action: r, + args: e + }), n(0); + }); + } + off(r, e) { + r = r.toLowerCase(); + const n = this._hubConnectionData.findIndex( + (o) => o.messageType === r + ); + if (n == -1) { + y.warn(`No channels registered for action name: ${r}`); + return; + } + if (e) { + const o = this._hubConnectionData[n].subscriptions.findIndex((s) => s.handler === e); + if (o == -1) { + y.warn( + `Could not find the handler to delete for action name: ${r}` + ); + return; + } + this._hubConnectionData[n].subscriptions.splice(o, 1), this._hubConnectionData[n].subscriptions.length === 0 && this._hubConnectionData.splice(n, 1); + } else + this._hubConnectionData.splice(n, 1); + } + /** Registers a handler that will be invoked when the connection is closed. + * + * @param {Function} callback The handler that will be invoked when the connection is closed. Optionally receives a single argument containing the error that caused the connection to close (if any). + */ + // @ts-ignore + onclose(r) { + } + /** Starts the connection. + * + * @returns {Promise} A Promise that resolves when the connection has been successfully established, or rejects with an error. + */ + start() { + return Promise.resolve(); + } + /** Stops the connection. + * + * @returns {Promise} A Promise that resolves when the connection has been successfully terminated, or rejects with an error. + */ + async stop() { + return Promise.resolve(); + } + /** Registers a handler that will be invoked when the connection starts reconnecting. + * + * @param {Function} callback The handler that will be invoked when the connection starts reconnecting. Optionally receives a single argument containing the error that caused the connection to start reconnecting (if any). + */ + // @ts-ignore + onreconnecting(r) { + } + /** Registers a handler that will be invoked when the connection successfully reconnects. + * + * @param {Function} callback The handler that will be invoked when the connection successfully reconnects. + */ + // @ts-ignore + onreconnected(r) { + } + /** Invokes a hub method on the server using the specified name and arguments. Does not wait for a response from the receiver. + * + * The Promise returned by this method resolves when the client has sent the invocation to the server. The server may still + * be processing the invocation. + * + * @param {string} methodName The name of the server method to invoke. + * @param {any[]} args The arguments used to invoke the server method. + * @returns {Promise} A Promise that resolves when the invocation has been successfully sent, or rejects with an error. + */ + // @ts-ignore + send(r, ...e) { + return Promise.resolve(); + } + // endregion +} +function ee() { + return V() ? !1 : window.hasOwnProperty("Cypress"); +} +function j() { + return !V() && window["cypress-signalr-mock"] ? window["cypress-signalr-mock"] : (re(), j()); +} +function Pe(t) { + V() || (window["cypress-signalr-mock"] = t); +} +function re() { + Pe(je()); +} +function je() { + return { + mocks: [] + }; +} +function te(t) { + return j().mocks.find((e) => e.name === t) ?? null; +} +function V() { + return window ? !1 : (y.error( + "window is not defined. This most likely happens during SSR, which is not supported," + ), !0); +} +function Oe() { + if (!ee()) { + y.info("Cypress is not running, skipping setup of Cypress commands"); + return; + } + const t = window.Cypress; + t.Commands.add("hubPublish", Ae), t.Commands.add("hubVerifyInvokes", De), t.Commands.add("hubClear", Me), t.Commands.add("hubPrintData", Ie); +} +function Ae(t, r, e) { + const n = te(t); + if (!n) { + y.error(`[cy.hubPublish] - HubConnectionMock not found for ${t}`); + return; + } + n.publish(r, e); +} +function De(t, r, e) { + const n = te(t); + if (!n) { + y.error( + `[cy.hubVerify] - HubConnectionMock not found for hub with name: ${t}` + ); + return; + } + n.verify(r, e); +} +function Ie() { + y.info( + 'Current window["cypress-signalr-mock"] data:', + j() + ); +} +function Me() { + re(); +} +Oe(); +function Re(t) { + if (!ee()) + return null; + const r = new xe(t); + return j().mocks.push(r), r; +} +export { + Re as useCypressSignalRMock +}; +//# sourceMappingURL=index.js.map diff --git a/dist/index.js.map b/dist/index.js.map new file mode 100644 index 0000000..1901ceb --- /dev/null +++ b/dist/index.js.map @@ -0,0 +1 @@ +{"version":3,"file":"index.js","sources":["../node_modules/ms/index.js","../node_modules/debug/src/common.js","../node_modules/debug/src/browser.js","../src/log.ts","../node_modules/tslib/tslib.es6.js","../node_modules/rxjs/dist/esm5/internal/util/isFunction.js","../node_modules/rxjs/dist/esm5/internal/util/createErrorClass.js","../node_modules/rxjs/dist/esm5/internal/util/UnsubscriptionError.js","../node_modules/rxjs/dist/esm5/internal/util/arrRemove.js","../node_modules/rxjs/dist/esm5/internal/Subscription.js","../node_modules/rxjs/dist/esm5/internal/config.js","../node_modules/rxjs/dist/esm5/internal/scheduler/timeoutProvider.js","../node_modules/rxjs/dist/esm5/internal/util/reportUnhandledError.js","../node_modules/rxjs/dist/esm5/internal/util/noop.js","../node_modules/rxjs/dist/esm5/internal/util/errorContext.js","../node_modules/rxjs/dist/esm5/internal/Subscriber.js","../node_modules/rxjs/dist/esm5/internal/symbol/observable.js","../node_modules/rxjs/dist/esm5/internal/util/identity.js","../node_modules/rxjs/dist/esm5/internal/util/pipe.js","../node_modules/rxjs/dist/esm5/internal/Observable.js","../node_modules/rxjs/dist/esm5/internal/util/ObjectUnsubscribedError.js","../node_modules/rxjs/dist/esm5/internal/Subject.js","../node_modules/@microsoft/signalr/dist/esm/Utils.js","../node_modules/@microsoft/signalr/dist/esm/Subject.js","../src/types/HubConnectionMock.ts","../src/utils.ts","../src/cypress-commands.ts","../src/index.ts"],"sourcesContent":["/**\n * Helpers.\n */\n\nvar s = 1000;\nvar m = s * 60;\nvar h = m * 60;\nvar d = h * 24;\nvar w = d * 7;\nvar y = d * 365.25;\n\n/**\n * Parse or format the given `val`.\n *\n * Options:\n *\n * - `long` verbose formatting [false]\n *\n * @param {String|Number} val\n * @param {Object} [options]\n * @throws {Error} throw an error if val is not a non-empty string or a number\n * @return {String|Number}\n * @api public\n */\n\nmodule.exports = function(val, options) {\n options = options || {};\n var type = typeof val;\n if (type === 'string' && val.length > 0) {\n return parse(val);\n } else if (type === 'number' && isFinite(val)) {\n return options.long ? fmtLong(val) : fmtShort(val);\n }\n throw new Error(\n 'val is not a non-empty string or a valid number. val=' +\n JSON.stringify(val)\n );\n};\n\n/**\n * Parse the given `str` and return milliseconds.\n *\n * @param {String} str\n * @return {Number}\n * @api private\n */\n\nfunction parse(str) {\n str = String(str);\n if (str.length > 100) {\n return;\n }\n var match = /^(-?(?:\\d+)?\\.?\\d+) *(milliseconds?|msecs?|ms|seconds?|secs?|s|minutes?|mins?|m|hours?|hrs?|h|days?|d|weeks?|w|years?|yrs?|y)?$/i.exec(\n str\n );\n if (!match) {\n return;\n }\n var n = parseFloat(match[1]);\n var type = (match[2] || 'ms').toLowerCase();\n switch (type) {\n case 'years':\n case 'year':\n case 'yrs':\n case 'yr':\n case 'y':\n return n * y;\n case 'weeks':\n case 'week':\n case 'w':\n return n * w;\n case 'days':\n case 'day':\n case 'd':\n return n * d;\n case 'hours':\n case 'hour':\n case 'hrs':\n case 'hr':\n case 'h':\n return n * h;\n case 'minutes':\n case 'minute':\n case 'mins':\n case 'min':\n case 'm':\n return n * m;\n case 'seconds':\n case 'second':\n case 'secs':\n case 'sec':\n case 's':\n return n * s;\n case 'milliseconds':\n case 'millisecond':\n case 'msecs':\n case 'msec':\n case 'ms':\n return n;\n default:\n return undefined;\n }\n}\n\n/**\n * Short format for `ms`.\n *\n * @param {Number} ms\n * @return {String}\n * @api private\n */\n\nfunction fmtShort(ms) {\n var msAbs = Math.abs(ms);\n if (msAbs >= d) {\n return Math.round(ms / d) + 'd';\n }\n if (msAbs >= h) {\n return Math.round(ms / h) + 'h';\n }\n if (msAbs >= m) {\n return Math.round(ms / m) + 'm';\n }\n if (msAbs >= s) {\n return Math.round(ms / s) + 's';\n }\n return ms + 'ms';\n}\n\n/**\n * Long format for `ms`.\n *\n * @param {Number} ms\n * @return {String}\n * @api private\n */\n\nfunction fmtLong(ms) {\n var msAbs = Math.abs(ms);\n if (msAbs >= d) {\n return plural(ms, msAbs, d, 'day');\n }\n if (msAbs >= h) {\n return plural(ms, msAbs, h, 'hour');\n }\n if (msAbs >= m) {\n return plural(ms, msAbs, m, 'minute');\n }\n if (msAbs >= s) {\n return plural(ms, msAbs, s, 'second');\n }\n return ms + ' ms';\n}\n\n/**\n * Pluralization helper.\n */\n\nfunction plural(ms, msAbs, n, name) {\n var isPlural = msAbs >= n * 1.5;\n return Math.round(ms / n) + ' ' + name + (isPlural ? 's' : '');\n}\n","\n/**\n * This is the common logic for both the Node.js and web browser\n * implementations of `debug()`.\n */\n\nfunction setup(env) {\n\tcreateDebug.debug = createDebug;\n\tcreateDebug.default = createDebug;\n\tcreateDebug.coerce = coerce;\n\tcreateDebug.disable = disable;\n\tcreateDebug.enable = enable;\n\tcreateDebug.enabled = enabled;\n\tcreateDebug.humanize = require('ms');\n\tcreateDebug.destroy = destroy;\n\n\tObject.keys(env).forEach(key => {\n\t\tcreateDebug[key] = env[key];\n\t});\n\n\t/**\n\t* The currently active debug mode names, and names to skip.\n\t*/\n\n\tcreateDebug.names = [];\n\tcreateDebug.skips = [];\n\n\t/**\n\t* Map of special \"%n\" handling functions, for the debug \"format\" argument.\n\t*\n\t* Valid key names are a single, lower or upper-case letter, i.e. \"n\" and \"N\".\n\t*/\n\tcreateDebug.formatters = {};\n\n\t/**\n\t* Selects a color for a debug namespace\n\t* @param {String} namespace The namespace string for the debug instance to be colored\n\t* @return {Number|String} An ANSI color code for the given namespace\n\t* @api private\n\t*/\n\tfunction selectColor(namespace) {\n\t\tlet hash = 0;\n\n\t\tfor (let i = 0; i < namespace.length; i++) {\n\t\t\thash = ((hash << 5) - hash) + namespace.charCodeAt(i);\n\t\t\thash |= 0; // Convert to 32bit integer\n\t\t}\n\n\t\treturn createDebug.colors[Math.abs(hash) % createDebug.colors.length];\n\t}\n\tcreateDebug.selectColor = selectColor;\n\n\t/**\n\t* Create a debugger with the given `namespace`.\n\t*\n\t* @param {String} namespace\n\t* @return {Function}\n\t* @api public\n\t*/\n\tfunction createDebug(namespace) {\n\t\tlet prevTime;\n\t\tlet enableOverride = null;\n\t\tlet namespacesCache;\n\t\tlet enabledCache;\n\n\t\tfunction debug(...args) {\n\t\t\t// Disabled?\n\t\t\tif (!debug.enabled) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tconst self = debug;\n\n\t\t\t// Set `diff` timestamp\n\t\t\tconst curr = Number(new Date());\n\t\t\tconst ms = curr - (prevTime || curr);\n\t\t\tself.diff = ms;\n\t\t\tself.prev = prevTime;\n\t\t\tself.curr = curr;\n\t\t\tprevTime = curr;\n\n\t\t\targs[0] = createDebug.coerce(args[0]);\n\n\t\t\tif (typeof args[0] !== 'string') {\n\t\t\t\t// Anything else let's inspect with %O\n\t\t\t\targs.unshift('%O');\n\t\t\t}\n\n\t\t\t// Apply any `formatters` transformations\n\t\t\tlet index = 0;\n\t\t\targs[0] = args[0].replace(/%([a-zA-Z%])/g, (match, format) => {\n\t\t\t\t// If we encounter an escaped % then don't increase the array index\n\t\t\t\tif (match === '%%') {\n\t\t\t\t\treturn '%';\n\t\t\t\t}\n\t\t\t\tindex++;\n\t\t\t\tconst formatter = createDebug.formatters[format];\n\t\t\t\tif (typeof formatter === 'function') {\n\t\t\t\t\tconst val = args[index];\n\t\t\t\t\tmatch = formatter.call(self, val);\n\n\t\t\t\t\t// Now we need to remove `args[index]` since it's inlined in the `format`\n\t\t\t\t\targs.splice(index, 1);\n\t\t\t\t\tindex--;\n\t\t\t\t}\n\t\t\t\treturn match;\n\t\t\t});\n\n\t\t\t// Apply env-specific formatting (colors, etc.)\n\t\t\tcreateDebug.formatArgs.call(self, args);\n\n\t\t\tconst logFn = self.log || createDebug.log;\n\t\t\tlogFn.apply(self, args);\n\t\t}\n\n\t\tdebug.namespace = namespace;\n\t\tdebug.useColors = createDebug.useColors();\n\t\tdebug.color = createDebug.selectColor(namespace);\n\t\tdebug.extend = extend;\n\t\tdebug.destroy = createDebug.destroy; // XXX Temporary. Will be removed in the next major release.\n\n\t\tObject.defineProperty(debug, 'enabled', {\n\t\t\tenumerable: true,\n\t\t\tconfigurable: false,\n\t\t\tget: () => {\n\t\t\t\tif (enableOverride !== null) {\n\t\t\t\t\treturn enableOverride;\n\t\t\t\t}\n\t\t\t\tif (namespacesCache !== createDebug.namespaces) {\n\t\t\t\t\tnamespacesCache = createDebug.namespaces;\n\t\t\t\t\tenabledCache = createDebug.enabled(namespace);\n\t\t\t\t}\n\n\t\t\t\treturn enabledCache;\n\t\t\t},\n\t\t\tset: v => {\n\t\t\t\tenableOverride = v;\n\t\t\t}\n\t\t});\n\n\t\t// Env-specific initialization logic for debug instances\n\t\tif (typeof createDebug.init === 'function') {\n\t\t\tcreateDebug.init(debug);\n\t\t}\n\n\t\treturn debug;\n\t}\n\n\tfunction extend(namespace, delimiter) {\n\t\tconst newDebug = createDebug(this.namespace + (typeof delimiter === 'undefined' ? ':' : delimiter) + namespace);\n\t\tnewDebug.log = this.log;\n\t\treturn newDebug;\n\t}\n\n\t/**\n\t* Enables a debug mode by namespaces. This can include modes\n\t* separated by a colon and wildcards.\n\t*\n\t* @param {String} namespaces\n\t* @api public\n\t*/\n\tfunction enable(namespaces) {\n\t\tcreateDebug.save(namespaces);\n\t\tcreateDebug.namespaces = namespaces;\n\n\t\tcreateDebug.names = [];\n\t\tcreateDebug.skips = [];\n\n\t\tlet i;\n\t\tconst split = (typeof namespaces === 'string' ? namespaces : '').split(/[\\s,]+/);\n\t\tconst len = split.length;\n\n\t\tfor (i = 0; i < len; i++) {\n\t\t\tif (!split[i]) {\n\t\t\t\t// ignore empty strings\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\tnamespaces = split[i].replace(/\\*/g, '.*?');\n\n\t\t\tif (namespaces[0] === '-') {\n\t\t\t\tcreateDebug.skips.push(new RegExp('^' + namespaces.slice(1) + '$'));\n\t\t\t} else {\n\t\t\t\tcreateDebug.names.push(new RegExp('^' + namespaces + '$'));\n\t\t\t}\n\t\t}\n\t}\n\n\t/**\n\t* Disable debug output.\n\t*\n\t* @return {String} namespaces\n\t* @api public\n\t*/\n\tfunction disable() {\n\t\tconst namespaces = [\n\t\t\t...createDebug.names.map(toNamespace),\n\t\t\t...createDebug.skips.map(toNamespace).map(namespace => '-' + namespace)\n\t\t].join(',');\n\t\tcreateDebug.enable('');\n\t\treturn namespaces;\n\t}\n\n\t/**\n\t* Returns true if the given mode name is enabled, false otherwise.\n\t*\n\t* @param {String} name\n\t* @return {Boolean}\n\t* @api public\n\t*/\n\tfunction enabled(name) {\n\t\tif (name[name.length - 1] === '*') {\n\t\t\treturn true;\n\t\t}\n\n\t\tlet i;\n\t\tlet len;\n\n\t\tfor (i = 0, len = createDebug.skips.length; i < len; i++) {\n\t\t\tif (createDebug.skips[i].test(name)) {\n\t\t\t\treturn false;\n\t\t\t}\n\t\t}\n\n\t\tfor (i = 0, len = createDebug.names.length; i < len; i++) {\n\t\t\tif (createDebug.names[i].test(name)) {\n\t\t\t\treturn true;\n\t\t\t}\n\t\t}\n\n\t\treturn false;\n\t}\n\n\t/**\n\t* Convert regexp to namespace\n\t*\n\t* @param {RegExp} regxep\n\t* @return {String} namespace\n\t* @api private\n\t*/\n\tfunction toNamespace(regexp) {\n\t\treturn regexp.toString()\n\t\t\t.substring(2, regexp.toString().length - 2)\n\t\t\t.replace(/\\.\\*\\?$/, '*');\n\t}\n\n\t/**\n\t* Coerce `val`.\n\t*\n\t* @param {Mixed} val\n\t* @return {Mixed}\n\t* @api private\n\t*/\n\tfunction coerce(val) {\n\t\tif (val instanceof Error) {\n\t\t\treturn val.stack || val.message;\n\t\t}\n\t\treturn val;\n\t}\n\n\t/**\n\t* XXX DO NOT USE. This is a temporary stub function.\n\t* XXX It WILL be removed in the next major release.\n\t*/\n\tfunction destroy() {\n\t\tconsole.warn('Instance method `debug.destroy()` is deprecated and no longer does anything. It will be removed in the next major version of `debug`.');\n\t}\n\n\tcreateDebug.enable(createDebug.load());\n\n\treturn createDebug;\n}\n\nmodule.exports = setup;\n","/* eslint-env browser */\n\n/**\n * This is the web browser implementation of `debug()`.\n */\n\nexports.formatArgs = formatArgs;\nexports.save = save;\nexports.load = load;\nexports.useColors = useColors;\nexports.storage = localstorage();\nexports.destroy = (() => {\n\tlet warned = false;\n\n\treturn () => {\n\t\tif (!warned) {\n\t\t\twarned = true;\n\t\t\tconsole.warn('Instance method `debug.destroy()` is deprecated and no longer does anything. It will be removed in the next major version of `debug`.');\n\t\t}\n\t};\n})();\n\n/**\n * Colors.\n */\n\nexports.colors = [\n\t'#0000CC',\n\t'#0000FF',\n\t'#0033CC',\n\t'#0033FF',\n\t'#0066CC',\n\t'#0066FF',\n\t'#0099CC',\n\t'#0099FF',\n\t'#00CC00',\n\t'#00CC33',\n\t'#00CC66',\n\t'#00CC99',\n\t'#00CCCC',\n\t'#00CCFF',\n\t'#3300CC',\n\t'#3300FF',\n\t'#3333CC',\n\t'#3333FF',\n\t'#3366CC',\n\t'#3366FF',\n\t'#3399CC',\n\t'#3399FF',\n\t'#33CC00',\n\t'#33CC33',\n\t'#33CC66',\n\t'#33CC99',\n\t'#33CCCC',\n\t'#33CCFF',\n\t'#6600CC',\n\t'#6600FF',\n\t'#6633CC',\n\t'#6633FF',\n\t'#66CC00',\n\t'#66CC33',\n\t'#9900CC',\n\t'#9900FF',\n\t'#9933CC',\n\t'#9933FF',\n\t'#99CC00',\n\t'#99CC33',\n\t'#CC0000',\n\t'#CC0033',\n\t'#CC0066',\n\t'#CC0099',\n\t'#CC00CC',\n\t'#CC00FF',\n\t'#CC3300',\n\t'#CC3333',\n\t'#CC3366',\n\t'#CC3399',\n\t'#CC33CC',\n\t'#CC33FF',\n\t'#CC6600',\n\t'#CC6633',\n\t'#CC9900',\n\t'#CC9933',\n\t'#CCCC00',\n\t'#CCCC33',\n\t'#FF0000',\n\t'#FF0033',\n\t'#FF0066',\n\t'#FF0099',\n\t'#FF00CC',\n\t'#FF00FF',\n\t'#FF3300',\n\t'#FF3333',\n\t'#FF3366',\n\t'#FF3399',\n\t'#FF33CC',\n\t'#FF33FF',\n\t'#FF6600',\n\t'#FF6633',\n\t'#FF9900',\n\t'#FF9933',\n\t'#FFCC00',\n\t'#FFCC33'\n];\n\n/**\n * Currently only WebKit-based Web Inspectors, Firefox >= v31,\n * and the Firebug extension (any Firefox version) are known\n * to support \"%c\" CSS customizations.\n *\n * TODO: add a `localStorage` variable to explicitly enable/disable colors\n */\n\n// eslint-disable-next-line complexity\nfunction useColors() {\n\t// NB: In an Electron preload script, document will be defined but not fully\n\t// initialized. Since we know we're in Chrome, we'll just detect this case\n\t// explicitly\n\tif (typeof window !== 'undefined' && window.process && (window.process.type === 'renderer' || window.process.__nwjs)) {\n\t\treturn true;\n\t}\n\n\t// Internet Explorer and Edge do not support colors.\n\tif (typeof navigator !== 'undefined' && navigator.userAgent && navigator.userAgent.toLowerCase().match(/(edge|trident)\\/(\\d+)/)) {\n\t\treturn false;\n\t}\n\n\t// Is webkit? http://stackoverflow.com/a/16459606/376773\n\t// document is undefined in react-native: https://github.com/facebook/react-native/pull/1632\n\treturn (typeof document !== 'undefined' && document.documentElement && document.documentElement.style && document.documentElement.style.WebkitAppearance) ||\n\t\t// Is firebug? http://stackoverflow.com/a/398120/376773\n\t\t(typeof window !== 'undefined' && window.console && (window.console.firebug || (window.console.exception && window.console.table))) ||\n\t\t// Is firefox >= v31?\n\t\t// https://developer.mozilla.org/en-US/docs/Tools/Web_Console#Styling_messages\n\t\t(typeof navigator !== 'undefined' && navigator.userAgent && navigator.userAgent.toLowerCase().match(/firefox\\/(\\d+)/) && parseInt(RegExp.$1, 10) >= 31) ||\n\t\t// Double check webkit in userAgent just in case we are in a worker\n\t\t(typeof navigator !== 'undefined' && navigator.userAgent && navigator.userAgent.toLowerCase().match(/applewebkit\\/(\\d+)/));\n}\n\n/**\n * Colorize log arguments if enabled.\n *\n * @api public\n */\n\nfunction formatArgs(args) {\n\targs[0] = (this.useColors ? '%c' : '') +\n\t\tthis.namespace +\n\t\t(this.useColors ? ' %c' : ' ') +\n\t\targs[0] +\n\t\t(this.useColors ? '%c ' : ' ') +\n\t\t'+' + module.exports.humanize(this.diff);\n\n\tif (!this.useColors) {\n\t\treturn;\n\t}\n\n\tconst c = 'color: ' + this.color;\n\targs.splice(1, 0, c, 'color: inherit');\n\n\t// The final \"%c\" is somewhat tricky, because there could be other\n\t// arguments passed either before or after the %c, so we need to\n\t// figure out the correct index to insert the CSS into\n\tlet index = 0;\n\tlet lastC = 0;\n\targs[0].replace(/%[a-zA-Z%]/g, match => {\n\t\tif (match === '%%') {\n\t\t\treturn;\n\t\t}\n\t\tindex++;\n\t\tif (match === '%c') {\n\t\t\t// We only are interested in the *last* %c\n\t\t\t// (the user may have provided their own)\n\t\t\tlastC = index;\n\t\t}\n\t});\n\n\targs.splice(lastC, 0, c);\n}\n\n/**\n * Invokes `console.debug()` when available.\n * No-op when `console.debug` is not a \"function\".\n * If `console.debug` is not available, falls back\n * to `console.log`.\n *\n * @api public\n */\nexports.log = console.debug || console.log || (() => {});\n\n/**\n * Save `namespaces`.\n *\n * @param {String} namespaces\n * @api private\n */\nfunction save(namespaces) {\n\ttry {\n\t\tif (namespaces) {\n\t\t\texports.storage.setItem('debug', namespaces);\n\t\t} else {\n\t\t\texports.storage.removeItem('debug');\n\t\t}\n\t} catch (error) {\n\t\t// Swallow\n\t\t// XXX (@Qix-) should we be logging these?\n\t}\n}\n\n/**\n * Load `namespaces`.\n *\n * @return {String} returns the previously persisted debug modes\n * @api private\n */\nfunction load() {\n\tlet r;\n\ttry {\n\t\tr = exports.storage.getItem('debug');\n\t} catch (error) {\n\t\t// Swallow\n\t\t// XXX (@Qix-) should we be logging these?\n\t}\n\n\t// If debug isn't set in LS, and we're in Electron, try to load $DEBUG\n\tif (!r && typeof process !== 'undefined' && 'env' in process) {\n\t\tr = process.env.DEBUG;\n\t}\n\n\treturn r;\n}\n\n/**\n * Localstorage attempts to return the localstorage.\n *\n * This is necessary because safari throws\n * when a user disables cookies/localstorage\n * and you attempt to access it.\n *\n * @return {LocalStorage}\n * @api private\n */\n\nfunction localstorage() {\n\ttry {\n\t\t// TVMLKit (Apple TV JS Runtime) does not have a window object, just localStorage in the global context\n\t\t// The Browser also has localStorage in the global context.\n\t\treturn localStorage;\n\t} catch (error) {\n\t\t// Swallow\n\t\t// XXX (@Qix-) should we be logging these?\n\t}\n}\n\nmodule.exports = require('./common')(exports);\n\nconst {formatters} = module.exports;\n\n/**\n * Map %j to `JSON.stringify()`, since no Web Inspectors do that by default.\n */\n\nformatters.j = function (v) {\n\ttry {\n\t\treturn JSON.stringify(v);\n\t} catch (error) {\n\t\treturn '[UnexpectedJSONParseError]: ' + error.message;\n\t}\n};\n","import debug from \"debug\";\n\nexport default class Log {\n private static _prefix: string = \"[Cypress-SignalR-Mock] - \";\n\n public static debug(message: string) {\n debug(\"cypress-signalr-mock\")(message);\n }\n\n public static info(message: string, value: any = undefined) {\n console.info(this._prefix + message, value);\n }\n\n public static warn(message: string) {\n console.warn(this._prefix + message);\n }\n\n public static error(message: string, throwError: boolean = true) {\n if (throwError) {\n throw new Error(this._prefix + message);\n } else {\n console.error(this._prefix + message);\n }\n }\n}\n","/******************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n/* global Reflect, Promise */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\r\n if (typeof b !== \"function\" && b !== null)\r\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n }\r\n return __assign.apply(this, arguments);\r\n}\r\n\r\nexport function __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __esDecorate(ctor, descriptorIn, decorators, contextIn, initializers, extraInitializers) {\r\n function accept(f) { if (f !== void 0 && typeof f !== \"function\") throw new TypeError(\"Function expected\"); return f; }\r\n var kind = contextIn.kind, key = kind === \"getter\" ? \"get\" : kind === \"setter\" ? \"set\" : \"value\";\r\n var target = !descriptorIn && ctor ? contextIn[\"static\"] ? ctor : ctor.prototype : null;\r\n var descriptor = descriptorIn || (target ? Object.getOwnPropertyDescriptor(target, contextIn.name) : {});\r\n var _, done = false;\r\n for (var i = decorators.length - 1; i >= 0; i--) {\r\n var context = {};\r\n for (var p in contextIn) context[p] = p === \"access\" ? {} : contextIn[p];\r\n for (var p in contextIn.access) context.access[p] = contextIn.access[p];\r\n context.addInitializer = function (f) { if (done) throw new TypeError(\"Cannot add initializers after decoration has completed\"); extraInitializers.push(accept(f || null)); };\r\n var result = (0, decorators[i])(kind === \"accessor\" ? { get: descriptor.get, set: descriptor.set } : descriptor[key], context);\r\n if (kind === \"accessor\") {\r\n if (result === void 0) continue;\r\n if (result === null || typeof result !== \"object\") throw new TypeError(\"Object expected\");\r\n if (_ = accept(result.get)) descriptor.get = _;\r\n if (_ = accept(result.set)) descriptor.set = _;\r\n if (_ = accept(result.init)) initializers.push(_);\r\n }\r\n else if (_ = accept(result)) {\r\n if (kind === \"field\") initializers.push(_);\r\n else descriptor[key] = _;\r\n }\r\n }\r\n if (target) Object.defineProperty(target, contextIn.name, descriptor);\r\n done = true;\r\n};\r\n\r\nexport function __runInitializers(thisArg, initializers, value) {\r\n var useValue = arguments.length > 2;\r\n for (var i = 0; i < initializers.length; i++) {\r\n value = useValue ? initializers[i].call(thisArg, value) : initializers[i].call(thisArg);\r\n }\r\n return useValue ? value : void 0;\r\n};\r\n\r\nexport function __propKey(x) {\r\n return typeof x === \"symbol\" ? x : \"\".concat(x);\r\n};\r\n\r\nexport function __setFunctionName(f, name, prefix) {\r\n if (typeof name === \"symbol\") name = name.description ? \"[\".concat(name.description, \"]\") : \"\";\r\n return Object.defineProperty(f, \"name\", { configurable: true, value: prefix ? \"\".concat(prefix, \" \", name) : name });\r\n};\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (g && (g = 0, op[0] && (_ = 0)), _) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nexport var __createBinding = Object.create ? (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n var desc = Object.getOwnPropertyDescriptor(m, k);\r\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\r\n desc = { enumerable: true, get: function() { return m[k]; } };\r\n }\r\n Object.defineProperty(o, k2, desc);\r\n}) : (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n});\r\n\r\nexport function __exportStar(m, o) {\r\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(o, p)) __createBinding(o, m, p);\r\n}\r\n\r\nexport function __values(o) {\r\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\r\n if (m) return m.call(o);\r\n if (o && typeof o.length === \"number\") return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\r\n}\r\n\r\nexport function __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spreadArrays() {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n}\r\n\r\nexport function __spreadArray(to, from, pack) {\r\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\r\n if (ar || !(i in from)) {\r\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\r\n ar[i] = from[i];\r\n }\r\n }\r\n return to.concat(ar || Array.prototype.slice.call(from));\r\n}\r\n\r\nexport function __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: false } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n};\r\n\r\nvar __setModuleDefault = Object.create ? (function(o, v) {\r\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\r\n}) : function(o, v) {\r\n o[\"default\"] = v;\r\n};\r\n\r\nexport function __importStar(mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\r\n __setModuleDefault(result, mod);\r\n return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n\r\nexport function __classPrivateFieldGet(receiver, state, kind, f) {\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\r\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\r\n return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\r\n}\r\n\r\nexport function __classPrivateFieldSet(receiver, state, value, kind, f) {\r\n if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\r\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\r\n return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\r\n}\r\n\r\nexport function __classPrivateFieldIn(state, receiver) {\r\n if (receiver === null || (typeof receiver !== \"object\" && typeof receiver !== \"function\")) throw new TypeError(\"Cannot use 'in' operator on non-object\");\r\n return typeof state === \"function\" ? receiver === state : state.has(receiver);\r\n}\r\n","export function isFunction(value) {\n return typeof value === 'function';\n}\n//# sourceMappingURL=isFunction.js.map","export function createErrorClass(createImpl) {\n var _super = function (instance) {\n Error.call(instance);\n instance.stack = new Error().stack;\n };\n var ctorFunc = createImpl(_super);\n ctorFunc.prototype = Object.create(Error.prototype);\n ctorFunc.prototype.constructor = ctorFunc;\n return ctorFunc;\n}\n//# sourceMappingURL=createErrorClass.js.map","import { createErrorClass } from './createErrorClass';\nexport var UnsubscriptionError = createErrorClass(function (_super) {\n return function UnsubscriptionErrorImpl(errors) {\n _super(this);\n this.message = errors\n ? errors.length + \" errors occurred during unsubscription:\\n\" + errors.map(function (err, i) { return i + 1 + \") \" + err.toString(); }).join('\\n ')\n : '';\n this.name = 'UnsubscriptionError';\n this.errors = errors;\n };\n});\n//# sourceMappingURL=UnsubscriptionError.js.map","export function arrRemove(arr, item) {\n if (arr) {\n var index = arr.indexOf(item);\n 0 <= index && arr.splice(index, 1);\n }\n}\n//# sourceMappingURL=arrRemove.js.map","import { __read, __spreadArray, __values } from \"tslib\";\nimport { isFunction } from './util/isFunction';\nimport { UnsubscriptionError } from './util/UnsubscriptionError';\nimport { arrRemove } from './util/arrRemove';\nvar Subscription = (function () {\n function Subscription(initialTeardown) {\n this.initialTeardown = initialTeardown;\n this.closed = false;\n this._parentage = null;\n this._finalizers = null;\n }\n Subscription.prototype.unsubscribe = function () {\n var e_1, _a, e_2, _b;\n var errors;\n if (!this.closed) {\n this.closed = true;\n var _parentage = this._parentage;\n if (_parentage) {\n this._parentage = null;\n if (Array.isArray(_parentage)) {\n try {\n for (var _parentage_1 = __values(_parentage), _parentage_1_1 = _parentage_1.next(); !_parentage_1_1.done; _parentage_1_1 = _parentage_1.next()) {\n var parent_1 = _parentage_1_1.value;\n parent_1.remove(this);\n }\n }\n catch (e_1_1) { e_1 = { error: e_1_1 }; }\n finally {\n try {\n if (_parentage_1_1 && !_parentage_1_1.done && (_a = _parentage_1.return)) _a.call(_parentage_1);\n }\n finally { if (e_1) throw e_1.error; }\n }\n }\n else {\n _parentage.remove(this);\n }\n }\n var initialFinalizer = this.initialTeardown;\n if (isFunction(initialFinalizer)) {\n try {\n initialFinalizer();\n }\n catch (e) {\n errors = e instanceof UnsubscriptionError ? e.errors : [e];\n }\n }\n var _finalizers = this._finalizers;\n if (_finalizers) {\n this._finalizers = null;\n try {\n for (var _finalizers_1 = __values(_finalizers), _finalizers_1_1 = _finalizers_1.next(); !_finalizers_1_1.done; _finalizers_1_1 = _finalizers_1.next()) {\n var finalizer = _finalizers_1_1.value;\n try {\n execFinalizer(finalizer);\n }\n catch (err) {\n errors = errors !== null && errors !== void 0 ? errors : [];\n if (err instanceof UnsubscriptionError) {\n errors = __spreadArray(__spreadArray([], __read(errors)), __read(err.errors));\n }\n else {\n errors.push(err);\n }\n }\n }\n }\n catch (e_2_1) { e_2 = { error: e_2_1 }; }\n finally {\n try {\n if (_finalizers_1_1 && !_finalizers_1_1.done && (_b = _finalizers_1.return)) _b.call(_finalizers_1);\n }\n finally { if (e_2) throw e_2.error; }\n }\n }\n if (errors) {\n throw new UnsubscriptionError(errors);\n }\n }\n };\n Subscription.prototype.add = function (teardown) {\n var _a;\n if (teardown && teardown !== this) {\n if (this.closed) {\n execFinalizer(teardown);\n }\n else {\n if (teardown instanceof Subscription) {\n if (teardown.closed || teardown._hasParent(this)) {\n return;\n }\n teardown._addParent(this);\n }\n (this._finalizers = (_a = this._finalizers) !== null && _a !== void 0 ? _a : []).push(teardown);\n }\n }\n };\n Subscription.prototype._hasParent = function (parent) {\n var _parentage = this._parentage;\n return _parentage === parent || (Array.isArray(_parentage) && _parentage.includes(parent));\n };\n Subscription.prototype._addParent = function (parent) {\n var _parentage = this._parentage;\n this._parentage = Array.isArray(_parentage) ? (_parentage.push(parent), _parentage) : _parentage ? [_parentage, parent] : parent;\n };\n Subscription.prototype._removeParent = function (parent) {\n var _parentage = this._parentage;\n if (_parentage === parent) {\n this._parentage = null;\n }\n else if (Array.isArray(_parentage)) {\n arrRemove(_parentage, parent);\n }\n };\n Subscription.prototype.remove = function (teardown) {\n var _finalizers = this._finalizers;\n _finalizers && arrRemove(_finalizers, teardown);\n if (teardown instanceof Subscription) {\n teardown._removeParent(this);\n }\n };\n Subscription.EMPTY = (function () {\n var empty = new Subscription();\n empty.closed = true;\n return empty;\n })();\n return Subscription;\n}());\nexport { Subscription };\nexport var EMPTY_SUBSCRIPTION = Subscription.EMPTY;\nexport function isSubscription(value) {\n return (value instanceof Subscription ||\n (value && 'closed' in value && isFunction(value.remove) && isFunction(value.add) && isFunction(value.unsubscribe)));\n}\nfunction execFinalizer(finalizer) {\n if (isFunction(finalizer)) {\n finalizer();\n }\n else {\n finalizer.unsubscribe();\n }\n}\n//# sourceMappingURL=Subscription.js.map","export var config = {\n onUnhandledError: null,\n onStoppedNotification: null,\n Promise: undefined,\n useDeprecatedSynchronousErrorHandling: false,\n useDeprecatedNextContext: false,\n};\n//# sourceMappingURL=config.js.map","import { __read, __spreadArray } from \"tslib\";\nexport var timeoutProvider = {\n setTimeout: function (handler, timeout) {\n var args = [];\n for (var _i = 2; _i < arguments.length; _i++) {\n args[_i - 2] = arguments[_i];\n }\n var delegate = timeoutProvider.delegate;\n if (delegate === null || delegate === void 0 ? void 0 : delegate.setTimeout) {\n return delegate.setTimeout.apply(delegate, __spreadArray([handler, timeout], __read(args)));\n }\n return setTimeout.apply(void 0, __spreadArray([handler, timeout], __read(args)));\n },\n clearTimeout: function (handle) {\n var delegate = timeoutProvider.delegate;\n return ((delegate === null || delegate === void 0 ? void 0 : delegate.clearTimeout) || clearTimeout)(handle);\n },\n delegate: undefined,\n};\n//# sourceMappingURL=timeoutProvider.js.map","import { config } from '../config';\nimport { timeoutProvider } from '../scheduler/timeoutProvider';\nexport function reportUnhandledError(err) {\n timeoutProvider.setTimeout(function () {\n var onUnhandledError = config.onUnhandledError;\n if (onUnhandledError) {\n onUnhandledError(err);\n }\n else {\n throw err;\n }\n });\n}\n//# sourceMappingURL=reportUnhandledError.js.map","export function noop() { }\n//# sourceMappingURL=noop.js.map","import { config } from '../config';\nvar context = null;\nexport function errorContext(cb) {\n if (config.useDeprecatedSynchronousErrorHandling) {\n var isRoot = !context;\n if (isRoot) {\n context = { errorThrown: false, error: null };\n }\n cb();\n if (isRoot) {\n var _a = context, errorThrown = _a.errorThrown, error = _a.error;\n context = null;\n if (errorThrown) {\n throw error;\n }\n }\n }\n else {\n cb();\n }\n}\nexport function captureError(err) {\n if (config.useDeprecatedSynchronousErrorHandling && context) {\n context.errorThrown = true;\n context.error = err;\n }\n}\n//# sourceMappingURL=errorContext.js.map","import { __extends } from \"tslib\";\nimport { isFunction } from './util/isFunction';\nimport { isSubscription, Subscription } from './Subscription';\nimport { config } from './config';\nimport { reportUnhandledError } from './util/reportUnhandledError';\nimport { noop } from './util/noop';\nimport { nextNotification, errorNotification, COMPLETE_NOTIFICATION } from './NotificationFactories';\nimport { timeoutProvider } from './scheduler/timeoutProvider';\nimport { captureError } from './util/errorContext';\nvar Subscriber = (function (_super) {\n __extends(Subscriber, _super);\n function Subscriber(destination) {\n var _this = _super.call(this) || this;\n _this.isStopped = false;\n if (destination) {\n _this.destination = destination;\n if (isSubscription(destination)) {\n destination.add(_this);\n }\n }\n else {\n _this.destination = EMPTY_OBSERVER;\n }\n return _this;\n }\n Subscriber.create = function (next, error, complete) {\n return new SafeSubscriber(next, error, complete);\n };\n Subscriber.prototype.next = function (value) {\n if (this.isStopped) {\n handleStoppedNotification(nextNotification(value), this);\n }\n else {\n this._next(value);\n }\n };\n Subscriber.prototype.error = function (err) {\n if (this.isStopped) {\n handleStoppedNotification(errorNotification(err), this);\n }\n else {\n this.isStopped = true;\n this._error(err);\n }\n };\n Subscriber.prototype.complete = function () {\n if (this.isStopped) {\n handleStoppedNotification(COMPLETE_NOTIFICATION, this);\n }\n else {\n this.isStopped = true;\n this._complete();\n }\n };\n Subscriber.prototype.unsubscribe = function () {\n if (!this.closed) {\n this.isStopped = true;\n _super.prototype.unsubscribe.call(this);\n this.destination = null;\n }\n };\n Subscriber.prototype._next = function (value) {\n this.destination.next(value);\n };\n Subscriber.prototype._error = function (err) {\n try {\n this.destination.error(err);\n }\n finally {\n this.unsubscribe();\n }\n };\n Subscriber.prototype._complete = function () {\n try {\n this.destination.complete();\n }\n finally {\n this.unsubscribe();\n }\n };\n return Subscriber;\n}(Subscription));\nexport { Subscriber };\nvar _bind = Function.prototype.bind;\nfunction bind(fn, thisArg) {\n return _bind.call(fn, thisArg);\n}\nvar ConsumerObserver = (function () {\n function ConsumerObserver(partialObserver) {\n this.partialObserver = partialObserver;\n }\n ConsumerObserver.prototype.next = function (value) {\n var partialObserver = this.partialObserver;\n if (partialObserver.next) {\n try {\n partialObserver.next(value);\n }\n catch (error) {\n handleUnhandledError(error);\n }\n }\n };\n ConsumerObserver.prototype.error = function (err) {\n var partialObserver = this.partialObserver;\n if (partialObserver.error) {\n try {\n partialObserver.error(err);\n }\n catch (error) {\n handleUnhandledError(error);\n }\n }\n else {\n handleUnhandledError(err);\n }\n };\n ConsumerObserver.prototype.complete = function () {\n var partialObserver = this.partialObserver;\n if (partialObserver.complete) {\n try {\n partialObserver.complete();\n }\n catch (error) {\n handleUnhandledError(error);\n }\n }\n };\n return ConsumerObserver;\n}());\nvar SafeSubscriber = (function (_super) {\n __extends(SafeSubscriber, _super);\n function SafeSubscriber(observerOrNext, error, complete) {\n var _this = _super.call(this) || this;\n var partialObserver;\n if (isFunction(observerOrNext) || !observerOrNext) {\n partialObserver = {\n next: (observerOrNext !== null && observerOrNext !== void 0 ? observerOrNext : undefined),\n error: error !== null && error !== void 0 ? error : undefined,\n complete: complete !== null && complete !== void 0 ? complete : undefined,\n };\n }\n else {\n var context_1;\n if (_this && config.useDeprecatedNextContext) {\n context_1 = Object.create(observerOrNext);\n context_1.unsubscribe = function () { return _this.unsubscribe(); };\n partialObserver = {\n next: observerOrNext.next && bind(observerOrNext.next, context_1),\n error: observerOrNext.error && bind(observerOrNext.error, context_1),\n complete: observerOrNext.complete && bind(observerOrNext.complete, context_1),\n };\n }\n else {\n partialObserver = observerOrNext;\n }\n }\n _this.destination = new ConsumerObserver(partialObserver);\n return _this;\n }\n return SafeSubscriber;\n}(Subscriber));\nexport { SafeSubscriber };\nfunction handleUnhandledError(error) {\n if (config.useDeprecatedSynchronousErrorHandling) {\n captureError(error);\n }\n else {\n reportUnhandledError(error);\n }\n}\nfunction defaultErrorHandler(err) {\n throw err;\n}\nfunction handleStoppedNotification(notification, subscriber) {\n var onStoppedNotification = config.onStoppedNotification;\n onStoppedNotification && timeoutProvider.setTimeout(function () { return onStoppedNotification(notification, subscriber); });\n}\nexport var EMPTY_OBSERVER = {\n closed: true,\n next: noop,\n error: defaultErrorHandler,\n complete: noop,\n};\n//# sourceMappingURL=Subscriber.js.map","export var observable = (function () { return (typeof Symbol === 'function' && Symbol.observable) || '@@observable'; })();\n//# sourceMappingURL=observable.js.map","export function identity(x) {\n return x;\n}\n//# sourceMappingURL=identity.js.map","import { identity } from './identity';\nexport function pipe() {\n var fns = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n fns[_i] = arguments[_i];\n }\n return pipeFromArray(fns);\n}\nexport function pipeFromArray(fns) {\n if (fns.length === 0) {\n return identity;\n }\n if (fns.length === 1) {\n return fns[0];\n }\n return function piped(input) {\n return fns.reduce(function (prev, fn) { return fn(prev); }, input);\n };\n}\n//# sourceMappingURL=pipe.js.map","import { SafeSubscriber, Subscriber } from './Subscriber';\nimport { isSubscription } from './Subscription';\nimport { observable as Symbol_observable } from './symbol/observable';\nimport { pipeFromArray } from './util/pipe';\nimport { config } from './config';\nimport { isFunction } from './util/isFunction';\nimport { errorContext } from './util/errorContext';\nvar Observable = (function () {\n function Observable(subscribe) {\n if (subscribe) {\n this._subscribe = subscribe;\n }\n }\n Observable.prototype.lift = function (operator) {\n var observable = new Observable();\n observable.source = this;\n observable.operator = operator;\n return observable;\n };\n Observable.prototype.subscribe = function (observerOrNext, error, complete) {\n var _this = this;\n var subscriber = isSubscriber(observerOrNext) ? observerOrNext : new SafeSubscriber(observerOrNext, error, complete);\n errorContext(function () {\n var _a = _this, operator = _a.operator, source = _a.source;\n subscriber.add(operator\n ?\n operator.call(subscriber, source)\n : source\n ?\n _this._subscribe(subscriber)\n :\n _this._trySubscribe(subscriber));\n });\n return subscriber;\n };\n Observable.prototype._trySubscribe = function (sink) {\n try {\n return this._subscribe(sink);\n }\n catch (err) {\n sink.error(err);\n }\n };\n Observable.prototype.forEach = function (next, promiseCtor) {\n var _this = this;\n promiseCtor = getPromiseCtor(promiseCtor);\n return new promiseCtor(function (resolve, reject) {\n var subscriber = new SafeSubscriber({\n next: function (value) {\n try {\n next(value);\n }\n catch (err) {\n reject(err);\n subscriber.unsubscribe();\n }\n },\n error: reject,\n complete: resolve,\n });\n _this.subscribe(subscriber);\n });\n };\n Observable.prototype._subscribe = function (subscriber) {\n var _a;\n return (_a = this.source) === null || _a === void 0 ? void 0 : _a.subscribe(subscriber);\n };\n Observable.prototype[Symbol_observable] = function () {\n return this;\n };\n Observable.prototype.pipe = function () {\n var operations = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n operations[_i] = arguments[_i];\n }\n return pipeFromArray(operations)(this);\n };\n Observable.prototype.toPromise = function (promiseCtor) {\n var _this = this;\n promiseCtor = getPromiseCtor(promiseCtor);\n return new promiseCtor(function (resolve, reject) {\n var value;\n _this.subscribe(function (x) { return (value = x); }, function (err) { return reject(err); }, function () { return resolve(value); });\n });\n };\n Observable.create = function (subscribe) {\n return new Observable(subscribe);\n };\n return Observable;\n}());\nexport { Observable };\nfunction getPromiseCtor(promiseCtor) {\n var _a;\n return (_a = promiseCtor !== null && promiseCtor !== void 0 ? promiseCtor : config.Promise) !== null && _a !== void 0 ? _a : Promise;\n}\nfunction isObserver(value) {\n return value && isFunction(value.next) && isFunction(value.error) && isFunction(value.complete);\n}\nfunction isSubscriber(value) {\n return (value && value instanceof Subscriber) || (isObserver(value) && isSubscription(value));\n}\n//# sourceMappingURL=Observable.js.map","import { createErrorClass } from './createErrorClass';\nexport var ObjectUnsubscribedError = createErrorClass(function (_super) {\n return function ObjectUnsubscribedErrorImpl() {\n _super(this);\n this.name = 'ObjectUnsubscribedError';\n this.message = 'object unsubscribed';\n };\n});\n//# sourceMappingURL=ObjectUnsubscribedError.js.map","import { __extends, __values } from \"tslib\";\nimport { Observable } from './Observable';\nimport { Subscription, EMPTY_SUBSCRIPTION } from './Subscription';\nimport { ObjectUnsubscribedError } from './util/ObjectUnsubscribedError';\nimport { arrRemove } from './util/arrRemove';\nimport { errorContext } from './util/errorContext';\nvar Subject = (function (_super) {\n __extends(Subject, _super);\n function Subject() {\n var _this = _super.call(this) || this;\n _this.closed = false;\n _this.currentObservers = null;\n _this.observers = [];\n _this.isStopped = false;\n _this.hasError = false;\n _this.thrownError = null;\n return _this;\n }\n Subject.prototype.lift = function (operator) {\n var subject = new AnonymousSubject(this, this);\n subject.operator = operator;\n return subject;\n };\n Subject.prototype._throwIfClosed = function () {\n if (this.closed) {\n throw new ObjectUnsubscribedError();\n }\n };\n Subject.prototype.next = function (value) {\n var _this = this;\n errorContext(function () {\n var e_1, _a;\n _this._throwIfClosed();\n if (!_this.isStopped) {\n if (!_this.currentObservers) {\n _this.currentObservers = Array.from(_this.observers);\n }\n try {\n for (var _b = __values(_this.currentObservers), _c = _b.next(); !_c.done; _c = _b.next()) {\n var observer = _c.value;\n observer.next(value);\n }\n }\n catch (e_1_1) { e_1 = { error: e_1_1 }; }\n finally {\n try {\n if (_c && !_c.done && (_a = _b.return)) _a.call(_b);\n }\n finally { if (e_1) throw e_1.error; }\n }\n }\n });\n };\n Subject.prototype.error = function (err) {\n var _this = this;\n errorContext(function () {\n _this._throwIfClosed();\n if (!_this.isStopped) {\n _this.hasError = _this.isStopped = true;\n _this.thrownError = err;\n var observers = _this.observers;\n while (observers.length) {\n observers.shift().error(err);\n }\n }\n });\n };\n Subject.prototype.complete = function () {\n var _this = this;\n errorContext(function () {\n _this._throwIfClosed();\n if (!_this.isStopped) {\n _this.isStopped = true;\n var observers = _this.observers;\n while (observers.length) {\n observers.shift().complete();\n }\n }\n });\n };\n Subject.prototype.unsubscribe = function () {\n this.isStopped = this.closed = true;\n this.observers = this.currentObservers = null;\n };\n Object.defineProperty(Subject.prototype, \"observed\", {\n get: function () {\n var _a;\n return ((_a = this.observers) === null || _a === void 0 ? void 0 : _a.length) > 0;\n },\n enumerable: false,\n configurable: true\n });\n Subject.prototype._trySubscribe = function (subscriber) {\n this._throwIfClosed();\n return _super.prototype._trySubscribe.call(this, subscriber);\n };\n Subject.prototype._subscribe = function (subscriber) {\n this._throwIfClosed();\n this._checkFinalizedStatuses(subscriber);\n return this._innerSubscribe(subscriber);\n };\n Subject.prototype._innerSubscribe = function (subscriber) {\n var _this = this;\n var _a = this, hasError = _a.hasError, isStopped = _a.isStopped, observers = _a.observers;\n if (hasError || isStopped) {\n return EMPTY_SUBSCRIPTION;\n }\n this.currentObservers = null;\n observers.push(subscriber);\n return new Subscription(function () {\n _this.currentObservers = null;\n arrRemove(observers, subscriber);\n });\n };\n Subject.prototype._checkFinalizedStatuses = function (subscriber) {\n var _a = this, hasError = _a.hasError, thrownError = _a.thrownError, isStopped = _a.isStopped;\n if (hasError) {\n subscriber.error(thrownError);\n }\n else if (isStopped) {\n subscriber.complete();\n }\n };\n Subject.prototype.asObservable = function () {\n var observable = new Observable();\n observable.source = this;\n return observable;\n };\n Subject.create = function (destination, source) {\n return new AnonymousSubject(destination, source);\n };\n return Subject;\n}(Observable));\nexport { Subject };\nvar AnonymousSubject = (function (_super) {\n __extends(AnonymousSubject, _super);\n function AnonymousSubject(destination, source) {\n var _this = _super.call(this) || this;\n _this.destination = destination;\n _this.source = source;\n return _this;\n }\n AnonymousSubject.prototype.next = function (value) {\n var _a, _b;\n (_b = (_a = this.destination) === null || _a === void 0 ? void 0 : _a.next) === null || _b === void 0 ? void 0 : _b.call(_a, value);\n };\n AnonymousSubject.prototype.error = function (err) {\n var _a, _b;\n (_b = (_a = this.destination) === null || _a === void 0 ? void 0 : _a.error) === null || _b === void 0 ? void 0 : _b.call(_a, err);\n };\n AnonymousSubject.prototype.complete = function () {\n var _a, _b;\n (_b = (_a = this.destination) === null || _a === void 0 ? void 0 : _a.complete) === null || _b === void 0 ? void 0 : _b.call(_a);\n };\n AnonymousSubject.prototype._subscribe = function (subscriber) {\n var _a, _b;\n return (_b = (_a = this.source) === null || _a === void 0 ? void 0 : _a.subscribe(subscriber)) !== null && _b !== void 0 ? _b : EMPTY_SUBSCRIPTION;\n };\n return AnonymousSubject;\n}(Subject));\nexport { AnonymousSubject };\n//# sourceMappingURL=Subject.js.map","// Licensed to the .NET Foundation under one or more agreements.\r\n// The .NET Foundation licenses this file to you under the MIT license.\r\nimport { LogLevel } from \"./ILogger\";\r\nimport { NullLogger } from \"./Loggers\";\r\n// Version token that will be replaced by the prepack command\r\n/** The version of the SignalR client. */\r\nexport const VERSION = \"7.0.5\";\r\n/** @private */\r\nexport class Arg {\r\n static isRequired(val, name) {\r\n if (val === null || val === undefined) {\r\n throw new Error(`The '${name}' argument is required.`);\r\n }\r\n }\r\n static isNotEmpty(val, name) {\r\n if (!val || val.match(/^\\s*$/)) {\r\n throw new Error(`The '${name}' argument should not be empty.`);\r\n }\r\n }\r\n static isIn(val, values, name) {\r\n // TypeScript enums have keys for **both** the name and the value of each enum member on the type itself.\r\n if (!(val in values)) {\r\n throw new Error(`Unknown ${name} value: ${val}.`);\r\n }\r\n }\r\n}\r\n/** @private */\r\nexport class Platform {\r\n // react-native has a window but no document so we should check both\r\n static get isBrowser() {\r\n return typeof window === \"object\" && typeof window.document === \"object\";\r\n }\r\n // WebWorkers don't have a window object so the isBrowser check would fail\r\n static get isWebWorker() {\r\n return typeof self === \"object\" && \"importScripts\" in self;\r\n }\r\n // react-native has a window but no document\r\n static get isReactNative() {\r\n return typeof window === \"object\" && typeof window.document === \"undefined\";\r\n }\r\n // Node apps shouldn't have a window object, but WebWorkers don't either\r\n // so we need to check for both WebWorker and window\r\n static get isNode() {\r\n return !this.isBrowser && !this.isWebWorker && !this.isReactNative;\r\n }\r\n}\r\n/** @private */\r\nexport function getDataDetail(data, includeContent) {\r\n let detail = \"\";\r\n if (isArrayBuffer(data)) {\r\n detail = `Binary data of length ${data.byteLength}`;\r\n if (includeContent) {\r\n detail += `. Content: '${formatArrayBuffer(data)}'`;\r\n }\r\n }\r\n else if (typeof data === \"string\") {\r\n detail = `String data of length ${data.length}`;\r\n if (includeContent) {\r\n detail += `. Content: '${data}'`;\r\n }\r\n }\r\n return detail;\r\n}\r\n/** @private */\r\nexport function formatArrayBuffer(data) {\r\n const view = new Uint8Array(data);\r\n // Uint8Array.map only supports returning another Uint8Array?\r\n let str = \"\";\r\n view.forEach((num) => {\r\n const pad = num < 16 ? \"0\" : \"\";\r\n str += `0x${pad}${num.toString(16)} `;\r\n });\r\n // Trim of trailing space.\r\n return str.substr(0, str.length - 1);\r\n}\r\n// Also in signalr-protocol-msgpack/Utils.ts\r\n/** @private */\r\nexport function isArrayBuffer(val) {\r\n return val && typeof ArrayBuffer !== \"undefined\" &&\r\n (val instanceof ArrayBuffer ||\r\n // Sometimes we get an ArrayBuffer that doesn't satisfy instanceof\r\n (val.constructor && val.constructor.name === \"ArrayBuffer\"));\r\n}\r\n/** @private */\r\nexport async function sendMessage(logger, transportName, httpClient, url, content, options) {\r\n const headers = {};\r\n const [name, value] = getUserAgentHeader();\r\n headers[name] = value;\r\n logger.log(LogLevel.Trace, `(${transportName} transport) sending data. ${getDataDetail(content, options.logMessageContent)}.`);\r\n const responseType = isArrayBuffer(content) ? \"arraybuffer\" : \"text\";\r\n const response = await httpClient.post(url, {\r\n content,\r\n headers: { ...headers, ...options.headers },\r\n responseType,\r\n timeout: options.timeout,\r\n withCredentials: options.withCredentials,\r\n });\r\n logger.log(LogLevel.Trace, `(${transportName} transport) request complete. Response status: ${response.statusCode}.`);\r\n}\r\n/** @private */\r\nexport function createLogger(logger) {\r\n if (logger === undefined) {\r\n return new ConsoleLogger(LogLevel.Information);\r\n }\r\n if (logger === null) {\r\n return NullLogger.instance;\r\n }\r\n if (logger.log !== undefined) {\r\n return logger;\r\n }\r\n return new ConsoleLogger(logger);\r\n}\r\n/** @private */\r\nexport class SubjectSubscription {\r\n constructor(subject, observer) {\r\n this._subject = subject;\r\n this._observer = observer;\r\n }\r\n dispose() {\r\n const index = this._subject.observers.indexOf(this._observer);\r\n if (index > -1) {\r\n this._subject.observers.splice(index, 1);\r\n }\r\n if (this._subject.observers.length === 0 && this._subject.cancelCallback) {\r\n this._subject.cancelCallback().catch((_) => { });\r\n }\r\n }\r\n}\r\n/** @private */\r\nexport class ConsoleLogger {\r\n constructor(minimumLogLevel) {\r\n this._minLevel = minimumLogLevel;\r\n this.out = console;\r\n }\r\n log(logLevel, message) {\r\n if (logLevel >= this._minLevel) {\r\n const msg = `[${new Date().toISOString()}] ${LogLevel[logLevel]}: ${message}`;\r\n switch (logLevel) {\r\n case LogLevel.Critical:\r\n case LogLevel.Error:\r\n this.out.error(msg);\r\n break;\r\n case LogLevel.Warning:\r\n this.out.warn(msg);\r\n break;\r\n case LogLevel.Information:\r\n this.out.info(msg);\r\n break;\r\n default:\r\n // console.debug only goes to attached debuggers in Node, so we use console.log for Trace and Debug\r\n this.out.log(msg);\r\n break;\r\n }\r\n }\r\n }\r\n}\r\n/** @private */\r\nexport function getUserAgentHeader() {\r\n let userAgentHeaderName = \"X-SignalR-User-Agent\";\r\n if (Platform.isNode) {\r\n userAgentHeaderName = \"User-Agent\";\r\n }\r\n return [userAgentHeaderName, constructUserAgent(VERSION, getOsName(), getRuntime(), getRuntimeVersion())];\r\n}\r\n/** @private */\r\nexport function constructUserAgent(version, os, runtime, runtimeVersion) {\r\n // Microsoft SignalR/[Version] ([Detailed Version]; [Operating System]; [Runtime]; [Runtime Version])\r\n let userAgent = \"Microsoft SignalR/\";\r\n const majorAndMinor = version.split(\".\");\r\n userAgent += `${majorAndMinor[0]}.${majorAndMinor[1]}`;\r\n userAgent += ` (${version}; `;\r\n if (os && os !== \"\") {\r\n userAgent += `${os}; `;\r\n }\r\n else {\r\n userAgent += \"Unknown OS; \";\r\n }\r\n userAgent += `${runtime}`;\r\n if (runtimeVersion) {\r\n userAgent += `; ${runtimeVersion}`;\r\n }\r\n else {\r\n userAgent += \"; Unknown Runtime Version\";\r\n }\r\n userAgent += \")\";\r\n return userAgent;\r\n}\r\n// eslint-disable-next-line spaced-comment\r\n/*#__PURE__*/ function getOsName() {\r\n if (Platform.isNode) {\r\n switch (process.platform) {\r\n case \"win32\":\r\n return \"Windows NT\";\r\n case \"darwin\":\r\n return \"macOS\";\r\n case \"linux\":\r\n return \"Linux\";\r\n default:\r\n return process.platform;\r\n }\r\n }\r\n else {\r\n return \"\";\r\n }\r\n}\r\n// eslint-disable-next-line spaced-comment\r\n/*#__PURE__*/ function getRuntimeVersion() {\r\n if (Platform.isNode) {\r\n return process.versions.node;\r\n }\r\n return undefined;\r\n}\r\nfunction getRuntime() {\r\n if (Platform.isNode) {\r\n return \"NodeJS\";\r\n }\r\n else {\r\n return \"Browser\";\r\n }\r\n}\r\n/** @private */\r\nexport function getErrorString(e) {\r\n if (e.stack) {\r\n return e.stack;\r\n }\r\n else if (e.message) {\r\n return e.message;\r\n }\r\n return `${e}`;\r\n}\r\n/** @private */\r\nexport function getGlobalThis() {\r\n // globalThis is semi-new and not available in Node until v12\r\n if (typeof globalThis !== \"undefined\") {\r\n return globalThis;\r\n }\r\n if (typeof self !== \"undefined\") {\r\n return self;\r\n }\r\n if (typeof window !== \"undefined\") {\r\n return window;\r\n }\r\n if (typeof global !== \"undefined\") {\r\n return global;\r\n }\r\n throw new Error(\"could not find global\");\r\n}\r\n//# sourceMappingURL=Utils.js.map","// Licensed to the .NET Foundation under one or more agreements.\r\n// The .NET Foundation licenses this file to you under the MIT license.\r\nimport { SubjectSubscription } from \"./Utils\";\r\n/** Stream implementation to stream items to the server. */\r\nexport class Subject {\r\n constructor() {\r\n this.observers = [];\r\n }\r\n next(item) {\r\n for (const observer of this.observers) {\r\n observer.next(item);\r\n }\r\n }\r\n error(err) {\r\n for (const observer of this.observers) {\r\n if (observer.error) {\r\n observer.error(err);\r\n }\r\n }\r\n }\r\n complete() {\r\n for (const observer of this.observers) {\r\n if (observer.complete) {\r\n observer.complete();\r\n }\r\n }\r\n }\r\n subscribe(observer) {\r\n this.observers.push(observer);\r\n return new SubjectSubscription(this, observer);\r\n }\r\n}\r\n//# sourceMappingURL=Subject.js.map","import Log from \"../log\";\nimport { Subject } from \"rxjs\";\nimport IPayload from \"./IPayload\";\nimport { IHubConnectionData } from \"./IHubConnectionData\";\nimport IServerInvoke from \"./IServerInvoke\";\nimport { IStreamResult, Subject as SignalrSubject } from \"@microsoft/signalr\";\n\n/**\n * Mock implementation of HubConnection,\n * Based on \"@microsoft/signalr\": \"7.0.5\" - \"@microsoft/signalr/src/HubConnection.ts\",\n */\nexport default class HubConnectionMock {\n private _hubConnectionData: IHubConnectionData[] = [];\n private _serverInvokes: IServerInvoke[] = [];\n public name: string;\n\n constructor(name: string) {\n this.name = name;\n }\n\n public publish(messageType: string, value: any): void {\n messageType = messageType.toLowerCase();\n\n const channels = this._hubConnectionData.filter(\n (x) => x.messageType === messageType\n );\n if (channels.length === 0) {\n Log.warn(`No subscribers for ${messageType}`);\n return;\n }\n Log.debug(\n `Publishing action: ${messageType} to ${channels.length} subscribers`\n );\n channels.forEach((x) => {\n x.channel.next({ name: messageType, value });\n });\n }\n\n public verify(\n messageType: string,\n callback?: (invokes: IServerInvoke[]) => void\n ): void {\n messageType = messageType.toLowerCase();\n\n const currentInvokes = this._serverInvokes.filter(\n (s) => s.action === messageType\n );\n\n if (callback) {\n callback(currentInvokes);\n }\n }\n\n // region Native SignalR methods\n\n /** Registers a handler that will be invoked when the hub method with the specified method name is invoked.\n *\n * @param {string} methodName The name of the hub method to define.\n * @param {Function} newMethod The handler that will be raised when the hub method is invoked.\n */\n public on(methodName: string, newMethod: (...args: any[]) => any): void;\n public on(methodName: string, newMethod: (...args: any[]) => void): void {\n methodName = methodName.toLowerCase();\n\n // Create if it doesn't exist yet\n if (!this._hubConnectionData.some((x) => x.messageType === methodName)) {\n this._hubConnectionData.push({\n messageType: methodName,\n isStream: false,\n channel: new Subject(),\n subscriptions: [],\n });\n }\n\n // Find the connection data\n let connectionData = this._hubConnectionData.find(\n (x) => x.messageType === methodName\n );\n\n if (!connectionData) {\n throw new Error(`Could not find connection data for ${methodName}`);\n }\n\n // Subscribe to the channel\n let subscription = connectionData.channel.subscribe((payload: IPayload) => {\n newMethod(payload.value);\n });\n\n connectionData.subscriptions.push({\n handler: newMethod,\n subscription,\n });\n }\n\n /** Invokes a streaming hub method on the server using the specified name and arguments.\n *\n * @typeparam T The type of the items returned by the server.\n * @param {string} methodName The name of the server method to invoke.\n * @param {any[]} args The arguments used to invoke the server method.\n * @returns {IStreamResult} An object that yields results from the server as they are received.\n */\n // @ts-ignore\n public stream(methodName: string, ...args: any[]): IStreamResult {\n methodName = methodName.toLowerCase();\n\n // Create if it doesn't exist yet\n if (!this._hubConnectionData.some((x) => x.messageType === methodName)) {\n this._hubConnectionData.push({\n messageType: methodName,\n isStream: true,\n channel: new Subject(),\n subscriptions: [],\n });\n }\n\n // Find the connection data\n let connectionData = this._hubConnectionData.find(\n (x) => x.messageType === methodName\n );\n\n if (!connectionData) {\n throw new Error(`Could not find connection data for ${methodName}`);\n }\n\n const signalrSubject = new SignalrSubject();\n\n // SignalR has a custom subject\n connectionData.channel.subscribe({\n next: (x) => signalrSubject.next(x),\n error: (err) => signalrSubject.error(err),\n complete: () => signalrSubject.complete(),\n });\n\n return signalrSubject;\n }\n\n /** Invokes a hub method on the server using the specified name and arguments.\n *\n * The Promise returned by this method resolves when the server indicates it has finished invoking the method. When the promise\n * resolves, the server has finished invoking the method. If the server method returns a result, it is produced as the result of\n * resolving the Promise.\n *\n * @typeparam T The expected return type.\n * @param {string} methodName The name of the server method to invoke.\n * @param {any[]} args The arguments used to invoke the server method.\n * @returns {Promise} A Promise that resolves with the result of the server method (if any), or rejects with an error.\n */\n invoke(methodName: string, ...args: any[]): Promise {\n return new Promise((resolve) => {\n this._serverInvokes.push({\n action: methodName,\n args,\n });\n resolve(0 as any);\n });\n }\n\n /** Removes all handlers for the specified hub method.\n *\n * @param {string} methodName The name of the method to remove handlers for.\n */\n public off(methodName: string): void;\n /** Removes the specified handler for the specified hub method.\n *\n * You must pass the exact same Function instance as was previously passed to {@link @microsoft/signalr.HubConnection.on}. Passing a different instance (even if the function\n * body is the same) will not remove the handler.\n *\n * @param {string} methodName The name of the method to remove handlers for.\n * @param {Function} method The handler to remove. This must be the same Function instance as the one passed to {@link @microsoft/signalr.HubConnection.on}.\n */\n public off(methodName: string, method: (...args: any[]) => void): void;\n public off(methodName: string, method?: (...args: any[]) => void): void {\n methodName = methodName.toLowerCase();\n\n const index = this._hubConnectionData.findIndex(\n (x) => x.messageType === methodName\n );\n if (index == -1) {\n Log.warn(`No channels registered for action name: ${methodName}`);\n return;\n }\n\n if (method) {\n const handlerIndex = this._hubConnectionData[\n index\n ].subscriptions.findIndex((x) => x.handler === method);\n\n if (handlerIndex == -1) {\n Log.warn(\n `Could not find the handler to delete for action name: ${methodName}`\n );\n return;\n }\n\n this._hubConnectionData[index].subscriptions.splice(handlerIndex, 1);\n\n if (this._hubConnectionData[index].subscriptions.length === 0) {\n this._hubConnectionData.splice(index, 1);\n }\n } else {\n this._hubConnectionData.splice(index, 1);\n }\n }\n\n /** Registers a handler that will be invoked when the connection is closed.\n *\n * @param {Function} callback The handler that will be invoked when the connection is closed. Optionally receives a single argument containing the error that caused the connection to close (if any).\n */\n // @ts-ignore\n public onclose(callback: (error?: Error) => void): void {\n return;\n }\n\n /** Starts the connection.\n *\n * @returns {Promise} A Promise that resolves when the connection has been successfully established, or rejects with an error.\n */\n public start(): Promise {\n return Promise.resolve();\n }\n\n /** Stops the connection.\n *\n * @returns {Promise} A Promise that resolves when the connection has been successfully terminated, or rejects with an error.\n */\n public async stop(): Promise {\n return Promise.resolve();\n }\n\n /** Registers a handler that will be invoked when the connection starts reconnecting.\n *\n * @param {Function} callback The handler that will be invoked when the connection starts reconnecting. Optionally receives a single argument containing the error that caused the connection to start reconnecting (if any).\n */\n // @ts-ignore\n public onreconnecting(callback: (error?: Error) => void): void {\n return;\n }\n\n /** Registers a handler that will be invoked when the connection successfully reconnects.\n *\n * @param {Function} callback The handler that will be invoked when the connection successfully reconnects.\n */\n // @ts-ignore\n public onreconnected(callback: (connectionId?: string) => void): void {\n return;\n }\n\n /** Invokes a hub method on the server using the specified name and arguments. Does not wait for a response from the receiver.\n *\n * The Promise returned by this method resolves when the client has sent the invocation to the server. The server may still\n * be processing the invocation.\n *\n * @param {string} methodName The name of the server method to invoke.\n * @param {any[]} args The arguments used to invoke the server method.\n * @returns {Promise} A Promise that resolves when the invocation has been successfully sent, or rejects with an error.\n */\n // @ts-ignore\n public send(methodName: string, ...args: any[]): Promise {\n return Promise.resolve();\n }\n\n // endregion\n}\n","import HubConnectionMock from \"./types/HubConnectionMock.ts\";\nimport IMockData from \"./types/IMockData.ts\";\nimport Log from \"./log.ts\";\n\nexport function isCypressRunning(): boolean {\n if (isSSR()) {\n return false;\n }\n return window.hasOwnProperty(\"Cypress\");\n}\n\nexport function getCypressSignalrMockData(): IMockData {\n if (!isSSR() && window[\"cypress-signalr-mock\"]) {\n return window[\"cypress-signalr-mock\"];\n }\n // Initialize the global object\n clearCypressSignalrMockData();\n return getCypressSignalrMockData();\n}\n\nexport function setCypressSignalrMockData(value: IMockData): void {\n if (isSSR()) {\n return;\n }\n window[\"cypress-signalr-mock\"] = value;\n}\n\nexport function clearCypressSignalrMockData(): void {\n setCypressSignalrMockData(defaultCypressSignalrMockData());\n}\n\nexport function defaultCypressSignalrMockData(): IMockData {\n return {\n mocks: [],\n };\n}\n\nexport function getHubConnectionMock(\n hubName: string\n): HubConnectionMock | null {\n const data = getCypressSignalrMockData();\n return data.mocks.find((x) => x.name === hubName) ?? null;\n}\n\nexport function isSSR(): boolean {\n if (!window) {\n Log.error(\n \"window is not defined. This most likely happens during SSR, which is not supported,\"\n );\n return true;\n }\n return false;\n}\n","/// \nimport Log from \"./log\";\nimport IServerInvoke from \"./types/IServerInvoke\";\nimport {\n clearCypressSignalrMockData,\n getCypressSignalrMockData,\n getHubConnectionMock,\n isCypressRunning,\n} from \"./utils.ts\";\n\nexport function setupCypressCommands() {\n if (!isCypressRunning()) {\n Log.info(\"Cypress is not running, skipping setup of Cypress commands\");\n return;\n }\n\n // @ts-ignore\n const cypress = window.Cypress;\n\n cypress.Commands.add(\"hubPublish\", hubPublish);\n\n cypress.Commands.add(\"hubVerifyInvokes\", hubVerify);\n\n cypress.Commands.add(\"hubClear\", hubClear);\n\n cypress.Commands.add(\"hubPrintData\", hubPrintData);\n}\n\nexport function hubPublish(hubName: string, messageType: string, payload: any) {\n const hubConnectionMock = getHubConnectionMock(hubName);\n if (!hubConnectionMock) {\n Log.error(`[cy.hubPublish] - HubConnectionMock not found for ${hubName}`);\n return;\n }\n hubConnectionMock.publish(messageType, payload);\n}\n\nexport function hubVerify(\n hubName: string,\n messageType: string,\n callback?: (invokes: IServerInvoke[]) => void\n) {\n const hubConnectionMock = getHubConnectionMock(hubName);\n if (!hubConnectionMock) {\n Log.error(\n `[cy.hubVerify] - HubConnectionMock not found for hub with name: ${hubName}`\n );\n return;\n }\n hubConnectionMock.verify(messageType, callback);\n}\n\nexport function hubPrintData() {\n Log.info(\n 'Current window[\"cypress-signalr-mock\"] data:',\n getCypressSignalrMockData()\n );\n}\n\nexport function hubClear() {\n clearCypressSignalrMockData();\n}\n","// load type definitions that come with Cypress module\n// and then add our new commands to the \"cy\" object\n/// \n\nimport { HubConnection } from \"@microsoft/signalr\";\nimport HubConnectionMock from \"./types/HubConnectionMock\";\nimport { setupCypressCommands } from \"./cypress-commands\";\nimport IMockData from \"./types/IMockData\";\nimport IServerInvoke from \"./types/IServerInvoke\";\nimport { getCypressSignalrMockData, isCypressRunning } from \"./utils.ts\";\n\nsetupCypressCommands();\n\nexport function useCypressSignalRMock(name: string): HubConnection | null {\n if (!isCypressRunning()) {\n return null;\n }\n\n const mock = new HubConnectionMock(name);\n getCypressSignalrMockData().mocks.push(mock);\n return (mock as unknown);\n}\n\n/**\n * Typings\n */\n// This cannot be in a index.d.ts file otherwise it will not be loaded in by Cypress\ndeclare global {\n interface Window {\n \"cypress-signalr-mock\": IMockData;\n }\n\n namespace Cypress {\n interface Chainable {\n /**\n * Simulates a message sent from the Server => Client\n * @param hubName The name of the hub\n * @param messageType The name of the message type\n * @param payload The payload to send with the action\n */\n hubPublish(\n hubName: string,\n messageType: string,\n payload: any\n ): Chainable;\n\n /**\n * Verifies that a message was sent from the Client => Server\n * @param hubName The name of the hub\n * @param messageType The name of the message type\n * @param callback A callback function that will be called with the invokes\n */\n hubVerifyInvokes(\n hubName: string,\n messageType: string,\n callback?: (invokes: IServerInvoke[]) => void\n ): Chainable;\n\n /**\n * Clears all data from the window[\"cypress-signalr-mock\"] object\n */\n hubClear(): Chainable;\n\n /**\n * Prints the current data to console in the window[\"cypress-signalr-mock\"] object\n */\n hubPrintData(): Chainable;\n }\n }\n}\n"],"names":["s","m","h","d","w","y","ms","val","options","type","parse","fmtLong","fmtShort","str","match","n","msAbs","plural","name","isPlural","setup","env","createDebug","coerce","disable","enable","enabled","require$$0","destroy","key","selectColor","namespace","hash","i","prevTime","enableOverride","namespacesCache","enabledCache","debug","args","self","curr","index","format","formatter","extend","v","delimiter","newDebug","namespaces","split","len","toNamespace","regexp","common","exports","formatArgs","save","load","useColors","localstorage","warned","module","c","lastC","r","formatters","error","Log","message","value","throwError","__publicField","extendStatics","b","p","__extends","__","__values","o","__read","ar","e","__spreadArray","to","from","pack","l","isFunction","createErrorClass","createImpl","_super","instance","ctorFunc","UnsubscriptionError","errors","err","arrRemove","arr","item","Subscription","initialTeardown","e_1","_a","e_2","_b","_parentage","_parentage_1","_parentage_1_1","parent_1","e_1_1","initialFinalizer","_finalizers","_finalizers_1","_finalizers_1_1","finalizer","execFinalizer","e_2_1","teardown","parent","empty","EMPTY_SUBSCRIPTION","isSubscription","config","timeoutProvider","handler","timeout","_i","delegate","handle","reportUnhandledError","noop","errorContext","cb","Subscriber","destination","_this","EMPTY_OBSERVER","next","complete","SafeSubscriber","_bind","bind","fn","thisArg","ConsumerObserver","partialObserver","handleUnhandledError","observerOrNext","context_1","defaultErrorHandler","observable","identity","x","pipeFromArray","fns","input","prev","Observable","subscribe","operator","subscriber","isSubscriber","source","sink","promiseCtor","getPromiseCtor","resolve","reject","Symbol_observable","operations","isObserver","ObjectUnsubscribedError","Subject","subject","AnonymousSubject","_c","observer","observers","hasError","isStopped","thrownError","SubjectSubscription","_","HubConnectionMock","messageType","channels","callback","currentInvokes","methodName","newMethod","connectionData","subscription","payload","signalrSubject","SignalrSubject","method","handlerIndex","isCypressRunning","isSSR","getCypressSignalrMockData","clearCypressSignalrMockData","setCypressSignalrMockData","defaultCypressSignalrMockData","getHubConnectionMock","hubName","setupCypressCommands","cypress","hubPublish","hubVerify","hubClear","hubPrintData","hubConnectionMock","useCypressSignalRMock","mock"],"mappings":"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","x_google_ignoreList":[0,1,2,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23]} \ No newline at end of file diff --git a/dist/index.umd.cjs b/dist/index.umd.cjs new file mode 100644 index 0000000..2cb37d6 --- /dev/null +++ b/dist/index.umd.cjs @@ -0,0 +1,4 @@ +(function(y,b){typeof exports=="object"&&typeof module<"u"?b(exports):typeof define=="function"&&define.amd?define(["exports"],b):(y=typeof globalThis<"u"?globalThis:y||self,b(y.index={}))})(this,function(y){"use strict";var Te=Object.defineProperty;var $e=(y,b,g)=>b in y?Te(y,b,{enumerable:!0,configurable:!0,writable:!0,value:g}):y[b]=g;var S=(y,b,g)=>($e(y,typeof b!="symbol"?b+"":b,g),g);function b(t){return t&&t.__esModule&&Object.prototype.hasOwnProperty.call(t,"default")?t.default:t}var g={exports:{}},M,B;function ie(){if(B)return M;B=1;var t=1e3,r=t*60,e=r*60,n=e*24,o=n*7,s=n*365.25;M=function(i,u){u=u||{};var c=typeof i;if(c==="string"&&i.length>0)return a(i);if(c==="number"&&isFinite(i))return u.long?l(i):f(i);throw new Error("val is not a non-empty string or a valid number. val="+JSON.stringify(i))};function a(i){if(i=String(i),!(i.length>100)){var u=/^(-?(?:\d+)?\.?\d+) *(milliseconds?|msecs?|ms|seconds?|secs?|s|minutes?|mins?|m|hours?|hrs?|h|days?|d|weeks?|w|years?|yrs?|y)?$/i.exec(i);if(u){var c=parseFloat(u[1]),d=(u[2]||"ms").toLowerCase();switch(d){case"years":case"year":case"yrs":case"yr":case"y":return c*s;case"weeks":case"week":case"w":return c*o;case"days":case"day":case"d":return c*n;case"hours":case"hour":case"hrs":case"hr":case"h":return c*e;case"minutes":case"minute":case"mins":case"min":case"m":return c*r;case"seconds":case"second":case"secs":case"sec":case"s":return c*t;case"milliseconds":case"millisecond":case"msecs":case"msec":case"ms":return c;default:return}}}}function f(i){var u=Math.abs(i);return u>=n?Math.round(i/n)+"d":u>=e?Math.round(i/e)+"h":u>=r?Math.round(i/r)+"m":u>=t?Math.round(i/t)+"s":i+"ms"}function l(i){var u=Math.abs(i);return u>=n?h(i,u,n,"day"):u>=e?h(i,u,e,"hour"):u>=r?h(i,u,r,"minute"):u>=t?h(i,u,t,"second"):i+" ms"}function h(i,u,c,d){var F=u>=c*1.5;return Math.round(i/c)+" "+d+(F?"s":"")}return M}function se(t){e.debug=e,e.default=e,e.coerce=l,e.disable=s,e.enable=o,e.enabled=a,e.humanize=ie(),e.destroy=h,Object.keys(t).forEach(i=>{e[i]=t[i]}),e.names=[],e.skips=[],e.formatters={};function r(i){let u=0;for(let c=0;c{if(z==="%%")return"%";D++;const oe=e.formatters[Me];if(typeof oe=="function"){const Ie=v[D];z=oe.call(w,Ie),v.splice(D,1),D--}return z}),e.formatArgs.call(w,v),(w.log||e.log).apply(w,v)}return p.namespace=i,p.useColors=e.useColors(),p.color=e.selectColor(i),p.extend=n,p.destroy=e.destroy,Object.defineProperty(p,"enabled",{enumerable:!0,configurable:!1,get:()=>c!==null?c:(d!==e.namespaces&&(d=e.namespaces,F=e.enabled(i)),F),set:v=>{c=v}}),typeof e.init=="function"&&e.init(p),p}function n(i,u){const c=e(this.namespace+(typeof u>"u"?":":u)+i);return c.log=this.log,c}function o(i){e.save(i),e.namespaces=i,e.names=[],e.skips=[];let u;const c=(typeof i=="string"?i:"").split(/[\s,]+/),d=c.length;for(u=0;u"-"+u)].join(",");return e.enable(""),i}function a(i){if(i[i.length-1]==="*")return!0;let u,c;for(u=0,c=e.skips.length;u{let l=!1;return()=>{l||(l=!0,console.warn("Instance method `debug.destroy()` is deprecated and no longer does anything. It will be removed in the next major version of `debug`."))}})(),r.colors=["#0000CC","#0000FF","#0033CC","#0033FF","#0066CC","#0066FF","#0099CC","#0099FF","#00CC00","#00CC33","#00CC66","#00CC99","#00CCCC","#00CCFF","#3300CC","#3300FF","#3333CC","#3333FF","#3366CC","#3366FF","#3399CC","#3399FF","#33CC00","#33CC33","#33CC66","#33CC99","#33CCCC","#33CCFF","#6600CC","#6600FF","#6633CC","#6633FF","#66CC00","#66CC33","#9900CC","#9900FF","#9933CC","#9933FF","#99CC00","#99CC33","#CC0000","#CC0033","#CC0066","#CC0099","#CC00CC","#CC00FF","#CC3300","#CC3333","#CC3366","#CC3399","#CC33CC","#CC33FF","#CC6600","#CC6633","#CC9900","#CC9933","#CCCC00","#CCCC33","#FF0000","#FF0033","#FF0066","#FF0099","#FF00CC","#FF00FF","#FF3300","#FF3333","#FF3366","#FF3399","#FF33CC","#FF33FF","#FF6600","#FF6633","#FF9900","#FF9933","#FFCC00","#FFCC33"];function e(){return typeof window<"u"&&window.process&&(window.process.type==="renderer"||window.process.__nwjs)?!0:typeof navigator<"u"&&navigator.userAgent&&navigator.userAgent.toLowerCase().match(/(edge|trident)\/(\d+)/)?!1:typeof document<"u"&&document.documentElement&&document.documentElement.style&&document.documentElement.style.WebkitAppearance||typeof window<"u"&&window.console&&(window.console.firebug||window.console.exception&&window.console.table)||typeof navigator<"u"&&navigator.userAgent&&navigator.userAgent.toLowerCase().match(/firefox\/(\d+)/)&&parseInt(RegExp.$1,10)>=31||typeof navigator<"u"&&navigator.userAgent&&navigator.userAgent.toLowerCase().match(/applewebkit\/(\d+)/)}function n(l){if(l[0]=(this.useColors?"%c":"")+this.namespace+(this.useColors?" %c":" ")+l[0]+(this.useColors?"%c ":" ")+"+"+t.exports.humanize(this.diff),!this.useColors)return;const h="color: "+this.color;l.splice(1,0,h,"color: inherit");let i=0,u=0;l[0].replace(/%[a-zA-Z%]/g,c=>{c!=="%%"&&(i++,c==="%c"&&(u=i))}),l.splice(u,0,h)}r.log=console.debug||console.log||(()=>{});function o(l){try{l?r.storage.setItem("debug",l):r.storage.removeItem("debug")}catch{}}function s(){let l;try{l=r.storage.getItem("debug")}catch{}return!l&&typeof process<"u"&&"env"in process&&(l=process.env.DEBUG),l}function a(){try{return localStorage}catch{}}t.exports=ue(r);const{formatters:f}=t.exports;f.j=function(l){try{return JSON.stringify(l)}catch(h){return"[UnexpectedJSONParseError]: "+h.message}}})(g,g.exports);var ce=g.exports;const ae=b(ce);class C{static debug(r){ae("cypress-signalr-mock")(r)}static info(r,e=void 0){console.info(this._prefix+r,e)}static warn(r){console.warn(this._prefix+r)}static error(r,e=!0){if(e)throw new Error(this._prefix+r);console.error(this._prefix+r)}}S(C,"_prefix","[Cypress-SignalR-Mock] - ");var I=function(t,r){return I=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,n){e.__proto__=n}||function(e,n){for(var o in n)Object.prototype.hasOwnProperty.call(n,o)&&(e[o]=n[o])},I(t,r)};function _(t,r){if(typeof r!="function"&&r!==null)throw new TypeError("Class extends value "+String(r)+" is not a constructor or null");I(t,r);function e(){this.constructor=t}t.prototype=r===null?Object.create(r):(e.prototype=r.prototype,new e)}function T(t){var r=typeof Symbol=="function"&&Symbol.iterator,e=r&&t[r],n=0;if(e)return e.call(t);if(t&&typeof t.length=="number")return{next:function(){return t&&n>=t.length&&(t=void 0),{value:t&&t[n++],done:!t}}};throw new TypeError(r?"Object is not iterable.":"Symbol.iterator is not defined.")}function E(t,r){var e=typeof Symbol=="function"&&t[Symbol.iterator];if(!e)return t;var n=e.call(t),o,s=[],a;try{for(;(r===void 0||r-- >0)&&!(o=n.next()).done;)s.push(o.value)}catch(f){a={error:f}}finally{try{o&&!o.done&&(e=n.return)&&e.call(n)}finally{if(a)throw a.error}}return s}function k(t,r,e){if(e||arguments.length===2)for(var n=0,o=r.length,s;n0},enumerable:!1,configurable:!0}),r.prototype._trySubscribe=function(e){return this._throwIfClosed(),t.prototype._trySubscribe.call(this,e)},r.prototype._subscribe=function(e){return this._throwIfClosed(),this._checkFinalizedStatuses(e),this._innerSubscribe(e)},r.prototype._innerSubscribe=function(e){var n=this,o=this,s=o.hasError,a=o.isStopped,f=o.observers;return s||a?q:(this.currentObservers=null,f.push(e),new x(function(){n.currentObservers=null,R(f,e)}))},r.prototype._checkFinalizedStatuses=function(e){var n=this,o=n.hasError,s=n.thrownError,a=n.isStopped;o?e.error(s):a&&e.complete()},r.prototype.asObservable=function(){var e=new X;return e.source=this,e},r.create=function(e,n){return new ee(e,n)},r}(X),ee=function(t){_(r,t);function r(e,n){var o=t.call(this)||this;return o.destination=e,o.source=n,o}return r.prototype.next=function(e){var n,o;(o=(n=this.destination)===null||n===void 0?void 0:n.next)===null||o===void 0||o.call(n,e)},r.prototype.error=function(e){var n,o;(o=(n=this.destination)===null||n===void 0?void 0:n.error)===null||o===void 0||o.call(n,e)},r.prototype.complete=function(){var e,n;(n=(e=this.destination)===null||e===void 0?void 0:e.complete)===null||n===void 0||n.call(e)},r.prototype._subscribe=function(e){var n,o;return(o=(n=this.source)===null||n===void 0?void 0:n.subscribe(e))!==null&&o!==void 0?o:q},r}(V);class we{constructor(r,e){this._subject=r,this._observer=e}dispose(){const r=this._subject.observers.indexOf(this._observer);r>-1&&this._subject.observers.splice(r,1),this._subject.observers.length===0&&this._subject.cancelCallback&&this._subject.cancelCallback().catch(e=>{})}}class Fe{constructor(){this.observers=[]}next(r){for(const e of this.observers)e.next(r)}error(r){for(const e of this.observers)e.error&&e.error(r)}complete(){for(const r of this.observers)r.complete&&r.complete()}subscribe(r){return this.observers.push(r),new we(this,r)}}class Se{constructor(r){S(this,"_hubConnectionData",[]);S(this,"_serverInvokes",[]);S(this,"name");this.name=r}publish(r,e){r=r.toLowerCase();const n=this._hubConnectionData.filter(o=>o.messageType===r);if(n.length===0){C.warn(`No subscribers for ${r}`);return}C.debug(`Publishing action: ${r} to ${n.length} subscribers`),n.forEach(o=>{o.channel.next({name:r,value:e})})}verify(r,e){r=r.toLowerCase();const n=this._serverInvokes.filter(o=>o.action===r);e&&e(n)}on(r,e){r=r.toLowerCase(),this._hubConnectionData.some(s=>s.messageType===r)||this._hubConnectionData.push({messageType:r,isStream:!1,channel:new V,subscriptions:[]});let n=this._hubConnectionData.find(s=>s.messageType===r);if(!n)throw new Error(`Could not find connection data for ${r}`);let o=n.channel.subscribe(s=>{e(s.value)});n.subscriptions.push({handler:e,subscription:o})}stream(r,...e){r=r.toLowerCase(),this._hubConnectionData.some(s=>s.messageType===r)||this._hubConnectionData.push({messageType:r,isStream:!0,channel:new V,subscriptions:[]});let n=this._hubConnectionData.find(s=>s.messageType===r);if(!n)throw new Error(`Could not find connection data for ${r}`);const o=new Fe;return n.channel.subscribe({next:s=>o.next(s),error:s=>o.error(s),complete:()=>o.complete()}),o}invoke(r,...e){return new Promise(n=>{this._serverInvokes.push({action:r,args:e}),n(0)})}off(r,e){r=r.toLowerCase();const n=this._hubConnectionData.findIndex(o=>o.messageType===r);if(n==-1){C.warn(`No channels registered for action name: ${r}`);return}if(e){const o=this._hubConnectionData[n].subscriptions.findIndex(s=>s.handler===e);if(o==-1){C.warn(`Could not find the handler to delete for action name: ${r}`);return}this._hubConnectionData[n].subscriptions.splice(o,1),this._hubConnectionData[n].subscriptions.length===0&&this._hubConnectionData.splice(n,1)}else this._hubConnectionData.splice(n,1)}onclose(r){}start(){return Promise.resolve()}async stop(){return Promise.resolve()}onreconnecting(r){}onreconnected(r){}send(r,...e){return Promise.resolve()}}function re(){return Y()?!1:window.hasOwnProperty("Cypress")}function O(){return!Y()&&window["cypress-signalr-mock"]?window["cypress-signalr-mock"]:(te(),O())}function _e(t){Y()||(window["cypress-signalr-mock"]=t)}function te(){_e(Ee())}function Ee(){return{mocks:[]}}function ne(t){return O().mocks.find(e=>e.name===t)??null}function Y(){return window?!1:(C.error("window is not defined. This most likely happens during SSR, which is not supported,"),!0)}function ke(){if(!re()){C.info("Cypress is not running, skipping setup of Cypress commands");return}const t=window.Cypress;t.Commands.add("hubPublish",xe),t.Commands.add("hubVerifyInvokes",je),t.Commands.add("hubClear",Oe),t.Commands.add("hubPrintData",Pe)}function xe(t,r,e){const n=ne(t);if(!n){C.error(`[cy.hubPublish] - HubConnectionMock not found for ${t}`);return}n.publish(r,e)}function je(t,r,e){const n=ne(t);if(!n){C.error(`[cy.hubVerify] - HubConnectionMock not found for hub with name: ${t}`);return}n.verify(r,e)}function Pe(){C.info('Current window["cypress-signalr-mock"] data:',O())}function Oe(){te()}ke();function Ae(t){if(!re())return null;const r=new Se(t);return O().mocks.push(r),r}y.useCypressSignalRMock=Ae,Object.defineProperty(y,Symbol.toStringTag,{value:"Module"})}); +//# sourceMappingURL=index.umd.cjs.map diff --git a/dist/index.umd.cjs.map b/dist/index.umd.cjs.map new file mode 100644 index 0000000..9340c10 --- /dev/null +++ b/dist/index.umd.cjs.map @@ -0,0 +1 @@ +{"version":3,"file":"index.umd.cjs","sources":["../node_modules/ms/index.js","../node_modules/debug/src/common.js","../node_modules/debug/src/browser.js","../src/log.ts","../node_modules/tslib/tslib.es6.js","../node_modules/rxjs/dist/esm5/internal/util/isFunction.js","../node_modules/rxjs/dist/esm5/internal/util/createErrorClass.js","../node_modules/rxjs/dist/esm5/internal/util/UnsubscriptionError.js","../node_modules/rxjs/dist/esm5/internal/util/arrRemove.js","../node_modules/rxjs/dist/esm5/internal/Subscription.js","../node_modules/rxjs/dist/esm5/internal/config.js","../node_modules/rxjs/dist/esm5/internal/scheduler/timeoutProvider.js","../node_modules/rxjs/dist/esm5/internal/util/reportUnhandledError.js","../node_modules/rxjs/dist/esm5/internal/util/noop.js","../node_modules/rxjs/dist/esm5/internal/util/errorContext.js","../node_modules/rxjs/dist/esm5/internal/Subscriber.js","../node_modules/rxjs/dist/esm5/internal/symbol/observable.js","../node_modules/rxjs/dist/esm5/internal/util/identity.js","../node_modules/rxjs/dist/esm5/internal/util/pipe.js","../node_modules/rxjs/dist/esm5/internal/Observable.js","../node_modules/rxjs/dist/esm5/internal/util/ObjectUnsubscribedError.js","../node_modules/rxjs/dist/esm5/internal/Subject.js","../node_modules/@microsoft/signalr/dist/esm/Utils.js","../node_modules/@microsoft/signalr/dist/esm/Subject.js","../src/types/HubConnectionMock.ts","../src/utils.ts","../src/cypress-commands.ts","../src/index.ts"],"sourcesContent":["/**\n * Helpers.\n */\n\nvar s = 1000;\nvar m = s * 60;\nvar h = m * 60;\nvar d = h * 24;\nvar w = d * 7;\nvar y = d * 365.25;\n\n/**\n * Parse or format the given `val`.\n *\n * Options:\n *\n * - `long` verbose formatting [false]\n *\n * @param {String|Number} val\n * @param {Object} [options]\n * @throws {Error} throw an error if val is not a non-empty string or a number\n * @return {String|Number}\n * @api public\n */\n\nmodule.exports = function(val, options) {\n options = options || {};\n var type = typeof val;\n if (type === 'string' && val.length > 0) {\n return parse(val);\n } else if (type === 'number' && isFinite(val)) {\n return options.long ? fmtLong(val) : fmtShort(val);\n }\n throw new Error(\n 'val is not a non-empty string or a valid number. val=' +\n JSON.stringify(val)\n );\n};\n\n/**\n * Parse the given `str` and return milliseconds.\n *\n * @param {String} str\n * @return {Number}\n * @api private\n */\n\nfunction parse(str) {\n str = String(str);\n if (str.length > 100) {\n return;\n }\n var match = /^(-?(?:\\d+)?\\.?\\d+) *(milliseconds?|msecs?|ms|seconds?|secs?|s|minutes?|mins?|m|hours?|hrs?|h|days?|d|weeks?|w|years?|yrs?|y)?$/i.exec(\n str\n );\n if (!match) {\n return;\n }\n var n = parseFloat(match[1]);\n var type = (match[2] || 'ms').toLowerCase();\n switch (type) {\n case 'years':\n case 'year':\n case 'yrs':\n case 'yr':\n case 'y':\n return n * y;\n case 'weeks':\n case 'week':\n case 'w':\n return n * w;\n case 'days':\n case 'day':\n case 'd':\n return n * d;\n case 'hours':\n case 'hour':\n case 'hrs':\n case 'hr':\n case 'h':\n return n * h;\n case 'minutes':\n case 'minute':\n case 'mins':\n case 'min':\n case 'm':\n return n * m;\n case 'seconds':\n case 'second':\n case 'secs':\n case 'sec':\n case 's':\n return n * s;\n case 'milliseconds':\n case 'millisecond':\n case 'msecs':\n case 'msec':\n case 'ms':\n return n;\n default:\n return undefined;\n }\n}\n\n/**\n * Short format for `ms`.\n *\n * @param {Number} ms\n * @return {String}\n * @api private\n */\n\nfunction fmtShort(ms) {\n var msAbs = Math.abs(ms);\n if (msAbs >= d) {\n return Math.round(ms / d) + 'd';\n }\n if (msAbs >= h) {\n return Math.round(ms / h) + 'h';\n }\n if (msAbs >= m) {\n return Math.round(ms / m) + 'm';\n }\n if (msAbs >= s) {\n return Math.round(ms / s) + 's';\n }\n return ms + 'ms';\n}\n\n/**\n * Long format for `ms`.\n *\n * @param {Number} ms\n * @return {String}\n * @api private\n */\n\nfunction fmtLong(ms) {\n var msAbs = Math.abs(ms);\n if (msAbs >= d) {\n return plural(ms, msAbs, d, 'day');\n }\n if (msAbs >= h) {\n return plural(ms, msAbs, h, 'hour');\n }\n if (msAbs >= m) {\n return plural(ms, msAbs, m, 'minute');\n }\n if (msAbs >= s) {\n return plural(ms, msAbs, s, 'second');\n }\n return ms + ' ms';\n}\n\n/**\n * Pluralization helper.\n */\n\nfunction plural(ms, msAbs, n, name) {\n var isPlural = msAbs >= n * 1.5;\n return Math.round(ms / n) + ' ' + name + (isPlural ? 's' : '');\n}\n","\n/**\n * This is the common logic for both the Node.js and web browser\n * implementations of `debug()`.\n */\n\nfunction setup(env) {\n\tcreateDebug.debug = createDebug;\n\tcreateDebug.default = createDebug;\n\tcreateDebug.coerce = coerce;\n\tcreateDebug.disable = disable;\n\tcreateDebug.enable = enable;\n\tcreateDebug.enabled = enabled;\n\tcreateDebug.humanize = require('ms');\n\tcreateDebug.destroy = destroy;\n\n\tObject.keys(env).forEach(key => {\n\t\tcreateDebug[key] = env[key];\n\t});\n\n\t/**\n\t* The currently active debug mode names, and names to skip.\n\t*/\n\n\tcreateDebug.names = [];\n\tcreateDebug.skips = [];\n\n\t/**\n\t* Map of special \"%n\" handling functions, for the debug \"format\" argument.\n\t*\n\t* Valid key names are a single, lower or upper-case letter, i.e. \"n\" and \"N\".\n\t*/\n\tcreateDebug.formatters = {};\n\n\t/**\n\t* Selects a color for a debug namespace\n\t* @param {String} namespace The namespace string for the debug instance to be colored\n\t* @return {Number|String} An ANSI color code for the given namespace\n\t* @api private\n\t*/\n\tfunction selectColor(namespace) {\n\t\tlet hash = 0;\n\n\t\tfor (let i = 0; i < namespace.length; i++) {\n\t\t\thash = ((hash << 5) - hash) + namespace.charCodeAt(i);\n\t\t\thash |= 0; // Convert to 32bit integer\n\t\t}\n\n\t\treturn createDebug.colors[Math.abs(hash) % createDebug.colors.length];\n\t}\n\tcreateDebug.selectColor = selectColor;\n\n\t/**\n\t* Create a debugger with the given `namespace`.\n\t*\n\t* @param {String} namespace\n\t* @return {Function}\n\t* @api public\n\t*/\n\tfunction createDebug(namespace) {\n\t\tlet prevTime;\n\t\tlet enableOverride = null;\n\t\tlet namespacesCache;\n\t\tlet enabledCache;\n\n\t\tfunction debug(...args) {\n\t\t\t// Disabled?\n\t\t\tif (!debug.enabled) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tconst self = debug;\n\n\t\t\t// Set `diff` timestamp\n\t\t\tconst curr = Number(new Date());\n\t\t\tconst ms = curr - (prevTime || curr);\n\t\t\tself.diff = ms;\n\t\t\tself.prev = prevTime;\n\t\t\tself.curr = curr;\n\t\t\tprevTime = curr;\n\n\t\t\targs[0] = createDebug.coerce(args[0]);\n\n\t\t\tif (typeof args[0] !== 'string') {\n\t\t\t\t// Anything else let's inspect with %O\n\t\t\t\targs.unshift('%O');\n\t\t\t}\n\n\t\t\t// Apply any `formatters` transformations\n\t\t\tlet index = 0;\n\t\t\targs[0] = args[0].replace(/%([a-zA-Z%])/g, (match, format) => {\n\t\t\t\t// If we encounter an escaped % then don't increase the array index\n\t\t\t\tif (match === '%%') {\n\t\t\t\t\treturn '%';\n\t\t\t\t}\n\t\t\t\tindex++;\n\t\t\t\tconst formatter = createDebug.formatters[format];\n\t\t\t\tif (typeof formatter === 'function') {\n\t\t\t\t\tconst val = args[index];\n\t\t\t\t\tmatch = formatter.call(self, val);\n\n\t\t\t\t\t// Now we need to remove `args[index]` since it's inlined in the `format`\n\t\t\t\t\targs.splice(index, 1);\n\t\t\t\t\tindex--;\n\t\t\t\t}\n\t\t\t\treturn match;\n\t\t\t});\n\n\t\t\t// Apply env-specific formatting (colors, etc.)\n\t\t\tcreateDebug.formatArgs.call(self, args);\n\n\t\t\tconst logFn = self.log || createDebug.log;\n\t\t\tlogFn.apply(self, args);\n\t\t}\n\n\t\tdebug.namespace = namespace;\n\t\tdebug.useColors = createDebug.useColors();\n\t\tdebug.color = createDebug.selectColor(namespace);\n\t\tdebug.extend = extend;\n\t\tdebug.destroy = createDebug.destroy; // XXX Temporary. Will be removed in the next major release.\n\n\t\tObject.defineProperty(debug, 'enabled', {\n\t\t\tenumerable: true,\n\t\t\tconfigurable: false,\n\t\t\tget: () => {\n\t\t\t\tif (enableOverride !== null) {\n\t\t\t\t\treturn enableOverride;\n\t\t\t\t}\n\t\t\t\tif (namespacesCache !== createDebug.namespaces) {\n\t\t\t\t\tnamespacesCache = createDebug.namespaces;\n\t\t\t\t\tenabledCache = createDebug.enabled(namespace);\n\t\t\t\t}\n\n\t\t\t\treturn enabledCache;\n\t\t\t},\n\t\t\tset: v => {\n\t\t\t\tenableOverride = v;\n\t\t\t}\n\t\t});\n\n\t\t// Env-specific initialization logic for debug instances\n\t\tif (typeof createDebug.init === 'function') {\n\t\t\tcreateDebug.init(debug);\n\t\t}\n\n\t\treturn debug;\n\t}\n\n\tfunction extend(namespace, delimiter) {\n\t\tconst newDebug = createDebug(this.namespace + (typeof delimiter === 'undefined' ? ':' : delimiter) + namespace);\n\t\tnewDebug.log = this.log;\n\t\treturn newDebug;\n\t}\n\n\t/**\n\t* Enables a debug mode by namespaces. This can include modes\n\t* separated by a colon and wildcards.\n\t*\n\t* @param {String} namespaces\n\t* @api public\n\t*/\n\tfunction enable(namespaces) {\n\t\tcreateDebug.save(namespaces);\n\t\tcreateDebug.namespaces = namespaces;\n\n\t\tcreateDebug.names = [];\n\t\tcreateDebug.skips = [];\n\n\t\tlet i;\n\t\tconst split = (typeof namespaces === 'string' ? namespaces : '').split(/[\\s,]+/);\n\t\tconst len = split.length;\n\n\t\tfor (i = 0; i < len; i++) {\n\t\t\tif (!split[i]) {\n\t\t\t\t// ignore empty strings\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\tnamespaces = split[i].replace(/\\*/g, '.*?');\n\n\t\t\tif (namespaces[0] === '-') {\n\t\t\t\tcreateDebug.skips.push(new RegExp('^' + namespaces.slice(1) + '$'));\n\t\t\t} else {\n\t\t\t\tcreateDebug.names.push(new RegExp('^' + namespaces + '$'));\n\t\t\t}\n\t\t}\n\t}\n\n\t/**\n\t* Disable debug output.\n\t*\n\t* @return {String} namespaces\n\t* @api public\n\t*/\n\tfunction disable() {\n\t\tconst namespaces = [\n\t\t\t...createDebug.names.map(toNamespace),\n\t\t\t...createDebug.skips.map(toNamespace).map(namespace => '-' + namespace)\n\t\t].join(',');\n\t\tcreateDebug.enable('');\n\t\treturn namespaces;\n\t}\n\n\t/**\n\t* Returns true if the given mode name is enabled, false otherwise.\n\t*\n\t* @param {String} name\n\t* @return {Boolean}\n\t* @api public\n\t*/\n\tfunction enabled(name) {\n\t\tif (name[name.length - 1] === '*') {\n\t\t\treturn true;\n\t\t}\n\n\t\tlet i;\n\t\tlet len;\n\n\t\tfor (i = 0, len = createDebug.skips.length; i < len; i++) {\n\t\t\tif (createDebug.skips[i].test(name)) {\n\t\t\t\treturn false;\n\t\t\t}\n\t\t}\n\n\t\tfor (i = 0, len = createDebug.names.length; i < len; i++) {\n\t\t\tif (createDebug.names[i].test(name)) {\n\t\t\t\treturn true;\n\t\t\t}\n\t\t}\n\n\t\treturn false;\n\t}\n\n\t/**\n\t* Convert regexp to namespace\n\t*\n\t* @param {RegExp} regxep\n\t* @return {String} namespace\n\t* @api private\n\t*/\n\tfunction toNamespace(regexp) {\n\t\treturn regexp.toString()\n\t\t\t.substring(2, regexp.toString().length - 2)\n\t\t\t.replace(/\\.\\*\\?$/, '*');\n\t}\n\n\t/**\n\t* Coerce `val`.\n\t*\n\t* @param {Mixed} val\n\t* @return {Mixed}\n\t* @api private\n\t*/\n\tfunction coerce(val) {\n\t\tif (val instanceof Error) {\n\t\t\treturn val.stack || val.message;\n\t\t}\n\t\treturn val;\n\t}\n\n\t/**\n\t* XXX DO NOT USE. This is a temporary stub function.\n\t* XXX It WILL be removed in the next major release.\n\t*/\n\tfunction destroy() {\n\t\tconsole.warn('Instance method `debug.destroy()` is deprecated and no longer does anything. It will be removed in the next major version of `debug`.');\n\t}\n\n\tcreateDebug.enable(createDebug.load());\n\n\treturn createDebug;\n}\n\nmodule.exports = setup;\n","/* eslint-env browser */\n\n/**\n * This is the web browser implementation of `debug()`.\n */\n\nexports.formatArgs = formatArgs;\nexports.save = save;\nexports.load = load;\nexports.useColors = useColors;\nexports.storage = localstorage();\nexports.destroy = (() => {\n\tlet warned = false;\n\n\treturn () => {\n\t\tif (!warned) {\n\t\t\twarned = true;\n\t\t\tconsole.warn('Instance method `debug.destroy()` is deprecated and no longer does anything. It will be removed in the next major version of `debug`.');\n\t\t}\n\t};\n})();\n\n/**\n * Colors.\n */\n\nexports.colors = [\n\t'#0000CC',\n\t'#0000FF',\n\t'#0033CC',\n\t'#0033FF',\n\t'#0066CC',\n\t'#0066FF',\n\t'#0099CC',\n\t'#0099FF',\n\t'#00CC00',\n\t'#00CC33',\n\t'#00CC66',\n\t'#00CC99',\n\t'#00CCCC',\n\t'#00CCFF',\n\t'#3300CC',\n\t'#3300FF',\n\t'#3333CC',\n\t'#3333FF',\n\t'#3366CC',\n\t'#3366FF',\n\t'#3399CC',\n\t'#3399FF',\n\t'#33CC00',\n\t'#33CC33',\n\t'#33CC66',\n\t'#33CC99',\n\t'#33CCCC',\n\t'#33CCFF',\n\t'#6600CC',\n\t'#6600FF',\n\t'#6633CC',\n\t'#6633FF',\n\t'#66CC00',\n\t'#66CC33',\n\t'#9900CC',\n\t'#9900FF',\n\t'#9933CC',\n\t'#9933FF',\n\t'#99CC00',\n\t'#99CC33',\n\t'#CC0000',\n\t'#CC0033',\n\t'#CC0066',\n\t'#CC0099',\n\t'#CC00CC',\n\t'#CC00FF',\n\t'#CC3300',\n\t'#CC3333',\n\t'#CC3366',\n\t'#CC3399',\n\t'#CC33CC',\n\t'#CC33FF',\n\t'#CC6600',\n\t'#CC6633',\n\t'#CC9900',\n\t'#CC9933',\n\t'#CCCC00',\n\t'#CCCC33',\n\t'#FF0000',\n\t'#FF0033',\n\t'#FF0066',\n\t'#FF0099',\n\t'#FF00CC',\n\t'#FF00FF',\n\t'#FF3300',\n\t'#FF3333',\n\t'#FF3366',\n\t'#FF3399',\n\t'#FF33CC',\n\t'#FF33FF',\n\t'#FF6600',\n\t'#FF6633',\n\t'#FF9900',\n\t'#FF9933',\n\t'#FFCC00',\n\t'#FFCC33'\n];\n\n/**\n * Currently only WebKit-based Web Inspectors, Firefox >= v31,\n * and the Firebug extension (any Firefox version) are known\n * to support \"%c\" CSS customizations.\n *\n * TODO: add a `localStorage` variable to explicitly enable/disable colors\n */\n\n// eslint-disable-next-line complexity\nfunction useColors() {\n\t// NB: In an Electron preload script, document will be defined but not fully\n\t// initialized. Since we know we're in Chrome, we'll just detect this case\n\t// explicitly\n\tif (typeof window !== 'undefined' && window.process && (window.process.type === 'renderer' || window.process.__nwjs)) {\n\t\treturn true;\n\t}\n\n\t// Internet Explorer and Edge do not support colors.\n\tif (typeof navigator !== 'undefined' && navigator.userAgent && navigator.userAgent.toLowerCase().match(/(edge|trident)\\/(\\d+)/)) {\n\t\treturn false;\n\t}\n\n\t// Is webkit? http://stackoverflow.com/a/16459606/376773\n\t// document is undefined in react-native: https://github.com/facebook/react-native/pull/1632\n\treturn (typeof document !== 'undefined' && document.documentElement && document.documentElement.style && document.documentElement.style.WebkitAppearance) ||\n\t\t// Is firebug? http://stackoverflow.com/a/398120/376773\n\t\t(typeof window !== 'undefined' && window.console && (window.console.firebug || (window.console.exception && window.console.table))) ||\n\t\t// Is firefox >= v31?\n\t\t// https://developer.mozilla.org/en-US/docs/Tools/Web_Console#Styling_messages\n\t\t(typeof navigator !== 'undefined' && navigator.userAgent && navigator.userAgent.toLowerCase().match(/firefox\\/(\\d+)/) && parseInt(RegExp.$1, 10) >= 31) ||\n\t\t// Double check webkit in userAgent just in case we are in a worker\n\t\t(typeof navigator !== 'undefined' && navigator.userAgent && navigator.userAgent.toLowerCase().match(/applewebkit\\/(\\d+)/));\n}\n\n/**\n * Colorize log arguments if enabled.\n *\n * @api public\n */\n\nfunction formatArgs(args) {\n\targs[0] = (this.useColors ? '%c' : '') +\n\t\tthis.namespace +\n\t\t(this.useColors ? ' %c' : ' ') +\n\t\targs[0] +\n\t\t(this.useColors ? '%c ' : ' ') +\n\t\t'+' + module.exports.humanize(this.diff);\n\n\tif (!this.useColors) {\n\t\treturn;\n\t}\n\n\tconst c = 'color: ' + this.color;\n\targs.splice(1, 0, c, 'color: inherit');\n\n\t// The final \"%c\" is somewhat tricky, because there could be other\n\t// arguments passed either before or after the %c, so we need to\n\t// figure out the correct index to insert the CSS into\n\tlet index = 0;\n\tlet lastC = 0;\n\targs[0].replace(/%[a-zA-Z%]/g, match => {\n\t\tif (match === '%%') {\n\t\t\treturn;\n\t\t}\n\t\tindex++;\n\t\tif (match === '%c') {\n\t\t\t// We only are interested in the *last* %c\n\t\t\t// (the user may have provided their own)\n\t\t\tlastC = index;\n\t\t}\n\t});\n\n\targs.splice(lastC, 0, c);\n}\n\n/**\n * Invokes `console.debug()` when available.\n * No-op when `console.debug` is not a \"function\".\n * If `console.debug` is not available, falls back\n * to `console.log`.\n *\n * @api public\n */\nexports.log = console.debug || console.log || (() => {});\n\n/**\n * Save `namespaces`.\n *\n * @param {String} namespaces\n * @api private\n */\nfunction save(namespaces) {\n\ttry {\n\t\tif (namespaces) {\n\t\t\texports.storage.setItem('debug', namespaces);\n\t\t} else {\n\t\t\texports.storage.removeItem('debug');\n\t\t}\n\t} catch (error) {\n\t\t// Swallow\n\t\t// XXX (@Qix-) should we be logging these?\n\t}\n}\n\n/**\n * Load `namespaces`.\n *\n * @return {String} returns the previously persisted debug modes\n * @api private\n */\nfunction load() {\n\tlet r;\n\ttry {\n\t\tr = exports.storage.getItem('debug');\n\t} catch (error) {\n\t\t// Swallow\n\t\t// XXX (@Qix-) should we be logging these?\n\t}\n\n\t// If debug isn't set in LS, and we're in Electron, try to load $DEBUG\n\tif (!r && typeof process !== 'undefined' && 'env' in process) {\n\t\tr = process.env.DEBUG;\n\t}\n\n\treturn r;\n}\n\n/**\n * Localstorage attempts to return the localstorage.\n *\n * This is necessary because safari throws\n * when a user disables cookies/localstorage\n * and you attempt to access it.\n *\n * @return {LocalStorage}\n * @api private\n */\n\nfunction localstorage() {\n\ttry {\n\t\t// TVMLKit (Apple TV JS Runtime) does not have a window object, just localStorage in the global context\n\t\t// The Browser also has localStorage in the global context.\n\t\treturn localStorage;\n\t} catch (error) {\n\t\t// Swallow\n\t\t// XXX (@Qix-) should we be logging these?\n\t}\n}\n\nmodule.exports = require('./common')(exports);\n\nconst {formatters} = module.exports;\n\n/**\n * Map %j to `JSON.stringify()`, since no Web Inspectors do that by default.\n */\n\nformatters.j = function (v) {\n\ttry {\n\t\treturn JSON.stringify(v);\n\t} catch (error) {\n\t\treturn '[UnexpectedJSONParseError]: ' + error.message;\n\t}\n};\n","import debug from \"debug\";\n\nexport default class Log {\n private static _prefix: string = \"[Cypress-SignalR-Mock] - \";\n\n public static debug(message: string) {\n debug(\"cypress-signalr-mock\")(message);\n }\n\n public static info(message: string, value: any = undefined) {\n console.info(this._prefix + message, value);\n }\n\n public static warn(message: string) {\n console.warn(this._prefix + message);\n }\n\n public static error(message: string, throwError: boolean = true) {\n if (throwError) {\n throw new Error(this._prefix + message);\n } else {\n console.error(this._prefix + message);\n }\n }\n}\n","/******************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n/* global Reflect, Promise */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\r\n if (typeof b !== \"function\" && b !== null)\r\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n }\r\n return __assign.apply(this, arguments);\r\n}\r\n\r\nexport function __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __esDecorate(ctor, descriptorIn, decorators, contextIn, initializers, extraInitializers) {\r\n function accept(f) { if (f !== void 0 && typeof f !== \"function\") throw new TypeError(\"Function expected\"); return f; }\r\n var kind = contextIn.kind, key = kind === \"getter\" ? \"get\" : kind === \"setter\" ? \"set\" : \"value\";\r\n var target = !descriptorIn && ctor ? contextIn[\"static\"] ? ctor : ctor.prototype : null;\r\n var descriptor = descriptorIn || (target ? Object.getOwnPropertyDescriptor(target, contextIn.name) : {});\r\n var _, done = false;\r\n for (var i = decorators.length - 1; i >= 0; i--) {\r\n var context = {};\r\n for (var p in contextIn) context[p] = p === \"access\" ? {} : contextIn[p];\r\n for (var p in contextIn.access) context.access[p] = contextIn.access[p];\r\n context.addInitializer = function (f) { if (done) throw new TypeError(\"Cannot add initializers after decoration has completed\"); extraInitializers.push(accept(f || null)); };\r\n var result = (0, decorators[i])(kind === \"accessor\" ? { get: descriptor.get, set: descriptor.set } : descriptor[key], context);\r\n if (kind === \"accessor\") {\r\n if (result === void 0) continue;\r\n if (result === null || typeof result !== \"object\") throw new TypeError(\"Object expected\");\r\n if (_ = accept(result.get)) descriptor.get = _;\r\n if (_ = accept(result.set)) descriptor.set = _;\r\n if (_ = accept(result.init)) initializers.push(_);\r\n }\r\n else if (_ = accept(result)) {\r\n if (kind === \"field\") initializers.push(_);\r\n else descriptor[key] = _;\r\n }\r\n }\r\n if (target) Object.defineProperty(target, contextIn.name, descriptor);\r\n done = true;\r\n};\r\n\r\nexport function __runInitializers(thisArg, initializers, value) {\r\n var useValue = arguments.length > 2;\r\n for (var i = 0; i < initializers.length; i++) {\r\n value = useValue ? initializers[i].call(thisArg, value) : initializers[i].call(thisArg);\r\n }\r\n return useValue ? value : void 0;\r\n};\r\n\r\nexport function __propKey(x) {\r\n return typeof x === \"symbol\" ? x : \"\".concat(x);\r\n};\r\n\r\nexport function __setFunctionName(f, name, prefix) {\r\n if (typeof name === \"symbol\") name = name.description ? \"[\".concat(name.description, \"]\") : \"\";\r\n return Object.defineProperty(f, \"name\", { configurable: true, value: prefix ? \"\".concat(prefix, \" \", name) : name });\r\n};\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (g && (g = 0, op[0] && (_ = 0)), _) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nexport var __createBinding = Object.create ? (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n var desc = Object.getOwnPropertyDescriptor(m, k);\r\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\r\n desc = { enumerable: true, get: function() { return m[k]; } };\r\n }\r\n Object.defineProperty(o, k2, desc);\r\n}) : (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n});\r\n\r\nexport function __exportStar(m, o) {\r\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(o, p)) __createBinding(o, m, p);\r\n}\r\n\r\nexport function __values(o) {\r\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\r\n if (m) return m.call(o);\r\n if (o && typeof o.length === \"number\") return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\r\n}\r\n\r\nexport function __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spreadArrays() {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n}\r\n\r\nexport function __spreadArray(to, from, pack) {\r\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\r\n if (ar || !(i in from)) {\r\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\r\n ar[i] = from[i];\r\n }\r\n }\r\n return to.concat(ar || Array.prototype.slice.call(from));\r\n}\r\n\r\nexport function __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: false } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n};\r\n\r\nvar __setModuleDefault = Object.create ? (function(o, v) {\r\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\r\n}) : function(o, v) {\r\n o[\"default\"] = v;\r\n};\r\n\r\nexport function __importStar(mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\r\n __setModuleDefault(result, mod);\r\n return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n\r\nexport function __classPrivateFieldGet(receiver, state, kind, f) {\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\r\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\r\n return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\r\n}\r\n\r\nexport function __classPrivateFieldSet(receiver, state, value, kind, f) {\r\n if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\r\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\r\n return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\r\n}\r\n\r\nexport function __classPrivateFieldIn(state, receiver) {\r\n if (receiver === null || (typeof receiver !== \"object\" && typeof receiver !== \"function\")) throw new TypeError(\"Cannot use 'in' operator on non-object\");\r\n return typeof state === \"function\" ? receiver === state : state.has(receiver);\r\n}\r\n","export function isFunction(value) {\n return typeof value === 'function';\n}\n//# sourceMappingURL=isFunction.js.map","export function createErrorClass(createImpl) {\n var _super = function (instance) {\n Error.call(instance);\n instance.stack = new Error().stack;\n };\n var ctorFunc = createImpl(_super);\n ctorFunc.prototype = Object.create(Error.prototype);\n ctorFunc.prototype.constructor = ctorFunc;\n return ctorFunc;\n}\n//# sourceMappingURL=createErrorClass.js.map","import { createErrorClass } from './createErrorClass';\nexport var UnsubscriptionError = createErrorClass(function (_super) {\n return function UnsubscriptionErrorImpl(errors) {\n _super(this);\n this.message = errors\n ? errors.length + \" errors occurred during unsubscription:\\n\" + errors.map(function (err, i) { return i + 1 + \") \" + err.toString(); }).join('\\n ')\n : '';\n this.name = 'UnsubscriptionError';\n this.errors = errors;\n };\n});\n//# sourceMappingURL=UnsubscriptionError.js.map","export function arrRemove(arr, item) {\n if (arr) {\n var index = arr.indexOf(item);\n 0 <= index && arr.splice(index, 1);\n }\n}\n//# sourceMappingURL=arrRemove.js.map","import { __read, __spreadArray, __values } from \"tslib\";\nimport { isFunction } from './util/isFunction';\nimport { UnsubscriptionError } from './util/UnsubscriptionError';\nimport { arrRemove } from './util/arrRemove';\nvar Subscription = (function () {\n function Subscription(initialTeardown) {\n this.initialTeardown = initialTeardown;\n this.closed = false;\n this._parentage = null;\n this._finalizers = null;\n }\n Subscription.prototype.unsubscribe = function () {\n var e_1, _a, e_2, _b;\n var errors;\n if (!this.closed) {\n this.closed = true;\n var _parentage = this._parentage;\n if (_parentage) {\n this._parentage = null;\n if (Array.isArray(_parentage)) {\n try {\n for (var _parentage_1 = __values(_parentage), _parentage_1_1 = _parentage_1.next(); !_parentage_1_1.done; _parentage_1_1 = _parentage_1.next()) {\n var parent_1 = _parentage_1_1.value;\n parent_1.remove(this);\n }\n }\n catch (e_1_1) { e_1 = { error: e_1_1 }; }\n finally {\n try {\n if (_parentage_1_1 && !_parentage_1_1.done && (_a = _parentage_1.return)) _a.call(_parentage_1);\n }\n finally { if (e_1) throw e_1.error; }\n }\n }\n else {\n _parentage.remove(this);\n }\n }\n var initialFinalizer = this.initialTeardown;\n if (isFunction(initialFinalizer)) {\n try {\n initialFinalizer();\n }\n catch (e) {\n errors = e instanceof UnsubscriptionError ? e.errors : [e];\n }\n }\n var _finalizers = this._finalizers;\n if (_finalizers) {\n this._finalizers = null;\n try {\n for (var _finalizers_1 = __values(_finalizers), _finalizers_1_1 = _finalizers_1.next(); !_finalizers_1_1.done; _finalizers_1_1 = _finalizers_1.next()) {\n var finalizer = _finalizers_1_1.value;\n try {\n execFinalizer(finalizer);\n }\n catch (err) {\n errors = errors !== null && errors !== void 0 ? errors : [];\n if (err instanceof UnsubscriptionError) {\n errors = __spreadArray(__spreadArray([], __read(errors)), __read(err.errors));\n }\n else {\n errors.push(err);\n }\n }\n }\n }\n catch (e_2_1) { e_2 = { error: e_2_1 }; }\n finally {\n try {\n if (_finalizers_1_1 && !_finalizers_1_1.done && (_b = _finalizers_1.return)) _b.call(_finalizers_1);\n }\n finally { if (e_2) throw e_2.error; }\n }\n }\n if (errors) {\n throw new UnsubscriptionError(errors);\n }\n }\n };\n Subscription.prototype.add = function (teardown) {\n var _a;\n if (teardown && teardown !== this) {\n if (this.closed) {\n execFinalizer(teardown);\n }\n else {\n if (teardown instanceof Subscription) {\n if (teardown.closed || teardown._hasParent(this)) {\n return;\n }\n teardown._addParent(this);\n }\n (this._finalizers = (_a = this._finalizers) !== null && _a !== void 0 ? _a : []).push(teardown);\n }\n }\n };\n Subscription.prototype._hasParent = function (parent) {\n var _parentage = this._parentage;\n return _parentage === parent || (Array.isArray(_parentage) && _parentage.includes(parent));\n };\n Subscription.prototype._addParent = function (parent) {\n var _parentage = this._parentage;\n this._parentage = Array.isArray(_parentage) ? (_parentage.push(parent), _parentage) : _parentage ? [_parentage, parent] : parent;\n };\n Subscription.prototype._removeParent = function (parent) {\n var _parentage = this._parentage;\n if (_parentage === parent) {\n this._parentage = null;\n }\n else if (Array.isArray(_parentage)) {\n arrRemove(_parentage, parent);\n }\n };\n Subscription.prototype.remove = function (teardown) {\n var _finalizers = this._finalizers;\n _finalizers && arrRemove(_finalizers, teardown);\n if (teardown instanceof Subscription) {\n teardown._removeParent(this);\n }\n };\n Subscription.EMPTY = (function () {\n var empty = new Subscription();\n empty.closed = true;\n return empty;\n })();\n return Subscription;\n}());\nexport { Subscription };\nexport var EMPTY_SUBSCRIPTION = Subscription.EMPTY;\nexport function isSubscription(value) {\n return (value instanceof Subscription ||\n (value && 'closed' in value && isFunction(value.remove) && isFunction(value.add) && isFunction(value.unsubscribe)));\n}\nfunction execFinalizer(finalizer) {\n if (isFunction(finalizer)) {\n finalizer();\n }\n else {\n finalizer.unsubscribe();\n }\n}\n//# sourceMappingURL=Subscription.js.map","export var config = {\n onUnhandledError: null,\n onStoppedNotification: null,\n Promise: undefined,\n useDeprecatedSynchronousErrorHandling: false,\n useDeprecatedNextContext: false,\n};\n//# sourceMappingURL=config.js.map","import { __read, __spreadArray } from \"tslib\";\nexport var timeoutProvider = {\n setTimeout: function (handler, timeout) {\n var args = [];\n for (var _i = 2; _i < arguments.length; _i++) {\n args[_i - 2] = arguments[_i];\n }\n var delegate = timeoutProvider.delegate;\n if (delegate === null || delegate === void 0 ? void 0 : delegate.setTimeout) {\n return delegate.setTimeout.apply(delegate, __spreadArray([handler, timeout], __read(args)));\n }\n return setTimeout.apply(void 0, __spreadArray([handler, timeout], __read(args)));\n },\n clearTimeout: function (handle) {\n var delegate = timeoutProvider.delegate;\n return ((delegate === null || delegate === void 0 ? void 0 : delegate.clearTimeout) || clearTimeout)(handle);\n },\n delegate: undefined,\n};\n//# sourceMappingURL=timeoutProvider.js.map","import { config } from '../config';\nimport { timeoutProvider } from '../scheduler/timeoutProvider';\nexport function reportUnhandledError(err) {\n timeoutProvider.setTimeout(function () {\n var onUnhandledError = config.onUnhandledError;\n if (onUnhandledError) {\n onUnhandledError(err);\n }\n else {\n throw err;\n }\n });\n}\n//# sourceMappingURL=reportUnhandledError.js.map","export function noop() { }\n//# sourceMappingURL=noop.js.map","import { config } from '../config';\nvar context = null;\nexport function errorContext(cb) {\n if (config.useDeprecatedSynchronousErrorHandling) {\n var isRoot = !context;\n if (isRoot) {\n context = { errorThrown: false, error: null };\n }\n cb();\n if (isRoot) {\n var _a = context, errorThrown = _a.errorThrown, error = _a.error;\n context = null;\n if (errorThrown) {\n throw error;\n }\n }\n }\n else {\n cb();\n }\n}\nexport function captureError(err) {\n if (config.useDeprecatedSynchronousErrorHandling && context) {\n context.errorThrown = true;\n context.error = err;\n }\n}\n//# sourceMappingURL=errorContext.js.map","import { __extends } from \"tslib\";\nimport { isFunction } from './util/isFunction';\nimport { isSubscription, Subscription } from './Subscription';\nimport { config } from './config';\nimport { reportUnhandledError } from './util/reportUnhandledError';\nimport { noop } from './util/noop';\nimport { nextNotification, errorNotification, COMPLETE_NOTIFICATION } from './NotificationFactories';\nimport { timeoutProvider } from './scheduler/timeoutProvider';\nimport { captureError } from './util/errorContext';\nvar Subscriber = (function (_super) {\n __extends(Subscriber, _super);\n function Subscriber(destination) {\n var _this = _super.call(this) || this;\n _this.isStopped = false;\n if (destination) {\n _this.destination = destination;\n if (isSubscription(destination)) {\n destination.add(_this);\n }\n }\n else {\n _this.destination = EMPTY_OBSERVER;\n }\n return _this;\n }\n Subscriber.create = function (next, error, complete) {\n return new SafeSubscriber(next, error, complete);\n };\n Subscriber.prototype.next = function (value) {\n if (this.isStopped) {\n handleStoppedNotification(nextNotification(value), this);\n }\n else {\n this._next(value);\n }\n };\n Subscriber.prototype.error = function (err) {\n if (this.isStopped) {\n handleStoppedNotification(errorNotification(err), this);\n }\n else {\n this.isStopped = true;\n this._error(err);\n }\n };\n Subscriber.prototype.complete = function () {\n if (this.isStopped) {\n handleStoppedNotification(COMPLETE_NOTIFICATION, this);\n }\n else {\n this.isStopped = true;\n this._complete();\n }\n };\n Subscriber.prototype.unsubscribe = function () {\n if (!this.closed) {\n this.isStopped = true;\n _super.prototype.unsubscribe.call(this);\n this.destination = null;\n }\n };\n Subscriber.prototype._next = function (value) {\n this.destination.next(value);\n };\n Subscriber.prototype._error = function (err) {\n try {\n this.destination.error(err);\n }\n finally {\n this.unsubscribe();\n }\n };\n Subscriber.prototype._complete = function () {\n try {\n this.destination.complete();\n }\n finally {\n this.unsubscribe();\n }\n };\n return Subscriber;\n}(Subscription));\nexport { Subscriber };\nvar _bind = Function.prototype.bind;\nfunction bind(fn, thisArg) {\n return _bind.call(fn, thisArg);\n}\nvar ConsumerObserver = (function () {\n function ConsumerObserver(partialObserver) {\n this.partialObserver = partialObserver;\n }\n ConsumerObserver.prototype.next = function (value) {\n var partialObserver = this.partialObserver;\n if (partialObserver.next) {\n try {\n partialObserver.next(value);\n }\n catch (error) {\n handleUnhandledError(error);\n }\n }\n };\n ConsumerObserver.prototype.error = function (err) {\n var partialObserver = this.partialObserver;\n if (partialObserver.error) {\n try {\n partialObserver.error(err);\n }\n catch (error) {\n handleUnhandledError(error);\n }\n }\n else {\n handleUnhandledError(err);\n }\n };\n ConsumerObserver.prototype.complete = function () {\n var partialObserver = this.partialObserver;\n if (partialObserver.complete) {\n try {\n partialObserver.complete();\n }\n catch (error) {\n handleUnhandledError(error);\n }\n }\n };\n return ConsumerObserver;\n}());\nvar SafeSubscriber = (function (_super) {\n __extends(SafeSubscriber, _super);\n function SafeSubscriber(observerOrNext, error, complete) {\n var _this = _super.call(this) || this;\n var partialObserver;\n if (isFunction(observerOrNext) || !observerOrNext) {\n partialObserver = {\n next: (observerOrNext !== null && observerOrNext !== void 0 ? observerOrNext : undefined),\n error: error !== null && error !== void 0 ? error : undefined,\n complete: complete !== null && complete !== void 0 ? complete : undefined,\n };\n }\n else {\n var context_1;\n if (_this && config.useDeprecatedNextContext) {\n context_1 = Object.create(observerOrNext);\n context_1.unsubscribe = function () { return _this.unsubscribe(); };\n partialObserver = {\n next: observerOrNext.next && bind(observerOrNext.next, context_1),\n error: observerOrNext.error && bind(observerOrNext.error, context_1),\n complete: observerOrNext.complete && bind(observerOrNext.complete, context_1),\n };\n }\n else {\n partialObserver = observerOrNext;\n }\n }\n _this.destination = new ConsumerObserver(partialObserver);\n return _this;\n }\n return SafeSubscriber;\n}(Subscriber));\nexport { SafeSubscriber };\nfunction handleUnhandledError(error) {\n if (config.useDeprecatedSynchronousErrorHandling) {\n captureError(error);\n }\n else {\n reportUnhandledError(error);\n }\n}\nfunction defaultErrorHandler(err) {\n throw err;\n}\nfunction handleStoppedNotification(notification, subscriber) {\n var onStoppedNotification = config.onStoppedNotification;\n onStoppedNotification && timeoutProvider.setTimeout(function () { return onStoppedNotification(notification, subscriber); });\n}\nexport var EMPTY_OBSERVER = {\n closed: true,\n next: noop,\n error: defaultErrorHandler,\n complete: noop,\n};\n//# sourceMappingURL=Subscriber.js.map","export var observable = (function () { return (typeof Symbol === 'function' && Symbol.observable) || '@@observable'; })();\n//# sourceMappingURL=observable.js.map","export function identity(x) {\n return x;\n}\n//# sourceMappingURL=identity.js.map","import { identity } from './identity';\nexport function pipe() {\n var fns = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n fns[_i] = arguments[_i];\n }\n return pipeFromArray(fns);\n}\nexport function pipeFromArray(fns) {\n if (fns.length === 0) {\n return identity;\n }\n if (fns.length === 1) {\n return fns[0];\n }\n return function piped(input) {\n return fns.reduce(function (prev, fn) { return fn(prev); }, input);\n };\n}\n//# sourceMappingURL=pipe.js.map","import { SafeSubscriber, Subscriber } from './Subscriber';\nimport { isSubscription } from './Subscription';\nimport { observable as Symbol_observable } from './symbol/observable';\nimport { pipeFromArray } from './util/pipe';\nimport { config } from './config';\nimport { isFunction } from './util/isFunction';\nimport { errorContext } from './util/errorContext';\nvar Observable = (function () {\n function Observable(subscribe) {\n if (subscribe) {\n this._subscribe = subscribe;\n }\n }\n Observable.prototype.lift = function (operator) {\n var observable = new Observable();\n observable.source = this;\n observable.operator = operator;\n return observable;\n };\n Observable.prototype.subscribe = function (observerOrNext, error, complete) {\n var _this = this;\n var subscriber = isSubscriber(observerOrNext) ? observerOrNext : new SafeSubscriber(observerOrNext, error, complete);\n errorContext(function () {\n var _a = _this, operator = _a.operator, source = _a.source;\n subscriber.add(operator\n ?\n operator.call(subscriber, source)\n : source\n ?\n _this._subscribe(subscriber)\n :\n _this._trySubscribe(subscriber));\n });\n return subscriber;\n };\n Observable.prototype._trySubscribe = function (sink) {\n try {\n return this._subscribe(sink);\n }\n catch (err) {\n sink.error(err);\n }\n };\n Observable.prototype.forEach = function (next, promiseCtor) {\n var _this = this;\n promiseCtor = getPromiseCtor(promiseCtor);\n return new promiseCtor(function (resolve, reject) {\n var subscriber = new SafeSubscriber({\n next: function (value) {\n try {\n next(value);\n }\n catch (err) {\n reject(err);\n subscriber.unsubscribe();\n }\n },\n error: reject,\n complete: resolve,\n });\n _this.subscribe(subscriber);\n });\n };\n Observable.prototype._subscribe = function (subscriber) {\n var _a;\n return (_a = this.source) === null || _a === void 0 ? void 0 : _a.subscribe(subscriber);\n };\n Observable.prototype[Symbol_observable] = function () {\n return this;\n };\n Observable.prototype.pipe = function () {\n var operations = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n operations[_i] = arguments[_i];\n }\n return pipeFromArray(operations)(this);\n };\n Observable.prototype.toPromise = function (promiseCtor) {\n var _this = this;\n promiseCtor = getPromiseCtor(promiseCtor);\n return new promiseCtor(function (resolve, reject) {\n var value;\n _this.subscribe(function (x) { return (value = x); }, function (err) { return reject(err); }, function () { return resolve(value); });\n });\n };\n Observable.create = function (subscribe) {\n return new Observable(subscribe);\n };\n return Observable;\n}());\nexport { Observable };\nfunction getPromiseCtor(promiseCtor) {\n var _a;\n return (_a = promiseCtor !== null && promiseCtor !== void 0 ? promiseCtor : config.Promise) !== null && _a !== void 0 ? _a : Promise;\n}\nfunction isObserver(value) {\n return value && isFunction(value.next) && isFunction(value.error) && isFunction(value.complete);\n}\nfunction isSubscriber(value) {\n return (value && value instanceof Subscriber) || (isObserver(value) && isSubscription(value));\n}\n//# sourceMappingURL=Observable.js.map","import { createErrorClass } from './createErrorClass';\nexport var ObjectUnsubscribedError = createErrorClass(function (_super) {\n return function ObjectUnsubscribedErrorImpl() {\n _super(this);\n this.name = 'ObjectUnsubscribedError';\n this.message = 'object unsubscribed';\n };\n});\n//# sourceMappingURL=ObjectUnsubscribedError.js.map","import { __extends, __values } from \"tslib\";\nimport { Observable } from './Observable';\nimport { Subscription, EMPTY_SUBSCRIPTION } from './Subscription';\nimport { ObjectUnsubscribedError } from './util/ObjectUnsubscribedError';\nimport { arrRemove } from './util/arrRemove';\nimport { errorContext } from './util/errorContext';\nvar Subject = (function (_super) {\n __extends(Subject, _super);\n function Subject() {\n var _this = _super.call(this) || this;\n _this.closed = false;\n _this.currentObservers = null;\n _this.observers = [];\n _this.isStopped = false;\n _this.hasError = false;\n _this.thrownError = null;\n return _this;\n }\n Subject.prototype.lift = function (operator) {\n var subject = new AnonymousSubject(this, this);\n subject.operator = operator;\n return subject;\n };\n Subject.prototype._throwIfClosed = function () {\n if (this.closed) {\n throw new ObjectUnsubscribedError();\n }\n };\n Subject.prototype.next = function (value) {\n var _this = this;\n errorContext(function () {\n var e_1, _a;\n _this._throwIfClosed();\n if (!_this.isStopped) {\n if (!_this.currentObservers) {\n _this.currentObservers = Array.from(_this.observers);\n }\n try {\n for (var _b = __values(_this.currentObservers), _c = _b.next(); !_c.done; _c = _b.next()) {\n var observer = _c.value;\n observer.next(value);\n }\n }\n catch (e_1_1) { e_1 = { error: e_1_1 }; }\n finally {\n try {\n if (_c && !_c.done && (_a = _b.return)) _a.call(_b);\n }\n finally { if (e_1) throw e_1.error; }\n }\n }\n });\n };\n Subject.prototype.error = function (err) {\n var _this = this;\n errorContext(function () {\n _this._throwIfClosed();\n if (!_this.isStopped) {\n _this.hasError = _this.isStopped = true;\n _this.thrownError = err;\n var observers = _this.observers;\n while (observers.length) {\n observers.shift().error(err);\n }\n }\n });\n };\n Subject.prototype.complete = function () {\n var _this = this;\n errorContext(function () {\n _this._throwIfClosed();\n if (!_this.isStopped) {\n _this.isStopped = true;\n var observers = _this.observers;\n while (observers.length) {\n observers.shift().complete();\n }\n }\n });\n };\n Subject.prototype.unsubscribe = function () {\n this.isStopped = this.closed = true;\n this.observers = this.currentObservers = null;\n };\n Object.defineProperty(Subject.prototype, \"observed\", {\n get: function () {\n var _a;\n return ((_a = this.observers) === null || _a === void 0 ? void 0 : _a.length) > 0;\n },\n enumerable: false,\n configurable: true\n });\n Subject.prototype._trySubscribe = function (subscriber) {\n this._throwIfClosed();\n return _super.prototype._trySubscribe.call(this, subscriber);\n };\n Subject.prototype._subscribe = function (subscriber) {\n this._throwIfClosed();\n this._checkFinalizedStatuses(subscriber);\n return this._innerSubscribe(subscriber);\n };\n Subject.prototype._innerSubscribe = function (subscriber) {\n var _this = this;\n var _a = this, hasError = _a.hasError, isStopped = _a.isStopped, observers = _a.observers;\n if (hasError || isStopped) {\n return EMPTY_SUBSCRIPTION;\n }\n this.currentObservers = null;\n observers.push(subscriber);\n return new Subscription(function () {\n _this.currentObservers = null;\n arrRemove(observers, subscriber);\n });\n };\n Subject.prototype._checkFinalizedStatuses = function (subscriber) {\n var _a = this, hasError = _a.hasError, thrownError = _a.thrownError, isStopped = _a.isStopped;\n if (hasError) {\n subscriber.error(thrownError);\n }\n else if (isStopped) {\n subscriber.complete();\n }\n };\n Subject.prototype.asObservable = function () {\n var observable = new Observable();\n observable.source = this;\n return observable;\n };\n Subject.create = function (destination, source) {\n return new AnonymousSubject(destination, source);\n };\n return Subject;\n}(Observable));\nexport { Subject };\nvar AnonymousSubject = (function (_super) {\n __extends(AnonymousSubject, _super);\n function AnonymousSubject(destination, source) {\n var _this = _super.call(this) || this;\n _this.destination = destination;\n _this.source = source;\n return _this;\n }\n AnonymousSubject.prototype.next = function (value) {\n var _a, _b;\n (_b = (_a = this.destination) === null || _a === void 0 ? void 0 : _a.next) === null || _b === void 0 ? void 0 : _b.call(_a, value);\n };\n AnonymousSubject.prototype.error = function (err) {\n var _a, _b;\n (_b = (_a = this.destination) === null || _a === void 0 ? void 0 : _a.error) === null || _b === void 0 ? void 0 : _b.call(_a, err);\n };\n AnonymousSubject.prototype.complete = function () {\n var _a, _b;\n (_b = (_a = this.destination) === null || _a === void 0 ? void 0 : _a.complete) === null || _b === void 0 ? void 0 : _b.call(_a);\n };\n AnonymousSubject.prototype._subscribe = function (subscriber) {\n var _a, _b;\n return (_b = (_a = this.source) === null || _a === void 0 ? void 0 : _a.subscribe(subscriber)) !== null && _b !== void 0 ? _b : EMPTY_SUBSCRIPTION;\n };\n return AnonymousSubject;\n}(Subject));\nexport { AnonymousSubject };\n//# sourceMappingURL=Subject.js.map","// Licensed to the .NET Foundation under one or more agreements.\r\n// The .NET Foundation licenses this file to you under the MIT license.\r\nimport { LogLevel } from \"./ILogger\";\r\nimport { NullLogger } from \"./Loggers\";\r\n// Version token that will be replaced by the prepack command\r\n/** The version of the SignalR client. */\r\nexport const VERSION = \"7.0.5\";\r\n/** @private */\r\nexport class Arg {\r\n static isRequired(val, name) {\r\n if (val === null || val === undefined) {\r\n throw new Error(`The '${name}' argument is required.`);\r\n }\r\n }\r\n static isNotEmpty(val, name) {\r\n if (!val || val.match(/^\\s*$/)) {\r\n throw new Error(`The '${name}' argument should not be empty.`);\r\n }\r\n }\r\n static isIn(val, values, name) {\r\n // TypeScript enums have keys for **both** the name and the value of each enum member on the type itself.\r\n if (!(val in values)) {\r\n throw new Error(`Unknown ${name} value: ${val}.`);\r\n }\r\n }\r\n}\r\n/** @private */\r\nexport class Platform {\r\n // react-native has a window but no document so we should check both\r\n static get isBrowser() {\r\n return typeof window === \"object\" && typeof window.document === \"object\";\r\n }\r\n // WebWorkers don't have a window object so the isBrowser check would fail\r\n static get isWebWorker() {\r\n return typeof self === \"object\" && \"importScripts\" in self;\r\n }\r\n // react-native has a window but no document\r\n static get isReactNative() {\r\n return typeof window === \"object\" && typeof window.document === \"undefined\";\r\n }\r\n // Node apps shouldn't have a window object, but WebWorkers don't either\r\n // so we need to check for both WebWorker and window\r\n static get isNode() {\r\n return !this.isBrowser && !this.isWebWorker && !this.isReactNative;\r\n }\r\n}\r\n/** @private */\r\nexport function getDataDetail(data, includeContent) {\r\n let detail = \"\";\r\n if (isArrayBuffer(data)) {\r\n detail = `Binary data of length ${data.byteLength}`;\r\n if (includeContent) {\r\n detail += `. Content: '${formatArrayBuffer(data)}'`;\r\n }\r\n }\r\n else if (typeof data === \"string\") {\r\n detail = `String data of length ${data.length}`;\r\n if (includeContent) {\r\n detail += `. Content: '${data}'`;\r\n }\r\n }\r\n return detail;\r\n}\r\n/** @private */\r\nexport function formatArrayBuffer(data) {\r\n const view = new Uint8Array(data);\r\n // Uint8Array.map only supports returning another Uint8Array?\r\n let str = \"\";\r\n view.forEach((num) => {\r\n const pad = num < 16 ? \"0\" : \"\";\r\n str += `0x${pad}${num.toString(16)} `;\r\n });\r\n // Trim of trailing space.\r\n return str.substr(0, str.length - 1);\r\n}\r\n// Also in signalr-protocol-msgpack/Utils.ts\r\n/** @private */\r\nexport function isArrayBuffer(val) {\r\n return val && typeof ArrayBuffer !== \"undefined\" &&\r\n (val instanceof ArrayBuffer ||\r\n // Sometimes we get an ArrayBuffer that doesn't satisfy instanceof\r\n (val.constructor && val.constructor.name === \"ArrayBuffer\"));\r\n}\r\n/** @private */\r\nexport async function sendMessage(logger, transportName, httpClient, url, content, options) {\r\n const headers = {};\r\n const [name, value] = getUserAgentHeader();\r\n headers[name] = value;\r\n logger.log(LogLevel.Trace, `(${transportName} transport) sending data. ${getDataDetail(content, options.logMessageContent)}.`);\r\n const responseType = isArrayBuffer(content) ? \"arraybuffer\" : \"text\";\r\n const response = await httpClient.post(url, {\r\n content,\r\n headers: { ...headers, ...options.headers },\r\n responseType,\r\n timeout: options.timeout,\r\n withCredentials: options.withCredentials,\r\n });\r\n logger.log(LogLevel.Trace, `(${transportName} transport) request complete. Response status: ${response.statusCode}.`);\r\n}\r\n/** @private */\r\nexport function createLogger(logger) {\r\n if (logger === undefined) {\r\n return new ConsoleLogger(LogLevel.Information);\r\n }\r\n if (logger === null) {\r\n return NullLogger.instance;\r\n }\r\n if (logger.log !== undefined) {\r\n return logger;\r\n }\r\n return new ConsoleLogger(logger);\r\n}\r\n/** @private */\r\nexport class SubjectSubscription {\r\n constructor(subject, observer) {\r\n this._subject = subject;\r\n this._observer = observer;\r\n }\r\n dispose() {\r\n const index = this._subject.observers.indexOf(this._observer);\r\n if (index > -1) {\r\n this._subject.observers.splice(index, 1);\r\n }\r\n if (this._subject.observers.length === 0 && this._subject.cancelCallback) {\r\n this._subject.cancelCallback().catch((_) => { });\r\n }\r\n }\r\n}\r\n/** @private */\r\nexport class ConsoleLogger {\r\n constructor(minimumLogLevel) {\r\n this._minLevel = minimumLogLevel;\r\n this.out = console;\r\n }\r\n log(logLevel, message) {\r\n if (logLevel >= this._minLevel) {\r\n const msg = `[${new Date().toISOString()}] ${LogLevel[logLevel]}: ${message}`;\r\n switch (logLevel) {\r\n case LogLevel.Critical:\r\n case LogLevel.Error:\r\n this.out.error(msg);\r\n break;\r\n case LogLevel.Warning:\r\n this.out.warn(msg);\r\n break;\r\n case LogLevel.Information:\r\n this.out.info(msg);\r\n break;\r\n default:\r\n // console.debug only goes to attached debuggers in Node, so we use console.log for Trace and Debug\r\n this.out.log(msg);\r\n break;\r\n }\r\n }\r\n }\r\n}\r\n/** @private */\r\nexport function getUserAgentHeader() {\r\n let userAgentHeaderName = \"X-SignalR-User-Agent\";\r\n if (Platform.isNode) {\r\n userAgentHeaderName = \"User-Agent\";\r\n }\r\n return [userAgentHeaderName, constructUserAgent(VERSION, getOsName(), getRuntime(), getRuntimeVersion())];\r\n}\r\n/** @private */\r\nexport function constructUserAgent(version, os, runtime, runtimeVersion) {\r\n // Microsoft SignalR/[Version] ([Detailed Version]; [Operating System]; [Runtime]; [Runtime Version])\r\n let userAgent = \"Microsoft SignalR/\";\r\n const majorAndMinor = version.split(\".\");\r\n userAgent += `${majorAndMinor[0]}.${majorAndMinor[1]}`;\r\n userAgent += ` (${version}; `;\r\n if (os && os !== \"\") {\r\n userAgent += `${os}; `;\r\n }\r\n else {\r\n userAgent += \"Unknown OS; \";\r\n }\r\n userAgent += `${runtime}`;\r\n if (runtimeVersion) {\r\n userAgent += `; ${runtimeVersion}`;\r\n }\r\n else {\r\n userAgent += \"; Unknown Runtime Version\";\r\n }\r\n userAgent += \")\";\r\n return userAgent;\r\n}\r\n// eslint-disable-next-line spaced-comment\r\n/*#__PURE__*/ function getOsName() {\r\n if (Platform.isNode) {\r\n switch (process.platform) {\r\n case \"win32\":\r\n return \"Windows NT\";\r\n case \"darwin\":\r\n return \"macOS\";\r\n case \"linux\":\r\n return \"Linux\";\r\n default:\r\n return process.platform;\r\n }\r\n }\r\n else {\r\n return \"\";\r\n }\r\n}\r\n// eslint-disable-next-line spaced-comment\r\n/*#__PURE__*/ function getRuntimeVersion() {\r\n if (Platform.isNode) {\r\n return process.versions.node;\r\n }\r\n return undefined;\r\n}\r\nfunction getRuntime() {\r\n if (Platform.isNode) {\r\n return \"NodeJS\";\r\n }\r\n else {\r\n return \"Browser\";\r\n }\r\n}\r\n/** @private */\r\nexport function getErrorString(e) {\r\n if (e.stack) {\r\n return e.stack;\r\n }\r\n else if (e.message) {\r\n return e.message;\r\n }\r\n return `${e}`;\r\n}\r\n/** @private */\r\nexport function getGlobalThis() {\r\n // globalThis is semi-new and not available in Node until v12\r\n if (typeof globalThis !== \"undefined\") {\r\n return globalThis;\r\n }\r\n if (typeof self !== \"undefined\") {\r\n return self;\r\n }\r\n if (typeof window !== \"undefined\") {\r\n return window;\r\n }\r\n if (typeof global !== \"undefined\") {\r\n return global;\r\n }\r\n throw new Error(\"could not find global\");\r\n}\r\n//# sourceMappingURL=Utils.js.map","// Licensed to the .NET Foundation under one or more agreements.\r\n// The .NET Foundation licenses this file to you under the MIT license.\r\nimport { SubjectSubscription } from \"./Utils\";\r\n/** Stream implementation to stream items to the server. */\r\nexport class Subject {\r\n constructor() {\r\n this.observers = [];\r\n }\r\n next(item) {\r\n for (const observer of this.observers) {\r\n observer.next(item);\r\n }\r\n }\r\n error(err) {\r\n for (const observer of this.observers) {\r\n if (observer.error) {\r\n observer.error(err);\r\n }\r\n }\r\n }\r\n complete() {\r\n for (const observer of this.observers) {\r\n if (observer.complete) {\r\n observer.complete();\r\n }\r\n }\r\n }\r\n subscribe(observer) {\r\n this.observers.push(observer);\r\n return new SubjectSubscription(this, observer);\r\n }\r\n}\r\n//# sourceMappingURL=Subject.js.map","import Log from \"../log\";\nimport { Subject } from \"rxjs\";\nimport IPayload from \"./IPayload\";\nimport { IHubConnectionData } from \"./IHubConnectionData\";\nimport IServerInvoke from \"./IServerInvoke\";\nimport { IStreamResult, Subject as SignalrSubject } from \"@microsoft/signalr\";\n\n/**\n * Mock implementation of HubConnection,\n * Based on \"@microsoft/signalr\": \"7.0.5\" - \"@microsoft/signalr/src/HubConnection.ts\",\n */\nexport default class HubConnectionMock {\n private _hubConnectionData: IHubConnectionData[] = [];\n private _serverInvokes: IServerInvoke[] = [];\n public name: string;\n\n constructor(name: string) {\n this.name = name;\n }\n\n public publish(messageType: string, value: any): void {\n messageType = messageType.toLowerCase();\n\n const channels = this._hubConnectionData.filter(\n (x) => x.messageType === messageType\n );\n if (channels.length === 0) {\n Log.warn(`No subscribers for ${messageType}`);\n return;\n }\n Log.debug(\n `Publishing action: ${messageType} to ${channels.length} subscribers`\n );\n channels.forEach((x) => {\n x.channel.next({ name: messageType, value });\n });\n }\n\n public verify(\n messageType: string,\n callback?: (invokes: IServerInvoke[]) => void\n ): void {\n messageType = messageType.toLowerCase();\n\n const currentInvokes = this._serverInvokes.filter(\n (s) => s.action === messageType\n );\n\n if (callback) {\n callback(currentInvokes);\n }\n }\n\n // region Native SignalR methods\n\n /** Registers a handler that will be invoked when the hub method with the specified method name is invoked.\n *\n * @param {string} methodName The name of the hub method to define.\n * @param {Function} newMethod The handler that will be raised when the hub method is invoked.\n */\n public on(methodName: string, newMethod: (...args: any[]) => any): void;\n public on(methodName: string, newMethod: (...args: any[]) => void): void {\n methodName = methodName.toLowerCase();\n\n // Create if it doesn't exist yet\n if (!this._hubConnectionData.some((x) => x.messageType === methodName)) {\n this._hubConnectionData.push({\n messageType: methodName,\n isStream: false,\n channel: new Subject(),\n subscriptions: [],\n });\n }\n\n // Find the connection data\n let connectionData = this._hubConnectionData.find(\n (x) => x.messageType === methodName\n );\n\n if (!connectionData) {\n throw new Error(`Could not find connection data for ${methodName}`);\n }\n\n // Subscribe to the channel\n let subscription = connectionData.channel.subscribe((payload: IPayload) => {\n newMethod(payload.value);\n });\n\n connectionData.subscriptions.push({\n handler: newMethod,\n subscription,\n });\n }\n\n /** Invokes a streaming hub method on the server using the specified name and arguments.\n *\n * @typeparam T The type of the items returned by the server.\n * @param {string} methodName The name of the server method to invoke.\n * @param {any[]} args The arguments used to invoke the server method.\n * @returns {IStreamResult} An object that yields results from the server as they are received.\n */\n // @ts-ignore\n public stream(methodName: string, ...args: any[]): IStreamResult {\n methodName = methodName.toLowerCase();\n\n // Create if it doesn't exist yet\n if (!this._hubConnectionData.some((x) => x.messageType === methodName)) {\n this._hubConnectionData.push({\n messageType: methodName,\n isStream: true,\n channel: new Subject(),\n subscriptions: [],\n });\n }\n\n // Find the connection data\n let connectionData = this._hubConnectionData.find(\n (x) => x.messageType === methodName\n );\n\n if (!connectionData) {\n throw new Error(`Could not find connection data for ${methodName}`);\n }\n\n const signalrSubject = new SignalrSubject();\n\n // SignalR has a custom subject\n connectionData.channel.subscribe({\n next: (x) => signalrSubject.next(x),\n error: (err) => signalrSubject.error(err),\n complete: () => signalrSubject.complete(),\n });\n\n return signalrSubject;\n }\n\n /** Invokes a hub method on the server using the specified name and arguments.\n *\n * The Promise returned by this method resolves when the server indicates it has finished invoking the method. When the promise\n * resolves, the server has finished invoking the method. If the server method returns a result, it is produced as the result of\n * resolving the Promise.\n *\n * @typeparam T The expected return type.\n * @param {string} methodName The name of the server method to invoke.\n * @param {any[]} args The arguments used to invoke the server method.\n * @returns {Promise} A Promise that resolves with the result of the server method (if any), or rejects with an error.\n */\n invoke(methodName: string, ...args: any[]): Promise {\n return new Promise((resolve) => {\n this._serverInvokes.push({\n action: methodName,\n args,\n });\n resolve(0 as any);\n });\n }\n\n /** Removes all handlers for the specified hub method.\n *\n * @param {string} methodName The name of the method to remove handlers for.\n */\n public off(methodName: string): void;\n /** Removes the specified handler for the specified hub method.\n *\n * You must pass the exact same Function instance as was previously passed to {@link @microsoft/signalr.HubConnection.on}. Passing a different instance (even if the function\n * body is the same) will not remove the handler.\n *\n * @param {string} methodName The name of the method to remove handlers for.\n * @param {Function} method The handler to remove. This must be the same Function instance as the one passed to {@link @microsoft/signalr.HubConnection.on}.\n */\n public off(methodName: string, method: (...args: any[]) => void): void;\n public off(methodName: string, method?: (...args: any[]) => void): void {\n methodName = methodName.toLowerCase();\n\n const index = this._hubConnectionData.findIndex(\n (x) => x.messageType === methodName\n );\n if (index == -1) {\n Log.warn(`No channels registered for action name: ${methodName}`);\n return;\n }\n\n if (method) {\n const handlerIndex = this._hubConnectionData[\n index\n ].subscriptions.findIndex((x) => x.handler === method);\n\n if (handlerIndex == -1) {\n Log.warn(\n `Could not find the handler to delete for action name: ${methodName}`\n );\n return;\n }\n\n this._hubConnectionData[index].subscriptions.splice(handlerIndex, 1);\n\n if (this._hubConnectionData[index].subscriptions.length === 0) {\n this._hubConnectionData.splice(index, 1);\n }\n } else {\n this._hubConnectionData.splice(index, 1);\n }\n }\n\n /** Registers a handler that will be invoked when the connection is closed.\n *\n * @param {Function} callback The handler that will be invoked when the connection is closed. Optionally receives a single argument containing the error that caused the connection to close (if any).\n */\n // @ts-ignore\n public onclose(callback: (error?: Error) => void): void {\n return;\n }\n\n /** Starts the connection.\n *\n * @returns {Promise} A Promise that resolves when the connection has been successfully established, or rejects with an error.\n */\n public start(): Promise {\n return Promise.resolve();\n }\n\n /** Stops the connection.\n *\n * @returns {Promise} A Promise that resolves when the connection has been successfully terminated, or rejects with an error.\n */\n public async stop(): Promise {\n return Promise.resolve();\n }\n\n /** Registers a handler that will be invoked when the connection starts reconnecting.\n *\n * @param {Function} callback The handler that will be invoked when the connection starts reconnecting. Optionally receives a single argument containing the error that caused the connection to start reconnecting (if any).\n */\n // @ts-ignore\n public onreconnecting(callback: (error?: Error) => void): void {\n return;\n }\n\n /** Registers a handler that will be invoked when the connection successfully reconnects.\n *\n * @param {Function} callback The handler that will be invoked when the connection successfully reconnects.\n */\n // @ts-ignore\n public onreconnected(callback: (connectionId?: string) => void): void {\n return;\n }\n\n /** Invokes a hub method on the server using the specified name and arguments. Does not wait for a response from the receiver.\n *\n * The Promise returned by this method resolves when the client has sent the invocation to the server. The server may still\n * be processing the invocation.\n *\n * @param {string} methodName The name of the server method to invoke.\n * @param {any[]} args The arguments used to invoke the server method.\n * @returns {Promise} A Promise that resolves when the invocation has been successfully sent, or rejects with an error.\n */\n // @ts-ignore\n public send(methodName: string, ...args: any[]): Promise {\n return Promise.resolve();\n }\n\n // endregion\n}\n","import HubConnectionMock from \"./types/HubConnectionMock.ts\";\nimport IMockData from \"./types/IMockData.ts\";\nimport Log from \"./log.ts\";\n\nexport function isCypressRunning(): boolean {\n if (isSSR()) {\n return false;\n }\n return window.hasOwnProperty(\"Cypress\");\n}\n\nexport function getCypressSignalrMockData(): IMockData {\n if (!isSSR() && window[\"cypress-signalr-mock\"]) {\n return window[\"cypress-signalr-mock\"];\n }\n // Initialize the global object\n clearCypressSignalrMockData();\n return getCypressSignalrMockData();\n}\n\nexport function setCypressSignalrMockData(value: IMockData): void {\n if (isSSR()) {\n return;\n }\n window[\"cypress-signalr-mock\"] = value;\n}\n\nexport function clearCypressSignalrMockData(): void {\n setCypressSignalrMockData(defaultCypressSignalrMockData());\n}\n\nexport function defaultCypressSignalrMockData(): IMockData {\n return {\n mocks: [],\n };\n}\n\nexport function getHubConnectionMock(\n hubName: string\n): HubConnectionMock | null {\n const data = getCypressSignalrMockData();\n return data.mocks.find((x) => x.name === hubName) ?? null;\n}\n\nexport function isSSR(): boolean {\n if (!window) {\n Log.error(\n \"window is not defined. This most likely happens during SSR, which is not supported,\"\n );\n return true;\n }\n return false;\n}\n","/// \nimport Log from \"./log\";\nimport IServerInvoke from \"./types/IServerInvoke\";\nimport {\n clearCypressSignalrMockData,\n getCypressSignalrMockData,\n getHubConnectionMock,\n isCypressRunning,\n} from \"./utils.ts\";\n\nexport function setupCypressCommands() {\n if (!isCypressRunning()) {\n Log.info(\"Cypress is not running, skipping setup of Cypress commands\");\n return;\n }\n\n // @ts-ignore\n const cypress = window.Cypress;\n\n cypress.Commands.add(\"hubPublish\", hubPublish);\n\n cypress.Commands.add(\"hubVerifyInvokes\", hubVerify);\n\n cypress.Commands.add(\"hubClear\", hubClear);\n\n cypress.Commands.add(\"hubPrintData\", hubPrintData);\n}\n\nexport function hubPublish(hubName: string, messageType: string, payload: any) {\n const hubConnectionMock = getHubConnectionMock(hubName);\n if (!hubConnectionMock) {\n Log.error(`[cy.hubPublish] - HubConnectionMock not found for ${hubName}`);\n return;\n }\n hubConnectionMock.publish(messageType, payload);\n}\n\nexport function hubVerify(\n hubName: string,\n messageType: string,\n callback?: (invokes: IServerInvoke[]) => void\n) {\n const hubConnectionMock = getHubConnectionMock(hubName);\n if (!hubConnectionMock) {\n Log.error(\n `[cy.hubVerify] - HubConnectionMock not found for hub with name: ${hubName}`\n );\n return;\n }\n hubConnectionMock.verify(messageType, callback);\n}\n\nexport function hubPrintData() {\n Log.info(\n 'Current window[\"cypress-signalr-mock\"] data:',\n getCypressSignalrMockData()\n );\n}\n\nexport function hubClear() {\n clearCypressSignalrMockData();\n}\n","// load type definitions that come with Cypress module\n// and then add our new commands to the \"cy\" object\n/// \n\nimport { HubConnection } from \"@microsoft/signalr\";\nimport HubConnectionMock from \"./types/HubConnectionMock\";\nimport { setupCypressCommands } from \"./cypress-commands\";\nimport IMockData from \"./types/IMockData\";\nimport IServerInvoke from \"./types/IServerInvoke\";\nimport { getCypressSignalrMockData, isCypressRunning } from \"./utils.ts\";\n\nsetupCypressCommands();\n\nexport function useCypressSignalRMock(name: string): HubConnection | null {\n if (!isCypressRunning()) {\n return null;\n }\n\n const mock = new HubConnectionMock(name);\n getCypressSignalrMockData().mocks.push(mock);\n return (mock as unknown);\n}\n\n/**\n * Typings\n */\n// This cannot be in a index.d.ts file otherwise it will not be loaded in by Cypress\ndeclare global {\n interface Window {\n \"cypress-signalr-mock\": IMockData;\n }\n\n namespace Cypress {\n interface Chainable {\n /**\n * Simulates a message sent from the Server => Client\n * @param hubName The name of the hub\n * @param messageType The name of the message type\n * @param payload The payload to send with the action\n */\n hubPublish(\n hubName: string,\n messageType: string,\n payload: any\n ): Chainable;\n\n /**\n * Verifies that a message was sent from the Client => Server\n * @param hubName The name of the hub\n * @param messageType The name of the message type\n * @param callback A callback function that will be called with the invokes\n */\n hubVerifyInvokes(\n hubName: string,\n messageType: string,\n callback?: (invokes: IServerInvoke[]) => void\n ): Chainable;\n\n /**\n * Clears all data from the window[\"cypress-signalr-mock\"] object\n */\n hubClear(): Chainable;\n\n /**\n * Prints the current data to console in the window[\"cypress-signalr-mock\"] object\n */\n hubPrintData(): Chainable;\n }\n }\n}\n"],"names":["s","m","h","d","w","y","ms","val","options","type","parse","fmtLong","fmtShort","str","match","n","msAbs","plural","name","isPlural","setup","env","createDebug","coerce","disable","enable","enabled","require$$0","destroy","key","selectColor","namespace","hash","i","prevTime","enableOverride","namespacesCache","enabledCache","debug","args","self","curr","index","format","formatter","extend","delimiter","newDebug","namespaces","split","len","toNamespace","regexp","common","exports","formatArgs","save","load","useColors","localstorage","warned","module","c","lastC","r","formatters","v","error","Log","message","value","throwError","__publicField","extendStatics","b","p","__extends","__","__values","o","__read","ar","e","__spreadArray","to","from","pack","l","isFunction","createErrorClass","createImpl","_super","instance","ctorFunc","UnsubscriptionError","errors","err","arrRemove","arr","item","Subscription","initialTeardown","e_1","_a","e_2","_b","_parentage","_parentage_1","_parentage_1_1","parent_1","e_1_1","initialFinalizer","_finalizers","_finalizers_1","_finalizers_1_1","finalizer","execFinalizer","e_2_1","teardown","parent","empty","EMPTY_SUBSCRIPTION","isSubscription","config","timeoutProvider","handler","timeout","_i","delegate","handle","reportUnhandledError","noop","errorContext","cb","Subscriber","destination","_this","EMPTY_OBSERVER","next","complete","SafeSubscriber","_bind","bind","fn","thisArg","ConsumerObserver","partialObserver","handleUnhandledError","observerOrNext","context_1","defaultErrorHandler","observable","identity","x","pipeFromArray","fns","input","prev","Observable","subscribe","operator","subscriber","isSubscriber","source","sink","promiseCtor","getPromiseCtor","resolve","reject","Symbol_observable","operations","isObserver","ObjectUnsubscribedError","Subject","subject","AnonymousSubject","_c","observer","observers","hasError","isStopped","thrownError","SubjectSubscription","_","HubConnectionMock","messageType","channels","callback","currentInvokes","methodName","newMethod","connectionData","subscription","payload","signalrSubject","SignalrSubject","method","handlerIndex","isCypressRunning","isSSR","getCypressSignalrMockData","clearCypressSignalrMockData","setCypressSignalrMockData","defaultCypressSignalrMockData","getHubConnectionMock","hubName","setupCypressCommands","cypress","hubPublish","hubVerify","hubClear","hubPrintData","hubConnectionMock","useCypressSignalRMock","mock"],"mappings":"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","x_google_ignoreList":[0,1,2,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23]} \ No newline at end of file