@bigbinary/neeto-media-recorder 2.7.41 → 2.7.43

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/core.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"core.js","sources":["node_modules/@babel/runtime/helpers/esm/arrayLikeToArray.js","node_modules/@babel/runtime/helpers/esm/arrayWithoutHoles.js","node_modules/@babel/runtime/helpers/esm/iterableToArray.js","node_modules/@babel/runtime/helpers/esm/unsupportedIterableToArray.js","node_modules/@babel/runtime/helpers/esm/nonIterableSpread.js","node_modules/@babel/runtime/helpers/esm/toConsumableArray.js","node_modules/@babel/runtime/helpers/esm/asyncToGenerator.js","node_modules/@babel/runtime/helpers/esm/classCallCheck.js","node_modules/@babel/runtime/helpers/esm/typeof.js","node_modules/@babel/runtime/helpers/esm/toPrimitive.js","node_modules/@babel/runtime/helpers/esm/toPropertyKey.js","node_modules/@babel/runtime/helpers/esm/createClass.js","node_modules/@babel/runtime/helpers/esm/defineProperty.js","node_modules/@babel/runtime/helpers/esm/classApplyDescriptorSet.js","node_modules/@babel/runtime/helpers/esm/assertClassBrand.js","node_modules/@babel/runtime/helpers/esm/classPrivateFieldGet2.js","node_modules/@babel/runtime/helpers/esm/classPrivateFieldSet.js","node_modules/@babel/runtime/helpers/esm/classApplyDescriptorGet.js","node_modules/@babel/runtime/helpers/esm/classPrivateFieldGet.js","node_modules/@babel/runtime/helpers/typeof.js","node_modules/@babel/runtime/helpers/regeneratorRuntime.js","node_modules/@babel/runtime/regenerator/index.js","node_modules/uuid/dist/esm-browser/stringify.js","node_modules/uuid/dist/esm-browser/rng.js","node_modules/uuid/dist/esm-browser/native.js","node_modules/uuid/dist/esm-browser/v4.js","src/constants.js","node_modules/@babel/runtime/helpers/esm/setPrototypeOf.js","node_modules/@babel/runtime/helpers/esm/inherits.js","node_modules/@babel/runtime/helpers/esm/assertThisInitialized.js","node_modules/@babel/runtime/helpers/esm/possibleConstructorReturn.js","node_modules/@babel/runtime/helpers/esm/getPrototypeOf.js","node_modules/@babel/runtime/helpers/esm/isNativeFunction.js","node_modules/@babel/runtime/helpers/esm/isNativeReflectConstruct.js","node_modules/@babel/runtime/helpers/esm/construct.js","node_modules/@babel/runtime/helpers/esm/wrapNativeSuper.js","src/utils/index.js","src/utils/buildRetryableApi.js","src/apis/abort_upload.js","src/apis/complete_upload.js","src/apis/part_presigned_url.js","src/core/screenRecorder/utils.js","src/apis/s3.js","src/components/MediaRecorder/utils.js","src/utils/createPrefixedLogger.js","src/core/multipartS3Uploader/utils.js","src/core/multipartS3Uploader/index.js","node_modules/@babel/runtime/helpers/esm/arrayWithHoles.js","node_modules/@babel/runtime/helpers/esm/iterableToArrayLimit.js","node_modules/@babel/runtime/helpers/esm/nonIterableRest.js","node_modules/@babel/runtime/helpers/esm/slicedToArray.js","src/core/screenRecorder/constants.js","src/core/screenRecorder/stores/index.js","src/core/screenRecorder/index.js","src/components/MediaRecorder/hooks/useMultipartS3UploadStatus.js"],"sourcesContent":["function _arrayLikeToArray(r, a) {\n (null == a || a > r.length) && (a = r.length);\n for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e];\n return n;\n}\nexport { _arrayLikeToArray as default };","import arrayLikeToArray from \"./arrayLikeToArray.js\";\nfunction _arrayWithoutHoles(r) {\n if (Array.isArray(r)) return arrayLikeToArray(r);\n}\nexport { _arrayWithoutHoles as default };","function _iterableToArray(r) {\n if (\"undefined\" != typeof Symbol && null != r[Symbol.iterator] || null != r[\"@@iterator\"]) return Array.from(r);\n}\nexport { _iterableToArray as default };","import arrayLikeToArray from \"./arrayLikeToArray.js\";\nfunction _unsupportedIterableToArray(r, a) {\n if (r) {\n if (\"string\" == typeof r) return arrayLikeToArray(r, a);\n var t = {}.toString.call(r).slice(8, -1);\n 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) ? arrayLikeToArray(r, a) : void 0;\n }\n}\nexport { _unsupportedIterableToArray as default };","function _nonIterableSpread() {\n throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}\nexport { _nonIterableSpread as default };","import arrayWithoutHoles from \"./arrayWithoutHoles.js\";\nimport iterableToArray from \"./iterableToArray.js\";\nimport unsupportedIterableToArray from \"./unsupportedIterableToArray.js\";\nimport nonIterableSpread from \"./nonIterableSpread.js\";\nfunction _toConsumableArray(r) {\n return arrayWithoutHoles(r) || iterableToArray(r) || unsupportedIterableToArray(r) || nonIterableSpread();\n}\nexport { _toConsumableArray as default };","function asyncGeneratorStep(n, t, e, r, o, a, c) {\n try {\n var i = n[a](c),\n u = i.value;\n } catch (n) {\n return void e(n);\n }\n i.done ? t(u) : Promise.resolve(u).then(r, o);\n}\nfunction _asyncToGenerator(n) {\n return function () {\n var t = this,\n e = arguments;\n return new Promise(function (r, o) {\n var a = n.apply(t, e);\n function _next(n) {\n asyncGeneratorStep(a, r, o, _next, _throw, \"next\", n);\n }\n function _throw(n) {\n asyncGeneratorStep(a, r, o, _next, _throw, \"throw\", n);\n }\n _next(void 0);\n });\n };\n}\nexport { _asyncToGenerator as default };","function _classCallCheck(a, n) {\n if (!(a instanceof n)) throw new TypeError(\"Cannot call a class as a function\");\n}\nexport { _classCallCheck as default };","function _typeof(o) {\n \"@babel/helpers - typeof\";\n\n return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) {\n return typeof o;\n } : function (o) {\n return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o;\n }, _typeof(o);\n}\nexport { _typeof as default };","import _typeof from \"./typeof.js\";\nfunction toPrimitive(t, r) {\n if (\"object\" != _typeof(t) || !t) return t;\n var e = t[Symbol.toPrimitive];\n if (void 0 !== e) {\n var i = e.call(t, r || \"default\");\n if (\"object\" != _typeof(i)) return i;\n throw new TypeError(\"@@toPrimitive must return a primitive value.\");\n }\n return (\"string\" === r ? String : Number)(t);\n}\nexport { toPrimitive as default };","import _typeof from \"./typeof.js\";\nimport toPrimitive from \"./toPrimitive.js\";\nfunction toPropertyKey(t) {\n var i = toPrimitive(t, \"string\");\n return \"symbol\" == _typeof(i) ? i : i + \"\";\n}\nexport { toPropertyKey as default };","import toPropertyKey from \"./toPropertyKey.js\";\nfunction _defineProperties(e, r) {\n for (var t = 0; t < r.length; t++) {\n var o = r[t];\n o.enumerable = o.enumerable || !1, o.configurable = !0, \"value\" in o && (o.writable = !0), Object.defineProperty(e, toPropertyKey(o.key), o);\n }\n}\nfunction _createClass(e, r, t) {\n return r && _defineProperties(e.prototype, r), t && _defineProperties(e, t), Object.defineProperty(e, \"prototype\", {\n writable: !1\n }), e;\n}\nexport { _createClass as default };","import toPropertyKey from \"./toPropertyKey.js\";\nfunction _defineProperty(e, r, t) {\n return (r = toPropertyKey(r)) in e ? Object.defineProperty(e, r, {\n value: t,\n enumerable: !0,\n configurable: !0,\n writable: !0\n }) : e[r] = t, e;\n}\nexport { _defineProperty as default };","function _classApplyDescriptorSet(e, t, l) {\n if (t.set) t.set.call(e, l);else {\n if (!t.writable) throw new TypeError(\"attempted to set read only private field\");\n t.value = l;\n }\n}\nexport { _classApplyDescriptorSet as default };","function _assertClassBrand(e, t, n) {\n if (\"function\" == typeof e ? e === t : e.has(t)) return arguments.length < 3 ? t : n;\n throw new TypeError(\"Private element is not present on this object\");\n}\nexport { _assertClassBrand as default };","import assertClassBrand from \"./assertClassBrand.js\";\nfunction _classPrivateFieldGet2(s, a) {\n return s.get(assertClassBrand(s, a));\n}\nexport { _classPrivateFieldGet2 as default };","import classApplyDescriptorSet from \"./classApplyDescriptorSet.js\";\nimport classPrivateFieldGet2 from \"./classPrivateFieldGet2.js\";\nfunction _classPrivateFieldSet(e, t, r) {\n var s = classPrivateFieldGet2(t, e);\n return classApplyDescriptorSet(e, s, r), r;\n}\nexport { _classPrivateFieldSet as default };","function _classApplyDescriptorGet(e, t) {\n return t.get ? t.get.call(e) : t.value;\n}\nexport { _classApplyDescriptorGet as default };","import classApplyDescriptorGet from \"./classApplyDescriptorGet.js\";\nimport classPrivateFieldGet2 from \"./classPrivateFieldGet2.js\";\nfunction _classPrivateFieldGet(e, t) {\n var r = classPrivateFieldGet2(t, e);\n return classApplyDescriptorGet(e, r);\n}\nexport { _classPrivateFieldGet as default };","function _typeof(o) {\n \"@babel/helpers - typeof\";\n\n return module.exports = _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) {\n return typeof o;\n } : function (o) {\n return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o;\n }, module.exports.__esModule = true, module.exports[\"default\"] = module.exports, _typeof(o);\n}\nmodule.exports = _typeof, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","var _typeof = require(\"./typeof.js\")[\"default\"];\nfunction _regeneratorRuntime() {\n \"use strict\"; /*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/facebook/regenerator/blob/main/LICENSE */\n module.exports = _regeneratorRuntime = function _regeneratorRuntime() {\n return e;\n }, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;\n var t,\n e = {},\n r = Object.prototype,\n n = r.hasOwnProperty,\n o = Object.defineProperty || function (t, e, r) {\n t[e] = r.value;\n },\n i = \"function\" == typeof Symbol ? Symbol : {},\n a = i.iterator || \"@@iterator\",\n c = i.asyncIterator || \"@@asyncIterator\",\n u = i.toStringTag || \"@@toStringTag\";\n function define(t, e, r) {\n return Object.defineProperty(t, e, {\n value: r,\n enumerable: !0,\n configurable: !0,\n writable: !0\n }), t[e];\n }\n try {\n define({}, \"\");\n } catch (t) {\n define = function define(t, e, r) {\n return t[e] = r;\n };\n }\n function wrap(t, e, r, n) {\n var i = e && e.prototype instanceof Generator ? e : Generator,\n a = Object.create(i.prototype),\n c = new Context(n || []);\n return o(a, \"_invoke\", {\n value: makeInvokeMethod(t, r, c)\n }), a;\n }\n function tryCatch(t, e, r) {\n try {\n return {\n type: \"normal\",\n arg: t.call(e, r)\n };\n } catch (t) {\n return {\n type: \"throw\",\n arg: t\n };\n }\n }\n e.wrap = wrap;\n var h = \"suspendedStart\",\n l = \"suspendedYield\",\n f = \"executing\",\n s = \"completed\",\n y = {};\n function Generator() {}\n function GeneratorFunction() {}\n function GeneratorFunctionPrototype() {}\n var p = {};\n define(p, a, function () {\n return this;\n });\n var d = Object.getPrototypeOf,\n v = d && d(d(values([])));\n v && v !== r && n.call(v, a) && (p = v);\n var g = GeneratorFunctionPrototype.prototype = Generator.prototype = Object.create(p);\n function defineIteratorMethods(t) {\n [\"next\", \"throw\", \"return\"].forEach(function (e) {\n define(t, e, function (t) {\n return this._invoke(e, t);\n });\n });\n }\n function AsyncIterator(t, e) {\n function invoke(r, o, i, a) {\n var c = tryCatch(t[r], t, o);\n if (\"throw\" !== c.type) {\n var u = c.arg,\n h = u.value;\n return h && \"object\" == _typeof(h) && n.call(h, \"__await\") ? e.resolve(h.__await).then(function (t) {\n invoke(\"next\", t, i, a);\n }, function (t) {\n invoke(\"throw\", t, i, a);\n }) : e.resolve(h).then(function (t) {\n u.value = t, i(u);\n }, function (t) {\n return invoke(\"throw\", t, i, a);\n });\n }\n a(c.arg);\n }\n var r;\n o(this, \"_invoke\", {\n value: function value(t, n) {\n function callInvokeWithMethodAndArg() {\n return new e(function (e, r) {\n invoke(t, n, e, r);\n });\n }\n return r = r ? r.then(callInvokeWithMethodAndArg, callInvokeWithMethodAndArg) : callInvokeWithMethodAndArg();\n }\n });\n }\n function makeInvokeMethod(e, r, n) {\n var o = h;\n return function (i, a) {\n if (o === f) throw Error(\"Generator is already running\");\n if (o === s) {\n if (\"throw\" === i) throw a;\n return {\n value: t,\n done: !0\n };\n }\n for (n.method = i, n.arg = a;;) {\n var c = n.delegate;\n if (c) {\n var u = maybeInvokeDelegate(c, n);\n if (u) {\n if (u === y) continue;\n return u;\n }\n }\n if (\"next\" === n.method) n.sent = n._sent = n.arg;else if (\"throw\" === n.method) {\n if (o === h) throw o = s, n.arg;\n n.dispatchException(n.arg);\n } else \"return\" === n.method && n.abrupt(\"return\", n.arg);\n o = f;\n var p = tryCatch(e, r, n);\n if (\"normal\" === p.type) {\n if (o = n.done ? s : l, p.arg === y) continue;\n return {\n value: p.arg,\n done: n.done\n };\n }\n \"throw\" === p.type && (o = s, n.method = \"throw\", n.arg = p.arg);\n }\n };\n }\n function maybeInvokeDelegate(e, r) {\n var n = r.method,\n o = e.iterator[n];\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;\n var i = tryCatch(o, e.iterator, r.arg);\n if (\"throw\" === i.type) return r.method = \"throw\", r.arg = i.arg, r.delegate = null, y;\n var a = i.arg;\n 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);\n }\n function pushTryEntry(t) {\n var e = {\n tryLoc: t[0]\n };\n 1 in t && (e.catchLoc = t[1]), 2 in t && (e.finallyLoc = t[2], e.afterLoc = t[3]), this.tryEntries.push(e);\n }\n function resetTryEntry(t) {\n var e = t.completion || {};\n e.type = \"normal\", delete e.arg, t.completion = e;\n }\n function Context(t) {\n this.tryEntries = [{\n tryLoc: \"root\"\n }], t.forEach(pushTryEntry, this), this.reset(!0);\n }\n function values(e) {\n if (e || \"\" === e) {\n var r = e[a];\n if (r) return r.call(e);\n if (\"function\" == typeof e.next) return e;\n if (!isNaN(e.length)) {\n var o = -1,\n i = function next() {\n for (; ++o < e.length;) if (n.call(e, o)) return next.value = e[o], next.done = !1, next;\n return next.value = t, next.done = !0, next;\n };\n return i.next = i;\n }\n }\n throw new TypeError(_typeof(e) + \" is not iterable\");\n }\n return GeneratorFunction.prototype = GeneratorFunctionPrototype, o(g, \"constructor\", {\n value: GeneratorFunctionPrototype,\n configurable: !0\n }), o(GeneratorFunctionPrototype, \"constructor\", {\n value: GeneratorFunction,\n configurable: !0\n }), GeneratorFunction.displayName = define(GeneratorFunctionPrototype, u, \"GeneratorFunction\"), e.isGeneratorFunction = function (t) {\n var e = \"function\" == typeof t && t.constructor;\n return !!e && (e === GeneratorFunction || \"GeneratorFunction\" === (e.displayName || e.name));\n }, e.mark = function (t) {\n return Object.setPrototypeOf ? Object.setPrototypeOf(t, GeneratorFunctionPrototype) : (t.__proto__ = GeneratorFunctionPrototype, define(t, u, \"GeneratorFunction\")), t.prototype = Object.create(g), t;\n }, e.awrap = function (t) {\n return {\n __await: t\n };\n }, defineIteratorMethods(AsyncIterator.prototype), define(AsyncIterator.prototype, c, function () {\n return this;\n }), e.AsyncIterator = AsyncIterator, e.async = function (t, r, n, o, i) {\n void 0 === i && (i = Promise);\n var a = new AsyncIterator(wrap(t, r, n, o), i);\n return e.isGeneratorFunction(r) ? a : a.next().then(function (t) {\n return t.done ? t.value : a.next();\n });\n }, defineIteratorMethods(g), define(g, u, \"Generator\"), define(g, a, function () {\n return this;\n }), define(g, \"toString\", function () {\n return \"[object Generator]\";\n }), e.keys = function (t) {\n var e = Object(t),\n r = [];\n for (var n in e) r.push(n);\n return r.reverse(), function next() {\n for (; r.length;) {\n var t = r.pop();\n if (t in e) return next.value = t, next.done = !1, next;\n }\n return next.done = !0, next;\n };\n }, e.values = values, Context.prototype = {\n constructor: Context,\n reset: function reset(e) {\n 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);\n },\n stop: function stop() {\n this.done = !0;\n var t = this.tryEntries[0].completion;\n if (\"throw\" === t.type) throw t.arg;\n return this.rval;\n },\n dispatchException: function dispatchException(e) {\n if (this.done) throw e;\n var r = this;\n function handle(n, o) {\n return a.type = \"throw\", a.arg = e, r.next = n, o && (r.method = \"next\", r.arg = t), !!o;\n }\n for (var o = this.tryEntries.length - 1; o >= 0; --o) {\n var i = this.tryEntries[o],\n a = i.completion;\n if (\"root\" === i.tryLoc) return handle(\"end\");\n if (i.tryLoc <= this.prev) {\n var c = n.call(i, \"catchLoc\"),\n u = n.call(i, \"finallyLoc\");\n if (c && u) {\n if (this.prev < i.catchLoc) return handle(i.catchLoc, !0);\n if (this.prev < i.finallyLoc) return handle(i.finallyLoc);\n } else if (c) {\n if (this.prev < i.catchLoc) return handle(i.catchLoc, !0);\n } else {\n if (!u) throw Error(\"try statement without catch or finally\");\n if (this.prev < i.finallyLoc) return handle(i.finallyLoc);\n }\n }\n }\n },\n abrupt: function abrupt(t, e) {\n for (var r = this.tryEntries.length - 1; r >= 0; --r) {\n var o = this.tryEntries[r];\n if (o.tryLoc <= this.prev && n.call(o, \"finallyLoc\") && this.prev < o.finallyLoc) {\n var i = o;\n break;\n }\n }\n i && (\"break\" === t || \"continue\" === t) && i.tryLoc <= e && e <= i.finallyLoc && (i = null);\n var a = i ? i.completion : {};\n return a.type = t, a.arg = e, i ? (this.method = \"next\", this.next = i.finallyLoc, y) : this.complete(a);\n },\n complete: function complete(t, e) {\n if (\"throw\" === t.type) throw t.arg;\n 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;\n },\n finish: function finish(t) {\n for (var e = this.tryEntries.length - 1; e >= 0; --e) {\n var r = this.tryEntries[e];\n if (r.finallyLoc === t) return this.complete(r.completion, r.afterLoc), resetTryEntry(r), y;\n }\n },\n \"catch\": function _catch(t) {\n for (var e = this.tryEntries.length - 1; e >= 0; --e) {\n var r = this.tryEntries[e];\n if (r.tryLoc === t) {\n var n = r.completion;\n if (\"throw\" === n.type) {\n var o = n.arg;\n resetTryEntry(r);\n }\n return o;\n }\n }\n throw Error(\"illegal catch attempt\");\n },\n delegateYield: function delegateYield(e, r, n) {\n return this.delegate = {\n iterator: values(e),\n resultName: r,\n nextLoc: n\n }, \"next\" === this.method && (this.arg = t), y;\n }\n }, e;\n}\nmodule.exports = _regeneratorRuntime, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","// TODO(Babel 8): Remove this file.\n\nvar runtime = require(\"../helpers/regeneratorRuntime\")();\nmodule.exports = runtime;\n\n// Copied from https://github.com/facebook/regenerator/blob/main/packages/runtime/runtime.js#L736=\ntry {\n regeneratorRuntime = runtime;\n} catch (accidentalStrictMode) {\n if (typeof globalThis === \"object\") {\n globalThis.regeneratorRuntime = runtime;\n } else {\n Function(\"r\", \"regeneratorRuntime = r\")(runtime);\n }\n}\n","import validate from './validate.js';\nconst byteToHex = [];\nfor (let i = 0; i < 256; ++i) {\n byteToHex.push((i + 0x100).toString(16).slice(1));\n}\nexport function unsafeStringify(arr, offset = 0) {\n return (byteToHex[arr[offset + 0]] +\n byteToHex[arr[offset + 1]] +\n byteToHex[arr[offset + 2]] +\n byteToHex[arr[offset + 3]] +\n '-' +\n byteToHex[arr[offset + 4]] +\n byteToHex[arr[offset + 5]] +\n '-' +\n byteToHex[arr[offset + 6]] +\n byteToHex[arr[offset + 7]] +\n '-' +\n byteToHex[arr[offset + 8]] +\n byteToHex[arr[offset + 9]] +\n '-' +\n byteToHex[arr[offset + 10]] +\n byteToHex[arr[offset + 11]] +\n byteToHex[arr[offset + 12]] +\n byteToHex[arr[offset + 13]] +\n byteToHex[arr[offset + 14]] +\n byteToHex[arr[offset + 15]]).toLowerCase();\n}\nfunction stringify(arr, offset = 0) {\n const uuid = unsafeStringify(arr, offset);\n if (!validate(uuid)) {\n throw TypeError('Stringified UUID is invalid');\n }\n return uuid;\n}\nexport default stringify;\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RyaW5naWZ5LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3N0cmluZ2lmeS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLFFBQVEsTUFBTSxlQUFlLENBQUM7QUFNckMsTUFBTSxTQUFTLEdBQWEsRUFBRSxDQUFDO0FBRS9CLEtBQUssSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxHQUFHLEVBQUUsRUFBRSxDQUFDLEVBQUUsQ0FBQztJQUM3QixTQUFTLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxHQUFHLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxFQUFFLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztBQUNwRCxDQUFDO0FBRUQsTUFBTSxVQUFVLGVBQWUsQ0FBQyxHQUFlLEVBQUUsTUFBTSxHQUFHLENBQUM7SUFNekQsT0FBTyxDQUNMLFNBQVMsQ0FBQyxHQUFHLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQyxDQUFDO1FBQzFCLFNBQVMsQ0FBQyxHQUFHLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQyxDQUFDO1FBQzFCLFNBQVMsQ0FBQyxHQUFHLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQyxDQUFDO1FBQzFCLFNBQVMsQ0FBQyxHQUFHLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQyxDQUFDO1FBQzFCLEdBQUc7UUFDSCxTQUFTLENBQUMsR0FBRyxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUMsQ0FBQztRQUMxQixTQUFTLENBQUMsR0FBRyxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUMsQ0FBQztRQUMxQixHQUFHO1FBQ0gsU0FBUyxDQUFDLEdBQUcsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDLENBQUM7UUFDMUIsU0FBUyxDQUFDLEdBQUcsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDLENBQUM7UUFDMUIsR0FBRztRQUNILFNBQVMsQ0FBQyxHQUFHLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQyxDQUFDO1FBQzFCLFNBQVMsQ0FBQyxHQUFHLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQyxDQUFDO1FBQzFCLEdBQUc7UUFDSCxTQUFTLENBQUMsR0FBRyxDQUFDLE1BQU0sR0FBRyxFQUFFLENBQUMsQ0FBQztRQUMzQixTQUFTLENBQUMsR0FBRyxDQUFDLE1BQU0sR0FBRyxFQUFFLENBQUMsQ0FBQztRQUMzQixTQUFTLENBQUMsR0FBRyxDQUFDLE1BQU0sR0FBRyxFQUFFLENBQUMsQ0FBQztRQUMzQixTQUFTLENBQUMsR0FBRyxDQUFDLE1BQU0sR0FBRyxFQUFFLENBQUMsQ0FBQztRQUMzQixTQUFTLENBQUMsR0FBRyxDQUFDLE1BQU0sR0FBRyxFQUFFLENBQUMsQ0FBQztRQUMzQixTQUFTLENBQUMsR0FBRyxDQUFDLE1BQU0sR0FBRyxFQUFFLENBQUMsQ0FBQyxDQUM1QixDQUFDLFdBQVcsRUFBRSxDQUFDO0FBQ2xCLENBQUM7QUFFRCxTQUFTLFNBQVMsQ0FBQyxHQUFlLEVBQUUsTUFBTSxHQUFHLENBQUM7SUFDNUMsTUFBTSxJQUFJLEdBQUcsZUFBZSxDQUFDLEdBQUcsRUFBRSxNQUFNLENBQUMsQ0FBQztJQU8xQyxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUM7UUFDcEIsTUFBTSxTQUFTLENBQUMsNkJBQTZCLENBQUMsQ0FBQztJQUNqRCxDQUFDO0lBRUQsT0FBTyxJQUFJLENBQUM7QUFDZCxDQUFDO0FBRUQsZUFBZSxTQUFTLENBQUMifQ==","let getRandomValues;\nconst rnds8 = new Uint8Array(16);\nexport default function rng() {\n if (!getRandomValues) {\n if (typeof crypto === 'undefined' || !crypto.getRandomValues) {\n throw new Error('crypto.getRandomValues() not supported. See https://github.com/uuidjs/uuid#getrandomvalues-not-supported');\n }\n getRandomValues = crypto.getRandomValues.bind(crypto);\n }\n return getRandomValues(rnds8);\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm5nLWJyb3dzZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvcm5nLWJyb3dzZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBSUEsSUFBSSxlQUEwRCxDQUFDO0FBRS9ELE1BQU0sS0FBSyxHQUFHLElBQUksVUFBVSxDQUFDLEVBQUUsQ0FBQyxDQUFDO0FBRWpDLE1BQU0sQ0FBQyxPQUFPLFVBQVUsR0FBRztJQUV6QixJQUFJLENBQUMsZUFBZSxFQUFFLENBQUM7UUFDckIsSUFBSSxPQUFPLE1BQU0sS0FBSyxXQUFXLElBQUksQ0FBQyxNQUFNLENBQUMsZUFBZSxFQUFFLENBQUM7WUFDN0QsTUFBTSxJQUFJLEtBQUssQ0FDYiwwR0FBMEcsQ0FDM0csQ0FBQztRQUNKLENBQUM7UUFFRCxlQUFlLEdBQUcsTUFBTSxDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDeEQsQ0FBQztJQUVELE9BQU8sZUFBZSxDQUFDLEtBQUssQ0FBQyxDQUFDO0FBQ2hDLENBQUMifQ==","const randomUUID = typeof crypto !== 'undefined' && crypto.randomUUID && crypto.randomUUID.bind(crypto);\nexport default { randomUUID };\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmF0aXZlLWJyb3dzZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvbmF0aXZlLWJyb3dzZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsTUFBTSxVQUFVLEdBQ2QsT0FBTyxNQUFNLEtBQUssV0FBVyxJQUFJLE1BQU0sQ0FBQyxVQUFVLElBQUksTUFBTSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUM7QUFFdkYsZUFBZSxFQUFFLFVBQVUsRUFBRSxDQUFDIn0=","import native from './native.js';\nimport rng from './rng.js';\nimport { unsafeStringify } from './stringify.js';\nfunction v4(options, buf, offset) {\n if (native.randomUUID && !buf && !options) {\n return native.randomUUID();\n }\n options = options || {};\n const rnds = options.random || (options.rng || rng)();\n rnds[6] = (rnds[6] & 0x0f) | 0x40;\n rnds[8] = (rnds[8] & 0x3f) | 0x80;\n if (buf) {\n offset = offset || 0;\n for (let i = 0; i < 16; ++i) {\n buf[offset + i] = rnds[i];\n }\n return buf;\n }\n return unsafeStringify(rnds);\n}\nexport default v4;\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidjQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvdjQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxNQUFNLE1BQU0sYUFBYSxDQUFDO0FBQ2pDLE9BQU8sR0FBRyxNQUFNLFVBQVUsQ0FBQztBQUMzQixPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFJakQsU0FBUyxFQUFFLENBQUMsT0FBeUIsRUFBRSxHQUFnQixFQUFFLE1BQWU7SUFDdEUsSUFBSSxNQUFNLENBQUMsVUFBVSxJQUFJLENBQUMsR0FBRyxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUM7UUFDMUMsT0FBTyxNQUFNLENBQUMsVUFBVSxFQUFFLENBQUM7SUFDN0IsQ0FBQztJQUVELE9BQU8sR0FBRyxPQUFPLElBQUksRUFBRSxDQUFDO0lBRXhCLE1BQU0sSUFBSSxHQUFHLE9BQU8sQ0FBQyxNQUFNLElBQUksQ0FBQyxPQUFPLENBQUMsR0FBRyxJQUFJLEdBQUcsQ0FBQyxFQUFFLENBQUM7SUFHdEQsSUFBSSxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxHQUFHLElBQUksQ0FBQyxHQUFHLElBQUksQ0FBQztJQUNsQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEdBQUcsSUFBSSxDQUFDLEdBQUcsSUFBSSxDQUFDO0lBR2xDLElBQUksR0FBRyxFQUFFLENBQUM7UUFDUixNQUFNLEdBQUcsTUFBTSxJQUFJLENBQUMsQ0FBQztRQUVyQixLQUFLLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUFFLENBQUM7WUFDNUIsR0FBRyxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUMsR0FBRyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDNUIsQ0FBQztRQUVELE9BQU8sR0FBRyxDQUFDO0lBQ2IsQ0FBQztJQUVELE9BQU8sZUFBZSxDQUFDLElBQUksQ0FBQyxDQUFDO0FBQy9CLENBQUM7QUFFRCxlQUFlLEVBQUUsQ0FBQyJ9","import platform from \"platform\";\nimport { isNotNil } from \"ramda\";\n\n// https://docs.aws.amazon.com/AmazonS3/latest/API/ErrorResponses.html#ErrorCodeList\nexport const RETRYABLE_ERRORS = [500, 503];\n\nexport const ONE_SECOND_IN_MILLISECONDS = 1000;\nexport const HALF_A_SECOND_IN_MILLISECONDS = 500;\nexport const TWO_HUNDRED_MILLISECONDS = 200;\n\nexport const ONE_MINUTE_IN_MILLISECONDS = 60 * ONE_SECOND_IN_MILLISECONDS;\nexport const ONE_HOUR_IN_MILLISECONDS = 60 * ONE_MINUTE_IN_MILLISECONDS;\n\nexport const ONE_SECOND = 1;\n\nexport const COUNTDOWN_TIME = 3;\n\nexport const UPLOAD_EVENT = {\n onComplete: \"onComplete\",\n onError: \"onError\",\n onProgress: \"onProgress\",\n};\n\nexport const UPLOAD_STATUS = {\n uploading: \"uploading\",\n completed: \"completed\",\n aborting: \"aborting\",\n insufficient_data: \"insufficient_data\",\n error: \"error\",\n};\n\nexport const SCREEN_RECORDER_STATUS = {\n media_aborted: \"media_aborted\",\n permission_denied: \"permission_denied\",\n no_specified_media_found: \"no_specified_media_found\",\n media_in_use: \"media_in_use\",\n invalid_media_constraints: \"invalid_media_constraints\",\n no_chrome_flags_set: \"no_chrome_flags_set\",\n recorder_error: \"recorder_error\",\n idle: \"idle\",\n acquiring_media: \"acquiring_media\",\n media_acquired: \"media_acquired\",\n restarting: \"restarting\",\n recording: \"recording\",\n stopping: \"stopping\",\n stopped: \"stopped\",\n paused: \"paused\",\n};\n\nexport const SCREEN_RECORDER_ERROR = {\n MicPermissionDenied: \"mic_permission_denied\",\n AbortError: \"media_aborted\",\n NotAllowedError: \"permission_denied\",\n NotFoundError: \"no_specified_media_found\",\n NotReadableError: \"media_in_use\",\n OverconstrainedError: \"invalid_media_constraints\",\n TypeError: \"no_chrome_flags_set\",\n None: \"\",\n NoRecorder: \"recorder_error\",\n UnSupportedBrowser: \"unsupported_browser\",\n FailedToStart: \"failed_to_start\",\n CreateRecordingError: \"create_recording_error\",\n InsufficientData: \"insufficient_data\",\n};\n\nexport const SCREEN_RECORDER_EVENT = {\n onStart: \"onStart\",\n onStop: \"onStop\",\n onDiscard: \"onDiscard\",\n onDataAvailable: \"onDataAvailable\",\n onDiscardDuringCountdown: \"onDiscardDuringCountdown\",\n onRestart: \"onRestart\",\n onReUpload: \"onReUpload\",\n onReUploadFromDisk: \"onReUploadFromDisk\",\n onPause: \"onPause\",\n onResume: \"onResume\",\n onCountdownStart: \"onCountdownStart\",\n onCountdown: \"onCountDown\",\n onCountdownEnd: \"onCountdownEnd\",\n onCountdownSkip: \"onCountdownSkip\",\n onShareSelected: \"onShareSelected\",\n // Fired when the capture ends without the app calling stop() — i.e. the\n // browser's \"Stop sharing\" pill or an OS-level termination (resource\n // pressure, source closed, permission revoked). The two are\n // indistinguishable in the Web/extension APIs, so consumers should surface\n // both possibilities. If no consumer subscribes, the recorder falls back to\n // finalizing the recording (stopRecording).\n onUnexpectedEnd: \"onUnexpectedEnd\",\n};\n\nexport const TOTAL_RETRIES = 15;\nexport const ABORT_UPLOAD_RETRIES = 2;\nexport const INITIAL_RETRY_DELAY = 4000;\nexport const MAX_RETRY_DELAY = 16000;\n\nexport const DEFAULT_RETRY_CONFIG = {\n retries: TOTAL_RETRIES,\n retryDelay: INITIAL_RETRY_DELAY,\n retryableStatuses: [],\n};\n\n// No need to localize this since it will only be used in the code\n// eslint-disable-next-line @bigbinary/neeto/hard-coded-strings-should-be-localized\nexport const NETWORK_ERROR = \"Network Error\";\nexport const TIMEOUT_ERROR = \"ECONNABORTED\";\n\nexport const HAS_CHROME_NAMESPACE = typeof chrome === \"object\";\n\nexport const IS_EXTENSION = HAS_CHROME_NAMESPACE && isNotNil(chrome.extension);\n\nexport const IS_SAFARI = platform.name === \"Safari\";\n\nexport const IS_SAFARI_EXTENSION = IS_SAFARI && IS_EXTENSION;\n\nexport const PERMISSIONS_HELP_DOC =\n \"https://neetorecordhelp.neetokb.com/p/a-10efcfd7\";\n\n// Firefox refuses to start a MediaRecorder on a stream that has both audio and\n// video tracks unless the MIME string declares the audio codec too. Chromium\n// and Safari accept the video-only form and silently pick Opus/AAC. We keep\n// both variants and always prefer the codec-complete ones in\n// getSupportedMimeType so a single code path works across browsers.\nexport const MIME_TYPE = {\n mp4: \"video/mp4\",\n webmH264Opus: \"video/webm;codecs=h264,opus\",\n webmH264: \"video/webm;codecs=h264\",\n webmVp9Opus: \"video/webm;codecs=vp9,opus\",\n webmVp9: \"video/webm;codecs=vp9\",\n webmVp8Opus: \"video/webm;codecs=vp8,opus\",\n webmVp8: \"video/webm;codecs=vp8\",\n webm: \"video/webm\",\n};\n\nexport const START_RECORDING_SOUND =\n \"https://neeto-record-static-assets.s3.amazonaws.com/recording-start-sound-2.mp3\";\n\nexport const COUNTDOWN_TICK_SOUND =\n \"https://neeto-record-static-assets.s3.us-east-1.amazonaws.com/recording-tick-sound.mp3\";\n\nexport const STOP_RECORDING_DUE_TO_LIMIT_REACHED_SOUND =\n \"https://neeto-record-static-assets.s3.amazonaws.com/recording-end-sound.mp3\";\n\nexport const RECORDING_LIMIT_REACHED_WARNING_SOUND =\n \"https://neeto-record-static-assets.s3.amazonaws.com/recording-warning-sound.mp3\";\n\nexport const RECORDING_TIME_LIMIT_FREE_PLAN = 15 * ONE_MINUTE_IN_MILLISECONDS; // 15 minutes\nexport const RECORDING_TIME_LIMIT_PRO_PLAN = 2 * ONE_HOUR_IN_MILLISECONDS; // 2 hours\n\nexport const MIC_NOT_WORKING_ALERT_TIME = 30;\nexport const MIC_NOT_WORKING_SILENCE_TIMEOUT =\n MIC_NOT_WORKING_ALERT_TIME * 1000;\n","function _setPrototypeOf(t, e) {\n return _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function (t, e) {\n return t.__proto__ = e, t;\n }, _setPrototypeOf(t, e);\n}\nexport { _setPrototypeOf as default };","import setPrototypeOf from \"./setPrototypeOf.js\";\nfunction _inherits(t, e) {\n if (\"function\" != typeof e && null !== e) throw new TypeError(\"Super expression must either be null or a function\");\n t.prototype = Object.create(e && e.prototype, {\n constructor: {\n value: t,\n writable: !0,\n configurable: !0\n }\n }), Object.defineProperty(t, \"prototype\", {\n writable: !1\n }), e && setPrototypeOf(t, e);\n}\nexport { _inherits as default };","function _assertThisInitialized(e) {\n if (void 0 === e) throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n return e;\n}\nexport { _assertThisInitialized as default };","import _typeof from \"./typeof.js\";\nimport assertThisInitialized from \"./assertThisInitialized.js\";\nfunction _possibleConstructorReturn(t, e) {\n if (e && (\"object\" == _typeof(e) || \"function\" == typeof e)) return e;\n if (void 0 !== e) throw new TypeError(\"Derived constructors may only return object or undefined\");\n return assertThisInitialized(t);\n}\nexport { _possibleConstructorReturn as default };","function _getPrototypeOf(t) {\n return _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function (t) {\n return t.__proto__ || Object.getPrototypeOf(t);\n }, _getPrototypeOf(t);\n}\nexport { _getPrototypeOf as default };","function _isNativeFunction(t) {\n try {\n return -1 !== Function.toString.call(t).indexOf(\"[native code]\");\n } catch (n) {\n return \"function\" == typeof t;\n }\n}\nexport { _isNativeFunction as default };","function _isNativeReflectConstruct() {\n try {\n var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {}));\n } catch (t) {}\n return (_isNativeReflectConstruct = function _isNativeReflectConstruct() {\n return !!t;\n })();\n}\nexport { _isNativeReflectConstruct as default };","import isNativeReflectConstruct from \"./isNativeReflectConstruct.js\";\nimport setPrototypeOf from \"./setPrototypeOf.js\";\nfunction _construct(t, e, r) {\n if (isNativeReflectConstruct()) return Reflect.construct.apply(null, arguments);\n var o = [null];\n o.push.apply(o, e);\n var p = new (t.bind.apply(t, o))();\n return r && setPrototypeOf(p, r.prototype), p;\n}\nexport { _construct as default };","import getPrototypeOf from \"./getPrototypeOf.js\";\nimport setPrototypeOf from \"./setPrototypeOf.js\";\nimport isNativeFunction from \"./isNativeFunction.js\";\nimport construct from \"./construct.js\";\nfunction _wrapNativeSuper(t) {\n var r = \"function\" == typeof Map ? new Map() : void 0;\n return _wrapNativeSuper = function _wrapNativeSuper(t) {\n if (null === t || !isNativeFunction(t)) return t;\n if (\"function\" != typeof t) throw new TypeError(\"Super expression must either be null or a function\");\n if (void 0 !== r) {\n if (r.has(t)) return r.get(t);\n r.set(t, Wrapper);\n }\n function Wrapper() {\n return construct(t, arguments, getPrototypeOf(this).constructor);\n }\n return Wrapper.prototype = Object.create(t.prototype, {\n constructor: {\n value: Wrapper,\n enumerable: !1,\n writable: !0,\n configurable: !0\n }\n }), setPrototypeOf(Wrapper, t);\n }, _wrapNativeSuper(t);\n}\nexport { _wrapNativeSuper as default };","export const sleep = delay =>\n new Promise(resolve => setTimeout(resolve, delay));\n\nexport const generatePublicUrl = (\n recordingId,\n baseURL = window.location.origin\n) => `${baseURL}/watch/${recordingId}`;\n","// Axios is required here to detect CancelledError so retries can be skipped\n// when an AbortController fires after the request was queued. The filename\n// rule fires because of this axios import — this file is a retry helper, not\n// an API connector, so the snake_case requirement doesn't apply.\n/* eslint-disable\n @bigbinary/neeto/no-axios-import-outside-apis,\n @bigbinary/neeto/use-snake-case-for-api-connector-filename */\nimport axios from \"axios\";\nimport { min } from \"ramda\";\n\nimport {\n DEFAULT_RETRY_CONFIG,\n INITIAL_RETRY_DELAY,\n MAX_RETRY_DELAY,\n TOTAL_RETRIES,\n} from \"src/constants\";\nimport { sleep } from \"utils\";\n\nclass RetryError extends Error {\n constructor(message) {\n super(message);\n }\n}\n\nconst buildRetryableApi =\n (\n apiConnector,\n {\n retries = TOTAL_RETRIES,\n retryDelay = INITIAL_RETRY_DELAY,\n } = DEFAULT_RETRY_CONFIG\n ) =>\n async apiConnectorArgs => {\n const { config = null } = apiConnectorArgs;\n\n // If the signal is already aborted before we start, addEventListener(\"abort\")\n // will never fire — so we'd otherwise run the full retry/backoff schedule\n // against an aborted request. Throw an axios CanceledError so callers'\n // `axios.isCancel` checks treat this as cancellation instead of a real\n // failure (e.g. completeUpload won't flip status to \"error\" while a\n // parallel abortUpload is finishing).\n if (config?.signal?.aborted) {\n throw new axios.CanceledError(\"Request cancelled\");\n }\n\n let remainingAttempts = retries + 1;\n let shouldCancelRetries = false;\n\n config?.signal?.addEventListener(\"abort\", () => {\n shouldCancelRetries = true;\n });\n\n while (remainingAttempts-- && !shouldCancelRetries) {\n try {\n return await apiConnector(apiConnectorArgs);\n } catch (error) {\n // Cancelled requests should bail immediately rather than spend the\n // full retry budget (4s + 8s + 16s × N) waiting on a dead signal.\n if (axios.isCancel(error)) throw error;\n\n logger.error(\n \"buildRetryableApi -> Failed to connect, remainingAttempts:\",\n error?.config?.url,\n error.response?.status,\n remainingAttempts\n );\n\n if (error.response?.status !== 401 && remainingAttempts > 0) {\n logger.info(\n \"buildRetryableApi -> Failed to connect -> retry in:\",\n retryDelay\n );\n await sleep(retryDelay);\n retryDelay = min(retryDelay * 2, MAX_RETRY_DELAY);\n if (shouldCancelRetries) throw error;\n } else {\n throw error;\n }\n }\n }\n\n throw new RetryError(\"Request cancelled or request retries exhausted\");\n };\n\nexport default buildRetryableApi;\n","import axios from \"axios\";\n\nimport { ABORT_UPLOAD_RETRIES } from \"src/constants\";\nimport buildRetryableApi from \"utils/buildRetryableApi\";\n\nconst create = ({ recordingId, payload }) =>\n axios.post(`/api/v1/recordings/${recordingId}/abort_upload`, {\n abortUpload: payload,\n });\n\nconst retryableCreate = buildRetryableApi(create, {\n retries: ABORT_UPLOAD_RETRIES,\n});\n\nconst abortUploadApi = { create: retryableCreate };\n\nexport default abortUploadApi;\n","import axios from \"axios\";\n\nimport buildRetryableApi from \"utils/buildRetryableApi\";\n\nconst create = ({ recordingId, payload, config }) =>\n axios.post(\n `/api/v1/recordings/${recordingId}/complete_upload`,\n { completeUpload: payload },\n config\n );\n\nconst retryableCreate = buildRetryableApi(create);\n\nconst completeUploadApi = { create: retryableCreate };\n\nexport default completeUploadApi;\n","import axios from \"axios\";\n\nimport buildRetryableApi from \"utils/buildRetryableApi\";\n\nconst create = ({ recordingId, payload, config }) =>\n axios.post(\n `/api/v1/recordings/${recordingId}/part_presigned_url`,\n { partPresignedUrl: payload },\n config\n );\n\nconst retryableCreate = buildRetryableApi(create);\n\nconst partPresignedUrlApi = { create: retryableCreate };\n\nexport default partPresignedUrlApi;\n","import { existsBy, isNotEmpty } from \"neetocist\";\nimport { isNil } from \"ramda\";\n\nimport { IS_SAFARI, MIME_TYPE } from \"src/constants\";\n\nconst getUnSupportedConstraints = mediaType => {\n const supportedMediaConstraints =\n navigator.mediaDevices.getSupportedConstraints();\n\n return Object.keys(mediaType).filter(\n constraint => !supportedMediaConstraints[constraint]\n );\n};\n\nexport const checkConstraints = (...mediaTypes) => {\n if (isNil(navigator.mediaDevices)) {\n return;\n }\n\n const unSupportedConstraints = mediaTypes\n .filter(mediaType => typeof mediaType === \"object\")\n .map(getUnSupportedConstraints)\n .flat();\n\n if (isNotEmpty(unSupportedConstraints)) {\n logger.error(\n `The constraints ${unSupportedConstraints.join(\n \",\"\n )} doesn't support on this browser.`\n );\n }\n};\n\nexport const isStreamEnded = mediaStream =>\n existsBy({ readyState: \"ended\" }, mediaStream.getTracks());\n\n// Picks the best MediaRecorder MIME type the current browser supports.\n// Chromium produces H.264-in-WebM, Safari only produces MP4, and Firefox\n// produces VP9/VP8-in-WebM. Returns null if none of the candidates are\n// supported so callers can surface an \"unsupported browser\" state.\nexport const getSupportedMimeType = () => {\n if (typeof MediaRecorder === \"undefined\") return null;\n\n // Safari only exposes a working MediaRecorder for MP4.\n if (IS_SAFARI && MediaRecorder.isTypeSupported(MIME_TYPE.mp4)) {\n return MIME_TYPE.mp4;\n }\n\n // Prefer types that declare the audio codec explicitly. Firefox requires\n // this when the MediaStream has both audio and video tracks; Chromium and\n // Safari are happy with either form.\n const candidates = [\n MIME_TYPE.webmH264Opus,\n MIME_TYPE.webmVp9Opus,\n MIME_TYPE.webmVp8Opus,\n MIME_TYPE.webmH264,\n MIME_TYPE.webmVp9,\n MIME_TYPE.webmVp8,\n MIME_TYPE.webm,\n MIME_TYPE.mp4,\n ];\n\n return candidates.find(type => MediaRecorder.isTypeSupported(type)) ?? null;\n};\n\nexport const getMediaRecorderOptions = () => {\n const mimeType = getSupportedMimeType();\n\n if (!mimeType) return {};\n\n return { mimeType };\n};\n\nexport const addGainNode = (audioStream, gain = 1.5) => {\n const audioContext = new AudioContext();\n const audioStreamSource = audioContext.createMediaStreamSource(audioStream);\n\n const destinationStream = audioContext.createMediaStreamDestination();\n\n const gainNode = audioContext.createGain();\n gainNode.gain.value = gain;\n\n audioStreamSource.connect(gainNode);\n gainNode.connect(destinationStream);\n\n return destinationStream.stream;\n};\n","import axios from \"axios\";\nimport { identity } from \"ramda\";\n\nimport { getSupportedMimeType } from \"src/core/screenRecorder/utils\";\nimport buildRetryableApi from \"utils/buildRetryableApi\";\n\nconst s3AxiosInstance = axios.create({\n headers: { \"Content-Type\": getSupportedMimeType() },\n});\n\ns3AxiosInstance.interceptors.response.use(\n identity,\n error => !axios.isCancel(error) && Promise.reject(error)\n);\n\nconst presignedUpload = ({ presignedUrl, blob, config }) =>\n s3AxiosInstance.put(presignedUrl, blob, config);\n\nconst retryablePresignedUpload = buildRetryableApi(presignedUpload);\n\nconst s3Api = { presignedUpload: retryablePresignedUpload };\n\nexport default s3Api;\n","import { copyToClipboard } from \"neetocommons/utils/general\";\nimport {\n IS_EXTENSION,\n MIME_TYPE,\n ONE_MINUTE_IN_MILLISECONDS,\n ONE_SECOND_IN_MILLISECONDS,\n SCREEN_RECORDER_STATUS,\n UPLOAD_STATUS,\n} from \"neetomediarecorder/constants\";\nimport { screenRecorder } from \"neetomediarecorder/core\";\nimport { Toastr } from \"neetoui\";\nimport platform from \"platform\";\n\nimport { ONE_HOUR_IN_MILLISECONDS } from \"src/constants\";\nimport { getSupportedMimeType } from \"src/core/screenRecorder/utils\";\nimport { generatePublicUrl } from \"utils\";\n\nconst formatTime = time => Math.floor(time).toString().padStart(2, \"0\");\n\nexport const getTimeString = date => {\n const hours = formatTime(Math.floor(date / ONE_HOUR_IN_MILLISECONDS));\n const minutes = formatTime(\n (date % ONE_HOUR_IN_MILLISECONDS) / ONE_MINUTE_IN_MILLISECONDS\n );\n\n const seconds = formatTime(\n (date % ONE_MINUTE_IN_MILLISECONDS) / ONE_SECOND_IN_MILLISECONDS\n );\n\n if (hours > 0) {\n return `${hours}:${minutes}:${seconds}`;\n }\n\n return `${minutes}:${seconds}`;\n};\n\nexport const downloadRecordingBlob = (blob, name) => {\n const blobUrl = URL.createObjectURL(blob);\n\n const linkElement = document.createElement(\"a\");\n\n linkElement.href = blobUrl;\n linkElement.download = name;\n\n document.body.appendChild(linkElement);\n\n // Dispatch click event on the link\n // This is necessary as link.click() does not work on the latest firefox\n linkElement.dispatchEvent(\n new MouseEvent(\"click\", {\n bubbles: true,\n cancelable: true,\n view: window,\n })\n );\n\n document.body.removeChild(linkElement);\n URL.revokeObjectURL(blobUrl);\n};\n\nexport const hasRecordingDiscarded = ({ recorderStatus, uploadStatus }) =>\n recorderStatus === SCREEN_RECORDER_STATUS.stopped &&\n uploadStatus === UPLOAD_STATUS.aborting;\n\nexport const getRecorderTimeLimitInHumanFormat = timeInMs => {\n const minutes = Math.floor(timeInMs / (1000 * 60));\n const hours = Math.floor(minutes / 60);\n\n if (hours < 1) {\n if (minutes < 1) {\n return `${Math.floor(timeInMs / ONE_SECOND_IN_MILLISECONDS)} seconds`;\n }\n\n return `${minutes} minutes`;\n }\n\n return `${hours} hours`;\n};\n\nexport const getDeviceInfo = async (mimeType = getSupportedMimeType()) => {\n const isCameraEnabled = IS_EXTENSION\n ? (await chrome.storage.local.get(\"isCameraOn\"))?.isCameraOn\n : false;\n\n return {\n os: platform.os?.toString(),\n app: IS_EXTENSION\n ? `chrome extension v${chrome.runtime.getManifest().version}`\n : \"web\",\n browser: `${platform.name} v${platform.version}`,\n isCameraEnabled,\n isMicEnabled: !!screenRecorder.audioConfiguration,\n displaySurface: screenRecorder.displaySurface,\n mimeType,\n };\n};\n\nexport const isMp4Supported = (mimeType = getSupportedMimeType()) =>\n mimeType.includes(MIME_TYPE.mp4);\n\n/**\n * Copy a recording's public link to the clipboard while preserving Safari's\n * transient user activation. Must be invoked synchronously inside a user\n * gesture handler (e.g. button onClick).\n *\n * Safari (WebKit) refuses navigator.clipboard.write[Text] outside a user\n * gesture, so the post-recording auto-copy cannot be done in a useEffect.\n * Since `recording.id` is only known once the create-recording POST resolves,\n * we keep the gesture alive across that wait by handing\n * navigator.clipboard.write a ClipboardItem backed by a Promise<Blob>; Safari\n * preserves the activation until the promise settles.\n *\n * @param {Object} params\n * @param {React.RefObject<Promise<unknown> | null>} params.createRecordingPromise\n * @param {React.RefObject<{ id?: string | number }>} params.recordingRef\n * @param {React.RefObject<string>} params.baseURLRef\n * @param {string} params.successMessage Toastr message shown on success.\n */\nexport const copyRecordingLinkToClipboardOnStop = ({\n createRecordingPromise,\n recordingRef,\n baseURLRef,\n successMessage,\n}) => {\n const resolveLink = async () => {\n if (createRecordingPromise?.current) {\n await createRecordingPromise.current;\n }\n const recordingId = recordingRef?.current?.id;\n const baseURL = baseURLRef?.current;\n if (!recordingId || !baseURL) {\n throw new Error(\"Recording id or base URL unavailable\");\n }\n\n return generatePublicUrl(recordingId, baseURL);\n };\n\n if (\n typeof window.ClipboardItem === \"function\" &&\n navigator.clipboard?.write\n ) {\n const linkBlobPromise = (async () =>\n new Blob([await resolveLink()], { type: \"text/plain\" }))();\n\n // Synchronously initiate clipboard.write so Safari preserves the user\n // activation across the wait for linkBlobPromise.\n const writePromise = navigator.clipboard.write([\n new ClipboardItem({ \"text/plain\": linkBlobPromise }),\n ]);\n\n (async () => {\n try {\n await writePromise;\n Toastr.success(successMessage);\n } catch {\n // Swallow: clipboard.write may reject (e.g. Safari denied due to\n // missing gesture, or recording id / baseURL was unavailable).\n }\n })();\n\n return;\n }\n\n // Legacy fallback for browsers without ClipboardItem (e.g. Firefox < 127).\n // These browsers don't enforce Safari's strict gesture requirement, so a\n // deferred async write is acceptable. copyToClipboard handles its own\n // success toastr and falls back to document.execCommand internally.\n (async () => {\n try {\n const link = await resolveLink();\n await copyToClipboard(link, { message: successMessage });\n } catch {\n // Swallow: silent failure.\n }\n })();\n};\n","const createPrefixedLogger = prefix => ({\n info: (...args) => logger.info(prefix, ...args),\n error: (...args) => logger.error(prefix, ...args),\n warn: (...args) => logger.warn(prefix, ...args),\n debug: (...args) => logger.debug(prefix, ...args),\n});\n\nexport default createPrefixedLogger;\n","/**\n * Due to the custom axios interceptor for s3Api,\n * it'll return false for cancelled requests instead of a cancelled error object.\n */\nexport const isNotCancelledRequest = resolvedResponse =>\n typeof resolvedResponse !== \"boolean\";\n\nexport const calculateUploadProgress = uploadProgress => {\n const total = Object.values(uploadProgress).reduce(\n (sum, part) => sum + part.total,\n 0\n );\n\n const uploaded = Object.values(uploadProgress).reduce(\n (sum, part) => sum + part.uploaded,\n 0\n );\n\n return Math.round((uploaded * 100) / total);\n};\n","// Axios is required here to waive off the CancelledError which occurs when\n// using AbortController on an axios request.\n// eslint-disable-next-line @bigbinary/neeto/no-axios-import-outside-apis\nimport axios from \"axios\";\nimport { isNot, isNotEmpty } from \"neetocist\";\nimport { UPLOAD_EVENT, UPLOAD_STATUS } from \"neetomediarecorder/constants\";\nimport { useMultipartS3UploadStatus } from \"neetomediarecorder/core\";\nimport { isEmpty } from \"ramda\";\nimport { v4 as uuidv4 } from \"uuid\";\n\nimport abortUploadApi from \"src/apis/abort_upload\";\nimport completeUploadApi from \"src/apis/complete_upload\";\nimport partPresignedUrlApi from \"src/apis/part_presigned_url\";\nimport s3Api from \"src/apis/s3\";\nimport { isMp4Supported } from \"src/components/MediaRecorder/utils\";\nimport { MIME_TYPE } from \"src/constants\";\nimport createPrefixedLogger from \"utils/createPrefixedLogger\";\n\nimport { isNotCancelledRequest, calculateUploadProgress } from \"./utils\";\n\nimport { getSupportedMimeType } from \"../screenRecorder/utils\";\n\nclass MultipartS3Uploader {\n MIN_UPLOAD_CHUNK_SIZE = 5 * 1024 * 1024;\n\n #recordingId = \"\";\n #uploadId = \"\";\n #unUploadedChunks = [];\n #partNumber = 1;\n #s3PartUploadPromises = [];\n #callbacks = {};\n #abortController;\n #pendingS3ChunkUploads = [];\n #completeUploadPromise;\n #failedUpload = [];\n #uploadProgress = {};\n #lastLoggedOverallPercent = -1;\n\n #_status = \"\";\n #id = uuidv4();\n #logger = createPrefixedLogger(`[${this.#id}]`);\n #mimeType = getSupportedMimeType();\n\n constructor() {\n this.#logger.info(\"Uploader initialized\", {\n mimeType: this.#mimeType,\n minUploadChunkSize: this.MIN_UPLOAD_CHUNK_SIZE,\n });\n }\n\n get status() {\n return this.#_status;\n }\n\n get mimeType() {\n return this.#mimeType;\n }\n\n set #status(status) {\n this.#_status = status;\n useMultipartS3UploadStatus.triggerStatusChange();\n }\n\n get hasSufficientData() {\n return (\n isNotEmpty(this.#unUploadedChunks) ||\n isNotEmpty(this.#pendingS3ChunkUploads) ||\n isNotEmpty(this.#s3PartUploadPromises)\n );\n }\n\n setMimeType = mimeType => (this.#mimeType = mimeType);\n\n setRecording = (recordingId, uploadId) => {\n this.#logger.info(\"setRecording\", { recordingId, uploadId });\n this.#recordingId = recordingId;\n this.#uploadId = uploadId;\n this.#abortController = new AbortController();\n };\n\n push = data => {\n // Once an uploader has been aborted, any further chunks belong to a\n // recording that no longer exists server-side. Drop them so we don't\n // spawn new part uploads against an aborted multipart upload (which\n // would otherwise loop on retries until the network gives up).\n if (this.#isTerminalStatus) {\n this.#logger.warn(\n \"push -> uploader is no longer active, dropping chunk\",\n {\n chunkBytes: data?.size,\n status: this.#_status,\n recordingId: this.#recordingId,\n }\n );\n this.#unUploadedChunks = [];\n\n return;\n }\n\n if (data.size > 0) {\n this.#unUploadedChunks.push(data);\n }\n\n const unUploadedBytes = this.#getCurrentUnUploadedBlob().size;\n this.#logger.info(\"push -> chunk buffered\", {\n chunkBytes: data?.size,\n chunkType: data?.type,\n bufferedChunks: this.#unUploadedChunks.length,\n bufferedBytes: unUploadedBytes,\n bufferedMB: Number((unUploadedBytes / 1024 / 1024).toFixed(2)),\n threshold: this.MIN_UPLOAD_CHUNK_SIZE,\n recordingId: this.#recordingId,\n uploadId: this.#uploadId,\n });\n\n if (this.#isRecordingNotSet) {\n this.#logger.warn(\n \"push -> recording not yet set, holding chunk in buffer\"\n );\n\n return;\n }\n\n if (unUploadedBytes > this.MIN_UPLOAD_CHUNK_SIZE) {\n const uploadChunkToS3Promise = this.#uploadChunkToS3(\n this.#unUploadedChunks\n );\n\n this.#pendingS3ChunkUploads.push(uploadChunkToS3Promise);\n this.#unUploadedChunks = [];\n }\n };\n\n completeUploadNotifyServer = (parts, sessionLogs) =>\n completeUploadApi.create({\n recordingId: this.#recordingId,\n payload: {\n parts,\n uploadId: this.#uploadId,\n isMp4: isMp4Supported(this.#mimeType),\n logs: sessionLogs,\n },\n config: { signal: this.#abortController?.signal },\n });\n\n completeUpload = async sessionLogs => {\n const completeStartedAt = Date.now();\n this.#logger.info(\"completeUpload -> begin\", {\n recordingId: this.#recordingId,\n uploadId: this.#uploadId,\n pendingChunks: this.#pendingS3ChunkUploads.length,\n bufferedBytes: this.#getCurrentUnUploadedBlob().size,\n totalPartsStarted: this.#partNumber - 1,\n });\n try {\n this.#status = UPLOAD_STATUS.uploading;\n\n if (this.#isRecordingNotSet) {\n this.#logger.error(\"completeUpload -> not initialized\", {\n recordingId: this.#recordingId,\n uploadId: this.#uploadId,\n });\n\n return;\n }\n\n // Upload last chunk; only if last chunk has data\n const lastChunkBytes = this.#getCurrentUnUploadedBlob().size;\n if (lastChunkBytes > 0) {\n this.#logger.info(\"completeUpload -> uploading final buffered chunk\", {\n bytes: lastChunkBytes,\n });\n\n const uploadChunkToS3Promise = this.#uploadChunkToS3(\n this.#unUploadedChunks\n );\n\n this.#pendingS3ChunkUploads.push(uploadChunkToS3Promise);\n }\n\n /**\n * Wait for all the pending uploadToS3Promises.\n * Else we encounter a race condition where a new request is made for presignedUrl\n * but at the same time we reach the resolvedS3PartUploadPromises line and await\n * the s3PartUploadPromises. And the s3PartUploadPromises is resolved before\n * adding the new presignedUrl part upload to s3PartUploadPromises.\n * This results in incorrect partNumbers.\n */\n this.#logger.info(\"completeUpload -> awaiting pending chunks\", {\n pendingS3ChunkUploads: this.#pendingS3ChunkUploads.length,\n });\n await Promise.all(this.#pendingS3ChunkUploads);\n\n this.#logger.info(\"completeUpload -> awaiting part uploads\", {\n s3PartUploadPromises: this.#s3PartUploadPromises.length,\n });\n\n const resolvedS3PartUploadPromises = await Promise.all(\n this.#s3PartUploadPromises\n );\n\n if (isNotEmpty(this.#failedUpload)) {\n this.#logger.error(\n \"completeUpload -> failed parts present, aborting completion\",\n { failedPartNumbers: this.#failedUpload }\n );\n this.#status = UPLOAD_STATUS.error;\n this.#fireCallbacks(UPLOAD_EVENT.onError);\n\n return;\n }\n\n if (resolvedS3PartUploadPromises.length === 0) {\n this.#logger.warn(\"completeUpload -> no parts uploaded\", {\n recordingId: this.#recordingId,\n uploadId: this.#uploadId,\n });\n this.#status = UPLOAD_STATUS.insufficient_data;\n\n return;\n }\n\n const parts = resolvedS3PartUploadPromises\n .filter(isNotCancelledRequest)\n .map(resolvedResponse => ({\n etag: resolvedResponse.headers.etag,\n partNumber: new URL(\n resolvedResponse.request.responseURL\n ).searchParams.get(\"partNumber\"),\n }))\n .toSorted((a, b) => Number(a.partNumber) - Number(b.partNumber));\n\n this.#logger.info(\"completeUpload -> notifying server\", {\n partCount: parts.length,\n parts,\n });\n const notifyStartedAt = Date.now();\n this.#completeUploadPromise = this.completeUploadNotifyServer(\n parts,\n sessionLogs\n );\n\n await this.#completeUploadPromise;\n this.#logger.info(\"completeUpload -> server notified, upload finalized\", {\n notifyDurationMs: Date.now() - notifyStartedAt,\n totalDurationMs: Date.now() - completeStartedAt,\n });\n\n if (this.status === UPLOAD_STATUS.aborting) {\n this.#logger.warn(\n \"completeUpload -> finished but state was set to aborting\"\n );\n\n return;\n }\n\n this.#status = UPLOAD_STATUS.completed;\n\n this.#fireCallbacks(UPLOAD_EVENT.onComplete);\n } catch (error) {\n // ignore if aborted\n if (!axios.isCancel(error)) {\n this.#status = UPLOAD_STATUS.error;\n this.#fireCallbacks(UPLOAD_EVENT.onError);\n this.#logger.error(\"completeUpload -> error\", {\n ...this.#serializeUploadError(error),\n totalDurationMs: Date.now() - completeStartedAt,\n recordingId: this.#recordingId,\n uploadId: this.#uploadId,\n });\n } else {\n this.#logger.info(\"completeUpload -> request cancelled (expected)\");\n }\n } finally {\n this.#completeUploadPromise = null;\n }\n };\n\n // eslint-disable-next-line default-param-last\n abortUpload = async (forceAbort = false, sessionLogs) => {\n const abortStartedAt = Date.now();\n let phase = \"init\";\n try {\n if (this.status === UPLOAD_STATUS.aborting && !forceAbort) {\n this.#logger.info(\"abortUpload -> already aborting\", {\n forceAbort,\n });\n\n return;\n }\n this.#status = UPLOAD_STATUS.aborting;\n\n if (this.#isRecordingNotSet) {\n this.#logger.info(\"abortUpload -> not initialized\");\n\n return;\n }\n const recordingId = this.#recordingId;\n const uploadId = this.#uploadId;\n\n this.#logger.info(\"abortUpload -> begin\", {\n recordingId,\n uploadId,\n forceAbort,\n partsStarted: this.#partNumber - 1,\n pendingS3ChunkUploads: this.#pendingS3ChunkUploads.length,\n hasAbortController: Boolean(this.#abortController),\n });\n\n // Don't let a rejected completeUpload stop us from issuing the abort API\n // call below — we still need to release the upload server-side.\n phase = \"awaitCompleteUploadPromise\";\n // eslint-disable-next-line promise/prefer-await-to-then\n await Promise.resolve(this.#completeUploadPromise).catch(() => {});\n\n // Guard against a missing AbortController. If abortUpload is somehow\n // invoked twice, the second call would hit a null #abortController and\n // throw a TypeError into the outer catch — masking the real failure.\n phase = \"abortInflight\";\n this.#abortController?.abort();\n\n phase = \"abortUploadApi\";\n try {\n await abortUploadApi.create({\n recordingId,\n payload: {\n uploadId,\n isMp4: isMp4Supported(this.#mimeType),\n logs: sessionLogs,\n },\n });\n\n this.#logger.info(\"abortUpload -> success\", {\n durationMs: Date.now() - abortStartedAt,\n });\n } catch (error) {\n // After retries are exhausted, proceed with local cleanup so the\n // caller can navigate away / close tab. The server-side upload\n // will be cleaned up by S3 lifecycle rules.\n this.#logger.error(\"abortUpload -> mark as discarded failed\", {\n ...this.#serializeUploadError(error),\n durationMs: Date.now() - abortStartedAt,\n });\n }\n\n phase = \"fireOnAbort\";\n this.#fireCallbacks(UPLOAD_EVENT.onAbort);\n\n phase = \"cleanup\";\n this.#unUploadedChunks = [];\n this.#partNumber = 1;\n this.#s3PartUploadPromises = [];\n this.#status = \"\";\n this.#abortController = null;\n } catch (error) {\n this.#logger.error(\"abortUpload -> failed\", {\n phase,\n ...this.#serializeUploadError(error),\n durationMs: Date.now() - abortStartedAt,\n });\n }\n };\n\n resetState = () => {\n this.#recordingId = \"\";\n this.#uploadId = \"\";\n this.#unUploadedChunks = [];\n this.#partNumber = 1;\n this.#s3PartUploadPromises = [];\n this.#pendingS3ChunkUploads = [];\n this.#callbacks = {};\n this.#failedUpload = [];\n this.#uploadProgress = {};\n this.#lastLoggedOverallPercent = -1;\n this.#status = \"\";\n };\n\n addCallback = (event, callback) => {\n const existingCallbacks = this.#callbacks[event] ?? [];\n this.#callbacks = {\n ...this.#callbacks,\n [event]: [...existingCallbacks, callback],\n };\n };\n\n removeCallback = (event, callback) => {\n const registeredCallbacks = this.#callbacks[event] ?? [];\n const updatedCallbacks = registeredCallbacks.filter(isNot(callback));\n this.#callbacks = { ...this.#callbacks, [event]: updatedCallbacks };\n };\n\n #fireCallbacks = (event, args = []) => {\n this.#callbacks[event]?.forEach(callback => {\n callback(...args);\n });\n };\n\n #handleChunkUploadError = (error, partNumber, context = {}) => {\n // ignore if aborted\n if (axios.isCancel(error)) {\n this.#logger.info(\"upload chunk -> request cancelled (expected)\", {\n partNumber,\n });\n\n return;\n }\n\n this.#logger.error(\"upload chunk -> failed\", {\n partNumber,\n ...this.#serializeUploadError(error),\n ...context,\n uploadStatus: this.status,\n recordingId: this.#recordingId,\n uploadId: this.#uploadId,\n });\n if (this.status === UPLOAD_STATUS.uploading) {\n this.#status = UPLOAD_STATUS.error;\n this.#fireCallbacks(UPLOAD_EVENT.onError);\n } else {\n this.#failedUpload.push(partNumber); // if user is still recording\n }\n };\n\n #serializeUploadError = error => {\n if (!error) return { error: null };\n\n return {\n name: error.name,\n message: error.message,\n code: error.code,\n stack: error.stack,\n responseStatus: error.response?.status,\n responseStatusText: error.response?.statusText,\n responseData:\n typeof error.response?.data === \"string\"\n ? error.response.data.slice(0, 500)\n : error.response?.data,\n };\n };\n\n generatePreSignedUrl = partNumber =>\n partPresignedUrlApi.create({\n recordingId: this.#recordingId,\n payload: {\n partNumber,\n uploadId: this.#uploadId,\n isMp4: this.#mimeType.includes(MIME_TYPE.mp4),\n },\n config: { signal: this.#abortController?.signal },\n });\n\n #uploadChunkToS3 = async chunks => {\n const partNumber = this.#partNumber;\n this.#partNumber++;\n const partBlob = new Blob(chunks, { type: this.#mimeType });\n const partBytes = partBlob.size;\n this.#uploadProgress[partNumber] = { uploaded: 0, total: partBytes };\n this.#logger.info(\"upload chunk -> begin\", {\n partNumber,\n partBytes,\n partMB: Number((partBytes / 1024 / 1024).toFixed(2)),\n mimeType: this.#mimeType,\n recordingId: this.#recordingId,\n uploadId: this.#uploadId,\n });\n\n const presignStartedAt = Date.now();\n let presignedUrl;\n try {\n ({ presignedUrl } = await this.generatePreSignedUrl(partNumber));\n this.#logger.info(\"upload chunk -> presigned url ready\", {\n partNumber,\n presignDurationMs: Date.now() - presignStartedAt,\n });\n } catch (error) {\n this.#handleChunkUploadError(error, partNumber, {\n phase: \"presign\",\n presignDurationMs: Date.now() - presignStartedAt,\n });\n\n return;\n }\n\n const uploadStartedAt = Date.now();\n\n const s3PartUploadPromise = s3Api\n .presignedUpload({\n presignedUrl,\n blob: partBlob,\n config: {\n headers: { \"Content-Type\": this.#mimeType },\n includeMetadataInResponse: true,\n signal: this.#abortController?.signal,\n onUploadProgress: e => {\n this.#uploadProgress[partNumber] = {\n uploaded: e.loaded,\n total: e.total,\n };\n if (this.status === UPLOAD_STATUS.uploading) {\n const percentCompleted = calculateUploadProgress(\n this.#uploadProgress\n );\n\n // Only log every 10% to keep noise down while still being useful.\n // Tracker is on the instance so concurrent chunk uploads don't\n // each log when the *overall* percent crosses a threshold.\n if (\n percentCompleted - this.#lastLoggedOverallPercent >= 10 ||\n percentCompleted === 100\n ) {\n this.#logger.info(\"upload progress\", {\n overallPercent: percentCompleted,\n partNumber,\n partLoaded: e.loaded,\n partTotal: e.total,\n });\n this.#lastLoggedOverallPercent = percentCompleted;\n }\n\n this.#fireCallbacks(UPLOAD_EVENT.onProgress, [percentCompleted]);\n }\n },\n },\n })\n // eslint-disable-next-line promise/prefer-await-to-then\n .then(response => {\n const durationMs = Date.now() - uploadStartedAt;\n this.#logger.info(\"upload chunk -> success\", {\n partNumber,\n partBytes,\n durationMs,\n throughputMbps: durationMs\n ? Number(((partBytes * 8) / 1000 / durationMs).toFixed(2))\n : null,\n httpStatus: response?.status,\n etag: response?.headers?.etag,\n });\n\n return response;\n })\n // eslint-disable-next-line promise/prefer-await-to-then\n .catch(error => {\n this.#handleChunkUploadError(error, partNumber, {\n phase: \"upload\",\n uploadDurationMs: Date.now() - uploadStartedAt,\n partBytes,\n });\n });\n this.#s3PartUploadPromises.push(s3PartUploadPromise);\n };\n\n #getCurrentUnUploadedBlob = () =>\n new Blob(this.#unUploadedChunks, { type: this.#mimeType });\n\n get #isRecordingNotSet() {\n return isEmpty(this.#uploadId + this.#recordingId);\n }\n\n get #isTerminalStatus() {\n return (\n this.#_status === UPLOAD_STATUS.aborting ||\n this.#_status === UPLOAD_STATUS.completed ||\n this.#_status === UPLOAD_STATUS.error\n );\n }\n}\n\nlet multipartS3Uploader = new MultipartS3Uploader();\n\nexport const getMultipartS3Uploader = ({ initialize = false } = {}) => {\n if (!multipartS3Uploader || initialize) {\n multipartS3Uploader = new MultipartS3Uploader();\n useMultipartS3UploadStatus.triggerStatusChange();\n }\n\n return multipartS3Uploader;\n};\n","function _arrayWithHoles(r) {\n if (Array.isArray(r)) return r;\n}\nexport { _arrayWithHoles as default };","function _iterableToArrayLimit(r, l) {\n var t = null == r ? null : \"undefined\" != typeof Symbol && r[Symbol.iterator] || r[\"@@iterator\"];\n if (null != t) {\n var e,\n n,\n i,\n u,\n a = [],\n f = !0,\n o = !1;\n try {\n if (i = (t = t.call(r)).next, 0 === l) {\n if (Object(t) !== t) return;\n f = !1;\n } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0);\n } catch (r) {\n o = !0, n = r;\n } finally {\n try {\n if (!f && null != t[\"return\"] && (u = t[\"return\"](), Object(u) !== u)) return;\n } finally {\n if (o) throw n;\n }\n }\n return a;\n }\n}\nexport { _iterableToArrayLimit as default };","function _nonIterableRest() {\n throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}\nexport { _nonIterableRest as default };","import arrayWithHoles from \"./arrayWithHoles.js\";\nimport iterableToArrayLimit from \"./iterableToArrayLimit.js\";\nimport unsupportedIterableToArray from \"./unsupportedIterableToArray.js\";\nimport nonIterableRest from \"./nonIterableRest.js\";\nfunction _slicedToArray(r, e) {\n return arrayWithHoles(r) || iterableToArrayLimit(r, e) || unsupportedIterableToArray(r, e) || nonIterableRest();\n}\nexport { _slicedToArray as default };","// https://www.w3.org/TR/screen-capture/#displaycapturesurfacetype\nexport const DISPLAY_SURFACE = {\n monitor: \"monitor\",\n window: \"window\",\n browser: \"browser\",\n};\n\nexport const RECORDING_TIME_LIMIT = 900_000; // 15 minutes\nexport const RECORDING_TIME_LIMIT_WARNING_TIME = 840_000; // 14 minutes\n\nexport const MAX_RESOLUTION = 2160; // max 4k\n","import withImmutableActions from \"neetocommons/react-utils/withImmutableActions\";\nimport {\n SCREEN_RECORDER_STATUS,\n COUNTDOWN_TIME,\n} from \"neetomediarecorder/constants\";\nimport { create } from \"zustand\";\n\nconst initialState = {\n status: SCREEN_RECORDER_STATUS.idle,\n error: \"\",\n elapsedTime: 0,\n countdownTimeLeft: COUNTDOWN_TIME,\n showTimeLimitWarning: false,\n};\n\nconst prepareStore = () =>\n create(\n withImmutableActions(set => ({\n ...initialState,\n resetState: () => set(initialState),\n }))\n );\n\nexport { initialState };\nexport default prepareStore;\n","import { isNotEmpty, isNot, noop } from \"neetocist\";\nimport { not, pick } from \"ramda\";\n\nimport {\n COUNTDOWN_TICK_SOUND,\n HALF_A_SECOND_IN_MILLISECONDS,\n ONE_SECOND,\n ONE_SECOND_IN_MILLISECONDS,\n RECORDING_LIMIT_REACHED_WARNING_SOUND,\n SCREEN_RECORDER_STATUS,\n SCREEN_RECORDER_EVENT,\n SCREEN_RECORDER_ERROR,\n START_RECORDING_SOUND,\n STOP_RECORDING_DUE_TO_LIMIT_REACHED_SOUND,\n TWO_HUNDRED_MILLISECONDS,\n ONE_MINUTE_IN_MILLISECONDS,\n RECORDING_TIME_LIMIT_FREE_PLAN,\n IS_EXTENSION,\n} from \"src/constants\";\nimport createPrefixedLogger from \"utils/createPrefixedLogger\";\n\nimport { DISPLAY_SURFACE } from \"./constants\";\nimport prepareStore, { initialState as initialStoreState } from \"./stores\";\nimport {\n checkConstraints,\n getMediaRecorderOptions,\n getSupportedMimeType,\n isStreamEnded,\n addGainNode,\n} from \"./utils\";\n\nclass ScreenRecorder {\n #audio;\n #video;\n #videoStream;\n #mediaRecorder;\n #mediaStream;\n #store;\n #logger = createPrefixedLogger(\"[ScreenRecorder]\");\n #mediaChunks = [];\n #callbacks = {};\n #lastTimerUpdatedAt = 0;\n #timerId;\n #countdownTimerId;\n #startRecordingAudio = new Audio(START_RECORDING_SOUND);\n #countdownTickAudio = new Audio(COUNTDOWN_TICK_SOUND);\n #recordingLimitWarningAudio = new Audio(\n RECORDING_LIMIT_REACHED_WARNING_SOUND\n );\n #stopRecordingDueToLimitReachedAudio = new Audio(\n STOP_RECORDING_DUE_TO_LIMIT_REACHED_SOUND\n );\n #stream;\n #audioStream;\n #micAudioStream;\n #timeLimit = RECORDING_TIME_LIMIT_FREE_PLAN;\n #startRecordingTimeoutID;\n #enableNoiseCancellation = false;\n #showCountdown = true;\n // Lets a host (e.g. the chrome extension) take over the countdown beeps and\n // recording-start chime so it can schedule them via Web Audio. Defaults to\n // true to preserve behavior for callers that don't manage audio themselves.\n #playCountdownAudio = true;\n #mimeType = getSupportedMimeType();\n #dataReceiving = false;\n #recordSystemAudio = false;\n\n constructor(audio, video) {\n this.#audio = audio;\n this.#video = video;\n\n this.#store = prepareStore();\n\n this.#store.setState({ status: SCREEN_RECORDER_STATUS.idle });\n this.#checkCompatibility();\n }\n\n /** @type {import(\"neetocommons/react-utils\").ZustandStoreHook} */\n get useRecorderStore() {\n return this.#store;\n }\n\n get timeLimit() {\n return this.#timeLimit;\n }\n\n get displaySurface() {\n const [videoTrack] = this.#mediaStream?.getVideoTracks() ?? [];\n\n return videoTrack?.getSettings().displaySurface;\n }\n\n get audioConfiguration() {\n return this.#audio;\n }\n\n set videoStream(value) {\n this.#videoStream = value;\n }\n\n setDisplaySurface = displaySurface => {\n this.#video.displaySurface = displaySurface;\n };\n setRecordSystemAudio = value => (this.#recordSystemAudio = value);\n\n setResolution = height => {\n if (height === \"auto\") return;\n const getVideoConfig = (width, height) => ({\n width: { max: width },\n height: { max: height },\n displaySurface: this.#video.displaySurface,\n });\n\n const getResolution = height => {\n if (height === 1080) return getVideoConfig(1920, 1080);\n\n if (height === 720) return getVideoConfig(1280, 720);\n\n return getVideoConfig(3840, 2160);\n };\n this.#video = getResolution(height);\n };\n\n getAudioStream = () => this.#audioStream;\n hasData = () => this.#dataReceiving;\n\n setEnableNoiseCancellation = value => (this.#enableNoiseCancellation = value);\n\n setMimeType = mimeType => (this.#mimeType = mimeType);\n\n setAudioConfiguration = audio => (this.#audio = audio);\n\n setShowCountdown = showCountdown => (this.#showCountdown = showCountdown);\n\n setPlayCountdownAudio = value => (this.#playCountdownAudio = value);\n\n setTimeLimit = (timeLimit = RECORDING_TIME_LIMIT_FREE_PLAN) =>\n (this.#timeLimit = timeLimit);\n\n getWebmMediaBlob = () =>\n new Blob(this.#mediaChunks, { type: this.#mimeType });\n\n addCallback = (event, callback) => {\n const existingCallbacks = this.#callbacks[event] ?? [];\n this.#callbacks = {\n ...this.#callbacks,\n [event]: [...existingCallbacks, callback],\n };\n };\n\n removeCallback = (event, callback) => {\n const registeredCallbacks = this.#callbacks[event] ?? [];\n const updatedCallbacks = registeredCallbacks.filter(isNot(callback));\n this.#callbacks = { ...this.#callbacks, [event]: updatedCallbacks };\n };\n\n removeAllCallbacksByEvent = event => {\n delete this.#callbacks[event];\n };\n\n setError = error => {\n this.#store.setState({ error });\n };\n\n startRecording = async () => {\n this.#logger.info(\n \"startRecording -> begin\",\n this.#summarizeRecorderState({\n showCountdown: this.#showCountdown,\n timeLimit: this.#timeLimit,\n mimeType: this.#mimeType,\n recordSystemAudio: this.#recordSystemAudio,\n enableNoiseCancellation: this.#enableNoiseCancellation,\n hasInjectedVideoStream: Boolean(this.#videoStream),\n })\n );\n\n this.#store.setState(pick([\"error\"], initialStoreState));\n\n if (!this.#mediaStream) {\n this.#logger.info(\"startRecording -> acquiring media stream\");\n await this.#acquireMediaStream();\n }\n\n if (this.#mediaStream && isStreamEnded(this.#mediaStream)) {\n this.#logger.info(\n \"startRecording -> media stream ended, re-acquiring\",\n this.#summarizeStream(this.#mediaStream)\n );\n await this.#acquireMediaStream();\n }\n\n if (!this.#mediaStream || isStreamEnded(this.#mediaStream)) {\n this.#logger.warn(\n \"startRecording -> aborting, media stream unavailable\",\n {\n hasMediaStream: Boolean(this.#mediaStream),\n isEnded: this.#mediaStream ? isStreamEnded(this.#mediaStream) : true,\n }\n );\n\n return;\n }\n\n const options = getMediaRecorderOptions();\n\n this.#logger.info(\"startRecording -> creating MediaRecorder\", {\n options,\n mimeType: this.#mimeType,\n stream: this.#summarizeStream(this.#mediaStream),\n });\n\n this.#mediaChunks = [];\n try {\n this.#mediaRecorder = new MediaRecorder(this.#mediaStream, options);\n } catch (error) {\n this.#logger.error(\n \"startRecording -> failed to construct MediaRecorder\",\n this.#serializeError(error),\n { options, mimeType: this.#mimeType }\n );\n\n this.#store.setState({\n status: SCREEN_RECORDER_STATUS.idle,\n error: SCREEN_RECORDER_ERROR.NoRecorder,\n });\n\n return;\n }\n\n this.#logger.info(\"startRecording -> MediaRecorder created\", {\n state: this.#mediaRecorder.state,\n mimeType: this.#mediaRecorder.mimeType,\n videoBitsPerSecond: this.#mediaRecorder.videoBitsPerSecond,\n audioBitsPerSecond: this.#mediaRecorder.audioBitsPerSecond,\n });\n\n this.#mediaRecorder.ondataavailable = this.#onRecordingActive;\n this.#mediaRecorder.onstart = this.#onRecordingStart;\n this.#mediaRecorder.onstop = this.#onRecordingStop;\n this.#mediaRecorder.onerror = event => {\n this.#logger.error(\n \"MediaRecorder.onerror fired\",\n this.#serializeError(event?.error),\n {\n state: this.#mediaRecorder?.state,\n chunkCount: this.#mediaChunks.length,\n stream: this.#summarizeStream(this.#mediaStream),\n }\n );\n\n this.#store.setState({\n status: SCREEN_RECORDER_STATUS.idle,\n error: SCREEN_RECORDER_ERROR.NoRecorder,\n });\n };\n if (this.#showCountdown) {\n this.#startCountdown();\n } else {\n // No countdown: emit the canonical \"count-in finished\" hook and flip to\n // recording so consumers (toolbar, options-page countdown) update, just\n // like the countdown and skipCountdown paths do.\n this.#fireCallbacks(SCREEN_RECORDER_EVENT.onCountdownEnd);\n this.#store.setState({\n countdownTimeLeft: 0,\n status: SCREEN_RECORDER_STATUS.recording,\n });\n this.#startMediaRecorder();\n }\n };\n\n stopRecording = () => {\n if (this.#mediaRecorder === undefined) {\n this.#logger.info(\n \"stopRecording -> mediaRecorder undefined, stopping streams only\",\n this.#summarizeRecorderState()\n );\n /**\n * If the permission is denied and \"Stop sharing\" overlay is clicked\n */\n this.#stopAllStreams();\n\n return;\n }\n\n if (this.#mediaRecorder?.state === \"inactive\") {\n this.#logger.info(\n \"stopRecording -> mediaRecorder inactive, treating as discard during countdown\",\n this.#summarizeRecorderState()\n );\n // When recording is stopped from the 'Stop Sharing' overlay\n // before it even starts, i.e during the countdown.\n // Or if the recording is stopped before startRecordingTimeoutID timeout executes\n this.removeCallback(SCREEN_RECORDER_EVENT.onStop);\n\n clearTimeout(this.#startRecordingTimeoutID);\n clearInterval(this.#countdownTimerId);\n\n this.#stopAllStreams();\n\n this.#fireCallbacks(SCREEN_RECORDER_EVENT.onDiscardDuringCountdown);\n\n return;\n }\n\n this.#logger.info(\n \"stopRecording -> stopping\",\n this.#summarizeRecorderState()\n );\n this.#store.setState({ status: SCREEN_RECORDER_STATUS.stopping });\n this.#mediaRecorder.stop();\n this.#stopAllStreams();\n\n this.#stopTimer();\n };\n\n // Skip the in-flight countdown and start the actual recording immediately.\n // The chime is suppressed (vs. natural completion which plays it) since the\n // user explicitly opted out of the count-in. Listeners hook onCountdownSkip\n // to clean up countdown-only side effects like scheduled beeps.\n skipCountdown = () => {\n if (!this.#countdownTimerId) {\n this.#logger.warn(\n \"skipCountdown -> ignored, no countdown running\",\n this.#summarizeRecorderState()\n );\n\n return;\n }\n\n this.#logger.info(\"skipCountdown\", this.#summarizeRecorderState());\n\n clearInterval(this.#countdownTimerId);\n this.#countdownTimerId = null;\n\n this.#fireCallbacks(SCREEN_RECORDER_EVENT.onCountdown, [0]);\n this.#fireCallbacks(SCREEN_RECORDER_EVENT.onCountdownSkip);\n // onCountdownEnd is the canonical \"countdown phase finished\" hook —\n // listeners that just want to know the count-in is over shouldn't have\n // to subscribe to onCountdownSkip too.\n this.#fireCallbacks(SCREEN_RECORDER_EVENT.onCountdownEnd);\n\n this.#store.setState({\n countdownTimeLeft: 0,\n status: SCREEN_RECORDER_STATUS.recording,\n });\n\n this.#startMediaRecorder();\n };\n\n pauseRecording = () => {\n if (this.#mediaRecorder?.state === \"recording\") {\n this.#logger.info(\"pauseRecording\", this.#summarizeRecorderState());\n this.#store.setState({ status: SCREEN_RECORDER_STATUS.paused });\n this.#mediaRecorder.pause();\n } else {\n this.#logger.warn(\n \"pauseRecording -> ignored, recorder not in recording state\",\n this.#summarizeRecorderState()\n );\n }\n\n this.#stopTimer();\n };\n\n resumeRecording = () => {\n if (this.#mediaRecorder?.state === \"paused\") {\n this.#logger.info(\"resumeRecording\", this.#summarizeRecorderState());\n this.#store.setState({ status: SCREEN_RECORDER_STATUS.recording });\n this.#mediaRecorder.resume();\n } else {\n this.#logger.warn(\n \"resumeRecording -> ignored, recorder not paused\",\n this.#summarizeRecorderState()\n );\n }\n\n this.#startTimer();\n };\n\n discardRecording = () => {\n if (this.#mediaRecorder?.state === \"inactive\") {\n this.#logger.info(\n \"discardRecording -> ignored, recorder already inactive\",\n this.#summarizeRecorderState()\n );\n\n return;\n }\n\n this.#logger.info(\"discardRecording\", this.#summarizeRecorderState());\n this.#store.setState({ status: SCREEN_RECORDER_STATUS.stopping });\n this.removeAllCallbacksByEvent(SCREEN_RECORDER_EVENT.onStop);\n this.#mediaRecorder.stop();\n this.#stopAllStreams();\n\n clearInterval(this.#timerId);\n this.#store.setState(pick([\"elapsedTime\"], initialStoreState));\n this.#mediaChunks = [];\n\n this.#fireCallbacks(SCREEN_RECORDER_EVENT.onDiscard);\n };\n\n restartRecording = () => {\n this.#logger.info(\"restartRecording\", this.#summarizeRecorderState());\n this.#store.setState({ status: SCREEN_RECORDER_STATUS.stopping });\n this.removeAllCallbacksByEvent(SCREEN_RECORDER_EVENT.onStop);\n this.#mediaRecorder.stop();\n\n clearInterval(this.#timerId);\n this.#store.setState(\n pick([\"elapsedTime\", \"countdownTimeLeft\"], initialStoreState)\n );\n this.#mediaChunks = [];\n\n this.#fireCallbacks(SCREEN_RECORDER_EVENT.onRestart);\n\n this.startRecording();\n };\n\n resetState = () => {\n this.#logger.info(\"resetState\", this.#summarizeRecorderState());\n this.#mediaChunks = [];\n this.#callbacks = {};\n this.#dataReceiving = false;\n clearInterval(this.#timerId);\n clearInterval(this.#countdownTimerId);\n this.#store.getState().resetState();\n this.#checkCompatibility();\n };\n\n revokePermissions = () => {\n this.#logger.info(\"revokePermissions\", this.#summarizeRecorderState());\n if (!this.#mediaRecorder) return;\n\n this.#mediaRecorder.onstop = null;\n this.#stopAllStreams();\n };\n\n #stopAllStreams = () => {\n this.#logger.info(\"stopAllStreams\", {\n mediaStream: this.#summarizeStream(this.#mediaStream),\n stream: this.#summarizeStream(this.#stream),\n audioStream: this.#summarizeStream(this.#audioStream),\n micAudioStream: this.#summarizeStream(this.#micAudioStream),\n });\n\n this.#mediaStream &&\n this.#mediaStream?.getTracks().forEach(track => track.stop());\n this.#stream?.getTracks().forEach(track => track.stop());\n this.#audioStream?.getAudioTracks()?.forEach(track => track.stop());\n this.#micAudioStream?.getAudioTracks()?.forEach(track => track.stop());\n };\n\n #playCountdownBeep = () => {\n this.#countdownTickAudio.currentTime = 0;\n this.#countdownTickAudio.play();\n };\n\n #checkCompatibility = () => {\n // The browser is considered supported if it can capture the display AND\n // if `getSupportedMimeType()` can negotiate a codec the MediaRecorder API\n // accepts. This covers Chromium (WebM/H.264), Safari (MP4) and Firefox\n // (WebM/VP9 or VP8).\n const hasDisplayCapture = Boolean(navigator.mediaDevices?.getDisplayMedia);\n const supportedMimeType = getSupportedMimeType();\n\n if (!hasDisplayCapture || !supportedMimeType) {\n this.#logger.error(\n \"screenRecorder -> unsupported browser. hasDisplayCapture:\",\n hasDisplayCapture,\n \"supportedMimeType:\",\n supportedMimeType,\n \"hasMediaDevices:\",\n Boolean(navigator.mediaDevices),\n \"hasMediaRecorder:\",\n typeof MediaRecorder !== \"undefined\"\n );\n this.#store.setState({ error: SCREEN_RECORDER_ERROR.UnSupportedBrowser });\n }\n\n checkConstraints(this.#audio, this.#video);\n };\n\n #acquireMediaStream = async () => {\n const acquireStartedAt = Date.now();\n this.#logger.info(\"acquireMediaStream -> begin\", {\n hasInjectedVideoStream: Boolean(this.#videoStream),\n audio: Boolean(this.#audio),\n recordSystemAudio: this.#recordSystemAudio,\n enableNoiseCancellation: this.#enableNoiseCancellation,\n });\n this.#store.setState({ status: SCREEN_RECORDER_STATUS.acquiring_media });\n\n if (this.#audio && !this.#videoStream) {\n const micState = await this.#queryMicPermissionState();\n if (micState === \"denied\") {\n this.#logger.warn(\n \"acquireMediaStream -> mic permission denied, skipping screen prompt\",\n { micState }\n );\n\n this.#store.setState({\n error: SCREEN_RECORDER_ERROR.MicPermissionDenied,\n status: SCREEN_RECORDER_STATUS.idle,\n });\n\n return;\n }\n }\n\n let stream;\n\n try {\n if (this.#videoStream) {\n this.#logger.info(\n \"acquireMediaStream -> using injected videoStream\",\n this.#summarizeStream(this.#videoStream)\n );\n stream = this.#videoStream;\n } else {\n const constraints = {\n video: this.#video,\n audio: this.#recordSystemAudio,\n };\n\n this.#logger.info(\n \"acquireMediaStream -> getDisplayMedia constraints\",\n constraints\n );\n\n const displayMediaStartedAt = Date.now();\n stream = await window.navigator.mediaDevices.getDisplayMedia(\n constraints\n );\n\n this.#logger.info(\"acquireMediaStream -> getDisplayMedia resolved\", {\n durationMs: Date.now() - displayMediaStartedAt,\n stream: this.#summarizeStream(stream),\n });\n this.#fireCallbacks(SCREEN_RECORDER_EVENT.onShareSelected);\n }\n\n if (this.#audio) {\n try {\n const audioConfig = {\n audio: {\n echoCancellation: false,\n ...this.#audio,\n ...(this.#audio.deviceId && {\n deviceId: { exact: this.#audio.deviceId },\n }),\n },\n };\n\n this.#logger.info(\n \"acquireMediaStream -> getUserMedia audioConfig\",\n audioConfig\n );\n const micStartedAt = Date.now();\n this.#micAudioStream =\n await window.navigator.mediaDevices.getUserMedia(audioConfig);\n\n this.#logger.info(\"acquireMediaStream -> mic acquired\", {\n durationMs: Date.now() - micStartedAt,\n stream: this.#summarizeStream(this.#micAudioStream),\n });\n\n const audioStream = addGainNode(this.#micAudioStream, 1.75); // Increase volume by 50%\n this.#audioStream = audioStream;\n\n if (this.#enableNoiseCancellation) {\n try {\n const workletUrl = IS_EXTENSION\n ? // eslint-disable-next-line no-undef\n chrome.runtime.getURL(\"public/NoiseSuppressorWorklet.js\")\n : \"NoiseSuppressorWorklet.js\";\n\n this.#logger.info(\n \"acquireMediaStream -> loading noise suppressor worklet\",\n { workletUrl }\n );\n\n const workletStartedAt = Date.now();\n const audioContext = new AudioContext();\n await audioContext.audioWorklet.addModule(workletUrl);\n\n const audioStreamSource =\n audioContext.createMediaStreamSource(audioStream);\n\n const destinationStream =\n audioContext.createMediaStreamDestination();\n\n const noiseSuppressorNode = new AudioWorkletNode(\n audioContext,\n \"nn-suppressor-processor\"\n );\n\n audioStreamSource.connect(noiseSuppressorNode);\n noiseSuppressorNode.connect(destinationStream);\n\n this.#audioStream = destinationStream.stream;\n this.#logger.info(\n \"acquireMediaStream -> noise suppressor wired up\",\n { durationMs: Date.now() - workletStartedAt }\n );\n } catch (error) {\n this.#logger.error(\n \"acquireMediaStream -> failed to load audio worklet\",\n this.#serializeError(error)\n );\n }\n }\n } catch (audioError) {\n // Mic access can fail independently of screen capture (OS-level\n // block, no device, deviceId mismatch). Stop the screen stream and\n // surface a mic-only error so the user sees the proper callout\n // (\"doesn't have access to your microphone\" with Grant / I don't\n // need audio actions) instead of being misrouted to the screen\n // permission denied flow.\n this.#logger.warn(\n \"acquireMediaStream -> mic unavailable\",\n this.#serializeError(audioError),\n { audioConfigRequested: this.#audio }\n );\n if (!this.#videoStream) {\n stream.getTracks().forEach(track => track.stop());\n }\n\n this.#store.setState({\n error: SCREEN_RECORDER_ERROR.MicPermissionDenied,\n status: SCREEN_RECORDER_STATUS.idle,\n });\n\n return;\n }\n }\n\n // Fired when capture ends without the app calling stop() — the browser's\n // \"Stop sharing\" pill or an OS-level termination. When a consumer is\n // listening for onUnexpectedEnd, hand the decision (finish/discard, show\n // diagnostics) over to it; otherwise preserve the legacy behavior of\n // finalizing the recording immediately.\n stream.getVideoTracks()[0].addEventListener(\"ended\", () => {\n const hasUnexpectedEndHandler = isNotEmpty(\n this.#callbacks[SCREEN_RECORDER_EVENT.onUnexpectedEnd] ?? []\n );\n\n this.#logger.info(\"display video track ended event received\", {\n recorderState: this.#mediaRecorder?.state,\n status: this.#store.getState().status,\n hasUnexpectedEndHandler,\n stream: this.#summarizeStream(stream),\n });\n\n if (hasUnexpectedEndHandler) {\n this.#fireCallbacks(SCREEN_RECORDER_EVENT.onUnexpectedEnd);\n\n return;\n }\n\n this.stopRecording();\n });\n\n const finalStream = new MediaStream();\n\n if (this.#audio && this.#audioStream) {\n if (isNotEmpty(stream.getAudioTracks())) {\n this.#logger.info(\"acquireMediaStream -> mixing system audio + mic\");\n const audioContext = new AudioContext();\n\n const desktopAudio = audioContext.createMediaStreamSource(stream);\n const microphoneAudio = audioContext.createMediaStreamSource(\n this.#audioStream\n );\n\n const combinedAudio = audioContext.createMediaStreamDestination();\n\n desktopAudio.connect(combinedAudio);\n microphoneAudio.connect(combinedAudio);\n\n combinedAudio.stream\n .getAudioTracks()\n .forEach(track => finalStream.addTrack(track));\n } else {\n this.#logger.info(\n \"acquireMediaStream -> using mic audio only (no system audio in display stream)\"\n );\n\n this.#audioStream\n .getAudioTracks()\n .forEach(track => finalStream.addTrack(track));\n }\n } else if (this.#recordSystemAudio) {\n this.#logger.info(\"acquireMediaStream -> using system audio only\");\n stream.getAudioTracks().forEach(track => finalStream.addTrack(track));\n } else {\n this.#logger.info(\"acquireMediaStream -> recording without audio\");\n }\n stream.getVideoTracks().forEach(track => finalStream.addTrack(track));\n\n this.#mediaStream = finalStream;\n this.#stream = stream;\n this.#store.setState({ status: SCREEN_RECORDER_STATUS.media_acquired });\n this.#logger.info(\"acquireMediaStream -> success\", {\n totalDurationMs: Date.now() - acquireStartedAt,\n finalStream: this.#summarizeStream(this.#mediaStream),\n });\n } catch (error) {\n this.#logger.error(\n \"acquireMediaStream -> error\",\n this.#serializeError(error),\n {\n totalDurationMs: Date.now() - acquireStartedAt,\n hasAudio: Boolean(this.#audio),\n hasAudioStream: Boolean(this.#audioStream),\n hasMediaStream: Boolean(this.#mediaStream),\n }\n );\n\n if (SCREEN_RECORDER_ERROR[error?.name]) {\n this.#store.setState({\n error: SCREEN_RECORDER_ERROR[error.name],\n status: SCREEN_RECORDER_STATUS.idle,\n });\n } else if (this.#audio && !this.#audioStream) {\n this.#store.setState({\n error: SCREEN_RECORDER_ERROR.MicPermissionDenied,\n status: SCREEN_RECORDER_STATUS.idle,\n });\n } else if (!this.#mediaStream || isStreamEnded(this.#mediaStream)) {\n this.#store.setState({\n error: SCREEN_RECORDER_ERROR[error?.name],\n status: SCREEN_RECORDER_STATUS.idle,\n });\n }\n }\n };\n\n #fireCallbacks = (event, args = []) => {\n this.#callbacks[event]?.forEach(callback => {\n callback(...args);\n });\n };\n\n #onRecordingStart = () => {\n this.#logger.info(\n \"MediaRecorder.onstart fired\",\n this.#summarizeRecorderState()\n );\n this.#fireCallbacks(SCREEN_RECORDER_EVENT.onStart);\n };\n\n #onRecordingActive = ({ data }) => {\n if (data.size <= 0) {\n this.#logger.warn(\"ondataavailable -> empty chunk, ignoring\", {\n chunkCount: this.#mediaChunks.length,\n });\n\n return;\n }\n this.#dataReceiving = true;\n\n this.#mediaChunks.push(data);\n const totalBytes = this.#mediaChunks.reduce(\n (sum, chunk) => sum + (chunk?.size ?? 0),\n 0\n );\n\n this.#logger.info(\"ondataavailable -> chunk received\", {\n chunkBytes: data.size,\n chunkType: data.type,\n chunkCount: this.#mediaChunks.length,\n totalBytes,\n recorderState: this.#mediaRecorder?.state,\n });\n this.#fireCallbacks(SCREEN_RECORDER_EVENT.onDataAvailable, [data]);\n };\n\n #onRecordingStop = () => {\n const totalBytes = this.#mediaChunks.reduce(\n (sum, chunk) => sum + (chunk?.size ?? 0),\n 0\n );\n\n this.#logger.info(\"MediaRecorder.onstop fired\", {\n ...this.#summarizeRecorderState(),\n totalBytes,\n mediaStreamActive: this.#mediaStream?.active,\n });\n this.#store.setState({ status: SCREEN_RECORDER_STATUS.stopped });\n this.#fireCallbacks(SCREEN_RECORDER_EVENT.onStop);\n\n // If mediaStream is active after stopping mediaRecorder, then that means that\n // we are restarting and not stopping.\n if (this.#mediaStream?.active) {\n this.#logger.info(\n \"onRecordingStop -> mediaStream still active, transitioning to restarting\"\n );\n this.#store.setState({ status: SCREEN_RECORDER_STATUS.restarting });\n }\n };\n\n #queryMicPermissionState = async () => {\n try {\n const result = await window.navigator.permissions.query({\n name: \"microphone\",\n });\n\n return result.state;\n } catch (error) {\n // Permissions API or the \"microphone\" descriptor is unsupported\n // (e.g. Safari). Fall through to the live getUserMedia attempt.\n this.#logger.info(\n \"queryMicPermissionState -> unsupported\",\n this.#serializeError(error)\n );\n\n return \"prompt\";\n }\n };\n\n #serializeError = error => {\n if (!error) return { error: null };\n\n return {\n name: error.name,\n message: error.message,\n stack: error.stack,\n code: error.code,\n constraint: error.constraint,\n };\n };\n\n #summarizeStream = stream => {\n if (!stream) return null;\n\n const summarizeTrack = track => ({\n kind: track.kind,\n readyState: track.readyState,\n enabled: track.enabled,\n muted: track.muted,\n label: track.label,\n settings:\n typeof track.getSettings === \"function\"\n ? track.getSettings()\n : undefined,\n });\n\n return {\n id: stream.id,\n active: stream.active,\n videoTracks: stream.getVideoTracks?.().map(summarizeTrack) ?? [],\n audioTracks: stream.getAudioTracks?.().map(summarizeTrack) ?? [],\n };\n };\n\n #summarizeRecorderState = (extra = {}) => ({\n recorderState: this.#mediaRecorder?.state,\n status: this.#store.getState().status,\n elapsedTime: this.#store.getState().elapsedTime,\n chunkCount: this.#mediaChunks.length,\n dataReceiving: this.#dataReceiving,\n countdownTimeLeft: this.#store.getState().countdownTimeLeft,\n ...extra,\n });\n\n // `delayMs` only exists to keep the start chime out of the recording; when no\n // chime plays (countdown skipped or disabled) we start immediately so the\n // recorder begins ticking without a perceptible gap.\n #startMediaRecorder = (delayMs = 0) => {\n this.#logger.info(\"startMediaRecorder -> scheduled\", {\n delayMs,\n ...this.#summarizeRecorderState(),\n });\n\n this.#startRecordingTimeoutID = setTimeout(() => {\n try {\n if (!this.#mediaRecorder) {\n this.#logger.error(\n \"startMediaRecorder -> aborted, mediaRecorder is null\",\n this.#summarizeRecorderState()\n );\n\n this.#store.setState({\n status: SCREEN_RECORDER_STATUS.idle,\n error: SCREEN_RECORDER_ERROR.FailedToStart,\n });\n\n return;\n }\n\n if (!this.#mediaStream || isStreamEnded(this.#mediaStream)) {\n this.#logger.error(\n \"startMediaRecorder -> aborted, media stream unavailable or ended\",\n {\n hasMediaStream: Boolean(this.#mediaStream),\n isEnded: this.#mediaStream\n ? isStreamEnded(this.#mediaStream)\n : true,\n stream: this.#summarizeStream(this.#mediaStream),\n }\n );\n\n this.#store.setState({\n status: SCREEN_RECORDER_STATUS.idle,\n error: SCREEN_RECORDER_ERROR.FailedToStart,\n });\n\n return;\n }\n\n if (this.#mediaRecorder?.state === \"recording\") {\n this.#logger.warn(\n \"startMediaRecorder -> mediaRecorder already recording, skipping\",\n this.#summarizeRecorderState()\n );\n\n return;\n }\n\n this.#logger.info(\"startMediaRecorder -> calling start()\", {\n timesliceMs: 5000,\n ...this.#summarizeRecorderState(),\n });\n this.#mediaRecorder.start(5000);\n this.#logger.info(\n \"startMediaRecorder -> start() returned\",\n this.#summarizeRecorderState()\n );\n this.#startTimer();\n } catch (error) {\n this.#logger.error(\n \"startMediaRecorder -> failed\",\n this.#serializeError(error),\n this.#summarizeRecorderState()\n );\n\n this.#store.setState({\n status: SCREEN_RECORDER_STATUS.idle,\n error: SCREEN_RECORDER_ERROR.FailedToStart,\n });\n\n // To prevent triggering #onRecordingStop when the mediaRecorder is failed to start.\n if (this.#mediaRecorder) {\n this.#mediaRecorder.onstop = noop;\n }\n\n if (this.#mediaStream) {\n this.#stopAllStreams();\n this.#mediaStream = null;\n }\n this.#stream = null;\n this.#audioStream = null;\n this.#micAudioStream = null;\n this.#mediaRecorder = null;\n\n throw error;\n }\n }, delayMs);\n };\n\n #startCountdown = () => {\n if (this.#countdownTimerId) {\n this.#logger.warn(\n \"startCountdown -> already running, ignoring\",\n this.#summarizeRecorderState()\n );\n\n return;\n }\n\n this.#logger.info(\"startCountdown -> begin\", {\n countdownTimeLeft: this.#store.getState().countdownTimeLeft,\n playCountdownAudio: this.#playCountdownAudio,\n });\n\n this.#fireCallbacks(SCREEN_RECORDER_EVENT.onCountdownStart);\n\n this.#countdownTimerId = setInterval(() => {\n let shouldBeep = false;\n\n this.#store.setState(({ countdownTimeLeft }) => {\n if (countdownTimeLeft - ONE_SECOND > 0) {\n const next = countdownTimeLeft - ONE_SECOND;\n this.#logger.info(\"startCountdown -> tick\", {\n remaining: next,\n });\n this.#fireCallbacks(SCREEN_RECORDER_EVENT.onCountdown, [next]);\n shouldBeep = true;\n\n return { countdownTimeLeft: next };\n }\n\n this.#fireCallbacks(SCREEN_RECORDER_EVENT.onCountdown, [0]);\n\n this.#logger.info(\"startCountdown -> end, starting recorder\");\n if (this.#playCountdownAudio) this.#startRecordingAudio.play();\n this.#fireCallbacks(SCREEN_RECORDER_EVENT.onCountdownEnd);\n this.#store.setState({ status: SCREEN_RECORDER_STATUS.recording });\n this.#startMediaRecorder(\n this.#playCountdownAudio ? HALF_A_SECOND_IN_MILLISECONDS : 0\n );\n\n clearInterval(this.#countdownTimerId);\n this.#countdownTimerId = null;\n\n return { countdownTimeLeft: 0 };\n });\n\n if (shouldBeep && this.#playCountdownAudio) this.#playCountdownBeep();\n }, ONE_SECOND_IN_MILLISECONDS);\n };\n\n #startTimer = () => {\n this.#lastTimerUpdatedAt = Date.now();\n this.#timerId = setInterval(() => {\n this.#store.setState(({ elapsedTime }) => {\n const now = Date.now();\n const newElapsedTime = elapsedTime + (now - this.#lastTimerUpdatedAt);\n this.#lastTimerUpdatedAt = now;\n\n this.#checkIfTimeLimitReached(newElapsedTime);\n\n return { elapsedTime: newElapsedTime };\n });\n }, TWO_HUNDRED_MILLISECONDS);\n };\n\n #stopTimer = () => {\n clearInterval(this.#timerId);\n\n const newElapsedTime =\n this.#store.getState().elapsedTime +\n (Date.now() - this.#lastTimerUpdatedAt);\n\n this.#store.setState({ elapsedTime: newElapsedTime });\n };\n\n #checkIfTimeLimitReached = elapsedTime => {\n const oneMinuteBeforeTimeLimit =\n this.#timeLimit - ONE_MINUTE_IN_MILLISECONDS;\n\n if (elapsedTime <= oneMinuteBeforeTimeLimit) return;\n\n if (\n elapsedTime < this.#timeLimit &&\n elapsedTime > oneMinuteBeforeTimeLimit\n ) {\n if (not(this.#store.getState().showTimeLimitWarning)) {\n this.#logger.info(\"time limit warning threshold crossed\", {\n elapsedTime,\n timeLimit: this.#timeLimit,\n });\n this.#recordingLimitWarningAudio.play();\n }\n this.#store.setState({ showTimeLimitWarning: true });\n\n return;\n }\n\n this.#logger.info(\"time limit reached, stopping recording\", {\n elapsedTime,\n timeLimit: this.#timeLimit,\n });\n this.#stopRecordingDueToLimitReachedAudio.play();\n this.stopRecording();\n };\n}\n\nconst screenRecorder = new ScreenRecorder(true, {\n displaySurface: DISPLAY_SURFACE.monitor,\n height: { max: 2160 },\n width: { max: 3840 },\n});\n\nexport default screenRecorder;\n","import { useSyncExternalStore } from \"react\";\n\nimport { getMultipartS3Uploader } from \"neetomediarecorder/core\";\n\nconst listeners = new Set();\n\nconst subscribe = listener => {\n listeners.add(listener);\n\n return () => listeners.delete(listener);\n};\n\nconst triggerStatusChange = () => {\n listeners.forEach(listener => listener());\n};\n\nconst getSnapshot = () => getMultipartS3Uploader().status;\n\nconst useMultipartS3UploadStatus = () => {\n const status = useSyncExternalStore(subscribe, getSnapshot, getSnapshot);\n\n return { status, isStatus: (...statuses) => statuses.includes(status) };\n};\n\nuseMultipartS3UploadStatus.triggerStatusChange = triggerStatusChange;\n\nexport default useMultipartS3UploadStatus;\n"],"names":["arrayLikeToArray","arrayWithoutHoles","iterableToArray","unsupportedIterableToArray","nonIterableSpread","_typeof","assertClassBrand","classPrivateFieldGet2","classApplyDescriptorSet","classApplyDescriptorGet","require$$0","ONE_SECOND_IN_MILLISECONDS","HALF_A_SECOND_IN_MILLISECONDS","TWO_HUNDRED_MILLISECONDS","ONE_MINUTE_IN_MILLISECONDS","ONE_SECOND","SCREEN_RECORDER_STATUS","media_aborted","permission_denied","no_specified_media_found","media_in_use","invalid_media_constraints","no_chrome_flags_set","recorder_error","idle","acquiring_media","media_acquired","restarting","recording","stopping","stopped","paused","SCREEN_RECORDER_ERROR","MicPermissionDenied","AbortError","NotAllowedError","NotFoundError","NotReadableError","OverconstrainedError","TypeError","None","NoRecorder","UnSupportedBrowser","FailedToStart","CreateRecordingError","InsufficientData","SCREEN_RECORDER_EVENT","onStart","onStop","onDiscard","onDataAvailable","onDiscardDuringCountdown","onRestart","onReUpload","onReUploadFromDisk","onPause","onResume","onCountdownStart","onCountdown","onCountdownEnd","onCountdownSkip","onShareSelected","onUnexpectedEnd","TOTAL_RETRIES","ABORT_UPLOAD_RETRIES","INITIAL_RETRY_DELAY","MAX_RETRY_DELAY","DEFAULT_RETRY_CONFIG","retries","retryDelay","retryableStatuses","HAS_CHROME_NAMESPACE","chrome","IS_EXTENSION","isNotNil","extension","IS_SAFARI","platform","name","MIME_TYPE","mp4","webmH264Opus","webmH264","webmVp9Opus","webmVp9","webmVp8Opus","webmVp8","webm","START_RECORDING_SOUND","COUNTDOWN_TICK_SOUND","STOP_RECORDING_DUE_TO_LIMIT_REACHED_SOUND","RECORDING_LIMIT_REACHED_WARNING_SOUND","RECORDING_TIME_LIMIT_FREE_PLAN","setPrototypeOf","assertThisInitialized","_isNativeReflectConstruct","isNativeReflectConstruct","isNativeFunction","construct","getPrototypeOf","sleep","delay","Promise","resolve","setTimeout","RetryError","_Error","_inherits","_super","_createSuper","message","_classCallCheck","call","_createClass","_wrapNativeSuper","Error","buildRetryableApi","apiConnector","_ref","arguments","length","undefined","_ref$retries","_ref$retryDelay","_ref2","_asyncToGenerator","_regeneratorRuntime","mark","_callee","apiConnectorArgs","_config$signal","_config$signal2","_apiConnectorArgs$con","config","remainingAttempts","shouldCancelRetries","_error$config","_error$response","_error$response2","wrap","_callee$","_context","prev","next","signal","aborted","axios","CanceledError","addEventListener","abrupt","sent","t0","isCancel","logger","error","url","response","status","info","min","stop","_x","apply","create","recordingId","payload","post","concat","abortUpload","retryableCreate","abortUploadApi","completeUpload","completeUploadApi","partPresignedUrl","partPresignedUrlApi","getUnSupportedConstraints","mediaType","supportedMediaConstraints","navigator","mediaDevices","getSupportedConstraints","Object","keys","filter","constraint","checkConstraints","isNil","_len","mediaTypes","Array","_key","unSupportedConstraints","map","flat","isNotEmpty","join","isStreamEnded","mediaStream","existsBy","readyState","getTracks","getSupportedMimeType","_candidates$find","MediaRecorder","isTypeSupported","candidates","find","type","getMediaRecorderOptions","mimeType","addGainNode","audioStream","gain","audioContext","AudioContext","audioStreamSource","createMediaStreamSource","destinationStream","createMediaStreamDestination","gainNode","createGain","value","connect","stream","s3AxiosInstance","headers","interceptors","use","identity","reject","presignedUpload","presignedUrl","blob","put","retryablePresignedUpload","s3Api","isMp4Supported","includes","createPrefixedLogger","prefix","_logger","args","_logger2","_len2","_key2","warn","_logger3","_len3","_key3","debug","_logger4","_len4","_key4","isNotCancelledRequest","resolvedResponse","calculateUploadProgress","uploadProgress","total","values","reduce","sum","part","uploaded","Math","round","_recordingId","WeakMap","_uploadId","_unUploadedChunks","_partNumber","_s3PartUploadPromises","_callbacks","_abortController","_pendingS3ChunkUploads","_completeUploadPromise","_failedUpload","_uploadProgress","_lastLoggedOverallPercent","_status","_id","_mimeType","_status2","_fireCallbacks","_handleChunkUploadError","_serializeUploadError","_uploadChunkToS","_getCurrentUnUploadedBlob","_isRecordingNotSet","_isTerminalStatus","MultipartS3Uploader","_this","_classPrivateFieldInitSpec","get","_get_isTerminalStatus","set","_get_isRecordingNotSet","_set_status","_defineProperty","writable","uuidv4","_classPrivateFieldGet","_classPrivateFieldSet","uploadId","AbortController","data","chunkBytes","size","push","unUploadedBytes","chunkType","bufferedChunks","bufferedBytes","bufferedMB","Number","toFixed","threshold","MIN_UPLOAD_CHUNK_SIZE","uploadChunkToS3Promise","parts","sessionLogs","_classPrivateFieldGet2","isMp4","logs","completeStartedAt","lastChunkBytes","resolvedS3PartUploadPromises","notifyStartedAt","Date","now","pendingChunks","totalPartsStarted","UPLOAD_STATUS","uploading","bytes","pendingS3ChunkUploads","all","s3PartUploadPromises","failedPartNumbers","UPLOAD_EVENT","onError","insufficient_data","etag","partNumber","URL","request","responseURL","searchParams","toSorted","a","b","partCount","completeUploadNotifyServer","notifyDurationMs","totalDurationMs","aborting","completed","onComplete","_objectSpread","finish","_callee2","forceAbort","abortStartedAt","phase","_classPrivateFieldGet3","_args2","_callee2$","_context2","partsStarted","hasAbortController","Boolean","abort","durationMs","onAbort","t1","event","callback","_classPrivateFieldGet4","existingCallbacks","_toConsumableArray","_classPrivateFieldGet5","registeredCallbacks","updatedCallbacks","isNot","_classPrivateFieldGet6","forEach","context","uploadStatus","_error$response3","_error$response4","code","stack","responseStatus","responseStatusText","statusText","responseData","slice","_classPrivateFieldGet7","_value","_callee3","chunks","_this$partNumber","_classPrivateFieldGet8","partBlob","partBytes","presignStartedAt","_yield$_this$generate","uploadStartedAt","s3PartUploadPromise","_callee3$","_context3","Blob","partMB","generatePreSignedUrl","presignDurationMs","includeMetadataInResponse","onUploadProgress","e","loaded","percentCompleted","overallPercent","partLoaded","partTotal","onProgress","then","_response$headers","throughputMbps","httpStatus","uploadDurationMs","_x2","minUploadChunkSize","key","useMultipartS3UploadStatus","triggerStatusChange","isEmpty","multipartS3Uploader","getMultipartS3Uploader","_ref3","_ref3$initialize","initialize","arrayWithHoles","iterableToArrayLimit","nonIterableRest","DISPLAY_SURFACE","monitor","window","browser","initialState","elapsedTime","countdownTimeLeft","COUNTDOWN_TIME","showTimeLimitWarning","prepareStore","withImmutableActions","resetState","_audio","_video","_videoStream","_mediaRecorder","_mediaStream","_store","_mediaChunks","_lastTimerUpdatedAt","_timerId","_countdownTimerId","_startRecordingAudio","_countdownTickAudio","_recordingLimitWarningAudio","_stopRecordingDueToLimitReachedAudio","_stream","_audioStream","_micAudioStream","_timeLimit","_startRecordingTimeoutID","_enableNoiseCancellation","_showCountdown","_playCountdownAudio","_dataReceiving","_recordSystemAudio","_stopAllStreams","_playCountdownBeep","_checkCompatibility","_acquireMediaStream","_onRecordingStart","_onRecordingActive","_onRecordingStop","_queryMicPermissionState","_serializeError","_summarizeStream","_summarizeRecorderState","_startMediaRecorder","_startCountdown","_startTimer","_stopTimer","_checkIfTimeLimitReached","ScreenRecorder","audio","video","Audio","displaySurface","height","getVideoConfig","width","max","getResolution","showCountdown","timeLimit","setState","options","recordSystemAudio","enableNoiseCancellation","hasInjectedVideoStream","pick","initialStoreState","hasMediaStream","isEnded","state","videoBitsPerSecond","audioBitsPerSecond","ondataavailable","onstart","onstop","onerror","chunkCount","removeCallback","clearTimeout","clearInterval","pause","resume","removeAllCallbacksByEvent","startRecording","getState","_classPrivateFieldGet9","_classPrivateFieldGet10","_classPrivateFieldGet11","_classPrivateFieldGet12","_classPrivateFieldGet13","_classPrivateFieldGet14","micAudioStream","track","getAudioTracks","currentTime","play","_navigator$mediaDevic","hasDisplayCapture","getDisplayMedia","supportedMimeType","acquireStartedAt","micState","constraints","displayMediaStartedAt","audioConfig","micStartedAt","workletUrl","workletStartedAt","noiseSuppressorNode","finalStream","_audioContext","desktopAudio","microphoneAudio","combinedAudio","echoCancellation","deviceId","exact","t2","getUserMedia","t3","runtime","getURL","audioWorklet","addModule","AudioWorkletNode","t4","t5","audioConfigRequested","getVideoTracks","_classPrivateFieldGet15","_classPrivateFieldGet16","hasUnexpectedEndHandler","recorderState","stopRecording","MediaStream","addTrack","t6","hasAudio","hasAudioStream","_classPrivateFieldGet17","_classPrivateFieldGet18","totalBytes","chunk","_chunk$size","_classPrivateFieldGet19","_classPrivateFieldGet20","_chunk$size2","mediaStreamActive","active","_value2","result","permissions","query","_stream$getVideoTrack","_stream$getVideoTrack2","_stream$getAudioTrack","_stream$getAudioTrack2","summarizeTrack","kind","enabled","muted","label","settings","getSettings","id","videoTracks","audioTracks","_classPrivateFieldGet21","extra","dataReceiving","delayMs","_classPrivateFieldGet22","timesliceMs","start","noop","playCountdownAudio","setInterval","shouldBeep","remaining","_ref4","newElapsedTime","oneMinuteBeforeTimeLimit","not","_classPrivateFieldGet23","_classPrivateFieldGet24","_ref5","_ref6","_slicedToArray","videoTrack","screenRecorder","listeners","Set","subscribe","listener","add","getSnapshot","useSyncExternalStore","isStatus","statuses"],"mappings":"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","x_google_ignoreList":[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,27,28,29,30,31,32,33,34,35,47,48,49,50]}
1
+ {"version":3,"file":"core.js","sources":["node_modules/@babel/runtime/helpers/esm/arrayLikeToArray.js","node_modules/@babel/runtime/helpers/esm/arrayWithoutHoles.js","node_modules/@babel/runtime/helpers/esm/iterableToArray.js","node_modules/@babel/runtime/helpers/esm/unsupportedIterableToArray.js","node_modules/@babel/runtime/helpers/esm/nonIterableSpread.js","node_modules/@babel/runtime/helpers/esm/toConsumableArray.js","node_modules/@babel/runtime/helpers/esm/asyncToGenerator.js","node_modules/@babel/runtime/helpers/esm/classCallCheck.js","node_modules/@babel/runtime/helpers/esm/typeof.js","node_modules/@babel/runtime/helpers/esm/toPrimitive.js","node_modules/@babel/runtime/helpers/esm/toPropertyKey.js","node_modules/@babel/runtime/helpers/esm/createClass.js","node_modules/@babel/runtime/helpers/esm/defineProperty.js","node_modules/@babel/runtime/helpers/esm/classApplyDescriptorSet.js","node_modules/@babel/runtime/helpers/esm/assertClassBrand.js","node_modules/@babel/runtime/helpers/esm/classPrivateFieldGet2.js","node_modules/@babel/runtime/helpers/esm/classPrivateFieldSet.js","node_modules/@babel/runtime/helpers/esm/classApplyDescriptorGet.js","node_modules/@babel/runtime/helpers/esm/classPrivateFieldGet.js","node_modules/@babel/runtime/helpers/typeof.js","node_modules/@babel/runtime/helpers/regeneratorRuntime.js","node_modules/@babel/runtime/regenerator/index.js","node_modules/uuid/dist/esm-browser/stringify.js","node_modules/uuid/dist/esm-browser/rng.js","node_modules/uuid/dist/esm-browser/native.js","node_modules/uuid/dist/esm-browser/v4.js","src/constants.js","node_modules/@babel/runtime/helpers/esm/setPrototypeOf.js","node_modules/@babel/runtime/helpers/esm/inherits.js","node_modules/@babel/runtime/helpers/esm/assertThisInitialized.js","node_modules/@babel/runtime/helpers/esm/possibleConstructorReturn.js","node_modules/@babel/runtime/helpers/esm/getPrototypeOf.js","node_modules/@babel/runtime/helpers/esm/isNativeFunction.js","node_modules/@babel/runtime/helpers/esm/isNativeReflectConstruct.js","node_modules/@babel/runtime/helpers/esm/construct.js","node_modules/@babel/runtime/helpers/esm/wrapNativeSuper.js","src/utils/index.js","src/utils/buildRetryableApi.js","src/apis/abort_upload.js","src/apis/complete_upload.js","src/apis/part_presigned_url.js","src/core/screenRecorder/utils.js","src/apis/s3.js","src/components/MediaRecorder/utils.js","src/utils/createPrefixedLogger.js","src/core/multipartS3Uploader/utils.js","src/core/multipartS3Uploader/index.js","node_modules/@babel/runtime/helpers/esm/arrayWithHoles.js","node_modules/@babel/runtime/helpers/esm/iterableToArrayLimit.js","node_modules/@babel/runtime/helpers/esm/nonIterableRest.js","node_modules/@babel/runtime/helpers/esm/slicedToArray.js","src/core/screenRecorder/constants.js","src/core/screenRecorder/stores/index.js","src/core/screenRecorder/index.js","src/components/MediaRecorder/hooks/useMultipartS3UploadStatus.js"],"sourcesContent":["function _arrayLikeToArray(r, a) {\n (null == a || a > r.length) && (a = r.length);\n for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e];\n return n;\n}\nexport { _arrayLikeToArray as default };","import arrayLikeToArray from \"./arrayLikeToArray.js\";\nfunction _arrayWithoutHoles(r) {\n if (Array.isArray(r)) return arrayLikeToArray(r);\n}\nexport { _arrayWithoutHoles as default };","function _iterableToArray(r) {\n if (\"undefined\" != typeof Symbol && null != r[Symbol.iterator] || null != r[\"@@iterator\"]) return Array.from(r);\n}\nexport { _iterableToArray as default };","import arrayLikeToArray from \"./arrayLikeToArray.js\";\nfunction _unsupportedIterableToArray(r, a) {\n if (r) {\n if (\"string\" == typeof r) return arrayLikeToArray(r, a);\n var t = {}.toString.call(r).slice(8, -1);\n 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) ? arrayLikeToArray(r, a) : void 0;\n }\n}\nexport { _unsupportedIterableToArray as default };","function _nonIterableSpread() {\n throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}\nexport { _nonIterableSpread as default };","import arrayWithoutHoles from \"./arrayWithoutHoles.js\";\nimport iterableToArray from \"./iterableToArray.js\";\nimport unsupportedIterableToArray from \"./unsupportedIterableToArray.js\";\nimport nonIterableSpread from \"./nonIterableSpread.js\";\nfunction _toConsumableArray(r) {\n return arrayWithoutHoles(r) || iterableToArray(r) || unsupportedIterableToArray(r) || nonIterableSpread();\n}\nexport { _toConsumableArray as default };","function asyncGeneratorStep(n, t, e, r, o, a, c) {\n try {\n var i = n[a](c),\n u = i.value;\n } catch (n) {\n return void e(n);\n }\n i.done ? t(u) : Promise.resolve(u).then(r, o);\n}\nfunction _asyncToGenerator(n) {\n return function () {\n var t = this,\n e = arguments;\n return new Promise(function (r, o) {\n var a = n.apply(t, e);\n function _next(n) {\n asyncGeneratorStep(a, r, o, _next, _throw, \"next\", n);\n }\n function _throw(n) {\n asyncGeneratorStep(a, r, o, _next, _throw, \"throw\", n);\n }\n _next(void 0);\n });\n };\n}\nexport { _asyncToGenerator as default };","function _classCallCheck(a, n) {\n if (!(a instanceof n)) throw new TypeError(\"Cannot call a class as a function\");\n}\nexport { _classCallCheck as default };","function _typeof(o) {\n \"@babel/helpers - typeof\";\n\n return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) {\n return typeof o;\n } : function (o) {\n return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o;\n }, _typeof(o);\n}\nexport { _typeof as default };","import _typeof from \"./typeof.js\";\nfunction toPrimitive(t, r) {\n if (\"object\" != _typeof(t) || !t) return t;\n var e = t[Symbol.toPrimitive];\n if (void 0 !== e) {\n var i = e.call(t, r || \"default\");\n if (\"object\" != _typeof(i)) return i;\n throw new TypeError(\"@@toPrimitive must return a primitive value.\");\n }\n return (\"string\" === r ? String : Number)(t);\n}\nexport { toPrimitive as default };","import _typeof from \"./typeof.js\";\nimport toPrimitive from \"./toPrimitive.js\";\nfunction toPropertyKey(t) {\n var i = toPrimitive(t, \"string\");\n return \"symbol\" == _typeof(i) ? i : i + \"\";\n}\nexport { toPropertyKey as default };","import toPropertyKey from \"./toPropertyKey.js\";\nfunction _defineProperties(e, r) {\n for (var t = 0; t < r.length; t++) {\n var o = r[t];\n o.enumerable = o.enumerable || !1, o.configurable = !0, \"value\" in o && (o.writable = !0), Object.defineProperty(e, toPropertyKey(o.key), o);\n }\n}\nfunction _createClass(e, r, t) {\n return r && _defineProperties(e.prototype, r), t && _defineProperties(e, t), Object.defineProperty(e, \"prototype\", {\n writable: !1\n }), e;\n}\nexport { _createClass as default };","import toPropertyKey from \"./toPropertyKey.js\";\nfunction _defineProperty(e, r, t) {\n return (r = toPropertyKey(r)) in e ? Object.defineProperty(e, r, {\n value: t,\n enumerable: !0,\n configurable: !0,\n writable: !0\n }) : e[r] = t, e;\n}\nexport { _defineProperty as default };","function _classApplyDescriptorSet(e, t, l) {\n if (t.set) t.set.call(e, l);else {\n if (!t.writable) throw new TypeError(\"attempted to set read only private field\");\n t.value = l;\n }\n}\nexport { _classApplyDescriptorSet as default };","function _assertClassBrand(e, t, n) {\n if (\"function\" == typeof e ? e === t : e.has(t)) return arguments.length < 3 ? t : n;\n throw new TypeError(\"Private element is not present on this object\");\n}\nexport { _assertClassBrand as default };","import assertClassBrand from \"./assertClassBrand.js\";\nfunction _classPrivateFieldGet2(s, a) {\n return s.get(assertClassBrand(s, a));\n}\nexport { _classPrivateFieldGet2 as default };","import classApplyDescriptorSet from \"./classApplyDescriptorSet.js\";\nimport classPrivateFieldGet2 from \"./classPrivateFieldGet2.js\";\nfunction _classPrivateFieldSet(e, t, r) {\n var s = classPrivateFieldGet2(t, e);\n return classApplyDescriptorSet(e, s, r), r;\n}\nexport { _classPrivateFieldSet as default };","function _classApplyDescriptorGet(e, t) {\n return t.get ? t.get.call(e) : t.value;\n}\nexport { _classApplyDescriptorGet as default };","import classApplyDescriptorGet from \"./classApplyDescriptorGet.js\";\nimport classPrivateFieldGet2 from \"./classPrivateFieldGet2.js\";\nfunction _classPrivateFieldGet(e, t) {\n var r = classPrivateFieldGet2(t, e);\n return classApplyDescriptorGet(e, r);\n}\nexport { _classPrivateFieldGet as default };","function _typeof(o) {\n \"@babel/helpers - typeof\";\n\n return module.exports = _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) {\n return typeof o;\n } : function (o) {\n return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o;\n }, module.exports.__esModule = true, module.exports[\"default\"] = module.exports, _typeof(o);\n}\nmodule.exports = _typeof, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","var _typeof = require(\"./typeof.js\")[\"default\"];\nfunction _regeneratorRuntime() {\n \"use strict\"; /*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/facebook/regenerator/blob/main/LICENSE */\n module.exports = _regeneratorRuntime = function _regeneratorRuntime() {\n return e;\n }, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;\n var t,\n e = {},\n r = Object.prototype,\n n = r.hasOwnProperty,\n o = Object.defineProperty || function (t, e, r) {\n t[e] = r.value;\n },\n i = \"function\" == typeof Symbol ? Symbol : {},\n a = i.iterator || \"@@iterator\",\n c = i.asyncIterator || \"@@asyncIterator\",\n u = i.toStringTag || \"@@toStringTag\";\n function define(t, e, r) {\n return Object.defineProperty(t, e, {\n value: r,\n enumerable: !0,\n configurable: !0,\n writable: !0\n }), t[e];\n }\n try {\n define({}, \"\");\n } catch (t) {\n define = function define(t, e, r) {\n return t[e] = r;\n };\n }\n function wrap(t, e, r, n) {\n var i = e && e.prototype instanceof Generator ? e : Generator,\n a = Object.create(i.prototype),\n c = new Context(n || []);\n return o(a, \"_invoke\", {\n value: makeInvokeMethod(t, r, c)\n }), a;\n }\n function tryCatch(t, e, r) {\n try {\n return {\n type: \"normal\",\n arg: t.call(e, r)\n };\n } catch (t) {\n return {\n type: \"throw\",\n arg: t\n };\n }\n }\n e.wrap = wrap;\n var h = \"suspendedStart\",\n l = \"suspendedYield\",\n f = \"executing\",\n s = \"completed\",\n y = {};\n function Generator() {}\n function GeneratorFunction() {}\n function GeneratorFunctionPrototype() {}\n var p = {};\n define(p, a, function () {\n return this;\n });\n var d = Object.getPrototypeOf,\n v = d && d(d(values([])));\n v && v !== r && n.call(v, a) && (p = v);\n var g = GeneratorFunctionPrototype.prototype = Generator.prototype = Object.create(p);\n function defineIteratorMethods(t) {\n [\"next\", \"throw\", \"return\"].forEach(function (e) {\n define(t, e, function (t) {\n return this._invoke(e, t);\n });\n });\n }\n function AsyncIterator(t, e) {\n function invoke(r, o, i, a) {\n var c = tryCatch(t[r], t, o);\n if (\"throw\" !== c.type) {\n var u = c.arg,\n h = u.value;\n return h && \"object\" == _typeof(h) && n.call(h, \"__await\") ? e.resolve(h.__await).then(function (t) {\n invoke(\"next\", t, i, a);\n }, function (t) {\n invoke(\"throw\", t, i, a);\n }) : e.resolve(h).then(function (t) {\n u.value = t, i(u);\n }, function (t) {\n return invoke(\"throw\", t, i, a);\n });\n }\n a(c.arg);\n }\n var r;\n o(this, \"_invoke\", {\n value: function value(t, n) {\n function callInvokeWithMethodAndArg() {\n return new e(function (e, r) {\n invoke(t, n, e, r);\n });\n }\n return r = r ? r.then(callInvokeWithMethodAndArg, callInvokeWithMethodAndArg) : callInvokeWithMethodAndArg();\n }\n });\n }\n function makeInvokeMethod(e, r, n) {\n var o = h;\n return function (i, a) {\n if (o === f) throw Error(\"Generator is already running\");\n if (o === s) {\n if (\"throw\" === i) throw a;\n return {\n value: t,\n done: !0\n };\n }\n for (n.method = i, n.arg = a;;) {\n var c = n.delegate;\n if (c) {\n var u = maybeInvokeDelegate(c, n);\n if (u) {\n if (u === y) continue;\n return u;\n }\n }\n if (\"next\" === n.method) n.sent = n._sent = n.arg;else if (\"throw\" === n.method) {\n if (o === h) throw o = s, n.arg;\n n.dispatchException(n.arg);\n } else \"return\" === n.method && n.abrupt(\"return\", n.arg);\n o = f;\n var p = tryCatch(e, r, n);\n if (\"normal\" === p.type) {\n if (o = n.done ? s : l, p.arg === y) continue;\n return {\n value: p.arg,\n done: n.done\n };\n }\n \"throw\" === p.type && (o = s, n.method = \"throw\", n.arg = p.arg);\n }\n };\n }\n function maybeInvokeDelegate(e, r) {\n var n = r.method,\n o = e.iterator[n];\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;\n var i = tryCatch(o, e.iterator, r.arg);\n if (\"throw\" === i.type) return r.method = \"throw\", r.arg = i.arg, r.delegate = null, y;\n var a = i.arg;\n 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);\n }\n function pushTryEntry(t) {\n var e = {\n tryLoc: t[0]\n };\n 1 in t && (e.catchLoc = t[1]), 2 in t && (e.finallyLoc = t[2], e.afterLoc = t[3]), this.tryEntries.push(e);\n }\n function resetTryEntry(t) {\n var e = t.completion || {};\n e.type = \"normal\", delete e.arg, t.completion = e;\n }\n function Context(t) {\n this.tryEntries = [{\n tryLoc: \"root\"\n }], t.forEach(pushTryEntry, this), this.reset(!0);\n }\n function values(e) {\n if (e || \"\" === e) {\n var r = e[a];\n if (r) return r.call(e);\n if (\"function\" == typeof e.next) return e;\n if (!isNaN(e.length)) {\n var o = -1,\n i = function next() {\n for (; ++o < e.length;) if (n.call(e, o)) return next.value = e[o], next.done = !1, next;\n return next.value = t, next.done = !0, next;\n };\n return i.next = i;\n }\n }\n throw new TypeError(_typeof(e) + \" is not iterable\");\n }\n return GeneratorFunction.prototype = GeneratorFunctionPrototype, o(g, \"constructor\", {\n value: GeneratorFunctionPrototype,\n configurable: !0\n }), o(GeneratorFunctionPrototype, \"constructor\", {\n value: GeneratorFunction,\n configurable: !0\n }), GeneratorFunction.displayName = define(GeneratorFunctionPrototype, u, \"GeneratorFunction\"), e.isGeneratorFunction = function (t) {\n var e = \"function\" == typeof t && t.constructor;\n return !!e && (e === GeneratorFunction || \"GeneratorFunction\" === (e.displayName || e.name));\n }, e.mark = function (t) {\n return Object.setPrototypeOf ? Object.setPrototypeOf(t, GeneratorFunctionPrototype) : (t.__proto__ = GeneratorFunctionPrototype, define(t, u, \"GeneratorFunction\")), t.prototype = Object.create(g), t;\n }, e.awrap = function (t) {\n return {\n __await: t\n };\n }, defineIteratorMethods(AsyncIterator.prototype), define(AsyncIterator.prototype, c, function () {\n return this;\n }), e.AsyncIterator = AsyncIterator, e.async = function (t, r, n, o, i) {\n void 0 === i && (i = Promise);\n var a = new AsyncIterator(wrap(t, r, n, o), i);\n return e.isGeneratorFunction(r) ? a : a.next().then(function (t) {\n return t.done ? t.value : a.next();\n });\n }, defineIteratorMethods(g), define(g, u, \"Generator\"), define(g, a, function () {\n return this;\n }), define(g, \"toString\", function () {\n return \"[object Generator]\";\n }), e.keys = function (t) {\n var e = Object(t),\n r = [];\n for (var n in e) r.push(n);\n return r.reverse(), function next() {\n for (; r.length;) {\n var t = r.pop();\n if (t in e) return next.value = t, next.done = !1, next;\n }\n return next.done = !0, next;\n };\n }, e.values = values, Context.prototype = {\n constructor: Context,\n reset: function reset(e) {\n 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);\n },\n stop: function stop() {\n this.done = !0;\n var t = this.tryEntries[0].completion;\n if (\"throw\" === t.type) throw t.arg;\n return this.rval;\n },\n dispatchException: function dispatchException(e) {\n if (this.done) throw e;\n var r = this;\n function handle(n, o) {\n return a.type = \"throw\", a.arg = e, r.next = n, o && (r.method = \"next\", r.arg = t), !!o;\n }\n for (var o = this.tryEntries.length - 1; o >= 0; --o) {\n var i = this.tryEntries[o],\n a = i.completion;\n if (\"root\" === i.tryLoc) return handle(\"end\");\n if (i.tryLoc <= this.prev) {\n var c = n.call(i, \"catchLoc\"),\n u = n.call(i, \"finallyLoc\");\n if (c && u) {\n if (this.prev < i.catchLoc) return handle(i.catchLoc, !0);\n if (this.prev < i.finallyLoc) return handle(i.finallyLoc);\n } else if (c) {\n if (this.prev < i.catchLoc) return handle(i.catchLoc, !0);\n } else {\n if (!u) throw Error(\"try statement without catch or finally\");\n if (this.prev < i.finallyLoc) return handle(i.finallyLoc);\n }\n }\n }\n },\n abrupt: function abrupt(t, e) {\n for (var r = this.tryEntries.length - 1; r >= 0; --r) {\n var o = this.tryEntries[r];\n if (o.tryLoc <= this.prev && n.call(o, \"finallyLoc\") && this.prev < o.finallyLoc) {\n var i = o;\n break;\n }\n }\n i && (\"break\" === t || \"continue\" === t) && i.tryLoc <= e && e <= i.finallyLoc && (i = null);\n var a = i ? i.completion : {};\n return a.type = t, a.arg = e, i ? (this.method = \"next\", this.next = i.finallyLoc, y) : this.complete(a);\n },\n complete: function complete(t, e) {\n if (\"throw\" === t.type) throw t.arg;\n 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;\n },\n finish: function finish(t) {\n for (var e = this.tryEntries.length - 1; e >= 0; --e) {\n var r = this.tryEntries[e];\n if (r.finallyLoc === t) return this.complete(r.completion, r.afterLoc), resetTryEntry(r), y;\n }\n },\n \"catch\": function _catch(t) {\n for (var e = this.tryEntries.length - 1; e >= 0; --e) {\n var r = this.tryEntries[e];\n if (r.tryLoc === t) {\n var n = r.completion;\n if (\"throw\" === n.type) {\n var o = n.arg;\n resetTryEntry(r);\n }\n return o;\n }\n }\n throw Error(\"illegal catch attempt\");\n },\n delegateYield: function delegateYield(e, r, n) {\n return this.delegate = {\n iterator: values(e),\n resultName: r,\n nextLoc: n\n }, \"next\" === this.method && (this.arg = t), y;\n }\n }, e;\n}\nmodule.exports = _regeneratorRuntime, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","// TODO(Babel 8): Remove this file.\n\nvar runtime = require(\"../helpers/regeneratorRuntime\")();\nmodule.exports = runtime;\n\n// Copied from https://github.com/facebook/regenerator/blob/main/packages/runtime/runtime.js#L736=\ntry {\n regeneratorRuntime = runtime;\n} catch (accidentalStrictMode) {\n if (typeof globalThis === \"object\") {\n globalThis.regeneratorRuntime = runtime;\n } else {\n Function(\"r\", \"regeneratorRuntime = r\")(runtime);\n }\n}\n","import validate from './validate.js';\nconst byteToHex = [];\nfor (let i = 0; i < 256; ++i) {\n byteToHex.push((i + 0x100).toString(16).slice(1));\n}\nexport function unsafeStringify(arr, offset = 0) {\n return (byteToHex[arr[offset + 0]] +\n byteToHex[arr[offset + 1]] +\n byteToHex[arr[offset + 2]] +\n byteToHex[arr[offset + 3]] +\n '-' +\n byteToHex[arr[offset + 4]] +\n byteToHex[arr[offset + 5]] +\n '-' +\n byteToHex[arr[offset + 6]] +\n byteToHex[arr[offset + 7]] +\n '-' +\n byteToHex[arr[offset + 8]] +\n byteToHex[arr[offset + 9]] +\n '-' +\n byteToHex[arr[offset + 10]] +\n byteToHex[arr[offset + 11]] +\n byteToHex[arr[offset + 12]] +\n byteToHex[arr[offset + 13]] +\n byteToHex[arr[offset + 14]] +\n byteToHex[arr[offset + 15]]).toLowerCase();\n}\nfunction stringify(arr, offset = 0) {\n const uuid = unsafeStringify(arr, offset);\n if (!validate(uuid)) {\n throw TypeError('Stringified UUID is invalid');\n }\n return uuid;\n}\nexport default stringify;\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RyaW5naWZ5LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3N0cmluZ2lmeS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLFFBQVEsTUFBTSxlQUFlLENBQUM7QUFNckMsTUFBTSxTQUFTLEdBQWEsRUFBRSxDQUFDO0FBRS9CLEtBQUssSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxHQUFHLEVBQUUsRUFBRSxDQUFDLEVBQUUsQ0FBQztJQUM3QixTQUFTLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxHQUFHLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxFQUFFLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztBQUNwRCxDQUFDO0FBRUQsTUFBTSxVQUFVLGVBQWUsQ0FBQyxHQUFlLEVBQUUsTUFBTSxHQUFHLENBQUM7SUFNekQsT0FBTyxDQUNMLFNBQVMsQ0FBQyxHQUFHLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQyxDQUFDO1FBQzFCLFNBQVMsQ0FBQyxHQUFHLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQyxDQUFDO1FBQzFCLFNBQVMsQ0FBQyxHQUFHLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQyxDQUFDO1FBQzFCLFNBQVMsQ0FBQyxHQUFHLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQyxDQUFDO1FBQzFCLEdBQUc7UUFDSCxTQUFTLENBQUMsR0FBRyxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUMsQ0FBQztRQUMxQixTQUFTLENBQUMsR0FBRyxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUMsQ0FBQztRQUMxQixHQUFHO1FBQ0gsU0FBUyxDQUFDLEdBQUcsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDLENBQUM7UUFDMUIsU0FBUyxDQUFDLEdBQUcsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDLENBQUM7UUFDMUIsR0FBRztRQUNILFNBQVMsQ0FBQyxHQUFHLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQyxDQUFDO1FBQzFCLFNBQVMsQ0FBQyxHQUFHLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQyxDQUFDO1FBQzFCLEdBQUc7UUFDSCxTQUFTLENBQUMsR0FBRyxDQUFDLE1BQU0sR0FBRyxFQUFFLENBQUMsQ0FBQztRQUMzQixTQUFTLENBQUMsR0FBRyxDQUFDLE1BQU0sR0FBRyxFQUFFLENBQUMsQ0FBQztRQUMzQixTQUFTLENBQUMsR0FBRyxDQUFDLE1BQU0sR0FBRyxFQUFFLENBQUMsQ0FBQztRQUMzQixTQUFTLENBQUMsR0FBRyxDQUFDLE1BQU0sR0FBRyxFQUFFLENBQUMsQ0FBQztRQUMzQixTQUFTLENBQUMsR0FBRyxDQUFDLE1BQU0sR0FBRyxFQUFFLENBQUMsQ0FBQztRQUMzQixTQUFTLENBQUMsR0FBRyxDQUFDLE1BQU0sR0FBRyxFQUFFLENBQUMsQ0FBQyxDQUM1QixDQUFDLFdBQVcsRUFBRSxDQUFDO0FBQ2xCLENBQUM7QUFFRCxTQUFTLFNBQVMsQ0FBQyxHQUFlLEVBQUUsTUFBTSxHQUFHLENBQUM7SUFDNUMsTUFBTSxJQUFJLEdBQUcsZUFBZSxDQUFDLEdBQUcsRUFBRSxNQUFNLENBQUMsQ0FBQztJQU8xQyxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUM7UUFDcEIsTUFBTSxTQUFTLENBQUMsNkJBQTZCLENBQUMsQ0FBQztJQUNqRCxDQUFDO0lBRUQsT0FBTyxJQUFJLENBQUM7QUFDZCxDQUFDO0FBRUQsZUFBZSxTQUFTLENBQUMifQ==","let getRandomValues;\nconst rnds8 = new Uint8Array(16);\nexport default function rng() {\n if (!getRandomValues) {\n if (typeof crypto === 'undefined' || !crypto.getRandomValues) {\n throw new Error('crypto.getRandomValues() not supported. See https://github.com/uuidjs/uuid#getrandomvalues-not-supported');\n }\n getRandomValues = crypto.getRandomValues.bind(crypto);\n }\n return getRandomValues(rnds8);\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm5nLWJyb3dzZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvcm5nLWJyb3dzZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBSUEsSUFBSSxlQUEwRCxDQUFDO0FBRS9ELE1BQU0sS0FBSyxHQUFHLElBQUksVUFBVSxDQUFDLEVBQUUsQ0FBQyxDQUFDO0FBRWpDLE1BQU0sQ0FBQyxPQUFPLFVBQVUsR0FBRztJQUV6QixJQUFJLENBQUMsZUFBZSxFQUFFLENBQUM7UUFDckIsSUFBSSxPQUFPLE1BQU0sS0FBSyxXQUFXLElBQUksQ0FBQyxNQUFNLENBQUMsZUFBZSxFQUFFLENBQUM7WUFDN0QsTUFBTSxJQUFJLEtBQUssQ0FDYiwwR0FBMEcsQ0FDM0csQ0FBQztRQUNKLENBQUM7UUFFRCxlQUFlLEdBQUcsTUFBTSxDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDeEQsQ0FBQztJQUVELE9BQU8sZUFBZSxDQUFDLEtBQUssQ0FBQyxDQUFDO0FBQ2hDLENBQUMifQ==","const randomUUID = typeof crypto !== 'undefined' && crypto.randomUUID && crypto.randomUUID.bind(crypto);\nexport default { randomUUID };\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmF0aXZlLWJyb3dzZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvbmF0aXZlLWJyb3dzZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsTUFBTSxVQUFVLEdBQ2QsT0FBTyxNQUFNLEtBQUssV0FBVyxJQUFJLE1BQU0sQ0FBQyxVQUFVLElBQUksTUFBTSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUM7QUFFdkYsZUFBZSxFQUFFLFVBQVUsRUFBRSxDQUFDIn0=","import native from './native.js';\nimport rng from './rng.js';\nimport { unsafeStringify } from './stringify.js';\nfunction v4(options, buf, offset) {\n if (native.randomUUID && !buf && !options) {\n return native.randomUUID();\n }\n options = options || {};\n const rnds = options.random || (options.rng || rng)();\n rnds[6] = (rnds[6] & 0x0f) | 0x40;\n rnds[8] = (rnds[8] & 0x3f) | 0x80;\n if (buf) {\n offset = offset || 0;\n for (let i = 0; i < 16; ++i) {\n buf[offset + i] = rnds[i];\n }\n return buf;\n }\n return unsafeStringify(rnds);\n}\nexport default v4;\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidjQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvdjQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxNQUFNLE1BQU0sYUFBYSxDQUFDO0FBQ2pDLE9BQU8sR0FBRyxNQUFNLFVBQVUsQ0FBQztBQUMzQixPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFJakQsU0FBUyxFQUFFLENBQUMsT0FBeUIsRUFBRSxHQUFnQixFQUFFLE1BQWU7SUFDdEUsSUFBSSxNQUFNLENBQUMsVUFBVSxJQUFJLENBQUMsR0FBRyxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUM7UUFDMUMsT0FBTyxNQUFNLENBQUMsVUFBVSxFQUFFLENBQUM7SUFDN0IsQ0FBQztJQUVELE9BQU8sR0FBRyxPQUFPLElBQUksRUFBRSxDQUFDO0lBRXhCLE1BQU0sSUFBSSxHQUFHLE9BQU8sQ0FBQyxNQUFNLElBQUksQ0FBQyxPQUFPLENBQUMsR0FBRyxJQUFJLEdBQUcsQ0FBQyxFQUFFLENBQUM7SUFHdEQsSUFBSSxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxHQUFHLElBQUksQ0FBQyxHQUFHLElBQUksQ0FBQztJQUNsQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEdBQUcsSUFBSSxDQUFDLEdBQUcsSUFBSSxDQUFDO0lBR2xDLElBQUksR0FBRyxFQUFFLENBQUM7UUFDUixNQUFNLEdBQUcsTUFBTSxJQUFJLENBQUMsQ0FBQztRQUVyQixLQUFLLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUFFLENBQUM7WUFDNUIsR0FBRyxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUMsR0FBRyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDNUIsQ0FBQztRQUVELE9BQU8sR0FBRyxDQUFDO0lBQ2IsQ0FBQztJQUVELE9BQU8sZUFBZSxDQUFDLElBQUksQ0FBQyxDQUFDO0FBQy9CLENBQUM7QUFFRCxlQUFlLEVBQUUsQ0FBQyJ9","import platform from \"platform\";\nimport { isNotNil } from \"ramda\";\n\nimport { HELP_DOCS_BASE_URL } from \"./helpUrls\";\n\n// https://docs.aws.amazon.com/AmazonS3/latest/API/ErrorResponses.html#ErrorCodeList\nexport const RETRYABLE_ERRORS = [500, 503];\n\nexport const ONE_SECOND_IN_MILLISECONDS = 1000;\nexport const HALF_A_SECOND_IN_MILLISECONDS = 500;\nexport const TWO_HUNDRED_MILLISECONDS = 200;\n\nexport const ONE_MINUTE_IN_MILLISECONDS = 60 * ONE_SECOND_IN_MILLISECONDS;\nexport const ONE_HOUR_IN_MILLISECONDS = 60 * ONE_MINUTE_IN_MILLISECONDS;\n\nexport const ONE_SECOND = 1;\n\nexport const COUNTDOWN_TIME = 3;\n\nexport const UPLOAD_EVENT = {\n onComplete: \"onComplete\",\n onError: \"onError\",\n onProgress: \"onProgress\",\n};\n\nexport const UPLOAD_STATUS = {\n uploading: \"uploading\",\n completed: \"completed\",\n aborting: \"aborting\",\n insufficient_data: \"insufficient_data\",\n error: \"error\",\n};\n\nexport const SCREEN_RECORDER_STATUS = {\n media_aborted: \"media_aborted\",\n permission_denied: \"permission_denied\",\n no_specified_media_found: \"no_specified_media_found\",\n media_in_use: \"media_in_use\",\n invalid_media_constraints: \"invalid_media_constraints\",\n no_chrome_flags_set: \"no_chrome_flags_set\",\n recorder_error: \"recorder_error\",\n idle: \"idle\",\n acquiring_media: \"acquiring_media\",\n media_acquired: \"media_acquired\",\n restarting: \"restarting\",\n recording: \"recording\",\n stopping: \"stopping\",\n stopped: \"stopped\",\n paused: \"paused\",\n};\n\nexport const SCREEN_RECORDER_ERROR = {\n MicPermissionDenied: \"mic_permission_denied\",\n AbortError: \"media_aborted\",\n NotAllowedError: \"permission_denied\",\n NotFoundError: \"no_specified_media_found\",\n NotReadableError: \"media_in_use\",\n OverconstrainedError: \"invalid_media_constraints\",\n TypeError: \"no_chrome_flags_set\",\n None: \"\",\n NoRecorder: \"recorder_error\",\n UnSupportedBrowser: \"unsupported_browser\",\n FailedToStart: \"failed_to_start\",\n CreateRecordingError: \"create_recording_error\",\n InsufficientData: \"insufficient_data\",\n};\n\nexport const SCREEN_RECORDER_EVENT = {\n onStart: \"onStart\",\n onStop: \"onStop\",\n onDiscard: \"onDiscard\",\n onDataAvailable: \"onDataAvailable\",\n onDiscardDuringCountdown: \"onDiscardDuringCountdown\",\n onRestart: \"onRestart\",\n onReUpload: \"onReUpload\",\n onReUploadFromDisk: \"onReUploadFromDisk\",\n onPause: \"onPause\",\n onResume: \"onResume\",\n onCountdownStart: \"onCountdownStart\",\n onCountdown: \"onCountDown\",\n onCountdownEnd: \"onCountdownEnd\",\n onCountdownSkip: \"onCountdownSkip\",\n onShareSelected: \"onShareSelected\",\n // Fired when the capture ends without the app calling stop() — i.e. the\n // browser's \"Stop sharing\" pill or an OS-level termination (resource\n // pressure, source closed, permission revoked). The two are\n // indistinguishable in the Web/extension APIs, so consumers should surface\n // both possibilities. If no consumer subscribes, the recorder falls back to\n // finalizing the recording (stopRecording).\n onUnexpectedEnd: \"onUnexpectedEnd\",\n};\n\nexport const TOTAL_RETRIES = 15;\nexport const ABORT_UPLOAD_RETRIES = 2;\nexport const INITIAL_RETRY_DELAY = 4000;\nexport const MAX_RETRY_DELAY = 16000;\n\nexport const DEFAULT_RETRY_CONFIG = {\n retries: TOTAL_RETRIES,\n retryDelay: INITIAL_RETRY_DELAY,\n retryableStatuses: [],\n};\n\n// No need to localize this since it will only be used in the code\n// eslint-disable-next-line @bigbinary/neeto/hard-coded-strings-should-be-localized\nexport const NETWORK_ERROR = \"Network Error\";\nexport const TIMEOUT_ERROR = \"ECONNABORTED\";\n\nexport const HAS_CHROME_NAMESPACE = typeof chrome === \"object\";\n\nexport const IS_EXTENSION = HAS_CHROME_NAMESPACE && isNotNil(chrome.extension);\n\nexport const IS_SAFARI = platform.name === \"Safari\";\n\nexport const IS_SAFARI_EXTENSION = IS_SAFARI && IS_EXTENSION;\n\nexport const PERMISSIONS_HELP_DOC = `${HELP_DOCS_BASE_URL}/p/a-10efcfd7`;\n\n// Firefox refuses to start a MediaRecorder on a stream that has both audio and\n// video tracks unless the MIME string declares the audio codec too. Chromium\n// and Safari accept the video-only form and silently pick Opus/AAC. We keep\n// both variants and always prefer the codec-complete ones in\n// getSupportedMimeType so a single code path works across browsers.\nexport const MIME_TYPE = {\n mp4: \"video/mp4\",\n webmH264Opus: \"video/webm;codecs=h264,opus\",\n webmH264: \"video/webm;codecs=h264\",\n webmVp9Opus: \"video/webm;codecs=vp9,opus\",\n webmVp9: \"video/webm;codecs=vp9\",\n webmVp8Opus: \"video/webm;codecs=vp8,opus\",\n webmVp8: \"video/webm;codecs=vp8\",\n webm: \"video/webm\",\n};\n\nexport const START_RECORDING_SOUND =\n \"https://neeto-record-static-assets.s3.amazonaws.com/recording-start-sound-2.mp3\";\n\nexport const COUNTDOWN_TICK_SOUND =\n \"https://neeto-record-static-assets.s3.us-east-1.amazonaws.com/recording-tick-sound.mp3\";\n\nexport const STOP_RECORDING_DUE_TO_LIMIT_REACHED_SOUND =\n \"https://neeto-record-static-assets.s3.amazonaws.com/recording-end-sound.mp3\";\n\nexport const RECORDING_LIMIT_REACHED_WARNING_SOUND =\n \"https://neeto-record-static-assets.s3.amazonaws.com/recording-warning-sound.mp3\";\n\nexport const RECORDING_TIME_LIMIT_FREE_PLAN = 15 * ONE_MINUTE_IN_MILLISECONDS; // 15 minutes\nexport const RECORDING_TIME_LIMIT_PRO_PLAN = 2 * ONE_HOUR_IN_MILLISECONDS; // 2 hours\n\nexport const MIC_NOT_WORKING_ALERT_TIME = 30;\nexport const MIC_NOT_WORKING_SILENCE_TIMEOUT =\n MIC_NOT_WORKING_ALERT_TIME * 1000;\n","function _setPrototypeOf(t, e) {\n return _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function (t, e) {\n return t.__proto__ = e, t;\n }, _setPrototypeOf(t, e);\n}\nexport { _setPrototypeOf as default };","import setPrototypeOf from \"./setPrototypeOf.js\";\nfunction _inherits(t, e) {\n if (\"function\" != typeof e && null !== e) throw new TypeError(\"Super expression must either be null or a function\");\n t.prototype = Object.create(e && e.prototype, {\n constructor: {\n value: t,\n writable: !0,\n configurable: !0\n }\n }), Object.defineProperty(t, \"prototype\", {\n writable: !1\n }), e && setPrototypeOf(t, e);\n}\nexport { _inherits as default };","function _assertThisInitialized(e) {\n if (void 0 === e) throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n return e;\n}\nexport { _assertThisInitialized as default };","import _typeof from \"./typeof.js\";\nimport assertThisInitialized from \"./assertThisInitialized.js\";\nfunction _possibleConstructorReturn(t, e) {\n if (e && (\"object\" == _typeof(e) || \"function\" == typeof e)) return e;\n if (void 0 !== e) throw new TypeError(\"Derived constructors may only return object or undefined\");\n return assertThisInitialized(t);\n}\nexport { _possibleConstructorReturn as default };","function _getPrototypeOf(t) {\n return _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function (t) {\n return t.__proto__ || Object.getPrototypeOf(t);\n }, _getPrototypeOf(t);\n}\nexport { _getPrototypeOf as default };","function _isNativeFunction(t) {\n try {\n return -1 !== Function.toString.call(t).indexOf(\"[native code]\");\n } catch (n) {\n return \"function\" == typeof t;\n }\n}\nexport { _isNativeFunction as default };","function _isNativeReflectConstruct() {\n try {\n var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {}));\n } catch (t) {}\n return (_isNativeReflectConstruct = function _isNativeReflectConstruct() {\n return !!t;\n })();\n}\nexport { _isNativeReflectConstruct as default };","import isNativeReflectConstruct from \"./isNativeReflectConstruct.js\";\nimport setPrototypeOf from \"./setPrototypeOf.js\";\nfunction _construct(t, e, r) {\n if (isNativeReflectConstruct()) return Reflect.construct.apply(null, arguments);\n var o = [null];\n o.push.apply(o, e);\n var p = new (t.bind.apply(t, o))();\n return r && setPrototypeOf(p, r.prototype), p;\n}\nexport { _construct as default };","import getPrototypeOf from \"./getPrototypeOf.js\";\nimport setPrototypeOf from \"./setPrototypeOf.js\";\nimport isNativeFunction from \"./isNativeFunction.js\";\nimport construct from \"./construct.js\";\nfunction _wrapNativeSuper(t) {\n var r = \"function\" == typeof Map ? new Map() : void 0;\n return _wrapNativeSuper = function _wrapNativeSuper(t) {\n if (null === t || !isNativeFunction(t)) return t;\n if (\"function\" != typeof t) throw new TypeError(\"Super expression must either be null or a function\");\n if (void 0 !== r) {\n if (r.has(t)) return r.get(t);\n r.set(t, Wrapper);\n }\n function Wrapper() {\n return construct(t, arguments, getPrototypeOf(this).constructor);\n }\n return Wrapper.prototype = Object.create(t.prototype, {\n constructor: {\n value: Wrapper,\n enumerable: !1,\n writable: !0,\n configurable: !0\n }\n }), setPrototypeOf(Wrapper, t);\n }, _wrapNativeSuper(t);\n}\nexport { _wrapNativeSuper as default };","export const sleep = delay =>\n new Promise(resolve => setTimeout(resolve, delay));\n\nexport const generatePublicUrl = (\n recordingId,\n baseURL = window.location.origin\n) => `${baseURL}/watch/${recordingId}`;\n","// Axios is required here to detect CancelledError so retries can be skipped\n// when an AbortController fires after the request was queued. The filename\n// rule fires because of this axios import — this file is a retry helper, not\n// an API connector, so the snake_case requirement doesn't apply.\n/* eslint-disable\n @bigbinary/neeto/no-axios-import-outside-apis,\n @bigbinary/neeto/use-snake-case-for-api-connector-filename */\nimport axios from \"axios\";\nimport { min } from \"ramda\";\n\nimport {\n DEFAULT_RETRY_CONFIG,\n INITIAL_RETRY_DELAY,\n MAX_RETRY_DELAY,\n TOTAL_RETRIES,\n} from \"src/constants\";\nimport { sleep } from \"utils\";\n\nclass RetryError extends Error {\n constructor(message) {\n super(message);\n }\n}\n\nconst buildRetryableApi =\n (\n apiConnector,\n {\n retries = TOTAL_RETRIES,\n retryDelay = INITIAL_RETRY_DELAY,\n } = DEFAULT_RETRY_CONFIG\n ) =>\n async apiConnectorArgs => {\n const { config = null } = apiConnectorArgs;\n\n // If the signal is already aborted before we start, addEventListener(\"abort\")\n // will never fire — so we'd otherwise run the full retry/backoff schedule\n // against an aborted request. Throw an axios CanceledError so callers'\n // `axios.isCancel` checks treat this as cancellation instead of a real\n // failure (e.g. completeUpload won't flip status to \"error\" while a\n // parallel abortUpload is finishing).\n if (config?.signal?.aborted) {\n throw new axios.CanceledError(\"Request cancelled\");\n }\n\n let remainingAttempts = retries + 1;\n let shouldCancelRetries = false;\n\n config?.signal?.addEventListener(\"abort\", () => {\n shouldCancelRetries = true;\n });\n\n while (remainingAttempts-- && !shouldCancelRetries) {\n try {\n return await apiConnector(apiConnectorArgs);\n } catch (error) {\n // Cancelled requests should bail immediately rather than spend the\n // full retry budget (4s + 8s + 16s × N) waiting on a dead signal.\n if (axios.isCancel(error)) throw error;\n\n logger.error(\n \"buildRetryableApi -> Failed to connect, remainingAttempts:\",\n error?.config?.url,\n error.response?.status,\n remainingAttempts\n );\n\n if (error.response?.status !== 401 && remainingAttempts > 0) {\n logger.info(\n \"buildRetryableApi -> Failed to connect -> retry in:\",\n retryDelay\n );\n await sleep(retryDelay);\n retryDelay = min(retryDelay * 2, MAX_RETRY_DELAY);\n if (shouldCancelRetries) throw error;\n } else {\n throw error;\n }\n }\n }\n\n throw new RetryError(\"Request cancelled or request retries exhausted\");\n };\n\nexport default buildRetryableApi;\n","import axios from \"axios\";\n\nimport { ABORT_UPLOAD_RETRIES } from \"src/constants\";\nimport buildRetryableApi from \"utils/buildRetryableApi\";\n\nconst create = ({ recordingId, payload }) =>\n axios.post(`/api/v1/recordings/${recordingId}/abort_upload`, {\n abortUpload: payload,\n });\n\nconst retryableCreate = buildRetryableApi(create, {\n retries: ABORT_UPLOAD_RETRIES,\n});\n\nconst abortUploadApi = { create: retryableCreate };\n\nexport default abortUploadApi;\n","import axios from \"axios\";\n\nimport buildRetryableApi from \"utils/buildRetryableApi\";\n\nconst create = ({ recordingId, payload, config }) =>\n axios.post(\n `/api/v1/recordings/${recordingId}/complete_upload`,\n { completeUpload: payload },\n config\n );\n\nconst retryableCreate = buildRetryableApi(create);\n\nconst completeUploadApi = { create: retryableCreate };\n\nexport default completeUploadApi;\n","import axios from \"axios\";\n\nimport buildRetryableApi from \"utils/buildRetryableApi\";\n\nconst create = ({ recordingId, payload, config }) =>\n axios.post(\n `/api/v1/recordings/${recordingId}/part_presigned_url`,\n { partPresignedUrl: payload },\n config\n );\n\nconst retryableCreate = buildRetryableApi(create);\n\nconst partPresignedUrlApi = { create: retryableCreate };\n\nexport default partPresignedUrlApi;\n","import { existsBy, isNotEmpty } from \"neetocist\";\nimport { isNil } from \"ramda\";\n\nimport { IS_SAFARI, MIME_TYPE } from \"src/constants\";\n\nconst getUnSupportedConstraints = mediaType => {\n const supportedMediaConstraints =\n navigator.mediaDevices.getSupportedConstraints();\n\n return Object.keys(mediaType).filter(\n constraint => !supportedMediaConstraints[constraint]\n );\n};\n\nexport const checkConstraints = (...mediaTypes) => {\n if (isNil(navigator.mediaDevices)) {\n return;\n }\n\n const unSupportedConstraints = mediaTypes\n .filter(mediaType => typeof mediaType === \"object\")\n .map(getUnSupportedConstraints)\n .flat();\n\n if (isNotEmpty(unSupportedConstraints)) {\n logger.error(\n `The constraints ${unSupportedConstraints.join(\n \",\"\n )} doesn't support on this browser.`\n );\n }\n};\n\nexport const isStreamEnded = mediaStream =>\n existsBy({ readyState: \"ended\" }, mediaStream.getTracks());\n\n// Picks the best MediaRecorder MIME type the current browser supports.\n// Chromium produces H.264-in-WebM, Safari only produces MP4, and Firefox\n// produces VP9/VP8-in-WebM. Returns null if none of the candidates are\n// supported so callers can surface an \"unsupported browser\" state.\nexport const getSupportedMimeType = () => {\n if (typeof MediaRecorder === \"undefined\") return null;\n\n // Safari only exposes a working MediaRecorder for MP4.\n if (IS_SAFARI && MediaRecorder.isTypeSupported(MIME_TYPE.mp4)) {\n return MIME_TYPE.mp4;\n }\n\n // Prefer types that declare the audio codec explicitly. Firefox requires\n // this when the MediaStream has both audio and video tracks; Chromium and\n // Safari are happy with either form.\n const candidates = [\n MIME_TYPE.webmH264Opus,\n MIME_TYPE.webmVp9Opus,\n MIME_TYPE.webmVp8Opus,\n MIME_TYPE.webmH264,\n MIME_TYPE.webmVp9,\n MIME_TYPE.webmVp8,\n MIME_TYPE.webm,\n MIME_TYPE.mp4,\n ];\n\n return candidates.find(type => MediaRecorder.isTypeSupported(type)) ?? null;\n};\n\nexport const getMediaRecorderOptions = () => {\n const mimeType = getSupportedMimeType();\n\n if (!mimeType) return {};\n\n return { mimeType };\n};\n\nexport const addGainNode = (audioStream, gain = 1.5) => {\n const audioContext = new AudioContext();\n const audioStreamSource = audioContext.createMediaStreamSource(audioStream);\n\n const destinationStream = audioContext.createMediaStreamDestination();\n\n const gainNode = audioContext.createGain();\n gainNode.gain.value = gain;\n\n audioStreamSource.connect(gainNode);\n gainNode.connect(destinationStream);\n\n return destinationStream.stream;\n};\n","import axios from \"axios\";\nimport { identity } from \"ramda\";\n\nimport { getSupportedMimeType } from \"src/core/screenRecorder/utils\";\nimport buildRetryableApi from \"utils/buildRetryableApi\";\n\nconst s3AxiosInstance = axios.create({\n headers: { \"Content-Type\": getSupportedMimeType() },\n});\n\ns3AxiosInstance.interceptors.response.use(\n identity,\n error => !axios.isCancel(error) && Promise.reject(error)\n);\n\nconst presignedUpload = ({ presignedUrl, blob, config }) =>\n s3AxiosInstance.put(presignedUrl, blob, config);\n\nconst retryablePresignedUpload = buildRetryableApi(presignedUpload);\n\nconst s3Api = { presignedUpload: retryablePresignedUpload };\n\nexport default s3Api;\n","import { Toastr } from \"@bigbinary/neeto-atoms\";\nimport { copyToClipboard } from \"neetocommons/utils/general\";\nimport {\n IS_EXTENSION,\n MIME_TYPE,\n ONE_MINUTE_IN_MILLISECONDS,\n ONE_SECOND_IN_MILLISECONDS,\n SCREEN_RECORDER_STATUS,\n UPLOAD_STATUS,\n} from \"neetomediarecorder/constants\";\nimport { screenRecorder } from \"neetomediarecorder/core\";\nimport platform from \"platform\";\n\nimport { ONE_HOUR_IN_MILLISECONDS } from \"src/constants\";\nimport { getSupportedMimeType } from \"src/core/screenRecorder/utils\";\nimport { generatePublicUrl } from \"utils\";\n\nconst formatTime = time => Math.floor(time).toString().padStart(2, \"0\");\n\nexport const getTimeString = date => {\n const hours = formatTime(Math.floor(date / ONE_HOUR_IN_MILLISECONDS));\n const minutes = formatTime(\n (date % ONE_HOUR_IN_MILLISECONDS) / ONE_MINUTE_IN_MILLISECONDS\n );\n\n const seconds = formatTime(\n (date % ONE_MINUTE_IN_MILLISECONDS) / ONE_SECOND_IN_MILLISECONDS\n );\n\n if (hours > 0) {\n return `${hours}:${minutes}:${seconds}`;\n }\n\n return `${minutes}:${seconds}`;\n};\n\nexport const downloadRecordingBlob = (blob, name) => {\n const blobUrl = URL.createObjectURL(blob);\n\n const linkElement = document.createElement(\"a\");\n\n linkElement.href = blobUrl;\n linkElement.download = name;\n\n document.body.appendChild(linkElement);\n\n // Dispatch click event on the link\n // This is necessary as link.click() does not work on the latest firefox\n linkElement.dispatchEvent(\n new MouseEvent(\"click\", {\n bubbles: true,\n cancelable: true,\n view: window,\n })\n );\n\n document.body.removeChild(linkElement);\n URL.revokeObjectURL(blobUrl);\n};\n\nexport const hasRecordingDiscarded = ({ recorderStatus, uploadStatus }) =>\n recorderStatus === SCREEN_RECORDER_STATUS.stopped &&\n uploadStatus === UPLOAD_STATUS.aborting;\n\nexport const getRecorderTimeLimitInHumanFormat = timeInMs => {\n const minutes = Math.floor(timeInMs / (1000 * 60));\n const hours = Math.floor(minutes / 60);\n\n if (hours < 1) {\n if (minutes < 1) {\n return `${Math.floor(timeInMs / ONE_SECOND_IN_MILLISECONDS)} seconds`;\n }\n\n return `${minutes} minutes`;\n }\n\n return `${hours} hours`;\n};\n\nexport const getDeviceInfo = async (mimeType = getSupportedMimeType()) => {\n const isCameraEnabled = IS_EXTENSION\n ? (await chrome.storage.local.get(\"isCameraOn\"))?.isCameraOn\n : false;\n\n return {\n os: platform.os?.toString(),\n app: IS_EXTENSION\n ? `chrome extension v${chrome.runtime.getManifest().version}`\n : \"web\",\n browser: `${platform.name} v${platform.version}`,\n isCameraEnabled,\n isMicEnabled: !!screenRecorder.audioConfiguration,\n displaySurface: screenRecorder.displaySurface,\n mimeType,\n };\n};\n\nexport const isMp4Supported = (mimeType = getSupportedMimeType()) =>\n mimeType.includes(MIME_TYPE.mp4);\n\n/**\n * Copy a recording's public link to the clipboard while preserving Safari's\n * transient user activation. Must be invoked synchronously inside a user\n * gesture handler (e.g. button onClick).\n *\n * Safari (WebKit) refuses navigator.clipboard.write[Text] outside a user\n * gesture, so the post-recording auto-copy cannot be done in a useEffect.\n * Since `recording.id` is only known once the create-recording POST resolves,\n * we keep the gesture alive across that wait by handing\n * navigator.clipboard.write a ClipboardItem backed by a Promise<Blob>; Safari\n * preserves the activation until the promise settles.\n *\n * @param {Object} params\n * @param {React.RefObject<Promise<unknown> | null>} params.createRecordingPromise\n * @param {React.RefObject<{ id?: string | number }>} params.recordingRef\n * @param {React.RefObject<string>} params.baseURLRef\n * @param {string} params.successMessage Toastr message shown on success.\n */\nexport const copyRecordingLinkToClipboardOnStop = ({\n createRecordingPromise,\n recordingRef,\n baseURLRef,\n successMessage,\n}) => {\n const resolveLink = async () => {\n if (createRecordingPromise?.current) {\n await createRecordingPromise.current;\n }\n const recordingId = recordingRef?.current?.id;\n const baseURL = baseURLRef?.current;\n if (!recordingId || !baseURL) {\n throw new Error(\"Recording id or base URL unavailable\");\n }\n\n return generatePublicUrl(recordingId, baseURL);\n };\n\n if (\n typeof window.ClipboardItem === \"function\" &&\n navigator.clipboard?.write\n ) {\n const linkBlobPromise = (async () =>\n new Blob([await resolveLink()], { type: \"text/plain\" }))();\n\n // Synchronously initiate clipboard.write so Safari preserves the user\n // activation across the wait for linkBlobPromise.\n const writePromise = navigator.clipboard.write([\n new ClipboardItem({ \"text/plain\": linkBlobPromise }),\n ]);\n\n (async () => {\n try {\n await writePromise;\n Toastr.success(successMessage);\n } catch {\n // Swallow: clipboard.write may reject (e.g. Safari denied due to\n // missing gesture, or recording id / baseURL was unavailable).\n }\n })();\n\n return;\n }\n\n // Legacy fallback for browsers without ClipboardItem (e.g. Firefox < 127).\n // These browsers don't enforce Safari's strict gesture requirement, so a\n // deferred async write is acceptable. copyToClipboard handles its own\n // success toastr and falls back to document.execCommand internally.\n (async () => {\n try {\n const link = await resolveLink();\n await copyToClipboard(link, { message: successMessage });\n } catch {\n // Swallow: silent failure.\n }\n })();\n};\n","const createPrefixedLogger = prefix => ({\n info: (...args) => logger.info(prefix, ...args),\n error: (...args) => logger.error(prefix, ...args),\n warn: (...args) => logger.warn(prefix, ...args),\n debug: (...args) => logger.debug(prefix, ...args),\n});\n\nexport default createPrefixedLogger;\n","/**\n * Due to the custom axios interceptor for s3Api,\n * it'll return false for cancelled requests instead of a cancelled error object.\n */\nexport const isNotCancelledRequest = resolvedResponse =>\n typeof resolvedResponse !== \"boolean\";\n\nexport const calculateUploadProgress = uploadProgress => {\n const total = Object.values(uploadProgress).reduce(\n (sum, part) => sum + part.total,\n 0\n );\n\n const uploaded = Object.values(uploadProgress).reduce(\n (sum, part) => sum + part.uploaded,\n 0\n );\n\n return Math.round((uploaded * 100) / total);\n};\n","// Axios is required here to waive off the CancelledError which occurs when\n// using AbortController on an axios request.\n// eslint-disable-next-line @bigbinary/neeto/no-axios-import-outside-apis\nimport axios from \"axios\";\nimport { isNot, isNotEmpty } from \"neetocist\";\nimport { UPLOAD_EVENT, UPLOAD_STATUS } from \"neetomediarecorder/constants\";\nimport { useMultipartS3UploadStatus } from \"neetomediarecorder/core\";\nimport { isEmpty } from \"ramda\";\nimport { v4 as uuidv4 } from \"uuid\";\n\nimport abortUploadApi from \"src/apis/abort_upload\";\nimport completeUploadApi from \"src/apis/complete_upload\";\nimport partPresignedUrlApi from \"src/apis/part_presigned_url\";\nimport s3Api from \"src/apis/s3\";\nimport { isMp4Supported } from \"src/components/MediaRecorder/utils\";\nimport { MIME_TYPE } from \"src/constants\";\nimport createPrefixedLogger from \"utils/createPrefixedLogger\";\n\nimport { isNotCancelledRequest, calculateUploadProgress } from \"./utils\";\n\nimport { getSupportedMimeType } from \"../screenRecorder/utils\";\n\nclass MultipartS3Uploader {\n MIN_UPLOAD_CHUNK_SIZE = 5 * 1024 * 1024;\n\n #recordingId = \"\";\n #uploadId = \"\";\n #unUploadedChunks = [];\n #partNumber = 1;\n #s3PartUploadPromises = [];\n #callbacks = {};\n #abortController;\n #pendingS3ChunkUploads = [];\n #completeUploadPromise;\n #failedUpload = [];\n #uploadProgress = {};\n #lastLoggedOverallPercent = -1;\n\n #_status = \"\";\n #id = uuidv4();\n #logger = createPrefixedLogger(`[${this.#id}]`);\n #mimeType = getSupportedMimeType();\n\n constructor() {\n this.#logger.info(\"Uploader initialized\", {\n mimeType: this.#mimeType,\n minUploadChunkSize: this.MIN_UPLOAD_CHUNK_SIZE,\n });\n }\n\n get status() {\n return this.#_status;\n }\n\n get mimeType() {\n return this.#mimeType;\n }\n\n set #status(status) {\n this.#_status = status;\n useMultipartS3UploadStatus.triggerStatusChange();\n }\n\n get hasSufficientData() {\n return (\n isNotEmpty(this.#unUploadedChunks) ||\n isNotEmpty(this.#pendingS3ChunkUploads) ||\n isNotEmpty(this.#s3PartUploadPromises)\n );\n }\n\n setMimeType = mimeType => (this.#mimeType = mimeType);\n\n setRecording = (recordingId, uploadId) => {\n this.#logger.info(\"setRecording\", { recordingId, uploadId });\n this.#recordingId = recordingId;\n this.#uploadId = uploadId;\n this.#abortController = new AbortController();\n };\n\n push = data => {\n // Once an uploader has been aborted, any further chunks belong to a\n // recording that no longer exists server-side. Drop them so we don't\n // spawn new part uploads against an aborted multipart upload (which\n // would otherwise loop on retries until the network gives up).\n if (this.#isTerminalStatus) {\n this.#logger.warn(\n \"push -> uploader is no longer active, dropping chunk\",\n {\n chunkBytes: data?.size,\n status: this.#_status,\n recordingId: this.#recordingId,\n }\n );\n this.#unUploadedChunks = [];\n\n return;\n }\n\n if (data.size > 0) {\n this.#unUploadedChunks.push(data);\n }\n\n const unUploadedBytes = this.#getCurrentUnUploadedBlob().size;\n this.#logger.info(\"push -> chunk buffered\", {\n chunkBytes: data?.size,\n chunkType: data?.type,\n bufferedChunks: this.#unUploadedChunks.length,\n bufferedBytes: unUploadedBytes,\n bufferedMB: Number((unUploadedBytes / 1024 / 1024).toFixed(2)),\n threshold: this.MIN_UPLOAD_CHUNK_SIZE,\n recordingId: this.#recordingId,\n uploadId: this.#uploadId,\n });\n\n if (this.#isRecordingNotSet) {\n this.#logger.warn(\n \"push -> recording not yet set, holding chunk in buffer\"\n );\n\n return;\n }\n\n if (unUploadedBytes > this.MIN_UPLOAD_CHUNK_SIZE) {\n const uploadChunkToS3Promise = this.#uploadChunkToS3(\n this.#unUploadedChunks\n );\n\n this.#pendingS3ChunkUploads.push(uploadChunkToS3Promise);\n this.#unUploadedChunks = [];\n }\n };\n\n completeUploadNotifyServer = (parts, sessionLogs) =>\n completeUploadApi.create({\n recordingId: this.#recordingId,\n payload: {\n parts,\n uploadId: this.#uploadId,\n isMp4: isMp4Supported(this.#mimeType),\n logs: sessionLogs,\n },\n config: { signal: this.#abortController?.signal },\n });\n\n completeUpload = async sessionLogs => {\n const completeStartedAt = Date.now();\n this.#logger.info(\"completeUpload -> begin\", {\n recordingId: this.#recordingId,\n uploadId: this.#uploadId,\n pendingChunks: this.#pendingS3ChunkUploads.length,\n bufferedBytes: this.#getCurrentUnUploadedBlob().size,\n totalPartsStarted: this.#partNumber - 1,\n });\n try {\n this.#status = UPLOAD_STATUS.uploading;\n\n if (this.#isRecordingNotSet) {\n this.#logger.error(\"completeUpload -> not initialized\", {\n recordingId: this.#recordingId,\n uploadId: this.#uploadId,\n });\n\n return;\n }\n\n // Upload last chunk; only if last chunk has data\n const lastChunkBytes = this.#getCurrentUnUploadedBlob().size;\n if (lastChunkBytes > 0) {\n this.#logger.info(\"completeUpload -> uploading final buffered chunk\", {\n bytes: lastChunkBytes,\n });\n\n const uploadChunkToS3Promise = this.#uploadChunkToS3(\n this.#unUploadedChunks\n );\n\n this.#pendingS3ChunkUploads.push(uploadChunkToS3Promise);\n }\n\n /**\n * Wait for all the pending uploadToS3Promises.\n * Else we encounter a race condition where a new request is made for presignedUrl\n * but at the same time we reach the resolvedS3PartUploadPromises line and await\n * the s3PartUploadPromises. And the s3PartUploadPromises is resolved before\n * adding the new presignedUrl part upload to s3PartUploadPromises.\n * This results in incorrect partNumbers.\n */\n this.#logger.info(\"completeUpload -> awaiting pending chunks\", {\n pendingS3ChunkUploads: this.#pendingS3ChunkUploads.length,\n });\n await Promise.all(this.#pendingS3ChunkUploads);\n\n this.#logger.info(\"completeUpload -> awaiting part uploads\", {\n s3PartUploadPromises: this.#s3PartUploadPromises.length,\n });\n\n const resolvedS3PartUploadPromises = await Promise.all(\n this.#s3PartUploadPromises\n );\n\n if (isNotEmpty(this.#failedUpload)) {\n this.#logger.error(\n \"completeUpload -> failed parts present, aborting completion\",\n { failedPartNumbers: this.#failedUpload }\n );\n this.#status = UPLOAD_STATUS.error;\n this.#fireCallbacks(UPLOAD_EVENT.onError);\n\n return;\n }\n\n if (resolvedS3PartUploadPromises.length === 0) {\n this.#logger.warn(\"completeUpload -> no parts uploaded\", {\n recordingId: this.#recordingId,\n uploadId: this.#uploadId,\n });\n this.#status = UPLOAD_STATUS.insufficient_data;\n\n return;\n }\n\n const parts = resolvedS3PartUploadPromises\n .filter(isNotCancelledRequest)\n .map(resolvedResponse => ({\n etag: resolvedResponse.headers.etag,\n partNumber: new URL(\n resolvedResponse.request.responseURL\n ).searchParams.get(\"partNumber\"),\n }))\n .toSorted((a, b) => Number(a.partNumber) - Number(b.partNumber));\n\n this.#logger.info(\"completeUpload -> notifying server\", {\n partCount: parts.length,\n parts,\n });\n const notifyStartedAt = Date.now();\n this.#completeUploadPromise = this.completeUploadNotifyServer(\n parts,\n sessionLogs\n );\n\n await this.#completeUploadPromise;\n this.#logger.info(\"completeUpload -> server notified, upload finalized\", {\n notifyDurationMs: Date.now() - notifyStartedAt,\n totalDurationMs: Date.now() - completeStartedAt,\n });\n\n if (this.status === UPLOAD_STATUS.aborting) {\n this.#logger.warn(\n \"completeUpload -> finished but state was set to aborting\"\n );\n\n return;\n }\n\n this.#status = UPLOAD_STATUS.completed;\n\n this.#fireCallbacks(UPLOAD_EVENT.onComplete);\n } catch (error) {\n // ignore if aborted\n if (!axios.isCancel(error)) {\n this.#status = UPLOAD_STATUS.error;\n this.#fireCallbacks(UPLOAD_EVENT.onError);\n this.#logger.error(\"completeUpload -> error\", {\n ...this.#serializeUploadError(error),\n totalDurationMs: Date.now() - completeStartedAt,\n recordingId: this.#recordingId,\n uploadId: this.#uploadId,\n });\n } else {\n this.#logger.info(\"completeUpload -> request cancelled (expected)\");\n }\n } finally {\n this.#completeUploadPromise = null;\n }\n };\n\n // eslint-disable-next-line default-param-last\n abortUpload = async (forceAbort = false, sessionLogs) => {\n const abortStartedAt = Date.now();\n let phase = \"init\";\n try {\n if (this.status === UPLOAD_STATUS.aborting && !forceAbort) {\n this.#logger.info(\"abortUpload -> already aborting\", {\n forceAbort,\n });\n\n return;\n }\n this.#status = UPLOAD_STATUS.aborting;\n\n if (this.#isRecordingNotSet) {\n this.#logger.info(\"abortUpload -> not initialized\");\n\n return;\n }\n const recordingId = this.#recordingId;\n const uploadId = this.#uploadId;\n\n this.#logger.info(\"abortUpload -> begin\", {\n recordingId,\n uploadId,\n forceAbort,\n partsStarted: this.#partNumber - 1,\n pendingS3ChunkUploads: this.#pendingS3ChunkUploads.length,\n hasAbortController: Boolean(this.#abortController),\n });\n\n // Don't let a rejected completeUpload stop us from issuing the abort API\n // call below — we still need to release the upload server-side.\n phase = \"awaitCompleteUploadPromise\";\n // eslint-disable-next-line promise/prefer-await-to-then\n await Promise.resolve(this.#completeUploadPromise).catch(() => {});\n\n // Guard against a missing AbortController. If abortUpload is somehow\n // invoked twice, the second call would hit a null #abortController and\n // throw a TypeError into the outer catch — masking the real failure.\n phase = \"abortInflight\";\n this.#abortController?.abort();\n\n phase = \"abortUploadApi\";\n try {\n await abortUploadApi.create({\n recordingId,\n payload: {\n uploadId,\n isMp4: isMp4Supported(this.#mimeType),\n logs: sessionLogs,\n },\n });\n\n this.#logger.info(\"abortUpload -> success\", {\n durationMs: Date.now() - abortStartedAt,\n });\n } catch (error) {\n // After retries are exhausted, proceed with local cleanup so the\n // caller can navigate away / close tab. The server-side upload\n // will be cleaned up by S3 lifecycle rules.\n this.#logger.error(\"abortUpload -> mark as discarded failed\", {\n ...this.#serializeUploadError(error),\n durationMs: Date.now() - abortStartedAt,\n });\n }\n\n phase = \"fireOnAbort\";\n this.#fireCallbacks(UPLOAD_EVENT.onAbort);\n\n phase = \"cleanup\";\n this.#unUploadedChunks = [];\n this.#partNumber = 1;\n this.#s3PartUploadPromises = [];\n this.#status = \"\";\n this.#abortController = null;\n } catch (error) {\n this.#logger.error(\"abortUpload -> failed\", {\n phase,\n ...this.#serializeUploadError(error),\n durationMs: Date.now() - abortStartedAt,\n });\n }\n };\n\n resetState = () => {\n this.#recordingId = \"\";\n this.#uploadId = \"\";\n this.#unUploadedChunks = [];\n this.#partNumber = 1;\n this.#s3PartUploadPromises = [];\n this.#pendingS3ChunkUploads = [];\n this.#callbacks = {};\n this.#failedUpload = [];\n this.#uploadProgress = {};\n this.#lastLoggedOverallPercent = -1;\n this.#status = \"\";\n };\n\n addCallback = (event, callback) => {\n const existingCallbacks = this.#callbacks[event] ?? [];\n this.#callbacks = {\n ...this.#callbacks,\n [event]: [...existingCallbacks, callback],\n };\n };\n\n removeCallback = (event, callback) => {\n const registeredCallbacks = this.#callbacks[event] ?? [];\n const updatedCallbacks = registeredCallbacks.filter(isNot(callback));\n this.#callbacks = { ...this.#callbacks, [event]: updatedCallbacks };\n };\n\n #fireCallbacks = (event, args = []) => {\n this.#callbacks[event]?.forEach(callback => {\n callback(...args);\n });\n };\n\n #handleChunkUploadError = (error, partNumber, context = {}) => {\n // ignore if aborted\n if (axios.isCancel(error)) {\n this.#logger.info(\"upload chunk -> request cancelled (expected)\", {\n partNumber,\n });\n\n return;\n }\n\n this.#logger.error(\"upload chunk -> failed\", {\n partNumber,\n ...this.#serializeUploadError(error),\n ...context,\n uploadStatus: this.status,\n recordingId: this.#recordingId,\n uploadId: this.#uploadId,\n });\n if (this.status === UPLOAD_STATUS.uploading) {\n this.#status = UPLOAD_STATUS.error;\n this.#fireCallbacks(UPLOAD_EVENT.onError);\n } else {\n this.#failedUpload.push(partNumber); // if user is still recording\n }\n };\n\n #serializeUploadError = error => {\n if (!error) return { error: null };\n\n return {\n name: error.name,\n message: error.message,\n code: error.code,\n stack: error.stack,\n responseStatus: error.response?.status,\n responseStatusText: error.response?.statusText,\n responseData:\n typeof error.response?.data === \"string\"\n ? error.response.data.slice(0, 500)\n : error.response?.data,\n };\n };\n\n generatePreSignedUrl = partNumber =>\n partPresignedUrlApi.create({\n recordingId: this.#recordingId,\n payload: {\n partNumber,\n uploadId: this.#uploadId,\n isMp4: this.#mimeType.includes(MIME_TYPE.mp4),\n },\n config: { signal: this.#abortController?.signal },\n });\n\n #uploadChunkToS3 = async chunks => {\n const partNumber = this.#partNumber;\n this.#partNumber++;\n const partBlob = new Blob(chunks, { type: this.#mimeType });\n const partBytes = partBlob.size;\n this.#uploadProgress[partNumber] = { uploaded: 0, total: partBytes };\n this.#logger.info(\"upload chunk -> begin\", {\n partNumber,\n partBytes,\n partMB: Number((partBytes / 1024 / 1024).toFixed(2)),\n mimeType: this.#mimeType,\n recordingId: this.#recordingId,\n uploadId: this.#uploadId,\n });\n\n const presignStartedAt = Date.now();\n let presignedUrl;\n try {\n ({ presignedUrl } = await this.generatePreSignedUrl(partNumber));\n this.#logger.info(\"upload chunk -> presigned url ready\", {\n partNumber,\n presignDurationMs: Date.now() - presignStartedAt,\n });\n } catch (error) {\n this.#handleChunkUploadError(error, partNumber, {\n phase: \"presign\",\n presignDurationMs: Date.now() - presignStartedAt,\n });\n\n return;\n }\n\n const uploadStartedAt = Date.now();\n\n const s3PartUploadPromise = s3Api\n .presignedUpload({\n presignedUrl,\n blob: partBlob,\n config: {\n headers: { \"Content-Type\": this.#mimeType },\n includeMetadataInResponse: true,\n signal: this.#abortController?.signal,\n onUploadProgress: e => {\n this.#uploadProgress[partNumber] = {\n uploaded: e.loaded,\n total: e.total,\n };\n if (this.status === UPLOAD_STATUS.uploading) {\n const percentCompleted = calculateUploadProgress(\n this.#uploadProgress\n );\n\n // Only log every 10% to keep noise down while still being useful.\n // Tracker is on the instance so concurrent chunk uploads don't\n // each log when the *overall* percent crosses a threshold.\n if (\n percentCompleted - this.#lastLoggedOverallPercent >= 10 ||\n percentCompleted === 100\n ) {\n this.#logger.info(\"upload progress\", {\n overallPercent: percentCompleted,\n partNumber,\n partLoaded: e.loaded,\n partTotal: e.total,\n });\n this.#lastLoggedOverallPercent = percentCompleted;\n }\n\n this.#fireCallbacks(UPLOAD_EVENT.onProgress, [percentCompleted]);\n }\n },\n },\n })\n // eslint-disable-next-line promise/prefer-await-to-then\n .then(response => {\n const durationMs = Date.now() - uploadStartedAt;\n this.#logger.info(\"upload chunk -> success\", {\n partNumber,\n partBytes,\n durationMs,\n throughputMbps: durationMs\n ? Number(((partBytes * 8) / 1000 / durationMs).toFixed(2))\n : null,\n httpStatus: response?.status,\n etag: response?.headers?.etag,\n });\n\n return response;\n })\n // eslint-disable-next-line promise/prefer-await-to-then\n .catch(error => {\n this.#handleChunkUploadError(error, partNumber, {\n phase: \"upload\",\n uploadDurationMs: Date.now() - uploadStartedAt,\n partBytes,\n });\n });\n this.#s3PartUploadPromises.push(s3PartUploadPromise);\n };\n\n #getCurrentUnUploadedBlob = () =>\n new Blob(this.#unUploadedChunks, { type: this.#mimeType });\n\n get #isRecordingNotSet() {\n return isEmpty(this.#uploadId + this.#recordingId);\n }\n\n get #isTerminalStatus() {\n return (\n this.#_status === UPLOAD_STATUS.aborting ||\n this.#_status === UPLOAD_STATUS.completed ||\n this.#_status === UPLOAD_STATUS.error\n );\n }\n}\n\nlet multipartS3Uploader = new MultipartS3Uploader();\n\nexport const getMultipartS3Uploader = ({ initialize = false } = {}) => {\n if (!multipartS3Uploader || initialize) {\n multipartS3Uploader = new MultipartS3Uploader();\n useMultipartS3UploadStatus.triggerStatusChange();\n }\n\n return multipartS3Uploader;\n};\n","function _arrayWithHoles(r) {\n if (Array.isArray(r)) return r;\n}\nexport { _arrayWithHoles as default };","function _iterableToArrayLimit(r, l) {\n var t = null == r ? null : \"undefined\" != typeof Symbol && r[Symbol.iterator] || r[\"@@iterator\"];\n if (null != t) {\n var e,\n n,\n i,\n u,\n a = [],\n f = !0,\n o = !1;\n try {\n if (i = (t = t.call(r)).next, 0 === l) {\n if (Object(t) !== t) return;\n f = !1;\n } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0);\n } catch (r) {\n o = !0, n = r;\n } finally {\n try {\n if (!f && null != t[\"return\"] && (u = t[\"return\"](), Object(u) !== u)) return;\n } finally {\n if (o) throw n;\n }\n }\n return a;\n }\n}\nexport { _iterableToArrayLimit as default };","function _nonIterableRest() {\n throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}\nexport { _nonIterableRest as default };","import arrayWithHoles from \"./arrayWithHoles.js\";\nimport iterableToArrayLimit from \"./iterableToArrayLimit.js\";\nimport unsupportedIterableToArray from \"./unsupportedIterableToArray.js\";\nimport nonIterableRest from \"./nonIterableRest.js\";\nfunction _slicedToArray(r, e) {\n return arrayWithHoles(r) || iterableToArrayLimit(r, e) || unsupportedIterableToArray(r, e) || nonIterableRest();\n}\nexport { _slicedToArray as default };","// https://www.w3.org/TR/screen-capture/#displaycapturesurfacetype\nexport const DISPLAY_SURFACE = {\n monitor: \"monitor\",\n window: \"window\",\n browser: \"browser\",\n};\n\nexport const RECORDING_TIME_LIMIT = 900_000; // 15 minutes\nexport const RECORDING_TIME_LIMIT_WARNING_TIME = 840_000; // 14 minutes\n\nexport const MAX_RESOLUTION = 2160; // max 4k\n","import withImmutableActions from \"neetocommons/react-utils/withImmutableActions\";\nimport {\n SCREEN_RECORDER_STATUS,\n COUNTDOWN_TIME,\n} from \"neetomediarecorder/constants\";\nimport { create } from \"zustand\";\n\nconst initialState = {\n status: SCREEN_RECORDER_STATUS.idle,\n error: \"\",\n elapsedTime: 0,\n countdownTimeLeft: COUNTDOWN_TIME,\n showTimeLimitWarning: false,\n};\n\nconst prepareStore = () =>\n create(\n withImmutableActions(set => ({\n ...initialState,\n resetState: () => set(initialState),\n }))\n );\n\nexport { initialState };\nexport default prepareStore;\n","import { isNotEmpty, isNot, noop } from \"neetocist\";\nimport { not, pick } from \"ramda\";\n\nimport {\n COUNTDOWN_TICK_SOUND,\n HALF_A_SECOND_IN_MILLISECONDS,\n ONE_SECOND,\n ONE_SECOND_IN_MILLISECONDS,\n RECORDING_LIMIT_REACHED_WARNING_SOUND,\n SCREEN_RECORDER_STATUS,\n SCREEN_RECORDER_EVENT,\n SCREEN_RECORDER_ERROR,\n START_RECORDING_SOUND,\n STOP_RECORDING_DUE_TO_LIMIT_REACHED_SOUND,\n TWO_HUNDRED_MILLISECONDS,\n ONE_MINUTE_IN_MILLISECONDS,\n RECORDING_TIME_LIMIT_FREE_PLAN,\n IS_EXTENSION,\n} from \"src/constants\";\nimport createPrefixedLogger from \"utils/createPrefixedLogger\";\n\nimport { DISPLAY_SURFACE } from \"./constants\";\nimport prepareStore, { initialState as initialStoreState } from \"./stores\";\nimport {\n checkConstraints,\n getMediaRecorderOptions,\n getSupportedMimeType,\n isStreamEnded,\n addGainNode,\n} from \"./utils\";\n\nclass ScreenRecorder {\n #audio;\n #video;\n #videoStream;\n #mediaRecorder;\n #mediaStream;\n #store;\n #logger = createPrefixedLogger(\"[ScreenRecorder]\");\n #mediaChunks = [];\n #callbacks = {};\n #lastTimerUpdatedAt = 0;\n #timerId;\n #countdownTimerId;\n #startRecordingAudio = new Audio(START_RECORDING_SOUND);\n #countdownTickAudio = new Audio(COUNTDOWN_TICK_SOUND);\n #recordingLimitWarningAudio = new Audio(\n RECORDING_LIMIT_REACHED_WARNING_SOUND\n );\n #stopRecordingDueToLimitReachedAudio = new Audio(\n STOP_RECORDING_DUE_TO_LIMIT_REACHED_SOUND\n );\n #stream;\n #audioStream;\n #micAudioStream;\n #timeLimit = RECORDING_TIME_LIMIT_FREE_PLAN;\n #startRecordingTimeoutID;\n #enableNoiseCancellation = false;\n #showCountdown = true;\n // Lets a host (e.g. the chrome extension) take over the countdown beeps and\n // recording-start chime so it can schedule them via Web Audio. Defaults to\n // true to preserve behavior for callers that don't manage audio themselves.\n #playCountdownAudio = true;\n #mimeType = getSupportedMimeType();\n #dataReceiving = false;\n #recordSystemAudio = false;\n\n constructor(audio, video) {\n this.#audio = audio;\n this.#video = video;\n\n this.#store = prepareStore();\n\n this.#store.setState({ status: SCREEN_RECORDER_STATUS.idle });\n this.#checkCompatibility();\n }\n\n /** @type {import(\"neetocommons/react-utils\").ZustandStoreHook} */\n get useRecorderStore() {\n return this.#store;\n }\n\n get timeLimit() {\n return this.#timeLimit;\n }\n\n get displaySurface() {\n const [videoTrack] = this.#mediaStream?.getVideoTracks() ?? [];\n\n return videoTrack?.getSettings().displaySurface;\n }\n\n get audioConfiguration() {\n return this.#audio;\n }\n\n set videoStream(value) {\n this.#videoStream = value;\n }\n\n setDisplaySurface = displaySurface => {\n this.#video.displaySurface = displaySurface;\n };\n setRecordSystemAudio = value => (this.#recordSystemAudio = value);\n\n setResolution = height => {\n if (height === \"auto\") return;\n const getVideoConfig = (width, height) => ({\n width: { max: width },\n height: { max: height },\n displaySurface: this.#video.displaySurface,\n });\n\n const getResolution = height => {\n if (height === 1080) return getVideoConfig(1920, 1080);\n\n if (height === 720) return getVideoConfig(1280, 720);\n\n return getVideoConfig(3840, 2160);\n };\n this.#video = getResolution(height);\n };\n\n getAudioStream = () => this.#audioStream;\n hasData = () => this.#dataReceiving;\n\n setEnableNoiseCancellation = value => (this.#enableNoiseCancellation = value);\n\n setMimeType = mimeType => (this.#mimeType = mimeType);\n\n setAudioConfiguration = audio => (this.#audio = audio);\n\n setShowCountdown = showCountdown => (this.#showCountdown = showCountdown);\n\n setPlayCountdownAudio = value => (this.#playCountdownAudio = value);\n\n setTimeLimit = (timeLimit = RECORDING_TIME_LIMIT_FREE_PLAN) =>\n (this.#timeLimit = timeLimit);\n\n getWebmMediaBlob = () =>\n new Blob(this.#mediaChunks, { type: this.#mimeType });\n\n addCallback = (event, callback) => {\n const existingCallbacks = this.#callbacks[event] ?? [];\n this.#callbacks = {\n ...this.#callbacks,\n [event]: [...existingCallbacks, callback],\n };\n };\n\n removeCallback = (event, callback) => {\n const registeredCallbacks = this.#callbacks[event] ?? [];\n const updatedCallbacks = registeredCallbacks.filter(isNot(callback));\n this.#callbacks = { ...this.#callbacks, [event]: updatedCallbacks };\n };\n\n removeAllCallbacksByEvent = event => {\n delete this.#callbacks[event];\n };\n\n setError = error => {\n this.#store.setState({ error });\n };\n\n startRecording = async () => {\n this.#logger.info(\n \"startRecording -> begin\",\n this.#summarizeRecorderState({\n showCountdown: this.#showCountdown,\n timeLimit: this.#timeLimit,\n mimeType: this.#mimeType,\n recordSystemAudio: this.#recordSystemAudio,\n enableNoiseCancellation: this.#enableNoiseCancellation,\n hasInjectedVideoStream: Boolean(this.#videoStream),\n })\n );\n\n this.#store.setState(pick([\"error\"], initialStoreState));\n\n if (!this.#mediaStream) {\n this.#logger.info(\"startRecording -> acquiring media stream\");\n await this.#acquireMediaStream();\n }\n\n if (this.#mediaStream && isStreamEnded(this.#mediaStream)) {\n this.#logger.info(\n \"startRecording -> media stream ended, re-acquiring\",\n this.#summarizeStream(this.#mediaStream)\n );\n await this.#acquireMediaStream();\n }\n\n if (!this.#mediaStream || isStreamEnded(this.#mediaStream)) {\n this.#logger.warn(\n \"startRecording -> aborting, media stream unavailable\",\n {\n hasMediaStream: Boolean(this.#mediaStream),\n isEnded: this.#mediaStream ? isStreamEnded(this.#mediaStream) : true,\n }\n );\n\n return;\n }\n\n const options = getMediaRecorderOptions();\n\n this.#logger.info(\"startRecording -> creating MediaRecorder\", {\n options,\n mimeType: this.#mimeType,\n stream: this.#summarizeStream(this.#mediaStream),\n });\n\n this.#mediaChunks = [];\n try {\n this.#mediaRecorder = new MediaRecorder(this.#mediaStream, options);\n } catch (error) {\n this.#logger.error(\n \"startRecording -> failed to construct MediaRecorder\",\n this.#serializeError(error),\n { options, mimeType: this.#mimeType }\n );\n\n this.#store.setState({\n status: SCREEN_RECORDER_STATUS.idle,\n error: SCREEN_RECORDER_ERROR.NoRecorder,\n });\n\n return;\n }\n\n this.#logger.info(\"startRecording -> MediaRecorder created\", {\n state: this.#mediaRecorder.state,\n mimeType: this.#mediaRecorder.mimeType,\n videoBitsPerSecond: this.#mediaRecorder.videoBitsPerSecond,\n audioBitsPerSecond: this.#mediaRecorder.audioBitsPerSecond,\n });\n\n this.#mediaRecorder.ondataavailable = this.#onRecordingActive;\n this.#mediaRecorder.onstart = this.#onRecordingStart;\n this.#mediaRecorder.onstop = this.#onRecordingStop;\n this.#mediaRecorder.onerror = event => {\n this.#logger.error(\n \"MediaRecorder.onerror fired\",\n this.#serializeError(event?.error),\n {\n state: this.#mediaRecorder?.state,\n chunkCount: this.#mediaChunks.length,\n stream: this.#summarizeStream(this.#mediaStream),\n }\n );\n\n this.#store.setState({\n status: SCREEN_RECORDER_STATUS.idle,\n error: SCREEN_RECORDER_ERROR.NoRecorder,\n });\n };\n if (this.#showCountdown) {\n this.#startCountdown();\n } else {\n // No countdown: emit the canonical \"count-in finished\" hook and flip to\n // recording so consumers (toolbar, options-page countdown) update, just\n // like the countdown and skipCountdown paths do.\n this.#fireCallbacks(SCREEN_RECORDER_EVENT.onCountdownEnd);\n this.#store.setState({\n countdownTimeLeft: 0,\n status: SCREEN_RECORDER_STATUS.recording,\n });\n this.#startMediaRecorder();\n }\n };\n\n stopRecording = () => {\n if (this.#mediaRecorder === undefined) {\n this.#logger.info(\n \"stopRecording -> mediaRecorder undefined, stopping streams only\",\n this.#summarizeRecorderState()\n );\n /**\n * If the permission is denied and \"Stop sharing\" overlay is clicked\n */\n this.#stopAllStreams();\n\n return;\n }\n\n if (this.#mediaRecorder?.state === \"inactive\") {\n this.#logger.info(\n \"stopRecording -> mediaRecorder inactive, treating as discard during countdown\",\n this.#summarizeRecorderState()\n );\n // When recording is stopped from the 'Stop Sharing' overlay\n // before it even starts, i.e during the countdown.\n // Or if the recording is stopped before startRecordingTimeoutID timeout executes\n this.removeCallback(SCREEN_RECORDER_EVENT.onStop);\n\n clearTimeout(this.#startRecordingTimeoutID);\n clearInterval(this.#countdownTimerId);\n\n this.#stopAllStreams();\n\n this.#fireCallbacks(SCREEN_RECORDER_EVENT.onDiscardDuringCountdown);\n\n return;\n }\n\n this.#logger.info(\n \"stopRecording -> stopping\",\n this.#summarizeRecorderState()\n );\n this.#store.setState({ status: SCREEN_RECORDER_STATUS.stopping });\n this.#mediaRecorder.stop();\n this.#stopAllStreams();\n\n this.#stopTimer();\n };\n\n // Skip the in-flight countdown and start the actual recording immediately.\n // The chime is suppressed (vs. natural completion which plays it) since the\n // user explicitly opted out of the count-in. Listeners hook onCountdownSkip\n // to clean up countdown-only side effects like scheduled beeps.\n skipCountdown = () => {\n if (!this.#countdownTimerId) {\n this.#logger.warn(\n \"skipCountdown -> ignored, no countdown running\",\n this.#summarizeRecorderState()\n );\n\n return;\n }\n\n this.#logger.info(\"skipCountdown\", this.#summarizeRecorderState());\n\n clearInterval(this.#countdownTimerId);\n this.#countdownTimerId = null;\n\n this.#fireCallbacks(SCREEN_RECORDER_EVENT.onCountdown, [0]);\n this.#fireCallbacks(SCREEN_RECORDER_EVENT.onCountdownSkip);\n // onCountdownEnd is the canonical \"countdown phase finished\" hook —\n // listeners that just want to know the count-in is over shouldn't have\n // to subscribe to onCountdownSkip too.\n this.#fireCallbacks(SCREEN_RECORDER_EVENT.onCountdownEnd);\n\n this.#store.setState({\n countdownTimeLeft: 0,\n status: SCREEN_RECORDER_STATUS.recording,\n });\n\n this.#startMediaRecorder();\n };\n\n pauseRecording = () => {\n if (this.#mediaRecorder?.state === \"recording\") {\n this.#logger.info(\"pauseRecording\", this.#summarizeRecorderState());\n this.#store.setState({ status: SCREEN_RECORDER_STATUS.paused });\n this.#mediaRecorder.pause();\n } else {\n this.#logger.warn(\n \"pauseRecording -> ignored, recorder not in recording state\",\n this.#summarizeRecorderState()\n );\n }\n\n this.#stopTimer();\n };\n\n resumeRecording = () => {\n if (this.#mediaRecorder?.state === \"paused\") {\n this.#logger.info(\"resumeRecording\", this.#summarizeRecorderState());\n this.#store.setState({ status: SCREEN_RECORDER_STATUS.recording });\n this.#mediaRecorder.resume();\n } else {\n this.#logger.warn(\n \"resumeRecording -> ignored, recorder not paused\",\n this.#summarizeRecorderState()\n );\n }\n\n this.#startTimer();\n };\n\n discardRecording = () => {\n if (this.#mediaRecorder?.state === \"inactive\") {\n this.#logger.info(\n \"discardRecording -> ignored, recorder already inactive\",\n this.#summarizeRecorderState()\n );\n\n return;\n }\n\n this.#logger.info(\"discardRecording\", this.#summarizeRecorderState());\n this.#store.setState({ status: SCREEN_RECORDER_STATUS.stopping });\n this.removeAllCallbacksByEvent(SCREEN_RECORDER_EVENT.onStop);\n this.#mediaRecorder.stop();\n this.#stopAllStreams();\n\n clearInterval(this.#timerId);\n this.#store.setState(pick([\"elapsedTime\"], initialStoreState));\n this.#mediaChunks = [];\n\n this.#fireCallbacks(SCREEN_RECORDER_EVENT.onDiscard);\n };\n\n restartRecording = () => {\n this.#logger.info(\"restartRecording\", this.#summarizeRecorderState());\n this.#store.setState({ status: SCREEN_RECORDER_STATUS.stopping });\n this.removeAllCallbacksByEvent(SCREEN_RECORDER_EVENT.onStop);\n this.#mediaRecorder.stop();\n\n clearInterval(this.#timerId);\n this.#store.setState(\n pick([\"elapsedTime\", \"countdownTimeLeft\"], initialStoreState)\n );\n this.#mediaChunks = [];\n\n this.#fireCallbacks(SCREEN_RECORDER_EVENT.onRestart);\n\n this.startRecording();\n };\n\n resetState = () => {\n this.#logger.info(\"resetState\", this.#summarizeRecorderState());\n this.#mediaChunks = [];\n this.#callbacks = {};\n this.#dataReceiving = false;\n clearInterval(this.#timerId);\n clearInterval(this.#countdownTimerId);\n this.#store.getState().resetState();\n this.#checkCompatibility();\n };\n\n revokePermissions = () => {\n this.#logger.info(\"revokePermissions\", this.#summarizeRecorderState());\n if (!this.#mediaRecorder) return;\n\n this.#mediaRecorder.onstop = null;\n this.#stopAllStreams();\n };\n\n #stopAllStreams = () => {\n this.#logger.info(\"stopAllStreams\", {\n mediaStream: this.#summarizeStream(this.#mediaStream),\n stream: this.#summarizeStream(this.#stream),\n audioStream: this.#summarizeStream(this.#audioStream),\n micAudioStream: this.#summarizeStream(this.#micAudioStream),\n });\n\n this.#mediaStream &&\n this.#mediaStream?.getTracks().forEach(track => track.stop());\n this.#stream?.getTracks().forEach(track => track.stop());\n this.#audioStream?.getAudioTracks()?.forEach(track => track.stop());\n this.#micAudioStream?.getAudioTracks()?.forEach(track => track.stop());\n };\n\n #playCountdownBeep = () => {\n this.#countdownTickAudio.currentTime = 0;\n this.#countdownTickAudio.play();\n };\n\n #checkCompatibility = () => {\n // The browser is considered supported if it can capture the display AND\n // if `getSupportedMimeType()` can negotiate a codec the MediaRecorder API\n // accepts. This covers Chromium (WebM/H.264), Safari (MP4) and Firefox\n // (WebM/VP9 or VP8).\n const hasDisplayCapture = Boolean(navigator.mediaDevices?.getDisplayMedia);\n const supportedMimeType = getSupportedMimeType();\n\n if (!hasDisplayCapture || !supportedMimeType) {\n this.#logger.error(\n \"screenRecorder -> unsupported browser. hasDisplayCapture:\",\n hasDisplayCapture,\n \"supportedMimeType:\",\n supportedMimeType,\n \"hasMediaDevices:\",\n Boolean(navigator.mediaDevices),\n \"hasMediaRecorder:\",\n typeof MediaRecorder !== \"undefined\"\n );\n this.#store.setState({ error: SCREEN_RECORDER_ERROR.UnSupportedBrowser });\n }\n\n checkConstraints(this.#audio, this.#video);\n };\n\n #acquireMediaStream = async () => {\n const acquireStartedAt = Date.now();\n this.#logger.info(\"acquireMediaStream -> begin\", {\n hasInjectedVideoStream: Boolean(this.#videoStream),\n audio: Boolean(this.#audio),\n recordSystemAudio: this.#recordSystemAudio,\n enableNoiseCancellation: this.#enableNoiseCancellation,\n });\n this.#store.setState({ status: SCREEN_RECORDER_STATUS.acquiring_media });\n\n if (this.#audio && !this.#videoStream) {\n const micState = await this.#queryMicPermissionState();\n if (micState === \"denied\") {\n this.#logger.warn(\n \"acquireMediaStream -> mic permission denied, skipping screen prompt\",\n { micState }\n );\n\n this.#store.setState({\n error: SCREEN_RECORDER_ERROR.MicPermissionDenied,\n status: SCREEN_RECORDER_STATUS.idle,\n });\n\n return;\n }\n }\n\n let stream;\n\n try {\n if (this.#videoStream) {\n this.#logger.info(\n \"acquireMediaStream -> using injected videoStream\",\n this.#summarizeStream(this.#videoStream)\n );\n stream = this.#videoStream;\n } else {\n const constraints = {\n video: this.#video,\n audio: this.#recordSystemAudio,\n };\n\n this.#logger.info(\n \"acquireMediaStream -> getDisplayMedia constraints\",\n constraints\n );\n\n const displayMediaStartedAt = Date.now();\n stream = await window.navigator.mediaDevices.getDisplayMedia(\n constraints\n );\n\n this.#logger.info(\"acquireMediaStream -> getDisplayMedia resolved\", {\n durationMs: Date.now() - displayMediaStartedAt,\n stream: this.#summarizeStream(stream),\n });\n this.#fireCallbacks(SCREEN_RECORDER_EVENT.onShareSelected);\n }\n\n if (this.#audio) {\n try {\n const audioConfig = {\n audio: {\n echoCancellation: false,\n ...this.#audio,\n ...(this.#audio.deviceId && {\n deviceId: { exact: this.#audio.deviceId },\n }),\n },\n };\n\n this.#logger.info(\n \"acquireMediaStream -> getUserMedia audioConfig\",\n audioConfig\n );\n const micStartedAt = Date.now();\n this.#micAudioStream =\n await window.navigator.mediaDevices.getUserMedia(audioConfig);\n\n this.#logger.info(\"acquireMediaStream -> mic acquired\", {\n durationMs: Date.now() - micStartedAt,\n stream: this.#summarizeStream(this.#micAudioStream),\n });\n\n const audioStream = addGainNode(this.#micAudioStream, 1.75); // Increase volume by 50%\n this.#audioStream = audioStream;\n\n if (this.#enableNoiseCancellation) {\n try {\n const workletUrl = IS_EXTENSION\n ? // eslint-disable-next-line no-undef\n chrome.runtime.getURL(\"public/NoiseSuppressorWorklet.js\")\n : \"NoiseSuppressorWorklet.js\";\n\n this.#logger.info(\n \"acquireMediaStream -> loading noise suppressor worklet\",\n { workletUrl }\n );\n\n const workletStartedAt = Date.now();\n const audioContext = new AudioContext();\n await audioContext.audioWorklet.addModule(workletUrl);\n\n const audioStreamSource =\n audioContext.createMediaStreamSource(audioStream);\n\n const destinationStream =\n audioContext.createMediaStreamDestination();\n\n const noiseSuppressorNode = new AudioWorkletNode(\n audioContext,\n \"nn-suppressor-processor\"\n );\n\n audioStreamSource.connect(noiseSuppressorNode);\n noiseSuppressorNode.connect(destinationStream);\n\n this.#audioStream = destinationStream.stream;\n this.#logger.info(\n \"acquireMediaStream -> noise suppressor wired up\",\n { durationMs: Date.now() - workletStartedAt }\n );\n } catch (error) {\n this.#logger.error(\n \"acquireMediaStream -> failed to load audio worklet\",\n this.#serializeError(error)\n );\n }\n }\n } catch (audioError) {\n // Mic access can fail independently of screen capture (OS-level\n // block, no device, deviceId mismatch). Stop the screen stream and\n // surface a mic-only error so the user sees the proper callout\n // (\"doesn't have access to your microphone\" with Grant / I don't\n // need audio actions) instead of being misrouted to the screen\n // permission denied flow.\n this.#logger.warn(\n \"acquireMediaStream -> mic unavailable\",\n this.#serializeError(audioError),\n { audioConfigRequested: this.#audio }\n );\n if (!this.#videoStream) {\n stream.getTracks().forEach(track => track.stop());\n }\n\n this.#store.setState({\n error: SCREEN_RECORDER_ERROR.MicPermissionDenied,\n status: SCREEN_RECORDER_STATUS.idle,\n });\n\n return;\n }\n }\n\n // Fired when capture ends without the app calling stop() — the browser's\n // \"Stop sharing\" pill or an OS-level termination. When a consumer is\n // listening for onUnexpectedEnd, hand the decision (finish/discard, show\n // diagnostics) over to it; otherwise preserve the legacy behavior of\n // finalizing the recording immediately.\n stream.getVideoTracks()[0].addEventListener(\"ended\", () => {\n const hasUnexpectedEndHandler = isNotEmpty(\n this.#callbacks[SCREEN_RECORDER_EVENT.onUnexpectedEnd] ?? []\n );\n\n this.#logger.info(\"display video track ended event received\", {\n recorderState: this.#mediaRecorder?.state,\n status: this.#store.getState().status,\n hasUnexpectedEndHandler,\n stream: this.#summarizeStream(stream),\n });\n\n if (hasUnexpectedEndHandler) {\n this.#fireCallbacks(SCREEN_RECORDER_EVENT.onUnexpectedEnd);\n\n return;\n }\n\n this.stopRecording();\n });\n\n const finalStream = new MediaStream();\n\n if (this.#audio && this.#audioStream) {\n if (isNotEmpty(stream.getAudioTracks())) {\n this.#logger.info(\"acquireMediaStream -> mixing system audio + mic\");\n const audioContext = new AudioContext();\n\n const desktopAudio = audioContext.createMediaStreamSource(stream);\n const microphoneAudio = audioContext.createMediaStreamSource(\n this.#audioStream\n );\n\n const combinedAudio = audioContext.createMediaStreamDestination();\n\n desktopAudio.connect(combinedAudio);\n microphoneAudio.connect(combinedAudio);\n\n combinedAudio.stream\n .getAudioTracks()\n .forEach(track => finalStream.addTrack(track));\n } else {\n this.#logger.info(\n \"acquireMediaStream -> using mic audio only (no system audio in display stream)\"\n );\n\n this.#audioStream\n .getAudioTracks()\n .forEach(track => finalStream.addTrack(track));\n }\n } else if (this.#recordSystemAudio) {\n this.#logger.info(\"acquireMediaStream -> using system audio only\");\n stream.getAudioTracks().forEach(track => finalStream.addTrack(track));\n } else {\n this.#logger.info(\"acquireMediaStream -> recording without audio\");\n }\n stream.getVideoTracks().forEach(track => finalStream.addTrack(track));\n\n this.#mediaStream = finalStream;\n this.#stream = stream;\n this.#store.setState({ status: SCREEN_RECORDER_STATUS.media_acquired });\n this.#logger.info(\"acquireMediaStream -> success\", {\n totalDurationMs: Date.now() - acquireStartedAt,\n finalStream: this.#summarizeStream(this.#mediaStream),\n });\n } catch (error) {\n this.#logger.error(\n \"acquireMediaStream -> error\",\n this.#serializeError(error),\n {\n totalDurationMs: Date.now() - acquireStartedAt,\n hasAudio: Boolean(this.#audio),\n hasAudioStream: Boolean(this.#audioStream),\n hasMediaStream: Boolean(this.#mediaStream),\n }\n );\n\n if (SCREEN_RECORDER_ERROR[error?.name]) {\n this.#store.setState({\n error: SCREEN_RECORDER_ERROR[error.name],\n status: SCREEN_RECORDER_STATUS.idle,\n });\n } else if (this.#audio && !this.#audioStream) {\n this.#store.setState({\n error: SCREEN_RECORDER_ERROR.MicPermissionDenied,\n status: SCREEN_RECORDER_STATUS.idle,\n });\n } else if (!this.#mediaStream || isStreamEnded(this.#mediaStream)) {\n this.#store.setState({\n error: SCREEN_RECORDER_ERROR[error?.name],\n status: SCREEN_RECORDER_STATUS.idle,\n });\n }\n }\n };\n\n #fireCallbacks = (event, args = []) => {\n this.#callbacks[event]?.forEach(callback => {\n callback(...args);\n });\n };\n\n #onRecordingStart = () => {\n this.#logger.info(\n \"MediaRecorder.onstart fired\",\n this.#summarizeRecorderState()\n );\n this.#fireCallbacks(SCREEN_RECORDER_EVENT.onStart);\n };\n\n #onRecordingActive = ({ data }) => {\n if (data.size <= 0) {\n this.#logger.warn(\"ondataavailable -> empty chunk, ignoring\", {\n chunkCount: this.#mediaChunks.length,\n });\n\n return;\n }\n this.#dataReceiving = true;\n\n this.#mediaChunks.push(data);\n const totalBytes = this.#mediaChunks.reduce(\n (sum, chunk) => sum + (chunk?.size ?? 0),\n 0\n );\n\n this.#logger.info(\"ondataavailable -> chunk received\", {\n chunkBytes: data.size,\n chunkType: data.type,\n chunkCount: this.#mediaChunks.length,\n totalBytes,\n recorderState: this.#mediaRecorder?.state,\n });\n this.#fireCallbacks(SCREEN_RECORDER_EVENT.onDataAvailable, [data]);\n };\n\n #onRecordingStop = () => {\n const totalBytes = this.#mediaChunks.reduce(\n (sum, chunk) => sum + (chunk?.size ?? 0),\n 0\n );\n\n this.#logger.info(\"MediaRecorder.onstop fired\", {\n ...this.#summarizeRecorderState(),\n totalBytes,\n mediaStreamActive: this.#mediaStream?.active,\n });\n this.#store.setState({ status: SCREEN_RECORDER_STATUS.stopped });\n this.#fireCallbacks(SCREEN_RECORDER_EVENT.onStop);\n\n // If mediaStream is active after stopping mediaRecorder, then that means that\n // we are restarting and not stopping.\n if (this.#mediaStream?.active) {\n this.#logger.info(\n \"onRecordingStop -> mediaStream still active, transitioning to restarting\"\n );\n this.#store.setState({ status: SCREEN_RECORDER_STATUS.restarting });\n }\n };\n\n #queryMicPermissionState = async () => {\n try {\n const result = await window.navigator.permissions.query({\n name: \"microphone\",\n });\n\n return result.state;\n } catch (error) {\n // Permissions API or the \"microphone\" descriptor is unsupported\n // (e.g. Safari). Fall through to the live getUserMedia attempt.\n this.#logger.info(\n \"queryMicPermissionState -> unsupported\",\n this.#serializeError(error)\n );\n\n return \"prompt\";\n }\n };\n\n #serializeError = error => {\n if (!error) return { error: null };\n\n return {\n name: error.name,\n message: error.message,\n stack: error.stack,\n code: error.code,\n constraint: error.constraint,\n };\n };\n\n #summarizeStream = stream => {\n if (!stream) return null;\n\n const summarizeTrack = track => ({\n kind: track.kind,\n readyState: track.readyState,\n enabled: track.enabled,\n muted: track.muted,\n label: track.label,\n settings:\n typeof track.getSettings === \"function\"\n ? track.getSettings()\n : undefined,\n });\n\n return {\n id: stream.id,\n active: stream.active,\n videoTracks: stream.getVideoTracks?.().map(summarizeTrack) ?? [],\n audioTracks: stream.getAudioTracks?.().map(summarizeTrack) ?? [],\n };\n };\n\n #summarizeRecorderState = (extra = {}) => ({\n recorderState: this.#mediaRecorder?.state,\n status: this.#store.getState().status,\n elapsedTime: this.#store.getState().elapsedTime,\n chunkCount: this.#mediaChunks.length,\n dataReceiving: this.#dataReceiving,\n countdownTimeLeft: this.#store.getState().countdownTimeLeft,\n ...extra,\n });\n\n // `delayMs` only exists to keep the start chime out of the recording; when no\n // chime plays (countdown skipped or disabled) we start immediately so the\n // recorder begins ticking without a perceptible gap.\n #startMediaRecorder = (delayMs = 0) => {\n this.#logger.info(\"startMediaRecorder -> scheduled\", {\n delayMs,\n ...this.#summarizeRecorderState(),\n });\n\n this.#startRecordingTimeoutID = setTimeout(() => {\n try {\n if (!this.#mediaRecorder) {\n this.#logger.error(\n \"startMediaRecorder -> aborted, mediaRecorder is null\",\n this.#summarizeRecorderState()\n );\n\n this.#store.setState({\n status: SCREEN_RECORDER_STATUS.idle,\n error: SCREEN_RECORDER_ERROR.FailedToStart,\n });\n\n return;\n }\n\n if (!this.#mediaStream || isStreamEnded(this.#mediaStream)) {\n this.#logger.error(\n \"startMediaRecorder -> aborted, media stream unavailable or ended\",\n {\n hasMediaStream: Boolean(this.#mediaStream),\n isEnded: this.#mediaStream\n ? isStreamEnded(this.#mediaStream)\n : true,\n stream: this.#summarizeStream(this.#mediaStream),\n }\n );\n\n this.#store.setState({\n status: SCREEN_RECORDER_STATUS.idle,\n error: SCREEN_RECORDER_ERROR.FailedToStart,\n });\n\n return;\n }\n\n if (this.#mediaRecorder?.state === \"recording\") {\n this.#logger.warn(\n \"startMediaRecorder -> mediaRecorder already recording, skipping\",\n this.#summarizeRecorderState()\n );\n\n return;\n }\n\n this.#logger.info(\"startMediaRecorder -> calling start()\", {\n timesliceMs: 5000,\n ...this.#summarizeRecorderState(),\n });\n this.#mediaRecorder.start(5000);\n this.#logger.info(\n \"startMediaRecorder -> start() returned\",\n this.#summarizeRecorderState()\n );\n this.#startTimer();\n } catch (error) {\n this.#logger.error(\n \"startMediaRecorder -> failed\",\n this.#serializeError(error),\n this.#summarizeRecorderState()\n );\n\n this.#store.setState({\n status: SCREEN_RECORDER_STATUS.idle,\n error: SCREEN_RECORDER_ERROR.FailedToStart,\n });\n\n // To prevent triggering #onRecordingStop when the mediaRecorder is failed to start.\n if (this.#mediaRecorder) {\n this.#mediaRecorder.onstop = noop;\n }\n\n if (this.#mediaStream) {\n this.#stopAllStreams();\n this.#mediaStream = null;\n }\n this.#stream = null;\n this.#audioStream = null;\n this.#micAudioStream = null;\n this.#mediaRecorder = null;\n\n throw error;\n }\n }, delayMs);\n };\n\n #startCountdown = () => {\n if (this.#countdownTimerId) {\n this.#logger.warn(\n \"startCountdown -> already running, ignoring\",\n this.#summarizeRecorderState()\n );\n\n return;\n }\n\n this.#logger.info(\"startCountdown -> begin\", {\n countdownTimeLeft: this.#store.getState().countdownTimeLeft,\n playCountdownAudio: this.#playCountdownAudio,\n });\n\n this.#fireCallbacks(SCREEN_RECORDER_EVENT.onCountdownStart);\n\n this.#countdownTimerId = setInterval(() => {\n let shouldBeep = false;\n\n this.#store.setState(({ countdownTimeLeft }) => {\n if (countdownTimeLeft - ONE_SECOND > 0) {\n const next = countdownTimeLeft - ONE_SECOND;\n this.#logger.info(\"startCountdown -> tick\", {\n remaining: next,\n });\n this.#fireCallbacks(SCREEN_RECORDER_EVENT.onCountdown, [next]);\n shouldBeep = true;\n\n return { countdownTimeLeft: next };\n }\n\n this.#fireCallbacks(SCREEN_RECORDER_EVENT.onCountdown, [0]);\n\n this.#logger.info(\"startCountdown -> end, starting recorder\");\n if (this.#playCountdownAudio) this.#startRecordingAudio.play();\n this.#fireCallbacks(SCREEN_RECORDER_EVENT.onCountdownEnd);\n this.#store.setState({ status: SCREEN_RECORDER_STATUS.recording });\n this.#startMediaRecorder(\n this.#playCountdownAudio ? HALF_A_SECOND_IN_MILLISECONDS : 0\n );\n\n clearInterval(this.#countdownTimerId);\n this.#countdownTimerId = null;\n\n return { countdownTimeLeft: 0 };\n });\n\n if (shouldBeep && this.#playCountdownAudio) this.#playCountdownBeep();\n }, ONE_SECOND_IN_MILLISECONDS);\n };\n\n #startTimer = () => {\n this.#lastTimerUpdatedAt = Date.now();\n this.#timerId = setInterval(() => {\n this.#store.setState(({ elapsedTime }) => {\n const now = Date.now();\n const newElapsedTime = elapsedTime + (now - this.#lastTimerUpdatedAt);\n this.#lastTimerUpdatedAt = now;\n\n this.#checkIfTimeLimitReached(newElapsedTime);\n\n return { elapsedTime: newElapsedTime };\n });\n }, TWO_HUNDRED_MILLISECONDS);\n };\n\n #stopTimer = () => {\n clearInterval(this.#timerId);\n\n const newElapsedTime =\n this.#store.getState().elapsedTime +\n (Date.now() - this.#lastTimerUpdatedAt);\n\n this.#store.setState({ elapsedTime: newElapsedTime });\n };\n\n #checkIfTimeLimitReached = elapsedTime => {\n const oneMinuteBeforeTimeLimit =\n this.#timeLimit - ONE_MINUTE_IN_MILLISECONDS;\n\n if (elapsedTime <= oneMinuteBeforeTimeLimit) return;\n\n if (\n elapsedTime < this.#timeLimit &&\n elapsedTime > oneMinuteBeforeTimeLimit\n ) {\n if (not(this.#store.getState().showTimeLimitWarning)) {\n this.#logger.info(\"time limit warning threshold crossed\", {\n elapsedTime,\n timeLimit: this.#timeLimit,\n });\n this.#recordingLimitWarningAudio.play();\n }\n this.#store.setState({ showTimeLimitWarning: true });\n\n return;\n }\n\n this.#logger.info(\"time limit reached, stopping recording\", {\n elapsedTime,\n timeLimit: this.#timeLimit,\n });\n this.#stopRecordingDueToLimitReachedAudio.play();\n this.stopRecording();\n };\n}\n\nconst screenRecorder = new ScreenRecorder(true, {\n displaySurface: DISPLAY_SURFACE.monitor,\n height: { max: 2160 },\n width: { max: 3840 },\n});\n\nexport default screenRecorder;\n","import { useSyncExternalStore } from \"react\";\n\nimport { getMultipartS3Uploader } from \"neetomediarecorder/core\";\n\nconst listeners = new Set();\n\nconst subscribe = listener => {\n listeners.add(listener);\n\n return () => listeners.delete(listener);\n};\n\nconst triggerStatusChange = () => {\n listeners.forEach(listener => listener());\n};\n\nconst getSnapshot = () => getMultipartS3Uploader().status;\n\nconst useMultipartS3UploadStatus = () => {\n const status = useSyncExternalStore(subscribe, getSnapshot, getSnapshot);\n\n return { status, isStatus: (...statuses) => statuses.includes(status) };\n};\n\nuseMultipartS3UploadStatus.triggerStatusChange = triggerStatusChange;\n\nexport default useMultipartS3UploadStatus;\n"],"names":["arrayLikeToArray","arrayWithoutHoles","iterableToArray","unsupportedIterableToArray","nonIterableSpread","_typeof","assertClassBrand","classPrivateFieldGet2","classApplyDescriptorSet","classApplyDescriptorGet","require$$0","ONE_SECOND_IN_MILLISECONDS","HALF_A_SECOND_IN_MILLISECONDS","TWO_HUNDRED_MILLISECONDS","ONE_MINUTE_IN_MILLISECONDS","ONE_SECOND","SCREEN_RECORDER_STATUS","media_aborted","permission_denied","no_specified_media_found","media_in_use","invalid_media_constraints","no_chrome_flags_set","recorder_error","idle","acquiring_media","media_acquired","restarting","recording","stopping","stopped","paused","SCREEN_RECORDER_ERROR","MicPermissionDenied","AbortError","NotAllowedError","NotFoundError","NotReadableError","OverconstrainedError","TypeError","None","NoRecorder","UnSupportedBrowser","FailedToStart","CreateRecordingError","InsufficientData","SCREEN_RECORDER_EVENT","onStart","onStop","onDiscard","onDataAvailable","onDiscardDuringCountdown","onRestart","onReUpload","onReUploadFromDisk","onPause","onResume","onCountdownStart","onCountdown","onCountdownEnd","onCountdownSkip","onShareSelected","onUnexpectedEnd","TOTAL_RETRIES","ABORT_UPLOAD_RETRIES","INITIAL_RETRY_DELAY","MAX_RETRY_DELAY","DEFAULT_RETRY_CONFIG","retries","retryDelay","retryableStatuses","HAS_CHROME_NAMESPACE","chrome","IS_EXTENSION","isNotNil","extension","IS_SAFARI","platform","name","MIME_TYPE","mp4","webmH264Opus","webmH264","webmVp9Opus","webmVp9","webmVp8Opus","webmVp8","webm","START_RECORDING_SOUND","COUNTDOWN_TICK_SOUND","STOP_RECORDING_DUE_TO_LIMIT_REACHED_SOUND","RECORDING_LIMIT_REACHED_WARNING_SOUND","RECORDING_TIME_LIMIT_FREE_PLAN","setPrototypeOf","assertThisInitialized","_isNativeReflectConstruct","isNativeReflectConstruct","isNativeFunction","construct","getPrototypeOf","sleep","delay","Promise","resolve","setTimeout","RetryError","_Error","_inherits","_super","_createSuper","message","_classCallCheck","call","_createClass","_wrapNativeSuper","Error","buildRetryableApi","apiConnector","_ref","arguments","length","undefined","_ref$retries","_ref$retryDelay","_ref2","_asyncToGenerator","_regeneratorRuntime","mark","_callee","apiConnectorArgs","_config$signal","_config$signal2","_apiConnectorArgs$con","config","remainingAttempts","shouldCancelRetries","_error$config","_error$response","_error$response2","wrap","_callee$","_context","prev","next","signal","aborted","axios","CanceledError","addEventListener","abrupt","sent","t0","isCancel","logger","error","url","response","status","info","min","stop","_x","apply","create","recordingId","payload","post","concat","abortUpload","retryableCreate","abortUploadApi","completeUpload","completeUploadApi","partPresignedUrl","partPresignedUrlApi","getUnSupportedConstraints","mediaType","supportedMediaConstraints","navigator","mediaDevices","getSupportedConstraints","Object","keys","filter","constraint","checkConstraints","isNil","_len","mediaTypes","Array","_key","unSupportedConstraints","map","flat","isNotEmpty","join","isStreamEnded","mediaStream","existsBy","readyState","getTracks","getSupportedMimeType","_candidates$find","MediaRecorder","isTypeSupported","candidates","find","type","getMediaRecorderOptions","mimeType","addGainNode","audioStream","gain","audioContext","AudioContext","audioStreamSource","createMediaStreamSource","destinationStream","createMediaStreamDestination","gainNode","createGain","value","connect","stream","s3AxiosInstance","headers","interceptors","use","identity","reject","presignedUpload","presignedUrl","blob","put","retryablePresignedUpload","s3Api","isMp4Supported","includes","createPrefixedLogger","prefix","_logger","args","_logger2","_len2","_key2","warn","_logger3","_len3","_key3","debug","_logger4","_len4","_key4","isNotCancelledRequest","resolvedResponse","calculateUploadProgress","uploadProgress","total","values","reduce","sum","part","uploaded","Math","round","_recordingId","WeakMap","_uploadId","_unUploadedChunks","_partNumber","_s3PartUploadPromises","_callbacks","_abortController","_pendingS3ChunkUploads","_completeUploadPromise","_failedUpload","_uploadProgress","_lastLoggedOverallPercent","_status","_id","_mimeType","_status2","_fireCallbacks","_handleChunkUploadError","_serializeUploadError","_uploadChunkToS","_getCurrentUnUploadedBlob","_isRecordingNotSet","_isTerminalStatus","MultipartS3Uploader","_this","_classPrivateFieldInitSpec","get","_get_isTerminalStatus","set","_get_isRecordingNotSet","_set_status","_defineProperty","writable","uuidv4","_classPrivateFieldGet","_classPrivateFieldSet","uploadId","AbortController","data","chunkBytes","size","push","unUploadedBytes","chunkType","bufferedChunks","bufferedBytes","bufferedMB","Number","toFixed","threshold","MIN_UPLOAD_CHUNK_SIZE","uploadChunkToS3Promise","parts","sessionLogs","_classPrivateFieldGet2","isMp4","logs","completeStartedAt","lastChunkBytes","resolvedS3PartUploadPromises","notifyStartedAt","Date","now","pendingChunks","totalPartsStarted","UPLOAD_STATUS","uploading","bytes","pendingS3ChunkUploads","all","s3PartUploadPromises","failedPartNumbers","UPLOAD_EVENT","onError","insufficient_data","etag","partNumber","URL","request","responseURL","searchParams","toSorted","a","b","partCount","completeUploadNotifyServer","notifyDurationMs","totalDurationMs","aborting","completed","onComplete","_objectSpread","finish","_callee2","forceAbort","abortStartedAt","phase","_classPrivateFieldGet3","_args2","_callee2$","_context2","partsStarted","hasAbortController","Boolean","abort","durationMs","onAbort","t1","event","callback","_classPrivateFieldGet4","existingCallbacks","_toConsumableArray","_classPrivateFieldGet5","registeredCallbacks","updatedCallbacks","isNot","_classPrivateFieldGet6","forEach","context","uploadStatus","_error$response3","_error$response4","code","stack","responseStatus","responseStatusText","statusText","responseData","slice","_classPrivateFieldGet7","_value","_callee3","chunks","_this$partNumber","_classPrivateFieldGet8","partBlob","partBytes","presignStartedAt","_yield$_this$generate","uploadStartedAt","s3PartUploadPromise","_callee3$","_context3","Blob","partMB","generatePreSignedUrl","presignDurationMs","includeMetadataInResponse","onUploadProgress","e","loaded","percentCompleted","overallPercent","partLoaded","partTotal","onProgress","then","_response$headers","throughputMbps","httpStatus","uploadDurationMs","_x2","minUploadChunkSize","key","useMultipartS3UploadStatus","triggerStatusChange","isEmpty","multipartS3Uploader","getMultipartS3Uploader","_ref3","_ref3$initialize","initialize","arrayWithHoles","iterableToArrayLimit","nonIterableRest","DISPLAY_SURFACE","monitor","window","browser","initialState","elapsedTime","countdownTimeLeft","COUNTDOWN_TIME","showTimeLimitWarning","prepareStore","withImmutableActions","resetState","_audio","_video","_videoStream","_mediaRecorder","_mediaStream","_store","_mediaChunks","_lastTimerUpdatedAt","_timerId","_countdownTimerId","_startRecordingAudio","_countdownTickAudio","_recordingLimitWarningAudio","_stopRecordingDueToLimitReachedAudio","_stream","_audioStream","_micAudioStream","_timeLimit","_startRecordingTimeoutID","_enableNoiseCancellation","_showCountdown","_playCountdownAudio","_dataReceiving","_recordSystemAudio","_stopAllStreams","_playCountdownBeep","_checkCompatibility","_acquireMediaStream","_onRecordingStart","_onRecordingActive","_onRecordingStop","_queryMicPermissionState","_serializeError","_summarizeStream","_summarizeRecorderState","_startMediaRecorder","_startCountdown","_startTimer","_stopTimer","_checkIfTimeLimitReached","ScreenRecorder","audio","video","Audio","displaySurface","height","getVideoConfig","width","max","getResolution","showCountdown","timeLimit","setState","options","recordSystemAudio","enableNoiseCancellation","hasInjectedVideoStream","pick","initialStoreState","hasMediaStream","isEnded","state","videoBitsPerSecond","audioBitsPerSecond","ondataavailable","onstart","onstop","onerror","chunkCount","removeCallback","clearTimeout","clearInterval","pause","resume","removeAllCallbacksByEvent","startRecording","getState","_classPrivateFieldGet9","_classPrivateFieldGet10","_classPrivateFieldGet11","_classPrivateFieldGet12","_classPrivateFieldGet13","_classPrivateFieldGet14","micAudioStream","track","getAudioTracks","currentTime","play","_navigator$mediaDevic","hasDisplayCapture","getDisplayMedia","supportedMimeType","acquireStartedAt","micState","constraints","displayMediaStartedAt","audioConfig","micStartedAt","workletUrl","workletStartedAt","noiseSuppressorNode","finalStream","_audioContext","desktopAudio","microphoneAudio","combinedAudio","echoCancellation","deviceId","exact","t2","getUserMedia","t3","runtime","getURL","audioWorklet","addModule","AudioWorkletNode","t4","t5","audioConfigRequested","getVideoTracks","_classPrivateFieldGet15","_classPrivateFieldGet16","hasUnexpectedEndHandler","recorderState","stopRecording","MediaStream","addTrack","t6","hasAudio","hasAudioStream","_classPrivateFieldGet17","_classPrivateFieldGet18","totalBytes","chunk","_chunk$size","_classPrivateFieldGet19","_classPrivateFieldGet20","_chunk$size2","mediaStreamActive","active","_value2","result","permissions","query","_stream$getVideoTrack","_stream$getVideoTrack2","_stream$getAudioTrack","_stream$getAudioTrack2","summarizeTrack","kind","enabled","muted","label","settings","getSettings","id","videoTracks","audioTracks","_classPrivateFieldGet21","extra","dataReceiving","delayMs","_classPrivateFieldGet22","timesliceMs","start","noop","playCountdownAudio","setInterval","shouldBeep","remaining","_ref4","newElapsedTime","oneMinuteBeforeTimeLimit","not","_classPrivateFieldGet23","_classPrivateFieldGet24","_ref5","_ref6","_slicedToArray","videoTrack","screenRecorder","listeners","Set","subscribe","listener","add","getSnapshot","useSyncExternalStore","isStatus","statuses"],"mappings":"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","x_google_ignoreList":[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,27,28,29,30,31,32,33,34,35,47,48,49,50]}