@hopeplayer/core 1.0.15 → 1.0.16

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 (69) hide show
  1. package/dist/HopePlayerElement.d.ts +36 -0
  2. package/dist/HopePlayerElement.d.ts.map +1 -1
  3. package/dist/chunks/{index-BvoB2O1p.js → index-BXSND_xN.js} +2 -2
  4. package/dist/chunks/{index-BvoB2O1p.js.map → index-BXSND_xN.js.map} +1 -1
  5. package/dist/chunks/index-BbRYOSvk.js +261 -0
  6. package/dist/chunks/index-BbRYOSvk.js.map +1 -0
  7. package/dist/chunks/{index-ClQg_X1N.js → index-C3BQGcT3.js} +2 -2
  8. package/dist/chunks/{index-ClQg_X1N.js.map → index-C3BQGcT3.js.map} +1 -1
  9. package/dist/chunks/{index-BOoNcKeR.js → index-CBX7bn-G.js} +2 -2
  10. package/dist/chunks/{index-BOoNcKeR.js.map → index-CBX7bn-G.js.map} +1 -1
  11. package/dist/chunks/{index-CaMVTgh0.js → index-CDPrkLq0.js} +55 -68
  12. package/dist/chunks/index-CDPrkLq0.js.map +1 -0
  13. package/dist/chunks/index-CWLyz1fp.js +415 -0
  14. package/dist/chunks/index-CWLyz1fp.js.map +1 -0
  15. package/dist/chunks/{index-D5P-LWbg.js → index-Ch3ep-eJ.js} +20 -20
  16. package/dist/chunks/index-Ch3ep-eJ.js.map +1 -0
  17. package/dist/chunks/{index-DpUZXNJS.js → index-D3Z7ZDLJ.js} +2 -2
  18. package/dist/chunks/{index-DpUZXNJS.js.map → index-D3Z7ZDLJ.js.map} +1 -1
  19. package/dist/chunks/{index-w7pACyTw.js → index-DEv3YqLg.js} +1152 -845
  20. package/dist/chunks/index-DEv3YqLg.js.map +1 -0
  21. package/dist/chunks/{index-BCMVXNL0.js → index-DITXYcHx.js} +68 -96
  22. package/dist/chunks/index-DITXYcHx.js.map +1 -0
  23. package/dist/chunks/index-Miba3PD_.js +387 -0
  24. package/dist/chunks/index-Miba3PD_.js.map +1 -0
  25. package/dist/chunks/{index-DRlQC-ev.js → index-e00_M05B.js} +2 -2
  26. package/dist/chunks/{index-DRlQC-ev.js.map → index-e00_M05B.js.map} +1 -1
  27. package/dist/chunks/loadGpt-CmiAy366.js +18 -0
  28. package/dist/chunks/loadGpt-CmiAy366.js.map +1 -0
  29. package/dist/hls/SourceManager.d.ts +8 -0
  30. package/dist/hls/SourceManager.d.ts.map +1 -1
  31. package/dist/hls/sourceGroups.d.ts +19 -0
  32. package/dist/hls/sourceGroups.d.ts.map +1 -0
  33. package/dist/hope-player.js +1 -1
  34. package/dist/i18n/locales/en.d.ts.map +1 -1
  35. package/dist/i18n/locales/tr.d.ts.map +1 -1
  36. package/dist/i18n/types.d.ts +9 -0
  37. package/dist/i18n/types.d.ts.map +1 -1
  38. package/dist/index.d.ts +1 -1
  39. package/dist/index.d.ts.map +1 -1
  40. package/dist/plugins/ad-triggers/AdTriggers.d.ts +99 -0
  41. package/dist/plugins/ad-triggers/AdTriggers.d.ts.map +1 -0
  42. package/dist/plugins/ad-triggers/index.d.ts +7 -0
  43. package/dist/plugins/ad-triggers/index.d.ts.map +1 -0
  44. package/dist/plugins/ads/AdsController.d.ts +8 -0
  45. package/dist/plugins/ads/AdsController.d.ts.map +1 -1
  46. package/dist/plugins/cast/CastController.d.ts +107 -0
  47. package/dist/plugins/cast/CastController.d.ts.map +1 -0
  48. package/dist/plugins/cast/RemoteMediaProxy.d.ts +41 -0
  49. package/dist/plugins/cast/RemoteMediaProxy.d.ts.map +1 -0
  50. package/dist/plugins/cast/castSdk.d.ts +160 -0
  51. package/dist/plugins/cast/castSdk.d.ts.map +1 -0
  52. package/dist/plugins/cast/index.d.ts +7 -0
  53. package/dist/plugins/cast/index.d.ts.map +1 -0
  54. package/dist/plugins/pause-ad/loadGpt.d.ts +2 -0
  55. package/dist/plugins/pause-ad/loadGpt.d.ts.map +1 -1
  56. package/dist/plugins/rewarded/RewardedUnlock.d.ts +2 -0
  57. package/dist/plugins/rewarded/RewardedUnlock.d.ts.map +1 -1
  58. package/dist/plugins/rewarded/gpt.d.ts +6 -2
  59. package/dist/plugins/rewarded/gpt.d.ts.map +1 -1
  60. package/dist/plugins/sponsorship/SponsorshipLayer.d.ts.map +1 -1
  61. package/dist/types/index.d.ts +262 -3
  62. package/dist/types/index.d.ts.map +1 -1
  63. package/package.json +1 -1
  64. package/dist/chunks/index-BCMVXNL0.js.map +0 -1
  65. package/dist/chunks/index-CaMVTgh0.js.map +0 -1
  66. package/dist/chunks/index-D5P-LWbg.js.map +0 -1
  67. package/dist/chunks/index-TkG8IO6q.js +0 -239
  68. package/dist/chunks/index-TkG8IO6q.js.map +0 -1
  69. package/dist/chunks/index-w7pACyTw.js.map +0 -1
@@ -0,0 +1 @@
1
+ {"version":3,"file":"RemoteMediaProxy.d.ts","sourceRoot":"","sources":["../../../src/plugins/cast/RemoteMediaProxy.ts"],"names":[],"mappings":"AAAA,2CAA2C;AAC3C,MAAM,WAAW,cAAc;IAC3B,IAAI,IAAI,IAAI,CAAC;IACb,KAAK,IAAI,IAAI,CAAC;IACd,IAAI,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,SAAS,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IAChC,QAAQ,CAAC,KAAK,EAAE,OAAO,GAAG,IAAI,CAAC;CAClC;AAED,MAAM,WAAW,WAAW;IACxB,MAAM,EAAE,OAAO,CAAC;IAChB,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,OAAO,CAAC;IACf,KAAK,EAAE,OAAO,CAAC;CAClB;AAeD,kEAAkE;AAClE,wBAAgB,SAAS,CAAC,CAAC,SAAS,aAAa,GAAG,UAAU,GAAG,QAAQ,GAAG,OAAO,EAAE,KAAK,EAAE,gBAAgB,EAAE,GAAG,EAAE,CAAC,GAAG,gBAAgB,CAAC,CAAC,CAAC,CAGzI;AAED;;;;;GAKG;AACH,qBAAa,gBAAgB;IAOrB,OAAO,CAAC,QAAQ,CAAC,KAAK;IACtB,OAAO,CAAC,QAAQ,CAAC,QAAQ;IAP7B,OAAO,CAAC,KAAK,CAAc;IAC3B,OAAO,CAAC,WAAW,CAAuB;IAC1C,OAAO,CAAC,SAAS,CAA8C;IAC/D,OAAO,CAAC,SAAS,CAAS;gBAGL,KAAK,EAAE,gBAAgB,EACvB,QAAQ,EAAE,cAAc,EACzC,OAAO,EAAE,WAAW;IAKxB,IAAI,OAAO,IAAI,QAAQ,CAAC,WAAW,CAAC,CAEnC;IAED,OAAO,IAAI,IAAI;IA6Cf,SAAS,IAAI,IAAI;IASjB,4DAA4D;IAC5D,MAAM,CAAC,KAAK,EAAE,OAAO,CAAC,WAAW,CAAC,GAAG,IAAI;IAmBzC,OAAO,CAAC,IAAI;IAkBZ,OAAO,CAAC,IAAI;CAGf"}
@@ -0,0 +1,160 @@
1
+ /**
2
+ * Google Cast Web Sender SDK (CAF) — kullanılan yüzeyin minimal tipleri ve yükleyicisi.
3
+ * https://developers.google.com/cast/docs/web_sender
4
+ */
5
+ export interface CastImage {
6
+ url: string;
7
+ }
8
+ export interface CastMediaMetadata {
9
+ metadataType?: number;
10
+ title?: string;
11
+ subtitle?: string;
12
+ artist?: string;
13
+ albumName?: string;
14
+ images?: CastImage[];
15
+ }
16
+ export interface CastTrack {
17
+ trackContentId?: string;
18
+ trackContentType?: string;
19
+ subtype?: string;
20
+ name?: string;
21
+ language?: string;
22
+ }
23
+ export interface CastVastAdsRequest {
24
+ adTagUrl?: string;
25
+ }
26
+ export interface CastBreakClip {
27
+ vastAdsRequest?: CastVastAdsRequest;
28
+ }
29
+ export interface CastMediaInfo {
30
+ contentId: string;
31
+ contentType: string;
32
+ streamType?: string;
33
+ metadata?: CastMediaMetadata;
34
+ tracks?: CastTrack[];
35
+ hlsSegmentFormat?: string;
36
+ hlsVideoSegmentFormat?: string;
37
+ vmapAdsRequest?: CastVastAdsRequest;
38
+ breakClips?: CastBreakClip[];
39
+ breaks?: unknown[];
40
+ }
41
+ export interface CastLoadRequest {
42
+ currentTime?: number;
43
+ autoplay?: boolean;
44
+ activeTrackIds?: number[];
45
+ }
46
+ export interface CastSessionLike {
47
+ loadMedia(request: CastLoadRequest): Promise<unknown>;
48
+ getCastDevice(): {
49
+ friendlyName?: string;
50
+ };
51
+ getMediaSession(): {
52
+ media?: {
53
+ contentId?: string;
54
+ };
55
+ } | null;
56
+ }
57
+ export interface RemotePlayerLike {
58
+ isConnected: boolean;
59
+ isMediaLoaded: boolean;
60
+ isPaused: boolean;
61
+ currentTime: number;
62
+ duration: number;
63
+ volumeLevel: number;
64
+ isMuted: boolean;
65
+ playerState: string | null;
66
+ isPlayingBreak: boolean;
67
+ }
68
+ export interface RemotePlayerControllerLike {
69
+ addEventListener(type: string, fn: (e: {
70
+ field: string;
71
+ value: unknown;
72
+ }) => void): void;
73
+ removeEventListener(type: string, fn: (e: {
74
+ field: string;
75
+ value: unknown;
76
+ }) => void): void;
77
+ playOrPause(): void;
78
+ seek(): void;
79
+ setVolumeLevel(): void;
80
+ muteOrUnmute(): void;
81
+ stop(): void;
82
+ }
83
+ export interface CastContextLike {
84
+ setOptions(options: Record<string, unknown>): void;
85
+ addEventListener(type: string, fn: (e: {
86
+ castState?: string;
87
+ sessionState?: string;
88
+ session?: CastSessionLike;
89
+ }) => void): void;
90
+ removeEventListener(type: string, fn: (e: {
91
+ castState?: string;
92
+ sessionState?: string;
93
+ session?: CastSessionLike;
94
+ }) => void): void;
95
+ requestSession(): Promise<unknown>;
96
+ getCurrentSession(): CastSessionLike | null;
97
+ getCastState(): string;
98
+ endCurrentSession(stopCasting: boolean): void;
99
+ }
100
+ type Ctor<T> = new (...args: never[]) => T;
101
+ /** `window.cast.framework` + `window.chrome.cast` — yalnızca kullandıklarımız. */
102
+ export interface CastApi {
103
+ framework: {
104
+ CastContext: {
105
+ getInstance(): CastContextLike;
106
+ };
107
+ CastContextEventType: {
108
+ CAST_STATE_CHANGED: string;
109
+ SESSION_STATE_CHANGED: string;
110
+ };
111
+ RemotePlayer: Ctor<RemotePlayerLike>;
112
+ RemotePlayerController: new (player: RemotePlayerLike) => RemotePlayerControllerLike;
113
+ RemotePlayerEventType: {
114
+ ANY_CHANGE: string;
115
+ };
116
+ };
117
+ chrome: {
118
+ AutoJoinPolicy: {
119
+ ORIGIN_SCOPED: string;
120
+ };
121
+ media: {
122
+ DEFAULT_MEDIA_RECEIVER_APP_ID: string;
123
+ MediaInfo: new (contentId: string, contentType: string) => CastMediaInfo;
124
+ GenericMediaMetadata: Ctor<CastMediaMetadata>;
125
+ MusicTrackMediaMetadata: Ctor<CastMediaMetadata>;
126
+ LoadRequest: new (media: CastMediaInfo) => CastLoadRequest;
127
+ Track: new (trackId: number, type: string) => CastTrack;
128
+ TrackType: {
129
+ TEXT: string;
130
+ };
131
+ TextTrackType: {
132
+ SUBTITLES: string;
133
+ };
134
+ StreamType: {
135
+ BUFFERED: string;
136
+ LIVE: string;
137
+ };
138
+ VastAdsRequest: Ctor<CastVastAdsRequest>;
139
+ BreakClip: new (id: string) => CastBreakClip;
140
+ Break: new (id: string, breakClipIds: string[], position: number) => unknown;
141
+ HlsSegmentFormat?: {
142
+ TS: string;
143
+ FMP4: string;
144
+ AAC: string;
145
+ };
146
+ HlsVideoSegmentFormat?: {
147
+ MPEG2_TS: string;
148
+ FMP4: string;
149
+ };
150
+ };
151
+ Image: new (url: string) => CastImage;
152
+ };
153
+ }
154
+ /**
155
+ * Cast SDK'yı bir kez yükler. Yalnızca Chromium tarayıcılarda (Chrome / Edge) ve güvenli bağlamda (HTTPS) denenir;
156
+ * diğerlerinde ya da SDK "Cast yok" derse null — buton hiç görünmez.
157
+ */
158
+ export declare function loadCastSdk(): Promise<CastApi | null>;
159
+ export {};
160
+ //# sourceMappingURL=castSdk.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"castSdk.d.ts","sourceRoot":"","sources":["../../../src/plugins/cast/castSdk.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,7 @@
1
+ import { CastController, type CastMedia, type CastPlayerContext } from './CastController';
2
+ import type { CastOptions } from '../../types';
3
+ /** TV'ye yayını kurar (Google Cast / AirPlay / Remote Playback — her biri seçenekle açılır). */
4
+ export declare function installCast(ctx: CastPlayerContext, options: CastOptions): CastController;
5
+ export { CastController };
6
+ export type { CastMedia, CastPlayerContext };
7
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/plugins/cast/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,KAAK,SAAS,EAAE,KAAK,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AAC1F,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAE/C,gGAAgG;AAChG,wBAAgB,WAAW,CAAC,GAAG,EAAE,iBAAiB,EAAE,OAAO,EAAE,WAAW,GAAG,cAAc,CAExF;AAED,OAAO,EAAE,cAAc,EAAE,CAAC;AAC1B,YAAY,EAAE,SAAS,EAAE,iBAAiB,EAAE,CAAC"}
@@ -20,6 +20,8 @@ export interface GoogleTag {
20
20
  push(fn: () => void): void;
21
21
  };
22
22
  defineSlot(adUnitPath: string, sizes: Array<[number, number]>, divId: string): GptSlot | null;
23
+ /** Out-of-page slot: boyutsuz; içerik (ör. özel HTML, tam sayfa kreatif) Ad Manager'da belirlenir. */
24
+ defineOutOfPageSlot(adUnitPath: string, divId: string): GptSlot | null;
23
25
  pubads(): GptPubAds;
24
26
  enableServices(): void;
25
27
  display(divId: string): void;
@@ -1 +1 @@
1
- {"version":3,"file":"loadGpt.d.ts","sourceRoot":"","sources":["../../../src/plugins/pause-ad/loadGpt.ts"],"names":[],"mappings":"AAAA,gEAAgE;AAChE,MAAM,WAAW,OAAO;IACpB,UAAU,CAAC,OAAO,EAAE,OAAO,GAAG,OAAO,CAAC;IACtC,YAAY,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM,EAAE,GAAG,OAAO,CAAC;IAC7D,gBAAgB,IAAI,MAAM,CAAC;CAC9B;AAED,MAAM,WAAW,uBAAuB;IACpC,IAAI,EAAE,OAAO,CAAC;IACd,OAAO,EAAE,OAAO,CAAC;IACjB,IAAI,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,MAAM,EAAE,GAAG,IAAI,CAAC;CAC5C;AAED,MAAM,WAAW,SAAS;IACtB,gBAAgB,CAAC,IAAI,EAAE,iBAAiB,EAAE,QAAQ,EAAE,CAAC,CAAC,EAAE,uBAAuB,KAAK,IAAI,GAAG,IAAI,CAAC;IAChG,mBAAmB,CAAC,CAAC,IAAI,EAAE,iBAAiB,EAAE,QAAQ,EAAE,CAAC,CAAC,EAAE,uBAAuB,KAAK,IAAI,GAAG,IAAI,CAAC;IACpG,OAAO,CAAC,KAAK,EAAE,OAAO,EAAE,GAAG,IAAI,CAAC;IAChC,qBAAqB,IAAI,OAAO,CAAC;CACpC;AAED,MAAM,WAAW,SAAS;IACtB,GAAG,EAAE,KAAK,CAAC,MAAM,IAAI,CAAC,GAAG;QAAE,IAAI,CAAC,EAAE,EAAE,MAAM,IAAI,GAAG,IAAI,CAAA;KAAE,CAAC;IACxD,UAAU,CAAC,UAAU,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,GAAG,IAAI,CAAC;IAC9F,MAAM,IAAI,SAAS,CAAC;IACpB,cAAc,IAAI,IAAI,CAAC;IACvB,OAAO,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B,YAAY,CAAC,KAAK,CAAC,EAAE,OAAO,EAAE,GAAG,OAAO,CAAC;CAC5C;AAED,OAAO,CAAC,MAAM,CAAC;IACX,UAAU,MAAM;QACZ,SAAS,CAAC,EAAE,SAAS,CAAC;KACzB;CACJ;AAKD,0GAA0G;AAC1G,wBAAgB,OAAO,IAAI,OAAO,CAAC,SAAS,CAAC,CAmB5C"}
1
+ {"version":3,"file":"loadGpt.d.ts","sourceRoot":"","sources":["../../../src/plugins/pause-ad/loadGpt.ts"],"names":[],"mappings":"AAAA,gEAAgE;AAChE,MAAM,WAAW,OAAO;IACpB,UAAU,CAAC,OAAO,EAAE,OAAO,GAAG,OAAO,CAAC;IACtC,YAAY,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM,EAAE,GAAG,OAAO,CAAC;IAC7D,gBAAgB,IAAI,MAAM,CAAC;CAC9B;AAED,MAAM,WAAW,uBAAuB;IACpC,IAAI,EAAE,OAAO,CAAC;IACd,OAAO,EAAE,OAAO,CAAC;IACjB,IAAI,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,MAAM,EAAE,GAAG,IAAI,CAAC;CAC5C;AAED,MAAM,WAAW,SAAS;IACtB,gBAAgB,CAAC,IAAI,EAAE,iBAAiB,EAAE,QAAQ,EAAE,CAAC,CAAC,EAAE,uBAAuB,KAAK,IAAI,GAAG,IAAI,CAAC;IAChG,mBAAmB,CAAC,CAAC,IAAI,EAAE,iBAAiB,EAAE,QAAQ,EAAE,CAAC,CAAC,EAAE,uBAAuB,KAAK,IAAI,GAAG,IAAI,CAAC;IACpG,OAAO,CAAC,KAAK,EAAE,OAAO,EAAE,GAAG,IAAI,CAAC;IAChC,qBAAqB,IAAI,OAAO,CAAC;CACpC;AAED,MAAM,WAAW,SAAS;IACtB,GAAG,EAAE,KAAK,CAAC,MAAM,IAAI,CAAC,GAAG;QAAE,IAAI,CAAC,EAAE,EAAE,MAAM,IAAI,GAAG,IAAI,CAAA;KAAE,CAAC;IACxD,UAAU,CAAC,UAAU,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,GAAG,IAAI,CAAC;IAC9F,sGAAsG;IACtG,mBAAmB,CAAC,UAAU,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,GAAG,IAAI,CAAC;IACvE,MAAM,IAAI,SAAS,CAAC;IACpB,cAAc,IAAI,IAAI,CAAC;IACvB,OAAO,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B,YAAY,CAAC,KAAK,CAAC,EAAE,OAAO,EAAE,GAAG,OAAO,CAAC;CAC5C;AAED,OAAO,CAAC,MAAM,CAAC;IACX,UAAU,MAAM;QACZ,SAAS,CAAC,EAAE,SAAS,CAAC;KACzB;CACJ;AAKD,0GAA0G;AAC1G,wBAAgB,OAAO,IAAI,OAAO,CAAC,SAAS,CAAC,CAmB5C"}
@@ -54,6 +54,8 @@ export declare class RewardedUnlock {
54
54
  requestUnlock(): void;
55
55
  private watch;
56
56
  private resumeAfterDialog;
57
+ /** Reklam hazırlanırken "Vazgeç" — sağlayıcıya iletilir (GPT slotu temizlenir). */
58
+ private abort;
57
59
  private runProvider;
58
60
  private fill;
59
61
  private showDialog;
@@ -1 +1 @@
1
- {"version":3,"file":"RewardedUnlock.d.ts","sourceRoot":"","sources":["../../../src/plugins/rewarded/RewardedUnlock.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAkB,qBAAqB,EAAE,MAAM,aAAa,CAAC;AACzE,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AAI1D,MAAM,WAAW,qBAAqB;IAClC,MAAM,EAAE,WAAW,CAAC;IACpB,OAAO,EAAE,gBAAgB,CAAC;IAC1B,uDAAuD;IACvD,SAAS,EAAE,WAAW,CAAC;IACvB,oFAAoF;IACpF,QAAQ,EAAE,WAAW,CAAC;IACtB,IAAI,EAAE,iBAAiB,CAAC;IACxB,GAAG,CAAC,KAAK,EAAE;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,SAAS,CAAC,CAAA;KAAE,GAAG,IAAI,CAAC;IACvG,IAAI,IAAI,IAAI,CAAC;IACb,cAAc,IAAI,IAAI,CAAC;IACvB,kFAAkF;IAClF,kBAAkB,IAAI,MAAM,GAAG,IAAI,CAAC;IACpC,qGAAqG;IACrG,UAAU,IAAI,MAAM,CAAC;IACrB,iGAAiG;IACjG,YAAY,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAAC;CACxC;AASD;;;;GAIG;AACH,qBAAa,cAAc;IAYnB,OAAO,CAAC,QAAQ,CAAC,GAAG;IAXxB,OAAO,CAAC,OAAO,CAAwB;IACvC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAoB;IAC3C,OAAO,CAAC,MAAM,CAA+B;IAC7C,OAAO,CAAC,KAAK,CAA+B;IAC5C,OAAO,CAAC,UAAU,CAA8C;IAChE,OAAO,CAAC,KAAK,CAAiB;IAC9B,0FAA0F;IAC1F,OAAO,CAAC,gBAAgB,CAAuB;IAC/C,OAAO,CAAC,OAAO,CAAM;gBAGA,GAAG,EAAE,qBAAqB,EAC3C,OAAO,EAAE,qBAAqB;IAmBlC,MAAM,CAAC,OAAO,EAAE,qBAAqB,GAAG,IAAI;IAS5C,OAAO,KAAK,aAAa,GAGxB;IAED,OAAO,KAAK,UAAU,GAErB;IAED,OAAO,KAAK,SAAS,GAGpB;IAED,IAAI,QAAQ,IAAI,OAAO,CAUtB;IAED,OAAO,CAAC,KAAK;IAYb,uDAAuD;IACvD,QAAQ,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,GAAG,OAAO;IAKxC,wGAAwG;IACxG,OAAO,CAAC,QAAQ,CAAC,cAAc,CAK7B;IAEF,6FAA6F;IAC7F,kBAAkB,IAAI,IAAI;IAS1B,+DAA+D;IAC/D,aAAa,IAAI,IAAI;YAOP,KAAK;IAyCnB,OAAO,CAAC,iBAAiB,CAAS;YAEpB,WAAW;IAYzB,OAAO,CAAC,IAAI;IAQZ,OAAO,CAAC,UAAU;IA8DlB,OAAO,CAAC,OAAO;IAQf,OAAO,CAAC,WAAW;IAMnB,OAAO,CAAC,SAAS;IAgBjB,aAAa,IAAI,IAAI;IAKrB,OAAO,IAAI,IAAI;CAOlB"}
1
+ {"version":3,"file":"RewardedUnlock.d.ts","sourceRoot":"","sources":["../../../src/plugins/rewarded/RewardedUnlock.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAkB,qBAAqB,EAAE,MAAM,aAAa,CAAC;AACzE,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AAI1D,MAAM,WAAW,qBAAqB;IAClC,MAAM,EAAE,WAAW,CAAC;IACpB,OAAO,EAAE,gBAAgB,CAAC;IAC1B,uDAAuD;IACvD,SAAS,EAAE,WAAW,CAAC;IACvB,oFAAoF;IACpF,QAAQ,EAAE,WAAW,CAAC;IACtB,IAAI,EAAE,iBAAiB,CAAC;IACxB,GAAG,CAAC,KAAK,EAAE;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,SAAS,CAAC,CAAA;KAAE,GAAG,IAAI,CAAC;IACvG,IAAI,IAAI,IAAI,CAAC;IACb,cAAc,IAAI,IAAI,CAAC;IACvB,kFAAkF;IAClF,kBAAkB,IAAI,MAAM,GAAG,IAAI,CAAC;IACpC,qGAAqG;IACrG,UAAU,IAAI,MAAM,CAAC;IACrB,iGAAiG;IACjG,YAAY,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAAC;CACxC;AASD;;;;GAIG;AACH,qBAAa,cAAc;IAYnB,OAAO,CAAC,QAAQ,CAAC,GAAG;IAXxB,OAAO,CAAC,OAAO,CAAwB;IACvC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAoB;IAC3C,OAAO,CAAC,MAAM,CAA+B;IAC7C,OAAO,CAAC,KAAK,CAA+B;IAC5C,OAAO,CAAC,UAAU,CAA8C;IAChE,OAAO,CAAC,KAAK,CAAiB;IAC9B,0FAA0F;IAC1F,OAAO,CAAC,gBAAgB,CAAuB;IAC/C,OAAO,CAAC,OAAO,CAAM;gBAGA,GAAG,EAAE,qBAAqB,EAC3C,OAAO,EAAE,qBAAqB;IAmBlC,MAAM,CAAC,OAAO,EAAE,qBAAqB,GAAG,IAAI;IAS5C,OAAO,KAAK,aAAa,GAGxB;IAED,OAAO,KAAK,UAAU,GAErB;IAED,OAAO,KAAK,SAAS,GAGpB;IAED,IAAI,QAAQ,IAAI,OAAO,CAUtB;IAED,OAAO,CAAC,KAAK;IAYb,uDAAuD;IACvD,QAAQ,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,GAAG,OAAO;IAKxC,wGAAwG;IACxG,OAAO,CAAC,QAAQ,CAAC,cAAc,CAK7B;IAEF,6FAA6F;IAC7F,kBAAkB,IAAI,IAAI;IAS1B,+DAA+D;IAC/D,aAAa,IAAI,IAAI;YAOP,KAAK;IAuDnB,OAAO,CAAC,iBAAiB,CAAS;IAClC,mFAAmF;IACnF,OAAO,CAAC,KAAK,CAAgC;YAE/B,WAAW;IAczB,OAAO,CAAC,IAAI;IAQZ,OAAO,CAAC,UAAU;IAkElB,OAAO,CAAC,OAAO;IAQf,OAAO,CAAC,WAAW;IAMnB,OAAO,CAAC,SAAS;IAgBjB,aAAa,IAAI,IAAI;IAKrB,OAAO,IAAI,IAAI;CAQlB"}
@@ -2,7 +2,11 @@ import type { RewardedResult } from '../../types';
2
2
  /**
3
3
  * GPT web rewarded akışı (Google'ın örneğiyle aynı): slot tanımla → display → `rewardedSlotReady` gelince göster →
4
4
  * `rewardedSlotGranted` ödül → `rewardedSlotClosed` kapandı → slotu yok et. Kullanıcı onayı bu fonksiyon çağrılmadan
5
- * ÖNCE alınmış olmalı (player'ın onay penceresi). `rewardedSlotReady` gelmezse (reklam yok) zaman aşımında 'nofill'.
5
+ * ÖNCE alınmış olmalı (player'ın onay penceresi).
6
+ *
7
+ * `timeoutMs` betiğin yüklenmesi DAHİL en baştan sayar: GPT hiç yüklenemez ya da çalışmazsa (engelleyici, ağ,
8
+ * sertifika) da 'nofill' döner — bekleme ekranı asla takılı kalmaz. `signal` iptal edilirse (kullanıcı "Vazgeç") slot
9
+ * temizlenip 'closed' döner. Reklam görünür olduktan sonra zaman aşımı işlemez; kapanışı GPT bildirir.
6
10
  */
7
- export declare function showGptRewarded(adUnitPath: string, timeoutMs: number): Promise<RewardedResult>;
11
+ export declare function showGptRewarded(adUnitPath: string, timeoutMs: number, signal?: AbortSignal): Promise<RewardedResult>;
8
12
  //# sourceMappingURL=gpt.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"gpt.d.ts","sourceRoot":"","sources":["../../../src/plugins/rewarded/gpt.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAkDlD;;;;GAIG;AACH,wBAAsB,eAAe,CAAC,UAAU,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,CAAC,CAmDpG"}
1
+ {"version":3,"file":"gpt.d.ts","sourceRoot":"","sources":["../../../src/plugins/rewarded/gpt.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAmDlD;;;;;;;;GAQG;AACH,wBAAgB,eAAe,CAAC,UAAU,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,cAAc,CAAC,CAsFpH"}
@@ -1 +1 @@
1
- {"version":3,"file":"SponsorshipLayer.d.ts","sourceRoot":"","sources":["../../../src/plugins/sponsorship/SponsorshipLayer.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAC;AACzE,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AAE1D,MAAM,WAAW,kBAAkB;IAC/B,MAAM,EAAE,WAAW,CAAC;IACpB,OAAO,EAAE,gBAAgB,CAAC;IAC1B,4DAA4D;IAC5D,SAAS,EAAE,WAAW,CAAC;IACvB,IAAI,EAAE,iBAAiB,CAAC;IACxB,GAAG,CAAC,KAAK,EAAE;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,KAAK,CAAC,EAAE,OAAO,CAAC;QAAC,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,SAAS,CAAC,CAAA;KAAE,GAAG,IAAI,CAAC;CAC3H;AAiCD,4EAA4E;AAC5E,wBAAgB,oBAAoB,CAAC,GAAG,EAAE,OAAO,GAAG,iBAAiB,GAAG,IAAI,CAuC3E;AAWD;;;;GAIG;AACH,qBAAa,gBAAgB;IAuBrB,OAAO,CAAC,QAAQ,CAAC,GAAG;IAtBxB,OAAO,CAAC,OAAO,CAAqB;IACpC,OAAO,CAAC,MAAM,CAAkC;IAChD,OAAO,CAAC,MAAM,CAAmD;IACjE,OAAO,CAAC,OAAO,CAA+B;IAC9C,OAAO,CAAC,UAAU,CAA8C;IAChE,OAAO,CAAC,YAAY,CAA+C;IACnE,0GAA0G;IAC1G,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAwB;IACvD,iGAAiG;IACjG,OAAO,CAAC,cAAc,CAA6B;IACnD,gDAAgD;IAChD,OAAO,CAAC,SAAS,CAAqB;IACtC,6CAA6C;IAC7C,OAAO,CAAC,UAAU,CAA6B;IAC/C,iFAAiF;IACjF,OAAO,CAAC,iBAAiB,CAAK;IAC9B,OAAO,CAAC,QAAQ,CAAK;IACrB,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAiC;IAC3D,OAAO,CAAC,SAAS,CAAS;IAC1B,OAAO,CAAC,UAAU,CAAK;gBAGF,GAAG,EAAE,kBAAkB,EACxC,OAAO,EAAE,kBAAkB;IAgB/B,MAAM,CAAC,OAAO,EAAE,kBAAkB,GAAG,IAAI;IAQzC,6CAA6C;IAC7C,IAAI,OAAO,IAAI,iBAAiB,GAAG,IAAI,CAEtC;IAED,OAAO,CAAC,eAAe;IAOvB,OAAO,CAAC,QAAQ;YAMF,IAAI;IAqBlB,OAAO,CAAC,KAAK;IAcb,OAAO,CAAC,GAAG;IAIX,OAAO,CAAC,UAAU;IAiBlB,OAAO,CAAC,UAAU;IA2ClB;;;OAGG;IACH,OAAO,CAAC,YAAY;IAmBpB,mFAAmF;IACnF,OAAO,CAAC,QAAQ,CAAC,MAAM,CAUrB;IAEF;;;OAGG;IACH,OAAO,CAAC,QAAQ,CAAC,IAAI,CAgBnB;IAEF,OAAO,CAAC,SAAS;IAqCjB,gFAAgF;IAChF,OAAO,CAAC,QAAQ,CAAC,SAAS,CAGxB;IAEF,OAAO,CAAC,QAAQ,CAAC,OAAO,CAGtB;IAEF,OAAO,IAAI,IAAI;CAgBlB"}
1
+ {"version":3,"file":"SponsorshipLayer.d.ts","sourceRoot":"","sources":["../../../src/plugins/sponsorship/SponsorshipLayer.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAC;AACzE,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AAE1D,MAAM,WAAW,kBAAkB;IAC/B,MAAM,EAAE,WAAW,CAAC;IACpB,OAAO,EAAE,gBAAgB,CAAC;IAC1B,4DAA4D;IAC5D,SAAS,EAAE,WAAW,CAAC;IACvB,IAAI,EAAE,iBAAiB,CAAC;IACxB,GAAG,CAAC,KAAK,EAAE;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,KAAK,CAAC,EAAE,OAAO,CAAC;QAAC,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,SAAS,CAAC,CAAA;KAAE,GAAG,IAAI,CAAC;CAC3H;AAiCD,4EAA4E;AAC5E,wBAAgB,oBAAoB,CAAC,GAAG,EAAE,OAAO,GAAG,iBAAiB,GAAG,IAAI,CAuC3E;AAWD;;;;GAIG;AACH,qBAAa,gBAAgB;IAuBrB,OAAO,CAAC,QAAQ,CAAC,GAAG;IAtBxB,OAAO,CAAC,OAAO,CAAqB;IACpC,OAAO,CAAC,MAAM,CAAkC;IAChD,OAAO,CAAC,MAAM,CAAmD;IACjE,OAAO,CAAC,OAAO,CAA+B;IAC9C,OAAO,CAAC,UAAU,CAA8C;IAChE,OAAO,CAAC,YAAY,CAA+C;IACnE,0GAA0G;IAC1G,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAwB;IACvD,iGAAiG;IACjG,OAAO,CAAC,cAAc,CAA6B;IACnD,gDAAgD;IAChD,OAAO,CAAC,SAAS,CAAqB;IACtC,6CAA6C;IAC7C,OAAO,CAAC,UAAU,CAA6B;IAC/C,iFAAiF;IACjF,OAAO,CAAC,iBAAiB,CAAK;IAC9B,OAAO,CAAC,QAAQ,CAAK;IACrB,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAiC;IAC3D,OAAO,CAAC,SAAS,CAAS;IAC1B,OAAO,CAAC,UAAU,CAAK;gBAGF,GAAG,EAAE,kBAAkB,EACxC,OAAO,EAAE,kBAAkB;IAgB/B,MAAM,CAAC,OAAO,EAAE,kBAAkB,GAAG,IAAI;IAQzC,6CAA6C;IAC7C,IAAI,OAAO,IAAI,iBAAiB,GAAG,IAAI,CAEtC;IAED,OAAO,CAAC,eAAe;IAOvB,OAAO,CAAC,QAAQ;YAMF,IAAI;IAqBlB,OAAO,CAAC,KAAK;IAcb,OAAO,CAAC,GAAG;IAIX,OAAO,CAAC,UAAU;IAiBlB,OAAO,CAAC,UAAU;IA2ClB;;;OAGG;IACH,OAAO,CAAC,YAAY;IAqBpB,mFAAmF;IACnF,OAAO,CAAC,QAAQ,CAAC,MAAM,CAUrB;IAEF;;;OAGG;IACH,OAAO,CAAC,QAAQ,CAAC,IAAI,CAgBnB;IAEF,OAAO,CAAC,SAAS;IAqCjB,gFAAgF;IAChF,OAAO,CAAC,QAAQ,CAAC,SAAS,CAGxB;IAEF,OAAO,CAAC,QAAQ,CAAC,OAAO,CAGtB;IAEF,OAAO,IAAI,IAAI;CAgBlB"}
@@ -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;
@@ -203,7 +205,10 @@ export type RewardedProvider =
203
205
  /** Kendi reklam sisteminiz: reklamı gösterip sonucu döndürün. */
204
206
  | {
205
207
  type: 'custom';
206
- show: () => Promise<RewardedResult | boolean>;
208
+ /** `signal`: kullanıcı reklam hazırlanırken "Vazgeç" derse iptal edilir — reklamınızı durdurabilirsiniz. */
209
+ show: (ctx: {
210
+ signal: AbortSignal;
211
+ }) => Promise<RewardedResult | boolean>;
207
212
  };
208
213
  /**
209
214
  * Ö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 +226,11 @@ export interface RewardedUnlockOptions {
221
226
  unlockFor?: 'video' | 'session' | number;
222
227
  /** Video üzerinde "Yüksek kaliteyi aç" butonu. Varsayılan true. Kapalıysa kilit yalnızca ayarlar menüsünden açılır. */
223
228
  button?: boolean;
224
- /** Reklam yoksa (no fill) kilidi yine de aç. Varsayılan false. */
229
+ /**
230
+ * Reklam gelmezse (boş yanıt, hata, engelleyici, zaman aşımı) kilidi yine de aç — "şu an reklam yoktu" bildirimiyle.
231
+ * Varsayılan true: reklam sistemindeki bir sorun kullanıcıyı düşük kaliteye mahkûm etmesin. `false`: "reklam yok"
232
+ * bilgisi gösterilir, kilit kapalı kalır. Kullanıcı kendisi vazgeçerse kilit hiçbir durumda açılmaz.
233
+ */
225
234
  grantOnNoFill?: boolean;
226
235
  /** Tarayıcı deposundaki anahtar (birden fazla site / kanal için ayırmak isterseniz). Varsayılan 'hope-rewarded-unlock'. */
227
236
  storageKey?: string;
@@ -296,6 +305,197 @@ export interface SponsorshipOptions {
296
305
  /** İstek zaman aşımı (ms). Varsayılan 5000. */
297
306
  timeoutMs?: number;
298
307
  }
308
+ /**
309
+ * Reklam tetikleyicisi: ne zaman bir Ad Manager (DFP) out-of-page reklamının isteneceği. `delay` (sn): olaydan bu kadar
310
+ * sonra — o ana kadar koşul bozulursa (ör. tam ekrandan çıkıldı, oynatma devam etti) iptal.
311
+ */
312
+ export type AdTrigger =
313
+ /** İçerikte belirli saniyeler (VOD); canlıda gerçek izleme süresi. Doğal ilerlemede tetiklenir — ileri sarınca atlanır. */
314
+ {
315
+ type: 'time';
316
+ at: number[];
317
+ }
318
+ /** Her N sn gerçek izlemede (duraklatma, arka plan sekme ve reklam sayılmaz). İlki `startAfter` sn sonra (varsayılan `every`). */
319
+ | {
320
+ type: 'interval';
321
+ every: number;
322
+ startAfter?: number;
323
+ }
324
+ /** İçeriğin yüzdesi (1–99), yalnızca VOD. */
325
+ | {
326
+ type: 'percent';
327
+ at: number[];
328
+ }
329
+ /** Tam ekrana her girişte. */
330
+ | {
331
+ type: 'fullscreen';
332
+ delay?: number;
333
+ }
334
+ /** Tam ekrandan her çıkışta. */
335
+ | {
336
+ type: 'fullscreenExit';
337
+ delay?: number;
338
+ }
339
+ /** İçerik ilk kez oynamaya başlayınca. */
340
+ | {
341
+ type: 'start';
342
+ delay?: number;
343
+ }
344
+ /** Kullanıcı duraklatınca (hâlâ duraklatılmışsa). */
345
+ | {
346
+ type: 'pause';
347
+ delay?: number;
348
+ }
349
+ /** Duraklatmadan sonra devam edince. */
350
+ | {
351
+ type: 'resume';
352
+ delay?: number;
353
+ }
354
+ /** İçerik bitince. */
355
+ | {
356
+ type: 'ended';
357
+ delay?: number;
358
+ };
359
+ /** Ad Manager key-value'ları: JSON nesnesi (değer metin, sayı, boolean ya da dizi) veya `"k=v&k2=a,b"` metni. */
360
+ export type AdTriggerCustParams = Record<string, string | number | boolean | Array<string | number>> | string;
361
+ export type AdTriggerLayout = 'none' | 'full' | 'center' | 'top' | 'bottom' | 'top-left' | 'top-right' | 'bottom-left' | 'bottom-right';
362
+ /** Tek bir reklam kuralı: hangi reklam birimi, hangi olaylarda, nasıl gösterilsin. */
363
+ export interface AdTriggerRule {
364
+ /** Kural kimliği — olaylarda ve `hp_rule` hedeflemesinde. */
365
+ id?: string;
366
+ /** Ad Manager reklam birimi yolu, ör. '/1234567/video_oop'. Out-of-page slot olarak istenir; içeriği Ad Manager'da ne doldurulursa o. */
367
+ adUnitPath: string;
368
+ /** 'any' (varsayılan): her durumda. 'fullscreen': yalnızca tam ekrandayken. 'normal': yalnızca tam ekran değilken. */
369
+ mode?: 'any' | 'normal' | 'fullscreen';
370
+ triggers: AdTrigger[];
371
+ /** Slot hedeflemesi (key-value). Player ayrıca `hp_trigger`, `hp_mode`, `hp_rule` ekler. */
372
+ targeting?: Record<string, string | string[]>;
373
+ /**
374
+ * DFP isteğinin `cust_params` (key-value) değerleri — JSON: `{ "kategori": "spor", "etiket": ["mac", "ozet"], "sezon": 2026 }`
375
+ * ya da metin: `"kategori=spor&etiket=mac,ozet"`. API yanıtında `cust_params` adıyla da yazılabilir. `targeting`'i ezer.
376
+ */
377
+ custParams?: AdTriggerCustParams;
378
+ /**
379
+ * Reklam kutusunun player içindeki yeri. 'none' (varsayılan): player yalnızca out-of-page isteğini atar ve kreatifi
380
+ * player içine yerleştirir — kutu, etiket, kapat butonu, karartma yok; görünüm ve kapanış kreatifin kendi kodunda
381
+ * (kapatmak için `player.closeAdTrigger()`). 'full': tüm video alanı; diğerleri o köşede/kenarda bir kutu.
382
+ */
383
+ layout?: AdTriggerLayout;
384
+ /** Kutu boyutu [genişlik, yükseklik] px ('full' dışı) — sığmazsa oranı korunarak küçülür. Verilmezse reklamın kendi boyutu. */
385
+ size?: [number, number];
386
+ /** Arkayı karart ('none' dışı). Varsayılan false ('full' düzende true). */
387
+ backdrop?: boolean;
388
+ /** Reklam görünürken içeriği duraklat, kapanınca devam et. Varsayılan false. */
389
+ pauseContent?: boolean;
390
+ /** Kapat (X) butonu ('none' dışı). Varsayılan true. */
391
+ closeButton?: boolean;
392
+ /** Kapat butonu kaç sn sonra görünsün. Varsayılan 0. */
393
+ closeDelay?: number;
394
+ /** Kaç sn sonra kendiliğinden kapansın. Verilmezse kullanıcı kapatana / koşul bozulana kadar. */
395
+ duration?: number;
396
+ /** Kutunun üstündeki "Reklam" etiketi ('none' dışı) — metin ya da `false` (gizle). */
397
+ label?: string | false;
398
+ /** Video başına en fazla kaç gösterim (dolu gelenler). */
399
+ maxShows?: number;
400
+ /** Bu kuralın iki gösterimi arasındaki en az süre (sn). */
401
+ minGapSeconds?: number;
402
+ /** Player bu genişlikten (px) darsa istenmez. */
403
+ minPlayerWidth?: number;
404
+ /** Takip pikselleri (GET). */
405
+ tracking?: {
406
+ impression?: string[];
407
+ close?: string[];
408
+ empty?: string[];
409
+ };
410
+ }
411
+ /** Reklam tetikleyici API'sinin döndürdüğü yapı. */
412
+ export interface AdTriggersConfig {
413
+ /** false ya da yoksa modül kapalı. */
414
+ active: boolean;
415
+ id?: string;
416
+ /** Geçerlilik aralığı (ISO 8601). */
417
+ validFrom?: string;
418
+ validUntil?: string;
419
+ /** Herhangi iki reklam arasındaki en az süre (sn), tüm kurallar için. Varsayılan 30. */
420
+ minGapSeconds?: number;
421
+ rules: AdTriggerRule[];
422
+ }
423
+ /**
424
+ * Reklam tetikleyici: kurallar sizin API'nizden (`endpoint` + `params`) ya da doğrudan `config` ile gelir; belirlenen
425
+ * anlarda (saniye, aralık, yüzde, tam ekrana giriş, duraklatma…) Ad Manager out-of-page reklamı istenip player içinde
426
+ * gösterilir — tam ekranda da.
427
+ */
428
+ export interface AdTriggersOptions {
429
+ /** JSON (AdTriggersConfig) döndüren adres (GET). */
430
+ endpoint?: string;
431
+ /** Adrese eklenecek sorgu parametreleri. */
432
+ params?: Record<string, string>;
433
+ fetchInit?: RequestInit;
434
+ /** API yerine doğrudan kurallar (ya da endpoint'e ulaşılamazsa kullanılacak varsayılan). */
435
+ config?: AdTriggersConfig;
436
+ /** Kuralları periyodik yeniden çek (sn, en az 10). */
437
+ refreshSeconds?: number;
438
+ /** API isteği zaman aşımı (ms). Varsayılan 5000. */
439
+ timeoutMs?: number;
440
+ /** GPT yükleme + reklam yanıtı için en fazla bekleme (ms) — aşılırsa boş sayılır. Varsayılan 8000. */
441
+ renderTimeoutMs?: number;
442
+ /** Tüm slotlara eklenecek hedefleme (ör. içerik kimliği, kategori). */
443
+ targeting?: Record<string, string | string[]>;
444
+ /** Tüm isteklere eklenecek `cust_params` (sayfa / içerik bilgisi) — kuralın kendi `custParams`'ı aynı anahtarı ezer. */
445
+ custParams?: AdTriggerCustParams;
446
+ }
447
+ /** TV'ye gönderilecek kaynak: adres ya da adres + MIME türü. */
448
+ export type CastSource = string | {
449
+ src: string;
450
+ type?: string;
451
+ };
452
+ /**
453
+ * TV'ye yayın (Google Cast / AirPlay). Hepsi varsayılan olarak kapalı — açtığınız yollar kontrol çubuğuna buton
454
+ * olarak gelir; buton yalnızca yakında uygun bir cihaz varken görünür.
455
+ */
456
+ export interface CastOptions {
457
+ /**
458
+ * Google Cast: Chromecast, Google TV, Android TV ve Cast destekli TV'ler. Chrome / Edge (masaüstü ve Android),
459
+ * yalnızca HTTPS. Cast SDK yalnızca bu açıksa ve tarayıcı destekliyorsa yüklenir. Varsayılan false.
460
+ */
461
+ chromecast?: boolean;
462
+ /** AirPlay: Safari (iPhone, iPad, Mac) → Apple TV / AirPlay destekli TV. Varsayılan false. */
463
+ airplay?: boolean;
464
+ /**
465
+ * Tarayıcının kendi "cihaza yayınla" seçicisi (Remote Playback API) — Cast SDK'sız Android Chrome gibi durumlar için.
466
+ * Yalnızca doğrudan adresli kaynaklarda (MP4 vb., hls.js değil). Varsayılan false.
467
+ */
468
+ remotePlayback?: boolean;
469
+ /** Cast receiver uygulama kimliği. Varsayılan Google'ın Default Media Receiver'ı ('CC1AD845'). */
470
+ receiverAppId?: string;
471
+ /**
472
+ * TV'ye gönderilecek ayrı kaynak (ör. TV'ye özel imzalı adres). Fonksiyon o an çalan kaynağı alır.
473
+ * Verilmezse çalan kaynak gönderilir (TV adrese erişebilmeli; HLS için CORS gerekir).
474
+ */
475
+ source?: CastSource | ((current: {
476
+ src: string;
477
+ type?: string;
478
+ }) => CastSource);
479
+ /** TV ekranında gösterilecek bilgiler. Verilmezse ses modunun başlık / sanatçı / kapağı ya da `poster`. */
480
+ metadata?: {
481
+ title?: string;
482
+ subtitle?: string;
483
+ image?: string;
484
+ };
485
+ /**
486
+ * TV'de reklam (Google Cast). true (varsayılan): `ads` seçeneğindeki VMAP ya da preroll / midroll / postroll
487
+ * VAST tag'leri receiver'a gönderilir, reklamları TV oynatır. false: reklamsız. Nesne: TV'ye özel tag'ler.
488
+ */
489
+ ads?: boolean | {
490
+ vmap?: string;
491
+ preroll?: string;
492
+ midroll?: string;
493
+ midrollIntervalSeconds?: number;
494
+ postroll?: string;
495
+ };
496
+ /** HLS segment biçimi (receiver bunu tahmin edemez): 'ts' (varsayılan) ya da 'fmp4'. */
497
+ hlsSegmentFormat?: 'ts' | 'fmp4';
498
+ }
299
499
  export interface AudioOptions {
300
500
  /** Kapak görseli. Verilmezse `poster` kullanılır; o da yoksa temanın renkleriyle düz bir zemin. */
301
501
  cover?: string;
@@ -615,8 +815,17 @@ export interface HopePlayerOptions {
615
815
  id?: string;
616
816
  /** Tek kaynak — sources verilmemişse kullanılır. .m3u8 ise otomatik HLS. */
617
817
  src?: string;
618
- /** Birden fazla kalite/kaynak — doluysa kalite menüsü gösterilir. */
818
+ /**
819
+ * Birden fazla kalite/kaynak — doluysa kalite menüsü gösterilir. Farklı biçimler (ör. bir HLS + MP4 kaliteleri)
820
+ * 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
821
+ * (yüklenemedi, desteklenmiyor, yayın koptu) konum korunarak sıradaki gruba geçilir. Sıra: `sourcePriority`.
822
+ */
619
823
  sources?: HopeSourceOption[];
824
+ /**
825
+ * Biçim grupları hangi sırayla denensin, ör. `['hls', 'mp4']`. Verilmezse listede ilk görünme sırası.
826
+ * Listede olmayan biçimler sona eklenir. Tarayıcının hiç oynatamadığı biçim (ör. Safari'de webm) atlanır.
827
+ */
828
+ sourcePriority?: HopeSourceFormat[];
620
829
  poster?: string;
621
830
  /**
622
831
  * 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 +872,10 @@ export interface HopePlayerOptions {
663
872
  rewardedUnlock?: RewardedUnlockOptions;
664
873
  /** Sponsorluk katmanı (renkler, logo, giriş) — ayarları sizin API'nizden alır. */
665
874
  sponsorship?: SponsorshipOptions;
875
+ /** Kurallara göre (saniye, tam ekrana giriş, duraklatma…) tetiklenen Ad Manager out-of-page reklamları — bkz. AdTriggersOptions. */
876
+ adTriggers?: AdTriggersOptions;
877
+ /** TV'ye yayın: Google Cast (Chromecast) ve AirPlay — varsayılan kapalı, bkz. CastOptions. */
878
+ cast?: CastOptions;
666
879
  /** Süre göstergesinde kalan süreyi (-0:10 / 0:15) gösterme. Varsayılan false (geçen süre). */
667
880
  showRemainingTime?: boolean;
668
881
  /** Oynat butonunun yanında geri/ileri sarma butonları. `true` = 10 sn geri + 10 sn ileri. Varsayılan kapalı. */
@@ -756,6 +969,16 @@ export type HopePlayerEventMap = {
756
969
  'hp:qualitychange': CustomEvent<{
757
970
  label: string;
758
971
  }>;
972
+ /**
973
+ * Kaynak grubu değişti: `from` grubu ölümcül hata verdi (ya da tarayıcı oynatamıyor) ve `to` grubuna geçildi.
974
+ * `code`: MediaError kodu (2 ağ, 3 çözümleme, 4 desteklenmiyor); `skipped`: denenmeden atlandı (desteklenmiyor).
975
+ */
976
+ 'hp:sourcefallback': CustomEvent<{
977
+ from: HopeSourceFormat;
978
+ to: HopeSourceFormat;
979
+ code?: number;
980
+ skipped?: boolean;
981
+ }>;
759
982
  'hp:ratechange': CustomEvent<{
760
983
  rate: number;
761
984
  }>;
@@ -787,6 +1010,42 @@ export type HopePlayerEventMap = {
787
1010
  sticky: boolean;
788
1011
  corner?: StickyCorner;
789
1012
  }>;
1013
+ /**
1014
+ * TV yayın durumu değişti. `state`: available (cihaz var), unavailable, connecting, connected, disconnected.
1015
+ * `via`: chromecast | airplay | remote. `device`: cihaz adı (Cast).
1016
+ */
1017
+ 'hp:cast': CustomEvent<{
1018
+ state: 'available' | 'unavailable' | 'connecting' | 'connected' | 'disconnected';
1019
+ via: 'chromecast' | 'airplay' | 'remote';
1020
+ device?: string;
1021
+ }>;
1022
+ /** Reklam tetikleyici kuralları yüklendi (null = kapalı). */
1023
+ 'hp:adtriggers': CustomEvent<{
1024
+ config: AdTriggersConfig | null;
1025
+ }>;
1026
+ /** Tetikleyici reklamı doldu ve gösterildi. */
1027
+ /** `custParams`: isteğe giden tüm key-value'lar (sayfa + kural + hp_*). */
1028
+ 'hp:adtriggershow': CustomEvent<{
1029
+ rule?: string;
1030
+ trigger: AdTrigger['type'];
1031
+ adUnitPath: string;
1032
+ fullscreen: boolean;
1033
+ custParams: Record<string, string | string[]>;
1034
+ }>;
1035
+ /** Reklam boş döndü, hata verdi ya da zaman aşımına uğradı. */
1036
+ 'hp:adtriggerempty': CustomEvent<{
1037
+ rule?: string;
1038
+ trigger: AdTrigger['type'];
1039
+ adUnitPath: string;
1040
+ }>;
1041
+ /**
1042
+ * Reklam kapandı — `reason`: user (X ya da `closeAdTrigger()`), timeout (duration), mode (tam ekran durumu değişti),
1043
+ * ad (video reklamı başladı), content (içerik değişti), replaced ('none' reklamı yeni tetiklemeyle değişti).
1044
+ */
1045
+ 'hp:adtriggerclose': CustomEvent<{
1046
+ rule?: string;
1047
+ reason: 'user' | 'timeout' | 'mode' | 'ad' | 'content' | 'replaced';
1048
+ }>;
790
1049
  'hp:pausead': CustomEvent<{
791
1050
  state: 'shown' | 'hidden' | 'empty';
792
1051
  size?: [number, number];