UNPKG

@sphereon/ssi-sdk.event-logger

Version:

81 lines (67 loc) 2.57 kB
import { InitiatorType, LoggingEventType, LogLevel, SubSystem, System } from '@sphereon/ssi-types' import { AuditLoggingEvent, CredentialType, NonPersistedAuditLoggingEvent as NPAuditLoggingEvent, NonPersistedActivityLoggingEvent as NPActivityLoggingEvent, ActivityLoggingEvent, } from '@sphereon/ssi-sdk.core' import { AbstractEventLoggerStore } from '@sphereon/ssi-sdk.data-store-types' import { FindActivityLoggingEventArgs, FindAuditLoggingEventArgs } from '@sphereon/ssi-sdk.data-store-types' import { IAgentContext, IPluginMethodMap } from '@veramo/core' export interface IEventLogger extends IPluginMethodMap { loggerGetAuditEvents(args?: GetAuditEventsArgs): Promise<Array<AuditLoggingEvent>> loggerLogAuditEvent(args: LogEventArgs, context: RequiredContext): Promise<AuditLoggingEvent> loggerLogGeneralEvent(args: LogEventArgs, context: RequiredContext): Promise<LogEventType> loggerLogActivityEvent(args: LogEventArgs, context: RequiredContext): Promise<ActivityLoggingEvent> loggerGetActivityEvents(args?: GetActivityEventsArgs): Promise<Array<ActivityLoggingEvent>> } export interface EventLoggerGeneralLogOpts { debugPkg?: boolean console?: boolean events?: boolean eventName?: string defaultLogLevel?: LogLevel } export type EventLoggerOptions = { store?: AbstractEventLoggerStore eventTypes: Array<LoggingEventType> general?: EventLoggerGeneralLogOpts } export type GetAuditEventsArgs = { filter?: FindAuditLoggingEventArgs } export type GetActivityEventsArgs = { filter?: FindActivityLoggingEventArgs } export type LogEventArgs = { event: LogEventType } export type LogEventType = NonPersistedAuditLoggingEvent | NonPersistedActivityLoggingEvent export type LogAuditEventArgs = { event: NonPersistedAuditLoggingEvent } export type LogActivityEventArgs = { event: NonPersistedActivityLoggingEvent } export type NonPersistedAuditLoggingEvent = Omit<NPAuditLoggingEvent, 'system' | 'subSystemType' | 'initiatorType'> & { system: System subSystemType: SubSystem initiatorType: InitiatorType } export type NonPersistedActivityLoggingEvent = Omit<NPActivityLoggingEvent, 'system' | 'subSystemType' | 'initiatorType'> & { system: System subSystemType: SubSystem initiatorType: InitiatorType originalCredential?: string credentialHash?: string parentCredentialHash?: string credentialType?: CredentialType sharePurpose?: string data?: any } export type LoggingEvent = { type: LoggingEventType data: LogEventType } export type RequiredContext = IAgentContext<IEventLogger>