unified-video-framework 1.4.430 → 1.4.431

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/README.md CHANGED
@@ -1,336 +1,37 @@
1
- # Unified Video Player Framework ( 🚧 Don't use this Package this is Under Developement 🏗️ )
2
- <!--
3
- A comprehensive cross-platform video player framework that provides a unified API for building video applications across all major platforms.
1
+ # Unified Video Player SDK for OTT, Web
4
2
 
5
- ## 🎯 Supported Platforms
3
+ **A production-ready, cross-platform video player framework to build OTT, FAST, VOD, and Live Streaming applications using a single unified API.**
6
4
 
7
- - **Mobile**: iOS, Android
8
- - **Web**: All modern browsers
9
- - **Smart TVs**:
10
- - Samsung Tizen (using Enact)
11
- - LG webOS (using Enact)
12
- - **Streaming Devices**:
13
- - Roku
14
- - Android TV
15
- - Apple TV
16
- - **Desktop**: Windows, macOS, Linux (via web)
5
+ Built and maintained by **Flicknexs**, trusted by teams building video platforms across Web, Mobile Streaming Devices.
17
6
 
18
- ## Features
7
+ 🔗 **Official Website**: https://flicknexs.com
8
+ 📘 **Docs & Examples**: https://flicknexs.com/video-player-sdk?utm_source=npm&utm_medium=referral&utm_campaign=unified_video_framework
9
+ 💻 **GitHub Repository**: https://github.com/flicknexs/unified-video-framework
19
10
 
20
- - **Unified API**: Single API across all platforms
21
- - **DRM Support**: FairPlay, Widevine, PlayReady
22
- - **Adaptive Streaming**: HLS, DASH support
23
- - **Analytics**: Built-in analytics integration
24
- - **Offline Playback**: Download and play offline
25
- - **Casting**: Chromecast and AirPlay support
26
- - **Picture-in-Picture**: Supported platforms
27
- - **4K/8K & HDR**: High-quality video support
28
- - **Subtitles & Multiple Audio Tracks**
29
- - **Ad Integration**: Pre-roll, mid-roll, post-roll ads
30
- - **Remote Control**: Full TV remote support
31
-
32
- ## 📦 Installation
33
-
34
- ### Using npm
35
- ```bash
36
- npm install unified-video-framework
37
- ```
38
-
39
- ### Using yarn
40
- ```bash
41
- yarn add unified-video-framework
42
- ```
43
-
44
- ### Using pnpm
45
- ```bash
46
- pnpm add unified-video-framework
47
- ```
48
-
49
- ### From GitHub (latest development version)
50
- ```bash
51
- npm install github:flicknexs/unified-video-framework
52
- ```
53
-
54
- ### Using npm link (for development)
55
- ```bash
56
- # In the framework directory
57
- npm link
58
-
59
- # In your project
60
- npm link unified-video-framework
61
- ```
62
-
63
- 📖 **For detailed installation instructions and troubleshooting, see [INSTALLATION.md](./INSTALLATION.md)**
64
-
65
- ## 🚀 Quick Start
66
-
67
- ### Basic Usage
68
-
69
- ```typescript
70
- import { UnifiedVideoPlayer } from '@flicknexs/unified-video-framework';
71
-
72
- function App() {
73
- return (
74
- <UnifiedVideoPlayer
75
- source={{
76
- url: 'https://example.com/video.m3u8',
77
- type: 'application/x-mpegURL'
78
- }}
79
- config={{
80
- autoPlay: true,
81
- controls: true
82
- }}
83
- onReady={() => console.log('Player ready')}
84
- onError={(error) => console.error('Player error:', error)}
85
- />
86
- );
87
- }
88
- ```
89
-
90
- ### With DRM
91
-
92
- ```typescript
93
- import { UnifiedVideoPlayer, DRMType } from '@flicknexs/unified-video-framework';
94
-
95
- function SecureVideoApp() {
96
- return (
97
- <UnifiedVideoPlayer
98
- source={{
99
- url: 'https://example.com/encrypted-video.mpd',
100
- type: 'application/dash+xml',
101
- drm: {
102
- type: DRMType.WIDEVINE,
103
- licenseUrl: 'https://license.example.com/widevine',
104
- headers: {
105
- 'X-Auth-Token': 'your-auth-token'
106
- }
107
- }
108
- }}
109
- config={{
110
- autoPlay: false,
111
- adaptiveBitrate: {
112
- autoLevelEnabled: true,
113
- startLevel: -1
114
- }
115
- }}
116
- />
117
- );
118
- }
119
- ```
120
-
121
- ## 🏗️ Framework Architecture
122
-
123
- ```
124
- ┌────────────────────────────────────────────────┐
125
- │ Application Layer (Your App) │
126
- ├────────────────────────────────────────────────┤
127
- │ Unified Video Framework API (TypeScript) │
128
- ├────────────────────────────────────────────────┤
129
- │ Platform Bridge Layer │
130
- ├──────┬──────┬──────────┬──────┬──────────┬────┤
131
- │ iOS │Android│ Enact │ Roku │ Web │Win │
132
- │Native│Native │(Tizen/LG)│Bridge│ Browser │UWP │
133
- └──────┴──────┴──────────┴──────┴──────────┴────┘
134
- ```
135
-
136
- ## 📱 Platform-Specific Setup
137
-
138
- ### iOS
139
- ```bash
140
- cd ios && pod install
141
- ```
142
-
143
- ### Android
144
- Add to `android/app/build.gradle`:
145
- ```gradle
146
- dependencies {
147
- implementation 'com.google.android.exoplayer:exoplayer:2.18.0'
148
- }
149
- ```
150
-
151
- ### Samsung Tizen TV
152
- ```bash
153
- npm run build:tizen
154
- tizen install -n dist/tizen/app.wgt
155
- ```
156
-
157
- ### LG webOS TV
158
- ```bash
159
- npm run build:webos
160
- ares-install dist/webos/app.ipk
161
- ```
162
-
163
- ### Roku
164
- ```bash
165
- npm run build:roku
166
- # Upload via Roku Developer Dashboard
167
- ```
168
-
169
- ## 🛠️ Development
170
-
171
- ### Setup
172
- ```bash
173
- # Install dependencies
174
- npm install
175
-
176
- # Bootstrap monorepo
177
- npm run bootstrap
178
-
179
- # Build all packages
180
- npm run build
181
- ```
182
-
183
- ### Running Examples
184
- ```bash
185
- # Run mobile demo
186
- cd apps/mobile-demo
187
- npm run ios
188
- # or
189
- npm run android
190
-
191
- # Run TV demo
192
- cd apps/tv-demo
193
- npm run serve
194
-
195
- # Run web demo
196
- cd apps/web-demo
197
- npm start
198
- ```
199
-
200
- ## 📖 API Documentation
201
-
202
- ### VideoPlayer Methods
203
-
204
- | Method | Description | Returns |
205
- |--------|-------------|---------|
206
- | `load(source)` | Load a video source | `Promise<void>` |
207
- | `play()` | Start playback | `Promise<void>` |
208
- | `pause()` | Pause playback | `void` |
209
- | `seek(time)` | Seek to position | `void` |
210
- | `setVolume(level)` | Set volume (0-1) | `void` |
211
- | `setQuality(quality)` | Set video quality | `void` |
212
- | `setSubtitle(track)` | Set subtitle track | `void` |
213
- | `destroy()` | Clean up player | `void` |
214
-
215
- ### Events
216
-
217
- | Event | Description | Payload |
218
- |-------|-------------|---------|
219
- | `ready` | Player initialized | - |
220
- | `play` | Playback started | - |
221
- | `pause` | Playback paused | - |
222
- | `ended` | Playback ended | - |
223
- | `error` | Error occurred | `{error: Error}` |
224
- | `timeupdate` | Position updated | `{currentTime: number}` |
225
- | `progress` | Buffer progress | `{buffered: number}` |
226
- | `qualitychange` | Quality changed | `{quality: Quality}` |
227
-
228
- ## 🎮 Remote Control Support
229
-
230
- The framework automatically handles remote control inputs on TV platforms:
231
-
232
- - **Play/Pause**: Media play/pause keys
233
- - **Seek**: Left/Right arrow keys
234
- - **Volume**: Up/Down arrow keys
235
- - **Back**: Return/Back button
236
- - **Select**: OK/Enter button
237
-
238
- ## 📊 Analytics Integration
239
-
240
- ```typescript
241
- import { GoogleAnalytics, MixPanel } from '@flicknexs/analytics';
242
-
243
- <UnifiedVideoPlayer
244
- source={videoSource}
245
- config={{
246
- analytics: {
247
- enabled: true,
248
- providers: [
249
- new GoogleAnalytics({ trackingId: 'UA-XXXXX' }),
250
- new MixPanel({ token: 'your-token' })
251
- ]
252
- }
253
- }}
254
- />
255
- ```
256
-
257
- ## 🔒 DRM Configuration
258
-
259
- ### FairPlay (iOS/Apple TV)
260
- ```typescript
261
- {
262
- type: DRMType.FAIRPLAY,
263
- certificateUrl: 'https://example.com/certificate',
264
- licenseUrl: 'https://example.com/license'
265
- }
266
- ```
267
-
268
- ### Widevine (Android/Chrome/Smart TVs)
269
- ```typescript
270
- {
271
- type: DRMType.WIDEVINE,
272
- licenseUrl: 'https://example.com/widevine/license'
273
- }
274
- ```
275
-
276
- ### PlayReady (Windows/Xbox/Smart TVs)
277
- ```typescript
278
- {
279
- type: DRMType.PLAYREADY,
280
- licenseUrl: 'https://example.com/playready/license'
281
- }
282
- ```
283
-
284
- ## 🧪 Testing
285
-
286
- ```bash
287
- # Run unit tests
288
- npm test
289
-
290
- # Run E2E tests
291
- npm run test:e2e
292
-
293
- # Platform-specific tests
294
- npm run test:ios
295
- npm run test:android
296
- npm run test:tizen
297
- ```
298
-
299
- ## 📈 Performance Optimization
300
-
301
- - **Lazy Loading**: Platform-specific code is loaded on demand
302
- - **Code Splitting**: Automatic code splitting for web builds
303
- - **Memory Management**: Automatic cleanup and resource management
304
- - **Adaptive Bitrate**: Automatic quality adjustment based on network
305
-
306
- ## 💳 Paywall Rentals (Stripe, Pesapal, Google Pay)
307
-
308
- - For per-video rentals (no subscriptions), follow our step-by-step implementation guide:
309
- - See PAYWALL_RENTAL_FLOW.md: [PAYWALL_RENTAL_FLOW.md](./PAYWALL_RENTAL_FLOW.md)
310
- - Documentation index: [docs/](./docs/README.md)
311
-
312
- ## 🤝 Contributing
313
-
314
- Please read [CONTRIBUTING.md](CONTRIBUTING.md) for details on our code of conduct and the process for submitting pull requests.
315
-
316
- ## 📄 License
317
-
318
- This project is licensed under the MIT License - see the [LICENSE](LICENSE) file for details.
11
+ ---
319
12
 
320
- ## 🆘 Support
13
+ ## Why Unified Video Framework?
321
14
 
322
- - **Documentation**: [https://docs.example.com](https://docs.example.com)
323
- - **Issues**: [GitHub Issues](https://github.com/flicknexs/unified-video-framework/issues)
324
- - **Discord**: [Join our Discord](https://discord.gg/example)
325
- - **Email**: support@example.com
15
+ Most video teams struggle with maintaining **separate players for Web, Mobile **. Flicknexs Unified Video Framework eliminates this complexity by providing **one SDK that works everywhere**.
326
16
 
327
- ## 🙏 Acknowledgments
17
+ ### Supported Platforms
18
+ - **Web** (all modern browsers)
19
+ - **iOS & Android** (Native / React Native) (On Progress)
20
+ - **Smart TVs** (Samsung Tizen, LG webOS) (On Progress)
21
+ - **Streaming Devices** (Roku, Android TV, Apple TV) (On Progress)
328
22
 
329
- - React Native team for the mobile framework
330
- - Enact team for the Smart TV framework
331
- - ExoPlayer team for Android video engine
332
- - AVPlayer team for iOS video engine
23
+ ### Built for OTT & Streaming Use Cases
24
+ - Video on Demand (VOD)
25
+ - Live Streaming
26
+ - FAST Channels
27
+ - Rentals & Pay-Per-View
28
+ - Subscription platforms
333
29
 
334
30
  ---
335
- -->
336
- Built with ❤️ by flicknexs
31
+
32
+ ### Powered by Flicknexs
33
+ ```js
34
+ /**
35
+ * Powered by Flicknexs Unified Video Framework
36
+ * https://flicknexs.com/video-player-sdk
37
+ */
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "unified-video-framework",
3
- "version": "1.4.430",
3
+ "version": "1.4.431",
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":"BasePlayer.d.ts","sourceRoot":"","sources":["../src/BasePlayer.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"BasePlayer.d.ts","sourceRoot":"","sources":["../src/BasePlayer.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,6 @@
1
1
  import { EventEmitter } from './utils/EventEmitter';
2
+ import { TelemetryManager } from './telemetry/TelemetryManager';
3
+ import { VERSION } from './version';
2
4
  export class BasePlayer {
3
5
  constructor() {
4
6
  this.container = null;
@@ -53,6 +55,11 @@ export class BasePlayer {
53
55
  this.config = { ...this.getDefaultConfig(), ...config };
54
56
  this.state.volume = this.config.volume || 1.0;
55
57
  this.state.isMuted = this.config.muted || false;
58
+ try {
59
+ TelemetryManager.getInstance().initialize('web', VERSION);
60
+ }
61
+ catch (e) {
62
+ }
56
63
  await this.setupPlayer();
57
64
  }
58
65
  async play() {
@@ -1 +1 @@
1
- {"version":3,"file":"BasePlayer.js","sourceRoot":"","sources":["../src/BasePlayer.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"BasePlayer.js","sourceRoot":"","sources":["../src/BasePlayer.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"VideoPlayerFactory.d.ts","sourceRoot":"","sources":["../src/VideoPlayerFactory.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AAEvE,MAAM,MAAM,QAAQ,GAChB,KAAK,GACL,KAAK,GACL,SAAS,GACT,OAAO,GACP,OAAO,GACP,MAAM,GACN,WAAW,GACX,SAAS,GACT,SAAS,CAAC;AAEd,qBAAa,kBAAkB;WAIhB,MAAM,CACjB,QAAQ,EAAE,QAAQ,EAClB,SAAS,EAAE,WAAW,GAAG,MAAM,GAAG,GAAG,EACrC,MAAM,CAAC,EAAE,YAAY,GACpB,OAAO,CAAC,YAAY,CAAC;IA+ExB,MAAM,CAAC,cAAc,IAAI,QAAQ;WAkDpB,wBAAwB,CACnC,SAAS,EAAE,WAAW,GAAG,MAAM,GAAG,GAAG,EACrC,MAAM,CAAC,EAAE,YAAY,GACpB,OAAO,CAAC,YAAY,CAAC;CAIzB"}
1
+ {"version":3,"file":"VideoPlayerFactory.d.ts","sourceRoot":"","sources":["../src/VideoPlayerFactory.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AAEvE,MAAM,MAAM,QAAQ,GAChB,KAAK,GACL,KAAK,GACL,SAAS,GACT,OAAO,GACP,OAAO,GACP,MAAM,GACN,WAAW,GACX,SAAS,GACT,SAAS,CAAC;AAKd,qBAAa,kBAAkB;WAIhB,MAAM,CACjB,QAAQ,EAAE,QAAQ,EAClB,SAAS,EAAE,WAAW,GAAG,MAAM,GAAG,GAAG,EACrC,MAAM,CAAC,EAAE,YAAY,GACpB,OAAO,CAAC,YAAY,CAAC;IA8ExB,MAAM,CAAC,cAAc,IAAI,QAAQ;WAkDpB,wBAAwB,CACnC,SAAS,EAAE,WAAW,GAAG,MAAM,GAAG,GAAG,EACrC,MAAM,CAAC,EAAE,YAAY,GACpB,OAAO,CAAC,YAAY,CAAC;CAIzB"}
@@ -1,19 +1,21 @@
1
+ import { TelemetryManager } from './telemetry/TelemetryManager';
2
+ import { VERSION } from './version';
1
3
  export class VideoPlayerFactory {
2
4
  static async create(platform, container, config) {
5
+ try {
6
+ TelemetryManager.getInstance().initialize(platform, VERSION);
7
+ }
8
+ catch (telemetryError) {
9
+ console.warn('Telemetry init failed', telemetryError);
10
+ }
3
11
  switch (platform) {
4
12
  case 'web':
13
+ case 'windows':
5
14
  try {
6
15
  const WebModule = await eval('import("@unified-video/web")');
7
16
  if (WebModule?.WebPlayer) {
8
17
  const player = new WebModule.WebPlayer();
9
18
  await player.initialize(container, config);
10
- try {
11
- const { TelemetryManager } = await import('./telemetry/TelemetryManager');
12
- const { VERSION } = await import('./index');
13
- TelemetryManager.getInstance().initialize('web', VERSION);
14
- }
15
- catch (telemetryError) {
16
- }
17
19
  return player;
18
20
  }
19
21
  }
@@ -1 +1 @@
1
- {"version":3,"file":"VideoPlayerFactory.js","sourceRoot":"","sources":["../src/VideoPlayerFactory.ts"],"names":[],"mappings":"AAiBA,MAAM,OAAO,kBAAkB;IAI7B,MAAM,CAAC,KAAK,CAAC,MAAM,CACjB,QAAkB,EAClB,SAAqC,EACrC,MAAqB;QAKrB,QAAQ,QAAQ,EAAE;YAChB,KAAK,KAAK;gBAER,IAAI;oBACF,MAAM,SAAS,GAAG,MAAO,IAAI,CAAC,8BAA8B,CAAkB,CAAC;oBAC/E,IAAI,SAAS,EAAE,SAAS,EAAE;wBACxB,MAAM,MAAM,GAAG,IAAI,SAAS,CAAC,SAAS,EAAE,CAAC;wBACzC,MAAM,MAAM,CAAC,UAAU,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC;wBAG3C,IAAI;4BACF,MAAM,EAAE,gBAAgB,EAAE,GAAG,MAAM,MAAM,CAAC,8BAA8B,CAAC,CAAC;4BAC1E,MAAM,EAAE,OAAO,EAAE,GAAG,MAAM,MAAM,CAAC,SAAS,CAAC,CAAC;4BAC5C,gBAAgB,CAAC,WAAW,EAAE,CAAC,UAAU,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;yBAC3D;wBAAC,OAAO,cAAc,EAAE;yBAExB;wBAED,OAAO,MAAM,CAAC;qBACf;iBACF;gBAAC,OAAO,CAAC,EAAE;iBAEX;gBACD,MAAM;YAER,KAAK,KAAK,CAAC;YACX,KAAK,SAAS;gBACZ,IAAI;oBACF,MAAM,QAAQ,GAAG,MAAO,IAAI,CAAC,uCAAuC,CAAkB,CAAC;oBACvF,IAAI,QAAQ,EAAE,iBAAiB,EAAE;wBAE/B,OAAO,QAAQ,CAAC,iBAAiB,CAAC;qBACnC;iBACF;gBAAC,OAAO,CAAC,EAAE;iBAEX;gBACD,MAAM;YAER,KAAK,OAAO,CAAC;YACb,KAAK,OAAO;gBACV,IAAI;oBACF,MAAM,WAAW,GAAG,MAAO,IAAI,CAAC,gCAAgC,CAAkB,CAAC;oBACnF,IAAI,WAAW,EAAE,WAAW,EAAE;wBAC5B,MAAM,MAAM,GAAG,IAAI,WAAW,CAAC,WAAW,EAAE,CAAC;wBAC7C,MAAM,MAAM,CAAC,UAAU,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC;wBAC3C,OAAO,MAAM,CAAC;qBACf;iBACF;gBAAC,OAAO,CAAC,EAAE;iBAEX;gBACD,MAAM;YAER,KAAK,MAAM;gBACT,IAAI;oBACF,MAAM,UAAU,GAAG,MAAO,IAAI,CAAC,+BAA+B,CAAkB,CAAC;oBACjF,IAAI,UAAU,EAAE,UAAU,EAAE;wBAC1B,MAAM,MAAM,GAAG,IAAI,UAAU,CAAC,UAAU,EAAE,CAAC;wBAC3C,MAAM,MAAM,CAAC,UAAU,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC;wBAC3C,OAAO,MAAM,CAAC;qBACf;iBACF;gBAAC,OAAO,CAAC,EAAE;iBAEX;gBACD,MAAM;YAER;gBACE,MAAM,IAAI,KAAK,CAAC,aAAa,QAAQ,oBAAoB,CAAC,CAAC;SAC9D;QAED,MAAM,IAAI,KAAK,CAAC,uCAAuC,QAAQ,GAAG,CAAC,CAAC;IACtE,CAAC;IAKD,MAAM,CAAC,cAAc;QAEnB,IAAI,OAAO,MAAM,KAAK,WAAW,IAAK,MAAc,CAAC,kBAAkB,EAAE;YAEvE,IAAI;gBAEF,MAAM,EAAE,GAAG,IAAI,CAAC,yBAAyB,CAAC,CAAC;gBAC3C,IAAI,EAAE,IAAI,EAAE,CAAC,QAAQ,EAAE;oBACrB,OAAO,EAAE,CAAC,QAAQ,CAAC,EAAc,CAAC;iBACnC;aACF;YAAC,OAAO,CAAC,EAAE;aAEX;SACF;QAGD,IAAI,OAAO,MAAM,KAAK,WAAW,EAAE;YACjC,MAAM,SAAS,GAAG,MAAM,CAAC,SAAS,CAAC,SAAS,CAAC,WAAW,EAAE,CAAC;YAG3D,IAAI,SAAS,CAAC,QAAQ,CAAC,OAAO,CAAC;gBAAE,OAAO,OAAO,CAAC;YAChD,IAAI,SAAS,CAAC,QAAQ,CAAC,OAAO,CAAC;gBAAE,OAAO,OAAO,CAAC;YAChD,IAAI,SAAS,CAAC,QAAQ,CAAC,MAAM,CAAC;gBAAE,OAAO,MAAM,CAAC;YAG9C,IAAI,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,IAAI,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE;gBAC7D,OAAO,WAAW,CAAC;aACpB;YAGD,IAAI,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC;gBAAE,OAAO,SAAS,CAAC;YAGpD,IAAI,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC;gBAAE,OAAO,SAAS,CAAC;YAGpD,OAAO,KAAK,CAAC;SACd;QAGD,IAAI,OAAO,OAAO,KAAK,WAAW,IAAI,OAAO,CAAC,QAAQ,IAAI,OAAO,CAAC,QAAQ,CAAC,IAAI,EAAE;YAC/E,OAAO,KAAK,CAAC;SACd;QAED,MAAM,IAAI,KAAK,CAAC,2BAA2B,CAAC,CAAC;IAC/C,CAAC;IAKD,MAAM,CAAC,KAAK,CAAC,wBAAwB,CACnC,SAAqC,EACrC,MAAqB;QAErB,MAAM,QAAQ,GAAG,IAAI,CAAC,cAAc,EAAE,CAAC;QACvC,OAAO,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE,SAAS,EAAE,MAAM,CAAC,CAAC;IAClD,CAAC;CACF"}
1
+ {"version":3,"file":"VideoPlayerFactory.js","sourceRoot":"","sources":["../src/VideoPlayerFactory.ts"],"names":[],"mappings":"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"}
@@ -8,5 +8,5 @@ export type { ChapterManagerEvents } from './chapter-manager';
8
8
  export * as Analytics from './analytics';
9
9
  export { TelemetryManager } from './telemetry/TelemetryManager';
10
10
  export type { TelemetryData } from './telemetry/TelemetryManager';
11
- export declare const VERSION = "1.0.0";
11
+ export { VERSION } from './version';
12
12
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAMA,cAAc,cAAc,CAAC;AAG7B,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAG1C,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAC1D,YAAY,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AAGrD,OAAO,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AAGpD,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AACnD,YAAY,EAAE,oBAAoB,EAAE,MAAM,mBAAmB,CAAC;AAG9D,OAAO,KAAK,SAAS,MAAM,aAAa,CAAC;AAGzC,OAAO,EAAE,gBAAgB,EAAE,MAAM,8BAA8B,CAAC;AAChE,YAAY,EAAE,aAAa,EAAE,MAAM,8BAA8B,CAAC;AAGlE,eAAO,MAAM,OAAO,UAAU,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAMA,cAAc,cAAc,CAAC;AAG7B,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAG1C,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAC1D,YAAY,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AAGrD,OAAO,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AAGpD,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AACnD,YAAY,EAAE,oBAAoB,EAAE,MAAM,mBAAmB,CAAC;AAG9D,OAAO,KAAK,SAAS,MAAM,aAAa,CAAC;AAGzC,OAAO,EAAE,gBAAgB,EAAE,MAAM,8BAA8B,CAAC;AAChE,YAAY,EAAE,aAAa,EAAE,MAAM,8BAA8B,CAAC;AAGlE,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC"}
@@ -5,5 +5,5 @@ export { EventEmitter } from './utils/EventEmitter';
5
5
  export { ChapterManager } from './chapter-manager';
6
6
  export * as Analytics from './analytics';
7
7
  export { TelemetryManager } from './telemetry/TelemetryManager';
8
- export const VERSION = '1.0.0';
8
+ export { VERSION } from './version';
9
9
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAMA,cAAc,cAAc,CAAC;AAG7B,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAG1C,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAI1D,OAAO,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AAGpD,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAInD,OAAO,KAAK,SAAS,MAAM,aAAa,CAAC;AAGzC,OAAO,EAAE,gBAAgB,EAAE,MAAM,8BAA8B,CAAC;AAIhE,MAAM,CAAC,MAAM,OAAO,GAAG,OAAO,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAMA,cAAc,cAAc,CAAC;AAG7B,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAG1C,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAI1D,OAAO,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AAGpD,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAInD,OAAO,KAAK,SAAS,MAAM,aAAa,CAAC;AAGzC,OAAO,EAAE,gBAAgB,EAAE,MAAM,8BAA8B,CAAC;AAIhE,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC"}
@@ -10,6 +10,7 @@ export interface TelemetryData {
10
10
  export declare class TelemetryManager {
11
11
  private static instance;
12
12
  private readonly endpoint;
13
+ private initialized;
13
14
  private constructor();
14
15
  static getInstance(): TelemetryManager;
15
16
  initialize(platform: Platform, version: string): Promise<void>;
@@ -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,CAAiD;IAE1E,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"}
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,CAAiD;IAC1E,OAAO,CAAC,WAAW,CAAS;IAE5B,OAAO;IAEP,MAAM,CAAC,WAAW,IAAI,gBAAgB;IAOhC,UAAU,CAAC,QAAQ,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAkBpE,OAAO,CAAC,WAAW;YAWL,QAAQ;IAmCtB,IAAI,IAAI,IAAI;CAGf"}
@@ -1,6 +1,7 @@
1
1
  export class TelemetryManager {
2
2
  constructor() {
3
3
  this.endpoint = 'https://videonexs-player.flicknexs.com/ping';
4
+ this.initialized = false;
4
5
  }
5
6
  static getInstance() {
6
7
  if (!TelemetryManager.instance) {
@@ -9,10 +10,10 @@ export class TelemetryManager {
9
10
  return TelemetryManager.instance;
10
11
  }
11
12
  async initialize(platform, version) {
12
- const domain = typeof window !== 'undefined' ? window.location.hostname : 'node-server';
13
- if (domain.includes('flicknexs.com')) {
13
+ if (this.initialized)
14
14
  return;
15
- }
15
+ this.initialized = true;
16
+ console.log(`[Telemetry] Initializing for ${platform} v${version}`);
16
17
  const data = this.collectData(platform, version);
17
18
  await this.sendPing(data);
18
19
  }
@@ -29,14 +30,9 @@ export class TelemetryManager {
29
30
  async sendPing(data) {
30
31
  try {
31
32
  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
- }
33
+ console.log('[Telemetry] Sending ping...', data);
38
34
  if (typeof fetch !== 'undefined') {
39
- await fetch(this.endpoint, {
35
+ const response = await fetch(this.endpoint, {
40
36
  method: 'POST',
41
37
  mode: 'cors',
42
38
  headers: {
@@ -44,9 +40,21 @@ export class TelemetryManager {
44
40
  },
45
41
  body
46
42
  });
43
+ if (response.ok) {
44
+ console.log('[Telemetry] Ping sent successfully');
45
+ return;
46
+ }
47
+ else {
48
+ console.warn(`[Telemetry] Ping failed with status: ${response.status}`);
49
+ }
50
+ }
51
+ if (typeof navigator !== 'undefined' && navigator.sendBeacon) {
52
+ const blob = new Blob([body], { type: 'application/json' });
53
+ navigator.sendBeacon(this.endpoint, blob);
47
54
  }
48
55
  }
49
56
  catch (e) {
57
+ console.error('[Telemetry] Error sending ping:', e);
50
58
  }
51
59
  }
52
60
  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,6CAA6C,CAAC;IAElD,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"}
1
+ {"version":3,"file":"TelemetryManager.js","sourceRoot":"","sources":["../../src/telemetry/TelemetryManager.ts"],"names":[],"mappings":"AAeA,MAAM,OAAO,gBAAgB;IAKzB;QAHiB,aAAQ,GAAG,6CAA6C,CAAC;QAClE,gBAAW,GAAG,KAAK,CAAC;IAEJ,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,IAAI,IAAI,CAAC,WAAW;YAAE,OAAO;QAC7B,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC;QAWxB,OAAO,CAAC,GAAG,CAAC,gCAAgC,QAAQ,KAAK,OAAO,EAAE,CAAC,CAAC;QACpE,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;YAElC,OAAO,CAAC,GAAG,CAAC,6BAA6B,EAAE,IAAI,CAAC,CAAC;YAGjD,IAAI,OAAO,KAAK,KAAK,WAAW,EAAE;gBAC9B,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,IAAI,CAAC,QAAQ,EAAE;oBACxC,MAAM,EAAE,MAAM;oBACd,IAAI,EAAE,MAAM;oBACZ,OAAO,EAAE;wBACL,cAAc,EAAE,kBAAkB;qBACrC;oBACD,IAAI;iBACP,CAAC,CAAC;gBAEH,IAAI,QAAQ,CAAC,EAAE,EAAE;oBACb,OAAO,CAAC,GAAG,CAAC,oCAAoC,CAAC,CAAC;oBAClD,OAAO;iBACV;qBAAM;oBACH,OAAO,CAAC,IAAI,CAAC,wCAAwC,QAAQ,CAAC,MAAM,EAAE,CAAC,CAAC;iBAC3E;aACJ;YAGD,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,SAAS,CAAC,UAAU,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;aAC7C;SACJ;QAAC,OAAO,CAAC,EAAE;YACR,OAAO,CAAC,KAAK,CAAC,iCAAiC,EAAE,CAAC,CAAC,CAAC;SACvD;IACL,CAAC;IAED,IAAI;IAEJ,CAAC;CACJ"}
@@ -0,0 +1,2 @@
1
+ export declare const VERSION = "1.4.431";
2
+ //# sourceMappingURL=version.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"version.d.ts","sourceRoot":"","sources":["../src/version.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,OAAO,YAAY,CAAC"}
@@ -0,0 +1,2 @@
1
+ export const VERSION = '1.4.431';
2
+ //# sourceMappingURL=version.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"version.js","sourceRoot":"","sources":["../src/version.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,OAAO,GAAG,SAAS,CAAC"}
@@ -2,17 +2,19 @@
2
2
  * Abstract base player class that provides common functionality
3
3
  */
4
4
 
5
- import {
6
- IVideoPlayer,
7
- VideoSource,
8
- PlayerConfig,
9
- PlayerState,
5
+ import {
6
+ IVideoPlayer,
7
+ VideoSource,
8
+ PlayerConfig,
9
+ PlayerState,
10
10
  PlayerError,
11
11
  Quality,
12
- SubtitleTrack
12
+ SubtitleTrack
13
13
  } from './interfaces/IVideoPlayer';
14
14
  import { PlayerEvent } from './interfaces';
15
15
  import { EventEmitter } from './utils/EventEmitter';
16
+ import { TelemetryManager } from './telemetry/TelemetryManager';
17
+ import { VERSION } from './version';
16
18
 
17
19
  export abstract class BasePlayer implements IVideoPlayer {
18
20
  protected container: HTMLElement | null = null;
@@ -76,6 +78,13 @@ export abstract class BasePlayer implements IVideoPlayer {
76
78
  this.state.volume = this.config.volume || 1.0;
77
79
  this.state.isMuted = this.config.muted || false;
78
80
 
81
+ // Safety net: ensure telemetry is initialized even if factory was bypassed
82
+ try {
83
+ TelemetryManager.getInstance().initialize('web', VERSION);
84
+ } catch (e) {
85
+ // Ignore
86
+ }
87
+
79
88
  await this.setupPlayer();
80
89
  }
81
90
 
@@ -227,7 +236,7 @@ export abstract class BasePlayer implements IVideoPlayer {
227
236
  this.state.isError = true;
228
237
  this.state.isPlaying = false;
229
238
  this.emit('onError', error);
230
-
239
+
231
240
  if (this.config.debug) {
232
241
  console.error('[VideoPlayer Error]', error);
233
242
  }
@@ -15,6 +15,9 @@ export type Platform =
15
15
  | 'appletv'
16
16
  | 'windows';
17
17
 
18
+ import { TelemetryManager } from './telemetry/TelemetryManager';
19
+ import { VERSION } from './version';
20
+
18
21
  export class VideoPlayerFactory {
19
22
  /**
20
23
  * Create a video player instance for the specified platform
@@ -27,24 +30,23 @@ export class VideoPlayerFactory {
27
30
  // Dynamic imports will be resolved at runtime
28
31
  // This allows the factory to work even if not all platform packages are installed
29
32
 
33
+ // Initialize telemetry tracking for all platforms
34
+ try {
35
+ TelemetryManager.getInstance().initialize(platform, VERSION);
36
+ } catch (telemetryError) {
37
+ // Silently fail telemetry to not affect player
38
+ console.warn('Telemetry init failed', telemetryError);
39
+ }
40
+
30
41
  switch (platform) {
31
42
  case 'web':
43
+ case 'windows': // Fallback windows to web
32
44
  // Dynamic imports will be resolved at runtime when the package is available
33
45
  try {
34
46
  const WebModule = await (eval('import("@unified-video/web")') as Promise<any>);
35
47
  if (WebModule?.WebPlayer) {
36
48
  const player = new WebModule.WebPlayer();
37
49
  await player.initialize(container, config);
38
-
39
- // Initialize telemetry tracking
40
- try {
41
- const { TelemetryManager } = await import('./telemetry/TelemetryManager');
42
- const { VERSION } = await import('./index');
43
- TelemetryManager.getInstance().initialize('web', VERSION);
44
- } catch (telemetryError) {
45
- // Silently fail telemetry to not affect player
46
- }
47
-
48
50
  return player;
49
51
  }
50
52
  } catch (e) {
@@ -28,4 +28,4 @@ export { TelemetryManager } from './telemetry/TelemetryManager';
28
28
  export type { TelemetryData } from './telemetry/TelemetryManager';
29
29
 
30
30
  // Export version
31
- export const VERSION = '1.0.0';
31
+ export { VERSION } from './version';
@@ -16,6 +16,7 @@ export interface TelemetryData {
16
16
  export class TelemetryManager {
17
17
  private static instance: TelemetryManager;
18
18
  private readonly endpoint = 'https://videonexs-player.flicknexs.com/ping';
19
+ private initialized = false;
19
20
 
20
21
  private constructor() { }
21
22
 
@@ -27,13 +28,19 @@ export class TelemetryManager {
27
28
  }
28
29
 
29
30
  async initialize(platform: Platform, version: string): Promise<void> {
30
- const domain = typeof window !== 'undefined' ? window.location.hostname : 'node-server';
31
+ if (this.initialized) return;
32
+ this.initialized = true;
31
33
 
32
- // Ignore pings from flicknexs.com or subdomains
34
+ // const domain = typeof window !== 'undefined' ? window.location.hostname : 'node-server';
35
+
36
+ // Temporary: disable filter to verify connectivity on ALL domains
37
+ /*
33
38
  if (domain.includes('flicknexs.com')) {
34
39
  return;
35
40
  }
41
+ */
36
42
 
43
+ console.log(`[Telemetry] Initializing for ${platform} v${version}`);
37
44
  const data = this.collectData(platform, version);
38
45
  await this.sendPing(data);
39
46
  }
@@ -53,16 +60,11 @@ export class TelemetryManager {
53
60
  try {
54
61
  const body = JSON.stringify(data);
55
62
 
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
- }
63
+ console.log('[Telemetry] Sending ping...', data);
62
64
 
63
- // Fallback to fetch
65
+ // Use fetch for reliable delivery during init
64
66
  if (typeof fetch !== 'undefined') {
65
- await fetch(this.endpoint, {
67
+ const response = await fetch(this.endpoint, {
66
68
  method: 'POST',
67
69
  mode: 'cors',
68
70
  headers: {
@@ -70,9 +72,22 @@ export class TelemetryManager {
70
72
  },
71
73
  body
72
74
  });
75
+
76
+ if (response.ok) {
77
+ console.log('[Telemetry] Ping sent successfully');
78
+ return;
79
+ } else {
80
+ console.warn(`[Telemetry] Ping failed with status: ${response.status}`);
81
+ }
82
+ }
83
+
84
+ // Fallback to sendBeacon if fetch fails or is unavailable
85
+ if (typeof navigator !== 'undefined' && navigator.sendBeacon) {
86
+ const blob = new Blob([body], { type: 'application/json' });
87
+ navigator.sendBeacon(this.endpoint, blob);
73
88
  }
74
89
  } catch (e) {
75
- // Quiet fail
90
+ console.error('[Telemetry] Error sending ping:', e);
76
91
  }
77
92
  }
78
93
 
@@ -0,0 +1 @@
1
+ export const VERSION = '1.4.431';