bitmovin-analytics 2.21.2 → 2.24.1

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 (53) hide show
  1. package/bitmovinanalytics.min.js +3 -3
  2. package/bitmovinanalytics.min.js.map +1 -1
  3. package/js/adapters/Adapter.d.ts +2 -0
  4. package/js/adapters/Bitmovin7Adapter.d.ts +0 -2
  5. package/js/adapters/internal/Bitmovin7InternalAdapter.d.ts +5 -1
  6. package/js/adapters/internal/Bitmovin8HttpRequestTrackingAdapter.d.ts +12 -0
  7. package/js/adapters/internal/Bitmovin8InternalAdapter.d.ts +6 -1
  8. package/js/adapters/internal/CAFv3InternalAdapter.d.ts +7 -1
  9. package/js/adapters/internal/DashjsInternalAdapter.d.ts +5 -1
  10. package/js/adapters/internal/HTML5InternalAdapter.d.ts +5 -1
  11. package/js/adapters/internal/HlsInternalAdapter.d.ts +5 -1
  12. package/js/adapters/internal/InternalAdapter.d.ts +5 -1
  13. package/js/adapters/internal/InternalAdapterAPI.d.ts +6 -1
  14. package/js/adapters/internal/ShakaInternalAdapter.d.ts +5 -1
  15. package/js/adapters/internal/VideojsInternalAdapter.d.ts +5 -1
  16. package/js/analyticsStateMachines/AnalyticsStateMachine.d.ts +5 -2
  17. package/js/analyticsStateMachines/Bitmovin7AnalyticsStateMachine.d.ts +3 -1
  18. package/js/analyticsStateMachines/Bitmovin8AnalyticsStateMachine.d.ts +3 -1
  19. package/js/analyticsStateMachines/HTML5AnalyticsStateMachine.d.ts +3 -1
  20. package/js/analyticsStateMachines/VideoJsAnalyticsStateMachine.d.ts +3 -1
  21. package/js/core/Analytics.d.ts +14 -1
  22. package/js/core/BackendFactory.d.ts +2 -1
  23. package/js/core/LicenseCheckingBackend.d.ts +4 -1
  24. package/js/enums/ErrorCode.d.ts +9 -6
  25. package/js/enums/Event.d.ts +37 -1
  26. package/js/enums/VideoStartFailedReason.d.ts +9 -5
  27. package/js/features/Feature.d.ts +14 -0
  28. package/js/features/FeatureConfig.d.ts +3 -0
  29. package/js/features/FeatureManager.d.ts +9 -0
  30. package/js/features/errordetails/ErrorData.d.ts +5 -0
  31. package/js/features/errordetails/ErrorDetail.d.ts +18 -0
  32. package/js/features/errordetails/ErrorDetailBackend.d.ts +24 -0
  33. package/js/features/errordetails/ErrorDetailTracking.d.ts +28 -0
  34. package/js/features/errordetails/ErrorDetailTrackingConfig.d.ts +4 -0
  35. package/js/features/errordetails/OnErrorDetailEventObject.d.ts +6 -0
  36. package/js/features/httprequesttracking/HttpRequest.d.ts +24 -0
  37. package/js/features/httprequesttracking/HttpRequestTracking.d.ts +17 -0
  38. package/js/features/httprequesttracking/HttpRequestType.d.ts +24 -0
  39. package/js/features/httprequesttracking/OnDownloadFinishedEventObject.d.ts +4 -0
  40. package/js/types/AdAnalyticsSample.d.ts +21 -2
  41. package/js/types/AuthenticationCallback.d.ts +4 -0
  42. package/js/types/CustomDataValues.d.ts +31 -0
  43. package/js/types/EventData.d.ts +23 -8
  44. package/js/types/FeatureConfigContainer.d.ts +4 -0
  45. package/js/types/LicensingRequest.d.ts +2 -0
  46. package/js/types/NoExtraProperties.d.ts +5 -0
  47. package/js/types/Sample.d.ts +2 -9
  48. package/js/types/StateMachineCallbacks.d.ts +2 -0
  49. package/js/utils/CodecHelper.d.ts +1 -1
  50. package/js/utils/Queue.d.ts +9 -0
  51. package/js/utils/Utils.d.ts +2 -0
  52. package/package.json +1 -1
  53. package/js/types/ErrorEventObject.d.ts +0 -7
@@ -0,0 +1,28 @@
1
+ import { Subscribable } from '../../core/EventDispatcher';
2
+ import { CollectorConfig } from '../../types/AnalyticsConfig';
3
+ import { FeatureConfigContainer } from '../../types/FeatureConfigContainer';
4
+ import { Feature } from '../Feature';
5
+ import { HttpRequestTracking } from '../httprequesttracking/HttpRequestTracking';
6
+ import { ErrorDetailBackend } from './ErrorDetailBackend';
7
+ import { ErrorDetailTrackingConfig } from './ErrorDetailTrackingConfig';
8
+ import { OnErrorDetailEventObject } from './OnErrorDetailEventObject';
9
+ export interface ErrorDetailTrackingSettingsProvider {
10
+ readonly licenseKey: string;
11
+ readonly domain: string;
12
+ readonly impressionId: string;
13
+ readonly collectorConfig?: CollectorConfig;
14
+ }
15
+ export declare class ErrorDetailTracking extends Feature<FeatureConfigContainer, ErrorDetailTrackingConfig> {
16
+ private settingsProvider;
17
+ private backend;
18
+ private subscribables;
19
+ private httpRequestTracking;
20
+ private errorIndex;
21
+ constructor(settingsProvider: ErrorDetailTrackingSettingsProvider, backend: ErrorDetailBackend, subscribables: Array<Subscribable<OnErrorDetailEventObject>>, httpRequestTracking: HttpRequestTracking | undefined);
22
+ reset(): void;
23
+ enabled(): void;
24
+ disabled(): void;
25
+ configured(authenticated: boolean, config?: ErrorDetailTrackingConfig): void;
26
+ extractConfig(configContainer: FeatureConfigContainer): ErrorDetailTrackingConfig | undefined;
27
+ private onErrorHandler;
28
+ }
@@ -0,0 +1,4 @@
1
+ import { FeatureConfig } from '../FeatureConfig';
2
+ export interface ErrorDetailTrackingConfig extends FeatureConfig {
3
+ numberOfHttpRequests: number | undefined;
4
+ }
@@ -0,0 +1,6 @@
1
+ import { ErrorData } from './ErrorData';
2
+ export interface OnErrorDetailEventObject {
3
+ code: number | undefined;
4
+ message: string | undefined;
5
+ errorData?: ErrorData | undefined;
6
+ }
@@ -0,0 +1,24 @@
1
+ import { HttpRequestType } from './HttpRequestType';
2
+ export interface HttpRequest {
3
+ /**
4
+ * Epoch timestamp in milliseconds
5
+ */
6
+ timestamp: number;
7
+ type: HttpRequestType;
8
+ url?: string | undefined;
9
+ lastRedirectLocation?: string | undefined;
10
+ httpStatus: number;
11
+ /**
12
+ * Total time elapsed in milliseconds since the request was opened (including TTFB).
13
+ */
14
+ downloadTime: number;
15
+ /**
16
+ * The time-to-first-byte for this request in milliseconds.
17
+ */
18
+ timeToFirstByte?: number | undefined;
19
+ /**
20
+ * The size of the downloaded data, in bytes.
21
+ */
22
+ size?: number | undefined;
23
+ success: boolean;
24
+ }
@@ -0,0 +1,17 @@
1
+ import { Subscribable } from '../../core/EventDispatcher';
2
+ import { HttpRequest } from './HttpRequest';
3
+ import { OnDownloadFinishedEventObject } from './OnDownloadFinishedEventObject';
4
+ export declare class HttpRequestTracking {
5
+ private subscribables;
6
+ private static DEFAULT_MAX_REQUESTS;
7
+ private _maxRequests;
8
+ private _httpRequestQueue;
9
+ get maxRequests(): number;
10
+ get httpRequests(): ReadonlyArray<HttpRequest>;
11
+ constructor(subscribables: Array<Subscribable<OnDownloadFinishedEventObject>>);
12
+ configure(maxRequests: number): void;
13
+ disable(): void;
14
+ reset(): void;
15
+ private onDownloadFinishedHandler;
16
+ private addRequest;
17
+ }
@@ -0,0 +1,24 @@
1
+ export declare enum HttpRequestType {
2
+ DRM_LICENSE_WIDEVINE = "DRM_LICENSE_WIDEVINE",
3
+ DRM_OTHER = "DRM_OTHER",
4
+ MEDIA_THUMBNAILS = "MEDIA_THUMBNAILS",
5
+ MEDIA_VIDEO = "MEDIA_VIDEO",
6
+ MEDIA_AUDIO = "MEDIA_AUDIO",
7
+ MEDIA_PROGRESSIVE = "MEDIA_PROGRESSIVE",
8
+ MEDIA_SUBTITLES = "MEDIA_SUBTITLES",
9
+ MANIFEST_DASH = "MANIFEST_DASH",
10
+ MANIFEST_HLS = "MANIFEST_HLS",
11
+ MANIFEST_HLS_MASTER = "MANIFEST_HLS_MASTER",
12
+ MANIFEST_HLS_VARIANT = "DRM_LICENSMANIFEST_HLS_VARIANTE_WIDEVINE",
13
+ MANIFEST_SMOOTH = "MANIFEST_SMOOTH",
14
+ MANIFEST = "MANIFEST",
15
+ KEY_HLS_AES = "KEY_HLS_AES",
16
+ UNKNOWN = "UNKNOWN",
17
+ TIME_SYNC = "TIME_SYNC",
18
+ DRM_CERTIFICATE_FAIRPLAY = "DRM_CERTIFICATE_FAIRPLAY",
19
+ DRM_LICENSE_CLEARKEY = "DRM_LICENSE_CLEARKEY",
20
+ DRM_LICENSE_PRIMETIME = "DRM_LICENSE_PRIMETIME",
21
+ DRM_LICENSE_FAIRPLAY = "DRM_LICENSE_FAIRPLAY",
22
+ DRM_LICENSE_PLAYREADY = "DRM_LICENSE_PLAYREADY",
23
+ MANIFEST_ADS = "MANIFEST_ADS"
24
+ }
@@ -0,0 +1,4 @@
1
+ import { HttpRequest } from './HttpRequest';
2
+ export interface OnDownloadFinishedEventObject {
3
+ httpRequest: HttpRequest;
4
+ }
@@ -1,5 +1,6 @@
1
+ import { CustomDataValues } from './CustomDataValues';
1
2
  import { Sample } from './Sample';
2
- export declare class AdAnalyticsSample {
3
+ export declare class AdAnalyticsSample implements CustomDataValues {
3
4
  adModule?: string;
4
5
  adModuleVersion?: string;
5
6
  videoImpressionId?: string;
@@ -13,9 +14,27 @@ export declare class AdAnalyticsSample {
13
14
  customData5?: string;
14
15
  customData6?: string;
15
16
  customData7?: string;
17
+ customData8?: string;
18
+ customData9?: string;
19
+ customData10?: string;
20
+ customData11?: string;
21
+ customData12?: string;
22
+ customData13?: string;
23
+ customData14?: string;
24
+ customData15?: string;
25
+ customData16?: string;
26
+ customData17?: string;
27
+ customData18?: string;
28
+ customData19?: string;
29
+ customData20?: string;
30
+ customData21?: string;
31
+ customData22?: string;
32
+ customData23?: string;
33
+ customData24?: string;
34
+ customData25?: string;
16
35
  customUserId?: string;
17
- domain?: string;
18
36
  experimentName?: string;
37
+ domain?: string;
19
38
  key?: string;
20
39
  path?: string;
21
40
  player?: string;
@@ -0,0 +1,4 @@
1
+ import { FeatureConfigContainer } from './FeatureConfigContainer';
2
+ export interface AuthenticationCallback {
3
+ authenticationCompleted(success: boolean, featureConfigs: FeatureConfigContainer | undefined): void;
4
+ }
@@ -6,5 +6,36 @@ export interface CustomDataValues {
6
6
  customData5?: string;
7
7
  customData6?: string;
8
8
  customData7?: string;
9
+ customData8?: string;
10
+ customData9?: string;
11
+ customData10?: string;
12
+ customData11?: string;
13
+ customData12?: string;
14
+ customData13?: string;
15
+ customData14?: string;
16
+ customData15?: string;
17
+ customData16?: string;
18
+ customData17?: string;
19
+ customData18?: string;
20
+ customData19?: string;
21
+ customData20?: string;
22
+ customData21?: string;
23
+ customData22?: string;
24
+ customData23?: string;
25
+ customData24?: string;
26
+ customData25?: string;
27
+ customData26?: string;
28
+ customData27?: string;
29
+ customData28?: string;
30
+ customData29?: string;
31
+ customData30?: string;
9
32
  experimentName?: string;
10
33
  }
34
+ /**
35
+ * Lists all keys of the {@see CustomDataValues} interface.
36
+ */
37
+ export declare const customDataValuesKeys: Array<keyof CustomDataValues>;
38
+ /**
39
+ * The number of CustomDataXX fields in {@see CustomDataValues}.
40
+ */
41
+ export declare const customDataFieldCount: number;
@@ -1,13 +1,28 @@
1
1
  import { VideoStartFailedReason } from '../enums/VideoStartFailedReason';
2
- import ErrorEventObject from './ErrorEventObject';
3
- export interface ErrorEvent {
4
- code: number;
5
- message: string;
6
- data: unknown;
2
+ import { ErrorData } from '../features/errordetails/ErrorData';
3
+ import { AnalyticsConfig } from './AnalyticsConfig';
4
+ export interface AnalyticsEventBase {
7
5
  currentTime?: number;
8
6
  }
9
- export interface VideoStartFailedEvent {
10
- timestamp: number;
7
+ export interface SourceChangeEvent extends AnalyticsEventBase {
8
+ config: AnalyticsConfig;
9
+ }
10
+ export interface ErrorEvent extends AnalyticsEventBase {
11
+ code: number | undefined;
12
+ message: string | undefined;
13
+ legacyData?: any;
14
+ data: ErrorData;
15
+ }
16
+ export interface AudioChangeEvent extends AnalyticsEventBase {
17
+ bitrate?: number;
18
+ codec?: string;
19
+ }
20
+ export interface VideoChangeEvent extends AnalyticsEventBase {
21
+ bitrate?: number;
22
+ height?: number;
23
+ width?: number;
24
+ codec?: string;
25
+ }
26
+ export interface VideoStartFailedEvent extends AnalyticsEventBase {
11
27
  reason: VideoStartFailedReason;
12
- errorData?: ErrorEventObject;
13
28
  }
@@ -0,0 +1,4 @@
1
+ import { ErrorDetailTrackingConfig } from '../features/errordetails/ErrorDetailTrackingConfig';
2
+ export interface FeatureConfigContainer {
3
+ errorDetails?: ErrorDetailTrackingConfig;
4
+ }
@@ -1,3 +1,4 @@
1
+ import { FeatureConfigContainer } from './FeatureConfigContainer';
1
2
  export interface LicensingRequest {
2
3
  key?: string;
3
4
  domain: string;
@@ -11,5 +12,6 @@ export declare enum LicensingResult {
11
12
  export interface LicensingResponse {
12
13
  status: LicensingResult;
13
14
  message: string;
15
+ features?: FeatureConfigContainer;
14
16
  }
15
17
  export declare type LicenseCallFunc = (key: string, domain: string, version: string, baseUrl: string) => Promise<LicensingResponse>;
@@ -0,0 +1,5 @@
1
+ declare type Impossible<K extends keyof any> = {
2
+ [P in K]: never;
3
+ };
4
+ export declare type NoExtraProperties<T, U extends T = T> = U & Impossible<Exclude<keyof U, keyof T>>;
5
+ export {};
@@ -1,5 +1,6 @@
1
+ import { CustomDataValues } from './CustomDataValues';
1
2
  import { DownloadSpeedInfo } from './DownloadSpeedInfo';
2
- export interface Sample {
3
+ export interface Sample extends CustomDataValues {
3
4
  platform: string;
4
5
  sequenceNumber?: number;
5
6
  domain?: any;
@@ -52,14 +53,6 @@ export interface Sample {
52
53
  videoStartFailedReason?: string;
53
54
  autoplay?: any;
54
55
  pageLoadTime: number;
55
- experimentName?: any;
56
- customData1?: any;
57
- customData2?: any;
58
- customData3?: any;
59
- customData4?: any;
60
- customData5?: any;
61
- customData6?: any;
62
- customData7?: any;
63
56
  key?: string;
64
57
  playerKey?: any;
65
58
  cdnProvider?: any;
@@ -42,5 +42,7 @@ export interface StateMachineCallbacks {
42
42
  customdatachange: (duration?: number, state?: string, event?: {
43
43
  values: CustomDataValues;
44
44
  }) => void;
45
+ release: () => void;
46
+ playlistTransition: (event: Readonly<EventData.AnalyticsEventBase>) => void;
45
47
  }
46
48
  export declare const defaultStateMachineCallbacks: StateMachineCallbacks;
@@ -1,4 +1,4 @@
1
1
  export declare class CodecHelper {
2
- static get supportedVideoFormats(): string[];
2
+ static get supportedVideoFormats(): string[] | undefined;
3
3
  static isCodecSupported(codec: string): boolean;
4
4
  }
@@ -0,0 +1,9 @@
1
+ export declare class Queue<T> {
2
+ private readonly _items;
3
+ get items(): ReadonlyArray<T>;
4
+ get length(): number;
5
+ offer(item: T): void;
6
+ poll(): T | undefined;
7
+ clear(): void;
8
+ limit(maxElements: number): void;
9
+ }
@@ -1,4 +1,5 @@
1
1
  import { PAGE_LOAD_TYPE } from '../enums/PageLoadType';
2
+ import { CustomDataValues } from '../types/CustomDataValues';
2
3
  export declare const validString: (text: any) => boolean;
3
4
  export declare const isNullOrEmptyString: (text: any) => boolean;
4
5
  export declare const validBoolean: (bool: any) => boolean;
@@ -12,6 +13,7 @@ export declare const generateUUID: () => string;
12
13
  export declare const getCookie: (cname: string) => string;
13
14
  export declare const noOp: () => void;
14
15
  export declare const getCustomDataString: (customData: any) => string | undefined;
16
+ export declare const transferCustomDataFields: (fromConfig: CustomDataValues, toConfig: CustomDataValues) => void;
15
17
  export declare const getDocumentPropWithPrefix: (prop: string) => string | undefined;
16
18
  export declare const isVideoInFullscreen: () => boolean;
17
19
  export declare const getHiddenProp: () => string | undefined;
package/package.json CHANGED
@@ -1 +1 @@
1
- {"name":"bitmovin-analytics","version":"v2.21.2","description":"Bitmovin Analytics Collector collects monitoring devents from video players for the Bitmovin Analytics Service","license":"MIT","repository":{"type":"git","url":"git+https://github.com/bitmovin/bitmovin-analytics-collector.git"},"main":"bitmovinanalytics.min.js","types":"bitmovin-analytics.d.ts","author":"Bitmovin Inc","homepage":"https://bitmovin.com/video-analytics/","maintainers":[{"name":"bitadmin","email":"admin@bitmovin.com"}]}
1
+ {"name":"bitmovin-analytics","version":"v2.24.1","description":"Bitmovin Analytics Collector collects monitoring devents from video players for the Bitmovin Analytics Service","license":"MIT","repository":{"type":"git","url":"git+https://github.com/bitmovin/bitmovin-analytics-collector.git"},"main":"bitmovinanalytics.min.js","types":"bitmovin-analytics.d.ts","author":"Bitmovin Inc","homepage":"https://bitmovin.com/video-analytics/","maintainers":[{"name":"bitadmin","email":"admin@bitmovin.com"}]}
@@ -1,7 +0,0 @@
1
- declare class ErrorEventObject {
2
- readonly code: number;
3
- readonly message?: string;
4
- constructor(code: number);
5
- private getMessageFromCode;
6
- }
7
- export default ErrorEventObject;