@paroicms/server
Version:
The ParoiCMS server
156 lines (155 loc) • 4.92 kB
TypeScript
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;
}