Compare commits
16 Commits
es-8-alpha
...
dev-3.3
| Author | SHA1 | Date | |
|---|---|---|---|
| 2c95cfbcf5 | |||
| 8552dbf31e | |||
| f545aad172 | |||
| 5e68b54610 | |||
| 1e79521ccc | |||
| 18ef675b88 | |||
| 0947f43b38 | |||
| 0d5d438378 | |||
| e678678fef | |||
| 0eaba697eb | |||
| 80bd4adc8c | |||
| 81ae93b1bd | |||
| 49d3b3434c | |||
| 350d2107fe | |||
| 8ed55f003d | |||
| db3c18fdf9 |
@@ -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
@@ -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
@@ -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']) {
|
||||
|
||||
@@ -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));
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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
@@ -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
@@ -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,
|
||||
|
||||
@@ -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',
|
||||
},
|
||||
|
||||
@@ -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
@@ -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);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
Generated
+195
-180
@@ -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
@@ -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
File diff suppressed because it is too large
Load Diff
+614
-615
File diff suppressed because it is too large
Load Diff
Reference in New Issue
Block a user