agora-rte-sdk 2.9.1 → 2.9.10

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 (124) hide show
  1. package/lib/configs/index.d.ts +4 -1
  2. package/lib/configs/index.js +5 -2
  3. package/lib/core/decorator/log/handler.d.ts +1 -1
  4. package/lib/core/decorator/log/handler.js +8 -15
  5. package/lib/core/decorator/log/index.js +2 -2
  6. package/lib/core/decorator/log/log-serializer.d.ts +8 -0
  7. package/lib/core/decorator/log/log-serializer.js +64 -0
  8. package/lib/core/decorator/log/logger.d.ts +1 -1
  9. package/lib/core/decorator/log/logger.js +2 -6
  10. package/lib/core/engine/index.d.ts +5 -2
  11. package/lib/core/engine/index.js +51 -45
  12. package/lib/core/log-upload/handler.d.ts +22 -0
  13. package/lib/core/log-upload/handler.js +241 -0
  14. package/lib/core/log-upload/scheduler.d.ts +9 -0
  15. package/lib/core/log-upload/scheduler.js +123 -0
  16. package/lib/core/log-upload/type.d.ts +20 -0
  17. package/lib/core/log-upload/type.js +6 -0
  18. package/lib/core/logger/constants.d.ts +11 -0
  19. package/lib/core/logger/constants.js +11 -0
  20. package/lib/core/logger/hijack.d.ts +4 -0
  21. package/lib/core/logger/hijack.js +63 -0
  22. package/lib/core/logger/index.d.ts +14 -38
  23. package/lib/core/logger/index.js +70 -328
  24. package/lib/core/logger/log-serializer.d.ts +6 -0
  25. package/lib/core/logger/log-serializer.js +2 -2
  26. package/lib/core/logger/log.worker.js +134 -20
  27. package/lib/core/logger/logger-impl.d.ts +19 -0
  28. package/lib/core/logger/logger-impl.js +110 -0
  29. package/lib/core/logger/manager-impl.d.ts +8 -0
  30. package/lib/core/logger/manager-impl.js +88 -0
  31. package/lib/core/logger/report-impl.d.ts +11 -0
  32. package/lib/core/logger/report-impl.js +139 -0
  33. package/lib/core/logger/type.d.ts +26 -0
  34. package/lib/core/logger/type.js +14 -0
  35. package/lib/core/logger/worker/db.d.ts +16 -0
  36. package/lib/core/logger/worker/db.js +42 -0
  37. package/lib/core/logger/worker/log.worker.d.ts +1 -0
  38. package/lib/core/logger/worker/log.worker.js +256 -0
  39. package/lib/core/logger/worker/mutex.d.ts +5 -0
  40. package/lib/core/logger/worker/mutex.js +84 -0
  41. package/lib/core/logger/worker-interactor.d.ts +28 -0
  42. package/lib/core/logger/worker-interactor.js +225 -0
  43. package/lib/core/media/loopback.d.ts +1 -1
  44. package/lib/core/media-player/stream-media-player.d.ts +1 -1
  45. package/lib/core/processor/message-handler.d.ts +1 -1
  46. package/lib/core/processor/sequence-msg/synchronizer.d.ts +1 -1
  47. package/lib/core/processor/type.d.ts +3 -1
  48. package/lib/core/processor/type.js +2 -0
  49. package/lib/core/rtc/adapter/base.d.ts +4 -1
  50. package/lib/core/rtc/adapter/electron/device.js +28 -7
  51. package/lib/core/rtc/adapter/electron/index.d.ts +5 -2
  52. package/lib/core/rtc/adapter/electron/index.js +42 -6
  53. package/lib/core/rtc/adapter/electron/stats.d.ts +1 -1
  54. package/lib/core/rtc/adapter/electron/thread.d.ts +1 -1
  55. package/lib/core/rtc/adapter/web/client.d.ts +4 -3
  56. package/lib/core/rtc/adapter/web/client.js +22 -2
  57. package/lib/core/rtc/adapter/web/device.d.ts +2 -0
  58. package/lib/core/rtc/adapter/web/device.js +193 -56
  59. package/lib/core/rtc/adapter/web/dispatcher.d.ts +1 -1
  60. package/lib/core/rtc/adapter/web/index.d.ts +5 -2
  61. package/lib/core/rtc/adapter/web/index.js +24 -5
  62. package/lib/core/rtc/adapter/web/player.js +1 -1
  63. package/lib/core/rtc/adapter/web/stats.d.ts +1 -1
  64. package/lib/core/rtc/adapter/web/thread.d.ts +1 -0
  65. package/lib/core/rtc/adapter/web/thread.js +3 -4
  66. package/lib/core/rtc/channel.d.ts +4 -1
  67. package/lib/core/rtc/channel.js +15 -0
  68. package/lib/core/rtc/index.d.ts +2 -0
  69. package/lib/core/rtc/index.js +13 -0
  70. package/lib/core/rtc/type.d.ts +22 -0
  71. package/lib/core/rtc/type.js +7 -1
  72. package/lib/core/rtm/index.js +2 -6
  73. package/lib/core/services/base.d.ts +1 -1
  74. package/lib/core/services/domain-region-map.js +1 -2
  75. package/lib/core/services/oss.js +47 -154
  76. package/lib/core/upload/index.d.ts +2 -0
  77. package/lib/core/upload/index.js +13 -0
  78. package/lib/core/upload/scheduler.d.ts +13 -0
  79. package/lib/core/upload/scheduler.js +127 -0
  80. package/lib/core/upload/type.d.ts +11 -0
  81. package/lib/core/upload/type.js +6 -0
  82. package/lib/core/utils/electron-log-file.d.ts +1 -0
  83. package/lib/core/utils/electron-log-file.js +101 -0
  84. package/lib/core/utils/file-reader.d.ts +1 -0
  85. package/lib/core/utils/file-reader.js +22 -0
  86. package/lib/core/utils/race-condition.d.ts +1 -0
  87. package/lib/core/utils/race-condition.js +20 -0
  88. package/lib/core/utils/thread.d.ts +1 -1
  89. package/lib/core/utils/utils.d.ts +0 -1
  90. package/lib/core/utils/utils.js +3 -9
  91. package/lib/core/worker/constants.d.ts +10 -0
  92. package/lib/core/worker/constants.js +18 -0
  93. package/lib/core/worker/handler/binary.d.ts +5 -0
  94. package/lib/core/worker/handler/binary.js +182 -0
  95. package/lib/core/worker/handler/db.d.ts +21 -0
  96. package/lib/core/worker/handler/db.js +46 -0
  97. package/lib/core/worker/handler/log.d.ts +12 -0
  98. package/lib/core/worker/handler/log.js +254 -0
  99. package/lib/core/worker/handler/reply.d.ts +3 -0
  100. package/lib/core/worker/handler/reply.js +22 -0
  101. package/lib/core/worker/index.d.ts +2 -0
  102. package/lib/core/worker/index.js +15 -0
  103. package/lib/core/worker/interactor.d.ts +25 -0
  104. package/lib/core/worker/interactor.js +285 -0
  105. package/lib/core/worker/mutex.d.ts +5 -0
  106. package/lib/core/worker/mutex.js +84 -0
  107. package/lib/core/worker/type.d.ts +1 -0
  108. package/lib/core/worker/type.js +6 -0
  109. package/lib/core/worker/worker-entry.d.ts +1 -0
  110. package/lib/core/worker/worker-entry.js +4 -0
  111. package/lib/core/worker/worker-factory.d.ts +1 -0
  112. package/lib/core/worker/worker-factory.js +14 -0
  113. package/lib/core/worker/worker-installer.d.ts +2 -0
  114. package/lib/core/worker/worker-installer.js +68 -0
  115. package/lib/index.d.ts +2 -2
  116. package/lib/index.js +6 -0
  117. package/lib/scene/index.d.ts +5 -2
  118. package/lib/scene/index.js +37 -15
  119. package/lib/scene/state-sync.d.ts +1 -1
  120. package/lib/type.d.ts +26 -0
  121. package/lib/type.js +10 -1
  122. package/lib/user/index.d.ts +1 -1
  123. package/package.json +6 -7
  124. package/README.md +0 -3
@@ -1,5 +1,5 @@
1
1
  import type { AGRtcConfig } from '../core/rtc/adapter';
2
- import { AgoraComponentRegion, AgoraLatencyLevel, AgoraRegion, AgoraRtcSDKExtension, AgoraRteLogLevel, AgoraRteOptions, AgoraRteRuntimePlatform, AgoraRteSequenceVersion, AgoraRteServiceConfig } from '../type';
2
+ import { AgoraCloudProxyType, AgoraComponentRegion, AgoraLatencyLevel, AgoraRegion, AgoraRtcSDKExtension, AgoraRteLogLevel, AgoraRteOptions, AgoraRteRuntimePlatform, AgoraRteSequenceVersion, AgoraRteServiceConfig } from '../type';
3
3
  export declare class AgoraRteEngineConfig {
4
4
  appId: string;
5
5
  service: AgoraRteServiceConfig;
@@ -26,6 +26,9 @@ export declare class AgoraRteEngineConfig {
26
26
  static consoleHijackEnabled: boolean;
27
27
  static sequenceVersion: AgoraRteSequenceVersion;
28
28
  static volumeIndicatorInterval: number;
29
+ static cloudProxyType?: AgoraCloudProxyType;
30
+ static rtcLogUploadEnabled: boolean;
31
+ static rtmLogUploadEnabled: boolean;
29
32
  static setConfig(config: AgoraRteEngineConfig): void;
30
33
  static get shared(): AgoraRteEngineConfig;
31
34
  static get platform(): AgoraRteRuntimePlatform;
@@ -116,6 +116,9 @@ _class = AgoraRteEngineConfig;
116
116
  AgoraRteEngineConfig._config = void 0;
117
117
  // these settings should not depend on the shared instance therefore set to static
118
118
  AgoraRteEngineConfig.logLevel = _type.AgoraRteLogLevel.INFO;
119
- AgoraRteEngineConfig.consoleHijackEnabled = false;
119
+ AgoraRteEngineConfig.consoleHijackEnabled = true;
120
120
  AgoraRteEngineConfig.sequenceVersion = _type.AgoraRteSequenceVersion.v2;
121
- AgoraRteEngineConfig.volumeIndicatorInterval = 500;
121
+ AgoraRteEngineConfig.volumeIndicatorInterval = 500;
122
+ AgoraRteEngineConfig.cloudProxyType = void 0;
123
+ AgoraRteEngineConfig.rtcLogUploadEnabled = false;
124
+ AgoraRteEngineConfig.rtmLogUploadEnabled = false;
@@ -1,4 +1,4 @@
1
- import { Logger } from '../../logger';
1
+ import { Logger } from '../../logger/type';
2
2
  import { Result } from '../../utils/interceptor';
3
3
  import { InvocationEvent, InvocationHandler } from '../type';
4
4
  export declare const createLogHandler: (logger: Logger) => (evt: InvocationEvent) => Result;
@@ -1,7 +1,6 @@
1
1
  "use strict";
2
2
 
3
3
  require("core-js/modules/es.object.define-property.js");
4
- var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
5
4
  Object.defineProperty(exports, "__esModule", {
6
5
  value: true
7
6
  });
@@ -12,26 +11,20 @@ require("core-js/modules/es.array.join.js");
12
11
  require("core-js/modules/es.array.includes.js");
13
12
  require("core-js/modules/es.string.includes.js");
14
13
  require("core-js/modules/es.array.index-of.js");
15
- var _dayjs = _interopRequireDefault(require("dayjs"));
16
- var _upperCase = _interopRequireDefault(require("lodash/upperCase"));
17
- var _type = require("../../../type");
18
- var _logger = require("../../logger");
19
- var _logSerializer = require("../../logger/log-serializer");
14
+ var _logSerializer = require("./log-serializer");
20
15
  var _interceptor = require("../../utils/interceptor");
21
- var _type2 = require("../type");
22
- var formatLog = function formatLog(loglevel, msg, identifier) {
23
- // `{date} {time} [threadName] [traceId] {level} {package} {method} {line}: {msg}`
24
- return "".concat((0, _dayjs["default"])().format('YYYY-MM-DD HH:mm:ss'), " ").concat((0, _upperCase["default"])(_logger.logLevelMap[loglevel] || 'unknown'), " [").concat(identifier.className, ".").concat(identifier.methodName, "] [").concat(identifier.traceId, "] ").concat(msg);
16
+ var _type = require("../type");
17
+ var formatLog = function formatLog(msg, identifier) {
18
+ return "[".concat(identifier.traceId, "] [").concat(identifier.className, ".").concat(identifier.methodName, "] ").concat(msg);
25
19
  };
26
20
  var createLogHandler = exports.createLogHandler = function createLogHandler(logger) {
27
- var level = _type.AgoraRteLogLevel.INFO;
28
21
  return function (evt) {
29
- if (evt.type === _type2.InvocationEventType.pre) {
22
+ if (evt.type === _type.InvocationEventType.pre) {
30
23
  var _evt$arguments;
31
24
  evt.context.start = new Date().getTime();
32
- evt.context.traceId = "trace-".concat(evt.context.start).concat(Math.ceil(Math.random() * 1000));
25
+ evt.context.traceId = "trace-".concat(evt.context.start);
33
26
  var args = (_evt$arguments = evt.arguments) !== null && _evt$arguments !== void 0 ? _evt$arguments : [];
34
- var msg = formatLog(level, "args: [".concat((0, _logSerializer.serializeArgs)(args), "]"), {
27
+ var msg = formatLog("args: [".concat((0, _logSerializer.serializeArgs)(args), "]"), {
35
28
  className: evt["class"],
36
29
  methodName: evt.method,
37
30
  traceId: evt.context.traceId
@@ -47,7 +40,7 @@ var createLogHandler = exports.createLogHandler = function createLogHandler(logg
47
40
  results.push("error: ".concat((0, _logSerializer.serialize)(evt.error)));
48
41
  }
49
42
  results.push("Time elapsed: ".concat(elapsed, "ms"));
50
- var _msg = formatLog(level, results.join(", "), {
43
+ var _msg = formatLog(results.join(", "), {
51
44
  className: evt["class"],
52
45
  methodName: evt.method,
53
46
  traceId: evt.context.traceId
@@ -17,7 +17,7 @@ var _logger2 = require("../../logger");
17
17
  * @param descriptor
18
18
  */
19
19
  var trace = function trace(proto, propertyName, descriptor) {
20
- var handler = (0, _handler.createLogHandler)(_logger2.Logger.logger);
20
+ var handler = (0, _handler.createLogHandler)(_logger2.Logger);
21
21
  var method = descriptor.value;
22
22
  if (typeof method === 'function') {
23
23
  descriptor.value = (0, _proxy.proxyMethod)(method, proto, propertyName, handler);
@@ -66,7 +66,7 @@ var silence = function silence(proto, propertyName) {
66
66
  var attach = function attach(options) {
67
67
  var proxyMethods = true;
68
68
  var label = (options === null || options === void 0 ? void 0 : options.label) || 'default';
69
- var logger = _logger2.Logger.getLogger(label);
69
+ var logger = _logger2.Logger;
70
70
  if (options) {
71
71
  proxyMethods = !!options.proxyMethods;
72
72
  }
@@ -0,0 +1,8 @@
1
+ interface Serializer {
2
+ match(obj: any): boolean;
3
+ serialize(obj: any): string;
4
+ }
5
+ export declare const addSerializer: (serializer: Serializer) => void;
6
+ export declare const serialize: (data: unknown) => string;
7
+ export declare const serializeArgs: (args: unknown[]) => string;
8
+ export {};
@@ -0,0 +1,64 @@
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 = exports.addSerializer = 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 _lodash = require("lodash");
15
+ var _utils = require("../../utils/utils");
16
+ var serializers = [];
17
+ var fileSerializer = {
18
+ match: function match(obj) {
19
+ return obj instanceof File;
20
+ },
21
+ serialize: function serialize(file) {
22
+ return (0, _utils.jsonstring)({
23
+ filename: file.name,
24
+ size: file.size
25
+ });
26
+ }
27
+ };
28
+ var plainObjectSerializer = {
29
+ match: function match(obj) {
30
+ return (0, _lodash.isPlainObject)(obj);
31
+ },
32
+ serialize: function serialize(obj) {
33
+ return (0, _utils.jsonstring)(obj);
34
+ }
35
+ };
36
+ var functionSerializer = {
37
+ match: function match(obj) {
38
+ return typeof obj === 'function';
39
+ },
40
+ serialize: function serialize(obj) {
41
+ return '[Function]';
42
+ }
43
+ };
44
+ var addSerializer = exports.addSerializer = function addSerializer(serializer) {
45
+ serializers.push(serializer);
46
+ };
47
+ var serialize = exports.serialize = function serialize(data) {
48
+ if (typeof data === 'string') {
49
+ return data;
50
+ }
51
+ var serializer = serializers.find(function (serializer) {
52
+ return serializer.match(data);
53
+ });
54
+ if (serializer) {
55
+ return serializer.serialize(data);
56
+ }
57
+ return "".concat(data);
58
+ };
59
+ var serializeArgs = exports.serializeArgs = function serializeArgs(args) {
60
+ return "".concat(args.map(serialize).join(' '));
61
+ };
62
+ addSerializer(fileSerializer);
63
+ addSerializer(plainObjectSerializer);
64
+ addSerializer(functionSerializer);
@@ -1,4 +1,4 @@
1
- import { Logger } from '../../logger';
1
+ import { Logger } from '../../logger/type';
2
2
  declare type FunctionLike = {
3
3
  name: string;
4
4
  };
@@ -1,7 +1,6 @@
1
1
  "use strict";
2
2
 
3
3
  require("core-js/modules/es.object.define-property.js");
4
- var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
5
4
  Object.defineProperty(exports, "__esModule", {
6
5
  value: true
7
6
  });
@@ -9,14 +8,11 @@ exports.createFormatLogger = void 0;
9
8
  require("core-js/modules/es.array.concat.js");
10
9
  require("core-js/modules/es.object.freeze.js");
11
10
  require("core-js/modules/es.function.name.js");
12
- var _logger = require("../../logger");
13
11
  var _type = require("../../../type");
14
- var _dayjs = _interopRequireDefault(require("dayjs"));
15
- var _upperCase = _interopRequireDefault(require("lodash/upperCase"));
16
- var _logSerializer = require("../../logger/log-serializer");
12
+ var _logSerializer = require("./log-serializer");
17
13
  var formatLog = function formatLog(loglevel, msg, indentifier) {
18
14
  // `{date} {time} [threadName] [traceId] {level} {package} {method} {line}: {msg}`
19
- return "".concat((0, _dayjs["default"])().format('YYYY-MM-DD HH:mm:ss'), " ").concat((0, _upperCase["default"])(_logger.logLevelMap[loglevel] || 'unknown'), " [").concat(indentifier, "] [trace-0] ").concat(msg);
15
+ return "[".concat(indentifier, "] ").concat(msg);
20
16
  };
21
17
  var createFormatLogger = exports.createFormatLogger = function createFormatLogger(constructor, logger) {
22
18
  return Object.freeze({
@@ -2,13 +2,15 @@ import { AGEventEmitter } from '../utils/events';
2
2
  import { AgoraRteEngineConfig } from '../../configs';
3
3
  import { AgoraRteScene } from '../../scene';
4
4
  import { AgoraMediaControl } from '../media/control';
5
- import { TagInfo } from '../services/oss';
5
+ import { AgoraCloudProxyType } from '../../type';
6
+ import { TagInfo } from '../log-upload/type';
6
7
  export declare class AgoraRteEngine extends AGEventEmitter {
7
8
  private _mediaControl;
8
- private _logService;
9
9
  private _rtmManager;
10
10
  private _rtcManager;
11
11
  private _apiServicePathPrefix;
12
+ private _logUploadScheduler;
13
+ private _electronLogUploadScheduler;
12
14
  constructor(config: AgoraRteEngineConfig);
13
15
  static createWithConfig(config: AgoraRteEngineConfig): AgoraRteEngine;
14
16
  get apiServicePathPrefix(): string;
@@ -19,5 +21,6 @@ export declare class AgoraRteEngine extends AGEventEmitter {
19
21
  static getRtcVersion(): string;
20
22
  createAgoraRteScene(sceneId: string): AgoraRteScene;
21
23
  getAgoraMediaControl(): AgoraMediaControl;
24
+ setCloudProxy(proxyType: AgoraCloudProxyType): void;
22
25
  uploadSDKLogToAgoraService(tagInfo: TagInfo): Promise<void>;
23
26
  }
@@ -29,6 +29,8 @@ Object.defineProperty(exports, "__esModule", {
29
29
  });
30
30
  exports.AgoraRteEngine = void 0;
31
31
  require("core-js/modules/es.array.concat.js");
32
+ require("core-js/modules/es.date.now.js");
33
+ require("core-js/modules/es.date.to-string.js");
32
34
  var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
33
35
  var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));
34
36
  var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
@@ -39,11 +41,9 @@ var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime/helpers/ge
39
41
  var _events = require("../utils/events");
40
42
  var _configs = require("../../configs");
41
43
  var _scene = require("../../scene");
42
- var _logger = require("../logger");
43
44
  var _control = require("../media/control");
44
45
  var _rtc = require("../rtc");
45
46
  var _rtm = require("../rtm");
46
- var _log = require("../services/log");
47
47
  var _awaitToJs = require("await-to-js");
48
48
  var _error = require("../utils/error");
49
49
  var _web = require("../rtc/adapter/web");
@@ -52,6 +52,11 @@ var _bound = require("../decorator/bound");
52
52
  var _lodash = require("../decorator/lodash");
53
53
  var _type = require("../../type");
54
54
  var _report = require("../services/report");
55
+ var _logger = require("../logger");
56
+ var _electronLogFile = require("../utils/electron-log-file");
57
+ var _scheduler = require("../log-upload/scheduler");
58
+ var _upload = require("../upload");
59
+ var _handler = require("../log-upload/handler");
55
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; }
56
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); }; }
57
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; } }
@@ -65,15 +70,15 @@ var AgoraRteEngine = exports.AgoraRteEngine = /*#__PURE__*/function (_AGEventEmi
65
70
  // there will be only 1 rte engine exist at same time
66
71
  // so it's safe to overwrite the config directly into global shared variable
67
72
  _this._mediaControl = void 0;
68
- _this._logService = void 0;
69
73
  _this._rtmManager = void 0;
70
74
  _this._rtcManager = void 0;
71
75
  _this._apiServicePathPrefix = '';
76
+ _this._logUploadScheduler = new _scheduler.AgoraLogUploadScheduler();
77
+ _this._electronLogUploadScheduler = new _upload.AgoraUploadScheduler(new _handler.AgoraElectronLogUploadHandler());
72
78
  _configs.AgoraRteEngineConfig.setConfig(config);
73
79
  if (_configs.AgoraRteEngineConfig.consoleHijackEnabled) {
74
80
  _logger.Logger.setupConsoleHijack();
75
81
  }
76
- _this._logService = new _log.AgoraLogService();
77
82
  _this._rtmManager = new _rtm.AGRtmManager();
78
83
  _this._rtcManager = new _rtc.AGRtcManager(config.rtcConfigs);
79
84
  _this._mediaControl = new _control.AgoraMediaControl(_this._rtcManager);
@@ -120,7 +125,7 @@ var AgoraRteEngine = exports.AgoraRteEngine = /*#__PURE__*/function (_AGEventEmi
120
125
  };
121
126
  _context.next = 9;
122
127
  return this._rtmManager.login(rtmToken, userId, {
123
- uploadLog: false
128
+ uploadLog: _configs.AgoraRteEngineConfig.rtmLogUploadEnabled
124
129
  });
125
130
  case 9:
126
131
  return _context.abrupt("return", _context.sent);
@@ -157,78 +162,79 @@ var AgoraRteEngine = exports.AgoraRteEngine = /*#__PURE__*/function (_AGEventEmi
157
162
  value: function getAgoraMediaControl() {
158
163
  return this._mediaControl;
159
164
  }
165
+ }, {
166
+ key: "setCloudProxy",
167
+ value: function setCloudProxy(proxyType) {
168
+ this._rtcManager.setCloudProxy(proxyType);
169
+ }
160
170
  }, {
161
171
  key: "uploadSDKLogToAgoraService",
162
172
  value: function () {
163
173
  var _uploadSDKLogToAgoraService = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regeneratorRuntime().mark(function _callee2(tagInfo) {
164
- var err, consoleLog, electronLog, _yield$to, _yield$to2, _yield$to3, _yield$to4, _yield$to5, _yield$to6, _yield$to7, _yield$to8;
174
+ var err, consoleLog, _yield$to, _yield$to2, _yield$to3, _yield$to4, electronLog, _yield$to5, _yield$to6;
165
175
  return _regeneratorRuntime().wrap(function _callee2$(_context2) {
166
176
  while (1) switch (_context2.prev = _context2.next) {
167
177
  case 0:
168
- consoleLog = null;
169
- electronLog = null;
170
- _context2.next = 4;
171
- return (0, _awaitToJs.to)(_logger.Logger.collectConsoleLogs());
172
- case 4:
178
+ consoleLog = undefined;
179
+ _context2.next = 3;
180
+ return (0, _awaitToJs.to)(_logger.Logger.collectLogs());
181
+ case 3:
173
182
  _yield$to = _context2.sent;
174
183
  _yield$to2 = (0, _slicedToArray2["default"])(_yield$to, 2);
175
184
  err = _yield$to2[0];
176
185
  consoleLog = _yield$to2[1];
177
- if (err) {
178
- _context2.next = 22;
186
+ if (!(!err && consoleLog)) {
187
+ _context2.next = 21;
179
188
  break;
180
189
  }
181
- _context2.next = 11;
182
- return (0, _awaitToJs.to)(this._logService.uploadLogFile(tagInfo, consoleLog));
183
- case 11:
190
+ _context2.next = 10;
191
+ return (0, _awaitToJs.to)(this._logUploadScheduler.scheduleUploadTask({
192
+ id: Date.now(),
193
+ file: consoleLog,
194
+ tagInfo: tagInfo
195
+ }));
196
+ case 10:
184
197
  _yield$to3 = _context2.sent;
185
198
  _yield$to4 = (0, _slicedToArray2["default"])(_yield$to3, 1);
186
199
  err = _yield$to4[0];
187
200
  if (!err) {
188
- _context2.next = 18;
201
+ _context2.next = 17;
189
202
  break;
190
203
  }
191
- _error.RteErrorCenter.shared.handleNonThrowableError(_error.AGRteErrorCode.RTE_ERR_WEB_LOG_UPLOAD_ERR, err);
192
- _context2.next = 20;
204
+ _error.RteErrorCenter.shared.handleThrowableError(_error.AGRteErrorCode.RTE_ERR_WEB_LOG_UPLOAD_ERR, err);
205
+ _context2.next = 19;
193
206
  break;
194
- case 18:
195
- _context2.next = 20;
196
- return (0, _awaitToJs.to)(_logger.Logger.cleanupConsoleLogs());
197
- case 20:
198
- _context2.next = 23;
207
+ case 17:
208
+ _context2.next = 19;
209
+ return (0, _awaitToJs.to)(_logger.Logger.flush());
210
+ case 19:
211
+ _context2.next = 22;
199
212
  break;
213
+ case 21:
214
+ _error.RteErrorCenter.shared.handleThrowableError(_error.AGRteErrorCode.RTE_ERR_WEB_LOG_UPLOAD_ERR, err);
200
215
  case 22:
201
- _error.RteErrorCenter.shared.handleNonThrowableError(_error.AGRteErrorCode.RTE_ERR_WEB_LOG_UPLOAD_ERR, err);
202
- case 23:
216
+ electronLog = null;
203
217
  if (!(_configs.AgoraRteEngineConfig.platform === _type.AgoraRteRuntimePlatform.Electron)) {
204
- _context2.next = 40;
218
+ _context2.next = 31;
205
219
  break;
206
220
  }
207
221
  _context2.next = 26;
208
- return (0, _awaitToJs.to)(_logger.Logger.collectElectronLogs(_electron.RtcAdapterElectron.logBasePath, _electron.RtcAdapterElectron.logFolderPath));
222
+ return (0, _awaitToJs.to)((0, _electronLogFile.collectElectronLogs)(_electron.RtcAdapterElectron.logBasePath, _electron.RtcAdapterElectron.logFolderPath));
209
223
  case 26:
210
224
  _yield$to5 = _context2.sent;
211
225
  _yield$to6 = (0, _slicedToArray2["default"])(_yield$to5, 2);
212
226
  err = _yield$to6[0];
213
227
  electronLog = _yield$to6[1];
214
- if (err) {
215
- _context2.next = 39;
216
- break;
228
+ if (!err && electronLog) {
229
+ this._electronLogUploadScheduler.addUploadTask({
230
+ id: Date.now(),
231
+ file: electronLog,
232
+ tagInfo: tagInfo
233
+ });
234
+ } else {
235
+ _error.RteErrorCenter.shared.handleThrowableError(_error.AGRteErrorCode.RTE_ERR_ELECTRON_LOG_UPLOAD_ERR, err);
217
236
  }
218
- _context2.next = 33;
219
- return (0, _awaitToJs.to)(this._logService.uploadZipLogFile(tagInfo, electronLog));
220
- case 33:
221
- _yield$to7 = _context2.sent;
222
- _yield$to8 = (0, _slicedToArray2["default"])(_yield$to7, 1);
223
- err = _yield$to8[0];
224
- if (err) {
225
- _error.RteErrorCenter.shared.handleNonThrowableError(_error.AGRteErrorCode.RTE_ERR_ELECTRON_LOG_UPLOAD_ERR, err);
226
- }
227
- _context2.next = 40;
228
- break;
229
- case 39:
230
- _error.RteErrorCenter.shared.handleNonThrowableError(_error.AGRteErrorCode.RTE_ERR_ELECTRON_LOG_UPLOAD_ERR, err);
231
- case 40:
237
+ case 31:
232
238
  case "end":
233
239
  return _context2.stop();
234
240
  }
@@ -0,0 +1,22 @@
1
+ import { AgoraUploadHandler } from '../upload';
2
+ import { AgoraLogUploadTask } from './type';
3
+ export declare class AgoraLogUploadHandler implements AgoraUploadHandler<AgoraLogUploadTask> {
4
+ protected _policyHost: string;
5
+ protected _httpTimeout: number;
6
+ protected _osName: string | undefined;
7
+ protected _osVersion: string | undefined;
8
+ protected _appId: string;
9
+ protected _appVersion: string;
10
+ protected _platform: string;
11
+ constructor();
12
+ handleUpload(task: AgoraLogUploadTask): Promise<void>;
13
+ private _putFile;
14
+ private _fetchPresignedArgs;
15
+ private _getHttpHeaders;
16
+ }
17
+ export declare class AgoraWebLogUploadHandler extends AgoraLogUploadHandler {
18
+ constructor();
19
+ }
20
+ export declare class AgoraElectronLogUploadHandler extends AgoraLogUploadHandler {
21
+ constructor();
22
+ }