@mochabug/adapt-web 0.0.57 → 0.0.59

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/cjs/index.js CHANGED
@@ -20,10 +20,7 @@ const STATUS_REQUEST_TIMEOUT = 408;
20
20
  const STATUS_MAX_ACK_PENDING = 409;
21
21
  const STATUS_FLOW_CONTROL = 100;
22
22
  // Default configuration
23
- const DEFAULT_MAX_MESSAGES = 100;
24
- const DEFAULT_EXPIRES_MS = 30000;
25
- const DEFAULT_POLL_INTERVAL_MS = 1000;
26
- const DEFAULT_THRESHOLD_RATIO = 0.5;
23
+ const MESSAGE_BATCH_SIZE = 10;
27
24
  const natsUrl = "wss://adapt-dev.mochabugapis.com:443/pubsub";
28
25
  const baseUrl = "https://adapt-dev.mochabugapis.com/v1/automations";
29
26
  // REST API functions
@@ -131,25 +128,18 @@ var ConnectionState;
131
128
  class PubsubClient {
132
129
  constructor(debug = false) {
133
130
  this.nc = null;
134
- this.pullSubscription = null;
135
- this.subject = null;
131
+ this.subscription = null;
136
132
  this.streamName = null;
137
133
  this.consumerName = null;
138
134
  this.outputHandler = null;
139
135
  this.sessionHandler = null;
140
136
  this.urlHandler = null;
141
137
  this.isReconnecting = false;
138
+ this.inbox = null;
142
139
  this.connectionState = ConnectionState.DISCONNECTED;
140
+ this.jc = (0, nats_ws_1.JSONCodec)();
143
141
  // Pull consumer state
144
142
  this.pending = 0;
145
- this.pulling = false;
146
- this.pullTimer = null;
147
- this.maxMessages = DEFAULT_MAX_MESSAGES;
148
- this.expiresMs = DEFAULT_EXPIRES_MS;
149
- this.pollIntervalMs = DEFAULT_POLL_INTERVAL_MS;
150
- this.threshold = DEFAULT_MAX_MESSAGES * DEFAULT_THRESHOLD_RATIO;
151
- this.inbox = null;
152
- this.jc = (0, nats_ws_1.JSONCodec)();
153
143
  this.debug = debug;
154
144
  }
155
145
  log(level, message, data) {
@@ -165,21 +155,15 @@ class PubsubClient {
165
155
  }
166
156
  }
167
157
  async subscribe(opts) {
168
- this.log("info", "Subscribe called with:", {
169
- subject: opts.subject,
158
+ this.log("debug", "Subscribe called with:", {
170
159
  consumer: opts.consumer,
171
160
  stream: opts.stream,
172
161
  });
173
- // Validate inputs
174
- if (!validateSubject(opts.subject)) {
175
- throw new Error(`Invalid subject: "${opts.subject}"`);
176
- }
177
162
  if (!opts.consumer || !opts.stream) {
178
163
  throw new Error("Consumer and stream names are required");
179
164
  }
180
- // If we're already connected to the same subject, just update handlers
165
+ // Only update the handlers if we stay on the same consumer and stream
181
166
  if (this.connectionState === ConnectionState.CONNECTED &&
182
- this.subject === opts.subject &&
183
167
  this.streamName === opts.stream &&
184
168
  this.consumerName === opts.consumer) {
185
169
  this.log("debug", "Already connected to same subject, updating handlers only");
@@ -191,24 +175,18 @@ class PubsubClient {
191
175
  if (this.connectionState === ConnectionState.CONNECTING) {
192
176
  throw new Error("Already connecting, please wait");
193
177
  }
194
- // If connected to a different subject, close first
195
- if (this.connectionState === ConnectionState.CONNECTED ||
196
- this.connectionState === ConnectionState.CLOSING) {
178
+ // If already connected, let's ubsubscribe first
179
+ if (this.connectionState === ConnectionState.CONNECTED) {
197
180
  await this.unsubscribe();
198
181
  }
199
182
  try {
200
183
  this.connectionState = ConnectionState.CONNECTING;
201
184
  // Store configuration
202
- this.subject = opts.subject;
203
185
  this.streamName = opts.stream;
204
186
  this.consumerName = opts.consumer;
205
187
  this.outputHandler = opts.onOutput || null;
206
188
  this.sessionHandler = opts.onSession || null;
207
189
  this.urlHandler = opts.onUrl || null;
208
- this.maxMessages = opts.maxMessages || DEFAULT_MAX_MESSAGES;
209
- this.expiresMs = opts.expiresMs || DEFAULT_EXPIRES_MS;
210
- this.pollIntervalMs = opts.pollIntervalMs || DEFAULT_POLL_INTERVAL_MS;
211
- this.threshold = Math.floor(this.maxMessages * DEFAULT_THRESHOLD_RATIO);
212
190
  // Connect to NATS
213
191
  const inboxPrefix = `_INBOX_${opts.consumer}`;
214
192
  this.log("debug", `Connecting with inbox prefix: ${inboxPrefix}`);
@@ -302,23 +280,17 @@ class PubsubClient {
302
280
  if (!this.nc || !this.streamName || !this.consumerName) {
303
281
  throw new Error("Not properly initialized");
304
282
  }
305
- await this.clearSubscriptions();
283
+ this.clearSubscriptions();
306
284
  try {
307
285
  this.log("info", `Creating pull subscription for consumer: ${this.consumerName} on stream: ${this.streamName}`);
308
286
  // Create inbox for receiving messages
309
287
  this.inbox = (0, nats_ws_1.createInbox)(`_INBOX_${this.consumerName}`);
310
288
  const sub = this.nc.subscribe(this.inbox);
311
- this.pullSubscription = sub;
312
- // Reset state
289
+ this.subscription = sub;
313
290
  this.pending = 0;
314
- this.pulling = false;
315
291
  // Start message processing loop
316
292
  this.processMessages(sub);
317
- // Initial pull - use no_wait to check for immediate messages
318
- this.log("debug", `Initial no_wait pull for ${this.maxMessages} messages`);
319
- await this.pull(this.maxMessages, true);
320
- // Schedule periodic pulls for long polling
321
- this.schedulePull();
293
+ this.pull();
322
294
  this.log("info", "Pull subscription created successfully");
323
295
  }
324
296
  catch (error) {
@@ -329,6 +301,7 @@ class PubsubClient {
329
301
  async processMessages(sub) {
330
302
  try {
331
303
  for await (const msg of sub) {
304
+ // Early exit if we're closing or disconnected
332
305
  if (this.connectionState === ConnectionState.CLOSING ||
333
306
  this.connectionState === ConnectionState.DISCONNECTED) {
334
307
  this.log("info", "Subscription closing");
@@ -365,8 +338,12 @@ class PubsubClient {
365
338
  this.log("warn", `Message without valid subject`);
366
339
  return;
367
340
  }
368
- // We got a real message
369
- this.pending = Math.max(0, this.pending - 1);
341
+ // Now, we need to count the messages that are actually on the consumer's subject
342
+ // which is what we are pulling
343
+ this.pending--;
344
+ if (this.pending <= 0) {
345
+ this.pull();
346
+ }
370
347
  // Process the message based on the last part of the subject
371
348
  const parts = msg.subject.split(".");
372
349
  const action = parts[parts.length - 1];
@@ -413,41 +390,24 @@ class PubsubClient {
413
390
  catch (error) {
414
391
  this.log("error", `Error processing ${action} message:`, error);
415
392
  this.nak(msg);
416
- throw error;
417
- }
418
- // Pull more if below threshold
419
- if (this.pending < this.threshold && !this.pulling) {
420
- const pullCount = this.maxMessages - this.pending;
421
- this.pull(pullCount, false);
422
393
  }
423
394
  }
424
395
  async handleStatusMessage(status, description, msg) {
425
396
  switch (status) {
397
+ // This should never be received in a pull consumer without no_wait: true
426
398
  case STATUS_NO_MESSAGES:
427
- this.log("debug", `No messages available: ${description}`);
428
- this.pending = 0;
399
+ this.log("warn", `No messages available: ${description}`);
400
+ this.log("debug", "Headers", msg.headers);
429
401
  break;
402
+ // This should never be received in a pull consumer without expires: ns
430
403
  case STATUS_REQUEST_TIMEOUT:
431
- this.log("debug", `Request timeout: ${description}`);
432
- if (this.pending > 0) {
433
- this.pending--;
434
- }
435
- // Check if we have pending messages info from headers
436
- if (msg.headers) {
437
- const pendingMsgs = msg.headers.get("Nats-Pending-Messages");
438
- if (pendingMsgs) {
439
- this.log("debug", `Server reports ${pendingMsgs} pending messages`);
440
- }
441
- }
404
+ this.log("warn", `Request timeout: ${description}`);
405
+ this.log("debug", "Headers", msg.headers);
442
406
  break;
443
407
  case STATUS_MAX_ACK_PENDING:
444
- this.log("warn", `Max ack pending: ${description}`);
445
- this.pending = 0;
446
- setTimeout(() => {
447
- if (this.connectionState === ConnectionState.CONNECTED) {
448
- this.pull(this.maxMessages, false);
449
- }
450
- }, 5000);
408
+ this.log("error", `Max ack pending: ${description}`);
409
+ this.log("error", "You are throwing excpetion in your handlers or processing messages too slowly. Please ensure you are acknowledging messages properly.");
410
+ await this.unsubscribe();
451
411
  break;
452
412
  case STATUS_FLOW_CONTROL:
453
413
  this.log("debug", `Flow control: ${description}`);
@@ -478,97 +438,59 @@ class PubsubClient {
478
438
  }
479
439
  this.log("debug", `Sending ACK for message: '${msg.subject}' on '${msg.reply}'`);
480
440
  this.nc.publish(msg.reply, new Uint8Array(0));
481
- this.log("debug", `ACK sent for message: '${msg.subject}' on '${msg.reply}'`);
482
441
  }
483
- async pull(batch, noWait = false) {
484
- if (this.pulling || !this.nc || !this.inbox || batch <= 0) {
485
- return;
442
+ pull() {
443
+ if (!this.nc || !this.inbox) {
444
+ this.log("error", "NATS connection or inbox not initialized");
445
+ throw new Error("NATS connection or inbox not initialized");
486
446
  }
487
447
  if (this.connectionState !== ConnectionState.CONNECTED) {
448
+ this.log("warn", "Not connected, cannot pull messages");
449
+ return;
450
+ }
451
+ if (this.pending > 0) {
452
+ this.log("warn", `Already have outstanding messages: ${this.pending}`);
488
453
  return;
489
454
  }
490
- this.pulling = true;
491
455
  try {
492
456
  const pullSubject = `${CONSUMER_MSG_NEXT_PREFIX}${this.streamName}.${this.consumerName}`;
493
- const request = {
494
- batch: batch,
495
- };
496
- if (noWait) {
497
- request.no_wait = true;
498
- }
499
- else if (this.expiresMs > 0) {
500
- request.expires = this.expiresMs * 1000000; // Convert to nanoseconds
501
- }
502
- this.nc.publish(pullSubject, this.jc.encode(request), {
457
+ this.log("debug", `Pulling messages from: ${pullSubject}`);
458
+ this.nc.publish(pullSubject, this.jc.encode({
459
+ batch: MESSAGE_BATCH_SIZE,
460
+ no_wait: false,
461
+ }), {
503
462
  reply: this.inbox,
504
463
  });
505
- this.pending += batch;
506
- this.log("debug", `Pull sent: batch=${batch}, pending=${this.pending}, noWait=${noWait}`);
464
+ this.pending = MESSAGE_BATCH_SIZE;
465
+ this.log("debug", `Pull sent: batch=${MESSAGE_BATCH_SIZE}, pending=${this.pending}`);
507
466
  }
508
467
  catch (error) {
509
468
  this.log("error", "Error sending pull request:", error);
510
- this.pending = Math.max(0, this.pending - batch);
511
469
  throw error;
512
470
  }
513
- finally {
514
- this.pulling = false;
515
- }
516
- }
517
- schedulePull() {
518
- if (this.pullTimer) {
519
- clearTimeout(this.pullTimer);
520
- }
521
- if (this.connectionState !== ConnectionState.CONNECTED) {
522
- return;
523
- }
524
- this.pullTimer = setTimeout(() => {
525
- if (this.connectionState !== ConnectionState.CONNECTED) {
526
- return;
527
- }
528
- // Maintain batch size
529
- if (this.pending < this.threshold && !this.pulling) {
530
- const pullCount = this.maxMessages - this.pending;
531
- this.log("debug", `Scheduled pull: ${pullCount} messages`);
532
- this.pull(pullCount, false);
533
- }
534
- else if (this.pending === 0 && !this.pulling) {
535
- // No pending at all, pull full batch
536
- this.log("debug", "No pending, pulling full batch");
537
- this.pull(this.maxMessages, false);
538
- }
539
- this.schedulePull();
540
- }, this.pollIntervalMs);
541
471
  }
542
- async clearSubscriptions() {
543
- if (this.pullTimer) {
544
- clearTimeout(this.pullTimer);
545
- this.pullTimer = null;
546
- }
547
- if (!this.pullSubscription)
472
+ clearSubscriptions() {
473
+ if (!this.subscription)
548
474
  return;
549
475
  this.log("debug", "Clearing subscription");
550
476
  try {
551
- this.pullSubscription.unsubscribe();
477
+ this.subscription.unsubscribe();
552
478
  this.log("debug", "✓ Subscription cleared");
553
479
  }
554
480
  catch (error) {
555
481
  this.log("error", "Error clearing subscription:", error);
556
482
  }
557
- this.pullSubscription = null;
483
+ this.subscription = null;
558
484
  }
559
485
  async resubscribe() {
560
486
  if (!this.streamName || !this.consumerName)
561
487
  return;
562
488
  this.log("info", "Resubscribing after reconnection");
563
- // Clear old state
564
- this.pending = 0;
565
- this.pulling = false;
566
489
  // Recreate subscription
567
490
  await this.createPullSubscription();
568
491
  this.log("info", "✓ Resubscribed successfully");
569
492
  }
570
493
  cleanupState() {
571
- this.subject = null;
572
494
  this.streamName = null;
573
495
  this.consumerName = null;
574
496
  this.outputHandler = null;
@@ -576,7 +498,6 @@ class PubsubClient {
576
498
  this.urlHandler = null;
577
499
  this.inbox = null;
578
500
  this.pending = 0;
579
- this.pulling = false;
580
501
  }
581
502
  async unsubscribe() {
582
503
  if (this.connectionState === ConnectionState.DISCONNECTED ||
@@ -585,7 +506,7 @@ class PubsubClient {
585
506
  }
586
507
  this.log("info", "Starting unsubscribe process");
587
508
  this.connectionState = ConnectionState.CLOSING;
588
- await this.clearSubscriptions();
509
+ this.clearSubscriptions();
589
510
  this.cleanupState();
590
511
  this.isReconnecting = false;
591
512
  if (this.nc && !this.nc.isClosed()) {
@@ -609,18 +530,6 @@ class PubsubClient {
609
530
  }
610
531
  }
611
532
  exports.PubsubClient = PubsubClient;
612
- // Helper functions
613
- function validateSubject(subject) {
614
- if (!subject || subject.includes(" ") || subject.includes("\t")) {
615
- return false;
616
- }
617
- if (subject.includes("..") ||
618
- subject.startsWith(".") ||
619
- subject.endsWith(".")) {
620
- return false;
621
- }
622
- return true;
623
- }
624
533
  function parseOutputData(data) {
625
534
  return Object.fromEntries(Object.entries(data).map(([key, value]) => {
626
535
  try {
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":";;;AA4CA,oCA4BC;AAED,wCAsBC;AAED,gCAoBC;AAED,gCAoBC;AAED,4BAoBC;AAED,kCAiBC;AArLD,iDAAwD;AACxD,gDAAkE;AAClE,qCASiB;AACjB,sGAawE;AAExE,mCAAmC;AACnC,MAAM,wBAAwB,GAAG,4BAA4B,CAAC;AAC9D,MAAM,YAAY,GAAG,IAAI,WAAW,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;AAEtD,yBAAyB;AACzB,MAAM,kBAAkB,GAAG,GAAG,CAAC;AAC/B,MAAM,sBAAsB,GAAG,GAAG,CAAC;AACnC,MAAM,sBAAsB,GAAG,GAAG,CAAC;AACnC,MAAM,mBAAmB,GAAG,GAAG,CAAC;AAEhC,wBAAwB;AACxB,MAAM,kBAAkB,GAAG,EAAE,CAAC;AAE9B,MAAM,OAAO,GAAG,6CAA6C,CAAC;AAC9D,MAAM,OAAO,GAAG,mDAAmD,CAAC;AAEpE,qBAAqB;AACd,KAAK,UAAU,YAAY,CAChC,GAA4B,EAC5B,KAAc;IAEd,MAAM,OAAO,GAAG,IAAI,OAAO,CAAC;QAC1B,cAAc,EAAE,kBAAkB;QAClC,eAAe,EAAE,kBAAkB;KACpC,CAAC,CAAC;IACH,IAAI,KAAK,EAAE,CAAC;QACV,OAAO,CAAC,GAAG,CAAC,eAAe,EAAE,UAAU,KAAK,EAAE,CAAC,CAAC;IAClD,CAAC;IAED,MAAM,QAAQ,GAAG,MAAM,KAAK,CAC1B,GAAG,OAAO,IAAI,GAAG,CAAC,UAAW,CAAC,YAAY,IAAI,GAAG,CAAC,UAAW,CAAC,KAAK,IACjE,GAAG,CAAC,UAAW,CAAC,UAClB,QAAQ,EACR;QACE,MAAM,EAAE,MAAM;QACd,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC;QACzB,OAAO;KACR,CACF,CAAC;IAEF,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;QACjB,MAAM,IAAI,eAAe,CAAC,QAAQ,CAAC,CAAC;IACtC,CAAC;IAED,OAAO,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC;AAC/B,CAAC;AAEM,KAAK,UAAU,cAAc,CAClC,UAA4B,EAC5B,YAAoB;IAEpB,MAAM,QAAQ,GAAG,MAAM,KAAK,CAC1B,GAAG,OAAO,IAAI,UAAU,CAAC,YAAY,IAAI,UAAU,CAAC,KAAK,IAAI,UAAU,CAAC,UAAU,kBAAkB,EACpG;QACE,MAAM,EAAE,MAAM;QACd,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC;QAChC,OAAO,EAAE;YACP,cAAc,EAAE,kBAAkB;YAClC,eAAe,EAAE,kBAAkB;YACnC,aAAa,EAAE,UAAU,YAAY,EAAE;SACxC;KACF,CACF,CAAC;IAEF,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;QACjB,MAAM,IAAI,eAAe,CAAC,QAAQ,CAAC,CAAC;IACtC,CAAC;IAED,OAAO,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC;AAC/B,CAAC;AAEM,KAAK,UAAU,UAAU,CAC9B,UAA4B,EAC5B,YAAoB;IAEpB,MAAM,QAAQ,GAAG,MAAM,KAAK,CAC1B,GAAG,OAAO,IAAI,UAAU,CAAC,YAAY,IAAI,UAAU,CAAC,KAAK,IAAI,UAAU,CAAC,UAAU,iBAAiB,EACnG;QACE,MAAM,EAAE,KAAK;QACb,OAAO,EAAE;YACP,eAAe,EAAE,kBAAkB;YACnC,aAAa,EAAE,UAAU,YAAY,EAAE;SACxC;KACF,CACF,CAAC;IAEF,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;QACjB,MAAM,IAAI,eAAe,CAAC,QAAQ,CAAC,CAAC;IACtC,CAAC;IAED,OAAO,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC;AAC/B,CAAC;AAEM,KAAK,UAAU,UAAU,CAC9B,UAA4B,EAC5B,YAAoB;IAEpB,MAAM,QAAQ,GAAG,MAAM,KAAK,CAC1B,GAAG,OAAO,IAAI,UAAU,CAAC,YAAY,IAAI,UAAU,CAAC,KAAK,IAAI,UAAU,CAAC,UAAU,iBAAiB,EACnG;QACE,MAAM,EAAE,KAAK;QACb,OAAO,EAAE;YACP,eAAe,EAAE,kBAAkB;YACnC,aAAa,EAAE,UAAU,YAAY,EAAE;SACxC;KACF,CACF,CAAC;IAEF,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;QACjB,MAAM,IAAI,eAAe,CAAC,QAAQ,CAAC,CAAC;IACtC,CAAC;IAED,OAAO,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC;AAC/B,CAAC;AAEM,KAAK,UAAU,QAAQ,CAC5B,UAA4B,EAC5B,YAAoB;IAEpB,MAAM,QAAQ,GAAG,MAAM,KAAK,CAC1B,GAAG,OAAO,IAAI,UAAU,CAAC,YAAY,IAAI,UAAU,CAAC,KAAK,IAAI,UAAU,CAAC,UAAU,eAAe,EACjG;QACE,MAAM,EAAE,KAAK;QACb,OAAO,EAAE;YACP,eAAe,EAAE,kBAAkB;YACnC,aAAa,EAAE,UAAU,YAAY,EAAE;SACxC;KACF,CACF,CAAC;IAEF,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;QACjB,MAAM,IAAI,eAAe,CAAC,QAAQ,CAAC,CAAC;IACtC,CAAC;IAED,OAAO,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC;AAC/B,CAAC;AAEM,KAAK,UAAU,WAAW,CAC/B,UAA4B,EAC5B,YAAoB;IAEpB,MAAM,QAAQ,GAAG,MAAM,KAAK,CAC1B,GAAG,OAAO,IAAI,UAAU,CAAC,YAAY,IAAI,UAAU,CAAC,KAAK,IAAI,UAAU,CAAC,UAAU,eAAe,EACjG;QACE,MAAM,EAAE,QAAQ;QAChB,OAAO,EAAE;YACP,aAAa,EAAE,UAAU,YAAY,EAAE;SACxC;KACF,CACF,CAAC;IAEF,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;QACjB,MAAM,IAAI,eAAe,CAAC,QAAQ,CAAC,CAAC;IACtC,CAAC;AACH,CAAC;AAED,MAAa,eAAgB,SAAQ,KAAK;IAKxC,YAAY,QAAkB;QAC5B,KAAK,CAAC,eAAe,QAAQ,CAAC,MAAM,IAAI,QAAQ,CAAC,UAAU,EAAE,CAAC,CAAC;QAC/D,IAAI,CAAC,IAAI,GAAG,iBAAiB,CAAC;QAC9B,IAAI,CAAC,MAAM,GAAG,QAAQ,CAAC,MAAM,CAAC;QAC9B,IAAI,CAAC,UAAU,GAAG,QAAQ,CAAC,UAAU,CAAC;QACtC,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;IAC3B,CAAC;CACF;AAZD,0CAYC;AAqBD,oBAAoB;AACpB,IAAK,eAKJ;AALD,WAAK,eAAe;IAClB,gDAA6B,CAAA;IAC7B,4CAAyB,CAAA;IACzB,0CAAuB,CAAA;IACvB,sCAAmB,CAAA;AACrB,CAAC,EALI,eAAe,KAAf,eAAe,QAKnB;AAED,MAAa,YAAY;IAiBvB,YAAY,QAAiB,KAAK;QAhB1B,OAAE,GAA0B,IAAI,CAAC;QACjC,iBAAY,GAAwB,IAAI,CAAC;QACzC,eAAU,GAAkB,IAAI,CAAC;QACjC,iBAAY,GAAkB,IAAI,CAAC;QACnC,kBAAa,GAAsC,IAAI,CAAC;QACxD,mBAAc,GAA4C,IAAI,CAAC;QAC/D,eAAU,GAAoC,IAAI,CAAC;QACnD,mBAAc,GAAG,KAAK,CAAC;QACvB,UAAK,GAAkB,IAAI,CAAC;QAC5B,oBAAe,GAAoB,eAAe,CAAC,YAAY,CAAC;QAEhE,OAAE,GAAG,IAAA,mBAAS,GAAE,CAAC;QAEzB,sBAAsB;QACd,YAAO,GAAG,CAAC,CAAC;QAGlB,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;IACrB,CAAC;IAEO,GAAG,CACT,KAA0C,EAC1C,OAAe,EACf,IAAU;QAEV,IAAI,CAAC,IAAI,CAAC,KAAK,IAAI,KAAK,KAAK,OAAO;YAAE,OAAO;QAE7C,MAAM,MAAM,GAAG,UAAU,CAAC;QAC1B,MAAM,WAAW,GAAG,GAAG,MAAM,IAAI,OAAO,EAAE,CAAC;QAE3C,IAAI,IAAI,KAAK,SAAS,EAAE,CAAC;YACvB,OAAO,CAAC,KAAK,CAAC,CAAC,WAAW,EAAE,IAAI,CAAC,CAAC;QACpC,CAAC;aAAM,CAAC;YACN,OAAO,CAAC,KAAK,CAAC,CAAC,WAAW,CAAC,CAAC;QAC9B,CAAC;IACH,CAAC;IAEM,KAAK,CAAC,SAAS,CAAC,IAAyB;QAC9C,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE,wBAAwB,EAAE;YAC1C,QAAQ,EAAE,IAAI,CAAC,QAAQ;YACvB,MAAM,EAAE,IAAI,CAAC,MAAM;SACpB,CAAC,CAAC;QACH,IAAI,CAAC,IAAI,CAAC,QAAQ,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC;YACnC,MAAM,IAAI,KAAK,CAAC,wCAAwC,CAAC,CAAC;QAC5D,CAAC;QAED,sEAAsE;QACtE,IACE,IAAI,CAAC,eAAe,KAAK,eAAe,CAAC,SAAS;YAClD,IAAI,CAAC,UAAU,KAAK,IAAI,CAAC,MAAM;YAC/B,IAAI,CAAC,YAAY,KAAK,IAAI,CAAC,QAAQ,EACnC,CAAC;YACD,IAAI,CAAC,GAAG,CACN,OAAO,EACP,2DAA2D,CAC5D,CAAC;YACF,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC;YAC3C,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,SAAS,IAAI,IAAI,CAAC;YAC7C,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC;YACrC,OAAO;QACT,CAAC;QAED,IAAI,IAAI,CAAC,eAAe,KAAK,eAAe,CAAC,UAAU,EAAE,CAAC;YACxD,MAAM,IAAI,KAAK,CAAC,iCAAiC,CAAC,CAAC;QACrD,CAAC;QAED,gDAAgD;QAChD,IAAI,IAAI,CAAC,eAAe,KAAK,eAAe,CAAC,SAAS,EAAE,CAAC;YACvD,MAAM,IAAI,CAAC,WAAW,EAAE,CAAC;QAC3B,CAAC;QAED,IAAI,CAAC;YACH,IAAI,CAAC,eAAe,GAAG,eAAe,CAAC,UAAU,CAAC;YAElD,sBAAsB;YACtB,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,MAAM,CAAC;YAC9B,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,QAAQ,CAAC;YAClC,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC;YAC3C,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,SAAS,IAAI,IAAI,CAAC;YAC7C,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC;YAErC,kBAAkB;YAClB,MAAM,WAAW,GAAG,UAAU,IAAI,CAAC,QAAQ,EAAE,CAAC;YAC9C,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE,iCAAiC,WAAW,EAAE,CAAC,CAAC;YAElE,IAAI,CAAC,EAAE,GAAG,MAAM,IAAA,iBAAO,EAAC;gBACtB,OAAO,EAAE,CAAC,OAAO,CAAC;gBAClB,aAAa,EAAE,mBAAmB,CAAC,IAAI,CAAC,WAAW,CAAC;gBACpD,WAAW,EAAE,WAAW;gBACxB,SAAS,EAAE,IAAI;gBACf,MAAM,EAAE,IAAI;gBACZ,oBAAoB,EAAE,CAAC,CAAC;gBACxB,iBAAiB,EAAE,IAAI;gBACvB,YAAY,EAAE,EAAE,GAAG,IAAI;aACxB,CAAC,CAAC;YAEH,IAAI,CAAC,eAAe,GAAG,eAAe,CAAC,SAAS,CAAC;YACjD,IAAI,CAAC,GAAG,CAAC,MAAM,EAAE,wBAAwB,CAAC,CAAC;YAE3C,IAAI,CAAC,qBAAqB,EAAE,CAAC;YAC7B,MAAM,IAAI,CAAC,sBAAsB,EAAE,CAAC;QACtC,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,CAAC,eAAe,GAAG,eAAe,CAAC,YAAY,CAAC;YACpD,IAAI,CAAC,YAAY,EAAE,CAAC;YAEpB,IAAI,IAAI,CAAC,EAAE,EAAE,CAAC;gBACZ,IAAI,CAAC;oBACH,MAAM,IAAI,CAAC,EAAE,CAAC,KAAK,EAAE,CAAC;gBACxB,CAAC;gBAAC,OAAO,UAAU,EAAE,CAAC;oBACpB,IAAI,CAAC,GAAG,CACN,OAAO,EACP,kDAAkD,EAClD,UAAU,CACX,CAAC;gBACJ,CAAC;gBACD,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC;YACjB,CAAC;YAED,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE,sBAAsB,EAAE,KAAK,CAAC,CAAC;YACjD,MAAM,KAAK,CAAC;QACd,CAAC;IACH,CAAC;IAEO,qBAAqB;QAC3B,IAAI,CAAC,IAAI,CAAC,EAAE;YAAE,OAAO;QAErB,CAAC,KAAK,IAAI,EAAE;YACV,IAAI,CAAC;gBACH,IAAI,KAAK,EAAE,MAAM,MAAM,IAAI,IAAI,CAAC,EAAG,CAAC,MAAM,EAAE,EAAE,CAAC;oBAC7C,QAAQ,MAAM,CAAC,IAAI,EAAE,CAAC;wBACpB,KAAK,YAAY;4BACf,IAAI,CAAC,GAAG,CAAC,MAAM,EAAE,gBAAgB,EAAE,EAAE,IAAI,EAAE,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC;4BAC1D,MAAM;wBAER,KAAK,WAAW;4BACd,IAAI,CAAC,GAAG,CAAC,MAAM,EAAE,eAAe,CAAC,CAAC;4BAClC,IACE,CAAC,IAAI,CAAC,cAAc;gCACpB,IAAI,CAAC,eAAe,KAAK,eAAe,CAAC,SAAS,EAClD,CAAC;gCACD,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC;gCAC3B,IAAI,CAAC;oCACH,MAAM,IAAI,CAAC,WAAW,EAAE,CAAC;gCAC3B,CAAC;gCAAC,OAAO,KAAK,EAAE,CAAC;oCACf,IAAI,CAAC,GAAG,CACN,OAAO,EACP,2CAA2C,EAC3C,KAAK,CACN,CAAC;gCACJ,CAAC;wCAAS,CAAC;oCACT,IAAI,CAAC,cAAc,GAAG,KAAK,CAAC;gCAC9B,CAAC;4BACH,CAAC;4BACD,MAAM;wBAER,KAAK,OAAO;4BACV,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE,mBAAmB,EAAE,MAAM,CAAC,IAAI,CAAC,CAAC;4BACpD,MAAM;wBAER,KAAK,QAAQ;4BACX,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE,0BAA0B,EAAE,MAAM,CAAC,IAAI,CAAC,CAAC;4BAC3D,MAAM;wBAER,KAAK,KAAK;4BACR,IAAI,CAAC,GAAG,CAAC,MAAM,EAAE,sCAAsC,CAAC,CAAC;4BACzD,MAAM;wBAER,KAAK,cAAc;4BACjB,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE,4BAA4B,CAAC,CAAC;4BAChD,MAAM;wBAER,KAAK,iBAAiB;4BACpB,IAAI,CAAC,GAAG,CAAC,MAAM,EAAE,yCAAyC,CAAC,CAAC;4BAC5D,MAAM;wBAER;4BACE,IAAI,MAAM,CAAC,IAAI,KAAK,WAAW,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC;gCAC9C,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE,iBAAiB,MAAM,CAAC,IAAI,EAAE,EAAE,MAAM,CAAC,IAAI,CAAC,CAAC;4BACjE,CAAC;oBACL,CAAC;gBACH,CAAC;YACH,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,IAAI,IAAI,CAAC,eAAe,KAAK,eAAe,CAAC,OAAO,EAAE,CAAC;oBACrD,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE,6BAA6B,EAAE,KAAK,CAAC,CAAC;gBAC1D,CAAC;YACH,CAAC;QACH,CAAC,CAAC,EAAE,CAAC;IACP,CAAC;IAEO,KAAK,CAAC,sBAAsB;QAClC,IAAI,CAAC,IAAI,CAAC,EAAE,IAAI,CAAC,IAAI,CAAC,UAAU,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,CAAC;YACvD,MAAM,IAAI,KAAK,CAAC,0BAA0B,CAAC,CAAC;QAC9C,CAAC;QAED,IAAI,CAAC,kBAAkB,EAAE,CAAC;QAE1B,IAAI,CAAC;YACH,IAAI,CAAC,GAAG,CACN,MAAM,EACN,4CAA4C,IAAI,CAAC,YAAY,eAAe,IAAI,CAAC,UAAU,EAAE,CAC9F,CAAC;YAEF,sCAAsC;YACtC,IAAI,CAAC,KAAK,GAAG,IAAA,qBAAW,EAAC,UAAU,IAAI,CAAC,YAAY,EAAE,CAAC,CAAC;YACxD,MAAM,GAAG,GAAG,IAAI,CAAC,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YAC1C,IAAI,CAAC,YAAY,GAAG,GAAG,CAAC;YACxB,IAAI,CAAC,OAAO,GAAG,CAAC,CAAC;YAEjB,gCAAgC;YAChC,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,CAAC;YAC1B,IAAI,CAAC,IAAI,EAAE,CAAC;YAEZ,IAAI,CAAC,GAAG,CAAC,MAAM,EAAE,wCAAwC,CAAC,CAAC;QAC7D,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE,iCAAiC,EAAE,KAAK,CAAC,CAAC;YAC5D,MAAM,KAAK,CAAC;QACd,CAAC;IACH,CAAC;IAEO,KAAK,CAAC,eAAe,CAAC,GAAiB;QAC7C,IAAI,CAAC;YACH,IAAI,KAAK,EAAE,MAAM,GAAG,IAAI,GAAG,EAAE,CAAC;gBAC5B,8CAA8C;gBAC9C,IACE,IAAI,CAAC,eAAe,KAAK,eAAe,CAAC,OAAO;oBAChD,IAAI,CAAC,eAAe,KAAK,eAAe,CAAC,YAAY,EACrD,CAAC;oBACD,IAAI,CAAC,GAAG,CAAC,MAAM,EAAE,sBAAsB,CAAC,CAAC;oBACzC,MAAM;gBACR,CAAC;gBAED,IAAI,CAAC;oBACH,MAAM,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC;gBAChC,CAAC;gBAAC,OAAO,KAAK,EAAE,CAAC;oBACf,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE,yBAAyB,EAAE,KAAK,CAAC,CAAC;gBACtD,CAAC;YACH,CAAC;QACH,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,IAAI,CAAC,eAAe,KAAK,eAAe,CAAC,OAAO,EAAE,CAAC;gBACrD,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE,2BAA2B,EAAE,KAAK,CAAC,CAAC;YACxD,CAAC;QACH,CAAC;IACH,CAAC;IAEO,KAAK,CAAC,aAAa,CAAC,GAAQ;QAClC,OAAO,CAAC,GAAG,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC;QAE1B,0EAA0E;QAC1E,IAAI,GAAG,CAAC,OAAO,EAAE,CAAC;YAChB,MAAM,MAAM,GAAG,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC;YAChC,MAAM,WAAW,GAAG,GAAG,CAAC,OAAO,CAAC,WAAW,CAAC;YAC5C,IAAI,MAAM,EAAE,CAAC;gBACX,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE,mBAAmB,MAAM,MAAM,WAAW,EAAE,CAAC,CAAC;gBAChE,MAAM,IAAI,CAAC,mBAAmB,CAAC,MAAM,EAAE,WAAW,EAAE,GAAG,CAAC,CAAC;gBACzD,OAAO;YACT,CAAC;QACH,CAAC;QAED,gCAAgC;QAChC,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE,CAAC;YACjB,IAAI,CAAC,GAAG,CAAC,MAAM,EAAE,+BAA+B,CAAC,CAAC;YAClD,OAAO;QACT,CAAC;QAED,iFAAiF;QACjF,+BAA+B;QAC/B,IAAI,CAAC,OAAO,EAAE,CAAC;QACf,IAAI,IAAI,CAAC,OAAO,IAAI,CAAC,EAAE,CAAC;YACtB,IAAI,CAAC,IAAI,EAAE,CAAC;QACd,CAAC;QAED,4DAA4D;QAC5D,MAAM,KAAK,GAAG,GAAG,CAAC,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QACrC,MAAM,MAAM,GAAG,KAAK,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;QACvC,IAAI,CAAC,GAAG,CAAC,MAAM,EAAE,cAAc,MAAM,OAAO,GAAG,CAAC,OAAO,EAAE,CAAC,CAAC;QAE3D,mCAAmC;QACnC,IAAI,CAAC,GAAG,CAAC,IAAI,IAAI,GAAG,CAAC,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACvC,IAAI,CAAC,GAAG,CAAC,MAAM,EAAE,4BAA4B,MAAM,EAAE,CAAC,CAAC;YACvD,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;YACd,OAAO;QACT,CAAC;QAED,IAAI,CAAC;YACH,QAAQ,MAAM,EAAE,CAAC;gBACf,KAAK,QAAQ,CAAC,CAAC,CAAC;oBACd,IAAI,IAAI,CAAC,aAAa,EAAE,CAAC;wBACvB,MAAM,MAAM,GAAG,IAAA,qBAAU,EAAC,gCAAY,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC;wBAClD,IAAI,CAAC,aAAa,CAAC;4BACjB,MAAM,EAAE,MAAM,CAAC,MAAM;4BACrB,IAAI,EAAE,MAAM,CAAC,IAAI;4BACjB,IAAI,EAAE,eAAe,CAAC,MAAM,CAAC,IAAI,CAAC;4BAClC,OAAO,EAAE,IAAA,mBAAa,EAAC,MAAM,CAAC,OAAQ,CAAC;yBACxC,CAAC,CAAC;oBACL,CAAC;oBACD,MAAM;gBACR,CAAC;gBACD,KAAK,SAAS,CAAC,CAAC,CAAC;oBACf,IAAI,IAAI,CAAC,cAAc,EAAE,CAAC;wBACxB,MAAM,OAAO,GAAG,IAAA,qBAAU,EAAC,iCAAa,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC;wBACpD,IAAI,CAAC,cAAc,CAAC,IAAA,iBAAM,EAAC,iCAAa,EAAE,OAAO,CAAC,CAAC,CAAC;oBACtD,CAAC;oBACD,MAAM;gBACR,CAAC;gBACD,KAAK,KAAK,CAAC,CAAC,CAAC;oBACX,IAAI,IAAI,CAAC,UAAU,EAAE,CAAC;wBACpB,MAAM,GAAG,GAAG,IAAA,qBAAU,EAAC,6BAAS,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC;wBAC5C,IAAI,CAAC,UAAU,CAAC,IAAA,iBAAM,EAAC,6BAAS,EAAE,GAAG,CAAC,CAAC,CAAC;oBAC1C,CAAC;oBACD,MAAM;gBACR,CAAC;gBACD;oBACE,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE,2BAA2B,MAAM,EAAE,CAAC,CAAC;YAC3D,CAAC;YACD,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QAChB,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE,oBAAoB,MAAM,WAAW,EAAE,KAAK,CAAC,CAAC;YAChE,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QAChB,CAAC;IACH,CAAC;IAEO,KAAK,CAAC,mBAAmB,CAC/B,MAAc,EACd,WAA+B,EAC/B,GAAQ;QAER,QAAQ,MAAM,EAAE,CAAC;YACf,yEAAyE;YACzE,KAAK,kBAAkB;gBACrB,IAAI,CAAC,GAAG,CAAC,MAAM,EAAE,0BAA0B,WAAW,EAAE,CAAC,CAAC;gBAC1D,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE,SAAS,EAAE,GAAG,CAAC,OAAO,CAAC,CAAC;gBAC1C,MAAM;YAER,uEAAuE;YACvE,KAAK,sBAAsB;gBACzB,IAAI,CAAC,GAAG,CAAC,MAAM,EAAE,oBAAoB,WAAW,EAAE,CAAC,CAAC;gBACpD,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE,SAAS,EAAE,GAAG,CAAC,OAAO,CAAC,CAAC;gBAC1C,MAAM;YAER,KAAK,sBAAsB;gBACzB,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE,oBAAoB,WAAW,EAAE,CAAC,CAAC;gBACrD,IAAI,CAAC,GAAG,CACN,OAAO,EACP,uIAAuI,CACxI,CAAC;gBACF,MAAM,IAAI,CAAC,WAAW,EAAE,CAAC;gBACzB,MAAM;YAER,KAAK,mBAAmB;gBACtB,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE,iBAAiB,WAAW,EAAE,CAAC,CAAC;gBAClD,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;gBACd,MAAM;YAER;gBACE,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE,kBAAkB,MAAM,KAAK,WAAW,EAAE,CAAC,CAAC;QAClE,CAAC;IACH,CAAC;IAEO,KAAK,CAAC,GAAG,CAAC,GAAQ;QACxB,IAAI,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,EAAE,EAAE,CAAC;YACrB,MAAM,IAAI,KAAK,CAAC,+CAA+C,CAAC,CAAC;QACnE,CAAC;QACD,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE,CAAC;YACf,IAAI,CAAC,GAAG,CAAC,MAAM,EAAE,sCAAsC,CAAC,CAAC;YACzD,OAAO;QACT,CAAC;QAED,IAAI,CAAC,GAAG,CACN,OAAO,EACP,6BAA6B,GAAG,CAAC,OAAO,SAAS,GAAG,CAAC,KAAK,GAAG,CAC9D,CAAC;QACF,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,EAAE,YAAY,CAAC,CAAC;IAC3C,CAAC;IAEO,GAAG,CAAC,GAAQ;QAClB,IAAI,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,EAAE,EAAE,CAAC;YACrB,MAAM,IAAI,KAAK,CAAC,+CAA+C,CAAC,CAAC;QACnE,CAAC;QACD,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE,CAAC;YACf,IAAI,CAAC,GAAG,CAAC,MAAM,EAAE,sCAAsC,CAAC,CAAC;YACzD,OAAO;QACT,CAAC;QAED,IAAI,CAAC,GAAG,CACN,OAAO,EACP,6BAA6B,GAAG,CAAC,OAAO,SAAS,GAAG,CAAC,KAAK,GAAG,CAC9D,CAAC;QACF,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,EAAE,IAAI,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC;IAChD,CAAC;IAEO,IAAI;QACV,IAAI,CAAC,IAAI,CAAC,EAAE,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC;YAC5B,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE,0CAA0C,CAAC,CAAC;YAC9D,MAAM,IAAI,KAAK,CAAC,0CAA0C,CAAC,CAAC;QAC9D,CAAC;QACD,IAAI,IAAI,CAAC,eAAe,KAAK,eAAe,CAAC,SAAS,EAAE,CAAC;YACvD,IAAI,CAAC,GAAG,CAAC,MAAM,EAAE,qCAAqC,CAAC,CAAC;YACxD,OAAO;QACT,CAAC;QACD,IAAI,IAAI,CAAC,OAAO,GAAG,CAAC,EAAE,CAAC;YACrB,IAAI,CAAC,GAAG,CAAC,MAAM,EAAE,sCAAsC,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC;YACvE,OAAO;QACT,CAAC;QAED,IAAI,CAAC;YACH,MAAM,WAAW,GAAG,GAAG,wBAAwB,GAAG,IAAI,CAAC,UAAU,IAAI,IAAI,CAAC,YAAY,EAAE,CAAC;YACzF,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE,0BAA0B,WAAW,EAAE,CAAC,CAAC;YAC3D,IAAI,CAAC,EAAE,CAAC,OAAO,CACb,WAAW,EACX,IAAI,CAAC,EAAE,CAAC,MAAM,CAAC;gBACb,KAAK,EAAE,kBAAkB;gBACzB,OAAO,EAAE,KAAK;aACf,CAAC,EACF;gBACE,KAAK,EAAE,IAAI,CAAC,KAAK;aAClB,CACF,CAAC;YACF,IAAI,CAAC,OAAO,GAAG,kBAAkB,CAAC;YAClC,IAAI,CAAC,GAAG,CACN,OAAO,EACP,oBAAoB,kBAAkB,aAAa,IAAI,CAAC,OAAO,EAAE,CAClE,CAAC;QACJ,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE,6BAA6B,EAAE,KAAK,CAAC,CAAC;YACxD,MAAM,KAAK,CAAC;QACd,CAAC;IACH,CAAC;IAEO,kBAAkB;QACxB,IAAI,CAAC,IAAI,CAAC,YAAY;YAAE,OAAO;QAE/B,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE,uBAAuB,CAAC,CAAC;QAC3C,IAAI,CAAC;YACH,IAAI,CAAC,YAAY,CAAC,WAAW,EAAE,CAAC;YAChC,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE,wBAAwB,CAAC,CAAC;QAC9C,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE,8BAA8B,EAAE,KAAK,CAAC,CAAC;QAC3D,CAAC;QACD,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC;IAC3B,CAAC;IAEO,KAAK,CAAC,WAAW;QACvB,IAAI,CAAC,IAAI,CAAC,UAAU,IAAI,CAAC,IAAI,CAAC,YAAY;YAAE,OAAO;QAEnD,IAAI,CAAC,GAAG,CAAC,MAAM,EAAE,kCAAkC,CAAC,CAAC;QAErD,wBAAwB;QACxB,MAAM,IAAI,CAAC,sBAAsB,EAAE,CAAC;QAEpC,IAAI,CAAC,GAAG,CAAC,MAAM,EAAE,6BAA6B,CAAC,CAAC;IAClD,CAAC;IAEO,YAAY;QAClB,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;QACvB,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC;QACzB,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC;QAC1B,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC;QAC3B,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;QACvB,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC;QAClB,IAAI,CAAC,OAAO,GAAG,CAAC,CAAC;IACnB,CAAC;IAEM,KAAK,CAAC,WAAW;QACtB,IACE,IAAI,CAAC,eAAe,KAAK,eAAe,CAAC,YAAY;YACrD,IAAI,CAAC,eAAe,KAAK,eAAe,CAAC,OAAO,EAChD,CAAC;YACD,OAAO;QACT,CAAC;QAED,IAAI,CAAC,GAAG,CAAC,MAAM,EAAE,8BAA8B,CAAC,CAAC;QACjD,IAAI,CAAC,eAAe,GAAG,eAAe,CAAC,OAAO,CAAC;QAE/C,IAAI,CAAC,kBAAkB,EAAE,CAAC;QAC1B,IAAI,CAAC,YAAY,EAAE,CAAC;QACpB,IAAI,CAAC,cAAc,GAAG,KAAK,CAAC;QAE5B,IAAI,IAAI,CAAC,EAAE,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,QAAQ,EAAE,EAAE,CAAC;YACnC,IAAI,CAAC;gBACH,MAAM,IAAI,CAAC,EAAE,CAAC,KAAK,EAAE,CAAC;gBACtB,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE,mBAAmB,CAAC,CAAC;YACzC,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE,2BAA2B,EAAE,KAAK,CAAC,CAAC;YACxD,CAAC;QACH,CAAC;QACD,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC;QAEf,IAAI,CAAC,eAAe,GAAG,eAAe,CAAC,YAAY,CAAC;QACpD,IAAI,CAAC,GAAG,CAAC,MAAM,EAAE,2BAA2B,CAAC,CAAC;IAChD,CAAC;IAEM,WAAW;QAChB,OAAO,IAAI,CAAC,eAAe,KAAK,eAAe,CAAC,SAAS,CAAC;IAC5D,CAAC;IAEM,kBAAkB;QACvB,OAAO,IAAI,CAAC,eAAe,CAAC;IAC9B,CAAC;CACF;AAnfD,oCAmfC;AAED,SAAS,eAAe,CAAC,IAAmC;IAG1D,OAAO,MAAM,CAAC,WAAW,CACvB,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,KAAK,CAAC,EAAE,EAAE;QACxC,IAAI,CAAC;YACH,OAAO,CAAC,GAAG,EAAE,IAAI,CAAC,KAAK,CAAC,IAAI,WAAW,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;QAC5D,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO,CAAC,KAAK,CAAC,gCAAgC,GAAG,GAAG,EAAE,KAAK,CAAC,CAAC;YAC7D,OAAO,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;QACrB,CAAC;IACH,CAAC,CAAC,CACH,CAAC;AACJ,CAAC;AAED,SAAS,mBAAmB,CAAC,GAAwB;IACnD,IAAI,OAAO,GAAG,KAAK,QAAQ,EAAE,CAAC;QAC5B,OAAO,IAAA,4BAAkB,EACvB,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CACnD,CAAC;IACJ,CAAC;SAAM,IAAI,GAAG,YAAY,UAAU,EAAE,CAAC;QACrC,OAAO,IAAA,4BAAkB,EAAC,GAAG,CAAC,CAAC;IACjC,CAAC;SAAM,CAAC;QACN,MAAM,IAAI,KAAK,CAAC,4BAA4B,CAAC,CAAC;IAChD,CAAC;AACH,CAAC"}
package/dist/esm/index.js CHANGED
@@ -11,10 +11,7 @@ const STATUS_REQUEST_TIMEOUT = 408;
11
11
  const STATUS_MAX_ACK_PENDING = 409;
12
12
  const STATUS_FLOW_CONTROL = 100;
13
13
  // Default configuration
14
- const DEFAULT_MAX_MESSAGES = 100;
15
- const DEFAULT_EXPIRES_MS = 30000;
16
- const DEFAULT_POLL_INTERVAL_MS = 1000;
17
- const DEFAULT_THRESHOLD_RATIO = 0.5;
14
+ const MESSAGE_BATCH_SIZE = 10;
18
15
  const natsUrl = "wss://adapt-dev.mochabugapis.com:443/pubsub";
19
16
  const baseUrl = "https://adapt-dev.mochabugapis.com/v1/automations";
20
17
  // REST API functions
@@ -121,25 +118,18 @@ var ConnectionState;
121
118
  export class PubsubClient {
122
119
  constructor(debug = false) {
123
120
  this.nc = null;
124
- this.pullSubscription = null;
125
- this.subject = null;
121
+ this.subscription = null;
126
122
  this.streamName = null;
127
123
  this.consumerName = null;
128
124
  this.outputHandler = null;
129
125
  this.sessionHandler = null;
130
126
  this.urlHandler = null;
131
127
  this.isReconnecting = false;
128
+ this.inbox = null;
132
129
  this.connectionState = ConnectionState.DISCONNECTED;
130
+ this.jc = JSONCodec();
133
131
  // Pull consumer state
134
132
  this.pending = 0;
135
- this.pulling = false;
136
- this.pullTimer = null;
137
- this.maxMessages = DEFAULT_MAX_MESSAGES;
138
- this.expiresMs = DEFAULT_EXPIRES_MS;
139
- this.pollIntervalMs = DEFAULT_POLL_INTERVAL_MS;
140
- this.threshold = DEFAULT_MAX_MESSAGES * DEFAULT_THRESHOLD_RATIO;
141
- this.inbox = null;
142
- this.jc = JSONCodec();
143
133
  this.debug = debug;
144
134
  }
145
135
  log(level, message, data) {
@@ -155,21 +145,15 @@ export class PubsubClient {
155
145
  }
156
146
  }
157
147
  async subscribe(opts) {
158
- this.log("info", "Subscribe called with:", {
159
- subject: opts.subject,
148
+ this.log("debug", "Subscribe called with:", {
160
149
  consumer: opts.consumer,
161
150
  stream: opts.stream,
162
151
  });
163
- // Validate inputs
164
- if (!validateSubject(opts.subject)) {
165
- throw new Error(`Invalid subject: "${opts.subject}"`);
166
- }
167
152
  if (!opts.consumer || !opts.stream) {
168
153
  throw new Error("Consumer and stream names are required");
169
154
  }
170
- // If we're already connected to the same subject, just update handlers
155
+ // Only update the handlers if we stay on the same consumer and stream
171
156
  if (this.connectionState === ConnectionState.CONNECTED &&
172
- this.subject === opts.subject &&
173
157
  this.streamName === opts.stream &&
174
158
  this.consumerName === opts.consumer) {
175
159
  this.log("debug", "Already connected to same subject, updating handlers only");
@@ -181,24 +165,18 @@ export class PubsubClient {
181
165
  if (this.connectionState === ConnectionState.CONNECTING) {
182
166
  throw new Error("Already connecting, please wait");
183
167
  }
184
- // If connected to a different subject, close first
185
- if (this.connectionState === ConnectionState.CONNECTED ||
186
- this.connectionState === ConnectionState.CLOSING) {
168
+ // If already connected, let's ubsubscribe first
169
+ if (this.connectionState === ConnectionState.CONNECTED) {
187
170
  await this.unsubscribe();
188
171
  }
189
172
  try {
190
173
  this.connectionState = ConnectionState.CONNECTING;
191
174
  // Store configuration
192
- this.subject = opts.subject;
193
175
  this.streamName = opts.stream;
194
176
  this.consumerName = opts.consumer;
195
177
  this.outputHandler = opts.onOutput || null;
196
178
  this.sessionHandler = opts.onSession || null;
197
179
  this.urlHandler = opts.onUrl || null;
198
- this.maxMessages = opts.maxMessages || DEFAULT_MAX_MESSAGES;
199
- this.expiresMs = opts.expiresMs || DEFAULT_EXPIRES_MS;
200
- this.pollIntervalMs = opts.pollIntervalMs || DEFAULT_POLL_INTERVAL_MS;
201
- this.threshold = Math.floor(this.maxMessages * DEFAULT_THRESHOLD_RATIO);
202
180
  // Connect to NATS
203
181
  const inboxPrefix = `_INBOX_${opts.consumer}`;
204
182
  this.log("debug", `Connecting with inbox prefix: ${inboxPrefix}`);
@@ -292,23 +270,17 @@ export class PubsubClient {
292
270
  if (!this.nc || !this.streamName || !this.consumerName) {
293
271
  throw new Error("Not properly initialized");
294
272
  }
295
- await this.clearSubscriptions();
273
+ this.clearSubscriptions();
296
274
  try {
297
275
  this.log("info", `Creating pull subscription for consumer: ${this.consumerName} on stream: ${this.streamName}`);
298
276
  // Create inbox for receiving messages
299
277
  this.inbox = createInbox(`_INBOX_${this.consumerName}`);
300
278
  const sub = this.nc.subscribe(this.inbox);
301
- this.pullSubscription = sub;
302
- // Reset state
279
+ this.subscription = sub;
303
280
  this.pending = 0;
304
- this.pulling = false;
305
281
  // Start message processing loop
306
282
  this.processMessages(sub);
307
- // Initial pull - use no_wait to check for immediate messages
308
- this.log("debug", `Initial no_wait pull for ${this.maxMessages} messages`);
309
- await this.pull(this.maxMessages, true);
310
- // Schedule periodic pulls for long polling
311
- this.schedulePull();
283
+ this.pull();
312
284
  this.log("info", "Pull subscription created successfully");
313
285
  }
314
286
  catch (error) {
@@ -319,6 +291,7 @@ export class PubsubClient {
319
291
  async processMessages(sub) {
320
292
  try {
321
293
  for await (const msg of sub) {
294
+ // Early exit if we're closing or disconnected
322
295
  if (this.connectionState === ConnectionState.CLOSING ||
323
296
  this.connectionState === ConnectionState.DISCONNECTED) {
324
297
  this.log("info", "Subscription closing");
@@ -355,8 +328,12 @@ export class PubsubClient {
355
328
  this.log("warn", `Message without valid subject`);
356
329
  return;
357
330
  }
358
- // We got a real message
359
- this.pending = Math.max(0, this.pending - 1);
331
+ // Now, we need to count the messages that are actually on the consumer's subject
332
+ // which is what we are pulling
333
+ this.pending--;
334
+ if (this.pending <= 0) {
335
+ this.pull();
336
+ }
360
337
  // Process the message based on the last part of the subject
361
338
  const parts = msg.subject.split(".");
362
339
  const action = parts[parts.length - 1];
@@ -403,41 +380,24 @@ export class PubsubClient {
403
380
  catch (error) {
404
381
  this.log("error", `Error processing ${action} message:`, error);
405
382
  this.nak(msg);
406
- throw error;
407
- }
408
- // Pull more if below threshold
409
- if (this.pending < this.threshold && !this.pulling) {
410
- const pullCount = this.maxMessages - this.pending;
411
- this.pull(pullCount, false);
412
383
  }
413
384
  }
414
385
  async handleStatusMessage(status, description, msg) {
415
386
  switch (status) {
387
+ // This should never be received in a pull consumer without no_wait: true
416
388
  case STATUS_NO_MESSAGES:
417
- this.log("debug", `No messages available: ${description}`);
418
- this.pending = 0;
389
+ this.log("warn", `No messages available: ${description}`);
390
+ this.log("debug", "Headers", msg.headers);
419
391
  break;
392
+ // This should never be received in a pull consumer without expires: ns
420
393
  case STATUS_REQUEST_TIMEOUT:
421
- this.log("debug", `Request timeout: ${description}`);
422
- if (this.pending > 0) {
423
- this.pending--;
424
- }
425
- // Check if we have pending messages info from headers
426
- if (msg.headers) {
427
- const pendingMsgs = msg.headers.get("Nats-Pending-Messages");
428
- if (pendingMsgs) {
429
- this.log("debug", `Server reports ${pendingMsgs} pending messages`);
430
- }
431
- }
394
+ this.log("warn", `Request timeout: ${description}`);
395
+ this.log("debug", "Headers", msg.headers);
432
396
  break;
433
397
  case STATUS_MAX_ACK_PENDING:
434
- this.log("warn", `Max ack pending: ${description}`);
435
- this.pending = 0;
436
- setTimeout(() => {
437
- if (this.connectionState === ConnectionState.CONNECTED) {
438
- this.pull(this.maxMessages, false);
439
- }
440
- }, 5000);
398
+ this.log("error", `Max ack pending: ${description}`);
399
+ this.log("error", "You are throwing excpetion in your handlers or processing messages too slowly. Please ensure you are acknowledging messages properly.");
400
+ await this.unsubscribe();
441
401
  break;
442
402
  case STATUS_FLOW_CONTROL:
443
403
  this.log("debug", `Flow control: ${description}`);
@@ -468,97 +428,59 @@ export class PubsubClient {
468
428
  }
469
429
  this.log("debug", `Sending ACK for message: '${msg.subject}' on '${msg.reply}'`);
470
430
  this.nc.publish(msg.reply, new Uint8Array(0));
471
- this.log("debug", `ACK sent for message: '${msg.subject}' on '${msg.reply}'`);
472
431
  }
473
- async pull(batch, noWait = false) {
474
- if (this.pulling || !this.nc || !this.inbox || batch <= 0) {
475
- return;
432
+ pull() {
433
+ if (!this.nc || !this.inbox) {
434
+ this.log("error", "NATS connection or inbox not initialized");
435
+ throw new Error("NATS connection or inbox not initialized");
476
436
  }
477
437
  if (this.connectionState !== ConnectionState.CONNECTED) {
438
+ this.log("warn", "Not connected, cannot pull messages");
439
+ return;
440
+ }
441
+ if (this.pending > 0) {
442
+ this.log("warn", `Already have outstanding messages: ${this.pending}`);
478
443
  return;
479
444
  }
480
- this.pulling = true;
481
445
  try {
482
446
  const pullSubject = `${CONSUMER_MSG_NEXT_PREFIX}${this.streamName}.${this.consumerName}`;
483
- const request = {
484
- batch: batch,
485
- };
486
- if (noWait) {
487
- request.no_wait = true;
488
- }
489
- else if (this.expiresMs > 0) {
490
- request.expires = this.expiresMs * 1000000; // Convert to nanoseconds
491
- }
492
- this.nc.publish(pullSubject, this.jc.encode(request), {
447
+ this.log("debug", `Pulling messages from: ${pullSubject}`);
448
+ this.nc.publish(pullSubject, this.jc.encode({
449
+ batch: MESSAGE_BATCH_SIZE,
450
+ no_wait: false,
451
+ }), {
493
452
  reply: this.inbox,
494
453
  });
495
- this.pending += batch;
496
- this.log("debug", `Pull sent: batch=${batch}, pending=${this.pending}, noWait=${noWait}`);
454
+ this.pending = MESSAGE_BATCH_SIZE;
455
+ this.log("debug", `Pull sent: batch=${MESSAGE_BATCH_SIZE}, pending=${this.pending}`);
497
456
  }
498
457
  catch (error) {
499
458
  this.log("error", "Error sending pull request:", error);
500
- this.pending = Math.max(0, this.pending - batch);
501
459
  throw error;
502
460
  }
503
- finally {
504
- this.pulling = false;
505
- }
506
- }
507
- schedulePull() {
508
- if (this.pullTimer) {
509
- clearTimeout(this.pullTimer);
510
- }
511
- if (this.connectionState !== ConnectionState.CONNECTED) {
512
- return;
513
- }
514
- this.pullTimer = setTimeout(() => {
515
- if (this.connectionState !== ConnectionState.CONNECTED) {
516
- return;
517
- }
518
- // Maintain batch size
519
- if (this.pending < this.threshold && !this.pulling) {
520
- const pullCount = this.maxMessages - this.pending;
521
- this.log("debug", `Scheduled pull: ${pullCount} messages`);
522
- this.pull(pullCount, false);
523
- }
524
- else if (this.pending === 0 && !this.pulling) {
525
- // No pending at all, pull full batch
526
- this.log("debug", "No pending, pulling full batch");
527
- this.pull(this.maxMessages, false);
528
- }
529
- this.schedulePull();
530
- }, this.pollIntervalMs);
531
461
  }
532
- async clearSubscriptions() {
533
- if (this.pullTimer) {
534
- clearTimeout(this.pullTimer);
535
- this.pullTimer = null;
536
- }
537
- if (!this.pullSubscription)
462
+ clearSubscriptions() {
463
+ if (!this.subscription)
538
464
  return;
539
465
  this.log("debug", "Clearing subscription");
540
466
  try {
541
- this.pullSubscription.unsubscribe();
467
+ this.subscription.unsubscribe();
542
468
  this.log("debug", "✓ Subscription cleared");
543
469
  }
544
470
  catch (error) {
545
471
  this.log("error", "Error clearing subscription:", error);
546
472
  }
547
- this.pullSubscription = null;
473
+ this.subscription = null;
548
474
  }
549
475
  async resubscribe() {
550
476
  if (!this.streamName || !this.consumerName)
551
477
  return;
552
478
  this.log("info", "Resubscribing after reconnection");
553
- // Clear old state
554
- this.pending = 0;
555
- this.pulling = false;
556
479
  // Recreate subscription
557
480
  await this.createPullSubscription();
558
481
  this.log("info", "✓ Resubscribed successfully");
559
482
  }
560
483
  cleanupState() {
561
- this.subject = null;
562
484
  this.streamName = null;
563
485
  this.consumerName = null;
564
486
  this.outputHandler = null;
@@ -566,7 +488,6 @@ export class PubsubClient {
566
488
  this.urlHandler = null;
567
489
  this.inbox = null;
568
490
  this.pending = 0;
569
- this.pulling = false;
570
491
  }
571
492
  async unsubscribe() {
572
493
  if (this.connectionState === ConnectionState.DISCONNECTED ||
@@ -575,7 +496,7 @@ export class PubsubClient {
575
496
  }
576
497
  this.log("info", "Starting unsubscribe process");
577
498
  this.connectionState = ConnectionState.CLOSING;
578
- await this.clearSubscriptions();
499
+ this.clearSubscriptions();
579
500
  this.cleanupState();
580
501
  this.isReconnecting = false;
581
502
  if (this.nc && !this.nc.isClosed()) {
@@ -598,18 +519,6 @@ export class PubsubClient {
598
519
  return this.connectionState;
599
520
  }
600
521
  }
601
- // Helper functions
602
- function validateSubject(subject) {
603
- if (!subject || subject.includes(" ") || subject.includes("\t")) {
604
- return false;
605
- }
606
- if (subject.includes("..") ||
607
- subject.startsWith(".") ||
608
- subject.endsWith(".")) {
609
- return false;
610
- }
611
- return true;
612
- }
613
522
  function parseOutputData(data) {
614
523
  return Object.fromEntries(Object.entries(data).map(([key, value]) => {
615
524
  try {
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"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"}
@@ -22,38 +22,33 @@ export interface Output {
22
22
  }
23
23
  export type SubscriptionOptions = {
24
24
  credentials: Uint8Array | string;
25
- subject: string;
26
25
  consumer: string;
27
26
  stream: string;
28
27
  onOutput?: (output: Output) => void;
29
28
  onSession?: (session: SessionJson) => void;
30
29
  onUrl?: (url: UrlJson) => void;
31
- maxMessages?: number;
32
- expiresMs?: number;
33
- pollIntervalMs?: number;
34
30
  debug?: boolean;
35
31
  };
32
+ declare enum ConnectionState {
33
+ DISCONNECTED = "disconnected",
34
+ CONNECTING = "connecting",
35
+ CONNECTED = "connected",
36
+ CLOSING = "closing"
37
+ }
36
38
  export declare class PubsubClient {
37
39
  private nc;
38
- private pullSubscription;
39
- private subject;
40
+ private subscription;
40
41
  private streamName;
41
42
  private consumerName;
42
43
  private outputHandler;
43
44
  private sessionHandler;
44
45
  private urlHandler;
45
46
  private isReconnecting;
47
+ private inbox;
46
48
  private connectionState;
47
49
  private debug;
48
- private pending;
49
- private pulling;
50
- private pullTimer;
51
- private maxMessages;
52
- private expiresMs;
53
- private pollIntervalMs;
54
- private threshold;
55
- private inbox;
56
50
  private jc;
51
+ private pending;
57
52
  constructor(debug?: boolean);
58
53
  private log;
59
54
  subscribe(opts: SubscriptionOptions): Promise<void>;
@@ -65,11 +60,11 @@ export declare class PubsubClient {
65
60
  private nak;
66
61
  private ack;
67
62
  private pull;
68
- private schedulePull;
69
63
  private clearSubscriptions;
70
64
  private resubscribe;
71
65
  private cleanupState;
72
66
  unsubscribe(): Promise<void>;
73
67
  isConnected(): boolean;
74
- getConnectionState(): string;
68
+ getConnectionState(): ConnectionState;
75
69
  }
70
+ export {};
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@mochabug/adapt-web",
3
- "version": "0.0.57",
3
+ "version": "0.0.59",
4
4
  "description": "The client library to execute automations, without effort, in a browser environment",
5
5
  "main": "./dist/cjs/index.js",
6
6
  "module": "./dist/esm/index.js",