Sign In

socket.io-parser

Package Overview
Dependencies
Maintainers
2
Versions
61
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

socket.io-parser - npm Package Compare versions

Comparing version
4.2.4
to
4.2.5
+2
-3
build/cjs/binary.js
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.reconstructPacket = exports.deconstructPacket = void 0;
exports.deconstructPacket = deconstructPacket;
exports.reconstructPacket = reconstructPacket;
const is_binary_js_1 = require("./is-binary.js");

@@ -20,3 +21,2 @@ /**

}
exports.deconstructPacket = deconstructPacket;
function _deconstructPacket(data, buffers) {

@@ -61,3 +61,2 @@ if (!data)

}
exports.reconstructPacket = reconstructPacket;
function _reconstructPacket(data, buffers) {

@@ -64,0 +63,0 @@ if (!data)

+1
-0

@@ -90,2 +90,3 @@ import { Emitter } from "@socket.io/component-emitter";

}
export declare function isPacketValid(packet: Packet): boolean;
export {};
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.Decoder = exports.Encoder = exports.PacketType = exports.protocol = void 0;
exports.isPacketValid = isPacketValid;
const component_emitter_1 = require("@socket.io/component-emitter");

@@ -13,7 +14,7 @@ const binary_js_1 = require("./binary.js");

const RESERVED_EVENTS = [
"connect",
"connect_error",
"disconnect",
"disconnecting",
"newListener",
"connect", // used on the client side
"connect_error", // used on the client side
"disconnect", // used on both sides
"disconnecting", // used on the server side
"newListener", // used by the Node.js EventEmitter
"removeListener", // used by the Node.js EventEmitter

@@ -36,3 +37,3 @@ ];

PacketType[PacketType["BINARY_ACK"] = 6] = "BINARY_ACK";
})(PacketType = exports.PacketType || (exports.PacketType = {}));
})(PacketType || (exports.PacketType = PacketType = {}));
/**

@@ -113,6 +114,2 @@ * A socket.io Encoder instance

exports.Encoder = Encoder;
// see https://stackoverflow.com/questions/8511281/check-if-a-value-is-an-object-in-javascript
function isObject(value) {
return Object.prototype.toString.call(value) === "[object Object]";
}
/**

@@ -325,1 +322,42 @@ * A socket.io Decoder instance

}
function isNamespaceValid(nsp) {
return typeof nsp === "string";
}
// see https://caniuse.com/mdn-javascript_builtins_number_isinteger
const isInteger = Number.isInteger ||
function (value) {
return (typeof value === "number" &&
isFinite(value) &&
Math.floor(value) === value);
};
function isAckIdValid(id) {
return id === undefined || isInteger(id);
}
// see https://stackoverflow.com/questions/8511281/check-if-a-value-is-an-object-in-javascript
function isObject(value) {
return Object.prototype.toString.call(value) === "[object Object]";
}
function isDataValid(type, payload) {
switch (type) {
case PacketType.CONNECT:
return payload === undefined || isObject(payload);
case PacketType.DISCONNECT:
return payload === undefined;
case PacketType.EVENT:
return (Array.isArray(payload) &&
(typeof payload[0] === "number" ||
(typeof payload[0] === "string" &&
RESERVED_EVENTS.indexOf(payload[0]) === -1)));
case PacketType.ACK:
return Array.isArray(payload);
case PacketType.CONNECT_ERROR:
return typeof payload === "string" || isObject(payload);
default:
return false;
}
}
function isPacketValid(packet) {
return (isNamespaceValid(packet.nsp) &&
isAckIdValid(packet.id) &&
isDataValid(packet.type, packet.data));
}

@@ -7,2 +7,2 @@ /**

export declare function isBinary(obj: any): boolean;
export declare function hasBinary(obj: any, toJSON?: boolean): any;
export declare function hasBinary(obj: any, toJSON?: boolean): boolean;
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.hasBinary = exports.isBinary = void 0;
exports.isBinary = isBinary;
exports.hasBinary = hasBinary;
const withNativeArrayBuffer = typeof ArrayBuffer === "function";

@@ -27,3 +28,2 @@ const isView = (obj) => {

}
exports.isBinary = isBinary;
function hasBinary(obj, toJSON) {

@@ -56,2 +56,1 @@ if (!obj || typeof obj !== "object") {

}
exports.hasBinary = hasBinary;

@@ -90,2 +90,3 @@ import { Emitter } from "@socket.io/component-emitter";

}
export declare function isPacketValid(packet: Packet): boolean;
export {};

@@ -10,7 +10,7 @@ import { Emitter } from "@socket.io/component-emitter";

const RESERVED_EVENTS = [
"connect",
"connect_error",
"disconnect",
"disconnecting",
"newListener",
"connect", // used on the client side
"connect_error", // used on the client side
"disconnect", // used on both sides
"disconnecting", // used on the server side
"newListener", // used by the Node.js EventEmitter
"removeListener", // used by the Node.js EventEmitter

@@ -108,6 +108,2 @@ ];

}
// see https://stackoverflow.com/questions/8511281/check-if-a-value-is-an-object-in-javascript
function isObject(value) {
return Object.prototype.toString.call(value) === "[object Object]";
}
/**

@@ -319,1 +315,42 @@ * A socket.io Decoder instance

}
function isNamespaceValid(nsp) {
return typeof nsp === "string";
}
// see https://caniuse.com/mdn-javascript_builtins_number_isinteger
const isInteger = Number.isInteger ||
function (value) {
return (typeof value === "number" &&
isFinite(value) &&
Math.floor(value) === value);
};
function isAckIdValid(id) {
return id === undefined || isInteger(id);
}
// see https://stackoverflow.com/questions/8511281/check-if-a-value-is-an-object-in-javascript
function isObject(value) {
return Object.prototype.toString.call(value) === "[object Object]";
}
function isDataValid(type, payload) {
switch (type) {
case PacketType.CONNECT:
return payload === undefined || isObject(payload);
case PacketType.DISCONNECT:
return payload === undefined;
case PacketType.EVENT:
return (Array.isArray(payload) &&
(typeof payload[0] === "number" ||
(typeof payload[0] === "string" &&
RESERVED_EVENTS.indexOf(payload[0]) === -1)));
case PacketType.ACK:
return Array.isArray(payload);
case PacketType.CONNECT_ERROR:
return typeof payload === "string" || isObject(payload);
default:
return false;
}
}
export function isPacketValid(packet) {
return (isNamespaceValid(packet.nsp) &&
isAckIdValid(packet.id) &&
isDataValid(packet.type, packet.data));
}

@@ -7,2 +7,2 @@ /**

export declare function isBinary(obj: any): boolean;
export declare function hasBinary(obj: any, toJSON?: boolean): any;
export declare function hasBinary(obj: any, toJSON?: boolean): boolean;

@@ -90,2 +90,3 @@ import { Emitter } from "@socket.io/component-emitter";

}
export declare function isPacketValid(packet: Packet): boolean;
export {};

@@ -8,7 +8,7 @@ import { Emitter } from "@socket.io/component-emitter";

const RESERVED_EVENTS = [
"connect",
"connect_error",
"disconnect",
"disconnecting",
"newListener",
"connect", // used on the client side
"connect_error", // used on the client side
"disconnect", // used on both sides
"disconnecting", // used on the server side
"newListener", // used by the Node.js EventEmitter
"removeListener", // used by the Node.js EventEmitter

@@ -104,6 +104,2 @@ ];

}
// see https://stackoverflow.com/questions/8511281/check-if-a-value-is-an-object-in-javascript
function isObject(value) {
return Object.prototype.toString.call(value) === "[object Object]";
}
/**

@@ -314,1 +310,42 @@ * A socket.io Decoder instance

}
function isNamespaceValid(nsp) {
return typeof nsp === "string";
}
// see https://caniuse.com/mdn-javascript_builtins_number_isinteger
const isInteger = Number.isInteger ||
function (value) {
return (typeof value === "number" &&
isFinite(value) &&
Math.floor(value) === value);
};
function isAckIdValid(id) {
return id === undefined || isInteger(id);
}
// see https://stackoverflow.com/questions/8511281/check-if-a-value-is-an-object-in-javascript
function isObject(value) {
return Object.prototype.toString.call(value) === "[object Object]";
}
function isDataValid(type, payload) {
switch (type) {
case PacketType.CONNECT:
return payload === undefined || isObject(payload);
case PacketType.DISCONNECT:
return payload === undefined;
case PacketType.EVENT:
return (Array.isArray(payload) &&
(typeof payload[0] === "number" ||
(typeof payload[0] === "string" &&
RESERVED_EVENTS.indexOf(payload[0]) === -1)));
case PacketType.ACK:
return Array.isArray(payload);
case PacketType.CONNECT_ERROR:
return typeof payload === "string" || isObject(payload);
default:
return false;
}
}
export function isPacketValid(packet) {
return (isNamespaceValid(packet.nsp) &&
isAckIdValid(packet.id) &&
isDataValid(packet.type, packet.data));
}

@@ -7,2 +7,2 @@ /**

export declare function isBinary(obj: any): boolean;
export declare function hasBinary(obj: any, toJSON?: boolean): any;
export declare function hasBinary(obj: any, toJSON?: boolean): boolean;
(The MIT License)
Copyright (c) 2014 Guillermo Rauch <guillermo@learnboost.com>
Copyright (c) 2014-present Guillermo Rauch and Socket.IO contributors

@@ -5,0 +5,0 @@ Permission is hereby granted, free of charge, to any person obtaining a copy of

{
"name": "socket.io-parser",
"version": "4.2.4",
"version": "4.2.5",
"description": "socket.io protocol parser",
"homepage": "https://github.com/socketio/socket.io/tree/main/packages/socket.io-client#readme",
"repository": {
"type": "git",
"url": "https://github.com/socketio/socket.io-parser.git"
"url": "git+https://github.com/socketio/socket.io.git"
},
"bugs": {
"url": "https://github.com/socketio/socket.io/issues"
},
"files": [

@@ -18,2 +22,3 @@ "build/"

"node": "./build/esm-debug/index.js",
"development": "./build/esm-debug/index.js",
"default": "./build/esm/index.js"

@@ -25,23 +30,4 @@ },

"@socket.io/component-emitter": "~3.1.0",
"debug": "~4.3.1"
"debug": "~4.4.1"
},
"devDependencies": {
"@babel/core": "~7.9.6",
"@babel/preset-env": "~7.9.6",
"@babel/register": "^7.18.9",
"@types/debug": "^4.1.5",
"@types/node": "^14.11.1",
"@wdio/cli": "^7.26.0",
"@wdio/local-runner": "^7.26.0",
"@wdio/mocha-framework": "^7.26.0",
"@wdio/sauce-service": "^7.26.0",
"@wdio/spec-reporter": "^7.26.0",
"benchmark": "2.1.2",
"expect.js": "0.3.1",
"mocha": "^10.1.0",
"prettier": "^2.1.2",
"rimraf": "^3.0.2",
"typescript": "^4.0.3",
"wdio-geckodriver-service": "^4.0.0"
},
"scripts": {

@@ -48,0 +34,0 @@ "compile": "rimraf ./build && tsc && tsc -p tsconfig.esm.json && ./postcompile.sh",