UNPKG

@jealous-robot-dev/stan-client

Version:

163 lines (162 loc) 5.12 kB
import { OS, SuspensionReasons } from '@jealous-robot-dev/shared-types-databases'; import { AdditionalUserData } from '@jealous-robot-dev/shared-types-app'; export declare enum EventSubjects { USER_CREATED = "user:created", USER_LOGGED_IN = "user:logged-in", USER_LOGGED_OUT = "user:logged-out", USER_PASSWORD_RESET_REQUESTED = "user:password-reset-requested", USER_DEVICE_VERIFICATION_REQUESTED = "user:device-verification-requested", USER_PASSWORD_RESET = "user:password-reset", USER_EMAIL_VERIFIED = "user:email-verified", USER_ASK_DEVICES_TO_LOGOUT = "user:ask-devices-to-logout", USER_DELETED = "user:deleted", USER_SUSPENDED = "user:suspended", USER_UNSUSPENDED = "user:unsuspended", USER_FOLLOWED = "user:followed", USER_UNFOLLOWED = "user:unfollowed", USER_BLOCKED = "user:blocked", USER_UNBLOCKED = "user:unblocked", USER_VIEWED_ANOTHER_USER = "user:viewed-another-user", USER_SECURE_AUTH_UPDATED = "user:security-settings-updated", USER_PRIVACY_UPDATED = "user:privacy-settings-updated", USER_LOGGED_IN_FROM_NEW_DEVICE = "user:logged-in-from-new-device", USER_PRIMARY_DATA_UPDATED = "user:primary-data-updated", USER_ADDITIONAL_DATA_UPDATED = "user:additional-data-updated", USER_PROFILE_PIC_UPDATED = "user:profile-pic-updated", USER_RANK_UPDATED = "user:rank-updated", SUSPEND_THE_USER = "suspensions:suspend-the-user", CUT_SUSPENSION = "suspension:cut-suspension", EXTEND_SUSPENSION = "suspensions:extend-suspension", SYSTEM_INTERNAL_ERROR_OCCURED = "system:internal-error-occured" } export declare type EventPayload = UserCreatedPayload | UserLoggedInPayload | UserLoggedOutPayload | UserPasswordResetRequestedPayload | UserDeviceVerificationRequestedPayload | UserViewedByPayload | UserAskDevicesToLogoutPayload | UserUIDPayload | UserSecureAuthUpdatedPayload | UserPrimaryDataUpdatedPayload | UserFollowedPayload | UserUnfollowedPayload | UserBlockedPayload | UserUnblockedPayload | UserSuspendedPayload | UserAdditionalDataUpdatedPayload | UserRankUpdated | UserPrivacyUpdatedPayload | CutSuspensionPayload | ExtendSuspensionPayload | UserLoggedInFromNewDevicePayload | SystemInternalErrorOccuredPayload; export interface Event<Subject extends EventSubjects, Payload extends EventPayload> { subject: Subject; payload: Payload; } export interface UserCreatedPayload { user: { UID: string; email: string; username: string; sendEmails: boolean; verifiedEmail: boolean; profilePicUrl?: string; emailVerificationToken?: string; firstname?: string; lastname?: string; }; device: { DUID: string; ip: string; os: OS; }; } export interface UserLoggedInPayload { UID: string; device: { ip: string; DUID: string; os: OS; }; } export interface UserLoggedOutPayload { DUIDs: string[]; UID: string; } export interface UserPasswordResetRequestedPayload { UID: string; token: string; issuedAt: number; } export interface UserLoggedInFromNewDevicePayload { UID: string; os: OS; ip: string; } export interface UserEmailVerifiedPayload { email: string; UID: string; } export interface UserDeviceVerificationRequestedPayload { UID: string; ip: string; osVersion: string; osName: string; deviceVerificationCode: string; } export interface UserAskDevicesToLogoutPayload { UID: string; DUIDs: string[]; } export interface UserUIDPayload { UID: string; } export interface UserFollowedPayload { UID: string; userToFollow: string; } export interface UserUnfollowedPayload { UID: string; userToUnfollow: string; } export interface UserBlockedPayload { UID: string; userToBlock: string; } export interface UserSuspendedPayload { UID: string; reason: SuspensionReasons; } export interface CutSuspensionPayload { UID: string; cutTime: number; } export interface ExtendSuspensionPayload { UID: string; extensionTime: number; } export interface UserUnblockedPayload { UID: string; userToUnblock: string; } export interface UserSecureAuthUpdatedPayload { UID: string; secureAuth: boolean; } export interface UserViewedByPayload { viewedBy: string; whoViewed: string; } export interface UserPrimaryDataUpdatedPayload { UID: string; username?: string; lastname?: string; firstname?: string; profilePicUrl?: string; newVersion: number; } export interface UserAdditionalDataUpdatedPayload { UID: string; data: AdditionalUserData; } export interface UserProfilePicUpdatedPayload { UID: string; newUrl: string; } export interface UserRankUpdated { UID: string; newRank: number; } export interface UserPrivacyUpdatedPayload { UID: string; appearForOnlyAuthenticatedUsers?: boolean; publicEmail?: boolean; publicLocation?: boolean; } export interface SystemInternalErrorOccuredPayload { service: string; language: string; field: string; message: string; }