hina-cloud-js-sdk 3.1.7 → 3.1.8

Sign up to get free protection for your applications and to get access to all the features.
Files changed (45) hide show
  1. package/.gitlab-ci.yml +2 -6
  2. package/build/hina.cjs.min.js +1 -0
  3. package/build/hina.esm.min.js +1 -1
  4. package/build/hina.min.js +1 -4
  5. package/build/hotAnalyse.min.js +1 -1
  6. package/package.json +2 -7
  7. package/packages/core/dist/index.cjs.js +64 -0
  8. package/packages/core/dist/index.cjs.js.map +1 -0
  9. package/packages/core/dist/index.d.ts +45 -0
  10. package/packages/core/dist/index.esm.js +62 -0
  11. package/packages/core/dist/index.esm.js.map +1 -0
  12. package/packages/core/dist/index.global.js +1199 -0
  13. package/packages/core/dist/index.global.js.map +1 -0
  14. package/packages/core/dist/index.js +1200 -0
  15. package/packages/core/dist/index.js.map +1 -0
  16. package/packages/monitor/dist/index.cjs.js +150 -0
  17. package/packages/monitor/dist/index.cjs.js.map +1 -0
  18. package/packages/monitor/dist/index.d.ts +35 -0
  19. package/packages/monitor/dist/index.esm.js +145 -0
  20. package/packages/monitor/dist/index.esm.js.map +1 -0
  21. package/packages/monitor/dist/index.global.js +1343 -0
  22. package/packages/monitor/dist/index.global.js.map +1 -0
  23. package/packages/monitor/dist/index.js +1344 -0
  24. package/packages/monitor/dist/index.js.map +1 -0
  25. package/packages/track/dist/index.cjs.js +1930 -0
  26. package/packages/track/dist/index.cjs.js.map +1 -0
  27. package/packages/track/dist/index.d.ts +212 -0
  28. package/packages/track/dist/index.esm.js +1925 -0
  29. package/packages/track/dist/index.esm.js.map +1 -0
  30. package/packages/track/dist/index.global.js +4259 -0
  31. package/packages/track/dist/index.global.js.map +1 -0
  32. package/packages/track/dist/index.js +4260 -0
  33. package/packages/track/dist/index.js.map +1 -0
  34. package/packages/types/dist/index.d.ts +603 -0
  35. package/packages/types/dist/index.esm.js +25 -0
  36. package/packages/types/dist/index.esm.js.map +1 -0
  37. package/packages/utils/dist/index.cjs.js +1535 -0
  38. package/packages/utils/dist/index.cjs.js.map +1 -0
  39. package/packages/utils/dist/index.d.ts +394 -0
  40. package/packages/utils/dist/index.esm.js +1465 -0
  41. package/packages/utils/dist/index.esm.js.map +1 -0
  42. package/packages/utils/dist/index.global.js +2507 -0
  43. package/packages/utils/dist/index.global.js.map +1 -0
  44. package/packages/utils/dist/index.js +2508 -0
  45. package/packages/utils/dist/index.js.map +1 -0
@@ -0,0 +1,603 @@
1
+ declare enum ConsoleTypes {
2
+ LOG = "log",
3
+ INFO = "info",
4
+ WARN = "warn",
5
+ ERROR = "error",
6
+ ASSERT = "assert"
7
+ }
8
+ declare enum ReportType {
9
+ BEACON = "beacon",
10
+ IMAGE = "image",
11
+ AJAX = "ajax"
12
+ }
13
+
14
+ type PluginConstructor<T extends BaseOptions, U = any> = new (options: T, context?: U) => PluginBase<T, U>;
15
+ declare abstract class PluginBase<T extends BaseOptions, U = any> {
16
+ options: T;
17
+ context?: U;
18
+ abstract name: string;
19
+ protected constructor(options: T, context?: U);
20
+ /**
21
+ * 初始化方法
22
+ */
23
+ abstract init(notify?: (data: any) => void): void;
24
+ /**
25
+ * 数据格式转换
26
+ */
27
+ abstract transform(data?: any): ReportDataType<any>;
28
+ }
29
+
30
+ type VoidFn = () => void;
31
+ interface IAnyObject {
32
+ [key: string]: any;
33
+ }
34
+ type UnKnownFn = (...args: unknown[]) => any;
35
+ type AnyFn = (...args: any[]) => any;
36
+
37
+ /**
38
+ * 基础配置
39
+ */
40
+ interface BaseOptions {
41
+ /**
42
+ * 项目名称
43
+ */
44
+ name: string;
45
+ /**
46
+ * 采集上报地址URL
47
+ */
48
+ serverUrl: string;
49
+ /**
50
+ * 是否打印信息
51
+ */
52
+ showLog?: boolean;
53
+ }
54
+ /**
55
+ * 埋点配置
56
+ */
57
+ interface TrackOptions extends BaseOptions {
58
+ /**
59
+ * 埋点配置
60
+ */
61
+ autoTrackConfig: {
62
+ /**
63
+ * 是否开启自动点击采集(默认 true), true表示开启,自动采集 H_WebClick 事件
64
+ */
65
+ clickAutoTrack?: boolean;
66
+ /**
67
+ * 是否开启页面停留采集(默认 true), true表示开启,自动采集 H_WebStay 事件
68
+ */
69
+ stayAutoTrack?: boolean;
70
+ /**
71
+ * 是否开启页面浏览采集(默认 false),auto 表示开启,singlePage 表示单页面开启,false 关闭,可配合手动开启使用
72
+ * 若页面中有锚点设计,需要将该配置设为 false,否则触发锚点会多触发 H_pageview 事件
73
+ */
74
+ pageviewAutoTrack?: 'singlePage' | 'auto' | false;
75
+ /**
76
+ * 自动采集web离开事件(默认 false) false object(PageLeave的配置) 默认关闭
77
+ */
78
+ pageLeaveAutoTrack?: boolean | PageLeaveAutoTrackObject;
79
+ /**
80
+ * 是否采集当前页面的数据(默认返回true),返回false表示不采集当前页面,
81
+ * 设置这个函数后,内容为空的话,是返回false。不设置函数默认是采集所有页面。
82
+ */
83
+ isCollectUrl?: () => boolean;
84
+ /**
85
+ * 用户点击页面元素时会触发这个函数,判断是否要采集当前这个元素,返回true表示采集,返回false表示不采集。(默认true)
86
+ */
87
+ isCollectElement?: (value?: any) => boolean;
88
+ /**
89
+ * 考虑到用户隐私,这里可以设置 input 里的内容是否采集
90
+ * 如果返回true,表示采集 input 内容,返回false表示不采集 input 内容,(默认false)。
91
+ */
92
+ isCollectInput?: (value?: any) => boolean;
93
+ /**
94
+ * 根据特定标签添加上报的自定义字段
95
+ * 比如您需要给有 data=test 属性的标签的点击事件增加自定义属性 name:'aa' ,则代码如下:
96
+ * if(element_target.getAttribute('data') === 'test'){
97
+ * return {
98
+ * name:'aa'
99
+ * }
100
+ * }
101
+ */
102
+ addCustomProperty?: (value?: any) => any;
103
+ /**
104
+ * 有效停留时长超过多少毫秒过开始采集(默认4000ms),单位ms
105
+ */
106
+ stayDelayTime?: number;
107
+ /**
108
+ * 预置属性停留时长 event_duration 的最大值,(默认 18000s),单位s
109
+ */
110
+ maxStayPageDuration?: number;
111
+ /**
112
+ * 是否开启dom元素采集(默认 false) 可以是boolean,也可以是object类型 配置为object类型,有如下参数
113
+ * ignoreTags:忽略的标签 不可自定义,内部定义好的
114
+ * maxLevel:层级 默认是 1,可配置范围是 [1, 2, 3],非该范围配置值,会被当作 1 处理。
115
+ */
116
+ collectTags?: {
117
+ div?: boolean | {
118
+ ignoreTags?: string[];
119
+ maxLevel?: number;
120
+ };
121
+ [key: string]: boolean | {
122
+ ignoreTags?: string[];
123
+ maxLevel?: number;
124
+ };
125
+ };
126
+ /**
127
+ * 开启全埋点时,配置带有指定属性的页面元素点击,自动采集点击事件(默认['hn-click'])
128
+ */
129
+ trackAttr?: string[];
130
+ };
131
+ /**
132
+ * 多域名打通插件配置项 v4版本开始支持配置项开启,v4版本之前只能通过use方法开启
133
+ */
134
+ siteLinkerConfig?: SiteLinkerOptions;
135
+ /**
136
+ * 采集当前页面的视区停留事件(默认返回 true),返回false则不采集
137
+ */
138
+ stayAutoTrackConfig?: {
139
+ isCollectUrl?: () => boolean;
140
+ };
141
+ /**
142
+ * 是否使用跨域图片上报(默认false)
143
+ */
144
+ imgUseCrossOrigin?: boolean;
145
+ /**
146
+ * 单页面配置(默认false),若页面中有锚点设计,需要将该配置删除,否则触发锚点会多触发 H_pageview 事件
147
+ */
148
+ isSinglePage?: boolean | (() => boolean | IAnyObject);
149
+ /**
150
+ * 批量发送数据(默认false) 可以是boolean,也可以是object类型
151
+ */
152
+ batchSend?: boolean | {
153
+ /**
154
+ * 一次请求超过多少毫秒的话自动取消,防止请求无响应 默认 6000ms
155
+ */
156
+ dataSendTimeout?: number;
157
+ /**
158
+ * 间隔多少毫秒发一次数据 默认 6000ms
159
+ */
160
+ sendInterval?: number;
161
+ /**
162
+ * 存储 localStorage 条数最大值,默认:200 。如 localStorage 条数超过该值,则使用 image 方式立即发送数据
163
+ */
164
+ storageLimit?: number;
165
+ };
166
+ appJsBridge?: boolean;
167
+ /**
168
+ * 上报数据方式(默认 image) beacon、image、ajax
169
+ */
170
+ sendType?: ReportType;
171
+ /**
172
+ * 表示数据发送超时时间(默认 3000ms),如果数据发送超过 datasend_timeout 还未返回结果,会强制取消该请求,单位ms
173
+ */
174
+ dataSendTimeout?: number;
175
+ /**
176
+ * 是否开启 H_latest 相关的最近一次相关事件属性采集以及配置 H_url 作为公共属性,默认值为一个对象
177
+ * 子配置项 true 表示采集,false 表示不采集,未设置的参数取默认值
178
+ */
179
+ presetProperties?: {
180
+ /**
181
+ * 是否采集 最近一次广告系列相关参数,默认值 true
182
+ */
183
+ latest_utm?: boolean;
184
+ /**
185
+ * 广告来源,默认值 true
186
+ */
187
+ latest_utm_source?: boolean;
188
+ /**
189
+ * 是否采集 最近一次流量来源类型,默认值 true
190
+ */
191
+ latest_traffic_source_type?: boolean;
192
+ /**
193
+ * 是否采集 最近一次搜索引擎关键字,默认值 true
194
+ */
195
+ latest_search_keyword?: boolean;
196
+ /**
197
+ * 是否采集 最近一次前向地址,默认值 true
198
+ */
199
+ latest_referrer?: boolean;
200
+ /**
201
+ * 是否采集 页面地址作为公共属性,默认是 true
202
+ */
203
+ url?: boolean;
204
+ /**
205
+ * 是否采集 页面标题作为公共属性,默认是 true
206
+ */
207
+ title?: boolean;
208
+ [key: string]: boolean;
209
+ };
210
+ /**
211
+ * 全局回调函数
212
+ */
213
+ globalCallback?: (...data: any[]) => void;
214
+ /**
215
+ * 插件系统,v4版本开始支持用户自定义插件,具体插件开发规范参考插件文档
216
+ */
217
+ plugins?: PluginConstructor<TrackOptions>[];
218
+ /**
219
+ * 性能监控系统配置
220
+ */
221
+ performanceErrorConfig?: PerformanceOptions;
222
+ }
223
+ /**
224
+ * 监控系统配置
225
+ */
226
+ interface PerformanceOptions extends BaseOptions {
227
+ /**
228
+ * 设置 true 后自动采集和上报页面错误信息。默认 true
229
+ */
230
+ errorCapture?: boolean;
231
+ /**
232
+ * 开启性能监控功能,默认 true
233
+ */
234
+ performance?: boolean;
235
+ /**
236
+ * 插件系统,v4版本开始支持用户自定义插件,具体插件开发规范参考插件文档
237
+ */
238
+ plugins?: PluginConstructor<PerformanceOptions>[];
239
+ }
240
+ /**
241
+ * PageLeavePlugin插件参数
242
+ */
243
+ interface PageLeaveAutoTrackObject {
244
+ /**
245
+ * 心跳记录刷新时间 单位秒(s) 默认值 5s
246
+ */
247
+ heartbeat_interval_time?: number;
248
+ /**
249
+ * 最大页面浏览时长 单位秒(s) 默认值 432000s (5天)
250
+ */
251
+ max_duration?: number;
252
+ /**
253
+ * 设置是否采集当前页面浏览时长, 返回 true 为需要采集,返回 false 或者不返回则为不采集
254
+ */
255
+ isCollectUrl?: (url?: string) => boolean;
256
+ /**
257
+ * 页面浏览时长自定义属性
258
+ */
259
+ custom_props?: {
260
+ [key: string]: any;
261
+ };
262
+ }
263
+ /**
264
+ * SiteLinker插件参数
265
+ */
266
+ interface LinkerItem {
267
+ /**
268
+ * 配置值为打通网站网址的一部分。建议配置时配置为打通网站的域名。
269
+ */
270
+ part_url?: string;
271
+ /**
272
+ * 配置 _hnsdk 参数在 URL 的 hash 部分(即 # 后部分)还是在 URL 的 search 部分(即 # 前的 ?部分)。
273
+ * 必填属性,且属性值必须为布尔类型,即 true 或 false(默认建议填 false)。
274
+ */
275
+ after_hash?: boolean;
276
+ }
277
+ interface SiteLinkerOptions {
278
+ /**
279
+ * 该配置设置为 true 后,如果从已登录的页面跳转过来,即使当前网页已经登录,当前网页仍然会以之前网页的登录 id 再次登录。
280
+ */
281
+ re_login?: boolean;
282
+ /**
283
+ * 具体网站链接配置项
284
+ */
285
+ linker?: LinkerItem[];
286
+ }
287
+ /**
288
+ * 内置插件配置
289
+ */
290
+ interface BuiltPluginsConfig {
291
+ /**
292
+ * 页面浏览时长插件
293
+ */
294
+ PageLeave: PageLeaveAutoTrackObject;
295
+ /**
296
+ * 页面加载时长插件
297
+ */
298
+ PageLoad: {
299
+ /**
300
+ * 最大页面加载时长,超过这个时长将不再上报event_duration属性,默认1800s(30分钟)
301
+ */
302
+ max_duration: number;
303
+ };
304
+ /**
305
+ * 多域名打通插件
306
+ */
307
+ SiteLinker?: SiteLinkerOptions;
308
+ }
309
+ /**
310
+ * 用户信息存储
311
+ */
312
+ interface StoreState {
313
+ /**
314
+ * 设备ID
315
+ */
316
+ deviceId?: string;
317
+ /**
318
+ * 账号ID
319
+ */
320
+ accountId?: string;
321
+ /**
322
+ * 匿名ID
323
+ */
324
+ anonymousId?: string;
325
+ /**
326
+ * 首次访问时间,用户属性用于触发profile_set_once接口
327
+ */
328
+ firstVisitTime?: number;
329
+ /**
330
+ * 广告相关参数
331
+ */
332
+ props?: UtmProperties;
333
+ }
334
+ /**
335
+ * element properties类型声明
336
+ */
337
+ interface ElementProperties {
338
+ /**
339
+ * 元素类型
340
+ */
341
+ H_element_type?: string;
342
+ /**
343
+ * 元素name属性(getAttribute('name'))
344
+ */
345
+ H_element_name?: string;
346
+ /**
347
+ * 元素id属性
348
+ */
349
+ H_element_id?: string;
350
+ /**
351
+ * 元素href属性
352
+ */
353
+ H_element_target_url?: string;
354
+ /**
355
+ * 元素className属性
356
+ */
357
+ H_element_class_name?: string;
358
+ /**
359
+ * 元素内容主要是input元素的value内容和button的innerText内容
360
+ */
361
+ H_element_content?: string;
362
+ /**
363
+ * 元素路径
364
+ */
365
+ H_element_path?: string;
366
+ /**
367
+ * 元素选择器路径,通过此路径可以找到该元素对应的位置
368
+ */
369
+ H_element_selector?: string;
370
+ /**
371
+ * 元素在页面x坐标
372
+ */
373
+ H_page_x?: number | string;
374
+ /**
375
+ * 元素在页面y坐标
376
+ */
377
+ H_page_y?: number | string;
378
+ /**
379
+ * 额外自定义的参数
380
+ */
381
+ [key: string]: any;
382
+ }
383
+ /**
384
+ * 广告相关类型声明
385
+ */
386
+ interface UtmProperties {
387
+ H_latest_referrer?: string;
388
+ H_latest_search_keyword?: string;
389
+ H_latest_traffic_source_type?: string;
390
+ H_latest_utm_source?: string;
391
+ H_latest_utm_campaign?: string;
392
+ H_latest_utm_content?: string;
393
+ H_latest_utm_medium?: string;
394
+ H_latest_utm_term?: string;
395
+ H_utm_campaign?: string;
396
+ H_utm_content?: string;
397
+ H_utm_medium?: string;
398
+ H_utm_source?: string;
399
+ H_utm_term?: string;
400
+ [key: string]: any;
401
+ }
402
+ /**
403
+ * page properties页面信息 类型声明类型声明
404
+ */
405
+ interface PageProperties {
406
+ /**
407
+ * 页面referrer
408
+ */
409
+ H_referrer?: string;
410
+ /**
411
+ * referrer host
412
+ */
413
+ H_referrer_host?: string;
414
+ /**
415
+ * 页面url
416
+ */
417
+ H_url?: string;
418
+ /**
419
+ * 页面host
420
+ */
421
+ H_url_host?: string;
422
+ /**
423
+ * 页面domain
424
+ */
425
+ H_url_domain?: string;
426
+ /**
427
+ * 页面path
428
+ */
429
+ H_url_path?: string;
430
+ /**
431
+ * 页面hash
432
+ */
433
+ H_url_hash?: string;
434
+ /**
435
+ * 页面title
436
+ */
437
+ H_title?: string;
438
+ /**
439
+ * 页面停留时长
440
+ */
441
+ event_duration?: number;
442
+ /**
443
+ * 页面滚动位置
444
+ */
445
+ H_viewport_position?: number;
446
+ /**
447
+ * 页面停留时间
448
+ */
449
+ H_time?: number;
450
+ [key: string]: any;
451
+ }
452
+ /**
453
+ * 浏览器信息类型声明
454
+ */
455
+ interface BrowserInfo {
456
+ /**
457
+ * 系统类型
458
+ */
459
+ H_os?: string;
460
+ /**
461
+ * 系统版本
462
+ */
463
+ H_os_version?: string;
464
+ /**
465
+ * 浏览器类型
466
+ */
467
+ H_browser?: string;
468
+ /**
469
+ * 浏览器版本
470
+ */
471
+ H_browser_version?: string;
472
+ /**
473
+ * 设备型号
474
+ */
475
+ H_model?: string;
476
+ /**
477
+ * 时区
478
+ */
479
+ H_timezone_offset?: number;
480
+ /**
481
+ * 屏幕宽度
482
+ */
483
+ H_screen_width?: number;
484
+ /**
485
+ * 屏幕高度
486
+ */
487
+ H_screen_height?: number;
488
+ /**
489
+ * 文档可视区宽度
490
+ */
491
+ H_viewport_width?: number;
492
+ /**
493
+ * 文档可视区高度
494
+ */
495
+ H_viewport_height?: number;
496
+ H_lib_version?: string;
497
+ H_lib?: string;
498
+ H_lib_method?: string;
499
+ /**
500
+ * 网络类型
501
+ */
502
+ H_network_type?: string;
503
+ /**
504
+ * 语言
505
+ */
506
+ H_language?: string;
507
+ [key: string]: any;
508
+ }
509
+ /**
510
+ * 路由改变信息类型声明
511
+ */
512
+ interface RouterParams {
513
+ /**
514
+ * 上一次路由
515
+ */
516
+ fromPath?: string;
517
+ /**
518
+ * 上一个页面的地址
519
+ */
520
+ fromHref?: string;
521
+ /**
522
+ * 当前路由
523
+ */
524
+ toPath?: string;
525
+ /**
526
+ * 当前页面的地址
527
+ */
528
+ toHref?: string;
529
+ /**
530
+ * 路由模式
531
+ */
532
+ mode?: 'history' | 'hash';
533
+ [key: string]: any;
534
+ }
535
+ /**
536
+ * 上报通用属性类型声明
537
+ */
538
+ interface ReportProperties extends UtmProperties, PageProperties, BrowserInfo {
539
+ /**
540
+ * 设备ID
541
+ */
542
+ device_id?: string;
543
+ H_is_first_time?: boolean;
544
+ H_is_first_day?: boolean;
545
+ }
546
+ /**
547
+ * 上报数据类型
548
+ */
549
+ interface ReportDataType<T> {
550
+ /**
551
+ * 匿名ID
552
+ */
553
+ anonymous_id?: string;
554
+ /**
555
+ * 账号ID
556
+ */
557
+ account_id?: string;
558
+ /**
559
+ * 事件名称
560
+ */
561
+ event?: string;
562
+ /**
563
+ * 发送时间
564
+ */
565
+ send_time?: number;
566
+ /**
567
+ * 当前时间
568
+ */
569
+ time?: number;
570
+ /**
571
+ * 上报类型
572
+ */
573
+ type?: string;
574
+ /**
575
+ * 唯一ID
576
+ */
577
+ _track_id?: number;
578
+ /**
579
+ * 上报数据属性
580
+ */
581
+ properties?: T;
582
+ [key: string]: any;
583
+ }
584
+ interface RequestParams {
585
+ /**
586
+ * 上报地址
587
+ */
588
+ url: string;
589
+ /**
590
+ * 上报数据
591
+ */
592
+ data: string;
593
+ /**
594
+ * 上报超时时间
595
+ */
596
+ timeout: number;
597
+ /**
598
+ * 图片是否使用跨域
599
+ */
600
+ imgUseCrossOrigin?: boolean;
601
+ }
602
+
603
+ export { type AnyFn, type BaseOptions, type BrowserInfo, type BuiltPluginsConfig, ConsoleTypes, type ElementProperties, type IAnyObject, type LinkerItem, type PageLeaveAutoTrackObject, type PageProperties, type PerformanceOptions, PluginBase, type PluginConstructor, type ReportDataType, type ReportProperties, ReportType, type RequestParams, type RouterParams, type SiteLinkerOptions, type StoreState, type TrackOptions, type UnKnownFn, type UtmProperties, type VoidFn };
@@ -0,0 +1,25 @@
1
+ var ConsoleTypes;
2
+ (function (ConsoleTypes) {
3
+ ConsoleTypes["LOG"] = "log";
4
+ ConsoleTypes["INFO"] = "info";
5
+ ConsoleTypes["WARN"] = "warn";
6
+ ConsoleTypes["ERROR"] = "error";
7
+ ConsoleTypes["ASSERT"] = "assert";
8
+ })(ConsoleTypes || (ConsoleTypes = {}));
9
+ var ReportType;
10
+ (function (ReportType) {
11
+ ReportType["BEACON"] = "beacon";
12
+ ReportType["IMAGE"] = "image";
13
+ ReportType["AJAX"] = "ajax";
14
+ })(ReportType || (ReportType = {}));
15
+
16
+ var PluginBase = /** @class */ (function () {
17
+ function PluginBase(options, context) {
18
+ this.options = options;
19
+ this.context = context;
20
+ }
21
+ return PluginBase;
22
+ }());
23
+
24
+ export { ConsoleTypes, PluginBase, ReportType };
25
+ //# sourceMappingURL=index.esm.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.esm.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;"}