mirror of
https://github.com/ether/etherpad-lite.git
synced 2025-05-05 22:57:11 -04:00
feat :migrate socket.io 2 -> 3
This commit is contained in:
parent
04cc3c8d54
commit
e7bfd0d9b1
8 changed files with 249 additions and 0 deletions
13
.vscode/settings.json
vendored
Normal file
13
.vscode/settings.json
vendored
Normal file
|
@ -0,0 +1,13 @@
|
||||||
|
{
|
||||||
|
"eslint.enable": false,
|
||||||
|
"prettier.enable": false,
|
||||||
|
"javascript.format.enable": false,
|
||||||
|
"editor.formatOnSave": false,
|
||||||
|
"eslint.autoFixOnSave": false,
|
||||||
|
"[javascript]": {
|
||||||
|
"editor.formatOnSave": false
|
||||||
|
},
|
||||||
|
"[typescript]": {
|
||||||
|
"editor.formatOnSave": false
|
||||||
|
}
|
||||||
|
}
|
|
@ -161,7 +161,11 @@ exports.handleConnect = (socket:any) => {
|
||||||
/**
|
/**
|
||||||
* Kicks all sessions from a pad
|
* Kicks all sessions from a pad
|
||||||
*/
|
*/
|
||||||
|
<<<<<<< HEAD:src/node/handler/PadMessageHandler.ts
|
||||||
exports.kickSessionsFromPad = (padID: string) => {
|
exports.kickSessionsFromPad = (padID: string) => {
|
||||||
|
=======
|
||||||
|
exports.kickSessionsFromPad = (padID) => {
|
||||||
|
>>>>>>> 53a847ce4 (feat :migrate socket.io 2 -> 3):src/node/handler/PadMessageHandler.js
|
||||||
if (typeof socketio.sockets.clients !== 'object') return;
|
if (typeof socketio.sockets.clients !== 'object') return;
|
||||||
|
|
||||||
// skip if there is nobody on this pad
|
// skip if there is nobody on this pad
|
||||||
|
@ -665,7 +669,11 @@ const handleUserChanges = async (socket:any, message: typeof ChatMessage) => {
|
||||||
thisSession.rev = newRev;
|
thisSession.rev = newRev;
|
||||||
if (newRev !== r) thisSession.time = await pad.getRevisionDate(newRev);
|
if (newRev !== r) thisSession.time = await pad.getRevisionDate(newRev);
|
||||||
await exports.updatePadClients(pad);
|
await exports.updatePadClients(pad);
|
||||||
|
<<<<<<< HEAD:src/node/handler/PadMessageHandler.ts
|
||||||
} catch (err:any) {
|
} catch (err:any) {
|
||||||
|
=======
|
||||||
|
} catch (err) {
|
||||||
|
>>>>>>> 53a847ce4 (feat :migrate socket.io 2 -> 3):src/node/handler/PadMessageHandler.js
|
||||||
socket.emit('message', {disconnect: 'badChangeset'});
|
socket.emit('message', {disconnect: 'badChangeset'});
|
||||||
stats.meter('failedChangesets').mark();
|
stats.meter('failedChangesets').mark();
|
||||||
messageLogger.warn(`Failed to apply USER_CHANGES from author ${thisSession.author} ` +
|
messageLogger.warn(`Failed to apply USER_CHANGES from author ${thisSession.author} ` +
|
||||||
|
@ -724,7 +732,11 @@ exports.updatePadClients = async (pad: PadType) => {
|
||||||
};
|
};
|
||||||
try {
|
try {
|
||||||
socket.emit('message', msg);
|
socket.emit('message', msg);
|
||||||
|
<<<<<<< HEAD:src/node/handler/PadMessageHandler.ts
|
||||||
} catch (err:any) {
|
} catch (err:any) {
|
||||||
|
=======
|
||||||
|
} catch (err) {
|
||||||
|
>>>>>>> 53a847ce4 (feat :migrate socket.io 2 -> 3):src/node/handler/PadMessageHandler.js
|
||||||
messageLogger.error(`Failed to notify user of new revision: ${err.stack || err}`);
|
messageLogger.error(`Failed to notify user of new revision: ${err.stack || err}`);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
@ -1250,7 +1262,11 @@ const _getRoomSockets = (padID: string) => {
|
||||||
// it does here, but synchronously to avoid a race condition. This code will have to change when
|
// it does here, but synchronously to avoid a race condition. This code will have to change when
|
||||||
// we update to socket.io v3.
|
// we update to socket.io v3.
|
||||||
const room = ns.adapter.rooms?.get(padID);
|
const room = ns.adapter.rooms?.get(padID);
|
||||||
|
<<<<<<< HEAD:src/node/handler/PadMessageHandler.ts
|
||||||
|
|
||||||
|
=======
|
||||||
|
|
||||||
|
>>>>>>> 53a847ce4 (feat :migrate socket.io 2 -> 3):src/node/handler/PadMessageHandler.js
|
||||||
if (!room) return [];
|
if (!room) return [];
|
||||||
|
|
||||||
return Array.from(room)
|
return Array.from(room)
|
||||||
|
|
|
@ -7,7 +7,11 @@ const express = require('../express');
|
||||||
const log4js = require('log4js');
|
const log4js = require('log4js');
|
||||||
const proxyaddr = require('proxy-addr');
|
const proxyaddr = require('proxy-addr');
|
||||||
const settings = require('../../utils/Settings');
|
const settings = require('../../utils/Settings');
|
||||||
|
<<<<<<< HEAD
|
||||||
import {Server} from 'socket.io'
|
import {Server} from 'socket.io'
|
||||||
|
=======
|
||||||
|
const {Server} = require('socket.io');
|
||||||
|
>>>>>>> 53a847ce4 (feat :migrate socket.io 2 -> 3)
|
||||||
const socketIORouter = require('../../handler/SocketIORouter');
|
const socketIORouter = require('../../handler/SocketIORouter');
|
||||||
const hooks = require('../../../static/js/pluginfw/hooks');
|
const hooks = require('../../../static/js/pluginfw/hooks');
|
||||||
const padMessageHandler = require('../../handler/PadMessageHandler');
|
const padMessageHandler = require('../../handler/PadMessageHandler');
|
||||||
|
@ -48,7 +52,11 @@ exports.expressCloseServer = async () => {
|
||||||
logger.info('All socket.io clients have disconnected');
|
logger.info('All socket.io clients have disconnected');
|
||||||
};
|
};
|
||||||
|
|
||||||
|
<<<<<<< HEAD
|
||||||
exports.socketSessionMiddleware = (args: any) => (socket: any, next: Function) => {
|
exports.socketSessionMiddleware = (args: any) => (socket: any, next: Function) => {
|
||||||
|
=======
|
||||||
|
exports.socketSessionMiddleware = (socket: any, next: Function) => {
|
||||||
|
>>>>>>> 53a847ce4 (feat :migrate socket.io 2 -> 3)
|
||||||
const req = socket.request;
|
const req = socket.request;
|
||||||
// Express sets req.ip but socket.io does not. Replicate Express's behavior here.
|
// Express sets req.ip but socket.io does not. Replicate Express's behavior here.
|
||||||
if (req.ip == null) {
|
if (req.ip == null) {
|
||||||
|
@ -59,9 +67,17 @@ exports.socketSessionMiddleware = (args: any) => (socket: any, next: Function) =
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (!req.headers.cookie) {
|
if (!req.headers.cookie) {
|
||||||
|
<<<<<<< HEAD
|
||||||
// socketio.js-client on node.js doesn't support cookies, so pass them via a query parameter.
|
// socketio.js-client on node.js doesn't support cookies, so pass them via a query parameter.
|
||||||
req.headers.cookie = socket.handshake.query.cookie;
|
req.headers.cookie = socket.handshake.query.cookie;
|
||||||
}
|
}
|
||||||
|
=======
|
||||||
|
// socketio.js-client on node.js doesn't support cookies (see https://git.io/JU8u9), so the
|
||||||
|
// token and express_sid cookies have to be passed via a query parameter for unit tests.
|
||||||
|
req.headers.cookie = socket.handshake.query.cookie;
|
||||||
|
}
|
||||||
|
// See: https://socket.io/docs/faq/#Usage-with-express-session
|
||||||
|
>>>>>>> 53a847ce4 (feat :migrate socket.io 2 -> 3)
|
||||||
express.sessionMiddleware(req, {}, next);
|
express.sessionMiddleware(req, {}, next);
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -74,9 +90,21 @@ exports.expressCreateServer = (hookName:string, args:ArgsExpressType, cb:Functio
|
||||||
transports: settings.socketTransportProtocols,
|
transports: settings.socketTransportProtocols,
|
||||||
})
|
})
|
||||||
|
|
||||||
|
<<<<<<< HEAD
|
||||||
function handleConnection() {
|
function handleConnection() {
|
||||||
return (socket: any) => {
|
return (socket: any) => {
|
||||||
sockets.add(socket);
|
sockets.add(socket);
|
||||||
|
=======
|
||||||
|
io.on('connection', (socket:any) => {
|
||||||
|
sockets.add(socket);
|
||||||
|
socketsEvents.emit('updated');
|
||||||
|
// https://socket.io/docs/v3/faq/index.html
|
||||||
|
const session = socket.request.session;
|
||||||
|
session.connections++;
|
||||||
|
session.save();
|
||||||
|
socket.on('disconnect', () => {
|
||||||
|
sockets.delete(socket);
|
||||||
|
>>>>>>> 53a847ce4 (feat :migrate socket.io 2 -> 3)
|
||||||
socketsEvents.emit('updated');
|
socketsEvents.emit('updated');
|
||||||
// https://socket.io/docs/v3/faq/index.html
|
// https://socket.io/docs/v3/faq/index.html
|
||||||
const session = socket.request.session;
|
const session = socket.request.session;
|
||||||
|
@ -89,6 +117,7 @@ exports.expressCreateServer = (hookName:string, args:ArgsExpressType, cb:Functio
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
|
<<<<<<< HEAD
|
||||||
io.on('connection', handleConnection);
|
io.on('connection', handleConnection);
|
||||||
|
|
||||||
io.use(exports.socketSessionMiddleware(args));
|
io.use(exports.socketSessionMiddleware(args));
|
||||||
|
@ -96,6 +125,9 @@ exports.expressCreateServer = (hookName:string, args:ArgsExpressType, cb:Functio
|
||||||
// Temporary workaround so all clients go through middleware and handle connection
|
// Temporary workaround so all clients go through middleware and handle connection
|
||||||
io.of('/pluginfw/installer').use(exports.socketSessionMiddleware(args))
|
io.of('/pluginfw/installer').use(exports.socketSessionMiddleware(args))
|
||||||
io.of('/settings').use(exports.socketSessionMiddleware(args))
|
io.of('/settings').use(exports.socketSessionMiddleware(args))
|
||||||
|
=======
|
||||||
|
io.use(exports.socketSessionMiddleware);
|
||||||
|
>>>>>>> 53a847ce4 (feat :migrate socket.io 2 -> 3)
|
||||||
|
|
||||||
io.use((socket:any, next:Function) => {
|
io.use((socket:any, next:Function) => {
|
||||||
socket.conn.on('packet', (packet:string) => {
|
socket.conn.on('packet', (packet:string) => {
|
||||||
|
|
|
@ -63,7 +63,11 @@
|
||||||
"security": "1.0.0",
|
"security": "1.0.0",
|
||||||
"semver": "^7.6.0",
|
"semver": "^7.6.0",
|
||||||
"socket.io": "^3.1.2",
|
"socket.io": "^3.1.2",
|
||||||
|
<<<<<<< HEAD
|
||||||
"socket.io-client": "^4.7.4",
|
"socket.io-client": "^4.7.4",
|
||||||
|
=======
|
||||||
|
"socket.io-client": "^3.1.2",
|
||||||
|
>>>>>>> 53a847ce4 (feat :migrate socket.io 2 -> 3)
|
||||||
"superagent": "^8.1.2",
|
"superagent": "^8.1.2",
|
||||||
"terser": "^5.28.1",
|
"terser": "^5.28.1",
|
||||||
"threads": "^1.7.0",
|
"threads": "^1.7.0",
|
||||||
|
@ -88,6 +92,7 @@
|
||||||
"@types/sinon": "^17.0.3",
|
"@types/sinon": "^17.0.3",
|
||||||
"@types/supertest": "^6.0.2",
|
"@types/supertest": "^6.0.2",
|
||||||
"@types/underscore": "^1.11.15",
|
"@types/underscore": "^1.11.15",
|
||||||
|
"cypress": "^13.6.4",
|
||||||
"eslint": "^8.56.0",
|
"eslint": "^8.56.0",
|
||||||
"eslint-config-etherpad": "^3.0.22",
|
"eslint-config-etherpad": "^3.0.22",
|
||||||
"etherpad-cli-client": "^3.0.1",
|
"etherpad-cli-client": "^3.0.1",
|
||||||
|
@ -113,8 +118,13 @@
|
||||||
},
|
},
|
||||||
"scripts": {
|
"scripts": {
|
||||||
"lint": "eslint .",
|
"lint": "eslint .",
|
||||||
|
<<<<<<< HEAD
|
||||||
"test": "mocha --import=tsx --timeout 120000 --recursive tests/backend/specs/**.ts tests/backend/specs/**/*.ts ../node_modules/ep_*/static/tests/backend/specs",
|
"test": "mocha --import=tsx --timeout 120000 --recursive tests/backend/specs/**.ts tests/backend/specs/**/*.ts ../node_modules/ep_*/static/tests/backend/specs",
|
||||||
"test-container": "mocha --import=tsx --timeout 5000 tests/container/specs/api",
|
"test-container": "mocha --import=tsx --timeout 5000 tests/container/specs/api",
|
||||||
|
=======
|
||||||
|
"test": "mocha --import=tsx --timeout 990000 --recursive tests/backend/specs ../node_modules/ep_*/static/tests/backend/specs",
|
||||||
|
"test-container": "mocha --import=tsx --timeout 99000 tests/container/specs/api",
|
||||||
|
>>>>>>> 53a847ce4 (feat :migrate socket.io 2 -> 3)
|
||||||
"dev": "node --import tsx node/server.ts",
|
"dev": "node --import tsx node/server.ts",
|
||||||
"prod": "node --import tsx node/server.ts",
|
"prod": "node --import tsx node/server.ts",
|
||||||
"ts-check": "tsc --noEmit",
|
"ts-check": "tsc --noEmit",
|
||||||
|
|
164
src/pnpm-lock.yaml
generated
164
src/pnpm-lock.yaml
generated
|
@ -105,8 +105,13 @@ dependencies:
|
||||||
specifier: ^3.1.2
|
specifier: ^3.1.2
|
||||||
version: 3.1.2
|
version: 3.1.2
|
||||||
socket.io-client:
|
socket.io-client:
|
||||||
|
<<<<<<< HEAD
|
||||||
specifier: ^3.1.3
|
specifier: ^3.1.3
|
||||||
version: 3.1.3
|
version: 3.1.3
|
||||||
|
=======
|
||||||
|
specifier: ^3.1.2
|
||||||
|
version: 3.1.2
|
||||||
|
>>>>>>> 53a847ce4 (feat :migrate socket.io 2 -> 3)
|
||||||
superagent:
|
superagent:
|
||||||
specifier: ^8.1.2
|
specifier: ^8.1.2
|
||||||
version: 8.1.2
|
version: 8.1.2
|
||||||
|
@ -638,6 +643,10 @@ packages:
|
||||||
|
|
||||||
/@types/component-emitter@1.2.14:
|
/@types/component-emitter@1.2.14:
|
||||||
resolution: {integrity: sha512-lmPil1g82wwWg/qHSxMWkSKyJGQOK+ejXeMAAWyxNtVUD0/Ycj2maL63RAqpxVfdtvTfZkRnqzB0A9ft59y69g==}
|
resolution: {integrity: sha512-lmPil1g82wwWg/qHSxMWkSKyJGQOK+ejXeMAAWyxNtVUD0/Ycj2maL63RAqpxVfdtvTfZkRnqzB0A9ft59y69g==}
|
||||||
|
<<<<<<< HEAD
|
||||||
|
=======
|
||||||
|
dev: false
|
||||||
|
>>>>>>> 53a847ce4 (feat :migrate socket.io 2 -> 3)
|
||||||
|
|
||||||
/@types/connect@3.4.38:
|
/@types/connect@3.4.38:
|
||||||
resolution: {integrity: sha512-K6uROf1LD88uDQqJCktA4yzL1YYAK6NgfsI0v/mTgyPKWsX1CnJ0XPSDhViejru1GcRkLWb8RlzFYJRqGUbaug==}
|
resolution: {integrity: sha512-K6uROf1LD88uDQqJCktA4yzL1YYAK6NgfsI0v/mTgyPKWsX1CnJ0XPSDhViejru1GcRkLWb8RlzFYJRqGUbaug==}
|
||||||
|
@ -652,7 +661,11 @@ packages:
|
||||||
/@types/cors@2.8.17:
|
/@types/cors@2.8.17:
|
||||||
resolution: {integrity: sha512-8CGDvrBj1zgo2qE+oS3pOCyYNqCPryMWY2bGfwA0dcfopWGgxs+78df0Rs3rc9THP4JkOhLsAa+15VdpAqkcUA==}
|
resolution: {integrity: sha512-8CGDvrBj1zgo2qE+oS3pOCyYNqCPryMWY2bGfwA0dcfopWGgxs+78df0Rs3rc9THP4JkOhLsAa+15VdpAqkcUA==}
|
||||||
dependencies:
|
dependencies:
|
||||||
|
<<<<<<< HEAD
|
||||||
'@types/node': 20.11.19
|
'@types/node': 20.11.19
|
||||||
|
=======
|
||||||
|
'@types/node': 20.11.17
|
||||||
|
>>>>>>> 53a847ce4 (feat :migrate socket.io 2 -> 3)
|
||||||
dev: false
|
dev: false
|
||||||
|
|
||||||
/@types/debug@4.1.12:
|
/@types/debug@4.1.12:
|
||||||
|
@ -961,6 +974,13 @@ packages:
|
||||||
engines: {node: '>=0.4.0'}
|
engines: {node: '>=0.4.0'}
|
||||||
hasBin: true
|
hasBin: true
|
||||||
|
|
||||||
|
<<<<<<< HEAD
|
||||||
|
=======
|
||||||
|
/after@0.8.2:
|
||||||
|
resolution: {integrity: sha512-QbJ0NTQ/I9DI3uSJA4cbexiwQeRAfjPScqIbSjUDd9TOrcg6pTkdgziesOqxBMBzit8vFCTwrP27t13vFOORRA==}
|
||||||
|
dev: true
|
||||||
|
|
||||||
|
>>>>>>> 53a847ce4 (feat :migrate socket.io 2 -> 3)
|
||||||
/agent-base@7.1.0:
|
/agent-base@7.1.0:
|
||||||
resolution: {integrity: sha512-o/zjMZRhJxny7OyEF+Op8X+efiELC7k7yOjMzgfzVqOzXqkBkWI79YoTdOtsuWd5BWhAGAuOY/Xa6xpiaWXiNg==}
|
resolution: {integrity: sha512-o/zjMZRhJxny7OyEF+Op8X+efiELC7k7yOjMzgfzVqOzXqkBkWI79YoTdOtsuWd5BWhAGAuOY/Xa6xpiaWXiNg==}
|
||||||
engines: {node: '>= 14'}
|
engines: {node: '>= 14'}
|
||||||
|
@ -1134,6 +1154,13 @@ packages:
|
||||||
is-shared-array-buffer: 1.0.2
|
is-shared-array-buffer: 1.0.2
|
||||||
dev: true
|
dev: true
|
||||||
|
|
||||||
|
<<<<<<< HEAD
|
||||||
|
=======
|
||||||
|
/arraybuffer.slice@0.0.7:
|
||||||
|
resolution: {integrity: sha512-wGUIVQXuehL5TCqQun8OW81jGzAWycqzFF8lFp+GOM5BXLYj3bKNsYC4daB7n6XjCqxQA/qgTJ+8ANR3acjrog==}
|
||||||
|
dev: true
|
||||||
|
|
||||||
|
>>>>>>> 53a847ce4 (feat :migrate socket.io 2 -> 3)
|
||||||
/asap@2.0.6:
|
/asap@2.0.6:
|
||||||
resolution: {integrity: sha512-BSHWgDSAiKs50o2Re8ppvp3seVHXSRM44cdSsT9FfNEUUZLOGWVCsiWaRPWM1Znn+mqZ1OfVZ3z3DWEzSp7hRA==}
|
resolution: {integrity: sha512-BSHWgDSAiKs50o2Re8ppvp3seVHXSRM44cdSsT9FfNEUUZLOGWVCsiWaRPWM1Znn+mqZ1OfVZ3z3DWEzSp7hRA==}
|
||||||
|
|
||||||
|
@ -1233,6 +1260,13 @@ packages:
|
||||||
resolution: {integrity: sha512-T7JQa+zsXXEa6/8ZhHcQEW1UFfVM49Ts65uBkFL6fz2QmrElqmbajIDJvuA0tEhRe5eIjpV9ZF+0RfZR9voJFQ==}
|
resolution: {integrity: sha512-T7JQa+zsXXEa6/8ZhHcQEW1UFfVM49Ts65uBkFL6fz2QmrElqmbajIDJvuA0tEhRe5eIjpV9ZF+0RfZR9voJFQ==}
|
||||||
dev: true
|
dev: true
|
||||||
|
|
||||||
|
<<<<<<< HEAD
|
||||||
|
=======
|
||||||
|
/blob@0.0.5:
|
||||||
|
resolution: {integrity: sha512-gaqbzQPqOoamawKg0LGVd7SzLgXS+JH61oWprSLH+P+abTczqJbhTR8CmJ2u9/bUYNmHTGJx/UEmn6doAvvuig==}
|
||||||
|
dev: true
|
||||||
|
|
||||||
|
>>>>>>> 53a847ce4 (feat :migrate socket.io 2 -> 3)
|
||||||
/bluebird@3.7.2:
|
/bluebird@3.7.2:
|
||||||
resolution: {integrity: sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg==}
|
resolution: {integrity: sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg==}
|
||||||
dev: true
|
dev: true
|
||||||
|
@ -1468,9 +1502,23 @@ packages:
|
||||||
engines: {node: '>=4.0.0'}
|
engines: {node: '>=4.0.0'}
|
||||||
dev: true
|
dev: true
|
||||||
|
|
||||||
|
<<<<<<< HEAD
|
||||||
/component-emitter@1.3.1:
|
/component-emitter@1.3.1:
|
||||||
resolution: {integrity: sha512-T0+barUSQRTUQASh8bx02dl+DhF54GtIDY13Y3m9oWTklKbb3Wv974meRpeZ3lp1JpLVECWWNHC4vaG2XHXouQ==}
|
resolution: {integrity: sha512-T0+barUSQRTUQASh8bx02dl+DhF54GtIDY13Y3m9oWTklKbb3Wv974meRpeZ3lp1JpLVECWWNHC4vaG2XHXouQ==}
|
||||||
|
|
||||||
|
=======
|
||||||
|
/component-bind@1.0.0:
|
||||||
|
resolution: {integrity: sha512-WZveuKPeKAG9qY+FkYDeADzdHyTYdIboXS59ixDeRJL5ZhxpqUnxSOwop4FQjMsiYm3/Or8cegVbpAHNA7pHxw==}
|
||||||
|
dev: true
|
||||||
|
|
||||||
|
/component-emitter@1.3.1:
|
||||||
|
resolution: {integrity: sha512-T0+barUSQRTUQASh8bx02dl+DhF54GtIDY13Y3m9oWTklKbb3Wv974meRpeZ3lp1JpLVECWWNHC4vaG2XHXouQ==}
|
||||||
|
|
||||||
|
/component-inherit@0.0.3:
|
||||||
|
resolution: {integrity: sha512-w+LhYREhatpVqTESyGFg3NlP6Iu0kEKUHETY9GoZP/pQyW4mHFZuFWRUCIqVPZ36ueVLtoOEZaAqbCF2RDndaA==}
|
||||||
|
dev: true
|
||||||
|
|
||||||
|
>>>>>>> 53a847ce4 (feat :migrate socket.io 2 -> 3)
|
||||||
/concat-map@0.0.1:
|
/concat-map@0.0.1:
|
||||||
resolution: {integrity: sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==}
|
resolution: {integrity: sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==}
|
||||||
|
|
||||||
|
@ -1632,6 +1680,20 @@ packages:
|
||||||
ms: 2.0.0
|
ms: 2.0.0
|
||||||
dev: false
|
dev: false
|
||||||
|
|
||||||
|
<<<<<<< HEAD
|
||||||
|
=======
|
||||||
|
/debug@3.1.0:
|
||||||
|
resolution: {integrity: sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==}
|
||||||
|
peerDependencies:
|
||||||
|
supports-color: '*'
|
||||||
|
peerDependenciesMeta:
|
||||||
|
supports-color:
|
||||||
|
optional: true
|
||||||
|
dependencies:
|
||||||
|
ms: 2.0.0
|
||||||
|
dev: true
|
||||||
|
|
||||||
|
>>>>>>> 53a847ce4 (feat :migrate socket.io 2 -> 3)
|
||||||
/debug@3.2.7(supports-color@8.1.1):
|
/debug@3.2.7(supports-color@8.1.1):
|
||||||
resolution: {integrity: sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==}
|
resolution: {integrity: sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==}
|
||||||
peerDependencies:
|
peerDependencies:
|
||||||
|
@ -1803,12 +1865,49 @@ packages:
|
||||||
- bufferutil
|
- bufferutil
|
||||||
- supports-color
|
- supports-color
|
||||||
- utf-8-validate
|
- utf-8-validate
|
||||||
|
dev: true
|
||||||
|
|
||||||
|
/engine.io-client@4.1.4:
|
||||||
|
resolution: {integrity: sha512-843fqAdKeUMFqKi1sSjnR11tJ4wi8sIefu6+JC1OzkkJBmjtc/gM/rZ53tJfu5Iae/3gApm5veoS+v+gtT0+Fg==}
|
||||||
|
dependencies:
|
||||||
|
base64-arraybuffer: 0.1.4
|
||||||
|
component-emitter: 1.3.1
|
||||||
|
debug: 4.3.4(supports-color@8.1.1)
|
||||||
|
engine.io-parser: 4.0.3
|
||||||
|
has-cors: 1.1.0
|
||||||
|
parseqs: 0.0.6
|
||||||
|
parseuri: 0.0.6
|
||||||
|
ws: 7.4.6
|
||||||
|
xmlhttprequest-ssl: 1.6.3
|
||||||
|
yeast: 0.1.2
|
||||||
|
transitivePeerDependencies:
|
||||||
|
- bufferutil
|
||||||
|
- supports-color
|
||||||
|
- utf-8-validate
|
||||||
|
dev: false
|
||||||
|
|
||||||
|
<<<<<<< HEAD
|
||||||
|
=======
|
||||||
|
/engine.io-parser@2.2.1:
|
||||||
|
resolution: {integrity: sha512-x+dN/fBH8Ro8TFwJ+rkB2AmuVw9Yu2mockR/p3W8f8YtExwFgDvBDi0GWyb4ZLkpahtDGZgtr3zLovanJghPqg==}
|
||||||
|
dependencies:
|
||||||
|
after: 0.8.2
|
||||||
|
arraybuffer.slice: 0.0.7
|
||||||
|
base64-arraybuffer: 0.1.4
|
||||||
|
blob: 0.0.5
|
||||||
|
has-binary2: 1.0.3
|
||||||
|
dev: true
|
||||||
|
|
||||||
|
>>>>>>> 53a847ce4 (feat :migrate socket.io 2 -> 3)
|
||||||
/engine.io-parser@4.0.3:
|
/engine.io-parser@4.0.3:
|
||||||
resolution: {integrity: sha512-xEAAY0msNnESNPc00e19y5heTPX4y/TJ36gr8t1voOaNmTojP9b3oK3BbJLFufW2XFPQaaijpFewm2g2Um3uqA==}
|
resolution: {integrity: sha512-xEAAY0msNnESNPc00e19y5heTPX4y/TJ36gr8t1voOaNmTojP9b3oK3BbJLFufW2XFPQaaijpFewm2g2Um3uqA==}
|
||||||
engines: {node: '>=8.0.0'}
|
engines: {node: '>=8.0.0'}
|
||||||
dependencies:
|
dependencies:
|
||||||
base64-arraybuffer: 0.1.4
|
base64-arraybuffer: 0.1.4
|
||||||
|
<<<<<<< HEAD
|
||||||
|
=======
|
||||||
|
dev: false
|
||||||
|
>>>>>>> 53a847ce4 (feat :migrate socket.io 2 -> 3)
|
||||||
|
|
||||||
/engine.io@4.1.2:
|
/engine.io@4.1.2:
|
||||||
resolution: {integrity: sha512-t5z6zjXuVLhXDMiFJPYsPOWEER8B0tIsD3ETgw19S1yg9zryvUfY3Vhtk3Gf4sihw/bQGIqQ//gjvVlu+Ca0bQ==}
|
resolution: {integrity: sha512-t5z6zjXuVLhXDMiFJPYsPOWEER8B0tIsD3ETgw19S1yg9zryvUfY3Vhtk3Gf4sihw/bQGIqQ//gjvVlu+Ca0bQ==}
|
||||||
|
@ -2826,6 +2925,15 @@ packages:
|
||||||
resolution: {integrity: sha512-tSvCKtBr9lkF0Ex0aQiP9N+OpV4zi2r/Nee5VkRDbaqv35RLYMzbwQfFSZZH0kR+Rd6302UJZ2p/bJCEoR3VoQ==}
|
resolution: {integrity: sha512-tSvCKtBr9lkF0Ex0aQiP9N+OpV4zi2r/Nee5VkRDbaqv35RLYMzbwQfFSZZH0kR+Rd6302UJZ2p/bJCEoR3VoQ==}
|
||||||
dev: true
|
dev: true
|
||||||
|
|
||||||
|
<<<<<<< HEAD
|
||||||
|
=======
|
||||||
|
/has-binary2@1.0.3:
|
||||||
|
resolution: {integrity: sha512-G1LWKhDSvhGeAQ8mPVQlqNcOB2sJdwATtZKl2pDKKHfpf/rYj24lkinxf69blJbnsvtqqNU+L3SL50vzZhXOnw==}
|
||||||
|
dependencies:
|
||||||
|
isarray: 2.0.1
|
||||||
|
dev: true
|
||||||
|
|
||||||
|
>>>>>>> 53a847ce4 (feat :migrate socket.io 2 -> 3)
|
||||||
/has-cors@1.1.0:
|
/has-cors@1.1.0:
|
||||||
resolution: {integrity: sha512-g5VNKdkFuUuVCP9gYfDJHjK2nqdQJ7aDLTnycnc2+RvsOQbuLdF5pm7vuE5J76SEBIQjs4kQY/BWq74JUmjbXA==}
|
resolution: {integrity: sha512-g5VNKdkFuUuVCP9gYfDJHjK2nqdQJ7aDLTnycnc2+RvsOQbuLdF5pm7vuE5J76SEBIQjs4kQY/BWq74JUmjbXA==}
|
||||||
|
|
||||||
|
@ -3075,6 +3183,13 @@ packages:
|
||||||
engines: {node: '>=8'}
|
engines: {node: '>=8'}
|
||||||
dev: true
|
dev: true
|
||||||
|
|
||||||
|
<<<<<<< HEAD
|
||||||
|
=======
|
||||||
|
/indexof@0.0.1:
|
||||||
|
resolution: {integrity: sha512-i0G7hLJ1z0DE8dsqJa2rycj9dBmNKgXBvotXtZYXakU9oivfB9Uj2ZBC27qqef2U58/ZLwalxa1X/RDCdkHtVg==}
|
||||||
|
dev: true
|
||||||
|
|
||||||
|
>>>>>>> 53a847ce4 (feat :migrate socket.io 2 -> 3)
|
||||||
/inflight@1.0.6:
|
/inflight@1.0.6:
|
||||||
resolution: {integrity: sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==}
|
resolution: {integrity: sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==}
|
||||||
dependencies:
|
dependencies:
|
||||||
|
@ -3293,6 +3408,13 @@ packages:
|
||||||
resolution: {integrity: sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==}
|
resolution: {integrity: sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==}
|
||||||
dev: true
|
dev: true
|
||||||
|
|
||||||
|
<<<<<<< HEAD
|
||||||
|
=======
|
||||||
|
/isarray@2.0.1:
|
||||||
|
resolution: {integrity: sha512-c2cu3UxbI+b6kR3fy0nRnAhodsvR9dx7U5+znCOzdj6IfP3upFURTr0Xl5BlQZNKZjEtxrmVyfSdeE3O57smoQ==}
|
||||||
|
dev: true
|
||||||
|
|
||||||
|
>>>>>>> 53a847ce4 (feat :migrate socket.io 2 -> 3)
|
||||||
/isarray@2.0.5:
|
/isarray@2.0.5:
|
||||||
resolution: {integrity: sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==}
|
resolution: {integrity: sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==}
|
||||||
dev: true
|
dev: true
|
||||||
|
@ -4554,7 +4676,38 @@ packages:
|
||||||
- bufferutil
|
- bufferutil
|
||||||
- supports-color
|
- supports-color
|
||||||
- utf-8-validate
|
- utf-8-validate
|
||||||
|
dev: true
|
||||||
|
|
||||||
|
/socket.io-client@3.1.2:
|
||||||
|
resolution: {integrity: sha512-fXhF8plHrd7U14A7K0JPOmZzpmGkLpIS6623DzrBZqYzI/yvlP4fA3LnxwthEVgiHmn2uJ4KjdnQD8A03PuBWQ==}
|
||||||
|
engines: {node: '>=10.0.0'}
|
||||||
|
dependencies:
|
||||||
|
'@types/component-emitter': 1.2.14
|
||||||
|
backo2: 1.0.2
|
||||||
|
component-emitter: 1.3.1
|
||||||
|
debug: 4.3.4(supports-color@8.1.1)
|
||||||
|
engine.io-client: 4.1.4
|
||||||
|
parseuri: 0.0.6
|
||||||
|
socket.io-parser: 4.0.5
|
||||||
|
transitivePeerDependencies:
|
||||||
|
- bufferutil
|
||||||
|
- supports-color
|
||||||
|
- utf-8-validate
|
||||||
|
dev: false
|
||||||
|
|
||||||
|
<<<<<<< HEAD
|
||||||
|
=======
|
||||||
|
/socket.io-parser@3.3.3:
|
||||||
|
resolution: {integrity: sha512-qOg87q1PMWWTeO01768Yh9ogn7chB9zkKtQnya41Y355S0UmpXgpcrFwAgjYJxu9BdKug5r5e9YtVSeWhKBUZg==}
|
||||||
|
dependencies:
|
||||||
|
component-emitter: 1.3.1
|
||||||
|
debug: 3.1.0
|
||||||
|
isarray: 2.0.1
|
||||||
|
transitivePeerDependencies:
|
||||||
|
- supports-color
|
||||||
|
dev: true
|
||||||
|
|
||||||
|
>>>>>>> 53a847ce4 (feat :migrate socket.io 2 -> 3)
|
||||||
/socket.io-parser@4.0.5:
|
/socket.io-parser@4.0.5:
|
||||||
resolution: {integrity: sha512-sNjbT9dX63nqUFIOv95tTVm6elyIU4RvB1m8dOeZt+IgWwcWklFDOdmGcfo3zSiRsnR/3pJkjY5lfoGqEe4Eig==}
|
resolution: {integrity: sha512-sNjbT9dX63nqUFIOv95tTVm6elyIU4RvB1m8dOeZt+IgWwcWklFDOdmGcfo3zSiRsnR/3pJkjY5lfoGqEe4Eig==}
|
||||||
engines: {node: '>=10.0.0'}
|
engines: {node: '>=10.0.0'}
|
||||||
|
@ -4571,7 +4724,11 @@ packages:
|
||||||
dependencies:
|
dependencies:
|
||||||
'@types/cookie': 0.4.1
|
'@types/cookie': 0.4.1
|
||||||
'@types/cors': 2.8.17
|
'@types/cors': 2.8.17
|
||||||
|
<<<<<<< HEAD
|
||||||
'@types/node': 20.11.19
|
'@types/node': 20.11.19
|
||||||
|
=======
|
||||||
|
'@types/node': 20.11.17
|
||||||
|
>>>>>>> 53a847ce4 (feat :migrate socket.io 2 -> 3)
|
||||||
accepts: 1.3.8
|
accepts: 1.3.8
|
||||||
base64id: 2.0.0
|
base64id: 2.0.0
|
||||||
debug: 4.3.4(supports-color@8.1.1)
|
debug: 4.3.4(supports-color@8.1.1)
|
||||||
|
@ -4828,6 +4985,13 @@ packages:
|
||||||
rimraf: 3.0.2
|
rimraf: 3.0.2
|
||||||
dev: true
|
dev: true
|
||||||
|
|
||||||
|
<<<<<<< HEAD
|
||||||
|
=======
|
||||||
|
/to-array@0.1.4:
|
||||||
|
resolution: {integrity: sha512-LhVdShQD/4Mk4zXNroIQZJC+Ap3zgLcDuwEdcmLv9CCO73NWockQDwyUnW/m8VX/EElfL6FcYx7EeutN4HJA6A==}
|
||||||
|
dev: true
|
||||||
|
|
||||||
|
>>>>>>> 53a847ce4 (feat :migrate socket.io 2 -> 3)
|
||||||
/to-regex-range@5.0.1:
|
/to-regex-range@5.0.1:
|
||||||
resolution: {integrity: sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==}
|
resolution: {integrity: sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==}
|
||||||
engines: {node: '>=8.0'}
|
engines: {node: '>=8.0'}
|
||||||
|
|
|
@ -191,11 +191,17 @@ exports.handshake = async (socket: any, padId:string, token = padutils.generateA
|
||||||
/**
|
/**
|
||||||
* Convenience wrapper around `socket.send()` that waits for acknowledgement.
|
* Convenience wrapper around `socket.send()` that waits for acknowledgement.
|
||||||
*/
|
*/
|
||||||
|
<<<<<<< HEAD:src/tests/backend/common.ts
|
||||||
exports.sendMessage = async (socket: any, message:any) => await new Promise<void>((resolve, reject) => {
|
exports.sendMessage = async (socket: any, message:any) => await new Promise<void>((resolve, reject) => {
|
||||||
socket.emit('message', message, (errInfo:{
|
socket.emit('message', message, (errInfo:{
|
||||||
name: string,
|
name: string,
|
||||||
message: string,
|
message: string,
|
||||||
}) => {
|
}) => {
|
||||||
|
=======
|
||||||
|
exports.sendMessage = async (socket, message) => await new Promise((resolve, reject) => {
|
||||||
|
if(message.type === "CHANGESET_REQ")
|
||||||
|
socket.emit('message', message, (errInfo) => {
|
||||||
|
>>>>>>> 53a847ce4 (feat :migrate socket.io 2 -> 3):src/tests/backend/common.js
|
||||||
if (errInfo != null) {
|
if (errInfo != null) {
|
||||||
const {name, message} = errInfo;
|
const {name, message} = errInfo;
|
||||||
const err = new Error(message);
|
const err = new Error(message);
|
||||||
|
|
|
@ -41,7 +41,11 @@ const checkHook = async (hookName: string, checkFn?:CheckFN) => {
|
||||||
});
|
});
|
||||||
};
|
};
|
||||||
|
|
||||||
|
<<<<<<< HEAD:src/tests/backend/specs/chat.ts
|
||||||
const sendMessage = (socket: any, data:any) => {
|
const sendMessage = (socket: any, data:any) => {
|
||||||
|
=======
|
||||||
|
const sendMessage = (socket, data) => {
|
||||||
|
>>>>>>> 53a847ce4 (feat :migrate socket.io 2 -> 3):src/tests/backend/specs/chat.js
|
||||||
socket.emit('message', {
|
socket.emit('message', {
|
||||||
type: 'COLLABROOM',
|
type: 'COLLABROOM',
|
||||||
component: 'pad',
|
component: 'pad',
|
||||||
|
|
|
@ -404,10 +404,14 @@ describe(__filename, function () {
|
||||||
constructor(name: string, ...args:any) { super(...args); this.name = name; }
|
constructor(name: string, ...args:any) { super(...args); this.name = name; }
|
||||||
};
|
};
|
||||||
socket.emit('message', message,
|
socket.emit('message', message,
|
||||||
|
<<<<<<< HEAD:src/tests/backend/specs/socketio.ts
|
||||||
(errj: {
|
(errj: {
|
||||||
message: string,
|
message: string,
|
||||||
name: string,
|
name: string,
|
||||||
}, val: any) => errj != null ? reject(new AckErr(errj.name, errj.message)) : resolve(val));
|
}, val: any) => errj != null ? reject(new AckErr(errj.name, errj.message)) : resolve(val));
|
||||||
|
=======
|
||||||
|
(errj, val) => errj != null ? reject(new AckErr(errj.name, errj.message)) : resolve(val));
|
||||||
|
>>>>>>> 53a847ce4 (feat :migrate socket.io 2 -> 3):src/tests/backend/specs/socketio.js
|
||||||
});
|
});
|
||||||
|
|
||||||
it('handleMessage with ack (success)', async function () {
|
it('handleMessage with ack (success)', async function () {
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue