Compare commits

...

16 Commits

Author SHA1 Message Date
Igor Lins e Silva 2c95cfbcf5 Update .gitignore 2021-09-13 04:16:05 -03:00
Igor Lins e Silva 8552dbf31e Update example.config.json 2021-09-13 04:14:46 -03:00
Igor Lins e Silva f545aad172 Update .gitignore 2021-09-13 04:14:36 -03:00
Igor Lins e Silva 5e68b54610 Update .gitignore 2021-09-13 04:14:16 -03:00
Igor Lins e Silva 1e79521ccc add 1 to the total indexed blocks to counter the missing block 1 on ship 2021-09-09 22:32:23 -03:00
Igor Lins e Silva 18ef675b88 cleanup 2021-09-09 03:27:14 -03:00
Igor Lins e Silva 0947f43b38 fix missing deltas on 2.1 2021-09-09 03:23:23 -03:00
Igor Lins e Silva 0d5d438378 fix heatmap mode 2021-09-09 02:54:13 -03:00
Igor Lins e Silva e678678fef assert queue to avoid race condition 2021-09-08 23:37:36 -03:00
Igor Lins e Silva 0eaba697eb Update get_abi_snapshot.ts 2021-09-08 23:18:56 -03:00
Igor Lins e Silva 80bd4adc8c 3.3.4-rc7
- include config disable_rate_limit
- minor package upgrades
- date parser fix
2021-09-06 10:23:58 -03:00
Igor Lins e Silva 81ae93b1bd Merge pull request #62 from eosrio/es-8-alpha
Es 8 alpha
2021-09-06 10:12:43 -03:00
Igor Lins e Silva 49d3b3434c Update elastic-routes.ts 2021-09-06 10:11:04 -03:00
Igor Lins e Silva 350d2107fe 3.3.4-rc7
validate date inputs before forwarding to ES
avoid duplicated checking of failed token balances
2021-09-06 10:04:24 -03:00
Igor Lins e Silva 8ed55f003d allow pre-deserialized block struct 2021-08-22 22:53:00 -03:00
Igor Lins e Silva db3c18fdf9 Update ecosystem_settings.js 2021-08-20 00:17:30 -03:00
16 changed files with 2915 additions and 2828 deletions
+3
View File
@@ -75,7 +75,9 @@ modules/**/*.js.map
addons/**/*.js
addons/**/*.js.map
plugins/.state.json
plugins/repos
plugins/*.js
.gitmodules
docker/redis/data
@@ -83,3 +85,4 @@ docker/elasticsearch/data
docker/rabbitmq/data
docker/eosio/data
configuration_backups
+17 -7
View File
@@ -13,11 +13,21 @@ import fastifyRateLimit from 'fastify-rate-limit';
import fastify_eosjs from "./plugins/fastify-eosjs";
export function registerPlugins(server: Fastify.FastifyInstance<Server, IncomingMessage, ServerResponse>, params: any) {
server.register(fastifyElasticsearch, params.fastify_elasticsearch);
server.register(fastifySwagger, params.fastify_swagger);
server.register(fastifyCors);
server.register(fastifyFormbody);
server.register(fastifyRedis, params.fastify_redis);
server.register(fastifyRateLimit, params.fastify_rate_limit);
server.register(fastify_eosjs, params.fastify_eosjs);
server.register(fastifyElasticsearch, params.fastify_elasticsearch);
if (params.fastify_swagger) {
server.register(fastifySwagger, params.fastify_swagger);
}
server.register(fastifyCors);
server.register(fastifyFormbody);
server.register(fastifyRedis, params.fastify_redis);
if (params.fastify_rate_limit) {
server.register(fastifyRateLimit, params.fastify_rate_limit);
}
server.register(fastify_eosjs, params.fastify_eosjs);
}
+1 -1
View File
@@ -94,7 +94,7 @@ export function registerRoutes(server: FastifyInstance) {
});
server.addHook('onError', (request: FastifyRequest, reply: FastifyReply, error: FastifyError, done) => {
console.log(`[${request.headers['x-real-ip']}] ${request.method} ${request.url} failed with error: ${error.message}`);
console.log(`[${request.headers['x-real-ip'] || request.ip}] ${request.method} ${request.url} failed >> ${error.message}`);
done();
});
@@ -22,7 +22,7 @@ async function getAbiSnapshot(fastify: FastifyInstance, request: FastifyRequest)
}
const results = await fastify.elastic.search({
index: fastify.manager.chain + '-abi',
index: fastify.manager.chain + '-abi-*',
size: 1,
body: {
query: {bool: {must: mustArray}},
@@ -73,15 +73,17 @@ export function applyTimeFilter(query, queryStruct) {
let _lte = "now";
let _gte = "0";
if (query['before']) {
_lte = query['before'];
if (!_lte.endsWith("Z")) {
_lte += "Z";
try {
_lte = new Date(query['before']).toISOString();
} catch (e) {
throw new Error(e.message + ' [before]');
}
}
if (query['after']) {
_gte = query['after'];
if (!_gte.endsWith("Z")) {
_gte += "Z";
try {
_gte = new Date(query['after']).toISOString();
} catch (e) {
throw new Error(e.message + ' [after]');
}
}
if (!queryStruct.bool['filter']) {
+63 -56
View File
@@ -5,69 +5,76 @@ import {getSkipLimit} from "../../v2-history/get_actions/functions";
async function getTokens(fastify: FastifyInstance, request: FastifyRequest) {
const query: any = request.query;
const query: any = request.query;
const response = {'account': query.account, 'tokens': []};
const response = {'account': query.account, 'tokens': []};
const {skip, limit} = getSkipLimit(request.query);
const maxDocs = fastify.manager.config.api.limits.get_tokens ?? 100;
const {skip, limit} = getSkipLimit(request.query);
const maxDocs = fastify.manager.config.api.limits.get_tokens ?? 100;
const stateResult = await fastify.elastic.search({
"index": fastify.manager.chain + '-table-accounts-*',
"size": (limit > maxDocs ? maxDocs : limit) || 50,
"from": skip || 0,
"body": {
query: {
bool: {
filter: [{term: {"scope": query.account}}]
}
}
}
});
const stateResult = await fastify.elastic.search({
"index": fastify.manager.chain + '-table-accounts-*',
"size": (limit > maxDocs ? maxDocs : limit) || 50,
"from": skip || 0,
"body": {
query: {
bool: {
filter: [{term: {"scope": query.account}}]
}
}
}
});
for (const hit of stateResult.body.hits.hits) {
const data = hit._source;
if (typeof data.present !== "undefined" && data.present === 0) {
continue;
}
let precision;
const key = `${data.code}_${data.symbol}`;
if (!fastify.tokenCache) {
fastify.tokenCache = new Map<string, any>();
}
if (fastify.tokenCache.has(key)) {
precision = fastify.tokenCache.get(key).precision;
} else {
let token_data;
try {
token_data = await fastify.eosjs.rpc.get_currency_balance(data.code, query.account, data.symbol);
if (token_data.length > 0) {
const [amount, symbol] = token_data[0].split(" ");
const amount_arr = amount.split(".");
if (amount_arr.length === 2) {
precision = amount_arr[1].length;
fastify.tokenCache.set(key, {precision});
// console.log('Caching token precision -', key, precision);
}
}
} catch (e) {
console.log(`get_currency_balance error - contract:${data.code} - account:${query.account}`);
}
}
const testSet = new Set();
for (const hit of stateResult.body.hits.hits) {
const data = hit._source;
if (typeof data.present !== "undefined" && data.present === 0) {
continue;
}
let precision;
const key = `${data.code}_${data.symbol}`;
response.tokens.push({
symbol: data.symbol,
precision: precision,
amount: parseFloat(data.amount),
contract: data.code
});
}
if (testSet.has(key)) {
continue;
}
return response;
testSet.add(key);
if (!fastify.tokenCache) {
fastify.tokenCache = new Map<string, any>();
}
if (fastify.tokenCache.has(key)) {
precision = fastify.tokenCache.get(key).precision;
} else {
let token_data;
try {
token_data = await fastify.eosjs.rpc.get_currency_balance(data.code, query.account, data.symbol);
if (token_data.length > 0) {
const [amount, symbol] = token_data[0].split(" ");
const amount_arr = amount.split(".");
if (amount_arr.length === 2) {
precision = amount_arr[1].length;
fastify.tokenCache.set(key, {precision});
// console.log('Caching token precision -', key, precision);
}
}
} catch (e) {
console.log(`get_currency_balance error - contract:${data.code} - account:${query.account}`);
}
}
response.tokens.push({
symbol: data.symbol,
precision: precision,
amount: parseFloat(data.amount),
contract: data.code
});
}
return response;
}
export function getTokensHandler(fastify: FastifyInstance, route: string) {
return async (request: FastifyRequest, reply: FastifyReply) => {
reply.send(await timedQuery(getTokens, fastify, request, route));
}
return async (request: FastifyRequest, reply: FastifyReply) => {
reply.send(await timedQuery(getTokens, fastify, request, route));
}
}
+1 -1
View File
@@ -41,7 +41,7 @@ async function checkElastic(fastify: FastifyInstance) {
let indexedBlocks = await getLastIndexedBlockWithTotalBlocks(fastify.elastic, fastify.manager.chain);
const data = {
last_indexed_block: indexedBlocks[0],
total_indexed_blocks: indexedBlocks[1],
total_indexed_blocks: indexedBlocks[1] + 1,
active_shards: esStatus.body[0]['active_shards_percent']
};
let stat = 'OK';
+28 -24
View File
@@ -12,7 +12,7 @@ import {createWriteStream, existsSync, mkdirSync} from "fs";
import {SocketManager} from "./socketManager";
import {HyperionModuleLoader} from "../modules/loader";
import {extendedActions} from "./routes/v2-history/get_actions/definitions";
import {Socket, io} from "socket.io-client";
import {io, Socket} from "socket.io-client";
class HyperionApiServer {
@@ -93,38 +93,42 @@ class HyperionApiServer {
const ioRedisClient = new IORedis(this.manager.conn.redis);
let rateLimiterWhitelist = ['127.0.0.1'];
const pluginParams = {
fastify_elasticsearch: {
client: this.manager.elasticsearchClient
},
fastify_redis: this.manager.conn.redis,
fastify_eosjs: this.manager,
} as any;
if (this.conf.api.rate_limit_allow && this.conf.api.rate_limit_allow.length > 0) {
const tempSet = new Set<string>(['127.0.0.1', ...this.conf.api.rate_limit_allow]);
rateLimiterWhitelist = [...tempSet];
if(!this.conf.api.disable_rate_limit) {
let rateLimiterWhitelist = ['127.0.0.1'];
if (this.conf.api.rate_limit_allow && this.conf.api.rate_limit_allow.length > 0) {
const tempSet = new Set<string>(['127.0.0.1', ...this.conf.api.rate_limit_allow]);
rateLimiterWhitelist = [...tempSet];
}
let rateLimiterRPM = 1000;
if (this.conf.api.rate_limit_rpm) {
rateLimiterRPM = this.conf.api.rate_limit_rpm;
}
pluginParams.fastify_rate_limit = {
max: rateLimiterRPM,
allowList: rateLimiterWhitelist,
timeWindow: '1 minute',
redis: ioRedisClient
}
}
let rateLimiterRPM = 1000;
if (this.conf.api.rate_limit_rpm) {
rateLimiterRPM = this.conf.api.rate_limit_rpm;
}
const api_rate_limit = {
max: rateLimiterRPM,
allowList: rateLimiterWhitelist,
timeWindow: '1 minute',
redis: ioRedisClient
};
if (this.conf.features.streaming.enable) {
this.activateStreaming();
}
const docsConfig = generateOpenApiConfig(this.manager.config);
if(docsConfig) {
pluginParams.fastify_swagger = docsConfig;
}
registerPlugins(this.fastify, {
fastify_elasticsearch: {client: this.manager.elasticsearchClient},
fastify_swagger: docsConfig,
fastify_rate_limit: api_rate_limit,
fastify_redis: this.manager.conn.redis,
fastify_eosjs: this.manager,
});
registerPlugins(this.fastify, pluginParams);
this.addGenericTypeParsing();
}
+20 -16
View File
@@ -1,5 +1,7 @@
{
"api": {
"enabled": true,
"pm2_scaling": 1,
"chain_name": "EXAMPLE Chain",
"server_addr": "127.0.0.1",
"server_port": 7000,
@@ -23,16 +25,33 @@
"chain_api_error_log": false,
"custom_core_token": "",
"enable_export_action": false,
"disable_rate_limit": false,
"rate_limit_rpm": 1000,
"rate_limit_allow": [],
"disable_tx_cache": false,
"tx_cache_expiration_sec": 3600
},
"indexer": {
"enabled": true,
"start_on": 0,
"stop_on": 0,
"rewrite": false,
"purge_queues": false,
"live_reader": false,
"live_only_mode": false,
"abi_scan_mode": true,
"fetch_block": true,
"fetch_traces": true,
"disable_reading": false,
"disable_indexing": false,
"process_deltas": true,
"disable_delta_rm": true
},
"settings": {
"preview": false,
"chain": "eos",
"eosio_alias": "eosio",
"parser": "1.8",
"parser": "2.1",
"auto_stop": 0,
"index_version": "v1",
"debug": false,
@@ -76,21 +95,6 @@
"routing_mode": "round_robin",
"polling_interval": 10000
},
"indexer": {
"start_on": 0,
"stop_on": 0,
"rewrite": false,
"purge_queues": false,
"live_reader": false,
"live_only_mode": false,
"abi_scan_mode": true,
"fetch_block": true,
"fetch_traces": true,
"disable_reading": false,
"disable_indexing": false,
"process_deltas": true,
"disable_delta_rm": true
},
"features": {
"streaming": {
"enable": false,
+1
View File
@@ -42,6 +42,7 @@ function addApiServer(chainName, threads) {
autorestart: true,
exp_backoff_restart_delay: 100,
watch: false,
time: true,
env: {
CONFIG_JSON: 'chains/' + chainName + '.config.json',
},
+1
View File
@@ -80,6 +80,7 @@ interface ApiLimits {
}
interface ApiConfigs {
disable_rate_limit?: boolean;
disable_tx_cache?: boolean;
tx_cache_expiration_sec?: number | string;
rate_limit_rpm?: number;
+231 -196
View File
@@ -8,244 +8,279 @@ import {deserialize, hLog} from "../../helpers/common_functions";
import {appendFileSync} from "fs";
function timedFunction(enable: boolean, method: () => void) {
if (enable) {
const ref = process.hrtime.bigint();
method();
return Number(process.hrtime.bigint() - ref) / 1000;
} else {
method();
return null;
}
if (enable) {
const ref = process.hrtime.bigint();
method();
return Number(process.hrtime.bigint() - ref) / 1000;
} else {
method();
return null;
}
}
export default class HyperionParser extends BaseParser {
flatten = false;
flatten = false;
public async parseAction(worker: DSPoolWorker, ts, action: ActionTrace, trx_data: TrxMetadata, _actDataArray, _processedTraces: ActionTrace[], full_trace, usageIncluded): Promise<boolean> {
// check filters
if (this.checkBlacklist(action.act)) return false;
if (this.filters.action_whitelist.size > 0) {
if (!this.checkWhitelist(action.act)) return false;
}
public async parseAction(worker: DSPoolWorker, ts, action: ActionTrace, trx_data: TrxMetadata, _actDataArray, _processedTraces: ActionTrace[], full_trace, usageIncluded): Promise<boolean> {
// check filters
if (this.checkBlacklist(action.act)) return false;
if (this.filters.action_whitelist.size > 0) {
if (!this.checkWhitelist(action.act)) return false;
}
await this.deserializeActionData(worker, action, trx_data);
await this.deserializeActionData(worker, action, trx_data);
action["@timestamp"] = ts;
action.block_num = trx_data.block_num;
action.block_id = trx_data.block_id;
action.producer = trx_data.producer;
action.trx_id = trx_data.trx_id;
action["@timestamp"] = ts;
action.block_num = trx_data.block_num;
action.block_id = trx_data.block_id;
action.producer = trx_data.producer;
action.trx_id = trx_data.trx_id;
if (action.account_ram_deltas.length === 0) {
delete action.account_ram_deltas;
}
if (action.account_ram_deltas.length === 0) {
delete action.account_ram_deltas;
}
if (action.except === null) {
if (!action.receipt) {
console.log(full_trace.status);
console.log(action);
}
if (action.except === null) {
if (!action.receipt) {
console.log(full_trace.status);
console.log(action);
}
action.receipt = action.receipt[1];
action.global_sequence = parseInt(action.receipt.global_sequence, 10);
action.receipt = action.receipt[1];
action.global_sequence = parseInt(action.receipt.global_sequence, 10);
delete action.except;
delete action.error_code;
delete action.except;
delete action.error_code;
// add usage data to the first action on the transaction
if (!usageIncluded.status) {
this.extendFirstAction(worker, action, trx_data, full_trace, usageIncluded);
}
// add usage data to the first action on the transaction
if (!usageIncluded.status) {
this.extendFirstAction(worker, action, trx_data, full_trace, usageIncluded);
}
_processedTraces.push(action);
} else {
hLog(action);
}
_processedTraces.push(action);
} else {
hLog(action);
}
return true;
}
return true;
}
public async parseMessage(worker: MainDSWorker, messages: Message[]): Promise<void> {
const dsProfiling = worker.conf.settings.ds_profiling;
for (const message of messages) {
public async parseMessage(worker: MainDSWorker, messages: Message[]): Promise<void> {
const dsProfiling = worker.conf.settings.ds_profiling;
for (const message of messages) {
// profile deserialization
const ds_times = {
size: message.content.length,
eosjs: {
result: undefined,
signed_block: undefined,
transaction_trace: undefined,
table_delta: undefined
},
abieos: {
result: undefined,
signed_block: undefined,
transaction_trace: undefined,
table_delta: undefined
}
};
// profile deserialization
const ds_times = {
size: message.content.length,
eosjs: {
result: undefined,
signed_block: undefined,
transaction_trace: undefined,
table_delta: undefined
},
abieos: {
result: undefined,
signed_block: undefined,
transaction_trace: undefined,
table_delta: undefined
}
};
let allowProcessing = true;
let ds_msg;
let allowProcessing = true;
let ds_msg;
// deserialize result using abieos
// ds_times.abieos.result = timedFunction(dsProfiling,() => {
// ds_msg = worker.deserializeNative('result', message.content);
// });
// deserialize result using abieos
// ds_times.abieos.result = timedFunction(dsProfiling,() => {
// ds_msg = worker.deserializeNative('result', message.content);
// });
// deserialize result using eosjs (faster)
ds_times.eosjs.result = timedFunction(dsProfiling, () => {
ds_msg = deserialize('result', message.content, this.txEnc, this.txDec, worker.types);
});
// deserialize result using eosjs (faster)
ds_times.eosjs.result = timedFunction(dsProfiling, () => {
ds_msg = deserialize('result', message.content, this.txEnc, this.txDec, worker.types);
});
if (!ds_msg) {
if (worker.ch_ready) {
worker.ch.nack(message);
throw new Error('failed to deserialize datatype=result');
}
}
if (!ds_msg) {
if (worker.ch_ready) {
worker.ch.nack(message);
throw new Error('failed to deserialize datatype=result');
}
}
const res = ds_msg[1];
let block = null;
let traces = [];
let deltas = [];
const res = ds_msg[1];
if (res.block && res.block.length) {
let block = null;
if (res.block && res.block.length) {
// deserialize signed_block using abieos (faster)
ds_times.abieos.signed_block = timedFunction(dsProfiling, () => {
block = worker.deserializeNative('signed_block_variant', res.block)[1];
});
if (typeof res.block === 'object' && res.block.length === 2) {
// already deserialized
block = res.block[1];
} else {
try {
// deserialize signed_block using abieos (faster)
ds_times.abieos.signed_block = timedFunction(dsProfiling, () => {
block = worker.deserializeNative('signed_block_variant', res.block)[1];
});
} catch (e) {
hLog('signed_block_variant deserialization failed with abieos!');
}
if (!block) {
try {
// deserialize signed_block using eosjs
ds_times.eosjs.signed_block = timedFunction(dsProfiling, () => {
block = deserialize('signed_block_variant', res.block, this.txEnc, this.txDec, worker.types);
});
} catch (e) {
hLog('signed_block_variant deserialization failed with eosjs!');
}
}
}
// // deserialize signed_block using eosjs
// ds_times.eosjs.signed_block = timedFunction(dsProfiling, () => {
// console.log(worker.types);
// block = deserialize('signed_block_variant', res.block, this.txEnc, this.txDec, worker.types);
// console.log(block);
// });
if (block === null) {
console.log(res);
process.exit(1);
}
if (block === null) {
console.log(res);
process.exit(1);
}
// verify for whitelisted contracts (root actions only)
if (worker.conf.whitelists.root_only) {
try {
// verify for whitelisted contracts (root actions only)
if (worker.conf.whitelists.root_only) {
try {
// get time reference for profiling
if (worker.conf.settings.ds_profiling) ds_times['packed_trx'] = process.hrtime.bigint();
// get time reference for profiling
if (worker.conf.settings.ds_profiling) ds_times['packed_trx'] = process.hrtime.bigint();
if (worker.conf.whitelists &&
(worker.conf.whitelists.actions.length > 0 ||
worker.conf.whitelists.deltas.length > 0)) {
if (worker.conf.whitelists &&
(worker.conf.whitelists.actions.length > 0 ||
worker.conf.whitelists.deltas.length > 0)) {
allowProcessing = false;
allowProcessing = false;
for (const transaction of block.transactions) {
if (transaction.status === 0 && transaction.trx[1] && transaction.trx[1].packed_trx) {
const unpacked_trx = worker.api.deserializeTransaction(Buffer.from(transaction.trx[1].packed_trx, 'hex'));
for (const act of unpacked_trx.actions) {
if (this.checkWhitelist(act)) {
allowProcessing = true;
break;
}
}
if (allowProcessing) break;
}
}
}
for (const transaction of block.transactions) {
if (transaction.status === 0 && transaction.trx[1] && transaction.trx[1].packed_trx) {
const unpacked_trx = worker.api.deserializeTransaction(Buffer.from(transaction.trx[1].packed_trx, 'hex'));
for (const act of unpacked_trx.actions) {
if (this.checkWhitelist(act)) {
allowProcessing = true;
break;
}
}
if (allowProcessing) break;
}
}
}
// store time diff
if (worker.conf.settings.ds_profiling) ds_times['packed_trx'] = Number(process.hrtime.bigint() - ds_times['packed_trx']) / 1000;
// store time diff
if (worker.conf.settings.ds_profiling) ds_times['packed_trx'] = Number(process.hrtime.bigint() - ds_times['packed_trx']) / 1000;
} catch (e) {
console.log(e);
allowProcessing = true;
}
}
}
} catch (e) {
console.log(e);
allowProcessing = true;
}
}
}
// unpack traces
let traces = null;
if (allowProcessing && res.traces && res.traces.length) {
if (allowProcessing && res.traces && res.traces.length) {
// deserialize transaction_trace using abieos (faster)
try {
ds_times.abieos.transaction_trace = timedFunction(dsProfiling, () => {
traces = worker.deserializeNative('transaction_trace[]', res.traces);
});
} catch (e) {
hLog('transaction_trace[] deserialization failed with abieos!');
}
// deserialize transaction_trace using abieos (faster)
ds_times.abieos.transaction_trace = timedFunction(dsProfiling, () => {
traces = worker.deserializeNative('transaction_trace[]', res.traces);
});
// deserialize transaction_trace using eosjs
if (!traces) {
try {
ds_times.eosjs.transaction_trace = timedFunction(dsProfiling, () => {
traces = deserialize('transaction_trace[]', res.traces, this.txEnc, this.txDec, worker.types);
});
} catch (e) {
hLog('transaction_trace[] deserialization failed with eosjs!');
}
}
// deserialize transaction_trace using eosjs
// ds_times.eosjs.transaction_trace = timedFunction(dsProfiling, () => {
// traces = deserialize('transaction_trace[]', res.traces, this.txEnc, this.txDec, worker.types);
// });
if (!traces) {
hLog(`[WARNING] transaction_trace[] deserialization failed on block ${res['this_block']['block_num']}`);
}
}
if (!traces) {
hLog(`[WARNING] transaction_trace[] deserialization failed on block ${res['this_block']['block_num']}`);
}
}
if (allowProcessing && res.deltas && res.deltas.length) {
// unpack deltas
let deltas = null;
if (allowProcessing && res.deltas && res.deltas.length) {
// deserialize table_delta using abieos
// ds_times.abieos.table_delta = timedFunction(dsProfiling, () => {
// worker.deserializeNative('table_delta[]', res.deltas);
// });
// deserialize table_delta using abieos
try {
ds_times.abieos.table_delta = timedFunction(dsProfiling, () => {
deltas = worker.deserializeNative('table_delta[]', res.deltas);
});
} catch (e) {
hLog('table_delta[] deserialization failed with abieos!');
}
// deserialize table_delta using eosjs (faster)
ds_times.eosjs.table_delta = timedFunction(dsProfiling, () => {
deltas = deserialize('table_delta[]', res.deltas, this.txEnc, this.txDec, worker.types);
});
// deserialize table_delta using eosjs
if (!deltas) {
try {
ds_times.eosjs.table_delta = timedFunction(dsProfiling, () => {
deltas = deserialize('table_delta[]', res.deltas, this.txEnc, this.txDec, worker.types);
});
} catch (e) {
hLog('table_delta[] deserialization failed with eosjs!');
}
}
if (!deltas) {
hLog(`[WARNING] table_delta[] deserialization failed on block ${res['this_block']['block_num']}`);
}
}
if (!deltas) {
hLog(`[WARNING] table_delta[] deserialization failed on block ${res['this_block']['block_num']}`);
}
}
if (worker.conf.settings.ds_profiling) {
hLog(ds_times);
const line = [ds_times.size];
line.push(...[ds_times.eosjs.result, ds_times.eosjs.signed_block, ds_times.eosjs.transaction_trace, ds_times.eosjs.table_delta]);
line.push(...[ds_times.abieos.result, ds_times.abieos.signed_block, ds_times.abieos.transaction_trace, ds_times.abieos.table_delta]);
appendFileSync('ds_profiling.csv', line.join(',') + "\n");
}
if (worker.conf.settings.ds_profiling) {
hLog(ds_times);
const line = [ds_times.size];
line.push(...[ds_times.eosjs.result, ds_times.eosjs.signed_block, ds_times.eosjs.transaction_trace, ds_times.eosjs.table_delta]);
line.push(...[ds_times.abieos.result, ds_times.abieos.signed_block, ds_times.abieos.transaction_trace, ds_times.abieos.table_delta]);
appendFileSync('ds_profiling.csv', line.join(',') + "\n");
}
let result;
try {
result = await worker.processBlock(res, block, traces, deltas);
if (result) {
const evPayload = {
event: 'consumed_block',
block_num: result['block_num'],
block_id: result['block_id'],
trx_ids: result['trx_ids'],
lib: res.last_irreversible.block_num,
live: process.env.live_mode
};
if (block) {
evPayload["producer"] = block['producer'];
evPayload["schedule_version"] = block['schedule_version'];
}
process.send(evPayload);
} else {
hLog(`ERROR: Block data not found for #${res['this_block']['block_num']}`);
}
if (worker.ch_ready) {
worker.ch.ack(message);
}
} catch (e) {
console.log(e);
if (worker.ch_ready) {
worker.ch.nack(message);
}
process.exit(1);
}
}
}
let result;
try {
result = await worker.processBlock(res, block, traces, deltas);
if (result) {
const evPayload = {
event: 'consumed_block',
block_num: result['block_num'],
block_id: result['block_id'],
trx_ids: result['trx_ids'],
lib: res.last_irreversible.block_num,
live: process.env.live_mode
};
if (block) {
evPayload["producer"] = block['producer'];
evPayload["schedule_version"] = block['schedule_version'];
}
process.send(evPayload);
} else {
hLog(`ERROR: Block data not found for #${res['this_block']['block_num']}`);
}
if (worker.ch_ready) {
worker.ch.ack(message);
}
} catch (e) {
console.log(e);
if (worker.ch_ready) {
worker.ch.nack(message);
}
process.exit(1);
}
}
}
async flattenInlineActions(action_traces: any[]): Promise<any[]> {
hLog(`Calling undefined flatten operation!`);
return Promise.resolve(undefined);
}
async flattenInlineActions(action_traces: any[]): Promise<any[]> {
hLog(`Calling undefined flatten operation!`);
return Promise.resolve(undefined);
}
}
+195 -180
View File
@@ -1,16 +1,16 @@
{
"name": "hyperion-history",
"version": "3.3.4-rc6",
"version": "3.3.4-rc7",
"lockfileVersion": 2,
"requires": true,
"packages": {
"": {
"name": "hyperion-history",
"version": "3.3.4-rc6",
"version": "3.3.4-rc7",
"hasInstallScript": true,
"license": "MIT",
"dependencies": {
"@elastic/elasticsearch": "^7.14.0",
"@elastic/elasticsearch": "7.14.1",
"@eosrio/node-abieos": "^2.1.1",
"@pm2/io": "^5.0.0",
"amqplib": "^0.8.0",
@@ -18,39 +18,39 @@
"base-x": "^3.0.8",
"cross-fetch": "^3.1.4",
"eosjs": "^22.1.0",
"fast-json-stringify": "^2.7.8",
"fast-json-stringify": "^2.7.9",
"fastify": "^3.20.2",
"fastify-autoload": "^3.8.0",
"fastify-autoload": "^3.8.1",
"fastify-compress": "^3.6.0",
"fastify-cors": "^6.0.2",
"fastify-elasticsearch": "^2.0.0",
"fastify-formbody": "^5.1.0",
"fastify-plugin": "^3.0.0",
"fastify-rate-limit": "^5.6.0",
"fastify-rate-limit": "^5.6.2",
"fastify-redis": "^4.3.1",
"fastify-static": "^4.2.3",
"fastify-swagger": "^4.8.4",
"fastify-swagger": "^4.9.1",
"flatstr": "^1.0.12",
"got": "11.8.2",
"ioredis": "^4.27.7",
"ioredis": "^4.27.9",
"lodash": "^4.17.21",
"moment": "^2.29.1",
"nodemailer": "^6.6.3",
"portfinder": "^1.0.28",
"socket.io": "^4.1.3",
"socket.io-client": "^4.1.3",
"socket.io": "^4.2.0",
"socket.io-client": "^4.2.0",
"socket.io-redis": "^6.1.1",
"telegraf": "^4.4.1",
"typescript": "^4.3.5",
"ws": "^8.1.0",
"ws": "^8.2.1",
"yargs": "^17.1.1"
},
"devDependencies": {
"@types/amqplib": "^0.8.1",
"@types/amqplib": "^0.8.2",
"@types/async": "^3.2.7",
"@types/ioredis": "^4.26.7",
"@types/ioredis": "^4.27.2",
"@types/lodash": "^4.14.172",
"@types/node": "^16.6.1",
"@types/node": "^16.7.10",
"@types/nodemailer": "^6.4.4",
"@types/ws": "^7.4.7"
},
@@ -63,9 +63,9 @@
}
},
"node_modules/@elastic/elasticsearch": {
"version": "7.14.0",
"resolved": "https://registry.npmjs.org/@elastic/elasticsearch/-/elasticsearch-7.14.0.tgz",
"integrity": "sha512-BlxqykcNtdBxo0mF7UQ1OsUxoVOOnEaeF70u2N4jpePih9paCOOotTWfFSDrtEw0TWv1CZlzCGD3TD5+8ASx8A==",
"version": "7.14.1",
"resolved": "https://registry.npmjs.org/@elastic/elasticsearch/-/elasticsearch-7.14.1.tgz",
"integrity": "sha512-pnbh8ddXdxlQdZZfMCwxIIv8KscdhJysVI4ZAc9pBl/cUrLinAj+0gIyTgWA30cOFoKZSLlB9ZXGx6R0SJkIwg==",
"dependencies": {
"debug": "^4.3.1",
"hpagent": "^0.1.1",
@@ -246,9 +246,9 @@
}
},
"node_modules/@types/amqplib": {
"version": "0.8.1",
"resolved": "https://registry.npmjs.org/@types/amqplib/-/amqplib-0.8.1.tgz",
"integrity": "sha512-8dCjF+dHZ8Y6JOoHD1BMnxP0quAncvZq4wA/lS072NjX9vIzVRSMcmfKy2Os8ZQ8VWWp74MD09GMbVbKS6/Fxw==",
"version": "0.8.2",
"resolved": "https://registry.npmjs.org/@types/amqplib/-/amqplib-0.8.2.tgz",
"integrity": "sha512-p+TFLzo52f8UanB+Nq6gyUi65yecAcRY3nYowU6MPGFtaJvEDxcnFWrxssSTkF+ts1W3zyQDvgVICLQem5WxRA==",
"dev": true,
"dependencies": {
"@types/bluebird": "*",
@@ -284,14 +284,14 @@
"integrity": "sha512-bsjleuRKWmGqajMerkzox19aGbscQX5rmmvvXl3wlIp5gMG1HgkiwPxsN5p070fBDKTNSPgojVbuY1+HWMbFhg=="
},
"node_modules/@types/cookie": {
"version": "0.4.0",
"resolved": "https://registry.npmjs.org/@types/cookie/-/cookie-0.4.0.tgz",
"integrity": "sha512-y7mImlc/rNkvCRmg8gC3/lj87S7pTUIJ6QGjwHR9WQJcFs+ZMTOaoPrkdFA/YdbuqVEmEbb5RdhVxMkAcgOnpg=="
"version": "0.4.1",
"resolved": "https://registry.npmjs.org/@types/cookie/-/cookie-0.4.1.tgz",
"integrity": "sha512-XW/Aa8APYr6jSVVA1y/DEIZX0/GMKLEVekNG727R8cs56ahETkRAy/3DR7+fJyh7oUgGwNQaRfXCun0+KbWY7Q=="
},
"node_modules/@types/cors": {
"version": "2.8.10",
"resolved": "https://registry.npmjs.org/@types/cors/-/cors-2.8.10.tgz",
"integrity": "sha512-C7srjHiVG3Ey1nR6d511dtDkCEjxuN9W1HWAEjGq8kpcwmNM6JJkpC0xvabM7BXTG2wDq8Eu33iH9aQKa7IvLQ=="
"version": "2.8.12",
"resolved": "https://registry.npmjs.org/@types/cors/-/cors-2.8.12.tgz",
"integrity": "sha512-vt+kDhq/M2ayberEtJcIN/hxXy1Pk+59g2FV/ZQceeaTyCtCucjL2Q7FXlFjtWn4n15KCr1NE2lNNFhp0lEThw=="
},
"node_modules/@types/http-cache-semantics": {
"version": "4.0.0",
@@ -299,9 +299,9 @@
"integrity": "sha512-c3Xy026kOF7QOTn00hbIllV1dLR9hG9NkSrLQgCVs8NF6sBU+VGWjD3wLPhmh1TYAc7ugCFsvHYMN4VcBN1U1A=="
},
"node_modules/@types/ioredis": {
"version": "4.26.7",
"resolved": "https://registry.npmjs.org/@types/ioredis/-/ioredis-4.26.7.tgz",
"integrity": "sha512-TOGRR+e1to00CihjgPNygD7+G7ruVnMi62YdIvGUBRfj11k/aWq+Fv5Ea8St0Oy56NngTBfA8GvLn1uvHvhX6Q==",
"version": "4.27.2",
"resolved": "https://registry.npmjs.org/@types/ioredis/-/ioredis-4.27.2.tgz",
"integrity": "sha512-/HXAbeJOR4Ub1O0XVlOFxrRTf2Yeq7BSre3qGoBvTTxN29tSmQPPwIYYxyzm2SkNgvx0Re9ahqCVanOVHqAARg==",
"dev": true,
"dependencies": {
"@types/node": "*"
@@ -322,9 +322,9 @@
"dev": true
},
"node_modules/@types/node": {
"version": "16.6.1",
"resolved": "https://registry.npmjs.org/@types/node/-/node-16.6.1.tgz",
"integrity": "sha512-Sr7BhXEAer9xyGuCN3Ek9eg9xPviCF2gfu9kTfuU2HkTVAMYSDeX40fvpmo72n5nansg3nsBjuQBrsS28r+NUw=="
"version": "16.7.10",
"resolved": "https://registry.npmjs.org/@types/node/-/node-16.7.10.tgz",
"integrity": "sha512-S63Dlv4zIPb8x6MMTgDq5WWRJQe56iBEY0O3SOFA9JrRienkOVDXSXBjjJw6HTNQYSE2JI6GMCR6LVbIMHJVvA=="
},
"node_modules/@types/nodemailer": {
"version": "6.4.4",
@@ -964,9 +964,9 @@
}
},
"node_modules/engine.io": {
"version": "5.1.1",
"resolved": "https://registry.npmjs.org/engine.io/-/engine.io-5.1.1.tgz",
"integrity": "sha512-aMWot7H5aC8L4/T8qMYbLdvKlZOdJTH54FxfdFunTGvhMx1BHkJOntWArsVfgAZVwAO9LC2sryPWRcEeUzCe5w==",
"version": "5.2.0",
"resolved": "https://registry.npmjs.org/engine.io/-/engine.io-5.2.0.tgz",
"integrity": "sha512-d1DexkQx87IFr1FLuV+0f5kAm1Hk1uOVijLOb+D1sDO2QMb7YjE02VHtZtxo7xIXMgcWLb+vl3HRT0rI9tr4jQ==",
"dependencies": {
"accepts": "~1.3.4",
"base64id": "2.0.0",
@@ -981,9 +981,9 @@
}
},
"node_modules/engine.io-client": {
"version": "5.1.2",
"resolved": "https://registry.npmjs.org/engine.io-client/-/engine.io-client-5.1.2.tgz",
"integrity": "sha512-blRrgXIE0A/eurWXRzvfCLG7uUFJqfTGFsyJzXSK71srMMGJ2VraBLg8Mdw28uUxSpVicepBN9X7asqpD1mZcQ==",
"version": "5.2.0",
"resolved": "https://registry.npmjs.org/engine.io-client/-/engine.io-client-5.2.0.tgz",
"integrity": "sha512-BcIBXGBkT7wKecwnfrSV79G2X5lSUSgeAGgoo60plXf8UsQEvCQww/KMwXSMhVjb98fFYNq20CC5eo8IOAPqsg==",
"dependencies": {
"base64-arraybuffer": "0.1.4",
"component-emitter": "~1.3.0",
@@ -993,6 +993,7 @@
"parseqs": "0.0.6",
"parseuri": "0.0.6",
"ws": "~7.4.2",
"xmlhttprequest-ssl": "~2.0.0",
"yeast": "0.1.2"
}
},
@@ -1038,9 +1039,9 @@
}
},
"node_modules/engine.io-parser": {
"version": "4.0.2",
"resolved": "https://registry.npmjs.org/engine.io-parser/-/engine.io-parser-4.0.2.tgz",
"integrity": "sha512-sHfEQv6nmtJrq6TKuIz5kyEKH/qSdK56H/A+7DnAuUPWosnIZAS2NHNcPLmyjtY3cGS/MqJdZbUjW97JU72iYg==",
"version": "4.0.3",
"resolved": "https://registry.npmjs.org/engine.io-parser/-/engine.io-parser-4.0.3.tgz",
"integrity": "sha512-xEAAY0msNnESNPc00e19y5heTPX4y/TJ36gr8t1voOaNmTojP9b3oK3BbJLFufW2XFPQaaijpFewm2g2Um3uqA==",
"dependencies": {
"base64-arraybuffer": "0.1.4"
},
@@ -1049,9 +1050,9 @@
}
},
"node_modules/engine.io/node_modules/debug": {
"version": "4.3.1",
"resolved": "https://registry.npmjs.org/debug/-/debug-4.3.1.tgz",
"integrity": "sha512-doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ==",
"version": "4.3.2",
"resolved": "https://registry.npmjs.org/debug/-/debug-4.3.2.tgz",
"integrity": "sha512-mOp8wKcvj7XxC78zLgw/ZA+6TSgkoE2C/ienthhRD298T7UNwAg9diBpLRxC0mOezLl4B0xV7M0cCO6P/O0Xhw==",
"dependencies": {
"ms": "2.1.2"
},
@@ -1150,9 +1151,9 @@
"integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw=="
},
"node_modules/fast-json-stringify": {
"version": "2.7.8",
"resolved": "https://registry.npmjs.org/fast-json-stringify/-/fast-json-stringify-2.7.8.tgz",
"integrity": "sha512-HRSGwEWe0/5EH7GEaWg1by4dInnBb1WFf4umMPr+lL5xb0VP0VbpNGklp4L0/BseD+BmtIZpjqJjnLFwaQ21dg==",
"version": "2.7.9",
"resolved": "https://registry.npmjs.org/fast-json-stringify/-/fast-json-stringify-2.7.9.tgz",
"integrity": "sha512-FC9RJtux5cyojLEbpLyt6cMo6lkJPsfvx0E5O/I5fFkcnYVOSFjg53VUeVWudYXNJOS9Mmjx7totdrLCUWHPTA==",
"dependencies": {
"ajv": "^6.11.0",
"deepmerge": "^4.2.2",
@@ -1200,9 +1201,9 @@
}
},
"node_modules/fastify-autoload": {
"version": "3.8.0",
"resolved": "https://registry.npmjs.org/fastify-autoload/-/fastify-autoload-3.8.0.tgz",
"integrity": "sha512-pp9064HilE70c8BTRJqJ6e6P9M2wKr54Eugeiy9eWf5DTZ49x2TFLaGEGEy/uw/7olrUQOgya/z8kb8zyZao5w==",
"version": "3.8.1",
"resolved": "https://registry.npmjs.org/fastify-autoload/-/fastify-autoload-3.8.1.tgz",
"integrity": "sha512-csx6TT9EKwY+f2NEA9/QQIEc83BfpG7jTXR5PNOk/uwQikDyfHf4JODGkYyH3GVd3TpxyisI+So/6vyqq9z7eg==",
"dependencies": {
"pkg-up": "^3.1.0",
"semver": "^7.3.2"
@@ -1337,9 +1338,9 @@
"integrity": "sha512-ZdCvKEEd92DNLps5n0v231Bha8bkz1DjnPP/aEz37rz/q42Z5JVLmgnqR4DYuNn3NXAO3IDCPyRvgvxtJ4Ym4w=="
},
"node_modules/fastify-rate-limit": {
"version": "5.6.0",
"resolved": "https://registry.npmjs.org/fastify-rate-limit/-/fastify-rate-limit-5.6.0.tgz",
"integrity": "sha512-kkM+TQqU95OCNhVhRgke4+8t4UZHPoc93u+6S2Pzg7yoZ8IICJ8doRNcLxyYm1e20voBnyzooz5Thyw85kR2Nw==",
"version": "5.6.2",
"resolved": "https://registry.npmjs.org/fastify-rate-limit/-/fastify-rate-limit-5.6.2.tgz",
"integrity": "sha512-3CJudTi0Arf16OyUhXlW3lHaSJDZOtchyYgA3BCR1RpfnEm4pvZCwASR+vYfCJiWGhW+bn8uY/7DWvTHo/Je6A==",
"dependencies": {
"fastify-plugin": "^3.0.0",
"ms": "^2.1.1",
@@ -1387,9 +1388,9 @@
}
},
"node_modules/fastify-swagger": {
"version": "4.8.4",
"resolved": "https://registry.npmjs.org/fastify-swagger/-/fastify-swagger-4.8.4.tgz",
"integrity": "sha512-kiQ/LBAvDbm/DfM8vCkGrBSKHvVO5615zufK4gzLHFF9e5rEegu0sOCqwkqoSblYQcpijn2/lwDWHjPRIUeuPg==",
"version": "4.9.1",
"resolved": "https://registry.npmjs.org/fastify-swagger/-/fastify-swagger-4.9.1.tgz",
"integrity": "sha512-1kQIIO/DyrRfWeS8r3h1dorDNAgPEG18IKeuMSsb9aDHx2B265O+VHBcYzuojLMVOOt25zCfFrWLG92YtORmDA==",
"dependencies": {
"fastify-plugin": "^3.0.0",
"fastify-static": "^4.0.0",
@@ -1718,9 +1719,9 @@
}
},
"node_modules/ioredis": {
"version": "4.27.7",
"resolved": "https://registry.npmjs.org/ioredis/-/ioredis-4.27.7.tgz",
"integrity": "sha512-lqvFFmUyGIHlrNyDvBoakzy1+ioJzNyoP6CP97GWtdTjWq9IOAnv6l0HUTsqhvd/z9etGgtrDHZ4kWCMAwNkug==",
"version": "4.27.9",
"resolved": "https://registry.npmjs.org/ioredis/-/ioredis-4.27.9.tgz",
"integrity": "sha512-hAwrx9F+OQ0uIvaJefuS3UTqW+ByOLyLIV+j0EH8ClNVxvFyH9Vmb08hCL4yje6mDYT5zMquShhypkd50RRzkg==",
"dependencies": {
"cluster-key-slot": "^1.1.0",
"debug": "^4.3.1",
@@ -1966,19 +1967,19 @@
}
},
"node_modules/mime-db": {
"version": "1.47.0",
"resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.47.0.tgz",
"integrity": "sha512-QBmA/G2y+IfeS4oktet3qRZ+P5kPhCKRXxXnQEudYqUaEioAU1/Lq2us3D/t1Jfo4hE9REQPrbB7K5sOczJVIw==",
"version": "1.49.0",
"resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.49.0.tgz",
"integrity": "sha512-CIc8j9URtOVApSFCQIF+VBkX1RwXp/oMMOrqdyXSBXq5RWNEsRfyj1kiRnQgmNXmHxPoFIxOroKA3zcU9P+nAA==",
"engines": {
"node": ">= 0.6"
}
},
"node_modules/mime-types": {
"version": "2.1.30",
"resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.30.tgz",
"integrity": "sha512-crmjA4bLtR8m9qLpHvgxSChT+XoSlZi8J4n/aIdn3z92e/U47Z0V/yl+Wh9W046GgFVAmoNR/fmdbZYcSSIUeg==",
"version": "2.1.32",
"resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.32.tgz",
"integrity": "sha512-hJGaVS4G4c9TSMYh2n6SQAGrC4RnfU+daP8G7cSCmaqNjiOoUY0VHCMS42pxnQmVF1GWwFhbHWn3RIxCqTmZ9A==",
"dependencies": {
"mime-db": "1.47.0"
"mime-db": "1.49.0"
},
"engines": {
"node": ">= 0.6"
@@ -2237,9 +2238,9 @@
}
},
"node_modules/path-parse": {
"version": "1.0.6",
"resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.6.tgz",
"integrity": "sha512-GSmOT2EbHrINBf9SR7CDELwlJ8AENk3Qn7OikK4nFYAu3Ote2+JYNVvkpAEQm3/TLNEJFD/xZJjzyxg3KBWOzw=="
"version": "1.0.7",
"resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz",
"integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw=="
},
"node_modules/peek-stream": {
"version": "1.1.3",
@@ -2677,18 +2678,18 @@
"integrity": "sha512-VUJ49FC8U1OxwZLxIbTTrDvLnf/6TDgxZcK8wxR8zs13xpx7xbG60ndBlhNrFi2EMuFRoeDoJO7wthSLq42EjA=="
},
"node_modules/socket.io": {
"version": "4.1.3",
"resolved": "https://registry.npmjs.org/socket.io/-/socket.io-4.1.3.tgz",
"integrity": "sha512-tLkaY13RcO4nIRh1K2hT5iuotfTaIQw7cVIe0FUykN3SuQi0cm7ALxuyT5/CtDswOMWUzMGTibxYNx/gU7In+Q==",
"version": "4.2.0",
"resolved": "https://registry.npmjs.org/socket.io/-/socket.io-4.2.0.tgz",
"integrity": "sha512-sjlGfMmnaWvTRVxGRGWyhd9ctpg4APxWAxu85O/SxekkxHhfxmePWZbaYCkeX5QQX0z1YEnKOlNt6w82E4Nzug==",
"dependencies": {
"@types/cookie": "^0.4.0",
"@types/cors": "^2.8.10",
"@types/cookie": "^0.4.1",
"@types/cors": "^2.8.12",
"@types/node": ">=10.0.0",
"accepts": "~1.3.4",
"base64id": "~2.0.0",
"debug": "~4.3.1",
"engine.io": "~5.1.1",
"socket.io-adapter": "~2.3.1",
"debug": "~4.3.2",
"engine.io": "~5.2.0",
"socket.io-adapter": "~2.3.2",
"socket.io-parser": "~4.0.4"
},
"engines": {
@@ -2701,15 +2702,15 @@
"integrity": "sha512-rG49L+FwaVEwuAdeBRq49M97YI3ElVabJPzvHT9S6a2CWhDKnjSFasvwAwSYPRhQzfn4NtDIbCaGYgOCOU/rlg=="
},
"node_modules/socket.io-client": {
"version": "4.1.3",
"resolved": "https://registry.npmjs.org/socket.io-client/-/socket.io-client-4.1.3.tgz",
"integrity": "sha512-hISFn6PDpgDifVUiNklLHVPTMv1LAk8poHArfIUdXa+gKgbr0MZbAlquDFqCqsF30yBqa+jg42wgos2FK50BHA==",
"version": "4.2.0",
"resolved": "https://registry.npmjs.org/socket.io-client/-/socket.io-client-4.2.0.tgz",
"integrity": "sha512-3GJ2KMh7inJUNAOjgf8NaKJZJa9uRyfryh2LrVJyKyxmzoXlfW9DeDNqylJn0ovOFt4e/kRLNWzMt/YqqEWYSA==",
"dependencies": {
"@types/component-emitter": "^1.2.10",
"backo2": "~1.0.2",
"component-emitter": "~1.3.0",
"debug": "~4.3.1",
"engine.io-client": "~5.1.2",
"debug": "~4.3.2",
"engine.io-client": "~5.2.0",
"parseuri": "0.0.6",
"socket.io-parser": "~4.0.4"
},
@@ -2718,9 +2719,9 @@
}
},
"node_modules/socket.io-client/node_modules/debug": {
"version": "4.3.1",
"resolved": "https://registry.npmjs.org/debug/-/debug-4.3.1.tgz",
"integrity": "sha512-doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ==",
"version": "4.3.2",
"resolved": "https://registry.npmjs.org/debug/-/debug-4.3.2.tgz",
"integrity": "sha512-mOp8wKcvj7XxC78zLgw/ZA+6TSgkoE2C/ienthhRD298T7UNwAg9diBpLRxC0mOezLl4B0xV7M0cCO6P/O0Xhw==",
"dependencies": {
"ms": "2.1.2"
},
@@ -2809,9 +2810,9 @@
"integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w=="
},
"node_modules/socket.io/node_modules/debug": {
"version": "4.3.1",
"resolved": "https://registry.npmjs.org/debug/-/debug-4.3.1.tgz",
"integrity": "sha512-doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ==",
"version": "4.3.2",
"resolved": "https://registry.npmjs.org/debug/-/debug-4.3.2.tgz",
"integrity": "sha512-mOp8wKcvj7XxC78zLgw/ZA+6TSgkoE2C/ienthhRD298T7UNwAg9diBpLRxC0mOezLl4B0xV7M0cCO6P/O0Xhw==",
"dependencies": {
"ms": "2.1.2"
},
@@ -2830,9 +2831,9 @@
"integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w=="
},
"node_modules/socket.io/node_modules/socket.io-adapter": {
"version": "2.3.1",
"resolved": "https://registry.npmjs.org/socket.io-adapter/-/socket.io-adapter-2.3.1.tgz",
"integrity": "sha512-8cVkRxI8Nt2wadkY6u60Y4rpW3ejA1rxgcK2JuyIhmF+RMNpTy1QRtkHIDUOf3B4HlQwakMsWbKftMv/71VMmw=="
"version": "2.3.2",
"resolved": "https://registry.npmjs.org/socket.io-adapter/-/socket.io-adapter-2.3.2.tgz",
"integrity": "sha512-PBZpxUPYjmoogY0aoaTmo1643JelsaS1CiAwNjRVdrI0X9Seuc19Y2Wife8k88avW6haG8cznvwbubAZwH4Mtg=="
},
"node_modules/sonic-boom": {
"version": "1.4.1",
@@ -3053,9 +3054,9 @@
}
},
"node_modules/url-parse": {
"version": "1.5.1",
"resolved": "https://registry.npmjs.org/url-parse/-/url-parse-1.5.1.tgz",
"integrity": "sha512-HOfCOUJt7iSYzEx/UqgtwKRMC6EU91NFhsCHMv9oM03VJcVo2Qrp8T8kI9D7amFf1cu+/3CEhgb3rF9zL7k85Q==",
"version": "1.5.3",
"resolved": "https://registry.npmjs.org/url-parse/-/url-parse-1.5.3.tgz",
"integrity": "sha512-IIORyIQD9rvj0A4CLWsHkBBJuNqWpFQe224b6j9t/ABmquIS0qDU2pY6kl6AuOrL5OkCXHMCFNe1jBcuAggjvQ==",
"dependencies": {
"querystringify": "^2.1.1",
"requires-port": "^1.0.0"
@@ -3114,9 +3115,9 @@
"integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8="
},
"node_modules/ws": {
"version": "8.1.0",
"resolved": "https://registry.npmjs.org/ws/-/ws-8.1.0.tgz",
"integrity": "sha512-0UWlCD2s3RSclw8FN+D0zDTUyMO+1kHwJQQJzkgUh16S8d3NYON0AKCEQPffE0ez4JyRFu76QDA9KR5bOG/7jw==",
"version": "8.2.1",
"resolved": "https://registry.npmjs.org/ws/-/ws-8.2.1.tgz",
"integrity": "sha512-XkgWpJU3sHU7gX8f13NqTn6KQ85bd1WU7noBHTT8fSohx7OS1TPY8k+cyRPCzFkia7C4mM229yeHr1qK9sM4JQ==",
"engines": {
"node": ">=10.0.0"
},
@@ -3133,6 +3134,14 @@
}
}
},
"node_modules/xmlhttprequest-ssl": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/xmlhttprequest-ssl/-/xmlhttprequest-ssl-2.0.0.tgz",
"integrity": "sha512-QKxVRxiRACQcVuQEYFsI1hhkrMlrXHPegbbd1yn9UHOmRxY+si12nQYzri3vbzt8VdTTRviqcKxcyllFas5z2A==",
"engines": {
"node": ">=0.4.0"
}
},
"node_modules/xtend": {
"version": "4.0.2",
"resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz",
@@ -3182,9 +3191,9 @@
},
"dependencies": {
"@elastic/elasticsearch": {
"version": "7.14.0",
"resolved": "https://registry.npmjs.org/@elastic/elasticsearch/-/elasticsearch-7.14.0.tgz",
"integrity": "sha512-BlxqykcNtdBxo0mF7UQ1OsUxoVOOnEaeF70u2N4jpePih9paCOOotTWfFSDrtEw0TWv1CZlzCGD3TD5+8ASx8A==",
"version": "7.14.1",
"resolved": "https://registry.npmjs.org/@elastic/elasticsearch/-/elasticsearch-7.14.1.tgz",
"integrity": "sha512-pnbh8ddXdxlQdZZfMCwxIIv8KscdhJysVI4ZAc9pBl/cUrLinAj+0gIyTgWA30cOFoKZSLlB9ZXGx6R0SJkIwg==",
"requires": {
"debug": "^4.3.1",
"hpagent": "^0.1.1",
@@ -3328,9 +3337,9 @@
}
},
"@types/amqplib": {
"version": "0.8.1",
"resolved": "https://registry.npmjs.org/@types/amqplib/-/amqplib-0.8.1.tgz",
"integrity": "sha512-8dCjF+dHZ8Y6JOoHD1BMnxP0quAncvZq4wA/lS072NjX9vIzVRSMcmfKy2Os8ZQ8VWWp74MD09GMbVbKS6/Fxw==",
"version": "0.8.2",
"resolved": "https://registry.npmjs.org/@types/amqplib/-/amqplib-0.8.2.tgz",
"integrity": "sha512-p+TFLzo52f8UanB+Nq6gyUi65yecAcRY3nYowU6MPGFtaJvEDxcnFWrxssSTkF+ts1W3zyQDvgVICLQem5WxRA==",
"dev": true,
"requires": {
"@types/bluebird": "*",
@@ -3366,14 +3375,14 @@
"integrity": "sha512-bsjleuRKWmGqajMerkzox19aGbscQX5rmmvvXl3wlIp5gMG1HgkiwPxsN5p070fBDKTNSPgojVbuY1+HWMbFhg=="
},
"@types/cookie": {
"version": "0.4.0",
"resolved": "https://registry.npmjs.org/@types/cookie/-/cookie-0.4.0.tgz",
"integrity": "sha512-y7mImlc/rNkvCRmg8gC3/lj87S7pTUIJ6QGjwHR9WQJcFs+ZMTOaoPrkdFA/YdbuqVEmEbb5RdhVxMkAcgOnpg=="
"version": "0.4.1",
"resolved": "https://registry.npmjs.org/@types/cookie/-/cookie-0.4.1.tgz",
"integrity": "sha512-XW/Aa8APYr6jSVVA1y/DEIZX0/GMKLEVekNG727R8cs56ahETkRAy/3DR7+fJyh7oUgGwNQaRfXCun0+KbWY7Q=="
},
"@types/cors": {
"version": "2.8.10",
"resolved": "https://registry.npmjs.org/@types/cors/-/cors-2.8.10.tgz",
"integrity": "sha512-C7srjHiVG3Ey1nR6d511dtDkCEjxuN9W1HWAEjGq8kpcwmNM6JJkpC0xvabM7BXTG2wDq8Eu33iH9aQKa7IvLQ=="
"version": "2.8.12",
"resolved": "https://registry.npmjs.org/@types/cors/-/cors-2.8.12.tgz",
"integrity": "sha512-vt+kDhq/M2ayberEtJcIN/hxXy1Pk+59g2FV/ZQceeaTyCtCucjL2Q7FXlFjtWn4n15KCr1NE2lNNFhp0lEThw=="
},
"@types/http-cache-semantics": {
"version": "4.0.0",
@@ -3381,9 +3390,9 @@
"integrity": "sha512-c3Xy026kOF7QOTn00hbIllV1dLR9hG9NkSrLQgCVs8NF6sBU+VGWjD3wLPhmh1TYAc7ugCFsvHYMN4VcBN1U1A=="
},
"@types/ioredis": {
"version": "4.26.7",
"resolved": "https://registry.npmjs.org/@types/ioredis/-/ioredis-4.26.7.tgz",
"integrity": "sha512-TOGRR+e1to00CihjgPNygD7+G7ruVnMi62YdIvGUBRfj11k/aWq+Fv5Ea8St0Oy56NngTBfA8GvLn1uvHvhX6Q==",
"version": "4.27.2",
"resolved": "https://registry.npmjs.org/@types/ioredis/-/ioredis-4.27.2.tgz",
"integrity": "sha512-/HXAbeJOR4Ub1O0XVlOFxrRTf2Yeq7BSre3qGoBvTTxN29tSmQPPwIYYxyzm2SkNgvx0Re9ahqCVanOVHqAARg==",
"dev": true,
"requires": {
"@types/node": "*"
@@ -3404,9 +3413,9 @@
"dev": true
},
"@types/node": {
"version": "16.6.1",
"resolved": "https://registry.npmjs.org/@types/node/-/node-16.6.1.tgz",
"integrity": "sha512-Sr7BhXEAer9xyGuCN3Ek9eg9xPviCF2gfu9kTfuU2HkTVAMYSDeX40fvpmo72n5nansg3nsBjuQBrsS28r+NUw=="
"version": "16.7.10",
"resolved": "https://registry.npmjs.org/@types/node/-/node-16.7.10.tgz",
"integrity": "sha512-S63Dlv4zIPb8x6MMTgDq5WWRJQe56iBEY0O3SOFA9JrRienkOVDXSXBjjJw6HTNQYSE2JI6GMCR6LVbIMHJVvA=="
},
"@types/nodemailer": {
"version": "6.4.4",
@@ -3936,9 +3945,9 @@
}
},
"engine.io": {
"version": "5.1.1",
"resolved": "https://registry.npmjs.org/engine.io/-/engine.io-5.1.1.tgz",
"integrity": "sha512-aMWot7H5aC8L4/T8qMYbLdvKlZOdJTH54FxfdFunTGvhMx1BHkJOntWArsVfgAZVwAO9LC2sryPWRcEeUzCe5w==",
"version": "5.2.0",
"resolved": "https://registry.npmjs.org/engine.io/-/engine.io-5.2.0.tgz",
"integrity": "sha512-d1DexkQx87IFr1FLuV+0f5kAm1Hk1uOVijLOb+D1sDO2QMb7YjE02VHtZtxo7xIXMgcWLb+vl3HRT0rI9tr4jQ==",
"requires": {
"accepts": "~1.3.4",
"base64id": "2.0.0",
@@ -3950,9 +3959,9 @@
},
"dependencies": {
"debug": {
"version": "4.3.1",
"resolved": "https://registry.npmjs.org/debug/-/debug-4.3.1.tgz",
"integrity": "sha512-doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ==",
"version": "4.3.2",
"resolved": "https://registry.npmjs.org/debug/-/debug-4.3.2.tgz",
"integrity": "sha512-mOp8wKcvj7XxC78zLgw/ZA+6TSgkoE2C/ienthhRD298T7UNwAg9diBpLRxC0mOezLl4B0xV7M0cCO6P/O0Xhw==",
"requires": {
"ms": "2.1.2"
}
@@ -3971,9 +3980,9 @@
}
},
"engine.io-client": {
"version": "5.1.2",
"resolved": "https://registry.npmjs.org/engine.io-client/-/engine.io-client-5.1.2.tgz",
"integrity": "sha512-blRrgXIE0A/eurWXRzvfCLG7uUFJqfTGFsyJzXSK71srMMGJ2VraBLg8Mdw28uUxSpVicepBN9X7asqpD1mZcQ==",
"version": "5.2.0",
"resolved": "https://registry.npmjs.org/engine.io-client/-/engine.io-client-5.2.0.tgz",
"integrity": "sha512-BcIBXGBkT7wKecwnfrSV79G2X5lSUSgeAGgoo60plXf8UsQEvCQww/KMwXSMhVjb98fFYNq20CC5eo8IOAPqsg==",
"requires": {
"base64-arraybuffer": "0.1.4",
"component-emitter": "~1.3.0",
@@ -3983,6 +3992,7 @@
"parseqs": "0.0.6",
"parseuri": "0.0.6",
"ws": "~7.4.2",
"xmlhttprequest-ssl": "~2.0.0",
"yeast": "0.1.2"
},
"dependencies": {
@@ -4008,9 +4018,9 @@
}
},
"engine.io-parser": {
"version": "4.0.2",
"resolved": "https://registry.npmjs.org/engine.io-parser/-/engine.io-parser-4.0.2.tgz",
"integrity": "sha512-sHfEQv6nmtJrq6TKuIz5kyEKH/qSdK56H/A+7DnAuUPWosnIZAS2NHNcPLmyjtY3cGS/MqJdZbUjW97JU72iYg==",
"version": "4.0.3",
"resolved": "https://registry.npmjs.org/engine.io-parser/-/engine.io-parser-4.0.3.tgz",
"integrity": "sha512-xEAAY0msNnESNPc00e19y5heTPX4y/TJ36gr8t1voOaNmTojP9b3oK3BbJLFufW2XFPQaaijpFewm2g2Um3uqA==",
"requires": {
"base64-arraybuffer": "0.1.4"
}
@@ -4067,9 +4077,9 @@
"integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw=="
},
"fast-json-stringify": {
"version": "2.7.8",
"resolved": "https://registry.npmjs.org/fast-json-stringify/-/fast-json-stringify-2.7.8.tgz",
"integrity": "sha512-HRSGwEWe0/5EH7GEaWg1by4dInnBb1WFf4umMPr+lL5xb0VP0VbpNGklp4L0/BseD+BmtIZpjqJjnLFwaQ21dg==",
"version": "2.7.9",
"resolved": "https://registry.npmjs.org/fast-json-stringify/-/fast-json-stringify-2.7.9.tgz",
"integrity": "sha512-FC9RJtux5cyojLEbpLyt6cMo6lkJPsfvx0E5O/I5fFkcnYVOSFjg53VUeVWudYXNJOS9Mmjx7totdrLCUWHPTA==",
"requires": {
"ajv": "^6.11.0",
"deepmerge": "^4.2.2",
@@ -4144,9 +4154,9 @@
}
},
"fastify-autoload": {
"version": "3.8.0",
"resolved": "https://registry.npmjs.org/fastify-autoload/-/fastify-autoload-3.8.0.tgz",
"integrity": "sha512-pp9064HilE70c8BTRJqJ6e6P9M2wKr54Eugeiy9eWf5DTZ49x2TFLaGEGEy/uw/7olrUQOgya/z8kb8zyZao5w==",
"version": "3.8.1",
"resolved": "https://registry.npmjs.org/fastify-autoload/-/fastify-autoload-3.8.1.tgz",
"integrity": "sha512-csx6TT9EKwY+f2NEA9/QQIEc83BfpG7jTXR5PNOk/uwQikDyfHf4JODGkYyH3GVd3TpxyisI+So/6vyqq9z7eg==",
"requires": {
"pkg-up": "^3.1.0",
"semver": "^7.3.2"
@@ -4264,9 +4274,9 @@
"integrity": "sha512-ZdCvKEEd92DNLps5n0v231Bha8bkz1DjnPP/aEz37rz/q42Z5JVLmgnqR4DYuNn3NXAO3IDCPyRvgvxtJ4Ym4w=="
},
"fastify-rate-limit": {
"version": "5.6.0",
"resolved": "https://registry.npmjs.org/fastify-rate-limit/-/fastify-rate-limit-5.6.0.tgz",
"integrity": "sha512-kkM+TQqU95OCNhVhRgke4+8t4UZHPoc93u+6S2Pzg7yoZ8IICJ8doRNcLxyYm1e20voBnyzooz5Thyw85kR2Nw==",
"version": "5.6.2",
"resolved": "https://registry.npmjs.org/fastify-rate-limit/-/fastify-rate-limit-5.6.2.tgz",
"integrity": "sha512-3CJudTi0Arf16OyUhXlW3lHaSJDZOtchyYgA3BCR1RpfnEm4pvZCwASR+vYfCJiWGhW+bn8uY/7DWvTHo/Je6A==",
"requires": {
"fastify-plugin": "^3.0.0",
"ms": "^2.1.1",
@@ -4315,9 +4325,9 @@
}
},
"fastify-swagger": {
"version": "4.8.4",
"resolved": "https://registry.npmjs.org/fastify-swagger/-/fastify-swagger-4.8.4.tgz",
"integrity": "sha512-kiQ/LBAvDbm/DfM8vCkGrBSKHvVO5615zufK4gzLHFF9e5rEegu0sOCqwkqoSblYQcpijn2/lwDWHjPRIUeuPg==",
"version": "4.9.1",
"resolved": "https://registry.npmjs.org/fastify-swagger/-/fastify-swagger-4.9.1.tgz",
"integrity": "sha512-1kQIIO/DyrRfWeS8r3h1dorDNAgPEG18IKeuMSsb9aDHx2B265O+VHBcYzuojLMVOOt25zCfFrWLG92YtORmDA==",
"requires": {
"fastify-plugin": "^3.0.0",
"fastify-static": "^4.0.0",
@@ -4556,9 +4566,9 @@
}
},
"ioredis": {
"version": "4.27.7",
"resolved": "https://registry.npmjs.org/ioredis/-/ioredis-4.27.7.tgz",
"integrity": "sha512-lqvFFmUyGIHlrNyDvBoakzy1+ioJzNyoP6CP97GWtdTjWq9IOAnv6l0HUTsqhvd/z9etGgtrDHZ4kWCMAwNkug==",
"version": "4.27.9",
"resolved": "https://registry.npmjs.org/ioredis/-/ioredis-4.27.9.tgz",
"integrity": "sha512-hAwrx9F+OQ0uIvaJefuS3UTqW+ByOLyLIV+j0EH8ClNVxvFyH9Vmb08hCL4yje6mDYT5zMquShhypkd50RRzkg==",
"requires": {
"cluster-key-slot": "^1.1.0",
"debug": "^4.3.1",
@@ -4748,16 +4758,16 @@
"integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg=="
},
"mime-db": {
"version": "1.47.0",
"resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.47.0.tgz",
"integrity": "sha512-QBmA/G2y+IfeS4oktet3qRZ+P5kPhCKRXxXnQEudYqUaEioAU1/Lq2us3D/t1Jfo4hE9REQPrbB7K5sOczJVIw=="
"version": "1.49.0",
"resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.49.0.tgz",
"integrity": "sha512-CIc8j9URtOVApSFCQIF+VBkX1RwXp/oMMOrqdyXSBXq5RWNEsRfyj1kiRnQgmNXmHxPoFIxOroKA3zcU9P+nAA=="
},
"mime-types": {
"version": "2.1.30",
"resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.30.tgz",
"integrity": "sha512-crmjA4bLtR8m9qLpHvgxSChT+XoSlZi8J4n/aIdn3z92e/U47Z0V/yl+Wh9W046GgFVAmoNR/fmdbZYcSSIUeg==",
"version": "2.1.32",
"resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.32.tgz",
"integrity": "sha512-hJGaVS4G4c9TSMYh2n6SQAGrC4RnfU+daP8G7cSCmaqNjiOoUY0VHCMS42pxnQmVF1GWwFhbHWn3RIxCqTmZ9A==",
"requires": {
"mime-db": "1.47.0"
"mime-db": "1.49.0"
}
},
"minimalistic-assert": {
@@ -4950,9 +4960,9 @@
"integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18="
},
"path-parse": {
"version": "1.0.6",
"resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.6.tgz",
"integrity": "sha512-GSmOT2EbHrINBf9SR7CDELwlJ8AENk3Qn7OikK4nFYAu3Ote2+JYNVvkpAEQm3/TLNEJFD/xZJjzyxg3KBWOzw=="
"version": "1.0.7",
"resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz",
"integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw=="
},
"peek-stream": {
"version": "1.1.3",
@@ -5327,25 +5337,25 @@
"integrity": "sha512-VUJ49FC8U1OxwZLxIbTTrDvLnf/6TDgxZcK8wxR8zs13xpx7xbG60ndBlhNrFi2EMuFRoeDoJO7wthSLq42EjA=="
},
"socket.io": {
"version": "4.1.3",
"resolved": "https://registry.npmjs.org/socket.io/-/socket.io-4.1.3.tgz",
"integrity": "sha512-tLkaY13RcO4nIRh1K2hT5iuotfTaIQw7cVIe0FUykN3SuQi0cm7ALxuyT5/CtDswOMWUzMGTibxYNx/gU7In+Q==",
"version": "4.2.0",
"resolved": "https://registry.npmjs.org/socket.io/-/socket.io-4.2.0.tgz",
"integrity": "sha512-sjlGfMmnaWvTRVxGRGWyhd9ctpg4APxWAxu85O/SxekkxHhfxmePWZbaYCkeX5QQX0z1YEnKOlNt6w82E4Nzug==",
"requires": {
"@types/cookie": "^0.4.0",
"@types/cors": "^2.8.10",
"@types/cookie": "^0.4.1",
"@types/cors": "^2.8.12",
"@types/node": ">=10.0.0",
"accepts": "~1.3.4",
"base64id": "~2.0.0",
"debug": "~4.3.1",
"engine.io": "~5.1.1",
"socket.io-adapter": "~2.3.1",
"debug": "~4.3.2",
"engine.io": "~5.2.0",
"socket.io-adapter": "~2.3.2",
"socket.io-parser": "~4.0.4"
},
"dependencies": {
"debug": {
"version": "4.3.1",
"resolved": "https://registry.npmjs.org/debug/-/debug-4.3.1.tgz",
"integrity": "sha512-doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ==",
"version": "4.3.2",
"resolved": "https://registry.npmjs.org/debug/-/debug-4.3.2.tgz",
"integrity": "sha512-mOp8wKcvj7XxC78zLgw/ZA+6TSgkoE2C/ienthhRD298T7UNwAg9diBpLRxC0mOezLl4B0xV7M0cCO6P/O0Xhw==",
"requires": {
"ms": "2.1.2"
}
@@ -5356,9 +5366,9 @@
"integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w=="
},
"socket.io-adapter": {
"version": "2.3.1",
"resolved": "https://registry.npmjs.org/socket.io-adapter/-/socket.io-adapter-2.3.1.tgz",
"integrity": "sha512-8cVkRxI8Nt2wadkY6u60Y4rpW3ejA1rxgcK2JuyIhmF+RMNpTy1QRtkHIDUOf3B4HlQwakMsWbKftMv/71VMmw=="
"version": "2.3.2",
"resolved": "https://registry.npmjs.org/socket.io-adapter/-/socket.io-adapter-2.3.2.tgz",
"integrity": "sha512-PBZpxUPYjmoogY0aoaTmo1643JelsaS1CiAwNjRVdrI0X9Seuc19Y2Wife8k88avW6haG8cznvwbubAZwH4Mtg=="
}
}
},
@@ -5368,23 +5378,23 @@
"integrity": "sha512-rG49L+FwaVEwuAdeBRq49M97YI3ElVabJPzvHT9S6a2CWhDKnjSFasvwAwSYPRhQzfn4NtDIbCaGYgOCOU/rlg=="
},
"socket.io-client": {
"version": "4.1.3",
"resolved": "https://registry.npmjs.org/socket.io-client/-/socket.io-client-4.1.3.tgz",
"integrity": "sha512-hISFn6PDpgDifVUiNklLHVPTMv1LAk8poHArfIUdXa+gKgbr0MZbAlquDFqCqsF30yBqa+jg42wgos2FK50BHA==",
"version": "4.2.0",
"resolved": "https://registry.npmjs.org/socket.io-client/-/socket.io-client-4.2.0.tgz",
"integrity": "sha512-3GJ2KMh7inJUNAOjgf8NaKJZJa9uRyfryh2LrVJyKyxmzoXlfW9DeDNqylJn0ovOFt4e/kRLNWzMt/YqqEWYSA==",
"requires": {
"@types/component-emitter": "^1.2.10",
"backo2": "~1.0.2",
"component-emitter": "~1.3.0",
"debug": "~4.3.1",
"engine.io-client": "~5.1.2",
"debug": "~4.3.2",
"engine.io-client": "~5.2.0",
"parseuri": "0.0.6",
"socket.io-parser": "~4.0.4"
},
"dependencies": {
"debug": {
"version": "4.3.1",
"resolved": "https://registry.npmjs.org/debug/-/debug-4.3.1.tgz",
"integrity": "sha512-doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ==",
"version": "4.3.2",
"resolved": "https://registry.npmjs.org/debug/-/debug-4.3.2.tgz",
"integrity": "sha512-mOp8wKcvj7XxC78zLgw/ZA+6TSgkoE2C/ienthhRD298T7UNwAg9diBpLRxC0mOezLl4B0xV7M0cCO6P/O0Xhw==",
"requires": {
"ms": "2.1.2"
}
@@ -5631,9 +5641,9 @@
}
},
"url-parse": {
"version": "1.5.1",
"resolved": "https://registry.npmjs.org/url-parse/-/url-parse-1.5.1.tgz",
"integrity": "sha512-HOfCOUJt7iSYzEx/UqgtwKRMC6EU91NFhsCHMv9oM03VJcVo2Qrp8T8kI9D7amFf1cu+/3CEhgb3rF9zL7k85Q==",
"version": "1.5.3",
"resolved": "https://registry.npmjs.org/url-parse/-/url-parse-1.5.3.tgz",
"integrity": "sha512-IIORyIQD9rvj0A4CLWsHkBBJuNqWpFQe224b6j9t/ABmquIS0qDU2pY6kl6AuOrL5OkCXHMCFNe1jBcuAggjvQ==",
"requires": {
"querystringify": "^2.1.1",
"requires-port": "^1.0.0"
@@ -5679,11 +5689,16 @@
"integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8="
},
"ws": {
"version": "8.1.0",
"resolved": "https://registry.npmjs.org/ws/-/ws-8.1.0.tgz",
"integrity": "sha512-0UWlCD2s3RSclw8FN+D0zDTUyMO+1kHwJQQJzkgUh16S8d3NYON0AKCEQPffE0ez4JyRFu76QDA9KR5bOG/7jw==",
"version": "8.2.1",
"resolved": "https://registry.npmjs.org/ws/-/ws-8.2.1.tgz",
"integrity": "sha512-XkgWpJU3sHU7gX8f13NqTn6KQ85bd1WU7noBHTT8fSohx7OS1TPY8k+cyRPCzFkia7C4mM229yeHr1qK9sM4JQ==",
"requires": {}
},
"xmlhttprequest-ssl": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/xmlhttprequest-ssl/-/xmlhttprequest-ssl-2.0.0.tgz",
"integrity": "sha512-QKxVRxiRACQcVuQEYFsI1hhkrMlrXHPegbbd1yn9UHOmRxY+si12nQYzri3vbzt8VdTTRviqcKxcyllFas5z2A=="
},
"xtend": {
"version": "4.0.2",
"resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz",
+13 -13
View File
@@ -1,6 +1,6 @@
{
"name": "hyperion-history",
"version": "3.3.4-rc6",
"version": "3.3.4-rc7",
"description": "Scalable Full History API Solution for EOSIO based blockchains",
"main": "launcher.js",
"scripts": {
@@ -26,7 +26,7 @@
},
"license": "MIT",
"dependencies": {
"@elastic/elasticsearch": "^7.14.0",
"@elastic/elasticsearch": "7.14.1",
"@eosrio/node-abieos": "^2.1.1",
"@pm2/io": "^5.0.0",
"amqplib": "^0.8.0",
@@ -34,39 +34,39 @@
"base-x": "^3.0.8",
"cross-fetch": "^3.1.4",
"eosjs": "^22.1.0",
"fast-json-stringify": "^2.7.8",
"fast-json-stringify": "^2.7.9",
"fastify": "^3.20.2",
"fastify-autoload": "^3.8.0",
"fastify-autoload": "^3.8.1",
"fastify-compress": "^3.6.0",
"fastify-cors": "^6.0.2",
"fastify-elasticsearch": "^2.0.0",
"fastify-formbody": "^5.1.0",
"fastify-plugin": "^3.0.0",
"fastify-rate-limit": "^5.6.0",
"fastify-rate-limit": "^5.6.2",
"fastify-redis": "^4.3.1",
"fastify-static": "^4.2.3",
"fastify-swagger": "^4.8.4",
"fastify-swagger": "^4.9.1",
"flatstr": "^1.0.12",
"got": "11.8.2",
"ioredis": "^4.27.7",
"ioredis": "^4.27.9",
"lodash": "^4.17.21",
"moment": "^2.29.1",
"nodemailer": "^6.6.3",
"portfinder": "^1.0.28",
"socket.io": "^4.1.3",
"socket.io-client": "^4.1.3",
"socket.io": "^4.2.0",
"socket.io-client": "^4.2.0",
"socket.io-redis": "^6.1.1",
"telegraf": "^4.4.1",
"typescript": "^4.3.5",
"ws": "^8.1.0",
"ws": "^8.2.1",
"yargs": "^17.1.1"
},
"devDependencies": {
"@types/amqplib": "^0.8.1",
"@types/amqplib": "^0.8.2",
"@types/async": "^3.2.7",
"@types/ioredis": "^4.26.7",
"@types/ioredis": "^4.27.2",
"@types/lodash": "^4.14.172",
"@types/node": "^16.6.1",
"@types/node": "^16.7.10",
"@types/nodemailer": "^6.4.4",
"@types/ws": "^7.4.7"
},
+1718 -1712
View File
File diff suppressed because it is too large Load Diff
+614 -615
View File
File diff suppressed because it is too large Load Diff