@apibara/protocol 0.3.0 → 0.4.0-next.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.
Files changed (143) hide show
  1. package/dist/client.d.ts +116 -25
  2. package/dist/client.js +159 -35
  3. package/dist/client.js.map +1 -1
  4. package/dist/cursor.d.ts +22 -0
  5. package/dist/cursor.js +43 -0
  6. package/dist/cursor.js.map +1 -0
  7. package/dist/index.d.ts +3 -3
  8. package/dist/index.js +3 -16
  9. package/dist/index.js.map +1 -1
  10. package/dist/proto/apibara/node/v1alpha2/Cursor.d.ts +10 -0
  11. package/dist/proto/apibara/node/{v1alpha1/Node.js → v1alpha2/Cursor.js} +2 -2
  12. package/dist/proto/apibara/node/v1alpha2/Cursor.js.map +1 -0
  13. package/dist/proto/apibara/node/v1alpha2/Data.d.ts +15 -0
  14. package/dist/proto/apibara/node/{v1alpha1 → v1alpha2}/Data.js +1 -1
  15. package/dist/proto/apibara/node/v1alpha2/Data.js.map +1 -0
  16. package/dist/proto/apibara/node/v1alpha2/DataFinality.d.ts +6 -0
  17. package/dist/proto/apibara/node/v1alpha2/DataFinality.js +12 -0
  18. package/dist/proto/apibara/node/v1alpha2/DataFinality.js.map +1 -0
  19. package/dist/proto/apibara/node/{v1alpha1 → v1alpha2}/Heartbeat.d.ts +0 -0
  20. package/dist/proto/apibara/node/v1alpha2/Heartbeat.js +4 -0
  21. package/dist/proto/apibara/node/v1alpha2/Heartbeat.js.map +1 -0
  22. package/dist/proto/apibara/node/v1alpha2/Invalidate.d.ts +7 -0
  23. package/dist/proto/apibara/node/v1alpha2/Invalidate.js +4 -0
  24. package/dist/proto/apibara/node/v1alpha2/Invalidate.js.map +1 -0
  25. package/dist/proto/apibara/node/v1alpha2/Stream.d.ts +16 -0
  26. package/dist/proto/{google/protobuf/Any.js → apibara/node/v1alpha2/Stream.js} +2 -2
  27. package/dist/proto/apibara/node/v1alpha2/Stream.js.map +1 -0
  28. package/dist/proto/apibara/node/v1alpha2/StreamDataRequest.d.ts +24 -0
  29. package/dist/proto/apibara/node/v1alpha2/StreamDataRequest.js +4 -0
  30. package/dist/proto/apibara/node/v1alpha2/StreamDataRequest.js.map +1 -0
  31. package/dist/proto/apibara/node/v1alpha2/StreamDataResponse.d.ts +18 -0
  32. package/dist/proto/apibara/node/v1alpha2/StreamDataResponse.js +4 -0
  33. package/dist/proto/apibara/node/v1alpha2/StreamDataResponse.js.map +1 -0
  34. package/dist/proto/index.d.ts +1 -11
  35. package/dist/proto/index.js +13 -13
  36. package/dist/proto/index.js.map +1 -1
  37. package/dist/proto/stream.d.ts +25 -0
  38. package/dist/proto/{node.js → stream.js} +1 -1
  39. package/dist/proto/stream.js.map +1 -0
  40. package/dist/proto/stream.proto +76 -0
  41. package/dist/proto/testing.d.ts +5 -0
  42. package/dist/proto/testing.js +22 -0
  43. package/dist/proto/testing.js.map +1 -0
  44. package/dist/proto/v1alpha2.d.ts +11 -0
  45. package/dist/proto/v1alpha2.js +12 -0
  46. package/dist/proto/v1alpha2.js.map +1 -0
  47. package/dist/request.d.ts +36 -0
  48. package/dist/request.js +57 -0
  49. package/dist/request.js.map +1 -0
  50. package/dist/request.test.d.ts +1 -0
  51. package/dist/request.test.js +29 -0
  52. package/dist/request.test.js.map +1 -0
  53. package/package.json +7 -4
  54. package/src/client.ts +259 -44
  55. package/src/cursor.ts +39 -0
  56. package/src/index.ts +3 -3
  57. package/src/proto/apibara/node/v1alpha2/Cursor.ts +13 -0
  58. package/src/proto/apibara/node/v1alpha2/Data.ts +18 -0
  59. package/src/proto/apibara/node/v1alpha2/DataFinality.ts +8 -0
  60. package/src/proto/apibara/node/{v1alpha1 → v1alpha2}/Heartbeat.ts +1 -1
  61. package/src/proto/apibara/node/v1alpha2/Invalidate.ts +11 -0
  62. package/src/proto/apibara/node/v1alpha2/Stream.ts +23 -0
  63. package/src/proto/apibara/node/v1alpha2/StreamDataRequest.ts +27 -0
  64. package/src/proto/apibara/node/v1alpha2/StreamDataResponse.ts +22 -0
  65. package/src/proto/index.ts +1 -11
  66. package/src/proto/stream.proto +76 -0
  67. package/src/proto/stream.ts +26 -0
  68. package/src/proto/testing.ts +11 -0
  69. package/src/proto/v1alpha2.ts +19 -0
  70. package/src/request.test.ts +31 -0
  71. package/src/request.ts +64 -0
  72. package/dist/buffer.d.ts +0 -12
  73. package/dist/buffer.js +0 -22
  74. package/dist/buffer.js.map +0 -1
  75. package/dist/proto/apibara/node/v1alpha1/ConnectRequest.d.ts +0 -7
  76. package/dist/proto/apibara/node/v1alpha1/ConnectRequest.js +0 -4
  77. package/dist/proto/apibara/node/v1alpha1/ConnectRequest.js.map +0 -1
  78. package/dist/proto/apibara/node/v1alpha1/ConnectResponse.d.ts +0 -12
  79. package/dist/proto/apibara/node/v1alpha1/ConnectResponse.js +0 -4
  80. package/dist/proto/apibara/node/v1alpha1/ConnectResponse.js.map +0 -1
  81. package/dist/proto/apibara/node/v1alpha1/Data.d.ts +0 -10
  82. package/dist/proto/apibara/node/v1alpha1/Data.js.map +0 -1
  83. package/dist/proto/apibara/node/v1alpha1/Heartbeat.js +0 -4
  84. package/dist/proto/apibara/node/v1alpha1/Heartbeat.js.map +0 -1
  85. package/dist/proto/apibara/node/v1alpha1/InputSyncingStatus.d.ts +0 -9
  86. package/dist/proto/apibara/node/v1alpha1/InputSyncingStatus.js +0 -4
  87. package/dist/proto/apibara/node/v1alpha1/InputSyncingStatus.js.map +0 -1
  88. package/dist/proto/apibara/node/v1alpha1/Invalidate.d.ts +0 -7
  89. package/dist/proto/apibara/node/v1alpha1/Invalidate.js +0 -4
  90. package/dist/proto/apibara/node/v1alpha1/Invalidate.js.map +0 -1
  91. package/dist/proto/apibara/node/v1alpha1/Node.d.ts +0 -28
  92. package/dist/proto/apibara/node/v1alpha1/Node.js.map +0 -1
  93. package/dist/proto/apibara/node/v1alpha1/NotStartedStatus.d.ts +0 -4
  94. package/dist/proto/apibara/node/v1alpha1/NotStartedStatus.js +0 -4
  95. package/dist/proto/apibara/node/v1alpha1/NotStartedStatus.js.map +0 -1
  96. package/dist/proto/apibara/node/v1alpha1/StatusRequest.d.ts +0 -4
  97. package/dist/proto/apibara/node/v1alpha1/StatusRequest.js +0 -4
  98. package/dist/proto/apibara/node/v1alpha1/StatusRequest.js.map +0 -1
  99. package/dist/proto/apibara/node/v1alpha1/StatusResponse.d.ts +0 -15
  100. package/dist/proto/apibara/node/v1alpha1/StatusResponse.js +0 -4
  101. package/dist/proto/apibara/node/v1alpha1/StatusResponse.js.map +0 -1
  102. package/dist/proto/apibara/node/v1alpha1/StreamMessagesRequest.d.ts +0 -9
  103. package/dist/proto/apibara/node/v1alpha1/StreamMessagesRequest.js +0 -4
  104. package/dist/proto/apibara/node/v1alpha1/StreamMessagesRequest.js.map +0 -1
  105. package/dist/proto/apibara/node/v1alpha1/StreamMessagesResponse.d.ts +0 -17
  106. package/dist/proto/apibara/node/v1alpha1/StreamMessagesResponse.js +0 -4
  107. package/dist/proto/apibara/node/v1alpha1/StreamMessagesResponse.js.map +0 -1
  108. package/dist/proto/apibara/node/v1alpha1/SyncedStatus.d.ts +0 -7
  109. package/dist/proto/apibara/node/v1alpha1/SyncedStatus.js +0 -4
  110. package/dist/proto/apibara/node/v1alpha1/SyncedStatus.js.map +0 -1
  111. package/dist/proto/apibara/node/v1alpha1/SyncingStatus.d.ts +0 -10
  112. package/dist/proto/apibara/node/v1alpha1/SyncingStatus.js +0 -4
  113. package/dist/proto/apibara/node/v1alpha1/SyncingStatus.js.map +0 -1
  114. package/dist/proto/google/protobuf/Any.d.ts +0 -10
  115. package/dist/proto/google/protobuf/Any.js.map +0 -1
  116. package/dist/proto/node.d.ts +0 -36
  117. package/dist/proto/node.js.map +0 -1
  118. package/dist/proto/node.proto +0 -99
  119. package/dist/stream.d.ts +0 -32
  120. package/dist/stream.js +0 -95
  121. package/dist/stream.js.map +0 -1
  122. package/dist/stream.test.d.ts +0 -0
  123. package/dist/stream.test.js +0 -19
  124. package/dist/stream.test.js.map +0 -1
  125. package/src/buffer.ts +0 -17
  126. package/src/proto/apibara/node/v1alpha1/ConnectRequest.ts +0 -11
  127. package/src/proto/apibara/node/v1alpha1/ConnectResponse.ts +0 -16
  128. package/src/proto/apibara/node/v1alpha1/Data.ts +0 -14
  129. package/src/proto/apibara/node/v1alpha1/InputSyncingStatus.ts +0 -13
  130. package/src/proto/apibara/node/v1alpha1/Invalidate.ts +0 -11
  131. package/src/proto/apibara/node/v1alpha1/Node.ts +0 -37
  132. package/src/proto/apibara/node/v1alpha1/NotStartedStatus.ts +0 -8
  133. package/src/proto/apibara/node/v1alpha1/StatusRequest.ts +0 -8
  134. package/src/proto/apibara/node/v1alpha1/StatusResponse.ts +0 -19
  135. package/src/proto/apibara/node/v1alpha1/StreamMessagesRequest.ts +0 -13
  136. package/src/proto/apibara/node/v1alpha1/StreamMessagesResponse.ts +0 -21
  137. package/src/proto/apibara/node/v1alpha1/SyncedStatus.ts +0 -11
  138. package/src/proto/apibara/node/v1alpha1/SyncingStatus.ts +0 -14
  139. package/src/proto/google/protobuf/Any.ts +0 -13
  140. package/src/proto/node.proto +0 -99
  141. package/src/proto/node.ts +0 -37
  142. package/src/stream.test.ts +0 -9
  143. package/src/stream.ts +0 -127
package/dist/client.d.ts CHANGED
@@ -1,28 +1,119 @@
1
- import { ClientOptions, ChannelCredentials } from '@grpc/grpc-js';
2
- import { Retry, StreamMessagesStream } from './stream';
3
- import { NodeClient as GrpcNodeClient } from './proto/apibara/node/v1alpha1/Node';
4
- import { StatusResponse__Output } from './proto/apibara/node/v1alpha1/StatusResponse';
5
- import { StreamMessagesRequest } from './proto/apibara/node/v1alpha1/StreamMessagesRequest';
6
- export declare const Node: (new (address: string, credentials: ChannelCredentials, options?: ClientOptions | undefined) => GrpcNodeClient) & {
7
- service: import("./proto/apibara/node/v1alpha1/Node").NodeDefinition;
1
+ import { ChannelCredentials, ClientDuplexStream, ClientOptions, StatusObject } from '@grpc/grpc-js';
2
+ import { v1alpha2 } from './proto';
3
+ export { ChannelCredentials, StatusObject } from '@grpc/grpc-js';
4
+ export declare type DataStream = ClientDuplexStream<v1alpha2.IStreamDataRequest, v1alpha2.IStreamDataResponse>;
5
+ export declare type ConfigureArgs = {
6
+ /**
7
+ * Stream filter, encoded.
8
+ */
9
+ filter: Uint8Array;
10
+ /**
11
+ * How much data in a single message.
12
+ */
13
+ batchSize?: number;
14
+ /**
15
+ * Starting cursor. This cursor is stream-specific.
16
+ */
17
+ cursor?: v1alpha2.ICursor | null;
18
+ /**
19
+ * Data finality, e.g. finalized or accepted.
20
+ */
21
+ finality?: v1alpha2.DataFinality | null;
8
22
  };
9
- export declare const credentials: {
10
- combineChannelCredentials: (channelCredentials: ChannelCredentials, ...callCredentials: import("@grpc/grpc-js").CallCredentials[]) => ChannelCredentials;
11
- combineCallCredentials: (first: import("@grpc/grpc-js").CallCredentials, ...additional: import("@grpc/grpc-js").CallCredentials[]) => import("@grpc/grpc-js").CallCredentials;
12
- createInsecure: typeof ChannelCredentials.createInsecure;
13
- createSsl: typeof ChannelCredentials.createSsl;
14
- createFromSecureContext: typeof ChannelCredentials.createFromSecureContext;
15
- createFromMetadataGenerator: typeof import("@grpc/grpc-js").CallCredentials.createFromMetadataGenerator;
16
- createFromGoogleCredential: typeof import("@grpc/grpc-js").CallCredentials.createFromGoogleCredential;
17
- createEmpty: typeof import("@grpc/grpc-js").CallCredentials.createEmpty;
23
+ /**
24
+ * Reconnect callback return value.
25
+ */
26
+ export declare type OnReconnectResult = {
27
+ /**
28
+ * If `true`, reconnects to the stream.
29
+ */
30
+ reconnect: boolean;
31
+ /**
32
+ * Stream configuration used when reconnecting.
33
+ *
34
+ * By default, the client uses the last configuration passed to
35
+ * `configure` and updates the `cursor` with the most recent one.
36
+ */
37
+ args?: ConfigureArgs;
18
38
  };
19
- export interface StreamMessagesOptions {
20
- reconnect?: boolean;
21
- onRetry?: (retryCount: number) => Retry;
22
- }
23
- export declare class NodeClient {
24
- private readonly client;
25
- constructor(address: string, credentials: ChannelCredentials, options?: ClientOptions);
26
- status(): Promise<StatusResponse__Output | undefined>;
27
- streamMessages(args: StreamMessagesRequest, options?: StreamMessagesOptions): StreamMessagesStream;
39
+ /**
40
+ * Reconnect callback.
41
+ */
42
+ export declare type OnReconnect = (err: StatusObject, retryCount: number) => Promise<OnReconnectResult> | OnReconnectResult;
43
+ export declare type StreamClientArgs = {
44
+ /**
45
+ * The stream url.
46
+ */
47
+ url: string;
48
+ /**
49
+ * Grpc credentials.
50
+ *
51
+ * Use `ChannelCredentials.createInsecure()` to disable SSL.
52
+ */
53
+ credentials?: ChannelCredentials;
54
+ /**
55
+ * Grpc client options.
56
+ */
57
+ clientOptions?: ClientOptions;
58
+ /**
59
+ * Callback to control reconnection after receiving an error from the stream.
60
+ *
61
+ * By default uses `defaultOnReconnect`, which only reconnects on internal grpc errors.
62
+ */
63
+ onReconnect?: OnReconnect;
64
+ };
65
+ /**
66
+ * A client to configure and stream data.
67
+ */
68
+ export declare class StreamClient {
69
+ private readonly inner;
70
+ private stream?;
71
+ private stream_id;
72
+ private onReconnect;
73
+ private configuration?;
74
+ /**
75
+ * Create a new `StreamClient`.
76
+ *
77
+ * Notice that the stream is not connected until you start iterating over it.
78
+ * The stream should be used as an _async iterator_.
79
+ *
80
+ * @example
81
+ * ```ts
82
+ * import { StreamClient } from '@apibara/protocol'
83
+ *
84
+ * const client = new StreamClient({ url })
85
+ *
86
+ * client.configure({ filter, cursor })
87
+ *
88
+ * for await (const message of client) {
89
+ * // use message
90
+ * }
91
+ * ```
92
+ */
93
+ constructor({ url, credentials, clientOptions, onReconnect }: StreamClientArgs);
94
+ /**
95
+ * Async iterator over messages in the stream.
96
+ */
97
+ [Symbol.asyncIterator](): AsyncIterator<v1alpha2.IStreamDataResponse>;
98
+ /**
99
+ * Configure the stream to return the requested data.
100
+ *
101
+ * The stream can be reconfigured while streaming data, the client will
102
+ * take care of returning only data for the new configuration even if there
103
+ * are old messages in-flight.
104
+ */
105
+ configure(args: ConfigureArgs): void;
106
+ private _configure;
107
+ private connect;
28
108
  }
109
+ /**
110
+ * A `onReconnect` callback that never reconnects.
111
+ */
112
+ export declare function neverReconnect(_err: StatusObject, _retryCount: number): OnReconnectResult;
113
+ /**
114
+ * A `onReconnect` callback that retries to reconnect up to 5 times.
115
+ *
116
+ * If the error is not an internal error, then it will not reconnect.
117
+ * This callback awaits for `1s * retryCount` before returning.
118
+ */
119
+ export declare function defaultOnReconnect(err: StatusObject, retryCount: number): Promise<OnReconnectResult>;
package/dist/client.js CHANGED
@@ -1,46 +1,170 @@
1
1
  "use strict";
2
- var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
- function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
- return new (P || (P = Promise))(function (resolve, reject) {
5
- function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
6
- function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
7
- function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
8
- step((generator = generator.apply(thisArg, _arguments || [])).next());
9
- });
10
- };
11
2
  Object.defineProperty(exports, "__esModule", { value: true });
12
- exports.NodeClient = exports.credentials = exports.Node = void 0;
13
- const util_1 = require("util");
3
+ exports.defaultOnReconnect = exports.neverReconnect = exports.StreamClient = exports.ChannelCredentials = void 0;
14
4
  const grpc_js_1 = require("@grpc/grpc-js");
15
- const proto_loader_1 = require("@grpc/proto-loader");
16
- const stream_1 = require("./stream");
17
- const __NODE_PROTO_PATH = __dirname + '/proto/node.proto';
18
- const packageDefinition = (0, proto_loader_1.loadSync)(__NODE_PROTO_PATH, {});
19
- const protoDescriptor = (0, grpc_js_1.loadPackageDefinition)(packageDefinition);
20
- exports.Node = protoDescriptor.apibara.node.v1alpha1.Node;
21
- exports.credentials = grpc_js_1.credentials;
22
- class NodeClient {
23
- constructor(address, credentials, options) {
24
- this.client = new exports.Node(address, credentials, options);
25
- }
26
- status() {
27
- return __awaiter(this, void 0, void 0, function* () {
28
- return (0, util_1.promisify)(this.client.Status.bind(this.client, {}))();
5
+ const proto_1 = require("./proto");
6
+ const request_1 = require("./request");
7
+ var grpc_js_2 = require("@grpc/grpc-js");
8
+ Object.defineProperty(exports, "ChannelCredentials", { enumerable: true, get: function () { return grpc_js_2.ChannelCredentials; } });
9
+ const StreamService = proto_1.v1alpha2.protoDescriptor.apibara.node.v1alpha2.Stream;
10
+ /**
11
+ * A client to configure and stream data.
12
+ */
13
+ class StreamClient {
14
+ /**
15
+ * Create a new `StreamClient`.
16
+ *
17
+ * Notice that the stream is not connected until you start iterating over it.
18
+ * The stream should be used as an _async iterator_.
19
+ *
20
+ * @example
21
+ * ```ts
22
+ * import { StreamClient } from '@apibara/protocol'
23
+ *
24
+ * const client = new StreamClient({ url })
25
+ *
26
+ * client.configure({ filter, cursor })
27
+ *
28
+ * for await (const message of client) {
29
+ * // use message
30
+ * }
31
+ * ```
32
+ */
33
+ constructor({ url, credentials, clientOptions, onReconnect }) {
34
+ this.inner = new StreamService(url, credentials ?? grpc_js_1.ChannelCredentials.createSsl(), {
35
+ 'grpc.keepalive_timeout_ms': 3600000,
36
+ ...clientOptions,
29
37
  });
38
+ this.stream_id = 0;
39
+ this.onReconnect = onReconnect ?? defaultOnReconnect;
30
40
  }
31
- streamMessages(args, options) {
32
- // only reconnect if user has opted-in
33
- let onRetry = stream_1.neverRetry;
34
- if (options === null || options === void 0 ? void 0 : options.reconnect) {
35
- if (options.onRetry) {
36
- onRetry = options.onRetry;
41
+ /**
42
+ * Async iterator over messages in the stream.
43
+ */
44
+ async *[Symbol.asyncIterator]() {
45
+ if (!this.configuration) {
46
+ throw new Error('StreamClient must be configured');
47
+ }
48
+ // connect if not connected.
49
+ if (!this.stream) {
50
+ this.connect();
51
+ this._configure(this.configuration);
52
+ }
53
+ while (true) {
54
+ let retryCount = 1;
55
+ let cursor = null;
56
+ try {
57
+ // this check is to make ts happy
58
+ if (!this.stream) {
59
+ throw new Error('Stream disconnected unexpectedly');
60
+ }
61
+ for await (const message of this.stream) {
62
+ const messageTyped = message;
63
+ // only return messages if they are with the most recently configured stream
64
+ if (messageTyped.streamId?.toString() == this.stream_id.toString()) {
65
+ // reset retry count on new message
66
+ retryCount = 1;
67
+ // keep cursor updated for use when reconnecting
68
+ if (messageTyped.data) {
69
+ cursor = messageTyped.data.cursor;
70
+ }
71
+ else if (messageTyped.invalidate) {
72
+ cursor = messageTyped.invalidate.cursor;
73
+ }
74
+ yield messageTyped;
75
+ }
76
+ }
37
77
  }
38
- else {
39
- onRetry = stream_1.defaultOnRetry;
78
+ catch (err) {
79
+ const isGrpcError = err.hasOwnProperty('code') &&
80
+ err.hasOwnProperty('details') &&
81
+ err.hasOwnProperty('metadata');
82
+ // non-grpc error, so just bubble it up
83
+ if (!isGrpcError) {
84
+ throw err;
85
+ }
86
+ const { reconnect, args } = await Promise.resolve(this.onReconnect(err, retryCount));
87
+ retryCount += 1;
88
+ if (!reconnect) {
89
+ break;
90
+ }
91
+ this.connect();
92
+ if (args) {
93
+ this._configure(args);
94
+ }
95
+ else {
96
+ // use same configuration specified by user, restarting from the
97
+ // latest ingested batch.
98
+ const configuration = {
99
+ ...this.configuration,
100
+ cursor: cursor ?? this.configuration.cursor,
101
+ };
102
+ this._configure(configuration);
103
+ }
40
104
  }
41
105
  }
42
- return new stream_1.StreamMessagesStream({ args, onRetry, client: this.client });
43
106
  }
107
+ /**
108
+ * Configure the stream to return the requested data.
109
+ *
110
+ * The stream can be reconfigured while streaming data, the client will
111
+ * take care of returning only data for the new configuration even if there
112
+ * are old messages in-flight.
113
+ */
114
+ configure(args) {
115
+ this.configuration = args;
116
+ this._configure(args);
117
+ }
118
+ _configure(args) {
119
+ const { filter, batchSize, cursor, finality } = args;
120
+ this.stream_id++;
121
+ // only send configuration if connected
122
+ if (this.stream) {
123
+ const builder = request_1.StreamDataRequest.create().withStreamId(this.stream_id).withFilter(filter);
124
+ if (batchSize) {
125
+ builder.withBatchSize(batchSize);
126
+ }
127
+ if (cursor) {
128
+ builder.withStartingCursor(cursor);
129
+ }
130
+ if (finality) {
131
+ builder.withFinality(finality);
132
+ }
133
+ const request = builder.encode();
134
+ this.stream?.write(request);
135
+ }
136
+ }
137
+ connect() {
138
+ this.stream = this.inner.streamData();
139
+ return this;
140
+ }
141
+ }
142
+ exports.StreamClient = StreamClient;
143
+ /**
144
+ * A `onReconnect` callback that never reconnects.
145
+ */
146
+ function neverReconnect(_err, _retryCount) {
147
+ return {
148
+ reconnect: false,
149
+ };
150
+ }
151
+ exports.neverReconnect = neverReconnect;
152
+ /**
153
+ * A `onReconnect` callback that retries to reconnect up to 5 times.
154
+ *
155
+ * If the error is not an internal error, then it will not reconnect.
156
+ * This callback awaits for `1s * retryCount` before returning.
157
+ */
158
+ async function defaultOnReconnect(err, retryCount) {
159
+ if (err.code != 13) {
160
+ return {
161
+ reconnect: false,
162
+ };
163
+ }
164
+ await new Promise((resolve) => setTimeout(resolve, retryCount * 1000));
165
+ return {
166
+ reconnect: retryCount < 5,
167
+ };
44
168
  }
45
- exports.NodeClient = NodeClient;
169
+ exports.defaultOnReconnect = defaultOnReconnect;
46
170
  //# sourceMappingURL=client.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"client.js","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,+BAAgC;AAChC,2CAKsB;AACtB,qDAA6C;AAC7C,qCAAkF;AAMlF,MAAM,iBAAiB,GAAG,SAAS,GAAG,mBAAmB,CAAA;AAEzD,MAAM,iBAAiB,GAAG,IAAA,uBAAQ,EAAC,iBAAiB,EAAE,EAAE,CAAC,CAAA;AACzD,MAAM,eAAe,GAAG,IAAA,+BAAqB,EAAC,iBAAiB,CAA6B,CAAA;AAE/E,QAAA,IAAI,GAAG,eAAe,CAAC,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAA;AAEjD,QAAA,WAAW,GAAG,qBAAe,CAAA;AAO1C,MAAa,UAAU;IAGrB,YAAY,OAAe,EAAE,WAA+B,EAAE,OAAuB;QACnF,IAAI,CAAC,MAAM,GAAG,IAAI,YAAI,CAAC,OAAO,EAAE,WAAW,EAAE,OAAO,CAAC,CAAA;IACvD,CAAC;IAEY,MAAM;;YACjB,OAAO,IAAA,gBAAS,EAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,EAAE,CAAA;QAC9D,CAAC;KAAA;IAEM,cAAc,CACnB,IAA2B,EAC3B,OAA+B;QAE/B,sCAAsC;QACtC,IAAI,OAAO,GAAG,mBAAU,CAAA;QACxB,IAAI,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,SAAS,EAAE;YACtB,IAAI,OAAO,CAAC,OAAO,EAAE;gBACnB,OAAO,GAAG,OAAO,CAAC,OAAO,CAAA;aAC1B;iBAAM;gBACL,OAAO,GAAG,uBAAc,CAAA;aACzB;SACF;QAED,OAAO,IAAI,6BAAoB,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,CAAC,CAAA;IACzE,CAAC;CACF;AA3BD,gCA2BC"}
1
+ {"version":3,"file":"client.js","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":";;;AAAA,2CAAmG;AACnG,mCAAkC;AAClC,uCAA6C;AAE7C,yCAAgE;AAAvD,6GAAA,kBAAkB,OAAA;AAE3B,MAAM,aAAa,GAAG,gBAAQ,CAAC,eAAe,CAAC,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAA;AAgF3E;;GAEG;AACH,MAAa,YAAY;IAQvB;;;;;;;;;;;;;;;;;;OAkBG;IACH,YAAY,EAAE,GAAG,EAAE,WAAW,EAAE,aAAa,EAAE,WAAW,EAAoB;QAC5E,IAAI,CAAC,KAAK,GAAG,IAAI,aAAa,CAAC,GAAG,EAAE,WAAW,IAAI,4BAAkB,CAAC,SAAS,EAAE,EAAE;YACjF,2BAA2B,EAAE,OAAS;YACtC,GAAG,aAAa;SACjB,CAAC,CAAA;QACF,IAAI,CAAC,SAAS,GAAG,CAAC,CAAA;QAClB,IAAI,CAAC,WAAW,GAAG,WAAW,IAAI,kBAAkB,CAAA;IACtD,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,aAAa,CAAC;QAC3B,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE;YACvB,MAAM,IAAI,KAAK,CAAC,iCAAiC,CAAC,CAAA;SACnD;QAED,4BAA4B;QAC5B,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE;YAChB,IAAI,CAAC,OAAO,EAAE,CAAA;YACd,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,aAAa,CAAC,CAAA;SACpC;QAED,OAAO,IAAI,EAAE;YACX,IAAI,UAAU,GAAG,CAAC,CAAA;YAClB,IAAI,MAAM,GAAG,IAAI,CAAA;YACjB,IAAI;gBACF,iCAAiC;gBACjC,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE;oBAChB,MAAM,IAAI,KAAK,CAAC,kCAAkC,CAAC,CAAA;iBACpD;gBAED,IAAI,KAAK,EAAE,MAAM,OAAO,IAAI,IAAI,CAAC,MAAM,EAAE;oBACvC,MAAM,YAAY,GAAG,OAAuC,CAAA;oBAE5D,4EAA4E;oBAC5E,IAAI,YAAY,CAAC,QAAQ,EAAE,QAAQ,EAAE,IAAI,IAAI,CAAC,SAAS,CAAC,QAAQ,EAAE,EAAE;wBAClE,mCAAmC;wBACnC,UAAU,GAAG,CAAC,CAAA;wBAEd,gDAAgD;wBAChD,IAAI,YAAY,CAAC,IAAI,EAAE;4BACrB,MAAM,GAAG,YAAY,CAAC,IAAI,CAAC,MAAM,CAAA;yBAClC;6BAAM,IAAI,YAAY,CAAC,UAAU,EAAE;4BAClC,MAAM,GAAG,YAAY,CAAC,UAAU,CAAC,MAAM,CAAA;yBACxC;wBAED,MAAM,YAAY,CAAA;qBACnB;iBACF;aACF;YAAC,OAAO,GAAQ,EAAE;gBACjB,MAAM,WAAW,GACf,GAAG,CAAC,cAAc,CAAC,MAAM,CAAC;oBAC1B,GAAG,CAAC,cAAc,CAAC,SAAS,CAAC;oBAC7B,GAAG,CAAC,cAAc,CAAC,UAAU,CAAC,CAAA;gBAEhC,uCAAuC;gBACvC,IAAI,CAAC,WAAW,EAAE;oBAChB,MAAM,GAAG,CAAA;iBACV;gBAED,MAAM,EAAE,SAAS,EAAE,IAAI,EAAE,GAAG,MAAM,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,WAAW,CAAC,GAAG,EAAE,UAAU,CAAC,CAAC,CAAA;gBACpF,UAAU,IAAI,CAAC,CAAA;gBACf,IAAI,CAAC,SAAS,EAAE;oBACd,MAAK;iBACN;gBAED,IAAI,CAAC,OAAO,EAAE,CAAA;gBAEd,IAAI,IAAI,EAAE;oBACR,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,CAAA;iBACtB;qBAAM;oBACL,gEAAgE;oBAChE,yBAAyB;oBACzB,MAAM,aAAa,GAAG;wBACpB,GAAG,IAAI,CAAC,aAAa;wBACrB,MAAM,EAAE,MAAM,IAAI,IAAI,CAAC,aAAa,CAAC,MAAM;qBAC5C,CAAA;oBACD,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,CAAA;iBAC/B;aACF;SACF;IACH,CAAC;IAED;;;;;;OAMG;IACH,SAAS,CAAC,IAAmB;QAC3B,IAAI,CAAC,aAAa,GAAG,IAAI,CAAA;QACzB,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,CAAA;IACvB,CAAC;IAEO,UAAU,CAAC,IAAmB;QACpC,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,GAAG,IAAI,CAAA;QACpD,IAAI,CAAC,SAAS,EAAE,CAAA;QAEhB,uCAAuC;QACvC,IAAI,IAAI,CAAC,MAAM,EAAE;YACf,MAAM,OAAO,GAAG,2BAAiB,CAAC,MAAM,EAAE,CAAC,YAAY,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,UAAU,CAAC,MAAM,CAAC,CAAA;YAE1F,IAAI,SAAS,EAAE;gBACb,OAAO,CAAC,aAAa,CAAC,SAAS,CAAC,CAAA;aACjC;YACD,IAAI,MAAM,EAAE;gBACV,OAAO,CAAC,kBAAkB,CAAC,MAAM,CAAC,CAAA;aACnC;YACD,IAAI,QAAQ,EAAE;gBACZ,OAAO,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAA;aAC/B;YAED,MAAM,OAAO,GAAG,OAAO,CAAC,MAAM,EAAE,CAAA;YAChC,IAAI,CAAC,MAAM,EAAE,KAAK,CAAC,OAAO,CAAC,CAAA;SAC5B;IACH,CAAC;IAEO,OAAO;QACb,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,UAAU,EAAE,CAAA;QACrC,OAAO,IAAI,CAAA;IACb,CAAC;CACF;AAtJD,oCAsJC;AAED;;GAEG;AACH,SAAgB,cAAc,CAAC,IAAkB,EAAE,WAAmB;IACpE,OAAO;QACL,SAAS,EAAE,KAAK;KACjB,CAAA;AACH,CAAC;AAJD,wCAIC;AAED;;;;;GAKG;AACI,KAAK,UAAU,kBAAkB,CACtC,GAAiB,EACjB,UAAkB;IAElB,IAAI,GAAG,CAAC,IAAI,IAAI,EAAE,EAAE;QAClB,OAAO;YACL,SAAS,EAAE,KAAK;SACjB,CAAA;KACF;IAED,MAAM,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,UAAU,CAAC,OAAO,EAAE,UAAU,GAAG,IAAI,CAAC,CAAC,CAAA;IACtE,OAAO;QACL,SAAS,EAAE,UAAU,GAAG,CAAC;KAC1B,CAAA;AACH,CAAC;AAdD,gDAcC"}
@@ -0,0 +1,22 @@
1
+ import Long from 'long';
2
+ import { ICursor } from './proto/v1alpha2';
3
+ export declare const Cursor: {
4
+ /**
5
+ * Creates a new cursor with only the `orderKey` set.
6
+ *
7
+ * Notice that this cursor does not uniquely identify a message in the stream
8
+ * and may result in missing information.
9
+ */
10
+ createWithOrderKey: (order: string | number | Long) => ICursor;
11
+ /**
12
+ * Creates a new cursor with both order and unique keys.
13
+ *
14
+ * This cursor uniquely identifies a message in the stream, even if it has
15
+ * been invalidated.
16
+ */
17
+ create: (order: string | number | Long, unique: Uint8Array) => ICursor;
18
+ /**
19
+ * Returns the cursor string representation.
20
+ */
21
+ toString: (cursor?: ICursor | null) => string | undefined;
22
+ };
package/dist/cursor.js ADDED
@@ -0,0 +1,43 @@
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.Cursor = void 0;
7
+ const long_1 = __importDefault(require("long"));
8
+ exports.Cursor = {
9
+ /**
10
+ * Creates a new cursor with only the `orderKey` set.
11
+ *
12
+ * Notice that this cursor does not uniquely identify a message in the stream
13
+ * and may result in missing information.
14
+ */
15
+ createWithOrderKey: (order) => {
16
+ return {
17
+ orderKey: long_1.default.fromValue(order),
18
+ uniqueKey: new Uint8Array(),
19
+ };
20
+ },
21
+ /**
22
+ * Creates a new cursor with both order and unique keys.
23
+ *
24
+ * This cursor uniquely identifies a message in the stream, even if it has
25
+ * been invalidated.
26
+ */
27
+ create: (order, unique) => {
28
+ return {
29
+ orderKey: long_1.default.fromValue(order),
30
+ uniqueKey: unique,
31
+ };
32
+ },
33
+ /**
34
+ * Returns the cursor string representation.
35
+ */
36
+ toString: (cursor) => {
37
+ if (!cursor)
38
+ return;
39
+ let hash = Buffer.from(cursor.uniqueKey).toString('hex');
40
+ return `${cursor.orderKey.toString()}/0x${hash}`;
41
+ },
42
+ };
43
+ //# sourceMappingURL=cursor.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cursor.js","sourceRoot":"","sources":["../src/cursor.ts"],"names":[],"mappings":";;;;;;AAAA,gDAAuB;AAGV,QAAA,MAAM,GAAG;IACpB;;;;;OAKG;IACH,kBAAkB,EAAE,CAAC,KAA6B,EAAW,EAAE;QAC7D,OAAO;YACL,QAAQ,EAAE,cAAI,CAAC,SAAS,CAAC,KAAK,CAAC;YAC/B,SAAS,EAAE,IAAI,UAAU,EAAE;SAC5B,CAAA;IACH,CAAC;IAED;;;;;OAKG;IACH,MAAM,EAAE,CAAC,KAA6B,EAAE,MAAkB,EAAW,EAAE;QACrE,OAAO;YACL,QAAQ,EAAE,cAAI,CAAC,SAAS,CAAC,KAAK,CAAC;YAC/B,SAAS,EAAE,MAAM;SAClB,CAAA;IACH,CAAC;IAED;;OAEG;IACH,QAAQ,EAAE,CAAC,MAAuB,EAAsB,EAAE;QACxD,IAAI,CAAC,MAAM;YAAE,OAAM;QACnB,IAAI,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAA;QACxD,OAAO,GAAG,MAAM,CAAC,QAAQ,CAAC,QAAQ,EAAE,MAAM,IAAI,EAAE,CAAA;IAClD,CAAC;CACF,CAAA"}
package/dist/index.d.ts CHANGED
@@ -1,4 +1,4 @@
1
+ export * from './proto';
1
2
  export * from './client';
2
- export * from './buffer';
3
- export * from './stream';
4
- export * as proto from './proto';
3
+ export * from './request';
4
+ export * from './cursor';
package/dist/index.js CHANGED
@@ -10,25 +10,12 @@ var __createBinding = (this && this.__createBinding) || (Object.create ? (functi
10
10
  if (k2 === undefined) k2 = k;
11
11
  o[k2] = m[k];
12
12
  }));
13
- var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
- Object.defineProperty(o, "default", { enumerable: true, value: v });
15
- }) : function(o, v) {
16
- o["default"] = v;
17
- });
18
13
  var __exportStar = (this && this.__exportStar) || function(m, exports) {
19
14
  for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
20
15
  };
21
- var __importStar = (this && this.__importStar) || function (mod) {
22
- if (mod && mod.__esModule) return mod;
23
- var result = {};
24
- if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
25
- __setModuleDefault(result, mod);
26
- return result;
27
- };
28
16
  Object.defineProperty(exports, "__esModule", { value: true });
29
- exports.proto = void 0;
17
+ __exportStar(require("./proto"), exports);
30
18
  __exportStar(require("./client"), exports);
31
- __exportStar(require("./buffer"), exports);
32
- __exportStar(require("./stream"), exports);
33
- exports.proto = __importStar(require("./proto"));
19
+ __exportStar(require("./request"), exports);
20
+ __exportStar(require("./cursor"), exports);
34
21
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,2CAAwB;AACxB,2CAAwB;AACxB,2CAAwB;AACxB,iDAAgC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,0CAAuB;AACvB,2CAAwB;AACxB,4CAAyB;AACzB,2CAAwB"}
@@ -0,0 +1,10 @@
1
+ /// <reference types="node" />
2
+ import type { Long } from '@grpc/proto-loader';
3
+ export interface Cursor {
4
+ 'orderKey'?: (number | string | Long);
5
+ 'uniqueKey'?: (Buffer | Uint8Array | string);
6
+ }
7
+ export interface Cursor__Output {
8
+ 'orderKey': (Long);
9
+ 'uniqueKey': (Uint8Array);
10
+ }
@@ -1,4 +1,4 @@
1
1
  "use strict";
2
- // Original file: src/proto/node.proto
2
+ // Original file: src/proto/stream.proto
3
3
  Object.defineProperty(exports, "__esModule", { value: true });
4
- //# sourceMappingURL=Node.js.map
4
+ //# sourceMappingURL=Cursor.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Cursor.js","sourceRoot":"","sources":["../../../../../src/proto/apibara/node/v1alpha2/Cursor.ts"],"names":[],"mappings":";AAAA,wCAAwC"}
@@ -0,0 +1,15 @@
1
+ /// <reference types="node" />
2
+ import type { Cursor as _apibara_node_v1alpha2_Cursor, Cursor__Output as _apibara_node_v1alpha2_Cursor__Output } from '../../../apibara/node/v1alpha2/Cursor';
3
+ import type { DataFinality as _apibara_node_v1alpha2_DataFinality } from '../../../apibara/node/v1alpha2/DataFinality';
4
+ export interface Data {
5
+ 'endCursor'?: (_apibara_node_v1alpha2_Cursor | null);
6
+ 'finality'?: (_apibara_node_v1alpha2_DataFinality | keyof typeof _apibara_node_v1alpha2_DataFinality);
7
+ 'data'?: (Buffer | Uint8Array | string)[];
8
+ 'cursor'?: (_apibara_node_v1alpha2_Cursor | null);
9
+ }
10
+ export interface Data__Output {
11
+ 'endCursor': (_apibara_node_v1alpha2_Cursor__Output | null);
12
+ 'finality': (keyof typeof _apibara_node_v1alpha2_DataFinality);
13
+ 'data': (Uint8Array)[];
14
+ 'cursor': (_apibara_node_v1alpha2_Cursor__Output | null);
15
+ }
@@ -1,4 +1,4 @@
1
1
  "use strict";
2
- // Original file: src/proto/node.proto
2
+ // Original file: src/proto/stream.proto
3
3
  Object.defineProperty(exports, "__esModule", { value: true });
4
4
  //# sourceMappingURL=Data.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Data.js","sourceRoot":"","sources":["../../../../../src/proto/apibara/node/v1alpha2/Data.ts"],"names":[],"mappings":";AAAA,wCAAwC"}
@@ -0,0 +1,6 @@
1
+ export declare enum DataFinality {
2
+ DATA_STATUS_UNKNOWN = 0,
3
+ DATA_STATUS_PENDING = 1,
4
+ DATA_STATUS_ACCEPTED = 2,
5
+ DATA_STATUS_FINALIZED = 3
6
+ }
@@ -0,0 +1,12 @@
1
+ "use strict";
2
+ // Original file: src/proto/stream.proto
3
+ Object.defineProperty(exports, "__esModule", { value: true });
4
+ exports.DataFinality = void 0;
5
+ var DataFinality;
6
+ (function (DataFinality) {
7
+ DataFinality[DataFinality["DATA_STATUS_UNKNOWN"] = 0] = "DATA_STATUS_UNKNOWN";
8
+ DataFinality[DataFinality["DATA_STATUS_PENDING"] = 1] = "DATA_STATUS_PENDING";
9
+ DataFinality[DataFinality["DATA_STATUS_ACCEPTED"] = 2] = "DATA_STATUS_ACCEPTED";
10
+ DataFinality[DataFinality["DATA_STATUS_FINALIZED"] = 3] = "DATA_STATUS_FINALIZED";
11
+ })(DataFinality = exports.DataFinality || (exports.DataFinality = {}));
12
+ //# sourceMappingURL=DataFinality.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"DataFinality.js","sourceRoot":"","sources":["../../../../../src/proto/apibara/node/v1alpha2/DataFinality.ts"],"names":[],"mappings":";AAAA,wCAAwC;;;AAExC,IAAY,YAKX;AALD,WAAY,YAAY;IACtB,6EAAuB,CAAA;IACvB,6EAAuB,CAAA;IACvB,+EAAwB,CAAA;IACxB,iFAAyB,CAAA;AAC3B,CAAC,EALW,YAAY,GAAZ,oBAAY,KAAZ,oBAAY,QAKvB"}
@@ -0,0 +1,4 @@
1
+ "use strict";
2
+ // Original file: src/proto/stream.proto
3
+ Object.defineProperty(exports, "__esModule", { value: true });
4
+ //# sourceMappingURL=Heartbeat.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Heartbeat.js","sourceRoot":"","sources":["../../../../../src/proto/apibara/node/v1alpha2/Heartbeat.ts"],"names":[],"mappings":";AAAA,wCAAwC"}
@@ -0,0 +1,7 @@
1
+ import type { Cursor as _apibara_node_v1alpha2_Cursor, Cursor__Output as _apibara_node_v1alpha2_Cursor__Output } from '../../../apibara/node/v1alpha2/Cursor';
2
+ export interface Invalidate {
3
+ 'cursor'?: (_apibara_node_v1alpha2_Cursor | null);
4
+ }
5
+ export interface Invalidate__Output {
6
+ 'cursor': (_apibara_node_v1alpha2_Cursor__Output | null);
7
+ }
@@ -0,0 +1,4 @@
1
+ "use strict";
2
+ // Original file: src/proto/stream.proto
3
+ Object.defineProperty(exports, "__esModule", { value: true });
4
+ //# sourceMappingURL=Invalidate.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Invalidate.js","sourceRoot":"","sources":["../../../../../src/proto/apibara/node/v1alpha2/Invalidate.ts"],"names":[],"mappings":";AAAA,wCAAwC"}
@@ -0,0 +1,16 @@
1
+ import type * as grpc from '@grpc/grpc-js';
2
+ import type { MethodDefinition } from '@grpc/proto-loader';
3
+ import type { StreamDataRequest as _apibara_node_v1alpha2_StreamDataRequest, StreamDataRequest__Output as _apibara_node_v1alpha2_StreamDataRequest__Output } from '../../../apibara/node/v1alpha2/StreamDataRequest';
4
+ import type { StreamDataResponse as _apibara_node_v1alpha2_StreamDataResponse, StreamDataResponse__Output as _apibara_node_v1alpha2_StreamDataResponse__Output } from '../../../apibara/node/v1alpha2/StreamDataResponse';
5
+ export interface StreamClient extends grpc.Client {
6
+ StreamData(metadata: grpc.Metadata, options?: grpc.CallOptions): grpc.ClientDuplexStream<_apibara_node_v1alpha2_StreamDataRequest, _apibara_node_v1alpha2_StreamDataResponse__Output>;
7
+ StreamData(options?: grpc.CallOptions): grpc.ClientDuplexStream<_apibara_node_v1alpha2_StreamDataRequest, _apibara_node_v1alpha2_StreamDataResponse__Output>;
8
+ streamData(metadata: grpc.Metadata, options?: grpc.CallOptions): grpc.ClientDuplexStream<_apibara_node_v1alpha2_StreamDataRequest, _apibara_node_v1alpha2_StreamDataResponse__Output>;
9
+ streamData(options?: grpc.CallOptions): grpc.ClientDuplexStream<_apibara_node_v1alpha2_StreamDataRequest, _apibara_node_v1alpha2_StreamDataResponse__Output>;
10
+ }
11
+ export interface StreamHandlers extends grpc.UntypedServiceImplementation {
12
+ StreamData: grpc.handleBidiStreamingCall<_apibara_node_v1alpha2_StreamDataRequest__Output, _apibara_node_v1alpha2_StreamDataResponse>;
13
+ }
14
+ export interface StreamDefinition extends grpc.ServiceDefinition {
15
+ StreamData: MethodDefinition<_apibara_node_v1alpha2_StreamDataRequest, _apibara_node_v1alpha2_StreamDataResponse, _apibara_node_v1alpha2_StreamDataRequest__Output, _apibara_node_v1alpha2_StreamDataResponse__Output>;
16
+ }
@@ -1,4 +1,4 @@
1
1
  "use strict";
2
- // Original file: null
2
+ // Original file: src/proto/stream.proto
3
3
  Object.defineProperty(exports, "__esModule", { value: true });
4
- //# sourceMappingURL=Any.js.map
4
+ //# sourceMappingURL=Stream.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Stream.js","sourceRoot":"","sources":["../../../../../src/proto/apibara/node/v1alpha2/Stream.ts"],"names":[],"mappings":";AAAA,wCAAwC"}