@mochabug/adapt-web 0.0.28 → 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;
@@ -114,109 +121,206 @@ class PubsubClient {
114
121
  this.outputHandler = null;
115
122
  this.sessionHandler = null;
116
123
  this.urlHandler = null;
124
+ this.isReconnecting = false;
125
+ this.connectionState = ConnectionState.DISCONNECTED;
117
126
  this.subscribe = this.subscribe.bind(this);
118
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);
119
134
  }
120
135
  async subscribe(opts) {
121
- this.unsubscribe();
122
- this.subject = opts.subject;
123
- // Missing: Assign the handlers from options
124
- this.outputHandler = opts.onOutput || null;
125
- this.sessionHandler = opts.onSession || null;
126
- this.urlHandler = opts.onUrl || null;
127
- // Connect to NATS
128
- this.nc = await (0, nats_ws_1.connect)({
129
- servers: [natsUrl],
130
- authenticator: (0, nats_ws_1.credsAuthenticator)(opts.credentials),
131
- reconnect: true,
132
- noEcho: true,
133
- maxReconnectAttempts: -1, // Infinite reconnect attempts
134
- reconnectTimeWait: 1000,
135
- pingInterval: 10 * 1000, // 10 seconds
136
- });
137
- // Set up connection event handlers
136
+ console.info("[PubSub] Subscribe called with subject:", opts.subject);
137
+ // Validate subject first
138
+ if (!validateSubject(opts.subject)) {
139
+ throw new Error(`[PubSub] Invalid subject: "${opts.subject}"`);
140
+ }
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;
138
212
  (async () => {
139
- for await (const status of this.nc.status()) {
140
- switch (status.type) {
141
- case "disconnect":
142
- console.warn("[PubSub] ⚠ Disconnected", {
143
- data: status.data,
144
- });
145
- break;
146
- case "reconnect":
147
- console.info("[PubSub] ↻ Reconnected");
148
- try {
149
- await this.resubscribe();
150
- }
151
- catch (error) {
152
- console.error("[PubSub] Failed to resubscribe after reconnection:", error);
153
- }
154
- break;
155
- case "error":
156
- console.error("[PubSub] Connection error:", status.data);
157
- break;
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 });
218
+ 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);
158
244
  }
159
245
  }
160
- })().catch((error) => {
161
- console.error("[PubSub] Fatal status handler error:", error);
162
- });
163
- await this.createSubscriptions();
246
+ })();
164
247
  }
165
248
  async createSubscriptions() {
166
- if (!this.nc || !this.subject) {
167
- 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");
168
252
  return;
169
253
  }
170
- // Clear existing subscriptions
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");
260
+ return;
261
+ }
262
+ // Clear any existing subscriptions
171
263
  await this.clearSubscriptions();
172
264
  try {
173
- // Subscribe to sync messages
265
+ console.info("[PubSub] Creating subscription for subject:", this.subject);
174
266
  const sub = this.nc.subscribe(this.subject);
175
267
  this.subscriptions.push(sub);
268
+ // Handle incoming messages
176
269
  (async () => {
177
- for await (const msg of sub) {
178
- const action = msg.subject.split(".").pop();
179
- console.info("[PubSub] message received:", action);
180
- try {
181
- switch (action) {
182
- case "output": {
183
- if (this.outputHandler) {
184
- const output = (0, protobuf_1.fromBinary)(automations_pb_js_1.OutputSchema, msg.data);
185
- this.outputHandler({
186
- vertex: output.vertex,
187
- fork: output.fork,
188
- data: Object.fromEntries(Object.entries(output.data).map(([key, value]) => [
189
- key,
190
- JSON.parse(new TextDecoder().decode(value)),
191
- ])),
192
- created: (0, wkt_1.timestampDate)(output.created),
193
- });
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;
194
293
  }
195
- break;
196
- }
197
- case "session": {
198
- if (this.sessionHandler) {
199
- const session = (0, protobuf_1.fromBinary)(automations_pb_js_1.SessionSchema, msg.data);
200
- 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;
201
300
  }
202
- break;
203
- }
204
- case "url": {
205
- if (this.urlHandler) {
206
- const url = (0, protobuf_1.fromBinary)(automations_pb_js_1.UrlSchema, msg.data);
207
- 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;
208
307
  }
209
- break;
308
+ default:
309
+ console.warn("[PubSub] Unknown message action:", action);
210
310
  }
211
311
  }
312
+ catch (error) {
313
+ console.error("[PubSub] Error handling message:", error);
314
+ }
212
315
  }
213
- catch (error) {
214
- 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);
215
320
  }
216
321
  }
217
- })().catch((error) => {
218
- console.error("[PubSub] Sync subscription crashed:", error);
219
- });
322
+ })();
323
+ console.info("[PubSub] Subscription created successfully");
220
324
  }
221
325
  catch (error) {
222
326
  console.error("[PubSub] Failed to create subscriptions:", error);
@@ -224,48 +328,62 @@ class PubsubClient {
224
328
  }
225
329
  }
226
330
  async clearSubscriptions() {
227
- const subCount = this.subscriptions.length;
228
- if (subCount > 0) {
229
- // Only drain if connection is still open
230
- if (this.nc && !this.nc.isClosed()) {
231
- for (const sub of this.subscriptions) {
232
- try {
233
- await sub.drain();
234
- }
235
- catch (error) {
236
- console.warn("[PubSub] Error draining subscription:", error);
237
- }
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();
238
338
  }
239
339
  }
240
- else {
241
- console.info("[PubSub] Skipping drain - connection closed");
340
+ catch (error) {
341
+ console.warn("[PubSub] Error draining subscription:", error);
242
342
  }
243
- this.subscriptions = [];
244
343
  }
344
+ this.subscriptions = [];
245
345
  }
246
346
  async resubscribe() {
247
- if (this.outputHandler || this.sessionHandler || this.urlHandler) {
248
- try {
249
- await this.createSubscriptions();
250
- console.info("[PubSub] ✓ Resubscribed");
251
- }
252
- catch (error) {
253
- console.error("[PubSub] Resubscription failed:", error);
254
- throw error;
255
- }
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;
256
359
  }
257
360
  }
258
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
259
373
  await this.clearSubscriptions();
374
+ // Clear handlers
260
375
  this.outputHandler = null;
261
376
  this.sessionHandler = null;
262
377
  this.urlHandler = null;
263
378
  this.subject = null;
264
- console.info("[PubSub] Unsubscribed");
379
+ this.isReconnecting = false;
380
+ // Close connection
265
381
  if (this.nc) {
266
382
  try {
267
- await this.nc.close();
268
- console.info("[PubSub] Connection closed");
383
+ if (!this.nc.isClosed()) {
384
+ await this.nc.close();
385
+ console.info("[PubSub] Connection closed");
386
+ }
269
387
  }
270
388
  catch (error) {
271
389
  console.error("[PubSub] Error closing connection:", error);
@@ -274,10 +392,51 @@ class PubsubClient {
274
392
  this.nc = null;
275
393
  }
276
394
  }
277
- else {
278
- console.warn("[PubSub] No active connection to close");
279
- }
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;
280
406
  }
281
407
  }
282
408
  exports.PubsubClient = PubsubClient;
409
+ function validateSubject(subject) {
410
+ if (!subject || subject.includes(" ") || subject.includes("\t")) {
411
+ return false;
412
+ }
413
+ if (subject.includes("..") ||
414
+ subject.startsWith(".") ||
415
+ subject.endsWith(".")) {
416
+ return false;
417
+ }
418
+ return true;
419
+ }
420
+ function parseOutputData(data) {
421
+ return Object.fromEntries(Object.entries(data).map(([key, value]) => {
422
+ try {
423
+ return [key, JSON.parse(new TextDecoder().decode(value))];
424
+ }
425
+ catch (error) {
426
+ console.error(`[PubSub] Failed to parse data for key ${key}:`, error);
427
+ return [key, null];
428
+ }
429
+ }));
430
+ }
431
+ function createAuthenticator(val) {
432
+ if (typeof val === "string") {
433
+ return (0, nats_ws_1.credsAuthenticator)(Uint8Array.from(atob(val), (c) => c.charCodeAt(0)));
434
+ }
435
+ else if (val instanceof Uint8Array) {
436
+ return (0, nats_ws_1.credsAuthenticator)(val);
437
+ }
438
+ else {
439
+ throw new Error("Invalid credentials format");
440
+ }
441
+ }
283
442
  //# sourceMappingURL=index.js.map
@@ -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;
@@ -104,109 +111,206 @@ export class PubsubClient {
104
111
  this.outputHandler = null;
105
112
  this.sessionHandler = null;
106
113
  this.urlHandler = null;
114
+ this.isReconnecting = false;
115
+ this.connectionState = ConnectionState.DISCONNECTED;
107
116
  this.subscribe = this.subscribe.bind(this);
108
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);
109
124
  }
110
125
  async subscribe(opts) {
111
- this.unsubscribe();
112
- this.subject = opts.subject;
113
- // Missing: Assign the handlers from options
114
- this.outputHandler = opts.onOutput || null;
115
- this.sessionHandler = opts.onSession || null;
116
- this.urlHandler = opts.onUrl || null;
117
- // Connect to NATS
118
- this.nc = await connect({
119
- servers: [natsUrl],
120
- authenticator: credsAuthenticator(opts.credentials),
121
- reconnect: true,
122
- noEcho: true,
123
- maxReconnectAttempts: -1, // Infinite reconnect attempts
124
- reconnectTimeWait: 1000,
125
- pingInterval: 10 * 1000, // 10 seconds
126
- });
127
- // Set up connection event handlers
126
+ console.info("[PubSub] Subscribe called with subject:", opts.subject);
127
+ // Validate subject first
128
+ if (!validateSubject(opts.subject)) {
129
+ throw new Error(`[PubSub] Invalid subject: "${opts.subject}"`);
130
+ }
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;
128
202
  (async () => {
129
- for await (const status of this.nc.status()) {
130
- switch (status.type) {
131
- case "disconnect":
132
- console.warn("[PubSub] ⚠ Disconnected", {
133
- data: status.data,
134
- });
135
- break;
136
- case "reconnect":
137
- console.info("[PubSub] ↻ Reconnected");
138
- try {
139
- await this.resubscribe();
140
- }
141
- catch (error) {
142
- console.error("[PubSub] Failed to resubscribe after reconnection:", error);
143
- }
144
- break;
145
- case "error":
146
- console.error("[PubSub] Connection error:", status.data);
147
- break;
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 });
208
+ 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
+ }
148
229
  }
149
230
  }
150
- })().catch((error) => {
151
- console.error("[PubSub] Fatal status handler error:", error);
152
- });
153
- await this.createSubscriptions();
231
+ catch (error) {
232
+ if (this.connectionState !== ConnectionState.CLOSING) {
233
+ console.error("[PubSub] Fatal status handler error:", error);
234
+ }
235
+ }
236
+ })();
154
237
  }
155
238
  async createSubscriptions() {
156
- if (!this.nc || !this.subject) {
157
- 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");
158
250
  return;
159
251
  }
160
- // Clear existing subscriptions
252
+ // Clear any existing subscriptions
161
253
  await this.clearSubscriptions();
162
254
  try {
163
- // Subscribe to sync messages
255
+ console.info("[PubSub] Creating subscription for subject:", this.subject);
164
256
  const sub = this.nc.subscribe(this.subject);
165
257
  this.subscriptions.push(sub);
258
+ // Handle incoming messages
166
259
  (async () => {
167
- for await (const msg of sub) {
168
- const action = msg.subject.split(".").pop();
169
- console.info("[PubSub] message received:", action);
170
- try {
171
- switch (action) {
172
- case "output": {
173
- if (this.outputHandler) {
174
- const output = fromBinary(OutputSchema, msg.data);
175
- this.outputHandler({
176
- vertex: output.vertex,
177
- fork: output.fork,
178
- data: Object.fromEntries(Object.entries(output.data).map(([key, value]) => [
179
- key,
180
- JSON.parse(new TextDecoder().decode(value)),
181
- ])),
182
- created: timestampDate(output.created),
183
- });
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;
184
283
  }
185
- break;
186
- }
187
- case "session": {
188
- if (this.sessionHandler) {
189
- const session = fromBinary(SessionSchema, msg.data);
190
- 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;
191
290
  }
192
- break;
193
- }
194
- case "url": {
195
- if (this.urlHandler) {
196
- const url = fromBinary(UrlSchema, msg.data);
197
- 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;
198
297
  }
199
- break;
298
+ default:
299
+ console.warn("[PubSub] Unknown message action:", action);
200
300
  }
201
301
  }
302
+ catch (error) {
303
+ console.error("[PubSub] Error handling message:", error);
304
+ }
202
305
  }
203
- catch (error) {
204
- 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);
205
310
  }
206
311
  }
207
- })().catch((error) => {
208
- console.error("[PubSub] Sync subscription crashed:", error);
209
- });
312
+ })();
313
+ console.info("[PubSub] Subscription created successfully");
210
314
  }
211
315
  catch (error) {
212
316
  console.error("[PubSub] Failed to create subscriptions:", error);
@@ -214,48 +318,62 @@ export class PubsubClient {
214
318
  }
215
319
  }
216
320
  async clearSubscriptions() {
217
- const subCount = this.subscriptions.length;
218
- if (subCount > 0) {
219
- // Only drain if connection is still open
220
- if (this.nc && !this.nc.isClosed()) {
221
- for (const sub of this.subscriptions) {
222
- try {
223
- await sub.drain();
224
- }
225
- catch (error) {
226
- console.warn("[PubSub] Error draining subscription:", error);
227
- }
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();
228
328
  }
229
329
  }
230
- else {
231
- console.info("[PubSub] Skipping drain - connection closed");
330
+ catch (error) {
331
+ console.warn("[PubSub] Error draining subscription:", error);
232
332
  }
233
- this.subscriptions = [];
234
333
  }
334
+ this.subscriptions = [];
235
335
  }
236
336
  async resubscribe() {
237
- if (this.outputHandler || this.sessionHandler || this.urlHandler) {
238
- try {
239
- await this.createSubscriptions();
240
- console.info("[PubSub] ✓ Resubscribed");
241
- }
242
- catch (error) {
243
- console.error("[PubSub] Resubscription failed:", error);
244
- throw error;
245
- }
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;
246
349
  }
247
350
  }
248
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
249
363
  await this.clearSubscriptions();
364
+ // Clear handlers
250
365
  this.outputHandler = null;
251
366
  this.sessionHandler = null;
252
367
  this.urlHandler = null;
253
368
  this.subject = null;
254
- console.info("[PubSub] Unsubscribed");
369
+ this.isReconnecting = false;
370
+ // Close connection
255
371
  if (this.nc) {
256
372
  try {
257
- await this.nc.close();
258
- console.info("[PubSub] Connection closed");
373
+ if (!this.nc.isClosed()) {
374
+ await this.nc.close();
375
+ console.info("[PubSub] Connection closed");
376
+ }
259
377
  }
260
378
  catch (error) {
261
379
  console.error("[PubSub] Error closing connection:", error);
@@ -264,9 +382,50 @@ export class PubsubClient {
264
382
  this.nc = null;
265
383
  }
266
384
  }
267
- else {
268
- console.warn("[PubSub] No active connection to close");
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;
396
+ }
397
+ }
398
+ function validateSubject(subject) {
399
+ if (!subject || subject.includes(" ") || subject.includes("\t")) {
400
+ return false;
401
+ }
402
+ if (subject.includes("..") ||
403
+ subject.startsWith(".") ||
404
+ subject.endsWith(".")) {
405
+ return false;
406
+ }
407
+ return true;
408
+ }
409
+ function parseOutputData(data) {
410
+ return Object.fromEntries(Object.entries(data).map(([key, value]) => {
411
+ try {
412
+ return [key, JSON.parse(new TextDecoder().decode(value))];
269
413
  }
414
+ catch (error) {
415
+ console.error(`[PubSub] Failed to parse data for key ${key}:`, error);
416
+ return [key, null];
417
+ }
418
+ }));
419
+ }
420
+ function createAuthenticator(val) {
421
+ if (typeof val === "string") {
422
+ return credsAuthenticator(Uint8Array.from(atob(val), (c) => c.charCodeAt(0)));
423
+ }
424
+ else if (val instanceof Uint8Array) {
425
+ return credsAuthenticator(val);
426
+ }
427
+ else {
428
+ throw new Error("Invalid credentials format");
270
429
  }
271
430
  }
272
431
  //# sourceMappingURL=index.js.map
@@ -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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"}
@@ -21,7 +21,7 @@ export interface Output {
21
21
  created?: Date;
22
22
  }
23
23
  export type SubscriptionOptions = {
24
- credentials: Uint8Array;
24
+ credentials: Uint8Array | string;
25
25
  subject: string;
26
26
  onOutput?: (output: Output) => void;
27
27
  onSession?: (session: SessionJson) => void;
@@ -34,10 +34,15 @@ export declare class PubsubClient {
34
34
  private outputHandler;
35
35
  private sessionHandler;
36
36
  private urlHandler;
37
+ private isReconnecting;
38
+ private connectionState;
37
39
  constructor();
38
40
  subscribe(opts: SubscriptionOptions): Promise<void>;
41
+ private setupStatusMonitoring;
39
42
  private createSubscriptions;
40
43
  private clearSubscriptions;
41
44
  private resubscribe;
42
45
  unsubscribe(): Promise<void>;
46
+ isConnected(): boolean;
47
+ getConnectionState(): string;
43
48
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@mochabug/adapt-web",
3
- "version": "0.0.28",
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",