UNPKG

@robotical/appv2-analytics-gatherer

Version:

A tool that gathers data from the Apps and sends it to the Analytics server

223 lines (222 loc) 9.6 kB
export declare enum VisitedScreenEnum { HOME = "home", ACTIVITIES = "activities", BLOCKS = "blocks", BLOCKSJR = "blocksjr", CONFIG = "config", SENSORS_DASHBOARD = "sens-dash", CODEWHEEL = "codewheel", MAZE = "maze", JUMPING_GAME = "jumping-game", ROBOFLY_GAME = "robofly-game", CONTROLLER = "controller", CALIBRATION = "calibration", HELP = "help", GAMES = "games", SKIING_GAME = "skiing-game" } export type VisitedActivityType = string; export declare enum HeartbeatTypeEnum { SESSION = "session", SCREEN = "screen", ACTIVITY = "activity" } export declare enum AnalyticsAppRuntime { WEB_APP = "web-app", PHONE_APP = "phone-app", UNKNOWN = "unknown" } export declare enum AnalyticsDeviceFormFactor { DESKTOP = "desktop", TABLET = "tablet", PHONE = "phone", UNKNOWN = "unknown" } export declare enum AnalyticsDevicePlatform { WEB_DESKTOP = "web-desktop", WEB_TABLET = "web-tablet", WEB_PHONE = "web-phone", CHROMEBOOK = "chromebook", IPAD = "ipad", IOS_PHONE = "ios-phone", ANDROID_TABLET = "android-tablet", ANDROID_PHONE = "android-phone", UNKNOWN = "unknown" } export type AnalyticsDeviceInfo = { runtime: AnalyticsAppRuntime; platform: AnalyticsDevicePlatform; formFactor: AnalyticsDeviceFormFactor; osName: string; osVersionMajor?: string; browserName?: string; browserVersionMajor?: string; appVersion?: string; }; export type DevicePlatformTotalsProcessedData = { windowDays: number; generatedAt: string; sessionsByPlatform: Record<string, number>; uniqueDevicesByPlatform: Record<string, number>; totalSessions: number; totalUniqueDevices: number; legacySessionsExcluded: number; }; export declare enum ServerEndpoints { TRACK_CONSENT = "track-consent", START_SESSION = "start-session", HEARTBEAT = "heartbeat", SCREEN_VISIT = "screen-visit", ACTIVITY_VISIT = "activity-visit", GET_CONSENT_RAW_DATA = "get-consent-raw-data", GET_SESSIONS_RAW_DATA = "get-sessions-raw-data", GET_SESSION_HEARTBEATS_RAW_DATA = "get-session-heartbeats-raw-data", GET_SCREEN_HEARTBEATS_RAW_DATA = "get-screen-heartbeats-raw-data", GET_SCREEN_VISITS_RAW_DATA = "get-screen-visits-raw-data", GET_ACTIVITY_VISITS_RAW_DATA = "get-activity-visits-raw-data", GET_ACTIVITY_HEARTBEATS_RAW_DATA = "get-activity-heartbeats-raw-data", GET_SESSIONS_N_PER_WEEK_PROCESSED_DATA = "get-sessions-n-per-week-processed-data", GET_UNIQUE_DEVICES_N_PER_WEEK_PROCESSED_DATA = "get-unique-devices-n-per-week-processed-data", GET_UNIQUE_COGS_N_PER_WEEK_PROCESSED_DATA = "get-unique-cogs-n-per-week-processed-data", GET_UNIQUE_MARTYS_N_PER_WEEK_PROCESSED_DATA = "get-unique-martys-n-per-week-processed-data", GET_VISITED_SCREENS_FREQUENCY_PER_WEEK_PROCESSED_DATA = "get-visited-screens-frequency-per-week-processed-data", GET_VISITED_ACTIVITIES_FREQUENCY_PER_WEEK_PROCESSED_DATA = "get-visited-activities-frequency-per-week-processed-data", GET_SESSIONS_TIME_SPENT_PER_WEEK_PROCESSED_DATA = "get-sessions-time-spent-per-week-processed-data", GET_SCREENS_TIME_SPENT_PER_WEEK_PROCESSED_DATA = "get-screens-time-spent-per-week-processed-data", GET_ACTIVITIES_TIME_SPENT_PER_WEEK_PROCESSED_DATA = "get-activities-time-spent-per-week-processed-data", GET_COG_RETENTION_RATE_PER_WEEK_PROCESSED_DATA = "get-cog-retention-rate-per-week-processed-data", GET_MARTY_RETENTION_RATE_PER_WEEK_PROCESSED_DATA = "get-marty-retention-rate-per-week-processed-data", GET_DEVICE_PLATFORM_TOTALS_PROCESSED_DATA = "get-device-platform-totals-processed-data" } export type DateFilter = { fromDate: string; toDate: string; }; export type ServerEndpointsData = { [ServerEndpoints.TRACK_CONSENT]: { consent: boolean; }; [ServerEndpoints.START_SESSION]: { sessionId: string; deviceId: string; robotId: string; raftType: string; createdAt?: string; deviceInfo?: AnalyticsDeviceInfo; }; [ServerEndpoints.HEARTBEAT]: { id: string; isNewDoc?: boolean; type: HeartbeatTypeEnum; sessionId: string; screen?: VisitedScreenEnum; activity?: VisitedActivityType; createdAt?: string; lastUpdated?: string; }; [ServerEndpoints.SCREEN_VISIT]: { screen: VisitedScreenEnum; sessionId: string; deviceId: string; robotId: string; raftType: string; createdAt?: string; }; [ServerEndpoints.ACTIVITY_VISIT]: { activity: VisitedActivityType; sessionId: string; deviceId: string; robotId: string; raftType: string; createdAt?: string; }; [ServerEndpoints.GET_CONSENT_RAW_DATA]: {}; [ServerEndpoints.GET_SESSIONS_RAW_DATA]: DateFilter; [ServerEndpoints.GET_SESSION_HEARTBEATS_RAW_DATA]: DateFilter; [ServerEndpoints.GET_SCREEN_HEARTBEATS_RAW_DATA]: DateFilter; [ServerEndpoints.GET_SCREEN_VISITS_RAW_DATA]: DateFilter; [ServerEndpoints.GET_ACTIVITY_VISITS_RAW_DATA]: DateFilter; [ServerEndpoints.GET_ACTIVITY_HEARTBEATS_RAW_DATA]: DateFilter; [ServerEndpoints.GET_SESSIONS_N_PER_WEEK_PROCESSED_DATA]: {}; [ServerEndpoints.GET_UNIQUE_DEVICES_N_PER_WEEK_PROCESSED_DATA]: {}; [ServerEndpoints.GET_UNIQUE_COGS_N_PER_WEEK_PROCESSED_DATA]: {}; [ServerEndpoints.GET_UNIQUE_MARTYS_N_PER_WEEK_PROCESSED_DATA]: {}; [ServerEndpoints.GET_VISITED_SCREENS_FREQUENCY_PER_WEEK_PROCESSED_DATA]: {}; [ServerEndpoints.GET_VISITED_ACTIVITIES_FREQUENCY_PER_WEEK_PROCESSED_DATA]: {}; [ServerEndpoints.GET_SESSIONS_TIME_SPENT_PER_WEEK_PROCESSED_DATA]: {}; [ServerEndpoints.GET_SCREENS_TIME_SPENT_PER_WEEK_PROCESSED_DATA]: {}; [ServerEndpoints.GET_ACTIVITIES_TIME_SPENT_PER_WEEK_PROCESSED_DATA]: {}; [ServerEndpoints.GET_COG_RETENTION_RATE_PER_WEEK_PROCESSED_DATA]: {}; [ServerEndpoints.GET_MARTY_RETENTION_RATE_PER_WEEK_PROCESSED_DATA]: {}; [ServerEndpoints.GET_DEVICE_PLATFORM_TOTALS_PROCESSED_DATA]: {}; }; export declare enum FirestoreCollectionsRawEnum { CONSENTS = "consents", SESSIONS = "sessions", SESSION_HEARTBEATS = "sessionHeartbeats", SCREEN_HEARTBEATS = "screenHeartbeats", SCREEN_VISITS = "screenVisits", ACTIVITY_VISITS = "activityVisits", ACTIVITY_HEARTBEATS = "activityHeartbeats" } export declare enum FirestoreCollectionsProcessedEnumLevel1 { SESSIONS = "sessions", DEVICES = "devices", ROBOTS = "robots", SCREENS = "screens", ACTIVITIES = "activities", HEARTBEATS = "heartbeats", METADATA = "metadata" } export declare enum FirestoreCollectionsProcessedEnumLevel2 { SESSIONS_N_PER_WEEK = "sessionsNPerWeek", SESSIONS_N_PER_WEEK_METADATA = "sessionsNPerWeekMetadata", UNIQUE_DEVICES_N_PER_WEEK = "uniqueDevicesNPerWeek", UNIQUE_DEVICES_N_PER_WEEK_METADATA = "uniqueDevicesNPerWeekMetadata", VISITED_SCREENS_FREQUENCY_PER_WEEK = "visitedScreensFrequencyPerWeek", VISITED_SCREENS_FREQUENCY_PER_WEEK_METADATA = "visitedScreensFrequencyPerWeekMetadata", VISITED_ACTIVITIES_FREQUENCY_PER_WEEK = "visitedActivitiesFrequencyPerWeek", VISITED_ACTIVITIES_FREQUENCY_PER_WEEK_METADATA = "visitedActivitiesFrequencyPerWeekMetadata", UNIQUE_COGS_PER_WEEK = "uniqueCogsPerWeek", UNIQUE_COGS_PER_WEEK_METADATA = "uniqueCogsPerWeekMetadata", UNIQUE_MARTYS_PER_WEEK = "uniqueMartysPerWeek", UNIQUE_MARTYS_PER_WEEK_METADATA = "uniqueMartysPerWeekMetadata", SESSIONS_TIME_SPENT_PER_WEEK = "sessionsTimeSpentPerWeek", SESSIONS_TIME_SPENT_PER_WEEK_METADATA = "sessionsTimeSpentPerWeekMetadata", SCREENS_TIME_SPENT_PER_WEEK = "screensTimeSpentPerWeek", SCREENS_TIME_SPENT_PER_WEEK_METADATA = "screensTimeSpentPerWeekMetadata", ACTIVITIES_TIME_SPENT_PER_WEEK = "activitiesTimeSpentPerWeek", ACTIVITIES_TIME_SPENT_PER_WEEK_METADATA = "activitiesTimeSpentPerWeekMetadata", COG_RETENTION_RATE_PER_WEEK = "cogRetentionRatePerWeek", COG_RETENTION_RATE_PER_WEEK_METADATA = "cogRetentionRatePerWeekMetadata", MARTY_RETENTION_RATE_PER_WEEK = "martyRetentionRatePerWeek", MARTY_RETENTION_RATE_PER_WEEK_METADATA = "martyRetentionRatePerWeekMetadata", DEVICE_PLATFORM_TOTALS = "devicePlatformTotals" } export type FirestoreConsentCountersRawData = { negativeConsents: number; positiveConsents: number; }[]; export type FirestoreSessionsRawData = (Omit<ServerEndpointsData[ServerEndpoints.START_SESSION], 'createdAt'> & { createdAt: string; })[]; export type FirestoreScreenVisitsRawData = (Omit<ServerEndpointsData[ServerEndpoints.SCREEN_VISIT], 'createdAt'> & { createdAt: string; })[]; export type FirestoreActivityVisitsRawData = (Omit<ServerEndpointsData[ServerEndpoints.ACTIVITY_VISIT], 'createdAt'> & { createdAt: string; })[]; export type FirestoreSessionHeartbeatsRawData = (Omit<ServerEndpointsData[ServerEndpoints.HEARTBEAT], 'createdAt' | 'lastUpdated' | 'isNewDoc'> & { createdAt: string; lastUpdated: string; })[]; export type FirestoreScreenHeartbeatsRawData = (Omit<ServerEndpointsData[ServerEndpoints.HEARTBEAT], 'createdAt' | 'lastUpdated' | 'isNewDoc' | 'screen'> & { createdAt: string; lastUpdated: string; screen: VisitedScreenEnum; })[]; export type FirestoreActivityHeartbeatsRawData = (Omit<ServerEndpointsData[ServerEndpoints.HEARTBEAT], 'createdAt' | 'lastUpdated' | 'isNewDoc' | 'activity'> & { createdAt: string; lastUpdated: string; activity: VisitedActivityType; })[];