@bigbinary/neeto-media-recorder 2.7.51 → 2.7.53

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/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 isMp4Supported = (mimeType = getSupportedMimeType()) =>\n mimeType.includes(MIME_TYPE.mp4);\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","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\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 { MIME_TYPE } from \"src/constants\";\nimport createPrefixedLogger from \"utils/createPrefixedLogger\";\n\nimport { isNotCancelledRequest, calculateUploadProgress } from \"./utils\";\n\nimport { getSupportedMimeType, isMp4Supported } 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 const isNewUpload =\n this.#recordingId !== recordingId || this.#uploadId !== uploadId;\n\n this.#logger.info(\"setRecording\", { recordingId, uploadId, isNewUpload });\n\n if (isNewUpload) {\n // Part numbers and part-upload responses are only meaningful for the\n // uploadId they were created under. Carrying them across makes\n // completeUpload claim parts S3 never received for the new upload, which\n // S3 rejects with InvalidPart.\n //\n // #unUploadedChunks is intentionally NOT cleared: the re-upload flow\n // push()es the blob before the replacement recording exists, so the\n // buffer legitimately belongs to the upload being set up here.\n this.#partNumber = 1;\n this.#s3PartUploadPromises = [];\n this.#pendingS3ChunkUploads = [];\n this.#failedUpload = [];\n this.#uploadProgress = {};\n this.#lastLoggedOverallPercent = -1;\n }\n\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 // #uploadChunkToS3 snapshots the chunks into a Blob synchronously\n // before its first await, so the buffer is safe to release here. Not\n // releasing it re-uploads the same bytes as an extra part on any\n // subsequent completion attempt (same pattern as push()).\n this.#unUploadedChunks = [];\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\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","onCountdownStart","onCountdown","onCountdownEnd","onCountdownSkip","onShareSelected","onUnexpectedEnd","TOTAL_RETRIES","ABORT_UPLOAD_RETRIES","INITIAL_RETRY_DELAY","MAX_RETRY_DELAY","DEFAULT_RETRY_CONFIG","retries","retryDelay","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","isMp4Supported","includes","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","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","isNewUpload","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","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","window","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,46,47,48,49]}
1
+ {"version":3,"file":"core.js","sources":["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","src/apis/fast_title.js","src/utils/createPrefixedLogger.js","src/core/fastTitle/constants.js","src/core/fastTitle/index.js","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/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/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 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 axios from \"axios\";\n\n// Where a recording's opening audio is PUT. Uploading it is the whole handoff —\n// the bucket triggers a lambda which titles the recording and reports it to the\n// server, so there is no second call to make.\n//\n// A nil upload_url means the recording already has a title, which is the\n// caller's signal to stop.\nconst show = ({ recordingId }) =>\n axios.get(\n `/api/v1/recordings/${encodeURIComponent(\n recordingId\n )}/fast_title_upload_url`\n );\n\nconst fastTitleApi = { show };\n\nexport default fastTitleApi;\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","// How much of the opening to transcribe. Long enough that a recording has\n// usually said something, short enough that the title is saved well before the\n// user stops — which is the whole point, since a link pasted right after\n// recording is what the unfurl cache captures.\n//\n// There is only ever one window. The title is built from whatever these seconds\n// contain rather than waiting for a clearly stated topic, so a second attempt\n// would rarely say anything new.\nexport const FAST_TITLE_WINDOW_MS = 20_000;\n\n// Ordered by preference. Opus at a low bitrate is all the transcription API\n// consumes, and keeps the window small enough that the upload never dominates.\n//\n// Independent of the video format: this records audio only, so a recording made\n// in MP4 still captures its opening as Opus. The MP4 entries are the fallback\n// for a browser whose MediaRecorder cannot do audio/webm at all — Safari.\nexport const FAST_TITLE_MIME_TYPES = [\n \"audio/webm;codecs=opus\",\n \"audio/ogg;codecs=opus\",\n \"audio/webm\",\n \"audio/mp4;codecs=mp4a.40.2\",\n \"audio/mp4\",\n];\n\nexport const FAST_TITLE_AUDIO_BITS_PER_SECOND = 24_000;\n","import { isEmpty } from \"ramda\";\n\nimport fastTitleApi from \"src/apis/fast_title\";\nimport createPrefixedLogger from \"utils/createPrefixedLogger\";\n\nimport {\n FAST_TITLE_WINDOW_MS,\n FAST_TITLE_MIME_TYPES,\n FAST_TITLE_AUDIO_BITS_PER_SECOND,\n} from \"./constants\";\n\nconst supportedMimeType = () =>\n FAST_TITLE_MIME_TYPES.find(type => MediaRecorder.isTypeSupported(type));\n\n/**\n * Titles a recording while it is still being made.\n *\n * Link unfurlers (Slack, X, Teams) fetch a page's metadata the first time\n * somebody pastes the URL and cache it per URL, with no purge API worth relying\n * on — so whatever title exists at that moment is the one that sticks. Titling\n * after the upload finishes can lose that race. Titling during the recording\n * does not: for anything longer than about half a minute the title is saved\n * before the user presses stop.\n *\n * Runs a second, audio-only MediaRecorder over cloned audio tracks. When its\n * first window closes it PUTs that audio to S3 and stops. The upload is the\n * whole handoff: the bucket triggers a lambda which titles the recording and\n * reports it to the server, so there is no result to wait for here.\n *\n * It shares no object with the real recorder, and every failure path is a no-op\n * — the transcode lambda still titles the recording from its full transcript\n * afterwards.\n */\nclass FastTitleRunner {\n #logger = createPrefixedLogger(\"[FastTitle]\");\n #recorder;\n #tracks = [];\n #recordingId = null;\n #mimeType;\n #finished = false;\n\n get isRunning() {\n return Boolean(this.#recorder) && !this.#finished;\n }\n\n // Set once the recording exists. It is created asynchronously and usually\n // lands well before the first window closes.\n setRecordingId = recordingId => {\n this.#recordingId = recordingId;\n };\n\n /**\n * @param {MediaStream} mediaStream the stream being recorded; its audio tracks\n * are cloned so nothing here can disturb the real recorder\n */\n start = mediaStream => {\n if (this.isRunning) return;\n\n const audioTracks = mediaStream?.getAudioTracks?.() ?? [];\n if (isEmpty(audioTracks)) {\n this.#logger.info(\"start -> no audio track, skipping\");\n\n return;\n }\n\n this.#mimeType = supportedMimeType();\n if (!this.#mimeType) {\n this.#logger.info(\"start -> no supported audio mime type, skipping\");\n\n return;\n }\n\n this.#reset();\n\n try {\n // Cloned rather than shared: a clone is an independent track, so a second\n // MediaRecorder reading it cannot affect the one producing the actual\n // recording. Clones must be stopped explicitly or they outlive the take.\n this.#tracks = audioTracks.map(track => track.clone());\n\n this.#recorder = new MediaRecorder(new MediaStream(this.#tracks), {\n mimeType: this.#mimeType,\n audioBitsPerSecond: FAST_TITLE_AUDIO_BITS_PER_SECOND,\n });\n this.#recorder.ondataavailable = this.#onWindowClosed;\n this.#recorder.onerror = event => {\n this.#logger.error(\"recorder error\", event?.error?.name);\n this.stop();\n };\n this.#recorder.start(FAST_TITLE_WINDOW_MS);\n\n this.#logger.info(\"start -> recording opening audio\", {\n mimeType: this.#mimeType,\n trackCount: this.#tracks.length,\n });\n } catch (error) {\n this.#logger.error(\"start -> failed\", error?.message);\n this.stop();\n }\n };\n\n pause = () => {\n if (this.#recorder?.state === \"recording\") this.#recorder.pause();\n };\n\n resume = () => {\n if (this.#recorder?.state === \"paused\") this.#recorder.resume();\n };\n\n stop = () => {\n this.#finished = true;\n\n try {\n if (this.#recorder && this.#recorder.state !== \"inactive\") {\n // No final flush: audio sent now would arrive while the recording is\n // already uploading, which is what the transcode lambda is for.\n this.#recorder.ondataavailable = null;\n this.#recorder.stop();\n }\n } catch (error) {\n this.#logger.error(\"stop -> error stopping recorder\", error?.message);\n }\n\n this.#tracks.forEach(track => track.stop());\n this.#reset();\n };\n\n #reset = () => {\n this.#recorder = null;\n this.#tracks = [];\n this.#finished = false;\n };\n\n // Fires once, when the first window closes. Whatever it holds is the title's\n // only source, so this uploads it and stops.\n #onWindowClosed = async event => {\n if (this.#finished) return;\n\n if (!event.data?.size || !this.#recordingId) {\n this.#logger.info(\"nothing to send, stopping\", {\n size: event.data?.size ?? 0,\n hasRecordingId: Boolean(this.#recordingId),\n });\n this.stop();\n\n return;\n }\n\n // Stopped up front: this runs once either way, and stopping first means a\n // slow upload cannot overlap a second window.\n const audio = event.data;\n const recordingId = this.#recordingId;\n this.stop();\n\n try {\n await this.#upload(recordingId, audio);\n } catch (error) {\n // Not fatal: the transcode lambda still titles the recording from its\n // full transcript afterwards.\n this.#logger.error(\"upload failed\", error?.message);\n }\n };\n\n #upload = async (recordingId, audio) => {\n const startedAt = performance.now();\n\n // Already the response body: the host app's axios interceptors unwrap it,\n // the same way generatePreSignedUrl's caller destructures its result.\n const { uploadUrl } = await fastTitleApi.show({ recordingId });\n\n if (!uploadUrl) {\n this.#logger.info(\"not wanted for this recording\");\n\n return;\n }\n\n // Straight to S3, deliberately not through the app's axios: a presigned PUT\n // carries its own auth in the query string, and the shared interceptors\n // would strip credentials cross-origin and serialize the Blob away.\n const response = await fetch(uploadUrl, {\n method: \"PUT\",\n headers: { \"Content-Type\": this.#mimeType },\n body: audio,\n });\n\n if (!response.ok) throw new Error(`audio upload ${response.status}`);\n\n // The last thing this client will say about the recording. Uploading is the\n // whole handoff — the bucket triggers a lambda which transcribes, titles and\n // reports the title to the server — so nothing further appears here whether\n // it succeeds or finds nothing to title.\n this.#logger.info(\"upload succeeded -> handed off for titling\", {\n recordingId,\n bytes: audio.size,\n mimeType: this.#mimeType,\n ms: Math.round(performance.now() - startedAt),\n // Path only. The query string of a presigned URL carries its signature.\n key: new URL(uploadUrl).pathname.replace(/^\\//, \"\"),\n });\n };\n}\n\nlet runner = null;\n\nexport const getFastTitleRunner = () => {\n if (!runner) runner = new FastTitleRunner();\n\n return runner;\n};\n\nexport default FastTitleRunner;\n","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 };","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 isMp4Supported = (mimeType = getSupportedMimeType()) =>\n mimeType.includes(MIME_TYPE.mp4);\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","/**\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\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 { MIME_TYPE } from \"src/constants\";\nimport createPrefixedLogger from \"utils/createPrefixedLogger\";\n\nimport { isNotCancelledRequest, calculateUploadProgress } from \"./utils\";\n\nimport { getSupportedMimeType, isMp4Supported } 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 const isNewUpload =\n this.#recordingId !== recordingId || this.#uploadId !== uploadId;\n\n this.#logger.info(\"setRecording\", { recordingId, uploadId, isNewUpload });\n\n if (isNewUpload) {\n // Part numbers and part-upload responses are only meaningful for the\n // uploadId they were created under. Carrying them across makes\n // completeUpload claim parts S3 never received for the new upload, which\n // S3 rejects with InvalidPart.\n //\n // #unUploadedChunks is intentionally NOT cleared: the re-upload flow\n // push()es the blob before the replacement recording exists, so the\n // buffer legitimately belongs to the upload being set up here.\n this.#partNumber = 1;\n this.#s3PartUploadPromises = [];\n this.#pendingS3ChunkUploads = [];\n this.#failedUpload = [];\n this.#uploadProgress = {};\n this.#lastLoggedOverallPercent = -1;\n }\n\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 // #uploadChunkToS3 snapshots the chunks into a Blob synchronously\n // before its first await, so the buffer is safe to release here. Not\n // releasing it re-uploads the same bytes as an extra part on any\n // subsequent completion attempt (same pattern as push()).\n this.#unUploadedChunks = [];\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\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\nimport { getFastTitleRunner } from \"../fastTitle\";\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 getFastTitleRunner().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 getFastTitleRunner().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 // Whether this recording could contain speech worth titling from.\n //\n // A muted mic is the case that matters: with the mic off the fast-title path\n // would upload audio, spend a transcription and a completion, and get nothing\n // back. Checked against the raw mic rather than #audioStream, which is the mic\n // mixed with system audio and stays loud through a dead mic.\n //\n // System audio counts on its own — a recording narrated by the thing on screen\n // is exactly as titleable as one narrated by the user.\n #hasSpeechSourceForTitle = () => {\n const [micTrack] = this.#micAudioStream?.getAudioTracks?.() ?? [];\n const micLive =\n Boolean(micTrack) &&\n micTrack.readyState !== \"ended\" &&\n !micTrack.muted &&\n micTrack.enabled;\n\n const hasSystemAudio = isNotEmpty(this.#stream?.getAudioTracks() ?? []);\n\n if (!micLive && !hasSystemAudio) {\n this.#logger.info(\"fast title skipped -> mic is off and no system audio\");\n\n return false;\n }\n\n return true;\n };\n\n #stopAllStreams = () => {\n getFastTitleRunner().stop();\n\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 ? 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\n // Titles the recording from its opening seconds, while it is still\n // being made. Skipped when there is nothing that could carry speech.\n if (this.#hasSpeechSourceForTitle()) {\n getFastTitleRunner().start(this.#mediaStream);\n }\n\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":["_typeof","assertClassBrand","classPrivateFieldGet2","classApplyDescriptorSet","classApplyDescriptorGet","require$$0","show","_ref","recordingId","axios","get","concat","encodeURIComponent","fastTitleApi","createPrefixedLogger","prefix","info","_logger","_len","arguments","length","args","Array","_key","logger","apply","error","_logger2","_len2","_key2","warn","_logger3","_len3","_key3","debug","_logger4","_len4","_key4","FAST_TITLE_WINDOW_MS","FAST_TITLE_MIME_TYPES","FAST_TITLE_AUDIO_BITS_PER_SECOND","supportedMimeType","find","type","MediaRecorder","isTypeSupported","WeakMap","_recorder","_tracks","_recordingId","_mimeType","_finished","_reset","_onWindowClosed","_upload","FastTitleRunner","_this","_classCallCheck","_classPrivateFieldInitSpec","writable","value","_defineProperty","_classPrivateFieldSet","mediaStream","_mediaStream$getAudio","_mediaStream$getAudio2","isRunning","audioTracks","getAudioTracks","call","isEmpty","_classPrivateFieldGet","map","track","clone","MediaStream","mimeType","audioBitsPerSecond","ondataavailable","onerror","event","_event$error","name","stop","start","trackCount","message","_classPrivateFieldGet2","state","pause","_classPrivateFieldGet3","resume","forEach","_value","_asyncToGenerator","_regeneratorRuntime","mark","_callee","_event$data","_event$data$size","_event$data2","audio","wrap","_callee$","_context","prev","next","abrupt","data","size","hasRecordingId","Boolean","t0","_x","_value2","_callee2","startedAt","_yield$fastTitleApi$s","uploadUrl","response","_callee2$","_context2","performance","now","sent","fetch","method","headers","body","ok","Error","status","bytes","ms","Math","round","key","URL","pathname","replace","_x2","_x3","_createClass","runner","getFastTitleRunner","arrayLikeToArray","arrayWithoutHoles","iterableToArray","unsupportedIterableToArray","nonIterableSpread","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","onCountdownStart","onCountdown","onCountdownEnd","onCountdownSkip","onShareSelected","onUnexpectedEnd","TOTAL_RETRIES","ABORT_UPLOAD_RETRIES","INITIAL_RETRY_DELAY","MAX_RETRY_DELAY","DEFAULT_RETRY_CONFIG","retries","retryDelay","HAS_CHROME_NAMESPACE","chrome","IS_EXTENSION","isNotNil","extension","IS_SAFARI","platform","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","_wrapNativeSuper","buildRetryableApi","apiConnector","undefined","_ref$retries","_ref$retryDelay","_ref2","apiConnectorArgs","_config$signal","_config$signal2","_apiConnectorArgs$con","config","remainingAttempts","shouldCancelRetries","_error$config","_error$response","_error$response2","signal","aborted","CanceledError","addEventListener","isCancel","url","min","create","payload","post","abortUpload","retryableCreate","abortUploadApi","completeUpload","completeUploadApi","partPresignedUrl","partPresignedUrlApi","getUnSupportedConstraints","mediaType","supportedMediaConstraints","navigator","mediaDevices","getSupportedConstraints","Object","keys","filter","constraint","checkConstraints","isNil","mediaTypes","unSupportedConstraints","flat","isNotEmpty","join","isStreamEnded","existsBy","readyState","getTracks","getSupportedMimeType","_candidates$find","candidates","getMediaRecorderOptions","isMp4Supported","includes","addGainNode","audioStream","gain","audioContext","AudioContext","audioStreamSource","createMediaStreamSource","destinationStream","createMediaStreamDestination","gainNode","createGain","connect","stream","s3AxiosInstance","interceptors","use","identity","reject","presignedUpload","presignedUrl","blob","put","retryablePresignedUpload","s3Api","isNotCancelledRequest","resolvedResponse","calculateUploadProgress","uploadProgress","total","values","reduce","sum","part","uploaded","_uploadId","_unUploadedChunks","_partNumber","_s3PartUploadPromises","_callbacks","_abortController","_pendingS3ChunkUploads","_completeUploadPromise","_failedUpload","_uploadProgress","_lastLoggedOverallPercent","_status","_id","_status2","_fireCallbacks","_handleChunkUploadError","_serializeUploadError","_uploadChunkToS","_getCurrentUnUploadedBlob","_isRecordingNotSet","_isTerminalStatus","MultipartS3Uploader","_get_isTerminalStatus","set","_get_isRecordingNotSet","_set_status","uuidv4","uploadId","isNewUpload","AbortController","chunkBytes","push","unUploadedBytes","chunkType","bufferedChunks","bufferedBytes","bufferedMB","Number","toFixed","threshold","MIN_UPLOAD_CHUNK_SIZE","uploadChunkToS3Promise","parts","sessionLogs","isMp4","logs","completeStartedAt","lastChunkBytes","resolvedS3PartUploadPromises","notifyStartedAt","Date","pendingChunks","totalPartsStarted","UPLOAD_STATUS","uploading","pendingS3ChunkUploads","all","s3PartUploadPromises","failedPartNumbers","UPLOAD_EVENT","onError","insufficient_data","etag","partNumber","request","responseURL","searchParams","toSorted","a","b","partCount","completeUploadNotifyServer","notifyDurationMs","totalDurationMs","aborting","completed","onComplete","_objectSpread","finish","forceAbort","abortStartedAt","phase","_args2","partsStarted","hasAbortController","abort","durationMs","onAbort","t1","callback","_classPrivateFieldGet4","existingCallbacks","_toConsumableArray","_classPrivateFieldGet5","registeredCallbacks","updatedCallbacks","isNot","_classPrivateFieldGet6","context","uploadStatus","_error$response3","_error$response4","code","stack","responseStatus","responseStatusText","statusText","responseData","slice","_classPrivateFieldGet7","_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","minUploadChunkSize","useMultipartS3UploadStatus","triggerStatusChange","multipartS3Uploader","getMultipartS3Uploader","_ref3","_ref3$initialize","initialize","arrayWithHoles","iterableToArrayLimit","nonIterableRest","DISPLAY_SURFACE","monitor","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","_hasSpeechSourceForTitle","_stopAllStreams","_playCountdownBeep","_checkCompatibility","_acquireMediaStream","_onRecordingStart","_onRecordingActive","_onRecordingStop","_queryMicPermissionState","_serializeError","_summarizeStream","_summarizeRecorderState","_startMediaRecorder","_startCountdown","_startTimer","_stopTimer","_checkIfTimeLimitReached","ScreenRecorder","video","Audio","displaySurface","height","getVideoConfig","width","max","getResolution","showCountdown","timeLimit","setState","options","recordSystemAudio","enableNoiseCancellation","hasInjectedVideoStream","pick","initialStoreState","hasMediaStream","isEnded","videoBitsPerSecond","onstart","onstop","chunkCount","removeCallback","clearTimeout","clearInterval","removeAllCallbacksByEvent","startRecording","getState","_classPrivateFieldGet9","_classPrivateFieldGet10","_classPrivateFieldGet11","_classPrivateFieldGet12","_classPrivateFieldGet13","_slicedToArray","micTrack","micLive","muted","enabled","hasSystemAudio","_classPrivateFieldGet14","_classPrivateFieldGet15","_classPrivateFieldGet16","_classPrivateFieldGet17","_classPrivateFieldGet18","_classPrivateFieldGet19","micAudioStream","currentTime","play","_navigator$mediaDevic","hasDisplayCapture","getDisplayMedia","acquireStartedAt","micState","constraints","displayMediaStartedAt","audioConfig","micStartedAt","workletUrl","workletStartedAt","noiseSuppressorNode","finalStream","_audioContext","desktopAudio","microphoneAudio","combinedAudio","window","echoCancellation","deviceId","exact","t2","getUserMedia","t3","runtime","getURL","audioWorklet","addModule","AudioWorkletNode","t4","t5","audioConfigRequested","getVideoTracks","_classPrivateFieldGet20","_classPrivateFieldGet21","hasUnexpectedEndHandler","recorderState","stopRecording","addTrack","t6","hasAudio","hasAudioStream","_classPrivateFieldGet22","_ref4","_classPrivateFieldGet23","totalBytes","chunk","_chunk$size","_classPrivateFieldGet24","_classPrivateFieldGet25","_chunk$size2","mediaStreamActive","active","result","permissions","query","_stream$getVideoTrack","_stream$getVideoTrack2","_stream$getAudioTrack","_stream$getAudioTrack2","summarizeTrack","kind","label","settings","getSettings","id","videoTracks","_classPrivateFieldGet26","extra","dataReceiving","delayMs","_classPrivateFieldGet27","timesliceMs","noop","playCountdownAudio","setInterval","shouldBeep","_ref5","remaining","_ref6","newElapsedTime","oneMinuteBeforeTimeLimit","not","_classPrivateFieldGet28","_classPrivateFieldGet29","_ref7","_ref8","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,20,21,22,23,24,25,26,27,28,29,31,32,33,34,35,36,37,38,39,49,50,51,52]}