@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
@@ -0,0 +1,24 @@
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
+ import type { Long } from '@grpc/proto-loader';
5
+ export interface StreamDataRequest {
6
+ 'streamId'?: (number | string | Long);
7
+ 'batchSize'?: (number | string | Long);
8
+ 'startingCursor'?: (_apibara_node_v1alpha2_Cursor | null);
9
+ 'finality'?: (_apibara_node_v1alpha2_DataFinality | keyof typeof _apibara_node_v1alpha2_DataFinality);
10
+ 'filter'?: (Buffer | Uint8Array | string);
11
+ '_streamId'?: "streamId";
12
+ '_batchSize'?: "batchSize";
13
+ '_finality'?: "finality";
14
+ }
15
+ export interface StreamDataRequest__Output {
16
+ 'streamId'?: (Long);
17
+ 'batchSize'?: (Long);
18
+ 'startingCursor': (_apibara_node_v1alpha2_Cursor__Output | null);
19
+ 'finality'?: (keyof typeof _apibara_node_v1alpha2_DataFinality);
20
+ 'filter': (Uint8Array);
21
+ '_streamId': "streamId";
22
+ '_batchSize': "batchSize";
23
+ '_finality': "finality";
24
+ }
@@ -0,0 +1,4 @@
1
+ "use strict";
2
+ // Original file: src/proto/stream.proto
3
+ Object.defineProperty(exports, "__esModule", { value: true });
4
+ //# sourceMappingURL=StreamDataRequest.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"StreamDataRequest.js","sourceRoot":"","sources":["../../../../../src/proto/apibara/node/v1alpha2/StreamDataRequest.ts"],"names":[],"mappings":";AAAA,wCAAwC"}
@@ -0,0 +1,18 @@
1
+ import type { Invalidate as _apibara_node_v1alpha2_Invalidate, Invalidate__Output as _apibara_node_v1alpha2_Invalidate__Output } from '../../../apibara/node/v1alpha2/Invalidate';
2
+ import type { Data as _apibara_node_v1alpha2_Data, Data__Output as _apibara_node_v1alpha2_Data__Output } from '../../../apibara/node/v1alpha2/Data';
3
+ import type { Heartbeat as _apibara_node_v1alpha2_Heartbeat, Heartbeat__Output as _apibara_node_v1alpha2_Heartbeat__Output } from '../../../apibara/node/v1alpha2/Heartbeat';
4
+ import type { Long } from '@grpc/proto-loader';
5
+ export interface StreamDataResponse {
6
+ 'streamId'?: (number | string | Long);
7
+ 'invalidate'?: (_apibara_node_v1alpha2_Invalidate | null);
8
+ 'data'?: (_apibara_node_v1alpha2_Data | null);
9
+ 'heartbeat'?: (_apibara_node_v1alpha2_Heartbeat | null);
10
+ 'message'?: "invalidate" | "data" | "heartbeat";
11
+ }
12
+ export interface StreamDataResponse__Output {
13
+ 'streamId': (Long);
14
+ 'invalidate'?: (_apibara_node_v1alpha2_Invalidate__Output | null);
15
+ 'data'?: (_apibara_node_v1alpha2_Data__Output | null);
16
+ 'heartbeat'?: (_apibara_node_v1alpha2_Heartbeat__Output | null);
17
+ 'message': "invalidate" | "data" | "heartbeat";
18
+ }
@@ -0,0 +1,4 @@
1
+ "use strict";
2
+ // Original file: src/proto/stream.proto
3
+ Object.defineProperty(exports, "__esModule", { value: true });
4
+ //# sourceMappingURL=StreamDataResponse.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"StreamDataResponse.js","sourceRoot":"","sources":["../../../../../src/proto/apibara/node/v1alpha2/StreamDataResponse.ts"],"names":[],"mappings":";AAAA,wCAAwC"}
@@ -1,11 +1 @@
1
- export * from './apibara/node/v1alpha1/Data';
2
- export * from './apibara/node/v1alpha1/Heartbeat';
3
- export * from './apibara/node/v1alpha1/InputSyncingStatus';
4
- export * from './apibara/node/v1alpha1/Invalidate';
5
- export * from './apibara/node/v1alpha1/NotStartedStatus';
6
- export * from './apibara/node/v1alpha1/StatusRequest';
7
- export * from './apibara/node/v1alpha1/StatusResponse';
8
- export * from './apibara/node/v1alpha1/StreamMessagesRequest';
9
- export * from './apibara/node/v1alpha1/StreamMessagesResponse';
10
- export * from './apibara/node/v1alpha1/SyncedStatus';
11
- export * from './apibara/node/v1alpha1/SyncingStatus';
1
+ export * as v1alpha2 from './v1alpha2';
@@ -10,19 +10,19 @@ 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 __exportStar = (this && this.__exportStar) || function(m, exports) {
14
- for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
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
+ var __importStar = (this && this.__importStar) || function (mod) {
19
+ if (mod && mod.__esModule) return mod;
20
+ var result = {};
21
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
22
+ __setModuleDefault(result, mod);
23
+ return result;
15
24
  };
16
25
  Object.defineProperty(exports, "__esModule", { value: true });
17
- __exportStar(require("./apibara/node/v1alpha1/Data"), exports);
18
- __exportStar(require("./apibara/node/v1alpha1/Heartbeat"), exports);
19
- __exportStar(require("./apibara/node/v1alpha1/InputSyncingStatus"), exports);
20
- __exportStar(require("./apibara/node/v1alpha1/Invalidate"), exports);
21
- __exportStar(require("./apibara/node/v1alpha1/NotStartedStatus"), exports);
22
- __exportStar(require("./apibara/node/v1alpha1/StatusRequest"), exports);
23
- __exportStar(require("./apibara/node/v1alpha1/StatusResponse"), exports);
24
- __exportStar(require("./apibara/node/v1alpha1/StreamMessagesRequest"), exports);
25
- __exportStar(require("./apibara/node/v1alpha1/StreamMessagesResponse"), exports);
26
- __exportStar(require("./apibara/node/v1alpha1/SyncedStatus"), exports);
27
- __exportStar(require("./apibara/node/v1alpha1/SyncingStatus"), exports);
26
+ exports.v1alpha2 = void 0;
27
+ exports.v1alpha2 = __importStar(require("./v1alpha2"));
28
28
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/proto/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,+DAA4C;AAC5C,oEAAiD;AACjD,6EAA0D;AAC1D,qEAAkD;AAClD,2EAAwD;AACxD,wEAAqD;AACrD,yEAAsD;AACtD,gFAA6D;AAC7D,iFAA8D;AAC9D,uEAAoD;AACpD,wEAAqD"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/proto/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,uDAAsC"}
@@ -0,0 +1,25 @@
1
+ import type * as grpc from '@grpc/grpc-js';
2
+ import type { EnumTypeDefinition, MessageTypeDefinition } from '@grpc/proto-loader';
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> = {
5
+ new (...args: ConstructorParameters<Constructor>): Subtype;
6
+ };
7
+ export interface ProtoGrpcType {
8
+ apibara: {
9
+ node: {
10
+ v1alpha2: {
11
+ Cursor: MessageTypeDefinition;
12
+ Data: MessageTypeDefinition;
13
+ DataFinality: EnumTypeDefinition;
14
+ Heartbeat: MessageTypeDefinition;
15
+ Invalidate: MessageTypeDefinition;
16
+ Stream: SubtypeConstructor<typeof grpc.Client, _apibara_node_v1alpha2_StreamClient> & {
17
+ service: _apibara_node_v1alpha2_StreamDefinition;
18
+ };
19
+ StreamDataRequest: MessageTypeDefinition;
20
+ StreamDataResponse: MessageTypeDefinition;
21
+ };
22
+ };
23
+ };
24
+ }
25
+ export {};
@@ -1,3 +1,3 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- //# sourceMappingURL=node.js.map
3
+ //# sourceMappingURL=stream.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"stream.js","sourceRoot":"","sources":["../../src/proto/stream.ts"],"names":[],"mappings":""}
@@ -0,0 +1,76 @@
1
+ // Apibara Stream service.
2
+ syntax = "proto3";
3
+
4
+ package apibara.node.v1alpha2;
5
+
6
+ service Stream {
7
+ // Stream data from the node.
8
+ rpc StreamData(stream StreamDataRequest) returns (stream StreamDataResponse);
9
+ }
10
+
11
+ // Request data to be streamed.
12
+ message StreamDataRequest {
13
+ // Used by the client to uniquely identify a stream.
14
+ // All streams use `stream_id = 0` by default.
15
+ optional uint64 stream_id = 1;
16
+ // How many items to send in a single response.
17
+ optional uint64 batch_size = 2;
18
+ // Start streaming from the provided cursor.
19
+ Cursor starting_cursor = 3;
20
+ // Return data with the specified finality.
21
+ // If not specified, defaults to `DATA_STATUS_ACCEPTED`.
22
+ optional DataFinality finality = 4;
23
+ // Return data according to the stream-specific filter.
24
+ bytes filter = 5;
25
+ }
26
+
27
+ // Contains the data requested from the client.
28
+ message StreamDataResponse {
29
+ // The stream id.
30
+ uint64 stream_id = 1;
31
+ oneof message {
32
+ Invalidate invalidate = 2;
33
+ Data data = 3;
34
+ Heartbeat heartbeat = 4;
35
+ }
36
+ }
37
+
38
+ // A cursor over the stream content.
39
+ message Cursor {
40
+ // Key used for ordering messages in the stream.
41
+ uint64 order_key = 1;
42
+ // Key used to discriminate branches in the stream.
43
+ bytes unique_key = 2;
44
+ }
45
+
46
+ // Data finality.
47
+ enum DataFinality {
48
+ DATA_STATUS_UNKNOWN = 0;
49
+ // Data was received, but is not part of the canonical chain yet.
50
+ DATA_STATUS_PENDING = 1;
51
+ // Data is now part of the canonical chain, but could still be invalidated.
52
+ DATA_STATUS_ACCEPTED = 2;
53
+ // Data is finalized and cannot be invalidated.
54
+ DATA_STATUS_FINALIZED = 3;
55
+ }
56
+
57
+ // Invalidate data after the given cursor.
58
+ message Invalidate {
59
+ // The cursor of the message before the now invalid data.
60
+ Cursor cursor = 1;
61
+ }
62
+
63
+ // A batch of data.
64
+ message Data {
65
+ // Cursor of the last item in the batch.
66
+ Cursor end_cursor = 1;
67
+ // The finality status of the data in the batch.
68
+ DataFinality finality = 2;
69
+ // The stream data.
70
+ repeated bytes data = 3;
71
+ // Cursor used to produced the batch.
72
+ Cursor cursor = 4;
73
+ }
74
+
75
+ // Sent to clients to check if stream is still connected.
76
+ message Heartbeat {}
@@ -0,0 +1,5 @@
1
+ import { Message } from 'protobufjs/light';
2
+ export declare class TestFilter extends Message<TestFilter> {
3
+ num: number;
4
+ text: string;
5
+ }
@@ -0,0 +1,22 @@
1
+ "use strict";
2
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
3
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
4
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
5
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
6
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
7
+ };
8
+ Object.defineProperty(exports, "__esModule", { value: true });
9
+ exports.TestFilter = void 0;
10
+ const light_1 = require("protobufjs/light");
11
+ class TestFilter extends light_1.Message {
12
+ }
13
+ __decorate([
14
+ light_1.Field.d(1, 'uint64')
15
+ // @ts-ignore
16
+ ], TestFilter.prototype, "num", void 0);
17
+ __decorate([
18
+ light_1.Field.d(2, 'string')
19
+ // @ts-ignore
20
+ ], TestFilter.prototype, "text", void 0);
21
+ exports.TestFilter = TestFilter;
22
+ //# sourceMappingURL=testing.js.map
@@ -0,0 +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"}
@@ -0,0 +1,11 @@
1
+ import { ProtoGrpcType } from './stream';
2
+ export declare const packageDefinition: import("@grpc/proto-loader").PackageDefinition;
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';
@@ -0,0 +1,12 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.DataFinality = exports.protoDescriptor = exports.packageDefinition = void 0;
4
+ const grpc_js_1 = require("@grpc/grpc-js");
5
+ const proto_loader_1 = require("@grpc/proto-loader");
6
+ const __NODE_PROTO_PATH = __dirname + '/stream.proto';
7
+ // export definitions
8
+ exports.packageDefinition = (0, proto_loader_1.loadSync)(__NODE_PROTO_PATH, {});
9
+ exports.protoDescriptor = (0, grpc_js_1.loadPackageDefinition)(exports.packageDefinition);
10
+ var DataFinality_1 = require("./apibara/node/v1alpha2/DataFinality");
11
+ Object.defineProperty(exports, "DataFinality", { enumerable: true, get: function () { return DataFinality_1.DataFinality; } });
12
+ //# sourceMappingURL=v1alpha2.js.map
@@ -0,0 +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;AACnD,QAAA,eAAe,GAAG,IAAA,+BAAqB,EAAC,yBAAiB,CAA6B,CAAA;AAKnG,qEAAmE;AAA1D,4GAAA,YAAY,OAAA"}
@@ -0,0 +1,36 @@
1
+ import Long from 'long';
2
+ import { v1alpha2 } from './proto';
3
+ export declare const StreamDataRequest: {
4
+ /**
5
+ * Start building a `StreamData` request.
6
+ */
7
+ create: () => StreamDataRequestBuilder;
8
+ };
9
+ export declare class StreamDataRequestBuilder {
10
+ private request;
11
+ constructor();
12
+ /**
13
+ * Set the new stream id.
14
+ */
15
+ withStreamId(streamId: number | Long): this;
16
+ /**
17
+ * Set the number of items in each response batch.
18
+ */
19
+ withBatchSize(size: number | Long): this;
20
+ /**
21
+ * Set the cursor from where to resume streaming.
22
+ */
23
+ withStartingCursor(cursor: v1alpha2.ICursor): this;
24
+ /**
25
+ * Set the request finality for data.
26
+ */
27
+ withFinality(finality: v1alpha2.DataFinality): this;
28
+ /**
29
+ * Set the stream-specific filter.
30
+ */
31
+ withFilter(filter: Uint8Array): this;
32
+ /**
33
+ * Build and return the request.
34
+ */
35
+ encode(): v1alpha2.IStreamDataRequest;
36
+ }
@@ -0,0 +1,57 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.StreamDataRequestBuilder = exports.StreamDataRequest = void 0;
4
+ exports.StreamDataRequest = {
5
+ /**
6
+ * Start building a `StreamData` request.
7
+ */
8
+ create: () => new StreamDataRequestBuilder(),
9
+ };
10
+ class StreamDataRequestBuilder {
11
+ constructor() {
12
+ this.request = {};
13
+ }
14
+ /**
15
+ * Set the new stream id.
16
+ */
17
+ withStreamId(streamId) {
18
+ this.request.streamId = streamId;
19
+ return this;
20
+ }
21
+ /**
22
+ * Set the number of items in each response batch.
23
+ */
24
+ withBatchSize(size) {
25
+ this.request.batchSize = size;
26
+ return this;
27
+ }
28
+ /**
29
+ * Set the cursor from where to resume streaming.
30
+ */
31
+ withStartingCursor(cursor) {
32
+ this.request.startingCursor = cursor;
33
+ return this;
34
+ }
35
+ /**
36
+ * Set the request finality for data.
37
+ */
38
+ withFinality(finality) {
39
+ this.request.finality = finality;
40
+ return this;
41
+ }
42
+ /**
43
+ * Set the stream-specific filter.
44
+ */
45
+ withFilter(filter) {
46
+ this.request.filter = filter;
47
+ return this;
48
+ }
49
+ /**
50
+ * Build and return the request.
51
+ */
52
+ encode() {
53
+ return this.request;
54
+ }
55
+ }
56
+ exports.StreamDataRequestBuilder = StreamDataRequestBuilder;
57
+ //# sourceMappingURL=request.js.map
@@ -0,0 +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"}
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,29 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const proto_1 = require("./proto");
4
+ const testing_1 = require("./proto/testing");
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
+ });
12
+ const request = request_1.StreamDataRequest.create()
13
+ .withBatchSize(10)
14
+ .withFilter(testing_1.TestFilter.encode(filter).finish())
15
+ .withFinality(proto_1.v1alpha2.DataFinality.DATA_STATUS_FINALIZED)
16
+ .encode();
17
+ expect(request.batchSize).toEqual(10);
18
+ expect(request.filter).toBeInstanceOf(Buffer);
19
+ expect(request.filter?.length).toEqual(10);
20
+ // make ts happy
21
+ if (!request.filter || typeof request.filter == 'string') {
22
+ throw new Error('undefined filter');
23
+ }
24
+ const back = testing_1.TestFilter.decode(request.filter);
25
+ expect(back.num.toString()).toEqual('123');
26
+ expect(back.text).toEqual('abcdef');
27
+ });
28
+ });
29
+ //# sourceMappingURL=request.test.js.map
@@ -0,0 +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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@apibara/protocol",
3
- "version": "0.3.0",
3
+ "version": "0.4.0-next.1",
4
4
  "source": "src/index.ts",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",
@@ -12,18 +12,21 @@
12
12
  "dependencies": {
13
13
  "@grpc/grpc-js": "^1.7.3",
14
14
  "@grpc/proto-loader": "^0.7.3",
15
- "google-protobuf": "^3.21.2"
15
+ "google-protobuf": "^3.21.2",
16
+ "long": "^5.2.1",
17
+ "protobufjs": "^7.1.2"
16
18
  },
17
19
  "devDependencies": {
20
+ "@types/long": "^5.0.0",
18
21
  "@types/node": "^18.11.9"
19
22
  },
20
23
  "scripts": {
21
24
  "prebuild": "pnpm run protobuf && pnpm run gen-types",
22
25
  "build": "tsc",
23
- "test": "jest",
26
+ "test": "jest src/",
24
27
  "lint": "eslint src --ext .ts",
25
28
  "lint:fix": "eslint --fix src --ext .ts",
26
29
  "protobuf": "mkdir -p dist/proto && cp src/proto/*.proto dist/proto",
27
- "gen-types": "proto-loader-gen-types --longs=String --enums=String --defaults --oneofs --grpcLib=@grpc/grpc-js --outDir=src/proto src/proto/*.proto"
30
+ "gen-types": "proto-loader-gen-types --bytes=Array --longs=Long --enums=String --defaults --oneofs --grpcLib=@grpc/grpc-js --outDir=src/proto src/proto/*.proto"
28
31
  }
29
32
  }