@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.
- package/dist/client.d.ts +116 -25
- package/dist/client.js +159 -35
- package/dist/client.js.map +1 -1
- package/dist/cursor.d.ts +22 -0
- package/dist/cursor.js +43 -0
- package/dist/cursor.js.map +1 -0
- package/dist/index.d.ts +3 -3
- package/dist/index.js +3 -16
- package/dist/index.js.map +1 -1
- package/dist/proto/apibara/node/v1alpha2/Cursor.d.ts +10 -0
- package/dist/proto/apibara/node/{v1alpha1/Node.js → v1alpha2/Cursor.js} +2 -2
- package/dist/proto/apibara/node/v1alpha2/Cursor.js.map +1 -0
- package/dist/proto/apibara/node/v1alpha2/Data.d.ts +15 -0
- package/dist/proto/apibara/node/{v1alpha1 → v1alpha2}/Data.js +1 -1
- package/dist/proto/apibara/node/v1alpha2/Data.js.map +1 -0
- package/dist/proto/apibara/node/v1alpha2/DataFinality.d.ts +6 -0
- package/dist/proto/apibara/node/v1alpha2/DataFinality.js +12 -0
- package/dist/proto/apibara/node/v1alpha2/DataFinality.js.map +1 -0
- package/dist/proto/apibara/node/{v1alpha1 → v1alpha2}/Heartbeat.d.ts +0 -0
- package/dist/proto/apibara/node/v1alpha2/Heartbeat.js +4 -0
- package/dist/proto/apibara/node/v1alpha2/Heartbeat.js.map +1 -0
- package/dist/proto/apibara/node/v1alpha2/Invalidate.d.ts +7 -0
- package/dist/proto/apibara/node/v1alpha2/Invalidate.js +4 -0
- package/dist/proto/apibara/node/v1alpha2/Invalidate.js.map +1 -0
- package/dist/proto/apibara/node/v1alpha2/Stream.d.ts +16 -0
- package/dist/proto/{google/protobuf/Any.js → apibara/node/v1alpha2/Stream.js} +2 -2
- package/dist/proto/apibara/node/v1alpha2/Stream.js.map +1 -0
- package/dist/proto/apibara/node/v1alpha2/StreamDataRequest.d.ts +24 -0
- package/dist/proto/apibara/node/v1alpha2/StreamDataRequest.js +4 -0
- package/dist/proto/apibara/node/v1alpha2/StreamDataRequest.js.map +1 -0
- package/dist/proto/apibara/node/v1alpha2/StreamDataResponse.d.ts +18 -0
- package/dist/proto/apibara/node/v1alpha2/StreamDataResponse.js +4 -0
- package/dist/proto/apibara/node/v1alpha2/StreamDataResponse.js.map +1 -0
- package/dist/proto/index.d.ts +1 -11
- package/dist/proto/index.js +13 -13
- package/dist/proto/index.js.map +1 -1
- package/dist/proto/stream.d.ts +25 -0
- package/dist/proto/{node.js → stream.js} +1 -1
- package/dist/proto/stream.js.map +1 -0
- package/dist/proto/stream.proto +76 -0
- package/dist/proto/testing.d.ts +5 -0
- package/dist/proto/testing.js +22 -0
- package/dist/proto/testing.js.map +1 -0
- package/dist/proto/v1alpha2.d.ts +11 -0
- package/dist/proto/v1alpha2.js +12 -0
- package/dist/proto/v1alpha2.js.map +1 -0
- package/dist/request.d.ts +36 -0
- package/dist/request.js +57 -0
- package/dist/request.js.map +1 -0
- package/dist/request.test.d.ts +1 -0
- package/dist/request.test.js +29 -0
- package/dist/request.test.js.map +1 -0
- package/package.json +7 -4
- package/src/client.ts +259 -44
- package/src/cursor.ts +39 -0
- package/src/index.ts +3 -3
- package/src/proto/apibara/node/v1alpha2/Cursor.ts +13 -0
- package/src/proto/apibara/node/v1alpha2/Data.ts +18 -0
- package/src/proto/apibara/node/v1alpha2/DataFinality.ts +8 -0
- package/src/proto/apibara/node/{v1alpha1 → v1alpha2}/Heartbeat.ts +1 -1
- package/src/proto/apibara/node/v1alpha2/Invalidate.ts +11 -0
- package/src/proto/apibara/node/v1alpha2/Stream.ts +23 -0
- package/src/proto/apibara/node/v1alpha2/StreamDataRequest.ts +27 -0
- package/src/proto/apibara/node/v1alpha2/StreamDataResponse.ts +22 -0
- package/src/proto/index.ts +1 -11
- package/src/proto/stream.proto +76 -0
- package/src/proto/stream.ts +26 -0
- package/src/proto/testing.ts +11 -0
- package/src/proto/v1alpha2.ts +19 -0
- package/src/request.test.ts +31 -0
- package/src/request.ts +64 -0
- package/dist/buffer.d.ts +0 -12
- package/dist/buffer.js +0 -22
- package/dist/buffer.js.map +0 -1
- package/dist/proto/apibara/node/v1alpha1/ConnectRequest.d.ts +0 -7
- package/dist/proto/apibara/node/v1alpha1/ConnectRequest.js +0 -4
- package/dist/proto/apibara/node/v1alpha1/ConnectRequest.js.map +0 -1
- package/dist/proto/apibara/node/v1alpha1/ConnectResponse.d.ts +0 -12
- package/dist/proto/apibara/node/v1alpha1/ConnectResponse.js +0 -4
- package/dist/proto/apibara/node/v1alpha1/ConnectResponse.js.map +0 -1
- package/dist/proto/apibara/node/v1alpha1/Data.d.ts +0 -10
- package/dist/proto/apibara/node/v1alpha1/Data.js.map +0 -1
- package/dist/proto/apibara/node/v1alpha1/Heartbeat.js +0 -4
- package/dist/proto/apibara/node/v1alpha1/Heartbeat.js.map +0 -1
- package/dist/proto/apibara/node/v1alpha1/InputSyncingStatus.d.ts +0 -9
- package/dist/proto/apibara/node/v1alpha1/InputSyncingStatus.js +0 -4
- package/dist/proto/apibara/node/v1alpha1/InputSyncingStatus.js.map +0 -1
- package/dist/proto/apibara/node/v1alpha1/Invalidate.d.ts +0 -7
- package/dist/proto/apibara/node/v1alpha1/Invalidate.js +0 -4
- package/dist/proto/apibara/node/v1alpha1/Invalidate.js.map +0 -1
- package/dist/proto/apibara/node/v1alpha1/Node.d.ts +0 -28
- package/dist/proto/apibara/node/v1alpha1/Node.js.map +0 -1
- package/dist/proto/apibara/node/v1alpha1/NotStartedStatus.d.ts +0 -4
- package/dist/proto/apibara/node/v1alpha1/NotStartedStatus.js +0 -4
- package/dist/proto/apibara/node/v1alpha1/NotStartedStatus.js.map +0 -1
- package/dist/proto/apibara/node/v1alpha1/StatusRequest.d.ts +0 -4
- package/dist/proto/apibara/node/v1alpha1/StatusRequest.js +0 -4
- package/dist/proto/apibara/node/v1alpha1/StatusRequest.js.map +0 -1
- package/dist/proto/apibara/node/v1alpha1/StatusResponse.d.ts +0 -15
- package/dist/proto/apibara/node/v1alpha1/StatusResponse.js +0 -4
- package/dist/proto/apibara/node/v1alpha1/StatusResponse.js.map +0 -1
- package/dist/proto/apibara/node/v1alpha1/StreamMessagesRequest.d.ts +0 -9
- package/dist/proto/apibara/node/v1alpha1/StreamMessagesRequest.js +0 -4
- package/dist/proto/apibara/node/v1alpha1/StreamMessagesRequest.js.map +0 -1
- package/dist/proto/apibara/node/v1alpha1/StreamMessagesResponse.d.ts +0 -17
- package/dist/proto/apibara/node/v1alpha1/StreamMessagesResponse.js +0 -4
- package/dist/proto/apibara/node/v1alpha1/StreamMessagesResponse.js.map +0 -1
- package/dist/proto/apibara/node/v1alpha1/SyncedStatus.d.ts +0 -7
- package/dist/proto/apibara/node/v1alpha1/SyncedStatus.js +0 -4
- package/dist/proto/apibara/node/v1alpha1/SyncedStatus.js.map +0 -1
- package/dist/proto/apibara/node/v1alpha1/SyncingStatus.d.ts +0 -10
- package/dist/proto/apibara/node/v1alpha1/SyncingStatus.js +0 -4
- package/dist/proto/apibara/node/v1alpha1/SyncingStatus.js.map +0 -1
- package/dist/proto/google/protobuf/Any.d.ts +0 -10
- package/dist/proto/google/protobuf/Any.js.map +0 -1
- package/dist/proto/node.d.ts +0 -36
- package/dist/proto/node.js.map +0 -1
- package/dist/proto/node.proto +0 -99
- package/dist/stream.d.ts +0 -32
- package/dist/stream.js +0 -95
- package/dist/stream.js.map +0 -1
- package/dist/stream.test.d.ts +0 -0
- package/dist/stream.test.js +0 -19
- package/dist/stream.test.js.map +0 -1
- package/src/buffer.ts +0 -17
- package/src/proto/apibara/node/v1alpha1/ConnectRequest.ts +0 -11
- package/src/proto/apibara/node/v1alpha1/ConnectResponse.ts +0 -16
- package/src/proto/apibara/node/v1alpha1/Data.ts +0 -14
- package/src/proto/apibara/node/v1alpha1/InputSyncingStatus.ts +0 -13
- package/src/proto/apibara/node/v1alpha1/Invalidate.ts +0 -11
- package/src/proto/apibara/node/v1alpha1/Node.ts +0 -37
- package/src/proto/apibara/node/v1alpha1/NotStartedStatus.ts +0 -8
- package/src/proto/apibara/node/v1alpha1/StatusRequest.ts +0 -8
- package/src/proto/apibara/node/v1alpha1/StatusResponse.ts +0 -19
- package/src/proto/apibara/node/v1alpha1/StreamMessagesRequest.ts +0 -13
- package/src/proto/apibara/node/v1alpha1/StreamMessagesResponse.ts +0 -21
- package/src/proto/apibara/node/v1alpha1/SyncedStatus.ts +0 -11
- package/src/proto/apibara/node/v1alpha1/SyncingStatus.ts +0 -14
- package/src/proto/google/protobuf/Any.ts +0 -13
- package/src/proto/node.proto +0 -99
- package/src/proto/node.ts +0 -37
- package/src/stream.test.ts +0 -9
- package/src/stream.ts +0 -127
package/dist/client.d.ts
CHANGED
|
@@ -1,28 +1,119 @@
|
|
|
1
|
-
import { ClientOptions,
|
|
2
|
-
import {
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
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
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
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
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
export declare
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
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.
|
|
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
|
|
16
|
-
const
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
const
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
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
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
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
|
-
|
|
39
|
-
|
|
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.
|
|
169
|
+
exports.defaultOnReconnect = defaultOnReconnect;
|
|
46
170
|
//# sourceMappingURL=client.js.map
|
package/dist/client.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"client.js","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"client.js","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"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"}
|
package/dist/cursor.d.ts
ADDED
|
@@ -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
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
|
-
|
|
17
|
+
__exportStar(require("./proto"), exports);
|
|
30
18
|
__exportStar(require("./client"), exports);
|
|
31
|
-
__exportStar(require("./
|
|
32
|
-
__exportStar(require("./
|
|
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":"
|
|
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
|
+
}
|
|
@@ -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
|
+
}
|
|
@@ -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,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"}
|
|
File without changes
|
|
@@ -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 @@
|
|
|
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
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Stream.js","sourceRoot":"","sources":["../../../../../src/proto/apibara/node/v1alpha2/Stream.ts"],"names":[],"mappings":";AAAA,wCAAwC"}
|