@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.
@@ -1,10 +1,10 @@
1
1
  import { ProcessResult, RecordMetaData, StateResult } from '@sentio/protos';
2
- import { EventLogger } from './event-logger.js';
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: EventLogger;
7
+ eventLogger: EventLoggerBinding;
8
8
  protected baseLabels: Labels;
9
9
  _res: ProcessResult & {
10
10
  states: StateResult;
@@ -1,4 +1,4 @@
1
- import { EventLogger } from './event-logger.js';
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 EventLogger(this);
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,WAAW,EAAE,MAAM,mBAAmB,CAAA;AAC/C,OAAO,EAAE,KAAK,EAAU,MAAM,YAAY,CAAA;AAG1C,MAAM,OAAgB,WAAW;IAC/B,KAAK,CAAO;IACZ,WAAW,CAAa;IACd,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,WAAW,CAAC,IAAI,CAAC,CAAA;QACxC,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 { EventLogger } 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: EventLogger\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 EventLogger(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
+ {"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
+ }
@@ -1,22 +1,43 @@
1
1
  import { LogLevel } from '@sentio/protos';
2
2
  import { normalizeAttribute } from './normalization.js';
3
- export class EventLogger {
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
- const { distinctId, severity, message, ...payload } = event;
10
- const res = {
11
- metadata: this.ctx.getMetaData(eventName, {}),
12
- severity: severity || LogLevel.INFO,
13
- message: message || '',
14
- distinctEntityId: distinctId || '',
15
- attributes: normalizeAttribute(payload),
16
- runtimeInfo: undefined,
17
- noMetric: true,
18
- };
19
- this.ctx._res.events.push(res);
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;AAevD,MAAM,OAAO,WAAW;IACL,GAAG,CAAa;IAEjC,YAAY,GAAgB;QAC1B,IAAI,CAAC,GAAG,GAAG,GAAG,CAAA;IAChB,CAAC;IAED,IAAI,CAAI,SAAiB,EAAE,KAAe;QACxC,MAAM,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,GAAG,OAAO,EAAE,GAAG,KAAK,CAAA;QAE3D,MAAM,GAAG,GAAwB;YAC/B,QAAQ,EAAE,IAAI,CAAC,GAAG,CAAC,WAAW,CAAC,SAAS,EAAE,EAAE,CAAC;YAC7C,QAAQ,EAAE,QAAQ,IAAI,QAAQ,CAAC,IAAI;YACnC,OAAO,EAAE,OAAO,IAAI,EAAE;YACtB,gBAAgB,EAAE,UAAU,IAAI,EAAE;YAClC,UAAU,EAAE,kBAAkB,CAAC,OAAO,CAAC;YACvC,WAAW,EAAE,SAAS;YACtB,QAAQ,EAAE,IAAI;SACf,CAAA;QACD,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;IAChC,CAAC;CACF","sourcesContent":["import { BaseContext } from './base-context.js'\nimport { EventTrackingResult, LogLevel } from '@sentio/protos'\nimport { normalizeAttribute } from './normalization.js'\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 EventLogger {\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 const { distinctId, severity, message, ...payload } = event\n\n const res: EventTrackingResult = {\n metadata: this.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 this.ctx._res.events.push(res)\n }\n}\n"]}
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.0",
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.0",
75
- "@sentio/runtime": "^2.17.0"
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"
@@ -1,11 +1,11 @@
1
1
  import { ProcessResult, RecordMetaData, StateResult } from '@sentio/protos'
2
- import { EventLogger } from './event-logger.js'
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: 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 EventLogger(this)
23
+ this.eventLogger = new EventLoggerBinding(this)
24
24
  this.baseLabels = baseLabels || {}
25
25
  }
26
26
 
@@ -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
- const { distinctId, severity, message, ...payload } = event
27
-
28
- const res: EventTrackingResult = {
29
- metadata: this.ctx.getMetaData(eventName, {}),
30
- severity: severity || LogLevel.INFO,
31
- message: message || '',
32
- distinctEntityId: distinctId || '',
33
- attributes: normalizeAttribute(payload),
34
- runtimeInfo: undefined,
35
- noMetric: true,
36
- }
37
- this.ctx._res.events.push(res)
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
  }