@jealous-robot-dev/stan-client
Version:
163 lines (162 loc) • 5.12 kB
TypeScript
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;
}