unified-video-framework 1.4.425 → 1.4.427

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.
Files changed (100) hide show
  1. package/package.json +1 -1
  2. package/packages/core/dist/VideoPlayerFactory.d.ts.map +1 -1
  3. package/packages/core/dist/VideoPlayerFactory.js +7 -0
  4. package/packages/core/dist/VideoPlayerFactory.js.map +1 -1
  5. package/packages/core/dist/index.d.ts +2 -0
  6. package/packages/core/dist/index.d.ts.map +1 -1
  7. package/packages/core/dist/index.js +1 -0
  8. package/packages/core/dist/index.js.map +1 -1
  9. package/packages/core/dist/telemetry/TelemetryManager.d.ts +20 -0
  10. package/packages/core/dist/telemetry/TelemetryManager.d.ts.map +1 -0
  11. package/packages/core/dist/telemetry/TelemetryManager.js +49 -0
  12. package/packages/core/dist/telemetry/TelemetryManager.js.map +1 -0
  13. package/packages/core/src/VideoPlayerFactory.ts +28 -18
  14. package/packages/core/src/index.ts +4 -0
  15. package/packages/core/src/telemetry/TelemetryManager.ts +72 -0
  16. package/packages/web/dist/WebPlayer.d.ts +0 -2
  17. package/packages/web/dist/WebPlayer.d.ts.map +1 -1
  18. package/packages/web/dist/WebPlayer.js +0 -50
  19. package/packages/web/dist/WebPlayer.js.map +1 -1
  20. package/packages/web/dist/react/WebPlayerView.d.ts +0 -1
  21. package/packages/web/dist/react/WebPlayerView.d.ts.map +1 -1
  22. package/packages/web/dist/react/WebPlayerView.js +0 -5
  23. package/packages/web/dist/react/WebPlayerView.js.map +1 -1
  24. package/packages/web/src/WebPlayer.ts +0 -65
  25. package/packages/web/src/react/WebPlayerView.tsx +0 -6
  26. package/scripts/fix-imports.js +8 -54
  27. package/packages/core/src/BasePlayer.d.ts +0 -61
  28. package/packages/core/src/BasePlayer.d.ts.map +0 -1
  29. package/packages/core/src/BasePlayer.js +0 -175
  30. package/packages/core/src/BasePlayer.js.map +0 -1
  31. package/packages/core/src/VideoPlayerFactory.d.ts +0 -8
  32. package/packages/core/src/VideoPlayerFactory.d.ts.map +0 -1
  33. package/packages/core/src/VideoPlayerFactory.js +0 -95
  34. package/packages/core/src/VideoPlayerFactory.js.map +0 -1
  35. package/packages/core/src/analytics/adapters/PlayerAnalyticsAdapter.d.ts +0 -18
  36. package/packages/core/src/analytics/adapters/PlayerAnalyticsAdapter.d.ts.map +0 -1
  37. package/packages/core/src/analytics/adapters/PlayerAnalyticsAdapter.js +0 -117
  38. package/packages/core/src/analytics/adapters/PlayerAnalyticsAdapter.js.map +0 -1
  39. package/packages/core/src/analytics/core/AnalyticsProvider.d.ts +0 -18
  40. package/packages/core/src/analytics/core/AnalyticsProvider.d.ts.map +0 -1
  41. package/packages/core/src/analytics/core/AnalyticsProvider.js +0 -99
  42. package/packages/core/src/analytics/core/AnalyticsProvider.js.map +0 -1
  43. package/packages/core/src/analytics/core/DynamicAnalyticsManager.d.ts +0 -20
  44. package/packages/core/src/analytics/core/DynamicAnalyticsManager.d.ts.map +0 -1
  45. package/packages/core/src/analytics/core/DynamicAnalyticsManager.js +0 -161
  46. package/packages/core/src/analytics/core/DynamicAnalyticsManager.js.map +0 -1
  47. package/packages/core/src/analytics/core/EventBatcher.d.ts +0 -32
  48. package/packages/core/src/analytics/core/EventBatcher.d.ts.map +0 -1
  49. package/packages/core/src/analytics/core/EventBatcher.js +0 -98
  50. package/packages/core/src/analytics/core/EventBatcher.js.map +0 -1
  51. package/packages/core/src/analytics/core/PlayerAnalytics.d.ts +0 -19
  52. package/packages/core/src/analytics/core/PlayerAnalytics.d.ts.map +0 -1
  53. package/packages/core/src/analytics/core/PlayerAnalytics.js +0 -80
  54. package/packages/core/src/analytics/core/PlayerAnalytics.js.map +0 -1
  55. package/packages/core/src/analytics/index.d.ts +0 -13
  56. package/packages/core/src/analytics/index.d.ts.map +0 -1
  57. package/packages/core/src/analytics/index.js +0 -13
  58. package/packages/core/src/analytics/index.js.map +0 -1
  59. package/packages/core/src/analytics/types/AnalyticsTypes.d.ts +0 -239
  60. package/packages/core/src/analytics/types/AnalyticsTypes.d.ts.map +0 -1
  61. package/packages/core/src/analytics/types/AnalyticsTypes.js +0 -8
  62. package/packages/core/src/analytics/types/AnalyticsTypes.js.map +0 -1
  63. package/packages/core/src/analytics/utils/DeviceDetection.d.ts +0 -27
  64. package/packages/core/src/analytics/utils/DeviceDetection.d.ts.map +0 -1
  65. package/packages/core/src/analytics/utils/DeviceDetection.js +0 -184
  66. package/packages/core/src/analytics/utils/DeviceDetection.js.map +0 -1
  67. package/packages/core/src/chapter-manager.d.ts +0 -39
  68. package/packages/core/src/chapter-manager.d.ts.map +0 -1
  69. package/packages/core/src/chapter-manager.js +0 -173
  70. package/packages/core/src/chapter-manager.js.map +0 -1
  71. package/packages/core/src/index.d.ts +0 -10
  72. package/packages/core/src/index.d.ts.map +0 -1
  73. package/packages/core/src/index.js +0 -8
  74. package/packages/core/src/index.js.map +0 -1
  75. package/packages/core/src/interfaces/IVideoPlayer.d.ts +0 -229
  76. package/packages/core/src/interfaces/IVideoPlayer.d.ts.map +0 -1
  77. package/packages/core/src/interfaces/IVideoPlayer.js +0 -2
  78. package/packages/core/src/interfaces/IVideoPlayer.js.map +0 -1
  79. package/packages/core/src/interfaces.d.ts +0 -455
  80. package/packages/core/src/interfaces.d.ts.map +0 -1
  81. package/packages/core/src/interfaces.js +0 -32
  82. package/packages/core/src/interfaces.js.map +0 -1
  83. package/packages/core/src/utils/EventEmitter.d.ts +0 -14
  84. package/packages/core/src/utils/EventEmitter.d.ts.map +0 -1
  85. package/packages/core/src/utils/EventEmitter.js +0 -55
  86. package/packages/core/src/utils/EventEmitter.js.map +0 -1
  87. package/packages/web/src/drm/DRMManager.ts +0 -224
  88. package/packages/web/src/drm/index.ts +0 -37
  89. package/packages/web/src/drm/providers/BunnyNetProvider.ts +0 -171
  90. package/packages/web/src/drm/providers/GenericProvider.ts +0 -151
  91. package/packages/web/src/drm/systems/BaseDRM.ts +0 -68
  92. package/packages/web/src/drm/systems/FairPlayDRM.ts +0 -317
  93. package/packages/web/src/drm/systems/PlayReadyDRM.ts +0 -156
  94. package/packages/web/src/drm/systems/WidevineDRM.ts +0 -133
  95. package/packages/web/src/drm/types/BunnyNetTypes.ts +0 -35
  96. package/packages/web/src/drm/types/DRMTypes.ts +0 -93
  97. package/packages/web/src/drm/utils/BrowserDetector.ts +0 -281
  98. package/packages/web/src/drm/utils/CertificateManager.ts +0 -86
  99. package/packages/web/src/drm/utils/DRMErrorHandler.ts +0 -84
  100. package/packages/web/src/drm/utils/LicenseRequestHandler.ts +0 -180
@@ -1,175 +0,0 @@
1
- import { EventEmitter } from './utils/EventEmitter';
2
- export class BasePlayer {
3
- constructor() {
4
- this.container = null;
5
- this.source = null;
6
- this.subtitles = [];
7
- this.currentSubtitleIndex = -1;
8
- this.config = this.getDefaultConfig();
9
- this.events = new EventEmitter();
10
- this.state = this.getDefaultState();
11
- }
12
- getDefaultConfig() {
13
- return {
14
- autoPlay: false,
15
- muted: false,
16
- volume: 1.0,
17
- controls: true,
18
- loop: false,
19
- preload: 'metadata',
20
- playsInline: true,
21
- enableAdaptiveBitrate: true,
22
- debug: false,
23
- freeDuration: 0
24
- };
25
- }
26
- getDefaultState() {
27
- return {
28
- isPlaying: false,
29
- isPaused: true,
30
- isBuffering: false,
31
- isEnded: false,
32
- isError: false,
33
- currentTime: 0,
34
- duration: 0,
35
- bufferedPercentage: 0,
36
- volume: 1.0,
37
- isMuted: false,
38
- playbackRate: 1.0,
39
- availableQualities: []
40
- };
41
- }
42
- async initialize(container, config) {
43
- if (typeof container === 'string') {
44
- const element = document.querySelector(container);
45
- if (!element) {
46
- throw new Error(`Container element not found: ${container}`);
47
- }
48
- this.container = element;
49
- }
50
- else {
51
- this.container = container;
52
- }
53
- this.config = { ...this.getDefaultConfig(), ...config };
54
- this.state.volume = this.config.volume || 1.0;
55
- this.state.isMuted = this.config.muted || false;
56
- await this.setupPlayer();
57
- }
58
- async play() {
59
- this.state.isPlaying = true;
60
- this.state.isPaused = false;
61
- this.emit('onPlay');
62
- }
63
- pause() {
64
- this.state.isPlaying = false;
65
- this.state.isPaused = true;
66
- this.emit('onPause');
67
- }
68
- stop() {
69
- this.pause();
70
- this.seek(0);
71
- this.state.isEnded = true;
72
- }
73
- setVolume(level) {
74
- const volume = Math.max(0, Math.min(1, level));
75
- this.state.volume = volume;
76
- this.emit('onVolumeChanged', volume);
77
- }
78
- mute() {
79
- this.state.isMuted = true;
80
- this.emit('onVolumeChanged', 0);
81
- }
82
- unmute() {
83
- this.state.isMuted = false;
84
- this.emit('onVolumeChanged', this.state.volume);
85
- }
86
- toggleMute() {
87
- if (this.state.isMuted) {
88
- this.unmute();
89
- }
90
- else {
91
- this.mute();
92
- }
93
- }
94
- setPlaybackRate(rate) {
95
- this.state.playbackRate = rate;
96
- }
97
- getPlaybackRate() {
98
- return this.state.playbackRate;
99
- }
100
- getCurrentTime() {
101
- return this.state.currentTime;
102
- }
103
- getDuration() {
104
- return this.state.duration;
105
- }
106
- getBufferedPercentage() {
107
- return this.state.bufferedPercentage;
108
- }
109
- getState() {
110
- return { ...this.state };
111
- }
112
- isPlaying() {
113
- return this.state.isPlaying;
114
- }
115
- isPaused() {
116
- return this.state.isPaused;
117
- }
118
- isEnded() {
119
- return this.state.isEnded;
120
- }
121
- async toggleFullscreen() {
122
- if (document.fullscreenElement) {
123
- await this.exitFullscreen();
124
- }
125
- else {
126
- await this.enterFullscreen();
127
- }
128
- }
129
- on(event, handler) {
130
- this.events.on(event, handler);
131
- }
132
- off(event, handler) {
133
- this.events.off(event, handler);
134
- }
135
- once(event, handler) {
136
- this.events.once(event, handler);
137
- }
138
- emit(event, ...args) {
139
- this.events.emit(event, ...args);
140
- }
141
- getSubtitles() {
142
- return this.subtitles;
143
- }
144
- setSubtitleTrack(index) {
145
- if (index >= 0 && index < this.subtitles.length) {
146
- this.currentSubtitleIndex = index;
147
- this.applySubtitleTrack(this.subtitles[index]);
148
- }
149
- }
150
- disableSubtitles() {
151
- this.currentSubtitleIndex = -1;
152
- this.removeSubtitles();
153
- }
154
- handleError(error) {
155
- this.state.isError = true;
156
- this.state.isPlaying = false;
157
- this.emit('onError', error);
158
- if (this.config.debug) {
159
- console.error('[VideoPlayer Error]', error);
160
- }
161
- }
162
- updateTime(time) {
163
- this.state.currentTime = time;
164
- this.emit('onTimeUpdate', time);
165
- }
166
- updateBuffered(percentage) {
167
- this.state.bufferedPercentage = percentage;
168
- this.emit('onProgress', percentage);
169
- }
170
- setBuffering(isBuffering) {
171
- this.state.isBuffering = isBuffering;
172
- this.emit('onBuffering', isBuffering);
173
- }
174
- }
175
- //# sourceMappingURL=BasePlayer.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"BasePlayer.js","sourceRoot":"","sources":["BasePlayer.ts"],"names":[],"mappings":"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"}
@@ -1,8 +0,0 @@
1
- import { IVideoPlayer, PlayerConfig } from './interfaces/IVideoPlayer';
2
- export type Platform = 'web' | 'ios' | 'android' | 'tizen' | 'webos' | 'roku' | 'androidtv' | 'appletv' | 'windows';
3
- export declare class VideoPlayerFactory {
4
- static create(platform: Platform, container: HTMLElement | string | any, config?: PlayerConfig): Promise<IVideoPlayer>;
5
- static detectPlatform(): Platform;
6
- static createForCurrentPlatform(container: HTMLElement | string | any, config?: PlayerConfig): Promise<IVideoPlayer>;
7
- }
8
- //# sourceMappingURL=VideoPlayerFactory.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"VideoPlayerFactory.d.ts","sourceRoot":"","sources":["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;IAqExB,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,95 +0,0 @@
1
- export class VideoPlayerFactory {
2
- static async create(platform, container, config) {
3
- switch (platform) {
4
- case 'web':
5
- try {
6
- const WebModule = await eval('import("@unified-video/web")');
7
- if (WebModule?.WebPlayer) {
8
- const player = new WebModule.WebPlayer();
9
- await player.initialize(container, config);
10
- return player;
11
- }
12
- }
13
- catch (e) {
14
- }
15
- break;
16
- case 'ios':
17
- case 'android':
18
- try {
19
- const RNModule = await eval('import("@unified-video/react-native")');
20
- if (RNModule?.ReactNativePlayer) {
21
- return RNModule.ReactNativePlayer;
22
- }
23
- }
24
- catch (e) {
25
- }
26
- break;
27
- case 'tizen':
28
- case 'webos':
29
- try {
30
- const EnactModule = await eval('import("@unified-video/enact")');
31
- if (EnactModule?.EnactPlayer) {
32
- const player = new EnactModule.EnactPlayer();
33
- await player.initialize(container, config);
34
- return player;
35
- }
36
- }
37
- catch (e) {
38
- }
39
- break;
40
- case 'roku':
41
- try {
42
- const RokuModule = await eval('import("@unified-video/roku")');
43
- if (RokuModule?.RokuPlayer) {
44
- const player = new RokuModule.RokuPlayer();
45
- await player.initialize(container, config);
46
- return player;
47
- }
48
- }
49
- catch (e) {
50
- }
51
- break;
52
- default:
53
- throw new Error(`Platform '${platform}' is not supported`);
54
- }
55
- throw new Error(`Failed to load player for platform '${platform}'`);
56
- }
57
- static detectPlatform() {
58
- if (typeof global !== 'undefined' && global.nativeCallSyncHook) {
59
- try {
60
- const RN = eval('require("react-native")');
61
- if (RN && RN.Platform) {
62
- return RN.Platform.OS;
63
- }
64
- }
65
- catch (e) {
66
- }
67
- }
68
- if (typeof window !== 'undefined') {
69
- const userAgent = window.navigator.userAgent.toLowerCase();
70
- if (userAgent.includes('tizen'))
71
- return 'tizen';
72
- if (userAgent.includes('webos'))
73
- return 'webos';
74
- if (userAgent.includes('roku'))
75
- return 'roku';
76
- if (userAgent.includes('android') && userAgent.includes('tv')) {
77
- return 'androidtv';
78
- }
79
- if (userAgent.includes('appletv'))
80
- return 'appletv';
81
- if (userAgent.includes('windows'))
82
- return 'windows';
83
- return 'web';
84
- }
85
- if (typeof process !== 'undefined' && process.versions && process.versions.node) {
86
- return 'web';
87
- }
88
- throw new Error('Unable to detect platform');
89
- }
90
- static async createForCurrentPlatform(container, config) {
91
- const platform = this.detectPlatform();
92
- return this.create(platform, container, config);
93
- }
94
- }
95
- //# sourceMappingURL=VideoPlayerFactory.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"VideoPlayerFactory.js","sourceRoot":"","sources":["VideoPlayerFactory.ts"],"names":[],"mappings":"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"}
@@ -1,18 +0,0 @@
1
- import { AnalyticsEventData, PlayerSessionInfo, BaseAnalyticsProvider, PlayerAnalyticsConfig } from '../types/AnalyticsTypes';
2
- export declare class PlayerAnalyticsAdapter implements BaseAnalyticsProvider {
3
- name: string;
4
- enabled: boolean;
5
- private config;
6
- private currentSessionId;
7
- private eventQueue;
8
- private flushTimer;
9
- constructor(name: string, config: PlayerAnalyticsConfig);
10
- initialize(): Promise<void>;
11
- startSession(sessionInfo: PlayerSessionInfo): Promise<string>;
12
- trackEvent(event: AnalyticsEventData): Promise<void>;
13
- endSession(): Promise<void>;
14
- flush(): Promise<void>;
15
- destroy(): Promise<void>;
16
- private scheduleFlush;
17
- }
18
- //# sourceMappingURL=PlayerAnalyticsAdapter.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"PlayerAnalyticsAdapter.d.ts","sourceRoot":"","sources":["PlayerAnalyticsAdapter.ts"],"names":[],"mappings":"AAMA,OAAO,EACL,kBAAkB,EAClB,iBAAiB,EACjB,qBAAqB,EACrB,qBAAqB,EACtB,MAAM,yBAAyB,CAAC;AAGjC,qBAAa,sBAAuB,YAAW,qBAAqB;IAC3D,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,OAAO,CAAC;IACxB,OAAO,CAAC,MAAM,CAAwB;IACtC,OAAO,CAAC,gBAAgB,CAAuB;IAC/C,OAAO,CAAC,UAAU,CAA4B;IAC9C,OAAO,CAAC,UAAU,CAAa;gBAEnB,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,qBAAqB;IAMjD,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IAI3B,YAAY,CAAC,WAAW,EAAE,iBAAiB,GAAG,OAAO,CAAC,MAAM,CAAC;IAqB7D,UAAU,CAAC,KAAK,EAAE,kBAAkB,GAAG,OAAO,CAAC,IAAI,CAAC;IAgBpD,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IAiB3B,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IA4CtB,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;IAgB9B,OAAO,CAAC,aAAa;CAStB"}
@@ -1,117 +0,0 @@
1
- import { deviceDetection } from '../utils/DeviceDetection';
2
- export class PlayerAnalyticsAdapter {
3
- constructor(name, config) {
4
- this.currentSessionId = null;
5
- this.eventQueue = [];
6
- this.flushTimer = null;
7
- this.name = name;
8
- this.enabled = true;
9
- this.config = config;
10
- }
11
- async initialize() {
12
- }
13
- async startSession(sessionInfo) {
14
- const sessionId = `sess_${Date.now()}_${Math.random().toString(36).substr(2, 9)}`;
15
- this.currentSessionId = sessionId;
16
- const event = {
17
- eventType: 'session_start',
18
- timestamp: Date.now(),
19
- video: sessionInfo.initialVideo,
20
- device: deviceDetection.getDeviceInfo(),
21
- metadata: {
22
- sessionId,
23
- playerId: this.config.playerId,
24
- userId: sessionInfo.userId,
25
- customData: sessionInfo.customData
26
- }
27
- };
28
- await this.trackEvent(event);
29
- return sessionId;
30
- }
31
- async trackEvent(event) {
32
- if (!this.enabled) {
33
- return;
34
- }
35
- this.eventQueue.push(event);
36
- if (this.eventQueue.length >= (this.config.batchSize || 10)) {
37
- await this.flush();
38
- }
39
- else {
40
- this.scheduleFlush();
41
- }
42
- }
43
- async endSession() {
44
- if (this.currentSessionId) {
45
- const event = {
46
- eventType: 'session_end',
47
- timestamp: Date.now(),
48
- metadata: {
49
- sessionId: this.currentSessionId,
50
- playerId: this.config.playerId
51
- }
52
- };
53
- await this.trackEvent(event);
54
- await this.flush();
55
- this.currentSessionId = null;
56
- }
57
- }
58
- async flush() {
59
- if (this.eventQueue.length === 0) {
60
- return;
61
- }
62
- const events = [...this.eventQueue];
63
- this.eventQueue = [];
64
- if (this.flushTimer) {
65
- clearTimeout(this.flushTimer);
66
- this.flushTimer = null;
67
- }
68
- try {
69
- const payload = {
70
- session: {
71
- sessionId: this.currentSessionId || 'unknown',
72
- playerId: this.config.playerId,
73
- timestamp: Date.now(),
74
- customData: {}
75
- },
76
- events
77
- };
78
- const response = await fetch(`${this.config.baseUrl}/analytics/player/ingest`, {
79
- method: 'POST',
80
- headers: {
81
- 'Content-Type': 'application/json',
82
- 'Authorization': `Bearer ${this.config.apiKey}`,
83
- ...(this.config.tenantId && { 'X-Tenant-ID': this.config.tenantId })
84
- },
85
- body: JSON.stringify(payload)
86
- });
87
- if (!response.ok) {
88
- throw new Error(`Analytics API error: ${response.status}`);
89
- }
90
- }
91
- catch (error) {
92
- console.error('Failed to send analytics events:', error);
93
- this.eventQueue = [...events, ...this.eventQueue];
94
- }
95
- }
96
- async destroy() {
97
- if (this.currentSessionId) {
98
- await this.endSession();
99
- }
100
- if (this.flushTimer) {
101
- clearTimeout(this.flushTimer);
102
- this.flushTimer = null;
103
- }
104
- if (this.eventQueue.length > 0) {
105
- await this.flush();
106
- }
107
- }
108
- scheduleFlush() {
109
- if (this.flushTimer) {
110
- return;
111
- }
112
- this.flushTimer = setTimeout(() => {
113
- this.flush().catch(console.error);
114
- }, (this.config.flushInterval || 30) * 1000);
115
- }
116
- }
117
- //# sourceMappingURL=PlayerAnalyticsAdapter.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"PlayerAnalyticsAdapter.js","sourceRoot":"","sources":["PlayerAnalyticsAdapter.ts"],"names":[],"mappings":"AAYA,OAAO,EAAE,eAAe,EAAE,MAAM,0BAA0B,CAAC;AAE3D,MAAM,OAAO,sBAAsB;IAQjC,YAAY,IAAY,EAAE,MAA6B;QAJ/C,qBAAgB,GAAkB,IAAI,CAAC;QACvC,eAAU,GAAyB,EAAE,CAAC;QACtC,eAAU,GAAQ,IAAI,CAAC;QAG7B,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QACjB,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;QACpB,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;IACvB,CAAC;IAED,KAAK,CAAC,UAAU;IAEhB,CAAC;IAED,KAAK,CAAC,YAAY,CAAC,WAA8B;QAC/C,MAAM,SAAS,GAAG,QAAQ,IAAI,CAAC,GAAG,EAAE,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC;QAClF,IAAI,CAAC,gBAAgB,GAAG,SAAS,CAAC;QAElC,MAAM,KAAK,GAAuB;YAChC,SAAS,EAAE,eAAe;YAC1B,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE;YACrB,KAAK,EAAE,WAAW,CAAC,YAAY;YAC/B,MAAM,EAAE,eAAe,CAAC,aAAa,EAAE;YACvC,QAAQ,EAAE;gBACR,SAAS;gBACT,QAAQ,EAAE,IAAI,CAAC,MAAM,CAAC,QAAQ;gBAC9B,MAAM,EAAE,WAAW,CAAC,MAAM;gBAC1B,UAAU,EAAE,WAAW,CAAC,UAAU;aACnC;SACF,CAAC;QAEF,MAAM,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;QAC7B,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,KAAK,CAAC,UAAU,CAAC,KAAyB;QACxC,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE;YACjB,OAAO;SACR;QAED,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAG5B,IAAI,IAAI,CAAC,UAAU,CAAC,MAAM,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,SAAS,IAAI,EAAE,CAAC,EAAE;YAC3D,MAAM,IAAI,CAAC,KAAK,EAAE,CAAC;SACpB;aAAM;YAEL,IAAI,CAAC,aAAa,EAAE,CAAC;SACtB;IACH,CAAC;IAED,KAAK,CAAC,UAAU;QACd,IAAI,IAAI,CAAC,gBAAgB,EAAE;YACzB,MAAM,KAAK,GAAuB;gBAChC,SAAS,EAAE,aAAa;gBACxB,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE;gBACrB,QAAQ,EAAE;oBACR,SAAS,EAAE,IAAI,CAAC,gBAAgB;oBAChC,QAAQ,EAAE,IAAI,CAAC,MAAM,CAAC,QAAQ;iBAC/B;aACF,CAAC;YAEF,MAAM,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;YAC7B,MAAM,IAAI,CAAC,KAAK,EAAE,CAAC;YACnB,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC;SAC9B;IACH,CAAC;IAED,KAAK,CAAC,KAAK;QACT,IAAI,IAAI,CAAC,UAAU,CAAC,MAAM,KAAK,CAAC,EAAE;YAChC,OAAO;SACR;QAED,MAAM,MAAM,GAAG,CAAC,GAAG,IAAI,CAAC,UAAU,CAAC,CAAC;QACpC,IAAI,CAAC,UAAU,GAAG,EAAE,CAAC;QAErB,IAAI,IAAI,CAAC,UAAU,EAAE;YACnB,YAAY,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;YAC9B,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;SACxB;QAED,IAAI;YACF,MAAM,OAAO,GAAG;gBACd,OAAO,EAAE;oBACP,SAAS,EAAE,IAAI,CAAC,gBAAgB,IAAI,SAAS;oBAC7C,QAAQ,EAAE,IAAI,CAAC,MAAM,CAAC,QAAQ;oBAC9B,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE;oBACrB,UAAU,EAAE,EAAE;iBACf;gBACD,MAAM;aACP,CAAC;YAEF,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,OAAO,0BAA0B,EAAE;gBAC7E,MAAM,EAAE,MAAM;gBACd,OAAO,EAAE;oBACP,cAAc,EAAE,kBAAkB;oBAClC,eAAe,EAAE,UAAU,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE;oBAC/C,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,IAAI,EAAE,aAAa,EAAE,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC;iBACrE;gBACD,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC;aAC9B,CAAC,CAAC;YAEH,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE;gBAChB,MAAM,IAAI,KAAK,CAAC,wBAAwB,QAAQ,CAAC,MAAM,EAAE,CAAC,CAAC;aAC5D;SACF;QAAC,OAAO,KAAK,EAAE;YACd,OAAO,CAAC,KAAK,CAAC,kCAAkC,EAAE,KAAK,CAAC,CAAC;YAEzD,IAAI,CAAC,UAAU,GAAG,CAAC,GAAG,MAAM,EAAE,GAAG,IAAI,CAAC,UAAU,CAAC,CAAC;SACnD;IACH,CAAC;IAED,KAAK,CAAC,OAAO;QACX,IAAI,IAAI,CAAC,gBAAgB,EAAE;YACzB,MAAM,IAAI,CAAC,UAAU,EAAE,CAAC;SACzB;QAED,IAAI,IAAI,CAAC,UAAU,EAAE;YACnB,YAAY,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;YAC9B,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;SACxB;QAGD,IAAI,IAAI,CAAC,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE;YAC9B,MAAM,IAAI,CAAC,KAAK,EAAE,CAAC;SACpB;IACH,CAAC;IAEO,aAAa;QACnB,IAAI,IAAI,CAAC,UAAU,EAAE;YACnB,OAAO;SACR;QAED,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC,GAAG,EAAE;YAChC,IAAI,CAAC,KAAK,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;QACpC,CAAC,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,aAAa,IAAI,EAAE,CAAC,GAAG,IAAI,CAAC,CAAC;IAC/C,CAAC;CACF"}
@@ -1,18 +0,0 @@
1
- import { BaseAnalyticsProvider, AnalyticsEventData, PlayerSessionInfo, AnalyticsProviderType, DynamicAnalyticsConfig, PlayerAnalyticsConfig } from '../types/AnalyticsTypes';
2
- export declare abstract class AnalyticsProvider implements BaseAnalyticsProvider {
3
- name: string;
4
- enabled: boolean;
5
- constructor(name: string, enabled?: boolean);
6
- abstract initialize(): Promise<void>;
7
- abstract trackEvent(event: AnalyticsEventData): Promise<void>;
8
- abstract startSession(sessionInfo: PlayerSessionInfo): Promise<string>;
9
- abstract endSession(): Promise<void>;
10
- abstract flush(): Promise<void>;
11
- abstract destroy(): Promise<void>;
12
- }
13
- export declare function createAnalyticsProvider(type: AnalyticsProviderType, name: string, config: any): BaseAnalyticsProvider;
14
- export declare function getDefaultAnalyticsConfig(): DynamicAnalyticsConfig;
15
- export declare function createPlayerAnalyticsProviderConfig(baseUrl: string, apiKey: string, playerId: string, options?: Partial<PlayerAnalyticsConfig>): PlayerAnalyticsConfig;
16
- export declare function validateAnalyticsConfig(config: DynamicAnalyticsConfig): void;
17
- export declare function mergeAnalyticsConfigs(defaultConfig: DynamicAnalyticsConfig, userConfig: Partial<DynamicAnalyticsConfig>): DynamicAnalyticsConfig;
18
- //# sourceMappingURL=AnalyticsProvider.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"AnalyticsProvider.d.ts","sourceRoot":"","sources":["AnalyticsProvider.ts"],"names":[],"mappings":"AAIA,OAAO,EACL,qBAAqB,EACrB,kBAAkB,EAClB,iBAAiB,EACjB,qBAAqB,EACrB,sBAAsB,EACtB,qBAAqB,EACtB,MAAM,yBAAyB,CAAC;AAMjC,8BAAsB,iBAAkB,YAAW,qBAAqB;IAC/D,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,OAAO,CAAC;gBAEZ,IAAI,EAAE,MAAM,EAAE,OAAO,UAAO;IAKxC,QAAQ,CAAC,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IACpC,QAAQ,CAAC,UAAU,CAAC,KAAK,EAAE,kBAAkB,GAAG,OAAO,CAAC,IAAI,CAAC;IAC7D,QAAQ,CAAC,YAAY,CAAC,WAAW,EAAE,iBAAiB,GAAG,OAAO,CAAC,MAAM,CAAC;IACtE,QAAQ,CAAC,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IACpC,QAAQ,CAAC,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAC/B,QAAQ,CAAC,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;CAClC;AAKD,wBAAgB,uBAAuB,CACrC,IAAI,EAAE,qBAAqB,EAC3B,IAAI,EAAE,MAAM,EACZ,MAAM,EAAE,GAAG,GACV,qBAAqB,CAgBvB;AAKD,wBAAgB,yBAAyB,IAAI,sBAAsB,CAclE;AAKD,wBAAgB,mCAAmC,CACjD,OAAO,EAAE,MAAM,EACf,MAAM,EAAE,MAAM,EACd,QAAQ,EAAE,MAAM,EAChB,OAAO,GAAE,OAAO,CAAC,qBAAqB,CAAM,GAC3C,qBAAqB,CAavB;AAKD,wBAAgB,uBAAuB,CAAC,MAAM,EAAE,sBAAsB,GAAG,IAAI,CA8B5E;AAsBD,wBAAgB,qBAAqB,CACnC,aAAa,EAAE,sBAAsB,EACrC,UAAU,EAAE,OAAO,CAAC,sBAAsB,CAAC,GAC1C,sBAAsB,CASxB"}
@@ -1,99 +0,0 @@
1
- import { AnalyticsProviderType } from '../types/AnalyticsTypes';
2
- import { PlayerAnalyticsAdapter } from '../adapters/PlayerAnalyticsAdapter';
3
- export class AnalyticsProvider {
4
- constructor(name, enabled = true) {
5
- this.name = name;
6
- this.enabled = enabled;
7
- }
8
- }
9
- export function createAnalyticsProvider(type, name, config) {
10
- switch (type) {
11
- case AnalyticsProviderType.PLAYER_ANALYTICS:
12
- return new PlayerAnalyticsAdapter(name, config);
13
- case AnalyticsProviderType.CUSTOM:
14
- if (config.factory) {
15
- return config.factory(config);
16
- }
17
- throw new Error(`Custom provider "${name}" requires a factory function`);
18
- case AnalyticsProviderType.GOOGLE_ANALYTICS:
19
- case AnalyticsProviderType.ADOBE_ANALYTICS:
20
- default:
21
- throw new Error(`Analytics provider type "${type}" is not supported yet`);
22
- }
23
- }
24
- export function getDefaultAnalyticsConfig() {
25
- return {
26
- enabled: true,
27
- providers: [],
28
- globalSettings: {
29
- enableConsoleLogging: false,
30
- enableErrorReporting: true,
31
- sessionTimeout: 60,
32
- defaultBatchSize: 10,
33
- defaultFlushInterval: 30,
34
- retryAttempts: 3,
35
- retryDelay: 1000
36
- }
37
- };
38
- }
39
- export function createPlayerAnalyticsProviderConfig(baseUrl, apiKey, playerId, options = {}) {
40
- return {
41
- baseUrl,
42
- apiKey,
43
- playerId,
44
- tenantId: options.tenantId,
45
- heartbeatInterval: options.heartbeatInterval || 10,
46
- batchSize: options.batchSize || 10,
47
- flushInterval: options.flushInterval || 30,
48
- enableOfflineStorage: options.enableOfflineStorage !== false,
49
- maxRetries: options.maxRetries || 3,
50
- retryDelay: options.retryDelay || 1000
51
- };
52
- }
53
- export function validateAnalyticsConfig(config) {
54
- if (!config) {
55
- throw new Error('Analytics configuration is required');
56
- }
57
- if (typeof config.enabled !== 'boolean') {
58
- throw new Error('Analytics configuration must specify enabled state');
59
- }
60
- if (!Array.isArray(config.providers)) {
61
- throw new Error('Analytics configuration must include providers array');
62
- }
63
- config.providers.forEach((provider, index) => {
64
- if (!provider.name) {
65
- throw new Error(`Provider at index ${index} must have a name`);
66
- }
67
- if (!provider.type) {
68
- throw new Error(`Provider "${provider.name}" must have a type`);
69
- }
70
- if (typeof provider.enabled !== 'boolean') {
71
- throw new Error(`Provider "${provider.name}" must specify enabled state`);
72
- }
73
- if (provider.type === AnalyticsProviderType.PLAYER_ANALYTICS) {
74
- validatePlayerAnalyticsConfig(provider.config);
75
- }
76
- });
77
- }
78
- function validatePlayerAnalyticsConfig(config) {
79
- if (!config.baseUrl) {
80
- throw new Error('Player Analytics provider requires baseUrl');
81
- }
82
- if (!config.apiKey) {
83
- throw new Error('Player Analytics provider requires apiKey');
84
- }
85
- if (!config.playerId) {
86
- throw new Error('Player Analytics provider requires playerId');
87
- }
88
- }
89
- export function mergeAnalyticsConfigs(defaultConfig, userConfig) {
90
- return {
91
- enabled: userConfig.enabled !== undefined ? userConfig.enabled : defaultConfig.enabled,
92
- providers: userConfig.providers || defaultConfig.providers,
93
- globalSettings: {
94
- ...defaultConfig.globalSettings,
95
- ...userConfig.globalSettings
96
- }
97
- };
98
- }
99
- //# sourceMappingURL=AnalyticsProvider.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"AnalyticsProvider.js","sourceRoot":"","sources":["AnalyticsProvider.ts"],"names":[],"mappings":"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"}
@@ -1,20 +0,0 @@
1
- import { DynamicAnalyticsConfig, AnalyticsProviderType, VideoInfo, PlayerState } from '../types/AnalyticsTypes';
2
- export declare class DynamicAnalyticsManager {
3
- private config;
4
- private providers;
5
- private currentSessionId;
6
- private enabled;
7
- constructor(config: DynamicAnalyticsConfig);
8
- private initializeProviders;
9
- startSession(videoInfo: VideoInfo, userInfo?: any): string;
10
- endSession(): Promise<void>;
11
- trackEvent(eventType: string, playerState?: PlayerState, customData?: any): void;
12
- trackCustomEvent(eventType: string, data: any): void;
13
- addProvider(name: string, type: AnalyticsProviderType, config: any): void;
14
- removeProvider(name: string): Promise<void>;
15
- toggleProvider(name: string, enabled: boolean): void;
16
- initialize(): Promise<void>;
17
- isEnabled(): boolean;
18
- destroy(): Promise<void>;
19
- }
20
- //# sourceMappingURL=DynamicAnalyticsManager.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"DynamicAnalyticsManager.d.ts","sourceRoot":"","sources":["DynamicAnalyticsManager.ts"],"names":[],"mappings":"AAKA,OAAO,EACL,sBAAsB,EACtB,qBAAqB,EAGrB,SAAS,EACT,WAAW,EAEZ,MAAM,yBAAyB,CAAC;AAGjC,qBAAa,uBAAuB;IAClC,OAAO,CAAC,MAAM,CAAyB;IACvC,OAAO,CAAC,SAAS,CAAiD;IAClE,OAAO,CAAC,gBAAgB,CAAuB;IAC/C,OAAO,CAAC,OAAO,CAAU;gBAEb,MAAM,EAAE,sBAAsB;YAM5B,mBAAmB;IAmBjC,YAAY,CAAC,SAAS,EAAE,SAAS,EAAE,QAAQ,GAAE,GAAQ,GAAG,MAAM;IA+BxD,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IAmBjC,UAAU,CAAC,SAAS,EAAE,MAAM,EAAE,WAAW,CAAC,EAAE,WAAW,EAAE,UAAU,CAAC,EAAE,GAAG,GAAG,IAAI;IAwBhF,gBAAgB,CAAC,SAAS,EAAE,MAAM,EAAE,IAAI,EAAE,GAAG,GAAG,IAAI;IAsBpD,WAAW,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,qBAAqB,EAAE,MAAM,EAAE,GAAG,GAAG,IAAI;IAWnE,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAYjD,cAAc,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,GAAG,IAAI;IAO9C,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IAKjC,SAAS,IAAI,OAAO;IAId,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;CAgB/B"}