@glomex/integration-web-component 1.1507.1 → 1.1508.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.
- package/README.md +45 -0
- package/dist/index.d.ts +632 -142
- package/dist/index.js +1 -1
- package/package.json +3 -3
package/README.md
CHANGED
|
@@ -71,3 +71,48 @@ export const connectIntegration: ConnectIntegration = (integration) => {
|
|
|
71
71
|
});
|
|
72
72
|
};
|
|
73
73
|
```
|
|
74
|
+
|
|
75
|
+
### Shared Context
|
|
76
|
+
|
|
77
|
+
Use `getSharedContext()` to provide global application context and provider-specific user tokens to all `<glomex-integration>` instances on the page.
|
|
78
|
+
|
|
79
|
+
`getSharedContext()` waits for the integration component to be loaded and returns the same singleton instance that the running player uses.
|
|
80
|
+
|
|
81
|
+
```ts
|
|
82
|
+
import { getSharedContext } from '@glomex/integration-web-component';
|
|
83
|
+
|
|
84
|
+
const sharedContext = await getSharedContext();
|
|
85
|
+
|
|
86
|
+
sharedContext.set({
|
|
87
|
+
// Plain values — used as-is
|
|
88
|
+
appVersion: '2.3.0',
|
|
89
|
+
appName: 'my-app',
|
|
90
|
+
deviceId: { id: '...', name: 'idfa' },
|
|
91
|
+
|
|
92
|
+
// Resolver functions — called each time the player needs the value,
|
|
93
|
+
// so they can return fresh data (e.g. after consent changes)
|
|
94
|
+
userIds: async () => await cmp.getConsentedUserIds(),
|
|
95
|
+
|
|
96
|
+
// Provider-specific context (tokens, subscription state, ...)
|
|
97
|
+
providers: {
|
|
98
|
+
'my-provider': async () => ({
|
|
99
|
+
token: await myAuth.getToken(),
|
|
100
|
+
subscriptionState: userState
|
|
101
|
+
})
|
|
102
|
+
}
|
|
103
|
+
});
|
|
104
|
+
```
|
|
105
|
+
|
|
106
|
+
Calling `set()` multiple times merges incrementally — previously set values are preserved unless overwritten:
|
|
107
|
+
|
|
108
|
+
```ts
|
|
109
|
+
// Initial setup
|
|
110
|
+
sharedContext.set({ appVersion: '2.3.0', appName: 'my-app' });
|
|
111
|
+
|
|
112
|
+
// Later — adds providers without removing appVersion/appName
|
|
113
|
+
sharedContext.set({
|
|
114
|
+
providers: {
|
|
115
|
+
'my-provider': async () => ({ token: await myAuth.getToken() })
|
|
116
|
+
}
|
|
117
|
+
});
|
|
118
|
+
```
|
package/dist/index.d.ts
CHANGED
|
@@ -1,13 +1,14 @@
|
|
|
1
1
|
|
|
2
|
+
import type { SerializedError } from '@reduxjs/toolkit';
|
|
2
3
|
|
|
3
4
|
export declare interface Ad {
|
|
4
5
|
sessionId: string;
|
|
5
6
|
id: string;
|
|
6
|
-
adFormat: AdFormat
|
|
7
|
+
adFormat: AdFormat | `${AdFormat}`;
|
|
7
8
|
duration?: number;
|
|
8
9
|
positionIndex: number;
|
|
9
10
|
breakIndex: number;
|
|
10
|
-
breakName: AdBreakName
|
|
11
|
+
breakName: AdBreakName | `${AdBreakName}`;
|
|
11
12
|
mimetype: string;
|
|
12
13
|
totalAds: number;
|
|
13
14
|
adUrl?: string;
|
|
@@ -27,8 +28,12 @@ export declare interface Ad {
|
|
|
27
28
|
clickThroughUrl?: string;
|
|
28
29
|
}
|
|
29
30
|
|
|
30
|
-
/** Name of ad break - when the ad appears, `
|
|
31
|
-
export declare
|
|
31
|
+
/** Name of ad break - when the ad appears, `OVERLAY` is deprecated */
|
|
32
|
+
export declare enum AdBreakName {
|
|
33
|
+
PREROLL = "preroll",
|
|
34
|
+
MIDROLL = "midroll",
|
|
35
|
+
POSTROLL = "postroll"
|
|
36
|
+
}
|
|
32
37
|
|
|
33
38
|
export declare class AdError extends Error {
|
|
34
39
|
code: string;
|
|
@@ -37,9 +42,14 @@ export declare class AdError extends Error {
|
|
|
37
42
|
}
|
|
38
43
|
|
|
39
44
|
/** Format of the ad - how it is presented */
|
|
40
|
-
export declare
|
|
45
|
+
export declare enum AdFormat {
|
|
46
|
+
LINEAR = "linear",
|
|
47
|
+
OVERLAY = "overlay",
|
|
48
|
+
CUTIN = "cutin",
|
|
49
|
+
PAUSE = "pause"
|
|
50
|
+
}
|
|
41
51
|
|
|
42
|
-
|
|
52
|
+
declare const ALLOWED_UI_ACTIONS: readonly ["play", "pause", "openEpg", "startAgeSetup", "forgotPin"];
|
|
43
53
|
|
|
44
54
|
/**
|
|
45
55
|
* An additional API script definition that should be executed for this media-item.
|
|
@@ -103,6 +113,12 @@ export declare interface AudioTrackList extends MediaTrackList<AudioTrack> {
|
|
|
103
113
|
select(trackOrId: AudioTrack | string): void;
|
|
104
114
|
}
|
|
105
115
|
|
|
116
|
+
declare class BaseMediaError<T extends string = string> extends Error {
|
|
117
|
+
code: T;
|
|
118
|
+
name: string;
|
|
119
|
+
constructor(message: string, code: T);
|
|
120
|
+
}
|
|
121
|
+
|
|
106
122
|
export declare interface Channel {
|
|
107
123
|
/** Human-readable channel title shown in the player UI */
|
|
108
124
|
name?: string;
|
|
@@ -118,8 +134,9 @@ export declare interface Channel {
|
|
|
118
134
|
|
|
119
135
|
export declare enum ComponentName {
|
|
120
136
|
INTEGRATION = "glomex-integration",
|
|
121
|
-
EXTERNAL_MEDIA_ITEM = "
|
|
122
|
-
GLOMEX_MEDIA_ITEM = "glomex-media-item"
|
|
137
|
+
EXTERNAL_MEDIA_ITEM = "external-media-item",
|
|
138
|
+
GLOMEX_MEDIA_ITEM = "glomex-media-item",
|
|
139
|
+
JOYN_MEDIA_ITEM = "joyn-media-item"
|
|
123
140
|
}
|
|
124
141
|
|
|
125
142
|
/**
|
|
@@ -206,7 +223,41 @@ export declare interface CustomMarker extends Omit<Marker, 'name'> {
|
|
|
206
223
|
name: string;
|
|
207
224
|
}
|
|
208
225
|
|
|
209
|
-
|
|
226
|
+
/**
|
|
227
|
+
* Identifier names for device IDs that can be passed via {@link SharedContextData.deviceId}.
|
|
228
|
+
*/
|
|
229
|
+
export declare enum DeviceIdName {
|
|
230
|
+
/** Android Advertising ID (Google) */
|
|
231
|
+
AAID = "aaid",
|
|
232
|
+
/** Amazon Fire OS Advertising ID */
|
|
233
|
+
AFAI = "afai",
|
|
234
|
+
/** Android App Set ID — scope: app */
|
|
235
|
+
ASIA = "asia",
|
|
236
|
+
/** Android App Set ID — scope: developer */
|
|
237
|
+
ASID = "asid",
|
|
238
|
+
/** Tizen Identifier for Advertising (Samsung) */
|
|
239
|
+
TIFA = "tifa",
|
|
240
|
+
/** VIDAA Advertising ID (Hisense) */
|
|
241
|
+
VAID = "vaid",
|
|
242
|
+
/** Apple Identifier for Advertisers */
|
|
243
|
+
IDFA = "idfa",
|
|
244
|
+
/** Apple Identifier for Vendors */
|
|
245
|
+
IDFV = "idfv",
|
|
246
|
+
/** LG Unique Device ID */
|
|
247
|
+
LGUDID = "lgudid",
|
|
248
|
+
/** Microsoft Advertising ID */
|
|
249
|
+
MSAI = "msai",
|
|
250
|
+
/** Huawei Open Advertising ID */
|
|
251
|
+
OAID = "oaid",
|
|
252
|
+
/** PlayStation Advertising ID */
|
|
253
|
+
PSNAI = "psnai",
|
|
254
|
+
/** Roku Identifier for Advertising */
|
|
255
|
+
RIDA = "rida",
|
|
256
|
+
/** Vizio Advertising ID */
|
|
257
|
+
VIDA = "vida",
|
|
258
|
+
/** TitanOS Advertising ID (Walmart) */
|
|
259
|
+
WAID = "waid"
|
|
260
|
+
}
|
|
210
261
|
|
|
211
262
|
declare interface Experiment {
|
|
212
263
|
name: string;
|
|
@@ -231,6 +282,7 @@ export declare interface ExtendedVideoPlaybackQuality extends VideoPlaybackQuali
|
|
|
231
282
|
height: number;
|
|
232
283
|
}
|
|
233
284
|
|
|
285
|
+
/** @ignore */
|
|
234
286
|
export declare const EXTERNAL_PLAYER_NAME = "turbo-player";
|
|
235
287
|
|
|
236
288
|
/**
|
|
@@ -238,9 +290,9 @@ export declare const EXTERNAL_PLAYER_NAME = "turbo-player";
|
|
|
238
290
|
* It can be placed inside the integration element as a child.
|
|
239
291
|
* For more complex use cases, see {@link MediaItemElement}.
|
|
240
292
|
*
|
|
241
|
-
* @tagname
|
|
293
|
+
* @tagname external-media-item
|
|
242
294
|
*
|
|
243
|
-
* @slot - Slot for inline JSON of type `application/
|
|
295
|
+
* @slot - Slot for inline JSON of type `application/external-media-item+json`
|
|
244
296
|
*
|
|
245
297
|
* @example single media item with inline JSON
|
|
246
298
|
*
|
|
@@ -250,8 +302,8 @@ export declare const EXTERNAL_PLAYER_NAME = "turbo-player";
|
|
|
250
302
|
* <glomex-integration
|
|
251
303
|
* integration-id="REPLACE_WITH_INTEGRATION_ID"
|
|
252
304
|
* >
|
|
253
|
-
* <
|
|
254
|
-
* <script type="application/
|
|
305
|
+
* <external-media-item>
|
|
306
|
+
* <script type="application/external-media-item+json">
|
|
255
307
|
* {
|
|
256
308
|
* "id": "SOME_ID",
|
|
257
309
|
* "sources": [
|
|
@@ -265,7 +317,7 @@ export declare const EXTERNAL_PLAYER_NAME = "turbo-player";
|
|
|
265
317
|
* "title": "VIDEO_TITLE"
|
|
266
318
|
* }
|
|
267
319
|
* </script>
|
|
268
|
-
* </
|
|
320
|
+
* </external-media-item>
|
|
269
321
|
* </glomex-integration>
|
|
270
322
|
* ```
|
|
271
323
|
*
|
|
@@ -277,8 +329,8 @@ export declare const EXTERNAL_PLAYER_NAME = "turbo-player";
|
|
|
277
329
|
* <glomex-integration
|
|
278
330
|
* integration-id="REPLACE_WITH_INTEGRATION_ID"
|
|
279
331
|
* >
|
|
280
|
-
* <
|
|
281
|
-
* <script type="application/
|
|
332
|
+
* <external-media-item>
|
|
333
|
+
* <script type="application/external-media-item+json">
|
|
282
334
|
* [
|
|
283
335
|
* {
|
|
284
336
|
* "id": "VIDEO_1",
|
|
@@ -296,13 +348,11 @@ export declare const EXTERNAL_PLAYER_NAME = "turbo-player";
|
|
|
296
348
|
* }
|
|
297
349
|
* ]
|
|
298
350
|
* </script>
|
|
299
|
-
* </
|
|
351
|
+
* </external-media-item>
|
|
300
352
|
* </glomex-integration>
|
|
301
353
|
* ```
|
|
302
354
|
*/
|
|
303
|
-
export declare class ExternalMediaItemElement extends
|
|
304
|
-
#private;
|
|
305
|
-
get data(): MediaItem | MediaItem[];
|
|
355
|
+
export declare class ExternalMediaItemElement extends MediaItemElement {
|
|
306
356
|
}
|
|
307
357
|
|
|
308
358
|
/**
|
|
@@ -324,7 +374,11 @@ export declare interface ExtraContext {
|
|
|
324
374
|
/**
|
|
325
375
|
* User ids of the user. User ids are only used when the user has given consent for the assigned vendor.
|
|
326
376
|
*/
|
|
327
|
-
userIds?:
|
|
377
|
+
userIds?: {
|
|
378
|
+
id: string;
|
|
379
|
+
name: UserIdName | `${UserIdName}`;
|
|
380
|
+
ext?: Record<string, unknown>;
|
|
381
|
+
}[];
|
|
328
382
|
/**
|
|
329
383
|
* The bundle id of the app. Only required for iOS apps.
|
|
330
384
|
*/
|
|
@@ -340,28 +394,46 @@ export declare interface ExtraContext {
|
|
|
340
394
|
*/
|
|
341
395
|
appStoreUrl?: string;
|
|
342
396
|
b2bContext?: string;
|
|
343
|
-
deviceId?:
|
|
397
|
+
deviceId?: {
|
|
398
|
+
id: string;
|
|
399
|
+
name: DeviceIdName | `${DeviceIdName}`;
|
|
400
|
+
};
|
|
344
401
|
}
|
|
345
402
|
|
|
346
403
|
/**
|
|
347
|
-
*
|
|
404
|
+
* Returns the CSS URL for a given integration variant.
|
|
405
|
+
*
|
|
406
|
+
* @example
|
|
407
|
+
* ```ts
|
|
408
|
+
* import { getIntegrationCssUrl } from '@glomex/integration-web-component';
|
|
409
|
+
*
|
|
410
|
+
* const cssUrl = getIntegrationCssUrl('my-integration-id');
|
|
411
|
+
* // => 'https://player.glomex.com/variant/my-integration-id/variant.css'
|
|
412
|
+
* ```
|
|
348
413
|
*/
|
|
349
|
-
export declare
|
|
350
|
-
id: string;
|
|
351
|
-
name: 'aaid' | 'afai' | 'asia' | 'asid' | 'tifa' | 'vaid' | 'idfa' | 'idfv' | 'lgudid' | 'msai' | 'oaid' | 'psnai' | 'rida' | 'vida' | 'waid';
|
|
352
|
-
}
|
|
414
|
+
export declare function getIntegrationCssUrl(integrationId: string): string;
|
|
353
415
|
|
|
354
416
|
/**
|
|
355
|
-
*
|
|
356
|
-
*
|
|
417
|
+
* Returns the {@link SharedContext} singleton from the loaded `integration.js`.
|
|
418
|
+
*
|
|
419
|
+
* Waits for the `<glomex-integration>` custom element to be defined, then
|
|
420
|
+
* reads the singleton from its static property — guaranteeing the same
|
|
421
|
+
* instance that the running player uses.
|
|
422
|
+
*
|
|
423
|
+
* @example
|
|
424
|
+
* ```ts
|
|
425
|
+
* import { getSharedContext } from '@glomex/integration-web-component';
|
|
426
|
+
*
|
|
427
|
+
* const sharedContext = await getSharedContext();
|
|
428
|
+
* sharedContext.set({
|
|
429
|
+
* appVersion: '2.3.0',
|
|
430
|
+
* providers: {
|
|
431
|
+
* 'my-provider': async () => ({ token: await myAuth.getFreshToken() }),
|
|
432
|
+
* }
|
|
433
|
+
* });
|
|
434
|
+
* ```
|
|
357
435
|
*/
|
|
358
|
-
export declare
|
|
359
|
-
id: string;
|
|
360
|
-
name: 'netId' | 'sevenPassId' | 'ppid' | 'utiqId' | 'liverampId' | 'pairId';
|
|
361
|
-
ext?: Record<string, unknown>;
|
|
362
|
-
}
|
|
363
|
-
|
|
364
|
-
export declare function getIntegrationCssUrl(integrationId: string): string;
|
|
436
|
+
export declare function getSharedContext(): Promise<SharedContext>;
|
|
365
437
|
|
|
366
438
|
/**
|
|
367
439
|
* Web component that allows to override title and poster of a given glomex content id. It can be placed
|
|
@@ -369,6 +441,11 @@ export declare function getIntegrationCssUrl(integrationId: string): string;
|
|
|
369
441
|
*
|
|
370
442
|
* @tagname glomex-media-item
|
|
371
443
|
*
|
|
444
|
+
* @attribute id - The glomex media ID or playlist ID to load.
|
|
445
|
+
* @attribute {stage|prod} environment - The environment to use for the provider request.
|
|
446
|
+
* @attribute poster - URL to override the poster image of the media item.
|
|
447
|
+
* @attribute title - Override the title of the media item.
|
|
448
|
+
*
|
|
372
449
|
* @example with 2 glomex-media-items
|
|
373
450
|
*
|
|
374
451
|
* This only works when no `playlist-id` is assigned to `glomex-integration`
|
|
@@ -399,26 +476,26 @@ export declare function getIntegrationCssUrl(integrationId: string): string;
|
|
|
399
476
|
* ></glomex-media-item>
|
|
400
477
|
* </glomex-integration>
|
|
401
478
|
* ```
|
|
479
|
+
*
|
|
480
|
+
* @example glomex-media-item targeting the stage environment
|
|
481
|
+
*
|
|
482
|
+
* ```html
|
|
483
|
+
* <glomex-integration
|
|
484
|
+
* integration-id="REPLACE_WITH_INTEGRATION_ID"
|
|
485
|
+
* >
|
|
486
|
+
* <glomex-media-item
|
|
487
|
+
* id="REPLACE_WITH_MEDIA_OR_PLAYLIST_ID"
|
|
488
|
+
* environment="stage"
|
|
489
|
+
* ></glomex-media-item>
|
|
490
|
+
* </glomex-integration>
|
|
491
|
+
* ```
|
|
402
492
|
*/
|
|
403
|
-
export declare class GlomexMediaItemElement extends
|
|
404
|
-
#private;
|
|
405
|
-
/**
|
|
406
|
-
* {@inheritDoc MediaItem#id}
|
|
407
|
-
*/
|
|
408
|
-
id: string;
|
|
493
|
+
export declare class GlomexMediaItemElement extends MediaItemElement {
|
|
409
494
|
/**
|
|
410
495
|
* Overridden poster of the media item.
|
|
496
|
+
* @attribute poster
|
|
411
497
|
*/
|
|
412
498
|
poster: string;
|
|
413
|
-
/**
|
|
414
|
-
* Overridden title of the media item.
|
|
415
|
-
*/
|
|
416
|
-
title: string;
|
|
417
|
-
}
|
|
418
|
-
|
|
419
|
-
export declare interface GlomexMediaItemWithOverrides {
|
|
420
|
-
id: string;
|
|
421
|
-
overrides: Partial<Omit<MediaItem, 'id' | 'sources'>>;
|
|
422
499
|
}
|
|
423
500
|
|
|
424
501
|
/**
|
|
@@ -426,7 +503,7 @@ export declare interface GlomexMediaItemWithOverrides {
|
|
|
426
503
|
*
|
|
427
504
|
* @see {@link IntegrationElementEventMap} for a full list of event types and their payloads
|
|
428
505
|
* @tagname glomex-integration
|
|
429
|
-
* @slot - (optional) Slot for custom media items ({@link GlomexMediaItemElement}, {@link ExternalMediaItemElement} or {@link MediaItemElement})
|
|
506
|
+
* @slot - (optional) Slot for custom media items ({@link GlomexMediaItemElement}, {@link JoynMediaItemElement}, {@link ExternalMediaItemElement} or {@link MediaItemElement})
|
|
430
507
|
*
|
|
431
508
|
* @example with a playlist-id
|
|
432
509
|
*
|
|
@@ -437,7 +514,7 @@ export declare interface GlomexMediaItemWithOverrides {
|
|
|
437
514
|
* ></glomex-integration>
|
|
438
515
|
* ```
|
|
439
516
|
*
|
|
440
|
-
* You can find more advanced examples in the {@link GlomexMediaItemElement}, {@link ExternalMediaItemElement} or {@link MediaItemElement} documentation.
|
|
517
|
+
* You can find more advanced examples in the {@link GlomexMediaItemElement}, {@link JoynMediaItemElement}, {@link ExternalMediaItemElement} or {@link MediaItemElement} documentation.
|
|
441
518
|
*/
|
|
442
519
|
export declare class IntegrationElement extends HTMLElement implements IntegrationProperties {
|
|
443
520
|
#private;
|
|
@@ -447,6 +524,7 @@ export declare class IntegrationElement extends HTMLElement implements Integrati
|
|
|
447
524
|
static Mimetype: typeof Mimetype;
|
|
448
525
|
static PresentationMode: typeof PresentationMode;
|
|
449
526
|
static IntegrationEvent: typeof IntegrationEvent;
|
|
527
|
+
static sharedContext: SharedContext;
|
|
450
528
|
/**
|
|
451
529
|
* {@inheritDoc IntegrationProperties.integrationId}
|
|
452
530
|
* @attribute integration-id
|
|
@@ -633,7 +711,7 @@ export declare class IntegrationElement extends HTMLElement implements Integrati
|
|
|
633
711
|
/**
|
|
634
712
|
* Retrieves the currently selected content item.
|
|
635
713
|
*/
|
|
636
|
-
get content():
|
|
714
|
+
get content(): MediaItemResolved | undefined;
|
|
637
715
|
/**
|
|
638
716
|
* Retrieves the currently selected source.
|
|
639
717
|
*/
|
|
@@ -641,7 +719,7 @@ export declare class IntegrationElement extends HTMLElement implements Integrati
|
|
|
641
719
|
/**
|
|
642
720
|
* Retrieves the current playlist.
|
|
643
721
|
*/
|
|
644
|
-
get playlist():
|
|
722
|
+
get playlist(): MediaItemResolved[] | undefined;
|
|
645
723
|
/**
|
|
646
724
|
* Provides access to the user's consent information.
|
|
647
725
|
*/
|
|
@@ -668,7 +746,7 @@ export declare class IntegrationElement extends HTMLElement implements Integrati
|
|
|
668
746
|
* @param {Object} [options] - Optional configuration.
|
|
669
747
|
* @param {boolean} [options.byUser=false] - Indicates if the change was initiated by a user action.
|
|
670
748
|
*/
|
|
671
|
-
setPresentationMode(mode: PresentationMode |
|
|
749
|
+
setPresentationMode(mode: PresentationMode | `${PresentationMode}`, { byUser }?: {
|
|
672
750
|
byUser?: boolean | undefined;
|
|
673
751
|
}): Promise<void>;
|
|
674
752
|
/**
|
|
@@ -769,7 +847,7 @@ export declare interface IntegrationElementEventMap {
|
|
|
769
847
|
* @eventProperty
|
|
770
848
|
*/
|
|
771
849
|
[IntegrationEvent.INTEGRATION_ABORT]: CustomEvent<{
|
|
772
|
-
error:
|
|
850
|
+
error: SerializedError;
|
|
773
851
|
}>;
|
|
774
852
|
/**
|
|
775
853
|
* @inheritdoc IntegrationEvent.INTEGRATION_AD_AVAILABLE
|
|
@@ -843,7 +921,7 @@ export declare interface IntegrationElementEventMap {
|
|
|
843
921
|
* @eventProperty
|
|
844
922
|
*/
|
|
845
923
|
[IntegrationEvent.CONTENT_ERROR]: CustomEvent<{
|
|
846
|
-
error:
|
|
924
|
+
error: SerializedError;
|
|
847
925
|
}>;
|
|
848
926
|
/**
|
|
849
927
|
* @inheritdoc IntegrationEvent.CONTENT_MARKER_REACHED
|
|
@@ -1248,7 +1326,59 @@ export declare interface IntegrationProperties {
|
|
|
1248
1326
|
extraContext?: ExtraContext;
|
|
1249
1327
|
}
|
|
1250
1328
|
|
|
1251
|
-
|
|
1329
|
+
/**
|
|
1330
|
+
* Web component that allows to register Joyn media items. It can be placed
|
|
1331
|
+
* inside the integration element as a child.
|
|
1332
|
+
*
|
|
1333
|
+
* @tagname joyn-media-item
|
|
1334
|
+
*
|
|
1335
|
+
* @attribute id - The Joyn media ID to load.
|
|
1336
|
+
* @attribute {stage|prod} environment - The environment to use for the provider request.
|
|
1337
|
+
*
|
|
1338
|
+
* @example with a joyn-media-item
|
|
1339
|
+
*
|
|
1340
|
+
* This only works when no `playlist-id` is assigned to `glomex-integration`
|
|
1341
|
+
*
|
|
1342
|
+
* ```html
|
|
1343
|
+
* <glomex-integration
|
|
1344
|
+
* integration-id="REPLACE_WITH_INTEGRATION_ID"
|
|
1345
|
+
* >
|
|
1346
|
+
* <joyn-media-item
|
|
1347
|
+
* id="REPLACE_WITH_JOYN_MEDIA_ID"
|
|
1348
|
+
* ></joyn-media-item>
|
|
1349
|
+
* </glomex-integration>
|
|
1350
|
+
* ```
|
|
1351
|
+
*
|
|
1352
|
+
* @example with 2 joyn-media-items
|
|
1353
|
+
*
|
|
1354
|
+
* ```html
|
|
1355
|
+
* <glomex-integration
|
|
1356
|
+
* integration-id="REPLACE_WITH_INTEGRATION_ID"
|
|
1357
|
+
* >
|
|
1358
|
+
* <joyn-media-item
|
|
1359
|
+
* id="REPLACE_WITH_JOYN_MEDIA_ID"
|
|
1360
|
+
* ></joyn-media-item>
|
|
1361
|
+
* <joyn-media-item
|
|
1362
|
+
* id="ANOTHER_JOYN_MEDIA_ID"
|
|
1363
|
+
* ></joyn-media-item>
|
|
1364
|
+
* </glomex-integration>
|
|
1365
|
+
* ```
|
|
1366
|
+
*
|
|
1367
|
+
* @example joyn-media-item targeting the stage environment
|
|
1368
|
+
*
|
|
1369
|
+
* ```html
|
|
1370
|
+
* <glomex-integration
|
|
1371
|
+
* integration-id="REPLACE_WITH_INTEGRATION_ID"
|
|
1372
|
+
* >
|
|
1373
|
+
* <joyn-media-item
|
|
1374
|
+
* id="REPLACE_WITH_JOYN_MEDIA_ID"
|
|
1375
|
+
* environment="stage"
|
|
1376
|
+
* ></joyn-media-item>
|
|
1377
|
+
* </glomex-integration>
|
|
1378
|
+
* ```
|
|
1379
|
+
*/
|
|
1380
|
+
export declare class JoynMediaItemElement extends MediaItemElement {
|
|
1381
|
+
}
|
|
1252
1382
|
|
|
1253
1383
|
export declare enum KnownMarkerName {
|
|
1254
1384
|
PREROLL = "preroll",
|
|
@@ -1262,8 +1392,32 @@ export declare enum KnownMarkerName {
|
|
|
1262
1392
|
REQUEST_RECOMMENDATIONS = "requestRecommendations"
|
|
1263
1393
|
}
|
|
1264
1394
|
|
|
1395
|
+
/**
|
|
1396
|
+
* Loads the `<glomex-integration>` custom element by injecting the
|
|
1397
|
+
* `integration.js` script into the document. Does nothing if the element
|
|
1398
|
+
* is already defined.
|
|
1399
|
+
*
|
|
1400
|
+
* @example
|
|
1401
|
+
* ```ts
|
|
1402
|
+
* import { loadIntegrationComponent } from '@glomex/integration-web-component';
|
|
1403
|
+
*
|
|
1404
|
+
* loadIntegrationComponent();
|
|
1405
|
+
* ```
|
|
1406
|
+
*/
|
|
1265
1407
|
export declare function loadIntegrationComponent(): void;
|
|
1266
1408
|
|
|
1409
|
+
/**
|
|
1410
|
+
* Loads the variant CSS for the given integration ID by injecting a
|
|
1411
|
+
* `<link>` element into the document head. Does nothing if the stylesheet
|
|
1412
|
+
* is already loaded.
|
|
1413
|
+
*
|
|
1414
|
+
* @example
|
|
1415
|
+
* ```ts
|
|
1416
|
+
* import { loadIntegrationStyles } from '@glomex/integration-web-component';
|
|
1417
|
+
*
|
|
1418
|
+
* loadIntegrationStyles('my-integration-id');
|
|
1419
|
+
* ```
|
|
1420
|
+
*/
|
|
1267
1421
|
export declare function loadIntegrationStyles(integrationId: string): void;
|
|
1268
1422
|
|
|
1269
1423
|
/**
|
|
@@ -1295,50 +1449,41 @@ export declare enum MarkerType {
|
|
|
1295
1449
|
}
|
|
1296
1450
|
|
|
1297
1451
|
/**
|
|
1298
|
-
*
|
|
1299
|
-
*/
|
|
1300
|
-
declare interface MediaError_2 {
|
|
1301
|
-
name: 'MediaError';
|
|
1302
|
-
/** Error code from the playback engine */
|
|
1303
|
-
code: string;
|
|
1304
|
-
/** A detailed error message */
|
|
1305
|
-
message: string;
|
|
1306
|
-
}
|
|
1307
|
-
export { MediaError_2 as MediaError }
|
|
1308
|
-
|
|
1309
|
-
/**
|
|
1310
|
-
* Represents a media asset within the player.
|
|
1311
|
-
*
|
|
1312
|
-
* A minimal MediaItem requires only:
|
|
1313
|
-
* - an `id`
|
|
1314
|
-
* - a poster image
|
|
1315
|
-
* - a title
|
|
1316
|
-
* - a source
|
|
1452
|
+
* Represents the input description of a media asset for the player.
|
|
1317
1453
|
*
|
|
1454
|
+
* A minimal playable `MediaItem` requires only a source — every other field is optional.
|
|
1318
1455
|
* Additional fields can be supplied to support analytics, monetization, UI enhancements, and other use cases.
|
|
1319
|
-
* In general, the richer the metadata, the more likely the MediaItem can satisfy all integration requirements.
|
|
1456
|
+
* In general, the richer the metadata, the more likely the `MediaItem` can satisfy all integration requirements.
|
|
1457
|
+
*
|
|
1458
|
+
* Alternatively, a {@link MediaItemReference} can be passed to the player instead of a
|
|
1459
|
+
* full `MediaItem`. A reference carries only an `id` and a `provider`, letting the player
|
|
1460
|
+
* resolve the complete media item from that provider by ID.
|
|
1461
|
+
*
|
|
1462
|
+
* When the player processes a `MediaItem` (or a resolved {@link MediaItemReference}) it
|
|
1463
|
+
* produces a {@link MediaItemResolved} — an expanded version where missing fields are
|
|
1464
|
+
* filled with defaults (e.g. `id`, `language`, `aspectRatio`) and additional data is
|
|
1465
|
+
* derived automatically.
|
|
1320
1466
|
*/
|
|
1321
1467
|
export declare interface MediaItem {
|
|
1322
1468
|
/**
|
|
1323
1469
|
* Unique identifier of the media item.
|
|
1324
1470
|
*/
|
|
1325
|
-
id
|
|
1471
|
+
id?: string;
|
|
1326
1472
|
/**
|
|
1327
1473
|
* Additional ids that identify the media item in other systems
|
|
1328
1474
|
*/
|
|
1329
1475
|
additionalIds?: {
|
|
1330
1476
|
originId?: string;
|
|
1331
|
-
originSourceId?: string;
|
|
1332
1477
|
externalId?: string;
|
|
1333
1478
|
};
|
|
1334
1479
|
/**
|
|
1335
1480
|
* Poster image of the media item.
|
|
1336
1481
|
*/
|
|
1337
|
-
poster
|
|
1482
|
+
poster?: string;
|
|
1338
1483
|
/**
|
|
1339
1484
|
* Sources of the media item.
|
|
1340
1485
|
*/
|
|
1341
|
-
sources
|
|
1486
|
+
sources?: MediaSource_2[];
|
|
1342
1487
|
/**
|
|
1343
1488
|
* Array of text tracks for subtitles, captions, etc.
|
|
1344
1489
|
* These tracks apply to the whole media item, not to individual sources.
|
|
@@ -1350,7 +1495,7 @@ export declare interface MediaItem {
|
|
|
1350
1495
|
/**
|
|
1351
1496
|
* Title of the media item.
|
|
1352
1497
|
*/
|
|
1353
|
-
title
|
|
1498
|
+
title?: string;
|
|
1354
1499
|
/**
|
|
1355
1500
|
* Duration of the media item in seconds. Not defined when livestream.
|
|
1356
1501
|
*/
|
|
@@ -1462,19 +1607,10 @@ export declare interface MediaItem {
|
|
|
1462
1607
|
* @defaultValue `['all']` (worldwide)
|
|
1463
1608
|
*/
|
|
1464
1609
|
regionsAllowed?: string[];
|
|
1465
|
-
/**
|
|
1466
|
-
* Will be automatically filled based on {@link minimumAge} and {@link iabCategories}.
|
|
1467
|
-
* @ignore */
|
|
1468
|
-
ppsj?: string;
|
|
1469
1610
|
/**
|
|
1470
1611
|
* Mark this media item as a recommendation.
|
|
1471
1612
|
*/
|
|
1472
1613
|
isRecommendation?: boolean;
|
|
1473
|
-
/**
|
|
1474
|
-
* An internal marker for the used playlist. It is automatically filled.
|
|
1475
|
-
* @ignore
|
|
1476
|
-
*/
|
|
1477
|
-
playlistId?: string;
|
|
1478
1614
|
/**
|
|
1479
1615
|
* JSON-LD `contentUrl` that allows search engines to crawl the media source.
|
|
1480
1616
|
* You should only allow known crawlers ({@link https://developers.google.com/search/docs/crawling-indexing/verifying-googlebot?hl=en how to verify Googlebot & Crawler})
|
|
@@ -1594,11 +1730,6 @@ export declare interface MediaItem {
|
|
|
1594
1730
|
poster?: string;
|
|
1595
1731
|
}[];
|
|
1596
1732
|
};
|
|
1597
|
-
/**
|
|
1598
|
-
* Only relevant for glomex-internal use. Mark it to allow teaser experiments.
|
|
1599
|
-
* @ignore
|
|
1600
|
-
*/
|
|
1601
|
-
allowTeaserExperiments?: boolean;
|
|
1602
1733
|
/**
|
|
1603
1734
|
* An additional API script definition that should be executed for this media-item.
|
|
1604
1735
|
* @ignore
|
|
@@ -1608,10 +1739,6 @@ export declare interface MediaItem {
|
|
|
1608
1739
|
* Indicates the source from which additional metadata was derived (e.g., "joyn").
|
|
1609
1740
|
*/
|
|
1610
1741
|
metadataSource?: string;
|
|
1611
|
-
/**
|
|
1612
|
-
* Indicates the provider of the media item
|
|
1613
|
-
*/
|
|
1614
|
-
provider?: MediaItemProvider;
|
|
1615
1742
|
/**
|
|
1616
1743
|
* Name of actors appearing in the given media item
|
|
1617
1744
|
*
|
|
@@ -1639,14 +1766,18 @@ export declare interface MediaItem {
|
|
|
1639
1766
|
* <script>
|
|
1640
1767
|
* class CustomMediaItemElement extends HTMLElement {
|
|
1641
1768
|
* get data() {
|
|
1642
|
-
* return fetch(`https://api.example.com/media/${this.
|
|
1769
|
+
* return fetch(`https://api.example.com/media/${this.id}`)
|
|
1643
1770
|
* .then(response => response.json())
|
|
1644
1771
|
* .then((body) => ({
|
|
1645
|
-
* id: this.
|
|
1646
|
-
*
|
|
1647
|
-
*
|
|
1648
|
-
*
|
|
1649
|
-
*
|
|
1772
|
+
* id: this.id,
|
|
1773
|
+
* provider: 'external',
|
|
1774
|
+
* item: {
|
|
1775
|
+
* id: this.id,
|
|
1776
|
+
* sources: body.sources,
|
|
1777
|
+
* duration: body.duration,
|
|
1778
|
+
* poster: body.poster,
|
|
1779
|
+
* title: body.title
|
|
1780
|
+
* }
|
|
1650
1781
|
* }));
|
|
1651
1782
|
* }
|
|
1652
1783
|
* }
|
|
@@ -1658,24 +1789,62 @@ export declare interface MediaItem {
|
|
|
1658
1789
|
* <custom-media-item id="API_CONTENT_ID"></custom-media-item>
|
|
1659
1790
|
* </glomex-integration>
|
|
1660
1791
|
* ```
|
|
1792
|
+
*
|
|
1793
|
+
* @example of a custom media item that returns multiple items
|
|
1794
|
+
*
|
|
1795
|
+
* The `data` getter can also return an array of {@link MediaItemReference} objects
|
|
1796
|
+
* to define a playlist from a single element.
|
|
1797
|
+
*
|
|
1798
|
+
* ```html
|
|
1799
|
+
* <script>
|
|
1800
|
+
* class CustomPlaylistElement extends HTMLElement {
|
|
1801
|
+
* get data() {
|
|
1802
|
+
* return fetch(`https://api.example.com/playlist/${this.id}`)
|
|
1803
|
+
* .then(response => response.json())
|
|
1804
|
+
* .then((body) => body.items.map((item) => ({
|
|
1805
|
+
* id: item.id,
|
|
1806
|
+
* provider: 'external',
|
|
1807
|
+
* item: {
|
|
1808
|
+
* id: item.id,
|
|
1809
|
+
* sources: item.sources,
|
|
1810
|
+
* duration: item.duration,
|
|
1811
|
+
* poster: item.poster,
|
|
1812
|
+
* title: item.title
|
|
1813
|
+
* }
|
|
1814
|
+
* })));
|
|
1815
|
+
* }
|
|
1816
|
+
* }
|
|
1817
|
+
* window.customElements.define('custom-playlist', CustomPlaylistElement);
|
|
1818
|
+
* </script>
|
|
1819
|
+
* <glomex-integration
|
|
1820
|
+
* integration-id="REPLACE_WITH_INTEGRATION_ID"
|
|
1821
|
+
* >
|
|
1822
|
+
* <custom-playlist id="API_PLAYLIST_ID"></custom-playlist>
|
|
1823
|
+
* </glomex-integration>
|
|
1824
|
+
* ```
|
|
1661
1825
|
*/
|
|
1662
|
-
export declare
|
|
1663
|
-
|
|
1826
|
+
export declare abstract class MediaItemElement extends HTMLElement {
|
|
1827
|
+
/**
|
|
1828
|
+
* The content ID used by the provider to look up the media item.
|
|
1829
|
+
* For glomex, this can be a media ID or a playlist ID.
|
|
1830
|
+
* For Joyn, this is a Joyn media ID.
|
|
1831
|
+
* @attribute id
|
|
1832
|
+
*/
|
|
1833
|
+
id: string;
|
|
1834
|
+
/**
|
|
1835
|
+
* The environment to use for the provider.
|
|
1836
|
+
* @attribute {stage|prod} environment
|
|
1837
|
+
* @defaultValue 'prod'
|
|
1838
|
+
*/
|
|
1839
|
+
environment?: 'stage' | 'prod';
|
|
1840
|
+
abstract get data(): MediaItemReference | MediaItemReference[] | Promise<MediaItemReference | MediaItemReference[]>;
|
|
1664
1841
|
}
|
|
1665
1842
|
|
|
1666
1843
|
/**
|
|
1667
|
-
*
|
|
1668
|
-
* `name` is set to `MediaItemError` internally.
|
|
1844
|
+
* Error known before the media item gets loaded.
|
|
1669
1845
|
*/
|
|
1670
|
-
export declare
|
|
1671
|
-
|
|
1672
|
-
* @protected
|
|
1673
|
-
*/
|
|
1674
|
-
name?: 'MediaItemError';
|
|
1675
|
-
/** Error code that gets handled by the player */
|
|
1676
|
-
code: MediaItemErrorCode;
|
|
1677
|
-
/** Optional custom error message or code from the source system */
|
|
1678
|
-
message?: string;
|
|
1846
|
+
export declare class MediaItemError extends BaseMediaError<MediaItemErrorCode> {
|
|
1847
|
+
name: string;
|
|
1679
1848
|
}
|
|
1680
1849
|
|
|
1681
1850
|
export declare enum MediaItemErrorCode {
|
|
@@ -1684,6 +1853,7 @@ export declare enum MediaItemErrorCode {
|
|
|
1684
1853
|
GEOBLOCKED = "Geoblocked",
|
|
1685
1854
|
YOUTH_PROTECTED = "YouthProtected",
|
|
1686
1855
|
TERMINATED = "Terminated",
|
|
1856
|
+
EXPIRED = "Expired",
|
|
1687
1857
|
LOGIN_REQUIRED = "LoginRequired",
|
|
1688
1858
|
HIGHER_TIER_ACCOUNT_REQUIRED = "HigherTierAccountRequired",
|
|
1689
1859
|
VPN_DETECTED = "VpnDetected",
|
|
@@ -1702,6 +1872,79 @@ export declare enum MediaItemProvider {
|
|
|
1702
1872
|
EXTERNAL = "external"
|
|
1703
1873
|
}
|
|
1704
1874
|
|
|
1875
|
+
/**
|
|
1876
|
+
* Describes how to fetch a media item from a given provider.
|
|
1877
|
+
*
|
|
1878
|
+
* The provider resolves the media item by its {@link id}. When an {@link item}
|
|
1879
|
+
* is supplied, its properties are merged on top of the fetched result, allowing
|
|
1880
|
+
* callers to override individual fields such as `title` or `poster`.
|
|
1881
|
+
*/
|
|
1882
|
+
export declare interface MediaItemReference {
|
|
1883
|
+
/** Media item ID used by the provider to look up the content. */
|
|
1884
|
+
id: string;
|
|
1885
|
+
/** Provider that is responsible for resolving this media item. */
|
|
1886
|
+
provider: MediaItemProvider | `${MediaItemProvider}`;
|
|
1887
|
+
/**
|
|
1888
|
+
* Target environment for the provider request.
|
|
1889
|
+
* @defaultValue 'prod'
|
|
1890
|
+
*/
|
|
1891
|
+
environment?: 'stage' | 'prod';
|
|
1892
|
+
/**
|
|
1893
|
+
* Optional partial media item whose properties are merged on top of the
|
|
1894
|
+
* data returned by the provider, allowing individual fields to be overridden.
|
|
1895
|
+
*
|
|
1896
|
+
* **Required** when the provider is `external`, since there is no remote
|
|
1897
|
+
* source to fetch the media item from.
|
|
1898
|
+
*/
|
|
1899
|
+
item?: MediaItem;
|
|
1900
|
+
}
|
|
1901
|
+
|
|
1902
|
+
/**
|
|
1903
|
+
* Represents a {@link MediaItem} after it has been resolved by the player.
|
|
1904
|
+
*
|
|
1905
|
+
* When a {@link MediaItem} is passed to the player, it is expanded into a
|
|
1906
|
+
* `MediaItemResolved`: fields that were omitted receive sensible defaults
|
|
1907
|
+
* (e.g. `id`, `language`, `aspectRatio`), and additional fields such as
|
|
1908
|
+
* `originalId`, `provider`, and `ppsj` are derived automatically.
|
|
1909
|
+
*
|
|
1910
|
+
* As a result, several properties that are optional on {@link MediaItem}
|
|
1911
|
+
* become required here.
|
|
1912
|
+
*/
|
|
1913
|
+
export declare interface MediaItemResolved extends Omit<MediaItem, 'id' | 'sources' | 'title' | 'regionsAllowed' | 'aspectRatio' | 'minimumAge' | 'iabCategoryTaxonomy' | 'language'> {
|
|
1914
|
+
id: NonNullable<MediaItem['id']>;
|
|
1915
|
+
sources: NonNullable<MediaItem['sources']>;
|
|
1916
|
+
title: NonNullable<MediaItem['title']>;
|
|
1917
|
+
regionsAllowed: NonNullable<MediaItem['regionsAllowed']>;
|
|
1918
|
+
/**
|
|
1919
|
+
* An internal marker for the used playlist. It is automatically filled.
|
|
1920
|
+
* @ignore
|
|
1921
|
+
*/
|
|
1922
|
+
playlistId: string;
|
|
1923
|
+
aspectRatio: NonNullable<MediaItem['aspectRatio']>;
|
|
1924
|
+
minimumAge: NonNullable<MediaItem['minimumAge']>;
|
|
1925
|
+
iabCategoryTaxonomy: NonNullable<MediaItem['iabCategoryTaxonomy']>;
|
|
1926
|
+
language: NonNullable<MediaItem['language']>;
|
|
1927
|
+
/**
|
|
1928
|
+
* Mark this media item to allow teaser experiments.
|
|
1929
|
+
* @ignore
|
|
1930
|
+
*/
|
|
1931
|
+
allowTeaserExperiments: boolean;
|
|
1932
|
+
/**
|
|
1933
|
+
* Will be automatically filled based on {@link MediaItem#minimumAge} and {@link MediaItem#iabCategories}.
|
|
1934
|
+
* @ignore
|
|
1935
|
+
*/
|
|
1936
|
+
ppsj?: string;
|
|
1937
|
+
/**
|
|
1938
|
+
* The original ID of the media item before any transformations.
|
|
1939
|
+
* It gets automatically generated if not provided.
|
|
1940
|
+
*/
|
|
1941
|
+
originalId: string;
|
|
1942
|
+
/**
|
|
1943
|
+
* Indicates the provider of the media item.
|
|
1944
|
+
*/
|
|
1945
|
+
provider: MediaItemProvider | `${MediaItemProvider}`;
|
|
1946
|
+
}
|
|
1947
|
+
|
|
1705
1948
|
/**
|
|
1706
1949
|
* Text track definition for a media item.
|
|
1707
1950
|
* Based on {@link https://developer.mozilla.org/en-US/docs/Web/API/HTMLTrackElement | HTMLTrackElement}.
|
|
@@ -1738,12 +1981,44 @@ export declare interface MediaItemTextTrack {
|
|
|
1738
1981
|
* Shaka Player network errors have codes in the 1000-1999 range
|
|
1739
1982
|
* while HTMLMediaElement errors with 2 and 4 are considered network errors.
|
|
1740
1983
|
*/
|
|
1741
|
-
export declare
|
|
1742
|
-
name:
|
|
1743
|
-
|
|
1744
|
-
|
|
1745
|
-
|
|
1746
|
-
|
|
1984
|
+
export declare class MediaNetworkError extends BaseMediaError {
|
|
1985
|
+
name: string;
|
|
1986
|
+
}
|
|
1987
|
+
|
|
1988
|
+
/**
|
|
1989
|
+
* Error after loading the media item.
|
|
1990
|
+
*/
|
|
1991
|
+
export declare class MediaPlaybackError extends BaseMediaError {
|
|
1992
|
+
name: string;
|
|
1993
|
+
}
|
|
1994
|
+
|
|
1995
|
+
/**
|
|
1996
|
+
* Context object returned by a media-provider resolver registered via
|
|
1997
|
+
* {@link SharedContextData.providers}.
|
|
1998
|
+
*
|
|
1999
|
+
* Only {@link token} is required. Additional provider-specific fields
|
|
2000
|
+
* (e.g. subscription state, user ID) can be added freely.
|
|
2001
|
+
*/
|
|
2002
|
+
export declare interface MediaProviderContext {
|
|
2003
|
+
/** Authentication token (should be fresh / handle refresh internally). */
|
|
2004
|
+
token: string;
|
|
2005
|
+
/** Any additional provider-specific fields. */
|
|
2006
|
+
[key: string]: unknown;
|
|
2007
|
+
}
|
|
2008
|
+
|
|
2009
|
+
/**
|
|
2010
|
+
* Error while fetching metadata of the media item.
|
|
2011
|
+
*/
|
|
2012
|
+
export declare class MediaProviderError extends BaseMediaError<MediaProviderErrorCode> {
|
|
2013
|
+
name: string;
|
|
2014
|
+
}
|
|
2015
|
+
|
|
2016
|
+
export declare enum MediaProviderErrorCode {
|
|
2017
|
+
NOT_FOUND = "NotFound",
|
|
2018
|
+
FORBIDDEN = "Forbidden",
|
|
2019
|
+
HIDDEN = "Hidden",
|
|
2020
|
+
NO_CONTENT = "NoContent",
|
|
2021
|
+
GENERIC = "Generic"
|
|
1747
2022
|
}
|
|
1748
2023
|
|
|
1749
2024
|
declare type MediaSource_2 = MediaSourceBase | MediaSourceDrm | MediaSourceJoyn | MediaSourceDynamicContent;
|
|
@@ -1845,6 +2120,10 @@ export declare interface MediaSourceJoyn {
|
|
|
1845
2120
|
* Shall the source be observed independent of business model?
|
|
1846
2121
|
*/
|
|
1847
2122
|
forceObserveTermination?: boolean;
|
|
2123
|
+
/**
|
|
2124
|
+
* @ignore
|
|
2125
|
+
*/
|
|
2126
|
+
validUntil?: number;
|
|
1848
2127
|
}
|
|
1849
2128
|
|
|
1850
2129
|
/**
|
|
@@ -1902,14 +2181,17 @@ export declare enum Mimetype {
|
|
|
1902
2181
|
JOYN = "application/x-joyn-source"
|
|
1903
2182
|
}
|
|
1904
2183
|
|
|
1905
|
-
|
|
1906
|
-
|
|
1907
|
-
|
|
1908
|
-
|
|
1909
|
-
|
|
1910
|
-
|
|
1911
|
-
|
|
1912
|
-
|
|
2184
|
+
/**
|
|
2185
|
+
* Normalizes a {@link MediaItem} or {@link MediaItemReference} into a
|
|
2186
|
+
* {@link MediaItemReference}.
|
|
2187
|
+
*
|
|
2188
|
+
* @ignore
|
|
2189
|
+
*
|
|
2190
|
+
* If the input already has a `provider` it is returned as-is.
|
|
2191
|
+
* Otherwise the provider is detected from the media item's sources
|
|
2192
|
+
* (Joyn when a source with {@link Mimetype.JOYN} is present, external otherwise).
|
|
2193
|
+
*/
|
|
2194
|
+
export declare function normalizeMediaItem(input: MediaItemReference | MediaItem): MediaItemReference;
|
|
1913
2195
|
|
|
1914
2196
|
export declare interface Page {
|
|
1915
2197
|
url: string;
|
|
@@ -1943,13 +2225,13 @@ export declare enum PresentationMode {
|
|
|
1943
2225
|
AMP_DOCK = "amp-dock"
|
|
1944
2226
|
}
|
|
1945
2227
|
|
|
1946
|
-
export declare type PresentationModeString = `${PresentationMode}`;
|
|
1947
|
-
|
|
1948
|
-
export declare const PUBLIC_PREFIX = "glomex";
|
|
1949
|
-
|
|
1950
2228
|
export declare enum ScriptType {
|
|
1951
|
-
INTEGRATION_CONFIGS = "application/
|
|
1952
|
-
|
|
2229
|
+
INTEGRATION_CONFIGS = "application/integration-configs+json",
|
|
2230
|
+
/** @deprecated Use {@link ScriptType.INTEGRATION_CONFIGS} instead. */
|
|
2231
|
+
INTEGRATION_CONFIGS_LEGACY = "application/glomex-integration-configs+json",
|
|
2232
|
+
EXTERNAL_MEDIA_ITEM = "application/external-media-item+json",
|
|
2233
|
+
/** @deprecated Use {@link ScriptType.EXTERNAL_MEDIA_ITEM} instead. */
|
|
2234
|
+
EXTERNAL_MEDIA_ITEM_LEGACY = "application/glomex-external-media-item+json"
|
|
1953
2235
|
}
|
|
1954
2236
|
|
|
1955
2237
|
/**
|
|
@@ -1964,6 +2246,195 @@ export declare interface SeekRange {
|
|
|
1964
2246
|
end?: number;
|
|
1965
2247
|
}
|
|
1966
2248
|
|
|
2249
|
+
/**
|
|
2250
|
+
* A global context singleton shared by every `<glomex-integration>` instance
|
|
2251
|
+
* on the page.
|
|
2252
|
+
*
|
|
2253
|
+
* @example JavaScript (dynamic import)
|
|
2254
|
+
* ```ts
|
|
2255
|
+
* const { sharedContext } = await import('https://player.glomex.com/integration/1/integration.js');
|
|
2256
|
+
*
|
|
2257
|
+
* sharedContext.set({
|
|
2258
|
+
* appVersion: '2.3.0',
|
|
2259
|
+
* appName: 'my-app',
|
|
2260
|
+
* deviceId: { id: '...', name: 'idfa' },
|
|
2261
|
+
* userIds: async () => await cmp.getConsentedUserIds(),
|
|
2262
|
+
* providers: {
|
|
2263
|
+
* 'my-provider': async () => ({
|
|
2264
|
+
* token: await myAuth.getFreshToken(),
|
|
2265
|
+
* }),
|
|
2266
|
+
* },
|
|
2267
|
+
* });
|
|
2268
|
+
* ```
|
|
2269
|
+
*
|
|
2270
|
+
* @example React
|
|
2271
|
+
* ```tsx
|
|
2272
|
+
* import { getSharedContext } from '@glomex/integration-react';
|
|
2273
|
+
* import { useEffect } from 'react';
|
|
2274
|
+
*
|
|
2275
|
+
* function App() {
|
|
2276
|
+
* useEffect(() => {
|
|
2277
|
+
* async function setup() {
|
|
2278
|
+
* const sharedContext = await getSharedContext();
|
|
2279
|
+
* sharedContext.set({
|
|
2280
|
+
* appVersion: '2.3.0',
|
|
2281
|
+
* appName: 'my-app',
|
|
2282
|
+
* deviceId: { id: '...', name: 'idfa' },
|
|
2283
|
+
* userIds: async () => await cmp.getConsentedUserIds(),
|
|
2284
|
+
* providers: {
|
|
2285
|
+
* 'my-provider': async () => ({
|
|
2286
|
+
* token: await myAuth.getFreshToken(),
|
|
2287
|
+
* }),
|
|
2288
|
+
* },
|
|
2289
|
+
* });
|
|
2290
|
+
* }
|
|
2291
|
+
* setup();
|
|
2292
|
+
* }, []);
|
|
2293
|
+
* }
|
|
2294
|
+
* ```
|
|
2295
|
+
*/
|
|
2296
|
+
export declare interface SharedContext {
|
|
2297
|
+
/**
|
|
2298
|
+
* Merge context data into the shared context.
|
|
2299
|
+
*
|
|
2300
|
+
* - Provider resolvers under `providers` are merged individually —
|
|
2301
|
+
* only the specified providers are replaced, others are kept.
|
|
2302
|
+
* - Calling `set()` multiple times merges incrementally.
|
|
2303
|
+
*/
|
|
2304
|
+
set(data: SharedContextData): void;
|
|
2305
|
+
}
|
|
2306
|
+
|
|
2307
|
+
/**
|
|
2308
|
+
* Module-level singleton shared by every `<glomex-integration>` instance on
|
|
2309
|
+
* the page.
|
|
2310
|
+
*
|
|
2311
|
+
* Publishers obtain it via dynamic import of `integration.js` to ensure they
|
|
2312
|
+
* get the same singleton instance as the running player:
|
|
2313
|
+
*
|
|
2314
|
+
* ```ts
|
|
2315
|
+
* const { sharedContext } = await import('https://player.glomex.com/integration/1/integration.js');
|
|
2316
|
+
* ```
|
|
2317
|
+
*
|
|
2318
|
+
* When using the React wrapper, use {@link https://www.npmjs.com/package/@glomex/integration-react @glomex/integration-react} instead:
|
|
2319
|
+
*
|
|
2320
|
+
* ```ts
|
|
2321
|
+
* import { getSharedContext } from '@glomex/integration-react';
|
|
2322
|
+
*
|
|
2323
|
+
* const sharedContext = await getSharedContext();
|
|
2324
|
+
* ```
|
|
2325
|
+
*/
|
|
2326
|
+
export declare const sharedContext: SharedContext;
|
|
2327
|
+
|
|
2328
|
+
/**
|
|
2329
|
+
* The data object accepted by {@link SharedContext.set}.
|
|
2330
|
+
*
|
|
2331
|
+
* Every field is optional and merged on top of previously set values.
|
|
2332
|
+
* Calling `set()` multiple times merges incrementally — previously set
|
|
2333
|
+
* values are preserved unless explicitly overwritten.
|
|
2334
|
+
*/
|
|
2335
|
+
export declare interface SharedContextData {
|
|
2336
|
+
/**
|
|
2337
|
+
* The presentational context of the integration.
|
|
2338
|
+
* Do not define it when it is not part of those contexts.
|
|
2339
|
+
*/
|
|
2340
|
+
presentationalContext?: 'curated-list' | 'discovery-page';
|
|
2341
|
+
/**
|
|
2342
|
+
* The version of the app.
|
|
2343
|
+
* When it is a website, fill in the deployed version of the website.
|
|
2344
|
+
*/
|
|
2345
|
+
appVersion?: string;
|
|
2346
|
+
/**
|
|
2347
|
+
* The name of the app.
|
|
2348
|
+
* When it is a website, fill in the name of the project.
|
|
2349
|
+
*/
|
|
2350
|
+
appName?: string;
|
|
2351
|
+
/**
|
|
2352
|
+
* The bundle id of the app. Only required for iOS apps.
|
|
2353
|
+
*/
|
|
2354
|
+
appBundleId?: string;
|
|
2355
|
+
/**
|
|
2356
|
+
* The store id of the app. Only required for apps.
|
|
2357
|
+
* Depending on the app store, the id is formatted differently.
|
|
2358
|
+
*
|
|
2359
|
+
* {@link https://iabtechlab.com/wp-content/uploads/2020/08/IAB-Tech-Lab-OTT-store-assigned-App-Identification-Guidelines-2020.pdf IAB Tech Lab App Identification Guidelines}
|
|
2360
|
+
*/
|
|
2361
|
+
appStoreId?: string;
|
|
2362
|
+
/**
|
|
2363
|
+
* The store URL of the app. Only required for apps.
|
|
2364
|
+
*
|
|
2365
|
+
* {@link https://iabtechlab.com/wp-content/uploads/2020/08/IAB-Tech-Lab-OTT-store-assigned-App-Identification-Guidelines-2020.pdf IAB Tech Lab App Identification Guidelines}
|
|
2366
|
+
*/
|
|
2367
|
+
appStoreUrl?: string;
|
|
2368
|
+
/** Business-to-business context identifier. */
|
|
2369
|
+
b2bContext?: string;
|
|
2370
|
+
/**
|
|
2371
|
+
* Device id of the user. Only required for app environments.
|
|
2372
|
+
* When no listed deviceId is available, you can pass a ppid as a user id instead.
|
|
2373
|
+
*/
|
|
2374
|
+
deviceId?: {
|
|
2375
|
+
id: string;
|
|
2376
|
+
name: DeviceIdName | `${DeviceIdName}`;
|
|
2377
|
+
};
|
|
2378
|
+
/**
|
|
2379
|
+
* Identifiers for the current user (e.g. netID, LiveRamp, PAIR).
|
|
2380
|
+
*
|
|
2381
|
+
* You can pass either a **static array** or a **resolver function**.
|
|
2382
|
+
* A resolver is re-invoked every time the player needs user IDs
|
|
2383
|
+
* (for example before each ad request), so it can return a different
|
|
2384
|
+
* set of IDs when the user's consent state has changed.
|
|
2385
|
+
* The resolver may be asynchronous.
|
|
2386
|
+
*
|
|
2387
|
+
* @example Static array
|
|
2388
|
+
* ```ts
|
|
2389
|
+
* sharedContext.set({
|
|
2390
|
+
* userIds: [{ id: '...', name: 'netId' }],
|
|
2391
|
+
* });
|
|
2392
|
+
* ```
|
|
2393
|
+
*
|
|
2394
|
+
* @example Async resolver (re-evaluated on every ad request)
|
|
2395
|
+
* ```ts
|
|
2396
|
+
* sharedContext.set({
|
|
2397
|
+
* userIds: async () => await cmp.getConsentedUserIds(),
|
|
2398
|
+
* });
|
|
2399
|
+
* ```
|
|
2400
|
+
*/
|
|
2401
|
+
userIds?: {
|
|
2402
|
+
id: string;
|
|
2403
|
+
name: UserIdName | `${UserIdName}`;
|
|
2404
|
+
ext?: Record<string, unknown>;
|
|
2405
|
+
}[] | (() => {
|
|
2406
|
+
id: string;
|
|
2407
|
+
name: UserIdName | `${UserIdName}`;
|
|
2408
|
+
ext?: Record<string, unknown>;
|
|
2409
|
+
}[] | Promise<{
|
|
2410
|
+
id: string;
|
|
2411
|
+
name: UserIdName | `${UserIdName}`;
|
|
2412
|
+
ext?: Record<string, unknown>;
|
|
2413
|
+
}[]>);
|
|
2414
|
+
/**
|
|
2415
|
+
* Media-provider-specific context resolvers keyed by provider name.
|
|
2416
|
+
*
|
|
2417
|
+
* Each resolver is called every time the player needs fresh context for
|
|
2418
|
+
* the given provider (e.g. to obtain a fresh auth token).
|
|
2419
|
+
*
|
|
2420
|
+
* @example
|
|
2421
|
+
* ```ts
|
|
2422
|
+
* sharedContext.set({
|
|
2423
|
+
* providers: {
|
|
2424
|
+
* 'my-provider': async () => ({
|
|
2425
|
+
* token: await myAuth.getFreshToken(),
|
|
2426
|
+
* }),
|
|
2427
|
+
* },
|
|
2428
|
+
* });
|
|
2429
|
+
* ```
|
|
2430
|
+
*/
|
|
2431
|
+
providers?: {
|
|
2432
|
+
[providerName: string]: (context?: {
|
|
2433
|
+
environment?: string;
|
|
2434
|
+
}) => MediaProviderContext | Promise<MediaProviderContext>;
|
|
2435
|
+
};
|
|
2436
|
+
}
|
|
2437
|
+
|
|
1967
2438
|
export declare enum StartMethod {
|
|
1968
2439
|
/** Autoplay occured for above the fold content */
|
|
1969
2440
|
PRE_CLICK = "pre-click-to-play",
|
|
@@ -2021,7 +2492,25 @@ declare interface TextTrackList_2 extends MediaTrackList<TextTrack_2> {
|
|
|
2021
2492
|
}
|
|
2022
2493
|
export { TextTrackList_2 as TextTrackList }
|
|
2023
2494
|
|
|
2024
|
-
|
|
2495
|
+
declare type UiAction = (typeof ALLOWED_UI_ACTIONS)[number];
|
|
2496
|
+
|
|
2497
|
+
/**
|
|
2498
|
+
* Identifier names for user IDs that can be passed via {@link SharedContextData.userIds}.
|
|
2499
|
+
*/
|
|
2500
|
+
export declare enum UserIdName {
|
|
2501
|
+
/** {@link https://netid.de netID} — European login alliance ID */
|
|
2502
|
+
NET_ID = "netId",
|
|
2503
|
+
/** {@link https://7pass.de 7Pass} — ProSiebenSat.1 login ID */
|
|
2504
|
+
SEVEN_PASS_ID = "sevenPassId",
|
|
2505
|
+
/** Publisher Provided ID */
|
|
2506
|
+
PPID = "ppid",
|
|
2507
|
+
/** {@link https://utiq.com Utiq} — telco-based advertising ID */
|
|
2508
|
+
UTIQ_ID = "utiqId",
|
|
2509
|
+
/** {@link https://liveramp.com LiveRamp} — identity resolution ID */
|
|
2510
|
+
LIVERAMP_ID = "liverampId",
|
|
2511
|
+
/** {@link https://developers.google.com/interactive-media-ads/docs/sdks/html5/client-side/pair Google PAIR} — Publisher Advertiser Identity Reconciliation ID */
|
|
2512
|
+
PAIR_ID = "pairId"
|
|
2513
|
+
}
|
|
2025
2514
|
|
|
2026
2515
|
/**
|
|
2027
2516
|
* Represents a video track (quality variant).
|
|
@@ -2089,6 +2578,7 @@ declare global {
|
|
|
2089
2578
|
interface HTMLElementTagNameMap {
|
|
2090
2579
|
[ComponentName.INTEGRATION]: IntegrationElement;
|
|
2091
2580
|
[ComponentName.GLOMEX_MEDIA_ITEM]: GlomexMediaItemElement;
|
|
2581
|
+
[ComponentName.JOYN_MEDIA_ITEM]: JoynMediaItemElement;
|
|
2092
2582
|
[ComponentName.EXTERNAL_MEDIA_ITEM]: ExternalMediaItemElement;
|
|
2093
2583
|
}
|
|
2094
2584
|
interface HTMLElementEventMap extends IntegrationElementEventMap {}
|
package/dist/index.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
(
|
|
1
|
+
function e(e){if("provider"in e)return e;let t=e.sources?.some(e=>e.mimetype===k.JOYN);return{id:e.id||"",provider:t?h.JOYN:h.EXTERNAL,item:e}}(I=S||(S={})).DEFAULT="turbo-integration",I.SCRIPT="turbo-script",I.IFRAME="turbo-iframe",I.FULLPAGE="turbo-fullpage",I.AMP_VIDEO_IFRAME="turbo-amp-video-iframe",I.AMP_IFRAME="turbo-amp-iframe",(T=M||(M={})).INTEGRATION="glomex-integration",T.EXTERNAL_MEDIA_ITEM="external-media-item",T.GLOMEX_MEDIA_ITEM="glomex-media-item",T.JOYN_MEDIA_ITEM="joyn-media-item",(d=g||(g={})).INTEGRATION_CONFIGS="application/integration-configs+json",d.INTEGRATION_CONFIGS_LEGACY="application/glomex-integration-configs+json",d.EXTERNAL_MEDIA_ITEM="application/external-media-item+json",d.EXTERNAL_MEDIA_ITEM_LEGACY="application/glomex-external-media-item+json";let t="turbo-player";(_=U||(U={})).NET_ID="netId",_.SEVEN_PASS_ID="sevenPassId",_.PPID="ppid",_.UTIQ_ID="utiqId",_.LIVERAMP_ID="liverampId",_.PAIR_ID="pairId",(N=G||(G={})).AAID="aaid",N.AFAI="afai",N.ASIA="asia",N.ASID="asid",N.TIFA="tifa",N.VAID="vaid",N.IDFA="idfa",N.IDFV="idfv",N.LGUDID="lgudid",N.MSAI="msai",N.OAID="oaid",N.PSNAI="psnai",N.RIDA="rida",N.VIDA="vida",N.WAID="waid",(A=y||(y={})).HIDDEN="hidden",A.INLINE="inline",A.DOCK="dock",A.LIGHTBOX="lightbox",A.LIGHTBOX_EXTERNAL="lightbox-external",A.FULLSCREEN="fullscreen",A.AMP_DOCK="amp-dock",(s=v||(v={})).READY="ready",s.INTEGRATION_ABORT="integrationabort",s.INTEGRATION_AD_AVAILABLE="integrationadavailable",s.INTEGRATION_PASSBACK="integrationpassback",s.USER_UPDATE_CONSENT="userupdateconsent",s.PLAYLIST_UPDATE="playlistupdate",s.PLAYER_SET_PRESENTATION_MODE="playersetpresentationmode",s.CONTENT_SELECT="contentselect",s.CONTENT_START="contentstart",s.CONTENT_IMPRESSION="contentimpression",s.CONTENT_BUFFERING_START="contentbufferingstart",s.CONTENT_BUFFERING_END="contentbufferingend",s.CONTENT_STOP="contentstop",s.CONTENT_ERROR="contenterror",s.CONTENT_MARKER_REACHED="contentmarkerreached",s.CONTENT_TIME_UPDATE="timeupdate",s.CONTENT_SEEKING="seeking",s.CONTENT_SEEKED="seeked",s.CONTENT_PLAY="play",s.CONTENT_PAUSE="pause",s.CONTENT_VOLUME_CHANGE="volumechange",s.CONTENT_RATECHANGE="ratechange",s.CONTENT_ENDED="ended",s.AD_BREAK_REQUEST="adbreakrequest",s.AD_BREAK_REQUEST_ERROR="adbreakrequesterror",s.AD_LOADED="adloaded",s.AD_IMPRESSION="adimpression",s.AD_BUFFERING_START="adbufferingstart",s.AD_BUFFERING_END="adbufferingend",s.AD_TIME_UPDATE="adtimeupdate",s.AD_VOLUME_CHANGE="advolumechange",s.AD_PAUSED="adpaused",s.AD_RESUMED="adresumed",s.AD_CLICK="adclick",s.AD_SKIPPED="adskipped",s.AD_COMPLETE="adcomplete",s.AD_ERROR="aderror",s.UI_INTERACTION="uiinteraction",(l=F||(F={})).TIME_IN_SECONDS="time",l.PERCENT="percent",l.TIME_IN_SECONDS_RECURRING="timeRecurring",(R=b||(b={})).PREROLL="preroll",R.MIDROLL="midroll",R.POSTROLL="postroll",R.FIRST_QUARTILE="contentFirstQuartile",R.MIDPOINT="contentMidpoint",R.THIRD_QUARTILE="contentThirdQuartile",R.COMPLETE="contentComplete",R.STILL_INTERESTING="stillInteresting",R.REQUEST_RECOMMENDATIONS="requestRecommendations",(c=f||(f={})).NOT_FOUND="NotFound",c.FORBIDDEN="Forbidden",c.HIDDEN="Hidden",c.NO_CONTENT="NoContent",c.GENERIC="Generic",(p=x||(x={})).NOT_FOUND="NotFound",p.NOT_AVAILABLE="NotAvailable",p.GEOBLOCKED="Geoblocked",p.YOUTH_PROTECTED="YouthProtected",p.TERMINATED="Terminated",p.EXPIRED="Expired",p.LOGIN_REQUIRED="LoginRequired",p.HIGHER_TIER_ACCOUNT_REQUIRED="HigherTierAccountRequired",p.VPN_DETECTED="VpnDetected",p.AGE_VERIFICATION_REQUIRED="AgeVerificationRequired",p.PIN_REQUIRED="PinRequired",p.INVALID_PIN="InvalidPin",p.GENERIC="Generic",(O=h||(h={})).GLOMEX="glomex",O.JOYN="joyn",O.EXTERNAL="external",(m=k||(k={})).HLS="application/vnd.apple.mpegurl",m.HLS_LEGACY="application/x-mpegURL",m.DASH="application/dash+xml",m.MP4="video/mp4",m.OGG="video/ogg",m.WEBM="video/webm",m.MP3="audio/mp3",m.AAC="audio/aac",m.WAV="audio/wav",m.OGG_AUDIO="audio/ogg",m.MPEG_AUDIO="audio/mpeg",m.DYNAMIC_CONTENT="application/x-turbo-dynamic-content",m.JOYN="application/x-joyn-source",(D=Y||(Y={})).LIVE="live",D.VOD="vod",D.INTERACTIVE="interactive",D.EMBED="embed",(C=V||(V={})).PREROLL="preroll",C.MIDROLL="midroll",C.POSTROLL="postroll",C.OVERLAY="overlay",(L=B||(B={})).LINEAR="linear",L.OVERLAY="overlay",L.CUTIN="cutin",L.PAUSE="pause",(u=H||(H={})).PRE_CLICK="pre-click-to-play",u.CLICK="click-to-play",u.AUTOPLAY_SCROLL="autoplay-scroll",u.AUTOPLAY_SCROLL_OUT="autoplay-scroll-out",u.CLICK_NEXT="click-to-play-next",u.CLICK_REPLAY="click-to-play-replay",u.AUTOPLAY_NEXT="autoplay-next",(P=X||(X={})).CLEAR_PLAYLIST="clearPlaylist",P.SELECT_PLAYLIST_ITEM="selectPlaylistItem",P.ENDED="ended",P.CONTENT_ERROR="contentError",P.API_STOP="apiStop",P.LIVESTREAM_STOP="livestreamStop",P.PAGE_HIDE="pageHide",P.BEFORE_UNLOAD="beforeUnload";let a="player.glomex.com",n=`https://${a}/integration/1/integration.js`;function o(e){return`https://${a}/variant/${e}/variant.css`}function E(){if(window.customElements.get(M.INTEGRATION))return;let e=document.createElement("script");e.innerText=`import('${n}');`,e.type="module",(document.head||document.body).appendChild(e)}function i(e){if(document.querySelector(`link[href="${o(e)}"]`))return;let t=document.createElement("link");t.rel="stylesheet",t.href=o(e),(document.head||document.body).appendChild(t)}async function r(){await customElements.whenDefined(M.INTEGRATION);let e=customElements.get(M.INTEGRATION);if(!e?.sharedContext)throw Error("sharedContext not available on glomex-integration element");return e.sharedContext}var I,T,d,_,N,A,s,l,R,c,p,O,m,D,C,L,u,P,S,M,g,U,G,y,v,F,b,f,x,h,k,Y,V,B,H,X,K="turbo",w="glomex";export{V as AdBreakName,B as AdFormat,M as ComponentName,X as ContentStopReason,G as DeviceIdName,t as EXTERNAL_PLAYER_NAME,v as IntegrationEvent,b as KnownMarkerName,F as MarkerType,x as MediaItemErrorCode,h as MediaItemProvider,f as MediaProviderErrorCode,k as Mimetype,S as Origin,Y as PlaybackMode,y as PresentationMode,g as ScriptType,H as StartMethod,U as UserIdName,o as getIntegrationCssUrl,r as getSharedContext,E as loadIntegrationComponent,i as loadIntegrationStyles,e as normalizeMediaItem,K as INTERNAL_PREFIX,w as PUBLIC_PREFIX};
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@glomex/integration-web-component",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.1508.0",
|
|
4
4
|
"description": "Web component and types to integrate the glomex player",
|
|
5
5
|
"documentation": "https://docs.glomex.com",
|
|
6
6
|
"homepage": "https://glomex.com",
|
|
@@ -32,7 +32,7 @@
|
|
|
32
32
|
},
|
|
33
33
|
"devDependencies": {
|
|
34
34
|
"@biomejs/biome": "catalog:",
|
|
35
|
-
"@glomex/integration": "1.
|
|
35
|
+
"@glomex/integration": "1.1508.0",
|
|
36
36
|
"@microsoft/api-extractor": "catalog:",
|
|
37
37
|
"@rslib/core": "catalog:",
|
|
38
38
|
"npm-run-all": "catalog:",
|
|
@@ -42,5 +42,5 @@
|
|
|
42
42
|
"access": "public"
|
|
43
43
|
},
|
|
44
44
|
"license": "MIT",
|
|
45
|
-
"gitHead": "
|
|
45
|
+
"gitHead": "9d30ff98e3aad157ef49a62c3db150a9195eb7f8"
|
|
46
46
|
}
|