@kkcompany/ott-player 0.5.6 → 0.5.8

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/CHANGELOG.md CHANGED
@@ -2,6 +2,15 @@
2
2
 
3
3
  All notable changes to this project will be documented in this file. See [standard-version](https://github.com/conventional-changelog/standard-version) for commit guidelines.
4
4
 
5
+ ### [0.5.8](https://gitlab.kkinternal.com/kks-web/blahaj/compare/player@0.5.7...player@0.5.8) (2026-07-29)
6
+
7
+
8
+ ### Bug Fixes
9
+
10
+ * use default playback api error handling ([53652ee](https://gitlab.kkinternal.com/kks-web/blahaj/commit/53652ee2ec2b689303c0ffedc3a8a88f24ee24ca))
11
+
12
+ ### [0.5.7](https://gitlab.kkinternal.com/kks-web/blahaj/compare/player@0.5.6...player@0.5.7) (2026-07-17)
13
+
5
14
  ### [0.5.6](https://gitlab.kkinternal.com/kks-web/blahaj/compare/player@0.5.5...player@0.5.6) (2026-07-10)
6
15
 
7
16
  ### [0.5.5](https://gitlab.kkinternal.com/kks-web/blahaj/compare/player@0.5.3...player@0.5.5) (2026-07-10)
package/dist/index.cjs CHANGED
@@ -790,13 +790,15 @@ const startPlaybackSession = async (playbackApi, options = {}) => {
790
790
  const waitForContent = Promise.race([updateContent({ useCache: true }), new Promise((resolve) => {
791
791
  setTimeout(resolve, UPDATE_INTERVAL_MS);
792
792
  })]);
793
- const sessionInfo = await playbackApi.startPlayback({
793
+ if (!options.request) performance.mark("session-request");
794
+ const sessionInfo = await (options.request || playbackApi.startPlayback({
794
795
  type: type$1,
795
796
  id
796
- }).catch((error) => {
797
+ })).catch((error) => {
797
798
  unlockSession();
798
799
  return Promise.reject(error);
799
800
  });
801
+ if (options.preconnect && sessionInfo.drm_portal_url) options.preconnect(sessionInfo.drm_portal_url);
800
802
  onSessionStart?.(sessionInfo);
801
803
  const requestParams = {
802
804
  type: type$1,
@@ -812,6 +814,7 @@ const startPlaybackSession = async (playbackApi, options = {}) => {
812
814
  }),
813
815
  isValid: (data) => data.sources && isFreshCache(data)
814
816
  })).sources;
817
+ performance.mark("session-started");
815
818
  let updateIntervalId;
816
819
  if (type$1 === "lives") updateIntervalId = setInterval(updateContent, updateTime);
817
820
  const updateLastPlayed = ({ forced } = {}) => {
@@ -914,7 +917,7 @@ var preload_default = preload;
914
917
 
915
918
  //#endregion
916
919
  //#region package.json
917
- var version = "0.5.6";
920
+ var version = "0.5.8";
918
921
 
919
922
  //#endregion
920
923
  //#region src/constants.js
@@ -959,7 +962,7 @@ const getEnterpriseDrmHeaders = ({ token, tokenType = "playback" }) => {
959
962
  };
960
963
  const sessionCache = {};
961
964
  const getCastState = () => window.cast?.framework?.CastContext.getInstance()?.getCastState() || CastState.NO_DEVICES_AVAILABLE;
962
- const PremiumPlusPlayer = ({ controls, preload: preload$1 = "auto", preloadList = [], currentTime, quality, sourceType, host, accessToken, deviceId, headers, params, contentType, contentId, contentKey = `${contentType}/${contentId}`, autoplayNext, thumbnailSeeking, plugins = [], settings: appSettings = {}, coverImageUrl, coverImageDisplay = "auto", recommendation, uiElements: { castButton, ...uiElements } = {}, playerRef, children, slotProps, onError, onApiError, onBack, onPlaybackStateChange, onPlayerLoaded, onChange, onPlaybackApiResponse, sendLog, playbackState: appPlaybackState, turnOnSkipOpening, shouldHideSkipButton = false, playerToModuleErrorCodeMap, drmOptions = {}, ...rest }) => {
965
+ const PremiumPlusPlayer = ({ controls, preload: preload$1 = "auto", preloadList = [], currentTime, quality, sourceType, host, accessToken, deviceId, headers, params, contentType, contentId, contentKey = `${contentType}/${contentId}`, autoplayNext, thumbnailSeeking, plugins = [], settings: appSettings = {}, coverImageUrl, coverImageDisplay = "auto", recommendation, uiElements: { castButton, ...uiElements } = {}, playerRef, children, slotProps, sessionRequest, preconnect, onError, onApiError, onBack, onPlaybackStateChange, onPlayerLoaded, onChange, onPlaybackApiResponse, sendLog, playbackState: appPlaybackState, turnOnSkipOpening, shouldHideSkipButton = false, playerToModuleErrorCodeMap, drmOptions = {}, ...rest }) => {
963
966
  const components = {
964
967
  LinearEnd: __kkcompany_player_react.LiveEnd,
965
968
  ...rest.slots
@@ -1042,6 +1045,8 @@ const PremiumPlusPlayer = ({ controls, preload: preload$1 = "auto", preloadList
1042
1045
  id: contentId,
1043
1046
  key: contentKey,
1044
1047
  media: videoRef.current,
1048
+ request: sessionRequest,
1049
+ preconnect,
1045
1050
  getCurrentTime: () => (0, __kkcompany_player_core.getMediaTime)(videoRef.current, {
1046
1051
  player: corePlayerRef.current,
1047
1052
  plugins
@@ -1282,6 +1287,23 @@ const PremiumPlusPlayer = ({ controls, preload: preload$1 = "auto", preloadList
1282
1287
  };
1283
1288
  var PremiumPlusPlayer_default = PremiumPlusPlayer;
1284
1289
 
1290
+ //#endregion
1291
+ //#region src/playbackSession/preloadSession.js
1292
+ const preloadSession = ({ host, accessToken, deviceId, headers, params, contentType, contentId }) => {
1293
+ performance.mark("session-request");
1294
+ return (0, __kkcompany_player_modules.createApi)({
1295
+ host,
1296
+ accessToken,
1297
+ deviceId,
1298
+ headers,
1299
+ params
1300
+ }).startPlayback({
1301
+ type: contentType,
1302
+ id: contentId
1303
+ });
1304
+ };
1305
+ var preloadSession_default = preloadSession;
1306
+
1285
1307
  //#endregion
1286
1308
  //#region src/playerUtils.js
1287
1309
  const validateBrowser = (browserWhiteList) => {
@@ -1364,6 +1386,7 @@ exports.dispatchPlaybackError = dispatchPlaybackError;
1364
1386
  exports.handleIOSHeadphonesDisconnection = __kkcompany_player_modules.handleIOSHeadphonesDisconnection;
1365
1387
  exports.initSender = __kkcompany_player_modules.initSender;
1366
1388
  exports.linkCast = __kkcompany_player_modules.linkCast;
1389
+ exports.preloadSession = preloadSession_default;
1367
1390
  exports.selectHlsQualities = __kkcompany_player_modules.selectHlsQualities;
1368
1391
  exports.stopCast = __kkcompany_player_modules.stopCast;
1369
1392
  exports.subscribeCastState = __kkcompany_player_modules.subscribeCastState;
package/dist/index.mjs CHANGED
@@ -766,13 +766,15 @@ const startPlaybackSession = async (playbackApi, options = {}) => {
766
766
  const waitForContent = Promise.race([updateContent({ useCache: true }), new Promise((resolve) => {
767
767
  setTimeout(resolve, UPDATE_INTERVAL_MS);
768
768
  })]);
769
- const sessionInfo = await playbackApi.startPlayback({
769
+ if (!options.request) performance.mark("session-request");
770
+ const sessionInfo = await (options.request || playbackApi.startPlayback({
770
771
  type: type$1,
771
772
  id
772
- }).catch((error) => {
773
+ })).catch((error) => {
773
774
  unlockSession();
774
775
  return Promise.reject(error);
775
776
  });
777
+ if (options.preconnect && sessionInfo.drm_portal_url) options.preconnect(sessionInfo.drm_portal_url);
776
778
  onSessionStart?.(sessionInfo);
777
779
  const requestParams = {
778
780
  type: type$1,
@@ -788,6 +790,7 @@ const startPlaybackSession = async (playbackApi, options = {}) => {
788
790
  }),
789
791
  isValid: (data) => data.sources && isFreshCache(data)
790
792
  })).sources;
793
+ performance.mark("session-started");
791
794
  let updateIntervalId;
792
795
  if (type$1 === "lives") updateIntervalId = setInterval(updateContent, updateTime);
793
796
  const updateLastPlayed = ({ forced } = {}) => {
@@ -890,7 +893,7 @@ var preload_default = preload;
890
893
 
891
894
  //#endregion
892
895
  //#region package.json
893
- var version = "0.5.6";
896
+ var version = "0.5.8";
894
897
 
895
898
  //#endregion
896
899
  //#region src/constants.js
@@ -935,7 +938,7 @@ const getEnterpriseDrmHeaders = ({ token, tokenType = "playback" }) => {
935
938
  };
936
939
  const sessionCache = {};
937
940
  const getCastState = () => window.cast?.framework?.CastContext.getInstance()?.getCastState() || CastState.NO_DEVICES_AVAILABLE;
938
- const PremiumPlusPlayer = ({ controls, preload: preload$1 = "auto", preloadList = [], currentTime, quality, sourceType, host, accessToken, deviceId, headers, params, contentType, contentId, contentKey = `${contentType}/${contentId}`, autoplayNext, thumbnailSeeking, plugins = [], settings: appSettings = {}, coverImageUrl, coverImageDisplay = "auto", recommendation, uiElements: { castButton, ...uiElements } = {}, playerRef, children, slotProps, onError, onApiError, onBack, onPlaybackStateChange, onPlayerLoaded, onChange, onPlaybackApiResponse, sendLog, playbackState: appPlaybackState, turnOnSkipOpening, shouldHideSkipButton = false, playerToModuleErrorCodeMap, drmOptions = {}, ...rest }) => {
941
+ const PremiumPlusPlayer = ({ controls, preload: preload$1 = "auto", preloadList = [], currentTime, quality, sourceType, host, accessToken, deviceId, headers, params, contentType, contentId, contentKey = `${contentType}/${contentId}`, autoplayNext, thumbnailSeeking, plugins = [], settings: appSettings = {}, coverImageUrl, coverImageDisplay = "auto", recommendation, uiElements: { castButton, ...uiElements } = {}, playerRef, children, slotProps, sessionRequest, preconnect, onError, onApiError, onBack, onPlaybackStateChange, onPlayerLoaded, onChange, onPlaybackApiResponse, sendLog, playbackState: appPlaybackState, turnOnSkipOpening, shouldHideSkipButton = false, playerToModuleErrorCodeMap, drmOptions = {}, ...rest }) => {
939
942
  const components = {
940
943
  LinearEnd: LiveEnd$1,
941
944
  ...rest.slots
@@ -1018,6 +1021,8 @@ const PremiumPlusPlayer = ({ controls, preload: preload$1 = "auto", preloadList
1018
1021
  id: contentId,
1019
1022
  key: contentKey,
1020
1023
  media: videoRef.current,
1024
+ request: sessionRequest,
1025
+ preconnect,
1021
1026
  getCurrentTime: () => getMediaTime(videoRef.current, {
1022
1027
  player: corePlayerRef.current,
1023
1028
  plugins
@@ -1258,6 +1263,23 @@ const PremiumPlusPlayer = ({ controls, preload: preload$1 = "auto", preloadList
1258
1263
  };
1259
1264
  var PremiumPlusPlayer_default = PremiumPlusPlayer;
1260
1265
 
1266
+ //#endregion
1267
+ //#region src/playbackSession/preloadSession.js
1268
+ const preloadSession = ({ host, accessToken, deviceId, headers, params, contentType, contentId }) => {
1269
+ performance.mark("session-request");
1270
+ return createApi({
1271
+ host,
1272
+ accessToken,
1273
+ deviceId,
1274
+ headers,
1275
+ params
1276
+ }).startPlayback({
1277
+ type: contentType,
1278
+ id: contentId
1279
+ });
1280
+ };
1281
+ var preloadSession_default = preloadSession;
1282
+
1261
1283
  //#endregion
1262
1284
  //#region src/playerUtils.js
1263
1285
  const validateBrowser = (browserWhiteList) => {
@@ -1321,4 +1343,4 @@ const useAmplitudeLogger = ({ logger: setPlaybackRelatedEvt, remoteInfo: { endpo
1321
1343
  var useAmplitudeLogger_default = useAmplitudeLogger;
1322
1344
 
1323
1345
  //#endregion
1324
- export { Button, CastSender, ClassicLayout, ClassicSettingsContainer, ImaDaiPlugin, InfoBarExtension, LanguageMenu, LiveEnd, MenuItem, OverlayPanel, PremiumPlusPlayer_default as Player, PremiumPlayer, SkipButton, castMedia, classicStyleProps, dispatchPlaybackError, handleIOSHeadphonesDisconnection, initSender, linkCast, selectHlsQualities, stopCast, subscribeCastState, useAmplitudeLogger_default as useAmplitudeLogger, validateBrowser };
1346
+ export { Button, CastSender, ClassicLayout, ClassicSettingsContainer, ImaDaiPlugin, InfoBarExtension, LanguageMenu, LiveEnd, MenuItem, OverlayPanel, PremiumPlusPlayer_default as Player, PremiumPlayer, SkipButton, castMedia, classicStyleProps, dispatchPlaybackError, handleIOSHeadphonesDisconnection, initSender, linkCast, preloadSession_default as preloadSession, selectHlsQualities, stopCast, subscribeCastState, useAmplitudeLogger_default as useAmplitudeLogger, validateBrowser };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@kkcompany/ott-player",
3
- "version": "0.5.6",
3
+ "version": "0.5.8",
4
4
  "exports": {
5
5
  ".": {
6
6
  "import": "./dist/index.mjs",