UNPKG

@paroicms/server

Version:
156 lines (155 loc) 4.92 kB
import type { InteractiveLoginMethod } from "../auth/auth.types.js"; export type EventLogEntry = DocumentCreatedEventLogEntry | DocumentUpdatedEventLogEntry | DocumentDeletedEventLogEntry | DocumentMovedEventLogEntry | PartMovedEventLogEntry | AccountCreatedEventLogEntry | AccountUpdatedEventLogEntry | AccountDeletedEventLogEntry | AccountLoginEventLogEntry | AccountLoginMethodChangedEventLogEntry | AccountDeactivatedEventLogEntry | MediaCreatedEventLogEntry | MediaUpdatedEventLogEntry | MediaDeletedEventLogEntry; export interface EventLogEntryBase { actorId?: string; targetId: string; } export interface DocumentCreatedEventLogEntry extends EventLogEntryBase { eventType: "document.create"; targetType: "document"; eventData: DocumentCreatedEventData; } export interface DocumentCreatedEventData { nodeId: string; typeName: string; title?: string; language: string; } export interface DocumentUpdatedEventLogEntry extends EventLogEntryBase { eventType: "document.update"; targetType: "document"; eventData: DocumentUpdatedEventData; } export interface DocumentUpdatedEventData { nodeId: string; typeName: string; title?: string; language: string; changedFields: string[]; } export interface DocumentDeletedEventLogEntry extends EventLogEntryBase { eventType: "document.delete"; targetType: "document"; eventData: DocumentDeletedEventData; } export interface DocumentDeletedEventData { nodeId: string; typeName: string; title?: string; language: string; } export interface DocumentMovedEventLogEntry extends EventLogEntryBase { eventType: "document.move"; targetType: "document"; eventData: DocumentMovedEventData; } export interface DocumentMovedEventData { documentNodeId: string; typeName: string; title?: string; language: string; oldParentNodeId: string; newParentNodeId: string; } export interface PartMovedEventLogEntry extends EventLogEntryBase { eventType: "part.move"; targetType: "documentNode"; eventData: PartMovedEventData; } export interface PartMovedEventData { partNodeId: string; documentNodeId: string; typeName: string; newParentNodeId: string; newListName: string; } export interface AccountCreatedEventLogEntry extends EventLogEntryBase { eventType: "account.create"; targetType: "account"; eventData: AccountCreatedEventData; } export interface AccountCreatedEventData { accountId: string; email: string; name?: string; } export interface AccountUpdatedEventLogEntry extends EventLogEntryBase { eventType: "account.update"; targetType: "account"; eventData: AccountUpdatedEventData; } export interface AccountUpdatedEventData { accountId: string; email: string; changedFields: string[]; } export interface AccountDeletedEventLogEntry extends EventLogEntryBase { eventType: "account.delete"; targetType: "account"; eventData: AccountDeletedEventData; } export interface AccountDeletedEventData { accountId: string; email: string; name?: string; } export interface AccountLoginEventLogEntry extends EventLogEntryBase { eventType: "account.login"; targetType: "account"; eventData: AccountLoginEventData; } export interface AccountLoginEventData { accountId: string; email: string; loginMethod: InteractiveLoginMethod; } export interface AccountLoginMethodChangedEventLogEntry extends EventLogEntryBase { eventType: "account.loginMethodChanged"; targetType: "account"; eventData: AccountLoginMethodChangedEventData; } export interface AccountLoginMethodChangedEventData { accountId: string; email: string; oldLoginMethod?: InteractiveLoginMethod; newLoginMethod?: InteractiveLoginMethod; } export interface AccountDeactivatedEventLogEntry extends EventLogEntryBase { eventType: "account.deactivated"; targetType: "account"; eventData: AccountDeactivatedEventData; } export interface AccountDeactivatedEventData { accountId: string; email: string; reason: string; } export interface MediaCreatedEventLogEntry extends EventLogEntryBase { eventType: "media.create"; targetType: "media"; eventData: MediaCreatedEventData; } export interface MediaCreatedEventData { mediaId: string; filename: string; mimeType: string; sizeBytes: number; } export interface MediaUpdatedEventLogEntry extends EventLogEntryBase { eventType: "media.update"; targetType: "media"; eventData: MediaUpdatedEventData; } export interface MediaUpdatedEventData { mediaId: string; changedFields: string[]; } export interface MediaDeletedEventLogEntry extends EventLogEntryBase { eventType: "media.delete"; targetType: "media"; eventData: MediaDeletedEventData; } export interface MediaDeletedEventData { mediaId: string; originalName?: string; }