agora-rte-sdk 2.9.32 → 2.9.41

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.
Files changed (76) hide show
  1. package/lib/configs/index.js +4 -4
  2. package/lib/core/decorator/proxy.js +12 -13
  3. package/lib/core/engine/index.js +12 -8
  4. package/lib/core/log-upload/handler.js +5 -7
  5. package/lib/core/logger/db.d.ts +16 -0
  6. package/lib/core/logger/db.js +44 -0
  7. package/lib/core/logger/log-serializer.d.ts +2 -0
  8. package/lib/core/logger/log-serializer.js +56 -0
  9. package/lib/core/logger/log.worker.d.ts +1 -0
  10. package/lib/core/logger/log.worker.js +128 -0
  11. package/lib/core/logger/mutex.d.ts +5 -0
  12. package/lib/core/logger/mutex.js +87 -0
  13. package/lib/core/logger/report-impl.d.ts +11 -0
  14. package/lib/core/logger/report-impl.js +139 -0
  15. package/lib/core/logger/worker/db.d.ts +16 -0
  16. package/lib/core/logger/worker/db.js +42 -0
  17. package/lib/core/logger/worker/log.worker.d.ts +1 -0
  18. package/lib/core/logger/worker/log.worker.js +256 -0
  19. package/lib/core/logger/worker/mutex.d.ts +5 -0
  20. package/lib/core/logger/worker/mutex.js +84 -0
  21. package/lib/core/logger/worker-interactor.d.ts +28 -0
  22. package/lib/core/logger/worker-interactor.js +225 -0
  23. package/lib/core/media/control.d.ts +3 -1
  24. package/lib/core/media/control.js +15 -5
  25. package/lib/core/media/loopback.js +4 -5
  26. package/lib/core/media/track.d.ts +2 -0
  27. package/lib/core/media/track.js +24 -23
  28. package/lib/core/media-player/stream-media-player.d.ts +0 -1
  29. package/lib/core/media-player/stream-media-player.js +6 -16
  30. package/lib/core/processor/message-handler.js +4 -5
  31. package/lib/core/processor/struct.d.ts +3 -0
  32. package/lib/core/processor/struct.js +31 -3
  33. package/lib/core/rc/index.d.ts +78 -0
  34. package/lib/core/rc/index.js +616 -0
  35. package/lib/core/rc/type.d.ts +28 -0
  36. package/lib/core/rc/type.js +21 -0
  37. package/lib/core/rtc/adapter/base.d.ts +7 -1
  38. package/lib/core/rtc/adapter/base.js +7 -11
  39. package/lib/core/rtc/adapter/electron/device.js +7 -11
  40. package/lib/core/rtc/adapter/electron/index.d.ts +24 -11
  41. package/lib/core/rtc/adapter/electron/index.js +225 -126
  42. package/lib/core/rtc/adapter/electron/thread.d.ts +4 -1
  43. package/lib/core/rtc/adapter/electron/thread.js +56 -18
  44. package/lib/core/rtc/adapter/web/client.js +16 -17
  45. package/lib/core/rtc/adapter/web/device.js +51 -63
  46. package/lib/core/rtc/adapter/web/dispatcher.js +3 -3
  47. package/lib/core/rtc/adapter/web/index.d.ts +7 -2
  48. package/lib/core/rtc/adapter/web/index.js +48 -14
  49. package/lib/core/rtc/adapter/web/player.d.ts +3 -1
  50. package/lib/core/rtc/adapter/web/player.js +118 -49
  51. package/lib/core/rtc/adapter/web/thread.d.ts +17 -4
  52. package/lib/core/rtc/adapter/web/thread.js +278 -133
  53. package/lib/core/rtc/canvas.js +13 -16
  54. package/lib/core/rtc/index.d.ts +7 -1
  55. package/lib/core/rtc/index.js +31 -5
  56. package/lib/core/rtm/index.js +4 -5
  57. package/lib/core/services/api.js +4 -5
  58. package/lib/core/services/base.js +3 -3
  59. package/lib/core/services/fallback-request-handler.js +3 -3
  60. package/lib/core/services/log.d.ts +8 -0
  61. package/lib/core/services/log.js +172 -0
  62. package/lib/core/services/oss.d.ts +15 -0
  63. package/lib/core/services/oss.js +342 -0
  64. package/lib/core/services/report.js +7 -8
  65. package/lib/core/utils/electron-log-file.js +36 -11
  66. package/lib/core/utils/error.js +9 -12
  67. package/lib/core/utils/thread.js +4 -5
  68. package/lib/core/worker/handler/db.js +4 -5
  69. package/lib/core/worker/handler/log.js +61 -56
  70. package/lib/scene/index.d.ts +0 -1
  71. package/lib/scene/index.js +93 -120
  72. package/lib/scene/state-sync.d.ts +5 -2
  73. package/lib/scene/state-sync.js +21 -7
  74. package/lib/user/index.d.ts +1 -0
  75. package/lib/user/index.js +12 -0
  76. package/package.json +2 -2
@@ -20,7 +20,7 @@ var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/creat
20
20
  var _error = require("../core/utils/error");
21
21
  var _utils = require("../core/utils/utils");
22
22
  var _type = require("../type");
23
- var _class;
23
+ var _AgoraRteEngineConfig;
24
24
  function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
25
25
  function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { (0, _defineProperty2["default"])(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
26
26
  var AgoraRteEngineConfig = exports.AgoraRteEngineConfig = /*#__PURE__*/function () {
@@ -131,12 +131,12 @@ var AgoraRteEngineConfig = exports.AgoraRteEngineConfig = /*#__PURE__*/function
131
131
  }]);
132
132
  return AgoraRteEngineConfig;
133
133
  }();
134
- _class = AgoraRteEngineConfig;
134
+ _AgoraRteEngineConfig = AgoraRteEngineConfig;
135
135
  AgoraRteEngineConfig._config = void 0;
136
136
  // these settings should not depend on the shared instance therefore set to static
137
137
  AgoraRteEngineConfig.logLevel = _type.AgoraRteLogLevel.INFO;
138
138
  AgoraRteEngineConfig.consoleHijackEnabled = true;
139
139
  AgoraRteEngineConfig.sequenceVersion = _type.AgoraRteSequenceVersion.v2;
140
140
  AgoraRteEngineConfig.volumeIndicatorInterval = 500;
141
- AgoraRteEngineConfig.rtcLogUploadEnabled = false;
142
- AgoraRteEngineConfig.rtmLogUploadEnabled = false;
141
+ AgoraRteEngineConfig.rtcLogUploadEnabled = true;
142
+ AgoraRteEngineConfig.rtmLogUploadEnabled = true;
@@ -21,14 +21,14 @@ require("core-js/modules/es.object.define-property.js");
21
21
  require("core-js/modules/es.object.keys.js");
22
22
  var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
23
23
  var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
24
- var _assertThisInitialized2 = _interopRequireDefault(require("@babel/runtime/helpers/assertThisInitialized"));
25
- var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits"));
26
24
  var _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime/helpers/possibleConstructorReturn"));
27
25
  var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime/helpers/getPrototypeOf"));
26
+ var _assertThisInitialized2 = _interopRequireDefault(require("@babel/runtime/helpers/assertThisInitialized"));
27
+ var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits"));
28
28
  var _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime/helpers/toConsumableArray"));
29
29
  var _type = require("./type");
30
- function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = (0, _getPrototypeOf2["default"])(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = (0, _getPrototypeOf2["default"])(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return (0, _possibleConstructorReturn2["default"])(this, result); }; }
31
- function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }
30
+ function _callSuper(t, o, e) { return o = (0, _getPrototypeOf2["default"])(o), (0, _possibleConstructorReturn2["default"])(t, _isNativeReflectConstruct() ? Reflect.construct(o, e || [], (0, _getPrototypeOf2["default"])(t).constructor) : o.apply(t, e)); }
31
+ function _isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); }
32
32
  var failQuitely = function failQuitely(func, args) {
33
33
  try {
34
34
  return func.apply(void 0, (0, _toConsumableArray2["default"])(args));
@@ -112,17 +112,16 @@ var getMethods = function getMethods(target) {
112
112
  return allMethods;
113
113
  };
114
114
  var extendConstructor = exports.extendConstructor = function extendConstructor(constructor, handler, extendProps, proxyMethods) {
115
- var _class;
116
- return _class = /*#__PURE__*/function (_constructor) {
117
- (0, _inherits2["default"])(_class, _constructor);
118
- var _super = _createSuper(_class);
119
- function _class() {
115
+ var _Class;
116
+ return _Class = /*#__PURE__*/function (_constructor) {
117
+ (0, _inherits2["default"])(_Class, _constructor);
118
+ function _Class() {
120
119
  var _this;
121
- (0, _classCallCheck2["default"])(this, _class);
120
+ (0, _classCallCheck2["default"])(this, _Class);
122
121
  for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {
123
122
  args[_key2] = arguments[_key2];
124
123
  }
125
- _this = _super.call.apply(_super, [this].concat(args));
124
+ _this = _callSuper(this, _Class, [].concat(args));
126
125
  if (proxyMethods) {
127
126
  var methods = getMethods((0, _assertThisInitialized2["default"])(_this));
128
127
  // proxy methods
@@ -149,6 +148,6 @@ var extendConstructor = exports.extendConstructor = function extendConstructor(c
149
148
  });
150
149
  return _this;
151
150
  }
152
- return (0, _createClass2["default"])(_class);
153
- }(constructor), _class.__$$className = constructor.name, _class;
151
+ return (0, _createClass2["default"])(_Class);
152
+ }(constructor), _Class.__$$className = constructor.name, _Class;
154
153
  };
@@ -35,9 +35,9 @@ var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/sli
35
35
  var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));
36
36
  var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
37
37
  var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
38
- var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits"));
39
38
  var _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime/helpers/possibleConstructorReturn"));
40
39
  var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime/helpers/getPrototypeOf"));
40
+ var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits"));
41
41
  var _events = require("../utils/events");
42
42
  var _configs = require("../../configs");
43
43
  var _scene = require("../../scene");
@@ -58,15 +58,14 @@ var _scheduler = require("../log-upload/scheduler");
58
58
  var _upload = require("../upload");
59
59
  var _handler = require("../log-upload/handler");
60
60
  function _regeneratorRuntime() { "use strict"; /*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/facebook/regenerator/blob/main/LICENSE */ _regeneratorRuntime = function _regeneratorRuntime() { return e; }; var t, e = {}, r = Object.prototype, n = r.hasOwnProperty, o = Object.defineProperty || function (t, e, r) { t[e] = r.value; }, i = "function" == typeof Symbol ? Symbol : {}, a = i.iterator || "@@iterator", c = i.asyncIterator || "@@asyncIterator", u = i.toStringTag || "@@toStringTag"; function define(t, e, r) { return Object.defineProperty(t, e, { value: r, enumerable: !0, configurable: !0, writable: !0 }), t[e]; } try { define({}, ""); } catch (t) { define = function define(t, e, r) { return t[e] = r; }; } function wrap(t, e, r, n) { var i = e && e.prototype instanceof Generator ? e : Generator, a = Object.create(i.prototype), c = new Context(n || []); return o(a, "_invoke", { value: makeInvokeMethod(t, r, c) }), a; } function tryCatch(t, e, r) { try { return { type: "normal", arg: t.call(e, r) }; } catch (t) { return { type: "throw", arg: t }; } } e.wrap = wrap; var h = "suspendedStart", l = "suspendedYield", f = "executing", s = "completed", y = {}; function Generator() {} function GeneratorFunction() {} function GeneratorFunctionPrototype() {} var p = {}; define(p, a, function () { return this; }); var d = Object.getPrototypeOf, v = d && d(d(values([]))); v && v !== r && n.call(v, a) && (p = v); var g = GeneratorFunctionPrototype.prototype = Generator.prototype = Object.create(p); function defineIteratorMethods(t) { ["next", "throw", "return"].forEach(function (e) { define(t, e, function (t) { return this._invoke(e, t); }); }); } function AsyncIterator(t, e) { function invoke(r, o, i, a) { var c = tryCatch(t[r], t, o); if ("throw" !== c.type) { var u = c.arg, h = u.value; return h && "object" == _typeof(h) && n.call(h, "__await") ? e.resolve(h.__await).then(function (t) { invoke("next", t, i, a); }, function (t) { invoke("throw", t, i, a); }) : e.resolve(h).then(function (t) { u.value = t, i(u); }, function (t) { return invoke("throw", t, i, a); }); } a(c.arg); } var r; o(this, "_invoke", { value: function value(t, n) { function callInvokeWithMethodAndArg() { return new e(function (e, r) { invoke(t, n, e, r); }); } return r = r ? r.then(callInvokeWithMethodAndArg, callInvokeWithMethodAndArg) : callInvokeWithMethodAndArg(); } }); } function makeInvokeMethod(e, r, n) { var o = h; return function (i, a) { if (o === f) throw new Error("Generator is already running"); if (o === s) { if ("throw" === i) throw a; return { value: t, done: !0 }; } for (n.method = i, n.arg = a;;) { var c = n.delegate; if (c) { var u = maybeInvokeDelegate(c, n); if (u) { if (u === y) continue; return u; } } if ("next" === n.method) n.sent = n._sent = n.arg;else if ("throw" === n.method) { if (o === h) throw o = s, n.arg; n.dispatchException(n.arg); } else "return" === n.method && n.abrupt("return", n.arg); o = f; var p = tryCatch(e, r, n); if ("normal" === p.type) { if (o = n.done ? s : l, p.arg === y) continue; return { value: p.arg, done: n.done }; } "throw" === p.type && (o = s, n.method = "throw", n.arg = p.arg); } }; } function maybeInvokeDelegate(e, r) { var n = r.method, o = e.iterator[n]; if (o === t) return r.delegate = null, "throw" === n && e.iterator["return"] && (r.method = "return", r.arg = t, maybeInvokeDelegate(e, r), "throw" === r.method) || "return" !== n && (r.method = "throw", r.arg = new TypeError("The iterator does not provide a '" + n + "' method")), y; var i = tryCatch(o, e.iterator, r.arg); if ("throw" === i.type) return r.method = "throw", r.arg = i.arg, r.delegate = null, y; var a = i.arg; return a ? a.done ? (r[e.resultName] = a.value, r.next = e.nextLoc, "return" !== r.method && (r.method = "next", r.arg = t), r.delegate = null, y) : a : (r.method = "throw", r.arg = new TypeError("iterator result is not an object"), r.delegate = null, y); } function pushTryEntry(t) { var e = { tryLoc: t[0] }; 1 in t && (e.catchLoc = t[1]), 2 in t && (e.finallyLoc = t[2], e.afterLoc = t[3]), this.tryEntries.push(e); } function resetTryEntry(t) { var e = t.completion || {}; e.type = "normal", delete e.arg, t.completion = e; } function Context(t) { this.tryEntries = [{ tryLoc: "root" }], t.forEach(pushTryEntry, this), this.reset(!0); } function values(e) { if (e || "" === e) { var r = e[a]; if (r) return r.call(e); if ("function" == typeof e.next) return e; if (!isNaN(e.length)) { var o = -1, i = function next() { for (; ++o < e.length;) if (n.call(e, o)) return next.value = e[o], next.done = !1, next; return next.value = t, next.done = !0, next; }; return i.next = i; } } throw new TypeError(_typeof(e) + " is not iterable"); } return GeneratorFunction.prototype = GeneratorFunctionPrototype, o(g, "constructor", { value: GeneratorFunctionPrototype, configurable: !0 }), o(GeneratorFunctionPrototype, "constructor", { value: GeneratorFunction, configurable: !0 }), GeneratorFunction.displayName = define(GeneratorFunctionPrototype, u, "GeneratorFunction"), e.isGeneratorFunction = function (t) { var e = "function" == typeof t && t.constructor; return !!e && (e === GeneratorFunction || "GeneratorFunction" === (e.displayName || e.name)); }, e.mark = function (t) { return Object.setPrototypeOf ? Object.setPrototypeOf(t, GeneratorFunctionPrototype) : (t.__proto__ = GeneratorFunctionPrototype, define(t, u, "GeneratorFunction")), t.prototype = Object.create(g), t; }, e.awrap = function (t) { return { __await: t }; }, defineIteratorMethods(AsyncIterator.prototype), define(AsyncIterator.prototype, c, function () { return this; }), e.AsyncIterator = AsyncIterator, e.async = function (t, r, n, o, i) { void 0 === i && (i = Promise); var a = new AsyncIterator(wrap(t, r, n, o), i); return e.isGeneratorFunction(r) ? a : a.next().then(function (t) { return t.done ? t.value : a.next(); }); }, defineIteratorMethods(g), define(g, u, "Generator"), define(g, a, function () { return this; }), define(g, "toString", function () { return "[object Generator]"; }), e.keys = function (t) { var e = Object(t), r = []; for (var n in e) r.push(n); return r.reverse(), function next() { for (; r.length;) { var t = r.pop(); if (t in e) return next.value = t, next.done = !1, next; } return next.done = !0, next; }; }, e.values = values, Context.prototype = { constructor: Context, reset: function reset(e) { if (this.prev = 0, this.next = 0, this.sent = this._sent = t, this.done = !1, this.delegate = null, this.method = "next", this.arg = t, this.tryEntries.forEach(resetTryEntry), !e) for (var r in this) "t" === r.charAt(0) && n.call(this, r) && !isNaN(+r.slice(1)) && (this[r] = t); }, stop: function stop() { this.done = !0; var t = this.tryEntries[0].completion; if ("throw" === t.type) throw t.arg; return this.rval; }, dispatchException: function dispatchException(e) { if (this.done) throw e; var r = this; function handle(n, o) { return a.type = "throw", a.arg = e, r.next = n, o && (r.method = "next", r.arg = t), !!o; } for (var o = this.tryEntries.length - 1; o >= 0; --o) { var i = this.tryEntries[o], a = i.completion; if ("root" === i.tryLoc) return handle("end"); if (i.tryLoc <= this.prev) { var c = n.call(i, "catchLoc"), u = n.call(i, "finallyLoc"); if (c && u) { if (this.prev < i.catchLoc) return handle(i.catchLoc, !0); if (this.prev < i.finallyLoc) return handle(i.finallyLoc); } else if (c) { if (this.prev < i.catchLoc) return handle(i.catchLoc, !0); } else { if (!u) throw new Error("try statement without catch or finally"); if (this.prev < i.finallyLoc) return handle(i.finallyLoc); } } } }, abrupt: function abrupt(t, e) { for (var r = this.tryEntries.length - 1; r >= 0; --r) { var o = this.tryEntries[r]; if (o.tryLoc <= this.prev && n.call(o, "finallyLoc") && this.prev < o.finallyLoc) { var i = o; break; } } i && ("break" === t || "continue" === t) && i.tryLoc <= e && e <= i.finallyLoc && (i = null); var a = i ? i.completion : {}; return a.type = t, a.arg = e, i ? (this.method = "next", this.next = i.finallyLoc, y) : this.complete(a); }, complete: function complete(t, e) { if ("throw" === t.type) throw t.arg; return "break" === t.type || "continue" === t.type ? this.next = t.arg : "return" === t.type ? (this.rval = this.arg = t.arg, this.method = "return", this.next = "end") : "normal" === t.type && e && (this.next = e), y; }, finish: function finish(t) { for (var e = this.tryEntries.length - 1; e >= 0; --e) { var r = this.tryEntries[e]; if (r.finallyLoc === t) return this.complete(r.completion, r.afterLoc), resetTryEntry(r), y; } }, "catch": function _catch(t) { for (var e = this.tryEntries.length - 1; e >= 0; --e) { var r = this.tryEntries[e]; if (r.tryLoc === t) { var n = r.completion; if ("throw" === n.type) { var o = n.arg; resetTryEntry(r); } return o; } } throw new Error("illegal catch attempt"); }, delegateYield: function delegateYield(e, r, n) { return this.delegate = { iterator: values(e), resultName: r, nextLoc: n }, "next" === this.method && (this.arg = t), y; } }, e; }
61
- function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = (0, _getPrototypeOf2["default"])(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = (0, _getPrototypeOf2["default"])(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return (0, _possibleConstructorReturn2["default"])(this, result); }; }
62
- function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }
61
+ function _callSuper(t, o, e) { return o = (0, _getPrototypeOf2["default"])(o), (0, _possibleConstructorReturn2["default"])(t, _isNativeReflectConstruct() ? Reflect.construct(o, e || [], (0, _getPrototypeOf2["default"])(t).constructor) : o.apply(t, e)); }
62
+ function _isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); }
63
63
  var AgoraRteEngine = exports.AgoraRteEngine = /*#__PURE__*/function (_AGEventEmitter) {
64
64
  (0, _inherits2["default"])(AgoraRteEngine, _AGEventEmitter);
65
- var _super = _createSuper(AgoraRteEngine);
66
65
  function AgoraRteEngine(config) {
67
66
  var _this;
68
67
  (0, _classCallCheck2["default"])(this, AgoraRteEngine);
69
- _this = _super.call(this);
68
+ _this = _callSuper(this, AgoraRteEngine);
70
69
  // there will be only 1 rte engine exist at same time
71
70
  // so it's safe to overwrite the config directly into global shared variable
72
71
  _this._mediaControl = void 0;
@@ -123,14 +122,19 @@ var AgoraRteEngine = exports.AgoraRteEngine = /*#__PURE__*/function (_AGEventEmi
123
122
  'x-agora-uid': userId,
124
123
  Authorization: "agora token=\"".concat(rtmToken, "\"")
125
124
  };
126
- _context.next = 9;
125
+ if (_configs.AgoraRteEngineConfig.rtmLogUploadEnabled) {
126
+ _logger.Logger.info('rtm sdk log upload enabled');
127
+ } else {
128
+ _logger.Logger.info('rtm sdk log upload disabled');
129
+ }
130
+ _context.next = 10;
127
131
  return this._rtmManager.login(rtmToken, userId, {
128
132
  uploadLog: _configs.AgoraRteEngineConfig.rtmLogUploadEnabled,
129
133
  enableCloudProxy: _configs.AgoraRteEngineConfig.shared.rtmCloudProxyEnabled
130
134
  });
131
- case 9:
132
- return _context.abrupt("return", _context.sent);
133
135
  case 10:
136
+ return _context.abrupt("return", _context.sent);
137
+ case 11:
134
138
  case "end":
135
139
  return _context.stop();
136
140
  }
@@ -33,9 +33,9 @@ require("core-js/modules/es.regexp.exec.js");
33
33
  require("core-js/modules/es.string.split.js");
34
34
  require("core-js/modules/es.array.concat.js");
35
35
  require("core-js/modules/es.string.replace.js");
36
- var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits"));
37
36
  var _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime/helpers/possibleConstructorReturn"));
38
37
  var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime/helpers/getPrototypeOf"));
38
+ var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits"));
39
39
  var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));
40
40
  var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
41
41
  var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
@@ -43,8 +43,8 @@ var _uaParserJs = _interopRequireDefault(require("ua-parser-js"));
43
43
  var _configs = require("../../configs");
44
44
  var _axios = _interopRequireDefault(require("axios"));
45
45
  var _lodash = require("lodash");
46
- function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = (0, _getPrototypeOf2["default"])(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = (0, _getPrototypeOf2["default"])(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return (0, _possibleConstructorReturn2["default"])(this, result); }; }
47
- function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }
46
+ function _callSuper(t, o, e) { return o = (0, _getPrototypeOf2["default"])(o), (0, _possibleConstructorReturn2["default"])(t, _isNativeReflectConstruct() ? Reflect.construct(o, e || [], (0, _getPrototypeOf2["default"])(t).constructor) : o.apply(t, e)); }
47
+ function _isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); }
48
48
  function _regeneratorRuntime() { "use strict"; /*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/facebook/regenerator/blob/main/LICENSE */ _regeneratorRuntime = function _regeneratorRuntime() { return e; }; var t, e = {}, r = Object.prototype, n = r.hasOwnProperty, o = Object.defineProperty || function (t, e, r) { t[e] = r.value; }, i = "function" == typeof Symbol ? Symbol : {}, a = i.iterator || "@@iterator", c = i.asyncIterator || "@@asyncIterator", u = i.toStringTag || "@@toStringTag"; function define(t, e, r) { return Object.defineProperty(t, e, { value: r, enumerable: !0, configurable: !0, writable: !0 }), t[e]; } try { define({}, ""); } catch (t) { define = function define(t, e, r) { return t[e] = r; }; } function wrap(t, e, r, n) { var i = e && e.prototype instanceof Generator ? e : Generator, a = Object.create(i.prototype), c = new Context(n || []); return o(a, "_invoke", { value: makeInvokeMethod(t, r, c) }), a; } function tryCatch(t, e, r) { try { return { type: "normal", arg: t.call(e, r) }; } catch (t) { return { type: "throw", arg: t }; } } e.wrap = wrap; var h = "suspendedStart", l = "suspendedYield", f = "executing", s = "completed", y = {}; function Generator() {} function GeneratorFunction() {} function GeneratorFunctionPrototype() {} var p = {}; define(p, a, function () { return this; }); var d = Object.getPrototypeOf, v = d && d(d(values([]))); v && v !== r && n.call(v, a) && (p = v); var g = GeneratorFunctionPrototype.prototype = Generator.prototype = Object.create(p); function defineIteratorMethods(t) { ["next", "throw", "return"].forEach(function (e) { define(t, e, function (t) { return this._invoke(e, t); }); }); } function AsyncIterator(t, e) { function invoke(r, o, i, a) { var c = tryCatch(t[r], t, o); if ("throw" !== c.type) { var u = c.arg, h = u.value; return h && "object" == _typeof(h) && n.call(h, "__await") ? e.resolve(h.__await).then(function (t) { invoke("next", t, i, a); }, function (t) { invoke("throw", t, i, a); }) : e.resolve(h).then(function (t) { u.value = t, i(u); }, function (t) { return invoke("throw", t, i, a); }); } a(c.arg); } var r; o(this, "_invoke", { value: function value(t, n) { function callInvokeWithMethodAndArg() { return new e(function (e, r) { invoke(t, n, e, r); }); } return r = r ? r.then(callInvokeWithMethodAndArg, callInvokeWithMethodAndArg) : callInvokeWithMethodAndArg(); } }); } function makeInvokeMethod(e, r, n) { var o = h; return function (i, a) { if (o === f) throw new Error("Generator is already running"); if (o === s) { if ("throw" === i) throw a; return { value: t, done: !0 }; } for (n.method = i, n.arg = a;;) { var c = n.delegate; if (c) { var u = maybeInvokeDelegate(c, n); if (u) { if (u === y) continue; return u; } } if ("next" === n.method) n.sent = n._sent = n.arg;else if ("throw" === n.method) { if (o === h) throw o = s, n.arg; n.dispatchException(n.arg); } else "return" === n.method && n.abrupt("return", n.arg); o = f; var p = tryCatch(e, r, n); if ("normal" === p.type) { if (o = n.done ? s : l, p.arg === y) continue; return { value: p.arg, done: n.done }; } "throw" === p.type && (o = s, n.method = "throw", n.arg = p.arg); } }; } function maybeInvokeDelegate(e, r) { var n = r.method, o = e.iterator[n]; if (o === t) return r.delegate = null, "throw" === n && e.iterator["return"] && (r.method = "return", r.arg = t, maybeInvokeDelegate(e, r), "throw" === r.method) || "return" !== n && (r.method = "throw", r.arg = new TypeError("The iterator does not provide a '" + n + "' method")), y; var i = tryCatch(o, e.iterator, r.arg); if ("throw" === i.type) return r.method = "throw", r.arg = i.arg, r.delegate = null, y; var a = i.arg; return a ? a.done ? (r[e.resultName] = a.value, r.next = e.nextLoc, "return" !== r.method && (r.method = "next", r.arg = t), r.delegate = null, y) : a : (r.method = "throw", r.arg = new TypeError("iterator result is not an object"), r.delegate = null, y); } function pushTryEntry(t) { var e = { tryLoc: t[0] }; 1 in t && (e.catchLoc = t[1]), 2 in t && (e.finallyLoc = t[2], e.afterLoc = t[3]), this.tryEntries.push(e); } function resetTryEntry(t) { var e = t.completion || {}; e.type = "normal", delete e.arg, t.completion = e; } function Context(t) { this.tryEntries = [{ tryLoc: "root" }], t.forEach(pushTryEntry, this), this.reset(!0); } function values(e) { if (e || "" === e) { var r = e[a]; if (r) return r.call(e); if ("function" == typeof e.next) return e; if (!isNaN(e.length)) { var o = -1, i = function next() { for (; ++o < e.length;) if (n.call(e, o)) return next.value = e[o], next.done = !1, next; return next.value = t, next.done = !0, next; }; return i.next = i; } } throw new TypeError(_typeof(e) + " is not iterable"); } return GeneratorFunction.prototype = GeneratorFunctionPrototype, o(g, "constructor", { value: GeneratorFunctionPrototype, configurable: !0 }), o(GeneratorFunctionPrototype, "constructor", { value: GeneratorFunction, configurable: !0 }), GeneratorFunction.displayName = define(GeneratorFunctionPrototype, u, "GeneratorFunction"), e.isGeneratorFunction = function (t) { var e = "function" == typeof t && t.constructor; return !!e && (e === GeneratorFunction || "GeneratorFunction" === (e.displayName || e.name)); }, e.mark = function (t) { return Object.setPrototypeOf ? Object.setPrototypeOf(t, GeneratorFunctionPrototype) : (t.__proto__ = GeneratorFunctionPrototype, define(t, u, "GeneratorFunction")), t.prototype = Object.create(g), t; }, e.awrap = function (t) { return { __await: t }; }, defineIteratorMethods(AsyncIterator.prototype), define(AsyncIterator.prototype, c, function () { return this; }), e.AsyncIterator = AsyncIterator, e.async = function (t, r, n, o, i) { void 0 === i && (i = Promise); var a = new AsyncIterator(wrap(t, r, n, o), i); return e.isGeneratorFunction(r) ? a : a.next().then(function (t) { return t.done ? t.value : a.next(); }); }, defineIteratorMethods(g), define(g, u, "Generator"), define(g, a, function () { return this; }), define(g, "toString", function () { return "[object Generator]"; }), e.keys = function (t) { var e = Object(t), r = []; for (var n in e) r.push(n); return r.reverse(), function next() { for (; r.length;) { var t = r.pop(); if (t in e) return next.value = t, next.done = !1, next; } return next.done = !0, next; }; }, e.values = values, Context.prototype = { constructor: Context, reset: function reset(e) { if (this.prev = 0, this.next = 0, this.sent = this._sent = t, this.done = !1, this.delegate = null, this.method = "next", this.arg = t, this.tryEntries.forEach(resetTryEntry), !e) for (var r in this) "t" === r.charAt(0) && n.call(this, r) && !isNaN(+r.slice(1)) && (this[r] = t); }, stop: function stop() { this.done = !0; var t = this.tryEntries[0].completion; if ("throw" === t.type) throw t.arg; return this.rval; }, dispatchException: function dispatchException(e) { if (this.done) throw e; var r = this; function handle(n, o) { return a.type = "throw", a.arg = e, r.next = n, o && (r.method = "next", r.arg = t), !!o; } for (var o = this.tryEntries.length - 1; o >= 0; --o) { var i = this.tryEntries[o], a = i.completion; if ("root" === i.tryLoc) return handle("end"); if (i.tryLoc <= this.prev) { var c = n.call(i, "catchLoc"), u = n.call(i, "finallyLoc"); if (c && u) { if (this.prev < i.catchLoc) return handle(i.catchLoc, !0); if (this.prev < i.finallyLoc) return handle(i.finallyLoc); } else if (c) { if (this.prev < i.catchLoc) return handle(i.catchLoc, !0); } else { if (!u) throw new Error("try statement without catch or finally"); if (this.prev < i.finallyLoc) return handle(i.finallyLoc); } } } }, abrupt: function abrupt(t, e) { for (var r = this.tryEntries.length - 1; r >= 0; --r) { var o = this.tryEntries[r]; if (o.tryLoc <= this.prev && n.call(o, "finallyLoc") && this.prev < o.finallyLoc) { var i = o; break; } } i && ("break" === t || "continue" === t) && i.tryLoc <= e && e <= i.finallyLoc && (i = null); var a = i ? i.completion : {}; return a.type = t, a.arg = e, i ? (this.method = "next", this.next = i.finallyLoc, y) : this.complete(a); }, complete: function complete(t, e) { if ("throw" === t.type) throw t.arg; return "break" === t.type || "continue" === t.type ? this.next = t.arg : "return" === t.type ? (this.rval = this.arg = t.arg, this.method = "return", this.next = "end") : "normal" === t.type && e && (this.next = e), y; }, finish: function finish(t) { for (var e = this.tryEntries.length - 1; e >= 0; --e) { var r = this.tryEntries[e]; if (r.finallyLoc === t) return this.complete(r.completion, r.afterLoc), resetTryEntry(r), y; } }, "catch": function _catch(t) { for (var e = this.tryEntries.length - 1; e >= 0; --e) { var r = this.tryEntries[e]; if (r.tryLoc === t) { var n = r.completion; if ("throw" === n.type) { var o = n.arg; resetTryEntry(r); } return o; } } throw new Error("illegal catch attempt"); }, delegateYield: function delegateYield(e, r, n) { return this.delegate = { iterator: values(e), resultName: r, nextLoc: n }, "next" === this.method && (this.arg = t), y; } }, e; }
49
49
  var AgoraLogUploadHandler = exports.AgoraLogUploadHandler = /*#__PURE__*/function () {
50
50
  function AgoraLogUploadHandler() {
@@ -217,11 +217,10 @@ var AgoraLogUploadHandler = exports.AgoraLogUploadHandler = /*#__PURE__*/functio
217
217
  }();
218
218
  var AgoraWebLogUploadHandler = exports.AgoraWebLogUploadHandler = /*#__PURE__*/function (_AgoraLogUploadHandle) {
219
219
  (0, _inherits2["default"])(AgoraWebLogUploadHandler, _AgoraLogUploadHandle);
220
- var _super = _createSuper(AgoraWebLogUploadHandler);
221
220
  function AgoraWebLogUploadHandler() {
222
221
  var _this;
223
222
  (0, _classCallCheck2["default"])(this, AgoraWebLogUploadHandler);
224
- _this = _super.call(this);
223
+ _this = _callSuper(this, AgoraWebLogUploadHandler);
225
224
  _this._platform = 'web';
226
225
  return _this;
227
226
  }
@@ -229,11 +228,10 @@ var AgoraWebLogUploadHandler = exports.AgoraWebLogUploadHandler = /*#__PURE__*/f
229
228
  }(AgoraLogUploadHandler);
230
229
  var AgoraElectronLogUploadHandler = exports.AgoraElectronLogUploadHandler = /*#__PURE__*/function (_AgoraLogUploadHandle2) {
231
230
  (0, _inherits2["default"])(AgoraElectronLogUploadHandler, _AgoraLogUploadHandle2);
232
- var _super2 = _createSuper(AgoraElectronLogUploadHandler);
233
231
  function AgoraElectronLogUploadHandler() {
234
232
  var _this2;
235
233
  (0, _classCallCheck2["default"])(this, AgoraElectronLogUploadHandler);
236
- _this2 = _super2.call(this);
234
+ _this2 = _callSuper(this, AgoraElectronLogUploadHandler);
237
235
  _this2._platform = 'electron';
238
236
  return _this2;
239
237
  }
@@ -0,0 +1,16 @@
1
+ import Dexie, { Table } from 'dexie';
2
+ declare type Timestamp = number;
3
+ export declare type LogSchema = {
4
+ id: number;
5
+ content: string;
6
+ label: string;
7
+ created_at: Timestamp;
8
+ timestamp: string;
9
+ };
10
+ export declare class LoggerDB extends Dexie {
11
+ logs: Table<LogSchema, number>;
12
+ constructor();
13
+ openDatabase(): void;
14
+ }
15
+ export declare const db: LoggerDB;
16
+ export {};
@@ -0,0 +1,44 @@
1
+ "use strict";
2
+
3
+ require("core-js/modules/es.reflect.construct.js");
4
+ require("core-js/modules/es.object.define-property.js");
5
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
6
+ Object.defineProperty(exports, "__esModule", {
7
+ value: true
8
+ });
9
+ exports.db = exports.LoggerDB = void 0;
10
+ var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
11
+ var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
12
+ var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits"));
13
+ var _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime/helpers/possibleConstructorReturn"));
14
+ var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime/helpers/getPrototypeOf"));
15
+ var _dexie = _interopRequireDefault(require("dexie"));
16
+ function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = (0, _getPrototypeOf2["default"])(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = (0, _getPrototypeOf2["default"])(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return (0, _possibleConstructorReturn2["default"])(this, result); }; }
17
+ function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }
18
+ var DATABASE_NAME = "AgoraLogger";
19
+ var TABLE_NAME = "logs";
20
+ var LoggerDB = /*#__PURE__*/function (_Dexie) {
21
+ (0, _inherits2["default"])(LoggerDB, _Dexie);
22
+ var _super = _createSuper(LoggerDB);
23
+ function LoggerDB() {
24
+ var _this;
25
+ (0, _classCallCheck2["default"])(this, LoggerDB);
26
+ _this = _super.call(this, DATABASE_NAME);
27
+ _this.logs = void 0;
28
+ _this.openDatabase();
29
+ _this.logs = _this.table(TABLE_NAME);
30
+ return _this;
31
+ }
32
+ (0, _createClass2["default"])(LoggerDB, [{
33
+ key: "openDatabase",
34
+ value: function openDatabase() {
35
+ this.version(1).stores({
36
+ logs: '++id, content, label, created_at'
37
+ });
38
+ }
39
+ }]);
40
+ return LoggerDB;
41
+ }(_dexie["default"]);
42
+ exports.LoggerDB = LoggerDB;
43
+ var db = new LoggerDB();
44
+ exports.db = db;
@@ -0,0 +1,2 @@
1
+ export declare const serialize: (data: unknown) => string;
2
+ export declare const serializeArgs: (args: unknown[]) => string;
@@ -0,0 +1,56 @@
1
+ "use strict";
2
+
3
+ require("core-js/modules/es.object.define-property.js");
4
+ Object.defineProperty(exports, "__esModule", {
5
+ value: true
6
+ });
7
+ exports.serializeArgs = exports.serialize = void 0;
8
+ require("core-js/modules/es.function.name.js");
9
+ require("core-js/modules/es.array.find.js");
10
+ require("core-js/modules/es.regexp.exec.js");
11
+ require("core-js/modules/es.string.match.js");
12
+ require("core-js/modules/es.array.join.js");
13
+ require("core-js/modules/es.array.map.js");
14
+ var _utils = require("../utils/utils");
15
+ var serializers = [];
16
+ var fileSerializer = {
17
+ match: function match(obj) {
18
+ return obj instanceof File;
19
+ },
20
+ serialize: function serialize(file) {
21
+ return (0, _utils.jsonstring)({
22
+ filename: file.name,
23
+ size: file.size
24
+ });
25
+ }
26
+ };
27
+ var objectSerializer = {
28
+ match: function match(obj) {
29
+ return true;
30
+ },
31
+ serialize: function serialize(obj) {
32
+ return (0, _utils.jsonstring)(obj);
33
+ }
34
+ };
35
+ var addSerializer = function addSerializer(serializer) {
36
+ serializers.push(serializer);
37
+ };
38
+ var serialize = function serialize(data) {
39
+ if (typeof data === 'string') {
40
+ return data;
41
+ }
42
+ var serializer = serializers.find(function (serializer) {
43
+ return serializer.match(data);
44
+ });
45
+ if (serializer) {
46
+ return serializer.serialize(data);
47
+ }
48
+ return "".concat(data);
49
+ };
50
+ exports.serialize = serialize;
51
+ var serializeArgs = function serializeArgs(args) {
52
+ return args.map(serialize).join(' ');
53
+ };
54
+ exports.serializeArgs = serializeArgs;
55
+ addSerializer(fileSerializer);
56
+ addSerializer(objectSerializer);
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,128 @@
1
+ "use strict";
2
+
3
+ require("core-js/modules/es.object.define-property.js");
4
+ require("core-js/modules/es.symbol.js");
5
+ require("core-js/modules/es.symbol.description.js");
6
+ require("core-js/modules/es.object.to-string.js");
7
+ require("core-js/modules/es.symbol.iterator.js");
8
+ require("core-js/modules/es.array.iterator.js");
9
+ require("core-js/modules/es.string.iterator.js");
10
+ require("core-js/modules/web.dom-collections.iterator.js");
11
+ require("core-js/modules/es.symbol.async-iterator.js");
12
+ require("core-js/modules/es.symbol.to-string-tag.js");
13
+ require("core-js/modules/es.json.to-string-tag.js");
14
+ require("core-js/modules/es.math.to-string-tag.js");
15
+ require("core-js/modules/es.object.create.js");
16
+ require("core-js/modules/es.object.get-prototype-of.js");
17
+ require("core-js/modules/es.array.for-each.js");
18
+ require("core-js/modules/web.dom-collections.for-each.js");
19
+ require("core-js/modules/es.function.name.js");
20
+ require("core-js/modules/es.object.set-prototype-of.js");
21
+ require("core-js/modules/es.promise.js");
22
+ require("core-js/modules/es.array.slice.js");
23
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
24
+ var _typeof = require("@babel/runtime/helpers/typeof");
25
+ require("core-js/modules/es.date.to-string.js");
26
+ require("core-js/modules/es.array.reverse.js");
27
+ require("core-js/modules/es.array.concat.js");
28
+ require("core-js/modules/es.date.now.js");
29
+ var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));
30
+ var _debounce = _interopRequireDefault(require("lodash/debounce"));
31
+ var _db = require("./db");
32
+ var _mutex = require("./mutex");
33
+ function _regeneratorRuntime() { "use strict"; /*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/facebook/regenerator/blob/main/LICENSE */ _regeneratorRuntime = function _regeneratorRuntime() { return exports; }; var exports = {}, Op = Object.prototype, hasOwn = Op.hasOwnProperty, defineProperty = Object.defineProperty || function (obj, key, desc) { obj[key] = desc.value; }, $Symbol = "function" == typeof Symbol ? Symbol : {}, iteratorSymbol = $Symbol.iterator || "@@iterator", asyncIteratorSymbol = $Symbol.asyncIterator || "@@asyncIterator", toStringTagSymbol = $Symbol.toStringTag || "@@toStringTag"; function define(obj, key, value) { return Object.defineProperty(obj, key, { value: value, enumerable: !0, configurable: !0, writable: !0 }), obj[key]; } try { define({}, ""); } catch (err) { define = function define(obj, key, value) { return obj[key] = value; }; } function wrap(innerFn, outerFn, self, tryLocsList) { var protoGenerator = outerFn && outerFn.prototype instanceof Generator ? outerFn : Generator, generator = Object.create(protoGenerator.prototype), context = new Context(tryLocsList || []); return defineProperty(generator, "_invoke", { value: makeInvokeMethod(innerFn, self, context) }), generator; } function tryCatch(fn, obj, arg) { try { return { type: "normal", arg: fn.call(obj, arg) }; } catch (err) { return { type: "throw", arg: err }; } } exports.wrap = wrap; var ContinueSentinel = {}; function Generator() {} function GeneratorFunction() {} function GeneratorFunctionPrototype() {} var IteratorPrototype = {}; define(IteratorPrototype, iteratorSymbol, function () { return this; }); var getProto = Object.getPrototypeOf, NativeIteratorPrototype = getProto && getProto(getProto(values([]))); NativeIteratorPrototype && NativeIteratorPrototype !== Op && hasOwn.call(NativeIteratorPrototype, iteratorSymbol) && (IteratorPrototype = NativeIteratorPrototype); var Gp = GeneratorFunctionPrototype.prototype = Generator.prototype = Object.create(IteratorPrototype); function defineIteratorMethods(prototype) { ["next", "throw", "return"].forEach(function (method) { define(prototype, method, function (arg) { return this._invoke(method, arg); }); }); } function AsyncIterator(generator, PromiseImpl) { function invoke(method, arg, resolve, reject) { var record = tryCatch(generator[method], generator, arg); if ("throw" !== record.type) { var result = record.arg, value = result.value; return value && "object" == _typeof(value) && hasOwn.call(value, "__await") ? PromiseImpl.resolve(value.__await).then(function (value) { invoke("next", value, resolve, reject); }, function (err) { invoke("throw", err, resolve, reject); }) : PromiseImpl.resolve(value).then(function (unwrapped) { result.value = unwrapped, resolve(result); }, function (error) { return invoke("throw", error, resolve, reject); }); } reject(record.arg); } var previousPromise; defineProperty(this, "_invoke", { value: function value(method, arg) { function callInvokeWithMethodAndArg() { return new PromiseImpl(function (resolve, reject) { invoke(method, arg, resolve, reject); }); } return previousPromise = previousPromise ? previousPromise.then(callInvokeWithMethodAndArg, callInvokeWithMethodAndArg) : callInvokeWithMethodAndArg(); } }); } function makeInvokeMethod(innerFn, self, context) { var state = "suspendedStart"; return function (method, arg) { if ("executing" === state) throw new Error("Generator is already running"); if ("completed" === state) { if ("throw" === method) throw arg; return doneResult(); } for (context.method = method, context.arg = arg;;) { var delegate = context.delegate; if (delegate) { var delegateResult = maybeInvokeDelegate(delegate, context); if (delegateResult) { if (delegateResult === ContinueSentinel) continue; return delegateResult; } } if ("next" === context.method) context.sent = context._sent = context.arg;else if ("throw" === context.method) { if ("suspendedStart" === state) throw state = "completed", context.arg; context.dispatchException(context.arg); } else "return" === context.method && context.abrupt("return", context.arg); state = "executing"; var record = tryCatch(innerFn, self, context); if ("normal" === record.type) { if (state = context.done ? "completed" : "suspendedYield", record.arg === ContinueSentinel) continue; return { value: record.arg, done: context.done }; } "throw" === record.type && (state = "completed", context.method = "throw", context.arg = record.arg); } }; } function maybeInvokeDelegate(delegate, context) { var methodName = context.method, method = delegate.iterator[methodName]; if (undefined === method) return context.delegate = null, "throw" === methodName && delegate.iterator["return"] && (context.method = "return", context.arg = undefined, maybeInvokeDelegate(delegate, context), "throw" === context.method) || "return" !== methodName && (context.method = "throw", context.arg = new TypeError("The iterator does not provide a '" + methodName + "' method")), ContinueSentinel; var record = tryCatch(method, delegate.iterator, context.arg); if ("throw" === record.type) return context.method = "throw", context.arg = record.arg, context.delegate = null, ContinueSentinel; var info = record.arg; return info ? info.done ? (context[delegate.resultName] = info.value, context.next = delegate.nextLoc, "return" !== context.method && (context.method = "next", context.arg = undefined), context.delegate = null, ContinueSentinel) : info : (context.method = "throw", context.arg = new TypeError("iterator result is not an object"), context.delegate = null, ContinueSentinel); } function pushTryEntry(locs) { var entry = { tryLoc: locs[0] }; 1 in locs && (entry.catchLoc = locs[1]), 2 in locs && (entry.finallyLoc = locs[2], entry.afterLoc = locs[3]), this.tryEntries.push(entry); } function resetTryEntry(entry) { var record = entry.completion || {}; record.type = "normal", delete record.arg, entry.completion = record; } function Context(tryLocsList) { this.tryEntries = [{ tryLoc: "root" }], tryLocsList.forEach(pushTryEntry, this), this.reset(!0); } function values(iterable) { if (iterable) { var iteratorMethod = iterable[iteratorSymbol]; if (iteratorMethod) return iteratorMethod.call(iterable); if ("function" == typeof iterable.next) return iterable; if (!isNaN(iterable.length)) { var i = -1, next = function next() { for (; ++i < iterable.length;) { if (hasOwn.call(iterable, i)) return next.value = iterable[i], next.done = !1, next; } return next.value = undefined, next.done = !0, next; }; return next.next = next; } } return { next: doneResult }; } function doneResult() { return { value: undefined, done: !0 }; } return GeneratorFunction.prototype = GeneratorFunctionPrototype, defineProperty(Gp, "constructor", { value: GeneratorFunctionPrototype, configurable: !0 }), defineProperty(GeneratorFunctionPrototype, "constructor", { value: GeneratorFunction, configurable: !0 }), GeneratorFunction.displayName = define(GeneratorFunctionPrototype, toStringTagSymbol, "GeneratorFunction"), exports.isGeneratorFunction = function (genFun) { var ctor = "function" == typeof genFun && genFun.constructor; return !!ctor && (ctor === GeneratorFunction || "GeneratorFunction" === (ctor.displayName || ctor.name)); }, exports.mark = function (genFun) { return Object.setPrototypeOf ? Object.setPrototypeOf(genFun, GeneratorFunctionPrototype) : (genFun.__proto__ = GeneratorFunctionPrototype, define(genFun, toStringTagSymbol, "GeneratorFunction")), genFun.prototype = Object.create(Gp), genFun; }, exports.awrap = function (arg) { return { __await: arg }; }, defineIteratorMethods(AsyncIterator.prototype), define(AsyncIterator.prototype, asyncIteratorSymbol, function () { return this; }), exports.AsyncIterator = AsyncIterator, exports.async = function (innerFn, outerFn, self, tryLocsList, PromiseImpl) { void 0 === PromiseImpl && (PromiseImpl = Promise); var iter = new AsyncIterator(wrap(innerFn, outerFn, self, tryLocsList), PromiseImpl); return exports.isGeneratorFunction(outerFn) ? iter : iter.next().then(function (result) { return result.done ? result.value : iter.next(); }); }, defineIteratorMethods(Gp), define(Gp, toStringTagSymbol, "Generator"), define(Gp, iteratorSymbol, function () { return this; }), define(Gp, "toString", function () { return "[object Generator]"; }), exports.keys = function (val) { var object = Object(val), keys = []; for (var key in object) { keys.push(key); } return keys.reverse(), function next() { for (; keys.length;) { var key = keys.pop(); if (key in object) return next.value = key, next.done = !1, next; } return next.done = !0, next; }; }, exports.values = values, Context.prototype = { constructor: Context, reset: function reset(skipTempReset) { if (this.prev = 0, this.next = 0, this.sent = this._sent = undefined, this.done = !1, this.delegate = null, this.method = "next", this.arg = undefined, this.tryEntries.forEach(resetTryEntry), !skipTempReset) for (var name in this) { "t" === name.charAt(0) && hasOwn.call(this, name) && !isNaN(+name.slice(1)) && (this[name] = undefined); } }, stop: function stop() { this.done = !0; var rootRecord = this.tryEntries[0].completion; if ("throw" === rootRecord.type) throw rootRecord.arg; return this.rval; }, dispatchException: function dispatchException(exception) { if (this.done) throw exception; var context = this; function handle(loc, caught) { return record.type = "throw", record.arg = exception, context.next = loc, caught && (context.method = "next", context.arg = undefined), !!caught; } for (var i = this.tryEntries.length - 1; i >= 0; --i) { var entry = this.tryEntries[i], record = entry.completion; if ("root" === entry.tryLoc) return handle("end"); if (entry.tryLoc <= this.prev) { var hasCatch = hasOwn.call(entry, "catchLoc"), hasFinally = hasOwn.call(entry, "finallyLoc"); if (hasCatch && hasFinally) { if (this.prev < entry.catchLoc) return handle(entry.catchLoc, !0); if (this.prev < entry.finallyLoc) return handle(entry.finallyLoc); } else if (hasCatch) { if (this.prev < entry.catchLoc) return handle(entry.catchLoc, !0); } else { if (!hasFinally) throw new Error("try statement without catch or finally"); if (this.prev < entry.finallyLoc) return handle(entry.finallyLoc); } } } }, abrupt: function abrupt(type, arg) { for (var i = this.tryEntries.length - 1; i >= 0; --i) { var entry = this.tryEntries[i]; if (entry.tryLoc <= this.prev && hasOwn.call(entry, "finallyLoc") && this.prev < entry.finallyLoc) { var finallyEntry = entry; break; } } finallyEntry && ("break" === type || "continue" === type) && finallyEntry.tryLoc <= arg && arg <= finallyEntry.finallyLoc && (finallyEntry = null); var record = finallyEntry ? finallyEntry.completion : {}; return record.type = type, record.arg = arg, finallyEntry ? (this.method = "next", this.next = finallyEntry.finallyLoc, ContinueSentinel) : this.complete(record); }, complete: function complete(record, afterLoc) { if ("throw" === record.type) throw record.arg; return "break" === record.type || "continue" === record.type ? this.next = record.arg : "return" === record.type ? (this.rval = this.arg = record.arg, this.method = "return", this.next = "end") : "normal" === record.type && afterLoc && (this.next = afterLoc), ContinueSentinel; }, finish: function finish(finallyLoc) { for (var i = this.tryEntries.length - 1; i >= 0; --i) { var entry = this.tryEntries[i]; if (entry.finallyLoc === finallyLoc) return this.complete(entry.completion, entry.afterLoc), resetTryEntry(entry), ContinueSentinel; } }, "catch": function _catch(tryLoc) { for (var i = this.tryEntries.length - 1; i >= 0; --i) { var entry = this.tryEntries[i]; if (entry.tryLoc === tryLoc) { var record = entry.completion; if ("throw" === record.type) { var thrown = record.arg; resetTryEntry(entry); } return thrown; } } throw new Error("illegal catch attempt"); }, delegateYield: function delegateYield(iterable, resultName, nextLoc) { return this.delegate = { iterator: values(iterable), resultName: resultName, nextLoc: nextLoc }, "next" === this.method && (this.arg = undefined), ContinueSentinel; } }, exports; }
34
+ console.log("[worker] log worker initialzied");
35
+ var ctx = self;
36
+ var mutex = new _mutex.Mutex();
37
+ var maxRecords = 50000;
38
+ var logs = [];
39
+ var log = function log() {
40
+ var _console;
41
+ (_console = console).debug.apply(_console, arguments);
42
+ };
43
+ var debouncedWriting = (0, _debounce["default"])(function () {
44
+ mutex.dispatch( /*#__PURE__*/(0, _asyncToGenerator2["default"])( /*#__PURE__*/_regeneratorRuntime().mark(function _callee() {
45
+ var time1, logscopy, count, exceedNo, time2;
46
+ return _regeneratorRuntime().wrap(function _callee$(_context) {
47
+ while (1) {
48
+ switch (_context.prev = _context.next) {
49
+ case 0:
50
+ time1 = new Date().getTime();
51
+ logscopy = logs;
52
+ logs = [];
53
+ _context.prev = 3;
54
+ _context.next = 6;
55
+ return _db.db.logs.count();
56
+ case 6:
57
+ count = _context.sent;
58
+ exceedNo = logscopy.length + count - maxRecords;
59
+ if (!(exceedNo > 0)) {
60
+ _context.next = 12;
61
+ break;
62
+ }
63
+ _context.next = 11;
64
+ return _db.db.logs.orderBy(':id').reverse().limit(exceedNo)["delete"]();
65
+ case 11:
66
+ console.debug("[worker] clear ".concat(exceedNo, " records"));
67
+ case 12:
68
+ _context.next = 17;
69
+ break;
70
+ case 14:
71
+ _context.prev = 14;
72
+ _context.t0 = _context["catch"](3);
73
+ console.error("[worker] clear db failed");
74
+ case 17:
75
+ _context.prev = 17;
76
+ _context.next = 20;
77
+ return _db.db.logs.bulkPut(logscopy);
78
+ case 20:
79
+ _context.next = 25;
80
+ break;
81
+ case 22:
82
+ _context.prev = 22;
83
+ _context.t1 = _context["catch"](17);
84
+ console.error("[worker] bulkPut ".concat(logscopy.length, " failed"));
85
+ case 25:
86
+ time2 = new Date().getTime();
87
+ log("[worker] done writing ".concat(logscopy.length, " records in ").concat(time2 - time1, "ms"));
88
+ case 27:
89
+ case "end":
90
+ return _context.stop();
91
+ }
92
+ }
93
+ }, _callee, null, [[3, 14], [17, 22]]);
94
+ })));
95
+ }, 2 * 1000, {
96
+ maxWait: 30 * 1000
97
+ });
98
+ ctx.onmessage = /*#__PURE__*/function () {
99
+ var _ref2 = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regeneratorRuntime().mark(function _callee2(evt) {
100
+ var now, _evt$data$data, label, message;
101
+ return _regeneratorRuntime().wrap(function _callee2$(_context2) {
102
+ while (1) {
103
+ switch (_context2.prev = _context2.next) {
104
+ case 0:
105
+ if (evt.data && evt.data.type === 'log') {
106
+ now = new Date();
107
+ _evt$data$data = evt.data.data, label = _evt$data$data.label, message = _evt$data$data.message;
108
+ logs.push({
109
+ label: label,
110
+ content: message,
111
+ created_at: +Date.now(),
112
+ timestamp: "".concat(now)
113
+ });
114
+ debouncedWriting();
115
+ } else if (evt.data && evt.data.type === 'setting') {
116
+ maxRecords = evt.data.data.maxRecords || 50000;
117
+ }
118
+ case 1:
119
+ case "end":
120
+ return _context2.stop();
121
+ }
122
+ }
123
+ }, _callee2);
124
+ }));
125
+ return function (_x) {
126
+ return _ref2.apply(this, arguments);
127
+ };
128
+ }();
@@ -0,0 +1,5 @@
1
+ export declare class Mutex {
2
+ private mutex;
3
+ lock(): PromiseLike<() => void>;
4
+ dispatch<T>(fn: (() => T) | (() => PromiseLike<T>)): Promise<T>;
5
+ }
@@ -0,0 +1,87 @@
1
+ "use strict";
2
+
3
+ require("core-js/modules/es.object.define-property.js");
4
+ require("core-js/modules/es.symbol.js");
5
+ require("core-js/modules/es.symbol.description.js");
6
+ require("core-js/modules/es.symbol.iterator.js");
7
+ require("core-js/modules/es.array.iterator.js");
8
+ require("core-js/modules/es.string.iterator.js");
9
+ require("core-js/modules/web.dom-collections.iterator.js");
10
+ require("core-js/modules/es.symbol.async-iterator.js");
11
+ require("core-js/modules/es.symbol.to-string-tag.js");
12
+ require("core-js/modules/es.json.to-string-tag.js");
13
+ require("core-js/modules/es.math.to-string-tag.js");
14
+ require("core-js/modules/es.object.create.js");
15
+ require("core-js/modules/es.object.get-prototype-of.js");
16
+ require("core-js/modules/es.array.for-each.js");
17
+ require("core-js/modules/web.dom-collections.for-each.js");
18
+ require("core-js/modules/es.function.name.js");
19
+ require("core-js/modules/es.object.set-prototype-of.js");
20
+ require("core-js/modules/es.array.reverse.js");
21
+ require("core-js/modules/es.array.slice.js");
22
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
23
+ var _typeof = require("@babel/runtime/helpers/typeof");
24
+ Object.defineProperty(exports, "__esModule", {
25
+ value: true
26
+ });
27
+ exports.Mutex = void 0;
28
+ require("core-js/modules/es.object.to-string.js");
29
+ require("core-js/modules/es.promise.js");
30
+ var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));
31
+ var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
32
+ var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
33
+ function _regeneratorRuntime() { "use strict"; /*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/facebook/regenerator/blob/main/LICENSE */ _regeneratorRuntime = function _regeneratorRuntime() { return exports; }; var exports = {}, Op = Object.prototype, hasOwn = Op.hasOwnProperty, defineProperty = Object.defineProperty || function (obj, key, desc) { obj[key] = desc.value; }, $Symbol = "function" == typeof Symbol ? Symbol : {}, iteratorSymbol = $Symbol.iterator || "@@iterator", asyncIteratorSymbol = $Symbol.asyncIterator || "@@asyncIterator", toStringTagSymbol = $Symbol.toStringTag || "@@toStringTag"; function define(obj, key, value) { return Object.defineProperty(obj, key, { value: value, enumerable: !0, configurable: !0, writable: !0 }), obj[key]; } try { define({}, ""); } catch (err) { define = function define(obj, key, value) { return obj[key] = value; }; } function wrap(innerFn, outerFn, self, tryLocsList) { var protoGenerator = outerFn && outerFn.prototype instanceof Generator ? outerFn : Generator, generator = Object.create(protoGenerator.prototype), context = new Context(tryLocsList || []); return defineProperty(generator, "_invoke", { value: makeInvokeMethod(innerFn, self, context) }), generator; } function tryCatch(fn, obj, arg) { try { return { type: "normal", arg: fn.call(obj, arg) }; } catch (err) { return { type: "throw", arg: err }; } } exports.wrap = wrap; var ContinueSentinel = {}; function Generator() {} function GeneratorFunction() {} function GeneratorFunctionPrototype() {} var IteratorPrototype = {}; define(IteratorPrototype, iteratorSymbol, function () { return this; }); var getProto = Object.getPrototypeOf, NativeIteratorPrototype = getProto && getProto(getProto(values([]))); NativeIteratorPrototype && NativeIteratorPrototype !== Op && hasOwn.call(NativeIteratorPrototype, iteratorSymbol) && (IteratorPrototype = NativeIteratorPrototype); var Gp = GeneratorFunctionPrototype.prototype = Generator.prototype = Object.create(IteratorPrototype); function defineIteratorMethods(prototype) { ["next", "throw", "return"].forEach(function (method) { define(prototype, method, function (arg) { return this._invoke(method, arg); }); }); } function AsyncIterator(generator, PromiseImpl) { function invoke(method, arg, resolve, reject) { var record = tryCatch(generator[method], generator, arg); if ("throw" !== record.type) { var result = record.arg, value = result.value; return value && "object" == _typeof(value) && hasOwn.call(value, "__await") ? PromiseImpl.resolve(value.__await).then(function (value) { invoke("next", value, resolve, reject); }, function (err) { invoke("throw", err, resolve, reject); }) : PromiseImpl.resolve(value).then(function (unwrapped) { result.value = unwrapped, resolve(result); }, function (error) { return invoke("throw", error, resolve, reject); }); } reject(record.arg); } var previousPromise; defineProperty(this, "_invoke", { value: function value(method, arg) { function callInvokeWithMethodAndArg() { return new PromiseImpl(function (resolve, reject) { invoke(method, arg, resolve, reject); }); } return previousPromise = previousPromise ? previousPromise.then(callInvokeWithMethodAndArg, callInvokeWithMethodAndArg) : callInvokeWithMethodAndArg(); } }); } function makeInvokeMethod(innerFn, self, context) { var state = "suspendedStart"; return function (method, arg) { if ("executing" === state) throw new Error("Generator is already running"); if ("completed" === state) { if ("throw" === method) throw arg; return doneResult(); } for (context.method = method, context.arg = arg;;) { var delegate = context.delegate; if (delegate) { var delegateResult = maybeInvokeDelegate(delegate, context); if (delegateResult) { if (delegateResult === ContinueSentinel) continue; return delegateResult; } } if ("next" === context.method) context.sent = context._sent = context.arg;else if ("throw" === context.method) { if ("suspendedStart" === state) throw state = "completed", context.arg; context.dispatchException(context.arg); } else "return" === context.method && context.abrupt("return", context.arg); state = "executing"; var record = tryCatch(innerFn, self, context); if ("normal" === record.type) { if (state = context.done ? "completed" : "suspendedYield", record.arg === ContinueSentinel) continue; return { value: record.arg, done: context.done }; } "throw" === record.type && (state = "completed", context.method = "throw", context.arg = record.arg); } }; } function maybeInvokeDelegate(delegate, context) { var methodName = context.method, method = delegate.iterator[methodName]; if (undefined === method) return context.delegate = null, "throw" === methodName && delegate.iterator["return"] && (context.method = "return", context.arg = undefined, maybeInvokeDelegate(delegate, context), "throw" === context.method) || "return" !== methodName && (context.method = "throw", context.arg = new TypeError("The iterator does not provide a '" + methodName + "' method")), ContinueSentinel; var record = tryCatch(method, delegate.iterator, context.arg); if ("throw" === record.type) return context.method = "throw", context.arg = record.arg, context.delegate = null, ContinueSentinel; var info = record.arg; return info ? info.done ? (context[delegate.resultName] = info.value, context.next = delegate.nextLoc, "return" !== context.method && (context.method = "next", context.arg = undefined), context.delegate = null, ContinueSentinel) : info : (context.method = "throw", context.arg = new TypeError("iterator result is not an object"), context.delegate = null, ContinueSentinel); } function pushTryEntry(locs) { var entry = { tryLoc: locs[0] }; 1 in locs && (entry.catchLoc = locs[1]), 2 in locs && (entry.finallyLoc = locs[2], entry.afterLoc = locs[3]), this.tryEntries.push(entry); } function resetTryEntry(entry) { var record = entry.completion || {}; record.type = "normal", delete record.arg, entry.completion = record; } function Context(tryLocsList) { this.tryEntries = [{ tryLoc: "root" }], tryLocsList.forEach(pushTryEntry, this), this.reset(!0); } function values(iterable) { if (iterable) { var iteratorMethod = iterable[iteratorSymbol]; if (iteratorMethod) return iteratorMethod.call(iterable); if ("function" == typeof iterable.next) return iterable; if (!isNaN(iterable.length)) { var i = -1, next = function next() { for (; ++i < iterable.length;) { if (hasOwn.call(iterable, i)) return next.value = iterable[i], next.done = !1, next; } return next.value = undefined, next.done = !0, next; }; return next.next = next; } } return { next: doneResult }; } function doneResult() { return { value: undefined, done: !0 }; } return GeneratorFunction.prototype = GeneratorFunctionPrototype, defineProperty(Gp, "constructor", { value: GeneratorFunctionPrototype, configurable: !0 }), defineProperty(GeneratorFunctionPrototype, "constructor", { value: GeneratorFunction, configurable: !0 }), GeneratorFunction.displayName = define(GeneratorFunctionPrototype, toStringTagSymbol, "GeneratorFunction"), exports.isGeneratorFunction = function (genFun) { var ctor = "function" == typeof genFun && genFun.constructor; return !!ctor && (ctor === GeneratorFunction || "GeneratorFunction" === (ctor.displayName || ctor.name)); }, exports.mark = function (genFun) { return Object.setPrototypeOf ? Object.setPrototypeOf(genFun, GeneratorFunctionPrototype) : (genFun.__proto__ = GeneratorFunctionPrototype, define(genFun, toStringTagSymbol, "GeneratorFunction")), genFun.prototype = Object.create(Gp), genFun; }, exports.awrap = function (arg) { return { __await: arg }; }, defineIteratorMethods(AsyncIterator.prototype), define(AsyncIterator.prototype, asyncIteratorSymbol, function () { return this; }), exports.AsyncIterator = AsyncIterator, exports.async = function (innerFn, outerFn, self, tryLocsList, PromiseImpl) { void 0 === PromiseImpl && (PromiseImpl = Promise); var iter = new AsyncIterator(wrap(innerFn, outerFn, self, tryLocsList), PromiseImpl); return exports.isGeneratorFunction(outerFn) ? iter : iter.next().then(function (result) { return result.done ? result.value : iter.next(); }); }, defineIteratorMethods(Gp), define(Gp, toStringTagSymbol, "Generator"), define(Gp, iteratorSymbol, function () { return this; }), define(Gp, "toString", function () { return "[object Generator]"; }), exports.keys = function (val) { var object = Object(val), keys = []; for (var key in object) { keys.push(key); } return keys.reverse(), function next() { for (; keys.length;) { var key = keys.pop(); if (key in object) return next.value = key, next.done = !1, next; } return next.done = !0, next; }; }, exports.values = values, Context.prototype = { constructor: Context, reset: function reset(skipTempReset) { if (this.prev = 0, this.next = 0, this.sent = this._sent = undefined, this.done = !1, this.delegate = null, this.method = "next", this.arg = undefined, this.tryEntries.forEach(resetTryEntry), !skipTempReset) for (var name in this) { "t" === name.charAt(0) && hasOwn.call(this, name) && !isNaN(+name.slice(1)) && (this[name] = undefined); } }, stop: function stop() { this.done = !0; var rootRecord = this.tryEntries[0].completion; if ("throw" === rootRecord.type) throw rootRecord.arg; return this.rval; }, dispatchException: function dispatchException(exception) { if (this.done) throw exception; var context = this; function handle(loc, caught) { return record.type = "throw", record.arg = exception, context.next = loc, caught && (context.method = "next", context.arg = undefined), !!caught; } for (var i = this.tryEntries.length - 1; i >= 0; --i) { var entry = this.tryEntries[i], record = entry.completion; if ("root" === entry.tryLoc) return handle("end"); if (entry.tryLoc <= this.prev) { var hasCatch = hasOwn.call(entry, "catchLoc"), hasFinally = hasOwn.call(entry, "finallyLoc"); if (hasCatch && hasFinally) { if (this.prev < entry.catchLoc) return handle(entry.catchLoc, !0); if (this.prev < entry.finallyLoc) return handle(entry.finallyLoc); } else if (hasCatch) { if (this.prev < entry.catchLoc) return handle(entry.catchLoc, !0); } else { if (!hasFinally) throw new Error("try statement without catch or finally"); if (this.prev < entry.finallyLoc) return handle(entry.finallyLoc); } } } }, abrupt: function abrupt(type, arg) { for (var i = this.tryEntries.length - 1; i >= 0; --i) { var entry = this.tryEntries[i]; if (entry.tryLoc <= this.prev && hasOwn.call(entry, "finallyLoc") && this.prev < entry.finallyLoc) { var finallyEntry = entry; break; } } finallyEntry && ("break" === type || "continue" === type) && finallyEntry.tryLoc <= arg && arg <= finallyEntry.finallyLoc && (finallyEntry = null); var record = finallyEntry ? finallyEntry.completion : {}; return record.type = type, record.arg = arg, finallyEntry ? (this.method = "next", this.next = finallyEntry.finallyLoc, ContinueSentinel) : this.complete(record); }, complete: function complete(record, afterLoc) { if ("throw" === record.type) throw record.arg; return "break" === record.type || "continue" === record.type ? this.next = record.arg : "return" === record.type ? (this.rval = this.arg = record.arg, this.method = "return", this.next = "end") : "normal" === record.type && afterLoc && (this.next = afterLoc), ContinueSentinel; }, finish: function finish(finallyLoc) { for (var i = this.tryEntries.length - 1; i >= 0; --i) { var entry = this.tryEntries[i]; if (entry.finallyLoc === finallyLoc) return this.complete(entry.completion, entry.afterLoc), resetTryEntry(entry), ContinueSentinel; } }, "catch": function _catch(tryLoc) { for (var i = this.tryEntries.length - 1; i >= 0; --i) { var entry = this.tryEntries[i]; if (entry.tryLoc === tryLoc) { var record = entry.completion; if ("throw" === record.type) { var thrown = record.arg; resetTryEntry(entry); } return thrown; } } throw new Error("illegal catch attempt"); }, delegateYield: function delegateYield(iterable, resultName, nextLoc) { return this.delegate = { iterator: values(iterable), resultName: resultName, nextLoc: nextLoc }, "next" === this.method && (this.arg = undefined), ContinueSentinel; } }, exports; }
34
+ var Mutex = /*#__PURE__*/function () {
35
+ function Mutex() {
36
+ (0, _classCallCheck2["default"])(this, Mutex);
37
+ this.mutex = Promise.resolve();
38
+ }
39
+ (0, _createClass2["default"])(Mutex, [{
40
+ key: "lock",
41
+ value: function lock() {
42
+ var begin = function begin() {};
43
+ this.mutex = this.mutex.then(function () {
44
+ return new Promise(begin);
45
+ });
46
+ return new Promise(function (res) {
47
+ begin = res;
48
+ });
49
+ }
50
+ }, {
51
+ key: "dispatch",
52
+ value: function () {
53
+ var _dispatch = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regeneratorRuntime().mark(function _callee(fn) {
54
+ var unlock;
55
+ return _regeneratorRuntime().wrap(function _callee$(_context) {
56
+ while (1) {
57
+ switch (_context.prev = _context.next) {
58
+ case 0:
59
+ _context.next = 2;
60
+ return this.lock();
61
+ case 2:
62
+ unlock = _context.sent;
63
+ _context.prev = 3;
64
+ _context.next = 6;
65
+ return Promise.resolve(fn());
66
+ case 6:
67
+ return _context.abrupt("return", _context.sent);
68
+ case 7:
69
+ _context.prev = 7;
70
+ unlock();
71
+ return _context.finish(7);
72
+ case 10:
73
+ case "end":
74
+ return _context.stop();
75
+ }
76
+ }
77
+ }, _callee, this, [[3,, 7, 10]]);
78
+ }));
79
+ function dispatch(_x) {
80
+ return _dispatch.apply(this, arguments);
81
+ }
82
+ return dispatch;
83
+ }()
84
+ }]);
85
+ return Mutex;
86
+ }();
87
+ exports.Mutex = Mutex;