This is an automated email from the ASF dual-hosted git repository.
elizabeth pushed a commit to branch elizabeth/fix-resize-bug
in repository https://gitbox.apache.org/repos/asf/superset.git
commit 12a9efe8d170c9644de6decbc157b50a74967a61
Author: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
AuthorDate: Tue Jul 29 20:19:31 2025 +0700
chore(deps): bump cookie and @types/cookie in /superset-websocket (#34335)
Signed-off-by: dependabot[bot] <[email protected]>
Signed-off-by: hainenber <[email protected]>
Co-authored-by: dependabot[bot]
<49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: hainenber <[email protected]>
---
superset-websocket/package-lock.json | 29 ++++++++--------------------
superset-websocket/package.json | 7 +++----
superset-websocket/spec/config.test.ts | 1 +
superset-websocket/spec/index.test.ts | 35 +++++++++++++++++++++++-----------
superset-websocket/src/index.ts | 4 ++--
5 files changed, 38 insertions(+), 38 deletions(-)
diff --git a/superset-websocket/package-lock.json
b/superset-websocket/package-lock.json
index 968f4bdc32..ee339ed475 100644
--- a/superset-websocket/package-lock.json
+++ b/superset-websocket/package-lock.json
@@ -9,7 +9,7 @@
"version": "0.0.1",
"license": "Apache-2.0",
"dependencies": {
- "cookie": "^0.7.0",
+ "cookie": "^1.0.2",
"hot-shots": "^11.1.0",
"ioredis": "^5.6.1",
"jsonwebtoken": "^9.0.2",
@@ -20,7 +20,6 @@
},
"devDependencies": {
"@eslint/js": "^9.25.1",
- "@types/cookie": "^0.6.0",
"@types/eslint__js": "^8.42.3",
"@types/ioredis": "^4.27.8",
"@types/jest": "^29.5.14",
@@ -1721,12 +1720,6 @@
"@babel/types": "^7.3.0"
}
},
- "node_modules/@types/cookie": {
- "version": "0.6.0",
- "resolved":
"https://registry.npmjs.org/@types/cookie/-/cookie-0.6.0.tgz",
- "integrity":
"sha512-4Kh9a6B2bQciAhf7FSuMRRkUWecJgJu9nPnx3yzpsfXX/c50REIqpHY4C82bXP90qrLtXtkDxTZosYO3UpOwlA==",
- "dev": true
- },
"node_modules/@types/eslint": {
"version": "9.6.1",
"resolved":
"https://registry.npmjs.org/@types/eslint/-/eslint-9.6.1.tgz",
@@ -3045,11 +3038,11 @@
"dev": true
},
"node_modules/cookie": {
- "version": "0.7.0",
- "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.7.0.tgz",
- "integrity":
"sha512-qCf+V4dtlNhSRXGAZatc1TasyFO6GjohcOul807YOb5ik3+kQSnb4d7iajeCL8QHaJ4uZEjCgiCJerKXwdRVlQ==",
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/cookie/-/cookie-1.0.2.tgz",
+ "integrity":
"sha512-9Kr/j4O16ISv8zBBhJoi4bXOYNTkFLOqSL3UDB0njXxCXNezjeyVrJyGOWtgfs/q2km1gwBcfH8q1yEGoMYunA==",
"engines": {
- "node": ">= 0.6"
+ "node": ">=18"
}
},
"node_modules/create-jest": {
@@ -8402,12 +8395,6 @@
"@babel/types": "^7.3.0"
}
},
- "@types/cookie": {
- "version": "0.6.0",
- "resolved":
"https://registry.npmjs.org/@types/cookie/-/cookie-0.6.0.tgz",
- "integrity":
"sha512-4Kh9a6B2bQciAhf7FSuMRRkUWecJgJu9nPnx3yzpsfXX/c50REIqpHY4C82bXP90qrLtXtkDxTZosYO3UpOwlA==",
- "dev": true
- },
"@types/eslint": {
"version": "9.6.1",
"resolved":
"https://registry.npmjs.org/@types/eslint/-/eslint-9.6.1.tgz",
@@ -9317,9 +9304,9 @@
"dev": true
},
"cookie": {
- "version": "0.7.0",
- "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.7.0.tgz",
- "integrity":
"sha512-qCf+V4dtlNhSRXGAZatc1TasyFO6GjohcOul807YOb5ik3+kQSnb4d7iajeCL8QHaJ4uZEjCgiCJerKXwdRVlQ=="
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/cookie/-/cookie-1.0.2.tgz",
+ "integrity":
"sha512-9Kr/j4O16ISv8zBBhJoi4bXOYNTkFLOqSL3UDB0njXxCXNezjeyVrJyGOWtgfs/q2km1gwBcfH8q1yEGoMYunA=="
},
"create-jest": {
"version": "29.7.0",
diff --git a/superset-websocket/package.json b/superset-websocket/package.json
index 05c1477f5c..531b941e77 100644
--- a/superset-websocket/package.json
+++ b/superset-websocket/package.json
@@ -17,7 +17,7 @@
},
"license": "Apache-2.0",
"dependencies": {
- "cookie": "^0.7.0",
+ "cookie": "^1.0.2",
"hot-shots": "^11.1.0",
"ioredis": "^5.6.1",
"jsonwebtoken": "^9.0.2",
@@ -28,7 +28,6 @@
},
"devDependencies": {
"@eslint/js": "^9.25.1",
- "@types/cookie": "^0.6.0",
"@types/eslint__js": "^8.42.3",
"@types/ioredis": "^4.27.8",
"@types/jest": "^29.5.14",
@@ -52,7 +51,7 @@
"typescript-eslint": "^8.19.0"
},
"engines": {
- "node": "^16.9.1",
- "npm": "^7.5.4 || ^8.1.2"
+ "node": "^20.19.4",
+ "npm": "^10.8.2"
}
}
diff --git a/superset-websocket/spec/config.test.ts
b/superset-websocket/spec/config.test.ts
index 9df8710190..2ad756b04c 100644
--- a/superset-websocket/spec/config.test.ts
+++ b/superset-websocket/spec/config.test.ts
@@ -17,6 +17,7 @@
* under the License.
*/
import { buildConfig } from '../src/config';
+import { expect, test } from '@jest/globals';
test('buildConfig() builds configuration and applies env var overrides', () =>
{
let config = buildConfig();
diff --git a/superset-websocket/spec/index.test.ts
b/superset-websocket/spec/index.test.ts
index 20a399d395..ce1c82128b 100644
--- a/superset-websocket/spec/index.test.ts
+++ b/superset-websocket/spec/index.test.ts
@@ -19,15 +19,26 @@
const jwt = require('jsonwebtoken');
const config = require('../config.test.json');
-import { describe, expect, test, beforeEach, afterEach } from '@jest/globals';
+import {
+ describe,
+ expect,
+ test,
+ beforeEach,
+ afterEach,
+ jest,
+} from '@jest/globals';
import * as http from 'http';
import * as net from 'net';
import { WebSocket } from 'ws';
+interface MockedRedisXrange {
+ (): Promise<server.StreamResult[]>;
+}
+
// NOTE: these mock variables needs to start with "mock" due to
// calls to `jest.mock` being hoisted to the top of the file.
//
https://jestjs.io/docs/es6-class-mocks#calling-jestmock-with-the-module-factory-parameter
-const mockRedisXrange = jest.fn();
+const mockRedisXrange = jest.fn() as jest.MockedFunction<MockedRedisXrange>;
jest.mock('ws');
jest.mock('ioredis', () => {
@@ -59,7 +70,7 @@ import * as server from '../src/index';
import { statsd } from '../src/index';
describe('server', () => {
- let statsdIncrementMock: jest.SpyInstance;
+ let statsdIncrementMock: jest.SpiedFunction<typeof statsd.increment>;
beforeEach(() => {
mockRedisXrange.mockClear();
@@ -319,10 +330,12 @@ describe('server', () => {
describe('wsConnection', () => {
let ws: WebSocket;
- let wsEventMock: jest.SpyInstance;
- let trackClientSpy: jest.SpyInstance;
- let fetchRangeFromStreamSpy: jest.SpyInstance;
- let dateNowSpy: jest.SpyInstance;
+ let wsEventMock: jest.SpiedFunction<typeof ws.on>;
+ let trackClientSpy: jest.SpiedFunction<typeof server.trackClient>;
+ let fetchRangeFromStreamSpy: jest.SpiedFunction<
+ typeof server.fetchRangeFromStream
+ >;
+ let dateNowSpy: jest.SpiedFunction<typeof Date.now>;
let socketInstanceExpected: server.SocketInstance;
const getRequest = (token: string, url: string): http.IncomingMessage => {
@@ -431,8 +444,8 @@ describe('server', () => {
describe('httpUpgrade', () => {
let socket: net.Socket;
- let socketDestroySpy: jest.SpyInstance;
- let wssUpgradeSpy: jest.SpyInstance;
+ let socketDestroySpy: jest.SpiedFunction<typeof socket.destroy>;
+ let wssUpgradeSpy: jest.SpiedFunction<typeof server.wss.handleUpgrade>;
const getRequest = (token: string, url: string): http.IncomingMessage => {
const request = new http.IncomingMessage(new net.Socket());
@@ -496,8 +509,8 @@ describe('server', () => {
describe('checkSockets', () => {
let ws: WebSocket;
- let pingSpy: jest.SpyInstance;
- let terminateSpy: jest.SpyInstance;
+ let pingSpy: jest.SpiedFunction<typeof ws.ping>;
+ let terminateSpy: jest.SpiedFunction<typeof ws.terminate>;
let socketInstance: server.SocketInstance;
beforeEach(() => {
diff --git a/superset-websocket/src/index.ts b/superset-websocket/src/index.ts
index e754af1990..6d54bf53ad 100644
--- a/superset-websocket/src/index.ts
+++ b/superset-websocket/src/index.ts
@@ -21,7 +21,7 @@ import * as net from 'net';
import WebSocket from 'ws';
import { v4 as uuidv4 } from 'uuid';
import jwt, { Algorithm } from 'jsonwebtoken';
-import cookie from 'cookie';
+import { parse } from 'cookie';
import Redis, { RedisOptions } from 'ioredis';
import StatsD from 'hot-shots';
@@ -285,7 +285,7 @@ export const processStreamResults = (results:
StreamResult[]): void => {
* configured via 'jwtCookieName' in the config.
*/
const readChannelId = (request: http.IncomingMessage): string => {
- const cookies = cookie.parse(request.headers.cookie || '');
+ const cookies = parse(request.headers.cookie || '');
const token = cookies[opts.jwtCookieName];
if (!token) throw new Error('JWT not present');