@project-sunbird/telemetry-sdk 0.1.0 → 1.0.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/{dist/index.js → index.js} +13 -11
- package/package.json +27 -24
- package/_config.yml +0 -1
- package/core/auth-token-generator.min.js +0 -8
- package/core/telemetrySyncManager.js +0 -96
- package/core/telemetryV3Interface.js +0 -607
- package/coverage/PhantomJS 2.1.1 (Mac OS 0.0.0)/lcov-report/base.css +0 -224
- package/coverage/PhantomJS 2.1.1 (Mac OS 0.0.0)/lcov-report/block-navigation.js +0 -79
- package/coverage/PhantomJS 2.1.1 (Mac OS 0.0.0)/lcov-report/favicon.png +0 -0
- package/coverage/PhantomJS 2.1.1 (Mac OS 0.0.0)/lcov-report/index.html +0 -96
- package/coverage/PhantomJS 2.1.1 (Mac OS 0.0.0)/lcov-report/prettify.css +0 -1
- package/coverage/PhantomJS 2.1.1 (Mac OS 0.0.0)/lcov-report/prettify.js +0 -2
- package/coverage/PhantomJS 2.1.1 (Mac OS 0.0.0)/lcov-report/sort-arrow-sprite.png +0 -0
- package/coverage/PhantomJS 2.1.1 (Mac OS 0.0.0)/lcov-report/sorter.js +0 -170
- package/coverage/PhantomJS 2.1.1 (Mac OS 0.0.0)/lcov.info +0 -0
- package/dist/README.md +0 -915
- package/dist/package.json +0 -68
- package/gruntfile.js +0 -40
- package/gulpfile.js +0 -20
- package/karma.renderer.config.js +0 -76
- package/libs/ajv.min.js +0 -3
- package/libs/detectClient.js +0 -51
- package/libs/fingerprint2.min.js +0 -1411
- package/libs/md5.js +0 -334
- package/libs/ua-parser.min.js +0 -1
- package/npm-audit.html +0 -2949
- package/schema/actor.json +0 -15
- package/schema/assess.json +0 -68
- package/schema/audit.json +0 -54
- package/schema/cdata.json +0 -21
- package/schema/common.json +0 -38
- package/schema/context.json +0 -34
- package/schema/dspec.json +0 -58
- package/schema/end.json +0 -61
- package/schema/error.json +0 -62
- package/schema/event.json +0 -51
- package/schema/exdata.json +0 -43
- package/schema/feedback.json +0 -47
- package/schema/heartbeat.json +0 -32
- package/schema/impression.json +0 -94
- package/schema/inlineobject.json +0 -39
- package/schema/interact.json +0 -69
- package/schema/interrupt.json +0 -46
- package/schema/items.json +0 -57
- package/schema/log.json +0 -63
- package/schema/object.json +0 -21
- package/schema/parent.json +0 -14
- package/schema/pdata.json +0 -19
- package/schema/plugin.json +0 -23
- package/schema/question.json +0 -55
- package/schema/response.json +0 -53
- package/schema/rollup.json +0 -22
- package/schema/search.json +0 -71
- package/schema/share.json +0 -49
- package/schema/spec.js +0 -29
- package/schema/start.json +0 -64
- package/schema/target.json +0 -27
- package/schema/telemetry-spec.js +0 -1
- package/schema/uaspec.json +0 -26
- package/test/coverage/PhantomJS 2.1.1 (Mac OS X 0.0.0)/base.css +0 -213
- package/test/coverage/PhantomJS 2.1.1 (Mac OS X 0.0.0)/cobertura-coverage.xml +0 -391
- package/test/coverage/PhantomJS 2.1.1 (Mac OS X 0.0.0)/core/index.html +0 -106
- package/test/coverage/PhantomJS 2.1.1 (Mac OS X 0.0.0)/core/telemetrySyncManager.js.html +0 -263
- package/test/coverage/PhantomJS 2.1.1 (Mac OS X 0.0.0)/core/telemetryV3Interface.js.html +0 -1628
- package/test/coverage/PhantomJS 2.1.1 (Mac OS X 0.0.0)/index.html +0 -93
- package/test/coverage/PhantomJS 2.1.1 (Mac OS X 0.0.0)/prettify.css +0 -1
- package/test/coverage/PhantomJS 2.1.1 (Mac OS X 0.0.0)/prettify.js +0 -1
- package/test/coverage/PhantomJS 2.1.1 (Mac OS X 0.0.0)/sort-arrow-sprite.png +0 -0
- package/test/coverage/PhantomJS 2.1.1 (Mac OS X 0.0.0)/sorter.js +0 -158
- package/test/coverage/coverage-final.json +0 -3
- package/test/coverage/lcov.info +0 -461
- package/test/spec/telemetry-spec.js +0 -1
- package/test/spec/telemetrySyncManager.spec.js +0 -91
- package/test/spec/telemetryV3Interface.spec.js +0 -567
- package/test/spec/telemetrylib.fun.spec.js +0 -408
|
@@ -1,1628 +0,0 @@
|
|
|
1
|
-
<!doctype html>
|
|
2
|
-
<html lang="en">
|
|
3
|
-
<head>
|
|
4
|
-
<title>Code coverage report for core/telemetryV3Interface.js</title>
|
|
5
|
-
<meta charset="utf-8" />
|
|
6
|
-
<link rel="stylesheet" href="../prettify.css" />
|
|
7
|
-
<link rel="stylesheet" href="../base.css" />
|
|
8
|
-
<meta name="viewport" content="width=device-width, initial-scale=1">
|
|
9
|
-
<style type='text/css'>
|
|
10
|
-
.coverage-summary .sorter {
|
|
11
|
-
background-image: url(../sort-arrow-sprite.png);
|
|
12
|
-
}
|
|
13
|
-
</style>
|
|
14
|
-
</head>
|
|
15
|
-
<body>
|
|
16
|
-
<div class='wrapper'>
|
|
17
|
-
<div class='pad1'>
|
|
18
|
-
<h1>
|
|
19
|
-
<a href="../index.html">all files</a> / <a href="index.html">core/</a> telemetryV3Interface.js
|
|
20
|
-
</h1>
|
|
21
|
-
<div class='clearfix'>
|
|
22
|
-
<div class='fl pad1y space-right2'>
|
|
23
|
-
<span class="strong">91.41% </span>
|
|
24
|
-
<span class="quiet">Statements</span>
|
|
25
|
-
<span class='fraction'>181/198</span>
|
|
26
|
-
</div>
|
|
27
|
-
<div class='fl pad1y space-right2'>
|
|
28
|
-
<span class="strong">82.14% </span>
|
|
29
|
-
<span class="quiet">Branches</span>
|
|
30
|
-
<span class='fraction'>92/112</span>
|
|
31
|
-
</div>
|
|
32
|
-
<div class='fl pad1y space-right2'>
|
|
33
|
-
<span class="strong">92.68% </span>
|
|
34
|
-
<span class="quiet">Functions</span>
|
|
35
|
-
<span class='fraction'>38/41</span>
|
|
36
|
-
</div>
|
|
37
|
-
<div class='fl pad1y space-right2'>
|
|
38
|
-
<span class="strong">91.37% </span>
|
|
39
|
-
<span class="quiet">Lines</span>
|
|
40
|
-
<span class='fraction'>180/197</span>
|
|
41
|
-
</div>
|
|
42
|
-
</div>
|
|
43
|
-
</div>
|
|
44
|
-
<div class='status-line high'></div>
|
|
45
|
-
<pre><table class="coverage">
|
|
46
|
-
<tr><td class="line-count quiet">1
|
|
47
|
-
2
|
|
48
|
-
3
|
|
49
|
-
4
|
|
50
|
-
5
|
|
51
|
-
6
|
|
52
|
-
7
|
|
53
|
-
8
|
|
54
|
-
9
|
|
55
|
-
10
|
|
56
|
-
11
|
|
57
|
-
12
|
|
58
|
-
13
|
|
59
|
-
14
|
|
60
|
-
15
|
|
61
|
-
16
|
|
62
|
-
17
|
|
63
|
-
18
|
|
64
|
-
19
|
|
65
|
-
20
|
|
66
|
-
21
|
|
67
|
-
22
|
|
68
|
-
23
|
|
69
|
-
24
|
|
70
|
-
25
|
|
71
|
-
26
|
|
72
|
-
27
|
|
73
|
-
28
|
|
74
|
-
29
|
|
75
|
-
30
|
|
76
|
-
31
|
|
77
|
-
32
|
|
78
|
-
33
|
|
79
|
-
34
|
|
80
|
-
35
|
|
81
|
-
36
|
|
82
|
-
37
|
|
83
|
-
38
|
|
84
|
-
39
|
|
85
|
-
40
|
|
86
|
-
41
|
|
87
|
-
42
|
|
88
|
-
43
|
|
89
|
-
44
|
|
90
|
-
45
|
|
91
|
-
46
|
|
92
|
-
47
|
|
93
|
-
48
|
|
94
|
-
49
|
|
95
|
-
50
|
|
96
|
-
51
|
|
97
|
-
52
|
|
98
|
-
53
|
|
99
|
-
54
|
|
100
|
-
55
|
|
101
|
-
56
|
|
102
|
-
57
|
|
103
|
-
58
|
|
104
|
-
59
|
|
105
|
-
60
|
|
106
|
-
61
|
|
107
|
-
62
|
|
108
|
-
63
|
|
109
|
-
64
|
|
110
|
-
65
|
|
111
|
-
66
|
|
112
|
-
67
|
|
113
|
-
68
|
|
114
|
-
69
|
|
115
|
-
70
|
|
116
|
-
71
|
|
117
|
-
72
|
|
118
|
-
73
|
|
119
|
-
74
|
|
120
|
-
75
|
|
121
|
-
76
|
|
122
|
-
77
|
|
123
|
-
78
|
|
124
|
-
79
|
|
125
|
-
80
|
|
126
|
-
81
|
|
127
|
-
82
|
|
128
|
-
83
|
|
129
|
-
84
|
|
130
|
-
85
|
|
131
|
-
86
|
|
132
|
-
87
|
|
133
|
-
88
|
|
134
|
-
89
|
|
135
|
-
90
|
|
136
|
-
91
|
|
137
|
-
92
|
|
138
|
-
93
|
|
139
|
-
94
|
|
140
|
-
95
|
|
141
|
-
96
|
|
142
|
-
97
|
|
143
|
-
98
|
|
144
|
-
99
|
|
145
|
-
100
|
|
146
|
-
101
|
|
147
|
-
102
|
|
148
|
-
103
|
|
149
|
-
104
|
|
150
|
-
105
|
|
151
|
-
106
|
|
152
|
-
107
|
|
153
|
-
108
|
|
154
|
-
109
|
|
155
|
-
110
|
|
156
|
-
111
|
|
157
|
-
112
|
|
158
|
-
113
|
|
159
|
-
114
|
|
160
|
-
115
|
|
161
|
-
116
|
|
162
|
-
117
|
|
163
|
-
118
|
|
164
|
-
119
|
|
165
|
-
120
|
|
166
|
-
121
|
|
167
|
-
122
|
|
168
|
-
123
|
|
169
|
-
124
|
|
170
|
-
125
|
|
171
|
-
126
|
|
172
|
-
127
|
|
173
|
-
128
|
|
174
|
-
129
|
|
175
|
-
130
|
|
176
|
-
131
|
|
177
|
-
132
|
|
178
|
-
133
|
|
179
|
-
134
|
|
180
|
-
135
|
|
181
|
-
136
|
|
182
|
-
137
|
|
183
|
-
138
|
|
184
|
-
139
|
|
185
|
-
140
|
|
186
|
-
141
|
|
187
|
-
142
|
|
188
|
-
143
|
|
189
|
-
144
|
|
190
|
-
145
|
|
191
|
-
146
|
|
192
|
-
147
|
|
193
|
-
148
|
|
194
|
-
149
|
|
195
|
-
150
|
|
196
|
-
151
|
|
197
|
-
152
|
|
198
|
-
153
|
|
199
|
-
154
|
|
200
|
-
155
|
|
201
|
-
156
|
|
202
|
-
157
|
|
203
|
-
158
|
|
204
|
-
159
|
|
205
|
-
160
|
|
206
|
-
161
|
|
207
|
-
162
|
|
208
|
-
163
|
|
209
|
-
164
|
|
210
|
-
165
|
|
211
|
-
166
|
|
212
|
-
167
|
|
213
|
-
168
|
|
214
|
-
169
|
|
215
|
-
170
|
|
216
|
-
171
|
|
217
|
-
172
|
|
218
|
-
173
|
|
219
|
-
174
|
|
220
|
-
175
|
|
221
|
-
176
|
|
222
|
-
177
|
|
223
|
-
178
|
|
224
|
-
179
|
|
225
|
-
180
|
|
226
|
-
181
|
|
227
|
-
182
|
|
228
|
-
183
|
|
229
|
-
184
|
|
230
|
-
185
|
|
231
|
-
186
|
|
232
|
-
187
|
|
233
|
-
188
|
|
234
|
-
189
|
|
235
|
-
190
|
|
236
|
-
191
|
|
237
|
-
192
|
|
238
|
-
193
|
|
239
|
-
194
|
|
240
|
-
195
|
|
241
|
-
196
|
|
242
|
-
197
|
|
243
|
-
198
|
|
244
|
-
199
|
|
245
|
-
200
|
|
246
|
-
201
|
|
247
|
-
202
|
|
248
|
-
203
|
|
249
|
-
204
|
|
250
|
-
205
|
|
251
|
-
206
|
|
252
|
-
207
|
|
253
|
-
208
|
|
254
|
-
209
|
|
255
|
-
210
|
|
256
|
-
211
|
|
257
|
-
212
|
|
258
|
-
213
|
|
259
|
-
214
|
|
260
|
-
215
|
|
261
|
-
216
|
|
262
|
-
217
|
|
263
|
-
218
|
|
264
|
-
219
|
|
265
|
-
220
|
|
266
|
-
221
|
|
267
|
-
222
|
|
268
|
-
223
|
|
269
|
-
224
|
|
270
|
-
225
|
|
271
|
-
226
|
|
272
|
-
227
|
|
273
|
-
228
|
|
274
|
-
229
|
|
275
|
-
230
|
|
276
|
-
231
|
|
277
|
-
232
|
|
278
|
-
233
|
|
279
|
-
234
|
|
280
|
-
235
|
|
281
|
-
236
|
|
282
|
-
237
|
|
283
|
-
238
|
|
284
|
-
239
|
|
285
|
-
240
|
|
286
|
-
241
|
|
287
|
-
242
|
|
288
|
-
243
|
|
289
|
-
244
|
|
290
|
-
245
|
|
291
|
-
246
|
|
292
|
-
247
|
|
293
|
-
248
|
|
294
|
-
249
|
|
295
|
-
250
|
|
296
|
-
251
|
|
297
|
-
252
|
|
298
|
-
253
|
|
299
|
-
254
|
|
300
|
-
255
|
|
301
|
-
256
|
|
302
|
-
257
|
|
303
|
-
258
|
|
304
|
-
259
|
|
305
|
-
260
|
|
306
|
-
261
|
|
307
|
-
262
|
|
308
|
-
263
|
|
309
|
-
264
|
|
310
|
-
265
|
|
311
|
-
266
|
|
312
|
-
267
|
|
313
|
-
268
|
|
314
|
-
269
|
|
315
|
-
270
|
|
316
|
-
271
|
|
317
|
-
272
|
|
318
|
-
273
|
|
319
|
-
274
|
|
320
|
-
275
|
|
321
|
-
276
|
|
322
|
-
277
|
|
323
|
-
278
|
|
324
|
-
279
|
|
325
|
-
280
|
|
326
|
-
281
|
|
327
|
-
282
|
|
328
|
-
283
|
|
329
|
-
284
|
|
330
|
-
285
|
|
331
|
-
286
|
|
332
|
-
287
|
|
333
|
-
288
|
|
334
|
-
289
|
|
335
|
-
290
|
|
336
|
-
291
|
|
337
|
-
292
|
|
338
|
-
293
|
|
339
|
-
294
|
|
340
|
-
295
|
|
341
|
-
296
|
|
342
|
-
297
|
|
343
|
-
298
|
|
344
|
-
299
|
|
345
|
-
300
|
|
346
|
-
301
|
|
347
|
-
302
|
|
348
|
-
303
|
|
349
|
-
304
|
|
350
|
-
305
|
|
351
|
-
306
|
|
352
|
-
307
|
|
353
|
-
308
|
|
354
|
-
309
|
|
355
|
-
310
|
|
356
|
-
311
|
|
357
|
-
312
|
|
358
|
-
313
|
|
359
|
-
314
|
|
360
|
-
315
|
|
361
|
-
316
|
|
362
|
-
317
|
|
363
|
-
318
|
|
364
|
-
319
|
|
365
|
-
320
|
|
366
|
-
321
|
|
367
|
-
322
|
|
368
|
-
323
|
|
369
|
-
324
|
|
370
|
-
325
|
|
371
|
-
326
|
|
372
|
-
327
|
|
373
|
-
328
|
|
374
|
-
329
|
|
375
|
-
330
|
|
376
|
-
331
|
|
377
|
-
332
|
|
378
|
-
333
|
|
379
|
-
334
|
|
380
|
-
335
|
|
381
|
-
336
|
|
382
|
-
337
|
|
383
|
-
338
|
|
384
|
-
339
|
|
385
|
-
340
|
|
386
|
-
341
|
|
387
|
-
342
|
|
388
|
-
343
|
|
389
|
-
344
|
|
390
|
-
345
|
|
391
|
-
346
|
|
392
|
-
347
|
|
393
|
-
348
|
|
394
|
-
349
|
|
395
|
-
350
|
|
396
|
-
351
|
|
397
|
-
352
|
|
398
|
-
353
|
|
399
|
-
354
|
|
400
|
-
355
|
|
401
|
-
356
|
|
402
|
-
357
|
|
403
|
-
358
|
|
404
|
-
359
|
|
405
|
-
360
|
|
406
|
-
361
|
|
407
|
-
362
|
|
408
|
-
363
|
|
409
|
-
364
|
|
410
|
-
365
|
|
411
|
-
366
|
|
412
|
-
367
|
|
413
|
-
368
|
|
414
|
-
369
|
|
415
|
-
370
|
|
416
|
-
371
|
|
417
|
-
372
|
|
418
|
-
373
|
|
419
|
-
374
|
|
420
|
-
375
|
|
421
|
-
376
|
|
422
|
-
377
|
|
423
|
-
378
|
|
424
|
-
379
|
|
425
|
-
380
|
|
426
|
-
381
|
|
427
|
-
382
|
|
428
|
-
383
|
|
429
|
-
384
|
|
430
|
-
385
|
|
431
|
-
386
|
|
432
|
-
387
|
|
433
|
-
388
|
|
434
|
-
389
|
|
435
|
-
390
|
|
436
|
-
391
|
|
437
|
-
392
|
|
438
|
-
393
|
|
439
|
-
394
|
|
440
|
-
395
|
|
441
|
-
396
|
|
442
|
-
397
|
|
443
|
-
398
|
|
444
|
-
399
|
|
445
|
-
400
|
|
446
|
-
401
|
|
447
|
-
402
|
|
448
|
-
403
|
|
449
|
-
404
|
|
450
|
-
405
|
|
451
|
-
406
|
|
452
|
-
407
|
|
453
|
-
408
|
|
454
|
-
409
|
|
455
|
-
410
|
|
456
|
-
411
|
|
457
|
-
412
|
|
458
|
-
413
|
|
459
|
-
414
|
|
460
|
-
415
|
|
461
|
-
416
|
|
462
|
-
417
|
|
463
|
-
418
|
|
464
|
-
419
|
|
465
|
-
420
|
|
466
|
-
421
|
|
467
|
-
422
|
|
468
|
-
423
|
|
469
|
-
424
|
|
470
|
-
425
|
|
471
|
-
426
|
|
472
|
-
427
|
|
473
|
-
428
|
|
474
|
-
429
|
|
475
|
-
430
|
|
476
|
-
431
|
|
477
|
-
432
|
|
478
|
-
433
|
|
479
|
-
434
|
|
480
|
-
435
|
|
481
|
-
436
|
|
482
|
-
437
|
|
483
|
-
438
|
|
484
|
-
439
|
|
485
|
-
440
|
|
486
|
-
441
|
|
487
|
-
442
|
|
488
|
-
443
|
|
489
|
-
444
|
|
490
|
-
445
|
|
491
|
-
446
|
|
492
|
-
447
|
|
493
|
-
448
|
|
494
|
-
449
|
|
495
|
-
450
|
|
496
|
-
451
|
|
497
|
-
452
|
|
498
|
-
453
|
|
499
|
-
454
|
|
500
|
-
455
|
|
501
|
-
456
|
|
502
|
-
457
|
|
503
|
-
458
|
|
504
|
-
459
|
|
505
|
-
460
|
|
506
|
-
461
|
|
507
|
-
462
|
|
508
|
-
463
|
|
509
|
-
464
|
|
510
|
-
465
|
|
511
|
-
466
|
|
512
|
-
467
|
|
513
|
-
468
|
|
514
|
-
469
|
|
515
|
-
470
|
|
516
|
-
471
|
|
517
|
-
472
|
|
518
|
-
473
|
|
519
|
-
474
|
|
520
|
-
475
|
|
521
|
-
476
|
|
522
|
-
477
|
|
523
|
-
478
|
|
524
|
-
479
|
|
525
|
-
480
|
|
526
|
-
481
|
|
527
|
-
482
|
|
528
|
-
483
|
|
529
|
-
484
|
|
530
|
-
485
|
|
531
|
-
486
|
|
532
|
-
487
|
|
533
|
-
488
|
|
534
|
-
489
|
|
535
|
-
490
|
|
536
|
-
491
|
|
537
|
-
492
|
|
538
|
-
493
|
|
539
|
-
494
|
|
540
|
-
495
|
|
541
|
-
496
|
|
542
|
-
497
|
|
543
|
-
498
|
|
544
|
-
499
|
|
545
|
-
500
|
|
546
|
-
501
|
|
547
|
-
502
|
|
548
|
-
503
|
|
549
|
-
504
|
|
550
|
-
505
|
|
551
|
-
506
|
|
552
|
-
507
|
|
553
|
-
508
|
|
554
|
-
509
|
|
555
|
-
510
|
|
556
|
-
511
|
|
557
|
-
512
|
|
558
|
-
513
|
|
559
|
-
514
|
|
560
|
-
515
|
|
561
|
-
516
|
|
562
|
-
517
|
|
563
|
-
518
|
|
564
|
-
519
|
|
565
|
-
520
|
|
566
|
-
521
|
|
567
|
-
522</td><td class="line-coverage quiet"><span class="cline-any cline-neutral"> </span>
|
|
568
|
-
<span class="cline-any cline-neutral"> </span>
|
|
569
|
-
<span class="cline-any cline-neutral"> </span>
|
|
570
|
-
<span class="cline-any cline-neutral"> </span>
|
|
571
|
-
<span class="cline-any cline-neutral"> </span>
|
|
572
|
-
<span class="cline-any cline-neutral"> </span>
|
|
573
|
-
<span class="cline-any cline-neutral"> </span>
|
|
574
|
-
<span class="cline-any cline-yes">1×</span>
|
|
575
|
-
<span class="cline-any cline-no"> </span>
|
|
576
|
-
<span class="cline-any cline-neutral"> </span>
|
|
577
|
-
<span class="cline-any cline-neutral"> </span>
|
|
578
|
-
<span class="cline-any cline-neutral"> </span>
|
|
579
|
-
<span class="cline-any cline-yes">1×</span>
|
|
580
|
-
<span class="cline-any cline-neutral"> </span>
|
|
581
|
-
<span class="cline-any cline-yes">44×</span>
|
|
582
|
-
<span class="cline-any cline-neutral"> </span>
|
|
583
|
-
<span class="cline-any cline-neutral"> </span>
|
|
584
|
-
<span class="cline-any cline-yes">44×</span>
|
|
585
|
-
<span class="cline-any cline-neutral"> </span>
|
|
586
|
-
<span class="cline-any cline-no"> </span>
|
|
587
|
-
<span class="cline-any cline-neutral"> </span>
|
|
588
|
-
<span class="cline-any cline-neutral"> </span>
|
|
589
|
-
<span class="cline-any cline-neutral"> </span>
|
|
590
|
-
<span class="cline-any cline-neutral"> </span>
|
|
591
|
-
<span class="cline-any cline-neutral"> </span>
|
|
592
|
-
<span class="cline-any cline-yes">1×</span>
|
|
593
|
-
<span class="cline-any cline-yes">1×</span>
|
|
594
|
-
<span class="cline-any cline-yes">1×</span>
|
|
595
|
-
<span class="cline-any cline-yes">1×</span>
|
|
596
|
-
<span class="cline-any cline-yes">1×</span>
|
|
597
|
-
<span class="cline-any cline-yes">1×</span>
|
|
598
|
-
<span class="cline-any cline-yes">1×</span>
|
|
599
|
-
<span class="cline-any cline-yes">1×</span>
|
|
600
|
-
<span class="cline-any cline-yes">1×</span>
|
|
601
|
-
<span class="cline-any cline-yes">1×</span>
|
|
602
|
-
<span class="cline-any cline-neutral"> </span>
|
|
603
|
-
<span class="cline-any cline-neutral"> </span>
|
|
604
|
-
<span class="cline-any cline-neutral"> </span>
|
|
605
|
-
<span class="cline-any cline-neutral"> </span>
|
|
606
|
-
<span class="cline-any cline-neutral"> </span>
|
|
607
|
-
<span class="cline-any cline-neutral"> </span>
|
|
608
|
-
<span class="cline-any cline-neutral"> </span>
|
|
609
|
-
<span class="cline-any cline-neutral"> </span>
|
|
610
|
-
<span class="cline-any cline-neutral"> </span>
|
|
611
|
-
<span class="cline-any cline-neutral"> </span>
|
|
612
|
-
<span class="cline-any cline-neutral"> </span>
|
|
613
|
-
<span class="cline-any cline-neutral"> </span>
|
|
614
|
-
<span class="cline-any cline-neutral"> </span>
|
|
615
|
-
<span class="cline-any cline-neutral"> </span>
|
|
616
|
-
<span class="cline-any cline-neutral"> </span>
|
|
617
|
-
<span class="cline-any cline-neutral"> </span>
|
|
618
|
-
<span class="cline-any cline-neutral"> </span>
|
|
619
|
-
<span class="cline-any cline-neutral"> </span>
|
|
620
|
-
<span class="cline-any cline-yes">1×</span>
|
|
621
|
-
<span class="cline-any cline-neutral"> </span>
|
|
622
|
-
<span class="cline-any cline-neutral"> </span>
|
|
623
|
-
<span class="cline-any cline-neutral"> </span>
|
|
624
|
-
<span class="cline-any cline-neutral"> </span>
|
|
625
|
-
<span class="cline-any cline-neutral"> </span>
|
|
626
|
-
<span class="cline-any cline-neutral"> </span>
|
|
627
|
-
<span class="cline-any cline-neutral"> </span>
|
|
628
|
-
<span class="cline-any cline-neutral"> </span>
|
|
629
|
-
<span class="cline-any cline-yes">1×</span>
|
|
630
|
-
<span class="cline-any cline-yes">1×</span>
|
|
631
|
-
<span class="cline-any cline-yes">1×</span>
|
|
632
|
-
<span class="cline-any cline-yes">1×</span>
|
|
633
|
-
<span class="cline-any cline-yes">1×</span>
|
|
634
|
-
<span class="cline-any cline-neutral"> </span>
|
|
635
|
-
<span class="cline-any cline-neutral"> </span>
|
|
636
|
-
<span class="cline-any cline-neutral"> </span>
|
|
637
|
-
<span class="cline-any cline-neutral"> </span>
|
|
638
|
-
<span class="cline-any cline-neutral"> </span>
|
|
639
|
-
<span class="cline-any cline-yes">1×</span>
|
|
640
|
-
<span class="cline-any cline-yes">7×</span>
|
|
641
|
-
<span class="cline-any cline-neutral"> </span>
|
|
642
|
-
<span class="cline-any cline-neutral"> </span>
|
|
643
|
-
<span class="cline-any cline-neutral"> </span>
|
|
644
|
-
<span class="cline-any cline-neutral"> </span>
|
|
645
|
-
<span class="cline-any cline-neutral"> </span>
|
|
646
|
-
<span class="cline-any cline-neutral"> </span>
|
|
647
|
-
<span class="cline-any cline-neutral"> </span>
|
|
648
|
-
<span class="cline-any cline-neutral"> </span>
|
|
649
|
-
<span class="cline-any cline-neutral"> </span>
|
|
650
|
-
<span class="cline-any cline-neutral"> </span>
|
|
651
|
-
<span class="cline-any cline-neutral"> </span>
|
|
652
|
-
<span class="cline-any cline-yes">1×</span>
|
|
653
|
-
<span class="cline-any cline-yes">4×</span>
|
|
654
|
-
<span class="cline-any cline-yes">4×</span>
|
|
655
|
-
<span class="cline-any cline-yes">4×</span>
|
|
656
|
-
<span class="cline-any cline-yes">4×</span>
|
|
657
|
-
<span class="cline-any cline-neutral"> </span>
|
|
658
|
-
<span class="cline-any cline-neutral"> </span>
|
|
659
|
-
<span class="cline-any cline-yes">4×</span>
|
|
660
|
-
<span class="cline-any cline-yes">1×</span>
|
|
661
|
-
<span class="cline-any cline-neutral"> </span>
|
|
662
|
-
<span class="cline-any cline-neutral"> </span>
|
|
663
|
-
<span class="cline-any cline-yes">4×</span>
|
|
664
|
-
<span class="cline-any cline-yes">4×</span>
|
|
665
|
-
<span class="cline-any cline-yes">4×</span>
|
|
666
|
-
<span class="cline-any cline-yes">4×</span>
|
|
667
|
-
<span class="cline-any cline-neutral"> </span>
|
|
668
|
-
<span class="cline-any cline-neutral"> </span>
|
|
669
|
-
<span class="cline-any cline-neutral"> </span>
|
|
670
|
-
<span class="cline-any cline-neutral"> </span>
|
|
671
|
-
<span class="cline-any cline-neutral"> </span>
|
|
672
|
-
<span class="cline-any cline-neutral"> </span>
|
|
673
|
-
<span class="cline-any cline-neutral"> </span>
|
|
674
|
-
<span class="cline-any cline-yes">1×</span>
|
|
675
|
-
<span class="cline-any cline-yes">3×</span>
|
|
676
|
-
<span class="cline-any cline-yes">3×</span>
|
|
677
|
-
<span class="cline-any cline-neutral"> </span>
|
|
678
|
-
<span class="cline-any cline-neutral"> </span>
|
|
679
|
-
<span class="cline-any cline-neutral"> </span>
|
|
680
|
-
<span class="cline-any cline-neutral"> </span>
|
|
681
|
-
<span class="cline-any cline-neutral"> </span>
|
|
682
|
-
<span class="cline-any cline-neutral"> </span>
|
|
683
|
-
<span class="cline-any cline-neutral"> </span>
|
|
684
|
-
<span class="cline-any cline-yes">1×</span>
|
|
685
|
-
<span class="cline-any cline-yes">5×</span>
|
|
686
|
-
<span class="cline-any cline-yes">5×</span>
|
|
687
|
-
<span class="cline-any cline-neutral"> </span>
|
|
688
|
-
<span class="cline-any cline-neutral"> </span>
|
|
689
|
-
<span class="cline-any cline-neutral"> </span>
|
|
690
|
-
<span class="cline-any cline-neutral"> </span>
|
|
691
|
-
<span class="cline-any cline-neutral"> </span>
|
|
692
|
-
<span class="cline-any cline-neutral"> </span>
|
|
693
|
-
<span class="cline-any cline-neutral"> </span>
|
|
694
|
-
<span class="cline-any cline-yes">1×</span>
|
|
695
|
-
<span class="cline-any cline-yes">3×</span>
|
|
696
|
-
<span class="cline-any cline-yes">3×</span>
|
|
697
|
-
<span class="cline-any cline-neutral"> </span>
|
|
698
|
-
<span class="cline-any cline-neutral"> </span>
|
|
699
|
-
<span class="cline-any cline-neutral"> </span>
|
|
700
|
-
<span class="cline-any cline-neutral"> </span>
|
|
701
|
-
<span class="cline-any cline-neutral"> </span>
|
|
702
|
-
<span class="cline-any cline-neutral"> </span>
|
|
703
|
-
<span class="cline-any cline-neutral"> </span>
|
|
704
|
-
<span class="cline-any cline-yes">1×</span>
|
|
705
|
-
<span class="cline-any cline-yes">3×</span>
|
|
706
|
-
<span class="cline-any cline-yes">3×</span>
|
|
707
|
-
<span class="cline-any cline-neutral"> </span>
|
|
708
|
-
<span class="cline-any cline-neutral"> </span>
|
|
709
|
-
<span class="cline-any cline-neutral"> </span>
|
|
710
|
-
<span class="cline-any cline-neutral"> </span>
|
|
711
|
-
<span class="cline-any cline-neutral"> </span>
|
|
712
|
-
<span class="cline-any cline-neutral"> </span>
|
|
713
|
-
<span class="cline-any cline-neutral"> </span>
|
|
714
|
-
<span class="cline-any cline-yes">1×</span>
|
|
715
|
-
<span class="cline-any cline-yes">2×</span>
|
|
716
|
-
<span class="cline-any cline-yes">2×</span>
|
|
717
|
-
<span class="cline-any cline-neutral"> </span>
|
|
718
|
-
<span class="cline-any cline-neutral"> </span>
|
|
719
|
-
<span class="cline-any cline-neutral"> </span>
|
|
720
|
-
<span class="cline-any cline-neutral"> </span>
|
|
721
|
-
<span class="cline-any cline-neutral"> </span>
|
|
722
|
-
<span class="cline-any cline-neutral"> </span>
|
|
723
|
-
<span class="cline-any cline-neutral"> </span>
|
|
724
|
-
<span class="cline-any cline-yes">1×</span>
|
|
725
|
-
<span class="cline-any cline-yes">2×</span>
|
|
726
|
-
<span class="cline-any cline-neutral"> </span>
|
|
727
|
-
<span class="cline-any cline-neutral"> </span>
|
|
728
|
-
<span class="cline-any cline-neutral"> </span>
|
|
729
|
-
<span class="cline-any cline-yes">2×</span>
|
|
730
|
-
<span class="cline-any cline-yes">2×</span>
|
|
731
|
-
<span class="cline-any cline-neutral"> </span>
|
|
732
|
-
<span class="cline-any cline-neutral"> </span>
|
|
733
|
-
<span class="cline-any cline-neutral"> </span>
|
|
734
|
-
<span class="cline-any cline-neutral"> </span>
|
|
735
|
-
<span class="cline-any cline-neutral"> </span>
|
|
736
|
-
<span class="cline-any cline-neutral"> </span>
|
|
737
|
-
<span class="cline-any cline-neutral"> </span>
|
|
738
|
-
<span class="cline-any cline-yes">1×</span>
|
|
739
|
-
<span class="cline-any cline-yes">2×</span>
|
|
740
|
-
<span class="cline-any cline-yes">2×</span>
|
|
741
|
-
<span class="cline-any cline-neutral"> </span>
|
|
742
|
-
<span class="cline-any cline-neutral"> </span>
|
|
743
|
-
<span class="cline-any cline-neutral"> </span>
|
|
744
|
-
<span class="cline-any cline-neutral"> </span>
|
|
745
|
-
<span class="cline-any cline-neutral"> </span>
|
|
746
|
-
<span class="cline-any cline-neutral"> </span>
|
|
747
|
-
<span class="cline-any cline-neutral"> </span>
|
|
748
|
-
<span class="cline-any cline-yes">1×</span>
|
|
749
|
-
<span class="cline-any cline-yes">2×</span>
|
|
750
|
-
<span class="cline-any cline-yes">2×</span>
|
|
751
|
-
<span class="cline-any cline-neutral"> </span>
|
|
752
|
-
<span class="cline-any cline-neutral"> </span>
|
|
753
|
-
<span class="cline-any cline-neutral"> </span>
|
|
754
|
-
<span class="cline-any cline-neutral"> </span>
|
|
755
|
-
<span class="cline-any cline-neutral"> </span>
|
|
756
|
-
<span class="cline-any cline-neutral"> </span>
|
|
757
|
-
<span class="cline-any cline-neutral"> </span>
|
|
758
|
-
<span class="cline-any cline-yes">1×</span>
|
|
759
|
-
<span class="cline-any cline-yes">4×</span>
|
|
760
|
-
<span class="cline-any cline-yes">4×</span>
|
|
761
|
-
<span class="cline-any cline-neutral"> </span>
|
|
762
|
-
<span class="cline-any cline-neutral"> </span>
|
|
763
|
-
<span class="cline-any cline-neutral"> </span>
|
|
764
|
-
<span class="cline-any cline-neutral"> </span>
|
|
765
|
-
<span class="cline-any cline-neutral"> </span>
|
|
766
|
-
<span class="cline-any cline-neutral"> </span>
|
|
767
|
-
<span class="cline-any cline-neutral"> </span>
|
|
768
|
-
<span class="cline-any cline-yes">1×</span>
|
|
769
|
-
<span class="cline-any cline-yes">2×</span>
|
|
770
|
-
<span class="cline-any cline-yes">2×</span>
|
|
771
|
-
<span class="cline-any cline-neutral"> </span>
|
|
772
|
-
<span class="cline-any cline-neutral"> </span>
|
|
773
|
-
<span class="cline-any cline-neutral"> </span>
|
|
774
|
-
<span class="cline-any cline-neutral"> </span>
|
|
775
|
-
<span class="cline-any cline-neutral"> </span>
|
|
776
|
-
<span class="cline-any cline-neutral"> </span>
|
|
777
|
-
<span class="cline-any cline-neutral"> </span>
|
|
778
|
-
<span class="cline-any cline-yes">1×</span>
|
|
779
|
-
<span class="cline-any cline-yes">2×</span>
|
|
780
|
-
<span class="cline-any cline-yes">2×</span>
|
|
781
|
-
<span class="cline-any cline-neutral"> </span>
|
|
782
|
-
<span class="cline-any cline-neutral"> </span>
|
|
783
|
-
<span class="cline-any cline-neutral"> </span>
|
|
784
|
-
<span class="cline-any cline-neutral"> </span>
|
|
785
|
-
<span class="cline-any cline-neutral"> </span>
|
|
786
|
-
<span class="cline-any cline-neutral"> </span>
|
|
787
|
-
<span class="cline-any cline-neutral"> </span>
|
|
788
|
-
<span class="cline-any cline-yes">1×</span>
|
|
789
|
-
<span class="cline-any cline-yes">2×</span>
|
|
790
|
-
<span class="cline-any cline-yes">2×</span>
|
|
791
|
-
<span class="cline-any cline-neutral"> </span>
|
|
792
|
-
<span class="cline-any cline-neutral"> </span>
|
|
793
|
-
<span class="cline-any cline-neutral"> </span>
|
|
794
|
-
<span class="cline-any cline-neutral"> </span>
|
|
795
|
-
<span class="cline-any cline-neutral"> </span>
|
|
796
|
-
<span class="cline-any cline-neutral"> </span>
|
|
797
|
-
<span class="cline-any cline-neutral"> </span>
|
|
798
|
-
<span class="cline-any cline-yes">1×</span>
|
|
799
|
-
<span class="cline-any cline-yes">1×</span>
|
|
800
|
-
<span class="cline-any cline-yes">1×</span>
|
|
801
|
-
<span class="cline-any cline-neutral"> </span>
|
|
802
|
-
<span class="cline-any cline-neutral"> </span>
|
|
803
|
-
<span class="cline-any cline-neutral"> </span>
|
|
804
|
-
<span class="cline-any cline-neutral"> </span>
|
|
805
|
-
<span class="cline-any cline-neutral"> </span>
|
|
806
|
-
<span class="cline-any cline-neutral"> </span>
|
|
807
|
-
<span class="cline-any cline-neutral"> </span>
|
|
808
|
-
<span class="cline-any cline-yes">1×</span>
|
|
809
|
-
<span class="cline-any cline-yes">1×</span>
|
|
810
|
-
<span class="cline-any cline-yes">1×</span>
|
|
811
|
-
<span class="cline-any cline-neutral"> </span>
|
|
812
|
-
<span class="cline-any cline-neutral"> </span>
|
|
813
|
-
<span class="cline-any cline-neutral"> </span>
|
|
814
|
-
<span class="cline-any cline-neutral"> </span>
|
|
815
|
-
<span class="cline-any cline-neutral"> </span>
|
|
816
|
-
<span class="cline-any cline-neutral"> </span>
|
|
817
|
-
<span class="cline-any cline-neutral"> </span>
|
|
818
|
-
<span class="cline-any cline-yes">1×</span>
|
|
819
|
-
<span class="cline-any cline-yes">3×</span>
|
|
820
|
-
<span class="cline-any cline-yes">3×</span>
|
|
821
|
-
<span class="cline-any cline-neutral"> </span>
|
|
822
|
-
<span class="cline-any cline-neutral"> </span>
|
|
823
|
-
<span class="cline-any cline-neutral"> </span>
|
|
824
|
-
<span class="cline-any cline-neutral"> </span>
|
|
825
|
-
<span class="cline-any cline-neutral"> </span>
|
|
826
|
-
<span class="cline-any cline-neutral"> </span>
|
|
827
|
-
<span class="cline-any cline-neutral"> </span>
|
|
828
|
-
<span class="cline-any cline-yes">1×</span>
|
|
829
|
-
<span class="cline-any cline-yes">3×</span>
|
|
830
|
-
<span class="cline-any cline-yes">3×</span>
|
|
831
|
-
<span class="cline-any cline-yes">3×</span>
|
|
832
|
-
<span class="cline-any cline-yes">3×</span>
|
|
833
|
-
<span class="cline-any cline-yes">3×</span>
|
|
834
|
-
<span class="cline-any cline-neutral"> </span>
|
|
835
|
-
<span class="cline-any cline-no"> </span>
|
|
836
|
-
<span class="cline-any cline-neutral"> </span>
|
|
837
|
-
<span class="cline-any cline-neutral"> </span>
|
|
838
|
-
<span class="cline-any cline-neutral"> </span>
|
|
839
|
-
<span class="cline-any cline-neutral"> </span>
|
|
840
|
-
<span class="cline-any cline-neutral"> </span>
|
|
841
|
-
<span class="cline-any cline-neutral"> </span>
|
|
842
|
-
<span class="cline-any cline-neutral"> </span>
|
|
843
|
-
<span class="cline-any cline-yes">1×</span>
|
|
844
|
-
<span class="cline-any cline-yes">1×</span>
|
|
845
|
-
<span class="cline-any cline-neutral"> </span>
|
|
846
|
-
<span class="cline-any cline-neutral"> </span>
|
|
847
|
-
<span class="cline-any cline-neutral"> </span>
|
|
848
|
-
<span class="cline-any cline-neutral"> </span>
|
|
849
|
-
<span class="cline-any cline-neutral"> </span>
|
|
850
|
-
<span class="cline-any cline-neutral"> </span>
|
|
851
|
-
<span class="cline-any cline-yes">1×</span>
|
|
852
|
-
<span class="cline-any cline-yes">3×</span>
|
|
853
|
-
<span class="cline-any cline-neutral"> </span>
|
|
854
|
-
<span class="cline-any cline-neutral"> </span>
|
|
855
|
-
<span class="cline-any cline-neutral"> </span>
|
|
856
|
-
<span class="cline-any cline-neutral"> </span>
|
|
857
|
-
<span class="cline-any cline-neutral"> </span>
|
|
858
|
-
<span class="cline-any cline-neutral"> </span>
|
|
859
|
-
<span class="cline-any cline-yes">1×</span>
|
|
860
|
-
<span class="cline-any cline-yes">1×</span>
|
|
861
|
-
<span class="cline-any cline-neutral"> </span>
|
|
862
|
-
<span class="cline-any cline-neutral"> </span>
|
|
863
|
-
<span class="cline-any cline-neutral"> </span>
|
|
864
|
-
<span class="cline-any cline-neutral"> </span>
|
|
865
|
-
<span class="cline-any cline-neutral"> </span>
|
|
866
|
-
<span class="cline-any cline-neutral"> </span>
|
|
867
|
-
<span class="cline-any cline-neutral"> </span>
|
|
868
|
-
<span class="cline-any cline-yes">1×</span>
|
|
869
|
-
<span class="cline-any cline-neutral"> </span>
|
|
870
|
-
<span class="cline-any cline-neutral"> </span>
|
|
871
|
-
<span class="cline-any cline-neutral"> </span>
|
|
872
|
-
<span class="cline-any cline-neutral"> </span>
|
|
873
|
-
<span class="cline-any cline-neutral"> </span>
|
|
874
|
-
<span class="cline-any cline-neutral"> </span>
|
|
875
|
-
<span class="cline-any cline-neutral"> </span>
|
|
876
|
-
<span class="cline-any cline-yes">1×</span>
|
|
877
|
-
<span class="cline-any cline-yes">2×</span>
|
|
878
|
-
<span class="cline-any cline-neutral"> </span>
|
|
879
|
-
<span class="cline-any cline-neutral"> </span>
|
|
880
|
-
<span class="cline-any cline-yes">1×</span>
|
|
881
|
-
<span class="cline-any cline-no"> </span>
|
|
882
|
-
<span class="cline-any cline-no"> </span>
|
|
883
|
-
<span class="cline-any cline-neutral"> </span>
|
|
884
|
-
<span class="cline-any cline-neutral"> </span>
|
|
885
|
-
<span class="cline-any cline-neutral"> </span>
|
|
886
|
-
<span class="cline-any cline-neutral"> </span>
|
|
887
|
-
<span class="cline-any cline-neutral"> </span>
|
|
888
|
-
<span class="cline-any cline-neutral"> </span>
|
|
889
|
-
<span class="cline-any cline-neutral"> </span>
|
|
890
|
-
<span class="cline-any cline-neutral"> </span>
|
|
891
|
-
<span class="cline-any cline-neutral"> </span>
|
|
892
|
-
<span class="cline-any cline-neutral"> </span>
|
|
893
|
-
<span class="cline-any cline-yes">1×</span>
|
|
894
|
-
<span class="cline-any cline-yes">8×</span>
|
|
895
|
-
<span class="cline-any cline-yes">1×</span>
|
|
896
|
-
<span class="cline-any cline-yes">1×</span>
|
|
897
|
-
<span class="cline-any cline-yes">7×</span>
|
|
898
|
-
<span class="cline-any cline-yes">7×</span>
|
|
899
|
-
<span class="cline-any cline-yes">7×</span>
|
|
900
|
-
<span class="cline-any cline-yes">7×</span>
|
|
901
|
-
<span class="cline-any cline-yes">7×</span>
|
|
902
|
-
<span class="cline-any cline-no"> </span>
|
|
903
|
-
<span class="cline-any cline-neutral"> </span>
|
|
904
|
-
<span class="cline-any cline-yes">7×</span>
|
|
905
|
-
<span class="cline-any cline-yes">7×</span>
|
|
906
|
-
<span class="cline-any cline-yes">7×</span>
|
|
907
|
-
<span class="cline-any cline-yes">7×</span>
|
|
908
|
-
<span class="cline-any cline-yes">7×</span>
|
|
909
|
-
<span class="cline-any cline-yes">7×</span>
|
|
910
|
-
<span class="cline-any cline-neutral"> </span>
|
|
911
|
-
<span class="cline-any cline-neutral"> </span>
|
|
912
|
-
<span class="cline-any cline-neutral"> </span>
|
|
913
|
-
<span class="cline-any cline-neutral"> </span>
|
|
914
|
-
<span class="cline-any cline-neutral"> </span>
|
|
915
|
-
<span class="cline-any cline-neutral"> </span>
|
|
916
|
-
<span class="cline-any cline-yes">1×</span>
|
|
917
|
-
<span class="cline-any cline-yes">44×</span>
|
|
918
|
-
<span class="cline-any cline-yes">44×</span>
|
|
919
|
-
<span class="cline-any cline-no"> </span>
|
|
920
|
-
<span class="cline-any cline-no"> </span>
|
|
921
|
-
<span class="cline-any cline-no"> </span>
|
|
922
|
-
<span class="cline-any cline-no"> </span>
|
|
923
|
-
<span class="cline-any cline-no"> </span>
|
|
924
|
-
<span class="cline-any cline-neutral"> </span>
|
|
925
|
-
<span class="cline-any cline-neutral"> </span>
|
|
926
|
-
<span class="cline-any cline-yes">44×</span>
|
|
927
|
-
<span class="cline-any cline-yes">20×</span>
|
|
928
|
-
<span class="cline-any cline-yes">9×</span>
|
|
929
|
-
<span class="cline-any cline-yes">2×</span>
|
|
930
|
-
<span class="cline-any cline-yes">2×</span>
|
|
931
|
-
<span class="cline-any cline-yes">2×</span>
|
|
932
|
-
<span class="cline-any cline-yes">2×</span>
|
|
933
|
-
<span class="cline-any cline-neutral"> </span>
|
|
934
|
-
<span class="cline-any cline-neutral"> </span>
|
|
935
|
-
<span class="cline-any cline-yes">7×</span>
|
|
936
|
-
<span class="cline-any cline-yes">7×</span>
|
|
937
|
-
<span class="cline-any cline-neutral"> </span>
|
|
938
|
-
<span class="cline-any cline-neutral"> </span>
|
|
939
|
-
<span class="cline-any cline-yes">11×</span>
|
|
940
|
-
<span class="cline-any cline-neutral"> </span>
|
|
941
|
-
<span class="cline-any cline-neutral"> </span>
|
|
942
|
-
<span class="cline-any cline-yes">24×</span>
|
|
943
|
-
<span class="cline-any cline-neutral"> </span>
|
|
944
|
-
<span class="cline-any cline-neutral"> </span>
|
|
945
|
-
<span class="cline-any cline-neutral"> </span>
|
|
946
|
-
<span class="cline-any cline-neutral"> </span>
|
|
947
|
-
<span class="cline-any cline-neutral"> </span>
|
|
948
|
-
<span class="cline-any cline-neutral"> </span>
|
|
949
|
-
<span class="cline-any cline-neutral"> </span>
|
|
950
|
-
<span class="cline-any cline-neutral"> </span>
|
|
951
|
-
<span class="cline-any cline-neutral"> </span>
|
|
952
|
-
<span class="cline-any cline-yes">1×</span>
|
|
953
|
-
<span class="cline-any cline-yes">44×</span>
|
|
954
|
-
<span class="cline-any cline-yes">44×</span>
|
|
955
|
-
<span class="cline-any cline-yes">44×</span>
|
|
956
|
-
<span class="cline-any cline-yes">44×</span>
|
|
957
|
-
<span class="cline-any cline-yes">44×</span>
|
|
958
|
-
<span class="cline-any cline-yes">44×</span>
|
|
959
|
-
<span class="cline-any cline-yes">44×</span>
|
|
960
|
-
<span class="cline-any cline-yes">44×</span>
|
|
961
|
-
<span class="cline-any cline-yes">44×</span>
|
|
962
|
-
<span class="cline-any cline-yes">44×</span>
|
|
963
|
-
<span class="cline-any cline-neutral"> </span>
|
|
964
|
-
<span class="cline-any cline-neutral"> </span>
|
|
965
|
-
<span class="cline-any cline-neutral"> </span>
|
|
966
|
-
<span class="cline-any cline-neutral"> </span>
|
|
967
|
-
<span class="cline-any cline-neutral"> </span>
|
|
968
|
-
<span class="cline-any cline-neutral"> </span>
|
|
969
|
-
<span class="cline-any cline-yes">1×</span>
|
|
970
|
-
<span class="cline-any cline-yes">7×</span>
|
|
971
|
-
<span class="cline-any cline-yes">7×</span>
|
|
972
|
-
<span class="cline-any cline-yes">7×</span>
|
|
973
|
-
<span class="cline-any cline-yes">7×</span>
|
|
974
|
-
<span class="cline-any cline-yes">7×</span>
|
|
975
|
-
<span class="cline-any cline-yes">7×</span>
|
|
976
|
-
<span class="cline-any cline-yes">7×</span>
|
|
977
|
-
<span class="cline-any cline-yes">7×</span>
|
|
978
|
-
<span class="cline-any cline-neutral"> </span>
|
|
979
|
-
<span class="cline-any cline-neutral"> </span>
|
|
980
|
-
<span class="cline-any cline-neutral"> </span>
|
|
981
|
-
<span class="cline-any cline-neutral"> </span>
|
|
982
|
-
<span class="cline-any cline-neutral"> </span>
|
|
983
|
-
<span class="cline-any cline-neutral"> </span>
|
|
984
|
-
<span class="cline-any cline-neutral"> </span>
|
|
985
|
-
<span class="cline-any cline-neutral"> </span>
|
|
986
|
-
<span class="cline-any cline-yes">1×</span>
|
|
987
|
-
<span class="cline-any cline-yes">44×</span>
|
|
988
|
-
<span class="cline-any cline-neutral"> </span>
|
|
989
|
-
<span class="cline-any cline-neutral"> </span>
|
|
990
|
-
<span class="cline-any cline-neutral"> </span>
|
|
991
|
-
<span class="cline-any cline-neutral"> </span>
|
|
992
|
-
<span class="cline-any cline-neutral"> </span>
|
|
993
|
-
<span class="cline-any cline-neutral"> </span>
|
|
994
|
-
<span class="cline-any cline-yes">1×</span>
|
|
995
|
-
<span class="cline-any cline-yes">44×</span>
|
|
996
|
-
<span class="cline-any cline-neutral"> </span>
|
|
997
|
-
<span class="cline-any cline-neutral"> </span>
|
|
998
|
-
<span class="cline-any cline-neutral"> </span>
|
|
999
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1000
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1001
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1002
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1003
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1004
|
-
<span class="cline-any cline-yes">1×</span>
|
|
1005
|
-
<span class="cline-any cline-yes">44×</span>
|
|
1006
|
-
<span class="cline-any cline-yes">25×</span>
|
|
1007
|
-
<span class="cline-any cline-yes">25×</span>
|
|
1008
|
-
<span class="cline-any cline-yes">25×</span>
|
|
1009
|
-
<span class="cline-any cline-yes">25×</span>
|
|
1010
|
-
<span class="cline-any cline-yes">25×</span>
|
|
1011
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1012
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1013
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1014
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1015
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1016
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1017
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1018
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1019
|
-
<span class="cline-any cline-yes">1×</span>
|
|
1020
|
-
<span class="cline-any cline-yes">176×</span>
|
|
1021
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1022
|
-
<span class="cline-any cline-yes">44×</span>
|
|
1023
|
-
<span class="cline-any cline-no"> </span>
|
|
1024
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1025
|
-
<span class="cline-any cline-yes">44×</span>
|
|
1026
|
-
<span class="cline-any cline-no"> </span>
|
|
1027
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1028
|
-
<span class="cline-any cline-yes">44×</span>
|
|
1029
|
-
<span class="cline-any cline-no"> </span>
|
|
1030
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1031
|
-
<span class="cline-any cline-yes">44×</span>
|
|
1032
|
-
<span class="cline-any cline-no"> </span>
|
|
1033
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1034
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1035
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1036
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1037
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1038
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1039
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1040
|
-
<span class="cline-any cline-yes">1×</span>
|
|
1041
|
-
<span class="cline-any cline-yes">1×</span>
|
|
1042
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1043
|
-
<span class="cline-any cline-yes">227×</span>
|
|
1044
|
-
<span class="cline-any cline-no"> </span>
|
|
1045
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1046
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1047
|
-
<span class="cline-any cline-yes">227×</span>
|
|
1048
|
-
<span class="cline-any cline-yes">227×</span>
|
|
1049
|
-
<span class="cline-any cline-yes">403×</span>
|
|
1050
|
-
<span class="cline-any cline-yes">403×</span>
|
|
1051
|
-
<span class="cline-any cline-yes">392×</span>
|
|
1052
|
-
<span class="cline-any cline-yes">1002×</span>
|
|
1053
|
-
<span class="cline-any cline-yes">1002×</span>
|
|
1054
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1055
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1056
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1057
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1058
|
-
<span class="cline-any cline-yes">227×</span>
|
|
1059
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1060
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1061
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1062
|
-
<span class="cline-any cline-yes">1×</span>
|
|
1063
|
-
<span class="cline-any cline-yes">2×</span>
|
|
1064
|
-
<span class="cline-any cline-yes">2×</span>
|
|
1065
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1066
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1067
|
-
<span class="cline-any cline-yes">1×</span>
|
|
1068
|
-
<span class="cline-any cline-yes">1×</span>
|
|
1069
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1070
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1071
|
-
<span class="cline-any cline-yes">1×</span>
|
|
1072
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1073
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1074
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1075
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1076
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1077
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1078
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1079
|
-
<span class="cline-any cline-yes">1×</span>
|
|
1080
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1081
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1082
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1083
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1084
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1085
|
-
<span class="cline-any cline-neutral"> </span>
|
|
1086
|
-
<span class="cline-any cline-yes">1×</span>
|
|
1087
|
-
<span class="cline-any cline-no"> </span>
|
|
1088
|
-
<span class="cline-any cline-neutral"> </span></td><td class="text"><pre class="prettyprint lang-js">/**
|
|
1089
|
-
* Telemetry V3 Library
|
|
1090
|
-
* @author Manjunath Davanam <manjunathd@ilimi.in>
|
|
1091
|
-
* @author Akash Gupta <Akash.Gupta@tarento.com>
|
|
1092
|
-
*/
|
|
1093
|
-
|
|
1094
|
-
// To support for node server environment
|
|
1095
|
-
<span class="missing-if-branch" title="if path not taken" >I</span>if (typeof require === "function") {
|
|
1096
|
-
<span class="cstat-no" title="statement not covered" > var Ajv = require('ajv')</span>
|
|
1097
|
-
}
|
|
1098
|
-
|
|
1099
|
-
|
|
1100
|
-
var libraryDispatcher = {
|
|
1101
|
-
dispatch: function(event) {
|
|
1102
|
-
<span class="missing-if-branch" title="else path not taken" >E</span>if (typeof document != 'undefined') {
|
|
1103
|
-
//To Support for external user who ever lisenting on this 'TelemetryEvent' event.
|
|
1104
|
-
// IT WORKS ONLY FOR CLIENT SIDE
|
|
1105
|
-
document.dispatchEvent(new CustomEvent('TelemetryEvent', { detail: event }));
|
|
1106
|
-
} else {
|
|
1107
|
-
<span class="cstat-no" title="statement not covered" > console.info("Library dispatcher supports only for client side.");</span>
|
|
1108
|
-
}
|
|
1109
|
-
}
|
|
1110
|
-
};
|
|
1111
|
-
|
|
1112
|
-
|
|
1113
|
-
var Telemetry = (function() {
|
|
1114
|
-
this.telemetry = <span class="fstat-no" title="function not covered" >function() {</span>};
|
|
1115
|
-
var instance = <span class="fstat-no" title="function not covered" >function() {</span>};
|
|
1116
|
-
var telemetryInstance = this;
|
|
1117
|
-
this.telemetry.initialized = false;
|
|
1118
|
-
this.telemetry.config = {};
|
|
1119
|
-
this.telemetry._version = "3.0";
|
|
1120
|
-
this.telemetry.fingerPrintId = undefined;
|
|
1121
|
-
this.dispatcher = libraryDispatcher;
|
|
1122
|
-
this._defaultValue = {
|
|
1123
|
-
uid: "anonymous",
|
|
1124
|
-
authtoken: "",
|
|
1125
|
-
batchsize: 20,
|
|
1126
|
-
host: "https://api.ekstep.in",
|
|
1127
|
-
endpoint: "/data/v3/telemetry",
|
|
1128
|
-
apislug: "/action",
|
|
1129
|
-
},
|
|
1130
|
-
this.telemetryEnvelop = {
|
|
1131
|
-
"eid": "",
|
|
1132
|
-
"ets": "",
|
|
1133
|
-
"ver": "",
|
|
1134
|
-
"mid": '',
|
|
1135
|
-
"actor": {},
|
|
1136
|
-
"context": {},
|
|
1137
|
-
"object": {},
|
|
1138
|
-
"tags": [],
|
|
1139
|
-
"edata": ""
|
|
1140
|
-
}
|
|
1141
|
-
this._globalContext = {
|
|
1142
|
-
"channel": 'in.ekstep',
|
|
1143
|
-
"pdata": { id: "in.ekstep", ver: "1.0", pid: "" },
|
|
1144
|
-
"env": "contentplayer",
|
|
1145
|
-
"sid": "",
|
|
1146
|
-
"did": "",
|
|
1147
|
-
"cdata": [],
|
|
1148
|
-
"rollup": {}
|
|
1149
|
-
};
|
|
1150
|
-
this.runningEnv = 'client';
|
|
1151
|
-
this.enableValidation = false;
|
|
1152
|
-
this._globalObject = {};
|
|
1153
|
-
this.startData = [];
|
|
1154
|
-
this.ajv = new Ajv({ schemas: telemetrySchema });
|
|
1155
|
-
|
|
1156
|
-
/**
|
|
1157
|
-
* Which is used to initialize the telemetry event
|
|
1158
|
-
* @param {object} config - Configurations for the telemetry lib to initialize the service. " Example: config = { batchsize:10,host:"" } "
|
|
1159
|
-
*/
|
|
1160
|
-
this.telemetry.initialize = function(config) {
|
|
1161
|
-
instance.init(config);
|
|
1162
|
-
}
|
|
1163
|
-
|
|
1164
|
-
/**
|
|
1165
|
-
* Which is used to start and initialize the telemetry event.
|
|
1166
|
-
* If the telemetry is already initialzed then it will trigger only start event.
|
|
1167
|
-
* @param {object} config [Telemetry lib configurations]
|
|
1168
|
-
* @param {string} contentId [Content Identifier]
|
|
1169
|
-
* @param {string} contentVer [Content version]
|
|
1170
|
-
* @param {object} data [Can have userAgent,device spec object]
|
|
1171
|
-
* @param {object} options [It can have `context, object, actor` can be explicitly passed in this event]
|
|
1172
|
-
*/
|
|
1173
|
-
this.telemetry.start = function(config, contentId, contentVer, data, options) {
|
|
1174
|
-
data.duration = data.duration || (((new Date()).getTime()) * 0.001); // Converting duration miliSeconds to seconds
|
|
1175
|
-
<span class="missing-if-branch" title="else path not taken" >E</span>if (contentId && contentVer) {
|
|
1176
|
-
telemetryInstance._globalObject.id = contentId;
|
|
1177
|
-
telemetryInstance._globalObject.ver = contentVer;
|
|
1178
|
-
}
|
|
1179
|
-
|
|
1180
|
-
if (!Telemetry.initialized && config) {
|
|
1181
|
-
instance.init(config, contentId, contentVer)
|
|
1182
|
-
|
|
1183
|
-
}
|
|
1184
|
-
instance.updateValues(options);
|
|
1185
|
-
var startEventObj = instance.getEvent('START', data);
|
|
1186
|
-
instance._dispatch(startEventObj)
|
|
1187
|
-
telemetryInstance.startData.push(JSON.parse(JSON.stringify(startEventObj)));
|
|
1188
|
-
}
|
|
1189
|
-
|
|
1190
|
-
/**
|
|
1191
|
-
* Which is used to log the impression telemetry event.
|
|
1192
|
-
* @param {object} data [data which is need to pass in this event ex: {"type":"player","mode":"ContentPlayer","pageid":"splash"}]
|
|
1193
|
-
* @param {object} options [It can have `context, object, actor` can be explicitly passed in this event]
|
|
1194
|
-
*/
|
|
1195
|
-
this.telemetry.impression = function(data, options) {
|
|
1196
|
-
instance.updateValues(options);
|
|
1197
|
-
instance._dispatch(instance.getEvent('IMPRESSION', data));
|
|
1198
|
-
}
|
|
1199
|
-
|
|
1200
|
-
/**
|
|
1201
|
-
* Which is used to log the interact telemetry event.
|
|
1202
|
-
* @param {object} data [data which is need to pass in this event ex: {"type":"player","mode":"ContentPlayer","pageid":"splash"}]
|
|
1203
|
-
* @param {object} options [It can have `context, object, actor` can be explicitly passed in this event]
|
|
1204
|
-
*/
|
|
1205
|
-
this.telemetry.interact = function(data, options) {
|
|
1206
|
-
instance.updateValues(options);
|
|
1207
|
-
instance._dispatch(instance.getEvent('INTERACT', data));
|
|
1208
|
-
}
|
|
1209
|
-
|
|
1210
|
-
/**
|
|
1211
|
-
* Which is used to log the assess telemetry event.
|
|
1212
|
-
* @param {object} data [data which is need to pass in this event ex: {"type":"player","mode":"ContentPlayer","pageid":"splash"}]
|
|
1213
|
-
* @param {object} options [It can have `context, object, actor` can be explicitly passed in this event]
|
|
1214
|
-
*/
|
|
1215
|
-
this.telemetry.assess = function(data, options) {
|
|
1216
|
-
instance.updateValues(options);
|
|
1217
|
-
instance._dispatch(instance.getEvent('ASSESS', data));
|
|
1218
|
-
}
|
|
1219
|
-
|
|
1220
|
-
/**
|
|
1221
|
-
* Which is used to log the response telemetry event.
|
|
1222
|
-
* @param {object} data [data which is need to pass in this event ex: {"type":"player","mode":"ContentPlayer","pageid":"splash"}]
|
|
1223
|
-
* @param {object} options [It can have `context, object, actor` can be explicitly passed in this event]
|
|
1224
|
-
*/
|
|
1225
|
-
this.telemetry.response = function(data, options) {
|
|
1226
|
-
instance.updateValues(options);
|
|
1227
|
-
instance._dispatch(instance.getEvent('RESPONSE', data));
|
|
1228
|
-
}
|
|
1229
|
-
|
|
1230
|
-
/**
|
|
1231
|
-
* Which is used to log the interrupt telemetry event.
|
|
1232
|
-
* @param {object} data [data which is need to pass in this event ex: {"type":"player","mode":"ContentPlayer","pageid":"splash"}]
|
|
1233
|
-
* @param {object} options [It can have `context, object, actor` can be explicitly passed in this event]
|
|
1234
|
-
*/
|
|
1235
|
-
this.telemetry.interrupt = function(data, options) {
|
|
1236
|
-
instance.updateValues(options);
|
|
1237
|
-
instance._dispatch(instance.getEvent('INTERRUPT', data));
|
|
1238
|
-
}
|
|
1239
|
-
|
|
1240
|
-
/**
|
|
1241
|
-
* Which is used to log the feedback telemetry event.
|
|
1242
|
-
* @param {object} data [data which is need to pass in this event ex: {"type":"player","mode":"ContentPlayer","pageid":"splash"}]
|
|
1243
|
-
* @param {object} options [It can have `context, object, actor` can be explicitly passed in this event]
|
|
1244
|
-
*/
|
|
1245
|
-
this.telemetry.feedback = function(data, options) {
|
|
1246
|
-
var eksData = {
|
|
1247
|
-
"rating": data.rating,
|
|
1248
|
-
"comments": data.comments || ''
|
|
1249
|
-
}
|
|
1250
|
-
instance.updateValues(options);
|
|
1251
|
-
instance._dispatch(instance.getEvent('FEEDBACK', eksData));
|
|
1252
|
-
}
|
|
1253
|
-
|
|
1254
|
-
/**
|
|
1255
|
-
* Which is used to log the share telemetry event.
|
|
1256
|
-
* @param {object} data [data which is need to pass in this event ex: {"type":"player","mode":"ContentPlayer","pageid":"splash"}]
|
|
1257
|
-
* @param {object} options [It can have `context, object, actor` can be explicitly passed in this event]
|
|
1258
|
-
*/
|
|
1259
|
-
this.telemetry.share = function(data, options) {
|
|
1260
|
-
instance.updateValues(options);
|
|
1261
|
-
instance._dispatch(instance.getEvent('SHARE', data));
|
|
1262
|
-
}
|
|
1263
|
-
|
|
1264
|
-
/**
|
|
1265
|
-
* Which is used to log the audit telemetry event.
|
|
1266
|
-
* @param {object} data [data which is need to pass in this event ex: {"type":"player","mode":"ContentPlayer","pageid":"splash"}]
|
|
1267
|
-
* @param {object} options [It can have `context, object, actor` can be explicitly passed in this event]
|
|
1268
|
-
*/
|
|
1269
|
-
this.telemetry.audit = function(data, options) {
|
|
1270
|
-
instance.updateValues(options);
|
|
1271
|
-
instance._dispatch(instance.getEvent('AUDIT', data));
|
|
1272
|
-
}
|
|
1273
|
-
|
|
1274
|
-
/**
|
|
1275
|
-
* Which is used to log the error telemetry event.
|
|
1276
|
-
* @param {object} data [data which is need to pass in this event ex: {"type":"player","mode":"ContentPlayer","pageid":"splash"}]
|
|
1277
|
-
* @param {object} options [It can have `context, object, actor` can be explicitly passed in this event]
|
|
1278
|
-
*/
|
|
1279
|
-
this.telemetry.error = function(data, options) {
|
|
1280
|
-
instance.updateValues(options);
|
|
1281
|
-
instance._dispatch(instance.getEvent('ERROR', data));
|
|
1282
|
-
}
|
|
1283
|
-
|
|
1284
|
-
/**
|
|
1285
|
-
* Which is used to log the heartbeat telemetry event.
|
|
1286
|
-
* @param {object} data [data which is need to pass in this event ex: {"type":"player","mode":"ContentPlayer","pageid":"splash"}]
|
|
1287
|
-
* @param {object} options [It can have `context, object, actor` can be explicitly passed in this event]
|
|
1288
|
-
*/
|
|
1289
|
-
this.telemetry.heartbeat = function(data, options) {
|
|
1290
|
-
instance.updateValues(options);
|
|
1291
|
-
instance._dispatch(instance.getEvent('HEARTBEAT', data));
|
|
1292
|
-
}
|
|
1293
|
-
|
|
1294
|
-
/**
|
|
1295
|
-
* Which is used to log the log event.
|
|
1296
|
-
* @param {object} data [data which is need to pass in this event ex: {"type":"player","mode":"ContentPlayer","pageid":"splash"}]
|
|
1297
|
-
* @param {object} options [It can have `context, object, actor` can be explicitly passed in this event]
|
|
1298
|
-
*/
|
|
1299
|
-
this.telemetry.log = function(data, options) {
|
|
1300
|
-
instance.updateValues(options);
|
|
1301
|
-
instance._dispatch(instance.getEvent('LOG', data));
|
|
1302
|
-
}
|
|
1303
|
-
|
|
1304
|
-
/**
|
|
1305
|
-
* Which is used to log the search event.
|
|
1306
|
-
* @param {object} data [data which is need to pass in this event ex: {"type":"player","mode":"ContentPlayer","pageid":"splash"}]
|
|
1307
|
-
* @param {object} options [It can have `context, object, actor` can be explicitly passed in this event]
|
|
1308
|
-
*/
|
|
1309
|
-
this.telemetry.search = function(data, options) {
|
|
1310
|
-
instance.updateValues(options);
|
|
1311
|
-
instance._dispatch(instance.getEvent('SEARCH', data));
|
|
1312
|
-
}
|
|
1313
|
-
|
|
1314
|
-
/**
|
|
1315
|
-
* Which is used to log the metrics event.
|
|
1316
|
-
* @param {object} data [data which is need to pass in this event ex: {"type":"player","mode":"ContentPlayer","pageid":"splash"}]
|
|
1317
|
-
* @param {object} options [It can have `context, object, actor` can be explicitly passed in this event]
|
|
1318
|
-
*/
|
|
1319
|
-
this.telemetry.metrics = function(data, options) {
|
|
1320
|
-
instance.updateValues(options);
|
|
1321
|
-
instance._dispatch(instance.getEvent('METRICS', data));
|
|
1322
|
-
}
|
|
1323
|
-
|
|
1324
|
-
/**
|
|
1325
|
-
* Which is used to log the exdata event.
|
|
1326
|
-
* @param {object} data [data which is need to pass in this event ex: {"type":"player","mode":"ContentPlayer","pageid":"splash"}]
|
|
1327
|
-
* @param {object} options [It can have `context, object, actor` can be explicitly passed in this event]
|
|
1328
|
-
*/
|
|
1329
|
-
this.telemetry.exdata = function(data, options) {
|
|
1330
|
-
instance.updateValues(options);
|
|
1331
|
-
instance._dispatch(instance.getEvent('EXDATA', data));
|
|
1332
|
-
}
|
|
1333
|
-
|
|
1334
|
-
/**
|
|
1335
|
-
* Which is used to log the summary event.
|
|
1336
|
-
* @param {object} data [data which is need to pass in this event ex: {"type":"player","mode":"ContentPlayer","pageid":"splash"}]
|
|
1337
|
-
* @param {object} options [It can have `context, object, actor` can be explicitly passed in this event]
|
|
1338
|
-
*/
|
|
1339
|
-
this.telemetry.summary = function(data, options) {
|
|
1340
|
-
instance.updateValues(options);
|
|
1341
|
-
instance._dispatch(instance.getEvent('SUMMARY', data));
|
|
1342
|
-
}
|
|
1343
|
-
|
|
1344
|
-
/**
|
|
1345
|
-
* Which is used to log the end telemetry event.
|
|
1346
|
-
* @param {object} data [data which is need to pass in this event ex: {"type":"player","mode":"ContentPlayer","pageid":"splash"}]
|
|
1347
|
-
* @param {object} options [It can have `context, object, actor` can be explicitly passed in this event]
|
|
1348
|
-
*/
|
|
1349
|
-
this.telemetry.end = function(data, options) {
|
|
1350
|
-
<span class="missing-if-branch" title="else path not taken" >E</span>if (telemetryInstance.startData.length) {
|
|
1351
|
-
var startEventObj = telemetryInstance.startData.pop();
|
|
1352
|
-
data.duration = ((new Date()).getTime() - startEventObj.ets) * 0.001; // Converting duration miliSeconds to seconds
|
|
1353
|
-
instance.updateValues(options);
|
|
1354
|
-
instance._dispatch(instance.getEvent('END', data));
|
|
1355
|
-
} else {
|
|
1356
|
-
<span class="cstat-no" title="statement not covered" > console.info("Please invoke start before invoking end event.")</span>
|
|
1357
|
-
}
|
|
1358
|
-
}
|
|
1359
|
-
|
|
1360
|
-
/**
|
|
1361
|
-
* Which is used to know the whether telemetry is initialized or not.
|
|
1362
|
-
* @return {Boolean}
|
|
1363
|
-
*/
|
|
1364
|
-
this.telemetry.isInitialized = function() {
|
|
1365
|
-
return Telemetry.initialized;
|
|
1366
|
-
}
|
|
1367
|
-
|
|
1368
|
-
/**
|
|
1369
|
-
* Which is used to reset the current context
|
|
1370
|
-
* @param {object} context [Context value]
|
|
1371
|
-
*/
|
|
1372
|
-
this.telemetry.resetContext = function(context) {
|
|
1373
|
-
telemetryInstance._currentContext = context || {};
|
|
1374
|
-
}
|
|
1375
|
-
|
|
1376
|
-
/**
|
|
1377
|
-
* Which is used to reset the current object value.
|
|
1378
|
-
* @param {object} object [Object value]
|
|
1379
|
-
*/
|
|
1380
|
-
this.telemetry.resetObject = function(object) {
|
|
1381
|
-
telemetryInstance._currentObject = object || <span class="branch-1 cbranch-no" title="branch not covered" >{};</span>
|
|
1382
|
-
},
|
|
1383
|
-
|
|
1384
|
-
/**
|
|
1385
|
-
* Which is used to reset the current actor value.
|
|
1386
|
-
* @param {object} object [Object value]
|
|
1387
|
-
*/
|
|
1388
|
-
this.telemetry.resetActor = function(actor) {
|
|
1389
|
-
telemetryInstance._currentActor = actor || <span class="branch-1 cbranch-no" title="branch not covered" >{};</span>
|
|
1390
|
-
}
|
|
1391
|
-
|
|
1392
|
-
|
|
1393
|
-
/**
|
|
1394
|
-
* Which is used to reset the current actor value.
|
|
1395
|
-
* @param {object} object [Object value]
|
|
1396
|
-
*/
|
|
1397
|
-
this.telemetry.resetTags = function(tags) {
|
|
1398
|
-
telemetryInstance._currentTags = tags || <span class="branch-1 cbranch-no" title="branch not covered" >[];</span>
|
|
1399
|
-
}
|
|
1400
|
-
|
|
1401
|
-
this.telemetry.syncEvents = <span class="fstat-no" title="function not covered" >function() {</span>
|
|
1402
|
-
<span class="cstat-no" title="statement not covered" > if (typeof TelemetrySyncManager != 'undefined') {</span>
|
|
1403
|
-
<span class="cstat-no" title="statement not covered" > TelemetrySyncManager.syncEvents();</span>
|
|
1404
|
-
}
|
|
1405
|
-
}
|
|
1406
|
-
|
|
1407
|
-
/**
|
|
1408
|
-
* Which is used to initialize the telemetry in globally.
|
|
1409
|
-
* @param {object} config [Telemetry configurations]
|
|
1410
|
-
* @param {string} contentId [Identifier value]
|
|
1411
|
-
* @param {string} contentVer [Version]
|
|
1412
|
-
* @param {object} type [object type]
|
|
1413
|
-
*/
|
|
1414
|
-
instance.init = function(config, contentId, contentVer) {
|
|
1415
|
-
if (Telemetry.initialized) {
|
|
1416
|
-
console.log("Telemetry is already initialized..");
|
|
1417
|
-
return;
|
|
1418
|
-
}!config && (config = {})
|
|
1419
|
-
contentId && (telemetryInstance._globalObject.id = contentId);
|
|
1420
|
-
contentVer && (telemetryInstance._globalObject.ver = contentVer);
|
|
1421
|
-
config.runningEnv && (telemetryInstance.runningEnv = config.runningEnv);
|
|
1422
|
-
<span class="missing-if-branch" title="if path not taken" >I</span>if (typeof config.enableValidation !== 'undefined') {
|
|
1423
|
-
<span class="cstat-no" title="statement not covered" > telemetryInstance.enableValidation = config.enableValidation;</span>
|
|
1424
|
-
}
|
|
1425
|
-
config.batchsize = config.batchsize ? (config.batchsize < 10 ? 10 : (config.batchsize > 1000 ? <span class="branch-0 cbranch-no" title="branch not covered" >1000 </span>: config.batchsize)) : _defaultValue.batchsize;
|
|
1426
|
-
Telemetry.config = Object.assign(_defaultValue, config);
|
|
1427
|
-
Telemetry.initialized = true;
|
|
1428
|
-
telemetryInstance.dispatcher = Telemetry.config.dispatcher ? <span class="branch-0 cbranch-no" title="branch not covered" >Telemetry.config.dispatcher </span>: libraryDispatcher;
|
|
1429
|
-
instance.updateConfigurations(config);
|
|
1430
|
-
console.info("Telemetry is initialized.")
|
|
1431
|
-
}
|
|
1432
|
-
|
|
1433
|
-
/**
|
|
1434
|
-
* Which is used to dispatch a telemetry events.
|
|
1435
|
-
* @param {object} message [Telemetry event object]
|
|
1436
|
-
*/
|
|
1437
|
-
instance._dispatch = function(message) {
|
|
1438
|
-
message.mid = message.eid + ':' + CryptoJS.MD5(JSON.stringify(message)).toString();
|
|
1439
|
-
<span class="missing-if-branch" title="if path not taken" >I</span>if (telemetryInstance.enableValidation) {
|
|
1440
|
-
<span class="cstat-no" title="statement not covered" > var validate = ajv.getSchema('http://api.ekstep.org/telemetry/' + message.eid.toLowerCase())</span>
|
|
1441
|
-
<span class="cstat-no" title="statement not covered" > var valid = validate(message)</span>
|
|
1442
|
-
<span class="cstat-no" title="statement not covered" > if (!valid) {</span>
|
|
1443
|
-
<span class="cstat-no" title="statement not covered" > console.error('Invalid ' + message.eid + ' Event: ' + ajv.errorsText(validate.errors))</span>
|
|
1444
|
-
<span class="cstat-no" title="statement not covered" > return</span>
|
|
1445
|
-
}
|
|
1446
|
-
}
|
|
1447
|
-
if (telemetryInstance.runningEnv === 'client') {
|
|
1448
|
-
if (!message.context.did) {
|
|
1449
|
-
if (!Telemetry.fingerPrintId) {
|
|
1450
|
-
Telemetry.getFingerPrint(function(result, components) {
|
|
1451
|
-
message.context.did = result;
|
|
1452
|
-
Telemetry.fingerPrintId = result;
|
|
1453
|
-
dispatcher.dispatch(message);
|
|
1454
|
-
})
|
|
1455
|
-
} else {
|
|
1456
|
-
message.context.did = Telemetry.fingerPrintId;
|
|
1457
|
-
dispatcher.dispatch(message);
|
|
1458
|
-
}
|
|
1459
|
-
} else {
|
|
1460
|
-
dispatcher.dispatch(message);
|
|
1461
|
-
}
|
|
1462
|
-
} else {
|
|
1463
|
-
dispatcher.dispatch(message);
|
|
1464
|
-
}
|
|
1465
|
-
}
|
|
1466
|
-
|
|
1467
|
-
/**
|
|
1468
|
-
* Which is used to get the telemetry envelop data
|
|
1469
|
-
* @param {string} eventId [Name of the event]
|
|
1470
|
-
* @param {object} data [Event data]
|
|
1471
|
-
* @return {object} [Telemetry envelop data]
|
|
1472
|
-
*/
|
|
1473
|
-
instance.getEvent = function(eventId, data) {
|
|
1474
|
-
telemetryInstance.telemetryEnvelop.eid = eventId;
|
|
1475
|
-
telemetryInstance.telemetryEnvelop.ets = (new Date()).getTime();
|
|
1476
|
-
telemetryInstance.telemetryEnvelop.ver = Telemetry._version;
|
|
1477
|
-
telemetryInstance.telemetryEnvelop.mid = '';
|
|
1478
|
-
telemetryInstance.telemetryEnvelop.actor = Object.assign({}, { "id": Telemetry.config.uid || 'anonymous', "type": 'User' }, instance.getUpdatedValue('actor'));
|
|
1479
|
-
telemetryInstance.telemetryEnvelop.context = Object.assign({}, instance.getGlobalContext(), instance.getUpdatedValue('context'));
|
|
1480
|
-
telemetryInstance.telemetryEnvelop.object = Object.assign({}, instance.getGlobalObject(), instance.getUpdatedValue('object'));
|
|
1481
|
-
telemetryInstance.telemetryEnvelop.tags = Object.assign([], Telemetry.config.tags, instance.getUpdatedValue('tags'));
|
|
1482
|
-
telemetryInstance.telemetryEnvelop.edata = data;
|
|
1483
|
-
return telemetryInstance.telemetryEnvelop;
|
|
1484
|
-
}
|
|
1485
|
-
|
|
1486
|
-
/**
|
|
1487
|
-
* Which is used to assing to globalObject and globalContext value from the telemetry configurations.
|
|
1488
|
-
* @param {object} config [Telemetry configurations]
|
|
1489
|
-
*/
|
|
1490
|
-
instance.updateConfigurations = function(config) {
|
|
1491
|
-
config.object && (telemetryInstance._globalObject = config.object);
|
|
1492
|
-
config.channel && (telemetryInstance._globalContext.channel = config.channel);
|
|
1493
|
-
config.env && (telemetryInstance._globalContext.env = config.env);
|
|
1494
|
-
config.rollup && (telemetryInstance._globalContext.rollup = config.rollup);
|
|
1495
|
-
config.sid && (telemetryInstance._globalContext.sid = config.sid);
|
|
1496
|
-
config.did && (telemetryInstance._globalContext.did = config.did);
|
|
1497
|
-
config.cdata && (telemetryInstance._globalContext.cdata = config.cdata);
|
|
1498
|
-
config.pdata && (telemetryInstance._globalContext.pdata = config.pdata);
|
|
1499
|
-
|
|
1500
|
-
|
|
1501
|
-
}
|
|
1502
|
-
|
|
1503
|
-
/**
|
|
1504
|
-
* Which is used to get the current updated global context value.
|
|
1505
|
-
* @return {object}
|
|
1506
|
-
*/
|
|
1507
|
-
instance.getGlobalContext = function() {
|
|
1508
|
-
return telemetryInstance._globalContext;
|
|
1509
|
-
}
|
|
1510
|
-
|
|
1511
|
-
/**
|
|
1512
|
-
* Which is used to get the current global object value.
|
|
1513
|
-
* @return {object}
|
|
1514
|
-
*/
|
|
1515
|
-
instance.getGlobalObject = function() {
|
|
1516
|
-
return telemetryInstance._globalObject;
|
|
1517
|
-
}
|
|
1518
|
-
|
|
1519
|
-
/**
|
|
1520
|
-
* Which is used to update the both context and object vlaue.
|
|
1521
|
-
* For any event explicitly context and object value can be passed.
|
|
1522
|
-
* @param {object} context [Context value object]
|
|
1523
|
-
* @param {object} object [Object value]
|
|
1524
|
-
*/
|
|
1525
|
-
instance.updateValues = function(options) {
|
|
1526
|
-
if (options) {
|
|
1527
|
-
options.context && (telemetryInstance._currentContext = options.context);
|
|
1528
|
-
options.object && (telemetryInstance._currentObject = options.object);
|
|
1529
|
-
options.actor && (telemetryInstance._currentActor = options.actor);
|
|
1530
|
-
options.tags && (telemetryInstance._currentTags = options.tags);
|
|
1531
|
-
options.runningEnv && (telemetryInstance.runningEnv = options.runningEnv);
|
|
1532
|
-
}
|
|
1533
|
-
}
|
|
1534
|
-
|
|
1535
|
-
/**
|
|
1536
|
-
* Which is used to get the value of 'context','actor','object'
|
|
1537
|
-
* @param {string} key [ Name of object which we is need to get ]
|
|
1538
|
-
* @return {object}
|
|
1539
|
-
*/
|
|
1540
|
-
instance.getUpdatedValue = function(key) {
|
|
1541
|
-
switch (key.toLowerCase()) {
|
|
1542
|
-
case 'context':
|
|
1543
|
-
return telemetryInstance._currentContext || {};
|
|
1544
|
-
<span class="cstat-no" title="statement not covered" > break;</span>
|
|
1545
|
-
case 'object':
|
|
1546
|
-
return telemetryInstance._currentObject || {};
|
|
1547
|
-
<span class="cstat-no" title="statement not covered" > break;</span>
|
|
1548
|
-
case 'actor':
|
|
1549
|
-
return telemetryInstance._currentActor || {};
|
|
1550
|
-
<span class="cstat-no" title="statement not covered" > break;</span>
|
|
1551
|
-
case 'tags':
|
|
1552
|
-
return telemetryInstance._currentTags || [];
|
|
1553
|
-
<span class="cstat-no" title="statement not covered" > break;</span>
|
|
1554
|
-
}
|
|
1555
|
-
}
|
|
1556
|
-
|
|
1557
|
-
/**
|
|
1558
|
-
* Which is used to support for lower end deviecs.
|
|
1559
|
-
* If any of the devices which is not supporting ECMAScript 6 version
|
|
1560
|
-
*/
|
|
1561
|
-
instance.objectAssign = function() {
|
|
1562
|
-
Object.assign = function(target) {
|
|
1563
|
-
'use strict';
|
|
1564
|
-
<span class="missing-if-branch" title="if path not taken" >I</span>if (target == null) {
|
|
1565
|
-
<span class="cstat-no" title="statement not covered" > throw new TypeError('Cannot convert undefined or null to object');</span>
|
|
1566
|
-
}
|
|
1567
|
-
|
|
1568
|
-
target = Object(target);
|
|
1569
|
-
for (var index = 1; index < arguments.length; index++) {
|
|
1570
|
-
var source = arguments[index];
|
|
1571
|
-
if (source != null) {
|
|
1572
|
-
for (var key in source) {
|
|
1573
|
-
<span class="missing-if-branch" title="else path not taken" >E</span>if (Object.prototype.hasOwnProperty.call(source, key)) {
|
|
1574
|
-
target[key] = source[key];
|
|
1575
|
-
}
|
|
1576
|
-
}
|
|
1577
|
-
}
|
|
1578
|
-
}
|
|
1579
|
-
return target;
|
|
1580
|
-
}
|
|
1581
|
-
}
|
|
1582
|
-
|
|
1583
|
-
this.telemetry.getFingerPrint = function(cb) {
|
|
1584
|
-
new Fingerprint2().get(function(result, components) {
|
|
1585
|
-
<span class="missing-if-branch" title="else path not taken" >E</span>if (cb) cb(result, components)
|
|
1586
|
-
})
|
|
1587
|
-
}
|
|
1588
|
-
<span class="missing-if-branch" title="else path not taken" >E</span>if (typeof Object.assign != 'function') {
|
|
1589
|
-
instance.objectAssign();
|
|
1590
|
-
}
|
|
1591
|
-
|
|
1592
|
-
return this.telemetry;
|
|
1593
|
-
})();
|
|
1594
|
-
|
|
1595
|
-
/**
|
|
1596
|
-
* Name space which is being fallowed
|
|
1597
|
-
* @type {[type]}
|
|
1598
|
-
*/
|
|
1599
|
-
|
|
1600
|
-
EkTelemetry = $t = Telemetry;
|
|
1601
|
-
|
|
1602
|
-
|
|
1603
|
-
|
|
1604
|
-
/**
|
|
1605
|
-
* To support for the node backEnd, So any node developer can import this telemetry lib.
|
|
1606
|
-
*/
|
|
1607
|
-
<span class="missing-if-branch" title="if path not taken" >I</span>if (typeof module != 'undefined') {
|
|
1608
|
-
<span class="cstat-no" title="statement not covered" > module.exports = Telemetry;</span>
|
|
1609
|
-
}</pre></td></tr>
|
|
1610
|
-
</table></pre>
|
|
1611
|
-
<div class='push'></div><!-- for sticky footer -->
|
|
1612
|
-
</div><!-- /wrapper -->
|
|
1613
|
-
<div class='footer quiet pad2 space-top1 center small'>
|
|
1614
|
-
Code coverage
|
|
1615
|
-
generated by <a href="http://istanbul-js.org/" target="_blank">istanbul</a> at Tue Sep 04 2018 18:22:24 GMT+0530 (IST)
|
|
1616
|
-
</div>
|
|
1617
|
-
</div>
|
|
1618
|
-
<script src="../prettify.js"></script>
|
|
1619
|
-
<script>
|
|
1620
|
-
window.onload = function () {
|
|
1621
|
-
if (typeof prettyPrint === 'function') {
|
|
1622
|
-
prettyPrint();
|
|
1623
|
-
}
|
|
1624
|
-
};
|
|
1625
|
-
</script>
|
|
1626
|
-
<script src="../sorter.js"></script>
|
|
1627
|
-
</body>
|
|
1628
|
-
</html>
|