@netless/slide 1.0.3 → 1.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/lib/AliTrackLogger.d.ts +21 -0
- package/lib/AliTrackLogger.js +152 -0
- package/lib/Slide.d.ts +9 -1
- package/lib/Slide.js +2 -2
- package/package.json +2 -2
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
export declare class AliTrackLogger {
|
|
2
|
+
private logList;
|
|
3
|
+
private checkTimer;
|
|
4
|
+
private config;
|
|
5
|
+
private retryTimes;
|
|
6
|
+
private enable;
|
|
7
|
+
constructor();
|
|
8
|
+
private uploadLoggerGlobalEvent;
|
|
9
|
+
start(): Promise<void>;
|
|
10
|
+
pause(): void;
|
|
11
|
+
addLog(message: string, level: Level, taskId: string, randomId: string): void;
|
|
12
|
+
destroy(): void;
|
|
13
|
+
uploadLog(focus?: boolean): Promise<void>;
|
|
14
|
+
setEnable(enable: boolean): void;
|
|
15
|
+
}
|
|
16
|
+
declare type Level = "info" | "warn" | "error";
|
|
17
|
+
export interface TrackLoggerConfig {
|
|
18
|
+
checkTime: number;
|
|
19
|
+
buffer: number;
|
|
20
|
+
}
|
|
21
|
+
export {};
|
|
@@ -0,0 +1,152 @@
|
|
|
1
|
+
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
2
|
+
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
3
|
+
return new (P || (P = Promise))(function (resolve, reject) {
|
|
4
|
+
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
5
|
+
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
6
|
+
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
7
|
+
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
8
|
+
});
|
|
9
|
+
};
|
|
10
|
+
var __generator = (this && this.__generator) || function (thisArg, body) {
|
|
11
|
+
var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
|
|
12
|
+
return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
|
|
13
|
+
function verb(n) { return function (v) { return step([n, v]); }; }
|
|
14
|
+
function step(op) {
|
|
15
|
+
if (f) throw new TypeError("Generator is already executing.");
|
|
16
|
+
while (_) try {
|
|
17
|
+
if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
|
|
18
|
+
if (y = 0, t) op = [op[0] & 2, t.value];
|
|
19
|
+
switch (op[0]) {
|
|
20
|
+
case 0: case 1: t = op; break;
|
|
21
|
+
case 4: _.label++; return { value: op[1], done: false };
|
|
22
|
+
case 5: _.label++; y = op[1]; op = [0]; continue;
|
|
23
|
+
case 7: op = _.ops.pop(); _.trys.pop(); continue;
|
|
24
|
+
default:
|
|
25
|
+
if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
|
|
26
|
+
if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
|
|
27
|
+
if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
|
|
28
|
+
if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
|
|
29
|
+
if (t[2]) _.ops.pop();
|
|
30
|
+
_.trys.pop(); continue;
|
|
31
|
+
}
|
|
32
|
+
op = body.call(thisArg, _);
|
|
33
|
+
} catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
|
|
34
|
+
if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
|
|
35
|
+
}
|
|
36
|
+
};
|
|
37
|
+
var AliTrackLogger = /** @class */ (function () {
|
|
38
|
+
function AliTrackLogger() {
|
|
39
|
+
var _this = this;
|
|
40
|
+
this.logList = [];
|
|
41
|
+
this.checkTimer = null;
|
|
42
|
+
this.retryTimes = 0;
|
|
43
|
+
this.enable = false;
|
|
44
|
+
this.uploadLoggerGlobalEvent = function (event) {
|
|
45
|
+
if (event.data.type === "@slide/_upload_log_") {
|
|
46
|
+
_this.start();
|
|
47
|
+
}
|
|
48
|
+
};
|
|
49
|
+
this.config = {
|
|
50
|
+
checkTime: 3000,
|
|
51
|
+
buffer: 300,
|
|
52
|
+
};
|
|
53
|
+
window.addEventListener("message", this.uploadLoggerGlobalEvent);
|
|
54
|
+
this.start();
|
|
55
|
+
}
|
|
56
|
+
AliTrackLogger.prototype.start = function () {
|
|
57
|
+
return __awaiter(this, void 0, void 0, function () {
|
|
58
|
+
var _this = this;
|
|
59
|
+
return __generator(this, function (_a) {
|
|
60
|
+
clearInterval(this.checkTimer);
|
|
61
|
+
this.checkTimer = setInterval(function () { return __awaiter(_this, void 0, void 0, function () {
|
|
62
|
+
return __generator(this, function (_a) {
|
|
63
|
+
switch (_a.label) {
|
|
64
|
+
case 0: return [4 /*yield*/, this.uploadLog()];
|
|
65
|
+
case 1:
|
|
66
|
+
_a.sent();
|
|
67
|
+
return [2 /*return*/];
|
|
68
|
+
}
|
|
69
|
+
});
|
|
70
|
+
}); }, this.config.checkTime);
|
|
71
|
+
return [2 /*return*/];
|
|
72
|
+
});
|
|
73
|
+
});
|
|
74
|
+
};
|
|
75
|
+
AliTrackLogger.prototype.pause = function () {
|
|
76
|
+
clearInterval(this.checkTimer);
|
|
77
|
+
};
|
|
78
|
+
AliTrackLogger.prototype.addLog = function (message, level, taskId, randomId) {
|
|
79
|
+
this.logList.push({ level: level, taskId: taskId, message: message, randomId: randomId });
|
|
80
|
+
};
|
|
81
|
+
AliTrackLogger.prototype.destroy = function () {
|
|
82
|
+
clearInterval(this.checkTimer);
|
|
83
|
+
window.removeEventListener("message", this.uploadLoggerGlobalEvent);
|
|
84
|
+
};
|
|
85
|
+
AliTrackLogger.prototype.uploadLog = function (focus) {
|
|
86
|
+
if (focus === void 0) { focus = false; }
|
|
87
|
+
return __awaiter(this, void 0, void 0, function () {
|
|
88
|
+
var uploadLog, errHandle, res, e_1;
|
|
89
|
+
var _this = this;
|
|
90
|
+
return __generator(this, function (_a) {
|
|
91
|
+
switch (_a.label) {
|
|
92
|
+
case 0:
|
|
93
|
+
if (!(this.logList.length >= this.config.buffer || focus)) {
|
|
94
|
+
return [2 /*return*/];
|
|
95
|
+
}
|
|
96
|
+
uploadLog = this.logList.splice(0);
|
|
97
|
+
errHandle = function () {
|
|
98
|
+
_this.logList = uploadLog.concat(_this.logList);
|
|
99
|
+
if (_this.retryTimes > 3) {
|
|
100
|
+
_this.pause();
|
|
101
|
+
}
|
|
102
|
+
_this.retryTimes += 1;
|
|
103
|
+
};
|
|
104
|
+
_a.label = 1;
|
|
105
|
+
case 1:
|
|
106
|
+
_a.trys.push([1, 3, , 4]);
|
|
107
|
+
return [4 /*yield*/, fetch("https://netless-ppt-plugin-dev.cn-hangzhou.log.aliyuncs.com/logstores/netless-ppt-plugin-dev/track", {
|
|
108
|
+
method: "POST",
|
|
109
|
+
headers: {
|
|
110
|
+
"x-log-apiversion": "0.6.0",
|
|
111
|
+
"Content-Type": "application/json",
|
|
112
|
+
"Accept": "*/*"
|
|
113
|
+
},
|
|
114
|
+
body: JSON.stringify({
|
|
115
|
+
__topic__: "netless-ppt-plugin-dev",
|
|
116
|
+
__source__: "netless-ppt-plugin-dev",
|
|
117
|
+
__logs__: uploadLog,
|
|
118
|
+
})
|
|
119
|
+
})];
|
|
120
|
+
case 2:
|
|
121
|
+
res = _a.sent();
|
|
122
|
+
if (res.ok) {
|
|
123
|
+
this.retryTimes = 0;
|
|
124
|
+
}
|
|
125
|
+
else {
|
|
126
|
+
errHandle();
|
|
127
|
+
}
|
|
128
|
+
return [3 /*break*/, 4];
|
|
129
|
+
case 3:
|
|
130
|
+
e_1 = _a.sent();
|
|
131
|
+
console.warn(e_1);
|
|
132
|
+
errHandle();
|
|
133
|
+
return [3 /*break*/, 4];
|
|
134
|
+
case 4: return [2 /*return*/];
|
|
135
|
+
}
|
|
136
|
+
});
|
|
137
|
+
});
|
|
138
|
+
};
|
|
139
|
+
AliTrackLogger.prototype.setEnable = function (enable) {
|
|
140
|
+
if (this.enable === enable) {
|
|
141
|
+
return;
|
|
142
|
+
}
|
|
143
|
+
if (enable) {
|
|
144
|
+
this.start();
|
|
145
|
+
}
|
|
146
|
+
else {
|
|
147
|
+
this.pause();
|
|
148
|
+
}
|
|
149
|
+
};
|
|
150
|
+
return AliTrackLogger;
|
|
151
|
+
}());
|
|
152
|
+
export { AliTrackLogger };
|
package/lib/Slide.d.ts
CHANGED
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
import { SlideError, VolumeAdjuster } from "@netless/ppt-player";
|
|
2
2
|
import { IPlugin } from "@netless/plugin-system";
|
|
3
|
+
import { AliTrackLogger } from "./AliTrackLogger";
|
|
4
|
+
import { preloadResource } from "./global";
|
|
3
5
|
export type { ErrorType } from "@netless/ppt-player";
|
|
4
|
-
export * from "./global";
|
|
5
6
|
export declare type UrlInterrupter = (url: string) => Promise<string>;
|
|
6
7
|
export interface ILoaderDelegate {
|
|
7
8
|
/**
|
|
@@ -236,6 +237,11 @@ export interface ISlideConfig {
|
|
|
236
237
|
*/
|
|
237
238
|
clientId?: string;
|
|
238
239
|
urlInterrupter?: UrlInterrupter;
|
|
240
|
+
/**
|
|
241
|
+
* 是否开启日志追踪, 开启后会向 sdk 远程服务器定时定量上传本地日志
|
|
242
|
+
* 默认 true
|
|
243
|
+
*/
|
|
244
|
+
enableTracking?: boolean;
|
|
239
245
|
}
|
|
240
246
|
interface MediaState {
|
|
241
247
|
type: "pause" | "play";
|
|
@@ -351,6 +357,7 @@ export interface SlideEventEmitter {
|
|
|
351
357
|
}
|
|
352
358
|
declare const Slide_base: new () => SlideEventEmitter;
|
|
353
359
|
export declare class Slide extends Slide_base {
|
|
360
|
+
static preloadResource: typeof preloadResource;
|
|
354
361
|
static instances: Slide[];
|
|
355
362
|
static _tempFrozenIds: string[];
|
|
356
363
|
static _tempLog: string;
|
|
@@ -408,6 +415,7 @@ export declare class Slide extends Slide_base {
|
|
|
408
415
|
private logger;
|
|
409
416
|
private _dispatchIncrId;
|
|
410
417
|
private _receiveIncrId;
|
|
418
|
+
static trackLogger: AliTrackLogger;
|
|
411
419
|
private get dispatchIncrId();
|
|
412
420
|
constructor(initConfig: ISlideConfig);
|
|
413
421
|
private _updateVolumeByStaticAdjuster;
|