@openplayerjs/ads 3.1.1 → 3.2.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.
@@ -0,0 +1,91 @@
1
+ import type { EventBus } from '@openplayerjs/core';
2
+ export type AdsEvent = 'ads:requested' | 'ads:break:start' | 'ads:break:end' | 'ads:ad:start' | 'ads:ad:end' | 'ads:loaded' | 'ads:impression' | 'ads:quartile' | 'ads:clickthrough' | 'ads:error' | 'ads:timeupdate' | 'ads:duration' | 'ads:allAdsCompleted' | 'ads:skip' | 'ads:pause' | 'ads:resume' | 'ads:mute' | 'ads:unmute' | 'ads:volumeChange';
3
+ export type VastInput = {
4
+ kind: 'url';
5
+ value: string;
6
+ } | {
7
+ kind: 'xml';
8
+ value: string | XMLDocument | Element;
9
+ };
10
+ export type BreakAt = 'preroll' | 'postroll' | number;
11
+ export type VastClosedCaption = {
12
+ type?: string;
13
+ language?: string;
14
+ fileURL?: string;
15
+ };
16
+ export type CaptionResource = {
17
+ src: string;
18
+ kind: 'captions' | 'subtitles';
19
+ srclang?: string;
20
+ label?: string;
21
+ type?: string;
22
+ };
23
+ export type AdsSourceType = 'VAST' | 'VMAP' | 'NONLINEAR';
24
+ export type AdsSource = {
25
+ type: AdsSourceType;
26
+ src: string;
27
+ };
28
+ export type AdsBreakConfig = {
29
+ id?: string;
30
+ at: BreakAt;
31
+ source?: AdsSource;
32
+ sources?: AdsSource[];
33
+ once?: boolean;
34
+ timeOffset?: string;
35
+ };
36
+ export type OmidConfig = {
37
+ accessMode?: 'domain' | 'limited';
38
+ };
39
+ export type AdsPluginConfig = {
40
+ sources?: AdsSource | AdsSource[];
41
+ breaks?: AdsBreakConfig[];
42
+ interceptPlayForPreroll?: boolean;
43
+ autoPlayOnReady?: boolean;
44
+ mountEl?: HTMLElement;
45
+ mountSelector?: string;
46
+ nonLinearContainer?: HTMLElement;
47
+ nonLinearSelector?: string;
48
+ companionContainer?: HTMLElement;
49
+ companionSelector?: string;
50
+ allowNativeControls?: boolean;
51
+ resumeContent?: boolean;
52
+ preferredMediaTypes?: string[];
53
+ debug?: boolean;
54
+ breakTolerance?: number;
55
+ adSourcesMode?: 'waterfall' | 'playlist';
56
+ omid?: OmidConfig;
57
+ };
58
+ export type NormalizedMediaFile = {
59
+ type: string;
60
+ fileURL: string;
61
+ bitrate: number;
62
+ width: number;
63
+ height: number;
64
+ raw: any;
65
+ };
66
+ export type PodAd = {
67
+ creativeIndex?: number;
68
+ ad: any;
69
+ creative: any;
70
+ mediaFile: NormalizedMediaFile;
71
+ sequence?: number;
72
+ skipOffset?: string;
73
+ companions?: any[];
74
+ nonLinears?: any[];
75
+ };
76
+ export type XmlNonLinearItem = {
77
+ nonLinear: any;
78
+ companions?: any[];
79
+ };
80
+ export type AdVerification = {
81
+ vendor: string;
82
+ scriptUrl: string;
83
+ params: string;
84
+ };
85
+ export declare class PluginBus<E extends string> {
86
+ private bus;
87
+ constructor(bus: EventBus);
88
+ on(event: E, cb: (...args: any[]) => void): () => boolean;
89
+ emit(event: E, ...data: any[]): void;
90
+ }
91
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/types.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,33 @@
1
+ import type { AdVerification, NormalizedMediaFile, PodAd, VastInput, XmlNonLinearItem, CaptionResource, VastClosedCaption } from './types';
2
+ export declare function isXmlString(src: string): boolean;
3
+ export declare function toXmlDocument(xml: string): XMLDocument;
4
+ export declare function buildParsedForNonLinearFromXml(xmlText: string): XMLDocument;
5
+ export declare function getVastXmlText(input: VastInput): Promise<string>;
6
+ export declare function parseTimecodeToSeconds(s: string): number | null;
7
+ export declare function computeSkipAtSeconds(skipOffset: string | undefined, duration: number): number | undefined;
8
+ export declare function pickBestMediaFile(mediaFiles: any[], preferredMediaTypes: string[]): NormalizedMediaFile | null;
9
+ export declare function extractSkipOffsetFromCreative(creative: any): string | undefined;
10
+ /**
11
+ * Looks for a SIMID MediaFile in a VAST creative or raw XMLDocument.
12
+ * SIMID MediaFiles have `apiFramework="SIMID"` and `type="text/html"`.
13
+ * Returns the URL of the first SIMID creative found, or undefined.
14
+ */
15
+ export declare function extractSimidUrl(creative: any, rawDoc?: XMLDocument | null): string | undefined;
16
+ /**
17
+ * Extracts AdVerification entries from a parsed VAST response or raw XMLDocument.
18
+ * Returns an array of verification resources usable by OmidSession.
19
+ */
20
+ export declare function extractAdVerifications(parsed: any, rawDoc?: XMLDocument | null): AdVerification[];
21
+ export declare function extractAdsFromParsed(parsed: any): any[];
22
+ export declare function collectPodAds(parsed: any, preferredMediaTypes: string[]): PodAd[];
23
+ export declare function collectPodAdsFromXml(doc: XMLDocument, preferredMediaTypes: string[]): PodAd[];
24
+ export declare function collectNonLinearCreatives(parsed: any): {
25
+ ad: any;
26
+ creative: any;
27
+ nonLinear: any;
28
+ sequence?: number;
29
+ }[];
30
+ export declare function collectNonLinearFromXml(doc: XMLDocument): XmlNonLinearItem[];
31
+ export declare function extractClosedCaptions(mediaFileRaw: any): VastClosedCaption[];
32
+ export declare function buildCaptionsFromVastMediaFileRaw(mediaFileRaw: any): CaptionResource[];
33
+ //# sourceMappingURL=vast-parser.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"vast-parser.d.ts","sourceRoot":"","sources":["../../src/vast-parser.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,mBAAmB,EAAE,KAAK,EAAE,SAAS,EAAE,gBAAgB,EAAE,eAAe,EAAE,iBAAiB,EAAE,MAAM,SAAS,CAAC;AAI3I,wBAAgB,WAAW,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAEhD;AAED,wBAAgB,aAAa,CAAC,GAAG,EAAE,MAAM,GAAG,WAAW,CAEtD;AAED,wBAAgB,8BAA8B,CAAC,OAAO,EAAE,MAAM,GAAG,WAAW,CAE3E;AAED,wBAAsB,cAAc,CAAC,KAAK,EAAE,SAAS,GAAG,OAAO,CAAC,MAAM,CAAC,CAStE;AAED,wBAAgB,sBAAsB,CAAC,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAQ/D;AAED,wBAAgB,oBAAoB,CAAC,UAAU,EAAE,MAAM,GAAG,SAAS,EAAE,QAAQ,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAmBzG;AAID,wBAAgB,iBAAiB,CAAC,UAAU,EAAE,GAAG,EAAE,EAAE,mBAAmB,EAAE,MAAM,EAAE,GAAG,mBAAmB,GAAG,IAAI,CAsB9G;AAED,wBAAgB,6BAA6B,CAAC,QAAQ,EAAE,GAAG,GAAG,MAAM,GAAG,SAAS,CA8C/E;AAID;;;;GAIG;AACH,wBAAgB,eAAe,CAAC,QAAQ,EAAE,GAAG,EAAE,MAAM,CAAC,EAAE,WAAW,GAAG,IAAI,GAAG,MAAM,GAAG,SAAS,CAgC9F;AAID;;;GAGG;AACH,wBAAgB,sBAAsB,CAAC,MAAM,EAAE,GAAG,EAAE,MAAM,CAAC,EAAE,WAAW,GAAG,IAAI,GAAG,cAAc,EAAE,CA4CjG;AAID,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,GAAG,GAAG,GAAG,EAAE,CAmBvD;AAED,wBAAgB,aAAa,CAAC,MAAM,EAAE,GAAG,EAAE,mBAAmB,EAAE,MAAM,EAAE,GAAG,KAAK,EAAE,CA6CjF;AAED,wBAAgB,oBAAoB,CAAC,GAAG,EAAE,WAAW,EAAE,mBAAmB,EAAE,MAAM,EAAE,GAAG,KAAK,EAAE,CAoD7F;AAID,wBAAgB,yBAAyB,CAAC,MAAM,EAAE,GAAG,GAAG;IAAE,EAAE,EAAE,GAAG,CAAC;IAAC,QAAQ,EAAE,GAAG,CAAC;IAAC,SAAS,EAAE,GAAG,CAAC;IAAC,QAAQ,CAAC,EAAE,MAAM,CAAA;CAAE,EAAE,CAoCtH;AAED,wBAAgB,uBAAuB,CAAC,GAAG,EAAE,WAAW,GAAG,gBAAgB,EAAE,CA8D5E;AAID,wBAAgB,qBAAqB,CAAC,YAAY,EAAE,GAAG,GAAG,iBAAiB,EAAE,CA2B5E;AAED,wBAAgB,iCAAiC,CAAC,YAAY,EAAE,GAAG,GAAG,eAAe,EAAE,CAetF"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@openplayerjs/ads",
3
- "version": "3.1.1",
3
+ "version": "3.2.0",
4
4
  "description": "VAST/VMAP/Non-linear/companions ad-serving plugin for OpenPlayerJS",
5
5
  "author": {
6
6
  "name": "Rafael Miranda",
@@ -40,10 +40,10 @@
40
40
  ],
41
41
  "dependencies": {
42
42
  "@dailymotion/vast-client": "^6.4.2",
43
- "@dailymotion/vmap": ">=3.0.0"
43
+ "@dailymotion/vmap": ">=3.3.3"
44
44
  },
45
45
  "peerDependencies": {
46
- "@openplayerjs/core": "^3.1.1"
46
+ "@openplayerjs/core": "^3.2.0"
47
47
  },
48
48
  "devDependencies": {
49
49
  "@types/dailymotion__vast-client": "^6.3.0"