perf: migrate to undici for node env #74
This commit is contained in:
@@ -7,7 +7,7 @@
|
|||||||
"types": "./lib/types/index.d.ts",
|
"types": "./lib/types/index.d.ts",
|
||||||
"sideEffects": false,
|
"sideEffects": false,
|
||||||
"engines": {
|
"engines": {
|
||||||
"node": ">=12"
|
"node": ">=16"
|
||||||
},
|
},
|
||||||
"scripts": {
|
"scripts": {
|
||||||
"build:cjs": "tsc -b tsconfig.json && tsc-alias -p tsconfig.json",
|
"build:cjs": "tsc -b tsconfig.json && tsc-alias -p tsconfig.json",
|
||||||
@@ -56,11 +56,11 @@
|
|||||||
"arweave-multihost": "^0.1.0",
|
"arweave-multihost": "^0.1.0",
|
||||||
"axios": "^0.21.4",
|
"axios": "^0.21.4",
|
||||||
"bignumber.js": "^9.0.1",
|
"bignumber.js": "^9.0.1",
|
||||||
"isomorphic-fetch": "^3.0.0",
|
|
||||||
"json-beautify": "^1.1.1",
|
"json-beautify": "^1.1.1",
|
||||||
"knex": "^0.95.14",
|
"knex": "^0.95.14",
|
||||||
"lodash": "^4.17.21",
|
"lodash": "^4.17.21",
|
||||||
"tslog": "^3.2.2"
|
"tslog": "^3.2.2",
|
||||||
|
"undici": "^4.12.1"
|
||||||
},
|
},
|
||||||
"devDependencies": {
|
"devDependencies": {
|
||||||
"@types/cheerio": "^0.22.30",
|
"@types/cheerio": "^0.22.30",
|
||||||
@@ -77,8 +77,8 @@
|
|||||||
"eslint-config-prettier": "^8.3.0",
|
"eslint-config-prettier": "^8.3.0",
|
||||||
"eslint-plugin-prettier": "^3.4.1",
|
"eslint-plugin-prettier": "^3.4.1",
|
||||||
"express": "^4.17.1",
|
"express": "^4.17.1",
|
||||||
"got": "^11.8.2",
|
|
||||||
"jest": "^27.4.3",
|
"jest": "^27.4.3",
|
||||||
|
"pg": "^8.7.1",
|
||||||
"prettier": "^2.3.2",
|
"prettier": "^2.3.2",
|
||||||
"rimraf": "^3.0.2",
|
"rimraf": "^3.0.2",
|
||||||
"safe-stable-stringify": "2.3.1",
|
"safe-stable-stringify": "2.3.1",
|
||||||
|
|||||||
@@ -1,6 +1,7 @@
|
|||||||
import {
|
import {
|
||||||
ArTransfer,
|
ArTransfer,
|
||||||
ArWallet,
|
ArWallet,
|
||||||
|
ArweaveWrapper,
|
||||||
Benchmark,
|
Benchmark,
|
||||||
BenchmarkStats,
|
BenchmarkStats,
|
||||||
Contract,
|
Contract,
|
||||||
@@ -56,6 +57,8 @@ export class HandlerBasedContract<State> implements Contract<State> {
|
|||||||
|
|
||||||
private _benchmarkStats: BenchmarkStats = null;
|
private _benchmarkStats: BenchmarkStats = null;
|
||||||
|
|
||||||
|
private readonly _arweaveWrapper: ArweaveWrapper;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* wallet connected to this contract
|
* wallet connected to this contract
|
||||||
*/
|
*/
|
||||||
@@ -68,6 +71,7 @@ export class HandlerBasedContract<State> implements Contract<State> {
|
|||||||
private readonly _callingInteraction: GQLNodeInterface = null
|
private readonly _callingInteraction: GQLNodeInterface = null
|
||||||
) {
|
) {
|
||||||
this.waitForConfirmation = this.waitForConfirmation.bind(this);
|
this.waitForConfirmation = this.waitForConfirmation.bind(this);
|
||||||
|
this._arweaveWrapper = new ArweaveWrapper(smartweave.arweave);
|
||||||
if (_parentContract != null) {
|
if (_parentContract != null) {
|
||||||
this._networkInfo = _parentContract.getNetworkInfo();
|
this._networkInfo = _parentContract.getNetworkInfo();
|
||||||
this._rootBlockHeight = _parentContract.getRootBlockHeight();
|
this._rootBlockHeight = _parentContract.getRootBlockHeight();
|
||||||
@@ -305,7 +309,7 @@ export class HandlerBasedContract<State> implements Contract<State> {
|
|||||||
};
|
};
|
||||||
} else {
|
} else {
|
||||||
this.logger.debug('Reading network info for root call');
|
this.logger.debug('Reading network info for root call');
|
||||||
currentNetworkInfo = await arweave.network.getInfo();
|
currentNetworkInfo = await this._arweaveWrapper.info();
|
||||||
this._networkInfo = currentNetworkInfo;
|
this._networkInfo = currentNetworkInfo;
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
@@ -458,7 +462,7 @@ export class HandlerBasedContract<State> implements Contract<State> {
|
|||||||
|
|
||||||
// add block data to execution context
|
// add block data to execution context
|
||||||
if (!executionContext.currentBlockData) {
|
if (!executionContext.currentBlockData) {
|
||||||
const currentBlockData = executionContext.currentNetworkInfo
|
const currentBlockData = executionContext.currentNetworkInfo?.current
|
||||||
? // trying to optimise calls to arweave as much as possible...
|
? // trying to optimise calls to arweave as much as possible...
|
||||||
await arweave.blocks.get(executionContext.currentNetworkInfo.current)
|
await arweave.blocks.get(executionContext.currentNetworkInfo.current)
|
||||||
: await arweave.blocks.getCurrent();
|
: await arweave.blocks.getCurrent();
|
||||||
@@ -534,7 +538,7 @@ export class HandlerBasedContract<State> implements Contract<State> {
|
|||||||
|
|
||||||
const interaction: ContractInteraction<Input> = {
|
const interaction: ContractInteraction<Input> = {
|
||||||
input,
|
input,
|
||||||
caller: this._parentContract.txId() //executionContext.caller
|
caller: this._parentContract.txId()
|
||||||
};
|
};
|
||||||
|
|
||||||
const interactionData: InteractionData<Input> = {
|
const interactionData: InteractionData<Input> = {
|
||||||
|
|||||||
@@ -1,4 +1,5 @@
|
|||||||
import {
|
import {
|
||||||
|
ArweaveWrapper,
|
||||||
Benchmark,
|
Benchmark,
|
||||||
EvaluationOptions,
|
EvaluationOptions,
|
||||||
GQLEdgeInterface,
|
GQLEdgeInterface,
|
||||||
@@ -23,7 +24,7 @@ interface BlockFilter {
|
|||||||
max: number;
|
max: number;
|
||||||
}
|
}
|
||||||
|
|
||||||
interface ReqVariables {
|
export interface GqlReqVariables {
|
||||||
tags: TagFilter[];
|
tags: TagFilter[];
|
||||||
blockFilter: BlockFilter;
|
blockFilter: BlockFilter;
|
||||||
first: number;
|
first: number;
|
||||||
@@ -63,7 +64,11 @@ export class ArweaveGatewayInteractionsLoader implements InteractionsLoader {
|
|||||||
|
|
||||||
private static readonly _30seconds = 30 * 1000;
|
private static readonly _30seconds = 30 * 1000;
|
||||||
|
|
||||||
constructor(private readonly arweave: Arweave) {}
|
private readonly arweaveWrapper: ArweaveWrapper;
|
||||||
|
|
||||||
|
constructor(private readonly arweave: Arweave) {
|
||||||
|
this.arweaveWrapper = new ArweaveWrapper(arweave);
|
||||||
|
}
|
||||||
|
|
||||||
async load(
|
async load(
|
||||||
contractId: string,
|
contractId: string,
|
||||||
@@ -72,7 +77,7 @@ export class ArweaveGatewayInteractionsLoader implements InteractionsLoader {
|
|||||||
evaluationOptions: EvaluationOptions
|
evaluationOptions: EvaluationOptions
|
||||||
): Promise<GQLEdgeInterface[]> {
|
): Promise<GQLEdgeInterface[]> {
|
||||||
this.logger.debug('Loading interactions for', { contractId, fromBlockHeight, toBlockHeight });
|
this.logger.debug('Loading interactions for', { contractId, fromBlockHeight, toBlockHeight });
|
||||||
const mainTransactionsVariables: ReqVariables = {
|
const mainTransactionsVariables: GqlReqVariables = {
|
||||||
tags: [
|
tags: [
|
||||||
{
|
{
|
||||||
name: SmartWeaveTags.APP_NAME,
|
name: SmartWeaveTags.APP_NAME,
|
||||||
@@ -90,10 +95,12 @@ export class ArweaveGatewayInteractionsLoader implements InteractionsLoader {
|
|||||||
first: MAX_REQUEST
|
first: MAX_REQUEST
|
||||||
};
|
};
|
||||||
|
|
||||||
|
const loadingBenchmark = Benchmark.measure();
|
||||||
let interactions = await this.loadPages(mainTransactionsVariables);
|
let interactions = await this.loadPages(mainTransactionsVariables);
|
||||||
|
loadingBenchmark.stop();
|
||||||
|
|
||||||
if (evaluationOptions.internalWrites) {
|
if (evaluationOptions.internalWrites) {
|
||||||
const innerWritesVariables: ReqVariables = {
|
const innerWritesVariables: GqlReqVariables = {
|
||||||
tags: [
|
tags: [
|
||||||
{
|
{
|
||||||
name: SmartWeaveTags.INTERACT_WRITE,
|
name: SmartWeaveTags.INTERACT_WRITE,
|
||||||
@@ -111,16 +118,17 @@ export class ArweaveGatewayInteractionsLoader implements InteractionsLoader {
|
|||||||
interactions = interactions.concat(innerWritesInteractions);
|
interactions = interactions.concat(innerWritesInteractions);
|
||||||
}
|
}
|
||||||
|
|
||||||
this.logger.debug('All loaded interactions:', {
|
this.logger.info('All loaded interactions:', {
|
||||||
from: fromBlockHeight,
|
from: fromBlockHeight,
|
||||||
to: toBlockHeight,
|
to: toBlockHeight,
|
||||||
loaded: interactions.length
|
loaded: interactions.length,
|
||||||
|
time: loadingBenchmark.elapsed()
|
||||||
});
|
});
|
||||||
|
|
||||||
return interactions;
|
return interactions;
|
||||||
}
|
}
|
||||||
|
|
||||||
private async loadPages(variables: ReqVariables) {
|
private async loadPages(variables: GqlReqVariables) {
|
||||||
let transactions = await this.getNextPage(variables);
|
let transactions = await this.getNextPage(variables);
|
||||||
|
|
||||||
// note: according to https://discord.com/channels/357957786904166400/756557551234973696/920918240702660638
|
// note: according to https://discord.com/channels/357957786904166400/756557551234973696/920918240702660638
|
||||||
@@ -144,12 +152,9 @@ export class ArweaveGatewayInteractionsLoader implements InteractionsLoader {
|
|||||||
return txInfos;
|
return txInfos;
|
||||||
}
|
}
|
||||||
|
|
||||||
private async getNextPage(variables: ReqVariables): Promise<GQLTransactionsResultInterface> {
|
private async getNextPage(variables: GqlReqVariables): Promise<GQLTransactionsResultInterface> {
|
||||||
const benchmark = Benchmark.measure();
|
const benchmark = Benchmark.measure();
|
||||||
let response = await this.arweave.api.post('graphql', {
|
let response = await this.arweaveWrapper.gql(ArweaveGatewayInteractionsLoader.query, variables);
|
||||||
query: ArweaveGatewayInteractionsLoader.query,
|
|
||||||
variables
|
|
||||||
});
|
|
||||||
this.logger.debug('GQL page load:', benchmark.elapsed());
|
this.logger.debug('GQL page load:', benchmark.elapsed());
|
||||||
|
|
||||||
while (response.status === 403) {
|
while (response.status === 403) {
|
||||||
@@ -157,10 +162,7 @@ export class ArweaveGatewayInteractionsLoader implements InteractionsLoader {
|
|||||||
|
|
||||||
await sleep(ArweaveGatewayInteractionsLoader._30seconds);
|
await sleep(ArweaveGatewayInteractionsLoader._30seconds);
|
||||||
|
|
||||||
response = await this.arweave.api.post('graphql', {
|
response = await this.arweaveWrapper.gql(ArweaveGatewayInteractionsLoader.query, variables);
|
||||||
query: ArweaveGatewayInteractionsLoader.query,
|
|
||||||
variables
|
|
||||||
});
|
|
||||||
}
|
}
|
||||||
|
|
||||||
if (response.status !== 200) {
|
if (response.status !== 200) {
|
||||||
|
|||||||
@@ -34,6 +34,8 @@ export class ContractDefinitionLoader implements DefinitionLoader {
|
|||||||
|
|
||||||
async doLoad<State>(contractTxId: string, forcedSrcTxId?: string): Promise<ContractDefinition<State>> {
|
async doLoad<State>(contractTxId: string, forcedSrcTxId?: string): Promise<ContractDefinition<State>> {
|
||||||
const benchmark = Benchmark.measure();
|
const benchmark = Benchmark.measure();
|
||||||
|
const arweaveUrl = `${this.arweave.api.config.protocol}://${this.arweave.api.config.host}:${this.arweave.api.config.port}`;
|
||||||
|
|
||||||
const contractTx = await this.arweave.transactions.get(contractTxId);
|
const contractTx = await this.arweave.transactions.get(contractTxId);
|
||||||
const owner = await this.arweave.wallets.ownerToAddress(contractTx.owner);
|
const owner = await this.arweave.wallets.ownerToAddress(contractTx.owner);
|
||||||
this.logger.debug('Contract tx and owner', benchmark.elapsed());
|
this.logger.debug('Contract tx and owner', benchmark.elapsed());
|
||||||
|
|||||||
@@ -1,6 +1,5 @@
|
|||||||
import { ContractDefinition, LoggerFactory, stripTrailingSlash, SwCache } from '@smartweave';
|
import { ContractDefinition, LoggerFactory, stripTrailingSlash, SwCache } from '@smartweave';
|
||||||
import Arweave from 'arweave';
|
import Arweave from 'arweave';
|
||||||
import 'isomorphic-fetch';
|
|
||||||
import { ContractDefinitionLoader } from './ContractDefinitionLoader';
|
import { ContractDefinitionLoader } from './ContractDefinitionLoader';
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|||||||
@@ -6,7 +6,6 @@ import {
|
|||||||
GQLEdgeInterface,
|
GQLEdgeInterface,
|
||||||
GQLNodeInterface
|
GQLNodeInterface
|
||||||
} from '@smartweave';
|
} from '@smartweave';
|
||||||
import 'isomorphic-fetch';
|
|
||||||
|
|
||||||
interface Paging {
|
interface Paging {
|
||||||
total: string;
|
total: string;
|
||||||
@@ -111,12 +110,11 @@ export class RedstoneGatewayInteractionsLoader implements InteractionsLoader {
|
|||||||
this.logger.debug(`Loaded interactions length: ${interactions.length}`);
|
this.logger.debug(`Loaded interactions length: ${interactions.length}`);
|
||||||
} while (page < totalPages);
|
} while (page < totalPages);
|
||||||
|
|
||||||
this.logger.debug(`Loading interactions for ${contractId}: ${benchmarkTotalTime.elapsed()}`);
|
|
||||||
|
|
||||||
this.logger.debug('All loaded interactions:', {
|
this.logger.debug('All loaded interactions:', {
|
||||||
from: fromBlockHeight,
|
from: fromBlockHeight,
|
||||||
to: toBlockHeight,
|
to: toBlockHeight,
|
||||||
loaded: interactions.length
|
loaded: interactions.length,
|
||||||
|
time: benchmarkTotalTime.elapsed()
|
||||||
});
|
});
|
||||||
|
|
||||||
return interactions;
|
return interactions;
|
||||||
|
|||||||
71
src/utils/ArweaveWrapper.ts
Normal file
71
src/utils/ArweaveWrapper.ts
Normal file
@@ -0,0 +1,71 @@
|
|||||||
|
import Arweave from 'arweave';
|
||||||
|
import { NetworkInfoInterface } from 'arweave/node/network';
|
||||||
|
import { GqlReqVariables, LoggerFactory } from '@smartweave';
|
||||||
|
import { AxiosResponse } from 'axios';
|
||||||
|
|
||||||
|
export class ArweaveWrapper {
|
||||||
|
private readonly logger = LoggerFactory.INST.create('ArweaveWrapper');
|
||||||
|
|
||||||
|
private readonly baseUrl;
|
||||||
|
|
||||||
|
constructor(private readonly arweave: Arweave) {
|
||||||
|
this.baseUrl = `${arweave.api.config.protocol}://${arweave.api.config.host}:${arweave.api.config.port}`;
|
||||||
|
this.logger.debug('baseurl', this.baseUrl);
|
||||||
|
}
|
||||||
|
|
||||||
|
async info(): Promise<Partial<NetworkInfoInterface>> {
|
||||||
|
try {
|
||||||
|
const response = await fetch(`${this.baseUrl}/info`)
|
||||||
|
.then((res) => {
|
||||||
|
return res.ok ? res.json() : Promise.reject(res);
|
||||||
|
})
|
||||||
|
.catch((error) => {
|
||||||
|
if (error.body?.message) {
|
||||||
|
this.logger.error(error.body.message);
|
||||||
|
}
|
||||||
|
throw new Error(`Unable to retrieve info. ${error.status}.`);
|
||||||
|
});
|
||||||
|
|
||||||
|
return response;
|
||||||
|
} catch (e) {
|
||||||
|
this.logger.error('Error while loading network info', e);
|
||||||
|
throw e;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
async gql(query: string, variables: GqlReqVariables): Promise<Partial<AxiosResponse>> {
|
||||||
|
try {
|
||||||
|
const data = JSON.stringify({
|
||||||
|
query: query,
|
||||||
|
variables: variables
|
||||||
|
});
|
||||||
|
|
||||||
|
const response = await fetch(`${this.baseUrl}/graphql`, {
|
||||||
|
method: 'POST',
|
||||||
|
body: data,
|
||||||
|
headers: {
|
||||||
|
'Accept-Encoding': 'gzip, deflate, br',
|
||||||
|
'Content-Type': 'application/json',
|
||||||
|
Accept: 'application/json'
|
||||||
|
}
|
||||||
|
})
|
||||||
|
.then((res) => {
|
||||||
|
return res.ok ? res.json() : Promise.reject(res);
|
||||||
|
})
|
||||||
|
.catch((error) => {
|
||||||
|
if (error.body?.message) {
|
||||||
|
this.logger.error(error.body.message);
|
||||||
|
}
|
||||||
|
throw new Error(`Unable to retrieve info. ${error.status}.`);
|
||||||
|
});
|
||||||
|
|
||||||
|
return {
|
||||||
|
data: response,
|
||||||
|
status: 200
|
||||||
|
};
|
||||||
|
} catch (e) {
|
||||||
|
this.logger.error('Error while loading gql', e);
|
||||||
|
throw e;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -1 +1,2 @@
|
|||||||
export * from './utils';
|
export * from './utils';
|
||||||
|
export * from './ArweaveWrapper';
|
||||||
|
|||||||
@@ -1,19 +1,25 @@
|
|||||||
/* eslint-disable */
|
/* eslint-disable */
|
||||||
import cloneDeep from 'lodash/cloneDeep';
|
import cloneDeep from 'lodash/cloneDeep';
|
||||||
|
|
||||||
const isNode = new Function('try {return this===global;}catch(e){return false;}');
|
// TODO: requires setting "external" in webpack
|
||||||
|
import v8 from 'v8';
|
||||||
|
import Undici from "undici";
|
||||||
|
|
||||||
|
export const isNode = new Function('try {return this===global;}catch(e){return false;}');
|
||||||
|
|
||||||
let v8 = null;
|
|
||||||
if (isNode()) {
|
if (isNode()) {
|
||||||
v8 = require('v8');
|
global.fetch = async function(input, init): Promise<Response> {
|
||||||
|
return await Undici.fetch.call(this, input, init);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
export const sleep = (ms: number): Promise<void> => {
|
export const sleep = (ms: number): Promise<void> => {
|
||||||
return new Promise((resolve) => setTimeout(resolve, ms));
|
return new Promise((resolve) => setTimeout(resolve, ms));
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
export const deepCopy = (input: unknown): any => {
|
export const deepCopy = (input: unknown): any => {
|
||||||
if (v8) {
|
if (isNode()) {
|
||||||
return v8.deserialize(v8.serialize(input));
|
return v8.deserialize(v8.serialize(input));
|
||||||
}
|
}
|
||||||
return cloneDeep(input);
|
return cloneDeep(input);
|
||||||
|
|||||||
@@ -7,15 +7,9 @@ import {
|
|||||||
SmartWeaveWebFactory
|
SmartWeaveWebFactory
|
||||||
} from '../src';
|
} from '../src';
|
||||||
|
|
||||||
import {TsLogFactory} from '../src/logging/node/TsLogFactory';
|
|
||||||
import fs from 'fs';
|
|
||||||
import path from 'path';
|
|
||||||
import {FromFileInteractionsLoader} from './FromFileInteractionsLoader';
|
|
||||||
import {SmartWeaveNodeFactory} from '../src/core/node/SmartWeaveNodeFactory';
|
|
||||||
import {readContract} from "smartweave";
|
|
||||||
import {inspect} from "util";
|
|
||||||
import colors = module
|
|
||||||
import {max, mean, median, min, standardDeviation, variance} from "simple-statistics";
|
import {max, mean, median, min, standardDeviation, variance} from "simple-statistics";
|
||||||
|
import * as path from "path";
|
||||||
|
import * as fs from "fs";
|
||||||
|
|
||||||
const stringify = require('safe-stable-stringify')
|
const stringify = require('safe-stable-stringify')
|
||||||
|
|
||||||
@@ -26,6 +20,8 @@ let os = require("os");
|
|||||||
|
|
||||||
//LoggerFactory.use(new TsLogFactory());
|
//LoggerFactory.use(new TsLogFactory());
|
||||||
LoggerFactory.INST.logLevel("fatal");
|
LoggerFactory.INST.logLevel("fatal");
|
||||||
|
LoggerFactory.INST.logLevel("info", "ArweaveGatewayInteractionsLoader");
|
||||||
|
LoggerFactory.INST.logLevel("debug", "ArweaveWrapper");
|
||||||
LoggerFactory.INST.logLevel("info", "Contract");
|
LoggerFactory.INST.logLevel("info", "Contract");
|
||||||
|
|
||||||
|
|
||||||
@@ -36,7 +32,7 @@ LoggerFactory.INST.logLevel("debug", "HandlerBasedContract");
|
|||||||
LoggerFactory.INST.logLevel("debug", "ContractDefinitionLoader");
|
LoggerFactory.INST.logLevel("debug", "ContractDefinitionLoader");
|
||||||
LoggerFactory.INST.logLevel("debug", "CacheableContractInteractionsLoader");*/
|
LoggerFactory.INST.logLevel("debug", "CacheableContractInteractionsLoader");*/
|
||||||
|
|
||||||
|
const colors = require('colors');
|
||||||
async function main() {
|
async function main() {
|
||||||
const arweave = Arweave.init({
|
const arweave = Arweave.init({
|
||||||
host: 'arweave.net', // Hostname or IP address for a Arweave host
|
host: 'arweave.net', // Hostname or IP address for a Arweave host
|
||||||
@@ -63,85 +59,28 @@ async function main() {
|
|||||||
usedAfter
|
usedAfter
|
||||||
});*/
|
});*/
|
||||||
|
|
||||||
const colors = require('colors');
|
|
||||||
const stats = require('simple-statistics')
|
const stats = require('simple-statistics')
|
||||||
|
|
||||||
console.log("Test info ".bgRed);
|
|
||||||
console.log("===============");
|
|
||||||
|
|
||||||
console.log(" ", "OS ".bgGrey, os.type() + " " + os.release() + " " + os.arch());
|
|
||||||
console.log(" ", "Node.JS ".bgGrey, process.versions.node);
|
|
||||||
console.log(" ", "V8 ".bgGrey, process.versions.v8);
|
|
||||||
|
|
||||||
let cpus = os.cpus().map(function (cpu) {
|
|
||||||
return cpu.model;
|
|
||||||
}).reduce(function (o, model) {
|
|
||||||
if (!o[model]) o[model] = 0;
|
|
||||||
o[model]++;
|
|
||||||
return o;
|
|
||||||
}, {});
|
|
||||||
|
|
||||||
cpus = Object.keys(cpus).map(function (key) {
|
|
||||||
return key + " \u00d7 " + cpus[key];
|
|
||||||
}).join("\n");
|
|
||||||
|
|
||||||
console.log(" ", "CPU ".bgGrey, cpus);
|
|
||||||
console.log(" ", "Memory ".bgGrey, (os.totalmem() / 1024 / 1024 / 1024).toFixed(0), "GB");
|
|
||||||
|
|
||||||
console.log("===============");
|
|
||||||
console.log(" ", "Contract ".bgGrey, "t9T7DIOGxx4VWXoCEeYYarFYeERTpWIC1V3y-BPZgKE");
|
|
||||||
console.log(" ", "Height ".bgGrey, 749180);
|
|
||||||
|
|
||||||
|
|
||||||
const Table = require('cli-table');
|
|
||||||
|
|
||||||
// instantiate
|
|
||||||
const table = new Table({
|
|
||||||
head: ['# Test:'.green, 'Gateway communication:'.green, 'State evaluation:'.green, 'Total:'.green]
|
|
||||||
, colWidths: [10, 30, 20, 20]
|
|
||||||
});
|
|
||||||
|
|
||||||
const results: BenchmarkStats[] = [];
|
const results: BenchmarkStats[] = [];
|
||||||
|
|
||||||
for (let i = 1; i <= 10; i++) {
|
for (let i = 1; i <= 1; i++) {
|
||||||
|
|
||||||
const smartweaveR = SmartWeaveWebFactory
|
const smartweaveR = SmartWeaveWebFactory
|
||||||
.memCachedBased(arweave, 1)
|
.memCachedBased(arweave, 1)
|
||||||
.setInteractionsLoader(
|
|
||||||
new RedstoneGatewayInteractionsLoader("https://gateway.redstone.finance", {confirmed: true}))
|
|
||||||
.setDefinitionLoader(
|
|
||||||
new RedstoneGatewayContractDefinitionLoader("https://gateway.redstone.finance", arweave, new MemCache()))
|
|
||||||
.build();
|
.build();
|
||||||
|
|
||||||
const contract = smartweaveR.contract(contractTxId);
|
const contract = smartweaveR.contract("Daj-MNSnH55TDfxqC7v4eq0lKzVIwh98srUaWqyuZtY");
|
||||||
await contract.readState(844916);
|
const readResult = await contract.readState();
|
||||||
|
|
||||||
const result = contract.lastReadStateStats();
|
const result = contract.lastReadStateStats();
|
||||||
|
|
||||||
results.push(result);
|
results.push(result);
|
||||||
|
fs.writeFileSync(path.join(__dirname, 'data', 'state.json'), stringify(readResult.state).trim());
|
||||||
|
|
||||||
table.push(
|
console.log("total evaluation: " + result.total + "ms")
|
||||||
[`${i}`.magenta, result.gatewayCommunication + "ms", result.stateEvaluation + "ms", result.total + "ms"]
|
|
||||||
);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
console.log(table.toString());
|
console.log(results);
|
||||||
|
|
||||||
const tableStats = new Table({
|
|
||||||
head: ['Statistics:'.green, 'Gateway communication:'.green, 'State evaluation:'.green, 'Total:'.green]
|
|
||||||
, colWidths: [20, 30, 20, 20]
|
|
||||||
});
|
|
||||||
|
|
||||||
tableStats.push(
|
|
||||||
["Mean".cyan, mean(results.map(r => r.gatewayCommunication)) + "ms", mean(results.map(r => r.stateEvaluation)) + "ms", mean(results.map(r => r.total)) + "ms"],
|
|
||||||
["Median".cyan, median(results.map(r => r.gatewayCommunication)) + "ms", median(results.map(r => r.stateEvaluation)) + "ms", median(results.map(r => r.total)) + "ms"],
|
|
||||||
["Min".cyan, min(results.map(r => r.gatewayCommunication)) + "ms", min(results.map(r => r.stateEvaluation)) + "ms", min(results.map(r => r.total)) + "ms"],
|
|
||||||
["Max".cyan, max(results.map(r => r.gatewayCommunication)) + "ms", max(results.map(r => r.stateEvaluation)) + "ms", max(results.map(r => r.total)) + "ms"],
|
|
||||||
["Std. Dev.".cyan, standardDeviation(results.map(r => r.gatewayCommunication)).toFixed(2) + "ms", standardDeviation(results.map(r => r.stateEvaluation)).toFixed(2) + "ms", standardDeviation(results.map(r => r.total)).toFixed(2) + "ms"],
|
|
||||||
);
|
|
||||||
|
|
||||||
console.log(tableStats.toString());
|
|
||||||
|
|
||||||
|
|
||||||
//const result2 = await readContract(arweave, "t9T7DIOGxx4VWXoCEeYYarFYeERTpWIC1V3y-BPZgKE")
|
//const result2 = await readContract(arweave, "t9T7DIOGxx4VWXoCEeYYarFYeERTpWIC1V3y-BPZgKE")
|
||||||
|
|
||||||
@@ -149,7 +88,7 @@ async function main() {
|
|||||||
//fs.writeFileSync(path.join(__dirname, 'data', 'validity.json'), JSON.stringify(validity));
|
//fs.writeFileSync(path.join(__dirname, 'data', 'validity.json'), JSON.stringify(validity));
|
||||||
|
|
||||||
//fs.writeFileSync(path.join(__dirname, 'data', 'validity_old.json'), JSON.stringify(result.validity));
|
//fs.writeFileSync(path.join(__dirname, 'data', 'validity_old.json'), JSON.stringify(result.validity));
|
||||||
//fs.writeFileSync(path.join(__dirname, 'data', 'state_new.json'), stringify(result.state).trim());
|
|
||||||
//fs.writeFileSync(path.join(__dirname, 'data', 'state_old.json'), stringify(result2).trim());
|
//fs.writeFileSync(path.join(__dirname, 'data', 'state_old.json'), stringify(result2).trim());
|
||||||
//fs.writeFileSync(path.join(__dirname, 'data', 'state_arweave.json'), JSON.stringify(result.state));
|
//fs.writeFileSync(path.join(__dirname, 'data', 'state_arweave.json'), JSON.stringify(result.state));
|
||||||
|
|
||||||
|
|||||||
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
@@ -9,8 +9,10 @@ import {
|
|||||||
import Arweave from 'arweave';
|
import Arweave from 'arweave';
|
||||||
import fs from 'fs';
|
import fs from 'fs';
|
||||||
import path from 'path';
|
import path from 'path';
|
||||||
import { TsLogFactory } from '../src/logging/node/TsLogFactory';
|
import {TsLogFactory} from '../src/logging/node/TsLogFactory';
|
||||||
import Transaction from 'arweave/node/lib/transaction';
|
import Transaction from 'arweave/node/lib/transaction';
|
||||||
|
import ArweaveWrapper from "../src/utils/ArweaveWrapper";
|
||||||
|
import knex from "knex";
|
||||||
|
|
||||||
// max number of results returned from single query.
|
// max number of results returned from single query.
|
||||||
// If set more, arweave.net/graphql will still limit to 100 (not sure if that's a bug or feature).
|
// If set more, arweave.net/graphql will still limit to 100 (not sure if that's a bug or feature).
|
||||||
@@ -35,22 +37,36 @@ query Transactions($tags: [TagFilter!]!, $after: String) {
|
|||||||
}
|
}
|
||||||
}`;
|
}`;
|
||||||
|
|
||||||
const toSkip = [
|
|
||||||
'C_1uo08qRuQAeDi9Y1I8fkaWYUC9IWkOrKDNe9EphJo',
|
|
||||||
'B1SRLyFzWJjeA0ywW41Qu1j7ZpBLHsXSSrWLrT3ebd8',
|
|
||||||
'LkfzZvdl_vfjRXZOPjnov18cGnnK3aDKj0qSQCgkCX8',
|
|
||||||
'l6S4oMyzw_rggjt4yt4LrnRmggHQ2CdM1hna2MK4o_c',
|
|
||||||
'aMPlul_sA2TjcBOGpJndgZAcApZLMvFhUGYAPkZ3uLA'
|
|
||||||
];
|
|
||||||
|
|
||||||
const sourcesBlacklist = [
|
|
||||||
'MjrjR6qCFcld0VO83tt3NcpZs2FIuLscvo7ya64afbY',
|
|
||||||
'C_1uo08qRuQAeDi9Y1I8fkaWYUC9IWkOrKDNe9EphJo',
|
|
||||||
'Z3Arb_sfuLpFxyLfolLClLfe89BFgrbbgJM2rKsebEY',
|
|
||||||
'slRfB7WKAEQb5SiO7e-G_FWoAZ4LkoyAYE31ToPXTV8'
|
|
||||||
];
|
|
||||||
|
|
||||||
async function main() {
|
async function main() {
|
||||||
|
const db = knex({
|
||||||
|
client: 'pg',
|
||||||
|
connection: 'postgresql://postgres:@localhost:5432/stats',
|
||||||
|
useNullAsDefault: true,
|
||||||
|
pool: {
|
||||||
|
"min": 5,
|
||||||
|
"max": 30,
|
||||||
|
"createTimeoutMillis": 3000,
|
||||||
|
"acquireTimeoutMillis": 30000,
|
||||||
|
"idleTimeoutMillis": 30000,
|
||||||
|
"reapIntervalMillis": 1000,
|
||||||
|
"createRetryIntervalMillis": 100,
|
||||||
|
"propagateCreateError": false
|
||||||
|
},
|
||||||
|
});
|
||||||
|
|
||||||
|
if (!(await db.schema.hasTable('transactions'))) {
|
||||||
|
await db.schema.createTable('transactions', (table) => {
|
||||||
|
table.string('id', 64).notNullable().index();
|
||||||
|
});
|
||||||
|
|
||||||
|
await db.schema.createTable('tags', (table) => {
|
||||||
|
table.string('transaction_id', 64).notNullable().index();
|
||||||
|
table.string('name').notNullable().index();
|
||||||
|
table.text('value').notNullable().index();
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
const arweave = Arweave.init({
|
const arweave = Arweave.init({
|
||||||
host: 'arweave.net', // Hostname or IP address for a Arweave host
|
host: 'arweave.net', // Hostname or IP address for a Arweave host
|
||||||
port: 443, // Port
|
port: 443, // Port
|
||||||
@@ -59,86 +75,49 @@ async function main() {
|
|||||||
logging: false // Enable network request logging
|
logging: false // Enable network request logging
|
||||||
});
|
});
|
||||||
|
|
||||||
const contractTxs = await sendQuery(
|
/*const contractTxs = await sendQuery(
|
||||||
arweave,
|
arweave,
|
||||||
{
|
{
|
||||||
tags: [
|
tags: [
|
||||||
{
|
{
|
||||||
name: 'App-Name',
|
name: 'App-Name',
|
||||||
values: ['SmartWeaveContract']
|
values: ['SmartWeaveContract']
|
||||||
},
|
|
||||||
{
|
|
||||||
name: 'Content-Type',
|
|
||||||
values: ['application/json']
|
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
after: undefined
|
after: undefined
|
||||||
},
|
},
|
||||||
transactionsQuery
|
transactionsQuery
|
||||||
);
|
);*/
|
||||||
|
|
||||||
console.log(`Checking ${contractTxs.length} contracts`);
|
/**
|
||||||
|
select ts.value as "Content-Type", count(ts.value) as Amount
|
||||||
|
from transactions t
|
||||||
|
join tags ts on ts.transaction_id = t.id
|
||||||
|
where ts.name = 'Content-Type'
|
||||||
|
group by ts.value
|
||||||
|
order by count(ts.value) desc;
|
||||||
|
*/
|
||||||
|
|
||||||
const result = {};
|
|
||||||
|
|
||||||
LoggerFactory.use(new TsLogFactory());
|
|
||||||
LoggerFactory.INST.logLevel('info');
|
|
||||||
LoggerFactory.INST.logLevel('debug', 'ArweaveGatewayInteractionsLoader');
|
|
||||||
|
|
||||||
const transactionsLoader = new ArweaveGatewayInteractionsLoader(arweave);
|
const file = JSON.parse(fs.readFileSync(path.join(__dirname, 'data', `swc-stats.json`), 'utf-8'));
|
||||||
|
console.log(`Checking ${file.length} contracts`);
|
||||||
|
|
||||||
let totalInteractions = 0;
|
for (let row of file) {
|
||||||
// loading
|
console.log('inserting', row.node.id);
|
||||||
for (const contractTx of contractTxs) {
|
await db('transactions').insert({
|
||||||
const contractTxId = contractTx.node.id;
|
id: row.node.id,
|
||||||
if (toSkip.indexOf(contractTxId) !== -1) {
|
});
|
||||||
continue;
|
for (let tag of row.node.tags) {
|
||||||
|
await db('tags').insert({
|
||||||
|
transaction_id: row.node.id,
|
||||||
|
name: tag.name,
|
||||||
|
value: tag.value
|
||||||
|
});
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
const tags = contractTx.node.tags;
|
|
||||||
if (
|
|
||||||
tags.some((tag) => {
|
|
||||||
const key = tag.name;
|
|
||||||
const value = tag.value;
|
|
||||||
return key.localeCompare('Contract-Src') === 0 && sourcesBlacklist.includes(value);
|
|
||||||
})
|
|
||||||
) {
|
|
||||||
console.log("Skipping blacklisted contract's source");
|
|
||||||
continue;
|
|
||||||
}
|
|
||||||
|
|
||||||
console.log(
|
|
||||||
`\n[${contractTxs.indexOf(contractTx) + 1} / ${contractTxs.length}] loading interactions of the ${contractTxId}`
|
|
||||||
);
|
|
||||||
const evaluationOptions =new DefaultEvaluationOptions();
|
|
||||||
const interactions = await transactionsLoader.load(contractTxId, 0, 779826, evaluationOptions);
|
|
||||||
console.log(`${contractTxId}: ${interactions.length}`);
|
|
||||||
|
|
||||||
result[contractTxId] = interactions.length;
|
|
||||||
totalInteractions += interactions.length;
|
|
||||||
console.log('Total:', totalInteractions);
|
|
||||||
fs.writeFileSync(path.join(__dirname, 'data', `swc-stats.json`), JSON.stringify(result));
|
|
||||||
}
|
|
||||||
|
|
||||||
// fs.writeFileSync(path.join(__dirname, 'data', `swc-stats.json`), JSON.stringify(result));
|
|
||||||
|
|
||||||
// sorting
|
|
||||||
console.log('Sorting...');
|
|
||||||
|
|
||||||
const contracts = JSON.parse(fs.readFileSync(path.join(__dirname, 'data', `swc-stats.json`), 'utf-8'));
|
|
||||||
|
|
||||||
const sortable = [];
|
|
||||||
// tslint:disable-next-line:forin
|
|
||||||
for (const contract in contracts) {
|
|
||||||
sortable.push([contract, contracts[contract]]);
|
|
||||||
}
|
|
||||||
sortable.sort((a, b) => b[1] - a[1]);
|
|
||||||
const sortedContracts = {};
|
|
||||||
sortable.forEach((item) => (sortedContracts[item[0]] = item[1]));
|
|
||||||
|
|
||||||
console.log(sortedContracts);
|
|
||||||
|
|
||||||
fs.writeFileSync(path.join(__dirname, 'data', `swc-sorted-stats.json`), JSON.stringify(sortedContracts));
|
|
||||||
}
|
}
|
||||||
|
|
||||||
main().then(() => {
|
main().then(() => {
|
||||||
@@ -166,10 +145,15 @@ async function sendQuery(arweave: Arweave, variables: any, query: string) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
async function getNextPage(arweave, variables, query: string): Promise<GQLTransactionsResultInterface | null> {
|
async function getNextPage(arweave, variables, query: string): Promise<GQLTransactionsResultInterface | null> {
|
||||||
const response = await arweave.api.post('graphql', {
|
|
||||||
|
console.log("loading page after", variables.after);
|
||||||
|
|
||||||
|
|
||||||
|
const wrapper = new ArweaveWrapper(arweave);
|
||||||
|
const response = await wrapper.gql(query, variables);/*await arweave.api.post('graphql', {
|
||||||
query,
|
query,
|
||||||
variables
|
variables
|
||||||
});
|
});*/
|
||||||
|
|
||||||
if (response.status !== 200) {
|
if (response.status !== 200) {
|
||||||
console.error(response);
|
console.error(response);
|
||||||
|
|||||||
55
tools/undici.ts
Normal file
55
tools/undici.ts
Normal file
@@ -0,0 +1,55 @@
|
|||||||
|
/* eslint-disable */
|
||||||
|
import Arweave from 'arweave';
|
||||||
|
import { LoggerFactory, mapReplacer } from '../src';
|
||||||
|
import { TsLogFactory } from '../src/logging/node/TsLogFactory';
|
||||||
|
import Undici from "undici";
|
||||||
|
import request = Undici.request;
|
||||||
|
import {Benchmark} from "../src/logging/Benchmark";
|
||||||
|
import axios from "axios";
|
||||||
|
|
||||||
|
|
||||||
|
async function main() {
|
||||||
|
LoggerFactory.use(new TsLogFactory());
|
||||||
|
LoggerFactory.INST.logLevel('debug');
|
||||||
|
|
||||||
|
const arweave = Arweave.init({
|
||||||
|
host: 'arweave.net', // Hostname or IP address for a Arweave host
|
||||||
|
port: 443, // Port
|
||||||
|
protocol: 'https', // Network protocol http or https
|
||||||
|
timeout: 60000, // Network request timeouts in milliseconds
|
||||||
|
logging: false // Enable network request logging
|
||||||
|
});
|
||||||
|
|
||||||
|
|
||||||
|
const benchmark = Benchmark.measure();
|
||||||
|
|
||||||
|
for (let i = 0; i < 100; i++) {
|
||||||
|
const {
|
||||||
|
statusCode,
|
||||||
|
headers,
|
||||||
|
trailers,
|
||||||
|
body
|
||||||
|
} = await request('https://arweave.net:443/info');
|
||||||
|
await body.json();
|
||||||
|
}
|
||||||
|
|
||||||
|
console.log(`undici: ${benchmark.elapsed()}`);
|
||||||
|
|
||||||
|
|
||||||
|
benchmark.reset();
|
||||||
|
|
||||||
|
for (let i = 0; i < 100; i++) {
|
||||||
|
const result = await axios.get('https://arweave.net:443/info');
|
||||||
|
}
|
||||||
|
|
||||||
|
console.log(`axios: ${benchmark.elapsed()}`);
|
||||||
|
|
||||||
|
benchmark.reset();
|
||||||
|
|
||||||
|
|
||||||
|
console.log(`got: ${benchmark.elapsed()}`);
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
main().catch((e) => console.error(e));
|
||||||
291
yarn.lock
291
yarn.lock
@@ -677,11 +677,6 @@
|
|||||||
resolved "https://registry.yarnpkg.com/@protobufjs/utf8/-/utf8-1.1.0.tgz#a777360b5b39a1a2e5106f8e858f2fd2d060c570"
|
resolved "https://registry.yarnpkg.com/@protobufjs/utf8/-/utf8-1.1.0.tgz#a777360b5b39a1a2e5106f8e858f2fd2d060c570"
|
||||||
integrity sha1-p3c2C1s5oaLlEG+OhY8v0tBgxXA=
|
integrity sha1-p3c2C1s5oaLlEG+OhY8v0tBgxXA=
|
||||||
|
|
||||||
"@sindresorhus/is@^4.0.0":
|
|
||||||
version "4.2.0"
|
|
||||||
resolved "https://registry.yarnpkg.com/@sindresorhus/is/-/is-4.2.0.tgz#667bfc6186ae7c9e0b45a08960c551437176e1ca"
|
|
||||||
integrity sha512-VkE3KLBmJwcCaVARtQpfuKcKv8gcBmUubrfHGF84dXuuW6jgsRYxPtzcIhPyK9WAPpRt2/xY6zkD9MnRaJzSyw==
|
|
||||||
|
|
||||||
"@sinonjs/commons@^1.7.0":
|
"@sinonjs/commons@^1.7.0":
|
||||||
version "1.8.3"
|
version "1.8.3"
|
||||||
resolved "https://registry.yarnpkg.com/@sinonjs/commons/-/commons-1.8.3.tgz#3802ddd21a50a949b6721ddd72da36e67e7f1b2d"
|
resolved "https://registry.yarnpkg.com/@sinonjs/commons/-/commons-1.8.3.tgz#3802ddd21a50a949b6721ddd72da36e67e7f1b2d"
|
||||||
@@ -696,13 +691,6 @@
|
|||||||
dependencies:
|
dependencies:
|
||||||
"@sinonjs/commons" "^1.7.0"
|
"@sinonjs/commons" "^1.7.0"
|
||||||
|
|
||||||
"@szmarczak/http-timer@^4.0.5":
|
|
||||||
version "4.0.6"
|
|
||||||
resolved "https://registry.yarnpkg.com/@szmarczak/http-timer/-/http-timer-4.0.6.tgz#b4a914bb62e7c272d4e5989fe4440f812ab1d807"
|
|
||||||
integrity sha512-4BAffykYOgO+5nzBWYwE3W90sBgLJoUPRWWcL8wlyiM8IB8ipJz3UMJ9KXQd1RKQXpKp8Tutn80HZtWsu2u76w==
|
|
||||||
dependencies:
|
|
||||||
defer-to-connect "^2.0.0"
|
|
||||||
|
|
||||||
"@tootallnate/once@1":
|
"@tootallnate/once@1":
|
||||||
version "1.1.2"
|
version "1.1.2"
|
||||||
resolved "https://registry.yarnpkg.com/@tootallnate/once/-/once-1.1.2.tgz#ccb91445360179a04e7fe6aff78c00ffc1eeaf82"
|
resolved "https://registry.yarnpkg.com/@tootallnate/once/-/once-1.1.2.tgz#ccb91445360179a04e7fe6aff78c00ffc1eeaf82"
|
||||||
@@ -800,16 +788,6 @@
|
|||||||
resolved "https://registry.yarnpkg.com/@types/browser-or-node/-/browser-or-node-1.3.0.tgz#896ec59bcb8109fc858d8e68d3c056c176a19622"
|
resolved "https://registry.yarnpkg.com/@types/browser-or-node/-/browser-or-node-1.3.0.tgz#896ec59bcb8109fc858d8e68d3c056c176a19622"
|
||||||
integrity sha512-MVetr65IR7RdJbUxVHsaPFaXAO8fi89zv1g8L/mHygh1Q7xnnK02XZLwfMh57FOpTO6gtnagoPMQ/UOFfctXRQ==
|
integrity sha512-MVetr65IR7RdJbUxVHsaPFaXAO8fi89zv1g8L/mHygh1Q7xnnK02XZLwfMh57FOpTO6gtnagoPMQ/UOFfctXRQ==
|
||||||
|
|
||||||
"@types/cacheable-request@^6.0.1":
|
|
||||||
version "6.0.2"
|
|
||||||
resolved "https://registry.yarnpkg.com/@types/cacheable-request/-/cacheable-request-6.0.2.tgz#c324da0197de0a98a2312156536ae262429ff6b9"
|
|
||||||
integrity sha512-B3xVo+dlKM6nnKTcmm5ZtY/OL8bOAOd2Olee9M1zft65ox50OzjEHW91sDiU9j6cvW8Ejg1/Qkf4xd2kugApUA==
|
|
||||||
dependencies:
|
|
||||||
"@types/http-cache-semantics" "*"
|
|
||||||
"@types/keyv" "*"
|
|
||||||
"@types/node" "*"
|
|
||||||
"@types/responselike" "*"
|
|
||||||
|
|
||||||
"@types/cheerio@^0.22.30":
|
"@types/cheerio@^0.22.30":
|
||||||
version "0.22.30"
|
version "0.22.30"
|
||||||
resolved "https://registry.yarnpkg.com/@types/cheerio/-/cheerio-0.22.30.tgz#6c1ded70d20d890337f0f5144be2c5e9ce0936e6"
|
resolved "https://registry.yarnpkg.com/@types/cheerio/-/cheerio-0.22.30.tgz#6c1ded70d20d890337f0f5144be2c5e9ce0936e6"
|
||||||
@@ -896,11 +874,6 @@
|
|||||||
resolved "https://registry.yarnpkg.com/@types/http-assert/-/http-assert-1.5.3.tgz#ef8e3d1a8d46c387f04ab0f2e8ab8cb0c5078661"
|
resolved "https://registry.yarnpkg.com/@types/http-assert/-/http-assert-1.5.3.tgz#ef8e3d1a8d46c387f04ab0f2e8ab8cb0c5078661"
|
||||||
integrity sha512-FyAOrDuQmBi8/or3ns4rwPno7/9tJTijVW6aQQjK02+kOQ8zmoNg2XJtAuQhvQcy1ASJq38wirX5//9J1EqoUA==
|
integrity sha512-FyAOrDuQmBi8/or3ns4rwPno7/9tJTijVW6aQQjK02+kOQ8zmoNg2XJtAuQhvQcy1ASJq38wirX5//9J1EqoUA==
|
||||||
|
|
||||||
"@types/http-cache-semantics@*":
|
|
||||||
version "4.0.1"
|
|
||||||
resolved "https://registry.yarnpkg.com/@types/http-cache-semantics/-/http-cache-semantics-4.0.1.tgz#0ea7b61496902b95890dc4c3a116b60cb8dae812"
|
|
||||||
integrity sha512-SZs7ekbP8CN0txVG2xVRH6EgKmEm31BOxA07vkFaETzZz1xh+cbt8BcI0slpymvwhx5dlFnQG2rTlPVQn+iRPQ==
|
|
||||||
|
|
||||||
"@types/http-errors@*":
|
"@types/http-errors@*":
|
||||||
version "1.8.1"
|
version "1.8.1"
|
||||||
resolved "https://registry.yarnpkg.com/@types/http-errors/-/http-errors-1.8.1.tgz#e81ad28a60bee0328c6d2384e029aec626f1ae67"
|
resolved "https://registry.yarnpkg.com/@types/http-errors/-/http-errors-1.8.1.tgz#e81ad28a60bee0328c6d2384e029aec626f1ae67"
|
||||||
@@ -956,13 +929,6 @@
|
|||||||
resolved "https://registry.yarnpkg.com/@types/keygrip/-/keygrip-1.0.2.tgz#513abfd256d7ad0bf1ee1873606317b33b1b2a72"
|
resolved "https://registry.yarnpkg.com/@types/keygrip/-/keygrip-1.0.2.tgz#513abfd256d7ad0bf1ee1873606317b33b1b2a72"
|
||||||
integrity sha512-GJhpTepz2udxGexqos8wgaBx4I/zWIDPh/KOGEwAqtuGDkOUJu5eFvwmdBX4AmB8Odsr+9pHCQqiAqDL/yKMKw==
|
integrity sha512-GJhpTepz2udxGexqos8wgaBx4I/zWIDPh/KOGEwAqtuGDkOUJu5eFvwmdBX4AmB8Odsr+9pHCQqiAqDL/yKMKw==
|
||||||
|
|
||||||
"@types/keyv@*":
|
|
||||||
version "3.1.3"
|
|
||||||
resolved "https://registry.yarnpkg.com/@types/keyv/-/keyv-3.1.3.tgz#1c9aae32872ec1f20dcdaee89a9f3ba88f465e41"
|
|
||||||
integrity sha512-FXCJgyyN3ivVgRoml4h94G/p3kY+u/B86La+QptcqJaWtBWtmc6TtkNfS40n9bIvyLteHh7zXOtgbobORKPbDg==
|
|
||||||
dependencies:
|
|
||||||
"@types/node" "*"
|
|
||||||
|
|
||||||
"@types/koa-bodyparser@^4.2.1":
|
"@types/koa-bodyparser@^4.2.1":
|
||||||
version "4.3.4"
|
version "4.3.4"
|
||||||
resolved "https://registry.yarnpkg.com/@types/koa-bodyparser/-/koa-bodyparser-4.3.4.tgz#86aca8ba2ac5896f84386f52cf02eb06563e2539"
|
resolved "https://registry.yarnpkg.com/@types/koa-bodyparser/-/koa-bodyparser-4.3.4.tgz#86aca8ba2ac5896f84386f52cf02eb06563e2539"
|
||||||
@@ -1045,13 +1011,6 @@
|
|||||||
resolved "https://registry.yarnpkg.com/@types/range-parser/-/range-parser-1.2.4.tgz#cd667bcfdd025213aafb7ca5915a932590acdcdc"
|
resolved "https://registry.yarnpkg.com/@types/range-parser/-/range-parser-1.2.4.tgz#cd667bcfdd025213aafb7ca5915a932590acdcdc"
|
||||||
integrity sha512-EEhsLsD6UsDM1yFhAvy0Cjr6VwmpMWqFBCb9w07wVugF7w9nfajxLuVmngTIpgS6svCnm6Vaw+MZhoDCKnOfsw==
|
integrity sha512-EEhsLsD6UsDM1yFhAvy0Cjr6VwmpMWqFBCb9w07wVugF7w9nfajxLuVmngTIpgS6svCnm6Vaw+MZhoDCKnOfsw==
|
||||||
|
|
||||||
"@types/responselike@*", "@types/responselike@^1.0.0":
|
|
||||||
version "1.0.0"
|
|
||||||
resolved "https://registry.yarnpkg.com/@types/responselike/-/responselike-1.0.0.tgz#251f4fe7d154d2bad125abe1b429b23afd262e29"
|
|
||||||
integrity sha512-85Y2BjiufFzaMIlvJDvTTB8Fxl2xfLo4HgmHzVBz08w4wDePCTjYw66PdrolO0kzli3yam/YCgRufyo1DdQVTA==
|
|
||||||
dependencies:
|
|
||||||
"@types/node" "*"
|
|
||||||
|
|
||||||
"@types/serve-static@*":
|
"@types/serve-static@*":
|
||||||
version "1.13.10"
|
version "1.13.10"
|
||||||
resolved "https://registry.yarnpkg.com/@types/serve-static/-/serve-static-1.13.10.tgz#f5e0ce8797d2d7cc5ebeda48a52c96c4fa47a8d9"
|
resolved "https://registry.yarnpkg.com/@types/serve-static/-/serve-static-1.13.10.tgz#f5e0ce8797d2d7cc5ebeda48a52c96c4fa47a8d9"
|
||||||
@@ -1908,6 +1867,11 @@ buffer-from@^1.0.0:
|
|||||||
resolved "https://registry.yarnpkg.com/buffer-from/-/buffer-from-1.1.2.tgz#2b146a6fd72e80b4f55d255f35ed59a3a9a41bd5"
|
resolved "https://registry.yarnpkg.com/buffer-from/-/buffer-from-1.1.2.tgz#2b146a6fd72e80b4f55d255f35ed59a3a9a41bd5"
|
||||||
integrity sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==
|
integrity sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==
|
||||||
|
|
||||||
|
buffer-writer@2.0.0:
|
||||||
|
version "2.0.0"
|
||||||
|
resolved "https://registry.yarnpkg.com/buffer-writer/-/buffer-writer-2.0.0.tgz#ce7eb81a38f7829db09c873f2fbb792c0c98ec04"
|
||||||
|
integrity sha512-a7ZpuTZU1TRtnwyCNW3I5dc0wWNC3VR9S++Ewyk2HHZdrO3CQJqSpd+95Us590V6AL7JqUAH2IwZ/398PmNFgw==
|
||||||
|
|
||||||
buffer-xor@^1.0.3:
|
buffer-xor@^1.0.3:
|
||||||
version "1.0.3"
|
version "1.0.3"
|
||||||
resolved "https://registry.yarnpkg.com/buffer-xor/-/buffer-xor-1.0.3.tgz#26e61ed1422fb70dd42e6e36729ed51d855fe8d9"
|
resolved "https://registry.yarnpkg.com/buffer-xor/-/buffer-xor-1.0.3.tgz#26e61ed1422fb70dd42e6e36729ed51d855fe8d9"
|
||||||
@@ -1946,24 +1910,6 @@ cache-content-type@^1.0.0:
|
|||||||
mime-types "^2.1.18"
|
mime-types "^2.1.18"
|
||||||
ylru "^1.2.0"
|
ylru "^1.2.0"
|
||||||
|
|
||||||
cacheable-lookup@^5.0.3:
|
|
||||||
version "5.0.4"
|
|
||||||
resolved "https://registry.yarnpkg.com/cacheable-lookup/-/cacheable-lookup-5.0.4.tgz#5a6b865b2c44357be3d5ebc2a467b032719a7005"
|
|
||||||
integrity sha512-2/kNscPhpcxrOigMZzbiWF7dz8ilhb/nIHU3EyZiXWXpeq/au8qJ8VhdftMkty3n7Gj6HIGalQG8oiBNB3AJgA==
|
|
||||||
|
|
||||||
cacheable-request@^7.0.2:
|
|
||||||
version "7.0.2"
|
|
||||||
resolved "https://registry.yarnpkg.com/cacheable-request/-/cacheable-request-7.0.2.tgz#ea0d0b889364a25854757301ca12b2da77f91d27"
|
|
||||||
integrity sha512-pouW8/FmiPQbuGpkXQ9BAPv/Mo5xDGANgSNXzTzJ8DrKGuXOssM4wIQRjfanNRh3Yu5cfYPvcorqbhg2KIJtew==
|
|
||||||
dependencies:
|
|
||||||
clone-response "^1.0.2"
|
|
||||||
get-stream "^5.1.0"
|
|
||||||
http-cache-semantics "^4.0.0"
|
|
||||||
keyv "^4.0.0"
|
|
||||||
lowercase-keys "^2.0.0"
|
|
||||||
normalize-url "^6.0.1"
|
|
||||||
responselike "^2.0.0"
|
|
||||||
|
|
||||||
call-bind@^1.0.0, call-bind@^1.0.2:
|
call-bind@^1.0.0, call-bind@^1.0.2:
|
||||||
version "1.0.2"
|
version "1.0.2"
|
||||||
resolved "https://registry.yarnpkg.com/call-bind/-/call-bind-1.0.2.tgz#b1d4e89e688119c3c9a903ad30abb2f6a919be3c"
|
resolved "https://registry.yarnpkg.com/call-bind/-/call-bind-1.0.2.tgz#b1d4e89e688119c3c9a903ad30abb2f6a919be3c"
|
||||||
@@ -2129,13 +2075,6 @@ cliui@^7.0.2:
|
|||||||
strip-ansi "^6.0.0"
|
strip-ansi "^6.0.0"
|
||||||
wrap-ansi "^7.0.0"
|
wrap-ansi "^7.0.0"
|
||||||
|
|
||||||
clone-response@^1.0.2:
|
|
||||||
version "1.0.2"
|
|
||||||
resolved "https://registry.yarnpkg.com/clone-response/-/clone-response-1.0.2.tgz#d1dc973920314df67fbeb94223b4ee350239e96b"
|
|
||||||
integrity sha1-0dyXOSAxTfZ/vrlCI7TuNQI56Ws=
|
|
||||||
dependencies:
|
|
||||||
mimic-response "^1.0.0"
|
|
||||||
|
|
||||||
clone@^1.0.2:
|
clone@^1.0.2:
|
||||||
version "1.0.4"
|
version "1.0.4"
|
||||||
resolved "https://registry.yarnpkg.com/clone/-/clone-1.0.4.tgz#da309cc263df15994c688ca902179ca3c7cd7c7e"
|
resolved "https://registry.yarnpkg.com/clone/-/clone-1.0.4.tgz#da309cc263df15994c688ca902179ca3c7cd7c7e"
|
||||||
@@ -2492,13 +2431,6 @@ decimal.js@^10.2.1:
|
|||||||
resolved "https://registry.yarnpkg.com/decimal.js/-/decimal.js-10.3.1.tgz#d8c3a444a9c6774ba60ca6ad7261c3a94fd5e783"
|
resolved "https://registry.yarnpkg.com/decimal.js/-/decimal.js-10.3.1.tgz#d8c3a444a9c6774ba60ca6ad7261c3a94fd5e783"
|
||||||
integrity sha512-V0pfhfr8suzyPGOx3nmq4aHqabehUZn6Ch9kyFpV79TGDTWFmHqUqXdabR7QHqxzrYolF4+tVmJhUG4OURg5dQ==
|
integrity sha512-V0pfhfr8suzyPGOx3nmq4aHqabehUZn6Ch9kyFpV79TGDTWFmHqUqXdabR7QHqxzrYolF4+tVmJhUG4OURg5dQ==
|
||||||
|
|
||||||
decompress-response@^6.0.0:
|
|
||||||
version "6.0.0"
|
|
||||||
resolved "https://registry.yarnpkg.com/decompress-response/-/decompress-response-6.0.0.tgz#ca387612ddb7e104bd16d85aab00d5ecf09c66fc"
|
|
||||||
integrity sha512-aW35yZM6Bb/4oJlZncMH2LCoZtJXTRxES17vE3hoRiowU2kWHaJKFkSBDnDR+cm9J+9QhXmREyIfv0pji9ejCQ==
|
|
||||||
dependencies:
|
|
||||||
mimic-response "^3.1.0"
|
|
||||||
|
|
||||||
dedent@^0.7.0:
|
dedent@^0.7.0:
|
||||||
version "0.7.0"
|
version "0.7.0"
|
||||||
resolved "https://registry.yarnpkg.com/dedent/-/dedent-0.7.0.tgz#2495ddbaf6eb874abb0e1be9df22d2e5a544326c"
|
resolved "https://registry.yarnpkg.com/dedent/-/dedent-0.7.0.tgz#2495ddbaf6eb874abb0e1be9df22d2e5a544326c"
|
||||||
@@ -2531,11 +2463,6 @@ defaults@^1.0.3:
|
|||||||
dependencies:
|
dependencies:
|
||||||
clone "^1.0.2"
|
clone "^1.0.2"
|
||||||
|
|
||||||
defer-to-connect@^2.0.0:
|
|
||||||
version "2.0.1"
|
|
||||||
resolved "https://registry.yarnpkg.com/defer-to-connect/-/defer-to-connect-2.0.1.tgz#8016bdb4143e4632b77a3449c6236277de520587"
|
|
||||||
integrity sha512-4tvttepXG1VaYGrRibk5EwJd1t4udunSOVMdLSAL6mId1ix438oPwPZMALY41FCijukO1L0twNcGsdzS7dHgDg==
|
|
||||||
|
|
||||||
define-properties@^1.1.3:
|
define-properties@^1.1.3:
|
||||||
version "1.1.3"
|
version "1.1.3"
|
||||||
resolved "https://registry.yarnpkg.com/define-properties/-/define-properties-1.1.3.tgz#cf88da6cbee26fe6db7094f61d870cbd84cee9f1"
|
resolved "https://registry.yarnpkg.com/define-properties/-/define-properties-1.1.3.tgz#cf88da6cbee26fe6db7094f61d870cbd84cee9f1"
|
||||||
@@ -2716,13 +2643,6 @@ encodeurl@^1.0.2, encodeurl@~1.0.2:
|
|||||||
resolved "https://registry.yarnpkg.com/encodeurl/-/encodeurl-1.0.2.tgz#ad3ff4c86ec2d029322f5a02c3a9a606c95b3f59"
|
resolved "https://registry.yarnpkg.com/encodeurl/-/encodeurl-1.0.2.tgz#ad3ff4c86ec2d029322f5a02c3a9a606c95b3f59"
|
||||||
integrity sha1-rT/0yG7C0CkyL1oCw6mmBslbP1k=
|
integrity sha1-rT/0yG7C0CkyL1oCw6mmBslbP1k=
|
||||||
|
|
||||||
end-of-stream@^1.1.0:
|
|
||||||
version "1.4.4"
|
|
||||||
resolved "https://registry.yarnpkg.com/end-of-stream/-/end-of-stream-1.4.4.tgz#5ae64a5f45057baf3626ec14da0ca5e4b2431eb0"
|
|
||||||
integrity sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==
|
|
||||||
dependencies:
|
|
||||||
once "^1.4.0"
|
|
||||||
|
|
||||||
enquirer@^2.3.5:
|
enquirer@^2.3.5:
|
||||||
version "2.3.6"
|
version "2.3.6"
|
||||||
resolved "https://registry.yarnpkg.com/enquirer/-/enquirer-2.3.6.tgz#2a7fe5dd634a1e4125a975ec994ff5456dc3734d"
|
resolved "https://registry.yarnpkg.com/enquirer/-/enquirer-2.3.6.tgz#2a7fe5dd634a1e4125a975ec994ff5456dc3734d"
|
||||||
@@ -3416,13 +3336,6 @@ get-package-type@^0.1.0:
|
|||||||
resolved "https://registry.yarnpkg.com/get-package-type/-/get-package-type-0.1.0.tgz#8de2d803cff44df3bc6c456e6668b36c3926e11a"
|
resolved "https://registry.yarnpkg.com/get-package-type/-/get-package-type-0.1.0.tgz#8de2d803cff44df3bc6c456e6668b36c3926e11a"
|
||||||
integrity sha512-pjzuKtY64GYfWizNAJ0fr9VqttZkNiK2iS430LtIHzjBEr6bX8Am2zm4sW4Ro5wjWW5cAlRL1qAMTcXbjNAO2Q==
|
integrity sha512-pjzuKtY64GYfWizNAJ0fr9VqttZkNiK2iS430LtIHzjBEr6bX8Am2zm4sW4Ro5wjWW5cAlRL1qAMTcXbjNAO2Q==
|
||||||
|
|
||||||
get-stream@^5.1.0:
|
|
||||||
version "5.2.0"
|
|
||||||
resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-5.2.0.tgz#4966a1795ee5ace65e706c4b7beb71257d6e22d3"
|
|
||||||
integrity sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==
|
|
||||||
dependencies:
|
|
||||||
pump "^3.0.0"
|
|
||||||
|
|
||||||
get-stream@^6.0.0:
|
get-stream@^6.0.0:
|
||||||
version "6.0.1"
|
version "6.0.1"
|
||||||
resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-6.0.1.tgz#a262d8eef67aced57c2852ad6167526a43cbf7b7"
|
resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-6.0.1.tgz#a262d8eef67aced57c2852ad6167526a43cbf7b7"
|
||||||
@@ -3511,23 +3424,6 @@ globby@^11.0.2, globby@^11.0.3:
|
|||||||
merge2 "^1.3.0"
|
merge2 "^1.3.0"
|
||||||
slash "^3.0.0"
|
slash "^3.0.0"
|
||||||
|
|
||||||
got@^11.8.2:
|
|
||||||
version "11.8.3"
|
|
||||||
resolved "https://registry.yarnpkg.com/got/-/got-11.8.3.tgz#f496c8fdda5d729a90b4905d2b07dbd148170770"
|
|
||||||
integrity sha512-7gtQ5KiPh1RtGS9/Jbv1ofDpBFuq42gyfEib+ejaRBJuj/3tQFeR5+gw57e4ipaU8c/rCjvX6fkQz2lyDlGAOg==
|
|
||||||
dependencies:
|
|
||||||
"@sindresorhus/is" "^4.0.0"
|
|
||||||
"@szmarczak/http-timer" "^4.0.5"
|
|
||||||
"@types/cacheable-request" "^6.0.1"
|
|
||||||
"@types/responselike" "^1.0.0"
|
|
||||||
cacheable-lookup "^5.0.3"
|
|
||||||
cacheable-request "^7.0.2"
|
|
||||||
decompress-response "^6.0.0"
|
|
||||||
http2-wrapper "^1.0.0-beta.5.2"
|
|
||||||
lowercase-keys "^2.0.0"
|
|
||||||
p-cancelable "^2.0.0"
|
|
||||||
responselike "^2.0.0"
|
|
||||||
|
|
||||||
graceful-fs@^4.1.2, graceful-fs@^4.2.4:
|
graceful-fs@^4.1.2, graceful-fs@^4.2.4:
|
||||||
version "4.2.8"
|
version "4.2.8"
|
||||||
resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.8.tgz#e412b8d33f5e006593cbd3cee6df9f2cebbe802a"
|
resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.8.tgz#e412b8d33f5e006593cbd3cee6df9f2cebbe802a"
|
||||||
@@ -3692,11 +3588,6 @@ http-assert@^1.3.0:
|
|||||||
deep-equal "~1.0.1"
|
deep-equal "~1.0.1"
|
||||||
http-errors "~1.8.0"
|
http-errors "~1.8.0"
|
||||||
|
|
||||||
http-cache-semantics@^4.0.0:
|
|
||||||
version "4.1.0"
|
|
||||||
resolved "https://registry.yarnpkg.com/http-cache-semantics/-/http-cache-semantics-4.1.0.tgz#49e91c5cbf36c9b94bcfcd71c23d5249ec74e390"
|
|
||||||
integrity sha512-carPklcUh7ROWRK7Cv27RPtdhYhUsela/ue5/jKzjegVvXDqM2ILE9Q2BGn9JZJh1g87cp56su/FgQSzcWS8cQ==
|
|
||||||
|
|
||||||
http-errors@1.7.2:
|
http-errors@1.7.2:
|
||||||
version "1.7.2"
|
version "1.7.2"
|
||||||
resolved "https://registry.yarnpkg.com/http-errors/-/http-errors-1.7.2.tgz#4f5029cf13239f31036e5b2e55292bcfbcc85c8f"
|
resolved "https://registry.yarnpkg.com/http-errors/-/http-errors-1.7.2.tgz#4f5029cf13239f31036e5b2e55292bcfbcc85c8f"
|
||||||
@@ -3748,14 +3639,6 @@ http-signature@~1.2.0:
|
|||||||
jsprim "^1.2.2"
|
jsprim "^1.2.2"
|
||||||
sshpk "^1.7.0"
|
sshpk "^1.7.0"
|
||||||
|
|
||||||
http2-wrapper@^1.0.0-beta.5.2:
|
|
||||||
version "1.0.3"
|
|
||||||
resolved "https://registry.yarnpkg.com/http2-wrapper/-/http2-wrapper-1.0.3.tgz#b8f55e0c1f25d4ebd08b3b0c2c079f9590800b3d"
|
|
||||||
integrity sha512-V+23sDMr12Wnz7iTcDeJr3O6AIxlnvT/bmaAAAP/Xda35C90p9599p0F1eHR/N1KILWSoWVAiOMFjBBXaXSMxg==
|
|
||||||
dependencies:
|
|
||||||
quick-lru "^5.1.1"
|
|
||||||
resolve-alpn "^1.0.0"
|
|
||||||
|
|
||||||
https-proxy-agent@^5.0.0:
|
https-proxy-agent@^5.0.0:
|
||||||
version "5.0.0"
|
version "5.0.0"
|
||||||
resolved "https://registry.yarnpkg.com/https-proxy-agent/-/https-proxy-agent-5.0.0.tgz#e2a90542abb68a762e0a0850f6c9edadfd8506b2"
|
resolved "https://registry.yarnpkg.com/https-proxy-agent/-/https-proxy-agent-5.0.0.tgz#e2a90542abb68a762e0a0850f6c9edadfd8506b2"
|
||||||
@@ -4059,14 +3942,6 @@ isexe@^2.0.0:
|
|||||||
resolved "https://registry.yarnpkg.com/isexe/-/isexe-2.0.0.tgz#e8fbf374dc556ff8947a10dcb0572d633f2cfa10"
|
resolved "https://registry.yarnpkg.com/isexe/-/isexe-2.0.0.tgz#e8fbf374dc556ff8947a10dcb0572d633f2cfa10"
|
||||||
integrity sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=
|
integrity sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=
|
||||||
|
|
||||||
isomorphic-fetch@^3.0.0:
|
|
||||||
version "3.0.0"
|
|
||||||
resolved "https://registry.yarnpkg.com/isomorphic-fetch/-/isomorphic-fetch-3.0.0.tgz#0267b005049046d2421207215d45d6a262b8b8b4"
|
|
||||||
integrity sha512-qvUtwJ3j6qwsF3jLxkZ72qCgjMysPzDfeV240JHiGZsANBYd+EEuu35v7dfrJ9Up0Ak07D7GGSkGhCHTqg/5wA==
|
|
||||||
dependencies:
|
|
||||||
node-fetch "^2.6.1"
|
|
||||||
whatwg-fetch "^3.4.1"
|
|
||||||
|
|
||||||
isstream@~0.1.2:
|
isstream@~0.1.2:
|
||||||
version "0.1.2"
|
version "0.1.2"
|
||||||
resolved "https://registry.yarnpkg.com/isstream/-/isstream-0.1.2.tgz#47e63f7af55afa6f92e1500e690eb8b8529c099a"
|
resolved "https://registry.yarnpkg.com/isstream/-/isstream-0.1.2.tgz#47e63f7af55afa6f92e1500e690eb8b8529c099a"
|
||||||
@@ -4606,11 +4481,6 @@ json-beautify@^1.1.1:
|
|||||||
resolved "https://registry.yarnpkg.com/json-beautify/-/json-beautify-1.1.1.tgz#8a1ed511ad5d52ca63ed29f7c61896c6a6ebbb9f"
|
resolved "https://registry.yarnpkg.com/json-beautify/-/json-beautify-1.1.1.tgz#8a1ed511ad5d52ca63ed29f7c61896c6a6ebbb9f"
|
||||||
integrity sha512-17j+Hk2lado0xqKtUcyAjK0AtoHnPSIgktWRsEXgdFQFG9UnaGw6CHa0J7xsvulxRpFl6CrkDFHght1p5ZJc4A==
|
integrity sha512-17j+Hk2lado0xqKtUcyAjK0AtoHnPSIgktWRsEXgdFQFG9UnaGw6CHa0J7xsvulxRpFl6CrkDFHght1p5ZJc4A==
|
||||||
|
|
||||||
json-buffer@3.0.1:
|
|
||||||
version "3.0.1"
|
|
||||||
resolved "https://registry.yarnpkg.com/json-buffer/-/json-buffer-3.0.1.tgz#9338802a30d3b6605fbe0613e094008ca8c05a13"
|
|
||||||
integrity sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==
|
|
||||||
|
|
||||||
json-schema-traverse@^0.4.1:
|
json-schema-traverse@^0.4.1:
|
||||||
version "0.4.1"
|
version "0.4.1"
|
||||||
resolved "https://registry.yarnpkg.com/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz#69f6a87d9513ab8bb8fe63bdb0979c448e684660"
|
resolved "https://registry.yarnpkg.com/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz#69f6a87d9513ab8bb8fe63bdb0979c448e684660"
|
||||||
@@ -4667,13 +4537,6 @@ keygrip@~1.1.0:
|
|||||||
dependencies:
|
dependencies:
|
||||||
tsscmp "1.0.6"
|
tsscmp "1.0.6"
|
||||||
|
|
||||||
keyv@^4.0.0:
|
|
||||||
version "4.0.4"
|
|
||||||
resolved "https://registry.yarnpkg.com/keyv/-/keyv-4.0.4.tgz#f040b236ea2b06ed15ed86fbef8407e1a1c8e376"
|
|
||||||
integrity sha512-vqNHbAc8BBsxk+7QBYLW0Y219rWcClspR6WSeoHYKG5mnsSoOH+BL1pWq02DDCVdvvuUny5rkBlzMRzoqc+GIg==
|
|
||||||
dependencies:
|
|
||||||
json-buffer "3.0.1"
|
|
||||||
|
|
||||||
kleur@^3.0.3:
|
kleur@^3.0.3:
|
||||||
version "3.0.3"
|
version "3.0.3"
|
||||||
resolved "https://registry.yarnpkg.com/kleur/-/kleur-3.0.3.tgz#a79c9ecc86ee1ce3fa6206d1216c501f147fc07e"
|
resolved "https://registry.yarnpkg.com/kleur/-/kleur-3.0.3.tgz#a79c9ecc86ee1ce3fa6206d1216c501f147fc07e"
|
||||||
@@ -4906,11 +4769,6 @@ long@^4.0.0:
|
|||||||
resolved "https://registry.yarnpkg.com/long/-/long-4.0.0.tgz#9a7b71cfb7d361a194ea555241c92f7468d5bf28"
|
resolved "https://registry.yarnpkg.com/long/-/long-4.0.0.tgz#9a7b71cfb7d361a194ea555241c92f7468d5bf28"
|
||||||
integrity sha512-XsP+KhQif4bjX1kbuSiySJFNAehNxgLb6hPRGJ9QsUr8ajHkuXGdrHmFUTUUXhDwVX2R5bY4JNZEwbUiMhV+MA==
|
integrity sha512-XsP+KhQif4bjX1kbuSiySJFNAehNxgLb6hPRGJ9QsUr8ajHkuXGdrHmFUTUUXhDwVX2R5bY4JNZEwbUiMhV+MA==
|
||||||
|
|
||||||
lowercase-keys@^2.0.0:
|
|
||||||
version "2.0.0"
|
|
||||||
resolved "https://registry.yarnpkg.com/lowercase-keys/-/lowercase-keys-2.0.0.tgz#2603e78b7b4b0006cbca2fbcc8a3202558ac9479"
|
|
||||||
integrity sha512-tqNXrS78oMOE73NMxK4EMLQsQowWf8jKooH9g7xPavRT706R6bkQJ6DY2Te7QukaZsulxa30wQ7bk0pm4XiHmA==
|
|
||||||
|
|
||||||
lru-cache@^6.0.0:
|
lru-cache@^6.0.0:
|
||||||
version "6.0.0"
|
version "6.0.0"
|
||||||
resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-6.0.0.tgz#6d6fe6570ebd96aaf90fcad1dafa3b2566db3a94"
|
resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-6.0.0.tgz#6d6fe6570ebd96aaf90fcad1dafa3b2566db3a94"
|
||||||
@@ -5031,16 +4889,6 @@ mimic-fn@^2.1.0:
|
|||||||
resolved "https://registry.yarnpkg.com/mimic-fn/-/mimic-fn-2.1.0.tgz#7ed2c2ccccaf84d3ffcb7a69b57711fc2083401b"
|
resolved "https://registry.yarnpkg.com/mimic-fn/-/mimic-fn-2.1.0.tgz#7ed2c2ccccaf84d3ffcb7a69b57711fc2083401b"
|
||||||
integrity sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==
|
integrity sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==
|
||||||
|
|
||||||
mimic-response@^1.0.0:
|
|
||||||
version "1.0.1"
|
|
||||||
resolved "https://registry.yarnpkg.com/mimic-response/-/mimic-response-1.0.1.tgz#4923538878eef42063cb8a3e3b0798781487ab1b"
|
|
||||||
integrity sha512-j5EctnkH7amfV/q5Hgmoal1g2QHFJRraOtmx0JpIqkxhBhI/lJSl1nMpQ45hVarwNETOoWEimndZ4QK0RHxuxQ==
|
|
||||||
|
|
||||||
mimic-response@^3.1.0:
|
|
||||||
version "3.1.0"
|
|
||||||
resolved "https://registry.yarnpkg.com/mimic-response/-/mimic-response-3.1.0.tgz#2d1d59af9c1b129815accc2c46a022a5ce1fa3c9"
|
|
||||||
integrity sha512-z0yWI+4FDrrweS8Zmt4Ej5HdJmky15+L2e6Wgn3+iK5fWzb6T3fhNFq2+MeTRb064c6Wr4N/wv0DzQTjNzHNGQ==
|
|
||||||
|
|
||||||
minimalistic-assert@^1.0.0, minimalistic-assert@^1.0.1:
|
minimalistic-assert@^1.0.0, minimalistic-assert@^1.0.1:
|
||||||
version "1.0.1"
|
version "1.0.1"
|
||||||
resolved "https://registry.yarnpkg.com/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz#2e194de044626d4a10e7f7fbc00ce73e83e4d5c7"
|
resolved "https://registry.yarnpkg.com/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz#2e194de044626d4a10e7f7fbc00ce73e83e4d5c7"
|
||||||
@@ -5252,11 +5100,6 @@ normalize-path@^3.0.0, normalize-path@~3.0.0:
|
|||||||
resolved "https://registry.yarnpkg.com/normalize-path/-/normalize-path-3.0.0.tgz#0dcd69ff23a1c9b11fd0978316644a0388216a65"
|
resolved "https://registry.yarnpkg.com/normalize-path/-/normalize-path-3.0.0.tgz#0dcd69ff23a1c9b11fd0978316644a0388216a65"
|
||||||
integrity sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==
|
integrity sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==
|
||||||
|
|
||||||
normalize-url@^6.0.1:
|
|
||||||
version "6.1.0"
|
|
||||||
resolved "https://registry.yarnpkg.com/normalize-url/-/normalize-url-6.1.0.tgz#40d0885b535deffe3f3147bec877d05fe4c5668a"
|
|
||||||
integrity sha512-DlL+XwOy3NxAQ8xuC0okPgK46iuVNAK01YN7RueYBqqFeGsBjV9XmCAzAdgt+667bCl5kPh9EqKKDwnaPG1I7A==
|
|
||||||
|
|
||||||
npm-bundled@^1.0.1:
|
npm-bundled@^1.0.1:
|
||||||
version "1.1.2"
|
version "1.1.2"
|
||||||
resolved "https://registry.yarnpkg.com/npm-bundled/-/npm-bundled-1.1.2.tgz#944c78789bd739035b70baa2ca5cc32b8d860bc1"
|
resolved "https://registry.yarnpkg.com/npm-bundled/-/npm-bundled-1.1.2.tgz#944c78789bd739035b70baa2ca5cc32b8d860bc1"
|
||||||
@@ -5363,7 +5206,7 @@ on-finished@^2.3.0, on-finished@~2.3.0:
|
|||||||
dependencies:
|
dependencies:
|
||||||
ee-first "1.1.1"
|
ee-first "1.1.1"
|
||||||
|
|
||||||
once@^1.3.0, once@^1.3.1, once@^1.4.0:
|
once@^1.3.0, once@^1.4.0:
|
||||||
version "1.4.0"
|
version "1.4.0"
|
||||||
resolved "https://registry.yarnpkg.com/once/-/once-1.4.0.tgz#583b1aa775961d4b113ac17d9c50baef9dd76bd1"
|
resolved "https://registry.yarnpkg.com/once/-/once-1.4.0.tgz#583b1aa775961d4b113ac17d9c50baef9dd76bd1"
|
||||||
integrity sha1-WDsap3WWHUsROsF9nFC6753Xa9E=
|
integrity sha1-WDsap3WWHUsROsF9nFC6753Xa9E=
|
||||||
@@ -5439,11 +5282,6 @@ osenv@0, osenv@^0.1.4:
|
|||||||
os-homedir "^1.0.0"
|
os-homedir "^1.0.0"
|
||||||
os-tmpdir "^1.0.0"
|
os-tmpdir "^1.0.0"
|
||||||
|
|
||||||
p-cancelable@^2.0.0:
|
|
||||||
version "2.1.1"
|
|
||||||
resolved "https://registry.yarnpkg.com/p-cancelable/-/p-cancelable-2.1.1.tgz#aab7fbd416582fa32a3db49859c122487c5ed2cf"
|
|
||||||
integrity sha512-BZOr3nRQHOntUjTrH8+Lh54smKHoHyur8We1V8DSMVrl5A2malOOwuJRnKRDjSnkoeBh4at6BwEnb5I7Jl31wg==
|
|
||||||
|
|
||||||
p-limit@^2.2.0:
|
p-limit@^2.2.0:
|
||||||
version "2.3.0"
|
version "2.3.0"
|
||||||
resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-2.3.0.tgz#3dd33c647a214fdfffd835933eb086da0dc21db1"
|
resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-2.3.0.tgz#3dd33c647a214fdfffd835933eb086da0dc21db1"
|
||||||
@@ -5463,6 +5301,11 @@ p-try@^2.0.0:
|
|||||||
resolved "https://registry.yarnpkg.com/p-try/-/p-try-2.2.0.tgz#cb2868540e313d61de58fafbe35ce9004d5540e6"
|
resolved "https://registry.yarnpkg.com/p-try/-/p-try-2.2.0.tgz#cb2868540e313d61de58fafbe35ce9004d5540e6"
|
||||||
integrity sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==
|
integrity sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==
|
||||||
|
|
||||||
|
packet-reader@1.0.0:
|
||||||
|
version "1.0.0"
|
||||||
|
resolved "https://registry.yarnpkg.com/packet-reader/-/packet-reader-1.0.0.tgz#9238e5480dedabacfe1fe3f2771063f164157d74"
|
||||||
|
integrity sha512-HAKu/fG3HpHFO0AA8WE8q2g+gBJaZ9MG7fcKk+IJPLTGAD6Psw4443l+9DGRbOIh3/aXr7Phy0TjilYivJo5XQ==
|
||||||
|
|
||||||
parent-module@^1.0.0:
|
parent-module@^1.0.0:
|
||||||
version "1.0.1"
|
version "1.0.1"
|
||||||
resolved "https://registry.yarnpkg.com/parent-module/-/parent-module-1.0.1.tgz#691d2709e78c79fae3a156622452d00762caaaa2"
|
resolved "https://registry.yarnpkg.com/parent-module/-/parent-module-1.0.1.tgz#691d2709e78c79fae3a156622452d00762caaaa2"
|
||||||
@@ -5544,11 +5387,57 @@ performance-now@^2.1.0:
|
|||||||
resolved "https://registry.yarnpkg.com/performance-now/-/performance-now-2.1.0.tgz#6309f4e0e5fa913ec1c69307ae364b4b377c9e7b"
|
resolved "https://registry.yarnpkg.com/performance-now/-/performance-now-2.1.0.tgz#6309f4e0e5fa913ec1c69307ae364b4b377c9e7b"
|
||||||
integrity sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns=
|
integrity sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns=
|
||||||
|
|
||||||
pg-connection-string@2.5.0:
|
pg-connection-string@2.5.0, pg-connection-string@^2.5.0:
|
||||||
version "2.5.0"
|
version "2.5.0"
|
||||||
resolved "https://registry.yarnpkg.com/pg-connection-string/-/pg-connection-string-2.5.0.tgz#538cadd0f7e603fc09a12590f3b8a452c2c0cf34"
|
resolved "https://registry.yarnpkg.com/pg-connection-string/-/pg-connection-string-2.5.0.tgz#538cadd0f7e603fc09a12590f3b8a452c2c0cf34"
|
||||||
integrity sha512-r5o/V/ORTA6TmUnyWZR9nCj1klXCO2CEKNRlVuJptZe85QuhFayC7WeMic7ndayT5IRIR0S0xFxFi2ousartlQ==
|
integrity sha512-r5o/V/ORTA6TmUnyWZR9nCj1klXCO2CEKNRlVuJptZe85QuhFayC7WeMic7ndayT5IRIR0S0xFxFi2ousartlQ==
|
||||||
|
|
||||||
|
pg-int8@1.0.1:
|
||||||
|
version "1.0.1"
|
||||||
|
resolved "https://registry.yarnpkg.com/pg-int8/-/pg-int8-1.0.1.tgz#943bd463bf5b71b4170115f80f8efc9a0c0eb78c"
|
||||||
|
integrity sha512-WCtabS6t3c8SkpDBUlb1kjOs7l66xsGdKpIPZsg4wR+B3+u9UAum2odSsF9tnvxg80h4ZxLWMy4pRjOsFIqQpw==
|
||||||
|
|
||||||
|
pg-pool@^3.4.1:
|
||||||
|
version "3.4.1"
|
||||||
|
resolved "https://registry.yarnpkg.com/pg-pool/-/pg-pool-3.4.1.tgz#0e71ce2c67b442a5e862a9c182172c37eda71e9c"
|
||||||
|
integrity sha512-TVHxR/gf3MeJRvchgNHxsYsTCHQ+4wm3VIHSS19z8NC0+gioEhq1okDY1sm/TYbfoP6JLFx01s0ShvZ3puP/iQ==
|
||||||
|
|
||||||
|
pg-protocol@^1.5.0:
|
||||||
|
version "1.5.0"
|
||||||
|
resolved "https://registry.yarnpkg.com/pg-protocol/-/pg-protocol-1.5.0.tgz#b5dd452257314565e2d54ab3c132adc46565a6a0"
|
||||||
|
integrity sha512-muRttij7H8TqRNu/DxrAJQITO4Ac7RmX3Klyr/9mJEOBeIpgnF8f9jAfRz5d3XwQZl5qBjF9gLsUtMPJE0vezQ==
|
||||||
|
|
||||||
|
pg-types@^2.1.0:
|
||||||
|
version "2.2.0"
|
||||||
|
resolved "https://registry.yarnpkg.com/pg-types/-/pg-types-2.2.0.tgz#2d0250d636454f7cfa3b6ae0382fdfa8063254a3"
|
||||||
|
integrity sha512-qTAAlrEsl8s4OiEQY69wDvcMIdQN6wdz5ojQiOy6YRMuynxenON0O5oCpJI6lshc6scgAY8qvJ2On/p+CXY0GA==
|
||||||
|
dependencies:
|
||||||
|
pg-int8 "1.0.1"
|
||||||
|
postgres-array "~2.0.0"
|
||||||
|
postgres-bytea "~1.0.0"
|
||||||
|
postgres-date "~1.0.4"
|
||||||
|
postgres-interval "^1.1.0"
|
||||||
|
|
||||||
|
pg@^8.7.1:
|
||||||
|
version "8.7.1"
|
||||||
|
resolved "https://registry.yarnpkg.com/pg/-/pg-8.7.1.tgz#9ea9d1ec225980c36f94e181d009ab9f4ce4c471"
|
||||||
|
integrity sha512-7bdYcv7V6U3KAtWjpQJJBww0UEsWuh4yQ/EjNf2HeO/NnvKjpvhEIe/A/TleP6wtmSKnUnghs5A9jUoK6iDdkA==
|
||||||
|
dependencies:
|
||||||
|
buffer-writer "2.0.0"
|
||||||
|
packet-reader "1.0.0"
|
||||||
|
pg-connection-string "^2.5.0"
|
||||||
|
pg-pool "^3.4.1"
|
||||||
|
pg-protocol "^1.5.0"
|
||||||
|
pg-types "^2.1.0"
|
||||||
|
pgpass "1.x"
|
||||||
|
|
||||||
|
pgpass@1.x:
|
||||||
|
version "1.0.5"
|
||||||
|
resolved "https://registry.yarnpkg.com/pgpass/-/pgpass-1.0.5.tgz#9b873e4a564bb10fa7a7dbd55312728d422a223d"
|
||||||
|
integrity sha512-FdW9r/jQZhSeohs1Z3sI1yxFQNFvMcnmfuj4WBMUTxOrAyLMaTcE1aAMBiTlbMNaXvBCQuVi0R7hd8udDSP7ug==
|
||||||
|
dependencies:
|
||||||
|
split2 "^4.1.0"
|
||||||
|
|
||||||
picocolors@^1.0.0:
|
picocolors@^1.0.0:
|
||||||
version "1.0.0"
|
version "1.0.0"
|
||||||
resolved "https://registry.yarnpkg.com/picocolors/-/picocolors-1.0.0.tgz#cb5bdc74ff3f51892236eaf79d68bc44564ab81c"
|
resolved "https://registry.yarnpkg.com/picocolors/-/picocolors-1.0.0.tgz#cb5bdc74ff3f51892236eaf79d68bc44564ab81c"
|
||||||
@@ -5571,6 +5460,28 @@ pkg-dir@^4.2.0:
|
|||||||
dependencies:
|
dependencies:
|
||||||
find-up "^4.0.0"
|
find-up "^4.0.0"
|
||||||
|
|
||||||
|
postgres-array@~2.0.0:
|
||||||
|
version "2.0.0"
|
||||||
|
resolved "https://registry.yarnpkg.com/postgres-array/-/postgres-array-2.0.0.tgz#48f8fce054fbc69671999329b8834b772652d82e"
|
||||||
|
integrity sha512-VpZrUqU5A69eQyW2c5CA1jtLecCsN2U/bD6VilrFDWq5+5UIEVO7nazS3TEcHf1zuPYO/sqGvUvW62g86RXZuA==
|
||||||
|
|
||||||
|
postgres-bytea@~1.0.0:
|
||||||
|
version "1.0.0"
|
||||||
|
resolved "https://registry.yarnpkg.com/postgres-bytea/-/postgres-bytea-1.0.0.tgz#027b533c0aa890e26d172d47cf9ccecc521acd35"
|
||||||
|
integrity sha1-AntTPAqokOJtFy1Hz5zOzFIazTU=
|
||||||
|
|
||||||
|
postgres-date@~1.0.4:
|
||||||
|
version "1.0.7"
|
||||||
|
resolved "https://registry.yarnpkg.com/postgres-date/-/postgres-date-1.0.7.tgz#51bc086006005e5061c591cee727f2531bf641a8"
|
||||||
|
integrity sha512-suDmjLVQg78nMK2UZ454hAG+OAW+HQPZ6n++TNDUX+L0+uUlLywnoxJKDou51Zm+zTCjrCl0Nq6J9C5hP9vK/Q==
|
||||||
|
|
||||||
|
postgres-interval@^1.1.0:
|
||||||
|
version "1.2.0"
|
||||||
|
resolved "https://registry.yarnpkg.com/postgres-interval/-/postgres-interval-1.2.0.tgz#b460c82cb1587507788819a06aa0fffdb3544695"
|
||||||
|
integrity sha512-9ZhXKM/rw350N1ovuWHbGxnGh/SNJ4cnxHiM0rxE4VN41wsg8P8zWn9hv/buK00RP4WvlOyr/RBDiptyxVbkZQ==
|
||||||
|
dependencies:
|
||||||
|
xtend "^4.0.0"
|
||||||
|
|
||||||
prelude-ls@^1.2.1:
|
prelude-ls@^1.2.1:
|
||||||
version "1.2.1"
|
version "1.2.1"
|
||||||
resolved "https://registry.yarnpkg.com/prelude-ls/-/prelude-ls-1.2.1.tgz#debc6489d7a6e6b0e7611888cec880337d316396"
|
resolved "https://registry.yarnpkg.com/prelude-ls/-/prelude-ls-1.2.1.tgz#debc6489d7a6e6b0e7611888cec880337d316396"
|
||||||
@@ -5646,14 +5557,6 @@ psl@^1.1.28, psl@^1.1.33:
|
|||||||
resolved "https://registry.yarnpkg.com/psl/-/psl-1.8.0.tgz#9326f8bcfb013adcc005fdff056acce020e51c24"
|
resolved "https://registry.yarnpkg.com/psl/-/psl-1.8.0.tgz#9326f8bcfb013adcc005fdff056acce020e51c24"
|
||||||
integrity sha512-RIdOzyoavK+hA18OGGWDqUTsCLhtA7IcZ/6NCs4fFJaHBDab+pDDmDIByWFRQJq2Cd7r1OoQxBGKOaztq+hjIQ==
|
integrity sha512-RIdOzyoavK+hA18OGGWDqUTsCLhtA7IcZ/6NCs4fFJaHBDab+pDDmDIByWFRQJq2Cd7r1OoQxBGKOaztq+hjIQ==
|
||||||
|
|
||||||
pump@^3.0.0:
|
|
||||||
version "3.0.0"
|
|
||||||
resolved "https://registry.yarnpkg.com/pump/-/pump-3.0.0.tgz#b4a2116815bde2f4e1ea602354e8c75565107a64"
|
|
||||||
integrity sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==
|
|
||||||
dependencies:
|
|
||||||
end-of-stream "^1.1.0"
|
|
||||||
once "^1.3.1"
|
|
||||||
|
|
||||||
punycode@^2.1.0, punycode@^2.1.1:
|
punycode@^2.1.0, punycode@^2.1.1:
|
||||||
version "2.1.1"
|
version "2.1.1"
|
||||||
resolved "https://registry.yarnpkg.com/punycode/-/punycode-2.1.1.tgz#b58b010ac40c22c5657616c8d2c2c02c7bf479ec"
|
resolved "https://registry.yarnpkg.com/punycode/-/punycode-2.1.1.tgz#b58b010ac40c22c5657616c8d2c2c02c7bf479ec"
|
||||||
@@ -5681,11 +5584,6 @@ queue-microtask@^1.2.2:
|
|||||||
resolved "https://registry.yarnpkg.com/queue-microtask/-/queue-microtask-1.2.3.tgz#4929228bbc724dfac43e0efb058caf7b6cfb6243"
|
resolved "https://registry.yarnpkg.com/queue-microtask/-/queue-microtask-1.2.3.tgz#4929228bbc724dfac43e0efb058caf7b6cfb6243"
|
||||||
integrity sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==
|
integrity sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==
|
||||||
|
|
||||||
quick-lru@^5.1.1:
|
|
||||||
version "5.1.1"
|
|
||||||
resolved "https://registry.yarnpkg.com/quick-lru/-/quick-lru-5.1.1.tgz#366493e6b3e42a3a6885e2e99d18f80fb7a8c932"
|
|
||||||
integrity sha512-WuyALRjWPDGtt/wzJiadO5AXY+8hZ80hVpe6MyivgraREW751X3SbhRvG3eLKOYN+8VEvqLcf3wdnt44Z4S4SA==
|
|
||||||
|
|
||||||
randy@~1.5.1:
|
randy@~1.5.1:
|
||||||
version "1.5.1"
|
version "1.5.1"
|
||||||
resolved "https://registry.yarnpkg.com/randy/-/randy-1.5.1.tgz#e7dc086a0ecb8bef7d67356642cd2a33f962465c"
|
resolved "https://registry.yarnpkg.com/randy/-/randy-1.5.1.tgz#e7dc086a0ecb8bef7d67356642cd2a33f962465c"
|
||||||
@@ -5815,11 +5713,6 @@ require-from-string@^2.0.2:
|
|||||||
resolved "https://registry.yarnpkg.com/require-from-string/-/require-from-string-2.0.2.tgz#89a7fdd938261267318eafe14f9c32e598c36909"
|
resolved "https://registry.yarnpkg.com/require-from-string/-/require-from-string-2.0.2.tgz#89a7fdd938261267318eafe14f9c32e598c36909"
|
||||||
integrity sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==
|
integrity sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==
|
||||||
|
|
||||||
resolve-alpn@^1.0.0:
|
|
||||||
version "1.2.1"
|
|
||||||
resolved "https://registry.yarnpkg.com/resolve-alpn/-/resolve-alpn-1.2.1.tgz#b7adbdac3546aaaec20b45e7d8265927072726f9"
|
|
||||||
integrity sha512-0a1F4l73/ZFZOakJnQ3FvkJ2+gSTQWz/r2KE5OdDY0TxPm5h4GkqkWWfM47T7HsbnOtcJVEF4epCVy6u7Q3K+g==
|
|
||||||
|
|
||||||
resolve-cwd@^3.0.0:
|
resolve-cwd@^3.0.0:
|
||||||
version "3.0.0"
|
version "3.0.0"
|
||||||
resolved "https://registry.yarnpkg.com/resolve-cwd/-/resolve-cwd-3.0.0.tgz#0f0075f1bb2544766cf73ba6a6e2adfebcb13f2d"
|
resolved "https://registry.yarnpkg.com/resolve-cwd/-/resolve-cwd-3.0.0.tgz#0f0075f1bb2544766cf73ba6a6e2adfebcb13f2d"
|
||||||
@@ -5858,13 +5751,6 @@ resolve@^1.20.0, resolve@^1.9.0:
|
|||||||
is-core-module "^2.2.0"
|
is-core-module "^2.2.0"
|
||||||
path-parse "^1.0.6"
|
path-parse "^1.0.6"
|
||||||
|
|
||||||
responselike@^2.0.0:
|
|
||||||
version "2.0.0"
|
|
||||||
resolved "https://registry.yarnpkg.com/responselike/-/responselike-2.0.0.tgz#26391bcc3174f750f9a79eacc40a12a5c42d7723"
|
|
||||||
integrity sha512-xH48u3FTB9VsZw7R+vvgaKeLKzT6jOogbQhEe/jewwnZgzPcnyWui2Av6JpoYZF/91uueC+lqhWqeURw5/qhCw==
|
|
||||||
dependencies:
|
|
||||||
lowercase-keys "^2.0.0"
|
|
||||||
|
|
||||||
restore-cursor@^3.1.0:
|
restore-cursor@^3.1.0:
|
||||||
version "3.1.0"
|
version "3.1.0"
|
||||||
resolved "https://registry.yarnpkg.com/restore-cursor/-/restore-cursor-3.1.0.tgz#39f67c54b3a7a58cea5236d95cf0034239631f7e"
|
resolved "https://registry.yarnpkg.com/restore-cursor/-/restore-cursor-3.1.0.tgz#39f67c54b3a7a58cea5236d95cf0034239631f7e"
|
||||||
@@ -6177,6 +6063,11 @@ source-map@^0.7.3:
|
|||||||
resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.7.3.tgz#5302f8169031735226544092e64981f751750383"
|
resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.7.3.tgz#5302f8169031735226544092e64981f751750383"
|
||||||
integrity sha512-CkCj6giN3S+n9qrYiBTX5gystlENnRW5jZeNLHpe6aue+SrHcG5VYwujhW9s4dY31mEGsxBDrHR6oI69fTXsaQ==
|
integrity sha512-CkCj6giN3S+n9qrYiBTX5gystlENnRW5jZeNLHpe6aue+SrHcG5VYwujhW9s4dY31mEGsxBDrHR6oI69fTXsaQ==
|
||||||
|
|
||||||
|
split2@^4.1.0:
|
||||||
|
version "4.1.0"
|
||||||
|
resolved "https://registry.yarnpkg.com/split2/-/split2-4.1.0.tgz#101907a24370f85bb782f08adaabe4e281ecf809"
|
||||||
|
integrity sha512-VBiJxFkxiXRlUIeyMQi8s4hgvKCSjtknJv/LVYbrgALPwf5zSKmEwV9Lst25AkvMDnvxODugjdl6KZgwKM1WYQ==
|
||||||
|
|
||||||
split@0.3:
|
split@0.3:
|
||||||
version "0.3.3"
|
version "0.3.3"
|
||||||
resolved "https://registry.yarnpkg.com/split/-/split-0.3.3.tgz#cd0eea5e63a211dfff7eb0f091c4133e2d0dd28f"
|
resolved "https://registry.yarnpkg.com/split/-/split-0.3.3.tgz#cd0eea5e63a211dfff7eb0f091c4133e2d0dd28f"
|
||||||
@@ -6784,6 +6675,11 @@ underscore@>=1.3.1:
|
|||||||
resolved "https://registry.yarnpkg.com/underscore/-/underscore-1.13.2.tgz#276cea1e8b9722a8dbed0100a407dda572125881"
|
resolved "https://registry.yarnpkg.com/underscore/-/underscore-1.13.2.tgz#276cea1e8b9722a8dbed0100a407dda572125881"
|
||||||
integrity sha512-ekY1NhRzq0B08g4bGuX4wd2jZx5GnKz6mKSqFL4nqBlfyMGiG10gDFhDTMEfYmDL6Jy0FUIZp7wiRB+0BP7J2g==
|
integrity sha512-ekY1NhRzq0B08g4bGuX4wd2jZx5GnKz6mKSqFL4nqBlfyMGiG10gDFhDTMEfYmDL6Jy0FUIZp7wiRB+0BP7J2g==
|
||||||
|
|
||||||
|
undici@^4.12.1:
|
||||||
|
version "4.12.1"
|
||||||
|
resolved "https://registry.yarnpkg.com/undici/-/undici-4.12.1.tgz#3a7b5fb12f835a96a65397dd94578464b08d1c27"
|
||||||
|
integrity sha512-MSfap7YiQJqTPP12C11PFRs9raZuVicDbwsZHTjB0a8+SsCqt7KdUis54f373yf7ZFhJzAkGJLaKm0202OIxHg==
|
||||||
|
|
||||||
universalify@^0.1.2:
|
universalify@^0.1.2:
|
||||||
version "0.1.2"
|
version "0.1.2"
|
||||||
resolved "https://registry.yarnpkg.com/universalify/-/universalify-0.1.2.tgz#b646f69be3942dabcecc9d6639c80dc105efaa66"
|
resolved "https://registry.yarnpkg.com/universalify/-/universalify-0.1.2.tgz#b646f69be3942dabcecc9d6639c80dc105efaa66"
|
||||||
@@ -6910,11 +6806,6 @@ whatwg-encoding@^1.0.5:
|
|||||||
dependencies:
|
dependencies:
|
||||||
iconv-lite "0.4.24"
|
iconv-lite "0.4.24"
|
||||||
|
|
||||||
whatwg-fetch@^3.4.1:
|
|
||||||
version "3.6.2"
|
|
||||||
resolved "https://registry.yarnpkg.com/whatwg-fetch/-/whatwg-fetch-3.6.2.tgz#dced24f37f2624ed0281725d51d0e2e3fe677f8c"
|
|
||||||
integrity sha512-bJlen0FcuU/0EMLrdbJ7zOnW6ITZLrZMIarMUVmdKtsGvZna8vxKYaexICWPfZ8qwf9fzNq+UEIZrnSaApt6RA==
|
|
||||||
|
|
||||||
whatwg-mimetype@^2.3.0:
|
whatwg-mimetype@^2.3.0:
|
||||||
version "2.3.0"
|
version "2.3.0"
|
||||||
resolved "https://registry.yarnpkg.com/whatwg-mimetype/-/whatwg-mimetype-2.3.0.tgz#3d4b1e0312d2079879f826aff18dbeeca5960fbf"
|
resolved "https://registry.yarnpkg.com/whatwg-mimetype/-/whatwg-mimetype-2.3.0.tgz#3d4b1e0312d2079879f826aff18dbeeca5960fbf"
|
||||||
@@ -7021,7 +6912,7 @@ xss@^1.0.8:
|
|||||||
commander "^2.20.3"
|
commander "^2.20.3"
|
||||||
cssfilter "0.0.10"
|
cssfilter "0.0.10"
|
||||||
|
|
||||||
xtend@~4.0.1:
|
xtend@^4.0.0, xtend@~4.0.1:
|
||||||
version "4.0.2"
|
version "4.0.2"
|
||||||
resolved "https://registry.yarnpkg.com/xtend/-/xtend-4.0.2.tgz#bb72779f5fa465186b1f438f674fa347fdb5db54"
|
resolved "https://registry.yarnpkg.com/xtend/-/xtend-4.0.2.tgz#bb72779f5fa465186b1f438f674fa347fdb5db54"
|
||||||
integrity sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==
|
integrity sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==
|
||||||
|
|||||||
Reference in New Issue
Block a user