import { keyMirror } from './utils'; export const PROJECT_ID_PATTERN = '[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$'; export const DEVICE_ID_PATTERN = '[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$'; export const APP_RELEASE_ID_PATTERN = '[0-9a-z]{64}'; export const MODEL_ID_PATTERN = '[A-Za-z0-9_]+/[A-Za-z0-9_]*'; export const CLIENT_TOPIC_PREFIX = 'to-client'; export const CLOUD_TOPIC_PREFIX = 'to-cloud'; export const DEVICE_TOPIC_PREFIX = 'to-device'; export const DEVICE_TYPE = 'aai-device'; const toCloudMessageTypeEnum = keyMirror({ signed_urls_request: null }); const toClientMessageTypeEnum = keyMirror({ app_logs: null, app_state: null, device_stats: null, status_response: null }); const toDeviceAgentMessageTypeEnum = keyMirror({ app_state_control: null, app_version_control: null, app_install_response: null, models_install_response: null, live_state_updates: null, status_response: null, device_action: null }); const appStateEnum = keyMirror({ up: null, stopped: null, restarting: null }); const appStateControlEnum = keyMirror({ start: null, stop: null, restart: null }); const appVersionControlEnum = keyMirror({ install: null, uninstall: null, update_config: null }); const liveUpdatesEnum = keyMirror({ live_updates: null }); const statusEnum = keyMirror({ requested: null, in_progress: null, failure: null, success: null, connection_lost: null }); const deviceActionEnum = keyMirror({ system_restart: null }); export const keyMirrors = { toDeviceAgentMessageType: toDeviceAgentMessageTypeEnum, toClientMessageType: toClientMessageTypeEnum, toCloudMessageType: toCloudMessageTypeEnum, appState: appStateEnum, appStateControl: appStateControlEnum, appVersionControl: appVersionControlEnum, liveUpdates: liveUpdatesEnum, statusResponse: statusEnum, deviceAction: deviceActionEnum }; export const toCloudMessageTypeValues = Object.values( keyMirrors.toCloudMessageType ); export type ToCloudMessageTypeValue = keyof typeof keyMirrors.toCloudMessageType; export const toClientMessageTypeValues = Object.values( keyMirrors.toClientMessageType ); export type ToClientMessageTypeValue = keyof typeof keyMirrors.toClientMessageType; export type AppLogsMessageType = typeof toClientMessageTypeEnum.app_logs; export type AppStateMessageType = typeof toClientMessageTypeEnum.app_state; export type DeviceStatsMessageType = typeof toClientMessageTypeEnum.device_stats; export type StatusResponseMessageType = typeof toClientMessageTypeEnum.status_response; export type SignedUrlsRequestMessageType = typeof toCloudMessageTypeEnum.signed_urls_request; export const toDeviceAgentMessageTypeValues = Object.values( keyMirrors.toDeviceAgentMessageType ); export type ToDeviceAgentMessageTypeValue = keyof typeof keyMirrors.toDeviceAgentMessageType; export type AppStateControlMessageType = typeof toDeviceAgentMessageTypeEnum.app_state_control; export type AppVersionControlMessageType = typeof toDeviceAgentMessageTypeEnum.app_version_control; export type AppInstallResponseMessageType = typeof toDeviceAgentMessageTypeEnum.app_install_response; export type ModelsInstallResponseMessageType = typeof toDeviceAgentMessageTypeEnum.models_install_response; export type LiveStateUpdatesTogglesMessageType = typeof toDeviceAgentMessageTypeEnum.live_state_updates; export type DeviceActionMessageType = typeof toDeviceAgentMessageTypeEnum.device_action; export const appStateValues = Object.values(keyMirrors.appState); export type AppStateValue = keyof typeof keyMirrors.appState; export const appStateControlValues = Object.values(keyMirrors.appStateControl); export type AppStateControlValue = keyof typeof keyMirrors.appStateControl; export const appVersionControlValues = Object.values( keyMirrors.appVersionControl ); export type AppVersionControlValue = keyof typeof keyMirrors.appVersionControl; export const liveUpdatesValues = Object.values(keyMirrors.liveUpdates); export type LiveUpdatesValue = keyof typeof keyMirrors.liveUpdates; export const statusResponseValues = Object.values(keyMirrors.statusResponse); export type StatusResponseValue = keyof typeof keyMirrors.statusResponse; export const deviceActionValues = Object.values(keyMirrors.deviceAction); export type DeviceActionValue = keyof typeof keyMirrors.deviceAction;