@apibara/protocol 0.4.7 → 0.4.9

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 (43) hide show
  1. package/dist/client.d.ts +9 -9
  2. package/dist/client.js +26 -14
  3. package/dist/client.js.map +1 -1
  4. package/dist/cursor.d.ts +15 -2
  5. package/dist/cursor.js +26 -2
  6. package/dist/cursor.js.map +1 -1
  7. package/dist/cursor.test.d.ts +1 -0
  8. package/dist/cursor.test.js +22 -0
  9. package/dist/cursor.test.js.map +1 -0
  10. package/dist/index.d.ts +4 -4
  11. package/dist/index.js.map +1 -1
  12. package/dist/proto/apibara/node/v1alpha2/Data.d.ts +3 -3
  13. package/dist/proto/apibara/node/v1alpha2/DataFinality.d.ts +8 -6
  14. package/dist/proto/apibara/node/v1alpha2/DataFinality.js +6 -7
  15. package/dist/proto/apibara/node/v1alpha2/DataFinality.js.map +1 -1
  16. package/dist/proto/apibara/node/v1alpha2/StreamDataRequest.d.ts +3 -3
  17. package/dist/proto/index.d.ts +1 -1
  18. package/dist/proto/index.js.map +1 -1
  19. package/dist/proto/stream.d.ts +1 -1
  20. package/dist/proto/testing.d.ts +1 -1
  21. package/dist/proto/testing.js +4 -2
  22. package/dist/proto/testing.js.map +1 -1
  23. package/dist/proto/v1alpha2.d.ts +9 -9
  24. package/dist/proto/v1alpha2.js +1 -1
  25. package/dist/proto/v1alpha2.js.map +1 -1
  26. package/dist/request.d.ts +2 -2
  27. package/dist/request.js +1 -0
  28. package/dist/request.js.map +1 -1
  29. package/dist/request.test.js +9 -10
  30. package/dist/request.test.js.map +1 -1
  31. package/package.json +4 -3
  32. package/src/client.ts +118 -97
  33. package/src/cursor.test.ts +21 -0
  34. package/src/cursor.ts +35 -7
  35. package/src/index.ts +4 -4
  36. package/src/proto/apibara/node/v1alpha2/Data.ts +3 -3
  37. package/src/proto/apibara/node/v1alpha2/DataFinality.ts +18 -6
  38. package/src/proto/apibara/node/v1alpha2/StreamDataRequest.ts +3 -3
  39. package/src/proto/index.ts +1 -1
  40. package/src/proto/testing.ts +5 -5
  41. package/src/proto/v1alpha2.ts +16 -14
  42. package/src/request.test.ts +19 -20
  43. package/src/request.ts +16 -16
package/dist/client.d.ts CHANGED
@@ -1,8 +1,8 @@
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 = {
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 type DataStream = ClientDuplexStream<v1alpha2.IStreamDataRequest, v1alpha2.IStreamDataResponse>;
5
+ export type ConfigureArgs = {
6
6
  /**
7
7
  * Stream filter, encoded.
8
8
  */
@@ -23,7 +23,7 @@ export declare type ConfigureArgs = {
23
23
  /**
24
24
  * Reconnect callback return value.
25
25
  */
26
- export declare type OnReconnectResult = {
26
+ export type OnReconnectResult = {
27
27
  /**
28
28
  * If `true`, reconnects to the stream.
29
29
  */
@@ -39,8 +39,8 @@ export declare type OnReconnectResult = {
39
39
  /**
40
40
  * Reconnect callback.
41
41
  */
42
- export declare type OnReconnect = (err: StatusObject, retryCount: number) => Promise<OnReconnectResult> | OnReconnectResult;
43
- export declare type StreamClientArgs = {
42
+ export type OnReconnect = (err: StatusObject, retryCount: number) => Promise<OnReconnectResult> | OnReconnectResult;
43
+ export type StreamClientArgs = {
44
44
  /**
45
45
  * The stream url.
46
46
  */
@@ -101,7 +101,7 @@ export declare class StreamClient {
101
101
  * }
102
102
  * ```
103
103
  */
104
- constructor({ url, credentials, clientOptions, token, onReconnect, timeout }: StreamClientArgs);
104
+ constructor({ url, credentials, clientOptions, token, onReconnect, timeout, }: StreamClientArgs);
105
105
  /**
106
106
  * Async iterator over messages in the stream.
107
107
  */
package/dist/client.js CHANGED
@@ -15,6 +15,12 @@ const DEFAULT_MESSAGE_LENGTH = 128 * 1048576; // 128 MiB
15
15
  * A client to configure and stream data.
16
16
  */
17
17
  class StreamClient {
18
+ inner;
19
+ stream;
20
+ stream_id;
21
+ onReconnect;
22
+ configuration;
23
+ timeout;
18
24
  /**
19
25
  * Create a new `StreamClient`.
20
26
  *
@@ -34,15 +40,15 @@ class StreamClient {
34
40
  * }
35
41
  * ```
36
42
  */
37
- constructor({ url, credentials, clientOptions, token, onReconnect, timeout }) {
43
+ constructor({ url, credentials, clientOptions, token, onReconnect, timeout, }) {
38
44
  const baseCredentials = credentials ?? grpc_js_1.ChannelCredentials.createSsl();
39
45
  // only secure credentials can be composed with metadata generators.
40
46
  const credentialsWithMetadata = baseCredentials._isSecure()
41
47
  ? baseCredentials.compose(grpc_js_1.CallCredentials.createFromMetadataGenerator(createMetadataGenerator(token)))
42
48
  : baseCredentials;
43
49
  this.inner = new StreamService(url, credentialsWithMetadata, {
44
- 'grpc.keepalive_timeout_ms': 3600000,
45
- 'grpc.max_receive_message_length': DEFAULT_MESSAGE_LENGTH,
50
+ "grpc.keepalive_timeout_ms": 3600000,
51
+ "grpc.max_receive_message_length": DEFAULT_MESSAGE_LENGTH,
46
52
  ...clientOptions,
47
53
  });
48
54
  this.stream_id = 0;
@@ -54,7 +60,7 @@ class StreamClient {
54
60
  */
55
61
  async *[Symbol.asyncIterator]() {
56
62
  if (!this.configuration) {
57
- throw new Error('StreamClient must be configured');
63
+ throw new Error("StreamClient must be configured");
58
64
  }
59
65
  // connect if not connected.
60
66
  if (!this.stream) {
@@ -68,20 +74,23 @@ class StreamClient {
68
74
  try {
69
75
  // this check is to make ts happy
70
76
  if (!this.stream) {
71
- throw new Error('Stream disconnected unexpectedly');
77
+ throw new Error("Stream disconnected unexpectedly");
72
78
  }
73
79
  const streamIter = this.stream[Symbol.asyncIterator]();
74
80
  while (true) {
75
81
  const timeout = new Promise((_, reject) => {
76
82
  clock = setTimeout(() => {
77
- reject(new Error('Stream timed out'));
83
+ reject(new Error("Stream timed out"));
78
84
  }, this.timeout);
79
85
  });
80
86
  const message = (await Promise.race([streamIter.next(), timeout]));
81
87
  const messageTyped = message.value;
82
88
  clearTimeout(clock);
83
- // only return messages if they are with the most recently configured stream
84
- if (messageTyped.streamId?.toString() == this.stream_id.toString()) {
89
+ if (messageTyped.message === "heartbeat") {
90
+ yield messageTyped;
91
+ }
92
+ else if (messageTyped.streamId?.toString() === this.stream_id.toString()) {
93
+ // only return messages if they are with the most recently configured stream
85
94
  // reset retry count on new message
86
95
  retryCount = 1;
87
96
  // keep cursor updated for use when reconnecting
@@ -94,12 +103,13 @@ class StreamClient {
94
103
  yield messageTyped;
95
104
  }
96
105
  }
106
+ // rome-ignore lint: any is needed for catch
97
107
  }
98
108
  catch (err) {
99
109
  clearTimeout(clock);
100
- const isGrpcError = err.hasOwnProperty('code') &&
101
- err.hasOwnProperty('details') &&
102
- err.hasOwnProperty('metadata');
110
+ const isGrpcError = Object.hasOwn(err, "code") &&
111
+ Object.hasOwn(err, "details") &&
112
+ Object.hasOwn(err, "metadata");
103
113
  // non-grpc error, so just bubble it up
104
114
  if (!isGrpcError) {
105
115
  throw err;
@@ -141,7 +151,9 @@ class StreamClient {
141
151
  this.stream_id++;
142
152
  // only send configuration if connected
143
153
  if (this.stream) {
144
- const builder = request_1.StreamDataRequest.create().withStreamId(this.stream_id).withFilter(filter);
154
+ const builder = request_1.StreamDataRequest.create()
155
+ .withStreamId(this.stream_id)
156
+ .withFilter(filter);
145
157
  if (batchSize) {
146
158
  builder.withBatchSize(batchSize);
147
159
  }
@@ -177,7 +189,7 @@ exports.neverReconnect = neverReconnect;
177
189
  * This callback awaits for `1s * retryCount` before returning.
178
190
  */
179
191
  async function defaultOnReconnect(err, retryCount) {
180
- if (err.code != 13) {
192
+ if (err.code !== 13) {
181
193
  return {
182
194
  reconnect: false,
183
195
  };
@@ -194,7 +206,7 @@ exports.defaultOnReconnect = defaultOnReconnect;
194
206
  function createMetadataGenerator(token) {
195
207
  const metadata = new grpc_js_1.Metadata();
196
208
  if (token) {
197
- metadata.add('authorization', `bearer ${token}`);
209
+ metadata.add("authorization", `bearer ${token}`);
198
210
  }
199
211
  return (_options, cb) => {
200
212
  cb(null, metadata);
@@ -1 +1 @@
1
- {"version":3,"file":"client.js","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"client.js","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":";;;AAAA,2CAOuB;AAEvB,mCAAmC;AACnC,uCAA8C;AAE9C,yCAAiE;AAAxD,6GAAA,kBAAkB,OAAA;AAE3B,MAAM,aAAa,GAAG,gBAAQ,CAAC,eAAe,CAAC,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC;AAE5E,oFAAoF;AACpF,MAAM,kBAAkB,GAAG,KAAM,CAAC;AAElC,kDAAkD;AAClD,MAAM,sBAAsB,GAAG,GAAG,GAAG,OAAS,CAAC,CAAC,UAAU;AA6F1D;;GAEG;AACH,MAAa,YAAY;IACN,KAAK,CAAwB;IAEtC,MAAM,CAAc;IACpB,SAAS,CAAS;IAClB,WAAW,CAAc;IACzB,aAAa,CAAiB;IAC9B,OAAO,CAAS;IAExB;;;;;;;;;;;;;;;;;;OAkBG;IACH,YAAY,EACV,GAAG,EACH,WAAW,EACX,aAAa,EACb,KAAK,EACL,WAAW,EACX,OAAO,GACU;QACjB,MAAM,eAAe,GAAG,WAAW,IAAI,4BAAkB,CAAC,SAAS,EAAE,CAAC;QAEtE,oEAAoE;QACpE,MAAM,uBAAuB,GAAG,eAAe,CAAC,SAAS,EAAE;YACzD,CAAC,CAAC,eAAe,CAAC,OAAO,CACrB,yBAAe,CAAC,2BAA2B,CACzC,uBAAuB,CAAC,KAAK,CAAC,CAC/B,CACF;YACH,CAAC,CAAC,eAAe,CAAC;QAEpB,IAAI,CAAC,KAAK,GAAG,IAAI,aAAa,CAAC,GAAG,EAAE,uBAAuB,EAAE;YAC3D,2BAA2B,EAAE,OAAS;YACtC,iCAAiC,EAAE,sBAAsB;YACzD,GAAG,aAAa;SACjB,CAAC,CAAC;QACH,IAAI,CAAC,SAAS,GAAG,CAAC,CAAC;QACnB,IAAI,CAAC,WAAW,GAAG,WAAW,IAAI,kBAAkB,CAAC;QACrD,IAAI,CAAC,OAAO,GAAG,OAAO,IAAI,kBAAkB,CAAC;IAC/C,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,CAAC;SACpD;QAED,4BAA4B;QAC5B,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE;YAChB,IAAI,CAAC,OAAO,EAAE,CAAC;YACf,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;SACrC;QAED,OAAO,IAAI,EAAE;YACX,IAAI,UAAU,GAAG,CAAC,CAAC;YACnB,IAAI,MAAM,GAAG,IAAI,CAAC;YAClB,IAAI,KAAK,CAAC;YACV,IAAI;gBACF,iCAAiC;gBACjC,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE;oBAChB,MAAM,IAAI,KAAK,CAAC,kCAAkC,CAAC,CAAC;iBACrD;gBAED,MAAM,UAAU,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,aAAa,CAAC,EAAE,CAAC;gBACvD,OAAO,IAAI,EAAE;oBACX,MAAM,OAAO,GAAG,IAAI,OAAO,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,EAAE;wBACxC,KAAK,GAAG,UAAU,CAAC,GAAG,EAAE;4BACtB,MAAM,CAAC,IAAI,KAAK,CAAC,kBAAkB,CAAC,CAAC,CAAC;wBACxC,CAAC,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;oBACnB,CAAC,CAAC,CAAC;oBAEH,MAAM,OAAO,GAAiD,CAC5D,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC,UAAU,CAAC,IAAI,EAAE,EAAE,OAAO,CAAC,CAAC,CACjD,CAAC;oBACF,MAAM,YAAY,GAAG,OAAO,CAAC,KAAqC,CAAC;oBAEnE,YAAY,CAAC,KAAK,CAAC,CAAC;oBAEpB,IAAI,YAAY,CAAC,OAAO,KAAK,WAAW,EAAE;wBACxC,MAAM,YAAY,CAAC;qBACpB;yBAAM,IACL,YAAY,CAAC,QAAQ,EAAE,QAAQ,EAAE,KAAK,IAAI,CAAC,SAAS,CAAC,QAAQ,EAAE,EAC/D;wBACA,4EAA4E;wBAC5E,mCAAmC;wBACnC,UAAU,GAAG,CAAC,CAAC;wBAEf,gDAAgD;wBAChD,IAAI,YAAY,CAAC,IAAI,EAAE;4BACrB,MAAM,GAAG,YAAY,CAAC,IAAI,CAAC,MAAM,CAAC;yBACnC;6BAAM,IAAI,YAAY,CAAC,UAAU,EAAE;4BAClC,MAAM,GAAG,YAAY,CAAC,UAAU,CAAC,MAAM,CAAC;yBACzC;wBAED,MAAM,YAAY,CAAC;qBACpB;iBACF;gBACD,4CAA4C;aAC7C;YAAC,OAAO,GAAQ,EAAE;gBACjB,YAAY,CAAC,KAAK,CAAC,CAAC;gBAEpB,MAAM,WAAW,GACf,MAAM,CAAC,MAAM,CAAC,GAAG,EAAE,MAAM,CAAC;oBAC1B,MAAM,CAAC,MAAM,CAAC,GAAG,EAAE,SAAS,CAAC;oBAC7B,MAAM,CAAC,MAAM,CAAC,GAAG,EAAE,UAAU,CAAC,CAAC;gBAEjC,uCAAuC;gBACvC,IAAI,CAAC,WAAW,EAAE;oBAChB,MAAM,GAAG,CAAC;iBACX;gBAED,MAAM,EAAE,SAAS,EAAE,IAAI,EAAE,GAAG,MAAM,OAAO,CAAC,OAAO,CAC/C,IAAI,CAAC,WAAW,CAAC,GAAG,EAAE,UAAU,CAAC,CAClC,CAAC;gBACF,UAAU,IAAI,CAAC,CAAC;gBAChB,IAAI,CAAC,SAAS,EAAE;oBACd,MAAM,GAAG,CAAC;iBACX;gBAED,IAAI,CAAC,OAAO,EAAE,CAAC;gBAEf,IAAI,IAAI,EAAE;oBACR,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;iBACvB;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,CAAC;oBACF,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,CAAC;iBAChC;aACF;SACF;IACH,CAAC;IAED;;;;;;OAMG;IACH,SAAS,CAAC,IAAmB;QAC3B,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC;QAC1B,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;IACxB,CAAC;IAEO,UAAU,CAAC,IAAmB;QACpC,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,GAAG,IAAI,CAAC;QACrD,IAAI,CAAC,SAAS,EAAE,CAAC;QAEjB,uCAAuC;QACvC,IAAI,IAAI,CAAC,MAAM,EAAE;YACf,MAAM,OAAO,GAAG,2BAAiB,CAAC,MAAM,EAAE;iBACvC,YAAY,CAAC,IAAI,CAAC,SAAS,CAAC;iBAC5B,UAAU,CAAC,MAAM,CAAC,CAAC;YAEtB,IAAI,SAAS,EAAE;gBACb,OAAO,CAAC,aAAa,CAAC,SAAS,CAAC,CAAC;aAClC;YACD,IAAI,MAAM,EAAE;gBACV,OAAO,CAAC,kBAAkB,CAAC,MAAM,CAAC,CAAC;aACpC;YACD,IAAI,QAAQ,EAAE;gBACZ,OAAO,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC;aAChC;YAED,MAAM,OAAO,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC;YACjC,IAAI,CAAC,MAAM,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC;SAC7B;IACH,CAAC;IAEO,OAAO;QACb,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,UAAU,EAAE,CAAC;QACtC,OAAO,IAAI,CAAC;IACd,CAAC;CACF;AAnMD,oCAmMC;AAED;;GAEG;AACH,SAAgB,cAAc,CAC5B,IAAkB,EAClB,WAAmB;IAEnB,OAAO;QACL,SAAS,EAAE,KAAK;KACjB,CAAC;AACJ,CAAC;AAPD,wCAOC;AAED;;;;;GAKG;AACI,KAAK,UAAU,kBAAkB,CACtC,GAAiB,EACjB,UAAkB;IAElB,IAAI,GAAG,CAAC,IAAI,KAAK,EAAE,EAAE;QACnB,OAAO;YACL,SAAS,EAAE,KAAK;SACjB,CAAC;KACH;IAED,MAAM,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,UAAU,CAAC,OAAO,EAAE,UAAU,GAAG,IAAI,CAAC,CAAC,CAAC;IACvE,OAAO;QACL,SAAS,EAAE,UAAU,GAAG,CAAC;KAC1B,CAAC;AACJ,CAAC;AAdD,gDAcC;AAED;;GAEG;AACH,SAAS,uBAAuB,CAAC,KAAc;IAC7C,MAAM,QAAQ,GAAG,IAAI,kBAAQ,EAAE,CAAC;IAChC,IAAI,KAAK,EAAE;QACT,QAAQ,CAAC,GAAG,CAAC,eAAe,EAAE,UAAU,KAAK,EAAE,CAAC,CAAC;KAClD;IAED,OAAO,CAAC,QAAQ,EAAE,EAAE,EAAE,EAAE;QACtB,EAAE,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;IACrB,CAAC,CAAC;AACJ,CAAC"}
package/dist/cursor.d.ts CHANGED
@@ -1,5 +1,5 @@
1
- import Long from 'long';
2
- import { ICursor } from './proto/v1alpha2';
1
+ import Long from "long";
2
+ import { ICursor } from "./proto/v1alpha2";
3
3
  export declare const Cursor: {
4
4
  /**
5
5
  * Creates a new cursor with only the `orderKey` set.
@@ -15,8 +15,21 @@ export declare const Cursor: {
15
15
  * been invalidated.
16
16
  */
17
17
  create: (order: string | number | Long, unique: Uint8Array) => ICursor;
18
+ /**
19
+ * Creates a new cursor from a plain Javascript object.
20
+ */
21
+ fromObject({ orderKey, uniqueKey }: ReturnType<typeof _toObject>): ICursor;
18
22
  /**
19
23
  * Returns the cursor string representation.
20
24
  */
21
25
  toString: (cursor?: ICursor | null) => string | undefined;
26
+ /**
27
+ * Returns the cursor as plain Javascript object.
28
+ */
29
+ toObject: (cursor?: ICursor | null) => ReturnType<typeof _toObject> | undefined;
30
+ };
31
+ declare function _toObject(cursor: ICursor): {
32
+ orderKey: string;
33
+ uniqueKey: string;
22
34
  };
35
+ export {};
package/dist/cursor.js CHANGED
@@ -30,14 +30,38 @@ exports.Cursor = {
30
30
  uniqueKey: unique,
31
31
  };
32
32
  },
33
+ /**
34
+ * Creates a new cursor from a plain Javascript object.
35
+ */
36
+ fromObject({ orderKey, uniqueKey }) {
37
+ return {
38
+ orderKey: long_1.default.fromString(orderKey),
39
+ uniqueKey: Buffer.from(uniqueKey.slice(2), "hex"),
40
+ };
41
+ },
33
42
  /**
34
43
  * Returns the cursor string representation.
35
44
  */
36
45
  toString: (cursor) => {
37
46
  if (!cursor)
38
47
  return;
39
- let hash = Buffer.from(cursor.uniqueKey).toString('hex');
40
- return `${cursor.orderKey.toString()}/0x${hash}`;
48
+ const { orderKey, uniqueKey } = _toObject(cursor);
49
+ return `${orderKey}/${uniqueKey}`;
50
+ },
51
+ /**
52
+ * Returns the cursor as plain Javascript object.
53
+ */
54
+ toObject: (cursor) => {
55
+ if (!cursor)
56
+ return;
57
+ return _toObject(cursor);
41
58
  },
42
59
  };
60
+ function _toObject(cursor) {
61
+ const hash = Buffer.from(cursor.uniqueKey).toString("hex");
62
+ return {
63
+ orderKey: cursor.orderKey.toString(),
64
+ uniqueKey: `0x${hash}`,
65
+ };
66
+ }
43
67
  //# sourceMappingURL=cursor.js.map
@@ -1 +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"}
1
+ {"version":3,"file":"cursor.js","sourceRoot":"","sources":["../src/cursor.ts"],"names":[],"mappings":";;;;;;AAAA,gDAAwB;AAGX,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,CAAC;IACJ,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,CAAC;IACJ,CAAC;IAED;;OAEG;IACH,UAAU,CAAC,EAAE,QAAQ,EAAE,SAAS,EAAgC;QAC9D,OAAO;YACL,QAAQ,EAAE,cAAI,CAAC,UAAU,CAAC,QAAQ,CAAC;YACnC,SAAS,EAAE,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC;SAClD,CAAC;IACJ,CAAC;IAED;;OAEG;IACH,QAAQ,EAAE,CAAC,MAAuB,EAAsB,EAAE;QACxD,IAAI,CAAC,MAAM;YAAE,OAAO;QACpB,MAAM,EAAE,QAAQ,EAAE,SAAS,EAAE,GAAG,SAAS,CAAC,MAAM,CAAC,CAAC;QAClD,OAAO,GAAG,QAAQ,IAAI,SAAS,EAAE,CAAC;IACpC,CAAC;IAED;;OAEG;IACH,QAAQ,EAAE,CACR,MAAuB,EACmB,EAAE;QAC5C,IAAI,CAAC,MAAM;YAAE,OAAO;QACpB,OAAO,SAAS,CAAC,MAAM,CAAC,CAAC;IAC3B,CAAC;CACF,CAAC;AAEF,SAAS,SAAS,CAAC,MAAe;IAChC,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;IAC3D,OAAO;QACL,QAAQ,EAAE,MAAM,CAAC,QAAQ,CAAC,QAAQ,EAAE;QACpC,SAAS,EAAE,KAAK,IAAI,EAAE;KACvB,CAAC;AACJ,CAAC"}
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,22 @@
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
+ const long_1 = __importDefault(require("long"));
7
+ const cursor_1 = require("./cursor");
8
+ describe("Cursor", () => {
9
+ it("can be converted to and from javascript objects", () => {
10
+ const cursorObject = {
11
+ orderKey: "1234",
12
+ uniqueKey: "0x05dd5e4f023a81a8daaf86b8bf3967b04276a89c81b840e8e55d658323854ad7",
13
+ };
14
+ const cursor = cursor_1.Cursor.fromObject(cursorObject);
15
+ expect(cursor.orderKey).toEqual(long_1.default.fromNumber(1234));
16
+ expect(cursor.uniqueKey).toHaveLength(32);
17
+ const back = cursor_1.Cursor.toObject(cursor);
18
+ expect(back?.orderKey).toEqual(cursorObject.orderKey);
19
+ expect(back?.uniqueKey).toEqual(cursorObject.uniqueKey);
20
+ });
21
+ });
22
+ //# sourceMappingURL=cursor.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cursor.test.js","sourceRoot":"","sources":["../src/cursor.test.ts"],"names":[],"mappings":";;;;;AAAA,gDAAwB;AACxB,qCAAkC;AAElC,QAAQ,CAAC,QAAQ,EAAE,GAAG,EAAE;IACtB,EAAE,CAAC,iDAAiD,EAAE,GAAG,EAAE;QACzD,MAAM,YAAY,GAAG;YACnB,QAAQ,EAAE,MAAM;YAChB,SAAS,EACP,oEAAoE;SACvE,CAAC;QAEF,MAAM,MAAM,GAAG,eAAM,CAAC,UAAU,CAAC,YAAY,CAAC,CAAC;QAC/C,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,OAAO,CAAC,cAAI,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC;QACvD,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,YAAY,CAAC,EAAE,CAAC,CAAC;QAE1C,MAAM,IAAI,GAAG,eAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;QAErC,MAAM,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC,OAAO,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC;QACtD,MAAM,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC,OAAO,CAAC,YAAY,CAAC,SAAS,CAAC,CAAC;IAC1D,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
package/dist/index.d.ts CHANGED
@@ -1,4 +1,4 @@
1
- export * from './proto';
2
- export * from './client';
3
- export * from './request';
4
- export * from './cursor';
1
+ export * from "./proto";
2
+ export * from "./client";
3
+ export * from "./request";
4
+ export * from "./cursor";
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,0CAAuB;AACvB,2CAAwB;AACxB,4CAAyB;AACzB,2CAAwB"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,0CAAwB;AACxB,2CAAyB;AACzB,4CAA0B;AAC1B,2CAAyB"}
@@ -1,15 +1,15 @@
1
1
  /// <reference types="node" />
2
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';
3
+ import type { DataFinality as _apibara_node_v1alpha2_DataFinality, DataFinality__Output as _apibara_node_v1alpha2_DataFinality__Output } from '../../../apibara/node/v1alpha2/DataFinality';
4
4
  export interface Data {
5
5
  'endCursor'?: (_apibara_node_v1alpha2_Cursor | null);
6
- 'finality'?: (_apibara_node_v1alpha2_DataFinality | keyof typeof _apibara_node_v1alpha2_DataFinality);
6
+ 'finality'?: (_apibara_node_v1alpha2_DataFinality);
7
7
  'data'?: (Buffer | Uint8Array | string)[];
8
8
  'cursor'?: (_apibara_node_v1alpha2_Cursor | null);
9
9
  }
10
10
  export interface Data__Output {
11
11
  'endCursor': (_apibara_node_v1alpha2_Cursor__Output | null);
12
- 'finality': (keyof typeof _apibara_node_v1alpha2_DataFinality);
12
+ 'finality': (_apibara_node_v1alpha2_DataFinality__Output);
13
13
  'data': (Uint8Array)[];
14
14
  'cursor': (_apibara_node_v1alpha2_Cursor__Output | null);
15
15
  }
@@ -1,6 +1,8 @@
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
- }
1
+ export declare const DataFinality: {
2
+ readonly DATA_STATUS_UNKNOWN: "DATA_STATUS_UNKNOWN";
3
+ readonly DATA_STATUS_PENDING: "DATA_STATUS_PENDING";
4
+ readonly DATA_STATUS_ACCEPTED: "DATA_STATUS_ACCEPTED";
5
+ readonly DATA_STATUS_FINALIZED: "DATA_STATUS_FINALIZED";
6
+ };
7
+ export type DataFinality = 'DATA_STATUS_UNKNOWN' | 0 | 'DATA_STATUS_PENDING' | 1 | 'DATA_STATUS_ACCEPTED' | 2 | 'DATA_STATUS_FINALIZED' | 3;
8
+ export type DataFinality__Output = typeof DataFinality[keyof typeof DataFinality];
@@ -2,11 +2,10 @@
2
2
  // Original file: src/proto/stream.proto
3
3
  Object.defineProperty(exports, "__esModule", { value: true });
4
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 = {}));
5
+ exports.DataFinality = {
6
+ DATA_STATUS_UNKNOWN: 'DATA_STATUS_UNKNOWN',
7
+ DATA_STATUS_PENDING: 'DATA_STATUS_PENDING',
8
+ DATA_STATUS_ACCEPTED: 'DATA_STATUS_ACCEPTED',
9
+ DATA_STATUS_FINALIZED: 'DATA_STATUS_FINALIZED',
10
+ };
12
11
  //# sourceMappingURL=DataFinality.js.map
@@ -1 +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"}
1
+ {"version":3,"file":"DataFinality.js","sourceRoot":"","sources":["../../../../../src/proto/apibara/node/v1alpha2/DataFinality.ts"],"names":[],"mappings":";AAAA,wCAAwC;;;AAE3B,QAAA,YAAY,GAAG;IAC1B,mBAAmB,EAAE,qBAAqB;IAC1C,mBAAmB,EAAE,qBAAqB;IAC1C,oBAAoB,EAAE,sBAAsB;IAC5C,qBAAqB,EAAE,uBAAuB;CACtC,CAAC"}
@@ -1,12 +1,12 @@
1
1
  /// <reference types="node" />
2
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';
3
+ import type { DataFinality as _apibara_node_v1alpha2_DataFinality, DataFinality__Output as _apibara_node_v1alpha2_DataFinality__Output } from '../../../apibara/node/v1alpha2/DataFinality';
4
4
  import type { Long } from '@grpc/proto-loader';
5
5
  export interface StreamDataRequest {
6
6
  'streamId'?: (number | string | Long);
7
7
  'batchSize'?: (number | string | Long);
8
8
  'startingCursor'?: (_apibara_node_v1alpha2_Cursor | null);
9
- 'finality'?: (_apibara_node_v1alpha2_DataFinality | keyof typeof _apibara_node_v1alpha2_DataFinality);
9
+ 'finality'?: (_apibara_node_v1alpha2_DataFinality);
10
10
  'filter'?: (Buffer | Uint8Array | string);
11
11
  '_streamId'?: "streamId";
12
12
  '_batchSize'?: "batchSize";
@@ -16,7 +16,7 @@ export interface StreamDataRequest__Output {
16
16
  'streamId'?: (Long);
17
17
  'batchSize'?: (Long);
18
18
  'startingCursor': (_apibara_node_v1alpha2_Cursor__Output | null);
19
- 'finality'?: (keyof typeof _apibara_node_v1alpha2_DataFinality);
19
+ 'finality'?: (_apibara_node_v1alpha2_DataFinality__Output);
20
20
  'filter': (Uint8Array);
21
21
  '_streamId': "streamId";
22
22
  '_batchSize': "batchSize";
@@ -1 +1 @@
1
- export * as v1alpha2 from './v1alpha2';
1
+ export * as v1alpha2 from "./v1alpha2";
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/proto/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,uDAAsC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/proto/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,uDAAuC"}
@@ -1,7 +1,7 @@
1
1
  import type * as grpc from '@grpc/grpc-js';
2
2
  import type { EnumTypeDefinition, MessageTypeDefinition } from '@grpc/proto-loader';
3
3
  import type { StreamClient as _apibara_node_v1alpha2_StreamClient, StreamDefinition as _apibara_node_v1alpha2_StreamDefinition } from './apibara/node/v1alpha2/Stream';
4
- declare type SubtypeConstructor<Constructor extends new (...args: any) => any, Subtype> = {
4
+ type SubtypeConstructor<Constructor extends new (...args: any) => any, Subtype> = {
5
5
  new (...args: ConstructorParameters<Constructor>): Subtype;
6
6
  };
7
7
  export interface ProtoGrpcType {
@@ -1,4 +1,4 @@
1
- import { Message } from 'protobufjs/light';
1
+ import { Message } from "protobufjs/light";
2
2
  export declare class TestFilter extends Message<TestFilter> {
3
3
  num: number;
4
4
  text: string;
@@ -9,13 +9,15 @@ Object.defineProperty(exports, "__esModule", { value: true });
9
9
  exports.TestFilter = void 0;
10
10
  const light_1 = require("protobufjs/light");
11
11
  class TestFilter extends light_1.Message {
12
+ num;
13
+ text;
12
14
  }
13
15
  __decorate([
14
- light_1.Field.d(1, 'uint64')
16
+ light_1.Field.d(1, "uint64")
15
17
  // @ts-ignore
16
18
  ], TestFilter.prototype, "num", void 0);
17
19
  __decorate([
18
- light_1.Field.d(2, 'string')
20
+ light_1.Field.d(2, "string")
19
21
  // @ts-ignore
20
22
  ], TestFilter.prototype, "text", void 0);
21
23
  exports.TestFilter = TestFilter;
@@ -1 +1 @@
1
- {"version":3,"file":"testing.js","sourceRoot":"","sources":["../../src/proto/testing.ts"],"names":[],"mappings":";;;;;;;;;AAAA,4CAAiD;AAEjD,MAAa,UAAW,SAAQ,eAAmB;CAQlD;AALC;IAFC,aAAK,CAAC,CAAC,CAAC,CAAC,EAAE,QAAQ,CAAC;IACrB,aAAa;uCACK;AAIlB;IAFC,aAAK,CAAC,CAAC,CAAC,CAAC,EAAE,QAAQ,CAAC;IACrB,aAAa;wCACM;AAPrB,gCAQC"}
1
+ {"version":3,"file":"testing.js","sourceRoot":"","sources":["../../src/proto/testing.ts"],"names":[],"mappings":";;;;;;;;;AAAA,4CAAkD;AAElD,MAAa,UAAW,SAAQ,eAAmB;IAG1C,GAAG,CAAS;IAIZ,IAAI,CAAS;CACrB;AALC;IAFC,aAAK,CAAC,CAAC,CAAC,CAAC,EAAE,QAAQ,CAAC;IACrB,aAAa;uCACM;AAInB;IAFC,aAAK,CAAC,CAAC,CAAC,CAAC,EAAE,QAAQ,CAAC;IACrB,aAAa;wCACO;AAPtB,gCAQC"}
@@ -1,11 +1,11 @@
1
- import { ProtoGrpcType } from './stream';
1
+ import { ProtoGrpcType } from "./stream";
2
2
  export declare const packageDefinition: import("@grpc/proto-loader").PackageDefinition;
3
3
  export declare const protoDescriptor: ProtoGrpcType;
4
- export { Cursor__Output as ICursor } from './apibara/node/v1alpha2/Cursor';
5
- export { Data__Output as IData } from './apibara/node/v1alpha2/Data';
6
- export { DataFinality } from './apibara/node/v1alpha2/DataFinality';
7
- export { Heartbeat__Output as IHeartbeat } from './apibara/node/v1alpha2/Heartbeat';
8
- export { Invalidate__Output as IInvalidate } from './apibara/node/v1alpha2/Invalidate';
9
- export { StreamClient } from './apibara/node/v1alpha2/Stream';
10
- export { StreamDataRequest as IStreamDataRequest } from './apibara/node/v1alpha2/StreamDataRequest';
11
- export { StreamDataResponse__Output as IStreamDataResponse } from './apibara/node/v1alpha2/StreamDataResponse';
4
+ export { Cursor__Output as ICursor } from "./apibara/node/v1alpha2/Cursor";
5
+ export { Data__Output as IData } from "./apibara/node/v1alpha2/Data";
6
+ export { DataFinality } from "./apibara/node/v1alpha2/DataFinality";
7
+ export { Heartbeat__Output as IHeartbeat } from "./apibara/node/v1alpha2/Heartbeat";
8
+ export { Invalidate__Output as IInvalidate } from "./apibara/node/v1alpha2/Invalidate";
9
+ export { StreamClient } from "./apibara/node/v1alpha2/Stream";
10
+ export { StreamDataRequest as IStreamDataRequest } from "./apibara/node/v1alpha2/StreamDataRequest";
11
+ export { StreamDataResponse__Output as IStreamDataResponse } from "./apibara/node/v1alpha2/StreamDataResponse";
@@ -3,7 +3,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.DataFinality = exports.protoDescriptor = exports.packageDefinition = void 0;
4
4
  const grpc_js_1 = require("@grpc/grpc-js");
5
5
  const proto_loader_1 = require("@grpc/proto-loader");
6
- const __NODE_PROTO_PATH = __dirname + '/stream.proto';
6
+ const __NODE_PROTO_PATH = __dirname + "/stream.proto";
7
7
  // export definitions
8
8
  exports.packageDefinition = (0, proto_loader_1.loadSync)(__NODE_PROTO_PATH, {
9
9
  oneofs: true,
@@ -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;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"}
1
+ {"version":3,"file":"v1alpha2.js","sourceRoot":"","sources":["../../src/proto/v1alpha2.ts"],"names":[],"mappings":";;;AAAA,2CAAsD;AACtD,qDAA8C;AAG9C,MAAM,iBAAiB,GAAG,SAAS,GAAG,eAAe,CAAC;AAEtD,qBAAqB;AACR,QAAA,iBAAiB,GAAG,IAAA,uBAAQ,EAAC,iBAAiB,EAAE;IAC3D,MAAM,EAAE,IAAI;IACZ,QAAQ,EAAE,IAAI;CACf,CAAC,CAAC;AACU,QAAA,eAAe,GAAG,IAAA,+BAAqB,EAClD,yBAAiB,CACU,CAAC;AAK9B,qEAAoE;AAA3D,4GAAA,YAAY,OAAA"}
package/dist/request.d.ts CHANGED
@@ -1,5 +1,5 @@
1
- import Long from 'long';
2
- import { v1alpha2 } from './proto';
1
+ import Long from "long";
2
+ import { v1alpha2 } from "./proto";
3
3
  export declare const StreamDataRequest: {
4
4
  /**
5
5
  * Start building a `StreamData` request.
package/dist/request.js CHANGED
@@ -8,6 +8,7 @@ exports.StreamDataRequest = {
8
8
  create: () => new StreamDataRequestBuilder(),
9
9
  };
10
10
  class StreamDataRequestBuilder {
11
+ request;
11
12
  constructor() {
12
13
  this.request = {};
13
14
  }
@@ -1 +1 @@
1
- {"version":3,"file":"request.js","sourceRoot":"","sources":["../src/request.ts"],"names":[],"mappings":";;;AAGa,QAAA,iBAAiB,GAAG;IAC/B;;OAEG;IACH,MAAM,EAAE,GAAG,EAAE,CAAC,IAAI,wBAAwB,EAAE;CAC7C,CAAA;AAED,MAAa,wBAAwB;IAGnC;QACE,IAAI,CAAC,OAAO,GAAG,EAAE,CAAA;IACnB,CAAC;IAED;;OAEG;IACH,YAAY,CAAC,QAAuB;QAClC,IAAI,CAAC,OAAO,CAAC,QAAQ,GAAG,QAAQ,CAAA;QAChC,OAAO,IAAI,CAAA;IACb,CAAC;IAED;;OAEG;IACH,aAAa,CAAC,IAAmB;QAC/B,IAAI,CAAC,OAAO,CAAC,SAAS,GAAG,IAAI,CAAA;QAC7B,OAAO,IAAI,CAAA;IACb,CAAC;IAED;;OAEG;IACH,kBAAkB,CAAC,MAAwB;QACzC,IAAI,CAAC,OAAO,CAAC,cAAc,GAAG,MAAM,CAAA;QACpC,OAAO,IAAI,CAAA;IACb,CAAC;IAED;;OAEG;IACH,YAAY,CAAC,QAA+B;QAC1C,IAAI,CAAC,OAAO,CAAC,QAAQ,GAAG,QAAQ,CAAA;QAChC,OAAO,IAAI,CAAA;IACb,CAAC;IAED;;OAEG;IACH,UAAU,CAAC,MAAkB;QAC3B,IAAI,CAAC,OAAO,CAAC,MAAM,GAAG,MAAM,CAAA;QAC5B,OAAO,IAAI,CAAA;IACb,CAAC;IAED;;OAEG;IACH,MAAM;QACJ,OAAO,IAAI,CAAC,OAAO,CAAA;IACrB,CAAC;CACF;AArDD,4DAqDC"}
1
+ {"version":3,"file":"request.js","sourceRoot":"","sources":["../src/request.ts"],"names":[],"mappings":";;;AAGa,QAAA,iBAAiB,GAAG;IAC/B;;OAEG;IACH,MAAM,EAAE,GAAG,EAAE,CAAC,IAAI,wBAAwB,EAAE;CAC7C,CAAC;AAEF,MAAa,wBAAwB;IAC3B,OAAO,CAA8B;IAE7C;QACE,IAAI,CAAC,OAAO,GAAG,EAAE,CAAC;IACpB,CAAC;IAED;;OAEG;IACH,YAAY,CAAC,QAAuB;QAClC,IAAI,CAAC,OAAO,CAAC,QAAQ,GAAG,QAAQ,CAAC;QACjC,OAAO,IAAI,CAAC;IACd,CAAC;IAED;;OAEG;IACH,aAAa,CAAC,IAAmB;QAC/B,IAAI,CAAC,OAAO,CAAC,SAAS,GAAG,IAAI,CAAC;QAC9B,OAAO,IAAI,CAAC;IACd,CAAC;IAED;;OAEG;IACH,kBAAkB,CAAC,MAAwB;QACzC,IAAI,CAAC,OAAO,CAAC,cAAc,GAAG,MAAM,CAAC;QACrC,OAAO,IAAI,CAAC;IACd,CAAC;IAED;;OAEG;IACH,YAAY,CAAC,QAA+B;QAC1C,IAAI,CAAC,OAAO,CAAC,QAAQ,GAAG,QAAQ,CAAC;QACjC,OAAO,IAAI,CAAC;IACd,CAAC;IAED;;OAEG;IACH,UAAU,CAAC,MAAkB;QAC3B,IAAI,CAAC,OAAO,CAAC,MAAM,GAAG,MAAM,CAAC;QAC7B,OAAO,IAAI,CAAC;IACd,CAAC;IAED;;OAEG;IACH,MAAM;QACJ,OAAO,IAAI,CAAC,OAAO,CAAC;IACtB,CAAC;CACF;AArDD,4DAqDC"}
@@ -3,12 +3,11 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  const proto_1 = require("./proto");
4
4
  const testing_1 = require("./proto/testing");
5
5
  const request_1 = require("./request");
6
- describe('RequestBuilder', () => {
7
- it('returns the final request', () => {
8
- const filter = new testing_1.TestFilter({
9
- num: 123,
10
- text: 'abcdef',
11
- });
6
+ describe("RequestBuilder", () => {
7
+ it("returns the final request", () => {
8
+ const filter = new testing_1.TestFilter();
9
+ filter.num = 123;
10
+ filter.text = "abcdef";
12
11
  const request = request_1.StreamDataRequest.create()
13
12
  .withBatchSize(10)
14
13
  .withFilter(testing_1.TestFilter.encode(filter).finish())
@@ -18,12 +17,12 @@ describe('RequestBuilder', () => {
18
17
  expect(request.filter).toBeInstanceOf(Buffer);
19
18
  expect(request.filter?.length).toEqual(10);
20
19
  // make ts happy
21
- if (!request.filter || typeof request.filter == 'string') {
22
- throw new Error('undefined filter');
20
+ if (!request.filter || typeof request.filter === "string") {
21
+ throw new Error("undefined filter");
23
22
  }
24
23
  const back = testing_1.TestFilter.decode(request.filter);
25
- expect(back.num.toString()).toEqual('123');
26
- expect(back.text).toEqual('abcdef');
24
+ expect(back.num.toString()).toEqual("123");
25
+ expect(back.text).toEqual("abcdef");
27
26
  });
28
27
  });
29
28
  //# sourceMappingURL=request.test.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"request.test.js","sourceRoot":"","sources":["../src/request.test.ts"],"names":[],"mappings":";;AAAA,mCAAkC;AAClC,6CAA4C;AAC5C,uCAA6C;AAE7C,QAAQ,CAAC,gBAAgB,EAAE,GAAG,EAAE;IAC9B,EAAE,CAAC,2BAA2B,EAAE,GAAG,EAAE;QACnC,MAAM,MAAM,GAAG,IAAI,oBAAU,CAAC;YAC5B,GAAG,EAAE,GAAG;YACR,IAAI,EAAE,QAAQ;SACf,CAAC,CAAA;QAEF,MAAM,OAAO,GAAG,2BAAiB,CAAC,MAAM,EAAE;aACvC,aAAa,CAAC,EAAE,CAAC;aACjB,UAAU,CAAC,oBAAU,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,MAAM,EAAE,CAAC;aAC9C,YAAY,CAAC,gBAAQ,CAAC,YAAY,CAAC,qBAAqB,CAAC;aACzD,MAAM,EAAE,CAAA;QAEX,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,CAAA;QACrC,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,cAAc,CAAC,MAAM,CAAC,CAAA;QAC7C,MAAM,CAAC,OAAO,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,CAAA;QAE1C,gBAAgB;QAChB,IAAI,CAAC,OAAO,CAAC,MAAM,IAAI,OAAO,OAAO,CAAC,MAAM,IAAI,QAAQ,EAAE;YACxD,MAAM,IAAI,KAAK,CAAC,kBAAkB,CAAC,CAAA;SACpC;QAED,MAAM,IAAI,GAAG,oBAAU,CAAC,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,CAAA;QAC9C,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,CAAA;QAC1C,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAA;IACrC,CAAC,CAAC,CAAA;AACJ,CAAC,CAAC,CAAA"}
1
+ {"version":3,"file":"request.test.js","sourceRoot":"","sources":["../src/request.test.ts"],"names":[],"mappings":";;AAAA,mCAAmC;AACnC,6CAA6C;AAC7C,uCAA8C;AAE9C,QAAQ,CAAC,gBAAgB,EAAE,GAAG,EAAE;IAC9B,EAAE,CAAC,2BAA2B,EAAE,GAAG,EAAE;QACnC,MAAM,MAAM,GAAG,IAAI,oBAAU,EAAE,CAAC;QAChC,MAAM,CAAC,GAAG,GAAG,GAAG,CAAC;QACjB,MAAM,CAAC,IAAI,GAAG,QAAQ,CAAC;QAEvB,MAAM,OAAO,GAAG,2BAAiB,CAAC,MAAM,EAAE;aACvC,aAAa,CAAC,EAAE,CAAC;aACjB,UAAU,CAAC,oBAAU,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,MAAM,EAAE,CAAC;aAC9C,YAAY,CAAC,gBAAQ,CAAC,YAAY,CAAC,qBAAqB,CAAC;aACzD,MAAM,EAAE,CAAC;QAEZ,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;QACtC,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC;QAC9C,MAAM,CAAC,OAAO,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;QAE3C,gBAAgB;QAChB,IAAI,CAAC,OAAO,CAAC,MAAM,IAAI,OAAO,OAAO,CAAC,MAAM,KAAK,QAAQ,EAAE;YACzD,MAAM,IAAI,KAAK,CAAC,kBAAkB,CAAC,CAAC;SACrC;QAED,MAAM,IAAI,GAAG,oBAAU,CAAC,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;QAC/C,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;QAC3C,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;IACtC,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@apibara/protocol",
3
- "version": "0.4.7",
3
+ "version": "0.4.9",
4
4
  "source": "src/index.ts",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",
@@ -24,8 +24,9 @@
24
24
  "prebuild": "pnpm run protobuf && pnpm run gen-types",
25
25
  "build": "tsc",
26
26
  "test": "jest src/",
27
- "lint": "eslint src --ext .ts",
28
- "lint:fix": "eslint --fix src --ext .ts",
27
+ "lint": "biome check .",
28
+ "lint:fix": "pnpm lint --apply",
29
+ "format": "biome format . --write",
29
30
  "protobuf": "mkdir -p dist/proto && cp src/proto/*.proto dist/proto",
30
31
  "gen-types": "proto-loader-gen-types --bytes=Array --longs=Long --enums=String --defaults --oneofs --grpcLib=@grpc/grpc-js --outDir=src/proto src/proto/*.proto"
31
32
  }