New Case Study:See how Anthropic automated 95% of dependency reviews with Socket.Learn More
Socket
Sign inDemoInstall
Socket

@brainstack/bridge-server

Package Overview
Dependencies
Maintainers
4
Versions
87
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@brainstack/bridge-server - npm Package Compare versions

Comparing version 2.0.5 to 2.0.6

docs/brainstack-data.png

3

dist/abstraction.d.ts

@@ -0,1 +1,2 @@

/// <reference types="node" />
import { WebSocket } from "ws";

@@ -11,2 +12,2 @@ import { Logger } from "@brainstack/log";

}
export type EventHandler = (data: any, socket: WebSocket) => void;
export type EventHandler = (payload: Buffer, socket: WebSocket) => void;
import { Logger } from '@brainstack/log';
import WebSocket from 'ws';
import { BridgeServerOptions, EventHandler } from './abstraction';

@@ -8,2 +9,3 @@ declare class BridgeServer {

private eventHandlers;
private uuidToSocket;
logger: Logger;

@@ -13,7 +15,8 @@ options: BridgeServerOptions;

private setupListeners;
private processMessage;
private processPayload;
on(event: string, handler: EventHandler): void;
start(): void;
emit(event: string, data: any): void;
emitToUUID(uuid: string, event: string, data: any): void;
attachSocket(uuid: string, socket: WebSocket): void;
}
export { BridgeServer };

@@ -29,9 +29,12 @@ "use strict";

const ws_1 = __importStar(require("ws"));
const PORT = Number(process.env.PORT || 3000);
const HOST = process.env.HOST || 'localhost';
class BridgeServer {
constructor(options) {
this.port = options.port || 3000;
this.host = options.host || 'localhost';
this.port = PORT;
this.host = HOST;
this.options = options;
this.logger = options.logger || (0, log_1.createLogger)();
this.eventHandlers = new Map();
this.uuidToSocket = new Map();
this.logger.verbose('BridgeServer initialized with options:', options);

@@ -41,3 +44,2 @@ }

var _a;
this.logger.verbose('Setting up WebSocket server listeners');
(_a = this.wss) === null || _a === void 0 ? void 0 : _a.on('connection', (ws) => {

@@ -47,5 +49,5 @@ var _a, _b;

(_b = (_a = this.options).onConnection) === null || _b === void 0 ? void 0 : _b.call(_a, ws);
ws.on('message', (message) => {
this.logger.verbose('💬 Message Received:', message);
this.processMessage(message, ws);
ws.on('message', (payload) => {
this.logger.verbose('💬 Payload Received:', payload.toString());
this.processPayload(payload, ws);
});

@@ -64,19 +66,14 @@ ws.on('close', () => {

}
processMessage(message, socket) {
this.logger.verbose('Processing received message');
let parsedMessage;
processPayload(payloadBuffer, socket) {
let parsedPayload;
try {
parsedMessage = JSON.parse(message);
this.logger.verbose('Parsed message successfully:', parsedMessage);
if (parsedMessage && parsedMessage.event) {
this.logger.verbose('Handling message for event:', parsedMessage.event);
const handlers = this.eventHandlers.get(parsedMessage.event);
handlers === null || handlers === void 0 ? void 0 : handlers.forEach(handler => {
this.logger.verbose('Executing handler for event:', parsedMessage.event);
handler(parsedMessage.data, socket);
});
const payloadString = payloadBuffer.toString();
parsedPayload = JSON.parse(payloadString);
if (parsedPayload && parsedPayload.event) {
const handlers = this.eventHandlers.get(parsedPayload.event);
handlers === null || handlers === void 0 ? void 0 : handlers.forEach(handler => handler(parsedPayload.data, socket));
}
}
catch (error) {
this.logger.error('Failed to parse message:', message, 'Error:', error);
this.logger.error('Failed to parse payload:', payloadBuffer.toString(), 'Error:', error);
}

@@ -86,12 +83,8 @@ }

var _a;
this.logger.verbose(`Adding handler for event: ${event}`);
if (!this.eventHandlers.has(event)) {
this.eventHandlers.set(event, []);
this.logger.verbose(`Created new handler array for event: ${event}`);
}
(_a = this.eventHandlers.get(event)) === null || _a === void 0 ? void 0 : _a.push(handler);
this.logger.verbose(`Handler added for event: ${event}`);
}
start() {
this.logger.verbose('Starting WebSocket server');
this.wss = new ws_1.Server({ port: this.port, host: this.host });

@@ -101,13 +94,12 @@ this.setupListeners();

}
emit(event, data) {
var _a;
this.logger.verbose(`Emitting event: ${event}`);
(_a = this.wss) === null || _a === void 0 ? void 0 : _a.clients.forEach((client) => {
if (client.readyState === ws_1.default.OPEN) {
client.send(JSON.stringify({ event, data }));
this.logger.verbose(`Emitted event: ${event} to clients`);
}
});
emitToUUID(uuid, event, data) {
const socket = this.uuidToSocket.get(uuid);
if (socket && socket.readyState === ws_1.default.OPEN) {
socket.send(JSON.stringify({ event, data }));
}
}
attachSocket(uuid, socket) {
this.uuidToSocket.set(uuid, socket);
}
}
exports.BridgeServer = BridgeServer;
{
"name": "@brainstack/bridge-server",
"version": "2.0.5",
"version": "2.0.6",
"description": "Brainstack Bridge Server",

@@ -31,7 +31,7 @@ "main": "dist/index.js",

"dependencies": {
"@brainstack/hub": "^1.1.54",
"@brainstack/log": "^1.1.57",
"@brainstack/hub": "^1.1.55",
"@brainstack/log": "^1.1.58",
"ws": "^8.13.0"
},
"gitHead": "c7747b3db1369e5901cdc336bc2ffb43b65b7e35"
"gitHead": "02bc55f43fe26fcfaf23478a9fdb52807189808b"
}

@@ -14,2 +14,2 @@ import { WebSocket, Server } from "ws";

export type EventHandler = (data: any, socket: WebSocket) => void
export type EventHandler = (payload: Buffer, socket: WebSocket) => void
import { createLogger, Logger } from '@brainstack/log';
import WebSocket, { Server as WebSocketServer } from 'ws';
import { BridgeServerOptions, EventHandler } from './abstraction';
import WebSocket, { Server as WebSocketServer } from 'ws';
const PORT = Number(process.env.PORT || 3000);
const HOST = process.env.HOST || 'localhost';
class BridgeServer {

@@ -10,2 +13,3 @@ private port: number;

private eventHandlers: Map<string, EventHandler[]>;
private uuidToSocket: Map<string, WebSocket>;
public logger: Logger;

@@ -15,7 +19,8 @@ options: BridgeServerOptions;

constructor(options: BridgeServerOptions) {
this.port = options.port || 3000;
this.host = options.host || 'localhost';
this.port = PORT;
this.host = HOST;
this.options = options;
this.logger = options.logger || createLogger();
this.eventHandlers = new Map();
this.uuidToSocket = new Map();

@@ -26,3 +31,2 @@ this.logger.verbose('BridgeServer initialized with options:', options);

private setupListeners(): void {
this.logger.verbose('Setting up WebSocket server listeners');
this.wss?.on('connection', (ws: WebSocket) => {

@@ -32,5 +36,5 @@ this.logger.verbose('🔗 Client connected');

ws.on('message', (message: string) => {
this.logger.verbose('💬 Message Received:', message);
this.processMessage(message, ws);
ws.on('message', (payload: Buffer) => {
this.logger.verbose('💬 Payload Received:', payload.toString());
this.processPayload(payload, ws);
});

@@ -50,19 +54,14 @@

private processMessage(message: string, socket: WebSocket): void {
this.logger.verbose('Processing received message');
let parsedMessage;
private processPayload(payloadBuffer: Buffer, socket: WebSocket): void {
let parsedPayload;
try {
parsedMessage = JSON.parse(message);
this.logger.verbose('Parsed message successfully:', parsedMessage);
const payloadString = payloadBuffer.toString();
parsedPayload = JSON.parse(payloadString);
if (parsedMessage && parsedMessage.event) {
this.logger.verbose('Handling message for event:', parsedMessage.event);
const handlers = this.eventHandlers.get(parsedMessage.event);
handlers?.forEach(handler => {
this.logger.verbose('Executing handler for event:', parsedMessage.event);
handler(parsedMessage.data, socket);
});
if (parsedPayload && parsedPayload.event) {
const handlers = this.eventHandlers.get(parsedPayload.event);
handlers?.forEach(handler => handler(parsedPayload.data, socket));
}
} catch (error) {
this.logger.error('Failed to parse message:', message, 'Error:', error);
this.logger.error('Failed to parse payload:', payloadBuffer.toString(), 'Error:', error);
}

@@ -72,13 +71,9 @@ }

public on(event: string, handler: EventHandler): void {
this.logger.verbose(`Adding handler for event: ${event}`);
if (!this.eventHandlers.has(event)) {
this.eventHandlers.set(event, []);
this.logger.verbose(`Created new handler array for event: ${event}`);
}
this.eventHandlers.get(event)?.push(handler);
this.logger.verbose(`Handler added for event: ${event}`);
}
public start(): void {
this.logger.verbose('Starting WebSocket server');
this.wss = new WebSocketServer({ port: this.port, host: this.host });

@@ -89,13 +84,14 @@ this.setupListeners();

public emit(event: string, data: any): void {
this.logger.verbose(`Emitting event: ${event}`);
this.wss?.clients.forEach((client) => {
if (client.readyState === WebSocket.OPEN) {
client.send(JSON.stringify({ event, data }));
this.logger.verbose(`Emitted event: ${event} to clients`);
}
});
public emitToUUID(uuid: string, event: string, data: any): void {
const socket = this.uuidToSocket.get(uuid);
if (socket && socket.readyState === WebSocket.OPEN) {
socket.send(JSON.stringify({ event, data }));
}
}
public attachSocket(uuid: string, socket: WebSocket): void {
this.uuidToSocket.set(uuid, socket);
}
}
export { BridgeServer };
SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc