senza-sdk 4.2.65-d2761c0.0 → 4.3.1-ca3d96f.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (27) hide show
  1. package/dist/bundle.js +1 -1
  2. package/package.json +17 -8
  3. package/src/api.js +258 -327
  4. package/src/{alarmManager.js → implementation/alarmManager.js} +15 -52
  5. package/src/implementation/api.js +363 -0
  6. package/src/{deviceManager.js → implementation/deviceManager.js} +6 -78
  7. package/src/{lifecycle.js → implementation/lifecycle.js} +37 -225
  8. package/src/implementation/messageManager.js +55 -0
  9. package/src/{platformManager.js → implementation/platformManager.js} +5 -23
  10. package/src/{remotePlayer.js → implementation/remotePlayer.js} +35 -237
  11. package/src/{senzaShakaPlayer.js → implementation/senzaShakaPlayer.js} +92 -125
  12. package/src/{utils.js → implementation/utils.js} +15 -6
  13. package/src/interface/alarmManager.js +76 -0
  14. package/src/interface/api.js +8 -0
  15. package/src/{devSequence.js → interface/devSequence.js} +35 -0
  16. package/src/interface/deviceManager.js +142 -0
  17. package/src/interface/lifecycle.js +283 -0
  18. package/src/interface/messageManager.js +53 -0
  19. package/src/interface/platformManager.js +41 -0
  20. package/src/interface/remotePlayer.js +470 -0
  21. package/src/interface/senzaShakaPlayer.js +168 -0
  22. package/src/interface/utils.js +45 -0
  23. package/src/messageManager.js +0 -88
  24. /package/src/{SessionInfo.js → implementation/SessionInfo.js} +0 -0
  25. /package/src/{devHelper.js → implementation/devHelper.js} +0 -0
  26. /package/src/{eventListenersManager.js → implementation/eventListenersManager.js} +0 -0
  27. /package/src/{subtitlesUtils.js → implementation/subtitlesUtils.js} +0 -0
package/src/api.js CHANGED
@@ -1,19 +1,16 @@
1
- import { getFCID, sdkLogger } from "./utils";
1
+ import { sdkLogger, noop } from "./interface/utils.js";
2
2
  import pack from "../package.json";
3
- import { sessionInfo } from "./SessionInfo";
4
- const { version } = pack;
5
- import { initSequence, showSequence } from "./devSequence.js";
6
- import { lifecycle } from "./lifecycle";
7
- import { alarmManager } from "./alarmManager";
8
-
9
- let authToken;
3
+ import { Lifecycle, RemotePlayer, DeviceManager, PlatformManager, AlarmManager, MessageManager, ShakaPlayer, shaka, showSequence, initSequence } from "./interface/api.js";
10
4
 
11
- const API_VERSION = "1.0";
5
+ const { version } = pack;
12
6
 
13
7
  typeof document !== "undefined" && document.addEventListener("keydown", (event) => {
14
8
  sdkLogger.log(`Got ${event.key} key`);
15
9
  });
16
10
 
11
+
12
+ let authToken;
13
+
17
14
  /** @namespace auth
18
15
  *@example
19
16
  * import { auth } from "senza-sdk";
@@ -51,314 +48,88 @@ export const ConnectReason = Object.freeze({
51
48
  UI_WATCHDOG: "ui_watchdog"
52
49
  });
53
50
 
54
- import { remotePlayer } from "./remotePlayer";
55
- export { remotePlayer };
56
-
57
- /** Should be called once to init the library
58
- *@example
51
+ /**
52
+ * Should be called once to init the library
53
+ * @example
59
54
  * import { init } from "senza-sdk";
60
55
  * await init();
61
56
  **/
62
57
  export async function init() {
63
- sdkLogger.log(`init ${version}`);
64
-
65
- if (!window.diagnostics) {
66
- // ------------------------------------------------------------------------------------------------
67
- // -- Do NOT change this log, as ui-streamer is checking this string to detect abnormal behavior --
68
- // ------------------------------------------------------------------------------------------------
69
- sdkLogger.error("[ init ] window.diagnostics is undefined");
70
- }
71
-
72
- if (window.cefQuery) {
73
-
74
- // First, check compatability with ui-streamer api version
75
- await new Promise((resolve, reject) => {
76
- window.cefQuery({
77
- request: "apiVersion " + API_VERSION,
78
- persistent: false,
79
- onSuccess: () => {
80
- sdkLogger.log("api version compatability check succeeded");
81
- resolve();
82
- },
83
- onFailure: (code, msg) => {
84
- sdkLogger.error("api version compatability check failed: " + msg);
85
- reject(msg);
86
- }
87
- });
88
- });
89
-
90
- const sessionInfoStr = await new Promise((resolve) => {
91
- window.cefQuery({
92
- request: "sessionInfo",
93
- persistent: false,
94
- onSuccess: (response) => {
95
- sdkLogger.log("sessionInfo request successfully returned " + response);
96
- resolve(response);
97
- },
98
- onFailure: (code, msg) => {
99
- sdkLogger.error(`sessionInfo request failed: ${code} ${msg}`);
100
- }
101
- });
102
- });
103
-
104
- sessionInfo.setSessionInfoStr(sessionInfoStr);
105
- const sessionInfoObj = JSON.parse(sessionInfoStr);
106
- authToken = sessionInfoObj?.settings?.webUI?.backendHeaders?.Authorization;
107
- sdkLogger.log(`authToken: token = ${authToken}`);
108
- // Listen to updateSession event to set the new token
109
- document.addEventListener("updateSession", (e) => {
110
- authToken = e.detail?.updateObj;
111
- sdkLogger.log(`onUpdateSessionEvent: token = ${authToken}`);
112
- });
113
-
114
- // Set default alarm timeout using UI-Streamer settings
115
- const alarmTimeout = sessionInfoObj?.settings?.["ui-streamer"]?.alarmTimeout;
116
- if (alarmTimeout) {
117
- alarmManager._setDefaultTimeout(alarmTimeout);
118
- }
119
-
120
- // Get trigger event
121
- const triggerEventStr = await new Promise((resolve) => {
122
- const FCID = getFCID();
123
- const logger = sdkLogger.withFields({ FCID });
124
- const message = { type: "triggerEvent", fcid: FCID };
125
- const request = { target: "UI-Streamer", waitForResponse: false, message: JSON.stringify(message) };
126
- window.cefQuery({
127
- request: JSON.stringify(request),
128
- persistent: false,
129
- onSuccess: (response) => {
130
- logger.log(`triggerEvent request successfully returned '${response}'`);
131
- resolve(response);
132
- },
133
- onFailure: (code, msg) => {
134
- logger.error(`triggerEvent request failed: ${code} ${msg}`);
135
- resolve("");
136
- }
137
- });
138
- });
139
- let triggerEvent = {};
140
- if (triggerEventStr) {
141
- try {
142
- triggerEvent = JSON.parse(triggerEventStr);
143
- } catch (e) {
144
- sdkLogger.error(`failed to parse trigger event string ${triggerEventStr}: ${e.message}`);
145
- }
146
- }
147
-
148
- // Initialize lifecycle first to make sure the state is updated.
149
- await lifecycle._init(sessionInfoObj?.settings?.["ui-streamer"], triggerEvent);
150
- await remotePlayer._init(sessionInfoObj?.settings?.["ui-streamer"], triggerEvent);
151
-
152
- const devSequence = sessionInfoObj?.settings?.["ui-streamer"]?.devSequence;
153
- if (devSequence) {
154
- initSequence({ lifecycle, remotePlayer });
155
- showSequence(true);
156
- }
157
-
58
+ sdkLogger.log(`init interface ${version}`);
59
+ if (window.senzaSDKImplementation) {
60
+ await window.senzaSDKImplementation.init(version, showSequence, initSequence);
158
61
  } else {
159
- authToken = getPlatformInfo().sessionInfo?.settings?.webUI?.backendHeaders?.Authorization;
160
- sdkLogger.log(`authToken dummy: token = ${authToken}`);
62
+ noop("init");
161
63
  }
162
-
163
64
  // override window.close() since it's not allowed to close the application this way
164
65
  window.close = () => {
165
66
  sdkLogger.warn("window.close is disabled on Senza platform. Use lifecycle.exitApplication() instead.");
166
67
  };
167
-
168
-
169
- }
170
-
171
- /**
172
- * @deprecated use lifecycle.connectReason instead
173
- * Returns the reason the ui has been loaded
174
- **/
175
- export function getConnectReason() {
176
- return lifecycle.connectReason;
177
- }
178
-
179
- /**
180
- * @deprecated use lifecycle.triggerEvent instead
181
- * Returns the event that triggered the reloading of the ui after ui has been released
182
- **/
183
- export function getTriggerEvent() {
184
- return lifecycle.triggerEvent;
185
68
  }
186
69
 
187
70
  // Returns the platform information, including version, pod, pod ip and session info.
188
71
  export function getPlatformInfo() {
189
- if (typeof window !== "undefined" && window.diagnostics) {
190
- try {
191
- const platformInfo = window.diagnostics() || {};
192
- platformInfo.sessionInfo = sessionInfo.sessionInfoObj;
193
- return platformInfo;
194
- } catch (e) {
195
- sdkLogger.error("Could not get platform info", e.stack);
196
- }
197
-
198
- } else {
199
- if (typeof window !== "undefined" && !window.diagnostics) {
200
- sdkLogger.error("[ getPlatformInfo ] window.diagnostics is undefined");
201
- }
202
- return {
203
- version: "X.X.XX-X",
204
- pod: "ui-streamer-X.X.XX-X-QWERT-ASDFG-XXX-XXXXXX-XXXXX",
205
- podIP: "0.0.0.0",
206
- sessionInfo: {
207
- userAgent: "SynamediaSenza/XX.YY.ZZ",
208
- connectionId: "dummy",
209
- deviceId: "123456789",
210
- community: "LocalDev",
211
- tenant: "XXXXXX",
212
- tenantId: "XXXXXX",
213
- manifest: {
214
- transcontainer: "X.X.XX-X"
215
- },
216
- settings: {
217
- webUI: {
218
- backendHeaders: {
219
- Authorization: "Bearer dummytoken"
220
- }
72
+ if (window.senzaSDKImplementation) {
73
+ return window.senzaSDKImplementation.getPlatformInfo();
74
+ }
75
+ return {
76
+ version: "X.X.XX-X",
77
+ pod: "ui-streamer-X.X.XX-X-QWERT-ASDFG-XXX-XXXXXX-XXXXX",
78
+ podIP: "0.0.0.0",
79
+ sessionInfo: {
80
+ userAgent: "SynamediaSenza/XX.YY.ZZ",
81
+ connectionId: "dummy",
82
+ deviceId: "123456789",
83
+ community: "LocalDev",
84
+ tenant: "XXXXXX",
85
+ tenantId: "XXXXXX",
86
+ manifest: {
87
+ transcontainer: "X.X.XX-X"
88
+ },
89
+ settings: {
90
+ webUI: {
91
+ backendHeaders: {
92
+ Authorization: "Bearer dummytoken"
221
93
  }
222
- },
223
- homeSessionInfo: {
224
- tenantId: "XXXXXX",
225
- community: "LocalDev"
226
94
  }
227
- }
228
- };
229
- }
230
- }
231
- /**
232
- *
233
- * Returns the device information, including device id, connection id, community, tenant and client ip
234
- * */
235
- /**
236
- * @deprecated use platformManager.setTimezone instead.
237
- * @param {string} timezone the timezone to set to
238
- * the format of the timezone is according to the standard TZ identifier
239
- * (e.g. America/Los_Angeles, Asia/Tokyo, Europe/Brussels)
240
- * for a full list of TZ identifiers, see https://en.wikipedia.org/wiki/List_of_tz_database_time_zones
241
- */
242
- export function setTimezone(timezone) {
243
- // STOP DO NOT CHANGE THIS FUNCTION AS IT IS DEPRECATED!!!!
244
- if (window.cefQuery) {
245
- const request = { message: JSON.stringify({ type: "setTimeZone", timezone }), waitForResponse: false, target: "UI-Streamer" };
246
- window.cefQuery({
247
- request: JSON.stringify(request),
248
- persistent: false,
249
- onSuccess: () => {
250
- sdkLogger.log("timezome is successfully set to", timezone);
251
95
  },
252
- onFailure: (code, msg) => {
253
- sdkLogger.error(`error occurred setting timezone to ${timezone}: ${code} ${msg}`);
96
+ homeSessionInfo: {
97
+ tenantId: "XXXXXX",
98
+ community: "LocalDev"
254
99
  }
255
- });
256
- }
100
+ }
101
+ };
257
102
  }
258
103
 
259
104
  async function getToken() {
260
- if (!authToken) {
261
- sdkLogger.log("getToken wait for promise updateSession event");
262
- return new Promise((resolve) => {
263
- // Listen to updateSession event to set the new token
264
- document.addEventListener("updateSession", (e) => {
265
- authToken = e.detail?.updateObj;
266
- sdkLogger.log(`onUpdateSessionEvent: token= ${authToken}`);
267
- resolve(authToken);
268
- }, { once: true });
269
- });
105
+ if (window.senzaSDKImplementation) {
106
+ return window.senzaSDKImplementation.auth.getToken();
270
107
  }
271
108
  return Promise.resolve(authToken);
272
109
  }
273
110
 
274
111
  function forceTokenUpdate() {
275
112
  authToken = null;
276
-
277
- if (window.cefQuery) {
278
- const FCID = getFCID();
279
- const logger = sdkLogger.withFields({ FCID });
280
- logger.log("forceTokenUpdate: sending updateSessionRequest");
281
- const message = {
282
- type: "updateSessionRequest",
283
- updateKey: "authorization",
284
- parentPath: "settings.webUI.backendHeaders.Authorization",
285
- fcid: FCID
286
- };
287
- const request = { target: "TC", waitForResponse: false, message: JSON.stringify(message) };
288
- window.cefQuery({
289
- request: JSON.stringify(request),
290
- persistent: false,
291
- onSuccess: () => {
292
- logger.log("updateSessionRequest successfully sent");
293
- },
294
- onFailure: (code, msg) => {
295
- logger.error(`updateSessionRequest failed: ${code} ${msg}`);
296
- }
297
- });
298
- } else {
299
- sdkLogger.error("forceTokenUpdate: window.cefQuery is undefined");
113
+ if (window.senzaSDKImplementation) {
114
+ return window.senzaSDKImplementation.auth.forceTokenUpdate();
300
115
  }
116
+ sdkLogger.error("forceTokenUpdate: window.cefQuery is undefined");
117
+
301
118
  }
302
119
 
303
120
  /** Returns a boolean that indicates whether we are running in an e2e environment, or on local browser */
304
121
  export function isRunningE2E() {
305
- return !!(typeof window !== "undefined" && window.cefQuery);
122
+ return !!(typeof window !== "undefined" && window.senzaSDKImplementation);
306
123
  }
307
124
 
308
125
  /** Call this API once after application startup, when the ui is ready to accept keys/events */
309
126
  export function uiReady() {
310
- if (window.cefQuery) {
311
- window.cefQuery({
312
- request: "uiReady",
313
- persistent: false,
314
- onSuccess: () => {
315
- sdkLogger.log("uiReady request successfully sent");
316
- },
317
- onFailure: (code, msg) => {
318
- sdkLogger.error(`uiReady request failed: ${code} ${msg}`);
319
- }
320
- });
321
- } else {
322
- sdkLogger.error("uiReady: window.cefQuery is undefined");
127
+ if (window.senzaSDKImplementation) {
128
+ return window.senzaSDKImplementation.uiReady();
323
129
  }
130
+ sdkLogger.error("uiReady: window.cefQuery is undefined");
324
131
  }
325
132
 
326
- /**
327
- * @deprecated use deviceManager.deviceInfo instead.
328
- * Returns the device information, including device id, connection id, community, tenant and client ip
329
- * */
330
- export function getDeviceInfo() {
331
- // STOP DO NOT CHANGE THIS FUNCTION AS IT IS DEPRECATED!!!!
332
- const sessionInfoObj = sessionInfo.sessionInfoObj;
333
- if (isRunningE2E()) {
334
- return {
335
- deviceId: sessionInfoObj.deviceId,
336
- connectionId: sessionInfoObj.connectionId,
337
- community: sessionInfoObj.community,
338
- tenant: sessionInfoObj.tenant,
339
- clientIp: sessionInfoObj.clientIp
340
- };
341
- }
342
- sdkLogger.log("getDeviceInfo running locally, returning dummy info");
343
- return {
344
- deviceId: "123456789",
345
- connectionId: "dummy",
346
- community: "LocalDev",
347
- tenant: "XXXXXX",
348
- clientIp: "0.0.0.0"
349
- };
350
- }
351
-
352
- export { lifecycle } from "./lifecycle";
353
- export { deviceManager } from "./deviceManager";
354
- export { platformManager } from "./platformManager";
355
- export { alarmManager };
356
- export { messageManager } from "./messageManager";
357
- export { initSequence, showSequence } from "./devSequence";
358
- export { SenzaShakaPlayer as ShakaPlayer, shaka } from "./senzaShakaPlayer";
359
-
360
- import "./devHelper";
361
-
362
133
  /**
363
134
  * @example
364
135
  * import { envInfo } from "senza-sdk";
@@ -369,10 +140,12 @@ import "./devHelper";
369
140
  * @property {string} envInfo.sdkVersion - the version of the SDK
370
141
  */
371
142
  export const envInfo = {
372
- remoteBrowserIp: window.diagnostics ? window.diagnostics().podIP : "127.0.0.1",
373
- sdkVersion: version
143
+ remoteBrowserIp: window?.diagnostics?.()?.podIP || "127.0.0.1",
144
+ sdkVersion: version,
145
+ sdkBackendVersion: window?.senzaSDKImplementation?.version || "N/A"
374
146
  };
375
147
 
148
+
376
149
  /**
377
150
  * The function receives a license response and passes it to platform.
378
151
  * @param {number} statusCode status code that was received from the license server
@@ -383,31 +156,10 @@ export const envInfo = {
383
156
  * In case of error licenseResponse is of type @type {string}
384
157
  */
385
158
  export function writeLicenseResponse(statusCode, licenseResponse, fcid, sessionId) {
386
-
387
- if (statusCode >= 200 && statusCode < 300) {
388
- licenseResponse = window.btoa(String.fromCharCode.apply(null, new Uint8Array(licenseResponse))); // to base64
389
- }
390
-
391
- if (window.cefQuery) {
392
- const message = {
393
- type: "updateLicense",
394
- sessionId,
395
- fcid
396
- };
397
- message[statusCode >= 200 && statusCode < 300 ? "response" : "error"] = licenseResponse;
398
- const request = { target: "TC", waitForResponse: false, message: JSON.stringify(message) };
399
- window.cefQuery({
400
- request: JSON.stringify(request),
401
- persistent: false,
402
- onSuccess: () => {
403
- sdkLogger.log("updateLicense request successfully sent");
404
- },
405
- onFailure: (code, msg) => {
406
- sdkLogger.error(`updateLicense request failed: ${code} ${msg}`);
407
- }
408
- });
159
+ if (window?.senzaSDKImplementation) {
160
+ return window.senzaSDKImplementation.writeLicenseResponse(statusCode, licenseResponse, fcid, sessionId);
409
161
  }
410
-
162
+ sdkLogger.error("writeLicenseResponse: window.cefQuery is undefined");
411
163
  }
412
164
 
413
165
  export class ClientAssertionError extends Error {
@@ -438,34 +190,213 @@ export class ClientAssertionError extends Error {
438
190
  * }
439
191
  */
440
192
  export function getClientAssertion() {
441
- if (window.cefQuery) {
442
- sdkLogger.log("getClientAssertion is called");
443
-
444
- return new Promise((resolve, reject) => {
445
- window.cefQuery({
446
- request: "client_assertion",
447
- persistent: false,
448
- onSuccess: (response) => {
449
- try {
450
- const json_response = JSON.parse(response);
451
- sdkLogger.log(`client_assertion request successfully returned ${response}`);
452
- resolve(json_response);
453
- } catch (e) {
454
- sdkLogger.error(`Failed to parse client assertion ${response}: ${e.message}`);
455
- reject(new ClientAssertionError(0, "Failed to parse client assertion"));
456
- }
193
+ if (window?.senzaSDKImplementation) {
194
+ return window.senzaSDKImplementation.auth.getClientAssertion();
195
+ }
196
+ sdkLogger.warn("getClientAssertion is not supported if NOT running e2e");
197
+ }
457
198
 
458
- },
459
- onFailure: (code, msg) => {
460
- sdkLogger.log(`client_assertion request failed: ${code} ${msg}`);
461
- reject(new ClientAssertionError(code, msg));
462
- }
463
- });
199
+ /**
200
+ * @module
201
+ * @private
202
+ * @type {Lifecycle}
203
+ * @example
204
+ * import { lifecycle } from "senza-sdk";
205
+ *
206
+ * @return {Lifecycle} pointer to the Lifecycle singleton
207
+ */
208
+ let lifecycle;
209
+
210
+ /**
211
+ * @module
212
+ * @private
213
+ * @type {RemotePlayer}
214
+ * @example
215
+ * import { init, remotePlayer } from "senza-sdk";
216
+ * await init();
217
+ * try {
218
+ * await remotePlayer.load("http://playable.url/file.mp4");
219
+ * remotePlayer.play();
220
+ * } catch(err) {
221
+ * console.log("remotePlayer api failed with error code", err.code, err.msg);
222
+ * }
223
+ *
224
+ * @returns {RemotePlayer} pointer to the RemotePlayer singleton
225
+ */
226
+ let remotePlayer;
227
+
228
+
229
+ /**
230
+ * @module
231
+ * @private
232
+ * @type {AlarmManager}
233
+ * @example
234
+ * import { alarmManager } from "senza-sdk";
235
+ *
236
+ * @return {AlarmManager} pointer to the AlarmManager singleton
237
+ */
238
+ let alarmManager;
239
+
240
+ /**
241
+ * @module
242
+ * @private
243
+ * @type {DeviceManager}
244
+ * @example
245
+ * import { deviceManager } from "senza-sdk";
246
+ * const wifiInfo = await deviceManager.getWifiInfo();
247
+ * console.info(wifiInfo.ssid);
248
+ * await deviceManager.clearWifi();
249
+ * deviceManager.reboot();
250
+ *
251
+ * @return {DeviceManager} pointer to the DeviceManager singleton
252
+ */
253
+ let deviceManager;
254
+
255
+
256
+ /**
257
+ * @module
258
+ * @private
259
+ * @type {PlatformManager}
260
+ * @example
261
+ * import { platformManager } from "senza-sdk";
262
+ * console.info(platformManager.appConfig);
263
+ * platformManager.setTimezone("Europe/Brussels");
264
+ *
265
+ * @return {PlatformManager} pointer to the PlatformManager singleton
266
+ */
267
+ let platformManager;
268
+
269
+ /**
270
+ * @module
271
+ * @private
272
+ * @type {MessageManager}
273
+ * @example
274
+ * import { MessageManager } from "senza-sdk";
275
+ *
276
+ * @return {MessageManager} pointer to the MessageManager singleton
277
+ */
278
+ let messageManager;
279
+
280
+
281
+ /**
282
+ * ShakaPlayer subclass of Shaka that handles both local and remote playback.
283
+ *
284
+ * @class ShakaPlayer
285
+ * @private
286
+ * @type {new|ShakaPlayer}
287
+ * @example
288
+ * import { ShakaPlayer } from "senza-sdk";
289
+ *
290
+ * try {
291
+ * const videoElement = document.getElementById("video");
292
+ * const player = new ShakaPlayer(videoElement);
293
+ * await player.load("http://playable.url/file.mpd");
294
+ * await videoElement.play(); // will start the playback
295
+ *
296
+ * } catch (err) {
297
+ * console.error("ShakaPlayer failed with error", err);
298
+ * }
299
+ */
300
+ let ShakaPlayerImplementation;
301
+
302
+
303
+ /**
304
+ * @module
305
+ * @private
306
+ * @type {shaka}
307
+ */
308
+ let shakaImplementation;
309
+
310
+ if (!isRunningE2E()) {
311
+ sdkLogger.warn("Senza SDK is not running in E2E environment. Some features may not work as expected.");
312
+
313
+ lifecycle = new Lifecycle();
314
+ remotePlayer = new RemotePlayer();
315
+ alarmManager = new AlarmManager();
316
+ deviceManager = new DeviceManager();
317
+ platformManager = new PlatformManager();
318
+ messageManager = new MessageManager();
319
+ ShakaPlayerImplementation = ShakaPlayer;
320
+ shakaImplementation = shaka;
321
+ } else {
322
+ // If running in E2E environment, use the implementation provided by the platform
323
+ lifecycle = window.senzaSDKImplementation.lifecycle;
324
+ remotePlayer = window.senzaSDKImplementation.remotePlayer;
325
+ alarmManager = window.senzaSDKImplementation.alarmManager;
326
+ deviceManager = window.senzaSDKImplementation.deviceManager;
327
+ platformManager = window.senzaSDKImplementation.platformManager;
328
+ messageManager = window.senzaSDKImplementation.messageManager;
329
+ ShakaPlayerImplementation = window.senzaSDKImplementation.ShakaPlayer;
330
+ shakaImplementation = window.senzaSDKImplementation.shaka;
331
+ }
332
+
333
+ /**
334
+ * @deprecated use lifecycle.connectReason instead
335
+ * Returns the reason the ui has been loaded
336
+ **/
337
+ export function getConnectReason() {
338
+ return lifecycle.connectReason;
339
+ }
340
+
341
+ /**
342
+ * @deprecated use lifecycle.triggerEvent instead
343
+ * Returns the event that triggered the reloading of the ui after ui has been released
344
+ **/
345
+ export function getTriggerEvent() {
346
+ return lifecycle.triggerEvent;
347
+ }
348
+
349
+ /**
350
+ * @deprecated use platformManager.setTimezone instead.
351
+ * @param {string} timezone the timezone to set to
352
+ * the format of the timezone is according to the standard TZ identifier
353
+ * (e.g. America/Los_Angeles, Asia/Tokyo, Europe/Brussels)
354
+ * for a full list of TZ identifiers, see https://en.wikipedia.org/wiki/List_of_tz_database_time_zones
355
+ */
356
+ export function setTimezone(timezone) {
357
+ // STOP DO NOT CHANGE THIS FUNCTION AS IT IS DEPRECATED!!!!
358
+ if (window.cefQuery) {
359
+ const request = { message: JSON.stringify({ type: "setTimeZone", timezone }), waitForResponse: false, target: "UI-Streamer" };
360
+ window.cefQuery({
361
+ request: JSON.stringify(request),
362
+ persistent: false,
363
+ onSuccess: () => {
364
+ sdkLogger.log("timezome is successfully set to", timezone);
365
+ },
366
+ onFailure: (code, msg) => {
367
+ sdkLogger.error(`error occurred setting timezone to ${timezone}: ${code} ${msg}`);
368
+ }
464
369
  });
465
370
  }
466
- sdkLogger.warn("getClientAssertion is not supported if NOT running e2e");
467
371
  }
468
372
 
373
+ /**
374
+ * @deprecated use deviceManager.deviceInfo instead.
375
+ * Returns the device information, including device id, connection id, community, tenant and client ip
376
+ * */
377
+ export function getDeviceInfo() {
378
+ // STOP DO NOT CHANGE THIS FUNCTION AS IT IS DEPRECATED!!!!
379
+ if (isRunningE2E()) {
380
+ return {
381
+ deviceId: deviceManager.deviceInfo.deviceId,
382
+ connectionId: deviceManager.deviceInfo.connectionId,
383
+ community: deviceManager.deviceInfo.community,
384
+ tenant: deviceManager.deviceInfo.tenant,
385
+ clientIp: deviceManager.deviceInfo.clientIp
386
+ };
387
+ }
388
+ sdkLogger.log("getDeviceInfo running locally, returning dummy info");
389
+ return {
390
+ deviceId: "123456789",
391
+ connectionId: "dummy",
392
+ community: "LocalDev",
393
+ tenant: "XXXXXX",
394
+ clientIp: "0.0.0.0"
395
+ };
396
+ }
397
+
398
+ export { lifecycle, remotePlayer, alarmManager, deviceManager, platformManager, messageManager, ShakaPlayerImplementation as ShakaPlayer, shakaImplementation as shaka, showSequence, initSequence };
399
+
469
400
  // Assign the senza library to the old name (hs) for backward compatibility
470
401
  import * as senzaSDK from "./api.js";
471
402
  if (typeof window !== "undefined") {