@sentio/sdk 2.17.0 → 2.17.1-rc.1
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/lib/core/base-context.d.ts +2 -2
- package/lib/core/base-context.js +2 -2
- package/lib/core/base-context.js.map +1 -1
- package/lib/core/event-logger.d.ts +11 -1
- package/lib/core/event-logger.js +33 -12
- package/lib/core/event-logger.js.map +1 -1
- package/package.json +3 -3
- package/src/core/base-context.ts +3 -3
- package/src/core/event-logger.ts +39 -13
@@ -1,10 +1,10 @@
|
|
1
1
|
import { ProcessResult, RecordMetaData, StateResult } from '@sentio/protos';
|
2
|
-
import {
|
2
|
+
import { EventLoggerBinding } from './event-logger.js';
|
3
3
|
import { Meter, Labels } from './meter.js';
|
4
4
|
import { ChainId } from './chain.js';
|
5
5
|
export declare abstract class BaseContext {
|
6
6
|
meter: Meter;
|
7
|
-
eventLogger:
|
7
|
+
eventLogger: EventLoggerBinding;
|
8
8
|
protected baseLabels: Labels;
|
9
9
|
_res: ProcessResult & {
|
10
10
|
states: StateResult;
|
package/lib/core/base-context.js
CHANGED
@@ -1,4 +1,4 @@
|
|
1
|
-
import {
|
1
|
+
import { EventLoggerBinding } from './event-logger.js';
|
2
2
|
import { Meter } from './meter.js';
|
3
3
|
export class BaseContext {
|
4
4
|
meter;
|
@@ -15,7 +15,7 @@ export class BaseContext {
|
|
15
15
|
};
|
16
16
|
constructor(baseLabels) {
|
17
17
|
this.meter = new Meter(this);
|
18
|
-
this.eventLogger = new
|
18
|
+
this.eventLogger = new EventLoggerBinding(this);
|
19
19
|
this.baseLabels = baseLabels || {};
|
20
20
|
}
|
21
21
|
getProcessResult() {
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"base-context.js","sourceRoot":"","sources":["../../src/core/base-context.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,
|
1
|
+
{"version":3,"file":"base-context.js","sourceRoot":"","sources":["../../src/core/base-context.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAA;AACtD,OAAO,EAAE,KAAK,EAAU,MAAM,YAAY,CAAA;AAG1C,MAAM,OAAgB,WAAW;IAC/B,KAAK,CAAO;IACZ,WAAW,CAAoB;IACrB,UAAU,CAAQ;IAE5B,IAAI,GAA4C;QAC9C,QAAQ,EAAE,EAAE;QACZ,MAAM,EAAE,EAAE;QACV,OAAO,EAAE,EAAE;QACX,MAAM,EAAE,EAAE;QACV,MAAM,EAAE;YACN,aAAa,EAAE,KAAK;SACrB;KACF,CAAA;IAED,YAAsB,UAA8B;QAClD,IAAI,CAAC,KAAK,GAAG,IAAI,KAAK,CAAC,IAAI,CAAC,CAAA;QAC5B,IAAI,CAAC,WAAW,GAAG,IAAI,kBAAkB,CAAC,IAAI,CAAC,CAAA;QAC/C,IAAI,CAAC,UAAU,GAAG,UAAU,IAAI,EAAE,CAAA;IACpC,CAAC;IAED,gBAAgB;QACd,OAAO,IAAI,CAAC,IAAI,CAAA;IAClB,CAAC;IAED,WAAW,CAAC,IAAY,EAAE,MAAc;QACtC,OAAO;YACL,GAAG,IAAI,CAAC,UAAU;YAClB,GAAG,IAAI,CAAC,mBAAmB,CAAC,IAAI,EAAE,MAAM,CAAC;SAC1C,CAAA;IACH,CAAC;CAKF","sourcesContent":["import { ProcessResult, RecordMetaData, StateResult } from '@sentio/protos'\nimport { EventLoggerBinding } from './event-logger.js'\nimport { Meter, Labels } from './meter.js'\nimport { ChainId } from './chain.js'\n\nexport abstract class BaseContext {\n meter: Meter\n eventLogger: EventLoggerBinding\n protected baseLabels: Labels\n\n _res: ProcessResult & { states: StateResult } = {\n counters: [],\n events: [],\n exports: [],\n gauges: [],\n states: {\n configUpdated: false,\n },\n }\n\n protected constructor(baseLabels: Labels | undefined) {\n this.meter = new Meter(this)\n this.eventLogger = new EventLoggerBinding(this)\n this.baseLabels = baseLabels || {}\n }\n\n getProcessResult(): ProcessResult {\n return this._res\n }\n\n getMetaData(name: string, labels: Labels): RecordMetaData {\n return {\n ...this.baseLabels,\n ...this.getMetaDataInternal(name, labels),\n }\n }\n\n protected abstract getMetaDataInternal(name: string, labels: Labels): RecordMetaData\n\n abstract getChainId(): ChainId\n}\n"]}
|
@@ -1,5 +1,6 @@
|
|
1
1
|
import { BaseContext } from './base-context.js';
|
2
2
|
import { LogLevel } from '@sentio/protos';
|
3
|
+
import { MapStateStorage } from '@sentio/runtime';
|
3
4
|
export interface Attribute<T> {
|
4
5
|
[key: string]: Exclude<T | number | bigint | string | boolean | LogLevel | Attribute<T> | undefined, Promise<any>>;
|
5
6
|
}
|
@@ -8,8 +9,17 @@ export interface Event<T> extends Attribute<T> {
|
|
8
9
|
severity?: LogLevel;
|
9
10
|
message?: string;
|
10
11
|
}
|
11
|
-
export declare class EventLogger {
|
12
|
+
export declare class EventLoggerState extends MapStateStorage<EventLogger> {
|
13
|
+
static INSTANCE: EventLoggerState;
|
14
|
+
}
|
15
|
+
export declare class EventLoggerBinding {
|
12
16
|
private readonly ctx;
|
13
17
|
constructor(ctx: BaseContext);
|
14
18
|
emit<T>(eventName: string, event: Event<T>): void;
|
15
19
|
}
|
20
|
+
export declare class EventLogger {
|
21
|
+
private readonly eventName;
|
22
|
+
private constructor();
|
23
|
+
static register(eventName: string): EventLogger;
|
24
|
+
emit<T>(ctx: BaseContext, event: Event<T>): void;
|
25
|
+
}
|
package/lib/core/event-logger.js
CHANGED
@@ -1,22 +1,43 @@
|
|
1
1
|
import { LogLevel } from '@sentio/protos';
|
2
2
|
import { normalizeAttribute } from './normalization.js';
|
3
|
-
|
3
|
+
import { MapStateStorage } from '@sentio/runtime';
|
4
|
+
class EventLoggerState extends MapStateStorage {
|
5
|
+
static INSTANCE = new EventLoggerState();
|
6
|
+
}
|
7
|
+
export { EventLoggerState };
|
8
|
+
export class EventLoggerBinding {
|
4
9
|
ctx;
|
5
10
|
constructor(ctx) {
|
6
11
|
this.ctx = ctx;
|
7
12
|
}
|
8
13
|
emit(eventName, event) {
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
14
|
+
emit(this.ctx, eventName, event);
|
15
|
+
}
|
16
|
+
}
|
17
|
+
export class EventLogger {
|
18
|
+
eventName;
|
19
|
+
constructor(eventName) {
|
20
|
+
this.eventName = eventName;
|
21
|
+
}
|
22
|
+
static register(eventName) {
|
23
|
+
const logger = new EventLogger(eventName);
|
24
|
+
return EventLoggerState.INSTANCE.getOrSetValue(eventName, logger);
|
20
25
|
}
|
26
|
+
emit(ctx, event) {
|
27
|
+
emit(ctx, this.eventName, event);
|
28
|
+
}
|
29
|
+
}
|
30
|
+
function emit(ctx, eventName, event) {
|
31
|
+
const { distinctId, severity, message, ...payload } = event;
|
32
|
+
const res = {
|
33
|
+
metadata: ctx.getMetaData(eventName, {}),
|
34
|
+
severity: severity || LogLevel.INFO,
|
35
|
+
message: message || '',
|
36
|
+
distinctEntityId: distinctId || '',
|
37
|
+
attributes: normalizeAttribute(payload),
|
38
|
+
runtimeInfo: undefined,
|
39
|
+
noMetric: true,
|
40
|
+
};
|
41
|
+
ctx._res.events.push(res);
|
21
42
|
}
|
22
43
|
//# sourceMappingURL=event-logger.js.map
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"event-logger.js","sourceRoot":"","sources":["../../src/core/event-logger.ts"],"names":[],"mappings":"AACA,OAAO,EAAuB,QAAQ,EAAE,MAAM,gBAAgB,CAAA;AAC9D,OAAO,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAA;
|
1
|
+
{"version":3,"file":"event-logger.js","sourceRoot":"","sources":["../../src/core/event-logger.ts"],"names":[],"mappings":"AACA,OAAO,EAAuB,QAAQ,EAAE,MAAM,gBAAgB,CAAA;AAC9D,OAAO,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAA;AACvD,OAAO,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAA;AAejD,MAAa,gBAAiB,SAAQ,eAA4B;IAChE,MAAM,CAAC,QAAQ,GAAG,IAAI,gBAAgB,EAAE,CAAA;;SAD7B,gBAAgB;AAI7B,MAAM,OAAO,kBAAkB;IACZ,GAAG,CAAa;IAEjC,YAAY,GAAgB;QAC1B,IAAI,CAAC,GAAG,GAAG,GAAG,CAAA;IAChB,CAAC;IAED,IAAI,CAAI,SAAiB,EAAE,KAAe;QACxC,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,SAAS,EAAE,KAAK,CAAC,CAAA;IAClC,CAAC;CACF;AAED,MAAM,OAAO,WAAW;IACL,SAAS,CAAQ;IAElC,YAAoB,SAAiB;QACnC,IAAI,CAAC,SAAS,GAAG,SAAS,CAAA;IAC5B,CAAC;IAED,MAAM,CAAC,QAAQ,CAAC,SAAiB;QAC/B,MAAM,MAAM,GAAG,IAAI,WAAW,CAAC,SAAS,CAAC,CAAA;QACzC,OAAO,gBAAgB,CAAC,QAAQ,CAAC,aAAa,CAAC,SAAS,EAAE,MAAM,CAAC,CAAA;IACnE,CAAC;IAED,IAAI,CAAI,GAAgB,EAAE,KAAe;QACvC,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,SAAS,EAAE,KAAK,CAAC,CAAA;IAClC,CAAC;CACF;AAED,SAAS,IAAI,CAAI,GAAgB,EAAE,SAAiB,EAAE,KAAe;IACnE,MAAM,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,GAAG,OAAO,EAAE,GAAG,KAAK,CAAA;IAE3D,MAAM,GAAG,GAAwB;QAC/B,QAAQ,EAAE,GAAG,CAAC,WAAW,CAAC,SAAS,EAAE,EAAE,CAAC;QACxC,QAAQ,EAAE,QAAQ,IAAI,QAAQ,CAAC,IAAI;QACnC,OAAO,EAAE,OAAO,IAAI,EAAE;QACtB,gBAAgB,EAAE,UAAU,IAAI,EAAE;QAClC,UAAU,EAAE,kBAAkB,CAAC,OAAO,CAAC;QACvC,WAAW,EAAE,SAAS;QACtB,QAAQ,EAAE,IAAI;KACf,CAAA;IACD,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;AAC3B,CAAC","sourcesContent":["import { BaseContext } from './base-context.js'\nimport { EventTrackingResult, LogLevel } from '@sentio/protos'\nimport { normalizeAttribute } from './normalization.js'\nimport { MapStateStorage } from '@sentio/runtime'\n\nexport interface Attribute<T> {\n [key: string]: Exclude<T | number | bigint | string | boolean | LogLevel | Attribute<T> | undefined, Promise<any>>\n}\n\nexport interface Event<T> extends Attribute<T> {\n // The unique identifier of main identity associate with an event\n // .e.g user id / token address / account address / contract address id\n //\n distinctId?: string\n severity?: LogLevel\n message?: string\n}\n\nexport class EventLoggerState extends MapStateStorage<EventLogger> {\n static INSTANCE = new EventLoggerState()\n}\n\nexport class EventLoggerBinding {\n private readonly ctx: BaseContext\n\n constructor(ctx: BaseContext) {\n this.ctx = ctx\n }\n\n emit<T>(eventName: string, event: Event<T>) {\n emit(this.ctx, eventName, event)\n }\n}\n\nexport class EventLogger {\n private readonly eventName: string\n\n private constructor(eventName: string) {\n this.eventName = eventName\n }\n\n static register(eventName: string): EventLogger {\n const logger = new EventLogger(eventName)\n return EventLoggerState.INSTANCE.getOrSetValue(eventName, logger)\n }\n\n emit<T>(ctx: BaseContext, event: Event<T>) {\n emit(ctx, this.eventName, event)\n }\n}\n\nfunction emit<T>(ctx: BaseContext, eventName: string, event: Event<T>) {\n const { distinctId, severity, message, ...payload } = event\n\n const res: EventTrackingResult = {\n metadata: ctx.getMetaData(eventName, {}),\n severity: severity || LogLevel.INFO,\n message: message || '',\n distinctEntityId: distinctId || '',\n attributes: normalizeAttribute(payload),\n runtimeInfo: undefined,\n noMetric: true,\n }\n ctx._res.events.push(res)\n}\n"]}
|
package/package.json
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
{
|
2
2
|
"name": "@sentio/sdk",
|
3
|
-
"version": "2.17.
|
3
|
+
"version": "2.17.1-rc.1",
|
4
4
|
"license": "Apache-2.0",
|
5
5
|
"type": "module",
|
6
6
|
"exports": {
|
@@ -71,8 +71,8 @@
|
|
71
71
|
"typedoc": "^0.24.1",
|
72
72
|
"utility-types": "^3.10.0",
|
73
73
|
"yaml": "^2.2.1",
|
74
|
-
"@sentio/protos": "2.17.
|
75
|
-
"@sentio/runtime": "^2.17.
|
74
|
+
"@sentio/protos": "2.17.1-rc.1",
|
75
|
+
"@sentio/runtime": "^2.17.1-rc.1"
|
76
76
|
},
|
77
77
|
"peerDependencies": {
|
78
78
|
"tsup": "npm:@sentio/tsup@^6.7.0"
|
package/src/core/base-context.ts
CHANGED
@@ -1,11 +1,11 @@
|
|
1
1
|
import { ProcessResult, RecordMetaData, StateResult } from '@sentio/protos'
|
2
|
-
import {
|
2
|
+
import { EventLoggerBinding } from './event-logger.js'
|
3
3
|
import { Meter, Labels } from './meter.js'
|
4
4
|
import { ChainId } from './chain.js'
|
5
5
|
|
6
6
|
export abstract class BaseContext {
|
7
7
|
meter: Meter
|
8
|
-
eventLogger:
|
8
|
+
eventLogger: EventLoggerBinding
|
9
9
|
protected baseLabels: Labels
|
10
10
|
|
11
11
|
_res: ProcessResult & { states: StateResult } = {
|
@@ -20,7 +20,7 @@ export abstract class BaseContext {
|
|
20
20
|
|
21
21
|
protected constructor(baseLabels: Labels | undefined) {
|
22
22
|
this.meter = new Meter(this)
|
23
|
-
this.eventLogger = new
|
23
|
+
this.eventLogger = new EventLoggerBinding(this)
|
24
24
|
this.baseLabels = baseLabels || {}
|
25
25
|
}
|
26
26
|
|
package/src/core/event-logger.ts
CHANGED
@@ -1,6 +1,7 @@
|
|
1
1
|
import { BaseContext } from './base-context.js'
|
2
2
|
import { EventTrackingResult, LogLevel } from '@sentio/protos'
|
3
3
|
import { normalizeAttribute } from './normalization.js'
|
4
|
+
import { MapStateStorage } from '@sentio/runtime'
|
4
5
|
|
5
6
|
export interface Attribute<T> {
|
6
7
|
[key: string]: Exclude<T | number | bigint | string | boolean | LogLevel | Attribute<T> | undefined, Promise<any>>
|
@@ -15,7 +16,11 @@ export interface Event<T> extends Attribute<T> {
|
|
15
16
|
message?: string
|
16
17
|
}
|
17
18
|
|
18
|
-
export class EventLogger {
|
19
|
+
export class EventLoggerState extends MapStateStorage<EventLogger> {
|
20
|
+
static INSTANCE = new EventLoggerState()
|
21
|
+
}
|
22
|
+
|
23
|
+
export class EventLoggerBinding {
|
19
24
|
private readonly ctx: BaseContext
|
20
25
|
|
21
26
|
constructor(ctx: BaseContext) {
|
@@ -23,17 +28,38 @@ export class EventLogger {
|
|
23
28
|
}
|
24
29
|
|
25
30
|
emit<T>(eventName: string, event: Event<T>) {
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
|
34
|
-
|
35
|
-
|
36
|
-
|
37
|
-
|
31
|
+
emit(this.ctx, eventName, event)
|
32
|
+
}
|
33
|
+
}
|
34
|
+
|
35
|
+
export class EventLogger {
|
36
|
+
private readonly eventName: string
|
37
|
+
|
38
|
+
private constructor(eventName: string) {
|
39
|
+
this.eventName = eventName
|
40
|
+
}
|
41
|
+
|
42
|
+
static register(eventName: string): EventLogger {
|
43
|
+
const logger = new EventLogger(eventName)
|
44
|
+
return EventLoggerState.INSTANCE.getOrSetValue(eventName, logger)
|
45
|
+
}
|
46
|
+
|
47
|
+
emit<T>(ctx: BaseContext, event: Event<T>) {
|
48
|
+
emit(ctx, this.eventName, event)
|
49
|
+
}
|
50
|
+
}
|
51
|
+
|
52
|
+
function emit<T>(ctx: BaseContext, eventName: string, event: Event<T>) {
|
53
|
+
const { distinctId, severity, message, ...payload } = event
|
54
|
+
|
55
|
+
const res: EventTrackingResult = {
|
56
|
+
metadata: ctx.getMetaData(eventName, {}),
|
57
|
+
severity: severity || LogLevel.INFO,
|
58
|
+
message: message || '',
|
59
|
+
distinctEntityId: distinctId || '',
|
60
|
+
attributes: normalizeAttribute(payload),
|
61
|
+
runtimeInfo: undefined,
|
62
|
+
noMetric: true,
|
38
63
|
}
|
64
|
+
ctx._res.events.push(res)
|
39
65
|
}
|