nats-pure 2.2.0 → 2.3.0
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.
- checksums.yaml +4 -4
- data/LICENSE +201 -0
- data/README.md +251 -0
- data/lib/nats/io/client.rb +226 -151
- data/lib/nats/io/errors.rb +6 -0
- data/lib/nats/io/jetstream/api.rb +305 -0
- data/lib/nats/io/jetstream/errors.rb +104 -0
- data/lib/nats/io/jetstream/js/config.rb +26 -0
- data/lib/nats/io/jetstream/js/header.rb +31 -0
- data/lib/nats/io/jetstream/js/status.rb +27 -0
- data/lib/nats/io/jetstream/js/sub.rb +30 -0
- data/lib/nats/io/jetstream/js.rb +93 -0
- data/lib/nats/io/jetstream/manager.rb +284 -0
- data/lib/nats/io/jetstream/msg/ack.rb +57 -0
- data/lib/nats/io/jetstream/msg/ack_methods.rb +111 -0
- data/lib/nats/io/jetstream/msg/metadata.rb +37 -0
- data/lib/nats/io/jetstream/msg.rb +26 -0
- data/lib/nats/io/jetstream/pull_subscription.rb +260 -0
- data/lib/nats/io/jetstream/push_subscription.rb +42 -0
- data/lib/nats/io/jetstream.rb +269 -0
- data/lib/nats/io/kv/api.rb +39 -0
- data/lib/nats/io/kv/bucket_status.rb +38 -0
- data/lib/nats/io/kv/errors.rb +60 -0
- data/lib/nats/io/kv/manager.rb +89 -0
- data/lib/nats/io/kv.rb +5 -157
- data/lib/nats/io/msg.rb +4 -2
- data/lib/nats/io/rails.rb +29 -0
- data/lib/nats/io/subscription.rb +70 -5
- data/lib/nats/io/version.rb +1 -1
- data/lib/nats/io/websocket.rb +75 -0
- data/sig/nats/io/client.rbs +304 -0
- data/sig/nats/io/errors.rbs +54 -0
- data/sig/nats/io/jetstream/api.rbs +35 -0
- data/sig/nats/io/jetstream/errors.rbs +54 -0
- data/sig/nats/io/jetstream/js/config.rbs +11 -0
- data/sig/nats/io/jetstream/js/header.rbs +17 -0
- data/sig/nats/io/jetstream/js/status.rbs +13 -0
- data/sig/nats/io/jetstream/js/sub.rbs +14 -0
- data/sig/nats/io/jetstream/js.rbs +27 -0
- data/sig/nats/io/jetstream/manager.rbs +33 -0
- data/sig/nats/io/jetstream/msg/ack.rbs +35 -0
- data/sig/nats/io/jetstream/msg/ack_methods.rbs +25 -0
- data/sig/nats/io/jetstream/msg/metadata.rbs +15 -0
- data/sig/nats/io/jetstream/msg.rbs +6 -0
- data/sig/nats/io/jetstream/pull_subscription.rbs +14 -0
- data/sig/nats/io/jetstream/push_subscription.rbs +7 -0
- data/sig/nats/io/jetstream.rbs +15 -0
- data/sig/nats/io/kv/api.rbs +8 -0
- data/sig/nats/io/kv/bucket_status.rbs +17 -0
- data/sig/nats/io/kv/errors.rbs +30 -0
- data/sig/nats/io/kv/manager.rbs +11 -0
- data/sig/nats/io/kv.rbs +39 -0
- data/sig/nats/io/msg.rbs +14 -0
- data/sig/nats/io/parser.rbs +32 -0
- data/sig/nats/io/subscription.rbs +33 -0
- data/sig/nats/io/version.rbs +9 -0
- data/sig/nats/nuid.rbs +32 -0
- metadata +68 -5
- data/lib/nats/io/js.rb +0 -1434
@@ -0,0 +1,304 @@
|
|
1
|
+
module NATS
|
2
|
+
# class << self
|
3
|
+
def self.connect: (String?, Hash[Symbol, untyped]) -> NATS::Client
|
4
|
+
# end class << self
|
5
|
+
|
6
|
+
module Status
|
7
|
+
DISCONNECTED: Integer
|
8
|
+
CONNECTED: Integer
|
9
|
+
CLOSED: Integer
|
10
|
+
RECONNECTING: Integer
|
11
|
+
CONNECTING: Integer
|
12
|
+
DRAINING_SUBS: Integer
|
13
|
+
DRAINING_PUBS: Integer
|
14
|
+
end
|
15
|
+
|
16
|
+
class Client
|
17
|
+
include MonitorMixin
|
18
|
+
include Status
|
19
|
+
|
20
|
+
attr_reader status: Integer
|
21
|
+
attr_reader server_info: Hash[Symbol, untyped]
|
22
|
+
attr_reader server_pool: Array[untyped]
|
23
|
+
attr_reader options: Hash[Symbol, untyped]?
|
24
|
+
attr_reader connected_server: String?
|
25
|
+
attr_reader stats: Hash[Symbol, Integer]
|
26
|
+
attr_reader uri: String?
|
27
|
+
attr_reader subscription_executor: Concurrent::ThreadPoolExecutor?
|
28
|
+
attr_reader reloader: Proc
|
29
|
+
|
30
|
+
DEFAULT_PORT: Hash[Symbol, Integer]
|
31
|
+
DEFAULT_URI: String
|
32
|
+
|
33
|
+
CR_LF: '\r\n'
|
34
|
+
CR_LF_SIZE: Integer
|
35
|
+
|
36
|
+
PING_REQUEST: String
|
37
|
+
PONG_RESPONSE: String
|
38
|
+
|
39
|
+
NATS_HDR_LINE: String
|
40
|
+
STATUS_MSG_LEN: 3
|
41
|
+
STATUS_HDR: 'Status'
|
42
|
+
DESC_HDR: 'Description'
|
43
|
+
NATS_HDR_LINE_SIZE: Integer
|
44
|
+
|
45
|
+
SUB_OP: 'SUB'
|
46
|
+
EMPTY_MSG: ''
|
47
|
+
|
48
|
+
INSTANCES: ObjectSpace::WeakMap
|
49
|
+
|
50
|
+
@options: Hash[Symbol, untyped]
|
51
|
+
|
52
|
+
@io: NATS::IO::Socket?
|
53
|
+
|
54
|
+
@flush_queue: Thread::SizedQueue?
|
55
|
+
@pending_queue: Thread::SizedQueue?
|
56
|
+
|
57
|
+
@parser: NATS::Protocol::Parser
|
58
|
+
|
59
|
+
@flusher_thread: Thread?
|
60
|
+
@read_loop_thread: Thread?
|
61
|
+
@ping_interval_thread: Thread?
|
62
|
+
@subscription_executor: Concurrent::ThreadPoolExecutor?
|
63
|
+
|
64
|
+
@subs: Hash[Symbol, untyped]
|
65
|
+
@ssid: Integer
|
66
|
+
|
67
|
+
@pings_outstanding: Integer
|
68
|
+
@pongs_received: Integer
|
69
|
+
@pongs: Array[MonitorMixin::ConditionVariable]
|
70
|
+
|
71
|
+
@pending_size: Integer
|
72
|
+
|
73
|
+
@last_err: untyped
|
74
|
+
|
75
|
+
@err_cb: Proc
|
76
|
+
@close_cp: Proc
|
77
|
+
@disconnect_cb: Proc
|
78
|
+
@reconnect_cb: Proc
|
79
|
+
|
80
|
+
@tls: bool?
|
81
|
+
|
82
|
+
@hostname: String?
|
83
|
+
@single_url_connect_used: bool
|
84
|
+
|
85
|
+
@connect_called: bool
|
86
|
+
|
87
|
+
@resp_sub: NATS::Subscription?
|
88
|
+
@resp_map: Hash[String | Symbol, untyped]?
|
89
|
+
@resp_sub_prefix: String?
|
90
|
+
@nuid: NATS::NUID
|
91
|
+
|
92
|
+
@user_credentials: String?
|
93
|
+
@nkeys_seed: String?
|
94
|
+
@user_nkey_cb: Proc?
|
95
|
+
@user_jwt_cb: Proc?
|
96
|
+
@signature_cb: Proc?
|
97
|
+
|
98
|
+
@auth_token: String?
|
99
|
+
|
100
|
+
@inbox_prefix: String
|
101
|
+
|
102
|
+
@drain_t: Thread?
|
103
|
+
|
104
|
+
@reloader: Proc
|
105
|
+
|
106
|
+
def self.default_reloader: -> Proc
|
107
|
+
|
108
|
+
def connect: ((String | Hash[Symbol, untyped])?, Hash[Symbol, untyped]) -> self
|
109
|
+
|
110
|
+
def publish: (String, String, String?, **Hash[Symbol, untyped]) -> void
|
111
|
+
|
112
|
+
def publish_msg: (NATS::Msg) -> void
|
113
|
+
|
114
|
+
def subscribe: (String, Hash[Symbol, untyped]) ?{ (?(NATS::Msg | String), ?String, ?String, ?Hash[Symbol, untyped]) -> void } -> NATS::Subscription
|
115
|
+
|
116
|
+
def request: (String, ?String, **Hash[Symbol, untyped]) ?{ (?(NATS::Msg | String), ?String, ?String, ?Hash[Symbol, untyped]) -> void } -> NATS::Msg
|
117
|
+
|
118
|
+
def request_msg: (NATS::Msg, **Hash[Symbol, untyped]) -> NATS::Msg
|
119
|
+
|
120
|
+
def old_request: (String, ?String, **Hash[Symbol, untyped]) ?{ (?(NATS::Msg | String), ?String, ?String, ?Hash[Symbol, untyped]) -> void } -> NATS::Msg
|
121
|
+
|
122
|
+
def flush: (?Integer) -> void
|
123
|
+
|
124
|
+
alias servers server_pool
|
125
|
+
|
126
|
+
def discovered_servers: () -> Array[String]
|
127
|
+
|
128
|
+
def close: () -> void
|
129
|
+
|
130
|
+
def new_inbox: () -> String
|
131
|
+
|
132
|
+
def connected?: () -> bool
|
133
|
+
|
134
|
+
def connecting?: () -> bool
|
135
|
+
|
136
|
+
def reconnecting?: () -> bool
|
137
|
+
|
138
|
+
def closed?: () -> bool
|
139
|
+
|
140
|
+
def draining?: () -> bool
|
141
|
+
|
142
|
+
def on_error: () { (?self, ?untyped, ?NATS::Subscription) -> void } -> void
|
143
|
+
|
144
|
+
def on_disconnect: () { (?untyped) -> void } -> void
|
145
|
+
|
146
|
+
def on_reconnect: () { () -> void } -> void
|
147
|
+
|
148
|
+
def on_close: () { () -> void } -> void
|
149
|
+
|
150
|
+
def last_error: () -> untyped
|
151
|
+
|
152
|
+
def drain: () -> void
|
153
|
+
|
154
|
+
def jetstream: (**Hash[Symbol, untyped]) -> NATS::JetStream
|
155
|
+
alias JetStream jetstream
|
156
|
+
alias jsm jetstream
|
157
|
+
|
158
|
+
private
|
159
|
+
|
160
|
+
def validate_settings!: () -> void
|
161
|
+
|
162
|
+
def process_info: (String) -> Hash[Symbol, untyped]
|
163
|
+
|
164
|
+
def process_hdr: (String) -> Hash[String, untyped]?
|
165
|
+
|
166
|
+
def process_pong: () -> void
|
167
|
+
|
168
|
+
def process_ping: () -> void
|
169
|
+
|
170
|
+
def process_err: (String) -> void
|
171
|
+
|
172
|
+
def process_msg: (String, String, String, String, String) -> void
|
173
|
+
|
174
|
+
def select_next_error: () -> untyped
|
175
|
+
|
176
|
+
def server_using_secure_connection?: () -> bool
|
177
|
+
|
178
|
+
def client_using_secure_connection?: () -> bool
|
179
|
+
|
180
|
+
def single_url_connect_used?: () -> bool
|
181
|
+
|
182
|
+
def send_command: (String) -> void
|
183
|
+
|
184
|
+
def unsubscribe: (NATS::Subscription, Integer?) -> void
|
185
|
+
|
186
|
+
def drain_sub: (NATS::Subscription) -> void
|
187
|
+
|
188
|
+
def do_drain: () -> void
|
189
|
+
|
190
|
+
def send_flush_queue: (Symbol) -> void
|
191
|
+
|
192
|
+
def delete_sid: (Symbol) -> void
|
193
|
+
|
194
|
+
def err_cb_call: (self, untyped, NATS::Subscription) -> void
|
195
|
+
|
196
|
+
def auth_connection?: () -> bool
|
197
|
+
|
198
|
+
def connect_command: () -> String
|
199
|
+
|
200
|
+
def process_op_error: (untyped) -> void
|
201
|
+
|
202
|
+
def read_loop: () -> void
|
203
|
+
|
204
|
+
def flusher_loop: () -> void
|
205
|
+
|
206
|
+
def force_flush!: () -> void
|
207
|
+
|
208
|
+
def ping_interval_loop: () -> void
|
209
|
+
|
210
|
+
def process_connect_init: () -> void
|
211
|
+
|
212
|
+
def attempt_reconnect: () -> void
|
213
|
+
|
214
|
+
def close_connection: (Integer, bool) -> void
|
215
|
+
|
216
|
+
def start_threads!: () -> void
|
217
|
+
|
218
|
+
def start_resp_mux_sub!: () -> void
|
219
|
+
|
220
|
+
def can_reuse_server?: (Hash[Symbol, untyped]) -> bool
|
221
|
+
|
222
|
+
def should_delay_connect?: () -> bool
|
223
|
+
|
224
|
+
def should_not_reconnect?: () -> bool
|
225
|
+
|
226
|
+
def should_reconnect?: () -> bool
|
227
|
+
|
228
|
+
def create_socket: () -> NATS::IO::Socket
|
229
|
+
|
230
|
+
def setup_nkeys_connect: () -> void
|
231
|
+
|
232
|
+
def signature_cb_for_nkey_file: (String) -> Proc
|
233
|
+
|
234
|
+
def nkey_cb_for_nkey_file: (String) -> Proc
|
235
|
+
|
236
|
+
def jwt_cb_for_creds_file: (String) -> Proc
|
237
|
+
|
238
|
+
def signature_cb_for_creds_file: (String) -> Proc
|
239
|
+
|
240
|
+
def process_uri: (String) -> Array[URI::Generic]
|
241
|
+
end
|
242
|
+
|
243
|
+
module IO
|
244
|
+
include Status
|
245
|
+
|
246
|
+
Client: NATS::Client
|
247
|
+
|
248
|
+
MAX_RECONNECT_ATTEMPTS: 10
|
249
|
+
RECONNECT_TIME_WAIT: 2
|
250
|
+
|
251
|
+
MAX_PENDING_SIZE: 32768
|
252
|
+
|
253
|
+
MAX_FLUSH_KICK_SIZE: 1024
|
254
|
+
|
255
|
+
MAX_SOCKET_READ_BYTES: 32768
|
256
|
+
|
257
|
+
DEFAULT_PING_INTERVAL: 120
|
258
|
+
DEFAULT_PING_MAX: 2
|
259
|
+
|
260
|
+
DEFAULT_CONNECT_TIMEOUT: 2
|
261
|
+
DEFAULT_READ_WRITE_TIMEOUT: 2
|
262
|
+
DEFAULT_DRAIN_TIMEOUT: 30
|
263
|
+
|
264
|
+
DEFAULT_SUB_PENDING_MSGS_LIMIT: 65536
|
265
|
+
DEFAULT_SUB_PENDING_BYTES_LIMIT: Integer
|
266
|
+
|
267
|
+
class Socket
|
268
|
+
attr_accessor socket: ::Socket?
|
269
|
+
|
270
|
+
@uri: URI::Generic
|
271
|
+
@connect_timeout: Numeric
|
272
|
+
@write_timeout: Numeric
|
273
|
+
@read_timeout: Numeric
|
274
|
+
|
275
|
+
def connect: () -> void
|
276
|
+
|
277
|
+
def read_line: (Numeric?) -> untyped
|
278
|
+
|
279
|
+
def read: (Integer, Numeric?) -> untyped
|
280
|
+
|
281
|
+
def write: (String, Numeric?) -> void
|
282
|
+
|
283
|
+
def close: () -> void
|
284
|
+
|
285
|
+
def closed?: () -> bool
|
286
|
+
|
287
|
+
private
|
288
|
+
|
289
|
+
def connect_addrinfo: (String | Integer, Integer, Numeric) -> ::Socket
|
290
|
+
end
|
291
|
+
end
|
292
|
+
|
293
|
+
NANOSECONDS: 1_000_000_000
|
294
|
+
|
295
|
+
class MonotonicTime
|
296
|
+
# class << self
|
297
|
+
def self.now: () -> Float
|
298
|
+
|
299
|
+
def self.with_nats_timeout: (Float) -> Float
|
300
|
+
|
301
|
+
def self.since: (Float) -> Float
|
302
|
+
# end class << self
|
303
|
+
end
|
304
|
+
end
|
@@ -0,0 +1,54 @@
|
|
1
|
+
module NATS
|
2
|
+
module IO
|
3
|
+
class Error < StandardError
|
4
|
+
end
|
5
|
+
|
6
|
+
class ServerError < NATS::IO::Error
|
7
|
+
end
|
8
|
+
|
9
|
+
class ClientError < NATS::IO::Error
|
10
|
+
end
|
11
|
+
|
12
|
+
class ConnectError < NATS::IO::Error
|
13
|
+
end
|
14
|
+
|
15
|
+
class AuthError < NATS::IO::ConnectError
|
16
|
+
end
|
17
|
+
|
18
|
+
class NoServersError < NATS::IO::ConnectError
|
19
|
+
end
|
20
|
+
|
21
|
+
class NoRespondersError < NATS::IO::ConnectError
|
22
|
+
end
|
23
|
+
|
24
|
+
class StaleConnectionError < NATS::IO::Error
|
25
|
+
end
|
26
|
+
|
27
|
+
class Timeout < NATS::IO::Error
|
28
|
+
end
|
29
|
+
|
30
|
+
class SocketTimeoutError < NATS::IO::Timeout
|
31
|
+
end
|
32
|
+
|
33
|
+
class BadSubject < NATS::IO::Error
|
34
|
+
end
|
35
|
+
|
36
|
+
class BadSubscription < NATS::IO::Error
|
37
|
+
end
|
38
|
+
|
39
|
+
class SlowConsumer < NATS::IO::Error
|
40
|
+
end
|
41
|
+
|
42
|
+
class ConnectionDrainingError < NATS::IO::Error
|
43
|
+
end
|
44
|
+
|
45
|
+
class DrainTimeoutError < NATS::IO::Error
|
46
|
+
end
|
47
|
+
end
|
48
|
+
|
49
|
+
class Timeout < NATS::IO::Timeout
|
50
|
+
end
|
51
|
+
|
52
|
+
class Error < NATS::IO::Error
|
53
|
+
end
|
54
|
+
end
|
@@ -0,0 +1,35 @@
|
|
1
|
+
module NATS
|
2
|
+
class JetStream
|
3
|
+
module API
|
4
|
+
class Error < NATS::JetStream::Error::APIError
|
5
|
+
end
|
6
|
+
|
7
|
+
class SequenceInfo < Struct[Integer]
|
8
|
+
end
|
9
|
+
|
10
|
+
class ConsumerInfo < Struct[String | NATS::JetStream::API::ConsumerConfig | NATS::JetStream::API::SequenceInfo | Integer | Hash[Symbol, untyped]]
|
11
|
+
end
|
12
|
+
|
13
|
+
class ConsumerConfig < Struct[String | Integer]
|
14
|
+
def to_json: (*Hash[untyped, untyped]) -> String
|
15
|
+
end
|
16
|
+
|
17
|
+
class StreamConfig < Struct[String | Hash[Symbol, untyped] | NATS::JetStream::API::StreamState | bool | Integer]
|
18
|
+
def to_json: (*Hash[untyped, untyped]) -> String
|
19
|
+
end
|
20
|
+
|
21
|
+
class StreamInfo < Struct[String | Hash[Symbol, untyped]]
|
22
|
+
end
|
23
|
+
|
24
|
+
class StreamState < Struct[Integer]
|
25
|
+
end
|
26
|
+
|
27
|
+
class StreamCreateResponse < Struct[String | NATS::JetStream::API::StreamConfig | NATS::JetStream::API::StreamState | bool]
|
28
|
+
end
|
29
|
+
|
30
|
+
class RawStreamMsg < Struct[String | Integer | Hash[Symbol, untyped]]
|
31
|
+
def sequence: () -> Integer
|
32
|
+
end
|
33
|
+
end
|
34
|
+
end
|
35
|
+
end
|
@@ -0,0 +1,54 @@
|
|
1
|
+
module NATS
|
2
|
+
class JetStream
|
3
|
+
class Error < NATS::IO::Error
|
4
|
+
class NoStreamResponse < NATS::JetStream::Error
|
5
|
+
end
|
6
|
+
|
7
|
+
class InvalidDurableName < NATS::JetStream::Error
|
8
|
+
end
|
9
|
+
|
10
|
+
class InvalidJSAck < NATS::JetStream::Error
|
11
|
+
end
|
12
|
+
|
13
|
+
class MsgAlreadyAckd < NATS::JetStream::Error
|
14
|
+
end
|
15
|
+
|
16
|
+
class NotJSMessage < NATS::JetStream::Error
|
17
|
+
end
|
18
|
+
|
19
|
+
class InvalidStreamName < NATS::JetStream::Error
|
20
|
+
end
|
21
|
+
|
22
|
+
class InvalidConsumerName < NATS::JetStream::Error
|
23
|
+
end
|
24
|
+
|
25
|
+
class APIError < NATS::JetStream::Error
|
26
|
+
attr_reader code: Integer
|
27
|
+
attr_reader err_code: Integer
|
28
|
+
attr_reader description: String
|
29
|
+
attr_reader stream: String
|
30
|
+
attr_reader seq: Integer
|
31
|
+
|
32
|
+
def initialize: (Hash[Symbol, untyped]) -> void
|
33
|
+
end
|
34
|
+
|
35
|
+
class ServiceUnavailable < NATS::JetStream::Error::APIError
|
36
|
+
end
|
37
|
+
|
38
|
+
class ServerError < NATS::JetStream::Error::APIError
|
39
|
+
end
|
40
|
+
|
41
|
+
class NotFound < NATS::JetStream::Error::APIError
|
42
|
+
end
|
43
|
+
|
44
|
+
class StreamNotFound < NATS::JetStream::Error::NotFound
|
45
|
+
end
|
46
|
+
|
47
|
+
class ConsumerNotFound < NATS::JetStream::Error::NotFound
|
48
|
+
end
|
49
|
+
|
50
|
+
class BadRequest < NATS::JetStream::Error::APIError
|
51
|
+
end
|
52
|
+
end
|
53
|
+
end
|
54
|
+
end
|
@@ -0,0 +1,17 @@
|
|
1
|
+
module NATS
|
2
|
+
class JetStream
|
3
|
+
module JS
|
4
|
+
module Header
|
5
|
+
Status: 'Status'
|
6
|
+
Desc: 'Description'
|
7
|
+
MsgID: 'Nats-Msg-Id'
|
8
|
+
ExpectedStream: 'Nats-Expected-Stream'
|
9
|
+
ExpectedLastSeq: 'Nats-Expected-Last-Sequence'
|
10
|
+
ExpectedLastSubjSeq: 'Nats-Expected-Last-Subject-Sequence'
|
11
|
+
ExpectedLastMsgID: 'Nats-Expected-Last-Msg-Id'
|
12
|
+
LastConsumerSeq: 'Nats-Last-Consumer'
|
13
|
+
LastStreamSeq: 'Nats-Last-Stream'
|
14
|
+
end
|
15
|
+
end
|
16
|
+
end
|
17
|
+
end
|
@@ -0,0 +1,14 @@
|
|
1
|
+
module NATS
|
2
|
+
class JetStream
|
3
|
+
module JS
|
4
|
+
module Sub
|
5
|
+
attr_reader js: NATS::JetStream
|
6
|
+
attr_reader stream: String
|
7
|
+
attr_reader consumer: String
|
8
|
+
attr_reader nms: String
|
9
|
+
|
10
|
+
def initialize: (Hash[Symbol, untyped]) -> void
|
11
|
+
end
|
12
|
+
end
|
13
|
+
end
|
14
|
+
end
|
@@ -0,0 +1,27 @@
|
|
1
|
+
module NATS
|
2
|
+
class JetStream
|
3
|
+
module JS
|
4
|
+
DefaultAPIPrefix: '$JS.API'
|
5
|
+
|
6
|
+
# class << self
|
7
|
+
def self.next_req_to_json: (Hash[Symbol, untyped]) -> String
|
8
|
+
|
9
|
+
def self.is_status_msg: (NATS::Msg) -> bool
|
10
|
+
|
11
|
+
def self.check_503_error: (NATS::Msg) -> void
|
12
|
+
|
13
|
+
def self.from_msg: (NATS::Msg) -> NATS::JetStream::API::Error
|
14
|
+
|
15
|
+
def self.from_error: (Hash[Symbol, untyped]) -> (
|
16
|
+
NATS::JetStream::Error::ServiceUnavailable |
|
17
|
+
NATS::JetStream::Error::ServerError |
|
18
|
+
NATS::JetStream::Error::StreamNotFound |
|
19
|
+
NATS::JetStream::Error::ConsumerNotFound |
|
20
|
+
NATS::JetStream::Error::NotFound |
|
21
|
+
NATS::JetStream::Error::BadRequest |
|
22
|
+
NATS::JetStream::API::Error
|
23
|
+
)
|
24
|
+
# end class << self
|
25
|
+
end
|
26
|
+
end
|
27
|
+
end
|
@@ -0,0 +1,33 @@
|
|
1
|
+
module NATS
|
2
|
+
class JetStream
|
3
|
+
module Manager
|
4
|
+
def add_stream: (JetStream::API::StreamConfig, ?Hash[Symbol, untyped]) -> JetStream::API::StreamCreateResponse
|
5
|
+
|
6
|
+
def stream_info: (String, ?Hash[Symbol, untyped]) -> JetStream::API::StreamInfo
|
7
|
+
|
8
|
+
def update_stream: (JetStream::API::StreamConfig, ?Hash[Symbol, untyped]) -> JetStream::API::StreamCreateResponse
|
9
|
+
|
10
|
+
def delete_stream: (String, ?Hash[Symbol, untyped]) -> bool
|
11
|
+
|
12
|
+
def add_consumer: (String, JetStream::API::ConsumerConfig, ?Hash[Symbol, untyped]) -> JetStream::API::ConsumerInfo
|
13
|
+
|
14
|
+
def consumer_info: (String, String, ?Hash[Symbol, untyped]) -> JetStream::API::ConsumerInfo
|
15
|
+
|
16
|
+
def delete_consumer: (String, String, ?Hash[Symbol, untyped]) -> bool
|
17
|
+
|
18
|
+
def find_stream_name_by_subject: (String, ?Hash[Symbol, untyped]) -> String
|
19
|
+
|
20
|
+
def get_msg: (String, ?Hash[Symbol, untyped]) -> JetStream::API::RawStreamMsg
|
21
|
+
|
22
|
+
def get_last_msg: (String, String, ?Hash[Symbol, untyped]) -> JetStream::API::RawStreamMsg
|
23
|
+
|
24
|
+
def account_info: () -> Hash[Symbol, untyped]
|
25
|
+
|
26
|
+
private
|
27
|
+
|
28
|
+
def api_request: (String, String, ?Hash[Symbol, untyped]) -> Hash[Symbol, untyped]
|
29
|
+
|
30
|
+
def _lift_msg_to_raw_msg: (NATS::Msg) -> JetStream::API::RawStreamMsg
|
31
|
+
end
|
32
|
+
end
|
33
|
+
end
|
@@ -0,0 +1,35 @@
|
|
1
|
+
module NATS
|
2
|
+
class JetStream
|
3
|
+
module Msg
|
4
|
+
module Ack
|
5
|
+
Ack: '+ACK'
|
6
|
+
Nak: '-NAK'
|
7
|
+
Progress: '+WPI'
|
8
|
+
Term: '+TERM'
|
9
|
+
|
10
|
+
Empty: ''
|
11
|
+
DotSep: '.'
|
12
|
+
NoDomainName: '_'
|
13
|
+
|
14
|
+
Prefix0: '$JS'
|
15
|
+
Prefix1: 'ACK'
|
16
|
+
Domain: 2
|
17
|
+
AccHash: 3
|
18
|
+
Stream: 4
|
19
|
+
Consumer: 5
|
20
|
+
NumDelivered: 6
|
21
|
+
StreamSeq: 7
|
22
|
+
ConsumerSeq: 8
|
23
|
+
Timestamp: 9
|
24
|
+
NumPending: 10
|
25
|
+
|
26
|
+
V1TokenCounts: 9
|
27
|
+
|
28
|
+
V2TokenCounts: 12
|
29
|
+
|
30
|
+
class SequencePair < Struct[untyped]
|
31
|
+
end
|
32
|
+
end
|
33
|
+
end
|
34
|
+
end
|
35
|
+
end
|
@@ -0,0 +1,25 @@
|
|
1
|
+
module NATS
|
2
|
+
class JetStream
|
3
|
+
module Msg
|
4
|
+
module AckMethods
|
5
|
+
def ack: (**Hash[Symbol, untyped]) -> NATS::JetStream::PubAck
|
6
|
+
|
7
|
+
def ack_sync: (**Hash[Symbol, untyped]) -> NATS::JetStream::PubAck
|
8
|
+
|
9
|
+
def nak: (**Hash[Symbol, untyped]) -> NATS::JetStream::PubAck
|
10
|
+
|
11
|
+
def term: (**Hash[Symbol, untyped]) -> NATS::JetStream::PubAck
|
12
|
+
|
13
|
+
def in_progress: (**Hash[Symbol, untyped]) -> NATS::JetStream::PubAck
|
14
|
+
|
15
|
+
def metadata: () -> NATS::JetStream::Msg::Metadata
|
16
|
+
|
17
|
+
private
|
18
|
+
|
19
|
+
def ensure_is_acked_once!: () -> void
|
20
|
+
|
21
|
+
def parse_metadata: (String) -> NATS::JetStream::Msg::Metadata
|
22
|
+
end
|
23
|
+
end
|
24
|
+
end
|
25
|
+
end
|
@@ -0,0 +1,15 @@
|
|
1
|
+
module NATS
|
2
|
+
class JetStream
|
3
|
+
module Msg
|
4
|
+
module Metadata
|
5
|
+
attr_reader sequence: Ack::SequencePair
|
6
|
+
attr_reader num_delivered: Integer
|
7
|
+
attr_reader num_pending: Integer
|
8
|
+
attr_reader timestamp: Time
|
9
|
+
attr_reader stream: String
|
10
|
+
attr_reader consumer: String
|
11
|
+
attr_reader domain: String
|
12
|
+
end
|
13
|
+
end
|
14
|
+
end
|
15
|
+
end
|
@@ -0,0 +1,14 @@
|
|
1
|
+
module NATS
|
2
|
+
class JetStream
|
3
|
+
module PullSubscription
|
4
|
+
class PubAck < Struct[String | Numeric | bool]
|
5
|
+
end
|
6
|
+
|
7
|
+
def next_msg: (untyped) -> void
|
8
|
+
|
9
|
+
def fetch: (Integer, Hash[Symbol, untyped]) -> Array[NATS::Msg]
|
10
|
+
|
11
|
+
def consumer_info: (Hash[Symbol, untyped]) -> NATS::JetStream::ConsumerInfo
|
12
|
+
end
|
13
|
+
end
|
14
|
+
end
|
@@ -0,0 +1,15 @@
|
|
1
|
+
module NATS
|
2
|
+
class JetStream
|
3
|
+
extend Manager
|
4
|
+
extend KeyValue::Manager
|
5
|
+
|
6
|
+
class PubAck < Struct[String | Numeric | bool]
|
7
|
+
end
|
8
|
+
|
9
|
+
def publish: (String, String, Hash[Symbol, untyped]) -> NATS::JetStream::PubAck
|
10
|
+
|
11
|
+
def subscribe: (String, Hash[Symbol, untyped]) { (?(NATS::Msg | String), ?String, ?String, ?Hash[Symbol, untyped]) -> void } -> NATS::JetStream::PushSubscription
|
12
|
+
|
13
|
+
def pull_subscribe: (String, String, Hash[Symbol, untyped]) -> NATS::JetStream::PullSubscription
|
14
|
+
end
|
15
|
+
end
|