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