unified-video-framework 1.4.427 → 1.4.428
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/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "unified-video-framework",
|
|
3
|
-
"version": "1.4.
|
|
3
|
+
"version": "1.4.428",
|
|
4
4
|
"description": "Cross-platform video player framework supporting iOS, Android, Web, Smart TVs (Samsung/LG), Roku, and more",
|
|
5
5
|
"main": "packages/core/dist/index.js",
|
|
6
6
|
"types": "packages/core/dist/index.d.ts",
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TelemetryManager.d.ts","sourceRoot":"","sources":["../../src/telemetry/TelemetryManager.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AAEjD,MAAM,WAAW,aAAa;IAC1B,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,QAAQ,CAAC;IACnB,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,MAAM,GAAG,WAAW,GAAG,OAAO,CAAC;IACvC,SAAS,EAAE,MAAM,CAAC;CACrB;AAED,qBAAa,gBAAgB;IACzB,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAmB;IAC1C,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAgC;IAEzD,OAAO;IAEP,MAAM,CAAC,WAAW,IAAI,gBAAgB;IAOhC,UAAU,CAAC,QAAQ,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAYpE,OAAO,CAAC,WAAW;YAWL,QAAQ;
|
|
1
|
+
{"version":3,"file":"TelemetryManager.d.ts","sourceRoot":"","sources":["../../src/telemetry/TelemetryManager.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AAEjD,MAAM,WAAW,aAAa;IAC1B,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,QAAQ,CAAC;IACnB,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,MAAM,GAAG,WAAW,GAAG,OAAO,CAAC;IACvC,SAAS,EAAE,MAAM,CAAC;CACrB;AAED,qBAAa,gBAAgB;IACzB,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAmB;IAC1C,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAgC;IAEzD,OAAO;IAEP,MAAM,CAAC,WAAW,IAAI,gBAAgB;IAOhC,UAAU,CAAC,QAAQ,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAYpE,OAAO,CAAC,WAAW;YAWL,QAAQ;IA2BtB,IAAI,IAAI,IAAI;CAGf"}
|
|
@@ -10,7 +10,7 @@ export class TelemetryManager {
|
|
|
10
10
|
}
|
|
11
11
|
async initialize(platform, version) {
|
|
12
12
|
const domain = typeof window !== 'undefined' ? window.location.hostname : 'node-server';
|
|
13
|
-
if (domain.includes('flicknexs.com')
|
|
13
|
+
if (domain.includes('flicknexs.com')) {
|
|
14
14
|
return;
|
|
15
15
|
}
|
|
16
16
|
const data = this.collectData(platform, version);
|
|
@@ -28,19 +28,25 @@ export class TelemetryManager {
|
|
|
28
28
|
}
|
|
29
29
|
async sendPing(data) {
|
|
30
30
|
try {
|
|
31
|
+
const body = JSON.stringify(data);
|
|
32
|
+
if (typeof navigator !== 'undefined' && navigator.sendBeacon) {
|
|
33
|
+
const blob = new Blob([body], { type: 'application/json' });
|
|
34
|
+
const success = navigator.sendBeacon(this.endpoint, blob);
|
|
35
|
+
if (success)
|
|
36
|
+
return;
|
|
37
|
+
}
|
|
31
38
|
if (typeof fetch !== 'undefined') {
|
|
32
39
|
await fetch(this.endpoint, {
|
|
33
40
|
method: 'POST',
|
|
34
|
-
mode: '
|
|
41
|
+
mode: 'cors',
|
|
35
42
|
headers: {
|
|
36
43
|
'Content-Type': 'application/json'
|
|
37
44
|
},
|
|
38
|
-
body
|
|
45
|
+
body
|
|
39
46
|
});
|
|
40
47
|
}
|
|
41
48
|
}
|
|
42
49
|
catch (e) {
|
|
43
|
-
console.warn('Telemetry ping failed');
|
|
44
50
|
}
|
|
45
51
|
}
|
|
46
52
|
stop() {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TelemetryManager.js","sourceRoot":"","sources":["../../src/telemetry/TelemetryManager.ts"],"names":[],"mappings":"AAeA,MAAM,OAAO,gBAAgB;IAIzB;QAFiB,aAAQ,GAAG,4BAA4B,CAAC;IAEjC,CAAC;IAEzB,MAAM,CAAC,WAAW;QACd,IAAI,CAAC,gBAAgB,CAAC,QAAQ,EAAE;YAC5B,gBAAgB,CAAC,QAAQ,GAAG,IAAI,gBAAgB,EAAE,CAAC;SACtD;QACD,OAAO,gBAAgB,CAAC,QAAQ,CAAC;IACrC,CAAC;IAED,KAAK,CAAC,UAAU,CAAC,QAAkB,EAAE,OAAe;QAChD,MAAM,MAAM,GAAG,OAAO,MAAM,KAAK,WAAW,CAAC,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC,aAAa,CAAC;QAGxF,IAAI,MAAM,CAAC,QAAQ,CAAC,eAAe,CAAC,
|
|
1
|
+
{"version":3,"file":"TelemetryManager.js","sourceRoot":"","sources":["../../src/telemetry/TelemetryManager.ts"],"names":[],"mappings":"AAeA,MAAM,OAAO,gBAAgB;IAIzB;QAFiB,aAAQ,GAAG,4BAA4B,CAAC;IAEjC,CAAC;IAEzB,MAAM,CAAC,WAAW;QACd,IAAI,CAAC,gBAAgB,CAAC,QAAQ,EAAE;YAC5B,gBAAgB,CAAC,QAAQ,GAAG,IAAI,gBAAgB,EAAE,CAAC;SACtD;QACD,OAAO,gBAAgB,CAAC,QAAQ,CAAC;IACrC,CAAC;IAED,KAAK,CAAC,UAAU,CAAC,QAAkB,EAAE,OAAe;QAChD,MAAM,MAAM,GAAG,OAAO,MAAM,KAAK,WAAW,CAAC,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC,aAAa,CAAC;QAGxF,IAAI,MAAM,CAAC,QAAQ,CAAC,eAAe,CAAC,EAAE;YAClC,OAAO;SACV;QAED,MAAM,IAAI,GAAG,IAAI,CAAC,WAAW,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;QACjD,MAAM,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;IAC9B,CAAC;IAEO,WAAW,CAAC,QAAkB,EAAE,OAAe;QACnD,OAAO;YACH,MAAM,EAAE,OAAO,MAAM,KAAK,WAAW,CAAC,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC,aAAa;YAChF,QAAQ;YACR,OAAO;YACP,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE;YACrB,MAAM,EAAE,MAAM;YACd,SAAS,EAAE,OAAO,SAAS,KAAK,WAAW,CAAC,CAAC,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS;SAChF,CAAC;IACN,CAAC;IAEO,KAAK,CAAC,QAAQ,CAAC,IAAmB;QACtC,IAAI;YACA,MAAM,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;YAGlC,IAAI,OAAO,SAAS,KAAK,WAAW,IAAI,SAAS,CAAC,UAAU,EAAE;gBAC1D,MAAM,IAAI,GAAG,IAAI,IAAI,CAAC,CAAC,IAAI,CAAC,EAAE,EAAE,IAAI,EAAE,kBAAkB,EAAE,CAAC,CAAC;gBAC5D,MAAM,OAAO,GAAG,SAAS,CAAC,UAAU,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;gBAC1D,IAAI,OAAO;oBAAE,OAAO;aACvB;YAGD,IAAI,OAAO,KAAK,KAAK,WAAW,EAAE;gBAC9B,MAAM,KAAK,CAAC,IAAI,CAAC,QAAQ,EAAE;oBACvB,MAAM,EAAE,MAAM;oBACd,IAAI,EAAE,MAAM;oBACZ,OAAO,EAAE;wBACL,cAAc,EAAE,kBAAkB;qBACrC;oBACD,IAAI;iBACP,CAAC,CAAC;aACN;SACJ;QAAC,OAAO,CAAC,EAAE;SAEX;IACL,CAAC;IAED,IAAI;IAEJ,CAAC;CACJ"}
|
|
@@ -30,7 +30,7 @@ export class TelemetryManager {
|
|
|
30
30
|
const domain = typeof window !== 'undefined' ? window.location.hostname : 'node-server';
|
|
31
31
|
|
|
32
32
|
// Ignore pings from flicknexs.com or subdomains
|
|
33
|
-
if (domain.includes('flicknexs.com')
|
|
33
|
+
if (domain.includes('flicknexs.com')) {
|
|
34
34
|
return;
|
|
35
35
|
}
|
|
36
36
|
|
|
@@ -51,18 +51,28 @@ export class TelemetryManager {
|
|
|
51
51
|
|
|
52
52
|
private async sendPing(data: TelemetryData): Promise<void> {
|
|
53
53
|
try {
|
|
54
|
+
const body = JSON.stringify(data);
|
|
55
|
+
|
|
56
|
+
// Try sendBeacon first for background telemetry
|
|
57
|
+
if (typeof navigator !== 'undefined' && navigator.sendBeacon) {
|
|
58
|
+
const blob = new Blob([body], { type: 'application/json' });
|
|
59
|
+
const success = navigator.sendBeacon(this.endpoint, blob);
|
|
60
|
+
if (success) return;
|
|
61
|
+
}
|
|
62
|
+
|
|
63
|
+
// Fallback to fetch
|
|
54
64
|
if (typeof fetch !== 'undefined') {
|
|
55
65
|
await fetch(this.endpoint, {
|
|
56
66
|
method: 'POST',
|
|
57
|
-
mode: '
|
|
67
|
+
mode: 'cors',
|
|
58
68
|
headers: {
|
|
59
69
|
'Content-Type': 'application/json'
|
|
60
70
|
},
|
|
61
|
-
body
|
|
71
|
+
body
|
|
62
72
|
});
|
|
63
73
|
}
|
|
64
74
|
} catch (e) {
|
|
65
|
-
|
|
75
|
+
// Quiet fail
|
|
66
76
|
}
|
|
67
77
|
}
|
|
68
78
|
|