@sphereon/ssi-sdk.event-logger
Version:
81 lines (67 loc) • 2.57 kB
text/typescript
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>