socket.io-parser
Advanced tools
| "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) |
@@ -90,2 +90,3 @@ import { Emitter } from "@socket.io/component-emitter"; | ||
| } | ||
| export declare function isPacketValid(packet: Packet): boolean; | ||
| export {}; |
+48
-10
| "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 {}; |
+46
-9
@@ -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; |
+1
-1
| (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 |
+8
-22
| { | ||
| "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", |
AI-detected potential code anomaly
Supply chain riskAI has identified unusual behaviors that may pose a security risk.
No bug tracker
MaintenancePackage does not have a linked bug tracker in package.json.
No website
QualityPackage does not have a website.
62558
6.94%0
-100%1821
6.62%1
-50%0
-100%2
100%+ Added
- Removed
Updated