mirror of
https://github.com/elastic/kibana.git
synced 2025-04-23 17:28:26 -04:00
Fix: socket setup (#24550)
PR fixes issues with the socket connection. - handle socket failures - previously would either leave Canvas in an infinite loading state, or load the app even when it wouldn't function - upgrade socket.io - add headers to socket connection and modify auth connection
This commit is contained in:
parent
b684eaae49
commit
0999ebf273
12 changed files with 350 additions and 220 deletions
|
@ -246,8 +246,8 @@
|
|||
"rxjs": "^6.2.1",
|
||||
"scriptjs": "^2.5.8",
|
||||
"semver": "5.1.0",
|
||||
"socket.io": "^1.7.3",
|
||||
"socket.io-client": "^1.7.3",
|
||||
"socket.io": "^2.1.1",
|
||||
"socket.io-client": "^2.1.1",
|
||||
"squel": "^5.12.2",
|
||||
"stream-stream": "^1.2.6",
|
||||
"style-it": "^1.6.12",
|
||||
|
|
|
@ -13,3 +13,4 @@ export const API_ROUTE_WORKPAD = `${API_ROUTE}/workpad`;
|
|||
export const LOCALSTORAGE_LASTPAGE = 'canvas:lastpage';
|
||||
export const FETCH_TIMEOUT = 30000; // 30 seconds
|
||||
export const CANVAS_USAGE_TYPE = 'canvas';
|
||||
export const SECURITY_AUTH_MESSAGE = 'Authentication failed';
|
||||
|
|
|
@ -27,13 +27,17 @@ const mapStateToProps = state => {
|
|||
const mapDispatchToProps = dispatch => ({
|
||||
// TODO: the correct socket path should come from upstream, using the constant here is not ideal
|
||||
setAppReady: basePath => async () => {
|
||||
// initialize the socket and interpreter
|
||||
createSocket(basePath);
|
||||
await populateBrowserRegistries();
|
||||
await initializeInterpreter();
|
||||
try {
|
||||
// initialize the socket and interpreter
|
||||
await createSocket(basePath);
|
||||
await populateBrowserRegistries();
|
||||
await initializeInterpreter();
|
||||
|
||||
// set app state to ready
|
||||
dispatch(appReady());
|
||||
// set app state to ready
|
||||
dispatch(appReady());
|
||||
} catch (e) {
|
||||
dispatch(appError(e));
|
||||
}
|
||||
},
|
||||
setAppError: payload => dispatch(appError(payload)),
|
||||
});
|
||||
|
|
|
@ -8,15 +8,51 @@ import io from 'socket.io-client';
|
|||
import { functionsRegistry } from '../common/lib/functions_registry';
|
||||
import { getBrowserRegistries } from './lib/browser_registries';
|
||||
|
||||
const SOCKET_CONNECTION_TIMEOUT = 5000; // timeout in ms
|
||||
let socket;
|
||||
|
||||
export function createSocket(basePath) {
|
||||
socket = io(undefined, { path: `${basePath}/socket.io` });
|
||||
export async function createSocket(basePath) {
|
||||
if (socket != null) return socket;
|
||||
|
||||
socket.on('getFunctionList', () => {
|
||||
const pluginsLoaded = getBrowserRegistries();
|
||||
return new Promise((resolve, rej) => {
|
||||
const reject = p => {
|
||||
socket = null; // reset the socket on errors
|
||||
rej(p);
|
||||
};
|
||||
|
||||
pluginsLoaded.then(() => socket.emit('functionList', functionsRegistry.toJS()));
|
||||
socket = io({
|
||||
path: `${basePath}/socket.io`,
|
||||
transports: ['polling', 'websocket'],
|
||||
transportOptions: {
|
||||
polling: {
|
||||
extraHeaders: {
|
||||
'kbn-xsrf': 'professionally-crafted-string-of-text',
|
||||
},
|
||||
},
|
||||
},
|
||||
timeout: SOCKET_CONNECTION_TIMEOUT,
|
||||
// ensure socket.io always tries polling first, otherwise auth will fail
|
||||
rememberUpgrade: false,
|
||||
});
|
||||
|
||||
socket.on('getFunctionList', () => {
|
||||
const pluginsLoaded = getBrowserRegistries();
|
||||
pluginsLoaded.then(() => socket.emit('functionList', functionsRegistry.toJS()));
|
||||
});
|
||||
|
||||
socket.on('connect', () => {
|
||||
resolve();
|
||||
});
|
||||
|
||||
function errorHandler(err) {
|
||||
// 'connectionFailed' returns an object with a reason prop
|
||||
// other error cases provide their own error
|
||||
reject(err.reason ? new Error(err.reason) : err);
|
||||
}
|
||||
|
||||
socket.on('connectionFailed', errorHandler);
|
||||
socket.on('connect_error', errorHandler);
|
||||
socket.on('connect_timeout', errorHandler);
|
||||
});
|
||||
}
|
||||
|
||||
|
|
|
@ -6,6 +6,7 @@
|
|||
|
||||
import expect from 'expect.js';
|
||||
import { createHandlers } from '../create_handlers';
|
||||
import { SECURITY_AUTH_MESSAGE } from '../../../common/lib/constants';
|
||||
|
||||
let securityMode = 'pass';
|
||||
let isSecurityAvailable = true;
|
||||
|
@ -84,7 +85,7 @@ describe('server createHandlers', () => {
|
|||
throw new Error('elasticsearchClient should fail when authentication fails');
|
||||
})
|
||||
.catch(err => {
|
||||
expect(err.message).to.be.equal(authError.message);
|
||||
expect(err.message).to.be.equal(SECURITY_AUTH_MESSAGE);
|
||||
});
|
||||
});
|
||||
|
||||
|
|
|
@ -5,6 +5,7 @@
|
|||
*/
|
||||
|
||||
import boom from 'boom';
|
||||
import { SECURITY_AUTH_MESSAGE } from '../../common/lib/constants';
|
||||
import { isSecurityEnabled } from './feature_check';
|
||||
|
||||
export const createHandlers = (request, server) => {
|
||||
|
@ -20,10 +21,21 @@ export const createHandlers = (request, server) => {
|
|||
httpHeaders: request.headers,
|
||||
elasticsearchClient: async (...args) => {
|
||||
// check if the session is valid because continuing to use it
|
||||
// TODO: replace this when we use the method exposed by security https://github.com/elastic/kibana/pull/24616
|
||||
if (isSecurityEnabled(server)) {
|
||||
const authenticationResult = await server.plugins.security.authenticate(request);
|
||||
if (!authenticationResult.succeeded()) throw boom.unauthorized(authenticationResult.error);
|
||||
try {
|
||||
const authenticationResult = await server.plugins.security.authenticate(request);
|
||||
if (!authenticationResult.succeeded())
|
||||
throw boom.unauthorized(authenticationResult.error);
|
||||
} catch (e) {
|
||||
// if authenticate throws, show error in development
|
||||
if (process.env.NODE_ENV !== 'production') {
|
||||
e.message = `elasticsearchClient failed: ${e.message}`;
|
||||
console.error(e);
|
||||
}
|
||||
|
||||
// hide all failure information from the user
|
||||
throw boom.unauthorized(SECURITY_AUTH_MESSAGE);
|
||||
}
|
||||
}
|
||||
|
||||
return callWithRequest(request, ...args);
|
||||
|
|
|
@ -4,6 +4,7 @@
|
|||
* you may not use this file except in compliance with the Elastic License.
|
||||
*/
|
||||
|
||||
// TODO: replace this when we use the method exposed by security https://github.com/elastic/kibana/pull/24616
|
||||
export const isSecurityEnabled = server => {
|
||||
const kibanaSecurity = server.plugins.security;
|
||||
const esSecurity = server.plugins.xpack_main.info.feature('security');
|
||||
|
|
|
@ -3,15 +3,28 @@
|
|||
* or more contributor license agreements. Licensed under the Elastic License;
|
||||
* you may not use this file except in compliance with the Elastic License.
|
||||
*/
|
||||
import boom from 'boom';
|
||||
import { API_ROUTE } from '../../common/lib/constants';
|
||||
|
||||
export function getRequest(server, { headers }) {
|
||||
const basePath = server.config().get('server.basePath') || '/';
|
||||
const url = `${API_ROUTE}/ping`;
|
||||
|
||||
return server
|
||||
.inject({
|
||||
method: 'GET',
|
||||
url: basePath,
|
||||
method: 'POST',
|
||||
url,
|
||||
headers,
|
||||
})
|
||||
.then(res => res.request);
|
||||
.then(res => {
|
||||
if (res.statusCode !== 200) {
|
||||
if (process.env.NODE_ENV !== 'production') {
|
||||
console.error(
|
||||
new Error(`Auth request failed: [${res.statusCode}] ${res.result.message}`)
|
||||
);
|
||||
}
|
||||
throw boom.unauthorized('Failed to authenticate socket connection');
|
||||
}
|
||||
|
||||
return res.request;
|
||||
});
|
||||
}
|
||||
|
|
|
@ -7,27 +7,21 @@
|
|||
import { getServerRegistries } from '../server_registries';
|
||||
import { interpretProvider } from '../../../common/interpreter/interpret';
|
||||
import { createHandlers } from '../create_handlers';
|
||||
import { getRequest } from '../../lib/get_request';
|
||||
|
||||
export const server = ({ onFunctionNotFound, server, socket }) => {
|
||||
const pluginsReady = getServerRegistries(['serverFunctions', 'types']);
|
||||
export const server = async ({ onFunctionNotFound, server, request }) => {
|
||||
const { serverFunctions, types } = await getServerRegistries(['serverFunctions', 'types']);
|
||||
|
||||
return Promise.all([pluginsReady, getRequest(server, socket.handshake)]).then(
|
||||
([{ serverFunctions, types }, request]) => {
|
||||
// 'request' is the modified hapi request object
|
||||
return {
|
||||
interpret: (ast, context) => {
|
||||
const interpret = interpretProvider({
|
||||
types: types.toJS(),
|
||||
functions: serverFunctions.toJS(),
|
||||
handlers: createHandlers(request, server),
|
||||
onFunctionNotFound,
|
||||
});
|
||||
return {
|
||||
interpret: (ast, context) => {
|
||||
const interpret = interpretProvider({
|
||||
types: types.toJS(),
|
||||
functions: serverFunctions.toJS(),
|
||||
handlers: createHandlers(request, server),
|
||||
onFunctionNotFound,
|
||||
});
|
||||
|
||||
return interpret(ast, context);
|
||||
},
|
||||
getFunctions: () => Object.keys(serverFunctions.toJS()),
|
||||
};
|
||||
}
|
||||
);
|
||||
return interpret(ast, context);
|
||||
},
|
||||
getFunctions: () => Object.keys(serverFunctions.toJS()),
|
||||
};
|
||||
};
|
||||
|
|
|
@ -12,11 +12,36 @@ import { routeExpressionProvider } from '../lib/route_expression';
|
|||
import { browser } from '../lib/route_expression/browser';
|
||||
import { thread } from '../lib/route_expression/thread';
|
||||
import { server as serverEnv } from '../lib/route_expression/server';
|
||||
import { getRequest } from '../lib/get_request';
|
||||
import { API_ROUTE } from '../../common/lib/constants';
|
||||
|
||||
async function getModifiedRequest(server, socket) {
|
||||
try {
|
||||
return await getRequest(server, socket.handshake);
|
||||
} catch (err) {
|
||||
// on errors, notify the client and close the connection
|
||||
socket.emit('connectionFailed', { reason: err.message || 'Socket connection failed' });
|
||||
socket.disconnect(true);
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
export function socketApi(server) {
|
||||
// add a POST ping route for `getRequest` to use
|
||||
// TODO: remove this once we have upstream socket support
|
||||
server.route({
|
||||
method: 'POST',
|
||||
path: `${API_ROUTE}/ping`,
|
||||
handler: () => 'pong',
|
||||
});
|
||||
|
||||
const io = socket(server.listener, { path: '/socket.io' });
|
||||
|
||||
io.on('connection', socket => {
|
||||
io.on('connection', async socket => {
|
||||
// 'request' is the modified hapi request object
|
||||
const request = await getModifiedRequest(server, socket);
|
||||
if (!request) return; // do nothing without the request object
|
||||
|
||||
const types = typesRegistry.toJS();
|
||||
const { serialize, deserialize } = serializeProvider(types);
|
||||
|
||||
|
@ -24,7 +49,7 @@ export function socketApi(server) {
|
|||
// Note that ORDER MATTERS here. The environments will be tried in this order. Do not reorder this array.
|
||||
const routeExpression = routeExpressionProvider([
|
||||
thread({ onFunctionNotFound, serialize, deserialize }),
|
||||
serverEnv({ onFunctionNotFound, socket, server }),
|
||||
serverEnv({ onFunctionNotFound, request, server }),
|
||||
browser({ onFunctionNotFound, socket, serialize, deserialize }),
|
||||
]);
|
||||
|
||||
|
@ -38,13 +63,14 @@ export function socketApi(server) {
|
|||
);
|
||||
});
|
||||
|
||||
const handler = ({ ast, context, id }) => {
|
||||
return (
|
||||
routeExpression(ast, deserialize(context))
|
||||
.then(value => socket.emit(`resp:${id}`, { type: 'msgSuccess', value: serialize(value) }))
|
||||
// TODO: I don't think it is possible to hit this right now? Maybe ever?
|
||||
.catch(e => socket.emit(`resp:${id}`, { type: 'msgError', value: e }))
|
||||
);
|
||||
const handler = async ({ ast, context, id }) => {
|
||||
try {
|
||||
const value = await routeExpression(ast, deserialize(context));
|
||||
socket.emit(`resp:${id}`, { type: 'msgSuccess', value: serialize(value) });
|
||||
} catch (err) {
|
||||
// TODO: I don't think it is possible to hit this right now? Maybe ever?
|
||||
socket.emit(`resp:${id}`, { type: 'msgError', value: err });
|
||||
}
|
||||
};
|
||||
|
||||
socket.on('run', handler);
|
||||
|
|
234
x-pack/yarn.lock
234
x-pack/yarn.lock
|
@ -542,12 +542,12 @@ accept@3.x.x:
|
|||
boom "7.x.x"
|
||||
hoek "5.x.x"
|
||||
|
||||
accepts@1.3.3:
|
||||
version "1.3.3"
|
||||
resolved "https://registry.yarnpkg.com/accepts/-/accepts-1.3.3.tgz#c3ca7434938648c3e0d9c1e328dd68b622c284ca"
|
||||
integrity sha1-w8p0NJOGSMPg2cHjKN1otiLChMo=
|
||||
accepts@~1.3.4:
|
||||
version "1.3.5"
|
||||
resolved "https://registry.yarnpkg.com/accepts/-/accepts-1.3.5.tgz#eb777df6011723a3b14e8a72c0805c8e86746bd2"
|
||||
integrity sha1-63d99gEXI6OxTopywIBcjoZ0a9I=
|
||||
dependencies:
|
||||
mime-types "~2.1.11"
|
||||
mime-types "~2.1.18"
|
||||
negotiator "0.6.1"
|
||||
|
||||
acorn-globals@^4.0.0:
|
||||
|
@ -1037,10 +1037,10 @@ array-unique@^0.3.2:
|
|||
resolved "https://registry.yarnpkg.com/array-unique/-/array-unique-0.3.2.tgz#a894b75d4bc4f6cd679ef3244a9fd8f46ae2d428"
|
||||
integrity sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg=
|
||||
|
||||
arraybuffer.slice@0.0.6:
|
||||
version "0.0.6"
|
||||
resolved "https://registry.yarnpkg.com/arraybuffer.slice/-/arraybuffer.slice-0.0.6.tgz#f33b2159f0532a3f3107a272c0ccfbd1ad2979ca"
|
||||
integrity sha1-8zshWfBTKj8xB6JywMz70a0peco=
|
||||
arraybuffer.slice@~0.0.7:
|
||||
version "0.0.7"
|
||||
resolved "https://registry.yarnpkg.com/arraybuffer.slice/-/arraybuffer.slice-0.0.7.tgz#3bbc4275dd584cc1b10809b89d4e8b63a69e7675"
|
||||
integrity sha512-wGUIVQXuehL5TCqQun8OW81jGzAWycqzFF8lFp+GOM5BXLYj3bKNsYC4daB7n6XjCqxQA/qgTJ+8ANR3acjrog==
|
||||
|
||||
arrify@^1.0.0, arrify@^1.0.1:
|
||||
version "1.0.1"
|
||||
|
@ -1865,10 +1865,10 @@ bl@^1.0.0:
|
|||
dependencies:
|
||||
readable-stream "^2.0.5"
|
||||
|
||||
blob@0.0.4:
|
||||
version "0.0.4"
|
||||
resolved "https://registry.yarnpkg.com/blob/-/blob-0.0.4.tgz#bcf13052ca54463f30f9fc7e95b9a47630a94921"
|
||||
integrity sha1-vPEwUspURj8w+fx+lbmkdjCpSSE=
|
||||
blob@0.0.5:
|
||||
version "0.0.5"
|
||||
resolved "https://registry.yarnpkg.com/blob/-/blob-0.0.5.tgz#d680eeef25f8cd91ad533f5b01eed48e64caf683"
|
||||
integrity sha512-gaqbzQPqOoamawKg0LGVd7SzLgXS+JH61oWprSLH+P+abTczqJbhTR8CmJ2u9/bUYNmHTGJx/UEmn6doAvvuig==
|
||||
|
||||
block-stream@*:
|
||||
version "0.0.9"
|
||||
|
@ -2565,11 +2565,6 @@ component-bind@1.0.0:
|
|||
resolved "https://registry.yarnpkg.com/component-bind/-/component-bind-1.0.0.tgz#00c608ab7dcd93897c0009651b1d3a8e1e73bbd1"
|
||||
integrity sha1-AMYIq33Nk4l8AAllGx06jh5zu9E=
|
||||
|
||||
component-emitter@1.1.2:
|
||||
version "1.1.2"
|
||||
resolved "https://registry.yarnpkg.com/component-emitter/-/component-emitter-1.1.2.tgz#296594f2753daa63996d2af08d15a95116c9aec3"
|
||||
integrity sha1-KWWU8nU9qmOZbSrwjRWpURbJrsM=
|
||||
|
||||
component-emitter@1.2.1, component-emitter@^1.2.0, component-emitter@^1.2.1:
|
||||
version "1.2.1"
|
||||
resolved "https://registry.yarnpkg.com/component-emitter/-/component-emitter-1.2.1.tgz#137918d6d78283f7df7a6b7c5a63e140e69425e6"
|
||||
|
@ -3034,13 +3029,6 @@ debug@2.2.0:
|
|||
dependencies:
|
||||
ms "0.7.1"
|
||||
|
||||
debug@2.3.3:
|
||||
version "2.3.3"
|
||||
resolved "http://registry.npmjs.org/debug/-/debug-2.3.3.tgz#40c453e67e6e13c901ddec317af8986cda9eff8c"
|
||||
integrity sha1-QMRT5n5uE8kB3ewxeviYbNqe/4w=
|
||||
dependencies:
|
||||
ms "0.7.2"
|
||||
|
||||
debug@2.6.0:
|
||||
version "2.6.0"
|
||||
resolved "https://registry.yarnpkg.com/debug/-/debug-2.6.0.tgz#bc596bcabe7617f11d9fa15361eded5608b8499b"
|
||||
|
@ -3055,7 +3043,7 @@ debug@2.6.9, debug@^2.2.0, debug@^2.3.3, debug@^2.6.8:
|
|||
dependencies:
|
||||
ms "2.0.0"
|
||||
|
||||
debug@^3.1.0:
|
||||
debug@^3.1.0, debug@~3.1.0:
|
||||
version "3.1.0"
|
||||
resolved "https://registry.yarnpkg.com/debug/-/debug-3.1.0.tgz#5bb5a0672628b64149566ba16819e61518c67261"
|
||||
integrity sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==
|
||||
|
@ -3420,47 +3408,45 @@ end-of-stream@~0.1.5:
|
|||
dependencies:
|
||||
once "~1.3.0"
|
||||
|
||||
engine.io-client@~1.8.4:
|
||||
version "1.8.5"
|
||||
resolved "https://registry.yarnpkg.com/engine.io-client/-/engine.io-client-1.8.5.tgz#fe7fb60cb0dcf2fa2859489329cb5968dedeb11f"
|
||||
integrity sha512-AYTgHyeVUPitsseqjoedjhYJapNVoSPShbZ+tEUX9/73jgZ/Z3sUlJf9oYgdEBBdVhupUpUqSxH0kBCXlQnmZg==
|
||||
engine.io-client@~3.2.0:
|
||||
version "3.2.1"
|
||||
resolved "https://registry.yarnpkg.com/engine.io-client/-/engine.io-client-3.2.1.tgz#6f54c0475de487158a1a7c77d10178708b6add36"
|
||||
integrity sha512-y5AbkytWeM4jQr7m/koQLc5AxpRKC1hEVUb/s1FUAWEJq5AzJJ4NLvzuKPuxtDi5Mq755WuDvZ6Iv2rXj4PTzw==
|
||||
dependencies:
|
||||
component-emitter "1.2.1"
|
||||
component-inherit "0.0.3"
|
||||
debug "2.3.3"
|
||||
engine.io-parser "1.3.2"
|
||||
debug "~3.1.0"
|
||||
engine.io-parser "~2.1.1"
|
||||
has-cors "1.1.0"
|
||||
indexof "0.0.1"
|
||||
parsejson "0.0.3"
|
||||
parseqs "0.0.5"
|
||||
parseuri "0.0.5"
|
||||
ws "~1.1.5"
|
||||
xmlhttprequest-ssl "1.5.3"
|
||||
ws "~3.3.1"
|
||||
xmlhttprequest-ssl "~1.5.4"
|
||||
yeast "0.1.2"
|
||||
|
||||
engine.io-parser@1.3.2:
|
||||
version "1.3.2"
|
||||
resolved "https://registry.yarnpkg.com/engine.io-parser/-/engine.io-parser-1.3.2.tgz#937b079f0007d0893ec56d46cb220b8cb435220a"
|
||||
integrity sha1-k3sHnwAH0Ik+xW1GyyILjLQ1Igo=
|
||||
engine.io-parser@~2.1.0, engine.io-parser@~2.1.1:
|
||||
version "2.1.3"
|
||||
resolved "https://registry.yarnpkg.com/engine.io-parser/-/engine.io-parser-2.1.3.tgz#757ab970fbf2dfb32c7b74b033216d5739ef79a6"
|
||||
integrity sha512-6HXPre2O4Houl7c4g7Ic/XzPnHBvaEmN90vtRO9uLmwtRqQmTOw0QMevL1TOfL2Cpu1VzsaTmMotQgMdkzGkVA==
|
||||
dependencies:
|
||||
after "0.8.2"
|
||||
arraybuffer.slice "0.0.6"
|
||||
arraybuffer.slice "~0.0.7"
|
||||
base64-arraybuffer "0.1.5"
|
||||
blob "0.0.4"
|
||||
has-binary "0.1.7"
|
||||
wtf-8 "1.0.0"
|
||||
blob "0.0.5"
|
||||
has-binary2 "~1.0.2"
|
||||
|
||||
engine.io@~1.8.4:
|
||||
version "1.8.5"
|
||||
resolved "https://registry.yarnpkg.com/engine.io/-/engine.io-1.8.5.tgz#4ebe5e75c6dc123dee4afdce6e5fdced21eb93f6"
|
||||
integrity sha512-j1DWIcktw4hRwrv6nWx++5nFH2X64x16MAG2P0Lmi5Dvdfi3I+Jhc7JKJIdAmDJa+5aZ/imHV7dWRPy2Cqjh3A==
|
||||
engine.io@~3.2.0:
|
||||
version "3.2.0"
|
||||
resolved "https://registry.yarnpkg.com/engine.io/-/engine.io-3.2.0.tgz#54332506f42f2edc71690d2f2a42349359f3bf7d"
|
||||
integrity sha512-mRbgmAtQ4GAlKwuPnnAvXXwdPhEx+jkc0OBCLrXuD/CRvwNK3AxRSnqK4FSqmAMRRHryVJP8TopOvmEaA64fKw==
|
||||
dependencies:
|
||||
accepts "1.3.3"
|
||||
accepts "~1.3.4"
|
||||
base64id "1.0.0"
|
||||
cookie "0.3.1"
|
||||
debug "2.3.3"
|
||||
engine.io-parser "1.3.2"
|
||||
ws "~1.1.5"
|
||||
debug "~3.1.0"
|
||||
engine.io-parser "~2.1.0"
|
||||
ws "~3.3.1"
|
||||
|
||||
entities@^1.1.1, entities@~1.1.1:
|
||||
version "1.1.1"
|
||||
|
@ -4980,12 +4966,12 @@ has-ansi@^2.0.0:
|
|||
dependencies:
|
||||
ansi-regex "^2.0.0"
|
||||
|
||||
has-binary@0.1.7:
|
||||
version "0.1.7"
|
||||
resolved "https://registry.yarnpkg.com/has-binary/-/has-binary-0.1.7.tgz#68e61eb16210c9545a0a5cce06a873912fe1e68c"
|
||||
integrity sha1-aOYesWIQyVRaClzOBqhzkS/h5ow=
|
||||
has-binary2@~1.0.2:
|
||||
version "1.0.3"
|
||||
resolved "https://registry.yarnpkg.com/has-binary2/-/has-binary2-1.0.3.tgz#7776ac627f3ea77250cfc332dab7ddf5e4f5d11d"
|
||||
integrity sha512-G1LWKhDSvhGeAQ8mPVQlqNcOB2sJdwATtZKl2pDKKHfpf/rYj24lkinxf69blJbnsvtqqNU+L3SL50vzZhXOnw==
|
||||
dependencies:
|
||||
isarray "0.0.1"
|
||||
isarray "2.0.1"
|
||||
|
||||
has-cors@1.1.0:
|
||||
version "1.1.0"
|
||||
|
@ -5794,6 +5780,11 @@ isarray@1.0.0, isarray@^1.0.0, isarray@~1.0.0:
|
|||
resolved "https://registry.yarnpkg.com/isarray/-/isarray-1.0.0.tgz#bb935d48582cba168c06834957a54a3e07124f11"
|
||||
integrity sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=
|
||||
|
||||
isarray@2.0.1:
|
||||
version "2.0.1"
|
||||
resolved "https://registry.yarnpkg.com/isarray/-/isarray-2.0.1.tgz#a37d94ed9cda2d59865c9f76fe596ee1f338741e"
|
||||
integrity sha1-o32U7ZzaLVmGXJ92/llu4fM4dB4=
|
||||
|
||||
isemail@3.x.x:
|
||||
version "3.1.4"
|
||||
resolved "https://registry.yarnpkg.com/isemail/-/isemail-3.1.4.tgz#76e2187ff7bee59d57522c6fd1c3f09a331933cf"
|
||||
|
@ -7280,6 +7271,11 @@ mime-db@~1.36.0:
|
|||
resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.36.0.tgz#5020478db3c7fe93aad7bbcc4dcf869c43363397"
|
||||
integrity sha512-L+xvyD9MkoYMXb1jAmzI/lWYAxAMCPvIBSWur0PZ5nOf5euahRLVqH//FKW9mWp2lkqUgYiXPgkzfMUFi4zVDw==
|
||||
|
||||
mime-db@~1.37.0:
|
||||
version "1.37.0"
|
||||
resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.37.0.tgz#0b6a0ce6fdbe9576e25f1f2d2fde8830dc0ad0d8"
|
||||
integrity sha512-R3C4db6bgQhlIhPU48fUtdVmKnflq+hRdad7IyKhtFj06VPNVdk2RhiYL3UjQIlso8L+YxAtFkobT0VK+S/ybg==
|
||||
|
||||
mime-types@^2.1.12, mime-types@~2.1.17, mime-types@~2.1.7:
|
||||
version "2.1.17"
|
||||
resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.17.tgz#09d7a393f03e995a79f8af857b70a9e0ab16557a"
|
||||
|
@ -7287,7 +7283,14 @@ mime-types@^2.1.12, mime-types@~2.1.17, mime-types@~2.1.7:
|
|||
dependencies:
|
||||
mime-db "~1.30.0"
|
||||
|
||||
mime-types@~2.1.11, mime-types@~2.1.19:
|
||||
mime-types@~2.1.18:
|
||||
version "2.1.21"
|
||||
resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.21.tgz#28995aa1ecb770742fe6ae7e58f9181c744b3f96"
|
||||
integrity sha512-3iL6DbwpyLzjR3xHSFNFeb9Nz/M8WDkX33t1GFQnFOllWk8pOrh/LSrB5OXlnlW5P9LH73X6loW/eogc+F5lJg==
|
||||
dependencies:
|
||||
mime-db "~1.37.0"
|
||||
|
||||
mime-types@~2.1.19:
|
||||
version "2.1.20"
|
||||
resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.20.tgz#930cb719d571e903738520f8470911548ca2cc19"
|
||||
integrity sha512-HrkrPaP9vGuWbLK1B1FfgAkbqNjIuy4eHlIYnFi7kamZyLLrGlo2mpcx0bBmNpKqBtYtAfGbodDddIgddSJC2A==
|
||||
|
@ -7844,11 +7847,6 @@ oauth-sign@~0.9.0:
|
|||
resolved "https://registry.yarnpkg.com/oauth-sign/-/oauth-sign-0.9.0.tgz#47a7b016baa68b5fa0ecf3dee08a85c679ac6455"
|
||||
integrity sha512-fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ==
|
||||
|
||||
object-assign@4.1.0:
|
||||
version "4.1.0"
|
||||
resolved "https://registry.yarnpkg.com/object-assign/-/object-assign-4.1.0.tgz#7a3b3d0e98063d43f4c03f2e8ae6cd51a86883a0"
|
||||
integrity sha1-ejs9DpgGPUP0wD8uiubNUahog6A=
|
||||
|
||||
object-assign@^3.0.0:
|
||||
version "3.0.0"
|
||||
resolved "https://registry.yarnpkg.com/object-assign/-/object-assign-3.0.0.tgz#9bedd5ca0897949bca47e7ff408062d549f587f2"
|
||||
|
@ -8029,11 +8027,6 @@ optionator@^0.8.1:
|
|||
type-check "~0.3.2"
|
||||
wordwrap "~1.0.0"
|
||||
|
||||
options@>=0.0.5:
|
||||
version "0.0.6"
|
||||
resolved "https://registry.yarnpkg.com/options/-/options-0.0.6.tgz#ec22d312806bb53e731773e7cdaefcf1c643128f"
|
||||
integrity sha1-7CLTEoBrtT5zF3Pnza788cZDEo8=
|
||||
|
||||
orchestrator@^0.3.0:
|
||||
version "0.3.8"
|
||||
resolved "https://registry.yarnpkg.com/orchestrator/-/orchestrator-0.3.8.tgz#14e7e9e2764f7315fbac184e506c7aa6df94ad7e"
|
||||
|
@ -8246,13 +8239,6 @@ parse5@^3.0.1, parse5@^3.0.2:
|
|||
dependencies:
|
||||
"@types/node" "*"
|
||||
|
||||
parsejson@0.0.3:
|
||||
version "0.0.3"
|
||||
resolved "https://registry.yarnpkg.com/parsejson/-/parsejson-0.0.3.tgz#ab7e3759f209ece99437973f7d0f1f64ae0e64ab"
|
||||
integrity sha1-q343WfIJ7OmUN5c/fQ8fZK4OZKs=
|
||||
dependencies:
|
||||
better-assert "~1.0.0"
|
||||
|
||||
parseqs@0.0.5:
|
||||
version "0.0.5"
|
||||
resolved "https://registry.yarnpkg.com/parseqs/-/parseqs-0.0.5.tgz#d5208a3738e46766e291ba2ea173684921a8b89d"
|
||||
|
@ -10239,53 +10225,51 @@ sntp@2.x.x:
|
|||
dependencies:
|
||||
hoek "4.x.x"
|
||||
|
||||
socket.io-adapter@0.5.0:
|
||||
version "0.5.0"
|
||||
resolved "https://registry.yarnpkg.com/socket.io-adapter/-/socket.io-adapter-0.5.0.tgz#cb6d4bb8bec81e1078b99677f9ced0046066bb8b"
|
||||
integrity sha1-y21LuL7IHhB4uZZ3+c7QBGBmu4s=
|
||||
dependencies:
|
||||
debug "2.3.3"
|
||||
socket.io-parser "2.3.1"
|
||||
socket.io-adapter@~1.1.0:
|
||||
version "1.1.1"
|
||||
resolved "https://registry.yarnpkg.com/socket.io-adapter/-/socket.io-adapter-1.1.1.tgz#2a805e8a14d6372124dd9159ad4502f8cb07f06b"
|
||||
integrity sha1-KoBeihTWNyEk3ZFZrUUC+MsH8Gs=
|
||||
|
||||
socket.io-client@1.7.4, socket.io-client@^1.7.3:
|
||||
version "1.7.4"
|
||||
resolved "https://registry.yarnpkg.com/socket.io-client/-/socket.io-client-1.7.4.tgz#ec9f820356ed99ef6d357f0756d648717bdd4281"
|
||||
integrity sha1-7J+CA1btme9tNX8HVtZIcXvdQoE=
|
||||
socket.io-client@2.1.1, socket.io-client@^2.1.1:
|
||||
version "2.1.1"
|
||||
resolved "https://registry.yarnpkg.com/socket.io-client/-/socket.io-client-2.1.1.tgz#dcb38103436ab4578ddb026638ae2f21b623671f"
|
||||
integrity sha512-jxnFyhAuFxYfjqIgduQlhzqTcOEQSn+OHKVfAxWaNWa7ecP7xSNk2Dx/3UEsDcY7NcFafxvNvKPmmO7HTwTxGQ==
|
||||
dependencies:
|
||||
backo2 "1.0.2"
|
||||
base64-arraybuffer "0.1.5"
|
||||
component-bind "1.0.0"
|
||||
component-emitter "1.2.1"
|
||||
debug "2.3.3"
|
||||
engine.io-client "~1.8.4"
|
||||
has-binary "0.1.7"
|
||||
debug "~3.1.0"
|
||||
engine.io-client "~3.2.0"
|
||||
has-binary2 "~1.0.2"
|
||||
has-cors "1.1.0"
|
||||
indexof "0.0.1"
|
||||
object-component "0.0.3"
|
||||
parseqs "0.0.5"
|
||||
parseuri "0.0.5"
|
||||
socket.io-parser "2.3.1"
|
||||
socket.io-parser "~3.2.0"
|
||||
to-array "0.1.4"
|
||||
|
||||
socket.io-parser@2.3.1:
|
||||
version "2.3.1"
|
||||
resolved "https://registry.yarnpkg.com/socket.io-parser/-/socket.io-parser-2.3.1.tgz#dd532025103ce429697326befd64005fcfe5b4a0"
|
||||
integrity sha1-3VMgJRA85Clpcya+/WQAX8/ltKA=
|
||||
socket.io-parser@~3.2.0:
|
||||
version "3.2.0"
|
||||
resolved "https://registry.yarnpkg.com/socket.io-parser/-/socket.io-parser-3.2.0.tgz#e7c6228b6aa1f814e6148aea325b51aa9499e077"
|
||||
integrity sha512-FYiBx7rc/KORMJlgsXysflWx/RIvtqZbyGLlHZvjfmPTPeuD/I8MaW7cfFrj5tRltICJdgwflhfZ3NVVbVLFQA==
|
||||
dependencies:
|
||||
component-emitter "1.1.2"
|
||||
debug "2.2.0"
|
||||
isarray "0.0.1"
|
||||
json3 "3.3.2"
|
||||
component-emitter "1.2.1"
|
||||
debug "~3.1.0"
|
||||
isarray "2.0.1"
|
||||
|
||||
socket.io@^1.7.3:
|
||||
version "1.7.4"
|
||||
resolved "https://registry.yarnpkg.com/socket.io/-/socket.io-1.7.4.tgz#2f7ecedc3391bf2d5c73e291fe233e6e34d4dd00"
|
||||
integrity sha1-L37O3DORvy1cc+KR/iM+bjTU3QA=
|
||||
socket.io@^2.1.1:
|
||||
version "2.1.1"
|
||||
resolved "https://registry.yarnpkg.com/socket.io/-/socket.io-2.1.1.tgz#a069c5feabee3e6b214a75b40ce0652e1cfb9980"
|
||||
integrity sha512-rORqq9c+7W0DAK3cleWNSyfv/qKXV99hV4tZe+gGLfBECw3XEhBy7x85F3wypA9688LKjtwO9pX9L33/xQI8yA==
|
||||
dependencies:
|
||||
debug "2.3.3"
|
||||
engine.io "~1.8.4"
|
||||
has-binary "0.1.7"
|
||||
object-assign "4.1.0"
|
||||
socket.io-adapter "0.5.0"
|
||||
socket.io-client "1.7.4"
|
||||
socket.io-parser "2.3.1"
|
||||
debug "~3.1.0"
|
||||
engine.io "~3.2.0"
|
||||
has-binary2 "~1.0.2"
|
||||
socket.io-adapter "~1.1.0"
|
||||
socket.io-client "2.1.1"
|
||||
socket.io-parser "~3.2.0"
|
||||
|
||||
sort-keys@^2.0.0:
|
||||
version "2.0.0"
|
||||
|
@ -11249,10 +11233,10 @@ uid-number@^0.0.6:
|
|||
resolved "https://registry.yarnpkg.com/uid-number/-/uid-number-0.0.6.tgz#0ea10e8035e8eb5b8e4449f06da1c730663baa81"
|
||||
integrity sha1-DqEOgDXo61uOREnwbaHHMGY7qoE=
|
||||
|
||||
ultron@1.0.x:
|
||||
version "1.0.2"
|
||||
resolved "https://registry.yarnpkg.com/ultron/-/ultron-1.0.2.tgz#ace116ab557cd197386a4e88f4685378c8b2e4fa"
|
||||
integrity sha1-rOEWq1V80Zc4ak6I9GhTeMiy5Po=
|
||||
ultron@~1.1.0:
|
||||
version "1.1.1"
|
||||
resolved "https://registry.yarnpkg.com/ultron/-/ultron-1.1.1.tgz#9fe1536a10a664a65266a1e3ccf85fd36302bc9c"
|
||||
integrity sha512-UIEXBNeYmKptWH6z8ZnqTeS8fV74zG0/eRU9VGkpzz+LIJNs8W/zM/L+7ctCkRrgbNnnR0xxw4bKOr0cW0N0Og==
|
||||
|
||||
unbzip2-stream@1.0.9:
|
||||
version "1.0.9"
|
||||
|
@ -11807,18 +11791,14 @@ ws@^6.0.0:
|
|||
dependencies:
|
||||
async-limiter "~1.0.0"
|
||||
|
||||
ws@~1.1.5:
|
||||
version "1.1.5"
|
||||
resolved "https://registry.yarnpkg.com/ws/-/ws-1.1.5.tgz#cbd9e6e75e09fc5d2c90015f21f0c40875e0dd51"
|
||||
integrity sha512-o3KqipXNUdS7wpQzBHSe180lBGO60SoK0yVo3CYJgb2MkobuWuBX6dhkYP5ORCLd55y+SaflMOV5fqAB53ux4w==
|
||||
ws@~3.3.1:
|
||||
version "3.3.3"
|
||||
resolved "https://registry.yarnpkg.com/ws/-/ws-3.3.3.tgz#f1cf84fe2d5e901ebce94efaece785f187a228f2"
|
||||
integrity sha512-nnWLa/NwZSt4KQJu51MYlCcSQ5g7INpOrOMt4XV8j4dqTXdmlUmSHQ8/oLC069ckre0fRsgfvsKwbTdtKLCDkA==
|
||||
dependencies:
|
||||
options ">=0.0.5"
|
||||
ultron "1.0.x"
|
||||
|
||||
wtf-8@1.0.0:
|
||||
version "1.0.0"
|
||||
resolved "https://registry.yarnpkg.com/wtf-8/-/wtf-8-1.0.0.tgz#392d8ba2d0f1c34d1ee2d630f15d0efb68e1048a"
|
||||
integrity sha1-OS2LotDxw00e4tYw8V0O+2jhBIo=
|
||||
async-limiter "~1.0.0"
|
||||
safe-buffer "~5.1.0"
|
||||
ultron "~1.1.0"
|
||||
|
||||
xml-crypto@^0.10.1:
|
||||
version "0.10.1"
|
||||
|
@ -11868,10 +11848,10 @@ xmldom@=0.1.19:
|
|||
resolved "https://registry.yarnpkg.com/xmldom/-/xmldom-0.1.19.tgz#631fc07776efd84118bf25171b37ed4d075a0abc"
|
||||
integrity sha1-Yx/Ad3bv2EEYvyUXGzftTQdaCrw=
|
||||
|
||||
xmlhttprequest-ssl@1.5.3:
|
||||
version "1.5.3"
|
||||
resolved "https://registry.yarnpkg.com/xmlhttprequest-ssl/-/xmlhttprequest-ssl-1.5.3.tgz#185a888c04eca46c3e4070d99f7b49de3528992d"
|
||||
integrity sha1-GFqIjATspGw+QHDZn3tJ3jUomS0=
|
||||
xmlhttprequest-ssl@~1.5.4:
|
||||
version "1.5.5"
|
||||
resolved "https://registry.yarnpkg.com/xmlhttprequest-ssl/-/xmlhttprequest-ssl-1.5.5.tgz#c2876b06168aadc40e57d97e81191ac8f4398b3e"
|
||||
integrity sha1-wodrBhaKrcQOV9l+gRkayPQ5iz4=
|
||||
|
||||
xpath.js@>=0.0.3:
|
||||
version "1.1.0"
|
||||
|
|
148
yarn.lock
148
yarn.lock
|
@ -1111,6 +1111,14 @@ accepts@1.3.3:
|
|||
mime-types "~2.1.11"
|
||||
negotiator "0.6.1"
|
||||
|
||||
accepts@~1.3.4:
|
||||
version "1.3.5"
|
||||
resolved "https://registry.yarnpkg.com/accepts/-/accepts-1.3.5.tgz#eb777df6011723a3b14e8a72c0805c8e86746bd2"
|
||||
integrity sha1-63d99gEXI6OxTopywIBcjoZ0a9I=
|
||||
dependencies:
|
||||
mime-types "~2.1.18"
|
||||
negotiator "0.6.1"
|
||||
|
||||
acorn-dynamic-import@^2.0.0:
|
||||
version "2.0.2"
|
||||
resolved "https://registry.yarnpkg.com/acorn-dynamic-import/-/acorn-dynamic-import-2.0.2.tgz#c752bd210bef679501b6c6cb7fc84f8f47158cc4"
|
||||
|
@ -1691,6 +1699,11 @@ arraybuffer.slice@0.0.6:
|
|||
resolved "https://registry.yarnpkg.com/arraybuffer.slice/-/arraybuffer.slice-0.0.6.tgz#f33b2159f0532a3f3107a272c0ccfbd1ad2979ca"
|
||||
integrity sha1-8zshWfBTKj8xB6JywMz70a0peco=
|
||||
|
||||
arraybuffer.slice@~0.0.7:
|
||||
version "0.0.7"
|
||||
resolved "https://registry.yarnpkg.com/arraybuffer.slice/-/arraybuffer.slice-0.0.7.tgz#3bbc4275dd584cc1b10809b89d4e8b63a69e7675"
|
||||
integrity sha512-wGUIVQXuehL5TCqQun8OW81jGzAWycqzFF8lFp+GOM5BXLYj3bKNsYC4daB7n6XjCqxQA/qgTJ+8ANR3acjrog==
|
||||
|
||||
arrify@^1.0.0, arrify@^1.0.1:
|
||||
version "1.0.1"
|
||||
resolved "https://registry.yarnpkg.com/arrify/-/arrify-1.0.1.tgz#898508da2226f380df904728456849c1501a4b0d"
|
||||
|
@ -4905,7 +4918,7 @@ debug@2.6.9, debug@2.X, debug@^2.1.1, debug@^2.1.2, debug@^2.2.0, debug@^2.3.3,
|
|||
dependencies:
|
||||
ms "2.0.0"
|
||||
|
||||
debug@3.1.0, debug@^3.1.0:
|
||||
debug@3.1.0, debug@^3.1.0, debug@~3.1.0:
|
||||
version "3.1.0"
|
||||
resolved "https://registry.yarnpkg.com/debug/-/debug-3.1.0.tgz#5bb5a0672628b64149566ba16819e61518c67261"
|
||||
integrity sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==
|
||||
|
@ -5522,22 +5535,21 @@ engine.io-client@1.8.3:
|
|||
xmlhttprequest-ssl "1.5.3"
|
||||
yeast "0.1.2"
|
||||
|
||||
engine.io-client@~1.8.4:
|
||||
version "1.8.5"
|
||||
resolved "https://registry.yarnpkg.com/engine.io-client/-/engine.io-client-1.8.5.tgz#fe7fb60cb0dcf2fa2859489329cb5968dedeb11f"
|
||||
integrity sha512-AYTgHyeVUPitsseqjoedjhYJapNVoSPShbZ+tEUX9/73jgZ/Z3sUlJf9oYgdEBBdVhupUpUqSxH0kBCXlQnmZg==
|
||||
engine.io-client@~3.2.0:
|
||||
version "3.2.1"
|
||||
resolved "https://registry.yarnpkg.com/engine.io-client/-/engine.io-client-3.2.1.tgz#6f54c0475de487158a1a7c77d10178708b6add36"
|
||||
integrity sha512-y5AbkytWeM4jQr7m/koQLc5AxpRKC1hEVUb/s1FUAWEJq5AzJJ4NLvzuKPuxtDi5Mq755WuDvZ6Iv2rXj4PTzw==
|
||||
dependencies:
|
||||
component-emitter "1.2.1"
|
||||
component-inherit "0.0.3"
|
||||
debug "2.3.3"
|
||||
engine.io-parser "1.3.2"
|
||||
debug "~3.1.0"
|
||||
engine.io-parser "~2.1.1"
|
||||
has-cors "1.1.0"
|
||||
indexof "0.0.1"
|
||||
parsejson "0.0.3"
|
||||
parseqs "0.0.5"
|
||||
parseuri "0.0.5"
|
||||
ws "~1.1.5"
|
||||
xmlhttprequest-ssl "1.5.3"
|
||||
ws "~3.3.1"
|
||||
xmlhttprequest-ssl "~1.5.4"
|
||||
yeast "0.1.2"
|
||||
|
||||
engine.io-parser@1.3.2:
|
||||
|
@ -5552,6 +5564,17 @@ engine.io-parser@1.3.2:
|
|||
has-binary "0.1.7"
|
||||
wtf-8 "1.0.0"
|
||||
|
||||
engine.io-parser@~2.1.0, engine.io-parser@~2.1.1:
|
||||
version "2.1.2"
|
||||
resolved "https://registry.yarnpkg.com/engine.io-parser/-/engine.io-parser-2.1.2.tgz#4c0f4cff79aaeecbbdcfdea66a823c6085409196"
|
||||
integrity sha512-dInLFzr80RijZ1rGpx1+56/uFoH7/7InhH3kZt+Ms6hT8tNx3NGW/WNSA/f8As1WkOfkuyb3tnRyuXGxusclMw==
|
||||
dependencies:
|
||||
after "0.8.2"
|
||||
arraybuffer.slice "~0.0.7"
|
||||
base64-arraybuffer "0.1.5"
|
||||
blob "0.0.4"
|
||||
has-binary2 "~1.0.2"
|
||||
|
||||
engine.io@1.8.3:
|
||||
version "1.8.3"
|
||||
resolved "https://registry.yarnpkg.com/engine.io/-/engine.io-1.8.3.tgz#8de7f97895d20d39b85f88eeee777b2bd42b13d4"
|
||||
|
@ -5564,17 +5587,17 @@ engine.io@1.8.3:
|
|||
engine.io-parser "1.3.2"
|
||||
ws "1.1.2"
|
||||
|
||||
engine.io@~1.8.4:
|
||||
version "1.8.5"
|
||||
resolved "https://registry.yarnpkg.com/engine.io/-/engine.io-1.8.5.tgz#4ebe5e75c6dc123dee4afdce6e5fdced21eb93f6"
|
||||
integrity sha512-j1DWIcktw4hRwrv6nWx++5nFH2X64x16MAG2P0Lmi5Dvdfi3I+Jhc7JKJIdAmDJa+5aZ/imHV7dWRPy2Cqjh3A==
|
||||
engine.io@~3.2.0:
|
||||
version "3.2.0"
|
||||
resolved "https://registry.yarnpkg.com/engine.io/-/engine.io-3.2.0.tgz#54332506f42f2edc71690d2f2a42349359f3bf7d"
|
||||
integrity sha512-mRbgmAtQ4GAlKwuPnnAvXXwdPhEx+jkc0OBCLrXuD/CRvwNK3AxRSnqK4FSqmAMRRHryVJP8TopOvmEaA64fKw==
|
||||
dependencies:
|
||||
accepts "1.3.3"
|
||||
accepts "~1.3.4"
|
||||
base64id "1.0.0"
|
||||
cookie "0.3.1"
|
||||
debug "2.3.3"
|
||||
engine.io-parser "1.3.2"
|
||||
ws "~1.1.5"
|
||||
debug "~3.1.0"
|
||||
engine.io-parser "~2.1.0"
|
||||
ws "~3.3.1"
|
||||
|
||||
enhanced-resolve@^3.0.0, enhanced-resolve@^3.4.0:
|
||||
version "3.4.1"
|
||||
|
@ -7694,6 +7717,13 @@ has-ansi@^3.0.0:
|
|||
dependencies:
|
||||
ansi-regex "^3.0.0"
|
||||
|
||||
has-binary2@~1.0.2:
|
||||
version "1.0.3"
|
||||
resolved "https://registry.yarnpkg.com/has-binary2/-/has-binary2-1.0.3.tgz#7776ac627f3ea77250cfc332dab7ddf5e4f5d11d"
|
||||
integrity sha512-G1LWKhDSvhGeAQ8mPVQlqNcOB2sJdwATtZKl2pDKKHfpf/rYj24lkinxf69blJbnsvtqqNU+L3SL50vzZhXOnw==
|
||||
dependencies:
|
||||
isarray "2.0.1"
|
||||
|
||||
has-binary@0.1.7:
|
||||
version "0.1.7"
|
||||
resolved "https://registry.yarnpkg.com/has-binary/-/has-binary-0.1.7.tgz#68e61eb16210c9545a0a5cce06a873912fe1e68c"
|
||||
|
@ -8857,6 +8887,11 @@ isarray@1.0.0, isarray@^1.0.0, isarray@~1.0.0:
|
|||
resolved "https://registry.yarnpkg.com/isarray/-/isarray-1.0.0.tgz#bb935d48582cba168c06834957a54a3e07124f11"
|
||||
integrity sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=
|
||||
|
||||
isarray@2.0.1:
|
||||
version "2.0.1"
|
||||
resolved "https://registry.yarnpkg.com/isarray/-/isarray-2.0.1.tgz#a37d94ed9cda2d59865c9f76fe596ee1f338741e"
|
||||
integrity sha1-o32U7ZzaLVmGXJ92/llu4fM4dB4=
|
||||
|
||||
isbinaryfile@^3.0.0:
|
||||
version "3.0.2"
|
||||
resolved "https://registry.yarnpkg.com/isbinaryfile/-/isbinaryfile-3.0.2.tgz#4a3e974ec0cba9004d3fc6cde7209ea69368a621"
|
||||
|
@ -14944,6 +14979,11 @@ socket.io-adapter@0.5.0:
|
|||
debug "2.3.3"
|
||||
socket.io-parser "2.3.1"
|
||||
|
||||
socket.io-adapter@~1.1.0:
|
||||
version "1.1.1"
|
||||
resolved "https://registry.yarnpkg.com/socket.io-adapter/-/socket.io-adapter-1.1.1.tgz#2a805e8a14d6372124dd9159ad4502f8cb07f06b"
|
||||
integrity sha1-KoBeihTWNyEk3ZFZrUUC+MsH8Gs=
|
||||
|
||||
socket.io-client@1.7.3:
|
||||
version "1.7.3"
|
||||
resolved "https://registry.yarnpkg.com/socket.io-client/-/socket.io-client-1.7.3.tgz#b30e86aa10d5ef3546601c09cde4765e381da377"
|
||||
|
@ -14961,21 +15001,24 @@ socket.io-client@1.7.3:
|
|||
socket.io-parser "2.3.1"
|
||||
to-array "0.1.4"
|
||||
|
||||
socket.io-client@1.7.4, socket.io-client@^1.7.3:
|
||||
version "1.7.4"
|
||||
resolved "https://registry.yarnpkg.com/socket.io-client/-/socket.io-client-1.7.4.tgz#ec9f820356ed99ef6d357f0756d648717bdd4281"
|
||||
integrity sha1-7J+CA1btme9tNX8HVtZIcXvdQoE=
|
||||
socket.io-client@2.1.1, socket.io-client@^2.1.1:
|
||||
version "2.1.1"
|
||||
resolved "https://registry.yarnpkg.com/socket.io-client/-/socket.io-client-2.1.1.tgz#dcb38103436ab4578ddb026638ae2f21b623671f"
|
||||
integrity sha512-jxnFyhAuFxYfjqIgduQlhzqTcOEQSn+OHKVfAxWaNWa7ecP7xSNk2Dx/3UEsDcY7NcFafxvNvKPmmO7HTwTxGQ==
|
||||
dependencies:
|
||||
backo2 "1.0.2"
|
||||
base64-arraybuffer "0.1.5"
|
||||
component-bind "1.0.0"
|
||||
component-emitter "1.2.1"
|
||||
debug "2.3.3"
|
||||
engine.io-client "~1.8.4"
|
||||
has-binary "0.1.7"
|
||||
debug "~3.1.0"
|
||||
engine.io-client "~3.2.0"
|
||||
has-binary2 "~1.0.2"
|
||||
has-cors "1.1.0"
|
||||
indexof "0.0.1"
|
||||
object-component "0.0.3"
|
||||
parseqs "0.0.5"
|
||||
parseuri "0.0.5"
|
||||
socket.io-parser "2.3.1"
|
||||
socket.io-parser "~3.2.0"
|
||||
to-array "0.1.4"
|
||||
|
||||
socket.io-parser@2.3.1:
|
||||
|
@ -14988,6 +15031,15 @@ socket.io-parser@2.3.1:
|
|||
isarray "0.0.1"
|
||||
json3 "3.3.2"
|
||||
|
||||
socket.io-parser@~3.2.0:
|
||||
version "3.2.0"
|
||||
resolved "https://registry.yarnpkg.com/socket.io-parser/-/socket.io-parser-3.2.0.tgz#e7c6228b6aa1f814e6148aea325b51aa9499e077"
|
||||
integrity sha512-FYiBx7rc/KORMJlgsXysflWx/RIvtqZbyGLlHZvjfmPTPeuD/I8MaW7cfFrj5tRltICJdgwflhfZ3NVVbVLFQA==
|
||||
dependencies:
|
||||
component-emitter "1.2.1"
|
||||
debug "~3.1.0"
|
||||
isarray "2.0.1"
|
||||
|
||||
socket.io@1.7.3:
|
||||
version "1.7.3"
|
||||
resolved "https://registry.yarnpkg.com/socket.io/-/socket.io-1.7.3.tgz#b8af9caba00949e568e369f1327ea9be9ea2461b"
|
||||
|
@ -15001,18 +15053,17 @@ socket.io@1.7.3:
|
|||
socket.io-client "1.7.3"
|
||||
socket.io-parser "2.3.1"
|
||||
|
||||
socket.io@^1.7.3:
|
||||
version "1.7.4"
|
||||
resolved "https://registry.yarnpkg.com/socket.io/-/socket.io-1.7.4.tgz#2f7ecedc3391bf2d5c73e291fe233e6e34d4dd00"
|
||||
integrity sha1-L37O3DORvy1cc+KR/iM+bjTU3QA=
|
||||
socket.io@^2.1.1:
|
||||
version "2.1.1"
|
||||
resolved "https://registry.yarnpkg.com/socket.io/-/socket.io-2.1.1.tgz#a069c5feabee3e6b214a75b40ce0652e1cfb9980"
|
||||
integrity sha512-rORqq9c+7W0DAK3cleWNSyfv/qKXV99hV4tZe+gGLfBECw3XEhBy7x85F3wypA9688LKjtwO9pX9L33/xQI8yA==
|
||||
dependencies:
|
||||
debug "2.3.3"
|
||||
engine.io "~1.8.4"
|
||||
has-binary "0.1.7"
|
||||
object-assign "4.1.0"
|
||||
socket.io-adapter "0.5.0"
|
||||
socket.io-client "1.7.4"
|
||||
socket.io-parser "2.3.1"
|
||||
debug "~3.1.0"
|
||||
engine.io "~3.2.0"
|
||||
has-binary2 "~1.0.2"
|
||||
socket.io-adapter "~1.1.0"
|
||||
socket.io-client "2.1.1"
|
||||
socket.io-parser "~3.2.0"
|
||||
|
||||
sort-keys@^1.0.0:
|
||||
version "1.1.2"
|
||||
|
@ -16397,6 +16448,11 @@ ultron@1.0.x:
|
|||
resolved "https://registry.yarnpkg.com/ultron/-/ultron-1.0.2.tgz#ace116ab557cd197386a4e88f4685378c8b2e4fa"
|
||||
integrity sha1-rOEWq1V80Zc4ak6I9GhTeMiy5Po=
|
||||
|
||||
ultron@~1.1.0:
|
||||
version "1.1.1"
|
||||
resolved "https://registry.yarnpkg.com/ultron/-/ultron-1.1.1.tgz#9fe1536a10a664a65266a1e3ccf85fd36302bc9c"
|
||||
integrity sha512-UIEXBNeYmKptWH6z8ZnqTeS8fV74zG0/eRU9VGkpzz+LIJNs8W/zM/L+7ctCkRrgbNnnR0xxw4bKOr0cW0N0Og==
|
||||
|
||||
unbzip2-stream@1.0.9:
|
||||
version "1.0.9"
|
||||
resolved "https://registry.yarnpkg.com/unbzip2-stream/-/unbzip2-stream-1.0.9.tgz#9d107697a8d539d7bfdb9378a1cd832836bb7f8f"
|
||||
|
@ -17521,13 +17577,14 @@ ws@^5.1.1:
|
|||
dependencies:
|
||||
async-limiter "~1.0.0"
|
||||
|
||||
ws@~1.1.5:
|
||||
version "1.1.5"
|
||||
resolved "https://registry.yarnpkg.com/ws/-/ws-1.1.5.tgz#cbd9e6e75e09fc5d2c90015f21f0c40875e0dd51"
|
||||
integrity sha512-o3KqipXNUdS7wpQzBHSe180lBGO60SoK0yVo3CYJgb2MkobuWuBX6dhkYP5ORCLd55y+SaflMOV5fqAB53ux4w==
|
||||
ws@~3.3.1:
|
||||
version "3.3.3"
|
||||
resolved "https://registry.yarnpkg.com/ws/-/ws-3.3.3.tgz#f1cf84fe2d5e901ebce94efaece785f187a228f2"
|
||||
integrity sha512-nnWLa/NwZSt4KQJu51MYlCcSQ5g7INpOrOMt4XV8j4dqTXdmlUmSHQ8/oLC069ckre0fRsgfvsKwbTdtKLCDkA==
|
||||
dependencies:
|
||||
options ">=0.0.5"
|
||||
ultron "1.0.x"
|
||||
async-limiter "~1.0.0"
|
||||
safe-buffer "~5.1.0"
|
||||
ultron "~1.1.0"
|
||||
|
||||
wtf-8@1.0.0:
|
||||
version "1.0.0"
|
||||
|
@ -17608,6 +17665,11 @@ xmlhttprequest-ssl@1.5.3:
|
|||
resolved "https://registry.yarnpkg.com/xmlhttprequest-ssl/-/xmlhttprequest-ssl-1.5.3.tgz#185a888c04eca46c3e4070d99f7b49de3528992d"
|
||||
integrity sha1-GFqIjATspGw+QHDZn3tJ3jUomS0=
|
||||
|
||||
xmlhttprequest-ssl@~1.5.4:
|
||||
version "1.5.5"
|
||||
resolved "https://registry.yarnpkg.com/xmlhttprequest-ssl/-/xmlhttprequest-ssl-1.5.5.tgz#c2876b06168aadc40e57d97e81191ac8f4398b3e"
|
||||
integrity sha1-wodrBhaKrcQOV9l+gRkayPQ5iz4=
|
||||
|
||||
xmlhttprequest@1:
|
||||
version "1.8.0"
|
||||
resolved "https://registry.yarnpkg.com/xmlhttprequest/-/xmlhttprequest-1.8.0.tgz#67fe075c5c24fef39f9d65f5f7b7fe75171968fc"
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue