@sentio/runtime 2.61.0-rc.8 → 2.61.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.
@@ -0,0 +1,3 @@
1
+ import { createRequire as createRequireShim } from 'module'; const require = createRequireShim(import.meta.url);
2
+ import{isMainThread as T,parentPort as g,threadId as p}from"node:worker_threads";var r=class e{stateMap=new Map;static INSTANCE=new e;static reset(){e.INSTANCE=new e}},n=class{constructor(){}key(){return this.constructor.name}getOrRegister(){let t=r.INSTANCE.stateMap.get(this.key());return t||(t=this.initValue(),r.INSTANCE.stateMap.set(this.key(),t)),t}unregister(){let t=r.INSTANCE.stateMap.get(this.key());return r.INSTANCE.stateMap.delete(this.key()),t}},c=class extends n{initValue(){return new Map}getValue(t){return this.getOrRegister().get(t)}getValues(){let t=this.getOrRegister();return Array.from(t.values())}getOrSetValue(t,s){let u=this.getOrRegister(),a=u.get(t);return a?(a!==s&&console.warn(t,"has been registered twice, use the previous one"),a):(u.set(t,s),s)}},i=class extends n{initValue(){return[]}getValues(){return this.getOrRegister()}addValue(t){return this.getOrRegister().push(t),t}},o=class e extends i{static INSTANCE=new e;constructor(){super()}addValue(t){return T||g?.postMessage({event:"add_template_instance",value:t,from:p}),super.addValue(t)}};import("node:process").then(e=>e.stdout.write(""));export{r as a,n as b,c,i as d,o as e};
3
+ //# sourceMappingURL=chunk-WHWNPZZ3.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/state.ts"],"sourcesContent":["import { TemplateInstance } from '@sentio/protos'\nimport { isMainThread, parentPort, threadId } from 'node:worker_threads'\n\nexport class State {\n stateMap = new Map<string, any>()\n\n static INSTANCE = new State()\n\n static reset() {\n State.INSTANCE = new State()\n }\n}\n\nexport abstract class StateStorage<T> {\n // TODO learn how to define single instance for all subclasses\n\n protected constructor() {\n //\n }\n\n abstract initValue(): T\n\n key(): string {\n return this.constructor.name\n }\n\n getOrRegister(): T {\n let metricState: T = State.INSTANCE.stateMap.get(this.key())\n if (!metricState) {\n metricState = this.initValue()\n State.INSTANCE.stateMap.set(this.key(), metricState)\n }\n return metricState\n }\n\n unregister(): T {\n const value = State.INSTANCE.stateMap.get(this.key())\n State.INSTANCE.stateMap.delete(this.key())\n return value\n }\n}\n\nexport abstract class MapStateStorage<T> extends StateStorage<Map<string, T>> {\n initValue() {\n return new Map<string, T>()\n }\n\n getValue(key: string): T | undefined {\n const m = this.getOrRegister()\n return m.get(key)\n }\n\n getValues(): T[] {\n const m = this.getOrRegister()\n return Array.from(m.values())\n }\n\n getOrSetValue(key: string, value: T): T {\n const m = this.getOrRegister()\n const oldValue = m.get(key)\n if (oldValue) {\n if (oldValue !== value) {\n console.warn(key, 'has been registered twice, use the previous one')\n }\n return oldValue\n }\n m.set(key, value)\n return value\n }\n}\n\nexport abstract class ListStateStorage<T> extends StateStorage<T[]> {\n initValue() {\n return []\n }\n\n getValues(): T[] {\n return this.getOrRegister()\n }\n\n addValue(value: T): T {\n const m = this.getOrRegister()\n m.push(value)\n return value\n }\n}\n\nexport class TemplateInstanceState extends ListStateStorage<TemplateInstance> {\n static INSTANCE = new TemplateInstanceState()\n\n constructor() {\n super()\n }\n\n override addValue(value: TemplateInstance): TemplateInstance {\n if (!isMainThread) {\n // I'm worker thread, should notice the main thread\n parentPort?.postMessage({ event: 'add_template_instance', value, from: threadId })\n }\n return super.addValue(value)\n }\n}\n;import(\"node:process\").then((p) => p.stdout.write(\"\"));"],"mappings":";;;AACA,SAAS,cAAc,YAAY,gBAAgB;AAE5C,IAAM,QAAN,MAAM,OAAM;AAAA,EACjB,WAAW,oBAAI,IAAiB;AAAA,EAEhC,OAAO,WAAW,IAAI,OAAM;AAAA,EAE5B,OAAO,QAAQ;AACb,WAAM,WAAW,IAAI,OAAM;AAAA,EAC7B;AACF;AAEO,IAAe,eAAf,MAA+B;AAAA;AAAA,EAG1B,cAAc;AAAA,EAExB;AAAA,EAIA,MAAc;AACZ,WAAO,KAAK,YAAY;AAAA,EAC1B;AAAA,EAEA,gBAAmB;AACjB,QAAI,cAAiB,MAAM,SAAS,SAAS,IAAI,KAAK,IAAI,CAAC;AAC3D,QAAI,CAAC,aAAa;AAChB,oBAAc,KAAK,UAAU;AAC7B,YAAM,SAAS,SAAS,IAAI,KAAK,IAAI,GAAG,WAAW;AAAA,IACrD;AACA,WAAO;AAAA,EACT;AAAA,EAEA,aAAgB;AACd,UAAM,QAAQ,MAAM,SAAS,SAAS,IAAI,KAAK,IAAI,CAAC;AACpD,UAAM,SAAS,SAAS,OAAO,KAAK,IAAI,CAAC;AACzC,WAAO;AAAA,EACT;AACF;AAEO,IAAe,kBAAf,cAA0C,aAA6B;AAAA,EAC5E,YAAY;AACV,WAAO,oBAAI,IAAe;AAAA,EAC5B;AAAA,EAEA,SAAS,KAA4B;AACnC,UAAM,IAAI,KAAK,cAAc;AAC7B,WAAO,EAAE,IAAI,GAAG;AAAA,EAClB;AAAA,EAEA,YAAiB;AACf,UAAM,IAAI,KAAK,cAAc;AAC7B,WAAO,MAAM,KAAK,EAAE,OAAO,CAAC;AAAA,EAC9B;AAAA,EAEA,cAAc,KAAa,OAAa;AACtC,UAAM,IAAI,KAAK,cAAc;AAC7B,UAAM,WAAW,EAAE,IAAI,GAAG;AAC1B,QAAI,UAAU;AACZ,UAAI,aAAa,OAAO;AACtB,gBAAQ,KAAK,KAAK,iDAAiD;AAAA,MACrE;AACA,aAAO;AAAA,IACT;AACA,MAAE,IAAI,KAAK,KAAK;AAChB,WAAO;AAAA,EACT;AACF;AAEO,IAAe,mBAAf,cAA2C,aAAkB;AAAA,EAClE,YAAY;AACV,WAAO,CAAC;AAAA,EACV;AAAA,EAEA,YAAiB;AACf,WAAO,KAAK,cAAc;AAAA,EAC5B;AAAA,EAEA,SAAS,OAAa;AACpB,UAAM,IAAI,KAAK,cAAc;AAC7B,MAAE,KAAK,KAAK;AACZ,WAAO;AAAA,EACT;AACF;AAEO,IAAM,wBAAN,MAAM,+BAA8B,iBAAmC;AAAA,EAC5E,OAAO,WAAW,IAAI,uBAAsB;AAAA,EAE5C,cAAc;AACZ,UAAM;AAAA,EACR;AAAA,EAES,SAAS,OAA2C;AAC3D,QAAI,CAAC,cAAc;AAEjB,kBAAY,YAAY,EAAE,OAAO,yBAAyB,OAAO,MAAM,SAAS,CAAC;AAAA,IACnF;AACA,WAAO,MAAM,SAAS,KAAK;AAAA,EAC7B;AACF;AACC,OAAO,cAAc,EAAE,KAAK,CAAC,MAAM,EAAE,OAAO,MAAM,EAAE,CAAC;","names":[]}
1
+ {"version":3,"sources":["../src/state.ts"],"sourcesContent":["import { TemplateInstance } from '@sentio/protos'\nimport { isMainThread, parentPort, threadId } from 'node:worker_threads'\n\nexport class State {\n stateMap = new Map<string, any>()\n\n static INSTANCE = new State()\n\n static reset() {\n State.INSTANCE = new State()\n }\n}\n\nexport abstract class StateStorage<T> {\n // TODO learn how to define single instance for all subclasses\n\n protected constructor() {\n //\n }\n\n abstract initValue(): T\n\n key(): string {\n return this.constructor.name\n }\n\n getOrRegister(): T {\n let metricState: T = State.INSTANCE.stateMap.get(this.key())\n if (!metricState) {\n metricState = this.initValue()\n State.INSTANCE.stateMap.set(this.key(), metricState)\n }\n return metricState\n }\n\n unregister(): T {\n const value = State.INSTANCE.stateMap.get(this.key())\n State.INSTANCE.stateMap.delete(this.key())\n return value\n }\n}\n\nexport abstract class MapStateStorage<T> extends StateStorage<Map<string, T>> {\n initValue() {\n return new Map<string, T>()\n }\n\n getValue(key: string): T | undefined {\n const m = this.getOrRegister()\n return m.get(key)\n }\n\n getValues(): T[] {\n const m = this.getOrRegister()\n return Array.from(m.values())\n }\n\n getOrSetValue(key: string, value: T): T {\n const m = this.getOrRegister()\n const oldValue = m.get(key)\n if (oldValue) {\n if (oldValue !== value) {\n console.warn(key, 'has been registered twice, use the previous one')\n }\n return oldValue\n }\n m.set(key, value)\n return value\n }\n}\n\nexport abstract class ListStateStorage<T> extends StateStorage<T[]> {\n initValue() {\n return []\n }\n\n getValues(): T[] {\n return this.getOrRegister()\n }\n\n addValue(value: T): T {\n const m = this.getOrRegister()\n m.push(value)\n return value\n }\n}\n\nexport class TemplateInstanceState extends ListStateStorage<TemplateInstance> {\n static INSTANCE = new TemplateInstanceState()\n\n constructor() {\n super()\n }\n\n override addValue(value: TemplateInstance): TemplateInstance {\n if (!isMainThread) {\n // I'm worker thread, should notice the main thread\n parentPort?.postMessage({ event: 'add_template_instance', value, from: threadId })\n }\n return super.addValue(value)\n }\n}\n;import(\"node:process\").then((p) => p.stdout.write(\"\"));"],"mappings":";AACA,OAAS,gBAAAA,EAAc,cAAAC,EAAY,YAAAC,MAAgB,sBAE5C,IAAMC,EAAN,MAAMC,CAAM,CACjB,SAAW,IAAI,IAEf,OAAO,SAAW,IAAIA,EAEtB,OAAO,OAAQ,CACbA,EAAM,SAAW,IAAIA,CACvB,CACF,EAEsBC,EAAf,KAA+B,CAG1B,aAAc,CAExB,CAIA,KAAc,CACZ,OAAO,KAAK,YAAY,IAC1B,CAEA,eAAmB,CACjB,IAAIC,EAAiBH,EAAM,SAAS,SAAS,IAAI,KAAK,IAAI,CAAC,EAC3D,OAAKG,IACHA,EAAc,KAAK,UAAU,EAC7BH,EAAM,SAAS,SAAS,IAAI,KAAK,IAAI,EAAGG,CAAW,GAE9CA,CACT,CAEA,YAAgB,CACd,IAAMC,EAAQJ,EAAM,SAAS,SAAS,IAAI,KAAK,IAAI,CAAC,EACpD,OAAAA,EAAM,SAAS,SAAS,OAAO,KAAK,IAAI,CAAC,EAClCI,CACT,CACF,EAEsBC,EAAf,cAA0CH,CAA6B,CAC5E,WAAY,CACV,OAAO,IAAI,GACb,CAEA,SAASI,EAA4B,CAEnC,OADU,KAAK,cAAc,EACpB,IAAIA,CAAG,CAClB,CAEA,WAAiB,CACf,IAAMC,EAAI,KAAK,cAAc,EAC7B,OAAO,MAAM,KAAKA,EAAE,OAAO,CAAC,CAC9B,CAEA,cAAcD,EAAaF,EAAa,CACtC,IAAMG,EAAI,KAAK,cAAc,EACvBC,EAAWD,EAAE,IAAID,CAAG,EAC1B,OAAIE,GACEA,IAAaJ,GACf,QAAQ,KAAKE,EAAK,iDAAiD,EAE9DE,IAETD,EAAE,IAAID,EAAKF,CAAK,EACTA,EACT,CACF,EAEsBK,EAAf,cAA2CP,CAAkB,CAClE,WAAY,CACV,MAAO,CAAC,CACV,CAEA,WAAiB,CACf,OAAO,KAAK,cAAc,CAC5B,CAEA,SAASE,EAAa,CAEpB,OADU,KAAK,cAAc,EAC3B,KAAKA,CAAK,EACLA,CACT,CACF,EAEaM,EAAN,MAAMC,UAA8BF,CAAmC,CAC5E,OAAO,SAAW,IAAIE,EAEtB,aAAc,CACZ,MAAM,CACR,CAES,SAASP,EAA2C,CAC3D,OAAKP,GAEHC,GAAY,YAAY,CAAE,MAAO,wBAAyB,MAAAM,EAAO,KAAML,CAAS,CAAC,EAE5E,MAAM,SAASK,CAAK,CAC7B,CACF,EACC,OAAO,cAAc,EAAE,KAAMQ,GAAMA,EAAE,OAAO,MAAM,EAAE,CAAC","names":["isMainThread","parentPort","threadId","State","_State","StateStorage","metricState","value","MapStateStorage","key","m","oldValue","ListStateStorage","TemplateInstanceState","_TemplateInstanceState","p"]}
package/lib/index.d.ts CHANGED
@@ -1,5 +1,5 @@
1
- import { S as StoreContext, E as ExecutionConfig } from './processor-Cbun9NKJ.js';
2
- export { A as AbstractStoreContext, D as DataBindingContext, b as IDataBindingContext, I as IStoreContext, P as Plugin, a as PluginManager, t as timeoutError } from './processor-Cbun9NKJ.js';
1
+ import { S as StoreContext, E as ExecutionConfig } from './processor-DwZlMkFj.js';
2
+ export { A as AbstractStoreContext, D as DataBindingContext, b as IDataBindingContext, I as IStoreContext, P as Plugin, a as PluginManager, t as timeoutError } from './processor-DwZlMkFj.js';
3
3
  import * as _sentio_protos from '@sentio/protos';
4
4
  import { TemplateInstance, ProcessResult, EthCallParam, ProcessorServiceImplementation, ProcessConfigRequest, ProcessConfigResponse, StartRequest, Empty, ProcessBindingsRequest, ProcessBindingResponse, DataBinding, PreparedData, PreprocessResult, ProcessStreamRequest, HandlerType, PreprocessStreamRequest, DeepPartial, PreprocessStreamResponse, ProcessStreamResponse } from '@sentio/protos';
5
5
  import { Required } from 'utility-types';
package/lib/index.js CHANGED
@@ -1,76 +1,3 @@
1
1
  import { createRequire as createRequireShim } from 'module'; const require = createRequireShim(import.meta.url);
2
- import {
3
- ListStateStorage,
4
- MapStateStorage,
5
- State,
6
- StateStorage,
7
- TemplateInstanceState
8
- } from "./chunk-6XHWJ2VS.js";
9
- import {
10
- AbstractStoreContext,
11
- DataBindingContext,
12
- DummyProvider,
13
- Endpoints,
14
- GLOBAL_CONFIG,
15
- ProcessorServiceImpl,
16
- QueuedStaticJsonRpcProvider,
17
- StoreContext,
18
- USER_PROCESSOR,
19
- compareSemver,
20
- configureEndpoints,
21
- dbMetrics,
22
- errorString,
23
- getProvider,
24
- makeEthCallKey,
25
- mergeProcessResults,
26
- mergeProcessResultsInPlace,
27
- metricsStorage,
28
- parseSemver,
29
- processMetrics,
30
- providerMetrics,
31
- recordRuntimeInfo,
32
- timeoutError
33
- } from "./chunk-XIU7XZT7.js";
34
- import {
35
- Plugin,
36
- PluginManager
37
- } from "./chunk-J4QKUO6L.js";
38
-
39
- // src/chain-config.ts
40
- import("node:process").then((p) => p.stdout.write(""));
41
-
42
- // src/index.ts
43
- import("node:process").then((p) => p.stdout.write(""));
44
- export {
45
- AbstractStoreContext,
46
- DataBindingContext,
47
- DummyProvider,
48
- Endpoints,
49
- GLOBAL_CONFIG,
50
- ListStateStorage,
51
- MapStateStorage,
52
- Plugin,
53
- PluginManager,
54
- ProcessorServiceImpl,
55
- QueuedStaticJsonRpcProvider,
56
- State,
57
- StateStorage,
58
- StoreContext,
59
- TemplateInstanceState,
60
- USER_PROCESSOR,
61
- compareSemver,
62
- configureEndpoints,
63
- dbMetrics,
64
- errorString,
65
- getProvider,
66
- makeEthCallKey,
67
- mergeProcessResults,
68
- mergeProcessResultsInPlace,
69
- metricsStorage,
70
- parseSemver,
71
- processMetrics,
72
- providerMetrics,
73
- recordRuntimeInfo,
74
- timeoutError
75
- };
2
+ import{a as p,b as f,c as i,d as m,e as n}from"./chunk-WHWNPZZ3.js";import{$ as y,R as u,S as w,T as I,U as L,V as O,W as b,X as c,Y as v,a as x,aa as A,b as s,ba as B,c as C,ca as D,d as a,da as F,e as g,f as h,g as G,i as d,j as l,t as o}from"./chunk-3P4VIZX3.js";import{v as t,w as e}from"./chunk-OMQ4A6ZL.js";import("node:process").then(r=>r.stdout.write(""));import("node:process").then(r=>r.stdout.write(""));export{b as AbstractStoreContext,v as DataBindingContext,y as DummyProvider,d as Endpoints,o as GLOBAL_CONFIG,m as ListStateStorage,i as MapStateStorage,t as Plugin,e as PluginManager,D as ProcessorServiceImpl,B as QueuedStaticJsonRpcProvider,p as State,f as StateStorage,c as StoreContext,n as TemplateInstanceState,a as USER_PROCESSOR,G as compareSemver,l as configureEndpoints,u as dbMetrics,C as errorString,A as getProvider,g as makeEthCallKey,x as mergeProcessResults,s as mergeProcessResultsInPlace,L as metricsStorage,h as parseSemver,I as processMetrics,w as providerMetrics,F as recordRuntimeInfo,O as timeoutError};
76
3
  //# sourceMappingURL=index.js.map
package/lib/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/chain-config.ts","../src/index.ts"],"sourcesContent":["export interface ChainConfig {\n ChainID: string\n Https?: string[]\n ChainServer?: string\n}\n;import(\"node:process\").then((p) => p.stdout.write(\"\"));","export * from './plugin.js'\nexport * from './state.js'\nexport * from './utils.js'\nexport * from './endpoints.js'\nexport * from './chain-config.js'\nexport * from './service.js'\nexport { GLOBAL_CONFIG, type GlobalConfig } from './global-config.js'\nexport * from './db-context.js'\nexport * from './provider.js'\nexport * from './metrics.js'\n;import(\"node:process\").then((p) => p.stdout.write(\"\"));"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAKC,OAAO,cAAc,EAAE,KAAK,CAAC,MAAM,EAAE,OAAO,MAAM,EAAE,CAAC;;;ACKrD,OAAO,cAAc,EAAE,KAAK,CAAC,MAAM,EAAE,OAAO,MAAM,EAAE,CAAC;","names":[]}
1
+ {"version":3,"sources":["../src/chain-config.ts","../src/index.ts"],"sourcesContent":["export interface ChainConfig {\n ChainID: string\n Https?: string[]\n ChainServer?: string\n}\n;import(\"node:process\").then((p) => p.stdout.write(\"\"));","export * from './plugin.js'\nexport * from './state.js'\nexport * from './utils.js'\nexport * from './endpoints.js'\nexport * from './chain-config.js'\nexport * from './service.js'\nexport { GLOBAL_CONFIG, type GlobalConfig } from './global-config.js'\nexport * from './db-context.js'\nexport * from './provider.js'\nexport * from './metrics.js'\n;import(\"node:process\").then((p) => p.stdout.write(\"\"));"],"mappings":";yTAKC,OAAO,cAAc,EAAE,KAAMA,GAAMA,EAAE,OAAO,MAAM,EAAE,CAAC,ECKrD,OAAO,cAAc,EAAE,KAAMC,GAAMA,EAAE,OAAO,MAAM,EAAE,CAAC","names":["p","p"]}
@@ -1,4 +1,4 @@
1
- import { DeepPartial as DeepPartial$2, DBResponse, TemplateInstance, TimeseriesResult as TimeseriesResult$1, ProcessStreamResponse, DBRequest_DBUpsert, ProcessStreamResponseV2, DBRequest, HandlerType as HandlerType$1, ProcessConfigResponse, StartRequest, DataBinding as DataBinding$1, PreparedData, ProcessResult as ProcessResult$1, PreprocessResult, ProcessStreamResponse_Partitions, InitResponse } from '@sentio/protos';
1
+ import { DeepPartial as DeepPartial$2, DBResponse, TemplateInstance, TimeseriesResult as TimeseriesResult$1, ProcessStreamResponse, DBRequest_DBUpsert, ProcessStreamResponseV3, DBRequest, HandlerType as HandlerType$1, ProcessConfigResponse, StartRequest, DataBinding as DataBinding$1, PreparedData, ProcessResult as ProcessResult$1, PreprocessResult, ProcessStreamResponse_Partitions, UpdateTemplatesRequest } from '@sentio/protos';
2
2
  import { Subject } from 'rxjs';
3
3
  import { AsyncLocalStorage } from 'node:async_hooks';
4
4
  import _m0 from 'protobufjs/minimal.js';
@@ -50,11 +50,11 @@ declare class StoreContext extends AbstractStoreContext {
50
50
  }
51
51
  declare class DataBindingContext extends AbstractStoreContext implements IDataBindingContext {
52
52
  readonly processId: number;
53
- readonly subject: Subject<DeepPartial$2<ProcessStreamResponseV2>>;
54
- constructor(processId: number, subject: Subject<DeepPartial$2<ProcessStreamResponseV2>>);
53
+ readonly subject: Subject<DeepPartial$2<ProcessStreamResponseV3>>;
54
+ constructor(processId: number, subject: Subject<DeepPartial$2<ProcessStreamResponseV3>>);
55
55
  sendTemplateRequest(templates: Array<TemplateInstance>): void;
56
56
  sendTimeseriesRequest(timeseries: Array<TimeseriesResult$1>): void;
57
- doSend(resp: DeepPartial$2<ProcessStreamResponseV2>): void;
57
+ doSend(resp: DeepPartial$2<ProcessStreamResponseV3>): void;
58
58
  }
59
59
 
60
60
  declare abstract class Plugin {
@@ -80,11 +80,6 @@ declare abstract class Plugin {
80
80
  * method used by action server only
81
81
  */
82
82
  shutdownServer(): void;
83
- /**
84
- * Initialize the plugin, for service v3.
85
- * @param config
86
- */
87
- init(config: InitResponse): Promise<void>;
88
83
  }
89
84
  declare class PluginManager {
90
85
  static INSTANCE: PluginManager;
@@ -92,7 +87,7 @@ declare class PluginManager {
92
87
  plugins: Plugin[];
93
88
  typesToPlugin: Map<HandlerType$1, Plugin>;
94
89
  register(plugin: Plugin): void;
95
- configure(config: ProcessConfigResponse, forChainId?: string): Promise<void>;
90
+ configure(config: ProcessConfigResponse): Promise<void>;
96
91
  start(start: StartRequest, actionServerPort?: number): Promise<void[]>;
97
92
  startServer(port?: number): Promise<void[]>;
98
93
  shutdown(): void;
@@ -105,7 +100,7 @@ declare class PluginManager {
105
100
  preprocessBinding(request: DataBinding$1, preprocessStore: {
106
101
  [k: string]: any;
107
102
  }, dbContext?: StoreContext): Promise<PreprocessResult>;
108
- init(resp: InitResponse): Promise<void[]>;
103
+ updateTemplates(request: UpdateTemplatesRequest): Promise<void>;
109
104
  }
110
105
 
111
106
  declare enum RichValue_NullValue {