Huge News!Announcing our $40M Series B led by Abstract Ventures.Learn More
Socket
Sign inDemoInstall
Socket

@fanoutio/grip

Package Overview
Dependencies
Maintainers
2
Versions
49
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@fanoutio/grip - npm Package Compare versions

Comparing version 3.0.4-beta.2 to 3.0.4-beta.3

2

build-esm/main.js

@@ -22,4 +22,4 @@ // Flatten and export

export { encodeWebSocketEvents, decodeWebSocketEvents, createWebSocketControlMessage, } from './utilities/webSocketEvents';
export { isWsOverHttp, getWebSocketContextFromReq, } from './utilities/ws-over-http';
export { isWsOverHttp, getWebSocketContext, getWebSocketContextFromReq, } from './utilities/ws-over-http';
export { validateSig } from './utilities/jwt';
//# sourceMappingURL=main.js.map

@@ -0,3 +1,40 @@

var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
return new (P || (P = Promise))(function (resolve, reject) {
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
step((generator = generator.apply(thisArg, _arguments || [])).next());
});
};
var __generator = (this && this.__generator) || function (thisArg, body) {
var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
function verb(n) { return function (v) { return step([n, v]); }; }
function step(op) {
if (f) throw new TypeError("Generator is already executing.");
while (_) try {
if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
if (y = 0, t) op = [op[0] & 2, t.value];
switch (op[0]) {
case 0: case 1: t = op; break;
case 4: _.label++; return { value: op[1], done: false };
case 5: _.label++; y = op[1]; op = [0]; continue;
case 7: op = _.ops.pop(); _.trys.pop(); continue;
default:
if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
if (t[2]) _.ops.pop();
_.trys.pop(); continue;
}
op = body.call(thisArg, _);
} catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
}
};
import * as querystring from 'querystring';
import { encodeCString, escapeQuotes, isString } from './string';
import debug from "./debug";
export function createKeepAliveHeader(data, timeout) {

@@ -60,2 +97,43 @@ var output = null;

}
export function readRequestBody(req) {
return __awaiter(this, void 0, void 0, function () {
var body;
return __generator(this, function (_a) {
switch (_a.label) {
case 0:
if (!(req.body != null)) return [3 /*break*/, 1];
body = req.body;
return [3 /*break*/, 3];
case 1:
debug("Reading body - start");
return [4 /*yield*/, new Promise(function (resolve) {
var bodySegments = [];
req.on('data', function (chunk) {
bodySegments.push(chunk);
});
req.on('end', function () {
var bodyBuffer = Buffer.concat(bodySegments);
resolve(bodyBuffer);
});
})];
case 2:
body = _a.sent();
if (body != null) {
if (body instanceof Buffer) {
debug("body (Buffer)", body.toString('base64'));
}
else {
debug("body (string)", body);
}
}
else {
debug("body is null");
}
debug("Reading body - end");
_a.label = 3;
case 3: return [2 /*return*/, body];
}
});
});
}
//# sourceMappingURL=http.js.map

@@ -38,3 +38,3 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {

import debug from './debug';
import { flattenHeader } from "./http";
import { flattenHeader, readRequestBody } from "./http";
import WebSocketContext from "../data/websocket/WebSocketContext";

@@ -45,22 +45,31 @@ import { decodeWebSocketEvents } from "./webSocketEvents";

var CONTENT_TYPE_WEBSOCKET_EVENTS = 'application/websocket-events';
/**
* Checks if a request is an Websocket-over-HTTP request.
* This is true if the request meets these conditions:
* - method is POST
* - content-type header is 'application/websocket-events'
* - accepts header contains 'application/websocket-events'
* @param req
* @returns boolean
*/
export function isWsOverHttp(req) {
var contentTypeHeader = flattenHeader(req.headers['content-type']);
if (contentTypeHeader != null) {
var at = contentTypeHeader.indexOf(';');
if (at >= 0) {
contentTypeHeader = contentTypeHeader.substring(0, at);
}
debug("content-type header", contentTypeHeader);
if (req.method !== 'POST') {
return false;
}
else {
var contentTypeHeader = req.headers['content-type'];
if (contentTypeHeader == null || contentTypeHeader === '') {
debug("content-type header not present");
return false;
}
var acceptTypesHeader = flattenHeader(req.headers['accept']);
if (acceptTypesHeader != null) {
debug("accept header", acceptTypesHeader);
}
else {
contentTypeHeader = contentTypeHeader.split(';')[0];
contentTypeHeader = contentTypeHeader.trim();
debug("content-type header", contentTypeHeader);
var acceptTypesHeader = req.headers['accept'];
if (acceptTypesHeader == null || acceptTypesHeader === '') {
debug("accept header not present");
return false;
}
var acceptTypes = acceptTypesHeader === null || acceptTypesHeader === void 0 ? void 0 : acceptTypesHeader.split(',').map(function (item) { return item.trim(); });
debug("accept header", acceptTypesHeader);
var acceptTypes = acceptTypesHeader.split(',')
.map(function (item) { return item.trim(); });
debug("accept types", acceptTypes);

@@ -70,72 +79,15 @@ return req.method === 'POST' && (contentTypeHeader === CONTENT_TYPE_WEBSOCKET_EVENTS || (acceptTypes === null || acceptTypes === void 0 ? void 0 : acceptTypes.includes(CONTENT_TYPE_WEBSOCKET_EVENTS)));

export function getWebSocketContextFromReq(req, prefix) {
var _a;
if (prefix === void 0) { prefix = ''; }
return __awaiter(this, void 0, void 0, function () {
var cid, subprotocols, meta, _i, _b, _c, key, value, lKey, k, _d, events, wsContext;
return __generator(this, function (_e) {
switch (_e.label) {
case 0:
cid = flattenHeader(req.headers['connection-id']);
if (cid == null) {
throw new ConnectionIdMissingException();
}
debug("Connection ID", cid);
subprotocols = ((_a = req.headers['sec-websocket-protocol']) !== null && _a !== void 0 ? _a : '').split(',');
debug("Request subprotocols", subprotocols);
// Handle meta keys
debug("Handling Meta - start");
meta = {};
for (_i = 0, _b = Object.entries(req.headers); _i < _b.length; _i++) {
_c = _b[_i], key = _c[0], value = _c[1];
lKey = key.toLowerCase();
if (lKey.startsWith('meta-')) {
k = lKey.substring(5);
meta[k] = value;
debug(k, "=", value);
}
}
debug("Handling Meta - end");
if (!(req.body == null)) return [3 /*break*/, 2];
debug("Reading body - start");
_d = req;
return [4 /*yield*/, new Promise(function (resolve) {
var bodySegments = [];
req.on('data', function (chunk) {
bodySegments.push(chunk);
});
req.on('end', function () {
var bodyBuffer = Buffer.concat(bodySegments);
resolve(bodyBuffer);
});
})];
var body;
return __generator(this, function (_a) {
switch (_a.label) {
case 0: return [4 /*yield*/, readRequestBody(req)];
case 1:
_d.body = _e.sent();
if (req.body != null) {
if (req.body instanceof Buffer) {
debug("body (Buffer)", req.body.toString('base64'));
}
else {
debug("body (string)", req.body);
}
}
else {
debug("body is null");
}
debug("Reading body - end");
_e.label = 2;
case 2:
debug("Decode body - start");
events = null;
try {
events = decodeWebSocketEvents(req.body);
}
catch (err) {
body = _a.sent();
if (body == null) {
debug("ERROR - body is null!");
throw new WebSocketDecodeEventException();
}
debug("Decode body - end");
debug("Websocket Events", events);
debug("Creating Websocket Context - start");
wsContext = new WebSocketContext(cid, meta, events, { prefix: prefix, subprotocols: subprotocols });
debug("Creating Websocket Context - end");
return [2 /*return*/, wsContext];
return [2 /*return*/, getWebSocketContext(req, body, prefix)];
}

@@ -145,2 +97,45 @@ });

}
export function getWebSocketContext(req, body, prefix) {
var _a;
if (prefix === void 0) { prefix = ''; }
return __awaiter(this, void 0, void 0, function () {
var cid, subprotocols, meta, _i, _b, _c, key, value, lKey, k, events, wsContext;
return __generator(this, function (_d) {
cid = flattenHeader(req.headers['connection-id']);
if (cid == null) {
throw new ConnectionIdMissingException();
}
debug("Connection ID", cid);
subprotocols = ((_a = req.headers['sec-websocket-protocol']) !== null && _a !== void 0 ? _a : '').split(',');
debug("Request subprotocols", subprotocols);
// Handle meta keys
debug("Handling Meta - start");
meta = {};
for (_i = 0, _b = Object.entries(req.headers); _i < _b.length; _i++) {
_c = _b[_i], key = _c[0], value = _c[1];
lKey = key.toLowerCase();
if (lKey.startsWith('meta-')) {
k = lKey.substring(5);
meta[k] = value;
debug(k, "=", value);
}
}
debug("Handling Meta - end");
debug("Decode body - start");
events = null;
try {
events = decodeWebSocketEvents(body);
}
catch (err) {
throw new WebSocketDecodeEventException();
}
debug("Decode body - end");
debug("Websocket Events", events);
debug("Creating Websocket Context - start");
wsContext = new WebSocketContext(cid, meta, events, { prefix: prefix, subprotocols: subprotocols });
debug("Creating Websocket Context - end");
return [2 /*return*/, wsContext];
});
});
}
//# sourceMappingURL=ws-over-http.js.map

@@ -26,3 +26,3 @@ export { default as Publisher } from './engine/Publisher';

export { encodeWebSocketEvents, decodeWebSocketEvents, createWebSocketControlMessage, } from './utilities/webSocketEvents';
export { isWsOverHttp, getWebSocketContextFromReq, } from './utilities/ws-over-http';
export { isWsOverHttp, getWebSocketContext, getWebSocketContextFromReq, } from './utilities/ws-over-http';
export { validateSig } from './utilities/jwt';

@@ -63,2 +63,3 @@ "use strict";

Object.defineProperty(exports, "isWsOverHttp", { enumerable: true, get: function () { return ws_over_http_1.isWsOverHttp; } });
Object.defineProperty(exports, "getWebSocketContext", { enumerable: true, get: function () { return ws_over_http_1.getWebSocketContext; } });
Object.defineProperty(exports, "getWebSocketContextFromReq", { enumerable: true, get: function () { return ws_over_http_1.getWebSocketContextFromReq; } });

@@ -65,0 +66,0 @@ var jwt_1 = require("./utilities/jwt");

/// <reference types="node" />
import { IncomingMessage } from "http";
export declare function createKeepAliveHeader(data: string | Buffer, timeout: number): string;

@@ -9,1 +10,4 @@ export declare function createMetaHeader(data: object): string;

export declare function flattenHeader(value: undefined | string | string[]): string | undefined;
export declare function readRequestBody(req: IncomingMessage & {
body?: string | Buffer;
}): Promise<string | Buffer | undefined>;

@@ -21,6 +21,46 @@ "use strict";

};
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
return new (P || (P = Promise))(function (resolve, reject) {
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
step((generator = generator.apply(thisArg, _arguments || [])).next());
});
};
var __generator = (this && this.__generator) || function (thisArg, body) {
var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
function verb(n) { return function (v) { return step([n, v]); }; }
function step(op) {
if (f) throw new TypeError("Generator is already executing.");
while (_) try {
if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
if (y = 0, t) op = [op[0] & 2, t.value];
switch (op[0]) {
case 0: case 1: t = op; break;
case 4: _.label++; return { value: op[1], done: false };
case 5: _.label++; y = op[1]; op = [0]; continue;
case 7: op = _.ops.pop(); _.trys.pop(); continue;
default:
if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
if (t[2]) _.ops.pop();
_.trys.pop(); continue;
}
op = body.call(thisArg, _);
} catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
}
};
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.flattenHeader = exports.parseQueryString = exports.createNextLinkHeader = exports.createMetaHeader = exports.createKeepAliveHeader = void 0;
exports.readRequestBody = exports.flattenHeader = exports.parseQueryString = exports.createNextLinkHeader = exports.createMetaHeader = exports.createKeepAliveHeader = void 0;
var querystring = __importStar(require("querystring"));
var string_1 = require("./string");
var debug_1 = __importDefault(require("./debug"));
function createKeepAliveHeader(data, timeout) {

@@ -88,2 +128,44 @@ var output = null;

exports.flattenHeader = flattenHeader;
function readRequestBody(req) {
return __awaiter(this, void 0, void 0, function () {
var body;
return __generator(this, function (_a) {
switch (_a.label) {
case 0:
if (!(req.body != null)) return [3 /*break*/, 1];
body = req.body;
return [3 /*break*/, 3];
case 1:
debug_1.default("Reading body - start");
return [4 /*yield*/, new Promise(function (resolve) {
var bodySegments = [];
req.on('data', function (chunk) {
bodySegments.push(chunk);
});
req.on('end', function () {
var bodyBuffer = Buffer.concat(bodySegments);
resolve(bodyBuffer);
});
})];
case 2:
body = _a.sent();
if (body != null) {
if (body instanceof Buffer) {
debug_1.default("body (Buffer)", body.toString('base64'));
}
else {
debug_1.default("body (string)", body);
}
}
else {
debug_1.default("body is null");
}
debug_1.default("Reading body - end");
_a.label = 3;
case 3: return [2 /*return*/, body];
}
});
});
}
exports.readRequestBody = readRequestBody;
//# sourceMappingURL=http.js.map
/// <reference types="node" />
import { IncomingMessage } from "http";
import { IncomingHttpHeaders, IncomingMessage } from "http";
import WebSocketContext from "../data/websocket/WebSocketContext";
export declare type ApiRequest = IncomingMessage & {
body?: Buffer | string;
};
export declare function isWsOverHttp(req: IncomingMessage): boolean | undefined;
export declare function getWebSocketContextFromReq(req: ApiRequest, prefix?: string): Promise<WebSocketContext>;
export interface IRequest {
headers: IncomingHttpHeaders;
method?: string;
}
/**
* Checks if a request is an Websocket-over-HTTP request.
* This is true if the request meets these conditions:
* - method is POST
* - content-type header is 'application/websocket-events'
* - accepts header contains 'application/websocket-events'
* @param req
* @returns boolean
*/
export declare function isWsOverHttp(req: IRequest): boolean;
export declare function getWebSocketContextFromReq(req: IncomingMessage, prefix?: string): Promise<WebSocketContext>;
export declare function getWebSocketContext(req: IRequest, body: string | Buffer, prefix?: string): Promise<WebSocketContext>;

@@ -42,3 +42,3 @@ "use strict";

Object.defineProperty(exports, "__esModule", { value: true });
exports.getWebSocketContextFromReq = exports.isWsOverHttp = void 0;
exports.getWebSocketContext = exports.getWebSocketContextFromReq = exports.isWsOverHttp = void 0;
var debug_1 = __importDefault(require("./debug"));

@@ -51,22 +51,31 @@ var http_1 = require("./http");

var CONTENT_TYPE_WEBSOCKET_EVENTS = 'application/websocket-events';
/**
* Checks if a request is an Websocket-over-HTTP request.
* This is true if the request meets these conditions:
* - method is POST
* - content-type header is 'application/websocket-events'
* - accepts header contains 'application/websocket-events'
* @param req
* @returns boolean
*/
function isWsOverHttp(req) {
var contentTypeHeader = http_1.flattenHeader(req.headers['content-type']);
if (contentTypeHeader != null) {
var at = contentTypeHeader.indexOf(';');
if (at >= 0) {
contentTypeHeader = contentTypeHeader.substring(0, at);
}
debug_1.default("content-type header", contentTypeHeader);
if (req.method !== 'POST') {
return false;
}
else {
var contentTypeHeader = req.headers['content-type'];
if (contentTypeHeader == null || contentTypeHeader === '') {
debug_1.default("content-type header not present");
return false;
}
var acceptTypesHeader = http_1.flattenHeader(req.headers['accept']);
if (acceptTypesHeader != null) {
debug_1.default("accept header", acceptTypesHeader);
}
else {
contentTypeHeader = contentTypeHeader.split(';')[0];
contentTypeHeader = contentTypeHeader.trim();
debug_1.default("content-type header", contentTypeHeader);
var acceptTypesHeader = req.headers['accept'];
if (acceptTypesHeader == null || acceptTypesHeader === '') {
debug_1.default("accept header not present");
return false;
}
var acceptTypes = acceptTypesHeader === null || acceptTypesHeader === void 0 ? void 0 : acceptTypesHeader.split(',').map(function (item) { return item.trim(); });
debug_1.default("accept header", acceptTypesHeader);
var acceptTypes = acceptTypesHeader.split(',')
.map(function (item) { return item.trim(); });
debug_1.default("accept types", acceptTypes);

@@ -77,72 +86,15 @@ return req.method === 'POST' && (contentTypeHeader === CONTENT_TYPE_WEBSOCKET_EVENTS || (acceptTypes === null || acceptTypes === void 0 ? void 0 : acceptTypes.includes(CONTENT_TYPE_WEBSOCKET_EVENTS)));

function getWebSocketContextFromReq(req, prefix) {
var _a;
if (prefix === void 0) { prefix = ''; }
return __awaiter(this, void 0, void 0, function () {
var cid, subprotocols, meta, _i, _b, _c, key, value, lKey, k, _d, events, wsContext;
return __generator(this, function (_e) {
switch (_e.label) {
case 0:
cid = http_1.flattenHeader(req.headers['connection-id']);
if (cid == null) {
throw new ConnectionIdMissingException_1.default();
}
debug_1.default("Connection ID", cid);
subprotocols = ((_a = req.headers['sec-websocket-protocol']) !== null && _a !== void 0 ? _a : '').split(',');
debug_1.default("Request subprotocols", subprotocols);
// Handle meta keys
debug_1.default("Handling Meta - start");
meta = {};
for (_i = 0, _b = Object.entries(req.headers); _i < _b.length; _i++) {
_c = _b[_i], key = _c[0], value = _c[1];
lKey = key.toLowerCase();
if (lKey.startsWith('meta-')) {
k = lKey.substring(5);
meta[k] = value;
debug_1.default(k, "=", value);
}
}
debug_1.default("Handling Meta - end");
if (!(req.body == null)) return [3 /*break*/, 2];
debug_1.default("Reading body - start");
_d = req;
return [4 /*yield*/, new Promise(function (resolve) {
var bodySegments = [];
req.on('data', function (chunk) {
bodySegments.push(chunk);
});
req.on('end', function () {
var bodyBuffer = Buffer.concat(bodySegments);
resolve(bodyBuffer);
});
})];
var body;
return __generator(this, function (_a) {
switch (_a.label) {
case 0: return [4 /*yield*/, http_1.readRequestBody(req)];
case 1:
_d.body = _e.sent();
if (req.body != null) {
if (req.body instanceof Buffer) {
debug_1.default("body (Buffer)", req.body.toString('base64'));
}
else {
debug_1.default("body (string)", req.body);
}
}
else {
debug_1.default("body is null");
}
debug_1.default("Reading body - end");
_e.label = 2;
case 2:
debug_1.default("Decode body - start");
events = null;
try {
events = webSocketEvents_1.decodeWebSocketEvents(req.body);
}
catch (err) {
body = _a.sent();
if (body == null) {
debug_1.default("ERROR - body is null!");
throw new WebSocketDecodeEventException_1.default();
}
debug_1.default("Decode body - end");
debug_1.default("Websocket Events", events);
debug_1.default("Creating Websocket Context - start");
wsContext = new WebSocketContext_1.default(cid, meta, events, { prefix: prefix, subprotocols: subprotocols });
debug_1.default("Creating Websocket Context - end");
return [2 /*return*/, wsContext];
return [2 /*return*/, getWebSocketContext(req, body, prefix)];
}

@@ -153,2 +105,46 @@ });

exports.getWebSocketContextFromReq = getWebSocketContextFromReq;
function getWebSocketContext(req, body, prefix) {
var _a;
if (prefix === void 0) { prefix = ''; }
return __awaiter(this, void 0, void 0, function () {
var cid, subprotocols, meta, _i, _b, _c, key, value, lKey, k, events, wsContext;
return __generator(this, function (_d) {
cid = http_1.flattenHeader(req.headers['connection-id']);
if (cid == null) {
throw new ConnectionIdMissingException_1.default();
}
debug_1.default("Connection ID", cid);
subprotocols = ((_a = req.headers['sec-websocket-protocol']) !== null && _a !== void 0 ? _a : '').split(',');
debug_1.default("Request subprotocols", subprotocols);
// Handle meta keys
debug_1.default("Handling Meta - start");
meta = {};
for (_i = 0, _b = Object.entries(req.headers); _i < _b.length; _i++) {
_c = _b[_i], key = _c[0], value = _c[1];
lKey = key.toLowerCase();
if (lKey.startsWith('meta-')) {
k = lKey.substring(5);
meta[k] = value;
debug_1.default(k, "=", value);
}
}
debug_1.default("Handling Meta - end");
debug_1.default("Decode body - start");
events = null;
try {
events = webSocketEvents_1.decodeWebSocketEvents(body);
}
catch (err) {
throw new WebSocketDecodeEventException_1.default();
}
debug_1.default("Decode body - end");
debug_1.default("Websocket Events", events);
debug_1.default("Creating Websocket Context - start");
wsContext = new WebSocketContext_1.default(cid, meta, events, { prefix: prefix, subprotocols: subprotocols });
debug_1.default("Creating Websocket Context - end");
return [2 /*return*/, wsContext];
});
});
}
exports.getWebSocketContext = getWebSocketContext;
//# sourceMappingURL=ws-over-http.js.map
{
"name": "@fanoutio/grip",
"version": "3.0.4-beta.2",
"version": "3.0.4-beta.3",
"author": "Fanout, Inc. <info@fanout.io>",

@@ -5,0 +5,0 @@ "description": "GRIP Interface Library",

Sorry, the diff of this file is too big to display

Sorry, the diff of this file is too big to display

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

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