@mochabug/adapt-web 0.0.29 → 0.0.30

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
@@ -106,6 +106,13 @@ class RestClientError extends Error {
106
106
  }
107
107
  }
108
108
  exports.RestClientError = RestClientError;
109
+ var ConnectionState;
110
+ (function (ConnectionState) {
111
+ ConnectionState["DISCONNECTED"] = "disconnected";
112
+ ConnectionState["CONNECTING"] = "connecting";
113
+ ConnectionState["CONNECTED"] = "connected";
114
+ ConnectionState["CLOSING"] = "closing";
115
+ })(ConnectionState || (ConnectionState = {}));
109
116
  class PubsubClient {
110
117
  constructor() {
111
118
  this.nc = null;
@@ -115,114 +122,205 @@ class PubsubClient {
115
122
  this.sessionHandler = null;
116
123
  this.urlHandler = null;
117
124
  this.isReconnecting = false;
125
+ this.connectionState = ConnectionState.DISCONNECTED;
118
126
  this.subscribe = this.subscribe.bind(this);
119
127
  this.unsubscribe = this.unsubscribe.bind(this);
128
+ this.createSubscriptions = this.createSubscriptions.bind(this);
129
+ this.clearSubscriptions = this.clearSubscriptions.bind(this);
130
+ this.resubscribe = this.resubscribe.bind(this);
131
+ this.setupStatusMonitoring = this.setupStatusMonitoring.bind(this);
132
+ this.isConnected = this.isConnected.bind(this);
133
+ this.getConnectionState = this.getConnectionState.bind(this);
120
134
  }
121
135
  async subscribe(opts) {
136
+ console.info("[PubSub] Subscribe called with subject:", opts.subject);
137
+ // Validate subject first
122
138
  if (!validateSubject(opts.subject)) {
123
- throw new Error(`[PubSub] Invalid subject: "${opts.subject}". Subject must not contain spaces, tabs, or consecutive dots, and must not start or end with a dot.`);
139
+ throw new Error(`[PubSub] Invalid subject: "${opts.subject}"`);
124
140
  }
125
- const auth = createAuthenticator(opts.credentials);
126
- this.unsubscribe();
127
- this.subject = opts.subject;
128
- this.outputHandler = opts.onOutput || null;
129
- this.sessionHandler = opts.onSession || null;
130
- this.urlHandler = opts.onUrl || null;
131
- // Connect to NATS
132
- this.nc = await (0, nats_ws_1.connect)({
133
- servers: [natsUrl],
134
- authenticator: auth,
135
- reconnect: true,
136
- noEcho: true,
137
- maxReconnectAttempts: -1,
138
- reconnectTimeWait: 1000,
139
- pingInterval: 10 * 1000,
140
- });
141
- // Set up connection event handlers
141
+ // If we're already connected to the same subject, just update handlers
142
+ if (this.connectionState === ConnectionState.CONNECTED &&
143
+ this.subject === opts.subject &&
144
+ this.nc &&
145
+ !this.nc.isClosed()) {
146
+ console.info("[PubSub] Already connected to same subject, updating handlers only");
147
+ this.outputHandler = opts.onOutput || null;
148
+ this.sessionHandler = opts.onSession || null;
149
+ this.urlHandler = opts.onUrl || null;
150
+ return;
151
+ }
152
+ if (this.connectionState === ConnectionState.CONNECTING) {
153
+ throw new Error("[PubSub] Already connecting, please wait");
154
+ }
155
+ // If connected to a different subject or need to reconnect, close first
156
+ if (this.connectionState === ConnectionState.CONNECTED ||
157
+ this.connectionState === ConnectionState.CLOSING) {
158
+ console.info("[PubSub] Closing existing connection before new subscription");
159
+ await this.unsubscribe();
160
+ }
161
+ try {
162
+ this.connectionState = ConnectionState.CONNECTING;
163
+ // Store the new configuration
164
+ this.subject = opts.subject;
165
+ this.outputHandler = opts.onOutput || null;
166
+ this.sessionHandler = opts.onSession || null;
167
+ this.urlHandler = opts.onUrl || null;
168
+ // Create authenticator
169
+ const auth = createAuthenticator(opts.credentials);
170
+ // Connect to NATS
171
+ console.info("[PubSub] Connecting to NATS...");
172
+ this.nc = await (0, nats_ws_1.connect)({
173
+ servers: [natsUrl],
174
+ authenticator: auth,
175
+ reconnect: true,
176
+ noEcho: true,
177
+ maxReconnectAttempts: -1,
178
+ reconnectTimeWait: 1000,
179
+ pingInterval: 10 * 1000,
180
+ });
181
+ // Connection successful
182
+ this.connectionState = ConnectionState.CONNECTED;
183
+ console.info("[PubSub] Connected successfully");
184
+ // Set up status monitoring
185
+ this.setupStatusMonitoring();
186
+ // Create subscriptions
187
+ await this.createSubscriptions();
188
+ }
189
+ catch (error) {
190
+ this.connectionState = ConnectionState.DISCONNECTED;
191
+ // Clean up on error
192
+ this.subject = null;
193
+ this.outputHandler = null;
194
+ this.sessionHandler = null;
195
+ this.urlHandler = null;
196
+ if (this.nc) {
197
+ try {
198
+ await this.nc.close();
199
+ }
200
+ catch (closeError) {
201
+ console.error("[PubSub] Error closing connection after failed subscribe:", closeError);
202
+ }
203
+ this.nc = null;
204
+ }
205
+ console.error("[PubSub] Failed to subscribe:", error);
206
+ throw error;
207
+ }
208
+ }
209
+ setupStatusMonitoring() {
210
+ if (!this.nc)
211
+ return;
142
212
  (async () => {
143
- for await (const status of this.nc.status()) {
144
- switch (status.type) {
145
- case "disconnect":
146
- console.warn("[PubSub] ⚠ Disconnected", {
147
- data: status.data,
148
- });
149
- break;
150
- case "reconnect":
151
- console.info("[PubSub] ↻ Reconnected");
152
- if (this.isReconnecting)
213
+ try {
214
+ for await (const status of this.nc.status()) {
215
+ switch (status.type) {
216
+ case "disconnect":
217
+ console.warn("[PubSub] ⚠ Disconnected", { data: status.data });
153
218
  break;
154
- this.isReconnecting = true;
155
- try {
156
- await this.resubscribe();
157
- }
158
- catch (error) {
159
- console.error("[PubSub] Failed to resubscribe after reconnection:", error);
160
- }
161
- finally {
162
- this.isReconnecting = false;
163
- }
164
- break;
165
- case "error":
166
- console.error("[PubSub] Connection error:", status.data);
167
- break;
219
+ case "reconnect":
220
+ console.info("[PubSub] ↻ Reconnected");
221
+ if (!this.isReconnecting &&
222
+ this.connectionState === ConnectionState.CONNECTED) {
223
+ this.isReconnecting = true;
224
+ try {
225
+ await this.resubscribe();
226
+ }
227
+ catch (error) {
228
+ console.error("[PubSub] Failed to resubscribe after reconnection:", error);
229
+ }
230
+ finally {
231
+ this.isReconnecting = false;
232
+ }
233
+ }
234
+ break;
235
+ case "error":
236
+ console.error("[PubSub] Connection error:", status.data);
237
+ break;
238
+ }
239
+ }
240
+ }
241
+ catch (error) {
242
+ if (this.connectionState !== ConnectionState.CLOSING) {
243
+ console.error("[PubSub] Fatal status handler error:", error);
168
244
  }
169
245
  }
170
- })().catch((error) => {
171
- console.error("[PubSub] Fatal status handler error:", error);
172
- });
173
- await this.createSubscriptions();
246
+ })();
174
247
  }
175
248
  async createSubscriptions() {
176
- if (!this.nc || !this.subject) {
177
- console.warn("[PubSub] Cannot create subscriptions - missing requirements");
249
+ // Validate state before creating subscriptions
250
+ if (!this.nc) {
251
+ console.error("[PubSub] Cannot create subscriptions - no connection");
252
+ return;
253
+ }
254
+ if (!this.subject) {
255
+ console.error("[PubSub] Cannot create subscriptions - no subject");
256
+ return;
257
+ }
258
+ if (this.nc.isClosed()) {
259
+ console.error("[PubSub] Cannot create subscriptions - connection is closed");
178
260
  return;
179
261
  }
180
- // Clear existing subscriptions
262
+ // Clear any existing subscriptions
181
263
  await this.clearSubscriptions();
182
264
  try {
265
+ console.info("[PubSub] Creating subscription for subject:", this.subject);
183
266
  const sub = this.nc.subscribe(this.subject);
184
267
  this.subscriptions.push(sub);
268
+ // Handle incoming messages
185
269
  (async () => {
186
- for await (const msg of sub) {
187
- const action = msg.subject.split(".").pop();
188
- console.info("[PubSub] message received:", action);
189
- try {
190
- switch (action) {
191
- case "output": {
192
- if (this.outputHandler) {
193
- const output = (0, protobuf_1.fromBinary)(automations_pb_js_1.OutputSchema, msg.data);
194
- this.outputHandler({
195
- vertex: output.vertex,
196
- fork: output.fork,
197
- data: parseOutputData(output.data),
198
- created: (0, wkt_1.timestampDate)(output.created),
199
- });
270
+ try {
271
+ for await (const msg of sub) {
272
+ // Check if we should stop processing
273
+ if (this.connectionState === ConnectionState.CLOSING ||
274
+ this.connectionState === ConnectionState.DISCONNECTED) {
275
+ break;
276
+ }
277
+ const parts = msg.subject.split(".");
278
+ const action = parts[parts.length - 1];
279
+ console.info("[PubSub] ↓ message received:", action);
280
+ try {
281
+ switch (action) {
282
+ case "output": {
283
+ if (this.outputHandler) {
284
+ const output = (0, protobuf_1.fromBinary)(automations_pb_js_1.OutputSchema, msg.data);
285
+ this.outputHandler({
286
+ vertex: output.vertex,
287
+ fork: output.fork,
288
+ data: parseOutputData(output.data),
289
+ created: (0, wkt_1.timestampDate)(output.created),
290
+ });
291
+ }
292
+ break;
200
293
  }
201
- break;
202
- }
203
- case "session": {
204
- if (this.sessionHandler) {
205
- const session = (0, protobuf_1.fromBinary)(automations_pb_js_1.SessionSchema, msg.data);
206
- this.sessionHandler((0, protobuf_1.toJson)(automations_pb_js_1.SessionSchema, session));
294
+ case "session": {
295
+ if (this.sessionHandler) {
296
+ const session = (0, protobuf_1.fromBinary)(automations_pb_js_1.SessionSchema, msg.data);
297
+ this.sessionHandler((0, protobuf_1.toJson)(automations_pb_js_1.SessionSchema, session));
298
+ }
299
+ break;
207
300
  }
208
- break;
209
- }
210
- case "url": {
211
- if (this.urlHandler) {
212
- const url = (0, protobuf_1.fromBinary)(automations_pb_js_1.UrlSchema, msg.data);
213
- this.urlHandler((0, protobuf_1.toJson)(automations_pb_js_1.UrlSchema, url));
301
+ case "url": {
302
+ if (this.urlHandler) {
303
+ const url = (0, protobuf_1.fromBinary)(automations_pb_js_1.UrlSchema, msg.data);
304
+ this.urlHandler((0, protobuf_1.toJson)(automations_pb_js_1.UrlSchema, url));
305
+ }
306
+ break;
214
307
  }
215
- break;
308
+ default:
309
+ console.warn("[PubSub] Unknown message action:", action);
216
310
  }
217
311
  }
312
+ catch (error) {
313
+ console.error("[PubSub] Error handling message:", error);
314
+ }
218
315
  }
219
- catch (error) {
220
- console.error("[PubSub] Error handling sync message:", error);
316
+ }
317
+ catch (error) {
318
+ if (this.connectionState !== ConnectionState.CLOSING) {
319
+ console.error("[PubSub] Subscription handler crashed:", error);
221
320
  }
222
321
  }
223
- })().catch((error) => {
224
- console.error("[PubSub] Sync subscription crashed:", error);
225
- });
322
+ })();
323
+ console.info("[PubSub] Subscription created successfully");
226
324
  }
227
325
  catch (error) {
228
326
  console.error("[PubSub] Failed to create subscriptions:", error);
@@ -230,48 +328,62 @@ class PubsubClient {
230
328
  }
231
329
  }
232
330
  async clearSubscriptions() {
233
- const subCount = this.subscriptions.length;
234
- if (subCount > 0) {
235
- if (this.nc && !this.nc.isClosed()) {
236
- for (const sub of this.subscriptions) {
237
- try {
238
- await sub.drain();
239
- }
240
- catch (error) {
241
- console.warn("[PubSub] Error draining subscription:", error);
242
- }
331
+ if (this.subscriptions.length === 0)
332
+ return;
333
+ console.info(`[PubSub] Clearing ${this.subscriptions.length} subscription(s)`);
334
+ for (const sub of this.subscriptions) {
335
+ try {
336
+ if (this.nc && !this.nc.isClosed()) {
337
+ await sub.drain();
243
338
  }
244
339
  }
245
- else {
246
- console.info("[PubSub] Skipping drain - connection closed");
340
+ catch (error) {
341
+ console.warn("[PubSub] Error draining subscription:", error);
247
342
  }
248
- this.subscriptions = [];
249
343
  }
344
+ this.subscriptions = [];
250
345
  }
251
346
  async resubscribe() {
252
- if (this.outputHandler || this.sessionHandler || this.urlHandler) {
253
- try {
254
- await this.createSubscriptions();
255
- console.info("[PubSub] ✓ Resubscribed");
256
- }
257
- catch (error) {
258
- console.error("[PubSub] Resubscription failed:", error);
259
- throw error;
260
- }
347
+ if (!this.subject ||
348
+ (!this.outputHandler && !this.sessionHandler && !this.urlHandler)) {
349
+ console.info("[PubSub] No handlers configured, skipping resubscribe");
350
+ return;
351
+ }
352
+ try {
353
+ await this.createSubscriptions();
354
+ console.info("[PubSub] ✓ Resubscribed successfully");
355
+ }
356
+ catch (error) {
357
+ console.error("[PubSub] Resubscription failed:", error);
358
+ throw error;
261
359
  }
262
360
  }
263
361
  async unsubscribe() {
362
+ if (this.connectionState === ConnectionState.DISCONNECTED) {
363
+ console.info("[PubSub] Already disconnected");
364
+ return;
365
+ }
366
+ if (this.connectionState === ConnectionState.CLOSING) {
367
+ console.info("[PubSub] Already closing");
368
+ return;
369
+ }
370
+ console.info("[PubSub] Starting unsubscribe process");
371
+ this.connectionState = ConnectionState.CLOSING;
372
+ // Clear subscriptions first
264
373
  await this.clearSubscriptions();
374
+ // Clear handlers
265
375
  this.outputHandler = null;
266
376
  this.sessionHandler = null;
267
377
  this.urlHandler = null;
268
378
  this.subject = null;
269
- this.isReconnecting = false; // Reset flag
270
- console.info("[PubSub] Unsubscribed");
379
+ this.isReconnecting = false;
380
+ // Close connection
271
381
  if (this.nc) {
272
382
  try {
273
- await this.nc.close();
274
- console.info("[PubSub] Connection closed");
383
+ if (!this.nc.isClosed()) {
384
+ await this.nc.close();
385
+ console.info("[PubSub] Connection closed");
386
+ }
275
387
  }
276
388
  catch (error) {
277
389
  console.error("[PubSub] Error closing connection:", error);
@@ -280,9 +392,17 @@ class PubsubClient {
280
392
  this.nc = null;
281
393
  }
282
394
  }
283
- else {
284
- console.warn("[PubSub] No active connection to close");
285
- }
395
+ this.connectionState = ConnectionState.DISCONNECTED;
396
+ console.info("[PubSub] Unsubscribed successfully");
397
+ }
398
+ // Helper method to check connection status
399
+ isConnected() {
400
+ return (this.connectionState === ConnectionState.CONNECTED &&
401
+ this.nc !== null &&
402
+ !this.nc.isClosed());
403
+ }
404
+ getConnectionState() {
405
+ return this.connectionState;
286
406
  }
287
407
  }
288
408
  exports.PubsubClient = PubsubClient;
@@ -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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"}
package/dist/esm/index.js CHANGED
@@ -96,6 +96,13 @@ export class RestClientError extends Error {
96
96
  this.response = response;
97
97
  }
98
98
  }
99
+ var ConnectionState;
100
+ (function (ConnectionState) {
101
+ ConnectionState["DISCONNECTED"] = "disconnected";
102
+ ConnectionState["CONNECTING"] = "connecting";
103
+ ConnectionState["CONNECTED"] = "connected";
104
+ ConnectionState["CLOSING"] = "closing";
105
+ })(ConnectionState || (ConnectionState = {}));
99
106
  export class PubsubClient {
100
107
  constructor() {
101
108
  this.nc = null;
@@ -105,114 +112,205 @@ export class PubsubClient {
105
112
  this.sessionHandler = null;
106
113
  this.urlHandler = null;
107
114
  this.isReconnecting = false;
115
+ this.connectionState = ConnectionState.DISCONNECTED;
108
116
  this.subscribe = this.subscribe.bind(this);
109
117
  this.unsubscribe = this.unsubscribe.bind(this);
118
+ this.createSubscriptions = this.createSubscriptions.bind(this);
119
+ this.clearSubscriptions = this.clearSubscriptions.bind(this);
120
+ this.resubscribe = this.resubscribe.bind(this);
121
+ this.setupStatusMonitoring = this.setupStatusMonitoring.bind(this);
122
+ this.isConnected = this.isConnected.bind(this);
123
+ this.getConnectionState = this.getConnectionState.bind(this);
110
124
  }
111
125
  async subscribe(opts) {
126
+ console.info("[PubSub] Subscribe called with subject:", opts.subject);
127
+ // Validate subject first
112
128
  if (!validateSubject(opts.subject)) {
113
- throw new Error(`[PubSub] Invalid subject: "${opts.subject}". Subject must not contain spaces, tabs, or consecutive dots, and must not start or end with a dot.`);
129
+ throw new Error(`[PubSub] Invalid subject: "${opts.subject}"`);
114
130
  }
115
- const auth = createAuthenticator(opts.credentials);
116
- this.unsubscribe();
117
- this.subject = opts.subject;
118
- this.outputHandler = opts.onOutput || null;
119
- this.sessionHandler = opts.onSession || null;
120
- this.urlHandler = opts.onUrl || null;
121
- // Connect to NATS
122
- this.nc = await connect({
123
- servers: [natsUrl],
124
- authenticator: auth,
125
- reconnect: true,
126
- noEcho: true,
127
- maxReconnectAttempts: -1,
128
- reconnectTimeWait: 1000,
129
- pingInterval: 10 * 1000,
130
- });
131
- // Set up connection event handlers
131
+ // If we're already connected to the same subject, just update handlers
132
+ if (this.connectionState === ConnectionState.CONNECTED &&
133
+ this.subject === opts.subject &&
134
+ this.nc &&
135
+ !this.nc.isClosed()) {
136
+ console.info("[PubSub] Already connected to same subject, updating handlers only");
137
+ this.outputHandler = opts.onOutput || null;
138
+ this.sessionHandler = opts.onSession || null;
139
+ this.urlHandler = opts.onUrl || null;
140
+ return;
141
+ }
142
+ if (this.connectionState === ConnectionState.CONNECTING) {
143
+ throw new Error("[PubSub] Already connecting, please wait");
144
+ }
145
+ // If connected to a different subject or need to reconnect, close first
146
+ if (this.connectionState === ConnectionState.CONNECTED ||
147
+ this.connectionState === ConnectionState.CLOSING) {
148
+ console.info("[PubSub] Closing existing connection before new subscription");
149
+ await this.unsubscribe();
150
+ }
151
+ try {
152
+ this.connectionState = ConnectionState.CONNECTING;
153
+ // Store the new configuration
154
+ this.subject = opts.subject;
155
+ this.outputHandler = opts.onOutput || null;
156
+ this.sessionHandler = opts.onSession || null;
157
+ this.urlHandler = opts.onUrl || null;
158
+ // Create authenticator
159
+ const auth = createAuthenticator(opts.credentials);
160
+ // Connect to NATS
161
+ console.info("[PubSub] Connecting to NATS...");
162
+ this.nc = await connect({
163
+ servers: [natsUrl],
164
+ authenticator: auth,
165
+ reconnect: true,
166
+ noEcho: true,
167
+ maxReconnectAttempts: -1,
168
+ reconnectTimeWait: 1000,
169
+ pingInterval: 10 * 1000,
170
+ });
171
+ // Connection successful
172
+ this.connectionState = ConnectionState.CONNECTED;
173
+ console.info("[PubSub] Connected successfully");
174
+ // Set up status monitoring
175
+ this.setupStatusMonitoring();
176
+ // Create subscriptions
177
+ await this.createSubscriptions();
178
+ }
179
+ catch (error) {
180
+ this.connectionState = ConnectionState.DISCONNECTED;
181
+ // Clean up on error
182
+ this.subject = null;
183
+ this.outputHandler = null;
184
+ this.sessionHandler = null;
185
+ this.urlHandler = null;
186
+ if (this.nc) {
187
+ try {
188
+ await this.nc.close();
189
+ }
190
+ catch (closeError) {
191
+ console.error("[PubSub] Error closing connection after failed subscribe:", closeError);
192
+ }
193
+ this.nc = null;
194
+ }
195
+ console.error("[PubSub] Failed to subscribe:", error);
196
+ throw error;
197
+ }
198
+ }
199
+ setupStatusMonitoring() {
200
+ if (!this.nc)
201
+ return;
132
202
  (async () => {
133
- for await (const status of this.nc.status()) {
134
- switch (status.type) {
135
- case "disconnect":
136
- console.warn("[PubSub] ⚠ Disconnected", {
137
- data: status.data,
138
- });
139
- break;
140
- case "reconnect":
141
- console.info("[PubSub] ↻ Reconnected");
142
- if (this.isReconnecting)
203
+ try {
204
+ for await (const status of this.nc.status()) {
205
+ switch (status.type) {
206
+ case "disconnect":
207
+ console.warn("[PubSub] ⚠ Disconnected", { data: status.data });
143
208
  break;
144
- this.isReconnecting = true;
145
- try {
146
- await this.resubscribe();
147
- }
148
- catch (error) {
149
- console.error("[PubSub] Failed to resubscribe after reconnection:", error);
150
- }
151
- finally {
152
- this.isReconnecting = false;
153
- }
154
- break;
155
- case "error":
156
- console.error("[PubSub] Connection error:", status.data);
157
- break;
209
+ case "reconnect":
210
+ console.info("[PubSub] ↻ Reconnected");
211
+ if (!this.isReconnecting &&
212
+ this.connectionState === ConnectionState.CONNECTED) {
213
+ this.isReconnecting = true;
214
+ try {
215
+ await this.resubscribe();
216
+ }
217
+ catch (error) {
218
+ console.error("[PubSub] Failed to resubscribe after reconnection:", error);
219
+ }
220
+ finally {
221
+ this.isReconnecting = false;
222
+ }
223
+ }
224
+ break;
225
+ case "error":
226
+ console.error("[PubSub] Connection error:", status.data);
227
+ break;
228
+ }
229
+ }
230
+ }
231
+ catch (error) {
232
+ if (this.connectionState !== ConnectionState.CLOSING) {
233
+ console.error("[PubSub] Fatal status handler error:", error);
158
234
  }
159
235
  }
160
- })().catch((error) => {
161
- console.error("[PubSub] Fatal status handler error:", error);
162
- });
163
- await this.createSubscriptions();
236
+ })();
164
237
  }
165
238
  async createSubscriptions() {
166
- if (!this.nc || !this.subject) {
167
- console.warn("[PubSub] Cannot create subscriptions - missing requirements");
239
+ // Validate state before creating subscriptions
240
+ if (!this.nc) {
241
+ console.error("[PubSub] Cannot create subscriptions - no connection");
242
+ return;
243
+ }
244
+ if (!this.subject) {
245
+ console.error("[PubSub] Cannot create subscriptions - no subject");
246
+ return;
247
+ }
248
+ if (this.nc.isClosed()) {
249
+ console.error("[PubSub] Cannot create subscriptions - connection is closed");
168
250
  return;
169
251
  }
170
- // Clear existing subscriptions
252
+ // Clear any existing subscriptions
171
253
  await this.clearSubscriptions();
172
254
  try {
255
+ console.info("[PubSub] Creating subscription for subject:", this.subject);
173
256
  const sub = this.nc.subscribe(this.subject);
174
257
  this.subscriptions.push(sub);
258
+ // Handle incoming messages
175
259
  (async () => {
176
- for await (const msg of sub) {
177
- const action = msg.subject.split(".").pop();
178
- console.info("[PubSub] message received:", action);
179
- try {
180
- switch (action) {
181
- case "output": {
182
- if (this.outputHandler) {
183
- const output = fromBinary(OutputSchema, msg.data);
184
- this.outputHandler({
185
- vertex: output.vertex,
186
- fork: output.fork,
187
- data: parseOutputData(output.data),
188
- created: timestampDate(output.created),
189
- });
260
+ try {
261
+ for await (const msg of sub) {
262
+ // Check if we should stop processing
263
+ if (this.connectionState === ConnectionState.CLOSING ||
264
+ this.connectionState === ConnectionState.DISCONNECTED) {
265
+ break;
266
+ }
267
+ const parts = msg.subject.split(".");
268
+ const action = parts[parts.length - 1];
269
+ console.info("[PubSub] ↓ message received:", action);
270
+ try {
271
+ switch (action) {
272
+ case "output": {
273
+ if (this.outputHandler) {
274
+ const output = fromBinary(OutputSchema, msg.data);
275
+ this.outputHandler({
276
+ vertex: output.vertex,
277
+ fork: output.fork,
278
+ data: parseOutputData(output.data),
279
+ created: timestampDate(output.created),
280
+ });
281
+ }
282
+ break;
190
283
  }
191
- break;
192
- }
193
- case "session": {
194
- if (this.sessionHandler) {
195
- const session = fromBinary(SessionSchema, msg.data);
196
- this.sessionHandler(toJson(SessionSchema, session));
284
+ case "session": {
285
+ if (this.sessionHandler) {
286
+ const session = fromBinary(SessionSchema, msg.data);
287
+ this.sessionHandler(toJson(SessionSchema, session));
288
+ }
289
+ break;
197
290
  }
198
- break;
199
- }
200
- case "url": {
201
- if (this.urlHandler) {
202
- const url = fromBinary(UrlSchema, msg.data);
203
- this.urlHandler(toJson(UrlSchema, url));
291
+ case "url": {
292
+ if (this.urlHandler) {
293
+ const url = fromBinary(UrlSchema, msg.data);
294
+ this.urlHandler(toJson(UrlSchema, url));
295
+ }
296
+ break;
204
297
  }
205
- break;
298
+ default:
299
+ console.warn("[PubSub] Unknown message action:", action);
206
300
  }
207
301
  }
302
+ catch (error) {
303
+ console.error("[PubSub] Error handling message:", error);
304
+ }
208
305
  }
209
- catch (error) {
210
- console.error("[PubSub] Error handling sync message:", error);
306
+ }
307
+ catch (error) {
308
+ if (this.connectionState !== ConnectionState.CLOSING) {
309
+ console.error("[PubSub] Subscription handler crashed:", error);
211
310
  }
212
311
  }
213
- })().catch((error) => {
214
- console.error("[PubSub] Sync subscription crashed:", error);
215
- });
312
+ })();
313
+ console.info("[PubSub] Subscription created successfully");
216
314
  }
217
315
  catch (error) {
218
316
  console.error("[PubSub] Failed to create subscriptions:", error);
@@ -220,48 +318,62 @@ export class PubsubClient {
220
318
  }
221
319
  }
222
320
  async clearSubscriptions() {
223
- const subCount = this.subscriptions.length;
224
- if (subCount > 0) {
225
- if (this.nc && !this.nc.isClosed()) {
226
- for (const sub of this.subscriptions) {
227
- try {
228
- await sub.drain();
229
- }
230
- catch (error) {
231
- console.warn("[PubSub] Error draining subscription:", error);
232
- }
321
+ if (this.subscriptions.length === 0)
322
+ return;
323
+ console.info(`[PubSub] Clearing ${this.subscriptions.length} subscription(s)`);
324
+ for (const sub of this.subscriptions) {
325
+ try {
326
+ if (this.nc && !this.nc.isClosed()) {
327
+ await sub.drain();
233
328
  }
234
329
  }
235
- else {
236
- console.info("[PubSub] Skipping drain - connection closed");
330
+ catch (error) {
331
+ console.warn("[PubSub] Error draining subscription:", error);
237
332
  }
238
- this.subscriptions = [];
239
333
  }
334
+ this.subscriptions = [];
240
335
  }
241
336
  async resubscribe() {
242
- if (this.outputHandler || this.sessionHandler || this.urlHandler) {
243
- try {
244
- await this.createSubscriptions();
245
- console.info("[PubSub] ✓ Resubscribed");
246
- }
247
- catch (error) {
248
- console.error("[PubSub] Resubscription failed:", error);
249
- throw error;
250
- }
337
+ if (!this.subject ||
338
+ (!this.outputHandler && !this.sessionHandler && !this.urlHandler)) {
339
+ console.info("[PubSub] No handlers configured, skipping resubscribe");
340
+ return;
341
+ }
342
+ try {
343
+ await this.createSubscriptions();
344
+ console.info("[PubSub] ✓ Resubscribed successfully");
345
+ }
346
+ catch (error) {
347
+ console.error("[PubSub] Resubscription failed:", error);
348
+ throw error;
251
349
  }
252
350
  }
253
351
  async unsubscribe() {
352
+ if (this.connectionState === ConnectionState.DISCONNECTED) {
353
+ console.info("[PubSub] Already disconnected");
354
+ return;
355
+ }
356
+ if (this.connectionState === ConnectionState.CLOSING) {
357
+ console.info("[PubSub] Already closing");
358
+ return;
359
+ }
360
+ console.info("[PubSub] Starting unsubscribe process");
361
+ this.connectionState = ConnectionState.CLOSING;
362
+ // Clear subscriptions first
254
363
  await this.clearSubscriptions();
364
+ // Clear handlers
255
365
  this.outputHandler = null;
256
366
  this.sessionHandler = null;
257
367
  this.urlHandler = null;
258
368
  this.subject = null;
259
- this.isReconnecting = false; // Reset flag
260
- console.info("[PubSub] Unsubscribed");
369
+ this.isReconnecting = false;
370
+ // Close connection
261
371
  if (this.nc) {
262
372
  try {
263
- await this.nc.close();
264
- console.info("[PubSub] Connection closed");
373
+ if (!this.nc.isClosed()) {
374
+ await this.nc.close();
375
+ console.info("[PubSub] Connection closed");
376
+ }
265
377
  }
266
378
  catch (error) {
267
379
  console.error("[PubSub] Error closing connection:", error);
@@ -270,9 +382,17 @@ export class PubsubClient {
270
382
  this.nc = null;
271
383
  }
272
384
  }
273
- else {
274
- console.warn("[PubSub] No active connection to close");
275
- }
385
+ this.connectionState = ConnectionState.DISCONNECTED;
386
+ console.info("[PubSub] Unsubscribed successfully");
387
+ }
388
+ // Helper method to check connection status
389
+ isConnected() {
390
+ return (this.connectionState === ConnectionState.CONNECTED &&
391
+ this.nc !== null &&
392
+ !this.nc.isClosed());
393
+ }
394
+ getConnectionState() {
395
+ return this.connectionState;
276
396
  }
277
397
  }
278
398
  function validateSubject(subject) {
@@ -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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"}
@@ -35,10 +35,14 @@ export declare class PubsubClient {
35
35
  private sessionHandler;
36
36
  private urlHandler;
37
37
  private isReconnecting;
38
+ private connectionState;
38
39
  constructor();
39
40
  subscribe(opts: SubscriptionOptions): Promise<void>;
41
+ private setupStatusMonitoring;
40
42
  private createSubscriptions;
41
43
  private clearSubscriptions;
42
44
  private resubscribe;
43
45
  unsubscribe(): Promise<void>;
46
+ isConnected(): boolean;
47
+ getConnectionState(): string;
44
48
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@mochabug/adapt-web",
3
- "version": "0.0.29",
3
+ "version": "0.0.30",
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",