@hopeplayer/core 1.0.11 → 1.0.13

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 (72) hide show
  1. package/dist/HopePlayerElement.d.ts +34 -0
  2. package/dist/HopePlayerElement.d.ts.map +1 -1
  3. package/dist/chunks/ScratchSound-0XKHUcJK.js +174 -0
  4. package/dist/chunks/ScratchSound-0XKHUcJK.js.map +1 -0
  5. package/dist/chunks/{index-BHO8Gbrj.js → index-01P9jpUY.js} +819 -418
  6. package/dist/chunks/index-01P9jpUY.js.map +1 -0
  7. package/dist/chunks/{index-BeBmx35F.js → index-048h1-5X.js} +2 -2
  8. package/dist/chunks/{index-BeBmx35F.js.map → index-048h1-5X.js.map} +1 -1
  9. package/dist/chunks/{index-C6ONQXlF.js → index-9NzklChR.js} +2 -2
  10. package/dist/chunks/{index-C6ONQXlF.js.map → index-9NzklChR.js.map} +1 -1
  11. package/dist/chunks/index-BCMVXNL0.js +845 -0
  12. package/dist/chunks/index-BCMVXNL0.js.map +1 -0
  13. package/dist/chunks/{index-d_U9dcN6.js → index-BO0tjMR6.js} +2 -2
  14. package/dist/chunks/{index-d_U9dcN6.js.map → index-BO0tjMR6.js.map} +1 -1
  15. package/dist/chunks/index-BgJJr55r.js +311 -0
  16. package/dist/chunks/index-BgJJr55r.js.map +1 -0
  17. package/dist/chunks/{index-lwFM1iPV.js → index-CP1Y6U0c.js} +2 -2
  18. package/dist/chunks/{index-lwFM1iPV.js.map → index-CP1Y6U0c.js.map} +1 -1
  19. package/dist/chunks/index-DCXX1ZJG.js +108 -0
  20. package/dist/chunks/index-DCXX1ZJG.js.map +1 -0
  21. package/dist/chunks/{index-DGSYKljQ.js → index-n-1IIClr.js} +2 -2
  22. package/dist/chunks/{index-DGSYKljQ.js.map → index-n-1IIClr.js.map} +1 -1
  23. package/dist/controls/ControlBar.d.ts +32 -0
  24. package/dist/controls/ControlBar.d.ts.map +1 -1
  25. package/dist/controls/SeekBar.d.ts +8 -0
  26. package/dist/controls/SeekBar.d.ts.map +1 -1
  27. package/dist/controls/SettingsMenu.d.ts +3 -0
  28. package/dist/controls/SettingsMenu.d.ts.map +1 -1
  29. package/dist/controls/VolumePanel.d.ts +0 -2
  30. package/dist/controls/VolumePanel.d.ts.map +1 -1
  31. package/dist/debug/ErrorLog.d.ts +29 -0
  32. package/dist/debug/ErrorLog.d.ts.map +1 -0
  33. package/dist/hls/SourceManager.d.ts +11 -0
  34. package/dist/hls/SourceManager.d.ts.map +1 -1
  35. package/dist/hope-player.js +1 -1
  36. package/dist/i18n/locales/en.d.ts.map +1 -1
  37. package/dist/i18n/locales/tr.d.ts.map +1 -1
  38. package/dist/i18n/types.d.ts +19 -0
  39. package/dist/i18n/types.d.ts.map +1 -1
  40. package/dist/index.d.ts +2 -1
  41. package/dist/index.d.ts.map +1 -1
  42. package/dist/keyboard/KeyboardController.d.ts +2 -0
  43. package/dist/keyboard/KeyboardController.d.ts.map +1 -1
  44. package/dist/plugins/ads/AdSurfaceGuard.d.ts +39 -0
  45. package/dist/plugins/ads/AdSurfaceGuard.d.ts.map +1 -0
  46. package/dist/plugins/ads/AdsController.d.ts +103 -1
  47. package/dist/plugins/ads/AdsController.d.ts.map +1 -1
  48. package/dist/plugins/ads/PrerollGate.d.ts +51 -0
  49. package/dist/plugins/ads/PrerollGate.d.ts.map +1 -0
  50. package/dist/plugins/ads/preconnect.d.ts +2 -0
  51. package/dist/plugins/ads/preconnect.d.ts.map +1 -0
  52. package/dist/plugins/audio/AudioStage.d.ts +80 -0
  53. package/dist/plugins/audio/AudioStage.d.ts.map +1 -0
  54. package/dist/plugins/audio/ScratchSound.d.ts +48 -0
  55. package/dist/plugins/audio/ScratchSound.d.ts.map +1 -0
  56. package/dist/plugins/audio/index.d.ts +7 -0
  57. package/dist/plugins/audio/index.d.ts.map +1 -0
  58. package/dist/plugins/audio/vinylSvg.d.ts +12 -0
  59. package/dist/plugins/audio/vinylSvg.d.ts.map +1 -0
  60. package/dist/plugins/debug/DebugPanel.d.ts +37 -0
  61. package/dist/plugins/debug/DebugPanel.d.ts.map +1 -0
  62. package/dist/plugins/debug/index.d.ts +5 -0
  63. package/dist/plugins/debug/index.d.ts.map +1 -0
  64. package/dist/subtitles/CaptionRenderer.d.ts +6 -0
  65. package/dist/subtitles/CaptionRenderer.d.ts.map +1 -1
  66. package/dist/subtitles/attachTracks.d.ts.map +1 -1
  67. package/dist/types/index.d.ts +108 -1
  68. package/dist/types/index.d.ts.map +1 -1
  69. package/package.json +1 -1
  70. package/dist/chunks/index-BHO8Gbrj.js.map +0 -1
  71. package/dist/chunks/index-glxDu2eJ.js +0 -531
  72. package/dist/chunks/index-glxDu2eJ.js.map +0 -1
package/dist/index.d.ts CHANGED
@@ -1,8 +1,9 @@
1
1
  import { HopePlayerElement, HOPE_PLAYER_VERSION } from './HopePlayerElement';
2
2
  export { HopePlayerElement, HOPE_PLAYER_VERSION };
3
3
  export type { PlaybackEngineInfo } from './hls/SourceManager';
4
- export type { HopeThemePreset, HopeLocale, HopeLocaleStrings, HopePlayerOptions, HopePlayerEventMap, AdsOptions, AdsRetryOptions, PrebidOptions, PrebidBreakOptions, PrebidBidderConfig, GestureOptions, LoopSectionOptions, InViewAutoplayOptions, StickyOptions, StickyCorner, PlayableItem, PlaylistOptions, PlaylistUiOptions, StoryOptions, StoryUiOptions, StoryGestureOptions, MarkerPopupOptions, MarkerPingOptions, MarkerAction, MarkerItem, MarkersOptions, SegmentItem, SpriteThumbnailsOptions, CountdownScreenOptions, GeoCheckerOptions, RedirectScreenSuggestion, RedirectScreenOptions, QrResumeOptions, PauseAdOptions, SkipButtonsOptions, HopeHlsOptions, ContextMenuOptions, TapGesture, TapGestureType, TapRegion, TapPointer, TapAction, DubbingTrack, DubbingOptions, LiveWallClockOptions, DaiOptions, LiveAdsOptions, } from './types';
4
+ export type { HopeThemePreset, HopeLocale, HopeLocaleStrings, HopePlayerOptions, HopePlayerEventMap, AdsOptions, AdsRetryOptions, PrebidOptions, PrebidBreakOptions, PrebidBidderConfig, GestureOptions, LoopSectionOptions, InViewAutoplayOptions, StickyOptions, StickyCorner, PlayableItem, PlaylistOptions, PlaylistUiOptions, StoryOptions, StoryUiOptions, StoryGestureOptions, MarkerPopupOptions, MarkerPingOptions, MarkerAction, MarkerItem, MarkersOptions, SegmentItem, SpriteThumbnailsOptions, CountdownScreenOptions, GeoCheckerOptions, RedirectScreenSuggestion, RedirectScreenOptions, QrResumeOptions, PauseAdOptions, SkipButtonsOptions, HopeHlsOptions, ContextMenuOptions, TapGesture, TapGestureType, TapRegion, TapPointer, TapAction, DubbingTrack, DubbingOptions, LiveWallClockOptions, DaiOptions, LiveAdsOptions, OmidAccessMode, OmidVendor, } from './types';
5
5
  export type { SettingsSubmenuDef, SettingsSubmenuItem } from './controls/SettingsMenu';
6
+ export type { ErrorLog, PlayerLogEntry, PlayerLogSource } from './debug/ErrorLog';
6
7
  declare global {
7
8
  interface HTMLElementTagNameMap {
8
9
  'hope-player': HopePlayerElement;
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAC;AAM7E,OAAO,EAAE,iBAAiB,EAAE,mBAAmB,EAAE,CAAC;AAClD,YAAY,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AAC9D,YAAY,EACR,eAAe,EACf,UAAU,EACV,iBAAiB,EACjB,iBAAiB,EACjB,kBAAkB,EAClB,UAAU,EACV,eAAe,EACf,aAAa,EACb,kBAAkB,EAClB,kBAAkB,EAClB,cAAc,EACd,kBAAkB,EAClB,qBAAqB,EACrB,aAAa,EACb,YAAY,EACZ,YAAY,EACZ,eAAe,EACf,iBAAiB,EACjB,YAAY,EACZ,cAAc,EACd,mBAAmB,EACnB,kBAAkB,EAClB,iBAAiB,EACjB,YAAY,EACZ,UAAU,EACV,cAAc,EACd,WAAW,EACX,uBAAuB,EACvB,sBAAsB,EACtB,iBAAiB,EACjB,wBAAwB,EACxB,qBAAqB,EACrB,eAAe,EACf,cAAc,EACd,kBAAkB,EAClB,cAAc,EACd,kBAAkB,EAClB,UAAU,EACV,cAAc,EACd,SAAS,EACT,UAAU,EACV,SAAS,EACT,YAAY,EACZ,cAAc,EACd,oBAAoB,EACpB,UAAU,EACV,cAAc,GACjB,MAAM,SAAS,CAAC;AACjB,YAAY,EAAE,kBAAkB,EAAE,mBAAmB,EAAE,MAAM,yBAAyB,CAAC;AAEvF,OAAO,CAAC,MAAM,CAAC;IACX,UAAU,qBAAqB;QAC3B,aAAa,EAAE,iBAAiB,CAAC;KACpC;CACJ"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAC;AAM7E,OAAO,EAAE,iBAAiB,EAAE,mBAAmB,EAAE,CAAC;AAClD,YAAY,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AAC9D,YAAY,EACR,eAAe,EACf,UAAU,EACV,iBAAiB,EACjB,iBAAiB,EACjB,kBAAkB,EAClB,UAAU,EACV,eAAe,EACf,aAAa,EACb,kBAAkB,EAClB,kBAAkB,EAClB,cAAc,EACd,kBAAkB,EAClB,qBAAqB,EACrB,aAAa,EACb,YAAY,EACZ,YAAY,EACZ,eAAe,EACf,iBAAiB,EACjB,YAAY,EACZ,cAAc,EACd,mBAAmB,EACnB,kBAAkB,EAClB,iBAAiB,EACjB,YAAY,EACZ,UAAU,EACV,cAAc,EACd,WAAW,EACX,uBAAuB,EACvB,sBAAsB,EACtB,iBAAiB,EACjB,wBAAwB,EACxB,qBAAqB,EACrB,eAAe,EACf,cAAc,EACd,kBAAkB,EAClB,cAAc,EACd,kBAAkB,EAClB,UAAU,EACV,cAAc,EACd,SAAS,EACT,UAAU,EACV,SAAS,EACT,YAAY,EACZ,cAAc,EACd,oBAAoB,EACpB,UAAU,EACV,cAAc,EACd,cAAc,EACd,UAAU,GACb,MAAM,SAAS,CAAC;AACjB,YAAY,EAAE,kBAAkB,EAAE,mBAAmB,EAAE,MAAM,yBAAyB,CAAC;AACvF,YAAY,EAAE,QAAQ,EAAE,cAAc,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AAElF,OAAO,CAAC,MAAM,CAAC;IACX,UAAU,qBAAqB;QAC3B,aAAa,EAAE,iBAAiB,CAAC;KACpC;CACJ"}
@@ -7,6 +7,8 @@ export declare class KeyboardController {
7
7
  seekStep: number;
8
8
  /** Klavyeyle sarıldığında (sn, negatif = geri) — sarma bildirimi için. */
9
9
  onSeek: ((delta: number) => void) | null;
10
+ /** Space/K'den önce sorulur — true dönerse işlenmiştir (ör. preroll beklemesini iptal). */
11
+ interceptTogglePlay: (() => boolean) | null;
10
12
  constructor(host: HTMLElement, video: HTMLVideoElement, toggleFullscreen: () => void);
11
13
  private readonly onKeyDown;
12
14
  destroy(): void;
@@ -1 +1 @@
1
- {"version":3,"file":"KeyboardController.d.ts","sourceRoot":"","sources":["../../src/keyboard/KeyboardController.ts"],"names":[],"mappings":"AAAA,gGAAgG;AAChG,qBAAa,kBAAkB;IAC3B,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAc;IACnC,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAmB;IACzC,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAAa;IAC9C,mEAAmE;IACnE,QAAQ,SAAK;IACb,0EAA0E;IAC1E,MAAM,EAAE,CAAC,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC,GAAG,IAAI,CAAQ;gBAEpC,IAAI,EAAE,WAAW,EAAE,KAAK,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,MAAM,IAAI;IAOpF,OAAO,CAAC,QAAQ,CAAC,SAAS,CA8CxB;IAEF,OAAO,IAAI,IAAI;CAGlB"}
1
+ {"version":3,"file":"KeyboardController.d.ts","sourceRoot":"","sources":["../../src/keyboard/KeyboardController.ts"],"names":[],"mappings":"AAAA,gGAAgG;AAChG,qBAAa,kBAAkB;IAC3B,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAc;IACnC,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAmB;IACzC,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAAa;IAC9C,mEAAmE;IACnE,QAAQ,SAAK;IACb,0EAA0E;IAC1E,MAAM,EAAE,CAAC,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC,GAAG,IAAI,CAAQ;IAChD,2FAA2F;IAC3F,mBAAmB,EAAE,CAAC,MAAM,OAAO,CAAC,GAAG,IAAI,CAAQ;gBAEvC,IAAI,EAAE,WAAW,EAAE,KAAK,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,MAAM,IAAI;IAOpF,OAAO,CAAC,QAAQ,CAAC,SAAS,CAkDxB;IAEF,OAAO,IAAI,IAAI;CAGlB"}
@@ -0,0 +1,39 @@
1
+ /**
2
+ * Reklamın görünmeyeceği yüzeyler: iPhone'un yerleşik (native) video tam ekranı ve Picture-in-Picture.
3
+ * Bu ikisinde yalnızca içerik <video>'su görünür; IMA reklamı sayfadaki kendi video elementinde oynatır —
4
+ * reklam görünmez, tıklanamaz, gösterim "görülmedi" sayılır. Lineer reklam arası başlarken yüzeyden çıkılır,
5
+ * reklam bitince bir dokunuşla geri dönmek için buton gösterilir (iOS tam ekrana kullanıcı dokunmadan girmeye izin vermez).
6
+ */
7
+ type SurfaceKind = 'fullscreen' | 'pip';
8
+ export interface AdSurfaceGuardContext {
9
+ videoEl: HTMLVideoElement;
10
+ /** "Tam ekrana dön" butonunun ekleneceği alan (video alanı). */
11
+ containerEl: HTMLElement;
12
+ /** Player'ın tam ekran isteği (iPhone'da <video>'nun native tam ekranına düşer). */
13
+ enterFullscreen(): void;
14
+ labels(): {
15
+ adReturnFullscreen: string;
16
+ adReturnPip: string;
17
+ };
18
+ }
19
+ export declare class AdSurfaceGuard {
20
+ private readonly ctx;
21
+ /** Reklam yüzünden çıkılan yüzey — reklam bitince geri dönüş butonu için. */
22
+ private exited;
23
+ private button;
24
+ private hideTimer;
25
+ constructor(ctx: AdSurfaceGuardContext);
26
+ private get video();
27
+ /** Şu an reklamın görünmeyeceği bir yüzeyde miyiz? */
28
+ current(): SurfaceKind | null;
29
+ /** Lineer reklam arası başlıyor: görünmeyen yüzeyden çık (içerik zaten duraklatıldı). */
30
+ onBreakStart(): void;
31
+ /** Lineer reklam arası bitti. Postroll'dan sonra içerik bitmiştir — geri dönüş önerilmez. */
32
+ onBreakEnd(contentContinues: boolean): void;
33
+ private showButton;
34
+ private enterPip;
35
+ hideButton(): void;
36
+ destroy(): void;
37
+ }
38
+ export {};
39
+ //# sourceMappingURL=AdSurfaceGuard.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AdSurfaceGuard.d.ts","sourceRoot":"","sources":["../../../src/plugins/ads/AdSurfaceGuard.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,KAAK,WAAW,GAAG,YAAY,GAAG,KAAK,CAAC;AAUxC,MAAM,WAAW,qBAAqB;IAClC,OAAO,EAAE,gBAAgB,CAAC;IAC1B,gEAAgE;IAChE,WAAW,EAAE,WAAW,CAAC;IACzB,oFAAoF;IACpF,eAAe,IAAI,IAAI,CAAC;IACxB,MAAM,IAAI;QAAE,kBAAkB,EAAE,MAAM,CAAC;QAAC,WAAW,EAAE,MAAM,CAAA;KAAE,CAAC;CACjE;AAKD,qBAAa,cAAc;IAMX,OAAO,CAAC,QAAQ,CAAC,GAAG;IALhC,6EAA6E;IAC7E,OAAO,CAAC,MAAM,CAA4B;IAC1C,OAAO,CAAC,MAAM,CAAkC;IAChD,OAAO,CAAC,SAAS,CAA8C;gBAElC,GAAG,EAAE,qBAAqB;IAEvD,OAAO,KAAK,KAAK,GAEhB;IAED,sDAAsD;IACtD,OAAO,IAAI,WAAW,GAAG,IAAI;IAO7B,yFAAyF;IACzF,YAAY,IAAI,IAAI;IAepB,6FAA6F;IAC7F,UAAU,CAAC,gBAAgB,EAAE,OAAO,GAAG,IAAI;IAM3C,OAAO,CAAC,UAAU;IAsBlB,OAAO,CAAC,QAAQ;IAShB,UAAU,IAAI,IAAI;IAOlB,OAAO,IAAI,IAAI;CAIlB"}
@@ -1,4 +1,6 @@
1
+ import { type AdSurfaceGuardContext } from './AdSurfaceGuard';
1
2
  import type { AdsOptions } from '../../types';
3
+ import type { PrerollGate } from './PrerollGate';
2
4
  export interface AdsPlayerContext {
3
5
  videoEl: HTMLVideoElement;
4
6
  hostEl: HTMLElement;
@@ -10,6 +12,26 @@ export interface AdsPlayerContext {
10
12
  locale: string;
11
13
  /** Reklamın oynat/duraklat durumu DIŞARIDAN (IMA'nın kendi UI'ı üzerinden) değişince toolbar'ı tazelemesi için — bkz. `adPaused` notu. */
12
14
  onAdPlayStateChange?(): void;
15
+ /** Preroll sonuçlanana kadar içeriği bekleten kapı (elementte, plugin yüklenmeden önce kurulur) — bkz. PrerollGate. */
16
+ prerollGate?: PrerollGate;
17
+ /** Player'ın hata kaydına (hata ayıklama penceresi) — yeniden denenen hatalar dahil her reklam hatası. */
18
+ log?(entry: {
19
+ message: string;
20
+ fatal?: boolean;
21
+ details?: Record<string, string | number | boolean | undefined>;
22
+ }): void;
23
+ /** Reklam geri sayımı + pod bilgisi (toolbar'daki "Reklam 2/3 · 0:12"); null → gizle. */
24
+ onAdProgress?(info: {
25
+ remaining: number;
26
+ position: number;
27
+ total: number;
28
+ } | null): void;
29
+ /** İçerik art arda otomatik oynuyor mu (playlist / story autoplayNext) — sürekli oynatma bildirimi. */
30
+ isContinuousPlayback?(): boolean;
31
+ /** iPhone native tam ekranı / PiP'te reklam görünmez — reklam arasında bu yüzeylerden çıkılır (bkz. AdSurfaceGuard). */
32
+ surface?: AdSurfaceGuardContext;
33
+ /** Ses reklamında IMA'nın göstereceği görsel (options.audio.adPoster) — mutlak URL. Yoksa player'ın kendi sahnesi görünür. */
34
+ audioPoster?: string;
13
35
  }
14
36
  /** Google IMA SDK ile doğrudan konuşan reklam çekirdeği (preroll/midroll/postroll, VMAP, retry, Prebid, SCTE-35). */
15
37
  export declare class AdsController {
@@ -37,10 +59,52 @@ export declare class AdsController {
37
59
  private scte35Manager;
38
60
  private scte35BreakActive;
39
61
  private scte35BreakTimeout;
62
+ /**
63
+ * Preroll yüklendi ama içerik henüz oynatılmak istenmedi — init() + start() oynatma isteğine kadar bekler.
64
+ * init() de ertelenir: VMAP'te IMA, start() beklemeden init() anında 0 noktasındaki preroll'u kendiliğinden
65
+ * oynatıyor (autoPlayAdBreaks: false bile durdurmuyor); init edilmemiş bir AdsManager hiçbir şey oynatamaz.
66
+ */
67
+ private prerollStartPending;
68
+ /** İlk preroll/VMAP isteği atıldı mı (requestWhen'e göre zamanlanır). */
69
+ private initialRequestFired;
70
+ /** İlk preroll/VMAP isteğinin zamanı — bayatlama kontrolü için. */
71
+ private prerollRequestedAt;
72
+ /** requestWhen: 'visible' — player ekrana yaklaşınca isteği tetikler. */
73
+ private visibilityObserver;
74
+ /** Bir lineer reklam arası başladı ve henüz bitmedi (CONTENT_PAUSE_REQUESTED → CONTENT_RESUME_REQUESTED). */
75
+ private linearBreakActive;
76
+ /** Ekranda bir overlay (non-linear) reklam var — reklam katmanı içerikle birlikte görünür. */
77
+ private nonLinearActive;
78
+ /** Son IMA hatası — vazgeçilince hp:aderror bununla gönderilir. */
79
+ private lastAdError;
80
+ /** Reklam geri sayımı zamanlayıcısı (lineer reklam oynarken). */
81
+ private progressTimer;
82
+ private podPosition;
83
+ private podTotal;
84
+ /** Son istek ham bir VMAP mı — VMAP'te aranın tipi isteğin tipinden değil, IMA'nın verdiği konumdan okunur. */
85
+ private lastRequestIsVmap;
86
+ /** Şu an oynayan / son oynayan reklam arasının tipi (hp:adstart / hp:adend ve sonrasındaki içerik kararı). */
87
+ private activeBreak;
88
+ /** Preroll zaman aşımına uğradı — geç gelen cevap gösterilmez (içerik çoktan başladı). */
89
+ private prerollAbandoned;
90
+ private readonly surfaceGuard;
91
+ /** Player boyutu değişince (tam ekran, pencere, yön) IMA'ya bildirmek için — IMA boyutu kendisi izlemiyor. */
92
+ private resizeObserver;
93
+ private resizeFrame;
94
+ /** Açık overlay creative'inin yüksekliği — yeniden boyutlandırmada şerit yüksekliği için. */
95
+ private nonLinearCreativeHeight;
40
96
  constructor(ctx: AdsPlayerContext, options: AdsOptions);
41
97
  install(): Promise<void>;
42
- /** requestOnPlay yoksa preroll/VMAP hemen istenir; varsa kullanıcı oynatana kadar ertelenir. */
98
+ /**
99
+ * İlk preroll/VMAP isteğinin zamanı (requestWhen):
100
+ * - 'visible' (varsayılan): player ekrana yaklaşınca — uzun bir makalenin sonundaki player için, oraya hiç inmeyen
101
+ * ziyaretçi adına boşa istek atılmaz (raporlarda istek/gösterim oranı düşmez, teklifler bayatlamaz); kullanıcı
102
+ * player'a ulaştığında reklam çoğunlukla hazırdır.
103
+ * - 'load': hemen. - 'play': oynatma isteğinde (en geç; bekleme istek süresi kadar uzar).
104
+ * Hangi moddan olursa olsun oynatma isteği geldiğinde istek hâlâ atılmadıysa hemen atılır.
105
+ */
43
106
  private requestInitialPrerollOrVmap;
107
+ private fireInitialRequest;
44
108
  /** Playlist/story item değişiminde: önceki item'ın reklam durumunu sıfırla. */
45
109
  resetForNewItem(newPrerollTag?: string | string[]): void;
46
110
  destroy(): void;
@@ -60,7 +124,17 @@ export declare class AdsController {
60
124
  private getPrebidConfigFor;
61
125
  private getOrCreatePrebidInstance;
62
126
  private requestAd;
127
+ /**
128
+ * Open Measurement erişim kuralları: her ölçüm firması için mod (varsayılan 'full').
129
+ * IMA'nın enum'ları yoksa (eski SDK) hiçbir şey ayarlanmaz — IMA kendi varsayılanını kullanır.
130
+ */
131
+ private omidRules;
63
132
  private readonly onAdsManagerLoaded;
133
+ private startAdsManager;
134
+ /** Preroll kapısında ilk oynatma isteği: IMA'yı kullanıcı jestiyle hazırla, hazır bekleyen preroll'u başlat. */
135
+ private readonly onPrerollPlayIntent;
136
+ /** Preroll süresinde gelmedi: bekleyen istekleri bırak, içerik reklamsız başlasın (kapı kendisi açılır). */
137
+ private readonly onPrerollTimeout;
64
138
  /** Toolbar'daki oynat/duraklat butonunun (reklam modunda) hedefi — content videoEl yerine bu çağrılır. */
65
139
  toggleAdPlayPause(): void;
66
140
  isAdPaused(): boolean;
@@ -74,13 +148,41 @@ export declare class AdsController {
74
148
  private readonly onContentPauseRequested;
75
149
  private readonly onContentResumeRequested;
76
150
  private readonly onAllAdsCompleted;
151
+ /**
152
+ * Overlay (non-linear) reklam yüklendi: içeriği DURDURMAZ (CONTENT_PAUSE_REQUESTED gelmez) — preroll kapısı onu
153
+ * beklerse içerik zaman aşımına kadar bekliyor, overlay de hiç gösterilmiyordu. Kapı hemen açılır, içerik başlar;
154
+ * reklam katmanı içerikle birlikte görünür, kontrol çubuğunun üstünde durur ve yalnızca overlay tıklanabilir.
155
+ */
156
+ private readonly onAdLoaded;
157
+ private viewMode;
158
+ /** Boyut değişimleri (ResizeObserver) kare başına bire indirilir — pencere sürüklenirken IMA'yı boğmasın. */
159
+ private readonly scheduleResize;
160
+ /**
161
+ * Reklamı player'ın şimdiki boyutuna getirir: tam ekrana giriş/çıkış, pencere küçültme, cihaz döndürme.
162
+ * IMA boyutu yalnızca init()'te alır; resize() çağrılmazsa reklam eski boyutunda kalıyordu.
163
+ */
164
+ private resizeAd;
165
+ /** Overlay kapandı (kullanıcı kapattı / süresi doldu): katman gizlenir. */
166
+ private readonly endNonLinear;
77
167
  private readonly onAdsLoaderError;
78
168
  private readonly onAdsManagerError;
169
+ /** IMA hatasının kodlarını çıkarır, hata kaydına yazar (yeniden denenecek olsa da) ve mesajı döndürür. */
170
+ private recordAdError;
171
+ /** Lineer reklam başladı: pod bilgisi + kalan süre toolbar'a (geri sayım). */
172
+ private readonly onAdStarted;
173
+ private readonly reportAdProgress;
174
+ private readonly stopAdProgress;
79
175
  private giveUpOrRetry;
80
176
  private resumeContentAfterGiveUp;
81
177
  /** VMAP split: preroll (başarılı ya da vazgeçilerek) bitince, VMAP TAM OLARAK BİR KEZ, değiştirilmeden istenir. */
82
178
  private maybeRequestVmapAfterPreroll;
83
179
  private hideAdLayer;
180
+ /**
181
+ * Başlayan aranın gerçek tipi. VMAP tek istekle preroll + midroll + postroll getirir; isteğin tipi (currentBreakType)
182
+ * yalnızca ilk arayı anlatır — midroll'lar "preroll" diye bildiriliyor, VMAP postroll'undan sonra video baştan
183
+ * başlıyordu. IMA reklamın arasındaki konumu verir: 0 preroll, -1 postroll, diğerleri midroll.
184
+ */
185
+ private breakTypeOf;
84
186
  private breakTypeLower;
85
187
  }
86
188
  //# sourceMappingURL=AdsController.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"AdsController.d.ts","sourceRoot":"","sources":["../../../src/plugins/ads/AdsController.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"AdsController.d.ts","sourceRoot":"","sources":["../../../src/plugins/ads/AdsController.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,51 @@
1
+ import type { AdsOptions } from '../../types';
2
+ /** Preroll beklenirken içeriğin en fazla ne kadar bekletileceği — sonra reklamsız başlar. */
3
+ export declare const DEFAULT_PREROLL_TIMEOUT_MS = 8000;
4
+ /** Bu reklam ayarlarıyla içerik başlamadan önce bir preroll bekleniyor mu (VMAP'in 0 noktası da olabilir). */
5
+ export declare function expectsPreroll(ads: AdsOptions): boolean;
6
+ /**
7
+ * Preroll kapısı: preroll sonuçlanana kadar (reklam başladı / gelmedi / hata / zaman aşımı) içeriğin oynamasını
8
+ * engeller — içerik 1-2 sn oynayıp reklamla kesilmesin, ilk karesini reklamdan SONRA göstersin.
9
+ *
10
+ * Elementin constructor'ında, video'nun diğer tüm 'play'/'pause' dinleyicilerinden ÖNCE kurulur: kapı açıkken gelen
11
+ * 'play' olayını yutar (UI, hp:play ve IMA görmez), videoyu hemen duraklatır ve bunu "oynatma isteği" olarak saklar.
12
+ * Reklam plugin'i daha sonra dinamik yüklendiği için kapı plugin'den bağımsız, çekirdekte yaşar.
13
+ */
14
+ export declare class PrerollGate {
15
+ private readonly video;
16
+ /** Kapı kurulu (preroll bekleniyor) mu. */
17
+ private armed;
18
+ /** Kapı kuruluyken kullanıcı / autoplay oynatmak istedi mi. */
19
+ private playIntent;
20
+ /** Kapının kendi pause() çağrısının ürettiği 'pause' olayı yutulsun. */
21
+ private swallowNextPause;
22
+ private timeoutMs;
23
+ private timer;
24
+ /** İlk oynatma isteği (reklam plugin'i bekleyen preroll'u başlatır). */
25
+ onPlayIntent: (() => void) | null;
26
+ /** Zaman aşımı — reklam plugin'i geç gelecek cevabı iptal eder. Kapı bundan sonra içeriği başlatarak açılır. */
27
+ onTimeout: (() => void) | null;
28
+ /** "Preroll bekleniyor" durumu değişti (UI: yükleme halkası, merkez buton). */
29
+ onWaitChange: ((waiting: boolean) => void) | null;
30
+ constructor(video: HTMLVideoElement);
31
+ get isArmed(): boolean;
32
+ /** Kapı kurulu ve oynatma istendi — kullanıcı preroll'u bekliyor. */
33
+ get isWaiting(): boolean;
34
+ get hasPlayIntent(): boolean;
35
+ arm(timeoutMs?: number): void;
36
+ /**
37
+ * Elementin `play()`'i için: kapı kuruluysa videoya dokunmadan oynatma isteği kaydedilir (play() promise'i
38
+ * pause() ile reddedilip konsola "interrupted by a call to pause()" düşmesin). true → istek kapıda.
39
+ */
40
+ interceptPlay(): boolean;
41
+ /** Bekleme sırasında kullanıcı vazgeçti (duraklat'a bastı). Kapı kurulu kalır; preroll geri döner ama başlatılmaz. */
42
+ cancelIntent(): void;
43
+ /** Preroll sonuçlandı. `resume`: oynatma istenmişse içerik şimdi başlasın (reklam yok / hata / zaman aşımı). */
44
+ release(resume: boolean): void;
45
+ destroy(): void;
46
+ private registerIntent;
47
+ private readonly onPlay;
48
+ private readonly onPause;
49
+ private clearTimer;
50
+ }
51
+ //# sourceMappingURL=PrerollGate.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"PrerollGate.d.ts","sourceRoot":"","sources":["../../../src/plugins/ads/PrerollGate.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAE9C,6FAA6F;AAC7F,eAAO,MAAM,0BAA0B,OAAO,CAAC;AAE/C,8GAA8G;AAC9G,wBAAgB,cAAc,CAAC,GAAG,EAAE,UAAU,GAAG,OAAO,CAGvD;AAED;;;;;;;GAOG;AACH,qBAAa,WAAW;IAiBR,OAAO,CAAC,QAAQ,CAAC,KAAK;IAhBlC,2CAA2C;IAC3C,OAAO,CAAC,KAAK,CAAS;IACtB,+DAA+D;IAC/D,OAAO,CAAC,UAAU,CAAS;IAC3B,wEAAwE;IACxE,OAAO,CAAC,gBAAgB,CAAS;IACjC,OAAO,CAAC,SAAS,CAA8B;IAC/C,OAAO,CAAC,KAAK,CAA8C;IAE3D,wEAAwE;IACxE,YAAY,EAAE,CAAC,MAAM,IAAI,CAAC,GAAG,IAAI,CAAQ;IACzC,gHAAgH;IAChH,SAAS,EAAE,CAAC,MAAM,IAAI,CAAC,GAAG,IAAI,CAAQ;IACtC,+EAA+E;IAC/E,YAAY,EAAE,CAAC,CAAC,OAAO,EAAE,OAAO,KAAK,IAAI,CAAC,GAAG,IAAI,CAAQ;gBAE5B,KAAK,EAAE,gBAAgB;IAKpD,IAAI,OAAO,IAAI,OAAO,CAErB;IAED,qEAAqE;IACrE,IAAI,SAAS,IAAI,OAAO,CAEvB;IAED,IAAI,aAAa,IAAI,OAAO,CAE3B;IAED,GAAG,CAAC,SAAS,SAA6B,GAAG,IAAI;IAOjD;;;OAGG;IACH,aAAa,IAAI,OAAO;IAMxB,sHAAsH;IACtH,YAAY,IAAI,IAAI;IAOpB,gHAAgH;IAChH,OAAO,CAAC,MAAM,EAAE,OAAO,GAAG,IAAI;IAU9B,OAAO,IAAI,IAAI;IAMf,OAAO,CAAC,cAAc;IAYtB,OAAO,CAAC,QAAQ,CAAC,MAAM,CAMrB;IAEF,OAAO,CAAC,QAAQ,CAAC,OAAO,CAItB;IAEF,OAAO,CAAC,UAAU;CAIrB"}
@@ -0,0 +1,2 @@
1
+ export declare function preconnectAdHosts(): void;
2
+ //# sourceMappingURL=preconnect.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"preconnect.d.ts","sourceRoot":"","sources":["../../../src/plugins/ads/preconnect.ts"],"names":[],"mappings":"AAcA,wBAAgB,iBAAiB,IAAI,IAAI,CAUxC"}
@@ -0,0 +1,80 @@
1
+ import type { AudioOptions } from '../../types';
2
+ import type { HopeLocaleStrings } from '../../i18n/types';
3
+ export interface AudioStageContext {
4
+ videoEl: HTMLVideoElement;
5
+ /** Sahnenin ekleneceği katman (video ile reklam katmanı arasında). */
6
+ layerEl: HTMLElement;
7
+ /** Kapak verilmezse kullanılan görsel (options.poster). */
8
+ poster(): string | undefined;
9
+ /** Player'ın oynat / duraklat yolu (preroll kapısına uyar). */
10
+ togglePlay(): void;
11
+ play(): void;
12
+ i18n: HopeLocaleStrings;
13
+ }
14
+ /**
15
+ * Ses modunun sahnesi: bulanık kapak zemini, kapak (plak kılıfı), dönen plak, pikap kolu, başlık / sanatçı.
16
+ * Plağın açısı doğrudan çalma zamanından hesaplanır (açı = zaman / tur süresi × 360): sarınca, atlayınca, scratch
17
+ * yapınca plak her zaman sesle aynı yerde durur.
18
+ */
19
+ export declare class AudioStage {
20
+ private readonly ctx;
21
+ readonly el: HTMLDivElement;
22
+ private readonly backdropImg;
23
+ private readonly sleeve;
24
+ private readonly sleeveImg;
25
+ private readonly vinylEl;
26
+ private readonly discEl;
27
+ private readonly armHolder;
28
+ private readonly titleEl;
29
+ private readonly artistEl;
30
+ private readonly disc;
31
+ private options;
32
+ private vinyl;
33
+ private frame;
34
+ private lastAriaSecond;
35
+ private lastPositionState;
36
+ private dragging;
37
+ private dragPointer;
38
+ private center;
39
+ private lastPointerAngle;
40
+ private accum;
41
+ private dragStartTime;
42
+ private dragStartAngle;
43
+ private moved;
44
+ private wasPlaying;
45
+ private downAt;
46
+ private seekFrame;
47
+ private pendingSeek;
48
+ /** vinyl.scratchSound — ayrı parça olarak yalnızca açıksa yüklenir. */
49
+ private sound;
50
+ private soundImport;
51
+ private prepareTimer;
52
+ constructor(ctx: AudioStageContext);
53
+ update(options: AudioOptions): void;
54
+ private loadSound;
55
+ /** Çalma başlayınca, boşta: sesi önceden çöz ki ilk scratch gecikmesin. */
56
+ private schedulePrepareSound;
57
+ private disableSound;
58
+ refreshLabels(): void;
59
+ private get secondsPerTurn();
60
+ private angleForTime;
61
+ private readonly render;
62
+ private readonly loop;
63
+ private readonly onPlay;
64
+ private readonly onPause;
65
+ private readonly onTimeUpdate;
66
+ private readonly onDurationChange;
67
+ private canScratch;
68
+ private pointerAngle;
69
+ private readonly onPointerDown;
70
+ private readonly onPointerMove;
71
+ private readonly flushSeek;
72
+ private readonly onPointerUp;
73
+ private ownsMediaSession;
74
+ private static sessionOwner;
75
+ private applyMediaSession;
76
+ private readonly updatePositionState;
77
+ private releaseMediaSession;
78
+ destroy(): void;
79
+ }
80
+ //# sourceMappingURL=AudioStage.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AudioStage.d.ts","sourceRoot":"","sources":["../../../src/plugins/audio/AudioStage.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,48 @@
1
+ /**
2
+ * Plak scratch sesi (options.audio.vinyl.scratchSound). `<audio>/<video>` geriye çalamaz ve sarma sırasında ses vermez;
3
+ * bu yüzden scratch boyunca ses Web Audio ile üretilir: dosya bir kez ham sese çözülür, bir AudioWorklet bu sesi
4
+ * parmağın gösterdiği konuma doğru (ileri / geri, yavaş / hızlı) okur — parmak durunca okuma da durur, ses kesilir.
5
+ *
6
+ * Konum güdümlü: işlemciye hız değil hedef konum verilir; okuma kafası hedefe kısa bir gecikmeyle (yay gibi) yaklaşır.
7
+ * Böylece ses ile plağın açısı hiçbir zaman birbirinden kaymaz ve hız değişimleri yumuşak duyulur.
8
+ *
9
+ * Desteklenmeyen durumlarda (HLS / MediaSource, çok uzun dosya, CORS izni yok, AudioWorklet yok) `prepare()` false
10
+ * döner ve scratch eskisi gibi sessiz çalışır.
11
+ */
12
+ /** Bundan uzun dosyalar çözülmez — çözülmüş ses dakikada ~10 MB yer kaplar. */
13
+ export declare const SCRATCH_SOUND_MAX_SECONDS: number;
14
+ type State = 'idle' | 'loading' | 'ready' | 'unsupported';
15
+ export declare class ScratchSound {
16
+ private readonly video;
17
+ private ctx;
18
+ private node;
19
+ private gain;
20
+ private loadedSrc;
21
+ private loading;
22
+ private unsupportedSrc;
23
+ private playing;
24
+ /** İşlemcinin bildirdiği son okuma konumu (sn) — teşhis / test için. */
25
+ lastPosition: number;
26
+ onStateChange: ((state: State) => void) | null;
27
+ constructor(video: HTMLMediaElement);
28
+ static isSupported(): boolean;
29
+ /** Şu anki kaynak hazır mı (çözüldü + işlemci kuruldu)? */
30
+ get ready(): boolean;
31
+ private currentSrc;
32
+ /**
33
+ * Kaynağı çözer ve işlemciyi kurar (kaynak başına bir kez). Kullanıcı etkileşimi gerektirmez — çalma başlayınca
34
+ * boşta çağrılır ki ilk scratch'te gecikme olmasın.
35
+ */
36
+ prepare(): Promise<boolean>;
37
+ private load;
38
+ /** Plak tutuldu. Kullanıcı etkileşimi (pointerdown) içinde çağrılmalı — AudioContext'i başlatır. */
39
+ start(position: number): void;
40
+ /** Parmağın gösterdiği konum (sn). */
41
+ setTarget(position: number): void;
42
+ /** Plak bırakıldı: kısa bir sönümle sus (çıtırtı olmasın). */
43
+ stop(): void;
44
+ get active(): boolean;
45
+ destroy(): void;
46
+ }
47
+ export {};
48
+ //# sourceMappingURL=ScratchSound.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ScratchSound.d.ts","sourceRoot":"","sources":["../../../src/plugins/audio/ScratchSound.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,+EAA+E;AAC/E,eAAO,MAAM,yBAAyB,QAAU,CAAC;AAsEjD,KAAK,KAAK,GAAG,MAAM,GAAG,SAAS,GAAG,OAAO,GAAG,aAAa,CAAC;AAE1D,qBAAa,YAAY;IAYT,OAAO,CAAC,QAAQ,CAAC,KAAK;IAXlC,OAAO,CAAC,GAAG,CAA6B;IACxC,OAAO,CAAC,IAAI,CAAiC;IAC7C,OAAO,CAAC,IAAI,CAAyB;IACrC,OAAO,CAAC,SAAS,CAAM;IACvB,OAAO,CAAC,OAAO,CAAiC;IAChD,OAAO,CAAC,cAAc,CAAM;IAC5B,OAAO,CAAC,OAAO,CAAS;IACxB,wEAAwE;IACxE,YAAY,SAAK;IACjB,aAAa,EAAE,CAAC,CAAC,KAAK,EAAE,KAAK,KAAK,IAAI,CAAC,GAAG,IAAI,CAAQ;gBAEzB,KAAK,EAAE,gBAAgB;IAEpD,MAAM,CAAC,WAAW,IAAI,OAAO;IAI7B,2DAA2D;IAC3D,IAAI,KAAK,IAAI,OAAO,CAEnB;IAED,OAAO,CAAC,UAAU;IAIlB;;;OAGG;IACH,OAAO,IAAI,OAAO,CAAC,OAAO,CAAC;YAkBb,IAAI;IAyClB,oGAAoG;IACpG,KAAK,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI;IAa7B,sCAAsC;IACtC,SAAS,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI;IAKjC,8DAA8D;IAC9D,IAAI,IAAI,IAAI;IAcZ,IAAI,MAAM,IAAI,OAAO,CAEpB;IAED,OAAO,IAAI,IAAI;CASlB"}
@@ -0,0 +1,7 @@
1
+ import { AudioStage, type AudioStageContext } from './AudioStage';
2
+ import type { AudioOptions } from '../../types';
3
+ /** Ses modu sahnesini kurar (kapak, plak, scratch, sistem medya kontrolleri). */
4
+ export declare function installAudioStage(ctx: AudioStageContext, options: AudioOptions): AudioStage;
5
+ export { AudioStage };
6
+ export type { AudioStageContext };
7
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/plugins/audio/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,KAAK,iBAAiB,EAAE,MAAM,cAAc,CAAC;AAClE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAEhD,iFAAiF;AACjF,wBAAgB,iBAAiB,CAAC,GAAG,EAAE,iBAAiB,EAAE,OAAO,EAAE,YAAY,GAAG,UAAU,CAI3F;AAED,OAAO,EAAE,UAAU,EAAE,CAAC;AACtB,YAAY,EAAE,iBAAiB,EAAE,CAAC"}
@@ -0,0 +1,12 @@
1
+ /**
2
+ * Plak ve pikap kolu — elle çizilmiş SVG (dış görsel yok). Disk döner; ışık yansıması ayrı bir katmanda sabit kalır,
3
+ * böylece dönüş gerçek bir plaktaki gibi okunur. Oluklar tam simetrik olduğundan etikette dönüşü gösteren bir işaret var.
4
+ */
5
+ /** Dönen disk: oluklar, etiket (kapak ya da düz renk), merkez deliği. */
6
+ export declare function createDisc(): {
7
+ el: SVGSVGElement;
8
+ setLabel(cover: string | null, text: string): void;
9
+ };
10
+ /** Pikap kolu: sağ üstteki mile bağlı; çalarken plağın üzerine iner. */
11
+ export declare function createTonearm(): SVGSVGElement;
12
+ //# sourceMappingURL=vinylSvg.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"vinylSvg.d.ts","sourceRoot":"","sources":["../../../src/plugins/audio/vinylSvg.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAgBH,yEAAyE;AACzE,wBAAgB,UAAU,IAAI;IAAE,EAAE,EAAE,aAAa,CAAC;IAAC,QAAQ,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,EAAE,IAAI,EAAE,MAAM,GAAG,IAAI,CAAA;CAAE,CA6CtG;AAED,wEAAwE;AACxE,wBAAgB,aAAa,IAAI,aAAa,CAU7C"}
@@ -0,0 +1,37 @@
1
+ import type { HopeLocaleStrings } from '../../i18n/types';
2
+ import type { ErrorLog } from '../../debug/ErrorLog';
3
+ export interface DebugPanelContext {
4
+ containerEl: HTMLElement;
5
+ i18n: HopeLocaleStrings;
6
+ log: ErrorLog;
7
+ version: string;
8
+ }
9
+ /**
10
+ * Sağ tık menüsündeki "Hata ayıklama" — player'ın tüm hatalarını (medya, yayın, reklam, altyazı) zaman sırasıyla,
11
+ * ayrıntılarıyla gösteren ve tüm player alanını kaplayan pencere. Uzun satırlar (URL'ler) kırılır, liste kendi içinde
12
+ * kayar; yeni hata gelince açık pencere canlı güncellenir.
13
+ */
14
+ export declare class DebugPanel {
15
+ private readonly ctx;
16
+ private readonly el;
17
+ private readonly titleEl;
18
+ private readonly countEl;
19
+ private readonly copyBtn;
20
+ private readonly clearBtn;
21
+ private readonly closeBtn;
22
+ private readonly list;
23
+ private readonly emptyEl;
24
+ private copiedTimer;
25
+ constructor(ctx: DebugPanelContext);
26
+ get isVisible(): boolean;
27
+ show(): void;
28
+ hide(): void;
29
+ refreshLabels(): void;
30
+ destroy(): void;
31
+ private button;
32
+ private sourceLabel;
33
+ private render;
34
+ private row;
35
+ private copy;
36
+ }
37
+ //# sourceMappingURL=DebugPanel.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"DebugPanel.d.ts","sourceRoot":"","sources":["../../../src/plugins/debug/DebugPanel.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AAC1D,OAAO,KAAK,EAAE,QAAQ,EAAmC,MAAM,sBAAsB,CAAC;AAEtF,MAAM,WAAW,iBAAiB;IAC9B,WAAW,EAAE,WAAW,CAAC;IACzB,IAAI,EAAE,iBAAiB,CAAC;IACxB,GAAG,EAAE,QAAQ,CAAC;IACd,OAAO,EAAE,MAAM,CAAC;CACnB;AAKD;;;;GAIG;AACH,qBAAa,UAAU;IAWP,OAAO,CAAC,QAAQ,CAAC,GAAG;IAVhC,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAiB;IACpC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAkB;IAC1C,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAkB;IAC1C,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAoB;IAC5C,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAoB;IAC7C,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAoB;IAC7C,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAmB;IACxC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAuB;IAC/C,OAAO,CAAC,WAAW,CAA8C;gBAEpC,GAAG,EAAE,iBAAiB;IA2CnD,IAAI,SAAS,IAAI,OAAO,CAEvB;IAED,IAAI,IAAI,IAAI;IAOZ,IAAI,IAAI,IAAI;IAKZ,aAAa,IAAI,IAAI;IAUrB,OAAO,IAAI,IAAI;IAKf,OAAO,CAAC,MAAM;IAQd,OAAO,CAAC,WAAW;IAKnB,OAAO,CAAC,MAAM;IAUd,OAAO,CAAC,GAAG;YAkDG,IAAI;CAcrB"}
@@ -0,0 +1,5 @@
1
+ import { DebugPanel, type DebugPanelContext } from './DebugPanel';
2
+ export declare function installDebugPanel(ctx: DebugPanelContext): DebugPanel;
3
+ export { DebugPanel };
4
+ export type { DebugPanelContext };
5
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/plugins/debug/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,KAAK,iBAAiB,EAAE,MAAM,cAAc,CAAC;AAElE,wBAAgB,iBAAiB,CAAC,GAAG,EAAE,iBAAiB,GAAG,UAAU,CAEpE;AAED,OAAO,EAAE,UAAU,EAAE,CAAC;AACtB,YAAY,EAAE,iBAAiB,EAAE,CAAC"}
@@ -40,6 +40,12 @@ export declare class CaptionRenderer {
40
40
  private readonly onCueChange;
41
41
  private bounds;
42
42
  private pxForRow;
43
+ /**
44
+ * Balonun EKRANDA şu an durduğu konum (bottom, px): yazılı `bottom` + o anki transform'un dikey kayması.
45
+ * Sürükleme her karede bir kez çiziliyor — hızlı fırlatmada son hareket çizilmeden bırakılınca, son fare konumundan
46
+ * başlayan animasyon balonu önce oraya ışınlıyordu (zıplama). Süren bir kayma animasyonunun ortası da böyle okunur.
47
+ */
48
+ private visualBottomPx;
43
49
  /** FLIP: bottom anında yazılır, yalnızca transform animasyonlanır — bottom'u animasyonlamak bırakınca zıplatıyordu. */
44
50
  private setRowIndex;
45
51
  /** Boyut değişimi (ör. fullscreen'e giriş) sonrası AYNI satıra, YENİ sınırlara göre yeniden konumlan — animasyonsuz (boyut değişimi anlık olmalı). */
@@ -1 +1 @@
1
- {"version":3,"file":"CaptionRenderer.d.ts","sourceRoot":"","sources":["../../src/subtitles/CaptionRenderer.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,eAAe,CAAC;AAEvD,MAAM,MAAM,eAAe,GAAG,OAAO,GAAG,QAAQ,GAAG,OAAO,CAAC;AAmE3D,kHAAkH;AAClH,qBAAa,eAAe;IACxB,MAAM,CAAC,QAAQ,CAAC,gBAAgB,EAAE,SAAS,MAAM,EAAE,CAAoB;IACvE,MAAM,CAAC,QAAQ,CAAC,kBAAkB,EAAE,SAAS,MAAM,EAAE,CAAsB;IAE3E,QAAQ,CAAC,OAAO,EAAE,cAAc,CAAC;IACjC,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAiB;IAC1C,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAc;IACxC,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAc;IACxC,OAAO,CAAC,MAAM,CAAoB;IAElC,OAAO,CAAC,WAAW,CAA0B;IAC7C,OAAO,CAAC,QAAQ,CAAyC;IACzD,OAAO,CAAC,OAAO,CAAmE;IAClF,OAAO,CAAC,SAAS,CAAuE;IACxF,OAAO,CAAC,QAAQ,CAAmB;IACnC,OAAO,CAAC,QAAQ,CAAS;IACzB,6FAA6F;IAC7F,OAAO,CAAC,aAAa,CAAQ;IAC7B,OAAO,CAAC,gBAAgB,CAAK;IAC7B,OAAO,CAAC,iBAAiB,CAAK;IAC9B,OAAO,CAAC,SAAS,CAAS;IAC1B,OAAO,CAAC,KAAK,CAAuB;IACpC,OAAO,CAAC,cAAc,CAAK;IAC3B,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAiB;gBAEpC,KAAK,EAAE,gBAAgB,EAAE,SAAS,EAAE,WAAW,EAAE,SAAS,EAAE,WAAW,EAAE,MAAM,EAAE,iBAAiB;IA6B9G,sEAAsE;IACtE,cAAc,CAAC,KAAK,EAAE,SAAS,GAAG,IAAI,GAAG,IAAI;IAO7C,WAAW,IAAI,eAAe;IAI9B,WAAW,CAAC,IAAI,EAAE,eAAe,GAAG,IAAI;IAcxC,UAAU,IAAI,MAAM;IAIpB,UAAU,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;IAU/B,YAAY,IAAI,MAAM;IAItB,YAAY,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;IAUjC,4CAA4C;IAC5C,aAAa,IAAI,IAAI;IAIrB,mDAAmD;IACnD,aAAa,CAAC,MAAM,EAAE,iBAAiB,GAAG,IAAI;IAK9C,OAAO,CAAC,gBAAgB;IAIxB,OAAO,CAAC,QAAQ,CAAC,WAAW,CAkB1B;IAEF,OAAO,CAAC,MAAM;IAgBd,OAAO,CAAC,QAAQ;IAOhB,uHAAuH;IACvH,OAAO,CAAC,WAAW;IA0BnB,sJAAsJ;IACtJ,+HAA+H;IAC/H,gBAAgB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI;IAMxC,iBAAiB,IAAI,IAAI;IAKzB,OAAO,CAAC,QAAQ,CAAC,aAAa,CAY5B;IAEF,OAAO,CAAC,QAAQ,CAAC,aAAa,CAK5B;IAEF,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAQ/B;IAEF,OAAO,CAAC,QAAQ,CAAC,WAAW,CAkB1B;IAEF,OAAO,IAAI,IAAI;CAMlB"}
1
+ {"version":3,"file":"CaptionRenderer.d.ts","sourceRoot":"","sources":["../../src/subtitles/CaptionRenderer.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,eAAe,CAAC;AAEvD,MAAM,MAAM,eAAe,GAAG,OAAO,GAAG,QAAQ,GAAG,OAAO,CAAC;AAmE3D,kHAAkH;AAClH,qBAAa,eAAe;IACxB,MAAM,CAAC,QAAQ,CAAC,gBAAgB,EAAE,SAAS,MAAM,EAAE,CAAoB;IACvE,MAAM,CAAC,QAAQ,CAAC,kBAAkB,EAAE,SAAS,MAAM,EAAE,CAAsB;IAE3E,QAAQ,CAAC,OAAO,EAAE,cAAc,CAAC;IACjC,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAiB;IAC1C,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAc;IACxC,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAc;IACxC,OAAO,CAAC,MAAM,CAAoB;IAElC,OAAO,CAAC,WAAW,CAA0B;IAC7C,OAAO,CAAC,QAAQ,CAAyC;IACzD,OAAO,CAAC,OAAO,CAAmE;IAClF,OAAO,CAAC,SAAS,CAAuE;IACxF,OAAO,CAAC,QAAQ,CAAmB;IACnC,OAAO,CAAC,QAAQ,CAAS;IACzB,6FAA6F;IAC7F,OAAO,CAAC,aAAa,CAAQ;IAC7B,OAAO,CAAC,gBAAgB,CAAK;IAC7B,OAAO,CAAC,iBAAiB,CAAK;IAC9B,OAAO,CAAC,SAAS,CAAS;IAC1B,OAAO,CAAC,KAAK,CAAuB;IACpC,OAAO,CAAC,cAAc,CAAK;IAC3B,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAiB;gBAEpC,KAAK,EAAE,gBAAgB,EAAE,SAAS,EAAE,WAAW,EAAE,SAAS,EAAE,WAAW,EAAE,MAAM,EAAE,iBAAiB;IA6B9G,sEAAsE;IACtE,cAAc,CAAC,KAAK,EAAE,SAAS,GAAG,IAAI,GAAG,IAAI;IAO7C,WAAW,IAAI,eAAe;IAI9B,WAAW,CAAC,IAAI,EAAE,eAAe,GAAG,IAAI;IAcxC,UAAU,IAAI,MAAM;IAIpB,UAAU,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;IAU/B,YAAY,IAAI,MAAM;IAItB,YAAY,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;IAUjC,4CAA4C;IAC5C,aAAa,IAAI,IAAI;IAIrB,mDAAmD;IACnD,aAAa,CAAC,MAAM,EAAE,iBAAiB,GAAG,IAAI;IAK9C,OAAO,CAAC,gBAAgB;IAIxB,OAAO,CAAC,QAAQ,CAAC,WAAW,CAkB1B;IAEF,OAAO,CAAC,MAAM;IAgBd,OAAO,CAAC,QAAQ;IAOhB;;;;OAIG;IACH,OAAO,CAAC,cAAc;IAYtB,uHAAuH;IACvH,OAAO,CAAC,WAAW;IA+BnB,sJAAsJ;IACtJ,+HAA+H;IAC/H,gBAAgB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI;IAMxC,iBAAiB,IAAI,IAAI;IAKzB,OAAO,CAAC,QAAQ,CAAC,aAAa,CAY5B;IAEF,OAAO,CAAC,QAAQ,CAAC,aAAa,CAK5B;IAEF,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAQ/B;IAEF,OAAO,CAAC,QAAQ,CAAC,WAAW,CAmB1B;IAEF,OAAO,IAAI,IAAI;CAMlB"}
@@ -1 +1 @@
1
- {"version":3,"file":"attachTracks.d.ts","sourceRoot":"","sources":["../../src/subtitles/attachTracks.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,UAAU,CAAC;AAEnD,MAAM,WAAW,aAAa;IAC1B,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,SAAS,CAAC;CACpB;AAED,UAAU,SAAS;IACf,KAAK,EAAE,MAAM,CAAC;IACd,GAAG,EAAE,MAAM,CAAC;IACZ,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE,MAAM,CAAC;CAChB;AAED,oHAAoH;AACpH,MAAM,MAAM,UAAU,GAAG,SAAS,GAAG,QAAQ,CAAC;AAS9C,wBAAgB,aAAa,CAAC,KAAK,EAAE,SAAS,GAAG,OAAO,CAEvD;AAED,4DAA4D;AAC5D,wBAAgB,WAAW,CAAC,KAAK,EAAE,gBAAgB,EAAE,KAAK,EAAE,UAAU,EAAE,IAAI,EAAE,aAAa,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,SAAS,CAWnI;AAED,0DAA0D;AAC1D,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,gBAAgB,EAAE,KAAK,EAAE,UAAU,GAAG,IAAI,CAQlF;AAED;;;;;GAKG;AACH,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,gBAAgB,EAAE,SAAS,EAAE,kBAAkB,EAAE,GAAG,aAAa,EAAE,CAW9G;AAED,gFAAgF;AAChF,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,gBAAgB,GAAG,IAAI,CAGjE;AAED,2FAA2F;AAC3F,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,aAAa,EAAE,EAAE,KAAK,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,GAAG,IAAI,CAQnG;AA8BD,iHAAiH;AACjH,wBAAgB,YAAY,CAAC,IAAI,EAAE,MAAM,GAAG,SAAS,EAAE,CActD"}
1
+ {"version":3,"file":"attachTracks.d.ts","sourceRoot":"","sources":["../../src/subtitles/attachTracks.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,UAAU,CAAC;AAEnD,MAAM,WAAW,aAAa;IAC1B,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,SAAS,CAAC;CACpB;AAED,UAAU,SAAS;IACf,KAAK,EAAE,MAAM,CAAC;IACd,GAAG,EAAE,MAAM,CAAC;IACZ,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE,MAAM,CAAC;CAChB;AAED,oHAAoH;AACpH,MAAM,MAAM,UAAU,GAAG,SAAS,GAAG,QAAQ,CAAC;AAS9C,wBAAgB,aAAa,CAAC,KAAK,EAAE,SAAS,GAAG,OAAO,CAEvD;AAED,4DAA4D;AAC5D,wBAAgB,WAAW,CAAC,KAAK,EAAE,gBAAgB,EAAE,KAAK,EAAE,UAAU,EAAE,IAAI,EAAE,aAAa,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,SAAS,CAWnI;AAED,0DAA0D;AAC1D,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,gBAAgB,EAAE,KAAK,EAAE,UAAU,GAAG,IAAI,CAQlF;AAED;;;;;GAKG;AACH,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,gBAAgB,EAAE,SAAS,EAAE,kBAAkB,EAAE,GAAG,aAAa,EAAE,CAW9G;AAED,gFAAgF;AAChF,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,gBAAgB,GAAG,IAAI,CAGjE;AAED,2FAA2F;AAC3F,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,aAAa,EAAE,EAAE,KAAK,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,GAAG,IAAI,CAQnG;AAgCD,iHAAiH;AACjH,wBAAgB,YAAY,CAAC,IAAI,EAAE,MAAM,GAAG,SAAS,EAAE,CActD"}