@sphereon/ssi-types 0.24.1-unstable.97 → 0.25.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/events/index.d.ts +113 -0
- package/dist/events/index.d.ts.map +1 -0
- package/dist/events/index.js +161 -0
- package/dist/events/index.js.map +1 -0
- package/dist/index.d.ts +2 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +5 -0
- package/dist/index.js.map +1 -1
- package/dist/logging/index.d.ts +72 -0
- package/dist/logging/index.d.ts.map +1 -0
- package/dist/logging/index.js +161 -0
- package/dist/logging/index.js.map +1 -0
- package/package.json +4 -2
- package/src/events/index.ts +206 -0
- package/src/index.ts +6 -0
- package/src/logging/index.ts +198 -0
|
@@ -0,0 +1,113 @@
|
|
|
1
|
+
/// <reference types="node" />
|
|
2
|
+
import { EventEmitter } from 'events';
|
|
3
|
+
export declare enum System {
|
|
4
|
+
GENERAL = "general",
|
|
5
|
+
KMS = "kms",
|
|
6
|
+
IDENTITY = "identity",
|
|
7
|
+
OID4VCI = "oid4vci",
|
|
8
|
+
OID4VP = "oid4vp",
|
|
9
|
+
SIOPv2 = "siopv2",
|
|
10
|
+
PE = "PE",
|
|
11
|
+
CREDENTIALS = "credentials",
|
|
12
|
+
WEB3 = "web3",
|
|
13
|
+
PROFILE = "profile",
|
|
14
|
+
CONTACT = "contact"
|
|
15
|
+
}
|
|
16
|
+
export declare enum SubSystem {
|
|
17
|
+
KEY = "key",
|
|
18
|
+
DID_PROVIDER = "did_provider",
|
|
19
|
+
DID_RESOLVER = "did_resolver",
|
|
20
|
+
OID4VP_OP = "oid4vp_op",
|
|
21
|
+
OID4VCI_CLIENT = "oid4vci_client",
|
|
22
|
+
SIOPv2_OP = "siopv2_op",
|
|
23
|
+
CONTACT_MANAGER = "contact_manager",
|
|
24
|
+
VC_ISSUER = "vc_issuer",
|
|
25
|
+
VC_VERIFIER = "vc_verifier",
|
|
26
|
+
VC_PERSISTENCE = "vc_persistence",
|
|
27
|
+
TRANSPORT = "transport",
|
|
28
|
+
PROFILE = "profile",
|
|
29
|
+
API = "api"
|
|
30
|
+
}
|
|
31
|
+
export declare enum ActionType {
|
|
32
|
+
CREATE = "create",
|
|
33
|
+
READ = "read",
|
|
34
|
+
UPDATE = "update",
|
|
35
|
+
DELETE = "delete",
|
|
36
|
+
EXECUTE = "execute"
|
|
37
|
+
}
|
|
38
|
+
export declare enum DefaultActionSubType {
|
|
39
|
+
KEY_GENERATION = "Key generation",
|
|
40
|
+
KEY_IMPORT = "Key import",
|
|
41
|
+
KEY_PERSISTENCE = "Key persistence",
|
|
42
|
+
KEY_REMOVAL = "Key removal",
|
|
43
|
+
DID_CREATION = "DID creation",
|
|
44
|
+
DID_RESOLUTION = "DID resolution",
|
|
45
|
+
DID_SERVICE_UPDATE = "DID service update",
|
|
46
|
+
VC_ISSUE = "VC issue",
|
|
47
|
+
VC_VERIFY = "VC verify"
|
|
48
|
+
}
|
|
49
|
+
export type ActionSubType = DefaultActionSubType | string;
|
|
50
|
+
export declare enum InitiatorType {
|
|
51
|
+
USER = "user",
|
|
52
|
+
SYSTEM = "system",
|
|
53
|
+
EXTERNAL = "external"
|
|
54
|
+
}
|
|
55
|
+
export declare enum SystemCorrelationIdType {
|
|
56
|
+
DID = "did",
|
|
57
|
+
URL = "url",
|
|
58
|
+
EMAIL = "email",
|
|
59
|
+
HOSTNAME = "hostname",
|
|
60
|
+
PHONE = "phone",
|
|
61
|
+
USER = "user"
|
|
62
|
+
}
|
|
63
|
+
export type EventData = {
|
|
64
|
+
system: string;
|
|
65
|
+
subSystemType: string;
|
|
66
|
+
};
|
|
67
|
+
export interface BasicEvent<SourceType, PayloadType extends EventData> {
|
|
68
|
+
id: string;
|
|
69
|
+
correlationId?: string;
|
|
70
|
+
eventName: string;
|
|
71
|
+
initiator?: string;
|
|
72
|
+
initiatorType: InitiatorType;
|
|
73
|
+
system: System;
|
|
74
|
+
subsystem: SubSystem;
|
|
75
|
+
data: PayloadType;
|
|
76
|
+
}
|
|
77
|
+
export declare class EventManager {
|
|
78
|
+
private static readonly INSTANCE;
|
|
79
|
+
private _emitters;
|
|
80
|
+
private constructor();
|
|
81
|
+
static instance(): EventManager;
|
|
82
|
+
register(name: string, emitter: EventEmitter, opts?: {
|
|
83
|
+
disabled: boolean;
|
|
84
|
+
}): EventEmitter;
|
|
85
|
+
get(name: string, opts?: {
|
|
86
|
+
onlyEnabled?: boolean;
|
|
87
|
+
}): EventEmitter;
|
|
88
|
+
getOrCreate(name: string, opts?: {
|
|
89
|
+
onlyEnabled?: boolean;
|
|
90
|
+
}): EventEmitter;
|
|
91
|
+
has(name: string): boolean;
|
|
92
|
+
emitters(filter?: {
|
|
93
|
+
eventName?: string | symbol;
|
|
94
|
+
onlyEnabled?: boolean;
|
|
95
|
+
}): Array<EventEmitter>;
|
|
96
|
+
hasEventName(eventName: string | symbol): boolean;
|
|
97
|
+
eventNames(): Array<string | symbol>;
|
|
98
|
+
emitBasic(event: BasicEvent<any, any>, ...args: any[]): void;
|
|
99
|
+
emit(eventName: string | symbol, event: Omit<BasicEvent<any, any>, 'eventName'> | any, ...args: any[]): void;
|
|
100
|
+
listenerCount(eventName: string | symbol): number;
|
|
101
|
+
listeners(filter: {
|
|
102
|
+
emitterName?: string;
|
|
103
|
+
eventName: string;
|
|
104
|
+
onlyEnabled?: boolean;
|
|
105
|
+
}): Array<Function>;
|
|
106
|
+
private emittersImpl;
|
|
107
|
+
}
|
|
108
|
+
export declare class BasicEventEmitter extends EventEmitter {
|
|
109
|
+
addListener(eventName: string | symbol, listener: (event: BasicEvent<any, any>, ...args: any[]) => void): this;
|
|
110
|
+
once(eventName: string | symbol, listener: (event: BasicEvent<any, any>, ...args: any[]) => void): this;
|
|
111
|
+
emit(eventName: string, event: BasicEvent<any, any>, ...args: any[]): boolean;
|
|
112
|
+
}
|
|
113
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/events/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,161 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.BasicEventEmitter = exports.EventManager = exports.SystemCorrelationIdType = exports.InitiatorType = exports.DefaultActionSubType = exports.ActionType = exports.SubSystem = exports.System = void 0;
|
|
4
|
+
const events_1 = require("events");
|
|
5
|
+
const logging_1 = require("../logging");
|
|
6
|
+
var System;
|
|
7
|
+
(function (System) {
|
|
8
|
+
System["GENERAL"] = "general";
|
|
9
|
+
System["KMS"] = "kms";
|
|
10
|
+
System["IDENTITY"] = "identity";
|
|
11
|
+
System["OID4VCI"] = "oid4vci";
|
|
12
|
+
System["OID4VP"] = "oid4vp";
|
|
13
|
+
System["SIOPv2"] = "siopv2";
|
|
14
|
+
System["PE"] = "PE";
|
|
15
|
+
System["CREDENTIALS"] = "credentials";
|
|
16
|
+
System["WEB3"] = "web3";
|
|
17
|
+
System["PROFILE"] = "profile";
|
|
18
|
+
System["CONTACT"] = "contact";
|
|
19
|
+
})(System || (exports.System = System = {}));
|
|
20
|
+
var SubSystem;
|
|
21
|
+
(function (SubSystem) {
|
|
22
|
+
SubSystem["KEY"] = "key";
|
|
23
|
+
SubSystem["DID_PROVIDER"] = "did_provider";
|
|
24
|
+
SubSystem["DID_RESOLVER"] = "did_resolver";
|
|
25
|
+
SubSystem["OID4VP_OP"] = "oid4vp_op";
|
|
26
|
+
SubSystem["OID4VCI_CLIENT"] = "oid4vci_client";
|
|
27
|
+
SubSystem["SIOPv2_OP"] = "siopv2_op";
|
|
28
|
+
SubSystem["CONTACT_MANAGER"] = "contact_manager";
|
|
29
|
+
SubSystem["VC_ISSUER"] = "vc_issuer";
|
|
30
|
+
SubSystem["VC_VERIFIER"] = "vc_verifier";
|
|
31
|
+
SubSystem["VC_PERSISTENCE"] = "vc_persistence";
|
|
32
|
+
SubSystem["TRANSPORT"] = "transport";
|
|
33
|
+
SubSystem["PROFILE"] = "profile";
|
|
34
|
+
SubSystem["API"] = "api";
|
|
35
|
+
})(SubSystem || (exports.SubSystem = SubSystem = {}));
|
|
36
|
+
var ActionType;
|
|
37
|
+
(function (ActionType) {
|
|
38
|
+
ActionType["CREATE"] = "create";
|
|
39
|
+
ActionType["READ"] = "read";
|
|
40
|
+
ActionType["UPDATE"] = "update";
|
|
41
|
+
ActionType["DELETE"] = "delete";
|
|
42
|
+
ActionType["EXECUTE"] = "execute";
|
|
43
|
+
})(ActionType || (exports.ActionType = ActionType = {}));
|
|
44
|
+
var DefaultActionSubType;
|
|
45
|
+
(function (DefaultActionSubType) {
|
|
46
|
+
DefaultActionSubType["KEY_GENERATION"] = "Key generation";
|
|
47
|
+
DefaultActionSubType["KEY_IMPORT"] = "Key import";
|
|
48
|
+
DefaultActionSubType["KEY_PERSISTENCE"] = "Key persistence";
|
|
49
|
+
DefaultActionSubType["KEY_REMOVAL"] = "Key removal";
|
|
50
|
+
DefaultActionSubType["DID_CREATION"] = "DID creation";
|
|
51
|
+
DefaultActionSubType["DID_RESOLUTION"] = "DID resolution";
|
|
52
|
+
DefaultActionSubType["DID_SERVICE_UPDATE"] = "DID service update";
|
|
53
|
+
DefaultActionSubType["VC_ISSUE"] = "VC issue";
|
|
54
|
+
DefaultActionSubType["VC_VERIFY"] = "VC verify";
|
|
55
|
+
})(DefaultActionSubType || (exports.DefaultActionSubType = DefaultActionSubType = {}));
|
|
56
|
+
var InitiatorType;
|
|
57
|
+
(function (InitiatorType) {
|
|
58
|
+
InitiatorType["USER"] = "user";
|
|
59
|
+
InitiatorType["SYSTEM"] = "system";
|
|
60
|
+
InitiatorType["EXTERNAL"] = "external";
|
|
61
|
+
})(InitiatorType || (exports.InitiatorType = InitiatorType = {}));
|
|
62
|
+
var SystemCorrelationIdType;
|
|
63
|
+
(function (SystemCorrelationIdType) {
|
|
64
|
+
SystemCorrelationIdType["DID"] = "did";
|
|
65
|
+
SystemCorrelationIdType["URL"] = "url";
|
|
66
|
+
SystemCorrelationIdType["EMAIL"] = "email";
|
|
67
|
+
SystemCorrelationIdType["HOSTNAME"] = "hostname";
|
|
68
|
+
SystemCorrelationIdType["PHONE"] = "phone";
|
|
69
|
+
SystemCorrelationIdType["USER"] = "user";
|
|
70
|
+
})(SystemCorrelationIdType || (exports.SystemCorrelationIdType = SystemCorrelationIdType = {}));
|
|
71
|
+
class EventManager {
|
|
72
|
+
constructor() {
|
|
73
|
+
this._emitters = new Map();
|
|
74
|
+
}
|
|
75
|
+
static instance() {
|
|
76
|
+
return EventManager.INSTANCE;
|
|
77
|
+
}
|
|
78
|
+
register(name, emitter, opts) {
|
|
79
|
+
this._emitters.set(name, { emitter, enabled: (opts === null || opts === void 0 ? void 0 : opts.disabled) !== true });
|
|
80
|
+
return emitter;
|
|
81
|
+
}
|
|
82
|
+
get(name, opts) {
|
|
83
|
+
var _a;
|
|
84
|
+
const { emitter, enabled } = (_a = this._emitters.get(name)) !== null && _a !== void 0 ? _a : {};
|
|
85
|
+
if (!emitter) {
|
|
86
|
+
throw Error(`No emitter registered with name ${name}`);
|
|
87
|
+
}
|
|
88
|
+
else if ((opts === null || opts === void 0 ? void 0 : opts.onlyEnabled) && !enabled) {
|
|
89
|
+
throw Error(`Emitter with name ${name} is not enabled`);
|
|
90
|
+
}
|
|
91
|
+
return emitter;
|
|
92
|
+
}
|
|
93
|
+
getOrCreate(name, opts) {
|
|
94
|
+
if (this.has(name)) {
|
|
95
|
+
return this.get(name, opts);
|
|
96
|
+
}
|
|
97
|
+
return this.register(name, new BasicEventEmitter());
|
|
98
|
+
}
|
|
99
|
+
has(name) {
|
|
100
|
+
return this._emitters.has(name);
|
|
101
|
+
}
|
|
102
|
+
emitters(filter) {
|
|
103
|
+
const all = Array.from(new Set(this._emitters.values()));
|
|
104
|
+
return this.emittersImpl(all, filter).map((e) => e.emitter);
|
|
105
|
+
}
|
|
106
|
+
hasEventName(eventName) {
|
|
107
|
+
return this.eventNames().includes(eventName);
|
|
108
|
+
}
|
|
109
|
+
eventNames() {
|
|
110
|
+
return Array.from(new Set(this.emitters().flatMap((emitter) => emitter.eventNames())));
|
|
111
|
+
}
|
|
112
|
+
emitBasic(event, ...args) {
|
|
113
|
+
return this.emit(event.eventName, event, args);
|
|
114
|
+
}
|
|
115
|
+
emit(eventName, event, ...args) {
|
|
116
|
+
if ('id' in event && 'system' in event && !event.eventName) {
|
|
117
|
+
event.eventName = eventName;
|
|
118
|
+
}
|
|
119
|
+
logging_1.Loggers.DEFAULT.options('sphereon:events', {
|
|
120
|
+
methods: [logging_1.LogMethod.CONSOLE],
|
|
121
|
+
defaultLogLevel: logging_1.LogLevel.INFO,
|
|
122
|
+
})
|
|
123
|
+
.get('sphereon:events')
|
|
124
|
+
.log(`Emitting '${eventName.toString()}' event`, event);
|
|
125
|
+
const emitters = this.emitters({ eventName });
|
|
126
|
+
emitters.flatMap((emitter) => emitter.emit(eventName, event, args));
|
|
127
|
+
}
|
|
128
|
+
listenerCount(eventName) {
|
|
129
|
+
const emitters = this.emitters({ eventName });
|
|
130
|
+
return emitters.map((emitter) => emitter.listenerCount(eventName)).reduce((previous, current) => current + previous);
|
|
131
|
+
}
|
|
132
|
+
listeners(filter) {
|
|
133
|
+
const emitters = (filter === null || filter === void 0 ? void 0 : filter.emitterName) ? [this.get(filter.emitterName, filter)] : this.emitters(filter);
|
|
134
|
+
return Array.from(new Set(this.emittersImpl(emitters.map((emitter) => {
|
|
135
|
+
return { emitter, enabled: true };
|
|
136
|
+
}), filter).flatMap((emitter) => emitter.emitter.listeners(filter.eventName))));
|
|
137
|
+
}
|
|
138
|
+
emittersImpl(all, filter) {
|
|
139
|
+
const { eventName } = filter !== null && filter !== void 0 ? filter : {};
|
|
140
|
+
if (!eventName) {
|
|
141
|
+
return all;
|
|
142
|
+
}
|
|
143
|
+
const filtered = all.filter((emitter) => emitter.emitter.eventNames().includes(eventName) && (emitter.enabled || (filter === null || filter === void 0 ? void 0 : filter.onlyEnabled) !== true));
|
|
144
|
+
return Array.from(new Set(filtered));
|
|
145
|
+
}
|
|
146
|
+
}
|
|
147
|
+
exports.EventManager = EventManager;
|
|
148
|
+
EventManager.INSTANCE = new EventManager();
|
|
149
|
+
class BasicEventEmitter extends events_1.EventEmitter {
|
|
150
|
+
addListener(eventName, listener) {
|
|
151
|
+
return super.addListener(eventName, listener);
|
|
152
|
+
}
|
|
153
|
+
once(eventName, listener) {
|
|
154
|
+
return super.once(eventName, listener);
|
|
155
|
+
}
|
|
156
|
+
emit(eventName, event, ...args) {
|
|
157
|
+
return super.emit(eventName, ...args);
|
|
158
|
+
}
|
|
159
|
+
}
|
|
160
|
+
exports.BasicEventEmitter = BasicEventEmitter;
|
|
161
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/events/index.ts"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts
CHANGED
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAIA,cAAc,WAAW,CAAA;AACzB,cAAc,UAAU,CAAA;AACxB,cAAc,SAAS,CAAA;AACvB,cAAc,SAAS,CAAA;AACvB,cAAc,UAAU,CAAA"}
|
package/dist/index.js
CHANGED
|
@@ -14,6 +14,11 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
|
14
14
|
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
15
|
};
|
|
16
16
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
+
const logging_1 = require("./logging");
|
|
18
|
+
// We call the logger first, making sure that any library (re-)using the logger has the static initialized
|
|
19
|
+
logging_1.Loggers.DEFAULT.get('sphereon:ssi').debug(`Sphereon logger initialized`);
|
|
20
|
+
__exportStar(require("./logging"), exports);
|
|
21
|
+
__exportStar(require("./events"), exports);
|
|
17
22
|
__exportStar(require("./types"), exports);
|
|
18
23
|
__exportStar(require("./utils"), exports);
|
|
19
24
|
__exportStar(require("./mapper"), exports);
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,0CAAuB;AACvB,0CAAuB;AACvB,2CAAwB"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,uCAAmC;AACnC,0GAA0G;AAC1G,iBAAO,CAAC,OAAO,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC,KAAK,CAAC,6BAA6B,CAAC,CAAA;AAExE,4CAAyB;AACzB,2CAAwB;AACxB,0CAAuB;AACvB,0CAAuB;AACvB,2CAAwB"}
|
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
/// <reference types="node" />
|
|
2
|
+
import { EventEmitter } from 'events';
|
|
3
|
+
export declare enum LogLevel {
|
|
4
|
+
TRACE = 0,
|
|
5
|
+
DEBUG = 1,
|
|
6
|
+
INFO = 2,
|
|
7
|
+
WARNING = 3,
|
|
8
|
+
ERROR = 4
|
|
9
|
+
}
|
|
10
|
+
export declare enum LoggingEventType {
|
|
11
|
+
AUDIT = "audit",
|
|
12
|
+
GENERAL = "general"
|
|
13
|
+
}
|
|
14
|
+
export interface SimpleLogEvent {
|
|
15
|
+
type: LoggingEventType.GENERAL;
|
|
16
|
+
level: LogLevel;
|
|
17
|
+
correlationId?: string;
|
|
18
|
+
timestamp: Date;
|
|
19
|
+
data: string;
|
|
20
|
+
diagnosticData?: any;
|
|
21
|
+
}
|
|
22
|
+
export declare enum LogMethod {
|
|
23
|
+
DEBUG_PKG = 0,
|
|
24
|
+
CONSOLE = 1,
|
|
25
|
+
EVENT = 2
|
|
26
|
+
}
|
|
27
|
+
export interface SimpleLogOptions {
|
|
28
|
+
namespace?: string;
|
|
29
|
+
eventName?: string;
|
|
30
|
+
defaultLogLevel?: LogLevel;
|
|
31
|
+
methods?: LogMethod[];
|
|
32
|
+
}
|
|
33
|
+
export declare function logOptions(opts?: SimpleLogOptions): Required<SimpleLogOptions>;
|
|
34
|
+
export declare class Loggers {
|
|
35
|
+
private static readonly DEFAULT_KEY;
|
|
36
|
+
static readonly DEFAULT: Loggers;
|
|
37
|
+
private readonly namespaceOptions;
|
|
38
|
+
private readonly loggers;
|
|
39
|
+
constructor(defaultOptions?: Omit<SimpleLogOptions, 'namespace'>);
|
|
40
|
+
options(namespace: string, options: Omit<SimpleLogOptions, 'namespace'>): this;
|
|
41
|
+
defaultOptions(options: Omit<SimpleLogOptions, 'namespace'>): this;
|
|
42
|
+
register<T>(namespace: string, logger: ISimpleLogger<T>): ISimpleLogger<T>;
|
|
43
|
+
get<T>(namespace: string, registerLogger?: ISimpleLogger<T>): ISimpleLogger<T>;
|
|
44
|
+
}
|
|
45
|
+
export type ISimpleLogger<LogType> = {
|
|
46
|
+
options: Required<SimpleLogOptions>;
|
|
47
|
+
log(value: LogType, ...args: any[]): void;
|
|
48
|
+
info(value: LogType, ...args: any[]): void;
|
|
49
|
+
debug(value: LogType, ...args: any[]): void;
|
|
50
|
+
trace(value: LogType, ...args: any[]): void;
|
|
51
|
+
warning(value: LogType, ...args: any[]): void;
|
|
52
|
+
error(value: LogType, ...args: any[]): void;
|
|
53
|
+
logl(level: LogLevel, value: LogType, ...args: any[]): void;
|
|
54
|
+
};
|
|
55
|
+
export declare class SimpleLogger implements ISimpleLogger<any> {
|
|
56
|
+
private _eventEmitter;
|
|
57
|
+
private _options;
|
|
58
|
+
constructor(opts?: SimpleLogOptions);
|
|
59
|
+
get eventEmitter(): EventEmitter;
|
|
60
|
+
get options(): Required<SimpleLogOptions>;
|
|
61
|
+
trace(value: any, ...args: any[]): void;
|
|
62
|
+
debug(value: any, ...args: any[]): void;
|
|
63
|
+
info(value: any, ...args: any[]): void;
|
|
64
|
+
warning(value: any, ...args: any[]): void;
|
|
65
|
+
error(value: any, ...args: any[]): void;
|
|
66
|
+
logl(level: LogLevel, value: any, ...args: any[]): void;
|
|
67
|
+
log(value: any, args?: any[]): void;
|
|
68
|
+
}
|
|
69
|
+
export declare class SimpleRecordLogger extends SimpleLogger implements ISimpleLogger<Record<string, any>> {
|
|
70
|
+
constructor(opts?: SimpleLogOptions);
|
|
71
|
+
}
|
|
72
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/logging/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,161 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.SimpleRecordLogger = exports.SimpleLogger = exports.Loggers = exports.logOptions = exports.LogMethod = exports.LoggingEventType = exports.LogLevel = void 0;
|
|
7
|
+
const debug_1 = __importDefault(require("debug"));
|
|
8
|
+
const events_1 = require("events");
|
|
9
|
+
var LogLevel;
|
|
10
|
+
(function (LogLevel) {
|
|
11
|
+
LogLevel[LogLevel["TRACE"] = 0] = "TRACE";
|
|
12
|
+
LogLevel[LogLevel["DEBUG"] = 1] = "DEBUG";
|
|
13
|
+
LogLevel[LogLevel["INFO"] = 2] = "INFO";
|
|
14
|
+
LogLevel[LogLevel["WARNING"] = 3] = "WARNING";
|
|
15
|
+
LogLevel[LogLevel["ERROR"] = 4] = "ERROR";
|
|
16
|
+
})(LogLevel || (exports.LogLevel = LogLevel = {}));
|
|
17
|
+
var LoggingEventType;
|
|
18
|
+
(function (LoggingEventType) {
|
|
19
|
+
LoggingEventType["AUDIT"] = "audit";
|
|
20
|
+
LoggingEventType["GENERAL"] = "general";
|
|
21
|
+
})(LoggingEventType || (exports.LoggingEventType = LoggingEventType = {}));
|
|
22
|
+
var LogMethod;
|
|
23
|
+
(function (LogMethod) {
|
|
24
|
+
LogMethod[LogMethod["DEBUG_PKG"] = 0] = "DEBUG_PKG";
|
|
25
|
+
LogMethod[LogMethod["CONSOLE"] = 1] = "CONSOLE";
|
|
26
|
+
LogMethod[LogMethod["EVENT"] = 2] = "EVENT";
|
|
27
|
+
})(LogMethod || (exports.LogMethod = LogMethod = {}));
|
|
28
|
+
function logOptions(opts) {
|
|
29
|
+
var _a, _b, _c, _d;
|
|
30
|
+
return {
|
|
31
|
+
namespace: (_a = opts === null || opts === void 0 ? void 0 : opts.namespace) !== null && _a !== void 0 ? _a : 'sphereon',
|
|
32
|
+
eventName: (_b = opts === null || opts === void 0 ? void 0 : opts.eventName) !== null && _b !== void 0 ? _b : 'sphereon:default',
|
|
33
|
+
defaultLogLevel: (_c = opts === null || opts === void 0 ? void 0 : opts.defaultLogLevel) !== null && _c !== void 0 ? _c : LogLevel.INFO,
|
|
34
|
+
methods: (_d = opts === null || opts === void 0 ? void 0 : opts.methods) !== null && _d !== void 0 ? _d : [LogMethod.DEBUG_PKG, LogMethod.EVENT],
|
|
35
|
+
};
|
|
36
|
+
}
|
|
37
|
+
exports.logOptions = logOptions;
|
|
38
|
+
class Loggers {
|
|
39
|
+
constructor(defaultOptions) {
|
|
40
|
+
this.namespaceOptions = new Map();
|
|
41
|
+
this.loggers = new WeakMap();
|
|
42
|
+
this.defaultOptions(logOptions(defaultOptions));
|
|
43
|
+
}
|
|
44
|
+
options(namespace, options) {
|
|
45
|
+
this.namespaceOptions.set(namespace, logOptions(Object.assign(Object.assign({}, options), { namespace })));
|
|
46
|
+
return this;
|
|
47
|
+
}
|
|
48
|
+
defaultOptions(options) {
|
|
49
|
+
this.options(Loggers.DEFAULT_KEY, options);
|
|
50
|
+
return this;
|
|
51
|
+
}
|
|
52
|
+
register(namespace, logger) {
|
|
53
|
+
return this.get(namespace, logger);
|
|
54
|
+
}
|
|
55
|
+
get(namespace, registerLogger) {
|
|
56
|
+
var _a, _b;
|
|
57
|
+
const options = (_b = (_a = this.namespaceOptions.get(namespace)) !== null && _a !== void 0 ? _a : registerLogger === null || registerLogger === void 0 ? void 0 : registerLogger.options) !== null && _b !== void 0 ? _b : this.namespaceOptions.get(Loggers.DEFAULT_KEY);
|
|
58
|
+
if (!options) {
|
|
59
|
+
throw Error(`No logging options found for namespace ${namespace}`);
|
|
60
|
+
}
|
|
61
|
+
this.namespaceOptions.set(namespace, options);
|
|
62
|
+
let logger = this.loggers.get(options);
|
|
63
|
+
if (!logger) {
|
|
64
|
+
logger = registerLogger !== null && registerLogger !== void 0 ? registerLogger : new SimpleLogger(options);
|
|
65
|
+
this.loggers.set(options, logger);
|
|
66
|
+
}
|
|
67
|
+
return logger;
|
|
68
|
+
}
|
|
69
|
+
}
|
|
70
|
+
exports.Loggers = Loggers;
|
|
71
|
+
Loggers.DEFAULT_KEY = '__DEFAULT__';
|
|
72
|
+
Loggers.DEFAULT = new Loggers({ defaultLogLevel: LogLevel.INFO, methods: [LogMethod.DEBUG_PKG, LogMethod.EVENT] });
|
|
73
|
+
class SimpleLogger {
|
|
74
|
+
constructor(opts) {
|
|
75
|
+
this._eventEmitter = new events_1.EventEmitter({ captureRejections: true });
|
|
76
|
+
this._options = logOptions(opts);
|
|
77
|
+
}
|
|
78
|
+
get eventEmitter() {
|
|
79
|
+
return this._eventEmitter;
|
|
80
|
+
}
|
|
81
|
+
get options() {
|
|
82
|
+
return this._options;
|
|
83
|
+
}
|
|
84
|
+
trace(value, ...args) {
|
|
85
|
+
this.logl(LogLevel.TRACE, value, args);
|
|
86
|
+
}
|
|
87
|
+
debug(value, ...args) {
|
|
88
|
+
this.logl(LogLevel.DEBUG, value, args);
|
|
89
|
+
}
|
|
90
|
+
info(value, ...args) {
|
|
91
|
+
this.logl(LogLevel.INFO, value, args);
|
|
92
|
+
}
|
|
93
|
+
warning(value, ...args) {
|
|
94
|
+
this.logl(LogLevel.WARNING, value, args);
|
|
95
|
+
}
|
|
96
|
+
error(value, ...args) {
|
|
97
|
+
this.logl(LogLevel.ERROR, value, args);
|
|
98
|
+
}
|
|
99
|
+
logl(level, value, ...args) {
|
|
100
|
+
const date = new Date().toISOString();
|
|
101
|
+
const filteredArgs = args.filter((v) => v);
|
|
102
|
+
const arg = filteredArgs.length === 0 || filteredArgs[0] == undefined ? undefined : filteredArgs;
|
|
103
|
+
function toLogValue(options) {
|
|
104
|
+
if (typeof value === 'string') {
|
|
105
|
+
return `${date}-(${options.namespace}) ${value}`;
|
|
106
|
+
}
|
|
107
|
+
else if (typeof value === 'object') {
|
|
108
|
+
value['namespace'] = options.namespace;
|
|
109
|
+
value['time'] = date;
|
|
110
|
+
}
|
|
111
|
+
return value;
|
|
112
|
+
}
|
|
113
|
+
const logValue = toLogValue(this.options);
|
|
114
|
+
const logArgs = [logValue];
|
|
115
|
+
if (arg) {
|
|
116
|
+
logArgs.push(args);
|
|
117
|
+
}
|
|
118
|
+
if (this.options.methods.includes(LogMethod.DEBUG_PKG)) {
|
|
119
|
+
if (arg) {
|
|
120
|
+
(0, debug_1.default)(this._options.namespace)(`${date}- ${value}`, arg);
|
|
121
|
+
}
|
|
122
|
+
else {
|
|
123
|
+
(0, debug_1.default)(this._options.namespace)(`${date}- ${value}`);
|
|
124
|
+
}
|
|
125
|
+
}
|
|
126
|
+
if (this.options.methods.includes(LogMethod.CONSOLE)) {
|
|
127
|
+
switch (level) {
|
|
128
|
+
case LogLevel.TRACE:
|
|
129
|
+
return console.trace(logArgs);
|
|
130
|
+
case LogLevel.DEBUG:
|
|
131
|
+
return console.debug(logArgs);
|
|
132
|
+
case LogLevel.INFO:
|
|
133
|
+
return console.info(logArgs);
|
|
134
|
+
case LogLevel.WARNING:
|
|
135
|
+
return console.warn(logArgs);
|
|
136
|
+
case LogLevel.ERROR:
|
|
137
|
+
return console.error(logArgs);
|
|
138
|
+
}
|
|
139
|
+
}
|
|
140
|
+
if (this.options.methods.includes(LogMethod.EVENT)) {
|
|
141
|
+
this._eventEmitter.emit(this.options.eventName, {
|
|
142
|
+
data: value.toString(),
|
|
143
|
+
timestamp: new Date(date),
|
|
144
|
+
level,
|
|
145
|
+
type: LoggingEventType.GENERAL,
|
|
146
|
+
diagnosticData: logArgs,
|
|
147
|
+
});
|
|
148
|
+
}
|
|
149
|
+
}
|
|
150
|
+
log(value, args) {
|
|
151
|
+
this.logl(this.options.defaultLogLevel, value, args);
|
|
152
|
+
}
|
|
153
|
+
}
|
|
154
|
+
exports.SimpleLogger = SimpleLogger;
|
|
155
|
+
class SimpleRecordLogger extends SimpleLogger {
|
|
156
|
+
constructor(opts) {
|
|
157
|
+
super(opts);
|
|
158
|
+
}
|
|
159
|
+
}
|
|
160
|
+
exports.SimpleRecordLogger = SimpleRecordLogger;
|
|
161
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/logging/index.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@sphereon/ssi-types",
|
|
3
3
|
"description": "SSI Common Types",
|
|
4
|
-
"version": "0.
|
|
4
|
+
"version": "0.25.0",
|
|
5
5
|
"main": "dist/index.js",
|
|
6
6
|
"types": "dist/index.d.ts",
|
|
7
7
|
"scripts": {
|
|
@@ -10,6 +10,8 @@
|
|
|
10
10
|
},
|
|
11
11
|
"dependencies": {
|
|
12
12
|
"@sd-jwt/decode": "^0.6.1",
|
|
13
|
+
"debug": "^4.3.5",
|
|
14
|
+
"events": "^3.3.0",
|
|
13
15
|
"jwt-decode": "^3.1.2"
|
|
14
16
|
},
|
|
15
17
|
"devDependencies": {
|
|
@@ -42,5 +44,5 @@
|
|
|
42
44
|
"Verifiable Credentials",
|
|
43
45
|
"DIDs"
|
|
44
46
|
],
|
|
45
|
-
"gitHead": "
|
|
47
|
+
"gitHead": "99bf4e65105924a3a186bb15e402ae8457731400"
|
|
46
48
|
}
|
|
@@ -0,0 +1,206 @@
|
|
|
1
|
+
import { EventEmitter } from 'events'
|
|
2
|
+
import { Loggers, LogLevel, LogMethod } from '../logging'
|
|
3
|
+
|
|
4
|
+
export enum System {
|
|
5
|
+
GENERAL = 'general',
|
|
6
|
+
KMS = 'kms',
|
|
7
|
+
IDENTITY = 'identity',
|
|
8
|
+
OID4VCI = 'oid4vci',
|
|
9
|
+
OID4VP = 'oid4vp',
|
|
10
|
+
SIOPv2 = 'siopv2',
|
|
11
|
+
PE = 'PE',
|
|
12
|
+
CREDENTIALS = 'credentials',
|
|
13
|
+
WEB3 = 'web3',
|
|
14
|
+
PROFILE = 'profile',
|
|
15
|
+
CONTACT = 'contact',
|
|
16
|
+
}
|
|
17
|
+
|
|
18
|
+
export enum SubSystem {
|
|
19
|
+
KEY = 'key',
|
|
20
|
+
DID_PROVIDER = 'did_provider',
|
|
21
|
+
DID_RESOLVER = 'did_resolver',
|
|
22
|
+
OID4VP_OP = 'oid4vp_op',
|
|
23
|
+
OID4VCI_CLIENT = 'oid4vci_client',
|
|
24
|
+
SIOPv2_OP = 'siopv2_op',
|
|
25
|
+
CONTACT_MANAGER = 'contact_manager',
|
|
26
|
+
VC_ISSUER = 'vc_issuer',
|
|
27
|
+
VC_VERIFIER = 'vc_verifier',
|
|
28
|
+
VC_PERSISTENCE = 'vc_persistence',
|
|
29
|
+
TRANSPORT = 'transport',
|
|
30
|
+
PROFILE = 'profile',
|
|
31
|
+
API = 'api',
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
export enum ActionType {
|
|
35
|
+
CREATE = 'create',
|
|
36
|
+
READ = 'read',
|
|
37
|
+
UPDATE = 'update',
|
|
38
|
+
DELETE = 'delete',
|
|
39
|
+
EXECUTE = 'execute',
|
|
40
|
+
}
|
|
41
|
+
|
|
42
|
+
export enum DefaultActionSubType {
|
|
43
|
+
KEY_GENERATION = 'Key generation',
|
|
44
|
+
KEY_IMPORT = 'Key import',
|
|
45
|
+
KEY_PERSISTENCE = 'Key persistence',
|
|
46
|
+
KEY_REMOVAL = 'Key removal',
|
|
47
|
+
DID_CREATION = 'DID creation',
|
|
48
|
+
DID_RESOLUTION = 'DID resolution',
|
|
49
|
+
DID_SERVICE_UPDATE = 'DID service update',
|
|
50
|
+
VC_ISSUE = 'VC issue',
|
|
51
|
+
VC_VERIFY = 'VC verify',
|
|
52
|
+
}
|
|
53
|
+
|
|
54
|
+
export type ActionSubType = DefaultActionSubType | string
|
|
55
|
+
|
|
56
|
+
export enum InitiatorType {
|
|
57
|
+
USER = 'user',
|
|
58
|
+
SYSTEM = 'system',
|
|
59
|
+
EXTERNAL = 'external',
|
|
60
|
+
}
|
|
61
|
+
|
|
62
|
+
export enum SystemCorrelationIdType {
|
|
63
|
+
DID = 'did',
|
|
64
|
+
URL = 'url',
|
|
65
|
+
EMAIL = 'email',
|
|
66
|
+
HOSTNAME = 'hostname',
|
|
67
|
+
PHONE = 'phone',
|
|
68
|
+
USER = 'user',
|
|
69
|
+
}
|
|
70
|
+
|
|
71
|
+
export type EventData = {
|
|
72
|
+
system: string
|
|
73
|
+
subSystemType: string
|
|
74
|
+
}
|
|
75
|
+
|
|
76
|
+
export interface BasicEvent<SourceType, PayloadType extends EventData> {
|
|
77
|
+
id: string
|
|
78
|
+
correlationId?: string
|
|
79
|
+
eventName: string
|
|
80
|
+
initiator?: string
|
|
81
|
+
initiatorType: InitiatorType
|
|
82
|
+
system: System
|
|
83
|
+
subsystem: SubSystem
|
|
84
|
+
data: PayloadType
|
|
85
|
+
}
|
|
86
|
+
|
|
87
|
+
type EmitterInstance = {
|
|
88
|
+
enabled: boolean
|
|
89
|
+
emitter: EventEmitter
|
|
90
|
+
}
|
|
91
|
+
|
|
92
|
+
export class EventManager {
|
|
93
|
+
private static readonly INSTANCE = new EventManager()
|
|
94
|
+
private _emitters = new Map<string, EmitterInstance>()
|
|
95
|
+
|
|
96
|
+
private constructor() {}
|
|
97
|
+
|
|
98
|
+
public static instance(): EventManager {
|
|
99
|
+
return EventManager.INSTANCE
|
|
100
|
+
}
|
|
101
|
+
|
|
102
|
+
register(name: string, emitter: EventEmitter, opts?: { disabled: boolean }): EventEmitter {
|
|
103
|
+
this._emitters.set(name, { emitter, enabled: opts?.disabled !== true })
|
|
104
|
+
return emitter
|
|
105
|
+
}
|
|
106
|
+
|
|
107
|
+
get(name: string, opts?: { onlyEnabled?: boolean }): EventEmitter {
|
|
108
|
+
const { emitter, enabled } = this._emitters.get(name) ?? {}
|
|
109
|
+
if (!emitter) {
|
|
110
|
+
throw Error(`No emitter registered with name ${name}`)
|
|
111
|
+
} else if (opts?.onlyEnabled && !enabled) {
|
|
112
|
+
throw Error(`Emitter with name ${name} is not enabled`)
|
|
113
|
+
}
|
|
114
|
+
return emitter
|
|
115
|
+
}
|
|
116
|
+
|
|
117
|
+
getOrCreate(name: string, opts?: { onlyEnabled?: boolean }): EventEmitter {
|
|
118
|
+
if (this.has(name)) {
|
|
119
|
+
return this.get(name, opts)
|
|
120
|
+
}
|
|
121
|
+
return this.register(name, new BasicEventEmitter())
|
|
122
|
+
}
|
|
123
|
+
|
|
124
|
+
has(name: string): boolean {
|
|
125
|
+
return this._emitters.has(name)
|
|
126
|
+
}
|
|
127
|
+
|
|
128
|
+
emitters(filter?: { eventName?: string | symbol; onlyEnabled?: boolean }): Array<EventEmitter> {
|
|
129
|
+
const all = Array.from(new Set(this._emitters.values()))
|
|
130
|
+
return this.emittersImpl(all, filter).map((e) => e.emitter)
|
|
131
|
+
}
|
|
132
|
+
|
|
133
|
+
hasEventName(eventName: string | symbol) {
|
|
134
|
+
return this.eventNames().includes(eventName)
|
|
135
|
+
}
|
|
136
|
+
|
|
137
|
+
eventNames(): Array<string | symbol> {
|
|
138
|
+
return Array.from(new Set(this.emitters().flatMap((emitter) => emitter.eventNames())))
|
|
139
|
+
}
|
|
140
|
+
|
|
141
|
+
emitBasic(event: BasicEvent<any, any>, ...args: any[]) {
|
|
142
|
+
return this.emit(event.eventName, event, args)
|
|
143
|
+
}
|
|
144
|
+
|
|
145
|
+
emit(eventName: string | symbol, event: Omit<BasicEvent<any, any>, 'eventName'> | any, ...args: any[]): void {
|
|
146
|
+
if ('id' in event && 'system' in event && !event.eventName) {
|
|
147
|
+
event.eventName = eventName
|
|
148
|
+
}
|
|
149
|
+
Loggers.DEFAULT.options('sphereon:events', {
|
|
150
|
+
methods: [LogMethod.CONSOLE],
|
|
151
|
+
defaultLogLevel: LogLevel.INFO,
|
|
152
|
+
})
|
|
153
|
+
.get('sphereon:events')
|
|
154
|
+
.log(`Emitting '${eventName.toString()}' event`, event)
|
|
155
|
+
const emitters = this.emitters({ eventName })
|
|
156
|
+
emitters.flatMap((emitter) => emitter.emit(eventName, event, args))
|
|
157
|
+
}
|
|
158
|
+
|
|
159
|
+
listenerCount(eventName: string | symbol) {
|
|
160
|
+
const emitters = this.emitters({ eventName })
|
|
161
|
+
return emitters.map((emitter) => emitter.listenerCount(eventName)).reduce((previous, current) => current + previous)
|
|
162
|
+
}
|
|
163
|
+
|
|
164
|
+
listeners(filter: { emitterName?: string; eventName: string; onlyEnabled?: boolean }): Array<Function> {
|
|
165
|
+
const emitters = filter?.emitterName ? [this.get(filter.emitterName, filter)] : this.emitters(filter)
|
|
166
|
+
return Array.from(
|
|
167
|
+
new Set(
|
|
168
|
+
this.emittersImpl(
|
|
169
|
+
emitters.map((emitter) => {
|
|
170
|
+
return { emitter, enabled: true }
|
|
171
|
+
}),
|
|
172
|
+
filter,
|
|
173
|
+
).flatMap((emitter) => emitter.emitter.listeners(filter.eventName)),
|
|
174
|
+
),
|
|
175
|
+
)
|
|
176
|
+
}
|
|
177
|
+
|
|
178
|
+
private emittersImpl(
|
|
179
|
+
all: { emitter: EventEmitter; enabled: boolean }[],
|
|
180
|
+
filter?: {
|
|
181
|
+
eventName?: string | symbol
|
|
182
|
+
onlyEnabled?: boolean
|
|
183
|
+
},
|
|
184
|
+
): Array<EmitterInstance> {
|
|
185
|
+
const { eventName } = filter ?? {}
|
|
186
|
+
if (!eventName) {
|
|
187
|
+
return all
|
|
188
|
+
}
|
|
189
|
+
const filtered = all.filter((emitter) => emitter.emitter.eventNames().includes(eventName) && (emitter.enabled || filter?.onlyEnabled !== true))
|
|
190
|
+
return Array.from(new Set(filtered))
|
|
191
|
+
}
|
|
192
|
+
}
|
|
193
|
+
|
|
194
|
+
export class BasicEventEmitter extends EventEmitter {
|
|
195
|
+
addListener(eventName: string | symbol, listener: (event: BasicEvent<any, any>, ...args: any[]) => void): this {
|
|
196
|
+
return super.addListener(eventName, listener)
|
|
197
|
+
}
|
|
198
|
+
|
|
199
|
+
once(eventName: string | symbol, listener: (event: BasicEvent<any, any>, ...args: any[]) => void): this {
|
|
200
|
+
return super.once(eventName, listener)
|
|
201
|
+
}
|
|
202
|
+
|
|
203
|
+
emit(eventName: string, event: BasicEvent<any, any>, ...args: any[]): boolean {
|
|
204
|
+
return super.emit(eventName, ...args)
|
|
205
|
+
}
|
|
206
|
+
}
|
package/src/index.ts
CHANGED
|
@@ -1,3 +1,9 @@
|
|
|
1
|
+
import { Loggers } from './logging'
|
|
2
|
+
// We call the logger first, making sure that any library (re-)using the logger has the static initialized
|
|
3
|
+
Loggers.DEFAULT.get('sphereon:ssi').debug(`Sphereon logger initialized`)
|
|
4
|
+
|
|
5
|
+
export * from './logging'
|
|
6
|
+
export * from './events'
|
|
1
7
|
export * from './types'
|
|
2
8
|
export * from './utils'
|
|
3
9
|
export * from './mapper'
|
|
@@ -0,0 +1,198 @@
|
|
|
1
|
+
import Debug from 'debug'
|
|
2
|
+
import { EventEmitter } from 'events'
|
|
3
|
+
|
|
4
|
+
export enum LogLevel {
|
|
5
|
+
TRACE = 0,
|
|
6
|
+
DEBUG,
|
|
7
|
+
INFO,
|
|
8
|
+
WARNING,
|
|
9
|
+
ERROR,
|
|
10
|
+
}
|
|
11
|
+
|
|
12
|
+
export enum LoggingEventType {
|
|
13
|
+
AUDIT = 'audit',
|
|
14
|
+
GENERAL = 'general',
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
export interface SimpleLogEvent {
|
|
18
|
+
type: LoggingEventType.GENERAL
|
|
19
|
+
level: LogLevel
|
|
20
|
+
correlationId?: string
|
|
21
|
+
timestamp: Date
|
|
22
|
+
data: string
|
|
23
|
+
diagnosticData?: any
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
export enum LogMethod {
|
|
27
|
+
DEBUG_PKG,
|
|
28
|
+
CONSOLE,
|
|
29
|
+
EVENT,
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
export interface SimpleLogOptions {
|
|
33
|
+
namespace?: string
|
|
34
|
+
eventName?: string
|
|
35
|
+
defaultLogLevel?: LogLevel
|
|
36
|
+
methods?: LogMethod[]
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
export function logOptions(opts?: SimpleLogOptions): Required<SimpleLogOptions> {
|
|
40
|
+
return {
|
|
41
|
+
namespace: opts?.namespace ?? 'sphereon',
|
|
42
|
+
eventName: opts?.eventName ?? 'sphereon:default',
|
|
43
|
+
defaultLogLevel: opts?.defaultLogLevel ?? LogLevel.INFO,
|
|
44
|
+
methods: opts?.methods ?? [LogMethod.DEBUG_PKG, LogMethod.EVENT],
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
|
|
48
|
+
export class Loggers {
|
|
49
|
+
private static readonly DEFAULT_KEY = '__DEFAULT__'
|
|
50
|
+
public static readonly DEFAULT: Loggers = new Loggers({ defaultLogLevel: LogLevel.INFO, methods: [LogMethod.DEBUG_PKG, LogMethod.EVENT] })
|
|
51
|
+
private readonly namespaceOptions: Map<string, Required<SimpleLogOptions>> = new Map()
|
|
52
|
+
private readonly loggers: WeakMap<Required<SimpleLogOptions>, ISimpleLogger<any>> = new WeakMap()
|
|
53
|
+
|
|
54
|
+
constructor(defaultOptions?: Omit<SimpleLogOptions, 'namespace'>) {
|
|
55
|
+
this.defaultOptions(logOptions(defaultOptions))
|
|
56
|
+
}
|
|
57
|
+
|
|
58
|
+
public options(namespace: string, options: Omit<SimpleLogOptions, 'namespace'>): this {
|
|
59
|
+
this.namespaceOptions.set(namespace, logOptions({ ...options, namespace }))
|
|
60
|
+
return this
|
|
61
|
+
}
|
|
62
|
+
|
|
63
|
+
public defaultOptions(options: Omit<SimpleLogOptions, 'namespace'>): this {
|
|
64
|
+
this.options(Loggers.DEFAULT_KEY, options)
|
|
65
|
+
return this
|
|
66
|
+
}
|
|
67
|
+
|
|
68
|
+
register<T>(namespace: string, logger: ISimpleLogger<T>): ISimpleLogger<T> {
|
|
69
|
+
return this.get(namespace, logger)
|
|
70
|
+
}
|
|
71
|
+
|
|
72
|
+
get<T>(namespace: string, registerLogger?: ISimpleLogger<T>): ISimpleLogger<T> {
|
|
73
|
+
const options = this.namespaceOptions.get(namespace) ?? registerLogger?.options ?? this.namespaceOptions.get(Loggers.DEFAULT_KEY)
|
|
74
|
+
if (!options) {
|
|
75
|
+
throw Error(`No logging options found for namespace ${namespace}`)
|
|
76
|
+
}
|
|
77
|
+
this.namespaceOptions.set(namespace, options)
|
|
78
|
+
|
|
79
|
+
let logger = this.loggers.get(options)
|
|
80
|
+
if (!logger) {
|
|
81
|
+
logger = registerLogger ?? new SimpleLogger(options)
|
|
82
|
+
this.loggers.set(options, logger)
|
|
83
|
+
}
|
|
84
|
+
return logger
|
|
85
|
+
}
|
|
86
|
+
}
|
|
87
|
+
|
|
88
|
+
export type ISimpleLogger<LogType> = {
|
|
89
|
+
options: Required<SimpleLogOptions>
|
|
90
|
+
log(value: LogType, ...args: any[]): void
|
|
91
|
+
info(value: LogType, ...args: any[]): void
|
|
92
|
+
debug(value: LogType, ...args: any[]): void
|
|
93
|
+
trace(value: LogType, ...args: any[]): void
|
|
94
|
+
warning(value: LogType, ...args: any[]): void
|
|
95
|
+
error(value: LogType, ...args: any[]): void
|
|
96
|
+
logl(level: LogLevel, value: LogType, ...args: any[]): void
|
|
97
|
+
}
|
|
98
|
+
|
|
99
|
+
export class SimpleLogger implements ISimpleLogger<any> {
|
|
100
|
+
private _eventEmitter = new EventEmitter({ captureRejections: true })
|
|
101
|
+
private _options: Required<SimpleLogOptions>
|
|
102
|
+
|
|
103
|
+
constructor(opts?: SimpleLogOptions) {
|
|
104
|
+
this._options = logOptions(opts)
|
|
105
|
+
}
|
|
106
|
+
|
|
107
|
+
get eventEmitter(): EventEmitter {
|
|
108
|
+
return this._eventEmitter
|
|
109
|
+
}
|
|
110
|
+
|
|
111
|
+
get options(): Required<SimpleLogOptions> {
|
|
112
|
+
return this._options
|
|
113
|
+
}
|
|
114
|
+
|
|
115
|
+
trace(value: any, ...args: any[]) {
|
|
116
|
+
this.logl(LogLevel.TRACE, value, args)
|
|
117
|
+
}
|
|
118
|
+
|
|
119
|
+
debug(value: any, ...args: any[]) {
|
|
120
|
+
this.logl(LogLevel.DEBUG, value, args)
|
|
121
|
+
}
|
|
122
|
+
|
|
123
|
+
info(value: any, ...args: any[]) {
|
|
124
|
+
this.logl(LogLevel.INFO, value, args)
|
|
125
|
+
}
|
|
126
|
+
|
|
127
|
+
warning(value: any, ...args: any[]) {
|
|
128
|
+
this.logl(LogLevel.WARNING, value, args)
|
|
129
|
+
}
|
|
130
|
+
|
|
131
|
+
error(value: any, ...args: any[]) {
|
|
132
|
+
this.logl(LogLevel.ERROR, value, args)
|
|
133
|
+
}
|
|
134
|
+
|
|
135
|
+
logl(level: LogLevel, value: any, ...args: any[]) {
|
|
136
|
+
const date = new Date().toISOString()
|
|
137
|
+
const filteredArgs = args.filter((v) => v!!)
|
|
138
|
+
const arg = filteredArgs.length === 0 || filteredArgs[0] == undefined ? undefined : filteredArgs
|
|
139
|
+
|
|
140
|
+
function toLogValue(options: SimpleLogOptions): any {
|
|
141
|
+
if (typeof value === 'string') {
|
|
142
|
+
return `${date}-(${options.namespace}) ${value}`
|
|
143
|
+
} else if (typeof value === 'object') {
|
|
144
|
+
value['namespace'] = options.namespace
|
|
145
|
+
value['time'] = date
|
|
146
|
+
}
|
|
147
|
+
return value
|
|
148
|
+
}
|
|
149
|
+
|
|
150
|
+
const logValue = toLogValue(this.options)
|
|
151
|
+
const logArgs = [logValue]
|
|
152
|
+
if (arg) {
|
|
153
|
+
logArgs.push(args)
|
|
154
|
+
}
|
|
155
|
+
if (this.options.methods.includes(LogMethod.DEBUG_PKG)) {
|
|
156
|
+
if (arg) {
|
|
157
|
+
Debug(this._options.namespace)(`${date}- ${value}`, arg)
|
|
158
|
+
} else {
|
|
159
|
+
Debug(this._options.namespace)(`${date}- ${value}`)
|
|
160
|
+
}
|
|
161
|
+
}
|
|
162
|
+
|
|
163
|
+
if (this.options.methods.includes(LogMethod.CONSOLE)) {
|
|
164
|
+
switch (level) {
|
|
165
|
+
case LogLevel.TRACE:
|
|
166
|
+
return console.trace(logArgs)
|
|
167
|
+
case LogLevel.DEBUG:
|
|
168
|
+
return console.debug(logArgs)
|
|
169
|
+
case LogLevel.INFO:
|
|
170
|
+
return console.info(logArgs)
|
|
171
|
+
case LogLevel.WARNING:
|
|
172
|
+
return console.warn(logArgs)
|
|
173
|
+
case LogLevel.ERROR:
|
|
174
|
+
return console.error(logArgs)
|
|
175
|
+
}
|
|
176
|
+
}
|
|
177
|
+
|
|
178
|
+
if (this.options.methods.includes(LogMethod.EVENT)) {
|
|
179
|
+
this._eventEmitter.emit(this.options.eventName, {
|
|
180
|
+
data: value.toString(),
|
|
181
|
+
timestamp: new Date(date),
|
|
182
|
+
level,
|
|
183
|
+
type: LoggingEventType.GENERAL,
|
|
184
|
+
diagnosticData: logArgs,
|
|
185
|
+
} satisfies SimpleLogEvent)
|
|
186
|
+
}
|
|
187
|
+
}
|
|
188
|
+
|
|
189
|
+
log(value: any, args?: any[]) {
|
|
190
|
+
this.logl(this.options.defaultLogLevel, value, args)
|
|
191
|
+
}
|
|
192
|
+
}
|
|
193
|
+
|
|
194
|
+
export class SimpleRecordLogger extends SimpleLogger implements ISimpleLogger<Record<string, any>> {
|
|
195
|
+
constructor(opts?: SimpleLogOptions) {
|
|
196
|
+
super(opts)
|
|
197
|
+
}
|
|
198
|
+
}
|