@apibara/protocol 0.4.5 → 0.4.7
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 +8 -1
- package/dist/client.js +6 -2
- package/dist/client.js.map +1 -1
- package/dist/proto/v1alpha2.js +4 -1
- package/dist/proto/v1alpha2.js.map +1 -1
- package/package.json +1 -1
- package/src/client.ts +16 -2
- package/src/proto/v1alpha2.ts +4 -1
package/dist/client.d.ts
CHANGED
|
@@ -65,6 +65,12 @@ export declare type StreamClientArgs = {
|
|
|
65
65
|
* By default uses `defaultOnReconnect`, which only reconnects on internal grpc errors.
|
|
66
66
|
*/
|
|
67
67
|
onReconnect?: OnReconnect;
|
|
68
|
+
/**
|
|
69
|
+
* Maximum time to wait for a message before timing out, in milliseconds.
|
|
70
|
+
*
|
|
71
|
+
* Defaults to 45 seconds.
|
|
72
|
+
*/
|
|
73
|
+
timeout?: number;
|
|
68
74
|
};
|
|
69
75
|
/**
|
|
70
76
|
* A client to configure and stream data.
|
|
@@ -75,6 +81,7 @@ export declare class StreamClient {
|
|
|
75
81
|
private stream_id;
|
|
76
82
|
private onReconnect;
|
|
77
83
|
private configuration?;
|
|
84
|
+
private timeout;
|
|
78
85
|
/**
|
|
79
86
|
* Create a new `StreamClient`.
|
|
80
87
|
*
|
|
@@ -94,7 +101,7 @@ export declare class StreamClient {
|
|
|
94
101
|
* }
|
|
95
102
|
* ```
|
|
96
103
|
*/
|
|
97
|
-
constructor({ url, credentials, clientOptions, token, onReconnect }: StreamClientArgs);
|
|
104
|
+
constructor({ url, credentials, clientOptions, token, onReconnect, timeout }: StreamClientArgs);
|
|
98
105
|
/**
|
|
99
106
|
* Async iterator over messages in the stream.
|
|
100
107
|
*/
|
package/dist/client.js
CHANGED
|
@@ -9,6 +9,8 @@ Object.defineProperty(exports, "ChannelCredentials", { enumerable: true, get: fu
|
|
|
9
9
|
const StreamService = proto_1.v1alpha2.protoDescriptor.apibara.node.v1alpha2.Stream;
|
|
10
10
|
// Server produces an heartbeat every 30 seconds, so we use 45 seconds as a timeout.
|
|
11
11
|
const MESSAGE_TIMEOUT_MS = 45000;
|
|
12
|
+
// Increase the default message length to 128 MiB.
|
|
13
|
+
const DEFAULT_MESSAGE_LENGTH = 128 * 1048576; // 128 MiB
|
|
12
14
|
/**
|
|
13
15
|
* A client to configure and stream data.
|
|
14
16
|
*/
|
|
@@ -32,7 +34,7 @@ class StreamClient {
|
|
|
32
34
|
* }
|
|
33
35
|
* ```
|
|
34
36
|
*/
|
|
35
|
-
constructor({ url, credentials, clientOptions, token, onReconnect }) {
|
|
37
|
+
constructor({ url, credentials, clientOptions, token, onReconnect, timeout }) {
|
|
36
38
|
const baseCredentials = credentials ?? grpc_js_1.ChannelCredentials.createSsl();
|
|
37
39
|
// only secure credentials can be composed with metadata generators.
|
|
38
40
|
const credentialsWithMetadata = baseCredentials._isSecure()
|
|
@@ -40,10 +42,12 @@ class StreamClient {
|
|
|
40
42
|
: baseCredentials;
|
|
41
43
|
this.inner = new StreamService(url, credentialsWithMetadata, {
|
|
42
44
|
'grpc.keepalive_timeout_ms': 3600000,
|
|
45
|
+
'grpc.max_receive_message_length': DEFAULT_MESSAGE_LENGTH,
|
|
43
46
|
...clientOptions,
|
|
44
47
|
});
|
|
45
48
|
this.stream_id = 0;
|
|
46
49
|
this.onReconnect = onReconnect ?? defaultOnReconnect;
|
|
50
|
+
this.timeout = timeout ?? MESSAGE_TIMEOUT_MS;
|
|
47
51
|
}
|
|
48
52
|
/**
|
|
49
53
|
* Async iterator over messages in the stream.
|
|
@@ -71,7 +75,7 @@ class StreamClient {
|
|
|
71
75
|
const timeout = new Promise((_, reject) => {
|
|
72
76
|
clock = setTimeout(() => {
|
|
73
77
|
reject(new Error('Stream timed out'));
|
|
74
|
-
},
|
|
78
|
+
}, this.timeout);
|
|
75
79
|
});
|
|
76
80
|
const message = (await Promise.race([streamIter.next(), timeout]));
|
|
77
81
|
const messageTyped = message.value;
|
package/dist/client.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"client.js","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":";;;AAAA,2CAOsB;AAEtB,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;AAE3E,oFAAoF;AACpF,MAAM,kBAAkB,GAAG,KAAM,CAAA;
|
|
1
|
+
{"version":3,"file":"client.js","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"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"}
|
package/dist/proto/v1alpha2.js
CHANGED
|
@@ -5,7 +5,10 @@ const grpc_js_1 = require("@grpc/grpc-js");
|
|
|
5
5
|
const proto_loader_1 = require("@grpc/proto-loader");
|
|
6
6
|
const __NODE_PROTO_PATH = __dirname + '/stream.proto';
|
|
7
7
|
// export definitions
|
|
8
|
-
exports.packageDefinition = (0, proto_loader_1.loadSync)(__NODE_PROTO_PATH, {
|
|
8
|
+
exports.packageDefinition = (0, proto_loader_1.loadSync)(__NODE_PROTO_PATH, {
|
|
9
|
+
oneofs: true,
|
|
10
|
+
defaults: true,
|
|
11
|
+
});
|
|
9
12
|
exports.protoDescriptor = (0, grpc_js_1.loadPackageDefinition)(exports.packageDefinition);
|
|
10
13
|
var DataFinality_1 = require("./apibara/node/v1alpha2/DataFinality");
|
|
11
14
|
Object.defineProperty(exports, "DataFinality", { enumerable: true, get: function () { return DataFinality_1.DataFinality; } });
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"v1alpha2.js","sourceRoot":"","sources":["../../src/proto/v1alpha2.ts"],"names":[],"mappings":";;;AAAA,2CAAqD;AACrD,qDAA6C;AAG7C,MAAM,iBAAiB,GAAG,SAAS,GAAG,eAAe,CAAA;AAErD,qBAAqB;AACR,QAAA,iBAAiB,GAAG,IAAA,uBAAQ,EAAC,iBAAiB,EAAE,EAAE,CAAC,CAAA;
|
|
1
|
+
{"version":3,"file":"v1alpha2.js","sourceRoot":"","sources":["../../src/proto/v1alpha2.ts"],"names":[],"mappings":";;;AAAA,2CAAqD;AACrD,qDAA6C;AAG7C,MAAM,iBAAiB,GAAG,SAAS,GAAG,eAAe,CAAA;AAErD,qBAAqB;AACR,QAAA,iBAAiB,GAAG,IAAA,uBAAQ,EAAC,iBAAiB,EAAE;IAC3D,MAAM,EAAE,IAAI;IACZ,QAAQ,EAAE,IAAI;CACf,CAAC,CAAA;AACW,QAAA,eAAe,GAAG,IAAA,+BAAqB,EAAC,yBAAiB,CAA6B,CAAA;AAKnG,qEAAmE;AAA1D,4GAAA,YAAY,OAAA"}
|
package/package.json
CHANGED
package/src/client.ts
CHANGED
|
@@ -17,6 +17,9 @@ const StreamService = v1alpha2.protoDescriptor.apibara.node.v1alpha2.Stream
|
|
|
17
17
|
// Server produces an heartbeat every 30 seconds, so we use 45 seconds as a timeout.
|
|
18
18
|
const MESSAGE_TIMEOUT_MS = 45_000
|
|
19
19
|
|
|
20
|
+
// Increase the default message length to 128 MiB.
|
|
21
|
+
const DEFAULT_MESSAGE_LENGTH = 128 * 1_048_576 // 128 MiB
|
|
22
|
+
|
|
20
23
|
export type DataStream = ClientDuplexStream<
|
|
21
24
|
v1alpha2.IStreamDataRequest,
|
|
22
25
|
v1alpha2.IStreamDataResponse
|
|
@@ -92,12 +95,20 @@ export type StreamClientArgs = {
|
|
|
92
95
|
* Authorization bearer token, used to authenticate with the server.
|
|
93
96
|
*/
|
|
94
97
|
token?: string
|
|
98
|
+
|
|
95
99
|
/**
|
|
96
100
|
* Callback to control reconnection after receiving an error from the stream.
|
|
97
101
|
*
|
|
98
102
|
* By default uses `defaultOnReconnect`, which only reconnects on internal grpc errors.
|
|
99
103
|
*/
|
|
100
104
|
onReconnect?: OnReconnect
|
|
105
|
+
|
|
106
|
+
/**
|
|
107
|
+
* Maximum time to wait for a message before timing out, in milliseconds.
|
|
108
|
+
*
|
|
109
|
+
* Defaults to 45 seconds.
|
|
110
|
+
*/
|
|
111
|
+
timeout?: number
|
|
101
112
|
}
|
|
102
113
|
|
|
103
114
|
/**
|
|
@@ -110,6 +121,7 @@ export class StreamClient {
|
|
|
110
121
|
private stream_id: number
|
|
111
122
|
private onReconnect: OnReconnect
|
|
112
123
|
private configuration?: ConfigureArgs
|
|
124
|
+
private timeout: number
|
|
113
125
|
|
|
114
126
|
/**
|
|
115
127
|
* Create a new `StreamClient`.
|
|
@@ -130,7 +142,7 @@ export class StreamClient {
|
|
|
130
142
|
* }
|
|
131
143
|
* ```
|
|
132
144
|
*/
|
|
133
|
-
constructor({ url, credentials, clientOptions, token, onReconnect }: StreamClientArgs) {
|
|
145
|
+
constructor({ url, credentials, clientOptions, token, onReconnect, timeout }: StreamClientArgs) {
|
|
134
146
|
const baseCredentials = credentials ?? ChannelCredentials.createSsl()
|
|
135
147
|
|
|
136
148
|
// only secure credentials can be composed with metadata generators.
|
|
@@ -142,10 +154,12 @@ export class StreamClient {
|
|
|
142
154
|
|
|
143
155
|
this.inner = new StreamService(url, credentialsWithMetadata, {
|
|
144
156
|
'grpc.keepalive_timeout_ms': 3_600_000,
|
|
157
|
+
'grpc.max_receive_message_length': DEFAULT_MESSAGE_LENGTH,
|
|
145
158
|
...clientOptions,
|
|
146
159
|
})
|
|
147
160
|
this.stream_id = 0
|
|
148
161
|
this.onReconnect = onReconnect ?? defaultOnReconnect
|
|
162
|
+
this.timeout = timeout ?? MESSAGE_TIMEOUT_MS
|
|
149
163
|
}
|
|
150
164
|
|
|
151
165
|
/**
|
|
@@ -177,7 +191,7 @@ export class StreamClient {
|
|
|
177
191
|
const timeout = new Promise((_, reject) => {
|
|
178
192
|
clock = setTimeout(() => {
|
|
179
193
|
reject(new Error('Stream timed out'))
|
|
180
|
-
},
|
|
194
|
+
}, this.timeout)
|
|
181
195
|
})
|
|
182
196
|
|
|
183
197
|
const message = <IteratorResult<v1alpha2.IStreamDataResponse>>(
|
package/src/proto/v1alpha2.ts
CHANGED
|
@@ -5,7 +5,10 @@ import { ProtoGrpcType } from './stream'
|
|
|
5
5
|
const __NODE_PROTO_PATH = __dirname + '/stream.proto'
|
|
6
6
|
|
|
7
7
|
// export definitions
|
|
8
|
-
export const packageDefinition = loadSync(__NODE_PROTO_PATH, {
|
|
8
|
+
export const packageDefinition = loadSync(__NODE_PROTO_PATH, {
|
|
9
|
+
oneofs: true,
|
|
10
|
+
defaults: true,
|
|
11
|
+
})
|
|
9
12
|
export const protoDescriptor = loadPackageDefinition(packageDefinition) as unknown as ProtoGrpcType
|
|
10
13
|
|
|
11
14
|
// re-export all types, use same naming convention as protobufjs
|