@vizbeetv/sdk-qa 7.8.36 → 7.8.38

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 (31) hide show
  1. package/README.md +42 -18
  2. package/chromecast/index.js +1 -1
  3. package/chromecast-v2/es5/index.js +1 -1
  4. package/chromecast-v2/es6/index.js +1 -1
  5. package/lg/es5/index.js +1 -1
  6. package/lg/es6/index.js +1 -1
  7. package/package.json +54 -15
  8. package/samsung/es5/index.js +1 -1
  9. package/samsung/es6/index.js +1 -1
  10. package/types/index.d.ts +486 -0
  11. package/types/vtvsdk/src/core/session/SessionState.d.ts +45 -0
  12. package/types/vtvsdk/src/core/session/SessionStateListener.d.ts +23 -0
  13. package/types/vtvsdk/src/core/session/base/VizbeeMessagingClient.d.ts +38 -0
  14. package/types/vtvsdk/src/core/session/base/VizbeePresenceClient.d.ts +7 -0
  15. package/types/vtvsdk/src/core/session/bicast/VizbeeBicastMemberPresenceClientImpl.d.ts +17 -0
  16. package/types/vtvsdk/src/core/session/bicast/VizbeeBicastMessagingClientImpl.d.ts +54 -0
  17. package/types/vtvsdk/src/core/session/bicast/VizbeeBicastSession.d.ts +25 -0
  18. package/types/vtvsdk/src/core/session/bicast/VizbeeBicastSessionManager.d.ts +63 -0
  19. package/types/vtvsdk/src/core/session/bicast/VizbeePresenceManager.d.ts +24 -0
  20. package/types/vtvsdk/src/core/session/models/MemberInfo.d.ts +39 -0
  21. package/types/vtvsdk/src/core/session/models/MemberType.d.ts +49 -0
  22. package/types/vtvsdk/src/core/session/models/VizbeeDevice.d.ts +26 -0
  23. package/types/vtvsdk/src/core/session/models/VizbeeDeviceType.d.ts +10 -0
  24. package/types/vtvsdk/src/core/session/models/presence/PresenceEventResult.d.ts +11 -0
  25. package/types/vtvsdk/src/core/sync/presence/Device.d.ts +34 -0
  26. package/types/vtvsdk/src/core/sync/presence/DeviceType.d.ts +6 -0
  27. package/types/vtvsdk/src/core/sync/presence/PresenceEvent.d.ts +4 -0
  28. package/types/vtvsdk/src/core/sync/presence/PresenceEventResult.d.ts +8 -0
  29. package/vizio/index.js +1 -1
  30. package/xbox/es5/index.js +1 -1
  31. package/xbox/es6/index.js +1 -1
@@ -0,0 +1,25 @@
1
+ import { VizbeeMessagingClient } from '../base/VizbeeMessagingClient.js';
2
+ import { VizbeePresenceClient } from '../base/VizbeePresenceClient.js';
3
+ /**
4
+ * Manages the messaging session for Vizbee bicast communications.
5
+ * This class implements the Singleton pattern for the messaging client,
6
+ * ensuring only one instance exists throughout the application lifecycle.
7
+ */
8
+ declare class VizbeeBicastSession {
9
+ /**
10
+ * Instance of the messaging client. Initialized lazily upon first request.
11
+ * @private
12
+ */
13
+ private _messagingClient;
14
+ private _presenceClient;
15
+ constructor();
16
+ /**
17
+ * Returns the messaging client instance, creating it if it doesn't exist.
18
+ * Implements lazy initialization pattern for the messaging client.
19
+ *
20
+ * @returns {VizbeeMessagingClient} The singleton instance of the messaging client
21
+ */
22
+ getMessagingClient(): VizbeeMessagingClient;
23
+ getPresenceClient(): VizbeePresenceClient;
24
+ }
25
+ export { VizbeeBicastSession };
@@ -0,0 +1,63 @@
1
+ import { VizbeeBicastSession } from './VizbeeBicastSession.js';
2
+ import { SessionState } from '../SessionState.js';
3
+ import { SessionStateListener } from '../SessionStateListener.js';
4
+ /**
5
+ * Manages the lifecycle and state of Vizbee bicast sessions.
6
+ * This class handles session initialization, state management, and listener notifications.
7
+ * It interfaces with the VZB SDK's syncController to maintain session state synchronization.
8
+ */
9
+ declare class VizbeeBicastSessionManager {
10
+ /** Singleton instance */
11
+ private static instance;
12
+ /** Current active session instance */
13
+ private session;
14
+ /** Current state of the session, defaults to NOT_CONNECTED */
15
+ private sessionState;
16
+ /** Array of listeners to be notified of session state changes */
17
+ private sessionStateListeners;
18
+ /** Reference to the VZB SDK's sync controller */
19
+ private syncController;
20
+ constructor();
21
+ /**
22
+ * Initializes the session manager by connecting to the VZB SDK's sync controller
23
+ * and setting up initial state and listeners.
24
+ */
25
+ init(): void;
26
+ private listenForSyncControllerAvailability;
27
+ private listenForSyncControllerSessionState;
28
+ /**
29
+ * Registers a new listener for session state changes.
30
+ * @param listener - The listener object implementing SessionStateListener interface
31
+ */
32
+ addSessionStateListener(listener: SessionStateListener | ((newState: SessionState) => void)): void;
33
+ /**
34
+ * Removes a previously registered session state listener.
35
+ * @param listener - The listener object to remove
36
+ */
37
+ removeSessionStateListener(listener: SessionStateListener): void;
38
+ /**
39
+ * Returns the current active session instance.
40
+ * @returns The current VizbeeBicastSession or null if no active session
41
+ */
42
+ getSession(): VizbeeBicastSession | null;
43
+ /**
44
+ * Checks if the session is currently in connecting state.
45
+ * @returns True if the session is connecting, false otherwise
46
+ */
47
+ isConnecting(): boolean;
48
+ /**
49
+ * Checks if the session is currently connected.
50
+ * @returns True if the session is connected, false otherwise
51
+ */
52
+ isConnected(): boolean;
53
+ /**
54
+ * Handles session state change events from the sync controller.
55
+ * Creates or destroys session instances based on the new state
56
+ * and notifies all registered listeners.
57
+ *
58
+ * @param state - The new session state
59
+ * @private
60
+ */
61
+ private onSessionStateChanged;
62
+ }
63
+ export { VizbeeBicastSessionManager };
@@ -0,0 +1,24 @@
1
+ import { PresenceEventResult } from '../models/presence/PresenceEventResult.js';
2
+ import { VizbeeDevice } from '../models/VizbeeDevice.js';
3
+ /**
4
+ * Manages the lifecycle and state of Vizbee bicast sessions.
5
+ * This class handles session initialization, state management, and listener notifications.
6
+ * It interfaces with the VZB SDK's syncController to maintain session state synchronization.
7
+ */
8
+ declare class VizbeePresenceManager {
9
+ /** Singleton instance */
10
+ private static instance;
11
+ private vizbeePresenceClient;
12
+ private presenceCallbacks;
13
+ private vizbeeSession;
14
+ constructor();
15
+ /**
16
+ * Initializes the session manager by connecting to the VZB SDK's sync controller
17
+ * and setting up initial state and listeners.
18
+ */
19
+ private init;
20
+ subscribe(onPresenceChanged: (result: PresenceEventResult) => void): void;
21
+ unsubscribe(onPresenceChanged: (result: PresenceEventResult) => void): void;
22
+ getMembers(): VizbeeDevice[];
23
+ }
24
+ export { VizbeePresenceManager };
@@ -0,0 +1,39 @@
1
+ import { MemberType } from './MemberType.js';
2
+ /**
3
+ * Represents detailed information about a network member device in the Vizbee ecosystem.
4
+ * This interface captures device identification, hardware details, and runtime state.
5
+ */
6
+ export interface MemberInfo {
7
+ /** Unique identifier for the device */
8
+ deviceId: string;
9
+ /** Identifier for Advertisers (IDFA) - platform-specific advertising identifier */
10
+ idfa: string;
11
+ /** Identifier for Vendors (IDFV) - platform-specific vendor identifier */
12
+ idfv: string;
13
+ /** Human-readable name for the device */
14
+ friendlyName: string;
15
+ /** Device model name (e.g., "iPhone", "Pixel") */
16
+ modelName: string;
17
+ /** Specific model number or identifier */
18
+ modelNumber: string;
19
+ /** Device manufacturer name */
20
+ manufacturer: string;
21
+ /** Role/type of the member in the network */
22
+ memberType: MemberType;
23
+ /** Flag indicating if ad tracking is restricted on this device */
24
+ limitAdTracking: boolean;
25
+ /** Indicates if the application is currently in the foreground */
26
+ isInForeground: boolean;
27
+ /** Unique identifier for the current network session */
28
+ networkSessionId: string;
29
+ /** Optional key-value pairs for additional device attributes */
30
+ customAttributes?: Record<string, any>;
31
+ }
32
+ /**
33
+ * Creates a new MemberInfo object with default values.
34
+ * Used for initializing a new member info structure with empty/default values
35
+ * before setting actual device information.
36
+ *
37
+ * @returns {MemberInfo} A MemberInfo object with default values
38
+ */
39
+ export declare function createDefaultMemberInfo(): MemberInfo;
@@ -0,0 +1,49 @@
1
+ /**
2
+ * Represents different types of devices supported in the Vizbee ecosystem.
3
+ * This enum categorizes devices into mobile devices and various smart TV platforms.
4
+ */
5
+ export declare enum MemberType {
6
+ /** Android mobile devices */
7
+ ANDROID_MOBILE = "Android",
8
+ /** iOS mobile devices (iPhone, iPad) */
9
+ IOS = "iOS",
10
+ /** Android TV platform devices */
11
+ ANDROID_TV = "AndroidTV",
12
+ /** Amazon Fire TV devices */
13
+ FIRE_TV = "FireTV",
14
+ /** Roku streaming devices and TVs */
15
+ ROKU = "Roku",
16
+ /** Samsung Smart TVs running Tizen OS */
17
+ SAMSUNG_TIZEN = "SamsungTizen",
18
+ /** LG Smart TVs running WebOS */
19
+ LG_WEB_OS = "LGWebOS",
20
+ /** Vizio SmartCast enabled TVs */
21
+ VIZIO_SMARTCAST = "VizioSmartCast",
22
+ /** Fallback for unrecognized device types */
23
+ UNKNOWN = "Unknown"
24
+ }
25
+ /**
26
+ * Contains additional information about a member type.
27
+ * Used to provide platform-specific details and capabilities.
28
+ */
29
+ export interface MemberTypeInfo {
30
+ /** String representation of the member type */
31
+ value: string;
32
+ /** Indicates if the device is a TV/large screen device */
33
+ isScreen: boolean;
34
+ }
35
+ /**
36
+ * Retrieves detailed information about a specific member type.
37
+ *
38
+ * @param memberType - The member type to get information for
39
+ * @returns MemberTypeInfo object containing platform details
40
+ */
41
+ export declare function getMemberTypeInfo(memberType: MemberType): MemberTypeInfo;
42
+ /**
43
+ * Converts a string value to its corresponding MemberType.
44
+ * Used for parsing platform identifiers from various sources.
45
+ *
46
+ * @param value - String identifier of the platform
47
+ * @returns The corresponding MemberType enum value, or UNKNOWN if not recognized
48
+ */
49
+ export declare function fromValue(value: string): MemberType;
@@ -0,0 +1,26 @@
1
+ import { VizbeeDeviceType } from './VizbeeDeviceType.js';
2
+ /**
3
+ * Represents a device in the Vizbee ecosystem with its core identifying properties.
4
+ * This class provides a unified device representation that can be constructed from
5
+ * different source types (SenderInfo or MemberInfo).
6
+ */
7
+ export declare class VizbeeDevice {
8
+ deviceId: string;
9
+ friendlyName: string;
10
+ modelName: string;
11
+ modelNumber: string | null;
12
+ manufacturer: string | null;
13
+ deviceType: VizbeeDeviceType | null;
14
+ /**
15
+ * Creates a new VizbeeDevice instance.
16
+ *
17
+ * @param deviceId - Unique identifier for the device
18
+ * @param friendlyName - Human-readable name of the device
19
+ * @param modelName - Model name or type of the device
20
+ * @param modelNumber - Specific model number identifier (optional)
21
+ * @param manufacturer - Device manufacturer name (optional)
22
+ * @param deviceType - Type classification of the device (optional)
23
+ */
24
+ constructor(deviceId: string, friendlyName: string, modelName: string, modelNumber: string | null, manufacturer: string | null, deviceType: VizbeeDeviceType | null);
25
+ toString(): string;
26
+ }
@@ -0,0 +1,10 @@
1
+ import { DeviceType } from "../../sync/presence/DeviceType.js";
2
+ /**
3
+ * DeviceType is used to specify the type of device.
4
+ */
5
+ export declare enum VizbeeDeviceType {
6
+ ANDROID_MOBILE = "ANDROID_MOBILE",
7
+ IOS = "IOS",
8
+ UNKNOWN = "UNKNOWN"
9
+ }
10
+ export declare function toVizbeeDeviceType(deviceType: DeviceType): VizbeeDeviceType;
@@ -0,0 +1,11 @@
1
+ import { VizbeeDevice } from "../VizbeeDevice.js";
2
+ export declare class PresenceEventResult {
3
+ readonly event: PresenceEvent;
4
+ readonly device: VizbeeDevice;
5
+ constructor(event: PresenceEvent, device: VizbeeDevice);
6
+ toString(): string;
7
+ }
8
+ export declare enum PresenceEvent {
9
+ JOIN = "JOIN",
10
+ LEAVE = "LEAVE"
11
+ }
@@ -0,0 +1,34 @@
1
+ import { DeviceType } from "./DeviceType.js";
2
+ export interface Device {
3
+ readonly deviceId: string;
4
+ readonly idfa?: string;
5
+ readonly idfv?: string;
6
+ readonly friendlyName?: string;
7
+ readonly modelName?: string;
8
+ readonly modelNumber?: string;
9
+ readonly manufacturer?: string;
10
+ readonly deviceType: DeviceType;
11
+ readonly limitAdTracking?: boolean;
12
+ readonly isInForeground?: boolean;
13
+ readonly networkSessionId?: string;
14
+ readonly customAttributes?: Record<string, any>;
15
+ }
16
+ export declare class DeviceImpl implements Device {
17
+ readonly deviceId: string;
18
+ readonly deviceType: DeviceType;
19
+ readonly idfa?: string;
20
+ readonly idfv?: string;
21
+ readonly friendlyName?: string;
22
+ readonly modelName?: string;
23
+ readonly modelNumber?: string;
24
+ readonly manufacturer?: string;
25
+ readonly limitAdTracking: boolean;
26
+ readonly isInForeground: boolean;
27
+ readonly networkSessionId?: string;
28
+ readonly customAttributes?: Record<string, any>;
29
+ constructor(deviceId: string, deviceType: DeviceType, idfa?: string, idfv?: string, friendlyName?: string, modelName?: string, modelNumber?: string, manufacturer?: string, limitAdTracking?: boolean, isInForeground?: boolean, networkSessionId?: string, customAttributes?: Record<string, any>);
30
+ get displayName(): string;
31
+ equals(other: any): boolean;
32
+ hashCode(): number;
33
+ toString(): string;
34
+ }
@@ -0,0 +1,6 @@
1
+ export declare enum DeviceType {
2
+ ANDROID_MOBILE = "Android",
3
+ IOS = "iOS",
4
+ UNKNOWN = "Unknown"
5
+ }
6
+ export declare function deviceTypeFromValue(value: string): DeviceType;
@@ -0,0 +1,4 @@
1
+ export declare enum PresenceEvent {
2
+ JOIN = "JOIN",
3
+ LEAVE = "LEAVE"
4
+ }
@@ -0,0 +1,8 @@
1
+ import { Device } from "./Device.js";
2
+ import { PresenceEvent } from "./PresenceEvent.js";
3
+ export declare class PresenceEventResult {
4
+ event: PresenceEvent;
5
+ member: Device;
6
+ constructor(event: PresenceEvent, member: Device);
7
+ toString(): string;
8
+ }