Files
Wand-Enhancer-k1tbyte/web-panel/bridge/scripts/default/installed-apps-sync/constants.js
T

97 lines
3.5 KiB
JavaScript
Vendored

export const GLOBAL_FLAG = '__wandInstalledAppsSyncInstalled';
export const BIND_CHANNEL = 'wand-remote-set-handler-bind';
export const SYNC_CHANNEL = 'wand-remote-installed-apps';
export const TRAINER_SNAPSHOT_CHANNEL = 'wand-remote-sync';
export const GAME_STATUS_CHANNEL = 'wand-remote-game-status';
export const COMMAND_REQUEST_CHANNEL = 'wand-remote-command';
export const COMMAND_RESPONSE_CHANNEL = 'wand-remote-command-response';
export const REMOTE_COMMAND_LAUNCH = 'launch';
export const REMOTE_COMMAND_STOP = 'stop';
export const REMOTE_COMMAND_TRIGGER = 'remote';
export const RETRY_DELAY_MS = 1000;
export const MAX_BOOTSTRAP_ATTEMPTS = 60;
export const SYNC_INTERVAL_MS = 15000;
export const OPTIONAL_SERVICES_RETRY_INTERVAL_MS = 1000;
export const MAX_OPTIONAL_SERVICES_ATTEMPTS = 60;
export const FOLLOW_UP_SYNC_DELAY_MS = 2500;
export const UNAVAILABLE_TITLES_BATCH_SIZE = 250;
export const BOOTSTRAP_LOG_THROTTLE_ATTEMPTS = 5;
export const CONTAINER_LOG_THROTTLE_ATTEMPTS = 10;
export const CONTAINER_GRAPH_MAX_DEPTH = 4;
// Wand's webpack module exports the trainer-launch-request class under key `vO`.
// Required so `trainerService.launch(req)` records `getMetadata(vO)` state in Wand. See AGENTS.md "Remote Play".
export const TRAINER_LAUNCH_REQUEST_EXPORT_KEY = 'vO';
export const SNAPSHOT_ENTRY_KEY_PREFIX = Object.freeze({
TITLE: 'title:',
GAME: 'game:',
APP: 'app:',
});
export const GAME_LAUNCHED_EVENT = 'game-launched';
export const GAME_ENDED_EVENT = 'game-ended';
export const SYNTHETIC_SESSION_RUNNING_EVENT = 'trainer-running';
export const SYNTHETIC_SESSION_IDLE_EVENT = 'trainer-idle';
export const TRAINER_ENDED_EVENT = 'trainer-ended';
export const REMOTE_STOP_EVENT = 'remote-stop';
export const STEAM_PLATFORM = 'steam';
export const STEAM_APP_ID_PATTERN = /^\d+$/;
export const WEMOD_STEAM_COMMUNITY_CDN_BASE_URL = 'https://api-cdn.wemod.com/steam_community';
export const REMOTE_IMAGE_URL_PATTERN = /^https?:\/\//i;
export const PROTOCOL_RELATIVE_IMAGE_URL_PATTERN = /^\/\//;
export const DATA_IMAGE_URL_PREFIX = 'data:image/';
export const MAX_IMAGE_URL_SEARCH_DEPTH = 4;
export const SIDEBAR_GAME_ROW_CONTAINER_SELECTOR = '.sidebar-game-row-container';
export const SIDEBAR_GAME_ROW_IMAGE_SELECTOR = '.sidebar-game-row-image';
export const SIDEBAR_GAME_ROW_TITLE_SELECTOR = '.sidebar-game-row-title';
export const SIDEBAR_GAME_ROW_MORE_SELECTOR = '.sidebar-game-row-more';
export const SIDEBAR_GAME_ROW_TOOLTIP_ID_PATTERN = /sidebar-game-row-(.+?)-more-button-tooltip/;
export const STEAM_APP_ID_FIELD_NAMES = new Set(['steamAppId', 'steamAppID']);
export const STEAM_CONTAINER_FIELD_PATTERN = /steam/i;
export const STEAM_CONTAINER_ID_FIELD_NAMES = new Set(['appId', 'appID', 'id']);
export const LOG_PREFIX = '[wand-installed-apps-sync]';
export const LOG_FILE_NAME = 'wand-remote-installed-apps-sync.log';
export const EXCLUDED_UNAVAILABLE_TITLE_PLATFORMS = new Set(['standalone']);
export const IMAGE_FIELD_NAMES = [
'imageUrl',
'imageURL',
'iconUrl',
'iconURL',
'coverUrl',
'coverURL',
'thumbnailUrl',
'thumbnailURL',
'logoUrl',
'logoURL',
'headerImageUrl',
'headerImageURL',
'boxArtUrl',
'boxartUrl',
'posterUrl',
'tileUrl',
'capsuleUrl',
'heroUrl',
'backgroundUrl',
'image',
'icon',
'cover',
'thumbnail',
'logo',
'headerImage',
'header',
'boxArt',
'boxart',
'poster',
'tile',
'capsule',
'hero',
'background',
'large',
'medium',
'small',
'original',
'source',
'href',
'uri',
'url',
'src',
];