@singcl/ad-execute-manager 1.0.5 → 1.0.6
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/dist/ad/AdExecuteManager.d.ts +115 -0
- package/dist/ad/AdUnlock/RewardAdNovelUnlock.d.ts +110 -0
- package/dist/ad/AdUnlock/UnlockSettings.d.ts +42 -0
- package/dist/ad/CommonSettings.d.ts +179 -0
- package/dist/ad/CountRecorder.d.ts +50 -0
- package/dist/ad/ExbAnalyticsJS.d.ts +131 -0
- package/dist/ad/Logger.d.ts +34 -0
- package/dist/ad/LovelUnlockManager.d.ts +233 -0
- package/dist/ad/RewardAdFather.d.ts +123 -0
- package/dist/ad/RewardAdGlobalRecorder.d.ts +111 -0
- package/dist/ad/RewardAdLaunch.d.ts +87 -0
- package/dist/ad/RewardAdLaunchAlone.d.ts +59 -0
- package/dist/ad/RewardAdNovel.d.ts +373 -0
- package/dist/ad/RewardAdReadingLoad.d.ts +80 -0
- package/dist/ad/RewardAdReadingUnload.d.ts +46 -0
- package/dist/ad/RewardAdSceneTriggerManager.d.ts +65 -0
- package/dist/ad/SerializableError.d.ts +9 -0
- package/dist/ad/Storage.d.ts +98 -0
- package/dist/ad/compose.d.ts +12 -0
- package/dist/ad/const.d.ts +10 -0
- package/dist/index.d.ts +6 -0
- package/dist/typings/ad.d.ts +193 -0
- package/dist/typings/tracker.d.ts +115 -0
- package/dist/utils/functional.d.ts +13 -0
- package/package.json +7 -4
|
@@ -0,0 +1,115 @@
|
|
|
1
|
+
export default AdExecuteManager;
|
|
2
|
+
export type AdTask = {
|
|
3
|
+
/**
|
|
4
|
+
* RewardAdFather的子类实例
|
|
5
|
+
*/
|
|
6
|
+
adInstance: import("./RewardAdFather.js").default;
|
|
7
|
+
/**
|
|
8
|
+
* 广告执行选项
|
|
9
|
+
*/
|
|
10
|
+
options: import("../typings/ad.js").IRewordAdConfig;
|
|
11
|
+
/**
|
|
12
|
+
* 回调集合
|
|
13
|
+
*/
|
|
14
|
+
callbackCollection: import("../typings/ad.js").CallbackCollection;
|
|
15
|
+
/**
|
|
16
|
+
* 广告执行成功的回调函数
|
|
17
|
+
*/
|
|
18
|
+
resolve: Function;
|
|
19
|
+
/**
|
|
20
|
+
* 广告执行失败的回调函数
|
|
21
|
+
*/
|
|
22
|
+
reject: Function;
|
|
23
|
+
/**
|
|
24
|
+
* 广告任务的唯一标识符
|
|
25
|
+
*/
|
|
26
|
+
id: string;
|
|
27
|
+
/**
|
|
28
|
+
* 广告任务是否已成功解决
|
|
29
|
+
*/
|
|
30
|
+
_isResolved: boolean;
|
|
31
|
+
/**
|
|
32
|
+
* 广告任务是否已被拒绝
|
|
33
|
+
*/
|
|
34
|
+
_isRejected: boolean;
|
|
35
|
+
};
|
|
36
|
+
export type IConstructArgs = {
|
|
37
|
+
/**
|
|
38
|
+
* 广告执行选项
|
|
39
|
+
*/
|
|
40
|
+
options?: object;
|
|
41
|
+
/**
|
|
42
|
+
* 是否打印日志
|
|
43
|
+
*/
|
|
44
|
+
log?: boolean;
|
|
45
|
+
};
|
|
46
|
+
declare class AdExecuteManager {
|
|
47
|
+
static _instance: any;
|
|
48
|
+
/**
|
|
49
|
+
* 获取单例实例
|
|
50
|
+
* @param {IConstructArgs} [args]
|
|
51
|
+
* @returns {AdExecuteManager}
|
|
52
|
+
*/
|
|
53
|
+
static getInstance(args?: IConstructArgs): AdExecuteManager;
|
|
54
|
+
/**
|
|
55
|
+
*
|
|
56
|
+
* @param {IConstructArgs} args
|
|
57
|
+
* @returns
|
|
58
|
+
*/
|
|
59
|
+
constructor(args: IConstructArgs);
|
|
60
|
+
/**
|
|
61
|
+
* @type {Array.<AdTask>}
|
|
62
|
+
*/
|
|
63
|
+
_taskStack: Array<AdTask>;
|
|
64
|
+
/**
|
|
65
|
+
* @type {Array.<AdTask>}
|
|
66
|
+
*/
|
|
67
|
+
_currentBatchTasks: Array<AdTask>;
|
|
68
|
+
/**
|
|
69
|
+
* @type {boolean}
|
|
70
|
+
*/
|
|
71
|
+
_isRunning: boolean;
|
|
72
|
+
/**
|
|
73
|
+
* @type {AdTask|null}
|
|
74
|
+
*/
|
|
75
|
+
_currentTask: AdTask | null;
|
|
76
|
+
logger: Logger;
|
|
77
|
+
/**
|
|
78
|
+
* 添加广告任务
|
|
79
|
+
* @param {import('./RewardAdFather.js').default} adInstance RewardAdFather的子类实例
|
|
80
|
+
* @param {Object} ctx 广告执行上下文
|
|
81
|
+
* @param {import('../typings/ad.js').IRewordAdConfig} ctx.options 广告执行选项
|
|
82
|
+
* @param {import('../typings/ad.js').CallbackCollection} ctx.collection 回调集合
|
|
83
|
+
* @returns {Promise} 广告执行结果的Promise
|
|
84
|
+
*/
|
|
85
|
+
addTask(adInstance: import("./RewardAdFather.js").default, ctx: {
|
|
86
|
+
options: import("../typings/ad.js").IRewordAdConfig;
|
|
87
|
+
collection: import("../typings/ad.js").CallbackCollection;
|
|
88
|
+
}): Promise<any>;
|
|
89
|
+
/**
|
|
90
|
+
* 组合所有任务
|
|
91
|
+
* @private
|
|
92
|
+
*/
|
|
93
|
+
private _compose;
|
|
94
|
+
/**
|
|
95
|
+
* 清空任务栈并取消所有任务(包括正在执行的任务和middleware链中等待执行的任务)
|
|
96
|
+
*/
|
|
97
|
+
clearTasks(): void;
|
|
98
|
+
/**
|
|
99
|
+
* 获取当前未完成的任务总数
|
|
100
|
+
* 包括任务栈中待执行的任务和中间件链中未完成的任务
|
|
101
|
+
* @returns {number} 未完成的任务数量
|
|
102
|
+
*/
|
|
103
|
+
getTaskCount(): number;
|
|
104
|
+
/**
|
|
105
|
+
* 是否有任务正在运行
|
|
106
|
+
* @returns {boolean}
|
|
107
|
+
*/
|
|
108
|
+
isRunning(): boolean;
|
|
109
|
+
/**
|
|
110
|
+
* 获取当前执行的任务ID
|
|
111
|
+
* @returns {string|null} 当前任务ID
|
|
112
|
+
*/
|
|
113
|
+
getCurrentTaskId(): string | null;
|
|
114
|
+
}
|
|
115
|
+
import { Logger } from './Logger';
|
|
@@ -0,0 +1,110 @@
|
|
|
1
|
+
export default RewardAdNovelUnlock;
|
|
2
|
+
export type IRewordAdConfig = import("../../typings/ad.js").IRewordAdConfig;
|
|
3
|
+
export type IConnection = {
|
|
4
|
+
/**
|
|
5
|
+
* 广告中途退出回调
|
|
6
|
+
*/
|
|
7
|
+
onHalfway?: (args: ICallbackArgs) => void;
|
|
8
|
+
/**
|
|
9
|
+
* 广告展示回调
|
|
10
|
+
*/
|
|
11
|
+
onShow?: (args: ICallbackArgs) => void;
|
|
12
|
+
/**
|
|
13
|
+
* 广告执行成功回调
|
|
14
|
+
*/
|
|
15
|
+
onFinish?: (args: ICallbackArgs) => void;
|
|
16
|
+
/**
|
|
17
|
+
* 广告执行成功或失败回调
|
|
18
|
+
*/
|
|
19
|
+
onAlways?: (args: ICallbackArgs) => void;
|
|
20
|
+
/**
|
|
21
|
+
* 广告执行失败回调
|
|
22
|
+
*/
|
|
23
|
+
onError?: (e: unknown) => void;
|
|
24
|
+
};
|
|
25
|
+
export type ICloseArgs = {
|
|
26
|
+
/**
|
|
27
|
+
* 是否看完
|
|
28
|
+
*/
|
|
29
|
+
isEnded: boolean;
|
|
30
|
+
/**
|
|
31
|
+
* 完整观看次数
|
|
32
|
+
*/
|
|
33
|
+
count: number;
|
|
34
|
+
};
|
|
35
|
+
export type IConstructArgs = {
|
|
36
|
+
/**
|
|
37
|
+
* 初始化标识
|
|
38
|
+
*/
|
|
39
|
+
sign: string;
|
|
40
|
+
/**
|
|
41
|
+
* 解锁设置
|
|
42
|
+
*/
|
|
43
|
+
unlockSettings: import("./UnlockSettings").default;
|
|
44
|
+
/**
|
|
45
|
+
* 激励视频参数 (可选)
|
|
46
|
+
*/
|
|
47
|
+
adConfig?: IRewordAdConfig | undefined;
|
|
48
|
+
/**
|
|
49
|
+
* 回调集合
|
|
50
|
+
*/
|
|
51
|
+
collection?: IConnection | undefined;
|
|
52
|
+
};
|
|
53
|
+
/**
|
|
54
|
+
* @typedef {import('../../typings/ad.js').IRewordAdConfig} IRewordAdConfig
|
|
55
|
+
*/
|
|
56
|
+
/**
|
|
57
|
+
* @typedef IConnection
|
|
58
|
+
* @property {(args: ICallbackArgs) => void} [onHalfway] 广告中途退出回调
|
|
59
|
+
* @property {(args: ICallbackArgs) => void} [onShow] 广告展示回调
|
|
60
|
+
* @property {(args: ICallbackArgs) => void} [onFinish] 广告执行成功回调
|
|
61
|
+
* @property {(args: ICallbackArgs) => void} [onAlways] 广告执行成功或失败回调
|
|
62
|
+
* @property {(e:unknown) => void} [onError] 广告执行失败回调
|
|
63
|
+
*/
|
|
64
|
+
/**
|
|
65
|
+
* @typedef ICloseArgs
|
|
66
|
+
* @property {boolean} isEnded 是否看完
|
|
67
|
+
* @property {number} count 完整观看次数
|
|
68
|
+
*/
|
|
69
|
+
/**
|
|
70
|
+
* @typedef IConstructArgs
|
|
71
|
+
* @property {string} sign 初始化标识
|
|
72
|
+
* @property {import('./UnlockSettings').default} unlockSettings 解锁设置
|
|
73
|
+
* @property {IRewordAdConfig=} adConfig 激励视频参数 (可选)
|
|
74
|
+
* @property {IConnection=} collection 回调集合
|
|
75
|
+
*/
|
|
76
|
+
declare class RewardAdNovelUnlock extends RewardAdNovel {
|
|
77
|
+
/**
|
|
78
|
+
*
|
|
79
|
+
* @param {IConstructArgs} args
|
|
80
|
+
* @returns {RewardAdNovelUnlock}
|
|
81
|
+
*/
|
|
82
|
+
static build(args: IConstructArgs): RewardAdNovelUnlock;
|
|
83
|
+
static unshift(): typeof RewardAdNovelUnlock;
|
|
84
|
+
/**
|
|
85
|
+
*
|
|
86
|
+
* @returns {RewardAdNovelUnlock}
|
|
87
|
+
*/
|
|
88
|
+
static getInstance(): RewardAdNovelUnlock;
|
|
89
|
+
/**
|
|
90
|
+
*
|
|
91
|
+
* @returns {RewardAdNovelUnlock | null}
|
|
92
|
+
*/
|
|
93
|
+
static getNovelInstance(): RewardAdNovelUnlock | null;
|
|
94
|
+
/**
|
|
95
|
+
*
|
|
96
|
+
* @param {IConstructArgs} args
|
|
97
|
+
* @returns {RewardAdNovelUnlock}
|
|
98
|
+
*/
|
|
99
|
+
static "new"(args: IConstructArgs): RewardAdNovelUnlock;
|
|
100
|
+
/**
|
|
101
|
+
* @param {IConstructArgs} args
|
|
102
|
+
*/
|
|
103
|
+
constructor(args: IConstructArgs);
|
|
104
|
+
_scene: 2;
|
|
105
|
+
/**
|
|
106
|
+
* @type {import('./UnlockSettings').default}
|
|
107
|
+
*/
|
|
108
|
+
unlockSettings: import("./UnlockSettings").default;
|
|
109
|
+
}
|
|
110
|
+
import RewardAdNovel from '../RewardAdNovel';
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
export default UnlockSettings;
|
|
2
|
+
declare class UnlockSettings {
|
|
3
|
+
/**
|
|
4
|
+
*
|
|
5
|
+
* @param {object} args
|
|
6
|
+
* @param {InitSign} args.sign 初始化标识
|
|
7
|
+
* @returns {UnlockSettings}
|
|
8
|
+
*/
|
|
9
|
+
static "new"(args: {
|
|
10
|
+
sign: InitSign;
|
|
11
|
+
}): UnlockSettings;
|
|
12
|
+
/**
|
|
13
|
+
*
|
|
14
|
+
* @param {object} [args]
|
|
15
|
+
*/
|
|
16
|
+
constructor(args?: object);
|
|
17
|
+
max_tan_ad: {
|
|
18
|
+
total: number;
|
|
19
|
+
current: number;
|
|
20
|
+
};
|
|
21
|
+
look_jls_p: {
|
|
22
|
+
is_look_complete: number;
|
|
23
|
+
total: number;
|
|
24
|
+
current: number;
|
|
25
|
+
};
|
|
26
|
+
commonSettings: CommonSettings;
|
|
27
|
+
_init(): void;
|
|
28
|
+
_adTimes(): void;
|
|
29
|
+
reset(): void;
|
|
30
|
+
updateMaxTan(): void;
|
|
31
|
+
updateLookJlsP(): void;
|
|
32
|
+
remainMaxTan(): number;
|
|
33
|
+
remainLook(): number;
|
|
34
|
+
/**
|
|
35
|
+
* 看广告的次数和弹框的次数不一致
|
|
36
|
+
* 并且需要完整的看完广告,并且弹框次数小于最大弹框次数
|
|
37
|
+
* @returns
|
|
38
|
+
*/
|
|
39
|
+
end(): boolean;
|
|
40
|
+
ok(): boolean;
|
|
41
|
+
}
|
|
42
|
+
import CommonSettings from '../CommonSettings';
|
|
@@ -0,0 +1,179 @@
|
|
|
1
|
+
export default CommonSettings;
|
|
2
|
+
export type ISysConfig = {
|
|
3
|
+
/**
|
|
4
|
+
* 再看一次配置
|
|
5
|
+
*/
|
|
6
|
+
free_incentive_frequency?: number | undefined;
|
|
7
|
+
/**
|
|
8
|
+
* 自定义解锁弹窗配置
|
|
9
|
+
*/
|
|
10
|
+
c_unlock_pop_enable?: number | undefined;
|
|
11
|
+
/**
|
|
12
|
+
* 是否进入简介页
|
|
13
|
+
*/
|
|
14
|
+
launch_go_jianjieye?: number | undefined;
|
|
15
|
+
/**
|
|
16
|
+
* 是否可以返回首页
|
|
17
|
+
*/
|
|
18
|
+
launch_can_back_home?: number | undefined;
|
|
19
|
+
/**
|
|
20
|
+
* 返回书城激励视频每日展示次数 0 不展示 具体数量展示几次
|
|
21
|
+
*/
|
|
22
|
+
back_book_store_ad?: number | undefined;
|
|
23
|
+
/**
|
|
24
|
+
* 是否开启启动激励
|
|
25
|
+
*/
|
|
26
|
+
inter_site_pop_ups?: number | undefined;
|
|
27
|
+
/**
|
|
28
|
+
* 启动激励次数
|
|
29
|
+
*/
|
|
30
|
+
inter_site_pop_ups_num?: number | undefined;
|
|
31
|
+
/**
|
|
32
|
+
* 阅读强激励循环次数
|
|
33
|
+
*/
|
|
34
|
+
strong_incentive_frequency?: number | undefined;
|
|
35
|
+
/**
|
|
36
|
+
* 阅读页返回广告
|
|
37
|
+
*/
|
|
38
|
+
read_page_back_ad?: number | undefined;
|
|
39
|
+
/**
|
|
40
|
+
* 进入阅读页每日自动展示激励次数
|
|
41
|
+
*/
|
|
42
|
+
first_user_day?: number | undefined;
|
|
43
|
+
};
|
|
44
|
+
export type IUserConfig = {
|
|
45
|
+
/**
|
|
46
|
+
* 解锁章节中配置的观看解锁章节数
|
|
47
|
+
*/
|
|
48
|
+
ad_unlock_chapter_num?: number | undefined;
|
|
49
|
+
/**
|
|
50
|
+
* 解锁章节中配置的观看奖励视频次数
|
|
51
|
+
*/
|
|
52
|
+
look_jlsp_num?: number | undefined;
|
|
53
|
+
/**
|
|
54
|
+
* 解锁章节中配置的弹窗广告次数
|
|
55
|
+
*/
|
|
56
|
+
max_tan_ad_num?: number | undefined;
|
|
57
|
+
/**
|
|
58
|
+
* 奖励视频是否观看完成
|
|
59
|
+
*/
|
|
60
|
+
jlsp_is_look_complete?: number | undefined;
|
|
61
|
+
/**
|
|
62
|
+
* 书籍ID
|
|
63
|
+
*/
|
|
64
|
+
dy_book_id?: number | undefined;
|
|
65
|
+
/**
|
|
66
|
+
* 默认书籍ID
|
|
67
|
+
*/
|
|
68
|
+
default_book_id?: number | undefined;
|
|
69
|
+
/**
|
|
70
|
+
* 章节ID
|
|
71
|
+
*/
|
|
72
|
+
index?: number | undefined;
|
|
73
|
+
/**
|
|
74
|
+
* 2 表示跳转至速度页面 1 不处理
|
|
75
|
+
*/
|
|
76
|
+
open_page: string;
|
|
77
|
+
/**
|
|
78
|
+
* 是否解锁全部章节 0 未解锁 1 解锁
|
|
79
|
+
*/
|
|
80
|
+
is_unlock_all: number;
|
|
81
|
+
};
|
|
82
|
+
export type IUserInfo = {
|
|
83
|
+
/**
|
|
84
|
+
* 用户ID
|
|
85
|
+
*/
|
|
86
|
+
id: string;
|
|
87
|
+
/**
|
|
88
|
+
* 用户归因类型 1:信息流;2:工具版;3:新用户;4:老用户;5:未归因用户
|
|
89
|
+
*/
|
|
90
|
+
user_type: 1 | 2 | 3 | 4 | 5;
|
|
91
|
+
/**
|
|
92
|
+
* 用户组 - 0:对照组A;1:测试组B
|
|
93
|
+
*/
|
|
94
|
+
user_ab: 0 | 1;
|
|
95
|
+
};
|
|
96
|
+
/**
|
|
97
|
+
* 投放渠道参数
|
|
98
|
+
*/
|
|
99
|
+
export type IDeliverOption = {
|
|
100
|
+
/**
|
|
101
|
+
* 书籍ID
|
|
102
|
+
*/
|
|
103
|
+
book_id: string;
|
|
104
|
+
/**
|
|
105
|
+
* 章节ID
|
|
106
|
+
*/
|
|
107
|
+
chapter_id: string;
|
|
108
|
+
/**
|
|
109
|
+
* 过去的书籍ID
|
|
110
|
+
*/
|
|
111
|
+
past_book_id: string;
|
|
112
|
+
};
|
|
113
|
+
declare class CommonSettings {
|
|
114
|
+
static instance: any;
|
|
115
|
+
/**
|
|
116
|
+
*
|
|
117
|
+
* @param {object} args
|
|
118
|
+
* @param {InitSign} args.sign 初始化标识
|
|
119
|
+
* @returns {CommonSettings}
|
|
120
|
+
*/
|
|
121
|
+
static build(args: {
|
|
122
|
+
sign: InitSign;
|
|
123
|
+
}): CommonSettings;
|
|
124
|
+
/**
|
|
125
|
+
*
|
|
126
|
+
* @returns {CommonSettings}
|
|
127
|
+
*/
|
|
128
|
+
static getInstance(): CommonSettings;
|
|
129
|
+
/**
|
|
130
|
+
*
|
|
131
|
+
* @param {object} args
|
|
132
|
+
* @param {InitSign} args.sign 初始化标识
|
|
133
|
+
* @returns {CommonSettings}
|
|
134
|
+
*/
|
|
135
|
+
static "new"(args: {
|
|
136
|
+
sign: InitSign;
|
|
137
|
+
}): CommonSettings;
|
|
138
|
+
/**
|
|
139
|
+
* @param {object} args
|
|
140
|
+
* @param {string} args.sign 初始化标识
|
|
141
|
+
* @param {string} args.loginInfo 登录信息
|
|
142
|
+
*/
|
|
143
|
+
constructor(args: {
|
|
144
|
+
sign: string;
|
|
145
|
+
loginInfo: string;
|
|
146
|
+
});
|
|
147
|
+
_initSign: string;
|
|
148
|
+
_loginInfo: {};
|
|
149
|
+
/**
|
|
150
|
+
* 获取用户配置
|
|
151
|
+
* @returns {IUserConfig}
|
|
152
|
+
*/
|
|
153
|
+
getUserConfig(): IUserConfig;
|
|
154
|
+
/**
|
|
155
|
+
* 获取用户信息
|
|
156
|
+
* @returns {IUserInfo}
|
|
157
|
+
*/
|
|
158
|
+
getUserInfo(): IUserInfo;
|
|
159
|
+
/**
|
|
160
|
+
* 获取APP配置
|
|
161
|
+
* @returns {ISysConfig}
|
|
162
|
+
*/
|
|
163
|
+
getSysConfig(): ISysConfig;
|
|
164
|
+
/**
|
|
165
|
+
* 获取用户ID
|
|
166
|
+
* @returns
|
|
167
|
+
*/
|
|
168
|
+
getUserId(): string;
|
|
169
|
+
/**
|
|
170
|
+
* 1:测试组A 一般指全部功能都开启; 0:对照组B一般会有一个或者几个功能关闭
|
|
171
|
+
* @returns
|
|
172
|
+
*/
|
|
173
|
+
getUserAB(): number;
|
|
174
|
+
/**
|
|
175
|
+
* 站位方法,没有任何左右
|
|
176
|
+
* @returns
|
|
177
|
+
*/
|
|
178
|
+
placeholder(): any;
|
|
179
|
+
}
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @typedef {object} IConstructorArgs
|
|
3
|
+
* @property {string} [sign] 初始化标识
|
|
4
|
+
* @property {string} local_sign 本地存储标识
|
|
5
|
+
* @property {number} [total] 总次数
|
|
6
|
+
* @param {number|'today'} [expire] 过期时间(毫秒)或'today'表示当天有效,可选
|
|
7
|
+
*
|
|
8
|
+
*/
|
|
9
|
+
export class CountRecorder {
|
|
10
|
+
/**
|
|
11
|
+
*
|
|
12
|
+
* @param {IConstructorArgs} args
|
|
13
|
+
* @returns {CountRecorder}
|
|
14
|
+
*/
|
|
15
|
+
static "new"(args: IConstructorArgs): CountRecorder;
|
|
16
|
+
/**
|
|
17
|
+
*
|
|
18
|
+
* @param {IConstructorArgs} args
|
|
19
|
+
*/
|
|
20
|
+
constructor(args: IConstructorArgs);
|
|
21
|
+
_total: number;
|
|
22
|
+
_local_sign: string;
|
|
23
|
+
_expire: string;
|
|
24
|
+
storage: Storage;
|
|
25
|
+
_init(): void;
|
|
26
|
+
/**
|
|
27
|
+
* 获取次数
|
|
28
|
+
* @returns {number} 次数
|
|
29
|
+
*/
|
|
30
|
+
_adTimes(): number;
|
|
31
|
+
_safeLocalValue(v: any): any;
|
|
32
|
+
_initLocalTimes(): void;
|
|
33
|
+
updateToday(): void;
|
|
34
|
+
remain(): number;
|
|
35
|
+
}
|
|
36
|
+
export type IConstructorArgs = {
|
|
37
|
+
/**
|
|
38
|
+
* 初始化标识
|
|
39
|
+
*/
|
|
40
|
+
sign?: string;
|
|
41
|
+
/**
|
|
42
|
+
* 本地存储标识
|
|
43
|
+
*/
|
|
44
|
+
local_sign: string;
|
|
45
|
+
/**
|
|
46
|
+
* 总次数
|
|
47
|
+
*/
|
|
48
|
+
total?: number;
|
|
49
|
+
};
|
|
50
|
+
import Storage from './Storage';
|
|
@@ -0,0 +1,131 @@
|
|
|
1
|
+
export default ExbAnalyticsJS;
|
|
2
|
+
export type EventDictionary = any;
|
|
3
|
+
export type IConstructorArgs = {
|
|
4
|
+
/**
|
|
5
|
+
* 初始化标识
|
|
6
|
+
*/
|
|
7
|
+
sign: string;
|
|
8
|
+
/**
|
|
9
|
+
* 是否需要上报
|
|
10
|
+
*/
|
|
11
|
+
needReport?: boolean;
|
|
12
|
+
};
|
|
13
|
+
export type ICommonUserInfo = {
|
|
14
|
+
/**
|
|
15
|
+
* 用户ID
|
|
16
|
+
*/
|
|
17
|
+
user_id: string;
|
|
18
|
+
/**
|
|
19
|
+
* 用户归因类型 0 未登录 1 未归因新用户 2 未归因老用户 3 归因成功新用户 4 归因成功老用户
|
|
20
|
+
*/
|
|
21
|
+
user_type: 0 | 1 | 2 | 3 | 4;
|
|
22
|
+
/**
|
|
23
|
+
* 用户组 0:对照组A;1:测试组B
|
|
24
|
+
*/
|
|
25
|
+
user_group: 0 | 1;
|
|
26
|
+
};
|
|
27
|
+
/**
|
|
28
|
+
* @typedef {import('@/typings/tracker').EventDictionary} EventDictionary
|
|
29
|
+
*/
|
|
30
|
+
/**
|
|
31
|
+
* @typedef {object} IConstructorArgs
|
|
32
|
+
* @property {string} sign 初始化标识
|
|
33
|
+
* @property {boolean} [needReport] 是否需要上报
|
|
34
|
+
*
|
|
35
|
+
*/
|
|
36
|
+
/**
|
|
37
|
+
* @typedef {object} ICommonUserInfo
|
|
38
|
+
* @property {string} user_id 用户ID
|
|
39
|
+
* @property {0 | 1 | 2 | 3 | 4} user_type 用户归因类型 0 未登录 1 未归因新用户 2 未归因老用户 3 归因成功新用户 4 归因成功老用户
|
|
40
|
+
* @property {0 | 1} user_group 用户组 0:对照组A;1:测试组B
|
|
41
|
+
*
|
|
42
|
+
*/
|
|
43
|
+
declare class ExbAnalyticsJS {
|
|
44
|
+
static instance: any;
|
|
45
|
+
/**
|
|
46
|
+
*
|
|
47
|
+
* @param {IConstructorArgs} args
|
|
48
|
+
* @returns {ExbAnalyticsJS}
|
|
49
|
+
*/
|
|
50
|
+
static build(args: IConstructorArgs): ExbAnalyticsJS;
|
|
51
|
+
/**
|
|
52
|
+
*
|
|
53
|
+
* @returns {ExbAnalyticsJS}
|
|
54
|
+
*/
|
|
55
|
+
static getInstance(): ExbAnalyticsJS;
|
|
56
|
+
/**
|
|
57
|
+
*
|
|
58
|
+
* @param {IConstructorArgs} args
|
|
59
|
+
* @returns {ExbAnalyticsJS}
|
|
60
|
+
*/
|
|
61
|
+
static "new"(args: IConstructorArgs): ExbAnalyticsJS;
|
|
62
|
+
/**
|
|
63
|
+
* @param {IConstructorArgs} args
|
|
64
|
+
*/
|
|
65
|
+
constructor(args: IConstructorArgs);
|
|
66
|
+
_initSign: string;
|
|
67
|
+
_needReport: boolean;
|
|
68
|
+
/** @type {CommonSettings | null} */
|
|
69
|
+
commonSettings: CommonSettings | null;
|
|
70
|
+
/**
|
|
71
|
+
* 初始化 比如环境配置,api地址、日志等级等
|
|
72
|
+
* @param {IConstructorArgs} args
|
|
73
|
+
*/
|
|
74
|
+
initialize(args: IConstructorArgs): IConstructorArgs;
|
|
75
|
+
/**
|
|
76
|
+
* 追踪自定义事件
|
|
77
|
+
* 用户交互,如点击、提交
|
|
78
|
+
*
|
|
79
|
+
* @template {keyof EventDictionary} K
|
|
80
|
+
* @param {K} eventName - The name of the event to track.
|
|
81
|
+
* @param {EventDictionary[K]} properties - The properties associated with the event.
|
|
82
|
+
* @param {object} [debugParams] - The debug parameters.
|
|
83
|
+
* @param {string} [debugParams.sign] - Whether to enable debug mode.
|
|
84
|
+
*/
|
|
85
|
+
track<K extends keyof EventDictionary>(eventName: K, properties: EventDictionary[K], debugParams?: {
|
|
86
|
+
sign?: string;
|
|
87
|
+
}): void;
|
|
88
|
+
/**
|
|
89
|
+
* 获取公共用户信息
|
|
90
|
+
* @returns {ICommonUserInfo}
|
|
91
|
+
*/
|
|
92
|
+
_getCommonUserInfo(): ICommonUserInfo;
|
|
93
|
+
/**
|
|
94
|
+
* 识别用户身份
|
|
95
|
+
* 用户登录后,关联用户信息
|
|
96
|
+
* @returns
|
|
97
|
+
*/
|
|
98
|
+
identify(): any;
|
|
99
|
+
/**
|
|
100
|
+
* 合并用户身份
|
|
101
|
+
* 匿名用户转为登录用户
|
|
102
|
+
* @returns
|
|
103
|
+
*/
|
|
104
|
+
alias(): any;
|
|
105
|
+
/**
|
|
106
|
+
* 追踪页面浏览
|
|
107
|
+
* SPA 路由切换,或手动触发页面事件
|
|
108
|
+
* @returns
|
|
109
|
+
*/
|
|
110
|
+
pages(): any;
|
|
111
|
+
/**
|
|
112
|
+
* 追踪页面浏览 进入页面
|
|
113
|
+
*
|
|
114
|
+
* @template {'cpage'} K
|
|
115
|
+
* @param {K} eventName - The name of the event to track.
|
|
116
|
+
* @param {EventDictionary[K]} properties - The properties associated with the event.
|
|
117
|
+
*/
|
|
118
|
+
page<K extends "cpage">(eventName: K, properties: EventDictionary[K]): void;
|
|
119
|
+
/**
|
|
120
|
+
*
|
|
121
|
+
* @param {EventDictionary['cpage']} properties
|
|
122
|
+
* @returns
|
|
123
|
+
*/
|
|
124
|
+
cpage(properties: EventDictionary["cpage"]): void;
|
|
125
|
+
/**
|
|
126
|
+
* 站位方法,没有任何左右
|
|
127
|
+
* @returns
|
|
128
|
+
*/
|
|
129
|
+
placeholder(): any;
|
|
130
|
+
}
|
|
131
|
+
import CommonSettings from './CommonSettings';
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
export class Logger {
|
|
2
|
+
/**
|
|
3
|
+
*
|
|
4
|
+
* @param {object} [options]
|
|
5
|
+
* @param {string} [options.prefix] - 日志前缀
|
|
6
|
+
* @param {string} [options.level] - 日志级别
|
|
7
|
+
* @param {boolean} [options.enabled] - 是否启用日志
|
|
8
|
+
*/
|
|
9
|
+
constructor(options?: {
|
|
10
|
+
prefix?: string;
|
|
11
|
+
level?: string;
|
|
12
|
+
enabled?: boolean;
|
|
13
|
+
});
|
|
14
|
+
prefix: string;
|
|
15
|
+
enabled: boolean;
|
|
16
|
+
levels: {
|
|
17
|
+
error: number;
|
|
18
|
+
warn: number;
|
|
19
|
+
info: number;
|
|
20
|
+
debug: number;
|
|
21
|
+
};
|
|
22
|
+
currentLevel: any;
|
|
23
|
+
enable(): void;
|
|
24
|
+
disable(): void;
|
|
25
|
+
isEnabled(): boolean;
|
|
26
|
+
setLevel(level: any): void;
|
|
27
|
+
formatMessage(level: any, message: any): string;
|
|
28
|
+
_log(level: any, message: any, ...args: any[]): void;
|
|
29
|
+
error(message: any, ...args: any[]): void;
|
|
30
|
+
warn(message: any, ...args: any[]): void;
|
|
31
|
+
info(message: any, ...args: any[]): void;
|
|
32
|
+
debug(message: any, ...args: any[]): void;
|
|
33
|
+
log(level: any, message: any, ...args: any[]): void;
|
|
34
|
+
}
|