diff --git a/dist/rollbar.cjs b/dist/rollbar.cjs index b1a93eccd..8c7f5adf9 100644 --- a/dist/rollbar.cjs +++ b/dist/rollbar.cjs @@ -950,15 +950,15 @@ var Queue = /*#__PURE__*/function () { * `api.postItem(payload, function(err, response))` * @param logger - An object used to log verbose messages if desired * @param options - see `Queue.prototype.configure` - * @param replayManager - Optional `ReplayManager` for coordinating session replay with error occurrences + * @param replay - Optional `Replay` for coordinating session replay with error occurrences */ - function Queue(rateLimiter, api, logger, options, replayManager) { + function Queue(rateLimiter, api, logger, options, replay) { _classCallCheck(this, Queue); this.rateLimiter = rateLimiter; this.api = api; this.logger = logger; this.options = options; - this.replayManager = replayManager; + this.replay = replay; this.predicates = []; this.pendingItems = []; this.pendingRequests = []; @@ -1047,8 +1047,8 @@ var Queue = /*#__PURE__*/function () { callback(new Error('Transmit disabled')); return; } - if (this.replayManager && data.body) { - item.replayId = this.replayManager.capture(null, data.uuid, { + if (this.replay && data.body) { + item.replayId = this.replay.capture(null, data.uuid, { type: 'occurrence', level: item.level }); @@ -1064,15 +1064,15 @@ var Queue = /*#__PURE__*/function () { this._makeApiRequest(data, function (err, resp, headers) { _this._dequeuePendingRequest(data); if (item.replayId) { - _this.replayManager.sendOrDiscardReplay(item.replayId, err, resp, headers); + _this.replay.sendOrDiscardReplay(item.replayId, err, resp, headers); } callback(err, resp); }); } catch (err) { this._dequeuePendingRequest(data); if (item.replayId) { - var _this$replayManager; - (_this$replayManager = this.replayManager) === null || _this$replayManager === void 0 || _this$replayManager.discard(item.replayId); + var _this$replay; + (_this$replay = this.replay) === null || _this$replay === void 0 || _this$replay.discard(item.replayId); } callback(err); } @@ -1390,13 +1390,13 @@ Notifier.prototype._applyTransforms = function (item, callback) { * @param api * @param logger */ -function Rollbar(options, api, logger, telemeter, tracing, replayManager, platform) { +function Rollbar(options, api, logger, telemeter, tracing, replay, platform) { this.options = src_merge(options); this.logger = logger; Rollbar.rateLimiter.configureGlobal(this.options); Rollbar.rateLimiter.setPlatformOptions(platform, this.options); this.api = api; - this.queue = new queue(Rollbar.rateLimiter, api, logger, this.options, replayManager); + this.queue = new queue(Rollbar.rateLimiter, api, logger, this.options, replay); this.tracing = tracing; // Legacy OpenTracing support diff --git a/dist/rollbar.js b/dist/rollbar.js index 4e367557d..389855a61 100644 --- a/dist/rollbar.js +++ b/dist/rollbar.js @@ -960,15 +960,15 @@ var Queue = /*#__PURE__*/function () { * `api.postItem(payload, function(err, response))` * @param logger - An object used to log verbose messages if desired * @param options - see `Queue.prototype.configure` - * @param replayManager - Optional `ReplayManager` for coordinating session replay with error occurrences + * @param replay - Optional `Replay` for coordinating session replay with error occurrences */ - function Queue(rateLimiter, api, logger, options, replayManager) { + function Queue(rateLimiter, api, logger, options, replay) { _classCallCheck(this, Queue); this.rateLimiter = rateLimiter; this.api = api; this.logger = logger; this.options = options; - this.replayManager = replayManager; + this.replay = replay; this.predicates = []; this.pendingItems = []; this.pendingRequests = []; @@ -1057,8 +1057,8 @@ var Queue = /*#__PURE__*/function () { callback(new Error('Transmit disabled')); return; } - if (this.replayManager && data.body) { - item.replayId = this.replayManager.capture(null, data.uuid, { + if (this.replay && data.body) { + item.replayId = this.replay.capture(null, data.uuid, { type: 'occurrence', level: item.level }); @@ -1074,15 +1074,15 @@ var Queue = /*#__PURE__*/function () { this._makeApiRequest(data, function (err, resp, headers) { _this._dequeuePendingRequest(data); if (item.replayId) { - _this.replayManager.sendOrDiscardReplay(item.replayId, err, resp, headers); + _this.replay.sendOrDiscardReplay(item.replayId, err, resp, headers); } callback(err, resp); }); } catch (err) { this._dequeuePendingRequest(data); if (item.replayId) { - var _this$replayManager; - (_this$replayManager = this.replayManager) === null || _this$replayManager === void 0 || _this$replayManager.discard(item.replayId); + var _this$replay; + (_this$replay = this.replay) === null || _this$replay === void 0 || _this$replay.discard(item.replayId); } callback(err); } @@ -1400,13 +1400,13 @@ Notifier.prototype._applyTransforms = function (item, callback) { * @param api * @param logger */ -function Rollbar(options, api, logger, telemeter, tracing, replayManager, platform) { +function Rollbar(options, api, logger, telemeter, tracing, replay, platform) { this.options = src_merge(options); this.logger = logger; Rollbar.rateLimiter.configureGlobal(this.options); Rollbar.rateLimiter.setPlatformOptions(platform, this.options); this.api = api; - this.queue = new queue(Rollbar.rateLimiter, api, logger, this.options, replayManager); + this.queue = new queue(Rollbar.rateLimiter, api, logger, this.options, replay); this.tracing = tracing; // Legacy OpenTracing support @@ -3404,10 +3404,6 @@ function messagesFromItem(item) { // Whether recording is enabled autoStart: true, // Start recording automatically when Rollbar initializes - maxSeconds: 300, - // Maximum recording duration in seconds - postDuration: 5, - // Duration of events to include after a post is triggered, in seconds // defaults used by triggers that don't specify them triggerDefaults: { @@ -3582,7 +3578,7 @@ var core_Rollbar = /*#__PURE__*/function () { this.scrub = this.components.scrub; var truncation = this.components.truncation; var Tracing = this.components.tracing; - var ReplayManager = this.components.replayManager; + var Replay = this.components.replay; var transport = new browser_transport(truncation); var api = new src_api(this.options, transport, url_namespaceObject, truncation); if (Tracing) { @@ -3592,18 +3588,18 @@ var core_Rollbar = /*#__PURE__*/function () { if (Telemeter) { this.telemeter = new Telemeter(this.options, this.tracing); } - if (ReplayManager && isBrowser()) { + if (Replay && isBrowser()) { var replayOptions = this.options.replay; - this.replayManager = new ReplayManager({ + this.replay = new Replay({ tracing: this.tracing, telemeter: this.telemeter, options: replayOptions }); if (replayOptions.enabled && replayOptions.autoStart) { - this.replayManager.recorder.start(); + this.replay.recorder.start(); } } - this.client = client || new src_rollbar(this.options, api, src_logger, this.telemeter, this.tracing, this.replayManager, 'browser'); + this.client = client || new src_rollbar(this.options, api, src_logger, this.telemeter, this.tracing, this.replay, 'browser'); var gWindow = _gWindow(); var gDocument = typeof document != 'undefined' && document; this.isChrome = gWindow.chrome && gWindow.chrome.runtime; // check .runtime to avoid Edge browsers @@ -3629,7 +3625,7 @@ var core_Rollbar = /*#__PURE__*/function () { }, { key: "configure", value: function configure(options, payloadData) { - var _this$tracing, _this$replayManager, _this$instrumenter; + var _this$tracing, _this$replay, _this$instrumenter; if (options.logLevel) { src_logger.init({ logLevel: options.logLevel @@ -3646,7 +3642,7 @@ var core_Rollbar = /*#__PURE__*/function () { this.options = handleOptions(oldOptions, options, payload, src_logger); this.options._configuredOptions = handleOptions(oldOptions._configuredOptions, options, payload); (_this$tracing = this.tracing) === null || _this$tracing === void 0 || _this$tracing.configure(this.options); - (_this$replayManager = this.replayManager) === null || _this$replayManager === void 0 || (_this$replayManager = _this$replayManager.recorder) === null || _this$replayManager === void 0 || _this$replayManager.configure(this.options); + (_this$replay = this.replay) === null || _this$replay === void 0 || _this$replay.configure(this.options); this.client.configure(this.options, payloadData); (_this$instrumenter = this.instrumenter) === null || _this$instrumenter === void 0 || _this$instrumenter.configure(this.options); this.setupUnhandledCapture(); @@ -3737,6 +3733,19 @@ var core_Rollbar = /*#__PURE__*/function () { value: function sendJsonPayload(jsonPayload) { return this.client.sendJsonPayload(jsonPayload); } + }, { + key: "triggerDirectReplay", + value: function triggerDirectReplay(context) { + return this.triggerReplay(core_objectSpread({ + type: 'direct' + }, context)); + } + }, { + key: "triggerReplay", + value: function triggerReplay(context) { + if (!this.replay) return null; + return this.replay.triggerReplay(context); + } }, { key: "setupUnhandledCapture", value: function setupUnhandledCapture() { @@ -5621,6 +5630,9 @@ var Instrumenter = /*#__PURE__*/function () { this.addListener('dom', this._window, ['resize'], function (e) { return _this.handleEvent('resize', e); }); + this.addListener('dom', this._document, ['DOMContentLoaded'], function (e) { + return _this.handleEvent('contentLoaded', e); + }); } }, { key: "handleEvent", @@ -5632,12 +5644,21 @@ var Instrumenter = /*#__PURE__*/function () { focus: this.handleFocus, form: this.handleForm, input: this.handleInput, - resize: this.handleResize + resize: this.handleResize, + contentLoaded: this.handleContentLoaded }[name].call(this, evt); } catch (exc) { console.log("".concat(name, " handler error"), evt, exc, exc.stack); } } + }, { + key: "handleContentLoaded", + value: function handleContentLoaded(evt) { + var replayId = this.rollbar.triggerReplay({ + type: 'navigation', + path: new URL(this._location.href).pathname + }); + } }, { key: "handleClick", value: function handleClick(evt) { @@ -5822,6 +5843,10 @@ var Instrumenter = /*#__PURE__*/function () { from = parsedFrom.path + (parsedFrom.hash || ''); } this.telemeter.captureNavigation(from, to, null, utility_now()); + var replayId = this.rollbar.triggerReplay({ + type: 'navigation', + path: to + }); } }, { key: "instrumentConnectivity", @@ -6656,6 +6681,9 @@ var SpanExporter = /*#__PURE__*/function () { var spanExportQueue = []; ;// ./src/tracing/spanProcessor.js function spanProcessor_typeof(o) { "@babel/helpers - typeof"; return spanProcessor_typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, spanProcessor_typeof(o); } +function spanProcessor_createForOfIteratorHelper(r, e) { var t = "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (!t) { if (Array.isArray(r) || (t = spanProcessor_unsupportedIterableToArray(r)) || e && r && "number" == typeof r.length) { t && (r = t); var _n = 0, F = function F() {}; return { s: F, n: function n() { return _n >= r.length ? { done: !0 } : { done: !1, value: r[_n++] }; }, e: function e(r) { throw r; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var o, a = !0, u = !1; return { s: function s() { t = t.call(r); }, n: function n() { var r = t.next(); return a = r.done, r; }, e: function e(r) { u = !0, o = r; }, f: function f() { try { a || null == t.return || t.return(); } finally { if (u) throw o; } } }; } +function spanProcessor_unsupportedIterableToArray(r, a) { if (r) { if ("string" == typeof r) return spanProcessor_arrayLikeToArray(r, a); var t = {}.toString.call(r).slice(8, -1); return "Object" === t && r.constructor && (t = r.constructor.name), "Map" === t || "Set" === t ? Array.from(r) : "Arguments" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? spanProcessor_arrayLikeToArray(r, a) : void 0; } } +function spanProcessor_arrayLikeToArray(r, a) { (null == a || a > r.length) && (a = r.length); for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; return n; } function spanProcessor_classCallCheck(a, n) { if (!(a instanceof n)) throw new TypeError("Cannot call a class as a function"); } function spanProcessor_defineProperties(e, r) { for (var t = 0; t < r.length; t++) { var o = r[t]; o.enumerable = o.enumerable || !1, o.configurable = !0, "value" in o && (o.writable = !0), Object.defineProperty(e, spanProcessor_toPropertyKey(o.key), o); } } function spanProcessor_createClass(e, r, t) { return r && spanProcessor_defineProperties(e.prototype, r), t && spanProcessor_defineProperties(e, t), Object.defineProperty(e, "prototype", { writable: !1 }), e; } @@ -6669,8 +6697,43 @@ var SpanProcessor = /*#__PURE__*/function () { this.exporter = exporter; this.options = options; this.pendingSpans = new Map(); + this.transforms = [this.userTransform.bind(this)]; } return spanProcessor_createClass(SpanProcessor, [{ + key: "addTransform", + value: function addTransform(transformFn) { + this.transforms.unshift(transformFn); + } + }, { + key: "userTransform", + value: function userTransform(span) { + if (this.options.transformSpan) { + this.options.transformSpan({ + span: span + }); + } + } + }, { + key: "applyTransforms", + value: function applyTransforms(span) { + var _iterator = spanProcessor_createForOfIteratorHelper(this.transforms), + _step; + try { + for (_iterator.s(); !(_step = _iterator.n()).done;) { + var transform = _step.value; + try { + transform(span); + } catch (e) { + src_logger.error('Error running span transform callback', e); + } + } + } catch (err) { + _iterator.e(err); + } finally { + _iterator.f(); + } + } + }, { key: "onStart", value: function onStart(span, _parentContext) { this.pendingSpans.set(span.span.spanContext.spanId, span); @@ -6678,15 +6741,7 @@ var SpanProcessor = /*#__PURE__*/function () { }, { key: "onEnd", value: function onEnd(span) { - try { - if (this.options.transformSpan) { - this.options.transformSpan({ - span: span.span - }); - } - } catch (e) { - src_logger.error('Error running transformSpan callback', e); - } + this.applyTransforms(span.span); this.exporter.export([span.export()]); this.pendingSpans.delete(span.span.spanContext.spanId); } @@ -6966,6 +7021,11 @@ var Tracing = /*#__PURE__*/function () { value: function getTracer() { return this.tracer; } + }, { + key: "addSpanTransform", + value: function addSpanTransform(transformFn) { + this.spanProcessor.addTransform(transformFn); + } }, { key: "getSpan", value: function getSpan() { @@ -7004,15272 +7064,6 @@ var Tracing = /*#__PURE__*/function () { }]); }(); -;// ./node_modules/@rrweb/record/dist/record.js -var record_excluded = ["inputs"], - _excluded2 = ["inputId"], - _excluded3 = ["inputs"], - _excluded4 = ["inputId"], - _excluded5 = ["type"]; -function record_objectWithoutProperties(e, t) { if (null == e) return {}; var o, r, i = record_objectWithoutPropertiesLoose(e, t); if (Object.getOwnPropertySymbols) { var n = Object.getOwnPropertySymbols(e); for (r = 0; r < n.length; r++) o = n[r], -1 === t.indexOf(o) && {}.propertyIsEnumerable.call(e, o) && (i[o] = e[o]); } return i; } -function record_objectWithoutPropertiesLoose(r, e) { if (null == r) return {}; var t = {}; for (var n in r) if ({}.hasOwnProperty.call(r, n)) { if (-1 !== e.indexOf(n)) continue; t[n] = r[n]; } return t; } -function record_regeneratorRuntime() { "use strict"; /*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/facebook/regenerator/blob/main/LICENSE */ record_regeneratorRuntime = function _regeneratorRuntime() { return e; }; var t, e = {}, r = Object.prototype, n = r.hasOwnProperty, o = Object.defineProperty || function (t, e, r) { t[e] = r.value; }, i = "function" == typeof Symbol ? Symbol : {}, a = i.iterator || "@@iterator", c = i.asyncIterator || "@@asyncIterator", u = i.toStringTag || "@@toStringTag"; function define(t, e, r) { return Object.defineProperty(t, e, { value: r, enumerable: !0, configurable: !0, writable: !0 }), t[e]; } try { define({}, ""); } catch (t) { define = function define(t, e, r) { return t[e] = r; }; } function wrap(t, e, r, n) { var i = e && e.prototype instanceof Generator ? e : Generator, a = Object.create(i.prototype), c = new Context(n || []); return o(a, "_invoke", { value: makeInvokeMethod(t, r, c) }), a; } function tryCatch(t, e, r) { try { return { type: "normal", arg: t.call(e, r) }; } catch (t) { return { type: "throw", arg: t }; } } e.wrap = wrap; var h = "suspendedStart", l = "suspendedYield", f = "executing", s = "completed", y = {}; function Generator() {} function GeneratorFunction() {} function GeneratorFunctionPrototype() {} var p = {}; define(p, a, function () { return this; }); var d = Object.getPrototypeOf, v = d && d(d(values([]))); v && v !== r && n.call(v, a) && (p = v); var g = GeneratorFunctionPrototype.prototype = Generator.prototype = Object.create(p); function defineIteratorMethods(t) { ["next", "throw", "return"].forEach(function (e) { define(t, e, function (t) { return this._invoke(e, t); }); }); } function AsyncIterator(t, e) { function invoke(r, o, i, a) { var c = tryCatch(t[r], t, o); if ("throw" !== c.type) { var u = c.arg, h = u.value; return h && "object" == record_typeof(h) && n.call(h, "__await") ? e.resolve(h.__await).then(function (t) { invoke("next", t, i, a); }, function (t) { invoke("throw", t, i, a); }) : e.resolve(h).then(function (t) { u.value = t, i(u); }, function (t) { return invoke("throw", t, i, a); }); } a(c.arg); } var r; o(this, "_invoke", { value: function value(t, n) { function callInvokeWithMethodAndArg() { return new e(function (e, r) { invoke(t, n, e, r); }); } return r = r ? r.then(callInvokeWithMethodAndArg, callInvokeWithMethodAndArg) : callInvokeWithMethodAndArg(); } }); } function makeInvokeMethod(e, r, n) { var o = h; return function (i, a) { if (o === f) throw Error("Generator is already running"); if (o === s) { if ("throw" === i) throw a; return { value: t, done: !0 }; } for (n.method = i, n.arg = a;;) { var c = n.delegate; if (c) { var u = maybeInvokeDelegate(c, n); if (u) { if (u === y) continue; return u; } } if ("next" === n.method) n.sent = n._sent = n.arg;else if ("throw" === n.method) { if (o === h) throw o = s, n.arg; n.dispatchException(n.arg); } else "return" === n.method && n.abrupt("return", n.arg); o = f; var p = tryCatch(e, r, n); if ("normal" === p.type) { if (o = n.done ? s : l, p.arg === y) continue; return { value: p.arg, done: n.done }; } "throw" === p.type && (o = s, n.method = "throw", n.arg = p.arg); } }; } function maybeInvokeDelegate(e, r) { var n = r.method, o = e.iterator[n]; if (o === t) return r.delegate = null, "throw" === n && e.iterator.return && (r.method = "return", r.arg = t, maybeInvokeDelegate(e, r), "throw" === r.method) || "return" !== n && (r.method = "throw", r.arg = new TypeError("The iterator does not provide a '" + n + "' method")), y; var i = tryCatch(o, e.iterator, r.arg); if ("throw" === i.type) return r.method = "throw", r.arg = i.arg, r.delegate = null, y; var a = i.arg; return a ? a.done ? (r[e.resultName] = a.value, r.next = e.nextLoc, "return" !== r.method && (r.method = "next", r.arg = t), r.delegate = null, y) : a : (r.method = "throw", r.arg = new TypeError("iterator result is not an object"), r.delegate = null, y); } function pushTryEntry(t) { var e = { tryLoc: t[0] }; 1 in t && (e.catchLoc = t[1]), 2 in t && (e.finallyLoc = t[2], e.afterLoc = t[3]), this.tryEntries.push(e); } function resetTryEntry(t) { var e = t.completion || {}; e.type = "normal", delete e.arg, t.completion = e; } function Context(t) { this.tryEntries = [{ tryLoc: "root" }], t.forEach(pushTryEntry, this), this.reset(!0); } function values(e) { if (e || "" === e) { var r = e[a]; if (r) return r.call(e); if ("function" == typeof e.next) return e; if (!isNaN(e.length)) { var o = -1, i = function next() { for (; ++o < e.length;) if (n.call(e, o)) return next.value = e[o], next.done = !1, next; return next.value = t, next.done = !0, next; }; return i.next = i; } } throw new TypeError(record_typeof(e) + " is not iterable"); } return GeneratorFunction.prototype = GeneratorFunctionPrototype, o(g, "constructor", { value: GeneratorFunctionPrototype, configurable: !0 }), o(GeneratorFunctionPrototype, "constructor", { value: GeneratorFunction, configurable: !0 }), GeneratorFunction.displayName = define(GeneratorFunctionPrototype, u, "GeneratorFunction"), e.isGeneratorFunction = function (t) { var e = "function" == typeof t && t.constructor; return !!e && (e === GeneratorFunction || "GeneratorFunction" === (e.displayName || e.name)); }, e.mark = function (t) { return Object.setPrototypeOf ? Object.setPrototypeOf(t, GeneratorFunctionPrototype) : (t.__proto__ = GeneratorFunctionPrototype, define(t, u, "GeneratorFunction")), t.prototype = Object.create(g), t; }, e.awrap = function (t) { return { __await: t }; }, defineIteratorMethods(AsyncIterator.prototype), define(AsyncIterator.prototype, c, function () { return this; }), e.AsyncIterator = AsyncIterator, e.async = function (t, r, n, o, i) { void 0 === i && (i = Promise); var a = new AsyncIterator(wrap(t, r, n, o), i); return e.isGeneratorFunction(r) ? a : a.next().then(function (t) { return t.done ? t.value : a.next(); }); }, defineIteratorMethods(g), define(g, u, "Generator"), define(g, a, function () { return this; }), define(g, "toString", function () { return "[object Generator]"; }), e.keys = function (t) { var e = Object(t), r = []; for (var n in e) r.push(n); return r.reverse(), function next() { for (; r.length;) { var t = r.pop(); if (t in e) return next.value = t, next.done = !1, next; } return next.done = !0, next; }; }, e.values = values, Context.prototype = { constructor: Context, reset: function reset(e) { if (this.prev = 0, this.next = 0, this.sent = this._sent = t, this.done = !1, this.delegate = null, this.method = "next", this.arg = t, this.tryEntries.forEach(resetTryEntry), !e) for (var r in this) "t" === r.charAt(0) && n.call(this, r) && !isNaN(+r.slice(1)) && (this[r] = t); }, stop: function stop() { this.done = !0; var t = this.tryEntries[0].completion; if ("throw" === t.type) throw t.arg; return this.rval; }, dispatchException: function dispatchException(e) { if (this.done) throw e; var r = this; function handle(n, o) { return a.type = "throw", a.arg = e, r.next = n, o && (r.method = "next", r.arg = t), !!o; } for (var o = this.tryEntries.length - 1; o >= 0; --o) { var i = this.tryEntries[o], a = i.completion; if ("root" === i.tryLoc) return handle("end"); if (i.tryLoc <= this.prev) { var c = n.call(i, "catchLoc"), u = n.call(i, "finallyLoc"); if (c && u) { if (this.prev < i.catchLoc) return handle(i.catchLoc, !0); if (this.prev < i.finallyLoc) return handle(i.finallyLoc); } else if (c) { if (this.prev < i.catchLoc) return handle(i.catchLoc, !0); } else { if (!u) throw Error("try statement without catch or finally"); if (this.prev < i.finallyLoc) return handle(i.finallyLoc); } } } }, abrupt: function abrupt(t, e) { for (var r = this.tryEntries.length - 1; r >= 0; --r) { var o = this.tryEntries[r]; if (o.tryLoc <= this.prev && n.call(o, "finallyLoc") && this.prev < o.finallyLoc) { var i = o; break; } } i && ("break" === t || "continue" === t) && i.tryLoc <= e && e <= i.finallyLoc && (i = null); var a = i ? i.completion : {}; return a.type = t, a.arg = e, i ? (this.method = "next", this.next = i.finallyLoc, y) : this.complete(a); }, complete: function complete(t, e) { if ("throw" === t.type) throw t.arg; return "break" === t.type || "continue" === t.type ? this.next = t.arg : "return" === t.type ? (this.rval = this.arg = t.arg, this.method = "return", this.next = "end") : "normal" === t.type && e && (this.next = e), y; }, finish: function finish(t) { for (var e = this.tryEntries.length - 1; e >= 0; --e) { var r = this.tryEntries[e]; if (r.finallyLoc === t) return this.complete(r.completion, r.afterLoc), resetTryEntry(r), y; } }, catch: function _catch(t) { for (var e = this.tryEntries.length - 1; e >= 0; --e) { var r = this.tryEntries[e]; if (r.tryLoc === t) { var n = r.completion; if ("throw" === n.type) { var o = n.arg; resetTryEntry(r); } return o; } } throw Error("illegal catch attempt"); }, delegateYield: function delegateYield(e, r, n) { return this.delegate = { iterator: values(e), resultName: r, nextLoc: n }, "next" === this.method && (this.arg = t), y; } }, e; } -function record_asyncGeneratorStep(n, t, e, r, o, a, c) { try { var i = n[a](c), u = i.value; } catch (n) { return void e(n); } i.done ? t(u) : Promise.resolve(u).then(r, o); } -function record_asyncToGenerator(n) { return function () { var t = this, e = arguments; return new Promise(function (r, o) { var a = n.apply(t, e); function _next(n) { record_asyncGeneratorStep(a, r, o, _next, _throw, "next", n); } function _throw(n) { record_asyncGeneratorStep(a, r, o, _next, _throw, "throw", n); } _next(void 0); }); }; } -function record_slicedToArray(r, e) { return record_arrayWithHoles(r) || record_iterableToArrayLimit(r, e) || record_unsupportedIterableToArray(r, e) || record_nonIterableRest(); } -function record_nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } -function record_iterableToArrayLimit(r, l) { var t = null == r ? null : "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (null != t) { var e, n, i, u, a = [], f = !0, o = !1; try { if (i = (t = t.call(r)).next, 0 === l) { if (Object(t) !== t) return; f = !1; } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0); } catch (r) { o = !0, n = r; } finally { try { if (!f && null != t.return && (u = t.return(), Object(u) !== u)) return; } finally { if (o) throw n; } } return a; } } -function record_arrayWithHoles(r) { if (Array.isArray(r)) return r; } -function _superPropGet(t, o, e, r) { var p = _get(_getPrototypeOf(1 & r ? t.prototype : t), o, e); return 2 & r && "function" == typeof p ? function (t) { return p.apply(e, t); } : p; } -function _get() { return _get = "undefined" != typeof Reflect && Reflect.get ? Reflect.get.bind() : function (e, t, r) { var p = _superPropBase(e, t); if (p) { var n = Object.getOwnPropertyDescriptor(p, t); return n.get ? n.get.call(arguments.length < 3 ? e : r) : n.value; } }, _get.apply(null, arguments); } -function _superPropBase(t, o) { for (; !{}.hasOwnProperty.call(t, o) && null !== (t = _getPrototypeOf(t));); return t; } -function record_ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; } -function record_objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? record_ownKeys(Object(t), !0).forEach(function (r) { record_defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : record_ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; } -function record_defineProperty(e, r, t) { return (r = record_toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; } -function record_toConsumableArray(r) { return record_arrayWithoutHoles(r) || record_iterableToArray(r) || record_unsupportedIterableToArray(r) || record_nonIterableSpread(); } -function record_nonIterableSpread() { throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } -function record_iterableToArray(r) { if ("undefined" != typeof Symbol && null != r[Symbol.iterator] || null != r["@@iterator"]) return Array.from(r); } -function record_arrayWithoutHoles(r) { if (Array.isArray(r)) return record_arrayLikeToArray(r); } -function _callSuper(t, o, e) { return o = _getPrototypeOf(o), _possibleConstructorReturn(t, _isNativeReflectConstruct() ? Reflect.construct(o, e || [], _getPrototypeOf(t).constructor) : o.apply(t, e)); } -function _possibleConstructorReturn(t, e) { if (e && ("object" == record_typeof(e) || "function" == typeof e)) return e; if (void 0 !== e) throw new TypeError("Derived constructors may only return object or undefined"); return _assertThisInitialized(t); } -function _assertThisInitialized(e) { if (void 0 === e) throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); return e; } -function _inherits(t, e) { if ("function" != typeof e && null !== e) throw new TypeError("Super expression must either be null or a function"); t.prototype = Object.create(e && e.prototype, { constructor: { value: t, writable: !0, configurable: !0 } }), Object.defineProperty(t, "prototype", { writable: !1 }), e && _setPrototypeOf(t, e); } -function _wrapNativeSuper(t) { var r = "function" == typeof Map ? new Map() : void 0; return _wrapNativeSuper = function _wrapNativeSuper(t) { if (null === t || !_isNativeFunction(t)) return t; if ("function" != typeof t) throw new TypeError("Super expression must either be null or a function"); if (void 0 !== r) { if (r.has(t)) return r.get(t); r.set(t, Wrapper); } function Wrapper() { return _construct(t, arguments, _getPrototypeOf(this).constructor); } return Wrapper.prototype = Object.create(t.prototype, { constructor: { value: Wrapper, enumerable: !1, writable: !0, configurable: !0 } }), _setPrototypeOf(Wrapper, t); }, _wrapNativeSuper(t); } -function _construct(t, e, r) { if (_isNativeReflectConstruct()) return Reflect.construct.apply(null, arguments); var o = [null]; o.push.apply(o, e); var p = new (t.bind.apply(t, o))(); return r && _setPrototypeOf(p, r.prototype), p; } -function _isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); } -function _isNativeFunction(t) { try { return -1 !== Function.toString.call(t).indexOf("[native code]"); } catch (n) { return "function" == typeof t; } } -function _setPrototypeOf(t, e) { return _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function (t, e) { return t.__proto__ = e, t; }, _setPrototypeOf(t, e); } -function _getPrototypeOf(t) { return _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function (t) { return t.__proto__ || Object.getPrototypeOf(t); }, _getPrototypeOf(t); } -function record_createForOfIteratorHelper(r, e) { var t = "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (!t) { if (Array.isArray(r) || (t = record_unsupportedIterableToArray(r)) || e && r && "number" == typeof r.length) { t && (r = t); var _n2 = 0, F = function F() {}; return { s: F, n: function n() { return _n2 >= r.length ? { done: !0 } : { done: !1, value: r[_n2++] }; }, e: function e(r) { throw r; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var o, a = !0, u = !1; return { s: function s() { t = t.call(r); }, n: function n() { var r = t.next(); return a = r.done, r; }, e: function e(r) { u = !0, o = r; }, f: function f() { try { a || null == t.return || t.return(); } finally { if (u) throw o; } } }; } -function record_unsupportedIterableToArray(r, a) { if (r) { if ("string" == typeof r) return record_arrayLikeToArray(r, a); var t = {}.toString.call(r).slice(8, -1); return "Object" === t && r.constructor && (t = r.constructor.name), "Map" === t || "Set" === t ? Array.from(r) : "Arguments" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? record_arrayLikeToArray(r, a) : void 0; } } -function record_arrayLikeToArray(r, a) { (null == a || a > r.length) && (a = r.length); for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; return n; } -function record_classCallCheck(a, n) { if (!(a instanceof n)) throw new TypeError("Cannot call a class as a function"); } -function record_defineProperties(e, r) { for (var t = 0; t < r.length; t++) { var o = r[t]; o.enumerable = o.enumerable || !1, o.configurable = !0, "value" in o && (o.writable = !0), Object.defineProperty(e, record_toPropertyKey(o.key), o); } } -function record_createClass(e, r, t) { return r && record_defineProperties(e.prototype, r), t && record_defineProperties(e, t), Object.defineProperty(e, "prototype", { writable: !1 }), e; } -function record_toPropertyKey(t) { var i = record_toPrimitive(t, "string"); return "symbol" == record_typeof(i) ? i : i + ""; } -function record_toPrimitive(t, r) { if ("object" != record_typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != record_typeof(i)) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); } -function record_typeof(o) { "@babel/helpers - typeof"; return record_typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, record_typeof(o); } -var __defProp = Object.defineProperty; -var __defNormalProp = function __defNormalProp(obj, key, value) { - return key in obj ? __defProp(obj, key, { - enumerable: true, - configurable: true, - writable: true, - value: value - }) : obj[key] = value; -}; -var __publicField = function __publicField(obj, key, value) { - return __defNormalProp(obj, record_typeof(key) !== "symbol" ? key + "" : key, value); -}; -var _a; -var __defProp$1 = Object.defineProperty; -var __defNormalProp$1 = function __defNormalProp$1(obj, key, value) { - return key in obj ? __defProp$1(obj, key, { - enumerable: true, - configurable: true, - writable: true, - value: value - }) : obj[key] = value; -}; -var __publicField$1 = function __publicField$1(obj, key, value) { - return __defNormalProp$1(obj, record_typeof(key) !== "symbol" ? key + "" : key, value); -}; -var NodeType$3 = /* @__PURE__ */function (NodeType2) { - NodeType2[NodeType2["Document"] = 0] = "Document"; - NodeType2[NodeType2["DocumentType"] = 1] = "DocumentType"; - NodeType2[NodeType2["Element"] = 2] = "Element"; - NodeType2[NodeType2["Text"] = 3] = "Text"; - NodeType2[NodeType2["CDATA"] = 4] = "CDATA"; - NodeType2[NodeType2["Comment"] = 5] = "Comment"; - return NodeType2; -}(NodeType$3 || {}); -var testableAccessors$1 = { - Node: ["childNodes", "parentNode", "parentElement", "textContent"], - ShadowRoot: ["host", "styleSheets"], - Element: ["shadowRoot", "querySelector", "querySelectorAll"], - MutationObserver: [] -}; -var testableMethods$1 = { - Node: ["contains", "getRootNode"], - ShadowRoot: ["getSelection"], - Element: [], - MutationObserver: ["constructor"] -}; -var untaintedBasePrototype$1 = {}; -var isAngularZonePresent$1 = function isAngularZonePresent$1() { - return !!globalThis.Zone; -}; -function getUntaintedPrototype$1(key) { - if (untaintedBasePrototype$1[key]) return untaintedBasePrototype$1[key]; - var defaultObj = globalThis[key]; - var defaultPrototype = defaultObj.prototype; - var accessorNames = key in testableAccessors$1 ? testableAccessors$1[key] : void 0; - var isUntaintedAccessors = Boolean(accessorNames && - // @ts-expect-error 2345 - accessorNames.every(function (accessor) { - var _a2, _b; - return Boolean((_b = (_a2 = Object.getOwnPropertyDescriptor(defaultPrototype, accessor)) == null ? void 0 : _a2.get) == null ? void 0 : _b.toString().includes("[native code]")); - })); - var methodNames = key in testableMethods$1 ? testableMethods$1[key] : void 0; - var isUntaintedMethods = Boolean(methodNames && methodNames.every( - // @ts-expect-error 2345 - function (method) { - var _a2; - return typeof defaultPrototype[method] === "function" && ((_a2 = defaultPrototype[method]) == null ? void 0 : _a2.toString().includes("[native code]")); - })); - if (isUntaintedAccessors && isUntaintedMethods && !isAngularZonePresent$1()) { - untaintedBasePrototype$1[key] = defaultObj.prototype; - return defaultObj.prototype; - } - try { - var iframeEl = document.createElement("iframe"); - document.body.appendChild(iframeEl); - var win = iframeEl.contentWindow; - if (!win) return defaultObj.prototype; - var untaintedObject = win[key].prototype; - document.body.removeChild(iframeEl); - if (!untaintedObject) return defaultPrototype; - return untaintedBasePrototype$1[key] = untaintedObject; - } catch (_unused) { - return defaultPrototype; - } -} -var untaintedAccessorCache$1 = {}; -function getUntaintedAccessor$1(key, instance, accessor) { - var _a2; - var cacheKey = "".concat(key, ".").concat(String(accessor)); - if (untaintedAccessorCache$1[cacheKey]) return untaintedAccessorCache$1[cacheKey].call(instance); - var untaintedPrototype = getUntaintedPrototype$1(key); - var untaintedAccessor = (_a2 = Object.getOwnPropertyDescriptor(untaintedPrototype, accessor)) == null ? void 0 : _a2.get; - if (!untaintedAccessor) return instance[accessor]; - untaintedAccessorCache$1[cacheKey] = untaintedAccessor; - return untaintedAccessor.call(instance); -} -var untaintedMethodCache$1 = {}; -function getUntaintedMethod$1(key, instance, method) { - var cacheKey = "".concat(key, ".").concat(String(method)); - if (untaintedMethodCache$1[cacheKey]) return untaintedMethodCache$1[cacheKey].bind(instance); - var untaintedPrototype = getUntaintedPrototype$1(key); - var untaintedMethod = untaintedPrototype[method]; - if (typeof untaintedMethod !== "function") return instance[method]; - untaintedMethodCache$1[cacheKey] = untaintedMethod; - return untaintedMethod.bind(instance); -} -function childNodes$1(n2) { - return getUntaintedAccessor$1("Node", n2, "childNodes"); -} -function parentNode$1(n2) { - return getUntaintedAccessor$1("Node", n2, "parentNode"); -} -function parentElement$1(n2) { - return getUntaintedAccessor$1("Node", n2, "parentElement"); -} -function textContent$1(n2) { - return getUntaintedAccessor$1("Node", n2, "textContent"); -} -function contains$1(n2, other) { - return getUntaintedMethod$1("Node", n2, "contains")(other); -} -function getRootNode$1(n2) { - return getUntaintedMethod$1("Node", n2, "getRootNode")(); -} -function host$1(n2) { - if (!n2 || !("host" in n2)) return null; - return getUntaintedAccessor$1("ShadowRoot", n2, "host"); -} -function styleSheets$1(n2) { - return n2.styleSheets; -} -function shadowRoot$1(n2) { - if (!n2 || !("shadowRoot" in n2)) return null; - return getUntaintedAccessor$1("Element", n2, "shadowRoot"); -} -function querySelector$1(n2, selectors) { - return getUntaintedAccessor$1("Element", n2, "querySelector")(selectors); -} -function querySelectorAll$1(n2, selectors) { - return getUntaintedAccessor$1("Element", n2, "querySelectorAll")(selectors); -} -function mutationObserverCtor$1() { - return getUntaintedPrototype$1("MutationObserver").constructor; -} -var index$1 = { - childNodes: childNodes$1, - parentNode: parentNode$1, - parentElement: parentElement$1, - textContent: textContent$1, - contains: contains$1, - getRootNode: getRootNode$1, - host: host$1, - styleSheets: styleSheets$1, - shadowRoot: shadowRoot$1, - querySelector: querySelector$1, - querySelectorAll: querySelectorAll$1, - mutationObserver: mutationObserverCtor$1 -}; -function isElement(n2) { - return n2.nodeType === n2.ELEMENT_NODE; -} -function isShadowRoot(n2) { - var hostEl = - // anchor and textarea elements also have a `host` property - // but only shadow roots have a `mode` property - n2 && "host" in n2 && "mode" in n2 && index$1.host(n2) || null; - return Boolean(hostEl && "shadowRoot" in hostEl && index$1.shadowRoot(hostEl) === n2); -} -function isNativeShadowDom(shadowRoot2) { - return Object.prototype.toString.call(shadowRoot2) === "[object ShadowRoot]"; -} -function fixBrowserCompatibilityIssuesInCSS(cssText) { - if (cssText.includes(" background-clip: text;") && !cssText.includes(" -webkit-background-clip: text;")) { - cssText = cssText.replace(/\sbackground-clip:\s*text;/g, " -webkit-background-clip: text; background-clip: text;"); - } - return cssText; -} -function escapeImportStatement(rule2) { - var cssText = rule2.cssText; - if (cssText.split('"').length < 3) return cssText; - var statement = ["@import", "url(".concat(JSON.stringify(rule2.href), ")")]; - if (rule2.layerName === "") { - statement.push("layer"); - } else if (rule2.layerName) { - statement.push("layer(".concat(rule2.layerName, ")")); - } - if (rule2.supportsText) { - statement.push("supports(".concat(rule2.supportsText, ")")); - } - if (rule2.media.length) { - statement.push(rule2.media.mediaText); - } - return statement.join(" ") + ";"; -} -function stringifyStylesheet(s2) { - try { - var rules2 = s2.rules || s2.cssRules; - if (!rules2) { - return null; - } - var sheetHref = s2.href; - if (!sheetHref && s2.ownerNode && s2.ownerNode.ownerDocument) { - sheetHref = s2.ownerNode.ownerDocument.location.href; - } - var stringifiedRules = Array.from(rules2, function (rule2) { - return stringifyRule(rule2, sheetHref); - }).join(""); - return fixBrowserCompatibilityIssuesInCSS(stringifiedRules); - } catch (error) { - return null; - } -} -function stringifyRule(rule2, sheetHref) { - if (isCSSImportRule(rule2)) { - var importStringified; - try { - importStringified = - // for same-origin stylesheets, - // we can access the imported stylesheet rules directly - stringifyStylesheet(rule2.styleSheet) || - // work around browser issues with the raw string `@import url(...)` statement - escapeImportStatement(rule2); - } catch (error) { - importStringified = rule2.cssText; - } - if (rule2.styleSheet.href) { - return absolutifyURLs(importStringified, rule2.styleSheet.href); - } - return importStringified; - } else { - var ruleStringified = rule2.cssText; - if (isCSSStyleRule(rule2) && rule2.selectorText.includes(":")) { - ruleStringified = fixSafariColons(ruleStringified); - } - if (sheetHref) { - return absolutifyURLs(ruleStringified, sheetHref); - } - return ruleStringified; - } -} -function fixSafariColons(cssStringified) { - var regex = /(\[(?:[\w-]+)[^\\])(:(?:[\w-]+)\])/gm; - return cssStringified.replace(regex, "$1\\$2"); -} -function isCSSImportRule(rule2) { - return "styleSheet" in rule2; -} -function isCSSStyleRule(rule2) { - return "selectorText" in rule2; -} -var Mirror = /*#__PURE__*/function () { - function Mirror() { - record_classCallCheck(this, Mirror); - __publicField$1(this, "idNodeMap", /* @__PURE__ */new Map()); - __publicField$1(this, "nodeMetaMap", /* @__PURE__ */new WeakMap()); - } - return record_createClass(Mirror, [{ - key: "getId", - value: function getId(n2) { - var _a2; - if (!n2) return -1; - var id = (_a2 = this.getMeta(n2)) == null ? void 0 : _a2.id; - return id !== null && id !== void 0 ? id : -1; - } - }, { - key: "getNode", - value: function getNode(id) { - return this.idNodeMap.get(id) || null; - } - }, { - key: "getIds", - value: function getIds() { - return Array.from(this.idNodeMap.keys()); - } - }, { - key: "getMeta", - value: function getMeta(n2) { - return this.nodeMetaMap.get(n2) || null; - } - // removes the node from idNodeMap - // doesn't remove the node from nodeMetaMap - }, { - key: "removeNodeFromMap", - value: function removeNodeFromMap(n2) { - var _this = this; - var id = this.getId(n2); - this.idNodeMap.delete(id); - if (n2.childNodes) { - n2.childNodes.forEach(function (childNode) { - return _this.removeNodeFromMap(childNode); - }); - } - } - }, { - key: "has", - value: function has(id) { - return this.idNodeMap.has(id); - } - }, { - key: "hasNode", - value: function hasNode(node2) { - return this.nodeMetaMap.has(node2); - } - }, { - key: "add", - value: function add(n2, meta) { - var id = meta.id; - this.idNodeMap.set(id, n2); - this.nodeMetaMap.set(n2, meta); - } - }, { - key: "replace", - value: function replace(id, n2) { - var oldNode = this.getNode(id); - if (oldNode) { - var meta = this.nodeMetaMap.get(oldNode); - if (meta) this.nodeMetaMap.set(n2, meta); - } - this.idNodeMap.set(id, n2); - } - }, { - key: "reset", - value: function reset() { - this.idNodeMap = /* @__PURE__ */new Map(); - this.nodeMetaMap = /* @__PURE__ */new WeakMap(); - } - }]); -}(); -function createMirror$2() { - return new Mirror(); -} -function maskInputValue(_ref) { - var element = _ref.element, - maskInputOptions = _ref.maskInputOptions, - tagName = _ref.tagName, - type = _ref.type, - value = _ref.value, - maskInputFn = _ref.maskInputFn; - var text = value || ""; - var actualType = type && toLowerCase(type); - if (maskInputOptions[tagName.toLowerCase()] || actualType && maskInputOptions[actualType]) { - if (maskInputFn) { - text = maskInputFn(text, element); - } else { - text = "*".repeat(text.length); - } - } - return text; -} -function toLowerCase(str) { - return str.toLowerCase(); -} -var ORIGINAL_ATTRIBUTE_NAME = "__rrweb_original__"; -function is2DCanvasBlank(canvas) { - var ctx = canvas.getContext("2d"); - if (!ctx) return true; - var chunkSize = 50; - for (var x2 = 0; x2 < canvas.width; x2 += chunkSize) { - for (var y = 0; y < canvas.height; y += chunkSize) { - var getImageData = ctx.getImageData; - var originalGetImageData = ORIGINAL_ATTRIBUTE_NAME in getImageData ? getImageData[ORIGINAL_ATTRIBUTE_NAME] : getImageData; - var pixelBuffer = new Uint32Array( - // eslint-disable-next-line @typescript-eslint/no-unsafe-argument, @typescript-eslint/no-unsafe-member-access - originalGetImageData.call(ctx, x2, y, Math.min(chunkSize, canvas.width - x2), Math.min(chunkSize, canvas.height - y)).data.buffer); - if (pixelBuffer.some(function (pixel) { - return pixel !== 0; - })) return false; - } - } - return true; -} -function getInputType(element) { - var type = element.type; - return element.hasAttribute("data-rr-is-password") ? "password" : type ? - // eslint-disable-next-line @typescript-eslint/no-unnecessary-type-assertion - toLowerCase(type) : null; -} -function extractFileExtension(path, baseURL) { - var _ref2; - var url; - try { - url = new URL(path, baseURL !== null && baseURL !== void 0 ? baseURL : window.location.href); - } catch (err) { - return null; - } - var regex = /\.([0-9a-z]+)(?:$)/i; - var match = url.pathname.match(regex); - return (_ref2 = match == null ? void 0 : match[1]) !== null && _ref2 !== void 0 ? _ref2 : null; -} -function extractOrigin(url) { - var origin = ""; - if (url.indexOf("//") > -1) { - origin = url.split("/").slice(0, 3).join("/"); - } else { - origin = url.split("/")[0]; - } - origin = origin.split("?")[0]; - return origin; -} -var URL_IN_CSS_REF = /url\((?:(')([^']*)'|(")(.*?)"|([^)]*))\)/gm; -var URL_PROTOCOL_MATCH = /^(?:[a-z+]+:)?\/\//i; -var URL_WWW_MATCH = /^www\..*/i; -var DATA_URI = /^(data:)([^,]*),(.*)/i; -function absolutifyURLs(cssText, href) { - return (cssText || "").replace(URL_IN_CSS_REF, function (origin, quote1, path1, quote2, path2, path3) { - var filePath = path1 || path2 || path3; - var maybeQuote = quote1 || quote2 || ""; - if (!filePath) { - return origin; - } - if (URL_PROTOCOL_MATCH.test(filePath) || URL_WWW_MATCH.test(filePath)) { - return "url(".concat(maybeQuote).concat(filePath).concat(maybeQuote, ")"); - } - if (DATA_URI.test(filePath)) { - return "url(".concat(maybeQuote).concat(filePath).concat(maybeQuote, ")"); - } - if (filePath[0] === "/") { - return "url(".concat(maybeQuote).concat(extractOrigin(href) + filePath).concat(maybeQuote, ")"); - } - var stack = href.split("/"); - var parts = filePath.split("/"); - stack.pop(); - var _iterator = record_createForOfIteratorHelper(parts), - _step; - try { - for (_iterator.s(); !(_step = _iterator.n()).done;) { - var part = _step.value; - if (part === ".") { - continue; - } else if (part === "..") { - stack.pop(); - } else { - stack.push(part); - } - } - } catch (err) { - _iterator.e(err); - } finally { - _iterator.f(); - } - return "url(".concat(maybeQuote).concat(stack.join("/")).concat(maybeQuote, ")"); - }); -} -function normalizeCssString(cssText) { - return cssText.replace(/(\/\*[^*]*\*\/)|[\s;]/g, ""); -} -function splitCssText(cssText, style) { - var childNodes2 = Array.from(style.childNodes); - var splits = []; - if (childNodes2.length > 1 && cssText && typeof cssText === "string") { - var cssTextNorm = normalizeCssString(cssText); - for (var i2 = 1; i2 < childNodes2.length; i2++) { - if (childNodes2[i2].textContent && typeof childNodes2[i2].textContent === "string") { - var textContentNorm = normalizeCssString(childNodes2[i2].textContent); - for (var j = 3; j < textContentNorm.length; j++) { - var bit = textContentNorm.substring(0, j); - if (cssTextNorm.split(bit).length === 2) { - var splitNorm = cssTextNorm.indexOf(bit); - for (var k = splitNorm; k < cssText.length; k++) { - if (normalizeCssString(cssText.substring(0, k)).length === splitNorm) { - splits.push(cssText.substring(0, k)); - cssText = cssText.substring(k); - break; - } - } - break; - } - } - } - } - } - splits.push(cssText); - return splits; -} -function markCssSplits(cssText, style) { - return splitCssText(cssText, style).join("/* rr_split */"); -} -var _id = 1; -var tagNameRegex = new RegExp("[^a-z0-9-_:]"); -var IGNORED_NODE = -2; -function genId() { - return _id++; -} -function getValidTagName$1(element) { - if (element instanceof HTMLFormElement) { - return "form"; - } - var processedTagName = toLowerCase(element.tagName); - if (tagNameRegex.test(processedTagName)) { - return "div"; - } - return processedTagName; -} -var canvasService; -var canvasCtx; -var SRCSET_NOT_SPACES = /^[^ \t\n\r\u000c]+/; -var SRCSET_COMMAS_OR_SPACES = /^[, \t\n\r\u000c]+/; -function getAbsoluteSrcsetString(doc, attributeValue) { - if (attributeValue.trim() === "") { - return attributeValue; - } - var pos = 0; - function collectCharacters(regEx) { - var chars2; - var match = regEx.exec(attributeValue.substring(pos)); - if (match) { - chars2 = match[0]; - pos += chars2.length; - return chars2; - } - return ""; - } - var output = []; - while (true) { - collectCharacters(SRCSET_COMMAS_OR_SPACES); - if (pos >= attributeValue.length) { - break; - } - var url = collectCharacters(SRCSET_NOT_SPACES); - if (url.slice(-1) === ",") { - url = absoluteToDoc(doc, url.substring(0, url.length - 1)); - output.push(url); - } else { - var descriptorsStr = ""; - url = absoluteToDoc(doc, url); - var inParens = false; - while (true) { - var c2 = attributeValue.charAt(pos); - if (c2 === "") { - output.push((url + descriptorsStr).trim()); - break; - } else if (!inParens) { - if (c2 === ",") { - pos += 1; - output.push((url + descriptorsStr).trim()); - break; - } else if (c2 === "(") { - inParens = true; - } - } else { - if (c2 === ")") { - inParens = false; - } - } - descriptorsStr += c2; - pos += 1; - } - } - } - return output.join(", "); -} -var cachedDocument = /* @__PURE__ */new WeakMap(); -function absoluteToDoc(doc, attributeValue) { - if (!attributeValue || attributeValue.trim() === "") { - return attributeValue; - } - return getHref(doc, attributeValue); -} -function isSVGElement(el) { - return Boolean(el.tagName === "svg" || el.ownerSVGElement); -} -function getHref(doc, customHref) { - var a2 = cachedDocument.get(doc); - if (!a2) { - a2 = doc.createElement("a"); - cachedDocument.set(doc, a2); - } - if (!customHref) { - customHref = ""; - } else if (customHref.startsWith("blob:") || customHref.startsWith("data:")) { - return customHref; - } - a2.setAttribute("href", customHref); - return a2.href; -} -function transformAttribute(doc, tagName, name, value) { - if (!value) { - return value; - } - if (name === "src" || name === "href" && !(tagName === "use" && value[0] === "#")) { - return absoluteToDoc(doc, value); - } else if (name === "xlink:href" && value[0] !== "#") { - return absoluteToDoc(doc, value); - } else if (name === "background" && (tagName === "table" || tagName === "td" || tagName === "th")) { - return absoluteToDoc(doc, value); - } else if (name === "srcset") { - return getAbsoluteSrcsetString(doc, value); - } else if (name === "style") { - return absolutifyURLs(value, getHref(doc)); - } else if (tagName === "object" && name === "data") { - return absoluteToDoc(doc, value); - } - return value; -} -function ignoreAttribute(tagName, name, _value) { - return (tagName === "video" || tagName === "audio") && name === "autoplay"; -} -function _isBlockedElement(element, blockClass, blockSelector) { - try { - if (typeof blockClass === "string") { - if (element.classList.contains(blockClass)) { - return true; - } - } else { - for (var eIndex = element.classList.length; eIndex--;) { - var className = element.classList[eIndex]; - if (blockClass.test(className)) { - return true; - } - } - } - if (blockSelector) { - return element.matches(blockSelector); - } - } catch (e2) {} - return false; -} -function classMatchesRegex(node2, regex, checkAncestors) { - if (!node2) return false; - if (node2.nodeType !== node2.ELEMENT_NODE) { - if (!checkAncestors) return false; - return classMatchesRegex(index$1.parentNode(node2), regex, checkAncestors); - } - for (var eIndex = node2.classList.length; eIndex--;) { - var className = node2.classList[eIndex]; - if (regex.test(className)) { - return true; - } - } - if (!checkAncestors) return false; - return classMatchesRegex(index$1.parentNode(node2), regex, checkAncestors); -} -function needMaskingText(node2, maskTextClass, maskTextSelector, checkAncestors) { - var el; - if (isElement(node2)) { - el = node2; - if (!index$1.childNodes(el).length) { - return false; - } - } else if (index$1.parentElement(node2) === null) { - return false; - } else { - el = index$1.parentElement(node2); - } - try { - if (typeof maskTextClass === "string") { - if (checkAncestors) { - if (el.closest(".".concat(maskTextClass))) return true; - } else { - if (el.classList.contains(maskTextClass)) return true; - } - } else { - if (classMatchesRegex(el, maskTextClass, checkAncestors)) return true; - } - if (maskTextSelector) { - if (checkAncestors) { - if (el.closest(maskTextSelector)) return true; - } else { - if (el.matches(maskTextSelector)) return true; - } - } - } catch (e2) {} - return false; -} -function onceIframeLoaded(iframeEl, listener, iframeLoadTimeout) { - var win = iframeEl.contentWindow; - if (!win) { - return; - } - var fired = false; - var readyState; - try { - readyState = win.document.readyState; - } catch (error) { - return; - } - if (readyState !== "complete") { - var timer = setTimeout(function () { - if (!fired) { - listener(); - fired = true; - } - }, iframeLoadTimeout); - iframeEl.addEventListener("load", function () { - clearTimeout(timer); - fired = true; - listener(); - }); - return; - } - var blankUrl = "about:blank"; - if (win.location.href !== blankUrl || iframeEl.src === blankUrl || iframeEl.src === "") { - setTimeout(listener, 0); - return iframeEl.addEventListener("load", listener); - } - iframeEl.addEventListener("load", listener); -} -function onceStylesheetLoaded(link, listener, styleSheetLoadTimeout) { - var fired = false; - var styleSheetLoaded; - try { - styleSheetLoaded = link.sheet; - } catch (error) { - return; - } - if (styleSheetLoaded) return; - var timer = setTimeout(function () { - if (!fired) { - listener(); - fired = true; - } - }, styleSheetLoadTimeout); - link.addEventListener("load", function () { - clearTimeout(timer); - fired = true; - listener(); - }); -} -function serializeNode(n2, options) { - var doc = options.doc, - mirror2 = options.mirror, - blockClass = options.blockClass, - blockSelector = options.blockSelector, - needsMask = options.needsMask, - inlineStylesheet = options.inlineStylesheet, - _options$maskInputOpt = options.maskInputOptions, - maskInputOptions = _options$maskInputOpt === void 0 ? {} : _options$maskInputOpt, - maskTextFn = options.maskTextFn, - maskInputFn = options.maskInputFn, - _options$dataURLOptio = options.dataURLOptions, - dataURLOptions = _options$dataURLOptio === void 0 ? {} : _options$dataURLOptio, - inlineImages = options.inlineImages, - recordCanvas = options.recordCanvas, - keepIframeSrcFn = options.keepIframeSrcFn, - _options$newlyAddedEl = options.newlyAddedElement, - newlyAddedElement = _options$newlyAddedEl === void 0 ? false : _options$newlyAddedEl, - _options$cssCaptured = options.cssCaptured, - cssCaptured = _options$cssCaptured === void 0 ? false : _options$cssCaptured; - var rootId = getRootId(doc, mirror2); - switch (n2.nodeType) { - case n2.DOCUMENT_NODE: - if (n2.compatMode !== "CSS1Compat") { - return { - type: NodeType$3.Document, - childNodes: [], - compatMode: n2.compatMode - // probably "BackCompat" - }; - } else { - return { - type: NodeType$3.Document, - childNodes: [] - }; - } - case n2.DOCUMENT_TYPE_NODE: - return { - type: NodeType$3.DocumentType, - name: n2.name, - publicId: n2.publicId, - systemId: n2.systemId, - rootId: rootId - }; - case n2.ELEMENT_NODE: - return serializeElementNode(n2, { - doc: doc, - blockClass: blockClass, - blockSelector: blockSelector, - inlineStylesheet: inlineStylesheet, - maskInputOptions: maskInputOptions, - maskInputFn: maskInputFn, - dataURLOptions: dataURLOptions, - inlineImages: inlineImages, - recordCanvas: recordCanvas, - keepIframeSrcFn: keepIframeSrcFn, - newlyAddedElement: newlyAddedElement, - rootId: rootId - }); - case n2.TEXT_NODE: - return serializeTextNode(n2, { - doc: doc, - needsMask: needsMask, - maskTextFn: maskTextFn, - rootId: rootId, - cssCaptured: cssCaptured - }); - case n2.CDATA_SECTION_NODE: - return { - type: NodeType$3.CDATA, - textContent: "", - rootId: rootId - }; - case n2.COMMENT_NODE: - return { - type: NodeType$3.Comment, - textContent: index$1.textContent(n2) || "", - rootId: rootId - }; - default: - return false; - } -} -function getRootId(doc, mirror2) { - if (!mirror2.hasNode(doc)) return void 0; - var docId = mirror2.getId(doc); - return docId === 1 ? void 0 : docId; -} -function serializeTextNode(n2, options) { - var needsMask = options.needsMask, - maskTextFn = options.maskTextFn, - rootId = options.rootId, - cssCaptured = options.cssCaptured; - var parent = index$1.parentNode(n2); - var parentTagName = parent && parent.tagName; - var textContent2 = ""; - var isStyle = parentTagName === "STYLE" ? true : void 0; - var isScript = parentTagName === "SCRIPT" ? true : void 0; - if (isScript) { - textContent2 = "SCRIPT_PLACEHOLDER"; - } else if (!cssCaptured) { - textContent2 = index$1.textContent(n2); - if (isStyle && textContent2) { - textContent2 = absolutifyURLs(textContent2, getHref(options.doc)); - } - } - if (!isStyle && !isScript && textContent2 && needsMask) { - textContent2 = maskTextFn ? maskTextFn(textContent2, index$1.parentElement(n2)) : textContent2.replace(/[\S]/g, "*"); - } - return { - type: NodeType$3.Text, - textContent: textContent2 || "", - rootId: rootId - }; -} -function serializeElementNode(n2, options) { - var doc = options.doc, - blockClass = options.blockClass, - blockSelector = options.blockSelector, - inlineStylesheet = options.inlineStylesheet, - _options$maskInputOpt2 = options.maskInputOptions, - maskInputOptions = _options$maskInputOpt2 === void 0 ? {} : _options$maskInputOpt2, - maskInputFn = options.maskInputFn, - _options$dataURLOptio2 = options.dataURLOptions, - dataURLOptions = _options$dataURLOptio2 === void 0 ? {} : _options$dataURLOptio2, - inlineImages = options.inlineImages, - recordCanvas = options.recordCanvas, - keepIframeSrcFn = options.keepIframeSrcFn, - _options$newlyAddedEl2 = options.newlyAddedElement, - newlyAddedElement = _options$newlyAddedEl2 === void 0 ? false : _options$newlyAddedEl2, - rootId = options.rootId; - var needBlock = _isBlockedElement(n2, blockClass, blockSelector); - var tagName = getValidTagName$1(n2); - var attributes = {}; - var len = n2.attributes.length; - for (var i2 = 0; i2 < len; i2++) { - var attr = n2.attributes[i2]; - if (!ignoreAttribute(tagName, attr.name, attr.value)) { - attributes[attr.name] = transformAttribute(doc, tagName, toLowerCase(attr.name), attr.value); - } - } - if (tagName === "link" && inlineStylesheet) { - var stylesheet = Array.from(doc.styleSheets).find(function (s2) { - return s2.href === n2.href; - }); - var cssText = null; - if (stylesheet) { - cssText = stringifyStylesheet(stylesheet); - } - if (cssText) { - delete attributes.rel; - delete attributes.href; - attributes._cssText = cssText; - } - } - if (tagName === "style" && n2.sheet) { - var _cssText = stringifyStylesheet(n2.sheet); - if (_cssText) { - if (n2.childNodes.length > 1) { - _cssText = markCssSplits(_cssText, n2); - } - attributes._cssText = _cssText; - } - } - if (tagName === "input" || tagName === "textarea" || tagName === "select") { - var value = n2.value; - var checked = n2.checked; - if (attributes.type !== "radio" && attributes.type !== "checkbox" && attributes.type !== "submit" && attributes.type !== "button" && value) { - attributes.value = maskInputValue({ - element: n2, - type: getInputType(n2), - tagName: tagName, - value: value, - maskInputOptions: maskInputOptions, - maskInputFn: maskInputFn - }); - } else if (checked) { - attributes.checked = checked; - } - } - if (tagName === "option") { - if (n2.selected && !maskInputOptions["select"]) { - attributes.selected = true; - } else { - delete attributes.selected; - } - } - if (tagName === "dialog" && n2.open) { - attributes.rr_open_mode = n2.matches("dialog:modal") ? "modal" : "non-modal"; - } - if (tagName === "canvas" && recordCanvas) { - if (n2.__context === "2d") { - if (!is2DCanvasBlank(n2)) { - attributes.rr_dataURL = n2.toDataURL(dataURLOptions.type, dataURLOptions.quality); - } - } else if (!("__context" in n2)) { - var canvasDataURL = n2.toDataURL(dataURLOptions.type, dataURLOptions.quality); - var blankCanvas = doc.createElement("canvas"); - blankCanvas.width = n2.width; - blankCanvas.height = n2.height; - var blankCanvasDataURL = blankCanvas.toDataURL(dataURLOptions.type, dataURLOptions.quality); - if (canvasDataURL !== blankCanvasDataURL) { - attributes.rr_dataURL = canvasDataURL; - } - } - } - if (tagName === "img" && inlineImages) { - if (!canvasService) { - canvasService = doc.createElement("canvas"); - canvasCtx = canvasService.getContext("2d"); - } - var image = n2; - var imageSrc = image.currentSrc || image.getAttribute("src") || ""; - var priorCrossOrigin = image.crossOrigin; - var _recordInlineImage = function recordInlineImage() { - image.removeEventListener("load", _recordInlineImage); - try { - canvasService.width = image.naturalWidth; - canvasService.height = image.naturalHeight; - canvasCtx.drawImage(image, 0, 0); - attributes.rr_dataURL = canvasService.toDataURL(dataURLOptions.type, dataURLOptions.quality); - } catch (err) { - if (image.crossOrigin !== "anonymous") { - image.crossOrigin = "anonymous"; - if (image.complete && image.naturalWidth !== 0) _recordInlineImage();else image.addEventListener("load", _recordInlineImage); - return; - } else { - console.warn("Cannot inline img src=".concat(imageSrc, "! Error: ").concat(err)); - } - } - if (image.crossOrigin === "anonymous") { - priorCrossOrigin ? attributes.crossOrigin = priorCrossOrigin : image.removeAttribute("crossorigin"); - } - }; - if (image.complete && image.naturalWidth !== 0) _recordInlineImage();else image.addEventListener("load", _recordInlineImage); - } - if (tagName === "audio" || tagName === "video") { - var mediaAttributes = attributes; - mediaAttributes.rr_mediaState = n2.paused ? "paused" : "played"; - mediaAttributes.rr_mediaCurrentTime = n2.currentTime; - mediaAttributes.rr_mediaPlaybackRate = n2.playbackRate; - mediaAttributes.rr_mediaMuted = n2.muted; - mediaAttributes.rr_mediaLoop = n2.loop; - mediaAttributes.rr_mediaVolume = n2.volume; - } - if (!newlyAddedElement) { - if (n2.scrollLeft) { - attributes.rr_scrollLeft = n2.scrollLeft; - } - if (n2.scrollTop) { - attributes.rr_scrollTop = n2.scrollTop; - } - } - if (needBlock) { - var _n2$getBoundingClient = n2.getBoundingClientRect(), - width = _n2$getBoundingClient.width, - height = _n2$getBoundingClient.height; - attributes = { - class: attributes.class, - rr_width: "".concat(width, "px"), - rr_height: "".concat(height, "px") - }; - } - if (tagName === "iframe" && !keepIframeSrcFn(attributes.src)) { - if (!n2.contentDocument) { - attributes.rr_src = attributes.src; - } - delete attributes.src; - } - var isCustomElement; - try { - if (customElements.get(tagName)) isCustomElement = true; - } catch (e2) {} - return { - type: NodeType$3.Element, - tagName: tagName, - attributes: attributes, - childNodes: [], - isSVG: isSVGElement(n2) || void 0, - needBlock: needBlock, - rootId: rootId, - isCustom: isCustomElement - }; -} -function lowerIfExists(maybeAttr) { - if (maybeAttr === void 0 || maybeAttr === null) { - return ""; - } else { - return maybeAttr.toLowerCase(); - } -} -function slimDOMExcluded(sn, slimDOMOptions) { - if (slimDOMOptions.comment && sn.type === NodeType$3.Comment) { - return true; - } else if (sn.type === NodeType$3.Element) { - if (slimDOMOptions.script && ( - // script tag - sn.tagName === "script" || - // (module)preload link - sn.tagName === "link" && (sn.attributes.rel === "preload" || sn.attributes.rel === "modulepreload") && sn.attributes.as === "script" || - // prefetch link - sn.tagName === "link" && sn.attributes.rel === "prefetch" && typeof sn.attributes.href === "string" && extractFileExtension(sn.attributes.href) === "js")) { - return true; - } else if (slimDOMOptions.headFavicon && (sn.tagName === "link" && sn.attributes.rel === "shortcut icon" || sn.tagName === "meta" && (lowerIfExists(sn.attributes.name).match(/^msapplication-tile(image|color)$/) || lowerIfExists(sn.attributes.name) === "application-name" || lowerIfExists(sn.attributes.rel) === "icon" || lowerIfExists(sn.attributes.rel) === "apple-touch-icon" || lowerIfExists(sn.attributes.rel) === "shortcut icon"))) { - return true; - } else if (sn.tagName === "meta") { - if (slimDOMOptions.headMetaDescKeywords && lowerIfExists(sn.attributes.name).match(/^description|keywords$/)) { - return true; - } else if (slimDOMOptions.headMetaSocial && (lowerIfExists(sn.attributes.property).match(/^(og|twitter|fb):/) || - // og = opengraph (facebook) - lowerIfExists(sn.attributes.name).match(/^(og|twitter):/) || lowerIfExists(sn.attributes.name) === "pinterest")) { - return true; - } else if (slimDOMOptions.headMetaRobots && (lowerIfExists(sn.attributes.name) === "robots" || lowerIfExists(sn.attributes.name) === "googlebot" || lowerIfExists(sn.attributes.name) === "bingbot")) { - return true; - } else if (slimDOMOptions.headMetaHttpEquiv && sn.attributes["http-equiv"] !== void 0) { - return true; - } else if (slimDOMOptions.headMetaAuthorship && (lowerIfExists(sn.attributes.name) === "author" || lowerIfExists(sn.attributes.name) === "generator" || lowerIfExists(sn.attributes.name) === "framework" || lowerIfExists(sn.attributes.name) === "publisher" || lowerIfExists(sn.attributes.name) === "progid" || lowerIfExists(sn.attributes.property).match(/^article:/) || lowerIfExists(sn.attributes.property).match(/^product:/))) { - return true; - } else if (slimDOMOptions.headMetaVerification && (lowerIfExists(sn.attributes.name) === "google-site-verification" || lowerIfExists(sn.attributes.name) === "yandex-verification" || lowerIfExists(sn.attributes.name) === "csrf-token" || lowerIfExists(sn.attributes.name) === "p:domain_verify" || lowerIfExists(sn.attributes.name) === "verify-v1" || lowerIfExists(sn.attributes.name) === "verification" || lowerIfExists(sn.attributes.name) === "shopify-checkout-api-token")) { - return true; - } - } - } - return false; -} -function serializeNodeWithId(n2, options) { - var doc = options.doc, - mirror2 = options.mirror, - blockClass = options.blockClass, - blockSelector = options.blockSelector, - maskTextClass = options.maskTextClass, - maskTextSelector = options.maskTextSelector, - _options$skipChild = options.skipChild, - skipChild = _options$skipChild === void 0 ? false : _options$skipChild, - _options$inlineStyles = options.inlineStylesheet, - inlineStylesheet = _options$inlineStyles === void 0 ? true : _options$inlineStyles, - _options$maskInputOpt3 = options.maskInputOptions, - maskInputOptions = _options$maskInputOpt3 === void 0 ? {} : _options$maskInputOpt3, - maskTextFn = options.maskTextFn, - maskInputFn = options.maskInputFn, - slimDOMOptions = options.slimDOMOptions, - _options$dataURLOptio3 = options.dataURLOptions, - dataURLOptions = _options$dataURLOptio3 === void 0 ? {} : _options$dataURLOptio3, - _options$inlineImages = options.inlineImages, - inlineImages = _options$inlineImages === void 0 ? false : _options$inlineImages, - _options$recordCanvas = options.recordCanvas, - recordCanvas = _options$recordCanvas === void 0 ? false : _options$recordCanvas, - onSerialize = options.onSerialize, - onIframeLoad = options.onIframeLoad, - _options$iframeLoadTi = options.iframeLoadTimeout, - iframeLoadTimeout = _options$iframeLoadTi === void 0 ? 5e3 : _options$iframeLoadTi, - onStylesheetLoad = options.onStylesheetLoad, - _options$stylesheetLo = options.stylesheetLoadTimeout, - stylesheetLoadTimeout = _options$stylesheetLo === void 0 ? 5e3 : _options$stylesheetLo, - _options$keepIframeSr = options.keepIframeSrcFn, - keepIframeSrcFn = _options$keepIframeSr === void 0 ? function () { - return false; - } : _options$keepIframeSr, - _options$newlyAddedEl3 = options.newlyAddedElement, - newlyAddedElement = _options$newlyAddedEl3 === void 0 ? false : _options$newlyAddedEl3, - _options$cssCaptured2 = options.cssCaptured, - cssCaptured = _options$cssCaptured2 === void 0 ? false : _options$cssCaptured2; - var needsMask = options.needsMask; - var _options$preserveWhit = options.preserveWhiteSpace, - preserveWhiteSpace = _options$preserveWhit === void 0 ? true : _options$preserveWhit; - if (!needsMask) { - var checkAncestors = needsMask === void 0; - needsMask = needMaskingText(n2, maskTextClass, maskTextSelector, checkAncestors); - } - var _serializedNode = serializeNode(n2, { - doc: doc, - mirror: mirror2, - blockClass: blockClass, - blockSelector: blockSelector, - needsMask: needsMask, - inlineStylesheet: inlineStylesheet, - maskInputOptions: maskInputOptions, - maskTextFn: maskTextFn, - maskInputFn: maskInputFn, - dataURLOptions: dataURLOptions, - inlineImages: inlineImages, - recordCanvas: recordCanvas, - keepIframeSrcFn: keepIframeSrcFn, - newlyAddedElement: newlyAddedElement, - cssCaptured: cssCaptured - }); - if (!_serializedNode) { - console.warn(n2, "not serialized"); - return null; - } - var id; - if (mirror2.hasNode(n2)) { - id = mirror2.getId(n2); - } else if (slimDOMExcluded(_serializedNode, slimDOMOptions) || !preserveWhiteSpace && _serializedNode.type === NodeType$3.Text && !_serializedNode.textContent.replace(/^\s+|\s+$/gm, "").length) { - id = IGNORED_NODE; - } else { - id = genId(); - } - var serializedNode = Object.assign(_serializedNode, { - id: id - }); - mirror2.add(n2, serializedNode); - if (id === IGNORED_NODE) { - return null; - } - if (onSerialize) { - onSerialize(n2); - } - var recordChild = !skipChild; - if (serializedNode.type === NodeType$3.Element) { - recordChild = recordChild && !serializedNode.needBlock; - delete serializedNode.needBlock; - var shadowRootEl = index$1.shadowRoot(n2); - if (shadowRootEl && isNativeShadowDom(shadowRootEl)) serializedNode.isShadowHost = true; - } - if ((serializedNode.type === NodeType$3.Document || serializedNode.type === NodeType$3.Element) && recordChild) { - if (slimDOMOptions.headWhitespace && serializedNode.type === NodeType$3.Element && serializedNode.tagName === "head") { - preserveWhiteSpace = false; - } - var bypassOptions = { - doc: doc, - mirror: mirror2, - blockClass: blockClass, - blockSelector: blockSelector, - needsMask: needsMask, - maskTextClass: maskTextClass, - maskTextSelector: maskTextSelector, - skipChild: skipChild, - inlineStylesheet: inlineStylesheet, - maskInputOptions: maskInputOptions, - maskTextFn: maskTextFn, - maskInputFn: maskInputFn, - slimDOMOptions: slimDOMOptions, - dataURLOptions: dataURLOptions, - inlineImages: inlineImages, - recordCanvas: recordCanvas, - preserveWhiteSpace: preserveWhiteSpace, - onSerialize: onSerialize, - onIframeLoad: onIframeLoad, - iframeLoadTimeout: iframeLoadTimeout, - onStylesheetLoad: onStylesheetLoad, - stylesheetLoadTimeout: stylesheetLoadTimeout, - keepIframeSrcFn: keepIframeSrcFn, - cssCaptured: false - }; - if (serializedNode.type === NodeType$3.Element && serializedNode.tagName === "textarea" && serializedNode.attributes.value !== void 0) ;else { - if (serializedNode.type === NodeType$3.Element && serializedNode.attributes._cssText !== void 0 && typeof serializedNode.attributes._cssText === "string") { - bypassOptions.cssCaptured = true; - } - for (var _i = 0, _Array$from = Array.from(index$1.childNodes(n2)); _i < _Array$from.length; _i++) { - var childN = _Array$from[_i]; - var serializedChildNode = serializeNodeWithId(childN, bypassOptions); - if (serializedChildNode) { - serializedNode.childNodes.push(serializedChildNode); - } - } - } - var _shadowRootEl = null; - if (isElement(n2) && (_shadowRootEl = index$1.shadowRoot(n2))) { - for (var _i2 = 0, _Array$from2 = Array.from(index$1.childNodes(_shadowRootEl)); _i2 < _Array$from2.length; _i2++) { - var _childN = _Array$from2[_i2]; - var _serializedChildNode = serializeNodeWithId(_childN, bypassOptions); - if (_serializedChildNode) { - isNativeShadowDom(_shadowRootEl) && (_serializedChildNode.isShadow = true); - serializedNode.childNodes.push(_serializedChildNode); - } - } - } - } - var parent = index$1.parentNode(n2); - if (parent && isShadowRoot(parent) && isNativeShadowDom(parent)) { - serializedNode.isShadow = true; - } - if (serializedNode.type === NodeType$3.Element && serializedNode.tagName === "iframe") { - onceIframeLoaded(n2, function () { - var iframeDoc = n2.contentDocument; - if (iframeDoc && onIframeLoad) { - var serializedIframeNode = serializeNodeWithId(iframeDoc, { - doc: iframeDoc, - mirror: mirror2, - blockClass: blockClass, - blockSelector: blockSelector, - needsMask: needsMask, - maskTextClass: maskTextClass, - maskTextSelector: maskTextSelector, - skipChild: false, - inlineStylesheet: inlineStylesheet, - maskInputOptions: maskInputOptions, - maskTextFn: maskTextFn, - maskInputFn: maskInputFn, - slimDOMOptions: slimDOMOptions, - dataURLOptions: dataURLOptions, - inlineImages: inlineImages, - recordCanvas: recordCanvas, - preserveWhiteSpace: preserveWhiteSpace, - onSerialize: onSerialize, - onIframeLoad: onIframeLoad, - iframeLoadTimeout: iframeLoadTimeout, - onStylesheetLoad: onStylesheetLoad, - stylesheetLoadTimeout: stylesheetLoadTimeout, - keepIframeSrcFn: keepIframeSrcFn - }); - if (serializedIframeNode) { - onIframeLoad(n2, serializedIframeNode); - } - } - }, iframeLoadTimeout); - } - if (serializedNode.type === NodeType$3.Element && serializedNode.tagName === "link" && typeof serializedNode.attributes.rel === "string" && (serializedNode.attributes.rel === "stylesheet" || serializedNode.attributes.rel === "preload" && typeof serializedNode.attributes.href === "string" && extractFileExtension(serializedNode.attributes.href) === "css")) { - onceStylesheetLoaded(n2, function () { - if (onStylesheetLoad) { - var serializedLinkNode = serializeNodeWithId(n2, { - doc: doc, - mirror: mirror2, - blockClass: blockClass, - blockSelector: blockSelector, - needsMask: needsMask, - maskTextClass: maskTextClass, - maskTextSelector: maskTextSelector, - skipChild: false, - inlineStylesheet: inlineStylesheet, - maskInputOptions: maskInputOptions, - maskTextFn: maskTextFn, - maskInputFn: maskInputFn, - slimDOMOptions: slimDOMOptions, - dataURLOptions: dataURLOptions, - inlineImages: inlineImages, - recordCanvas: recordCanvas, - preserveWhiteSpace: preserveWhiteSpace, - onSerialize: onSerialize, - onIframeLoad: onIframeLoad, - iframeLoadTimeout: iframeLoadTimeout, - onStylesheetLoad: onStylesheetLoad, - stylesheetLoadTimeout: stylesheetLoadTimeout, - keepIframeSrcFn: keepIframeSrcFn - }); - if (serializedLinkNode) { - onStylesheetLoad(n2, serializedLinkNode); - } - } - }, stylesheetLoadTimeout); - } - return serializedNode; -} -function snapshot(n2, options) { - var _ref3 = options || {}, - _ref3$mirror = _ref3.mirror, - mirror2 = _ref3$mirror === void 0 ? new Mirror() : _ref3$mirror, - _ref3$blockClass = _ref3.blockClass, - blockClass = _ref3$blockClass === void 0 ? "rr-block" : _ref3$blockClass, - _ref3$blockSelector = _ref3.blockSelector, - blockSelector = _ref3$blockSelector === void 0 ? null : _ref3$blockSelector, - _ref3$maskTextClass = _ref3.maskTextClass, - maskTextClass = _ref3$maskTextClass === void 0 ? "rr-mask" : _ref3$maskTextClass, - _ref3$maskTextSelecto = _ref3.maskTextSelector, - maskTextSelector = _ref3$maskTextSelecto === void 0 ? null : _ref3$maskTextSelecto, - _ref3$inlineStyleshee = _ref3.inlineStylesheet, - inlineStylesheet = _ref3$inlineStyleshee === void 0 ? true : _ref3$inlineStyleshee, - _ref3$inlineImages = _ref3.inlineImages, - inlineImages = _ref3$inlineImages === void 0 ? false : _ref3$inlineImages, - _ref3$recordCanvas = _ref3.recordCanvas, - recordCanvas = _ref3$recordCanvas === void 0 ? false : _ref3$recordCanvas, - _ref3$maskAllInputs = _ref3.maskAllInputs, - maskAllInputs = _ref3$maskAllInputs === void 0 ? false : _ref3$maskAllInputs, - maskTextFn = _ref3.maskTextFn, - maskInputFn = _ref3.maskInputFn, - _ref3$slimDOM = _ref3.slimDOM, - slimDOM = _ref3$slimDOM === void 0 ? false : _ref3$slimDOM, - dataURLOptions = _ref3.dataURLOptions, - preserveWhiteSpace = _ref3.preserveWhiteSpace, - onSerialize = _ref3.onSerialize, - onIframeLoad = _ref3.onIframeLoad, - iframeLoadTimeout = _ref3.iframeLoadTimeout, - onStylesheetLoad = _ref3.onStylesheetLoad, - stylesheetLoadTimeout = _ref3.stylesheetLoadTimeout, - _ref3$keepIframeSrcFn = _ref3.keepIframeSrcFn, - keepIframeSrcFn = _ref3$keepIframeSrcFn === void 0 ? function () { - return false; - } : _ref3$keepIframeSrcFn; - var maskInputOptions = maskAllInputs === true ? { - color: true, - date: true, - "datetime-local": true, - email: true, - month: true, - number: true, - range: true, - search: true, - tel: true, - text: true, - time: true, - url: true, - week: true, - textarea: true, - select: true, - password: true - } : maskAllInputs === false ? { - password: true - } : maskAllInputs; - var slimDOMOptions = slimDOM === true || slimDOM === "all" ? - // if true: set of sensible options that should not throw away any information - { - script: true, - comment: true, - headFavicon: true, - headWhitespace: true, - headMetaDescKeywords: slimDOM === "all", - // destructive - headMetaSocial: true, - headMetaRobots: true, - headMetaHttpEquiv: true, - headMetaAuthorship: true, - headMetaVerification: true - } : slimDOM === false ? {} : slimDOM; - return serializeNodeWithId(n2, { - doc: n2, - mirror: mirror2, - blockClass: blockClass, - blockSelector: blockSelector, - maskTextClass: maskTextClass, - maskTextSelector: maskTextSelector, - skipChild: false, - inlineStylesheet: inlineStylesheet, - maskInputOptions: maskInputOptions, - maskTextFn: maskTextFn, - maskInputFn: maskInputFn, - slimDOMOptions: slimDOMOptions, - dataURLOptions: dataURLOptions, - inlineImages: inlineImages, - recordCanvas: recordCanvas, - preserveWhiteSpace: preserveWhiteSpace, - onSerialize: onSerialize, - onIframeLoad: onIframeLoad, - iframeLoadTimeout: iframeLoadTimeout, - onStylesheetLoad: onStylesheetLoad, - stylesheetLoadTimeout: stylesheetLoadTimeout, - keepIframeSrcFn: keepIframeSrcFn, - newlyAddedElement: false - }); -} -function getDefaultExportFromCjs$1(x2) { - return x2 && x2.__esModule && Object.prototype.hasOwnProperty.call(x2, "default") ? x2["default"] : x2; -} -function getAugmentedNamespace$1(n2) { - if (n2.__esModule) return n2; - var f2 = n2.default; - if (typeof f2 == "function") { - var a2 = function a22() { - if (this instanceof a22) { - return Reflect.construct(f2, arguments, this.constructor); - } - return f2.apply(this, arguments); - }; - a2.prototype = f2.prototype; - } else a2 = {}; - Object.defineProperty(a2, "__esModule", { - value: true - }); - Object.keys(n2).forEach(function (k) { - var d = Object.getOwnPropertyDescriptor(n2, k); - Object.defineProperty(a2, k, d.get ? d : { - enumerable: true, - get: function get() { - return n2[k]; - } - }); - }); - return a2; -} -var picocolors_browser$1 = { - exports: {} -}; -var x$1 = String; -var create$1 = function create$1() { - return { - isColorSupported: false, - reset: x$1, - bold: x$1, - dim: x$1, - italic: x$1, - underline: x$1, - inverse: x$1, - hidden: x$1, - strikethrough: x$1, - black: x$1, - red: x$1, - green: x$1, - yellow: x$1, - blue: x$1, - magenta: x$1, - cyan: x$1, - white: x$1, - gray: x$1, - bgBlack: x$1, - bgRed: x$1, - bgGreen: x$1, - bgYellow: x$1, - bgBlue: x$1, - bgMagenta: x$1, - bgCyan: x$1, - bgWhite: x$1 - }; -}; -picocolors_browser$1.exports = create$1(); -picocolors_browser$1.exports.createColors = create$1; -var picocolors_browserExports$1 = picocolors_browser$1.exports; -var __viteBrowserExternal$2 = {}; -var __viteBrowserExternal$1$1 = /* @__PURE__ */Object.freeze(/* @__PURE__ */Object.defineProperty({ - __proto__: null, - default: __viteBrowserExternal$2 -}, Symbol.toStringTag, { - value: "Module" -})); -var require$$2$1 = /* @__PURE__ */getAugmentedNamespace$1(__viteBrowserExternal$1$1); -var pico$1 = picocolors_browserExports$1; -var terminalHighlight$1$1 = require$$2$1; -var CssSyntaxError$3$1 = /*#__PURE__*/function (_Error) { - function CssSyntaxError(message, line, column, source, file, plugin22) { - var _this2; - record_classCallCheck(this, CssSyntaxError); - _this2 = _callSuper(this, CssSyntaxError, [message]); - _this2.name = "CssSyntaxError"; - _this2.reason = message; - if (file) { - _this2.file = file; - } - if (source) { - _this2.source = source; - } - if (plugin22) { - _this2.plugin = plugin22; - } - if (typeof line !== "undefined" && typeof column !== "undefined") { - if (typeof line === "number") { - _this2.line = line; - _this2.column = column; - } else { - _this2.line = line.line; - _this2.column = line.column; - _this2.endLine = column.line; - _this2.endColumn = column.column; - } - } - _this2.setMessage(); - if (Error.captureStackTrace) { - Error.captureStackTrace(_this2, CssSyntaxError); - } - return _this2; - } - _inherits(CssSyntaxError, _Error); - return record_createClass(CssSyntaxError, [{ - key: "setMessage", - value: function setMessage() { - this.message = this.plugin ? this.plugin + ": " : ""; - this.message += this.file ? this.file : ""; - if (typeof this.line !== "undefined") { - this.message += ":" + this.line + ":" + this.column; - } - this.message += ": " + this.reason; - } - }, { - key: "showSourceCode", - value: function showSourceCode(color) { - var _this3 = this; - if (!this.source) return ""; - var css = this.source; - if (color == null) color = pico$1.isColorSupported; - if (terminalHighlight$1$1) { - if (color) css = terminalHighlight$1$1(css); - } - var lines = css.split(/\r?\n/); - var start = Math.max(this.line - 3, 0); - var end = Math.min(this.line + 2, lines.length); - var maxWidth = String(end).length; - var mark, aside; - if (color) { - var _pico$1$createColors = pico$1.createColors(true), - bold = _pico$1$createColors.bold, - gray = _pico$1$createColors.gray, - red = _pico$1$createColors.red; - mark = function mark(text) { - return bold(red(text)); - }; - aside = function aside(text) { - return gray(text); - }; - } else { - mark = aside = function aside(str) { - return str; - }; - } - return lines.slice(start, end).map(function (line, index2) { - var number = start + 1 + index2; - var gutter = " " + (" " + number).slice(-maxWidth) + " | "; - if (number === _this3.line) { - var spacing = aside(gutter.replace(/\d/g, " ")) + line.slice(0, _this3.column - 1).replace(/[^\t]/g, " "); - return mark(">") + aside(gutter) + line + "\n " + spacing + mark("^"); - } - return " " + aside(gutter) + line; - }).join("\n"); - } - }, { - key: "toString", - value: function toString() { - var code = this.showSourceCode(); - if (code) { - code = "\n\n" + code + "\n"; - } - return this.name + ": " + this.message + code; - } - }]); -}(/*#__PURE__*/_wrapNativeSuper(Error)); -var cssSyntaxError$1 = CssSyntaxError$3$1; -CssSyntaxError$3$1.default = CssSyntaxError$3$1; -var symbols$1 = {}; -symbols$1.isClean = Symbol("isClean"); -symbols$1.my = Symbol("my"); -var DEFAULT_RAW$1 = { - after: "\n", - beforeClose: "\n", - beforeComment: "\n", - beforeDecl: "\n", - beforeOpen: " ", - beforeRule: "\n", - colon: ": ", - commentLeft: " ", - commentRight: " ", - emptyBody: "", - indent: " ", - semicolon: false -}; -function capitalize$1(str) { - return str[0].toUpperCase() + str.slice(1); -} -var Stringifier$2$1 = /*#__PURE__*/function () { - function Stringifier(builder) { - record_classCallCheck(this, Stringifier); - this.builder = builder; - } - return record_createClass(Stringifier, [{ - key: "atrule", - value: function atrule(node2, semicolon) { - var name = "@" + node2.name; - var params = node2.params ? this.rawValue(node2, "params") : ""; - if (typeof node2.raws.afterName !== "undefined") { - name += node2.raws.afterName; - } else if (params) { - name += " "; - } - if (node2.nodes) { - this.block(node2, name + params); - } else { - var end = (node2.raws.between || "") + (semicolon ? ";" : ""); - this.builder(name + params + end, node2); - } - } - }, { - key: "beforeAfter", - value: function beforeAfter(node2, detect) { - var value; - if (node2.type === "decl") { - value = this.raw(node2, null, "beforeDecl"); - } else if (node2.type === "comment") { - value = this.raw(node2, null, "beforeComment"); - } else if (detect === "before") { - value = this.raw(node2, null, "beforeRule"); - } else { - value = this.raw(node2, null, "beforeClose"); - } - var buf = node2.parent; - var depth = 0; - while (buf && buf.type !== "root") { - depth += 1; - buf = buf.parent; - } - if (value.includes("\n")) { - var indent = this.raw(node2, null, "indent"); - if (indent.length) { - for (var step = 0; step < depth; step++) value += indent; - } - } - return value; - } - }, { - key: "block", - value: function block(node2, start) { - var between = this.raw(node2, "between", "beforeOpen"); - this.builder(start + between + "{", node2, "start"); - var after; - if (node2.nodes && node2.nodes.length) { - this.body(node2); - after = this.raw(node2, "after"); - } else { - after = this.raw(node2, "after", "emptyBody"); - } - if (after) this.builder(after); - this.builder("}", node2, "end"); - } - }, { - key: "body", - value: function body(node2) { - var last = node2.nodes.length - 1; - while (last > 0) { - if (node2.nodes[last].type !== "comment") break; - last -= 1; - } - var semicolon = this.raw(node2, "semicolon"); - for (var i2 = 0; i2 < node2.nodes.length; i2++) { - var child = node2.nodes[i2]; - var before = this.raw(child, "before"); - if (before) this.builder(before); - this.stringify(child, last !== i2 || semicolon); - } - } - }, { - key: "comment", - value: function comment(node2) { - var left = this.raw(node2, "left", "commentLeft"); - var right = this.raw(node2, "right", "commentRight"); - this.builder("/*" + left + node2.text + right + "*/", node2); - } - }, { - key: "decl", - value: function decl(node2, semicolon) { - var between = this.raw(node2, "between", "colon"); - var string = node2.prop + between + this.rawValue(node2, "value"); - if (node2.important) { - string += node2.raws.important || " !important"; - } - if (semicolon) string += ";"; - this.builder(string, node2); - } - }, { - key: "document", - value: function document(node2) { - this.body(node2); - } - }, { - key: "raw", - value: function raw(node2, own, detect) { - var value; - if (!detect) detect = own; - if (own) { - value = node2.raws[own]; - if (typeof value !== "undefined") return value; - } - var parent = node2.parent; - if (detect === "before") { - if (!parent || parent.type === "root" && parent.first === node2) { - return ""; - } - if (parent && parent.type === "document") { - return ""; - } - } - if (!parent) return DEFAULT_RAW$1[detect]; - var root2 = node2.root(); - if (!root2.rawCache) root2.rawCache = {}; - if (typeof root2.rawCache[detect] !== "undefined") { - return root2.rawCache[detect]; - } - if (detect === "before" || detect === "after") { - return this.beforeAfter(node2, detect); - } else { - var method = "raw" + capitalize$1(detect); - if (this[method]) { - value = this[method](root2, node2); - } else { - root2.walk(function (i2) { - value = i2.raws[own]; - if (typeof value !== "undefined") return false; - }); - } - } - if (typeof value === "undefined") value = DEFAULT_RAW$1[detect]; - root2.rawCache[detect] = value; - return value; - } - }, { - key: "rawBeforeClose", - value: function rawBeforeClose(root2) { - var value; - root2.walk(function (i2) { - if (i2.nodes && i2.nodes.length > 0) { - if (typeof i2.raws.after !== "undefined") { - value = i2.raws.after; - if (value.includes("\n")) { - value = value.replace(/[^\n]+$/, ""); - } - return false; - } - } - }); - if (value) value = value.replace(/\S/g, ""); - return value; - } - }, { - key: "rawBeforeComment", - value: function rawBeforeComment(root2, node2) { - var value; - root2.walkComments(function (i2) { - if (typeof i2.raws.before !== "undefined") { - value = i2.raws.before; - if (value.includes("\n")) { - value = value.replace(/[^\n]+$/, ""); - } - return false; - } - }); - if (typeof value === "undefined") { - value = this.raw(node2, null, "beforeDecl"); - } else if (value) { - value = value.replace(/\S/g, ""); - } - return value; - } - }, { - key: "rawBeforeDecl", - value: function rawBeforeDecl(root2, node2) { - var value; - root2.walkDecls(function (i2) { - if (typeof i2.raws.before !== "undefined") { - value = i2.raws.before; - if (value.includes("\n")) { - value = value.replace(/[^\n]+$/, ""); - } - return false; - } - }); - if (typeof value === "undefined") { - value = this.raw(node2, null, "beforeRule"); - } else if (value) { - value = value.replace(/\S/g, ""); - } - return value; - } - }, { - key: "rawBeforeOpen", - value: function rawBeforeOpen(root2) { - var value; - root2.walk(function (i2) { - if (i2.type !== "decl") { - value = i2.raws.between; - if (typeof value !== "undefined") return false; - } - }); - return value; - } - }, { - key: "rawBeforeRule", - value: function rawBeforeRule(root2) { - var value; - root2.walk(function (i2) { - if (i2.nodes && (i2.parent !== root2 || root2.first !== i2)) { - if (typeof i2.raws.before !== "undefined") { - value = i2.raws.before; - if (value.includes("\n")) { - value = value.replace(/[^\n]+$/, ""); - } - return false; - } - } - }); - if (value) value = value.replace(/\S/g, ""); - return value; - } - }, { - key: "rawColon", - value: function rawColon(root2) { - var value; - root2.walkDecls(function (i2) { - if (typeof i2.raws.between !== "undefined") { - value = i2.raws.between.replace(/[^\s:]/g, ""); - return false; - } - }); - return value; - } - }, { - key: "rawEmptyBody", - value: function rawEmptyBody(root2) { - var value; - root2.walk(function (i2) { - if (i2.nodes && i2.nodes.length === 0) { - value = i2.raws.after; - if (typeof value !== "undefined") return false; - } - }); - return value; - } - }, { - key: "rawIndent", - value: function rawIndent(root2) { - if (root2.raws.indent) return root2.raws.indent; - var value; - root2.walk(function (i2) { - var p = i2.parent; - if (p && p !== root2 && p.parent && p.parent === root2) { - if (typeof i2.raws.before !== "undefined") { - var parts = i2.raws.before.split("\n"); - value = parts[parts.length - 1]; - value = value.replace(/\S/g, ""); - return false; - } - } - }); - return value; - } - }, { - key: "rawSemicolon", - value: function rawSemicolon(root2) { - var value; - root2.walk(function (i2) { - if (i2.nodes && i2.nodes.length && i2.last.type === "decl") { - value = i2.raws.semicolon; - if (typeof value !== "undefined") return false; - } - }); - return value; - } - }, { - key: "rawValue", - value: function rawValue(node2, prop) { - var value = node2[prop]; - var raw = node2.raws[prop]; - if (raw && raw.value === value) { - return raw.raw; - } - return value; - } - }, { - key: "root", - value: function root(node2) { - this.body(node2); - if (node2.raws.after) this.builder(node2.raws.after); - } - }, { - key: "rule", - value: function rule(node2) { - this.block(node2, this.rawValue(node2, "selector")); - if (node2.raws.ownSemicolon) { - this.builder(node2.raws.ownSemicolon, node2, "end"); - } - } - }, { - key: "stringify", - value: function stringify(node2, semicolon) { - if (!this[node2.type]) { - throw new Error("Unknown AST node type " + node2.type + ". Maybe you need to change PostCSS stringifier."); - } - this[node2.type](node2, semicolon); - } - }]); -}(); -var stringifier$1 = Stringifier$2$1; -Stringifier$2$1.default = Stringifier$2$1; -var Stringifier$1$1 = stringifier$1; -function stringify$4$1(node2, builder) { - var str = new Stringifier$1$1(builder); - str.stringify(node2); -} -var stringify_1$1 = stringify$4$1; -stringify$4$1.default = stringify$4$1; -var isClean$2$1 = symbols$1.isClean, - my$2$1 = symbols$1.my; -var CssSyntaxError$2$1 = cssSyntaxError$1; -var Stringifier2$1 = stringifier$1; -var stringify$3$1 = stringify_1$1; -function cloneNode$1(obj, parent) { - var cloned = new obj.constructor(); - for (var i2 in obj) { - if (!Object.prototype.hasOwnProperty.call(obj, i2)) { - continue; - } - if (i2 === "proxyCache") continue; - var value = obj[i2]; - var type = record_typeof(value); - if (i2 === "parent" && type === "object") { - if (parent) cloned[i2] = parent; - } else if (i2 === "source") { - cloned[i2] = value; - } else if (Array.isArray(value)) { - cloned[i2] = value.map(function (j) { - return cloneNode$1(j, cloned); - }); - } else { - if (type === "object" && value !== null) value = cloneNode$1(value); - cloned[i2] = value; - } - } - return cloned; -} -var Node$4$1 = /*#__PURE__*/function () { - function Node2() { - var defaults = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}; - record_classCallCheck(this, Node2); - this.raws = {}; - this[isClean$2$1] = false; - this[my$2$1] = true; - for (var name in defaults) { - if (name === "nodes") { - this.nodes = []; - var _iterator2 = record_createForOfIteratorHelper(defaults[name]), - _step2; - try { - for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) { - var node2 = _step2.value; - if (typeof node2.clone === "function") { - this.append(node2.clone()); - } else { - this.append(node2); - } - } - } catch (err) { - _iterator2.e(err); - } finally { - _iterator2.f(); - } - } else { - this[name] = defaults[name]; - } - } - } - return record_createClass(Node2, [{ - key: "addToError", - value: function addToError(error) { - error.postcssNode = this; - if (error.stack && this.source && /\n\s{4}at /.test(error.stack)) { - var s2 = this.source; - error.stack = error.stack.replace(/\n\s{4}at /, "$&".concat(s2.input.from, ":").concat(s2.start.line, ":").concat(s2.start.column, "$&")); - } - return error; - } - }, { - key: "after", - value: function after(add) { - this.parent.insertAfter(this, add); - return this; - } - }, { - key: "assign", - value: function assign() { - var overrides = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}; - for (var name in overrides) { - this[name] = overrides[name]; - } - return this; - } - }, { - key: "before", - value: function before(add) { - this.parent.insertBefore(this, add); - return this; - } - }, { - key: "cleanRaws", - value: function cleanRaws(keepBetween) { - delete this.raws.before; - delete this.raws.after; - if (!keepBetween) delete this.raws.between; - } - }, { - key: "clone", - value: function clone() { - var overrides = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}; - var cloned = cloneNode$1(this); - for (var name in overrides) { - cloned[name] = overrides[name]; - } - return cloned; - } - }, { - key: "cloneAfter", - value: function cloneAfter() { - var overrides = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}; - var cloned = this.clone(overrides); - this.parent.insertAfter(this, cloned); - return cloned; - } - }, { - key: "cloneBefore", - value: function cloneBefore() { - var overrides = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}; - var cloned = this.clone(overrides); - this.parent.insertBefore(this, cloned); - return cloned; - } - }, { - key: "error", - value: function error(message) { - var opts = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {}; - if (this.source) { - var _this$rangeBy = this.rangeBy(opts), - end = _this$rangeBy.end, - start = _this$rangeBy.start; - return this.source.input.error(message, { - column: start.column, - line: start.line - }, { - column: end.column, - line: end.line - }, opts); - } - return new CssSyntaxError$2$1(message); - } - }, { - key: "getProxyProcessor", - value: function getProxyProcessor() { - return { - get: function get(node2, prop) { - if (prop === "proxyOf") { - return node2; - } else if (prop === "root") { - return function () { - return node2.root().toProxy(); - }; - } else { - return node2[prop]; - } - }, - set: function set(node2, prop, value) { - if (node2[prop] === value) return true; - node2[prop] = value; - if (prop === "prop" || prop === "value" || prop === "name" || prop === "params" || prop === "important" || /* c8 ignore next */ - prop === "text") { - node2.markDirty(); - } - return true; - } - }; - } - }, { - key: "markDirty", - value: function markDirty() { - if (this[isClean$2$1]) { - this[isClean$2$1] = false; - var next = this; - while (next = next.parent) { - next[isClean$2$1] = false; - } - } - } - }, { - key: "next", - value: function next() { - if (!this.parent) return void 0; - var index2 = this.parent.index(this); - return this.parent.nodes[index2 + 1]; - } - }, { - key: "positionBy", - value: function positionBy(opts, stringRepresentation) { - var pos = this.source.start; - if (opts.index) { - pos = this.positionInside(opts.index, stringRepresentation); - } else if (opts.word) { - stringRepresentation = this.toString(); - var index2 = stringRepresentation.indexOf(opts.word); - if (index2 !== -1) pos = this.positionInside(index2, stringRepresentation); - } - return pos; - } - }, { - key: "positionInside", - value: function positionInside(index2, stringRepresentation) { - var string = stringRepresentation || this.toString(); - var column = this.source.start.column; - var line = this.source.start.line; - for (var i2 = 0; i2 < index2; i2++) { - if (string[i2] === "\n") { - column = 1; - line += 1; - } else { - column += 1; - } - } - return { - column: column, - line: line - }; - } - }, { - key: "prev", - value: function prev() { - if (!this.parent) return void 0; - var index2 = this.parent.index(this); - return this.parent.nodes[index2 - 1]; - } - }, { - key: "rangeBy", - value: function rangeBy(opts) { - var start = { - column: this.source.start.column, - line: this.source.start.line - }; - var end = this.source.end ? { - column: this.source.end.column + 1, - line: this.source.end.line - } : { - column: start.column + 1, - line: start.line - }; - if (opts.word) { - var stringRepresentation = this.toString(); - var index2 = stringRepresentation.indexOf(opts.word); - if (index2 !== -1) { - start = this.positionInside(index2, stringRepresentation); - end = this.positionInside(index2 + opts.word.length, stringRepresentation); - } - } else { - if (opts.start) { - start = { - column: opts.start.column, - line: opts.start.line - }; - } else if (opts.index) { - start = this.positionInside(opts.index); - } - if (opts.end) { - end = { - column: opts.end.column, - line: opts.end.line - }; - } else if (typeof opts.endIndex === "number") { - end = this.positionInside(opts.endIndex); - } else if (opts.index) { - end = this.positionInside(opts.index + 1); - } - } - if (end.line < start.line || end.line === start.line && end.column <= start.column) { - end = { - column: start.column + 1, - line: start.line - }; - } - return { - end: end, - start: start - }; - } - }, { - key: "raw", - value: function raw(prop, defaultType) { - var str = new Stringifier2$1(); - return str.raw(this, prop, defaultType); - } - }, { - key: "remove", - value: function remove() { - if (this.parent) { - this.parent.removeChild(this); - } - this.parent = void 0; - return this; - } - }, { - key: "replaceWith", - value: function replaceWith() { - if (this.parent) { - var bookmark = this; - var foundSelf = false; - for (var _len = arguments.length, nodes = new Array(_len), _key = 0; _key < _len; _key++) { - nodes[_key] = arguments[_key]; - } - for (var _i3 = 0, _nodes = nodes; _i3 < _nodes.length; _i3++) { - var node2 = _nodes[_i3]; - if (node2 === this) { - foundSelf = true; - } else if (foundSelf) { - this.parent.insertAfter(bookmark, node2); - bookmark = node2; - } else { - this.parent.insertBefore(bookmark, node2); - } - } - if (!foundSelf) { - this.remove(); - } - } - return this; - } - }, { - key: "root", - value: function root() { - var result2 = this; - while (result2.parent && result2.parent.type !== "document") { - result2 = result2.parent; - } - return result2; - } - }, { - key: "toJSON", - value: function toJSON(_, inputs) { - var fixed = {}; - var emitInputs = inputs == null; - inputs = inputs || /* @__PURE__ */new Map(); - var inputsNextIndex = 0; - for (var name in this) { - if (!Object.prototype.hasOwnProperty.call(this, name)) { - continue; - } - if (name === "parent" || name === "proxyCache") continue; - var value = this[name]; - if (Array.isArray(value)) { - fixed[name] = value.map(function (i2) { - if (record_typeof(i2) === "object" && i2.toJSON) { - return i2.toJSON(null, inputs); - } else { - return i2; - } - }); - } else if (record_typeof(value) === "object" && value.toJSON) { - fixed[name] = value.toJSON(null, inputs); - } else if (name === "source") { - var inputId = inputs.get(value.input); - if (inputId == null) { - inputId = inputsNextIndex; - inputs.set(value.input, inputsNextIndex); - inputsNextIndex++; - } - fixed[name] = { - end: value.end, - inputId: inputId, - start: value.start - }; - } else { - fixed[name] = value; - } - } - if (emitInputs) { - fixed.inputs = record_toConsumableArray(inputs.keys()).map(function (input2) { - return input2.toJSON(); - }); - } - return fixed; - } - }, { - key: "toProxy", - value: function toProxy() { - if (!this.proxyCache) { - this.proxyCache = new Proxy(this, this.getProxyProcessor()); - } - return this.proxyCache; - } - }, { - key: "toString", - value: function toString() { - var stringifier2 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : stringify$3$1; - if (stringifier2.stringify) stringifier2 = stringifier2.stringify; - var result2 = ""; - stringifier2(this, function (i2) { - result2 += i2; - }); - return result2; - } - }, { - key: "warn", - value: function warn(result2, text, opts) { - var data = { - node: this - }; - for (var i2 in opts) data[i2] = opts[i2]; - return result2.warn(text, data); - } - }, { - key: "proxyOf", - get: function get() { - return this; - } - }]); -}(); -var node$1 = Node$4$1; -Node$4$1.default = Node$4$1; -var Node$3$1 = node$1; -var Declaration$4$1 = /*#__PURE__*/function (_Node$3$) { - function Declaration(defaults) { - var _this4; - record_classCallCheck(this, Declaration); - if (defaults && typeof defaults.value !== "undefined" && typeof defaults.value !== "string") { - defaults = record_objectSpread(record_objectSpread({}, defaults), {}, { - value: String(defaults.value) - }); - } - _this4 = _callSuper(this, Declaration, [defaults]); - _this4.type = "decl"; - return _this4; - } - _inherits(Declaration, _Node$3$); - return record_createClass(Declaration, [{ - key: "variable", - get: function get() { - return this.prop.startsWith("--") || this.prop[0] === "$"; - } - }]); -}(Node$3$1); -var declaration$1 = Declaration$4$1; -Declaration$4$1.default = Declaration$4$1; -var urlAlphabet$1 = "useandom-26T198340PX75pxJACKVERYMINDBUSHWOLF_GQZbfghjklqvwyzrict"; -var customAlphabet$1 = function customAlphabet$1(alphabet) { - var defaultSize = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 21; - return function () { - var size = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : defaultSize; - var id = ""; - var i2 = size; - while (i2--) { - id += alphabet[Math.random() * alphabet.length | 0]; - } - return id; - }; -}; -var nanoid$1$1 = function nanoid$1$1() { - var size = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 21; - var id = ""; - var i2 = size; - while (i2--) { - id += urlAlphabet$1[Math.random() * 64 | 0]; - } - return id; -}; -var nonSecure$1 = { - nanoid: nanoid$1$1, - customAlphabet: customAlphabet$1 -}; -var SourceMapConsumer$2$1 = require$$2$1.SourceMapConsumer, - SourceMapGenerator$2$1 = require$$2$1.SourceMapGenerator; -var existsSync$1 = require$$2$1.existsSync, - readFileSync$1 = require$$2$1.readFileSync; -var dirname$1$1 = require$$2$1.dirname, - join$1 = require$$2$1.join; -function fromBase64$1(str) { - if (Buffer) { - return Buffer.from(str, "base64").toString(); - } else { - return window.atob(str); - } -} -var PreviousMap$2$1 = /*#__PURE__*/function () { - function PreviousMap(css, opts) { - record_classCallCheck(this, PreviousMap); - if (opts.map === false) return; - this.loadAnnotation(css); - this.inline = this.startWith(this.annotation, "data:"); - var prev = opts.map ? opts.map.prev : void 0; - var text = this.loadMap(opts.from, prev); - if (!this.mapFile && opts.from) { - this.mapFile = opts.from; - } - if (this.mapFile) this.root = dirname$1$1(this.mapFile); - if (text) this.text = text; - } - return record_createClass(PreviousMap, [{ - key: "consumer", - value: function consumer() { - if (!this.consumerCache) { - this.consumerCache = new SourceMapConsumer$2$1(this.text); - } - return this.consumerCache; - } - }, { - key: "decodeInline", - value: function decodeInline(text) { - var baseCharsetUri = /^data:application\/json;charset=utf-?8;base64,/; - var baseUri = /^data:application\/json;base64,/; - var charsetUri = /^data:application\/json;charset=utf-?8,/; - var uri = /^data:application\/json,/; - if (charsetUri.test(text) || uri.test(text)) { - return decodeURIComponent(text.substr(RegExp.lastMatch.length)); - } - if (baseCharsetUri.test(text) || baseUri.test(text)) { - return fromBase64$1(text.substr(RegExp.lastMatch.length)); - } - var encoding = text.match(/data:application\/json;([^,]+),/)[1]; - throw new Error("Unsupported source map encoding " + encoding); - } - }, { - key: "getAnnotationURL", - value: function getAnnotationURL(sourceMapString) { - return sourceMapString.replace(/^\/\*\s*# sourceMappingURL=/, "").trim(); - } - }, { - key: "isMap", - value: function isMap(map) { - if (record_typeof(map) !== "object") return false; - return typeof map.mappings === "string" || typeof map._mappings === "string" || Array.isArray(map.sections); - } - }, { - key: "loadAnnotation", - value: function loadAnnotation(css) { - var comments = css.match(/\/\*\s*# sourceMappingURL=/gm); - if (!comments) return; - var start = css.lastIndexOf(comments.pop()); - var end = css.indexOf("*/", start); - if (start > -1 && end > -1) { - this.annotation = this.getAnnotationURL(css.substring(start, end)); - } - } - }, { - key: "loadFile", - value: function loadFile(path) { - this.root = dirname$1$1(path); - if (existsSync$1(path)) { - this.mapFile = path; - return readFileSync$1(path, "utf-8").toString().trim(); - } - } - }, { - key: "loadMap", - value: function loadMap(file, prev) { - if (prev === false) return false; - if (prev) { - if (typeof prev === "string") { - return prev; - } else if (typeof prev === "function") { - var prevPath = prev(file); - if (prevPath) { - var map = this.loadFile(prevPath); - if (!map) { - throw new Error("Unable to load previous source map: " + prevPath.toString()); - } - return map; - } - } else if (prev instanceof SourceMapConsumer$2$1) { - return SourceMapGenerator$2$1.fromSourceMap(prev).toString(); - } else if (prev instanceof SourceMapGenerator$2$1) { - return prev.toString(); - } else if (this.isMap(prev)) { - return JSON.stringify(prev); - } else { - throw new Error("Unsupported previous source map format: " + prev.toString()); - } - } else if (this.inline) { - return this.decodeInline(this.annotation); - } else if (this.annotation) { - var _map = this.annotation; - if (file) _map = join$1(dirname$1$1(file), _map); - return this.loadFile(_map); - } - } - }, { - key: "startWith", - value: function startWith(string, start) { - if (!string) return false; - return string.substr(0, start.length) === start; - } - }, { - key: "withContent", - value: function withContent() { - return !!(this.consumer().sourcesContent && this.consumer().sourcesContent.length > 0); - } - }]); -}(); -var previousMap$1 = PreviousMap$2$1; -PreviousMap$2$1.default = PreviousMap$2$1; -var SourceMapConsumer$1$1 = require$$2$1.SourceMapConsumer, - SourceMapGenerator$1$1 = require$$2$1.SourceMapGenerator; -var fileURLToPath$1 = require$$2$1.fileURLToPath, - pathToFileURL$1$1 = require$$2$1.pathToFileURL; -var isAbsolute$1 = require$$2$1.isAbsolute, - resolve$1$1 = require$$2$1.resolve; -var nanoid$2 = nonSecure$1.nanoid; -var terminalHighlight$2 = require$$2$1; -var CssSyntaxError$1$1 = cssSyntaxError$1; -var PreviousMap$1$1 = previousMap$1; -var fromOffsetCache$1 = Symbol("fromOffsetCache"); -var sourceMapAvailable$1$1 = Boolean(SourceMapConsumer$1$1 && SourceMapGenerator$1$1); -var pathAvailable$1$1 = Boolean(resolve$1$1 && isAbsolute$1); -var Input$4$1 = /*#__PURE__*/function () { - function Input(css) { - var opts = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {}; - record_classCallCheck(this, Input); - if (css === null || typeof css === "undefined" || record_typeof(css) === "object" && !css.toString) { - throw new Error("PostCSS received ".concat(css, " instead of CSS string")); - } - this.css = css.toString(); - if (this.css[0] === "\uFEFF" || this.css[0] === "￾") { - this.hasBOM = true; - this.css = this.css.slice(1); - } else { - this.hasBOM = false; - } - if (opts.from) { - if (!pathAvailable$1$1 || /^\w+:\/\//.test(opts.from) || isAbsolute$1(opts.from)) { - this.file = opts.from; - } else { - this.file = resolve$1$1(opts.from); - } - } - if (pathAvailable$1$1 && sourceMapAvailable$1$1) { - var map = new PreviousMap$1$1(this.css, opts); - if (map.text) { - this.map = map; - var file = map.consumer().file; - if (!this.file && file) this.file = this.mapResolve(file); - } - } - if (!this.file) { - this.id = ""; - } - if (this.map) this.map.file = this.from; - } - return record_createClass(Input, [{ - key: "error", - value: function error(message, line, column) { - var opts = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : {}; - var result2, endLine, endColumn; - if (line && record_typeof(line) === "object") { - var start = line; - var end = column; - if (typeof start.offset === "number") { - var pos = this.fromOffset(start.offset); - line = pos.line; - column = pos.col; - } else { - line = start.line; - column = start.column; - } - if (typeof end.offset === "number") { - var _pos = this.fromOffset(end.offset); - endLine = _pos.line; - endColumn = _pos.col; - } else { - endLine = end.line; - endColumn = end.column; - } - } else if (!column) { - var _pos2 = this.fromOffset(line); - line = _pos2.line; - column = _pos2.col; - } - var origin = this.origin(line, column, endLine, endColumn); - if (origin) { - result2 = new CssSyntaxError$1$1(message, origin.endLine === void 0 ? origin.line : { - column: origin.column, - line: origin.line - }, origin.endLine === void 0 ? origin.column : { - column: origin.endColumn, - line: origin.endLine - }, origin.source, origin.file, opts.plugin); - } else { - result2 = new CssSyntaxError$1$1(message, endLine === void 0 ? line : { - column: column, - line: line - }, endLine === void 0 ? column : { - column: endColumn, - line: endLine - }, this.css, this.file, opts.plugin); - } - result2.input = { - column: column, - endColumn: endColumn, - endLine: endLine, - line: line, - source: this.css - }; - if (this.file) { - if (pathToFileURL$1$1) { - result2.input.url = pathToFileURL$1$1(this.file).toString(); - } - result2.input.file = this.file; - } - return result2; - } - }, { - key: "fromOffset", - value: function fromOffset(offset) { - var lastLine, lineToIndex; - if (!this[fromOffsetCache$1]) { - var lines = this.css.split("\n"); - lineToIndex = new Array(lines.length); - var prevIndex = 0; - for (var i2 = 0, l2 = lines.length; i2 < l2; i2++) { - lineToIndex[i2] = prevIndex; - prevIndex += lines[i2].length + 1; - } - this[fromOffsetCache$1] = lineToIndex; - } else { - lineToIndex = this[fromOffsetCache$1]; - } - lastLine = lineToIndex[lineToIndex.length - 1]; - var min = 0; - if (offset >= lastLine) { - min = lineToIndex.length - 1; - } else { - var max = lineToIndex.length - 2; - var mid; - while (min < max) { - mid = min + (max - min >> 1); - if (offset < lineToIndex[mid]) { - max = mid - 1; - } else if (offset >= lineToIndex[mid + 1]) { - min = mid + 1; - } else { - min = mid; - break; - } - } - } - return { - col: offset - lineToIndex[min] + 1, - line: min + 1 - }; - } - }, { - key: "mapResolve", - value: function mapResolve(file) { - if (/^\w+:\/\//.test(file)) { - return file; - } - return resolve$1$1(this.map.consumer().sourceRoot || this.map.root || ".", file); - } - }, { - key: "origin", - value: function origin(line, column, endLine, endColumn) { - if (!this.map) return false; - var consumer = this.map.consumer(); - var from = consumer.originalPositionFor({ - column: column, - line: line - }); - if (!from.source) return false; - var to; - if (typeof endLine === "number") { - to = consumer.originalPositionFor({ - column: endColumn, - line: endLine - }); - } - var fromUrl; - if (isAbsolute$1(from.source)) { - fromUrl = pathToFileURL$1$1(from.source); - } else { - fromUrl = new URL(from.source, this.map.consumer().sourceRoot || pathToFileURL$1$1(this.map.mapFile)); - } - var result2 = { - column: from.column, - endColumn: to && to.column, - endLine: to && to.line, - line: from.line, - url: fromUrl.toString() - }; - if (fromUrl.protocol === "file:") { - if (fileURLToPath$1) { - result2.file = fileURLToPath$1(fromUrl); - } else { - throw new Error("file: protocol is not available in this PostCSS build"); - } - } - var source = consumer.sourceContentFor(from.source); - if (source) result2.source = source; - return result2; - } - }, { - key: "toJSON", - value: function toJSON() { - var json = {}; - for (var _i4 = 0, _arr = ["hasBOM", "css", "file", "id"]; _i4 < _arr.length; _i4++) { - var name = _arr[_i4]; - if (this[name] != null) { - json[name] = this[name]; - } - } - if (this.map) { - json.map = record_objectSpread({}, this.map); - if (json.map.consumerCache) { - json.map.consumerCache = void 0; - } - } - return json; - } - }, { - key: "from", - get: function get() { - return this.file || this.id; - } - }]); -}(); -var input$1 = Input$4$1; -Input$4$1.default = Input$4$1; -if (terminalHighlight$2 && terminalHighlight$2.registerInput) { - terminalHighlight$2.registerInput(Input$4$1); -} -var SourceMapConsumer$3 = require$$2$1.SourceMapConsumer, - SourceMapGenerator$3 = require$$2$1.SourceMapGenerator; -var dirname$2 = require$$2$1.dirname, - relative$1 = require$$2$1.relative, - resolve$2 = require$$2$1.resolve, - sep$1 = require$$2$1.sep; -var pathToFileURL$2 = require$$2$1.pathToFileURL; -var Input$3$1 = input$1; -var sourceMapAvailable$2 = Boolean(SourceMapConsumer$3 && SourceMapGenerator$3); -var pathAvailable$2 = Boolean(dirname$2 && resolve$2 && relative$1 && sep$1); -var MapGenerator$2$1 = /*#__PURE__*/function () { - function MapGenerator(stringify2, root2, opts, cssString) { - record_classCallCheck(this, MapGenerator); - this.stringify = stringify2; - this.mapOpts = opts.map || {}; - this.root = root2; - this.opts = opts; - this.css = cssString; - this.originalCSS = cssString; - this.usesFileUrls = !this.mapOpts.from && this.mapOpts.absolute; - this.memoizedFileURLs = /* @__PURE__ */new Map(); - this.memoizedPaths = /* @__PURE__ */new Map(); - this.memoizedURLs = /* @__PURE__ */new Map(); - } - return record_createClass(MapGenerator, [{ - key: "addAnnotation", - value: function addAnnotation() { - var content; - if (this.isInline()) { - content = "data:application/json;base64," + this.toBase64(this.map.toString()); - } else if (typeof this.mapOpts.annotation === "string") { - content = this.mapOpts.annotation; - } else if (typeof this.mapOpts.annotation === "function") { - content = this.mapOpts.annotation(this.opts.to, this.root); - } else { - content = this.outputFile() + ".map"; - } - var eol = "\n"; - if (this.css.includes("\r\n")) eol = "\r\n"; - this.css += eol + "/*# sourceMappingURL=" + content + " */"; - } - }, { - key: "applyPrevMaps", - value: function applyPrevMaps() { - var _iterator3 = record_createForOfIteratorHelper(this.previous()), - _step3; - try { - for (_iterator3.s(); !(_step3 = _iterator3.n()).done;) { - var prev = _step3.value; - var from = this.toUrl(this.path(prev.file)); - var root2 = prev.root || dirname$2(prev.file); - var map = void 0; - if (this.mapOpts.sourcesContent === false) { - map = new SourceMapConsumer$3(prev.text); - if (map.sourcesContent) { - map.sourcesContent = null; - } - } else { - map = prev.consumer(); - } - this.map.applySourceMap(map, from, this.toUrl(this.path(root2))); - } - } catch (err) { - _iterator3.e(err); - } finally { - _iterator3.f(); - } - } - }, { - key: "clearAnnotation", - value: function clearAnnotation() { - if (this.mapOpts.annotation === false) return; - if (this.root) { - var node2; - for (var i2 = this.root.nodes.length - 1; i2 >= 0; i2--) { - node2 = this.root.nodes[i2]; - if (node2.type !== "comment") continue; - if (node2.text.indexOf("# sourceMappingURL=") === 0) { - this.root.removeChild(i2); - } - } - } else if (this.css) { - this.css = this.css.replace(/\n*?\/\*#[\S\s]*?\*\/$/gm, ""); - } - } - }, { - key: "generate", - value: function generate() { - this.clearAnnotation(); - if (pathAvailable$2 && sourceMapAvailable$2 && this.isMap()) { - return this.generateMap(); - } else { - var result2 = ""; - this.stringify(this.root, function (i2) { - result2 += i2; - }); - return [result2]; - } - } - }, { - key: "generateMap", - value: function generateMap() { - if (this.root) { - this.generateString(); - } else if (this.previous().length === 1) { - var prev = this.previous()[0].consumer(); - prev.file = this.outputFile(); - this.map = SourceMapGenerator$3.fromSourceMap(prev, { - ignoreInvalidMapping: true - }); - } else { - this.map = new SourceMapGenerator$3({ - file: this.outputFile(), - ignoreInvalidMapping: true - }); - this.map.addMapping({ - generated: { - column: 0, - line: 1 - }, - original: { - column: 0, - line: 1 - }, - source: this.opts.from ? this.toUrl(this.path(this.opts.from)) : "" - }); - } - if (this.isSourcesContent()) this.setSourcesContent(); - if (this.root && this.previous().length > 0) this.applyPrevMaps(); - if (this.isAnnotation()) this.addAnnotation(); - if (this.isInline()) { - return [this.css]; - } else { - return [this.css, this.map]; - } - } - }, { - key: "generateString", - value: function generateString() { - var _this5 = this; - this.css = ""; - this.map = new SourceMapGenerator$3({ - file: this.outputFile(), - ignoreInvalidMapping: true - }); - var line = 1; - var column = 1; - var noSource = ""; - var mapping = { - generated: { - column: 0, - line: 0 - }, - original: { - column: 0, - line: 0 - }, - source: "" - }; - var lines, last; - this.stringify(this.root, function (str, node2, type) { - _this5.css += str; - if (node2 && type !== "end") { - mapping.generated.line = line; - mapping.generated.column = column - 1; - if (node2.source && node2.source.start) { - mapping.source = _this5.sourcePath(node2); - mapping.original.line = node2.source.start.line; - mapping.original.column = node2.source.start.column - 1; - _this5.map.addMapping(mapping); - } else { - mapping.source = noSource; - mapping.original.line = 1; - mapping.original.column = 0; - _this5.map.addMapping(mapping); - } - } - lines = str.match(/\n/g); - if (lines) { - line += lines.length; - last = str.lastIndexOf("\n"); - column = str.length - last; - } else { - column += str.length; - } - if (node2 && type !== "start") { - var p = node2.parent || { - raws: {} - }; - var childless = node2.type === "decl" || node2.type === "atrule" && !node2.nodes; - if (!childless || node2 !== p.last || p.raws.semicolon) { - if (node2.source && node2.source.end) { - mapping.source = _this5.sourcePath(node2); - mapping.original.line = node2.source.end.line; - mapping.original.column = node2.source.end.column - 1; - mapping.generated.line = line; - mapping.generated.column = column - 2; - _this5.map.addMapping(mapping); - } else { - mapping.source = noSource; - mapping.original.line = 1; - mapping.original.column = 0; - mapping.generated.line = line; - mapping.generated.column = column - 1; - _this5.map.addMapping(mapping); - } - } - } - }); - } - }, { - key: "isAnnotation", - value: function isAnnotation() { - if (this.isInline()) { - return true; - } - if (typeof this.mapOpts.annotation !== "undefined") { - return this.mapOpts.annotation; - } - if (this.previous().length) { - return this.previous().some(function (i2) { - return i2.annotation; - }); - } - return true; - } - }, { - key: "isInline", - value: function isInline() { - if (typeof this.mapOpts.inline !== "undefined") { - return this.mapOpts.inline; - } - var annotation = this.mapOpts.annotation; - if (typeof annotation !== "undefined" && annotation !== true) { - return false; - } - if (this.previous().length) { - return this.previous().some(function (i2) { - return i2.inline; - }); - } - return true; - } - }, { - key: "isMap", - value: function isMap() { - if (typeof this.opts.map !== "undefined") { - return !!this.opts.map; - } - return this.previous().length > 0; - } - }, { - key: "isSourcesContent", - value: function isSourcesContent() { - if (typeof this.mapOpts.sourcesContent !== "undefined") { - return this.mapOpts.sourcesContent; - } - if (this.previous().length) { - return this.previous().some(function (i2) { - return i2.withContent(); - }); - } - return true; - } - }, { - key: "outputFile", - value: function outputFile() { - if (this.opts.to) { - return this.path(this.opts.to); - } else if (this.opts.from) { - return this.path(this.opts.from); - } else { - return "to.css"; - } - } - }, { - key: "path", - value: function path(file) { - if (this.mapOpts.absolute) return file; - if (file.charCodeAt(0) === 60) return file; - if (/^\w+:\/\//.test(file)) return file; - var cached = this.memoizedPaths.get(file); - if (cached) return cached; - var from = this.opts.to ? dirname$2(this.opts.to) : "."; - if (typeof this.mapOpts.annotation === "string") { - from = dirname$2(resolve$2(from, this.mapOpts.annotation)); - } - var path = relative$1(from, file); - this.memoizedPaths.set(file, path); - return path; - } - }, { - key: "previous", - value: function previous() { - var _this6 = this; - if (!this.previousMaps) { - this.previousMaps = []; - if (this.root) { - this.root.walk(function (node2) { - if (node2.source && node2.source.input.map) { - var map = node2.source.input.map; - if (!_this6.previousMaps.includes(map)) { - _this6.previousMaps.push(map); - } - } - }); - } else { - var input2 = new Input$3$1(this.originalCSS, this.opts); - if (input2.map) this.previousMaps.push(input2.map); - } - } - return this.previousMaps; - } - }, { - key: "setSourcesContent", - value: function setSourcesContent() { - var _this7 = this; - var already = {}; - if (this.root) { - this.root.walk(function (node2) { - if (node2.source) { - var from = node2.source.input.from; - if (from && !already[from]) { - already[from] = true; - var fromUrl = _this7.usesFileUrls ? _this7.toFileUrl(from) : _this7.toUrl(_this7.path(from)); - _this7.map.setSourceContent(fromUrl, node2.source.input.css); - } - } - }); - } else if (this.css) { - var from = this.opts.from ? this.toUrl(this.path(this.opts.from)) : ""; - this.map.setSourceContent(from, this.css); - } - } - }, { - key: "sourcePath", - value: function sourcePath(node2) { - if (this.mapOpts.from) { - return this.toUrl(this.mapOpts.from); - } else if (this.usesFileUrls) { - return this.toFileUrl(node2.source.input.from); - } else { - return this.toUrl(this.path(node2.source.input.from)); - } - } - }, { - key: "toBase64", - value: function toBase64(str) { - if (Buffer) { - return Buffer.from(str).toString("base64"); - } else { - return window.btoa(unescape(encodeURIComponent(str))); - } - } - }, { - key: "toFileUrl", - value: function toFileUrl(path) { - var cached = this.memoizedFileURLs.get(path); - if (cached) return cached; - if (pathToFileURL$2) { - var fileURL = pathToFileURL$2(path).toString(); - this.memoizedFileURLs.set(path, fileURL); - return fileURL; - } else { - throw new Error("`map.absolute` option is not available in this PostCSS build"); - } - } - }, { - key: "toUrl", - value: function toUrl(path) { - var cached = this.memoizedURLs.get(path); - if (cached) return cached; - if (sep$1 === "\\") { - path = path.replace(/\\/g, "/"); - } - var url = encodeURI(path).replace(/[#?]/g, encodeURIComponent); - this.memoizedURLs.set(path, url); - return url; - } - }]); -}(); -var mapGenerator$1 = MapGenerator$2$1; -var Node$2$1 = node$1; -var Comment$4$1 = /*#__PURE__*/function (_Node$2$) { - function Comment(defaults) { - var _this8; - record_classCallCheck(this, Comment); - _this8 = _callSuper(this, Comment, [defaults]); - _this8.type = "comment"; - return _this8; - } - _inherits(Comment, _Node$2$); - return record_createClass(Comment); -}(Node$2$1); -var comment$1 = Comment$4$1; -Comment$4$1.default = Comment$4$1; -var isClean$1$1 = symbols$1.isClean, - my$1$1 = symbols$1.my; -var Declaration$3$1 = declaration$1; -var Comment$3$1 = comment$1; -var Node$1$1 = node$1; -var parse$4$1, Rule$4$1, AtRule$4$1, Root$6$1; -function cleanSource$1(nodes) { - return nodes.map(function (i2) { - if (i2.nodes) i2.nodes = cleanSource$1(i2.nodes); - delete i2.source; - return i2; - }); -} -function markDirtyUp$1(node2) { - node2[isClean$1$1] = false; - if (node2.proxyOf.nodes) { - var _iterator4 = record_createForOfIteratorHelper(node2.proxyOf.nodes), - _step4; - try { - for (_iterator4.s(); !(_step4 = _iterator4.n()).done;) { - var i2 = _step4.value; - markDirtyUp$1(i2); - } - } catch (err) { - _iterator4.e(err); - } finally { - _iterator4.f(); - } - } -} -var Container$7$1 = /*#__PURE__*/function (_Node$1$) { - function Container() { - record_classCallCheck(this, Container); - return _callSuper(this, Container, arguments); - } - _inherits(Container, _Node$1$); - return record_createClass(Container, [{ - key: "append", - value: function append() { - for (var _len2 = arguments.length, children = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) { - children[_key2] = arguments[_key2]; - } - for (var _i5 = 0, _children = children; _i5 < _children.length; _i5++) { - var child = _children[_i5]; - var nodes = this.normalize(child, this.last); - var _iterator5 = record_createForOfIteratorHelper(nodes), - _step5; - try { - for (_iterator5.s(); !(_step5 = _iterator5.n()).done;) { - var node2 = _step5.value; - this.proxyOf.nodes.push(node2); - } - } catch (err) { - _iterator5.e(err); - } finally { - _iterator5.f(); - } - } - this.markDirty(); - return this; - } - }, { - key: "cleanRaws", - value: function cleanRaws(keepBetween) { - _superPropGet(Container, "cleanRaws", this, 3)([keepBetween]); - if (this.nodes) { - var _iterator6 = record_createForOfIteratorHelper(this.nodes), - _step6; - try { - for (_iterator6.s(); !(_step6 = _iterator6.n()).done;) { - var node2 = _step6.value; - node2.cleanRaws(keepBetween); - } - } catch (err) { - _iterator6.e(err); - } finally { - _iterator6.f(); - } - } - } - }, { - key: "each", - value: function each(callback) { - if (!this.proxyOf.nodes) return void 0; - var iterator = this.getIterator(); - var index2, result2; - while (this.indexes[iterator] < this.proxyOf.nodes.length) { - index2 = this.indexes[iterator]; - result2 = callback(this.proxyOf.nodes[index2], index2); - if (result2 === false) break; - this.indexes[iterator] += 1; - } - delete this.indexes[iterator]; - return result2; - } - }, { - key: "every", - value: function every(condition) { - return this.nodes.every(condition); - } - }, { - key: "getIterator", - value: function getIterator() { - if (!this.lastEach) this.lastEach = 0; - if (!this.indexes) this.indexes = {}; - this.lastEach += 1; - var iterator = this.lastEach; - this.indexes[iterator] = 0; - return iterator; - } - }, { - key: "getProxyProcessor", - value: function getProxyProcessor() { - return { - get: function get(node2, prop) { - if (prop === "proxyOf") { - return node2; - } else if (!node2[prop]) { - return node2[prop]; - } else if (prop === "each" || typeof prop === "string" && prop.startsWith("walk")) { - return function () { - for (var _len3 = arguments.length, args = new Array(_len3), _key3 = 0; _key3 < _len3; _key3++) { - args[_key3] = arguments[_key3]; - } - return node2[prop].apply(node2, record_toConsumableArray(args.map(function (i2) { - if (typeof i2 === "function") { - return function (child, index2) { - return i2(child.toProxy(), index2); - }; - } else { - return i2; - } - }))); - }; - } else if (prop === "every" || prop === "some") { - return function (cb) { - return node2[prop](function (child) { - for (var _len4 = arguments.length, other = new Array(_len4 > 1 ? _len4 - 1 : 0), _key4 = 1; _key4 < _len4; _key4++) { - other[_key4 - 1] = arguments[_key4]; - } - return cb.apply(void 0, [child.toProxy()].concat(other)); - }); - }; - } else if (prop === "root") { - return function () { - return node2.root().toProxy(); - }; - } else if (prop === "nodes") { - return node2.nodes.map(function (i2) { - return i2.toProxy(); - }); - } else if (prop === "first" || prop === "last") { - return node2[prop].toProxy(); - } else { - return node2[prop]; - } - }, - set: function set(node2, prop, value) { - if (node2[prop] === value) return true; - node2[prop] = value; - if (prop === "name" || prop === "params" || prop === "selector") { - node2.markDirty(); - } - return true; - } - }; - } - }, { - key: "index", - value: function index(child) { - if (typeof child === "number") return child; - if (child.proxyOf) child = child.proxyOf; - return this.proxyOf.nodes.indexOf(child); - } - }, { - key: "insertAfter", - value: function insertAfter(exist, add) { - var existIndex = this.index(exist); - var nodes = this.normalize(add, this.proxyOf.nodes[existIndex]).reverse(); - existIndex = this.index(exist); - var _iterator7 = record_createForOfIteratorHelper(nodes), - _step7; - try { - for (_iterator7.s(); !(_step7 = _iterator7.n()).done;) { - var node2 = _step7.value; - this.proxyOf.nodes.splice(existIndex + 1, 0, node2); - } - } catch (err) { - _iterator7.e(err); - } finally { - _iterator7.f(); - } - var index2; - for (var id in this.indexes) { - index2 = this.indexes[id]; - if (existIndex < index2) { - this.indexes[id] = index2 + nodes.length; - } - } - this.markDirty(); - return this; - } - }, { - key: "insertBefore", - value: function insertBefore(exist, add) { - var existIndex = this.index(exist); - var type = existIndex === 0 ? "prepend" : false; - var nodes = this.normalize(add, this.proxyOf.nodes[existIndex], type).reverse(); - existIndex = this.index(exist); - var _iterator8 = record_createForOfIteratorHelper(nodes), - _step8; - try { - for (_iterator8.s(); !(_step8 = _iterator8.n()).done;) { - var node2 = _step8.value; - this.proxyOf.nodes.splice(existIndex, 0, node2); - } - } catch (err) { - _iterator8.e(err); - } finally { - _iterator8.f(); - } - var index2; - for (var id in this.indexes) { - index2 = this.indexes[id]; - if (existIndex <= index2) { - this.indexes[id] = index2 + nodes.length; - } - } - this.markDirty(); - return this; - } - }, { - key: "normalize", - value: function normalize(nodes, sample) { - var _this9 = this; - if (typeof nodes === "string") { - nodes = cleanSource$1(parse$4$1(nodes).nodes); - } else if (typeof nodes === "undefined") { - nodes = []; - } else if (Array.isArray(nodes)) { - nodes = nodes.slice(0); - var _iterator9 = record_createForOfIteratorHelper(nodes), - _step9; - try { - for (_iterator9.s(); !(_step9 = _iterator9.n()).done;) { - var i2 = _step9.value; - if (i2.parent) i2.parent.removeChild(i2, "ignore"); - } - } catch (err) { - _iterator9.e(err); - } finally { - _iterator9.f(); - } - } else if (nodes.type === "root" && this.type !== "document") { - nodes = nodes.nodes.slice(0); - var _iterator10 = record_createForOfIteratorHelper(nodes), - _step10; - try { - for (_iterator10.s(); !(_step10 = _iterator10.n()).done;) { - var _i6 = _step10.value; - if (_i6.parent) _i6.parent.removeChild(_i6, "ignore"); - } - } catch (err) { - _iterator10.e(err); - } finally { - _iterator10.f(); - } - } else if (nodes.type) { - nodes = [nodes]; - } else if (nodes.prop) { - if (typeof nodes.value === "undefined") { - throw new Error("Value field is missed in node creation"); - } else if (typeof nodes.value !== "string") { - nodes.value = String(nodes.value); - } - nodes = [new Declaration$3$1(nodes)]; - } else if (nodes.selector) { - nodes = [new Rule$4$1(nodes)]; - } else if (nodes.name) { - nodes = [new AtRule$4$1(nodes)]; - } else if (nodes.text) { - nodes = [new Comment$3$1(nodes)]; - } else { - throw new Error("Unknown node type in node creation"); - } - var processed = nodes.map(function (i2) { - if (!i2[my$1$1]) Container.rebuild(i2); - i2 = i2.proxyOf; - if (i2.parent) i2.parent.removeChild(i2); - if (i2[isClean$1$1]) markDirtyUp$1(i2); - if (typeof i2.raws.before === "undefined") { - if (sample && typeof sample.raws.before !== "undefined") { - i2.raws.before = sample.raws.before.replace(/\S/g, ""); - } - } - i2.parent = _this9.proxyOf; - return i2; - }); - return processed; - } - }, { - key: "prepend", - value: function prepend() { - for (var _len5 = arguments.length, children = new Array(_len5), _key5 = 0; _key5 < _len5; _key5++) { - children[_key5] = arguments[_key5]; - } - children = children.reverse(); - var _iterator11 = record_createForOfIteratorHelper(children), - _step11; - try { - for (_iterator11.s(); !(_step11 = _iterator11.n()).done;) { - var child = _step11.value; - var nodes = this.normalize(child, this.first, "prepend").reverse(); - var _iterator12 = record_createForOfIteratorHelper(nodes), - _step12; - try { - for (_iterator12.s(); !(_step12 = _iterator12.n()).done;) { - var node2 = _step12.value; - this.proxyOf.nodes.unshift(node2); - } - } catch (err) { - _iterator12.e(err); - } finally { - _iterator12.f(); - } - for (var id in this.indexes) { - this.indexes[id] = this.indexes[id] + nodes.length; - } - } - } catch (err) { - _iterator11.e(err); - } finally { - _iterator11.f(); - } - this.markDirty(); - return this; - } - }, { - key: "push", - value: function push(child) { - child.parent = this; - this.proxyOf.nodes.push(child); - return this; - } - }, { - key: "removeAll", - value: function removeAll() { - var _iterator13 = record_createForOfIteratorHelper(this.proxyOf.nodes), - _step13; - try { - for (_iterator13.s(); !(_step13 = _iterator13.n()).done;) { - var node2 = _step13.value; - node2.parent = void 0; - } - } catch (err) { - _iterator13.e(err); - } finally { - _iterator13.f(); - } - this.proxyOf.nodes = []; - this.markDirty(); - return this; - } - }, { - key: "removeChild", - value: function removeChild(child) { - child = this.index(child); - this.proxyOf.nodes[child].parent = void 0; - this.proxyOf.nodes.splice(child, 1); - var index2; - for (var id in this.indexes) { - index2 = this.indexes[id]; - if (index2 >= child) { - this.indexes[id] = index2 - 1; - } - } - this.markDirty(); - return this; - } - }, { - key: "replaceValues", - value: function replaceValues(pattern, opts, callback) { - if (!callback) { - callback = opts; - opts = {}; - } - this.walkDecls(function (decl) { - if (opts.props && !opts.props.includes(decl.prop)) return; - if (opts.fast && !decl.value.includes(opts.fast)) return; - decl.value = decl.value.replace(pattern, callback); - }); - this.markDirty(); - return this; - } - }, { - key: "some", - value: function some(condition) { - return this.nodes.some(condition); - } - }, { - key: "walk", - value: function walk(callback) { - return this.each(function (child, i2) { - var result2; - try { - result2 = callback(child, i2); - } catch (e2) { - throw child.addToError(e2); - } - if (result2 !== false && child.walk) { - result2 = child.walk(callback); - } - return result2; - }); - } - }, { - key: "walkAtRules", - value: function walkAtRules(name, callback) { - if (!callback) { - callback = name; - return this.walk(function (child, i2) { - if (child.type === "atrule") { - return callback(child, i2); - } - }); - } - if (name instanceof RegExp) { - return this.walk(function (child, i2) { - if (child.type === "atrule" && name.test(child.name)) { - return callback(child, i2); - } - }); - } - return this.walk(function (child, i2) { - if (child.type === "atrule" && child.name === name) { - return callback(child, i2); - } - }); - } - }, { - key: "walkComments", - value: function walkComments(callback) { - return this.walk(function (child, i2) { - if (child.type === "comment") { - return callback(child, i2); - } - }); - } - }, { - key: "walkDecls", - value: function walkDecls(prop, callback) { - if (!callback) { - callback = prop; - return this.walk(function (child, i2) { - if (child.type === "decl") { - return callback(child, i2); - } - }); - } - if (prop instanceof RegExp) { - return this.walk(function (child, i2) { - if (child.type === "decl" && prop.test(child.prop)) { - return callback(child, i2); - } - }); - } - return this.walk(function (child, i2) { - if (child.type === "decl" && child.prop === prop) { - return callback(child, i2); - } - }); - } - }, { - key: "walkRules", - value: function walkRules(selector, callback) { - if (!callback) { - callback = selector; - return this.walk(function (child, i2) { - if (child.type === "rule") { - return callback(child, i2); - } - }); - } - if (selector instanceof RegExp) { - return this.walk(function (child, i2) { - if (child.type === "rule" && selector.test(child.selector)) { - return callback(child, i2); - } - }); - } - return this.walk(function (child, i2) { - if (child.type === "rule" && child.selector === selector) { - return callback(child, i2); - } - }); - } - }, { - key: "first", - get: function get() { - if (!this.proxyOf.nodes) return void 0; - return this.proxyOf.nodes[0]; - } - }, { - key: "last", - get: function get() { - if (!this.proxyOf.nodes) return void 0; - return this.proxyOf.nodes[this.proxyOf.nodes.length - 1]; - } - }]); -}(Node$1$1); -Container$7$1.registerParse = function (dependant) { - parse$4$1 = dependant; -}; -Container$7$1.registerRule = function (dependant) { - Rule$4$1 = dependant; -}; -Container$7$1.registerAtRule = function (dependant) { - AtRule$4$1 = dependant; -}; -Container$7$1.registerRoot = function (dependant) { - Root$6$1 = dependant; -}; -var container$1 = Container$7$1; -Container$7$1.default = Container$7$1; -Container$7$1.rebuild = function (node2) { - if (node2.type === "atrule") { - Object.setPrototypeOf(node2, AtRule$4$1.prototype); - } else if (node2.type === "rule") { - Object.setPrototypeOf(node2, Rule$4$1.prototype); - } else if (node2.type === "decl") { - Object.setPrototypeOf(node2, Declaration$3$1.prototype); - } else if (node2.type === "comment") { - Object.setPrototypeOf(node2, Comment$3$1.prototype); - } else if (node2.type === "root") { - Object.setPrototypeOf(node2, Root$6$1.prototype); - } - node2[my$1$1] = true; - if (node2.nodes) { - node2.nodes.forEach(function (child) { - Container$7$1.rebuild(child); - }); - } -}; -var Container$6$1 = container$1; -var LazyResult$4$1, Processor$3$1; -var Document$3$1 = /*#__PURE__*/function (_Container$6$) { - function Document2(defaults) { - var _this10; - record_classCallCheck(this, Document2); - _this10 = _callSuper(this, Document2, [record_objectSpread({ - type: "document" - }, defaults)]); - if (!_this10.nodes) { - _this10.nodes = []; - } - return _this10; - } - _inherits(Document2, _Container$6$); - return record_createClass(Document2, [{ - key: "toResult", - value: function toResult() { - var opts = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}; - var lazy = new LazyResult$4$1(new Processor$3$1(), this, opts); - return lazy.stringify(); - } - }]); -}(Container$6$1); -Document$3$1.registerLazyResult = function (dependant) { - LazyResult$4$1 = dependant; -}; -Document$3$1.registerProcessor = function (dependant) { - Processor$3$1 = dependant; -}; -var document$1$1 = Document$3$1; -Document$3$1.default = Document$3$1; -var printed$1 = {}; -var warnOnce$2$1 = function warnOnce(message) { - if (printed$1[message]) return; - printed$1[message] = true; - if (typeof console !== "undefined" && console.warn) { - console.warn(message); - } -}; -var Warning$2$1 = /*#__PURE__*/function () { - function Warning(text) { - var opts = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {}; - record_classCallCheck(this, Warning); - this.type = "warning"; - this.text = text; - if (opts.node && opts.node.source) { - var range = opts.node.rangeBy(opts); - this.line = range.start.line; - this.column = range.start.column; - this.endLine = range.end.line; - this.endColumn = range.end.column; - } - for (var opt in opts) this[opt] = opts[opt]; - } - return record_createClass(Warning, [{ - key: "toString", - value: function toString() { - if (this.node) { - return this.node.error(this.text, { - index: this.index, - plugin: this.plugin, - word: this.word - }).message; - } - if (this.plugin) { - return this.plugin + ": " + this.text; - } - return this.text; - } - }]); -}(); -var warning$1 = Warning$2$1; -Warning$2$1.default = Warning$2$1; -var Warning$1$1 = warning$1; -var Result$3$1 = /*#__PURE__*/function () { - function Result(processor2, root2, opts) { - record_classCallCheck(this, Result); - this.processor = processor2; - this.messages = []; - this.root = root2; - this.opts = opts; - this.css = void 0; - this.map = void 0; - } - return record_createClass(Result, [{ - key: "toString", - value: function toString() { - return this.css; - } - }, { - key: "warn", - value: function warn(text) { - var opts = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {}; - if (!opts.plugin) { - if (this.lastPlugin && this.lastPlugin.postcssPlugin) { - opts.plugin = this.lastPlugin.postcssPlugin; - } - } - var warning2 = new Warning$1$1(text, opts); - this.messages.push(warning2); - return warning2; - } - }, { - key: "warnings", - value: function warnings() { - return this.messages.filter(function (i2) { - return i2.type === "warning"; - }); - } - }, { - key: "content", - get: function get() { - return this.css; - } - }]); -}(); -var result$1 = Result$3$1; -Result$3$1.default = Result$3$1; -var SINGLE_QUOTE$1 = "'".charCodeAt(0); -var DOUBLE_QUOTE$1 = '"'.charCodeAt(0); -var BACKSLASH$1 = "\\".charCodeAt(0); -var SLASH$1 = "/".charCodeAt(0); -var NEWLINE$1 = "\n".charCodeAt(0); -var SPACE$1 = " ".charCodeAt(0); -var FEED$1 = "\f".charCodeAt(0); -var TAB$1 = " ".charCodeAt(0); -var CR$1 = "\r".charCodeAt(0); -var OPEN_SQUARE$1 = "[".charCodeAt(0); -var CLOSE_SQUARE$1 = "]".charCodeAt(0); -var OPEN_PARENTHESES$1 = "(".charCodeAt(0); -var CLOSE_PARENTHESES$1 = ")".charCodeAt(0); -var OPEN_CURLY$1 = "{".charCodeAt(0); -var CLOSE_CURLY$1 = "}".charCodeAt(0); -var SEMICOLON$1 = ";".charCodeAt(0); -var ASTERISK$1 = "*".charCodeAt(0); -var COLON$1 = ":".charCodeAt(0); -var AT$1 = "@".charCodeAt(0); -var RE_AT_END$1 = /[\t\n\f\r "#'()/;[\\\]{}]/g; -var RE_WORD_END$1 = /[\t\n\f\r !"#'():;@[\\\]{}]|\/(?=\*)/g; -var RE_BAD_BRACKET$1 = /.[\r\n"'(/\\]/; -var RE_HEX_ESCAPE$1 = /[\da-f]/i; -var tokenize$1 = function tokenizer(input2) { - var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {}; - var css = input2.css.valueOf(); - var ignore = options.ignoreErrors; - var code, next, quote, content, escape; - var escaped, escapePos, prev, n2, currentToken; - var length = css.length; - var pos = 0; - var buffer = []; - var returned = []; - function position() { - return pos; - } - function unclosed(what) { - throw input2.error("Unclosed " + what, pos); - } - function endOfFile() { - return returned.length === 0 && pos >= length; - } - function nextToken(opts) { - if (returned.length) return returned.pop(); - if (pos >= length) return; - var ignoreUnclosed = opts ? opts.ignoreUnclosed : false; - code = css.charCodeAt(pos); - switch (code) { - case NEWLINE$1: - case SPACE$1: - case TAB$1: - case CR$1: - case FEED$1: - { - next = pos; - do { - next += 1; - code = css.charCodeAt(next); - } while (code === SPACE$1 || code === NEWLINE$1 || code === TAB$1 || code === CR$1 || code === FEED$1); - currentToken = ["space", css.slice(pos, next)]; - pos = next - 1; - break; - } - case OPEN_SQUARE$1: - case CLOSE_SQUARE$1: - case OPEN_CURLY$1: - case CLOSE_CURLY$1: - case COLON$1: - case SEMICOLON$1: - case CLOSE_PARENTHESES$1: - { - var controlChar = String.fromCharCode(code); - currentToken = [controlChar, controlChar, pos]; - break; - } - case OPEN_PARENTHESES$1: - { - prev = buffer.length ? buffer.pop()[1] : ""; - n2 = css.charCodeAt(pos + 1); - if (prev === "url" && n2 !== SINGLE_QUOTE$1 && n2 !== DOUBLE_QUOTE$1 && n2 !== SPACE$1 && n2 !== NEWLINE$1 && n2 !== TAB$1 && n2 !== FEED$1 && n2 !== CR$1) { - next = pos; - do { - escaped = false; - next = css.indexOf(")", next + 1); - if (next === -1) { - if (ignore || ignoreUnclosed) { - next = pos; - break; - } else { - unclosed("bracket"); - } - } - escapePos = next; - while (css.charCodeAt(escapePos - 1) === BACKSLASH$1) { - escapePos -= 1; - escaped = !escaped; - } - } while (escaped); - currentToken = ["brackets", css.slice(pos, next + 1), pos, next]; - pos = next; - } else { - next = css.indexOf(")", pos + 1); - content = css.slice(pos, next + 1); - if (next === -1 || RE_BAD_BRACKET$1.test(content)) { - currentToken = ["(", "(", pos]; - } else { - currentToken = ["brackets", content, pos, next]; - pos = next; - } - } - break; - } - case SINGLE_QUOTE$1: - case DOUBLE_QUOTE$1: - { - quote = code === SINGLE_QUOTE$1 ? "'" : '"'; - next = pos; - do { - escaped = false; - next = css.indexOf(quote, next + 1); - if (next === -1) { - if (ignore || ignoreUnclosed) { - next = pos + 1; - break; - } else { - unclosed("string"); - } - } - escapePos = next; - while (css.charCodeAt(escapePos - 1) === BACKSLASH$1) { - escapePos -= 1; - escaped = !escaped; - } - } while (escaped); - currentToken = ["string", css.slice(pos, next + 1), pos, next]; - pos = next; - break; - } - case AT$1: - { - RE_AT_END$1.lastIndex = pos + 1; - RE_AT_END$1.test(css); - if (RE_AT_END$1.lastIndex === 0) { - next = css.length - 1; - } else { - next = RE_AT_END$1.lastIndex - 2; - } - currentToken = ["at-word", css.slice(pos, next + 1), pos, next]; - pos = next; - break; - } - case BACKSLASH$1: - { - next = pos; - escape = true; - while (css.charCodeAt(next + 1) === BACKSLASH$1) { - next += 1; - escape = !escape; - } - code = css.charCodeAt(next + 1); - if (escape && code !== SLASH$1 && code !== SPACE$1 && code !== NEWLINE$1 && code !== TAB$1 && code !== CR$1 && code !== FEED$1) { - next += 1; - if (RE_HEX_ESCAPE$1.test(css.charAt(next))) { - while (RE_HEX_ESCAPE$1.test(css.charAt(next + 1))) { - next += 1; - } - if (css.charCodeAt(next + 1) === SPACE$1) { - next += 1; - } - } - } - currentToken = ["word", css.slice(pos, next + 1), pos, next]; - pos = next; - break; - } - default: - { - if (code === SLASH$1 && css.charCodeAt(pos + 1) === ASTERISK$1) { - next = css.indexOf("*/", pos + 2) + 1; - if (next === 0) { - if (ignore || ignoreUnclosed) { - next = css.length; - } else { - unclosed("comment"); - } - } - currentToken = ["comment", css.slice(pos, next + 1), pos, next]; - pos = next; - } else { - RE_WORD_END$1.lastIndex = pos + 1; - RE_WORD_END$1.test(css); - if (RE_WORD_END$1.lastIndex === 0) { - next = css.length - 1; - } else { - next = RE_WORD_END$1.lastIndex - 2; - } - currentToken = ["word", css.slice(pos, next + 1), pos, next]; - buffer.push(currentToken); - pos = next; - } - break; - } - } - pos++; - return currentToken; - } - function back(token) { - returned.push(token); - } - return { - back: back, - endOfFile: endOfFile, - nextToken: nextToken, - position: position - }; -}; -var Container$5$1 = container$1; -var AtRule$3$1 = /*#__PURE__*/function (_Container$5$) { - function AtRule(defaults) { - var _this11; - record_classCallCheck(this, AtRule); - _this11 = _callSuper(this, AtRule, [defaults]); - _this11.type = "atrule"; - return _this11; - } - _inherits(AtRule, _Container$5$); - return record_createClass(AtRule, [{ - key: "append", - value: function append() { - if (!this.proxyOf.nodes) this.nodes = []; - for (var _len6 = arguments.length, children = new Array(_len6), _key6 = 0; _key6 < _len6; _key6++) { - children[_key6] = arguments[_key6]; - } - return _superPropGet(AtRule, "append", this, 3)(children); - } - }, { - key: "prepend", - value: function prepend() { - if (!this.proxyOf.nodes) this.nodes = []; - for (var _len7 = arguments.length, children = new Array(_len7), _key7 = 0; _key7 < _len7; _key7++) { - children[_key7] = arguments[_key7]; - } - return _superPropGet(AtRule, "prepend", this, 3)(children); - } - }]); -}(Container$5$1); -var atRule$1 = AtRule$3$1; -AtRule$3$1.default = AtRule$3$1; -Container$5$1.registerAtRule(AtRule$3$1); -var Container$4$1 = container$1; -var LazyResult$3$1, Processor$2$1; -var Root$5$1 = /*#__PURE__*/function (_Container$4$) { - function Root(defaults) { - var _this12; - record_classCallCheck(this, Root); - _this12 = _callSuper(this, Root, [defaults]); - _this12.type = "root"; - if (!_this12.nodes) _this12.nodes = []; - return _this12; - } - _inherits(Root, _Container$4$); - return record_createClass(Root, [{ - key: "normalize", - value: function normalize(child, sample, type) { - var nodes = _superPropGet(Root, "normalize", this, 3)([child]); - if (sample) { - if (type === "prepend") { - if (this.nodes.length > 1) { - sample.raws.before = this.nodes[1].raws.before; - } else { - delete sample.raws.before; - } - } else if (this.first !== sample) { - var _iterator14 = record_createForOfIteratorHelper(nodes), - _step14; - try { - for (_iterator14.s(); !(_step14 = _iterator14.n()).done;) { - var node2 = _step14.value; - node2.raws.before = sample.raws.before; - } - } catch (err) { - _iterator14.e(err); - } finally { - _iterator14.f(); - } - } - } - return nodes; - } - }, { - key: "removeChild", - value: function removeChild(child, ignore) { - var index2 = this.index(child); - if (!ignore && index2 === 0 && this.nodes.length > 1) { - this.nodes[1].raws.before = this.nodes[index2].raws.before; - } - return _superPropGet(Root, "removeChild", this, 3)([child]); - } - }, { - key: "toResult", - value: function toResult() { - var opts = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}; - var lazy = new LazyResult$3$1(new Processor$2$1(), this, opts); - return lazy.stringify(); - } - }]); -}(Container$4$1); -Root$5$1.registerLazyResult = function (dependant) { - LazyResult$3$1 = dependant; -}; -Root$5$1.registerProcessor = function (dependant) { - Processor$2$1 = dependant; -}; -var root$1 = Root$5$1; -Root$5$1.default = Root$5$1; -Container$4$1.registerRoot(Root$5$1); -var list$2$1 = { - comma: function comma(string) { - return list$2$1.split(string, [","], true); - }, - space: function space(string) { - var spaces = [" ", "\n", " "]; - return list$2$1.split(string, spaces); - }, - split: function split(string, separators, last) { - var array = []; - var current = ""; - var split = false; - var func = 0; - var inQuote = false; - var prevQuote = ""; - var escape = false; - var _iterator15 = record_createForOfIteratorHelper(string), - _step15; - try { - for (_iterator15.s(); !(_step15 = _iterator15.n()).done;) { - var letter = _step15.value; - if (escape) { - escape = false; - } else if (letter === "\\") { - escape = true; - } else if (inQuote) { - if (letter === prevQuote) { - inQuote = false; - } - } else if (letter === '"' || letter === "'") { - inQuote = true; - prevQuote = letter; - } else if (letter === "(") { - func += 1; - } else if (letter === ")") { - if (func > 0) func -= 1; - } else if (func === 0) { - if (separators.includes(letter)) split = true; - } - if (split) { - if (current !== "") array.push(current.trim()); - current = ""; - split = false; - } else { - current += letter; - } - } - } catch (err) { - _iterator15.e(err); - } finally { - _iterator15.f(); - } - if (last || current !== "") array.push(current.trim()); - return array; - } -}; -var list_1$1 = list$2$1; -list$2$1.default = list$2$1; -var Container$3$1 = container$1; -var list$1$1 = list_1$1; -var Rule$3$1 = /*#__PURE__*/function (_Container$3$) { - function Rule(defaults) { - var _this13; - record_classCallCheck(this, Rule); - _this13 = _callSuper(this, Rule, [defaults]); - _this13.type = "rule"; - if (!_this13.nodes) _this13.nodes = []; - return _this13; - } - _inherits(Rule, _Container$3$); - return record_createClass(Rule, [{ - key: "selectors", - get: function get() { - return list$1$1.comma(this.selector); - }, - set: function set(values) { - var match = this.selector ? this.selector.match(/,\s*/) : null; - var sep2 = match ? match[0] : "," + this.raw("between", "beforeOpen"); - this.selector = values.join(sep2); - } - }]); -}(Container$3$1); -var rule$1 = Rule$3$1; -Rule$3$1.default = Rule$3$1; -Container$3$1.registerRule(Rule$3$1); -var Declaration$2$1 = declaration$1; -var tokenizer2$1 = tokenize$1; -var Comment$2$1 = comment$1; -var AtRule$2$1 = atRule$1; -var Root$4$1 = root$1; -var Rule$2$1 = rule$1; -var SAFE_COMMENT_NEIGHBOR$1 = { - empty: true, - space: true -}; -function findLastWithPosition$1(tokens) { - for (var i2 = tokens.length - 1; i2 >= 0; i2--) { - var token = tokens[i2]; - var pos = token[3] || token[2]; - if (pos) return pos; - } -} -var Parser$1$1 = /*#__PURE__*/function () { - function Parser(input2) { - record_classCallCheck(this, Parser); - this.input = input2; - this.root = new Root$4$1(); - this.current = this.root; - this.spaces = ""; - this.semicolon = false; - this.createTokenizer(); - this.root.source = { - input: input2, - start: { - column: 1, - line: 1, - offset: 0 - } - }; - } - return record_createClass(Parser, [{ - key: "atrule", - value: function atrule(token) { - var node2 = new AtRule$2$1(); - node2.name = token[1].slice(1); - if (node2.name === "") { - this.unnamedAtrule(node2, token); - } - this.init(node2, token[2]); - var type; - var prev; - var shift; - var last = false; - var open = false; - var params = []; - var brackets = []; - while (!this.tokenizer.endOfFile()) { - token = this.tokenizer.nextToken(); - type = token[0]; - if (type === "(" || type === "[") { - brackets.push(type === "(" ? ")" : "]"); - } else if (type === "{" && brackets.length > 0) { - brackets.push("}"); - } else if (type === brackets[brackets.length - 1]) { - brackets.pop(); - } - if (brackets.length === 0) { - if (type === ";") { - node2.source.end = this.getPosition(token[2]); - node2.source.end.offset++; - this.semicolon = true; - break; - } else if (type === "{") { - open = true; - break; - } else if (type === "}") { - if (params.length > 0) { - shift = params.length - 1; - prev = params[shift]; - while (prev && prev[0] === "space") { - prev = params[--shift]; - } - if (prev) { - node2.source.end = this.getPosition(prev[3] || prev[2]); - node2.source.end.offset++; - } - } - this.end(token); - break; - } else { - params.push(token); - } - } else { - params.push(token); - } - if (this.tokenizer.endOfFile()) { - last = true; - break; - } - } - node2.raws.between = this.spacesAndCommentsFromEnd(params); - if (params.length) { - node2.raws.afterName = this.spacesAndCommentsFromStart(params); - this.raw(node2, "params", params); - if (last) { - token = params[params.length - 1]; - node2.source.end = this.getPosition(token[3] || token[2]); - node2.source.end.offset++; - this.spaces = node2.raws.between; - node2.raws.between = ""; - } - } else { - node2.raws.afterName = ""; - node2.params = ""; - } - if (open) { - node2.nodes = []; - this.current = node2; - } - } - }, { - key: "checkMissedSemicolon", - value: function checkMissedSemicolon(tokens) { - var colon = this.colon(tokens); - if (colon === false) return; - var founded = 0; - var token; - for (var j = colon - 1; j >= 0; j--) { - token = tokens[j]; - if (token[0] !== "space") { - founded += 1; - if (founded === 2) break; - } - } - throw this.input.error("Missed semicolon", token[0] === "word" ? token[3] + 1 : token[2]); - } - }, { - key: "colon", - value: function colon(tokens) { - var brackets = 0; - var token, type, prev; - var _iterator16 = record_createForOfIteratorHelper(tokens.entries()), - _step16; - try { - for (_iterator16.s(); !(_step16 = _iterator16.n()).done;) { - var _step16$value = record_slicedToArray(_step16.value, 2), - i2 = _step16$value[0], - element = _step16$value[1]; - token = element; - type = token[0]; - if (type === "(") { - brackets += 1; - } - if (type === ")") { - brackets -= 1; - } - if (brackets === 0 && type === ":") { - if (!prev) { - this.doubleColon(token); - } else if (prev[0] === "word" && prev[1] === "progid") { - continue; - } else { - return i2; - } - } - prev = token; - } - } catch (err) { - _iterator16.e(err); - } finally { - _iterator16.f(); - } - return false; - } - }, { - key: "comment", - value: function comment(token) { - var node2 = new Comment$2$1(); - this.init(node2, token[2]); - node2.source.end = this.getPosition(token[3] || token[2]); - node2.source.end.offset++; - var text = token[1].slice(2, -2); - if (/^\s*$/.test(text)) { - node2.text = ""; - node2.raws.left = text; - node2.raws.right = ""; - } else { - var match = text.match(/^(\s*)([^]*\S)(\s*)$/); - node2.text = match[2]; - node2.raws.left = match[1]; - node2.raws.right = match[3]; - } - } - }, { - key: "createTokenizer", - value: function createTokenizer() { - this.tokenizer = tokenizer2$1(this.input); - } - }, { - key: "decl", - value: function decl(tokens, customProperty) { - var node2 = new Declaration$2$1(); - this.init(node2, tokens[0][2]); - var last = tokens[tokens.length - 1]; - if (last[0] === ";") { - this.semicolon = true; - tokens.pop(); - } - node2.source.end = this.getPosition(last[3] || last[2] || findLastWithPosition$1(tokens)); - node2.source.end.offset++; - while (tokens[0][0] !== "word") { - if (tokens.length === 1) this.unknownWord(tokens); - node2.raws.before += tokens.shift()[1]; - } - node2.source.start = this.getPosition(tokens[0][2]); - node2.prop = ""; - while (tokens.length) { - var type = tokens[0][0]; - if (type === ":" || type === "space" || type === "comment") { - break; - } - node2.prop += tokens.shift()[1]; - } - node2.raws.between = ""; - var token; - while (tokens.length) { - token = tokens.shift(); - if (token[0] === ":") { - node2.raws.between += token[1]; - break; - } else { - if (token[0] === "word" && /\w/.test(token[1])) { - this.unknownWord([token]); - } - node2.raws.between += token[1]; - } - } - if (node2.prop[0] === "_" || node2.prop[0] === "*") { - node2.raws.before += node2.prop[0]; - node2.prop = node2.prop.slice(1); - } - var firstSpaces = []; - var next; - while (tokens.length) { - next = tokens[0][0]; - if (next !== "space" && next !== "comment") break; - firstSpaces.push(tokens.shift()); - } - this.precheckMissedSemicolon(tokens); - for (var i2 = tokens.length - 1; i2 >= 0; i2--) { - token = tokens[i2]; - if (token[1].toLowerCase() === "!important") { - node2.important = true; - var string = this.stringFrom(tokens, i2); - string = this.spacesFromEnd(tokens) + string; - if (string !== " !important") node2.raws.important = string; - break; - } else if (token[1].toLowerCase() === "important") { - var cache = tokens.slice(0); - var str = ""; - for (var j = i2; j > 0; j--) { - var _type = cache[j][0]; - if (str.trim().indexOf("!") === 0 && _type !== "space") { - break; - } - str = cache.pop()[1] + str; - } - if (str.trim().indexOf("!") === 0) { - node2.important = true; - node2.raws.important = str; - tokens = cache; - } - } - if (token[0] !== "space" && token[0] !== "comment") { - break; - } - } - var hasWord = tokens.some(function (i2) { - return i2[0] !== "space" && i2[0] !== "comment"; - }); - if (hasWord) { - node2.raws.between += firstSpaces.map(function (i2) { - return i2[1]; - }).join(""); - firstSpaces = []; - } - this.raw(node2, "value", firstSpaces.concat(tokens), customProperty); - if (node2.value.includes(":") && !customProperty) { - this.checkMissedSemicolon(tokens); - } - } - }, { - key: "doubleColon", - value: function doubleColon(token) { - throw this.input.error("Double colon", { - offset: token[2] - }, { - offset: token[2] + token[1].length - }); - } - }, { - key: "emptyRule", - value: function emptyRule(token) { - var node2 = new Rule$2$1(); - this.init(node2, token[2]); - node2.selector = ""; - node2.raws.between = ""; - this.current = node2; - } - }, { - key: "end", - value: function end(token) { - if (this.current.nodes && this.current.nodes.length) { - this.current.raws.semicolon = this.semicolon; - } - this.semicolon = false; - this.current.raws.after = (this.current.raws.after || "") + this.spaces; - this.spaces = ""; - if (this.current.parent) { - this.current.source.end = this.getPosition(token[2]); - this.current.source.end.offset++; - this.current = this.current.parent; - } else { - this.unexpectedClose(token); - } - } - }, { - key: "endFile", - value: function endFile() { - if (this.current.parent) this.unclosedBlock(); - if (this.current.nodes && this.current.nodes.length) { - this.current.raws.semicolon = this.semicolon; - } - this.current.raws.after = (this.current.raws.after || "") + this.spaces; - this.root.source.end = this.getPosition(this.tokenizer.position()); - } - }, { - key: "freeSemicolon", - value: function freeSemicolon(token) { - this.spaces += token[1]; - if (this.current.nodes) { - var prev = this.current.nodes[this.current.nodes.length - 1]; - if (prev && prev.type === "rule" && !prev.raws.ownSemicolon) { - prev.raws.ownSemicolon = this.spaces; - this.spaces = ""; - } - } - } - // Helpers - }, { - key: "getPosition", - value: function getPosition(offset) { - var pos = this.input.fromOffset(offset); - return { - column: pos.col, - line: pos.line, - offset: offset - }; - } - }, { - key: "init", - value: function init(node2, offset) { - this.current.push(node2); - node2.source = { - input: this.input, - start: this.getPosition(offset) - }; - node2.raws.before = this.spaces; - this.spaces = ""; - if (node2.type !== "comment") this.semicolon = false; - } - }, { - key: "other", - value: function other(start) { - var end = false; - var type = null; - var colon = false; - var bracket = null; - var brackets = []; - var customProperty = start[1].startsWith("--"); - var tokens = []; - var token = start; - while (token) { - type = token[0]; - tokens.push(token); - if (type === "(" || type === "[") { - if (!bracket) bracket = token; - brackets.push(type === "(" ? ")" : "]"); - } else if (customProperty && colon && type === "{") { - if (!bracket) bracket = token; - brackets.push("}"); - } else if (brackets.length === 0) { - if (type === ";") { - if (colon) { - this.decl(tokens, customProperty); - return; - } else { - break; - } - } else if (type === "{") { - this.rule(tokens); - return; - } else if (type === "}") { - this.tokenizer.back(tokens.pop()); - end = true; - break; - } else if (type === ":") { - colon = true; - } - } else if (type === brackets[brackets.length - 1]) { - brackets.pop(); - if (brackets.length === 0) bracket = null; - } - token = this.tokenizer.nextToken(); - } - if (this.tokenizer.endOfFile()) end = true; - if (brackets.length > 0) this.unclosedBracket(bracket); - if (end && colon) { - if (!customProperty) { - while (tokens.length) { - token = tokens[tokens.length - 1][0]; - if (token !== "space" && token !== "comment") break; - this.tokenizer.back(tokens.pop()); - } - } - this.decl(tokens, customProperty); - } else { - this.unknownWord(tokens); - } - } - }, { - key: "parse", - value: function parse() { - var token; - while (!this.tokenizer.endOfFile()) { - token = this.tokenizer.nextToken(); - switch (token[0]) { - case "space": - this.spaces += token[1]; - break; - case ";": - this.freeSemicolon(token); - break; - case "}": - this.end(token); - break; - case "comment": - this.comment(token); - break; - case "at-word": - this.atrule(token); - break; - case "{": - this.emptyRule(token); - break; - default: - this.other(token); - break; - } - } - this.endFile(); - } - }, { - key: "precheckMissedSemicolon", - value: function precheckMissedSemicolon() {} - }, { - key: "raw", - value: function raw(node2, prop, tokens, customProperty) { - var token, type; - var length = tokens.length; - var value = ""; - var clean = true; - var next, prev; - for (var i2 = 0; i2 < length; i2 += 1) { - token = tokens[i2]; - type = token[0]; - if (type === "space" && i2 === length - 1 && !customProperty) { - clean = false; - } else if (type === "comment") { - prev = tokens[i2 - 1] ? tokens[i2 - 1][0] : "empty"; - next = tokens[i2 + 1] ? tokens[i2 + 1][0] : "empty"; - if (!SAFE_COMMENT_NEIGHBOR$1[prev] && !SAFE_COMMENT_NEIGHBOR$1[next]) { - if (value.slice(-1) === ",") { - clean = false; - } else { - value += token[1]; - } - } else { - clean = false; - } - } else { - value += token[1]; - } - } - if (!clean) { - var _raw = tokens.reduce(function (all, i2) { - return all + i2[1]; - }, ""); - node2.raws[prop] = { - raw: _raw, - value: value - }; - } - node2[prop] = value; - } - }, { - key: "rule", - value: function rule(tokens) { - tokens.pop(); - var node2 = new Rule$2$1(); - this.init(node2, tokens[0][2]); - node2.raws.between = this.spacesAndCommentsFromEnd(tokens); - this.raw(node2, "selector", tokens); - this.current = node2; - } - }, { - key: "spacesAndCommentsFromEnd", - value: function spacesAndCommentsFromEnd(tokens) { - var lastTokenType; - var spaces = ""; - while (tokens.length) { - lastTokenType = tokens[tokens.length - 1][0]; - if (lastTokenType !== "space" && lastTokenType !== "comment") break; - spaces = tokens.pop()[1] + spaces; - } - return spaces; - } - // Errors - }, { - key: "spacesAndCommentsFromStart", - value: function spacesAndCommentsFromStart(tokens) { - var next; - var spaces = ""; - while (tokens.length) { - next = tokens[0][0]; - if (next !== "space" && next !== "comment") break; - spaces += tokens.shift()[1]; - } - return spaces; - } - }, { - key: "spacesFromEnd", - value: function spacesFromEnd(tokens) { - var lastTokenType; - var spaces = ""; - while (tokens.length) { - lastTokenType = tokens[tokens.length - 1][0]; - if (lastTokenType !== "space") break; - spaces = tokens.pop()[1] + spaces; - } - return spaces; - } - }, { - key: "stringFrom", - value: function stringFrom(tokens, from) { - var result2 = ""; - for (var i2 = from; i2 < tokens.length; i2++) { - result2 += tokens[i2][1]; - } - tokens.splice(from, tokens.length - from); - return result2; - } - }, { - key: "unclosedBlock", - value: function unclosedBlock() { - var pos = this.current.source.start; - throw this.input.error("Unclosed block", pos.line, pos.column); - } - }, { - key: "unclosedBracket", - value: function unclosedBracket(bracket) { - throw this.input.error("Unclosed bracket", { - offset: bracket[2] - }, { - offset: bracket[2] + 1 - }); - } - }, { - key: "unexpectedClose", - value: function unexpectedClose(token) { - throw this.input.error("Unexpected }", { - offset: token[2] - }, { - offset: token[2] + 1 - }); - } - }, { - key: "unknownWord", - value: function unknownWord(tokens) { - throw this.input.error("Unknown word", { - offset: tokens[0][2] - }, { - offset: tokens[0][2] + tokens[0][1].length - }); - } - }, { - key: "unnamedAtrule", - value: function unnamedAtrule(node2, token) { - throw this.input.error("At-rule without name", { - offset: token[2] - }, { - offset: token[2] + token[1].length - }); - } - }]); -}(); -var parser$1 = Parser$1$1; -var Container$2$1 = container$1; -var Parser2$1 = parser$1; -var Input$2$1 = input$1; -function parse$3$1(css, opts) { - var input2 = new Input$2$1(css, opts); - var parser2 = new Parser2$1(input2); - try { - parser2.parse(); - } catch (e2) { - if (false) {} - throw e2; - } - return parser2.root; -} -var parse_1$1 = parse$3$1; -parse$3$1.default = parse$3$1; -Container$2$1.registerParse(parse$3$1); -var isClean$3 = symbols$1.isClean, - my$3 = symbols$1.my; -var MapGenerator$1$1 = mapGenerator$1; -var stringify$2$1 = stringify_1$1; -var Container$1$1 = container$1; -var Document$2$1 = document$1$1; -var warnOnce$1$1 = (/* unused pure expression or super */ null && (warnOnce$2$1)); -var Result$2$1 = result$1; -var parse$2$1 = parse_1$1; -var Root$3$1 = root$1; -var TYPE_TO_CLASS_NAME$1 = { - atrule: "AtRule", - comment: "Comment", - decl: "Declaration", - document: "Document", - root: "Root", - rule: "Rule" -}; -var PLUGIN_PROPS$1 = { - AtRule: true, - AtRuleExit: true, - Comment: true, - CommentExit: true, - Declaration: true, - DeclarationExit: true, - Document: true, - DocumentExit: true, - Once: true, - OnceExit: true, - postcssPlugin: true, - prepare: true, - Root: true, - RootExit: true, - Rule: true, - RuleExit: true -}; -var NOT_VISITORS$1 = { - Once: true, - postcssPlugin: true, - prepare: true -}; -var CHILDREN$1 = 0; -function isPromise$1(obj) { - return record_typeof(obj) === "object" && typeof obj.then === "function"; -} -function getEvents$1(node2) { - var key = false; - var type = TYPE_TO_CLASS_NAME$1[node2.type]; - if (node2.type === "decl") { - key = node2.prop.toLowerCase(); - } else if (node2.type === "atrule") { - key = node2.name.toLowerCase(); - } - if (key && node2.append) { - return [type, type + "-" + key, CHILDREN$1, type + "Exit", type + "Exit-" + key]; - } else if (key) { - return [type, type + "-" + key, type + "Exit", type + "Exit-" + key]; - } else if (node2.append) { - return [type, CHILDREN$1, type + "Exit"]; - } else { - return [type, type + "Exit"]; - } -} -function toStack$1(node2) { - var events; - if (node2.type === "document") { - events = ["Document", CHILDREN$1, "DocumentExit"]; - } else if (node2.type === "root") { - events = ["Root", CHILDREN$1, "RootExit"]; - } else { - events = getEvents$1(node2); - } - return { - eventIndex: 0, - events: events, - iterator: 0, - node: node2, - visitorIndex: 0, - visitors: [] - }; -} -function cleanMarks$1(node2) { - node2[isClean$3] = false; - if (node2.nodes) node2.nodes.forEach(function (i2) { - return cleanMarks$1(i2); - }); - return node2; -} -var postcss$2$1 = {}; -var LazyResult$2$1 = /*#__PURE__*/function () { - function LazyResult(processor2, css, opts) { - var _this14 = this; - record_classCallCheck(this, LazyResult); - this.stringified = false; - this.processed = false; - var root2; - if (record_typeof(css) === "object" && css !== null && (css.type === "root" || css.type === "document")) { - root2 = cleanMarks$1(css); - } else if (css instanceof LazyResult || css instanceof Result$2$1) { - root2 = cleanMarks$1(css.root); - if (css.map) { - if (typeof opts.map === "undefined") opts.map = {}; - if (!opts.map.inline) opts.map.inline = false; - opts.map.prev = css.map; - } - } else { - var parser2 = parse$2$1; - if (opts.syntax) parser2 = opts.syntax.parse; - if (opts.parser) parser2 = opts.parser; - if (parser2.parse) parser2 = parser2.parse; - try { - root2 = parser2(css, opts); - } catch (error) { - this.processed = true; - this.error = error; - } - if (root2 && !root2[my$3]) { - Container$1$1.rebuild(root2); - } - } - this.result = new Result$2$1(processor2, root2, opts); - this.helpers = record_objectSpread(record_objectSpread({}, postcss$2$1), {}, { - postcss: postcss$2$1, - result: this.result - }); - this.plugins = this.processor.plugins.map(function (plugin22) { - if (record_typeof(plugin22) === "object" && plugin22.prepare) { - return record_objectSpread(record_objectSpread({}, plugin22), plugin22.prepare(_this14.result)); - } else { - return plugin22; - } - }); - } - return record_createClass(LazyResult, [{ - key: "async", - value: function async() { - if (this.error) return Promise.reject(this.error); - if (this.processed) return Promise.resolve(this.result); - if (!this.processing) { - this.processing = this.runAsync(); - } - return this.processing; - } - }, { - key: "catch", - value: function _catch(onRejected) { - return this.async().catch(onRejected); - } - }, { - key: "finally", - value: function _finally(onFinally) { - return this.async().then(onFinally, onFinally); - } - }, { - key: "getAsyncError", - value: function getAsyncError() { - throw new Error("Use process(css).then(cb) to work with async plugins"); - } - }, { - key: "handleError", - value: function handleError(error, node2) { - var plugin22 = this.result.lastPlugin; - try { - if (node2) node2.addToError(error); - this.error = error; - if (error.name === "CssSyntaxError" && !error.plugin) { - error.plugin = plugin22.postcssPlugin; - error.setMessage(); - } else if (plugin22.postcssVersion) { - if (false) { var b, a2, runtimeVer, pluginVer, pluginName; } - } - } catch (err) { - if (console && console.error) console.error(err); - } - return error; - } - }, { - key: "prepareVisitors", - value: function prepareVisitors() { - var _this15 = this; - this.listeners = {}; - var add = function add(plugin22, type, cb) { - if (!_this15.listeners[type]) _this15.listeners[type] = []; - _this15.listeners[type].push([plugin22, cb]); - }; - var _iterator17 = record_createForOfIteratorHelper(this.plugins), - _step17; - try { - for (_iterator17.s(); !(_step17 = _iterator17.n()).done;) { - var plugin22 = _step17.value; - if (record_typeof(plugin22) === "object") { - for (var event in plugin22) { - if (!PLUGIN_PROPS$1[event] && /^[A-Z]/.test(event)) { - throw new Error("Unknown event ".concat(event, " in ").concat(plugin22.postcssPlugin, ". Try to update PostCSS (").concat(this.processor.version, " now).")); - } - if (!NOT_VISITORS$1[event]) { - if (record_typeof(plugin22[event]) === "object") { - for (var filter in plugin22[event]) { - if (filter === "*") { - add(plugin22, event, plugin22[event][filter]); - } else { - add(plugin22, event + "-" + filter.toLowerCase(), plugin22[event][filter]); - } - } - } else if (typeof plugin22[event] === "function") { - add(plugin22, event, plugin22[event]); - } - } - } - } - } - } catch (err) { - _iterator17.e(err); - } finally { - _iterator17.f(); - } - this.hasListener = Object.keys(this.listeners).length > 0; - } - }, { - key: "runAsync", - value: function () { - var _runAsync = record_asyncToGenerator(/*#__PURE__*/record_regeneratorRuntime().mark(function _callee() { - var _this16 = this; - var i2, plugin22, promise, root2, stack, _promise, node2, _iterator18, _step18, _loop; - return record_regeneratorRuntime().wrap(function _callee$(_context2) { - while (1) switch (_context2.prev = _context2.next) { - case 0: - this.plugin = 0; - i2 = 0; - case 2: - if (!(i2 < this.plugins.length)) { - _context2.next = 17; - break; - } - plugin22 = this.plugins[i2]; - promise = this.runOnRoot(plugin22); - if (!isPromise$1(promise)) { - _context2.next = 14; - break; - } - _context2.prev = 6; - _context2.next = 9; - return promise; - case 9: - _context2.next = 14; - break; - case 11: - _context2.prev = 11; - _context2.t0 = _context2["catch"](6); - throw this.handleError(_context2.t0); - case 14: - i2++; - _context2.next = 2; - break; - case 17: - this.prepareVisitors(); - if (!this.hasListener) { - _context2.next = 56; - break; - } - root2 = this.result.root; - case 20: - if (root2[isClean$3]) { - _context2.next = 39; - break; - } - root2[isClean$3] = true; - stack = [toStack$1(root2)]; - case 23: - if (!(stack.length > 0)) { - _context2.next = 37; - break; - } - _promise = this.visitTick(stack); - if (!isPromise$1(_promise)) { - _context2.next = 35; - break; - } - _context2.prev = 26; - _context2.next = 29; - return _promise; - case 29: - _context2.next = 35; - break; - case 31: - _context2.prev = 31; - _context2.t1 = _context2["catch"](26); - node2 = stack[stack.length - 1].node; - throw this.handleError(_context2.t1, node2); - case 35: - _context2.next = 23; - break; - case 37: - _context2.next = 20; - break; - case 39: - if (!this.listeners.OnceExit) { - _context2.next = 56; - break; - } - _iterator18 = record_createForOfIteratorHelper(this.listeners.OnceExit); - _context2.prev = 41; - _loop = /*#__PURE__*/record_regeneratorRuntime().mark(function _loop() { - var _step18$value, plugin22, visitor, roots; - return record_regeneratorRuntime().wrap(function _loop$(_context) { - while (1) switch (_context.prev = _context.next) { - case 0: - _step18$value = record_slicedToArray(_step18.value, 2), plugin22 = _step18$value[0], visitor = _step18$value[1]; - _this16.result.lastPlugin = plugin22; - _context.prev = 2; - if (!(root2.type === "document")) { - _context.next = 9; - break; - } - roots = root2.nodes.map(function (subRoot) { - return visitor(subRoot, _this16.helpers); - }); - _context.next = 7; - return Promise.all(roots); - case 7: - _context.next = 11; - break; - case 9: - _context.next = 11; - return visitor(root2, _this16.helpers); - case 11: - _context.next = 16; - break; - case 13: - _context.prev = 13; - _context.t0 = _context["catch"](2); - throw _this16.handleError(_context.t0); - case 16: - case "end": - return _context.stop(); - } - }, _loop, null, [[2, 13]]); - }); - _iterator18.s(); - case 44: - if ((_step18 = _iterator18.n()).done) { - _context2.next = 48; - break; - } - return _context2.delegateYield(_loop(), "t2", 46); - case 46: - _context2.next = 44; - break; - case 48: - _context2.next = 53; - break; - case 50: - _context2.prev = 50; - _context2.t3 = _context2["catch"](41); - _iterator18.e(_context2.t3); - case 53: - _context2.prev = 53; - _iterator18.f(); - return _context2.finish(53); - case 56: - this.processed = true; - return _context2.abrupt("return", this.stringify()); - case 58: - case "end": - return _context2.stop(); - } - }, _callee, this, [[6, 11], [26, 31], [41, 50, 53, 56]]); - })); - function runAsync() { - return _runAsync.apply(this, arguments); - } - return runAsync; - }() - }, { - key: "runOnRoot", - value: function runOnRoot(plugin22) { - var _this17 = this; - this.result.lastPlugin = plugin22; - try { - if (record_typeof(plugin22) === "object" && plugin22.Once) { - if (this.result.root.type === "document") { - var roots = this.result.root.nodes.map(function (root2) { - return plugin22.Once(root2, _this17.helpers); - }); - if (isPromise$1(roots[0])) { - return Promise.all(roots); - } - return roots; - } - return plugin22.Once(this.result.root, this.helpers); - } else if (typeof plugin22 === "function") { - return plugin22(this.result.root, this.result); - } - } catch (error) { - throw this.handleError(error); - } - } - }, { - key: "stringify", - value: function stringify() { - if (this.error) throw this.error; - if (this.stringified) return this.result; - this.stringified = true; - this.sync(); - var opts = this.result.opts; - var str = stringify$2$1; - if (opts.syntax) str = opts.syntax.stringify; - if (opts.stringifier) str = opts.stringifier; - if (str.stringify) str = str.stringify; - var map = new MapGenerator$1$1(str, this.result.root, this.result.opts); - var data = map.generate(); - this.result.css = data[0]; - this.result.map = data[1]; - return this.result; - } - }, { - key: "sync", - value: function sync() { - if (this.error) throw this.error; - if (this.processed) return this.result; - this.processed = true; - if (this.processing) { - throw this.getAsyncError(); - } - var _iterator19 = record_createForOfIteratorHelper(this.plugins), - _step19; - try { - for (_iterator19.s(); !(_step19 = _iterator19.n()).done;) { - var plugin22 = _step19.value; - var promise = this.runOnRoot(plugin22); - if (isPromise$1(promise)) { - throw this.getAsyncError(); - } - } - } catch (err) { - _iterator19.e(err); - } finally { - _iterator19.f(); - } - this.prepareVisitors(); - if (this.hasListener) { - var root2 = this.result.root; - while (!root2[isClean$3]) { - root2[isClean$3] = true; - this.walkSync(root2); - } - if (this.listeners.OnceExit) { - if (root2.type === "document") { - var _iterator20 = record_createForOfIteratorHelper(root2.nodes), - _step20; - try { - for (_iterator20.s(); !(_step20 = _iterator20.n()).done;) { - var subRoot = _step20.value; - this.visitSync(this.listeners.OnceExit, subRoot); - } - } catch (err) { - _iterator20.e(err); - } finally { - _iterator20.f(); - } - } else { - this.visitSync(this.listeners.OnceExit, root2); - } - } - } - return this.result; - } - }, { - key: "then", - value: function then(onFulfilled, onRejected) { - if (false) {} - return this.async().then(onFulfilled, onRejected); - } - }, { - key: "toString", - value: function toString() { - return this.css; - } - }, { - key: "visitSync", - value: function visitSync(visitors, node2) { - var _iterator21 = record_createForOfIteratorHelper(visitors), - _step21; - try { - for (_iterator21.s(); !(_step21 = _iterator21.n()).done;) { - var _step21$value = record_slicedToArray(_step21.value, 2), - plugin22 = _step21$value[0], - visitor = _step21$value[1]; - this.result.lastPlugin = plugin22; - var promise = void 0; - try { - promise = visitor(node2, this.helpers); - } catch (e2) { - throw this.handleError(e2, node2.proxyOf); - } - if (node2.type !== "root" && node2.type !== "document" && !node2.parent) { - return true; - } - if (isPromise$1(promise)) { - throw this.getAsyncError(); - } - } - } catch (err) { - _iterator21.e(err); - } finally { - _iterator21.f(); - } - } - }, { - key: "visitTick", - value: function visitTick(stack) { - var visit2 = stack[stack.length - 1]; - var node2 = visit2.node, - visitors = visit2.visitors; - if (node2.type !== "root" && node2.type !== "document" && !node2.parent) { - stack.pop(); - return; - } - if (visitors.length > 0 && visit2.visitorIndex < visitors.length) { - var _visitors$visit2$visi = record_slicedToArray(visitors[visit2.visitorIndex], 2), - plugin22 = _visitors$visit2$visi[0], - visitor = _visitors$visit2$visi[1]; - visit2.visitorIndex += 1; - if (visit2.visitorIndex === visitors.length) { - visit2.visitors = []; - visit2.visitorIndex = 0; - } - this.result.lastPlugin = plugin22; - try { - return visitor(node2.toProxy(), this.helpers); - } catch (e2) { - throw this.handleError(e2, node2); - } - } - if (visit2.iterator !== 0) { - var iterator = visit2.iterator; - var child; - while (child = node2.nodes[node2.indexes[iterator]]) { - node2.indexes[iterator] += 1; - if (!child[isClean$3]) { - child[isClean$3] = true; - stack.push(toStack$1(child)); - return; - } - } - visit2.iterator = 0; - delete node2.indexes[iterator]; - } - var events = visit2.events; - while (visit2.eventIndex < events.length) { - var event = events[visit2.eventIndex]; - visit2.eventIndex += 1; - if (event === CHILDREN$1) { - if (node2.nodes && node2.nodes.length) { - node2[isClean$3] = true; - visit2.iterator = node2.getIterator(); - } - return; - } else if (this.listeners[event]) { - visit2.visitors = this.listeners[event]; - return; - } - } - stack.pop(); - } - }, { - key: "walkSync", - value: function walkSync(node2) { - var _this18 = this; - node2[isClean$3] = true; - var events = getEvents$1(node2); - var _iterator22 = record_createForOfIteratorHelper(events), - _step22; - try { - for (_iterator22.s(); !(_step22 = _iterator22.n()).done;) { - var event = _step22.value; - if (event === CHILDREN$1) { - if (node2.nodes) { - node2.each(function (child) { - if (!child[isClean$3]) _this18.walkSync(child); - }); - } - } else { - var visitors = this.listeners[event]; - if (visitors) { - if (this.visitSync(visitors, node2.toProxy())) return; - } - } - } - } catch (err) { - _iterator22.e(err); - } finally { - _iterator22.f(); - } - } - }, { - key: "warnings", - value: function warnings() { - return this.sync().warnings(); - } - }, { - key: "content", - get: function get() { - return this.stringify().content; - } - }, { - key: "css", - get: function get() { - return this.stringify().css; - } - }, { - key: "map", - get: function get() { - return this.stringify().map; - } - }, { - key: "messages", - get: function get() { - return this.sync().messages; - } - }, { - key: "opts", - get: function get() { - return this.result.opts; - } - }, { - key: "processor", - get: function get() { - return this.result.processor; - } - }, { - key: "root", - get: function get() { - return this.sync().root; - } - }, { - key: Symbol.toStringTag, - get: function get() { - return "LazyResult"; - } - }]); -}(); -LazyResult$2$1.registerPostcss = function (dependant) { - postcss$2$1 = dependant; -}; -var lazyResult$1 = LazyResult$2$1; -LazyResult$2$1.default = LazyResult$2$1; -Root$3$1.registerLazyResult(LazyResult$2$1); -Document$2$1.registerLazyResult(LazyResult$2$1); -var MapGenerator2$1 = mapGenerator$1; -var stringify$1$1 = stringify_1$1; -var warnOnce2$1 = (/* unused pure expression or super */ null && (warnOnce$2$1)); -var parse$1$1 = parse_1$1; -var Result$1$1 = result$1; -var NoWorkResult$1$1 = /*#__PURE__*/function () { - function NoWorkResult(processor2, css, opts) { - record_classCallCheck(this, NoWorkResult); - css = css.toString(); - this.stringified = false; - this._processor = processor2; - this._css = css; - this._opts = opts; - this._map = void 0; - var root2; - var str = stringify$1$1; - this.result = new Result$1$1(this._processor, root2, this._opts); - this.result.css = css; - var self = this; - Object.defineProperty(this.result, "root", { - get: function get() { - return self.root; - } - }); - var map = new MapGenerator2$1(str, root2, this._opts, css); - if (map.isMap()) { - var _map$generate = map.generate(), - _map$generate2 = record_slicedToArray(_map$generate, 2), - generatedCSS = _map$generate2[0], - generatedMap = _map$generate2[1]; - if (generatedCSS) { - this.result.css = generatedCSS; - } - if (generatedMap) { - this.result.map = generatedMap; - } - } else { - map.clearAnnotation(); - this.result.css = map.css; - } - } - return record_createClass(NoWorkResult, [{ - key: "async", - value: function async() { - if (this.error) return Promise.reject(this.error); - return Promise.resolve(this.result); - } - }, { - key: "catch", - value: function _catch(onRejected) { - return this.async().catch(onRejected); - } - }, { - key: "finally", - value: function _finally(onFinally) { - return this.async().then(onFinally, onFinally); - } - }, { - key: "sync", - value: function sync() { - if (this.error) throw this.error; - return this.result; - } - }, { - key: "then", - value: function then(onFulfilled, onRejected) { - if (false) {} - return this.async().then(onFulfilled, onRejected); - } - }, { - key: "toString", - value: function toString() { - return this._css; - } - }, { - key: "warnings", - value: function warnings() { - return []; - } - }, { - key: "content", - get: function get() { - return this.result.css; - } - }, { - key: "css", - get: function get() { - return this.result.css; - } - }, { - key: "map", - get: function get() { - return this.result.map; - } - }, { - key: "messages", - get: function get() { - return []; - } - }, { - key: "opts", - get: function get() { - return this.result.opts; - } - }, { - key: "processor", - get: function get() { - return this.result.processor; - } - }, { - key: "root", - get: function get() { - if (this._root) { - return this._root; - } - var root2; - var parser2 = parse$1$1; - try { - root2 = parser2(this._css, this._opts); - } catch (error) { - this.error = error; - } - if (this.error) { - throw this.error; - } else { - this._root = root2; - return root2; - } - } - }, { - key: Symbol.toStringTag, - get: function get() { - return "NoWorkResult"; - } - }]); -}(); -var noWorkResult$1 = NoWorkResult$1$1; -NoWorkResult$1$1.default = NoWorkResult$1$1; -var NoWorkResult2$1 = noWorkResult$1; -var LazyResult$1$1 = lazyResult$1; -var Document$1$1 = document$1$1; -var Root$2$1 = root$1; -var Processor$1$1 = /*#__PURE__*/function () { - function Processor() { - var plugins = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : []; - record_classCallCheck(this, Processor); - this.version = "8.4.38"; - this.plugins = this.normalize(plugins); - } - return record_createClass(Processor, [{ - key: "normalize", - value: function normalize(plugins) { - var normalized = []; - var _iterator23 = record_createForOfIteratorHelper(plugins), - _step23; - try { - for (_iterator23.s(); !(_step23 = _iterator23.n()).done;) { - var i2 = _step23.value; - if (i2.postcss === true) { - i2 = i2(); - } else if (i2.postcss) { - i2 = i2.postcss; - } - if (record_typeof(i2) === "object" && Array.isArray(i2.plugins)) { - normalized = normalized.concat(i2.plugins); - } else if (record_typeof(i2) === "object" && i2.postcssPlugin) { - normalized.push(i2); - } else if (typeof i2 === "function") { - normalized.push(i2); - } else if (record_typeof(i2) === "object" && (i2.parse || i2.stringify)) { - if (false) {} - } else { - throw new Error(i2 + " is not a PostCSS plugin"); - } - } - } catch (err) { - _iterator23.e(err); - } finally { - _iterator23.f(); - } - return normalized; - } - }, { - key: "process", - value: function process(css) { - var opts = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {}; - if (!this.plugins.length && !opts.parser && !opts.stringifier && !opts.syntax) { - return new NoWorkResult2$1(this, css, opts); - } else { - return new LazyResult$1$1(this, css, opts); - } - } - }, { - key: "use", - value: function use(plugin22) { - this.plugins = this.plugins.concat(this.normalize([plugin22])); - return this; - } - }]); -}(); -var processor$1 = Processor$1$1; -Processor$1$1.default = Processor$1$1; -Root$2$1.registerProcessor(Processor$1$1); -Document$1$1.registerProcessor(Processor$1$1); -var Declaration$1$1 = declaration$1; -var PreviousMap2$1 = previousMap$1; -var Comment$1$1 = comment$1; -var AtRule$1$1 = atRule$1; -var Input$1$1 = input$1; -var Root$1$1 = root$1; -var Rule$1$1 = rule$1; -function fromJSON$1$1(json, inputs) { - if (Array.isArray(json)) return json.map(function (n2) { - return fromJSON$1$1(n2); - }); - var ownInputs = json.inputs, - defaults = record_objectWithoutProperties(json, record_excluded); - if (ownInputs) { - inputs = []; - var _iterator24 = record_createForOfIteratorHelper(ownInputs), - _step24; - try { - for (_iterator24.s(); !(_step24 = _iterator24.n()).done;) { - var input2 = _step24.value; - var inputHydrated = record_objectSpread(record_objectSpread({}, input2), {}, { - __proto__: Input$1$1.prototype - }); - if (inputHydrated.map) { - inputHydrated.map = record_objectSpread(record_objectSpread({}, inputHydrated.map), {}, { - __proto__: PreviousMap2$1.prototype - }); - } - inputs.push(inputHydrated); - } - } catch (err) { - _iterator24.e(err); - } finally { - _iterator24.f(); - } - } - if (defaults.nodes) { - defaults.nodes = json.nodes.map(function (n2) { - return fromJSON$1$1(n2, inputs); - }); - } - if (defaults.source) { - var _defaults$source = defaults.source, - inputId = _defaults$source.inputId, - source = record_objectWithoutProperties(_defaults$source, _excluded2); - defaults.source = source; - if (inputId != null) { - defaults.source.input = inputs[inputId]; - } - } - if (defaults.type === "root") { - return new Root$1$1(defaults); - } else if (defaults.type === "decl") { - return new Declaration$1$1(defaults); - } else if (defaults.type === "rule") { - return new Rule$1$1(defaults); - } else if (defaults.type === "comment") { - return new Comment$1$1(defaults); - } else if (defaults.type === "atrule") { - return new AtRule$1$1(defaults); - } else { - throw new Error("Unknown node type: " + json.type); - } -} -var fromJSON_1$1 = fromJSON$1$1; -fromJSON$1$1.default = fromJSON$1$1; -var CssSyntaxError2$1 = cssSyntaxError$1; -var Declaration2$1 = declaration$1; -var LazyResult2$1 = lazyResult$1; -var Container2$1 = container$1; -var Processor2$1 = processor$1; -var stringify$5 = stringify_1$1; -var fromJSON$2 = fromJSON_1$1; -var Document22 = document$1$1; -var Warning2$1 = warning$1; -var Comment2$1 = comment$1; -var AtRule2$1 = atRule$1; -var Result2$1 = result$1; -var Input2$1 = input$1; -var parse$5 = parse_1$1; -var list$3 = list_1$1; -var Rule2$1 = rule$1; -var Root2$1 = root$1; -var Node2$1 = node$1; -function postcss$3() { - for (var _len8 = arguments.length, plugins = new Array(_len8), _key8 = 0; _key8 < _len8; _key8++) { - plugins[_key8] = arguments[_key8]; - } - if (plugins.length === 1 && Array.isArray(plugins[0])) { - plugins = plugins[0]; - } - return new Processor2$1(plugins); -} -postcss$3.plugin = function plugin(name, initializer) { - var warningPrinted = false; - function creator() { - if (console && console.warn && !warningPrinted) { - warningPrinted = true; - console.warn(name + ": postcss.plugin was deprecated. Migration guide:\nhttps://evilmartians.com/chronicles/postcss-8-plugin-migration"); - if (process.env.LANG && process.env.LANG.startsWith("cn")) { - console.warn(name + ": 里面 postcss.plugin 被弃用. 迁移指南:\nhttps://www.w3ctech.com/topic/2226"); - } - } - var transformer = initializer.apply(void 0, arguments); - transformer.postcssPlugin = name; - transformer.postcssVersion = new Processor2$1().version; - return transformer; - } - var cache; - Object.defineProperty(creator, "postcss", { - get: function get() { - if (!cache) cache = creator(); - return cache; - } - }); - creator.process = function (css, processOpts, pluginOpts) { - return postcss$3([creator(pluginOpts)]).process(css, processOpts); - }; - return creator; -}; -postcss$3.stringify = stringify$5; -postcss$3.parse = parse$5; -postcss$3.fromJSON = fromJSON$2; -postcss$3.list = list$3; -postcss$3.comment = function (defaults) { - return new Comment2$1(defaults); -}; -postcss$3.atRule = function (defaults) { - return new AtRule2$1(defaults); -}; -postcss$3.decl = function (defaults) { - return new Declaration2$1(defaults); -}; -postcss$3.rule = function (defaults) { - return new Rule2$1(defaults); -}; -postcss$3.root = function (defaults) { - return new Root2$1(defaults); -}; -postcss$3.document = function (defaults) { - return new Document22(defaults); -}; -postcss$3.CssSyntaxError = CssSyntaxError2$1; -postcss$3.Declaration = Declaration2$1; -postcss$3.Container = Container2$1; -postcss$3.Processor = Processor2$1; -postcss$3.Document = Document22; -postcss$3.Comment = Comment2$1; -postcss$3.Warning = Warning2$1; -postcss$3.AtRule = AtRule2$1; -postcss$3.Result = Result2$1; -postcss$3.Input = Input2$1; -postcss$3.Rule = Rule2$1; -postcss$3.Root = Root2$1; -postcss$3.Node = Node2$1; -LazyResult2$1.registerPostcss(postcss$3); -var postcss_1$1 = postcss$3; -postcss$3.default = postcss$3; -var postcss$1$1 = /* @__PURE__ */getDefaultExportFromCjs$1(postcss_1$1); -postcss$1$1.stringify; -postcss$1$1.fromJSON; -postcss$1$1.plugin; -postcss$1$1.parse; -postcss$1$1.list; -postcss$1$1.document; -postcss$1$1.comment; -postcss$1$1.atRule; -postcss$1$1.rule; -postcss$1$1.decl; -postcss$1$1.root; -postcss$1$1.CssSyntaxError; -postcss$1$1.Declaration; -postcss$1$1.Container; -postcss$1$1.Processor; -postcss$1$1.Document; -postcss$1$1.Comment; -postcss$1$1.Warning; -postcss$1$1.AtRule; -postcss$1$1.Result; -postcss$1$1.Input; -postcss$1$1.Rule; -postcss$1$1.Root; -postcss$1$1.Node; -var __defProp2 = Object.defineProperty; -var __defNormalProp2 = function __defNormalProp2(obj, key, value) { - return key in obj ? __defProp2(obj, key, { - enumerable: true, - configurable: true, - writable: true, - value: value - }) : obj[key] = value; -}; -var __publicField2 = function __publicField2(obj, key, value) { - return __defNormalProp2(obj, record_typeof(key) !== "symbol" ? key + "" : key, value); -}; -function getDefaultExportFromCjs(x2) { - return x2 && x2.__esModule && Object.prototype.hasOwnProperty.call(x2, "default") ? x2["default"] : x2; -} -function getAugmentedNamespace(n2) { - if (n2.__esModule) return n2; - var f2 = n2.default; - if (typeof f2 == "function") { - var a2 = function a22() { - if (this instanceof a22) { - return Reflect.construct(f2, arguments, this.constructor); - } - return f2.apply(this, arguments); - }; - a2.prototype = f2.prototype; - } else a2 = {}; - Object.defineProperty(a2, "__esModule", { - value: true - }); - Object.keys(n2).forEach(function (k) { - var d = Object.getOwnPropertyDescriptor(n2, k); - Object.defineProperty(a2, k, d.get ? d : { - enumerable: true, - get: function get() { - return n2[k]; - } - }); - }); - return a2; -} -var picocolors_browser = { - exports: {} -}; -var x = String; -var create = function create() { - return { - isColorSupported: false, - reset: x, - bold: x, - dim: x, - italic: x, - underline: x, - inverse: x, - hidden: x, - strikethrough: x, - black: x, - red: x, - green: x, - yellow: x, - blue: x, - magenta: x, - cyan: x, - white: x, - gray: x, - bgBlack: x, - bgRed: x, - bgGreen: x, - bgYellow: x, - bgBlue: x, - bgMagenta: x, - bgCyan: x, - bgWhite: x - }; -}; -picocolors_browser.exports = create(); -picocolors_browser.exports.createColors = create; -var picocolors_browserExports = picocolors_browser.exports; -var __viteBrowserExternal = {}; -var __viteBrowserExternal$1 = /* @__PURE__ */Object.freeze(/* @__PURE__ */Object.defineProperty({ - __proto__: null, - default: __viteBrowserExternal -}, Symbol.toStringTag, { - value: "Module" -})); -var require$$2 = /* @__PURE__ */getAugmentedNamespace(__viteBrowserExternal$1); -var pico = picocolors_browserExports; -var terminalHighlight$1 = require$$2; -var CssSyntaxError$3 = /*#__PURE__*/function (_Error2) { - function CssSyntaxError2(message, line, column, source, file, plugin22) { - var _this19; - record_classCallCheck(this, CssSyntaxError2); - _this19 = _callSuper(this, CssSyntaxError2, [message]); - _this19.name = "CssSyntaxError"; - _this19.reason = message; - if (file) { - _this19.file = file; - } - if (source) { - _this19.source = source; - } - if (plugin22) { - _this19.plugin = plugin22; - } - if (typeof line !== "undefined" && typeof column !== "undefined") { - if (typeof line === "number") { - _this19.line = line; - _this19.column = column; - } else { - _this19.line = line.line; - _this19.column = line.column; - _this19.endLine = column.line; - _this19.endColumn = column.column; - } - } - _this19.setMessage(); - if (Error.captureStackTrace) { - Error.captureStackTrace(_this19, CssSyntaxError2); - } - return _this19; - } - _inherits(CssSyntaxError2, _Error2); - return record_createClass(CssSyntaxError2, [{ - key: "setMessage", - value: function setMessage() { - this.message = this.plugin ? this.plugin + ": " : ""; - this.message += this.file ? this.file : ""; - if (typeof this.line !== "undefined") { - this.message += ":" + this.line + ":" + this.column; - } - this.message += ": " + this.reason; - } - }, { - key: "showSourceCode", - value: function showSourceCode(color) { - var _this20 = this; - if (!this.source) return ""; - var css = this.source; - if (color == null) color = pico.isColorSupported; - if (terminalHighlight$1) { - if (color) css = terminalHighlight$1(css); - } - var lines = css.split(/\r?\n/); - var start = Math.max(this.line - 3, 0); - var end = Math.min(this.line + 2, lines.length); - var maxWidth = String(end).length; - var mark, aside; - if (color) { - var _pico$createColors = pico.createColors(true), - bold = _pico$createColors.bold, - gray = _pico$createColors.gray, - red = _pico$createColors.red; - mark = function mark(text) { - return bold(red(text)); - }; - aside = function aside(text) { - return gray(text); - }; - } else { - mark = aside = function aside(str) { - return str; - }; - } - return lines.slice(start, end).map(function (line, index2) { - var number = start + 1 + index2; - var gutter = " " + (" " + number).slice(-maxWidth) + " | "; - if (number === _this20.line) { - var spacing = aside(gutter.replace(/\d/g, " ")) + line.slice(0, _this20.column - 1).replace(/[^\t]/g, " "); - return mark(">") + aside(gutter) + line + "\n " + spacing + mark("^"); - } - return " " + aside(gutter) + line; - }).join("\n"); - } - }, { - key: "toString", - value: function toString() { - var code = this.showSourceCode(); - if (code) { - code = "\n\n" + code + "\n"; - } - return this.name + ": " + this.message + code; - } - }]); -}(/*#__PURE__*/_wrapNativeSuper(Error)); -var cssSyntaxError = CssSyntaxError$3; -CssSyntaxError$3.default = CssSyntaxError$3; -var symbols = {}; -symbols.isClean = Symbol("isClean"); -symbols.my = Symbol("my"); -var DEFAULT_RAW = { - after: "\n", - beforeClose: "\n", - beforeComment: "\n", - beforeDecl: "\n", - beforeOpen: " ", - beforeRule: "\n", - colon: ": ", - commentLeft: " ", - commentRight: " ", - emptyBody: "", - indent: " ", - semicolon: false -}; -function capitalize(str) { - return str[0].toUpperCase() + str.slice(1); -} -var Stringifier$2 = /*#__PURE__*/function () { - function Stringifier2(builder) { - record_classCallCheck(this, Stringifier2); - this.builder = builder; - } - return record_createClass(Stringifier2, [{ - key: "atrule", - value: function atrule(node2, semicolon) { - var name = "@" + node2.name; - var params = node2.params ? this.rawValue(node2, "params") : ""; - if (typeof node2.raws.afterName !== "undefined") { - name += node2.raws.afterName; - } else if (params) { - name += " "; - } - if (node2.nodes) { - this.block(node2, name + params); - } else { - var end = (node2.raws.between || "") + (semicolon ? ";" : ""); - this.builder(name + params + end, node2); - } - } - }, { - key: "beforeAfter", - value: function beforeAfter(node2, detect) { - var value; - if (node2.type === "decl") { - value = this.raw(node2, null, "beforeDecl"); - } else if (node2.type === "comment") { - value = this.raw(node2, null, "beforeComment"); - } else if (detect === "before") { - value = this.raw(node2, null, "beforeRule"); - } else { - value = this.raw(node2, null, "beforeClose"); - } - var buf = node2.parent; - var depth = 0; - while (buf && buf.type !== "root") { - depth += 1; - buf = buf.parent; - } - if (value.includes("\n")) { - var indent = this.raw(node2, null, "indent"); - if (indent.length) { - for (var step = 0; step < depth; step++) value += indent; - } - } - return value; - } - }, { - key: "block", - value: function block(node2, start) { - var between = this.raw(node2, "between", "beforeOpen"); - this.builder(start + between + "{", node2, "start"); - var after; - if (node2.nodes && node2.nodes.length) { - this.body(node2); - after = this.raw(node2, "after"); - } else { - after = this.raw(node2, "after", "emptyBody"); - } - if (after) this.builder(after); - this.builder("}", node2, "end"); - } - }, { - key: "body", - value: function body(node2) { - var last = node2.nodes.length - 1; - while (last > 0) { - if (node2.nodes[last].type !== "comment") break; - last -= 1; - } - var semicolon = this.raw(node2, "semicolon"); - for (var i2 = 0; i2 < node2.nodes.length; i2++) { - var child = node2.nodes[i2]; - var before = this.raw(child, "before"); - if (before) this.builder(before); - this.stringify(child, last !== i2 || semicolon); - } - } - }, { - key: "comment", - value: function comment(node2) { - var left = this.raw(node2, "left", "commentLeft"); - var right = this.raw(node2, "right", "commentRight"); - this.builder("/*" + left + node2.text + right + "*/", node2); - } - }, { - key: "decl", - value: function decl(node2, semicolon) { - var between = this.raw(node2, "between", "colon"); - var string = node2.prop + between + this.rawValue(node2, "value"); - if (node2.important) { - string += node2.raws.important || " !important"; - } - if (semicolon) string += ";"; - this.builder(string, node2); - } - }, { - key: "document", - value: function document(node2) { - this.body(node2); - } - }, { - key: "raw", - value: function raw(node2, own, detect) { - var value; - if (!detect) detect = own; - if (own) { - value = node2.raws[own]; - if (typeof value !== "undefined") return value; - } - var parent = node2.parent; - if (detect === "before") { - if (!parent || parent.type === "root" && parent.first === node2) { - return ""; - } - if (parent && parent.type === "document") { - return ""; - } - } - if (!parent) return DEFAULT_RAW[detect]; - var root2 = node2.root(); - if (!root2.rawCache) root2.rawCache = {}; - if (typeof root2.rawCache[detect] !== "undefined") { - return root2.rawCache[detect]; - } - if (detect === "before" || detect === "after") { - return this.beforeAfter(node2, detect); - } else { - var method = "raw" + capitalize(detect); - if (this[method]) { - value = this[method](root2, node2); - } else { - root2.walk(function (i2) { - value = i2.raws[own]; - if (typeof value !== "undefined") return false; - }); - } - } - if (typeof value === "undefined") value = DEFAULT_RAW[detect]; - root2.rawCache[detect] = value; - return value; - } - }, { - key: "rawBeforeClose", - value: function rawBeforeClose(root2) { - var value; - root2.walk(function (i2) { - if (i2.nodes && i2.nodes.length > 0) { - if (typeof i2.raws.after !== "undefined") { - value = i2.raws.after; - if (value.includes("\n")) { - value = value.replace(/[^\n]+$/, ""); - } - return false; - } - } - }); - if (value) value = value.replace(/\S/g, ""); - return value; - } - }, { - key: "rawBeforeComment", - value: function rawBeforeComment(root2, node2) { - var value; - root2.walkComments(function (i2) { - if (typeof i2.raws.before !== "undefined") { - value = i2.raws.before; - if (value.includes("\n")) { - value = value.replace(/[^\n]+$/, ""); - } - return false; - } - }); - if (typeof value === "undefined") { - value = this.raw(node2, null, "beforeDecl"); - } else if (value) { - value = value.replace(/\S/g, ""); - } - return value; - } - }, { - key: "rawBeforeDecl", - value: function rawBeforeDecl(root2, node2) { - var value; - root2.walkDecls(function (i2) { - if (typeof i2.raws.before !== "undefined") { - value = i2.raws.before; - if (value.includes("\n")) { - value = value.replace(/[^\n]+$/, ""); - } - return false; - } - }); - if (typeof value === "undefined") { - value = this.raw(node2, null, "beforeRule"); - } else if (value) { - value = value.replace(/\S/g, ""); - } - return value; - } - }, { - key: "rawBeforeOpen", - value: function rawBeforeOpen(root2) { - var value; - root2.walk(function (i2) { - if (i2.type !== "decl") { - value = i2.raws.between; - if (typeof value !== "undefined") return false; - } - }); - return value; - } - }, { - key: "rawBeforeRule", - value: function rawBeforeRule(root2) { - var value; - root2.walk(function (i2) { - if (i2.nodes && (i2.parent !== root2 || root2.first !== i2)) { - if (typeof i2.raws.before !== "undefined") { - value = i2.raws.before; - if (value.includes("\n")) { - value = value.replace(/[^\n]+$/, ""); - } - return false; - } - } - }); - if (value) value = value.replace(/\S/g, ""); - return value; - } - }, { - key: "rawColon", - value: function rawColon(root2) { - var value; - root2.walkDecls(function (i2) { - if (typeof i2.raws.between !== "undefined") { - value = i2.raws.between.replace(/[^\s:]/g, ""); - return false; - } - }); - return value; - } - }, { - key: "rawEmptyBody", - value: function rawEmptyBody(root2) { - var value; - root2.walk(function (i2) { - if (i2.nodes && i2.nodes.length === 0) { - value = i2.raws.after; - if (typeof value !== "undefined") return false; - } - }); - return value; - } - }, { - key: "rawIndent", - value: function rawIndent(root2) { - if (root2.raws.indent) return root2.raws.indent; - var value; - root2.walk(function (i2) { - var p = i2.parent; - if (p && p !== root2 && p.parent && p.parent === root2) { - if (typeof i2.raws.before !== "undefined") { - var parts = i2.raws.before.split("\n"); - value = parts[parts.length - 1]; - value = value.replace(/\S/g, ""); - return false; - } - } - }); - return value; - } - }, { - key: "rawSemicolon", - value: function rawSemicolon(root2) { - var value; - root2.walk(function (i2) { - if (i2.nodes && i2.nodes.length && i2.last.type === "decl") { - value = i2.raws.semicolon; - if (typeof value !== "undefined") return false; - } - }); - return value; - } - }, { - key: "rawValue", - value: function rawValue(node2, prop) { - var value = node2[prop]; - var raw = node2.raws[prop]; - if (raw && raw.value === value) { - return raw.raw; - } - return value; - } - }, { - key: "root", - value: function root(node2) { - this.body(node2); - if (node2.raws.after) this.builder(node2.raws.after); - } - }, { - key: "rule", - value: function rule(node2) { - this.block(node2, this.rawValue(node2, "selector")); - if (node2.raws.ownSemicolon) { - this.builder(node2.raws.ownSemicolon, node2, "end"); - } - } - }, { - key: "stringify", - value: function stringify(node2, semicolon) { - if (!this[node2.type]) { - throw new Error("Unknown AST node type " + node2.type + ". Maybe you need to change PostCSS stringifier."); - } - this[node2.type](node2, semicolon); - } - }]); -}(); -var stringifier = Stringifier$2; -Stringifier$2.default = Stringifier$2; -var Stringifier$1 = stringifier; -function stringify$4(node2, builder) { - var str = new Stringifier$1(builder); - str.stringify(node2); -} -var stringify_1 = stringify$4; -stringify$4.default = stringify$4; -var isClean$2 = symbols.isClean, - my$2 = symbols.my; -var CssSyntaxError$2 = cssSyntaxError; -var Stringifier22 = stringifier; -var stringify$3 = stringify_1; -function cloneNode(obj, parent) { - var cloned = new obj.constructor(); - for (var i2 in obj) { - if (!Object.prototype.hasOwnProperty.call(obj, i2)) { - continue; - } - if (i2 === "proxyCache") continue; - var value = obj[i2]; - var type = record_typeof(value); - if (i2 === "parent" && type === "object") { - if (parent) cloned[i2] = parent; - } else if (i2 === "source") { - cloned[i2] = value; - } else if (Array.isArray(value)) { - cloned[i2] = value.map(function (j) { - return cloneNode(j, cloned); - }); - } else { - if (type === "object" && value !== null) value = cloneNode(value); - cloned[i2] = value; - } - } - return cloned; -} -var Node$4 = /*#__PURE__*/function () { - function Node3() { - var defaults = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}; - record_classCallCheck(this, Node3); - this.raws = {}; - this[isClean$2] = false; - this[my$2] = true; - for (var name in defaults) { - if (name === "nodes") { - this.nodes = []; - var _iterator25 = record_createForOfIteratorHelper(defaults[name]), - _step25; - try { - for (_iterator25.s(); !(_step25 = _iterator25.n()).done;) { - var node2 = _step25.value; - if (typeof node2.clone === "function") { - this.append(node2.clone()); - } else { - this.append(node2); - } - } - } catch (err) { - _iterator25.e(err); - } finally { - _iterator25.f(); - } - } else { - this[name] = defaults[name]; - } - } - } - return record_createClass(Node3, [{ - key: "addToError", - value: function addToError(error) { - error.postcssNode = this; - if (error.stack && this.source && /\n\s{4}at /.test(error.stack)) { - var s2 = this.source; - error.stack = error.stack.replace(/\n\s{4}at /, "$&".concat(s2.input.from, ":").concat(s2.start.line, ":").concat(s2.start.column, "$&")); - } - return error; - } - }, { - key: "after", - value: function after(add) { - this.parent.insertAfter(this, add); - return this; - } - }, { - key: "assign", - value: function assign() { - var overrides = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}; - for (var name in overrides) { - this[name] = overrides[name]; - } - return this; - } - }, { - key: "before", - value: function before(add) { - this.parent.insertBefore(this, add); - return this; - } - }, { - key: "cleanRaws", - value: function cleanRaws(keepBetween) { - delete this.raws.before; - delete this.raws.after; - if (!keepBetween) delete this.raws.between; - } - }, { - key: "clone", - value: function clone() { - var overrides = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}; - var cloned = cloneNode(this); - for (var name in overrides) { - cloned[name] = overrides[name]; - } - return cloned; - } - }, { - key: "cloneAfter", - value: function cloneAfter() { - var overrides = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}; - var cloned = this.clone(overrides); - this.parent.insertAfter(this, cloned); - return cloned; - } - }, { - key: "cloneBefore", - value: function cloneBefore() { - var overrides = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}; - var cloned = this.clone(overrides); - this.parent.insertBefore(this, cloned); - return cloned; - } - }, { - key: "error", - value: function error(message) { - var opts = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {}; - if (this.source) { - var _this$rangeBy2 = this.rangeBy(opts), - end = _this$rangeBy2.end, - start = _this$rangeBy2.start; - return this.source.input.error(message, { - column: start.column, - line: start.line - }, { - column: end.column, - line: end.line - }, opts); - } - return new CssSyntaxError$2(message); - } - }, { - key: "getProxyProcessor", - value: function getProxyProcessor() { - return { - get: function get(node2, prop) { - if (prop === "proxyOf") { - return node2; - } else if (prop === "root") { - return function () { - return node2.root().toProxy(); - }; - } else { - return node2[prop]; - } - }, - set: function set(node2, prop, value) { - if (node2[prop] === value) return true; - node2[prop] = value; - if (prop === "prop" || prop === "value" || prop === "name" || prop === "params" || prop === "important" || /* c8 ignore next */ - prop === "text") { - node2.markDirty(); - } - return true; - } - }; - } - }, { - key: "markDirty", - value: function markDirty() { - if (this[isClean$2]) { - this[isClean$2] = false; - var next = this; - while (next = next.parent) { - next[isClean$2] = false; - } - } - } - }, { - key: "next", - value: function next() { - if (!this.parent) return void 0; - var index2 = this.parent.index(this); - return this.parent.nodes[index2 + 1]; - } - }, { - key: "positionBy", - value: function positionBy(opts, stringRepresentation) { - var pos = this.source.start; - if (opts.index) { - pos = this.positionInside(opts.index, stringRepresentation); - } else if (opts.word) { - stringRepresentation = this.toString(); - var index2 = stringRepresentation.indexOf(opts.word); - if (index2 !== -1) pos = this.positionInside(index2, stringRepresentation); - } - return pos; - } - }, { - key: "positionInside", - value: function positionInside(index2, stringRepresentation) { - var string = stringRepresentation || this.toString(); - var column = this.source.start.column; - var line = this.source.start.line; - for (var i2 = 0; i2 < index2; i2++) { - if (string[i2] === "\n") { - column = 1; - line += 1; - } else { - column += 1; - } - } - return { - column: column, - line: line - }; - } - }, { - key: "prev", - value: function prev() { - if (!this.parent) return void 0; - var index2 = this.parent.index(this); - return this.parent.nodes[index2 - 1]; - } - }, { - key: "rangeBy", - value: function rangeBy(opts) { - var start = { - column: this.source.start.column, - line: this.source.start.line - }; - var end = this.source.end ? { - column: this.source.end.column + 1, - line: this.source.end.line - } : { - column: start.column + 1, - line: start.line - }; - if (opts.word) { - var stringRepresentation = this.toString(); - var index2 = stringRepresentation.indexOf(opts.word); - if (index2 !== -1) { - start = this.positionInside(index2, stringRepresentation); - end = this.positionInside(index2 + opts.word.length, stringRepresentation); - } - } else { - if (opts.start) { - start = { - column: opts.start.column, - line: opts.start.line - }; - } else if (opts.index) { - start = this.positionInside(opts.index); - } - if (opts.end) { - end = { - column: opts.end.column, - line: opts.end.line - }; - } else if (typeof opts.endIndex === "number") { - end = this.positionInside(opts.endIndex); - } else if (opts.index) { - end = this.positionInside(opts.index + 1); - } - } - if (end.line < start.line || end.line === start.line && end.column <= start.column) { - end = { - column: start.column + 1, - line: start.line - }; - } - return { - end: end, - start: start - }; - } - }, { - key: "raw", - value: function raw(prop, defaultType) { - var str = new Stringifier22(); - return str.raw(this, prop, defaultType); - } - }, { - key: "remove", - value: function remove() { - if (this.parent) { - this.parent.removeChild(this); - } - this.parent = void 0; - return this; - } - }, { - key: "replaceWith", - value: function replaceWith() { - if (this.parent) { - var bookmark = this; - var foundSelf = false; - for (var _len9 = arguments.length, nodes = new Array(_len9), _key9 = 0; _key9 < _len9; _key9++) { - nodes[_key9] = arguments[_key9]; - } - for (var _i7 = 0, _nodes2 = nodes; _i7 < _nodes2.length; _i7++) { - var node2 = _nodes2[_i7]; - if (node2 === this) { - foundSelf = true; - } else if (foundSelf) { - this.parent.insertAfter(bookmark, node2); - bookmark = node2; - } else { - this.parent.insertBefore(bookmark, node2); - } - } - if (!foundSelf) { - this.remove(); - } - } - return this; - } - }, { - key: "root", - value: function root() { - var result2 = this; - while (result2.parent && result2.parent.type !== "document") { - result2 = result2.parent; - } - return result2; - } - }, { - key: "toJSON", - value: function toJSON(_, inputs) { - var fixed = {}; - var emitInputs = inputs == null; - inputs = inputs || /* @__PURE__ */new Map(); - var inputsNextIndex = 0; - for (var name in this) { - if (!Object.prototype.hasOwnProperty.call(this, name)) { - continue; - } - if (name === "parent" || name === "proxyCache") continue; - var value = this[name]; - if (Array.isArray(value)) { - fixed[name] = value.map(function (i2) { - if (record_typeof(i2) === "object" && i2.toJSON) { - return i2.toJSON(null, inputs); - } else { - return i2; - } - }); - } else if (record_typeof(value) === "object" && value.toJSON) { - fixed[name] = value.toJSON(null, inputs); - } else if (name === "source") { - var inputId = inputs.get(value.input); - if (inputId == null) { - inputId = inputsNextIndex; - inputs.set(value.input, inputsNextIndex); - inputsNextIndex++; - } - fixed[name] = { - end: value.end, - inputId: inputId, - start: value.start - }; - } else { - fixed[name] = value; - } - } - if (emitInputs) { - fixed.inputs = record_toConsumableArray(inputs.keys()).map(function (input2) { - return input2.toJSON(); - }); - } - return fixed; - } - }, { - key: "toProxy", - value: function toProxy() { - if (!this.proxyCache) { - this.proxyCache = new Proxy(this, this.getProxyProcessor()); - } - return this.proxyCache; - } - }, { - key: "toString", - value: function toString() { - var stringifier2 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : stringify$3; - if (stringifier2.stringify) stringifier2 = stringifier2.stringify; - var result2 = ""; - stringifier2(this, function (i2) { - result2 += i2; - }); - return result2; - } - }, { - key: "warn", - value: function warn(result2, text, opts) { - var data = { - node: this - }; - for (var i2 in opts) data[i2] = opts[i2]; - return result2.warn(text, data); - } - }, { - key: "proxyOf", - get: function get() { - return this; - } - }]); -}(); -var node = Node$4; -Node$4.default = Node$4; -var Node$3 = node; -var Declaration$4 = /*#__PURE__*/function (_Node$) { - function Declaration2(defaults) { - var _this21; - record_classCallCheck(this, Declaration2); - if (defaults && typeof defaults.value !== "undefined" && typeof defaults.value !== "string") { - defaults = record_objectSpread(record_objectSpread({}, defaults), {}, { - value: String(defaults.value) - }); - } - _this21 = _callSuper(this, Declaration2, [defaults]); - _this21.type = "decl"; - return _this21; - } - _inherits(Declaration2, _Node$); - return record_createClass(Declaration2, [{ - key: "variable", - get: function get() { - return this.prop.startsWith("--") || this.prop[0] === "$"; - } - }]); -}(Node$3); -var declaration = Declaration$4; -Declaration$4.default = Declaration$4; -var urlAlphabet = "useandom-26T198340PX75pxJACKVERYMINDBUSHWOLF_GQZbfghjklqvwyzrict"; -var customAlphabet = function customAlphabet(alphabet) { - var defaultSize = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 21; - return function () { - var size = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : defaultSize; - var id = ""; - var i2 = size; - while (i2--) { - id += alphabet[Math.random() * alphabet.length | 0]; - } - return id; - }; -}; -var nanoid$1 = function nanoid$1() { - var size = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 21; - var id = ""; - var i2 = size; - while (i2--) { - id += urlAlphabet[Math.random() * 64 | 0]; - } - return id; -}; -var nonSecure = { - nanoid: nanoid$1, - customAlphabet: customAlphabet -}; -var SourceMapConsumer$2 = require$$2.SourceMapConsumer, - SourceMapGenerator$2 = require$$2.SourceMapGenerator; -var existsSync = require$$2.existsSync, - readFileSync = require$$2.readFileSync; -var dirname$1 = require$$2.dirname, - join = require$$2.join; -function fromBase64(str) { - if (Buffer) { - return Buffer.from(str, "base64").toString(); - } else { - return window.atob(str); - } -} -var PreviousMap$2 = /*#__PURE__*/function () { - function PreviousMap2(css, opts) { - record_classCallCheck(this, PreviousMap2); - if (opts.map === false) return; - this.loadAnnotation(css); - this.inline = this.startWith(this.annotation, "data:"); - var prev = opts.map ? opts.map.prev : void 0; - var text = this.loadMap(opts.from, prev); - if (!this.mapFile && opts.from) { - this.mapFile = opts.from; - } - if (this.mapFile) this.root = dirname$1(this.mapFile); - if (text) this.text = text; - } - return record_createClass(PreviousMap2, [{ - key: "consumer", - value: function consumer() { - if (!this.consumerCache) { - this.consumerCache = new SourceMapConsumer$2(this.text); - } - return this.consumerCache; - } - }, { - key: "decodeInline", - value: function decodeInline(text) { - var baseCharsetUri = /^data:application\/json;charset=utf-?8;base64,/; - var baseUri = /^data:application\/json;base64,/; - var charsetUri = /^data:application\/json;charset=utf-?8,/; - var uri = /^data:application\/json,/; - if (charsetUri.test(text) || uri.test(text)) { - return decodeURIComponent(text.substr(RegExp.lastMatch.length)); - } - if (baseCharsetUri.test(text) || baseUri.test(text)) { - return fromBase64(text.substr(RegExp.lastMatch.length)); - } - var encoding = text.match(/data:application\/json;([^,]+),/)[1]; - throw new Error("Unsupported source map encoding " + encoding); - } - }, { - key: "getAnnotationURL", - value: function getAnnotationURL(sourceMapString) { - return sourceMapString.replace(/^\/\*\s*# sourceMappingURL=/, "").trim(); - } - }, { - key: "isMap", - value: function isMap(map) { - if (record_typeof(map) !== "object") return false; - return typeof map.mappings === "string" || typeof map._mappings === "string" || Array.isArray(map.sections); - } - }, { - key: "loadAnnotation", - value: function loadAnnotation(css) { - var comments = css.match(/\/\*\s*# sourceMappingURL=/gm); - if (!comments) return; - var start = css.lastIndexOf(comments.pop()); - var end = css.indexOf("*/", start); - if (start > -1 && end > -1) { - this.annotation = this.getAnnotationURL(css.substring(start, end)); - } - } - }, { - key: "loadFile", - value: function loadFile(path) { - this.root = dirname$1(path); - if (existsSync(path)) { - this.mapFile = path; - return readFileSync(path, "utf-8").toString().trim(); - } - } - }, { - key: "loadMap", - value: function loadMap(file, prev) { - if (prev === false) return false; - if (prev) { - if (typeof prev === "string") { - return prev; - } else if (typeof prev === "function") { - var prevPath = prev(file); - if (prevPath) { - var map = this.loadFile(prevPath); - if (!map) { - throw new Error("Unable to load previous source map: " + prevPath.toString()); - } - return map; - } - } else if (prev instanceof SourceMapConsumer$2) { - return SourceMapGenerator$2.fromSourceMap(prev).toString(); - } else if (prev instanceof SourceMapGenerator$2) { - return prev.toString(); - } else if (this.isMap(prev)) { - return JSON.stringify(prev); - } else { - throw new Error("Unsupported previous source map format: " + prev.toString()); - } - } else if (this.inline) { - return this.decodeInline(this.annotation); - } else if (this.annotation) { - var _map2 = this.annotation; - if (file) _map2 = join(dirname$1(file), _map2); - return this.loadFile(_map2); - } - } - }, { - key: "startWith", - value: function startWith(string, start) { - if (!string) return false; - return string.substr(0, start.length) === start; - } - }, { - key: "withContent", - value: function withContent() { - return !!(this.consumer().sourcesContent && this.consumer().sourcesContent.length > 0); - } - }]); -}(); -var previousMap = PreviousMap$2; -PreviousMap$2.default = PreviousMap$2; -var SourceMapConsumer$1 = require$$2.SourceMapConsumer, - SourceMapGenerator$1 = require$$2.SourceMapGenerator; -var fileURLToPath = require$$2.fileURLToPath, - pathToFileURL$1 = require$$2.pathToFileURL; -var isAbsolute = require$$2.isAbsolute, - resolve$1 = require$$2.resolve; -var nanoid = nonSecure.nanoid; -var terminalHighlight = require$$2; -var CssSyntaxError$1 = cssSyntaxError; -var PreviousMap$1 = previousMap; -var fromOffsetCache = Symbol("fromOffsetCache"); -var sourceMapAvailable$1 = Boolean(SourceMapConsumer$1 && SourceMapGenerator$1); -var pathAvailable$1 = Boolean(resolve$1 && isAbsolute); -var Input$4 = /*#__PURE__*/function () { - function Input2(css) { - var opts = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {}; - record_classCallCheck(this, Input2); - if (css === null || typeof css === "undefined" || record_typeof(css) === "object" && !css.toString) { - throw new Error("PostCSS received ".concat(css, " instead of CSS string")); - } - this.css = css.toString(); - if (this.css[0] === "\uFEFF" || this.css[0] === "￾") { - this.hasBOM = true; - this.css = this.css.slice(1); - } else { - this.hasBOM = false; - } - if (opts.from) { - if (!pathAvailable$1 || /^\w+:\/\//.test(opts.from) || isAbsolute(opts.from)) { - this.file = opts.from; - } else { - this.file = resolve$1(opts.from); - } - } - if (pathAvailable$1 && sourceMapAvailable$1) { - var map = new PreviousMap$1(this.css, opts); - if (map.text) { - this.map = map; - var file = map.consumer().file; - if (!this.file && file) this.file = this.mapResolve(file); - } - } - if (!this.file) { - this.id = ""; - } - if (this.map) this.map.file = this.from; - } - return record_createClass(Input2, [{ - key: "error", - value: function error(message, line, column) { - var opts = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : {}; - var result2, endLine, endColumn; - if (line && record_typeof(line) === "object") { - var start = line; - var end = column; - if (typeof start.offset === "number") { - var pos = this.fromOffset(start.offset); - line = pos.line; - column = pos.col; - } else { - line = start.line; - column = start.column; - } - if (typeof end.offset === "number") { - var _pos3 = this.fromOffset(end.offset); - endLine = _pos3.line; - endColumn = _pos3.col; - } else { - endLine = end.line; - endColumn = end.column; - } - } else if (!column) { - var _pos4 = this.fromOffset(line); - line = _pos4.line; - column = _pos4.col; - } - var origin = this.origin(line, column, endLine, endColumn); - if (origin) { - result2 = new CssSyntaxError$1(message, origin.endLine === void 0 ? origin.line : { - column: origin.column, - line: origin.line - }, origin.endLine === void 0 ? origin.column : { - column: origin.endColumn, - line: origin.endLine - }, origin.source, origin.file, opts.plugin); - } else { - result2 = new CssSyntaxError$1(message, endLine === void 0 ? line : { - column: column, - line: line - }, endLine === void 0 ? column : { - column: endColumn, - line: endLine - }, this.css, this.file, opts.plugin); - } - result2.input = { - column: column, - endColumn: endColumn, - endLine: endLine, - line: line, - source: this.css - }; - if (this.file) { - if (pathToFileURL$1) { - result2.input.url = pathToFileURL$1(this.file).toString(); - } - result2.input.file = this.file; - } - return result2; - } - }, { - key: "fromOffset", - value: function fromOffset(offset) { - var lastLine, lineToIndex; - if (!this[fromOffsetCache]) { - var lines = this.css.split("\n"); - lineToIndex = new Array(lines.length); - var prevIndex = 0; - for (var i2 = 0, l2 = lines.length; i2 < l2; i2++) { - lineToIndex[i2] = prevIndex; - prevIndex += lines[i2].length + 1; - } - this[fromOffsetCache] = lineToIndex; - } else { - lineToIndex = this[fromOffsetCache]; - } - lastLine = lineToIndex[lineToIndex.length - 1]; - var min = 0; - if (offset >= lastLine) { - min = lineToIndex.length - 1; - } else { - var max = lineToIndex.length - 2; - var mid; - while (min < max) { - mid = min + (max - min >> 1); - if (offset < lineToIndex[mid]) { - max = mid - 1; - } else if (offset >= lineToIndex[mid + 1]) { - min = mid + 1; - } else { - min = mid; - break; - } - } - } - return { - col: offset - lineToIndex[min] + 1, - line: min + 1 - }; - } - }, { - key: "mapResolve", - value: function mapResolve(file) { - if (/^\w+:\/\//.test(file)) { - return file; - } - return resolve$1(this.map.consumer().sourceRoot || this.map.root || ".", file); - } - }, { - key: "origin", - value: function origin(line, column, endLine, endColumn) { - if (!this.map) return false; - var consumer = this.map.consumer(); - var from = consumer.originalPositionFor({ - column: column, - line: line - }); - if (!from.source) return false; - var to; - if (typeof endLine === "number") { - to = consumer.originalPositionFor({ - column: endColumn, - line: endLine - }); - } - var fromUrl; - if (isAbsolute(from.source)) { - fromUrl = pathToFileURL$1(from.source); - } else { - fromUrl = new URL(from.source, this.map.consumer().sourceRoot || pathToFileURL$1(this.map.mapFile)); - } - var result2 = { - column: from.column, - endColumn: to && to.column, - endLine: to && to.line, - line: from.line, - url: fromUrl.toString() - }; - if (fromUrl.protocol === "file:") { - if (fileURLToPath) { - result2.file = fileURLToPath(fromUrl); - } else { - throw new Error("file: protocol is not available in this PostCSS build"); - } - } - var source = consumer.sourceContentFor(from.source); - if (source) result2.source = source; - return result2; - } - }, { - key: "toJSON", - value: function toJSON() { - var json = {}; - for (var _i8 = 0, _arr2 = ["hasBOM", "css", "file", "id"]; _i8 < _arr2.length; _i8++) { - var name = _arr2[_i8]; - if (this[name] != null) { - json[name] = this[name]; - } - } - if (this.map) { - json.map = record_objectSpread({}, this.map); - if (json.map.consumerCache) { - json.map.consumerCache = void 0; - } - } - return json; - } - }, { - key: "from", - get: function get() { - return this.file || this.id; - } - }]); -}(); -var input = Input$4; -Input$4.default = Input$4; -if (terminalHighlight && terminalHighlight.registerInput) { - terminalHighlight.registerInput(Input$4); -} -var SourceMapConsumer = require$$2.SourceMapConsumer, - SourceMapGenerator = require$$2.SourceMapGenerator; -var dirname = require$$2.dirname, - relative = require$$2.relative, - resolve = require$$2.resolve, - sep = require$$2.sep; -var pathToFileURL = require$$2.pathToFileURL; -var Input$3 = input; -var sourceMapAvailable = Boolean(SourceMapConsumer && SourceMapGenerator); -var pathAvailable = Boolean(dirname && resolve && relative && sep); -var MapGenerator$2 = /*#__PURE__*/function () { - function MapGenerator2(stringify2, root2, opts, cssString) { - record_classCallCheck(this, MapGenerator2); - this.stringify = stringify2; - this.mapOpts = opts.map || {}; - this.root = root2; - this.opts = opts; - this.css = cssString; - this.originalCSS = cssString; - this.usesFileUrls = !this.mapOpts.from && this.mapOpts.absolute; - this.memoizedFileURLs = /* @__PURE__ */new Map(); - this.memoizedPaths = /* @__PURE__ */new Map(); - this.memoizedURLs = /* @__PURE__ */new Map(); - } - return record_createClass(MapGenerator2, [{ - key: "addAnnotation", - value: function addAnnotation() { - var content; - if (this.isInline()) { - content = "data:application/json;base64," + this.toBase64(this.map.toString()); - } else if (typeof this.mapOpts.annotation === "string") { - content = this.mapOpts.annotation; - } else if (typeof this.mapOpts.annotation === "function") { - content = this.mapOpts.annotation(this.opts.to, this.root); - } else { - content = this.outputFile() + ".map"; - } - var eol = "\n"; - if (this.css.includes("\r\n")) eol = "\r\n"; - this.css += eol + "/*# sourceMappingURL=" + content + " */"; - } - }, { - key: "applyPrevMaps", - value: function applyPrevMaps() { - var _iterator26 = record_createForOfIteratorHelper(this.previous()), - _step26; - try { - for (_iterator26.s(); !(_step26 = _iterator26.n()).done;) { - var prev = _step26.value; - var from = this.toUrl(this.path(prev.file)); - var root2 = prev.root || dirname(prev.file); - var map = void 0; - if (this.mapOpts.sourcesContent === false) { - map = new SourceMapConsumer(prev.text); - if (map.sourcesContent) { - map.sourcesContent = null; - } - } else { - map = prev.consumer(); - } - this.map.applySourceMap(map, from, this.toUrl(this.path(root2))); - } - } catch (err) { - _iterator26.e(err); - } finally { - _iterator26.f(); - } - } - }, { - key: "clearAnnotation", - value: function clearAnnotation() { - if (this.mapOpts.annotation === false) return; - if (this.root) { - var node2; - for (var i2 = this.root.nodes.length - 1; i2 >= 0; i2--) { - node2 = this.root.nodes[i2]; - if (node2.type !== "comment") continue; - if (node2.text.indexOf("# sourceMappingURL=") === 0) { - this.root.removeChild(i2); - } - } - } else if (this.css) { - this.css = this.css.replace(/\n*?\/\*#[\S\s]*?\*\/$/gm, ""); - } - } - }, { - key: "generate", - value: function generate() { - this.clearAnnotation(); - if (pathAvailable && sourceMapAvailable && this.isMap()) { - return this.generateMap(); - } else { - var result2 = ""; - this.stringify(this.root, function (i2) { - result2 += i2; - }); - return [result2]; - } - } - }, { - key: "generateMap", - value: function generateMap() { - if (this.root) { - this.generateString(); - } else if (this.previous().length === 1) { - var prev = this.previous()[0].consumer(); - prev.file = this.outputFile(); - this.map = SourceMapGenerator.fromSourceMap(prev, { - ignoreInvalidMapping: true - }); - } else { - this.map = new SourceMapGenerator({ - file: this.outputFile(), - ignoreInvalidMapping: true - }); - this.map.addMapping({ - generated: { - column: 0, - line: 1 - }, - original: { - column: 0, - line: 1 - }, - source: this.opts.from ? this.toUrl(this.path(this.opts.from)) : "" - }); - } - if (this.isSourcesContent()) this.setSourcesContent(); - if (this.root && this.previous().length > 0) this.applyPrevMaps(); - if (this.isAnnotation()) this.addAnnotation(); - if (this.isInline()) { - return [this.css]; - } else { - return [this.css, this.map]; - } - } - }, { - key: "generateString", - value: function generateString() { - var _this22 = this; - this.css = ""; - this.map = new SourceMapGenerator({ - file: this.outputFile(), - ignoreInvalidMapping: true - }); - var line = 1; - var column = 1; - var noSource = ""; - var mapping = { - generated: { - column: 0, - line: 0 - }, - original: { - column: 0, - line: 0 - }, - source: "" - }; - var lines, last; - this.stringify(this.root, function (str, node2, type) { - _this22.css += str; - if (node2 && type !== "end") { - mapping.generated.line = line; - mapping.generated.column = column - 1; - if (node2.source && node2.source.start) { - mapping.source = _this22.sourcePath(node2); - mapping.original.line = node2.source.start.line; - mapping.original.column = node2.source.start.column - 1; - _this22.map.addMapping(mapping); - } else { - mapping.source = noSource; - mapping.original.line = 1; - mapping.original.column = 0; - _this22.map.addMapping(mapping); - } - } - lines = str.match(/\n/g); - if (lines) { - line += lines.length; - last = str.lastIndexOf("\n"); - column = str.length - last; - } else { - column += str.length; - } - if (node2 && type !== "start") { - var p = node2.parent || { - raws: {} - }; - var childless = node2.type === "decl" || node2.type === "atrule" && !node2.nodes; - if (!childless || node2 !== p.last || p.raws.semicolon) { - if (node2.source && node2.source.end) { - mapping.source = _this22.sourcePath(node2); - mapping.original.line = node2.source.end.line; - mapping.original.column = node2.source.end.column - 1; - mapping.generated.line = line; - mapping.generated.column = column - 2; - _this22.map.addMapping(mapping); - } else { - mapping.source = noSource; - mapping.original.line = 1; - mapping.original.column = 0; - mapping.generated.line = line; - mapping.generated.column = column - 1; - _this22.map.addMapping(mapping); - } - } - } - }); - } - }, { - key: "isAnnotation", - value: function isAnnotation() { - if (this.isInline()) { - return true; - } - if (typeof this.mapOpts.annotation !== "undefined") { - return this.mapOpts.annotation; - } - if (this.previous().length) { - return this.previous().some(function (i2) { - return i2.annotation; - }); - } - return true; - } - }, { - key: "isInline", - value: function isInline() { - if (typeof this.mapOpts.inline !== "undefined") { - return this.mapOpts.inline; - } - var annotation = this.mapOpts.annotation; - if (typeof annotation !== "undefined" && annotation !== true) { - return false; - } - if (this.previous().length) { - return this.previous().some(function (i2) { - return i2.inline; - }); - } - return true; - } - }, { - key: "isMap", - value: function isMap() { - if (typeof this.opts.map !== "undefined") { - return !!this.opts.map; - } - return this.previous().length > 0; - } - }, { - key: "isSourcesContent", - value: function isSourcesContent() { - if (typeof this.mapOpts.sourcesContent !== "undefined") { - return this.mapOpts.sourcesContent; - } - if (this.previous().length) { - return this.previous().some(function (i2) { - return i2.withContent(); - }); - } - return true; - } - }, { - key: "outputFile", - value: function outputFile() { - if (this.opts.to) { - return this.path(this.opts.to); - } else if (this.opts.from) { - return this.path(this.opts.from); - } else { - return "to.css"; - } - } - }, { - key: "path", - value: function path(file) { - if (this.mapOpts.absolute) return file; - if (file.charCodeAt(0) === 60) return file; - if (/^\w+:\/\//.test(file)) return file; - var cached = this.memoizedPaths.get(file); - if (cached) return cached; - var from = this.opts.to ? dirname(this.opts.to) : "."; - if (typeof this.mapOpts.annotation === "string") { - from = dirname(resolve(from, this.mapOpts.annotation)); - } - var path = relative(from, file); - this.memoizedPaths.set(file, path); - return path; - } - }, { - key: "previous", - value: function previous() { - var _this23 = this; - if (!this.previousMaps) { - this.previousMaps = []; - if (this.root) { - this.root.walk(function (node2) { - if (node2.source && node2.source.input.map) { - var map = node2.source.input.map; - if (!_this23.previousMaps.includes(map)) { - _this23.previousMaps.push(map); - } - } - }); - } else { - var input2 = new Input$3(this.originalCSS, this.opts); - if (input2.map) this.previousMaps.push(input2.map); - } - } - return this.previousMaps; - } - }, { - key: "setSourcesContent", - value: function setSourcesContent() { - var _this24 = this; - var already = {}; - if (this.root) { - this.root.walk(function (node2) { - if (node2.source) { - var from = node2.source.input.from; - if (from && !already[from]) { - already[from] = true; - var fromUrl = _this24.usesFileUrls ? _this24.toFileUrl(from) : _this24.toUrl(_this24.path(from)); - _this24.map.setSourceContent(fromUrl, node2.source.input.css); - } - } - }); - } else if (this.css) { - var from = this.opts.from ? this.toUrl(this.path(this.opts.from)) : ""; - this.map.setSourceContent(from, this.css); - } - } - }, { - key: "sourcePath", - value: function sourcePath(node2) { - if (this.mapOpts.from) { - return this.toUrl(this.mapOpts.from); - } else if (this.usesFileUrls) { - return this.toFileUrl(node2.source.input.from); - } else { - return this.toUrl(this.path(node2.source.input.from)); - } - } - }, { - key: "toBase64", - value: function toBase64(str) { - if (Buffer) { - return Buffer.from(str).toString("base64"); - } else { - return window.btoa(unescape(encodeURIComponent(str))); - } - } - }, { - key: "toFileUrl", - value: function toFileUrl(path) { - var cached = this.memoizedFileURLs.get(path); - if (cached) return cached; - if (pathToFileURL) { - var fileURL = pathToFileURL(path).toString(); - this.memoizedFileURLs.set(path, fileURL); - return fileURL; - } else { - throw new Error("`map.absolute` option is not available in this PostCSS build"); - } - } - }, { - key: "toUrl", - value: function toUrl(path) { - var cached = this.memoizedURLs.get(path); - if (cached) return cached; - if (sep === "\\") { - path = path.replace(/\\/g, "/"); - } - var url = encodeURI(path).replace(/[#?]/g, encodeURIComponent); - this.memoizedURLs.set(path, url); - return url; - } - }]); -}(); -var mapGenerator = MapGenerator$2; -var Node$2 = node; -var Comment$4 = /*#__PURE__*/function (_Node$2) { - function Comment2(defaults) { - var _this25; - record_classCallCheck(this, Comment2); - _this25 = _callSuper(this, Comment2, [defaults]); - _this25.type = "comment"; - return _this25; - } - _inherits(Comment2, _Node$2); - return record_createClass(Comment2); -}(Node$2); -var comment = Comment$4; -Comment$4.default = Comment$4; -var isClean$1 = symbols.isClean, - my$1 = symbols.my; -var Declaration$3 = declaration; -var Comment$3 = comment; -var Node$1 = node; -var parse$4, Rule$4, AtRule$4, Root$6; -function cleanSource(nodes) { - return nodes.map(function (i2) { - if (i2.nodes) i2.nodes = cleanSource(i2.nodes); - delete i2.source; - return i2; - }); -} -function markDirtyUp(node2) { - node2[isClean$1] = false; - if (node2.proxyOf.nodes) { - var _iterator27 = record_createForOfIteratorHelper(node2.proxyOf.nodes), - _step27; - try { - for (_iterator27.s(); !(_step27 = _iterator27.n()).done;) { - var i2 = _step27.value; - markDirtyUp(i2); - } - } catch (err) { - _iterator27.e(err); - } finally { - _iterator27.f(); - } - } -} -var Container$7 = /*#__PURE__*/function (_Node$3) { - function Container2() { - record_classCallCheck(this, Container2); - return _callSuper(this, Container2, arguments); - } - _inherits(Container2, _Node$3); - return record_createClass(Container2, [{ - key: "append", - value: function append() { - for (var _len10 = arguments.length, children = new Array(_len10), _key10 = 0; _key10 < _len10; _key10++) { - children[_key10] = arguments[_key10]; - } - for (var _i9 = 0, _children2 = children; _i9 < _children2.length; _i9++) { - var child = _children2[_i9]; - var nodes = this.normalize(child, this.last); - var _iterator28 = record_createForOfIteratorHelper(nodes), - _step28; - try { - for (_iterator28.s(); !(_step28 = _iterator28.n()).done;) { - var node2 = _step28.value; - this.proxyOf.nodes.push(node2); - } - } catch (err) { - _iterator28.e(err); - } finally { - _iterator28.f(); - } - } - this.markDirty(); - return this; - } - }, { - key: "cleanRaws", - value: function cleanRaws(keepBetween) { - _superPropGet(Container2, "cleanRaws", this, 3)([keepBetween]); - if (this.nodes) { - var _iterator29 = record_createForOfIteratorHelper(this.nodes), - _step29; - try { - for (_iterator29.s(); !(_step29 = _iterator29.n()).done;) { - var node2 = _step29.value; - node2.cleanRaws(keepBetween); - } - } catch (err) { - _iterator29.e(err); - } finally { - _iterator29.f(); - } - } - } - }, { - key: "each", - value: function each(callback) { - if (!this.proxyOf.nodes) return void 0; - var iterator = this.getIterator(); - var index2, result2; - while (this.indexes[iterator] < this.proxyOf.nodes.length) { - index2 = this.indexes[iterator]; - result2 = callback(this.proxyOf.nodes[index2], index2); - if (result2 === false) break; - this.indexes[iterator] += 1; - } - delete this.indexes[iterator]; - return result2; - } - }, { - key: "every", - value: function every(condition) { - return this.nodes.every(condition); - } - }, { - key: "getIterator", - value: function getIterator() { - if (!this.lastEach) this.lastEach = 0; - if (!this.indexes) this.indexes = {}; - this.lastEach += 1; - var iterator = this.lastEach; - this.indexes[iterator] = 0; - return iterator; - } - }, { - key: "getProxyProcessor", - value: function getProxyProcessor() { - return { - get: function get(node2, prop) { - if (prop === "proxyOf") { - return node2; - } else if (!node2[prop]) { - return node2[prop]; - } else if (prop === "each" || typeof prop === "string" && prop.startsWith("walk")) { - return function () { - for (var _len11 = arguments.length, args = new Array(_len11), _key11 = 0; _key11 < _len11; _key11++) { - args[_key11] = arguments[_key11]; - } - return node2[prop].apply(node2, record_toConsumableArray(args.map(function (i2) { - if (typeof i2 === "function") { - return function (child, index2) { - return i2(child.toProxy(), index2); - }; - } else { - return i2; - } - }))); - }; - } else if (prop === "every" || prop === "some") { - return function (cb) { - return node2[prop](function (child) { - for (var _len12 = arguments.length, other = new Array(_len12 > 1 ? _len12 - 1 : 0), _key12 = 1; _key12 < _len12; _key12++) { - other[_key12 - 1] = arguments[_key12]; - } - return cb.apply(void 0, [child.toProxy()].concat(other)); - }); - }; - } else if (prop === "root") { - return function () { - return node2.root().toProxy(); - }; - } else if (prop === "nodes") { - return node2.nodes.map(function (i2) { - return i2.toProxy(); - }); - } else if (prop === "first" || prop === "last") { - return node2[prop].toProxy(); - } else { - return node2[prop]; - } - }, - set: function set(node2, prop, value) { - if (node2[prop] === value) return true; - node2[prop] = value; - if (prop === "name" || prop === "params" || prop === "selector") { - node2.markDirty(); - } - return true; - } - }; - } - }, { - key: "index", - value: function index(child) { - if (typeof child === "number") return child; - if (child.proxyOf) child = child.proxyOf; - return this.proxyOf.nodes.indexOf(child); - } - }, { - key: "insertAfter", - value: function insertAfter(exist, add) { - var existIndex = this.index(exist); - var nodes = this.normalize(add, this.proxyOf.nodes[existIndex]).reverse(); - existIndex = this.index(exist); - var _iterator30 = record_createForOfIteratorHelper(nodes), - _step30; - try { - for (_iterator30.s(); !(_step30 = _iterator30.n()).done;) { - var node2 = _step30.value; - this.proxyOf.nodes.splice(existIndex + 1, 0, node2); - } - } catch (err) { - _iterator30.e(err); - } finally { - _iterator30.f(); - } - var index2; - for (var id in this.indexes) { - index2 = this.indexes[id]; - if (existIndex < index2) { - this.indexes[id] = index2 + nodes.length; - } - } - this.markDirty(); - return this; - } - }, { - key: "insertBefore", - value: function insertBefore(exist, add) { - var existIndex = this.index(exist); - var type = existIndex === 0 ? "prepend" : false; - var nodes = this.normalize(add, this.proxyOf.nodes[existIndex], type).reverse(); - existIndex = this.index(exist); - var _iterator31 = record_createForOfIteratorHelper(nodes), - _step31; - try { - for (_iterator31.s(); !(_step31 = _iterator31.n()).done;) { - var node2 = _step31.value; - this.proxyOf.nodes.splice(existIndex, 0, node2); - } - } catch (err) { - _iterator31.e(err); - } finally { - _iterator31.f(); - } - var index2; - for (var id in this.indexes) { - index2 = this.indexes[id]; - if (existIndex <= index2) { - this.indexes[id] = index2 + nodes.length; - } - } - this.markDirty(); - return this; - } - }, { - key: "normalize", - value: function normalize(nodes, sample) { - var _this26 = this; - if (typeof nodes === "string") { - nodes = cleanSource(parse$4(nodes).nodes); - } else if (typeof nodes === "undefined") { - nodes = []; - } else if (Array.isArray(nodes)) { - nodes = nodes.slice(0); - var _iterator32 = record_createForOfIteratorHelper(nodes), - _step32; - try { - for (_iterator32.s(); !(_step32 = _iterator32.n()).done;) { - var i2 = _step32.value; - if (i2.parent) i2.parent.removeChild(i2, "ignore"); - } - } catch (err) { - _iterator32.e(err); - } finally { - _iterator32.f(); - } - } else if (nodes.type === "root" && this.type !== "document") { - nodes = nodes.nodes.slice(0); - var _iterator33 = record_createForOfIteratorHelper(nodes), - _step33; - try { - for (_iterator33.s(); !(_step33 = _iterator33.n()).done;) { - var _i10 = _step33.value; - if (_i10.parent) _i10.parent.removeChild(_i10, "ignore"); - } - } catch (err) { - _iterator33.e(err); - } finally { - _iterator33.f(); - } - } else if (nodes.type) { - nodes = [nodes]; - } else if (nodes.prop) { - if (typeof nodes.value === "undefined") { - throw new Error("Value field is missed in node creation"); - } else if (typeof nodes.value !== "string") { - nodes.value = String(nodes.value); - } - nodes = [new Declaration$3(nodes)]; - } else if (nodes.selector) { - nodes = [new Rule$4(nodes)]; - } else if (nodes.name) { - nodes = [new AtRule$4(nodes)]; - } else if (nodes.text) { - nodes = [new Comment$3(nodes)]; - } else { - throw new Error("Unknown node type in node creation"); - } - var processed = nodes.map(function (i2) { - if (!i2[my$1]) Container2.rebuild(i2); - i2 = i2.proxyOf; - if (i2.parent) i2.parent.removeChild(i2); - if (i2[isClean$1]) markDirtyUp(i2); - if (typeof i2.raws.before === "undefined") { - if (sample && typeof sample.raws.before !== "undefined") { - i2.raws.before = sample.raws.before.replace(/\S/g, ""); - } - } - i2.parent = _this26.proxyOf; - return i2; - }); - return processed; - } - }, { - key: "prepend", - value: function prepend() { - for (var _len13 = arguments.length, children = new Array(_len13), _key13 = 0; _key13 < _len13; _key13++) { - children[_key13] = arguments[_key13]; - } - children = children.reverse(); - var _iterator34 = record_createForOfIteratorHelper(children), - _step34; - try { - for (_iterator34.s(); !(_step34 = _iterator34.n()).done;) { - var child = _step34.value; - var nodes = this.normalize(child, this.first, "prepend").reverse(); - var _iterator35 = record_createForOfIteratorHelper(nodes), - _step35; - try { - for (_iterator35.s(); !(_step35 = _iterator35.n()).done;) { - var node2 = _step35.value; - this.proxyOf.nodes.unshift(node2); - } - } catch (err) { - _iterator35.e(err); - } finally { - _iterator35.f(); - } - for (var id in this.indexes) { - this.indexes[id] = this.indexes[id] + nodes.length; - } - } - } catch (err) { - _iterator34.e(err); - } finally { - _iterator34.f(); - } - this.markDirty(); - return this; - } - }, { - key: "push", - value: function push(child) { - child.parent = this; - this.proxyOf.nodes.push(child); - return this; - } - }, { - key: "removeAll", - value: function removeAll() { - var _iterator36 = record_createForOfIteratorHelper(this.proxyOf.nodes), - _step36; - try { - for (_iterator36.s(); !(_step36 = _iterator36.n()).done;) { - var node2 = _step36.value; - node2.parent = void 0; - } - } catch (err) { - _iterator36.e(err); - } finally { - _iterator36.f(); - } - this.proxyOf.nodes = []; - this.markDirty(); - return this; - } - }, { - key: "removeChild", - value: function removeChild(child) { - child = this.index(child); - this.proxyOf.nodes[child].parent = void 0; - this.proxyOf.nodes.splice(child, 1); - var index2; - for (var id in this.indexes) { - index2 = this.indexes[id]; - if (index2 >= child) { - this.indexes[id] = index2 - 1; - } - } - this.markDirty(); - return this; - } - }, { - key: "replaceValues", - value: function replaceValues(pattern, opts, callback) { - if (!callback) { - callback = opts; - opts = {}; - } - this.walkDecls(function (decl) { - if (opts.props && !opts.props.includes(decl.prop)) return; - if (opts.fast && !decl.value.includes(opts.fast)) return; - decl.value = decl.value.replace(pattern, callback); - }); - this.markDirty(); - return this; - } - }, { - key: "some", - value: function some(condition) { - return this.nodes.some(condition); - } - }, { - key: "walk", - value: function walk(callback) { - return this.each(function (child, i2) { - var result2; - try { - result2 = callback(child, i2); - } catch (e2) { - throw child.addToError(e2); - } - if (result2 !== false && child.walk) { - result2 = child.walk(callback); - } - return result2; - }); - } - }, { - key: "walkAtRules", - value: function walkAtRules(name, callback) { - if (!callback) { - callback = name; - return this.walk(function (child, i2) { - if (child.type === "atrule") { - return callback(child, i2); - } - }); - } - if (name instanceof RegExp) { - return this.walk(function (child, i2) { - if (child.type === "atrule" && name.test(child.name)) { - return callback(child, i2); - } - }); - } - return this.walk(function (child, i2) { - if (child.type === "atrule" && child.name === name) { - return callback(child, i2); - } - }); - } - }, { - key: "walkComments", - value: function walkComments(callback) { - return this.walk(function (child, i2) { - if (child.type === "comment") { - return callback(child, i2); - } - }); - } - }, { - key: "walkDecls", - value: function walkDecls(prop, callback) { - if (!callback) { - callback = prop; - return this.walk(function (child, i2) { - if (child.type === "decl") { - return callback(child, i2); - } - }); - } - if (prop instanceof RegExp) { - return this.walk(function (child, i2) { - if (child.type === "decl" && prop.test(child.prop)) { - return callback(child, i2); - } - }); - } - return this.walk(function (child, i2) { - if (child.type === "decl" && child.prop === prop) { - return callback(child, i2); - } - }); - } - }, { - key: "walkRules", - value: function walkRules(selector, callback) { - if (!callback) { - callback = selector; - return this.walk(function (child, i2) { - if (child.type === "rule") { - return callback(child, i2); - } - }); - } - if (selector instanceof RegExp) { - return this.walk(function (child, i2) { - if (child.type === "rule" && selector.test(child.selector)) { - return callback(child, i2); - } - }); - } - return this.walk(function (child, i2) { - if (child.type === "rule" && child.selector === selector) { - return callback(child, i2); - } - }); - } - }, { - key: "first", - get: function get() { - if (!this.proxyOf.nodes) return void 0; - return this.proxyOf.nodes[0]; - } - }, { - key: "last", - get: function get() { - if (!this.proxyOf.nodes) return void 0; - return this.proxyOf.nodes[this.proxyOf.nodes.length - 1]; - } - }]); -}(Node$1); -Container$7.registerParse = function (dependant) { - parse$4 = dependant; -}; -Container$7.registerRule = function (dependant) { - Rule$4 = dependant; -}; -Container$7.registerAtRule = function (dependant) { - AtRule$4 = dependant; -}; -Container$7.registerRoot = function (dependant) { - Root$6 = dependant; -}; -var container = Container$7; -Container$7.default = Container$7; -Container$7.rebuild = function (node2) { - if (node2.type === "atrule") { - Object.setPrototypeOf(node2, AtRule$4.prototype); - } else if (node2.type === "rule") { - Object.setPrototypeOf(node2, Rule$4.prototype); - } else if (node2.type === "decl") { - Object.setPrototypeOf(node2, Declaration$3.prototype); - } else if (node2.type === "comment") { - Object.setPrototypeOf(node2, Comment$3.prototype); - } else if (node2.type === "root") { - Object.setPrototypeOf(node2, Root$6.prototype); - } - node2[my$1] = true; - if (node2.nodes) { - node2.nodes.forEach(function (child) { - Container$7.rebuild(child); - }); - } -}; -var Container$6 = container; -var LazyResult$4, Processor$3; -var Document$3 = /*#__PURE__*/function (_Container$) { - function Document23(defaults) { - var _this27; - record_classCallCheck(this, Document23); - _this27 = _callSuper(this, Document23, [record_objectSpread({ - type: "document" - }, defaults)]); - if (!_this27.nodes) { - _this27.nodes = []; - } - return _this27; - } - _inherits(Document23, _Container$); - return record_createClass(Document23, [{ - key: "toResult", - value: function toResult() { - var opts = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}; - var lazy = new LazyResult$4(new Processor$3(), this, opts); - return lazy.stringify(); - } - }]); -}(Container$6); -Document$3.registerLazyResult = function (dependant) { - LazyResult$4 = dependant; -}; -Document$3.registerProcessor = function (dependant) { - Processor$3 = dependant; -}; -var document$1 = Document$3; -Document$3.default = Document$3; -var printed = {}; -var warnOnce$2 = function warnOnce2(message) { - if (printed[message]) return; - printed[message] = true; - if (typeof console !== "undefined" && console.warn) { - console.warn(message); - } -}; -var Warning$2 = /*#__PURE__*/function () { - function Warning2(text) { - var opts = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {}; - record_classCallCheck(this, Warning2); - this.type = "warning"; - this.text = text; - if (opts.node && opts.node.source) { - var range = opts.node.rangeBy(opts); - this.line = range.start.line; - this.column = range.start.column; - this.endLine = range.end.line; - this.endColumn = range.end.column; - } - for (var opt in opts) this[opt] = opts[opt]; - } - return record_createClass(Warning2, [{ - key: "toString", - value: function toString() { - if (this.node) { - return this.node.error(this.text, { - index: this.index, - plugin: this.plugin, - word: this.word - }).message; - } - if (this.plugin) { - return this.plugin + ": " + this.text; - } - return this.text; - } - }]); -}(); -var warning = Warning$2; -Warning$2.default = Warning$2; -var Warning$1 = warning; -var Result$3 = /*#__PURE__*/function () { - function Result2(processor2, root2, opts) { - record_classCallCheck(this, Result2); - this.processor = processor2; - this.messages = []; - this.root = root2; - this.opts = opts; - this.css = void 0; - this.map = void 0; - } - return record_createClass(Result2, [{ - key: "toString", - value: function toString() { - return this.css; - } - }, { - key: "warn", - value: function warn(text) { - var opts = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {}; - if (!opts.plugin) { - if (this.lastPlugin && this.lastPlugin.postcssPlugin) { - opts.plugin = this.lastPlugin.postcssPlugin; - } - } - var warning2 = new Warning$1(text, opts); - this.messages.push(warning2); - return warning2; - } - }, { - key: "warnings", - value: function warnings() { - return this.messages.filter(function (i2) { - return i2.type === "warning"; - }); - } - }, { - key: "content", - get: function get() { - return this.css; - } - }]); -}(); -var result = Result$3; -Result$3.default = Result$3; -var SINGLE_QUOTE = "'".charCodeAt(0); -var DOUBLE_QUOTE = '"'.charCodeAt(0); -var BACKSLASH = "\\".charCodeAt(0); -var SLASH = "/".charCodeAt(0); -var NEWLINE = "\n".charCodeAt(0); -var SPACE = " ".charCodeAt(0); -var FEED = "\f".charCodeAt(0); -var TAB = " ".charCodeAt(0); -var CR = "\r".charCodeAt(0); -var OPEN_SQUARE = "[".charCodeAt(0); -var CLOSE_SQUARE = "]".charCodeAt(0); -var OPEN_PARENTHESES = "(".charCodeAt(0); -var CLOSE_PARENTHESES = ")".charCodeAt(0); -var OPEN_CURLY = "{".charCodeAt(0); -var CLOSE_CURLY = "}".charCodeAt(0); -var SEMICOLON = ";".charCodeAt(0); -var ASTERISK = "*".charCodeAt(0); -var COLON = ":".charCodeAt(0); -var AT = "@".charCodeAt(0); -var RE_AT_END = /[\t\n\f\r "#'()/;[\\\]{}]/g; -var RE_WORD_END = /[\t\n\f\r !"#'():;@[\\\]{}]|\/(?=\*)/g; -var RE_BAD_BRACKET = /.[\r\n"'(/\\]/; -var RE_HEX_ESCAPE = /[\da-f]/i; -var tokenize = function tokenizer2(input2) { - var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {}; - var css = input2.css.valueOf(); - var ignore = options.ignoreErrors; - var code, next, quote, content, escape; - var escaped, escapePos, prev, n2, currentToken; - var length = css.length; - var pos = 0; - var buffer = []; - var returned = []; - function position() { - return pos; - } - function unclosed(what) { - throw input2.error("Unclosed " + what, pos); - } - function endOfFile() { - return returned.length === 0 && pos >= length; - } - function nextToken(opts) { - if (returned.length) return returned.pop(); - if (pos >= length) return; - var ignoreUnclosed = opts ? opts.ignoreUnclosed : false; - code = css.charCodeAt(pos); - switch (code) { - case NEWLINE: - case SPACE: - case TAB: - case CR: - case FEED: - { - next = pos; - do { - next += 1; - code = css.charCodeAt(next); - } while (code === SPACE || code === NEWLINE || code === TAB || code === CR || code === FEED); - currentToken = ["space", css.slice(pos, next)]; - pos = next - 1; - break; - } - case OPEN_SQUARE: - case CLOSE_SQUARE: - case OPEN_CURLY: - case CLOSE_CURLY: - case COLON: - case SEMICOLON: - case CLOSE_PARENTHESES: - { - var controlChar = String.fromCharCode(code); - currentToken = [controlChar, controlChar, pos]; - break; - } - case OPEN_PARENTHESES: - { - prev = buffer.length ? buffer.pop()[1] : ""; - n2 = css.charCodeAt(pos + 1); - if (prev === "url" && n2 !== SINGLE_QUOTE && n2 !== DOUBLE_QUOTE && n2 !== SPACE && n2 !== NEWLINE && n2 !== TAB && n2 !== FEED && n2 !== CR) { - next = pos; - do { - escaped = false; - next = css.indexOf(")", next + 1); - if (next === -1) { - if (ignore || ignoreUnclosed) { - next = pos; - break; - } else { - unclosed("bracket"); - } - } - escapePos = next; - while (css.charCodeAt(escapePos - 1) === BACKSLASH) { - escapePos -= 1; - escaped = !escaped; - } - } while (escaped); - currentToken = ["brackets", css.slice(pos, next + 1), pos, next]; - pos = next; - } else { - next = css.indexOf(")", pos + 1); - content = css.slice(pos, next + 1); - if (next === -1 || RE_BAD_BRACKET.test(content)) { - currentToken = ["(", "(", pos]; - } else { - currentToken = ["brackets", content, pos, next]; - pos = next; - } - } - break; - } - case SINGLE_QUOTE: - case DOUBLE_QUOTE: - { - quote = code === SINGLE_QUOTE ? "'" : '"'; - next = pos; - do { - escaped = false; - next = css.indexOf(quote, next + 1); - if (next === -1) { - if (ignore || ignoreUnclosed) { - next = pos + 1; - break; - } else { - unclosed("string"); - } - } - escapePos = next; - while (css.charCodeAt(escapePos - 1) === BACKSLASH) { - escapePos -= 1; - escaped = !escaped; - } - } while (escaped); - currentToken = ["string", css.slice(pos, next + 1), pos, next]; - pos = next; - break; - } - case AT: - { - RE_AT_END.lastIndex = pos + 1; - RE_AT_END.test(css); - if (RE_AT_END.lastIndex === 0) { - next = css.length - 1; - } else { - next = RE_AT_END.lastIndex - 2; - } - currentToken = ["at-word", css.slice(pos, next + 1), pos, next]; - pos = next; - break; - } - case BACKSLASH: - { - next = pos; - escape = true; - while (css.charCodeAt(next + 1) === BACKSLASH) { - next += 1; - escape = !escape; - } - code = css.charCodeAt(next + 1); - if (escape && code !== SLASH && code !== SPACE && code !== NEWLINE && code !== TAB && code !== CR && code !== FEED) { - next += 1; - if (RE_HEX_ESCAPE.test(css.charAt(next))) { - while (RE_HEX_ESCAPE.test(css.charAt(next + 1))) { - next += 1; - } - if (css.charCodeAt(next + 1) === SPACE) { - next += 1; - } - } - } - currentToken = ["word", css.slice(pos, next + 1), pos, next]; - pos = next; - break; - } - default: - { - if (code === SLASH && css.charCodeAt(pos + 1) === ASTERISK) { - next = css.indexOf("*/", pos + 2) + 1; - if (next === 0) { - if (ignore || ignoreUnclosed) { - next = css.length; - } else { - unclosed("comment"); - } - } - currentToken = ["comment", css.slice(pos, next + 1), pos, next]; - pos = next; - } else { - RE_WORD_END.lastIndex = pos + 1; - RE_WORD_END.test(css); - if (RE_WORD_END.lastIndex === 0) { - next = css.length - 1; - } else { - next = RE_WORD_END.lastIndex - 2; - } - currentToken = ["word", css.slice(pos, next + 1), pos, next]; - buffer.push(currentToken); - pos = next; - } - break; - } - } - pos++; - return currentToken; - } - function back(token) { - returned.push(token); - } - return { - back: back, - endOfFile: endOfFile, - nextToken: nextToken, - position: position - }; -}; -var Container$5 = container; -var AtRule$3 = /*#__PURE__*/function (_Container$2) { - function AtRule2(defaults) { - var _this28; - record_classCallCheck(this, AtRule2); - _this28 = _callSuper(this, AtRule2, [defaults]); - _this28.type = "atrule"; - return _this28; - } - _inherits(AtRule2, _Container$2); - return record_createClass(AtRule2, [{ - key: "append", - value: function append() { - if (!this.proxyOf.nodes) this.nodes = []; - for (var _len14 = arguments.length, children = new Array(_len14), _key14 = 0; _key14 < _len14; _key14++) { - children[_key14] = arguments[_key14]; - } - return _superPropGet(AtRule2, "append", this, 3)(children); - } - }, { - key: "prepend", - value: function prepend() { - if (!this.proxyOf.nodes) this.nodes = []; - for (var _len15 = arguments.length, children = new Array(_len15), _key15 = 0; _key15 < _len15; _key15++) { - children[_key15] = arguments[_key15]; - } - return _superPropGet(AtRule2, "prepend", this, 3)(children); - } - }]); -}(Container$5); -var atRule = AtRule$3; -AtRule$3.default = AtRule$3; -Container$5.registerAtRule(AtRule$3); -var Container$4 = container; -var LazyResult$3, Processor$2; -var Root$5 = /*#__PURE__*/function (_Container$3) { - function Root2(defaults) { - var _this29; - record_classCallCheck(this, Root2); - _this29 = _callSuper(this, Root2, [defaults]); - _this29.type = "root"; - if (!_this29.nodes) _this29.nodes = []; - return _this29; - } - _inherits(Root2, _Container$3); - return record_createClass(Root2, [{ - key: "normalize", - value: function normalize(child, sample, type) { - var nodes = _superPropGet(Root2, "normalize", this, 3)([child]); - if (sample) { - if (type === "prepend") { - if (this.nodes.length > 1) { - sample.raws.before = this.nodes[1].raws.before; - } else { - delete sample.raws.before; - } - } else if (this.first !== sample) { - var _iterator37 = record_createForOfIteratorHelper(nodes), - _step37; - try { - for (_iterator37.s(); !(_step37 = _iterator37.n()).done;) { - var node2 = _step37.value; - node2.raws.before = sample.raws.before; - } - } catch (err) { - _iterator37.e(err); - } finally { - _iterator37.f(); - } - } - } - return nodes; - } - }, { - key: "removeChild", - value: function removeChild(child, ignore) { - var index2 = this.index(child); - if (!ignore && index2 === 0 && this.nodes.length > 1) { - this.nodes[1].raws.before = this.nodes[index2].raws.before; - } - return _superPropGet(Root2, "removeChild", this, 3)([child]); - } - }, { - key: "toResult", - value: function toResult() { - var opts = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}; - var lazy = new LazyResult$3(new Processor$2(), this, opts); - return lazy.stringify(); - } - }]); -}(Container$4); -Root$5.registerLazyResult = function (dependant) { - LazyResult$3 = dependant; -}; -Root$5.registerProcessor = function (dependant) { - Processor$2 = dependant; -}; -var root = Root$5; -Root$5.default = Root$5; -Container$4.registerRoot(Root$5); -var list$2 = { - comma: function comma(string) { - return list$2.split(string, [","], true); - }, - space: function space(string) { - var spaces = [" ", "\n", " "]; - return list$2.split(string, spaces); - }, - split: function split(string, separators, last) { - var array = []; - var current = ""; - var split = false; - var func = 0; - var inQuote = false; - var prevQuote = ""; - var escape = false; - var _iterator38 = record_createForOfIteratorHelper(string), - _step38; - try { - for (_iterator38.s(); !(_step38 = _iterator38.n()).done;) { - var letter = _step38.value; - if (escape) { - escape = false; - } else if (letter === "\\") { - escape = true; - } else if (inQuote) { - if (letter === prevQuote) { - inQuote = false; - } - } else if (letter === '"' || letter === "'") { - inQuote = true; - prevQuote = letter; - } else if (letter === "(") { - func += 1; - } else if (letter === ")") { - if (func > 0) func -= 1; - } else if (func === 0) { - if (separators.includes(letter)) split = true; - } - if (split) { - if (current !== "") array.push(current.trim()); - current = ""; - split = false; - } else { - current += letter; - } - } - } catch (err) { - _iterator38.e(err); - } finally { - _iterator38.f(); - } - if (last || current !== "") array.push(current.trim()); - return array; - } -}; -var list_1 = list$2; -list$2.default = list$2; -var Container$3 = container; -var list$1 = list_1; -var Rule$3 = /*#__PURE__*/function (_Container$4) { - function Rule2(defaults) { - var _this30; - record_classCallCheck(this, Rule2); - _this30 = _callSuper(this, Rule2, [defaults]); - _this30.type = "rule"; - if (!_this30.nodes) _this30.nodes = []; - return _this30; - } - _inherits(Rule2, _Container$4); - return record_createClass(Rule2, [{ - key: "selectors", - get: function get() { - return list$1.comma(this.selector); - }, - set: function set(values) { - var match = this.selector ? this.selector.match(/,\s*/) : null; - var sep2 = match ? match[0] : "," + this.raw("between", "beforeOpen"); - this.selector = values.join(sep2); - } - }]); -}(Container$3); -var rule = Rule$3; -Rule$3.default = Rule$3; -Container$3.registerRule(Rule$3); -var Declaration$2 = declaration; -var tokenizer22 = tokenize; -var Comment$2 = comment; -var AtRule$2 = atRule; -var Root$4 = root; -var Rule$2 = rule; -var SAFE_COMMENT_NEIGHBOR = { - empty: true, - space: true -}; -function findLastWithPosition(tokens) { - for (var i2 = tokens.length - 1; i2 >= 0; i2--) { - var token = tokens[i2]; - var pos = token[3] || token[2]; - if (pos) return pos; - } -} -var Parser$1 = /*#__PURE__*/function () { - function Parser2(input2) { - record_classCallCheck(this, Parser2); - this.input = input2; - this.root = new Root$4(); - this.current = this.root; - this.spaces = ""; - this.semicolon = false; - this.createTokenizer(); - this.root.source = { - input: input2, - start: { - column: 1, - line: 1, - offset: 0 - } - }; - } - return record_createClass(Parser2, [{ - key: "atrule", - value: function atrule(token) { - var node2 = new AtRule$2(); - node2.name = token[1].slice(1); - if (node2.name === "") { - this.unnamedAtrule(node2, token); - } - this.init(node2, token[2]); - var type; - var prev; - var shift; - var last = false; - var open = false; - var params = []; - var brackets = []; - while (!this.tokenizer.endOfFile()) { - token = this.tokenizer.nextToken(); - type = token[0]; - if (type === "(" || type === "[") { - brackets.push(type === "(" ? ")" : "]"); - } else if (type === "{" && brackets.length > 0) { - brackets.push("}"); - } else if (type === brackets[brackets.length - 1]) { - brackets.pop(); - } - if (brackets.length === 0) { - if (type === ";") { - node2.source.end = this.getPosition(token[2]); - node2.source.end.offset++; - this.semicolon = true; - break; - } else if (type === "{") { - open = true; - break; - } else if (type === "}") { - if (params.length > 0) { - shift = params.length - 1; - prev = params[shift]; - while (prev && prev[0] === "space") { - prev = params[--shift]; - } - if (prev) { - node2.source.end = this.getPosition(prev[3] || prev[2]); - node2.source.end.offset++; - } - } - this.end(token); - break; - } else { - params.push(token); - } - } else { - params.push(token); - } - if (this.tokenizer.endOfFile()) { - last = true; - break; - } - } - node2.raws.between = this.spacesAndCommentsFromEnd(params); - if (params.length) { - node2.raws.afterName = this.spacesAndCommentsFromStart(params); - this.raw(node2, "params", params); - if (last) { - token = params[params.length - 1]; - node2.source.end = this.getPosition(token[3] || token[2]); - node2.source.end.offset++; - this.spaces = node2.raws.between; - node2.raws.between = ""; - } - } else { - node2.raws.afterName = ""; - node2.params = ""; - } - if (open) { - node2.nodes = []; - this.current = node2; - } - } - }, { - key: "checkMissedSemicolon", - value: function checkMissedSemicolon(tokens) { - var colon = this.colon(tokens); - if (colon === false) return; - var founded = 0; - var token; - for (var j = colon - 1; j >= 0; j--) { - token = tokens[j]; - if (token[0] !== "space") { - founded += 1; - if (founded === 2) break; - } - } - throw this.input.error("Missed semicolon", token[0] === "word" ? token[3] + 1 : token[2]); - } - }, { - key: "colon", - value: function colon(tokens) { - var brackets = 0; - var token, type, prev; - var _iterator39 = record_createForOfIteratorHelper(tokens.entries()), - _step39; - try { - for (_iterator39.s(); !(_step39 = _iterator39.n()).done;) { - var _step39$value = record_slicedToArray(_step39.value, 2), - i2 = _step39$value[0], - element = _step39$value[1]; - token = element; - type = token[0]; - if (type === "(") { - brackets += 1; - } - if (type === ")") { - brackets -= 1; - } - if (brackets === 0 && type === ":") { - if (!prev) { - this.doubleColon(token); - } else if (prev[0] === "word" && prev[1] === "progid") { - continue; - } else { - return i2; - } - } - prev = token; - } - } catch (err) { - _iterator39.e(err); - } finally { - _iterator39.f(); - } - return false; - } - }, { - key: "comment", - value: function comment(token) { - var node2 = new Comment$2(); - this.init(node2, token[2]); - node2.source.end = this.getPosition(token[3] || token[2]); - node2.source.end.offset++; - var text = token[1].slice(2, -2); - if (/^\s*$/.test(text)) { - node2.text = ""; - node2.raws.left = text; - node2.raws.right = ""; - } else { - var match = text.match(/^(\s*)([^]*\S)(\s*)$/); - node2.text = match[2]; - node2.raws.left = match[1]; - node2.raws.right = match[3]; - } - } - }, { - key: "createTokenizer", - value: function createTokenizer() { - this.tokenizer = tokenizer22(this.input); - } - }, { - key: "decl", - value: function decl(tokens, customProperty) { - var node2 = new Declaration$2(); - this.init(node2, tokens[0][2]); - var last = tokens[tokens.length - 1]; - if (last[0] === ";") { - this.semicolon = true; - tokens.pop(); - } - node2.source.end = this.getPosition(last[3] || last[2] || findLastWithPosition(tokens)); - node2.source.end.offset++; - while (tokens[0][0] !== "word") { - if (tokens.length === 1) this.unknownWord(tokens); - node2.raws.before += tokens.shift()[1]; - } - node2.source.start = this.getPosition(tokens[0][2]); - node2.prop = ""; - while (tokens.length) { - var type = tokens[0][0]; - if (type === ":" || type === "space" || type === "comment") { - break; - } - node2.prop += tokens.shift()[1]; - } - node2.raws.between = ""; - var token; - while (tokens.length) { - token = tokens.shift(); - if (token[0] === ":") { - node2.raws.between += token[1]; - break; - } else { - if (token[0] === "word" && /\w/.test(token[1])) { - this.unknownWord([token]); - } - node2.raws.between += token[1]; - } - } - if (node2.prop[0] === "_" || node2.prop[0] === "*") { - node2.raws.before += node2.prop[0]; - node2.prop = node2.prop.slice(1); - } - var firstSpaces = []; - var next; - while (tokens.length) { - next = tokens[0][0]; - if (next !== "space" && next !== "comment") break; - firstSpaces.push(tokens.shift()); - } - this.precheckMissedSemicolon(tokens); - for (var i2 = tokens.length - 1; i2 >= 0; i2--) { - token = tokens[i2]; - if (token[1].toLowerCase() === "!important") { - node2.important = true; - var string = this.stringFrom(tokens, i2); - string = this.spacesFromEnd(tokens) + string; - if (string !== " !important") node2.raws.important = string; - break; - } else if (token[1].toLowerCase() === "important") { - var cache = tokens.slice(0); - var str = ""; - for (var j = i2; j > 0; j--) { - var _type2 = cache[j][0]; - if (str.trim().indexOf("!") === 0 && _type2 !== "space") { - break; - } - str = cache.pop()[1] + str; - } - if (str.trim().indexOf("!") === 0) { - node2.important = true; - node2.raws.important = str; - tokens = cache; - } - } - if (token[0] !== "space" && token[0] !== "comment") { - break; - } - } - var hasWord = tokens.some(function (i2) { - return i2[0] !== "space" && i2[0] !== "comment"; - }); - if (hasWord) { - node2.raws.between += firstSpaces.map(function (i2) { - return i2[1]; - }).join(""); - firstSpaces = []; - } - this.raw(node2, "value", firstSpaces.concat(tokens), customProperty); - if (node2.value.includes(":") && !customProperty) { - this.checkMissedSemicolon(tokens); - } - } - }, { - key: "doubleColon", - value: function doubleColon(token) { - throw this.input.error("Double colon", { - offset: token[2] - }, { - offset: token[2] + token[1].length - }); - } - }, { - key: "emptyRule", - value: function emptyRule(token) { - var node2 = new Rule$2(); - this.init(node2, token[2]); - node2.selector = ""; - node2.raws.between = ""; - this.current = node2; - } - }, { - key: "end", - value: function end(token) { - if (this.current.nodes && this.current.nodes.length) { - this.current.raws.semicolon = this.semicolon; - } - this.semicolon = false; - this.current.raws.after = (this.current.raws.after || "") + this.spaces; - this.spaces = ""; - if (this.current.parent) { - this.current.source.end = this.getPosition(token[2]); - this.current.source.end.offset++; - this.current = this.current.parent; - } else { - this.unexpectedClose(token); - } - } - }, { - key: "endFile", - value: function endFile() { - if (this.current.parent) this.unclosedBlock(); - if (this.current.nodes && this.current.nodes.length) { - this.current.raws.semicolon = this.semicolon; - } - this.current.raws.after = (this.current.raws.after || "") + this.spaces; - this.root.source.end = this.getPosition(this.tokenizer.position()); - } - }, { - key: "freeSemicolon", - value: function freeSemicolon(token) { - this.spaces += token[1]; - if (this.current.nodes) { - var prev = this.current.nodes[this.current.nodes.length - 1]; - if (prev && prev.type === "rule" && !prev.raws.ownSemicolon) { - prev.raws.ownSemicolon = this.spaces; - this.spaces = ""; - } - } - } - // Helpers - }, { - key: "getPosition", - value: function getPosition(offset) { - var pos = this.input.fromOffset(offset); - return { - column: pos.col, - line: pos.line, - offset: offset - }; - } - }, { - key: "init", - value: function init(node2, offset) { - this.current.push(node2); - node2.source = { - input: this.input, - start: this.getPosition(offset) - }; - node2.raws.before = this.spaces; - this.spaces = ""; - if (node2.type !== "comment") this.semicolon = false; - } - }, { - key: "other", - value: function other(start) { - var end = false; - var type = null; - var colon = false; - var bracket = null; - var brackets = []; - var customProperty = start[1].startsWith("--"); - var tokens = []; - var token = start; - while (token) { - type = token[0]; - tokens.push(token); - if (type === "(" || type === "[") { - if (!bracket) bracket = token; - brackets.push(type === "(" ? ")" : "]"); - } else if (customProperty && colon && type === "{") { - if (!bracket) bracket = token; - brackets.push("}"); - } else if (brackets.length === 0) { - if (type === ";") { - if (colon) { - this.decl(tokens, customProperty); - return; - } else { - break; - } - } else if (type === "{") { - this.rule(tokens); - return; - } else if (type === "}") { - this.tokenizer.back(tokens.pop()); - end = true; - break; - } else if (type === ":") { - colon = true; - } - } else if (type === brackets[brackets.length - 1]) { - brackets.pop(); - if (brackets.length === 0) bracket = null; - } - token = this.tokenizer.nextToken(); - } - if (this.tokenizer.endOfFile()) end = true; - if (brackets.length > 0) this.unclosedBracket(bracket); - if (end && colon) { - if (!customProperty) { - while (tokens.length) { - token = tokens[tokens.length - 1][0]; - if (token !== "space" && token !== "comment") break; - this.tokenizer.back(tokens.pop()); - } - } - this.decl(tokens, customProperty); - } else { - this.unknownWord(tokens); - } - } - }, { - key: "parse", - value: function parse() { - var token; - while (!this.tokenizer.endOfFile()) { - token = this.tokenizer.nextToken(); - switch (token[0]) { - case "space": - this.spaces += token[1]; - break; - case ";": - this.freeSemicolon(token); - break; - case "}": - this.end(token); - break; - case "comment": - this.comment(token); - break; - case "at-word": - this.atrule(token); - break; - case "{": - this.emptyRule(token); - break; - default: - this.other(token); - break; - } - } - this.endFile(); - } - }, { - key: "precheckMissedSemicolon", - value: function precheckMissedSemicolon() {} - }, { - key: "raw", - value: function raw(node2, prop, tokens, customProperty) { - var token, type; - var length = tokens.length; - var value = ""; - var clean = true; - var next, prev; - for (var i2 = 0; i2 < length; i2 += 1) { - token = tokens[i2]; - type = token[0]; - if (type === "space" && i2 === length - 1 && !customProperty) { - clean = false; - } else if (type === "comment") { - prev = tokens[i2 - 1] ? tokens[i2 - 1][0] : "empty"; - next = tokens[i2 + 1] ? tokens[i2 + 1][0] : "empty"; - if (!SAFE_COMMENT_NEIGHBOR[prev] && !SAFE_COMMENT_NEIGHBOR[next]) { - if (value.slice(-1) === ",") { - clean = false; - } else { - value += token[1]; - } - } else { - clean = false; - } - } else { - value += token[1]; - } - } - if (!clean) { - var _raw2 = tokens.reduce(function (all, i2) { - return all + i2[1]; - }, ""); - node2.raws[prop] = { - raw: _raw2, - value: value - }; - } - node2[prop] = value; - } - }, { - key: "rule", - value: function rule(tokens) { - tokens.pop(); - var node2 = new Rule$2(); - this.init(node2, tokens[0][2]); - node2.raws.between = this.spacesAndCommentsFromEnd(tokens); - this.raw(node2, "selector", tokens); - this.current = node2; - } - }, { - key: "spacesAndCommentsFromEnd", - value: function spacesAndCommentsFromEnd(tokens) { - var lastTokenType; - var spaces = ""; - while (tokens.length) { - lastTokenType = tokens[tokens.length - 1][0]; - if (lastTokenType !== "space" && lastTokenType !== "comment") break; - spaces = tokens.pop()[1] + spaces; - } - return spaces; - } - // Errors - }, { - key: "spacesAndCommentsFromStart", - value: function spacesAndCommentsFromStart(tokens) { - var next; - var spaces = ""; - while (tokens.length) { - next = tokens[0][0]; - if (next !== "space" && next !== "comment") break; - spaces += tokens.shift()[1]; - } - return spaces; - } - }, { - key: "spacesFromEnd", - value: function spacesFromEnd(tokens) { - var lastTokenType; - var spaces = ""; - while (tokens.length) { - lastTokenType = tokens[tokens.length - 1][0]; - if (lastTokenType !== "space") break; - spaces = tokens.pop()[1] + spaces; - } - return spaces; - } - }, { - key: "stringFrom", - value: function stringFrom(tokens, from) { - var result2 = ""; - for (var i2 = from; i2 < tokens.length; i2++) { - result2 += tokens[i2][1]; - } - tokens.splice(from, tokens.length - from); - return result2; - } - }, { - key: "unclosedBlock", - value: function unclosedBlock() { - var pos = this.current.source.start; - throw this.input.error("Unclosed block", pos.line, pos.column); - } - }, { - key: "unclosedBracket", - value: function unclosedBracket(bracket) { - throw this.input.error("Unclosed bracket", { - offset: bracket[2] - }, { - offset: bracket[2] + 1 - }); - } - }, { - key: "unexpectedClose", - value: function unexpectedClose(token) { - throw this.input.error("Unexpected }", { - offset: token[2] - }, { - offset: token[2] + 1 - }); - } - }, { - key: "unknownWord", - value: function unknownWord(tokens) { - throw this.input.error("Unknown word", { - offset: tokens[0][2] - }, { - offset: tokens[0][2] + tokens[0][1].length - }); - } - }, { - key: "unnamedAtrule", - value: function unnamedAtrule(node2, token) { - throw this.input.error("At-rule without name", { - offset: token[2] - }, { - offset: token[2] + token[1].length - }); - } - }]); -}(); -var parser = Parser$1; -var Container$2 = container; -var Parser22 = parser; -var Input$2 = input; -function parse$3(css, opts) { - var input2 = new Input$2(css, opts); - var parser2 = new Parser22(input2); - try { - parser2.parse(); - } catch (e2) { - if (false) {} - throw e2; - } - return parser2.root; -} -var parse_1 = parse$3; -parse$3.default = parse$3; -Container$2.registerParse(parse$3); -var isClean = symbols.isClean, - my = symbols.my; -var MapGenerator$1 = mapGenerator; -var stringify$2 = stringify_1; -var Container$1 = container; -var Document$2 = document$1; -var warnOnce$1 = (/* unused pure expression or super */ null && (warnOnce$2)); -var Result$2 = result; -var parse$2 = parse_1; -var Root$3 = root; -var TYPE_TO_CLASS_NAME = { - atrule: "AtRule", - comment: "Comment", - decl: "Declaration", - document: "Document", - root: "Root", - rule: "Rule" -}; -var PLUGIN_PROPS = { - AtRule: true, - AtRuleExit: true, - Comment: true, - CommentExit: true, - Declaration: true, - DeclarationExit: true, - Document: true, - DocumentExit: true, - Once: true, - OnceExit: true, - postcssPlugin: true, - prepare: true, - Root: true, - RootExit: true, - Rule: true, - RuleExit: true -}; -var NOT_VISITORS = { - Once: true, - postcssPlugin: true, - prepare: true -}; -var CHILDREN = 0; -function record_isPromise(obj) { - return record_typeof(obj) === "object" && typeof obj.then === "function"; -} -function getEvents(node2) { - var key = false; - var type = TYPE_TO_CLASS_NAME[node2.type]; - if (node2.type === "decl") { - key = node2.prop.toLowerCase(); - } else if (node2.type === "atrule") { - key = node2.name.toLowerCase(); - } - if (key && node2.append) { - return [type, type + "-" + key, CHILDREN, type + "Exit", type + "Exit-" + key]; - } else if (key) { - return [type, type + "-" + key, type + "Exit", type + "Exit-" + key]; - } else if (node2.append) { - return [type, CHILDREN, type + "Exit"]; - } else { - return [type, type + "Exit"]; - } -} -function toStack(node2) { - var events; - if (node2.type === "document") { - events = ["Document", CHILDREN, "DocumentExit"]; - } else if (node2.type === "root") { - events = ["Root", CHILDREN, "RootExit"]; - } else { - events = getEvents(node2); - } - return { - eventIndex: 0, - events: events, - iterator: 0, - node: node2, - visitorIndex: 0, - visitors: [] - }; -} -function cleanMarks(node2) { - node2[isClean] = false; - if (node2.nodes) node2.nodes.forEach(function (i2) { - return cleanMarks(i2); - }); - return node2; -} -var postcss$2 = {}; -var LazyResult$2 = /*#__PURE__*/function () { - function LazyResult2(processor2, css, opts) { - var _this31 = this; - record_classCallCheck(this, LazyResult2); - this.stringified = false; - this.processed = false; - var root2; - if (record_typeof(css) === "object" && css !== null && (css.type === "root" || css.type === "document")) { - root2 = cleanMarks(css); - } else if (css instanceof LazyResult2 || css instanceof Result$2) { - root2 = cleanMarks(css.root); - if (css.map) { - if (typeof opts.map === "undefined") opts.map = {}; - if (!opts.map.inline) opts.map.inline = false; - opts.map.prev = css.map; - } - } else { - var parser2 = parse$2; - if (opts.syntax) parser2 = opts.syntax.parse; - if (opts.parser) parser2 = opts.parser; - if (parser2.parse) parser2 = parser2.parse; - try { - root2 = parser2(css, opts); - } catch (error) { - this.processed = true; - this.error = error; - } - if (root2 && !root2[my]) { - Container$1.rebuild(root2); - } - } - this.result = new Result$2(processor2, root2, opts); - this.helpers = record_objectSpread(record_objectSpread({}, postcss$2), {}, { - postcss: postcss$2, - result: this.result - }); - this.plugins = this.processor.plugins.map(function (plugin22) { - if (record_typeof(plugin22) === "object" && plugin22.prepare) { - return record_objectSpread(record_objectSpread({}, plugin22), plugin22.prepare(_this31.result)); - } else { - return plugin22; - } - }); - } - return record_createClass(LazyResult2, [{ - key: "async", - value: function async() { - if (this.error) return Promise.reject(this.error); - if (this.processed) return Promise.resolve(this.result); - if (!this.processing) { - this.processing = this.runAsync(); - } - return this.processing; - } - }, { - key: "catch", - value: function _catch(onRejected) { - return this.async().catch(onRejected); - } - }, { - key: "finally", - value: function _finally(onFinally) { - return this.async().then(onFinally, onFinally); - } - }, { - key: "getAsyncError", - value: function getAsyncError() { - throw new Error("Use process(css).then(cb) to work with async plugins"); - } - }, { - key: "handleError", - value: function handleError(error, node2) { - var plugin22 = this.result.lastPlugin; - try { - if (node2) node2.addToError(error); - this.error = error; - if (error.name === "CssSyntaxError" && !error.plugin) { - error.plugin = plugin22.postcssPlugin; - error.setMessage(); - } else if (plugin22.postcssVersion) { - if (false) { var b, a2, runtimeVer, pluginVer, pluginName; } - } - } catch (err) { - if (console && console.error) console.error(err); - } - return error; - } - }, { - key: "prepareVisitors", - value: function prepareVisitors() { - var _this32 = this; - this.listeners = {}; - var add = function add(plugin22, type, cb) { - if (!_this32.listeners[type]) _this32.listeners[type] = []; - _this32.listeners[type].push([plugin22, cb]); - }; - var _iterator40 = record_createForOfIteratorHelper(this.plugins), - _step40; - try { - for (_iterator40.s(); !(_step40 = _iterator40.n()).done;) { - var plugin22 = _step40.value; - if (record_typeof(plugin22) === "object") { - for (var event in plugin22) { - if (!PLUGIN_PROPS[event] && /^[A-Z]/.test(event)) { - throw new Error("Unknown event ".concat(event, " in ").concat(plugin22.postcssPlugin, ". Try to update PostCSS (").concat(this.processor.version, " now).")); - } - if (!NOT_VISITORS[event]) { - if (record_typeof(plugin22[event]) === "object") { - for (var filter in plugin22[event]) { - if (filter === "*") { - add(plugin22, event, plugin22[event][filter]); - } else { - add(plugin22, event + "-" + filter.toLowerCase(), plugin22[event][filter]); - } - } - } else if (typeof plugin22[event] === "function") { - add(plugin22, event, plugin22[event]); - } - } - } - } - } - } catch (err) { - _iterator40.e(err); - } finally { - _iterator40.f(); - } - this.hasListener = Object.keys(this.listeners).length > 0; - } - }, { - key: "runAsync", - value: function () { - var _runAsync2 = record_asyncToGenerator(/*#__PURE__*/record_regeneratorRuntime().mark(function _callee2() { - var _this33 = this; - var i2, plugin22, promise, root2, stack, _promise2, node2, _iterator41, _step41, _loop2; - return record_regeneratorRuntime().wrap(function _callee2$(_context4) { - while (1) switch (_context4.prev = _context4.next) { - case 0: - this.plugin = 0; - i2 = 0; - case 2: - if (!(i2 < this.plugins.length)) { - _context4.next = 17; - break; - } - plugin22 = this.plugins[i2]; - promise = this.runOnRoot(plugin22); - if (!record_isPromise(promise)) { - _context4.next = 14; - break; - } - _context4.prev = 6; - _context4.next = 9; - return promise; - case 9: - _context4.next = 14; - break; - case 11: - _context4.prev = 11; - _context4.t0 = _context4["catch"](6); - throw this.handleError(_context4.t0); - case 14: - i2++; - _context4.next = 2; - break; - case 17: - this.prepareVisitors(); - if (!this.hasListener) { - _context4.next = 56; - break; - } - root2 = this.result.root; - case 20: - if (root2[isClean]) { - _context4.next = 39; - break; - } - root2[isClean] = true; - stack = [toStack(root2)]; - case 23: - if (!(stack.length > 0)) { - _context4.next = 37; - break; - } - _promise2 = this.visitTick(stack); - if (!record_isPromise(_promise2)) { - _context4.next = 35; - break; - } - _context4.prev = 26; - _context4.next = 29; - return _promise2; - case 29: - _context4.next = 35; - break; - case 31: - _context4.prev = 31; - _context4.t1 = _context4["catch"](26); - node2 = stack[stack.length - 1].node; - throw this.handleError(_context4.t1, node2); - case 35: - _context4.next = 23; - break; - case 37: - _context4.next = 20; - break; - case 39: - if (!this.listeners.OnceExit) { - _context4.next = 56; - break; - } - _iterator41 = record_createForOfIteratorHelper(this.listeners.OnceExit); - _context4.prev = 41; - _loop2 = /*#__PURE__*/record_regeneratorRuntime().mark(function _loop2() { - var _step41$value, plugin22, visitor, roots; - return record_regeneratorRuntime().wrap(function _loop2$(_context3) { - while (1) switch (_context3.prev = _context3.next) { - case 0: - _step41$value = record_slicedToArray(_step41.value, 2), plugin22 = _step41$value[0], visitor = _step41$value[1]; - _this33.result.lastPlugin = plugin22; - _context3.prev = 2; - if (!(root2.type === "document")) { - _context3.next = 9; - break; - } - roots = root2.nodes.map(function (subRoot) { - return visitor(subRoot, _this33.helpers); - }); - _context3.next = 7; - return Promise.all(roots); - case 7: - _context3.next = 11; - break; - case 9: - _context3.next = 11; - return visitor(root2, _this33.helpers); - case 11: - _context3.next = 16; - break; - case 13: - _context3.prev = 13; - _context3.t0 = _context3["catch"](2); - throw _this33.handleError(_context3.t0); - case 16: - case "end": - return _context3.stop(); - } - }, _loop2, null, [[2, 13]]); - }); - _iterator41.s(); - case 44: - if ((_step41 = _iterator41.n()).done) { - _context4.next = 48; - break; - } - return _context4.delegateYield(_loop2(), "t2", 46); - case 46: - _context4.next = 44; - break; - case 48: - _context4.next = 53; - break; - case 50: - _context4.prev = 50; - _context4.t3 = _context4["catch"](41); - _iterator41.e(_context4.t3); - case 53: - _context4.prev = 53; - _iterator41.f(); - return _context4.finish(53); - case 56: - this.processed = true; - return _context4.abrupt("return", this.stringify()); - case 58: - case "end": - return _context4.stop(); - } - }, _callee2, this, [[6, 11], [26, 31], [41, 50, 53, 56]]); - })); - function runAsync() { - return _runAsync2.apply(this, arguments); - } - return runAsync; - }() - }, { - key: "runOnRoot", - value: function runOnRoot(plugin22) { - var _this34 = this; - this.result.lastPlugin = plugin22; - try { - if (record_typeof(plugin22) === "object" && plugin22.Once) { - if (this.result.root.type === "document") { - var roots = this.result.root.nodes.map(function (root2) { - return plugin22.Once(root2, _this34.helpers); - }); - if (record_isPromise(roots[0])) { - return Promise.all(roots); - } - return roots; - } - return plugin22.Once(this.result.root, this.helpers); - } else if (typeof plugin22 === "function") { - return plugin22(this.result.root, this.result); - } - } catch (error) { - throw this.handleError(error); - } - } - }, { - key: "stringify", - value: function stringify() { - if (this.error) throw this.error; - if (this.stringified) return this.result; - this.stringified = true; - this.sync(); - var opts = this.result.opts; - var str = stringify$2; - if (opts.syntax) str = opts.syntax.stringify; - if (opts.stringifier) str = opts.stringifier; - if (str.stringify) str = str.stringify; - var map = new MapGenerator$1(str, this.result.root, this.result.opts); - var data = map.generate(); - this.result.css = data[0]; - this.result.map = data[1]; - return this.result; - } - }, { - key: "sync", - value: function sync() { - if (this.error) throw this.error; - if (this.processed) return this.result; - this.processed = true; - if (this.processing) { - throw this.getAsyncError(); - } - var _iterator42 = record_createForOfIteratorHelper(this.plugins), - _step42; - try { - for (_iterator42.s(); !(_step42 = _iterator42.n()).done;) { - var plugin22 = _step42.value; - var promise = this.runOnRoot(plugin22); - if (record_isPromise(promise)) { - throw this.getAsyncError(); - } - } - } catch (err) { - _iterator42.e(err); - } finally { - _iterator42.f(); - } - this.prepareVisitors(); - if (this.hasListener) { - var root2 = this.result.root; - while (!root2[isClean]) { - root2[isClean] = true; - this.walkSync(root2); - } - if (this.listeners.OnceExit) { - if (root2.type === "document") { - var _iterator43 = record_createForOfIteratorHelper(root2.nodes), - _step43; - try { - for (_iterator43.s(); !(_step43 = _iterator43.n()).done;) { - var subRoot = _step43.value; - this.visitSync(this.listeners.OnceExit, subRoot); - } - } catch (err) { - _iterator43.e(err); - } finally { - _iterator43.f(); - } - } else { - this.visitSync(this.listeners.OnceExit, root2); - } - } - } - return this.result; - } - }, { - key: "then", - value: function then(onFulfilled, onRejected) { - if (false) {} - return this.async().then(onFulfilled, onRejected); - } - }, { - key: "toString", - value: function toString() { - return this.css; - } - }, { - key: "visitSync", - value: function visitSync(visitors, node2) { - var _iterator44 = record_createForOfIteratorHelper(visitors), - _step44; - try { - for (_iterator44.s(); !(_step44 = _iterator44.n()).done;) { - var _step44$value = record_slicedToArray(_step44.value, 2), - plugin22 = _step44$value[0], - visitor = _step44$value[1]; - this.result.lastPlugin = plugin22; - var promise = void 0; - try { - promise = visitor(node2, this.helpers); - } catch (e2) { - throw this.handleError(e2, node2.proxyOf); - } - if (node2.type !== "root" && node2.type !== "document" && !node2.parent) { - return true; - } - if (record_isPromise(promise)) { - throw this.getAsyncError(); - } - } - } catch (err) { - _iterator44.e(err); - } finally { - _iterator44.f(); - } - } - }, { - key: "visitTick", - value: function visitTick(stack) { - var visit2 = stack[stack.length - 1]; - var node2 = visit2.node, - visitors = visit2.visitors; - if (node2.type !== "root" && node2.type !== "document" && !node2.parent) { - stack.pop(); - return; - } - if (visitors.length > 0 && visit2.visitorIndex < visitors.length) { - var _visitors$visit2$visi2 = record_slicedToArray(visitors[visit2.visitorIndex], 2), - plugin22 = _visitors$visit2$visi2[0], - visitor = _visitors$visit2$visi2[1]; - visit2.visitorIndex += 1; - if (visit2.visitorIndex === visitors.length) { - visit2.visitors = []; - visit2.visitorIndex = 0; - } - this.result.lastPlugin = plugin22; - try { - return visitor(node2.toProxy(), this.helpers); - } catch (e2) { - throw this.handleError(e2, node2); - } - } - if (visit2.iterator !== 0) { - var iterator = visit2.iterator; - var child; - while (child = node2.nodes[node2.indexes[iterator]]) { - node2.indexes[iterator] += 1; - if (!child[isClean]) { - child[isClean] = true; - stack.push(toStack(child)); - return; - } - } - visit2.iterator = 0; - delete node2.indexes[iterator]; - } - var events = visit2.events; - while (visit2.eventIndex < events.length) { - var event = events[visit2.eventIndex]; - visit2.eventIndex += 1; - if (event === CHILDREN) { - if (node2.nodes && node2.nodes.length) { - node2[isClean] = true; - visit2.iterator = node2.getIterator(); - } - return; - } else if (this.listeners[event]) { - visit2.visitors = this.listeners[event]; - return; - } - } - stack.pop(); - } - }, { - key: "walkSync", - value: function walkSync(node2) { - var _this35 = this; - node2[isClean] = true; - var events = getEvents(node2); - var _iterator45 = record_createForOfIteratorHelper(events), - _step45; - try { - for (_iterator45.s(); !(_step45 = _iterator45.n()).done;) { - var event = _step45.value; - if (event === CHILDREN) { - if (node2.nodes) { - node2.each(function (child) { - if (!child[isClean]) _this35.walkSync(child); - }); - } - } else { - var visitors = this.listeners[event]; - if (visitors) { - if (this.visitSync(visitors, node2.toProxy())) return; - } - } - } - } catch (err) { - _iterator45.e(err); - } finally { - _iterator45.f(); - } - } - }, { - key: "warnings", - value: function warnings() { - return this.sync().warnings(); - } - }, { - key: "content", - get: function get() { - return this.stringify().content; - } - }, { - key: "css", - get: function get() { - return this.stringify().css; - } - }, { - key: "map", - get: function get() { - return this.stringify().map; - } - }, { - key: "messages", - get: function get() { - return this.sync().messages; - } - }, { - key: "opts", - get: function get() { - return this.result.opts; - } - }, { - key: "processor", - get: function get() { - return this.result.processor; - } - }, { - key: "root", - get: function get() { - return this.sync().root; - } - }, { - key: Symbol.toStringTag, - get: function get() { - return "LazyResult"; - } - }]); -}(); -LazyResult$2.registerPostcss = function (dependant) { - postcss$2 = dependant; -}; -var lazyResult = LazyResult$2; -LazyResult$2.default = LazyResult$2; -Root$3.registerLazyResult(LazyResult$2); -Document$2.registerLazyResult(LazyResult$2); -var MapGenerator22 = mapGenerator; -var stringify$1 = stringify_1; -var warnOnce22 = (/* unused pure expression or super */ null && (warnOnce$2)); -var parse$1 = parse_1; -var Result$1 = result; -var NoWorkResult$1 = /*#__PURE__*/function () { - function NoWorkResult2(processor2, css, opts) { - record_classCallCheck(this, NoWorkResult2); - css = css.toString(); - this.stringified = false; - this._processor = processor2; - this._css = css; - this._opts = opts; - this._map = void 0; - var root2; - var str = stringify$1; - this.result = new Result$1(this._processor, root2, this._opts); - this.result.css = css; - var self = this; - Object.defineProperty(this.result, "root", { - get: function get() { - return self.root; - } - }); - var map = new MapGenerator22(str, root2, this._opts, css); - if (map.isMap()) { - var _map$generate3 = map.generate(), - _map$generate4 = record_slicedToArray(_map$generate3, 2), - generatedCSS = _map$generate4[0], - generatedMap = _map$generate4[1]; - if (generatedCSS) { - this.result.css = generatedCSS; - } - if (generatedMap) { - this.result.map = generatedMap; - } - } else { - map.clearAnnotation(); - this.result.css = map.css; - } - } - return record_createClass(NoWorkResult2, [{ - key: "async", - value: function async() { - if (this.error) return Promise.reject(this.error); - return Promise.resolve(this.result); - } - }, { - key: "catch", - value: function _catch(onRejected) { - return this.async().catch(onRejected); - } - }, { - key: "finally", - value: function _finally(onFinally) { - return this.async().then(onFinally, onFinally); - } - }, { - key: "sync", - value: function sync() { - if (this.error) throw this.error; - return this.result; - } - }, { - key: "then", - value: function then(onFulfilled, onRejected) { - if (false) {} - return this.async().then(onFulfilled, onRejected); - } - }, { - key: "toString", - value: function toString() { - return this._css; - } - }, { - key: "warnings", - value: function warnings() { - return []; - } - }, { - key: "content", - get: function get() { - return this.result.css; - } - }, { - key: "css", - get: function get() { - return this.result.css; - } - }, { - key: "map", - get: function get() { - return this.result.map; - } - }, { - key: "messages", - get: function get() { - return []; - } - }, { - key: "opts", - get: function get() { - return this.result.opts; - } - }, { - key: "processor", - get: function get() { - return this.result.processor; - } - }, { - key: "root", - get: function get() { - if (this._root) { - return this._root; - } - var root2; - var parser2 = parse$1; - try { - root2 = parser2(this._css, this._opts); - } catch (error) { - this.error = error; - } - if (this.error) { - throw this.error; - } else { - this._root = root2; - return root2; - } - } - }, { - key: Symbol.toStringTag, - get: function get() { - return "NoWorkResult"; - } - }]); -}(); -var noWorkResult = NoWorkResult$1; -NoWorkResult$1.default = NoWorkResult$1; -var NoWorkResult22 = noWorkResult; -var LazyResult$1 = lazyResult; -var Document$1 = document$1; -var Root$2 = root; -var Processor$1 = /*#__PURE__*/function () { - function Processor2() { - var plugins = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : []; - record_classCallCheck(this, Processor2); - this.version = "8.4.38"; - this.plugins = this.normalize(plugins); - } - return record_createClass(Processor2, [{ - key: "normalize", - value: function normalize(plugins) { - var normalized = []; - var _iterator46 = record_createForOfIteratorHelper(plugins), - _step46; - try { - for (_iterator46.s(); !(_step46 = _iterator46.n()).done;) { - var i2 = _step46.value; - if (i2.postcss === true) { - i2 = i2(); - } else if (i2.postcss) { - i2 = i2.postcss; - } - if (record_typeof(i2) === "object" && Array.isArray(i2.plugins)) { - normalized = normalized.concat(i2.plugins); - } else if (record_typeof(i2) === "object" && i2.postcssPlugin) { - normalized.push(i2); - } else if (typeof i2 === "function") { - normalized.push(i2); - } else if (record_typeof(i2) === "object" && (i2.parse || i2.stringify)) { - if (false) {} - } else { - throw new Error(i2 + " is not a PostCSS plugin"); - } - } - } catch (err) { - _iterator46.e(err); - } finally { - _iterator46.f(); - } - return normalized; - } - }, { - key: "process", - value: function process(css) { - var opts = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {}; - if (!this.plugins.length && !opts.parser && !opts.stringifier && !opts.syntax) { - return new NoWorkResult22(this, css, opts); - } else { - return new LazyResult$1(this, css, opts); - } - } - }, { - key: "use", - value: function use(plugin22) { - this.plugins = this.plugins.concat(this.normalize([plugin22])); - return this; - } - }]); -}(); -var processor = Processor$1; -Processor$1.default = Processor$1; -Root$2.registerProcessor(Processor$1); -Document$1.registerProcessor(Processor$1); -var Declaration$1 = declaration; -var PreviousMap22 = previousMap; -var Comment$1 = comment; -var AtRule$1 = atRule; -var Input$1 = input; -var Root$1 = root; -var Rule$1 = rule; -function fromJSON$1(json, inputs) { - if (Array.isArray(json)) return json.map(function (n2) { - return fromJSON$1(n2); - }); - var ownInputs = json.inputs, - defaults = record_objectWithoutProperties(json, _excluded3); - if (ownInputs) { - inputs = []; - var _iterator47 = record_createForOfIteratorHelper(ownInputs), - _step47; - try { - for (_iterator47.s(); !(_step47 = _iterator47.n()).done;) { - var input2 = _step47.value; - var inputHydrated = record_objectSpread(record_objectSpread({}, input2), {}, { - __proto__: Input$1.prototype - }); - if (inputHydrated.map) { - inputHydrated.map = record_objectSpread(record_objectSpread({}, inputHydrated.map), {}, { - __proto__: PreviousMap22.prototype - }); - } - inputs.push(inputHydrated); - } - } catch (err) { - _iterator47.e(err); - } finally { - _iterator47.f(); - } - } - if (defaults.nodes) { - defaults.nodes = json.nodes.map(function (n2) { - return fromJSON$1(n2, inputs); - }); - } - if (defaults.source) { - var _defaults$source2 = defaults.source, - inputId = _defaults$source2.inputId, - source = record_objectWithoutProperties(_defaults$source2, _excluded4); - defaults.source = source; - if (inputId != null) { - defaults.source.input = inputs[inputId]; - } - } - if (defaults.type === "root") { - return new Root$1(defaults); - } else if (defaults.type === "decl") { - return new Declaration$1(defaults); - } else if (defaults.type === "rule") { - return new Rule$1(defaults); - } else if (defaults.type === "comment") { - return new Comment$1(defaults); - } else if (defaults.type === "atrule") { - return new AtRule$1(defaults); - } else { - throw new Error("Unknown node type: " + json.type); - } -} -var fromJSON_1 = fromJSON$1; -fromJSON$1.default = fromJSON$1; -var CssSyntaxError22 = cssSyntaxError; -var Declaration22 = declaration; -var LazyResult22 = lazyResult; -var Container22 = container; -var Processor22 = processor; -var record_stringify = stringify_1; -var fromJSON = fromJSON_1; -var Document222 = document$1; -var Warning22 = warning; -var Comment22 = comment; -var AtRule22 = atRule; -var Result22 = result; -var Input22 = input; -var record_parse = parse_1; -var list = list_1; -var Rule22 = rule; -var Root22 = root; -var Node22 = node; -function postcss() { - for (var _len16 = arguments.length, plugins = new Array(_len16), _key16 = 0; _key16 < _len16; _key16++) { - plugins[_key16] = arguments[_key16]; - } - if (plugins.length === 1 && Array.isArray(plugins[0])) { - plugins = plugins[0]; - } - return new Processor22(plugins); -} -postcss.plugin = function plugin2(name, initializer) { - var warningPrinted = false; - function creator() { - if (console && console.warn && !warningPrinted) { - warningPrinted = true; - console.warn(name + ": postcss.plugin was deprecated. Migration guide:\nhttps://evilmartians.com/chronicles/postcss-8-plugin-migration"); - if (process.env.LANG && process.env.LANG.startsWith("cn")) { - console.warn(name + ": 里面 postcss.plugin 被弃用. 迁移指南:\nhttps://www.w3ctech.com/topic/2226"); - } - } - var transformer = initializer.apply(void 0, arguments); - transformer.postcssPlugin = name; - transformer.postcssVersion = new Processor22().version; - return transformer; - } - var cache; - Object.defineProperty(creator, "postcss", { - get: function get() { - if (!cache) cache = creator(); - return cache; - } - }); - creator.process = function (css, processOpts, pluginOpts) { - return postcss([creator(pluginOpts)]).process(css, processOpts); - }; - return creator; -}; -postcss.stringify = record_stringify; -postcss.parse = record_parse; -postcss.fromJSON = fromJSON; -postcss.list = list; -postcss.comment = function (defaults) { - return new Comment22(defaults); -}; -postcss.atRule = function (defaults) { - return new AtRule22(defaults); -}; -postcss.decl = function (defaults) { - return new Declaration22(defaults); -}; -postcss.rule = function (defaults) { - return new Rule22(defaults); -}; -postcss.root = function (defaults) { - return new Root22(defaults); -}; -postcss.document = function (defaults) { - return new Document222(defaults); -}; -postcss.CssSyntaxError = CssSyntaxError22; -postcss.Declaration = Declaration22; -postcss.Container = Container22; -postcss.Processor = Processor22; -postcss.Document = Document222; -postcss.Comment = Comment22; -postcss.Warning = Warning22; -postcss.AtRule = AtRule22; -postcss.Result = Result22; -postcss.Input = Input22; -postcss.Rule = Rule22; -postcss.Root = Root22; -postcss.Node = Node22; -LazyResult22.registerPostcss(postcss); -var postcss_1 = postcss; -postcss.default = postcss; -var postcss$1 = /* @__PURE__ */getDefaultExportFromCjs(postcss_1); -postcss$1.stringify; -postcss$1.fromJSON; -postcss$1.plugin; -postcss$1.parse; -postcss$1.list; -postcss$1.document; -postcss$1.comment; -postcss$1.atRule; -postcss$1.rule; -postcss$1.decl; -postcss$1.root; -postcss$1.CssSyntaxError; -postcss$1.Declaration; -postcss$1.Container; -postcss$1.Processor; -postcss$1.Document; -postcss$1.Comment; -postcss$1.Warning; -postcss$1.AtRule; -postcss$1.Result; -postcss$1.Input; -postcss$1.Rule; -postcss$1.Root; -postcss$1.Node; -var BaseRRNode = /*#__PURE__*/function () { - // eslint-disable-next-line @typescript-eslint/no-unused-vars, @typescript-eslint/no-explicit-any - function BaseRRNode() { - record_classCallCheck(this, BaseRRNode); - __publicField2(this, "parentElement", null); - __publicField2(this, "parentNode", null); - __publicField2(this, "ownerDocument"); - __publicField2(this, "firstChild", null); - __publicField2(this, "lastChild", null); - __publicField2(this, "previousSibling", null); - __publicField2(this, "nextSibling", null); - __publicField2(this, "ELEMENT_NODE", 1); - __publicField2(this, "TEXT_NODE", 3); - __publicField2(this, "nodeType"); - __publicField2(this, "nodeName"); - __publicField2(this, "RRNodeType"); - } - return record_createClass(BaseRRNode, [{ - key: "childNodes", - get: function get() { - var childNodes2 = []; - var childIterator = this.firstChild; - while (childIterator) { - childNodes2.push(childIterator); - childIterator = childIterator.nextSibling; - } - return childNodes2; - } - }, { - key: "contains", - value: function contains(node2) { - if (!(node2 instanceof BaseRRNode)) return false;else if (node2.ownerDocument !== this.ownerDocument) return false;else if (node2 === this) return true; - while (node2.parentNode) { - if (node2.parentNode === this) return true; - node2 = node2.parentNode; - } - return false; - } - // eslint-disable-next-line @typescript-eslint/no-unused-vars - }, { - key: "appendChild", - value: function appendChild(_newChild) { - throw new Error("RRDomException: Failed to execute 'appendChild' on 'RRNode': This RRNode type does not support this method."); - } - // eslint-disable-next-line @typescript-eslint/no-unused-vars - }, { - key: "insertBefore", - value: function insertBefore(_newChild, _refChild) { - throw new Error("RRDomException: Failed to execute 'insertBefore' on 'RRNode': This RRNode type does not support this method."); - } - // eslint-disable-next-line @typescript-eslint/no-unused-vars - }, { - key: "removeChild", - value: function removeChild(_node) { - throw new Error("RRDomException: Failed to execute 'removeChild' on 'RRNode': This RRNode type does not support this method."); - } - }, { - key: "toString", - value: function toString() { - return "RRNode"; - } - }]); -}(); -var testableAccessors = { - Node: ["childNodes", "parentNode", "parentElement", "textContent"], - ShadowRoot: ["host", "styleSheets"], - Element: ["shadowRoot", "querySelector", "querySelectorAll"], - MutationObserver: [] -}; -var testableMethods = { - Node: ["contains", "getRootNode"], - ShadowRoot: ["getSelection"], - Element: [], - MutationObserver: ["constructor"] -}; -var untaintedBasePrototype = {}; -var isAngularZonePresent = function isAngularZonePresent() { - return !!globalThis.Zone; -}; -function getUntaintedPrototype(key) { - if (untaintedBasePrototype[key]) return untaintedBasePrototype[key]; - var defaultObj = globalThis[key]; - var defaultPrototype = defaultObj.prototype; - var accessorNames = key in testableAccessors ? testableAccessors[key] : void 0; - var isUntaintedAccessors = Boolean(accessorNames && - // @ts-expect-error 2345 - accessorNames.every(function (accessor) { - var _a2, _b; - return Boolean((_b = (_a2 = Object.getOwnPropertyDescriptor(defaultPrototype, accessor)) == null ? void 0 : _a2.get) == null ? void 0 : _b.toString().includes("[native code]")); - })); - var methodNames = key in testableMethods ? testableMethods[key] : void 0; - var isUntaintedMethods = Boolean(methodNames && methodNames.every( - // @ts-expect-error 2345 - function (method) { - var _a2; - return typeof defaultPrototype[method] === "function" && ((_a2 = defaultPrototype[method]) == null ? void 0 : _a2.toString().includes("[native code]")); - })); - if (isUntaintedAccessors && isUntaintedMethods && !isAngularZonePresent()) { - untaintedBasePrototype[key] = defaultObj.prototype; - return defaultObj.prototype; - } - try { - var iframeEl = document.createElement("iframe"); - document.body.appendChild(iframeEl); - var win = iframeEl.contentWindow; - if (!win) return defaultObj.prototype; - var untaintedObject = win[key].prototype; - document.body.removeChild(iframeEl); - if (!untaintedObject) return defaultPrototype; - return untaintedBasePrototype[key] = untaintedObject; - } catch (_unused2) { - return defaultPrototype; - } -} -var untaintedAccessorCache = {}; -function getUntaintedAccessor(key, instance, accessor) { - var _a2; - var cacheKey = "".concat(key, ".").concat(String(accessor)); - if (untaintedAccessorCache[cacheKey]) return untaintedAccessorCache[cacheKey].call(instance); - var untaintedPrototype = getUntaintedPrototype(key); - var untaintedAccessor = (_a2 = Object.getOwnPropertyDescriptor(untaintedPrototype, accessor)) == null ? void 0 : _a2.get; - if (!untaintedAccessor) return instance[accessor]; - untaintedAccessorCache[cacheKey] = untaintedAccessor; - return untaintedAccessor.call(instance); -} -var untaintedMethodCache = {}; -function getUntaintedMethod(key, instance, method) { - var cacheKey = "".concat(key, ".").concat(String(method)); - if (untaintedMethodCache[cacheKey]) return untaintedMethodCache[cacheKey].bind(instance); - var untaintedPrototype = getUntaintedPrototype(key); - var untaintedMethod = untaintedPrototype[method]; - if (typeof untaintedMethod !== "function") return instance[method]; - untaintedMethodCache[cacheKey] = untaintedMethod; - return untaintedMethod.bind(instance); -} -function childNodes(n2) { - return getUntaintedAccessor("Node", n2, "childNodes"); -} -function parentNode(n2) { - return getUntaintedAccessor("Node", n2, "parentNode"); -} -function parentElement(n2) { - return getUntaintedAccessor("Node", n2, "parentElement"); -} -function textContent(n2) { - return getUntaintedAccessor("Node", n2, "textContent"); -} -function contains(n2, other) { - return getUntaintedMethod("Node", n2, "contains")(other); -} -function getRootNode(n2) { - return getUntaintedMethod("Node", n2, "getRootNode")(); -} -function host(n2) { - if (!n2 || !("host" in n2)) return null; - return getUntaintedAccessor("ShadowRoot", n2, "host"); -} -function styleSheets(n2) { - return n2.styleSheets; -} -function shadowRoot(n2) { - if (!n2 || !("shadowRoot" in n2)) return null; - return getUntaintedAccessor("Element", n2, "shadowRoot"); -} -function querySelector(n2, selectors) { - return getUntaintedAccessor("Element", n2, "querySelector")(selectors); -} -function querySelectorAll(n2, selectors) { - return getUntaintedAccessor("Element", n2, "querySelectorAll")(selectors); -} -function mutationObserverCtor() { - return getUntaintedPrototype("MutationObserver").constructor; -} -var index = { - childNodes: childNodes, - parentNode: parentNode, - parentElement: parentElement, - textContent: textContent, - contains: contains, - getRootNode: getRootNode, - host: host, - styleSheets: styleSheets, - shadowRoot: shadowRoot, - querySelector: querySelector, - querySelectorAll: querySelectorAll, - mutationObserver: mutationObserverCtor -}; -function on(type, fn) { - var target = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : document; - var options = { - capture: true, - passive: true - }; - target.addEventListener(type, fn, options); - return function () { - return target.removeEventListener(type, fn, options); - }; -} -var DEPARTED_MIRROR_ACCESS_WARNING = "Please stop import mirror directly. Instead of that,\r\nnow you can use replayer.getMirror() to access the mirror instance of a replayer,\r\nor you can use record.mirror to access the mirror instance during recording."; -var _mirror = { - map: {}, - getId: function getId() { - console.error(DEPARTED_MIRROR_ACCESS_WARNING); - return -1; - }, - getNode: function getNode() { - console.error(DEPARTED_MIRROR_ACCESS_WARNING); - return null; - }, - removeNodeFromMap: function removeNodeFromMap() { - console.error(DEPARTED_MIRROR_ACCESS_WARNING); - }, - has: function has() { - console.error(DEPARTED_MIRROR_ACCESS_WARNING); - return false; - }, - reset: function reset() { - console.error(DEPARTED_MIRROR_ACCESS_WARNING); - } -}; -if (typeof window !== "undefined" && window.Proxy && window.Reflect) { - _mirror = new Proxy(_mirror, { - get: function get(target, prop, receiver) { - if (prop === "map") { - console.error(DEPARTED_MIRROR_ACCESS_WARNING); - } - return Reflect.get(target, prop, receiver); - } - }); -} -function throttle(func, wait) { - var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {}; - var timeout = null; - var previous = 0; - return function () { - for (var _len17 = arguments.length, args = new Array(_len17), _key17 = 0; _key17 < _len17; _key17++) { - args[_key17] = arguments[_key17]; - } - var now = Date.now(); - if (!previous && options.leading === false) { - previous = now; - } - var remaining = wait - (now - previous); - var context = this; - if (remaining <= 0 || remaining > wait) { - if (timeout) { - clearTimeout(timeout); - timeout = null; - } - previous = now; - func.apply(context, args); - } else if (!timeout && options.trailing !== false) { - timeout = setTimeout(function () { - previous = options.leading === false ? 0 : Date.now(); - timeout = null; - func.apply(context, args); - }, remaining); - } - }; -} -function hookSetter(target, key, d, isRevoked) { - var win = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : window; - var original = win.Object.getOwnPropertyDescriptor(target, key); - win.Object.defineProperty(target, key, isRevoked ? d : { - set: function set(value) { - var _this36 = this; - setTimeout(function () { - d.set.call(_this36, value); - }, 0); - if (original && original.set) { - original.set.call(this, value); - } - } - }); - return function () { - return hookSetter(target, key, original || {}, true); - }; -} -function patch(source, name, replacement) { - try { - if (!(name in source)) { - return function () {}; - } - var original = source[name]; - var wrapped = replacement(original); - if (typeof wrapped === "function") { - wrapped.prototype = wrapped.prototype || {}; - Object.defineProperties(wrapped, { - __rrweb_original__: { - enumerable: false, - value: original - } - }); - } - source[name] = wrapped; - return function () { - source[name] = original; - }; - } catch (_unused3) { - return function () {}; - } -} -var nowTimestamp = Date.now; -if (! /* @__PURE__ *//[1-9][0-9]{12}/.test(Date.now().toString())) { - nowTimestamp = function nowTimestamp() { - return (/* @__PURE__ */new Date()).getTime(); - }; -} -function getWindowScroll(win) { - var _a2, _b, _c, _d; - var doc = win.document; - return { - left: doc.scrollingElement ? doc.scrollingElement.scrollLeft : win.pageXOffset !== void 0 ? win.pageXOffset : doc.documentElement.scrollLeft || (doc == null ? void 0 : doc.body) && ((_a2 = index.parentElement(doc.body)) == null ? void 0 : _a2.scrollLeft) || ((_b = doc == null ? void 0 : doc.body) == null ? void 0 : _b.scrollLeft) || 0, - top: doc.scrollingElement ? doc.scrollingElement.scrollTop : win.pageYOffset !== void 0 ? win.pageYOffset : (doc == null ? void 0 : doc.documentElement.scrollTop) || (doc == null ? void 0 : doc.body) && ((_c = index.parentElement(doc.body)) == null ? void 0 : _c.scrollTop) || ((_d = doc == null ? void 0 : doc.body) == null ? void 0 : _d.scrollTop) || 0 - }; -} -function getWindowHeight() { - return window.innerHeight || document.documentElement && document.documentElement.clientHeight || document.body && document.body.clientHeight; -} -function getWindowWidth() { - return window.innerWidth || document.documentElement && document.documentElement.clientWidth || document.body && document.body.clientWidth; -} -function closestElementOfNode(node2) { - if (!node2) { - return null; - } - var el = node2.nodeType === node2.ELEMENT_NODE ? node2 : index.parentElement(node2); - return el; -} -function isBlocked(node2, blockClass, blockSelector, checkAncestors) { - if (!node2) { - return false; - } - var el = closestElementOfNode(node2); - if (!el) { - return false; - } - try { - if (typeof blockClass === "string") { - if (el.classList.contains(blockClass)) return true; - if (checkAncestors && el.closest("." + blockClass) !== null) return true; - } else { - if (classMatchesRegex(el, blockClass, checkAncestors)) return true; - } - } catch (e2) {} - if (blockSelector) { - if (el.matches(blockSelector)) return true; - if (checkAncestors && el.closest(blockSelector) !== null) return true; - } - return false; -} -function isSerialized(n2, mirror2) { - return mirror2.getId(n2) !== -1; -} -function isIgnored(n2, mirror2, slimDOMOptions) { - if (n2.tagName === "TITLE" && slimDOMOptions.headTitleMutations) { - return true; - } - return mirror2.getId(n2) === IGNORED_NODE; -} -function isAncestorRemoved(target, mirror2) { - if (isShadowRoot(target)) { - return false; - } - var id = mirror2.getId(target); - if (!mirror2.has(id)) { - return true; - } - var parent = index.parentNode(target); - if (parent && parent.nodeType === target.DOCUMENT_NODE) { - return false; - } - if (!parent) { - return true; - } - return isAncestorRemoved(parent, mirror2); -} -function legacy_isTouchEvent(event) { - return Boolean(event.changedTouches); -} -function polyfill$1() { - var win = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : window; - if ("NodeList" in win && !win.NodeList.prototype.forEach) { - win.NodeList.prototype.forEach = Array.prototype.forEach; - } - if ("DOMTokenList" in win && !win.DOMTokenList.prototype.forEach) { - win.DOMTokenList.prototype.forEach = Array.prototype.forEach; - } -} -function isSerializedIframe(n2, mirror2) { - return Boolean(n2.nodeName === "IFRAME" && mirror2.getMeta(n2)); -} -function isSerializedStylesheet(n2, mirror2) { - return Boolean(n2.nodeName === "LINK" && n2.nodeType === n2.ELEMENT_NODE && n2.getAttribute && n2.getAttribute("rel") === "stylesheet" && mirror2.getMeta(n2)); -} -function hasShadowRoot(n2) { - if (!n2) return false; - if (n2 instanceof BaseRRNode && "shadowRoot" in n2) { - return Boolean(n2.shadowRoot); - } - return Boolean(index.shadowRoot(n2)); -} -var StyleSheetMirror = /*#__PURE__*/function () { - function StyleSheetMirror() { - record_classCallCheck(this, StyleSheetMirror); - __publicField(this, "id", 1); - __publicField(this, "styleIDMap", /* @__PURE__ */new WeakMap()); - __publicField(this, "idStyleMap", /* @__PURE__ */new Map()); - } - return record_createClass(StyleSheetMirror, [{ - key: "getId", - value: function getId(stylesheet) { - var _this$styleIDMap$get; - return (_this$styleIDMap$get = this.styleIDMap.get(stylesheet)) !== null && _this$styleIDMap$get !== void 0 ? _this$styleIDMap$get : -1; - } - }, { - key: "has", - value: function has(stylesheet) { - return this.styleIDMap.has(stylesheet); - } - /** - * @returns If the stylesheet is in the mirror, returns the id of the stylesheet. If not, return the new assigned id. - */ - }, { - key: "add", - value: function add(stylesheet, id) { - if (this.has(stylesheet)) return this.getId(stylesheet); - var newId; - if (id === void 0) { - newId = this.id++; - } else newId = id; - this.styleIDMap.set(stylesheet, newId); - this.idStyleMap.set(newId, stylesheet); - return newId; - } - }, { - key: "getStyle", - value: function getStyle(id) { - return this.idStyleMap.get(id) || null; - } - }, { - key: "reset", - value: function reset() { - this.styleIDMap = /* @__PURE__ */new WeakMap(); - this.idStyleMap = /* @__PURE__ */new Map(); - this.id = 1; - } - }, { - key: "generateId", - value: function generateId() { - return this.id++; - } - }]); -}(); -function getShadowHost(n2) { - var _a2; - var shadowHost = null; - if ("getRootNode" in n2 && ((_a2 = index.getRootNode(n2)) == null ? void 0 : _a2.nodeType) === Node.DOCUMENT_FRAGMENT_NODE && index.host(index.getRootNode(n2))) shadowHost = index.host(index.getRootNode(n2)); - return shadowHost; -} -function getRootShadowHost(n2) { - var rootShadowHost = n2; - var shadowHost; - while (shadowHost = getShadowHost(rootShadowHost)) rootShadowHost = shadowHost; - return rootShadowHost; -} -function shadowHostInDom(n2) { - var doc = n2.ownerDocument; - if (!doc) return false; - var shadowHost = getRootShadowHost(n2); - return index.contains(doc, shadowHost); -} -function inDom(n2) { - var doc = n2.ownerDocument; - if (!doc) return false; - return index.contains(doc, n2) || shadowHostInDom(n2); -} -var EventType = /* @__PURE__ */function (EventType2) { - EventType2[EventType2["DomContentLoaded"] = 0] = "DomContentLoaded"; - EventType2[EventType2["Load"] = 1] = "Load"; - EventType2[EventType2["FullSnapshot"] = 2] = "FullSnapshot"; - EventType2[EventType2["IncrementalSnapshot"] = 3] = "IncrementalSnapshot"; - EventType2[EventType2["Meta"] = 4] = "Meta"; - EventType2[EventType2["Custom"] = 5] = "Custom"; - EventType2[EventType2["Plugin"] = 6] = "Plugin"; - return EventType2; -}(EventType || {}); -var IncrementalSource = /* @__PURE__ */function (IncrementalSource2) { - IncrementalSource2[IncrementalSource2["Mutation"] = 0] = "Mutation"; - IncrementalSource2[IncrementalSource2["MouseMove"] = 1] = "MouseMove"; - IncrementalSource2[IncrementalSource2["MouseInteraction"] = 2] = "MouseInteraction"; - IncrementalSource2[IncrementalSource2["Scroll"] = 3] = "Scroll"; - IncrementalSource2[IncrementalSource2["ViewportResize"] = 4] = "ViewportResize"; - IncrementalSource2[IncrementalSource2["Input"] = 5] = "Input"; - IncrementalSource2[IncrementalSource2["TouchMove"] = 6] = "TouchMove"; - IncrementalSource2[IncrementalSource2["MediaInteraction"] = 7] = "MediaInteraction"; - IncrementalSource2[IncrementalSource2["StyleSheetRule"] = 8] = "StyleSheetRule"; - IncrementalSource2[IncrementalSource2["CanvasMutation"] = 9] = "CanvasMutation"; - IncrementalSource2[IncrementalSource2["Font"] = 10] = "Font"; - IncrementalSource2[IncrementalSource2["Log"] = 11] = "Log"; - IncrementalSource2[IncrementalSource2["Drag"] = 12] = "Drag"; - IncrementalSource2[IncrementalSource2["StyleDeclaration"] = 13] = "StyleDeclaration"; - IncrementalSource2[IncrementalSource2["Selection"] = 14] = "Selection"; - IncrementalSource2[IncrementalSource2["AdoptedStyleSheet"] = 15] = "AdoptedStyleSheet"; - IncrementalSource2[IncrementalSource2["CustomElement"] = 16] = "CustomElement"; - return IncrementalSource2; -}(IncrementalSource || {}); -var MouseInteractions = /* @__PURE__ */function (MouseInteractions2) { - MouseInteractions2[MouseInteractions2["MouseUp"] = 0] = "MouseUp"; - MouseInteractions2[MouseInteractions2["MouseDown"] = 1] = "MouseDown"; - MouseInteractions2[MouseInteractions2["Click"] = 2] = "Click"; - MouseInteractions2[MouseInteractions2["ContextMenu"] = 3] = "ContextMenu"; - MouseInteractions2[MouseInteractions2["DblClick"] = 4] = "DblClick"; - MouseInteractions2[MouseInteractions2["Focus"] = 5] = "Focus"; - MouseInteractions2[MouseInteractions2["Blur"] = 6] = "Blur"; - MouseInteractions2[MouseInteractions2["TouchStart"] = 7] = "TouchStart"; - MouseInteractions2[MouseInteractions2["TouchMove_Departed"] = 8] = "TouchMove_Departed"; - MouseInteractions2[MouseInteractions2["TouchEnd"] = 9] = "TouchEnd"; - MouseInteractions2[MouseInteractions2["TouchCancel"] = 10] = "TouchCancel"; - return MouseInteractions2; -}(MouseInteractions || {}); -var PointerTypes = /* @__PURE__ */function (PointerTypes2) { - PointerTypes2[PointerTypes2["Mouse"] = 0] = "Mouse"; - PointerTypes2[PointerTypes2["Pen"] = 1] = "Pen"; - PointerTypes2[PointerTypes2["Touch"] = 2] = "Touch"; - return PointerTypes2; -}(PointerTypes || {}); -var CanvasContext = /* @__PURE__ */function (CanvasContext2) { - CanvasContext2[CanvasContext2["2D"] = 0] = "2D"; - CanvasContext2[CanvasContext2["WebGL"] = 1] = "WebGL"; - CanvasContext2[CanvasContext2["WebGL2"] = 2] = "WebGL2"; - return CanvasContext2; -}(CanvasContext || {}); -var MediaInteractions = /* @__PURE__ */function (MediaInteractions2) { - MediaInteractions2[MediaInteractions2["Play"] = 0] = "Play"; - MediaInteractions2[MediaInteractions2["Pause"] = 1] = "Pause"; - MediaInteractions2[MediaInteractions2["Seeked"] = 2] = "Seeked"; - MediaInteractions2[MediaInteractions2["VolumeChange"] = 3] = "VolumeChange"; - MediaInteractions2[MediaInteractions2["RateChange"] = 4] = "RateChange"; - return MediaInteractions2; -}(MediaInteractions || {}); -var NodeType = /* @__PURE__ */function (NodeType2) { - NodeType2[NodeType2["Document"] = 0] = "Document"; - NodeType2[NodeType2["DocumentType"] = 1] = "DocumentType"; - NodeType2[NodeType2["Element"] = 2] = "Element"; - NodeType2[NodeType2["Text"] = 3] = "Text"; - NodeType2[NodeType2["CDATA"] = 4] = "CDATA"; - NodeType2[NodeType2["Comment"] = 5] = "Comment"; - return NodeType2; -}(NodeType || {}); -function isNodeInLinkedList(n2) { - return "__ln" in n2; -} -var DoubleLinkedList = /*#__PURE__*/function () { - function DoubleLinkedList() { - record_classCallCheck(this, DoubleLinkedList); - __publicField(this, "length", 0); - __publicField(this, "head", null); - __publicField(this, "tail", null); - } - return record_createClass(DoubleLinkedList, [{ - key: "get", - value: function get(position) { - if (position >= this.length) { - throw new Error("Position outside of list range"); - } - var current = this.head; - for (var index2 = 0; index2 < position; index2++) { - current = (current == null ? void 0 : current.next) || null; - } - return current; - } - }, { - key: "addNode", - value: function addNode(n2) { - var node2 = { - value: n2, - previous: null, - next: null - }; - n2.__ln = node2; - if (n2.previousSibling && isNodeInLinkedList(n2.previousSibling)) { - var current = n2.previousSibling.__ln.next; - node2.next = current; - node2.previous = n2.previousSibling.__ln; - n2.previousSibling.__ln.next = node2; - if (current) { - current.previous = node2; - } - } else if (n2.nextSibling && isNodeInLinkedList(n2.nextSibling) && n2.nextSibling.__ln.previous) { - var _current = n2.nextSibling.__ln.previous; - node2.previous = _current; - node2.next = n2.nextSibling.__ln; - n2.nextSibling.__ln.previous = node2; - if (_current) { - _current.next = node2; - } - } else { - if (this.head) { - this.head.previous = node2; - } - node2.next = this.head; - this.head = node2; - } - if (node2.next === null) { - this.tail = node2; - } - this.length++; - } - }, { - key: "removeNode", - value: function removeNode(n2) { - var current = n2.__ln; - if (!this.head) { - return; - } - if (!current.previous) { - this.head = current.next; - if (this.head) { - this.head.previous = null; - } else { - this.tail = null; - } - } else { - current.previous.next = current.next; - if (current.next) { - current.next.previous = current.previous; - } else { - this.tail = current.previous; - } - } - if (n2.__ln) { - delete n2.__ln; - } - this.length--; - } - }]); -}(); -var moveKey = function moveKey(id, parentId) { - return "".concat(id, "@").concat(parentId); -}; -var MutationBuffer = /*#__PURE__*/function () { - function MutationBuffer() { - var _this37 = this; - record_classCallCheck(this, MutationBuffer); - __publicField(this, "frozen", false); - __publicField(this, "locked", false); - __publicField(this, "texts", []); - __publicField(this, "attributes", []); - __publicField(this, "attributeMap", /* @__PURE__ */new WeakMap()); - __publicField(this, "removes", []); - __publicField(this, "mapRemoves", []); - __publicField(this, "movedMap", {}); - __publicField(this, "addedSet", /* @__PURE__ */new Set()); - __publicField(this, "movedSet", /* @__PURE__ */new Set()); - __publicField(this, "droppedSet", /* @__PURE__ */new Set()); - __publicField(this, "removesSubTreeCache", /* @__PURE__ */new Set()); - __publicField(this, "mutationCb"); - __publicField(this, "blockClass"); - __publicField(this, "blockSelector"); - __publicField(this, "maskTextClass"); - __publicField(this, "maskTextSelector"); - __publicField(this, "inlineStylesheet"); - __publicField(this, "maskInputOptions"); - __publicField(this, "maskTextFn"); - __publicField(this, "maskInputFn"); - __publicField(this, "keepIframeSrcFn"); - __publicField(this, "recordCanvas"); - __publicField(this, "inlineImages"); - __publicField(this, "slimDOMOptions"); - __publicField(this, "dataURLOptions"); - __publicField(this, "doc"); - __publicField(this, "mirror"); - __publicField(this, "iframeManager"); - __publicField(this, "stylesheetManager"); - __publicField(this, "shadowDomManager"); - __publicField(this, "canvasManager"); - __publicField(this, "processedNodeManager"); - __publicField(this, "unattachedDoc"); - __publicField(this, "processMutations", function (mutations) { - mutations.forEach(_this37.processMutation); - _this37.emit(); - }); - __publicField(this, "emit", function () { - if (_this37.frozen || _this37.locked) { - return; - } - var adds = []; - var addedIds = /* @__PURE__ */new Set(); - var addList = new DoubleLinkedList(); - var getNextId = function getNextId(n2) { - var ns = n2; - var nextId = IGNORED_NODE; - while (nextId === IGNORED_NODE) { - ns = ns && ns.nextSibling; - nextId = ns && _this37.mirror.getId(ns); - } - return nextId; - }; - var pushAdd = function pushAdd(n2) { - var parent = index.parentNode(n2); - if (!parent || !inDom(n2)) { - return; - } - var cssCaptured = false; - if (n2.nodeType === Node.TEXT_NODE) { - var parentTag = parent.tagName; - if (parentTag === "TEXTAREA") { - return; - } else if (parentTag === "STYLE" && _this37.addedSet.has(parent)) { - cssCaptured = true; - } - } - var parentId = isShadowRoot(parent) ? _this37.mirror.getId(getShadowHost(n2)) : _this37.mirror.getId(parent); - var nextId = getNextId(n2); - if (parentId === -1 || nextId === -1) { - return addList.addNode(n2); - } - var sn = serializeNodeWithId(n2, { - doc: _this37.doc, - mirror: _this37.mirror, - blockClass: _this37.blockClass, - blockSelector: _this37.blockSelector, - maskTextClass: _this37.maskTextClass, - maskTextSelector: _this37.maskTextSelector, - skipChild: true, - newlyAddedElement: true, - inlineStylesheet: _this37.inlineStylesheet, - maskInputOptions: _this37.maskInputOptions, - maskTextFn: _this37.maskTextFn, - maskInputFn: _this37.maskInputFn, - slimDOMOptions: _this37.slimDOMOptions, - dataURLOptions: _this37.dataURLOptions, - recordCanvas: _this37.recordCanvas, - inlineImages: _this37.inlineImages, - onSerialize: function onSerialize(currentN) { - if (isSerializedIframe(currentN, _this37.mirror)) { - _this37.iframeManager.addIframe(currentN); - } - if (isSerializedStylesheet(currentN, _this37.mirror)) { - _this37.stylesheetManager.trackLinkElement(currentN); - } - if (hasShadowRoot(n2)) { - _this37.shadowDomManager.addShadowRoot(index.shadowRoot(n2), _this37.doc); - } - }, - onIframeLoad: function onIframeLoad(iframe, childSn) { - _this37.iframeManager.attachIframe(iframe, childSn); - _this37.shadowDomManager.observeAttachShadow(iframe); - }, - onStylesheetLoad: function onStylesheetLoad(link, childSn) { - _this37.stylesheetManager.attachLinkElement(link, childSn); - }, - cssCaptured: cssCaptured - }); - if (sn) { - adds.push({ - parentId: parentId, - nextId: nextId, - node: sn - }); - addedIds.add(sn.id); - } - }; - while (_this37.mapRemoves.length) { - _this37.mirror.removeNodeFromMap(_this37.mapRemoves.shift()); - } - var _iterator48 = record_createForOfIteratorHelper(_this37.movedSet), - _step48; - try { - for (_iterator48.s(); !(_step48 = _iterator48.n()).done;) { - var n2 = _step48.value; - if (isParentRemoved(_this37.removesSubTreeCache, n2, _this37.mirror) && !_this37.movedSet.has(index.parentNode(n2))) { - continue; - } - pushAdd(n2); - } - } catch (err) { - _iterator48.e(err); - } finally { - _iterator48.f(); - } - var _iterator49 = record_createForOfIteratorHelper(_this37.addedSet), - _step49; - try { - for (_iterator49.s(); !(_step49 = _iterator49.n()).done;) { - var _n = _step49.value; - if (!isAncestorInSet(_this37.droppedSet, _n) && !isParentRemoved(_this37.removesSubTreeCache, _n, _this37.mirror)) { - pushAdd(_n); - } else if (isAncestorInSet(_this37.movedSet, _n)) { - pushAdd(_n); - } else { - _this37.droppedSet.add(_n); - } - } - } catch (err) { - _iterator49.e(err); - } finally { - _iterator49.f(); - } - var candidate = null; - while (addList.length) { - var node2 = null; - if (candidate) { - var parentId = _this37.mirror.getId(index.parentNode(candidate.value)); - var nextId = getNextId(candidate.value); - if (parentId !== -1 && nextId !== -1) { - node2 = candidate; - } - } - if (!node2) { - var tailNode = addList.tail; - while (tailNode) { - var _node = tailNode; - tailNode = tailNode.previous; - if (_node) { - var _parentId = _this37.mirror.getId(index.parentNode(_node.value)); - var _nextId = getNextId(_node.value); - if (_nextId === -1) continue;else if (_parentId !== -1) { - node2 = _node; - break; - } else { - var unhandledNode = _node.value; - var parent = index.parentNode(unhandledNode); - if (parent && parent.nodeType === Node.DOCUMENT_FRAGMENT_NODE) { - var shadowHost = index.host(parent); - var parentId2 = _this37.mirror.getId(shadowHost); - if (parentId2 !== -1) { - node2 = _node; - break; - } - } - } - } - } - } - if (!node2) { - while (addList.head) { - addList.removeNode(addList.head.value); - } - break; - } - candidate = node2.previous; - addList.removeNode(node2.value); - pushAdd(node2.value); - } - var payload = { - texts: _this37.texts.map(function (text) { - var n2 = text.node; - var parent = index.parentNode(n2); - if (parent && parent.tagName === "TEXTAREA") { - _this37.genTextAreaValueMutation(parent); - } - return { - id: _this37.mirror.getId(n2), - value: text.value - }; - }).filter(function (text) { - return !addedIds.has(text.id); - }).filter(function (text) { - return _this37.mirror.has(text.id); - }), - attributes: _this37.attributes.map(function (attribute) { - var attributes = attribute.attributes; - if (typeof attributes.style === "string") { - var diffAsStr = JSON.stringify(attribute.styleDiff); - var unchangedAsStr = JSON.stringify(attribute._unchangedStyles); - if (diffAsStr.length < attributes.style.length) { - if ((diffAsStr + unchangedAsStr).split("var(").length === attributes.style.split("var(").length) { - attributes.style = attribute.styleDiff; - } - } - } - return { - id: _this37.mirror.getId(attribute.node), - attributes: attributes - }; - }).filter(function (attribute) { - return !addedIds.has(attribute.id); - }).filter(function (attribute) { - return _this37.mirror.has(attribute.id); - }), - removes: _this37.removes, - adds: adds - }; - if (!payload.texts.length && !payload.attributes.length && !payload.removes.length && !payload.adds.length) { - return; - } - _this37.texts = []; - _this37.attributes = []; - _this37.attributeMap = /* @__PURE__ */new WeakMap(); - _this37.removes = []; - _this37.addedSet = /* @__PURE__ */new Set(); - _this37.movedSet = /* @__PURE__ */new Set(); - _this37.droppedSet = /* @__PURE__ */new Set(); - _this37.removesSubTreeCache = /* @__PURE__ */new Set(); - _this37.movedMap = {}; - _this37.mutationCb(payload); - }); - __publicField(this, "genTextAreaValueMutation", function (textarea) { - var item = _this37.attributeMap.get(textarea); - if (!item) { - item = { - node: textarea, - attributes: {}, - styleDiff: {}, - _unchangedStyles: {} - }; - _this37.attributes.push(item); - _this37.attributeMap.set(textarea, item); - } - item.attributes.value = Array.from(index.childNodes(textarea), function (cn) { - return index.textContent(cn) || ""; - }).join(""); - }); - __publicField(this, "processMutation", function (m) { - if (isIgnored(m.target, _this37.mirror, _this37.slimDOMOptions)) { - return; - } - switch (m.type) { - case "characterData": - { - var value = index.textContent(m.target); - if (!isBlocked(m.target, _this37.blockClass, _this37.blockSelector, false) && value !== m.oldValue) { - _this37.texts.push({ - value: needMaskingText(m.target, _this37.maskTextClass, _this37.maskTextSelector, true - // checkAncestors - ) && value ? _this37.maskTextFn ? _this37.maskTextFn(value, closestElementOfNode(m.target)) : value.replace(/[\S]/g, "*") : value, - node: m.target - }); - } - break; - } - case "attributes": - { - var target = m.target; - var attributeName = m.attributeName; - var _value2 = m.target.getAttribute(attributeName); - if (attributeName === "value") { - var type = getInputType(target); - _value2 = maskInputValue({ - element: target, - maskInputOptions: _this37.maskInputOptions, - tagName: target.tagName, - type: type, - value: _value2, - maskInputFn: _this37.maskInputFn - }); - } - if (isBlocked(m.target, _this37.blockClass, _this37.blockSelector, false) || _value2 === m.oldValue) { - return; - } - var item = _this37.attributeMap.get(m.target); - if (target.tagName === "IFRAME" && attributeName === "src" && !_this37.keepIframeSrcFn(_value2)) { - if (!target.contentDocument) { - attributeName = "rr_src"; - } else { - return; - } - } - if (!item) { - item = { - node: m.target, - attributes: {}, - styleDiff: {}, - _unchangedStyles: {} - }; - _this37.attributes.push(item); - _this37.attributeMap.set(m.target, item); - } - if (attributeName === "type" && target.tagName === "INPUT" && (m.oldValue || "").toLowerCase() === "password") { - target.setAttribute("data-rr-is-password", "true"); - } - if (!ignoreAttribute(target.tagName, attributeName)) { - item.attributes[attributeName] = transformAttribute(_this37.doc, toLowerCase(target.tagName), toLowerCase(attributeName), _value2); - if (attributeName === "style") { - if (!_this37.unattachedDoc) { - try { - _this37.unattachedDoc = document.implementation.createHTMLDocument(); - } catch (e2) { - _this37.unattachedDoc = _this37.doc; - } - } - var old = _this37.unattachedDoc.createElement("span"); - if (m.oldValue) { - old.setAttribute("style", m.oldValue); - } - for (var _i11 = 0, _Array$from3 = Array.from(target.style); _i11 < _Array$from3.length; _i11++) { - var pname = _Array$from3[_i11]; - var newValue = target.style.getPropertyValue(pname); - var newPriority = target.style.getPropertyPriority(pname); - if (newValue !== old.style.getPropertyValue(pname) || newPriority !== old.style.getPropertyPriority(pname)) { - if (newPriority === "") { - item.styleDiff[pname] = newValue; - } else { - item.styleDiff[pname] = [newValue, newPriority]; - } - } else { - item._unchangedStyles[pname] = [newValue, newPriority]; - } - } - for (var _i12 = 0, _Array$from4 = Array.from(old.style); _i12 < _Array$from4.length; _i12++) { - var _pname = _Array$from4[_i12]; - if (target.style.getPropertyValue(_pname) === "") { - item.styleDiff[_pname] = false; - } - } - } else if (attributeName === "open" && target.tagName === "DIALOG") { - if (target.matches("dialog:modal")) { - item.attributes["rr_open_mode"] = "modal"; - } else { - item.attributes["rr_open_mode"] = "non-modal"; - } - } - } - break; - } - case "childList": - { - if (isBlocked(m.target, _this37.blockClass, _this37.blockSelector, true)) return; - if (m.target.tagName === "TEXTAREA") { - _this37.genTextAreaValueMutation(m.target); - return; - } - m.addedNodes.forEach(function (n2) { - return _this37.genAdds(n2, m.target); - }); - m.removedNodes.forEach(function (n2) { - var nodeId = _this37.mirror.getId(n2); - var parentId = isShadowRoot(m.target) ? _this37.mirror.getId(index.host(m.target)) : _this37.mirror.getId(m.target); - if (isBlocked(m.target, _this37.blockClass, _this37.blockSelector, false) || isIgnored(n2, _this37.mirror, _this37.slimDOMOptions) || !isSerialized(n2, _this37.mirror)) { - return; - } - if (_this37.addedSet.has(n2)) { - deepDelete(_this37.addedSet, n2); - _this37.droppedSet.add(n2); - } else if (_this37.addedSet.has(m.target) && nodeId === -1) ;else if (isAncestorRemoved(m.target, _this37.mirror)) ;else if (_this37.movedSet.has(n2) && _this37.movedMap[moveKey(nodeId, parentId)]) { - deepDelete(_this37.movedSet, n2); - } else { - _this37.removes.push({ - parentId: parentId, - id: nodeId, - isShadow: isShadowRoot(m.target) && isNativeShadowDom(m.target) ? true : void 0 - }); - processRemoves(n2, _this37.removesSubTreeCache); - } - _this37.mapRemoves.push(n2); - }); - break; - } - } - }); - __publicField(this, "genAdds", function (n2, target) { - if (_this37.processedNodeManager.inOtherBuffer(n2, _this37)) return; - if (_this37.addedSet.has(n2) || _this37.movedSet.has(n2)) return; - if (_this37.mirror.hasNode(n2)) { - if (isIgnored(n2, _this37.mirror, _this37.slimDOMOptions)) { - return; - } - _this37.movedSet.add(n2); - var targetId = null; - if (target && _this37.mirror.hasNode(target)) { - targetId = _this37.mirror.getId(target); - } - if (targetId && targetId !== -1) { - _this37.movedMap[moveKey(_this37.mirror.getId(n2), targetId)] = true; - } - } else { - _this37.addedSet.add(n2); - _this37.droppedSet.delete(n2); - } - if (!isBlocked(n2, _this37.blockClass, _this37.blockSelector, false)) { - index.childNodes(n2).forEach(function (childN) { - return _this37.genAdds(childN); - }); - if (hasShadowRoot(n2)) { - index.childNodes(index.shadowRoot(n2)).forEach(function (childN) { - _this37.processedNodeManager.add(childN, _this37); - _this37.genAdds(childN, n2); - }); - } - } - }); - } - return record_createClass(MutationBuffer, [{ - key: "init", - value: function init(options) { - var _this38 = this; - ["mutationCb", "blockClass", "blockSelector", "maskTextClass", "maskTextSelector", "inlineStylesheet", "maskInputOptions", "maskTextFn", "maskInputFn", "keepIframeSrcFn", "recordCanvas", "inlineImages", "slimDOMOptions", "dataURLOptions", "doc", "mirror", "iframeManager", "stylesheetManager", "shadowDomManager", "canvasManager", "processedNodeManager"].forEach(function (key) { - _this38[key] = options[key]; - }); - } - }, { - key: "freeze", - value: function freeze() { - this.frozen = true; - this.canvasManager.freeze(); - } - }, { - key: "unfreeze", - value: function unfreeze() { - this.frozen = false; - this.canvasManager.unfreeze(); - this.emit(); - } - }, { - key: "isFrozen", - value: function isFrozen() { - return this.frozen; - } - }, { - key: "lock", - value: function lock() { - this.locked = true; - this.canvasManager.lock(); - } - }, { - key: "unlock", - value: function unlock() { - this.locked = false; - this.canvasManager.unlock(); - this.emit(); - } - }, { - key: "reset", - value: function reset() { - this.shadowDomManager.reset(); - this.canvasManager.reset(); - } - }]); -}(); -function deepDelete(addsSet, n2) { - addsSet.delete(n2); - index.childNodes(n2).forEach(function (childN) { - return deepDelete(addsSet, childN); - }); -} -function processRemoves(n2, cache) { - var queue = [n2]; - while (queue.length) { - var next = queue.pop(); - if (cache.has(next)) continue; - cache.add(next); - index.childNodes(next).forEach(function (n22) { - return queue.push(n22); - }); - } - return; -} -function isParentRemoved(removes, n2, mirror2) { - if (removes.size === 0) return false; - return _isParentRemoved(removes, n2); -} -function _isParentRemoved(removes, n2, _mirror2) { - var node2 = index.parentNode(n2); - if (!node2) return false; - return removes.has(node2); -} -function isAncestorInSet(set, n2) { - if (set.size === 0) return false; - return _isAncestorInSet(set, n2); -} -function _isAncestorInSet(set, n2) { - var parent = index.parentNode(n2); - if (!parent) { - return false; - } - if (set.has(parent)) { - return true; - } - return _isAncestorInSet(set, parent); -} -var errorHandler; -function registerErrorHandler(handler) { - errorHandler = handler; -} -function unregisterErrorHandler() { - errorHandler = void 0; -} -var callbackWrapper = function callbackWrapper(cb) { - if (!errorHandler) { - return cb; - } - var rrwebWrapped = function rrwebWrapped() { - try { - return cb.apply(void 0, arguments); - } catch (error) { - if (errorHandler && errorHandler(error) === true) { - return; - } - throw error; - } - }; - return rrwebWrapped; -}; -var mutationBuffers = []; -function getEventTarget(event) { - try { - if ("composedPath" in event) { - var path = event.composedPath(); - if (path.length) { - return path[0]; - } - } else if ("path" in event && event.path.length) { - return event.path[0]; - } - } catch (_unused4) {} - return event && event.target; -} -function initMutationObserver(options, rootEl) { - var mutationBuffer = new MutationBuffer(); - mutationBuffers.push(mutationBuffer); - mutationBuffer.init(options); - var observer = new (mutationObserverCtor())(callbackWrapper(mutationBuffer.processMutations.bind(mutationBuffer))); - observer.observe(rootEl, { - attributes: true, - attributeOldValue: true, - characterData: true, - characterDataOldValue: true, - childList: true, - subtree: true - }); - return observer; -} -function initMoveObserver(_ref4) { - var mousemoveCb = _ref4.mousemoveCb, - sampling = _ref4.sampling, - doc = _ref4.doc, - mirror2 = _ref4.mirror; - if (sampling.mousemove === false) { - return function () {}; - } - var threshold = typeof sampling.mousemove === "number" ? sampling.mousemove : 50; - var callbackThreshold = typeof sampling.mousemoveCallback === "number" ? sampling.mousemoveCallback : 500; - var positions = []; - var timeBaseline; - var wrappedCb = throttle(callbackWrapper(function (source) { - var totalOffset = Date.now() - timeBaseline; - mousemoveCb(positions.map(function (p) { - p.timeOffset -= totalOffset; - return p; - }), source); - positions = []; - timeBaseline = null; - }), callbackThreshold); - var updatePosition = callbackWrapper(throttle(callbackWrapper(function (evt) { - var target = getEventTarget(evt); - var _ref5 = legacy_isTouchEvent(evt) ? evt.changedTouches[0] : evt, - clientX = _ref5.clientX, - clientY = _ref5.clientY; - if (!timeBaseline) { - timeBaseline = nowTimestamp(); - } - positions.push({ - x: clientX, - y: clientY, - id: mirror2.getId(target), - timeOffset: nowTimestamp() - timeBaseline - }); - wrappedCb(typeof DragEvent !== "undefined" && evt instanceof DragEvent ? IncrementalSource.Drag : evt instanceof MouseEvent ? IncrementalSource.MouseMove : IncrementalSource.TouchMove); - }), threshold, { - trailing: false - })); - var handlers = [on("mousemove", updatePosition, doc), on("touchmove", updatePosition, doc), on("drag", updatePosition, doc)]; - return callbackWrapper(function () { - handlers.forEach(function (h) { - return h(); - }); - }); -} -function initMouseInteractionObserver(_ref6) { - var mouseInteractionCb = _ref6.mouseInteractionCb, - doc = _ref6.doc, - mirror2 = _ref6.mirror, - blockClass = _ref6.blockClass, - blockSelector = _ref6.blockSelector, - sampling = _ref6.sampling; - if (sampling.mouseInteraction === false) { - return function () {}; - } - var disableMap = sampling.mouseInteraction === true || sampling.mouseInteraction === void 0 ? {} : sampling.mouseInteraction; - var handlers = []; - var currentPointerType = null; - var getHandler = function getHandler(eventKey) { - return function (event) { - var target = getEventTarget(event); - if (isBlocked(target, blockClass, blockSelector, true)) { - return; - } - var pointerType = null; - var thisEventKey = eventKey; - if ("pointerType" in event) { - switch (event.pointerType) { - case "mouse": - pointerType = PointerTypes.Mouse; - break; - case "touch": - pointerType = PointerTypes.Touch; - break; - case "pen": - pointerType = PointerTypes.Pen; - break; - } - if (pointerType === PointerTypes.Touch) { - if (MouseInteractions[eventKey] === MouseInteractions.MouseDown) { - thisEventKey = "TouchStart"; - } else if (MouseInteractions[eventKey] === MouseInteractions.MouseUp) { - thisEventKey = "TouchEnd"; - } - } else if (pointerType === PointerTypes.Pen) ; - } else if (legacy_isTouchEvent(event)) { - pointerType = PointerTypes.Touch; - } - if (pointerType !== null) { - currentPointerType = pointerType; - if (thisEventKey.startsWith("Touch") && pointerType === PointerTypes.Touch || thisEventKey.startsWith("Mouse") && pointerType === PointerTypes.Mouse) { - pointerType = null; - } - } else if (MouseInteractions[eventKey] === MouseInteractions.Click) { - pointerType = currentPointerType; - currentPointerType = null; - } - var e2 = legacy_isTouchEvent(event) ? event.changedTouches[0] : event; - if (!e2) { - return; - } - var id = mirror2.getId(target); - var clientX = e2.clientX, - clientY = e2.clientY; - callbackWrapper(mouseInteractionCb)(record_objectSpread({ - type: MouseInteractions[thisEventKey], - id: id, - x: clientX, - y: clientY - }, pointerType !== null && { - pointerType: pointerType - })); - }; - }; - Object.keys(MouseInteractions).filter(function (key) { - return Number.isNaN(Number(key)) && !key.endsWith("_Departed") && disableMap[key] !== false; - }).forEach(function (eventKey) { - var eventName = toLowerCase(eventKey); - var handler = getHandler(eventKey); - if (window.PointerEvent) { - switch (MouseInteractions[eventKey]) { - case MouseInteractions.MouseDown: - case MouseInteractions.MouseUp: - eventName = eventName.replace("mouse", "pointer"); - break; - case MouseInteractions.TouchStart: - case MouseInteractions.TouchEnd: - return; - } - } - handlers.push(on(eventName, handler, doc)); - }); - return callbackWrapper(function () { - handlers.forEach(function (h) { - return h(); - }); - }); -} -function initScrollObserver(_ref7) { - var scrollCb = _ref7.scrollCb, - doc = _ref7.doc, - mirror2 = _ref7.mirror, - blockClass = _ref7.blockClass, - blockSelector = _ref7.blockSelector, - sampling = _ref7.sampling; - var updatePosition = callbackWrapper(throttle(callbackWrapper(function (evt) { - var target = getEventTarget(evt); - if (!target || isBlocked(target, blockClass, blockSelector, true)) { - return; - } - var id = mirror2.getId(target); - if (target === doc && doc.defaultView) { - var scrollLeftTop = getWindowScroll(doc.defaultView); - scrollCb({ - id: id, - x: scrollLeftTop.left, - y: scrollLeftTop.top - }); - } else { - scrollCb({ - id: id, - x: target.scrollLeft, - y: target.scrollTop - }); - } - }), sampling.scroll || 100)); - return on("scroll", updatePosition, doc); -} -function initViewportResizeObserver(_ref8, _ref9) { - var viewportResizeCb = _ref8.viewportResizeCb; - var win = _ref9.win; - var lastH = -1; - var lastW = -1; - var updateDimension = callbackWrapper(throttle(callbackWrapper(function () { - var height = getWindowHeight(); - var width = getWindowWidth(); - if (lastH !== height || lastW !== width) { - viewportResizeCb({ - width: Number(width), - height: Number(height) - }); - lastH = height; - lastW = width; - } - }), 200)); - return on("resize", updateDimension, win); -} -var INPUT_TAGS = ["INPUT", "TEXTAREA", "SELECT"]; -var lastInputValueMap = /* @__PURE__ */new WeakMap(); -function initInputObserver(_ref10) { - var inputCb = _ref10.inputCb, - doc = _ref10.doc, - mirror2 = _ref10.mirror, - blockClass = _ref10.blockClass, - blockSelector = _ref10.blockSelector, - ignoreClass = _ref10.ignoreClass, - ignoreSelector = _ref10.ignoreSelector, - maskInputOptions = _ref10.maskInputOptions, - maskInputFn = _ref10.maskInputFn, - sampling = _ref10.sampling, - userTriggeredOnInput = _ref10.userTriggeredOnInput; - function eventHandler(event) { - var target = getEventTarget(event); - var userTriggered = event.isTrusted; - var tagName = target && target.tagName; - if (target && tagName === "OPTION") { - target = index.parentElement(target); - } - if (!target || !tagName || INPUT_TAGS.indexOf(tagName) < 0 || isBlocked(target, blockClass, blockSelector, true)) { - return; - } - if (target.classList.contains(ignoreClass) || ignoreSelector && target.matches(ignoreSelector)) { - return; - } - var text = target.value; - var isChecked = false; - var type = getInputType(target) || ""; - if (type === "radio" || type === "checkbox") { - isChecked = target.checked; - } else if (maskInputOptions[tagName.toLowerCase()] || maskInputOptions[type]) { - text = maskInputValue({ - element: target, - maskInputOptions: maskInputOptions, - tagName: tagName, - type: type, - value: text, - maskInputFn: maskInputFn - }); - } - cbWithDedup(target, userTriggeredOnInput ? { - text: text, - isChecked: isChecked, - userTriggered: userTriggered - } : { - text: text, - isChecked: isChecked - }); - var name = target.name; - if (type === "radio" && name && isChecked) { - doc.querySelectorAll("input[type=\"radio\"][name=\"".concat(name, "\"]")).forEach(function (el) { - if (el !== target) { - var text2 = el.value; - cbWithDedup(el, userTriggeredOnInput ? { - text: text2, - isChecked: !isChecked, - userTriggered: false - } : { - text: text2, - isChecked: !isChecked - }); - } - }); - } - } - function cbWithDedup(target, v2) { - var lastInputValue = lastInputValueMap.get(target); - if (!lastInputValue || lastInputValue.text !== v2.text || lastInputValue.isChecked !== v2.isChecked) { - lastInputValueMap.set(target, v2); - var id = mirror2.getId(target); - callbackWrapper(inputCb)(record_objectSpread(record_objectSpread({}, v2), {}, { - id: id - })); - } - } - var events = sampling.input === "last" ? ["change"] : ["input", "change"]; - var handlers = events.map(function (eventName) { - return on(eventName, callbackWrapper(eventHandler), doc); - }); - var currentWindow = doc.defaultView; - if (!currentWindow) { - return function () { - handlers.forEach(function (h) { - return h(); - }); - }; - } - var propertyDescriptor = currentWindow.Object.getOwnPropertyDescriptor(currentWindow.HTMLInputElement.prototype, "value"); - var hookProperties = [[currentWindow.HTMLInputElement.prototype, "value"], [currentWindow.HTMLInputElement.prototype, "checked"], [currentWindow.HTMLSelectElement.prototype, "value"], [currentWindow.HTMLTextAreaElement.prototype, "value"], - // Some UI library use selectedIndex to set select value - [currentWindow.HTMLSelectElement.prototype, "selectedIndex"], [currentWindow.HTMLOptionElement.prototype, "selected"]]; - if (propertyDescriptor && propertyDescriptor.set) { - handlers.push.apply(handlers, record_toConsumableArray(hookProperties.map(function (p) { - return hookSetter(p[0], p[1], { - set: function set() { - callbackWrapper(eventHandler)({ - target: this, - isTrusted: false - // userTriggered to false as this could well be programmatic - }); - } - }, false, currentWindow); - }))); - } - return callbackWrapper(function () { - handlers.forEach(function (h) { - return h(); - }); - }); -} -function getNestedCSSRulePositions(rule2) { - var positions = []; - function recurse(childRule, pos) { - if (hasNestedCSSRule("CSSGroupingRule") && childRule.parentRule instanceof CSSGroupingRule || hasNestedCSSRule("CSSMediaRule") && childRule.parentRule instanceof CSSMediaRule || hasNestedCSSRule("CSSSupportsRule") && childRule.parentRule instanceof CSSSupportsRule || hasNestedCSSRule("CSSConditionRule") && childRule.parentRule instanceof CSSConditionRule) { - var rules2 = Array.from(childRule.parentRule.cssRules); - var index2 = rules2.indexOf(childRule); - pos.unshift(index2); - } else if (childRule.parentStyleSheet) { - var _rules = Array.from(childRule.parentStyleSheet.cssRules); - var _index = _rules.indexOf(childRule); - pos.unshift(_index); - } - return pos; - } - return recurse(rule2, positions); -} -function getIdAndStyleId(sheet, mirror2, styleMirror) { - var id, styleId; - if (!sheet) return {}; - if (sheet.ownerNode) id = mirror2.getId(sheet.ownerNode);else styleId = styleMirror.getId(sheet); - return { - styleId: styleId, - id: id - }; -} -function initStyleSheetObserver(_ref11, _ref12) { - var styleSheetRuleCb = _ref11.styleSheetRuleCb, - mirror2 = _ref11.mirror, - stylesheetManager = _ref11.stylesheetManager; - var win = _ref12.win; - if (!win.CSSStyleSheet || !win.CSSStyleSheet.prototype) { - return function () {}; - } - var insertRule = win.CSSStyleSheet.prototype.insertRule; - win.CSSStyleSheet.prototype.insertRule = new Proxy(insertRule, { - apply: callbackWrapper(function (target, thisArg, argumentsList) { - var _argumentsList = record_slicedToArray(argumentsList, 2), - rule2 = _argumentsList[0], - index2 = _argumentsList[1]; - var _getIdAndStyleId = getIdAndStyleId(thisArg, mirror2, stylesheetManager.styleMirror), - id = _getIdAndStyleId.id, - styleId = _getIdAndStyleId.styleId; - if (id && id !== -1 || styleId && styleId !== -1) { - styleSheetRuleCb({ - id: id, - styleId: styleId, - adds: [{ - rule: rule2, - index: index2 - }] - }); - } - return target.apply(thisArg, argumentsList); - }) - }); - win.CSSStyleSheet.prototype.addRule = function (selector, styleBlock) { - var index2 = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : this.cssRules.length; - var rule2 = "".concat(selector, " { ").concat(styleBlock, " }"); - return win.CSSStyleSheet.prototype.insertRule.apply(this, [rule2, index2]); - }; - var deleteRule = win.CSSStyleSheet.prototype.deleteRule; - win.CSSStyleSheet.prototype.deleteRule = new Proxy(deleteRule, { - apply: callbackWrapper(function (target, thisArg, argumentsList) { - var _argumentsList2 = record_slicedToArray(argumentsList, 1), - index2 = _argumentsList2[0]; - var _getIdAndStyleId2 = getIdAndStyleId(thisArg, mirror2, stylesheetManager.styleMirror), - id = _getIdAndStyleId2.id, - styleId = _getIdAndStyleId2.styleId; - if (id && id !== -1 || styleId && styleId !== -1) { - styleSheetRuleCb({ - id: id, - styleId: styleId, - removes: [{ - index: index2 - }] - }); - } - return target.apply(thisArg, argumentsList); - }) - }); - win.CSSStyleSheet.prototype.removeRule = function (index2) { - return win.CSSStyleSheet.prototype.deleteRule.apply(this, [index2]); - }; - var replace; - if (win.CSSStyleSheet.prototype.replace) { - replace = win.CSSStyleSheet.prototype.replace; - win.CSSStyleSheet.prototype.replace = new Proxy(replace, { - apply: callbackWrapper(function (target, thisArg, argumentsList) { - var _argumentsList3 = record_slicedToArray(argumentsList, 1), - text = _argumentsList3[0]; - var _getIdAndStyleId3 = getIdAndStyleId(thisArg, mirror2, stylesheetManager.styleMirror), - id = _getIdAndStyleId3.id, - styleId = _getIdAndStyleId3.styleId; - if (id && id !== -1 || styleId && styleId !== -1) { - styleSheetRuleCb({ - id: id, - styleId: styleId, - replace: text - }); - } - return target.apply(thisArg, argumentsList); - }) - }); - } - var replaceSync; - if (win.CSSStyleSheet.prototype.replaceSync) { - replaceSync = win.CSSStyleSheet.prototype.replaceSync; - win.CSSStyleSheet.prototype.replaceSync = new Proxy(replaceSync, { - apply: callbackWrapper(function (target, thisArg, argumentsList) { - var _argumentsList4 = record_slicedToArray(argumentsList, 1), - text = _argumentsList4[0]; - var _getIdAndStyleId4 = getIdAndStyleId(thisArg, mirror2, stylesheetManager.styleMirror), - id = _getIdAndStyleId4.id, - styleId = _getIdAndStyleId4.styleId; - if (id && id !== -1 || styleId && styleId !== -1) { - styleSheetRuleCb({ - id: id, - styleId: styleId, - replaceSync: text - }); - } - return target.apply(thisArg, argumentsList); - }) - }); - } - var supportedNestedCSSRuleTypes = {}; - if (canMonkeyPatchNestedCSSRule("CSSGroupingRule")) { - supportedNestedCSSRuleTypes.CSSGroupingRule = win.CSSGroupingRule; - } else { - if (canMonkeyPatchNestedCSSRule("CSSMediaRule")) { - supportedNestedCSSRuleTypes.CSSMediaRule = win.CSSMediaRule; - } - if (canMonkeyPatchNestedCSSRule("CSSConditionRule")) { - supportedNestedCSSRuleTypes.CSSConditionRule = win.CSSConditionRule; - } - if (canMonkeyPatchNestedCSSRule("CSSSupportsRule")) { - supportedNestedCSSRuleTypes.CSSSupportsRule = win.CSSSupportsRule; - } - } - var unmodifiedFunctions = {}; - Object.entries(supportedNestedCSSRuleTypes).forEach(function (_ref13) { - var _ref14 = record_slicedToArray(_ref13, 2), - typeKey = _ref14[0], - type = _ref14[1]; - unmodifiedFunctions[typeKey] = { - // eslint-disable-next-line @typescript-eslint/unbound-method - insertRule: type.prototype.insertRule, - // eslint-disable-next-line @typescript-eslint/unbound-method - deleteRule: type.prototype.deleteRule - }; - type.prototype.insertRule = new Proxy(unmodifiedFunctions[typeKey].insertRule, { - apply: callbackWrapper(function (target, thisArg, argumentsList) { - var _argumentsList5 = record_slicedToArray(argumentsList, 2), - rule2 = _argumentsList5[0], - index2 = _argumentsList5[1]; - var _getIdAndStyleId5 = getIdAndStyleId(thisArg.parentStyleSheet, mirror2, stylesheetManager.styleMirror), - id = _getIdAndStyleId5.id, - styleId = _getIdAndStyleId5.styleId; - if (id && id !== -1 || styleId && styleId !== -1) { - styleSheetRuleCb({ - id: id, - styleId: styleId, - adds: [{ - rule: rule2, - index: [].concat(record_toConsumableArray(getNestedCSSRulePositions(thisArg)), [index2 || 0 - // defaults to 0 - ]) - }] - }); - } - return target.apply(thisArg, argumentsList); - }) - }); - type.prototype.deleteRule = new Proxy(unmodifiedFunctions[typeKey].deleteRule, { - apply: callbackWrapper(function (target, thisArg, argumentsList) { - var _argumentsList6 = record_slicedToArray(argumentsList, 1), - index2 = _argumentsList6[0]; - var _getIdAndStyleId6 = getIdAndStyleId(thisArg.parentStyleSheet, mirror2, stylesheetManager.styleMirror), - id = _getIdAndStyleId6.id, - styleId = _getIdAndStyleId6.styleId; - if (id && id !== -1 || styleId && styleId !== -1) { - styleSheetRuleCb({ - id: id, - styleId: styleId, - removes: [{ - index: [].concat(record_toConsumableArray(getNestedCSSRulePositions(thisArg)), [index2]) - }] - }); - } - return target.apply(thisArg, argumentsList); - }) - }); - }); - return callbackWrapper(function () { - win.CSSStyleSheet.prototype.insertRule = insertRule; - win.CSSStyleSheet.prototype.deleteRule = deleteRule; - replace && (win.CSSStyleSheet.prototype.replace = replace); - replaceSync && (win.CSSStyleSheet.prototype.replaceSync = replaceSync); - Object.entries(supportedNestedCSSRuleTypes).forEach(function (_ref15) { - var _ref16 = record_slicedToArray(_ref15, 2), - typeKey = _ref16[0], - type = _ref16[1]; - type.prototype.insertRule = unmodifiedFunctions[typeKey].insertRule; - type.prototype.deleteRule = unmodifiedFunctions[typeKey].deleteRule; - }); - }); -} -function initAdoptedStyleSheetObserver(_ref17, host2) { - var mirror2 = _ref17.mirror, - stylesheetManager = _ref17.stylesheetManager; - var _a2, _b, _c; - var hostId = null; - if (host2.nodeName === "#document") hostId = mirror2.getId(host2);else hostId = mirror2.getId(index.host(host2)); - var patchTarget = host2.nodeName === "#document" ? (_a2 = host2.defaultView) == null ? void 0 : _a2.Document : (_c = (_b = host2.ownerDocument) == null ? void 0 : _b.defaultView) == null ? void 0 : _c.ShadowRoot; - var originalPropertyDescriptor = (patchTarget == null ? void 0 : patchTarget.prototype) ? Object.getOwnPropertyDescriptor(patchTarget == null ? void 0 : patchTarget.prototype, "adoptedStyleSheets") : void 0; - if (hostId === null || hostId === -1 || !patchTarget || !originalPropertyDescriptor) return function () {}; - Object.defineProperty(host2, "adoptedStyleSheets", { - configurable: originalPropertyDescriptor.configurable, - enumerable: originalPropertyDescriptor.enumerable, - get: function get() { - var _a3; - return (_a3 = originalPropertyDescriptor.get) == null ? void 0 : _a3.call(this); - }, - set: function set(sheets) { - var _a3; - var result2 = (_a3 = originalPropertyDescriptor.set) == null ? void 0 : _a3.call(this, sheets); - if (hostId !== null && hostId !== -1) { - try { - stylesheetManager.adoptStyleSheets(sheets, hostId); - } catch (e2) {} - } - return result2; - } - }); - return callbackWrapper(function () { - Object.defineProperty(host2, "adoptedStyleSheets", { - configurable: originalPropertyDescriptor.configurable, - enumerable: originalPropertyDescriptor.enumerable, - // eslint-disable-next-line @typescript-eslint/unbound-method - get: originalPropertyDescriptor.get, - // eslint-disable-next-line @typescript-eslint/unbound-method - set: originalPropertyDescriptor.set - }); - }); -} -function initStyleDeclarationObserver(_ref18, _ref19) { - var styleDeclarationCb = _ref18.styleDeclarationCb, - mirror2 = _ref18.mirror, - ignoreCSSAttributes = _ref18.ignoreCSSAttributes, - stylesheetManager = _ref18.stylesheetManager; - var win = _ref19.win; - var setProperty = win.CSSStyleDeclaration.prototype.setProperty; - win.CSSStyleDeclaration.prototype.setProperty = new Proxy(setProperty, { - apply: callbackWrapper(function (target, thisArg, argumentsList) { - var _a2; - var _argumentsList7 = record_slicedToArray(argumentsList, 3), - property = _argumentsList7[0], - value = _argumentsList7[1], - priority = _argumentsList7[2]; - if (ignoreCSSAttributes.has(property)) { - return setProperty.apply(thisArg, [property, value, priority]); - } - var _getIdAndStyleId7 = getIdAndStyleId((_a2 = thisArg.parentRule) == null ? void 0 : _a2.parentStyleSheet, mirror2, stylesheetManager.styleMirror), - id = _getIdAndStyleId7.id, - styleId = _getIdAndStyleId7.styleId; - if (id && id !== -1 || styleId && styleId !== -1) { - styleDeclarationCb({ - id: id, - styleId: styleId, - set: { - property: property, - value: value, - priority: priority - }, - // eslint-disable-next-line @typescript-eslint/no-non-null-assertion - index: getNestedCSSRulePositions(thisArg.parentRule) - }); - } - return target.apply(thisArg, argumentsList); - }) - }); - var removeProperty = win.CSSStyleDeclaration.prototype.removeProperty; - win.CSSStyleDeclaration.prototype.removeProperty = new Proxy(removeProperty, { - apply: callbackWrapper(function (target, thisArg, argumentsList) { - var _a2; - var _argumentsList8 = record_slicedToArray(argumentsList, 1), - property = _argumentsList8[0]; - if (ignoreCSSAttributes.has(property)) { - return removeProperty.apply(thisArg, [property]); - } - var _getIdAndStyleId8 = getIdAndStyleId((_a2 = thisArg.parentRule) == null ? void 0 : _a2.parentStyleSheet, mirror2, stylesheetManager.styleMirror), - id = _getIdAndStyleId8.id, - styleId = _getIdAndStyleId8.styleId; - if (id && id !== -1 || styleId && styleId !== -1) { - styleDeclarationCb({ - id: id, - styleId: styleId, - remove: { - property: property - }, - // eslint-disable-next-line @typescript-eslint/no-non-null-assertion - index: getNestedCSSRulePositions(thisArg.parentRule) - }); - } - return target.apply(thisArg, argumentsList); - }) - }); - return callbackWrapper(function () { - win.CSSStyleDeclaration.prototype.setProperty = setProperty; - win.CSSStyleDeclaration.prototype.removeProperty = removeProperty; - }); -} -function initMediaInteractionObserver(_ref20) { - var mediaInteractionCb = _ref20.mediaInteractionCb, - blockClass = _ref20.blockClass, - blockSelector = _ref20.blockSelector, - mirror2 = _ref20.mirror, - sampling = _ref20.sampling, - doc = _ref20.doc; - var handler = callbackWrapper(function (type) { - return throttle(callbackWrapper(function (event) { - var target = getEventTarget(event); - if (!target || isBlocked(target, blockClass, blockSelector, true)) { - return; - } - var currentTime = target.currentTime, - volume = target.volume, - muted = target.muted, - playbackRate = target.playbackRate, - loop = target.loop; - mediaInteractionCb({ - type: type, - id: mirror2.getId(target), - currentTime: currentTime, - volume: volume, - muted: muted, - playbackRate: playbackRate, - loop: loop - }); - }), sampling.media || 500); - }); - var handlers = [on("play", handler(MediaInteractions.Play), doc), on("pause", handler(MediaInteractions.Pause), doc), on("seeked", handler(MediaInteractions.Seeked), doc), on("volumechange", handler(MediaInteractions.VolumeChange), doc), on("ratechange", handler(MediaInteractions.RateChange), doc)]; - return callbackWrapper(function () { - handlers.forEach(function (h) { - return h(); - }); - }); -} -function initFontObserver(_ref21) { - var fontCb = _ref21.fontCb, - doc = _ref21.doc; - var win = doc.defaultView; - if (!win) { - return function () {}; - } - var handlers = []; - var fontMap = /* @__PURE__ */new WeakMap(); - var originalFontFace = win.FontFace; - win.FontFace = function FontFace2(family, source, descriptors) { - var fontFace = new originalFontFace(family, source, descriptors); - fontMap.set(fontFace, { - family: family, - buffer: typeof source !== "string", - descriptors: descriptors, - fontSource: typeof source === "string" ? source : JSON.stringify(Array.from(new Uint8Array(source))) - }); - return fontFace; - }; - var restoreHandler = patch(doc.fonts, "add", function (original) { - return function (fontFace) { - setTimeout(callbackWrapper(function () { - var p = fontMap.get(fontFace); - if (p) { - fontCb(p); - fontMap.delete(fontFace); - } - }), 0); - return original.apply(this, [fontFace]); - }; - }); - handlers.push(function () { - win.FontFace = originalFontFace; - }); - handlers.push(restoreHandler); - return callbackWrapper(function () { - handlers.forEach(function (h) { - return h(); - }); - }); -} -function initSelectionObserver(param) { - var doc = param.doc, - mirror2 = param.mirror, - blockClass = param.blockClass, - blockSelector = param.blockSelector, - selectionCb = param.selectionCb; - var collapsed = true; - var updateSelection = callbackWrapper(function () { - var selection = doc.getSelection(); - if (!selection || collapsed && (selection == null ? void 0 : selection.isCollapsed)) return; - collapsed = selection.isCollapsed || false; - var ranges = []; - var count = selection.rangeCount || 0; - for (var i2 = 0; i2 < count; i2++) { - var range = selection.getRangeAt(i2); - var startContainer = range.startContainer, - startOffset = range.startOffset, - endContainer = range.endContainer, - endOffset = range.endOffset; - var blocked = isBlocked(startContainer, blockClass, blockSelector, true) || isBlocked(endContainer, blockClass, blockSelector, true); - if (blocked) continue; - ranges.push({ - start: mirror2.getId(startContainer), - startOffset: startOffset, - end: mirror2.getId(endContainer), - endOffset: endOffset - }); - } - selectionCb({ - ranges: ranges - }); - }); - updateSelection(); - return on("selectionchange", updateSelection); -} -function initCustomElementObserver(_ref22) { - var doc = _ref22.doc, - customElementCb = _ref22.customElementCb; - var win = doc.defaultView; - if (!win || !win.customElements) return function () {}; - var restoreHandler = patch(win.customElements, "define", function (original) { - return function (name, constructor, options) { - try { - customElementCb({ - define: { - name: name - } - }); - } catch (e2) { - console.warn("Custom element callback failed for ".concat(name)); - } - return original.apply(this, [name, constructor, options]); - }; - }); - return restoreHandler; -} -function mergeHooks(o2, hooks) { - var mutationCb = o2.mutationCb, - mousemoveCb = o2.mousemoveCb, - mouseInteractionCb = o2.mouseInteractionCb, - scrollCb = o2.scrollCb, - viewportResizeCb = o2.viewportResizeCb, - inputCb = o2.inputCb, - mediaInteractionCb = o2.mediaInteractionCb, - styleSheetRuleCb = o2.styleSheetRuleCb, - styleDeclarationCb = o2.styleDeclarationCb, - canvasMutationCb = o2.canvasMutationCb, - fontCb = o2.fontCb, - selectionCb = o2.selectionCb, - customElementCb = o2.customElementCb; - o2.mutationCb = function () { - if (hooks.mutation) { - hooks.mutation.apply(hooks, arguments); - } - mutationCb.apply(void 0, arguments); - }; - o2.mousemoveCb = function () { - if (hooks.mousemove) { - hooks.mousemove.apply(hooks, arguments); - } - mousemoveCb.apply(void 0, arguments); - }; - o2.mouseInteractionCb = function () { - if (hooks.mouseInteraction) { - hooks.mouseInteraction.apply(hooks, arguments); - } - mouseInteractionCb.apply(void 0, arguments); - }; - o2.scrollCb = function () { - if (hooks.scroll) { - hooks.scroll.apply(hooks, arguments); - } - scrollCb.apply(void 0, arguments); - }; - o2.viewportResizeCb = function () { - if (hooks.viewportResize) { - hooks.viewportResize.apply(hooks, arguments); - } - viewportResizeCb.apply(void 0, arguments); - }; - o2.inputCb = function () { - if (hooks.input) { - hooks.input.apply(hooks, arguments); - } - inputCb.apply(void 0, arguments); - }; - o2.mediaInteractionCb = function () { - if (hooks.mediaInteaction) { - hooks.mediaInteaction.apply(hooks, arguments); - } - mediaInteractionCb.apply(void 0, arguments); - }; - o2.styleSheetRuleCb = function () { - if (hooks.styleSheetRule) { - hooks.styleSheetRule.apply(hooks, arguments); - } - styleSheetRuleCb.apply(void 0, arguments); - }; - o2.styleDeclarationCb = function () { - if (hooks.styleDeclaration) { - hooks.styleDeclaration.apply(hooks, arguments); - } - styleDeclarationCb.apply(void 0, arguments); - }; - o2.canvasMutationCb = function () { - if (hooks.canvasMutation) { - hooks.canvasMutation.apply(hooks, arguments); - } - canvasMutationCb.apply(void 0, arguments); - }; - o2.fontCb = function () { - if (hooks.font) { - hooks.font.apply(hooks, arguments); - } - fontCb.apply(void 0, arguments); - }; - o2.selectionCb = function () { - if (hooks.selection) { - hooks.selection.apply(hooks, arguments); - } - selectionCb.apply(void 0, arguments); - }; - o2.customElementCb = function () { - if (hooks.customElement) { - hooks.customElement.apply(hooks, arguments); - } - customElementCb.apply(void 0, arguments); - }; -} -function initObservers(o2) { - var hooks = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {}; - var currentWindow = o2.doc.defaultView; - if (!currentWindow) { - return function () {}; - } - mergeHooks(o2, hooks); - var mutationObserver; - if (o2.recordDOM) { - mutationObserver = initMutationObserver(o2, o2.doc); - } - var mousemoveHandler = initMoveObserver(o2); - var mouseInteractionHandler = initMouseInteractionObserver(o2); - var scrollHandler = initScrollObserver(o2); - var viewportResizeHandler = initViewportResizeObserver(o2, { - win: currentWindow - }); - var inputHandler = initInputObserver(o2); - var mediaInteractionHandler = initMediaInteractionObserver(o2); - var styleSheetObserver = function styleSheetObserver() {}; - var adoptedStyleSheetObserver = function adoptedStyleSheetObserver() {}; - var styleDeclarationObserver = function styleDeclarationObserver() {}; - var fontObserver = function fontObserver() {}; - if (o2.recordDOM) { - styleSheetObserver = initStyleSheetObserver(o2, { - win: currentWindow - }); - adoptedStyleSheetObserver = initAdoptedStyleSheetObserver(o2, o2.doc); - styleDeclarationObserver = initStyleDeclarationObserver(o2, { - win: currentWindow - }); - if (o2.collectFonts) { - fontObserver = initFontObserver(o2); - } - } - var selectionObserver = initSelectionObserver(o2); - var customElementObserver = initCustomElementObserver(o2); - var pluginHandlers = []; - var _iterator50 = record_createForOfIteratorHelper(o2.plugins), - _step50; - try { - for (_iterator50.s(); !(_step50 = _iterator50.n()).done;) { - var plugin3 = _step50.value; - pluginHandlers.push(plugin3.observer(plugin3.callback, currentWindow, plugin3.options)); - } - } catch (err) { - _iterator50.e(err); - } finally { - _iterator50.f(); - } - return callbackWrapper(function () { - mutationBuffers.forEach(function (b) { - return b.reset(); - }); - mutationObserver == null ? void 0 : mutationObserver.disconnect(); - mousemoveHandler(); - mouseInteractionHandler(); - scrollHandler(); - viewportResizeHandler(); - inputHandler(); - mediaInteractionHandler(); - styleSheetObserver(); - adoptedStyleSheetObserver(); - styleDeclarationObserver(); - fontObserver(); - selectionObserver(); - customElementObserver(); - pluginHandlers.forEach(function (h) { - return h(); - }); - }); -} -function hasNestedCSSRule(prop) { - return typeof window[prop] !== "undefined"; -} -function canMonkeyPatchNestedCSSRule(prop) { - return Boolean(typeof window[prop] !== "undefined" && - // Note: Generally, this check _shouldn't_ be necessary - // However, in some scenarios (e.g. jsdom) this can sometimes fail, so we check for it here - window[prop].prototype && "insertRule" in window[prop].prototype && "deleteRule" in window[prop].prototype); -} -var CrossOriginIframeMirror = /*#__PURE__*/function () { - function CrossOriginIframeMirror(generateIdFn) { - record_classCallCheck(this, CrossOriginIframeMirror); - __publicField(this, "iframeIdToRemoteIdMap", /* @__PURE__ */new WeakMap()); - __publicField(this, "iframeRemoteIdToIdMap", /* @__PURE__ */new WeakMap()); - this.generateIdFn = generateIdFn; - } - return record_createClass(CrossOriginIframeMirror, [{ - key: "getId", - value: function getId(iframe, remoteId, idToRemoteMap, remoteToIdMap) { - var idToRemoteIdMap = idToRemoteMap || this.getIdToRemoteIdMap(iframe); - var remoteIdToIdMap = remoteToIdMap || this.getRemoteIdToIdMap(iframe); - var id = idToRemoteIdMap.get(remoteId); - if (!id) { - id = this.generateIdFn(); - idToRemoteIdMap.set(remoteId, id); - remoteIdToIdMap.set(id, remoteId); - } - return id; - } - }, { - key: "getIds", - value: function getIds(iframe, remoteId) { - var _this39 = this; - var idToRemoteIdMap = this.getIdToRemoteIdMap(iframe); - var remoteIdToIdMap = this.getRemoteIdToIdMap(iframe); - return remoteId.map(function (id) { - return _this39.getId(iframe, id, idToRemoteIdMap, remoteIdToIdMap); - }); - } - }, { - key: "getRemoteId", - value: function getRemoteId(iframe, id, map) { - var remoteIdToIdMap = map || this.getRemoteIdToIdMap(iframe); - if (typeof id !== "number") return id; - var remoteId = remoteIdToIdMap.get(id); - if (!remoteId) return -1; - return remoteId; - } - }, { - key: "getRemoteIds", - value: function getRemoteIds(iframe, ids) { - var _this40 = this; - var remoteIdToIdMap = this.getRemoteIdToIdMap(iframe); - return ids.map(function (id) { - return _this40.getRemoteId(iframe, id, remoteIdToIdMap); - }); - } - }, { - key: "reset", - value: function reset(iframe) { - if (!iframe) { - this.iframeIdToRemoteIdMap = /* @__PURE__ */new WeakMap(); - this.iframeRemoteIdToIdMap = /* @__PURE__ */new WeakMap(); - return; - } - this.iframeIdToRemoteIdMap.delete(iframe); - this.iframeRemoteIdToIdMap.delete(iframe); - } - }, { - key: "getIdToRemoteIdMap", - value: function getIdToRemoteIdMap(iframe) { - var idToRemoteIdMap = this.iframeIdToRemoteIdMap.get(iframe); - if (!idToRemoteIdMap) { - idToRemoteIdMap = /* @__PURE__ */new Map(); - this.iframeIdToRemoteIdMap.set(iframe, idToRemoteIdMap); - } - return idToRemoteIdMap; - } - }, { - key: "getRemoteIdToIdMap", - value: function getRemoteIdToIdMap(iframe) { - var remoteIdToIdMap = this.iframeRemoteIdToIdMap.get(iframe); - if (!remoteIdToIdMap) { - remoteIdToIdMap = /* @__PURE__ */new Map(); - this.iframeRemoteIdToIdMap.set(iframe, remoteIdToIdMap); - } - return remoteIdToIdMap; - } - }]); -}(); -var IframeManager = /*#__PURE__*/function () { - function IframeManager(options) { - record_classCallCheck(this, IframeManager); - __publicField(this, "iframes", /* @__PURE__ */new WeakMap()); - __publicField(this, "crossOriginIframeMap", /* @__PURE__ */new WeakMap()); - __publicField(this, "crossOriginIframeMirror", new CrossOriginIframeMirror(genId)); - __publicField(this, "crossOriginIframeStyleMirror"); - __publicField(this, "crossOriginIframeRootIdMap", /* @__PURE__ */new WeakMap()); - __publicField(this, "mirror"); - __publicField(this, "mutationCb"); - __publicField(this, "wrappedEmit"); - __publicField(this, "loadListener"); - __publicField(this, "stylesheetManager"); - __publicField(this, "recordCrossOriginIframes"); - this.mutationCb = options.mutationCb; - this.wrappedEmit = options.wrappedEmit; - this.stylesheetManager = options.stylesheetManager; - this.recordCrossOriginIframes = options.recordCrossOriginIframes; - this.crossOriginIframeStyleMirror = new CrossOriginIframeMirror(this.stylesheetManager.styleMirror.generateId.bind(this.stylesheetManager.styleMirror)); - this.mirror = options.mirror; - if (this.recordCrossOriginIframes) { - window.addEventListener("message", this.handleMessage.bind(this)); - } - } - return record_createClass(IframeManager, [{ - key: "addIframe", - value: function addIframe(iframeEl) { - this.iframes.set(iframeEl, true); - if (iframeEl.contentWindow) this.crossOriginIframeMap.set(iframeEl.contentWindow, iframeEl); - } - }, { - key: "addLoadListener", - value: function addLoadListener(cb) { - this.loadListener = cb; - } - }, { - key: "attachIframe", - value: function attachIframe(iframeEl, childSn) { - var _a2, _b; - this.mutationCb({ - adds: [{ - parentId: this.mirror.getId(iframeEl), - nextId: null, - node: childSn - }], - removes: [], - texts: [], - attributes: [], - isAttachIframe: true - }); - if (this.recordCrossOriginIframes) (_a2 = iframeEl.contentWindow) == null ? void 0 : _a2.addEventListener("message", this.handleMessage.bind(this)); - (_b = this.loadListener) == null ? void 0 : _b.call(this, iframeEl); - if (iframeEl.contentDocument && iframeEl.contentDocument.adoptedStyleSheets && iframeEl.contentDocument.adoptedStyleSheets.length > 0) this.stylesheetManager.adoptStyleSheets(iframeEl.contentDocument.adoptedStyleSheets, this.mirror.getId(iframeEl.contentDocument)); - } - }, { - key: "handleMessage", - value: function handleMessage(message) { - var crossOriginMessageEvent = message; - if (crossOriginMessageEvent.data.type !== "rrweb" || - // To filter out the rrweb messages which are forwarded by some sites. - crossOriginMessageEvent.origin !== crossOriginMessageEvent.data.origin) return; - var iframeSourceWindow = message.source; - if (!iframeSourceWindow) return; - var iframeEl = this.crossOriginIframeMap.get(message.source); - if (!iframeEl) return; - var transformedEvent = this.transformCrossOriginEvent(iframeEl, crossOriginMessageEvent.data.event); - if (transformedEvent) this.wrappedEmit(transformedEvent, crossOriginMessageEvent.data.isCheckout); - } - }, { - key: "transformCrossOriginEvent", - value: function transformCrossOriginEvent(iframeEl, e2) { - var _this41 = this; - var _a2; - switch (e2.type) { - case EventType.FullSnapshot: - { - this.crossOriginIframeMirror.reset(iframeEl); - this.crossOriginIframeStyleMirror.reset(iframeEl); - this.replaceIdOnNode(e2.data.node, iframeEl); - var rootId = e2.data.node.id; - this.crossOriginIframeRootIdMap.set(iframeEl, rootId); - this.patchRootIdOnNode(e2.data.node, rootId); - return { - timestamp: e2.timestamp, - type: EventType.IncrementalSnapshot, - data: { - source: IncrementalSource.Mutation, - adds: [{ - parentId: this.mirror.getId(iframeEl), - nextId: null, - node: e2.data.node - }], - removes: [], - texts: [], - attributes: [], - isAttachIframe: true - } - }; - } - case EventType.Meta: - case EventType.Load: - case EventType.DomContentLoaded: - { - return false; - } - case EventType.Plugin: - { - return e2; - } - case EventType.Custom: - { - this.replaceIds(e2.data.payload, iframeEl, ["id", "parentId", "previousId", "nextId"]); - return e2; - } - case EventType.IncrementalSnapshot: - { - switch (e2.data.source) { - case IncrementalSource.Mutation: - { - e2.data.adds.forEach(function (n2) { - _this41.replaceIds(n2, iframeEl, ["parentId", "nextId", "previousId"]); - _this41.replaceIdOnNode(n2.node, iframeEl); - var rootId = _this41.crossOriginIframeRootIdMap.get(iframeEl); - rootId && _this41.patchRootIdOnNode(n2.node, rootId); - }); - e2.data.removes.forEach(function (n2) { - _this41.replaceIds(n2, iframeEl, ["parentId", "id"]); - }); - e2.data.attributes.forEach(function (n2) { - _this41.replaceIds(n2, iframeEl, ["id"]); - }); - e2.data.texts.forEach(function (n2) { - _this41.replaceIds(n2, iframeEl, ["id"]); - }); - return e2; - } - case IncrementalSource.Drag: - case IncrementalSource.TouchMove: - case IncrementalSource.MouseMove: - { - e2.data.positions.forEach(function (p) { - _this41.replaceIds(p, iframeEl, ["id"]); - }); - return e2; - } - case IncrementalSource.ViewportResize: - { - return false; - } - case IncrementalSource.MediaInteraction: - case IncrementalSource.MouseInteraction: - case IncrementalSource.Scroll: - case IncrementalSource.CanvasMutation: - case IncrementalSource.Input: - { - this.replaceIds(e2.data, iframeEl, ["id"]); - return e2; - } - case IncrementalSource.StyleSheetRule: - case IncrementalSource.StyleDeclaration: - { - this.replaceIds(e2.data, iframeEl, ["id"]); - this.replaceStyleIds(e2.data, iframeEl, ["styleId"]); - return e2; - } - case IncrementalSource.Font: - { - return e2; - } - case IncrementalSource.Selection: - { - e2.data.ranges.forEach(function (range) { - _this41.replaceIds(range, iframeEl, ["start", "end"]); - }); - return e2; - } - case IncrementalSource.AdoptedStyleSheet: - { - this.replaceIds(e2.data, iframeEl, ["id"]); - this.replaceStyleIds(e2.data, iframeEl, ["styleIds"]); - (_a2 = e2.data.styles) == null ? void 0 : _a2.forEach(function (style) { - _this41.replaceStyleIds(style, iframeEl, ["styleId"]); - }); - return e2; - } - } - } - } - return false; - } - }, { - key: "replace", - value: function replace(iframeMirror, obj, iframeEl, keys) { - var _iterator51 = record_createForOfIteratorHelper(keys), - _step51; - try { - for (_iterator51.s(); !(_step51 = _iterator51.n()).done;) { - var key = _step51.value; - if (!Array.isArray(obj[key]) && typeof obj[key] !== "number") continue; - if (Array.isArray(obj[key])) { - obj[key] = iframeMirror.getIds(iframeEl, obj[key]); - } else { - obj[key] = iframeMirror.getId(iframeEl, obj[key]); - } - } - } catch (err) { - _iterator51.e(err); - } finally { - _iterator51.f(); - } - return obj; - } - }, { - key: "replaceIds", - value: function replaceIds(obj, iframeEl, keys) { - return this.replace(this.crossOriginIframeMirror, obj, iframeEl, keys); - } - }, { - key: "replaceStyleIds", - value: function replaceStyleIds(obj, iframeEl, keys) { - return this.replace(this.crossOriginIframeStyleMirror, obj, iframeEl, keys); - } - }, { - key: "replaceIdOnNode", - value: function replaceIdOnNode(node2, iframeEl) { - var _this42 = this; - this.replaceIds(node2, iframeEl, ["id", "rootId"]); - if ("childNodes" in node2) { - node2.childNodes.forEach(function (child) { - _this42.replaceIdOnNode(child, iframeEl); - }); - } - } - }, { - key: "patchRootIdOnNode", - value: function patchRootIdOnNode(node2, rootId) { - var _this43 = this; - if (node2.type !== NodeType.Document && !node2.rootId) node2.rootId = rootId; - if ("childNodes" in node2) { - node2.childNodes.forEach(function (child) { - _this43.patchRootIdOnNode(child, rootId); - }); - } - } - }]); -}(); -var ShadowDomManager = /*#__PURE__*/function () { - function ShadowDomManager(options) { - record_classCallCheck(this, ShadowDomManager); - __publicField(this, "shadowDoms", /* @__PURE__ */new WeakSet()); - __publicField(this, "mutationCb"); - __publicField(this, "scrollCb"); - __publicField(this, "bypassOptions"); - __publicField(this, "mirror"); - __publicField(this, "restoreHandlers", []); - this.mutationCb = options.mutationCb; - this.scrollCb = options.scrollCb; - this.bypassOptions = options.bypassOptions; - this.mirror = options.mirror; - this.init(); - } - return record_createClass(ShadowDomManager, [{ - key: "init", - value: function init() { - this.reset(); - this.patchAttachShadow(Element, document); - } - }, { - key: "addShadowRoot", - value: function addShadowRoot(shadowRoot2, doc) { - var _this44 = this; - if (!isNativeShadowDom(shadowRoot2)) return; - if (this.shadowDoms.has(shadowRoot2)) return; - this.shadowDoms.add(shadowRoot2); - var observer = initMutationObserver(record_objectSpread(record_objectSpread({}, this.bypassOptions), {}, { - doc: doc, - mutationCb: this.mutationCb, - mirror: this.mirror, - shadowDomManager: this - }), shadowRoot2); - this.restoreHandlers.push(function () { - return observer.disconnect(); - }); - this.restoreHandlers.push(initScrollObserver(record_objectSpread(record_objectSpread({}, this.bypassOptions), {}, { - scrollCb: this.scrollCb, - // https://gist.github.com/praveenpuglia/0832da687ed5a5d7a0907046c9ef1813 - // scroll is not allowed to pass the boundary, so we need to listen the shadow document - doc: shadowRoot2, - mirror: this.mirror - }))); - setTimeout(function () { - if (shadowRoot2.adoptedStyleSheets && shadowRoot2.adoptedStyleSheets.length > 0) _this44.bypassOptions.stylesheetManager.adoptStyleSheets(shadowRoot2.adoptedStyleSheets, _this44.mirror.getId(index.host(shadowRoot2))); - _this44.restoreHandlers.push(initAdoptedStyleSheetObserver({ - mirror: _this44.mirror, - stylesheetManager: _this44.bypassOptions.stylesheetManager - }, shadowRoot2)); - }, 0); - } - /** - * Monkey patch 'attachShadow' of an IFrameElement to observe newly added shadow doms. - */ - }, { - key: "observeAttachShadow", - value: function observeAttachShadow(iframeElement) { - if (!iframeElement.contentWindow || !iframeElement.contentDocument) return; - this.patchAttachShadow(iframeElement.contentWindow.Element, iframeElement.contentDocument); - } - /** - * Patch 'attachShadow' to observe newly added shadow doms. - */ - }, { - key: "patchAttachShadow", - value: function patchAttachShadow(element, doc) { - var manager = this; - this.restoreHandlers.push(patch(element.prototype, "attachShadow", function (original) { - return function (option) { - var sRoot = original.call(this, option); - var shadowRootEl = index.shadowRoot(this); - if (shadowRootEl && inDom(this)) manager.addShadowRoot(shadowRootEl, doc); - return sRoot; - }; - })); - } - }, { - key: "reset", - value: function reset() { - this.restoreHandlers.forEach(function (handler) { - try { - handler(); - } catch (e2) {} - }); - this.restoreHandlers = []; - this.shadowDoms = /* @__PURE__ */new WeakSet(); - } - }]); -}(); -var chars = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/"; -var lookup = typeof Uint8Array === "undefined" ? [] : new Uint8Array(256); -for (var i$1 = 0; i$1 < chars.length; i$1++) { - lookup[chars.charCodeAt(i$1)] = i$1; -} -var encode = function encode(arraybuffer) { - var bytes = new Uint8Array(arraybuffer), - i2, - len = bytes.length, - base64 = ""; - for (i2 = 0; i2 < len; i2 += 3) { - base64 += chars[bytes[i2] >> 2]; - base64 += chars[(bytes[i2] & 3) << 4 | bytes[i2 + 1] >> 4]; - base64 += chars[(bytes[i2 + 1] & 15) << 2 | bytes[i2 + 2] >> 6]; - base64 += chars[bytes[i2 + 2] & 63]; - } - if (len % 3 === 2) { - base64 = base64.substring(0, base64.length - 1) + "="; - } else if (len % 3 === 1) { - base64 = base64.substring(0, base64.length - 2) + "=="; - } - return base64; -}; -var canvasVarMap = /* @__PURE__ */new Map(); -function variableListFor$1(ctx, ctor) { - var contextMap = canvasVarMap.get(ctx); - if (!contextMap) { - contextMap = /* @__PURE__ */new Map(); - canvasVarMap.set(ctx, contextMap); - } - if (!contextMap.has(ctor)) { - contextMap.set(ctor, []); - } - return contextMap.get(ctor); -} -var saveWebGLVar = function saveWebGLVar(value, win, ctx) { - if (!value || !(isInstanceOfWebGLObject(value, win) || record_typeof(value) === "object")) return; - var name = value.constructor.name; - var list2 = variableListFor$1(ctx, name); - var index2 = list2.indexOf(value); - if (index2 === -1) { - index2 = list2.length; - list2.push(value); - } - return index2; -}; -function serializeArg(value, win, ctx) { - if (value instanceof Array) { - return value.map(function (arg) { - return serializeArg(arg, win, ctx); - }); - } else if (value === null) { - return value; - } else if (value instanceof Float32Array || value instanceof Float64Array || value instanceof Int32Array || value instanceof Uint32Array || value instanceof Uint8Array || value instanceof Uint16Array || value instanceof Int16Array || value instanceof Int8Array || value instanceof Uint8ClampedArray) { - var name = value.constructor.name; - return { - rr_type: name, - args: [Object.values(value)] - }; - } else if ( - // SharedArrayBuffer disabled on most browsers due to spectre. - // More info: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/SharedArrayBuffer/SharedArrayBuffer - // value instanceof SharedArrayBuffer || - value instanceof ArrayBuffer) { - var _name = value.constructor.name; - var base64 = encode(value); - return { - rr_type: _name, - base64: base64 - }; - } else if (value instanceof DataView) { - var _name2 = value.constructor.name; - return { - rr_type: _name2, - args: [serializeArg(value.buffer, win, ctx), value.byteOffset, value.byteLength] - }; - } else if (value instanceof HTMLImageElement) { - var _name3 = value.constructor.name; - var src = value.src; - return { - rr_type: _name3, - src: src - }; - } else if (value instanceof HTMLCanvasElement) { - var _name4 = "HTMLImageElement"; - var _src = value.toDataURL(); - return { - rr_type: _name4, - src: _src - }; - } else if (value instanceof ImageData) { - var _name5 = value.constructor.name; - return { - rr_type: _name5, - args: [serializeArg(value.data, win, ctx), value.width, value.height] - }; - } else if (isInstanceOfWebGLObject(value, win) || record_typeof(value) === "object") { - var _name6 = value.constructor.name; - var index2 = saveWebGLVar(value, win, ctx); - return { - rr_type: _name6, - index: index2 - }; - } - return value; -} -var serializeArgs = function serializeArgs(args, win, ctx) { - return args.map(function (arg) { - return serializeArg(arg, win, ctx); - }); -}; -var isInstanceOfWebGLObject = function isInstanceOfWebGLObject(value, win) { - var webGLConstructorNames = ["WebGLActiveInfo", "WebGLBuffer", "WebGLFramebuffer", "WebGLProgram", "WebGLRenderbuffer", "WebGLShader", "WebGLShaderPrecisionFormat", "WebGLTexture", "WebGLUniformLocation", "WebGLVertexArrayObject", - // In old Chrome versions, value won't be an instanceof WebGLVertexArrayObject. - "WebGLVertexArrayObjectOES"]; - var supportedWebGLConstructorNames = webGLConstructorNames.filter(function (name) { - return typeof win[name] === "function"; - }); - return Boolean(supportedWebGLConstructorNames.find(function (name) { - return value instanceof win[name]; - })); -}; -function initCanvas2DMutationObserver(cb, win, blockClass, blockSelector) { - var handlers = []; - var props2D = Object.getOwnPropertyNames(win.CanvasRenderingContext2D.prototype); - var _iterator52 = record_createForOfIteratorHelper(props2D), - _step52; - try { - var _loop3 = function _loop3() { - var prop = _step52.value; - try { - if (typeof win.CanvasRenderingContext2D.prototype[prop] !== "function") { - return 1; // continue - } - var restoreHandler = patch(win.CanvasRenderingContext2D.prototype, prop, function (original) { - return function () { - var _this45 = this; - for (var _len18 = arguments.length, args = new Array(_len18), _key18 = 0; _key18 < _len18; _key18++) { - args[_key18] = arguments[_key18]; - } - if (!isBlocked(this.canvas, blockClass, blockSelector, true)) { - setTimeout(function () { - var recordArgs = serializeArgs(args, win, _this45); - cb(_this45.canvas, { - type: CanvasContext["2D"], - property: prop, - args: recordArgs - }); - }, 0); - } - return original.apply(this, args); - }; - }); - handlers.push(restoreHandler); - } catch (_unused5) { - var hookHandler = hookSetter(win.CanvasRenderingContext2D.prototype, prop, { - set: function set(v2) { - cb(this.canvas, { - type: CanvasContext["2D"], - property: prop, - args: [v2], - setter: true - }); - } - }); - handlers.push(hookHandler); - } - }; - for (_iterator52.s(); !(_step52 = _iterator52.n()).done;) { - if (_loop3()) continue; - } - } catch (err) { - _iterator52.e(err); - } finally { - _iterator52.f(); - } - return function () { - handlers.forEach(function (h) { - return h(); - }); - }; -} -function getNormalizedContextName(contextType) { - return contextType === "experimental-webgl" ? "webgl" : contextType; -} -function initCanvasContextObserver(win, blockClass, blockSelector, setPreserveDrawingBufferToTrue) { - var handlers = []; - try { - var restoreHandler = patch(win.HTMLCanvasElement.prototype, "getContext", function (original) { - return function (contextType) { - for (var _len19 = arguments.length, args = new Array(_len19 > 1 ? _len19 - 1 : 0), _key19 = 1; _key19 < _len19; _key19++) { - args[_key19 - 1] = arguments[_key19]; - } - if (!isBlocked(this, blockClass, blockSelector, true)) { - var ctxName = getNormalizedContextName(contextType); - if (!("__context" in this)) this.__context = ctxName; - if (setPreserveDrawingBufferToTrue && ["webgl", "webgl2"].includes(ctxName)) { - if (args[0] && record_typeof(args[0]) === "object") { - var contextAttributes = args[0]; - if (!contextAttributes.preserveDrawingBuffer) { - contextAttributes.preserveDrawingBuffer = true; - } - } else { - args.splice(0, 1, { - preserveDrawingBuffer: true - }); - } - } - } - return original.apply(this, [contextType].concat(args)); - }; - }); - handlers.push(restoreHandler); - } catch (_unused6) { - console.error("failed to patch HTMLCanvasElement.prototype.getContext"); - } - return function () { - handlers.forEach(function (h) { - return h(); - }); - }; -} -function patchGLPrototype(prototype, type, cb, blockClass, blockSelector, win) { - var handlers = []; - var props = Object.getOwnPropertyNames(prototype); - var _iterator53 = record_createForOfIteratorHelper(props), - _step53; - try { - var _loop4 = function _loop4() { - var prop = _step53.value; - if ( - //prop.startsWith('get') || // e.g. getProgramParameter, but too risky - ["isContextLost", "canvas", "drawingBufferWidth", "drawingBufferHeight"].includes(prop)) { - return 0; // continue - } - try { - if (typeof prototype[prop] !== "function") { - return 0; // continue - } - var restoreHandler = patch(prototype, prop, function (original) { - return function () { - for (var _len20 = arguments.length, args = new Array(_len20), _key20 = 0; _key20 < _len20; _key20++) { - args[_key20] = arguments[_key20]; - } - var result2 = original.apply(this, args); - saveWebGLVar(result2, win, this); - if ("tagName" in this.canvas && !isBlocked(this.canvas, blockClass, blockSelector, true)) { - var recordArgs = serializeArgs(args, win, this); - var mutation = { - type: type, - property: prop, - args: recordArgs - }; - cb(this.canvas, mutation); - } - return result2; - }; - }); - handlers.push(restoreHandler); - } catch (_unused7) { - var hookHandler = hookSetter(prototype, prop, { - set: function set(v2) { - cb(this.canvas, { - type: type, - property: prop, - args: [v2], - setter: true - }); - } - }); - handlers.push(hookHandler); - } - }, - _ret; - for (_iterator53.s(); !(_step53 = _iterator53.n()).done;) { - _ret = _loop4(); - if (_ret === 0) continue; - } - } catch (err) { - _iterator53.e(err); - } finally { - _iterator53.f(); - } - return handlers; -} -function initCanvasWebGLMutationObserver(cb, win, blockClass, blockSelector) { - var handlers = []; - handlers.push.apply(handlers, record_toConsumableArray(patchGLPrototype(win.WebGLRenderingContext.prototype, CanvasContext.WebGL, cb, blockClass, blockSelector, win))); - if (typeof win.WebGL2RenderingContext !== "undefined") { - handlers.push.apply(handlers, record_toConsumableArray(patchGLPrototype(win.WebGL2RenderingContext.prototype, CanvasContext.WebGL2, cb, blockClass, blockSelector, win))); - } - return function () { - handlers.forEach(function (h) { - return h(); - }); - }; -} -var encodedJs = "KGZ1bmN0aW9uKCkgewogICJ1c2Ugc3RyaWN0IjsKICB2YXIgY2hhcnMgPSAiQUJDREVGR0hJSktMTU5PUFFSU1RVVldYWVphYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5ejAxMjM0NTY3ODkrLyI7CiAgdmFyIGxvb2t1cCA9IHR5cGVvZiBVaW50OEFycmF5ID09PSAidW5kZWZpbmVkIiA/IFtdIDogbmV3IFVpbnQ4QXJyYXkoMjU2KTsKICBmb3IgKHZhciBpID0gMDsgaSA8IGNoYXJzLmxlbmd0aDsgaSsrKSB7CiAgICBsb29rdXBbY2hhcnMuY2hhckNvZGVBdChpKV0gPSBpOwogIH0KICB2YXIgZW5jb2RlID0gZnVuY3Rpb24oYXJyYXlidWZmZXIpIHsKICAgIHZhciBieXRlcyA9IG5ldyBVaW50OEFycmF5KGFycmF5YnVmZmVyKSwgaTIsIGxlbiA9IGJ5dGVzLmxlbmd0aCwgYmFzZTY0ID0gIiI7CiAgICBmb3IgKGkyID0gMDsgaTIgPCBsZW47IGkyICs9IDMpIHsKICAgICAgYmFzZTY0ICs9IGNoYXJzW2J5dGVzW2kyXSA+PiAyXTsKICAgICAgYmFzZTY0ICs9IGNoYXJzWyhieXRlc1tpMl0gJiAzKSA8PCA0IHwgYnl0ZXNbaTIgKyAxXSA+PiA0XTsKICAgICAgYmFzZTY0ICs9IGNoYXJzWyhieXRlc1tpMiArIDFdICYgMTUpIDw8IDIgfCBieXRlc1tpMiArIDJdID4+IDZdOwogICAgICBiYXNlNjQgKz0gY2hhcnNbYnl0ZXNbaTIgKyAyXSAmIDYzXTsKICAgIH0KICAgIGlmIChsZW4gJSAzID09PSAyKSB7CiAgICAgIGJhc2U2NCA9IGJhc2U2NC5zdWJzdHJpbmcoMCwgYmFzZTY0Lmxlbmd0aCAtIDEpICsgIj0iOwogICAgfSBlbHNlIGlmIChsZW4gJSAzID09PSAxKSB7CiAgICAgIGJhc2U2NCA9IGJhc2U2NC5zdWJzdHJpbmcoMCwgYmFzZTY0Lmxlbmd0aCAtIDIpICsgIj09IjsKICAgIH0KICAgIHJldHVybiBiYXNlNjQ7CiAgfTsKICBjb25zdCBsYXN0QmxvYk1hcCA9IC8qIEBfX1BVUkVfXyAqLyBuZXcgTWFwKCk7CiAgY29uc3QgdHJhbnNwYXJlbnRCbG9iTWFwID0gLyogQF9fUFVSRV9fICovIG5ldyBNYXAoKTsKICBhc3luYyBmdW5jdGlvbiBnZXRUcmFuc3BhcmVudEJsb2JGb3Iod2lkdGgsIGhlaWdodCwgZGF0YVVSTE9wdGlvbnMpIHsKICAgIGNvbnN0IGlkID0gYCR7d2lkdGh9LSR7aGVpZ2h0fWA7CiAgICBpZiAoIk9mZnNjcmVlbkNhbnZhcyIgaW4gZ2xvYmFsVGhpcykgewogICAgICBpZiAodHJhbnNwYXJlbnRCbG9iTWFwLmhhcyhpZCkpIHJldHVybiB0cmFuc3BhcmVudEJsb2JNYXAuZ2V0KGlkKTsKICAgICAgY29uc3Qgb2Zmc2NyZWVuID0gbmV3IE9mZnNjcmVlbkNhbnZhcyh3aWR0aCwgaGVpZ2h0KTsKICAgICAgb2Zmc2NyZWVuLmdldENvbnRleHQoIjJkIik7CiAgICAgIGNvbnN0IGJsb2IgPSBhd2FpdCBvZmZzY3JlZW4uY29udmVydFRvQmxvYihkYXRhVVJMT3B0aW9ucyk7CiAgICAgIGNvbnN0IGFycmF5QnVmZmVyID0gYXdhaXQgYmxvYi5hcnJheUJ1ZmZlcigpOwogICAgICBjb25zdCBiYXNlNjQgPSBlbmNvZGUoYXJyYXlCdWZmZXIpOwogICAgICB0cmFuc3BhcmVudEJsb2JNYXAuc2V0KGlkLCBiYXNlNjQpOwogICAgICByZXR1cm4gYmFzZTY0OwogICAgfSBlbHNlIHsKICAgICAgcmV0dXJuICIiOwogICAgfQogIH0KICBjb25zdCB3b3JrZXIgPSBzZWxmOwogIHdvcmtlci5vbm1lc3NhZ2UgPSBhc3luYyBmdW5jdGlvbihlKSB7CiAgICBpZiAoIk9mZnNjcmVlbkNhbnZhcyIgaW4gZ2xvYmFsVGhpcykgewogICAgICBjb25zdCB7IGlkLCBiaXRtYXAsIHdpZHRoLCBoZWlnaHQsIGRhdGFVUkxPcHRpb25zIH0gPSBlLmRhdGE7CiAgICAgIGNvbnN0IHRyYW5zcGFyZW50QmFzZTY0ID0gZ2V0VHJhbnNwYXJlbnRCbG9iRm9yKAogICAgICAgIHdpZHRoLAogICAgICAgIGhlaWdodCwKICAgICAgICBkYXRhVVJMT3B0aW9ucwogICAgICApOwogICAgICBjb25zdCBvZmZzY3JlZW4gPSBuZXcgT2Zmc2NyZWVuQ2FudmFzKHdpZHRoLCBoZWlnaHQpOwogICAgICBjb25zdCBjdHggPSBvZmZzY3JlZW4uZ2V0Q29udGV4dCgiMmQiKTsKICAgICAgY3R4LmRyYXdJbWFnZShiaXRtYXAsIDAsIDApOwogICAgICBiaXRtYXAuY2xvc2UoKTsKICAgICAgY29uc3QgYmxvYiA9IGF3YWl0IG9mZnNjcmVlbi5jb252ZXJ0VG9CbG9iKGRhdGFVUkxPcHRpb25zKTsKICAgICAgY29uc3QgdHlwZSA9IGJsb2IudHlwZTsKICAgICAgY29uc3QgYXJyYXlCdWZmZXIgPSBhd2FpdCBibG9iLmFycmF5QnVmZmVyKCk7CiAgICAgIGNvbnN0IGJhc2U2NCA9IGVuY29kZShhcnJheUJ1ZmZlcik7CiAgICAgIGlmICghbGFzdEJsb2JNYXAuaGFzKGlkKSAmJiBhd2FpdCB0cmFuc3BhcmVudEJhc2U2NCA9PT0gYmFzZTY0KSB7CiAgICAgICAgbGFzdEJsb2JNYXAuc2V0KGlkLCBiYXNlNjQpOwogICAgICAgIHJldHVybiB3b3JrZXIucG9zdE1lc3NhZ2UoeyBpZCB9KTsKICAgICAgfQogICAgICBpZiAobGFzdEJsb2JNYXAuZ2V0KGlkKSA9PT0gYmFzZTY0KSByZXR1cm4gd29ya2VyLnBvc3RNZXNzYWdlKHsgaWQgfSk7CiAgICAgIHdvcmtlci5wb3N0TWVzc2FnZSh7CiAgICAgICAgaWQsCiAgICAgICAgdHlwZSwKICAgICAgICBiYXNlNjQsCiAgICAgICAgd2lkdGgsCiAgICAgICAgaGVpZ2h0CiAgICAgIH0pOwogICAgICBsYXN0QmxvYk1hcC5zZXQoaWQsIGJhc2U2NCk7CiAgICB9IGVsc2UgewogICAgICByZXR1cm4gd29ya2VyLnBvc3RNZXNzYWdlKHsgaWQ6IGUuZGF0YS5pZCB9KTsKICAgIH0KICB9Owp9KSgpOwovLyMgc291cmNlTWFwcGluZ1VSTD1pbWFnZS1iaXRtYXAtZGF0YS11cmwtd29ya2VyLUlKcEM3Z19iLmpzLm1hcAo="; -var decodeBase64 = function decodeBase64(base64) { - return Uint8Array.from(atob(base64), function (c2) { - return c2.charCodeAt(0); - }); -}; -var blob = typeof window !== "undefined" && window.Blob && new Blob([decodeBase64(encodedJs)], { - type: "text/javascript;charset=utf-8" -}); -function WorkerWrapper(options) { - var objURL; - try { - objURL = blob && (window.URL || window.webkitURL).createObjectURL(blob); - if (!objURL) throw ""; - var worker = new Worker(objURL, { - name: options == null ? void 0 : options.name - }); - worker.addEventListener("error", function () { - (window.URL || window.webkitURL).revokeObjectURL(objURL); - }); - return worker; - } catch (e2) { - return new Worker("data:text/javascript;base64," + encodedJs, { - name: options == null ? void 0 : options.name - }); - } finally { - objURL && (window.URL || window.webkitURL).revokeObjectURL(objURL); - } -} -var CanvasManager = /*#__PURE__*/function () { - function CanvasManager(options) { - var _this46 = this; - record_classCallCheck(this, CanvasManager); - __publicField(this, "pendingCanvasMutations", /* @__PURE__ */new Map()); - __publicField(this, "rafStamps", { - latestId: 0, - invokeId: null - }); - __publicField(this, "mirror"); - __publicField(this, "mutationCb"); - __publicField(this, "resetObservers"); - __publicField(this, "frozen", false); - __publicField(this, "locked", false); - __publicField(this, "processMutation", function (target, mutation) { - var newFrame = _this46.rafStamps.invokeId && _this46.rafStamps.latestId !== _this46.rafStamps.invokeId; - if (newFrame || !_this46.rafStamps.invokeId) _this46.rafStamps.invokeId = _this46.rafStamps.latestId; - if (!_this46.pendingCanvasMutations.has(target)) { - _this46.pendingCanvasMutations.set(target, []); - } - _this46.pendingCanvasMutations.get(target).push(mutation); - }); - var _options$sampling = options.sampling, - sampling = _options$sampling === void 0 ? "all" : _options$sampling, - win = options.win, - blockClass = options.blockClass, - blockSelector = options.blockSelector, - recordCanvas = options.recordCanvas, - dataURLOptions = options.dataURLOptions; - this.mutationCb = options.mutationCb; - this.mirror = options.mirror; - if (recordCanvas && sampling === "all") this.initCanvasMutationObserver(win, blockClass, blockSelector); - if (recordCanvas && typeof sampling === "number") this.initCanvasFPSObserver(sampling, win, blockClass, blockSelector, { - dataURLOptions: dataURLOptions - }); - } - return record_createClass(CanvasManager, [{ - key: "reset", - value: function reset() { - this.pendingCanvasMutations.clear(); - this.resetObservers && this.resetObservers(); - } - }, { - key: "freeze", - value: function freeze() { - this.frozen = true; - } - }, { - key: "unfreeze", - value: function unfreeze() { - this.frozen = false; - } - }, { - key: "lock", - value: function lock() { - this.locked = true; - } - }, { - key: "unlock", - value: function unlock() { - this.locked = false; - } - }, { - key: "initCanvasFPSObserver", - value: function initCanvasFPSObserver(fps, win, blockClass, blockSelector, options) { - var _this47 = this; - var canvasContextReset = initCanvasContextObserver(win, blockClass, blockSelector, true); - var snapshotInProgressMap = /* @__PURE__ */new Map(); - var worker = new WorkerWrapper(); - worker.onmessage = function (e2) { - var id = e2.data.id; - snapshotInProgressMap.set(id, false); - if (!("base64" in e2.data)) return; - var _e2$data = e2.data, - base64 = _e2$data.base64, - type = _e2$data.type, - width = _e2$data.width, - height = _e2$data.height; - _this47.mutationCb({ - id: id, - type: CanvasContext["2D"], - commands: [{ - property: "clearRect", - // wipe canvas - args: [0, 0, width, height] - }, { - property: "drawImage", - // draws (semi-transparent) image - args: [{ - rr_type: "ImageBitmap", - args: [{ - rr_type: "Blob", - data: [{ - rr_type: "ArrayBuffer", - base64: base64 - }], - type: type - }] - }, 0, 0] - }] - }); - }; - var timeBetweenSnapshots = 1e3 / fps; - var lastSnapshotTime = 0; - var rafId; - var getCanvas = function getCanvas() { - var matchedCanvas = []; - win.document.querySelectorAll("canvas").forEach(function (canvas) { - if (!isBlocked(canvas, blockClass, blockSelector, true)) { - matchedCanvas.push(canvas); - } - }); - return matchedCanvas; - }; - var _takeCanvasSnapshots = function takeCanvasSnapshots(timestamp) { - if (lastSnapshotTime && timestamp - lastSnapshotTime < timeBetweenSnapshots) { - rafId = requestAnimationFrame(_takeCanvasSnapshots); - return; - } - lastSnapshotTime = timestamp; - getCanvas().forEach(/*#__PURE__*/function () { - var _ref23 = record_asyncToGenerator(/*#__PURE__*/record_regeneratorRuntime().mark(function _callee3(canvas) { - var _a2, id, context, bitmap; - return record_regeneratorRuntime().wrap(function _callee3$(_context5) { - while (1) switch (_context5.prev = _context5.next) { - case 0: - id = _this47.mirror.getId(canvas); - if (!snapshotInProgressMap.get(id)) { - _context5.next = 3; - break; - } - return _context5.abrupt("return"); - case 3: - if (!(canvas.width === 0 || canvas.height === 0)) { - _context5.next = 5; - break; - } - return _context5.abrupt("return"); - case 5: - snapshotInProgressMap.set(id, true); - if (["webgl", "webgl2"].includes(canvas.__context)) { - context = canvas.getContext(canvas.__context); - if (((_a2 = context == null ? void 0 : context.getContextAttributes()) == null ? void 0 : _a2.preserveDrawingBuffer) === false) { - context.clear(context.COLOR_BUFFER_BIT); - } - } - _context5.next = 9; - return createImageBitmap(canvas); - case 9: - bitmap = _context5.sent; - worker.postMessage({ - id: id, - bitmap: bitmap, - width: canvas.width, - height: canvas.height, - dataURLOptions: options.dataURLOptions - }, [bitmap]); - case 11: - case "end": - return _context5.stop(); - } - }, _callee3); - })); - return function (_x) { - return _ref23.apply(this, arguments); - }; - }()); - rafId = requestAnimationFrame(_takeCanvasSnapshots); - }; - rafId = requestAnimationFrame(_takeCanvasSnapshots); - this.resetObservers = function () { - canvasContextReset(); - cancelAnimationFrame(rafId); - }; - } - }, { - key: "initCanvasMutationObserver", - value: function initCanvasMutationObserver(win, blockClass, blockSelector) { - this.startRAFTimestamping(); - this.startPendingCanvasMutationFlusher(); - var canvasContextReset = initCanvasContextObserver(win, blockClass, blockSelector, false); - var canvas2DReset = initCanvas2DMutationObserver(this.processMutation.bind(this), win, blockClass, blockSelector); - var canvasWebGL1and2Reset = initCanvasWebGLMutationObserver(this.processMutation.bind(this), win, blockClass, blockSelector); - this.resetObservers = function () { - canvasContextReset(); - canvas2DReset(); - canvasWebGL1and2Reset(); - }; - } - }, { - key: "startPendingCanvasMutationFlusher", - value: function startPendingCanvasMutationFlusher() { - var _this48 = this; - requestAnimationFrame(function () { - return _this48.flushPendingCanvasMutations(); - }); - } - }, { - key: "startRAFTimestamping", - value: function startRAFTimestamping() { - var _this49 = this; - var _setLatestRAFTimestamp = function setLatestRAFTimestamp(timestamp) { - _this49.rafStamps.latestId = timestamp; - requestAnimationFrame(_setLatestRAFTimestamp); - }; - requestAnimationFrame(_setLatestRAFTimestamp); - } - }, { - key: "flushPendingCanvasMutations", - value: function flushPendingCanvasMutations() { - var _this50 = this; - this.pendingCanvasMutations.forEach(function (_values, canvas) { - var id = _this50.mirror.getId(canvas); - _this50.flushPendingCanvasMutationFor(canvas, id); - }); - requestAnimationFrame(function () { - return _this50.flushPendingCanvasMutations(); - }); - } - }, { - key: "flushPendingCanvasMutationFor", - value: function flushPendingCanvasMutationFor(canvas, id) { - if (this.frozen || this.locked) { - return; - } - var valuesWithType = this.pendingCanvasMutations.get(canvas); - if (!valuesWithType || id === -1) return; - var values = valuesWithType.map(function (value) { - var type2 = value.type, - rest = record_objectWithoutProperties(value, _excluded5); - return rest; - }); - var type = valuesWithType[0].type; - this.mutationCb({ - id: id, - type: type, - commands: values - }); - this.pendingCanvasMutations.delete(canvas); - } - }]); -}(); -var StylesheetManager = /*#__PURE__*/function () { - function StylesheetManager(options) { - record_classCallCheck(this, StylesheetManager); - __publicField(this, "trackedLinkElements", /* @__PURE__ */new WeakSet()); - __publicField(this, "mutationCb"); - __publicField(this, "adoptedStyleSheetCb"); - __publicField(this, "styleMirror", new StyleSheetMirror()); - this.mutationCb = options.mutationCb; - this.adoptedStyleSheetCb = options.adoptedStyleSheetCb; - } - return record_createClass(StylesheetManager, [{ - key: "attachLinkElement", - value: function attachLinkElement(linkEl, childSn) { - if ("_cssText" in childSn.attributes) this.mutationCb({ - adds: [], - removes: [], - texts: [], - attributes: [{ - id: childSn.id, - attributes: childSn.attributes - }] - }); - this.trackLinkElement(linkEl); - } - }, { - key: "trackLinkElement", - value: function trackLinkElement(linkEl) { - if (this.trackedLinkElements.has(linkEl)) return; - this.trackedLinkElements.add(linkEl); - this.trackStylesheetInLinkElement(linkEl); - } - }, { - key: "adoptStyleSheets", - value: function adoptStyleSheets(sheets, hostId) { - var _this51 = this; - if (sheets.length === 0) return; - var adoptedStyleSheetData = { - id: hostId, - styleIds: [] - }; - var styles = []; - var _iterator54 = record_createForOfIteratorHelper(sheets), - _step54; - try { - var _loop5 = function _loop5() { - var sheet = _step54.value; - var styleId; - if (!_this51.styleMirror.has(sheet)) { - styleId = _this51.styleMirror.add(sheet); - styles.push({ - styleId: styleId, - rules: Array.from(sheet.rules || CSSRule, function (r2, index2) { - return { - rule: stringifyRule(r2, sheet.href), - index: index2 - }; - }) - }); - } else styleId = _this51.styleMirror.getId(sheet); - adoptedStyleSheetData.styleIds.push(styleId); - }; - for (_iterator54.s(); !(_step54 = _iterator54.n()).done;) { - _loop5(); - } - } catch (err) { - _iterator54.e(err); - } finally { - _iterator54.f(); - } - if (styles.length > 0) adoptedStyleSheetData.styles = styles; - this.adoptedStyleSheetCb(adoptedStyleSheetData); - } - }, { - key: "reset", - value: function reset() { - this.styleMirror.reset(); - this.trackedLinkElements = /* @__PURE__ */new WeakSet(); - } - // TODO: take snapshot on stylesheet reload by applying event listener - }, { - key: "trackStylesheetInLinkElement", - value: function trackStylesheetInLinkElement(_linkEl) {} - }]); -}(); -var ProcessedNodeManager = /*#__PURE__*/function () { - function ProcessedNodeManager() { - record_classCallCheck(this, ProcessedNodeManager); - __publicField(this, "nodeMap", /* @__PURE__ */new WeakMap()); - __publicField(this, "active", false); - } - return record_createClass(ProcessedNodeManager, [{ - key: "inOtherBuffer", - value: function inOtherBuffer(node2, thisBuffer) { - var buffers = this.nodeMap.get(node2); - return buffers && Array.from(buffers).some(function (buffer) { - return buffer !== thisBuffer; - }); - } - }, { - key: "add", - value: function add(node2, buffer) { - var _this52 = this; - if (!this.active) { - this.active = true; - requestAnimationFrame(function () { - _this52.nodeMap = /* @__PURE__ */new WeakMap(); - _this52.active = false; - }); - } - this.nodeMap.set(node2, (this.nodeMap.get(node2) || /* @__PURE__ */new Set()).add(buffer)); - } - }, { - key: "destroy", - value: function destroy() {} - }]); -}(); -var wrappedEmit; -var takeFullSnapshot$1; -var canvasManager; -var recording = false; -try { - if (Array.from([1], function (x2) { - return x2 * 2; - })[0] !== 2) { - var cleanFrame = document.createElement("iframe"); - document.body.appendChild(cleanFrame); - Array.from = ((_a = cleanFrame.contentWindow) == null ? void 0 : _a.Array.from) || Array.from; - document.body.removeChild(cleanFrame); - } -} catch (err) { - console.debug("Unable to override Array.from", err); -} -var mirror = createMirror$2(); -function record() { - var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}; - var emit = options.emit, - checkoutEveryNms = options.checkoutEveryNms, - checkoutEveryNth = options.checkoutEveryNth, - _options$blockClass = options.blockClass, - blockClass = _options$blockClass === void 0 ? "rr-block" : _options$blockClass, - _options$blockSelecto = options.blockSelector, - blockSelector = _options$blockSelecto === void 0 ? null : _options$blockSelecto, - _options$ignoreClass = options.ignoreClass, - ignoreClass = _options$ignoreClass === void 0 ? "rr-ignore" : _options$ignoreClass, - _options$ignoreSelect = options.ignoreSelector, - ignoreSelector = _options$ignoreSelect === void 0 ? null : _options$ignoreSelect, - _options$maskTextClas = options.maskTextClass, - maskTextClass = _options$maskTextClas === void 0 ? "rr-mask" : _options$maskTextClas, - _options$maskTextSele = options.maskTextSelector, - maskTextSelector = _options$maskTextSele === void 0 ? null : _options$maskTextSele, - _options$inlineStyles2 = options.inlineStylesheet, - inlineStylesheet = _options$inlineStyles2 === void 0 ? true : _options$inlineStyles2, - maskAllInputs = options.maskAllInputs, - _maskInputOptions = options.maskInputOptions, - _slimDOMOptions = options.slimDOMOptions, - maskInputFn = options.maskInputFn, - maskTextFn = options.maskTextFn, - hooks = options.hooks, - packFn = options.packFn, - _options$sampling2 = options.sampling, - sampling = _options$sampling2 === void 0 ? {} : _options$sampling2, - _options$dataURLOptio4 = options.dataURLOptions, - dataURLOptions = _options$dataURLOptio4 === void 0 ? {} : _options$dataURLOptio4, - mousemoveWait = options.mousemoveWait, - _options$recordDOM = options.recordDOM, - recordDOM = _options$recordDOM === void 0 ? true : _options$recordDOM, - _options$recordCanvas2 = options.recordCanvas, - recordCanvas = _options$recordCanvas2 === void 0 ? false : _options$recordCanvas2, - _options$recordCrossO = options.recordCrossOriginIframes, - recordCrossOriginIframes = _options$recordCrossO === void 0 ? false : _options$recordCrossO, - _options$recordAfter = options.recordAfter, - recordAfter = _options$recordAfter === void 0 ? options.recordAfter === "DOMContentLoaded" ? options.recordAfter : "load" : _options$recordAfter, - _options$userTriggere = options.userTriggeredOnInput, - userTriggeredOnInput = _options$userTriggere === void 0 ? false : _options$userTriggere, - _options$collectFonts = options.collectFonts, - collectFonts = _options$collectFonts === void 0 ? false : _options$collectFonts, - _options$inlineImages2 = options.inlineImages, - inlineImages = _options$inlineImages2 === void 0 ? false : _options$inlineImages2, - plugins = options.plugins, - _options$keepIframeSr2 = options.keepIframeSrcFn, - keepIframeSrcFn = _options$keepIframeSr2 === void 0 ? function () { - return false; - } : _options$keepIframeSr2, - _options$ignoreCSSAtt = options.ignoreCSSAttributes, - ignoreCSSAttributes = _options$ignoreCSSAtt === void 0 ? /* @__PURE__ */new Set([]) : _options$ignoreCSSAtt, - errorHandler2 = options.errorHandler; - registerErrorHandler(errorHandler2); - var inEmittingFrame = recordCrossOriginIframes ? window.parent === window : true; - var passEmitsToParent = false; - if (!inEmittingFrame) { - try { - if (window.parent.document) { - passEmitsToParent = false; - } - } catch (e2) { - passEmitsToParent = true; - } - } - if (inEmittingFrame && !emit) { - throw new Error("emit function is required"); - } - if (!inEmittingFrame && !passEmitsToParent) { - return function () {}; - } - if (mousemoveWait !== void 0 && sampling.mousemove === void 0) { - sampling.mousemove = mousemoveWait; - } - mirror.reset(); - var maskInputOptions = maskAllInputs === true ? { - color: true, - date: true, - "datetime-local": true, - email: true, - month: true, - number: true, - range: true, - search: true, - tel: true, - text: true, - time: true, - url: true, - week: true, - textarea: true, - select: true, - password: true - } : _maskInputOptions !== void 0 ? _maskInputOptions : { - password: true - }; - var slimDOMOptions = _slimDOMOptions === true || _slimDOMOptions === "all" ? { - script: true, - comment: true, - headFavicon: true, - headWhitespace: true, - headMetaSocial: true, - headMetaRobots: true, - headMetaHttpEquiv: true, - headMetaVerification: true, - // the following are off for slimDOMOptions === true, - // as they destroy some (hidden) info: - headMetaAuthorship: _slimDOMOptions === "all", - headMetaDescKeywords: _slimDOMOptions === "all", - headTitleMutations: _slimDOMOptions === "all" - } : _slimDOMOptions ? _slimDOMOptions : {}; - polyfill$1(); - var lastFullSnapshotEvent; - var incrementalSnapshotCount = 0; - var eventProcessor = function eventProcessor(e2) { - var _iterator55 = record_createForOfIteratorHelper(plugins || []), - _step55; - try { - for (_iterator55.s(); !(_step55 = _iterator55.n()).done;) { - var plugin3 = _step55.value; - if (plugin3.eventProcessor) { - e2 = plugin3.eventProcessor(e2); - } - } - } catch (err) { - _iterator55.e(err); - } finally { - _iterator55.f(); - } - if (packFn && - // Disable packing events which will be emitted to parent frames. - !passEmitsToParent) { - e2 = packFn(e2); - } - return e2; - }; - wrappedEmit = function wrappedEmit(r2, isCheckout) { - var _a2; - var e2 = r2; - e2.timestamp = nowTimestamp(); - if (((_a2 = mutationBuffers[0]) == null ? void 0 : _a2.isFrozen()) && e2.type !== EventType.FullSnapshot && !(e2.type === EventType.IncrementalSnapshot && e2.data.source === IncrementalSource.Mutation)) { - mutationBuffers.forEach(function (buf) { - return buf.unfreeze(); - }); - } - if (inEmittingFrame) { - emit == null ? void 0 : emit(eventProcessor(e2), isCheckout); - } else if (passEmitsToParent) { - var message = { - type: "rrweb", - event: eventProcessor(e2), - origin: window.location.origin, - isCheckout: isCheckout - }; - window.parent.postMessage(message, "*"); - } - if (e2.type === EventType.FullSnapshot) { - lastFullSnapshotEvent = e2; - incrementalSnapshotCount = 0; - } else if (e2.type === EventType.IncrementalSnapshot) { - if (e2.data.source === IncrementalSource.Mutation && e2.data.isAttachIframe) { - return; - } - incrementalSnapshotCount++; - var exceedCount = checkoutEveryNth && incrementalSnapshotCount >= checkoutEveryNth; - var exceedTime = checkoutEveryNms && e2.timestamp - lastFullSnapshotEvent.timestamp > checkoutEveryNms; - if (exceedCount || exceedTime) { - takeFullSnapshot$1(true); - } - } - }; - var wrappedMutationEmit = function wrappedMutationEmit(m) { - wrappedEmit({ - type: EventType.IncrementalSnapshot, - data: record_objectSpread({ - source: IncrementalSource.Mutation - }, m) - }); - }; - var wrappedScrollEmit = function wrappedScrollEmit(p) { - return wrappedEmit({ - type: EventType.IncrementalSnapshot, - data: record_objectSpread({ - source: IncrementalSource.Scroll - }, p) - }); - }; - var wrappedCanvasMutationEmit = function wrappedCanvasMutationEmit(p) { - return wrappedEmit({ - type: EventType.IncrementalSnapshot, - data: record_objectSpread({ - source: IncrementalSource.CanvasMutation - }, p) - }); - }; - var wrappedAdoptedStyleSheetEmit = function wrappedAdoptedStyleSheetEmit(a2) { - return wrappedEmit({ - type: EventType.IncrementalSnapshot, - data: record_objectSpread({ - source: IncrementalSource.AdoptedStyleSheet - }, a2) - }); - }; - var stylesheetManager = new StylesheetManager({ - mutationCb: wrappedMutationEmit, - adoptedStyleSheetCb: wrappedAdoptedStyleSheetEmit - }); - var iframeManager = new IframeManager({ - mirror: mirror, - mutationCb: wrappedMutationEmit, - stylesheetManager: stylesheetManager, - recordCrossOriginIframes: recordCrossOriginIframes, - wrappedEmit: wrappedEmit - }); - var _iterator56 = record_createForOfIteratorHelper(plugins || []), - _step56; - try { - for (_iterator56.s(); !(_step56 = _iterator56.n()).done;) { - var plugin3 = _step56.value; - if (plugin3.getMirror) plugin3.getMirror({ - nodeMirror: mirror, - crossOriginIframeMirror: iframeManager.crossOriginIframeMirror, - crossOriginIframeStyleMirror: iframeManager.crossOriginIframeStyleMirror - }); - } - } catch (err) { - _iterator56.e(err); - } finally { - _iterator56.f(); - } - var processedNodeManager = new ProcessedNodeManager(); - canvasManager = new CanvasManager({ - recordCanvas: recordCanvas, - mutationCb: wrappedCanvasMutationEmit, - win: window, - blockClass: blockClass, - blockSelector: blockSelector, - mirror: mirror, - sampling: sampling.canvas, - dataURLOptions: dataURLOptions - }); - var shadowDomManager = new ShadowDomManager({ - mutationCb: wrappedMutationEmit, - scrollCb: wrappedScrollEmit, - bypassOptions: { - blockClass: blockClass, - blockSelector: blockSelector, - maskTextClass: maskTextClass, - maskTextSelector: maskTextSelector, - inlineStylesheet: inlineStylesheet, - maskInputOptions: maskInputOptions, - dataURLOptions: dataURLOptions, - maskTextFn: maskTextFn, - maskInputFn: maskInputFn, - recordCanvas: recordCanvas, - inlineImages: inlineImages, - sampling: sampling, - slimDOMOptions: slimDOMOptions, - iframeManager: iframeManager, - stylesheetManager: stylesheetManager, - canvasManager: canvasManager, - keepIframeSrcFn: keepIframeSrcFn, - processedNodeManager: processedNodeManager - }, - mirror: mirror - }); - takeFullSnapshot$1 = function takeFullSnapshot$1() { - var isCheckout = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false; - if (!recordDOM) { - return; - } - wrappedEmit({ - type: EventType.Meta, - data: { - href: window.location.href, - width: getWindowWidth(), - height: getWindowHeight() - } - }, isCheckout); - stylesheetManager.reset(); - shadowDomManager.init(); - mutationBuffers.forEach(function (buf) { - return buf.lock(); - }); - var node2 = snapshot(document, { - mirror: mirror, - blockClass: blockClass, - blockSelector: blockSelector, - maskTextClass: maskTextClass, - maskTextSelector: maskTextSelector, - inlineStylesheet: inlineStylesheet, - maskAllInputs: maskInputOptions, - maskTextFn: maskTextFn, - maskInputFn: maskInputFn, - slimDOM: slimDOMOptions, - dataURLOptions: dataURLOptions, - recordCanvas: recordCanvas, - inlineImages: inlineImages, - onSerialize: function onSerialize(n2) { - if (isSerializedIframe(n2, mirror)) { - iframeManager.addIframe(n2); - } - if (isSerializedStylesheet(n2, mirror)) { - stylesheetManager.trackLinkElement(n2); - } - if (hasShadowRoot(n2)) { - shadowDomManager.addShadowRoot(index.shadowRoot(n2), document); - } - }, - onIframeLoad: function onIframeLoad(iframe, childSn) { - iframeManager.attachIframe(iframe, childSn); - shadowDomManager.observeAttachShadow(iframe); - }, - onStylesheetLoad: function onStylesheetLoad(linkEl, childSn) { - stylesheetManager.attachLinkElement(linkEl, childSn); - }, - keepIframeSrcFn: keepIframeSrcFn - }); - if (!node2) { - return console.warn("Failed to snapshot the document"); - } - wrappedEmit({ - type: EventType.FullSnapshot, - data: { - node: node2, - initialOffset: getWindowScroll(window) - } - }, isCheckout); - mutationBuffers.forEach(function (buf) { - return buf.unlock(); - }); - if (document.adoptedStyleSheets && document.adoptedStyleSheets.length > 0) stylesheetManager.adoptStyleSheets(document.adoptedStyleSheets, mirror.getId(document)); - }; - try { - var handlers = []; - var observe = function observe(doc) { - var _a2; - return callbackWrapper(initObservers)({ - mutationCb: wrappedMutationEmit, - mousemoveCb: function mousemoveCb(positions, source) { - return wrappedEmit({ - type: EventType.IncrementalSnapshot, - data: { - source: source, - positions: positions - } - }); - }, - mouseInteractionCb: function mouseInteractionCb(d) { - return wrappedEmit({ - type: EventType.IncrementalSnapshot, - data: record_objectSpread({ - source: IncrementalSource.MouseInteraction - }, d) - }); - }, - scrollCb: wrappedScrollEmit, - viewportResizeCb: function viewportResizeCb(d) { - return wrappedEmit({ - type: EventType.IncrementalSnapshot, - data: record_objectSpread({ - source: IncrementalSource.ViewportResize - }, d) - }); - }, - inputCb: function inputCb(v2) { - return wrappedEmit({ - type: EventType.IncrementalSnapshot, - data: record_objectSpread({ - source: IncrementalSource.Input - }, v2) - }); - }, - mediaInteractionCb: function mediaInteractionCb(p) { - return wrappedEmit({ - type: EventType.IncrementalSnapshot, - data: record_objectSpread({ - source: IncrementalSource.MediaInteraction - }, p) - }); - }, - styleSheetRuleCb: function styleSheetRuleCb(r2) { - return wrappedEmit({ - type: EventType.IncrementalSnapshot, - data: record_objectSpread({ - source: IncrementalSource.StyleSheetRule - }, r2) - }); - }, - styleDeclarationCb: function styleDeclarationCb(r2) { - return wrappedEmit({ - type: EventType.IncrementalSnapshot, - data: record_objectSpread({ - source: IncrementalSource.StyleDeclaration - }, r2) - }); - }, - canvasMutationCb: wrappedCanvasMutationEmit, - fontCb: function fontCb(p) { - return wrappedEmit({ - type: EventType.IncrementalSnapshot, - data: record_objectSpread({ - source: IncrementalSource.Font - }, p) - }); - }, - selectionCb: function selectionCb(p) { - wrappedEmit({ - type: EventType.IncrementalSnapshot, - data: record_objectSpread({ - source: IncrementalSource.Selection - }, p) - }); - }, - customElementCb: function customElementCb(c2) { - wrappedEmit({ - type: EventType.IncrementalSnapshot, - data: record_objectSpread({ - source: IncrementalSource.CustomElement - }, c2) - }); - }, - blockClass: blockClass, - ignoreClass: ignoreClass, - ignoreSelector: ignoreSelector, - maskTextClass: maskTextClass, - maskTextSelector: maskTextSelector, - maskInputOptions: maskInputOptions, - inlineStylesheet: inlineStylesheet, - sampling: sampling, - recordDOM: recordDOM, - recordCanvas: recordCanvas, - inlineImages: inlineImages, - userTriggeredOnInput: userTriggeredOnInput, - collectFonts: collectFonts, - doc: doc, - maskInputFn: maskInputFn, - maskTextFn: maskTextFn, - keepIframeSrcFn: keepIframeSrcFn, - blockSelector: blockSelector, - slimDOMOptions: slimDOMOptions, - dataURLOptions: dataURLOptions, - mirror: mirror, - iframeManager: iframeManager, - stylesheetManager: stylesheetManager, - shadowDomManager: shadowDomManager, - processedNodeManager: processedNodeManager, - canvasManager: canvasManager, - ignoreCSSAttributes: ignoreCSSAttributes, - plugins: ((_a2 = plugins == null ? void 0 : plugins.filter(function (p) { - return p.observer; - })) == null ? void 0 : _a2.map(function (p) { - return { - observer: p.observer, - options: p.options, - callback: function callback(payload) { - return wrappedEmit({ - type: EventType.Plugin, - data: { - plugin: p.name, - payload: payload - } - }); - } - }; - })) || [] - }, hooks); - }; - iframeManager.addLoadListener(function (iframeEl) { - try { - handlers.push(observe(iframeEl.contentDocument)); - } catch (error) { - console.warn(error); - } - }); - var init = function init() { - takeFullSnapshot$1(); - handlers.push(observe(document)); - recording = true; - }; - if (document.readyState === "interactive" || document.readyState === "complete") { - init(); - } else { - handlers.push(on("DOMContentLoaded", function () { - wrappedEmit({ - type: EventType.DomContentLoaded, - data: {} - }); - if (recordAfter === "DOMContentLoaded") init(); - })); - handlers.push(on("load", function () { - wrappedEmit({ - type: EventType.Load, - data: {} - }); - if (recordAfter === "load") init(); - }, window)); - } - return function () { - handlers.forEach(function (h) { - return h(); - }); - processedNodeManager.destroy(); - recording = false; - unregisterErrorHandler(); - }; - } catch (error) { - console.warn(error); - } -} -record.addCustomEvent = function (tag, payload) { - if (!recording) { - throw new Error("please add custom event after start recording"); - } - wrappedEmit({ - type: EventType.Custom, - data: { - tag: tag, - payload: payload - } - }); -}; -record.freezePage = function () { - mutationBuffers.forEach(function (buf) { - return buf.freeze(); - }); -}; -record.takeFullSnapshot = function (isCheckout) { - if (!recording) { - throw new Error("please take full snapshot after start recording"); - } - takeFullSnapshot$1(isCheckout); -}; -record.mirror = mirror; -var n; -!function (t2) { - t2[t2.NotStarted = 0] = "NotStarted", t2[t2.Running = 1] = "Running", t2[t2.Stopped = 2] = "Stopped"; -}(n || (n = {})); - -;// ./node_modules/@rrweb/types/dist/types.js -var types_EventType = /* @__PURE__ */function (EventType2) { - EventType2[EventType2["DomContentLoaded"] = 0] = "DomContentLoaded"; - EventType2[EventType2["Load"] = 1] = "Load"; - EventType2[EventType2["FullSnapshot"] = 2] = "FullSnapshot"; - EventType2[EventType2["IncrementalSnapshot"] = 3] = "IncrementalSnapshot"; - EventType2[EventType2["Meta"] = 4] = "Meta"; - EventType2[EventType2["Custom"] = 5] = "Custom"; - EventType2[EventType2["Plugin"] = 6] = "Plugin"; - return EventType2; -}(types_EventType || {}); -var types_IncrementalSource = /* @__PURE__ */function (IncrementalSource2) { - IncrementalSource2[IncrementalSource2["Mutation"] = 0] = "Mutation"; - IncrementalSource2[IncrementalSource2["MouseMove"] = 1] = "MouseMove"; - IncrementalSource2[IncrementalSource2["MouseInteraction"] = 2] = "MouseInteraction"; - IncrementalSource2[IncrementalSource2["Scroll"] = 3] = "Scroll"; - IncrementalSource2[IncrementalSource2["ViewportResize"] = 4] = "ViewportResize"; - IncrementalSource2[IncrementalSource2["Input"] = 5] = "Input"; - IncrementalSource2[IncrementalSource2["TouchMove"] = 6] = "TouchMove"; - IncrementalSource2[IncrementalSource2["MediaInteraction"] = 7] = "MediaInteraction"; - IncrementalSource2[IncrementalSource2["StyleSheetRule"] = 8] = "StyleSheetRule"; - IncrementalSource2[IncrementalSource2["CanvasMutation"] = 9] = "CanvasMutation"; - IncrementalSource2[IncrementalSource2["Font"] = 10] = "Font"; - IncrementalSource2[IncrementalSource2["Log"] = 11] = "Log"; - IncrementalSource2[IncrementalSource2["Drag"] = 12] = "Drag"; - IncrementalSource2[IncrementalSource2["StyleDeclaration"] = 13] = "StyleDeclaration"; - IncrementalSource2[IncrementalSource2["Selection"] = 14] = "Selection"; - IncrementalSource2[IncrementalSource2["AdoptedStyleSheet"] = 15] = "AdoptedStyleSheet"; - IncrementalSource2[IncrementalSource2["CustomElement"] = 16] = "CustomElement"; - return IncrementalSource2; -}(types_IncrementalSource || {}); -var types_MouseInteractions = /* @__PURE__ */function (MouseInteractions2) { - MouseInteractions2[MouseInteractions2["MouseUp"] = 0] = "MouseUp"; - MouseInteractions2[MouseInteractions2["MouseDown"] = 1] = "MouseDown"; - MouseInteractions2[MouseInteractions2["Click"] = 2] = "Click"; - MouseInteractions2[MouseInteractions2["ContextMenu"] = 3] = "ContextMenu"; - MouseInteractions2[MouseInteractions2["DblClick"] = 4] = "DblClick"; - MouseInteractions2[MouseInteractions2["Focus"] = 5] = "Focus"; - MouseInteractions2[MouseInteractions2["Blur"] = 6] = "Blur"; - MouseInteractions2[MouseInteractions2["TouchStart"] = 7] = "TouchStart"; - MouseInteractions2[MouseInteractions2["TouchMove_Departed"] = 8] = "TouchMove_Departed"; - MouseInteractions2[MouseInteractions2["TouchEnd"] = 9] = "TouchEnd"; - MouseInteractions2[MouseInteractions2["TouchCancel"] = 10] = "TouchCancel"; - return MouseInteractions2; -}(types_MouseInteractions || {}); -var types_PointerTypes = /* @__PURE__ */function (PointerTypes2) { - PointerTypes2[PointerTypes2["Mouse"] = 0] = "Mouse"; - PointerTypes2[PointerTypes2["Pen"] = 1] = "Pen"; - PointerTypes2[PointerTypes2["Touch"] = 2] = "Touch"; - return PointerTypes2; -}(types_PointerTypes || {}); -var types_CanvasContext = /* @__PURE__ */function (CanvasContext2) { - CanvasContext2[CanvasContext2["2D"] = 0] = "2D"; - CanvasContext2[CanvasContext2["WebGL"] = 1] = "WebGL"; - CanvasContext2[CanvasContext2["WebGL2"] = 2] = "WebGL2"; - return CanvasContext2; -}(types_CanvasContext || {}); -var types_MediaInteractions = /* @__PURE__ */function (MediaInteractions2) { - MediaInteractions2[MediaInteractions2["Play"] = 0] = "Play"; - MediaInteractions2[MediaInteractions2["Pause"] = 1] = "Pause"; - MediaInteractions2[MediaInteractions2["Seeked"] = 2] = "Seeked"; - MediaInteractions2[MediaInteractions2["VolumeChange"] = 3] = "VolumeChange"; - MediaInteractions2[MediaInteractions2["RateChange"] = 4] = "RateChange"; - return MediaInteractions2; -}(types_MediaInteractions || {}); -var ReplayerEvents = /* @__PURE__ */function (ReplayerEvents2) { - ReplayerEvents2["Start"] = "start"; - ReplayerEvents2["Pause"] = "pause"; - ReplayerEvents2["Resume"] = "resume"; - ReplayerEvents2["Resize"] = "resize"; - ReplayerEvents2["Finish"] = "finish"; - ReplayerEvents2["FullsnapshotRebuilded"] = "fullsnapshot-rebuilded"; - ReplayerEvents2["LoadStylesheetStart"] = "load-stylesheet-start"; - ReplayerEvents2["LoadStylesheetEnd"] = "load-stylesheet-end"; - ReplayerEvents2["SkipStart"] = "skip-start"; - ReplayerEvents2["SkipEnd"] = "skip-end"; - ReplayerEvents2["MouseInteraction"] = "mouse-interaction"; - ReplayerEvents2["EventCast"] = "event-cast"; - ReplayerEvents2["CustomEvent"] = "custom-event"; - ReplayerEvents2["Flush"] = "flush"; - ReplayerEvents2["StateChange"] = "state-change"; - ReplayerEvents2["PlayBack"] = "play-back"; - ReplayerEvents2["Destroy"] = "destroy"; - return ReplayerEvents2; -}(ReplayerEvents || {}); -var types_NodeType = /* @__PURE__ */function (NodeType2) { - NodeType2[NodeType2["Document"] = 0] = "Document"; - NodeType2[NodeType2["DocumentType"] = 1] = "DocumentType"; - NodeType2[NodeType2["Element"] = 2] = "Element"; - NodeType2[NodeType2["Text"] = 3] = "Text"; - NodeType2[NodeType2["CDATA"] = 4] = "CDATA"; - NodeType2[NodeType2["Comment"] = 5] = "Comment"; - return NodeType2; -}(types_NodeType || {}); - -;// ./src/browser/replay/recorder.js -var recorder_excluded = ["enabled", "autoStart", "maxSeconds", "postDuration", "triggers", "debug", "emit", "checkoutEveryNms"]; -function recorder_typeof(o) { "@babel/helpers - typeof"; return recorder_typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, recorder_typeof(o); } -function recorder_createForOfIteratorHelper(r, e) { var t = "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (!t) { if (Array.isArray(r) || (t = recorder_unsupportedIterableToArray(r)) || e && r && "number" == typeof r.length) { t && (r = t); var _n = 0, F = function F() {}; return { s: F, n: function n() { return _n >= r.length ? { done: !0 } : { done: !1, value: r[_n++] }; }, e: function e(r) { throw r; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var o, a = !0, u = !1; return { s: function s() { t = t.call(r); }, n: function n() { var r = t.next(); return a = r.done, r; }, e: function e(r) { u = !0, o = r; }, f: function f() { try { a || null == t.return || t.return(); } finally { if (u) throw o; } } }; } -function recorder_unsupportedIterableToArray(r, a) { if (r) { if ("string" == typeof r) return recorder_arrayLikeToArray(r, a); var t = {}.toString.call(r).slice(8, -1); return "Object" === t && r.constructor && (t = r.constructor.name), "Map" === t || "Set" === t ? Array.from(r) : "Arguments" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? recorder_arrayLikeToArray(r, a) : void 0; } } -function recorder_arrayLikeToArray(r, a) { (null == a || a > r.length) && (a = r.length); for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; return n; } -function recorder_ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; } -function recorder_objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? recorder_ownKeys(Object(t), !0).forEach(function (r) { recorder_defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : recorder_ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; } -function recorder_objectWithoutProperties(e, t) { if (null == e) return {}; var o, r, i = recorder_objectWithoutPropertiesLoose(e, t); if (Object.getOwnPropertySymbols) { var n = Object.getOwnPropertySymbols(e); for (r = 0; r < n.length; r++) o = n[r], -1 === t.indexOf(o) && {}.propertyIsEnumerable.call(e, o) && (i[o] = e[o]); } return i; } -function recorder_objectWithoutPropertiesLoose(r, e) { if (null == r) return {}; var t = {}; for (var n in r) if ({}.hasOwnProperty.call(r, n)) { if (-1 !== e.indexOf(n)) continue; t[n] = r[n]; } return t; } -function recorder_classCallCheck(a, n) { if (!(a instanceof n)) throw new TypeError("Cannot call a class as a function"); } -function recorder_defineProperties(e, r) { for (var t = 0; t < r.length; t++) { var o = r[t]; o.enumerable = o.enumerable || !1, o.configurable = !0, "value" in o && (o.writable = !0), Object.defineProperty(e, recorder_toPropertyKey(o.key), o); } } -function recorder_createClass(e, r, t) { return r && recorder_defineProperties(e.prototype, r), t && recorder_defineProperties(e, t), Object.defineProperty(e, "prototype", { writable: !1 }), e; } -function recorder_defineProperty(e, r, t) { return (r = recorder_toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; } -function recorder_toPropertyKey(t) { var i = recorder_toPrimitive(t, "string"); return "symbol" == recorder_typeof(i) ? i : i + ""; } -function recorder_toPrimitive(t, r) { if ("object" != recorder_typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != recorder_typeof(i)) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); } - - - - - -/** @typedef {import('./recorder.js').BufferCursor} BufferCursor */ -var Recorder = /*#__PURE__*/function () { - /** - * Creates a new Recorder instance for capturing DOM events - * - * @param {Object} options - Configuration options for the recorder - */ - function Recorder(options) { - recorder_classCallCheck(this, Recorder); - recorder_defineProperty(this, "_options", void 0); - recorder_defineProperty(this, "_rrwebOptions", void 0); - recorder_defineProperty(this, "_isReady", false); - recorder_defineProperty(this, "_stopFn", null); - recorder_defineProperty(this, "_recordFn", void 0); - /** A two-slot ring buffer for storing events. */ - recorder_defineProperty(this, "_buffers", [[], []]); - /** Active slot index (0|1). Stores new events until next checkout. */ - recorder_defineProperty(this, "_currentSlot", 0); - this.options = options; - - // Tests inject a custom rrweb record function or mock. - this._recordFn = options.recordFn || record; - } - return recorder_createClass(Recorder, [{ - key: "_previousSlot", - get: /** Index of the finalized inactive slot (0|1). Frozen until next checkout. */ - function get() { - return this._currentSlot ^ 1; - } - }, { - key: "isRecording", - get: function get() { - return this._stopFn !== null; - } - }, { - key: "isReady", - get: function get() { - return this._isReady; - } - }, { - key: "options", - get: function get() { - return this._options; - }, - set: function set(newOptions) { - this.configure(newOptions); - } - }, { - key: "configure", - value: function configure(newOptions) { - var enabled = newOptions.enabled, - autoStart = newOptions.autoStart, - maxSeconds = newOptions.maxSeconds, - postDuration = newOptions.postDuration, - triggers = newOptions.triggers, - debug = newOptions.debug, - emit = newOptions.emit, - checkoutEveryNms = newOptions.checkoutEveryNms, - rrwebOptions = recorder_objectWithoutProperties(newOptions, recorder_excluded); - this._options = { - enabled: enabled, - autoStart: autoStart, - maxSeconds: maxSeconds, - postDuration: postDuration, - triggers: triggers, - debug: debug - }; - this._rrwebOptions = rrwebOptions; - if (this.isRecording && newOptions.enabled === false) { - this.stop(); - } - } - - /** - * Calculates the checkout interval in milliseconds. - * - * Recording may span up to two checkout intervals, so the interval is set - * to half of maxSeconds to ensure coverage. - * - * @returns {number} Checkout interval in milliseconds - */ - }, { - key: "checkoutEveryNms", - value: function checkoutEveryNms() { - return (this.options.maxSeconds || 10) * 1000 / 2; - } - - /** - * Returns a point-in-time cursor for the active buffer. - * - * Used to capture a stable cursor that survives a single checkout. - * - * @remarks - * - * While offset can be `-1` if the buffer is empty, this cannot occur when - * `_isReady` is `true`. The emit callback always pushes the triggering event - * after any buffer reset, ensuring the active buffer has at least one event. - * - * @returns {BufferCursor} Buffer slot and event exclusive offset. - */ - }, { - key: "bufferCursor", - value: function bufferCursor() { - return { - slot: this._currentSlot, - offset: this._buffers[this._currentSlot].length - 1 - }; - } - - /** - * Exports the recording span with all recorded events or events after a cursor. - * - * @param {Object} tracing - The tracing system instance to create spans - * @param {Object} attributes - Span attributes (rollbar.replay.id, etc.) - * @param {BufferCursor} [cursor] - Cursor position to start from (exclusive), or all if not provided - */ - }, { - key: "exportRecordingSpan", - value: function exportRecordingSpan(tracing) { - var _tracing$session$attr, _tracing$session; - var attributes = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {}; - var cursor = arguments.length > 2 ? arguments[2] : undefined; - var events = cursor ? this._collectEventsFromCursor(cursor) : this._collectAll(); - if (events.length === 0) { - throw new Error('Replay recording has no events'); - } - var recordingSpan = tracing.startSpan('rrweb-replay-recording', {}); - recordingSpan.setAttributes(recorder_objectSpread(recorder_objectSpread({}, (_tracing$session$attr = (_tracing$session = tracing.session) === null || _tracing$session === void 0 ? void 0 : _tracing$session.attributes) !== null && _tracing$session$attr !== void 0 ? _tracing$session$attr : {}), attributes)); - var earliestEvent = events.reduce(function (earliestEvent, event) { - return event.timestamp < earliestEvent.timestamp ? event : earliestEvent; - }); - recordingSpan.span.startTime = hrtime.fromMillis(earliestEvent.timestamp); - var _iterator = recorder_createForOfIteratorHelper(events), - _step; - try { - for (_iterator.s(); !(_step = _iterator.n()).done;) { - var event = _step.value; - recordingSpan.addEvent('rrweb-replay-events', { - eventType: event.type, - json: JSON.stringify(event.data) - }, hrtime.fromMillis(event.timestamp)); - } - } catch (err) { - _iterator.e(err); - } finally { - _iterator.f(); - } - recordingSpan.end(); - } - }, { - key: "start", - value: function start() { - var _this = this; - if (this.isRecording || this.options.enabled === false) { - return; - } - this.clear(); - this._stopFn = this._recordFn(recorder_objectSpread({ - emit: function emit(event, isCheckout) { - var _this$options$debug; - if (!_this._isReady && event.type === types_EventType.FullSnapshot) { - _this._isReady = true; - } - if ((_this$options$debug = _this.options.debug) !== null && _this$options$debug !== void 0 && _this$options$debug.logEmits) { - Recorder._logEvent(event, isCheckout); - } - if (isCheckout && event.type === types_EventType.Meta) { - _this._currentSlot = _this._previousSlot; - _this._buffers[_this._currentSlot] = []; - } - _this._buffers[_this._currentSlot].push(event); - }, - checkoutEveryNms: this.checkoutEveryNms(), - errorHandler: function errorHandler(error) { - var _this$options$debug2; - if ((_this$options$debug2 = _this.options.debug) !== null && _this$options$debug2 !== void 0 && _this$options$debug2.logErrors) { - src_logger.error('Error during replay recording', error); - } - return true; // swallow the error instead of throwing it to the window - } - }, this._rrwebOptions)); - return this; - } - }, { - key: "stop", - value: function stop() { - if (!this.isRecording) { - return; - } - this._stopFn(); - this._stopFn = null; - this._isReady = false; - return this; - } - }, { - key: "clear", - value: function clear() { - this._buffers = [[], []]; - this._currentSlot = 0; - this._isReady = false; - } - - /** - * Collects all events (previous ⊕ current) and returns a new array with a - * trailing `replay.end` marker. - * - * @returns {Array} All events with replay.end marker - * @private - */ - }, { - key: "_collectAll", - value: function _collectAll() { - var previousEvents = this._buffers[this._previousSlot]; - var currentEvents = this._buffers[this._currentSlot]; - var allEvents = previousEvents.concat(currentEvents); - if (allEvents.length > 0) { - allEvents.push(Recorder._replayEndEvent()); - } - return allEvents; - } - - /** - * Collects events strictly after `cursor` (exclusive) and returns a new - * array with `replay.end`. - * - * @param {BufferCursor} cursor - Cursor position to collect from - * @returns {Array} Events after cursor with replay.end marker - * @private - */ - }, { - key: "_collectEventsFromCursor", - value: function _collectEventsFromCursor(cursor) { - var _this$_buffers$cursor, _this$options$debug3; - var currentSlot = this._currentSlot; - var capturedBuffer = (_this$_buffers$cursor = this._buffers[cursor.slot]) !== null && _this$_buffers$cursor !== void 0 ? _this$_buffers$cursor : []; - var currentBuffer = this._buffers[currentSlot]; - var head = capturedBuffer.slice(Math.max(0, cursor.offset + 1)); - var tail = cursor.slot === currentSlot ? [] : currentBuffer; - var events = head.concat(tail); - if ((_this$options$debug3 = this.options.debug) !== null && _this$options$debug3 !== void 0 && _this$options$debug3.logErrors) { - if (cursor.slot !== currentSlot && head.length === 0) { - src_logger.warn('Captured lead buffer cleared by multiple checkouts'); - } - } - if (events.length > 0) { - events.push(Recorder._replayEndEvent()); - } - return events; - } - - /** - * Creates a replay.end noop marker event. - * - * Helps the application correctly align playback when added at the end of - * the recording. - * - * @returns {Object} replay.end event - * @private - */ - }], [{ - key: "_replayEndEvent", - value: function _replayEndEvent() { - return { - type: types_EventType.Custom, - timestamp: Date.now(), - data: { - tag: 'replay.end', - payload: {} - } - }; - } - - /** - * Logs an event for debugging purposes. - * - * @param {Object} event - The event to log - * @param {boolean} isCheckout - Whether this is a checkout event - * @private - */ - }, { - key: "_logEvent", - value: function _logEvent(event, isCheckout) { - src_logger.log("Recorder: ".concat(isCheckout ? 'checkout' : '', " event\n"), function (e) { - var seen = new WeakSet(); - return JSON.stringify(e, function (_, v) { - if (recorder_typeof(v) === 'object' && v !== null) { - if (seen.has(v)) return '[Circular]'; - seen.add(v); - } - return v; - }, 2); - }(event)); - } - }]); -}(); - -;// ./src/browser/replay/replayPredicates.js -function replayPredicates_typeof(o) { "@babel/helpers - typeof"; return replayPredicates_typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, replayPredicates_typeof(o); } -function replayPredicates_createForOfIteratorHelper(r, e) { var t = "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (!t) { if (Array.isArray(r) || (t = replayPredicates_unsupportedIterableToArray(r)) || e && r && "number" == typeof r.length) { t && (r = t); var _n = 0, F = function F() {}; return { s: F, n: function n() { return _n >= r.length ? { done: !0 } : { done: !1, value: r[_n++] }; }, e: function e(r) { throw r; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var o, a = !0, u = !1; return { s: function s() { t = t.call(r); }, n: function n() { var r = t.next(); return a = r.done, r; }, e: function e(r) { u = !0, o = r; }, f: function f() { try { a || null == t.return || t.return(); } finally { if (u) throw o; } } }; } -function replayPredicates_unsupportedIterableToArray(r, a) { if (r) { if ("string" == typeof r) return replayPredicates_arrayLikeToArray(r, a); var t = {}.toString.call(r).slice(8, -1); return "Object" === t && r.constructor && (t = r.constructor.name), "Map" === t || "Set" === t ? Array.from(r) : "Arguments" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? replayPredicates_arrayLikeToArray(r, a) : void 0; } } -function replayPredicates_arrayLikeToArray(r, a) { (null == a || a > r.length) && (a = r.length); for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; return n; } -function replayPredicates_ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; } -function replayPredicates_objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? replayPredicates_ownKeys(Object(t), !0).forEach(function (r) { replayPredicates_defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : replayPredicates_ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; } -function replayPredicates_classCallCheck(a, n) { if (!(a instanceof n)) throw new TypeError("Cannot call a class as a function"); } -function replayPredicates_defineProperties(e, r) { for (var t = 0; t < r.length; t++) { var o = r[t]; o.enumerable = o.enumerable || !1, o.configurable = !0, "value" in o && (o.writable = !0), Object.defineProperty(e, replayPredicates_toPropertyKey(o.key), o); } } -function replayPredicates_createClass(e, r, t) { return r && replayPredicates_defineProperties(e.prototype, r), t && replayPredicates_defineProperties(e, t), Object.defineProperty(e, "prototype", { writable: !1 }), e; } -function replayPredicates_defineProperty(e, r, t) { return (r = replayPredicates_toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; } -function replayPredicates_toPropertyKey(t) { var i = replayPredicates_toPrimitive(t, "string"); return "symbol" == replayPredicates_typeof(i) ? i : i + ""; } -function replayPredicates_toPrimitive(t, r) { if ("object" != replayPredicates_typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != replayPredicates_typeof(i)) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); } -/** - * ReplayPredicates - Determine if replay is enabled for a given trigger type. - * - */ -var ReplayPredicates = /*#__PURE__*/function () { - /* - * Constructor for ReplayPredicates. - * - * @param {Object} config - Configuration object containing replay settings. - */ - function ReplayPredicates(config) { - replayPredicates_classCallCheck(this, ReplayPredicates); - replayPredicates_defineProperty(this, "maxAdjustedCount", Math.pow(2, 56)); - this.config = config || {}; - this.triggers = this._triggersWithDefaults(config); - this.predicates = { - occurrence: [this.isLevelMatching.bind(this), this.isSampled.bind(this)], - navigation: [this.isPathMatching.bind(this), this.isSampled.bind(this)], - direct: [this.isTagMatching.bind(this), this.isSampled.bind(this)] - }; - } - return replayPredicates_createClass(ReplayPredicates, [{ - key: "_triggersWithDefaults", - value: function _triggersWithDefaults(config) { - var triggers = (config === null || config === void 0 ? void 0 : config.triggers) || []; - return triggers.map(function (t) { - return replayPredicates_objectSpread(replayPredicates_objectSpread({}, config.triggerDefaults), t); - }); - } - - /** - * shouldCaptureForTriggerContext - Checks if replay is enabled for a given trigger type. - * Applies all predicates for that trigger type and returns true if all predicates pass - * for any matching trigger. - * - * @param {Object} context - Context object containing state used by predicates. - * @return {Object} - The first matching trigger if enabled, otherwise null. - */ - }, { - key: "shouldCaptureForTriggerContext", - value: function shouldCaptureForTriggerContext(context) { - var predicates = this.predicates[context.type]; - var _iterator = replayPredicates_createForOfIteratorHelper(this.triggers), - _step; - try { - for (_iterator.s(); !(_step = _iterator.n()).done;) { - var t = _step.value; - if (t.type === context.type && this.isEnabledForTrigger(t, predicates, context)) { - return t; - } - } - } catch (err) { - _iterator.e(err); - } finally { - _iterator.f(); - } - return null; - } - }, { - key: "isEnabledForTrigger", - value: function isEnabledForTrigger(trigger, predicates, context) { - if (predicates.find(function (p) { - return !p(trigger, context); - })) { - return false; - } - return true; - } - - /** - * isLevelMatching - Checks if the trigger's level matches the context item's level. - * If no level is specified in the trigger, it defaults to matching all levels. - * @param {Object} trigger - The trigger object containing the level. - * @return {boolean} - True if the trigger's level matches the context item's level, false otherwise. - */ - }, { - key: "isLevelMatching", - value: function isLevelMatching(trigger, context) { - if (!trigger.level || trigger.level.includes(context.level)) { - return true; - } - return false; - } - - /** - * isPathMatching - Checks if the trigger's pathMatch regex matches the context item's path. - * If no pathMatch is specified in the trigger, it defaults to matching all paths. - * @param {Object} trigger - The trigger object containing the pathMatch regex. - * @return {boolean} - True if the trigger's pathMatch matches the context item's path, false otherwise. - */ - }, { - key: "isPathMatching", - value: function isPathMatching(trigger, context) { - var _context$path; - if (!trigger.pathMatch) return true; - if ((_context$path = context.path) !== null && _context$path !== void 0 && _context$path.match(new RegExp(trigger.pathMatch))) { - return true; - } - return false; - } - - /** - * isTagMatching - Checks if the trigger's tags match any of the context item's tags. - * If no tags are specified in the trigger, it defaults to matching all tags. - * @param {Object} trigger - The trigger object containing the tags. - * @return {boolean} - True if the trigger's tags match any of the context item's tags, false otherwise. - */ - }, { - key: "isTagMatching", - value: function isTagMatching(trigger, context) { - var _context$tags; - if (!trigger.tags) return true; - if ((_context$tags = context.tags) !== null && _context$tags !== void 0 && _context$tags.some(function (t) { - return trigger.tags.includes(t); - })) { - return true; - } - return false; - } - - /** - * isSampled - Determines if the trigger should be sampled based on its sampling ratio. - * If no ratio is specified, defaults to 1 (always sampled). - * - * Sampling algorithm is based on OTel probability sampling as described in - * * https://opentelemetry.io/docs/specs/otel/trace/tracestate-probability-sampling/ - * * https://opentelemetry.io/docs/specs/otel/trace/tracestate-handling/ - * - * Note: String compare is more performant than conversion to float, - * assuming the `th` calculation will be moved to the trigger configuration. - * This allows `toString` to be called once, rather than `parseInt` to be called on - * each replay. - * - * @param {Object} trigger - The trigger object containing the sampling ratio. - * @returns {boolean} - True if the trigger is sampled, false otherwise. - */ - }, { - key: "isSampled", - value: function isSampled(trigger, context) { - var _trigger$samplingRati; - var ratio = (_trigger$samplingRati = trigger.samplingRatio) !== null && _trigger$samplingRati !== void 0 ? _trigger$samplingRati : 1; - if (ratio == 1) { - return true; - } - var rv = context.replayId.slice(-14); - var th = (this.maxAdjustedCount * (1 - ratio)).toString(16).padStart(14, '0'); - return rv >= th; - } - }]); -}(); - -;// ./src/browser/replay/replayManager.js -function replayManager_typeof(o) { "@babel/helpers - typeof"; return replayManager_typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, replayManager_typeof(o); } -function replayManager_slicedToArray(r, e) { return replayManager_arrayWithHoles(r) || replayManager_iterableToArrayLimit(r, e) || replayManager_unsupportedIterableToArray(r, e) || replayManager_nonIterableRest(); } -function replayManager_nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } -function replayManager_unsupportedIterableToArray(r, a) { if (r) { if ("string" == typeof r) return replayManager_arrayLikeToArray(r, a); var t = {}.toString.call(r).slice(8, -1); return "Object" === t && r.constructor && (t = r.constructor.name), "Map" === t || "Set" === t ? Array.from(r) : "Arguments" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? replayManager_arrayLikeToArray(r, a) : void 0; } } -function replayManager_arrayLikeToArray(r, a) { (null == a || a > r.length) && (a = r.length); for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; return n; } -function replayManager_iterableToArrayLimit(r, l) { var t = null == r ? null : "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (null != t) { var e, n, i, u, a = [], f = !0, o = !1; try { if (i = (t = t.call(r)).next, 0 === l) { if (Object(t) !== t) return; f = !1; } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0); } catch (r) { o = !0, n = r; } finally { try { if (!f && null != t.return && (u = t.return(), Object(u) !== u)) return; } finally { if (o) throw n; } } return a; } } -function replayManager_arrayWithHoles(r) { if (Array.isArray(r)) return r; } -function replayManager_ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; } -function replayManager_objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? replayManager_ownKeys(Object(t), !0).forEach(function (r) { replayManager_defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : replayManager_ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; } -function replayManager_regeneratorRuntime() { "use strict"; /*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/facebook/regenerator/blob/main/LICENSE */ replayManager_regeneratorRuntime = function _regeneratorRuntime() { return e; }; var t, e = {}, r = Object.prototype, n = r.hasOwnProperty, o = Object.defineProperty || function (t, e, r) { t[e] = r.value; }, i = "function" == typeof Symbol ? Symbol : {}, a = i.iterator || "@@iterator", c = i.asyncIterator || "@@asyncIterator", u = i.toStringTag || "@@toStringTag"; function define(t, e, r) { return Object.defineProperty(t, e, { value: r, enumerable: !0, configurable: !0, writable: !0 }), t[e]; } try { define({}, ""); } catch (t) { define = function define(t, e, r) { return t[e] = r; }; } function wrap(t, e, r, n) { var i = e && e.prototype instanceof Generator ? e : Generator, a = Object.create(i.prototype), c = new Context(n || []); return o(a, "_invoke", { value: makeInvokeMethod(t, r, c) }), a; } function tryCatch(t, e, r) { try { return { type: "normal", arg: t.call(e, r) }; } catch (t) { return { type: "throw", arg: t }; } } e.wrap = wrap; var h = "suspendedStart", l = "suspendedYield", f = "executing", s = "completed", y = {}; function Generator() {} function GeneratorFunction() {} function GeneratorFunctionPrototype() {} var p = {}; define(p, a, function () { return this; }); var d = Object.getPrototypeOf, v = d && d(d(values([]))); v && v !== r && n.call(v, a) && (p = v); var g = GeneratorFunctionPrototype.prototype = Generator.prototype = Object.create(p); function defineIteratorMethods(t) { ["next", "throw", "return"].forEach(function (e) { define(t, e, function (t) { return this._invoke(e, t); }); }); } function AsyncIterator(t, e) { function invoke(r, o, i, a) { var c = tryCatch(t[r], t, o); if ("throw" !== c.type) { var u = c.arg, h = u.value; return h && "object" == replayManager_typeof(h) && n.call(h, "__await") ? e.resolve(h.__await).then(function (t) { invoke("next", t, i, a); }, function (t) { invoke("throw", t, i, a); }) : e.resolve(h).then(function (t) { u.value = t, i(u); }, function (t) { return invoke("throw", t, i, a); }); } a(c.arg); } var r; o(this, "_invoke", { value: function value(t, n) { function callInvokeWithMethodAndArg() { return new e(function (e, r) { invoke(t, n, e, r); }); } return r = r ? r.then(callInvokeWithMethodAndArg, callInvokeWithMethodAndArg) : callInvokeWithMethodAndArg(); } }); } function makeInvokeMethod(e, r, n) { var o = h; return function (i, a) { if (o === f) throw Error("Generator is already running"); if (o === s) { if ("throw" === i) throw a; return { value: t, done: !0 }; } for (n.method = i, n.arg = a;;) { var c = n.delegate; if (c) { var u = maybeInvokeDelegate(c, n); if (u) { if (u === y) continue; return u; } } if ("next" === n.method) n.sent = n._sent = n.arg;else if ("throw" === n.method) { if (o === h) throw o = s, n.arg; n.dispatchException(n.arg); } else "return" === n.method && n.abrupt("return", n.arg); o = f; var p = tryCatch(e, r, n); if ("normal" === p.type) { if (o = n.done ? s : l, p.arg === y) continue; return { value: p.arg, done: n.done }; } "throw" === p.type && (o = s, n.method = "throw", n.arg = p.arg); } }; } function maybeInvokeDelegate(e, r) { var n = r.method, o = e.iterator[n]; if (o === t) return r.delegate = null, "throw" === n && e.iterator.return && (r.method = "return", r.arg = t, maybeInvokeDelegate(e, r), "throw" === r.method) || "return" !== n && (r.method = "throw", r.arg = new TypeError("The iterator does not provide a '" + n + "' method")), y; var i = tryCatch(o, e.iterator, r.arg); if ("throw" === i.type) return r.method = "throw", r.arg = i.arg, r.delegate = null, y; var a = i.arg; return a ? a.done ? (r[e.resultName] = a.value, r.next = e.nextLoc, "return" !== r.method && (r.method = "next", r.arg = t), r.delegate = null, y) : a : (r.method = "throw", r.arg = new TypeError("iterator result is not an object"), r.delegate = null, y); } function pushTryEntry(t) { var e = { tryLoc: t[0] }; 1 in t && (e.catchLoc = t[1]), 2 in t && (e.finallyLoc = t[2], e.afterLoc = t[3]), this.tryEntries.push(e); } function resetTryEntry(t) { var e = t.completion || {}; e.type = "normal", delete e.arg, t.completion = e; } function Context(t) { this.tryEntries = [{ tryLoc: "root" }], t.forEach(pushTryEntry, this), this.reset(!0); } function values(e) { if (e || "" === e) { var r = e[a]; if (r) return r.call(e); if ("function" == typeof e.next) return e; if (!isNaN(e.length)) { var o = -1, i = function next() { for (; ++o < e.length;) if (n.call(e, o)) return next.value = e[o], next.done = !1, next; return next.value = t, next.done = !0, next; }; return i.next = i; } } throw new TypeError(replayManager_typeof(e) + " is not iterable"); } return GeneratorFunction.prototype = GeneratorFunctionPrototype, o(g, "constructor", { value: GeneratorFunctionPrototype, configurable: !0 }), o(GeneratorFunctionPrototype, "constructor", { value: GeneratorFunction, configurable: !0 }), GeneratorFunction.displayName = define(GeneratorFunctionPrototype, u, "GeneratorFunction"), e.isGeneratorFunction = function (t) { var e = "function" == typeof t && t.constructor; return !!e && (e === GeneratorFunction || "GeneratorFunction" === (e.displayName || e.name)); }, e.mark = function (t) { return Object.setPrototypeOf ? Object.setPrototypeOf(t, GeneratorFunctionPrototype) : (t.__proto__ = GeneratorFunctionPrototype, define(t, u, "GeneratorFunction")), t.prototype = Object.create(g), t; }, e.awrap = function (t) { return { __await: t }; }, defineIteratorMethods(AsyncIterator.prototype), define(AsyncIterator.prototype, c, function () { return this; }), e.AsyncIterator = AsyncIterator, e.async = function (t, r, n, o, i) { void 0 === i && (i = Promise); var a = new AsyncIterator(wrap(t, r, n, o), i); return e.isGeneratorFunction(r) ? a : a.next().then(function (t) { return t.done ? t.value : a.next(); }); }, defineIteratorMethods(g), define(g, u, "Generator"), define(g, a, function () { return this; }), define(g, "toString", function () { return "[object Generator]"; }), e.keys = function (t) { var e = Object(t), r = []; for (var n in e) r.push(n); return r.reverse(), function next() { for (; r.length;) { var t = r.pop(); if (t in e) return next.value = t, next.done = !1, next; } return next.done = !0, next; }; }, e.values = values, Context.prototype = { constructor: Context, reset: function reset(e) { if (this.prev = 0, this.next = 0, this.sent = this._sent = t, this.done = !1, this.delegate = null, this.method = "next", this.arg = t, this.tryEntries.forEach(resetTryEntry), !e) for (var r in this) "t" === r.charAt(0) && n.call(this, r) && !isNaN(+r.slice(1)) && (this[r] = t); }, stop: function stop() { this.done = !0; var t = this.tryEntries[0].completion; if ("throw" === t.type) throw t.arg; return this.rval; }, dispatchException: function dispatchException(e) { if (this.done) throw e; var r = this; function handle(n, o) { return a.type = "throw", a.arg = e, r.next = n, o && (r.method = "next", r.arg = t), !!o; } for (var o = this.tryEntries.length - 1; o >= 0; --o) { var i = this.tryEntries[o], a = i.completion; if ("root" === i.tryLoc) return handle("end"); if (i.tryLoc <= this.prev) { var c = n.call(i, "catchLoc"), u = n.call(i, "finallyLoc"); if (c && u) { if (this.prev < i.catchLoc) return handle(i.catchLoc, !0); if (this.prev < i.finallyLoc) return handle(i.finallyLoc); } else if (c) { if (this.prev < i.catchLoc) return handle(i.catchLoc, !0); } else { if (!u) throw Error("try statement without catch or finally"); if (this.prev < i.finallyLoc) return handle(i.finallyLoc); } } } }, abrupt: function abrupt(t, e) { for (var r = this.tryEntries.length - 1; r >= 0; --r) { var o = this.tryEntries[r]; if (o.tryLoc <= this.prev && n.call(o, "finallyLoc") && this.prev < o.finallyLoc) { var i = o; break; } } i && ("break" === t || "continue" === t) && i.tryLoc <= e && e <= i.finallyLoc && (i = null); var a = i ? i.completion : {}; return a.type = t, a.arg = e, i ? (this.method = "next", this.next = i.finallyLoc, y) : this.complete(a); }, complete: function complete(t, e) { if ("throw" === t.type) throw t.arg; return "break" === t.type || "continue" === t.type ? this.next = t.arg : "return" === t.type ? (this.rval = this.arg = t.arg, this.method = "return", this.next = "end") : "normal" === t.type && e && (this.next = e), y; }, finish: function finish(t) { for (var e = this.tryEntries.length - 1; e >= 0; --e) { var r = this.tryEntries[e]; if (r.finallyLoc === t) return this.complete(r.completion, r.afterLoc), resetTryEntry(r), y; } }, catch: function _catch(t) { for (var e = this.tryEntries.length - 1; e >= 0; --e) { var r = this.tryEntries[e]; if (r.tryLoc === t) { var n = r.completion; if ("throw" === n.type) { var o = n.arg; resetTryEntry(r); } return o; } } throw Error("illegal catch attempt"); }, delegateYield: function delegateYield(e, r, n) { return this.delegate = { iterator: values(e), resultName: r, nextLoc: n }, "next" === this.method && (this.arg = t), y; } }, e; } -function replayManager_asyncGeneratorStep(n, t, e, r, o, a, c) { try { var i = n[a](c), u = i.value; } catch (n) { return void e(n); } i.done ? t(u) : Promise.resolve(u).then(r, o); } -function replayManager_asyncToGenerator(n) { return function () { var t = this, e = arguments; return new Promise(function (r, o) { var a = n.apply(t, e); function _next(n) { replayManager_asyncGeneratorStep(a, r, o, _next, _throw, "next", n); } function _throw(n) { replayManager_asyncGeneratorStep(a, r, o, _next, _throw, "throw", n); } _next(void 0); }); }; } -function replayManager_classCallCheck(a, n) { if (!(a instanceof n)) throw new TypeError("Cannot call a class as a function"); } -function replayManager_defineProperties(e, r) { for (var t = 0; t < r.length; t++) { var o = r[t]; o.enumerable = o.enumerable || !1, o.configurable = !0, "value" in o && (o.writable = !0), Object.defineProperty(e, replayManager_toPropertyKey(o.key), o); } } -function replayManager_createClass(e, r, t) { return r && replayManager_defineProperties(e.prototype, r), t && replayManager_defineProperties(e, t), Object.defineProperty(e, "prototype", { writable: !1 }), e; } -function replayManager_defineProperty(e, r, t) { return (r = replayManager_toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; } -function replayManager_toPropertyKey(t) { var i = replayManager_toPrimitive(t, "string"); return "symbol" == replayManager_typeof(i) ? i : i + ""; } -function replayManager_toPrimitive(t, r) { if ("object" != replayManager_typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != replayManager_typeof(i)) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); } - - - - - - -/** @typedef {import('./recorder.js').BufferCursor} BufferCursor */ -/** @typedef {import('./recorder.js').Recorder} Recorder */ - -/** - * Enum for tracking the status of trailing replay sends. - * Used to coordinate between trailing and leading replay captures. - */ -var TrailingStatus = Object.freeze({ - PENDING: 'pending', - // Trailing not yet sent - SENT: 'sent', - // Trailing successfully sent - FAILED: 'failed' // Trailing failed to send -}); - -/** - * ReplayManager - Manages the mapping between error occurrences and their associated - * session recordings. This class handles the coordination between when recordings - * are dumped and when they are eventually sent to the backend. - */ -var ReplayManager = /*#__PURE__*/function () { - /** - * Creates a new ReplayManager instance - * - * @param {Object} [props.tracing] - The tracing instance used to create spans and manage context - * @param {Object} [props.telemeter] - Optional telemeter instance for capturing telemetry events - * @param {Object} [props.options] - Configuration options - */ - function ReplayManager(_ref) { - var tracing = _ref.tracing, - telemeter = _ref.telemeter, - options = _ref.options; - replayManager_classCallCheck(this, ReplayManager); - replayManager_defineProperty(this, "_map", void 0); - /** @type {Recorder} */ - replayManager_defineProperty(this, "_recorder", void 0); - replayManager_defineProperty(this, "_tracing", void 0); - replayManager_defineProperty(this, "_telemeter", void 0); - replayManager_defineProperty(this, "_pendingLeading", void 0); - replayManager_defineProperty(this, "_trailingStatus", void 0); - if (!tracing) { - throw new TypeError("Expected 'tracing' to be provided"); - } - this._map = new Map(); - this._recorder = new Recorder(options); - this._tracing = tracing; - this._telemeter = telemeter; - this._pendingLeading = new Map(); - this._trailingStatus = new Map(); - this._predicates = new ReplayPredicates(options); - } - - /** - * Exports recording and telemetry spans, then stores the tracing payload in the map. - * - * Exports both telemetry and recording spans, then generates the complete payload - * using the tracing exporter and stores it in the map using replayId as the key. - * This is an async operation that runs in the background. - * - * @param {string} replayId - The unique ID for this replay - * @param {string} occurrenceUuid - The UUID of the associated error occurrence - * @private - */ - return replayManager_createClass(ReplayManager, [{ - key: "_exportSpansAndAddTracingPayload", - value: (function () { - var _exportSpansAndAddTracingPayload2 = replayManager_asyncToGenerator(/*#__PURE__*/replayManager_regeneratorRuntime().mark(function _callee(replayId, occurrenceUuid, trigger, triggerContext) { - var _this$_telemeter, _this$_recorder$optio; - var payload, leadingSeconds; - return replayManager_regeneratorRuntime().wrap(function _callee$(_context) { - while (1) switch (_context.prev = _context.next) { - case 0: - _context.prev = 0; - this._recorder.exportRecordingSpan(this._tracing, { - 'rollbar.replay.id': replayId, - 'rollbar.occurrence.uuid': occurrenceUuid, - 'rollbar.replay.trigger.type': trigger.type, - 'rollbar.replay.trigger.context': JSON.stringify(triggerContext), - 'rollbar.replay.trigger': JSON.stringify(trigger), - 'rollbar.replay.url.full': sanitizeHref(window.location.href) - }); - _context.next = 8; - break; - case 4: - _context.prev = 4; - _context.t0 = _context["catch"](0); - src_logger.error('Error exporting recording span:', _context.t0); - return _context.abrupt("return"); - case 8: - (_this$_telemeter = this._telemeter) === null || _this$_telemeter === void 0 || _this$_telemeter.exportTelemetrySpan({ - 'rollbar.replay.id': replayId - }); - payload = this._tracing.exporter.toPayload(); - this._map.set(replayId, payload); - leadingSeconds = ((_this$_recorder$optio = this._recorder.options) === null || _this$_recorder$optio === void 0 ? void 0 : _this$_recorder$optio.postDuration) || 0; - if (leadingSeconds > 0) { - this._scheduleLeadingCapture(replayId, occurrenceUuid, leadingSeconds); - } - case 13: - case "end": - return _context.stop(); - } - }, _callee, this, [[0, 4]]); - })); - function _exportSpansAndAddTracingPayload(_x, _x2, _x3, _x4) { - return _exportSpansAndAddTracingPayload2.apply(this, arguments); - } - return _exportSpansAndAddTracingPayload; - }() - /** - * Schedules the capture of leading replay events after a delay. - * - * @param {string} replayId - The replay ID - * @param {string} occurrenceUuid - The occurrence UUID - * @param {number} seconds - Number of seconds to wait before capturing - * @private - */ - ) - }, { - key: "_scheduleLeadingCapture", - value: function _scheduleLeadingCapture(replayId, occurrenceUuid, seconds) { - var _this = this; - var bufferCursor = this._recorder.bufferCursor(); - this._trailingStatus.set(replayId, TrailingStatus.PENDING); - var timerId = setTimeout(/*#__PURE__*/replayManager_asyncToGenerator(/*#__PURE__*/replayManager_regeneratorRuntime().mark(function _callee2() { - return replayManager_regeneratorRuntime().wrap(function _callee2$(_context2) { - while (1) switch (_context2.prev = _context2.next) { - case 0: - _context2.prev = 0; - _context2.next = 3; - return _this._exportLeadingSpansAndAddPayload(replayId, occurrenceUuid, bufferCursor); - case 3: - _this._sendOrDiscardLeadingReplay(replayId); - _context2.next = 9; - break; - case 6: - _context2.prev = 6; - _context2.t0 = _context2["catch"](0); - src_logger.error('Error during leading replay processing:', _context2.t0); - case 9: - case "end": - return _context2.stop(); - } - }, _callee2, null, [[0, 6]]); - })), seconds * 1000); - this._pendingLeading.set(replayId, { - timerId: timerId, - occurrenceUuid: occurrenceUuid, - bufferCursor: bufferCursor, - leadingReady: false - }); - } - - /** - * Exports leading replay spans and adds the payload to pending context. - * Similar to _exportSpansAndAddTracingPayload but for leading events. - * - * @param {string} replayId - The replay ID - * @param {string} occurrenceUuid - The occurrence UUID - * @param {BufferCursor} bufferCursor - Buffer cursor position - * @private - */ - }, { - key: "_exportLeadingSpansAndAddPayload", - value: (function () { - var _exportLeadingSpansAndAddPayload2 = replayManager_asyncToGenerator(/*#__PURE__*/replayManager_regeneratorRuntime().mark(function _callee3(replayId, occurrenceUuid, bufferCursor) { - var _this$_telemeter2; - var pendingContext, leadingPayload; - return replayManager_regeneratorRuntime().wrap(function _callee3$(_context3) { - while (1) switch (_context3.prev = _context3.next) { - case 0: - pendingContext = this._pendingLeading.get(replayId); - if (pendingContext) { - _context3.next = 3; - break; - } - return _context3.abrupt("return"); - case 3: - _context3.prev = 3; - this._recorder.exportRecordingSpan(this._tracing, { - 'rollbar.replay.id': replayId, - 'rollbar.occurrence.uuid': occurrenceUuid - }, bufferCursor); - _context3.next = 12; - break; - case 7: - _context3.prev = 7; - _context3.t0 = _context3["catch"](3); - src_logger.error('Error exporting leading recording span:', _context3.t0); - this._discardLeadingCapture(replayId); - return _context3.abrupt("return"); - case 12: - (_this$_telemeter2 = this._telemeter) === null || _this$_telemeter2 === void 0 || _this$_telemeter2.exportTelemetrySpan({ - 'rollbar.replay.id': replayId - }); - leadingPayload = this._tracing.exporter.toPayload(); - pendingContext.leadingReady = true; - pendingContext.leadingPayload = leadingPayload; - this._pendingLeading.set(replayId, pendingContext); - case 17: - case "end": - return _context3.stop(); - } - }, _callee3, this, [[3, 7]]); - })); - function _exportLeadingSpansAndAddPayload(_x5, _x6, _x7) { - return _exportLeadingSpansAndAddPayload2.apply(this, arguments); - } - return _exportLeadingSpansAndAddPayload; - }() - /** - * Sends or discards leading replay based on trailing replay status. - * - * @param {string} replayId - The replay ID - * @private - */ - ) - }, { - key: "_sendOrDiscardLeadingReplay", - value: (function () { - var _sendOrDiscardLeadingReplay2 = replayManager_asyncToGenerator(/*#__PURE__*/replayManager_regeneratorRuntime().mark(function _callee4(replayId) { - var trailingStatus, pendingContext; - return replayManager_regeneratorRuntime().wrap(function _callee4$(_context4) { - while (1) switch (_context4.prev = _context4.next) { - case 0: - trailingStatus = this._trailingStatus.get(replayId); - pendingContext = this._pendingLeading.get(replayId); - if (!(!(pendingContext !== null && pendingContext !== void 0 && pendingContext.leadingReady) || !(pendingContext !== null && pendingContext !== void 0 && pendingContext.leadingPayload))) { - _context4.next = 4; - break; - } - return _context4.abrupt("return"); - case 4: - _context4.t0 = trailingStatus; - _context4.next = _context4.t0 === TrailingStatus.SENT ? 7 : _context4.t0 === TrailingStatus.FAILED ? 17 : _context4.t0 === TrailingStatus.PENDING ? 19 : 19; - break; - case 7: - _context4.prev = 7; - _context4.next = 10; - return this._tracing.exporter.post(pendingContext.leadingPayload, { - 'X-Rollbar-Replay-Id': replayId - }); - case 10: - _context4.next = 15; - break; - case 12: - _context4.prev = 12; - _context4.t1 = _context4["catch"](7); - src_logger.error('Failed to send leading replay:', _context4.t1); - case 15: - this._discardLeadingCapture(replayId); - return _context4.abrupt("break", 20); - case 17: - this._discardLeadingCapture(replayId); - return _context4.abrupt("break", 20); - case 19: - return _context4.abrupt("break", 20); - case 20: - case "end": - return _context4.stop(); - } - }, _callee4, this, [[7, 12]]); - })); - function _sendOrDiscardLeadingReplay(_x8) { - return _sendOrDiscardLeadingReplay2.apply(this, arguments); - } - return _sendOrDiscardLeadingReplay; - }() - /** - * Discards all state related to leading capture for a replay. - * - * @param {string} replayId - The replay ID to discard - * @private - */ - ) - }, { - key: "_discardLeadingCapture", - value: function _discardLeadingCapture(replayId) { - var pendingContext = this._pendingLeading.get(replayId); - if (pendingContext !== null && pendingContext !== void 0 && pendingContext.timerId) { - clearTimeout(pendingContext.timerId); - } - this._pendingLeading.delete(replayId); - this._trailingStatus.delete(replayId); - } - - /** - * Captures a replay and returns a uniquely generated replay ID. - * - * This method immediately returns the replayId and asynchronously processes - * the replay data in the background. The processing involves converting - * recorder events into a payload format and storing it in the map. - * - * @returns {string} A unique identifier for this replay - */ - }, { - key: "capture", - value: function capture(replayId, occurrenceUuid, triggerContext) { - if (!this._recorder.isReady) { - src_logger.warn('ReplayManager.capture: Recorder is not ready, cannot export replay'); - return null; - } - replayId = replayId || id.gen(8); - var trigger = this._predicates.shouldCaptureForTriggerContext(replayManager_objectSpread(replayManager_objectSpread({}, triggerContext), {}, { - replayId: replayId - })); - if (!trigger) { - return null; - } - - // Start processing the replay in the background - this._exportSpansAndAddTracingPayload(replayId, occurrenceUuid, trigger, triggerContext); - return replayId; - } - - /** - * Determines if a replay can be sent based on API response and headers. - * - * @param {Error|null} err - Any error that occurred during the API request - * @param {Object|null} resp - The API response object - * @param {Object|null} hs - The response headers - * @returns {boolean} true if the replay can be sent, false otherwise. - * @private - */ - }, { - key: "sendOrDiscardReplay", - value: ( - /** - * Sends or discards a replay based on whether it can be sent. - * - * The criteria for sending a replay are: - * - No error occurred during the API request - * - The response indicates success (err === 0) - * - Replay is enabled on the server - * - Rate limit quota is not exhausted - * - * Called by Queue after determining replay eligibility from API response. - * - * @param {string} replayId - The ID of the replay to send or discard - * @param {Error|null} err - Any error that occurred during the API request - * @param {Object|null} resp - The API response object - * @param {Object|null} headers - The response headers - * @returns {Promise} A promise that resolves when the operation is complete - */ - function () { - var _sendOrDiscardReplay = replayManager_asyncToGenerator(/*#__PURE__*/replayManager_regeneratorRuntime().mark(function _callee5(replayId, err, resp, headers) { - var canSendReplay; - return replayManager_regeneratorRuntime().wrap(function _callee5$(_context5) { - while (1) switch (_context5.prev = _context5.next) { - case 0: - canSendReplay = ReplayManager._canSendReplay(err, resp, headers); - if (!canSendReplay) { - _context5.next = 13; - break; - } - _context5.prev = 2; - _context5.next = 5; - return this.send(replayId); - case 5: - _context5.next = 11; - break; - case 7: - _context5.prev = 7; - _context5.t0 = _context5["catch"](2); - src_logger.error('Failed to send replay:', _context5.t0); - this.discard(replayId); - case 11: - _context5.next = 14; - break; - case 13: - this.discard(replayId); - case 14: - case "end": - return _context5.stop(); - } - }, _callee5, this, [[2, 7]]); - })); - function sendOrDiscardReplay(_x9, _x10, _x11, _x12) { - return _sendOrDiscardReplay.apply(this, arguments); - } - return sendOrDiscardReplay; - }() - /** - * Sends the replay payload associated with the given replayId to the backend - * and removes it from the map. - * - * Retrieves the payload from the map, checks if it's valid, then sends it - * to the API endpoint for processing. The payload can be either a spans array - * or a formatted OTLP payload object. - * - * @param {string} replayId - The ID of the replay to send - * @returns {Promise} A promise that resolves to true if the payload was found and sent, false otherwise - */ - ) - }, { - key: "send", - value: (function () { - var _send = replayManager_asyncToGenerator(/*#__PURE__*/replayManager_regeneratorRuntime().mark(function _callee6(replayId) { - var payload, isEmpty; - return replayManager_regeneratorRuntime().wrap(function _callee6$(_context6) { - while (1) switch (_context6.prev = _context6.next) { - case 0: - if (replayId) { - _context6.next = 2; - break; - } - throw Error('ReplayManager.send: No replayId provided'); - case 2: - if (this._map.has(replayId)) { - _context6.next = 4; - break; - } - throw Error("ReplayManager.send: No replay found for id: ".concat(replayId)); - case 4: - payload = this._map.get(replayId); - this._map.delete(replayId); - - // Check if payload is empty (could be raw spans array or OTLP payload) - isEmpty = !payload || Array.isArray(payload) && payload.length === 0 || payload.resourceSpans && payload.resourceSpans.length === 0; - if (!isEmpty) { - _context6.next = 9; - break; - } - throw Error("ReplayManager.send: No payload found for id: ".concat(replayId)); - case 9: - _context6.next = 11; - return this._tracing.exporter.post(payload, { - 'X-Rollbar-Replay-Id': replayId - }); - case 11: - this._trailingStatus.set(replayId, TrailingStatus.SENT); - _context6.next = 14; - return this._sendOrDiscardLeadingReplay(replayId); - case 14: - case "end": - return _context6.stop(); - } - }, _callee6, this); - })); - function send(_x13) { - return _send.apply(this, arguments); - } - return send; - }() - /** - * Discards the replay associated with the given replay ID by removing - * it from the map without sending it. - * - * @param {string} replayId - The ID of the replay to discard - * @returns {boolean} True if a replay was found and discarded, false otherwise - */ - ) - }, { - key: "discard", - value: function discard(replayId) { - if (!replayId) { - src_logger.error('ReplayManager.discard: No replayId provided'); - return false; - } - this._trailingStatus.set(replayId, TrailingStatus.FAILED); - this._discardLeadingCapture(replayId); - if (!this._map.has(replayId)) { - src_logger.error("ReplayManager.discard: No replay found for replayId: ".concat(replayId)); - return false; - } - this._map.delete(replayId); - return true; - } - - /** - * Gets spans for the given replay ID - * - * @param {string} replayId - The ID to retrieve spans for - * @returns {Array|null} The spans array or null if not found - */ - }, { - key: "getSpans", - value: function getSpans(replayId) { - var _this$_map$get; - return (_this$_map$get = this._map.get(replayId)) !== null && _this$_map$get !== void 0 ? _this$_map$get : null; - } - - /** - * Sets spans for a given replay ID - * - * @param {string} replayId - The ID to set spans for - * @param {Array} spans - The spans to set - */ - }, { - key: "setSpans", - value: function setSpans(replayId, spans) { - this._map.set(replayId, spans); - } - - /** - * Returns the size of the map (number of stored replays) - * - * @returns {number} The number of replays currently stored - */ - }, { - key: "size", - get: function get() { - return this._map.size; - } - - /** - * Returns the Recorder instance used by this manager - * - * @returns {Recorder} The Recorder instance - */ - }, { - key: "recorder", - get: function get() { - return this._recorder; - } - - /** - * Clears all stored replays without sending them - */ - }, { - key: "clear", - value: function clear() { - this._map.clear(); - } - }], [{ - key: "_canSendReplay", - value: function _canSendReplay(err, resp, hs) { - if (!hs) return false; - var hasNoErrors = !err && (resp === null || resp === void 0 ? void 0 : resp.err) === 0; - var headers = Object.fromEntries(Object.entries(hs).map(function (_ref3) { - var _ref4 = replayManager_slicedToArray(_ref3, 2), - k = _ref4[0], - v = _ref4[1]; - return [k.toLowerCase(), String(v).trim()]; - })); - var headersAreValid = headers['rollbar-replay-enabled'] === 'true' && headers['rollbar-replay-ratelimit-remaining'] !== '0'; - return hasNoErrors && headersAreValid; - } - }]); -}(); - ;// ./src/browser/rollbar.js @@ -22278,15 +7072,13 @@ var ReplayManager = /*#__PURE__*/function () { - core.setComponents({ telemeter: telemetry, instrumenter: browser_telemetry, wrapGlobals: browser_wrapGlobals, scrub: src_scrub, truncation: truncation, - tracing: Tracing, - replayManager: ReplayManager + tracing: Tracing }); /* harmony default export */ var browser_rollbar = (core); ;// ./src/browser/bundles/rollbar.js diff --git a/dist/rollbar.js.map b/dist/rollbar.js.map index 07e77290c..a6fb674bf 100644 --- a/dist/rollbar.js.map +++ b/dist/rollbar.js.map @@ -1 +1 @@ -{"version":3,"file":"rollbar.js","mappings":"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","sources":["webpack://rollbar/webpack/bootstrap","webpack://rollbar/webpack/runtime/define property getters","webpack://rollbar/webpack/runtime/hasOwnProperty shorthand","webpack://rollbar/webpack/runtime/make namespace object","webpack://rollbar/./src/merge.js","webpack://rollbar/./src/utility.js","webpack://rollbar/./src/rateLimiter.js","webpack://rollbar/./src/queue.js","webpack://rollbar/./src/notifier.js","webpack://rollbar/./src/rollbar.js","webpack://rollbar/./src/apiUtility.js","webpack://rollbar/./src/api.js","webpack://rollbar/./src/logger.js","webpack://rollbar/./src/browser/globalSetup.js","webpack://rollbar/./src/browser/transport/fetch.js","webpack://rollbar/./src/browser/transport/xhr.js","webpack://rollbar/./src/browser/transport.js","webpack://rollbar/./src/browser/url.js","webpack://rollbar/./node_modules/error-stack-parser-es/dist/lite.mjs","webpack://rollbar/./node_modules/error-stack-parser-es/dist/index.mjs","webpack://rollbar/./src/errorParser.js","webpack://rollbar/./src/browser/transforms.js","webpack://rollbar/./src/transforms.js","webpack://rollbar/./src/browser/predicates.js","webpack://rollbar/./src/predicates.js","webpack://rollbar/./src/browser/replay/defaults.js","webpack://rollbar/./src/tracing/defaults.js","webpack://rollbar/./src/defaults.js","webpack://rollbar/./src/browser/defaults.js","webpack://rollbar/./src/browser/core.js","webpack://rollbar/./src/telemetry.js","webpack://rollbar/./src/utility/headers.js","webpack://rollbar/./src/utility/replace.js","webpack://rollbar/./src/utility/traverse.js","webpack://rollbar/./src/scrub.js","webpack://rollbar/./src/browser/domUtility.js","webpack://rollbar/./src/browser/telemetry.js","webpack://rollbar/./src/browser/wrapGlobals.js","webpack://rollbar/./src/truncation.js","webpack://rollbar/./src/tracing/context.js","webpack://rollbar/./src/tracing/contextManager.js","webpack://rollbar/./src/tracing/id.js","webpack://rollbar/./src/tracing/session.js","webpack://rollbar/./src/tracing/hrtime.js","webpack://rollbar/./src/tracing/exporter.js","webpack://rollbar/./src/tracing/spanProcessor.js","webpack://rollbar/./src/tracing/span.js","webpack://rollbar/./src/tracing/tracer.js","webpack://rollbar/./src/tracing/tracing.js","webpack://rollbar/../../rrweb/dist/rrweb.js","webpack://rollbar/../src/index.ts","webpack://rollbar/./src/browser/replay/recorder.js","webpack://rollbar/./src/browser/replay/replayPredicates.js","webpack://rollbar/./src/browser/replay/replayManager.js","webpack://rollbar/./src/browser/rollbar.js","webpack://rollbar/./src/browser/bundles/rollbar.js"],"sourcesContent":["// The require scope\nvar __webpack_require__ = {};\n\n","// define getter functions for harmony exports\n__webpack_require__.d = function(exports, definition) {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.o = function(obj, prop) { return Object.prototype.hasOwnProperty.call(obj, prop); }","// define __esModule on exports\n__webpack_require__.r = function(exports) {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","var hasOwn = Object.prototype.hasOwnProperty;\nvar toStr = Object.prototype.toString;\n\nvar isPlainObject = function isPlainObject(obj) {\n if (!obj || toStr.call(obj) !== '[object Object]') {\n return false;\n }\n\n var hasOwnConstructor = hasOwn.call(obj, 'constructor');\n var hasIsPrototypeOf =\n obj.constructor &&\n obj.constructor.prototype &&\n hasOwn.call(obj.constructor.prototype, 'isPrototypeOf');\n // Not own constructor property must be Object\n if (obj.constructor && !hasOwnConstructor && !hasIsPrototypeOf) {\n return false;\n }\n\n // Own properties are enumerated firstly, so to speed up,\n // if last one is own, then all properties are own.\n var key;\n for (key in obj) {\n /**/\n }\n\n return typeof key === 'undefined' || hasOwn.call(obj, key);\n};\n\nfunction merge() {\n var i,\n src,\n copy,\n clone,\n name,\n result = {},\n current = null,\n length = arguments.length;\n\n for (i = 0; i < length; i++) {\n current = arguments[i];\n if (current == null) {\n continue;\n }\n\n for (name in current) {\n src = result[name];\n copy = current[name];\n if (result !== copy) {\n if (copy && isPlainObject(copy)) {\n clone = src && isPlainObject(src) ? src : {};\n result[name] = merge(clone, copy);\n } else if (typeof copy !== 'undefined') {\n result[name] = copy;\n }\n }\n }\n }\n return result;\n}\n\nexport default merge;\n","import merge from './merge.js';\n\n/*\n * isType - Given a Javascript value and a string, returns true if the type of the value matches the\n * given string.\n *\n * @param x - any value\n * @param t - a lowercase string containing one of the following type names:\n * - undefined\n * - null\n * - error\n * - number\n * - boolean\n * - string\n * - symbol\n * - function\n * - object\n * - array\n * @returns true if x is of type t, otherwise false\n */\nfunction isType(x, t) {\n return t === typeName(x);\n}\n\n/*\n * typeName - Given a Javascript value, returns the type of the object as a string\n */\nfunction typeName(x) {\n var name = typeof x;\n if (name !== 'object') {\n return name;\n }\n if (!x) {\n return 'null';\n }\n if (x instanceof Error) {\n return 'error';\n }\n return {}.toString\n .call(x)\n .match(/\\s([a-zA-Z]+)/)[1]\n .toLowerCase();\n}\n\n/* isFunction - a convenience function for checking if a value is a function\n *\n * @param f - any value\n * @returns true if f is a function, otherwise false\n */\nfunction isFunction(f) {\n return isType(f, 'function');\n}\n\n/* isNativeFunction - a convenience function for checking if a value is a native JS function\n *\n * @param f - any value\n * @returns true if f is a native JS function, otherwise false\n */\nfunction isNativeFunction(f) {\n var reRegExpChar = /[\\\\^$.*+?()[\\]{}|]/g;\n var funcMatchString = Function.prototype.toString\n .call(Object.prototype.hasOwnProperty)\n .replace(reRegExpChar, '\\\\$&')\n .replace(/hasOwnProperty|(function).*?(?=\\\\\\()| for .+?(?=\\\\\\])/g, '$1.*?');\n var reIsNative = RegExp('^' + funcMatchString + '$');\n return isObject(f) && reIsNative.test(f);\n}\n\n/* isObject - Checks if the argument is an object\n *\n * @param value - any value\n * @returns true is value is an object function is an object)\n */\nfunction isObject(value) {\n var type = typeof value;\n return value != null && (type == 'object' || type == 'function');\n}\n\n/* isString - Checks if the argument is a string\n *\n * @param value - any value\n * @returns true if value is a string\n */\nfunction isString(value) {\n return typeof value === 'string' || value instanceof String;\n}\n\n/**\n * isFiniteNumber - determines whether the passed value is a finite number\n *\n * @param {*} n - any value\n * @returns true if value is a finite number\n */\nfunction isFiniteNumber(n) {\n return Number.isFinite(n);\n}\n\n/*\n * isDefined - a convenience function for checking if a value is not equal to undefined\n *\n * @param u - any value\n * @returns true if u is anything other than undefined\n */\nfunction isDefined(u) {\n return !isType(u, 'undefined');\n}\n\n/*\n * isIterable - convenience function for checking if a value can be iterated, essentially\n * whether it is an object or an array.\n *\n * @param i - any value\n * @returns true if i is an object or an array as determined by `typeName`\n */\nfunction isIterable(i) {\n var type = typeName(i);\n return type === 'object' || type === 'array';\n}\n\n/*\n * isError - convenience function for checking if a value is of an error type\n *\n * @param e - any value\n * @returns true if e is an error\n */\nfunction isError(e) {\n // Detect both Error and Firefox Exception type\n return isType(e, 'error') || isType(e, 'exception');\n}\n\n/* isPromise - a convenience function for checking if a value is a promise\n *\n * @param p - any value\n * @returns true if f is a function, otherwise false\n */\nfunction isPromise(p) {\n return isObject(p) && isType(p.then, 'function');\n}\n\n/**\n * isBrowser - a convenience function for checking if the code is running in a browser\n *\n * @returns true if the code is running in a browser environment\n */\nfunction isBrowser() {\n return typeof window !== 'undefined';\n}\n\nfunction redact() {\n return '********';\n}\n\n// from http://stackoverflow.com/a/8809472/1138191\nfunction uuid4() {\n var d = now();\n var uuid = 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(\n /[xy]/g,\n function (c) {\n var r = (d + Math.random() * 16) % 16 | 0;\n d = Math.floor(d / 16);\n return (c === 'x' ? r : (r & 0x7) | 0x8).toString(16);\n },\n );\n return uuid;\n}\n\nvar LEVELS = {\n debug: 0,\n info: 1,\n warning: 2,\n error: 3,\n critical: 4,\n};\n\nfunction sanitizeHref(url) {\n try {\n const urlObject = new URL(url);\n if (urlObject.password) {\n urlObject.password = redact();\n }\n if (urlObject.search) {\n urlObject.search = redact();\n }\n return urlObject.toString();\n } catch (_) {\n return url; // Return original URL if parsing fails\n }\n}\n\nfunction sanitizeUrl(url) {\n var baseUrlParts = parseUri(url);\n if (!baseUrlParts) {\n return '(unknown)';\n }\n\n // remove a trailing # if there is no anchor\n if (baseUrlParts.anchor === '') {\n baseUrlParts.source = baseUrlParts.source.replace('#', '');\n }\n\n url = baseUrlParts.source.replace('?' + baseUrlParts.query, '');\n return url;\n}\n\nvar parseUriOptions = {\n strictMode: false,\n key: [\n 'source',\n 'protocol',\n 'authority',\n 'userInfo',\n 'user',\n 'password',\n 'host',\n 'port',\n 'relative',\n 'path',\n 'directory',\n 'file',\n 'query',\n 'anchor',\n ],\n q: {\n name: 'queryKey',\n parser: /(?:^|&)([^&=]*)=?([^&]*)/g,\n },\n parser: {\n strict:\n /^(?:([^:\\/?#]+):)?(?:\\/\\/((?:(([^:@]*)(?::([^:@]*))?)?@)?([^:\\/?#]*)(?::(\\d*))?))?((((?:[^?#\\/]*\\/)*)([^?#]*))(?:\\?([^#]*))?(?:#(.*))?)/,\n loose:\n /^(?:(?![^:@]+:[^:@\\/]*@)([^:\\/?#.]+):)?(?:\\/\\/)?((?:(([^:@]*)(?::([^:@]*))?)?@)?([^:\\/?#]*)(?::(\\d*))?)(((\\/(?:[^?#](?![^?#\\/]*\\.[^?#\\/.]+(?:[?#]|$)))*\\/?)?([^?#\\/]*))(?:\\?([^#]*))?(?:#(.*))?)/,\n },\n};\n\nfunction parseUri(str) {\n if (!isType(str, 'string')) {\n return undefined;\n }\n\n var o = parseUriOptions;\n var m = o.parser[o.strictMode ? 'strict' : 'loose'].exec(str);\n var uri = {};\n\n for (var i = 0, l = o.key.length; i < l; ++i) {\n uri[o.key[i]] = m[i] || '';\n }\n\n uri[o.q.name] = {};\n uri[o.key[12]].replace(o.q.parser, function ($0, $1, $2) {\n if ($1) {\n uri[o.q.name][$1] = $2;\n }\n });\n\n return uri;\n}\n\nfunction addParamsAndAccessTokenToPath(accessToken, options, params) {\n params = params || {};\n params.access_token = accessToken;\n var paramsArray = [];\n var k;\n for (k in params) {\n if (Object.prototype.hasOwnProperty.call(params, k)) {\n paramsArray.push([k, params[k]].join('='));\n }\n }\n var query = '?' + paramsArray.sort().join('&');\n\n options = options || {};\n options.path = options.path || '';\n var qs = options.path.indexOf('?');\n var h = options.path.indexOf('#');\n var p;\n if (qs !== -1 && (h === -1 || h > qs)) {\n p = options.path;\n options.path = p.substring(0, qs) + query + '&' + p.substring(qs + 1);\n } else {\n if (h !== -1) {\n p = options.path;\n options.path = p.substring(0, h) + query + p.substring(h);\n } else {\n options.path = options.path + query;\n }\n }\n}\n\nfunction formatUrl(u, protocol) {\n protocol = protocol || u.protocol;\n if (!protocol && u.port) {\n if (u.port === 80) {\n protocol = 'http:';\n } else if (u.port === 443) {\n protocol = 'https:';\n }\n }\n protocol = protocol || 'https:';\n\n if (!u.hostname) {\n return null;\n }\n var result = protocol + '//' + u.hostname;\n if (u.port) {\n result = result + ':' + u.port;\n }\n if (u.path) {\n result = result + u.path;\n }\n return result;\n}\n\nfunction stringify(obj, backup) {\n var value, error;\n try {\n value = JSON.stringify(obj);\n } catch (jsonError) {\n if (backup && isFunction(backup)) {\n try {\n value = backup(obj);\n } catch (backupError) {\n error = backupError;\n }\n } else {\n error = jsonError;\n }\n }\n return { error: error, value: value };\n}\n\nfunction maxByteSize(string) {\n // The transport will use utf-8, so assume utf-8 encoding.\n //\n // This minimal implementation will accurately count bytes for all UCS-2 and\n // single code point UTF-16. If presented with multi code point UTF-16,\n // which should be rare, it will safely overcount, not undercount.\n //\n // While robust utf-8 encoders exist, this is far smaller and far more performant.\n // For quickly counting payload size for truncation, smaller is better.\n\n var count = 0;\n var length = string.length;\n\n for (var i = 0; i < length; i++) {\n var code = string.charCodeAt(i);\n if (code < 128) {\n // up to 7 bits\n count = count + 1;\n } else if (code < 2048) {\n // up to 11 bits\n count = count + 2;\n } else if (code < 65536) {\n // up to 16 bits\n count = count + 3;\n }\n }\n\n return count;\n}\n\nfunction jsonParse(s) {\n var value, error;\n try {\n value = JSON.parse(s);\n } catch (e) {\n error = e;\n }\n return { error: error, value: value };\n}\n\nfunction makeUnhandledStackInfo(\n message,\n url,\n lineno,\n colno,\n error,\n mode,\n backupMessage,\n errorParser,\n) {\n var location = {\n url: url || '',\n line: lineno,\n column: colno,\n };\n location.func = errorParser.guessFunctionName(location.url, location.line);\n location.context = errorParser.gatherContext(location.url, location.line);\n var href =\n typeof document !== 'undefined' &&\n document &&\n document.location &&\n document.location.href;\n var useragent =\n typeof window !== 'undefined' &&\n window &&\n window.navigator &&\n window.navigator.userAgent;\n return {\n mode: mode,\n message: error ? String(error) : message || backupMessage,\n url: href,\n stack: [location],\n useragent: useragent,\n };\n}\n\nfunction wrapCallback(logger, f) {\n return function (err, resp) {\n try {\n f(err, resp);\n } catch (e) {\n logger.error(e);\n }\n };\n}\n\nfunction nonCircularClone(obj) {\n var seen = [obj];\n\n function clone(obj, seen) {\n var value,\n name,\n newSeen,\n result = {};\n\n try {\n for (name in obj) {\n value = obj[name];\n\n if (value && (isType(value, 'object') || isType(value, 'array'))) {\n if (seen.includes(value)) {\n result[name] = 'Removed circular reference: ' + typeName(value);\n } else {\n newSeen = seen.slice();\n newSeen.push(value);\n result[name] = clone(value, newSeen);\n }\n continue;\n }\n\n result[name] = value;\n }\n } catch (e) {\n result = 'Failed cloning custom data: ' + e.message;\n }\n return result;\n }\n return clone(obj, seen);\n}\n\nfunction createItem(args, logger, notifier, requestKeys, lambdaContext) {\n var message, err, custom, callback, request;\n var arg;\n var extraArgs = [];\n var diagnostic = {};\n var argTypes = [];\n\n for (var i = 0, l = args.length; i < l; ++i) {\n arg = args[i];\n\n var typ = typeName(arg);\n argTypes.push(typ);\n switch (typ) {\n case 'undefined':\n break;\n case 'string':\n message ? extraArgs.push(arg) : (message = arg);\n break;\n case 'function':\n callback = wrapCallback(logger, arg);\n break;\n case 'date':\n extraArgs.push(arg);\n break;\n case 'error':\n case 'domexception':\n case 'exception': // Firefox Exception type\n err ? extraArgs.push(arg) : (err = arg);\n break;\n case 'object':\n case 'array':\n if (\n arg instanceof Error ||\n (typeof DOMException !== 'undefined' && arg instanceof DOMException)\n ) {\n err ? extraArgs.push(arg) : (err = arg);\n break;\n }\n if (requestKeys && typ === 'object' && !request) {\n for (var j = 0, len = requestKeys.length; j < len; ++j) {\n if (arg[requestKeys[j]] !== undefined) {\n request = arg;\n break;\n }\n }\n if (request) {\n break;\n }\n }\n custom ? extraArgs.push(arg) : (custom = arg);\n break;\n default:\n if (\n arg instanceof Error ||\n (typeof DOMException !== 'undefined' && arg instanceof DOMException)\n ) {\n err ? extraArgs.push(arg) : (err = arg);\n break;\n }\n extraArgs.push(arg);\n }\n }\n\n // if custom is an array this turns it into an object with integer keys\n if (custom) custom = nonCircularClone(custom);\n\n if (extraArgs.length > 0) {\n if (!custom) custom = nonCircularClone({});\n custom.extraArgs = nonCircularClone(extraArgs);\n }\n\n var item = {\n message: message,\n err: err,\n custom: custom,\n timestamp: now(),\n callback: callback,\n notifier: notifier,\n diagnostic: diagnostic,\n uuid: uuid4(),\n };\n\n item.data = item.data || {};\n\n setCustomItemKeys(item, custom);\n\n if (requestKeys && request) {\n item.request = request;\n }\n if (lambdaContext) {\n item.lambdaContext = lambdaContext;\n }\n item._originalArgs = args;\n item.diagnostic.original_arg_types = argTypes;\n return item;\n}\n\nfunction setCustomItemKeys(item, custom) {\n if (custom && custom.level !== undefined) {\n item.level = custom.level;\n delete custom.level;\n }\n if (custom && custom.skipFrames !== undefined) {\n item.skipFrames = custom.skipFrames;\n delete custom.skipFrames;\n }\n}\n\nfunction addErrorContext(item, errors) {\n var custom = item.data.custom || {};\n var contextAdded = false;\n\n try {\n for (var i = 0; i < errors.length; ++i) {\n if (errors[i].hasOwnProperty('rollbarContext')) {\n custom = merge(custom, nonCircularClone(errors[i].rollbarContext));\n contextAdded = true;\n }\n }\n\n // Avoid adding an empty object to the data.\n if (contextAdded) {\n item.data.custom = custom;\n }\n } catch (e) {\n item.diagnostic.error_context = 'Failed: ' + e.message;\n }\n}\n\nvar TELEMETRY_TYPES = [\n 'log',\n 'network',\n 'dom',\n 'navigation',\n 'error',\n 'manual',\n];\nvar TELEMETRY_LEVELS = ['critical', 'error', 'warning', 'info', 'debug'];\n\nfunction arrayIncludes(arr, val) {\n for (var k = 0; k < arr.length; ++k) {\n if (arr[k] === val) {\n return true;\n }\n }\n\n return false;\n}\n\nfunction createTelemetryEvent(args) {\n var type, metadata, level;\n var arg;\n\n for (var i = 0, l = args.length; i < l; ++i) {\n arg = args[i];\n\n var typ = typeName(arg);\n switch (typ) {\n case 'string':\n if (!type && arrayIncludes(TELEMETRY_TYPES, arg)) {\n type = arg;\n } else if (!level && arrayIncludes(TELEMETRY_LEVELS, arg)) {\n level = arg;\n }\n break;\n case 'object':\n metadata = arg;\n break;\n default:\n break;\n }\n }\n var event = {\n type: type || 'manual',\n metadata: metadata || {},\n level: level,\n };\n\n return event;\n}\n\nfunction addItemAttributes(itemData, attributes) {\n itemData.attributes = itemData.attributes || [];\n for (const a of attributes) {\n if (a.value === undefined) {\n continue;\n }\n itemData.attributes.push(a);\n }\n}\n\n/*\n * get - given an obj/array and a keypath, return the value at that keypath or\n * undefined if not possible.\n *\n * @param obj - an object or array\n * @param path - a string of keys separated by '.' such as 'plugin.jquery.0.message'\n * which would correspond to 42 in `{plugin: {jquery: [{message: 42}]}}`\n */\nfunction get(obj, path) {\n if (!obj) {\n return undefined;\n }\n var keys = path.split('.');\n var result = obj;\n try {\n for (var i = 0, len = keys.length; i < len; ++i) {\n result = result[keys[i]];\n }\n } catch (e) {\n result = undefined;\n }\n return result;\n}\n\nfunction set(obj, path, value) {\n if (!obj) {\n return;\n }\n var keys = path.split('.');\n var len = keys.length;\n if (len < 1) {\n return;\n }\n if (len === 1) {\n obj[keys[0]] = value;\n return;\n }\n try {\n var temp = obj[keys[0]] || {};\n var replacement = temp;\n for (var i = 1; i < len - 1; ++i) {\n temp[keys[i]] = temp[keys[i]] || {};\n temp = temp[keys[i]];\n }\n temp[keys[len - 1]] = value;\n obj[keys[0]] = replacement;\n } catch (e) {\n return;\n }\n}\n\nfunction formatArgsAsString(args) {\n var i, len, arg;\n var result = [];\n for (i = 0, len = args.length; i < len; ++i) {\n arg = args[i];\n switch (typeName(arg)) {\n case 'object':\n arg = stringify(arg);\n arg = arg.error || arg.value;\n if (arg.length > 500) {\n arg = arg.substr(0, 497) + '...';\n }\n break;\n case 'null':\n arg = 'null';\n break;\n case 'undefined':\n arg = 'undefined';\n break;\n case 'symbol':\n arg = arg.toString();\n break;\n }\n result.push(arg);\n }\n return result.join(' ');\n}\n\nfunction now() {\n if (Date.now) {\n return +Date.now();\n }\n return +new Date();\n}\n\nfunction filterIp(requestData, captureIp) {\n if (!requestData || !requestData['user_ip'] || captureIp === true) {\n return;\n }\n var newIp = requestData['user_ip'];\n if (!captureIp) {\n newIp = null;\n } else {\n try {\n var parts;\n if (newIp.indexOf('.') !== -1) {\n parts = newIp.split('.');\n parts.pop();\n parts.push('0');\n newIp = parts.join('.');\n } else if (newIp.indexOf(':') !== -1) {\n parts = newIp.split(':');\n if (parts.length > 2) {\n var beginning = parts.slice(0, 3);\n var slashIdx = beginning[2].indexOf('/');\n if (slashIdx !== -1) {\n beginning[2] = beginning[2].substring(0, slashIdx);\n }\n var terminal = '0000:0000:0000:0000:0000';\n newIp = beginning.concat(terminal).join(':');\n }\n } else {\n newIp = null;\n }\n } catch (e) {\n newIp = null;\n }\n }\n requestData['user_ip'] = newIp;\n}\n\nfunction handleOptions(current, input, payload, logger) {\n var result = merge(current, input, payload);\n result = updateDeprecatedOptions(result, logger);\n if (!input || input.overwriteScrubFields) {\n return result;\n }\n if (input.scrubFields) {\n result.scrubFields = (current.scrubFields || []).concat(input.scrubFields);\n }\n return result;\n}\n\nfunction updateDeprecatedOptions(options, logger) {\n if (options.hostWhiteList && !options.hostSafeList) {\n options.hostSafeList = options.hostWhiteList;\n options.hostWhiteList = undefined;\n logger && logger.log('hostWhiteList is deprecated. Use hostSafeList.');\n }\n if (options.hostBlackList && !options.hostBlockList) {\n options.hostBlockList = options.hostBlackList;\n options.hostBlackList = undefined;\n logger && logger.log('hostBlackList is deprecated. Use hostBlockList.');\n }\n return options;\n}\n\nexport {\n addParamsAndAccessTokenToPath,\n createItem,\n addErrorContext,\n createTelemetryEvent,\n addItemAttributes,\n filterIp,\n formatArgsAsString,\n formatUrl,\n get,\n handleOptions,\n isError,\n isFiniteNumber,\n isFunction,\n isIterable,\n isNativeFunction,\n isObject,\n isString,\n isType,\n isPromise,\n isBrowser,\n jsonParse,\n LEVELS,\n makeUnhandledStackInfo,\n merge,\n now,\n redact,\n sanitizeHref,\n sanitizeUrl,\n set,\n stringify,\n maxByteSize,\n typeName,\n uuid4,\n};\n","import * as _ from './utility.js';\n\n/*\n * RateLimiter - an object that encapsulates the logic for counting items sent to Rollbar\n *\n * @param options - the same options that are accepted by configureGlobal offered as a convenience\n */\nfunction RateLimiter(options) {\n this.startTime = _.now();\n this.counter = 0;\n this.perMinCounter = 0;\n this.platform = null;\n this.platformOptions = {};\n this.configureGlobal(options);\n}\n\nRateLimiter.globalSettings = {\n startTime: _.now(),\n maxItems: undefined,\n itemsPerMinute: undefined,\n};\n\n/*\n * configureGlobal - set the global rate limiter options\n *\n * @param options - Only the following values are recognized:\n * startTime: a timestamp of the form returned by (new Date()).getTime()\n * maxItems: the maximum items\n * itemsPerMinute: the max number of items to send in a given minute\n */\nRateLimiter.prototype.configureGlobal = function (options) {\n if (options.startTime !== undefined) {\n RateLimiter.globalSettings.startTime = options.startTime;\n }\n if (options.maxItems !== undefined) {\n RateLimiter.globalSettings.maxItems = options.maxItems;\n }\n if (options.itemsPerMinute !== undefined) {\n RateLimiter.globalSettings.itemsPerMinute = options.itemsPerMinute;\n }\n};\n\n/*\n * shouldSend - determine if we should send a given item based on rate limit settings\n *\n * @param item - the item we are about to send\n * @returns An object with the following structure:\n * error: (Error|null)\n * shouldSend: bool\n * payload: (Object|null)\n * If shouldSend is false, the item passed as a parameter should not be sent to Rollbar, and\n * exactly one of error or payload will be non-null. If error is non-null, the returned Error will\n * describe the situation, but it means that we were already over a rate limit (either globally or\n * per minute) when this item was checked. If error is null, and therefore payload is non-null, it\n * means this item put us over the global rate limit and the payload should be sent to Rollbar in\n * place of the passed in item.\n */\nRateLimiter.prototype.shouldSend = function (item, now) {\n now = now || _.now();\n var elapsedTime = now - this.startTime;\n if (elapsedTime < 0 || elapsedTime >= 60000) {\n this.startTime = now;\n this.perMinCounter = 0;\n }\n\n var globalRateLimit = RateLimiter.globalSettings.maxItems;\n var globalRateLimitPerMin = RateLimiter.globalSettings.itemsPerMinute;\n\n if (checkRate(item, globalRateLimit, this.counter)) {\n return shouldSendValue(\n this.platform,\n this.platformOptions,\n globalRateLimit + ' max items reached',\n false,\n );\n } else if (checkRate(item, globalRateLimitPerMin, this.perMinCounter)) {\n return shouldSendValue(\n this.platform,\n this.platformOptions,\n globalRateLimitPerMin + ' items per minute reached',\n false,\n );\n }\n this.counter++;\n this.perMinCounter++;\n\n var shouldSend = !checkRate(item, globalRateLimit, this.counter);\n var perMinute = shouldSend;\n shouldSend =\n shouldSend && !checkRate(item, globalRateLimitPerMin, this.perMinCounter);\n return shouldSendValue(\n this.platform,\n this.platformOptions,\n null,\n shouldSend,\n globalRateLimit,\n globalRateLimitPerMin,\n perMinute,\n );\n};\n\nRateLimiter.prototype.setPlatformOptions = function (platform, options) {\n this.platform = platform;\n this.platformOptions = options;\n};\n\n/* Helpers */\n\nfunction checkRate(item, limit, counter) {\n return !item.ignoreRateLimit && limit >= 1 && counter > limit;\n}\n\nfunction shouldSendValue(\n platform,\n options,\n error,\n shouldSend,\n globalRateLimit,\n limitPerMin,\n perMinute,\n) {\n var payload = null;\n if (error) {\n error = new Error(error);\n }\n if (!error && !shouldSend) {\n payload = rateLimitPayload(\n platform,\n options,\n globalRateLimit,\n limitPerMin,\n perMinute,\n );\n }\n return { error: error, shouldSend: shouldSend, payload: payload };\n}\n\nfunction rateLimitPayload(\n platform,\n options,\n globalRateLimit,\n limitPerMin,\n perMinute,\n) {\n var environment =\n options.environment || (options.payload && options.payload.environment);\n var msg;\n if (perMinute) {\n msg = 'item per minute limit reached, ignoring errors until timeout';\n } else {\n msg = 'maxItems has been hit, ignoring errors until reset.';\n }\n var item = {\n body: {\n message: {\n body: msg,\n extra: {\n maxItems: globalRateLimit,\n itemsPerMinute: limitPerMin,\n },\n },\n },\n language: 'javascript',\n environment: environment,\n notifier: {\n version:\n (options.notifier && options.notifier.version) || options.version,\n },\n };\n if (platform === 'browser') {\n item.platform = 'browser';\n item.framework = 'browser-js';\n item.notifier.name = 'rollbar-browser-js';\n } else if (platform === 'server') {\n item.framework = options.framework || 'node-js';\n item.notifier.name = options.notifier.name;\n } else if (platform === 'react-native') {\n item.framework = options.framework || 'react-native';\n item.notifier.name = options.notifier.name;\n }\n return item;\n}\n\nexport default RateLimiter;\n","import * as _ from './utility.js';\n\n/**\n * Queue - an object which handles which handles a queue of items to be sent to Rollbar.\n * This object handles rate limiting via a passed in rate limiter, retries based on connection\n * errors, and filtering of items based on a set of configurable predicates. The communication to\n * the backend is performed via a given API object.\n */\nclass Queue {\n /**\n * @param rateLimiter - An object which conforms to the interface\n * `rateLimiter.shouldSend(item) -> bool`\n * @param api - An object which conforms to the interface\n * `api.postItem(payload, function(err, response))`\n * @param logger - An object used to log verbose messages if desired\n * @param options - see `Queue.prototype.configure`\n * @param replayManager - Optional `ReplayManager` for coordinating session replay with error occurrences\n */\n constructor(rateLimiter, api, logger, options, replayManager) {\n this.rateLimiter = rateLimiter;\n this.api = api;\n this.logger = logger;\n this.options = options;\n this.replayManager = replayManager;\n this.predicates = [];\n this.pendingItems = [];\n this.pendingRequests = [];\n this.retryQueue = [];\n this.retryHandle = null;\n this.waitCallback = null;\n this.waitIntervalID = null;\n }\n\n /**\n * configure - updates the options this queue uses\n *\n * @param options\n */\n configure(options) {\n this.api?.configure(options);\n const oldOptions = this.options;\n this.options = _.merge(oldOptions, options);\n return this;\n }\n\n /**\n * addPredicate - adds a predicate to the end of the list of predicates for this queue\n *\n * @param predicate - function(item, options) -> (bool|{err: Error})\n * Returning true means that this predicate passes and the item is okay to go on the queue\n * Returning false means do not add the item to the queue, but it is not an error\n * Returning {err: Error} means do not add the item to the queue, and the given error explains why\n * Returning {err: undefined} is equivalent to returning true but don't do that\n */\n addPredicate(predicate) {\n if (_.isFunction(predicate)) {\n this.predicates.push(predicate);\n }\n return this;\n }\n\n addPendingItem(item) {\n this.pendingItems.push(item);\n }\n\n removePendingItem(item) {\n const idx = this.pendingItems.indexOf(item);\n if (idx !== -1) {\n this.pendingItems.splice(idx, 1);\n }\n }\n\n /**\n * addItem - Send an item to the Rollbar API if all of the predicates are satisfied\n *\n * @param item - Item instance with the payload to send to the backend\n * @param callback - function(error, repsonse) which will be called with the response from the API\n * in the case of a success, otherwise response will be null and error will have a value. If both\n * error and response are null then the item was stopped by a predicate which did not consider this\n * to be an error condition, but nonetheless did not send the item to the API.\n * @param originalError - The original error before any transformations that is to be logged if any\n * @param originalItem - The original item before transforms, used in pendingItems queue\n */\n addItem(item, callback, originalError, originalItem) {\n if (!callback || !_.isFunction(callback)) {\n callback = function () {\n return;\n };\n }\n const data = item.data;\n const predicateResult = this._applyPredicates(data);\n if (predicateResult.stop) {\n this.removePendingItem(originalItem);\n callback(predicateResult.err);\n return;\n }\n this._maybeLog(data, originalError);\n this.removePendingItem(originalItem);\n if (!this.options.transmit) {\n callback(new Error('Transmit disabled'));\n return;\n }\n\n if (this.replayManager && data.body) {\n item.replayId = this.replayManager.capture(null, data.uuid, {\n type: 'occurrence',\n level: item.level,\n });\n\n if (item.replayId) {\n _.addItemAttributes(item.data, [\n { key: 'replay_id', value: item.replayId },\n ]);\n }\n }\n\n this.pendingRequests.push(data);\n try {\n this._makeApiRequest(data, (err, resp, headers) => {\n this._dequeuePendingRequest(data);\n\n if (item.replayId) {\n this.replayManager.sendOrDiscardReplay(\n item.replayId,\n err,\n resp,\n headers,\n );\n }\n\n callback(err, resp);\n });\n } catch (err) {\n this._dequeuePendingRequest(data);\n\n if (item.replayId) {\n this.replayManager?.discard(item.replayId);\n }\n\n callback(err);\n }\n }\n\n /**\n * wait - Stop any further errors from being added to the queue, and get called back when all items\n * currently processing have finished sending to the backend.\n *\n * @param callback - function() called when all pending items have been sent\n */\n wait(callback) {\n if (!_.isFunction(callback)) {\n return;\n }\n this.waitCallback = callback;\n if (this._maybeCallWait()) {\n return;\n }\n if (this.waitIntervalID) {\n this.waitIntervalID = clearInterval(this.waitIntervalID);\n }\n this.waitIntervalID = setInterval(() => {\n this._maybeCallWait();\n }, 500);\n }\n\n /**\n * Sequentially applies the predicates that have been added to the queue to the\n * given item with the currently configured options.\n *\n * @param item - An item in the queue\n * @returns {stop: bool, err: (Error|null)} - stop being true means do not add item to the queue,\n * the error value should be passed up to a callbak if we are stopping.\n */\n _applyPredicates(item) {\n let p = null;\n for (let i = 0, len = this.predicates.length; i < len; i++) {\n p = this.predicates[i](item, this.options);\n if (!p || p.err !== undefined) {\n return { stop: true, err: p.err };\n }\n }\n return { stop: false, err: null };\n }\n\n /**\n * Send an item to Rollbar, callback when done, if there is an error make an\n * effort to retry if we are configured to do so.\n *\n * @param item - an item ready to send to the backend\n * @param callback - function(err, response)\n */\n _makeApiRequest(item, callback) {\n const rateLimitResponse = this.rateLimiter.shouldSend(item);\n if (rateLimitResponse.shouldSend) {\n this.api.postItem(item, (err, resp, headers) => {\n if (err) {\n this._maybeRetry(err, item, callback);\n } else {\n callback(err, resp, headers);\n }\n });\n } else if (rateLimitResponse.error) {\n callback(rateLimitResponse.error);\n } else {\n this.api.postItem(rateLimitResponse.payload, callback);\n }\n }\n\n // These are errors basically mean there is no internet connection\n static RETRIABLE_ERRORS = [\n 'ECONNRESET',\n 'ENOTFOUND',\n 'ESOCKETTIMEDOUT',\n 'ETIMEDOUT',\n 'ECONNREFUSED',\n 'EHOSTUNREACH',\n 'EPIPE',\n 'EAI_AGAIN',\n ];\n\n /**\n * Given the error returned by the API, decide if we should retry or just callback\n * with the error.\n *\n * @param err - an error returned by the API transport\n * @param item - the item that was trying to be sent when this error occured\n * @param callback - function(err, response)\n */\n _maybeRetry(err, item, callback) {\n let shouldRetry = false;\n if (this.options.retryInterval) {\n for (let i = 0, len = Queue.RETRIABLE_ERRORS.length; i < len; i++) {\n if (err.code === Queue.RETRIABLE_ERRORS[i]) {\n shouldRetry = true;\n break;\n }\n }\n if (shouldRetry && _.isFiniteNumber(this.options.maxRetries)) {\n item.retries = item.retries ? item.retries + 1 : 1;\n if (item.retries > this.options.maxRetries) {\n shouldRetry = false;\n }\n }\n }\n if (shouldRetry) {\n this._retryApiRequest(item, callback);\n } else {\n callback(err);\n }\n }\n\n /**\n * Add an item and a callback to a queue and possibly start a timer to process\n * that queue based on the retryInterval in the options for this queue.\n *\n * @param item - an item that failed to send due to an error we deem retriable\n * @param callback - function(err, response)\n */\n _retryApiRequest(item, callback) {\n this.retryQueue.push({ item, callback });\n\n if (!this.retryHandle) {\n this.retryHandle = setInterval(() => {\n while (this.retryQueue.length) {\n const retryObject = this.retryQueue.shift();\n this._makeApiRequest(retryObject.item, retryObject.callback);\n }\n }, this.options.retryInterval);\n }\n }\n\n /**\n * Removes the item from the pending request queue, this queue is used to\n * enable to functionality of providing a callback that clients can pass to `wait` to be notified\n * when the pending request queue has been emptied. This must be called when the API finishes\n * processing this item. If a `wait` callback is configured, it is called by this function.\n *\n * @param item - the item previously added to the pending request queue\n */\n _dequeuePendingRequest(item) {\n const idx = this.pendingRequests.indexOf(item);\n if (idx !== -1) {\n this.pendingRequests.splice(idx, 1);\n this._maybeCallWait();\n }\n }\n\n _maybeLog(data, originalError) {\n if (this.logger && this.options.verbose) {\n let message =\n originalError ||\n _.get(data, 'body.trace.exception.message') ||\n _.get(data, 'body.trace_chain.0.exception.message');\n if (message) {\n this.logger.error(message);\n return;\n }\n message = _.get(data, 'body.message.body');\n if (message) {\n this.logger.log(message);\n }\n }\n }\n\n _maybeCallWait() {\n if (\n _.isFunction(this.waitCallback) &&\n this.pendingItems.length === 0 &&\n this.pendingRequests.length === 0\n ) {\n if (this.waitIntervalID) {\n this.waitIntervalID = clearInterval(this.waitIntervalID);\n }\n this.waitCallback();\n return true;\n }\n return false;\n }\n}\n\nexport default Queue;\n","import * as _ from './utility.js';\n\n/*\n * Notifier - the internal object responsible for delegating between the client exposed API, the\n * chain of transforms necessary to turn an item into something that can be sent to Rollbar, and the\n * queue which handles the communcation with the Rollbar API servers.\n *\n * @param queue - an object that conforms to the interface: addItem(item, callback)\n * @param options - an object representing the options to be set for this notifier, this should have\n * any defaults already set by the caller\n */\nfunction Notifier(queue, options) {\n this.queue = queue;\n this.options = options;\n this.transforms = [];\n this.diagnostic = {};\n}\n\n/*\n * configure - updates the options for this notifier with the passed in object\n *\n * @param options - an object which gets merged with the current options set on this notifier\n * @returns this\n */\nNotifier.prototype.configure = function (options) {\n this.queue && this.queue.configure(options);\n var oldOptions = this.options;\n this.options = _.merge(oldOptions, options);\n return this;\n};\n\n/*\n * addTransform - adds a transform onto the end of the queue of transforms for this notifier\n *\n * @param transform - a function which takes three arguments:\n * * item: An Object representing the data to eventually be sent to Rollbar\n * * options: The current value of the options for this notifier\n * * callback: function(err: (Null|Error), item: (Null|Object)) the transform must call this\n * callback with a null value for error if it wants the processing chain to continue, otherwise\n * with an error to terminate the processing. The item should be the updated item after this\n * transform is finished modifying it.\n */\nNotifier.prototype.addTransform = function (transform) {\n if (_.isFunction(transform)) {\n this.transforms.push(transform);\n }\n return this;\n};\n\n/*\n * log - the internal log function which applies the configured transforms and then pushes onto the\n * queue to be sent to the backend.\n *\n * @param item - An object with the following structure:\n * message [String] - An optional string to be sent to rollbar\n * error [Error] - An optional error\n *\n * @param callback - A function of type function(err, resp) which will be called with exactly one\n * null argument and one non-null argument. The callback will be called once, either during the\n * transform stage if an error occurs inside a transform, or in response to the communication with\n * the backend. The second argument will be the response from the backend in case of success.\n */\nNotifier.prototype.log = function (item, callback) {\n if (!callback || !_.isFunction(callback)) {\n callback = function () {};\n }\n\n if (!this.options.enabled) {\n return callback(new Error('Rollbar is not enabled'));\n }\n\n this.queue.addPendingItem(item);\n var originalError = item.err;\n this._applyTransforms(\n item,\n function (err, i) {\n if (err) {\n this.queue.removePendingItem(item);\n return callback(err, null);\n }\n this.queue.addItem(i, callback, originalError, item);\n }.bind(this),\n );\n};\n\n/* Internal */\n\n/*\n * _applyTransforms - Applies the transforms that have been added to this notifier sequentially. See\n * `addTransform` for more information.\n *\n * @param item - An item to be transformed\n * @param callback - A function of type function(err, item) which will be called with a non-null\n * error and a null item in the case of a transform failure, or a null error and non-null item after\n * all transforms have been applied.\n */\nNotifier.prototype._applyTransforms = function (item, callback) {\n var transformIndex = -1;\n var transformsLength = this.transforms.length;\n var transforms = this.transforms;\n var options = this.options;\n\n var cb = function (err, i) {\n if (err) {\n callback(err, null);\n return;\n }\n\n transformIndex++;\n\n if (transformIndex === transformsLength) {\n callback(null, i);\n return;\n }\n\n transforms[transformIndex](i, options, cb);\n };\n\n cb(null, item);\n};\n\nexport default Notifier;\n","import RateLimiter from './rateLimiter.js';\nimport Queue from './queue.js';\nimport Notifier from './notifier.js';\nimport * as _ from './utility.js';\n\n/*\n * Rollbar - the interface to Rollbar\n *\n * @param options\n * @param api\n * @param logger\n */\nfunction Rollbar(\n options,\n api,\n logger,\n telemeter,\n tracing,\n replayManager,\n platform,\n) {\n this.options = _.merge(options);\n this.logger = logger;\n Rollbar.rateLimiter.configureGlobal(this.options);\n Rollbar.rateLimiter.setPlatformOptions(platform, this.options);\n this.api = api;\n this.queue = new Queue(\n Rollbar.rateLimiter,\n api,\n logger,\n this.options,\n replayManager,\n );\n\n this.tracing = tracing;\n\n // Legacy OpenTracing support\n // This must happen before the Notifier is created\n var tracer = this.options.tracer || null;\n if (validateTracer(tracer)) {\n this.tracer = tracer;\n // set to a string for api response serialization\n this.options.tracer = 'opentracing-tracer-enabled';\n this.options._configuredOptions.tracer = 'opentracing-tracer-enabled';\n } else {\n this.tracer = null;\n }\n\n this.notifier = new Notifier(this.queue, this.options);\n this.telemeter = telemeter;\n setStackTraceLimit(options);\n this.lastError = null;\n this.lastErrorHash = 'none';\n}\n\nvar defaultOptions = {\n maxItems: 0,\n itemsPerMinute: 60,\n};\n\nRollbar.rateLimiter = new RateLimiter(defaultOptions);\n\nRollbar.prototype.global = function (options) {\n Rollbar.rateLimiter.configureGlobal(options);\n return this;\n};\n\nRollbar.prototype.configure = function (options, payloadData) {\n var oldOptions = this.options;\n var payload = {};\n if (payloadData) {\n payload = { payload: payloadData };\n }\n\n this.options = _.merge(oldOptions, options, payload);\n\n // Legacy OpenTracing support\n // This must happen before the Notifier is configured\n var tracer = this.options.tracer || null;\n if (validateTracer(tracer)) {\n this.tracer = tracer;\n // set to a string for api response serialization\n this.options.tracer = 'opentracing-tracer-enabled';\n this.options._configuredOptions.tracer = 'opentracing-tracer-enabled';\n } else {\n this.tracer = null;\n }\n\n this.notifier && this.notifier.configure(this.options);\n this.telemeter && this.telemeter.configure(this.options);\n setStackTraceLimit(options);\n this.global(this.options);\n\n if (validateTracer(options.tracer)) {\n this.tracer = options.tracer;\n }\n\n return this;\n};\n\nRollbar.prototype.log = function (item) {\n var level = this._defaultLogLevel();\n return this._log(level, item);\n};\n\nRollbar.prototype.debug = function (item) {\n this._log('debug', item);\n};\n\nRollbar.prototype.info = function (item) {\n this._log('info', item);\n};\n\nRollbar.prototype.warn = function (item) {\n this._log('warning', item);\n};\n\nRollbar.prototype.warning = function (item) {\n this._log('warning', item);\n};\n\nRollbar.prototype.error = function (item) {\n this._log('error', item);\n};\n\nRollbar.prototype.critical = function (item) {\n this._log('critical', item);\n};\n\nRollbar.prototype.wait = function (callback) {\n this.queue.wait(callback);\n};\n\nRollbar.prototype.captureEvent = function (type, metadata, level) {\n return this.telemeter && this.telemeter.captureEvent(type, metadata, level);\n};\n\nRollbar.prototype.captureDomContentLoaded = function (ts) {\n return this.telemeter && this.telemeter.captureDomContentLoaded(ts);\n};\n\nRollbar.prototype.captureLoad = function (ts) {\n return this.telemeter && this.telemeter.captureLoad(ts);\n};\n\nRollbar.prototype.buildJsonPayload = function (item) {\n return this.api.buildJsonPayload(item);\n};\n\nRollbar.prototype.sendJsonPayload = function (jsonPayload) {\n this.api.postJsonPayload(jsonPayload);\n};\n\n/* Internal */\n\nRollbar.prototype._log = function (defaultLevel, item) {\n var callback;\n if (item.callback) {\n callback = item.callback;\n delete item.callback;\n }\n if (this.options.ignoreDuplicateErrors && this._sameAsLastError(item)) {\n if (callback) {\n var error = new Error('ignored identical item');\n error.item = item;\n callback(error);\n }\n return;\n }\n try {\n item.level = item.level || defaultLevel;\n\n this._addTracingAttributes(item);\n\n // Legacy OpenTracing support\n this._addTracingInfo(item);\n\n const telemeter = this.telemeter;\n if (telemeter) {\n telemeter._captureRollbarItem(item);\n item.telemetryEvents = telemeter.copyEvents() || [];\n }\n\n this.notifier.log(item, callback);\n } catch (e) {\n if (callback) {\n callback(e);\n }\n this.logger.error(e);\n }\n};\n\nRollbar.prototype._addTracingAttributes = function (item) {\n const span = this.tracing?.getSpan();\n\n const attributes = [\n { key: 'session_id', value: this.tracing?.sessionId },\n { key: 'span_id', value: span?.spanId },\n { key: 'trace_id', value: span?.traceId },\n ];\n _.addItemAttributes(item.data, attributes);\n\n span?.addEvent('rollbar.occurrence', [\n { key: 'rollbar.occurrence.uuid', value: item.uuid },\n ]);\n};\n\nRollbar.prototype._defaultLogLevel = function () {\n return this.options.logLevel || 'debug';\n};\n\nRollbar.prototype._sameAsLastError = function (item) {\n if (!item._isUncaught) {\n return false;\n }\n var itemHash = generateItemHash(item);\n if (this.lastErrorHash === itemHash) {\n return true;\n }\n this.lastError = item.err;\n this.lastErrorHash = itemHash;\n return false;\n};\n\nRollbar.prototype._addTracingInfo = function (item) {\n // Tracer validation occurs in the constructor\n // or in the Rollbar.prototype.configure methods\n if (this.tracer) {\n // add rollbar occurrence uuid to span\n var span = this.tracer.scope().active();\n\n if (validateSpan(span)) {\n span.setTag('rollbar.error_uuid', item.uuid);\n span.setTag('rollbar.has_error', true);\n span.setTag('error', true);\n span.setTag(\n 'rollbar.item_url',\n `https://rollbar.com/item/uuid/?uuid=${item.uuid}`,\n );\n span.setTag(\n 'rollbar.occurrence_url',\n `https://rollbar.com/occurrence/uuid/?uuid=${item.uuid}`,\n );\n\n // add span ID & trace ID to occurrence\n var opentracingSpanId = span.context().toSpanId();\n var opentracingTraceId = span.context().toTraceId();\n\n if (item.custom) {\n item.custom.opentracing_span_id = opentracingSpanId;\n item.custom.opentracing_trace_id = opentracingTraceId;\n } else {\n item.custom = {\n opentracing_span_id: opentracingSpanId,\n opentracing_trace_id: opentracingTraceId,\n };\n }\n }\n }\n};\n\nfunction generateItemHash(item) {\n var message = item.message || '';\n var stack = (item.err || {}).stack || String(item.err);\n return message + '::' + stack;\n}\n\n// Node.js, Chrome, Safari, and some other browsers support this property\n// which globally sets the number of stack frames returned in an Error object.\n// If a browser can't use it, no harm done.\nfunction setStackTraceLimit(options) {\n if (options.stackTraceLimit) {\n Error.stackTraceLimit = options.stackTraceLimit;\n }\n}\n\n/**\n * Validate the Tracer object provided to the Client\n * is valid for our Opentracing use case.\n * @param {opentracer.Tracer} tracer\n */\nfunction validateTracer(tracer) {\n if (!tracer) {\n return false;\n }\n\n if (!tracer.scope || typeof tracer.scope !== 'function') {\n return false;\n }\n\n var scope = tracer.scope();\n\n if (!scope || !scope.active || typeof scope.active !== 'function') {\n return false;\n }\n\n return true;\n}\n\n/**\n * Validate the Span object provided\n * @param {opentracer.Span} span\n */\nfunction validateSpan(span) {\n if (!span || !span.context || typeof span.context !== 'function') {\n return false;\n }\n\n var spanContext = span.context();\n\n if (\n !spanContext ||\n !spanContext.toSpanId ||\n !spanContext.toTraceId ||\n typeof spanContext.toSpanId !== 'function' ||\n typeof spanContext.toTraceId !== 'function'\n ) {\n return false;\n }\n\n return true;\n}\n\nexport default Rollbar;\n","import * as _ from './utility.js';\n\nfunction buildPayload(data) {\n if (!_.isType(data.context, 'string')) {\n var contextResult = _.stringify(data.context);\n if (contextResult.error) {\n data.context = \"Error: could not serialize 'context'\";\n } else {\n data.context = contextResult.value || '';\n }\n if (data.context.length > 255) {\n data.context = data.context.substr(0, 255);\n }\n }\n return {\n data: data,\n };\n}\n\nfunction getTransportFromOptions(options, defaults, url) {\n var hostname = defaults.hostname;\n var protocol = defaults.protocol;\n var port = defaults.port;\n var path = defaults.path;\n var search = defaults.search;\n var timeout = options.timeout;\n var transport = detectTransport(options);\n\n var proxy = options.proxy;\n if (options.endpoint) {\n var opts = url.parse(options.endpoint);\n hostname = opts.hostname;\n protocol = opts.protocol;\n port = opts.port;\n path = opts.pathname;\n search = opts.search;\n }\n return {\n timeout: timeout,\n hostname: hostname,\n protocol: protocol,\n port: port,\n path: path,\n search: search,\n proxy: proxy,\n transport: transport,\n };\n}\n\nfunction detectTransport(options) {\n var gWindow =\n (typeof window != 'undefined' && window) ||\n (typeof self != 'undefined' && self);\n var transport = options.defaultTransport || 'xhr';\n if (typeof gWindow.fetch === 'undefined') transport = 'xhr';\n if (typeof gWindow.XMLHttpRequest === 'undefined') transport = 'fetch';\n return transport;\n}\n\nfunction transportOptions(transport, method) {\n var protocol = transport.protocol || 'https:';\n var port =\n transport.port ||\n (protocol === 'http:' ? 80 : protocol === 'https:' ? 443 : undefined);\n var hostname = transport.hostname;\n var path = transport.path;\n var timeout = transport.timeout;\n var transportAPI = transport.transport;\n if (transport.search) {\n path = path + transport.search;\n }\n if (transport.proxy) {\n path = protocol + '//' + hostname + path;\n hostname = transport.proxy.host || transport.proxy.hostname;\n port = transport.proxy.port;\n protocol = transport.proxy.protocol || protocol;\n }\n return {\n timeout: timeout,\n protocol: protocol,\n hostname: hostname,\n path: path,\n port: port,\n method: method,\n transport: transportAPI,\n };\n}\n\nfunction appendPathToPath(base, path) {\n var baseTrailingSlash = /\\/$/.test(base);\n var pathBeginningSlash = /^\\//.test(path);\n\n if (baseTrailingSlash && pathBeginningSlash) {\n path = path.substring(1);\n } else if (!baseTrailingSlash && !pathBeginningSlash) {\n path = '/' + path;\n }\n\n return base + path;\n}\n\nexport {\n buildPayload,\n getTransportFromOptions,\n transportOptions,\n appendPathToPath,\n};\n","import * as _ from './utility.js';\nimport * as helpers from './apiUtility.js';\n\nvar defaultOptions = {\n hostname: 'api.rollbar.com',\n path: '/api/1/item/',\n search: null,\n version: '1',\n protocol: 'https:',\n port: 443,\n};\n\nvar OTLPDefaultOptions = {\n hostname: 'api.rollbar.com',\n path: '/api/1/session/',\n search: null,\n version: '1',\n protocol: 'https:',\n port: 443,\n};\n\n/**\n * Api is an object that encapsulates methods of communicating with\n * the Rollbar API. It is a standard interface with some parts implemented\n * differently for server or browser contexts. It is an object that should\n * be instantiated when used so it can contain non-global options that may\n * be different for another instance of RollbarApi.\n *\n * @param options {\n * accessToken: the accessToken to use for posting items to rollbar\n * endpoint: an alternative endpoint to send errors to\n * must be a valid, fully qualified URL.\n * The default is: https://api.rollbar.com/api/1/item\n * proxy: if you wish to proxy requests provide an object\n * with the following keys:\n * host or hostname (required): foo.example.com\n * port (optional): 123\n * protocol (optional): https\n * }\n */\nfunction Api(options, transport, urllib, truncation) {\n this.options = options;\n this.transport = transport;\n this.url = urllib;\n this.truncation = truncation;\n this.accessToken = options.accessToken;\n this.transportOptions = _getTransport(options, urllib);\n this.OTLPTransportOptions = _getOTLPTransport(options, urllib);\n}\n\n/**\n * Wraps transport.post in a Promise to support async/await\n *\n * @param {Object} options - Options for the API request\n * @param {string} options.accessToken - The access token for authentication\n * @param {Object} options.transportOptions - Options for the transport\n * @param {Object} options.payload - The data payload to send\n * @returns {Promise} A promise that resolves with the response or rejects with an error\n * @private\n */\nApi.prototype._postPromise = function ({\n accessToken,\n options,\n payload,\n headers,\n}) {\n const self = this;\n return new Promise((resolve, reject) => {\n self.transport.post({\n accessToken,\n options,\n payload,\n headers,\n callback: (err, resp) => (err ? reject(err) : resolve(resp)),\n });\n });\n};\n\n/**\n *\n * @param data\n * @param callback\n */\nApi.prototype.postItem = function (data, callback) {\n const options = helpers.transportOptions(this.transportOptions, 'POST');\n const payload = helpers.buildPayload(data);\n const self = this;\n\n // ensure the network request is scheduled after the current tick.\n setTimeout(function () {\n self.transport.post({\n accessToken: self.accessToken,\n options,\n payload,\n callback,\n });\n }, 0);\n};\n\n/**\n * Posts spans to the Rollbar API using the session endpoint\n *\n * @param {Array} payload - The spans to send\n * @returns {Promise} A promise that resolves with the API response\n */\nApi.prototype.postSpans = async function (payload, headers = {}) {\n const options = helpers.transportOptions(this.OTLPTransportOptions, 'POST');\n\n return await this._postPromise({\n accessToken: this.accessToken,\n options,\n payload,\n headers,\n });\n};\n\n/**\n *\n * @param data\n * @param callback\n */\nApi.prototype.buildJsonPayload = function (data, callback) {\n var payload = helpers.buildPayload(data);\n\n var stringifyResult;\n if (this.truncation) {\n stringifyResult = this.truncation.truncate(payload);\n } else {\n stringifyResult = _.stringify(payload);\n }\n\n if (stringifyResult.error) {\n if (callback) {\n callback(stringifyResult.error);\n }\n return null;\n }\n\n return stringifyResult.value;\n};\n\n/**\n *\n * @param jsonPayload\n * @param callback\n */\nApi.prototype.postJsonPayload = function (jsonPayload, callback) {\n var transportOptions = helpers.transportOptions(\n this.transportOptions,\n 'POST',\n );\n this.transport.postJsonPayload(\n this.accessToken,\n transportOptions,\n jsonPayload,\n callback,\n );\n};\n\nApi.prototype.configure = function (options) {\n var oldOptions = this.oldOptions;\n this.options = _.merge(oldOptions, options);\n this.transportOptions = _getTransport(this.options, this.url);\n this.OTLPTransportOptions = _getOTLPTransport(this.options, this.url);\n if (this.options.accessToken !== undefined) {\n this.accessToken = this.options.accessToken;\n }\n return this;\n};\n\nfunction _getTransport(options, url) {\n return helpers.getTransportFromOptions(options, defaultOptions, url);\n}\n\nfunction _getOTLPTransport(options, url) {\n options = { ...options, endpoint: options.tracing?.endpoint };\n return helpers.getTransportFromOptions(options, OTLPDefaultOptions, url);\n}\n\nexport default Api;\n","let log = () => {};\n\nconst levels = {\n debug: 0,\n info: 1,\n warn: 2,\n error: 3,\n disable: 4,\n};\n\nconst logger = {\n error: (...args) => log('error', args),\n warn: (...args) => log('warn', args),\n info: (...args) => log('info', args),\n debug: (...args) => log('debug', args),\n log: (...args) => log('info', args),\n init: ({ logLevel }) => {\n log = function (level, args) {\n if (levels[level] < levels[logLevel]) return;\n\n args.unshift('Rollbar:');\n\n console[level].apply(console, args);\n };\n },\n};\n\nexport default logger;\n","function captureUncaughtExceptions(window, handler, shim) {\n if (!window) {\n return;\n }\n var oldOnError;\n\n if (typeof handler._rollbarOldOnError === 'function') {\n oldOnError = handler._rollbarOldOnError;\n } else if (window.onerror) {\n oldOnError = window.onerror;\n while (oldOnError._rollbarOldOnError) {\n oldOnError = oldOnError._rollbarOldOnError;\n }\n handler._rollbarOldOnError = oldOnError;\n }\n\n handler.handleAnonymousErrors();\n\n var fn = function () {\n var args = Array.prototype.slice.call(arguments, 0);\n _rollbarWindowOnError(window, handler, oldOnError, args);\n };\n if (shim) {\n fn._rollbarOldOnError = oldOnError;\n }\n window.onerror = fn;\n}\n\nfunction _rollbarWindowOnError(window, r, old, args) {\n if (window._rollbarWrappedError) {\n if (!args[4]) {\n args[4] = window._rollbarWrappedError;\n }\n if (!args[5]) {\n args[5] = window._rollbarWrappedError._rollbarContext;\n }\n window._rollbarWrappedError = null;\n }\n\n var ret = r.handleUncaughtException.apply(r, args);\n\n if (old) {\n old.apply(window, args);\n }\n\n // Let other chained onerror handlers above run before setting this.\n // If an error is thrown and caught within a chained onerror handler,\n // Error.prepareStackTrace() will see that one before the one we want.\n if (ret === 'anonymous') {\n r.anonymousErrorsPending += 1; // See Rollbar.prototype.handleAnonymousErrors()\n }\n}\n\nfunction captureUnhandledRejections(window, handler, shim) {\n if (!window) {\n return;\n }\n\n if (\n typeof window._rollbarURH === 'function' &&\n window._rollbarURH.belongsToShim\n ) {\n window.removeEventListener('unhandledrejection', window._rollbarURH);\n }\n\n var rejectionHandler = function (evt) {\n var reason, promise, detail;\n try {\n reason = evt.reason;\n } catch (e) {\n reason = undefined;\n }\n try {\n promise = evt.promise;\n } catch (e) {\n promise = '[unhandledrejection] error getting `promise` from event';\n }\n try {\n detail = evt.detail;\n if (!reason && detail) {\n reason = detail.reason;\n promise = detail.promise;\n }\n } catch (e) {\n // Ignore\n }\n if (!reason) {\n reason = '[unhandledrejection] error getting `reason` from event';\n }\n\n if (handler && handler.handleUnhandledRejection) {\n handler.handleUnhandledRejection(reason, promise);\n }\n };\n rejectionHandler.belongsToShim = shim;\n window._rollbarURH = rejectionHandler;\n window.addEventListener('unhandledrejection', rejectionHandler);\n}\n\nexport { captureUncaughtExceptions, captureUnhandledRejections };\n","import logger from '../../logger.js';\nimport * as _ from '../../utility.js';\n\nfunction makeFetchRequest({\n accessToken,\n url,\n method,\n payload,\n headers,\n callback,\n timeout,\n}) {\n var controller;\n var timeoutId;\n\n if (_.isFiniteNumber(timeout)) {\n controller = new AbortController();\n timeoutId = setTimeout(function () {\n controller.abort();\n }, timeout);\n }\n\n headers = {\n 'Content-Type': 'application/json',\n 'X-Rollbar-Access-Token': accessToken,\n signal: controller && controller.signal,\n ...headers,\n };\n\n fetch(url, {\n method,\n headers,\n body: payload,\n })\n .then(function (response) {\n if (timeoutId) clearTimeout(timeoutId);\n const respHeaders = response.headers;\n\n const isItemRoute = url.endsWith('/api/1/item/');\n const headers = isItemRoute\n ? {\n 'Rollbar-Replay-Enabled': respHeaders.get('Rollbar-Replay-Enabled'),\n 'Rollbar-Replay-RateLimit-Remaining': respHeaders.get(\n 'Rollbar-Replay-RateLimit-Remaining',\n ),\n 'Rollbar-Replay-RateLimit-Reset': respHeaders.get(\n 'Rollbar-Replay-RateLimit-Reset',\n ),\n }\n : {};\n\n const json = response.json();\n callback(null, json, headers);\n })\n .catch(function (error) {\n logger.error(error.message);\n callback(error);\n });\n}\n\nexport default makeFetchRequest;\n","/*global XDomainRequest*/\n\nimport * as _ from '../../utility.js';\nimport logger from '../../logger.js';\n\nfunction makeXhrRequest({\n accessToken,\n url,\n method,\n payload,\n headers,\n callback,\n requestFactory,\n timeout,\n}) {\n var request;\n if (requestFactory) {\n request = requestFactory();\n } else {\n request = _createXMLHTTPObject();\n }\n if (!request) {\n // Give up, no way to send requests\n return callback(new Error('No way to send a request'));\n }\n try {\n try {\n var onreadystatechange = function () {\n try {\n if (onreadystatechange && request.readyState === 4) {\n onreadystatechange = undefined;\n\n var parseResponse = _.jsonParse(request.responseText);\n if (_isSuccess(request)) {\n const isItemRoute = url.endsWith('/api/1/item/');\n\n const headers = isItemRoute\n ? {\n 'Rollbar-Replay-Enabled': request.getResponseHeader(\n 'Rollbar-Replay-Enabled',\n ),\n 'Rollbar-Replay-RateLimit-Remaining':\n request.getResponseHeader(\n 'Rollbar-Replay-RateLimit-Remaining',\n ),\n 'Rollbar-Replay-RateLimit-Reset': request.getResponseHeader(\n 'Rollbar-Replay-RateLimit-Reset',\n ),\n }\n : {};\n callback(parseResponse.error, parseResponse.value, headers);\n return;\n } else if (_isNormalFailure(request)) {\n if (request.status === 403) {\n // likely caused by using a server access token\n var message =\n parseResponse.value && parseResponse.value.message;\n logger.error(message);\n }\n // return valid http status codes\n callback(new Error(String(request.status)));\n } else {\n // IE will return a status 12000+ on some sort of connection failure,\n // so we return a blank error\n // http://msdn.microsoft.com/en-us/library/aa383770%28VS.85%29.aspx\n var msg =\n 'XHR response had no status code (likely connection failure)';\n callback(_newRetriableError(msg));\n }\n }\n } catch (ex) {\n //jquery source mentions firefox may error out while accessing the\n //request members if there is a network error\n //https://github.com/jquery/jquery/blob/a938d7b1282fc0e5c52502c225ae8f0cef219f0a/src/ajax/xhr.js#L111\n var exc;\n if (ex && ex.stack) {\n exc = ex;\n } else {\n exc = new Error(ex);\n }\n callback(exc);\n }\n };\n\n request.open(method, url, true);\n if (request.setRequestHeader) {\n request.setRequestHeader('Content-Type', 'application/json');\n request.setRequestHeader('X-Rollbar-Access-Token', accessToken);\n for (const [h, v] of Object.entries(headers ?? {})) {\n request.setRequestHeader(h, v);\n }\n }\n\n if (_.isFiniteNumber(timeout)) {\n request.timeout = timeout;\n }\n\n request.onreadystatechange = onreadystatechange;\n request.send(payload);\n } catch (e1) {\n // Sending using the normal xmlhttprequest object didn't work, try XDomainRequest\n if (typeof XDomainRequest !== 'undefined') {\n // Assume we are in a really old browser which has a bunch of limitations:\n // http://blogs.msdn.com/b/ieinternals/archive/2010/05/13/xdomainrequest-restrictions-limitations-and-workarounds.aspx\n\n // Extreme paranoia: if we have XDomainRequest then we have a window, but just in case\n if (!window || !window.location) {\n return callback(\n new Error(\n 'No window available during request, unknown environment',\n ),\n );\n }\n\n // If the current page is http, try and send over http\n if (\n window.location.href.substring(0, 5) === 'http:' &&\n url.substring(0, 5) === 'https'\n ) {\n url = 'http' + url.substring(5);\n }\n\n var xdomainrequest = new XDomainRequest();\n xdomainrequest.onprogress = function () {};\n xdomainrequest.ontimeout = function () {\n var msg = 'Request timed out';\n var code = 'ETIMEDOUT';\n callback(_newRetriableError(msg, code));\n };\n xdomainrequest.onerror = function () {\n callback(new Error('Error during request'));\n };\n xdomainrequest.onload = function () {\n var parseResponse = _.jsonParse(xdomainrequest.responseText);\n callback(parseResponse.error, parseResponse.value);\n };\n xdomainrequest.open(method, url, true);\n xdomainrequest.send(payload);\n } else {\n callback(new Error('Cannot find a method to transport a request'));\n }\n }\n } catch (e2) {\n callback(e2);\n }\n}\n\nfunction _createXMLHTTPObject() {\n /* global ActiveXObject:false */\n\n var factories = [\n function () {\n return new XMLHttpRequest();\n },\n function () {\n return new ActiveXObject('Msxml2.XMLHTTP');\n },\n function () {\n return new ActiveXObject('Msxml3.XMLHTTP');\n },\n function () {\n return new ActiveXObject('Microsoft.XMLHTTP');\n },\n ];\n var xmlhttp;\n var i;\n var numFactories = factories.length;\n for (i = 0; i < numFactories; i++) {\n try {\n xmlhttp = factories[i]();\n break;\n } catch (e) {\n // pass\n }\n }\n return xmlhttp;\n}\n\nfunction _isSuccess(r) {\n return r && r.status && r.status === 200;\n}\n\nfunction _isNormalFailure(r) {\n return r && _.isType(r.status, 'number') && r.status >= 400 && r.status < 600;\n}\n\nfunction _newRetriableError(message, code) {\n var err = new Error(message);\n err.code = code || 'ENOTFOUND';\n return err;\n}\n\nexport default makeXhrRequest;\n","import * as _ from '../utility.js';\nimport makeFetchRequest from './transport/fetch.js';\nimport makeXhrRequest from './transport/xhr.js';\n\n/*\n * accessToken may be embedded in payload but that should not\n * be assumed\n *\n * options: {\n * hostname\n * protocol\n * path\n * port\n * method\n * transport ('xhr' | 'fetch')\n * }\n *\n * params is an object containing key/value pairs. These\n * will be appended to the path as 'key=value&key=value'\n *\n * payload is an unserialized object\n */\nfunction Transport(truncation) {\n this.truncation = truncation;\n}\n\nTransport.prototype.get = function (\n accessToken,\n options,\n params,\n callback,\n requestFactory,\n) {\n if (!callback || !_.isFunction(callback)) {\n callback = function () {};\n }\n _.addParamsAndAccessTokenToPath(accessToken, options, params);\n\n var method = 'GET';\n var url = _.formatUrl(options);\n this._makeZoneRequest({\n accessToken,\n url,\n method,\n callback,\n requestFactory,\n timeout: options.timeout,\n transport: options.transport,\n });\n};\n\nTransport.prototype.post = function ({\n accessToken,\n options,\n payload,\n headers,\n callback,\n requestFactory,\n}) {\n if (!callback || !_.isFunction(callback)) {\n callback = function () {};\n }\n\n if (!payload) {\n return callback(new Error('Cannot send empty request'));\n }\n\n var stringifyResult;\n // Check payload.body to ensure only items are truncated.\n if (this.truncation && payload.body) {\n stringifyResult = this.truncation.truncate(payload);\n } else {\n stringifyResult = _.stringify(payload);\n }\n if (stringifyResult.error) {\n return callback(stringifyResult.error);\n }\n\n var payload = stringifyResult.value;\n var method = 'POST';\n var url = _.formatUrl(options);\n this._makeZoneRequest({\n accessToken,\n url,\n method,\n payload,\n headers,\n callback,\n requestFactory,\n timeout: options.timeout,\n transport: options.transport,\n });\n};\n\nTransport.prototype.postJsonPayload = function (\n accessToken,\n options,\n payload,\n callback,\n requestFactory,\n) {\n if (!callback || !_.isFunction(callback)) {\n callback = function () {};\n }\n\n var method = 'POST';\n var url = _.formatUrl(options);\n this._makeZoneRequest({\n accessToken,\n url,\n method,\n payload,\n callback,\n requestFactory,\n timeout: options.timeout,\n transport: options.transport,\n });\n};\n\n// Wraps `_makeRequest` if zone.js is being used, ensuring that Rollbar\n// API calls are not intercepted by any child forked zones.\n// This is equivalent to `NgZone.runOutsideAngular` in Angular.\nTransport.prototype._makeZoneRequest = function () {\n var gWindow =\n (typeof window != 'undefined' && window) ||\n (typeof self != 'undefined' && self);\n // Whenever zone.js is loaded and `Zone` is exposed globally, access\n // the root zone to ensure that requests are always made within it.\n // This approach is framework-agnostic, regardless of which\n // framework zone.js is used with.\n var rootZone = gWindow && gWindow.Zone && gWindow.Zone.root;\n var args = Array.prototype.slice.call(arguments);\n\n if (rootZone) {\n var self = this;\n rootZone.run(function () {\n self._makeRequest.apply(undefined, args);\n });\n } else {\n this._makeRequest.apply(undefined, args);\n }\n};\n\nTransport.prototype._makeRequest = function (params) {\n const { payload, callback, transport } = params;\n if (typeof RollbarProxy !== 'undefined') {\n return _proxyRequest(payload, callback);\n }\n\n if (transport === 'fetch') {\n makeFetchRequest(params);\n } else {\n makeXhrRequest(params);\n }\n};\n\n/* global RollbarProxy */\nfunction _proxyRequest(json, callback) {\n var rollbarProxy = new RollbarProxy();\n rollbarProxy.sendJsonPayload(\n json,\n function (_msg) {\n /* do nothing */\n },\n function (err) {\n callback(new Error(err));\n },\n );\n}\n\nexport default Transport;\n","// See https://nodejs.org/docs/latest/api/url.html\nfunction parse(url) {\n var result = {\n protocol: null,\n auth: null,\n host: null,\n path: null,\n hash: null,\n href: url,\n hostname: null,\n port: null,\n pathname: null,\n search: null,\n query: null,\n };\n\n var i, last;\n i = url.indexOf('//');\n if (i !== -1) {\n result.protocol = url.substring(0, i);\n last = i + 2;\n } else {\n last = 0;\n }\n\n i = url.indexOf('@', last);\n if (i !== -1) {\n result.auth = url.substring(last, i);\n last = i + 1;\n }\n\n i = url.indexOf('/', last);\n if (i === -1) {\n i = url.indexOf('?', last);\n if (i === -1) {\n i = url.indexOf('#', last);\n if (i === -1) {\n result.host = url.substring(last);\n } else {\n result.host = url.substring(last, i);\n result.hash = url.substring(i);\n }\n result.hostname = result.host.split(':')[0];\n result.port = result.host.split(':')[1];\n if (result.port) {\n result.port = parseInt(result.port, 10);\n }\n return result;\n } else {\n result.host = url.substring(last, i);\n result.hostname = result.host.split(':')[0];\n result.port = result.host.split(':')[1];\n if (result.port) {\n result.port = parseInt(result.port, 10);\n }\n last = i;\n }\n } else {\n result.host = url.substring(last, i);\n result.hostname = result.host.split(':')[0];\n result.port = result.host.split(':')[1];\n if (result.port) {\n result.port = parseInt(result.port, 10);\n }\n last = i;\n }\n\n i = url.indexOf('#', last);\n if (i === -1) {\n result.path = url.substring(last);\n } else {\n result.path = url.substring(last, i);\n result.hash = url.substring(i);\n }\n\n if (result.path) {\n var pathParts = result.path.split('?');\n result.pathname = pathParts[0];\n result.query = pathParts[1];\n result.search = result.query ? '?' + result.query : null;\n }\n return result;\n}\n\nexport { parse };\n","const FIREFOX_SAFARI_STACK_REGEXP = /(^|@)\\S+:\\d+/;\nconst CHROME_IE_STACK_REGEXP = /^\\s*at .*(\\S+:\\d+|\\(native\\))/m;\nconst SAFARI_NATIVE_CODE_REGEXP = /^(eval@)?(\\[native code\\])?$/;\nfunction parse(error, options) {\n if (typeof error.stacktrace !== \"undefined\" || typeof error[\"opera#sourceloc\"] !== \"undefined\")\n return parseOpera(error, options);\n else if (error.stack && error.stack.match(CHROME_IE_STACK_REGEXP))\n return parseV8OrIE(error, options);\n else if (error.stack)\n return parseFFOrSafari(error, options);\n else if (options?.allowEmpty)\n return [];\n else\n throw new Error(\"Cannot parse given Error object\");\n}\nfunction parseStack(stackString, options) {\n if (stackString.match(CHROME_IE_STACK_REGEXP))\n return parseV8OrIeString(stackString, options);\n else\n return parseFFOrSafariString(stackString, options);\n}\nfunction extractLocation(urlLike) {\n if (!urlLike.includes(\":\"))\n return [urlLike, undefined, undefined];\n const regExp = /(.+?)(?::(\\d+))?(?::(\\d+))?$/;\n const parts = regExp.exec(urlLike.replace(/[()]/g, \"\"));\n return [parts[1], parts[2] || undefined, parts[3] || undefined];\n}\nfunction applySlice(lines, options) {\n if (options && options.slice != null) {\n if (Array.isArray(options.slice))\n return lines.slice(options.slice[0], options.slice[1]);\n return lines.slice(0, options.slice);\n }\n return lines;\n}\nfunction parseV8OrIE(error, options) {\n return parseV8OrIeString(error.stack, options);\n}\nfunction parseV8OrIeString(stack, options) {\n const filtered = applySlice(\n stack.split(\"\\n\").filter((line) => {\n return !!line.match(CHROME_IE_STACK_REGEXP);\n }),\n options\n );\n return filtered.map((line) => {\n if (line.includes(\"(eval \")) {\n line = line.replace(/eval code/g, \"eval\").replace(/(\\(eval at [^()]*)|(,.*$)/g, \"\");\n }\n let sanitizedLine = line.replace(/^\\s+/, \"\").replace(/\\(eval code/g, \"(\").replace(/^.*?\\s+/, \"\");\n const location = sanitizedLine.match(/ (\\(.+\\)$)/);\n sanitizedLine = location ? sanitizedLine.replace(location[0], \"\") : sanitizedLine;\n const locationParts = extractLocation(location ? location[1] : sanitizedLine);\n const functionName = location && sanitizedLine || undefined;\n const fileName = [\"eval\", \"\"].includes(locationParts[0]) ? undefined : locationParts[0];\n return {\n function: functionName,\n file: fileName,\n line: locationParts[1] ? +locationParts[1] : undefined,\n col: locationParts[2] ? +locationParts[2] : undefined,\n raw: line\n };\n });\n}\nfunction parseFFOrSafari(error, options) {\n return parseFFOrSafariString(error.stack, options);\n}\nfunction parseFFOrSafariString(stack, options) {\n const filtered = applySlice(\n stack.split(\"\\n\").filter((line) => {\n return !line.match(SAFARI_NATIVE_CODE_REGEXP);\n }),\n options\n );\n return filtered.map((line) => {\n if (line.includes(\" > eval\"))\n line = line.replace(/ line (\\d+)(?: > eval line \\d+)* > eval:\\d+:\\d+/g, \":$1\");\n if (!line.includes(\"@\") && !line.includes(\":\")) {\n return {\n function: line\n };\n } else {\n const functionNameRegex = /(([^\\n\\r\"\\u2028\\u2029]*\".[^\\n\\r\"\\u2028\\u2029]*\"[^\\n\\r@\\u2028\\u2029]*(?:@[^\\n\\r\"\\u2028\\u2029]*\"[^\\n\\r@\\u2028\\u2029]*)*(?:[\\n\\r\\u2028\\u2029][^@]*)?)?[^@]*)@/;\n const matches = line.match(functionNameRegex);\n const functionName = matches && matches[1] ? matches[1] : undefined;\n const locationParts = extractLocation(line.replace(functionNameRegex, \"\"));\n return {\n function: functionName,\n file: locationParts[0],\n line: locationParts[1] ? +locationParts[1] : undefined,\n col: locationParts[2] ? +locationParts[2] : undefined,\n raw: line\n };\n }\n });\n}\nfunction parseOpera(e, options) {\n if (!e.stacktrace || e.message.includes(\"\\n\") && e.message.split(\"\\n\").length > e.stacktrace.split(\"\\n\").length)\n return parseOpera9(e);\n else if (!e.stack)\n return parseOpera10(e);\n else\n return parseOpera11(e, options);\n}\nfunction parseOpera9(e, options) {\n const lineRE = /Line (\\d+).*script (?:in )?(\\S+)/i;\n const lines = e.message.split(\"\\n\");\n const result = [];\n for (let i = 2, len = lines.length; i < len; i += 2) {\n const match = lineRE.exec(lines[i]);\n if (match) {\n result.push({\n file: match[2],\n line: +match[1],\n raw: lines[i]\n });\n }\n }\n return applySlice(result, options);\n}\nfunction parseOpera10(e, options) {\n const lineRE = /Line (\\d+).*script (?:in )?(\\S+)(?:: In function (\\S+))?$/i;\n const lines = e.stacktrace.split(\"\\n\");\n const result = [];\n for (let i = 0, len = lines.length; i < len; i += 2) {\n const match = lineRE.exec(lines[i]);\n if (match) {\n result.push({\n function: match[3] || undefined,\n file: match[2],\n line: match[1] ? +match[1] : undefined,\n raw: lines[i]\n });\n }\n }\n return applySlice(result, options);\n}\nfunction parseOpera11(error, options) {\n const filtered = applySlice(\n // @ts-expect-error missing stack property\n error.stack.split(\"\\n\").filter((line) => {\n return !!line.match(FIREFOX_SAFARI_STACK_REGEXP) && !line.match(/^Error created at/);\n }),\n options\n );\n return filtered.map((line) => {\n const tokens = line.split(\"@\");\n const locationParts = extractLocation(tokens.pop());\n const functionCall = tokens.shift() || \"\";\n const functionName = functionCall.replace(//, \"$2\").replace(/\\([^)]*\\)/g, \"\") || undefined;\n let argsRaw;\n if (functionCall.match(/\\(([^)]*)\\)/))\n argsRaw = functionCall.replace(/^[^(]+\\(([^)]*)\\)$/, \"$1\");\n const args = argsRaw === undefined || argsRaw === \"[arguments not available]\" ? undefined : argsRaw.split(\",\");\n return {\n function: functionName,\n args,\n file: locationParts[0],\n line: locationParts[1] ? +locationParts[1] : undefined,\n col: locationParts[2] ? +locationParts[2] : undefined,\n raw: line\n };\n });\n}\n\nexport { extractLocation, parse, parseFFOrSafari, parseFFOrSafariString, parseOpera, parseOpera10, parseOpera11, parseOpera9, parseStack, parseV8OrIE, parseV8OrIeString };\n","import { parse as parse$1, parseV8OrIE as parseV8OrIE$1, parseFFOrSafari as parseFFOrSafari$1, parseOpera as parseOpera$1, parseOpera9 as parseOpera9$1, parseOpera10 as parseOpera10$1, parseOpera11 as parseOpera11$1 } from './lite.mjs';\nexport { extractLocation } from './lite.mjs';\n\nfunction stackframesLiteToStackframes(liteStackframes) {\n return liteStackframes.map((liteStackframe) => {\n return {\n functionName: liteStackframe.function,\n args: liteStackframe.args,\n fileName: liteStackframe.file,\n lineNumber: liteStackframe.line,\n columnNumber: liteStackframe.col,\n source: liteStackframe.raw\n };\n });\n}\nfunction parse(error, options) {\n return stackframesLiteToStackframes(parse$1(error, options));\n}\nfunction parseV8OrIE(error) {\n return stackframesLiteToStackframes(parseV8OrIE$1(error));\n}\nfunction parseFFOrSafari(error) {\n return stackframesLiteToStackframes(parseFFOrSafari$1(error));\n}\nfunction parseOpera(e) {\n return stackframesLiteToStackframes(parseOpera$1(e));\n}\nfunction parseOpera9(e) {\n return stackframesLiteToStackframes(parseOpera9$1(e));\n}\nfunction parseOpera10(e) {\n return stackframesLiteToStackframes(parseOpera10$1(e));\n}\nfunction parseOpera11(error) {\n return stackframesLiteToStackframes(parseOpera11$1(error));\n}\n\nexport { parse, parseFFOrSafari, parseOpera, parseOpera10, parseOpera11, parseOpera9, parseV8OrIE };\n","import { parse as parseErrorStack } from 'error-stack-parser-es';\n\nvar UNKNOWN_FUNCTION = '?';\nvar ERR_CLASS_REGEXP = new RegExp(\n '^(([a-zA-Z0-9-_$ ]*): *)?(Uncaught )?([a-zA-Z0-9-_$ ]*): ',\n);\n\nfunction guessFunctionName() {\n return UNKNOWN_FUNCTION;\n}\n\nfunction gatherContext() {\n return null;\n}\n\nfunction Frame(stackFrame) {\n var data = {};\n\n data._stackFrame = stackFrame;\n\n data.url = stackFrame.fileName;\n data.line = stackFrame.lineNumber;\n data.func = stackFrame.functionName;\n data.column = stackFrame.columnNumber;\n data.args = stackFrame.args;\n\n data.context = gatherContext();\n\n return data;\n}\n\nfunction Stack(exception, skip) {\n function getStack() {\n var parserStack = [];\n\n skip = skip || 0;\n\n try {\n parserStack = parseErrorStack(exception);\n } catch (e) {\n parserStack = [];\n }\n\n var stack = [];\n\n for (var i = skip; i < parserStack.length; i++) {\n stack.push(new Frame(parserStack[i]));\n }\n\n return stack;\n }\n\n return {\n stack: getStack(),\n message: exception.message,\n name: _mostSpecificErrorName(exception),\n rawStack: exception.stack,\n rawException: exception,\n };\n}\n\nfunction parse(e, skip) {\n var err = e;\n\n if (err.nested || err.cause) {\n var traceChain = [];\n while (err) {\n traceChain.push(new Stack(err, skip));\n err = err.nested || err.cause;\n\n skip = 0; // Only apply skip value to primary error\n }\n\n // Return primary error with full trace chain attached.\n traceChain[0].traceChain = traceChain;\n return traceChain[0];\n } else {\n return new Stack(err, skip);\n }\n}\n\nfunction guessErrorClass(errMsg) {\n if (!errMsg || !errMsg.match) {\n return ['Unknown error. There was no error message to display.', ''];\n }\n var errClassMatch = errMsg.match(ERR_CLASS_REGEXP);\n var errClass = '(unknown)';\n\n if (errClassMatch) {\n errClass = errClassMatch[errClassMatch.length - 1];\n errMsg = errMsg.replace(\n (errClassMatch[errClassMatch.length - 2] || '') + errClass + ':',\n '',\n );\n errMsg = errMsg.replace(/(^[\\s]+|[\\s]+$)/g, '');\n }\n return [errClass, errMsg];\n}\n\n// * Prefers any value over an empty string\n// * Prefers any value over 'Error' where possible\n// * Prefers name over constructor.name when both are more specific than 'Error'\nfunction _mostSpecificErrorName(error) {\n var name = error.name && error.name.length && error.name;\n var constructorName =\n error.constructor.name &&\n error.constructor.name.length &&\n error.constructor.name;\n\n if (!name || !constructorName) {\n return name || constructorName;\n }\n\n if (name === 'Error') {\n return constructorName;\n }\n return name;\n}\n\nexport default {\n guessFunctionName,\n guessErrorClass,\n gatherContext,\n parse,\n Stack,\n Frame,\n};\n","import * as _ from '../utility.js';\nimport errorParser from '../errorParser.js';\nimport logger from '../logger.js';\n\nfunction handleDomException(item, options, callback) {\n if (item.err && errorParser.Stack(item.err).name === 'DOMException') {\n var originalError = new Error();\n originalError.name = item.err.name;\n originalError.message = item.err.message;\n originalError.stack = item.err.stack;\n originalError.nested = item.err;\n item.err = originalError;\n }\n callback(null, item);\n}\n\nfunction handleItemWithError(item, options, callback) {\n item.data = item.data || {};\n if (item.err) {\n try {\n item.stackInfo =\n item.err._savedStackTrace ||\n errorParser.parse(item.err, item.skipFrames);\n\n if (options.addErrorContext) {\n addErrorContext(item);\n }\n } catch (e) {\n logger.error('Error while parsing the error object.', e);\n try {\n item.message =\n item.err.message ||\n item.err.description ||\n item.message ||\n String(item.err);\n } catch (e2) {\n item.message = String(item.err) || String(e2);\n }\n delete item.err;\n }\n }\n callback(null, item);\n}\n\nfunction addErrorContext(item) {\n var chain = [];\n var err = item.err;\n\n chain.push(err);\n\n while (err.nested || err.cause) {\n err = err.nested || err.cause;\n chain.push(err);\n }\n\n _.addErrorContext(item, chain);\n}\n\nfunction ensureItemHasSomethingToSay(item, options, callback) {\n if (!item.message && !item.stackInfo && !item.custom) {\n callback(new Error('No message, stack info, or custom data'), null);\n }\n callback(null, item);\n}\n\nfunction addBaseInfo(item, options, callback) {\n var environment =\n (options.payload && options.payload.environment) || options.environment;\n item.data = _.merge(item.data, {\n environment: environment,\n level: item.level,\n endpoint: options.endpoint,\n platform: 'browser',\n framework: 'browser-js',\n language: 'javascript',\n server: {},\n uuid: item.uuid,\n notifier: {\n name: 'rollbar-browser-js',\n version: options.version,\n },\n custom: item.custom,\n });\n callback(null, item);\n}\n\nfunction addRequestInfo(window) {\n return function (item, options, callback) {\n var requestInfo = {};\n\n if (window && window.location) {\n requestInfo.url = window.location.href;\n requestInfo.query_string = window.location.search;\n }\n\n var remoteString = '$remote_ip';\n if (!options.captureIp) {\n remoteString = null;\n } else if (options.captureIp !== true) {\n remoteString += '_anonymize';\n }\n if (remoteString) requestInfo.user_ip = remoteString;\n\n if (Object.keys(requestInfo).length > 0) {\n _.set(item, 'data.request', requestInfo);\n }\n\n callback(null, item);\n };\n}\n\nfunction addClientInfo(window) {\n return function (item, options, callback) {\n if (!window) {\n return callback(null, item);\n }\n var nav = window.navigator || {};\n var scr = window.screen || {};\n _.set(item, 'data.client', {\n runtime_ms: item.timestamp - window._rollbarStartTime,\n timestamp: Math.round(item.timestamp / 1000),\n javascript: {\n browser: nav.userAgent,\n language: nav.language,\n cookie_enabled: nav.cookieEnabled,\n screen: {\n width: scr.width,\n height: scr.height,\n },\n },\n });\n callback(null, item);\n };\n}\n\nfunction addPluginInfo(window) {\n return function (item, options, callback) {\n if (!window || !window.navigator) {\n return callback(null, item);\n }\n var plugins = [];\n var navPlugins = window.navigator.plugins || [];\n var cur;\n for (var i = 0, l = navPlugins.length; i < l; ++i) {\n cur = navPlugins[i];\n plugins.push({ name: cur.name, description: cur.description });\n }\n _.set(item, 'data.client.javascript.plugins', plugins);\n callback(null, item);\n };\n}\n\nfunction addBody(item, options, callback) {\n if (item.stackInfo) {\n if (item.stackInfo.traceChain) {\n addBodyTraceChain(item, options, callback);\n } else {\n addBodyTrace(item, options, callback);\n }\n } else {\n addBodyMessage(item, options, callback);\n }\n}\n\nfunction addBodyMessage(item, options, callback) {\n var message = item.message;\n var custom = item.custom;\n\n if (!message) {\n message = 'Item sent with null or missing arguments.';\n }\n var result = {\n body: message,\n };\n\n if (custom) {\n result.extra = _.merge(custom);\n }\n\n _.set(item, 'data.body', { message: result });\n callback(null, item);\n}\n\nfunction stackFromItem(item) {\n // Transform a TraceKit stackInfo object into a Rollbar trace\n var stack = item.stackInfo.stack;\n if (\n stack &&\n stack.length === 0 &&\n item._unhandledStackInfo &&\n item._unhandledStackInfo.stack\n ) {\n stack = item._unhandledStackInfo.stack;\n }\n return stack;\n}\n\nfunction addBodyTraceChain(item, options, callback) {\n var traceChain = item.stackInfo.traceChain;\n var traces = [];\n\n var traceChainLength = traceChain.length;\n for (var i = 0; i < traceChainLength; i++) {\n var trace = buildTrace(item, traceChain[i], options);\n traces.push(trace);\n }\n\n _.set(item, 'data.body', { trace_chain: traces });\n callback(null, item);\n}\n\nfunction addBodyTrace(item, options, callback) {\n var stack = stackFromItem(item);\n\n if (stack) {\n var trace = buildTrace(item, item.stackInfo, options);\n _.set(item, 'data.body', { trace: trace });\n callback(null, item);\n } else {\n var stackInfo = item.stackInfo;\n var guess = errorParser.guessErrorClass(stackInfo.message);\n var className = errorClass(stackInfo, guess[0], options);\n var message = guess[1];\n\n item.message = className + ': ' + message;\n addBodyMessage(item, options, callback);\n }\n}\n\nfunction buildTrace(item, stackInfo, options) {\n var description = item && item.data.description;\n var custom = item && item.custom;\n var stack = stackFromItem(item);\n\n var guess = errorParser.guessErrorClass(stackInfo.message);\n var className = errorClass(stackInfo, guess[0], options);\n var message = guess[1];\n var trace = {\n exception: {\n class: className,\n message: message,\n },\n };\n\n if (description) {\n trace.exception.description = description;\n }\n\n if (stack) {\n if (stack.length === 0) {\n trace.exception.stack = stackInfo.rawStack;\n trace.exception.raw = String(stackInfo.rawException);\n }\n var stackFrame;\n var frame;\n var code;\n var pre;\n var post;\n var contextLength;\n var i, mid;\n\n trace.frames = [];\n for (i = 0; i < stack.length; ++i) {\n stackFrame = stack[i];\n frame = {\n filename: stackFrame.url ? _.sanitizeUrl(stackFrame.url) : '(unknown)',\n lineno: stackFrame.line || null,\n method:\n !stackFrame.func || stackFrame.func === '?'\n ? '[anonymous]'\n : stackFrame.func,\n colno: stackFrame.column,\n };\n if (options.sendFrameUrl) {\n frame.url = stackFrame.url;\n }\n if (\n frame.method &&\n frame.method.endsWith &&\n frame.method.endsWith('_rollbar_wrapped')\n ) {\n continue;\n }\n\n code = pre = post = null;\n contextLength = stackFrame.context ? stackFrame.context.length : 0;\n if (contextLength) {\n mid = Math.floor(contextLength / 2);\n pre = stackFrame.context.slice(0, mid);\n code = stackFrame.context[mid];\n post = stackFrame.context.slice(mid);\n }\n\n if (code) {\n frame.code = code;\n }\n\n if (pre || post) {\n frame.context = {};\n if (pre && pre.length) {\n frame.context.pre = pre;\n }\n if (post && post.length) {\n frame.context.post = post;\n }\n }\n\n if (stackFrame.args) {\n frame.args = stackFrame.args;\n }\n\n trace.frames.push(frame);\n }\n\n // NOTE(cory): reverse the frames since rollbar.com expects the most recent call last\n trace.frames.reverse();\n\n if (custom) {\n trace.extra = _.merge(custom);\n }\n }\n\n return trace;\n}\n\nfunction errorClass(stackInfo, guess, options) {\n if (stackInfo.name) {\n return stackInfo.name;\n } else if (options.guessErrorClass) {\n return guess;\n } else {\n return '(unknown)';\n }\n}\n\nfunction addScrubber(scrubFn) {\n return function (item, options, callback) {\n if (scrubFn) {\n var scrubFields = options.scrubFields || [];\n var scrubPaths = options.scrubPaths || [];\n item.data = scrubFn(item.data, scrubFields, scrubPaths);\n }\n callback(null, item);\n };\n}\n\nexport {\n handleDomException,\n handleItemWithError,\n ensureItemHasSomethingToSay,\n addBaseInfo,\n addRequestInfo,\n addClientInfo,\n addPluginInfo,\n addBody,\n addScrubber,\n};\n","import * as _ from './utility.js';\n\nfunction itemToPayload(item, options, callback) {\n if (item._isUncaught) {\n item.data._isUncaught = true;\n }\n if (item._originalArgs) {\n item.data._originalArgs = item._originalArgs;\n }\n callback(null, item);\n}\n\nfunction addPayloadOptions(item, options, callback) {\n var payloadOptions = options.payload || {};\n if (payloadOptions.body) {\n delete payloadOptions.body;\n }\n\n item.data = _.merge(item.data, payloadOptions);\n callback(null, item);\n}\n\nfunction addTelemetryData(item, options, callback) {\n if (item.telemetryEvents) {\n _.set(item, 'data.body.telemetry', item.telemetryEvents);\n }\n callback(null, item);\n}\n\nfunction addMessageWithError(item, options, callback) {\n if (!item.message) {\n callback(null, item);\n return;\n }\n var tracePath = 'data.body.trace_chain.0';\n var trace = _.get(item, tracePath);\n if (!trace) {\n tracePath = 'data.body.trace';\n trace = _.get(item, tracePath);\n }\n if (trace) {\n if (!(trace.exception && trace.exception.description)) {\n _.set(item, tracePath + '.exception.description', item.message);\n callback(null, item);\n return;\n }\n var extra = _.get(item, tracePath + '.extra') || {};\n var newExtra = _.merge(extra, { message: item.message });\n _.set(item, tracePath + '.extra', newExtra);\n }\n callback(null, item);\n}\n\nfunction userTransform(logger) {\n return function (item, options, callback) {\n var newItem = _.merge(item);\n var response = null;\n try {\n if (_.isFunction(options.transform)) {\n response = options.transform(newItem.data, item);\n }\n } catch (e) {\n options.transform = null;\n logger.error(\n 'Error while calling custom transform() function. Removing custom transform().',\n e,\n );\n callback(null, item);\n return;\n }\n if (_.isPromise(response)) {\n response.then(\n function (promisedItem) {\n if (promisedItem) {\n newItem.data = promisedItem;\n }\n callback(null, newItem);\n },\n function (error) {\n callback(error, item);\n },\n );\n } else {\n callback(null, newItem);\n }\n };\n}\n\nfunction addConfigToPayload(item, options, callback) {\n if (!options.sendConfig) {\n return callback(null, item);\n }\n var configKey = '_rollbarConfig';\n var custom = _.get(item, 'data.custom') || {};\n custom[configKey] = options;\n item.data.custom = custom;\n callback(null, item);\n}\n\nfunction addFunctionOption(options, name) {\n if (_.isFunction(options[name])) {\n options[name] = options[name].toString();\n }\n}\n\nfunction addConfiguredOptions(item, options, callback) {\n var configuredOptions = options._configuredOptions;\n\n // These must be stringified or they'll get dropped during serialization.\n addFunctionOption(configuredOptions, 'transform');\n addFunctionOption(configuredOptions, 'checkIgnore');\n addFunctionOption(configuredOptions, 'onSendCallback');\n\n delete configuredOptions.accessToken;\n item.data.notifier.configured_options = configuredOptions;\n callback(null, item);\n}\n\nfunction addDiagnosticKeys(item, options, callback) {\n var diagnostic = _.merge(\n item.notifier.client.notifier.diagnostic,\n item.diagnostic,\n );\n\n if (_.get(item, 'err._isAnonymous')) {\n diagnostic.is_anonymous = true;\n }\n\n if (item._isUncaught) {\n diagnostic.is_uncaught = item._isUncaught;\n }\n\n if (item.err) {\n try {\n diagnostic.raw_error = {\n message: item.err.message,\n name: item.err.name,\n constructor_name: item.err.constructor && item.err.constructor.name,\n filename: item.err.fileName,\n line: item.err.lineNumber,\n column: item.err.columnNumber,\n stack: item.err.stack,\n };\n } catch (e) {\n diagnostic.raw_error = { failed: String(e) };\n }\n }\n\n item.data.notifier.diagnostic = _.merge(\n item.data.notifier.diagnostic,\n diagnostic,\n );\n callback(null, item);\n}\n\nexport {\n itemToPayload,\n addPayloadOptions,\n addTelemetryData,\n addMessageWithError,\n userTransform,\n addConfigToPayload,\n addConfiguredOptions,\n addDiagnosticKeys,\n};\n","import * as _ from '../utility.js';\n\nfunction checkIgnore(item, settings) {\n if (_.get(settings, 'plugins.jquery.ignoreAjaxErrors')) {\n return !_.get(item, 'body.message.extra.isAjax');\n }\n return true;\n}\n\nexport { checkIgnore };\n","import * as _ from './utility.js';\n\nfunction checkLevel(item, settings) {\n var level = item.level;\n var levelVal = _.LEVELS[level] || 0;\n var reportLevel = settings.reportLevel;\n var reportLevelVal = _.LEVELS[reportLevel] || 0;\n\n if (levelVal < reportLevelVal) {\n return false;\n }\n return true;\n}\n\nfunction userCheckIgnore(logger) {\n return function (item, settings) {\n var isUncaught = !!item._isUncaught;\n delete item._isUncaught;\n var args = item._originalArgs;\n delete item._originalArgs;\n try {\n if (_.isFunction(settings.onSendCallback)) {\n settings.onSendCallback(isUncaught, args, item);\n }\n } catch (e) {\n settings.onSendCallback = null;\n logger.error('Error while calling onSendCallback, removing', e);\n }\n try {\n if (\n _.isFunction(settings.checkIgnore) &&\n settings.checkIgnore(isUncaught, args, item)\n ) {\n return false;\n }\n } catch (e) {\n settings.checkIgnore = null;\n logger.error('Error while calling custom checkIgnore(), removing', e);\n }\n return true;\n };\n}\n\nfunction urlIsNotBlockListed(logger) {\n return function (item, settings) {\n return !urlIsOnAList(item, settings, 'blocklist', logger);\n };\n}\n\nfunction urlIsSafeListed(logger) {\n return function (item, settings) {\n return urlIsOnAList(item, settings, 'safelist', logger);\n };\n}\n\nfunction matchFrames(trace, list, block) {\n if (!trace) {\n return !block;\n }\n\n var frames = trace.frames;\n\n if (!frames || frames.length === 0) {\n return !block;\n }\n\n var frame, filename, url, urlRegex;\n var listLength = list.length;\n var frameLength = frames.length;\n for (var i = 0; i < frameLength; i++) {\n frame = frames[i];\n filename = frame.filename;\n\n if (!_.isType(filename, 'string')) {\n return !block;\n }\n\n for (var j = 0; j < listLength; j++) {\n url = list[j];\n urlRegex = new RegExp(url);\n\n if (urlRegex.test(filename)) {\n return true;\n }\n }\n }\n return false;\n}\n\nfunction urlIsOnAList(item, settings, safeOrBlock, logger) {\n // safelist is the default\n var block = false;\n if (safeOrBlock === 'blocklist') {\n block = true;\n }\n\n var list, traces;\n try {\n list = block ? settings.hostBlockList : settings.hostSafeList;\n traces = _.get(item, 'body.trace_chain') || [_.get(item, 'body.trace')];\n\n // These two checks are important to come first as they are defaults\n // in case the list is missing or the trace is missing or not well-formed\n if (!list || list.length === 0) {\n return !block;\n }\n if (traces.length === 0 || !traces[0]) {\n return !block;\n }\n\n var tracesLength = traces.length;\n for (var i = 0; i < tracesLength; i++) {\n if (matchFrames(traces[i], list, block)) {\n return true;\n }\n }\n } catch (\n e\n /* istanbul ignore next */\n ) {\n if (block) {\n settings.hostBlockList = null;\n } else {\n settings.hostSafeList = null;\n }\n var listName = block ? 'hostBlockList' : 'hostSafeList';\n logger.error(\n \"Error while reading your configuration's \" +\n listName +\n ' option. Removing custom ' +\n listName +\n '.',\n e,\n );\n return !block;\n }\n return false;\n}\n\nfunction messageIsIgnored(logger) {\n return function (item, settings) {\n var i, j, ignoredMessages, len, messageIsIgnored, rIgnoredMessage, messages;\n\n try {\n messageIsIgnored = false;\n ignoredMessages = settings.ignoredMessages;\n\n if (!ignoredMessages || ignoredMessages.length === 0) {\n return true;\n }\n\n messages = messagesFromItem(item);\n\n if (messages.length === 0) {\n return true;\n }\n\n len = ignoredMessages.length;\n for (i = 0; i < len; i++) {\n rIgnoredMessage = new RegExp(ignoredMessages[i], 'gi');\n\n for (j = 0; j < messages.length; j++) {\n messageIsIgnored = rIgnoredMessage.test(messages[j]);\n\n if (messageIsIgnored) {\n return false;\n }\n }\n }\n } catch (\n e\n /* istanbul ignore next */\n ) {\n settings.ignoredMessages = null;\n logger.error(\n \"Error while reading your configuration's ignoredMessages option. Removing custom ignoredMessages.\",\n );\n }\n\n return true;\n };\n}\n\nfunction messagesFromItem(item) {\n var body = item.body;\n var messages = [];\n\n // The payload schema only allows one of trace_chain, message, or trace.\n // However, existing test cases are based on having both trace and message present.\n // So here we preserve the ability to collect strings from any combination of these keys.\n if (body.trace_chain) {\n var traceChain = body.trace_chain;\n for (var i = 0; i < traceChain.length; i++) {\n var trace = traceChain[i];\n messages.push(_.get(trace, 'exception.message'));\n }\n }\n if (body.trace) {\n messages.push(_.get(body, 'trace.exception.message'));\n }\n if (body.message) {\n messages.push(_.get(body, 'message.body'));\n }\n return messages;\n}\n\nexport {\n checkLevel,\n userCheckIgnore,\n urlIsNotBlockListed,\n urlIsSafeListed,\n messageIsIgnored,\n};\n","/**\n * Default session replay recording options\n * See https://github.com/rrweb-io/rrweb/blob/master/guide.md#options for details\n */\nexport default {\n enabled: false, // Whether recording is enabled\n autoStart: true, // Start recording automatically when Rollbar initializes\n maxSeconds: 300, // Maximum recording duration in seconds\n postDuration: 5, // Duration of events to include after a post is triggered, in seconds\n\n // defaults used by triggers that don't specify them\n triggerDefaults: {\n samplingRatio: 1.0,\n preDuration: 300,\n postDuration: 5,\n },\n triggers: [\n {\n type: 'occurrence',\n level: ['error', 'critical'],\n },\n ],\n\n debug: {\n logErrors: true, // Whether to log errors emitted by rrweb.\n logEmits: false, // Whether to log emitted events\n },\n\n // Recording options\n inlineStylesheet: true, // Whether to inline stylesheets to improve replay accuracy\n inlineImages: false, // Whether to record the image content\n collectFonts: true, // Whether to collect fonts in the website\n\n // Privacy options\n // Fine-grained control over which input types to mask\n // By default only password inputs are masked if maskInputs is true\n maskInputOptions: {\n password: true,\n email: false,\n tel: false,\n text: false,\n color: false,\n date: false,\n 'datetime-local': false,\n month: false,\n number: false,\n range: false,\n search: false,\n time: false,\n url: false,\n week: false,\n },\n\n // Override default class names.\n blockClass: 'rb-block',\n maskTextClass: 'rb-mask',\n ignoreClass: 'rb-ignore',\n\n // Remove unnecessary parts of the DOM\n // By default all removable elements are removed\n slimDOMOptions: {\n script: true, // Remove script elements\n comment: true, // Remove comments\n headFavicon: true, // Remove favicons in the head\n headWhitespace: true, // Remove whitespace in head\n headMetaDescKeywords: true, // Remove meta description and keywords\n headMetaSocial: true, // Remove social media meta tags\n headMetaRobots: true, // Remove robots meta directives\n headMetaHttpEquiv: true, // Remove http-equiv meta directives\n headMetaAuthorship: true, // Remove authorship meta directives\n headMetaVerification: true, // Remove verification meta directives\n },\n\n // Custom callbacks for advanced use cases\n // These are undefined by default and can be set programmatically\n // maskInputFn: undefined, // Custom function to mask input values\n // maskTextFn: undefined, // Custom function to mask text content\n // errorHandler: undefined, // Custom error handler for recording errors\n\n // Plugin system\n // plugins: [] // List of plugins to use (must be set programmatically)\n};\n","/**\n * Default tracing options\n */\nexport default {\n enabled: false,\n endpoint: 'api.rollbar.com/api/1/session/',\n};\n","/**\n * Default options shared across platforms\n */\nexport const version = '3.0.0-beta.4';\nexport const endpoint = 'api.rollbar.com/api/1/item/';\nexport const logLevel = 'debug';\nexport const reportLevel = 'debug';\nexport const uncaughtErrorLevel = 'error';\nexport const maxItems = 0;\nexport const itemsPerMin = 60;\n\nexport const commonScrubFields = [\n 'pw',\n 'pass',\n 'passwd',\n 'password',\n 'secret',\n 'confirm_password',\n 'confirmPassword',\n 'password_confirmation',\n 'passwordConfirmation',\n 'access_token',\n 'accessToken',\n 'X-Rollbar-Access-Token',\n 'secret_key',\n 'secretKey',\n 'secretToken',\n];\n\nexport const apiScrubFields = [\n 'api_key',\n 'authenticity_token',\n 'oauth_token',\n 'token',\n 'user_session_secret',\n];\n\nexport const requestScrubFields = [\n 'request.session.csrf',\n 'request.session._csrf',\n 'request.params._csrf',\n 'request.cookie',\n 'request.cookies',\n];\n\nexport const commonScrubHeaders = [\n 'authorization',\n 'www-authorization',\n 'http_authorization',\n 'omniauth.auth',\n 'cookie',\n 'oauth-access-token',\n 'x-access-token',\n 'x_csrf_token',\n 'http_x_csrf_token',\n 'x-csrf-token',\n];\n\n// For backward compatibility with default export\nexport default {\n version,\n endpoint,\n logLevel,\n reportLevel,\n uncaughtErrorLevel,\n maxItems,\n itemsPerMin,\n};\n","/**\n * Default browser options\n */\nimport { commonScrubFields } from '../defaults.js';\n\nexport const scrubFields = [\n ...commonScrubFields,\n 'cc-number',\n 'card number',\n 'cardnumber',\n 'cardnum',\n 'ccnum',\n 'ccnumber',\n 'cc num',\n 'creditcardnumber',\n 'credit card number',\n 'newcreditcardnumber',\n 'new credit card',\n 'creditcardno',\n 'credit card no',\n 'card#',\n 'card #',\n 'cc-csc',\n 'cvc',\n 'cvc2',\n 'cvv2',\n 'ccv2',\n 'security code',\n 'card verification',\n 'name on credit card',\n 'name on card',\n 'nameoncard',\n 'cardholder',\n 'card holder',\n 'name des karteninhabers',\n 'ccname',\n 'card type',\n 'cardtype',\n 'cc type',\n 'cctype',\n 'payment type',\n 'expiration date',\n 'expirationdate',\n 'expdate',\n 'cc-exp',\n 'ccmonth',\n 'ccyear',\n];\n\n// For compatibility with existing code that expects default export with scrubFields property\nexport default { scrubFields };\n","import Client from '../rollbar.js';\nimport * as _ from '../utility.js';\nimport API from '../api.js';\nimport logger from '../logger.js';\nimport * as globals from './globalSetup.js';\n\nimport Transport from './transport.js';\nimport * as urllib from './url.js';\n\nimport * as transforms from './transforms.js';\nimport * as sharedTransforms from '../transforms.js';\nimport * as predicates from './predicates.js';\nimport * as sharedPredicates from '../predicates.js';\nimport errorParser from '../errorParser.js';\nimport replayDefaults from './replay/defaults.js';\nimport tracingDefaults from '../tracing/defaults.js';\n\n// Used to support global `Rollbar` instance.\nlet _instance = null;\n\nclass Rollbar {\n constructor(options, client) {\n logger.init({ logLevel: options.logLevel || 'error' });\n this.options = _.handleOptions(defaultOptions, options, null, logger);\n this.options._configuredOptions = options;\n this.components = this.components || {};\n const Telemeter = this.components.telemeter;\n const Instrumenter = this.components.instrumenter;\n this.wrapGlobals = this.components.wrapGlobals;\n this.scrub = this.components.scrub;\n const truncation = this.components.truncation;\n const Tracing = this.components.tracing;\n const ReplayManager = this.components.replayManager;\n\n const transport = new Transport(truncation);\n const api = new API(this.options, transport, urllib, truncation);\n if (Tracing) {\n this.tracing = new Tracing(_gWindow(), api, this.options);\n this.tracing.initSession();\n }\n if (Telemeter) {\n this.telemeter = new Telemeter(this.options, this.tracing);\n }\n\n if (ReplayManager && _.isBrowser()) {\n const replayOptions = this.options.replay;\n this.replayManager = new ReplayManager({\n tracing: this.tracing,\n telemeter: this.telemeter,\n options: replayOptions,\n });\n\n if (replayOptions.enabled && replayOptions.autoStart) {\n this.replayManager.recorder.start();\n }\n }\n\n this.client =\n client ||\n new Client(\n this.options,\n api,\n logger,\n this.telemeter,\n this.tracing,\n this.replayManager,\n 'browser',\n );\n var gWindow = _gWindow();\n var gDocument = typeof document != 'undefined' && document;\n this.isChrome = gWindow.chrome && gWindow.chrome.runtime; // check .runtime to avoid Edge browsers\n this.anonymousErrorsPending = 0;\n addTransformsToNotifier(this.client.notifier, this, gWindow);\n addPredicatesToQueue(this.client.queue);\n this.setupUnhandledCapture();\n if (Instrumenter) {\n this.instrumenter = new Instrumenter(\n this.options,\n this.client.telemeter,\n this,\n gWindow,\n gDocument,\n );\n this.instrumenter.instrument();\n }\n\n this.setSessionAttributesFromOptions(options);\n\n // Used with rollbar-react for rollbar-react-native compatibility.\n this.rollbar = this;\n }\n\n static init(options, client) {\n if (_instance) {\n return _instance.global(options).configure(options);\n }\n _instance = new Rollbar(options, client);\n return _instance;\n }\n\n static setComponents(components) {\n Rollbar.prototype.components = components;\n }\n\n global(options) {\n this.client.global(options);\n return this;\n }\n\n configure(options, payloadData) {\n if (options.logLevel) {\n logger.init({ logLevel: options.logLevel });\n }\n this.setSessionAttributesFromOptions(options);\n var oldOptions = this.options;\n var payload = {};\n if (payloadData) {\n payload = { payload: payloadData };\n }\n\n this.options = _.handleOptions(oldOptions, options, payload, logger);\n this.options._configuredOptions = _.handleOptions(\n oldOptions._configuredOptions,\n options,\n payload,\n );\n\n this.tracing?.configure(this.options);\n this.replayManager?.recorder?.configure(this.options);\n this.client.configure(this.options, payloadData);\n this.instrumenter?.configure(this.options);\n this.setupUnhandledCapture();\n return this;\n }\n\n lastError() {\n return this.client.lastError;\n }\n\n log() {\n var item = this._createItem(arguments);\n var uuid = item.uuid;\n this.client.log(item);\n return { uuid: uuid };\n }\n\n debug() {\n var item = this._createItem(arguments);\n var uuid = item.uuid;\n this.client.debug(item);\n return { uuid: uuid };\n }\n\n info() {\n var item = this._createItem(arguments);\n var uuid = item.uuid;\n this.client.info(item);\n return { uuid: uuid };\n }\n\n warn() {\n var item = this._createItem(arguments);\n var uuid = item.uuid;\n this.client.warn(item);\n return { uuid: uuid };\n }\n\n warning() {\n var item = this._createItem(arguments);\n var uuid = item.uuid;\n this.client.warning(item);\n return { uuid: uuid };\n }\n\n error() {\n var item = this._createItem(arguments);\n var uuid = item.uuid;\n this.client.error(item);\n return { uuid: uuid };\n }\n\n critical() {\n var item = this._createItem(arguments);\n var uuid = item.uuid;\n this.client.critical(item);\n return { uuid: uuid };\n }\n\n buildJsonPayload(item) {\n return this.client.buildJsonPayload(item);\n }\n\n sendJsonPayload(jsonPayload) {\n return this.client.sendJsonPayload(jsonPayload);\n }\n\n setupUnhandledCapture() {\n var gWindow = _gWindow();\n\n if (!this.unhandledExceptionsInitialized) {\n if (\n this.options.captureUncaught ||\n this.options.handleUncaughtExceptions\n ) {\n globals.captureUncaughtExceptions(gWindow, this);\n if (this.wrapGlobals && this.options.wrapGlobalEventHandlers) {\n this.wrapGlobals(gWindow, this);\n }\n this.unhandledExceptionsInitialized = true;\n }\n }\n if (!this.unhandledRejectionsInitialized) {\n if (\n this.options.captureUnhandledRejections ||\n this.options.handleUnhandledRejections\n ) {\n globals.captureUnhandledRejections(gWindow, this);\n this.unhandledRejectionsInitialized = true;\n }\n }\n }\n\n handleUncaughtException(message, url, lineno, colno, error, context) {\n if (\n !this.options.captureUncaught &&\n !this.options.handleUncaughtExceptions\n ) {\n return;\n }\n\n // Chrome will always send 5+ arguments and error will be valid or null, not undefined.\n // If error is undefined, we have a different caller.\n // Chrome also sends errors from web workers with null error, but does not invoke\n // prepareStackTrace() for these. Test for empty url to skip them.\n if (\n this.options.inspectAnonymousErrors &&\n this.isChrome &&\n error === null &&\n url === ''\n ) {\n return 'anonymous';\n }\n\n var item;\n var stackInfo = _.makeUnhandledStackInfo(\n message,\n url,\n lineno,\n colno,\n error,\n 'onerror',\n 'uncaught exception',\n errorParser,\n );\n if (_.isError(error)) {\n item = this._createItem([message, error, context]);\n item._unhandledStackInfo = stackInfo;\n } else if (_.isError(url)) {\n item = this._createItem([message, url, context]);\n item._unhandledStackInfo = stackInfo;\n } else {\n item = this._createItem([message, context]);\n item.stackInfo = stackInfo;\n }\n item.level = this.options.uncaughtErrorLevel;\n item._isUncaught = true;\n this.client.log(item);\n }\n\n /**\n * Chrome only. Other browsers will ignore.\n *\n * Use Error.prepareStackTrace to extract information about errors that\n * do not have a valid error object in onerror().\n *\n * In tested version of Chrome, onerror is called first but has no way\n * to communicate with prepareStackTrace. Use a counter to let this\n * handler know which errors to send to Rollbar.\n *\n * In config options, set inspectAnonymousErrors to enable.\n */\n handleAnonymousErrors() {\n if (!this.options.inspectAnonymousErrors || !this.isChrome) {\n return;\n }\n\n var r = this;\n function prepareStackTrace(error, _stack) {\n if (r.options.inspectAnonymousErrors) {\n if (r.anonymousErrorsPending) {\n // This is the only known way to detect that onerror saw an anonymous error.\n // It depends on onerror reliably being called before Error.prepareStackTrace,\n // which so far holds true on tested versions of Chrome. If versions of Chrome\n // are tested that behave differently, this logic will need to be updated\n // accordingly.\n r.anonymousErrorsPending -= 1;\n\n if (!error) {\n // Not likely to get here, but calling handleUncaughtException from here\n // without an error object would throw off the anonymousErrorsPending counter,\n // so return now.\n return;\n }\n\n // Allow this to be tracked later.\n error._isAnonymous = true;\n\n // url, lineno, colno shouldn't be needed for these errors.\n // If that changes, update this accordingly, using the unused\n // _stack param as needed (rather than parse error.toString()).\n r.handleUncaughtException(error.message, null, null, null, error);\n }\n }\n\n // Workaround to ensure stack is preserved for normal errors.\n return error.stack;\n }\n\n // https://v8.dev/docs/stack-trace-api\n try {\n Error.prepareStackTrace = prepareStackTrace;\n } catch (e) {\n this.options.inspectAnonymousErrors = false;\n this.error('anonymous error handler failed', e);\n }\n }\n\n handleUnhandledRejection(reason, promise) {\n if (\n !this.options.captureUnhandledRejections &&\n !this.options.handleUnhandledRejections\n ) {\n return;\n }\n\n var message = 'unhandled rejection was null or undefined!';\n if (reason) {\n if (reason.message) {\n message = reason.message;\n } else {\n var reasonResult = _.stringify(reason);\n if (reasonResult.value) {\n message = reasonResult.value;\n }\n }\n }\n var context =\n (reason && reason._rollbarContext) ||\n (promise && promise._rollbarContext);\n\n var item;\n if (_.isError(reason)) {\n item = this._createItem([message, reason, context]);\n } else {\n item = this._createItem([message, reason, context]);\n item.stackInfo = _.makeUnhandledStackInfo(\n message,\n '',\n 0,\n 0,\n null,\n 'unhandledrejection',\n '',\n errorParser,\n );\n }\n item.level = this.options.uncaughtErrorLevel;\n item._isUncaught = true;\n item._originalArgs = item._originalArgs || [];\n item._originalArgs.push(promise);\n this.client.log(item);\n }\n\n wrap(f, context, _before) {\n try {\n var ctxFn;\n if (_.isFunction(context)) {\n ctxFn = context;\n } else {\n ctxFn = function () {\n return context || {};\n };\n }\n\n if (!_.isFunction(f)) {\n return f;\n }\n\n if (f._isWrap) {\n return f;\n }\n\n if (!f._rollbar_wrapped) {\n f._rollbar_wrapped = function () {\n if (_before && _.isFunction(_before)) {\n _before.apply(this, arguments);\n }\n try {\n return f.apply(this, arguments);\n } catch (exc) {\n var e = exc;\n if (e && window._rollbarWrappedError !== e) {\n if (_.isType(e, 'string')) {\n e = new String(e);\n }\n e._rollbarContext = ctxFn() || {};\n e._rollbarContext._wrappedSource = f.toString();\n\n window._rollbarWrappedError = e;\n }\n throw e;\n }\n };\n\n f._rollbar_wrapped._isWrap = true;\n\n if (f.hasOwnProperty) {\n for (var prop in f) {\n if (f.hasOwnProperty(prop) && prop !== '_rollbar_wrapped') {\n f._rollbar_wrapped[prop] = f[prop];\n }\n }\n }\n }\n\n return f._rollbar_wrapped;\n } catch (e) {\n // Return the original function if the wrap fails.\n return f;\n }\n }\n\n captureEvent() {\n var event = _.createTelemetryEvent(arguments);\n return this.client.captureEvent(event.type, event.metadata, event.level);\n }\n\n setSessionUser(user) {\n if (!this.tracing?.session) return;\n\n this.tracing.session.setUser(user);\n }\n\n setSessionAttributes(attrs) {\n if (!this.tracing?.session) return;\n\n attrs = { ...attrs };\n\n this.tracing.session.setAttributes(attrs);\n }\n\n setSessionAttributesFromOptions(options) {\n const person = options.person || options.payload?.person;\n if (person) {\n this.setSessionUser(person);\n }\n const code_version =\n options.client?.javascript?.code_version ||\n options.codeVersion ||\n options.code_version ||\n options.payload?.client?.javascript?.code_version ||\n options.payload?.code_version ||\n options.payload?.codeVersion;\n this.setSessionAttributes({\n 'rollbar.codeVersion': code_version,\n 'rollbar.notifier.name': 'rollbar-browser-js',\n 'rollbar.notifier.version': options.version,\n });\n }\n\n // The following two methods are used internally and are not meant for public use\n captureDomContentLoaded(e, ts) {\n if (!ts) {\n ts = new Date();\n }\n return this.client.captureDomContentLoaded(ts);\n }\n\n captureLoad(e, ts) {\n if (!ts) {\n ts = new Date();\n }\n return this.client.captureLoad(ts);\n }\n\n loadFull() {\n logger.info(\n 'Unexpected Rollbar.loadFull() called on a Notifier instance. This can happen when Rollbar is loaded multiple times.',\n );\n }\n\n _createItem(args) {\n return _.createItem(args, logger, this);\n }\n\n // Static version of instance methods support the legacy pattern of a\n // global `Rollbar` instance, where after calling `Rollbar.init()`,\n // `Rollbar` can be used as if it were an instance.\n // If support for this pattern is dropped, these static methods can be removed.\n static callInstance(method, args) {\n if (!_instance) {\n const message = 'Rollbar is not initialized';\n logger.error(message);\n const maybeCallback = _getFirstFunction(args);\n if (maybeCallback) {\n maybeCallback(new Error(message));\n }\n return;\n }\n return _instance[method].apply(_instance, args);\n }\n\n static global = (...args) => Rollbar.callInstance('global', args);\n static configure = (...args) => Rollbar.callInstance('configure', args);\n static lastError = (...args) => Rollbar.callInstance('lastError', args);\n static log = (...args) => Rollbar.callInstance('log', args);\n static debug = (...args) => Rollbar.callInstance('debug', args);\n static info = (...args) => Rollbar.callInstance('info', args);\n static warn = (...args) => Rollbar.callInstance('warn', args);\n static warning = (...args) => Rollbar.callInstance('warning', args);\n static error = (...args) => Rollbar.callInstance('error', args);\n static critical = (...args) => Rollbar.callInstance('critical', args);\n static buildJsonPayload = (...args) =>\n Rollbar.callInstance('buildJsonPayload', args);\n static sendJsonPayload = (...args) =>\n Rollbar.callInstance('sendJsonPayload', args);\n static wrap = (...args) => Rollbar.callInstance('wrap', args);\n static captureEvent = (...args) => Rollbar.callInstance('captureEvent', args);\n}\n\n/* Internal */\n\nfunction addTransformsToNotifier(notifier, rollbar, gWindow) {\n notifier\n .addTransform(transforms.handleDomException)\n .addTransform(transforms.handleItemWithError)\n .addTransform(transforms.ensureItemHasSomethingToSay)\n .addTransform(transforms.addBaseInfo)\n .addTransform(transforms.addRequestInfo(gWindow))\n .addTransform(transforms.addClientInfo(gWindow))\n .addTransform(transforms.addPluginInfo(gWindow))\n .addTransform(transforms.addBody)\n .addTransform(sharedTransforms.addMessageWithError)\n .addTransform(sharedTransforms.addTelemetryData)\n .addTransform(sharedTransforms.addConfigToPayload)\n .addTransform(transforms.addScrubber(rollbar.scrub))\n .addTransform(sharedTransforms.addPayloadOptions)\n .addTransform(sharedTransforms.userTransform(logger))\n .addTransform(sharedTransforms.addConfiguredOptions)\n .addTransform(sharedTransforms.addDiagnosticKeys)\n .addTransform(sharedTransforms.itemToPayload);\n}\n\nfunction addPredicatesToQueue(queue) {\n queue\n .addPredicate(sharedPredicates.checkLevel)\n .addPredicate(predicates.checkIgnore)\n .addPredicate(sharedPredicates.userCheckIgnore(logger))\n .addPredicate(sharedPredicates.urlIsNotBlockListed(logger))\n .addPredicate(sharedPredicates.urlIsSafeListed(logger))\n .addPredicate(sharedPredicates.messageIsIgnored(logger));\n}\n\nfunction _getFirstFunction(args) {\n for (var i = 0, len = args.length; i < len; ++i) {\n if (_.isFunction(args[i])) {\n return args[i];\n }\n }\n return undefined;\n}\n\nfunction _gWindow() {\n return (\n (typeof window != 'undefined' && window) ||\n (typeof self != 'undefined' && self)\n );\n}\n\nimport {\n version,\n logLevel,\n reportLevel,\n uncaughtErrorLevel,\n endpoint,\n} from '../defaults.js';\nimport browserDefaults from './defaults.js';\n\nconst defaultOptions = {\n environment: 'unknown',\n version: version,\n scrubFields: browserDefaults.scrubFields,\n logLevel: logLevel,\n reportLevel: reportLevel,\n uncaughtErrorLevel: uncaughtErrorLevel,\n endpoint: endpoint,\n verbose: false,\n enabled: true,\n transmit: true,\n sendConfig: false,\n includeItemsInTelemetry: true,\n captureIp: true,\n inspectAnonymousErrors: true,\n ignoreDuplicateErrors: true,\n wrapGlobalEventHandlers: false,\n replay: replayDefaults,\n tracing: tracingDefaults,\n};\n\nexport default Rollbar;\n","import * as _ from './utility.js';\n\nconst MAX_EVENTS = 100;\n\n// Temporary workaround while solving commonjs -> esm issues in Node 18 - 20.\nfunction fromMillis(millis) {\n return [Math.trunc(millis / 1000), Math.round((millis % 1000) * 1e6)];\n}\n\nclass Telemeter {\n constructor(options, tracing) {\n this.queue = [];\n this.options = _.merge(options);\n var maxTelemetryEvents = this.options.maxTelemetryEvents || MAX_EVENTS;\n this.maxQueueSize = Math.max(0, Math.min(maxTelemetryEvents, MAX_EVENTS));\n this.tracing = tracing;\n this.telemetrySpan = this.tracing?.startSpan('rollbar-telemetry', {});\n }\n\n configure(options) {\n var oldOptions = this.options;\n this.options = _.merge(oldOptions, options);\n var maxTelemetryEvents = this.options.maxTelemetryEvents || MAX_EVENTS;\n var newMaxEvents = Math.max(0, Math.min(maxTelemetryEvents, MAX_EVENTS));\n var deleteCount = 0;\n if (this.queue.length > newMaxEvents) {\n deleteCount = this.queue.length - newMaxEvents;\n }\n this.maxQueueSize = newMaxEvents;\n this.queue.splice(0, deleteCount);\n }\n\n copyEvents() {\n var events = Array.prototype.slice.call(this.queue, 0);\n if (_.isFunction(this.options.filterTelemetry)) {\n try {\n var i = events.length;\n while (i--) {\n if (this.options.filterTelemetry(events[i])) {\n events.splice(i, 1);\n }\n }\n } catch (e) {\n this.options.filterTelemetry = null;\n }\n }\n\n // Filter until supported in legacy telemetry\n events = events.filter((e) => e.type !== 'connectivity');\n\n // Remove internal keys from output\n events = events.map(({ otelAttributes, ...event }) => event);\n\n return events;\n }\n\n exportTelemetrySpan(attributes = {}) {\n if (this.telemetrySpan) {\n this.telemetrySpan.end(attributes);\n this.telemetrySpan = this.tracing.startSpan('rollbar-telemetry', {});\n }\n }\n\n capture(\n type,\n metadata,\n level,\n rollbarUUID,\n timestamp = null,\n otelAttributes = null,\n ) {\n var e = {\n level: getLevel(type, level),\n type: type,\n timestamp_ms: timestamp || _.now(),\n body: metadata,\n source: 'client',\n };\n if (rollbarUUID) {\n e.uuid = rollbarUUID;\n }\n if (otelAttributes) {\n e.otelAttributes = otelAttributes;\n }\n\n try {\n if (\n _.isFunction(this.options.filterTelemetry) &&\n this.options.filterTelemetry(e)\n ) {\n return false;\n }\n } catch (exc) {\n this.options.filterTelemetry = null;\n }\n\n this.push(e);\n return e;\n }\n\n captureEvent(type, metadata, level, rollbarUUID) {\n return this.capture(type, metadata, level, rollbarUUID);\n }\n\n captureError(err, level, rollbarUUID, timestamp) {\n const message = err.message || String(err);\n var metadata = { message };\n if (err.stack) {\n metadata.stack = err.stack;\n }\n const otelAttributes = {\n message,\n level,\n type: 'error',\n uuid: rollbarUUID,\n };\n\n this.telemetrySpan?.addEvent(\n 'rollbar-occurrence-event',\n otelAttributes,\n fromMillis(timestamp),\n );\n\n return this.capture(\n 'error',\n metadata,\n level,\n rollbarUUID,\n timestamp,\n otelAttributes,\n );\n }\n\n captureLog(message, level, rollbarUUID, timestamp) {\n let otelAttributes = null;\n\n // If the uuid is present, this is a message occurrence.\n if (rollbarUUID) {\n ((otelAttributes = {\n message,\n level,\n type: 'message',\n uuid: rollbarUUID,\n }),\n this.telemetrySpan?.addEvent(\n 'rollbar-occurrence-event',\n otelAttributes,\n fromMillis(timestamp),\n ));\n } else {\n otelAttributes = { message, level };\n this.telemetrySpan?.addEvent(\n 'rollbar-log-event',\n otelAttributes,\n fromMillis(timestamp),\n );\n }\n\n return this.capture(\n 'log',\n { message },\n level,\n rollbarUUID,\n timestamp,\n otelAttributes,\n );\n }\n\n captureNetwork(metadata, subtype, rollbarUUID, requestData) {\n subtype = subtype || 'xhr';\n metadata.subtype = metadata.subtype || subtype;\n if (requestData) {\n metadata.request = requestData;\n }\n const level = this.levelFromStatus(metadata.status_code);\n const endTimeNano = (metadata.end_time_ms || 0) * 1e6;\n const otelAttributes = {\n type: metadata.subtype,\n method: metadata.method,\n url: metadata.url,\n statusCode: metadata.status_code,\n 'request.headers': JSON.stringify(metadata.request_headers || {}),\n 'response.headers': JSON.stringify(metadata.response?.headers || {}),\n 'response.timeUnixNano': endTimeNano.toString(),\n };\n\n this.telemetrySpan?.addEvent(\n 'rollbar-network-event',\n otelAttributes,\n fromMillis(metadata.start_time_ms),\n );\n\n return this.capture(\n 'network',\n metadata,\n level,\n rollbarUUID,\n metadata.start_time_ms,\n otelAttributes,\n );\n }\n\n levelFromStatus(statusCode) {\n if (statusCode >= 200 && statusCode < 400) {\n return 'info';\n }\n if (statusCode === 0 || statusCode >= 400) {\n return 'error';\n }\n return 'info';\n }\n\n captureDom(subtype, element, value, checked, rollbarUUID) {\n var metadata = {\n subtype: subtype,\n element: element,\n };\n if (value !== undefined) {\n metadata.value = value;\n }\n if (checked !== undefined) {\n metadata.checked = checked;\n }\n return this.capture('dom', metadata, 'info', rollbarUUID);\n }\n\n captureInput({ type, isSynthetic, element, value, timestamp }) {\n const name = 'rollbar-input-event';\n const metadata = {\n type: name,\n subtype: type,\n element,\n value,\n };\n const otelAttributes = {\n type,\n isSynthetic,\n element,\n value,\n endTimeUnixNano: fromMillis(timestamp),\n };\n const event = this._getRepeatedEvent(name, otelAttributes);\n if (event) {\n return this._updateRepeatedEvent(event, otelAttributes, timestamp);\n }\n\n this.telemetrySpan?.addEvent(name, otelAttributes, fromMillis(timestamp));\n\n return this.capture(\n 'dom',\n metadata,\n 'info',\n null,\n timestamp,\n otelAttributes,\n );\n }\n\n captureClick({ type, isSynthetic, element, timestamp }) {\n const name = 'rollbar-click-event';\n const metadata = {\n type: name,\n subtype: type,\n element,\n };\n const otelAttributes = {\n type,\n isSynthetic,\n element,\n endTimeUnixNano: fromMillis(timestamp),\n };\n const event = this._getRepeatedEvent(name, otelAttributes);\n if (event) {\n return this._updateRepeatedEvent(event, otelAttributes, timestamp);\n }\n\n this.telemetrySpan?.addEvent(name, otelAttributes, fromMillis(timestamp));\n\n return this.capture(\n 'dom',\n metadata,\n 'info',\n null,\n timestamp,\n otelAttributes,\n );\n }\n\n _getRepeatedEvent(name, attributes) {\n const lastEvent = this._lastEvent(this.queue);\n\n if (\n lastEvent &&\n lastEvent.body.type === name &&\n lastEvent.otelAttributes.target === attributes.target\n ) {\n return lastEvent;\n }\n }\n\n _updateRepeatedEvent(event, attributes, timestamp) {\n const duration = Math.max(timestamp - event.timestamp_ms, 1);\n event.body.value = attributes.value;\n event.otelAttributes.value = attributes.value;\n event.otelAttributes.height = attributes.height;\n event.otelAttributes.width = attributes.width;\n event.otelAttributes.textZoomRatio = attributes.textZoomRatio;\n event.otelAttributes['endTimeUnixNano'] = fromMillis(timestamp);\n event.otelAttributes['durationUnixNano'] = fromMillis(duration);\n event.otelAttributes.count = (event.otelAttributes.count || 1) + 1;\n event.otelAttributes.rate = event.otelAttributes.count / (duration / 1000);\n }\n\n _lastEvent(list) {\n return list.length > 0 ? list[list.length - 1] : null;\n }\n\n captureFocus({ type, isSynthetic, element, timestamp }) {\n const name = 'rollbar-focus-event';\n const metadata = {\n type: name,\n subtype: type,\n element,\n };\n const otelAttributes = {\n type,\n isSynthetic,\n element,\n };\n\n this.telemetrySpan?.addEvent(name, otelAttributes, fromMillis(timestamp));\n\n return this.capture(\n 'dom',\n metadata,\n 'info',\n null,\n timestamp,\n otelAttributes,\n );\n }\n\n captureResize({\n type,\n isSynthetic,\n width,\n height,\n textZoomRatio,\n timestamp,\n }) {\n const name = 'rollbar-resize-event';\n const metadata = {\n type: name,\n subtype: type,\n width,\n height,\n textZoomRatio,\n };\n const otelAttributes = {\n type,\n isSynthetic,\n width,\n height,\n textZoomRatio,\n };\n\n const event = this._getRepeatedEvent(name, otelAttributes);\n if (event) {\n return this._updateRepeatedEvent(event, otelAttributes, timestamp);\n }\n\n this.telemetrySpan?.addEvent(name, otelAttributes, fromMillis(timestamp));\n\n return this.capture(\n 'dom',\n metadata,\n 'info',\n null,\n timestamp,\n otelAttributes,\n );\n }\n\n captureDragDrop({\n type,\n isSynthetic,\n element,\n dropEffect,\n effectAllowed,\n kinds,\n mediaTypes,\n timestamp,\n }) {\n const name = 'rollbar-dragdrop-event';\n let metadata = {\n type: name,\n subtype: type,\n isSynthetic,\n };\n\n let otelAttributes = {\n type,\n isSynthetic,\n };\n\n if (type === 'dragstart') {\n metadata = { ...metadata, element, dropEffect, effectAllowed };\n otelAttributes = {\n ...otelAttributes,\n element,\n dropEffect,\n effectAllowed,\n };\n }\n\n if (type === 'drop') {\n metadata = {\n ...metadata,\n element,\n dropEffect,\n effectAllowed,\n kinds,\n mediaTypes,\n };\n otelAttributes = {\n ...otelAttributes,\n element,\n dropEffect,\n effectAllowed,\n kinds,\n mediaTypes,\n };\n }\n\n this.telemetrySpan?.addEvent(name, otelAttributes, fromMillis(timestamp));\n\n return this.capture(\n 'dom',\n metadata,\n 'info',\n null,\n timestamp,\n otelAttributes,\n );\n }\n\n captureNavigation(from, to, rollbarUUID, timestamp) {\n this.telemetrySpan?.addEvent(\n 'rollbar-navigation-event',\n { 'previous.url.full': from, 'url.full': to },\n fromMillis(timestamp),\n );\n\n return this.capture(\n 'navigation',\n { from, to },\n 'info',\n rollbarUUID,\n timestamp,\n );\n }\n\n captureDomContentLoaded(ts) {\n return this.capture(\n 'navigation',\n { subtype: 'DOMContentLoaded' },\n 'info',\n undefined,\n ts && ts.getTime(),\n );\n /**\n * If we decide to make this a dom event instead, then use the line below:\n return this.capture('dom', {subtype: 'DOMContentLoaded'}, 'info', undefined, ts && ts.getTime());\n */\n }\n\n captureLoad(ts) {\n return this.capture(\n 'navigation',\n { subtype: 'load' },\n 'info',\n undefined,\n ts && ts.getTime(),\n );\n /**\n * If we decide to make this a dom event instead, then use the line below:\n return this.capture('dom', {subtype: 'load'}, 'info', undefined, ts && ts.getTime());\n */\n }\n\n captureConnectivityChange({ type, isSynthetic, timestamp }) {\n const name = 'rollbar-connectivity-event';\n const metadata = {\n type: name,\n subtype: type,\n };\n const otelAttributes = {\n type,\n isSynthetic,\n };\n\n this.telemetrySpan?.addEvent(name, otelAttributes, fromMillis(timestamp));\n\n return this.capture(\n 'connectivity',\n metadata,\n 'info',\n null,\n timestamp,\n otelAttributes,\n );\n }\n\n // Only intended to be used internally by the notifier\n _captureRollbarItem(item) {\n if (!this.options.includeItemsInTelemetry) {\n return;\n }\n if (item.err) {\n return this.captureError(item.err, item.level, item.uuid, item.timestamp);\n }\n if (item.message) {\n return this.captureLog(\n item.message,\n item.level,\n item.uuid,\n item.timestamp,\n );\n }\n if (item.custom) {\n return this.capture(\n 'log',\n item.custom,\n item.level,\n item.uuid,\n item.timestamp,\n );\n }\n }\n\n push(e) {\n this.queue.push(e);\n if (this.queue.length > this.maxQueueSize) {\n this.queue.shift();\n }\n }\n}\n\nfunction getLevel(type, level) {\n if (level) {\n return level;\n }\n var defaultLevel = {\n error: 'error',\n manual: 'info',\n };\n return defaultLevel[type] || 'info';\n}\n\nexport default Telemeter;\n","/*\n * headers - Detect when fetch Headers are undefined and use a partial polyfill.\n *\n * A full polyfill is not used in order to keep package size as small as possible.\n * Since this is only used internally and is not added to the window object,\n * the full interface doesn't need to be supported.\n *\n * This implementation is modified from whatwg-fetch:\n * https://github.com/github/fetch\n */\nfunction headers(headers) {\n if (typeof Headers === 'undefined') {\n return new FetchHeaders(headers);\n }\n\n return new Headers(headers);\n}\n\nfunction normalizeName(name) {\n if (typeof name !== 'string') {\n name = String(name);\n }\n return name.toLowerCase();\n}\n\nfunction normalizeValue(value) {\n if (typeof value !== 'string') {\n value = String(value);\n }\n return value;\n}\n\nfunction iteratorFor(items) {\n var iterator = {\n next: function () {\n var value = items.shift();\n return { done: value === undefined, value: value };\n },\n };\n\n return iterator;\n}\n\nfunction FetchHeaders(headers) {\n this.map = {};\n\n if (headers instanceof FetchHeaders) {\n headers.forEach(function (value, name) {\n this.append(name, value);\n }, this);\n } else if (Array.isArray(headers)) {\n headers.forEach(function (header) {\n this.append(header[0], header[1]);\n }, this);\n } else if (headers) {\n Object.getOwnPropertyNames(headers).forEach(function (name) {\n this.append(name, headers[name]);\n }, this);\n }\n}\n\nFetchHeaders.prototype.append = function (name, value) {\n name = normalizeName(name);\n value = normalizeValue(value);\n var oldValue = this.map[name];\n this.map[name] = oldValue ? oldValue + ', ' + value : value;\n};\n\nFetchHeaders.prototype.get = function (name) {\n name = normalizeName(name);\n return this.has(name) ? this.map[name] : null;\n};\n\nFetchHeaders.prototype.has = function (name) {\n return this.map.hasOwnProperty(normalizeName(name));\n};\n\nFetchHeaders.prototype.forEach = function (callback, thisArg) {\n for (var name in this.map) {\n if (this.map.hasOwnProperty(name)) {\n callback.call(thisArg, this.map[name], name, this);\n }\n }\n};\n\nFetchHeaders.prototype.entries = function () {\n var items = [];\n this.forEach(function (value, name) {\n items.push([name, value]);\n });\n return iteratorFor(items);\n};\n\nexport default headers;\n","function replace(obj, name, replacement, replacements, type) {\n var orig = obj[name];\n obj[name] = replacement(orig);\n if (replacements) {\n replacements[type].push([obj, name, orig]);\n }\n}\n\nexport default replace;\n","import * as _ from '../utility.js';\n\nfunction traverse(obj, func, seen) {\n var k, v, i;\n var isObj = _.isType(obj, 'object');\n var isArray = _.isType(obj, 'array');\n var keys = [];\n var seenIndex;\n\n // Best might be to use Map here with `obj` as the keys, but we want to support IE < 11.\n seen = seen || { obj: [], mapped: [] };\n\n if (isObj) {\n seenIndex = seen.obj.indexOf(obj);\n\n if (isObj && seenIndex !== -1) {\n // Prefer the mapped object if there is one.\n return seen.mapped[seenIndex] || seen.obj[seenIndex];\n }\n\n seen.obj.push(obj);\n seenIndex = seen.obj.length - 1;\n }\n\n if (isObj) {\n for (k in obj) {\n if (Object.prototype.hasOwnProperty.call(obj, k)) {\n keys.push(k);\n }\n }\n } else if (isArray) {\n for (i = 0; i < obj.length; ++i) {\n keys.push(i);\n }\n }\n\n var result = isObj ? {} : [];\n var same = true;\n for (i = 0; i < keys.length; ++i) {\n k = keys[i];\n v = obj[k];\n result[k] = func(k, v, seen);\n same = same && result[k] === obj[k];\n }\n\n if (isObj && !same) {\n seen.mapped[seenIndex] = result;\n }\n\n return !same ? result : obj;\n}\n\nexport default traverse;\n","import * as _ from './utility.js';\nimport traverse from './utility/traverse.js';\n\nfunction scrub(data, scrubFields, scrubPaths) {\n scrubFields = scrubFields || [];\n\n if (scrubPaths) {\n for (var i = 0; i < scrubPaths.length; ++i) {\n scrubPath(data, scrubPaths[i]);\n }\n }\n\n var paramRes = _getScrubFieldRegexs(scrubFields);\n var queryRes = _getScrubQueryParamRegexs(scrubFields);\n\n function redactQueryParam(dummy0, paramPart) {\n return paramPart + _.redact();\n }\n\n function paramScrubber(v) {\n var i;\n if (_.isType(v, 'string')) {\n for (i = 0; i < queryRes.length; ++i) {\n v = v.replace(queryRes[i], redactQueryParam);\n }\n }\n return v;\n }\n\n function valScrubber(k, v) {\n var i;\n for (i = 0; i < paramRes.length; ++i) {\n if (paramRes[i].test(k)) {\n v = _.redact();\n break;\n }\n }\n return v;\n }\n\n function scrubber(k, v, seen) {\n var tmpV = valScrubber(k, v);\n if (tmpV === v) {\n if (_.isType(v, 'object') || _.isType(v, 'array')) {\n return traverse(v, scrubber, seen);\n }\n return paramScrubber(tmpV);\n } else {\n return tmpV;\n }\n }\n\n return traverse(data, scrubber);\n}\n\nfunction scrubPath(obj, path) {\n var keys = path.split('.');\n var last = keys.length - 1;\n try {\n for (var i = 0; i <= last; ++i) {\n if (i < last) {\n obj = obj[keys[i]];\n } else {\n obj[keys[i]] = _.redact();\n }\n }\n } catch (e) {\n // Missing key is OK;\n }\n}\n\nfunction _getScrubFieldRegexs(scrubFields) {\n var ret = [];\n var pat;\n for (var i = 0; i < scrubFields.length; ++i) {\n pat = '^\\\\[?(%5[bB])?' + scrubFields[i] + '\\\\[?(%5[bB])?\\\\]?(%5[dD])?$';\n ret.push(new RegExp(pat, 'i'));\n }\n return ret;\n}\n\nfunction _getScrubQueryParamRegexs(scrubFields) {\n var ret = [];\n var pat;\n for (var i = 0; i < scrubFields.length; ++i) {\n pat = '\\\\[?(%5[bB])?' + scrubFields[i] + '\\\\[?(%5[bB])?\\\\]?(%5[dD])?';\n ret.push(new RegExp('(' + pat + '=)([^&\\\\n]+)', 'igm'));\n }\n return ret;\n}\n\nexport default scrub;\n","function getElementType(e) {\n return (e.getAttribute('type') || '').toLowerCase();\n}\n\nfunction isDescribedElement(element, type, subtypes) {\n if (element.tagName.toLowerCase() !== type.toLowerCase()) {\n return false;\n }\n if (!subtypes) {\n return true;\n }\n element = getElementType(element);\n for (var i = 0; i < subtypes.length; i++) {\n if (subtypes[i] === element) {\n return true;\n }\n }\n return false;\n}\n\nfunction getElementFromEvent(evt, doc) {\n if (evt.target) {\n return evt.target;\n }\n if (doc && doc.elementFromPoint) {\n return doc.elementFromPoint(evt.clientX, evt.clientY);\n }\n return undefined;\n}\n\nfunction treeToArray(elem) {\n var MAX_HEIGHT = 5;\n var out = [];\n var nextDescription;\n for (var height = 0; elem && height < MAX_HEIGHT; height++) {\n nextDescription = describeElement(elem);\n if (nextDescription.tagName === 'html') {\n break;\n }\n out.unshift(nextDescription);\n elem = elem.parentNode;\n }\n return out;\n}\n\nfunction elementArrayToString(a) {\n var MAX_LENGTH = 80;\n var separator = ' > ',\n separatorLength = separator.length;\n var out = [],\n len = 0,\n nextStr,\n totalLength;\n\n for (var i = a.length - 1; i >= 0; i--) {\n nextStr = descriptionToString(a[i]);\n totalLength = len + out.length * separatorLength + nextStr.length;\n if (i < a.length - 1 && totalLength >= MAX_LENGTH + 3) {\n out.unshift('...');\n break;\n }\n out.unshift(nextStr);\n len += nextStr.length;\n }\n return out.join(separator);\n}\n\nfunction elementString(elem) {\n return elementArrayToString(treeToArray(elem));\n}\n\nfunction descriptionToString(desc) {\n if (!desc || !desc.tagName) {\n return '';\n }\n var out = [desc.tagName];\n if (desc.id) {\n out.push('#' + desc.id);\n }\n if (desc.classes) {\n out.push('.' + desc.classes.join('.'));\n }\n for (var i = 0; i < desc.attributes.length; i++) {\n out.push(\n '[' + desc.attributes[i].key + '=\"' + desc.attributes[i].value + '\"]',\n );\n }\n\n return out.join('');\n}\n\n/**\n * Input: a dom element\n * Output: null if tagName is falsey or input is falsey, else\n * {\n * tagName: String,\n * id: String | undefined,\n * classes: [String] | undefined,\n * attributes: [\n * {\n * key: OneOf(type, name, title, alt),\n * value: String\n * }\n * ]\n * }\n */\nfunction describeElement(elem) {\n if (!elem || !elem.tagName) {\n return null;\n }\n var out = {},\n className,\n key,\n attr,\n i;\n out.tagName = elem.tagName.toLowerCase();\n if (elem.id) {\n out.id = elem.id;\n }\n className = elem.className;\n if (className && typeof className === 'string') {\n out.classes = className.split(/\\s+/);\n }\n var attributes = ['type', 'name', 'title', 'alt'];\n out.attributes = [];\n for (i = 0; i < attributes.length; i++) {\n key = attributes[i];\n attr = elem.getAttribute(key);\n if (attr) {\n out.attributes.push({ key: key, value: attr });\n }\n }\n return out;\n}\n\nexport {\n describeElement,\n descriptionToString,\n elementArrayToString,\n elementString,\n treeToArray,\n getElementFromEvent,\n isDescribedElement,\n getElementType,\n};\n","import * as _ from '../utility.js';\nimport headers from '../utility/headers.js';\nimport replace from '../utility/replace.js';\nimport scrub from '../scrub.js';\nimport * as urlparser from './url.js';\nimport * as domUtil from './domUtility.js';\n\nconst defaults = {\n network: true,\n networkResponseHeaders: false,\n networkResponseBody: false,\n networkRequestHeaders: false,\n networkRequestBody: false,\n networkErrorOnHttp5xx: false,\n networkErrorOnHttp4xx: false,\n networkErrorOnHttp0: false,\n log: true,\n dom: true,\n navigation: true,\n connectivity: true,\n contentSecurityPolicy: true,\n errorOnContentSecurityPolicy: false,\n};\n\nfunction restore(replacements, type) {\n let b;\n while (replacements[type].length) {\n b = replacements[type].shift();\n b[0][b[1]] = b[2];\n }\n}\n\nfunction nameFromDescription(description) {\n if (!description || !description.attributes) {\n return null;\n }\n const attrs = description.attributes;\n for (const a of attrs) {\n if (a.key === 'name') {\n return a.value;\n }\n }\n return null;\n}\n\nfunction defaultValueScrubber(scrubFields) {\n const patterns = [];\n for (const field of scrubFields) {\n patterns.push(new RegExp(field, 'i'));\n }\n return function (description) {\n const name = nameFromDescription(description);\n if (!name) {\n return false;\n }\n for (const p of patterns) {\n if (p.test(name)) {\n return true;\n }\n }\n return false;\n };\n}\n\nclass Instrumenter {\n constructor(options, telemeter, rollbar, _window, _document) {\n this.options = options;\n let autoInstrument = options.autoInstrument;\n if (options.enabled === false || autoInstrument === false) {\n this.autoInstrument = {};\n } else {\n if (!_.isType(autoInstrument, 'object')) {\n autoInstrument = defaults;\n }\n this.autoInstrument = _.merge(defaults, autoInstrument);\n }\n this.scrubTelemetryInputs = !!options.scrubTelemetryInputs;\n this.telemetryScrubber = options.telemetryScrubber;\n this.defaultValueScrubber = defaultValueScrubber(options.scrubFields);\n this.telemeter = telemeter;\n this.rollbar = rollbar;\n this.diagnostic = rollbar.client.notifier.diagnostic;\n this._window = _window || {};\n this._document = _document || {};\n this.replacements = {\n network: [],\n log: [],\n navigation: [],\n connectivity: [],\n };\n this.eventRemovers = {\n dom: [],\n connectivity: [],\n contentsecuritypolicy: [],\n };\n\n this._location = this._window.location;\n this._lastHref = this._location && this._location.href;\n }\n\n configure(options) {\n this.options = _.merge(this.options, options);\n let autoInstrument = options.autoInstrument;\n const oldSettings = _.merge(this.autoInstrument);\n if (options.enabled === false || autoInstrument === false) {\n this.autoInstrument = {};\n } else {\n if (!_.isType(autoInstrument, 'object')) {\n autoInstrument = defaults;\n }\n this.autoInstrument = _.merge(defaults, autoInstrument);\n }\n this.instrument(oldSettings);\n if (options.scrubTelemetryInputs !== undefined) {\n this.scrubTelemetryInputs = !!options.scrubTelemetryInputs;\n }\n if (options.telemetryScrubber !== undefined) {\n this.telemetryScrubber = options.telemetryScrubber;\n }\n }\n\n // eslint-disable-next-line complexity\n instrument(oldSettings) {\n if (this.autoInstrument.network && !(oldSettings && oldSettings.network)) {\n this.instrumentNetwork();\n } else if (\n !this.autoInstrument.network &&\n oldSettings &&\n oldSettings.network\n ) {\n this.deinstrumentNetwork();\n }\n\n if (this.autoInstrument.log && !(oldSettings && oldSettings.log)) {\n this.instrumentConsole();\n } else if (!this.autoInstrument.log && oldSettings && oldSettings.log) {\n this.deinstrumentConsole();\n }\n\n if (this.autoInstrument.dom && !(oldSettings && oldSettings.dom)) {\n this.instrumentDom();\n } else if (!this.autoInstrument.dom && oldSettings && oldSettings.dom) {\n this.deinstrumentDom();\n }\n\n if (\n this.autoInstrument.navigation &&\n !(oldSettings && oldSettings.navigation)\n ) {\n this.instrumentNavigation();\n } else if (\n !this.autoInstrument.navigation &&\n oldSettings &&\n oldSettings.navigation\n ) {\n this.deinstrumentNavigation();\n }\n\n if (\n this.autoInstrument.connectivity &&\n !(oldSettings && oldSettings.connectivity)\n ) {\n this.instrumentConnectivity();\n } else if (\n !this.autoInstrument.connectivity &&\n oldSettings &&\n oldSettings.connectivity\n ) {\n this.deinstrumentConnectivity();\n }\n\n if (\n this.autoInstrument.contentSecurityPolicy &&\n !(oldSettings && oldSettings.contentSecurityPolicy)\n ) {\n this.instrumentContentSecurityPolicy();\n } else if (\n !this.autoInstrument.contentSecurityPolicy &&\n oldSettings &&\n oldSettings.contentSecurityPolicy\n ) {\n this.deinstrumentContentSecurityPolicy();\n }\n }\n\n deinstrumentNetwork() {\n restore(this.replacements, 'network');\n }\n\n instrumentNetwork() {\n const self = this;\n\n function wrapProp(prop, xhr) {\n if (prop in xhr && _.isFunction(xhr[prop])) {\n replace(xhr, prop, function (orig) {\n return self.rollbar.wrap(orig);\n });\n }\n }\n\n if ('XMLHttpRequest' in this._window) {\n const xhrp = this._window.XMLHttpRequest.prototype;\n replace(\n xhrp,\n 'open',\n function (orig) {\n return function (method, url) {\n const isUrlObject = _isUrlObject(url);\n if (_.isType(url, 'string') || isUrlObject) {\n url = isUrlObject ? url.toString() : url;\n if (this.__rollbar_xhr) {\n this.__rollbar_xhr.method = method;\n this.__rollbar_xhr.url = url;\n this.__rollbar_xhr.status_code = null;\n this.__rollbar_xhr.start_time_ms = _.now();\n this.__rollbar_xhr.end_time_ms = null;\n } else {\n this.__rollbar_xhr = {\n method: method,\n url: url,\n status_code: null,\n start_time_ms: _.now(),\n end_time_ms: null,\n };\n }\n }\n return orig.apply(this, arguments);\n };\n },\n this.replacements,\n 'network',\n );\n\n replace(\n xhrp,\n 'setRequestHeader',\n function (orig) {\n return function (header, value) {\n // If xhr.open is async, __rollbar_xhr may not be initialized yet.\n if (!this.__rollbar_xhr) {\n this.__rollbar_xhr = {};\n }\n if (_.isType(header, 'string') && _.isType(value, 'string')) {\n if (self.autoInstrument.networkRequestHeaders) {\n if (!this.__rollbar_xhr.request_headers) {\n this.__rollbar_xhr.request_headers = {};\n }\n this.__rollbar_xhr.request_headers[header] = value;\n }\n // We want the content type even if request header telemetry is off.\n if (header.toLowerCase() === 'content-type') {\n this.__rollbar_xhr.request_content_type = value;\n }\n }\n return orig.apply(this, arguments);\n };\n },\n this.replacements,\n 'network',\n );\n\n replace(\n xhrp,\n 'send',\n function (orig) {\n return function (data) {\n const xhr = this;\n\n function onreadystatechangeHandler() {\n if (xhr.__rollbar_xhr) {\n if (xhr.__rollbar_xhr.status_code === null) {\n xhr.__rollbar_xhr.status_code = 0;\n if (self.autoInstrument.networkRequestBody) {\n xhr.__rollbar_xhr.request = data;\n }\n xhr.__rollbar_event = self.captureNetwork(\n xhr.__rollbar_xhr,\n 'xhr',\n undefined,\n );\n }\n if (xhr.readyState < 2) {\n xhr.__rollbar_xhr.start_time_ms = _.now();\n }\n if (xhr.readyState > 3) {\n const end_time_ms = _.now();\n xhr.__rollbar_xhr.end_time_ms = end_time_ms;\n\n let headers = null;\n xhr.__rollbar_xhr.response_content_type =\n xhr.getResponseHeader('Content-Type');\n if (self.autoInstrument.networkResponseHeaders) {\n const headersConfig =\n self.autoInstrument.networkResponseHeaders;\n headers = {};\n try {\n let header;\n if (headersConfig === true) {\n const allHeaders = xhr.getAllResponseHeaders();\n if (allHeaders) {\n const arr = allHeaders.trim().split(/[\\r\\n]+/);\n let parts, value;\n for (const h of arr) {\n parts = h.split(': ');\n header = parts.shift();\n value = parts.join(': ');\n headers[header] = value;\n }\n }\n } else {\n for (const h of headersConfig) {\n headers[h] = xhr.getResponseHeader(h);\n }\n }\n } catch (e) {\n /* we ignore the errors here that could come from different\n * browser issues with the xhr methods */\n }\n }\n let body = null;\n if (self.autoInstrument.networkResponseBody) {\n try {\n body = xhr.responseText;\n } catch (e) {\n /* ignore errors from reading responseText */\n }\n }\n let response = null;\n if (body || headers) {\n response = {};\n if (body) {\n if (\n self.isJsonContentType(\n xhr.__rollbar_xhr.response_content_type,\n )\n ) {\n response.body = self.scrubJson(body);\n } else {\n response.body = body;\n }\n }\n if (headers) {\n response.headers = headers;\n }\n }\n if (response) {\n xhr.__rollbar_xhr.response = response;\n }\n try {\n let code = xhr.status;\n code = code === 1223 ? 204 : code;\n xhr.__rollbar_xhr.status_code = code;\n self.addOtelNetworkResponse(\n xhr.__rollbar_event,\n end_time_ms,\n code,\n );\n xhr.__rollbar_event.level =\n self.telemeter.levelFromStatus(code);\n self.errorOnHttpStatus(xhr.__rollbar_xhr);\n } catch (e) {\n /* ignore possible exception from xhr.status */\n }\n }\n }\n }\n\n wrapProp('onload', xhr);\n wrapProp('onerror', xhr);\n wrapProp('onprogress', xhr);\n\n if (\n 'onreadystatechange' in xhr &&\n _.isFunction(xhr.onreadystatechange)\n ) {\n replace(xhr, 'onreadystatechange', function (orig) {\n return self.rollbar.wrap(\n orig,\n undefined,\n onreadystatechangeHandler,\n );\n });\n } else {\n xhr.onreadystatechange = onreadystatechangeHandler;\n }\n if (xhr.__rollbar_xhr && self.trackHttpErrors()) {\n xhr.__rollbar_xhr.stack = new Error().stack;\n }\n return orig.apply(this, arguments);\n };\n },\n this.replacements,\n 'network',\n );\n }\n\n if ('fetch' in this._window) {\n replace(\n this._window,\n 'fetch',\n function (orig) {\n return function (fn, t) {\n const args = [...arguments];\n const input = args[0];\n let method = 'GET';\n let url;\n const isUrlObject = _isUrlObject(input);\n if (_.isType(input, 'string') || isUrlObject) {\n url = isUrlObject ? input.toString() : input;\n } else if (input) {\n url = input.url;\n if (input.method) {\n method = input.method;\n }\n }\n if (args[1] && args[1].method) {\n method = args[1].method;\n }\n const metadata = {\n method: method,\n url: url,\n status_code: null,\n start_time_ms: _.now(),\n end_time_ms: null,\n };\n if (args[1] && args[1].headers) {\n // Argument may be a Headers object, or plain object. Ensure here that\n // we are working with a Headers object with case-insensitive keys.\n const reqHeaders = headers(args[1].headers);\n\n metadata.request_content_type = reqHeaders.get('Content-Type');\n\n if (self.autoInstrument.networkRequestHeaders) {\n metadata.request_headers = self.fetchHeaders(\n reqHeaders,\n self.autoInstrument.networkRequestHeaders,\n );\n }\n }\n\n if (self.autoInstrument.networkRequestBody) {\n if (args[1] && args[1].body) {\n metadata.request = args[1].body;\n } else if (\n args[0] &&\n !_.isType(args[0], 'string') &&\n args[0].body\n ) {\n metadata.request = args[0].body;\n }\n }\n const telemetryEvent = self.captureNetwork(\n metadata,\n 'fetch',\n undefined,\n );\n if (self.trackHttpErrors()) {\n metadata.stack = new Error().stack;\n }\n\n // Start our handler before returning the promise. This allows resp.clone()\n // to execute before other handlers touch the response.\n return orig.apply(this, args).then(function (resp) {\n const end_time_ms = _.now();\n metadata.end_time_ms = end_time_ms;\n metadata.status_code = resp.status;\n self.addOtelNetworkResponse(\n telemetryEvent,\n end_time_ms,\n resp.status,\n );\n\n metadata.response_content_type = resp.headers.get('Content-Type');\n let headers = null;\n if (self.autoInstrument.networkResponseHeaders) {\n headers = self.fetchHeaders(\n resp.headers,\n self.autoInstrument.networkResponseHeaders,\n );\n }\n let body = null;\n if (self.autoInstrument.networkResponseBody) {\n if (typeof resp.text === 'function') {\n // Response.text() is not implemented on some platforms\n // The response must be cloned to prevent reading (and locking) the original stream.\n // This must be done before other handlers touch the response.\n body = resp.clone().text(); //returns a Promise\n }\n }\n if (headers || body) {\n metadata.response = {};\n if (body) {\n // Test to ensure body is a Promise, which it should always be.\n if (typeof body.then === 'function') {\n body.then(function (text) {\n if (\n text &&\n self.isJsonContentType(metadata.response_content_type)\n ) {\n metadata.response.body = self.scrubJson(text);\n } else {\n metadata.response.body = text;\n }\n });\n } else {\n metadata.response.body = body;\n }\n }\n if (headers) {\n metadata.response.headers = headers;\n }\n }\n self.errorOnHttpStatus(metadata);\n return resp;\n });\n };\n },\n this.replacements,\n 'network',\n );\n }\n }\n\n captureNetwork(metadata, subtype, rollbarUUID) {\n if (\n metadata.request &&\n this.isJsonContentType(metadata.request_content_type)\n ) {\n metadata.request = this.scrubJson(metadata.request);\n }\n return this.telemeter.captureNetwork(metadata, subtype, rollbarUUID);\n }\n\n isJsonContentType(contentType) {\n return contentType &&\n _.isType(contentType, 'string') &&\n contentType.toLowerCase().includes('json')\n ? true\n : false;\n }\n\n addOtelNetworkResponse(event, endTimeMs, statusCode) {\n if (event.otelAttributes) {\n event.otelAttributes['response.timeUnixNano'] = (\n endTimeMs * 1e6\n ).toString();\n event.otelAttributes.statusCode = statusCode;\n }\n }\n\n scrubJson(json) {\n return JSON.stringify(scrub(JSON.parse(json), this.options.scrubFields));\n }\n\n fetchHeaders(inHeaders, headersConfig) {\n const outHeaders = {};\n try {\n if (headersConfig === true) {\n if (typeof inHeaders.entries === 'function') {\n // Headers.entries() is not implemented in IE\n const allHeaders = inHeaders.entries();\n let currentHeader = allHeaders.next();\n while (!currentHeader.done) {\n outHeaders[currentHeader.value[0]] = currentHeader.value[1];\n currentHeader = allHeaders.next();\n }\n }\n } else {\n for (const h of headersConfig) {\n outHeaders[h] = inHeaders.get(h);\n }\n }\n } catch (e) {\n /* ignore probable IE errors */\n }\n return outHeaders;\n }\n\n trackHttpErrors() {\n return (\n this.autoInstrument.networkErrorOnHttp5xx ||\n this.autoInstrument.networkErrorOnHttp4xx ||\n this.autoInstrument.networkErrorOnHttp0\n );\n }\n\n errorOnHttpStatus(metadata) {\n const status = metadata.status_code;\n\n if (\n (status >= 500 && this.autoInstrument.networkErrorOnHttp5xx) ||\n (status >= 400 && this.autoInstrument.networkErrorOnHttp4xx) ||\n (status === 0 && this.autoInstrument.networkErrorOnHttp0)\n ) {\n const error = new Error('HTTP request failed with Status ' + status);\n error.stack = metadata.stack;\n this.rollbar.error(error, { skipFrames: 1 });\n }\n }\n\n deinstrumentConsole() {\n let b;\n while (this.replacements['log'].length) {\n b = this.replacements['log'].shift();\n this._window.console[b[0]] = b[1];\n }\n }\n\n instrumentConsole() {\n if (!this._window?.console?.log) {\n return;\n }\n\n const self = this;\n const c = this._window.console;\n\n function wrapConsole(method) {\n 'use strict'; // See https://github.com/rollbar/rollbar.js/pull/778\n\n const orig = c[method];\n const origConsole = c;\n const level = method === 'warn' ? 'warning' : method;\n c[method] = function () {\n const args = Array.prototype.slice.call(arguments);\n const message = _.formatArgsAsString(args);\n self.telemeter.captureLog(message, level, null, _.now());\n if (orig) {\n Function.prototype.apply.call(orig, origConsole, args);\n }\n };\n self.replacements['log'].push([method, orig]);\n }\n const methods = ['debug', 'info', 'warn', 'error', 'log'];\n try {\n for (const m of methods) {\n wrapConsole(m);\n }\n } catch (e) {\n this.diagnostic.instrumentConsole = { error: e.message };\n }\n }\n\n deinstrumentDom() {\n this.removeListeners('dom');\n }\n\n instrumentDom() {\n const self = this;\n this.addListener(\n 'dom',\n this._window,\n ['click', 'dblclick', 'contextmenu'],\n (e) => this.handleEvent('click', e),\n );\n this.addListener(\n 'dom',\n this._window,\n ['dragstart', 'dragend', 'dragenter', 'dragleave', 'drop'],\n (e) => this.handleEvent('dragdrop', e),\n );\n this.addListener('dom', this._window, ['blur', 'focus'], (e) =>\n this.handleEvent('focus', e),\n );\n this.addListener('dom', this._window, ['submit', 'invalid'], (e) =>\n this.handleEvent('form', e),\n );\n this.addListener('dom', this._window, ['input', 'change'], (e) =>\n this.handleEvent('input', e),\n );\n this.addListener('dom', this._window, ['resize'], (e) =>\n this.handleEvent('resize', e),\n );\n }\n\n handleEvent(name, evt) {\n try {\n return {\n click: this.handleClick,\n dragdrop: this.handleDrag,\n focus: this.handleFocus,\n form: this.handleForm,\n input: this.handleInput,\n resize: this.handleResize,\n }[name].call(this, evt);\n } catch (exc) {\n console.log(`${name} handler error`, evt, exc, exc.stack);\n }\n }\n\n handleClick(evt) {\n const tagName = evt.target?.tagName.toLowerCase();\n if (['input', 'select', 'textarea'].includes(tagName)) return;\n\n this.telemeter.captureClick({\n type: evt.type,\n isSynthetic: !evt.isTrusted,\n element: domUtil.elementString(evt.target),\n timestamp: _.now(),\n });\n }\n\n handleFocus(evt) {\n const type = evt.type;\n const element = evt.target?.window\n ? 'window'\n : domUtil.elementString(evt.target);\n\n this.telemeter.captureFocus({\n type: type,\n isSynthetic: !evt.isTrusted,\n element,\n timestamp: _.now(),\n });\n }\n\n handleForm(evt) {\n // TODO: implement form event handling\n const type = evt.type;\n const elementString = evt.target?.window\n ? 'window'\n : domUtil.elementString(evt.target);\n console.log('handleForm', type, elementString, evt);\n }\n\n handleResize(evt) {\n const textZoomRatio = window.screen.width / window.innerWidth;\n\n this.telemeter.captureResize({\n type: evt.type,\n isSynthetic: !evt.isTrusted,\n width: window.innerWidth,\n height: window.innerHeight,\n textZoomRatio: textZoomRatio,\n timestamp: _.now(),\n });\n }\n\n handleDrag(evt) {\n const type = evt.type;\n let kinds, mediaTypes, dropEffect, effectAllowed;\n\n if (type === 'drop') {\n kinds = [];\n mediaTypes = [];\n const objs = [...evt.dataTransfer.files, ...evt.dataTransfer.items];\n for (const o of objs) {\n if (o.kind && o.type) {\n kinds.push(o.kind);\n mediaTypes.push(o.type);\n }\n }\n }\n if (['drop', 'dragstart'].includes(type)) {\n dropEffect = evt.dataTransfer?.dropEffect;\n effectAllowed = evt.dataTransfer?.effectAllowed;\n }\n\n this.telemeter.captureDragDrop({\n type,\n isSynthetic: !evt.isTrusted,\n element: domUtil.elementString(evt.target),\n dropEffect: dropEffect,\n effectAllowed: effectAllowed,\n kinds: JSON.stringify(kinds),\n mediaTypes: JSON.stringify(mediaTypes),\n timestamp: _.now(),\n });\n }\n\n /*\n * Uses the `input` event for everything except radio and checkbox inputs.\n * For those, it uses the `change` event.\n */\n handleInput(evt) {\n const type = evt.type;\n const tagName = evt.target?.tagName.toLowerCase();\n let value = evt.target?.value;\n let inputType = evt.target?.attributes?.type?.value || evt.target?.type;\n\n switch (type) {\n case 'input':\n if (['radio', 'checkbox'].includes(inputType)) return;\n if (['select', 'textarea'].includes(tagName)) {\n inputType = tagName;\n }\n if (inputType === 'password') {\n value = null;\n }\n break;\n\n case 'change':\n if (!['radio', 'checkbox'].includes(inputType)) return;\n if (inputType === 'checkbox') {\n value = evt.target?.checked;\n }\n break;\n }\n\n this.telemeter.captureInput({\n type: inputType,\n isSynthetic: !evt.isTrusted,\n element: domUtil.elementString(evt.target),\n value,\n timestamp: _.now(),\n });\n }\n\n deinstrumentNavigation() {\n const chrome = this._window.chrome;\n const chromePackagedApp = chrome && chrome.app && chrome.app.runtime;\n // See https://github.com/angular/angular.js/pull/13945/files\n const hasPushState =\n !chromePackagedApp &&\n this._window.history &&\n this._window.history.pushState;\n if (!hasPushState) {\n return;\n }\n restore(this.replacements, 'navigation');\n }\n\n instrumentNavigation() {\n const chrome = this._window.chrome;\n const chromePackagedApp = chrome && chrome.app && chrome.app.runtime;\n // See https://github.com/angular/angular.js/pull/13945/files\n const hasPushState =\n !chromePackagedApp &&\n this._window.history &&\n this._window.history.pushState;\n if (!hasPushState) {\n return;\n }\n const self = this;\n replace(\n this._window,\n 'onpopstate',\n function (orig) {\n return function () {\n const current = self._location.href;\n self.handleUrlChange(self._lastHref, current);\n if (orig) {\n orig.apply(this, arguments);\n }\n };\n },\n this.replacements,\n 'navigation',\n );\n\n replace(\n this._window.history,\n 'pushState',\n function (orig) {\n return function () {\n const url = arguments.length > 2 ? arguments[2] : undefined;\n if (url) {\n self.handleUrlChange(self._lastHref, url + '');\n }\n return orig.apply(this, arguments);\n };\n },\n this.replacements,\n 'navigation',\n );\n }\n\n handleUrlChange(from, to) {\n const parsedHref = urlparser.parse(this._location.href);\n const parsedTo = urlparser.parse(to);\n const parsedFrom = urlparser.parse(from);\n this._lastHref = to;\n if (\n parsedHref.protocol === parsedTo.protocol &&\n parsedHref.host === parsedTo.host\n ) {\n to = parsedTo.path + (parsedTo.hash || '');\n }\n if (\n parsedHref.protocol === parsedFrom.protocol &&\n parsedHref.host === parsedFrom.host\n ) {\n from = parsedFrom.path + (parsedFrom.hash || '');\n }\n this.telemeter.captureNavigation(from, to, null, _.now());\n }\n\n deinstrumentConnectivity = function () {\n this.removeListeners('connectivity');\n };\n\n instrumentConnectivity() {\n const self = this;\n this.addListener(\n 'connectivity',\n this._window,\n ['online', 'offline'],\n (evt) => self.handleConnectivity(evt),\n );\n }\n\n handleConnectivity(evt) {\n const type = evt.type;\n\n this.telemeter.captureConnectivityChange({\n type,\n isSynthetic: !evt.isTrusted,\n timestamp: _.now(),\n });\n }\n\n handleCspEvent(cspEvent) {\n let message =\n 'Security Policy Violation: ' +\n 'blockedURI: ' +\n cspEvent.blockedURI +\n ', ' +\n 'violatedDirective: ' +\n cspEvent.violatedDirective +\n ', ' +\n 'effectiveDirective: ' +\n cspEvent.effectiveDirective +\n ', ';\n\n if (cspEvent.sourceFile) {\n message +=\n 'location: ' +\n cspEvent.sourceFile +\n ', ' +\n 'line: ' +\n cspEvent.lineNumber +\n ', ' +\n 'col: ' +\n cspEvent.columnNumber +\n ', ';\n }\n\n message += 'originalPolicy: ' + cspEvent.originalPolicy;\n\n this.telemeter.captureLog(message, 'error', null, _.now());\n this.handleCspError(message);\n }\n\n handleCspError(message) {\n if (this.autoInstrument.errorOnContentSecurityPolicy) {\n this.rollbar.error(message);\n }\n }\n\n deinstrumentContentSecurityPolicy() {\n this.removeListeners('contentsecuritypolicy');\n }\n\n instrumentContentSecurityPolicy() {\n if (!('addEventListener' in this._document)) {\n return;\n }\n\n const cspHandler = this.handleCspEvent.bind(this);\n this.addListener(\n 'contentsecuritypolicy',\n this._document,\n ['securitypolicyviolation'],\n cspHandler,\n );\n }\n\n addListener(section, obj, types, handler) {\n if (obj.addEventListener) {\n for (const t of types) {\n const options = { capture: true, passive: true };\n obj.addEventListener(t, handler, options, true);\n this.eventRemovers[section].push(function () {\n obj.removeEventListener(t, handler, options);\n });\n }\n }\n }\n\n removeListeners(section) {\n let r;\n while (this.eventRemovers[section].length) {\n r = this.eventRemovers[section].shift();\n r();\n }\n }\n}\n\nfunction _isUrlObject(input) {\n return typeof URL !== 'undefined' && input instanceof URL;\n}\n\nexport default Instrumenter;\n","function wrapGlobals(window, handler, shim) {\n if (!window) {\n return;\n }\n // Adapted from https://github.com/bugsnag/bugsnag-js\n var globals =\n 'EventTarget,Window,Node,ApplicationCache,AudioTrackList,ChannelMergerNode,CryptoOperation,EventSource,FileReader,HTMLUnknownElement,IDBDatabase,IDBRequest,IDBTransaction,KeyOperation,MediaController,MessagePort,ModalWindow,Notification,SVGElementInstance,Screen,TextTrack,TextTrackCue,TextTrackList,WebSocket,WebSocketWorker,Worker,XMLHttpRequest,XMLHttpRequestEventTarget,XMLHttpRequestUpload'.split(\n ',',\n );\n var i, global;\n for (i = 0; i < globals.length; ++i) {\n global = globals[i];\n\n if (window[global] && window[global].prototype) {\n _extendListenerPrototype(handler, window[global].prototype, shim);\n }\n }\n}\n\nfunction _extendListenerPrototype(handler, prototype, shim) {\n if (\n prototype.hasOwnProperty &&\n prototype.hasOwnProperty('addEventListener')\n ) {\n var oldAddEventListener = prototype.addEventListener;\n while (\n oldAddEventListener._rollbarOldAdd &&\n oldAddEventListener.belongsToShim\n ) {\n oldAddEventListener = oldAddEventListener._rollbarOldAdd;\n }\n var addFn = function (event, callback, bubble) {\n oldAddEventListener.call(this, event, handler.wrap(callback), bubble);\n };\n addFn._rollbarOldAdd = oldAddEventListener;\n addFn.belongsToShim = shim;\n prototype.addEventListener = addFn;\n\n var oldRemoveEventListener = prototype.removeEventListener;\n while (\n oldRemoveEventListener._rollbarOldRemove &&\n oldRemoveEventListener.belongsToShim\n ) {\n oldRemoveEventListener = oldRemoveEventListener._rollbarOldRemove;\n }\n var removeFn = function (event, callback, bubble) {\n oldRemoveEventListener.call(\n this,\n event,\n (callback && callback._rollbar_wrapped) || callback,\n bubble,\n );\n };\n removeFn._rollbarOldRemove = oldRemoveEventListener;\n removeFn.belongsToShim = shim;\n prototype.removeEventListener = removeFn;\n }\n}\n\nexport default wrapGlobals;\n","import * as _ from './utility.js';\nimport traverse from './utility/traverse.js';\n\nfunction raw(payload, jsonBackup) {\n return [payload, _.stringify(payload, jsonBackup)];\n}\n\nfunction selectFrames(frames, range) {\n var len = frames.length;\n if (len > range * 2) {\n return frames.slice(0, range).concat(frames.slice(len - range));\n }\n return frames;\n}\n\nfunction truncateFrames(payload, jsonBackup, range) {\n range = typeof range === 'undefined' ? 30 : range;\n var body = payload.data.body;\n var frames;\n if (body.trace_chain) {\n var chain = body.trace_chain;\n for (var i = 0; i < chain.length; i++) {\n frames = chain[i].frames;\n frames = selectFrames(frames, range);\n chain[i].frames = frames;\n }\n } else if (body.trace) {\n frames = body.trace.frames;\n frames = selectFrames(frames, range);\n body.trace.frames = frames;\n }\n return [payload, _.stringify(payload, jsonBackup)];\n}\n\nfunction maybeTruncateValue(len, val) {\n if (!val) {\n return val;\n }\n if (val.length > len) {\n return val.slice(0, len - 3).concat('...');\n }\n return val;\n}\n\nfunction truncateStrings(len, payload, jsonBackup) {\n function truncator(k, v, seen) {\n switch (_.typeName(v)) {\n case 'string':\n return maybeTruncateValue(len, v);\n case 'object':\n case 'array':\n return traverse(v, truncator, seen);\n default:\n return v;\n }\n }\n payload = traverse(payload, truncator);\n return [payload, _.stringify(payload, jsonBackup)];\n}\n\nfunction truncateTraceData(traceData) {\n if (traceData.exception) {\n delete traceData.exception.description;\n traceData.exception.message = maybeTruncateValue(\n 255,\n traceData.exception.message,\n );\n }\n traceData.frames = selectFrames(traceData.frames, 1);\n return traceData;\n}\n\nfunction minBody(payload, jsonBackup) {\n var body = payload.data.body;\n if (body.trace_chain) {\n var chain = body.trace_chain;\n for (var i = 0; i < chain.length; i++) {\n chain[i] = truncateTraceData(chain[i]);\n }\n } else if (body.trace) {\n body.trace = truncateTraceData(body.trace);\n }\n return [payload, _.stringify(payload, jsonBackup)];\n}\n\nfunction needsTruncation(payload, maxSize) {\n return _.maxByteSize(payload) > maxSize;\n}\n\nfunction truncate(payload, jsonBackup, maxSize) {\n maxSize = typeof maxSize === 'undefined' ? 512 * 1024 : maxSize;\n var strategies = [\n raw,\n truncateFrames,\n truncateStrings.bind(null, 1024),\n truncateStrings.bind(null, 512),\n truncateStrings.bind(null, 256),\n minBody,\n ];\n var strategy, results, result;\n\n while ((strategy = strategies.shift())) {\n results = strategy(payload, jsonBackup);\n payload = results[0];\n result = results[1];\n if (result.error || !needsTruncation(result.value, maxSize)) {\n return result;\n }\n }\n return result;\n}\n\nexport default {\n truncate,\n\n /* for testing */\n raw,\n truncateFrames,\n truncateStrings,\n maybeTruncateValue,\n};\n","export class Context {\n constructor(parentContext) {\n this._currentContext = parentContext ? new Map(parentContext) : new Map();\n }\n\n getValue(key) {\n return this._currentContext.get(key);\n }\n\n setValue(key, value) {\n const context = new Context(this._currentContext);\n context._currentContext.set(key, value);\n return context;\n }\n\n deleteValue(key) {\n const context = new Context(self._currentContext);\n context._currentContext.delete(key);\n return context;\n }\n}\n\nexport const ROOT_CONTEXT = new Context();\n","import { ROOT_CONTEXT } from './context.js';\n\nexport class ContextManager {\n constructor() {\n this.currentContext = ROOT_CONTEXT;\n }\n\n active() {\n return this.currentContext;\n }\n\n enterContext(context) {\n const previousContext = this.currentContext;\n this.currentContext = context || ROOT_CONTEXT;\n return previousContext;\n }\n\n exitContext(context) {\n this.currentContext = context;\n return this.currentContext;\n }\n\n with(context, fn, thisArg, ...args) {\n const previousContext = this.enterContext(context);\n try {\n return fn.call(thisArg, ...args);\n } finally {\n this.exitContext(previousContext);\n }\n }\n}\n\nexport function createContextKey(key) {\n // Use Symbol for OpenTelemetry compatibility.\n return Symbol.for(key);\n}\n","/**\n * Generate a random hexadecimal ID of specified byte length\n *\n * @param {number} bytes - Number of bytes for the ID (default: 16)\n * @returns {string} - Hexadecimal string representation\n */\nfunction gen(bytes = 16) {\n let randomBytes = new Uint8Array(bytes);\n crypto.getRandomValues(randomBytes);\n let randHex = Array.from(randomBytes, (byte) =>\n byte.toString(16).padStart(2, '0'),\n ).join('');\n return randHex;\n}\n\n/**\n * Tracing id generation utils\n *\n * @example\n * import id from './id.js';\n *\n * const spanId = id.gen(8); // => \"a1b2c3d4e5f6...\"\n */\nexport default { gen };\n","import id from './id.js';\n\nconst SESSION_KEY = 'RollbarSession';\n\nexport class Session {\n _attributes;\n\n constructor(tracing, options) {\n this.options = options;\n this.tracing = tracing;\n this.window = tracing.window;\n this.session = null;\n this._attributes = {};\n }\n\n init(attrs = {}) {\n if (this.session) {\n return this;\n }\n this.getSession() || this.createSession();\n\n this.initSessionAttributes(attrs);\n\n return this;\n }\n\n getSession() {\n try {\n const serializedSession = this.window.sessionStorage.getItem(SESSION_KEY);\n\n if (!serializedSession) {\n return null;\n }\n\n this.session = JSON.parse(serializedSession);\n } catch {\n return null;\n }\n return this;\n }\n\n createSession() {\n this.session = {\n id: id.gen(),\n createdAt: Date.now(),\n };\n\n return this.setSession(this.session);\n }\n\n setSession(session) {\n const sessionString = JSON.stringify(session);\n\n try {\n this.window.sessionStorage.setItem(SESSION_KEY, sessionString);\n } catch {\n return null;\n }\n return this;\n }\n\n get attributes() {\n return this._attributes;\n }\n\n setAttributes(attributes) {\n this._attributes = { ...this._attributes, ...attributes };\n return this;\n }\n\n setUser(user) {\n this.setAttributes({\n 'user.id': user?.id,\n 'user.email': user?.email,\n 'user.name': user?.name || user?.username,\n });\n return this;\n }\n\n initSessionAttributes(attrs) {\n this.setAttributes({\n 'session.id': this.session.id,\n 'browser.brands': navigator.userAgentData?.brands,\n 'browser.language': navigator.language,\n 'browser.mobile': navigator.userAgentData?.mobile,\n 'browser.platform': navigator.userAgentData?.platform,\n 'client.address': '$remote_ip', // updated at the API\n 'rollbar.notifier.framework': 'browser-js',\n 'user_agent.original': navigator.userAgent,\n ...attrs,\n });\n return this;\n }\n}\n","/**\n * @module hrtime\n *\n * @description Methods for handling OpenTelemetry hrtime.\n */\n\n/**\n * Convert a duration in milliseconds to an OpenTelemetry hrtime tuple.\n *\n * @param {number} millis - The duration in milliseconds.\n * @returns {[number, number]} An array where the first element is seconds\n * and the second is nanoseconds.\n */\nfunction fromMillis(millis) {\n return [Math.trunc(millis / 1000), Math.round((millis % 1000) * 1e6)];\n}\n\n/**\n * Convert an OpenTelemetry hrtime tuple back to a duration in milliseconds.\n *\n * @param {[number, number]} hrtime - The hrtime tuple [seconds, nanoseconds].\n * @returns {number} The total duration in milliseconds.\n */\nfunction toMillis(hrtime) {\n return hrtime[0] * 1e3 + Math.round(hrtime[1] / 1e6);\n}\n\n/**\n * Convert an OpenTelemetry hrtime tuple back to a duration in nanoseconds.\n *\n * @param {[number, number]} hrtime - The hrtime tuple [seconds, nanoseconds].\n * @returns {number} The total duration in nanoseconds.\n */\nfunction toNanos(hrtime) {\n return hrtime[0] * 1e9 + hrtime[1];\n}\n\n/**\n * Adds two OpenTelemetry hrtime tuples.\n *\n * @param {[number, number]} a - The first hrtime tuple [s, ns].\n * @param {[number, number]} b - The second hrtime tuple [s, ns].\n * @returns {[number, number]} Summed hrtime tuple, normalized.\n *\n */\nfunction add(a, b) {\n return [a[0] + b[0] + Math.trunc((a[1] + b[1]) / 1e9), (a[1] + b[1]) % 1e9];\n}\n\n/**\n * Get the current high-resolution time as an OpenTelemetry hrtime tuple.\n *\n * @param {boolean} usePerformance=false - If true, uses the Performance API (timeOrigin + now()).\n *\n * @returns {[number, number]} The current hrtime tuple [s, ns].\n */\nfunction now(usePerformance = false) {\n if (usePerformance) {\n return add(\n fromMillis(performance.timeOrigin),\n fromMillis(performance.now()),\n );\n }\n return fromMillis(Date.now());\n}\n\n/**\n * Check if a value is a valid OpenTelemetry hrtime tuple.\n *\n * An hrtime tuple is an Array of exactly two numbers:\n * [seconds, nanoseconds]\n *\n * @param {*} value – anything to test\n * @returns {boolean} true if `value` is a [number, number] array of length 2\n *\n * @example\n * isHrTime([ 1, 500 ]); // true\n * isHrTime([ 0, 1e9 ]); // true\n * isHrTime([ '1', 500 ]); // false\n * isHrTime({ 0: 1, 1: 500 }); // false\n */\nfunction isHrTime(value) {\n return (\n Array.isArray(value) &&\n value.length === 2 &&\n typeof value[0] === 'number' &&\n typeof value[1] === 'number'\n );\n}\n\n/**\n * Methods for handling hrtime. OpenTelemetry uses the [seconds, nanoseconds]\n * format for hrtime in the `ReadableSpan` interface.\n *\n * @example\n * import hrtime from '@tracing/hrtime.js';\n *\n * hrtime.fromMillis(1000);\n * hrtime.toMillis([0, 1000]);\n * hrtime.add([0, 0], [0, 1000]);\n * hrtime.now();\n * hrtime.isHrTime([0, 1000]);\n */\nexport default { fromMillis, toMillis, toNanos, add, now, isHrTime };\n","import hrtime from './hrtime.js';\n\n/**\n * SpanExporter is responsible for exporting ReadableSpan objects\n * and transforming them into the OTLP-compatible format.\n */\nexport class SpanExporter {\n constructor(api, options = {}) {\n this.api = api;\n this.options = options;\n }\n\n /**\n * Export spans to the span export queue\n *\n * @param {Array} spans - Array of ReadableSpan objects to export\n * @param {Function} _resultCallback - Optional callback (not used)\n */\n export(spans, _resultCallback) {\n spanExportQueue.push(...spans);\n }\n\n /**\n * Transforms an array of ReadableSpan objects into the OTLP format payload\n * compatible with the Rollbar API. This follows the OpenTelemetry protocol\n * specification for traces.\n *\n * @returns {Object} OTLP format payload for API transmission\n */\n toPayload() {\n const spans = spanExportQueue.slice();\n spanExportQueue.length = 0;\n\n if (!spans || !spans.length) {\n return { resourceSpans: [] };\n }\n\n const resource = (spans[0] && spans[0].resource) || {};\n\n const scopeMap = new Map();\n\n for (const span of spans) {\n const scopeKey = span.instrumentationScope\n ? `${span.instrumentationScope.name}:${span.instrumentationScope.version}`\n : 'default:1.0.0';\n\n if (!scopeMap.has(scopeKey)) {\n scopeMap.set(scopeKey, {\n scope: span.instrumentationScope || {\n name: 'default',\n version: '1.0.0',\n attributes: [],\n },\n spans: [],\n });\n }\n\n scopeMap.get(scopeKey).spans.push(this._transformSpan(span));\n }\n\n return {\n resourceSpans: [\n {\n resource: this._transformResource(resource),\n scopeSpans: Array.from(scopeMap.values()).map((scopeData) => ({\n scope: this._transformInstrumentationScope(scopeData.scope),\n spans: scopeData.spans,\n })),\n },\n ],\n };\n }\n\n /**\n * Sends the given payload to the Rollbar API.\n *\n * @param {String} payload - Serialized OTLP format payload\n * @param {Object} headers - Optional request headers\n * @returns {Promise} Promise that resolves when the request completes\n */\n post(payload, headers = {}) {\n return this.api.postSpans(payload, headers);\n }\n\n /**\n * Transforms a ReadableSpan into the OTLP Span format\n *\n * @private\n * @param {Object} span - ReadableSpan object to transform\n * @returns {Object} OTLP Span format\n */\n _transformSpan(span) {\n const transformAttributes = (attributes) => {\n return Object.entries(attributes || {}).map(([key, value]) => ({\n key,\n value: this._transformAnyValue(value),\n }));\n };\n\n const transformEvents = (events) => {\n return (events || []).map((event) => ({\n timeUnixNano: hrtime.toNanos(event.time),\n name: event.name,\n attributes: transformAttributes(event.attributes),\n }));\n };\n\n return {\n traceId: span.spanContext.traceId,\n spanId: span.spanContext.spanId,\n parentSpanId: span.parentSpanId || '',\n name: span.name,\n kind: span.kind || 1, // INTERNAL by default\n startTimeUnixNano: hrtime.toNanos(span.startTime),\n endTimeUnixNano: hrtime.toNanos(span.endTime),\n attributes: transformAttributes(span.attributes),\n events: transformEvents(span.events),\n };\n }\n\n /**\n * Transforms a resource object into OTLP Resource format\n *\n * @private\n * @param {Object} resource - Resource information\n * @returns {Object} OTLP Resource format\n */\n _transformResource(resource) {\n const attributes = resource.attributes || {};\n const keyValues = Object.entries(attributes).map(([key, value]) => ({\n key,\n value: this._transformAnyValue(value),\n }));\n\n return {\n attributes: keyValues,\n };\n }\n\n /**\n * Transforms an instrumentation scope into OTLP InstrumentationScope format\n *\n * @private\n * @param {Object} scope - Instrumentation scope information\n * @returns {Object} OTLP InstrumentationScope format\n */\n _transformInstrumentationScope(scope) {\n return {\n name: scope.name || '',\n version: scope.version || '',\n attributes: (scope.attributes || []).map((attr) => ({\n key: attr.key,\n value: this._transformAnyValue(attr.value),\n })),\n };\n }\n\n /**\n * Transforms a JavaScript value into an OTLP AnyValue\n *\n * @private\n * @param {any} value - Value to transform\n * @returns {Object} OTLP AnyValue format\n */\n _transformAnyValue(value) {\n if (value === null || value === undefined) {\n return { stringValue: '' };\n }\n\n const type = typeof value;\n\n if (type === 'string') {\n return { stringValue: value };\n } else if (type === 'number') {\n if (Number.isInteger(value)) {\n return { intValue: value.toString() };\n } else {\n return { doubleValue: value };\n }\n } else if (type === 'boolean') {\n return { boolValue: value };\n } else if (Array.isArray(value)) {\n return {\n arrayValue: {\n values: value.map((v) => this._transformAnyValue(v)),\n },\n };\n } else if (type === 'object') {\n return {\n kvlistValue: {\n values: Object.entries(value).map(([k, v]) => ({\n key: k,\n value: this._transformAnyValue(v),\n })),\n },\n };\n }\n\n return { stringValue: String(value) };\n }\n}\n\nexport const spanExportQueue = [];\n","import logger from '../logger.js';\n\nexport class SpanProcessor {\n constructor(exporter, options = {}) {\n this.exporter = exporter;\n this.options = options;\n this.pendingSpans = new Map();\n }\n\n onStart(span, _parentContext) {\n this.pendingSpans.set(span.span.spanContext.spanId, span);\n }\n\n onEnd(span) {\n try {\n if (this.options.transformSpan) {\n this.options.transformSpan({ span: span.span });\n }\n } catch (e) {\n logger.error('Error running transformSpan callback', e);\n }\n this.exporter.export([span.export()]);\n this.pendingSpans.delete(span.span.spanContext.spanId);\n }\n}\n","import hrtime from './hrtime.js';\n\nexport class Span {\n constructor(options) {\n this.usePerformance = options.usePerformance;\n this.initReadableSpan(options);\n\n this.spanProcessor = options.spanProcessor;\n this.spanProcessor.onStart(this, options.context);\n\n if (options.attributes) {\n this.setAttributes(options.attributes);\n }\n return this;\n }\n\n initReadableSpan(options) {\n this.span = {\n name: options.name,\n kind: options.kind,\n spanContext: options.spanContext,\n parentSpanId: options.parentSpanId,\n startTime: options.startTime || hrtime.now(options.usePerformance),\n endTime: [0, 0],\n status: { code: 0, message: '' },\n attributes: { 'session.id': options.session?.id },\n links: [],\n events: [],\n duration: 0,\n ended: false,\n resource: options.resource,\n instrumentationScope: options.scope,\n droppedAttributesCount: 0,\n droppedEventsCount: 0,\n droppedLinksCount: 0,\n };\n }\n\n spanContext() {\n return this.span.spanContext;\n }\n\n get spanId() {\n return this.span.spanContext.spanId;\n }\n\n get traceId() {\n return this.span.spanContext.traceId;\n }\n\n setAttribute(key, value) {\n if (value == null || this.span.ended) return this;\n if (key.length === 0) return this;\n\n this.span.attributes[key] = value;\n return this;\n }\n\n setAttributes(attributes) {\n for (const [k, v] of Object.entries(attributes)) {\n this.setAttribute(k, v);\n }\n return this;\n }\n\n addEvent(name, attributes = {}, time) {\n if (this.span.ended) return this;\n\n this.span.events.push({\n name,\n attributes,\n time: time || hrtime.now(),\n droppedAttributesCount: 0,\n });\n\n return this;\n }\n\n isRecording() {\n return this.span.ended === false;\n }\n\n end(attributes, time) {\n if (attributes) this.setAttributes(attributes);\n this.span.endTime = time || hrtime.now(this.usePerformance);\n this.span.ended = true;\n this.spanProcessor.onEnd(this);\n }\n\n export() {\n return this.span;\n }\n}\n","import { Span } from './span.js';\nimport id from './id.js';\n\nexport class Tracer {\n constructor(tracing, spanProcessor) {\n this.spanProcessor = spanProcessor;\n this.tracing = tracing;\n }\n\n startSpan(\n name,\n options = {},\n context = this.tracing.contextManager.active(),\n ) {\n const parentSpan = this.tracing.getSpan(context);\n const parentSpanContext = parentSpan?.spanContext();\n const spanId = id.gen(8);\n let traceId;\n let traceFlags = 0;\n let traceState = null;\n let parentSpanId;\n if (parentSpanContext) {\n traceId = parentSpanContext.traceId;\n traceState = parentSpanContext.traceState;\n parentSpanId = parentSpanContext.spanId;\n } else {\n traceId = id.gen(16);\n }\n\n const kind = 0;\n const spanContext = { traceId, spanId, traceFlags, traceState };\n const resource = {\n attributes: {\n ...(this.tracing.resource?.attributes || {}),\n ...(options.resource?.attributes || {}),\n },\n };\n\n const span = new Span({\n resource: resource,\n scope: this.tracing.scope,\n session: this.tracing.session.session,\n context,\n spanContext,\n name,\n kind,\n parentSpanId,\n spanProcessor: this.spanProcessor,\n startTime: options.startTime,\n usePerformance: options.usePerformance,\n });\n return span;\n }\n}\n","import { ContextManager, createContextKey } from './contextManager.js';\nimport { Session } from './session.js';\nimport { SpanExporter } from './exporter.js';\nimport { SpanProcessor } from './spanProcessor.js';\nimport { Tracer } from './tracer.js';\nimport id from './id.js';\n\nconst SPAN_KEY = createContextKey('Rollbar Context Key SPAN');\n\nexport default class Tracing {\n constructor(gWindow, api, options) {\n this.api = api;\n this.options = options;\n this.window = gWindow;\n\n if (this.window.sessionStorage) {\n this.session = new Session(this, options);\n }\n this.createTracer();\n }\n\n configure(options) {\n // Options merge happens before configure is called, so we can just replace.\n this.options = options;\n }\n\n initSession() {\n if (this.session) {\n this.session.init();\n }\n }\n\n get sessionId() {\n if (this.session) {\n return this.session.session.id;\n }\n return null;\n }\n\n get resource() {\n return {\n attributes: {\n ...(this.options.resource || {}),\n 'rollbar.environment':\n this.options.payload?.environment ?? this.options.environment,\n },\n };\n }\n\n get scope() {\n return {\n name: 'rollbar-browser-js',\n version: this.options.version,\n };\n }\n\n idGen(bytes = 16) {\n return id.gen(bytes);\n }\n\n createTracer() {\n this.contextManager = new ContextManager();\n this.exporter = new SpanExporter(this.api, this.options);\n this.spanProcessor = new SpanProcessor(this.exporter, this.options.tracing);\n this.tracer = new Tracer(this, this.spanProcessor);\n }\n\n getTracer() {\n return this.tracer;\n }\n\n getSpan(context = this.contextManager.active()) {\n return context.getValue(SPAN_KEY);\n }\n\n setSpan(context = this.contextManager.active(), span) {\n return context.setValue(SPAN_KEY, span);\n }\n\n startSpan(name, options = {}, context = this.contextManager.active()) {\n return this.tracer.startSpan(name, options, context);\n }\n\n with(context, fn, thisArg, ...args) {\n return this.contextManager.with(context, fn, thisArg, ...args);\n }\n\n withSpan(name, options, fn, thisArg) {\n const span = this.startSpan(name, options);\n return this.with(\n this.setSpan(this.contextManager.active(), span),\n fn,\n thisArg,\n span,\n );\n }\n}\n","var __defProp = Object.defineProperty;\nvar __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;\nvar __publicField = (obj, key, value) => __defNormalProp(obj, typeof key !== \"symbol\" ? key + \"\" : key, value);\nvar _a;\nvar __defProp$1 = Object.defineProperty;\nvar __defNormalProp$1 = (obj, key, value) => key in obj ? __defProp$1(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;\nvar __publicField$1 = (obj, key, value) => __defNormalProp$1(obj, typeof key !== \"symbol\" ? key + \"\" : key, value);\nvar NodeType$3 = /* @__PURE__ */ ((NodeType2) => {\n NodeType2[NodeType2[\"Document\"] = 0] = \"Document\";\n NodeType2[NodeType2[\"DocumentType\"] = 1] = \"DocumentType\";\n NodeType2[NodeType2[\"Element\"] = 2] = \"Element\";\n NodeType2[NodeType2[\"Text\"] = 3] = \"Text\";\n NodeType2[NodeType2[\"CDATA\"] = 4] = \"CDATA\";\n NodeType2[NodeType2[\"Comment\"] = 5] = \"Comment\";\n return NodeType2;\n})(NodeType$3 || {});\nconst testableAccessors$1 = {\n Node: [\"childNodes\", \"parentNode\", \"parentElement\", \"textContent\"],\n ShadowRoot: [\"host\", \"styleSheets\"],\n Element: [\"shadowRoot\", \"querySelector\", \"querySelectorAll\"],\n MutationObserver: []\n};\nconst testableMethods$1 = {\n Node: [\"contains\", \"getRootNode\"],\n ShadowRoot: [\"getSelection\"],\n Element: [],\n MutationObserver: [\"constructor\"]\n};\nconst untaintedBasePrototype$1 = {};\nconst isAngularZonePresent$1 = () => {\n return !!globalThis.Zone;\n};\nfunction getUntaintedPrototype$1(key) {\n if (untaintedBasePrototype$1[key])\n return untaintedBasePrototype$1[key];\n const defaultObj = globalThis[key];\n const defaultPrototype = defaultObj.prototype;\n const accessorNames = key in testableAccessors$1 ? testableAccessors$1[key] : void 0;\n const isUntaintedAccessors = Boolean(\n accessorNames && // @ts-expect-error 2345\n accessorNames.every(\n (accessor) => {\n var _a2, _b;\n return Boolean(\n (_b = (_a2 = Object.getOwnPropertyDescriptor(defaultPrototype, accessor)) == null ? void 0 : _a2.get) == null ? void 0 : _b.toString().includes(\"[native code]\")\n );\n }\n )\n );\n const methodNames = key in testableMethods$1 ? testableMethods$1[key] : void 0;\n const isUntaintedMethods = Boolean(\n methodNames && methodNames.every(\n // @ts-expect-error 2345\n (method) => {\n var _a2;\n return typeof defaultPrototype[method] === \"function\" && ((_a2 = defaultPrototype[method]) == null ? void 0 : _a2.toString().includes(\"[native code]\"));\n }\n )\n );\n if (isUntaintedAccessors && isUntaintedMethods && !isAngularZonePresent$1()) {\n untaintedBasePrototype$1[key] = defaultObj.prototype;\n return defaultObj.prototype;\n }\n try {\n const iframeEl = document.createElement(\"iframe\");\n document.body.appendChild(iframeEl);\n const win = iframeEl.contentWindow;\n if (!win) return defaultObj.prototype;\n const untaintedObject = win[key].prototype;\n document.body.removeChild(iframeEl);\n if (!untaintedObject) return defaultPrototype;\n return untaintedBasePrototype$1[key] = untaintedObject;\n } catch {\n return defaultPrototype;\n }\n}\nconst untaintedAccessorCache$1 = {};\nfunction getUntaintedAccessor$1(key, instance, accessor) {\n var _a2;\n const cacheKey = `${key}.${String(accessor)}`;\n if (untaintedAccessorCache$1[cacheKey])\n return untaintedAccessorCache$1[cacheKey].call(\n instance\n );\n const untaintedPrototype = getUntaintedPrototype$1(key);\n const untaintedAccessor = (_a2 = Object.getOwnPropertyDescriptor(\n untaintedPrototype,\n accessor\n )) == null ? void 0 : _a2.get;\n if (!untaintedAccessor) return instance[accessor];\n untaintedAccessorCache$1[cacheKey] = untaintedAccessor;\n return untaintedAccessor.call(instance);\n}\nconst untaintedMethodCache$1 = {};\nfunction getUntaintedMethod$1(key, instance, method) {\n const cacheKey = `${key}.${String(method)}`;\n if (untaintedMethodCache$1[cacheKey])\n return untaintedMethodCache$1[cacheKey].bind(\n instance\n );\n const untaintedPrototype = getUntaintedPrototype$1(key);\n const untaintedMethod = untaintedPrototype[method];\n if (typeof untaintedMethod !== \"function\") return instance[method];\n untaintedMethodCache$1[cacheKey] = untaintedMethod;\n return untaintedMethod.bind(instance);\n}\nfunction childNodes$1(n2) {\n return getUntaintedAccessor$1(\"Node\", n2, \"childNodes\");\n}\nfunction parentNode$1(n2) {\n return getUntaintedAccessor$1(\"Node\", n2, \"parentNode\");\n}\nfunction parentElement$1(n2) {\n return getUntaintedAccessor$1(\"Node\", n2, \"parentElement\");\n}\nfunction textContent$1(n2) {\n return getUntaintedAccessor$1(\"Node\", n2, \"textContent\");\n}\nfunction contains$1(n2, other) {\n return getUntaintedMethod$1(\"Node\", n2, \"contains\")(other);\n}\nfunction getRootNode$1(n2) {\n return getUntaintedMethod$1(\"Node\", n2, \"getRootNode\")();\n}\nfunction host$1(n2) {\n if (!n2 || !(\"host\" in n2)) return null;\n return getUntaintedAccessor$1(\"ShadowRoot\", n2, \"host\");\n}\nfunction styleSheets$1(n2) {\n return n2.styleSheets;\n}\nfunction shadowRoot$1(n2) {\n if (!n2 || !(\"shadowRoot\" in n2)) return null;\n return getUntaintedAccessor$1(\"Element\", n2, \"shadowRoot\");\n}\nfunction querySelector$1(n2, selectors) {\n return getUntaintedAccessor$1(\"Element\", n2, \"querySelector\")(selectors);\n}\nfunction querySelectorAll$1(n2, selectors) {\n return getUntaintedAccessor$1(\"Element\", n2, \"querySelectorAll\")(selectors);\n}\nfunction mutationObserverCtor$1() {\n return getUntaintedPrototype$1(\"MutationObserver\").constructor;\n}\nconst index$1 = {\n childNodes: childNodes$1,\n parentNode: parentNode$1,\n parentElement: parentElement$1,\n textContent: textContent$1,\n contains: contains$1,\n getRootNode: getRootNode$1,\n host: host$1,\n styleSheets: styleSheets$1,\n shadowRoot: shadowRoot$1,\n querySelector: querySelector$1,\n querySelectorAll: querySelectorAll$1,\n mutationObserver: mutationObserverCtor$1\n};\nfunction isElement(n2) {\n return n2.nodeType === n2.ELEMENT_NODE;\n}\nfunction isShadowRoot(n2) {\n const hostEl = (\n // anchor and textarea elements also have a `host` property\n // but only shadow roots have a `mode` property\n n2 && \"host\" in n2 && \"mode\" in n2 && index$1.host(n2) || null\n );\n return Boolean(\n hostEl && \"shadowRoot\" in hostEl && index$1.shadowRoot(hostEl) === n2\n );\n}\nfunction isNativeShadowDom(shadowRoot2) {\n return Object.prototype.toString.call(shadowRoot2) === \"[object ShadowRoot]\";\n}\nfunction fixBrowserCompatibilityIssuesInCSS(cssText) {\n if (cssText.includes(\" background-clip: text;\") && !cssText.includes(\" -webkit-background-clip: text;\")) {\n cssText = cssText.replace(\n /\\sbackground-clip:\\s*text;/g,\n \" -webkit-background-clip: text; background-clip: text;\"\n );\n }\n return cssText;\n}\nfunction escapeImportStatement(rule2) {\n const { cssText } = rule2;\n if (cssText.split('\"').length < 3) return cssText;\n const statement = [\"@import\", `url(${JSON.stringify(rule2.href)})`];\n if (rule2.layerName === \"\") {\n statement.push(`layer`);\n } else if (rule2.layerName) {\n statement.push(`layer(${rule2.layerName})`);\n }\n if (rule2.supportsText) {\n statement.push(`supports(${rule2.supportsText})`);\n }\n if (rule2.media.length) {\n statement.push(rule2.media.mediaText);\n }\n return statement.join(\" \") + \";\";\n}\nfunction stringifyStylesheet(s2) {\n try {\n const rules2 = s2.rules || s2.cssRules;\n if (!rules2) {\n return null;\n }\n let sheetHref = s2.href;\n if (!sheetHref && s2.ownerNode && s2.ownerNode.ownerDocument) {\n sheetHref = s2.ownerNode.ownerDocument.location.href;\n }\n const stringifiedRules = Array.from(\n rules2,\n (rule2) => stringifyRule(rule2, sheetHref)\n ).join(\"\");\n return fixBrowserCompatibilityIssuesInCSS(stringifiedRules);\n } catch (error) {\n return null;\n }\n}\nfunction stringifyRule(rule2, sheetHref) {\n if (isCSSImportRule(rule2)) {\n let importStringified;\n try {\n importStringified = // for same-origin stylesheets,\n // we can access the imported stylesheet rules directly\n stringifyStylesheet(rule2.styleSheet) || // work around browser issues with the raw string `@import url(...)` statement\n escapeImportStatement(rule2);\n } catch (error) {\n importStringified = rule2.cssText;\n }\n if (rule2.styleSheet.href) {\n return absolutifyURLs(importStringified, rule2.styleSheet.href);\n }\n return importStringified;\n } else {\n let ruleStringified = rule2.cssText;\n if (isCSSStyleRule(rule2) && rule2.selectorText.includes(\":\")) {\n ruleStringified = fixSafariColons(ruleStringified);\n }\n if (sheetHref) {\n return absolutifyURLs(ruleStringified, sheetHref);\n }\n return ruleStringified;\n }\n}\nfunction fixSafariColons(cssStringified) {\n const regex = /(\\[(?:[\\w-]+)[^\\\\])(:(?:[\\w-]+)\\])/gm;\n return cssStringified.replace(regex, \"$1\\\\$2\");\n}\nfunction isCSSImportRule(rule2) {\n return \"styleSheet\" in rule2;\n}\nfunction isCSSStyleRule(rule2) {\n return \"selectorText\" in rule2;\n}\nclass Mirror {\n constructor() {\n __publicField$1(this, \"idNodeMap\", /* @__PURE__ */ new Map());\n __publicField$1(this, \"nodeMetaMap\", /* @__PURE__ */ new WeakMap());\n }\n getId(n2) {\n var _a2;\n if (!n2) return -1;\n const id = (_a2 = this.getMeta(n2)) == null ? void 0 : _a2.id;\n return id ?? -1;\n }\n getNode(id) {\n return this.idNodeMap.get(id) || null;\n }\n getIds() {\n return Array.from(this.idNodeMap.keys());\n }\n getMeta(n2) {\n return this.nodeMetaMap.get(n2) || null;\n }\n // removes the node from idNodeMap\n // doesn't remove the node from nodeMetaMap\n removeNodeFromMap(n2) {\n const id = this.getId(n2);\n this.idNodeMap.delete(id);\n if (n2.childNodes) {\n n2.childNodes.forEach(\n (childNode) => this.removeNodeFromMap(childNode)\n );\n }\n }\n has(id) {\n return this.idNodeMap.has(id);\n }\n hasNode(node2) {\n return this.nodeMetaMap.has(node2);\n }\n add(n2, meta) {\n const id = meta.id;\n this.idNodeMap.set(id, n2);\n this.nodeMetaMap.set(n2, meta);\n }\n replace(id, n2) {\n const oldNode = this.getNode(id);\n if (oldNode) {\n const meta = this.nodeMetaMap.get(oldNode);\n if (meta) this.nodeMetaMap.set(n2, meta);\n }\n this.idNodeMap.set(id, n2);\n }\n reset() {\n this.idNodeMap = /* @__PURE__ */ new Map();\n this.nodeMetaMap = /* @__PURE__ */ new WeakMap();\n }\n}\nfunction createMirror$2() {\n return new Mirror();\n}\nfunction maskInputValue({\n element,\n maskInputOptions,\n tagName,\n type,\n value,\n maskInputFn\n}) {\n let text = value || \"\";\n const actualType = type && toLowerCase(type);\n if (maskInputOptions[tagName.toLowerCase()] || actualType && maskInputOptions[actualType]) {\n if (maskInputFn) {\n text = maskInputFn(text, element);\n } else {\n text = \"*\".repeat(text.length);\n }\n }\n return text;\n}\nfunction toLowerCase(str) {\n return str.toLowerCase();\n}\nconst ORIGINAL_ATTRIBUTE_NAME = \"__rrweb_original__\";\nfunction is2DCanvasBlank(canvas) {\n const ctx = canvas.getContext(\"2d\");\n if (!ctx) return true;\n const chunkSize = 50;\n for (let x2 = 0; x2 < canvas.width; x2 += chunkSize) {\n for (let y = 0; y < canvas.height; y += chunkSize) {\n const getImageData = ctx.getImageData;\n const originalGetImageData = ORIGINAL_ATTRIBUTE_NAME in getImageData ? getImageData[ORIGINAL_ATTRIBUTE_NAME] : getImageData;\n const pixelBuffer = new Uint32Array(\n // eslint-disable-next-line @typescript-eslint/no-unsafe-argument, @typescript-eslint/no-unsafe-member-access\n originalGetImageData.call(\n ctx,\n x2,\n y,\n Math.min(chunkSize, canvas.width - x2),\n Math.min(chunkSize, canvas.height - y)\n ).data.buffer\n );\n if (pixelBuffer.some((pixel) => pixel !== 0)) return false;\n }\n }\n return true;\n}\nfunction isNodeMetaEqual(a2, b) {\n if (!a2 || !b || a2.type !== b.type) return false;\n if (a2.type === NodeType$3.Document)\n return a2.compatMode === b.compatMode;\n else if (a2.type === NodeType$3.DocumentType)\n return a2.name === b.name && a2.publicId === b.publicId && a2.systemId === b.systemId;\n else if (a2.type === NodeType$3.Comment || a2.type === NodeType$3.Text || a2.type === NodeType$3.CDATA)\n return a2.textContent === b.textContent;\n else if (a2.type === NodeType$3.Element)\n return a2.tagName === b.tagName && JSON.stringify(a2.attributes) === JSON.stringify(b.attributes) && a2.isSVG === b.isSVG && a2.needBlock === b.needBlock;\n return false;\n}\nfunction getInputType(element) {\n const type = element.type;\n return element.hasAttribute(\"data-rr-is-password\") ? \"password\" : type ? (\n // eslint-disable-next-line @typescript-eslint/no-unnecessary-type-assertion\n toLowerCase(type)\n ) : null;\n}\nfunction extractFileExtension(path, baseURL) {\n let url;\n try {\n url = new URL(path, baseURL ?? window.location.href);\n } catch (err) {\n return null;\n }\n const regex = /\\.([0-9a-z]+)(?:$)/i;\n const match = url.pathname.match(regex);\n return (match == null ? void 0 : match[1]) ?? null;\n}\nfunction extractOrigin(url) {\n let origin = \"\";\n if (url.indexOf(\"//\") > -1) {\n origin = url.split(\"/\").slice(0, 3).join(\"/\");\n } else {\n origin = url.split(\"/\")[0];\n }\n origin = origin.split(\"?\")[0];\n return origin;\n}\nconst URL_IN_CSS_REF = /url\\((?:(')([^']*)'|(\")(.*?)\"|([^)]*))\\)/gm;\nconst URL_PROTOCOL_MATCH = /^(?:[a-z+]+:)?\\/\\//i;\nconst URL_WWW_MATCH = /^www\\..*/i;\nconst DATA_URI = /^(data:)([^,]*),(.*)/i;\nfunction absolutifyURLs(cssText, href) {\n return (cssText || \"\").replace(\n URL_IN_CSS_REF,\n (origin, quote1, path1, quote2, path2, path3) => {\n const filePath = path1 || path2 || path3;\n const maybeQuote = quote1 || quote2 || \"\";\n if (!filePath) {\n return origin;\n }\n if (URL_PROTOCOL_MATCH.test(filePath) || URL_WWW_MATCH.test(filePath)) {\n return `url(${maybeQuote}${filePath}${maybeQuote})`;\n }\n if (DATA_URI.test(filePath)) {\n return `url(${maybeQuote}${filePath}${maybeQuote})`;\n }\n if (filePath[0] === \"/\") {\n return `url(${maybeQuote}${extractOrigin(href) + filePath}${maybeQuote})`;\n }\n const stack = href.split(\"/\");\n const parts = filePath.split(\"/\");\n stack.pop();\n for (const part of parts) {\n if (part === \".\") {\n continue;\n } else if (part === \"..\") {\n stack.pop();\n } else {\n stack.push(part);\n }\n }\n return `url(${maybeQuote}${stack.join(\"/\")}${maybeQuote})`;\n }\n );\n}\nfunction normalizeCssString(cssText) {\n return cssText.replace(/(\\/\\*[^*]*\\*\\/)|[\\s;]/g, \"\");\n}\nfunction splitCssText(cssText, style) {\n const childNodes2 = Array.from(style.childNodes);\n const splits = [];\n if (childNodes2.length > 1 && cssText && typeof cssText === \"string\") {\n const cssTextNorm = normalizeCssString(cssText);\n for (let i2 = 1; i2 < childNodes2.length; i2++) {\n if (childNodes2[i2].textContent && typeof childNodes2[i2].textContent === \"string\") {\n const textContentNorm = normalizeCssString(childNodes2[i2].textContent);\n for (let j = 3; j < textContentNorm.length; j++) {\n const bit = textContentNorm.substring(0, j);\n if (cssTextNorm.split(bit).length === 2) {\n const splitNorm = cssTextNorm.indexOf(bit);\n for (let k = splitNorm; k < cssText.length; k++) {\n if (normalizeCssString(cssText.substring(0, k)).length === splitNorm) {\n splits.push(cssText.substring(0, k));\n cssText = cssText.substring(k);\n break;\n }\n }\n break;\n }\n }\n }\n }\n }\n splits.push(cssText);\n return splits;\n}\nfunction markCssSplits(cssText, style) {\n return splitCssText(cssText, style).join(\"/* rr_split */\");\n}\nlet _id = 1;\nconst tagNameRegex = new RegExp(\"[^a-z0-9-_:]\");\nconst IGNORED_NODE = -2;\nfunction genId() {\n return _id++;\n}\nfunction getValidTagName$1(element) {\n if (element instanceof HTMLFormElement) {\n return \"form\";\n }\n const processedTagName = toLowerCase(element.tagName);\n if (tagNameRegex.test(processedTagName)) {\n return \"div\";\n }\n return processedTagName;\n}\nlet canvasService;\nlet canvasCtx;\nconst SRCSET_NOT_SPACES = /^[^ \\t\\n\\r\\u000c]+/;\nconst SRCSET_COMMAS_OR_SPACES = /^[, \\t\\n\\r\\u000c]+/;\nfunction getAbsoluteSrcsetString(doc, attributeValue) {\n if (attributeValue.trim() === \"\") {\n return attributeValue;\n }\n let pos = 0;\n function collectCharacters(regEx) {\n let chars2;\n const match = regEx.exec(attributeValue.substring(pos));\n if (match) {\n chars2 = match[0];\n pos += chars2.length;\n return chars2;\n }\n return \"\";\n }\n const output = [];\n while (true) {\n collectCharacters(SRCSET_COMMAS_OR_SPACES);\n if (pos >= attributeValue.length) {\n break;\n }\n let url = collectCharacters(SRCSET_NOT_SPACES);\n if (url.slice(-1) === \",\") {\n url = absoluteToDoc(doc, url.substring(0, url.length - 1));\n output.push(url);\n } else {\n let descriptorsStr = \"\";\n url = absoluteToDoc(doc, url);\n let inParens = false;\n while (true) {\n const c2 = attributeValue.charAt(pos);\n if (c2 === \"\") {\n output.push((url + descriptorsStr).trim());\n break;\n } else if (!inParens) {\n if (c2 === \",\") {\n pos += 1;\n output.push((url + descriptorsStr).trim());\n break;\n } else if (c2 === \"(\") {\n inParens = true;\n }\n } else {\n if (c2 === \")\") {\n inParens = false;\n }\n }\n descriptorsStr += c2;\n pos += 1;\n }\n }\n }\n return output.join(\", \");\n}\nconst cachedDocument = /* @__PURE__ */ new WeakMap();\nfunction absoluteToDoc(doc, attributeValue) {\n if (!attributeValue || attributeValue.trim() === \"\") {\n return attributeValue;\n }\n return getHref(doc, attributeValue);\n}\nfunction isSVGElement(el) {\n return Boolean(el.tagName === \"svg\" || el.ownerSVGElement);\n}\nfunction getHref(doc, customHref) {\n let a2 = cachedDocument.get(doc);\n if (!a2) {\n a2 = doc.createElement(\"a\");\n cachedDocument.set(doc, a2);\n }\n if (!customHref) {\n customHref = \"\";\n } else if (customHref.startsWith(\"blob:\") || customHref.startsWith(\"data:\")) {\n return customHref;\n }\n a2.setAttribute(\"href\", customHref);\n return a2.href;\n}\nfunction transformAttribute(doc, tagName, name, value) {\n if (!value) {\n return value;\n }\n if (name === \"src\" || name === \"href\" && !(tagName === \"use\" && value[0] === \"#\")) {\n return absoluteToDoc(doc, value);\n } else if (name === \"xlink:href\" && value[0] !== \"#\") {\n return absoluteToDoc(doc, value);\n } else if (name === \"background\" && (tagName === \"table\" || tagName === \"td\" || tagName === \"th\")) {\n return absoluteToDoc(doc, value);\n } else if (name === \"srcset\") {\n return getAbsoluteSrcsetString(doc, value);\n } else if (name === \"style\") {\n return absolutifyURLs(value, getHref(doc));\n } else if (tagName === \"object\" && name === \"data\") {\n return absoluteToDoc(doc, value);\n }\n return value;\n}\nfunction ignoreAttribute(tagName, name, _value) {\n return (tagName === \"video\" || tagName === \"audio\") && name === \"autoplay\";\n}\nfunction _isBlockedElement(element, blockClass, blockSelector) {\n try {\n if (typeof blockClass === \"string\") {\n if (element.classList.contains(blockClass)) {\n return true;\n }\n } else {\n for (let eIndex = element.classList.length; eIndex--; ) {\n const className = element.classList[eIndex];\n if (blockClass.test(className)) {\n return true;\n }\n }\n }\n if (blockSelector) {\n return element.matches(blockSelector);\n }\n } catch (e2) {\n }\n return false;\n}\nfunction classMatchesRegex(node2, regex, checkAncestors) {\n if (!node2) return false;\n if (node2.nodeType !== node2.ELEMENT_NODE) {\n if (!checkAncestors) return false;\n return classMatchesRegex(index$1.parentNode(node2), regex, checkAncestors);\n }\n for (let eIndex = node2.classList.length; eIndex--; ) {\n const className = node2.classList[eIndex];\n if (regex.test(className)) {\n return true;\n }\n }\n if (!checkAncestors) return false;\n return classMatchesRegex(index$1.parentNode(node2), regex, checkAncestors);\n}\nfunction needMaskingText(node2, maskTextClass, maskTextSelector, checkAncestors) {\n let el;\n if (isElement(node2)) {\n el = node2;\n if (!index$1.childNodes(el).length) {\n return false;\n }\n } else if (index$1.parentElement(node2) === null) {\n return false;\n } else {\n el = index$1.parentElement(node2);\n }\n try {\n if (typeof maskTextClass === \"string\") {\n if (checkAncestors) {\n if (el.closest(`.${maskTextClass}`)) return true;\n } else {\n if (el.classList.contains(maskTextClass)) return true;\n }\n } else {\n if (classMatchesRegex(el, maskTextClass, checkAncestors)) return true;\n }\n if (maskTextSelector) {\n if (checkAncestors) {\n if (el.closest(maskTextSelector)) return true;\n } else {\n if (el.matches(maskTextSelector)) return true;\n }\n }\n } catch (e2) {\n }\n return false;\n}\nfunction onceIframeLoaded(iframeEl, listener, iframeLoadTimeout) {\n const win = iframeEl.contentWindow;\n if (!win) {\n return;\n }\n let fired = false;\n let readyState;\n try {\n readyState = win.document.readyState;\n } catch (error) {\n return;\n }\n if (readyState !== \"complete\") {\n const timer = setTimeout(() => {\n if (!fired) {\n listener();\n fired = true;\n }\n }, iframeLoadTimeout);\n iframeEl.addEventListener(\"load\", () => {\n clearTimeout(timer);\n fired = true;\n listener();\n });\n return;\n }\n const blankUrl = \"about:blank\";\n if (win.location.href !== blankUrl || iframeEl.src === blankUrl || iframeEl.src === \"\") {\n setTimeout(listener, 0);\n return iframeEl.addEventListener(\"load\", listener);\n }\n iframeEl.addEventListener(\"load\", listener);\n}\nfunction onceStylesheetLoaded(link, listener, styleSheetLoadTimeout) {\n let fired = false;\n let styleSheetLoaded;\n try {\n styleSheetLoaded = link.sheet;\n } catch (error) {\n return;\n }\n if (styleSheetLoaded) return;\n const timer = setTimeout(() => {\n if (!fired) {\n listener();\n fired = true;\n }\n }, styleSheetLoadTimeout);\n link.addEventListener(\"load\", () => {\n clearTimeout(timer);\n fired = true;\n listener();\n });\n}\nfunction serializeNode(n2, options) {\n const {\n doc,\n mirror: mirror2,\n blockClass,\n blockSelector,\n needsMask,\n inlineStylesheet,\n maskInputOptions = {},\n maskTextFn,\n maskInputFn,\n dataURLOptions = {},\n inlineImages,\n recordCanvas,\n keepIframeSrcFn,\n newlyAddedElement = false,\n cssCaptured = false\n } = options;\n const rootId = getRootId(doc, mirror2);\n switch (n2.nodeType) {\n case n2.DOCUMENT_NODE:\n if (n2.compatMode !== \"CSS1Compat\") {\n return {\n type: NodeType$3.Document,\n childNodes: [],\n compatMode: n2.compatMode\n // probably \"BackCompat\"\n };\n } else {\n return {\n type: NodeType$3.Document,\n childNodes: []\n };\n }\n case n2.DOCUMENT_TYPE_NODE:\n return {\n type: NodeType$3.DocumentType,\n name: n2.name,\n publicId: n2.publicId,\n systemId: n2.systemId,\n rootId\n };\n case n2.ELEMENT_NODE:\n return serializeElementNode(n2, {\n doc,\n blockClass,\n blockSelector,\n inlineStylesheet,\n maskInputOptions,\n maskInputFn,\n dataURLOptions,\n inlineImages,\n recordCanvas,\n keepIframeSrcFn,\n newlyAddedElement,\n rootId\n });\n case n2.TEXT_NODE:\n return serializeTextNode(n2, {\n doc,\n needsMask,\n maskTextFn,\n rootId,\n cssCaptured\n });\n case n2.CDATA_SECTION_NODE:\n return {\n type: NodeType$3.CDATA,\n textContent: \"\",\n rootId\n };\n case n2.COMMENT_NODE:\n return {\n type: NodeType$3.Comment,\n textContent: index$1.textContent(n2) || \"\",\n rootId\n };\n default:\n return false;\n }\n}\nfunction getRootId(doc, mirror2) {\n if (!mirror2.hasNode(doc)) return void 0;\n const docId = mirror2.getId(doc);\n return docId === 1 ? void 0 : docId;\n}\nfunction serializeTextNode(n2, options) {\n const { needsMask, maskTextFn, rootId, cssCaptured } = options;\n const parent = index$1.parentNode(n2);\n const parentTagName = parent && parent.tagName;\n let textContent2 = \"\";\n const isStyle = parentTagName === \"STYLE\" ? true : void 0;\n const isScript = parentTagName === \"SCRIPT\" ? true : void 0;\n if (isScript) {\n textContent2 = \"SCRIPT_PLACEHOLDER\";\n } else if (!cssCaptured) {\n textContent2 = index$1.textContent(n2);\n if (isStyle && textContent2) {\n textContent2 = absolutifyURLs(textContent2, getHref(options.doc));\n }\n }\n if (!isStyle && !isScript && textContent2 && needsMask) {\n textContent2 = maskTextFn ? maskTextFn(textContent2, index$1.parentElement(n2)) : textContent2.replace(/[\\S]/g, \"*\");\n }\n return {\n type: NodeType$3.Text,\n textContent: textContent2 || \"\",\n rootId\n };\n}\nfunction serializeElementNode(n2, options) {\n const {\n doc,\n blockClass,\n blockSelector,\n inlineStylesheet,\n maskInputOptions = {},\n maskInputFn,\n dataURLOptions = {},\n inlineImages,\n recordCanvas,\n keepIframeSrcFn,\n newlyAddedElement = false,\n rootId\n } = options;\n const needBlock = _isBlockedElement(n2, blockClass, blockSelector);\n const tagName = getValidTagName$1(n2);\n let attributes = {};\n const len = n2.attributes.length;\n for (let i2 = 0; i2 < len; i2++) {\n const attr = n2.attributes[i2];\n if (!ignoreAttribute(tagName, attr.name, attr.value)) {\n attributes[attr.name] = transformAttribute(\n doc,\n tagName,\n toLowerCase(attr.name),\n attr.value\n );\n }\n }\n if (tagName === \"link\" && inlineStylesheet) {\n const stylesheet = Array.from(doc.styleSheets).find((s2) => {\n return s2.href === n2.href;\n });\n let cssText = null;\n if (stylesheet) {\n cssText = stringifyStylesheet(stylesheet);\n }\n if (cssText) {\n delete attributes.rel;\n delete attributes.href;\n attributes._cssText = cssText;\n }\n }\n if (tagName === \"style\" && n2.sheet) {\n let cssText = stringifyStylesheet(\n n2.sheet\n );\n if (cssText) {\n if (n2.childNodes.length > 1) {\n cssText = markCssSplits(cssText, n2);\n }\n attributes._cssText = cssText;\n }\n }\n if (tagName === \"input\" || tagName === \"textarea\" || tagName === \"select\") {\n const value = n2.value;\n const checked = n2.checked;\n if (attributes.type !== \"radio\" && attributes.type !== \"checkbox\" && attributes.type !== \"submit\" && attributes.type !== \"button\" && value) {\n attributes.value = maskInputValue({\n element: n2,\n type: getInputType(n2),\n tagName,\n value,\n maskInputOptions,\n maskInputFn\n });\n } else if (checked) {\n attributes.checked = checked;\n }\n }\n if (tagName === \"option\") {\n if (n2.selected && !maskInputOptions[\"select\"]) {\n attributes.selected = true;\n } else {\n delete attributes.selected;\n }\n }\n if (tagName === \"dialog\" && n2.open) {\n attributes.rr_open_mode = n2.matches(\"dialog:modal\") ? \"modal\" : \"non-modal\";\n }\n if (tagName === \"canvas\" && recordCanvas) {\n if (n2.__context === \"2d\") {\n if (!is2DCanvasBlank(n2)) {\n attributes.rr_dataURL = n2.toDataURL(\n dataURLOptions.type,\n dataURLOptions.quality\n );\n }\n } else if (!(\"__context\" in n2)) {\n const canvasDataURL = n2.toDataURL(\n dataURLOptions.type,\n dataURLOptions.quality\n );\n const blankCanvas = doc.createElement(\"canvas\");\n blankCanvas.width = n2.width;\n blankCanvas.height = n2.height;\n const blankCanvasDataURL = blankCanvas.toDataURL(\n dataURLOptions.type,\n dataURLOptions.quality\n );\n if (canvasDataURL !== blankCanvasDataURL) {\n attributes.rr_dataURL = canvasDataURL;\n }\n }\n }\n if (tagName === \"img\" && inlineImages) {\n if (!canvasService) {\n canvasService = doc.createElement(\"canvas\");\n canvasCtx = canvasService.getContext(\"2d\");\n }\n const image = n2;\n const imageSrc = image.currentSrc || image.getAttribute(\"src\") || \"\";\n const priorCrossOrigin = image.crossOrigin;\n const recordInlineImage = () => {\n image.removeEventListener(\"load\", recordInlineImage);\n try {\n canvasService.width = image.naturalWidth;\n canvasService.height = image.naturalHeight;\n canvasCtx.drawImage(image, 0, 0);\n attributes.rr_dataURL = canvasService.toDataURL(\n dataURLOptions.type,\n dataURLOptions.quality\n );\n } catch (err) {\n if (image.crossOrigin !== \"anonymous\") {\n image.crossOrigin = \"anonymous\";\n if (image.complete && image.naturalWidth !== 0)\n recordInlineImage();\n else image.addEventListener(\"load\", recordInlineImage);\n return;\n } else {\n console.warn(\n `Cannot inline img src=${imageSrc}! Error: ${err}`\n );\n }\n }\n if (image.crossOrigin === \"anonymous\") {\n priorCrossOrigin ? attributes.crossOrigin = priorCrossOrigin : image.removeAttribute(\"crossorigin\");\n }\n };\n if (image.complete && image.naturalWidth !== 0) recordInlineImage();\n else image.addEventListener(\"load\", recordInlineImage);\n }\n if (tagName === \"audio\" || tagName === \"video\") {\n const mediaAttributes = attributes;\n mediaAttributes.rr_mediaState = n2.paused ? \"paused\" : \"played\";\n mediaAttributes.rr_mediaCurrentTime = n2.currentTime;\n mediaAttributes.rr_mediaPlaybackRate = n2.playbackRate;\n mediaAttributes.rr_mediaMuted = n2.muted;\n mediaAttributes.rr_mediaLoop = n2.loop;\n mediaAttributes.rr_mediaVolume = n2.volume;\n }\n if (!newlyAddedElement) {\n if (n2.scrollLeft) {\n attributes.rr_scrollLeft = n2.scrollLeft;\n }\n if (n2.scrollTop) {\n attributes.rr_scrollTop = n2.scrollTop;\n }\n }\n if (needBlock) {\n const { width, height } = n2.getBoundingClientRect();\n attributes = {\n class: attributes.class,\n rr_width: `${width}px`,\n rr_height: `${height}px`\n };\n }\n if (tagName === \"iframe\" && !keepIframeSrcFn(attributes.src)) {\n if (!n2.contentDocument) {\n attributes.rr_src = attributes.src;\n }\n delete attributes.src;\n }\n let isCustomElement;\n try {\n if (customElements.get(tagName)) isCustomElement = true;\n } catch (e2) {\n }\n return {\n type: NodeType$3.Element,\n tagName,\n attributes,\n childNodes: [],\n isSVG: isSVGElement(n2) || void 0,\n needBlock,\n rootId,\n isCustom: isCustomElement\n };\n}\nfunction lowerIfExists(maybeAttr) {\n if (maybeAttr === void 0 || maybeAttr === null) {\n return \"\";\n } else {\n return maybeAttr.toLowerCase();\n }\n}\nfunction slimDOMExcluded(sn, slimDOMOptions) {\n if (slimDOMOptions.comment && sn.type === NodeType$3.Comment) {\n return true;\n } else if (sn.type === NodeType$3.Element) {\n if (slimDOMOptions.script && // script tag\n (sn.tagName === \"script\" || // (module)preload link\n sn.tagName === \"link\" && (sn.attributes.rel === \"preload\" || sn.attributes.rel === \"modulepreload\") && sn.attributes.as === \"script\" || // prefetch link\n sn.tagName === \"link\" && sn.attributes.rel === \"prefetch\" && typeof sn.attributes.href === \"string\" && extractFileExtension(sn.attributes.href) === \"js\")) {\n return true;\n } else if (slimDOMOptions.headFavicon && (sn.tagName === \"link\" && sn.attributes.rel === \"shortcut icon\" || sn.tagName === \"meta\" && (lowerIfExists(sn.attributes.name).match(\n /^msapplication-tile(image|color)$/\n ) || lowerIfExists(sn.attributes.name) === \"application-name\" || lowerIfExists(sn.attributes.rel) === \"icon\" || lowerIfExists(sn.attributes.rel) === \"apple-touch-icon\" || lowerIfExists(sn.attributes.rel) === \"shortcut icon\"))) {\n return true;\n } else if (sn.tagName === \"meta\") {\n if (slimDOMOptions.headMetaDescKeywords && lowerIfExists(sn.attributes.name).match(/^description|keywords$/)) {\n return true;\n } else if (slimDOMOptions.headMetaSocial && (lowerIfExists(sn.attributes.property).match(/^(og|twitter|fb):/) || // og = opengraph (facebook)\n lowerIfExists(sn.attributes.name).match(/^(og|twitter):/) || lowerIfExists(sn.attributes.name) === \"pinterest\")) {\n return true;\n } else if (slimDOMOptions.headMetaRobots && (lowerIfExists(sn.attributes.name) === \"robots\" || lowerIfExists(sn.attributes.name) === \"googlebot\" || lowerIfExists(sn.attributes.name) === \"bingbot\")) {\n return true;\n } else if (slimDOMOptions.headMetaHttpEquiv && sn.attributes[\"http-equiv\"] !== void 0) {\n return true;\n } else if (slimDOMOptions.headMetaAuthorship && (lowerIfExists(sn.attributes.name) === \"author\" || lowerIfExists(sn.attributes.name) === \"generator\" || lowerIfExists(sn.attributes.name) === \"framework\" || lowerIfExists(sn.attributes.name) === \"publisher\" || lowerIfExists(sn.attributes.name) === \"progid\" || lowerIfExists(sn.attributes.property).match(/^article:/) || lowerIfExists(sn.attributes.property).match(/^product:/))) {\n return true;\n } else if (slimDOMOptions.headMetaVerification && (lowerIfExists(sn.attributes.name) === \"google-site-verification\" || lowerIfExists(sn.attributes.name) === \"yandex-verification\" || lowerIfExists(sn.attributes.name) === \"csrf-token\" || lowerIfExists(sn.attributes.name) === \"p:domain_verify\" || lowerIfExists(sn.attributes.name) === \"verify-v1\" || lowerIfExists(sn.attributes.name) === \"verification\" || lowerIfExists(sn.attributes.name) === \"shopify-checkout-api-token\")) {\n return true;\n }\n }\n }\n return false;\n}\nfunction serializeNodeWithId(n2, options) {\n const {\n doc,\n mirror: mirror2,\n blockClass,\n blockSelector,\n maskTextClass,\n maskTextSelector,\n skipChild = false,\n inlineStylesheet = true,\n maskInputOptions = {},\n maskTextFn,\n maskInputFn,\n slimDOMOptions,\n dataURLOptions = {},\n inlineImages = false,\n recordCanvas = false,\n onSerialize,\n onIframeLoad,\n iframeLoadTimeout = 5e3,\n onStylesheetLoad,\n stylesheetLoadTimeout = 5e3,\n keepIframeSrcFn = () => false,\n newlyAddedElement = false,\n cssCaptured = false\n } = options;\n let { needsMask } = options;\n let { preserveWhiteSpace = true } = options;\n if (!needsMask) {\n const checkAncestors = needsMask === void 0;\n needsMask = needMaskingText(\n n2,\n maskTextClass,\n maskTextSelector,\n checkAncestors\n );\n }\n const _serializedNode = serializeNode(n2, {\n doc,\n mirror: mirror2,\n blockClass,\n blockSelector,\n needsMask,\n inlineStylesheet,\n maskInputOptions,\n maskTextFn,\n maskInputFn,\n dataURLOptions,\n inlineImages,\n recordCanvas,\n keepIframeSrcFn,\n newlyAddedElement,\n cssCaptured\n });\n if (!_serializedNode) {\n console.warn(n2, \"not serialized\");\n return null;\n }\n let id;\n if (mirror2.hasNode(n2)) {\n id = mirror2.getId(n2);\n } else if (slimDOMExcluded(_serializedNode, slimDOMOptions) || !preserveWhiteSpace && _serializedNode.type === NodeType$3.Text && !_serializedNode.textContent.replace(/^\\s+|\\s+$/gm, \"\").length) {\n id = IGNORED_NODE;\n } else {\n id = genId();\n }\n const serializedNode = Object.assign(_serializedNode, { id });\n mirror2.add(n2, serializedNode);\n if (id === IGNORED_NODE) {\n return null;\n }\n if (onSerialize) {\n onSerialize(n2);\n }\n let recordChild = !skipChild;\n if (serializedNode.type === NodeType$3.Element) {\n recordChild = recordChild && !serializedNode.needBlock;\n delete serializedNode.needBlock;\n const shadowRootEl = index$1.shadowRoot(n2);\n if (shadowRootEl && isNativeShadowDom(shadowRootEl))\n serializedNode.isShadowHost = true;\n }\n if ((serializedNode.type === NodeType$3.Document || serializedNode.type === NodeType$3.Element) && recordChild) {\n if (slimDOMOptions.headWhitespace && serializedNode.type === NodeType$3.Element && serializedNode.tagName === \"head\") {\n preserveWhiteSpace = false;\n }\n const bypassOptions = {\n doc,\n mirror: mirror2,\n blockClass,\n blockSelector,\n needsMask,\n maskTextClass,\n maskTextSelector,\n skipChild,\n inlineStylesheet,\n maskInputOptions,\n maskTextFn,\n maskInputFn,\n slimDOMOptions,\n dataURLOptions,\n inlineImages,\n recordCanvas,\n preserveWhiteSpace,\n onSerialize,\n onIframeLoad,\n iframeLoadTimeout,\n onStylesheetLoad,\n stylesheetLoadTimeout,\n keepIframeSrcFn,\n cssCaptured: false\n };\n if (serializedNode.type === NodeType$3.Element && serializedNode.tagName === \"textarea\" && serializedNode.attributes.value !== void 0) ;\n else {\n if (serializedNode.type === NodeType$3.Element && serializedNode.attributes._cssText !== void 0 && typeof serializedNode.attributes._cssText === \"string\") {\n bypassOptions.cssCaptured = true;\n }\n for (const childN of Array.from(index$1.childNodes(n2))) {\n const serializedChildNode = serializeNodeWithId(childN, bypassOptions);\n if (serializedChildNode) {\n serializedNode.childNodes.push(serializedChildNode);\n }\n }\n }\n let shadowRootEl = null;\n if (isElement(n2) && (shadowRootEl = index$1.shadowRoot(n2))) {\n for (const childN of Array.from(index$1.childNodes(shadowRootEl))) {\n const serializedChildNode = serializeNodeWithId(childN, bypassOptions);\n if (serializedChildNode) {\n isNativeShadowDom(shadowRootEl) && (serializedChildNode.isShadow = true);\n serializedNode.childNodes.push(serializedChildNode);\n }\n }\n }\n }\n const parent = index$1.parentNode(n2);\n if (parent && isShadowRoot(parent) && isNativeShadowDom(parent)) {\n serializedNode.isShadow = true;\n }\n if (serializedNode.type === NodeType$3.Element && serializedNode.tagName === \"iframe\") {\n onceIframeLoaded(\n n2,\n () => {\n const iframeDoc = n2.contentDocument;\n if (iframeDoc && onIframeLoad) {\n const serializedIframeNode = serializeNodeWithId(iframeDoc, {\n doc: iframeDoc,\n mirror: mirror2,\n blockClass,\n blockSelector,\n needsMask,\n maskTextClass,\n maskTextSelector,\n skipChild: false,\n inlineStylesheet,\n maskInputOptions,\n maskTextFn,\n maskInputFn,\n slimDOMOptions,\n dataURLOptions,\n inlineImages,\n recordCanvas,\n preserveWhiteSpace,\n onSerialize,\n onIframeLoad,\n iframeLoadTimeout,\n onStylesheetLoad,\n stylesheetLoadTimeout,\n keepIframeSrcFn\n });\n if (serializedIframeNode) {\n onIframeLoad(\n n2,\n serializedIframeNode\n );\n }\n }\n },\n iframeLoadTimeout\n );\n }\n if (serializedNode.type === NodeType$3.Element && serializedNode.tagName === \"link\" && typeof serializedNode.attributes.rel === \"string\" && (serializedNode.attributes.rel === \"stylesheet\" || serializedNode.attributes.rel === \"preload\" && typeof serializedNode.attributes.href === \"string\" && extractFileExtension(serializedNode.attributes.href) === \"css\")) {\n onceStylesheetLoaded(\n n2,\n () => {\n if (onStylesheetLoad) {\n const serializedLinkNode = serializeNodeWithId(n2, {\n doc,\n mirror: mirror2,\n blockClass,\n blockSelector,\n needsMask,\n maskTextClass,\n maskTextSelector,\n skipChild: false,\n inlineStylesheet,\n maskInputOptions,\n maskTextFn,\n maskInputFn,\n slimDOMOptions,\n dataURLOptions,\n inlineImages,\n recordCanvas,\n preserveWhiteSpace,\n onSerialize,\n onIframeLoad,\n iframeLoadTimeout,\n onStylesheetLoad,\n stylesheetLoadTimeout,\n keepIframeSrcFn\n });\n if (serializedLinkNode) {\n onStylesheetLoad(\n n2,\n serializedLinkNode\n );\n }\n }\n },\n stylesheetLoadTimeout\n );\n }\n return serializedNode;\n}\nfunction snapshot(n2, options) {\n const {\n mirror: mirror2 = new Mirror(),\n blockClass = \"rr-block\",\n blockSelector = null,\n maskTextClass = \"rr-mask\",\n maskTextSelector = null,\n inlineStylesheet = true,\n inlineImages = false,\n recordCanvas = false,\n maskAllInputs = false,\n maskTextFn,\n maskInputFn,\n slimDOM = false,\n dataURLOptions,\n preserveWhiteSpace,\n onSerialize,\n onIframeLoad,\n iframeLoadTimeout,\n onStylesheetLoad,\n stylesheetLoadTimeout,\n keepIframeSrcFn = () => false\n } = options || {};\n const maskInputOptions = maskAllInputs === true ? {\n color: true,\n date: true,\n \"datetime-local\": true,\n email: true,\n month: true,\n number: true,\n range: true,\n search: true,\n tel: true,\n text: true,\n time: true,\n url: true,\n week: true,\n textarea: true,\n select: true,\n password: true\n } : maskAllInputs === false ? {\n password: true\n } : maskAllInputs;\n const slimDOMOptions = slimDOM === true || slimDOM === \"all\" ? (\n // if true: set of sensible options that should not throw away any information\n {\n script: true,\n comment: true,\n headFavicon: true,\n headWhitespace: true,\n headMetaDescKeywords: slimDOM === \"all\",\n // destructive\n headMetaSocial: true,\n headMetaRobots: true,\n headMetaHttpEquiv: true,\n headMetaAuthorship: true,\n headMetaVerification: true\n }\n ) : slimDOM === false ? {} : slimDOM;\n return serializeNodeWithId(n2, {\n doc: n2,\n mirror: mirror2,\n blockClass,\n blockSelector,\n maskTextClass,\n maskTextSelector,\n skipChild: false,\n inlineStylesheet,\n maskInputOptions,\n maskTextFn,\n maskInputFn,\n slimDOMOptions,\n dataURLOptions,\n inlineImages,\n recordCanvas,\n preserveWhiteSpace,\n onSerialize,\n onIframeLoad,\n iframeLoadTimeout,\n onStylesheetLoad,\n stylesheetLoadTimeout,\n keepIframeSrcFn,\n newlyAddedElement: false\n });\n}\nconst MEDIA_SELECTOR = /(max|min)-device-(width|height)/;\nconst MEDIA_SELECTOR_GLOBAL = new RegExp(MEDIA_SELECTOR.source, \"g\");\nconst mediaSelectorPlugin = {\n postcssPlugin: \"postcss-custom-selectors\",\n prepare() {\n return {\n postcssPlugin: \"postcss-custom-selectors\",\n AtRule: function(atrule) {\n if (atrule.params.match(MEDIA_SELECTOR_GLOBAL)) {\n atrule.params = atrule.params.replace(MEDIA_SELECTOR_GLOBAL, \"$1-$2\");\n }\n }\n };\n }\n};\nconst pseudoClassPlugin = {\n postcssPlugin: \"postcss-hover-classes\",\n prepare: function() {\n const fixed = [];\n return {\n Rule: function(rule2) {\n if (fixed.indexOf(rule2) !== -1) {\n return;\n }\n fixed.push(rule2);\n rule2.selectors.forEach(function(selector) {\n if (selector.includes(\":hover\")) {\n rule2.selector += \",\\n\" + selector.replace(/:hover/g, \".\\\\:hover\");\n }\n });\n }\n };\n }\n};\nfunction getDefaultExportFromCjs$1(x2) {\n return x2 && x2.__esModule && Object.prototype.hasOwnProperty.call(x2, \"default\") ? x2[\"default\"] : x2;\n}\nfunction getAugmentedNamespace$1(n2) {\n if (n2.__esModule) return n2;\n var f2 = n2.default;\n if (typeof f2 == \"function\") {\n var a2 = function a22() {\n if (this instanceof a22) {\n return Reflect.construct(f2, arguments, this.constructor);\n }\n return f2.apply(this, arguments);\n };\n a2.prototype = f2.prototype;\n } else a2 = {};\n Object.defineProperty(a2, \"__esModule\", { value: true });\n Object.keys(n2).forEach(function(k) {\n var d = Object.getOwnPropertyDescriptor(n2, k);\n Object.defineProperty(a2, k, d.get ? d : {\n enumerable: true,\n get: function() {\n return n2[k];\n }\n });\n });\n return a2;\n}\nvar picocolors_browser$1 = { exports: {} };\nvar x$1 = String;\nvar create$1 = function() {\n return { isColorSupported: false, reset: x$1, bold: x$1, dim: x$1, italic: x$1, underline: x$1, inverse: x$1, hidden: x$1, strikethrough: x$1, black: x$1, red: x$1, green: x$1, yellow: x$1, blue: x$1, magenta: x$1, cyan: x$1, white: x$1, gray: x$1, bgBlack: x$1, bgRed: x$1, bgGreen: x$1, bgYellow: x$1, bgBlue: x$1, bgMagenta: x$1, bgCyan: x$1, bgWhite: x$1 };\n};\npicocolors_browser$1.exports = create$1();\npicocolors_browser$1.exports.createColors = create$1;\nvar picocolors_browserExports$1 = picocolors_browser$1.exports;\nconst __viteBrowserExternal$2 = {};\nconst __viteBrowserExternal$1$1 = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({\n __proto__: null,\n default: __viteBrowserExternal$2\n}, Symbol.toStringTag, { value: \"Module\" }));\nconst require$$2$1 = /* @__PURE__ */ getAugmentedNamespace$1(__viteBrowserExternal$1$1);\nlet pico$1 = picocolors_browserExports$1;\nlet terminalHighlight$1$1 = require$$2$1;\nlet CssSyntaxError$3$1 = class CssSyntaxError extends Error {\n constructor(message, line, column, source, file, plugin22) {\n super(message);\n this.name = \"CssSyntaxError\";\n this.reason = message;\n if (file) {\n this.file = file;\n }\n if (source) {\n this.source = source;\n }\n if (plugin22) {\n this.plugin = plugin22;\n }\n if (typeof line !== \"undefined\" && typeof column !== \"undefined\") {\n if (typeof line === \"number\") {\n this.line = line;\n this.column = column;\n } else {\n this.line = line.line;\n this.column = line.column;\n this.endLine = column.line;\n this.endColumn = column.column;\n }\n }\n this.setMessage();\n if (Error.captureStackTrace) {\n Error.captureStackTrace(this, CssSyntaxError);\n }\n }\n setMessage() {\n this.message = this.plugin ? this.plugin + \": \" : \"\";\n this.message += this.file ? this.file : \"\";\n if (typeof this.line !== \"undefined\") {\n this.message += \":\" + this.line + \":\" + this.column;\n }\n this.message += \": \" + this.reason;\n }\n showSourceCode(color) {\n if (!this.source) return \"\";\n let css = this.source;\n if (color == null) color = pico$1.isColorSupported;\n if (terminalHighlight$1$1) {\n if (color) css = terminalHighlight$1$1(css);\n }\n let lines = css.split(/\\r?\\n/);\n let start = Math.max(this.line - 3, 0);\n let end = Math.min(this.line + 2, lines.length);\n let maxWidth = String(end).length;\n let mark, aside;\n if (color) {\n let { bold, gray, red } = pico$1.createColors(true);\n mark = (text) => bold(red(text));\n aside = (text) => gray(text);\n } else {\n mark = aside = (str) => str;\n }\n return lines.slice(start, end).map((line, index2) => {\n let number = start + 1 + index2;\n let gutter = \" \" + (\" \" + number).slice(-maxWidth) + \" | \";\n if (number === this.line) {\n let spacing = aside(gutter.replace(/\\d/g, \" \")) + line.slice(0, this.column - 1).replace(/[^\\t]/g, \" \");\n return mark(\">\") + aside(gutter) + line + \"\\n \" + spacing + mark(\"^\");\n }\n return \" \" + aside(gutter) + line;\n }).join(\"\\n\");\n }\n toString() {\n let code = this.showSourceCode();\n if (code) {\n code = \"\\n\\n\" + code + \"\\n\";\n }\n return this.name + \": \" + this.message + code;\n }\n};\nvar cssSyntaxError$1 = CssSyntaxError$3$1;\nCssSyntaxError$3$1.default = CssSyntaxError$3$1;\nvar symbols$1 = {};\nsymbols$1.isClean = Symbol(\"isClean\");\nsymbols$1.my = Symbol(\"my\");\nconst DEFAULT_RAW$1 = {\n after: \"\\n\",\n beforeClose: \"\\n\",\n beforeComment: \"\\n\",\n beforeDecl: \"\\n\",\n beforeOpen: \" \",\n beforeRule: \"\\n\",\n colon: \": \",\n commentLeft: \" \",\n commentRight: \" \",\n emptyBody: \"\",\n indent: \" \",\n semicolon: false\n};\nfunction capitalize$1(str) {\n return str[0].toUpperCase() + str.slice(1);\n}\nlet Stringifier$2$1 = class Stringifier {\n constructor(builder) {\n this.builder = builder;\n }\n atrule(node2, semicolon) {\n let name = \"@\" + node2.name;\n let params = node2.params ? this.rawValue(node2, \"params\") : \"\";\n if (typeof node2.raws.afterName !== \"undefined\") {\n name += node2.raws.afterName;\n } else if (params) {\n name += \" \";\n }\n if (node2.nodes) {\n this.block(node2, name + params);\n } else {\n let end = (node2.raws.between || \"\") + (semicolon ? \";\" : \"\");\n this.builder(name + params + end, node2);\n }\n }\n beforeAfter(node2, detect) {\n let value;\n if (node2.type === \"decl\") {\n value = this.raw(node2, null, \"beforeDecl\");\n } else if (node2.type === \"comment\") {\n value = this.raw(node2, null, \"beforeComment\");\n } else if (detect === \"before\") {\n value = this.raw(node2, null, \"beforeRule\");\n } else {\n value = this.raw(node2, null, \"beforeClose\");\n }\n let buf = node2.parent;\n let depth = 0;\n while (buf && buf.type !== \"root\") {\n depth += 1;\n buf = buf.parent;\n }\n if (value.includes(\"\\n\")) {\n let indent = this.raw(node2, null, \"indent\");\n if (indent.length) {\n for (let step = 0; step < depth; step++) value += indent;\n }\n }\n return value;\n }\n block(node2, start) {\n let between = this.raw(node2, \"between\", \"beforeOpen\");\n this.builder(start + between + \"{\", node2, \"start\");\n let after;\n if (node2.nodes && node2.nodes.length) {\n this.body(node2);\n after = this.raw(node2, \"after\");\n } else {\n after = this.raw(node2, \"after\", \"emptyBody\");\n }\n if (after) this.builder(after);\n this.builder(\"}\", node2, \"end\");\n }\n body(node2) {\n let last = node2.nodes.length - 1;\n while (last > 0) {\n if (node2.nodes[last].type !== \"comment\") break;\n last -= 1;\n }\n let semicolon = this.raw(node2, \"semicolon\");\n for (let i2 = 0; i2 < node2.nodes.length; i2++) {\n let child = node2.nodes[i2];\n let before = this.raw(child, \"before\");\n if (before) this.builder(before);\n this.stringify(child, last !== i2 || semicolon);\n }\n }\n comment(node2) {\n let left = this.raw(node2, \"left\", \"commentLeft\");\n let right = this.raw(node2, \"right\", \"commentRight\");\n this.builder(\"/*\" + left + node2.text + right + \"*/\", node2);\n }\n decl(node2, semicolon) {\n let between = this.raw(node2, \"between\", \"colon\");\n let string = node2.prop + between + this.rawValue(node2, \"value\");\n if (node2.important) {\n string += node2.raws.important || \" !important\";\n }\n if (semicolon) string += \";\";\n this.builder(string, node2);\n }\n document(node2) {\n this.body(node2);\n }\n raw(node2, own, detect) {\n let value;\n if (!detect) detect = own;\n if (own) {\n value = node2.raws[own];\n if (typeof value !== \"undefined\") return value;\n }\n let parent = node2.parent;\n if (detect === \"before\") {\n if (!parent || parent.type === \"root\" && parent.first === node2) {\n return \"\";\n }\n if (parent && parent.type === \"document\") {\n return \"\";\n }\n }\n if (!parent) return DEFAULT_RAW$1[detect];\n let root2 = node2.root();\n if (!root2.rawCache) root2.rawCache = {};\n if (typeof root2.rawCache[detect] !== \"undefined\") {\n return root2.rawCache[detect];\n }\n if (detect === \"before\" || detect === \"after\") {\n return this.beforeAfter(node2, detect);\n } else {\n let method = \"raw\" + capitalize$1(detect);\n if (this[method]) {\n value = this[method](root2, node2);\n } else {\n root2.walk((i2) => {\n value = i2.raws[own];\n if (typeof value !== \"undefined\") return false;\n });\n }\n }\n if (typeof value === \"undefined\") value = DEFAULT_RAW$1[detect];\n root2.rawCache[detect] = value;\n return value;\n }\n rawBeforeClose(root2) {\n let value;\n root2.walk((i2) => {\n if (i2.nodes && i2.nodes.length > 0) {\n if (typeof i2.raws.after !== \"undefined\") {\n value = i2.raws.after;\n if (value.includes(\"\\n\")) {\n value = value.replace(/[^\\n]+$/, \"\");\n }\n return false;\n }\n }\n });\n if (value) value = value.replace(/\\S/g, \"\");\n return value;\n }\n rawBeforeComment(root2, node2) {\n let value;\n root2.walkComments((i2) => {\n if (typeof i2.raws.before !== \"undefined\") {\n value = i2.raws.before;\n if (value.includes(\"\\n\")) {\n value = value.replace(/[^\\n]+$/, \"\");\n }\n return false;\n }\n });\n if (typeof value === \"undefined\") {\n value = this.raw(node2, null, \"beforeDecl\");\n } else if (value) {\n value = value.replace(/\\S/g, \"\");\n }\n return value;\n }\n rawBeforeDecl(root2, node2) {\n let value;\n root2.walkDecls((i2) => {\n if (typeof i2.raws.before !== \"undefined\") {\n value = i2.raws.before;\n if (value.includes(\"\\n\")) {\n value = value.replace(/[^\\n]+$/, \"\");\n }\n return false;\n }\n });\n if (typeof value === \"undefined\") {\n value = this.raw(node2, null, \"beforeRule\");\n } else if (value) {\n value = value.replace(/\\S/g, \"\");\n }\n return value;\n }\n rawBeforeOpen(root2) {\n let value;\n root2.walk((i2) => {\n if (i2.type !== \"decl\") {\n value = i2.raws.between;\n if (typeof value !== \"undefined\") return false;\n }\n });\n return value;\n }\n rawBeforeRule(root2) {\n let value;\n root2.walk((i2) => {\n if (i2.nodes && (i2.parent !== root2 || root2.first !== i2)) {\n if (typeof i2.raws.before !== \"undefined\") {\n value = i2.raws.before;\n if (value.includes(\"\\n\")) {\n value = value.replace(/[^\\n]+$/, \"\");\n }\n return false;\n }\n }\n });\n if (value) value = value.replace(/\\S/g, \"\");\n return value;\n }\n rawColon(root2) {\n let value;\n root2.walkDecls((i2) => {\n if (typeof i2.raws.between !== \"undefined\") {\n value = i2.raws.between.replace(/[^\\s:]/g, \"\");\n return false;\n }\n });\n return value;\n }\n rawEmptyBody(root2) {\n let value;\n root2.walk((i2) => {\n if (i2.nodes && i2.nodes.length === 0) {\n value = i2.raws.after;\n if (typeof value !== \"undefined\") return false;\n }\n });\n return value;\n }\n rawIndent(root2) {\n if (root2.raws.indent) return root2.raws.indent;\n let value;\n root2.walk((i2) => {\n let p = i2.parent;\n if (p && p !== root2 && p.parent && p.parent === root2) {\n if (typeof i2.raws.before !== \"undefined\") {\n let parts = i2.raws.before.split(\"\\n\");\n value = parts[parts.length - 1];\n value = value.replace(/\\S/g, \"\");\n return false;\n }\n }\n });\n return value;\n }\n rawSemicolon(root2) {\n let value;\n root2.walk((i2) => {\n if (i2.nodes && i2.nodes.length && i2.last.type === \"decl\") {\n value = i2.raws.semicolon;\n if (typeof value !== \"undefined\") return false;\n }\n });\n return value;\n }\n rawValue(node2, prop) {\n let value = node2[prop];\n let raw = node2.raws[prop];\n if (raw && raw.value === value) {\n return raw.raw;\n }\n return value;\n }\n root(node2) {\n this.body(node2);\n if (node2.raws.after) this.builder(node2.raws.after);\n }\n rule(node2) {\n this.block(node2, this.rawValue(node2, \"selector\"));\n if (node2.raws.ownSemicolon) {\n this.builder(node2.raws.ownSemicolon, node2, \"end\");\n }\n }\n stringify(node2, semicolon) {\n if (!this[node2.type]) {\n throw new Error(\n \"Unknown AST node type \" + node2.type + \". Maybe you need to change PostCSS stringifier.\"\n );\n }\n this[node2.type](node2, semicolon);\n }\n};\nvar stringifier$1 = Stringifier$2$1;\nStringifier$2$1.default = Stringifier$2$1;\nlet Stringifier$1$1 = stringifier$1;\nfunction stringify$4$1(node2, builder) {\n let str = new Stringifier$1$1(builder);\n str.stringify(node2);\n}\nvar stringify_1$1 = stringify$4$1;\nstringify$4$1.default = stringify$4$1;\nlet { isClean: isClean$2$1, my: my$2$1 } = symbols$1;\nlet CssSyntaxError$2$1 = cssSyntaxError$1;\nlet Stringifier2$1 = stringifier$1;\nlet stringify$3$1 = stringify_1$1;\nfunction cloneNode$1(obj, parent) {\n let cloned = new obj.constructor();\n for (let i2 in obj) {\n if (!Object.prototype.hasOwnProperty.call(obj, i2)) {\n continue;\n }\n if (i2 === \"proxyCache\") continue;\n let value = obj[i2];\n let type = typeof value;\n if (i2 === \"parent\" && type === \"object\") {\n if (parent) cloned[i2] = parent;\n } else if (i2 === \"source\") {\n cloned[i2] = value;\n } else if (Array.isArray(value)) {\n cloned[i2] = value.map((j) => cloneNode$1(j, cloned));\n } else {\n if (type === \"object\" && value !== null) value = cloneNode$1(value);\n cloned[i2] = value;\n }\n }\n return cloned;\n}\nlet Node$4$1 = class Node2 {\n constructor(defaults = {}) {\n this.raws = {};\n this[isClean$2$1] = false;\n this[my$2$1] = true;\n for (let name in defaults) {\n if (name === \"nodes\") {\n this.nodes = [];\n for (let node2 of defaults[name]) {\n if (typeof node2.clone === \"function\") {\n this.append(node2.clone());\n } else {\n this.append(node2);\n }\n }\n } else {\n this[name] = defaults[name];\n }\n }\n }\n addToError(error) {\n error.postcssNode = this;\n if (error.stack && this.source && /\\n\\s{4}at /.test(error.stack)) {\n let s2 = this.source;\n error.stack = error.stack.replace(\n /\\n\\s{4}at /,\n `$&${s2.input.from}:${s2.start.line}:${s2.start.column}$&`\n );\n }\n return error;\n }\n after(add) {\n this.parent.insertAfter(this, add);\n return this;\n }\n assign(overrides = {}) {\n for (let name in overrides) {\n this[name] = overrides[name];\n }\n return this;\n }\n before(add) {\n this.parent.insertBefore(this, add);\n return this;\n }\n cleanRaws(keepBetween) {\n delete this.raws.before;\n delete this.raws.after;\n if (!keepBetween) delete this.raws.between;\n }\n clone(overrides = {}) {\n let cloned = cloneNode$1(this);\n for (let name in overrides) {\n cloned[name] = overrides[name];\n }\n return cloned;\n }\n cloneAfter(overrides = {}) {\n let cloned = this.clone(overrides);\n this.parent.insertAfter(this, cloned);\n return cloned;\n }\n cloneBefore(overrides = {}) {\n let cloned = this.clone(overrides);\n this.parent.insertBefore(this, cloned);\n return cloned;\n }\n error(message, opts = {}) {\n if (this.source) {\n let { end, start } = this.rangeBy(opts);\n return this.source.input.error(\n message,\n { column: start.column, line: start.line },\n { column: end.column, line: end.line },\n opts\n );\n }\n return new CssSyntaxError$2$1(message);\n }\n getProxyProcessor() {\n return {\n get(node2, prop) {\n if (prop === \"proxyOf\") {\n return node2;\n } else if (prop === \"root\") {\n return () => node2.root().toProxy();\n } else {\n return node2[prop];\n }\n },\n set(node2, prop, value) {\n if (node2[prop] === value) return true;\n node2[prop] = value;\n if (prop === \"prop\" || prop === \"value\" || prop === \"name\" || prop === \"params\" || prop === \"important\" || /* c8 ignore next */\n prop === \"text\") {\n node2.markDirty();\n }\n return true;\n }\n };\n }\n markDirty() {\n if (this[isClean$2$1]) {\n this[isClean$2$1] = false;\n let next = this;\n while (next = next.parent) {\n next[isClean$2$1] = false;\n }\n }\n }\n next() {\n if (!this.parent) return void 0;\n let index2 = this.parent.index(this);\n return this.parent.nodes[index2 + 1];\n }\n positionBy(opts, stringRepresentation) {\n let pos = this.source.start;\n if (opts.index) {\n pos = this.positionInside(opts.index, stringRepresentation);\n } else if (opts.word) {\n stringRepresentation = this.toString();\n let index2 = stringRepresentation.indexOf(opts.word);\n if (index2 !== -1) pos = this.positionInside(index2, stringRepresentation);\n }\n return pos;\n }\n positionInside(index2, stringRepresentation) {\n let string = stringRepresentation || this.toString();\n let column = this.source.start.column;\n let line = this.source.start.line;\n for (let i2 = 0; i2 < index2; i2++) {\n if (string[i2] === \"\\n\") {\n column = 1;\n line += 1;\n } else {\n column += 1;\n }\n }\n return { column, line };\n }\n prev() {\n if (!this.parent) return void 0;\n let index2 = this.parent.index(this);\n return this.parent.nodes[index2 - 1];\n }\n rangeBy(opts) {\n let start = {\n column: this.source.start.column,\n line: this.source.start.line\n };\n let end = this.source.end ? {\n column: this.source.end.column + 1,\n line: this.source.end.line\n } : {\n column: start.column + 1,\n line: start.line\n };\n if (opts.word) {\n let stringRepresentation = this.toString();\n let index2 = stringRepresentation.indexOf(opts.word);\n if (index2 !== -1) {\n start = this.positionInside(index2, stringRepresentation);\n end = this.positionInside(index2 + opts.word.length, stringRepresentation);\n }\n } else {\n if (opts.start) {\n start = {\n column: opts.start.column,\n line: opts.start.line\n };\n } else if (opts.index) {\n start = this.positionInside(opts.index);\n }\n if (opts.end) {\n end = {\n column: opts.end.column,\n line: opts.end.line\n };\n } else if (typeof opts.endIndex === \"number\") {\n end = this.positionInside(opts.endIndex);\n } else if (opts.index) {\n end = this.positionInside(opts.index + 1);\n }\n }\n if (end.line < start.line || end.line === start.line && end.column <= start.column) {\n end = { column: start.column + 1, line: start.line };\n }\n return { end, start };\n }\n raw(prop, defaultType) {\n let str = new Stringifier2$1();\n return str.raw(this, prop, defaultType);\n }\n remove() {\n if (this.parent) {\n this.parent.removeChild(this);\n }\n this.parent = void 0;\n return this;\n }\n replaceWith(...nodes) {\n if (this.parent) {\n let bookmark = this;\n let foundSelf = false;\n for (let node2 of nodes) {\n if (node2 === this) {\n foundSelf = true;\n } else if (foundSelf) {\n this.parent.insertAfter(bookmark, node2);\n bookmark = node2;\n } else {\n this.parent.insertBefore(bookmark, node2);\n }\n }\n if (!foundSelf) {\n this.remove();\n }\n }\n return this;\n }\n root() {\n let result2 = this;\n while (result2.parent && result2.parent.type !== \"document\") {\n result2 = result2.parent;\n }\n return result2;\n }\n toJSON(_, inputs) {\n let fixed = {};\n let emitInputs = inputs == null;\n inputs = inputs || /* @__PURE__ */ new Map();\n let inputsNextIndex = 0;\n for (let name in this) {\n if (!Object.prototype.hasOwnProperty.call(this, name)) {\n continue;\n }\n if (name === \"parent\" || name === \"proxyCache\") continue;\n let value = this[name];\n if (Array.isArray(value)) {\n fixed[name] = value.map((i2) => {\n if (typeof i2 === \"object\" && i2.toJSON) {\n return i2.toJSON(null, inputs);\n } else {\n return i2;\n }\n });\n } else if (typeof value === \"object\" && value.toJSON) {\n fixed[name] = value.toJSON(null, inputs);\n } else if (name === \"source\") {\n let inputId = inputs.get(value.input);\n if (inputId == null) {\n inputId = inputsNextIndex;\n inputs.set(value.input, inputsNextIndex);\n inputsNextIndex++;\n }\n fixed[name] = {\n end: value.end,\n inputId,\n start: value.start\n };\n } else {\n fixed[name] = value;\n }\n }\n if (emitInputs) {\n fixed.inputs = [...inputs.keys()].map((input2) => input2.toJSON());\n }\n return fixed;\n }\n toProxy() {\n if (!this.proxyCache) {\n this.proxyCache = new Proxy(this, this.getProxyProcessor());\n }\n return this.proxyCache;\n }\n toString(stringifier2 = stringify$3$1) {\n if (stringifier2.stringify) stringifier2 = stringifier2.stringify;\n let result2 = \"\";\n stringifier2(this, (i2) => {\n result2 += i2;\n });\n return result2;\n }\n warn(result2, text, opts) {\n let data = { node: this };\n for (let i2 in opts) data[i2] = opts[i2];\n return result2.warn(text, data);\n }\n get proxyOf() {\n return this;\n }\n};\nvar node$1 = Node$4$1;\nNode$4$1.default = Node$4$1;\nlet Node$3$1 = node$1;\nlet Declaration$4$1 = class Declaration extends Node$3$1 {\n constructor(defaults) {\n if (defaults && typeof defaults.value !== \"undefined\" && typeof defaults.value !== \"string\") {\n defaults = { ...defaults, value: String(defaults.value) };\n }\n super(defaults);\n this.type = \"decl\";\n }\n get variable() {\n return this.prop.startsWith(\"--\") || this.prop[0] === \"$\";\n }\n};\nvar declaration$1 = Declaration$4$1;\nDeclaration$4$1.default = Declaration$4$1;\nlet urlAlphabet$1 = \"useandom-26T198340PX75pxJACKVERYMINDBUSHWOLF_GQZbfghjklqvwyzrict\";\nlet customAlphabet$1 = (alphabet, defaultSize = 21) => {\n return (size = defaultSize) => {\n let id = \"\";\n let i2 = size;\n while (i2--) {\n id += alphabet[Math.random() * alphabet.length | 0];\n }\n return id;\n };\n};\nlet nanoid$1$1 = (size = 21) => {\n let id = \"\";\n let i2 = size;\n while (i2--) {\n id += urlAlphabet$1[Math.random() * 64 | 0];\n }\n return id;\n};\nvar nonSecure$1 = { nanoid: nanoid$1$1, customAlphabet: customAlphabet$1 };\nlet { SourceMapConsumer: SourceMapConsumer$2$1, SourceMapGenerator: SourceMapGenerator$2$1 } = require$$2$1;\nlet { existsSync: existsSync$1, readFileSync: readFileSync$1 } = require$$2$1;\nlet { dirname: dirname$1$1, join: join$1 } = require$$2$1;\nfunction fromBase64$1(str) {\n if (Buffer) {\n return Buffer.from(str, \"base64\").toString();\n } else {\n return window.atob(str);\n }\n}\nlet PreviousMap$2$1 = class PreviousMap {\n constructor(css, opts) {\n if (opts.map === false) return;\n this.loadAnnotation(css);\n this.inline = this.startWith(this.annotation, \"data:\");\n let prev = opts.map ? opts.map.prev : void 0;\n let text = this.loadMap(opts.from, prev);\n if (!this.mapFile && opts.from) {\n this.mapFile = opts.from;\n }\n if (this.mapFile) this.root = dirname$1$1(this.mapFile);\n if (text) this.text = text;\n }\n consumer() {\n if (!this.consumerCache) {\n this.consumerCache = new SourceMapConsumer$2$1(this.text);\n }\n return this.consumerCache;\n }\n decodeInline(text) {\n let baseCharsetUri = /^data:application\\/json;charset=utf-?8;base64,/;\n let baseUri = /^data:application\\/json;base64,/;\n let charsetUri = /^data:application\\/json;charset=utf-?8,/;\n let uri = /^data:application\\/json,/;\n if (charsetUri.test(text) || uri.test(text)) {\n return decodeURIComponent(text.substr(RegExp.lastMatch.length));\n }\n if (baseCharsetUri.test(text) || baseUri.test(text)) {\n return fromBase64$1(text.substr(RegExp.lastMatch.length));\n }\n let encoding = text.match(/data:application\\/json;([^,]+),/)[1];\n throw new Error(\"Unsupported source map encoding \" + encoding);\n }\n getAnnotationURL(sourceMapString) {\n return sourceMapString.replace(/^\\/\\*\\s*# sourceMappingURL=/, \"\").trim();\n }\n isMap(map) {\n if (typeof map !== \"object\") return false;\n return typeof map.mappings === \"string\" || typeof map._mappings === \"string\" || Array.isArray(map.sections);\n }\n loadAnnotation(css) {\n let comments = css.match(/\\/\\*\\s*# sourceMappingURL=/gm);\n if (!comments) return;\n let start = css.lastIndexOf(comments.pop());\n let end = css.indexOf(\"*/\", start);\n if (start > -1 && end > -1) {\n this.annotation = this.getAnnotationURL(css.substring(start, end));\n }\n }\n loadFile(path) {\n this.root = dirname$1$1(path);\n if (existsSync$1(path)) {\n this.mapFile = path;\n return readFileSync$1(path, \"utf-8\").toString().trim();\n }\n }\n loadMap(file, prev) {\n if (prev === false) return false;\n if (prev) {\n if (typeof prev === \"string\") {\n return prev;\n } else if (typeof prev === \"function\") {\n let prevPath = prev(file);\n if (prevPath) {\n let map = this.loadFile(prevPath);\n if (!map) {\n throw new Error(\n \"Unable to load previous source map: \" + prevPath.toString()\n );\n }\n return map;\n }\n } else if (prev instanceof SourceMapConsumer$2$1) {\n return SourceMapGenerator$2$1.fromSourceMap(prev).toString();\n } else if (prev instanceof SourceMapGenerator$2$1) {\n return prev.toString();\n } else if (this.isMap(prev)) {\n return JSON.stringify(prev);\n } else {\n throw new Error(\n \"Unsupported previous source map format: \" + prev.toString()\n );\n }\n } else if (this.inline) {\n return this.decodeInline(this.annotation);\n } else if (this.annotation) {\n let map = this.annotation;\n if (file) map = join$1(dirname$1$1(file), map);\n return this.loadFile(map);\n }\n }\n startWith(string, start) {\n if (!string) return false;\n return string.substr(0, start.length) === start;\n }\n withContent() {\n return !!(this.consumer().sourcesContent && this.consumer().sourcesContent.length > 0);\n }\n};\nvar previousMap$1 = PreviousMap$2$1;\nPreviousMap$2$1.default = PreviousMap$2$1;\nlet { SourceMapConsumer: SourceMapConsumer$1$1, SourceMapGenerator: SourceMapGenerator$1$1 } = require$$2$1;\nlet { fileURLToPath: fileURLToPath$1, pathToFileURL: pathToFileURL$1$1 } = require$$2$1;\nlet { isAbsolute: isAbsolute$1, resolve: resolve$1$1 } = require$$2$1;\nlet { nanoid: nanoid$2 } = nonSecure$1;\nlet terminalHighlight$2 = require$$2$1;\nlet CssSyntaxError$1$1 = cssSyntaxError$1;\nlet PreviousMap$1$1 = previousMap$1;\nlet fromOffsetCache$1 = Symbol(\"fromOffsetCache\");\nlet sourceMapAvailable$1$1 = Boolean(SourceMapConsumer$1$1 && SourceMapGenerator$1$1);\nlet pathAvailable$1$1 = Boolean(resolve$1$1 && isAbsolute$1);\nlet Input$4$1 = class Input {\n constructor(css, opts = {}) {\n if (css === null || typeof css === \"undefined\" || typeof css === \"object\" && !css.toString) {\n throw new Error(`PostCSS received ${css} instead of CSS string`);\n }\n this.css = css.toString();\n if (this.css[0] === \"\\uFEFF\" || this.css[0] === \"￾\") {\n this.hasBOM = true;\n this.css = this.css.slice(1);\n } else {\n this.hasBOM = false;\n }\n if (opts.from) {\n if (!pathAvailable$1$1 || /^\\w+:\\/\\//.test(opts.from) || isAbsolute$1(opts.from)) {\n this.file = opts.from;\n } else {\n this.file = resolve$1$1(opts.from);\n }\n }\n if (pathAvailable$1$1 && sourceMapAvailable$1$1) {\n let map = new PreviousMap$1$1(this.css, opts);\n if (map.text) {\n this.map = map;\n let file = map.consumer().file;\n if (!this.file && file) this.file = this.mapResolve(file);\n }\n }\n if (!this.file) {\n this.id = \"\";\n }\n if (this.map) this.map.file = this.from;\n }\n error(message, line, column, opts = {}) {\n let result2, endLine, endColumn;\n if (line && typeof line === \"object\") {\n let start = line;\n let end = column;\n if (typeof start.offset === \"number\") {\n let pos = this.fromOffset(start.offset);\n line = pos.line;\n column = pos.col;\n } else {\n line = start.line;\n column = start.column;\n }\n if (typeof end.offset === \"number\") {\n let pos = this.fromOffset(end.offset);\n endLine = pos.line;\n endColumn = pos.col;\n } else {\n endLine = end.line;\n endColumn = end.column;\n }\n } else if (!column) {\n let pos = this.fromOffset(line);\n line = pos.line;\n column = pos.col;\n }\n let origin = this.origin(line, column, endLine, endColumn);\n if (origin) {\n result2 = new CssSyntaxError$1$1(\n message,\n origin.endLine === void 0 ? origin.line : { column: origin.column, line: origin.line },\n origin.endLine === void 0 ? origin.column : { column: origin.endColumn, line: origin.endLine },\n origin.source,\n origin.file,\n opts.plugin\n );\n } else {\n result2 = new CssSyntaxError$1$1(\n message,\n endLine === void 0 ? line : { column, line },\n endLine === void 0 ? column : { column: endColumn, line: endLine },\n this.css,\n this.file,\n opts.plugin\n );\n }\n result2.input = { column, endColumn, endLine, line, source: this.css };\n if (this.file) {\n if (pathToFileURL$1$1) {\n result2.input.url = pathToFileURL$1$1(this.file).toString();\n }\n result2.input.file = this.file;\n }\n return result2;\n }\n fromOffset(offset) {\n let lastLine, lineToIndex;\n if (!this[fromOffsetCache$1]) {\n let lines = this.css.split(\"\\n\");\n lineToIndex = new Array(lines.length);\n let prevIndex = 0;\n for (let i2 = 0, l2 = lines.length; i2 < l2; i2++) {\n lineToIndex[i2] = prevIndex;\n prevIndex += lines[i2].length + 1;\n }\n this[fromOffsetCache$1] = lineToIndex;\n } else {\n lineToIndex = this[fromOffsetCache$1];\n }\n lastLine = lineToIndex[lineToIndex.length - 1];\n let min = 0;\n if (offset >= lastLine) {\n min = lineToIndex.length - 1;\n } else {\n let max = lineToIndex.length - 2;\n let mid;\n while (min < max) {\n mid = min + (max - min >> 1);\n if (offset < lineToIndex[mid]) {\n max = mid - 1;\n } else if (offset >= lineToIndex[mid + 1]) {\n min = mid + 1;\n } else {\n min = mid;\n break;\n }\n }\n }\n return {\n col: offset - lineToIndex[min] + 1,\n line: min + 1\n };\n }\n mapResolve(file) {\n if (/^\\w+:\\/\\//.test(file)) {\n return file;\n }\n return resolve$1$1(this.map.consumer().sourceRoot || this.map.root || \".\", file);\n }\n origin(line, column, endLine, endColumn) {\n if (!this.map) return false;\n let consumer = this.map.consumer();\n let from = consumer.originalPositionFor({ column, line });\n if (!from.source) return false;\n let to;\n if (typeof endLine === \"number\") {\n to = consumer.originalPositionFor({ column: endColumn, line: endLine });\n }\n let fromUrl;\n if (isAbsolute$1(from.source)) {\n fromUrl = pathToFileURL$1$1(from.source);\n } else {\n fromUrl = new URL(\n from.source,\n this.map.consumer().sourceRoot || pathToFileURL$1$1(this.map.mapFile)\n );\n }\n let result2 = {\n column: from.column,\n endColumn: to && to.column,\n endLine: to && to.line,\n line: from.line,\n url: fromUrl.toString()\n };\n if (fromUrl.protocol === \"file:\") {\n if (fileURLToPath$1) {\n result2.file = fileURLToPath$1(fromUrl);\n } else {\n throw new Error(`file: protocol is not available in this PostCSS build`);\n }\n }\n let source = consumer.sourceContentFor(from.source);\n if (source) result2.source = source;\n return result2;\n }\n toJSON() {\n let json = {};\n for (let name of [\"hasBOM\", \"css\", \"file\", \"id\"]) {\n if (this[name] != null) {\n json[name] = this[name];\n }\n }\n if (this.map) {\n json.map = { ...this.map };\n if (json.map.consumerCache) {\n json.map.consumerCache = void 0;\n }\n }\n return json;\n }\n get from() {\n return this.file || this.id;\n }\n};\nvar input$1 = Input$4$1;\nInput$4$1.default = Input$4$1;\nif (terminalHighlight$2 && terminalHighlight$2.registerInput) {\n terminalHighlight$2.registerInput(Input$4$1);\n}\nlet { SourceMapConsumer: SourceMapConsumer$3, SourceMapGenerator: SourceMapGenerator$3 } = require$$2$1;\nlet { dirname: dirname$2, relative: relative$1, resolve: resolve$2, sep: sep$1 } = require$$2$1;\nlet { pathToFileURL: pathToFileURL$2 } = require$$2$1;\nlet Input$3$1 = input$1;\nlet sourceMapAvailable$2 = Boolean(SourceMapConsumer$3 && SourceMapGenerator$3);\nlet pathAvailable$2 = Boolean(dirname$2 && resolve$2 && relative$1 && sep$1);\nlet MapGenerator$2$1 = class MapGenerator {\n constructor(stringify2, root2, opts, cssString) {\n this.stringify = stringify2;\n this.mapOpts = opts.map || {};\n this.root = root2;\n this.opts = opts;\n this.css = cssString;\n this.originalCSS = cssString;\n this.usesFileUrls = !this.mapOpts.from && this.mapOpts.absolute;\n this.memoizedFileURLs = /* @__PURE__ */ new Map();\n this.memoizedPaths = /* @__PURE__ */ new Map();\n this.memoizedURLs = /* @__PURE__ */ new Map();\n }\n addAnnotation() {\n let content;\n if (this.isInline()) {\n content = \"data:application/json;base64,\" + this.toBase64(this.map.toString());\n } else if (typeof this.mapOpts.annotation === \"string\") {\n content = this.mapOpts.annotation;\n } else if (typeof this.mapOpts.annotation === \"function\") {\n content = this.mapOpts.annotation(this.opts.to, this.root);\n } else {\n content = this.outputFile() + \".map\";\n }\n let eol = \"\\n\";\n if (this.css.includes(\"\\r\\n\")) eol = \"\\r\\n\";\n this.css += eol + \"/*# sourceMappingURL=\" + content + \" */\";\n }\n applyPrevMaps() {\n for (let prev of this.previous()) {\n let from = this.toUrl(this.path(prev.file));\n let root2 = prev.root || dirname$2(prev.file);\n let map;\n if (this.mapOpts.sourcesContent === false) {\n map = new SourceMapConsumer$3(prev.text);\n if (map.sourcesContent) {\n map.sourcesContent = null;\n }\n } else {\n map = prev.consumer();\n }\n this.map.applySourceMap(map, from, this.toUrl(this.path(root2)));\n }\n }\n clearAnnotation() {\n if (this.mapOpts.annotation === false) return;\n if (this.root) {\n let node2;\n for (let i2 = this.root.nodes.length - 1; i2 >= 0; i2--) {\n node2 = this.root.nodes[i2];\n if (node2.type !== \"comment\") continue;\n if (node2.text.indexOf(\"# sourceMappingURL=\") === 0) {\n this.root.removeChild(i2);\n }\n }\n } else if (this.css) {\n this.css = this.css.replace(/\\n*?\\/\\*#[\\S\\s]*?\\*\\/$/gm, \"\");\n }\n }\n generate() {\n this.clearAnnotation();\n if (pathAvailable$2 && sourceMapAvailable$2 && this.isMap()) {\n return this.generateMap();\n } else {\n let result2 = \"\";\n this.stringify(this.root, (i2) => {\n result2 += i2;\n });\n return [result2];\n }\n }\n generateMap() {\n if (this.root) {\n this.generateString();\n } else if (this.previous().length === 1) {\n let prev = this.previous()[0].consumer();\n prev.file = this.outputFile();\n this.map = SourceMapGenerator$3.fromSourceMap(prev, {\n ignoreInvalidMapping: true\n });\n } else {\n this.map = new SourceMapGenerator$3({\n file: this.outputFile(),\n ignoreInvalidMapping: true\n });\n this.map.addMapping({\n generated: { column: 0, line: 1 },\n original: { column: 0, line: 1 },\n source: this.opts.from ? this.toUrl(this.path(this.opts.from)) : \"\"\n });\n }\n if (this.isSourcesContent()) this.setSourcesContent();\n if (this.root && this.previous().length > 0) this.applyPrevMaps();\n if (this.isAnnotation()) this.addAnnotation();\n if (this.isInline()) {\n return [this.css];\n } else {\n return [this.css, this.map];\n }\n }\n generateString() {\n this.css = \"\";\n this.map = new SourceMapGenerator$3({\n file: this.outputFile(),\n ignoreInvalidMapping: true\n });\n let line = 1;\n let column = 1;\n let noSource = \"\";\n let mapping = {\n generated: { column: 0, line: 0 },\n original: { column: 0, line: 0 },\n source: \"\"\n };\n let lines, last;\n this.stringify(this.root, (str, node2, type) => {\n this.css += str;\n if (node2 && type !== \"end\") {\n mapping.generated.line = line;\n mapping.generated.column = column - 1;\n if (node2.source && node2.source.start) {\n mapping.source = this.sourcePath(node2);\n mapping.original.line = node2.source.start.line;\n mapping.original.column = node2.source.start.column - 1;\n this.map.addMapping(mapping);\n } else {\n mapping.source = noSource;\n mapping.original.line = 1;\n mapping.original.column = 0;\n this.map.addMapping(mapping);\n }\n }\n lines = str.match(/\\n/g);\n if (lines) {\n line += lines.length;\n last = str.lastIndexOf(\"\\n\");\n column = str.length - last;\n } else {\n column += str.length;\n }\n if (node2 && type !== \"start\") {\n let p = node2.parent || { raws: {} };\n let childless = node2.type === \"decl\" || node2.type === \"atrule\" && !node2.nodes;\n if (!childless || node2 !== p.last || p.raws.semicolon) {\n if (node2.source && node2.source.end) {\n mapping.source = this.sourcePath(node2);\n mapping.original.line = node2.source.end.line;\n mapping.original.column = node2.source.end.column - 1;\n mapping.generated.line = line;\n mapping.generated.column = column - 2;\n this.map.addMapping(mapping);\n } else {\n mapping.source = noSource;\n mapping.original.line = 1;\n mapping.original.column = 0;\n mapping.generated.line = line;\n mapping.generated.column = column - 1;\n this.map.addMapping(mapping);\n }\n }\n }\n });\n }\n isAnnotation() {\n if (this.isInline()) {\n return true;\n }\n if (typeof this.mapOpts.annotation !== \"undefined\") {\n return this.mapOpts.annotation;\n }\n if (this.previous().length) {\n return this.previous().some((i2) => i2.annotation);\n }\n return true;\n }\n isInline() {\n if (typeof this.mapOpts.inline !== \"undefined\") {\n return this.mapOpts.inline;\n }\n let annotation = this.mapOpts.annotation;\n if (typeof annotation !== \"undefined\" && annotation !== true) {\n return false;\n }\n if (this.previous().length) {\n return this.previous().some((i2) => i2.inline);\n }\n return true;\n }\n isMap() {\n if (typeof this.opts.map !== \"undefined\") {\n return !!this.opts.map;\n }\n return this.previous().length > 0;\n }\n isSourcesContent() {\n if (typeof this.mapOpts.sourcesContent !== \"undefined\") {\n return this.mapOpts.sourcesContent;\n }\n if (this.previous().length) {\n return this.previous().some((i2) => i2.withContent());\n }\n return true;\n }\n outputFile() {\n if (this.opts.to) {\n return this.path(this.opts.to);\n } else if (this.opts.from) {\n return this.path(this.opts.from);\n } else {\n return \"to.css\";\n }\n }\n path(file) {\n if (this.mapOpts.absolute) return file;\n if (file.charCodeAt(0) === 60) return file;\n if (/^\\w+:\\/\\//.test(file)) return file;\n let cached = this.memoizedPaths.get(file);\n if (cached) return cached;\n let from = this.opts.to ? dirname$2(this.opts.to) : \".\";\n if (typeof this.mapOpts.annotation === \"string\") {\n from = dirname$2(resolve$2(from, this.mapOpts.annotation));\n }\n let path = relative$1(from, file);\n this.memoizedPaths.set(file, path);\n return path;\n }\n previous() {\n if (!this.previousMaps) {\n this.previousMaps = [];\n if (this.root) {\n this.root.walk((node2) => {\n if (node2.source && node2.source.input.map) {\n let map = node2.source.input.map;\n if (!this.previousMaps.includes(map)) {\n this.previousMaps.push(map);\n }\n }\n });\n } else {\n let input2 = new Input$3$1(this.originalCSS, this.opts);\n if (input2.map) this.previousMaps.push(input2.map);\n }\n }\n return this.previousMaps;\n }\n setSourcesContent() {\n let already = {};\n if (this.root) {\n this.root.walk((node2) => {\n if (node2.source) {\n let from = node2.source.input.from;\n if (from && !already[from]) {\n already[from] = true;\n let fromUrl = this.usesFileUrls ? this.toFileUrl(from) : this.toUrl(this.path(from));\n this.map.setSourceContent(fromUrl, node2.source.input.css);\n }\n }\n });\n } else if (this.css) {\n let from = this.opts.from ? this.toUrl(this.path(this.opts.from)) : \"\";\n this.map.setSourceContent(from, this.css);\n }\n }\n sourcePath(node2) {\n if (this.mapOpts.from) {\n return this.toUrl(this.mapOpts.from);\n } else if (this.usesFileUrls) {\n return this.toFileUrl(node2.source.input.from);\n } else {\n return this.toUrl(this.path(node2.source.input.from));\n }\n }\n toBase64(str) {\n if (Buffer) {\n return Buffer.from(str).toString(\"base64\");\n } else {\n return window.btoa(unescape(encodeURIComponent(str)));\n }\n }\n toFileUrl(path) {\n let cached = this.memoizedFileURLs.get(path);\n if (cached) return cached;\n if (pathToFileURL$2) {\n let fileURL = pathToFileURL$2(path).toString();\n this.memoizedFileURLs.set(path, fileURL);\n return fileURL;\n } else {\n throw new Error(\n \"`map.absolute` option is not available in this PostCSS build\"\n );\n }\n }\n toUrl(path) {\n let cached = this.memoizedURLs.get(path);\n if (cached) return cached;\n if (sep$1 === \"\\\\\") {\n path = path.replace(/\\\\/g, \"/\");\n }\n let url = encodeURI(path).replace(/[#?]/g, encodeURIComponent);\n this.memoizedURLs.set(path, url);\n return url;\n }\n};\nvar mapGenerator$1 = MapGenerator$2$1;\nlet Node$2$1 = node$1;\nlet Comment$4$1 = class Comment extends Node$2$1 {\n constructor(defaults) {\n super(defaults);\n this.type = \"comment\";\n }\n};\nvar comment$1 = Comment$4$1;\nComment$4$1.default = Comment$4$1;\nlet { isClean: isClean$1$1, my: my$1$1 } = symbols$1;\nlet Declaration$3$1 = declaration$1;\nlet Comment$3$1 = comment$1;\nlet Node$1$1 = node$1;\nlet parse$4$1, Rule$4$1, AtRule$4$1, Root$6$1;\nfunction cleanSource$1(nodes) {\n return nodes.map((i2) => {\n if (i2.nodes) i2.nodes = cleanSource$1(i2.nodes);\n delete i2.source;\n return i2;\n });\n}\nfunction markDirtyUp$1(node2) {\n node2[isClean$1$1] = false;\n if (node2.proxyOf.nodes) {\n for (let i2 of node2.proxyOf.nodes) {\n markDirtyUp$1(i2);\n }\n }\n}\nlet Container$7$1 = class Container extends Node$1$1 {\n append(...children) {\n for (let child of children) {\n let nodes = this.normalize(child, this.last);\n for (let node2 of nodes) this.proxyOf.nodes.push(node2);\n }\n this.markDirty();\n return this;\n }\n cleanRaws(keepBetween) {\n super.cleanRaws(keepBetween);\n if (this.nodes) {\n for (let node2 of this.nodes) node2.cleanRaws(keepBetween);\n }\n }\n each(callback) {\n if (!this.proxyOf.nodes) return void 0;\n let iterator = this.getIterator();\n let index2, result2;\n while (this.indexes[iterator] < this.proxyOf.nodes.length) {\n index2 = this.indexes[iterator];\n result2 = callback(this.proxyOf.nodes[index2], index2);\n if (result2 === false) break;\n this.indexes[iterator] += 1;\n }\n delete this.indexes[iterator];\n return result2;\n }\n every(condition) {\n return this.nodes.every(condition);\n }\n getIterator() {\n if (!this.lastEach) this.lastEach = 0;\n if (!this.indexes) this.indexes = {};\n this.lastEach += 1;\n let iterator = this.lastEach;\n this.indexes[iterator] = 0;\n return iterator;\n }\n getProxyProcessor() {\n return {\n get(node2, prop) {\n if (prop === \"proxyOf\") {\n return node2;\n } else if (!node2[prop]) {\n return node2[prop];\n } else if (prop === \"each\" || typeof prop === \"string\" && prop.startsWith(\"walk\")) {\n return (...args) => {\n return node2[prop](\n ...args.map((i2) => {\n if (typeof i2 === \"function\") {\n return (child, index2) => i2(child.toProxy(), index2);\n } else {\n return i2;\n }\n })\n );\n };\n } else if (prop === \"every\" || prop === \"some\") {\n return (cb) => {\n return node2[prop](\n (child, ...other) => cb(child.toProxy(), ...other)\n );\n };\n } else if (prop === \"root\") {\n return () => node2.root().toProxy();\n } else if (prop === \"nodes\") {\n return node2.nodes.map((i2) => i2.toProxy());\n } else if (prop === \"first\" || prop === \"last\") {\n return node2[prop].toProxy();\n } else {\n return node2[prop];\n }\n },\n set(node2, prop, value) {\n if (node2[prop] === value) return true;\n node2[prop] = value;\n if (prop === \"name\" || prop === \"params\" || prop === \"selector\") {\n node2.markDirty();\n }\n return true;\n }\n };\n }\n index(child) {\n if (typeof child === \"number\") return child;\n if (child.proxyOf) child = child.proxyOf;\n return this.proxyOf.nodes.indexOf(child);\n }\n insertAfter(exist, add) {\n let existIndex = this.index(exist);\n let nodes = this.normalize(add, this.proxyOf.nodes[existIndex]).reverse();\n existIndex = this.index(exist);\n for (let node2 of nodes) this.proxyOf.nodes.splice(existIndex + 1, 0, node2);\n let index2;\n for (let id in this.indexes) {\n index2 = this.indexes[id];\n if (existIndex < index2) {\n this.indexes[id] = index2 + nodes.length;\n }\n }\n this.markDirty();\n return this;\n }\n insertBefore(exist, add) {\n let existIndex = this.index(exist);\n let type = existIndex === 0 ? \"prepend\" : false;\n let nodes = this.normalize(add, this.proxyOf.nodes[existIndex], type).reverse();\n existIndex = this.index(exist);\n for (let node2 of nodes) this.proxyOf.nodes.splice(existIndex, 0, node2);\n let index2;\n for (let id in this.indexes) {\n index2 = this.indexes[id];\n if (existIndex <= index2) {\n this.indexes[id] = index2 + nodes.length;\n }\n }\n this.markDirty();\n return this;\n }\n normalize(nodes, sample) {\n if (typeof nodes === \"string\") {\n nodes = cleanSource$1(parse$4$1(nodes).nodes);\n } else if (typeof nodes === \"undefined\") {\n nodes = [];\n } else if (Array.isArray(nodes)) {\n nodes = nodes.slice(0);\n for (let i2 of nodes) {\n if (i2.parent) i2.parent.removeChild(i2, \"ignore\");\n }\n } else if (nodes.type === \"root\" && this.type !== \"document\") {\n nodes = nodes.nodes.slice(0);\n for (let i2 of nodes) {\n if (i2.parent) i2.parent.removeChild(i2, \"ignore\");\n }\n } else if (nodes.type) {\n nodes = [nodes];\n } else if (nodes.prop) {\n if (typeof nodes.value === \"undefined\") {\n throw new Error(\"Value field is missed in node creation\");\n } else if (typeof nodes.value !== \"string\") {\n nodes.value = String(nodes.value);\n }\n nodes = [new Declaration$3$1(nodes)];\n } else if (nodes.selector) {\n nodes = [new Rule$4$1(nodes)];\n } else if (nodes.name) {\n nodes = [new AtRule$4$1(nodes)];\n } else if (nodes.text) {\n nodes = [new Comment$3$1(nodes)];\n } else {\n throw new Error(\"Unknown node type in node creation\");\n }\n let processed = nodes.map((i2) => {\n if (!i2[my$1$1]) Container.rebuild(i2);\n i2 = i2.proxyOf;\n if (i2.parent) i2.parent.removeChild(i2);\n if (i2[isClean$1$1]) markDirtyUp$1(i2);\n if (typeof i2.raws.before === \"undefined\") {\n if (sample && typeof sample.raws.before !== \"undefined\") {\n i2.raws.before = sample.raws.before.replace(/\\S/g, \"\");\n }\n }\n i2.parent = this.proxyOf;\n return i2;\n });\n return processed;\n }\n prepend(...children) {\n children = children.reverse();\n for (let child of children) {\n let nodes = this.normalize(child, this.first, \"prepend\").reverse();\n for (let node2 of nodes) this.proxyOf.nodes.unshift(node2);\n for (let id in this.indexes) {\n this.indexes[id] = this.indexes[id] + nodes.length;\n }\n }\n this.markDirty();\n return this;\n }\n push(child) {\n child.parent = this;\n this.proxyOf.nodes.push(child);\n return this;\n }\n removeAll() {\n for (let node2 of this.proxyOf.nodes) node2.parent = void 0;\n this.proxyOf.nodes = [];\n this.markDirty();\n return this;\n }\n removeChild(child) {\n child = this.index(child);\n this.proxyOf.nodes[child].parent = void 0;\n this.proxyOf.nodes.splice(child, 1);\n let index2;\n for (let id in this.indexes) {\n index2 = this.indexes[id];\n if (index2 >= child) {\n this.indexes[id] = index2 - 1;\n }\n }\n this.markDirty();\n return this;\n }\n replaceValues(pattern, opts, callback) {\n if (!callback) {\n callback = opts;\n opts = {};\n }\n this.walkDecls((decl) => {\n if (opts.props && !opts.props.includes(decl.prop)) return;\n if (opts.fast && !decl.value.includes(opts.fast)) return;\n decl.value = decl.value.replace(pattern, callback);\n });\n this.markDirty();\n return this;\n }\n some(condition) {\n return this.nodes.some(condition);\n }\n walk(callback) {\n return this.each((child, i2) => {\n let result2;\n try {\n result2 = callback(child, i2);\n } catch (e2) {\n throw child.addToError(e2);\n }\n if (result2 !== false && child.walk) {\n result2 = child.walk(callback);\n }\n return result2;\n });\n }\n walkAtRules(name, callback) {\n if (!callback) {\n callback = name;\n return this.walk((child, i2) => {\n if (child.type === \"atrule\") {\n return callback(child, i2);\n }\n });\n }\n if (name instanceof RegExp) {\n return this.walk((child, i2) => {\n if (child.type === \"atrule\" && name.test(child.name)) {\n return callback(child, i2);\n }\n });\n }\n return this.walk((child, i2) => {\n if (child.type === \"atrule\" && child.name === name) {\n return callback(child, i2);\n }\n });\n }\n walkComments(callback) {\n return this.walk((child, i2) => {\n if (child.type === \"comment\") {\n return callback(child, i2);\n }\n });\n }\n walkDecls(prop, callback) {\n if (!callback) {\n callback = prop;\n return this.walk((child, i2) => {\n if (child.type === \"decl\") {\n return callback(child, i2);\n }\n });\n }\n if (prop instanceof RegExp) {\n return this.walk((child, i2) => {\n if (child.type === \"decl\" && prop.test(child.prop)) {\n return callback(child, i2);\n }\n });\n }\n return this.walk((child, i2) => {\n if (child.type === \"decl\" && child.prop === prop) {\n return callback(child, i2);\n }\n });\n }\n walkRules(selector, callback) {\n if (!callback) {\n callback = selector;\n return this.walk((child, i2) => {\n if (child.type === \"rule\") {\n return callback(child, i2);\n }\n });\n }\n if (selector instanceof RegExp) {\n return this.walk((child, i2) => {\n if (child.type === \"rule\" && selector.test(child.selector)) {\n return callback(child, i2);\n }\n });\n }\n return this.walk((child, i2) => {\n if (child.type === \"rule\" && child.selector === selector) {\n return callback(child, i2);\n }\n });\n }\n get first() {\n if (!this.proxyOf.nodes) return void 0;\n return this.proxyOf.nodes[0];\n }\n get last() {\n if (!this.proxyOf.nodes) return void 0;\n return this.proxyOf.nodes[this.proxyOf.nodes.length - 1];\n }\n};\nContainer$7$1.registerParse = (dependant) => {\n parse$4$1 = dependant;\n};\nContainer$7$1.registerRule = (dependant) => {\n Rule$4$1 = dependant;\n};\nContainer$7$1.registerAtRule = (dependant) => {\n AtRule$4$1 = dependant;\n};\nContainer$7$1.registerRoot = (dependant) => {\n Root$6$1 = dependant;\n};\nvar container$1 = Container$7$1;\nContainer$7$1.default = Container$7$1;\nContainer$7$1.rebuild = (node2) => {\n if (node2.type === \"atrule\") {\n Object.setPrototypeOf(node2, AtRule$4$1.prototype);\n } else if (node2.type === \"rule\") {\n Object.setPrototypeOf(node2, Rule$4$1.prototype);\n } else if (node2.type === \"decl\") {\n Object.setPrototypeOf(node2, Declaration$3$1.prototype);\n } else if (node2.type === \"comment\") {\n Object.setPrototypeOf(node2, Comment$3$1.prototype);\n } else if (node2.type === \"root\") {\n Object.setPrototypeOf(node2, Root$6$1.prototype);\n }\n node2[my$1$1] = true;\n if (node2.nodes) {\n node2.nodes.forEach((child) => {\n Container$7$1.rebuild(child);\n });\n }\n};\nlet Container$6$1 = container$1;\nlet LazyResult$4$1, Processor$3$1;\nlet Document$3$1 = class Document2 extends Container$6$1 {\n constructor(defaults) {\n super({ type: \"document\", ...defaults });\n if (!this.nodes) {\n this.nodes = [];\n }\n }\n toResult(opts = {}) {\n let lazy = new LazyResult$4$1(new Processor$3$1(), this, opts);\n return lazy.stringify();\n }\n};\nDocument$3$1.registerLazyResult = (dependant) => {\n LazyResult$4$1 = dependant;\n};\nDocument$3$1.registerProcessor = (dependant) => {\n Processor$3$1 = dependant;\n};\nvar document$1$1 = Document$3$1;\nDocument$3$1.default = Document$3$1;\nlet printed$1 = {};\nvar warnOnce$2$1 = function warnOnce(message) {\n if (printed$1[message]) return;\n printed$1[message] = true;\n if (typeof console !== \"undefined\" && console.warn) {\n console.warn(message);\n }\n};\nlet Warning$2$1 = class Warning {\n constructor(text, opts = {}) {\n this.type = \"warning\";\n this.text = text;\n if (opts.node && opts.node.source) {\n let range = opts.node.rangeBy(opts);\n this.line = range.start.line;\n this.column = range.start.column;\n this.endLine = range.end.line;\n this.endColumn = range.end.column;\n }\n for (let opt in opts) this[opt] = opts[opt];\n }\n toString() {\n if (this.node) {\n return this.node.error(this.text, {\n index: this.index,\n plugin: this.plugin,\n word: this.word\n }).message;\n }\n if (this.plugin) {\n return this.plugin + \": \" + this.text;\n }\n return this.text;\n }\n};\nvar warning$1 = Warning$2$1;\nWarning$2$1.default = Warning$2$1;\nlet Warning$1$1 = warning$1;\nlet Result$3$1 = class Result {\n constructor(processor2, root2, opts) {\n this.processor = processor2;\n this.messages = [];\n this.root = root2;\n this.opts = opts;\n this.css = void 0;\n this.map = void 0;\n }\n toString() {\n return this.css;\n }\n warn(text, opts = {}) {\n if (!opts.plugin) {\n if (this.lastPlugin && this.lastPlugin.postcssPlugin) {\n opts.plugin = this.lastPlugin.postcssPlugin;\n }\n }\n let warning2 = new Warning$1$1(text, opts);\n this.messages.push(warning2);\n return warning2;\n }\n warnings() {\n return this.messages.filter((i2) => i2.type === \"warning\");\n }\n get content() {\n return this.css;\n }\n};\nvar result$1 = Result$3$1;\nResult$3$1.default = Result$3$1;\nconst SINGLE_QUOTE$1 = \"'\".charCodeAt(0);\nconst DOUBLE_QUOTE$1 = '\"'.charCodeAt(0);\nconst BACKSLASH$1 = \"\\\\\".charCodeAt(0);\nconst SLASH$1 = \"/\".charCodeAt(0);\nconst NEWLINE$1 = \"\\n\".charCodeAt(0);\nconst SPACE$1 = \" \".charCodeAt(0);\nconst FEED$1 = \"\\f\".charCodeAt(0);\nconst TAB$1 = \"\t\".charCodeAt(0);\nconst CR$1 = \"\\r\".charCodeAt(0);\nconst OPEN_SQUARE$1 = \"[\".charCodeAt(0);\nconst CLOSE_SQUARE$1 = \"]\".charCodeAt(0);\nconst OPEN_PARENTHESES$1 = \"(\".charCodeAt(0);\nconst CLOSE_PARENTHESES$1 = \")\".charCodeAt(0);\nconst OPEN_CURLY$1 = \"{\".charCodeAt(0);\nconst CLOSE_CURLY$1 = \"}\".charCodeAt(0);\nconst SEMICOLON$1 = \";\".charCodeAt(0);\nconst ASTERISK$1 = \"*\".charCodeAt(0);\nconst COLON$1 = \":\".charCodeAt(0);\nconst AT$1 = \"@\".charCodeAt(0);\nconst RE_AT_END$1 = /[\\t\\n\\f\\r \"#'()/;[\\\\\\]{}]/g;\nconst RE_WORD_END$1 = /[\\t\\n\\f\\r !\"#'():;@[\\\\\\]{}]|\\/(?=\\*)/g;\nconst RE_BAD_BRACKET$1 = /.[\\r\\n\"'(/\\\\]/;\nconst RE_HEX_ESCAPE$1 = /[\\da-f]/i;\nvar tokenize$1 = function tokenizer(input2, options = {}) {\n let css = input2.css.valueOf();\n let ignore = options.ignoreErrors;\n let code, next, quote, content, escape;\n let escaped, escapePos, prev, n2, currentToken;\n let length = css.length;\n let pos = 0;\n let buffer = [];\n let returned = [];\n function position() {\n return pos;\n }\n function unclosed(what) {\n throw input2.error(\"Unclosed \" + what, pos);\n }\n function endOfFile() {\n return returned.length === 0 && pos >= length;\n }\n function nextToken(opts) {\n if (returned.length) return returned.pop();\n if (pos >= length) return;\n let ignoreUnclosed = opts ? opts.ignoreUnclosed : false;\n code = css.charCodeAt(pos);\n switch (code) {\n case NEWLINE$1:\n case SPACE$1:\n case TAB$1:\n case CR$1:\n case FEED$1: {\n next = pos;\n do {\n next += 1;\n code = css.charCodeAt(next);\n } while (code === SPACE$1 || code === NEWLINE$1 || code === TAB$1 || code === CR$1 || code === FEED$1);\n currentToken = [\"space\", css.slice(pos, next)];\n pos = next - 1;\n break;\n }\n case OPEN_SQUARE$1:\n case CLOSE_SQUARE$1:\n case OPEN_CURLY$1:\n case CLOSE_CURLY$1:\n case COLON$1:\n case SEMICOLON$1:\n case CLOSE_PARENTHESES$1: {\n let controlChar = String.fromCharCode(code);\n currentToken = [controlChar, controlChar, pos];\n break;\n }\n case OPEN_PARENTHESES$1: {\n prev = buffer.length ? buffer.pop()[1] : \"\";\n n2 = css.charCodeAt(pos + 1);\n if (prev === \"url\" && n2 !== SINGLE_QUOTE$1 && n2 !== DOUBLE_QUOTE$1 && n2 !== SPACE$1 && n2 !== NEWLINE$1 && n2 !== TAB$1 && n2 !== FEED$1 && n2 !== CR$1) {\n next = pos;\n do {\n escaped = false;\n next = css.indexOf(\")\", next + 1);\n if (next === -1) {\n if (ignore || ignoreUnclosed) {\n next = pos;\n break;\n } else {\n unclosed(\"bracket\");\n }\n }\n escapePos = next;\n while (css.charCodeAt(escapePos - 1) === BACKSLASH$1) {\n escapePos -= 1;\n escaped = !escaped;\n }\n } while (escaped);\n currentToken = [\"brackets\", css.slice(pos, next + 1), pos, next];\n pos = next;\n } else {\n next = css.indexOf(\")\", pos + 1);\n content = css.slice(pos, next + 1);\n if (next === -1 || RE_BAD_BRACKET$1.test(content)) {\n currentToken = [\"(\", \"(\", pos];\n } else {\n currentToken = [\"brackets\", content, pos, next];\n pos = next;\n }\n }\n break;\n }\n case SINGLE_QUOTE$1:\n case DOUBLE_QUOTE$1: {\n quote = code === SINGLE_QUOTE$1 ? \"'\" : '\"';\n next = pos;\n do {\n escaped = false;\n next = css.indexOf(quote, next + 1);\n if (next === -1) {\n if (ignore || ignoreUnclosed) {\n next = pos + 1;\n break;\n } else {\n unclosed(\"string\");\n }\n }\n escapePos = next;\n while (css.charCodeAt(escapePos - 1) === BACKSLASH$1) {\n escapePos -= 1;\n escaped = !escaped;\n }\n } while (escaped);\n currentToken = [\"string\", css.slice(pos, next + 1), pos, next];\n pos = next;\n break;\n }\n case AT$1: {\n RE_AT_END$1.lastIndex = pos + 1;\n RE_AT_END$1.test(css);\n if (RE_AT_END$1.lastIndex === 0) {\n next = css.length - 1;\n } else {\n next = RE_AT_END$1.lastIndex - 2;\n }\n currentToken = [\"at-word\", css.slice(pos, next + 1), pos, next];\n pos = next;\n break;\n }\n case BACKSLASH$1: {\n next = pos;\n escape = true;\n while (css.charCodeAt(next + 1) === BACKSLASH$1) {\n next += 1;\n escape = !escape;\n }\n code = css.charCodeAt(next + 1);\n if (escape && code !== SLASH$1 && code !== SPACE$1 && code !== NEWLINE$1 && code !== TAB$1 && code !== CR$1 && code !== FEED$1) {\n next += 1;\n if (RE_HEX_ESCAPE$1.test(css.charAt(next))) {\n while (RE_HEX_ESCAPE$1.test(css.charAt(next + 1))) {\n next += 1;\n }\n if (css.charCodeAt(next + 1) === SPACE$1) {\n next += 1;\n }\n }\n }\n currentToken = [\"word\", css.slice(pos, next + 1), pos, next];\n pos = next;\n break;\n }\n default: {\n if (code === SLASH$1 && css.charCodeAt(pos + 1) === ASTERISK$1) {\n next = css.indexOf(\"*/\", pos + 2) + 1;\n if (next === 0) {\n if (ignore || ignoreUnclosed) {\n next = css.length;\n } else {\n unclosed(\"comment\");\n }\n }\n currentToken = [\"comment\", css.slice(pos, next + 1), pos, next];\n pos = next;\n } else {\n RE_WORD_END$1.lastIndex = pos + 1;\n RE_WORD_END$1.test(css);\n if (RE_WORD_END$1.lastIndex === 0) {\n next = css.length - 1;\n } else {\n next = RE_WORD_END$1.lastIndex - 2;\n }\n currentToken = [\"word\", css.slice(pos, next + 1), pos, next];\n buffer.push(currentToken);\n pos = next;\n }\n break;\n }\n }\n pos++;\n return currentToken;\n }\n function back(token) {\n returned.push(token);\n }\n return {\n back,\n endOfFile,\n nextToken,\n position\n };\n};\nlet Container$5$1 = container$1;\nlet AtRule$3$1 = class AtRule extends Container$5$1 {\n constructor(defaults) {\n super(defaults);\n this.type = \"atrule\";\n }\n append(...children) {\n if (!this.proxyOf.nodes) this.nodes = [];\n return super.append(...children);\n }\n prepend(...children) {\n if (!this.proxyOf.nodes) this.nodes = [];\n return super.prepend(...children);\n }\n};\nvar atRule$1 = AtRule$3$1;\nAtRule$3$1.default = AtRule$3$1;\nContainer$5$1.registerAtRule(AtRule$3$1);\nlet Container$4$1 = container$1;\nlet LazyResult$3$1, Processor$2$1;\nlet Root$5$1 = class Root extends Container$4$1 {\n constructor(defaults) {\n super(defaults);\n this.type = \"root\";\n if (!this.nodes) this.nodes = [];\n }\n normalize(child, sample, type) {\n let nodes = super.normalize(child);\n if (sample) {\n if (type === \"prepend\") {\n if (this.nodes.length > 1) {\n sample.raws.before = this.nodes[1].raws.before;\n } else {\n delete sample.raws.before;\n }\n } else if (this.first !== sample) {\n for (let node2 of nodes) {\n node2.raws.before = sample.raws.before;\n }\n }\n }\n return nodes;\n }\n removeChild(child, ignore) {\n let index2 = this.index(child);\n if (!ignore && index2 === 0 && this.nodes.length > 1) {\n this.nodes[1].raws.before = this.nodes[index2].raws.before;\n }\n return super.removeChild(child);\n }\n toResult(opts = {}) {\n let lazy = new LazyResult$3$1(new Processor$2$1(), this, opts);\n return lazy.stringify();\n }\n};\nRoot$5$1.registerLazyResult = (dependant) => {\n LazyResult$3$1 = dependant;\n};\nRoot$5$1.registerProcessor = (dependant) => {\n Processor$2$1 = dependant;\n};\nvar root$1 = Root$5$1;\nRoot$5$1.default = Root$5$1;\nContainer$4$1.registerRoot(Root$5$1);\nlet list$2$1 = {\n comma(string) {\n return list$2$1.split(string, [\",\"], true);\n },\n space(string) {\n let spaces = [\" \", \"\\n\", \"\t\"];\n return list$2$1.split(string, spaces);\n },\n split(string, separators, last) {\n let array = [];\n let current = \"\";\n let split = false;\n let func = 0;\n let inQuote = false;\n let prevQuote = \"\";\n let escape = false;\n for (let letter of string) {\n if (escape) {\n escape = false;\n } else if (letter === \"\\\\\") {\n escape = true;\n } else if (inQuote) {\n if (letter === prevQuote) {\n inQuote = false;\n }\n } else if (letter === '\"' || letter === \"'\") {\n inQuote = true;\n prevQuote = letter;\n } else if (letter === \"(\") {\n func += 1;\n } else if (letter === \")\") {\n if (func > 0) func -= 1;\n } else if (func === 0) {\n if (separators.includes(letter)) split = true;\n }\n if (split) {\n if (current !== \"\") array.push(current.trim());\n current = \"\";\n split = false;\n } else {\n current += letter;\n }\n }\n if (last || current !== \"\") array.push(current.trim());\n return array;\n }\n};\nvar list_1$1 = list$2$1;\nlist$2$1.default = list$2$1;\nlet Container$3$1 = container$1;\nlet list$1$1 = list_1$1;\nlet Rule$3$1 = class Rule extends Container$3$1 {\n constructor(defaults) {\n super(defaults);\n this.type = \"rule\";\n if (!this.nodes) this.nodes = [];\n }\n get selectors() {\n return list$1$1.comma(this.selector);\n }\n set selectors(values) {\n let match = this.selector ? this.selector.match(/,\\s*/) : null;\n let sep2 = match ? match[0] : \",\" + this.raw(\"between\", \"beforeOpen\");\n this.selector = values.join(sep2);\n }\n};\nvar rule$1 = Rule$3$1;\nRule$3$1.default = Rule$3$1;\nContainer$3$1.registerRule(Rule$3$1);\nlet Declaration$2$1 = declaration$1;\nlet tokenizer2$1 = tokenize$1;\nlet Comment$2$1 = comment$1;\nlet AtRule$2$1 = atRule$1;\nlet Root$4$1 = root$1;\nlet Rule$2$1 = rule$1;\nconst SAFE_COMMENT_NEIGHBOR$1 = {\n empty: true,\n space: true\n};\nfunction findLastWithPosition$1(tokens) {\n for (let i2 = tokens.length - 1; i2 >= 0; i2--) {\n let token = tokens[i2];\n let pos = token[3] || token[2];\n if (pos) return pos;\n }\n}\nlet Parser$1$1 = class Parser {\n constructor(input2) {\n this.input = input2;\n this.root = new Root$4$1();\n this.current = this.root;\n this.spaces = \"\";\n this.semicolon = false;\n this.createTokenizer();\n this.root.source = { input: input2, start: { column: 1, line: 1, offset: 0 } };\n }\n atrule(token) {\n let node2 = new AtRule$2$1();\n node2.name = token[1].slice(1);\n if (node2.name === \"\") {\n this.unnamedAtrule(node2, token);\n }\n this.init(node2, token[2]);\n let type;\n let prev;\n let shift;\n let last = false;\n let open = false;\n let params = [];\n let brackets = [];\n while (!this.tokenizer.endOfFile()) {\n token = this.tokenizer.nextToken();\n type = token[0];\n if (type === \"(\" || type === \"[\") {\n brackets.push(type === \"(\" ? \")\" : \"]\");\n } else if (type === \"{\" && brackets.length > 0) {\n brackets.push(\"}\");\n } else if (type === brackets[brackets.length - 1]) {\n brackets.pop();\n }\n if (brackets.length === 0) {\n if (type === \";\") {\n node2.source.end = this.getPosition(token[2]);\n node2.source.end.offset++;\n this.semicolon = true;\n break;\n } else if (type === \"{\") {\n open = true;\n break;\n } else if (type === \"}\") {\n if (params.length > 0) {\n shift = params.length - 1;\n prev = params[shift];\n while (prev && prev[0] === \"space\") {\n prev = params[--shift];\n }\n if (prev) {\n node2.source.end = this.getPosition(prev[3] || prev[2]);\n node2.source.end.offset++;\n }\n }\n this.end(token);\n break;\n } else {\n params.push(token);\n }\n } else {\n params.push(token);\n }\n if (this.tokenizer.endOfFile()) {\n last = true;\n break;\n }\n }\n node2.raws.between = this.spacesAndCommentsFromEnd(params);\n if (params.length) {\n node2.raws.afterName = this.spacesAndCommentsFromStart(params);\n this.raw(node2, \"params\", params);\n if (last) {\n token = params[params.length - 1];\n node2.source.end = this.getPosition(token[3] || token[2]);\n node2.source.end.offset++;\n this.spaces = node2.raws.between;\n node2.raws.between = \"\";\n }\n } else {\n node2.raws.afterName = \"\";\n node2.params = \"\";\n }\n if (open) {\n node2.nodes = [];\n this.current = node2;\n }\n }\n checkMissedSemicolon(tokens) {\n let colon = this.colon(tokens);\n if (colon === false) return;\n let founded = 0;\n let token;\n for (let j = colon - 1; j >= 0; j--) {\n token = tokens[j];\n if (token[0] !== \"space\") {\n founded += 1;\n if (founded === 2) break;\n }\n }\n throw this.input.error(\n \"Missed semicolon\",\n token[0] === \"word\" ? token[3] + 1 : token[2]\n );\n }\n colon(tokens) {\n let brackets = 0;\n let token, type, prev;\n for (let [i2, element] of tokens.entries()) {\n token = element;\n type = token[0];\n if (type === \"(\") {\n brackets += 1;\n }\n if (type === \")\") {\n brackets -= 1;\n }\n if (brackets === 0 && type === \":\") {\n if (!prev) {\n this.doubleColon(token);\n } else if (prev[0] === \"word\" && prev[1] === \"progid\") {\n continue;\n } else {\n return i2;\n }\n }\n prev = token;\n }\n return false;\n }\n comment(token) {\n let node2 = new Comment$2$1();\n this.init(node2, token[2]);\n node2.source.end = this.getPosition(token[3] || token[2]);\n node2.source.end.offset++;\n let text = token[1].slice(2, -2);\n if (/^\\s*$/.test(text)) {\n node2.text = \"\";\n node2.raws.left = text;\n node2.raws.right = \"\";\n } else {\n let match = text.match(/^(\\s*)([^]*\\S)(\\s*)$/);\n node2.text = match[2];\n node2.raws.left = match[1];\n node2.raws.right = match[3];\n }\n }\n createTokenizer() {\n this.tokenizer = tokenizer2$1(this.input);\n }\n decl(tokens, customProperty) {\n let node2 = new Declaration$2$1();\n this.init(node2, tokens[0][2]);\n let last = tokens[tokens.length - 1];\n if (last[0] === \";\") {\n this.semicolon = true;\n tokens.pop();\n }\n node2.source.end = this.getPosition(\n last[3] || last[2] || findLastWithPosition$1(tokens)\n );\n node2.source.end.offset++;\n while (tokens[0][0] !== \"word\") {\n if (tokens.length === 1) this.unknownWord(tokens);\n node2.raws.before += tokens.shift()[1];\n }\n node2.source.start = this.getPosition(tokens[0][2]);\n node2.prop = \"\";\n while (tokens.length) {\n let type = tokens[0][0];\n if (type === \":\" || type === \"space\" || type === \"comment\") {\n break;\n }\n node2.prop += tokens.shift()[1];\n }\n node2.raws.between = \"\";\n let token;\n while (tokens.length) {\n token = tokens.shift();\n if (token[0] === \":\") {\n node2.raws.between += token[1];\n break;\n } else {\n if (token[0] === \"word\" && /\\w/.test(token[1])) {\n this.unknownWord([token]);\n }\n node2.raws.between += token[1];\n }\n }\n if (node2.prop[0] === \"_\" || node2.prop[0] === \"*\") {\n node2.raws.before += node2.prop[0];\n node2.prop = node2.prop.slice(1);\n }\n let firstSpaces = [];\n let next;\n while (tokens.length) {\n next = tokens[0][0];\n if (next !== \"space\" && next !== \"comment\") break;\n firstSpaces.push(tokens.shift());\n }\n this.precheckMissedSemicolon(tokens);\n for (let i2 = tokens.length - 1; i2 >= 0; i2--) {\n token = tokens[i2];\n if (token[1].toLowerCase() === \"!important\") {\n node2.important = true;\n let string = this.stringFrom(tokens, i2);\n string = this.spacesFromEnd(tokens) + string;\n if (string !== \" !important\") node2.raws.important = string;\n break;\n } else if (token[1].toLowerCase() === \"important\") {\n let cache = tokens.slice(0);\n let str = \"\";\n for (let j = i2; j > 0; j--) {\n let type = cache[j][0];\n if (str.trim().indexOf(\"!\") === 0 && type !== \"space\") {\n break;\n }\n str = cache.pop()[1] + str;\n }\n if (str.trim().indexOf(\"!\") === 0) {\n node2.important = true;\n node2.raws.important = str;\n tokens = cache;\n }\n }\n if (token[0] !== \"space\" && token[0] !== \"comment\") {\n break;\n }\n }\n let hasWord = tokens.some((i2) => i2[0] !== \"space\" && i2[0] !== \"comment\");\n if (hasWord) {\n node2.raws.between += firstSpaces.map((i2) => i2[1]).join(\"\");\n firstSpaces = [];\n }\n this.raw(node2, \"value\", firstSpaces.concat(tokens), customProperty);\n if (node2.value.includes(\":\") && !customProperty) {\n this.checkMissedSemicolon(tokens);\n }\n }\n doubleColon(token) {\n throw this.input.error(\n \"Double colon\",\n { offset: token[2] },\n { offset: token[2] + token[1].length }\n );\n }\n emptyRule(token) {\n let node2 = new Rule$2$1();\n this.init(node2, token[2]);\n node2.selector = \"\";\n node2.raws.between = \"\";\n this.current = node2;\n }\n end(token) {\n if (this.current.nodes && this.current.nodes.length) {\n this.current.raws.semicolon = this.semicolon;\n }\n this.semicolon = false;\n this.current.raws.after = (this.current.raws.after || \"\") + this.spaces;\n this.spaces = \"\";\n if (this.current.parent) {\n this.current.source.end = this.getPosition(token[2]);\n this.current.source.end.offset++;\n this.current = this.current.parent;\n } else {\n this.unexpectedClose(token);\n }\n }\n endFile() {\n if (this.current.parent) this.unclosedBlock();\n if (this.current.nodes && this.current.nodes.length) {\n this.current.raws.semicolon = this.semicolon;\n }\n this.current.raws.after = (this.current.raws.after || \"\") + this.spaces;\n this.root.source.end = this.getPosition(this.tokenizer.position());\n }\n freeSemicolon(token) {\n this.spaces += token[1];\n if (this.current.nodes) {\n let prev = this.current.nodes[this.current.nodes.length - 1];\n if (prev && prev.type === \"rule\" && !prev.raws.ownSemicolon) {\n prev.raws.ownSemicolon = this.spaces;\n this.spaces = \"\";\n }\n }\n }\n // Helpers\n getPosition(offset) {\n let pos = this.input.fromOffset(offset);\n return {\n column: pos.col,\n line: pos.line,\n offset\n };\n }\n init(node2, offset) {\n this.current.push(node2);\n node2.source = {\n input: this.input,\n start: this.getPosition(offset)\n };\n node2.raws.before = this.spaces;\n this.spaces = \"\";\n if (node2.type !== \"comment\") this.semicolon = false;\n }\n other(start) {\n let end = false;\n let type = null;\n let colon = false;\n let bracket = null;\n let brackets = [];\n let customProperty = start[1].startsWith(\"--\");\n let tokens = [];\n let token = start;\n while (token) {\n type = token[0];\n tokens.push(token);\n if (type === \"(\" || type === \"[\") {\n if (!bracket) bracket = token;\n brackets.push(type === \"(\" ? \")\" : \"]\");\n } else if (customProperty && colon && type === \"{\") {\n if (!bracket) bracket = token;\n brackets.push(\"}\");\n } else if (brackets.length === 0) {\n if (type === \";\") {\n if (colon) {\n this.decl(tokens, customProperty);\n return;\n } else {\n break;\n }\n } else if (type === \"{\") {\n this.rule(tokens);\n return;\n } else if (type === \"}\") {\n this.tokenizer.back(tokens.pop());\n end = true;\n break;\n } else if (type === \":\") {\n colon = true;\n }\n } else if (type === brackets[brackets.length - 1]) {\n brackets.pop();\n if (brackets.length === 0) bracket = null;\n }\n token = this.tokenizer.nextToken();\n }\n if (this.tokenizer.endOfFile()) end = true;\n if (brackets.length > 0) this.unclosedBracket(bracket);\n if (end && colon) {\n if (!customProperty) {\n while (tokens.length) {\n token = tokens[tokens.length - 1][0];\n if (token !== \"space\" && token !== \"comment\") break;\n this.tokenizer.back(tokens.pop());\n }\n }\n this.decl(tokens, customProperty);\n } else {\n this.unknownWord(tokens);\n }\n }\n parse() {\n let token;\n while (!this.tokenizer.endOfFile()) {\n token = this.tokenizer.nextToken();\n switch (token[0]) {\n case \"space\":\n this.spaces += token[1];\n break;\n case \";\":\n this.freeSemicolon(token);\n break;\n case \"}\":\n this.end(token);\n break;\n case \"comment\":\n this.comment(token);\n break;\n case \"at-word\":\n this.atrule(token);\n break;\n case \"{\":\n this.emptyRule(token);\n break;\n default:\n this.other(token);\n break;\n }\n }\n this.endFile();\n }\n precheckMissedSemicolon() {\n }\n raw(node2, prop, tokens, customProperty) {\n let token, type;\n let length = tokens.length;\n let value = \"\";\n let clean = true;\n let next, prev;\n for (let i2 = 0; i2 < length; i2 += 1) {\n token = tokens[i2];\n type = token[0];\n if (type === \"space\" && i2 === length - 1 && !customProperty) {\n clean = false;\n } else if (type === \"comment\") {\n prev = tokens[i2 - 1] ? tokens[i2 - 1][0] : \"empty\";\n next = tokens[i2 + 1] ? tokens[i2 + 1][0] : \"empty\";\n if (!SAFE_COMMENT_NEIGHBOR$1[prev] && !SAFE_COMMENT_NEIGHBOR$1[next]) {\n if (value.slice(-1) === \",\") {\n clean = false;\n } else {\n value += token[1];\n }\n } else {\n clean = false;\n }\n } else {\n value += token[1];\n }\n }\n if (!clean) {\n let raw = tokens.reduce((all, i2) => all + i2[1], \"\");\n node2.raws[prop] = { raw, value };\n }\n node2[prop] = value;\n }\n rule(tokens) {\n tokens.pop();\n let node2 = new Rule$2$1();\n this.init(node2, tokens[0][2]);\n node2.raws.between = this.spacesAndCommentsFromEnd(tokens);\n this.raw(node2, \"selector\", tokens);\n this.current = node2;\n }\n spacesAndCommentsFromEnd(tokens) {\n let lastTokenType;\n let spaces = \"\";\n while (tokens.length) {\n lastTokenType = tokens[tokens.length - 1][0];\n if (lastTokenType !== \"space\" && lastTokenType !== \"comment\") break;\n spaces = tokens.pop()[1] + spaces;\n }\n return spaces;\n }\n // Errors\n spacesAndCommentsFromStart(tokens) {\n let next;\n let spaces = \"\";\n while (tokens.length) {\n next = tokens[0][0];\n if (next !== \"space\" && next !== \"comment\") break;\n spaces += tokens.shift()[1];\n }\n return spaces;\n }\n spacesFromEnd(tokens) {\n let lastTokenType;\n let spaces = \"\";\n while (tokens.length) {\n lastTokenType = tokens[tokens.length - 1][0];\n if (lastTokenType !== \"space\") break;\n spaces = tokens.pop()[1] + spaces;\n }\n return spaces;\n }\n stringFrom(tokens, from) {\n let result2 = \"\";\n for (let i2 = from; i2 < tokens.length; i2++) {\n result2 += tokens[i2][1];\n }\n tokens.splice(from, tokens.length - from);\n return result2;\n }\n unclosedBlock() {\n let pos = this.current.source.start;\n throw this.input.error(\"Unclosed block\", pos.line, pos.column);\n }\n unclosedBracket(bracket) {\n throw this.input.error(\n \"Unclosed bracket\",\n { offset: bracket[2] },\n { offset: bracket[2] + 1 }\n );\n }\n unexpectedClose(token) {\n throw this.input.error(\n \"Unexpected }\",\n { offset: token[2] },\n { offset: token[2] + 1 }\n );\n }\n unknownWord(tokens) {\n throw this.input.error(\n \"Unknown word\",\n { offset: tokens[0][2] },\n { offset: tokens[0][2] + tokens[0][1].length }\n );\n }\n unnamedAtrule(node2, token) {\n throw this.input.error(\n \"At-rule without name\",\n { offset: token[2] },\n { offset: token[2] + token[1].length }\n );\n }\n};\nvar parser$1 = Parser$1$1;\nlet Container$2$1 = container$1;\nlet Parser2$1 = parser$1;\nlet Input$2$1 = input$1;\nfunction parse$3$1(css, opts) {\n let input2 = new Input$2$1(css, opts);\n let parser2 = new Parser2$1(input2);\n try {\n parser2.parse();\n } catch (e2) {\n if (process.env.NODE_ENV !== \"production\") {\n if (e2.name === \"CssSyntaxError\" && opts && opts.from) {\n if (/\\.scss$/i.test(opts.from)) {\n e2.message += \"\\nYou tried to parse SCSS with the standard CSS parser; try again with the postcss-scss parser\";\n } else if (/\\.sass/i.test(opts.from)) {\n e2.message += \"\\nYou tried to parse Sass with the standard CSS parser; try again with the postcss-sass parser\";\n } else if (/\\.less$/i.test(opts.from)) {\n e2.message += \"\\nYou tried to parse Less with the standard CSS parser; try again with the postcss-less parser\";\n }\n }\n }\n throw e2;\n }\n return parser2.root;\n}\nvar parse_1$1 = parse$3$1;\nparse$3$1.default = parse$3$1;\nContainer$2$1.registerParse(parse$3$1);\nlet { isClean: isClean$3, my: my$3 } = symbols$1;\nlet MapGenerator$1$1 = mapGenerator$1;\nlet stringify$2$1 = stringify_1$1;\nlet Container$1$1 = container$1;\nlet Document$2$1 = document$1$1;\nlet warnOnce$1$1 = warnOnce$2$1;\nlet Result$2$1 = result$1;\nlet parse$2$1 = parse_1$1;\nlet Root$3$1 = root$1;\nconst TYPE_TO_CLASS_NAME$1 = {\n atrule: \"AtRule\",\n comment: \"Comment\",\n decl: \"Declaration\",\n document: \"Document\",\n root: \"Root\",\n rule: \"Rule\"\n};\nconst PLUGIN_PROPS$1 = {\n AtRule: true,\n AtRuleExit: true,\n Comment: true,\n CommentExit: true,\n Declaration: true,\n DeclarationExit: true,\n Document: true,\n DocumentExit: true,\n Once: true,\n OnceExit: true,\n postcssPlugin: true,\n prepare: true,\n Root: true,\n RootExit: true,\n Rule: true,\n RuleExit: true\n};\nconst NOT_VISITORS$1 = {\n Once: true,\n postcssPlugin: true,\n prepare: true\n};\nconst CHILDREN$1 = 0;\nfunction isPromise$1(obj) {\n return typeof obj === \"object\" && typeof obj.then === \"function\";\n}\nfunction getEvents$1(node2) {\n let key = false;\n let type = TYPE_TO_CLASS_NAME$1[node2.type];\n if (node2.type === \"decl\") {\n key = node2.prop.toLowerCase();\n } else if (node2.type === \"atrule\") {\n key = node2.name.toLowerCase();\n }\n if (key && node2.append) {\n return [\n type,\n type + \"-\" + key,\n CHILDREN$1,\n type + \"Exit\",\n type + \"Exit-\" + key\n ];\n } else if (key) {\n return [type, type + \"-\" + key, type + \"Exit\", type + \"Exit-\" + key];\n } else if (node2.append) {\n return [type, CHILDREN$1, type + \"Exit\"];\n } else {\n return [type, type + \"Exit\"];\n }\n}\nfunction toStack$1(node2) {\n let events;\n if (node2.type === \"document\") {\n events = [\"Document\", CHILDREN$1, \"DocumentExit\"];\n } else if (node2.type === \"root\") {\n events = [\"Root\", CHILDREN$1, \"RootExit\"];\n } else {\n events = getEvents$1(node2);\n }\n return {\n eventIndex: 0,\n events,\n iterator: 0,\n node: node2,\n visitorIndex: 0,\n visitors: []\n };\n}\nfunction cleanMarks$1(node2) {\n node2[isClean$3] = false;\n if (node2.nodes) node2.nodes.forEach((i2) => cleanMarks$1(i2));\n return node2;\n}\nlet postcss$2$1 = {};\nlet LazyResult$2$1 = class LazyResult {\n constructor(processor2, css, opts) {\n this.stringified = false;\n this.processed = false;\n let root2;\n if (typeof css === \"object\" && css !== null && (css.type === \"root\" || css.type === \"document\")) {\n root2 = cleanMarks$1(css);\n } else if (css instanceof LazyResult || css instanceof Result$2$1) {\n root2 = cleanMarks$1(css.root);\n if (css.map) {\n if (typeof opts.map === \"undefined\") opts.map = {};\n if (!opts.map.inline) opts.map.inline = false;\n opts.map.prev = css.map;\n }\n } else {\n let parser2 = parse$2$1;\n if (opts.syntax) parser2 = opts.syntax.parse;\n if (opts.parser) parser2 = opts.parser;\n if (parser2.parse) parser2 = parser2.parse;\n try {\n root2 = parser2(css, opts);\n } catch (error) {\n this.processed = true;\n this.error = error;\n }\n if (root2 && !root2[my$3]) {\n Container$1$1.rebuild(root2);\n }\n }\n this.result = new Result$2$1(processor2, root2, opts);\n this.helpers = { ...postcss$2$1, postcss: postcss$2$1, result: this.result };\n this.plugins = this.processor.plugins.map((plugin22) => {\n if (typeof plugin22 === \"object\" && plugin22.prepare) {\n return { ...plugin22, ...plugin22.prepare(this.result) };\n } else {\n return plugin22;\n }\n });\n }\n async() {\n if (this.error) return Promise.reject(this.error);\n if (this.processed) return Promise.resolve(this.result);\n if (!this.processing) {\n this.processing = this.runAsync();\n }\n return this.processing;\n }\n catch(onRejected) {\n return this.async().catch(onRejected);\n }\n finally(onFinally) {\n return this.async().then(onFinally, onFinally);\n }\n getAsyncError() {\n throw new Error(\"Use process(css).then(cb) to work with async plugins\");\n }\n handleError(error, node2) {\n let plugin22 = this.result.lastPlugin;\n try {\n if (node2) node2.addToError(error);\n this.error = error;\n if (error.name === \"CssSyntaxError\" && !error.plugin) {\n error.plugin = plugin22.postcssPlugin;\n error.setMessage();\n } else if (plugin22.postcssVersion) {\n if (process.env.NODE_ENV !== \"production\") {\n let pluginName = plugin22.postcssPlugin;\n let pluginVer = plugin22.postcssVersion;\n let runtimeVer = this.result.processor.version;\n let a2 = pluginVer.split(\".\");\n let b = runtimeVer.split(\".\");\n if (a2[0] !== b[0] || parseInt(a2[1]) > parseInt(b[1])) {\n console.error(\n \"Unknown error from PostCSS plugin. Your current PostCSS version is \" + runtimeVer + \", but \" + pluginName + \" uses \" + pluginVer + \". Perhaps this is the source of the error below.\"\n );\n }\n }\n }\n } catch (err) {\n if (console && console.error) console.error(err);\n }\n return error;\n }\n prepareVisitors() {\n this.listeners = {};\n let add = (plugin22, type, cb) => {\n if (!this.listeners[type]) this.listeners[type] = [];\n this.listeners[type].push([plugin22, cb]);\n };\n for (let plugin22 of this.plugins) {\n if (typeof plugin22 === \"object\") {\n for (let event in plugin22) {\n if (!PLUGIN_PROPS$1[event] && /^[A-Z]/.test(event)) {\n throw new Error(\n `Unknown event ${event} in ${plugin22.postcssPlugin}. Try to update PostCSS (${this.processor.version} now).`\n );\n }\n if (!NOT_VISITORS$1[event]) {\n if (typeof plugin22[event] === \"object\") {\n for (let filter in plugin22[event]) {\n if (filter === \"*\") {\n add(plugin22, event, plugin22[event][filter]);\n } else {\n add(\n plugin22,\n event + \"-\" + filter.toLowerCase(),\n plugin22[event][filter]\n );\n }\n }\n } else if (typeof plugin22[event] === \"function\") {\n add(plugin22, event, plugin22[event]);\n }\n }\n }\n }\n }\n this.hasListener = Object.keys(this.listeners).length > 0;\n }\n async runAsync() {\n this.plugin = 0;\n for (let i2 = 0; i2 < this.plugins.length; i2++) {\n let plugin22 = this.plugins[i2];\n let promise = this.runOnRoot(plugin22);\n if (isPromise$1(promise)) {\n try {\n await promise;\n } catch (error) {\n throw this.handleError(error);\n }\n }\n }\n this.prepareVisitors();\n if (this.hasListener) {\n let root2 = this.result.root;\n while (!root2[isClean$3]) {\n root2[isClean$3] = true;\n let stack = [toStack$1(root2)];\n while (stack.length > 0) {\n let promise = this.visitTick(stack);\n if (isPromise$1(promise)) {\n try {\n await promise;\n } catch (e2) {\n let node2 = stack[stack.length - 1].node;\n throw this.handleError(e2, node2);\n }\n }\n }\n }\n if (this.listeners.OnceExit) {\n for (let [plugin22, visitor] of this.listeners.OnceExit) {\n this.result.lastPlugin = plugin22;\n try {\n if (root2.type === \"document\") {\n let roots = root2.nodes.map(\n (subRoot) => visitor(subRoot, this.helpers)\n );\n await Promise.all(roots);\n } else {\n await visitor(root2, this.helpers);\n }\n } catch (e2) {\n throw this.handleError(e2);\n }\n }\n }\n }\n this.processed = true;\n return this.stringify();\n }\n runOnRoot(plugin22) {\n this.result.lastPlugin = plugin22;\n try {\n if (typeof plugin22 === \"object\" && plugin22.Once) {\n if (this.result.root.type === \"document\") {\n let roots = this.result.root.nodes.map(\n (root2) => plugin22.Once(root2, this.helpers)\n );\n if (isPromise$1(roots[0])) {\n return Promise.all(roots);\n }\n return roots;\n }\n return plugin22.Once(this.result.root, this.helpers);\n } else if (typeof plugin22 === \"function\") {\n return plugin22(this.result.root, this.result);\n }\n } catch (error) {\n throw this.handleError(error);\n }\n }\n stringify() {\n if (this.error) throw this.error;\n if (this.stringified) return this.result;\n this.stringified = true;\n this.sync();\n let opts = this.result.opts;\n let str = stringify$2$1;\n if (opts.syntax) str = opts.syntax.stringify;\n if (opts.stringifier) str = opts.stringifier;\n if (str.stringify) str = str.stringify;\n let map = new MapGenerator$1$1(str, this.result.root, this.result.opts);\n let data = map.generate();\n this.result.css = data[0];\n this.result.map = data[1];\n return this.result;\n }\n sync() {\n if (this.error) throw this.error;\n if (this.processed) return this.result;\n this.processed = true;\n if (this.processing) {\n throw this.getAsyncError();\n }\n for (let plugin22 of this.plugins) {\n let promise = this.runOnRoot(plugin22);\n if (isPromise$1(promise)) {\n throw this.getAsyncError();\n }\n }\n this.prepareVisitors();\n if (this.hasListener) {\n let root2 = this.result.root;\n while (!root2[isClean$3]) {\n root2[isClean$3] = true;\n this.walkSync(root2);\n }\n if (this.listeners.OnceExit) {\n if (root2.type === \"document\") {\n for (let subRoot of root2.nodes) {\n this.visitSync(this.listeners.OnceExit, subRoot);\n }\n } else {\n this.visitSync(this.listeners.OnceExit, root2);\n }\n }\n }\n return this.result;\n }\n then(onFulfilled, onRejected) {\n if (process.env.NODE_ENV !== \"production\") {\n if (!(\"from\" in this.opts)) {\n warnOnce$1$1(\n \"Without `from` option PostCSS could generate wrong source map and will not find Browserslist config. Set it to CSS file path or to `undefined` to prevent this warning.\"\n );\n }\n }\n return this.async().then(onFulfilled, onRejected);\n }\n toString() {\n return this.css;\n }\n visitSync(visitors, node2) {\n for (let [plugin22, visitor] of visitors) {\n this.result.lastPlugin = plugin22;\n let promise;\n try {\n promise = visitor(node2, this.helpers);\n } catch (e2) {\n throw this.handleError(e2, node2.proxyOf);\n }\n if (node2.type !== \"root\" && node2.type !== \"document\" && !node2.parent) {\n return true;\n }\n if (isPromise$1(promise)) {\n throw this.getAsyncError();\n }\n }\n }\n visitTick(stack) {\n let visit2 = stack[stack.length - 1];\n let { node: node2, visitors } = visit2;\n if (node2.type !== \"root\" && node2.type !== \"document\" && !node2.parent) {\n stack.pop();\n return;\n }\n if (visitors.length > 0 && visit2.visitorIndex < visitors.length) {\n let [plugin22, visitor] = visitors[visit2.visitorIndex];\n visit2.visitorIndex += 1;\n if (visit2.visitorIndex === visitors.length) {\n visit2.visitors = [];\n visit2.visitorIndex = 0;\n }\n this.result.lastPlugin = plugin22;\n try {\n return visitor(node2.toProxy(), this.helpers);\n } catch (e2) {\n throw this.handleError(e2, node2);\n }\n }\n if (visit2.iterator !== 0) {\n let iterator = visit2.iterator;\n let child;\n while (child = node2.nodes[node2.indexes[iterator]]) {\n node2.indexes[iterator] += 1;\n if (!child[isClean$3]) {\n child[isClean$3] = true;\n stack.push(toStack$1(child));\n return;\n }\n }\n visit2.iterator = 0;\n delete node2.indexes[iterator];\n }\n let events = visit2.events;\n while (visit2.eventIndex < events.length) {\n let event = events[visit2.eventIndex];\n visit2.eventIndex += 1;\n if (event === CHILDREN$1) {\n if (node2.nodes && node2.nodes.length) {\n node2[isClean$3] = true;\n visit2.iterator = node2.getIterator();\n }\n return;\n } else if (this.listeners[event]) {\n visit2.visitors = this.listeners[event];\n return;\n }\n }\n stack.pop();\n }\n walkSync(node2) {\n node2[isClean$3] = true;\n let events = getEvents$1(node2);\n for (let event of events) {\n if (event === CHILDREN$1) {\n if (node2.nodes) {\n node2.each((child) => {\n if (!child[isClean$3]) this.walkSync(child);\n });\n }\n } else {\n let visitors = this.listeners[event];\n if (visitors) {\n if (this.visitSync(visitors, node2.toProxy())) return;\n }\n }\n }\n }\n warnings() {\n return this.sync().warnings();\n }\n get content() {\n return this.stringify().content;\n }\n get css() {\n return this.stringify().css;\n }\n get map() {\n return this.stringify().map;\n }\n get messages() {\n return this.sync().messages;\n }\n get opts() {\n return this.result.opts;\n }\n get processor() {\n return this.result.processor;\n }\n get root() {\n return this.sync().root;\n }\n get [Symbol.toStringTag]() {\n return \"LazyResult\";\n }\n};\nLazyResult$2$1.registerPostcss = (dependant) => {\n postcss$2$1 = dependant;\n};\nvar lazyResult$1 = LazyResult$2$1;\nLazyResult$2$1.default = LazyResult$2$1;\nRoot$3$1.registerLazyResult(LazyResult$2$1);\nDocument$2$1.registerLazyResult(LazyResult$2$1);\nlet MapGenerator2$1 = mapGenerator$1;\nlet stringify$1$1 = stringify_1$1;\nlet warnOnce2$1 = warnOnce$2$1;\nlet parse$1$1 = parse_1$1;\nconst Result$1$1 = result$1;\nlet NoWorkResult$1$1 = class NoWorkResult {\n constructor(processor2, css, opts) {\n css = css.toString();\n this.stringified = false;\n this._processor = processor2;\n this._css = css;\n this._opts = opts;\n this._map = void 0;\n let root2;\n let str = stringify$1$1;\n this.result = new Result$1$1(this._processor, root2, this._opts);\n this.result.css = css;\n let self = this;\n Object.defineProperty(this.result, \"root\", {\n get() {\n return self.root;\n }\n });\n let map = new MapGenerator2$1(str, root2, this._opts, css);\n if (map.isMap()) {\n let [generatedCSS, generatedMap] = map.generate();\n if (generatedCSS) {\n this.result.css = generatedCSS;\n }\n if (generatedMap) {\n this.result.map = generatedMap;\n }\n } else {\n map.clearAnnotation();\n this.result.css = map.css;\n }\n }\n async() {\n if (this.error) return Promise.reject(this.error);\n return Promise.resolve(this.result);\n }\n catch(onRejected) {\n return this.async().catch(onRejected);\n }\n finally(onFinally) {\n return this.async().then(onFinally, onFinally);\n }\n sync() {\n if (this.error) throw this.error;\n return this.result;\n }\n then(onFulfilled, onRejected) {\n if (process.env.NODE_ENV !== \"production\") {\n if (!(\"from\" in this._opts)) {\n warnOnce2$1(\n \"Without `from` option PostCSS could generate wrong source map and will not find Browserslist config. Set it to CSS file path or to `undefined` to prevent this warning.\"\n );\n }\n }\n return this.async().then(onFulfilled, onRejected);\n }\n toString() {\n return this._css;\n }\n warnings() {\n return [];\n }\n get content() {\n return this.result.css;\n }\n get css() {\n return this.result.css;\n }\n get map() {\n return this.result.map;\n }\n get messages() {\n return [];\n }\n get opts() {\n return this.result.opts;\n }\n get processor() {\n return this.result.processor;\n }\n get root() {\n if (this._root) {\n return this._root;\n }\n let root2;\n let parser2 = parse$1$1;\n try {\n root2 = parser2(this._css, this._opts);\n } catch (error) {\n this.error = error;\n }\n if (this.error) {\n throw this.error;\n } else {\n this._root = root2;\n return root2;\n }\n }\n get [Symbol.toStringTag]() {\n return \"NoWorkResult\";\n }\n};\nvar noWorkResult$1 = NoWorkResult$1$1;\nNoWorkResult$1$1.default = NoWorkResult$1$1;\nlet NoWorkResult2$1 = noWorkResult$1;\nlet LazyResult$1$1 = lazyResult$1;\nlet Document$1$1 = document$1$1;\nlet Root$2$1 = root$1;\nlet Processor$1$1 = class Processor {\n constructor(plugins = []) {\n this.version = \"8.4.38\";\n this.plugins = this.normalize(plugins);\n }\n normalize(plugins) {\n let normalized = [];\n for (let i2 of plugins) {\n if (i2.postcss === true) {\n i2 = i2();\n } else if (i2.postcss) {\n i2 = i2.postcss;\n }\n if (typeof i2 === \"object\" && Array.isArray(i2.plugins)) {\n normalized = normalized.concat(i2.plugins);\n } else if (typeof i2 === \"object\" && i2.postcssPlugin) {\n normalized.push(i2);\n } else if (typeof i2 === \"function\") {\n normalized.push(i2);\n } else if (typeof i2 === \"object\" && (i2.parse || i2.stringify)) {\n if (process.env.NODE_ENV !== \"production\") {\n throw new Error(\n \"PostCSS syntaxes cannot be used as plugins. Instead, please use one of the syntax/parser/stringifier options as outlined in your PostCSS runner documentation.\"\n );\n }\n } else {\n throw new Error(i2 + \" is not a PostCSS plugin\");\n }\n }\n return normalized;\n }\n process(css, opts = {}) {\n if (!this.plugins.length && !opts.parser && !opts.stringifier && !opts.syntax) {\n return new NoWorkResult2$1(this, css, opts);\n } else {\n return new LazyResult$1$1(this, css, opts);\n }\n }\n use(plugin22) {\n this.plugins = this.plugins.concat(this.normalize([plugin22]));\n return this;\n }\n};\nvar processor$1 = Processor$1$1;\nProcessor$1$1.default = Processor$1$1;\nRoot$2$1.registerProcessor(Processor$1$1);\nDocument$1$1.registerProcessor(Processor$1$1);\nlet Declaration$1$1 = declaration$1;\nlet PreviousMap2$1 = previousMap$1;\nlet Comment$1$1 = comment$1;\nlet AtRule$1$1 = atRule$1;\nlet Input$1$1 = input$1;\nlet Root$1$1 = root$1;\nlet Rule$1$1 = rule$1;\nfunction fromJSON$1$1(json, inputs) {\n if (Array.isArray(json)) return json.map((n2) => fromJSON$1$1(n2));\n let { inputs: ownInputs, ...defaults } = json;\n if (ownInputs) {\n inputs = [];\n for (let input2 of ownInputs) {\n let inputHydrated = { ...input2, __proto__: Input$1$1.prototype };\n if (inputHydrated.map) {\n inputHydrated.map = {\n ...inputHydrated.map,\n __proto__: PreviousMap2$1.prototype\n };\n }\n inputs.push(inputHydrated);\n }\n }\n if (defaults.nodes) {\n defaults.nodes = json.nodes.map((n2) => fromJSON$1$1(n2, inputs));\n }\n if (defaults.source) {\n let { inputId, ...source } = defaults.source;\n defaults.source = source;\n if (inputId != null) {\n defaults.source.input = inputs[inputId];\n }\n }\n if (defaults.type === \"root\") {\n return new Root$1$1(defaults);\n } else if (defaults.type === \"decl\") {\n return new Declaration$1$1(defaults);\n } else if (defaults.type === \"rule\") {\n return new Rule$1$1(defaults);\n } else if (defaults.type === \"comment\") {\n return new Comment$1$1(defaults);\n } else if (defaults.type === \"atrule\") {\n return new AtRule$1$1(defaults);\n } else {\n throw new Error(\"Unknown node type: \" + json.type);\n }\n}\nvar fromJSON_1$1 = fromJSON$1$1;\nfromJSON$1$1.default = fromJSON$1$1;\nlet CssSyntaxError2$1 = cssSyntaxError$1;\nlet Declaration2$1 = declaration$1;\nlet LazyResult2$1 = lazyResult$1;\nlet Container2$1 = container$1;\nlet Processor2$1 = processor$1;\nlet stringify$5 = stringify_1$1;\nlet fromJSON$2 = fromJSON_1$1;\nlet Document22 = document$1$1;\nlet Warning2$1 = warning$1;\nlet Comment2$1 = comment$1;\nlet AtRule2$1 = atRule$1;\nlet Result2$1 = result$1;\nlet Input2$1 = input$1;\nlet parse$5 = parse_1$1;\nlet list$3 = list_1$1;\nlet Rule2$1 = rule$1;\nlet Root2$1 = root$1;\nlet Node2$1 = node$1;\nfunction postcss$3(...plugins) {\n if (plugins.length === 1 && Array.isArray(plugins[0])) {\n plugins = plugins[0];\n }\n return new Processor2$1(plugins);\n}\npostcss$3.plugin = function plugin(name, initializer) {\n let warningPrinted = false;\n function creator(...args) {\n if (console && console.warn && !warningPrinted) {\n warningPrinted = true;\n console.warn(\n name + \": postcss.plugin was deprecated. Migration guide:\\nhttps://evilmartians.com/chronicles/postcss-8-plugin-migration\"\n );\n if (process.env.LANG && process.env.LANG.startsWith(\"cn\")) {\n console.warn(\n name + \": 里面 postcss.plugin 被弃用. 迁移指南:\\nhttps://www.w3ctech.com/topic/2226\"\n );\n }\n }\n let transformer = initializer(...args);\n transformer.postcssPlugin = name;\n transformer.postcssVersion = new Processor2$1().version;\n return transformer;\n }\n let cache;\n Object.defineProperty(creator, \"postcss\", {\n get() {\n if (!cache) cache = creator();\n return cache;\n }\n });\n creator.process = function(css, processOpts, pluginOpts) {\n return postcss$3([creator(pluginOpts)]).process(css, processOpts);\n };\n return creator;\n};\npostcss$3.stringify = stringify$5;\npostcss$3.parse = parse$5;\npostcss$3.fromJSON = fromJSON$2;\npostcss$3.list = list$3;\npostcss$3.comment = (defaults) => new Comment2$1(defaults);\npostcss$3.atRule = (defaults) => new AtRule2$1(defaults);\npostcss$3.decl = (defaults) => new Declaration2$1(defaults);\npostcss$3.rule = (defaults) => new Rule2$1(defaults);\npostcss$3.root = (defaults) => new Root2$1(defaults);\npostcss$3.document = (defaults) => new Document22(defaults);\npostcss$3.CssSyntaxError = CssSyntaxError2$1;\npostcss$3.Declaration = Declaration2$1;\npostcss$3.Container = Container2$1;\npostcss$3.Processor = Processor2$1;\npostcss$3.Document = Document22;\npostcss$3.Comment = Comment2$1;\npostcss$3.Warning = Warning2$1;\npostcss$3.AtRule = AtRule2$1;\npostcss$3.Result = Result2$1;\npostcss$3.Input = Input2$1;\npostcss$3.Rule = Rule2$1;\npostcss$3.Root = Root2$1;\npostcss$3.Node = Node2$1;\nLazyResult2$1.registerPostcss(postcss$3);\nvar postcss_1$1 = postcss$3;\npostcss$3.default = postcss$3;\nconst postcss$1$1 = /* @__PURE__ */ getDefaultExportFromCjs$1(postcss_1$1);\npostcss$1$1.stringify;\npostcss$1$1.fromJSON;\npostcss$1$1.plugin;\npostcss$1$1.parse;\npostcss$1$1.list;\npostcss$1$1.document;\npostcss$1$1.comment;\npostcss$1$1.atRule;\npostcss$1$1.rule;\npostcss$1$1.decl;\npostcss$1$1.root;\npostcss$1$1.CssSyntaxError;\npostcss$1$1.Declaration;\npostcss$1$1.Container;\npostcss$1$1.Processor;\npostcss$1$1.Document;\npostcss$1$1.Comment;\npostcss$1$1.Warning;\npostcss$1$1.AtRule;\npostcss$1$1.Result;\npostcss$1$1.Input;\npostcss$1$1.Rule;\npostcss$1$1.Root;\npostcss$1$1.Node;\nconst tagMap = {\n script: \"noscript\",\n // camel case svg element tag names\n altglyph: \"altGlyph\",\n altglyphdef: \"altGlyphDef\",\n altglyphitem: \"altGlyphItem\",\n animatecolor: \"animateColor\",\n animatemotion: \"animateMotion\",\n animatetransform: \"animateTransform\",\n clippath: \"clipPath\",\n feblend: \"feBlend\",\n fecolormatrix: \"feColorMatrix\",\n fecomponenttransfer: \"feComponentTransfer\",\n fecomposite: \"feComposite\",\n feconvolvematrix: \"feConvolveMatrix\",\n fediffuselighting: \"feDiffuseLighting\",\n fedisplacementmap: \"feDisplacementMap\",\n fedistantlight: \"feDistantLight\",\n fedropshadow: \"feDropShadow\",\n feflood: \"feFlood\",\n fefunca: \"feFuncA\",\n fefuncb: \"feFuncB\",\n fefuncg: \"feFuncG\",\n fefuncr: \"feFuncR\",\n fegaussianblur: \"feGaussianBlur\",\n feimage: \"feImage\",\n femerge: \"feMerge\",\n femergenode: \"feMergeNode\",\n femorphology: \"feMorphology\",\n feoffset: \"feOffset\",\n fepointlight: \"fePointLight\",\n fespecularlighting: \"feSpecularLighting\",\n fespotlight: \"feSpotLight\",\n fetile: \"feTile\",\n feturbulence: \"feTurbulence\",\n foreignobject: \"foreignObject\",\n glyphref: \"glyphRef\",\n lineargradient: \"linearGradient\",\n radialgradient: \"radialGradient\"\n};\nfunction getTagName(n2) {\n let tagName = tagMap[n2.tagName] ? tagMap[n2.tagName] : n2.tagName;\n if (tagName === \"link\" && n2.attributes._cssText) {\n tagName = \"style\";\n }\n return tagName;\n}\nfunction adaptCssForReplay(cssText, cache) {\n const cachedStyle = cache == null ? void 0 : cache.stylesWithHoverClass.get(cssText);\n if (cachedStyle) return cachedStyle;\n const ast = postcss$1$1([\n mediaSelectorPlugin,\n pseudoClassPlugin\n ]).process(cssText);\n const result2 = ast.css;\n cache == null ? void 0 : cache.stylesWithHoverClass.set(cssText, result2);\n return result2;\n}\nfunction createCache() {\n const stylesWithHoverClass = /* @__PURE__ */ new Map();\n return {\n stylesWithHoverClass\n };\n}\nfunction applyCssSplits(n2, cssText, hackCss, cache) {\n const childTextNodes = [];\n for (const scn of n2.childNodes) {\n if (scn.type === NodeType$3.Text) {\n childTextNodes.push(scn);\n }\n }\n const cssTextSplits = cssText.split(\"/* rr_split */\");\n while (cssTextSplits.length > 1 && cssTextSplits.length > childTextNodes.length) {\n cssTextSplits.splice(-2, 2, cssTextSplits.slice(-2).join(\"\"));\n }\n for (let i2 = 0; i2 < childTextNodes.length; i2++) {\n const childTextNode = childTextNodes[i2];\n const cssTextSection = cssTextSplits[i2];\n if (childTextNode && cssTextSection) {\n childTextNode.textContent = hackCss ? adaptCssForReplay(cssTextSection, cache) : cssTextSection;\n }\n }\n}\nfunction buildStyleNode(n2, styleEl, cssText, options) {\n const { doc, hackCss, cache } = options;\n if (n2.childNodes.length) {\n applyCssSplits(n2, cssText, hackCss, cache);\n } else {\n if (hackCss) {\n cssText = adaptCssForReplay(cssText, cache);\n }\n styleEl.appendChild(doc.createTextNode(cssText));\n }\n}\nfunction buildNode(n2, options) {\n var _a2;\n const { doc, hackCss, cache } = options;\n switch (n2.type) {\n case NodeType$3.Document:\n return doc.implementation.createDocument(null, \"\", null);\n case NodeType$3.DocumentType:\n return doc.implementation.createDocumentType(\n n2.name || \"html\",\n n2.publicId,\n n2.systemId\n );\n case NodeType$3.Element: {\n const tagName = getTagName(n2);\n let node2;\n if (n2.isSVG) {\n node2 = doc.createElementNS(\"http://www.w3.org/2000/svg\", tagName);\n } else {\n if (\n // If the tag name is a custom element name\n n2.isCustom && // If the browser supports custom elements\n ((_a2 = doc.defaultView) == null ? void 0 : _a2.customElements) && // If the custom element hasn't been defined yet\n !doc.defaultView.customElements.get(n2.tagName)\n )\n doc.defaultView.customElements.define(\n n2.tagName,\n class extends doc.defaultView.HTMLElement {\n }\n );\n node2 = doc.createElement(tagName);\n }\n const specialAttributes = {};\n for (const name in n2.attributes) {\n if (!Object.prototype.hasOwnProperty.call(n2.attributes, name)) {\n continue;\n }\n let value = n2.attributes[name];\n if (tagName === \"option\" && name === \"selected\" && value === false) {\n continue;\n }\n if (value === null) {\n continue;\n }\n if (value === true) value = \"\";\n if (name.startsWith(\"rr_\")) {\n specialAttributes[name] = value;\n continue;\n }\n if (typeof value !== \"string\") ;\n else if (tagName === \"style\" && name === \"_cssText\") {\n buildStyleNode(n2, node2, value, options);\n continue;\n } else if (tagName === \"textarea\" && name === \"value\") {\n node2.appendChild(doc.createTextNode(value));\n n2.childNodes = [];\n continue;\n }\n try {\n if (n2.isSVG && name === \"xlink:href\") {\n node2.setAttributeNS(\n \"http://www.w3.org/1999/xlink\",\n name,\n value.toString()\n );\n } else if (name === \"onload\" || name === \"onclick\" || name.substring(0, 7) === \"onmouse\") {\n node2.setAttribute(\"_\" + name, value.toString());\n } else if (tagName === \"meta\" && n2.attributes[\"http-equiv\"] === \"Content-Security-Policy\" && name === \"content\") {\n node2.setAttribute(\"csp-content\", value.toString());\n continue;\n } else if (tagName === \"link\" && (n2.attributes.rel === \"preload\" || n2.attributes.rel === \"modulepreload\") && n2.attributes.as === \"script\") {\n } else if (tagName === \"link\" && n2.attributes.rel === \"prefetch\" && typeof n2.attributes.href === \"string\" && n2.attributes.href.endsWith(\".js\")) {\n } else if (tagName === \"img\" && n2.attributes.srcset && n2.attributes.rr_dataURL) {\n node2.setAttribute(\n \"rrweb-original-srcset\",\n n2.attributes.srcset\n );\n } else {\n node2.setAttribute(name, value.toString());\n }\n } catch (error) {\n }\n }\n for (const name in specialAttributes) {\n const value = specialAttributes[name];\n if (tagName === \"canvas\" && name === \"rr_dataURL\") {\n const image = doc.createElement(\"img\");\n image.onload = () => {\n const ctx = node2.getContext(\"2d\");\n if (ctx) {\n ctx.drawImage(image, 0, 0, image.width, image.height);\n }\n };\n image.src = value.toString();\n if (node2.RRNodeType)\n node2.rr_dataURL = value.toString();\n } else if (tagName === \"img\" && name === \"rr_dataURL\") {\n const image = node2;\n if (!image.currentSrc.startsWith(\"data:\")) {\n image.setAttribute(\n \"rrweb-original-src\",\n n2.attributes.src\n );\n image.src = value.toString();\n }\n }\n if (name === \"rr_width\") {\n node2.style.setProperty(\"width\", value.toString());\n } else if (name === \"rr_height\") {\n node2.style.setProperty(\"height\", value.toString());\n } else if (name === \"rr_mediaCurrentTime\" && typeof value === \"number\") {\n node2.currentTime = value;\n } else if (name === \"rr_mediaState\") {\n switch (value) {\n case \"played\":\n node2.play().catch((e2) => console.warn(\"media playback error\", e2));\n break;\n case \"paused\":\n node2.pause();\n break;\n }\n } else if (name === \"rr_mediaPlaybackRate\" && typeof value === \"number\") {\n node2.playbackRate = value;\n } else if (name === \"rr_mediaMuted\" && typeof value === \"boolean\") {\n node2.muted = value;\n } else if (name === \"rr_mediaLoop\" && typeof value === \"boolean\") {\n node2.loop = value;\n } else if (name === \"rr_mediaVolume\" && typeof value === \"number\") {\n node2.volume = value;\n } else if (name === \"rr_open_mode\") {\n node2.setAttribute(\n \"rr_open_mode\",\n value\n );\n }\n }\n if (n2.isShadowHost) {\n if (!node2.shadowRoot) {\n node2.attachShadow({ mode: \"open\" });\n } else {\n while (node2.shadowRoot.firstChild) {\n node2.shadowRoot.removeChild(node2.shadowRoot.firstChild);\n }\n }\n }\n return node2;\n }\n case NodeType$3.Text:\n if (n2.isStyle && hackCss) {\n return doc.createTextNode(adaptCssForReplay(n2.textContent, cache));\n }\n return doc.createTextNode(n2.textContent);\n case NodeType$3.CDATA:\n return doc.createCDATASection(n2.textContent);\n case NodeType$3.Comment:\n return doc.createComment(n2.textContent);\n default:\n return null;\n }\n}\nfunction buildNodeWithSN(n2, options) {\n const {\n doc,\n mirror: mirror2,\n skipChild = false,\n hackCss = true,\n afterAppend,\n cache\n } = options;\n if (mirror2.has(n2.id)) {\n const nodeInMirror = mirror2.getNode(n2.id);\n const meta = mirror2.getMeta(nodeInMirror);\n if (isNodeMetaEqual(meta, n2)) return mirror2.getNode(n2.id);\n }\n let node2 = buildNode(n2, { doc, hackCss, cache });\n if (!node2) {\n return null;\n }\n if (n2.rootId && mirror2.getNode(n2.rootId) !== doc) {\n mirror2.replace(n2.rootId, doc);\n }\n if (n2.type === NodeType$3.Document) {\n doc.close();\n doc.open();\n if (n2.compatMode === \"BackCompat\" && n2.childNodes && n2.childNodes[0].type !== NodeType$3.DocumentType) {\n if (n2.childNodes[0].type === NodeType$3.Element && \"xmlns\" in n2.childNodes[0].attributes && n2.childNodes[0].attributes.xmlns === \"http://www.w3.org/1999/xhtml\") {\n doc.write(\n ''\n );\n } else {\n doc.write(\n ''\n );\n }\n }\n node2 = doc;\n }\n mirror2.add(node2, n2);\n if ((n2.type === NodeType$3.Document || n2.type === NodeType$3.Element) && !skipChild) {\n for (const childN of n2.childNodes) {\n const childNode = buildNodeWithSN(childN, {\n doc,\n mirror: mirror2,\n skipChild: false,\n hackCss,\n afterAppend,\n cache\n });\n if (!childNode) {\n console.warn(\"Failed to rebuild\", childN);\n continue;\n }\n if (childN.isShadow && isElement(node2) && node2.shadowRoot) {\n node2.shadowRoot.appendChild(childNode);\n } else if (n2.type === NodeType$3.Document && childN.type == NodeType$3.Element) {\n const htmlElement = childNode;\n let body = null;\n htmlElement.childNodes.forEach((child) => {\n if (child.nodeName === \"BODY\") body = child;\n });\n if (body) {\n htmlElement.removeChild(body);\n node2.appendChild(childNode);\n htmlElement.appendChild(body);\n } else {\n node2.appendChild(childNode);\n }\n } else {\n node2.appendChild(childNode);\n }\n if (afterAppend) {\n afterAppend(childNode, childN.id);\n }\n }\n }\n return node2;\n}\nfunction visit(mirror2, onVisit) {\n function walk(node2) {\n onVisit(node2);\n }\n for (const id of mirror2.getIds()) {\n if (mirror2.has(id)) {\n walk(mirror2.getNode(id));\n }\n }\n}\nfunction handleScroll(node2, mirror2) {\n const n2 = mirror2.getMeta(node2);\n if ((n2 == null ? void 0 : n2.type) !== NodeType$3.Element) {\n return;\n }\n const el = node2;\n for (const name in n2.attributes) {\n if (!(Object.prototype.hasOwnProperty.call(n2.attributes, name) && name.startsWith(\"rr_\"))) {\n continue;\n }\n const value = n2.attributes[name];\n if (name === \"rr_scrollLeft\") {\n el.scrollLeft = value;\n }\n if (name === \"rr_scrollTop\") {\n el.scrollTop = value;\n }\n }\n}\nfunction rebuild(n2, options) {\n const {\n doc,\n onVisit,\n hackCss = true,\n afterAppend,\n cache,\n mirror: mirror2 = new Mirror()\n } = options;\n const node2 = buildNodeWithSN(n2, {\n doc,\n mirror: mirror2,\n skipChild: false,\n hackCss,\n afterAppend,\n cache\n });\n visit(mirror2, (visitedNode) => {\n if (onVisit) {\n onVisit(visitedNode);\n }\n handleScroll(visitedNode, mirror2);\n });\n return node2;\n}\nvar __defProp2 = Object.defineProperty;\nvar __defNormalProp2 = (obj, key, value) => key in obj ? __defProp2(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;\nvar __publicField2 = (obj, key, value) => __defNormalProp2(obj, typeof key !== \"symbol\" ? key + \"\" : key, value);\nvar __defProp22 = Object.defineProperty;\nvar __defNormalProp22 = (obj, key, value) => key in obj ? __defProp22(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;\nvar __publicField22 = (obj, key, value) => __defNormalProp22(obj, typeof key !== \"symbol\" ? key + \"\" : key, value);\nlet Mirror$1 = class Mirror2 {\n constructor() {\n __publicField22(this, \"idNodeMap\", /* @__PURE__ */ new Map());\n __publicField22(this, \"nodeMetaMap\", /* @__PURE__ */ new WeakMap());\n }\n getId(n2) {\n var _a2;\n if (!n2) return -1;\n const id = (_a2 = this.getMeta(n2)) == null ? void 0 : _a2.id;\n return id ?? -1;\n }\n getNode(id) {\n return this.idNodeMap.get(id) || null;\n }\n getIds() {\n return Array.from(this.idNodeMap.keys());\n }\n getMeta(n2) {\n return this.nodeMetaMap.get(n2) || null;\n }\n // removes the node from idNodeMap\n // doesn't remove the node from nodeMetaMap\n removeNodeFromMap(n2) {\n const id = this.getId(n2);\n this.idNodeMap.delete(id);\n if (n2.childNodes) {\n n2.childNodes.forEach(\n (childNode) => this.removeNodeFromMap(childNode)\n );\n }\n }\n has(id) {\n return this.idNodeMap.has(id);\n }\n hasNode(node2) {\n return this.nodeMetaMap.has(node2);\n }\n add(n2, meta) {\n const id = meta.id;\n this.idNodeMap.set(id, n2);\n this.nodeMetaMap.set(n2, meta);\n }\n replace(id, n2) {\n const oldNode = this.getNode(id);\n if (oldNode) {\n const meta = this.nodeMetaMap.get(oldNode);\n if (meta) this.nodeMetaMap.set(n2, meta);\n }\n this.idNodeMap.set(id, n2);\n }\n reset() {\n this.idNodeMap = /* @__PURE__ */ new Map();\n this.nodeMetaMap = /* @__PURE__ */ new WeakMap();\n }\n};\nfunction createMirror$1() {\n return new Mirror$1();\n}\nfunction getDefaultExportFromCjs(x2) {\n return x2 && x2.__esModule && Object.prototype.hasOwnProperty.call(x2, \"default\") ? x2[\"default\"] : x2;\n}\nfunction getAugmentedNamespace(n2) {\n if (n2.__esModule) return n2;\n var f2 = n2.default;\n if (typeof f2 == \"function\") {\n var a2 = function a22() {\n if (this instanceof a22) {\n return Reflect.construct(f2, arguments, this.constructor);\n }\n return f2.apply(this, arguments);\n };\n a2.prototype = f2.prototype;\n } else a2 = {};\n Object.defineProperty(a2, \"__esModule\", { value: true });\n Object.keys(n2).forEach(function(k) {\n var d = Object.getOwnPropertyDescriptor(n2, k);\n Object.defineProperty(a2, k, d.get ? d : {\n enumerable: true,\n get: function() {\n return n2[k];\n }\n });\n });\n return a2;\n}\nvar picocolors_browser = { exports: {} };\nvar x = String;\nvar create = function() {\n return { isColorSupported: false, reset: x, bold: x, dim: x, italic: x, underline: x, inverse: x, hidden: x, strikethrough: x, black: x, red: x, green: x, yellow: x, blue: x, magenta: x, cyan: x, white: x, gray: x, bgBlack: x, bgRed: x, bgGreen: x, bgYellow: x, bgBlue: x, bgMagenta: x, bgCyan: x, bgWhite: x };\n};\npicocolors_browser.exports = create();\npicocolors_browser.exports.createColors = create;\nvar picocolors_browserExports = picocolors_browser.exports;\nconst __viteBrowserExternal = {};\nconst __viteBrowserExternal$1 = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({\n __proto__: null,\n default: __viteBrowserExternal\n}, Symbol.toStringTag, { value: \"Module\" }));\nconst require$$2 = /* @__PURE__ */ getAugmentedNamespace(__viteBrowserExternal$1);\nlet pico = picocolors_browserExports;\nlet terminalHighlight$1 = require$$2;\nlet CssSyntaxError$3 = class CssSyntaxError2 extends Error {\n constructor(message, line, column, source, file, plugin22) {\n super(message);\n this.name = \"CssSyntaxError\";\n this.reason = message;\n if (file) {\n this.file = file;\n }\n if (source) {\n this.source = source;\n }\n if (plugin22) {\n this.plugin = plugin22;\n }\n if (typeof line !== \"undefined\" && typeof column !== \"undefined\") {\n if (typeof line === \"number\") {\n this.line = line;\n this.column = column;\n } else {\n this.line = line.line;\n this.column = line.column;\n this.endLine = column.line;\n this.endColumn = column.column;\n }\n }\n this.setMessage();\n if (Error.captureStackTrace) {\n Error.captureStackTrace(this, CssSyntaxError2);\n }\n }\n setMessage() {\n this.message = this.plugin ? this.plugin + \": \" : \"\";\n this.message += this.file ? this.file : \"\";\n if (typeof this.line !== \"undefined\") {\n this.message += \":\" + this.line + \":\" + this.column;\n }\n this.message += \": \" + this.reason;\n }\n showSourceCode(color) {\n if (!this.source) return \"\";\n let css = this.source;\n if (color == null) color = pico.isColorSupported;\n if (terminalHighlight$1) {\n if (color) css = terminalHighlight$1(css);\n }\n let lines = css.split(/\\r?\\n/);\n let start = Math.max(this.line - 3, 0);\n let end = Math.min(this.line + 2, lines.length);\n let maxWidth = String(end).length;\n let mark, aside;\n if (color) {\n let { bold, gray, red } = pico.createColors(true);\n mark = (text) => bold(red(text));\n aside = (text) => gray(text);\n } else {\n mark = aside = (str) => str;\n }\n return lines.slice(start, end).map((line, index2) => {\n let number = start + 1 + index2;\n let gutter = \" \" + (\" \" + number).slice(-maxWidth) + \" | \";\n if (number === this.line) {\n let spacing = aside(gutter.replace(/\\d/g, \" \")) + line.slice(0, this.column - 1).replace(/[^\\t]/g, \" \");\n return mark(\">\") + aside(gutter) + line + \"\\n \" + spacing + mark(\"^\");\n }\n return \" \" + aside(gutter) + line;\n }).join(\"\\n\");\n }\n toString() {\n let code = this.showSourceCode();\n if (code) {\n code = \"\\n\\n\" + code + \"\\n\";\n }\n return this.name + \": \" + this.message + code;\n }\n};\nvar cssSyntaxError = CssSyntaxError$3;\nCssSyntaxError$3.default = CssSyntaxError$3;\nvar symbols = {};\nsymbols.isClean = Symbol(\"isClean\");\nsymbols.my = Symbol(\"my\");\nconst DEFAULT_RAW = {\n after: \"\\n\",\n beforeClose: \"\\n\",\n beforeComment: \"\\n\",\n beforeDecl: \"\\n\",\n beforeOpen: \" \",\n beforeRule: \"\\n\",\n colon: \": \",\n commentLeft: \" \",\n commentRight: \" \",\n emptyBody: \"\",\n indent: \" \",\n semicolon: false\n};\nfunction capitalize(str) {\n return str[0].toUpperCase() + str.slice(1);\n}\nlet Stringifier$2 = class Stringifier2 {\n constructor(builder) {\n this.builder = builder;\n }\n atrule(node2, semicolon) {\n let name = \"@\" + node2.name;\n let params = node2.params ? this.rawValue(node2, \"params\") : \"\";\n if (typeof node2.raws.afterName !== \"undefined\") {\n name += node2.raws.afterName;\n } else if (params) {\n name += \" \";\n }\n if (node2.nodes) {\n this.block(node2, name + params);\n } else {\n let end = (node2.raws.between || \"\") + (semicolon ? \";\" : \"\");\n this.builder(name + params + end, node2);\n }\n }\n beforeAfter(node2, detect) {\n let value;\n if (node2.type === \"decl\") {\n value = this.raw(node2, null, \"beforeDecl\");\n } else if (node2.type === \"comment\") {\n value = this.raw(node2, null, \"beforeComment\");\n } else if (detect === \"before\") {\n value = this.raw(node2, null, \"beforeRule\");\n } else {\n value = this.raw(node2, null, \"beforeClose\");\n }\n let buf = node2.parent;\n let depth = 0;\n while (buf && buf.type !== \"root\") {\n depth += 1;\n buf = buf.parent;\n }\n if (value.includes(\"\\n\")) {\n let indent = this.raw(node2, null, \"indent\");\n if (indent.length) {\n for (let step = 0; step < depth; step++) value += indent;\n }\n }\n return value;\n }\n block(node2, start) {\n let between = this.raw(node2, \"between\", \"beforeOpen\");\n this.builder(start + between + \"{\", node2, \"start\");\n let after;\n if (node2.nodes && node2.nodes.length) {\n this.body(node2);\n after = this.raw(node2, \"after\");\n } else {\n after = this.raw(node2, \"after\", \"emptyBody\");\n }\n if (after) this.builder(after);\n this.builder(\"}\", node2, \"end\");\n }\n body(node2) {\n let last = node2.nodes.length - 1;\n while (last > 0) {\n if (node2.nodes[last].type !== \"comment\") break;\n last -= 1;\n }\n let semicolon = this.raw(node2, \"semicolon\");\n for (let i2 = 0; i2 < node2.nodes.length; i2++) {\n let child = node2.nodes[i2];\n let before = this.raw(child, \"before\");\n if (before) this.builder(before);\n this.stringify(child, last !== i2 || semicolon);\n }\n }\n comment(node2) {\n let left = this.raw(node2, \"left\", \"commentLeft\");\n let right = this.raw(node2, \"right\", \"commentRight\");\n this.builder(\"/*\" + left + node2.text + right + \"*/\", node2);\n }\n decl(node2, semicolon) {\n let between = this.raw(node2, \"between\", \"colon\");\n let string = node2.prop + between + this.rawValue(node2, \"value\");\n if (node2.important) {\n string += node2.raws.important || \" !important\";\n }\n if (semicolon) string += \";\";\n this.builder(string, node2);\n }\n document(node2) {\n this.body(node2);\n }\n raw(node2, own, detect) {\n let value;\n if (!detect) detect = own;\n if (own) {\n value = node2.raws[own];\n if (typeof value !== \"undefined\") return value;\n }\n let parent = node2.parent;\n if (detect === \"before\") {\n if (!parent || parent.type === \"root\" && parent.first === node2) {\n return \"\";\n }\n if (parent && parent.type === \"document\") {\n return \"\";\n }\n }\n if (!parent) return DEFAULT_RAW[detect];\n let root2 = node2.root();\n if (!root2.rawCache) root2.rawCache = {};\n if (typeof root2.rawCache[detect] !== \"undefined\") {\n return root2.rawCache[detect];\n }\n if (detect === \"before\" || detect === \"after\") {\n return this.beforeAfter(node2, detect);\n } else {\n let method = \"raw\" + capitalize(detect);\n if (this[method]) {\n value = this[method](root2, node2);\n } else {\n root2.walk((i2) => {\n value = i2.raws[own];\n if (typeof value !== \"undefined\") return false;\n });\n }\n }\n if (typeof value === \"undefined\") value = DEFAULT_RAW[detect];\n root2.rawCache[detect] = value;\n return value;\n }\n rawBeforeClose(root2) {\n let value;\n root2.walk((i2) => {\n if (i2.nodes && i2.nodes.length > 0) {\n if (typeof i2.raws.after !== \"undefined\") {\n value = i2.raws.after;\n if (value.includes(\"\\n\")) {\n value = value.replace(/[^\\n]+$/, \"\");\n }\n return false;\n }\n }\n });\n if (value) value = value.replace(/\\S/g, \"\");\n return value;\n }\n rawBeforeComment(root2, node2) {\n let value;\n root2.walkComments((i2) => {\n if (typeof i2.raws.before !== \"undefined\") {\n value = i2.raws.before;\n if (value.includes(\"\\n\")) {\n value = value.replace(/[^\\n]+$/, \"\");\n }\n return false;\n }\n });\n if (typeof value === \"undefined\") {\n value = this.raw(node2, null, \"beforeDecl\");\n } else if (value) {\n value = value.replace(/\\S/g, \"\");\n }\n return value;\n }\n rawBeforeDecl(root2, node2) {\n let value;\n root2.walkDecls((i2) => {\n if (typeof i2.raws.before !== \"undefined\") {\n value = i2.raws.before;\n if (value.includes(\"\\n\")) {\n value = value.replace(/[^\\n]+$/, \"\");\n }\n return false;\n }\n });\n if (typeof value === \"undefined\") {\n value = this.raw(node2, null, \"beforeRule\");\n } else if (value) {\n value = value.replace(/\\S/g, \"\");\n }\n return value;\n }\n rawBeforeOpen(root2) {\n let value;\n root2.walk((i2) => {\n if (i2.type !== \"decl\") {\n value = i2.raws.between;\n if (typeof value !== \"undefined\") return false;\n }\n });\n return value;\n }\n rawBeforeRule(root2) {\n let value;\n root2.walk((i2) => {\n if (i2.nodes && (i2.parent !== root2 || root2.first !== i2)) {\n if (typeof i2.raws.before !== \"undefined\") {\n value = i2.raws.before;\n if (value.includes(\"\\n\")) {\n value = value.replace(/[^\\n]+$/, \"\");\n }\n return false;\n }\n }\n });\n if (value) value = value.replace(/\\S/g, \"\");\n return value;\n }\n rawColon(root2) {\n let value;\n root2.walkDecls((i2) => {\n if (typeof i2.raws.between !== \"undefined\") {\n value = i2.raws.between.replace(/[^\\s:]/g, \"\");\n return false;\n }\n });\n return value;\n }\n rawEmptyBody(root2) {\n let value;\n root2.walk((i2) => {\n if (i2.nodes && i2.nodes.length === 0) {\n value = i2.raws.after;\n if (typeof value !== \"undefined\") return false;\n }\n });\n return value;\n }\n rawIndent(root2) {\n if (root2.raws.indent) return root2.raws.indent;\n let value;\n root2.walk((i2) => {\n let p = i2.parent;\n if (p && p !== root2 && p.parent && p.parent === root2) {\n if (typeof i2.raws.before !== \"undefined\") {\n let parts = i2.raws.before.split(\"\\n\");\n value = parts[parts.length - 1];\n value = value.replace(/\\S/g, \"\");\n return false;\n }\n }\n });\n return value;\n }\n rawSemicolon(root2) {\n let value;\n root2.walk((i2) => {\n if (i2.nodes && i2.nodes.length && i2.last.type === \"decl\") {\n value = i2.raws.semicolon;\n if (typeof value !== \"undefined\") return false;\n }\n });\n return value;\n }\n rawValue(node2, prop) {\n let value = node2[prop];\n let raw = node2.raws[prop];\n if (raw && raw.value === value) {\n return raw.raw;\n }\n return value;\n }\n root(node2) {\n this.body(node2);\n if (node2.raws.after) this.builder(node2.raws.after);\n }\n rule(node2) {\n this.block(node2, this.rawValue(node2, \"selector\"));\n if (node2.raws.ownSemicolon) {\n this.builder(node2.raws.ownSemicolon, node2, \"end\");\n }\n }\n stringify(node2, semicolon) {\n if (!this[node2.type]) {\n throw new Error(\n \"Unknown AST node type \" + node2.type + \". Maybe you need to change PostCSS stringifier.\"\n );\n }\n this[node2.type](node2, semicolon);\n }\n};\nvar stringifier = Stringifier$2;\nStringifier$2.default = Stringifier$2;\nlet Stringifier$1 = stringifier;\nfunction stringify$4(node2, builder) {\n let str = new Stringifier$1(builder);\n str.stringify(node2);\n}\nvar stringify_1 = stringify$4;\nstringify$4.default = stringify$4;\nlet { isClean: isClean$2, my: my$2 } = symbols;\nlet CssSyntaxError$2 = cssSyntaxError;\nlet Stringifier22 = stringifier;\nlet stringify$3 = stringify_1;\nfunction cloneNode(obj, parent) {\n let cloned = new obj.constructor();\n for (let i2 in obj) {\n if (!Object.prototype.hasOwnProperty.call(obj, i2)) {\n continue;\n }\n if (i2 === \"proxyCache\") continue;\n let value = obj[i2];\n let type = typeof value;\n if (i2 === \"parent\" && type === \"object\") {\n if (parent) cloned[i2] = parent;\n } else if (i2 === \"source\") {\n cloned[i2] = value;\n } else if (Array.isArray(value)) {\n cloned[i2] = value.map((j) => cloneNode(j, cloned));\n } else {\n if (type === \"object\" && value !== null) value = cloneNode(value);\n cloned[i2] = value;\n }\n }\n return cloned;\n}\nlet Node$4 = class Node3 {\n constructor(defaults = {}) {\n this.raws = {};\n this[isClean$2] = false;\n this[my$2] = true;\n for (let name in defaults) {\n if (name === \"nodes\") {\n this.nodes = [];\n for (let node2 of defaults[name]) {\n if (typeof node2.clone === \"function\") {\n this.append(node2.clone());\n } else {\n this.append(node2);\n }\n }\n } else {\n this[name] = defaults[name];\n }\n }\n }\n addToError(error) {\n error.postcssNode = this;\n if (error.stack && this.source && /\\n\\s{4}at /.test(error.stack)) {\n let s2 = this.source;\n error.stack = error.stack.replace(\n /\\n\\s{4}at /,\n `$&${s2.input.from}:${s2.start.line}:${s2.start.column}$&`\n );\n }\n return error;\n }\n after(add) {\n this.parent.insertAfter(this, add);\n return this;\n }\n assign(overrides = {}) {\n for (let name in overrides) {\n this[name] = overrides[name];\n }\n return this;\n }\n before(add) {\n this.parent.insertBefore(this, add);\n return this;\n }\n cleanRaws(keepBetween) {\n delete this.raws.before;\n delete this.raws.after;\n if (!keepBetween) delete this.raws.between;\n }\n clone(overrides = {}) {\n let cloned = cloneNode(this);\n for (let name in overrides) {\n cloned[name] = overrides[name];\n }\n return cloned;\n }\n cloneAfter(overrides = {}) {\n let cloned = this.clone(overrides);\n this.parent.insertAfter(this, cloned);\n return cloned;\n }\n cloneBefore(overrides = {}) {\n let cloned = this.clone(overrides);\n this.parent.insertBefore(this, cloned);\n return cloned;\n }\n error(message, opts = {}) {\n if (this.source) {\n let { end, start } = this.rangeBy(opts);\n return this.source.input.error(\n message,\n { column: start.column, line: start.line },\n { column: end.column, line: end.line },\n opts\n );\n }\n return new CssSyntaxError$2(message);\n }\n getProxyProcessor() {\n return {\n get(node2, prop) {\n if (prop === \"proxyOf\") {\n return node2;\n } else if (prop === \"root\") {\n return () => node2.root().toProxy();\n } else {\n return node2[prop];\n }\n },\n set(node2, prop, value) {\n if (node2[prop] === value) return true;\n node2[prop] = value;\n if (prop === \"prop\" || prop === \"value\" || prop === \"name\" || prop === \"params\" || prop === \"important\" || /* c8 ignore next */\n prop === \"text\") {\n node2.markDirty();\n }\n return true;\n }\n };\n }\n markDirty() {\n if (this[isClean$2]) {\n this[isClean$2] = false;\n let next = this;\n while (next = next.parent) {\n next[isClean$2] = false;\n }\n }\n }\n next() {\n if (!this.parent) return void 0;\n let index2 = this.parent.index(this);\n return this.parent.nodes[index2 + 1];\n }\n positionBy(opts, stringRepresentation) {\n let pos = this.source.start;\n if (opts.index) {\n pos = this.positionInside(opts.index, stringRepresentation);\n } else if (opts.word) {\n stringRepresentation = this.toString();\n let index2 = stringRepresentation.indexOf(opts.word);\n if (index2 !== -1) pos = this.positionInside(index2, stringRepresentation);\n }\n return pos;\n }\n positionInside(index2, stringRepresentation) {\n let string = stringRepresentation || this.toString();\n let column = this.source.start.column;\n let line = this.source.start.line;\n for (let i2 = 0; i2 < index2; i2++) {\n if (string[i2] === \"\\n\") {\n column = 1;\n line += 1;\n } else {\n column += 1;\n }\n }\n return { column, line };\n }\n prev() {\n if (!this.parent) return void 0;\n let index2 = this.parent.index(this);\n return this.parent.nodes[index2 - 1];\n }\n rangeBy(opts) {\n let start = {\n column: this.source.start.column,\n line: this.source.start.line\n };\n let end = this.source.end ? {\n column: this.source.end.column + 1,\n line: this.source.end.line\n } : {\n column: start.column + 1,\n line: start.line\n };\n if (opts.word) {\n let stringRepresentation = this.toString();\n let index2 = stringRepresentation.indexOf(opts.word);\n if (index2 !== -1) {\n start = this.positionInside(index2, stringRepresentation);\n end = this.positionInside(index2 + opts.word.length, stringRepresentation);\n }\n } else {\n if (opts.start) {\n start = {\n column: opts.start.column,\n line: opts.start.line\n };\n } else if (opts.index) {\n start = this.positionInside(opts.index);\n }\n if (opts.end) {\n end = {\n column: opts.end.column,\n line: opts.end.line\n };\n } else if (typeof opts.endIndex === \"number\") {\n end = this.positionInside(opts.endIndex);\n } else if (opts.index) {\n end = this.positionInside(opts.index + 1);\n }\n }\n if (end.line < start.line || end.line === start.line && end.column <= start.column) {\n end = { column: start.column + 1, line: start.line };\n }\n return { end, start };\n }\n raw(prop, defaultType) {\n let str = new Stringifier22();\n return str.raw(this, prop, defaultType);\n }\n remove() {\n if (this.parent) {\n this.parent.removeChild(this);\n }\n this.parent = void 0;\n return this;\n }\n replaceWith(...nodes) {\n if (this.parent) {\n let bookmark = this;\n let foundSelf = false;\n for (let node2 of nodes) {\n if (node2 === this) {\n foundSelf = true;\n } else if (foundSelf) {\n this.parent.insertAfter(bookmark, node2);\n bookmark = node2;\n } else {\n this.parent.insertBefore(bookmark, node2);\n }\n }\n if (!foundSelf) {\n this.remove();\n }\n }\n return this;\n }\n root() {\n let result2 = this;\n while (result2.parent && result2.parent.type !== \"document\") {\n result2 = result2.parent;\n }\n return result2;\n }\n toJSON(_, inputs) {\n let fixed = {};\n let emitInputs = inputs == null;\n inputs = inputs || /* @__PURE__ */ new Map();\n let inputsNextIndex = 0;\n for (let name in this) {\n if (!Object.prototype.hasOwnProperty.call(this, name)) {\n continue;\n }\n if (name === \"parent\" || name === \"proxyCache\") continue;\n let value = this[name];\n if (Array.isArray(value)) {\n fixed[name] = value.map((i2) => {\n if (typeof i2 === \"object\" && i2.toJSON) {\n return i2.toJSON(null, inputs);\n } else {\n return i2;\n }\n });\n } else if (typeof value === \"object\" && value.toJSON) {\n fixed[name] = value.toJSON(null, inputs);\n } else if (name === \"source\") {\n let inputId = inputs.get(value.input);\n if (inputId == null) {\n inputId = inputsNextIndex;\n inputs.set(value.input, inputsNextIndex);\n inputsNextIndex++;\n }\n fixed[name] = {\n end: value.end,\n inputId,\n start: value.start\n };\n } else {\n fixed[name] = value;\n }\n }\n if (emitInputs) {\n fixed.inputs = [...inputs.keys()].map((input2) => input2.toJSON());\n }\n return fixed;\n }\n toProxy() {\n if (!this.proxyCache) {\n this.proxyCache = new Proxy(this, this.getProxyProcessor());\n }\n return this.proxyCache;\n }\n toString(stringifier2 = stringify$3) {\n if (stringifier2.stringify) stringifier2 = stringifier2.stringify;\n let result2 = \"\";\n stringifier2(this, (i2) => {\n result2 += i2;\n });\n return result2;\n }\n warn(result2, text, opts) {\n let data = { node: this };\n for (let i2 in opts) data[i2] = opts[i2];\n return result2.warn(text, data);\n }\n get proxyOf() {\n return this;\n }\n};\nvar node = Node$4;\nNode$4.default = Node$4;\nlet Node$3 = node;\nlet Declaration$4 = class Declaration2 extends Node$3 {\n constructor(defaults) {\n if (defaults && typeof defaults.value !== \"undefined\" && typeof defaults.value !== \"string\") {\n defaults = { ...defaults, value: String(defaults.value) };\n }\n super(defaults);\n this.type = \"decl\";\n }\n get variable() {\n return this.prop.startsWith(\"--\") || this.prop[0] === \"$\";\n }\n};\nvar declaration = Declaration$4;\nDeclaration$4.default = Declaration$4;\nlet urlAlphabet = \"useandom-26T198340PX75pxJACKVERYMINDBUSHWOLF_GQZbfghjklqvwyzrict\";\nlet customAlphabet = (alphabet, defaultSize = 21) => {\n return (size = defaultSize) => {\n let id = \"\";\n let i2 = size;\n while (i2--) {\n id += alphabet[Math.random() * alphabet.length | 0];\n }\n return id;\n };\n};\nlet nanoid$1 = (size = 21) => {\n let id = \"\";\n let i2 = size;\n while (i2--) {\n id += urlAlphabet[Math.random() * 64 | 0];\n }\n return id;\n};\nvar nonSecure = { nanoid: nanoid$1, customAlphabet };\nlet { SourceMapConsumer: SourceMapConsumer$2, SourceMapGenerator: SourceMapGenerator$2 } = require$$2;\nlet { existsSync, readFileSync } = require$$2;\nlet { dirname: dirname$1, join } = require$$2;\nfunction fromBase64(str) {\n if (Buffer) {\n return Buffer.from(str, \"base64\").toString();\n } else {\n return window.atob(str);\n }\n}\nlet PreviousMap$2 = class PreviousMap2 {\n constructor(css, opts) {\n if (opts.map === false) return;\n this.loadAnnotation(css);\n this.inline = this.startWith(this.annotation, \"data:\");\n let prev = opts.map ? opts.map.prev : void 0;\n let text = this.loadMap(opts.from, prev);\n if (!this.mapFile && opts.from) {\n this.mapFile = opts.from;\n }\n if (this.mapFile) this.root = dirname$1(this.mapFile);\n if (text) this.text = text;\n }\n consumer() {\n if (!this.consumerCache) {\n this.consumerCache = new SourceMapConsumer$2(this.text);\n }\n return this.consumerCache;\n }\n decodeInline(text) {\n let baseCharsetUri = /^data:application\\/json;charset=utf-?8;base64,/;\n let baseUri = /^data:application\\/json;base64,/;\n let charsetUri = /^data:application\\/json;charset=utf-?8,/;\n let uri = /^data:application\\/json,/;\n if (charsetUri.test(text) || uri.test(text)) {\n return decodeURIComponent(text.substr(RegExp.lastMatch.length));\n }\n if (baseCharsetUri.test(text) || baseUri.test(text)) {\n return fromBase64(text.substr(RegExp.lastMatch.length));\n }\n let encoding = text.match(/data:application\\/json;([^,]+),/)[1];\n throw new Error(\"Unsupported source map encoding \" + encoding);\n }\n getAnnotationURL(sourceMapString) {\n return sourceMapString.replace(/^\\/\\*\\s*# sourceMappingURL=/, \"\").trim();\n }\n isMap(map) {\n if (typeof map !== \"object\") return false;\n return typeof map.mappings === \"string\" || typeof map._mappings === \"string\" || Array.isArray(map.sections);\n }\n loadAnnotation(css) {\n let comments = css.match(/\\/\\*\\s*# sourceMappingURL=/gm);\n if (!comments) return;\n let start = css.lastIndexOf(comments.pop());\n let end = css.indexOf(\"*/\", start);\n if (start > -1 && end > -1) {\n this.annotation = this.getAnnotationURL(css.substring(start, end));\n }\n }\n loadFile(path) {\n this.root = dirname$1(path);\n if (existsSync(path)) {\n this.mapFile = path;\n return readFileSync(path, \"utf-8\").toString().trim();\n }\n }\n loadMap(file, prev) {\n if (prev === false) return false;\n if (prev) {\n if (typeof prev === \"string\") {\n return prev;\n } else if (typeof prev === \"function\") {\n let prevPath = prev(file);\n if (prevPath) {\n let map = this.loadFile(prevPath);\n if (!map) {\n throw new Error(\n \"Unable to load previous source map: \" + prevPath.toString()\n );\n }\n return map;\n }\n } else if (prev instanceof SourceMapConsumer$2) {\n return SourceMapGenerator$2.fromSourceMap(prev).toString();\n } else if (prev instanceof SourceMapGenerator$2) {\n return prev.toString();\n } else if (this.isMap(prev)) {\n return JSON.stringify(prev);\n } else {\n throw new Error(\n \"Unsupported previous source map format: \" + prev.toString()\n );\n }\n } else if (this.inline) {\n return this.decodeInline(this.annotation);\n } else if (this.annotation) {\n let map = this.annotation;\n if (file) map = join(dirname$1(file), map);\n return this.loadFile(map);\n }\n }\n startWith(string, start) {\n if (!string) return false;\n return string.substr(0, start.length) === start;\n }\n withContent() {\n return !!(this.consumer().sourcesContent && this.consumer().sourcesContent.length > 0);\n }\n};\nvar previousMap = PreviousMap$2;\nPreviousMap$2.default = PreviousMap$2;\nlet { SourceMapConsumer: SourceMapConsumer$1, SourceMapGenerator: SourceMapGenerator$1 } = require$$2;\nlet { fileURLToPath, pathToFileURL: pathToFileURL$1 } = require$$2;\nlet { isAbsolute, resolve: resolve$1 } = require$$2;\nlet { nanoid } = nonSecure;\nlet terminalHighlight = require$$2;\nlet CssSyntaxError$1 = cssSyntaxError;\nlet PreviousMap$1 = previousMap;\nlet fromOffsetCache = Symbol(\"fromOffsetCache\");\nlet sourceMapAvailable$1 = Boolean(SourceMapConsumer$1 && SourceMapGenerator$1);\nlet pathAvailable$1 = Boolean(resolve$1 && isAbsolute);\nlet Input$4 = class Input2 {\n constructor(css, opts = {}) {\n if (css === null || typeof css === \"undefined\" || typeof css === \"object\" && !css.toString) {\n throw new Error(`PostCSS received ${css} instead of CSS string`);\n }\n this.css = css.toString();\n if (this.css[0] === \"\\uFEFF\" || this.css[0] === \"￾\") {\n this.hasBOM = true;\n this.css = this.css.slice(1);\n } else {\n this.hasBOM = false;\n }\n if (opts.from) {\n if (!pathAvailable$1 || /^\\w+:\\/\\//.test(opts.from) || isAbsolute(opts.from)) {\n this.file = opts.from;\n } else {\n this.file = resolve$1(opts.from);\n }\n }\n if (pathAvailable$1 && sourceMapAvailable$1) {\n let map = new PreviousMap$1(this.css, opts);\n if (map.text) {\n this.map = map;\n let file = map.consumer().file;\n if (!this.file && file) this.file = this.mapResolve(file);\n }\n }\n if (!this.file) {\n this.id = \"\";\n }\n if (this.map) this.map.file = this.from;\n }\n error(message, line, column, opts = {}) {\n let result2, endLine, endColumn;\n if (line && typeof line === \"object\") {\n let start = line;\n let end = column;\n if (typeof start.offset === \"number\") {\n let pos = this.fromOffset(start.offset);\n line = pos.line;\n column = pos.col;\n } else {\n line = start.line;\n column = start.column;\n }\n if (typeof end.offset === \"number\") {\n let pos = this.fromOffset(end.offset);\n endLine = pos.line;\n endColumn = pos.col;\n } else {\n endLine = end.line;\n endColumn = end.column;\n }\n } else if (!column) {\n let pos = this.fromOffset(line);\n line = pos.line;\n column = pos.col;\n }\n let origin = this.origin(line, column, endLine, endColumn);\n if (origin) {\n result2 = new CssSyntaxError$1(\n message,\n origin.endLine === void 0 ? origin.line : { column: origin.column, line: origin.line },\n origin.endLine === void 0 ? origin.column : { column: origin.endColumn, line: origin.endLine },\n origin.source,\n origin.file,\n opts.plugin\n );\n } else {\n result2 = new CssSyntaxError$1(\n message,\n endLine === void 0 ? line : { column, line },\n endLine === void 0 ? column : { column: endColumn, line: endLine },\n this.css,\n this.file,\n opts.plugin\n );\n }\n result2.input = { column, endColumn, endLine, line, source: this.css };\n if (this.file) {\n if (pathToFileURL$1) {\n result2.input.url = pathToFileURL$1(this.file).toString();\n }\n result2.input.file = this.file;\n }\n return result2;\n }\n fromOffset(offset) {\n let lastLine, lineToIndex;\n if (!this[fromOffsetCache]) {\n let lines = this.css.split(\"\\n\");\n lineToIndex = new Array(lines.length);\n let prevIndex = 0;\n for (let i2 = 0, l2 = lines.length; i2 < l2; i2++) {\n lineToIndex[i2] = prevIndex;\n prevIndex += lines[i2].length + 1;\n }\n this[fromOffsetCache] = lineToIndex;\n } else {\n lineToIndex = this[fromOffsetCache];\n }\n lastLine = lineToIndex[lineToIndex.length - 1];\n let min = 0;\n if (offset >= lastLine) {\n min = lineToIndex.length - 1;\n } else {\n let max = lineToIndex.length - 2;\n let mid;\n while (min < max) {\n mid = min + (max - min >> 1);\n if (offset < lineToIndex[mid]) {\n max = mid - 1;\n } else if (offset >= lineToIndex[mid + 1]) {\n min = mid + 1;\n } else {\n min = mid;\n break;\n }\n }\n }\n return {\n col: offset - lineToIndex[min] + 1,\n line: min + 1\n };\n }\n mapResolve(file) {\n if (/^\\w+:\\/\\//.test(file)) {\n return file;\n }\n return resolve$1(this.map.consumer().sourceRoot || this.map.root || \".\", file);\n }\n origin(line, column, endLine, endColumn) {\n if (!this.map) return false;\n let consumer = this.map.consumer();\n let from = consumer.originalPositionFor({ column, line });\n if (!from.source) return false;\n let to;\n if (typeof endLine === \"number\") {\n to = consumer.originalPositionFor({ column: endColumn, line: endLine });\n }\n let fromUrl;\n if (isAbsolute(from.source)) {\n fromUrl = pathToFileURL$1(from.source);\n } else {\n fromUrl = new URL(\n from.source,\n this.map.consumer().sourceRoot || pathToFileURL$1(this.map.mapFile)\n );\n }\n let result2 = {\n column: from.column,\n endColumn: to && to.column,\n endLine: to && to.line,\n line: from.line,\n url: fromUrl.toString()\n };\n if (fromUrl.protocol === \"file:\") {\n if (fileURLToPath) {\n result2.file = fileURLToPath(fromUrl);\n } else {\n throw new Error(`file: protocol is not available in this PostCSS build`);\n }\n }\n let source = consumer.sourceContentFor(from.source);\n if (source) result2.source = source;\n return result2;\n }\n toJSON() {\n let json = {};\n for (let name of [\"hasBOM\", \"css\", \"file\", \"id\"]) {\n if (this[name] != null) {\n json[name] = this[name];\n }\n }\n if (this.map) {\n json.map = { ...this.map };\n if (json.map.consumerCache) {\n json.map.consumerCache = void 0;\n }\n }\n return json;\n }\n get from() {\n return this.file || this.id;\n }\n};\nvar input = Input$4;\nInput$4.default = Input$4;\nif (terminalHighlight && terminalHighlight.registerInput) {\n terminalHighlight.registerInput(Input$4);\n}\nlet { SourceMapConsumer, SourceMapGenerator } = require$$2;\nlet { dirname, relative, resolve, sep } = require$$2;\nlet { pathToFileURL } = require$$2;\nlet Input$3 = input;\nlet sourceMapAvailable = Boolean(SourceMapConsumer && SourceMapGenerator);\nlet pathAvailable = Boolean(dirname && resolve && relative && sep);\nlet MapGenerator$2 = class MapGenerator2 {\n constructor(stringify2, root2, opts, cssString) {\n this.stringify = stringify2;\n this.mapOpts = opts.map || {};\n this.root = root2;\n this.opts = opts;\n this.css = cssString;\n this.originalCSS = cssString;\n this.usesFileUrls = !this.mapOpts.from && this.mapOpts.absolute;\n this.memoizedFileURLs = /* @__PURE__ */ new Map();\n this.memoizedPaths = /* @__PURE__ */ new Map();\n this.memoizedURLs = /* @__PURE__ */ new Map();\n }\n addAnnotation() {\n let content;\n if (this.isInline()) {\n content = \"data:application/json;base64,\" + this.toBase64(this.map.toString());\n } else if (typeof this.mapOpts.annotation === \"string\") {\n content = this.mapOpts.annotation;\n } else if (typeof this.mapOpts.annotation === \"function\") {\n content = this.mapOpts.annotation(this.opts.to, this.root);\n } else {\n content = this.outputFile() + \".map\";\n }\n let eol = \"\\n\";\n if (this.css.includes(\"\\r\\n\")) eol = \"\\r\\n\";\n this.css += eol + \"/*# sourceMappingURL=\" + content + \" */\";\n }\n applyPrevMaps() {\n for (let prev of this.previous()) {\n let from = this.toUrl(this.path(prev.file));\n let root2 = prev.root || dirname(prev.file);\n let map;\n if (this.mapOpts.sourcesContent === false) {\n map = new SourceMapConsumer(prev.text);\n if (map.sourcesContent) {\n map.sourcesContent = null;\n }\n } else {\n map = prev.consumer();\n }\n this.map.applySourceMap(map, from, this.toUrl(this.path(root2)));\n }\n }\n clearAnnotation() {\n if (this.mapOpts.annotation === false) return;\n if (this.root) {\n let node2;\n for (let i2 = this.root.nodes.length - 1; i2 >= 0; i2--) {\n node2 = this.root.nodes[i2];\n if (node2.type !== \"comment\") continue;\n if (node2.text.indexOf(\"# sourceMappingURL=\") === 0) {\n this.root.removeChild(i2);\n }\n }\n } else if (this.css) {\n this.css = this.css.replace(/\\n*?\\/\\*#[\\S\\s]*?\\*\\/$/gm, \"\");\n }\n }\n generate() {\n this.clearAnnotation();\n if (pathAvailable && sourceMapAvailable && this.isMap()) {\n return this.generateMap();\n } else {\n let result2 = \"\";\n this.stringify(this.root, (i2) => {\n result2 += i2;\n });\n return [result2];\n }\n }\n generateMap() {\n if (this.root) {\n this.generateString();\n } else if (this.previous().length === 1) {\n let prev = this.previous()[0].consumer();\n prev.file = this.outputFile();\n this.map = SourceMapGenerator.fromSourceMap(prev, {\n ignoreInvalidMapping: true\n });\n } else {\n this.map = new SourceMapGenerator({\n file: this.outputFile(),\n ignoreInvalidMapping: true\n });\n this.map.addMapping({\n generated: { column: 0, line: 1 },\n original: { column: 0, line: 1 },\n source: this.opts.from ? this.toUrl(this.path(this.opts.from)) : \"\"\n });\n }\n if (this.isSourcesContent()) this.setSourcesContent();\n if (this.root && this.previous().length > 0) this.applyPrevMaps();\n if (this.isAnnotation()) this.addAnnotation();\n if (this.isInline()) {\n return [this.css];\n } else {\n return [this.css, this.map];\n }\n }\n generateString() {\n this.css = \"\";\n this.map = new SourceMapGenerator({\n file: this.outputFile(),\n ignoreInvalidMapping: true\n });\n let line = 1;\n let column = 1;\n let noSource = \"\";\n let mapping = {\n generated: { column: 0, line: 0 },\n original: { column: 0, line: 0 },\n source: \"\"\n };\n let lines, last;\n this.stringify(this.root, (str, node2, type) => {\n this.css += str;\n if (node2 && type !== \"end\") {\n mapping.generated.line = line;\n mapping.generated.column = column - 1;\n if (node2.source && node2.source.start) {\n mapping.source = this.sourcePath(node2);\n mapping.original.line = node2.source.start.line;\n mapping.original.column = node2.source.start.column - 1;\n this.map.addMapping(mapping);\n } else {\n mapping.source = noSource;\n mapping.original.line = 1;\n mapping.original.column = 0;\n this.map.addMapping(mapping);\n }\n }\n lines = str.match(/\\n/g);\n if (lines) {\n line += lines.length;\n last = str.lastIndexOf(\"\\n\");\n column = str.length - last;\n } else {\n column += str.length;\n }\n if (node2 && type !== \"start\") {\n let p = node2.parent || { raws: {} };\n let childless = node2.type === \"decl\" || node2.type === \"atrule\" && !node2.nodes;\n if (!childless || node2 !== p.last || p.raws.semicolon) {\n if (node2.source && node2.source.end) {\n mapping.source = this.sourcePath(node2);\n mapping.original.line = node2.source.end.line;\n mapping.original.column = node2.source.end.column - 1;\n mapping.generated.line = line;\n mapping.generated.column = column - 2;\n this.map.addMapping(mapping);\n } else {\n mapping.source = noSource;\n mapping.original.line = 1;\n mapping.original.column = 0;\n mapping.generated.line = line;\n mapping.generated.column = column - 1;\n this.map.addMapping(mapping);\n }\n }\n }\n });\n }\n isAnnotation() {\n if (this.isInline()) {\n return true;\n }\n if (typeof this.mapOpts.annotation !== \"undefined\") {\n return this.mapOpts.annotation;\n }\n if (this.previous().length) {\n return this.previous().some((i2) => i2.annotation);\n }\n return true;\n }\n isInline() {\n if (typeof this.mapOpts.inline !== \"undefined\") {\n return this.mapOpts.inline;\n }\n let annotation = this.mapOpts.annotation;\n if (typeof annotation !== \"undefined\" && annotation !== true) {\n return false;\n }\n if (this.previous().length) {\n return this.previous().some((i2) => i2.inline);\n }\n return true;\n }\n isMap() {\n if (typeof this.opts.map !== \"undefined\") {\n return !!this.opts.map;\n }\n return this.previous().length > 0;\n }\n isSourcesContent() {\n if (typeof this.mapOpts.sourcesContent !== \"undefined\") {\n return this.mapOpts.sourcesContent;\n }\n if (this.previous().length) {\n return this.previous().some((i2) => i2.withContent());\n }\n return true;\n }\n outputFile() {\n if (this.opts.to) {\n return this.path(this.opts.to);\n } else if (this.opts.from) {\n return this.path(this.opts.from);\n } else {\n return \"to.css\";\n }\n }\n path(file) {\n if (this.mapOpts.absolute) return file;\n if (file.charCodeAt(0) === 60) return file;\n if (/^\\w+:\\/\\//.test(file)) return file;\n let cached = this.memoizedPaths.get(file);\n if (cached) return cached;\n let from = this.opts.to ? dirname(this.opts.to) : \".\";\n if (typeof this.mapOpts.annotation === \"string\") {\n from = dirname(resolve(from, this.mapOpts.annotation));\n }\n let path = relative(from, file);\n this.memoizedPaths.set(file, path);\n return path;\n }\n previous() {\n if (!this.previousMaps) {\n this.previousMaps = [];\n if (this.root) {\n this.root.walk((node2) => {\n if (node2.source && node2.source.input.map) {\n let map = node2.source.input.map;\n if (!this.previousMaps.includes(map)) {\n this.previousMaps.push(map);\n }\n }\n });\n } else {\n let input2 = new Input$3(this.originalCSS, this.opts);\n if (input2.map) this.previousMaps.push(input2.map);\n }\n }\n return this.previousMaps;\n }\n setSourcesContent() {\n let already = {};\n if (this.root) {\n this.root.walk((node2) => {\n if (node2.source) {\n let from = node2.source.input.from;\n if (from && !already[from]) {\n already[from] = true;\n let fromUrl = this.usesFileUrls ? this.toFileUrl(from) : this.toUrl(this.path(from));\n this.map.setSourceContent(fromUrl, node2.source.input.css);\n }\n }\n });\n } else if (this.css) {\n let from = this.opts.from ? this.toUrl(this.path(this.opts.from)) : \"\";\n this.map.setSourceContent(from, this.css);\n }\n }\n sourcePath(node2) {\n if (this.mapOpts.from) {\n return this.toUrl(this.mapOpts.from);\n } else if (this.usesFileUrls) {\n return this.toFileUrl(node2.source.input.from);\n } else {\n return this.toUrl(this.path(node2.source.input.from));\n }\n }\n toBase64(str) {\n if (Buffer) {\n return Buffer.from(str).toString(\"base64\");\n } else {\n return window.btoa(unescape(encodeURIComponent(str)));\n }\n }\n toFileUrl(path) {\n let cached = this.memoizedFileURLs.get(path);\n if (cached) return cached;\n if (pathToFileURL) {\n let fileURL = pathToFileURL(path).toString();\n this.memoizedFileURLs.set(path, fileURL);\n return fileURL;\n } else {\n throw new Error(\n \"`map.absolute` option is not available in this PostCSS build\"\n );\n }\n }\n toUrl(path) {\n let cached = this.memoizedURLs.get(path);\n if (cached) return cached;\n if (sep === \"\\\\\") {\n path = path.replace(/\\\\/g, \"/\");\n }\n let url = encodeURI(path).replace(/[#?]/g, encodeURIComponent);\n this.memoizedURLs.set(path, url);\n return url;\n }\n};\nvar mapGenerator = MapGenerator$2;\nlet Node$2 = node;\nlet Comment$4 = class Comment2 extends Node$2 {\n constructor(defaults) {\n super(defaults);\n this.type = \"comment\";\n }\n};\nvar comment = Comment$4;\nComment$4.default = Comment$4;\nlet { isClean: isClean$1, my: my$1 } = symbols;\nlet Declaration$3 = declaration;\nlet Comment$3 = comment;\nlet Node$1 = node;\nlet parse$4, Rule$4, AtRule$4, Root$6;\nfunction cleanSource(nodes) {\n return nodes.map((i2) => {\n if (i2.nodes) i2.nodes = cleanSource(i2.nodes);\n delete i2.source;\n return i2;\n });\n}\nfunction markDirtyUp(node2) {\n node2[isClean$1] = false;\n if (node2.proxyOf.nodes) {\n for (let i2 of node2.proxyOf.nodes) {\n markDirtyUp(i2);\n }\n }\n}\nlet Container$7 = class Container2 extends Node$1 {\n append(...children) {\n for (let child of children) {\n let nodes = this.normalize(child, this.last);\n for (let node2 of nodes) this.proxyOf.nodes.push(node2);\n }\n this.markDirty();\n return this;\n }\n cleanRaws(keepBetween) {\n super.cleanRaws(keepBetween);\n if (this.nodes) {\n for (let node2 of this.nodes) node2.cleanRaws(keepBetween);\n }\n }\n each(callback) {\n if (!this.proxyOf.nodes) return void 0;\n let iterator = this.getIterator();\n let index2, result2;\n while (this.indexes[iterator] < this.proxyOf.nodes.length) {\n index2 = this.indexes[iterator];\n result2 = callback(this.proxyOf.nodes[index2], index2);\n if (result2 === false) break;\n this.indexes[iterator] += 1;\n }\n delete this.indexes[iterator];\n return result2;\n }\n every(condition) {\n return this.nodes.every(condition);\n }\n getIterator() {\n if (!this.lastEach) this.lastEach = 0;\n if (!this.indexes) this.indexes = {};\n this.lastEach += 1;\n let iterator = this.lastEach;\n this.indexes[iterator] = 0;\n return iterator;\n }\n getProxyProcessor() {\n return {\n get(node2, prop) {\n if (prop === \"proxyOf\") {\n return node2;\n } else if (!node2[prop]) {\n return node2[prop];\n } else if (prop === \"each\" || typeof prop === \"string\" && prop.startsWith(\"walk\")) {\n return (...args) => {\n return node2[prop](\n ...args.map((i2) => {\n if (typeof i2 === \"function\") {\n return (child, index2) => i2(child.toProxy(), index2);\n } else {\n return i2;\n }\n })\n );\n };\n } else if (prop === \"every\" || prop === \"some\") {\n return (cb) => {\n return node2[prop](\n (child, ...other) => cb(child.toProxy(), ...other)\n );\n };\n } else if (prop === \"root\") {\n return () => node2.root().toProxy();\n } else if (prop === \"nodes\") {\n return node2.nodes.map((i2) => i2.toProxy());\n } else if (prop === \"first\" || prop === \"last\") {\n return node2[prop].toProxy();\n } else {\n return node2[prop];\n }\n },\n set(node2, prop, value) {\n if (node2[prop] === value) return true;\n node2[prop] = value;\n if (prop === \"name\" || prop === \"params\" || prop === \"selector\") {\n node2.markDirty();\n }\n return true;\n }\n };\n }\n index(child) {\n if (typeof child === \"number\") return child;\n if (child.proxyOf) child = child.proxyOf;\n return this.proxyOf.nodes.indexOf(child);\n }\n insertAfter(exist, add) {\n let existIndex = this.index(exist);\n let nodes = this.normalize(add, this.proxyOf.nodes[existIndex]).reverse();\n existIndex = this.index(exist);\n for (let node2 of nodes) this.proxyOf.nodes.splice(existIndex + 1, 0, node2);\n let index2;\n for (let id in this.indexes) {\n index2 = this.indexes[id];\n if (existIndex < index2) {\n this.indexes[id] = index2 + nodes.length;\n }\n }\n this.markDirty();\n return this;\n }\n insertBefore(exist, add) {\n let existIndex = this.index(exist);\n let type = existIndex === 0 ? \"prepend\" : false;\n let nodes = this.normalize(add, this.proxyOf.nodes[existIndex], type).reverse();\n existIndex = this.index(exist);\n for (let node2 of nodes) this.proxyOf.nodes.splice(existIndex, 0, node2);\n let index2;\n for (let id in this.indexes) {\n index2 = this.indexes[id];\n if (existIndex <= index2) {\n this.indexes[id] = index2 + nodes.length;\n }\n }\n this.markDirty();\n return this;\n }\n normalize(nodes, sample) {\n if (typeof nodes === \"string\") {\n nodes = cleanSource(parse$4(nodes).nodes);\n } else if (typeof nodes === \"undefined\") {\n nodes = [];\n } else if (Array.isArray(nodes)) {\n nodes = nodes.slice(0);\n for (let i2 of nodes) {\n if (i2.parent) i2.parent.removeChild(i2, \"ignore\");\n }\n } else if (nodes.type === \"root\" && this.type !== \"document\") {\n nodes = nodes.nodes.slice(0);\n for (let i2 of nodes) {\n if (i2.parent) i2.parent.removeChild(i2, \"ignore\");\n }\n } else if (nodes.type) {\n nodes = [nodes];\n } else if (nodes.prop) {\n if (typeof nodes.value === \"undefined\") {\n throw new Error(\"Value field is missed in node creation\");\n } else if (typeof nodes.value !== \"string\") {\n nodes.value = String(nodes.value);\n }\n nodes = [new Declaration$3(nodes)];\n } else if (nodes.selector) {\n nodes = [new Rule$4(nodes)];\n } else if (nodes.name) {\n nodes = [new AtRule$4(nodes)];\n } else if (nodes.text) {\n nodes = [new Comment$3(nodes)];\n } else {\n throw new Error(\"Unknown node type in node creation\");\n }\n let processed = nodes.map((i2) => {\n if (!i2[my$1]) Container2.rebuild(i2);\n i2 = i2.proxyOf;\n if (i2.parent) i2.parent.removeChild(i2);\n if (i2[isClean$1]) markDirtyUp(i2);\n if (typeof i2.raws.before === \"undefined\") {\n if (sample && typeof sample.raws.before !== \"undefined\") {\n i2.raws.before = sample.raws.before.replace(/\\S/g, \"\");\n }\n }\n i2.parent = this.proxyOf;\n return i2;\n });\n return processed;\n }\n prepend(...children) {\n children = children.reverse();\n for (let child of children) {\n let nodes = this.normalize(child, this.first, \"prepend\").reverse();\n for (let node2 of nodes) this.proxyOf.nodes.unshift(node2);\n for (let id in this.indexes) {\n this.indexes[id] = this.indexes[id] + nodes.length;\n }\n }\n this.markDirty();\n return this;\n }\n push(child) {\n child.parent = this;\n this.proxyOf.nodes.push(child);\n return this;\n }\n removeAll() {\n for (let node2 of this.proxyOf.nodes) node2.parent = void 0;\n this.proxyOf.nodes = [];\n this.markDirty();\n return this;\n }\n removeChild(child) {\n child = this.index(child);\n this.proxyOf.nodes[child].parent = void 0;\n this.proxyOf.nodes.splice(child, 1);\n let index2;\n for (let id in this.indexes) {\n index2 = this.indexes[id];\n if (index2 >= child) {\n this.indexes[id] = index2 - 1;\n }\n }\n this.markDirty();\n return this;\n }\n replaceValues(pattern, opts, callback) {\n if (!callback) {\n callback = opts;\n opts = {};\n }\n this.walkDecls((decl) => {\n if (opts.props && !opts.props.includes(decl.prop)) return;\n if (opts.fast && !decl.value.includes(opts.fast)) return;\n decl.value = decl.value.replace(pattern, callback);\n });\n this.markDirty();\n return this;\n }\n some(condition) {\n return this.nodes.some(condition);\n }\n walk(callback) {\n return this.each((child, i2) => {\n let result2;\n try {\n result2 = callback(child, i2);\n } catch (e2) {\n throw child.addToError(e2);\n }\n if (result2 !== false && child.walk) {\n result2 = child.walk(callback);\n }\n return result2;\n });\n }\n walkAtRules(name, callback) {\n if (!callback) {\n callback = name;\n return this.walk((child, i2) => {\n if (child.type === \"atrule\") {\n return callback(child, i2);\n }\n });\n }\n if (name instanceof RegExp) {\n return this.walk((child, i2) => {\n if (child.type === \"atrule\" && name.test(child.name)) {\n return callback(child, i2);\n }\n });\n }\n return this.walk((child, i2) => {\n if (child.type === \"atrule\" && child.name === name) {\n return callback(child, i2);\n }\n });\n }\n walkComments(callback) {\n return this.walk((child, i2) => {\n if (child.type === \"comment\") {\n return callback(child, i2);\n }\n });\n }\n walkDecls(prop, callback) {\n if (!callback) {\n callback = prop;\n return this.walk((child, i2) => {\n if (child.type === \"decl\") {\n return callback(child, i2);\n }\n });\n }\n if (prop instanceof RegExp) {\n return this.walk((child, i2) => {\n if (child.type === \"decl\" && prop.test(child.prop)) {\n return callback(child, i2);\n }\n });\n }\n return this.walk((child, i2) => {\n if (child.type === \"decl\" && child.prop === prop) {\n return callback(child, i2);\n }\n });\n }\n walkRules(selector, callback) {\n if (!callback) {\n callback = selector;\n return this.walk((child, i2) => {\n if (child.type === \"rule\") {\n return callback(child, i2);\n }\n });\n }\n if (selector instanceof RegExp) {\n return this.walk((child, i2) => {\n if (child.type === \"rule\" && selector.test(child.selector)) {\n return callback(child, i2);\n }\n });\n }\n return this.walk((child, i2) => {\n if (child.type === \"rule\" && child.selector === selector) {\n return callback(child, i2);\n }\n });\n }\n get first() {\n if (!this.proxyOf.nodes) return void 0;\n return this.proxyOf.nodes[0];\n }\n get last() {\n if (!this.proxyOf.nodes) return void 0;\n return this.proxyOf.nodes[this.proxyOf.nodes.length - 1];\n }\n};\nContainer$7.registerParse = (dependant) => {\n parse$4 = dependant;\n};\nContainer$7.registerRule = (dependant) => {\n Rule$4 = dependant;\n};\nContainer$7.registerAtRule = (dependant) => {\n AtRule$4 = dependant;\n};\nContainer$7.registerRoot = (dependant) => {\n Root$6 = dependant;\n};\nvar container = Container$7;\nContainer$7.default = Container$7;\nContainer$7.rebuild = (node2) => {\n if (node2.type === \"atrule\") {\n Object.setPrototypeOf(node2, AtRule$4.prototype);\n } else if (node2.type === \"rule\") {\n Object.setPrototypeOf(node2, Rule$4.prototype);\n } else if (node2.type === \"decl\") {\n Object.setPrototypeOf(node2, Declaration$3.prototype);\n } else if (node2.type === \"comment\") {\n Object.setPrototypeOf(node2, Comment$3.prototype);\n } else if (node2.type === \"root\") {\n Object.setPrototypeOf(node2, Root$6.prototype);\n }\n node2[my$1] = true;\n if (node2.nodes) {\n node2.nodes.forEach((child) => {\n Container$7.rebuild(child);\n });\n }\n};\nlet Container$6 = container;\nlet LazyResult$4, Processor$3;\nlet Document$3 = class Document23 extends Container$6 {\n constructor(defaults) {\n super({ type: \"document\", ...defaults });\n if (!this.nodes) {\n this.nodes = [];\n }\n }\n toResult(opts = {}) {\n let lazy = new LazyResult$4(new Processor$3(), this, opts);\n return lazy.stringify();\n }\n};\nDocument$3.registerLazyResult = (dependant) => {\n LazyResult$4 = dependant;\n};\nDocument$3.registerProcessor = (dependant) => {\n Processor$3 = dependant;\n};\nvar document$1 = Document$3;\nDocument$3.default = Document$3;\nlet printed = {};\nvar warnOnce$2 = function warnOnce2(message) {\n if (printed[message]) return;\n printed[message] = true;\n if (typeof console !== \"undefined\" && console.warn) {\n console.warn(message);\n }\n};\nlet Warning$2 = class Warning2 {\n constructor(text, opts = {}) {\n this.type = \"warning\";\n this.text = text;\n if (opts.node && opts.node.source) {\n let range = opts.node.rangeBy(opts);\n this.line = range.start.line;\n this.column = range.start.column;\n this.endLine = range.end.line;\n this.endColumn = range.end.column;\n }\n for (let opt in opts) this[opt] = opts[opt];\n }\n toString() {\n if (this.node) {\n return this.node.error(this.text, {\n index: this.index,\n plugin: this.plugin,\n word: this.word\n }).message;\n }\n if (this.plugin) {\n return this.plugin + \": \" + this.text;\n }\n return this.text;\n }\n};\nvar warning = Warning$2;\nWarning$2.default = Warning$2;\nlet Warning$1 = warning;\nlet Result$3 = class Result2 {\n constructor(processor2, root2, opts) {\n this.processor = processor2;\n this.messages = [];\n this.root = root2;\n this.opts = opts;\n this.css = void 0;\n this.map = void 0;\n }\n toString() {\n return this.css;\n }\n warn(text, opts = {}) {\n if (!opts.plugin) {\n if (this.lastPlugin && this.lastPlugin.postcssPlugin) {\n opts.plugin = this.lastPlugin.postcssPlugin;\n }\n }\n let warning2 = new Warning$1(text, opts);\n this.messages.push(warning2);\n return warning2;\n }\n warnings() {\n return this.messages.filter((i2) => i2.type === \"warning\");\n }\n get content() {\n return this.css;\n }\n};\nvar result = Result$3;\nResult$3.default = Result$3;\nconst SINGLE_QUOTE = \"'\".charCodeAt(0);\nconst DOUBLE_QUOTE = '\"'.charCodeAt(0);\nconst BACKSLASH = \"\\\\\".charCodeAt(0);\nconst SLASH = \"/\".charCodeAt(0);\nconst NEWLINE = \"\\n\".charCodeAt(0);\nconst SPACE = \" \".charCodeAt(0);\nconst FEED = \"\\f\".charCodeAt(0);\nconst TAB = \"\t\".charCodeAt(0);\nconst CR = \"\\r\".charCodeAt(0);\nconst OPEN_SQUARE = \"[\".charCodeAt(0);\nconst CLOSE_SQUARE = \"]\".charCodeAt(0);\nconst OPEN_PARENTHESES = \"(\".charCodeAt(0);\nconst CLOSE_PARENTHESES = \")\".charCodeAt(0);\nconst OPEN_CURLY = \"{\".charCodeAt(0);\nconst CLOSE_CURLY = \"}\".charCodeAt(0);\nconst SEMICOLON = \";\".charCodeAt(0);\nconst ASTERISK = \"*\".charCodeAt(0);\nconst COLON = \":\".charCodeAt(0);\nconst AT = \"@\".charCodeAt(0);\nconst RE_AT_END = /[\\t\\n\\f\\r \"#'()/;[\\\\\\]{}]/g;\nconst RE_WORD_END = /[\\t\\n\\f\\r !\"#'():;@[\\\\\\]{}]|\\/(?=\\*)/g;\nconst RE_BAD_BRACKET = /.[\\r\\n\"'(/\\\\]/;\nconst RE_HEX_ESCAPE = /[\\da-f]/i;\nvar tokenize = function tokenizer2(input2, options = {}) {\n let css = input2.css.valueOf();\n let ignore = options.ignoreErrors;\n let code, next, quote, content, escape;\n let escaped, escapePos, prev, n2, currentToken;\n let length = css.length;\n let pos = 0;\n let buffer = [];\n let returned = [];\n function position() {\n return pos;\n }\n function unclosed(what) {\n throw input2.error(\"Unclosed \" + what, pos);\n }\n function endOfFile() {\n return returned.length === 0 && pos >= length;\n }\n function nextToken(opts) {\n if (returned.length) return returned.pop();\n if (pos >= length) return;\n let ignoreUnclosed = opts ? opts.ignoreUnclosed : false;\n code = css.charCodeAt(pos);\n switch (code) {\n case NEWLINE:\n case SPACE:\n case TAB:\n case CR:\n case FEED: {\n next = pos;\n do {\n next += 1;\n code = css.charCodeAt(next);\n } while (code === SPACE || code === NEWLINE || code === TAB || code === CR || code === FEED);\n currentToken = [\"space\", css.slice(pos, next)];\n pos = next - 1;\n break;\n }\n case OPEN_SQUARE:\n case CLOSE_SQUARE:\n case OPEN_CURLY:\n case CLOSE_CURLY:\n case COLON:\n case SEMICOLON:\n case CLOSE_PARENTHESES: {\n let controlChar = String.fromCharCode(code);\n currentToken = [controlChar, controlChar, pos];\n break;\n }\n case OPEN_PARENTHESES: {\n prev = buffer.length ? buffer.pop()[1] : \"\";\n n2 = css.charCodeAt(pos + 1);\n if (prev === \"url\" && n2 !== SINGLE_QUOTE && n2 !== DOUBLE_QUOTE && n2 !== SPACE && n2 !== NEWLINE && n2 !== TAB && n2 !== FEED && n2 !== CR) {\n next = pos;\n do {\n escaped = false;\n next = css.indexOf(\")\", next + 1);\n if (next === -1) {\n if (ignore || ignoreUnclosed) {\n next = pos;\n break;\n } else {\n unclosed(\"bracket\");\n }\n }\n escapePos = next;\n while (css.charCodeAt(escapePos - 1) === BACKSLASH) {\n escapePos -= 1;\n escaped = !escaped;\n }\n } while (escaped);\n currentToken = [\"brackets\", css.slice(pos, next + 1), pos, next];\n pos = next;\n } else {\n next = css.indexOf(\")\", pos + 1);\n content = css.slice(pos, next + 1);\n if (next === -1 || RE_BAD_BRACKET.test(content)) {\n currentToken = [\"(\", \"(\", pos];\n } else {\n currentToken = [\"brackets\", content, pos, next];\n pos = next;\n }\n }\n break;\n }\n case SINGLE_QUOTE:\n case DOUBLE_QUOTE: {\n quote = code === SINGLE_QUOTE ? \"'\" : '\"';\n next = pos;\n do {\n escaped = false;\n next = css.indexOf(quote, next + 1);\n if (next === -1) {\n if (ignore || ignoreUnclosed) {\n next = pos + 1;\n break;\n } else {\n unclosed(\"string\");\n }\n }\n escapePos = next;\n while (css.charCodeAt(escapePos - 1) === BACKSLASH) {\n escapePos -= 1;\n escaped = !escaped;\n }\n } while (escaped);\n currentToken = [\"string\", css.slice(pos, next + 1), pos, next];\n pos = next;\n break;\n }\n case AT: {\n RE_AT_END.lastIndex = pos + 1;\n RE_AT_END.test(css);\n if (RE_AT_END.lastIndex === 0) {\n next = css.length - 1;\n } else {\n next = RE_AT_END.lastIndex - 2;\n }\n currentToken = [\"at-word\", css.slice(pos, next + 1), pos, next];\n pos = next;\n break;\n }\n case BACKSLASH: {\n next = pos;\n escape = true;\n while (css.charCodeAt(next + 1) === BACKSLASH) {\n next += 1;\n escape = !escape;\n }\n code = css.charCodeAt(next + 1);\n if (escape && code !== SLASH && code !== SPACE && code !== NEWLINE && code !== TAB && code !== CR && code !== FEED) {\n next += 1;\n if (RE_HEX_ESCAPE.test(css.charAt(next))) {\n while (RE_HEX_ESCAPE.test(css.charAt(next + 1))) {\n next += 1;\n }\n if (css.charCodeAt(next + 1) === SPACE) {\n next += 1;\n }\n }\n }\n currentToken = [\"word\", css.slice(pos, next + 1), pos, next];\n pos = next;\n break;\n }\n default: {\n if (code === SLASH && css.charCodeAt(pos + 1) === ASTERISK) {\n next = css.indexOf(\"*/\", pos + 2) + 1;\n if (next === 0) {\n if (ignore || ignoreUnclosed) {\n next = css.length;\n } else {\n unclosed(\"comment\");\n }\n }\n currentToken = [\"comment\", css.slice(pos, next + 1), pos, next];\n pos = next;\n } else {\n RE_WORD_END.lastIndex = pos + 1;\n RE_WORD_END.test(css);\n if (RE_WORD_END.lastIndex === 0) {\n next = css.length - 1;\n } else {\n next = RE_WORD_END.lastIndex - 2;\n }\n currentToken = [\"word\", css.slice(pos, next + 1), pos, next];\n buffer.push(currentToken);\n pos = next;\n }\n break;\n }\n }\n pos++;\n return currentToken;\n }\n function back(token) {\n returned.push(token);\n }\n return {\n back,\n endOfFile,\n nextToken,\n position\n };\n};\nlet Container$5 = container;\nlet AtRule$3 = class AtRule2 extends Container$5 {\n constructor(defaults) {\n super(defaults);\n this.type = \"atrule\";\n }\n append(...children) {\n if (!this.proxyOf.nodes) this.nodes = [];\n return super.append(...children);\n }\n prepend(...children) {\n if (!this.proxyOf.nodes) this.nodes = [];\n return super.prepend(...children);\n }\n};\nvar atRule = AtRule$3;\nAtRule$3.default = AtRule$3;\nContainer$5.registerAtRule(AtRule$3);\nlet Container$4 = container;\nlet LazyResult$3, Processor$2;\nlet Root$5 = class Root2 extends Container$4 {\n constructor(defaults) {\n super(defaults);\n this.type = \"root\";\n if (!this.nodes) this.nodes = [];\n }\n normalize(child, sample, type) {\n let nodes = super.normalize(child);\n if (sample) {\n if (type === \"prepend\") {\n if (this.nodes.length > 1) {\n sample.raws.before = this.nodes[1].raws.before;\n } else {\n delete sample.raws.before;\n }\n } else if (this.first !== sample) {\n for (let node2 of nodes) {\n node2.raws.before = sample.raws.before;\n }\n }\n }\n return nodes;\n }\n removeChild(child, ignore) {\n let index2 = this.index(child);\n if (!ignore && index2 === 0 && this.nodes.length > 1) {\n this.nodes[1].raws.before = this.nodes[index2].raws.before;\n }\n return super.removeChild(child);\n }\n toResult(opts = {}) {\n let lazy = new LazyResult$3(new Processor$2(), this, opts);\n return lazy.stringify();\n }\n};\nRoot$5.registerLazyResult = (dependant) => {\n LazyResult$3 = dependant;\n};\nRoot$5.registerProcessor = (dependant) => {\n Processor$2 = dependant;\n};\nvar root = Root$5;\nRoot$5.default = Root$5;\nContainer$4.registerRoot(Root$5);\nlet list$2 = {\n comma(string) {\n return list$2.split(string, [\",\"], true);\n },\n space(string) {\n let spaces = [\" \", \"\\n\", \"\t\"];\n return list$2.split(string, spaces);\n },\n split(string, separators, last) {\n let array = [];\n let current = \"\";\n let split = false;\n let func = 0;\n let inQuote = false;\n let prevQuote = \"\";\n let escape = false;\n for (let letter of string) {\n if (escape) {\n escape = false;\n } else if (letter === \"\\\\\") {\n escape = true;\n } else if (inQuote) {\n if (letter === prevQuote) {\n inQuote = false;\n }\n } else if (letter === '\"' || letter === \"'\") {\n inQuote = true;\n prevQuote = letter;\n } else if (letter === \"(\") {\n func += 1;\n } else if (letter === \")\") {\n if (func > 0) func -= 1;\n } else if (func === 0) {\n if (separators.includes(letter)) split = true;\n }\n if (split) {\n if (current !== \"\") array.push(current.trim());\n current = \"\";\n split = false;\n } else {\n current += letter;\n }\n }\n if (last || current !== \"\") array.push(current.trim());\n return array;\n }\n};\nvar list_1 = list$2;\nlist$2.default = list$2;\nlet Container$3 = container;\nlet list$1 = list_1;\nlet Rule$3 = class Rule2 extends Container$3 {\n constructor(defaults) {\n super(defaults);\n this.type = \"rule\";\n if (!this.nodes) this.nodes = [];\n }\n get selectors() {\n return list$1.comma(this.selector);\n }\n set selectors(values) {\n let match = this.selector ? this.selector.match(/,\\s*/) : null;\n let sep2 = match ? match[0] : \",\" + this.raw(\"between\", \"beforeOpen\");\n this.selector = values.join(sep2);\n }\n};\nvar rule = Rule$3;\nRule$3.default = Rule$3;\nContainer$3.registerRule(Rule$3);\nlet Declaration$2 = declaration;\nlet tokenizer22 = tokenize;\nlet Comment$2 = comment;\nlet AtRule$2 = atRule;\nlet Root$4 = root;\nlet Rule$2 = rule;\nconst SAFE_COMMENT_NEIGHBOR = {\n empty: true,\n space: true\n};\nfunction findLastWithPosition(tokens) {\n for (let i2 = tokens.length - 1; i2 >= 0; i2--) {\n let token = tokens[i2];\n let pos = token[3] || token[2];\n if (pos) return pos;\n }\n}\nlet Parser$1 = class Parser2 {\n constructor(input2) {\n this.input = input2;\n this.root = new Root$4();\n this.current = this.root;\n this.spaces = \"\";\n this.semicolon = false;\n this.createTokenizer();\n this.root.source = { input: input2, start: { column: 1, line: 1, offset: 0 } };\n }\n atrule(token) {\n let node2 = new AtRule$2();\n node2.name = token[1].slice(1);\n if (node2.name === \"\") {\n this.unnamedAtrule(node2, token);\n }\n this.init(node2, token[2]);\n let type;\n let prev;\n let shift;\n let last = false;\n let open = false;\n let params = [];\n let brackets = [];\n while (!this.tokenizer.endOfFile()) {\n token = this.tokenizer.nextToken();\n type = token[0];\n if (type === \"(\" || type === \"[\") {\n brackets.push(type === \"(\" ? \")\" : \"]\");\n } else if (type === \"{\" && brackets.length > 0) {\n brackets.push(\"}\");\n } else if (type === brackets[brackets.length - 1]) {\n brackets.pop();\n }\n if (brackets.length === 0) {\n if (type === \";\") {\n node2.source.end = this.getPosition(token[2]);\n node2.source.end.offset++;\n this.semicolon = true;\n break;\n } else if (type === \"{\") {\n open = true;\n break;\n } else if (type === \"}\") {\n if (params.length > 0) {\n shift = params.length - 1;\n prev = params[shift];\n while (prev && prev[0] === \"space\") {\n prev = params[--shift];\n }\n if (prev) {\n node2.source.end = this.getPosition(prev[3] || prev[2]);\n node2.source.end.offset++;\n }\n }\n this.end(token);\n break;\n } else {\n params.push(token);\n }\n } else {\n params.push(token);\n }\n if (this.tokenizer.endOfFile()) {\n last = true;\n break;\n }\n }\n node2.raws.between = this.spacesAndCommentsFromEnd(params);\n if (params.length) {\n node2.raws.afterName = this.spacesAndCommentsFromStart(params);\n this.raw(node2, \"params\", params);\n if (last) {\n token = params[params.length - 1];\n node2.source.end = this.getPosition(token[3] || token[2]);\n node2.source.end.offset++;\n this.spaces = node2.raws.between;\n node2.raws.between = \"\";\n }\n } else {\n node2.raws.afterName = \"\";\n node2.params = \"\";\n }\n if (open) {\n node2.nodes = [];\n this.current = node2;\n }\n }\n checkMissedSemicolon(tokens) {\n let colon = this.colon(tokens);\n if (colon === false) return;\n let founded = 0;\n let token;\n for (let j = colon - 1; j >= 0; j--) {\n token = tokens[j];\n if (token[0] !== \"space\") {\n founded += 1;\n if (founded === 2) break;\n }\n }\n throw this.input.error(\n \"Missed semicolon\",\n token[0] === \"word\" ? token[3] + 1 : token[2]\n );\n }\n colon(tokens) {\n let brackets = 0;\n let token, type, prev;\n for (let [i2, element] of tokens.entries()) {\n token = element;\n type = token[0];\n if (type === \"(\") {\n brackets += 1;\n }\n if (type === \")\") {\n brackets -= 1;\n }\n if (brackets === 0 && type === \":\") {\n if (!prev) {\n this.doubleColon(token);\n } else if (prev[0] === \"word\" && prev[1] === \"progid\") {\n continue;\n } else {\n return i2;\n }\n }\n prev = token;\n }\n return false;\n }\n comment(token) {\n let node2 = new Comment$2();\n this.init(node2, token[2]);\n node2.source.end = this.getPosition(token[3] || token[2]);\n node2.source.end.offset++;\n let text = token[1].slice(2, -2);\n if (/^\\s*$/.test(text)) {\n node2.text = \"\";\n node2.raws.left = text;\n node2.raws.right = \"\";\n } else {\n let match = text.match(/^(\\s*)([^]*\\S)(\\s*)$/);\n node2.text = match[2];\n node2.raws.left = match[1];\n node2.raws.right = match[3];\n }\n }\n createTokenizer() {\n this.tokenizer = tokenizer22(this.input);\n }\n decl(tokens, customProperty) {\n let node2 = new Declaration$2();\n this.init(node2, tokens[0][2]);\n let last = tokens[tokens.length - 1];\n if (last[0] === \";\") {\n this.semicolon = true;\n tokens.pop();\n }\n node2.source.end = this.getPosition(\n last[3] || last[2] || findLastWithPosition(tokens)\n );\n node2.source.end.offset++;\n while (tokens[0][0] !== \"word\") {\n if (tokens.length === 1) this.unknownWord(tokens);\n node2.raws.before += tokens.shift()[1];\n }\n node2.source.start = this.getPosition(tokens[0][2]);\n node2.prop = \"\";\n while (tokens.length) {\n let type = tokens[0][0];\n if (type === \":\" || type === \"space\" || type === \"comment\") {\n break;\n }\n node2.prop += tokens.shift()[1];\n }\n node2.raws.between = \"\";\n let token;\n while (tokens.length) {\n token = tokens.shift();\n if (token[0] === \":\") {\n node2.raws.between += token[1];\n break;\n } else {\n if (token[0] === \"word\" && /\\w/.test(token[1])) {\n this.unknownWord([token]);\n }\n node2.raws.between += token[1];\n }\n }\n if (node2.prop[0] === \"_\" || node2.prop[0] === \"*\") {\n node2.raws.before += node2.prop[0];\n node2.prop = node2.prop.slice(1);\n }\n let firstSpaces = [];\n let next;\n while (tokens.length) {\n next = tokens[0][0];\n if (next !== \"space\" && next !== \"comment\") break;\n firstSpaces.push(tokens.shift());\n }\n this.precheckMissedSemicolon(tokens);\n for (let i2 = tokens.length - 1; i2 >= 0; i2--) {\n token = tokens[i2];\n if (token[1].toLowerCase() === \"!important\") {\n node2.important = true;\n let string = this.stringFrom(tokens, i2);\n string = this.spacesFromEnd(tokens) + string;\n if (string !== \" !important\") node2.raws.important = string;\n break;\n } else if (token[1].toLowerCase() === \"important\") {\n let cache = tokens.slice(0);\n let str = \"\";\n for (let j = i2; j > 0; j--) {\n let type = cache[j][0];\n if (str.trim().indexOf(\"!\") === 0 && type !== \"space\") {\n break;\n }\n str = cache.pop()[1] + str;\n }\n if (str.trim().indexOf(\"!\") === 0) {\n node2.important = true;\n node2.raws.important = str;\n tokens = cache;\n }\n }\n if (token[0] !== \"space\" && token[0] !== \"comment\") {\n break;\n }\n }\n let hasWord = tokens.some((i2) => i2[0] !== \"space\" && i2[0] !== \"comment\");\n if (hasWord) {\n node2.raws.between += firstSpaces.map((i2) => i2[1]).join(\"\");\n firstSpaces = [];\n }\n this.raw(node2, \"value\", firstSpaces.concat(tokens), customProperty);\n if (node2.value.includes(\":\") && !customProperty) {\n this.checkMissedSemicolon(tokens);\n }\n }\n doubleColon(token) {\n throw this.input.error(\n \"Double colon\",\n { offset: token[2] },\n { offset: token[2] + token[1].length }\n );\n }\n emptyRule(token) {\n let node2 = new Rule$2();\n this.init(node2, token[2]);\n node2.selector = \"\";\n node2.raws.between = \"\";\n this.current = node2;\n }\n end(token) {\n if (this.current.nodes && this.current.nodes.length) {\n this.current.raws.semicolon = this.semicolon;\n }\n this.semicolon = false;\n this.current.raws.after = (this.current.raws.after || \"\") + this.spaces;\n this.spaces = \"\";\n if (this.current.parent) {\n this.current.source.end = this.getPosition(token[2]);\n this.current.source.end.offset++;\n this.current = this.current.parent;\n } else {\n this.unexpectedClose(token);\n }\n }\n endFile() {\n if (this.current.parent) this.unclosedBlock();\n if (this.current.nodes && this.current.nodes.length) {\n this.current.raws.semicolon = this.semicolon;\n }\n this.current.raws.after = (this.current.raws.after || \"\") + this.spaces;\n this.root.source.end = this.getPosition(this.tokenizer.position());\n }\n freeSemicolon(token) {\n this.spaces += token[1];\n if (this.current.nodes) {\n let prev = this.current.nodes[this.current.nodes.length - 1];\n if (prev && prev.type === \"rule\" && !prev.raws.ownSemicolon) {\n prev.raws.ownSemicolon = this.spaces;\n this.spaces = \"\";\n }\n }\n }\n // Helpers\n getPosition(offset) {\n let pos = this.input.fromOffset(offset);\n return {\n column: pos.col,\n line: pos.line,\n offset\n };\n }\n init(node2, offset) {\n this.current.push(node2);\n node2.source = {\n input: this.input,\n start: this.getPosition(offset)\n };\n node2.raws.before = this.spaces;\n this.spaces = \"\";\n if (node2.type !== \"comment\") this.semicolon = false;\n }\n other(start) {\n let end = false;\n let type = null;\n let colon = false;\n let bracket = null;\n let brackets = [];\n let customProperty = start[1].startsWith(\"--\");\n let tokens = [];\n let token = start;\n while (token) {\n type = token[0];\n tokens.push(token);\n if (type === \"(\" || type === \"[\") {\n if (!bracket) bracket = token;\n brackets.push(type === \"(\" ? \")\" : \"]\");\n } else if (customProperty && colon && type === \"{\") {\n if (!bracket) bracket = token;\n brackets.push(\"}\");\n } else if (brackets.length === 0) {\n if (type === \";\") {\n if (colon) {\n this.decl(tokens, customProperty);\n return;\n } else {\n break;\n }\n } else if (type === \"{\") {\n this.rule(tokens);\n return;\n } else if (type === \"}\") {\n this.tokenizer.back(tokens.pop());\n end = true;\n break;\n } else if (type === \":\") {\n colon = true;\n }\n } else if (type === brackets[brackets.length - 1]) {\n brackets.pop();\n if (brackets.length === 0) bracket = null;\n }\n token = this.tokenizer.nextToken();\n }\n if (this.tokenizer.endOfFile()) end = true;\n if (brackets.length > 0) this.unclosedBracket(bracket);\n if (end && colon) {\n if (!customProperty) {\n while (tokens.length) {\n token = tokens[tokens.length - 1][0];\n if (token !== \"space\" && token !== \"comment\") break;\n this.tokenizer.back(tokens.pop());\n }\n }\n this.decl(tokens, customProperty);\n } else {\n this.unknownWord(tokens);\n }\n }\n parse() {\n let token;\n while (!this.tokenizer.endOfFile()) {\n token = this.tokenizer.nextToken();\n switch (token[0]) {\n case \"space\":\n this.spaces += token[1];\n break;\n case \";\":\n this.freeSemicolon(token);\n break;\n case \"}\":\n this.end(token);\n break;\n case \"comment\":\n this.comment(token);\n break;\n case \"at-word\":\n this.atrule(token);\n break;\n case \"{\":\n this.emptyRule(token);\n break;\n default:\n this.other(token);\n break;\n }\n }\n this.endFile();\n }\n precheckMissedSemicolon() {\n }\n raw(node2, prop, tokens, customProperty) {\n let token, type;\n let length = tokens.length;\n let value = \"\";\n let clean = true;\n let next, prev;\n for (let i2 = 0; i2 < length; i2 += 1) {\n token = tokens[i2];\n type = token[0];\n if (type === \"space\" && i2 === length - 1 && !customProperty) {\n clean = false;\n } else if (type === \"comment\") {\n prev = tokens[i2 - 1] ? tokens[i2 - 1][0] : \"empty\";\n next = tokens[i2 + 1] ? tokens[i2 + 1][0] : \"empty\";\n if (!SAFE_COMMENT_NEIGHBOR[prev] && !SAFE_COMMENT_NEIGHBOR[next]) {\n if (value.slice(-1) === \",\") {\n clean = false;\n } else {\n value += token[1];\n }\n } else {\n clean = false;\n }\n } else {\n value += token[1];\n }\n }\n if (!clean) {\n let raw = tokens.reduce((all, i2) => all + i2[1], \"\");\n node2.raws[prop] = { raw, value };\n }\n node2[prop] = value;\n }\n rule(tokens) {\n tokens.pop();\n let node2 = new Rule$2();\n this.init(node2, tokens[0][2]);\n node2.raws.between = this.spacesAndCommentsFromEnd(tokens);\n this.raw(node2, \"selector\", tokens);\n this.current = node2;\n }\n spacesAndCommentsFromEnd(tokens) {\n let lastTokenType;\n let spaces = \"\";\n while (tokens.length) {\n lastTokenType = tokens[tokens.length - 1][0];\n if (lastTokenType !== \"space\" && lastTokenType !== \"comment\") break;\n spaces = tokens.pop()[1] + spaces;\n }\n return spaces;\n }\n // Errors\n spacesAndCommentsFromStart(tokens) {\n let next;\n let spaces = \"\";\n while (tokens.length) {\n next = tokens[0][0];\n if (next !== \"space\" && next !== \"comment\") break;\n spaces += tokens.shift()[1];\n }\n return spaces;\n }\n spacesFromEnd(tokens) {\n let lastTokenType;\n let spaces = \"\";\n while (tokens.length) {\n lastTokenType = tokens[tokens.length - 1][0];\n if (lastTokenType !== \"space\") break;\n spaces = tokens.pop()[1] + spaces;\n }\n return spaces;\n }\n stringFrom(tokens, from) {\n let result2 = \"\";\n for (let i2 = from; i2 < tokens.length; i2++) {\n result2 += tokens[i2][1];\n }\n tokens.splice(from, tokens.length - from);\n return result2;\n }\n unclosedBlock() {\n let pos = this.current.source.start;\n throw this.input.error(\"Unclosed block\", pos.line, pos.column);\n }\n unclosedBracket(bracket) {\n throw this.input.error(\n \"Unclosed bracket\",\n { offset: bracket[2] },\n { offset: bracket[2] + 1 }\n );\n }\n unexpectedClose(token) {\n throw this.input.error(\n \"Unexpected }\",\n { offset: token[2] },\n { offset: token[2] + 1 }\n );\n }\n unknownWord(tokens) {\n throw this.input.error(\n \"Unknown word\",\n { offset: tokens[0][2] },\n { offset: tokens[0][2] + tokens[0][1].length }\n );\n }\n unnamedAtrule(node2, token) {\n throw this.input.error(\n \"At-rule without name\",\n { offset: token[2] },\n { offset: token[2] + token[1].length }\n );\n }\n};\nvar parser = Parser$1;\nlet Container$2 = container;\nlet Parser22 = parser;\nlet Input$2 = input;\nfunction parse$3(css, opts) {\n let input2 = new Input$2(css, opts);\n let parser2 = new Parser22(input2);\n try {\n parser2.parse();\n } catch (e2) {\n if (process.env.NODE_ENV !== \"production\") {\n if (e2.name === \"CssSyntaxError\" && opts && opts.from) {\n if (/\\.scss$/i.test(opts.from)) {\n e2.message += \"\\nYou tried to parse SCSS with the standard CSS parser; try again with the postcss-scss parser\";\n } else if (/\\.sass/i.test(opts.from)) {\n e2.message += \"\\nYou tried to parse Sass with the standard CSS parser; try again with the postcss-sass parser\";\n } else if (/\\.less$/i.test(opts.from)) {\n e2.message += \"\\nYou tried to parse Less with the standard CSS parser; try again with the postcss-less parser\";\n }\n }\n }\n throw e2;\n }\n return parser2.root;\n}\nvar parse_1 = parse$3;\nparse$3.default = parse$3;\nContainer$2.registerParse(parse$3);\nlet { isClean, my } = symbols;\nlet MapGenerator$1 = mapGenerator;\nlet stringify$2 = stringify_1;\nlet Container$1 = container;\nlet Document$2 = document$1;\nlet warnOnce$1 = warnOnce$2;\nlet Result$2 = result;\nlet parse$2 = parse_1;\nlet Root$3 = root;\nconst TYPE_TO_CLASS_NAME = {\n atrule: \"AtRule\",\n comment: \"Comment\",\n decl: \"Declaration\",\n document: \"Document\",\n root: \"Root\",\n rule: \"Rule\"\n};\nconst PLUGIN_PROPS = {\n AtRule: true,\n AtRuleExit: true,\n Comment: true,\n CommentExit: true,\n Declaration: true,\n DeclarationExit: true,\n Document: true,\n DocumentExit: true,\n Once: true,\n OnceExit: true,\n postcssPlugin: true,\n prepare: true,\n Root: true,\n RootExit: true,\n Rule: true,\n RuleExit: true\n};\nconst NOT_VISITORS = {\n Once: true,\n postcssPlugin: true,\n prepare: true\n};\nconst CHILDREN = 0;\nfunction isPromise(obj) {\n return typeof obj === \"object\" && typeof obj.then === \"function\";\n}\nfunction getEvents(node2) {\n let key = false;\n let type = TYPE_TO_CLASS_NAME[node2.type];\n if (node2.type === \"decl\") {\n key = node2.prop.toLowerCase();\n } else if (node2.type === \"atrule\") {\n key = node2.name.toLowerCase();\n }\n if (key && node2.append) {\n return [\n type,\n type + \"-\" + key,\n CHILDREN,\n type + \"Exit\",\n type + \"Exit-\" + key\n ];\n } else if (key) {\n return [type, type + \"-\" + key, type + \"Exit\", type + \"Exit-\" + key];\n } else if (node2.append) {\n return [type, CHILDREN, type + \"Exit\"];\n } else {\n return [type, type + \"Exit\"];\n }\n}\nfunction toStack(node2) {\n let events;\n if (node2.type === \"document\") {\n events = [\"Document\", CHILDREN, \"DocumentExit\"];\n } else if (node2.type === \"root\") {\n events = [\"Root\", CHILDREN, \"RootExit\"];\n } else {\n events = getEvents(node2);\n }\n return {\n eventIndex: 0,\n events,\n iterator: 0,\n node: node2,\n visitorIndex: 0,\n visitors: []\n };\n}\nfunction cleanMarks(node2) {\n node2[isClean] = false;\n if (node2.nodes) node2.nodes.forEach((i2) => cleanMarks(i2));\n return node2;\n}\nlet postcss$2 = {};\nlet LazyResult$2 = class LazyResult2 {\n constructor(processor2, css, opts) {\n this.stringified = false;\n this.processed = false;\n let root2;\n if (typeof css === \"object\" && css !== null && (css.type === \"root\" || css.type === \"document\")) {\n root2 = cleanMarks(css);\n } else if (css instanceof LazyResult2 || css instanceof Result$2) {\n root2 = cleanMarks(css.root);\n if (css.map) {\n if (typeof opts.map === \"undefined\") opts.map = {};\n if (!opts.map.inline) opts.map.inline = false;\n opts.map.prev = css.map;\n }\n } else {\n let parser2 = parse$2;\n if (opts.syntax) parser2 = opts.syntax.parse;\n if (opts.parser) parser2 = opts.parser;\n if (parser2.parse) parser2 = parser2.parse;\n try {\n root2 = parser2(css, opts);\n } catch (error) {\n this.processed = true;\n this.error = error;\n }\n if (root2 && !root2[my]) {\n Container$1.rebuild(root2);\n }\n }\n this.result = new Result$2(processor2, root2, opts);\n this.helpers = { ...postcss$2, postcss: postcss$2, result: this.result };\n this.plugins = this.processor.plugins.map((plugin22) => {\n if (typeof plugin22 === \"object\" && plugin22.prepare) {\n return { ...plugin22, ...plugin22.prepare(this.result) };\n } else {\n return plugin22;\n }\n });\n }\n async() {\n if (this.error) return Promise.reject(this.error);\n if (this.processed) return Promise.resolve(this.result);\n if (!this.processing) {\n this.processing = this.runAsync();\n }\n return this.processing;\n }\n catch(onRejected) {\n return this.async().catch(onRejected);\n }\n finally(onFinally) {\n return this.async().then(onFinally, onFinally);\n }\n getAsyncError() {\n throw new Error(\"Use process(css).then(cb) to work with async plugins\");\n }\n handleError(error, node2) {\n let plugin22 = this.result.lastPlugin;\n try {\n if (node2) node2.addToError(error);\n this.error = error;\n if (error.name === \"CssSyntaxError\" && !error.plugin) {\n error.plugin = plugin22.postcssPlugin;\n error.setMessage();\n } else if (plugin22.postcssVersion) {\n if (process.env.NODE_ENV !== \"production\") {\n let pluginName = plugin22.postcssPlugin;\n let pluginVer = plugin22.postcssVersion;\n let runtimeVer = this.result.processor.version;\n let a2 = pluginVer.split(\".\");\n let b = runtimeVer.split(\".\");\n if (a2[0] !== b[0] || parseInt(a2[1]) > parseInt(b[1])) {\n console.error(\n \"Unknown error from PostCSS plugin. Your current PostCSS version is \" + runtimeVer + \", but \" + pluginName + \" uses \" + pluginVer + \". Perhaps this is the source of the error below.\"\n );\n }\n }\n }\n } catch (err) {\n if (console && console.error) console.error(err);\n }\n return error;\n }\n prepareVisitors() {\n this.listeners = {};\n let add = (plugin22, type, cb) => {\n if (!this.listeners[type]) this.listeners[type] = [];\n this.listeners[type].push([plugin22, cb]);\n };\n for (let plugin22 of this.plugins) {\n if (typeof plugin22 === \"object\") {\n for (let event in plugin22) {\n if (!PLUGIN_PROPS[event] && /^[A-Z]/.test(event)) {\n throw new Error(\n `Unknown event ${event} in ${plugin22.postcssPlugin}. Try to update PostCSS (${this.processor.version} now).`\n );\n }\n if (!NOT_VISITORS[event]) {\n if (typeof plugin22[event] === \"object\") {\n for (let filter in plugin22[event]) {\n if (filter === \"*\") {\n add(plugin22, event, plugin22[event][filter]);\n } else {\n add(\n plugin22,\n event + \"-\" + filter.toLowerCase(),\n plugin22[event][filter]\n );\n }\n }\n } else if (typeof plugin22[event] === \"function\") {\n add(plugin22, event, plugin22[event]);\n }\n }\n }\n }\n }\n this.hasListener = Object.keys(this.listeners).length > 0;\n }\n async runAsync() {\n this.plugin = 0;\n for (let i2 = 0; i2 < this.plugins.length; i2++) {\n let plugin22 = this.plugins[i2];\n let promise = this.runOnRoot(plugin22);\n if (isPromise(promise)) {\n try {\n await promise;\n } catch (error) {\n throw this.handleError(error);\n }\n }\n }\n this.prepareVisitors();\n if (this.hasListener) {\n let root2 = this.result.root;\n while (!root2[isClean]) {\n root2[isClean] = true;\n let stack = [toStack(root2)];\n while (stack.length > 0) {\n let promise = this.visitTick(stack);\n if (isPromise(promise)) {\n try {\n await promise;\n } catch (e2) {\n let node2 = stack[stack.length - 1].node;\n throw this.handleError(e2, node2);\n }\n }\n }\n }\n if (this.listeners.OnceExit) {\n for (let [plugin22, visitor] of this.listeners.OnceExit) {\n this.result.lastPlugin = plugin22;\n try {\n if (root2.type === \"document\") {\n let roots = root2.nodes.map(\n (subRoot) => visitor(subRoot, this.helpers)\n );\n await Promise.all(roots);\n } else {\n await visitor(root2, this.helpers);\n }\n } catch (e2) {\n throw this.handleError(e2);\n }\n }\n }\n }\n this.processed = true;\n return this.stringify();\n }\n runOnRoot(plugin22) {\n this.result.lastPlugin = plugin22;\n try {\n if (typeof plugin22 === \"object\" && plugin22.Once) {\n if (this.result.root.type === \"document\") {\n let roots = this.result.root.nodes.map(\n (root2) => plugin22.Once(root2, this.helpers)\n );\n if (isPromise(roots[0])) {\n return Promise.all(roots);\n }\n return roots;\n }\n return plugin22.Once(this.result.root, this.helpers);\n } else if (typeof plugin22 === \"function\") {\n return plugin22(this.result.root, this.result);\n }\n } catch (error) {\n throw this.handleError(error);\n }\n }\n stringify() {\n if (this.error) throw this.error;\n if (this.stringified) return this.result;\n this.stringified = true;\n this.sync();\n let opts = this.result.opts;\n let str = stringify$2;\n if (opts.syntax) str = opts.syntax.stringify;\n if (opts.stringifier) str = opts.stringifier;\n if (str.stringify) str = str.stringify;\n let map = new MapGenerator$1(str, this.result.root, this.result.opts);\n let data = map.generate();\n this.result.css = data[0];\n this.result.map = data[1];\n return this.result;\n }\n sync() {\n if (this.error) throw this.error;\n if (this.processed) return this.result;\n this.processed = true;\n if (this.processing) {\n throw this.getAsyncError();\n }\n for (let plugin22 of this.plugins) {\n let promise = this.runOnRoot(plugin22);\n if (isPromise(promise)) {\n throw this.getAsyncError();\n }\n }\n this.prepareVisitors();\n if (this.hasListener) {\n let root2 = this.result.root;\n while (!root2[isClean]) {\n root2[isClean] = true;\n this.walkSync(root2);\n }\n if (this.listeners.OnceExit) {\n if (root2.type === \"document\") {\n for (let subRoot of root2.nodes) {\n this.visitSync(this.listeners.OnceExit, subRoot);\n }\n } else {\n this.visitSync(this.listeners.OnceExit, root2);\n }\n }\n }\n return this.result;\n }\n then(onFulfilled, onRejected) {\n if (process.env.NODE_ENV !== \"production\") {\n if (!(\"from\" in this.opts)) {\n warnOnce$1(\n \"Without `from` option PostCSS could generate wrong source map and will not find Browserslist config. Set it to CSS file path or to `undefined` to prevent this warning.\"\n );\n }\n }\n return this.async().then(onFulfilled, onRejected);\n }\n toString() {\n return this.css;\n }\n visitSync(visitors, node2) {\n for (let [plugin22, visitor] of visitors) {\n this.result.lastPlugin = plugin22;\n let promise;\n try {\n promise = visitor(node2, this.helpers);\n } catch (e2) {\n throw this.handleError(e2, node2.proxyOf);\n }\n if (node2.type !== \"root\" && node2.type !== \"document\" && !node2.parent) {\n return true;\n }\n if (isPromise(promise)) {\n throw this.getAsyncError();\n }\n }\n }\n visitTick(stack) {\n let visit2 = stack[stack.length - 1];\n let { node: node2, visitors } = visit2;\n if (node2.type !== \"root\" && node2.type !== \"document\" && !node2.parent) {\n stack.pop();\n return;\n }\n if (visitors.length > 0 && visit2.visitorIndex < visitors.length) {\n let [plugin22, visitor] = visitors[visit2.visitorIndex];\n visit2.visitorIndex += 1;\n if (visit2.visitorIndex === visitors.length) {\n visit2.visitors = [];\n visit2.visitorIndex = 0;\n }\n this.result.lastPlugin = plugin22;\n try {\n return visitor(node2.toProxy(), this.helpers);\n } catch (e2) {\n throw this.handleError(e2, node2);\n }\n }\n if (visit2.iterator !== 0) {\n let iterator = visit2.iterator;\n let child;\n while (child = node2.nodes[node2.indexes[iterator]]) {\n node2.indexes[iterator] += 1;\n if (!child[isClean]) {\n child[isClean] = true;\n stack.push(toStack(child));\n return;\n }\n }\n visit2.iterator = 0;\n delete node2.indexes[iterator];\n }\n let events = visit2.events;\n while (visit2.eventIndex < events.length) {\n let event = events[visit2.eventIndex];\n visit2.eventIndex += 1;\n if (event === CHILDREN) {\n if (node2.nodes && node2.nodes.length) {\n node2[isClean] = true;\n visit2.iterator = node2.getIterator();\n }\n return;\n } else if (this.listeners[event]) {\n visit2.visitors = this.listeners[event];\n return;\n }\n }\n stack.pop();\n }\n walkSync(node2) {\n node2[isClean] = true;\n let events = getEvents(node2);\n for (let event of events) {\n if (event === CHILDREN) {\n if (node2.nodes) {\n node2.each((child) => {\n if (!child[isClean]) this.walkSync(child);\n });\n }\n } else {\n let visitors = this.listeners[event];\n if (visitors) {\n if (this.visitSync(visitors, node2.toProxy())) return;\n }\n }\n }\n }\n warnings() {\n return this.sync().warnings();\n }\n get content() {\n return this.stringify().content;\n }\n get css() {\n return this.stringify().css;\n }\n get map() {\n return this.stringify().map;\n }\n get messages() {\n return this.sync().messages;\n }\n get opts() {\n return this.result.opts;\n }\n get processor() {\n return this.result.processor;\n }\n get root() {\n return this.sync().root;\n }\n get [Symbol.toStringTag]() {\n return \"LazyResult\";\n }\n};\nLazyResult$2.registerPostcss = (dependant) => {\n postcss$2 = dependant;\n};\nvar lazyResult = LazyResult$2;\nLazyResult$2.default = LazyResult$2;\nRoot$3.registerLazyResult(LazyResult$2);\nDocument$2.registerLazyResult(LazyResult$2);\nlet MapGenerator22 = mapGenerator;\nlet stringify$1 = stringify_1;\nlet warnOnce22 = warnOnce$2;\nlet parse$1 = parse_1;\nconst Result$1 = result;\nlet NoWorkResult$1 = class NoWorkResult2 {\n constructor(processor2, css, opts) {\n css = css.toString();\n this.stringified = false;\n this._processor = processor2;\n this._css = css;\n this._opts = opts;\n this._map = void 0;\n let root2;\n let str = stringify$1;\n this.result = new Result$1(this._processor, root2, this._opts);\n this.result.css = css;\n let self = this;\n Object.defineProperty(this.result, \"root\", {\n get() {\n return self.root;\n }\n });\n let map = new MapGenerator22(str, root2, this._opts, css);\n if (map.isMap()) {\n let [generatedCSS, generatedMap] = map.generate();\n if (generatedCSS) {\n this.result.css = generatedCSS;\n }\n if (generatedMap) {\n this.result.map = generatedMap;\n }\n } else {\n map.clearAnnotation();\n this.result.css = map.css;\n }\n }\n async() {\n if (this.error) return Promise.reject(this.error);\n return Promise.resolve(this.result);\n }\n catch(onRejected) {\n return this.async().catch(onRejected);\n }\n finally(onFinally) {\n return this.async().then(onFinally, onFinally);\n }\n sync() {\n if (this.error) throw this.error;\n return this.result;\n }\n then(onFulfilled, onRejected) {\n if (process.env.NODE_ENV !== \"production\") {\n if (!(\"from\" in this._opts)) {\n warnOnce22(\n \"Without `from` option PostCSS could generate wrong source map and will not find Browserslist config. Set it to CSS file path or to `undefined` to prevent this warning.\"\n );\n }\n }\n return this.async().then(onFulfilled, onRejected);\n }\n toString() {\n return this._css;\n }\n warnings() {\n return [];\n }\n get content() {\n return this.result.css;\n }\n get css() {\n return this.result.css;\n }\n get map() {\n return this.result.map;\n }\n get messages() {\n return [];\n }\n get opts() {\n return this.result.opts;\n }\n get processor() {\n return this.result.processor;\n }\n get root() {\n if (this._root) {\n return this._root;\n }\n let root2;\n let parser2 = parse$1;\n try {\n root2 = parser2(this._css, this._opts);\n } catch (error) {\n this.error = error;\n }\n if (this.error) {\n throw this.error;\n } else {\n this._root = root2;\n return root2;\n }\n }\n get [Symbol.toStringTag]() {\n return \"NoWorkResult\";\n }\n};\nvar noWorkResult = NoWorkResult$1;\nNoWorkResult$1.default = NoWorkResult$1;\nlet NoWorkResult22 = noWorkResult;\nlet LazyResult$1 = lazyResult;\nlet Document$1 = document$1;\nlet Root$2 = root;\nlet Processor$1 = class Processor2 {\n constructor(plugins = []) {\n this.version = \"8.4.38\";\n this.plugins = this.normalize(plugins);\n }\n normalize(plugins) {\n let normalized = [];\n for (let i2 of plugins) {\n if (i2.postcss === true) {\n i2 = i2();\n } else if (i2.postcss) {\n i2 = i2.postcss;\n }\n if (typeof i2 === \"object\" && Array.isArray(i2.plugins)) {\n normalized = normalized.concat(i2.plugins);\n } else if (typeof i2 === \"object\" && i2.postcssPlugin) {\n normalized.push(i2);\n } else if (typeof i2 === \"function\") {\n normalized.push(i2);\n } else if (typeof i2 === \"object\" && (i2.parse || i2.stringify)) {\n if (process.env.NODE_ENV !== \"production\") {\n throw new Error(\n \"PostCSS syntaxes cannot be used as plugins. Instead, please use one of the syntax/parser/stringifier options as outlined in your PostCSS runner documentation.\"\n );\n }\n } else {\n throw new Error(i2 + \" is not a PostCSS plugin\");\n }\n }\n return normalized;\n }\n process(css, opts = {}) {\n if (!this.plugins.length && !opts.parser && !opts.stringifier && !opts.syntax) {\n return new NoWorkResult22(this, css, opts);\n } else {\n return new LazyResult$1(this, css, opts);\n }\n }\n use(plugin22) {\n this.plugins = this.plugins.concat(this.normalize([plugin22]));\n return this;\n }\n};\nvar processor = Processor$1;\nProcessor$1.default = Processor$1;\nRoot$2.registerProcessor(Processor$1);\nDocument$1.registerProcessor(Processor$1);\nlet Declaration$1 = declaration;\nlet PreviousMap22 = previousMap;\nlet Comment$1 = comment;\nlet AtRule$1 = atRule;\nlet Input$1 = input;\nlet Root$1 = root;\nlet Rule$1 = rule;\nfunction fromJSON$1(json, inputs) {\n if (Array.isArray(json)) return json.map((n2) => fromJSON$1(n2));\n let { inputs: ownInputs, ...defaults } = json;\n if (ownInputs) {\n inputs = [];\n for (let input2 of ownInputs) {\n let inputHydrated = { ...input2, __proto__: Input$1.prototype };\n if (inputHydrated.map) {\n inputHydrated.map = {\n ...inputHydrated.map,\n __proto__: PreviousMap22.prototype\n };\n }\n inputs.push(inputHydrated);\n }\n }\n if (defaults.nodes) {\n defaults.nodes = json.nodes.map((n2) => fromJSON$1(n2, inputs));\n }\n if (defaults.source) {\n let { inputId, ...source } = defaults.source;\n defaults.source = source;\n if (inputId != null) {\n defaults.source.input = inputs[inputId];\n }\n }\n if (defaults.type === \"root\") {\n return new Root$1(defaults);\n } else if (defaults.type === \"decl\") {\n return new Declaration$1(defaults);\n } else if (defaults.type === \"rule\") {\n return new Rule$1(defaults);\n } else if (defaults.type === \"comment\") {\n return new Comment$1(defaults);\n } else if (defaults.type === \"atrule\") {\n return new AtRule$1(defaults);\n } else {\n throw new Error(\"Unknown node type: \" + json.type);\n }\n}\nvar fromJSON_1 = fromJSON$1;\nfromJSON$1.default = fromJSON$1;\nlet CssSyntaxError22 = cssSyntaxError;\nlet Declaration22 = declaration;\nlet LazyResult22 = lazyResult;\nlet Container22 = container;\nlet Processor22 = processor;\nlet stringify = stringify_1;\nlet fromJSON = fromJSON_1;\nlet Document222 = document$1;\nlet Warning22 = warning;\nlet Comment22 = comment;\nlet AtRule22 = atRule;\nlet Result22 = result;\nlet Input22 = input;\nlet parse = parse_1;\nlet list = list_1;\nlet Rule22 = rule;\nlet Root22 = root;\nlet Node22 = node;\nfunction postcss(...plugins) {\n if (plugins.length === 1 && Array.isArray(plugins[0])) {\n plugins = plugins[0];\n }\n return new Processor22(plugins);\n}\npostcss.plugin = function plugin2(name, initializer) {\n let warningPrinted = false;\n function creator(...args) {\n if (console && console.warn && !warningPrinted) {\n warningPrinted = true;\n console.warn(\n name + \": postcss.plugin was deprecated. Migration guide:\\nhttps://evilmartians.com/chronicles/postcss-8-plugin-migration\"\n );\n if (process.env.LANG && process.env.LANG.startsWith(\"cn\")) {\n console.warn(\n name + \": 里面 postcss.plugin 被弃用. 迁移指南:\\nhttps://www.w3ctech.com/topic/2226\"\n );\n }\n }\n let transformer = initializer(...args);\n transformer.postcssPlugin = name;\n transformer.postcssVersion = new Processor22().version;\n return transformer;\n }\n let cache;\n Object.defineProperty(creator, \"postcss\", {\n get() {\n if (!cache) cache = creator();\n return cache;\n }\n });\n creator.process = function(css, processOpts, pluginOpts) {\n return postcss([creator(pluginOpts)]).process(css, processOpts);\n };\n return creator;\n};\npostcss.stringify = stringify;\npostcss.parse = parse;\npostcss.fromJSON = fromJSON;\npostcss.list = list;\npostcss.comment = (defaults) => new Comment22(defaults);\npostcss.atRule = (defaults) => new AtRule22(defaults);\npostcss.decl = (defaults) => new Declaration22(defaults);\npostcss.rule = (defaults) => new Rule22(defaults);\npostcss.root = (defaults) => new Root22(defaults);\npostcss.document = (defaults) => new Document222(defaults);\npostcss.CssSyntaxError = CssSyntaxError22;\npostcss.Declaration = Declaration22;\npostcss.Container = Container22;\npostcss.Processor = Processor22;\npostcss.Document = Document222;\npostcss.Comment = Comment22;\npostcss.Warning = Warning22;\npostcss.AtRule = AtRule22;\npostcss.Result = Result22;\npostcss.Input = Input22;\npostcss.Rule = Rule22;\npostcss.Root = Root22;\npostcss.Node = Node22;\nLazyResult22.registerPostcss(postcss);\nvar postcss_1 = postcss;\npostcss.default = postcss;\nconst postcss$1 = /* @__PURE__ */ getDefaultExportFromCjs(postcss_1);\npostcss$1.stringify;\npostcss$1.fromJSON;\npostcss$1.plugin;\npostcss$1.parse;\npostcss$1.list;\npostcss$1.document;\npostcss$1.comment;\npostcss$1.atRule;\npostcss$1.rule;\npostcss$1.decl;\npostcss$1.root;\npostcss$1.CssSyntaxError;\npostcss$1.Declaration;\npostcss$1.Container;\npostcss$1.Processor;\npostcss$1.Document;\npostcss$1.Comment;\npostcss$1.Warning;\npostcss$1.AtRule;\npostcss$1.Result;\npostcss$1.Input;\npostcss$1.Rule;\npostcss$1.Root;\npostcss$1.Node;\nvar NodeType$1 = /* @__PURE__ */ ((NodeType2) => {\n NodeType2[NodeType2[\"Document\"] = 0] = \"Document\";\n NodeType2[NodeType2[\"DocumentType\"] = 1] = \"DocumentType\";\n NodeType2[NodeType2[\"Element\"] = 2] = \"Element\";\n NodeType2[NodeType2[\"Text\"] = 3] = \"Text\";\n NodeType2[NodeType2[\"CDATA\"] = 4] = \"CDATA\";\n NodeType2[NodeType2[\"Comment\"] = 5] = \"Comment\";\n return NodeType2;\n})(NodeType$1 || {});\nfunction parseCSSText(cssText) {\n const res = {};\n const listDelimiter = /;(?![^(]*\\))/g;\n const propertyDelimiter = /:(.+)/;\n const comment2 = /\\/\\*.*?\\*\\//g;\n cssText.replace(comment2, \"\").split(listDelimiter).forEach(function(item) {\n if (item) {\n const tmp = item.split(propertyDelimiter);\n tmp.length > 1 && (res[camelize(tmp[0].trim())] = tmp[1].trim());\n }\n });\n return res;\n}\nfunction toCSSText(style) {\n const properties = [];\n for (const name in style) {\n const value = style[name];\n if (typeof value !== \"string\") continue;\n const normalizedName = hyphenate(name);\n properties.push(`${normalizedName}: ${value};`);\n }\n return properties.join(\" \");\n}\nconst camelizeRE = /-([a-z])/g;\nconst CUSTOM_PROPERTY_REGEX = /^--[a-zA-Z0-9-]+$/;\nconst camelize = (str) => {\n if (CUSTOM_PROPERTY_REGEX.test(str)) return str;\n return str.replace(camelizeRE, (_, c2) => c2 ? c2.toUpperCase() : \"\");\n};\nconst hyphenateRE = /\\B([A-Z])/g;\nconst hyphenate = (str) => {\n return str.replace(hyphenateRE, \"-$1\").toLowerCase();\n};\nclass BaseRRNode {\n // eslint-disable-next-line @typescript-eslint/no-unused-vars, @typescript-eslint/no-explicit-any\n constructor(..._args) {\n __publicField2(this, \"parentElement\", null);\n __publicField2(this, \"parentNode\", null);\n __publicField2(this, \"ownerDocument\");\n __publicField2(this, \"firstChild\", null);\n __publicField2(this, \"lastChild\", null);\n __publicField2(this, \"previousSibling\", null);\n __publicField2(this, \"nextSibling\", null);\n __publicField2(this, \"ELEMENT_NODE\", 1);\n __publicField2(this, \"TEXT_NODE\", 3);\n __publicField2(this, \"nodeType\");\n __publicField2(this, \"nodeName\");\n __publicField2(this, \"RRNodeType\");\n }\n get childNodes() {\n const childNodes2 = [];\n let childIterator = this.firstChild;\n while (childIterator) {\n childNodes2.push(childIterator);\n childIterator = childIterator.nextSibling;\n }\n return childNodes2;\n }\n contains(node2) {\n if (!(node2 instanceof BaseRRNode)) return false;\n else if (node2.ownerDocument !== this.ownerDocument) return false;\n else if (node2 === this) return true;\n while (node2.parentNode) {\n if (node2.parentNode === this) return true;\n node2 = node2.parentNode;\n }\n return false;\n }\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n appendChild(_newChild) {\n throw new Error(\n `RRDomException: Failed to execute 'appendChild' on 'RRNode': This RRNode type does not support this method.`\n );\n }\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n insertBefore(_newChild, _refChild) {\n throw new Error(\n `RRDomException: Failed to execute 'insertBefore' on 'RRNode': This RRNode type does not support this method.`\n );\n }\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n removeChild(_node) {\n throw new Error(\n `RRDomException: Failed to execute 'removeChild' on 'RRNode': This RRNode type does not support this method.`\n );\n }\n toString() {\n return \"RRNode\";\n }\n}\nclass BaseRRDocument extends BaseRRNode {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n constructor(...args) {\n super(args);\n __publicField2(this, \"nodeType\", 9);\n __publicField2(this, \"nodeName\", \"#document\");\n __publicField2(this, \"compatMode\", \"CSS1Compat\");\n __publicField2(this, \"RRNodeType\", NodeType$1.Document);\n __publicField2(this, \"textContent\", null);\n this.ownerDocument = this;\n }\n get documentElement() {\n return this.childNodes.find(\n (node2) => node2.RRNodeType === NodeType$1.Element && node2.tagName === \"HTML\"\n ) || null;\n }\n get body() {\n var _a2;\n return ((_a2 = this.documentElement) == null ? void 0 : _a2.childNodes.find(\n (node2) => node2.RRNodeType === NodeType$1.Element && node2.tagName === \"BODY\"\n )) || null;\n }\n get head() {\n var _a2;\n return ((_a2 = this.documentElement) == null ? void 0 : _a2.childNodes.find(\n (node2) => node2.RRNodeType === NodeType$1.Element && node2.tagName === \"HEAD\"\n )) || null;\n }\n get implementation() {\n return this;\n }\n get firstElementChild() {\n return this.documentElement;\n }\n appendChild(newChild) {\n const nodeType = newChild.RRNodeType;\n if (nodeType === NodeType$1.Element || nodeType === NodeType$1.DocumentType) {\n if (this.childNodes.some((s2) => s2.RRNodeType === nodeType)) {\n throw new Error(\n `RRDomException: Failed to execute 'appendChild' on 'RRNode': Only one ${nodeType === NodeType$1.Element ? \"RRElement\" : \"RRDoctype\"} on RRDocument allowed.`\n );\n }\n }\n const child = appendChild(this, newChild);\n child.parentElement = null;\n return child;\n }\n insertBefore(newChild, refChild) {\n const nodeType = newChild.RRNodeType;\n if (nodeType === NodeType$1.Element || nodeType === NodeType$1.DocumentType) {\n if (this.childNodes.some((s2) => s2.RRNodeType === nodeType)) {\n throw new Error(\n `RRDomException: Failed to execute 'insertBefore' on 'RRNode': Only one ${nodeType === NodeType$1.Element ? \"RRElement\" : \"RRDoctype\"} on RRDocument allowed.`\n );\n }\n }\n const child = insertBefore(this, newChild, refChild);\n child.parentElement = null;\n return child;\n }\n removeChild(node2) {\n return removeChild(this, node2);\n }\n open() {\n this.firstChild = null;\n this.lastChild = null;\n }\n close() {\n }\n /**\n * Adhoc implementation for setting xhtml namespace in rebuilt.ts (rrweb-snapshot).\n * There are two lines used this function:\n * 1. doc.write('\\')\n * 2. doc.write('\\')\n */\n write(content) {\n let publicId;\n if (content === '')\n publicId = \"-//W3C//DTD XHTML 1.0 Transitional//EN\";\n else if (content === '')\n publicId = \"-//W3C//DTD HTML 4.0 Transitional//EN\";\n if (publicId) {\n const doctype = this.createDocumentType(\"html\", publicId, \"\");\n this.open();\n this.appendChild(doctype);\n }\n }\n createDocument(_namespace, _qualifiedName, _doctype) {\n return new BaseRRDocument();\n }\n createDocumentType(qualifiedName, publicId, systemId) {\n const doctype = new BaseRRDocumentType(qualifiedName, publicId, systemId);\n doctype.ownerDocument = this;\n return doctype;\n }\n createElement(tagName) {\n const element = new BaseRRElement(tagName);\n element.ownerDocument = this;\n return element;\n }\n createElementNS(_namespaceURI, qualifiedName) {\n return this.createElement(qualifiedName);\n }\n createTextNode(data) {\n const text = new BaseRRText(data);\n text.ownerDocument = this;\n return text;\n }\n createComment(data) {\n const comment2 = new BaseRRComment(data);\n comment2.ownerDocument = this;\n return comment2;\n }\n createCDATASection(data) {\n const CDATASection = new BaseRRCDATASection(data);\n CDATASection.ownerDocument = this;\n return CDATASection;\n }\n toString() {\n return \"RRDocument\";\n }\n}\nclass BaseRRDocumentType extends BaseRRNode {\n constructor(qualifiedName, publicId, systemId) {\n super();\n __publicField2(this, \"nodeType\", 10);\n __publicField2(this, \"RRNodeType\", NodeType$1.DocumentType);\n __publicField2(this, \"name\");\n __publicField2(this, \"publicId\");\n __publicField2(this, \"systemId\");\n __publicField2(this, \"textContent\", null);\n this.name = qualifiedName;\n this.publicId = publicId;\n this.systemId = systemId;\n this.nodeName = qualifiedName;\n }\n toString() {\n return \"RRDocumentType\";\n }\n}\nclass BaseRRElement extends BaseRRNode {\n constructor(tagName) {\n super();\n __publicField2(this, \"nodeType\", 1);\n __publicField2(this, \"RRNodeType\", NodeType$1.Element);\n __publicField2(this, \"tagName\");\n __publicField2(this, \"attributes\", {});\n __publicField2(this, \"shadowRoot\", null);\n __publicField2(this, \"scrollLeft\");\n __publicField2(this, \"scrollTop\");\n this.tagName = tagName.toUpperCase();\n this.nodeName = tagName.toUpperCase();\n }\n get textContent() {\n let result2 = \"\";\n this.childNodes.forEach((node2) => result2 += node2.textContent);\n return result2;\n }\n set textContent(textContent2) {\n this.firstChild = null;\n this.lastChild = null;\n this.appendChild(this.ownerDocument.createTextNode(textContent2));\n }\n get classList() {\n return new ClassList(\n this.attributes.class,\n (newClassName) => {\n this.attributes.class = newClassName;\n }\n );\n }\n get id() {\n return this.attributes.id || \"\";\n }\n get className() {\n return this.attributes.class || \"\";\n }\n get style() {\n const style = this.attributes.style ? parseCSSText(this.attributes.style) : {};\n const hyphenateRE2 = /\\B([A-Z])/g;\n style.setProperty = (name, value, priority) => {\n if (hyphenateRE2.test(name)) return;\n const normalizedName = camelize(name);\n if (!value) delete style[normalizedName];\n else style[normalizedName] = value;\n if (priority === \"important\") style[normalizedName] += \" !important\";\n this.attributes.style = toCSSText(style);\n };\n style.removeProperty = (name) => {\n if (hyphenateRE2.test(name)) return \"\";\n const normalizedName = camelize(name);\n const value = style[normalizedName] || \"\";\n delete style[normalizedName];\n this.attributes.style = toCSSText(style);\n return value;\n };\n return style;\n }\n getAttribute(name) {\n if (this.attributes[name] === void 0) return null;\n return this.attributes[name];\n }\n setAttribute(name, attribute) {\n this.attributes[name] = attribute;\n }\n setAttributeNS(_namespace, qualifiedName, value) {\n this.setAttribute(qualifiedName, value);\n }\n removeAttribute(name) {\n delete this.attributes[name];\n }\n appendChild(newChild) {\n return appendChild(this, newChild);\n }\n insertBefore(newChild, refChild) {\n return insertBefore(this, newChild, refChild);\n }\n removeChild(node2) {\n return removeChild(this, node2);\n }\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n attachShadow(_init) {\n const shadowRoot2 = this.ownerDocument.createElement(\"SHADOWROOT\");\n this.shadowRoot = shadowRoot2;\n return shadowRoot2;\n }\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n dispatchEvent(_event) {\n return true;\n }\n toString() {\n let attributeString = \"\";\n for (const attribute in this.attributes) {\n attributeString += `${attribute}=\"${this.attributes[attribute]}\" `;\n }\n return `${this.tagName} ${attributeString}`;\n }\n}\nclass BaseRRMediaElement extends BaseRRElement {\n constructor() {\n super(...arguments);\n __publicField2(this, \"currentTime\");\n __publicField2(this, \"volume\");\n __publicField2(this, \"paused\");\n __publicField2(this, \"muted\");\n __publicField2(this, \"playbackRate\");\n __publicField2(this, \"loop\");\n }\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n attachShadow(_init) {\n throw new Error(\n `RRDomException: Failed to execute 'attachShadow' on 'RRElement': This RRElement does not support attachShadow`\n );\n }\n play() {\n this.paused = false;\n }\n pause() {\n this.paused = true;\n }\n}\nclass BaseRRDialogElement extends BaseRRElement {\n constructor() {\n super(...arguments);\n __publicField2(this, \"tagName\", \"DIALOG\");\n __publicField2(this, \"nodeName\", \"DIALOG\");\n }\n get isModal() {\n return this.getAttribute(\"rr_open_mode\") === \"modal\";\n }\n get open() {\n return this.getAttribute(\"open\") !== null;\n }\n close() {\n this.removeAttribute(\"open\");\n this.removeAttribute(\"rr_open_mode\");\n }\n show() {\n this.setAttribute(\"open\", \"\");\n this.setAttribute(\"rr_open_mode\", \"non-modal\");\n }\n showModal() {\n this.setAttribute(\"open\", \"\");\n this.setAttribute(\"rr_open_mode\", \"modal\");\n }\n}\nclass BaseRRText extends BaseRRNode {\n constructor(data) {\n super();\n __publicField2(this, \"nodeType\", 3);\n __publicField2(this, \"nodeName\", \"#text\");\n __publicField2(this, \"RRNodeType\", NodeType$1.Text);\n __publicField2(this, \"data\");\n this.data = data;\n }\n get textContent() {\n return this.data;\n }\n set textContent(textContent2) {\n this.data = textContent2;\n }\n toString() {\n return `RRText text=${JSON.stringify(this.data)}`;\n }\n}\nclass BaseRRComment extends BaseRRNode {\n constructor(data) {\n super();\n __publicField2(this, \"nodeType\", 8);\n __publicField2(this, \"nodeName\", \"#comment\");\n __publicField2(this, \"RRNodeType\", NodeType$1.Comment);\n __publicField2(this, \"data\");\n this.data = data;\n }\n get textContent() {\n return this.data;\n }\n set textContent(textContent2) {\n this.data = textContent2;\n }\n toString() {\n return `RRComment text=${JSON.stringify(this.data)}`;\n }\n}\nclass BaseRRCDATASection extends BaseRRNode {\n constructor(data) {\n super();\n __publicField2(this, \"nodeName\", \"#cdata-section\");\n __publicField2(this, \"nodeType\", 4);\n __publicField2(this, \"RRNodeType\", NodeType$1.CDATA);\n __publicField2(this, \"data\");\n this.data = data;\n }\n get textContent() {\n return this.data;\n }\n set textContent(textContent2) {\n this.data = textContent2;\n }\n toString() {\n return `RRCDATASection data=${JSON.stringify(this.data)}`;\n }\n}\nclass ClassList {\n constructor(classText, onChange) {\n __publicField2(this, \"onChange\");\n __publicField2(this, \"classes\", []);\n __publicField2(this, \"add\", (...classNames) => {\n for (const item of classNames) {\n const className = String(item);\n if (this.classes.indexOf(className) >= 0) continue;\n this.classes.push(className);\n }\n this.onChange && this.onChange(this.classes.join(\" \"));\n });\n __publicField2(this, \"remove\", (...classNames) => {\n this.classes = this.classes.filter(\n (item) => classNames.indexOf(item) === -1\n );\n this.onChange && this.onChange(this.classes.join(\" \"));\n });\n if (classText) {\n const classes = classText.trim().split(/\\s+/);\n this.classes.push(...classes);\n }\n this.onChange = onChange;\n }\n}\nfunction appendChild(parent, newChild) {\n if (newChild.parentNode) newChild.parentNode.removeChild(newChild);\n if (parent.lastChild) {\n parent.lastChild.nextSibling = newChild;\n newChild.previousSibling = parent.lastChild;\n } else {\n parent.firstChild = newChild;\n newChild.previousSibling = null;\n }\n parent.lastChild = newChild;\n newChild.nextSibling = null;\n newChild.parentNode = parent;\n newChild.parentElement = parent;\n newChild.ownerDocument = parent.ownerDocument;\n return newChild;\n}\nfunction insertBefore(parent, newChild, refChild) {\n if (!refChild) return appendChild(parent, newChild);\n if (refChild.parentNode !== parent)\n throw new Error(\n \"Failed to execute 'insertBefore' on 'RRNode': The RRNode before which the new node is to be inserted is not a child of this RRNode.\"\n );\n if (newChild === refChild) return newChild;\n if (newChild.parentNode) newChild.parentNode.removeChild(newChild);\n newChild.previousSibling = refChild.previousSibling;\n refChild.previousSibling = newChild;\n newChild.nextSibling = refChild;\n if (newChild.previousSibling) newChild.previousSibling.nextSibling = newChild;\n else parent.firstChild = newChild;\n newChild.parentElement = parent;\n newChild.parentNode = parent;\n newChild.ownerDocument = parent.ownerDocument;\n return newChild;\n}\nfunction removeChild(parent, child) {\n if (child.parentNode !== parent)\n throw new Error(\n \"Failed to execute 'removeChild' on 'RRNode': The RRNode to be removed is not a child of this RRNode.\"\n );\n if (child.previousSibling)\n child.previousSibling.nextSibling = child.nextSibling;\n else parent.firstChild = child.nextSibling;\n if (child.nextSibling)\n child.nextSibling.previousSibling = child.previousSibling;\n else parent.lastChild = child.previousSibling;\n child.previousSibling = null;\n child.nextSibling = null;\n child.parentElement = null;\n child.parentNode = null;\n return child;\n}\nvar NodeType$2 = /* @__PURE__ */ ((NodeType2) => {\n NodeType2[NodeType2[\"PLACEHOLDER\"] = 0] = \"PLACEHOLDER\";\n NodeType2[NodeType2[\"ELEMENT_NODE\"] = 1] = \"ELEMENT_NODE\";\n NodeType2[NodeType2[\"ATTRIBUTE_NODE\"] = 2] = \"ATTRIBUTE_NODE\";\n NodeType2[NodeType2[\"TEXT_NODE\"] = 3] = \"TEXT_NODE\";\n NodeType2[NodeType2[\"CDATA_SECTION_NODE\"] = 4] = \"CDATA_SECTION_NODE\";\n NodeType2[NodeType2[\"ENTITY_REFERENCE_NODE\"] = 5] = \"ENTITY_REFERENCE_NODE\";\n NodeType2[NodeType2[\"ENTITY_NODE\"] = 6] = \"ENTITY_NODE\";\n NodeType2[NodeType2[\"PROCESSING_INSTRUCTION_NODE\"] = 7] = \"PROCESSING_INSTRUCTION_NODE\";\n NodeType2[NodeType2[\"COMMENT_NODE\"] = 8] = \"COMMENT_NODE\";\n NodeType2[NodeType2[\"DOCUMENT_NODE\"] = 9] = \"DOCUMENT_NODE\";\n NodeType2[NodeType2[\"DOCUMENT_TYPE_NODE\"] = 10] = \"DOCUMENT_TYPE_NODE\";\n NodeType2[NodeType2[\"DOCUMENT_FRAGMENT_NODE\"] = 11] = \"DOCUMENT_FRAGMENT_NODE\";\n return NodeType2;\n})(NodeType$2 || {});\nconst NAMESPACES = {\n svg: \"http://www.w3.org/2000/svg\",\n \"xlink:href\": \"http://www.w3.org/1999/xlink\",\n xmlns: \"http://www.w3.org/2000/xmlns/\"\n};\nconst SVGTagMap = {\n altglyph: \"altGlyph\",\n altglyphdef: \"altGlyphDef\",\n altglyphitem: \"altGlyphItem\",\n animatecolor: \"animateColor\",\n animatemotion: \"animateMotion\",\n animatetransform: \"animateTransform\",\n clippath: \"clipPath\",\n feblend: \"feBlend\",\n fecolormatrix: \"feColorMatrix\",\n fecomponenttransfer: \"feComponentTransfer\",\n fecomposite: \"feComposite\",\n feconvolvematrix: \"feConvolveMatrix\",\n fediffuselighting: \"feDiffuseLighting\",\n fedisplacementmap: \"feDisplacementMap\",\n fedistantlight: \"feDistantLight\",\n fedropshadow: \"feDropShadow\",\n feflood: \"feFlood\",\n fefunca: \"feFuncA\",\n fefuncb: \"feFuncB\",\n fefuncg: \"feFuncG\",\n fefuncr: \"feFuncR\",\n fegaussianblur: \"feGaussianBlur\",\n feimage: \"feImage\",\n femerge: \"feMerge\",\n femergenode: \"feMergeNode\",\n femorphology: \"feMorphology\",\n feoffset: \"feOffset\",\n fepointlight: \"fePointLight\",\n fespecularlighting: \"feSpecularLighting\",\n fespotlight: \"feSpotLight\",\n fetile: \"feTile\",\n feturbulence: \"feTurbulence\",\n foreignobject: \"foreignObject\",\n glyphref: \"glyphRef\",\n lineargradient: \"linearGradient\",\n radialgradient: \"radialGradient\"\n};\nlet createdNodeSet = null;\nfunction diff(oldTree, newTree, replayer, rrnodeMirror = newTree.mirror || newTree.ownerDocument.mirror) {\n oldTree = diffBeforeUpdatingChildren(\n oldTree,\n newTree,\n replayer,\n rrnodeMirror\n );\n diffChildren(oldTree, newTree, replayer, rrnodeMirror);\n diffAfterUpdatingChildren(oldTree, newTree, replayer);\n}\nfunction diffBeforeUpdatingChildren(oldTree, newTree, replayer, rrnodeMirror) {\n var _a2;\n if (replayer.afterAppend && !createdNodeSet) {\n createdNodeSet = /* @__PURE__ */ new WeakSet();\n setTimeout(() => {\n createdNodeSet = null;\n }, 0);\n }\n if (!sameNodeType(oldTree, newTree)) {\n const calibratedOldTree = createOrGetNode(\n newTree,\n replayer.mirror,\n rrnodeMirror\n );\n (_a2 = oldTree.parentNode) == null ? void 0 : _a2.replaceChild(calibratedOldTree, oldTree);\n oldTree = calibratedOldTree;\n }\n switch (newTree.RRNodeType) {\n case NodeType$1.Document: {\n if (!nodeMatching(oldTree, newTree, replayer.mirror, rrnodeMirror)) {\n const newMeta = rrnodeMirror.getMeta(newTree);\n if (newMeta) {\n replayer.mirror.removeNodeFromMap(oldTree);\n oldTree.close();\n oldTree.open();\n replayer.mirror.add(oldTree, newMeta);\n createdNodeSet == null ? void 0 : createdNodeSet.add(oldTree);\n }\n }\n break;\n }\n case NodeType$1.Element: {\n const oldElement = oldTree;\n const newRRElement = newTree;\n switch (newRRElement.tagName) {\n case \"IFRAME\": {\n const oldContentDocument = oldTree.contentDocument;\n if (!oldContentDocument) break;\n diff(\n oldContentDocument,\n newTree.contentDocument,\n replayer,\n rrnodeMirror\n );\n break;\n }\n }\n if (newRRElement.shadowRoot) {\n if (!oldElement.shadowRoot) oldElement.attachShadow({ mode: \"open\" });\n diffChildren(\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n oldElement.shadowRoot,\n newRRElement.shadowRoot,\n replayer,\n rrnodeMirror\n );\n }\n diffProps(oldElement, newRRElement, rrnodeMirror);\n break;\n }\n }\n return oldTree;\n}\nfunction diffAfterUpdatingChildren(oldTree, newTree, replayer) {\n var _a2;\n switch (newTree.RRNodeType) {\n case NodeType$1.Document: {\n const scrollData = newTree.scrollData;\n scrollData && replayer.applyScroll(scrollData, true);\n break;\n }\n case NodeType$1.Element: {\n const oldElement = oldTree;\n const newRRElement = newTree;\n newRRElement.scrollData && replayer.applyScroll(newRRElement.scrollData, true);\n newRRElement.inputData && replayer.applyInput(newRRElement.inputData);\n switch (newRRElement.tagName) {\n case \"AUDIO\":\n case \"VIDEO\": {\n const oldMediaElement = oldTree;\n const newMediaRRElement = newRRElement;\n if (newMediaRRElement.paused !== void 0)\n newMediaRRElement.paused ? void oldMediaElement.pause() : void oldMediaElement.play();\n if (newMediaRRElement.muted !== void 0)\n oldMediaElement.muted = newMediaRRElement.muted;\n if (newMediaRRElement.volume !== void 0)\n oldMediaElement.volume = newMediaRRElement.volume;\n if (newMediaRRElement.currentTime !== void 0)\n oldMediaElement.currentTime = newMediaRRElement.currentTime;\n if (newMediaRRElement.playbackRate !== void 0)\n oldMediaElement.playbackRate = newMediaRRElement.playbackRate;\n if (newMediaRRElement.loop !== void 0)\n oldMediaElement.loop = newMediaRRElement.loop;\n break;\n }\n case \"CANVAS\": {\n const rrCanvasElement = newTree;\n if (rrCanvasElement.rr_dataURL !== null) {\n const image = document.createElement(\"img\");\n image.onload = () => {\n const ctx = oldElement.getContext(\"2d\");\n if (ctx) {\n ctx.drawImage(image, 0, 0, image.width, image.height);\n }\n };\n image.src = rrCanvasElement.rr_dataURL;\n }\n rrCanvasElement.canvasMutations.forEach(\n (canvasMutation2) => replayer.applyCanvas(\n canvasMutation2.event,\n canvasMutation2.mutation,\n oldTree\n )\n );\n break;\n }\n case \"STYLE\": {\n const styleSheet = oldElement.sheet;\n styleSheet && newTree.rules.forEach(\n (data) => replayer.applyStyleSheetMutation(data, styleSheet)\n );\n break;\n }\n case \"DIALOG\": {\n const dialog = oldElement;\n const rrDialog = newRRElement;\n const wasOpen = dialog.open;\n const wasModal = dialog.matches(\"dialog:modal\");\n const shouldBeOpen = rrDialog.open;\n const shouldBeModal = rrDialog.isModal;\n const modalChanged = wasModal !== shouldBeModal;\n const openChanged = wasOpen !== shouldBeOpen;\n if (modalChanged || wasOpen && openChanged) dialog.close();\n if (shouldBeOpen && (openChanged || modalChanged)) {\n try {\n if (shouldBeModal) dialog.showModal();\n else dialog.show();\n } catch (e2) {\n console.warn(e2);\n }\n }\n break;\n }\n }\n break;\n }\n case NodeType$1.Text:\n case NodeType$1.Comment:\n case NodeType$1.CDATA: {\n if (oldTree.textContent !== newTree.data)\n oldTree.textContent = newTree.data;\n break;\n }\n }\n if (createdNodeSet == null ? void 0 : createdNodeSet.has(oldTree)) {\n createdNodeSet.delete(oldTree);\n (_a2 = replayer.afterAppend) == null ? void 0 : _a2.call(replayer, oldTree, replayer.mirror.getId(oldTree));\n }\n}\nfunction diffProps(oldTree, newTree, rrnodeMirror) {\n const oldAttributes = oldTree.attributes;\n const newAttributes = newTree.attributes;\n for (const name in newAttributes) {\n const newValue = newAttributes[name];\n const sn = rrnodeMirror.getMeta(newTree);\n if ((sn == null ? void 0 : sn.isSVG) && NAMESPACES[name])\n oldTree.setAttributeNS(NAMESPACES[name], name, newValue);\n else if (newTree.tagName === \"CANVAS\" && name === \"rr_dataURL\") {\n const image = document.createElement(\"img\");\n image.src = newValue;\n image.onload = () => {\n const ctx = oldTree.getContext(\"2d\");\n if (ctx) {\n ctx.drawImage(image, 0, 0, image.width, image.height);\n }\n };\n } else if (newTree.tagName === \"IFRAME\" && name === \"srcdoc\") continue;\n else {\n try {\n oldTree.setAttribute(name, newValue);\n } catch (err) {\n console.warn(err);\n }\n }\n }\n for (const { name } of Array.from(oldAttributes))\n if (!(name in newAttributes)) oldTree.removeAttribute(name);\n newTree.scrollLeft && (oldTree.scrollLeft = newTree.scrollLeft);\n newTree.scrollTop && (oldTree.scrollTop = newTree.scrollTop);\n}\nfunction diffChildren(oldTree, newTree, replayer, rrnodeMirror) {\n const oldChildren = Array.from(oldTree.childNodes);\n const newChildren = newTree.childNodes;\n if (oldChildren.length === 0 && newChildren.length === 0) return;\n let oldStartIndex = 0, oldEndIndex = oldChildren.length - 1, newStartIndex = 0, newEndIndex = newChildren.length - 1;\n let oldStartNode = oldChildren[oldStartIndex], oldEndNode = oldChildren[oldEndIndex], newStartNode = newChildren[newStartIndex], newEndNode = newChildren[newEndIndex];\n let oldIdToIndex = void 0, indexInOld = void 0;\n while (oldStartIndex <= oldEndIndex && newStartIndex <= newEndIndex) {\n if (oldStartNode === void 0) {\n oldStartNode = oldChildren[++oldStartIndex];\n } else if (oldEndNode === void 0) {\n oldEndNode = oldChildren[--oldEndIndex];\n } else if (\n // same first node?\n nodeMatching(oldStartNode, newStartNode, replayer.mirror, rrnodeMirror)\n ) {\n oldStartNode = oldChildren[++oldStartIndex];\n newStartNode = newChildren[++newStartIndex];\n } else if (\n // same last node?\n nodeMatching(oldEndNode, newEndNode, replayer.mirror, rrnodeMirror)\n ) {\n oldEndNode = oldChildren[--oldEndIndex];\n newEndNode = newChildren[--newEndIndex];\n } else if (\n // is the first old node the same as the last new node?\n nodeMatching(oldStartNode, newEndNode, replayer.mirror, rrnodeMirror)\n ) {\n try {\n oldTree.insertBefore(oldStartNode, oldEndNode.nextSibling);\n } catch (e2) {\n console.warn(e2);\n }\n oldStartNode = oldChildren[++oldStartIndex];\n newEndNode = newChildren[--newEndIndex];\n } else if (\n // is the last old node the same as the first new node?\n nodeMatching(oldEndNode, newStartNode, replayer.mirror, rrnodeMirror)\n ) {\n try {\n oldTree.insertBefore(oldEndNode, oldStartNode);\n } catch (e2) {\n console.warn(e2);\n }\n oldEndNode = oldChildren[--oldEndIndex];\n newStartNode = newChildren[++newStartIndex];\n } else {\n if (!oldIdToIndex) {\n oldIdToIndex = {};\n for (let i2 = oldStartIndex; i2 <= oldEndIndex; i2++) {\n const oldChild2 = oldChildren[i2];\n if (oldChild2 && replayer.mirror.hasNode(oldChild2))\n oldIdToIndex[replayer.mirror.getId(oldChild2)] = i2;\n }\n }\n indexInOld = oldIdToIndex[rrnodeMirror.getId(newStartNode)];\n const nodeToMove = oldChildren[indexInOld];\n if (indexInOld !== void 0 && nodeToMove && nodeMatching(nodeToMove, newStartNode, replayer.mirror, rrnodeMirror)) {\n try {\n oldTree.insertBefore(nodeToMove, oldStartNode);\n } catch (e2) {\n console.warn(e2);\n }\n oldChildren[indexInOld] = void 0;\n } else {\n const newNode = createOrGetNode(\n newStartNode,\n replayer.mirror,\n rrnodeMirror\n );\n if (oldTree.nodeName === \"#document\" && oldStartNode && /**\n * Special case 1: one document isn't allowed to have two doctype nodes at the same time, so we need to remove the old one first before inserting the new one.\n * How this case happens: A parent document in the old tree already has a doctype node with an id e.g. #1. A new full snapshot rebuilds the replayer with a new doctype node with another id #2. According to the algorithm, the new doctype node will be inserted before the old one, which is not allowed by the Document standard.\n */\n (newNode.nodeType === newNode.DOCUMENT_TYPE_NODE && oldStartNode.nodeType === oldStartNode.DOCUMENT_TYPE_NODE || /**\n * Special case 2: one document isn't allowed to have two HTMLElements at the same time, so we need to remove the old one first before inserting the new one.\n * How this case happens: A mounted iframe element has an automatically created HTML element. We should delete it before inserting a serialized one. Otherwise, an error 'Only one element on document allowed' will be thrown.\n */\n newNode.nodeType === newNode.ELEMENT_NODE && oldStartNode.nodeType === oldStartNode.ELEMENT_NODE)) {\n oldTree.removeChild(oldStartNode);\n replayer.mirror.removeNodeFromMap(oldStartNode);\n oldStartNode = oldChildren[++oldStartIndex];\n }\n try {\n oldTree.insertBefore(newNode, oldStartNode || null);\n } catch (e2) {\n console.warn(e2);\n }\n }\n newStartNode = newChildren[++newStartIndex];\n }\n }\n if (oldStartIndex > oldEndIndex) {\n const referenceRRNode = newChildren[newEndIndex + 1];\n let referenceNode = null;\n if (referenceRRNode)\n referenceNode = replayer.mirror.getNode(\n rrnodeMirror.getId(referenceRRNode)\n );\n for (; newStartIndex <= newEndIndex; ++newStartIndex) {\n const newNode = createOrGetNode(\n newChildren[newStartIndex],\n replayer.mirror,\n rrnodeMirror\n );\n try {\n oldTree.insertBefore(newNode, referenceNode);\n } catch (e2) {\n console.warn(e2);\n }\n }\n } else if (newStartIndex > newEndIndex) {\n for (; oldStartIndex <= oldEndIndex; oldStartIndex++) {\n const node2 = oldChildren[oldStartIndex];\n if (!node2 || node2.parentNode !== oldTree) continue;\n try {\n oldTree.removeChild(node2);\n replayer.mirror.removeNodeFromMap(node2);\n } catch (e2) {\n console.warn(e2);\n }\n }\n }\n let oldChild = oldTree.firstChild;\n let newChild = newTree.firstChild;\n while (oldChild !== null && newChild !== null) {\n diff(oldChild, newChild, replayer, rrnodeMirror);\n oldChild = oldChild.nextSibling;\n newChild = newChild.nextSibling;\n }\n}\nfunction createOrGetNode(rrNode, domMirror, rrnodeMirror) {\n const nodeId = rrnodeMirror.getId(rrNode);\n const sn = rrnodeMirror.getMeta(rrNode);\n let node2 = null;\n if (nodeId > -1) node2 = domMirror.getNode(nodeId);\n if (node2 !== null && sameNodeType(node2, rrNode)) return node2;\n switch (rrNode.RRNodeType) {\n case NodeType$1.Document:\n node2 = new Document();\n break;\n case NodeType$1.DocumentType:\n node2 = document.implementation.createDocumentType(\n rrNode.name,\n rrNode.publicId,\n rrNode.systemId\n );\n break;\n case NodeType$1.Element: {\n let tagName = rrNode.tagName.toLowerCase();\n tagName = SVGTagMap[tagName] || tagName;\n if (sn && \"isSVG\" in sn && (sn == null ? void 0 : sn.isSVG)) {\n node2 = document.createElementNS(NAMESPACES[\"svg\"], tagName);\n } else node2 = document.createElement(rrNode.tagName);\n break;\n }\n case NodeType$1.Text:\n node2 = document.createTextNode(rrNode.data);\n break;\n case NodeType$1.Comment:\n node2 = document.createComment(rrNode.data);\n break;\n case NodeType$1.CDATA:\n node2 = document.createCDATASection(rrNode.data);\n break;\n }\n if (sn) domMirror.add(node2, { ...sn });\n try {\n createdNodeSet == null ? void 0 : createdNodeSet.add(node2);\n } catch (e2) {\n }\n return node2;\n}\nfunction sameNodeType(node1, node2) {\n if (node1.nodeType !== node2.nodeType) return false;\n return node1.nodeType !== node1.ELEMENT_NODE || node1.tagName.toUpperCase() === node2.tagName;\n}\nfunction nodeMatching(node1, node2, domMirror, rrdomMirror) {\n const node1Id = domMirror.getId(node1);\n const node2Id = rrdomMirror.getId(node2);\n if (node1Id === -1 || node1Id !== node2Id) return false;\n return sameNodeType(node1, node2);\n}\nclass RRDocument extends BaseRRDocument {\n constructor(mirror2) {\n super();\n __publicField2(this, \"UNSERIALIZED_STARTING_ID\", -2);\n __publicField2(this, \"_unserializedId\", this.UNSERIALIZED_STARTING_ID);\n __publicField2(this, \"mirror\", createMirror());\n __publicField2(this, \"scrollData\", null);\n if (mirror2) {\n this.mirror = mirror2;\n }\n }\n /**\n * Every time the id is used, it will minus 1 automatically to avoid collisions.\n */\n get unserializedId() {\n return this._unserializedId--;\n }\n createDocument(_namespace, _qualifiedName, _doctype) {\n return new RRDocument();\n }\n createDocumentType(qualifiedName, publicId, systemId) {\n const documentTypeNode = new RRDocumentType(\n qualifiedName,\n publicId,\n systemId\n );\n documentTypeNode.ownerDocument = this;\n return documentTypeNode;\n }\n createElement(tagName) {\n const upperTagName = tagName.toUpperCase();\n let element;\n switch (upperTagName) {\n case \"AUDIO\":\n case \"VIDEO\":\n element = new RRMediaElement(upperTagName);\n break;\n case \"IFRAME\":\n element = new RRIFrameElement(upperTagName, this.mirror);\n break;\n case \"CANVAS\":\n element = new RRCanvasElement(upperTagName);\n break;\n case \"STYLE\":\n element = new RRStyleElement(upperTagName);\n break;\n case \"DIALOG\":\n element = new RRDialogElement(upperTagName);\n break;\n default:\n element = new RRElement(upperTagName);\n break;\n }\n element.ownerDocument = this;\n return element;\n }\n createComment(data) {\n const commentNode = new RRComment(data);\n commentNode.ownerDocument = this;\n return commentNode;\n }\n createCDATASection(data) {\n const sectionNode = new RRCDATASection(data);\n sectionNode.ownerDocument = this;\n return sectionNode;\n }\n createTextNode(data) {\n const textNode = new RRText(data);\n textNode.ownerDocument = this;\n return textNode;\n }\n destroyTree() {\n this.firstChild = null;\n this.lastChild = null;\n this.mirror.reset();\n }\n open() {\n super.open();\n this._unserializedId = this.UNSERIALIZED_STARTING_ID;\n }\n}\nconst RRDocumentType = BaseRRDocumentType;\nclass RRElement extends BaseRRElement {\n constructor() {\n super(...arguments);\n __publicField2(this, \"inputData\", null);\n __publicField2(this, \"scrollData\", null);\n }\n}\nclass RRMediaElement extends BaseRRMediaElement {\n}\nclass RRDialogElement extends BaseRRDialogElement {\n}\nclass RRCanvasElement extends RRElement {\n constructor() {\n super(...arguments);\n __publicField2(this, \"rr_dataURL\", null);\n __publicField2(this, \"canvasMutations\", []);\n }\n /**\n * This is a dummy implementation to distinguish RRCanvasElement from real HTMLCanvasElement.\n */\n getContext() {\n return null;\n }\n}\nclass RRStyleElement extends RRElement {\n constructor() {\n super(...arguments);\n __publicField2(this, \"rules\", []);\n }\n}\nclass RRIFrameElement extends RRElement {\n constructor(upperTagName, mirror2) {\n super(upperTagName);\n __publicField2(this, \"contentDocument\", new RRDocument());\n this.contentDocument.mirror = mirror2;\n }\n}\nconst RRText = BaseRRText;\nconst RRComment = BaseRRComment;\nconst RRCDATASection = BaseRRCDATASection;\nfunction getValidTagName(element) {\n if (element instanceof HTMLFormElement) {\n return \"FORM\";\n }\n return element.tagName.toUpperCase();\n}\nfunction buildFromNode(node2, rrdom, domMirror, parentRRNode) {\n let rrNode;\n switch (node2.nodeType) {\n case NodeType$2.DOCUMENT_NODE:\n if (parentRRNode && parentRRNode.nodeName === \"IFRAME\")\n rrNode = parentRRNode.contentDocument;\n else {\n rrNode = rrdom;\n rrNode.compatMode = node2.compatMode;\n }\n break;\n case NodeType$2.DOCUMENT_TYPE_NODE: {\n const documentType = node2;\n rrNode = rrdom.createDocumentType(\n documentType.name,\n documentType.publicId,\n documentType.systemId\n );\n break;\n }\n case NodeType$2.ELEMENT_NODE: {\n const elementNode = node2;\n const tagName = getValidTagName(elementNode);\n rrNode = rrdom.createElement(tagName);\n const rrElement = rrNode;\n for (const { name, value } of Array.from(elementNode.attributes)) {\n rrElement.attributes[name] = value;\n }\n elementNode.scrollLeft && (rrElement.scrollLeft = elementNode.scrollLeft);\n elementNode.scrollTop && (rrElement.scrollTop = elementNode.scrollTop);\n break;\n }\n case NodeType$2.TEXT_NODE:\n rrNode = rrdom.createTextNode(node2.textContent || \"\");\n break;\n case NodeType$2.CDATA_SECTION_NODE:\n rrNode = rrdom.createCDATASection(node2.data);\n break;\n case NodeType$2.COMMENT_NODE:\n rrNode = rrdom.createComment(node2.textContent || \"\");\n break;\n case NodeType$2.DOCUMENT_FRAGMENT_NODE:\n rrNode = parentRRNode.attachShadow({ mode: \"open\" });\n break;\n default:\n return null;\n }\n let sn = domMirror.getMeta(node2);\n if (rrdom instanceof RRDocument) {\n if (!sn) {\n sn = getDefaultSN(rrNode, rrdom.unserializedId);\n domMirror.add(node2, sn);\n }\n rrdom.mirror.add(rrNode, { ...sn });\n }\n return rrNode;\n}\nfunction buildFromDom(dom, domMirror = createMirror$1(), rrdom = new RRDocument()) {\n function walk2(node2, parentRRNode) {\n const rrNode = buildFromNode(node2, rrdom, domMirror, parentRRNode);\n if (rrNode === null) return;\n if (\n // if the parentRRNode isn't a RRIFrameElement\n (parentRRNode == null ? void 0 : parentRRNode.nodeName) !== \"IFRAME\" && // if node isn't a shadow root\n node2.nodeType !== NodeType$2.DOCUMENT_FRAGMENT_NODE\n ) {\n parentRRNode == null ? void 0 : parentRRNode.appendChild(rrNode);\n rrNode.parentNode = parentRRNode;\n rrNode.parentElement = parentRRNode;\n }\n if (node2.nodeName === \"IFRAME\") {\n const iframeDoc = node2.contentDocument;\n iframeDoc && walk2(iframeDoc, rrNode);\n } else if (node2.nodeType === NodeType$2.DOCUMENT_NODE || node2.nodeType === NodeType$2.ELEMENT_NODE || node2.nodeType === NodeType$2.DOCUMENT_FRAGMENT_NODE) {\n if (node2.nodeType === NodeType$2.ELEMENT_NODE && node2.shadowRoot)\n walk2(node2.shadowRoot, rrNode);\n node2.childNodes.forEach((childNode) => walk2(childNode, rrNode));\n }\n }\n walk2(dom, null);\n return rrdom;\n}\nfunction createMirror() {\n return new Mirror22();\n}\nclass Mirror22 {\n constructor() {\n __publicField2(this, \"idNodeMap\", /* @__PURE__ */ new Map());\n __publicField2(this, \"nodeMetaMap\", /* @__PURE__ */ new WeakMap());\n }\n getId(n2) {\n var _a2;\n if (!n2) return -1;\n const id = (_a2 = this.getMeta(n2)) == null ? void 0 : _a2.id;\n return id ?? -1;\n }\n getNode(id) {\n return this.idNodeMap.get(id) || null;\n }\n getIds() {\n return Array.from(this.idNodeMap.keys());\n }\n getMeta(n2) {\n return this.nodeMetaMap.get(n2) || null;\n }\n // removes the node from idNodeMap\n // doesn't remove the node from nodeMetaMap\n removeNodeFromMap(n2) {\n const id = this.getId(n2);\n this.idNodeMap.delete(id);\n if (n2.childNodes) {\n n2.childNodes.forEach((childNode) => this.removeNodeFromMap(childNode));\n }\n }\n has(id) {\n return this.idNodeMap.has(id);\n }\n hasNode(node2) {\n return this.nodeMetaMap.has(node2);\n }\n add(n2, meta) {\n const id = meta.id;\n this.idNodeMap.set(id, n2);\n this.nodeMetaMap.set(n2, meta);\n }\n replace(id, n2) {\n const oldNode = this.getNode(id);\n if (oldNode) {\n const meta = this.nodeMetaMap.get(oldNode);\n if (meta) this.nodeMetaMap.set(n2, meta);\n }\n this.idNodeMap.set(id, n2);\n }\n reset() {\n this.idNodeMap = /* @__PURE__ */ new Map();\n this.nodeMetaMap = /* @__PURE__ */ new WeakMap();\n }\n}\nfunction getDefaultSN(node2, id) {\n switch (node2.RRNodeType) {\n case NodeType$1.Document:\n return {\n id,\n type: node2.RRNodeType,\n childNodes: []\n };\n case NodeType$1.DocumentType: {\n const doctype = node2;\n return {\n id,\n type: node2.RRNodeType,\n name: doctype.name,\n publicId: doctype.publicId,\n systemId: doctype.systemId\n };\n }\n case NodeType$1.Element:\n return {\n id,\n type: node2.RRNodeType,\n tagName: node2.tagName.toLowerCase(),\n // In rrweb data, all tagNames are lowercase.\n attributes: {},\n childNodes: []\n };\n case NodeType$1.Text:\n return {\n id,\n type: node2.RRNodeType,\n textContent: node2.textContent || \"\"\n };\n case NodeType$1.Comment:\n return {\n id,\n type: node2.RRNodeType,\n textContent: node2.textContent || \"\"\n };\n case NodeType$1.CDATA:\n return {\n id,\n type: node2.RRNodeType,\n textContent: \"\"\n };\n }\n}\nconst testableAccessors = {\n Node: [\"childNodes\", \"parentNode\", \"parentElement\", \"textContent\"],\n ShadowRoot: [\"host\", \"styleSheets\"],\n Element: [\"shadowRoot\", \"querySelector\", \"querySelectorAll\"],\n MutationObserver: []\n};\nconst testableMethods = {\n Node: [\"contains\", \"getRootNode\"],\n ShadowRoot: [\"getSelection\"],\n Element: [],\n MutationObserver: [\"constructor\"]\n};\nconst untaintedBasePrototype = {};\nconst isAngularZonePresent = () => {\n return !!globalThis.Zone;\n};\nfunction getUntaintedPrototype(key) {\n if (untaintedBasePrototype[key])\n return untaintedBasePrototype[key];\n const defaultObj = globalThis[key];\n const defaultPrototype = defaultObj.prototype;\n const accessorNames = key in testableAccessors ? testableAccessors[key] : void 0;\n const isUntaintedAccessors = Boolean(\n accessorNames && // @ts-expect-error 2345\n accessorNames.every(\n (accessor) => {\n var _a2, _b;\n return Boolean(\n (_b = (_a2 = Object.getOwnPropertyDescriptor(defaultPrototype, accessor)) == null ? void 0 : _a2.get) == null ? void 0 : _b.toString().includes(\"[native code]\")\n );\n }\n )\n );\n const methodNames = key in testableMethods ? testableMethods[key] : void 0;\n const isUntaintedMethods = Boolean(\n methodNames && methodNames.every(\n // @ts-expect-error 2345\n (method) => {\n var _a2;\n return typeof defaultPrototype[method] === \"function\" && ((_a2 = defaultPrototype[method]) == null ? void 0 : _a2.toString().includes(\"[native code]\"));\n }\n )\n );\n if (isUntaintedAccessors && isUntaintedMethods && !isAngularZonePresent()) {\n untaintedBasePrototype[key] = defaultObj.prototype;\n return defaultObj.prototype;\n }\n try {\n const iframeEl = document.createElement(\"iframe\");\n document.body.appendChild(iframeEl);\n const win = iframeEl.contentWindow;\n if (!win) return defaultObj.prototype;\n const untaintedObject = win[key].prototype;\n document.body.removeChild(iframeEl);\n if (!untaintedObject) return defaultPrototype;\n return untaintedBasePrototype[key] = untaintedObject;\n } catch {\n return defaultPrototype;\n }\n}\nconst untaintedAccessorCache = {};\nfunction getUntaintedAccessor(key, instance, accessor) {\n var _a2;\n const cacheKey = `${key}.${String(accessor)}`;\n if (untaintedAccessorCache[cacheKey])\n return untaintedAccessorCache[cacheKey].call(\n instance\n );\n const untaintedPrototype = getUntaintedPrototype(key);\n const untaintedAccessor = (_a2 = Object.getOwnPropertyDescriptor(\n untaintedPrototype,\n accessor\n )) == null ? void 0 : _a2.get;\n if (!untaintedAccessor) return instance[accessor];\n untaintedAccessorCache[cacheKey] = untaintedAccessor;\n return untaintedAccessor.call(instance);\n}\nconst untaintedMethodCache = {};\nfunction getUntaintedMethod(key, instance, method) {\n const cacheKey = `${key}.${String(method)}`;\n if (untaintedMethodCache[cacheKey])\n return untaintedMethodCache[cacheKey].bind(\n instance\n );\n const untaintedPrototype = getUntaintedPrototype(key);\n const untaintedMethod = untaintedPrototype[method];\n if (typeof untaintedMethod !== \"function\") return instance[method];\n untaintedMethodCache[cacheKey] = untaintedMethod;\n return untaintedMethod.bind(instance);\n}\nfunction childNodes(n2) {\n return getUntaintedAccessor(\"Node\", n2, \"childNodes\");\n}\nfunction parentNode(n2) {\n return getUntaintedAccessor(\"Node\", n2, \"parentNode\");\n}\nfunction parentElement(n2) {\n return getUntaintedAccessor(\"Node\", n2, \"parentElement\");\n}\nfunction textContent(n2) {\n return getUntaintedAccessor(\"Node\", n2, \"textContent\");\n}\nfunction contains(n2, other) {\n return getUntaintedMethod(\"Node\", n2, \"contains\")(other);\n}\nfunction getRootNode(n2) {\n return getUntaintedMethod(\"Node\", n2, \"getRootNode\")();\n}\nfunction host(n2) {\n if (!n2 || !(\"host\" in n2)) return null;\n return getUntaintedAccessor(\"ShadowRoot\", n2, \"host\");\n}\nfunction styleSheets(n2) {\n return n2.styleSheets;\n}\nfunction shadowRoot(n2) {\n if (!n2 || !(\"shadowRoot\" in n2)) return null;\n return getUntaintedAccessor(\"Element\", n2, \"shadowRoot\");\n}\nfunction querySelector(n2, selectors) {\n return getUntaintedAccessor(\"Element\", n2, \"querySelector\")(selectors);\n}\nfunction querySelectorAll(n2, selectors) {\n return getUntaintedAccessor(\"Element\", n2, \"querySelectorAll\")(selectors);\n}\nfunction mutationObserverCtor() {\n return getUntaintedPrototype(\"MutationObserver\").constructor;\n}\nconst index = {\n childNodes,\n parentNode,\n parentElement,\n textContent,\n contains,\n getRootNode,\n host,\n styleSheets,\n shadowRoot,\n querySelector,\n querySelectorAll,\n mutationObserver: mutationObserverCtor\n};\nfunction on(type, fn, target = document) {\n const options = { capture: true, passive: true };\n target.addEventListener(type, fn, options);\n return () => target.removeEventListener(type, fn, options);\n}\nconst DEPARTED_MIRROR_ACCESS_WARNING = \"Please stop import mirror directly. Instead of that,\\r\\nnow you can use replayer.getMirror() to access the mirror instance of a replayer,\\r\\nor you can use record.mirror to access the mirror instance during recording.\";\nlet _mirror = {\n map: {},\n getId() {\n console.error(DEPARTED_MIRROR_ACCESS_WARNING);\n return -1;\n },\n getNode() {\n console.error(DEPARTED_MIRROR_ACCESS_WARNING);\n return null;\n },\n removeNodeFromMap() {\n console.error(DEPARTED_MIRROR_ACCESS_WARNING);\n },\n has() {\n console.error(DEPARTED_MIRROR_ACCESS_WARNING);\n return false;\n },\n reset() {\n console.error(DEPARTED_MIRROR_ACCESS_WARNING);\n }\n};\nif (typeof window !== \"undefined\" && window.Proxy && window.Reflect) {\n _mirror = new Proxy(_mirror, {\n get(target, prop, receiver) {\n if (prop === \"map\") {\n console.error(DEPARTED_MIRROR_ACCESS_WARNING);\n }\n return Reflect.get(target, prop, receiver);\n }\n });\n}\nfunction throttle(func, wait, options = {}) {\n let timeout = null;\n let previous = 0;\n return function(...args) {\n const now = Date.now();\n if (!previous && options.leading === false) {\n previous = now;\n }\n const remaining = wait - (now - previous);\n const context = this;\n if (remaining <= 0 || remaining > wait) {\n if (timeout) {\n clearTimeout(timeout);\n timeout = null;\n }\n previous = now;\n func.apply(context, args);\n } else if (!timeout && options.trailing !== false) {\n timeout = setTimeout(() => {\n previous = options.leading === false ? 0 : Date.now();\n timeout = null;\n func.apply(context, args);\n }, remaining);\n }\n };\n}\nfunction hookSetter(target, key, d, isRevoked, win = window) {\n const original = win.Object.getOwnPropertyDescriptor(target, key);\n win.Object.defineProperty(\n target,\n key,\n isRevoked ? d : {\n set(value) {\n setTimeout(() => {\n d.set.call(this, value);\n }, 0);\n if (original && original.set) {\n original.set.call(this, value);\n }\n }\n }\n );\n return () => hookSetter(target, key, original || {}, true);\n}\nfunction patch(source, name, replacement) {\n try {\n if (!(name in source)) {\n return () => {\n };\n }\n const original = source[name];\n const wrapped = replacement(original);\n if (typeof wrapped === \"function\") {\n wrapped.prototype = wrapped.prototype || {};\n Object.defineProperties(wrapped, {\n __rrweb_original__: {\n enumerable: false,\n value: original\n }\n });\n }\n source[name] = wrapped;\n return () => {\n source[name] = original;\n };\n } catch {\n return () => {\n };\n }\n}\nlet nowTimestamp = Date.now;\nif (!/* @__PURE__ */ /[1-9][0-9]{12}/.test(Date.now().toString())) {\n nowTimestamp = () => (/* @__PURE__ */ new Date()).getTime();\n}\nfunction getWindowScroll(win) {\n var _a2, _b, _c, _d;\n const doc = win.document;\n return {\n left: doc.scrollingElement ? doc.scrollingElement.scrollLeft : win.pageXOffset !== void 0 ? win.pageXOffset : doc.documentElement.scrollLeft || (doc == null ? void 0 : doc.body) && ((_a2 = index.parentElement(doc.body)) == null ? void 0 : _a2.scrollLeft) || ((_b = doc == null ? void 0 : doc.body) == null ? void 0 : _b.scrollLeft) || 0,\n top: doc.scrollingElement ? doc.scrollingElement.scrollTop : win.pageYOffset !== void 0 ? win.pageYOffset : (doc == null ? void 0 : doc.documentElement.scrollTop) || (doc == null ? void 0 : doc.body) && ((_c = index.parentElement(doc.body)) == null ? void 0 : _c.scrollTop) || ((_d = doc == null ? void 0 : doc.body) == null ? void 0 : _d.scrollTop) || 0\n };\n}\nfunction getWindowHeight() {\n return window.innerHeight || document.documentElement && document.documentElement.clientHeight || document.body && document.body.clientHeight;\n}\nfunction getWindowWidth() {\n return window.innerWidth || document.documentElement && document.documentElement.clientWidth || document.body && document.body.clientWidth;\n}\nfunction closestElementOfNode(node2) {\n if (!node2) {\n return null;\n }\n const el = node2.nodeType === node2.ELEMENT_NODE ? node2 : index.parentElement(node2);\n return el;\n}\nfunction isBlocked(node2, blockClass, blockSelector, checkAncestors) {\n if (!node2) {\n return false;\n }\n const el = closestElementOfNode(node2);\n if (!el) {\n return false;\n }\n try {\n if (typeof blockClass === \"string\") {\n if (el.classList.contains(blockClass)) return true;\n if (checkAncestors && el.closest(\".\" + blockClass) !== null) return true;\n } else {\n if (classMatchesRegex(el, blockClass, checkAncestors)) return true;\n }\n } catch (e2) {\n }\n if (blockSelector) {\n if (el.matches(blockSelector)) return true;\n if (checkAncestors && el.closest(blockSelector) !== null) return true;\n }\n return false;\n}\nfunction isSerialized(n2, mirror2) {\n return mirror2.getId(n2) !== -1;\n}\nfunction isIgnored(n2, mirror2, slimDOMOptions) {\n if (n2.tagName === \"TITLE\" && slimDOMOptions.headTitleMutations) {\n return true;\n }\n return mirror2.getId(n2) === IGNORED_NODE;\n}\nfunction isAncestorRemoved(target, mirror2) {\n if (isShadowRoot(target)) {\n return false;\n }\n const id = mirror2.getId(target);\n if (!mirror2.has(id)) {\n return true;\n }\n const parent = index.parentNode(target);\n if (parent && parent.nodeType === target.DOCUMENT_NODE) {\n return false;\n }\n if (!parent) {\n return true;\n }\n return isAncestorRemoved(parent, mirror2);\n}\nfunction legacy_isTouchEvent(event) {\n return Boolean(event.changedTouches);\n}\nfunction polyfill$1(win = window) {\n if (\"NodeList\" in win && !win.NodeList.prototype.forEach) {\n win.NodeList.prototype.forEach = Array.prototype.forEach;\n }\n if (\"DOMTokenList\" in win && !win.DOMTokenList.prototype.forEach) {\n win.DOMTokenList.prototype.forEach = Array.prototype.forEach;\n }\n}\nfunction queueToResolveTrees(queue) {\n const queueNodeMap = {};\n const putIntoMap = (m, parent) => {\n const nodeInTree = {\n value: m,\n parent,\n children: []\n };\n queueNodeMap[m.node.id] = nodeInTree;\n return nodeInTree;\n };\n const queueNodeTrees = [];\n for (const mutation of queue) {\n const { nextId, parentId } = mutation;\n if (nextId && nextId in queueNodeMap) {\n const nextInTree = queueNodeMap[nextId];\n if (nextInTree.parent) {\n const idx = nextInTree.parent.children.indexOf(nextInTree);\n nextInTree.parent.children.splice(\n idx,\n 0,\n putIntoMap(mutation, nextInTree.parent)\n );\n } else {\n const idx = queueNodeTrees.indexOf(nextInTree);\n queueNodeTrees.splice(idx, 0, putIntoMap(mutation, null));\n }\n continue;\n }\n if (parentId in queueNodeMap) {\n const parentInTree = queueNodeMap[parentId];\n parentInTree.children.push(putIntoMap(mutation, parentInTree));\n continue;\n }\n queueNodeTrees.push(putIntoMap(mutation, null));\n }\n return queueNodeTrees;\n}\nfunction iterateResolveTree(tree, cb) {\n cb(tree.value);\n for (let i2 = tree.children.length - 1; i2 >= 0; i2--) {\n iterateResolveTree(tree.children[i2], cb);\n }\n}\nfunction isSerializedIframe(n2, mirror2) {\n return Boolean(n2.nodeName === \"IFRAME\" && mirror2.getMeta(n2));\n}\nfunction isSerializedStylesheet(n2, mirror2) {\n return Boolean(\n n2.nodeName === \"LINK\" && n2.nodeType === n2.ELEMENT_NODE && n2.getAttribute && n2.getAttribute(\"rel\") === \"stylesheet\" && mirror2.getMeta(n2)\n );\n}\nfunction getBaseDimension(node2, rootIframe) {\n var _a2, _b;\n const frameElement = (_b = (_a2 = node2.ownerDocument) == null ? void 0 : _a2.defaultView) == null ? void 0 : _b.frameElement;\n if (!frameElement || frameElement === rootIframe) {\n return {\n x: 0,\n y: 0,\n relativeScale: 1,\n absoluteScale: 1\n };\n }\n const frameDimension = frameElement.getBoundingClientRect();\n const frameBaseDimension = getBaseDimension(frameElement, rootIframe);\n const relativeScale = frameDimension.height / frameElement.clientHeight;\n return {\n x: frameDimension.x * frameBaseDimension.relativeScale + frameBaseDimension.x,\n y: frameDimension.y * frameBaseDimension.relativeScale + frameBaseDimension.y,\n relativeScale,\n absoluteScale: frameBaseDimension.absoluteScale * relativeScale\n };\n}\nfunction hasShadowRoot(n2) {\n if (!n2) return false;\n if (n2 instanceof BaseRRNode && \"shadowRoot\" in n2) {\n return Boolean(n2.shadowRoot);\n }\n return Boolean(index.shadowRoot(n2));\n}\nfunction getNestedRule(rules2, position) {\n const rule2 = rules2[position[0]];\n if (position.length === 1) {\n return rule2;\n } else {\n return getNestedRule(\n rule2.cssRules[position[1]].cssRules,\n position.slice(2)\n );\n }\n}\nfunction getPositionsAndIndex(nestedIndex) {\n const positions = [...nestedIndex];\n const index2 = positions.pop();\n return { positions, index: index2 };\n}\nfunction uniqueTextMutations(mutations) {\n const idSet = /* @__PURE__ */ new Set();\n const uniqueMutations = [];\n for (let i2 = mutations.length; i2--; ) {\n const mutation = mutations[i2];\n if (!idSet.has(mutation.id)) {\n uniqueMutations.push(mutation);\n idSet.add(mutation.id);\n }\n }\n return uniqueMutations;\n}\nclass StyleSheetMirror {\n constructor() {\n __publicField(this, \"id\", 1);\n __publicField(this, \"styleIDMap\", /* @__PURE__ */ new WeakMap());\n __publicField(this, \"idStyleMap\", /* @__PURE__ */ new Map());\n }\n getId(stylesheet) {\n return this.styleIDMap.get(stylesheet) ?? -1;\n }\n has(stylesheet) {\n return this.styleIDMap.has(stylesheet);\n }\n /**\n * @returns If the stylesheet is in the mirror, returns the id of the stylesheet. If not, return the new assigned id.\n */\n add(stylesheet, id) {\n if (this.has(stylesheet)) return this.getId(stylesheet);\n let newId;\n if (id === void 0) {\n newId = this.id++;\n } else newId = id;\n this.styleIDMap.set(stylesheet, newId);\n this.idStyleMap.set(newId, stylesheet);\n return newId;\n }\n getStyle(id) {\n return this.idStyleMap.get(id) || null;\n }\n reset() {\n this.styleIDMap = /* @__PURE__ */ new WeakMap();\n this.idStyleMap = /* @__PURE__ */ new Map();\n this.id = 1;\n }\n generateId() {\n return this.id++;\n }\n}\nfunction getShadowHost(n2) {\n var _a2;\n let shadowHost = null;\n if (\"getRootNode\" in n2 && ((_a2 = index.getRootNode(n2)) == null ? void 0 : _a2.nodeType) === Node.DOCUMENT_FRAGMENT_NODE && index.host(index.getRootNode(n2)))\n shadowHost = index.host(index.getRootNode(n2));\n return shadowHost;\n}\nfunction getRootShadowHost(n2) {\n let rootShadowHost = n2;\n let shadowHost;\n while (shadowHost = getShadowHost(rootShadowHost))\n rootShadowHost = shadowHost;\n return rootShadowHost;\n}\nfunction shadowHostInDom(n2) {\n const doc = n2.ownerDocument;\n if (!doc) return false;\n const shadowHost = getRootShadowHost(n2);\n return index.contains(doc, shadowHost);\n}\nfunction inDom(n2) {\n const doc = n2.ownerDocument;\n if (!doc) return false;\n return index.contains(doc, n2) || shadowHostInDom(n2);\n}\nconst utils = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({\n __proto__: null,\n StyleSheetMirror,\n get _mirror() {\n return _mirror;\n },\n closestElementOfNode,\n getBaseDimension,\n getNestedRule,\n getPositionsAndIndex,\n getRootShadowHost,\n getShadowHost,\n getWindowHeight,\n getWindowScroll,\n getWindowWidth,\n hasShadowRoot,\n hookSetter,\n inDom,\n isAncestorRemoved,\n isBlocked,\n isIgnored,\n isSerialized,\n isSerializedIframe,\n isSerializedStylesheet,\n iterateResolveTree,\n legacy_isTouchEvent,\n get nowTimestamp() {\n return nowTimestamp;\n },\n on,\n patch,\n polyfill: polyfill$1,\n queueToResolveTrees,\n shadowHostInDom,\n throttle,\n uniqueTextMutations\n}, Symbol.toStringTag, { value: \"Module\" }));\nvar EventType = /* @__PURE__ */ ((EventType2) => {\n EventType2[EventType2[\"DomContentLoaded\"] = 0] = \"DomContentLoaded\";\n EventType2[EventType2[\"Load\"] = 1] = \"Load\";\n EventType2[EventType2[\"FullSnapshot\"] = 2] = \"FullSnapshot\";\n EventType2[EventType2[\"IncrementalSnapshot\"] = 3] = \"IncrementalSnapshot\";\n EventType2[EventType2[\"Meta\"] = 4] = \"Meta\";\n EventType2[EventType2[\"Custom\"] = 5] = \"Custom\";\n EventType2[EventType2[\"Plugin\"] = 6] = \"Plugin\";\n return EventType2;\n})(EventType || {});\nvar IncrementalSource = /* @__PURE__ */ ((IncrementalSource2) => {\n IncrementalSource2[IncrementalSource2[\"Mutation\"] = 0] = \"Mutation\";\n IncrementalSource2[IncrementalSource2[\"MouseMove\"] = 1] = \"MouseMove\";\n IncrementalSource2[IncrementalSource2[\"MouseInteraction\"] = 2] = \"MouseInteraction\";\n IncrementalSource2[IncrementalSource2[\"Scroll\"] = 3] = \"Scroll\";\n IncrementalSource2[IncrementalSource2[\"ViewportResize\"] = 4] = \"ViewportResize\";\n IncrementalSource2[IncrementalSource2[\"Input\"] = 5] = \"Input\";\n IncrementalSource2[IncrementalSource2[\"TouchMove\"] = 6] = \"TouchMove\";\n IncrementalSource2[IncrementalSource2[\"MediaInteraction\"] = 7] = \"MediaInteraction\";\n IncrementalSource2[IncrementalSource2[\"StyleSheetRule\"] = 8] = \"StyleSheetRule\";\n IncrementalSource2[IncrementalSource2[\"CanvasMutation\"] = 9] = \"CanvasMutation\";\n IncrementalSource2[IncrementalSource2[\"Font\"] = 10] = \"Font\";\n IncrementalSource2[IncrementalSource2[\"Log\"] = 11] = \"Log\";\n IncrementalSource2[IncrementalSource2[\"Drag\"] = 12] = \"Drag\";\n IncrementalSource2[IncrementalSource2[\"StyleDeclaration\"] = 13] = \"StyleDeclaration\";\n IncrementalSource2[IncrementalSource2[\"Selection\"] = 14] = \"Selection\";\n IncrementalSource2[IncrementalSource2[\"AdoptedStyleSheet\"] = 15] = \"AdoptedStyleSheet\";\n IncrementalSource2[IncrementalSource2[\"CustomElement\"] = 16] = \"CustomElement\";\n return IncrementalSource2;\n})(IncrementalSource || {});\nvar MouseInteractions = /* @__PURE__ */ ((MouseInteractions2) => {\n MouseInteractions2[MouseInteractions2[\"MouseUp\"] = 0] = \"MouseUp\";\n MouseInteractions2[MouseInteractions2[\"MouseDown\"] = 1] = \"MouseDown\";\n MouseInteractions2[MouseInteractions2[\"Click\"] = 2] = \"Click\";\n MouseInteractions2[MouseInteractions2[\"ContextMenu\"] = 3] = \"ContextMenu\";\n MouseInteractions2[MouseInteractions2[\"DblClick\"] = 4] = \"DblClick\";\n MouseInteractions2[MouseInteractions2[\"Focus\"] = 5] = \"Focus\";\n MouseInteractions2[MouseInteractions2[\"Blur\"] = 6] = \"Blur\";\n MouseInteractions2[MouseInteractions2[\"TouchStart\"] = 7] = \"TouchStart\";\n MouseInteractions2[MouseInteractions2[\"TouchMove_Departed\"] = 8] = \"TouchMove_Departed\";\n MouseInteractions2[MouseInteractions2[\"TouchEnd\"] = 9] = \"TouchEnd\";\n MouseInteractions2[MouseInteractions2[\"TouchCancel\"] = 10] = \"TouchCancel\";\n return MouseInteractions2;\n})(MouseInteractions || {});\nvar PointerTypes = /* @__PURE__ */ ((PointerTypes2) => {\n PointerTypes2[PointerTypes2[\"Mouse\"] = 0] = \"Mouse\";\n PointerTypes2[PointerTypes2[\"Pen\"] = 1] = \"Pen\";\n PointerTypes2[PointerTypes2[\"Touch\"] = 2] = \"Touch\";\n return PointerTypes2;\n})(PointerTypes || {});\nvar CanvasContext = /* @__PURE__ */ ((CanvasContext2) => {\n CanvasContext2[CanvasContext2[\"2D\"] = 0] = \"2D\";\n CanvasContext2[CanvasContext2[\"WebGL\"] = 1] = \"WebGL\";\n CanvasContext2[CanvasContext2[\"WebGL2\"] = 2] = \"WebGL2\";\n return CanvasContext2;\n})(CanvasContext || {});\nvar MediaInteractions = /* @__PURE__ */ ((MediaInteractions2) => {\n MediaInteractions2[MediaInteractions2[\"Play\"] = 0] = \"Play\";\n MediaInteractions2[MediaInteractions2[\"Pause\"] = 1] = \"Pause\";\n MediaInteractions2[MediaInteractions2[\"Seeked\"] = 2] = \"Seeked\";\n MediaInteractions2[MediaInteractions2[\"VolumeChange\"] = 3] = \"VolumeChange\";\n MediaInteractions2[MediaInteractions2[\"RateChange\"] = 4] = \"RateChange\";\n return MediaInteractions2;\n})(MediaInteractions || {});\nvar ReplayerEvents = /* @__PURE__ */ ((ReplayerEvents2) => {\n ReplayerEvents2[\"Start\"] = \"start\";\n ReplayerEvents2[\"Pause\"] = \"pause\";\n ReplayerEvents2[\"Resume\"] = \"resume\";\n ReplayerEvents2[\"Resize\"] = \"resize\";\n ReplayerEvents2[\"Finish\"] = \"finish\";\n ReplayerEvents2[\"FullsnapshotRebuilded\"] = \"fullsnapshot-rebuilded\";\n ReplayerEvents2[\"LoadStylesheetStart\"] = \"load-stylesheet-start\";\n ReplayerEvents2[\"LoadStylesheetEnd\"] = \"load-stylesheet-end\";\n ReplayerEvents2[\"SkipStart\"] = \"skip-start\";\n ReplayerEvents2[\"SkipEnd\"] = \"skip-end\";\n ReplayerEvents2[\"MouseInteraction\"] = \"mouse-interaction\";\n ReplayerEvents2[\"EventCast\"] = \"event-cast\";\n ReplayerEvents2[\"CustomEvent\"] = \"custom-event\";\n ReplayerEvents2[\"Flush\"] = \"flush\";\n ReplayerEvents2[\"StateChange\"] = \"state-change\";\n ReplayerEvents2[\"PlayBack\"] = \"play-back\";\n ReplayerEvents2[\"Destroy\"] = \"destroy\";\n return ReplayerEvents2;\n})(ReplayerEvents || {});\nvar NodeType = /* @__PURE__ */ ((NodeType2) => {\n NodeType2[NodeType2[\"Document\"] = 0] = \"Document\";\n NodeType2[NodeType2[\"DocumentType\"] = 1] = \"DocumentType\";\n NodeType2[NodeType2[\"Element\"] = 2] = \"Element\";\n NodeType2[NodeType2[\"Text\"] = 3] = \"Text\";\n NodeType2[NodeType2[\"CDATA\"] = 4] = \"CDATA\";\n NodeType2[NodeType2[\"Comment\"] = 5] = \"Comment\";\n return NodeType2;\n})(NodeType || {});\nfunction isNodeInLinkedList(n2) {\n return \"__ln\" in n2;\n}\nclass DoubleLinkedList {\n constructor() {\n __publicField(this, \"length\", 0);\n __publicField(this, \"head\", null);\n __publicField(this, \"tail\", null);\n }\n get(position) {\n if (position >= this.length) {\n throw new Error(\"Position outside of list range\");\n }\n let current = this.head;\n for (let index2 = 0; index2 < position; index2++) {\n current = (current == null ? void 0 : current.next) || null;\n }\n return current;\n }\n addNode(n2) {\n const node2 = {\n value: n2,\n previous: null,\n next: null\n };\n n2.__ln = node2;\n if (n2.previousSibling && isNodeInLinkedList(n2.previousSibling)) {\n const current = n2.previousSibling.__ln.next;\n node2.next = current;\n node2.previous = n2.previousSibling.__ln;\n n2.previousSibling.__ln.next = node2;\n if (current) {\n current.previous = node2;\n }\n } else if (n2.nextSibling && isNodeInLinkedList(n2.nextSibling) && n2.nextSibling.__ln.previous) {\n const current = n2.nextSibling.__ln.previous;\n node2.previous = current;\n node2.next = n2.nextSibling.__ln;\n n2.nextSibling.__ln.previous = node2;\n if (current) {\n current.next = node2;\n }\n } else {\n if (this.head) {\n this.head.previous = node2;\n }\n node2.next = this.head;\n this.head = node2;\n }\n if (node2.next === null) {\n this.tail = node2;\n }\n this.length++;\n }\n removeNode(n2) {\n const current = n2.__ln;\n if (!this.head) {\n return;\n }\n if (!current.previous) {\n this.head = current.next;\n if (this.head) {\n this.head.previous = null;\n } else {\n this.tail = null;\n }\n } else {\n current.previous.next = current.next;\n if (current.next) {\n current.next.previous = current.previous;\n } else {\n this.tail = current.previous;\n }\n }\n if (n2.__ln) {\n delete n2.__ln;\n }\n this.length--;\n }\n}\nconst moveKey = (id, parentId) => `${id}@${parentId}`;\nclass MutationBuffer {\n constructor() {\n __publicField(this, \"frozen\", false);\n __publicField(this, \"locked\", false);\n __publicField(this, \"texts\", []);\n __publicField(this, \"attributes\", []);\n __publicField(this, \"attributeMap\", /* @__PURE__ */ new WeakMap());\n __publicField(this, \"removes\", []);\n __publicField(this, \"mapRemoves\", []);\n __publicField(this, \"movedMap\", {});\n /**\n * the browser MutationObserver emits multiple mutations after\n * a delay for performance reasons, making tracing added nodes hard\n * in our `processMutations` callback function.\n * For example, if we append an element el_1 into body, and then append\n * another element el_2 into el_1, these two mutations may be passed to the\n * callback function together when the two operations were done.\n * Generally we need to trace child nodes of newly added nodes, but in this\n * case if we count el_2 as el_1's child node in the first mutation record,\n * then we will count el_2 again in the second mutation record which was\n * duplicated.\n * To avoid of duplicate counting added nodes, we use a Set to store\n * added nodes and its child nodes during iterate mutation records. Then\n * collect added nodes from the Set which have no duplicate copy. But\n * this also causes newly added nodes will not be serialized with id ASAP,\n * which means all the id related calculation should be lazy too.\n */\n __publicField(this, \"addedSet\", /* @__PURE__ */ new Set());\n __publicField(this, \"movedSet\", /* @__PURE__ */ new Set());\n __publicField(this, \"droppedSet\", /* @__PURE__ */ new Set());\n __publicField(this, \"removesSubTreeCache\", /* @__PURE__ */ new Set());\n __publicField(this, \"mutationCb\");\n __publicField(this, \"blockClass\");\n __publicField(this, \"blockSelector\");\n __publicField(this, \"maskTextClass\");\n __publicField(this, \"maskTextSelector\");\n __publicField(this, \"inlineStylesheet\");\n __publicField(this, \"maskInputOptions\");\n __publicField(this, \"maskTextFn\");\n __publicField(this, \"maskInputFn\");\n __publicField(this, \"keepIframeSrcFn\");\n __publicField(this, \"recordCanvas\");\n __publicField(this, \"inlineImages\");\n __publicField(this, \"slimDOMOptions\");\n __publicField(this, \"dataURLOptions\");\n __publicField(this, \"doc\");\n __publicField(this, \"mirror\");\n __publicField(this, \"iframeManager\");\n __publicField(this, \"stylesheetManager\");\n __publicField(this, \"shadowDomManager\");\n __publicField(this, \"canvasManager\");\n __publicField(this, \"processedNodeManager\");\n __publicField(this, \"unattachedDoc\");\n __publicField(this, \"processMutations\", (mutations) => {\n mutations.forEach(this.processMutation);\n this.emit();\n });\n __publicField(this, \"emit\", () => {\n if (this.frozen || this.locked) {\n return;\n }\n const adds = [];\n const addedIds = /* @__PURE__ */ new Set();\n const addList = new DoubleLinkedList();\n const getNextId = (n2) => {\n let ns = n2;\n let nextId = IGNORED_NODE;\n while (nextId === IGNORED_NODE) {\n ns = ns && ns.nextSibling;\n nextId = ns && this.mirror.getId(ns);\n }\n return nextId;\n };\n const pushAdd = (n2) => {\n const parent = index.parentNode(n2);\n if (!parent || !inDom(n2)) {\n return;\n }\n let cssCaptured = false;\n if (n2.nodeType === Node.TEXT_NODE) {\n const parentTag = parent.tagName;\n if (parentTag === \"TEXTAREA\") {\n return;\n } else if (parentTag === \"STYLE\" && this.addedSet.has(parent)) {\n cssCaptured = true;\n }\n }\n const parentId = isShadowRoot(parent) ? this.mirror.getId(getShadowHost(n2)) : this.mirror.getId(parent);\n const nextId = getNextId(n2);\n if (parentId === -1 || nextId === -1) {\n return addList.addNode(n2);\n }\n const sn = serializeNodeWithId(n2, {\n doc: this.doc,\n mirror: this.mirror,\n blockClass: this.blockClass,\n blockSelector: this.blockSelector,\n maskTextClass: this.maskTextClass,\n maskTextSelector: this.maskTextSelector,\n skipChild: true,\n newlyAddedElement: true,\n inlineStylesheet: this.inlineStylesheet,\n maskInputOptions: this.maskInputOptions,\n maskTextFn: this.maskTextFn,\n maskInputFn: this.maskInputFn,\n slimDOMOptions: this.slimDOMOptions,\n dataURLOptions: this.dataURLOptions,\n recordCanvas: this.recordCanvas,\n inlineImages: this.inlineImages,\n onSerialize: (currentN) => {\n if (isSerializedIframe(currentN, this.mirror)) {\n this.iframeManager.addIframe(currentN);\n }\n if (isSerializedStylesheet(currentN, this.mirror)) {\n this.stylesheetManager.trackLinkElement(\n currentN\n );\n }\n if (hasShadowRoot(n2)) {\n this.shadowDomManager.addShadowRoot(index.shadowRoot(n2), this.doc);\n }\n },\n onIframeLoad: (iframe, childSn) => {\n this.iframeManager.attachIframe(iframe, childSn);\n this.shadowDomManager.observeAttachShadow(iframe);\n },\n onStylesheetLoad: (link, childSn) => {\n this.stylesheetManager.attachLinkElement(link, childSn);\n },\n cssCaptured\n });\n if (sn) {\n adds.push({\n parentId,\n nextId,\n node: sn\n });\n addedIds.add(sn.id);\n }\n };\n while (this.mapRemoves.length) {\n this.mirror.removeNodeFromMap(this.mapRemoves.shift());\n }\n for (const n2 of this.movedSet) {\n if (isParentRemoved(this.removesSubTreeCache, n2, this.mirror) && !this.movedSet.has(index.parentNode(n2))) {\n continue;\n }\n pushAdd(n2);\n }\n for (const n2 of this.addedSet) {\n if (!isAncestorInSet(this.droppedSet, n2) && !isParentRemoved(this.removesSubTreeCache, n2, this.mirror)) {\n pushAdd(n2);\n } else if (isAncestorInSet(this.movedSet, n2)) {\n pushAdd(n2);\n } else {\n this.droppedSet.add(n2);\n }\n }\n let candidate = null;\n while (addList.length) {\n let node2 = null;\n if (candidate) {\n const parentId = this.mirror.getId(index.parentNode(candidate.value));\n const nextId = getNextId(candidate.value);\n if (parentId !== -1 && nextId !== -1) {\n node2 = candidate;\n }\n }\n if (!node2) {\n let tailNode = addList.tail;\n while (tailNode) {\n const _node = tailNode;\n tailNode = tailNode.previous;\n if (_node) {\n const parentId = this.mirror.getId(index.parentNode(_node.value));\n const nextId = getNextId(_node.value);\n if (nextId === -1) continue;\n else if (parentId !== -1) {\n node2 = _node;\n break;\n } else {\n const unhandledNode = _node.value;\n const parent = index.parentNode(unhandledNode);\n if (parent && parent.nodeType === Node.DOCUMENT_FRAGMENT_NODE) {\n const shadowHost = index.host(parent);\n const parentId2 = this.mirror.getId(shadowHost);\n if (parentId2 !== -1) {\n node2 = _node;\n break;\n }\n }\n }\n }\n }\n }\n if (!node2) {\n while (addList.head) {\n addList.removeNode(addList.head.value);\n }\n break;\n }\n candidate = node2.previous;\n addList.removeNode(node2.value);\n pushAdd(node2.value);\n }\n const payload = {\n texts: this.texts.map((text) => {\n const n2 = text.node;\n const parent = index.parentNode(n2);\n if (parent && parent.tagName === \"TEXTAREA\") {\n this.genTextAreaValueMutation(parent);\n }\n return {\n id: this.mirror.getId(n2),\n value: text.value\n };\n }).filter((text) => !addedIds.has(text.id)).filter((text) => this.mirror.has(text.id)),\n attributes: this.attributes.map((attribute) => {\n const { attributes } = attribute;\n if (typeof attributes.style === \"string\") {\n const diffAsStr = JSON.stringify(attribute.styleDiff);\n const unchangedAsStr = JSON.stringify(attribute._unchangedStyles);\n if (diffAsStr.length < attributes.style.length) {\n if ((diffAsStr + unchangedAsStr).split(\"var(\").length === attributes.style.split(\"var(\").length) {\n attributes.style = attribute.styleDiff;\n }\n }\n }\n return {\n id: this.mirror.getId(attribute.node),\n attributes\n };\n }).filter((attribute) => !addedIds.has(attribute.id)).filter((attribute) => this.mirror.has(attribute.id)),\n removes: this.removes,\n adds\n };\n if (!payload.texts.length && !payload.attributes.length && !payload.removes.length && !payload.adds.length) {\n return;\n }\n this.texts = [];\n this.attributes = [];\n this.attributeMap = /* @__PURE__ */ new WeakMap();\n this.removes = [];\n this.addedSet = /* @__PURE__ */ new Set();\n this.movedSet = /* @__PURE__ */ new Set();\n this.droppedSet = /* @__PURE__ */ new Set();\n this.removesSubTreeCache = /* @__PURE__ */ new Set();\n this.movedMap = {};\n this.mutationCb(payload);\n });\n __publicField(this, \"genTextAreaValueMutation\", (textarea) => {\n let item = this.attributeMap.get(textarea);\n if (!item) {\n item = {\n node: textarea,\n attributes: {},\n styleDiff: {},\n _unchangedStyles: {}\n };\n this.attributes.push(item);\n this.attributeMap.set(textarea, item);\n }\n item.attributes.value = Array.from(\n index.childNodes(textarea),\n (cn) => index.textContent(cn) || \"\"\n ).join(\"\");\n });\n __publicField(this, \"processMutation\", (m) => {\n if (isIgnored(m.target, this.mirror, this.slimDOMOptions)) {\n return;\n }\n switch (m.type) {\n case \"characterData\": {\n const value = index.textContent(m.target);\n if (!isBlocked(m.target, this.blockClass, this.blockSelector, false) && value !== m.oldValue) {\n this.texts.push({\n value: needMaskingText(\n m.target,\n this.maskTextClass,\n this.maskTextSelector,\n true\n // checkAncestors\n ) && value ? this.maskTextFn ? this.maskTextFn(value, closestElementOfNode(m.target)) : value.replace(/[\\S]/g, \"*\") : value,\n node: m.target\n });\n }\n break;\n }\n case \"attributes\": {\n const target = m.target;\n let attributeName = m.attributeName;\n let value = m.target.getAttribute(attributeName);\n if (attributeName === \"value\") {\n const type = getInputType(target);\n value = maskInputValue({\n element: target,\n maskInputOptions: this.maskInputOptions,\n tagName: target.tagName,\n type,\n value,\n maskInputFn: this.maskInputFn\n });\n }\n if (isBlocked(m.target, this.blockClass, this.blockSelector, false) || value === m.oldValue) {\n return;\n }\n let item = this.attributeMap.get(m.target);\n if (target.tagName === \"IFRAME\" && attributeName === \"src\" && !this.keepIframeSrcFn(value)) {\n if (!target.contentDocument) {\n attributeName = \"rr_src\";\n } else {\n return;\n }\n }\n if (!item) {\n item = {\n node: m.target,\n attributes: {},\n styleDiff: {},\n _unchangedStyles: {}\n };\n this.attributes.push(item);\n this.attributeMap.set(m.target, item);\n }\n if (attributeName === \"type\" && target.tagName === \"INPUT\" && (m.oldValue || \"\").toLowerCase() === \"password\") {\n target.setAttribute(\"data-rr-is-password\", \"true\");\n }\n if (!ignoreAttribute(target.tagName, attributeName)) {\n item.attributes[attributeName] = transformAttribute(\n this.doc,\n toLowerCase(target.tagName),\n toLowerCase(attributeName),\n value\n );\n if (attributeName === \"style\") {\n if (!this.unattachedDoc) {\n try {\n this.unattachedDoc = document.implementation.createHTMLDocument();\n } catch (e2) {\n this.unattachedDoc = this.doc;\n }\n }\n const old = this.unattachedDoc.createElement(\"span\");\n if (m.oldValue) {\n old.setAttribute(\"style\", m.oldValue);\n }\n for (const pname of Array.from(target.style)) {\n const newValue = target.style.getPropertyValue(pname);\n const newPriority = target.style.getPropertyPriority(pname);\n if (newValue !== old.style.getPropertyValue(pname) || newPriority !== old.style.getPropertyPriority(pname)) {\n if (newPriority === \"\") {\n item.styleDiff[pname] = newValue;\n } else {\n item.styleDiff[pname] = [newValue, newPriority];\n }\n } else {\n item._unchangedStyles[pname] = [newValue, newPriority];\n }\n }\n for (const pname of Array.from(old.style)) {\n if (target.style.getPropertyValue(pname) === \"\") {\n item.styleDiff[pname] = false;\n }\n }\n } else if (attributeName === \"open\" && target.tagName === \"DIALOG\") {\n if (target.matches(\"dialog:modal\")) {\n item.attributes[\"rr_open_mode\"] = \"modal\";\n } else {\n item.attributes[\"rr_open_mode\"] = \"non-modal\";\n }\n }\n }\n break;\n }\n case \"childList\": {\n if (isBlocked(m.target, this.blockClass, this.blockSelector, true))\n return;\n if (m.target.tagName === \"TEXTAREA\") {\n this.genTextAreaValueMutation(m.target);\n return;\n }\n m.addedNodes.forEach((n2) => this.genAdds(n2, m.target));\n m.removedNodes.forEach((n2) => {\n const nodeId = this.mirror.getId(n2);\n const parentId = isShadowRoot(m.target) ? this.mirror.getId(index.host(m.target)) : this.mirror.getId(m.target);\n if (isBlocked(m.target, this.blockClass, this.blockSelector, false) || isIgnored(n2, this.mirror, this.slimDOMOptions) || !isSerialized(n2, this.mirror)) {\n return;\n }\n if (this.addedSet.has(n2)) {\n deepDelete(this.addedSet, n2);\n this.droppedSet.add(n2);\n } else if (this.addedSet.has(m.target) && nodeId === -1) ;\n else if (isAncestorRemoved(m.target, this.mirror)) ;\n else if (this.movedSet.has(n2) && this.movedMap[moveKey(nodeId, parentId)]) {\n deepDelete(this.movedSet, n2);\n } else {\n this.removes.push({\n parentId,\n id: nodeId,\n isShadow: isShadowRoot(m.target) && isNativeShadowDom(m.target) ? true : void 0\n });\n processRemoves(n2, this.removesSubTreeCache);\n }\n this.mapRemoves.push(n2);\n });\n break;\n }\n }\n });\n /**\n * Make sure you check if `n`'s parent is blocked before calling this function\n * */\n __publicField(this, \"genAdds\", (n2, target) => {\n if (this.processedNodeManager.inOtherBuffer(n2, this)) return;\n if (this.addedSet.has(n2) || this.movedSet.has(n2)) return;\n if (this.mirror.hasNode(n2)) {\n if (isIgnored(n2, this.mirror, this.slimDOMOptions)) {\n return;\n }\n this.movedSet.add(n2);\n let targetId = null;\n if (target && this.mirror.hasNode(target)) {\n targetId = this.mirror.getId(target);\n }\n if (targetId && targetId !== -1) {\n this.movedMap[moveKey(this.mirror.getId(n2), targetId)] = true;\n }\n } else {\n this.addedSet.add(n2);\n this.droppedSet.delete(n2);\n }\n if (!isBlocked(n2, this.blockClass, this.blockSelector, false)) {\n index.childNodes(n2).forEach((childN) => this.genAdds(childN));\n if (hasShadowRoot(n2)) {\n index.childNodes(index.shadowRoot(n2)).forEach((childN) => {\n this.processedNodeManager.add(childN, this);\n this.genAdds(childN, n2);\n });\n }\n }\n });\n }\n init(options) {\n [\n \"mutationCb\",\n \"blockClass\",\n \"blockSelector\",\n \"maskTextClass\",\n \"maskTextSelector\",\n \"inlineStylesheet\",\n \"maskInputOptions\",\n \"maskTextFn\",\n \"maskInputFn\",\n \"keepIframeSrcFn\",\n \"recordCanvas\",\n \"inlineImages\",\n \"slimDOMOptions\",\n \"dataURLOptions\",\n \"doc\",\n \"mirror\",\n \"iframeManager\",\n \"stylesheetManager\",\n \"shadowDomManager\",\n \"canvasManager\",\n \"processedNodeManager\"\n ].forEach((key) => {\n this[key] = options[key];\n });\n }\n freeze() {\n this.frozen = true;\n this.canvasManager.freeze();\n }\n unfreeze() {\n this.frozen = false;\n this.canvasManager.unfreeze();\n this.emit();\n }\n isFrozen() {\n return this.frozen;\n }\n lock() {\n this.locked = true;\n this.canvasManager.lock();\n }\n unlock() {\n this.locked = false;\n this.canvasManager.unlock();\n this.emit();\n }\n reset() {\n this.shadowDomManager.reset();\n this.canvasManager.reset();\n }\n}\nfunction deepDelete(addsSet, n2) {\n addsSet.delete(n2);\n index.childNodes(n2).forEach((childN) => deepDelete(addsSet, childN));\n}\nfunction processRemoves(n2, cache) {\n const queue = [n2];\n while (queue.length) {\n const next = queue.pop();\n if (cache.has(next)) continue;\n cache.add(next);\n index.childNodes(next).forEach((n22) => queue.push(n22));\n }\n return;\n}\nfunction isParentRemoved(removes, n2, mirror2) {\n if (removes.size === 0) return false;\n return _isParentRemoved(removes, n2);\n}\nfunction _isParentRemoved(removes, n2, _mirror2) {\n const node2 = index.parentNode(n2);\n if (!node2) return false;\n return removes.has(node2);\n}\nfunction isAncestorInSet(set, n2) {\n if (set.size === 0) return false;\n return _isAncestorInSet(set, n2);\n}\nfunction _isAncestorInSet(set, n2) {\n const parent = index.parentNode(n2);\n if (!parent) {\n return false;\n }\n if (set.has(parent)) {\n return true;\n }\n return _isAncestorInSet(set, parent);\n}\nlet errorHandler;\nfunction registerErrorHandler(handler) {\n errorHandler = handler;\n}\nfunction unregisterErrorHandler() {\n errorHandler = void 0;\n}\nconst callbackWrapper = (cb) => {\n if (!errorHandler) {\n return cb;\n }\n const rrwebWrapped = (...rest) => {\n try {\n return cb(...rest);\n } catch (error) {\n if (errorHandler && errorHandler(error) === true) {\n return;\n }\n throw error;\n }\n };\n return rrwebWrapped;\n};\nconst mutationBuffers = [];\nfunction getEventTarget(event) {\n try {\n if (\"composedPath\" in event) {\n const path = event.composedPath();\n if (path.length) {\n return path[0];\n }\n } else if (\"path\" in event && event.path.length) {\n return event.path[0];\n }\n } catch {\n }\n return event && event.target;\n}\nfunction initMutationObserver(options, rootEl) {\n const mutationBuffer = new MutationBuffer();\n mutationBuffers.push(mutationBuffer);\n mutationBuffer.init(options);\n const observer = new (mutationObserverCtor())(\n callbackWrapper(mutationBuffer.processMutations.bind(mutationBuffer))\n );\n observer.observe(rootEl, {\n attributes: true,\n attributeOldValue: true,\n characterData: true,\n characterDataOldValue: true,\n childList: true,\n subtree: true\n });\n return observer;\n}\nfunction initMoveObserver({\n mousemoveCb,\n sampling,\n doc,\n mirror: mirror2\n}) {\n if (sampling.mousemove === false) {\n return () => {\n };\n }\n const threshold = typeof sampling.mousemove === \"number\" ? sampling.mousemove : 50;\n const callbackThreshold = typeof sampling.mousemoveCallback === \"number\" ? sampling.mousemoveCallback : 500;\n let positions = [];\n let timeBaseline;\n const wrappedCb = throttle(\n callbackWrapper(\n (source) => {\n const totalOffset = Date.now() - timeBaseline;\n mousemoveCb(\n positions.map((p) => {\n p.timeOffset -= totalOffset;\n return p;\n }),\n source\n );\n positions = [];\n timeBaseline = null;\n }\n ),\n callbackThreshold\n );\n const updatePosition = callbackWrapper(\n throttle(\n callbackWrapper((evt) => {\n const target = getEventTarget(evt);\n const { clientX, clientY } = legacy_isTouchEvent(evt) ? evt.changedTouches[0] : evt;\n if (!timeBaseline) {\n timeBaseline = nowTimestamp();\n }\n positions.push({\n x: clientX,\n y: clientY,\n id: mirror2.getId(target),\n timeOffset: nowTimestamp() - timeBaseline\n });\n wrappedCb(\n typeof DragEvent !== \"undefined\" && evt instanceof DragEvent ? IncrementalSource.Drag : evt instanceof MouseEvent ? IncrementalSource.MouseMove : IncrementalSource.TouchMove\n );\n }),\n threshold,\n {\n trailing: false\n }\n )\n );\n const handlers = [\n on(\"mousemove\", updatePosition, doc),\n on(\"touchmove\", updatePosition, doc),\n on(\"drag\", updatePosition, doc)\n ];\n return callbackWrapper(() => {\n handlers.forEach((h) => h());\n });\n}\nfunction initMouseInteractionObserver({\n mouseInteractionCb,\n doc,\n mirror: mirror2,\n blockClass,\n blockSelector,\n sampling\n}) {\n if (sampling.mouseInteraction === false) {\n return () => {\n };\n }\n const disableMap = sampling.mouseInteraction === true || sampling.mouseInteraction === void 0 ? {} : sampling.mouseInteraction;\n const handlers = [];\n let currentPointerType = null;\n const getHandler = (eventKey) => {\n return (event) => {\n const target = getEventTarget(event);\n if (isBlocked(target, blockClass, blockSelector, true)) {\n return;\n }\n let pointerType = null;\n let thisEventKey = eventKey;\n if (\"pointerType\" in event) {\n switch (event.pointerType) {\n case \"mouse\":\n pointerType = PointerTypes.Mouse;\n break;\n case \"touch\":\n pointerType = PointerTypes.Touch;\n break;\n case \"pen\":\n pointerType = PointerTypes.Pen;\n break;\n }\n if (pointerType === PointerTypes.Touch) {\n if (MouseInteractions[eventKey] === MouseInteractions.MouseDown) {\n thisEventKey = \"TouchStart\";\n } else if (MouseInteractions[eventKey] === MouseInteractions.MouseUp) {\n thisEventKey = \"TouchEnd\";\n }\n } else if (pointerType === PointerTypes.Pen) ;\n } else if (legacy_isTouchEvent(event)) {\n pointerType = PointerTypes.Touch;\n }\n if (pointerType !== null) {\n currentPointerType = pointerType;\n if (thisEventKey.startsWith(\"Touch\") && pointerType === PointerTypes.Touch || thisEventKey.startsWith(\"Mouse\") && pointerType === PointerTypes.Mouse) {\n pointerType = null;\n }\n } else if (MouseInteractions[eventKey] === MouseInteractions.Click) {\n pointerType = currentPointerType;\n currentPointerType = null;\n }\n const e2 = legacy_isTouchEvent(event) ? event.changedTouches[0] : event;\n if (!e2) {\n return;\n }\n const id = mirror2.getId(target);\n const { clientX, clientY } = e2;\n callbackWrapper(mouseInteractionCb)({\n type: MouseInteractions[thisEventKey],\n id,\n x: clientX,\n y: clientY,\n ...pointerType !== null && { pointerType }\n });\n };\n };\n Object.keys(MouseInteractions).filter(\n (key) => Number.isNaN(Number(key)) && !key.endsWith(\"_Departed\") && disableMap[key] !== false\n ).forEach((eventKey) => {\n let eventName = toLowerCase(eventKey);\n const handler = getHandler(eventKey);\n if (window.PointerEvent) {\n switch (MouseInteractions[eventKey]) {\n case MouseInteractions.MouseDown:\n case MouseInteractions.MouseUp:\n eventName = eventName.replace(\n \"mouse\",\n \"pointer\"\n );\n break;\n case MouseInteractions.TouchStart:\n case MouseInteractions.TouchEnd:\n return;\n }\n }\n handlers.push(on(eventName, handler, doc));\n });\n return callbackWrapper(() => {\n handlers.forEach((h) => h());\n });\n}\nfunction initScrollObserver({\n scrollCb,\n doc,\n mirror: mirror2,\n blockClass,\n blockSelector,\n sampling\n}) {\n const updatePosition = callbackWrapper(\n throttle(\n callbackWrapper((evt) => {\n const target = getEventTarget(evt);\n if (!target || isBlocked(target, blockClass, blockSelector, true)) {\n return;\n }\n const id = mirror2.getId(target);\n if (target === doc && doc.defaultView) {\n const scrollLeftTop = getWindowScroll(doc.defaultView);\n scrollCb({\n id,\n x: scrollLeftTop.left,\n y: scrollLeftTop.top\n });\n } else {\n scrollCb({\n id,\n x: target.scrollLeft,\n y: target.scrollTop\n });\n }\n }),\n sampling.scroll || 100\n )\n );\n return on(\"scroll\", updatePosition, doc);\n}\nfunction initViewportResizeObserver({ viewportResizeCb }, { win }) {\n let lastH = -1;\n let lastW = -1;\n const updateDimension = callbackWrapper(\n throttle(\n callbackWrapper(() => {\n const height = getWindowHeight();\n const width = getWindowWidth();\n if (lastH !== height || lastW !== width) {\n viewportResizeCb({\n width: Number(width),\n height: Number(height)\n });\n lastH = height;\n lastW = width;\n }\n }),\n 200\n )\n );\n return on(\"resize\", updateDimension, win);\n}\nconst INPUT_TAGS = [\"INPUT\", \"TEXTAREA\", \"SELECT\"];\nconst lastInputValueMap = /* @__PURE__ */ new WeakMap();\nfunction initInputObserver({\n inputCb,\n doc,\n mirror: mirror2,\n blockClass,\n blockSelector,\n ignoreClass,\n ignoreSelector,\n maskInputOptions,\n maskInputFn,\n sampling,\n userTriggeredOnInput\n}) {\n function eventHandler(event) {\n let target = getEventTarget(event);\n const userTriggered = event.isTrusted;\n const tagName = target && target.tagName;\n if (target && tagName === \"OPTION\") {\n target = index.parentElement(target);\n }\n if (!target || !tagName || INPUT_TAGS.indexOf(tagName) < 0 || isBlocked(target, blockClass, blockSelector, true)) {\n return;\n }\n if (target.classList.contains(ignoreClass) || ignoreSelector && target.matches(ignoreSelector)) {\n return;\n }\n let text = target.value;\n let isChecked = false;\n const type = getInputType(target) || \"\";\n if (type === \"radio\" || type === \"checkbox\") {\n isChecked = target.checked;\n } else if (maskInputOptions[tagName.toLowerCase()] || maskInputOptions[type]) {\n text = maskInputValue({\n element: target,\n maskInputOptions,\n tagName,\n type,\n value: text,\n maskInputFn\n });\n }\n cbWithDedup(\n target,\n userTriggeredOnInput ? { text, isChecked, userTriggered } : { text, isChecked }\n );\n const name = target.name;\n if (type === \"radio\" && name && isChecked) {\n doc.querySelectorAll(`input[type=\"radio\"][name=\"${name}\"]`).forEach((el) => {\n if (el !== target) {\n const text2 = el.value;\n cbWithDedup(\n el,\n userTriggeredOnInput ? { text: text2, isChecked: !isChecked, userTriggered: false } : { text: text2, isChecked: !isChecked }\n );\n }\n });\n }\n }\n function cbWithDedup(target, v2) {\n const lastInputValue = lastInputValueMap.get(target);\n if (!lastInputValue || lastInputValue.text !== v2.text || lastInputValue.isChecked !== v2.isChecked) {\n lastInputValueMap.set(target, v2);\n const id = mirror2.getId(target);\n callbackWrapper(inputCb)({\n ...v2,\n id\n });\n }\n }\n const events = sampling.input === \"last\" ? [\"change\"] : [\"input\", \"change\"];\n const handlers = events.map(\n (eventName) => on(eventName, callbackWrapper(eventHandler), doc)\n );\n const currentWindow = doc.defaultView;\n if (!currentWindow) {\n return () => {\n handlers.forEach((h) => h());\n };\n }\n const propertyDescriptor = currentWindow.Object.getOwnPropertyDescriptor(\n currentWindow.HTMLInputElement.prototype,\n \"value\"\n );\n const hookProperties = [\n [currentWindow.HTMLInputElement.prototype, \"value\"],\n [currentWindow.HTMLInputElement.prototype, \"checked\"],\n [currentWindow.HTMLSelectElement.prototype, \"value\"],\n [currentWindow.HTMLTextAreaElement.prototype, \"value\"],\n // Some UI library use selectedIndex to set select value\n [currentWindow.HTMLSelectElement.prototype, \"selectedIndex\"],\n [currentWindow.HTMLOptionElement.prototype, \"selected\"]\n ];\n if (propertyDescriptor && propertyDescriptor.set) {\n handlers.push(\n ...hookProperties.map(\n (p) => hookSetter(\n p[0],\n p[1],\n {\n set() {\n callbackWrapper(eventHandler)({\n target: this,\n isTrusted: false\n // userTriggered to false as this could well be programmatic\n });\n }\n },\n false,\n currentWindow\n )\n )\n );\n }\n return callbackWrapper(() => {\n handlers.forEach((h) => h());\n });\n}\nfunction getNestedCSSRulePositions(rule2) {\n const positions = [];\n function recurse(childRule, pos) {\n if (hasNestedCSSRule(\"CSSGroupingRule\") && childRule.parentRule instanceof CSSGroupingRule || hasNestedCSSRule(\"CSSMediaRule\") && childRule.parentRule instanceof CSSMediaRule || hasNestedCSSRule(\"CSSSupportsRule\") && childRule.parentRule instanceof CSSSupportsRule || hasNestedCSSRule(\"CSSConditionRule\") && childRule.parentRule instanceof CSSConditionRule) {\n const rules2 = Array.from(\n childRule.parentRule.cssRules\n );\n const index2 = rules2.indexOf(childRule);\n pos.unshift(index2);\n } else if (childRule.parentStyleSheet) {\n const rules2 = Array.from(childRule.parentStyleSheet.cssRules);\n const index2 = rules2.indexOf(childRule);\n pos.unshift(index2);\n }\n return pos;\n }\n return recurse(rule2, positions);\n}\nfunction getIdAndStyleId(sheet, mirror2, styleMirror) {\n let id, styleId;\n if (!sheet) return {};\n if (sheet.ownerNode) id = mirror2.getId(sheet.ownerNode);\n else styleId = styleMirror.getId(sheet);\n return {\n styleId,\n id\n };\n}\nfunction initStyleSheetObserver({ styleSheetRuleCb, mirror: mirror2, stylesheetManager }, { win }) {\n if (!win.CSSStyleSheet || !win.CSSStyleSheet.prototype) {\n return () => {\n };\n }\n const insertRule = win.CSSStyleSheet.prototype.insertRule;\n win.CSSStyleSheet.prototype.insertRule = new Proxy(insertRule, {\n apply: callbackWrapper(\n (target, thisArg, argumentsList) => {\n const [rule2, index2] = argumentsList;\n const { id, styleId } = getIdAndStyleId(\n thisArg,\n mirror2,\n stylesheetManager.styleMirror\n );\n if (id && id !== -1 || styleId && styleId !== -1) {\n styleSheetRuleCb({\n id,\n styleId,\n adds: [{ rule: rule2, index: index2 }]\n });\n }\n return target.apply(thisArg, argumentsList);\n }\n )\n });\n win.CSSStyleSheet.prototype.addRule = function(selector, styleBlock, index2 = this.cssRules.length) {\n const rule2 = `${selector} { ${styleBlock} }`;\n return win.CSSStyleSheet.prototype.insertRule.apply(this, [rule2, index2]);\n };\n const deleteRule = win.CSSStyleSheet.prototype.deleteRule;\n win.CSSStyleSheet.prototype.deleteRule = new Proxy(deleteRule, {\n apply: callbackWrapper(\n (target, thisArg, argumentsList) => {\n const [index2] = argumentsList;\n const { id, styleId } = getIdAndStyleId(\n thisArg,\n mirror2,\n stylesheetManager.styleMirror\n );\n if (id && id !== -1 || styleId && styleId !== -1) {\n styleSheetRuleCb({\n id,\n styleId,\n removes: [{ index: index2 }]\n });\n }\n return target.apply(thisArg, argumentsList);\n }\n )\n });\n win.CSSStyleSheet.prototype.removeRule = function(index2) {\n return win.CSSStyleSheet.prototype.deleteRule.apply(this, [index2]);\n };\n let replace;\n if (win.CSSStyleSheet.prototype.replace) {\n replace = win.CSSStyleSheet.prototype.replace;\n win.CSSStyleSheet.prototype.replace = new Proxy(replace, {\n apply: callbackWrapper(\n (target, thisArg, argumentsList) => {\n const [text] = argumentsList;\n const { id, styleId } = getIdAndStyleId(\n thisArg,\n mirror2,\n stylesheetManager.styleMirror\n );\n if (id && id !== -1 || styleId && styleId !== -1) {\n styleSheetRuleCb({\n id,\n styleId,\n replace: text\n });\n }\n return target.apply(thisArg, argumentsList);\n }\n )\n });\n }\n let replaceSync;\n if (win.CSSStyleSheet.prototype.replaceSync) {\n replaceSync = win.CSSStyleSheet.prototype.replaceSync;\n win.CSSStyleSheet.prototype.replaceSync = new Proxy(replaceSync, {\n apply: callbackWrapper(\n (target, thisArg, argumentsList) => {\n const [text] = argumentsList;\n const { id, styleId } = getIdAndStyleId(\n thisArg,\n mirror2,\n stylesheetManager.styleMirror\n );\n if (id && id !== -1 || styleId && styleId !== -1) {\n styleSheetRuleCb({\n id,\n styleId,\n replaceSync: text\n });\n }\n return target.apply(thisArg, argumentsList);\n }\n )\n });\n }\n const supportedNestedCSSRuleTypes = {};\n if (canMonkeyPatchNestedCSSRule(\"CSSGroupingRule\")) {\n supportedNestedCSSRuleTypes.CSSGroupingRule = win.CSSGroupingRule;\n } else {\n if (canMonkeyPatchNestedCSSRule(\"CSSMediaRule\")) {\n supportedNestedCSSRuleTypes.CSSMediaRule = win.CSSMediaRule;\n }\n if (canMonkeyPatchNestedCSSRule(\"CSSConditionRule\")) {\n supportedNestedCSSRuleTypes.CSSConditionRule = win.CSSConditionRule;\n }\n if (canMonkeyPatchNestedCSSRule(\"CSSSupportsRule\")) {\n supportedNestedCSSRuleTypes.CSSSupportsRule = win.CSSSupportsRule;\n }\n }\n const unmodifiedFunctions = {};\n Object.entries(supportedNestedCSSRuleTypes).forEach(([typeKey, type]) => {\n unmodifiedFunctions[typeKey] = {\n // eslint-disable-next-line @typescript-eslint/unbound-method\n insertRule: type.prototype.insertRule,\n // eslint-disable-next-line @typescript-eslint/unbound-method\n deleteRule: type.prototype.deleteRule\n };\n type.prototype.insertRule = new Proxy(\n unmodifiedFunctions[typeKey].insertRule,\n {\n apply: callbackWrapper(\n (target, thisArg, argumentsList) => {\n const [rule2, index2] = argumentsList;\n const { id, styleId } = getIdAndStyleId(\n thisArg.parentStyleSheet,\n mirror2,\n stylesheetManager.styleMirror\n );\n if (id && id !== -1 || styleId && styleId !== -1) {\n styleSheetRuleCb({\n id,\n styleId,\n adds: [\n {\n rule: rule2,\n index: [\n ...getNestedCSSRulePositions(thisArg),\n index2 || 0\n // defaults to 0\n ]\n }\n ]\n });\n }\n return target.apply(thisArg, argumentsList);\n }\n )\n }\n );\n type.prototype.deleteRule = new Proxy(\n unmodifiedFunctions[typeKey].deleteRule,\n {\n apply: callbackWrapper(\n (target, thisArg, argumentsList) => {\n const [index2] = argumentsList;\n const { id, styleId } = getIdAndStyleId(\n thisArg.parentStyleSheet,\n mirror2,\n stylesheetManager.styleMirror\n );\n if (id && id !== -1 || styleId && styleId !== -1) {\n styleSheetRuleCb({\n id,\n styleId,\n removes: [\n { index: [...getNestedCSSRulePositions(thisArg), index2] }\n ]\n });\n }\n return target.apply(thisArg, argumentsList);\n }\n )\n }\n );\n });\n return callbackWrapper(() => {\n win.CSSStyleSheet.prototype.insertRule = insertRule;\n win.CSSStyleSheet.prototype.deleteRule = deleteRule;\n replace && (win.CSSStyleSheet.prototype.replace = replace);\n replaceSync && (win.CSSStyleSheet.prototype.replaceSync = replaceSync);\n Object.entries(supportedNestedCSSRuleTypes).forEach(([typeKey, type]) => {\n type.prototype.insertRule = unmodifiedFunctions[typeKey].insertRule;\n type.prototype.deleteRule = unmodifiedFunctions[typeKey].deleteRule;\n });\n });\n}\nfunction initAdoptedStyleSheetObserver({\n mirror: mirror2,\n stylesheetManager\n}, host2) {\n var _a2, _b, _c;\n let hostId = null;\n if (host2.nodeName === \"#document\") hostId = mirror2.getId(host2);\n else hostId = mirror2.getId(index.host(host2));\n const patchTarget = host2.nodeName === \"#document\" ? (_a2 = host2.defaultView) == null ? void 0 : _a2.Document : (_c = (_b = host2.ownerDocument) == null ? void 0 : _b.defaultView) == null ? void 0 : _c.ShadowRoot;\n const originalPropertyDescriptor = (patchTarget == null ? void 0 : patchTarget.prototype) ? Object.getOwnPropertyDescriptor(\n patchTarget == null ? void 0 : patchTarget.prototype,\n \"adoptedStyleSheets\"\n ) : void 0;\n if (hostId === null || hostId === -1 || !patchTarget || !originalPropertyDescriptor)\n return () => {\n };\n Object.defineProperty(host2, \"adoptedStyleSheets\", {\n configurable: originalPropertyDescriptor.configurable,\n enumerable: originalPropertyDescriptor.enumerable,\n get() {\n var _a3;\n return (_a3 = originalPropertyDescriptor.get) == null ? void 0 : _a3.call(this);\n },\n set(sheets) {\n var _a3;\n const result2 = (_a3 = originalPropertyDescriptor.set) == null ? void 0 : _a3.call(this, sheets);\n if (hostId !== null && hostId !== -1) {\n try {\n stylesheetManager.adoptStyleSheets(sheets, hostId);\n } catch (e2) {\n }\n }\n return result2;\n }\n });\n return callbackWrapper(() => {\n Object.defineProperty(host2, \"adoptedStyleSheets\", {\n configurable: originalPropertyDescriptor.configurable,\n enumerable: originalPropertyDescriptor.enumerable,\n // eslint-disable-next-line @typescript-eslint/unbound-method\n get: originalPropertyDescriptor.get,\n // eslint-disable-next-line @typescript-eslint/unbound-method\n set: originalPropertyDescriptor.set\n });\n });\n}\nfunction initStyleDeclarationObserver({\n styleDeclarationCb,\n mirror: mirror2,\n ignoreCSSAttributes,\n stylesheetManager\n}, { win }) {\n const setProperty = win.CSSStyleDeclaration.prototype.setProperty;\n win.CSSStyleDeclaration.prototype.setProperty = new Proxy(setProperty, {\n apply: callbackWrapper(\n (target, thisArg, argumentsList) => {\n var _a2;\n const [property, value, priority] = argumentsList;\n if (ignoreCSSAttributes.has(property)) {\n return setProperty.apply(thisArg, [property, value, priority]);\n }\n const { id, styleId } = getIdAndStyleId(\n (_a2 = thisArg.parentRule) == null ? void 0 : _a2.parentStyleSheet,\n mirror2,\n stylesheetManager.styleMirror\n );\n if (id && id !== -1 || styleId && styleId !== -1) {\n styleDeclarationCb({\n id,\n styleId,\n set: {\n property,\n value,\n priority\n },\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n index: getNestedCSSRulePositions(thisArg.parentRule)\n });\n }\n return target.apply(thisArg, argumentsList);\n }\n )\n });\n const removeProperty = win.CSSStyleDeclaration.prototype.removeProperty;\n win.CSSStyleDeclaration.prototype.removeProperty = new Proxy(removeProperty, {\n apply: callbackWrapper(\n (target, thisArg, argumentsList) => {\n var _a2;\n const [property] = argumentsList;\n if (ignoreCSSAttributes.has(property)) {\n return removeProperty.apply(thisArg, [property]);\n }\n const { id, styleId } = getIdAndStyleId(\n (_a2 = thisArg.parentRule) == null ? void 0 : _a2.parentStyleSheet,\n mirror2,\n stylesheetManager.styleMirror\n );\n if (id && id !== -1 || styleId && styleId !== -1) {\n styleDeclarationCb({\n id,\n styleId,\n remove: {\n property\n },\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n index: getNestedCSSRulePositions(thisArg.parentRule)\n });\n }\n return target.apply(thisArg, argumentsList);\n }\n )\n });\n return callbackWrapper(() => {\n win.CSSStyleDeclaration.prototype.setProperty = setProperty;\n win.CSSStyleDeclaration.prototype.removeProperty = removeProperty;\n });\n}\nfunction initMediaInteractionObserver({\n mediaInteractionCb,\n blockClass,\n blockSelector,\n mirror: mirror2,\n sampling,\n doc\n}) {\n const handler = callbackWrapper(\n (type) => throttle(\n callbackWrapper((event) => {\n const target = getEventTarget(event);\n if (!target || isBlocked(target, blockClass, blockSelector, true)) {\n return;\n }\n const { currentTime, volume, muted, playbackRate, loop } = target;\n mediaInteractionCb({\n type,\n id: mirror2.getId(target),\n currentTime,\n volume,\n muted,\n playbackRate,\n loop\n });\n }),\n sampling.media || 500\n )\n );\n const handlers = [\n on(\"play\", handler(MediaInteractions.Play), doc),\n on(\"pause\", handler(MediaInteractions.Pause), doc),\n on(\"seeked\", handler(MediaInteractions.Seeked), doc),\n on(\"volumechange\", handler(MediaInteractions.VolumeChange), doc),\n on(\"ratechange\", handler(MediaInteractions.RateChange), doc)\n ];\n return callbackWrapper(() => {\n handlers.forEach((h) => h());\n });\n}\nfunction initFontObserver({ fontCb, doc }) {\n const win = doc.defaultView;\n if (!win) {\n return () => {\n };\n }\n const handlers = [];\n const fontMap = /* @__PURE__ */ new WeakMap();\n const originalFontFace = win.FontFace;\n win.FontFace = function FontFace2(family, source, descriptors) {\n const fontFace = new originalFontFace(family, source, descriptors);\n fontMap.set(fontFace, {\n family,\n buffer: typeof source !== \"string\",\n descriptors,\n fontSource: typeof source === \"string\" ? source : JSON.stringify(Array.from(new Uint8Array(source)))\n });\n return fontFace;\n };\n const restoreHandler = patch(\n doc.fonts,\n \"add\",\n function(original) {\n return function(fontFace) {\n setTimeout(\n callbackWrapper(() => {\n const p = fontMap.get(fontFace);\n if (p) {\n fontCb(p);\n fontMap.delete(fontFace);\n }\n }),\n 0\n );\n return original.apply(this, [fontFace]);\n };\n }\n );\n handlers.push(() => {\n win.FontFace = originalFontFace;\n });\n handlers.push(restoreHandler);\n return callbackWrapper(() => {\n handlers.forEach((h) => h());\n });\n}\nfunction initSelectionObserver(param) {\n const { doc, mirror: mirror2, blockClass, blockSelector, selectionCb } = param;\n let collapsed = true;\n const updateSelection = callbackWrapper(() => {\n const selection = doc.getSelection();\n if (!selection || collapsed && (selection == null ? void 0 : selection.isCollapsed)) return;\n collapsed = selection.isCollapsed || false;\n const ranges = [];\n const count = selection.rangeCount || 0;\n for (let i2 = 0; i2 < count; i2++) {\n const range = selection.getRangeAt(i2);\n const { startContainer, startOffset, endContainer, endOffset } = range;\n const blocked = isBlocked(startContainer, blockClass, blockSelector, true) || isBlocked(endContainer, blockClass, blockSelector, true);\n if (blocked) continue;\n ranges.push({\n start: mirror2.getId(startContainer),\n startOffset,\n end: mirror2.getId(endContainer),\n endOffset\n });\n }\n selectionCb({ ranges });\n });\n updateSelection();\n return on(\"selectionchange\", updateSelection);\n}\nfunction initCustomElementObserver({\n doc,\n customElementCb\n}) {\n const win = doc.defaultView;\n if (!win || !win.customElements) return () => {\n };\n const restoreHandler = patch(\n win.customElements,\n \"define\",\n function(original) {\n return function(name, constructor, options) {\n try {\n customElementCb({\n define: {\n name\n }\n });\n } catch (e2) {\n console.warn(`Custom element callback failed for ${name}`);\n }\n return original.apply(this, [name, constructor, options]);\n };\n }\n );\n return restoreHandler;\n}\nfunction mergeHooks(o2, hooks) {\n const {\n mutationCb,\n mousemoveCb,\n mouseInteractionCb,\n scrollCb,\n viewportResizeCb,\n inputCb,\n mediaInteractionCb,\n styleSheetRuleCb,\n styleDeclarationCb,\n canvasMutationCb,\n fontCb,\n selectionCb,\n customElementCb\n } = o2;\n o2.mutationCb = (...p) => {\n if (hooks.mutation) {\n hooks.mutation(...p);\n }\n mutationCb(...p);\n };\n o2.mousemoveCb = (...p) => {\n if (hooks.mousemove) {\n hooks.mousemove(...p);\n }\n mousemoveCb(...p);\n };\n o2.mouseInteractionCb = (...p) => {\n if (hooks.mouseInteraction) {\n hooks.mouseInteraction(...p);\n }\n mouseInteractionCb(...p);\n };\n o2.scrollCb = (...p) => {\n if (hooks.scroll) {\n hooks.scroll(...p);\n }\n scrollCb(...p);\n };\n o2.viewportResizeCb = (...p) => {\n if (hooks.viewportResize) {\n hooks.viewportResize(...p);\n }\n viewportResizeCb(...p);\n };\n o2.inputCb = (...p) => {\n if (hooks.input) {\n hooks.input(...p);\n }\n inputCb(...p);\n };\n o2.mediaInteractionCb = (...p) => {\n if (hooks.mediaInteaction) {\n hooks.mediaInteaction(...p);\n }\n mediaInteractionCb(...p);\n };\n o2.styleSheetRuleCb = (...p) => {\n if (hooks.styleSheetRule) {\n hooks.styleSheetRule(...p);\n }\n styleSheetRuleCb(...p);\n };\n o2.styleDeclarationCb = (...p) => {\n if (hooks.styleDeclaration) {\n hooks.styleDeclaration(...p);\n }\n styleDeclarationCb(...p);\n };\n o2.canvasMutationCb = (...p) => {\n if (hooks.canvasMutation) {\n hooks.canvasMutation(...p);\n }\n canvasMutationCb(...p);\n };\n o2.fontCb = (...p) => {\n if (hooks.font) {\n hooks.font(...p);\n }\n fontCb(...p);\n };\n o2.selectionCb = (...p) => {\n if (hooks.selection) {\n hooks.selection(...p);\n }\n selectionCb(...p);\n };\n o2.customElementCb = (...c2) => {\n if (hooks.customElement) {\n hooks.customElement(...c2);\n }\n customElementCb(...c2);\n };\n}\nfunction initObservers(o2, hooks = {}) {\n const currentWindow = o2.doc.defaultView;\n if (!currentWindow) {\n return () => {\n };\n }\n mergeHooks(o2, hooks);\n let mutationObserver;\n if (o2.recordDOM) {\n mutationObserver = initMutationObserver(o2, o2.doc);\n }\n const mousemoveHandler = initMoveObserver(o2);\n const mouseInteractionHandler = initMouseInteractionObserver(o2);\n const scrollHandler = initScrollObserver(o2);\n const viewportResizeHandler = initViewportResizeObserver(o2, {\n win: currentWindow\n });\n const inputHandler = initInputObserver(o2);\n const mediaInteractionHandler = initMediaInteractionObserver(o2);\n let styleSheetObserver = () => {\n };\n let adoptedStyleSheetObserver = () => {\n };\n let styleDeclarationObserver = () => {\n };\n let fontObserver = () => {\n };\n if (o2.recordDOM) {\n styleSheetObserver = initStyleSheetObserver(o2, { win: currentWindow });\n adoptedStyleSheetObserver = initAdoptedStyleSheetObserver(o2, o2.doc);\n styleDeclarationObserver = initStyleDeclarationObserver(o2, {\n win: currentWindow\n });\n if (o2.collectFonts) {\n fontObserver = initFontObserver(o2);\n }\n }\n const selectionObserver = initSelectionObserver(o2);\n const customElementObserver = initCustomElementObserver(o2);\n const pluginHandlers = [];\n for (const plugin3 of o2.plugins) {\n pluginHandlers.push(\n plugin3.observer(plugin3.callback, currentWindow, plugin3.options)\n );\n }\n return callbackWrapper(() => {\n mutationBuffers.forEach((b) => b.reset());\n mutationObserver == null ? void 0 : mutationObserver.disconnect();\n mousemoveHandler();\n mouseInteractionHandler();\n scrollHandler();\n viewportResizeHandler();\n inputHandler();\n mediaInteractionHandler();\n styleSheetObserver();\n adoptedStyleSheetObserver();\n styleDeclarationObserver();\n fontObserver();\n selectionObserver();\n customElementObserver();\n pluginHandlers.forEach((h) => h());\n });\n}\nfunction hasNestedCSSRule(prop) {\n return typeof window[prop] !== \"undefined\";\n}\nfunction canMonkeyPatchNestedCSSRule(prop) {\n return Boolean(\n typeof window[prop] !== \"undefined\" && // Note: Generally, this check _shouldn't_ be necessary\n // However, in some scenarios (e.g. jsdom) this can sometimes fail, so we check for it here\n window[prop].prototype && \"insertRule\" in window[prop].prototype && \"deleteRule\" in window[prop].prototype\n );\n}\nclass CrossOriginIframeMirror {\n constructor(generateIdFn) {\n __publicField(this, \"iframeIdToRemoteIdMap\", /* @__PURE__ */ new WeakMap());\n __publicField(this, \"iframeRemoteIdToIdMap\", /* @__PURE__ */ new WeakMap());\n this.generateIdFn = generateIdFn;\n }\n getId(iframe, remoteId, idToRemoteMap, remoteToIdMap) {\n const idToRemoteIdMap = idToRemoteMap || this.getIdToRemoteIdMap(iframe);\n const remoteIdToIdMap = remoteToIdMap || this.getRemoteIdToIdMap(iframe);\n let id = idToRemoteIdMap.get(remoteId);\n if (!id) {\n id = this.generateIdFn();\n idToRemoteIdMap.set(remoteId, id);\n remoteIdToIdMap.set(id, remoteId);\n }\n return id;\n }\n getIds(iframe, remoteId) {\n const idToRemoteIdMap = this.getIdToRemoteIdMap(iframe);\n const remoteIdToIdMap = this.getRemoteIdToIdMap(iframe);\n return remoteId.map(\n (id) => this.getId(iframe, id, idToRemoteIdMap, remoteIdToIdMap)\n );\n }\n getRemoteId(iframe, id, map) {\n const remoteIdToIdMap = map || this.getRemoteIdToIdMap(iframe);\n if (typeof id !== \"number\") return id;\n const remoteId = remoteIdToIdMap.get(id);\n if (!remoteId) return -1;\n return remoteId;\n }\n getRemoteIds(iframe, ids) {\n const remoteIdToIdMap = this.getRemoteIdToIdMap(iframe);\n return ids.map((id) => this.getRemoteId(iframe, id, remoteIdToIdMap));\n }\n reset(iframe) {\n if (!iframe) {\n this.iframeIdToRemoteIdMap = /* @__PURE__ */ new WeakMap();\n this.iframeRemoteIdToIdMap = /* @__PURE__ */ new WeakMap();\n return;\n }\n this.iframeIdToRemoteIdMap.delete(iframe);\n this.iframeRemoteIdToIdMap.delete(iframe);\n }\n getIdToRemoteIdMap(iframe) {\n let idToRemoteIdMap = this.iframeIdToRemoteIdMap.get(iframe);\n if (!idToRemoteIdMap) {\n idToRemoteIdMap = /* @__PURE__ */ new Map();\n this.iframeIdToRemoteIdMap.set(iframe, idToRemoteIdMap);\n }\n return idToRemoteIdMap;\n }\n getRemoteIdToIdMap(iframe) {\n let remoteIdToIdMap = this.iframeRemoteIdToIdMap.get(iframe);\n if (!remoteIdToIdMap) {\n remoteIdToIdMap = /* @__PURE__ */ new Map();\n this.iframeRemoteIdToIdMap.set(iframe, remoteIdToIdMap);\n }\n return remoteIdToIdMap;\n }\n}\nclass IframeManager {\n constructor(options) {\n __publicField(this, \"iframes\", /* @__PURE__ */ new WeakMap());\n __publicField(this, \"crossOriginIframeMap\", /* @__PURE__ */ new WeakMap());\n __publicField(this, \"crossOriginIframeMirror\", new CrossOriginIframeMirror(genId));\n __publicField(this, \"crossOriginIframeStyleMirror\");\n __publicField(this, \"crossOriginIframeRootIdMap\", /* @__PURE__ */ new WeakMap());\n __publicField(this, \"mirror\");\n __publicField(this, \"mutationCb\");\n __publicField(this, \"wrappedEmit\");\n __publicField(this, \"loadListener\");\n __publicField(this, \"stylesheetManager\");\n __publicField(this, \"recordCrossOriginIframes\");\n this.mutationCb = options.mutationCb;\n this.wrappedEmit = options.wrappedEmit;\n this.stylesheetManager = options.stylesheetManager;\n this.recordCrossOriginIframes = options.recordCrossOriginIframes;\n this.crossOriginIframeStyleMirror = new CrossOriginIframeMirror(\n this.stylesheetManager.styleMirror.generateId.bind(\n this.stylesheetManager.styleMirror\n )\n );\n this.mirror = options.mirror;\n if (this.recordCrossOriginIframes) {\n window.addEventListener(\"message\", this.handleMessage.bind(this));\n }\n }\n addIframe(iframeEl) {\n this.iframes.set(iframeEl, true);\n if (iframeEl.contentWindow)\n this.crossOriginIframeMap.set(iframeEl.contentWindow, iframeEl);\n }\n addLoadListener(cb) {\n this.loadListener = cb;\n }\n attachIframe(iframeEl, childSn) {\n var _a2, _b;\n this.mutationCb({\n adds: [\n {\n parentId: this.mirror.getId(iframeEl),\n nextId: null,\n node: childSn\n }\n ],\n removes: [],\n texts: [],\n attributes: [],\n isAttachIframe: true\n });\n if (this.recordCrossOriginIframes)\n (_a2 = iframeEl.contentWindow) == null ? void 0 : _a2.addEventListener(\n \"message\",\n this.handleMessage.bind(this)\n );\n (_b = this.loadListener) == null ? void 0 : _b.call(this, iframeEl);\n if (iframeEl.contentDocument && iframeEl.contentDocument.adoptedStyleSheets && iframeEl.contentDocument.adoptedStyleSheets.length > 0)\n this.stylesheetManager.adoptStyleSheets(\n iframeEl.contentDocument.adoptedStyleSheets,\n this.mirror.getId(iframeEl.contentDocument)\n );\n }\n handleMessage(message) {\n const crossOriginMessageEvent = message;\n if (crossOriginMessageEvent.data.type !== \"rrweb\" || // To filter out the rrweb messages which are forwarded by some sites.\n crossOriginMessageEvent.origin !== crossOriginMessageEvent.data.origin)\n return;\n const iframeSourceWindow = message.source;\n if (!iframeSourceWindow) return;\n const iframeEl = this.crossOriginIframeMap.get(message.source);\n if (!iframeEl) return;\n const transformedEvent = this.transformCrossOriginEvent(\n iframeEl,\n crossOriginMessageEvent.data.event\n );\n if (transformedEvent)\n this.wrappedEmit(\n transformedEvent,\n crossOriginMessageEvent.data.isCheckout\n );\n }\n transformCrossOriginEvent(iframeEl, e2) {\n var _a2;\n switch (e2.type) {\n case EventType.FullSnapshot: {\n this.crossOriginIframeMirror.reset(iframeEl);\n this.crossOriginIframeStyleMirror.reset(iframeEl);\n this.replaceIdOnNode(e2.data.node, iframeEl);\n const rootId = e2.data.node.id;\n this.crossOriginIframeRootIdMap.set(iframeEl, rootId);\n this.patchRootIdOnNode(e2.data.node, rootId);\n return {\n timestamp: e2.timestamp,\n type: EventType.IncrementalSnapshot,\n data: {\n source: IncrementalSource.Mutation,\n adds: [\n {\n parentId: this.mirror.getId(iframeEl),\n nextId: null,\n node: e2.data.node\n }\n ],\n removes: [],\n texts: [],\n attributes: [],\n isAttachIframe: true\n }\n };\n }\n case EventType.Meta:\n case EventType.Load:\n case EventType.DomContentLoaded: {\n return false;\n }\n case EventType.Plugin: {\n return e2;\n }\n case EventType.Custom: {\n this.replaceIds(\n e2.data.payload,\n iframeEl,\n [\"id\", \"parentId\", \"previousId\", \"nextId\"]\n );\n return e2;\n }\n case EventType.IncrementalSnapshot: {\n switch (e2.data.source) {\n case IncrementalSource.Mutation: {\n e2.data.adds.forEach((n2) => {\n this.replaceIds(n2, iframeEl, [\n \"parentId\",\n \"nextId\",\n \"previousId\"\n ]);\n this.replaceIdOnNode(n2.node, iframeEl);\n const rootId = this.crossOriginIframeRootIdMap.get(iframeEl);\n rootId && this.patchRootIdOnNode(n2.node, rootId);\n });\n e2.data.removes.forEach((n2) => {\n this.replaceIds(n2, iframeEl, [\"parentId\", \"id\"]);\n });\n e2.data.attributes.forEach((n2) => {\n this.replaceIds(n2, iframeEl, [\"id\"]);\n });\n e2.data.texts.forEach((n2) => {\n this.replaceIds(n2, iframeEl, [\"id\"]);\n });\n return e2;\n }\n case IncrementalSource.Drag:\n case IncrementalSource.TouchMove:\n case IncrementalSource.MouseMove: {\n e2.data.positions.forEach((p) => {\n this.replaceIds(p, iframeEl, [\"id\"]);\n });\n return e2;\n }\n case IncrementalSource.ViewportResize: {\n return false;\n }\n case IncrementalSource.MediaInteraction:\n case IncrementalSource.MouseInteraction:\n case IncrementalSource.Scroll:\n case IncrementalSource.CanvasMutation:\n case IncrementalSource.Input: {\n this.replaceIds(e2.data, iframeEl, [\"id\"]);\n return e2;\n }\n case IncrementalSource.StyleSheetRule:\n case IncrementalSource.StyleDeclaration: {\n this.replaceIds(e2.data, iframeEl, [\"id\"]);\n this.replaceStyleIds(e2.data, iframeEl, [\"styleId\"]);\n return e2;\n }\n case IncrementalSource.Font: {\n return e2;\n }\n case IncrementalSource.Selection: {\n e2.data.ranges.forEach((range) => {\n this.replaceIds(range, iframeEl, [\"start\", \"end\"]);\n });\n return e2;\n }\n case IncrementalSource.AdoptedStyleSheet: {\n this.replaceIds(e2.data, iframeEl, [\"id\"]);\n this.replaceStyleIds(e2.data, iframeEl, [\"styleIds\"]);\n (_a2 = e2.data.styles) == null ? void 0 : _a2.forEach((style) => {\n this.replaceStyleIds(style, iframeEl, [\"styleId\"]);\n });\n return e2;\n }\n }\n }\n }\n return false;\n }\n replace(iframeMirror, obj, iframeEl, keys) {\n for (const key of keys) {\n if (!Array.isArray(obj[key]) && typeof obj[key] !== \"number\") continue;\n if (Array.isArray(obj[key])) {\n obj[key] = iframeMirror.getIds(\n iframeEl,\n obj[key]\n );\n } else {\n obj[key] = iframeMirror.getId(iframeEl, obj[key]);\n }\n }\n return obj;\n }\n replaceIds(obj, iframeEl, keys) {\n return this.replace(this.crossOriginIframeMirror, obj, iframeEl, keys);\n }\n replaceStyleIds(obj, iframeEl, keys) {\n return this.replace(this.crossOriginIframeStyleMirror, obj, iframeEl, keys);\n }\n replaceIdOnNode(node2, iframeEl) {\n this.replaceIds(node2, iframeEl, [\"id\", \"rootId\"]);\n if (\"childNodes\" in node2) {\n node2.childNodes.forEach((child) => {\n this.replaceIdOnNode(child, iframeEl);\n });\n }\n }\n patchRootIdOnNode(node2, rootId) {\n if (node2.type !== NodeType.Document && !node2.rootId) node2.rootId = rootId;\n if (\"childNodes\" in node2) {\n node2.childNodes.forEach((child) => {\n this.patchRootIdOnNode(child, rootId);\n });\n }\n }\n}\nclass ShadowDomManager {\n constructor(options) {\n __publicField(this, \"shadowDoms\", /* @__PURE__ */ new WeakSet());\n __publicField(this, \"mutationCb\");\n __publicField(this, \"scrollCb\");\n __publicField(this, \"bypassOptions\");\n __publicField(this, \"mirror\");\n __publicField(this, \"restoreHandlers\", []);\n this.mutationCb = options.mutationCb;\n this.scrollCb = options.scrollCb;\n this.bypassOptions = options.bypassOptions;\n this.mirror = options.mirror;\n this.init();\n }\n init() {\n this.reset();\n this.patchAttachShadow(Element, document);\n }\n addShadowRoot(shadowRoot2, doc) {\n if (!isNativeShadowDom(shadowRoot2)) return;\n if (this.shadowDoms.has(shadowRoot2)) return;\n this.shadowDoms.add(shadowRoot2);\n const observer = initMutationObserver(\n {\n ...this.bypassOptions,\n doc,\n mutationCb: this.mutationCb,\n mirror: this.mirror,\n shadowDomManager: this\n },\n shadowRoot2\n );\n this.restoreHandlers.push(() => observer.disconnect());\n this.restoreHandlers.push(\n initScrollObserver({\n ...this.bypassOptions,\n scrollCb: this.scrollCb,\n // https://gist.github.com/praveenpuglia/0832da687ed5a5d7a0907046c9ef1813\n // scroll is not allowed to pass the boundary, so we need to listen the shadow document\n doc: shadowRoot2,\n mirror: this.mirror\n })\n );\n setTimeout(() => {\n if (shadowRoot2.adoptedStyleSheets && shadowRoot2.adoptedStyleSheets.length > 0)\n this.bypassOptions.stylesheetManager.adoptStyleSheets(\n shadowRoot2.adoptedStyleSheets,\n this.mirror.getId(index.host(shadowRoot2))\n );\n this.restoreHandlers.push(\n initAdoptedStyleSheetObserver(\n {\n mirror: this.mirror,\n stylesheetManager: this.bypassOptions.stylesheetManager\n },\n shadowRoot2\n )\n );\n }, 0);\n }\n /**\n * Monkey patch 'attachShadow' of an IFrameElement to observe newly added shadow doms.\n */\n observeAttachShadow(iframeElement) {\n if (!iframeElement.contentWindow || !iframeElement.contentDocument) return;\n this.patchAttachShadow(\n iframeElement.contentWindow.Element,\n iframeElement.contentDocument\n );\n }\n /**\n * Patch 'attachShadow' to observe newly added shadow doms.\n */\n patchAttachShadow(element, doc) {\n const manager = this;\n this.restoreHandlers.push(\n patch(\n element.prototype,\n \"attachShadow\",\n function(original) {\n return function(option) {\n const sRoot = original.call(this, option);\n const shadowRootEl = index.shadowRoot(this);\n if (shadowRootEl && inDom(this))\n manager.addShadowRoot(shadowRootEl, doc);\n return sRoot;\n };\n }\n )\n );\n }\n reset() {\n this.restoreHandlers.forEach((handler) => {\n try {\n handler();\n } catch (e2) {\n }\n });\n this.restoreHandlers = [];\n this.shadowDoms = /* @__PURE__ */ new WeakSet();\n }\n}\nvar chars = \"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/\";\nvar lookup = typeof Uint8Array === \"undefined\" ? [] : new Uint8Array(256);\nfor (var i$1 = 0; i$1 < chars.length; i$1++) {\n lookup[chars.charCodeAt(i$1)] = i$1;\n}\nvar encode = function(arraybuffer) {\n var bytes = new Uint8Array(arraybuffer), i2, len = bytes.length, base64 = \"\";\n for (i2 = 0; i2 < len; i2 += 3) {\n base64 += chars[bytes[i2] >> 2];\n base64 += chars[(bytes[i2] & 3) << 4 | bytes[i2 + 1] >> 4];\n base64 += chars[(bytes[i2 + 1] & 15) << 2 | bytes[i2 + 2] >> 6];\n base64 += chars[bytes[i2 + 2] & 63];\n }\n if (len % 3 === 2) {\n base64 = base64.substring(0, base64.length - 1) + \"=\";\n } else if (len % 3 === 1) {\n base64 = base64.substring(0, base64.length - 2) + \"==\";\n }\n return base64;\n};\nvar decode = function(base64) {\n var bufferLength = base64.length * 0.75, len = base64.length, i2, p = 0, encoded1, encoded2, encoded3, encoded4;\n if (base64[base64.length - 1] === \"=\") {\n bufferLength--;\n if (base64[base64.length - 2] === \"=\") {\n bufferLength--;\n }\n }\n var arraybuffer = new ArrayBuffer(bufferLength), bytes = new Uint8Array(arraybuffer);\n for (i2 = 0; i2 < len; i2 += 4) {\n encoded1 = lookup[base64.charCodeAt(i2)];\n encoded2 = lookup[base64.charCodeAt(i2 + 1)];\n encoded3 = lookup[base64.charCodeAt(i2 + 2)];\n encoded4 = lookup[base64.charCodeAt(i2 + 3)];\n bytes[p++] = encoded1 << 2 | encoded2 >> 4;\n bytes[p++] = (encoded2 & 15) << 4 | encoded3 >> 2;\n bytes[p++] = (encoded3 & 3) << 6 | encoded4 & 63;\n }\n return arraybuffer;\n};\nconst canvasVarMap = /* @__PURE__ */ new Map();\nfunction variableListFor$1(ctx, ctor) {\n let contextMap = canvasVarMap.get(ctx);\n if (!contextMap) {\n contextMap = /* @__PURE__ */ new Map();\n canvasVarMap.set(ctx, contextMap);\n }\n if (!contextMap.has(ctor)) {\n contextMap.set(ctor, []);\n }\n return contextMap.get(ctor);\n}\nconst saveWebGLVar = (value, win, ctx) => {\n if (!value || !(isInstanceOfWebGLObject(value, win) || typeof value === \"object\"))\n return;\n const name = value.constructor.name;\n const list2 = variableListFor$1(ctx, name);\n let index2 = list2.indexOf(value);\n if (index2 === -1) {\n index2 = list2.length;\n list2.push(value);\n }\n return index2;\n};\nfunction serializeArg(value, win, ctx) {\n if (value instanceof Array) {\n return value.map((arg) => serializeArg(arg, win, ctx));\n } else if (value === null) {\n return value;\n } else if (value instanceof Float32Array || value instanceof Float64Array || value instanceof Int32Array || value instanceof Uint32Array || value instanceof Uint8Array || value instanceof Uint16Array || value instanceof Int16Array || value instanceof Int8Array || value instanceof Uint8ClampedArray) {\n const name = value.constructor.name;\n return {\n rr_type: name,\n args: [Object.values(value)]\n };\n } else if (\n // SharedArrayBuffer disabled on most browsers due to spectre.\n // More info: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/SharedArrayBuffer/SharedArrayBuffer\n // value instanceof SharedArrayBuffer ||\n value instanceof ArrayBuffer\n ) {\n const name = value.constructor.name;\n const base64 = encode(value);\n return {\n rr_type: name,\n base64\n };\n } else if (value instanceof DataView) {\n const name = value.constructor.name;\n return {\n rr_type: name,\n args: [\n serializeArg(value.buffer, win, ctx),\n value.byteOffset,\n value.byteLength\n ]\n };\n } else if (value instanceof HTMLImageElement) {\n const name = value.constructor.name;\n const { src } = value;\n return {\n rr_type: name,\n src\n };\n } else if (value instanceof HTMLCanvasElement) {\n const name = \"HTMLImageElement\";\n const src = value.toDataURL();\n return {\n rr_type: name,\n src\n };\n } else if (value instanceof ImageData) {\n const name = value.constructor.name;\n return {\n rr_type: name,\n args: [serializeArg(value.data, win, ctx), value.width, value.height]\n };\n } else if (isInstanceOfWebGLObject(value, win) || typeof value === \"object\") {\n const name = value.constructor.name;\n const index2 = saveWebGLVar(value, win, ctx);\n return {\n rr_type: name,\n index: index2\n };\n }\n return value;\n}\nconst serializeArgs = (args, win, ctx) => {\n return args.map((arg) => serializeArg(arg, win, ctx));\n};\nconst isInstanceOfWebGLObject = (value, win) => {\n const webGLConstructorNames = [\n \"WebGLActiveInfo\",\n \"WebGLBuffer\",\n \"WebGLFramebuffer\",\n \"WebGLProgram\",\n \"WebGLRenderbuffer\",\n \"WebGLShader\",\n \"WebGLShaderPrecisionFormat\",\n \"WebGLTexture\",\n \"WebGLUniformLocation\",\n \"WebGLVertexArrayObject\",\n // In old Chrome versions, value won't be an instanceof WebGLVertexArrayObject.\n \"WebGLVertexArrayObjectOES\"\n ];\n const supportedWebGLConstructorNames = webGLConstructorNames.filter(\n (name) => typeof win[name] === \"function\"\n );\n return Boolean(\n supportedWebGLConstructorNames.find(\n (name) => value instanceof win[name]\n )\n );\n};\nfunction initCanvas2DMutationObserver(cb, win, blockClass, blockSelector) {\n const handlers = [];\n const props2D = Object.getOwnPropertyNames(\n win.CanvasRenderingContext2D.prototype\n );\n for (const prop of props2D) {\n try {\n if (typeof win.CanvasRenderingContext2D.prototype[prop] !== \"function\") {\n continue;\n }\n const restoreHandler = patch(\n win.CanvasRenderingContext2D.prototype,\n prop,\n function(original) {\n return function(...args) {\n if (!isBlocked(this.canvas, blockClass, blockSelector, true)) {\n setTimeout(() => {\n const recordArgs = serializeArgs(args, win, this);\n cb(this.canvas, {\n type: CanvasContext[\"2D\"],\n property: prop,\n args: recordArgs\n });\n }, 0);\n }\n return original.apply(this, args);\n };\n }\n );\n handlers.push(restoreHandler);\n } catch {\n const hookHandler = hookSetter(\n win.CanvasRenderingContext2D.prototype,\n prop,\n {\n set(v2) {\n cb(this.canvas, {\n type: CanvasContext[\"2D\"],\n property: prop,\n args: [v2],\n setter: true\n });\n }\n }\n );\n handlers.push(hookHandler);\n }\n }\n return () => {\n handlers.forEach((h) => h());\n };\n}\nfunction getNormalizedContextName(contextType) {\n return contextType === \"experimental-webgl\" ? \"webgl\" : contextType;\n}\nfunction initCanvasContextObserver(win, blockClass, blockSelector, setPreserveDrawingBufferToTrue) {\n const handlers = [];\n try {\n const restoreHandler = patch(\n win.HTMLCanvasElement.prototype,\n \"getContext\",\n function(original) {\n return function(contextType, ...args) {\n if (!isBlocked(this, blockClass, blockSelector, true)) {\n const ctxName = getNormalizedContextName(contextType);\n if (!(\"__context\" in this)) this.__context = ctxName;\n if (setPreserveDrawingBufferToTrue && [\"webgl\", \"webgl2\"].includes(ctxName)) {\n if (args[0] && typeof args[0] === \"object\") {\n const contextAttributes = args[0];\n if (!contextAttributes.preserveDrawingBuffer) {\n contextAttributes.preserveDrawingBuffer = true;\n }\n } else {\n args.splice(0, 1, {\n preserveDrawingBuffer: true\n });\n }\n }\n }\n return original.apply(this, [contextType, ...args]);\n };\n }\n );\n handlers.push(restoreHandler);\n } catch {\n console.error(\"failed to patch HTMLCanvasElement.prototype.getContext\");\n }\n return () => {\n handlers.forEach((h) => h());\n };\n}\nfunction patchGLPrototype(prototype, type, cb, blockClass, blockSelector, win) {\n const handlers = [];\n const props = Object.getOwnPropertyNames(prototype);\n for (const prop of props) {\n if (\n //prop.startsWith('get') || // e.g. getProgramParameter, but too risky\n [\n \"isContextLost\",\n \"canvas\",\n \"drawingBufferWidth\",\n \"drawingBufferHeight\"\n ].includes(prop)\n ) {\n continue;\n }\n try {\n if (typeof prototype[prop] !== \"function\") {\n continue;\n }\n const restoreHandler = patch(\n prototype,\n prop,\n function(original) {\n return function(...args) {\n const result2 = original.apply(this, args);\n saveWebGLVar(result2, win, this);\n if (\"tagName\" in this.canvas && !isBlocked(this.canvas, blockClass, blockSelector, true)) {\n const recordArgs = serializeArgs(args, win, this);\n const mutation = {\n type,\n property: prop,\n args: recordArgs\n };\n cb(this.canvas, mutation);\n }\n return result2;\n };\n }\n );\n handlers.push(restoreHandler);\n } catch {\n const hookHandler = hookSetter(prototype, prop, {\n set(v2) {\n cb(this.canvas, {\n type,\n property: prop,\n args: [v2],\n setter: true\n });\n }\n });\n handlers.push(hookHandler);\n }\n }\n return handlers;\n}\nfunction initCanvasWebGLMutationObserver(cb, win, blockClass, blockSelector) {\n const handlers = [];\n handlers.push(\n ...patchGLPrototype(\n win.WebGLRenderingContext.prototype,\n CanvasContext.WebGL,\n cb,\n blockClass,\n blockSelector,\n win\n )\n );\n if (typeof win.WebGL2RenderingContext !== \"undefined\") {\n handlers.push(\n ...patchGLPrototype(\n win.WebGL2RenderingContext.prototype,\n CanvasContext.WebGL2,\n cb,\n blockClass,\n blockSelector,\n win\n )\n );\n }\n return () => {\n handlers.forEach((h) => h());\n };\n}\nconst encodedJs = \"KGZ1bmN0aW9uKCkgewogICJ1c2Ugc3RyaWN0IjsKICB2YXIgY2hhcnMgPSAiQUJDREVGR0hJSktMTU5PUFFSU1RVVldYWVphYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5ejAxMjM0NTY3ODkrLyI7CiAgdmFyIGxvb2t1cCA9IHR5cGVvZiBVaW50OEFycmF5ID09PSAidW5kZWZpbmVkIiA/IFtdIDogbmV3IFVpbnQ4QXJyYXkoMjU2KTsKICBmb3IgKHZhciBpID0gMDsgaSA8IGNoYXJzLmxlbmd0aDsgaSsrKSB7CiAgICBsb29rdXBbY2hhcnMuY2hhckNvZGVBdChpKV0gPSBpOwogIH0KICB2YXIgZW5jb2RlID0gZnVuY3Rpb24oYXJyYXlidWZmZXIpIHsKICAgIHZhciBieXRlcyA9IG5ldyBVaW50OEFycmF5KGFycmF5YnVmZmVyKSwgaTIsIGxlbiA9IGJ5dGVzLmxlbmd0aCwgYmFzZTY0ID0gIiI7CiAgICBmb3IgKGkyID0gMDsgaTIgPCBsZW47IGkyICs9IDMpIHsKICAgICAgYmFzZTY0ICs9IGNoYXJzW2J5dGVzW2kyXSA+PiAyXTsKICAgICAgYmFzZTY0ICs9IGNoYXJzWyhieXRlc1tpMl0gJiAzKSA8PCA0IHwgYnl0ZXNbaTIgKyAxXSA+PiA0XTsKICAgICAgYmFzZTY0ICs9IGNoYXJzWyhieXRlc1tpMiArIDFdICYgMTUpIDw8IDIgfCBieXRlc1tpMiArIDJdID4+IDZdOwogICAgICBiYXNlNjQgKz0gY2hhcnNbYnl0ZXNbaTIgKyAyXSAmIDYzXTsKICAgIH0KICAgIGlmIChsZW4gJSAzID09PSAyKSB7CiAgICAgIGJhc2U2NCA9IGJhc2U2NC5zdWJzdHJpbmcoMCwgYmFzZTY0Lmxlbmd0aCAtIDEpICsgIj0iOwogICAgfSBlbHNlIGlmIChsZW4gJSAzID09PSAxKSB7CiAgICAgIGJhc2U2NCA9IGJhc2U2NC5zdWJzdHJpbmcoMCwgYmFzZTY0Lmxlbmd0aCAtIDIpICsgIj09IjsKICAgIH0KICAgIHJldHVybiBiYXNlNjQ7CiAgfTsKICBjb25zdCBsYXN0QmxvYk1hcCA9IC8qIEBfX1BVUkVfXyAqLyBuZXcgTWFwKCk7CiAgY29uc3QgdHJhbnNwYXJlbnRCbG9iTWFwID0gLyogQF9fUFVSRV9fICovIG5ldyBNYXAoKTsKICBhc3luYyBmdW5jdGlvbiBnZXRUcmFuc3BhcmVudEJsb2JGb3Iod2lkdGgsIGhlaWdodCwgZGF0YVVSTE9wdGlvbnMpIHsKICAgIGNvbnN0IGlkID0gYCR7d2lkdGh9LSR7aGVpZ2h0fWA7CiAgICBpZiAoIk9mZnNjcmVlbkNhbnZhcyIgaW4gZ2xvYmFsVGhpcykgewogICAgICBpZiAodHJhbnNwYXJlbnRCbG9iTWFwLmhhcyhpZCkpIHJldHVybiB0cmFuc3BhcmVudEJsb2JNYXAuZ2V0KGlkKTsKICAgICAgY29uc3Qgb2Zmc2NyZWVuID0gbmV3IE9mZnNjcmVlbkNhbnZhcyh3aWR0aCwgaGVpZ2h0KTsKICAgICAgb2Zmc2NyZWVuLmdldENvbnRleHQoIjJkIik7CiAgICAgIGNvbnN0IGJsb2IgPSBhd2FpdCBvZmZzY3JlZW4uY29udmVydFRvQmxvYihkYXRhVVJMT3B0aW9ucyk7CiAgICAgIGNvbnN0IGFycmF5QnVmZmVyID0gYXdhaXQgYmxvYi5hcnJheUJ1ZmZlcigpOwogICAgICBjb25zdCBiYXNlNjQgPSBlbmNvZGUoYXJyYXlCdWZmZXIpOwogICAgICB0cmFuc3BhcmVudEJsb2JNYXAuc2V0KGlkLCBiYXNlNjQpOwogICAgICByZXR1cm4gYmFzZTY0OwogICAgfSBlbHNlIHsKICAgICAgcmV0dXJuICIiOwogICAgfQogIH0KICBjb25zdCB3b3JrZXIgPSBzZWxmOwogIHdvcmtlci5vbm1lc3NhZ2UgPSBhc3luYyBmdW5jdGlvbihlKSB7CiAgICBpZiAoIk9mZnNjcmVlbkNhbnZhcyIgaW4gZ2xvYmFsVGhpcykgewogICAgICBjb25zdCB7IGlkLCBiaXRtYXAsIHdpZHRoLCBoZWlnaHQsIGRhdGFVUkxPcHRpb25zIH0gPSBlLmRhdGE7CiAgICAgIGNvbnN0IHRyYW5zcGFyZW50QmFzZTY0ID0gZ2V0VHJhbnNwYXJlbnRCbG9iRm9yKAogICAgICAgIHdpZHRoLAogICAgICAgIGhlaWdodCwKICAgICAgICBkYXRhVVJMT3B0aW9ucwogICAgICApOwogICAgICBjb25zdCBvZmZzY3JlZW4gPSBuZXcgT2Zmc2NyZWVuQ2FudmFzKHdpZHRoLCBoZWlnaHQpOwogICAgICBjb25zdCBjdHggPSBvZmZzY3JlZW4uZ2V0Q29udGV4dCgiMmQiKTsKICAgICAgY3R4LmRyYXdJbWFnZShiaXRtYXAsIDAsIDApOwogICAgICBiaXRtYXAuY2xvc2UoKTsKICAgICAgY29uc3QgYmxvYiA9IGF3YWl0IG9mZnNjcmVlbi5jb252ZXJ0VG9CbG9iKGRhdGFVUkxPcHRpb25zKTsKICAgICAgY29uc3QgdHlwZSA9IGJsb2IudHlwZTsKICAgICAgY29uc3QgYXJyYXlCdWZmZXIgPSBhd2FpdCBibG9iLmFycmF5QnVmZmVyKCk7CiAgICAgIGNvbnN0IGJhc2U2NCA9IGVuY29kZShhcnJheUJ1ZmZlcik7CiAgICAgIGlmICghbGFzdEJsb2JNYXAuaGFzKGlkKSAmJiBhd2FpdCB0cmFuc3BhcmVudEJhc2U2NCA9PT0gYmFzZTY0KSB7CiAgICAgICAgbGFzdEJsb2JNYXAuc2V0KGlkLCBiYXNlNjQpOwogICAgICAgIHJldHVybiB3b3JrZXIucG9zdE1lc3NhZ2UoeyBpZCB9KTsKICAgICAgfQogICAgICBpZiAobGFzdEJsb2JNYXAuZ2V0KGlkKSA9PT0gYmFzZTY0KSByZXR1cm4gd29ya2VyLnBvc3RNZXNzYWdlKHsgaWQgfSk7CiAgICAgIHdvcmtlci5wb3N0TWVzc2FnZSh7CiAgICAgICAgaWQsCiAgICAgICAgdHlwZSwKICAgICAgICBiYXNlNjQsCiAgICAgICAgd2lkdGgsCiAgICAgICAgaGVpZ2h0CiAgICAgIH0pOwogICAgICBsYXN0QmxvYk1hcC5zZXQoaWQsIGJhc2U2NCk7CiAgICB9IGVsc2UgewogICAgICByZXR1cm4gd29ya2VyLnBvc3RNZXNzYWdlKHsgaWQ6IGUuZGF0YS5pZCB9KTsKICAgIH0KICB9Owp9KSgpOwovLyMgc291cmNlTWFwcGluZ1VSTD1pbWFnZS1iaXRtYXAtZGF0YS11cmwtd29ya2VyLUlKcEM3Z19iLmpzLm1hcAo=\";\nconst decodeBase64 = (base64) => Uint8Array.from(atob(base64), (c2) => c2.charCodeAt(0));\nconst blob = typeof window !== \"undefined\" && window.Blob && new Blob([decodeBase64(encodedJs)], { type: \"text/javascript;charset=utf-8\" });\nfunction WorkerWrapper(options) {\n let objURL;\n try {\n objURL = blob && (window.URL || window.webkitURL).createObjectURL(blob);\n if (!objURL) throw \"\";\n const worker = new Worker(objURL, {\n name: options == null ? void 0 : options.name\n });\n worker.addEventListener(\"error\", () => {\n (window.URL || window.webkitURL).revokeObjectURL(objURL);\n });\n return worker;\n } catch (e2) {\n return new Worker(\n \"data:text/javascript;base64,\" + encodedJs,\n {\n name: options == null ? void 0 : options.name\n }\n );\n } finally {\n objURL && (window.URL || window.webkitURL).revokeObjectURL(objURL);\n }\n}\nclass CanvasManager {\n constructor(options) {\n __publicField(this, \"pendingCanvasMutations\", /* @__PURE__ */ new Map());\n __publicField(this, \"rafStamps\", { latestId: 0, invokeId: null });\n __publicField(this, \"mirror\");\n __publicField(this, \"mutationCb\");\n __publicField(this, \"resetObservers\");\n __publicField(this, \"frozen\", false);\n __publicField(this, \"locked\", false);\n __publicField(this, \"processMutation\", (target, mutation) => {\n const newFrame = this.rafStamps.invokeId && this.rafStamps.latestId !== this.rafStamps.invokeId;\n if (newFrame || !this.rafStamps.invokeId)\n this.rafStamps.invokeId = this.rafStamps.latestId;\n if (!this.pendingCanvasMutations.has(target)) {\n this.pendingCanvasMutations.set(target, []);\n }\n this.pendingCanvasMutations.get(target).push(mutation);\n });\n const {\n sampling = \"all\",\n win,\n blockClass,\n blockSelector,\n recordCanvas,\n dataURLOptions\n } = options;\n this.mutationCb = options.mutationCb;\n this.mirror = options.mirror;\n if (recordCanvas && sampling === \"all\")\n this.initCanvasMutationObserver(win, blockClass, blockSelector);\n if (recordCanvas && typeof sampling === \"number\")\n this.initCanvasFPSObserver(sampling, win, blockClass, blockSelector, {\n dataURLOptions\n });\n }\n reset() {\n this.pendingCanvasMutations.clear();\n this.resetObservers && this.resetObservers();\n }\n freeze() {\n this.frozen = true;\n }\n unfreeze() {\n this.frozen = false;\n }\n lock() {\n this.locked = true;\n }\n unlock() {\n this.locked = false;\n }\n initCanvasFPSObserver(fps, win, blockClass, blockSelector, options) {\n const canvasContextReset = initCanvasContextObserver(\n win,\n blockClass,\n blockSelector,\n true\n );\n const snapshotInProgressMap = /* @__PURE__ */ new Map();\n const worker = new WorkerWrapper();\n worker.onmessage = (e2) => {\n const { id } = e2.data;\n snapshotInProgressMap.set(id, false);\n if (!(\"base64\" in e2.data)) return;\n const { base64, type, width, height } = e2.data;\n this.mutationCb({\n id,\n type: CanvasContext[\"2D\"],\n commands: [\n {\n property: \"clearRect\",\n // wipe canvas\n args: [0, 0, width, height]\n },\n {\n property: \"drawImage\",\n // draws (semi-transparent) image\n args: [\n {\n rr_type: \"ImageBitmap\",\n args: [\n {\n rr_type: \"Blob\",\n data: [{ rr_type: \"ArrayBuffer\", base64 }],\n type\n }\n ]\n },\n 0,\n 0\n ]\n }\n ]\n });\n };\n const timeBetweenSnapshots = 1e3 / fps;\n let lastSnapshotTime = 0;\n let rafId;\n const getCanvas = () => {\n const matchedCanvas = [];\n win.document.querySelectorAll(\"canvas\").forEach((canvas) => {\n if (!isBlocked(canvas, blockClass, blockSelector, true)) {\n matchedCanvas.push(canvas);\n }\n });\n return matchedCanvas;\n };\n const takeCanvasSnapshots = (timestamp) => {\n if (lastSnapshotTime && timestamp - lastSnapshotTime < timeBetweenSnapshots) {\n rafId = requestAnimationFrame(takeCanvasSnapshots);\n return;\n }\n lastSnapshotTime = timestamp;\n getCanvas().forEach(async (canvas) => {\n var _a2;\n const id = this.mirror.getId(canvas);\n if (snapshotInProgressMap.get(id)) return;\n if (canvas.width === 0 || canvas.height === 0) return;\n snapshotInProgressMap.set(id, true);\n if ([\"webgl\", \"webgl2\"].includes(canvas.__context)) {\n const context = canvas.getContext(canvas.__context);\n if (((_a2 = context == null ? void 0 : context.getContextAttributes()) == null ? void 0 : _a2.preserveDrawingBuffer) === false) {\n context.clear(context.COLOR_BUFFER_BIT);\n }\n }\n const bitmap = await createImageBitmap(canvas);\n worker.postMessage(\n {\n id,\n bitmap,\n width: canvas.width,\n height: canvas.height,\n dataURLOptions: options.dataURLOptions\n },\n [bitmap]\n );\n });\n rafId = requestAnimationFrame(takeCanvasSnapshots);\n };\n rafId = requestAnimationFrame(takeCanvasSnapshots);\n this.resetObservers = () => {\n canvasContextReset();\n cancelAnimationFrame(rafId);\n };\n }\n initCanvasMutationObserver(win, blockClass, blockSelector) {\n this.startRAFTimestamping();\n this.startPendingCanvasMutationFlusher();\n const canvasContextReset = initCanvasContextObserver(\n win,\n blockClass,\n blockSelector,\n false\n );\n const canvas2DReset = initCanvas2DMutationObserver(\n this.processMutation.bind(this),\n win,\n blockClass,\n blockSelector\n );\n const canvasWebGL1and2Reset = initCanvasWebGLMutationObserver(\n this.processMutation.bind(this),\n win,\n blockClass,\n blockSelector\n );\n this.resetObservers = () => {\n canvasContextReset();\n canvas2DReset();\n canvasWebGL1and2Reset();\n };\n }\n startPendingCanvasMutationFlusher() {\n requestAnimationFrame(() => this.flushPendingCanvasMutations());\n }\n startRAFTimestamping() {\n const setLatestRAFTimestamp = (timestamp) => {\n this.rafStamps.latestId = timestamp;\n requestAnimationFrame(setLatestRAFTimestamp);\n };\n requestAnimationFrame(setLatestRAFTimestamp);\n }\n flushPendingCanvasMutations() {\n this.pendingCanvasMutations.forEach(\n (_values, canvas) => {\n const id = this.mirror.getId(canvas);\n this.flushPendingCanvasMutationFor(canvas, id);\n }\n );\n requestAnimationFrame(() => this.flushPendingCanvasMutations());\n }\n flushPendingCanvasMutationFor(canvas, id) {\n if (this.frozen || this.locked) {\n return;\n }\n const valuesWithType = this.pendingCanvasMutations.get(canvas);\n if (!valuesWithType || id === -1) return;\n const values = valuesWithType.map((value) => {\n const { type: type2, ...rest } = value;\n return rest;\n });\n const { type } = valuesWithType[0];\n this.mutationCb({ id, type, commands: values });\n this.pendingCanvasMutations.delete(canvas);\n }\n}\nclass StylesheetManager {\n constructor(options) {\n __publicField(this, \"trackedLinkElements\", /* @__PURE__ */ new WeakSet());\n __publicField(this, \"mutationCb\");\n __publicField(this, \"adoptedStyleSheetCb\");\n __publicField(this, \"styleMirror\", new StyleSheetMirror());\n this.mutationCb = options.mutationCb;\n this.adoptedStyleSheetCb = options.adoptedStyleSheetCb;\n }\n attachLinkElement(linkEl, childSn) {\n if (\"_cssText\" in childSn.attributes)\n this.mutationCb({\n adds: [],\n removes: [],\n texts: [],\n attributes: [\n {\n id: childSn.id,\n attributes: childSn.attributes\n }\n ]\n });\n this.trackLinkElement(linkEl);\n }\n trackLinkElement(linkEl) {\n if (this.trackedLinkElements.has(linkEl)) return;\n this.trackedLinkElements.add(linkEl);\n this.trackStylesheetInLinkElement(linkEl);\n }\n adoptStyleSheets(sheets, hostId) {\n if (sheets.length === 0) return;\n const adoptedStyleSheetData = {\n id: hostId,\n styleIds: []\n };\n const styles = [];\n for (const sheet of sheets) {\n let styleId;\n if (!this.styleMirror.has(sheet)) {\n styleId = this.styleMirror.add(sheet);\n styles.push({\n styleId,\n rules: Array.from(sheet.rules || CSSRule, (r2, index2) => ({\n rule: stringifyRule(r2, sheet.href),\n index: index2\n }))\n });\n } else styleId = this.styleMirror.getId(sheet);\n adoptedStyleSheetData.styleIds.push(styleId);\n }\n if (styles.length > 0) adoptedStyleSheetData.styles = styles;\n this.adoptedStyleSheetCb(adoptedStyleSheetData);\n }\n reset() {\n this.styleMirror.reset();\n this.trackedLinkElements = /* @__PURE__ */ new WeakSet();\n }\n // TODO: take snapshot on stylesheet reload by applying event listener\n trackStylesheetInLinkElement(_linkEl) {\n }\n}\nclass ProcessedNodeManager {\n constructor() {\n __publicField(this, \"nodeMap\", /* @__PURE__ */ new WeakMap());\n __publicField(this, \"active\", false);\n }\n inOtherBuffer(node2, thisBuffer) {\n const buffers = this.nodeMap.get(node2);\n return buffers && Array.from(buffers).some((buffer) => buffer !== thisBuffer);\n }\n add(node2, buffer) {\n if (!this.active) {\n this.active = true;\n requestAnimationFrame(() => {\n this.nodeMap = /* @__PURE__ */ new WeakMap();\n this.active = false;\n });\n }\n this.nodeMap.set(node2, (this.nodeMap.get(node2) || /* @__PURE__ */ new Set()).add(buffer));\n }\n destroy() {\n }\n}\nlet wrappedEmit;\nlet takeFullSnapshot$1;\nlet canvasManager;\nlet recording = false;\ntry {\n if (Array.from([1], (x2) => x2 * 2)[0] !== 2) {\n const cleanFrame = document.createElement(\"iframe\");\n document.body.appendChild(cleanFrame);\n Array.from = ((_a = cleanFrame.contentWindow) == null ? void 0 : _a.Array.from) || Array.from;\n document.body.removeChild(cleanFrame);\n }\n} catch (err) {\n console.debug(\"Unable to override Array.from\", err);\n}\nconst mirror = createMirror$2();\nfunction record(options = {}) {\n const {\n emit,\n checkoutEveryNms,\n checkoutEveryNth,\n blockClass = \"rr-block\",\n blockSelector = null,\n ignoreClass = \"rr-ignore\",\n ignoreSelector = null,\n maskTextClass = \"rr-mask\",\n maskTextSelector = null,\n inlineStylesheet = true,\n maskAllInputs,\n maskInputOptions: _maskInputOptions,\n slimDOMOptions: _slimDOMOptions,\n maskInputFn,\n maskTextFn,\n hooks,\n packFn,\n sampling = {},\n dataURLOptions = {},\n mousemoveWait,\n recordDOM = true,\n recordCanvas = false,\n recordCrossOriginIframes = false,\n recordAfter = options.recordAfter === \"DOMContentLoaded\" ? options.recordAfter : \"load\",\n userTriggeredOnInput = false,\n collectFonts = false,\n inlineImages = false,\n plugins,\n keepIframeSrcFn = () => false,\n ignoreCSSAttributes = /* @__PURE__ */ new Set([]),\n errorHandler: errorHandler2\n } = options;\n registerErrorHandler(errorHandler2);\n const inEmittingFrame = recordCrossOriginIframes ? window.parent === window : true;\n let passEmitsToParent = false;\n if (!inEmittingFrame) {\n try {\n if (window.parent.document) {\n passEmitsToParent = false;\n }\n } catch (e2) {\n passEmitsToParent = true;\n }\n }\n if (inEmittingFrame && !emit) {\n throw new Error(\"emit function is required\");\n }\n if (!inEmittingFrame && !passEmitsToParent) {\n return () => {\n };\n }\n if (mousemoveWait !== void 0 && sampling.mousemove === void 0) {\n sampling.mousemove = mousemoveWait;\n }\n mirror.reset();\n const maskInputOptions = maskAllInputs === true ? {\n color: true,\n date: true,\n \"datetime-local\": true,\n email: true,\n month: true,\n number: true,\n range: true,\n search: true,\n tel: true,\n text: true,\n time: true,\n url: true,\n week: true,\n textarea: true,\n select: true,\n password: true\n } : _maskInputOptions !== void 0 ? _maskInputOptions : { password: true };\n const slimDOMOptions = _slimDOMOptions === true || _slimDOMOptions === \"all\" ? {\n script: true,\n comment: true,\n headFavicon: true,\n headWhitespace: true,\n headMetaSocial: true,\n headMetaRobots: true,\n headMetaHttpEquiv: true,\n headMetaVerification: true,\n // the following are off for slimDOMOptions === true,\n // as they destroy some (hidden) info:\n headMetaAuthorship: _slimDOMOptions === \"all\",\n headMetaDescKeywords: _slimDOMOptions === \"all\",\n headTitleMutations: _slimDOMOptions === \"all\"\n } : _slimDOMOptions ? _slimDOMOptions : {};\n polyfill$1();\n let lastFullSnapshotEvent;\n let incrementalSnapshotCount = 0;\n const eventProcessor = (e2) => {\n for (const plugin3 of plugins || []) {\n if (plugin3.eventProcessor) {\n e2 = plugin3.eventProcessor(e2);\n }\n }\n if (packFn && // Disable packing events which will be emitted to parent frames.\n !passEmitsToParent) {\n e2 = packFn(e2);\n }\n return e2;\n };\n wrappedEmit = (r2, isCheckout) => {\n var _a2;\n const e2 = r2;\n e2.timestamp = nowTimestamp();\n if (((_a2 = mutationBuffers[0]) == null ? void 0 : _a2.isFrozen()) && e2.type !== EventType.FullSnapshot && !(e2.type === EventType.IncrementalSnapshot && e2.data.source === IncrementalSource.Mutation)) {\n mutationBuffers.forEach((buf) => buf.unfreeze());\n }\n if (inEmittingFrame) {\n emit == null ? void 0 : emit(eventProcessor(e2), isCheckout);\n } else if (passEmitsToParent) {\n const message = {\n type: \"rrweb\",\n event: eventProcessor(e2),\n origin: window.location.origin,\n isCheckout\n };\n window.parent.postMessage(message, \"*\");\n }\n if (e2.type === EventType.FullSnapshot) {\n lastFullSnapshotEvent = e2;\n incrementalSnapshotCount = 0;\n } else if (e2.type === EventType.IncrementalSnapshot) {\n if (e2.data.source === IncrementalSource.Mutation && e2.data.isAttachIframe) {\n return;\n }\n incrementalSnapshotCount++;\n const exceedCount = checkoutEveryNth && incrementalSnapshotCount >= checkoutEveryNth;\n const exceedTime = checkoutEveryNms && e2.timestamp - lastFullSnapshotEvent.timestamp > checkoutEveryNms;\n if (exceedCount || exceedTime) {\n takeFullSnapshot$1(true);\n }\n }\n };\n const wrappedMutationEmit = (m) => {\n wrappedEmit({\n type: EventType.IncrementalSnapshot,\n data: {\n source: IncrementalSource.Mutation,\n ...m\n }\n });\n };\n const wrappedScrollEmit = (p) => wrappedEmit({\n type: EventType.IncrementalSnapshot,\n data: {\n source: IncrementalSource.Scroll,\n ...p\n }\n });\n const wrappedCanvasMutationEmit = (p) => wrappedEmit({\n type: EventType.IncrementalSnapshot,\n data: {\n source: IncrementalSource.CanvasMutation,\n ...p\n }\n });\n const wrappedAdoptedStyleSheetEmit = (a2) => wrappedEmit({\n type: EventType.IncrementalSnapshot,\n data: {\n source: IncrementalSource.AdoptedStyleSheet,\n ...a2\n }\n });\n const stylesheetManager = new StylesheetManager({\n mutationCb: wrappedMutationEmit,\n adoptedStyleSheetCb: wrappedAdoptedStyleSheetEmit\n });\n const iframeManager = new IframeManager({\n mirror,\n mutationCb: wrappedMutationEmit,\n stylesheetManager,\n recordCrossOriginIframes,\n wrappedEmit\n });\n for (const plugin3 of plugins || []) {\n if (plugin3.getMirror)\n plugin3.getMirror({\n nodeMirror: mirror,\n crossOriginIframeMirror: iframeManager.crossOriginIframeMirror,\n crossOriginIframeStyleMirror: iframeManager.crossOriginIframeStyleMirror\n });\n }\n const processedNodeManager = new ProcessedNodeManager();\n canvasManager = new CanvasManager({\n recordCanvas,\n mutationCb: wrappedCanvasMutationEmit,\n win: window,\n blockClass,\n blockSelector,\n mirror,\n sampling: sampling.canvas,\n dataURLOptions\n });\n const shadowDomManager = new ShadowDomManager({\n mutationCb: wrappedMutationEmit,\n scrollCb: wrappedScrollEmit,\n bypassOptions: {\n blockClass,\n blockSelector,\n maskTextClass,\n maskTextSelector,\n inlineStylesheet,\n maskInputOptions,\n dataURLOptions,\n maskTextFn,\n maskInputFn,\n recordCanvas,\n inlineImages,\n sampling,\n slimDOMOptions,\n iframeManager,\n stylesheetManager,\n canvasManager,\n keepIframeSrcFn,\n processedNodeManager\n },\n mirror\n });\n takeFullSnapshot$1 = (isCheckout = false) => {\n if (!recordDOM) {\n return;\n }\n wrappedEmit(\n {\n type: EventType.Meta,\n data: {\n href: window.location.href,\n width: getWindowWidth(),\n height: getWindowHeight()\n }\n },\n isCheckout\n );\n stylesheetManager.reset();\n shadowDomManager.init();\n mutationBuffers.forEach((buf) => buf.lock());\n const node2 = snapshot(document, {\n mirror,\n blockClass,\n blockSelector,\n maskTextClass,\n maskTextSelector,\n inlineStylesheet,\n maskAllInputs: maskInputOptions,\n maskTextFn,\n maskInputFn,\n slimDOM: slimDOMOptions,\n dataURLOptions,\n recordCanvas,\n inlineImages,\n onSerialize: (n2) => {\n if (isSerializedIframe(n2, mirror)) {\n iframeManager.addIframe(n2);\n }\n if (isSerializedStylesheet(n2, mirror)) {\n stylesheetManager.trackLinkElement(n2);\n }\n if (hasShadowRoot(n2)) {\n shadowDomManager.addShadowRoot(index.shadowRoot(n2), document);\n }\n },\n onIframeLoad: (iframe, childSn) => {\n iframeManager.attachIframe(iframe, childSn);\n shadowDomManager.observeAttachShadow(iframe);\n },\n onStylesheetLoad: (linkEl, childSn) => {\n stylesheetManager.attachLinkElement(linkEl, childSn);\n },\n keepIframeSrcFn\n });\n if (!node2) {\n return console.warn(\"Failed to snapshot the document\");\n }\n wrappedEmit(\n {\n type: EventType.FullSnapshot,\n data: {\n node: node2,\n initialOffset: getWindowScroll(window)\n }\n },\n isCheckout\n );\n mutationBuffers.forEach((buf) => buf.unlock());\n if (document.adoptedStyleSheets && document.adoptedStyleSheets.length > 0)\n stylesheetManager.adoptStyleSheets(\n document.adoptedStyleSheets,\n mirror.getId(document)\n );\n };\n try {\n const handlers = [];\n const observe = (doc) => {\n var _a2;\n return callbackWrapper(initObservers)(\n {\n mutationCb: wrappedMutationEmit,\n mousemoveCb: (positions, source) => wrappedEmit({\n type: EventType.IncrementalSnapshot,\n data: {\n source,\n positions\n }\n }),\n mouseInteractionCb: (d) => wrappedEmit({\n type: EventType.IncrementalSnapshot,\n data: {\n source: IncrementalSource.MouseInteraction,\n ...d\n }\n }),\n scrollCb: wrappedScrollEmit,\n viewportResizeCb: (d) => wrappedEmit({\n type: EventType.IncrementalSnapshot,\n data: {\n source: IncrementalSource.ViewportResize,\n ...d\n }\n }),\n inputCb: (v2) => wrappedEmit({\n type: EventType.IncrementalSnapshot,\n data: {\n source: IncrementalSource.Input,\n ...v2\n }\n }),\n mediaInteractionCb: (p) => wrappedEmit({\n type: EventType.IncrementalSnapshot,\n data: {\n source: IncrementalSource.MediaInteraction,\n ...p\n }\n }),\n styleSheetRuleCb: (r2) => wrappedEmit({\n type: EventType.IncrementalSnapshot,\n data: {\n source: IncrementalSource.StyleSheetRule,\n ...r2\n }\n }),\n styleDeclarationCb: (r2) => wrappedEmit({\n type: EventType.IncrementalSnapshot,\n data: {\n source: IncrementalSource.StyleDeclaration,\n ...r2\n }\n }),\n canvasMutationCb: wrappedCanvasMutationEmit,\n fontCb: (p) => wrappedEmit({\n type: EventType.IncrementalSnapshot,\n data: {\n source: IncrementalSource.Font,\n ...p\n }\n }),\n selectionCb: (p) => {\n wrappedEmit({\n type: EventType.IncrementalSnapshot,\n data: {\n source: IncrementalSource.Selection,\n ...p\n }\n });\n },\n customElementCb: (c2) => {\n wrappedEmit({\n type: EventType.IncrementalSnapshot,\n data: {\n source: IncrementalSource.CustomElement,\n ...c2\n }\n });\n },\n blockClass,\n ignoreClass,\n ignoreSelector,\n maskTextClass,\n maskTextSelector,\n maskInputOptions,\n inlineStylesheet,\n sampling,\n recordDOM,\n recordCanvas,\n inlineImages,\n userTriggeredOnInput,\n collectFonts,\n doc,\n maskInputFn,\n maskTextFn,\n keepIframeSrcFn,\n blockSelector,\n slimDOMOptions,\n dataURLOptions,\n mirror,\n iframeManager,\n stylesheetManager,\n shadowDomManager,\n processedNodeManager,\n canvasManager,\n ignoreCSSAttributes,\n plugins: ((_a2 = plugins == null ? void 0 : plugins.filter((p) => p.observer)) == null ? void 0 : _a2.map((p) => ({\n observer: p.observer,\n options: p.options,\n callback: (payload) => wrappedEmit({\n type: EventType.Plugin,\n data: {\n plugin: p.name,\n payload\n }\n })\n }))) || []\n },\n hooks\n );\n };\n iframeManager.addLoadListener((iframeEl) => {\n try {\n handlers.push(observe(iframeEl.contentDocument));\n } catch (error) {\n console.warn(error);\n }\n });\n const init = () => {\n takeFullSnapshot$1();\n handlers.push(observe(document));\n recording = true;\n };\n if (document.readyState === \"interactive\" || document.readyState === \"complete\") {\n init();\n } else {\n handlers.push(\n on(\"DOMContentLoaded\", () => {\n wrappedEmit({\n type: EventType.DomContentLoaded,\n data: {}\n });\n if (recordAfter === \"DOMContentLoaded\") init();\n })\n );\n handlers.push(\n on(\n \"load\",\n () => {\n wrappedEmit({\n type: EventType.Load,\n data: {}\n });\n if (recordAfter === \"load\") init();\n },\n window\n )\n );\n }\n return () => {\n handlers.forEach((h) => h());\n processedNodeManager.destroy();\n recording = false;\n unregisterErrorHandler();\n };\n } catch (error) {\n console.warn(error);\n }\n}\nrecord.addCustomEvent = (tag, payload) => {\n if (!recording) {\n throw new Error(\"please add custom event after start recording\");\n }\n wrappedEmit({\n type: EventType.Custom,\n data: {\n tag,\n payload\n }\n });\n};\nrecord.freezePage = () => {\n mutationBuffers.forEach((buf) => buf.freeze());\n};\nrecord.takeFullSnapshot = (isCheckout) => {\n if (!recording) {\n throw new Error(\"please take full snapshot after start recording\");\n }\n takeFullSnapshot$1(isCheckout);\n};\nrecord.mirror = mirror;\nfunction mitt$1(n2) {\n return { all: n2 = n2 || /* @__PURE__ */ new Map(), on: function(t2, e2) {\n var i2 = n2.get(t2);\n i2 ? i2.push(e2) : n2.set(t2, [e2]);\n }, off: function(t2, e2) {\n var i2 = n2.get(t2);\n i2 && (e2 ? i2.splice(i2.indexOf(e2) >>> 0, 1) : n2.set(t2, []));\n }, emit: function(t2, e2) {\n var i2 = n2.get(t2);\n i2 && i2.slice().map(function(n3) {\n n3(e2);\n }), (i2 = n2.get(\"*\")) && i2.slice().map(function(n3) {\n n3(t2, e2);\n });\n } };\n}\nconst mittProxy = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({\n __proto__: null,\n default: mitt$1\n}, Symbol.toStringTag, { value: \"Module\" }));\nfunction polyfill(w = window, d = document) {\n if (\"scrollBehavior\" in d.documentElement.style && w.__forceSmoothScrollPolyfill__ !== true) {\n return;\n }\n const Element2 = w.HTMLElement || w.Element;\n const SCROLL_TIME = 468;\n const original = {\n scroll: w.scroll || w.scrollTo,\n scrollBy: w.scrollBy,\n elementScroll: Element2.prototype.scroll || scrollElement,\n scrollIntoView: Element2.prototype.scrollIntoView\n };\n const now = w.performance && w.performance.now ? w.performance.now.bind(w.performance) : Date.now;\n function isMicrosoftBrowser(userAgent) {\n const userAgentPatterns = [\"MSIE \", \"Trident/\", \"Edge/\"];\n return new RegExp(userAgentPatterns.join(\"|\")).test(userAgent);\n }\n const ROUNDING_TOLERANCE = isMicrosoftBrowser(w.navigator.userAgent) ? 1 : 0;\n function scrollElement(x2, y) {\n this.scrollLeft = x2;\n this.scrollTop = y;\n }\n function ease(k) {\n return 0.5 * (1 - Math.cos(Math.PI * k));\n }\n function shouldBailOut(firstArg) {\n if (firstArg === null || typeof firstArg !== \"object\" || firstArg.behavior === void 0 || firstArg.behavior === \"auto\" || firstArg.behavior === \"instant\") {\n return true;\n }\n if (typeof firstArg === \"object\" && firstArg.behavior === \"smooth\") {\n return false;\n }\n throw new TypeError(\n \"behavior member of ScrollOptions \" + firstArg.behavior + \" is not a valid value for enumeration ScrollBehavior.\"\n );\n }\n function hasScrollableSpace(el, axis) {\n if (axis === \"Y\") {\n return el.clientHeight + ROUNDING_TOLERANCE < el.scrollHeight;\n }\n if (axis === \"X\") {\n return el.clientWidth + ROUNDING_TOLERANCE < el.scrollWidth;\n }\n }\n function canOverflow(el, axis) {\n const overflowValue = w.getComputedStyle(el, null)[\"overflow\" + axis];\n return overflowValue === \"auto\" || overflowValue === \"scroll\";\n }\n function isScrollable(el) {\n const isScrollableY = hasScrollableSpace(el, \"Y\") && canOverflow(el, \"Y\");\n const isScrollableX = hasScrollableSpace(el, \"X\") && canOverflow(el, \"X\");\n return isScrollableY || isScrollableX;\n }\n function findScrollableParent(el) {\n while (el !== d.body && isScrollable(el) === false) {\n el = el.parentNode || el.host;\n }\n return el;\n }\n function step(context) {\n const time = now();\n let value;\n let currentX;\n let currentY;\n let elapsed = (time - context.startTime) / SCROLL_TIME;\n elapsed = elapsed > 1 ? 1 : elapsed;\n value = ease(elapsed);\n currentX = context.startX + (context.x - context.startX) * value;\n currentY = context.startY + (context.y - context.startY) * value;\n context.method.call(context.scrollable, currentX, currentY);\n if (currentX !== context.x || currentY !== context.y) {\n w.requestAnimationFrame(step.bind(w, context));\n }\n }\n function smoothScroll(el, x2, y) {\n let scrollable;\n let startX;\n let startY;\n let method;\n const startTime = now();\n if (el === d.body) {\n scrollable = w;\n startX = w.scrollX || w.pageXOffset;\n startY = w.scrollY || w.pageYOffset;\n method = original.scroll;\n } else {\n scrollable = el;\n startX = el.scrollLeft;\n startY = el.scrollTop;\n method = scrollElement;\n }\n step({\n scrollable,\n method,\n startTime,\n startX,\n startY,\n x: x2,\n y\n });\n }\n w.scroll = w.scrollTo = function() {\n if (arguments[0] === void 0) {\n return;\n }\n if (shouldBailOut(arguments[0]) === true) {\n original.scroll.call(\n w,\n arguments[0].left !== void 0 ? arguments[0].left : typeof arguments[0] !== \"object\" ? arguments[0] : w.scrollX || w.pageXOffset,\n // use top prop, second argument if present or fallback to scrollY\n arguments[0].top !== void 0 ? arguments[0].top : arguments[1] !== void 0 ? arguments[1] : w.scrollY || w.pageYOffset\n );\n return;\n }\n smoothScroll.call(\n w,\n d.body,\n arguments[0].left !== void 0 ? ~~arguments[0].left : w.scrollX || w.pageXOffset,\n arguments[0].top !== void 0 ? ~~arguments[0].top : w.scrollY || w.pageYOffset\n );\n };\n w.scrollBy = function() {\n if (arguments[0] === void 0) {\n return;\n }\n if (shouldBailOut(arguments[0])) {\n original.scrollBy.call(\n w,\n arguments[0].left !== void 0 ? arguments[0].left : typeof arguments[0] !== \"object\" ? arguments[0] : 0,\n arguments[0].top !== void 0 ? arguments[0].top : arguments[1] !== void 0 ? arguments[1] : 0\n );\n return;\n }\n smoothScroll.call(\n w,\n d.body,\n ~~arguments[0].left + (w.scrollX || w.pageXOffset),\n ~~arguments[0].top + (w.scrollY || w.pageYOffset)\n );\n };\n Element2.prototype.scroll = Element2.prototype.scrollTo = function() {\n if (arguments[0] === void 0) {\n return;\n }\n if (shouldBailOut(arguments[0]) === true) {\n if (typeof arguments[0] === \"number\" && arguments[1] === void 0) {\n throw new SyntaxError(\"Value could not be converted\");\n }\n original.elementScroll.call(\n this,\n // use left prop, first number argument or fallback to scrollLeft\n arguments[0].left !== void 0 ? ~~arguments[0].left : typeof arguments[0] !== \"object\" ? ~~arguments[0] : this.scrollLeft,\n // use top prop, second argument or fallback to scrollTop\n arguments[0].top !== void 0 ? ~~arguments[0].top : arguments[1] !== void 0 ? ~~arguments[1] : this.scrollTop\n );\n return;\n }\n const left = arguments[0].left;\n const top = arguments[0].top;\n smoothScroll.call(\n this,\n this,\n typeof left === \"undefined\" ? this.scrollLeft : ~~left,\n typeof top === \"undefined\" ? this.scrollTop : ~~top\n );\n };\n Element2.prototype.scrollBy = function() {\n if (arguments[0] === void 0) {\n return;\n }\n if (shouldBailOut(arguments[0]) === true) {\n original.elementScroll.call(\n this,\n arguments[0].left !== void 0 ? ~~arguments[0].left + this.scrollLeft : ~~arguments[0] + this.scrollLeft,\n arguments[0].top !== void 0 ? ~~arguments[0].top + this.scrollTop : ~~arguments[1] + this.scrollTop\n );\n return;\n }\n this.scroll({\n left: ~~arguments[0].left + this.scrollLeft,\n top: ~~arguments[0].top + this.scrollTop,\n behavior: arguments[0].behavior\n });\n };\n Element2.prototype.scrollIntoView = function() {\n if (shouldBailOut(arguments[0]) === true) {\n original.scrollIntoView.call(\n this,\n arguments[0] === void 0 ? true : arguments[0]\n );\n return;\n }\n const scrollableParent = findScrollableParent(this);\n const parentRects = scrollableParent.getBoundingClientRect();\n const clientRects = this.getBoundingClientRect();\n if (scrollableParent !== d.body) {\n smoothScroll.call(\n this,\n scrollableParent,\n scrollableParent.scrollLeft + clientRects.left - parentRects.left,\n scrollableParent.scrollTop + clientRects.top - parentRects.top\n );\n if (w.getComputedStyle(scrollableParent).position !== \"fixed\") {\n w.scrollBy({\n left: parentRects.left,\n top: parentRects.top,\n behavior: \"smooth\"\n });\n }\n } else {\n w.scrollBy({\n left: clientRects.left,\n top: clientRects.top,\n behavior: \"smooth\"\n });\n }\n };\n}\nclass Timer {\n constructor(actions = [], config) {\n __publicField(this, \"timeOffset\", 0);\n __publicField(this, \"speed\");\n __publicField(this, \"actions\");\n __publicField(this, \"raf\", null);\n __publicField(this, \"lastTimestamp\");\n this.actions = actions;\n this.speed = config.speed;\n }\n /**\n * Add an action, possibly after the timer starts.\n */\n addAction(action) {\n const rafWasActive = this.raf === true;\n if (!this.actions.length || this.actions[this.actions.length - 1].delay <= action.delay) {\n this.actions.push(action);\n } else {\n const index2 = this.findActionIndex(action);\n this.actions.splice(index2, 0, action);\n }\n if (rafWasActive) {\n this.raf = requestAnimationFrame(this.rafCheck.bind(this));\n }\n }\n start() {\n this.timeOffset = 0;\n this.lastTimestamp = performance.now();\n this.raf = requestAnimationFrame(this.rafCheck.bind(this));\n }\n rafCheck() {\n const time = performance.now();\n this.timeOffset += (time - this.lastTimestamp) * this.speed;\n this.lastTimestamp = time;\n while (this.actions.length) {\n const action = this.actions[0];\n if (this.timeOffset >= action.delay) {\n this.actions.shift();\n action.doAction();\n } else {\n break;\n }\n }\n if (this.actions.length > 0) {\n this.raf = requestAnimationFrame(this.rafCheck.bind(this));\n } else {\n this.raf = true;\n }\n }\n clear() {\n if (this.raf) {\n if (this.raf !== true) {\n cancelAnimationFrame(this.raf);\n }\n this.raf = null;\n }\n this.actions.length = 0;\n }\n setSpeed(speed) {\n this.speed = speed;\n }\n isActive() {\n return this.raf !== null;\n }\n findActionIndex(action) {\n let start = 0;\n let end = this.actions.length - 1;\n while (start <= end) {\n const mid = Math.floor((start + end) / 2);\n if (this.actions[mid].delay < action.delay) {\n start = mid + 1;\n } else if (this.actions[mid].delay > action.delay) {\n end = mid - 1;\n } else {\n return mid + 1;\n }\n }\n return start;\n }\n}\nfunction addDelay(event, baselineTime) {\n if (event.type === EventType.IncrementalSnapshot && event.data.source === IncrementalSource.MouseMove && event.data.positions && event.data.positions.length) {\n const firstOffset = event.data.positions[0].timeOffset;\n const firstTimestamp = event.timestamp + firstOffset;\n event.delay = firstTimestamp - baselineTime;\n return firstTimestamp - baselineTime;\n }\n event.delay = event.timestamp - baselineTime;\n return event.delay;\n}\n/*! *****************************************************************************\nCopyright (c) Microsoft Corporation.\n\nPermission to use, copy, modify, and/or distribute this software for any\npurpose with or without fee is hereby granted.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\nPERFORMANCE OF THIS SOFTWARE.\n***************************************************************************** */\nfunction t(t2, n2) {\n var e2 = \"function\" == typeof Symbol && t2[Symbol.iterator];\n if (!e2) return t2;\n var r2, o2, i2 = e2.call(t2), a2 = [];\n try {\n for (; (void 0 === n2 || n2-- > 0) && !(r2 = i2.next()).done; ) a2.push(r2.value);\n } catch (t3) {\n o2 = { error: t3 };\n } finally {\n try {\n r2 && !r2.done && (e2 = i2.return) && e2.call(i2);\n } finally {\n if (o2) throw o2.error;\n }\n }\n return a2;\n}\nvar n;\n!function(t2) {\n t2[t2.NotStarted = 0] = \"NotStarted\", t2[t2.Running = 1] = \"Running\", t2[t2.Stopped = 2] = \"Stopped\";\n}(n || (n = {}));\nvar e = { type: \"xstate.init\" };\nfunction r(t2) {\n return void 0 === t2 ? [] : [].concat(t2);\n}\nfunction o(t2) {\n return { type: \"xstate.assign\", assignment: t2 };\n}\nfunction i(t2, n2) {\n return \"string\" == typeof (t2 = \"string\" == typeof t2 && n2 && n2[t2] ? n2[t2] : t2) ? { type: t2 } : \"function\" == typeof t2 ? { type: t2.name, exec: t2 } : t2;\n}\nfunction a(t2) {\n return function(n2) {\n return t2 === n2;\n };\n}\nfunction u(t2) {\n return \"string\" == typeof t2 ? { type: t2 } : t2;\n}\nfunction c(t2, n2) {\n return { value: t2, context: n2, actions: [], changed: false, matches: a(t2) };\n}\nfunction f(t2, n2, e2) {\n var r2 = n2, o2 = false;\n return [t2.filter(function(t3) {\n if (\"xstate.assign\" === t3.type) {\n o2 = true;\n var n3 = Object.assign({}, r2);\n return \"function\" == typeof t3.assignment ? n3 = t3.assignment(r2, e2) : Object.keys(t3.assignment).forEach(function(o3) {\n n3[o3] = \"function\" == typeof t3.assignment[o3] ? t3.assignment[o3](r2, e2) : t3.assignment[o3];\n }), r2 = n3, false;\n }\n return true;\n }), r2, o2];\n}\nfunction s(n2, o2) {\n void 0 === o2 && (o2 = {});\n var s2 = t(f(r(n2.states[n2.initial].entry).map(function(t2) {\n return i(t2, o2.actions);\n }), n2.context, e), 2), l2 = s2[0], v2 = s2[1], y = { config: n2, _options: o2, initialState: { value: n2.initial, actions: l2, context: v2, matches: a(n2.initial) }, transition: function(e2, o3) {\n var s3, l3, v3 = \"string\" == typeof e2 ? { value: e2, context: n2.context } : e2, p = v3.value, g = v3.context, d = u(o3), x2 = n2.states[p];\n if (x2.on) {\n var m = r(x2.on[d.type]);\n try {\n for (var h = function(t2) {\n var n3 = \"function\" == typeof Symbol && Symbol.iterator, e3 = n3 && t2[n3], r2 = 0;\n if (e3) return e3.call(t2);\n if (t2 && \"number\" == typeof t2.length) return { next: function() {\n return t2 && r2 >= t2.length && (t2 = void 0), { value: t2 && t2[r2++], done: !t2 };\n } };\n throw new TypeError(n3 ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\n }(m), b = h.next(); !b.done; b = h.next()) {\n var S = b.value;\n if (void 0 === S) return c(p, g);\n var w = \"string\" == typeof S ? { target: S } : S, j = w.target, E = w.actions, R = void 0 === E ? [] : E, N = w.cond, O = void 0 === N ? function() {\n return true;\n } : N, _ = void 0 === j, k = null != j ? j : p, T = n2.states[k];\n if (O(g, d)) {\n var q = t(f((_ ? r(R) : [].concat(x2.exit, R, T.entry).filter(function(t2) {\n return t2;\n })).map(function(t2) {\n return i(t2, y._options.actions);\n }), g, d), 3), z = q[0], A = q[1], B = q[2], C = null != j ? j : p;\n return { value: C, context: A, actions: z, changed: j !== p || z.length > 0 || B, matches: a(C) };\n }\n }\n } catch (t2) {\n s3 = { error: t2 };\n } finally {\n try {\n b && !b.done && (l3 = h.return) && l3.call(h);\n } finally {\n if (s3) throw s3.error;\n }\n }\n }\n return c(p, g);\n } };\n return y;\n}\nvar l = function(t2, n2) {\n return t2.actions.forEach(function(e2) {\n var r2 = e2.exec;\n return r2 && r2(t2.context, n2);\n });\n};\nfunction v(t2) {\n var r2 = t2.initialState, o2 = n.NotStarted, i2 = /* @__PURE__ */ new Set(), c2 = { _machine: t2, send: function(e2) {\n o2 === n.Running && (r2 = t2.transition(r2, e2), l(r2, u(e2)), i2.forEach(function(t3) {\n return t3(r2);\n }));\n }, subscribe: function(t3) {\n return i2.add(t3), t3(r2), { unsubscribe: function() {\n return i2.delete(t3);\n } };\n }, start: function(i3) {\n if (i3) {\n var u2 = \"object\" == typeof i3 ? i3 : { context: t2.config.context, value: i3 };\n r2 = { value: u2.value, actions: [], context: u2.context, matches: a(u2.value) };\n }\n return o2 = n.Running, l(r2, e), c2;\n }, stop: function() {\n return o2 = n.Stopped, i2.clear(), c2;\n }, get state() {\n return r2;\n }, get status() {\n return o2;\n } };\n return c2;\n}\nfunction discardPriorSnapshots(events, baselineTime) {\n for (let idx = events.length - 1; idx >= 0; idx--) {\n const event = events[idx];\n if (event.type === EventType.Meta) {\n if (event.timestamp <= baselineTime) {\n return events.slice(idx);\n }\n }\n }\n return events;\n}\nfunction createPlayerService(context, { getCastFn, applyEventsSynchronously, emitter }) {\n const playerMachine = s(\n {\n id: \"player\",\n context,\n initial: \"paused\",\n states: {\n playing: {\n on: {\n PAUSE: {\n target: \"paused\",\n actions: [\"pause\"]\n },\n CAST_EVENT: {\n target: \"playing\",\n actions: \"castEvent\"\n },\n END: {\n target: \"paused\",\n actions: [\"resetLastPlayedEvent\", \"pause\"]\n },\n ADD_EVENT: {\n target: \"playing\",\n actions: [\"addEvent\"]\n }\n }\n },\n paused: {\n on: {\n PLAY: {\n target: \"playing\",\n actions: [\"recordTimeOffset\", \"play\"]\n },\n CAST_EVENT: {\n target: \"paused\",\n actions: \"castEvent\"\n },\n TO_LIVE: {\n target: \"live\",\n actions: [\"startLive\"]\n },\n ADD_EVENT: {\n target: \"paused\",\n actions: [\"addEvent\"]\n }\n }\n },\n live: {\n on: {\n ADD_EVENT: {\n target: \"live\",\n actions: [\"addEvent\"]\n },\n CAST_EVENT: {\n target: \"live\",\n actions: [\"castEvent\"]\n }\n }\n }\n }\n },\n {\n actions: {\n castEvent: o({\n lastPlayedEvent: (ctx, event) => {\n if (event.type === \"CAST_EVENT\") {\n return event.payload.event;\n }\n return ctx.lastPlayedEvent;\n }\n }),\n recordTimeOffset: o((ctx, event) => {\n let timeOffset = ctx.timeOffset;\n if (\"payload\" in event && \"timeOffset\" in event.payload) {\n timeOffset = event.payload.timeOffset;\n }\n return {\n ...ctx,\n timeOffset,\n baselineTime: ctx.events[0].timestamp + timeOffset\n };\n }),\n play(ctx) {\n var _a2;\n const { timer, events, baselineTime, lastPlayedEvent } = ctx;\n timer.clear();\n for (const event of events) {\n addDelay(event, baselineTime);\n }\n const neededEvents = discardPriorSnapshots(events, baselineTime);\n let lastPlayedTimestamp = lastPlayedEvent == null ? void 0 : lastPlayedEvent.timestamp;\n if ((lastPlayedEvent == null ? void 0 : lastPlayedEvent.type) === EventType.IncrementalSnapshot && lastPlayedEvent.data.source === IncrementalSource.MouseMove) {\n lastPlayedTimestamp = lastPlayedEvent.timestamp + ((_a2 = lastPlayedEvent.data.positions[0]) == null ? void 0 : _a2.timeOffset);\n }\n if (baselineTime < (lastPlayedTimestamp || 0)) {\n emitter.emit(ReplayerEvents.PlayBack);\n }\n const syncEvents = new Array();\n for (const event of neededEvents) {\n if (lastPlayedTimestamp && lastPlayedTimestamp < baselineTime && (event.timestamp <= lastPlayedTimestamp || event === lastPlayedEvent)) {\n continue;\n }\n if (event.timestamp < baselineTime) {\n syncEvents.push(event);\n } else {\n const castFn = getCastFn(event, false);\n timer.addAction({\n doAction: () => {\n castFn();\n },\n delay: event.delay\n });\n }\n }\n applyEventsSynchronously(syncEvents);\n emitter.emit(ReplayerEvents.Flush);\n timer.start();\n },\n pause(ctx) {\n ctx.timer.clear();\n },\n resetLastPlayedEvent: o((ctx) => {\n return {\n ...ctx,\n lastPlayedEvent: null\n };\n }),\n startLive: o({\n baselineTime: (ctx, event) => {\n ctx.timer.start();\n if (event.type === \"TO_LIVE\" && event.payload.baselineTime) {\n return event.payload.baselineTime;\n }\n return Date.now();\n }\n }),\n addEvent: o((ctx, machineEvent) => {\n const { baselineTime, timer, events } = ctx;\n if (machineEvent.type === \"ADD_EVENT\") {\n const { event } = machineEvent.payload;\n addDelay(event, baselineTime);\n let end = events.length - 1;\n if (!events[end] || events[end].timestamp <= event.timestamp) {\n events.push(event);\n } else {\n let insertionIndex = -1;\n let start = 0;\n while (start <= end) {\n const mid = Math.floor((start + end) / 2);\n if (events[mid].timestamp <= event.timestamp) {\n start = mid + 1;\n } else {\n end = mid - 1;\n }\n }\n if (insertionIndex === -1) {\n insertionIndex = start;\n }\n events.splice(insertionIndex, 0, event);\n }\n const isSync = event.timestamp < baselineTime;\n const castFn = getCastFn(event, isSync);\n if (isSync) {\n castFn();\n } else if (timer.isActive()) {\n timer.addAction({\n doAction: () => {\n castFn();\n },\n delay: event.delay\n });\n }\n }\n return { ...ctx, events };\n })\n }\n }\n );\n return v(playerMachine);\n}\nfunction createSpeedService(context) {\n const speedMachine = s(\n {\n id: \"speed\",\n context,\n initial: \"normal\",\n states: {\n normal: {\n on: {\n FAST_FORWARD: {\n target: \"skipping\",\n actions: [\"recordSpeed\", \"setSpeed\"]\n },\n SET_SPEED: {\n target: \"normal\",\n actions: [\"setSpeed\"]\n }\n }\n },\n skipping: {\n on: {\n BACK_TO_NORMAL: {\n target: \"normal\",\n actions: [\"restoreSpeed\"]\n },\n SET_SPEED: {\n target: \"normal\",\n actions: [\"setSpeed\"]\n }\n }\n }\n }\n },\n {\n actions: {\n setSpeed: (ctx, event) => {\n if (\"payload\" in event) {\n ctx.timer.setSpeed(event.payload.speed);\n }\n },\n recordSpeed: o({\n normalSpeed: (ctx) => ctx.timer.speed\n }),\n restoreSpeed: (ctx) => {\n ctx.timer.setSpeed(ctx.normalSpeed);\n }\n }\n }\n );\n return v(speedMachine);\n}\nconst rules = (blockClass) => [\n `.${blockClass} { background: currentColor }`,\n \"noscript { display: none !important; }\"\n];\nconst webGLVarMap = /* @__PURE__ */ new Map();\nfunction variableListFor(ctx, ctor) {\n let contextMap = webGLVarMap.get(ctx);\n if (!contextMap) {\n contextMap = /* @__PURE__ */ new Map();\n webGLVarMap.set(ctx, contextMap);\n }\n if (!contextMap.has(ctor)) {\n contextMap.set(ctor, []);\n }\n return contextMap.get(ctor);\n}\nfunction deserializeArg(imageMap, ctx, preload) {\n return async (arg) => {\n if (arg && typeof arg === \"object\" && \"rr_type\" in arg) {\n if (preload) preload.isUnchanged = false;\n if (arg.rr_type === \"ImageBitmap\" && \"args\" in arg) {\n const args = await deserializeArg(imageMap, ctx, preload)(arg.args);\n return await createImageBitmap.apply(null, args);\n } else if (\"index\" in arg) {\n if (preload || ctx === null) return arg;\n const { rr_type: name, index: index2 } = arg;\n return variableListFor(ctx, name)[index2];\n } else if (\"args\" in arg) {\n const { rr_type: name, args } = arg;\n const ctor = window[name];\n return new ctor(\n ...await Promise.all(\n args.map(deserializeArg(imageMap, ctx, preload))\n )\n );\n } else if (\"base64\" in arg) {\n return decode(arg.base64);\n } else if (\"src\" in arg) {\n const image = imageMap.get(arg.src);\n if (image) {\n return image;\n } else {\n const image2 = new Image();\n image2.src = arg.src;\n imageMap.set(arg.src, image2);\n return image2;\n }\n } else if (\"data\" in arg && arg.rr_type === \"Blob\") {\n const blobContents = await Promise.all(\n arg.data.map(deserializeArg(imageMap, ctx, preload))\n );\n const blob2 = new Blob(blobContents, {\n type: arg.type\n });\n return blob2;\n }\n } else if (Array.isArray(arg)) {\n const result2 = await Promise.all(\n arg.map(deserializeArg(imageMap, ctx, preload))\n );\n return result2;\n }\n return arg;\n };\n}\nfunction getContext(target, type) {\n try {\n if (type === CanvasContext.WebGL) {\n return target.getContext(\"webgl\") || target.getContext(\"experimental-webgl\");\n }\n return target.getContext(\"webgl2\");\n } catch (e2) {\n return null;\n }\n}\nconst WebGLVariableConstructorsNames = [\n \"WebGLActiveInfo\",\n \"WebGLBuffer\",\n \"WebGLFramebuffer\",\n \"WebGLProgram\",\n \"WebGLRenderbuffer\",\n \"WebGLShader\",\n \"WebGLShaderPrecisionFormat\",\n \"WebGLTexture\",\n \"WebGLUniformLocation\",\n \"WebGLVertexArrayObject\"\n];\nfunction saveToWebGLVarMap(ctx, result2) {\n if (!(result2 == null ? void 0 : result2.constructor)) return;\n const { name } = result2.constructor;\n if (!WebGLVariableConstructorsNames.includes(name)) return;\n const variables = variableListFor(ctx, name);\n if (!variables.includes(result2)) variables.push(result2);\n}\nasync function webglMutation({\n mutation,\n target,\n type,\n imageMap,\n errorHandler: errorHandler2\n}) {\n try {\n const ctx = getContext(target, type);\n if (!ctx) return;\n if (mutation.setter) {\n ctx[mutation.property] = mutation.args[0];\n return;\n }\n const original = ctx[mutation.property];\n const args = await Promise.all(\n mutation.args.map(deserializeArg(imageMap, ctx))\n );\n const result2 = original.apply(ctx, args);\n saveToWebGLVarMap(ctx, result2);\n const debugMode = false;\n if (debugMode) ;\n } catch (error) {\n errorHandler2(mutation, error);\n }\n}\nasync function canvasMutation$1({\n event,\n mutations,\n target,\n imageMap,\n errorHandler: errorHandler2\n}) {\n const ctx = target.getContext(\"2d\");\n if (!ctx) {\n errorHandler2(mutations[0], new Error(\"Canvas context is null\"));\n return;\n }\n const mutationArgsPromises = mutations.map(\n async (mutation) => {\n return Promise.all(mutation.args.map(deserializeArg(imageMap, ctx)));\n }\n );\n const args = await Promise.all(mutationArgsPromises);\n args.forEach((args2, index2) => {\n const mutation = mutations[index2];\n try {\n if (mutation.setter) {\n ctx[mutation.property] = mutation.args[0];\n return;\n }\n const original = ctx[mutation.property];\n if (mutation.property === \"drawImage\" && typeof mutation.args[0] === \"string\") {\n imageMap.get(event);\n original.apply(ctx, mutation.args);\n } else {\n original.apply(ctx, args2);\n }\n } catch (error) {\n errorHandler2(mutation, error);\n }\n return;\n });\n}\nasync function canvasMutation({\n event,\n mutation,\n target,\n imageMap,\n canvasEventMap,\n errorHandler: errorHandler2\n}) {\n try {\n const precomputedMutation = canvasEventMap.get(event) || mutation;\n const commands = \"commands\" in precomputedMutation ? precomputedMutation.commands : [precomputedMutation];\n if ([CanvasContext.WebGL, CanvasContext.WebGL2].includes(mutation.type)) {\n for (let i2 = 0; i2 < commands.length; i2++) {\n const command = commands[i2];\n await webglMutation({\n mutation: command,\n type: mutation.type,\n target,\n imageMap,\n errorHandler: errorHandler2\n });\n }\n return;\n }\n await canvasMutation$1({\n event,\n mutations: commands,\n target,\n imageMap,\n errorHandler: errorHandler2\n });\n } catch (error) {\n errorHandler2(mutation, error);\n }\n}\nclass MediaManager {\n constructor(options) {\n __publicField(this, \"mediaMap\", /* @__PURE__ */ new Map());\n __publicField(this, \"warn\");\n __publicField(this, \"service\");\n __publicField(this, \"speedService\");\n __publicField(this, \"emitter\");\n __publicField(this, \"getCurrentTime\");\n __publicField(this, \"metadataCallbackMap\", /* @__PURE__ */ new Map());\n this.warn = options.warn;\n this.service = options.service;\n this.speedService = options.speedService;\n this.emitter = options.emitter;\n this.getCurrentTime = options.getCurrentTime;\n this.emitter.on(ReplayerEvents.Start, this.start.bind(this));\n this.emitter.on(ReplayerEvents.SkipStart, this.start.bind(this));\n this.emitter.on(ReplayerEvents.Pause, this.pause.bind(this));\n this.emitter.on(ReplayerEvents.Finish, this.pause.bind(this));\n this.speedService.subscribe(() => {\n this.syncAllMediaElements();\n });\n }\n syncAllMediaElements(options = { pause: false }) {\n this.mediaMap.forEach((_mediaState, target) => {\n this.syncTargetWithState(target);\n if (options.pause) {\n target.pause();\n }\n });\n }\n start() {\n this.syncAllMediaElements();\n }\n pause() {\n this.syncAllMediaElements({ pause: true });\n }\n seekTo({\n time,\n target,\n mediaState\n }) {\n if (mediaState.isPlaying) {\n const differenceBetweenCurrentTimeAndMediaMutationTimestamp = time - mediaState.lastInteractionTimeOffset;\n const mediaPlaybackOffset = differenceBetweenCurrentTimeAndMediaMutationTimestamp / 1e3 * mediaState.playbackRate;\n const duration = \"duration\" in target && target.duration;\n if (Number.isNaN(duration)) {\n this.waitForMetadata(target);\n return;\n }\n let seekToTime = mediaState.currentTimeAtLastInteraction + mediaPlaybackOffset;\n if (target.loop && // RRMediaElement doesn't have a duration property\n duration !== false) {\n seekToTime = seekToTime % duration;\n }\n target.currentTime = seekToTime;\n } else {\n target.pause();\n target.currentTime = mediaState.currentTimeAtLastInteraction;\n }\n }\n waitForMetadata(target) {\n if (this.metadataCallbackMap.has(target)) return;\n if (!(\"addEventListener\" in target)) return;\n const onLoadedMetadata = () => {\n this.metadataCallbackMap.delete(target);\n const mediaState = this.mediaMap.get(target);\n if (!mediaState) return;\n this.seekTo({\n time: this.getCurrentTime(),\n target,\n mediaState\n });\n };\n this.metadataCallbackMap.set(target, onLoadedMetadata);\n target.addEventListener(\"loadedmetadata\", onLoadedMetadata, {\n once: true\n });\n }\n getMediaStateFromMutation({\n target,\n timeOffset,\n mutation\n }) {\n const lastState = this.mediaMap.get(target);\n const { type, playbackRate, currentTime, muted, volume, loop } = mutation;\n const isPlaying = type === MediaInteractions.Play || type !== MediaInteractions.Pause && ((lastState == null ? void 0 : lastState.isPlaying) || target.getAttribute(\"autoplay\") !== null);\n const mediaState = {\n isPlaying,\n currentTimeAtLastInteraction: currentTime ?? (lastState == null ? void 0 : lastState.currentTimeAtLastInteraction) ?? 0,\n lastInteractionTimeOffset: timeOffset,\n playbackRate: playbackRate ?? (lastState == null ? void 0 : lastState.playbackRate) ?? 1,\n volume: volume ?? (lastState == null ? void 0 : lastState.volume) ?? 1,\n muted: muted ?? (lastState == null ? void 0 : lastState.muted) ?? target.getAttribute(\"muted\") === null,\n loop: loop ?? (lastState == null ? void 0 : lastState.loop) ?? target.getAttribute(\"loop\") === null\n };\n return mediaState;\n }\n syncTargetWithState(target) {\n const mediaState = this.mediaMap.get(target);\n if (!mediaState) return;\n const { muted, loop, volume, isPlaying } = mediaState;\n const playerIsPaused = this.service.state.matches(\"paused\");\n const playbackRate = mediaState.playbackRate * this.speedService.state.context.timer.speed;\n try {\n this.seekTo({\n time: this.getCurrentTime(),\n target,\n mediaState\n });\n if (target.volume !== volume) {\n target.volume = volume;\n }\n target.muted = muted;\n target.loop = loop;\n if (target.playbackRate !== playbackRate) {\n target.playbackRate = playbackRate;\n }\n if (isPlaying && !playerIsPaused) {\n void target.play();\n } else {\n target.pause();\n }\n } catch (error) {\n this.warn(\n // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access, @typescript-eslint/restrict-template-expressions\n `Failed to replay media interactions: ${error.message || error}`\n );\n }\n }\n addMediaElements(node2, timeOffset, mirror2) {\n if (![\"AUDIO\", \"VIDEO\"].includes(node2.nodeName)) return;\n const target = node2;\n const serializedNode = mirror2.getMeta(target);\n if (!serializedNode || !(\"attributes\" in serializedNode)) return;\n const playerIsPaused = this.service.state.matches(\"paused\");\n const mediaAttributes = serializedNode.attributes;\n let isPlaying = false;\n if (mediaAttributes.rr_mediaState) {\n isPlaying = mediaAttributes.rr_mediaState === \"played\";\n } else {\n isPlaying = target.getAttribute(\"autoplay\") !== null;\n }\n if (isPlaying && playerIsPaused) target.pause();\n let playbackRate = 1;\n if (typeof mediaAttributes.rr_mediaPlaybackRate === \"number\") {\n playbackRate = mediaAttributes.rr_mediaPlaybackRate;\n }\n let muted = false;\n if (typeof mediaAttributes.rr_mediaMuted === \"boolean\") {\n muted = mediaAttributes.rr_mediaMuted;\n } else {\n muted = target.getAttribute(\"muted\") !== null;\n }\n let loop = false;\n if (typeof mediaAttributes.rr_mediaLoop === \"boolean\") {\n loop = mediaAttributes.rr_mediaLoop;\n } else {\n loop = target.getAttribute(\"loop\") !== null;\n }\n let volume = 1;\n if (typeof mediaAttributes.rr_mediaVolume === \"number\") {\n volume = mediaAttributes.rr_mediaVolume;\n }\n let currentTimeAtLastInteraction = 0;\n if (typeof mediaAttributes.rr_mediaCurrentTime === \"number\") {\n currentTimeAtLastInteraction = mediaAttributes.rr_mediaCurrentTime;\n }\n this.mediaMap.set(target, {\n isPlaying,\n currentTimeAtLastInteraction,\n lastInteractionTimeOffset: timeOffset,\n playbackRate,\n volume,\n muted,\n loop\n });\n this.syncTargetWithState(target);\n }\n mediaMutation({\n target,\n timeOffset,\n mutation\n }) {\n this.mediaMap.set(\n target,\n this.getMediaStateFromMutation({\n target,\n timeOffset,\n mutation\n })\n );\n this.syncTargetWithState(target);\n }\n isSupportedMediaElement(node2) {\n return [\"AUDIO\", \"VIDEO\"].includes(node2.nodeName);\n }\n reset() {\n this.mediaMap.clear();\n }\n}\nfunction applyDialogToTopLevel(node2, attributeMutation) {\n if (node2.nodeName !== \"DIALOG\" || node2 instanceof BaseRRNode) return;\n const dialog = node2;\n const oldIsOpen = dialog.open;\n const oldIsModalState = oldIsOpen && dialog.matches(\"dialog:modal\");\n const rrOpenMode = dialog.getAttribute(\"rr_open_mode\");\n const newIsOpen = typeof (attributeMutation == null ? void 0 : attributeMutation.attributes.open) === \"string\" || typeof dialog.getAttribute(\"open\") === \"string\";\n const newIsModalState = rrOpenMode === \"modal\";\n const newIsNonModalState = rrOpenMode === \"non-modal\";\n const modalStateChanged = oldIsModalState && newIsNonModalState || !oldIsModalState && newIsModalState;\n if (oldIsOpen && !modalStateChanged) return;\n if (!dialog.isConnected) {\n console.warn(\"dialog is not attached to the dom\", dialog);\n return;\n }\n if (oldIsOpen) dialog.close();\n if (!newIsOpen) return;\n if (newIsModalState) dialog.showModal();\n else dialog.show();\n}\nfunction removeDialogFromTopLevel(node2, attributeMutation) {\n if (node2.nodeName !== \"DIALOG\" || node2 instanceof BaseRRNode) return;\n const dialog = node2;\n if (!dialog.isConnected) {\n console.warn(\"dialog is not attached to the dom\", dialog);\n return;\n }\n if (attributeMutation.attributes.open === null) {\n dialog.removeAttribute(\"open\");\n dialog.removeAttribute(\"rr_open_mode\");\n }\n}\nconst SKIP_TIME_INTERVAL = 5 * 1e3;\nconst mitt = mitt$1 || mittProxy;\nconst REPLAY_CONSOLE_PREFIX = \"[replayer]\";\nconst defaultMouseTailConfig = {\n duration: 500,\n lineCap: \"round\",\n lineWidth: 3,\n strokeStyle: \"red\"\n};\nfunction indicatesTouchDevice(e2) {\n return e2.type == EventType.IncrementalSnapshot && (e2.data.source == IncrementalSource.TouchMove || e2.data.source == IncrementalSource.MouseInteraction && e2.data.type == MouseInteractions.TouchStart);\n}\nclass Replayer {\n constructor(events, config) {\n __publicField(this, \"wrapper\");\n __publicField(this, \"iframe\");\n __publicField(this, \"service\");\n __publicField(this, \"speedService\");\n __publicField(this, \"config\");\n // In the fast-forward process, if the virtual-dom optimization is used, this flag value is true.\n __publicField(this, \"usingVirtualDom\", false);\n __publicField(this, \"virtualDom\", new RRDocument());\n __publicField(this, \"mouse\");\n __publicField(this, \"mouseTail\", null);\n __publicField(this, \"tailPositions\", []);\n __publicField(this, \"emitter\", mitt());\n __publicField(this, \"nextUserInteractionEvent\");\n __publicField(this, \"legacy_missingNodeRetryMap\", {});\n // The replayer uses the cache to speed up replay and scrubbing.\n __publicField(this, \"cache\", createCache());\n __publicField(this, \"imageMap\", /* @__PURE__ */ new Map());\n __publicField(this, \"canvasEventMap\", /* @__PURE__ */ new Map());\n __publicField(this, \"mirror\", createMirror$2());\n // Used to track StyleSheetObjects adopted on multiple document hosts.\n __publicField(this, \"styleMirror\", new StyleSheetMirror());\n // Used to track video & audio elements, and keep them in sync with general playback.\n __publicField(this, \"mediaManager\");\n __publicField(this, \"firstFullSnapshot\", null);\n __publicField(this, \"newDocumentQueue\", []);\n __publicField(this, \"mousePos\", null);\n __publicField(this, \"touchActive\", null);\n __publicField(this, \"lastMouseDownEvent\", null);\n // Keep the rootNode of the last hovered element. So when hovering a new element, we can remove the last hovered element's :hover style.\n __publicField(this, \"lastHoveredRootNode\");\n // In the fast-forward mode, only the last selection data needs to be applied.\n __publicField(this, \"lastSelectionData\", null);\n // In the fast-forward mode using VirtualDom optimization, all stylesheetRule, and styleDeclaration events on constructed StyleSheets will be delayed to get applied until the flush stage.\n __publicField(this, \"constructedStyleMutations\", []);\n // Similar to the reason for constructedStyleMutations.\n __publicField(this, \"adoptedStyleSheets\", []);\n __publicField(this, \"handleResize\", (dimension) => {\n this.iframe.style.display = \"inherit\";\n for (const el of [this.mouseTail, this.iframe]) {\n if (!el) {\n continue;\n }\n el.setAttribute(\"width\", String(dimension.width));\n el.setAttribute(\"height\", String(dimension.height));\n }\n });\n __publicField(this, \"applyEventsSynchronously\", (events) => {\n for (const event of events) {\n switch (event.type) {\n case EventType.DomContentLoaded:\n case EventType.Load:\n case EventType.Custom:\n continue;\n case EventType.FullSnapshot:\n case EventType.Meta:\n case EventType.Plugin:\n case EventType.IncrementalSnapshot:\n break;\n }\n const castFn = this.getCastFn(event, true);\n castFn();\n }\n });\n __publicField(this, \"getCastFn\", (event, isSync = false) => {\n let castFn;\n switch (event.type) {\n case EventType.DomContentLoaded:\n case EventType.Load:\n break;\n case EventType.Custom:\n castFn = () => {\n this.emitter.emit(ReplayerEvents.CustomEvent, event);\n };\n break;\n case EventType.Meta:\n castFn = () => this.emitter.emit(ReplayerEvents.Resize, {\n width: event.data.width,\n height: event.data.height\n });\n break;\n case EventType.FullSnapshot:\n castFn = () => {\n var _a2;\n if (this.firstFullSnapshot) {\n if (this.firstFullSnapshot === event) {\n this.firstFullSnapshot = true;\n return;\n }\n } else {\n this.firstFullSnapshot = true;\n }\n this.mediaManager.reset();\n this.styleMirror.reset();\n this.rebuildFullSnapshot(event, isSync);\n (_a2 = this.iframe.contentWindow) == null ? void 0 : _a2.scrollTo(event.data.initialOffset);\n };\n break;\n case EventType.IncrementalSnapshot:\n castFn = () => {\n this.applyIncremental(event, isSync);\n if (isSync) {\n return;\n }\n if (event === this.nextUserInteractionEvent) {\n this.nextUserInteractionEvent = null;\n this.backToNormal();\n }\n if (this.config.skipInactive && !this.nextUserInteractionEvent) {\n for (const _event of this.service.state.context.events) {\n if (_event.timestamp <= event.timestamp) {\n continue;\n }\n if (this.isUserInteraction(_event)) {\n if (\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n _event.delay - event.delay > this.config.inactivePeriodThreshold * this.speedService.state.context.timer.speed\n ) {\n this.nextUserInteractionEvent = _event;\n }\n break;\n }\n }\n if (this.nextUserInteractionEvent) {\n const skipTime = (\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n this.nextUserInteractionEvent.delay - event.delay\n );\n const payload = {\n speed: Math.min(\n Math.round(skipTime / SKIP_TIME_INTERVAL),\n this.config.maxSpeed\n )\n };\n this.speedService.send({ type: \"FAST_FORWARD\", payload });\n this.emitter.emit(ReplayerEvents.SkipStart, payload);\n }\n }\n };\n break;\n }\n const wrappedCastFn = () => {\n if (castFn) {\n castFn();\n }\n for (const plugin3 of this.config.plugins || []) {\n if (plugin3.handler) plugin3.handler(event, isSync, { replayer: this });\n }\n this.service.send({ type: \"CAST_EVENT\", payload: { event } });\n const last_index = this.service.state.context.events.length - 1;\n if (!this.config.liveMode && event === this.service.state.context.events[last_index]) {\n const finish = () => {\n if (last_index < this.service.state.context.events.length - 1) {\n return;\n }\n this.backToNormal();\n this.service.send(\"END\");\n this.emitter.emit(ReplayerEvents.Finish);\n };\n let finish_buffer = 50;\n if (event.type === EventType.IncrementalSnapshot && event.data.source === IncrementalSource.MouseMove && event.data.positions.length) {\n finish_buffer += Math.max(0, -event.data.positions[0].timeOffset);\n }\n setTimeout(finish, finish_buffer);\n }\n this.emitter.emit(ReplayerEvents.EventCast, event);\n };\n return wrappedCastFn;\n });\n if (!(config == null ? void 0 : config.liveMode) && events.length < 2) {\n throw new Error(\"Replayer need at least 2 events.\");\n }\n const defaultConfig = {\n speed: 1,\n maxSpeed: 360,\n root: document.body,\n loadTimeout: 0,\n skipInactive: false,\n inactivePeriodThreshold: 10 * 1e3,\n showWarning: true,\n showDebug: false,\n blockClass: \"rr-block\",\n liveMode: false,\n insertStyleRules: [],\n triggerFocus: true,\n UNSAFE_replayCanvas: false,\n pauseAnimation: true,\n mouseTail: defaultMouseTailConfig,\n useVirtualDom: true,\n // Virtual-dom optimization is enabled by default.\n logger: console\n };\n this.config = Object.assign({}, defaultConfig, config);\n this.handleResize = this.handleResize.bind(this);\n this.getCastFn = this.getCastFn.bind(this);\n this.applyEventsSynchronously = this.applyEventsSynchronously.bind(this);\n this.emitter.on(ReplayerEvents.Resize, this.handleResize);\n this.setupDom();\n for (const plugin3 of this.config.plugins || []) {\n if (plugin3.getMirror) plugin3.getMirror({ nodeMirror: this.mirror });\n }\n this.emitter.on(ReplayerEvents.Flush, () => {\n if (this.usingVirtualDom) {\n const replayerHandler = {\n mirror: this.mirror,\n applyCanvas: (canvasEvent, canvasMutationData, target) => {\n void canvasMutation({\n event: canvasEvent,\n mutation: canvasMutationData,\n target,\n imageMap: this.imageMap,\n canvasEventMap: this.canvasEventMap,\n errorHandler: this.warnCanvasMutationFailed.bind(this)\n });\n },\n applyInput: this.applyInput.bind(this),\n applyScroll: this.applyScroll.bind(this),\n applyStyleSheetMutation: (data, styleSheet) => {\n if (data.source === IncrementalSource.StyleSheetRule)\n this.applyStyleSheetRule(data, styleSheet);\n else if (data.source === IncrementalSource.StyleDeclaration)\n this.applyStyleDeclaration(data, styleSheet);\n },\n afterAppend: (node2, id) => {\n for (const plugin3 of this.config.plugins || []) {\n if (plugin3.onBuild) plugin3.onBuild(node2, { id, replayer: this });\n }\n }\n };\n if (this.iframe.contentDocument)\n try {\n diff(\n this.iframe.contentDocument,\n this.virtualDom,\n replayerHandler,\n this.virtualDom.mirror\n );\n } catch (e2) {\n console.warn(e2);\n }\n this.virtualDom.destroyTree();\n this.usingVirtualDom = false;\n if (Object.keys(this.legacy_missingNodeRetryMap).length) {\n for (const key in this.legacy_missingNodeRetryMap) {\n try {\n const value = this.legacy_missingNodeRetryMap[key];\n const realNode = createOrGetNode(\n value.node,\n this.mirror,\n this.virtualDom.mirror\n );\n diff(\n realNode,\n value.node,\n replayerHandler,\n this.virtualDom.mirror\n );\n value.node = realNode;\n } catch (error) {\n this.warn(error);\n }\n }\n }\n this.constructedStyleMutations.forEach((data) => {\n this.applyStyleSheetMutation(data);\n });\n this.constructedStyleMutations = [];\n this.adoptedStyleSheets.forEach((data) => {\n this.applyAdoptedStyleSheet(data);\n });\n this.adoptedStyleSheets = [];\n }\n if (this.mousePos) {\n this.moveAndHover(\n this.mousePos.x,\n this.mousePos.y,\n this.mousePos.id,\n true,\n this.mousePos.debugData\n );\n this.mousePos = null;\n }\n if (this.touchActive === true) {\n this.mouse.classList.add(\"touch-active\");\n } else if (this.touchActive === false) {\n this.mouse.classList.remove(\"touch-active\");\n }\n this.touchActive = null;\n if (this.lastMouseDownEvent) {\n const [target, event] = this.lastMouseDownEvent;\n target.dispatchEvent(event);\n }\n this.lastMouseDownEvent = null;\n if (this.lastSelectionData) {\n this.applySelection(this.lastSelectionData);\n this.lastSelectionData = null;\n }\n });\n this.emitter.on(ReplayerEvents.PlayBack, () => {\n this.firstFullSnapshot = null;\n this.mirror.reset();\n this.styleMirror.reset();\n this.mediaManager.reset();\n });\n const timer = new Timer([], {\n speed: this.config.speed\n });\n this.service = createPlayerService(\n {\n events: events.map((e2) => {\n if (config && config.unpackFn) {\n return config.unpackFn(e2);\n }\n return e2;\n }).sort((a1, a2) => a1.timestamp - a2.timestamp),\n timer,\n timeOffset: 0,\n baselineTime: 0,\n lastPlayedEvent: null\n },\n {\n getCastFn: this.getCastFn,\n applyEventsSynchronously: this.applyEventsSynchronously,\n emitter: this.emitter\n }\n );\n this.service.start();\n this.service.subscribe((state) => {\n this.emitter.emit(ReplayerEvents.StateChange, {\n player: state\n });\n });\n this.speedService = createSpeedService({\n normalSpeed: -1,\n timer\n });\n this.speedService.start();\n this.speedService.subscribe((state) => {\n this.emitter.emit(ReplayerEvents.StateChange, {\n speed: state\n });\n });\n this.mediaManager = new MediaManager({\n warn: this.warn.bind(this),\n service: this.service,\n speedService: this.speedService,\n emitter: this.emitter,\n getCurrentTime: this.getCurrentTime.bind(this)\n });\n const firstMeta = this.service.state.context.events.find(\n (e2) => e2.type === EventType.Meta\n );\n const firstFullsnapshot = this.service.state.context.events.find(\n (e2) => e2.type === EventType.FullSnapshot\n );\n if (firstMeta) {\n const { width, height } = firstMeta.data;\n setTimeout(() => {\n this.emitter.emit(ReplayerEvents.Resize, {\n width,\n height\n });\n }, 0);\n }\n if (firstFullsnapshot) {\n setTimeout(() => {\n var _a2;\n if (this.firstFullSnapshot) {\n return;\n }\n this.firstFullSnapshot = firstFullsnapshot;\n this.rebuildFullSnapshot(\n firstFullsnapshot\n );\n (_a2 = this.iframe.contentWindow) == null ? void 0 : _a2.scrollTo(\n firstFullsnapshot.data.initialOffset\n );\n }, 1);\n }\n if (this.service.state.context.events.find(indicatesTouchDevice)) {\n this.mouse.classList.add(\"touch-device\");\n }\n }\n get timer() {\n return this.service.state.context.timer;\n }\n on(event, handler) {\n this.emitter.on(event, handler);\n return this;\n }\n off(event, handler) {\n this.emitter.off(event, handler);\n return this;\n }\n setConfig(config) {\n Object.keys(config).forEach((key) => {\n config[key];\n this.config[key] = config[key];\n });\n if (!this.config.skipInactive) {\n this.backToNormal();\n }\n if (typeof config.speed !== \"undefined\") {\n this.speedService.send({\n type: \"SET_SPEED\",\n payload: {\n speed: config.speed\n }\n });\n }\n if (typeof config.mouseTail !== \"undefined\") {\n if (config.mouseTail === false) {\n if (this.mouseTail) {\n this.mouseTail.style.display = \"none\";\n }\n } else {\n if (!this.mouseTail) {\n this.mouseTail = document.createElement(\"canvas\");\n this.mouseTail.width = Number.parseFloat(this.iframe.width);\n this.mouseTail.height = Number.parseFloat(this.iframe.height);\n this.mouseTail.classList.add(\"replayer-mouse-tail\");\n this.wrapper.insertBefore(this.mouseTail, this.iframe);\n }\n this.mouseTail.style.display = \"inherit\";\n }\n }\n }\n getMetaData() {\n const firstEvent = this.service.state.context.events[0];\n const lastEvent = this.service.state.context.events[this.service.state.context.events.length - 1];\n return {\n startTime: firstEvent.timestamp,\n endTime: lastEvent.timestamp,\n totalTime: lastEvent.timestamp - firstEvent.timestamp\n };\n }\n /**\n * Get the actual time offset the player is at now compared to the first event.\n */\n getCurrentTime() {\n return this.timer.timeOffset + this.getTimeOffset();\n }\n /**\n * Get the time offset the player is at now compared to the first event, but without regard for the timer.\n */\n getTimeOffset() {\n const { baselineTime, events } = this.service.state.context;\n return baselineTime - events[0].timestamp;\n }\n getMirror() {\n return this.mirror;\n }\n /**\n * This API was designed to be used as play at any time offset.\n * Since we minimized the data collected from recorder, we do not\n * have the ability of undo an event.\n * So the implementation of play at any time offset will always iterate\n * all of the events, cast event before the offset synchronously\n * and cast event after the offset asynchronously with timer.\n * @param timeOffset - number\n */\n play(timeOffset = 0) {\n var _a2, _b;\n if (this.service.state.matches(\"paused\")) {\n this.service.send({ type: \"PLAY\", payload: { timeOffset } });\n } else {\n this.service.send({ type: \"PAUSE\" });\n this.service.send({ type: \"PLAY\", payload: { timeOffset } });\n }\n (_b = (_a2 = this.iframe.contentDocument) == null ? void 0 : _a2.getElementsByTagName(\"html\")[0]) == null ? void 0 : _b.classList.remove(\"rrweb-paused\");\n this.emitter.emit(ReplayerEvents.Start);\n }\n pause(timeOffset) {\n var _a2, _b;\n if (timeOffset === void 0 && this.service.state.matches(\"playing\")) {\n this.service.send({ type: \"PAUSE\" });\n }\n if (typeof timeOffset === \"number\") {\n this.play(timeOffset);\n this.service.send({ type: \"PAUSE\" });\n }\n (_b = (_a2 = this.iframe.contentDocument) == null ? void 0 : _a2.getElementsByTagName(\"html\")[0]) == null ? void 0 : _b.classList.add(\"rrweb-paused\");\n this.emitter.emit(ReplayerEvents.Pause);\n }\n resume(timeOffset = 0) {\n this.warn(\n `The 'resume' was deprecated in 1.0. Please use 'play' method which has the same interface.`\n );\n this.play(timeOffset);\n this.emitter.emit(ReplayerEvents.Resume);\n }\n /**\n * Totally destroy this replayer and please be careful that this operation is irreversible.\n * Memory occupation can be released by removing all references to this replayer.\n */\n destroy() {\n this.pause();\n this.mirror.reset();\n this.styleMirror.reset();\n this.mediaManager.reset();\n this.config.root.removeChild(this.wrapper);\n this.emitter.emit(ReplayerEvents.Destroy);\n }\n startLive(baselineTime) {\n this.service.send({ type: \"TO_LIVE\", payload: { baselineTime } });\n }\n addEvent(rawEvent) {\n const event = this.config.unpackFn ? this.config.unpackFn(rawEvent) : rawEvent;\n if (indicatesTouchDevice(event)) {\n this.mouse.classList.add(\"touch-device\");\n }\n void Promise.resolve().then(\n () => this.service.send({ type: \"ADD_EVENT\", payload: { event } })\n );\n }\n enableInteract() {\n this.iframe.setAttribute(\"scrolling\", \"auto\");\n this.iframe.style.pointerEvents = \"auto\";\n }\n disableInteract() {\n this.iframe.setAttribute(\"scrolling\", \"no\");\n this.iframe.style.pointerEvents = \"none\";\n }\n /**\n * Empties the replayer's cache and reclaims memory.\n * The replayer will use this cache to speed up the playback.\n */\n resetCache() {\n this.cache = createCache();\n }\n setupDom() {\n this.wrapper = document.createElement(\"div\");\n this.wrapper.classList.add(\"replayer-wrapper\");\n this.config.root.appendChild(this.wrapper);\n this.mouse = document.createElement(\"div\");\n this.mouse.classList.add(\"replayer-mouse\");\n this.wrapper.appendChild(this.mouse);\n if (this.config.mouseTail !== false) {\n this.mouseTail = document.createElement(\"canvas\");\n this.mouseTail.classList.add(\"replayer-mouse-tail\");\n this.mouseTail.style.display = \"inherit\";\n this.wrapper.appendChild(this.mouseTail);\n }\n this.iframe = document.createElement(\"iframe\");\n const attributes = [\"allow-same-origin\"];\n if (this.config.UNSAFE_replayCanvas) {\n attributes.push(\"allow-scripts\");\n }\n this.iframe.style.display = \"none\";\n this.iframe.setAttribute(\"sandbox\", attributes.join(\" \"));\n this.disableInteract();\n this.wrapper.appendChild(this.iframe);\n if (this.iframe.contentWindow && this.iframe.contentDocument) {\n polyfill(\n this.iframe.contentWindow,\n this.iframe.contentDocument\n );\n polyfill$1(this.iframe.contentWindow);\n }\n }\n rebuildFullSnapshot(event, isSync = false) {\n if (!this.iframe.contentDocument) {\n return this.warn(\"Looks like your replayer has been destroyed.\");\n }\n if (Object.keys(this.legacy_missingNodeRetryMap).length) {\n this.warn(\n \"Found unresolved missing node map\",\n this.legacy_missingNodeRetryMap\n );\n }\n this.legacy_missingNodeRetryMap = {};\n const collectedIframes = [];\n const collectedDialogs = /* @__PURE__ */ new Set();\n const afterAppend = (builtNode, id) => {\n if (builtNode.nodeName === \"DIALOG\")\n collectedDialogs.add(builtNode);\n this.collectIframeAndAttachDocument(collectedIframes, builtNode);\n if (this.mediaManager.isSupportedMediaElement(builtNode)) {\n const { events } = this.service.state.context;\n this.mediaManager.addMediaElements(\n builtNode,\n event.timestamp - events[0].timestamp,\n this.mirror\n );\n }\n for (const plugin3 of this.config.plugins || []) {\n if (plugin3.onBuild)\n plugin3.onBuild(builtNode, {\n id,\n replayer: this\n });\n }\n };\n if (this.usingVirtualDom) {\n this.virtualDom.destroyTree();\n this.usingVirtualDom = false;\n }\n this.mirror.reset();\n rebuild(event.data.node, {\n doc: this.iframe.contentDocument,\n afterAppend,\n cache: this.cache,\n mirror: this.mirror\n });\n afterAppend(this.iframe.contentDocument, event.data.node.id);\n for (const { mutationInQueue, builtNode } of collectedIframes) {\n this.attachDocumentToIframe(mutationInQueue, builtNode);\n this.newDocumentQueue = this.newDocumentQueue.filter(\n (m) => m !== mutationInQueue\n );\n }\n const { documentElement, head } = this.iframe.contentDocument;\n this.insertStyleRules(documentElement, head);\n collectedDialogs.forEach((d) => applyDialogToTopLevel(d));\n if (!this.service.state.matches(\"playing\")) {\n this.iframe.contentDocument.getElementsByTagName(\"html\")[0].classList.add(\"rrweb-paused\");\n }\n this.emitter.emit(ReplayerEvents.FullsnapshotRebuilded, event);\n if (!isSync) {\n this.waitForStylesheetLoad();\n }\n if (this.config.UNSAFE_replayCanvas) {\n void this.preloadAllImages();\n }\n }\n insertStyleRules(documentElement, head) {\n var _a2;\n const injectStylesRules = rules(\n this.config.blockClass\n ).concat(this.config.insertStyleRules);\n if (this.config.pauseAnimation) {\n injectStylesRules.push(\n \"html.rrweb-paused *, html.rrweb-paused *:before, html.rrweb-paused *:after { animation-play-state: paused !important; }\"\n );\n }\n if (!injectStylesRules.length) {\n return;\n }\n if (this.usingVirtualDom) {\n const styleEl = this.virtualDom.createElement(\"style\");\n this.virtualDom.mirror.add(\n styleEl,\n getDefaultSN(styleEl, this.virtualDom.unserializedId)\n );\n documentElement.insertBefore(styleEl, head);\n styleEl.rules.push({\n source: IncrementalSource.StyleSheetRule,\n adds: injectStylesRules.map((cssText, index2) => ({\n rule: cssText,\n index: index2\n }))\n });\n } else {\n const styleEl = document.createElement(\"style\");\n documentElement.insertBefore(\n styleEl,\n head\n );\n for (let idx = 0; idx < injectStylesRules.length; idx++) {\n (_a2 = styleEl.sheet) == null ? void 0 : _a2.insertRule(injectStylesRules[idx], idx);\n }\n }\n }\n attachDocumentToIframe(mutation, iframeEl) {\n const mirror2 = this.usingVirtualDom ? this.virtualDom.mirror : this.mirror;\n const collectedIframes = [];\n const collectedDialogs = /* @__PURE__ */ new Set();\n const afterAppend = (builtNode, id) => {\n if (builtNode.nodeName === \"DIALOG\")\n collectedDialogs.add(builtNode);\n this.collectIframeAndAttachDocument(collectedIframes, builtNode);\n const sn = mirror2.getMeta(builtNode);\n if ((sn == null ? void 0 : sn.type) === NodeType.Element && (sn == null ? void 0 : sn.tagName.toUpperCase()) === \"HTML\") {\n const { documentElement, head } = iframeEl.contentDocument;\n this.insertStyleRules(\n documentElement,\n head\n );\n }\n if (this.usingVirtualDom) return;\n for (const plugin3 of this.config.plugins || []) {\n if (plugin3.onBuild)\n plugin3.onBuild(builtNode, {\n id,\n replayer: this\n });\n }\n };\n buildNodeWithSN(mutation.node, {\n doc: iframeEl.contentDocument,\n mirror: mirror2,\n hackCss: true,\n skipChild: false,\n afterAppend,\n cache: this.cache\n });\n afterAppend(iframeEl.contentDocument, mutation.node.id);\n for (const { mutationInQueue, builtNode } of collectedIframes) {\n this.attachDocumentToIframe(mutationInQueue, builtNode);\n this.newDocumentQueue = this.newDocumentQueue.filter(\n (m) => m !== mutationInQueue\n );\n }\n collectedDialogs.forEach((d) => applyDialogToTopLevel(d));\n }\n collectIframeAndAttachDocument(collected, builtNode) {\n if (isSerializedIframe(builtNode, this.mirror)) {\n const mutationInQueue = this.newDocumentQueue.find(\n (m) => m.parentId === this.mirror.getId(builtNode)\n );\n if (mutationInQueue) {\n collected.push({\n mutationInQueue,\n builtNode\n });\n }\n }\n }\n /**\n * pause when loading style sheet, resume when loaded all timeout exceed\n */\n waitForStylesheetLoad() {\n var _a2;\n const head = (_a2 = this.iframe.contentDocument) == null ? void 0 : _a2.head;\n if (head) {\n const unloadSheets = /* @__PURE__ */ new Set();\n let timer;\n let beforeLoadState = this.service.state;\n const stateHandler = () => {\n beforeLoadState = this.service.state;\n };\n this.emitter.on(ReplayerEvents.Start, stateHandler);\n this.emitter.on(ReplayerEvents.Pause, stateHandler);\n const unsubscribe = () => {\n this.emitter.off(ReplayerEvents.Start, stateHandler);\n this.emitter.off(ReplayerEvents.Pause, stateHandler);\n };\n head.querySelectorAll('link[rel=\"stylesheet\"]').forEach((css) => {\n if (!css.sheet) {\n unloadSheets.add(css);\n css.addEventListener(\"load\", () => {\n unloadSheets.delete(css);\n if (unloadSheets.size === 0 && timer !== -1) {\n if (beforeLoadState.matches(\"playing\")) {\n this.play(this.getCurrentTime());\n }\n this.emitter.emit(ReplayerEvents.LoadStylesheetEnd);\n if (timer) {\n clearTimeout(timer);\n }\n unsubscribe();\n }\n });\n }\n });\n if (unloadSheets.size > 0) {\n this.service.send({ type: \"PAUSE\" });\n this.emitter.emit(ReplayerEvents.LoadStylesheetStart);\n timer = setTimeout(() => {\n if (beforeLoadState.matches(\"playing\")) {\n this.play(this.getCurrentTime());\n }\n timer = -1;\n unsubscribe();\n }, this.config.loadTimeout);\n }\n }\n }\n /**\n * pause when there are some canvas drawImage args need to be loaded\n */\n async preloadAllImages() {\n const promises = [];\n for (const event of this.service.state.context.events) {\n if (event.type === EventType.IncrementalSnapshot && event.data.source === IncrementalSource.CanvasMutation) {\n promises.push(\n this.deserializeAndPreloadCanvasEvents(event.data, event)\n );\n const commands = \"commands\" in event.data ? event.data.commands : [event.data];\n commands.forEach((c2) => {\n this.preloadImages(c2, event);\n });\n }\n }\n return Promise.all(promises);\n }\n preloadImages(data, event) {\n if (data.property === \"drawImage\" && typeof data.args[0] === \"string\" && !this.imageMap.has(event)) {\n const canvas = document.createElement(\"canvas\");\n const ctx = canvas.getContext(\"2d\");\n const imgd = ctx == null ? void 0 : ctx.createImageData(canvas.width, canvas.height);\n ctx == null ? void 0 : ctx.putImageData(imgd, 0, 0);\n }\n }\n async deserializeAndPreloadCanvasEvents(data, event) {\n if (!this.canvasEventMap.has(event)) {\n const status = {\n isUnchanged: true\n };\n if (\"commands\" in data) {\n const commands = await Promise.all(\n data.commands.map(async (c2) => {\n const args = await Promise.all(\n c2.args.map(deserializeArg(this.imageMap, null, status))\n );\n return { ...c2, args };\n })\n );\n if (status.isUnchanged === false)\n this.canvasEventMap.set(event, { ...data, commands });\n } else {\n const args = await Promise.all(\n data.args.map(deserializeArg(this.imageMap, null, status))\n );\n if (status.isUnchanged === false)\n this.canvasEventMap.set(event, { ...data, args });\n }\n }\n }\n applyIncremental(e2, isSync) {\n var _a2, _b, _c;\n const { data: d } = e2;\n switch (d.source) {\n case IncrementalSource.Mutation: {\n try {\n this.applyMutation(d, isSync);\n } catch (error) {\n this.warn(`Exception in mutation ${error.message || error}`, d);\n }\n break;\n }\n case IncrementalSource.Drag:\n case IncrementalSource.TouchMove:\n case IncrementalSource.MouseMove:\n if (isSync) {\n const lastPosition = d.positions[d.positions.length - 1];\n this.mousePos = {\n x: lastPosition.x,\n y: lastPosition.y,\n id: lastPosition.id,\n debugData: d\n };\n } else {\n d.positions.forEach((p) => {\n const action = {\n doAction: () => {\n this.moveAndHover(p.x, p.y, p.id, isSync, d);\n },\n delay: p.timeOffset + e2.timestamp - this.service.state.context.baselineTime\n };\n this.timer.addAction(action);\n });\n this.timer.addAction({\n doAction() {\n },\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n delay: e2.delay - ((_a2 = d.positions[0]) == null ? void 0 : _a2.timeOffset)\n });\n }\n break;\n case IncrementalSource.MouseInteraction: {\n if (d.id === -1) {\n break;\n }\n const event = new Event(toLowerCase(MouseInteractions[d.type]));\n const target = this.mirror.getNode(d.id);\n if (!target) {\n return this.debugNodeNotFound(d, d.id);\n }\n this.emitter.emit(ReplayerEvents.MouseInteraction, {\n type: d.type,\n target\n });\n const { triggerFocus } = this.config;\n switch (d.type) {\n case MouseInteractions.Blur:\n if (\"blur\" in target) {\n target.blur();\n }\n break;\n case MouseInteractions.Focus:\n if (triggerFocus && target.focus) {\n target.focus({\n preventScroll: true\n });\n }\n break;\n case MouseInteractions.Click:\n case MouseInteractions.TouchStart:\n case MouseInteractions.TouchEnd:\n case MouseInteractions.MouseDown:\n case MouseInteractions.MouseUp:\n if (isSync) {\n if (d.type === MouseInteractions.TouchStart) {\n this.touchActive = true;\n } else if (d.type === MouseInteractions.TouchEnd) {\n this.touchActive = false;\n }\n if (d.type === MouseInteractions.MouseDown) {\n this.lastMouseDownEvent = [target, event];\n } else if (d.type === MouseInteractions.MouseUp) {\n this.lastMouseDownEvent = null;\n }\n this.mousePos = {\n x: d.x || 0,\n y: d.y || 0,\n id: d.id,\n debugData: d\n };\n } else {\n if (d.type === MouseInteractions.TouchStart) {\n this.tailPositions.length = 0;\n }\n this.moveAndHover(d.x || 0, d.y || 0, d.id, isSync, d);\n if (d.type === MouseInteractions.Click) {\n this.mouse.classList.remove(\"active\");\n void this.mouse.offsetWidth;\n this.mouse.classList.add(\"active\");\n } else if (d.type === MouseInteractions.TouchStart) {\n void this.mouse.offsetWidth;\n this.mouse.classList.add(\"touch-active\");\n } else if (d.type === MouseInteractions.TouchEnd) {\n this.mouse.classList.remove(\"touch-active\");\n } else {\n target.dispatchEvent(event);\n }\n }\n break;\n case MouseInteractions.TouchCancel:\n if (isSync) {\n this.touchActive = false;\n } else {\n this.mouse.classList.remove(\"touch-active\");\n }\n break;\n default:\n target.dispatchEvent(event);\n }\n break;\n }\n case IncrementalSource.Scroll: {\n if (d.id === -1) {\n break;\n }\n if (this.usingVirtualDom) {\n const target = this.virtualDom.mirror.getNode(d.id);\n if (!target) {\n return this.debugNodeNotFound(d, d.id);\n }\n target.scrollData = d;\n break;\n }\n this.applyScroll(d, isSync);\n break;\n }\n case IncrementalSource.ViewportResize:\n this.emitter.emit(ReplayerEvents.Resize, {\n width: d.width,\n height: d.height\n });\n break;\n case IncrementalSource.Input: {\n if (d.id === -1) {\n break;\n }\n if (this.usingVirtualDom) {\n const target = this.virtualDom.mirror.getNode(d.id);\n if (!target) {\n return this.debugNodeNotFound(d, d.id);\n }\n target.inputData = d;\n break;\n }\n this.applyInput(d);\n break;\n }\n case IncrementalSource.MediaInteraction: {\n const target = this.usingVirtualDom ? this.virtualDom.mirror.getNode(d.id) : this.mirror.getNode(d.id);\n if (!target) {\n return this.debugNodeNotFound(d, d.id);\n }\n const mediaEl = target;\n const { events } = this.service.state.context;\n this.mediaManager.mediaMutation({\n target: mediaEl,\n timeOffset: e2.timestamp - events[0].timestamp,\n mutation: d\n });\n break;\n }\n case IncrementalSource.StyleSheetRule:\n case IncrementalSource.StyleDeclaration: {\n if (this.usingVirtualDom) {\n if (d.styleId) this.constructedStyleMutations.push(d);\n else if (d.id)\n (_b = this.virtualDom.mirror.getNode(d.id)) == null ? void 0 : _b.rules.push(d);\n } else this.applyStyleSheetMutation(d);\n break;\n }\n case IncrementalSource.CanvasMutation: {\n if (!this.config.UNSAFE_replayCanvas) {\n return;\n }\n if (this.usingVirtualDom) {\n const target = this.virtualDom.mirror.getNode(\n d.id\n );\n if (!target) {\n return this.debugNodeNotFound(d, d.id);\n }\n target.canvasMutations.push({\n event: e2,\n mutation: d\n });\n } else {\n const target = this.mirror.getNode(d.id);\n if (!target) {\n return this.debugNodeNotFound(d, d.id);\n }\n void canvasMutation({\n event: e2,\n mutation: d,\n target,\n imageMap: this.imageMap,\n canvasEventMap: this.canvasEventMap,\n errorHandler: this.warnCanvasMutationFailed.bind(this)\n });\n }\n break;\n }\n case IncrementalSource.Font: {\n try {\n const fontFace = new FontFace(\n d.family,\n d.buffer ? new Uint8Array(JSON.parse(d.fontSource)) : d.fontSource,\n d.descriptors\n );\n (_c = this.iframe.contentDocument) == null ? void 0 : _c.fonts.add(fontFace);\n } catch (error) {\n this.warn(error);\n }\n break;\n }\n case IncrementalSource.Selection: {\n if (isSync) {\n this.lastSelectionData = d;\n break;\n }\n this.applySelection(d);\n break;\n }\n case IncrementalSource.AdoptedStyleSheet: {\n if (this.usingVirtualDom) this.adoptedStyleSheets.push(d);\n else this.applyAdoptedStyleSheet(d);\n break;\n }\n }\n }\n /**\n * Apply the mutation to the virtual dom or the real dom.\n * @param d - The mutation data.\n * @param isSync - Whether the mutation should be applied synchronously (while fast-forwarding).\n */\n applyMutation(d, isSync) {\n if (this.config.useVirtualDom && !this.usingVirtualDom && isSync) {\n this.usingVirtualDom = true;\n buildFromDom(this.iframe.contentDocument, this.mirror, this.virtualDom);\n if (Object.keys(this.legacy_missingNodeRetryMap).length) {\n for (const key in this.legacy_missingNodeRetryMap) {\n try {\n const value = this.legacy_missingNodeRetryMap[key];\n const virtualNode = buildFromNode(\n value.node,\n this.virtualDom,\n this.mirror\n );\n if (virtualNode) value.node = virtualNode;\n } catch (error) {\n this.warn(error);\n }\n }\n }\n }\n const mirror2 = this.usingVirtualDom ? this.virtualDom.mirror : this.mirror;\n d.removes = d.removes.filter((mutation) => {\n if (!mirror2.getNode(mutation.id)) {\n this.warnNodeNotFound(d, mutation.id);\n return false;\n }\n return true;\n });\n d.removes.forEach((mutation) => {\n var _a2;\n const target = mirror2.getNode(mutation.id);\n if (!target) {\n return;\n }\n let parent = mirror2.getNode(\n mutation.parentId\n );\n if (!parent) {\n return this.warnNodeNotFound(d, mutation.parentId);\n }\n if (mutation.isShadow && hasShadowRoot(parent)) {\n parent = parent.shadowRoot;\n }\n mirror2.removeNodeFromMap(target);\n if (parent)\n try {\n parent.removeChild(target);\n if (this.usingVirtualDom && target.nodeName === \"#text\" && parent.nodeName === \"STYLE\" && ((_a2 = parent.rules) == null ? void 0 : _a2.length) > 0)\n parent.rules = [];\n } catch (error) {\n if (error instanceof DOMException) {\n this.warn(\n \"parent could not remove child in mutation\",\n parent,\n target,\n d\n );\n } else {\n throw error;\n }\n }\n });\n const legacy_missingNodeMap = {\n ...this.legacy_missingNodeRetryMap\n };\n const queue = [];\n const nextNotInDOM = (mutation) => {\n let next = null;\n if (mutation.nextId) {\n next = mirror2.getNode(mutation.nextId);\n }\n if (mutation.nextId !== null && mutation.nextId !== void 0 && mutation.nextId !== -1 && !next) {\n return true;\n }\n return false;\n };\n const appendNode = (mutation) => {\n var _a2, _b;\n if (!this.iframe.contentDocument) {\n return this.warn(\"Looks like your replayer has been destroyed.\");\n }\n let parent = mirror2.getNode(\n mutation.parentId\n );\n if (!parent) {\n if (mutation.node.type === NodeType.Document) {\n return this.newDocumentQueue.push(mutation);\n }\n return queue.push(mutation);\n }\n if (mutation.node.isShadow) {\n if (!hasShadowRoot(parent)) {\n parent.attachShadow({ mode: \"open\" });\n parent = parent.shadowRoot;\n } else parent = parent.shadowRoot;\n }\n let previous = null;\n let next = null;\n if (mutation.previousId) {\n previous = mirror2.getNode(mutation.previousId);\n }\n if (mutation.nextId) {\n next = mirror2.getNode(mutation.nextId);\n }\n if (nextNotInDOM(mutation)) {\n return queue.push(mutation);\n }\n if (mutation.node.rootId && !mirror2.getNode(mutation.node.rootId)) {\n return;\n }\n const targetDoc = mutation.node.rootId ? mirror2.getNode(mutation.node.rootId) : this.usingVirtualDom ? this.virtualDom : this.iframe.contentDocument;\n if (isSerializedIframe(parent, mirror2)) {\n this.attachDocumentToIframe(\n mutation,\n parent\n );\n return;\n }\n const afterAppend = (node2, id) => {\n if (this.usingVirtualDom) return;\n applyDialogToTopLevel(node2);\n for (const plugin3 of this.config.plugins || []) {\n if (plugin3.onBuild) plugin3.onBuild(node2, { id, replayer: this });\n }\n };\n const target = buildNodeWithSN(mutation.node, {\n doc: targetDoc,\n // can be Document or RRDocument\n mirror: mirror2,\n // can be this.mirror or virtualDom.mirror\n skipChild: true,\n hackCss: true,\n cache: this.cache,\n /**\n * caveat: `afterAppend` only gets called on child nodes of target\n * we have to call it again below when this target was added to the DOM\n */\n afterAppend\n });\n if (mutation.previousId === -1 || mutation.nextId === -1) {\n legacy_missingNodeMap[mutation.node.id] = {\n node: target,\n mutation\n };\n return;\n }\n const parentSn = mirror2.getMeta(parent);\n if (parentSn && parentSn.type === NodeType.Element && mutation.node.type === NodeType.Text) {\n const prospectiveSiblings = Array.isArray(parent.childNodes) ? parent.childNodes : Array.from(parent.childNodes);\n if (parentSn.tagName === \"textarea\") {\n for (const c2 of prospectiveSiblings) {\n if (c2.nodeType === parent.TEXT_NODE) {\n parent.removeChild(c2);\n }\n }\n } else if (parentSn.tagName === \"style\" && prospectiveSiblings.length === 1) {\n for (const cssText of prospectiveSiblings) {\n if (cssText.nodeType === parent.TEXT_NODE && !mirror2.hasNode(cssText)) {\n target.textContent = cssText.textContent;\n parent.removeChild(cssText);\n }\n }\n }\n } else if ((parentSn == null ? void 0 : parentSn.type) === NodeType.Document) {\n const parentDoc = parent;\n if (mutation.node.type === NodeType.DocumentType && ((_a2 = parentDoc.childNodes[0]) == null ? void 0 : _a2.nodeType) === Node.DOCUMENT_TYPE_NODE)\n parentDoc.removeChild(parentDoc.childNodes[0]);\n if (target.nodeName === \"HTML\" && parentDoc.documentElement)\n parentDoc.removeChild(\n parentDoc.documentElement\n );\n }\n if (previous && previous.nextSibling && previous.nextSibling.parentNode) {\n parent.insertBefore(\n target,\n previous.nextSibling\n );\n } else if (next && next.parentNode) {\n parent.contains(next) ? parent.insertBefore(target, next) : parent.insertBefore(target, null);\n } else {\n parent.appendChild(target);\n }\n afterAppend(target, mutation.node.id);\n if (this.usingVirtualDom && target.nodeName === \"#text\" && parent.nodeName === \"STYLE\" && ((_b = parent.rules) == null ? void 0 : _b.length) > 0)\n parent.rules = [];\n if (isSerializedIframe(target, this.mirror)) {\n const targetId = this.mirror.getId(target);\n const mutationInQueue = this.newDocumentQueue.find(\n (m) => m.parentId === targetId\n );\n if (mutationInQueue) {\n this.attachDocumentToIframe(\n mutationInQueue,\n target\n );\n this.newDocumentQueue = this.newDocumentQueue.filter(\n (m) => m !== mutationInQueue\n );\n }\n }\n if (mutation.previousId || mutation.nextId) {\n this.legacy_resolveMissingNode(\n legacy_missingNodeMap,\n parent,\n target,\n mutation\n );\n }\n };\n d.adds.forEach((mutation) => {\n appendNode(mutation);\n });\n const startTime = Date.now();\n while (queue.length) {\n const resolveTrees = queueToResolveTrees(queue);\n queue.length = 0;\n if (Date.now() - startTime > 500) {\n this.warn(\n \"Timeout in the loop, please check the resolve tree data:\",\n resolveTrees\n );\n break;\n }\n for (const tree of resolveTrees) {\n const parent = mirror2.getNode(tree.value.parentId);\n if (!parent) {\n this.debug(\n \"Drop resolve tree since there is no parent for the root node.\",\n tree\n );\n } else {\n iterateResolveTree(tree, (mutation) => {\n appendNode(mutation);\n });\n }\n }\n }\n if (Object.keys(legacy_missingNodeMap).length) {\n Object.assign(this.legacy_missingNodeRetryMap, legacy_missingNodeMap);\n }\n uniqueTextMutations(d.texts).forEach((mutation) => {\n var _a2;\n const target = mirror2.getNode(mutation.id);\n if (!target) {\n if (d.removes.find((r2) => r2.id === mutation.id)) {\n return;\n }\n return this.warnNodeNotFound(d, mutation.id);\n }\n const parentEl = target.parentElement;\n if (mutation.value && parentEl && parentEl.tagName === \"STYLE\") {\n target.textContent = adaptCssForReplay(mutation.value, this.cache);\n } else {\n target.textContent = mutation.value;\n }\n if (this.usingVirtualDom) {\n const parent = target.parentNode;\n if (((_a2 = parent == null ? void 0 : parent.rules) == null ? void 0 : _a2.length) > 0) parent.rules = [];\n }\n });\n d.attributes.forEach((mutation) => {\n var _a2;\n const target = mirror2.getNode(mutation.id);\n if (!target) {\n if (d.removes.find((r2) => r2.id === mutation.id)) {\n return;\n }\n return this.warnNodeNotFound(d, mutation.id);\n }\n for (const attributeName in mutation.attributes) {\n if (typeof attributeName === \"string\") {\n const value = mutation.attributes[attributeName];\n if (value === null) {\n target.removeAttribute(attributeName);\n if (attributeName === \"open\")\n removeDialogFromTopLevel(target, mutation);\n } else if (typeof value === \"string\") {\n try {\n if (attributeName === \"_cssText\" && (target.nodeName === \"LINK\" || target.nodeName === \"STYLE\")) {\n try {\n const newSn = mirror2.getMeta(\n target\n );\n Object.assign(\n newSn.attributes,\n mutation.attributes\n );\n const newNode = buildNodeWithSN(newSn, {\n doc: target.ownerDocument,\n // can be Document or RRDocument\n mirror: mirror2,\n skipChild: true,\n hackCss: true,\n cache: this.cache\n });\n const siblingNode = target.nextSibling;\n const parentNode2 = target.parentNode;\n if (newNode && parentNode2) {\n parentNode2.removeChild(target);\n parentNode2.insertBefore(\n newNode,\n siblingNode\n );\n mirror2.replace(mutation.id, newNode);\n break;\n }\n } catch (e2) {\n }\n }\n if (attributeName === \"value\" && target.nodeName === \"TEXTAREA\") {\n const textarea = target;\n textarea.childNodes.forEach(\n (c2) => textarea.removeChild(c2)\n );\n const tn = (_a2 = target.ownerDocument) == null ? void 0 : _a2.createTextNode(value);\n if (tn) {\n textarea.appendChild(tn);\n }\n } else {\n target.setAttribute(\n attributeName,\n value\n );\n }\n if (attributeName === \"rr_open_mode\" && target.nodeName === \"DIALOG\") {\n applyDialogToTopLevel(target, mutation);\n }\n } catch (error) {\n this.warn(\n \"An error occurred may due to the checkout feature.\",\n error\n );\n }\n } else if (attributeName === \"style\") {\n const styleValues = value;\n const targetEl = target;\n for (const s2 in styleValues) {\n if (styleValues[s2] === false) {\n targetEl.style.removeProperty(s2);\n } else if (styleValues[s2] instanceof Array) {\n const svp = styleValues[s2];\n targetEl.style.setProperty(s2, svp[0], svp[1]);\n } else {\n const svs = styleValues[s2];\n targetEl.style.setProperty(s2, svs);\n }\n }\n }\n }\n }\n });\n }\n /**\n * Apply the scroll data on real elements.\n * If the replayer is in sync mode, smooth scroll behavior should be disabled.\n * @param d - the scroll data\n * @param isSync - whether the replayer is in sync mode(fast-forward)\n */\n applyScroll(d, isSync) {\n var _a2, _b;\n const target = this.mirror.getNode(d.id);\n if (!target) {\n return this.debugNodeNotFound(d, d.id);\n }\n const sn = this.mirror.getMeta(target);\n if (target === this.iframe.contentDocument) {\n (_a2 = this.iframe.contentWindow) == null ? void 0 : _a2.scrollTo({\n top: d.y,\n left: d.x,\n behavior: isSync ? \"auto\" : \"smooth\"\n });\n } else if ((sn == null ? void 0 : sn.type) === NodeType.Document) {\n (_b = target.defaultView) == null ? void 0 : _b.scrollTo({\n top: d.y,\n left: d.x,\n behavior: isSync ? \"auto\" : \"smooth\"\n });\n } else {\n try {\n target.scrollTo({\n top: d.y,\n left: d.x,\n behavior: isSync ? \"auto\" : \"smooth\"\n });\n } catch (error) {\n }\n }\n }\n applyInput(d) {\n const target = this.mirror.getNode(d.id);\n if (!target) {\n return this.debugNodeNotFound(d, d.id);\n }\n try {\n target.checked = d.isChecked;\n target.value = d.text;\n } catch (error) {\n }\n }\n applySelection(d) {\n try {\n const selectionSet = /* @__PURE__ */ new Set();\n const ranges = d.ranges.map(({ start, startOffset, end, endOffset }) => {\n const startContainer = this.mirror.getNode(start);\n const endContainer = this.mirror.getNode(end);\n if (!startContainer || !endContainer) return;\n const result2 = new Range();\n result2.setStart(startContainer, startOffset);\n result2.setEnd(endContainer, endOffset);\n const doc = startContainer.ownerDocument;\n const selection = doc == null ? void 0 : doc.getSelection();\n selection && selectionSet.add(selection);\n return {\n range: result2,\n selection\n };\n });\n selectionSet.forEach((s2) => s2.removeAllRanges());\n ranges.forEach((r2) => {\n var _a2;\n return r2 && ((_a2 = r2.selection) == null ? void 0 : _a2.addRange(r2.range));\n });\n } catch (error) {\n }\n }\n applyStyleSheetMutation(data) {\n var _a2;\n let styleSheet = null;\n if (data.styleId) styleSheet = this.styleMirror.getStyle(data.styleId);\n else if (data.id)\n styleSheet = ((_a2 = this.mirror.getNode(data.id)) == null ? void 0 : _a2.sheet) || null;\n if (!styleSheet) return;\n if (data.source === IncrementalSource.StyleSheetRule)\n this.applyStyleSheetRule(data, styleSheet);\n else if (data.source === IncrementalSource.StyleDeclaration)\n this.applyStyleDeclaration(data, styleSheet);\n }\n applyStyleSheetRule(data, styleSheet) {\n var _a2, _b, _c, _d;\n (_a2 = data.adds) == null ? void 0 : _a2.forEach(({ rule: rule2, index: nestedIndex }) => {\n try {\n if (Array.isArray(nestedIndex)) {\n const { positions, index: index2 } = getPositionsAndIndex(nestedIndex);\n const nestedRule = getNestedRule(styleSheet.cssRules, positions);\n nestedRule.insertRule(rule2, index2);\n } else {\n const index2 = nestedIndex === void 0 ? void 0 : Math.min(nestedIndex, styleSheet.cssRules.length);\n styleSheet == null ? void 0 : styleSheet.insertRule(rule2, index2);\n }\n } catch (e2) {\n }\n });\n (_b = data.removes) == null ? void 0 : _b.forEach(({ index: nestedIndex }) => {\n try {\n if (Array.isArray(nestedIndex)) {\n const { positions, index: index2 } = getPositionsAndIndex(nestedIndex);\n const nestedRule = getNestedRule(styleSheet.cssRules, positions);\n nestedRule.deleteRule(index2 || 0);\n } else {\n styleSheet == null ? void 0 : styleSheet.deleteRule(nestedIndex);\n }\n } catch (e2) {\n }\n });\n if (data.replace)\n try {\n void ((_c = styleSheet.replace) == null ? void 0 : _c.call(styleSheet, data.replace));\n } catch (e2) {\n }\n if (data.replaceSync)\n try {\n (_d = styleSheet.replaceSync) == null ? void 0 : _d.call(styleSheet, data.replaceSync);\n } catch (e2) {\n }\n }\n applyStyleDeclaration(data, styleSheet) {\n if (data.set) {\n const rule2 = getNestedRule(\n styleSheet.rules,\n data.index\n );\n rule2.style.setProperty(\n data.set.property,\n data.set.value,\n data.set.priority\n );\n }\n if (data.remove) {\n const rule2 = getNestedRule(\n styleSheet.rules,\n data.index\n );\n rule2.style.removeProperty(data.remove.property);\n }\n }\n applyAdoptedStyleSheet(data) {\n var _a2;\n const targetHost = this.mirror.getNode(data.id);\n if (!targetHost) return;\n (_a2 = data.styles) == null ? void 0 : _a2.forEach((style) => {\n var _a3;\n let newStyleSheet = null;\n let hostWindow = null;\n if (hasShadowRoot(targetHost))\n hostWindow = ((_a3 = targetHost.ownerDocument) == null ? void 0 : _a3.defaultView) || null;\n else if (targetHost.nodeName === \"#document\")\n hostWindow = targetHost.defaultView;\n if (!hostWindow) return;\n try {\n newStyleSheet = new hostWindow.CSSStyleSheet();\n this.styleMirror.add(newStyleSheet, style.styleId);\n this.applyStyleSheetRule(\n {\n source: IncrementalSource.StyleSheetRule,\n adds: style.rules\n },\n newStyleSheet\n );\n } catch (e2) {\n }\n });\n const MAX_RETRY_TIME = 10;\n let count = 0;\n const adoptStyleSheets = (targetHost2, styleIds) => {\n const stylesToAdopt = styleIds.map((styleId) => this.styleMirror.getStyle(styleId)).filter((style) => style !== null);\n if (hasShadowRoot(targetHost2))\n targetHost2.shadowRoot.adoptedStyleSheets = stylesToAdopt;\n else if (targetHost2.nodeName === \"#document\")\n targetHost2.adoptedStyleSheets = stylesToAdopt;\n if (stylesToAdopt.length !== styleIds.length && count < MAX_RETRY_TIME) {\n setTimeout(\n () => adoptStyleSheets(targetHost2, styleIds),\n 0 + 100 * count\n );\n count++;\n }\n };\n adoptStyleSheets(targetHost, data.styleIds);\n }\n legacy_resolveMissingNode(map, parent, target, targetMutation) {\n const { previousId, nextId } = targetMutation;\n const previousInMap = previousId && map[previousId];\n const nextInMap = nextId && map[nextId];\n if (previousInMap) {\n const { node: node2, mutation } = previousInMap;\n parent.insertBefore(node2, target);\n delete map[mutation.node.id];\n delete this.legacy_missingNodeRetryMap[mutation.node.id];\n if (mutation.previousId || mutation.nextId) {\n this.legacy_resolveMissingNode(map, parent, node2, mutation);\n }\n }\n if (nextInMap) {\n const { node: node2, mutation } = nextInMap;\n parent.insertBefore(\n node2,\n target.nextSibling\n );\n delete map[mutation.node.id];\n delete this.legacy_missingNodeRetryMap[mutation.node.id];\n if (mutation.previousId || mutation.nextId) {\n this.legacy_resolveMissingNode(map, parent, node2, mutation);\n }\n }\n }\n moveAndHover(x2, y, id, isSync, debugData) {\n const target = this.mirror.getNode(id);\n if (!target) {\n return this.debugNodeNotFound(debugData, id);\n }\n const base = getBaseDimension(target, this.iframe);\n const _x = x2 * base.absoluteScale + base.x;\n const _y = y * base.absoluteScale + base.y;\n this.mouse.style.left = `${_x}px`;\n this.mouse.style.top = `${_y}px`;\n if (!isSync) {\n this.drawMouseTail({ x: _x, y: _y });\n }\n this.hoverElements(target);\n }\n drawMouseTail(position) {\n if (!this.mouseTail) {\n return;\n }\n const { lineCap, lineWidth, strokeStyle, duration } = this.config.mouseTail === true ? defaultMouseTailConfig : Object.assign({}, defaultMouseTailConfig, this.config.mouseTail);\n const draw = () => {\n if (!this.mouseTail) {\n return;\n }\n const ctx = this.mouseTail.getContext(\"2d\");\n if (!ctx || !this.tailPositions.length) {\n return;\n }\n ctx.clearRect(0, 0, this.mouseTail.width, this.mouseTail.height);\n ctx.beginPath();\n ctx.lineWidth = lineWidth;\n ctx.lineCap = lineCap;\n ctx.strokeStyle = strokeStyle;\n ctx.moveTo(this.tailPositions[0].x, this.tailPositions[0].y);\n this.tailPositions.forEach((p) => ctx.lineTo(p.x, p.y));\n ctx.stroke();\n };\n this.tailPositions.push(position);\n draw();\n setTimeout(() => {\n this.tailPositions = this.tailPositions.filter((p) => p !== position);\n draw();\n }, duration / this.speedService.state.context.timer.speed);\n }\n hoverElements(el) {\n var _a2;\n (_a2 = this.lastHoveredRootNode || this.iframe.contentDocument) == null ? void 0 : _a2.querySelectorAll(\".\\\\:hover\").forEach((hoveredEl) => {\n hoveredEl.classList.remove(\":hover\");\n });\n this.lastHoveredRootNode = el.getRootNode();\n let currentEl = el;\n while (currentEl) {\n if (currentEl.classList) {\n currentEl.classList.add(\":hover\");\n }\n currentEl = currentEl.parentElement;\n }\n }\n isUserInteraction(event) {\n if (event.type !== EventType.IncrementalSnapshot) {\n return false;\n }\n return event.data.source > IncrementalSource.Mutation && event.data.source <= IncrementalSource.Input;\n }\n backToNormal() {\n this.nextUserInteractionEvent = null;\n if (this.speedService.state.matches(\"normal\")) {\n return;\n }\n this.speedService.send({ type: \"BACK_TO_NORMAL\" });\n this.emitter.emit(ReplayerEvents.SkipEnd, {\n speed: this.speedService.state.context.normalSpeed\n });\n }\n warnNodeNotFound(d, id) {\n this.warn(`Node with id '${id}' not found. `, d);\n }\n warnCanvasMutationFailed(d, error) {\n this.warn(`Has error on canvas update`, error, \"canvas mutation:\", d);\n }\n debugNodeNotFound(d, id) {\n this.debug(`Node with id '${id}' not found. `, d);\n }\n warn(...args) {\n if (!this.config.showWarning) {\n return;\n }\n this.config.logger.warn(REPLAY_CONSOLE_PREFIX, ...args);\n }\n debug(...args) {\n if (!this.config.showDebug) {\n return;\n }\n this.config.logger.log(REPLAY_CONSOLE_PREFIX, ...args);\n }\n}\nconst { addCustomEvent } = record;\nconst { freezePage } = record;\nconst { takeFullSnapshot } = record;\nexport {\n EventType,\n IncrementalSource,\n MouseInteractions,\n Replayer,\n ReplayerEvents,\n addCustomEvent,\n canvasMutation,\n freezePage,\n _mirror as mirror,\n record,\n takeFullSnapshot,\n utils\n};\n//# sourceMappingURL=rrweb.js.map\n","export enum EventType {\n DomContentLoaded,\n Load,\n FullSnapshot,\n IncrementalSnapshot,\n Meta,\n Custom,\n Plugin,\n}\n\nexport type domContentLoadedEvent = {\n type: EventType.DomContentLoaded;\n data: unknown;\n};\n\nexport type loadedEvent = {\n type: EventType.Load;\n data: unknown;\n};\n\nexport type fullSnapshotEvent = {\n type: EventType.FullSnapshot;\n data: {\n node: serializedNodeWithId;\n initialOffset: {\n top: number;\n left: number;\n };\n };\n};\n\nexport type incrementalSnapshotEvent = {\n type: EventType.IncrementalSnapshot;\n data: incrementalData;\n};\n\nexport type metaEvent = {\n type: EventType.Meta;\n data: {\n href: string;\n width: number;\n height: number;\n };\n};\n\nexport type customEvent = {\n type: EventType.Custom;\n data: {\n tag: string;\n payload: T;\n };\n};\n\nexport type pluginEvent = {\n type: EventType.Plugin;\n data: {\n plugin: string;\n payload: T;\n };\n};\n\nexport enum IncrementalSource {\n Mutation,\n MouseMove,\n MouseInteraction,\n Scroll,\n ViewportResize,\n Input,\n TouchMove,\n MediaInteraction,\n StyleSheetRule,\n CanvasMutation,\n Font,\n Log,\n Drag,\n StyleDeclaration,\n Selection,\n AdoptedStyleSheet,\n CustomElement,\n}\n\nexport type mutationData = {\n source: IncrementalSource.Mutation;\n} & mutationCallbackParam;\n\nexport type mousemoveData = {\n source:\n | IncrementalSource.MouseMove\n | IncrementalSource.TouchMove\n | IncrementalSource.Drag;\n positions: mousePosition[];\n};\n\nexport type mouseInteractionData = {\n source: IncrementalSource.MouseInteraction;\n} & mouseInteractionParam;\n\nexport type scrollData = {\n source: IncrementalSource.Scroll;\n} & scrollPosition;\n\nexport type viewportResizeData = {\n source: IncrementalSource.ViewportResize;\n} & viewportResizeDimension;\n\nexport type inputData = {\n source: IncrementalSource.Input;\n id: number;\n} & inputValue;\n\nexport type mediaInteractionData = {\n source: IncrementalSource.MediaInteraction;\n} & mediaInteractionParam;\n\nexport type styleSheetRuleData = {\n source: IncrementalSource.StyleSheetRule;\n} & styleSheetRuleParam;\n\nexport type styleDeclarationData = {\n source: IncrementalSource.StyleDeclaration;\n} & styleDeclarationParam;\n\nexport type canvasMutationData = {\n source: IncrementalSource.CanvasMutation;\n} & canvasMutationParam;\n\nexport type fontData = {\n source: IncrementalSource.Font;\n} & fontParam;\n\nexport type selectionData = {\n source: IncrementalSource.Selection;\n} & selectionParam;\n\nexport type adoptedStyleSheetData = {\n source: IncrementalSource.AdoptedStyleSheet;\n} & adoptedStyleSheetParam;\n\nexport type customElementData = {\n source: IncrementalSource.CustomElement;\n} & customElementParam;\n\nexport type incrementalData =\n | mutationData\n | mousemoveData\n | mouseInteractionData\n | scrollData\n | viewportResizeData\n | inputData\n | mediaInteractionData\n | styleSheetRuleData\n | canvasMutationData\n | fontData\n | selectionData\n | styleDeclarationData\n | adoptedStyleSheetData\n | customElementData;\n\nexport type eventWithoutTime =\n | domContentLoadedEvent\n | loadedEvent\n | fullSnapshotEvent\n | incrementalSnapshotEvent\n | metaEvent\n | customEvent\n | pluginEvent;\n\n/**\n * @deprecated intended for internal use\n * a synonym for eventWithoutTime\n */\nexport type event = eventWithoutTime;\n\nexport type eventWithTime = eventWithoutTime & {\n timestamp: number;\n delay?: number;\n};\n\nexport type canvasEventWithTime = eventWithTime & {\n type: EventType.IncrementalSnapshot;\n data: canvasMutationData;\n};\n\nexport type blockClass = string | RegExp;\n\nexport type maskTextClass = string | RegExp;\n\nexport type SamplingStrategy = Partial<{\n /**\n * false means not to record mouse/touch move events\n * number is the throttle threshold of recording mouse/touch move\n */\n mousemove: boolean | number;\n /**\n * number is the throttle threshold of mouse/touch move callback\n */\n mousemoveCallback: number;\n /**\n * false means not to record mouse interaction events\n * can also specify record some kinds of mouse interactions\n */\n mouseInteraction: boolean | Record;\n /**\n * number is the throttle threshold of recording scroll\n */\n scroll: number;\n /**\n * number is the throttle threshold of recording media interactions\n */\n media: number;\n /**\n * 'all' will record all the input events\n * 'last' will only record the last input value while input a sequence of chars\n */\n input: 'all' | 'last';\n /**\n * 'all' will record every single canvas call\n * number between 1 and 60, will record an image snapshots in a web-worker a (maximum) number of times per second.\n * Number only supported where [`OffscreenCanvas`](http://mdn.io/offscreencanvas) is supported.\n */\n canvas: 'all' | number;\n}>;\n\nexport interface ICrossOriginIframeMirror {\n getId(\n iframe: HTMLIFrameElement,\n remoteId: number,\n parentToRemoteMap?: Map,\n remoteToParentMap?: Map,\n ): number;\n getIds(iframe: HTMLIFrameElement, remoteId: number[]): number[];\n getRemoteId(\n iframe: HTMLIFrameElement,\n parentId: number,\n map?: Map,\n ): number;\n getRemoteIds(iframe: HTMLIFrameElement, parentId: number[]): number[];\n reset(iframe?: HTMLIFrameElement): void;\n}\n\nexport type RecordPlugin = {\n name: string;\n observer?: (\n cb: (...args: Array) => void,\n win: IWindow,\n options: TOptions,\n ) => listenerHandler;\n eventProcessor?: (event: eventWithTime) => eventWithTime & TExtend;\n getMirror?: (mirrors: {\n nodeMirror: IMirror;\n crossOriginIframeMirror: ICrossOriginIframeMirror;\n crossOriginIframeStyleMirror: ICrossOriginIframeMirror;\n }) => void;\n options: TOptions;\n};\n\nexport type hooksParam = {\n mutation?: mutationCallBack;\n mousemove?: mousemoveCallBack;\n mouseInteraction?: mouseInteractionCallBack;\n scroll?: scrollCallback;\n viewportResize?: viewportResizeCallback;\n input?: inputCallback;\n mediaInteaction?: mediaInteractionCallback;\n styleSheetRule?: styleSheetRuleCallback;\n styleDeclaration?: styleDeclarationCallback;\n canvasMutation?: canvasMutationCallback;\n font?: fontCallback;\n selection?: selectionCallback;\n customElement?: customElementCallback;\n};\n\n// https://dom.spec.whatwg.org/#interface-mutationrecord\nexport type mutationRecord = Readonly<{\n type: string;\n target: Node;\n oldValue: string | null;\n addedNodes: NodeList;\n removedNodes: NodeList;\n attributeName: string | null;\n}>;\n\nexport type textCursor = {\n node: Node;\n value: string | null;\n};\nexport type textMutation = {\n id: number;\n value: string | null;\n};\n\nexport type styleOMValue = {\n [key: string]: styleValueWithPriority | string | false;\n};\n\nexport type styleValueWithPriority = [string, string];\n\nexport type attributeCursor = {\n node: Node;\n attributes: {\n [key: string]: string | styleOMValue | null;\n };\n styleDiff: styleOMValue;\n _unchangedStyles: styleOMValue;\n};\nexport type attributeMutation = {\n id: number;\n attributes: {\n [key: string]: string | styleOMValue | null;\n };\n};\n\nexport type removedNodeMutation = {\n parentId: number;\n id: number;\n isShadow?: boolean;\n};\n\nexport type addedNodeMutation = {\n parentId: number;\n // Newly recorded mutations will not have previousId any more, just for compatibility\n previousId?: number | null;\n nextId: number | null;\n node: serializedNodeWithId;\n};\n\nexport type mutationCallbackParam = {\n texts: textMutation[];\n attributes: attributeMutation[];\n removes: removedNodeMutation[];\n adds: addedNodeMutation[];\n isAttachIframe?: true;\n};\n\nexport type mutationCallBack = (m: mutationCallbackParam) => void;\n\nexport type mousemoveCallBack = (\n p: mousePosition[],\n source:\n | IncrementalSource.MouseMove\n | IncrementalSource.TouchMove\n | IncrementalSource.Drag,\n) => void;\n\nexport type mousePosition = {\n x: number;\n y: number;\n id: number;\n timeOffset: number;\n};\n\nexport type mouseMovePos = {\n x: number;\n y: number;\n id: number;\n debugData: incrementalData;\n};\n\nexport enum MouseInteractions {\n MouseUp,\n MouseDown,\n Click,\n ContextMenu,\n DblClick,\n Focus,\n Blur,\n TouchStart,\n TouchMove_Departed, // we will start a separate observer for touch move event\n TouchEnd,\n TouchCancel,\n}\n\nexport enum PointerTypes {\n Mouse,\n Pen,\n Touch,\n}\n\nexport enum CanvasContext {\n '2D',\n WebGL,\n WebGL2,\n}\n\nexport type SerializedCanvasArg =\n | {\n rr_type: 'ArrayBuffer';\n base64: string; // base64\n }\n | {\n rr_type: 'Blob';\n data: Array;\n type?: string;\n }\n | {\n rr_type: string;\n src: string; // url of image\n }\n | {\n rr_type: string;\n args: Array;\n }\n | {\n rr_type: string;\n index: number;\n };\n\nexport type CanvasArg =\n | SerializedCanvasArg\n | string\n | number\n | boolean\n | null\n | CanvasArg[];\n\ntype mouseInteractionParam = {\n type: MouseInteractions;\n id: number;\n x?: number;\n y?: number;\n pointerType?: PointerTypes;\n};\n\nexport type mouseInteractionCallBack = (d: mouseInteractionParam) => void;\n\nexport type scrollPosition = {\n id: number;\n x: number;\n y: number;\n};\n\nexport type scrollCallback = (p: scrollPosition) => void;\n\nexport type styleSheetAddRule = {\n rule: string;\n index?: number | number[];\n};\n\nexport type styleSheetDeleteRule = {\n index: number | number[];\n};\n\nexport type styleSheetRuleParam = {\n id?: number;\n styleId?: number;\n removes?: styleSheetDeleteRule[];\n adds?: styleSheetAddRule[];\n replace?: string;\n replaceSync?: string;\n};\n\nexport type styleSheetRuleCallback = (s: styleSheetRuleParam) => void;\n\nexport type adoptedStyleSheetParam = {\n // id indicates the node id of document or shadow DOMs' host element.\n id: number;\n // New CSSStyleSheets which have never appeared before.\n styles?: {\n styleId: number;\n rules: styleSheetAddRule[];\n }[];\n // StyleSheet ids to be adopted.\n styleIds: number[];\n};\n\nexport type adoptedStyleSheetCallback = (a: adoptedStyleSheetParam) => void;\n\nexport type styleDeclarationParam = {\n id?: number;\n styleId?: number;\n index: number[];\n set?: {\n property: string;\n value: string | null;\n priority: string | undefined;\n };\n remove?: {\n property: string;\n };\n};\n\nexport type styleDeclarationCallback = (s: styleDeclarationParam) => void;\n\nexport type canvasMutationCommand = {\n property: string;\n args: Array;\n setter?: true;\n};\n\nexport type canvasMutationParam =\n | {\n id: number;\n type: CanvasContext;\n commands: canvasMutationCommand[];\n }\n | ({\n id: number;\n type: CanvasContext;\n } & canvasMutationCommand);\n\nexport type canvasMutationWithType = {\n type: CanvasContext;\n} & canvasMutationCommand;\n\nexport type canvasMutationCallback = (p: canvasMutationParam) => void;\n\nexport type canvasManagerMutationCallback = (\n target: HTMLCanvasElement,\n p: canvasMutationWithType,\n) => void;\n\nexport type ImageBitmapDataURLWorkerParams = {\n id: number;\n bitmap: ImageBitmap;\n width: number;\n height: number;\n dataURLOptions: DataURLOptions;\n};\n\nexport type ImageBitmapDataURLWorkerResponse =\n | {\n id: number;\n }\n | {\n id: number;\n type: string;\n base64: string;\n width: number;\n height: number;\n };\n\nexport type fontParam = {\n family: string;\n fontSource: string;\n buffer: boolean;\n descriptors?: FontFaceDescriptors;\n};\n\nexport type fontCallback = (p: fontParam) => void;\n\nexport type viewportResizeDimension = {\n width: number;\n height: number;\n};\n\nexport type viewportResizeCallback = (d: viewportResizeDimension) => void;\n\nexport type inputValue = {\n text: string;\n isChecked: boolean;\n\n // `userTriggered` indicates if this event was triggered directly by user (userTriggered: true)\n // or was triggered indirectly (userTriggered: false)\n // Example of `userTriggered` in action:\n // User clicks on radio element (userTriggered: true) which triggers the other radio element to change (userTriggered: false)\n userTriggered?: boolean;\n};\n\nexport type inputCallback = (v: inputValue & { id: number }) => void;\n\nexport enum MediaInteractions {\n Play,\n Pause,\n Seeked,\n VolumeChange,\n RateChange,\n}\n\nexport type mediaInteractionParam = {\n type: MediaInteractions;\n id: number;\n currentTime?: number;\n volume?: number;\n muted?: boolean;\n loop?: boolean;\n playbackRate?: number;\n};\n\nexport type mediaInteractionCallback = (p: mediaInteractionParam) => void;\n\nexport type DocumentDimension = {\n x: number;\n y: number;\n // scale value relative to its parent iframe\n relativeScale: number;\n // scale value relative to the root iframe\n absoluteScale: number;\n};\n\nexport type SelectionRange = {\n start: number;\n startOffset: number;\n end: number;\n endOffset: number;\n};\n\nexport type selectionParam = {\n ranges: Array;\n};\n\nexport type selectionCallback = (p: selectionParam) => void;\n\nexport type customElementParam = {\n define?: {\n name: string;\n };\n};\n\nexport type customElementCallback = (c: customElementParam) => void;\n\n/**\n * @deprecated\n */\ninterface INode extends Node {\n __sn: serializedNodeWithId;\n}\n\nexport type DeprecatedMirror = {\n map: {\n [key: number]: INode;\n };\n getId: (n: Node) => number;\n getNode: (id: number) => INode | null;\n removeNodeFromMap: (n: Node) => void;\n has: (id: number) => boolean;\n reset: () => void;\n};\n\nexport type throttleOptions = {\n leading?: boolean;\n trailing?: boolean;\n};\n\nexport type listenerHandler = () => void;\nexport type hookResetter = () => void;\n\nexport type playerMetaData = {\n startTime: number;\n endTime: number;\n totalTime: number;\n};\n\nexport type actionWithDelay = {\n doAction: () => void;\n delay: number;\n};\n\nexport type Handler = (event?: unknown) => void;\n\nexport type Emitter = {\n on(type: string, handler: Handler): void;\n emit(type: string, event?: unknown): void;\n off(type: string, handler: Handler): void;\n};\n\nexport type Arguments = T extends (...payload: infer U) => unknown\n ? U\n : unknown;\n\nexport enum ReplayerEvents {\n Start = 'start',\n Pause = 'pause',\n /**\n * @deprecated use Play instead\n */\n Resume = 'resume',\n Resize = 'resize',\n Finish = 'finish',\n FullsnapshotRebuilded = 'fullsnapshot-rebuilded',\n LoadStylesheetStart = 'load-stylesheet-start',\n LoadStylesheetEnd = 'load-stylesheet-end',\n SkipStart = 'skip-start',\n SkipEnd = 'skip-end',\n MouseInteraction = 'mouse-interaction',\n EventCast = 'event-cast',\n CustomEvent = 'custom-event',\n Flush = 'flush',\n StateChange = 'state-change',\n PlayBack = 'play-back',\n Destroy = 'destroy',\n}\n\nexport type KeepIframeSrcFn = (src: string) => boolean;\n\ndeclare global {\n interface Window {\n FontFace: typeof FontFace;\n }\n}\n\nexport type IWindow = Window & typeof globalThis;\n\nexport type Optional = Pick, K> & Omit;\n\nexport type GetTypedKeys = TakeTypeHelper<\n Obj,\n ValueType\n>[keyof TakeTypeHelper];\nexport type TakeTypeHelper = {\n [K in keyof Obj]: Obj[K] extends ValueType ? K : never;\n};\n\nexport type TakeTypedKeyValues = Pick<\n Obj,\n TakeTypeHelper[keyof TakeTypeHelper]\n>;\n\nexport enum NodeType {\n Document,\n DocumentType,\n Element,\n Text,\n CDATA,\n Comment,\n}\n\nexport type documentNode = {\n type: NodeType.Document;\n childNodes: serializedNodeWithId[];\n compatMode?: string;\n};\n\nexport type documentTypeNode = {\n type: NodeType.DocumentType;\n name: string;\n publicId: string;\n systemId: string;\n};\n\ntype cssTextKeyAttr = {\n _cssText?: string;\n};\n\nexport type attributes = cssTextKeyAttr & {\n [key: string]:\n | string\n | number // properties e.g. rr_scrollLeft or rr_mediaCurrentTime\n | true // e.g. checked on \n | null; // an indication that an attribute was removed (during a mutation)\n};\n\nexport type legacyAttributes = {\n /**\n * @deprecated old bug in rrweb was causing these to always be set\n * @see https://github.com/rrweb-io/rrweb/pull/651\n */\n selected: false;\n};\n\nexport type mediaAttributes = {\n rr_mediaState: 'played' | 'paused';\n rr_mediaCurrentTime: number;\n /**\n * for backwards compatibility this is optional but should always be set\n */\n rr_mediaPlaybackRate?: number;\n /**\n * for backwards compatibility this is optional but should always be set\n */\n rr_mediaMuted?: boolean;\n /**\n * for backwards compatibility this is optional but should always be set\n */\n rr_mediaLoop?: boolean;\n /**\n * for backwards compatibility this is optional but should always be set\n */\n rr_mediaVolume?: number;\n};\n\nexport type elementNode = {\n type: NodeType.Element;\n tagName: string;\n attributes: attributes;\n childNodes: serializedNodeWithId[];\n isSVG?: true;\n needBlock?: boolean;\n // This is a custom element or not.\n isCustom?: true;\n};\n\nexport type textNode = {\n type: NodeType.Text;\n textContent: string;\n /**\n * @deprecated styles are now always snapshotted against parent