@hopeplayer/core 1.0.15 → 1.0.17

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 (130) hide show
  1. package/README.md +24 -14
  2. package/dist/HopePlayerElement.d.ts +37 -0
  3. package/dist/HopePlayerElement.d.ts.map +1 -1
  4. package/dist/chunks/adTriggers-4SueRFgK.js +415 -0
  5. package/dist/chunks/adTriggers-4SueRFgK.js.map +1 -0
  6. package/dist/chunks/{index-BCMVXNL0.js → ads-DPL7m9PV.js} +135 -158
  7. package/dist/chunks/ads-DPL7m9PV.js.map +1 -0
  8. package/dist/chunks/{index-BeJNpAyx.js → audio-LkYgd5Wq.js} +7 -7
  9. package/dist/chunks/audio-LkYgd5Wq.js.map +1 -0
  10. package/dist/chunks/{ScratchSound-0XKHUcJK.js → audioScratchSound-7XkwCCDm.js} +1 -1
  11. package/dist/chunks/audioScratchSound-7XkwCCDm.js.map +1 -0
  12. package/dist/chunks/cast-DCAT2agI.js +387 -0
  13. package/dist/chunks/cast-DCAT2agI.js.map +1 -0
  14. package/dist/chunks/{index-rENB3n9O.js → countdownScreen-CI-u6jjA.js} +1 -1
  15. package/dist/chunks/countdownScreen-CI-u6jjA.js.map +1 -0
  16. package/dist/chunks/{index-Q8FMOHj0.js → dai-B9Tth1Iv.js} +1 -1
  17. package/dist/chunks/dai-B9Tth1Iv.js.map +1 -0
  18. package/dist/chunks/{index-DCXX1ZJG.js → debugPanel-Bnc_7GOn.js} +1 -1
  19. package/dist/chunks/debugPanel-Bnc_7GOn.js.map +1 -0
  20. package/dist/chunks/{index-DXWK4EFa.js → dubbing-kNMPpyHl.js} +1 -1
  21. package/dist/chunks/dubbing-kNMPpyHl.js.map +1 -0
  22. package/dist/chunks/{index-BBmuCtKu.js → geoChecker-BRtvHwI-.js} +1 -1
  23. package/dist/chunks/geoChecker-BRtvHwI-.js.map +1 -0
  24. package/dist/chunks/{index-Ca8hocby.js → gesture-BzPCgi87.js} +1 -1
  25. package/dist/chunks/gesture-BzPCgi87.js.map +1 -0
  26. package/dist/chunks/gpt-CGXHTG_H.js +18 -0
  27. package/dist/chunks/gpt-CGXHTG_H.js.map +1 -0
  28. package/dist/chunks/{index-3QALpwsf.js → inViewAutoplay-CRJe7GA4.js} +1 -1
  29. package/dist/chunks/inViewAutoplay-CRJe7GA4.js.map +1 -0
  30. package/dist/chunks/{index-7IBf8Y-R.js → liveWallClock-ChUTtzLD.js} +1 -1
  31. package/dist/chunks/liveWallClock-ChUTtzLD.js.map +1 -0
  32. package/dist/chunks/{index-f0vSgRIK.js → loopSection-CvF4l5uf.js} +1 -1
  33. package/dist/chunks/loopSection-CvF4l5uf.js.map +1 -0
  34. package/dist/chunks/{index-DRlQC-ev.js → markers-DE4O8xbw.js} +2 -2
  35. package/dist/chunks/markers-DE4O8xbw.js.map +1 -0
  36. package/dist/chunks/{index-CaMVTgh0.js → pauseAd-BQQe21X4.js} +55 -68
  37. package/dist/chunks/pauseAd-BQQe21X4.js.map +1 -0
  38. package/dist/chunks/{index-w7pACyTw.js → player-C886oKP-.js} +726 -391
  39. package/dist/chunks/player-C886oKP-.js.map +1 -0
  40. package/dist/chunks/{index-DpUZXNJS.js → playlist-CI3mRZjo.js} +2 -2
  41. package/dist/chunks/playlist-CI3mRZjo.js.map +1 -0
  42. package/dist/chunks/{VideoPrebid-CpckFzSq.js → prebid-CRY3i2OT.js} +1 -1
  43. package/dist/chunks/prebid-CRY3i2OT.js.map +1 -0
  44. package/dist/chunks/{index-DT8-oMPm.js → qrResume-BNy8XCp_.js} +1 -1
  45. package/dist/chunks/qrResume-BNy8XCp_.js.map +1 -0
  46. package/dist/chunks/redirectScreen-CJ3q9OX4.js +208 -0
  47. package/dist/chunks/redirectScreen-CJ3q9OX4.js.map +1 -0
  48. package/dist/chunks/rewardedUnlock-EyGMB9PK.js +264 -0
  49. package/dist/chunks/rewardedUnlock-EyGMB9PK.js.map +1 -0
  50. package/dist/chunks/{index-BOoNcKeR.js → segments-C2HKU6XK.js} +2 -2
  51. package/dist/chunks/segments-C2HKU6XK.js.map +1 -0
  52. package/dist/chunks/{index-D5P-LWbg.js → sponsorship-DyFwGmEb.js} +20 -20
  53. package/dist/chunks/sponsorship-DyFwGmEb.js.map +1 -0
  54. package/dist/chunks/{index-BvoB2O1p.js → spriteThumbnails-D0NQ5CCp.js} +2 -2
  55. package/dist/chunks/spriteThumbnails-D0NQ5CCp.js.map +1 -0
  56. package/dist/chunks/{index-DGtpFgHV.js → statsPanel-DSClIwA3.js} +1 -1
  57. package/dist/chunks/statsPanel-DSClIwA3.js.map +1 -0
  58. package/dist/chunks/{index-CDDke5rz.js → sticky-D_eLCNFk.js} +1 -1
  59. package/dist/chunks/sticky-D_eLCNFk.js.map +1 -0
  60. package/dist/chunks/{index-ClQg_X1N.js → story-D5Got6-6.js} +2 -2
  61. package/dist/chunks/{index-ClQg_X1N.js.map → story-D5Got6-6.js.map} +1 -1
  62. package/dist/chunks/{index-C5oGMHF_.js → tapGestures-DrC42DiI.js} +1 -1
  63. package/dist/chunks/tapGestures-DrC42DiI.js.map +1 -0
  64. package/dist/hls/SourceManager.d.ts +8 -0
  65. package/dist/hls/SourceManager.d.ts.map +1 -1
  66. package/dist/hls/sourceGroups.d.ts +19 -0
  67. package/dist/hls/sourceGroups.d.ts.map +1 -0
  68. package/dist/hope-player.js +1 -1
  69. package/dist/i18n/locales/en.d.ts.map +1 -1
  70. package/dist/i18n/locales/tr.d.ts.map +1 -1
  71. package/dist/i18n/types.d.ts +12 -0
  72. package/dist/i18n/types.d.ts.map +1 -1
  73. package/dist/index.d.ts +1 -1
  74. package/dist/index.d.ts.map +1 -1
  75. package/dist/plugins/ad-triggers/AdTriggers.d.ts +99 -0
  76. package/dist/plugins/ad-triggers/AdTriggers.d.ts.map +1 -0
  77. package/dist/plugins/ad-triggers/index.d.ts +7 -0
  78. package/dist/plugins/ad-triggers/index.d.ts.map +1 -0
  79. package/dist/plugins/ads/AdsController.d.ts +8 -0
  80. package/dist/plugins/ads/AdsController.d.ts.map +1 -1
  81. package/dist/plugins/ads/generateVastUrl.d.ts +10 -0
  82. package/dist/plugins/ads/generateVastUrl.d.ts.map +1 -1
  83. package/dist/plugins/cast/CastController.d.ts +107 -0
  84. package/dist/plugins/cast/CastController.d.ts.map +1 -0
  85. package/dist/plugins/cast/RemoteMediaProxy.d.ts +41 -0
  86. package/dist/plugins/cast/RemoteMediaProxy.d.ts.map +1 -0
  87. package/dist/plugins/cast/castSdk.d.ts +160 -0
  88. package/dist/plugins/cast/castSdk.d.ts.map +1 -0
  89. package/dist/plugins/cast/index.d.ts +7 -0
  90. package/dist/plugins/cast/index.d.ts.map +1 -0
  91. package/dist/plugins/pause-ad/loadGpt.d.ts +2 -0
  92. package/dist/plugins/pause-ad/loadGpt.d.ts.map +1 -1
  93. package/dist/plugins/redirect-screen/RedirectScreen.d.ts +26 -3
  94. package/dist/plugins/redirect-screen/RedirectScreen.d.ts.map +1 -1
  95. package/dist/plugins/rewarded/RewardedUnlock.d.ts +2 -5
  96. package/dist/plugins/rewarded/RewardedUnlock.d.ts.map +1 -1
  97. package/dist/plugins/rewarded/gpt.d.ts +6 -2
  98. package/dist/plugins/rewarded/gpt.d.ts.map +1 -1
  99. package/dist/plugins/sponsorship/SponsorshipLayer.d.ts.map +1 -1
  100. package/dist/types/index.d.ts +308 -3
  101. package/dist/types/index.d.ts.map +1 -1
  102. package/package.json +3 -1
  103. package/dist/chunks/ScratchSound-0XKHUcJK.js.map +0 -1
  104. package/dist/chunks/VideoPrebid-CpckFzSq.js.map +0 -1
  105. package/dist/chunks/index-3QALpwsf.js.map +0 -1
  106. package/dist/chunks/index-7IBf8Y-R.js.map +0 -1
  107. package/dist/chunks/index-BBmuCtKu.js.map +0 -1
  108. package/dist/chunks/index-BCMVXNL0.js.map +0 -1
  109. package/dist/chunks/index-BOoNcKeR.js.map +0 -1
  110. package/dist/chunks/index-BeJNpAyx.js.map +0 -1
  111. package/dist/chunks/index-BvoB2O1p.js.map +0 -1
  112. package/dist/chunks/index-C5oGMHF_.js.map +0 -1
  113. package/dist/chunks/index-CDDke5rz.js.map +0 -1
  114. package/dist/chunks/index-Ca8hocby.js.map +0 -1
  115. package/dist/chunks/index-CaMVTgh0.js.map +0 -1
  116. package/dist/chunks/index-D5P-LWbg.js.map +0 -1
  117. package/dist/chunks/index-D6r-BGAV.js +0 -77
  118. package/dist/chunks/index-D6r-BGAV.js.map +0 -1
  119. package/dist/chunks/index-DCXX1ZJG.js.map +0 -1
  120. package/dist/chunks/index-DGtpFgHV.js.map +0 -1
  121. package/dist/chunks/index-DRlQC-ev.js.map +0 -1
  122. package/dist/chunks/index-DT8-oMPm.js.map +0 -1
  123. package/dist/chunks/index-DXWK4EFa.js.map +0 -1
  124. package/dist/chunks/index-DpUZXNJS.js.map +0 -1
  125. package/dist/chunks/index-Q8FMOHj0.js.map +0 -1
  126. package/dist/chunks/index-TkG8IO6q.js +0 -239
  127. package/dist/chunks/index-TkG8IO6q.js.map +0 -1
  128. package/dist/chunks/index-f0vSgRIK.js.map +0 -1
  129. package/dist/chunks/index-rENB3n9O.js.map +0 -1
  130. package/dist/chunks/index-w7pACyTw.js.map +0 -1
@@ -3,6 +3,8 @@ import type { HopeLocale, HopeLocaleStrings } from '../i18n/types';
3
3
  export type { HopeLocale, HopeLocaleStrings };
4
4
  /** Hazır tema preset'leri — bkz. theme/tailwind.css ve docs/THEMING.md. */
5
5
  export type HopeThemePreset = 'glass-light' | 'glass-dark' | 'neo-dark' | 'mono';
6
+ /** Kaynak biçimi: `hls` (.m3u8), `mp4` ya da dosya uzantısı (`webm`, `mov`, `mp3`…) — bkz. `sourcePriority`. */
7
+ export type HopeSourceFormat = 'hls' | 'mp4' | 'webm' | (string & {});
6
8
  export interface HopeSourceOption {
7
9
  src: string;
8
10
  type?: string;
@@ -60,7 +62,16 @@ export interface PrebidBreakOptions {
60
62
  /** true ise kazanan bid ham CPM yerine cpm * lossFactors[bidder] (yoksa 1) ile seçilir — yalnızca gamAdUnit boşken (direkt VAST modu) etkilidir. */
61
63
  applyLossFactor?: boolean;
62
64
  lossFactors?: Record<string, number>;
65
+ /**
66
+ * GAM isteğine eklenecek ek `cust_params` (key-value) — auction kazanılsa da kazanılmasa da (ya da Prebid yüklenemese,
67
+ * retry'da) GAM reklam birimine gider. JSON: `{ "kategori": "spor", "etiket": ["mac", "ozet"], "sezon": 2026 }` ya da
68
+ * metin: `"kategori=spor&etiket=mac,ozet"`. Aynı anahtar tag'de varsa bu kazanır; `hb_*` anahtarları (Prebid
69
+ * hedeflemesi) ezilemez. `midroll.custParams` genel değerlerle birleşir.
70
+ */
71
+ custParams?: CustParams;
63
72
  }
73
+ /** Ad Manager key-value'ları (`cust_params`): JSON nesnesi (değer metin, sayı, boolean ya da dizi) veya `"k=v&k2=a,b"` metni. */
74
+ export type CustParams = Record<string, string | number | boolean | Array<string | number>> | string;
64
75
  export interface PrebidOptions extends PrebidBreakOptions {
65
76
  /** pbjs.setConfig({consentManagement}) içine birebir aktarılır — auction'dan önce, en fazla bir kez. */
66
77
  consentManagement?: {
@@ -203,7 +214,10 @@ export type RewardedProvider =
203
214
  /** Kendi reklam sisteminiz: reklamı gösterip sonucu döndürün. */
204
215
  | {
205
216
  type: 'custom';
206
- show: () => Promise<RewardedResult | boolean>;
217
+ /** `signal`: kullanıcı reklam hazırlanırken "Vazgeç" derse iptal edilir — reklamınızı durdurabilirsiniz. */
218
+ show: (ctx: {
219
+ signal: AbortSignal;
220
+ }) => Promise<RewardedResult | boolean>;
207
221
  };
208
222
  /**
209
223
  * Ödüllü reklamla kalite kilidi: video düşük kalitede başlar; kullanıcı açıkça kabul edip bir reklam izlerse yüksek
@@ -221,7 +235,11 @@ export interface RewardedUnlockOptions {
221
235
  unlockFor?: 'video' | 'session' | number;
222
236
  /** Video üzerinde "Yüksek kaliteyi aç" butonu. Varsayılan true. Kapalıysa kilit yalnızca ayarlar menüsünden açılır. */
223
237
  button?: boolean;
224
- /** Reklam yoksa (no fill) kilidi yine de aç. Varsayılan false. */
238
+ /**
239
+ * Reklam gelmezse (boş yanıt, hata, engelleyici, zaman aşımı) kilidi yine de aç — "şu an reklam yoktu" bildirimiyle.
240
+ * Varsayılan true: reklam sistemindeki bir sorun kullanıcıyı düşük kaliteye mahkûm etmesin. `false`: "reklam yok"
241
+ * bilgisi gösterilir, kilit kapalı kalır. Kullanıcı kendisi vazgeçerse kilit hiçbir durumda açılmaz.
242
+ */
225
243
  grantOnNoFill?: boolean;
226
244
  /** Tarayıcı deposundaki anahtar (birden fazla site / kanal için ayırmak isterseniz). Varsayılan 'hope-rewarded-unlock'. */
227
245
  storageKey?: string;
@@ -296,6 +314,197 @@ export interface SponsorshipOptions {
296
314
  /** İstek zaman aşımı (ms). Varsayılan 5000. */
297
315
  timeoutMs?: number;
298
316
  }
317
+ /**
318
+ * Reklam tetikleyicisi: ne zaman bir Ad Manager (DFP) out-of-page reklamının isteneceği. `delay` (sn): olaydan bu kadar
319
+ * sonra — o ana kadar koşul bozulursa (ör. tam ekrandan çıkıldı, oynatma devam etti) iptal.
320
+ */
321
+ export type AdTrigger =
322
+ /** İçerikte belirli saniyeler (VOD); canlıda gerçek izleme süresi. Doğal ilerlemede tetiklenir — ileri sarınca atlanır. */
323
+ {
324
+ type: 'time';
325
+ at: number[];
326
+ }
327
+ /** Her N sn gerçek izlemede (duraklatma, arka plan sekme ve reklam sayılmaz). İlki `startAfter` sn sonra (varsayılan `every`). */
328
+ | {
329
+ type: 'interval';
330
+ every: number;
331
+ startAfter?: number;
332
+ }
333
+ /** İçeriğin yüzdesi (1–99), yalnızca VOD. */
334
+ | {
335
+ type: 'percent';
336
+ at: number[];
337
+ }
338
+ /** Tam ekrana her girişte. */
339
+ | {
340
+ type: 'fullscreen';
341
+ delay?: number;
342
+ }
343
+ /** Tam ekrandan her çıkışta. */
344
+ | {
345
+ type: 'fullscreenExit';
346
+ delay?: number;
347
+ }
348
+ /** İçerik ilk kez oynamaya başlayınca. */
349
+ | {
350
+ type: 'start';
351
+ delay?: number;
352
+ }
353
+ /** Kullanıcı duraklatınca (hâlâ duraklatılmışsa). */
354
+ | {
355
+ type: 'pause';
356
+ delay?: number;
357
+ }
358
+ /** Duraklatmadan sonra devam edince. */
359
+ | {
360
+ type: 'resume';
361
+ delay?: number;
362
+ }
363
+ /** İçerik bitince. */
364
+ | {
365
+ type: 'ended';
366
+ delay?: number;
367
+ };
368
+ /** Ad Manager key-value'ları: JSON nesnesi (değer metin, sayı, boolean ya da dizi) veya `"k=v&k2=a,b"` metni. */
369
+ export type AdTriggerCustParams = CustParams;
370
+ export type AdTriggerLayout = 'none' | 'full' | 'center' | 'top' | 'bottom' | 'top-left' | 'top-right' | 'bottom-left' | 'bottom-right';
371
+ /** Tek bir reklam kuralı: hangi reklam birimi, hangi olaylarda, nasıl gösterilsin. */
372
+ export interface AdTriggerRule {
373
+ /** Kural kimliği — olaylarda ve `hp_rule` hedeflemesinde. */
374
+ id?: string;
375
+ /** Ad Manager reklam birimi yolu, ör. '/1234567/video_oop'. Out-of-page slot olarak istenir; içeriği Ad Manager'da ne doldurulursa o. */
376
+ adUnitPath: string;
377
+ /** 'any' (varsayılan): her durumda. 'fullscreen': yalnızca tam ekrandayken. 'normal': yalnızca tam ekran değilken. */
378
+ mode?: 'any' | 'normal' | 'fullscreen';
379
+ triggers: AdTrigger[];
380
+ /** Slot hedeflemesi (key-value). Player ayrıca `hp_trigger`, `hp_mode`, `hp_rule` ekler. */
381
+ targeting?: Record<string, string | string[]>;
382
+ /**
383
+ * DFP isteğinin `cust_params` (key-value) değerleri — JSON: `{ "kategori": "spor", "etiket": ["mac", "ozet"], "sezon": 2026 }`
384
+ * ya da metin: `"kategori=spor&etiket=mac,ozet"`. API yanıtında `cust_params` adıyla da yazılabilir. `targeting`'i ezer.
385
+ */
386
+ custParams?: AdTriggerCustParams;
387
+ /**
388
+ * Reklam kutusunun player içindeki yeri. 'none' (varsayılan): player yalnızca out-of-page isteğini atar ve kreatifi
389
+ * player içine yerleştirir — kutu, etiket, kapat butonu, karartma yok; görünüm ve kapanış kreatifin kendi kodunda
390
+ * (kapatmak için `player.closeAdTrigger()`). 'full': tüm video alanı; diğerleri o köşede/kenarda bir kutu.
391
+ */
392
+ layout?: AdTriggerLayout;
393
+ /** Kutu boyutu [genişlik, yükseklik] px ('full' dışı) — sığmazsa oranı korunarak küçülür. Verilmezse reklamın kendi boyutu. */
394
+ size?: [number, number];
395
+ /** Arkayı karart ('none' dışı). Varsayılan false ('full' düzende true). */
396
+ backdrop?: boolean;
397
+ /** Reklam görünürken içeriği duraklat, kapanınca devam et. Varsayılan false. */
398
+ pauseContent?: boolean;
399
+ /** Kapat (X) butonu ('none' dışı). Varsayılan true. */
400
+ closeButton?: boolean;
401
+ /** Kapat butonu kaç sn sonra görünsün. Varsayılan 0. */
402
+ closeDelay?: number;
403
+ /** Kaç sn sonra kendiliğinden kapansın. Verilmezse kullanıcı kapatana / koşul bozulana kadar. */
404
+ duration?: number;
405
+ /** Kutunun üstündeki "Reklam" etiketi ('none' dışı) — metin ya da `false` (gizle). */
406
+ label?: string | false;
407
+ /** Video başına en fazla kaç gösterim (dolu gelenler). */
408
+ maxShows?: number;
409
+ /** Bu kuralın iki gösterimi arasındaki en az süre (sn). */
410
+ minGapSeconds?: number;
411
+ /** Player bu genişlikten (px) darsa istenmez. */
412
+ minPlayerWidth?: number;
413
+ /** Takip pikselleri (GET). */
414
+ tracking?: {
415
+ impression?: string[];
416
+ close?: string[];
417
+ empty?: string[];
418
+ };
419
+ }
420
+ /** Reklam tetikleyici API'sinin döndürdüğü yapı. */
421
+ export interface AdTriggersConfig {
422
+ /** false ya da yoksa modül kapalı. */
423
+ active: boolean;
424
+ id?: string;
425
+ /** Geçerlilik aralığı (ISO 8601). */
426
+ validFrom?: string;
427
+ validUntil?: string;
428
+ /** Herhangi iki reklam arasındaki en az süre (sn), tüm kurallar için. Varsayılan 30. */
429
+ minGapSeconds?: number;
430
+ rules: AdTriggerRule[];
431
+ }
432
+ /**
433
+ * Reklam tetikleyici: kurallar sizin API'nizden (`endpoint` + `params`) ya da doğrudan `config` ile gelir; belirlenen
434
+ * anlarda (saniye, aralık, yüzde, tam ekrana giriş, duraklatma…) Ad Manager out-of-page reklamı istenip player içinde
435
+ * gösterilir — tam ekranda da.
436
+ */
437
+ export interface AdTriggersOptions {
438
+ /** JSON (AdTriggersConfig) döndüren adres (GET). */
439
+ endpoint?: string;
440
+ /** Adrese eklenecek sorgu parametreleri. */
441
+ params?: Record<string, string>;
442
+ fetchInit?: RequestInit;
443
+ /** API yerine doğrudan kurallar (ya da endpoint'e ulaşılamazsa kullanılacak varsayılan). */
444
+ config?: AdTriggersConfig;
445
+ /** Kuralları periyodik yeniden çek (sn, en az 10). */
446
+ refreshSeconds?: number;
447
+ /** API isteği zaman aşımı (ms). Varsayılan 5000. */
448
+ timeoutMs?: number;
449
+ /** GPT yükleme + reklam yanıtı için en fazla bekleme (ms) — aşılırsa boş sayılır. Varsayılan 8000. */
450
+ renderTimeoutMs?: number;
451
+ /** Tüm slotlara eklenecek hedefleme (ör. içerik kimliği, kategori). */
452
+ targeting?: Record<string, string | string[]>;
453
+ /** Tüm isteklere eklenecek `cust_params` (sayfa / içerik bilgisi) — kuralın kendi `custParams`'ı aynı anahtarı ezer. */
454
+ custParams?: AdTriggerCustParams;
455
+ }
456
+ /** TV'ye gönderilecek kaynak: adres ya da adres + MIME türü. */
457
+ export type CastSource = string | {
458
+ src: string;
459
+ type?: string;
460
+ };
461
+ /**
462
+ * TV'ye yayın (Google Cast / AirPlay). Hepsi varsayılan olarak kapalı — açtığınız yollar kontrol çubuğuna buton
463
+ * olarak gelir; buton yalnızca yakında uygun bir cihaz varken görünür.
464
+ */
465
+ export interface CastOptions {
466
+ /**
467
+ * Google Cast: Chromecast, Google TV, Android TV ve Cast destekli TV'ler. Chrome / Edge (masaüstü ve Android),
468
+ * yalnızca HTTPS. Cast SDK yalnızca bu açıksa ve tarayıcı destekliyorsa yüklenir. Varsayılan false.
469
+ */
470
+ chromecast?: boolean;
471
+ /** AirPlay: Safari (iPhone, iPad, Mac) → Apple TV / AirPlay destekli TV. Varsayılan false. */
472
+ airplay?: boolean;
473
+ /**
474
+ * Tarayıcının kendi "cihaza yayınla" seçicisi (Remote Playback API) — Cast SDK'sız Android Chrome gibi durumlar için.
475
+ * Yalnızca doğrudan adresli kaynaklarda (MP4 vb., hls.js değil). Varsayılan false.
476
+ */
477
+ remotePlayback?: boolean;
478
+ /** Cast receiver uygulama kimliği. Varsayılan Google'ın Default Media Receiver'ı ('CC1AD845'). */
479
+ receiverAppId?: string;
480
+ /**
481
+ * TV'ye gönderilecek ayrı kaynak (ör. TV'ye özel imzalı adres). Fonksiyon o an çalan kaynağı alır.
482
+ * Verilmezse çalan kaynak gönderilir (TV adrese erişebilmeli; HLS için CORS gerekir).
483
+ */
484
+ source?: CastSource | ((current: {
485
+ src: string;
486
+ type?: string;
487
+ }) => CastSource);
488
+ /** TV ekranında gösterilecek bilgiler. Verilmezse ses modunun başlık / sanatçı / kapağı ya da `poster`. */
489
+ metadata?: {
490
+ title?: string;
491
+ subtitle?: string;
492
+ image?: string;
493
+ };
494
+ /**
495
+ * TV'de reklam (Google Cast). true (varsayılan): `ads` seçeneğindeki VMAP ya da preroll / midroll / postroll
496
+ * VAST tag'leri receiver'a gönderilir, reklamları TV oynatır. false: reklamsız. Nesne: TV'ye özel tag'ler.
497
+ */
498
+ ads?: boolean | {
499
+ vmap?: string;
500
+ preroll?: string;
501
+ midroll?: string;
502
+ midrollIntervalSeconds?: number;
503
+ postroll?: string;
504
+ };
505
+ /** HLS segment biçimi (receiver bunu tahmin edemez): 'ts' (varsayılan) ya da 'fmp4'. */
506
+ hlsSegmentFormat?: 'ts' | 'fmp4';
507
+ }
299
508
  export interface AudioOptions {
300
509
  /** Kapak görseli. Verilmezse `poster` kullanılır; o da yoksa temanın renkleriyle düz bir zemin. */
301
510
  cover?: string;
@@ -518,14 +727,40 @@ export interface RedirectScreenSuggestion {
518
727
  url: string;
519
728
  title: string;
520
729
  image: string;
730
+ /** Görselin üstündeki süre rozeti, ör. "12:34". */
731
+ duration?: string;
521
732
  }
733
+ export type RedirectCardPosition = 'bottom-right' | 'bottom-left' | 'top-right' | 'top-left';
522
734
  export interface RedirectScreenOptions {
523
735
  enabled?: boolean;
736
+ /** 'screen' modunda video bittikten sonraki geri sayım (sn). */
524
737
  time: number;
738
+ /** Sıradaki videonun başlığı. */
525
739
  title?: string;
740
+ /** Sıradaki videonun görseli (16:9 önerilir). */
526
741
  image?: string;
742
+ /** Yönlendirilecek adres. */
527
743
  url: string;
744
+ /** İptal edilince (ya da 'card' modunda iptalden sonra video bitince) gösterilecek öneriler. */
528
745
  suggestions?: RedirectScreenSuggestion[];
746
+ /**
747
+ * 'screen' (varsayılan): video bitince tam alan "Sıradaki video" ekranı + `time` sn geri sayım.
748
+ * 'card': video bitmeden `showBefore` sn kala köşede küçük "Sıradaki" kartı; geri sayım videoyla birlikte işler,
749
+ * video bitince yönlendirilir. Karta tıklayınca hemen gidilir, X ile iptal edilir.
750
+ */
751
+ mode?: 'screen' | 'card';
752
+ /** 'card' modunda bitişe kaç sn kala kart görünsün. Varsayılan 10. */
753
+ showBefore?: number;
754
+ /** 'card' modunda kartın köşesi. Varsayılan 'bottom-right'. */
755
+ position?: RedirectCardPosition;
756
+ /** Üst etiket, ör. "Sıradaki" / "Şimdi izle". Verilmezse dil dosyasından. */
757
+ label?: string;
758
+ /** Başlığın altındaki kısa metin (kanal, kategori…). */
759
+ subtitle?: string;
760
+ /** Görselin üstündeki süre rozeti, ör. "12:34". */
761
+ duration?: string;
762
+ /** Yeni sekmede aç. Varsayılan false (aynı sekmede). */
763
+ newTab?: boolean;
529
764
  }
530
765
  /** `options.hls` — HLS (.m3u8) oynatma ayarları. */
531
766
  export interface HopeHlsOptions {
@@ -615,8 +850,17 @@ export interface HopePlayerOptions {
615
850
  id?: string;
616
851
  /** Tek kaynak — sources verilmemişse kullanılır. .m3u8 ise otomatik HLS. */
617
852
  src?: string;
618
- /** Birden fazla kalite/kaynak — doluysa kalite menüsü gösterilir. */
853
+ /**
854
+ * Birden fazla kalite/kaynak — doluysa kalite menüsü gösterilir. Farklı biçimler (ör. bir HLS + MP4 kaliteleri)
855
+ * biçime göre gruplanır: bir grup çalınır ve menüde yalnızca onun kaliteleri görünür; grup ölümcül hata verirse
856
+ * (yüklenemedi, desteklenmiyor, yayın koptu) konum korunarak sıradaki gruba geçilir. Sıra: `sourcePriority`.
857
+ */
619
858
  sources?: HopeSourceOption[];
859
+ /**
860
+ * Biçim grupları hangi sırayla denensin, ör. `['hls', 'mp4']`. Verilmezse listede ilk görünme sırası.
861
+ * Listede olmayan biçimler sona eklenir. Tarayıcının hiç oynatamadığı biçim (ör. Safari'de webm) atlanır.
862
+ */
863
+ sourcePriority?: HopeSourceFormat[];
620
864
  poster?: string;
621
865
  /**
622
866
  * Ses modu: video alanında kapak, plak ve başlık; tam ekran / PiP butonları gizlenir, kontroller hep görünür kalır.
@@ -663,6 +907,10 @@ export interface HopePlayerOptions {
663
907
  rewardedUnlock?: RewardedUnlockOptions;
664
908
  /** Sponsorluk katmanı (renkler, logo, giriş) — ayarları sizin API'nizden alır. */
665
909
  sponsorship?: SponsorshipOptions;
910
+ /** Kurallara göre (saniye, tam ekrana giriş, duraklatma…) tetiklenen Ad Manager out-of-page reklamları — bkz. AdTriggersOptions. */
911
+ adTriggers?: AdTriggersOptions;
912
+ /** TV'ye yayın: Google Cast (Chromecast) ve AirPlay — varsayılan kapalı, bkz. CastOptions. */
913
+ cast?: CastOptions;
666
914
  /** Süre göstergesinde kalan süreyi (-0:10 / 0:15) gösterme. Varsayılan false (geçen süre). */
667
915
  showRemainingTime?: boolean;
668
916
  /** Oynat butonunun yanında geri/ileri sarma butonları. `true` = 10 sn geri + 10 sn ileri. Varsayılan kapalı. */
@@ -756,6 +1004,16 @@ export type HopePlayerEventMap = {
756
1004
  'hp:qualitychange': CustomEvent<{
757
1005
  label: string;
758
1006
  }>;
1007
+ /**
1008
+ * Kaynak grubu değişti: `from` grubu ölümcül hata verdi (ya da tarayıcı oynatamıyor) ve `to` grubuna geçildi.
1009
+ * `code`: MediaError kodu (2 ağ, 3 çözümleme, 4 desteklenmiyor); `skipped`: denenmeden atlandı (desteklenmiyor).
1010
+ */
1011
+ 'hp:sourcefallback': CustomEvent<{
1012
+ from: HopeSourceFormat;
1013
+ to: HopeSourceFormat;
1014
+ code?: number;
1015
+ skipped?: boolean;
1016
+ }>;
759
1017
  'hp:ratechange': CustomEvent<{
760
1018
  rate: number;
761
1019
  }>;
@@ -787,6 +1045,53 @@ export type HopePlayerEventMap = {
787
1045
  sticky: boolean;
788
1046
  corner?: StickyCorner;
789
1047
  }>;
1048
+ /**
1049
+ * TV yayın durumu değişti. `state`: available (cihaz var), unavailable, connecting, connected, disconnected.
1050
+ * `via`: chromecast | airplay | remote. `device`: cihaz adı (Cast).
1051
+ */
1052
+ 'hp:cast': CustomEvent<{
1053
+ state: 'available' | 'unavailable' | 'connecting' | 'connected' | 'disconnected';
1054
+ via: 'chromecast' | 'airplay' | 'remote';
1055
+ device?: string;
1056
+ }>;
1057
+ /** Reklam tetikleyici kuralları yüklendi (null = kapalı). */
1058
+ 'hp:adtriggers': CustomEvent<{
1059
+ config: AdTriggersConfig | null;
1060
+ }>;
1061
+ /** Tetikleyici reklamı doldu ve gösterildi. */
1062
+ /** `custParams`: isteğe giden tüm key-value'lar (sayfa + kural + hp_*). */
1063
+ 'hp:adtriggershow': CustomEvent<{
1064
+ rule?: string;
1065
+ trigger: AdTrigger['type'];
1066
+ adUnitPath: string;
1067
+ fullscreen: boolean;
1068
+ custParams: Record<string, string | string[]>;
1069
+ }>;
1070
+ /** Reklam boş döndü, hata verdi ya da zaman aşımına uğradı. */
1071
+ 'hp:adtriggerempty': CustomEvent<{
1072
+ rule?: string;
1073
+ trigger: AdTrigger['type'];
1074
+ adUnitPath: string;
1075
+ }>;
1076
+ /**
1077
+ * Reklam kapandı — `reason`: user (X ya da `closeAdTrigger()`), timeout (duration), mode (tam ekran durumu değişti),
1078
+ * ad (video reklamı başladı), content (içerik değişti), replaced ('none' reklamı yeni tetiklemeyle değişti).
1079
+ */
1080
+ 'hp:adtriggerclose': CustomEvent<{
1081
+ rule?: string;
1082
+ reason: 'user' | 'timeout' | 'mode' | 'ad' | 'content' | 'replaced';
1083
+ }>;
1084
+ /**
1085
+ * Yönlendirme ekranı / kartı. `shown`: göründü (`mode`), `cancel`: kullanıcı iptal etti, `redirect`: yönlendirilecek
1086
+ * (`reason`: auto | click). `redirect` olayı iptal edilebilir — `preventDefault()` ile sayfa değişmez, yönlendirmeyi
1087
+ * kendiniz yaparsınız (ör. SPA router, playlist).
1088
+ */
1089
+ 'hp:redirect': CustomEvent<{
1090
+ state: 'shown' | 'cancel' | 'redirect';
1091
+ url: string;
1092
+ mode: 'screen' | 'card';
1093
+ reason?: 'auto' | 'click';
1094
+ }>;
790
1095
  'hp:pausead': CustomEvent<{
791
1096
  state: 'shown' | 'hidden' | 'empty';
792
1097
  size?: [number, number];
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/types/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/types/index.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,7 +1,8 @@
1
1
  {
2
2
  "name": "@hopeplayer/core",
3
- "version": "1.0.15",
3
+ "version": "1.0.17",
4
4
  "description": "HopePlayer core — dependency-free <hope-player> custom element (Shadow DOM + Tailwind)",
5
+ "keywords": ["video-player", "video", "player", "html5-video", "hls", "m3u8", "web-component", "custom-element", "ima", "vast", "vmap", "prebid", "ads", "monetization", "chromecast", "airplay", "subtitles", "shadow-dom", "audio-player", "live-streaming", "scte-35", "dai", "om-sdk", "rewarded-ads", "sprite-thumbnails", "typescript", "hopeplayer"],
5
6
  "repository": {
6
7
  "type": "git",
7
8
  "url": "git+https://github.com/umutyaldiz/hopecoreplayer.git",
@@ -37,6 +38,7 @@
37
38
  "dev": "vite build --watch",
38
39
  "icons:build": "node scripts/build-icons.mjs",
39
40
  "build": "vite build && tsc -p tsconfig.json --emitDeclarationOnly --outDir dist",
41
+ "size": "node scripts/check-size.mjs",
40
42
  "typecheck": "tsc -p tsconfig.json --noEmit"
41
43
  },
42
44
  "dependencies": {
@@ -1 +0,0 @@
1
- {"version":3,"file":"ScratchSound-0XKHUcJK.js","sources":["../../src/plugins/audio/ScratchSound.ts"],"sourcesContent":["/**\n * Plak scratch sesi (options.audio.vinyl.scratchSound). `<audio>/<video>` geriye çalamaz ve sarma sırasında ses vermez;\n * bu yüzden scratch boyunca ses Web Audio ile üretilir: dosya bir kez ham sese çözülür, bir AudioWorklet bu sesi\n * parmağın gösterdiği konuma doğru (ileri / geri, yavaş / hızlı) okur — parmak durunca okuma da durur, ses kesilir.\n *\n * Konum güdümlü: işlemciye hız değil hedef konum verilir; okuma kafası hedefe kısa bir gecikmeyle (yay gibi) yaklaşır.\n * Böylece ses ile plağın açısı hiçbir zaman birbirinden kaymaz ve hız değişimleri yumuşak duyulur.\n *\n * Desteklenmeyen durumlarda (HLS / MediaSource, çok uzun dosya, CORS izni yok, AudioWorklet yok) `prepare()` false\n * döner ve scratch eskisi gibi sessiz çalışır.\n */\n\n/** Bundan uzun dosyalar çözülmez — çözülmüş ses dakikada ~10 MB yer kaplar. */\nexport const SCRATCH_SOUND_MAX_SECONDS = 15 * 60;\nconst FADE_SECONDS = 0.015;\n\nconst WORKLET_SOURCE = `\nclass HopeScratchProcessor extends AudioWorkletProcessor {\n constructor() {\n super();\n this.channels = null;\n this.length = 0;\n this.ratio = 1;\n this.pos = 0;\n this.target = 0;\n this.rate = 0;\n this.active = false;\n this.blocks = 0;\n this.port.onmessage = (e) => {\n const d = e.data;\n if (d.type === 'buffer') {\n this.channels = d.channels;\n this.length = d.channels[0].length;\n this.ratio = d.sampleRate / sampleRate;\n } else if (d.type === 'start') {\n this.pos = this.target = d.position * (this.ratio * sampleRate);\n this.rate = 0;\n this.active = true;\n } else if (d.type === 'target') {\n this.target = Math.max(0, Math.min(this.length - 1, d.position * (this.ratio * sampleRate)));\n } else if (d.type === 'stop') {\n this.active = false;\n }\n };\n }\n process(inputs, outputs) {\n const out = outputs[0];\n const frames = out[0].length;\n if (!this.active || !this.channels) {\n for (const ch of out) ch.fill(0);\n return true;\n }\n const src = this.channels;\n const last = this.length - 1;\n // Okuma kafası hedefe ~25 ms'lik bir gecikmeyle yaklaşır; hız değişimi ~5 ms'de yumuşatılır.\n const lag = 0.025 * sampleRate;\n const smooth = 1 / (0.005 * sampleRate);\n const maxRate = 8 * this.ratio;\n for (let i = 0; i < frames; i++) {\n let want = (this.target - this.pos) / lag;\n if (want > maxRate) want = maxRate;\n else if (want < -maxRate) want = -maxRate;\n this.rate += (want - this.rate) * smooth;\n const p = this.pos;\n const i0 = p | 0;\n const f = p - i0;\n const i1 = i0 < last ? i0 + 1 : last;\n for (let c = 0; c < out.length; c++) {\n const ch = src[c < src.length ? c : src.length - 1];\n out[c][i] = ch[i0] + (ch[i1] - ch[i0]) * f;\n }\n let next = p + this.rate;\n if (next < 0) next = 0;\n else if (next > last) next = last;\n this.pos = next;\n }\n if (++this.blocks % 8 === 0) this.port.postMessage({ type: 'position', position: this.pos / (this.ratio * sampleRate) });\n return true;\n }\n}\nregisterProcessor('hope-scratch', HopeScratchProcessor);\n`;\n\ntype State = 'idle' | 'loading' | 'ready' | 'unsupported';\n\nexport class ScratchSound {\n private ctx: AudioContext | null = null;\n private node: AudioWorkletNode | null = null;\n private gain: GainNode | null = null;\n private loadedSrc = '';\n private loading: Promise<boolean> | null = null;\n private unsupportedSrc = '';\n private playing = false;\n /** İşlemcinin bildirdiği son okuma konumu (sn) — teşhis / test için. */\n lastPosition = 0;\n onStateChange: ((state: State) => void) | null = null;\n\n constructor(private readonly video: HTMLMediaElement) {}\n\n static isSupported(): boolean {\n return typeof AudioContext !== 'undefined' && typeof AudioWorkletNode !== 'undefined' && 'audioWorklet' in AudioContext.prototype;\n }\n\n /** Şu anki kaynak hazır mı (çözüldü + işlemci kuruldu)? */\n get ready(): boolean {\n return !!this.node && this.loadedSrc === this.currentSrc();\n }\n\n private currentSrc(): string {\n return this.video.currentSrc || '';\n }\n\n /**\n * Kaynağı çözer ve işlemciyi kurar (kaynak başına bir kez). Kullanıcı etkileşimi gerektirmez — çalma başlayınca\n * boşta çağrılır ki ilk scratch'te gecikme olmasın.\n */\n prepare(): Promise<boolean> {\n const src = this.currentSrc();\n if (this.ready) return Promise.resolve(true);\n if (!src || src === this.unsupportedSrc) return Promise.resolve(false);\n if (this.loading) return this.loading;\n this.loading = this.load(src)\n .then((ok) => {\n if (!ok) this.unsupportedSrc = src;\n this.onStateChange?.(ok ? 'ready' : 'unsupported');\n return ok;\n })\n .finally(() => {\n this.loading = null;\n });\n this.onStateChange?.('loading');\n return this.loading;\n }\n\n private async load(src: string): Promise<boolean> {\n // HLS (MediaSource / blob:) parça parça gelir — tek dosya olarak çözülemez.\n if (!ScratchSound.isSupported() || src.startsWith('blob:') || /\\.m3u8(\\?|#|$)/i.test(src)) return false;\n const duration = this.video.duration;\n if (!Number.isFinite(duration) || duration <= 0 || duration > SCRATCH_SOUND_MAX_SECONDS) return false;\n try {\n this.ctx ??= new AudioContext({ latencyHint: 'interactive' });\n const ctx = this.ctx;\n if (!this.node) {\n const url = URL.createObjectURL(new Blob([WORKLET_SOURCE], { type: 'application/javascript' }));\n try {\n await ctx.audioWorklet.addModule(url);\n } finally {\n URL.revokeObjectURL(url);\n }\n }\n // Başka sunucudaki dosya için o sunucunun CORS izni gerekir; yoksa fetch reddedilir.\n const res = await fetch(src, { credentials: 'same-origin' });\n if (!res.ok) return false;\n const buffer = await ctx.decodeAudioData(await res.arrayBuffer());\n if (src !== this.currentSrc()) return false; // çözülürken kaynak değişti\n if (!this.node) {\n this.gain = ctx.createGain();\n this.gain.gain.value = 0;\n this.gain.connect(ctx.destination);\n this.node = new AudioWorkletNode(ctx, 'hope-scratch', { numberOfInputs: 0, outputChannelCount: [Math.min(2, buffer.numberOfChannels)] });\n this.node.port.onmessage = (e: MessageEvent<{ type: string; position: number }>) => {\n if (e.data.type === 'position') this.lastPosition = e.data.position;\n };\n this.node.connect(this.gain);\n }\n const channels: Float32Array[] = [];\n for (let c = 0; c < Math.min(2, buffer.numberOfChannels); c++) channels.push(buffer.getChannelData(c).slice());\n this.node.port.postMessage({ type: 'buffer', channels, sampleRate: buffer.sampleRate }, channels.map((ch) => ch.buffer));\n this.loadedSrc = src;\n return true;\n } catch {\n return false;\n }\n }\n\n /** Plak tutuldu. Kullanıcı etkileşimi (pointerdown) içinde çağrılmalı — AudioContext'i başlatır. */\n start(position: number): void {\n if (!this.ready || !this.ctx || !this.node || !this.gain) return;\n void this.ctx.resume().catch(() => {});\n const volume = this.video.muted ? 0 : this.video.volume;\n const now = this.ctx.currentTime;\n this.gain.gain.cancelScheduledValues(now);\n this.gain.gain.setValueAtTime(0, now);\n this.gain.gain.linearRampToValueAtTime(volume, now + FADE_SECONDS);\n this.node.port.postMessage({ type: 'start', position });\n this.lastPosition = position;\n this.playing = true;\n }\n\n /** Parmağın gösterdiği konum (sn). */\n setTarget(position: number): void {\n if (!this.playing || !this.node) return;\n this.node.port.postMessage({ type: 'target', position });\n }\n\n /** Plak bırakıldı: kısa bir sönümle sus (çıtırtı olmasın). */\n stop(): void {\n if (!this.playing || !this.ctx || !this.node || !this.gain) return;\n this.playing = false;\n const now = this.ctx.currentTime;\n this.gain.gain.cancelScheduledValues(now);\n this.gain.gain.setValueAtTime(this.gain.gain.value, now);\n this.gain.gain.linearRampToValueAtTime(0, now + FADE_SECONDS);\n const node = this.node;\n // Sönüm bitince işlemciyi durdur — o arada plak yeniden tutulduysa (hızlı tut-bırak-tut) yeni scratch'i kesme.\n setTimeout(() => {\n if (!this.playing) node.port.postMessage({ type: 'stop' });\n }, FADE_SECONDS * 1000 + 10);\n }\n\n get active(): boolean {\n return this.playing;\n }\n\n destroy(): void {\n this.playing = false;\n this.node?.disconnect();\n this.gain?.disconnect();\n this.node = null;\n this.gain = null;\n void this.ctx?.close().catch(() => {});\n this.ctx = null;\n }\n}\n"],"names":["SCRATCH_SOUND_MAX_SECONDS","WORKLET_SOURCE","ScratchSound","video","__publicField","_a","src","ok","duration","ctx","url","res","buffer","e","channels","c","ch","position","volume","now","node","_b","_c"],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"VideoPrebid-CpckFzSq.js","sources":["../../src/plugins/prebid/VideoPrebid.ts"],"sourcesContent":["import type { PrebidBidderConfig, PrebidBreakOptions, PrebidOptions } from '../../types';\n\n/** window.pbjs yüzeyi — Prebid.js sayfaya <script> ile yüklenir, npm bağımlılığı değil. */\ninterface PbjsBid {\n bidder: string;\n cpm?: number;\n vastUrl?: string;\n vastXml?: string;\n videoCacheKey?: string;\n responseTimestamp?: number;\n ttl?: number;\n}\n\ninterface Pbjs {\n que: Array<() => void>;\n requestBids(params: { adUnits: unknown[]; timeout: number; bidsBackHandler: () => void }): void;\n addAdUnits(units: unknown[]): void;\n removeAdUnit(code: string): void;\n setConfig(config: Record<string, unknown>): void;\n getConfig?(key: string): { url?: string } | undefined;\n installedModules?: string[];\n aliasRegistry?: Record<string, string>;\n getHighestCpmBids?(adUnitCode: string): PbjsBid[];\n getBidResponsesForAdUnitCode?(adUnitCode: string): { bids: PbjsBid[] };\n adServers?: {\n gam?: { buildVideoUrl(args: { adUnit: unknown; params: Record<string, string> }): string | null };\n dfp?: { buildVideoUrl(args: { adUnit: unknown; params: Record<string, string> }): string | null };\n };\n __hopeConsentApplied?: boolean;\n}\n\ndeclare global {\n interface Window {\n pbjs?: Pbjs;\n }\n}\n\n/** Prebid.js instream video header bidding (GAM ve direkt-VAST modları). */\nexport class VideoPrebid {\n private readonly timeout: number;\n private readonly adUnitCode: string;\n private readonly sizes: Array<[number, number]>;\n private readonly bidders: PrebidBidderConfig[];\n private readonly gamAdUnit: string | null;\n private readonly gpid: string | null;\n private readonly playbackMethod: number;\n private readonly skip: 0 | 1;\n private readonly skipafter: number;\n private readonly maxduration: number;\n private readonly minduration: number;\n private readonly api: number[];\n private readonly protocols: number[];\n private readonly mimes: string[];\n private readonly applyLossFactor: boolean;\n private readonly lossFactors: Record<string, number>;\n private readonly consentManagement: PrebidOptions['consentManagement'];\n\n private cacheWarned = false;\n private gamWarned = false;\n private cacheKeyWarned = false;\n\n constructor(opts: PrebidBreakOptions & { consentManagement?: PrebidOptions['consentManagement'] } = {}) {\n this.timeout = opts.timeout ?? 1500;\n this.adUnitCode = opts.adUnitCode || 'hope-video-preroll';\n this.sizes = opts.sizes || [[640, 360]];\n this.bidders = opts.bidders || [];\n this.gamAdUnit = opts.gamAdUnit ?? null;\n this.gpid = opts.gpid ?? this.gamAdUnit ?? null;\n this.playbackMethod = opts.playbackMethod ?? 2;\n this.skip = opts.skip ?? 0;\n this.skipafter = opts.skipafter ?? 5;\n this.maxduration = opts.maxduration ?? 30;\n this.minduration = opts.minduration ?? 1;\n this.api = opts.api || [2, 7];\n this.protocols = opts.protocols || [2, 3, 5, 6, 7, 8];\n this.mimes = opts.mimes || (this.api.includes(2)\n ? ['video/mp4', 'video/webm', 'application/javascript']\n : ['video/mp4', 'video/webm']);\n this.applyLossFactor = opts.applyLossFactor ?? false;\n this.lossFactors = opts.lossFactors || {};\n this.consentManagement = opts.consentManagement ?? null;\n }\n\n private applyConsentConfig(): void {\n const pbjs = window.pbjs;\n if (!this.consentManagement || !pbjs || pbjs.__hopeConsentApplied) return;\n try {\n pbjs.setConfig({ consentManagement: this.consentManagement });\n pbjs.__hopeConsentApplied = true;\n } catch (err) {\n console.warn('[VideoPrebid] consentManagement setConfig hatası:', err);\n }\n }\n\n isAvailable(): boolean {\n const pbjs = window.pbjs;\n if (!pbjs || typeof pbjs.requestBids !== 'function') return false;\n\n if (!this.cacheWarned) {\n const cacheUrl = pbjs.getConfig?.('cache')?.url;\n if (!cacheUrl) {\n console.warn(`[VideoPrebid] pbjs.setConfig({cache:{url}}) tanımlı değil. ${this.gamAdUnit ? 'GAM isteğinde hb_uuid boş kalacak, creative reklam döndüremeyecek.' : 'vastUrl boş dönecek, fallback tag kullanılacak.'}`);\n }\n this.cacheWarned = true;\n }\n\n const installed = pbjs.installedModules || [];\n if (!installed.length) return true;\n\n const aliasRegistry = pbjs.aliasRegistry || {};\n return this.bidders.some((b) => {\n if (installed.includes(`${b.bidder}BidAdapter`)) return true;\n const canonical = aliasRegistry[b.bidder];\n return canonical ? installed.includes(`${canonical}BidAdapter`) : false;\n });\n }\n\n runAuction(fallbackVastUrl: string): Promise<string> {\n return new Promise((resolve) => {\n if (!this.isAvailable()) {\n resolve(fallbackVastUrl);\n return;\n }\n const pbjs = window.pbjs!;\n\n const adUnit = this.buildAdUnit();\n const cleanup = () => {\n try {\n pbjs.removeAdUnit(adUnit.code);\n } catch {\n /* no-op */\n }\n };\n\n let settled = false;\n const done = (url: string) => {\n if (settled) return;\n settled = true;\n cleanup();\n resolve(url);\n };\n\n pbjs.que = pbjs.que || [];\n pbjs.que.push(() => {\n this.applyConsentConfig();\n pbjs.removeAdUnit(adUnit.code);\n pbjs.addAdUnits([adUnit]);\n\n // Prebid'in kendi timeoutBuffer default'u 400ms, +300 bidsBackHandler'dan\n // önce ateşleyebiliyordu — +500ms tampon bu yüzden.\n const failsafe = setTimeout(() => done(fallbackVastUrl), this.timeout + 500);\n\n pbjs.requestBids({\n adUnits: [adUnit],\n timeout: this.timeout,\n bidsBackHandler: () => {\n clearTimeout(failsafe);\n done(this.resolveVastUrl(adUnit, fallbackVastUrl));\n },\n });\n });\n });\n }\n\n private buildAdUnit(): { code: string; ortb2Imp: unknown; mediaTypes: unknown; bids: PrebidBidderConfig[] } {\n const bids: PrebidBidderConfig[] = typeof structuredClone === 'function'\n ? structuredClone(this.bidders)\n : (JSON.parse(JSON.stringify(this.bidders)) as PrebidBidderConfig[]);\n\n const stableId = this.gpid || this.adUnitCode;\n\n return {\n code: this.adUnitCode,\n ortb2Imp: {\n ext: {\n gpid: stableId,\n data: { pbadslot: stableId },\n },\n },\n mediaTypes: {\n video: {\n context: 'instream',\n playerSize: this.sizes,\n mimes: this.mimes,\n protocols: this.protocols,\n api: this.api,\n minduration: this.minduration,\n maxduration: this.maxduration,\n startdelay: 0,\n playbackmethod: [this.playbackMethod],\n linearity: 1,\n plcmt: 1,\n placement: 1,\n skip: this.skip,\n ...(this.skip ? { skipafter: this.skipafter } : {}),\n pos: 1,\n },\n },\n bids,\n };\n }\n\n private getGamAdServer(): {\n buildVideoUrl(args: { adUnit: unknown; params: Record<string, string | Record<string, string>> }): string | null;\n } | null {\n const adServers = window.pbjs?.adServers;\n const gam = adServers?.gam || adServers?.dfp;\n return typeof gam?.buildVideoUrl === 'function' ? gam : null;\n }\n\n /** Fallback tag'in cust_params'ını objeye çevirir — buildVideoUrl URL'i sıfırdan kurduğu için ayrıca geçilmeli. */\n private extractCustParams(url: string): Record<string, string> {\n const result: Record<string, string> = {};\n try {\n const raw = new URL(url).searchParams.get('cust_params');\n if (!raw) return result;\n for (const pair of raw.split('&')) {\n const idx = pair.indexOf('=');\n if (idx <= 0) continue;\n const key = pair.slice(0, idx);\n if (key.startsWith('hb_')) continue;\n result[key] = pair.slice(idx + 1);\n }\n } catch (err) {\n console.warn('[VideoPrebid] fallback cust_params okunamadı:', err);\n }\n return result;\n }\n\n private pickWinningBid(adUnitCode: string): PbjsBid | undefined {\n const pbjs = window.pbjs!;\n if (!this.applyLossFactor) {\n return (pbjs.getHighestCpmBids?.(adUnitCode) || [])[0];\n }\n\n const responses = pbjs.getBidResponsesForAdUnitCode?.(adUnitCode)?.bids || [];\n if (!responses.length) return undefined;\n\n const now = Date.now();\n const valid = responses.filter((b) => !b.responseTimestamp || !b.ttl || b.responseTimestamp + b.ttl * 1000 > now);\n if (!valid.length) return undefined;\n\n let best: PbjsBid | undefined;\n let bestWeighted = -Infinity;\n for (const bid of valid) {\n const factor = this.lossFactors[bid.bidder] ?? 1;\n const weighted = (bid.cpm || 0) * factor;\n if (weighted > bestWeighted) {\n bestWeighted = weighted;\n best = bid;\n }\n }\n return best;\n }\n\n private resolveVastUrl(adUnit: { code: string }, fallback: string): string {\n const gam = this.gamAdUnit ? this.getGamAdServer() : null;\n\n if (this.gamAdUnit && !gam && !this.gamWarned) {\n console.warn('[VideoPrebid] pbjs.adServers.gam.buildVideoUrl bulunamadı — Prebid build\\'inde \"Google Ad Manager Video\" (dfpAdServerVideo) modülü yok. GAM atlanıyor, kazanan bid\\'in vastUrl\\'i kullanılacak.');\n this.gamWarned = true;\n }\n\n const winner = this.pickWinningBid(adUnit.code);\n\n if (gam && !winner) {\n console.warn(`[VideoPrebid] Auction'dan kazanan bid çıkmadı — GAM isteği hb_pb/hb_bidder olmadan gidiyor, cust_params'ta hb_uuid=undefined görünecek. pbjs.getBidResponsesForAdUnitCode('${adUnit.code}') ve pbjs.getEvents() ile no-bid/timeout sebebine bakın.`);\n }\n\n if (gam && winner && !winner.videoCacheKey && !this.cacheKeyWarned) {\n console.warn(`[VideoPrebid] Kazanan bid'de videoCacheKey yok — GAM isteğine hb_uuid=undefined gidecek. VAST cache'e yazılmamış: pbjs.setConfig({cache:{url}}) auction'dan önce çalışıyor mu ve cache POST'u başarılı mı kontrol edin. (bidder: ${winner.bidder})`);\n this.cacheKeyWarned = true;\n }\n\n if (gam) {\n try {\n const url = gam.buildVideoUrl({\n adUnit,\n params: {\n iu: this.gamAdUnit!,\n output: 'vast',\n description_url: window.location.href,\n url: window.location.href,\n cust_params: this.extractCustParams(fallback),\n },\n });\n if (url) return url;\n } catch (err) {\n console.warn('[VideoPrebid] buildVideoUrl failed:', err);\n }\n }\n\n if (winner) {\n if (winner.vastUrl) return winner.vastUrl;\n if (winner.vastXml) {\n console.warn('[VideoPrebid] Kazanan bid vastXml içeriyor ancak Prebid cache yapılandırılmamış. pbjs.setConfig({cache:{url}}) ekleyin. Fallback\\'e düşülüyor.');\n }\n }\n\n return fallback;\n }\n}\n\nexport default VideoPrebid;\n"],"names":["VideoPrebid","opts","__publicField","pbjs","err","_a","_b","installed","aliasRegistry","b","canonical","fallbackVastUrl","resolve","adUnit","cleanup","settled","done","url","failsafe","bids","stableId","adServers","gam","result","raw","pair","idx","key","adUnitCode","_c","responses","now","valid","best","bestWeighted","bid","factor","weighted","fallback","winner"],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"index-3QALpwsf.js","sources":["../../src/plugins/in-view-autoplay/InViewAutoplay.ts","../../src/plugins/in-view-autoplay/index.ts"],"sourcesContent":["import type { InViewAutoplayOptions } from '../../types';\n\nexport interface InViewAutoplayPlayerContext {\n videoEl: HTMLVideoElement;\n /** IntersectionObserver'ın izlediği kök element — genelde player'ın host custom element'i. */\n observeEl: Element;\n isAdActive(): boolean;\n}\n\n/** Viewport dışına çıkınca duraklat; yalnızca bu plugin duraklattıysa geri girince devam et. */\nexport class InViewAutoplay {\n private readonly threshold: number;\n private readonly onlyIfMuted: boolean;\n private readonly observer: IntersectionObserver;\n private pausedByThis = false;\n\n constructor(\n private readonly ctx: InViewAutoplayPlayerContext,\n options: InViewAutoplayOptions = {}\n ) {\n this.threshold = options.threshold ?? 0.3;\n this.onlyIfMuted = options.onlyIfMuted ?? true;\n\n this.observer = new IntersectionObserver(this.onIntersect, { threshold: [this.threshold] });\n this.observer.observe(ctx.observeEl);\n }\n\n destroy(): void {\n this.observer.disconnect();\n }\n\n private readonly onIntersect = (entries: IntersectionObserverEntry[]): void => {\n if (this.ctx.isAdActive()) return;\n\n for (const entry of entries) {\n if (entry.isIntersecting && entry.intersectionRatio >= this.threshold) {\n this.resumeIfPausedByThis();\n } else {\n this.pauseIfPlaying();\n }\n }\n };\n\n private pauseIfPlaying(): void {\n const video = this.ctx.videoEl;\n if (video.paused || video.ended) return;\n this.pausedByThis = true;\n video.pause();\n }\n\n private resumeIfPausedByThis(): void {\n if (!this.pausedByThis) return;\n this.pausedByThis = false;\n const video = this.ctx.videoEl;\n if (this.onlyIfMuted && !video.muted) return;\n void video.play().catch(() => {});\n }\n}\n","import { InViewAutoplay, type InViewAutoplayPlayerContext } from './InViewAutoplay';\nimport type { InViewAutoplayOptions } from '../../types';\n\nexport function installInViewAutoplay(ctx: InViewAutoplayPlayerContext, options: InViewAutoplayOptions): InViewAutoplay {\n return new InViewAutoplay(ctx, options);\n}\n\nexport { InViewAutoplay };\nexport type { InViewAutoplayPlayerContext };\n"],"names":["InViewAutoplay","ctx","options","__publicField","entries","entry","video","installInViewAutoplay"],"mappings":";;;AAUO,MAAMA,EAAe;AAAA,EAMxB,YACqBC,GACjBC,IAAiC,IACnC;AARe,IAAAC,EAAA;AACA,IAAAA,EAAA;AACA,IAAAA,EAAA;AACT,IAAAA,EAAA,sBAAe;AAiBN,IAAAA,EAAA,qBAAc,CAACC,MAA+C;AAC3E,UAAI,MAAK,IAAI;AAEb,mBAAWC,KAASD;AAChB,UAAIC,EAAM,kBAAkBA,EAAM,qBAAqB,KAAK,YACxD,KAAK,qBAAA,IAEL,KAAK,eAAA;AAAA,IAGjB;AAxBqB,SAAA,MAAAJ,GAGjB,KAAK,YAAYC,EAAQ,aAAa,KACtC,KAAK,cAAcA,EAAQ,eAAe,IAE1C,KAAK,WAAW,IAAI,qBAAqB,KAAK,aAAa,EAAE,WAAW,CAAC,KAAK,SAAS,GAAG,GAC1F,KAAK,SAAS,QAAQD,EAAI,SAAS;AAAA,EACvC;AAAA,EAEA,UAAgB;AACZ,SAAK,SAAS,WAAA;AAAA,EAClB;AAAA,EAcQ,iBAAuB;AAC3B,UAAMK,IAAQ,KAAK,IAAI;AACvB,IAAIA,EAAM,UAAUA,EAAM,UAC1B,KAAK,eAAe,IACpBA,EAAM,MAAA;AAAA,EACV;AAAA,EAEQ,uBAA6B;AACjC,QAAI,CAAC,KAAK,aAAc;AACxB,SAAK,eAAe;AACpB,UAAMA,IAAQ,KAAK,IAAI;AACvB,IAAI,KAAK,eAAe,CAACA,EAAM,SAC1BA,EAAM,OAAO,MAAM,MAAM;AAAA,IAAC,CAAC;AAAA,EACpC;AACJ;ACtDO,SAASC,EAAsBN,GAAkCC,GAAgD;AACpH,SAAO,IAAIF,EAAeC,GAAKC,CAAO;AAC1C;"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"index-7IBf8Y-R.js","sources":["../../src/plugins/live/LiveWallClock.ts","../../src/plugins/live/index.ts"],"sourcesContent":["import type { LiveWallClockOptions } from '../../types';\nimport type { HopeLocaleStrings } from '../../i18n/types';\n\nexport interface LiveWallClockPlayerContext {\n videoEl: HTMLVideoElement;\n seekBarEl: HTMLElement;\n addControlElement(el: HTMLElement): void;\n /** UI dili (chrome metinleri) — `options.locale` (Intl saat biçimlendirme locale'i, ör. 'tr-TR') ile KARIŞTIRILMASIN, ayrı bir kavram. */\n i18n: HopeLocaleStrings;\n /**\n * Şu an oynatılan anın gerçek tarihi — HLS `EXT-X-PROGRAM-DATE-TIME`'dan (hls.js `playingDate`, Safari `getStartDate()`).\n * Yoksa null; saat o zaman \"canlı uçtan geride kalınan süre\"den tahmin edilir.\n */\n getPlayingDate?(): Date | null;\n}\n\nconst DEFAULTS: Required<LiveWallClockOptions> = {\n locale: 'tr-TR',\n timeZone: 'UTC',\n showSeconds: true,\n tooltipMode: 'clock',\n};\n\n/**\n * Canlı yayında duvar saati + seek bar hover tooltip'i. Yayında PROGRAM-DATE-TIME varsa saat doğrudan oradan okunur\n * (encoder/CDN gecikmesi dahil doğru); yoksa canlı uç (seekable, yoksa buffered sonu) anının şu anki saat olduğu varsayılır.\n */\nexport class LiveWallClock {\n private readonly clockEl: HTMLElement;\n private readonly tooltipEl: HTMLElement;\n private readonly options: Required<LiveWallClockOptions>;\n\n private clockTimer: ReturnType<typeof setTimeout> | null = null;\n private tooltipTimer: ReturnType<typeof setTimeout> | null = null;\n private isHovering = false;\n private lastSeekBarPoint: number | null = null;\n\n constructor(\n private readonly ctx: LiveWallClockPlayerContext,\n options: LiveWallClockOptions = {}\n ) {\n this.options = { ...DEFAULTS, ...options };\n\n this.clockEl = document.createElement('span');\n this.clockEl.setAttribute('part', 'live-clock');\n this.clockEl.setAttribute('role', 'status');\n this.clockEl.setAttribute('aria-label', ctx.i18n.liveClock);\n this.clockEl.className = 'hp:hidden hp:text-xs hp:text-on-surface hp:opacity-90 hp:tabular-nums hp:whitespace-nowrap hp:ml-1';\n ctx.addControlElement(this.clockEl);\n\n this.tooltipEl = document.createElement('div');\n this.tooltipEl.setAttribute('part', 'live-tooltip');\n this.tooltipEl.className =\n 'hp:hidden hp:absolute hp:bottom-full hp:mb-2 hp-center-x hp:px-2 hp:py-1 hp:rounded hp:bg-surface-elev hp:text-on-surface hp:text-xs hp:tabular-nums hp:whitespace-nowrap hp:pointer-events-none hp:z-20';\n ctx.seekBarEl.appendChild(this.tooltipEl);\n\n ctx.seekBarEl.addEventListener('mouseenter', this.onSeekEnter);\n ctx.seekBarEl.addEventListener('mouseleave', this.onSeekLeave);\n ctx.seekBarEl.addEventListener('mousemove', this.onSeekMove);\n\n this.startClockTick();\n }\n\n refreshLabels(): void {\n this.clockEl.setAttribute('aria-label', this.ctx.i18n.liveClock);\n }\n\n destroy(): void {\n this.stopClockTick();\n this.stopTooltipTick();\n this.ctx.seekBarEl.removeEventListener('mouseenter', this.onSeekEnter);\n this.ctx.seekBarEl.removeEventListener('mouseleave', this.onSeekLeave);\n this.ctx.seekBarEl.removeEventListener('mousemove', this.onSeekMove);\n this.clockEl.remove();\n this.tooltipEl.remove();\n }\n\n /** Canlılık için duration === Infinity yeterli — native HLS'te DVR'sız canlıda seekable boş kalabiliyor. */\n private isLive(): boolean {\n return this.ctx.videoEl.duration === Infinity;\n }\n\n /** Canlı edge'in media-time'ı (saniye) — seekable aralığının sonu; seekable boşsa (bkz. isLive notu) buffered aralığının sonu. */\n private liveEdge(): number | null {\n const { seekable, buffered } = this.ctx.videoEl;\n if (seekable.length) return seekable.end(seekable.length - 1);\n if (buffered.length) return buffered.end(buffered.length - 1);\n return null;\n }\n\n /** Geri sarılabilir pencerenin başı — kayan pencereli canlıda 0 değil (ör. 3600). */\n private windowStart(): number {\n const { seekable, buffered } = this.ctx.videoEl;\n if (seekable.length) return seekable.start(0);\n if (buffered.length) return buffered.start(0);\n return 0;\n }\n\n /** `mediaTime` anının duvar saati (ms) — PROGRAM-DATE-TIME varsa ondan, yoksa canlı uca göre tahmin. */\n private wallClockAt(mediaTime: number, liveEdge: number): number {\n const playing = this.ctx.getPlayingDate?.();\n if (playing && Number.isFinite(playing.getTime())) return playing.getTime() + (mediaTime - this.ctx.videoEl.currentTime) * 1000;\n return Date.now() - Math.max(0, liveEdge - mediaTime) * 1000;\n }\n\n // ── saat ──\n\n private startClockTick(): void {\n const tick = () => {\n this.renderClock();\n const delay = 1000 - (Date.now() % 1000);\n this.clockTimer = setTimeout(tick, delay);\n };\n tick();\n }\n\n private stopClockTick(): void {\n if (this.clockTimer) {\n clearTimeout(this.clockTimer);\n this.clockTimer = null;\n }\n }\n\n private renderClock(): void {\n if (!this.isLive()) {\n this.clockEl.classList.add('hp:hidden');\n return;\n }\n\n const liveNow = this.liveEdge();\n const ct = this.ctx.videoEl.currentTime;\n if (liveNow === null || !Number.isFinite(ct)) {\n this.clockEl.textContent = '--:--:--';\n this.clockEl.classList.remove('hp:hidden');\n return;\n }\n\n this.clockEl.textContent = this.formatClock(new Date(this.wallClockAt(ct, liveNow)));\n this.clockEl.classList.remove('hp:hidden');\n }\n\n // ── seekbar hover tooltip ──\n\n private readonly onSeekEnter = (): void => {\n this.isHovering = true;\n this.renderTooltip();\n this.startTooltipTick();\n };\n\n private readonly onSeekLeave = (): void => {\n this.isHovering = false;\n this.lastSeekBarPoint = null;\n this.stopTooltipTick();\n this.hideTooltip();\n };\n\n private readonly onSeekMove = (e: MouseEvent): void => {\n const rect = this.ctx.seekBarEl.getBoundingClientRect();\n const ratio = rect.width > 0 ? (e.clientX - rect.left) / rect.width : null;\n this.lastSeekBarPoint = ratio === null ? null : Math.max(0, Math.min(1, ratio));\n this.renderTooltip();\n this.startTooltipTick();\n };\n\n private startTooltipTick(): void {\n if (this.tooltipTimer) return;\n const tick = () => {\n if (!this.isHovering || this.lastSeekBarPoint == null) {\n this.tooltipTimer = null;\n return;\n }\n this.renderTooltip();\n const delay = 1000 - (Date.now() % 1000);\n this.tooltipTimer = setTimeout(tick, delay);\n };\n tick();\n }\n\n private stopTooltipTick(): void {\n if (this.tooltipTimer) {\n clearTimeout(this.tooltipTimer);\n this.tooltipTimer = null;\n }\n }\n\n private renderTooltip(): void {\n if (!this.isLive() || this.lastSeekBarPoint == null) {\n this.hideTooltip();\n return;\n }\n\n const liveEdge = this.liveEdge();\n if (liveEdge === null || liveEdge <= 0) {\n this.hideTooltip();\n return;\n }\n\n // Seek bar canlıda geri sarılabilir pencereyi (başı → canlı uç) temsil eder.\n const start = Math.min(this.windowStart(), liveEdge);\n const hoveredTime = start + this.lastSeekBarPoint * (liveEdge - start);\n const secondsBehind = Math.max(0, liveEdge - hoveredTime);\n const wallClock = this.formatClock(new Date(this.wallClockAt(hoveredTime, liveEdge)));\n const minus = `-${this.formatDuration(secondsBehind)}`;\n\n this.tooltipEl.innerHTML = '';\n if (this.options.tooltipMode === 'behind') {\n this.tooltipEl.textContent = minus;\n } else if (this.options.tooltipMode === 'both') {\n const line1 = document.createElement('div');\n line1.textContent = wallClock;\n const line2 = document.createElement('div');\n line2.textContent = minus;\n line2.className = 'hp:opacity-70';\n this.tooltipEl.append(line1, line2);\n } else {\n this.tooltipEl.textContent = wallClock;\n }\n\n this.tooltipEl.style.left = `${this.lastSeekBarPoint * 100}%`;\n this.tooltipEl.classList.remove('hp:hidden');\n }\n\n private hideTooltip(): void {\n this.tooltipEl.classList.add('hp:hidden');\n }\n\n // ── format ──\n\n private formatClock(date: Date): string {\n const fmtOpts: Intl.DateTimeFormatOptions = this.options.showSeconds\n ? { hour: '2-digit', minute: '2-digit', second: '2-digit', hour12: false, timeZone: this.options.timeZone }\n : { hour: '2-digit', minute: '2-digit', hour12: false, timeZone: this.options.timeZone };\n try {\n return new Intl.DateTimeFormat(this.options.locale, fmtOpts).format(date);\n } catch {\n const pad = (n: number) => String(n).padStart(2, '0');\n const base = `${pad(date.getHours())}:${pad(date.getMinutes())}`;\n return this.options.showSeconds ? `${base}:${pad(date.getSeconds())}` : base;\n }\n }\n\n private formatDuration(totalSeconds: number): string {\n const s = Math.floor(totalSeconds);\n const hh = Math.floor(s / 3600);\n const mm = Math.floor((s % 3600) / 60);\n const ss = s % 60;\n const pad = (n: number) => String(n).padStart(2, '0');\n return hh > 0 ? `${pad(hh)}:${pad(mm)}:${pad(ss)}` : `${pad(mm)}:${pad(ss)}`;\n }\n}\n","import { LiveWallClock, type LiveWallClockPlayerContext } from './LiveWallClock';\nimport type { LiveWallClockOptions } from '../../types';\n\nexport function installLiveWallClock(ctx: LiveWallClockPlayerContext, options: LiveWallClockOptions): LiveWallClock {\n return new LiveWallClock(ctx, options);\n}\n\nexport { LiveWallClock };\nexport type { LiveWallClockPlayerContext };\n"],"names":["DEFAULTS","LiveWallClock","ctx","options","__publicField","e","rect","ratio","seekable","buffered","mediaTime","liveEdge","_a","_b","playing","tick","delay","liveNow","ct","start","hoveredTime","secondsBehind","wallClock","minus","line1","line2","date","fmtOpts","pad","n","base","totalSeconds","s","hh","mm","ss","installLiveWallClock"],"mappings":"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"}