@mochabug/adapt-web 0.0.67 → 0.0.69

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/esm/index.js CHANGED
@@ -1,8 +1,3 @@
1
- import { fromBinary, toJson } from "@bufbuild/protobuf";
2
- import { timestampDate } from "@bufbuild/protobuf/wkt";
3
- import WebSocket from "isomorphic-ws";
4
- import { parse as parseUuid } from "uuid";
5
- import { SessionSchema, UrlSchema, WebsocketMessageSchema, } from "./genproto/mochabugapis/adapt/automations/v1/automations_pb.js";
6
1
  // Default configuration
7
2
  const defaultConfig = {
8
3
  baseUrl: "https://adapt-dev.mochabugapis.com/v1/automations",
@@ -115,280 +110,6 @@ export class RestClientError extends Error {
115
110
  this.response = response;
116
111
  }
117
112
  }
118
- // Connection states
119
- var ConnectionState;
120
- (function (ConnectionState) {
121
- ConnectionState["DISCONNECTED"] = "disconnected";
122
- ConnectionState["CONNECTING"] = "connecting";
123
- ConnectionState["CONNECTED"] = "connected";
124
- ConnectionState["CLOSING"] = "closing";
125
- })(ConnectionState || (ConnectionState = {}));
126
- export class PubsubClient {
127
- constructor(debug = false) {
128
- this.ws = null;
129
- this.sessionToken = null;
130
- this.automation = null;
131
- this.outputHandler = null;
132
- this.sessionHandler = null;
133
- this.urlHandler = null;
134
- this.connectionState = ConnectionState.DISCONNECTED;
135
- this.reconnectAttempts = 0;
136
- this.maxReconnectAttempts = -1; // -1 = infinite
137
- this.reconnectTimeWait = 1000; // Start with 1 second
138
- this.maxReconnectTimeWait = 30000; // Max 30 seconds
139
- this.shouldReconnect = true;
140
- this.ackedMessages = new Map(); // Track ACKed messages with timestamp to prevent duplicate processing
141
- this.debug = debug;
142
- }
143
- log(level, message, data) {
144
- if (!this.debug && level === "debug")
145
- return;
146
- const prefix = `[PubSub]`;
147
- const fullMessage = `${prefix} ${message}`;
148
- if (data !== undefined) {
149
- console[level](fullMessage, data);
150
- }
151
- else {
152
- console[level](fullMessage);
153
- }
154
- }
155
- async subscribe(opts) {
156
- this.log("debug", "Subscribe called with:", {
157
- automation: opts.automation,
158
- hasToken: !!opts.sessionToken,
159
- });
160
- if (!opts.sessionToken || !opts.automation) {
161
- throw new Error("Session token and automation are required");
162
- }
163
- // Only update the handlers if we stay on the same session
164
- if (this.connectionState === ConnectionState.CONNECTED &&
165
- this.sessionToken === opts.sessionToken &&
166
- this.automation?.organization === opts.automation.organization &&
167
- this.automation?.group === opts.automation.group &&
168
- this.automation?.automation === opts.automation.automation) {
169
- this.log("debug", "Already connected to same session, updating handlers only");
170
- this.outputHandler = opts.onOutput || null;
171
- this.sessionHandler = opts.onSession || null;
172
- this.urlHandler = opts.onUrl || null;
173
- return;
174
- }
175
- if (this.connectionState === ConnectionState.CONNECTING) {
176
- throw new Error("Already connecting, please wait");
177
- }
178
- // If already connected, unsubscribe first
179
- if (this.connectionState === ConnectionState.CONNECTED) {
180
- await this.unsubscribe();
181
- }
182
- // Store configuration
183
- this.sessionToken = opts.sessionToken;
184
- this.automation = opts.automation;
185
- this.outputHandler = opts.onOutput || null;
186
- this.sessionHandler = opts.onSession || null;
187
- this.urlHandler = opts.onUrl || null;
188
- this.shouldReconnect = true;
189
- this.reconnectAttempts = 0;
190
- this.reconnectTimeWait = 1000;
191
- await this.connect();
192
- }
193
- async connect() {
194
- if (!this.sessionToken || !this.automation) {
195
- throw new Error("Session token and automation are required");
196
- }
197
- try {
198
- this.connectionState = ConnectionState.CONNECTING;
199
- const wsUrl = `${globalConfig.wsBaseUrl}/${this.automation.organization}/${this.automation.group}/${this.automation.automation}/ws?token=${encodeURIComponent(this.sessionToken)}`;
200
- this.log("info", `Connecting to WebSocket: ${wsUrl}`);
201
- this.ws = new WebSocket(wsUrl);
202
- this.ws.binaryType = "arraybuffer";
203
- this.ws.onopen = () => {
204
- this.log("info", "✓ WebSocket connected");
205
- this.connectionState = ConnectionState.CONNECTED;
206
- };
207
- this.ws.onmessage = (event) => {
208
- this.handleMessage(event.data);
209
- };
210
- this.ws.onerror = (error) => {
211
- this.log("error", "WebSocket error:", error);
212
- };
213
- this.ws.onclose = (event) => {
214
- this.log("info", `WebSocket closed: ${event.code} - ${event.reason}`);
215
- this.connectionState = ConnectionState.DISCONNECTED;
216
- // Handle different close codes
217
- switch (event.code) {
218
- case 1000: // Normal closure (server closed friendly)
219
- this.log("info", "Normal WebSocket closure");
220
- this.shouldReconnect = false;
221
- this.unsubscribe().catch((error) => {
222
- this.log("error", "Error during unsubscribe:", error);
223
- });
224
- break;
225
- case 1002: // Protocol error
226
- this.log("error", "WebSocket protocol error");
227
- break;
228
- case 1006: // Abnormal closure (connection lost)
229
- this.log("warn", "Abnormal WebSocket closure - connection lost");
230
- break;
231
- case 1008: // Policy violation (e.g., unsupported message type)
232
- this.log("error", "WebSocket policy violation - unsupported data");
233
- break;
234
- default:
235
- this.log("warn", `WebSocket closed with code: ${event.code}`);
236
- }
237
- // Only reconnect if not a normal closure (1000) and reconnect is enabled
238
- if (this.shouldReconnect && event.code !== 1000) {
239
- this.scheduleReconnect();
240
- }
241
- };
242
- }
243
- catch (error) {
244
- this.connectionState = ConnectionState.DISCONNECTED;
245
- this.log("error", "Failed to connect:", error);
246
- throw error;
247
- }
248
- }
249
- scheduleReconnect() {
250
- if (this.maxReconnectAttempts !== -1 &&
251
- this.reconnectAttempts >= this.maxReconnectAttempts) {
252
- this.log("error", "Max reconnection attempts reached");
253
- this.shouldReconnect = false;
254
- return;
255
- }
256
- this.reconnectAttempts++;
257
- const delay = Math.min(this.reconnectTimeWait * Math.pow(2, this.reconnectAttempts - 1), this.maxReconnectTimeWait);
258
- this.log("info", `Scheduling reconnect attempt ${this.reconnectAttempts} in ${delay}ms`);
259
- setTimeout(() => {
260
- if (this.shouldReconnect &&
261
- this.connectionState === ConnectionState.DISCONNECTED) {
262
- this.connect().catch((error) => {
263
- this.log("error", "Reconnection failed:", error);
264
- });
265
- }
266
- }, delay);
267
- }
268
- handleMessage(data) {
269
- try {
270
- const message = fromBinary(WebsocketMessageSchema, new Uint8Array(data));
271
- const now = Date.now();
272
- // Check if we've already processed this message
273
- if (this.ackedMessages.has(message.id)) {
274
- this.log("debug", `Skipping already processed message: ${message.id}`);
275
- this.sendAck(message.id);
276
- return;
277
- }
278
- this.sendAck(message.id);
279
- // Mark as processed with timestamp
280
- this.ackedMessages.set(message.id, now);
281
- this.log("debug", `Received message with ID: ${message.id}`);
282
- // Process the message based on its type
283
- switch (message.message.case) {
284
- case "output": {
285
- if (this.outputHandler) {
286
- const output = message.message.value;
287
- this.outputHandler({
288
- vertex: output.vertex,
289
- fork: output.fork,
290
- data: parseOutputData(output.data),
291
- created: output.created
292
- ? timestampDate(output.created)
293
- : undefined,
294
- });
295
- }
296
- break;
297
- }
298
- case "session": {
299
- const session = message.message.value;
300
- if (this.sessionHandler) {
301
- this.sessionHandler(toJson(SessionSchema, session));
302
- }
303
- break;
304
- }
305
- case "url": {
306
- if (this.urlHandler) {
307
- const url = message.message.value;
308
- this.urlHandler(toJson(UrlSchema, url));
309
- }
310
- break;
311
- }
312
- default:
313
- this.log("warn", "Received message with unknown type");
314
- }
315
- }
316
- catch (error) {
317
- this.log("error", "Error processing message:", error);
318
- // Note: We already sent ACK, as per the requirement to ACK immediately
319
- }
320
- }
321
- sendAck(messageId) {
322
- this.cleanupOldAckedMessages(Date.now());
323
- if (!this.ws || this.ws.readyState !== WebSocket.OPEN) {
324
- this.log("error", "Cannot send ACK: WebSocket not connected");
325
- return;
326
- }
327
- try {
328
- // Parse UUID string to bytes (16 bytes)
329
- const uuid = new Uint8Array(parseUuid(messageId));
330
- // Send the UUID as binary message
331
- this.ws.send(uuid);
332
- this.log("debug", `Sent ACK for message: ${messageId}`);
333
- }
334
- catch (error) {
335
- this.log("error", `Failed to send ACK for ${messageId}:`, error);
336
- }
337
- }
338
- cleanupOldAckedMessages(now) {
339
- const deadline = now - 60000;
340
- for (const [messageId, timestamp] of this.ackedMessages.entries()) {
341
- if (timestamp < deadline) {
342
- this.ackedMessages.delete(messageId);
343
- }
344
- }
345
- }
346
- cleanupState() {
347
- this.sessionToken = null;
348
- this.automation = null;
349
- this.outputHandler = null;
350
- this.sessionHandler = null;
351
- this.urlHandler = null;
352
- this.ackedMessages.clear();
353
- }
354
- async unsubscribe() {
355
- if (this.connectionState === ConnectionState.DISCONNECTED ||
356
- this.connectionState === ConnectionState.CLOSING) {
357
- return;
358
- }
359
- this.log("info", "Starting unsubscribe process");
360
- this.connectionState = ConnectionState.CLOSING;
361
- this.shouldReconnect = false;
362
- this.cleanupState();
363
- if (this.ws) {
364
- try {
365
- this.ws.close(1000, "Client disconnecting");
366
- this.log("debug", "WebSocket closed");
367
- }
368
- catch (error) {
369
- this.log("error", "Error closing WebSocket:", error);
370
- }
371
- this.ws = null;
372
- }
373
- this.connectionState = ConnectionState.DISCONNECTED;
374
- this.log("info", "Unsubscribed successfully");
375
- }
376
- isConnected() {
377
- return this.connectionState === ConnectionState.CONNECTED;
378
- }
379
- getConnectionState() {
380
- return this.connectionState;
381
- }
382
- }
383
- function parseOutputData(data) {
384
- return Object.fromEntries(Object.entries(data).map(([key, value]) => {
385
- try {
386
- return [key, JSON.parse(new TextDecoder().decode(value))];
387
- }
388
- catch (error) {
389
- console.error(`Failed to parse data for key ${key}:`, error);
390
- return [key, null];
391
- }
392
- }));
393
- }
113
+ // Re-export from the new PubsubClient module
114
+ export { PubsubClient, ConnectionState, } from "./pubsub-client.js";
394
115
  //# 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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"}