@sentio/runtime 3.9.0-rc.9 → 4.0.0-rc.2

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.
Files changed (53) hide show
  1. package/lib/{chunk-VNWNJ423.js → chunk-63SN5KU2.js} +4198 -26357
  2. package/lib/chunk-63SN5KU2.js.map +1 -0
  3. package/lib/{chunk-L2A6JPIQ.js → chunk-LSYQ34WX.js} +3 -3
  4. package/lib/chunk-LSYQ34WX.js.map +1 -0
  5. package/lib/chunk-MSVN53DI.js +4992 -0
  6. package/lib/chunk-MSVN53DI.js.map +1 -0
  7. package/lib/{getMachineId-bsd-QYFPRONP.js → getMachineId-bsd-OV63RCBF.js} +4 -4
  8. package/lib/getMachineId-bsd-OV63RCBF.js.map +1 -0
  9. package/lib/{getMachineId-darwin-XC67FIUW.js → getMachineId-darwin-7BY3RHHX.js} +4 -4
  10. package/lib/getMachineId-darwin-7BY3RHHX.js.map +1 -0
  11. package/lib/{getMachineId-linux-4G7ZY7LQ.js → getMachineId-linux-SN23MJRK.js} +3 -3
  12. package/lib/getMachineId-linux-SN23MJRK.js.map +1 -0
  13. package/lib/{getMachineId-unsupported-5IH5IW7P.js → getMachineId-unsupported-CQYUAEDB.js} +3 -3
  14. package/lib/getMachineId-unsupported-CQYUAEDB.js.map +1 -0
  15. package/lib/{getMachineId-win-WSA3TUKL.js → getMachineId-win-NL4ZQSDA.js} +4 -4
  16. package/lib/getMachineId-win-NL4ZQSDA.js.map +1 -0
  17. package/lib/index.d.ts +1734 -549
  18. package/lib/index.js +2 -2
  19. package/lib/plugin-D-rx1WCp.d.ts +108 -0
  20. package/lib/processor-runner.js +30992 -10137
  21. package/lib/processor-runner.js.map +1 -1
  22. package/package.json +1 -1
  23. package/src/action-server.ts +3 -2
  24. package/src/db-context.ts +58 -45
  25. package/src/endpoints.ts +0 -2
  26. package/src/full-service.ts +35 -382
  27. package/src/gen/google/type/money_pb.ts +41 -0
  28. package/src/gen/processor/protos/processor_pb.ts +3855 -0
  29. package/src/gen/service/common/protos/common_pb.ts +4456 -0
  30. package/src/global-config.ts +3 -2
  31. package/src/logger.ts +13 -5
  32. package/src/plugin.ts +26 -16
  33. package/src/processor-runner-program.ts +0 -1
  34. package/src/processor-runner.ts +29 -25
  35. package/src/service-v3.ts +54 -56
  36. package/src/service.ts +94 -87
  37. package/src/utils.ts +9 -12
  38. package/lib/chunk-EXIISBRV.js +0 -26084
  39. package/lib/chunk-EXIISBRV.js.map +0 -1
  40. package/lib/chunk-L2A6JPIQ.js.map +0 -1
  41. package/lib/chunk-VNWNJ423.js.map +0 -1
  42. package/lib/getMachineId-bsd-QYFPRONP.js.map +0 -1
  43. package/lib/getMachineId-darwin-XC67FIUW.js.map +0 -1
  44. package/lib/getMachineId-linux-4G7ZY7LQ.js.map +0 -1
  45. package/lib/getMachineId-unsupported-5IH5IW7P.js.map +0 -1
  46. package/lib/getMachineId-win-WSA3TUKL.js.map +0 -1
  47. package/lib/processor-MLp_j8IT.d.ts +0 -864
  48. package/src/gen/google/protobuf/empty.ts +0 -56
  49. package/src/gen/google/protobuf/struct.ts +0 -494
  50. package/src/gen/google/protobuf/timestamp.ts +0 -106
  51. package/src/gen/google/type/money.ts +0 -122
  52. package/src/gen/processor/protos/processor.ts +0 -14071
  53. package/src/gen/service/common/protos/common.ts +0 -15157
package/lib/index.js CHANGED
@@ -24,11 +24,11 @@ import {
24
24
  providerMetrics,
25
25
  recordRuntimeInfo,
26
26
  timeoutError
27
- } from "./chunk-VNWNJ423.js";
27
+ } from "./chunk-63SN5KU2.js";
28
28
  import {
29
29
  Plugin,
30
30
  PluginManager
31
- } from "./chunk-EXIISBRV.js";
31
+ } from "./chunk-MSVN53DI.js";
32
32
  import "./chunk-I45UXGDM.js";
33
33
  import "./chunk-KVSDPGUI.js";
34
34
 
@@ -0,0 +1,108 @@
1
+ import { DBResponse, TemplateInstance, TimeseriesResult, DBRequest_DBUpsert, ProcessStreamResponseSchema, ProcessStreamResponseV3Schema, DBRequestSchema, HandlerType, ProcessConfigResponse, StartRequest, DataBinding, PreparedData, ProcessResult, PreprocessResult, ProcessStreamResponse_Partitions, UpdateTemplatesRequest } from '@sentio/protos';
2
+ import { Subject } from 'rxjs';
3
+ import { MessageInitShape } from '@bufbuild/protobuf';
4
+ import { AsyncLocalStorage } from 'node:async_hooks';
5
+
6
+ type ProcessStreamResponseInit = MessageInitShape<typeof ProcessStreamResponseSchema>;
7
+ type ProcessStreamResponseV3Init = MessageInitShape<typeof ProcessStreamResponseV3Schema>;
8
+ type Request = NonNullable<MessageInitShape<typeof DBRequestSchema>['op']>;
9
+ type RequestType = NonNullable<Request['case']>;
10
+ declare const timeoutError: Error;
11
+ interface IStoreContext {
12
+ sendRequest(request: Request, timeoutSecs?: number): Promise<DBResponse>;
13
+ result(dbResult: DBResponse): void;
14
+ error(processId: number, e: any): void;
15
+ close(): void;
16
+ }
17
+ interface IDataBindingContext extends IStoreContext {
18
+ sendTemplateRequest(templates: Array<TemplateInstance>, unbind: boolean): void;
19
+ sendTimeseriesRequest(timeseries: Array<TimeseriesResult>): void;
20
+ }
21
+ declare abstract class AbstractStoreContext implements IStoreContext {
22
+ readonly processId: number;
23
+ private static opCounter;
24
+ protected defers: Map<bigint, {
25
+ resolve: (value: any) => void;
26
+ reject: (reason?: any) => void;
27
+ requestType?: RequestType;
28
+ }>;
29
+ private statsInterval;
30
+ private pendings;
31
+ constructor(processId: number);
32
+ newPromise<T>(opId: bigint, requestType?: RequestType): Promise<T>;
33
+ abstract doSend(resp: ProcessStreamResponseInit | ProcessStreamResponseV3Init): void;
34
+ sendRequest(request: Request, timeoutSecs?: number): Promise<DBResponse>;
35
+ result(dbResult: DBResponse): void;
36
+ error(processId: number, e: any): void;
37
+ close(): void;
38
+ upsertBatch: {
39
+ opId: bigint;
40
+ request: DBRequest_DBUpsert;
41
+ promise: Promise<DBResponse>;
42
+ timer: NodeJS.Timeout;
43
+ } | undefined;
44
+ private sendUpsertInBatch;
45
+ private sendBatch;
46
+ awaitPendings(): Promise<void>;
47
+ }
48
+ declare class StoreContext extends AbstractStoreContext {
49
+ readonly subject: Subject<ProcessStreamResponseInit>;
50
+ constructor(subject: Subject<ProcessStreamResponseInit>, processId: number);
51
+ doSend(resp: ProcessStreamResponseInit): void;
52
+ }
53
+ declare class DataBindingContext extends AbstractStoreContext implements IDataBindingContext {
54
+ readonly processId: number;
55
+ readonly subject: Subject<ProcessStreamResponseV3Init>;
56
+ constructor(processId: number, subject: Subject<ProcessStreamResponseV3Init>);
57
+ sendTemplateRequest(templates: Array<TemplateInstance>, unbind: boolean): void;
58
+ sendTimeseriesRequest(timeseries: Array<TimeseriesResult>): void;
59
+ doSend(resp: ProcessStreamResponseV3Init): void;
60
+ }
61
+
62
+ declare abstract class Plugin {
63
+ name: string;
64
+ supportedHandlers: HandlerType[];
65
+ configure(config: ProcessConfigResponse, forChainId?: string): Promise<void>;
66
+ start(start: StartRequest): Promise<void>;
67
+ /**
68
+ * @deprecated The method should not be used, use ctx.states instead
69
+ */
70
+ stateDiff(config: ProcessConfigResponse): boolean;
71
+ processBinding(request: DataBinding, preparedData: PreparedData | undefined): Promise<ProcessResult>;
72
+ preprocessBinding(request: DataBinding, preprocessStore: {
73
+ [k: string]: any;
74
+ }): Promise<PreprocessResult>;
75
+ partition(request: DataBinding): Promise<ProcessStreamResponse_Partitions>;
76
+ /**
77
+ * method used by action server only
78
+ * @param port
79
+ */
80
+ startServer(port?: number): Promise<void>;
81
+ /**
82
+ * method used by action server only
83
+ */
84
+ shutdownServer(): void;
85
+ }
86
+ declare class PluginManager {
87
+ static INSTANCE: PluginManager;
88
+ dbContextLocalStorage: AsyncLocalStorage<IStoreContext | IDataBindingContext | undefined>;
89
+ plugins: Plugin[];
90
+ typesToPlugin: Map<HandlerType, Plugin>;
91
+ register(plugin: Plugin): void;
92
+ configure(config: ProcessConfigResponse): Promise<void>;
93
+ start(start: StartRequest, actionServerPort?: number): Promise<void[]>;
94
+ startServer(port?: number): Promise<void[]>;
95
+ shutdown(): void;
96
+ /**
97
+ * @deprecated The method should not be used, use ctx.states instead
98
+ */
99
+ stateDiff(config: ProcessConfigResponse): boolean;
100
+ processBinding(request: DataBinding, preparedData: PreparedData | undefined, dbContext?: IDataBindingContext | IStoreContext): Promise<ProcessResult>;
101
+ partition(request: DataBinding): Promise<ProcessStreamResponse_Partitions>;
102
+ preprocessBinding(request: DataBinding, preprocessStore: {
103
+ [k: string]: any;
104
+ }, dbContext?: IDataBindingContext | IStoreContext): Promise<PreprocessResult>;
105
+ updateTemplates(request: UpdateTemplatesRequest): Promise<void>;
106
+ }
107
+
108
+ export { AbstractStoreContext as A, DataBindingContext as D, type IStoreContext as I, Plugin as P, StoreContext as S, PluginManager as a, type IDataBindingContext as b, timeoutError as t };