diff --git a/packages/erc20-watcher/package.json b/packages/erc20-watcher/package.json index b5aa0bb9..bcfe8cdd 100644 --- a/packages/erc20-watcher/package.json +++ b/packages/erc20-watcher/package.json @@ -42,7 +42,6 @@ "homepage": "https://github.com/vulcanize/watcher-ts#readme", "dependencies": { "@apollo/client": "^3.3.19", - "@ethersproject/providers": "5.3.0", "@types/lodash": "^4.14.168", "@vulcanize/util": "^0.1.0", "apollo-type-bigint": "^0.1.3", diff --git a/packages/erc20-watcher/src/cli/reset-cmds/job-queue.ts b/packages/erc20-watcher/src/cli/reset-cmds/job-queue.ts index a8766bcf..0f0bf3ce 100644 --- a/packages/erc20-watcher/src/cli/reset-cmds/job-queue.ts +++ b/packages/erc20-watcher/src/cli/reset-cmds/job-queue.ts @@ -4,7 +4,8 @@ import debug from 'debug'; -import { getConfig, resetJobs } from '@vulcanize/util'; +import { resetJobs, getConfig } from '@cerc-io/util'; +import { Config } from '@vulcanize/util'; const log = debug('vulcanize:reset-job-queue'); @@ -15,7 +16,7 @@ export const desc = 'Reset job queue'; export const builder = {}; export const handler = async (argv: any): Promise => { - const config = await getConfig(argv.configFile); + const config: Config = await getConfig(argv.configFile); await resetJobs(config); log('Job queue reset successfully'); diff --git a/packages/erc20-watcher/src/cli/reset-cmds/watcher.ts b/packages/erc20-watcher/src/cli/reset-cmds/watcher.ts index f394c994..1d5df364 100644 --- a/packages/erc20-watcher/src/cli/reset-cmds/watcher.ts +++ b/packages/erc20-watcher/src/cli/reset-cmds/watcher.ts @@ -3,17 +3,13 @@ // import debug from 'debug'; -import { MoreThan } from 'typeorm'; import assert from 'assert'; -import { getConfig, getResetConfig, JobQueue, resetJobs } from '@vulcanize/util'; +import { JobQueue, resetJobs, getConfig, initClients } from '@cerc-io/util'; +import { Config } from '@vulcanize/util'; import { Database } from '../../database'; import { Indexer } from '../../indexer'; -import { BlockProgress } from '../../entity/BlockProgress'; -import { Allowance } from '../../entity/Allowance'; -import { Balance } from '../../entity/Balance'; -import { Contract } from '../../entity/Contract'; const log = debug('vulcanize:reset-watcher'); @@ -28,13 +24,13 @@ export const builder = { }; export const handler = async (argv: any): Promise => { - const config = await getConfig(argv.configFile); + const config: Config = await getConfig(argv.configFile); await resetJobs(config); const { jobQueue: jobQueueConfig } = config; - const { dbConfig, serverConfig, ethClient, ethProvider } = await getResetConfig(config); + const { ethClient, ethProvider } = await initClients(config); // Initialize database. - const db = new Database(dbConfig); + const db = new Database(config.database); await db.init(); assert(jobQueueConfig, 'Missing job queue config'); @@ -44,7 +40,7 @@ export const handler = async (argv: any): Promise => { const jobQueue = new JobQueue({ dbConnectionString, maxCompletionLag: maxCompletionLagInSecs }); - const indexer = new Indexer(serverConfig, db, ethClient, ethProvider, jobQueue); + const indexer = new Indexer(config.server, db, ethClient, ethProvider, jobQueue); const syncStatus = await indexer.getSyncStatus(); assert(syncStatus, 'Missing syncStatus'); diff --git a/packages/erc20-watcher/src/cli/reset.ts b/packages/erc20-watcher/src/cli/reset.ts index 2ddebf10..95648c88 100644 --- a/packages/erc20-watcher/src/cli/reset.ts +++ b/packages/erc20-watcher/src/cli/reset.ts @@ -5,7 +5,7 @@ import 'reflect-metadata'; import debug from 'debug'; -import { getResetYargs } from '@vulcanize/util'; +import { getResetYargs } from '@cerc-io/util'; const log = debug('vulcanize:reset'); diff --git a/packages/erc20-watcher/src/cli/watch-contract.ts b/packages/erc20-watcher/src/cli/watch-contract.ts index 2ea92d31..4066d143 100644 --- a/packages/erc20-watcher/src/cli/watch-contract.ts +++ b/packages/erc20-watcher/src/cli/watch-contract.ts @@ -6,8 +6,8 @@ import assert from 'assert'; import yargs from 'yargs'; import 'reflect-metadata'; -import { DEFAULT_CONFIG_PATH } from '@cerc-io/util'; -import { Config, getConfig, getResetConfig, JobQueue } from '@vulcanize/util'; +import { DEFAULT_CONFIG_PATH, JobQueue, initClients, getConfig } from '@cerc-io/util'; +import { Config } from '@vulcanize/util'; import { Database } from '../database'; import { CONTRACT_KIND, Indexer } from '../indexer'; @@ -45,7 +45,7 @@ import { CONTRACT_KIND, Indexer } from '../indexer'; const config: Config = await getConfig(argv.configFile); const { database: dbConfig, jobQueue: jobQueueConfig } = config; - const { ethClient, ethProvider } = await getResetConfig(config); + const { ethClient, ethProvider } = await initClients(config); assert(dbConfig); diff --git a/packages/erc20-watcher/src/entity/Allowance.ts b/packages/erc20-watcher/src/entity/Allowance.ts index 1f60b087..04b55369 100644 --- a/packages/erc20-watcher/src/entity/Allowance.ts +++ b/packages/erc20-watcher/src/entity/Allowance.ts @@ -3,7 +3,8 @@ // import { Entity, PrimaryGeneratedColumn, Column, Index } from 'typeorm'; -import { bigintTransformer } from '@vulcanize/util'; + +import { bigintTransformer } from '@cerc-io/util'; @Entity() @Index(['blockHash', 'token', 'owner', 'spender'], { unique: true }) diff --git a/packages/erc20-watcher/src/entity/Balance.ts b/packages/erc20-watcher/src/entity/Balance.ts index c114fd40..b4deb2b4 100644 --- a/packages/erc20-watcher/src/entity/Balance.ts +++ b/packages/erc20-watcher/src/entity/Balance.ts @@ -3,7 +3,8 @@ // import { Entity, PrimaryGeneratedColumn, Column, Index } from 'typeorm'; -import { bigintTransformer } from '@vulcanize/util'; + +import { bigintTransformer } from '@cerc-io/util'; @Entity() @Index(['blockHash', 'token', 'owner'], { unique: true }) diff --git a/packages/erc20-watcher/src/entity/BlockProgress.ts b/packages/erc20-watcher/src/entity/BlockProgress.ts index a0f93553..41ac6b0b 100644 --- a/packages/erc20-watcher/src/entity/BlockProgress.ts +++ b/packages/erc20-watcher/src/entity/BlockProgress.ts @@ -4,7 +4,7 @@ import { Entity, PrimaryGeneratedColumn, Column, Index, CreateDateColumn } from 'typeorm'; -import { BlockProgressInterface } from '@vulcanize/util'; +import { BlockProgressInterface } from '@cerc-io/util'; @Entity() @Index(['blockHash'], { unique: true }) diff --git a/packages/erc20-watcher/src/entity/SyncStatus.ts b/packages/erc20-watcher/src/entity/SyncStatus.ts index 56bd3a2a..222e2c84 100644 --- a/packages/erc20-watcher/src/entity/SyncStatus.ts +++ b/packages/erc20-watcher/src/entity/SyncStatus.ts @@ -4,7 +4,7 @@ import { Entity, PrimaryGeneratedColumn, Column } from 'typeorm'; -import { SyncStatusInterface } from '@vulcanize/util'; +import { SyncStatusInterface } from '@cerc-io/util'; @Entity() export class SyncStatus implements SyncStatusInterface { diff --git a/packages/erc20-watcher/src/events.ts b/packages/erc20-watcher/src/events.ts index 51d087f5..1b87b433 100644 --- a/packages/erc20-watcher/src/events.ts +++ b/packages/erc20-watcher/src/events.ts @@ -7,14 +7,14 @@ import debug from 'debug'; import { PubSub } from 'graphql-subscriptions'; import { + EventWatcher as BaseEventWatcher, QUEUE_BLOCK_PROCESSING, QUEUE_EVENT_PROCESSING, - UNKNOWN_EVENT_NAME + UNKNOWN_EVENT_NAME, + JobQueue } from '@cerc-io/util'; import { EthClient } from '@cerc-io/ipld-eth-client'; import { - JobQueue, - EventWatcher as BaseEventWatcher, UpstreamConfig } from '@vulcanize/util'; diff --git a/packages/erc20-watcher/src/fill.ts b/packages/erc20-watcher/src/fill.ts index ad9bc436..9fd1c08e 100644 --- a/packages/erc20-watcher/src/fill.ts +++ b/packages/erc20-watcher/src/fill.ts @@ -9,10 +9,10 @@ import { hideBin } from 'yargs/helpers'; import debug from 'debug'; import { PubSub } from 'graphql-subscriptions'; -import { DEFAULT_CONFIG_PATH } from '@cerc-io/util'; +import { DEFAULT_CONFIG_PATH, JobQueue, getCustomProvider, getConfig, fillBlocks, DEFAULT_PREFETCH_BATCH_SIZE } from '@cerc-io/util'; import { EthClient } from '@cerc-io/ipld-eth-client'; import { getCache } from '@cerc-io/cache'; -import { getConfig, fillBlocks, JobQueue, getCustomProvider, DEFAULT_PREFETCH_BATCH_SIZE } from '@vulcanize/util'; +import { Config } from '@vulcanize/util'; import { Database } from './database'; import { Indexer } from './indexer'; @@ -63,7 +63,7 @@ export const main = async (): Promise => { } }).argv; - const config = await getConfig(argv.configFile); + const config: Config = await getConfig(argv.configFile); assert(config.server, 'Missing server config'); diff --git a/packages/erc20-watcher/src/indexer.ts b/packages/erc20-watcher/src/indexer.ts index f64bbc03..cd32caba 100644 --- a/packages/erc20-watcher/src/indexer.ts +++ b/packages/erc20-watcher/src/indexer.ts @@ -9,7 +9,7 @@ import { DeepPartial, FindConditions, FindManyOptions } from 'typeorm'; import JSONbig from 'json-bigint'; import { ethers } from 'ethers'; -import { JobQueue, IndexerInterface } from '@vulcanize/util'; +import { IndexerInterface } from '@vulcanize/util'; import { EthClient } from '@cerc-io/ipld-eth-client'; import { Indexer as BaseIndexer, @@ -18,7 +18,8 @@ import { ValueResult, Where, QueryOptions, - UNKNOWN_EVENT_NAME + UNKNOWN_EVENT_NAME, + JobQueue } from '@cerc-io/util'; import { StorageLayout, MappingKey } from '@cerc-io/solidity-mapper'; diff --git a/packages/erc20-watcher/src/job-runner.ts b/packages/erc20-watcher/src/job-runner.ts index 791f19bb..8c0e3122 100644 --- a/packages/erc20-watcher/src/job-runner.ts +++ b/packages/erc20-watcher/src/job-runner.ts @@ -14,15 +14,13 @@ import { startMetricsServer, QUEUE_BLOCK_PROCESSING, QUEUE_EVENT_PROCESSING, - DEFAULT_CONFIG_PATH + DEFAULT_CONFIG_PATH, + JobQueue, + getCustomProvider, + getConfig } from '@cerc-io/util'; import { getCache } from '@cerc-io/cache'; -import { - getConfig, - JobQueue, - JobRunner as BaseJobRunner, - getCustomProvider -} from '@vulcanize/util'; +import { Config, JobRunner as BaseJobRunner } from '@vulcanize/util'; import { Indexer } from './indexer'; import { Database } from './database'; @@ -73,7 +71,7 @@ export const main = async (): Promise => { }) .argv; - const config = await getConfig(argv.f); + const config: Config = await getConfig(argv.f); assert(config.server, 'Missing server config'); diff --git a/packages/erc20-watcher/src/resolvers.ts b/packages/erc20-watcher/src/resolvers.ts index 5c6e0571..648727e8 100644 --- a/packages/erc20-watcher/src/resolvers.ts +++ b/packages/erc20-watcher/src/resolvers.ts @@ -6,8 +6,7 @@ import assert from 'assert'; import BigInt from 'apollo-type-bigint'; import debug from 'debug'; -import { gqlTotalQueryCount, gqlQueryCount } from '@vulcanize/util'; -import { ValueResult } from '@cerc-io/util'; +import { gqlTotalQueryCount, gqlQueryCount, ValueResult } from '@cerc-io/util'; import { CONTRACT_KIND, Indexer } from './indexer'; import { EventWatcher } from './events'; diff --git a/packages/erc20-watcher/src/server.ts b/packages/erc20-watcher/src/server.ts index 6f7aee15..ed695fb8 100644 --- a/packages/erc20-watcher/src/server.ts +++ b/packages/erc20-watcher/src/server.ts @@ -15,9 +15,13 @@ import { getCache } from '@cerc-io/cache'; import { KIND_ACTIVE, DEFAULT_CONFIG_PATH, - createAndStartServer + createAndStartServer, + JobQueue, + getCustomProvider, + startGQLMetricsServer, + getConfig } from '@cerc-io/util'; -import { getConfig, getCustomProvider, JobQueue, startGQLMetricsServer } from '@vulcanize/util'; +import { Config } from '@vulcanize/util'; import { EthClient } from '@cerc-io/ipld-eth-client'; import typeDefs from './schema'; @@ -41,7 +45,7 @@ export const main = async (): Promise => { }) .argv; - const config = await getConfig(argv.f); + const config: Config = await getConfig(argv.f); assert(config.server, 'Missing server config'); diff --git a/packages/uni-info-watcher/package.json b/packages/uni-info-watcher/package.json index 2447d038..d315aa62 100644 --- a/packages/uni-info-watcher/package.json +++ b/packages/uni-info-watcher/package.json @@ -77,7 +77,6 @@ "graphql-schema-linter": "^2.0.1", "mocha": "^8.4.0", "nodemon": "^2.0.7", - "pprof": "^3.2.0", "ts-node": "^10.0.0", "typescript": "^4.3.2" } diff --git a/packages/uni-info-watcher/src/cli/checkpoint-cmds/create.ts b/packages/uni-info-watcher/src/cli/checkpoint-cmds/create.ts index b3cef253..ea01b5d6 100644 --- a/packages/uni-info-watcher/src/cli/checkpoint-cmds/create.ts +++ b/packages/uni-info-watcher/src/cli/checkpoint-cmds/create.ts @@ -5,7 +5,8 @@ import debug from 'debug'; import assert from 'assert'; -import { getConfig, initClients, JobQueue, Config } from '@cerc-io/util'; +import { getConfig, initClients, JobQueue } from '@cerc-io/util'; +import { Config } from '@vulcanize/util'; import { Client as ERC20Client } from '@vulcanize/erc20-watcher'; import { Client as UniClient } from '@vulcanize/uni-watcher'; diff --git a/packages/uni-info-watcher/src/cli/export-state.ts b/packages/uni-info-watcher/src/cli/export-state.ts index 12d4379a..99c21d2c 100644 --- a/packages/uni-info-watcher/src/cli/export-state.ts +++ b/packages/uni-info-watcher/src/cli/export-state.ts @@ -9,7 +9,8 @@ import debug from 'debug'; import fs from 'fs'; import path from 'path'; -import { Config, DEFAULT_CONFIG_PATH, getConfig, initClients, JobQueue, StateKind } from '@cerc-io/util'; +import { DEFAULT_CONFIG_PATH, getConfig, initClients, JobQueue, StateKind } from '@cerc-io/util'; +import { Config } from '@vulcanize/util'; import { Client as ERC20Client } from '@vulcanize/erc20-watcher'; import { Client as UniClient } from '@vulcanize/uni-watcher'; import * as codec from '@ipld/dag-cbor'; diff --git a/packages/uni-info-watcher/src/cli/import-state.ts b/packages/uni-info-watcher/src/cli/import-state.ts index 0ddc3438..649886ff 100644 --- a/packages/uni-info-watcher/src/cli/import-state.ts +++ b/packages/uni-info-watcher/src/cli/import-state.ts @@ -11,9 +11,9 @@ import { PubSub } from 'graphql-subscriptions'; import fs from 'fs'; import path from 'path'; -import { getConfig, JobQueue, DEFAULT_CONFIG_PATH, Config, initClients, StateKind } from '@cerc-io/util'; +import { getConfig, JobQueue, DEFAULT_CONFIG_PATH, initClients, StateKind, fillBlocks } from '@cerc-io/util'; import { updateEntitiesFromState } from '@cerc-io/graph-node'; -import { fillBlocks } from '@vulcanize/util'; +import { Config } from '@vulcanize/util'; import { Client as ERC20Client } from '@vulcanize/erc20-watcher'; import { Client as UniClient } from '@vulcanize/uni-watcher'; import * as codec from '@ipld/dag-cbor'; diff --git a/packages/uni-info-watcher/src/cli/inspect-cid.ts b/packages/uni-info-watcher/src/cli/inspect-cid.ts index 6b724629..79cc0566 100644 --- a/packages/uni-info-watcher/src/cli/inspect-cid.ts +++ b/packages/uni-info-watcher/src/cli/inspect-cid.ts @@ -10,8 +10,8 @@ import util from 'util'; import { Client as ERC20Client } from '@vulcanize/erc20-watcher'; import { Client as UniClient } from '@vulcanize/uni-watcher'; -import { DEFAULT_CONFIG_PATH } from '@cerc-io/util'; -import { Config, getConfig, getResetConfig, JobQueue } from '@vulcanize/util'; +import { DEFAULT_CONFIG_PATH, JobQueue, getConfig, initClients } from '@cerc-io/util'; +import { Config } from '@vulcanize/util'; import { Database } from '../database'; import { Indexer } from '../indexer'; @@ -39,7 +39,7 @@ const main = async (): Promise => { }).argv; const config: Config = await getConfig(argv.configFile); - const { ethClient, ethProvider } = await getResetConfig(config); + const { ethClient, ethProvider } = await initClients(config); const db = new Database(config.database, config.server); await db.init(); diff --git a/packages/uni-info-watcher/src/cli/reset-cmds/job-queue.ts b/packages/uni-info-watcher/src/cli/reset-cmds/job-queue.ts index a8766bcf..0f0bf3ce 100644 --- a/packages/uni-info-watcher/src/cli/reset-cmds/job-queue.ts +++ b/packages/uni-info-watcher/src/cli/reset-cmds/job-queue.ts @@ -4,7 +4,8 @@ import debug from 'debug'; -import { getConfig, resetJobs } from '@vulcanize/util'; +import { resetJobs, getConfig } from '@cerc-io/util'; +import { Config } from '@vulcanize/util'; const log = debug('vulcanize:reset-job-queue'); @@ -15,7 +16,7 @@ export const desc = 'Reset job queue'; export const builder = {}; export const handler = async (argv: any): Promise => { - const config = await getConfig(argv.configFile); + const config: Config = await getConfig(argv.configFile); await resetJobs(config); log('Job queue reset successfully'); diff --git a/packages/uni-info-watcher/src/cli/reset-cmds/state.ts b/packages/uni-info-watcher/src/cli/reset-cmds/state.ts index fe25b294..4caa3c98 100644 --- a/packages/uni-info-watcher/src/cli/reset-cmds/state.ts +++ b/packages/uni-info-watcher/src/cli/reset-cmds/state.ts @@ -5,6 +5,7 @@ import debug from 'debug'; import { getConfig } from '@cerc-io/util'; +import { Config } from '@vulcanize/util'; import { Database } from '../../database'; @@ -22,7 +23,7 @@ export const builder = { export const handler = async (argv: any): Promise => { const { blockNumber } = argv; - const config = await getConfig(argv.configFile); + const config: Config = await getConfig(argv.configFile); // Initialize database const db = new Database(config.database, config.server); diff --git a/packages/uni-info-watcher/src/cli/reset-cmds/watcher.ts b/packages/uni-info-watcher/src/cli/reset-cmds/watcher.ts index 581808a6..1c8e4172 100644 --- a/packages/uni-info-watcher/src/cli/reset-cmds/watcher.ts +++ b/packages/uni-info-watcher/src/cli/reset-cmds/watcher.ts @@ -5,7 +5,8 @@ import debug from 'debug'; import assert from 'assert'; -import { getConfig, getResetConfig, JobQueue, resetJobs } from '@vulcanize/util'; +import { JobQueue, resetJobs, getConfig, initClients } from '@cerc-io/util'; +import { Config } from '@vulcanize/util'; import { Client as ERC20Client } from '@vulcanize/erc20-watcher'; import { Client as UniClient } from '@vulcanize/uni-watcher'; @@ -25,19 +26,19 @@ export const builder = { }; export const handler = async (argv: any): Promise => { - const config = await getConfig(argv.configFile); + const config: Config = await getConfig(argv.configFile); await resetJobs(config); const { jobQueue: jobQueueConfig } = config; - const { dbConfig, upstreamConfig, ethClient, ethProvider } = await getResetConfig(config); + const { ethClient, ethProvider } = await initClients(config); // Initialize database. - const db = new Database(dbConfig, config.server); + const db = new Database(config.database, config.server); await db.init(); const { uniWatcher, tokenWatcher - } = upstreamConfig; + } = config.upstream; const uniClient = new UniClient(uniWatcher); const erc20Client = new ERC20Client(tokenWatcher); diff --git a/packages/uni-info-watcher/src/cli/reset.ts b/packages/uni-info-watcher/src/cli/reset.ts index 2ddebf10..95648c88 100644 --- a/packages/uni-info-watcher/src/cli/reset.ts +++ b/packages/uni-info-watcher/src/cli/reset.ts @@ -5,7 +5,7 @@ import 'reflect-metadata'; import debug from 'debug'; -import { getResetYargs } from '@vulcanize/util'; +import { getResetYargs } from '@cerc-io/util'; const log = debug('vulcanize:reset'); diff --git a/packages/uni-info-watcher/src/cli/watch-contract.ts b/packages/uni-info-watcher/src/cli/watch-contract.ts index d6909084..90062d44 100644 --- a/packages/uni-info-watcher/src/cli/watch-contract.ts +++ b/packages/uni-info-watcher/src/cli/watch-contract.ts @@ -6,8 +6,8 @@ import assert from 'assert'; import yargs from 'yargs'; import 'reflect-metadata'; -import { DEFAULT_CONFIG_PATH } from '@cerc-io/util'; -import { Config, getConfig, getResetConfig, JobQueue } from '@vulcanize/util'; +import { DEFAULT_CONFIG_PATH, JobQueue, getConfig, initClients } from '@cerc-io/util'; +import { Config } from '@vulcanize/util'; import { Client as ERC20Client } from '@vulcanize/erc20-watcher'; import { Client as UniClient } from '@vulcanize/uni-watcher'; @@ -53,7 +53,7 @@ import { Indexer } from '../indexer'; const config: Config = await getConfig(argv.configFile); const { database: dbConfig, jobQueue: jobQueueConfig } = config; - const { ethClient, ethProvider } = await getResetConfig(config); + const { ethClient, ethProvider } = await initClients(config); assert(dbConfig); diff --git a/packages/uni-info-watcher/src/entity/BlockProgress.ts b/packages/uni-info-watcher/src/entity/BlockProgress.ts index bfaa77e6..2123c2d9 100644 --- a/packages/uni-info-watcher/src/entity/BlockProgress.ts +++ b/packages/uni-info-watcher/src/entity/BlockProgress.ts @@ -4,7 +4,7 @@ import { Entity, PrimaryGeneratedColumn, Column, Index, CreateDateColumn } from 'typeorm'; -import { BlockProgressInterface } from '@vulcanize/util'; +import { BlockProgressInterface } from '@cerc-io/util'; @Entity() @Index(['blockHash'], { unique: true }) diff --git a/packages/uni-info-watcher/src/entity/Bundle.ts b/packages/uni-info-watcher/src/entity/Bundle.ts index 916e4884..3dd2c599 100644 --- a/packages/uni-info-watcher/src/entity/Bundle.ts +++ b/packages/uni-info-watcher/src/entity/Bundle.ts @@ -3,7 +3,8 @@ // import { Entity, PrimaryColumn, Column, Index } from 'typeorm'; -import { graphDecimalTransformer, GraphDecimal } from '@vulcanize/util'; + +import { GraphDecimal, graphDecimalTransformer } from '@cerc-io/util'; @Entity() @Index(['id', 'blockNumber']) diff --git a/packages/uni-info-watcher/src/entity/Burn.ts b/packages/uni-info-watcher/src/entity/Burn.ts index 4d748d55..be447036 100644 --- a/packages/uni-info-watcher/src/entity/Burn.ts +++ b/packages/uni-info-watcher/src/entity/Burn.ts @@ -3,7 +3,8 @@ // import { Entity, PrimaryColumn, Column, Index } from 'typeorm'; -import { bigintTransformer, graphDecimalTransformer, GraphDecimal } from '@vulcanize/util'; + +import { bigintTransformer, graphDecimalTransformer, GraphDecimal } from '@cerc-io/util'; @Entity() @Index(['id', 'blockNumber']) diff --git a/packages/uni-info-watcher/src/entity/Collect.ts b/packages/uni-info-watcher/src/entity/Collect.ts index 73a1372a..2c7da8d7 100644 --- a/packages/uni-info-watcher/src/entity/Collect.ts +++ b/packages/uni-info-watcher/src/entity/Collect.ts @@ -3,7 +3,8 @@ // import { Entity, PrimaryColumn, Column, Index } from 'typeorm'; -import { graphDecimalTransformer, GraphDecimal, bigintTransformer } from '@vulcanize/util'; + +import { graphDecimalTransformer, bigintTransformer, GraphDecimal } from '@cerc-io/util'; @Entity() @Index(['id', 'blockNumber']) diff --git a/packages/uni-info-watcher/src/entity/Factory.ts b/packages/uni-info-watcher/src/entity/Factory.ts index d16c314e..603a2c14 100644 --- a/packages/uni-info-watcher/src/entity/Factory.ts +++ b/packages/uni-info-watcher/src/entity/Factory.ts @@ -3,7 +3,9 @@ // import { Entity, Column, PrimaryColumn, Index } from 'typeorm'; -import { graphDecimalTransformer, GraphDecimal, bigintTransformer } from '@vulcanize/util'; + +import { bigintTransformer, graphDecimalTransformer, GraphDecimal } from '@cerc-io/util'; + import { ADDRESS_ZERO } from '../utils/constants'; @Entity() diff --git a/packages/uni-info-watcher/src/entity/Flash.ts b/packages/uni-info-watcher/src/entity/Flash.ts index e9bd34db..e909c0c5 100644 --- a/packages/uni-info-watcher/src/entity/Flash.ts +++ b/packages/uni-info-watcher/src/entity/Flash.ts @@ -3,7 +3,8 @@ // import { Entity, PrimaryColumn, Column, Index } from 'typeorm'; -import { graphDecimalTransformer, GraphDecimal, bigintTransformer } from '@vulcanize/util'; + +import { graphDecimalTransformer, bigintTransformer, GraphDecimal } from '@cerc-io/util'; @Entity() @Index(['id', 'blockNumber']) diff --git a/packages/uni-info-watcher/src/entity/LatestPool.ts b/packages/uni-info-watcher/src/entity/LatestPool.ts index 38a9dd07..8e34a224 100644 --- a/packages/uni-info-watcher/src/entity/LatestPool.ts +++ b/packages/uni-info-watcher/src/entity/LatestPool.ts @@ -3,7 +3,8 @@ // import { Entity, PrimaryColumn, Column, Index } from 'typeorm'; -import { graphDecimalTransformer, GraphDecimal } from '@vulcanize/util'; + +import { graphDecimalTransformer, GraphDecimal } from '@cerc-io/util'; @Entity() @Index(['id', 'blockHash']) diff --git a/packages/uni-info-watcher/src/entity/LatestTick.ts b/packages/uni-info-watcher/src/entity/LatestTick.ts index da4dfee0..d2d19d66 100644 --- a/packages/uni-info-watcher/src/entity/LatestTick.ts +++ b/packages/uni-info-watcher/src/entity/LatestTick.ts @@ -3,7 +3,8 @@ // import { Entity, PrimaryColumn, Column, Index } from 'typeorm'; -import { bigintTransformer } from '@vulcanize/util'; + +import { bigintTransformer } from '@cerc-io/util'; @Entity() @Index(['id', 'blockHash']) diff --git a/packages/uni-info-watcher/src/entity/LatestToken.ts b/packages/uni-info-watcher/src/entity/LatestToken.ts index 556867cd..ae08b3b7 100644 --- a/packages/uni-info-watcher/src/entity/LatestToken.ts +++ b/packages/uni-info-watcher/src/entity/LatestToken.ts @@ -3,7 +3,8 @@ // import { Entity, PrimaryColumn, Column, Index } from 'typeorm'; -import { graphDecimalTransformer, GraphDecimal } from '@vulcanize/util'; + +import { graphDecimalTransformer, GraphDecimal } from '@cerc-io/util'; @Entity() @Index(['id', 'blockHash']) diff --git a/packages/uni-info-watcher/src/entity/Mint.ts b/packages/uni-info-watcher/src/entity/Mint.ts index ce4295d3..03487cd6 100644 --- a/packages/uni-info-watcher/src/entity/Mint.ts +++ b/packages/uni-info-watcher/src/entity/Mint.ts @@ -3,7 +3,8 @@ // import { Entity, PrimaryColumn, Column, Index } from 'typeorm'; -import { graphDecimalTransformer, GraphDecimal, bigintTransformer } from '@vulcanize/util'; + +import { graphDecimalTransformer, bigintTransformer, GraphDecimal } from '@cerc-io/util'; @Entity() @Index(['id', 'blockNumber']) diff --git a/packages/uni-info-watcher/src/entity/Pool.ts b/packages/uni-info-watcher/src/entity/Pool.ts index bd899526..bccd6e66 100644 --- a/packages/uni-info-watcher/src/entity/Pool.ts +++ b/packages/uni-info-watcher/src/entity/Pool.ts @@ -3,7 +3,8 @@ // import { Entity, PrimaryColumn, Column, Index } from 'typeorm'; -import { graphDecimalTransformer, GraphDecimal, bigintTransformer } from '@vulcanize/util'; + +import { bigintTransformer, graphDecimalTransformer, GraphDecimal } from '@cerc-io/util'; @Entity() @Index(['id', 'blockNumber']) diff --git a/packages/uni-info-watcher/src/entity/PoolDayData.ts b/packages/uni-info-watcher/src/entity/PoolDayData.ts index 3cb150ca..5d9933ac 100644 --- a/packages/uni-info-watcher/src/entity/PoolDayData.ts +++ b/packages/uni-info-watcher/src/entity/PoolDayData.ts @@ -3,7 +3,8 @@ // import { Entity, PrimaryColumn, Column, Index } from 'typeorm'; -import { graphDecimalTransformer, GraphDecimal, bigintTransformer } from '@vulcanize/util'; + +import { graphDecimalTransformer, bigintTransformer, GraphDecimal } from '@cerc-io/util'; @Entity() @Index(['id', 'blockNumber']) diff --git a/packages/uni-info-watcher/src/entity/PoolHourData.ts b/packages/uni-info-watcher/src/entity/PoolHourData.ts index a91c851c..96209867 100644 --- a/packages/uni-info-watcher/src/entity/PoolHourData.ts +++ b/packages/uni-info-watcher/src/entity/PoolHourData.ts @@ -3,7 +3,8 @@ // import { Entity, PrimaryColumn, Column, Index } from 'typeorm'; -import { graphDecimalTransformer, GraphDecimal, bigintTransformer } from '@vulcanize/util'; + +import { bigintTransformer, graphDecimalTransformer, GraphDecimal } from '@cerc-io/util'; @Entity() @Index(['id', 'blockNumber']) diff --git a/packages/uni-info-watcher/src/entity/Position.ts b/packages/uni-info-watcher/src/entity/Position.ts index 44a7aae8..5461dec0 100644 --- a/packages/uni-info-watcher/src/entity/Position.ts +++ b/packages/uni-info-watcher/src/entity/Position.ts @@ -3,7 +3,8 @@ // import { Entity, PrimaryColumn, Column, Index } from 'typeorm'; -import { graphDecimalTransformer, GraphDecimal, bigintTransformer } from '@vulcanize/util'; + +import { graphDecimalTransformer, bigintTransformer, GraphDecimal } from '@cerc-io/util'; import { ADDRESS_ZERO } from '../utils/constants'; diff --git a/packages/uni-info-watcher/src/entity/PositionSnapshot.ts b/packages/uni-info-watcher/src/entity/PositionSnapshot.ts index 6a8f9c9a..08cc9882 100644 --- a/packages/uni-info-watcher/src/entity/PositionSnapshot.ts +++ b/packages/uni-info-watcher/src/entity/PositionSnapshot.ts @@ -3,7 +3,8 @@ // import { Entity, PrimaryColumn, Column, Index } from 'typeorm'; -import { graphDecimalTransformer, GraphDecimal, bigintTransformer } from '@vulcanize/util'; + +import { bigintTransformer, graphDecimalTransformer, GraphDecimal } from '@cerc-io/util'; import { ADDRESS_ZERO } from '../utils/constants'; diff --git a/packages/uni-info-watcher/src/entity/Swap.ts b/packages/uni-info-watcher/src/entity/Swap.ts index f143c93b..2f90bf6f 100644 --- a/packages/uni-info-watcher/src/entity/Swap.ts +++ b/packages/uni-info-watcher/src/entity/Swap.ts @@ -3,7 +3,8 @@ // import { Entity, PrimaryColumn, Column, Index } from 'typeorm'; -import { graphDecimalTransformer, GraphDecimal, bigintTransformer } from '@vulcanize/util'; + +import { graphDecimalTransformer, bigintTransformer, GraphDecimal } from '@cerc-io/util'; @Entity() @Index(['id', 'blockNumber']) diff --git a/packages/uni-info-watcher/src/entity/SyncStatus.ts b/packages/uni-info-watcher/src/entity/SyncStatus.ts index 56bd3a2a..222e2c84 100644 --- a/packages/uni-info-watcher/src/entity/SyncStatus.ts +++ b/packages/uni-info-watcher/src/entity/SyncStatus.ts @@ -4,7 +4,7 @@ import { Entity, PrimaryGeneratedColumn, Column } from 'typeorm'; -import { SyncStatusInterface } from '@vulcanize/util'; +import { SyncStatusInterface } from '@cerc-io/util'; @Entity() export class SyncStatus implements SyncStatusInterface { diff --git a/packages/uni-info-watcher/src/entity/Tick.ts b/packages/uni-info-watcher/src/entity/Tick.ts index 3c12093c..dc1d56bb 100644 --- a/packages/uni-info-watcher/src/entity/Tick.ts +++ b/packages/uni-info-watcher/src/entity/Tick.ts @@ -3,7 +3,8 @@ // import { Entity, PrimaryColumn, Column, Index } from 'typeorm'; -import { graphDecimalTransformer, GraphDecimal, bigintTransformer } from '@vulcanize/util'; + +import { graphDecimalTransformer, bigintTransformer, GraphDecimal } from '@cerc-io/util'; @Entity() @Index(['id', 'blockNumber']) diff --git a/packages/uni-info-watcher/src/entity/TickDayData.ts b/packages/uni-info-watcher/src/entity/TickDayData.ts index d8f75048..65f21c11 100644 --- a/packages/uni-info-watcher/src/entity/TickDayData.ts +++ b/packages/uni-info-watcher/src/entity/TickDayData.ts @@ -3,7 +3,8 @@ // import { Entity, PrimaryColumn, Column, Index } from 'typeorm'; -import { bigintTransformer, GraphDecimal, graphDecimalTransformer } from '@vulcanize/util'; + +import { bigintTransformer, graphDecimalTransformer, GraphDecimal } from '@cerc-io/util'; @Entity() @Index(['id', 'blockNumber']) diff --git a/packages/uni-info-watcher/src/entity/TickHourData.ts b/packages/uni-info-watcher/src/entity/TickHourData.ts index a84edf82..23f70e8e 100644 --- a/packages/uni-info-watcher/src/entity/TickHourData.ts +++ b/packages/uni-info-watcher/src/entity/TickHourData.ts @@ -3,7 +3,8 @@ // import { Entity, PrimaryColumn, Column, Index } from 'typeorm'; -import { bigintTransformer, GraphDecimal, graphDecimalTransformer } from '@vulcanize/util'; + +import { graphDecimalTransformer, bigintTransformer, GraphDecimal } from '@cerc-io/util'; @Entity() @Index(['id', 'blockNumber']) diff --git a/packages/uni-info-watcher/src/entity/Token.ts b/packages/uni-info-watcher/src/entity/Token.ts index 94febe60..8e738c3b 100644 --- a/packages/uni-info-watcher/src/entity/Token.ts +++ b/packages/uni-info-watcher/src/entity/Token.ts @@ -3,7 +3,8 @@ // import { Entity, PrimaryColumn, Column, Index } from 'typeorm'; -import { graphDecimalTransformer, GraphDecimal, bigintTransformer } from '@vulcanize/util'; + +import { bigintTransformer, graphDecimalTransformer, GraphDecimal } from '@cerc-io/util'; @Entity() @Index(['id', 'blockNumber']) diff --git a/packages/uni-info-watcher/src/entity/TokenDayData.ts b/packages/uni-info-watcher/src/entity/TokenDayData.ts index c1ae491e..ede9c284 100644 --- a/packages/uni-info-watcher/src/entity/TokenDayData.ts +++ b/packages/uni-info-watcher/src/entity/TokenDayData.ts @@ -3,7 +3,8 @@ // import { Entity, PrimaryColumn, Column, Index } from 'typeorm'; -import { graphDecimalTransformer, GraphDecimal } from '@vulcanize/util'; + +import { graphDecimalTransformer, GraphDecimal } from '@cerc-io/util'; @Entity() @Index(['id', 'blockNumber']) diff --git a/packages/uni-info-watcher/src/entity/TokenHourData.ts b/packages/uni-info-watcher/src/entity/TokenHourData.ts index 3209ea4b..8957a2e7 100644 --- a/packages/uni-info-watcher/src/entity/TokenHourData.ts +++ b/packages/uni-info-watcher/src/entity/TokenHourData.ts @@ -3,7 +3,8 @@ // import { Entity, PrimaryColumn, Column, Index } from 'typeorm'; -import { graphDecimalTransformer, GraphDecimal } from '@vulcanize/util'; + +import { graphDecimalTransformer, GraphDecimal } from '@cerc-io/util'; @Entity() @Index(['id', 'blockNumber']) diff --git a/packages/uni-info-watcher/src/entity/Transaction.ts b/packages/uni-info-watcher/src/entity/Transaction.ts index 9a6e6db7..6acefc95 100644 --- a/packages/uni-info-watcher/src/entity/Transaction.ts +++ b/packages/uni-info-watcher/src/entity/Transaction.ts @@ -3,7 +3,8 @@ // import { Entity, PrimaryColumn, Column, Index } from 'typeorm'; -import { bigintTransformer } from '@vulcanize/util'; + +import { bigintTransformer } from '@cerc-io/util'; @Entity() @Index(['id', 'blockNumber']) diff --git a/packages/uni-info-watcher/src/entity/UniswapDayData.ts b/packages/uni-info-watcher/src/entity/UniswapDayData.ts index 9a059763..6ea893cd 100644 --- a/packages/uni-info-watcher/src/entity/UniswapDayData.ts +++ b/packages/uni-info-watcher/src/entity/UniswapDayData.ts @@ -3,7 +3,8 @@ // import { Entity, PrimaryColumn, Column, Index } from 'typeorm'; -import { graphDecimalTransformer, GraphDecimal, bigintTransformer } from '@vulcanize/util'; + +import { bigintTransformer, graphDecimalTransformer, GraphDecimal } from '@cerc-io/util'; @Entity() @Index(['id', 'blockNumber']) diff --git a/packages/uni-info-watcher/src/events.ts b/packages/uni-info-watcher/src/events.ts index 6b8353f0..89cc975e 100644 --- a/packages/uni-info-watcher/src/events.ts +++ b/packages/uni-info-watcher/src/events.ts @@ -7,8 +7,8 @@ import debug from 'debug'; import { PubSub } from 'graphql-subscriptions'; import { EthClient } from '@cerc-io/ipld-eth-client'; -import { QUEUE_BLOCK_PROCESSING, QUEUE_EVENT_PROCESSING } from '@cerc-io/util'; -import { EventWatcher as BaseEventWatcher, EventWatcherInterface, JobQueue, UpstreamConfig } from '@vulcanize/util'; +import { QUEUE_BLOCK_PROCESSING, QUEUE_EVENT_PROCESSING, EventWatcher as BaseEventWatcher, JobQueue, EventWatcherInterface } from '@cerc-io/util'; +import { UpstreamConfig } from '@vulcanize/util'; import { Indexer } from './indexer'; diff --git a/packages/uni-info-watcher/src/fill.ts b/packages/uni-info-watcher/src/fill.ts index 5647efb7..6d8b0a08 100644 --- a/packages/uni-info-watcher/src/fill.ts +++ b/packages/uni-info-watcher/src/fill.ts @@ -10,8 +10,8 @@ import debug from 'debug'; import { PubSub } from 'graphql-subscriptions'; import { getCache } from '@cerc-io/cache'; -import { DEFAULT_CONFIG_PATH } from '@cerc-io/util'; -import { getConfig, fillBlocks, JobQueue, getCustomProvider, DEFAULT_PREFETCH_BATCH_SIZE } from '@vulcanize/util'; +import { DEFAULT_CONFIG_PATH, JobQueue, getCustomProvider, getConfig, fillBlocks, DEFAULT_PREFETCH_BATCH_SIZE } from '@cerc-io/util'; +import { Config } from '@vulcanize/util'; import { Client as UniClient } from '@vulcanize/uni-watcher'; import { Client as ERC20Client } from '@vulcanize/erc20-watcher'; import { EthClient } from '@cerc-io/ipld-eth-client'; @@ -71,7 +71,7 @@ export const main = async (): Promise => { } }).argv; - const config = await getConfig(argv.configFile); + const config: Config = await getConfig(argv.configFile); assert(config.server, 'Missing server config'); diff --git a/packages/uni-info-watcher/src/get-prev-entity.test.ts b/packages/uni-info-watcher/src/get-prev-entity.test.ts index 2e061f78..51ab4eb4 100644 --- a/packages/uni-info-watcher/src/get-prev-entity.test.ts +++ b/packages/uni-info-watcher/src/get-prev-entity.test.ts @@ -6,9 +6,8 @@ import { expect, assert } from 'chai'; import 'mocha'; import _ from 'lodash'; -import { - getConfig -} from '@vulcanize/util'; +import { getConfig } from '@cerc-io/util'; +import { Config } from '@vulcanize/util'; import { removeEntities } from '@vulcanize/util/test'; import { Database } from './database'; @@ -29,13 +28,13 @@ describe('getPrevEntityVersion', () => { before(async () => { // Get config. - const config = await getConfig(CONFIG_FILE); + const config: Config = await getConfig(CONFIG_FILE); - const { database: dbConfig } = config; + const { database: dbConfig, server: serverConfig } = config; assert(dbConfig, 'Missing dbConfig.'); // Initialize database. - db = new Database(dbConfig); + db = new Database(dbConfig, serverConfig); await db.init(); // Check if database is empty. diff --git a/packages/uni-info-watcher/src/indexer.ts b/packages/uni-info-watcher/src/indexer.ts index 37f8597f..fab23fc7 100644 --- a/packages/uni-info-watcher/src/indexer.ts +++ b/packages/uni-info-watcher/src/indexer.ts @@ -12,7 +12,6 @@ import _ from 'lodash'; import { Client as UniClient } from '@vulcanize/uni-watcher'; import { Client as ERC20Client } from '@vulcanize/erc20-watcher'; -import { GraphDecimal, JobQueue } from '@vulcanize/util'; import { ServerConfig, StateStatus, @@ -26,7 +25,9 @@ import { eventProcessingEthCallDuration, getFullTransaction, getFullBlock, - StateKind + StateKind, + JobQueue, + GraphDecimal } from '@cerc-io/util'; import { EthClient } from '@cerc-io/ipld-eth-client'; import { StorageLayout, MappingKey } from '@cerc-io/solidity-mapper'; diff --git a/packages/uni-info-watcher/src/job-runner.ts b/packages/uni-info-watcher/src/job-runner.ts index fa7e4831..69e67a1d 100644 --- a/packages/uni-info-watcher/src/job-runner.ts +++ b/packages/uni-info-watcher/src/job-runner.ts @@ -12,18 +12,19 @@ import { Client as ERC20Client } from '@vulcanize/erc20-watcher'; import { Client as UniClient } from '@vulcanize/uni-watcher'; import { getCache } from '@cerc-io/cache'; import { - getConfig, - JobQueue, - JobRunner as BaseJobRunner, - getCustomProvider + Config, + JobRunner as BaseJobRunner } from '@vulcanize/util'; import { EthClient } from '@cerc-io/ipld-eth-client'; import { + JobQueue, JobQueueConfig, startMetricsServer, QUEUE_BLOCK_PROCESSING, QUEUE_EVENT_PROCESSING, - DEFAULT_CONFIG_PATH + DEFAULT_CONFIG_PATH, + getCustomProvider, + getConfig } from '@cerc-io/util'; import { Indexer } from './indexer'; @@ -75,7 +76,7 @@ export const main = async (): Promise => { }) .argv; - const config = await getConfig(argv.f); + const config: Config = await getConfig(argv.f); assert(config.server, 'Missing server config'); diff --git a/packages/uni-info-watcher/src/resolvers.ts b/packages/uni-info-watcher/src/resolvers.ts index ffc3d7be..7f8482d3 100644 --- a/packages/uni-info-watcher/src/resolvers.ts +++ b/packages/uni-info-watcher/src/resolvers.ts @@ -8,8 +8,7 @@ import debug from 'debug'; import { GraphQLResolveInfo, GraphQLScalarType } from 'graphql'; import JSONbig from 'json-bigint'; -import { gqlQueryCount, gqlTotalQueryCount, GraphDecimal } from '@vulcanize/util'; -import { BlockHeight, OrderDirection, getResultState, setGQLCacheHints } from '@cerc-io/util'; +import { BlockHeight, OrderDirection, getResultState, setGQLCacheHints, GraphDecimal, gqlQueryCount, gqlTotalQueryCount } from '@cerc-io/util'; import { Indexer } from './indexer'; import { Burn } from './entity/Burn'; diff --git a/packages/uni-info-watcher/src/server.ts b/packages/uni-info-watcher/src/server.ts index 0ad096f9..626a6dcf 100644 --- a/packages/uni-info-watcher/src/server.ts +++ b/packages/uni-info-watcher/src/server.ts @@ -13,9 +13,8 @@ import 'graphql-import-node'; import { Client as ERC20Client } from '@vulcanize/erc20-watcher'; import { Client as UniClient } from '@vulcanize/uni-watcher'; -import { createAndStartServer, DEFAULT_CONFIG_PATH } from '@cerc-io/util'; - -import { getConfig, getCustomProvider, JobQueue, startGQLMetricsServer } from '@vulcanize/util'; +import { Config } from '@vulcanize/util'; +import { createAndStartServer, DEFAULT_CONFIG_PATH, JobQueue, getCustomProvider, startGQLMetricsServer, getConfig } from '@cerc-io/util'; import { getCache } from '@cerc-io/cache'; import { EthClient } from '@cerc-io/ipld-eth-client'; @@ -40,7 +39,7 @@ export const main = async (): Promise => { }) .argv; - const config = await getConfig(argv.f); + const config: Config = await getConfig(argv.f); assert(config.server, 'Missing server config'); diff --git a/packages/uni-info-watcher/src/smoke.test.ts b/packages/uni-info-watcher/src/smoke.test.ts index 1bab0ee0..39c22beb 100644 --- a/packages/uni-info-watcher/src/smoke.test.ts +++ b/packages/uni-info-watcher/src/smoke.test.ts @@ -7,12 +7,8 @@ import { ethers, Contract, Signer, constants, utils } from 'ethers'; import 'mocha'; import _ from 'lodash'; -import { OrderDirection } from '@cerc-io/util'; -import { - Config, - getConfig, - wait -} from '@vulcanize/util'; +import { OrderDirection, wait, getConfig } from '@cerc-io/util'; +import { Config } from '@vulcanize/util'; import { deployTokens, deployUniswapV3Callee, diff --git a/packages/uni-info-watcher/src/utils/index.ts b/packages/uni-info-watcher/src/utils/index.ts index f71cd230..3989b5f5 100644 --- a/packages/uni-info-watcher/src/utils/index.ts +++ b/packages/uni-info-watcher/src/utils/index.ts @@ -6,7 +6,7 @@ import { BigNumber, utils } from 'ethers'; import { QueryRunner } from 'typeorm'; import assert from 'assert'; -import { GraphDecimal } from '@vulcanize/util'; +import { GraphDecimal } from '@cerc-io/util'; import { Transaction as TransactionEntity } from '../entity/Transaction'; import { Database } from '../database'; diff --git a/packages/uni-info-watcher/src/utils/pricing.ts b/packages/uni-info-watcher/src/utils/pricing.ts index 36412164..555798ca 100644 --- a/packages/uni-info-watcher/src/utils/pricing.ts +++ b/packages/uni-info-watcher/src/utils/pricing.ts @@ -6,7 +6,7 @@ import assert from 'assert'; import { BigNumber } from 'ethers'; import { QueryRunner } from 'typeorm'; -import { GraphDecimal } from '@vulcanize/util'; +import { GraphDecimal } from '@cerc-io/util'; import { exponentToBigDecimal, safeDiv } from '.'; import { Database } from '../database'; diff --git a/packages/uni-info-watcher/src/utils/tick.ts b/packages/uni-info-watcher/src/utils/tick.ts index 029e7a44..71d1b50e 100644 --- a/packages/uni-info-watcher/src/utils/tick.ts +++ b/packages/uni-info-watcher/src/utils/tick.ts @@ -4,7 +4,7 @@ import { QueryRunner } from 'typeorm'; -import { GraphDecimal } from '@vulcanize/util'; +import { GraphDecimal } from '@cerc-io/util'; import { Pool } from '../entity/Pool'; import { Database } from '../database'; diff --git a/packages/uni-info-watcher/test/init.ts b/packages/uni-info-watcher/test/init.ts index f57eaba1..90794622 100644 --- a/packages/uni-info-watcher/test/init.ts +++ b/packages/uni-info-watcher/test/init.ts @@ -4,11 +4,8 @@ import assert from 'assert'; -import { - getConfig, - getResetConfig, - JobQueue -} from '@vulcanize/util'; +import { JobQueue, getConfig, initClients } from '@cerc-io/util'; +import { Config } from '@vulcanize/util'; import { Client as ERC20Client } from '@vulcanize/erc20-watcher'; import { Client as UniClient } from '@vulcanize/uni-watcher'; @@ -27,13 +24,13 @@ const watchContract = async (indexer: Indexer, address: string, kind: string): P const main = async () => { // Get config. - const config = await getConfig(CONFIG_FILE); + const config: Config = await getConfig(CONFIG_FILE); - const { upstream, database: dbConfig, jobQueue: jobQueueConfig } = config; + const { upstream, database: dbConfig, jobQueue: jobQueueConfig, server: serverConfig } = config; assert(dbConfig, 'Missing dbConfig.'); // Initialize database. - const db = new Database(dbConfig); + const db = new Database(dbConfig, serverConfig); await db.init(); // Initialize uniClient. @@ -46,7 +43,7 @@ const main = async () => { const erc20Client = new ERC20Client(tokenWatcher); - const { ethClient, ethProvider } = await getResetConfig(config); + const { ethClient, ethProvider } = await initClients(config); assert(jobQueueConfig, 'Missing job queue config'); const { dbConnectionString, maxCompletionLagInSecs } = jobQueueConfig; diff --git a/packages/uni-info-watcher/test/utils.ts b/packages/uni-info-watcher/test/utils.ts index 4434384a..225d20e9 100644 --- a/packages/uni-info-watcher/test/utils.ts +++ b/packages/uni-info-watcher/test/utils.ts @@ -6,8 +6,7 @@ import { expect } from 'chai'; import { ethers } from 'ethers'; import _ from 'lodash'; -import { OrderDirection } from '@cerc-io/util'; -import { GraphDecimal } from '@vulcanize/util'; +import { OrderDirection, GraphDecimal } from '@cerc-io/util'; import { insertNDummyBlocks } from '@vulcanize/util/test'; import { Database } from '../src/database'; diff --git a/packages/uni-watcher/package.json b/packages/uni-watcher/package.json index b0830938..ab675a08 100644 --- a/packages/uni-watcher/package.json +++ b/packages/uni-watcher/package.json @@ -47,7 +47,6 @@ "graphql-import-node": "^0.0.4", "graphql-request": "^3.4.0", "graphql-subscriptions": "^2.0.0", - "json-bigint": "^1.0.0", "lodash": "^4.17.21", "reflect-metadata": "^0.1.13", "typeorm": "^0.2.32", @@ -57,7 +56,6 @@ "@types/chai": "^4.2.18", "@types/debug": "^4.1.7", "@types/express": "^4.17.14", - "@types/json-bigint": "^1.0.0", "@types/mocha": "^8.2.2", "@types/yargs": "^17.0.0", "@typescript-eslint/eslint-plugin": "^4.25.0", @@ -73,7 +71,6 @@ "eslint-plugin-standard": "^5.0.0", "mocha": "^8.4.0", "nodemon": "^2.0.7", - "pprof": "^3.2.0", "ts-node": "^10.0.0", "typescript": "^4.3.2" } diff --git a/packages/uni-watcher/src/chain-pruning.test.ts b/packages/uni-watcher/src/chain-pruning.test.ts index d326706d..a5f72711 100644 --- a/packages/uni-watcher/src/chain-pruning.test.ts +++ b/packages/uni-watcher/src/chain-pruning.test.ts @@ -7,8 +7,8 @@ import { AssertionError } from 'assert'; import 'mocha'; import _ from 'lodash'; -import { JOB_KIND_PRUNE } from '@cerc-io/util'; -import { getConfig, getCustomProvider, JobQueue, JobRunner } from '@vulcanize/util'; +import { JOB_KIND_PRUNE, JobQueue, getCustomProvider, getConfig } from '@cerc-io/util'; +import { Config, JobRunner } from '@vulcanize/util'; import { getCache } from '@cerc-io/cache'; import { insertNDummyBlocks, removeEntities } from '@vulcanize/util/test'; import { EthClient } from '@cerc-io/ipld-eth-client'; @@ -27,7 +27,7 @@ describe('chain pruning', () => { before(async () => { // Get config. - const config = await getConfig(CONFIG_FILE); + const config: Config = await getConfig(CONFIG_FILE); const { upstream, database: dbConfig, jobQueue: jobQueueConfig } = config; diff --git a/packages/uni-watcher/src/cli/reset-cmds/job-queue.ts b/packages/uni-watcher/src/cli/reset-cmds/job-queue.ts index a8766bcf..0f0bf3ce 100644 --- a/packages/uni-watcher/src/cli/reset-cmds/job-queue.ts +++ b/packages/uni-watcher/src/cli/reset-cmds/job-queue.ts @@ -4,7 +4,8 @@ import debug from 'debug'; -import { getConfig, resetJobs } from '@vulcanize/util'; +import { resetJobs, getConfig } from '@cerc-io/util'; +import { Config } from '@vulcanize/util'; const log = debug('vulcanize:reset-job-queue'); @@ -15,7 +16,7 @@ export const desc = 'Reset job queue'; export const builder = {}; export const handler = async (argv: any): Promise => { - const config = await getConfig(argv.configFile); + const config: Config = await getConfig(argv.configFile); await resetJobs(config); log('Job queue reset successfully'); diff --git a/packages/uni-watcher/src/cli/reset-cmds/watcher.ts b/packages/uni-watcher/src/cli/reset-cmds/watcher.ts index ec034bed..ff0a0bd7 100644 --- a/packages/uni-watcher/src/cli/reset-cmds/watcher.ts +++ b/packages/uni-watcher/src/cli/reset-cmds/watcher.ts @@ -3,15 +3,13 @@ // import debug from 'debug'; -import { MoreThan } from 'typeorm'; import assert from 'assert'; -import { getConfig, getResetConfig, JobQueue, resetJobs } from '@vulcanize/util'; +import { JobQueue, resetJobs, getConfig, initClients } from '@cerc-io/util'; +import { Config } from '@vulcanize/util'; import { Database } from '../../database'; import { Indexer } from '../../indexer'; -import { BlockProgress } from '../../entity/BlockProgress'; -import { Contract } from '../../entity/Contract'; const log = debug('vulcanize:reset-watcher'); @@ -26,13 +24,13 @@ export const builder = { }; export const handler = async (argv: any): Promise => { - const config = await getConfig(argv.configFile); + const config: Config = await getConfig(argv.configFile); await resetJobs(config); const { jobQueue: jobQueueConfig } = config; - const { dbConfig, ethClient, ethProvider } = await getResetConfig(config); + const { ethClient, ethProvider } = await initClients(config); // Initialize database. - const db = new Database(dbConfig); + const db = new Database(config.database); await db.init(); assert(jobQueueConfig, 'Missing job queue config'); diff --git a/packages/uni-watcher/src/cli/reset.ts b/packages/uni-watcher/src/cli/reset.ts index cbaa5365..dded7f13 100644 --- a/packages/uni-watcher/src/cli/reset.ts +++ b/packages/uni-watcher/src/cli/reset.ts @@ -5,7 +5,7 @@ import 'reflect-metadata'; import debug from 'debug'; -import { getResetYargs } from '@vulcanize/util'; +import { getResetYargs } from '@cerc-io/util'; const log = debug('vulcanize:reset'); diff --git a/packages/uni-watcher/src/cli/watch-contract.ts b/packages/uni-watcher/src/cli/watch-contract.ts index f65e514b..34dfadf6 100644 --- a/packages/uni-watcher/src/cli/watch-contract.ts +++ b/packages/uni-watcher/src/cli/watch-contract.ts @@ -6,8 +6,8 @@ import assert from 'assert'; import yargs from 'yargs'; import 'reflect-metadata'; -import { DEFAULT_CONFIG_PATH } from '@cerc-io/util'; -import { Config, getConfig, getResetConfig, JobQueue } from '@vulcanize/util'; +import { DEFAULT_CONFIG_PATH, JobQueue, getConfig, initClients } from '@cerc-io/util'; +import { Config } from '@vulcanize/util'; import { Database } from '../database'; import { Indexer } from '../indexer'; @@ -51,7 +51,7 @@ import { Indexer } from '../indexer'; const config: Config = await getConfig(argv.configFile); const { database: dbConfig, jobQueue: jobQueueConfig } = config; - const { ethClient, ethProvider } = await getResetConfig(config); + const { ethClient, ethProvider } = await initClients(config); assert(dbConfig); diff --git a/packages/uni-watcher/src/entity/BlockProgress.ts b/packages/uni-watcher/src/entity/BlockProgress.ts index a6ca5522..066c12cf 100644 --- a/packages/uni-watcher/src/entity/BlockProgress.ts +++ b/packages/uni-watcher/src/entity/BlockProgress.ts @@ -4,7 +4,7 @@ import { Entity, PrimaryGeneratedColumn, Column, Index, CreateDateColumn } from 'typeorm'; -import { BlockProgressInterface } from '@vulcanize/util'; +import { BlockProgressInterface } from '@cerc-io/util'; @Entity() @Index(['blockHash'], { unique: true }) diff --git a/packages/uni-watcher/src/entity/SyncStatus.ts b/packages/uni-watcher/src/entity/SyncStatus.ts index 56bd3a2a..222e2c84 100644 --- a/packages/uni-watcher/src/entity/SyncStatus.ts +++ b/packages/uni-watcher/src/entity/SyncStatus.ts @@ -4,7 +4,7 @@ import { Entity, PrimaryGeneratedColumn, Column } from 'typeorm'; -import { SyncStatusInterface } from '@vulcanize/util'; +import { SyncStatusInterface } from '@cerc-io/util'; @Entity() export class SyncStatus implements SyncStatusInterface { diff --git a/packages/uni-watcher/src/events.ts b/packages/uni-watcher/src/events.ts index 5836c5dc..f683502f 100644 --- a/packages/uni-watcher/src/events.ts +++ b/packages/uni-watcher/src/events.ts @@ -7,13 +7,15 @@ import debug from 'debug'; import { PubSub } from 'graphql-subscriptions'; import { EthClient } from '@cerc-io/ipld-eth-client'; -import { QUEUE_BLOCK_PROCESSING, QUEUE_EVENT_PROCESSING, UNKNOWN_EVENT_NAME } from '@cerc-io/util'; import { - JobQueue, EventWatcher as BaseEventWatcher, - EventWatcherInterface, - UpstreamConfig -} from '@vulcanize/util'; + QUEUE_BLOCK_PROCESSING, + QUEUE_EVENT_PROCESSING, + UNKNOWN_EVENT_NAME, + JobQueue, + EventWatcherInterface +} from '@cerc-io/util'; +import { UpstreamConfig } from '@vulcanize/util'; import { Indexer } from './indexer'; import { Event } from './entity/Event'; diff --git a/packages/uni-watcher/src/fill.ts b/packages/uni-watcher/src/fill.ts index c4f9709a..2c9ef784 100644 --- a/packages/uni-watcher/src/fill.ts +++ b/packages/uni-watcher/src/fill.ts @@ -11,8 +11,8 @@ import { PubSub } from 'graphql-subscriptions'; import { getCache } from '@cerc-io/cache'; import { EthClient } from '@cerc-io/ipld-eth-client'; -import { DEFAULT_CONFIG_PATH } from '@cerc-io/util'; -import { getConfig, fillBlocks, JobQueue, getCustomProvider, DEFAULT_PREFETCH_BATCH_SIZE } from '@vulcanize/util'; +import { DEFAULT_CONFIG_PATH, JobQueue, getCustomProvider, getConfig, fillBlocks, DEFAULT_PREFETCH_BATCH_SIZE } from '@cerc-io/util'; +import { Config } from '@vulcanize/util'; import { Database } from './database'; import { Indexer } from './indexer'; @@ -63,7 +63,7 @@ export const main = async (): Promise => { } }).argv; - const config = await getConfig(argv.configFile); + const config: Config = await getConfig(argv.configFile); assert(config.server, 'Missing server config'); diff --git a/packages/uni-watcher/src/indexer.ts b/packages/uni-watcher/src/indexer.ts index ee556651..50022879 100644 --- a/packages/uni-watcher/src/indexer.ts +++ b/packages/uni-watcher/src/indexer.ts @@ -7,7 +7,7 @@ import { DeepPartial, FindConditions, FindManyOptions, QueryRunner } from 'typeo import { ethers } from 'ethers'; import assert from 'assert'; -import { JobQueue, IndexerInterface } from '@vulcanize/util'; +import { IndexerInterface } from '@vulcanize/util'; import { Indexer as BaseIndexer, StateStatus, @@ -17,7 +17,8 @@ import { ValueResult, UNKNOWN_EVENT_NAME, ResultEvent, - getResultEvent + getResultEvent, + JobQueue } from '@cerc-io/util'; import { EthClient } from '@cerc-io/ipld-eth-client'; import { StorageLayout, MappingKey } from '@cerc-io/solidity-mapper'; diff --git a/packages/uni-watcher/src/job-runner.ts b/packages/uni-watcher/src/job-runner.ts index f810337b..e54e580c 100644 --- a/packages/uni-watcher/src/job-runner.ts +++ b/packages/uni-watcher/src/job-runner.ts @@ -10,18 +10,19 @@ import debug from 'debug'; import { EthClient } from '@cerc-io/ipld-eth-client'; import { + JobQueue, JobQueueConfig, startMetricsServer, QUEUE_BLOCK_PROCESSING, QUEUE_EVENT_PROCESSING, - DEFAULT_CONFIG_PATH + DEFAULT_CONFIG_PATH, + getCustomProvider, + getConfig } from '@cerc-io/util'; import { getCache } from '@cerc-io/cache'; import { - getConfig, - JobQueue, - JobRunner as BaseJobRunner, - getCustomProvider + Config, + JobRunner as BaseJobRunner } from '@vulcanize/util'; import { Indexer } from './indexer'; @@ -73,7 +74,7 @@ export const main = async (): Promise => { }) .argv; - const config = await getConfig(argv.f); + const config: Config = await getConfig(argv.f); assert(config.server, 'Missing server config'); diff --git a/packages/uni-watcher/src/resolvers.ts b/packages/uni-watcher/src/resolvers.ts index 1faa45c0..a7e48182 100644 --- a/packages/uni-watcher/src/resolvers.ts +++ b/packages/uni-watcher/src/resolvers.ts @@ -6,8 +6,7 @@ import assert from 'assert'; import BigInt from 'apollo-type-bigint'; import debug from 'debug'; -import { gqlTotalQueryCount, gqlQueryCount } from '@vulcanize/util'; -import { ValueResult } from '@cerc-io/util'; +import { gqlTotalQueryCount, gqlQueryCount, ValueResult } from '@cerc-io/util'; import { Indexer } from './indexer'; import { EventWatcher } from './events'; diff --git a/packages/uni-watcher/src/server.ts b/packages/uni-watcher/src/server.ts index a7ed94eb..28af8c8a 100644 --- a/packages/uni-watcher/src/server.ts +++ b/packages/uni-watcher/src/server.ts @@ -13,8 +13,8 @@ import 'graphql-import-node'; import { EthClient } from '@cerc-io/ipld-eth-client'; import { getCache } from '@cerc-io/cache'; -import { createAndStartServer, DEFAULT_CONFIG_PATH } from '@cerc-io/util'; -import { getConfig, getCustomProvider, JobQueue, startGQLMetricsServer } from '@vulcanize/util'; +import { createAndStartServer, DEFAULT_CONFIG_PATH, JobQueue, getCustomProvider, startGQLMetricsServer, getConfig } from '@cerc-io/util'; +import { Config } from '@vulcanize/util'; import typeDefs from './schema'; @@ -37,7 +37,7 @@ export const main = async (): Promise => { }) .argv; - const config = await getConfig(argv.f); + const config: Config = await getConfig(argv.f); assert(config.server, 'Missing server config'); diff --git a/packages/uni-watcher/src/smoke.test.ts b/packages/uni-watcher/src/smoke.test.ts index 55072936..cf5e1c82 100644 --- a/packages/uni-watcher/src/smoke.test.ts +++ b/packages/uni-watcher/src/smoke.test.ts @@ -6,11 +6,8 @@ import { expect, assert } from 'chai'; import { ethers, Contract, ContractTransaction, Signer, constants } from 'ethers'; import 'mocha'; -import { - Config, - getConfig, - JobQueue -} from '@vulcanize/util'; +import { JobQueue, getConfig } from '@cerc-io/util'; +import { Config } from '@vulcanize/util'; import { deployTokens, deployUniswapV3Callee, diff --git a/packages/uni-watcher/test/init.ts b/packages/uni-watcher/test/init.ts index bccc8826..3cb14826 100644 --- a/packages/uni-watcher/test/init.ts +++ b/packages/uni-watcher/test/init.ts @@ -5,9 +5,8 @@ import { Contract, ethers, Signer } from 'ethers'; import assert from 'assert'; -import { - getConfig, getResetConfig, JobQueue -} from '@vulcanize/util'; +import { JobQueue, getConfig, initClients } from '@cerc-io/util'; +import { Config } from '@vulcanize/util'; import { deployWETH9Token, deployNFPM @@ -50,14 +49,14 @@ const deployNFPMContract = async (indexer: Indexer, signer: Signer, factory: Con const main = async () => { // Get config. - const config = await getConfig(CONFIG_FILE); + const config: Config = await getConfig(CONFIG_FILE); const { database: dbConfig, server: { host, port }, jobQueue: jobQueueConfig } = config; assert(dbConfig, 'Missing dbConfig.'); assert(host, 'Missing host.'); assert(port, 'Missing port.'); - const { ethClient, ethProvider } = await getResetConfig(config); + const { ethClient, ethProvider } = await initClients(config); // Initialize uniClient. const endpoint = `http://${host}:${port}/graphql`; diff --git a/packages/util/index.ts b/packages/util/index.ts index 4f01ca06..a7e023de 100644 --- a/packages/util/index.ts +++ b/packages/util/index.ts @@ -3,11 +3,5 @@ // export * from './src/config'; -export * from './src/job-queue'; -export * from './src/misc'; -export * from './src/fill'; -export * from './src/events'; export * from './src/types'; export * from './src/job-runner'; -export * from './src/graph-decimal'; -export * from './src/gql-metrics'; diff --git a/packages/util/package.json b/packages/util/package.json index 997e7bca..2364b068 100644 --- a/packages/util/package.json +++ b/packages/util/package.json @@ -4,30 +4,24 @@ "main": "dist/index.js", "license": "AGPL-3.0", "dependencies": { - "@ethersproject/providers": "5.3.0", "csv-writer": "^1.6.0", "debug": "^4.3.1", "decimal.js": "^10.3.1", "ethers": "^5.2.0", "express": "^4.17.1", - "fs-extra": "^10.0.0", "graphql-subscriptions": "^2.0.0", - "lodash": "^4.17.21", "node-fetch": "2", "pg-boss": "^6.1.0", "prom-client": "^14.0.1", - "toml": "^3.0.0", "yargs": "^17.0.1" }, "devDependencies": { "@nomiclabs/hardhat-waffle": "^2.0.1", "@types/debug": "^4.1.7", - "@types/fs-extra": "^9.0.11", "@types/node-fetch": "2.x", "@typescript-eslint/eslint-plugin": "^4.25.0", "@typescript-eslint/parser": "^4.25.0", "@uniswap/v3-periphery": "1.0.0", - "apollo-server-express": "^2.25.0", "eslint": "^7.27.0", "eslint-config-semistandard": "^15.0.1", "eslint-config-standard": "^16.0.3", @@ -36,8 +30,7 @@ "eslint-plugin-promise": "^5.1.0", "eslint-plugin-standard": "^5.0.0", "hardhat": "^2.3.0", - "typeorm": "^0.2.32", - "typeorm-naming-strategies": "^2.0.0" + "typeorm": "^0.2.32" }, "scripts": { "lint": "eslint .", diff --git a/packages/util/src/cli/check-config.ts b/packages/util/src/cli/check-config.ts index cb12955b..fb1c215b 100644 --- a/packages/util/src/cli/check-config.ts +++ b/packages/util/src/cli/check-config.ts @@ -5,10 +5,11 @@ import debug from 'debug'; import yargs from 'yargs'; import assert from 'assert'; + import { EthClient } from '@cerc-io/ipld-eth-client'; +import { getCustomProvider, getConfig } from '@cerc-io/util'; -import { getConfig } from '../config'; -import { getCustomProvider } from '../misc'; +import { Config } from '../config'; const log = debug('vulcanize:check-config'); @@ -23,7 +24,7 @@ const main = async () => { } }).argv; - const { upstream: { ethServer: { gqlApiEndpoint, rpcProviderEndpoint } } } = await getConfig(argv.configFile); + const { upstream: { ethServer: { gqlApiEndpoint, rpcProviderEndpoint } } } = await getConfig(argv.configFile); // Get latest block in chain using ipld-eth-server GQL. log(`Checking ipld-eth-server GQL endpoint ${gqlApiEndpoint}`); diff --git a/packages/util/src/config.ts b/packages/util/src/config.ts index 7f174650..a447ba45 100644 --- a/packages/util/src/config.ts +++ b/packages/util/src/config.ts @@ -2,39 +2,9 @@ // Copyright 2021 Vulcanize, Inc. // -import assert from 'assert'; -import fs from 'fs-extra'; -import path from 'path'; -import toml from 'toml'; -import debug from 'debug'; -import { ConnectionOptions } from 'typeorm'; -import { providers } from 'ethers'; +import { Config as BaseConfig, UpstreamConfig as BaseUpstreamConfig } from '@cerc-io/util'; -import { Config as CacheConfig, getCache } from '@cerc-io/cache'; -import { EthClient } from '@cerc-io/ipld-eth-client'; -import { JobQueueConfig, ServerConfig } from '@cerc-io/util'; - -import { getCustomProvider } from './misc'; - -const log = debug('vulcanize:config'); - -export interface GQLMetricsConfig { - port: number; -} - -export interface MetricsConfig { - host: string; - port: number; - gql: GQLMetricsConfig; -} - -export interface UpstreamConfig { - cache: CacheConfig, - ethServer: { - gqlApiEndpoint: string; - rpcProviderEndpoint: string; - } - traceProviderEndpoint: string; +export interface UpstreamConfig extends BaseUpstreamConfig { uniWatcher: { gqlEndpoint: string; gqlSubscriptionEndpoint: string; @@ -45,58 +15,6 @@ export interface UpstreamConfig { } } -export interface Config { - server: ServerConfig; - database: ConnectionOptions; +export interface Config extends BaseConfig { upstream: UpstreamConfig; - jobQueue: JobQueueConfig; - metrics: MetricsConfig; } - -export const getConfig = async (configFile: string): Promise => { - const configFilePath = path.resolve(configFile); - const fileExists = await fs.pathExists(configFilePath); - if (!fileExists) { - throw new Error(`Config file not found: ${configFilePath}`); - } - - const config = toml.parse(await fs.readFile(configFilePath, 'utf8')); - log('config', JSON.stringify(config, null, 2)); - - return config; -}; - -export const getResetConfig = async (config: Config): Promise<{ - dbConfig: ConnectionOptions, - serverConfig: ServerConfig, - upstreamConfig: UpstreamConfig, - ethClient: EthClient, - ethProvider: providers.BaseProvider -}> => { - const { database: dbConfig, upstream: upstreamConfig, server: serverConfig } = config; - - assert(serverConfig, 'Missing server config'); - assert(dbConfig, 'Missing database config'); - - assert(upstreamConfig, 'Missing upstream config'); - const { ethServer: { gqlApiEndpoint, rpcProviderEndpoint }, cache: cacheConfig } = upstreamConfig; - assert(gqlApiEndpoint, 'Missing upstream ethServer.gqlApiEndpoint'); - assert(rpcProviderEndpoint, 'Missing upstream ethServer.rpcProviderEndpoint'); - - const cache = await getCache(cacheConfig); - - const ethClient = new EthClient({ - gqlEndpoint: gqlApiEndpoint, - cache - }); - - const ethProvider = getCustomProvider(rpcProviderEndpoint); - - return { - dbConfig, - serverConfig, - upstreamConfig, - ethClient, - ethProvider - }; -}; diff --git a/packages/util/src/estimate-event-counts.ts b/packages/util/src/estimate-event-counts.ts index 56ebf089..8ee60128 100644 --- a/packages/util/src/estimate-event-counts.ts +++ b/packages/util/src/estimate-event-counts.ts @@ -5,7 +5,7 @@ import path from 'path'; import fs from 'fs'; import { createObjectCsvWriter } from 'csv-writer'; -import { wait } from './misc'; +import { wait } from '@cerc-io/util'; const CACHE_DIR = 'out/cached-data'; const RESULTS_DIR = 'out/estimation-results'; diff --git a/packages/util/src/events.ts b/packages/util/src/events.ts deleted file mode 100644 index 056c8994..00000000 --- a/packages/util/src/events.ts +++ /dev/null @@ -1,174 +0,0 @@ -// -// Copyright 2021 Vulcanize, Inc. -// - -import assert from 'assert'; -import debug from 'debug'; -import { PubSub } from 'graphql-subscriptions'; - -import { EthClient } from '@cerc-io/ipld-eth-client'; -import { - OrderDirection, - createPruningJob, - processBlockByNumberWithCache, - MAX_REORG_DEPTH, - JOB_KIND_PRUNE, - JOB_KIND_INDEX, - UNKNOWN_EVENT_NAME -} from '@cerc-io/util'; - -import { JobQueue } from './job-queue'; -import { BlockProgressInterface, EventInterface, IndexerInterface } from './types'; -import { UpstreamConfig } from './config'; - -const log = debug('vulcanize:events'); - -export const BlockProgressEvent = 'block-progress-event'; - -export class EventWatcher { - _ethClient: EthClient - _indexer: IndexerInterface - _subscription?: ZenObservable.Subscription - _pubsub: PubSub - _jobQueue: JobQueue - _upstreamConfig: UpstreamConfig - - constructor (upstreamConfig: UpstreamConfig, ethClient: EthClient, indexer: IndexerInterface, pubsub: PubSub, jobQueue: JobQueue) { - this._upstreamConfig = upstreamConfig; - this._ethClient = ethClient; - this._indexer = indexer; - this._pubsub = pubsub; - this._jobQueue = jobQueue; - } - - getBlockProgressEventIterator (): AsyncIterator { - return this._pubsub.asyncIterator([BlockProgressEvent]); - } - - async stop (): Promise { - if (this._subscription) { - log('Stopped watching upstream blocks'); - this._subscription.unsubscribe(); - } - } - - async startBlockProcessing (): Promise { - const syncStatus = await this._indexer.getSyncStatus(); - let startBlockNumber; - - if (!syncStatus) { - // Get latest block in chain. - const { block: currentBlock } = await this._ethClient.getBlockByHash(); - startBlockNumber = currentBlock.number; - } else { - startBlockNumber = syncStatus.chainHeadBlockNumber + 1; - } - - await processBlockByNumberWithCache(this._jobQueue, startBlockNumber); - - // Creating an AsyncIterable from AsyncIterator to iterate over the values. - // https://www.codementor.io/@tiagolopesferreira/asynchronous-iterators-in-javascript-jl1yg8la1#for-wait-of - const blockProgressEventIterable = { - // getBlockProgressEventIterator returns an AsyncIterator which can be used to listen to BlockProgress events. - [Symbol.asyncIterator]: this.getBlockProgressEventIterator.bind(this) - }; - - // Iterate over async iterable. - // https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Statements/for-await...of - for await (const data of blockProgressEventIterable) { - const { onBlockProgressEvent: { blockNumber, isComplete } } = data; - - if (isComplete) { - await processBlockByNumberWithCache(this._jobQueue, blockNumber + 1); - } - } - } - - async blockProcessingCompleteHandler (job: any): Promise { - const { data: { request: { data } } } = job; - const { kind } = data; - - switch (kind) { - case JOB_KIND_INDEX: - this._handleIndexingComplete(data); - break; - - case JOB_KIND_PRUNE: - this._handlePruningComplete(data); - break; - - default: - throw new Error(`Invalid Job kind ${kind} in complete handler of QUEUE_BLOCK_PROCESSING.`); - } - } - - async eventProcessingCompleteHandler (job: any): Promise { - const { data: { request: { data: { blockHash } } } } = job; - assert(blockHash); - - const blockProgress = await this._indexer.getBlockProgress(blockHash); - assert(blockProgress); - - await this.publishBlockProgressToSubscribers(blockProgress); - - return this._indexer.getBlockEvents( - blockProgress.blockHash, - { - eventName: [ - { value: UNKNOWN_EVENT_NAME, not: true, operator: 'equals' } - ] - }, - { - orderBy: 'index', - orderDirection: OrderDirection.asc - } - ); - } - - async publishBlockProgressToSubscribers (blockProgress: BlockProgressInterface): Promise { - const { blockHash, blockNumber, numEvents, numProcessedEvents, isComplete } = blockProgress; - - // Publishing the event here will result in pushing the payload to GQL subscribers for `onAddressEvent(address)`. - await this._pubsub.publish(BlockProgressEvent, { - onBlockProgressEvent: { - blockHash, - blockNumber, - numEvents, - numProcessedEvents, - isComplete - } - }); - } - - async _handleIndexingComplete (jobData: any): Promise { - const { blockNumber, priority } = jobData; - log(`Job onComplete indexing blocks at height ${blockNumber}`); - - const blockProgressEntities = await this._indexer.getBlocksAtHeight(Number(blockNumber), false); - - if (blockProgressEntities.length === 0) { - log(`block not indexed at height ${blockNumber}`); - return; - } - - const syncStatus = await this._indexer.updateSyncStatusIndexedBlock(blockProgressEntities[0].blockHash, Number(blockNumber)); - - // Create pruning job if required. - if (syncStatus && syncStatus.latestIndexedBlockNumber > (syncStatus.latestCanonicalBlockNumber + MAX_REORG_DEPTH)) { - await createPruningJob(this._jobQueue, syncStatus.latestCanonicalBlockNumber, priority); - } - - // Publish block progress event if no events exist. - // Event for blocks with events will be pusblished from eventProcessingCompleteHandler. - blockProgressEntities.forEach(async (blockProgress) => { - if (blockProgress && blockProgress.numEvents === 0) { - await this.publishBlockProgressToSubscribers(blockProgress); - } - }); - } - - async _handlePruningComplete (jobData: any): Promise { - const { pruneBlockHeight } = jobData; - log(`Job onComplete pruning at height ${pruneBlockHeight}`); - } -} diff --git a/packages/util/src/fill.ts b/packages/util/src/fill.ts deleted file mode 100644 index 9aef85a7..00000000 --- a/packages/util/src/fill.ts +++ /dev/null @@ -1,180 +0,0 @@ -// -// Copyright 2021 Vulcanize, Inc. -// - -import debug from 'debug'; - -import { processBlockByNumberWithCache } from '@cerc-io/util'; - -import { JobQueue } from './job-queue'; -import { EventWatcherInterface, IndexerInterface } from './types'; -import { wait } from './misc'; - -const log = debug('vulcanize:fill'); - -export const DEFAULT_PREFETCH_BATCH_SIZE = 10; - -// TODO: Use from @vulcanize/util (watcher-ts) - -export const fillBlocks = async ( - jobQueue: JobQueue, - indexer: IndexerInterface, - eventWatcher: EventWatcherInterface, - blockDelayInMilliSecs: number, - argv: { - startBlock: number, - endBlock: number, - prefetch: boolean, - batchBlocks?: number, - blockCid?: boolean - } -): Promise => { - let { startBlock, endBlock, prefetch, batchBlocks = DEFAULT_PREFETCH_BATCH_SIZE, blockCid = false } = argv; - - if (startBlock > endBlock) { - throw new Error(`endBlock ${endBlock} should be greater than or equal to startBlock ${startBlock}`); - } - - if (blockCid) { - // If true only fetch and updated block CID for indexed blocks. - await updateBlockCIDs(indexer, argv); - return; - } - - const syncStatus = await indexer.getSyncStatus(); - - if (syncStatus) { - if (startBlock > syncStatus.chainHeadBlockNumber + 1) { - throw new Error(`Missing blocks between startBlock ${startBlock} and chainHeadBlockNumber ${syncStatus.chainHeadBlockNumber}`); - } - - if (endBlock <= syncStatus.chainHeadBlockNumber) { - throw new Error(`endBlock ${endBlock} should be greater than chainHeadBlockNumber ${syncStatus.chainHeadBlockNumber}`); - } - - startBlock = syncStatus.chainHeadBlockNumber + 1; - } - - if (prefetch) { - await prefetchBlocks(indexer, blockDelayInMilliSecs, { startBlock, endBlock, batchBlocks }); - return; - } - - await eventWatcher.initBlockProcessingOnCompleteHandler(); - await eventWatcher.initEventProcessingOnCompleteHandler(); - - const numberOfBlocks = endBlock - startBlock + 1; - - processBlockByNumberWithCache(jobQueue, startBlock); - - // Creating an AsyncIterable from AsyncIterator to iterate over the values. - // https://www.codementor.io/@tiagolopesferreira/asynchronous-iterators-in-javascript-jl1yg8la1#for-wait-of - const blockProgressEventIterable = { - // getBlockProgressEventIterator returns an AsyncIterator which can be used to listen to BlockProgress events. - [Symbol.asyncIterator]: eventWatcher.getBlockProgressEventIterator.bind(eventWatcher) - }; - - console.time('time:fill#fillBlocks-process_blocks'); - - // Iterate over async iterable. - // https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Statements/for-await...of - for await (const data of blockProgressEventIterable) { - const { onBlockProgressEvent: { blockNumber, isComplete } } = data; - - if (isComplete) { - const blocksProcessed = blockNumber - startBlock + 1; - const completePercentage = Math.round(blocksProcessed / numberOfBlocks * 100); - log(`Processed ${blocksProcessed} of ${numberOfBlocks} blocks (${completePercentage}%)`); - - await processBlockByNumberWithCache(jobQueue, blockNumber + 1); - - if (blockNumber + 1 >= endBlock) { - // Break the async loop when blockProgress event is for the endBlock and processing is complete. - break; - } - } - } - - log('Processed all blocks (100%)'); - console.timeEnd('time:fill#fillBlocks-process_blocks'); -}; - -const prefetchBlocks = async ( - indexer: IndexerInterface, - blockDelayInMilliSecs: number, - { startBlock, endBlock, batchBlocks }: { - startBlock: number, - endBlock: number, - batchBlocks: number, - } -) => { - for (let i = startBlock; i <= endBlock; i = i + batchBlocks) { - const batchEndBlock = Math.min(i + batchBlocks, endBlock + 1); - let blockNumbers = [...Array(batchEndBlock - i).keys()].map(n => n + i); - log('Fetching blockNumbers:', blockNumbers); - - let blocks = []; - - // Fetch blocks again if there are missing blocks. - while (true) { - const blockPromises = blockNumbers.map(async blockNumber => indexer.getBlocks({ blockNumber })); - const res = await Promise.all(blockPromises); - - const missingIndex = res.findIndex(blocks => blocks.length === 0); - - if (missingIndex < 0) { - blocks = res.flat(); - break; - } - - blockNumbers = blockNumbers.slice(missingIndex); - await wait(blockDelayInMilliSecs); - } - - const fetchBlockPromises = blocks.map(async block => { - const { cid, blockHash, blockNumber, parentHash, timestamp } = block; - const blockProgress = await indexer.getBlockProgress(blockHash); - - if (!blockProgress) { - await indexer.saveBlockAndFetchEvents({ cid, blockHash, blockNumber, parentHash, blockTimestamp: timestamp }); - - // In fill prefetch, not saving events to database as now events are saved after processing them in job-runner. - // Saving them in fill prefetch will result to error when events get saved after processing. - } - }); - - try { - await Promise.all(fetchBlockPromises); - } catch (error: any) { - log(error.message); - log('Exiting as upstream block not available for prefetch'); - process.exit(0); - } - } -}; - -const updateBlockCIDs = async ( - indexer: IndexerInterface, - { startBlock, endBlock }: { - startBlock: number, - endBlock: number - } -) => { - for (let i = startBlock; i <= endBlock; i++) { - console.time(`time:fill#updateBlockCIDs-update-block-${i})}`); - const blocks = await indexer.getBlocks({ blockNumber: i }); - - const blockUpdatePromises = blocks.map(async (block: any) => { - const { cid, blockHash } = block; - const blockProgress = await indexer.getBlockProgress(blockHash); - - if (blockProgress) { - blockProgress.cid = cid; - await indexer.updateBlockProgress(blockProgress, blockProgress.lastProcessedEventIndex); - } - }); - - await Promise.all(blockUpdatePromises); - console.timeEnd(`time:fill#updateBlockCIDs-update-block-${i})}`); - } -}; diff --git a/packages/util/src/gql-metrics.ts b/packages/util/src/gql-metrics.ts deleted file mode 100644 index eec55254..00000000 --- a/packages/util/src/gql-metrics.ts +++ /dev/null @@ -1,51 +0,0 @@ -// -// Copyright 2022 Vulcanize, Inc. -// - -import * as client from 'prom-client'; -import express, { Application } from 'express'; -import debug from 'debug'; -import assert from 'assert'; - -import { Config } from './config'; - -const log = debug('vulcanize:gql-metrics'); - -const gqlRegistry = new client.Registry(); - -// Create custom metrics -export const gqlTotalQueryCount = new client.Counter({ - name: 'gql_query_count_total', - help: 'Total GQL queries made', - registers: [gqlRegistry] -}); - -export const gqlQueryCount = new client.Counter({ - name: 'gql_query_count', - help: 'GQL queries made', - labelNames: ['name'] as const, - registers: [gqlRegistry] -}); - -// Export metrics on a server -const app: Application = express(); - -export const startGQLMetricsServer = async (config: Config): Promise => { - if (!config.metrics || !config.metrics.gql) { - log('GQL metrics disabled. To enable add GQL metrics host and port.'); - return; - } - - assert(config.metrics.host, 'Missing config for metrics host'); - assert(config.metrics.gql.port, 'Missing config for gql metrics port'); - - app.get('/metrics', async (req, res) => { - res.setHeader('Content-Type', gqlRegistry.contentType); - const metrics = await gqlRegistry.metrics(); - res.send(metrics); - }); - - app.listen(config.metrics.gql.port, config.metrics.host, () => { - log(`GQL Metrics exposed at http://${config.metrics.host}:${config.metrics.gql.port}/metrics`); - }); -}; diff --git a/packages/util/src/graph-decimal.ts b/packages/util/src/graph-decimal.ts deleted file mode 100644 index 41a6f484..00000000 --- a/packages/util/src/graph-decimal.ts +++ /dev/null @@ -1,222 +0,0 @@ -// -// Copyright 2021 Vulcanize, Inc. -// - -import Decimal from 'decimal.js'; - -// Constant used in function digitsToString. -const LOG_BASE = 7; - -// Customize Decimal according the limits of IEEE-754 decimal128. -// Reference: https://github.com/graphprotocol/graph-node/blob/v0.24.2/graph/src/data/store/scalar.rs#L42 -const MIN_EXP = -6143; -const MAX_EXP = 6144; -const PRECISION = 34; -const _GraphDecimal = Decimal.clone({ precision: PRECISION }); - -// Wrapper class around Decimal. -export class GraphDecimal { - value: Decimal; - - constructor (n: Decimal.Value) { - // Apply precision to the input value using toSignificantDigits(). - this.value = new _GraphDecimal(n).toSignificantDigits(); - } - - toString (): string { - this._checkOutOfRange(this); - - return this.value.toString(); - } - - toJSON (): string { - // Using fixed-point notation in preparing entity state. - return this.toFixed(); - } - - toFixed (): string { - this._checkOutOfRange(this); - - return this.value.toFixed(); - } - - plus (n: Decimal.Value | GraphDecimal): GraphDecimal { - this._checkOutOfRange(this); - const param = this._checkOutOfRange(n); - - return new GraphDecimal(this.value.plus(param)); - } - - add (n: Decimal.Value | GraphDecimal): GraphDecimal { - this._checkOutOfRange(this); - const param = this._checkOutOfRange(n); - - return new GraphDecimal(this.value.add(param)); - } - - minus (n: Decimal.Value | GraphDecimal): GraphDecimal { - this._checkOutOfRange(this); - const param = this._checkOutOfRange(n); - - return new GraphDecimal(this.value.minus(param)); - } - - sub (n: Decimal.Value | GraphDecimal): GraphDecimal { - this._checkOutOfRange(this); - const param = this._checkOutOfRange(n); - - return new GraphDecimal(this.value.sub(param)); - } - - times (n: Decimal.Value | GraphDecimal): GraphDecimal { - this._checkOutOfRange(this); - const param = this._checkOutOfRange(n); - - return new GraphDecimal(this.value.times(param)); - } - - mul (n: Decimal.Value | GraphDecimal): GraphDecimal { - this._checkOutOfRange(this); - const param = this._checkOutOfRange(n); - - return new GraphDecimal(this.value.mul(param)); - } - - dividedBy (n: Decimal.Value | GraphDecimal): GraphDecimal { - this._checkOutOfRange(this); - const param = this._checkOutOfRange(n); - - return new GraphDecimal(this.value.dividedBy(param)); - } - - div (n: Decimal.Value | GraphDecimal): GraphDecimal { - this._checkOutOfRange(this); - const param = this._checkOutOfRange(n); - - return new GraphDecimal(this.value.div(param)); - } - - pow (n: Decimal.Value | GraphDecimal): GraphDecimal { - this._checkOutOfRange(this); - const param = this._checkOutOfRange(n); - - return new GraphDecimal(this.value.pow(param)); - } - - isZero (): boolean { - this._checkOutOfRange(this); - - return this.value.isZero(); - } - - lessThan (n: Decimal.Value | GraphDecimal): boolean { - this._checkOutOfRange(this); - const param = this._checkOutOfRange(n); - - return this.value.lessThan(param); - } - - lt (n: Decimal.Value | GraphDecimal): boolean { - this._checkOutOfRange(this); - const param = this._checkOutOfRange(n); - - return this.value.lt(param); - } - - greaterThan (n: Decimal.Value | GraphDecimal): boolean { - this._checkOutOfRange(this); - const param = this._checkOutOfRange(n); - - return this.value.greaterThan(param); - } - - gt (n: Decimal.Value | GraphDecimal): boolean { - this._checkOutOfRange(this); - const param = this._checkOutOfRange(n); - - return this.value.gt(param); - } - - comparedTo (n: Decimal.Value | GraphDecimal): number { - this._checkOutOfRange(this); - const param = this._checkOutOfRange(n); - - return this.value.comparedTo(param); - } - - cmp (n: Decimal.Value | GraphDecimal): number { - this._checkOutOfRange(this); - const param = this._checkOutOfRange(n); - - return this.value.cmp(param); - } - - /** - * Function to check and throw an error if a given value has exponent out of the specified range (MIN_EXP to MAX_EXP). - * @param n A Decimal value to check the range for. - * @returns A Decimal.Value instance. - */ - private _checkOutOfRange (n: Decimal.Value | GraphDecimal): Decimal.Value { - let exp; - - // Return n.value if n is an instance of GraphDecimal. - if (n instanceof GraphDecimal) { - n = n.value; - exp = _getGraphExp(n.d, n.e); - } else { - const decimal = new Decimal(n); - exp = _getGraphExp(decimal.d, decimal.e); - } - - if (exp < MIN_EXP || exp > MAX_EXP) { - throw new Error(`Big decimal exponent '${exp}' is outside the '${MIN_EXP}' to '${MAX_EXP}' range`); - } - - return n; - } -} - -// Get exponent from Decimal d and e according to format in graph-node. -function _getGraphExp (d: any, e: number): number { - const digits = _digitsToString(d); - const exp = e - digits.length + 1; - - return exp; -} - -// Get digits in a string from an array of digit numbers (Decimal().d) -// https://github.com/MikeMcl/decimal.js/blob/master/decimal.mjs#L2516 -function _digitsToString (d: any) { - let i, k, ws; - const indexOfLastWord = d.length - 1; - let str = ''; - let w = d[0]; - - if (indexOfLastWord > 0) { - str += w; - for (i = 1; i < indexOfLastWord; i++) { - ws = d[i] + ''; - k = LOG_BASE - ws.length; - if (k) str += _getZeroString(k); - str += ws; - } - - w = d[i]; - ws = w + ''; - k = LOG_BASE - ws.length; - if (k) str += _getZeroString(k); - } else if (w === 0) { - return '0'; - } - - // Remove trailing zeros of last w. - for (; w % 10 === 0;) w /= 10; - - return str + w; -} - -function _getZeroString (k: any) { - let zs = ''; - for (; k--;) zs += '0'; - return zs; -} diff --git a/packages/util/src/job-queue.ts b/packages/util/src/job-queue.ts deleted file mode 100644 index aec11da2..00000000 --- a/packages/util/src/job-queue.ts +++ /dev/null @@ -1,132 +0,0 @@ -// -// Copyright 2021 Vulcanize, Inc. -// - -import assert from 'assert'; -import debug from 'debug'; -import PgBoss from 'pg-boss'; - -import { jobCount, lastJobCompletedOn } from '@cerc-io/util'; - -interface Config { - dbConnectionString: string - maxCompletionLag: number -} - -type JobCallback = (job: any) => Promise; - -const JOBS_PER_INTERVAL = 5; - -const log = debug('vulcanize:job-queue'); - -export class JobQueue { - _config: Config; - _boss: PgBoss; - - constructor (config: Config) { - this._config = config; - this._boss = new PgBoss({ - // https://github.com/timgit/pg-boss/blob/master/docs/configuration.md - - connectionString: this._config.dbConnectionString, - onComplete: true, - - // Num of retries with backoff - retryLimit: 15, - retryDelay: 1, - retryBackoff: true, - - // Time before active job fails by expiration. - expireInHours: 24 * 1, // 1 day - - retentionHours: 4, // 4 hours - - deleteAfterHours: 1, // 1 hour - - newJobCheckInterval: 100, - - // Time interval for firing monitor-states event. - monitorStateIntervalSeconds: 10 - }); - - this._boss.on('error', error => log(error)); - - this._boss.on('monitor-states', monitorStates => { - jobCount.set({ state: 'all' }, monitorStates.all); - jobCount.set({ state: 'created' }, monitorStates.created); - jobCount.set({ state: 'retry' }, monitorStates.retry); - jobCount.set({ state: 'active' }, monitorStates.active); - jobCount.set({ state: 'completed' }, monitorStates.completed); - jobCount.set({ state: 'expired' }, monitorStates.expired); - jobCount.set({ state: 'cancelled' }, monitorStates.cancelled); - jobCount.set({ state: 'failed' }, monitorStates.failed); - - Object.entries(monitorStates.queues).forEach(([name, counts]) => { - jobCount.set({ state: 'all', name }, counts.all); - jobCount.set({ state: 'created', name }, counts.created); - jobCount.set({ state: 'retry', name }, counts.retry); - jobCount.set({ state: 'active', name }, counts.active); - jobCount.set({ state: 'completed', name }, counts.completed); - jobCount.set({ state: 'expired', name }, counts.expired); - jobCount.set({ state: 'cancelled', name }, counts.cancelled); - jobCount.set({ state: 'failed', name }, counts.failed); - }); - }); - } - - get maxCompletionLag (): number { - return this._config.maxCompletionLag; - } - - async start (): Promise { - await this._boss.start(); - } - - async stop (): Promise { - await this._boss.stop(); - } - - async subscribe (queue: string, callback: JobCallback): Promise { - return await this._boss.subscribe( - queue, - { - teamSize: JOBS_PER_INTERVAL, - teamConcurrency: 1 - }, - async (job: any) => { - try { - log(`Processing queue ${queue} job ${job.id}...`); - await callback(job); - lastJobCompletedOn.setToCurrentTime({ name: queue }); - } catch (error) { - log(`Error in queue ${queue} job ${job.id}`); - log(error); - throw error; - } - } - ); - } - - async onComplete (queue: string, callback: JobCallback): Promise { - return await this._boss.onComplete(queue, { teamSize: JOBS_PER_INTERVAL, teamConcurrency: 1 }, async (job: any) => { - const { id, data: { failed, createdOn } } = job; - log(`Job onComplete for queue ${queue} job ${id} created ${createdOn} success ${!failed}`); - await callback(job); - }); - } - - async markComplete (job: any): Promise { - this._boss.complete(job.id); - } - - async pushJob (queue: string, job: any, options: PgBoss.PublishOptions = {}): Promise { - assert(this._boss); - - const jobId = await this._boss.publish(queue, job, options); - log(`Created job in queue ${queue}: ${jobId}`); - } - - async deleteAllJobs (): Promise { - await this._boss.deleteAllQueues(); - } -} diff --git a/packages/util/src/job-runner.ts b/packages/util/src/job-runner.ts index 90824bf9..b1293f04 100644 --- a/packages/util/src/job-runner.ts +++ b/packages/util/src/job-runner.ts @@ -23,11 +23,12 @@ import { QUEUE_EVENT_PROCESSING, UNKNOWN_EVENT_NAME, wait, - BlockProgressInterface + BlockProgressInterface, + JobQueue, + EventInterface } from '@cerc-io/util'; -import { JobQueue } from './job-queue'; -import { EventInterface, IndexerInterface } from './types'; +import { IndexerInterface } from './types'; const log = debug('vulcanize:job-runner'); @@ -285,10 +286,8 @@ export class JobRunner { await this._indexer.processBlock(blockProgress); this._blockNumEvents = blockProgress.numEvents; - // Check if block has unprocessed events. - if (blockProgress.numProcessedEvents < blockProgress.numEvents) { - await this._jobQueue.pushJob(QUEUE_EVENT_PROCESSING, { kind: JOB_KIND_EVENTS, blockHash: blockProgress.blockHash, publish: true }); - } + // Push job to event processing queue. + await this._jobQueue.pushJob(QUEUE_EVENT_PROCESSING, { kind: JOB_KIND_EVENTS, blockHash: blockProgress.blockHash, publish: true }); const indexBlockDuration = new Date().getTime() - indexBlockStartTime.getTime(); log(`time:job-runner#_indexBlock: ${indexBlockDuration}ms`); diff --git a/packages/util/src/misc.ts b/packages/util/src/misc.ts deleted file mode 100644 index 1fd885e2..00000000 --- a/packages/util/src/misc.ts +++ /dev/null @@ -1,138 +0,0 @@ -// -// Copyright 2021 Vulcanize, Inc. -// - -import assert from 'assert'; -import { ValueTransformer } from 'typeorm'; -import yargs from 'yargs'; -import { hideBin } from 'yargs/helpers'; -import { utils, getDefaultProvider, providers } from 'ethers'; -import Decimal from 'decimal.js'; - -import { DEFAULT_CONFIG_PATH } from '@cerc-io/util'; - -import { Config } from './config'; -import { JobQueue } from './job-queue'; -import { GraphDecimal } from './graph-decimal'; - -/** - * Method to wait for specified time. - * @param time Time to wait in milliseconds - */ -export const wait = async (time: number): Promise => new Promise(resolve => setTimeout(resolve, time)); - -/** - * Transformer used by typeorm entity for GraphDecimal type fields. - */ -export const graphDecimalTransformer: ValueTransformer = { - to: (value?: GraphDecimal) => { - if (value) { - return value.toFixed(); - } - - return value; - }, - from: (value?: string) => { - if (value) { - return new GraphDecimal(value); - } - - return value; - } -}; - -/** - * Transformer used by typeorm entity for Decimal type fields. - */ -export const decimalTransformer: ValueTransformer = { - to: (value?: Decimal) => { - if (value) { - return value.toString(); - } - - return value; - }, - from: (value?: string) => { - if (value) { - return new Decimal(value); - } - - return value; - } -}; - -/** - * Transformer used by typeorm entity for bigint type fields. - */ -export const bigintTransformer: ValueTransformer = { - to: (value?: bigint) => { - if (value) { - return value.toString(); - } - - return value; - }, - from: (value?: string) => { - if (value) { - return BigInt(value); - } - - return value; - } -}; - -export const resetJobs = async (config: Config): Promise => { - const { jobQueue: jobQueueConfig } = config; - - const { dbConnectionString, maxCompletionLagInSecs } = jobQueueConfig; - assert(dbConnectionString, 'Missing job queue db connection string'); - - const jobQueue = new JobQueue({ dbConnectionString, maxCompletionLag: maxCompletionLagInSecs }); - await jobQueue.start(); - await jobQueue.deleteAllJobs(); -}; - -export const getResetYargs = (): yargs.Argv => { - return yargs(hideBin(process.argv)) - .parserConfiguration({ - 'parse-numbers': false - }).options({ - configFile: { - alias: 'f', - type: 'string', - require: true, - demandOption: true, - describe: 'configuration file path (toml)', - default: DEFAULT_CONFIG_PATH - } - }); -}; - -export const getCustomProvider = (network?: providers.Network | string, options?: any): providers.BaseProvider => { - const provider = getDefaultProvider(network, options); - provider.formatter = new CustomFormatter(); - return provider; -}; - -class CustomFormatter extends providers.Formatter { - blockTag (blockTag: any): string { - if (blockTag == null) { return 'latest'; } - - if (blockTag === 'earliest') { return '0x0'; } - - if (blockTag === 'latest' || blockTag === 'pending') { - return blockTag; - } - - if (typeof (blockTag) === 'number' || utils.isHexString(blockTag)) { - // Return value if hex string is of block hash length. - if (utils.isHexString(blockTag) && utils.hexDataLength(blockTag) === 32) { - return blockTag; - } - - return utils.hexValue(blockTag); - } - - throw new Error('invalid blockTag'); - } -} diff --git a/packages/util/src/types.ts b/packages/util/src/types.ts index 6f59146e..3b8a8f1b 100644 --- a/packages/util/src/types.ts +++ b/packages/util/src/types.ts @@ -2,64 +2,8 @@ // Copyright 2021 Vulcanize, Inc. // -import { DeepPartial } from 'typeorm'; - -import { IndexerInterface as BaseIndexerInterface } from '@cerc-io/util'; - -export interface BlockProgressInterface { - id: number; - cid: string; - blockHash: string; - parentHash: string; - blockNumber: number; - blockTimestamp: number; - numEvents: number; - numProcessedEvents: number; - lastProcessedEventIndex: number; - isComplete: boolean; - isPruned: boolean; - createdAt: Date; -} - -export interface SyncStatusInterface { - id: number; - chainHeadBlockHash: string; - chainHeadBlockNumber: number; - latestIndexedBlockHash: string; - latestIndexedBlockNumber: number; - latestCanonicalBlockHash: string; - latestCanonicalBlockNumber: number; - initialIndexedBlockHash: string; - initialIndexedBlockNumber: number; -} - -export interface EventInterface { - id: number; - block: BlockProgressInterface; - txHash: string; - index: number; - contract: string; - eventName: string; - eventInfo: string; - extraInfo: string; - proof: string; -} - -export interface ContractInterface { - id: number; - address: string; - startingBlock: number; - kind: string; - checkpoint: boolean; -} +import { IndexerInterface as BaseIndexerInterface, EventInterface } from '@cerc-io/util'; export interface IndexerInterface extends BaseIndexerInterface { - saveBlockProgress (block: DeepPartial): Promise saveEvents (dbEvents: EventInterface[]): Promise } - -export interface EventWatcherInterface { - getBlockProgressEventIterator (): AsyncIterator - initBlockProcessingOnCompleteHandler (): Promise - initEventProcessingOnCompleteHandler (): Promise -} diff --git a/yarn.lock b/yarn.lock index 46abcb3c..36544b8d 100644 --- a/yarn.lock +++ b/yarn.lock @@ -21,50 +21,6 @@ tslib "^1.10.0" zen-observable "^0.8.14" -"@apollo/protobufjs@1.2.2": - version "1.2.2" - resolved "https://registry.yarnpkg.com/@apollo/protobufjs/-/protobufjs-1.2.2.tgz#4bd92cd7701ccaef6d517cdb75af2755f049f87c" - integrity sha512-vF+zxhPiLtkwxONs6YanSt1EpwpGilThpneExUN5K3tCymuxNnVq2yojTvnpRjv2QfsEIt/n7ozPIIzBLwGIDQ== - dependencies: - "@protobufjs/aspromise" "^1.1.2" - "@protobufjs/base64" "^1.1.2" - "@protobufjs/codegen" "^2.0.4" - "@protobufjs/eventemitter" "^1.1.0" - "@protobufjs/fetch" "^1.1.0" - "@protobufjs/float" "^1.0.2" - "@protobufjs/inquire" "^1.1.0" - "@protobufjs/path" "^1.1.2" - "@protobufjs/pool" "^1.1.0" - "@protobufjs/utf8" "^1.1.0" - "@types/long" "^4.0.0" - "@types/node" "^10.1.0" - long "^4.0.0" - -"@apollographql/apollo-tools@^0.5.0": - version "0.5.1" - resolved "https://registry.yarnpkg.com/@apollographql/apollo-tools/-/apollo-tools-0.5.1.tgz#f0baef739ff7e2fafcb8b98ad29f6ac817e53e32" - integrity sha512-ZII+/xUFfb9ezDU2gad114+zScxVFMVlZ91f8fGApMzlS1kkqoyLnC4AJaQ1Ya/X+b63I20B4Gd+eCL8QuB4sA== - -"@apollographql/graphql-playground-html@1.6.27": - version "1.6.27" - resolved "https://registry.yarnpkg.com/@apollographql/graphql-playground-html/-/graphql-playground-html-1.6.27.tgz#bc9ab60e9445aa2a8813b4e94f152fa72b756335" - integrity sha512-tea2LweZvn6y6xFV11K0KC8ETjmm52mQrW+ezgB2O/aTQf8JGyFmMcRPFgUaQZeHbWdm8iisDC6EjOKsXu0nfw== - dependencies: - xss "^1.0.8" - -"@apollographql/graphql-upload-8-fork@^8.1.3": - version "8.1.3" - resolved "https://registry.yarnpkg.com/@apollographql/graphql-upload-8-fork/-/graphql-upload-8-fork-8.1.3.tgz#a0d4e0d5cec8e126d78bd915c264d6b90f5784bc" - integrity sha512-ssOPUT7euLqDXcdVv3Qs4LoL4BPtfermW1IOouaqEmj36TpHYDmYDIbKoSQxikd9vtMumFnP87OybH7sC9fJ6g== - dependencies: - "@types/express" "*" - "@types/fs-capacitor" "*" - "@types/koa" "*" - busboy "^0.3.1" - fs-capacitor "^2.0.4" - http-errors "^1.7.3" - object-path "^0.11.4" - "@babel/code-frame@7.12.11": version "7.12.11" resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.12.11.tgz#f4ad435aa263db935b8f10f2c552d23fb716a63f" @@ -290,7 +246,7 @@ "@ethersproject/properties" "^5.7.0" "@ethersproject/strings" "^5.7.0" -"@ethersproject/abstract-provider@5.7.0", "@ethersproject/abstract-provider@^5.3.0", "@ethersproject/abstract-provider@^5.7.0": +"@ethersproject/abstract-provider@5.7.0", "@ethersproject/abstract-provider@^5.7.0": version "5.7.0" resolved "https://registry.yarnpkg.com/@ethersproject/abstract-provider/-/abstract-provider-5.7.0.tgz#b0a8550f88b6bf9d51f90e4795d48294630cb9ef" integrity sha512-R41c9UkchKCpAqStMYUpdunjo3pkEvZC3FAwZn5S5MGbXoMQOHIdHItezTETxAO5bevtMApSyEhn9+CHcDsWBw== @@ -303,7 +259,7 @@ "@ethersproject/transactions" "^5.7.0" "@ethersproject/web" "^5.7.0" -"@ethersproject/abstract-signer@5.7.0", "@ethersproject/abstract-signer@^5.3.0", "@ethersproject/abstract-signer@^5.7.0": +"@ethersproject/abstract-signer@5.7.0", "@ethersproject/abstract-signer@^5.7.0": version "5.7.0" resolved "https://registry.yarnpkg.com/@ethersproject/abstract-signer/-/abstract-signer-5.7.0.tgz#13f4f32117868452191a4649723cb086d2b596b2" integrity sha512-a16V8bq1/Cz+TGCkE2OPMTOUDLS3grCpdjoJCYNnVBbdYEMSgKrU0+B90s8b6H+ByYTBZN7a3g76jdIJi7UfKQ== @@ -314,7 +270,7 @@ "@ethersproject/logger" "^5.7.0" "@ethersproject/properties" "^5.7.0" -"@ethersproject/address@5.7.0", "@ethersproject/address@^5.3.0", "@ethersproject/address@^5.7.0": +"@ethersproject/address@5.7.0", "@ethersproject/address@^5.7.0": version "5.7.0" resolved "https://registry.yarnpkg.com/@ethersproject/address/-/address-5.7.0.tgz#19b56c4d74a3b0a46bfdbb6cfcc0a153fc697f37" integrity sha512-9wYhYt7aghVGo758POM5nqcOMaE168Q6aRLJZwUmiqSrAungkG74gSSeKEIR7ukixesdRZGPgVqme6vmxs1fkA== @@ -332,7 +288,7 @@ dependencies: "@ethersproject/bytes" "^5.7.0" -"@ethersproject/basex@5.7.0", "@ethersproject/basex@^5.3.0", "@ethersproject/basex@^5.7.0": +"@ethersproject/basex@5.7.0", "@ethersproject/basex@^5.7.0": version "5.7.0" resolved "https://registry.yarnpkg.com/@ethersproject/basex/-/basex-5.7.0.tgz#97034dc7e8938a8ca943ab20f8a5e492ece4020b" integrity sha512-ywlh43GwZLv2Voc2gQVTKBoVQ1mti3d8HK5aMxsfu/nRDnMmNqaSJ3r3n85HBByT8OpoY96SXM1FogC533T4zw== @@ -340,7 +296,7 @@ "@ethersproject/bytes" "^5.7.0" "@ethersproject/properties" "^5.7.0" -"@ethersproject/bignumber@5.7.0", "@ethersproject/bignumber@^5.3.0", "@ethersproject/bignumber@^5.7.0": +"@ethersproject/bignumber@5.7.0", "@ethersproject/bignumber@^5.7.0": version "5.7.0" resolved "https://registry.yarnpkg.com/@ethersproject/bignumber/-/bignumber-5.7.0.tgz#e2f03837f268ba655ffba03a57853e18a18dc9c2" integrity sha512-n1CAdIHRWjSucQO3MC1zPSVgV/6dy/fjL9pMrPP9peL+QxEg9wOsVqwD4+818B6LUEtaXzVHQiuivzRoxPxUGw== @@ -349,14 +305,14 @@ "@ethersproject/logger" "^5.7.0" bn.js "^5.2.1" -"@ethersproject/bytes@5.7.0", "@ethersproject/bytes@^5.3.0", "@ethersproject/bytes@^5.7.0": +"@ethersproject/bytes@5.7.0", "@ethersproject/bytes@^5.7.0": version "5.7.0" resolved "https://registry.yarnpkg.com/@ethersproject/bytes/-/bytes-5.7.0.tgz#a00f6ea8d7e7534d6d87f47188af1148d71f155d" integrity sha512-nsbxwgFXWh9NyYWo+U8atvmMsSdKJprTcICAkvbBffT75qDocbuggBU0SJiVK2MuTrp0q+xvLkTnGMPK1+uA9A== dependencies: "@ethersproject/logger" "^5.7.0" -"@ethersproject/constants@5.7.0", "@ethersproject/constants@^5.3.0", "@ethersproject/constants@^5.7.0": +"@ethersproject/constants@5.7.0", "@ethersproject/constants@^5.7.0": version "5.7.0" resolved "https://registry.yarnpkg.com/@ethersproject/constants/-/constants-5.7.0.tgz#df80a9705a7e08984161f09014ea012d1c75295e" integrity sha512-DHI+y5dBNvkpYUMiRQyxRBYBefZkJfo70VUkUAsRjcPs47muV9evftfZ0PJVCXYbAiCgght0DtcF9srFQmIgWA== @@ -379,7 +335,7 @@ "@ethersproject/properties" "^5.7.0" "@ethersproject/transactions" "^5.7.0" -"@ethersproject/hash@5.7.0", "@ethersproject/hash@^5.3.0", "@ethersproject/hash@^5.7.0": +"@ethersproject/hash@5.7.0", "@ethersproject/hash@^5.7.0": version "5.7.0" resolved "https://registry.yarnpkg.com/@ethersproject/hash/-/hash-5.7.0.tgz#eb7aca84a588508369562e16e514b539ba5240a7" integrity sha512-qX5WrQfnah1EFnO5zJv1v46a8HW0+E5xuBBDTwMFZLuVTx0tbU2kkx15NqdjxecrLGatQN9FGQKpb1FKdHCt+g== @@ -439,12 +395,12 @@ "@ethersproject/bytes" "^5.7.0" js-sha3 "0.8.0" -"@ethersproject/logger@5.7.0", "@ethersproject/logger@^5.3.0", "@ethersproject/logger@^5.7.0": +"@ethersproject/logger@5.7.0", "@ethersproject/logger@^5.7.0": version "5.7.0" resolved "https://registry.yarnpkg.com/@ethersproject/logger/-/logger-5.7.0.tgz#6ce9ae168e74fecf287be17062b590852c311892" integrity sha512-0odtFdXu/XHtjQXJYA3u9G0G8btm0ND5Cu8M7i5vhEcE8/HmF4Lbdqanwyv4uQTr2tx6b7fQRmgLrsnpQlmnig== -"@ethersproject/networks@5.7.1", "@ethersproject/networks@^5.3.0", "@ethersproject/networks@^5.7.0": +"@ethersproject/networks@5.7.1", "@ethersproject/networks@^5.7.0": version "5.7.1" resolved "https://registry.yarnpkg.com/@ethersproject/networks/-/networks-5.7.1.tgz#118e1a981d757d45ccea6bb58d9fd3d9db14ead6" integrity sha512-n/MufjFYv3yFcUyfhnXotyDlNdFb7onmkSy8aQERi2PjNcnWQ66xXxa3XlS8nCcA8aJKJjIIMNJTC7tu80GwpQ== @@ -459,38 +415,13 @@ "@ethersproject/bytes" "^5.7.0" "@ethersproject/sha2" "^5.7.0" -"@ethersproject/properties@5.7.0", "@ethersproject/properties@^5.3.0", "@ethersproject/properties@^5.7.0": +"@ethersproject/properties@5.7.0", "@ethersproject/properties@^5.7.0": version "5.7.0" resolved "https://registry.yarnpkg.com/@ethersproject/properties/-/properties-5.7.0.tgz#a6e12cb0439b878aaf470f1902a176033067ed30" integrity sha512-J87jy8suntrAkIZtecpxEPxY//szqr1mlBaYlQ0r4RCaiD2hjheqF9s1LVE8vVuJCXisjIP+JgtK/Do54ej4Sw== dependencies: "@ethersproject/logger" "^5.7.0" -"@ethersproject/providers@5.3.0": - version "5.3.0" - resolved "https://registry.yarnpkg.com/@ethersproject/providers/-/providers-5.3.0.tgz#bccb49f1073a7d56e24f49abb14bb281c9b08636" - integrity sha512-HtL+DEbzPcRyfrkrMay7Rk/4he+NbUpzI/wHXP4Cqtra82nQOnqqCgTQc4HbdDrl75WVxG/JRMFhyneIPIMZaA== - dependencies: - "@ethersproject/abstract-provider" "^5.3.0" - "@ethersproject/abstract-signer" "^5.3.0" - "@ethersproject/address" "^5.3.0" - "@ethersproject/basex" "^5.3.0" - "@ethersproject/bignumber" "^5.3.0" - "@ethersproject/bytes" "^5.3.0" - "@ethersproject/constants" "^5.3.0" - "@ethersproject/hash" "^5.3.0" - "@ethersproject/logger" "^5.3.0" - "@ethersproject/networks" "^5.3.0" - "@ethersproject/properties" "^5.3.0" - "@ethersproject/random" "^5.3.0" - "@ethersproject/rlp" "^5.3.0" - "@ethersproject/sha2" "^5.3.0" - "@ethersproject/strings" "^5.3.0" - "@ethersproject/transactions" "^5.3.0" - "@ethersproject/web" "^5.3.0" - bech32 "1.1.4" - ws "7.4.6" - "@ethersproject/providers@5.7.1": version "5.7.1" resolved "https://registry.yarnpkg.com/@ethersproject/providers/-/providers-5.7.1.tgz#b0799b616d5579cd1067a8ebf1fc1ec74c1e122c" @@ -517,7 +448,7 @@ bech32 "1.1.4" ws "7.4.6" -"@ethersproject/random@5.7.0", "@ethersproject/random@^5.3.0", "@ethersproject/random@^5.7.0": +"@ethersproject/random@5.7.0", "@ethersproject/random@^5.7.0": version "5.7.0" resolved "https://registry.yarnpkg.com/@ethersproject/random/-/random-5.7.0.tgz#af19dcbc2484aae078bb03656ec05df66253280c" integrity sha512-19WjScqRA8IIeWclFme75VMXSBvi4e6InrUNuaR4s5pTF2qNhcGdCUwdxUVGtDDqC00sDLCO93jPQoDUH4HVmQ== @@ -525,7 +456,7 @@ "@ethersproject/bytes" "^5.7.0" "@ethersproject/logger" "^5.7.0" -"@ethersproject/rlp@5.7.0", "@ethersproject/rlp@^5.3.0", "@ethersproject/rlp@^5.7.0": +"@ethersproject/rlp@5.7.0", "@ethersproject/rlp@^5.7.0": version "5.7.0" resolved "https://registry.yarnpkg.com/@ethersproject/rlp/-/rlp-5.7.0.tgz#de39e4d5918b9d74d46de93af80b7685a9c21304" integrity sha512-rBxzX2vK8mVF7b0Tol44t5Tb8gomOHkj5guL+HhzQ1yBh/ydjGnpw6at+X6Iw0Kp3OzzzkcKp8N9r0W4kYSs9w== @@ -533,7 +464,7 @@ "@ethersproject/bytes" "^5.7.0" "@ethersproject/logger" "^5.7.0" -"@ethersproject/sha2@5.7.0", "@ethersproject/sha2@^5.3.0", "@ethersproject/sha2@^5.7.0": +"@ethersproject/sha2@5.7.0", "@ethersproject/sha2@^5.7.0": version "5.7.0" resolved "https://registry.yarnpkg.com/@ethersproject/sha2/-/sha2-5.7.0.tgz#9a5f7a7824ef784f7f7680984e593a800480c9fb" integrity sha512-gKlH42riwb3KYp0reLsFTokByAKoJdgFCwI+CCiX/k+Jm2mbNs6oOaCjYQSlI1+XBVejwH2KrmCbMAT/GnRDQw== @@ -566,7 +497,7 @@ "@ethersproject/sha2" "^5.7.0" "@ethersproject/strings" "^5.7.0" -"@ethersproject/strings@5.7.0", "@ethersproject/strings@^5.3.0", "@ethersproject/strings@^5.7.0": +"@ethersproject/strings@5.7.0", "@ethersproject/strings@^5.7.0": version "5.7.0" resolved "https://registry.yarnpkg.com/@ethersproject/strings/-/strings-5.7.0.tgz#54c9d2a7c57ae8f1205c88a9d3a56471e14d5ed2" integrity sha512-/9nu+lj0YswRNSH0NXYqrh8775XNyEdUQAuf3f+SmOrnVewcJ5SBNAjF7lpgehKi4abvNNXyf+HX86czCdJ8Mg== @@ -575,7 +506,7 @@ "@ethersproject/constants" "^5.7.0" "@ethersproject/logger" "^5.7.0" -"@ethersproject/transactions@5.7.0", "@ethersproject/transactions@^5.3.0", "@ethersproject/transactions@^5.7.0": +"@ethersproject/transactions@5.7.0", "@ethersproject/transactions@^5.7.0": version "5.7.0" resolved "https://registry.yarnpkg.com/@ethersproject/transactions/-/transactions-5.7.0.tgz#91318fc24063e057885a6af13fdb703e1f993d3b" integrity sha512-kmcNicCp1lp8qanMTC3RIikGgoJ80ztTyvtsFvCYpSCfkjhD0jZ2LOrnbcuxuToLIUYYf+4XwD1rP+B/erDIhQ== @@ -620,7 +551,7 @@ "@ethersproject/transactions" "^5.7.0" "@ethersproject/wordlists" "^5.7.0" -"@ethersproject/web@5.7.1", "@ethersproject/web@^5.3.0", "@ethersproject/web@^5.7.0": +"@ethersproject/web@5.7.1", "@ethersproject/web@^5.7.0": version "5.7.1" resolved "https://registry.yarnpkg.com/@ethersproject/web/-/web-5.7.1.tgz#de1f285b373149bee5928f4eb7bcb87ee5fbb4ae" integrity sha512-Gueu8lSvyjBWL4cYsWsjh6MtMwM0+H4HvqFPZfB6dV8ctbP9zFAO73VG1cMWae0FLPCtz0peKPpZY8/ugJJX2w== @@ -655,11 +586,6 @@ cborg "^1.5.4" multiformats "^9.5.4" -"@josephg/resolvable@^1.0.0": - version "1.0.1" - resolved "https://registry.yarnpkg.com/@josephg/resolvable/-/resolvable-1.0.1.tgz#69bc4db754d79e1a2f17a650d3466e038d94a5eb" - integrity sha512-CtzORUwWTTOTqfVtHaKRJ0I1kNQd1bpn3sUh8I3nJDVY+5/M/Oe1DnEWzPQvqq/xPIIkzzzIP7mfCoAjFRvDhg== - "@lerna/add@4.0.0": version "4.0.0" resolved "https://registry.yarnpkg.com/@lerna/add/-/add-4.0.0.tgz#c36f57d132502a57b9e7058d1548b7a565ef183f" @@ -1331,21 +1257,6 @@ npmlog "^4.1.2" write-file-atomic "^3.0.3" -"@mapbox/node-pre-gyp@^1.0.0": - version "1.0.7" - resolved "https://registry.yarnpkg.com/@mapbox/node-pre-gyp/-/node-pre-gyp-1.0.7.tgz#a26919cac6595662703330d1820a0ca206f45521" - integrity sha512-PplSvl4pJ5N3BkVjAdDzpPhVUPdC73JgttkR+LnBx2OORC1GCQsBjUeEuipf9uOaAM1SbxcdZFfR3KDTKm2S0A== - dependencies: - detect-libc "^1.0.3" - https-proxy-agent "^5.0.0" - make-dir "^3.1.0" - node-fetch "^2.6.5" - nopt "^5.0.0" - npmlog "^6.0.0" - rimraf "^3.0.2" - semver "^7.3.5" - tar "^6.1.11" - "@nodelib/fs.scandir@2.1.4": version "2.1.4" resolved "https://registry.yarnpkg.com/@nodelib/fs.scandir/-/fs.scandir-2.1.4.tgz#d4b3549a5db5de2683e0c1071ab4f140904bbf69" @@ -1549,59 +1460,6 @@ resolved "https://registry.yarnpkg.com/@openzeppelin/contracts/-/contracts-3.4.1-solc-0.7-2.tgz#371c67ebffe50f551c3146a9eec5fe6ffe862e92" integrity sha512-tAG9LWg8+M2CMu7hIsqHPaTyG4uDzjr6mhvH96LvOpLZZj6tgzTluBt+LsCf1/QaYrlis6pITvpIaIhE+iZB+Q== -"@protobufjs/aspromise@^1.1.1", "@protobufjs/aspromise@^1.1.2": - version "1.1.2" - resolved "https://registry.yarnpkg.com/@protobufjs/aspromise/-/aspromise-1.1.2.tgz#9b8b0cc663d669a7d8f6f5d0893a14d348f30fbf" - integrity sha1-m4sMxmPWaafY9vXQiToU00jzD78= - -"@protobufjs/base64@^1.1.2": - version "1.1.2" - resolved "https://registry.yarnpkg.com/@protobufjs/base64/-/base64-1.1.2.tgz#4c85730e59b9a1f1f349047dbf24296034bb2735" - integrity sha512-AZkcAA5vnN/v4PDqKyMR5lx7hZttPDgClv83E//FMNhR2TMcLUhfRUBHCmSl0oi9zMgDDqRUJkSxO3wm85+XLg== - -"@protobufjs/codegen@^2.0.4": - version "2.0.4" - resolved "https://registry.yarnpkg.com/@protobufjs/codegen/-/codegen-2.0.4.tgz#7ef37f0d010fb028ad1ad59722e506d9262815cb" - integrity sha512-YyFaikqM5sH0ziFZCN3xDC7zeGaB/d0IUb9CATugHWbd1FRFwWwt4ld4OYMPWu5a3Xe01mGAULCdqhMlPl29Jg== - -"@protobufjs/eventemitter@^1.1.0": - version "1.1.0" - resolved "https://registry.yarnpkg.com/@protobufjs/eventemitter/-/eventemitter-1.1.0.tgz#355cbc98bafad5978f9ed095f397621f1d066b70" - integrity sha1-NVy8mLr61ZePntCV85diHx0Ga3A= - -"@protobufjs/fetch@^1.1.0": - version "1.1.0" - resolved "https://registry.yarnpkg.com/@protobufjs/fetch/-/fetch-1.1.0.tgz#ba99fb598614af65700c1619ff06d454b0d84c45" - integrity sha1-upn7WYYUr2VwDBYZ/wbUVLDYTEU= - dependencies: - "@protobufjs/aspromise" "^1.1.1" - "@protobufjs/inquire" "^1.1.0" - -"@protobufjs/float@^1.0.2": - version "1.0.2" - resolved "https://registry.yarnpkg.com/@protobufjs/float/-/float-1.0.2.tgz#5e9e1abdcb73fc0a7cb8b291df78c8cbd97b87d1" - integrity sha1-Xp4avctz/Ap8uLKR33jIy9l7h9E= - -"@protobufjs/inquire@^1.1.0": - version "1.1.0" - resolved "https://registry.yarnpkg.com/@protobufjs/inquire/-/inquire-1.1.0.tgz#ff200e3e7cf2429e2dcafc1140828e8cc638f089" - integrity sha1-/yAOPnzyQp4tyvwRQIKOjMY48Ik= - -"@protobufjs/path@^1.1.2": - version "1.1.2" - resolved "https://registry.yarnpkg.com/@protobufjs/path/-/path-1.1.2.tgz#6cc2b20c5c9ad6ad0dccfd21ca7673d8d7fbf68d" - integrity sha1-bMKyDFya1q0NzP0hynZz2Nf79o0= - -"@protobufjs/pool@^1.1.0": - version "1.1.0" - resolved "https://registry.yarnpkg.com/@protobufjs/pool/-/pool-1.1.0.tgz#09fd15f2d6d3abfa9b65bc366506d6ad7846ff54" - integrity sha1-Cf0V8tbTq/qbZbw2ZQbWrXhG/1Q= - -"@protobufjs/utf8@^1.1.0": - version "1.1.0" - resolved "https://registry.yarnpkg.com/@protobufjs/utf8/-/utf8-1.1.0.tgz#a777360b5b39a1a2e5106f8e858f2fd2d060c570" - integrity sha1-p3c2C1s5oaLlEG+OhY8v0tBgxXA= - "@sentry/core@5.30.0": version "5.30.0" resolved "https://registry.yarnpkg.com/@sentry/core/-/core-5.30.0.tgz#6b203664f69e75106ee8b5a2fe1d717379b331f3" @@ -1736,13 +1594,6 @@ resolved "https://registry.yarnpkg.com/@types/abstract-leveldown/-/abstract-leveldown-5.0.1.tgz#3c7750d0186b954c7f2d2f6acc8c3c7ba0c3412e" integrity sha512-wYxU3kp5zItbxKmeRYCEplS2MW7DzyBnxPGj+GJVHZEUZiK/nn5Ei1sUFgURDh+X051+zsGe28iud3oHjrYWQQ== -"@types/accepts@*", "@types/accepts@^1.3.5": - version "1.3.5" - resolved "https://registry.yarnpkg.com/@types/accepts/-/accepts-1.3.5.tgz#c34bec115cfc746e04fe5a059df4ce7e7b391575" - integrity sha512-jOdnI/3qTpHABjM5cx1Hc0sKsPoYCp+DP/GJRGtDlPd7fiV9oXGGIcjW/ZOxLIvjGz8MA+uMZI9metHlgqbgwQ== - dependencies: - "@types/node" "*" - "@types/bn.js@*", "@types/bn.js@^5.1.0": version "5.1.0" resolved "https://registry.yarnpkg.com/@types/bn.js/-/bn.js-5.1.0.tgz#32c5d271503a12653c62cf4d2b45e6eab8cebc68" @@ -1757,7 +1608,7 @@ dependencies: "@types/node" "*" -"@types/body-parser@*", "@types/body-parser@1.19.0": +"@types/body-parser@*": version "1.19.0" resolved "https://registry.yarnpkg.com/@types/body-parser/-/body-parser-1.19.0.tgz#0685b3c47eb3006ffed117cdd55164b61f80538f" integrity sha512-W98JrE0j2K78swW4ukqMleo8R7h/pFETjM2DQ90MF6XK2i4LO4W3gQ71Lt4w3bfm2EvVSyWHplECvB5sK22yFQ== @@ -1782,26 +1633,6 @@ dependencies: "@types/node" "*" -"@types/content-disposition@*": - version "0.5.3" - resolved "https://registry.yarnpkg.com/@types/content-disposition/-/content-disposition-0.5.3.tgz#0aa116701955c2faa0717fc69cd1596095e49d96" - integrity sha512-P1bffQfhD3O4LW0ioENXUhZ9OIa0Zn+P7M+pWgkCKaT53wVLSq0mrKksCID/FGHpFhRSxRGhgrQmfhRuzwtKdg== - -"@types/cookies@*": - version "0.7.6" - resolved "https://registry.yarnpkg.com/@types/cookies/-/cookies-0.7.6.tgz#71212c5391a976d3bae57d4b09fac20fc6bda504" - integrity sha512-FK4U5Qyn7/Sc5ih233OuHO0qAkOpEcD/eG6584yEiLKizTFRny86qHLe/rej3HFQrkBuUjF4whFliAdODbVN/w== - dependencies: - "@types/connect" "*" - "@types/express" "*" - "@types/keygrip" "*" - "@types/node" "*" - -"@types/cors@2.8.10": - version "2.8.10" - resolved "https://registry.yarnpkg.com/@types/cors/-/cors-2.8.10.tgz#61cc8469849e5bcdd0c7044122265c39cec10cf4" - integrity sha512-C7srjHiVG3Ey1nR6d511dtDkCEjxuN9W1HWAEjGq8kpcwmNM6JJkpC0xvabM7BXTG2wDq8Eu33iH9aQKa7IvLQ== - "@types/debug@^4.1.7": version "4.1.7" resolved "https://registry.yarnpkg.com/@types/debug/-/debug-4.1.7.tgz#7cc0ea761509124709b8b2d1090d8f6c17aadb82" @@ -1814,15 +1645,6 @@ resolved "https://registry.yarnpkg.com/@types/estree/-/estree-0.0.48.tgz#18dc8091b285df90db2f25aa7d906cfc394b7f74" integrity sha512-LfZwXoGUDo0C3me81HXgkBg5CTQYb6xzEl+fNmbO4JdRiSKQ8A0GD1OBBvKAIsbCUgoyAty7m99GqqMQe784ew== -"@types/express-serve-static-core@4.17.19": - version "4.17.19" - resolved "https://registry.yarnpkg.com/@types/express-serve-static-core/-/express-serve-static-core-4.17.19.tgz#00acfc1632e729acac4f1530e9e16f6dd1508a1d" - integrity sha512-DJOSHzX7pCiSElWaGR8kCprwibCB/3yW6vcT8VG3P0SJjnv19gnWG/AZMfM60Xj/YJIp/YCaDHyvzsFVeniARA== - dependencies: - "@types/node" "*" - "@types/qs" "*" - "@types/range-parser" "*" - "@types/express-serve-static-core@^4.17.18": version "4.17.20" resolved "https://registry.yarnpkg.com/@types/express-serve-static-core/-/express-serve-static-core-4.17.20.tgz#44caee029f2c26c46711da5e845cdc12167ad72d" @@ -1832,26 +1654,6 @@ "@types/qs" "*" "@types/range-parser" "*" -"@types/express@*": - version "4.17.12" - resolved "https://registry.yarnpkg.com/@types/express/-/express-4.17.12.tgz#4bc1bf3cd0cfe6d3f6f2853648b40db7d54de350" - integrity sha512-pTYas6FrP15B1Oa0bkN5tQMNqOcVXa9j4FTFtO8DWI9kppKib+6NJtfTOOLcwxuuYvcX2+dVG6et1SxW/Kc17Q== - dependencies: - "@types/body-parser" "*" - "@types/express-serve-static-core" "^4.17.18" - "@types/qs" "*" - "@types/serve-static" "*" - -"@types/express@4.17.11": - version "4.17.11" - resolved "https://registry.yarnpkg.com/@types/express/-/express-4.17.11.tgz#debe3caa6f8e5fcda96b47bd54e2f40c4ee59545" - integrity sha512-no+R6rW60JEc59977wIxreQVsIEOAYwgCqldrA/vkpCnbD7MqTefO97lmoBe4WE0F156bC4uLSP1XHDOySnChg== - dependencies: - "@types/body-parser" "*" - "@types/express-serve-static-core" "^4.17.18" - "@types/qs" "*" - "@types/serve-static" "*" - "@types/express@^4.17.14": version "4.17.14" resolved "https://registry.yarnpkg.com/@types/express/-/express-4.17.14.tgz#143ea0557249bc1b3b54f15db4c81c3d4eb3569c" @@ -1862,30 +1664,6 @@ "@types/qs" "*" "@types/serve-static" "*" -"@types/fs-capacitor@*": - version "2.0.0" - resolved "https://registry.yarnpkg.com/@types/fs-capacitor/-/fs-capacitor-2.0.0.tgz#17113e25817f584f58100fb7a08eed288b81956e" - integrity sha512-FKVPOCFbhCvZxpVAMhdBdTfVfXUpsh15wFHgqOKxh9N9vzWZVuWCSijZ5T4U34XYNnuj2oduh6xcs1i+LPI+BQ== - dependencies: - "@types/node" "*" - -"@types/fs-extra@^9.0.11": - version "9.0.11" - resolved "https://registry.yarnpkg.com/@types/fs-extra/-/fs-extra-9.0.11.tgz#8cc99e103499eab9f347dbc6ca4e99fb8d2c2b87" - integrity sha512-mZsifGG4QeQ7hlkhO56u7zt/ycBgGxSVsFI/6lGTU34VtwkiqrrSDgw0+ygs8kFGWcXnFQWMrzF2h7TtDFNixA== - dependencies: - "@types/node" "*" - -"@types/http-assert@*": - version "1.5.1" - resolved "https://registry.yarnpkg.com/@types/http-assert/-/http-assert-1.5.1.tgz#d775e93630c2469c2f980fc27e3143240335db3b" - integrity sha512-PGAK759pxyfXE78NbKxyfRcWYA/KwW17X290cNev/qAsn9eQIxkH4shoNBafH37wewhDG/0p1cHPbK6+SzZjWQ== - -"@types/http-errors@*": - version "1.8.0" - resolved "https://registry.yarnpkg.com/@types/http-errors/-/http-errors-1.8.0.tgz#682477dbbbd07cd032731cb3b0e7eaee3d026b69" - integrity sha512-2aoSC4UUbHDj2uCsCxcG/vRMXey/m17bC7UwitVm5hn22nI8O8Y9iDpA76Orc+DWkQ4zZrOKEshCqR/jSuXAHA== - "@types/json-bigint@^1.0.0": version "1.0.0" resolved "https://registry.yarnpkg.com/@types/json-bigint/-/json-bigint-1.0.0.tgz#7a4726540cc6fe47cfa54b9b3022b89cf7fe1517" @@ -1901,32 +1679,6 @@ resolved "https://registry.yarnpkg.com/@types/json5/-/json5-0.0.29.tgz#ee28707ae94e11d2b827bcbe5270bcea7f3e71ee" integrity sha1-7ihweulOEdK4J7y+UnC86n8+ce4= -"@types/keygrip@*": - version "1.0.2" - resolved "https://registry.yarnpkg.com/@types/keygrip/-/keygrip-1.0.2.tgz#513abfd256d7ad0bf1ee1873606317b33b1b2a72" - integrity sha512-GJhpTepz2udxGexqos8wgaBx4I/zWIDPh/KOGEwAqtuGDkOUJu5eFvwmdBX4AmB8Odsr+9pHCQqiAqDL/yKMKw== - -"@types/koa-compose@*": - version "3.2.5" - resolved "https://registry.yarnpkg.com/@types/koa-compose/-/koa-compose-3.2.5.tgz#85eb2e80ac50be95f37ccf8c407c09bbe3468e9d" - integrity sha512-B8nG/OoE1ORZqCkBVsup/AKcvjdgoHnfi4pZMn5UwAPCbhk/96xyv284eBYW8JlQbQ7zDmnpFr68I/40mFoIBQ== - dependencies: - "@types/koa" "*" - -"@types/koa@*": - version "2.13.3" - resolved "https://registry.yarnpkg.com/@types/koa/-/koa-2.13.3.tgz#5b44c0956d7f7bf41f74ccfb530fec60fbed45ca" - integrity sha512-TaujBV+Dhe/FvmSMZJtCFBms+bqQacgUebk/M2C2tq8iGmHE/DDf4DcW2Hc7NqusVZmy5xzrWOjtdPKNP+fTfw== - dependencies: - "@types/accepts" "*" - "@types/content-disposition" "*" - "@types/cookies" "*" - "@types/http-assert" "*" - "@types/http-errors" "*" - "@types/keygrip" "*" - "@types/koa-compose" "*" - "@types/node" "*" - "@types/levelup@^4.3.0": version "4.3.1" resolved "https://registry.yarnpkg.com/@types/levelup/-/levelup-4.3.1.tgz#7a53b9fd510716e11b2065332790fdf5f9b950b9" @@ -1940,11 +1692,6 @@ resolved "https://registry.yarnpkg.com/@types/lodash/-/lodash-4.14.170.tgz#0d67711d4bf7f4ca5147e9091b847479b87925d6" integrity sha512-bpcvu/MKHHeYX+qeEN8GE7DIravODWdACVA1ctevD8CN24RhPZIKMn9ntfAsrvLfSX3cR5RrBKAbYm9bGs0A+Q== -"@types/long@^4.0.0", "@types/long@^4.0.1": - version "4.0.1" - resolved "https://registry.yarnpkg.com/@types/long/-/long-4.0.1.tgz#459c65fa1867dafe6a8f322c4c51695663cc55e9" - integrity sha512-5tXH6Bx/kNGd3MgffdmP4dy2Z+G4eaXw0SE81Tq3BNadtnMR5/ySMzX4SLEzHJzSmPNn4HIdpQsBvXMUykr58w== - "@types/lru-cache@^5.1.0": version "5.1.0" resolved "https://registry.yarnpkg.com/@types/lru-cache/-/lru-cache-5.1.0.tgz#57f228f2b80c046b4a1bd5cac031f81f207f4f03" @@ -1988,16 +1735,6 @@ resolved "https://registry.yarnpkg.com/@types/node/-/node-15.6.1.tgz#32d43390d5c62c5b6ec486a9bc9c59544de39a08" integrity sha512-7EIraBEyRHEe7CH+Fm1XvgqU6uwZN8Q7jppJGcqjROMT29qhAuuOxYB1uEY5UMYQKEmA5D+5tBnhdaPXSsLONA== -"@types/node@>=13.7.0": - version "16.11.11" - resolved "https://registry.yarnpkg.com/@types/node/-/node-16.11.11.tgz#6ea7342dfb379ea1210835bada87b3c512120234" - integrity sha512-KB0sixD67CeecHC33MYn+eYARkqTheIRNuu97y2XMjR7Wu3XibO1vaY6VBV6O/a89SPI81cEUIYT87UqUWlZNw== - -"@types/node@^10.1.0": - version "10.17.60" - resolved "https://registry.yarnpkg.com/@types/node/-/node-10.17.60.tgz#35f3d6213daed95da7f0f73e75bcc6980e90597b" - integrity sha512-F0KIgDJfy2nA3zMLmWGKxcH2ZVEtCZXHHdOQs2gSaQ27+lNeEfGxzkIw90aXswATX7AZ33tahPbzy6KAfUreVw== - "@types/normalize-package-data@^2.4.0": version "2.4.0" resolved "https://registry.yarnpkg.com/@types/normalize-package-data/-/normalize-package-data-2.4.0.tgz#e486d0d97396d79beedd0a6e33f4534ff6b4973e" @@ -2068,13 +1805,6 @@ "@types/bn.js" "*" "@types/underscore" "*" -"@types/ws@^7.0.0": - version "7.4.4" - resolved "https://registry.yarnpkg.com/@types/ws/-/ws-7.4.4.tgz#93e1e00824c1de2608c30e6de4303ab3b4c0c9bc" - integrity sha512-d/7W23JAXPodQNbOZNXvl2K+bqAQrCMwlh/nuQsPSQk6Fq0opHoPrUw43aHsvSbIiQPr8Of2hkFbnz1XBFVyZQ== - dependencies: - "@types/node" "*" - "@types/yargs-parser@*": version "20.2.0" resolved "https://registry.yarnpkg.com/@types/yargs-parser/-/yargs-parser-20.2.0.tgz#dd3e6699ba3237f0348cd085e4698780204842f9" @@ -2272,13 +2002,6 @@ dependencies: tslib "^2.1.0" -"@wry/equality@^0.1.2": - version "0.1.11" - resolved "https://registry.yarnpkg.com/@wry/equality/-/equality-0.1.11.tgz#35cb156e4a96695aa81a9ecc4d03787bc17f1790" - integrity sha512-mwEVBDUVODlsQQ5dfuLUS5/Tf7jqUKyhKYHmVi4fPB6bDMOfWvUPJmKgS1Z7Za/sOI3vzWt4+O7yCiL/70MogA== - dependencies: - tslib "^1.9.3" - "@wry/equality@^0.4.0": version "0.4.0" resolved "https://registry.yarnpkg.com/@wry/equality/-/equality-0.4.0.tgz#474491869a8d0590f4a33fd2a4850a77a0f63408" @@ -2335,7 +2058,7 @@ abstract-leveldown@~6.2.1: level-supports "~1.0.0" xtend "~4.0.0" -accepts@^1.3.5, accepts@~1.3.7: +accepts@~1.3.7: version "1.3.7" resolved "https://registry.yarnpkg.com/accepts/-/accepts-1.3.7.tgz#531bc726517a3b2b41f850021c6cc15eaab507cd" integrity sha512-Il80Qs2WjYlJIBNzNkK6KYqlVMTbZLXgHx2oT0pU/fjRHyEp+PEfEPY0R3WCwAGVOtauxh1hOxNgIf5bv7dQpA== @@ -2464,11 +2187,6 @@ ansi-regex@^5.0.0: resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-5.0.0.tgz#388539f55179bf39339c81af30a654d69f87cb75" integrity sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg== -ansi-regex@^5.0.1: - version "5.0.1" - resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-5.0.1.tgz#082cb2c89c9fe8659a311a53bd6a4dc5301db304" - integrity sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ== - ansi-styles@^2.2.1: version "2.2.1" resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-2.2.1.tgz#b432dd3358b634cf75e1e4664368240533c1ddbe" @@ -2501,161 +2219,11 @@ anymatch@~3.1.1, anymatch@~3.1.2: normalize-path "^3.0.0" picomatch "^2.0.4" -apollo-cache-control@^0.14.0: - version "0.14.0" - resolved "https://registry.yarnpkg.com/apollo-cache-control/-/apollo-cache-control-0.14.0.tgz#95f20c3e03e7994e0d1bd48c59aeaeb575ed0ce7" - integrity sha512-qN4BCq90egQrgNnTRMUHikLZZAprf3gbm8rC5Vwmc6ZdLolQ7bFsa769Hqi6Tq/lS31KLsXBLTOsRbfPHph12w== - dependencies: - apollo-server-env "^3.1.0" - apollo-server-plugin-base "^0.13.0" - -apollo-datasource@^0.9.0: - version "0.9.0" - resolved "https://registry.yarnpkg.com/apollo-datasource/-/apollo-datasource-0.9.0.tgz#b0b2913257a6103a5f4c03cb56d78a30e9d850db" - integrity sha512-y8H99NExU1Sk4TvcaUxTdzfq2SZo6uSj5dyh75XSQvbpH6gdAXIW9MaBcvlNC7n0cVPsidHmOcHOWxJ/pTXGjA== - dependencies: - apollo-server-caching "^0.7.0" - apollo-server-env "^3.1.0" - -apollo-graphql@^0.9.0: - version "0.9.3" - resolved "https://registry.yarnpkg.com/apollo-graphql/-/apollo-graphql-0.9.3.tgz#1ca6f625322ae10a66f57a39642849a07a7a5dc9" - integrity sha512-rcAl2E841Iko4kSzj4Pt3PRBitmyq1MvoEmpl04TQSpGnoVgl1E/ZXuLBYxMTSnEAm7umn2IsoY+c6Ll9U/10A== - dependencies: - core-js-pure "^3.10.2" - lodash.sortby "^4.7.0" - sha.js "^2.4.11" - -apollo-link@^1.2.14: - version "1.2.14" - resolved "https://registry.yarnpkg.com/apollo-link/-/apollo-link-1.2.14.tgz#3feda4b47f9ebba7f4160bef8b977ba725b684d9" - integrity sha512-p67CMEFP7kOG1JZ0ZkYZwRDa369w5PIjtMjvrQd/HnIV8FRsHRqLqK+oAZQnFa1DDdZtOtHTi+aMIW6EatC2jg== - dependencies: - apollo-utilities "^1.3.0" - ts-invariant "^0.4.0" - tslib "^1.9.3" - zen-observable-ts "^0.8.21" - -apollo-reporting-protobuf@^0.8.0: - version "0.8.0" - resolved "https://registry.yarnpkg.com/apollo-reporting-protobuf/-/apollo-reporting-protobuf-0.8.0.tgz#ae9d967934d3d8ed816fc85a0d8068ef45c371b9" - integrity sha512-B3XmnkH6Y458iV6OsA7AhfwvTgeZnFq9nPVjbxmLKnvfkEl8hYADtz724uPa0WeBiD7DSFcnLtqg9yGmCkBohg== - dependencies: - "@apollo/protobufjs" "1.2.2" - -apollo-server-caching@^0.7.0: - version "0.7.0" - resolved "https://registry.yarnpkg.com/apollo-server-caching/-/apollo-server-caching-0.7.0.tgz#e6d1e68e3bb571cba63a61f60b434fb771c6ff39" - integrity sha512-MsVCuf/2FxuTFVhGLK13B+TZH9tBd2qkyoXKKILIiGcZ5CDUEBO14vIV63aNkMkS1xxvK2U4wBcuuNj/VH2Mkw== - dependencies: - lru-cache "^6.0.0" - -apollo-server-core@^2.25.1: - version "2.25.1" - resolved "https://registry.yarnpkg.com/apollo-server-core/-/apollo-server-core-2.25.1.tgz#593ef925ae31e0259d9b247fafad196a328d380b" - integrity sha512-10gVjvGv3uPfy7gUFQhgNhb66RorD1qX6yF4bTawm4S6JstkGrWYFJN5/48o7Mte+tATpXzAGiWu0l4wsYA/mA== - dependencies: - "@apollographql/apollo-tools" "^0.5.0" - "@apollographql/graphql-playground-html" "1.6.27" - "@apollographql/graphql-upload-8-fork" "^8.1.3" - "@josephg/resolvable" "^1.0.0" - "@types/ws" "^7.0.0" - apollo-cache-control "^0.14.0" - apollo-datasource "^0.9.0" - apollo-graphql "^0.9.0" - apollo-reporting-protobuf "^0.8.0" - apollo-server-caching "^0.7.0" - apollo-server-env "^3.1.0" - apollo-server-errors "^2.5.0" - apollo-server-plugin-base "^0.13.0" - apollo-server-types "^0.9.0" - apollo-tracing "^0.15.0" - async-retry "^1.2.1" - fast-json-stable-stringify "^2.0.0" - graphql-extensions "^0.15.0" - graphql-tag "^2.11.0" - graphql-tools "^4.0.8" - loglevel "^1.6.7" - lru-cache "^6.0.0" - sha.js "^2.4.11" - subscriptions-transport-ws "^0.9.19" - uuid "^8.0.0" - -apollo-server-env@^3.1.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/apollo-server-env/-/apollo-server-env-3.1.0.tgz#0733c2ef50aea596cc90cf40a53f6ea2ad402cd0" - integrity sha512-iGdZgEOAuVop3vb0F2J3+kaBVi4caMoxefHosxmgzAbbSpvWehB8Y1QiSyyMeouYC38XNVk5wnZl+jdGSsWsIQ== - dependencies: - node-fetch "^2.6.1" - util.promisify "^1.0.0" - -apollo-server-errors@^2.5.0: - version "2.5.0" - resolved "https://registry.yarnpkg.com/apollo-server-errors/-/apollo-server-errors-2.5.0.tgz#5d1024117c7496a2979e3e34908b5685fe112b68" - integrity sha512-lO5oTjgiC3vlVg2RKr3RiXIIQ5pGXBFxYGGUkKDhTud3jMIhs+gel8L8zsEjKaKxkjHhCQAA/bcEfYiKkGQIvA== - -apollo-server-express@^2.25.0: - version "2.25.1" - resolved "https://registry.yarnpkg.com/apollo-server-express/-/apollo-server-express-2.25.1.tgz#d02914cb348819b08c7a476cd012b6731c3fb5d2" - integrity sha512-9idHkV3umcIDdq/NIQEC2D6zZ0QtaMRVCbeRcDgm9uWWiX3ulK5ICdHbNBu5UHXkDmKjfZiGaCWBZti0MsRQAg== - dependencies: - "@apollographql/graphql-playground-html" "1.6.27" - "@types/accepts" "^1.3.5" - "@types/body-parser" "1.19.0" - "@types/cors" "2.8.10" - "@types/express" "4.17.11" - "@types/express-serve-static-core" "4.17.19" - accepts "^1.3.5" - apollo-server-core "^2.25.1" - apollo-server-types "^0.9.0" - body-parser "^1.18.3" - cors "^2.8.5" - express "^4.17.1" - graphql-subscriptions "^1.0.0" - graphql-tools "^4.0.8" - parseurl "^1.3.2" - subscriptions-transport-ws "^0.9.19" - type-is "^1.6.16" - -apollo-server-plugin-base@^0.13.0: - version "0.13.0" - resolved "https://registry.yarnpkg.com/apollo-server-plugin-base/-/apollo-server-plugin-base-0.13.0.tgz#3f85751a420d3c4625355b6cb3fbdd2acbe71f13" - integrity sha512-L3TMmq2YE6BU6I4Tmgygmd0W55L+6XfD9137k+cWEBFu50vRY4Re+d+fL5WuPkk5xSPKd/PIaqzidu5V/zz8Kg== - dependencies: - apollo-server-types "^0.9.0" - -apollo-server-types@^0.9.0: - version "0.9.0" - resolved "https://registry.yarnpkg.com/apollo-server-types/-/apollo-server-types-0.9.0.tgz#ccf550b33b07c48c72f104fbe2876232b404848b" - integrity sha512-qk9tg4Imwpk732JJHBkhW0jzfG0nFsLqK2DY6UhvJf7jLnRePYsPxWfPiNkxni27pLE2tiNlCwoDFSeWqpZyBg== - dependencies: - apollo-reporting-protobuf "^0.8.0" - apollo-server-caching "^0.7.0" - apollo-server-env "^3.1.0" - -apollo-tracing@^0.15.0: - version "0.15.0" - resolved "https://registry.yarnpkg.com/apollo-tracing/-/apollo-tracing-0.15.0.tgz#237fbbbf669aee4370b7e9081b685eabaa8ce84a" - integrity sha512-UP0fztFvaZPHDhIB/J+qGuy6hWO4If069MGC98qVs0I8FICIGu4/8ykpX3X3K6RtaQ56EDAWKykCxFv4ScxMeA== - dependencies: - apollo-server-env "^3.1.0" - apollo-server-plugin-base "^0.13.0" - apollo-type-bigint@^0.1.3: version "0.1.3" resolved "https://registry.yarnpkg.com/apollo-type-bigint/-/apollo-type-bigint-0.1.3.tgz#9242115ca909b9467ba5c4bc6493a56a06984c0b" integrity sha512-nyfwEWRZ+kon3Nnot20DufGm2EHZrkJoryYzw3soD+USdxhkcW434w1c/n+mjMLQDl86Z6EvlkvMX5Lordf2Wg== -apollo-utilities@^1.0.1, apollo-utilities@^1.3.0: - version "1.3.4" - resolved "https://registry.yarnpkg.com/apollo-utilities/-/apollo-utilities-1.3.4.tgz#6129e438e8be201b6c55b0f13ce49d2c7175c9cf" - integrity sha512-pk2hiWrCXMAy2fRPwEyhvka+mqwzeP60Jr1tRYi5xru+3ko94HI9o6lK0CT33/w4RDlxWchmdhDCrvdr+pHCig== - dependencies: - "@wry/equality" "^0.1.2" - fast-json-stable-stringify "^2.0.0" - ts-invariant "^0.4.0" - tslib "^1.10.0" - app-root-path@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/app-root-path/-/app-root-path-3.0.0.tgz#210b6f43873227e18a4b810a032283311555d5ad" @@ -2666,19 +2234,11 @@ aproba@^1.0.3: resolved "https://registry.yarnpkg.com/aproba/-/aproba-1.2.0.tgz#6802e6264efd18c790a1b0d517f0f2627bf2c94a" integrity sha512-Y9J6ZjXtoYh8RnXVCMOU/ttDmk1aBjunq9vO0ta5x85WDQiQfUF9sIPBITdbiiIVcBo03Hi3jMxigBtsddlXRw== -"aproba@^1.0.3 || ^2.0.0", aproba@^2.0.0: +aproba@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/aproba/-/aproba-2.0.0.tgz#52520b8ae5b569215b354efc0caa3fe1e45a8adc" integrity sha512-lYe4Gx7QT+MKGbDsA+Z+he/Wtef0BiwDOlK/XkBrdfsh9J/jPPXbX0tE9x9cl27Tmu5gg3QUbUrQYa/y+KOHPQ== -are-we-there-yet@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/are-we-there-yet/-/are-we-there-yet-2.0.0.tgz#372e0e7bd279d8e94c653aaa1f67200884bf3e1c" - integrity sha512-Ci/qENmwHnsYo9xKIcUJN5LeDKdJ6R1Z1j9V/J5wyq8nh/mYPEpIKJbBZXtZjG04HiK7zV/p6Vs9952MrMeUIw== - dependencies: - delegates "^1.0.0" - readable-stream "^3.6.0" - are-we-there-yet@~1.1.2: version "1.1.5" resolved "https://registry.yarnpkg.com/are-we-there-yet/-/are-we-there-yet-1.1.5.tgz#4b35c2944f062a8bfcda66410760350fe9ddfc21" @@ -2793,13 +2353,6 @@ async-eventemitter@^0.2.4: dependencies: async "^2.4.0" -async-retry@^1.2.1: - version "1.3.1" - resolved "https://registry.yarnpkg.com/async-retry/-/async-retry-1.3.1.tgz#139f31f8ddce50c0870b0ba558a6079684aaed55" - integrity sha512-aiieFW/7h3hY0Bq5d+ktDBejxuwR78vRu9hDUdR8rNhSaQ29VzPL4AoIRG7D/c7tdenwOcKvgPM6tIxB3cB6HA== - dependencies: - retry "0.12.0" - async@^2.4.0: version "2.6.3" resolved "https://registry.yarnpkg.com/async/-/async-2.6.3.tgz#d72625e2344a3656e3a3ad4fa749fa83299d82ff" @@ -2827,11 +2380,6 @@ aws4@^1.8.0: resolved "https://registry.yarnpkg.com/aws4/-/aws4-1.11.0.tgz#d61f46d83b2519250e2784daf5b09479a8b41c59" integrity sha512-xh1Rl34h6Fi1DC2WWKfxUTVqRsNnr6LsKz2+hfwDxQJWmrx8+c7ylaqBMcHfl1U1r2dsifOvKX3LQuLNZ+XSvA== -backo2@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/backo2/-/backo2-1.0.2.tgz#31ab1ac8b129363463e35b3ebb69f4dfcfba7947" - integrity sha1-MasayLEpNjRj41s+u2n038+6eUc= - balanced-match@^1.0.0: version "1.0.2" resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.2.tgz#e83e3a7e3f300b34cb9d87f615fa0cbf357690ee" @@ -2886,13 +2434,6 @@ binary-extensions@^2.0.0: resolved "https://registry.yarnpkg.com/binary-extensions/-/binary-extensions-2.2.0.tgz#75f502eeaf9ffde42fc98829645be4ea76bd9e2d" integrity sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA== -bindings@^1.2.1: - version "1.5.0" - resolved "https://registry.yarnpkg.com/bindings/-/bindings-1.5.0.tgz#10353c9e945334bc0511a6d90b38fbc7c9c504df" - integrity sha512-p2q/t/mhvuOj/UeLlV6566GD/guowlr0hHxClI0W9m7MWYkL1F0hLo+0Aexs9HSPCtR1SXQ0TD3MMKrXZajbiQ== - dependencies: - file-uri-to-path "1.0.0" - bintrees@1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/bintrees/-/bintrees-1.0.1.tgz#0e655c9b9c2435eaab68bf4027226d2b55a34524" @@ -2923,7 +2464,7 @@ bn.js@^5.2.1: resolved "https://registry.yarnpkg.com/bn.js/-/bn.js-5.2.1.tgz#0bc527a6a0d18d0aa8d5b0538ce4a77dccfa7b70" integrity sha512-eXRvHzWyYPBuB4NBy0cmYQjGitUrtqwbvlzP3G6VFnNRbsZQIxQ10PbKKHt8gZ/HW/D/747aDl+QkDqg3KQLMQ== -body-parser@1.19.0, body-parser@^1.18.3: +body-parser@1.19.0: version "1.19.0" resolved "https://registry.yarnpkg.com/body-parser/-/body-parser-1.19.0.tgz#96b2709e57c9c4e09a6fd66a8fd979844f69f08a" integrity sha512-dhEPs72UPbDnAQJ9ZKMNTP6ptJaionhP5cBb541nXPlW60Jepo9RV/a4fX4XWW9CuFNK22krhrj1+rgzifNCsw== @@ -3067,13 +2608,6 @@ builtins@^1.0.3: resolved "https://registry.yarnpkg.com/builtins/-/builtins-1.0.3.tgz#cb94faeb61c8696451db36534e1422f94f0aee88" integrity sha1-y5T662HIaWRR2zZTThQi+U8K7og= -busboy@^0.3.1: - version "0.3.1" - resolved "https://registry.yarnpkg.com/busboy/-/busboy-0.3.1.tgz#170899274c5bf38aae27d5c62b71268cd585fd1b" - integrity sha512-y7tTxhGKXcyBxRKAni+awqx8uqaJKrSFSNFSeRG5CsWNdmy2BIK+6VGWEW7TZnIO/533mtMEA4rOevQV815YJw== - dependencies: - dicer "0.3.0" - byline@^5.0.0: version "5.0.0" resolved "https://registry.yarnpkg.com/byline/-/byline-5.0.0.tgz#741c5216468eadc457b03410118ad77de8c1ddb1" @@ -3444,11 +2978,6 @@ color-name@~1.1.4: resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.4.tgz#c2a09a87acbde69543de6f63fa3995c826c536a2" integrity sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA== -color-support@^1.1.2: - version "1.1.3" - resolved "https://registry.yarnpkg.com/color-support/-/color-support-1.1.3.tgz#93834379a1cc9a0c61f82f52f0d04322251bd5a2" - integrity sha512-qiBjkpbMLO/HL68y+lh4q0/O1MZFj2RX6X/KmMa3+gJD3z+WwI1ZzDHysvqHGS3mP6mznPckpXmw1nI9cJjyRg== - colorette@^1.2.2: version "1.3.0" resolved "https://registry.yarnpkg.com/colorette/-/colorette-1.3.0.tgz#ff45d2f0edb244069d3b772adeb04fed38d0a0af" @@ -3479,11 +3008,6 @@ commander@3.0.2, commander@^3.0.0: resolved "https://registry.yarnpkg.com/commander/-/commander-3.0.2.tgz#6837c3fb677ad9933d1cfba42dd14d5117d6b39e" integrity sha512-Gar0ASD4BDyKC4hl4DwHqDrmvjoxWKZigVnAbn5H1owvm4CxCPdb0HQDehwNYMJpla5+M2tPmPARzhtYuwpHow== -commander@^2.20.3: - version "2.20.3" - resolved "https://registry.yarnpkg.com/commander/-/commander-2.20.3.tgz#fd485e84c03eb4881c20722ba48035e8531aeb33" - integrity sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ== - compare-func@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/compare-func/-/compare-func-2.0.0.tgz#fb65e75edbddfd2e568554e8b5b05fff7a51fcb3" @@ -3524,7 +3048,7 @@ configstore@^5.0.1: write-file-atomic "^3.0.0" xdg-basedir "^4.0.0" -console-control-strings@^1.0.0, console-control-strings@^1.1.0, console-control-strings@~1.1.0: +console-control-strings@^1.0.0, console-control-strings@~1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/console-control-strings/-/console-control-strings-1.1.0.tgz#3d7cf4464db6446ea644bf4b39507f9851008e8e" integrity sha1-PXz0Rk22RG6mRL9LOVB/mFEAjo4= @@ -3665,24 +3189,11 @@ core-js-pure@^3.0.1: resolved "https://registry.yarnpkg.com/core-js-pure/-/core-js-pure-3.13.0.tgz#9d267fb47d1d7046cfbc05e7b67bb235b6735355" integrity sha512-7VTvXbsMxROvzPAVczLgfizR8CyYnvWPrb1eGrtlZAJfjQWEHLofVfCKljLHdpazTfpaziRORwUH/kfGDKvpdA== -core-js-pure@^3.10.2: - version "3.14.0" - resolved "https://registry.yarnpkg.com/core-js-pure/-/core-js-pure-3.14.0.tgz#72bcfacba74a65ffce04bf94ae91d966e80ee553" - integrity sha512-YVh+LN2FgNU0odThzm61BsdkwrbrchumFq3oztnE9vTKC4KS2fvnPmcx8t6jnqAyOTCTF4ZSiuK8Qhh7SNcL4g== - core-util-is@1.0.2, core-util-is@~1.0.0: version "1.0.2" resolved "https://registry.yarnpkg.com/core-util-is/-/core-util-is-1.0.2.tgz#b5fd54220aa2bc5ab57aab7140c940754503c1a7" integrity sha1-tf1UIgqivFq1eqtxQMlAdUUDwac= -cors@^2.8.5: - version "2.8.5" - resolved "https://registry.yarnpkg.com/cors/-/cors-2.8.5.tgz#eac11da51592dd86b9f06f6e7ac293b3df875d29" - integrity sha512-KIHbLJqu73RGr/hnbrO9uBeixNGuvSQjul/jdFvS/KFSIH1hWVd1ng7zOHx+YrEfInLG7q4n6GHQ9cDtxv/P6g== - dependencies: - object-assign "^4" - vary "^1" - cosmiconfig@^5.2.1: version "5.2.1" resolved "https://registry.yarnpkg.com/cosmiconfig/-/cosmiconfig-5.2.1.tgz#040f726809c591e77a17c0a3626ca45b4f168b1a" @@ -3774,11 +3285,6 @@ cssesc@^3.0.0: resolved "https://registry.yarnpkg.com/cssesc/-/cssesc-3.0.0.tgz#37741919903b868565e1c09ea747445cd18983ee" integrity sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg== -cssfilter@0.0.10: - version "0.0.10" - resolved "https://registry.yarnpkg.com/cssfilter/-/cssfilter-0.0.10.tgz#c6d2672632a2e5c83e013e6864a42ce8defd20ae" - integrity sha1-xtJnJjKi5cg+AT5oZKQs6N79IK4= - csv-writer@^1.6.0: version "1.6.0" resolved "https://registry.yarnpkg.com/csv-writer/-/csv-writer-1.6.0.tgz#d0cea44b6b4d7d3baa2ecc6f3f7209233514bcf9" @@ -3986,11 +3492,6 @@ depd@^1.1.2, depd@~1.1.2: resolved "https://registry.yarnpkg.com/depd/-/depd-1.1.2.tgz#9bcd52e14c097763e749b274c4346ed2e560b5a9" integrity sha1-m81S4UwJd2PnSbJ0xDRu0uVgtak= -deprecated-decorator@^0.1.6: - version "0.1.6" - resolved "https://registry.yarnpkg.com/deprecated-decorator/-/deprecated-decorator-0.1.6.tgz#00966317b7a12fe92f3cc831f7583af329b86c37" - integrity sha1-AJZjF7ehL+kvPMgx91g68ym4bDc= - deprecation@^2.0.0, deprecation@^2.3.1: version "2.3.1" resolved "https://registry.yarnpkg.com/deprecation/-/deprecation-2.3.1.tgz#6368cbdb40abf3373b525ac87e4a260c3a700919" @@ -4021,11 +3522,6 @@ detect-indent@^6.0.0: resolved "https://registry.yarnpkg.com/detect-indent/-/detect-indent-6.1.0.tgz#592485ebbbf6b3b1ab2be175c8393d04ca0d57e6" integrity sha512-reYkTUJAZb9gUuZ2RvVCNhVHdg62RHnJ7WJl8ftMi4diZ6NWlciOzQN88pUhSELEwflJht4oQDv0F0BMlwaYtA== -detect-libc@^1.0.3: - version "1.0.3" - resolved "https://registry.yarnpkg.com/detect-libc/-/detect-libc-1.0.3.tgz#fa137c4bd698edf55cd5cd02ac559f91a4c4ba9b" - integrity sha1-+hN8S9aY7fVc1c0CrFWfkaTEups= - dezalgo@^1.0.0: version "1.0.3" resolved "https://registry.yarnpkg.com/dezalgo/-/dezalgo-1.0.3.tgz#7f742de066fc748bc8db820569dddce49bf0d456" @@ -4034,13 +3530,6 @@ dezalgo@^1.0.0: asap "^2.0.0" wrappy "1" -dicer@0.3.0: - version "0.3.0" - resolved "https://registry.yarnpkg.com/dicer/-/dicer-0.3.0.tgz#eacd98b3bfbf92e8ab5c2fdb71aaac44bb06b872" - integrity sha512-MdceRRWqltEG2dZqO769g27N/3PXfcKl04VhYnBlo2YhH7zPi88VebsjTKclaOyiuMaGU72hTfw3VkUitGcVCA== - dependencies: - streamsearch "0.1.2" - diff@3.5.0: version "3.5.0" resolved "https://registry.yarnpkg.com/diff/-/diff-3.5.0.tgz#800c0dd1e0a8bfbc95835c202ad220fe317e5a12" @@ -4594,11 +4083,6 @@ event-target-shim@^5.0.0: resolved "https://registry.yarnpkg.com/event-target-shim/-/event-target-shim-5.0.1.tgz#5d4d3ebdf9583d63a5333ce2deb7480ab2b05789" integrity sha512-i/2XbnSz/uxRCU6+NdVJgKWDTM427+MqYbkQzD321DuCQJUqOuJKIA0IM2+W2xtYHdKOmZ4dR6fExsd4SXL+WQ== -eventemitter3@^3.1.0: - version "3.1.2" - resolved "https://registry.yarnpkg.com/eventemitter3/-/eventemitter3-3.1.2.tgz#2d3d48f9c346698fce83a85d7d664e98535df6e7" - integrity sha512-tvtQIeLVHjDkJYnzf2dgVMxfuSGJeM/7UCG17TT4EumTfNtF+0nebF/4zWOIkCreAbtNqhGEboB6BWrwqNaw4Q== - eventemitter3@^4.0.4: version "4.0.7" resolved "https://registry.yarnpkg.com/eventemitter3/-/eventemitter3-4.0.7.tgz#2de9b68f6528d5644ef5c59526a1b4a07306169f" @@ -4787,11 +4271,6 @@ file-entry-cache@^6.0.1: dependencies: flat-cache "^3.0.4" -file-uri-to-path@1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/file-uri-to-path/-/file-uri-to-path-1.0.0.tgz#553a7b8446ff6f684359c445f1e37a05dacc33dd" - integrity sha512-0Zt+s3L7Vf1biwWZ29aARiVYLx7iMGnEUl9x33fbB/j3jR81u/O2LbqK+Bm1CDSNDKVtJ/YjwY7TUd5SkeLQLw== - fill-range@^7.0.1: version "7.0.1" resolved "https://registry.yarnpkg.com/fill-range/-/fill-range-7.0.1.tgz#1919a6a7c75fe38b2c7c77e5198535da9acdda40" @@ -4868,11 +4347,6 @@ find-up@^4.0.0, find-up@^4.1.0: locate-path "^5.0.0" path-exists "^4.0.0" -findit2@^2.2.3: - version "2.2.3" - resolved "https://registry.yarnpkg.com/findit2/-/findit2-2.2.3.tgz#58a466697df8a6205cdfdbf395536b8bd777a5f6" - integrity sha1-WKRmaX34piBc39vzlVNri9d3pfY= - flat-cache@^3.0.4: version "3.0.4" resolved "https://registry.yarnpkg.com/flat-cache/-/flat-cache-3.0.4.tgz#61b0338302b2fe9f957dcc32fc2a87f1c3048b11" @@ -4958,11 +4432,6 @@ fresh@0.5.2: resolved "https://registry.yarnpkg.com/fresh/-/fresh-0.5.2.tgz#3d8cadd90d976569fa835ab1f8e4b23a105605a7" integrity sha1-PYyt2Q2XZWn6g1qx+OSyOhBWBac= -fs-capacitor@^2.0.4: - version "2.0.4" - resolved "https://registry.yarnpkg.com/fs-capacitor/-/fs-capacitor-2.0.4.tgz#5a22e72d40ae5078b4fe64fe4d08c0d3fc88ad3c" - integrity sha512-8S4f4WsCryNw2mJJchi46YgB6CR5Ze+4L1h8ewl9tEpL4SJ3ZO+c/bS4BWhB8bK+O3TMqhuZarTitd0S0eh2pA== - fs-extra@^0.30.0: version "0.30.0" resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-0.30.0.tgz#f233ffcc08d4da7d432daa449776989db1df93f0" @@ -4974,15 +4443,6 @@ fs-extra@^0.30.0: path-is-absolute "^1.0.0" rimraf "^2.2.8" -fs-extra@^10.0.0: - version "10.0.0" - resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-10.0.0.tgz#9ff61b655dde53fb34a82df84bb214ce802e17c1" - integrity sha512-C5owb14u9eJwizKGdchcDUQeFtlSHHthBk8pbX9Vc1PFZrLombudjDnNns88aYslCyF6IY5SUw3Roz6xShcEIQ== - dependencies: - graceful-fs "^4.2.0" - jsonfile "^6.0.1" - universalify "^2.0.0" - fs-extra@^7.0.1: version "7.0.1" resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-7.0.1.tgz#4f189c44aa123b895f722804f55ea23eadc348e9" @@ -5041,21 +4501,6 @@ functional-red-black-tree@^1.0.1, functional-red-black-tree@~1.0.1: resolved "https://registry.yarnpkg.com/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz#1b0ab3bd553b2a0d6399d29c0e3ea0b252078327" integrity sha1-GwqzvVU7Kg1jmdKcDj6gslIHgyc= -gauge@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/gauge/-/gauge-4.0.0.tgz#afba07aa0374a93c6219603b1fb83eaa2264d8f8" - integrity sha512-F8sU45yQpjQjxKkm1UOAhf0U/O0aFt//Fl7hsrNVto+patMHjs7dPI9mFOGUKbhrgKm0S3EjW3scMFuQmWSROw== - dependencies: - ansi-regex "^5.0.1" - aproba "^1.0.3 || ^2.0.0" - color-support "^1.1.2" - console-control-strings "^1.0.0" - has-unicode "^2.0.1" - signal-exit "^3.0.0" - string-width "^4.2.3" - strip-ansi "^6.0.1" - wide-align "^1.1.2" - gauge@~2.7.3: version "2.7.4" resolved "https://registry.yarnpkg.com/gauge/-/gauge-2.7.4.tgz#2c03405c7538c39d7eb37b317022e325fb018bf7" @@ -5305,15 +4750,6 @@ graceful-fs@^4.1.11, graceful-fs@^4.1.15, graceful-fs@^4.1.2, graceful-fs@^4.1.6 resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.6.tgz#ff040b2b0853b23c3d31027523706f1885d76bee" integrity sha512-nTnJ528pbqxYanhpDYsi4Rd8MAeaBA67+RZ10CM1m3bTAVFEDcd5AuA4a6W5YkGZ1iNXHzZz8T6TBKLeBuNriQ== -graphql-extensions@^0.15.0: - version "0.15.0" - resolved "https://registry.yarnpkg.com/graphql-extensions/-/graphql-extensions-0.15.0.tgz#3f291f9274876b0c289fa4061909a12678bd9817" - integrity sha512-bVddVO8YFJPwuACn+3pgmrEg6I8iBuYLuwvxiE+lcQQ7POotVZxm2rgGw0PvVYmWWf3DT7nTVDZ5ROh/ALp8mA== - dependencies: - "@apollographql/apollo-tools" "^0.5.0" - apollo-server-env "^3.1.0" - apollo-server-types "^0.9.0" - graphql-import-node@^0.0.4: version "0.0.4" resolved "https://registry.yarnpkg.com/graphql-import-node/-/graphql-import-node-0.0.4.tgz#0522f058978c7e1b99d1e6be1b851ee17007b111" @@ -5340,13 +4776,6 @@ graphql-schema-linter@^2.0.1: glob "^7.1.2" graphql "^15.0.0" -graphql-subscriptions@^1.0.0: - version "1.2.1" - resolved "https://registry.yarnpkg.com/graphql-subscriptions/-/graphql-subscriptions-1.2.1.tgz#2142b2d729661ddf967b7388f7cf1dd4cf2e061d" - integrity sha512-95yD/tKi24q8xYa7Q9rhQN16AYj5wPbrb8tmHGM3WRc9EBmWrG/0kkMl+tQG8wcEuE9ibR4zyOM31p5Sdr2v4g== - dependencies: - iterall "^1.3.0" - graphql-subscriptions@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/graphql-subscriptions/-/graphql-subscriptions-2.0.0.tgz#11ec181d475852d8aec879183e8e1eb94f2eb79a" @@ -5354,24 +4783,13 @@ graphql-subscriptions@^2.0.0: dependencies: iterall "^1.3.0" -graphql-tag@^2.11.0, graphql-tag@^2.12.0: +graphql-tag@^2.12.0: version "2.12.4" resolved "https://registry.yarnpkg.com/graphql-tag/-/graphql-tag-2.12.4.tgz#d34066688a4f09e72d6f4663c74211e9b4b7c4bf" integrity sha512-VV1U4O+9x99EkNpNmCUV5RZwq6MnK4+pGbRYWG+lA/m3uo7TSqJF81OkcOP148gFP6fzdl7JWYBrwWVTS9jXww== dependencies: tslib "^2.1.0" -graphql-tools@^4.0.8: - version "4.0.8" - resolved "https://registry.yarnpkg.com/graphql-tools/-/graphql-tools-4.0.8.tgz#e7fb9f0d43408fb0878ba66b522ce871bafe9d30" - integrity sha512-MW+ioleBrwhRjalKjYaLQbr+920pHBgy9vM/n47sswtns8+96sRn5M/G+J1eu7IMeKWiN/9p6tmwCHU7552VJg== - dependencies: - apollo-link "^1.2.14" - apollo-utilities "^1.0.1" - deprecated-decorator "^0.1.6" - iterall "^1.1.3" - uuid "^3.1.0" - graphql@^14.0.2: version "14.7.0" resolved "https://registry.yarnpkg.com/graphql/-/graphql-14.7.0.tgz#7fa79a80a69be4a31c27dda824dc04dac2035a72" @@ -5617,17 +5035,6 @@ http-errors@2.0.0: statuses "2.0.1" toidentifier "1.0.1" -http-errors@^1.7.3: - version "1.8.0" - resolved "https://registry.yarnpkg.com/http-errors/-/http-errors-1.8.0.tgz#75d1bbe497e1044f51e4ee9e704a62f28d336507" - integrity sha512-4I8r0C5JDhT5VkvI47QktDW75rNlGVsUf/8hzjCC/wkWI/jdTRmBb9aI7erSG82r1bjKY3F6k28WnsVxB1C73A== - dependencies: - depd "~1.1.2" - inherits "2.0.4" - setprototypeof "1.2.0" - statuses ">= 1.5.0 < 2" - toidentifier "1.0.0" - http-proxy-agent@^4.0.1: version "4.0.1" resolved "https://registry.yarnpkg.com/http-proxy-agent/-/http-proxy-agent-4.0.1.tgz#8a8c8ef7f5932ccf953c296ca8291b95aa74aa3a" @@ -6122,7 +5529,7 @@ isstream@~0.1.2: resolved "https://registry.yarnpkg.com/isstream/-/isstream-0.1.2.tgz#47e63f7af55afa6f92e1500e690eb8b8529c099a" integrity sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo= -iterall@^1.1.3, iterall@^1.2.1, iterall@^1.2.2, iterall@^1.3.0: +iterall@^1.2.2, iterall@^1.3.0: version "1.3.0" resolved "https://registry.yarnpkg.com/iterall/-/iterall-1.3.0.tgz#afcb08492e2915cbd8a0884eb93a8c94d0d72fea" integrity sha512-QZ9qOMdF+QLHxy1QIpUHUU1D5pS2CG2P69LF6L6CPjPYA/XMOmKV3PZpawHoAjHNyB0swdVTRxdYT4tbBbxqwg== @@ -6539,11 +5946,6 @@ lodash.merge@^4.6.2: resolved "https://registry.yarnpkg.com/lodash.merge/-/lodash.merge-4.6.2.tgz#558aa53b43b661e1925a0afdfa36a9a1085fe57a" integrity sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ== -lodash.sortby@^4.7.0: - version "4.7.0" - resolved "https://registry.yarnpkg.com/lodash.sortby/-/lodash.sortby-4.7.0.tgz#edd14c824e2cc9c1e0b0a1b42bb5210516a42438" - integrity sha1-7dFMgk4sycHgsKG0K7UhBRakJDg= - lodash.template@^4.5.0: version "4.5.0" resolved "https://registry.yarnpkg.com/lodash.template/-/lodash.template-4.5.0.tgz#f976195cf3f347d0d5f52483569fe8031ccce8ab" @@ -6583,16 +5985,6 @@ log-symbols@4.0.0: dependencies: chalk "^4.0.0" -loglevel@^1.6.7: - version "1.7.1" - resolved "https://registry.yarnpkg.com/loglevel/-/loglevel-1.7.1.tgz#005fde2f5e6e47068f935ff28573e125ef72f197" - integrity sha512-Hesni4s5UkWkwCGJMQGAh71PaLUmKFM60dHvq0zi/vDhhrzuk+4GgNbTXJ12YYQJn6ZKBDNIjYcuQGKudvqrIw== - -long@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/long/-/long-4.0.0.tgz#9a7b71cfb7d361a194ea555241c92f7468d5bf28" - integrity sha512-XsP+KhQif4bjX1kbuSiySJFNAehNxgLb6hPRGJ9QsUr8ajHkuXGdrHmFUTUUXhDwVX2R5bY4JNZEwbUiMhV+MA== - loose-envify@^1.0.0, loose-envify@^1.4.0: version "1.4.0" resolved "https://registry.yarnpkg.com/loose-envify/-/loose-envify-1.4.0.tgz#71ee51fa7be4caec1a63839f7e682d8132d30caf" @@ -6662,7 +6054,7 @@ make-dir@^2.1.0: pify "^4.0.1" semver "^5.6.0" -make-dir@^3.0.0, make-dir@^3.1.0: +make-dir@^3.0.0: version "3.1.0" resolved "https://registry.yarnpkg.com/make-dir/-/make-dir-3.1.0.tgz#415e967046b3a7f1d185277d84aa58203726a13f" integrity sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw== @@ -7148,11 +6540,6 @@ mz@^2.4.0: object-assign "^4.0.1" thenify-all "^1.0.0" -nan@^2.14.0: - version "2.15.0" - resolved "https://registry.yarnpkg.com/nan/-/nan-2.15.0.tgz#3f34a473ff18e15c1b5626b62903b5ad6e665fee" - integrity sha512-8ZtvEnA2c5aYCZYd1cvgdnU6cqwixRoYg70xPLWUws5ORTa/lnw+u4amixRS/Ac5U5mQVgp9pnlSUnbNWFaWZQ== - nanoid@3.1.20: version "3.1.20" resolved "https://registry.yarnpkg.com/nanoid/-/nanoid-3.1.20.tgz#badc263c6b1dcf14b71efaa85f6ab4c1d6cfc788" @@ -7208,13 +6595,6 @@ node-fetch@2.6.1, node-fetch@^2.2.0, node-fetch@^2.6.0, node-fetch@^2.6.1: resolved "https://registry.yarnpkg.com/node-fetch/-/node-fetch-2.6.1.tgz#045bd323631f76ed2e2b55573394416b639a0052" integrity sha512-V4aYg89jEoVRxRb2fJdAg8FHvI7cEyYdVAh94HH0UIK8oJxUfkjlDQN9RbMx+bEjP7+ggMiFRprSti032Oipxw== -node-fetch@^2.6.5: - version "2.6.6" - resolved "https://registry.yarnpkg.com/node-fetch/-/node-fetch-2.6.6.tgz#1751a7c01834e8e1697758732e9efb6eeadfaf89" - integrity sha512-Z8/6vRlTUChSdIgMa51jxQ4lrw/Jy5SOW10ObaA47/RElsAN2c5Pn8bTgFGWn/ibwzXTE8qwr1Yzx28vsecXEA== - dependencies: - whatwg-url "^5.0.0" - node-gyp-build@^4.2.0: version "4.2.3" resolved "https://registry.yarnpkg.com/node-gyp-build/-/node-gyp-build-4.2.3.tgz#ce6277f853835f718829efb47db20f3e4d9c4739" @@ -7431,16 +6811,6 @@ npmlog@^4.1.2: gauge "~2.7.3" set-blocking "~2.0.0" -npmlog@^6.0.0: - version "6.0.0" - resolved "https://registry.yarnpkg.com/npmlog/-/npmlog-6.0.0.tgz#ba9ef39413c3d936ea91553db7be49c34ad0520c" - integrity sha512-03ppFRGlsyUaQFbGC2C8QWJN/C/K7PsfyD9aQdhVKAQIH4sQBc8WASqFBP7O+Ut4d2oo5LoeoboB3cGdBZSp6Q== - dependencies: - are-we-there-yet "^2.0.0" - console-control-strings "^1.1.0" - gauge "^4.0.0" - set-blocking "^2.0.0" - number-is-nan@^1.0.0: version "1.0.1" resolved "https://registry.yarnpkg.com/number-is-nan/-/number-is-nan-1.0.1.tgz#097b602b53422a522c1afb8790318336941a011d" @@ -7451,7 +6821,7 @@ oauth-sign@~0.9.0: resolved "https://registry.yarnpkg.com/oauth-sign/-/oauth-sign-0.9.0.tgz#47a7b016baa68b5fa0ecf3dee08a85c679ac6455" integrity sha512-fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ== -object-assign@^4, object-assign@^4.0.1, object-assign@^4.1.0, object-assign@^4.1.1: +object-assign@^4.0.1, object-assign@^4.1.0, object-assign@^4.1.1: version "4.1.1" resolved "https://registry.yarnpkg.com/object-assign/-/object-assign-4.1.1.tgz#2109adc7965887cfc05cbbd442cac8bfbb360863" integrity sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM= @@ -7466,11 +6836,6 @@ object-keys@^1.0.11, object-keys@^1.0.12, object-keys@^1.1.1: resolved "https://registry.yarnpkg.com/object-keys/-/object-keys-1.1.1.tgz#1c47f272df277f3b1daf061677d9c82e2322c60e" integrity sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA== -object-path@^0.11.4: - version "0.11.5" - resolved "https://registry.yarnpkg.com/object-path/-/object-path-0.11.5.tgz#d4e3cf19601a5140a55a16ad712019a9c50b577a" - integrity sha512-jgSbThcoR/s+XumvGMTMf81QVBmah+/Q7K7YduKeKVWL7N111unR2d6pZZarSk6kY/caeNxUDyxOvMWyzoU2eg== - object.assign@4.1.0: version "4.1.0" resolved "https://registry.yarnpkg.com/object.assign/-/object.assign-4.1.0.tgz#968bf1100d7956bb3ca086f006f846b3bc4008da" @@ -7604,7 +6969,7 @@ p-limit@^2.0.0, p-limit@^2.2.0: dependencies: p-try "^2.0.0" -p-limit@^3.0.0, p-limit@^3.0.2: +p-limit@^3.0.2: version "3.1.0" resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-3.1.0.tgz#e1daccbe78d0d1388ca18c64fea38e3e57e3706b" integrity sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ== @@ -7812,7 +7177,7 @@ parse5@^6.0.1: resolved "https://registry.yarnpkg.com/parse5/-/parse5-6.0.1.tgz#e1a1c085c569b3dc08321184f19a39cc27f7c30b" integrity sha512-Ofn/CTFzRGTTxwpNEs9PP93gXShHcTq255nzRYSKe8AkVpZY7e1fpmTfOyoIvjP5HG7Z2ZM7VS9PPhQGW2pOpw== -parseurl@^1.3.2, parseurl@~1.3.3: +parseurl@~1.3.3: version "1.3.3" resolved "https://registry.yarnpkg.com/parseurl/-/parseurl-1.3.3.tgz#9da19e7bee8d12dff0513ed5b76957793bc2e8d4" integrity sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ== @@ -8110,22 +7475,6 @@ postgres-interval@^1.1.0: dependencies: xtend "^4.0.0" -pprof@^3.2.0: - version "3.2.0" - resolved "https://registry.yarnpkg.com/pprof/-/pprof-3.2.0.tgz#5a60638dc51a61128a3d57c74514e8fd99e93722" - integrity sha512-yhORhVWefg94HZgjVa6CDtYSNZJnJzZ82d4pkmrZJxf1/Y29Me/uHYLEVo6KawKKFhQywl5cGbkdnVx9bZoMew== - dependencies: - "@mapbox/node-pre-gyp" "^1.0.0" - bindings "^1.2.1" - delay "^5.0.0" - findit2 "^2.2.3" - nan "^2.14.0" - p-limit "^3.0.0" - pify "^5.0.0" - protobufjs "~6.11.0" - source-map "^0.7.3" - split "^1.0.1" - prelude-ls@^1.2.1: version "1.2.1" resolved "https://registry.yarnpkg.com/prelude-ls/-/prelude-ls-1.2.1.tgz#debc6489d7a6e6b0e7611888cec880337d316396" @@ -8192,25 +7541,6 @@ proto-list@~1.2.1: resolved "https://registry.yarnpkg.com/proto-list/-/proto-list-1.2.4.tgz#212d5bfe1318306a420f6402b8e26ff39647a849" integrity sha1-IS1b/hMYMGpCD2QCuOJv85ZHqEk= -protobufjs@~6.11.0: - version "6.11.2" - resolved "https://registry.yarnpkg.com/protobufjs/-/protobufjs-6.11.2.tgz#de39fabd4ed32beaa08e9bb1e30d08544c1edf8b" - integrity sha512-4BQJoPooKJl2G9j3XftkIXjoC9C0Av2NOrWmbLWT1vH32GcSUHjM0Arra6UfTsVyfMAuFzaLucXn1sadxJydAw== - dependencies: - "@protobufjs/aspromise" "^1.1.2" - "@protobufjs/base64" "^1.1.2" - "@protobufjs/codegen" "^2.0.4" - "@protobufjs/eventemitter" "^1.1.0" - "@protobufjs/fetch" "^1.1.0" - "@protobufjs/float" "^1.0.2" - "@protobufjs/inquire" "^1.1.0" - "@protobufjs/path" "^1.1.2" - "@protobufjs/pool" "^1.1.0" - "@protobufjs/utf8" "^1.1.0" - "@types/long" "^4.0.1" - "@types/node" ">=13.7.0" - long "^4.0.0" - protocols@^1.1.0, protocols@^1.4.0: version "1.4.8" resolved "https://registry.yarnpkg.com/protocols/-/protocols-1.4.8.tgz#48eea2d8f58d9644a4a32caae5d5db290a075ce8" @@ -8687,7 +8017,7 @@ restore-cursor@^3.1.0: onetime "^5.1.0" signal-exit "^3.0.2" -retry@0.12.0, retry@^0.12.0: +retry@^0.12.0: version "0.12.0" resolved "https://registry.yarnpkg.com/retry/-/retry-0.12.0.tgz#1b42a6266a21f07421d1b0b54b7dc167b01c013b" integrity sha1-G0KmJmoh8HQh0bC1S33BZ7AcATs= @@ -9060,11 +8390,6 @@ source-map@^0.6.0, source-map@^0.6.1: resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.6.1.tgz#74722af32e9614e9c287a8d0bbde48b5e2f1a263" integrity sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g== -source-map@^0.7.3: - version "0.7.3" - resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.7.3.tgz#5302f8169031735226544092e64981f751750383" - integrity sha512-CkCj6giN3S+n9qrYiBTX5gystlENnRW5jZeNLHpe6aue+SrHcG5VYwujhW9s4dY31mEGsxBDrHR6oI69fTXsaQ== - sourcemap-codec@^1.4.4: version "1.4.8" resolved "https://registry.yarnpkg.com/sourcemap-codec/-/sourcemap-codec-1.4.8.tgz#ea804bd94857402e6992d05a38ef1ae35a9ab4c4" @@ -9108,7 +8433,7 @@ split2@^3.0.0, split2@^3.1.1: dependencies: readable-stream "^3.0.0" -split@^1.0.0, split@^1.0.1: +split@^1.0.0: version "1.0.1" resolved "https://registry.yarnpkg.com/split/-/split-1.0.1.tgz#605bd9be303aa59fb35f9229fbea0ddec9ea07d9" integrity sha512-mTyOoPbrivtXnwnIxZRFYRrPNtEFKlpB2fvjSnCQUiAA6qAZzqwna5envK4uk6OIeP17CsdF3rSBGYVBsU0Tkg== @@ -9159,11 +8484,6 @@ statuses@2.0.1: resolved "https://registry.yarnpkg.com/statuses/-/statuses-1.5.0.tgz#161c7dac177659fd9811f43771fa99381478628c" integrity sha1-Fhx9rBd2Wf2YEfQ3cfqZOBR4Yow= -streamsearch@0.1.2: - version "0.1.2" - resolved "https://registry.yarnpkg.com/streamsearch/-/streamsearch-0.1.2.tgz#808b9d0e56fc273d809ba57338e929919a1a9f1a" - integrity sha1-gIudDlb8Jz2Am6VzOOkpkZoanxo= - strict-uri-encode@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/strict-uri-encode/-/strict-uri-encode-2.0.0.tgz#b9c7330c7042862f6b142dc274bbcc5866ce3546" @@ -9191,15 +8511,6 @@ string-width@^1.0.1: is-fullwidth-code-point "^2.0.0" strip-ansi "^4.0.0" -"string-width@^1.0.2 || 2 || 3 || 4", string-width@^4.2.3: - version "4.2.3" - resolved "https://registry.yarnpkg.com/string-width/-/string-width-4.2.3.tgz#269c7117d27b05ad2e536830a8ec895ef9c6d010" - integrity sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g== - dependencies: - emoji-regex "^8.0.0" - is-fullwidth-code-point "^3.0.0" - strip-ansi "^6.0.1" - string-width@^3.0.0, string-width@^3.1.0: version "3.1.0" resolved "https://registry.yarnpkg.com/string-width/-/string-width-3.1.0.tgz#22767be21b62af1081574306f69ac51b62203961" @@ -9276,13 +8587,6 @@ strip-ansi@^6.0.0: dependencies: ansi-regex "^5.0.0" -strip-ansi@^6.0.1: - version "6.0.1" - resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-6.0.1.tgz#9e26c63d30f53443e9489495b2105d37b67a85d9" - integrity sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A== - dependencies: - ansi-regex "^5.0.1" - strip-bom@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/strip-bom/-/strip-bom-2.0.0.tgz#6219a85616520491f35788bdbf1447a99c7e6b0e" @@ -9345,17 +8649,6 @@ strong-log-transformer@^2.1.0: minimist "^1.2.0" through "^2.3.4" -subscriptions-transport-ws@^0.9.19: - version "0.9.19" - resolved "https://registry.yarnpkg.com/subscriptions-transport-ws/-/subscriptions-transport-ws-0.9.19.tgz#10ca32f7e291d5ee8eb728b9c02e43c52606cdcf" - integrity sha512-dxdemxFFB0ppCLg10FTtRqH/31FNRL1y1BQv8209MK5I4CwALb7iihQg+7p65lFcIl8MHatINWBLOqpgU4Kyyw== - dependencies: - backo2 "^1.0.2" - eventemitter3 "^3.1.0" - iterall "^1.2.1" - symbol-observable "^1.0.4" - ws "^5.2.0 || ^6.0.0 || ^7.0.0" - supports-color@6.0.0: version "6.0.0" resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-6.0.0.tgz#76cfe742cf1f41bb9b1c29ad03068c05b4c0e40a" @@ -9389,11 +8682,6 @@ supports-color@^7.1.0: dependencies: has-flag "^4.0.0" -symbol-observable@^1.0.4: - version "1.2.0" - resolved "https://registry.yarnpkg.com/symbol-observable/-/symbol-observable-1.2.0.tgz#c22688aed4eab3cdc2dfeacbb561660560a00804" - integrity sha512-e900nM8RRtGhlV36KGEU9k65K3mPb1WV70OdjfxlG2EAuM1noi/E/BaW/uMhL7bPEssK8QV57vN3esixjUvcXQ== - symbol-observable@^2.0.0: version "2.0.3" resolved "https://registry.yarnpkg.com/symbol-observable/-/symbol-observable-2.0.3.tgz#5b521d3d07a43c351055fa43b8355b62d33fd16a" @@ -9436,18 +8724,6 @@ tar@^6.0.2, tar@^6.1.0: mkdirp "^1.0.3" yallist "^4.0.0" -tar@^6.1.11: - version "6.1.11" - resolved "https://registry.yarnpkg.com/tar/-/tar-6.1.11.tgz#6760a38f003afa1b2ffd0ffe9e9abbd0eab3d621" - integrity sha512-an/KZQzQUkZCkuoAA64hM92X0Urb6VpRhAFllDzz44U2mcD5scmT3zBc4VgVpkugF580+DQn8eAFSyoQt0tznA== - dependencies: - chownr "^2.0.0" - fs-minipass "^2.0.0" - minipass "^3.0.0" - minizlib "^2.1.1" - mkdirp "^1.0.3" - yallist "^4.0.0" - tdigest@^0.1.1: version "0.1.1" resolved "https://registry.yarnpkg.com/tdigest/-/tdigest-0.1.1.tgz#2e3cb2c39ea449e55d1e6cd91117accca4588021" @@ -9554,11 +8830,6 @@ toidentifier@1.0.1: resolved "https://registry.yarnpkg.com/toidentifier/-/toidentifier-1.0.1.tgz#3be34321a88a820ed1bd80dfaa33e479fbb8dd35" integrity sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA== -toml@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/toml/-/toml-3.0.0.tgz#342160f1af1904ec9d204d03a5d61222d762c5ee" - integrity sha512-y/mWCZinnvxjTKYhJ+pYxwD0mRLVvOtdS2Awbgxln6iEnt4rk0yBxeSBHkGJcPucRiG0e55mwWp+g/05rsrd6w== - touch@^3.1.0: version "3.1.0" resolved "https://registry.yarnpkg.com/touch/-/touch-3.1.0.tgz#fe365f5f75ec9ed4e56825e0bb76d24ab74af83b" @@ -9606,13 +8877,6 @@ trim-off-newlines@^1.0.0: resolved "https://registry.yarnpkg.com/true-case-path/-/true-case-path-2.2.1.tgz#c5bf04a5bbec3fd118be4084461b3a27c4d796bf" integrity sha512-0z3j8R7MCjy10kc/g+qg7Ln3alJTodw9aDuVWZa3uiWqfuBMKeAeP2ocWcxoyM3D73yz3Jt/Pu4qPr4wHSdB/Q== -ts-invariant@^0.4.0: - version "0.4.4" - resolved "https://registry.yarnpkg.com/ts-invariant/-/ts-invariant-0.4.4.tgz#97a523518688f93aafad01b0e80eb803eb2abd86" - integrity sha512-uEtWkFM/sdZvRNNDL3Ehu4WVpwaulhwQszV8mrtcdeE8nN00BV9mAmQ88RkrBhFgl9gMgvjJLAQcZbnPXI9mlA== - dependencies: - tslib "^1.9.3" - ts-invariant@^0.7.0: version "0.7.3" resolved "https://registry.yarnpkg.com/ts-invariant/-/ts-invariant-0.7.3.tgz#13aae22a4a165393aaf5cecdee45ef4128d358b8" @@ -9737,7 +9001,7 @@ type-fest@^0.8.1: resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.8.1.tgz#09e249ebde851d3b1e48d27c105444667f17b83d" integrity sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA== -type-is@^1.6.16, type-is@~1.6.17, type-is@~1.6.18: +type-is@~1.6.17, type-is@~1.6.18: version "1.6.18" resolved "https://registry.yarnpkg.com/type-is/-/type-is-1.6.18.tgz#4e552cd05df09467dcbc4ef739de89f2cf37c131" integrity sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g== @@ -9752,11 +9016,6 @@ typedarray-to-buffer@^3.1.5: dependencies: is-typedarray "^1.0.0" -typeorm-naming-strategies@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/typeorm-naming-strategies/-/typeorm-naming-strategies-2.0.0.tgz#c7c10bc768ddce2592ef9ad4d2dca55fd5fa6ad6" - integrity sha512-nsJ5jDjhBBEG6olFmxojkO4yrW7hEv38sH7ZXWWx9wnDoo9uaoH/mo2mBYAh/VKgwoFHBLu+CYxGmzXz2GUMcA== - typeorm@^0.2.32: version "0.2.37" resolved "https://registry.yarnpkg.com/typeorm/-/typeorm-0.2.37.tgz#1a5e59216077640694d27c04c99ed3f968d15dc8" @@ -9908,7 +9167,7 @@ util-promisify@^2.1.0: dependencies: object.getownpropertydescriptors "^2.0.3" -util.promisify@^1.0.0, util.promisify@^1.0.1: +util.promisify@^1.0.1: version "1.1.1" resolved "https://registry.yarnpkg.com/util.promisify/-/util.promisify-1.1.1.tgz#77832f57ced2c9478174149cae9b96e9918cd54b" integrity sha512-/s3UsZUrIfa6xDhr7zZhnE9SLQ5RIXyYfiVnMMyMDzOc8WhWN4Nbh36H842OyurKbCDAesZOJaVyvmSl6fhGQw== @@ -9924,12 +9183,12 @@ utils-merge@1.0.1: resolved "https://registry.yarnpkg.com/utils-merge/-/utils-merge-1.0.1.tgz#9f95710f50a267947b2ccc124741c1028427e713" integrity sha1-n5VxD1CiZ5R7LMwSR0HBAoQn5xM= -uuid@^3.1.0, uuid@^3.3.2: +uuid@^3.3.2: version "3.4.0" resolved "https://registry.yarnpkg.com/uuid/-/uuid-3.4.0.tgz#b23e4358afa8a202fe7a100af1f5f883f02007ee" integrity sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A== -uuid@^8.0.0, uuid@^8.3.2: +uuid@^8.3.2: version "8.3.2" resolved "https://registry.yarnpkg.com/uuid/-/uuid-8.3.2.tgz#80d5b5ced271bb9af6c445f21a1a04c606cefbe2" integrity sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg== @@ -9954,7 +9213,7 @@ validate-npm-package-name@^3.0.0: dependencies: builtins "^1.0.3" -vary@^1, vary@~1.1.2: +vary@~1.1.2: version "1.1.2" resolved "https://registry.yarnpkg.com/vary/-/vary-1.1.2.tgz#2299f02c6ded30d4a5961b0b9f74524a18f634fc" integrity sha1-IpnwLG3tMNSllhsLn3RSShj2NPw= @@ -10039,13 +9298,6 @@ wide-align@1.1.3, wide-align@^1.1.0: dependencies: string-width "^1.0.2 || 2" -wide-align@^1.1.2: - version "1.1.5" - resolved "https://registry.yarnpkg.com/wide-align/-/wide-align-1.1.5.tgz#df1d4c206854369ecf3c9a4898f1b23fbd9d15d3" - integrity sha512-eDMORYaPNZ4sQIuuYPDHdQvf4gyCF9rEEV/yPxGfwPkRodwEgiMUUXTx/dex+Me0wxx53S+NgUHaP7y3MGlDmg== - dependencies: - string-width "^1.0.2 || 2 || 3 || 4" - widest-line@^3.1.0: version "3.1.0" resolved "https://registry.yarnpkg.com/widest-line/-/widest-line-3.1.0.tgz#8292333bbf66cb45ff0de1603b136b7ae1496eca" @@ -10143,7 +9395,7 @@ write-pkg@^4.0.0: type-fest "^0.4.1" write-json-file "^3.2.0" -ws@7.4.6, "ws@^5.2.0 || ^6.0.0 || ^7.0.0", ws@^7.2.1: +ws@7.4.6, ws@^7.2.1: version "7.4.6" resolved "https://registry.yarnpkg.com/ws/-/ws-7.4.6.tgz#5654ca8ecdeee47c33a9a4bf6d28e2be2980377c" integrity sha512-YmhHDO4MzaDLB+M9ym/mDA5z0naX8j7SIlT8f8z+I0VtzsRbekxEutHSme7NPS2qE8StCYQNUnfWdXta/Yu85A== @@ -10166,14 +9418,6 @@ xmlbuilder@~11.0.0: resolved "https://registry.yarnpkg.com/xmlbuilder/-/xmlbuilder-11.0.1.tgz#be9bae1c8a046e76b31127726347d0ad7002beb3" integrity sha512-fDlsI/kFEx7gLvbecc0/ohLG50fugQp8ryHzMTuW9vSa1GJ0XYWKnhsUx7oie3G98+r56aTQIUB4kht42R3JvA== -xss@^1.0.8: - version "1.0.9" - resolved "https://registry.yarnpkg.com/xss/-/xss-1.0.9.tgz#3ffd565571ff60d2e40db7f3b80b4677bec770d2" - integrity sha512-2t7FahYnGJys6DpHLhajusId7R0Pm2yTmuL0GV9+mV0ZlaLSnb2toBmppATfg5sWIhZQGlsTLoecSzya+l4EAQ== - dependencies: - commander "^2.20.3" - cssfilter "0.0.10" - xtend@^4.0.0, xtend@^4.0.1, xtend@^4.0.2, xtend@~4.0.0, xtend@~4.0.1: version "4.0.2" resolved "https://registry.yarnpkg.com/xtend/-/xtend-4.0.2.tgz#bb72779f5fa465186b1f438f674fa347fdb5db54" @@ -10307,14 +9551,6 @@ yocto-queue@^0.1.0: resolved "https://registry.yarnpkg.com/yocto-queue/-/yocto-queue-0.1.0.tgz#0294eb3dee05028d31ee1a5fa2c556a6aaf10a1b" integrity sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q== -zen-observable-ts@^0.8.21: - version "0.8.21" - resolved "https://registry.yarnpkg.com/zen-observable-ts/-/zen-observable-ts-0.8.21.tgz#85d0031fbbde1eba3cd07d3ba90da241215f421d" - integrity sha512-Yj3yXweRc8LdRMrCC8nIc4kkjWecPAUVh0TI0OUrWXx6aX790vLcDlWca6I4vsyCGH3LpWxq0dJRcMOFoVqmeg== - dependencies: - tslib "^1.9.3" - zen-observable "^0.8.0" - zen-observable-ts@^1.0.0: version "1.1.0" resolved "https://registry.yarnpkg.com/zen-observable-ts/-/zen-observable-ts-1.1.0.tgz#2d1aa9d79b87058e9b75698b92791c1838551f83" @@ -10323,7 +9559,7 @@ zen-observable-ts@^1.0.0: "@types/zen-observable" "0.8.3" zen-observable "0.8.15" -zen-observable@0.8.15, zen-observable@^0.8.0, zen-observable@^0.8.14: +zen-observable@0.8.15, zen-observable@^0.8.14: version "0.8.15" resolved "https://registry.yarnpkg.com/zen-observable/-/zen-observable-0.8.15.tgz#96415c512d8e3ffd920afd3889604e30b9eaac15" integrity sha512-PQ2PC7R9rslx84ndNBZB/Dkv8V8fZEpk83RLgXtYd0fwUgEjseMn1Dgajh2x6S8QbZAFa9p2qVCEuYZNgve0dQ==