diff --git a/package.json b/package.json index b45fddc2..4837055a 100644 --- a/package.json +++ b/package.json @@ -33,7 +33,7 @@ "ts-loader": "^9.2.6", "ts-node": "^10.4.0", "tsconfig-paths": "^3.12.0", - "typescript": "^4.9.5" + "typescript": "^5.5.4" }, "resolutions": { "node-fetch": "2.6.7" diff --git a/packages/common-near/CHANGELOG.md b/packages/common-near/CHANGELOG.md index d21f660c..8822a48d 100644 --- a/packages/common-near/CHANGELOG.md +++ b/packages/common-near/CHANGELOG.md @@ -5,6 +5,12 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/), and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). ## [Unreleased] +### Changed +- Update `@subql/common` (#119) +- Enable strict TS (119) + +### Added +- Support for network endpoint config (#119) ## [4.0.0] - 2024-07-03 ### Added diff --git a/packages/common-near/package.json b/packages/common-near/package.json index b5663c7a..02841f2d 100644 --- a/packages/common-near/package.json +++ b/packages/common-near/package.json @@ -14,7 +14,7 @@ "main": "dist/index.js", "license": "GPL-3.0", "dependencies": { - "@subql/common": "^4.0.0", + "@subql/common": "^5.1.1", "@subql/types-near": "workspace:*", "js-yaml": "^4.1.0", "reflect-metadata": "^0.1.13" diff --git a/packages/common-near/src/project/models.ts b/packages/common-near/src/project/models.ts index f3b67183..63600407 100644 --- a/packages/common-near/src/project/models.ts +++ b/packages/common-near/src/project/models.ts @@ -16,7 +16,6 @@ import { NearHandlerKind, NearRuntimeDatasource, NearRuntimeHandler, - NearRuntimeHandlerFilter, NearCustomDatasource, ActionType, NearReceiptHandler, @@ -26,7 +25,6 @@ import {plainToClass, Transform, Type} from 'class-transformer'; import { IsArray, IsEnum, - IsInt, IsOptional, IsString, IsObject, @@ -34,7 +32,6 @@ import { registerDecorator, ValidationArguments, ValidationOptions, - Min, ValidateIf, } from 'class-validator'; @@ -75,7 +72,7 @@ export class ReceiptFilter extends TransactionFilter implements NearReceiptFilte export class ActionFilter extends ReceiptFilter implements NearActionFilter { @IsString() @IsActionType() - type: ActionType; + type!: ActionType; @IsString() @IsOptional() @@ -119,9 +116,9 @@ export class BlockHandler implements NearBlockHandler { @Type(() => BlockFilter) filter?: NearBlockFilter; @IsEnum(NearHandlerKind, {groups: [NearHandlerKind.Block]}) - kind: NearHandlerKind.Block; + kind!: NearHandlerKind.Block; @IsString() - handler: string; + handler!: string; } export class TransactionHandler implements NearTransactionHandler { @@ -130,9 +127,9 @@ export class TransactionHandler implements NearTransactionHandler { @Type(() => TransactionFilter) filter?: NearTransactionFilter; @IsEnum(NearHandlerKind, {groups: [NearHandlerKind.Transaction]}) - kind: NearHandlerKind.Transaction; + kind!: NearHandlerKind.Transaction; @IsString() - handler: string; + handler!: string; } export class ActionHandler implements NearActionHandler { @@ -141,9 +138,9 @@ export class ActionHandler implements NearActionHandler { @Type(() => ActionFilter) filter?: NearActionFilter; @IsEnum(NearHandlerKind, {groups: [NearHandlerKind.Action]}) - kind: NearHandlerKind.Action; + kind!: NearHandlerKind.Action; @IsString() - handler: string; + handler!: string; } export class ReceiptHandler implements NearReceiptHandler { @@ -152,16 +149,16 @@ export class ReceiptHandler implements NearReceiptHandler { @Type(() => ReceiptFilter) filter?: NearReceiptFilter; @IsEnum(NearHandlerKind, {groups: [NearHandlerKind.Receipt]}) - kind: NearHandlerKind.Receipt; + kind!: NearHandlerKind.Receipt; @IsString() - handler: string; + handler!: string; } export class CustomHandler implements NearCustomHandler { @IsString() - kind: string; + kind!: string; @IsString() - handler: string; + handler!: string; @IsObject() @IsOptional() filter?: Record; @@ -187,31 +184,31 @@ export class RuntimeMapping implements BaseMapping { }) @IsArray() @ValidateNested() - handlers: NearRuntimeHandler[]; + handlers!: NearRuntimeHandler[]; @IsString() - file: string; + file!: string; } export class CustomMapping implements BaseMapping { @IsArray() @Type(() => CustomHandler) @ValidateNested() - handlers: CustomHandler[]; + handlers!: CustomHandler[]; @IsString() - file: string; + file!: string; } export class RuntimeDataSourceBase extends BaseDataSource implements NearRuntimeDatasource { @IsEnum(NearDatasourceKind, {groups: [NearDatasourceKind.Runtime]}) - kind: NearDatasourceKind.Runtime; + kind!: NearDatasourceKind.Runtime; @Type(() => RuntimeMapping) @ValidateNested() - mapping: RuntimeMapping; + mapping!: RuntimeMapping; } export class FileReferenceImpl implements FileReference { @IsString() - file: string; + file!: string; } export class CustomDataSourceBase @@ -219,14 +216,14 @@ export class CustomDataSourceBase { @IsString() - kind: K; + kind!: K; @Type(() => CustomMapping) @ValidateNested() - mapping: M; + mapping!: M; @Type(() => FileReferenceImpl) @ValidateNested({each: true}) - assets: Map; + assets!: Map; @Type(() => ProcessorImpl) @IsObject() - processor: Processor; + processor!: Processor; } diff --git a/packages/common-near/src/project/utils.ts b/packages/common-near/src/project/utils.ts index 1a68b9a6..41babcb0 100644 --- a/packages/common-near/src/project/utils.ts +++ b/packages/common-near/src/project/utils.ts @@ -3,6 +3,7 @@ import { SecondLayerHandlerProcessor, + SecondLayerHandlerProcessorArray, NearCustomDatasource, NearDatasource, NearDatasourceKind, @@ -13,25 +14,25 @@ import { } from '@subql/types-near'; export function isBlockHandlerProcessor, E>( - hp: SecondLayerHandlerProcessor + hp: SecondLayerHandlerProcessorArray ): hp is SecondLayerHandlerProcessor { return hp.baseHandlerKind === NearHandlerKind.Block; } export function isTransactionHandlerProcessor, E>( - hp: SecondLayerHandlerProcessor + hp: SecondLayerHandlerProcessorArray ): hp is SecondLayerHandlerProcessor { return hp.baseHandlerKind === NearHandlerKind.Transaction; } export function isActionHandlerProcessor, E>( - hp: SecondLayerHandlerProcessor + hp: SecondLayerHandlerProcessorArray ): hp is SecondLayerHandlerProcessor { return hp.baseHandlerKind === NearHandlerKind.Action; } export function isReceiptHandlerProcessor, E>( - hp: SecondLayerHandlerProcessor + hp: SecondLayerHandlerProcessorArray ): hp is SecondLayerHandlerProcessor { return hp.baseHandlerKind === NearHandlerKind.Receipt; } diff --git a/packages/common-near/src/project/versioned/ProjectManifestVersioned.ts b/packages/common-near/src/project/versioned/ProjectManifestVersioned.ts index 7594915b..c7c701b6 100644 --- a/packages/common-near/src/project/versioned/ProjectManifestVersioned.ts +++ b/packages/common-near/src/project/versioned/ProjectManifestVersioned.ts @@ -42,7 +42,7 @@ export class NearProjectManifestVersioned implements INearProjectManifest { return this._impl as ProjectManifestV1_0_0Impl; } - toDeployment(): string | undefined { + toDeployment(): string { return this._impl.deployment.toYaml(); } @@ -62,11 +62,11 @@ export class NearProjectManifestVersioned implements INearProjectManifest { return this._impl.specVersion; } - get description(): string { + get description(): string | undefined { return this._impl.description; } - get repository(): string { + get repository(): string | undefined { return this._impl.repository; } } diff --git a/packages/common-near/src/project/versioned/v1_0_0/model.ts b/packages/common-near/src/project/versioned/v1_0_0/model.ts index fcd72776..de337bf2 100644 --- a/packages/common-near/src/project/versioned/v1_0_0/model.ts +++ b/packages/common-near/src/project/versioned/v1_0_0/model.ts @@ -47,30 +47,30 @@ export class NearCustomDataSourceImpl NearRunnerNodeImpl) - node: NodeSpec; + node!: NodeSpec; @IsObject() @ValidateNested() @Type(() => RunnerQueryBaseModel) - query: QuerySpec; + query!: QuerySpec; } export class ProjectNetworkDeploymentV1_0_0 { @IsNotEmpty() @Transform(({value}: TransformFnParams) => value.trim()) @IsString() - chainId: string; + chainId!: string; @IsOptional() @IsArray() bypassBlocks?: (number | `${number}-${number}`)[]; @@ -92,12 +92,12 @@ export class DeploymentV1_0_0 extends BaseDeploymentV1_0_0 { }) @ValidateNested() @Type(() => ProjectNetworkDeploymentV1_0_0) - network: ProjectNetworkDeploymentV1_0_0; + network!: ProjectNetworkDeploymentV1_0_0; @IsObject() @ValidateNested() @Type(() => NearRunnerSpecsImpl) - runner: RunnerSpecs; + runner!: RunnerSpecs; @IsArray() @ValidateNested() @@ -108,7 +108,7 @@ export class DeploymentV1_0_0 extends BaseDeploymentV1_0_0 { }, keepDiscriminatorProperty: true, }) - dataSources: (NearRuntimeDatasource | NearCustomDatasource)[]; + dataSources!: (NearRuntimeDatasource | NearCustomDatasource)[]; @IsOptional() @IsArray() @ValidateNested() @@ -139,16 +139,16 @@ export class ProjectManifestV1_0_0Impl }, keepDiscriminatorProperty: true, }) - dataSources: (NearRuntimeDatasource | NearCustomDatasource)[]; + dataSources!: (NearRuntimeDatasource | NearCustomDatasource)[]; @Type(() => ProjectNetworkV1_0_0) - network: ProjectNetworkV1_0_0; + network!: ProjectNetworkV1_0_0; @IsString() - name: string; + name!: string; @IsString() - version: string; + version!: string; @ValidateNested() @Type(() => FileType) - schema: FileType; + schema!: FileType; @IsOptional() @IsArray() @ValidateNested() @@ -163,7 +163,7 @@ export class ProjectManifestV1_0_0Impl @IsObject() @ValidateNested() @Type(() => NearRunnerSpecsImpl) - runner: RunnerSpecs; + runner!: RunnerSpecs; @IsOptional() @IsObject() diff --git a/packages/common-near/tsconfig.json b/packages/common-near/tsconfig.json index b3866a63..0519f60d 100644 --- a/packages/common-near/tsconfig.json +++ b/packages/common-near/tsconfig.json @@ -4,7 +4,8 @@ "rootDir": "src", "tsBuildInfoFile": "dist/.tsbuildinfo", "outDir": "dist", - "noImplicitAny": true + "noImplicitAny": true, + "strict": true }, "references": [{"path": "../types"}], "include": ["src/**/*"] diff --git a/packages/node/CHANGELOG.md b/packages/node/CHANGELOG.md index 52689208..ee829b7c 100644 --- a/packages/node/CHANGELOG.md +++ b/packages/node/CHANGELOG.md @@ -5,6 +5,17 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/), and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). ## [Unreleased] +### Added +- Support for network endpoint config providing the ability to set headers (#119) + +### Changed +- Enable strict TS (#119) +- Breaking change: Update to latest `@subql/node-core`, require indexing environment timezone set to UTC (#119) +- Use more code from node core (#119) + +### Fixed +- Actions filter issue (#119) +- Various issues causing poi inconsistency (#119) ## [3.12.0] - 2024-07-03 ### Changed diff --git a/packages/node/Dockerfile b/packages/node/Dockerfile index d3c52dd1..26e4697f 100644 --- a/packages/node/Dockerfile +++ b/packages/node/Dockerfile @@ -41,6 +41,8 @@ RUN mkdir -p .monitor && \ # Make the user not ROOT USER 1000 +# Fix timezone to UTC +ENV TZ=utc # Set Entry point and command ENTRYPOINT ["/sbin/tini", "--", "/usr/local/lib/node_modules/@subql/node-near/bin/run"] diff --git a/packages/node/package.json b/packages/node/package.json index 37d753fe..a0bfa7dd 100644 --- a/packages/node/package.json +++ b/packages/node/package.json @@ -24,8 +24,9 @@ "@nestjs/event-emitter": "^2.0.0", "@nestjs/platform-express": "^9.4.0", "@nestjs/schedule": "^3.0.1", + "@subql/common": "^5.1.1", "@subql/common-near": "workspace:*", - "@subql/node-core": "^10.10.0", + "@subql/node-core": "^14.1.2", "@subql/types-near": "workspace:*", "lodash": "^4.17.21", "near-api-js": "^2.1.4", diff --git a/packages/node/src/admin/admin.module.ts b/packages/node/src/admin/admin.module.ts deleted file mode 100644 index fa4e6425..00000000 --- a/packages/node/src/admin/admin.module.ts +++ /dev/null @@ -1,13 +0,0 @@ -// Copyright 2020-2024 SubQuery Pte Ltd authors & contributors -// SPDX-License-Identifier: GPL-3.0 - -import { Module } from '@nestjs/common'; -import { adminControllers, adminServices } from '@subql/node-core'; -import { FetchModule } from '../indexer/fetch.module'; - -@Module({ - imports: [FetchModule], - controllers: [...adminControllers], - providers: [...adminServices], -}) -export class AdminModule {} diff --git a/packages/node/src/app.module.ts b/packages/node/src/app.module.ts index a987ef27..f3af068f 100644 --- a/packages/node/src/app.module.ts +++ b/packages/node/src/app.module.ts @@ -4,11 +4,14 @@ import { Module } from '@nestjs/common'; import { EventEmitterModule } from '@nestjs/event-emitter'; import { ScheduleModule } from '@nestjs/schedule'; -import { DbModule } from '@subql/node-core'; -import { AdminModule } from './admin/admin.module'; +import { CoreModule, DbModule, MetaModule } from '@subql/node-core'; import { ConfigureModule } from './configure/configure.module'; import { FetchModule } from './indexer/fetch.module'; -import { MetaModule } from './meta/meta.module'; + +// eslint-disable-next-line @typescript-eslint/no-var-requires +const { version: nearSdkVersion } = require('near-api-js/package.json'); +// eslint-disable-next-line @typescript-eslint/no-var-requires +const { version: packageVersion } = require('../package.json'); @Module({ imports: [ @@ -16,9 +19,12 @@ import { MetaModule } from './meta/meta.module'; EventEmitterModule.forRoot(), ConfigureModule.register(), ScheduleModule.forRoot(), + CoreModule, FetchModule, - MetaModule, - AdminModule, + MetaModule.forRoot({ + version: packageVersion, + sdkVersion: { name: 'near-api-js', version: nearSdkVersion }, + }), ], controllers: [], }) diff --git a/packages/node/src/configure/SubqueryProject.ts b/packages/node/src/configure/SubqueryProject.ts index 16d959d4..93ab543a 100644 --- a/packages/node/src/configure/SubqueryProject.ts +++ b/packages/node/src/configure/SubqueryProject.ts @@ -1,32 +1,21 @@ // Copyright 2020-2024 SubQuery Pte Ltd authors & contributors // SPDX-License-Identifier: GPL-3.0 -import assert from 'assert'; -import { Injectable } from '@nestjs/common'; -import { validateSemver } from '@subql/common'; import { NearProjectNetworkConfig, parseNearProjectManifest, - ProjectManifestV1_0_0Impl, NearBlockFilter, isRuntimeDs, NearHandlerKind, isCustomDs, } from '@subql/common-near'; -import { - CronFilter, - insertBlockFiltersCronSchedules, - loadProjectTemplates, - updateDataSourcesV1_0_0, -} from '@subql/node-core'; -import { ParentProject, Reader, RunnerSpecs } from '@subql/types-core'; +import { BaseSubqueryProject, CronFilter } from '@subql/node-core'; +import { Reader } from '@subql/types-core'; import { NearDatasource, CustomDatasourceTemplate, RuntimeDatasourceTemplate, } from '@subql/types-near'; -import { buildSchemaFromString } from '@subql/utils'; -import { GraphQLSchema } from 'graphql'; const { version: packageVersion } = require('../../package.json'); @@ -36,151 +25,34 @@ export type NearProjectDsTemplate = | RuntimeDatasourceTemplate | CustomDatasourceTemplate; -const NOT_SUPPORT = (name: string) => { - throw new Error(`Manifest specVersion ${name} is not supported`); -}; - // This is the runtime type after we have mapped genesisHash to chainId and endpoint/dict have been provided when dealing with deployments type NetworkConfig = NearProjectNetworkConfig & { chainId: string }; -@Injectable() -export class SubqueryProject { - #dataSources: NearDatasource[]; - - constructor( - readonly id: string, - readonly root: string, - readonly network: NetworkConfig, - dataSources: NearDatasource[], - readonly schema: GraphQLSchema, - readonly templates: NearProjectDsTemplate[], - readonly runner?: RunnerSpecs, - readonly parent?: ParentProject, - ) { - this.#dataSources = dataSources; - } - - get dataSources(): NearDatasource[] { - return this.#dataSources; - } - - async applyCronTimestamps( - getTimestamp: (height: number) => Promise, - ): Promise { - this.#dataSources = await insertBlockFiltersCronSchedules( - this.dataSources, - getTimestamp, - isRuntimeDs, - NearHandlerKind.Block, - ); - } - - static async create( - path: string, - rawManifest: unknown, - reader: Reader, - root: string, - networkOverrides?: Partial, - ): Promise { - // rawManifest and reader can be reused here. - // It has been pre-fetched and used for rebase manifest runner options with args - // in order to generate correct configs. - - // But we still need reader here, because path can be remote or local - // and the `loadProjectManifest(projectPath)` only support local mode - if (rawManifest === undefined) { - throw new Error(`Get manifest from project path ${path} failed`); - } - - const manifest = parseNearProjectManifest(rawManifest); - - if (!manifest.isV1_0_0) { - NOT_SUPPORT('<1.0.0'); - } - - return loadProjectFromManifestBase( - manifest.asV1_0_0, - reader, - path, - root, - networkOverrides, - ); - } -} - -function processChainId(network: any): NetworkConfig { - if (network.chainId && network.genesisHash) { - throw new Error('Please only provide one of chainId and genesisHash'); - } else if (network.genesisHash && !network.chainId) { - network.chainId = network.genesisHash; - } - delete network.genesisHash; - return network; -} - -type SUPPORT_MANIFEST = ProjectManifestV1_0_0Impl; +export type SubqueryProject = BaseSubqueryProject< + NearDatasource, + NearProjectDsTemplate, + NetworkConfig +>; -async function loadProjectFromManifestBase( - projectManifest: SUPPORT_MANIFEST, - reader: Reader, +export async function createSubQueryProject( path: string, - root: string, - networkOverrides?: Partial, + rawManifest: unknown, + reader: Reader, + root: string, // If project local then directory otherwise temp directory + networkOverrides?: Partial, ): Promise { - if (typeof projectManifest.network.endpoint === 'string') { - projectManifest.network.endpoint = [projectManifest.network.endpoint]; - } - - const network = processChainId({ - ...projectManifest.network, - ...networkOverrides, - }); - - if (!network.endpoint) { - throw new Error( - `Network endpoint must be provided for network. chainId="${network.chainId}"`, - ); - } - - let schemaString: string; - try { - schemaString = await reader.getFile(projectManifest.schema.file); - } catch (e) { - throw new Error( - `unable to fetch the schema from ${projectManifest.schema.file}`, - ); - } - const schema = buildSchemaFromString(schemaString); - - const dataSources = await updateDataSourcesV1_0_0( - projectManifest.dataSources, + const project = await BaseSubqueryProject.create({ + parseManifest: (raw) => parseNearProjectManifest(raw).asV1_0_0, + path, + rawManifest, reader, root, + nodeSemver: packageVersion, + blockHandlerKind: NearHandlerKind.Block, + networkOverrides, + isRuntimeDs, isCustomDs, - ); - - const templates = await loadProjectTemplates( - projectManifest.templates, - root, - reader, - isCustomDs, - ); - const runner = projectManifest.runner; - assert( - validateSemver(packageVersion, runner.node.version), - new Error( - `Runner require node version ${runner.node.version}, current node ${packageVersion}`, - ), - ); + }); - return new SubqueryProject( - reader.root ? reader.root : path, //TODO, need to method to get project_id - root, - network, - dataSources, - schema, - templates, - runner, - projectManifest.parent, - ); + return project; } diff --git a/packages/node/src/configure/configure.module.ts b/packages/node/src/configure/configure.module.ts index de172d9b..4716d8c0 100644 --- a/packages/node/src/configure/configure.module.ts +++ b/packages/node/src/configure/configure.module.ts @@ -4,7 +4,7 @@ import { DynamicModule, Global, Module } from '@nestjs/common'; import { NodeConfig, registerApp } from '@subql/node-core'; import { yargsOptions } from '../yargs'; -import { SubqueryProject } from './SubqueryProject'; +import { createSubQueryProject, SubqueryProject } from './SubqueryProject'; const pjson = require('../../package.json'); @@ -18,7 +18,7 @@ export class ConfigureModule { const { argv } = yargsOptions; return registerApp( argv, - SubqueryProject.create.bind(SubqueryProject), + createSubQueryProject, yargsOptions.showHelp.bind(yargsOptions), pjson, ); diff --git a/packages/node/src/indexer/api.service.ts b/packages/node/src/indexer/api.service.ts index 716250ee..b523bbf0 100644 --- a/packages/node/src/indexer/api.service.ts +++ b/packages/node/src/indexer/api.service.ts @@ -2,8 +2,9 @@ // SPDX-License-Identifier: GPL-3.0 import { ConnectionInfo } from '@near-js/providers/lib/fetch_json'; -import { Inject, Injectable } from '@nestjs/common'; +import { Injectable } from '@nestjs/common'; import { EventEmitter2 } from '@nestjs/event-emitter'; +import { NearProjectNetworkConfig } from '@subql/common-near'; import { getLogger, @@ -32,19 +33,25 @@ import { BlockContent } from './types'; const logger = getLogger('api'); +// Force this here as Near can skip blocks and node-core doesn't support null for blocks +// TODO improve types and follow to where the check to filter out null blocks is +type ForceFetchBatchFunc = ( + api: Near.providers.JsonRpcProvider, + batch: number[], +) => Promise[]>; + @Injectable() export class ApiService extends BaseApiService< Near.providers.JsonRpcProvider, SafeJsonRpcProvider, IBlock[] > { - private fetchBlocksBatches = NearUtil.fetchBlocksBatches; + private fetchBlocksBatches = + NearUtil.fetchBlocksBatches as ForceFetchBatchFunc; - constructor( - @Inject('ISubqueryProject') private project: SubqueryProject, + private constructor( connectionPoolService: ConnectionPoolService, eventEmitter: EventEmitter2, - private nodeConfig: NodeConfig, ) { super(connectionPoolService, eventEmitter); } @@ -53,27 +60,34 @@ export class ApiService extends BaseApiService< await this.connectionPoolService.onApplicationShutdown(); } - async init(): Promise { + static async create( + project: SubqueryProject, + connectionPoolService: ConnectionPoolService, + eventEmitter: EventEmitter2, + nodeConfig: NodeConfig, + ): Promise { let network; try { - network = this.project.network; + network = project.network; } catch (e) { exitWithError(new Error(`Failed to init api`, { cause: e }), logger); } - if (this.nodeConfig?.profiler) { - this.fetchBlocksBatches = profilerWrap( + const apiService = new ApiService(connectionPoolService, eventEmitter); + + if (nodeConfig?.profiler) { + apiService.fetchBlocksBatches = profilerWrap( NearUtil.fetchBlocksBatches, 'NearUtil', 'fetchBlocksBatches', - ); + ) as ForceFetchBatchFunc; } - await this.createConnections(network, (endpoint) => - NearApiConnection.create(endpoint, this.fetchBlocksBatches), + await apiService.createConnections(network, (endpoint, config) => + NearApiConnection.create(endpoint, apiService.fetchBlocksBatches, config), ); - return this; + return apiService; } get api(): Near.providers.JsonRpcProvider { diff --git a/packages/node/src/indexer/blockDispatcher/block-dispatcher.service.ts b/packages/node/src/indexer/blockDispatcher/block-dispatcher.service.ts index 1c2d4a15..bac5ce5b 100644 --- a/packages/node/src/indexer/blockDispatcher/block-dispatcher.service.ts +++ b/packages/node/src/indexer/blockDispatcher/block-dispatcher.service.ts @@ -59,12 +59,6 @@ export class BlockDispatcherService ); } - async init( - onDynamicDsCreated: (height: number) => Promise, - ): Promise { - await super.init(onDynamicDsCreated); - } - protected getBlockHeight(block: BlockContent): number { return block.block.header.height; } diff --git a/packages/node/src/indexer/blockDispatcher/near-block-dispatcher.ts b/packages/node/src/indexer/blockDispatcher/near-block-dispatcher.ts index d0d4e380..63cec7aa 100644 --- a/packages/node/src/indexer/blockDispatcher/near-block-dispatcher.ts +++ b/packages/node/src/indexer/blockDispatcher/near-block-dispatcher.ts @@ -5,5 +5,7 @@ import { IBlockDispatcher } from '@subql/node-core'; import { NearBlock } from '@subql/types-near'; export interface INearBlockDispatcher extends IBlockDispatcher { - init(onDynamicDsCreated: (height: number) => Promise): Promise; + init( + onDynamicDsCreated: (height: number) => void | Promise, + ): Promise; } diff --git a/packages/node/src/indexer/blockDispatcher/worker-block-dispatcher.service.ts b/packages/node/src/indexer/blockDispatcher/worker-block-dispatcher.service.ts index 0e296c7c..d32a3e52 100644 --- a/packages/node/src/indexer/blockDispatcher/worker-block-dispatcher.service.ts +++ b/packages/node/src/indexer/blockDispatcher/worker-block-dispatcher.service.ts @@ -81,29 +81,10 @@ export class WorkerBlockDispatcherService ); } - async init( - onDynamicDsCreated: (height: number) => Promise, - ): Promise { - await super.init(onDynamicDsCreated); - } - protected async fetchBlock( worker: IndexerWorker, height: number, ): Promise { - // const start = new Date(); - await worker.fetchBlock(height, null); - // const end = new Date(); - - // const waitTime = end.getTime() - start.getTime(); - // if (waitTime > 1000) { - // logger.info( - // `Waiting to fetch block ${height}: ${chalk.red(`${waitTime}ms`)}`, - // ); - // } else if (waitTime > 200) { - // logger.info( - // `Waiting to fetch block ${height}: ${chalk.yellow(`${waitTime}ms`)}`, - // ); - // } + await worker.fetchBlock(height, 0 /* Not used*/); } } diff --git a/packages/node/src/indexer/dictionary/nearDictionary.service.ts b/packages/node/src/indexer/dictionary/nearDictionary.service.ts index 58e5e5a1..1da9ebb5 100644 --- a/packages/node/src/indexer/dictionary/nearDictionary.service.ts +++ b/packages/node/src/indexer/dictionary/nearDictionary.service.ts @@ -65,9 +65,4 @@ export class NearDictionaryService extends DictionaryService< ) { super(project.network.chainId, nodeConfig, eventEmitter); } - - private getV1Dictionary(): NearDictionaryV1 | undefined { - // TODO this needs to be removed once Near supports V2 dictionaries - return this._dictionaries[this._currentDictionaryIndex] as NearDictionaryV1; - } } diff --git a/packages/node/src/indexer/dictionary/v1/nearDictionaryV1.ts b/packages/node/src/indexer/dictionary/v1/nearDictionaryV1.ts index 495d02e1..dc5a80fe 100644 --- a/packages/node/src/indexer/dictionary/v1/nearDictionaryV1.ts +++ b/packages/node/src/indexer/dictionary/v1/nearDictionaryV1.ts @@ -1,6 +1,7 @@ // Copyright 2020-2024 SubQuery Pte Ltd authors & contributors // SPDX-License-Identifier: GPL-3.0 +import assert from 'assert'; import { isCustomDs, NearHandlerKind, @@ -16,7 +17,6 @@ import { NodeConfig, DictionaryV1 } from '@subql/node-core'; import { DictionaryQueryCondition, DictionaryQueryEntry as DictionaryV1QueryEntry, - DsProcessor, } from '@subql/types-core'; import { NearBlockFilter, @@ -26,6 +26,9 @@ import { import { sortBy, uniqBy } from 'lodash'; import { SubqueryProject } from '../../../configure/SubqueryProject'; import { isBaseHandler, isCustomHandler } from '../../../utils/project'; +import { DsProcessorService } from '../../ds-processor.service'; + +type GetDsProcessor = DsProcessorService['getDsProcessor']; function txFilterToQueryEntry( filter: NearTransactionFilter, @@ -78,13 +81,11 @@ function actionFilterToQueryEntry( }; } -function getBaseHandlerKind< - P extends DsProcessor = DsProcessor, ->( +function getBaseHandlerKind( ds: NearDataSource, handler: NearHandler, - getDsProcessor: (ds: NearDatasource) => P, -): NearHandlerKind { + getDsProcessor: GetDsProcessor, +): NearHandlerKind | undefined { if (isRuntimeDs(ds) && isBaseHandler(handler)) { return handler.kind; } else if (isCustomDs(ds) && isCustomHandler(handler)) { @@ -99,13 +100,10 @@ function getBaseHandlerKind< } } -function getBaseHandlerFilters< - T extends NearRuntimeHandlerFilter, - P extends DsProcessor = DsProcessor, ->( +function getBaseHandlerFilters( ds: NearDataSource, handlerKind: string, - getDsProcessor: (ds: NearDatasource) => P, + getDsProcessor: GetDsProcessor, ): T[] { if (isCustomDs(ds)) { const plugin = getDsProcessor(ds); @@ -119,11 +117,9 @@ function getBaseHandlerFilters< } // eslint-disable-next-line complexity -function buildDictionaryV1QueryEntries< - P extends DsProcessor = DsProcessor, ->( +function buildDictionaryV1QueryEntries( dataSources: NearDatasource[], - getDsProcessor: (ds: NearDatasource) => P, + getDsProcessor: GetDsProcessor, ): DictionaryV1QueryEntry[] { const queryEntries: DictionaryV1QueryEntry[] = []; @@ -131,14 +127,13 @@ function buildDictionaryV1QueryEntries< const plugin = isCustomDs(ds) ? getDsProcessor(ds) : undefined; for (const handler of ds.mapping.handlers) { const baseHandlerKind = getBaseHandlerKind(ds, handler, getDsProcessor); - let filterList: NearRuntimeHandlerFilter[]; + let filterList: NearRuntimeHandlerFilter[] = []; if (isCustomDs(ds)) { + assert(plugin, 'plugin should be defined'); const processor = plugin.handlerProcessors[handler.kind]; - if (processor.dictionaryQuery) { - const queryEntry = processor.dictionaryQuery( - (handler as NearCustomHandler).filter, - ds, - ); + const filter = (handler as NearCustomHandler).filter; + if (processor.dictionaryQuery && filter) { + const queryEntry = processor.dictionaryQuery(filter, ds); if (queryEntry) { queryEntries.push(queryEntry); continue; @@ -149,11 +144,11 @@ function buildDictionaryV1QueryEntries< handler.kind, getDsProcessor, ); - } else { + } else if (handler.filter) { filterList = [handler.filter]; } // Filter out any undefined - filterList = filterList.filter(Boolean); + filterList = filterList.filter((f) => f); if (!filterList.length) return []; switch (baseHandlerKind) { case NearHandlerKind.Block: @@ -222,10 +217,8 @@ export class NearDictionaryV1 extends DictionaryV1 { constructor( project: SubqueryProject, nodeConfig: NodeConfig, - protected getDsProcessor: ( - ds: NearDatasource, - ) => DsProcessor, - dictionaryUrl?: string, + protected getDsProcessor: GetDsProcessor, + dictionaryUrl: string, chainId?: string, ) { super(dictionaryUrl, chainId ?? project.network.chainId, nodeConfig); @@ -234,8 +227,8 @@ export class NearDictionaryV1 extends DictionaryV1 { static async create( project: SubqueryProject, nodeConfig: NodeConfig, - getDsProcessor: (ds: NearDatasource) => DsProcessor, - dictionaryUrl?: string, + getDsProcessor: GetDsProcessor, + dictionaryUrl: string, chainId?: string, ): Promise { const dictionary = new NearDictionaryV1( diff --git a/packages/node/src/indexer/dynamic-ds.service.ts b/packages/node/src/indexer/dynamic-ds.service.ts index cd72a839..f82fcc18 100644 --- a/packages/node/src/indexer/dynamic-ds.service.ts +++ b/packages/node/src/indexer/dynamic-ds.service.ts @@ -42,7 +42,7 @@ export class DynamicDsService extends BaseDynamicDsService< } return dsObj; - } catch (e) { + } catch (e: any) { throw new Error(`Unable to create dynamic datasource.\n ${e.message}`); } } diff --git a/packages/node/src/indexer/fetch.module.ts b/packages/node/src/indexer/fetch.module.ts index 3f4f2b13..4230eda1 100644 --- a/packages/node/src/indexer/fetch.module.ts +++ b/packages/node/src/indexer/fetch.module.ts @@ -4,19 +4,16 @@ import { Module } from '@nestjs/common'; import { EventEmitter2 } from '@nestjs/event-emitter'; import { - PoiBenchmarkService, - IndexingBenchmarkService, StoreService, - PoiService, NodeConfig, - ConnectionPoolService, StoreCacheService, ConnectionPoolStateManager, IProjectUpgradeService, PoiSyncService, InMemoryCacheService, - SandboxService, MonitorService, + CoreModule, + ConnectionPoolService, } from '@subql/node-core'; import { SubqueryProject } from '../configure/SubqueryProject'; import { ApiService } from './api.service'; @@ -34,14 +31,19 @@ import { ProjectService } from './project.service'; import { UnfinalizedBlocksService } from './unfinalizedBlocks.service'; @Module({ + imports: [CoreModule], providers: [ - InMemoryCacheService, - StoreService, - StoreCacheService, - ApiService, + { + provide: ApiService, + useFactory: ApiService.create.bind(ApiService), + inject: [ + 'ISubqueryProject', + ConnectionPoolService, + EventEmitter2, + NodeConfig, + ], + }, IndexerManager, - ConnectionPoolService, - ConnectionPoolStateManager, { provide: 'IBlockDispatcher', useFactory: ( @@ -108,15 +110,9 @@ import { UnfinalizedBlocksService } from './unfinalizedBlocks.service'; ], }, FetchService, - ConnectionPoolService, - IndexingBenchmarkService, - PoiBenchmarkService, NearDictionaryService, - SandboxService, DsProcessorService, DynamicDsService, - PoiService, - PoiSyncService, { useClass: ProjectService, provide: 'IProjectService', @@ -124,6 +120,5 @@ import { UnfinalizedBlocksService } from './unfinalizedBlocks.service'; UnfinalizedBlocksService, MonitorService, ], - exports: [StoreService, StoreCacheService, MonitorService, PoiService], }) export class FetchModule {} diff --git a/packages/node/src/indexer/fetch.service.ts b/packages/node/src/indexer/fetch.service.ts index b1745c8a..585a1088 100644 --- a/packages/node/src/indexer/fetch.service.ts +++ b/packages/node/src/indexer/fetch.service.ts @@ -10,7 +10,13 @@ import { NearDataSource, NearHandlerKind, } from '@subql/common-near'; -import { NodeConfig, BaseFetchService, getModulos } from '@subql/node-core'; +import { + NodeConfig, + BaseFetchService, + getModulos, + StoreCacheService, + Header, +} from '@subql/node-core'; import { NearBlock, NearDatasource } from '@subql/types-near'; import { JsonRpcProvider } from 'near-api-js/lib/providers'; import { SubqueryProject } from '../configure/SubqueryProject'; @@ -38,9 +44,10 @@ export class FetchService extends BaseFetchService< @Inject('IBlockDispatcher') blockDispatcher: INearBlockDispatcher, dictionaryService: NearDictionaryService, - private unfinalizedBlocksService: UnfinalizedBlocksService, + unfinalizedBlocksService: UnfinalizedBlocksService, eventEmitter: EventEmitter2, schedulerRegistry: SchedulerRegistry, + storeCacheService: StoreCacheService, ) { super( nodeConfig, @@ -50,6 +57,8 @@ export class FetchService extends BaseFetchService< dictionaryService, eventEmitter, schedulerRegistry, + unfinalizedBlocksService, + storeCacheService, ); } @@ -57,13 +66,10 @@ export class FetchService extends BaseFetchService< return this.apiService.unsafeApi; } - protected async getFinalizedHeight(): Promise { + protected async getFinalizedHeader(): Promise
{ const finalizedHeader = (await this.api.block({ finality: 'final' })) .header; - this.unfinalizedBlocksService.registerFinalizedBlock( - nearHeaderToHeader(finalizedHeader), - ); - return finalizedHeader.height; + return nearHeaderToHeader(finalizedHeader); } protected async getBestHeight(): Promise { diff --git a/packages/node/src/indexer/indexer.manager.ts b/packages/node/src/indexer/indexer.manager.ts index f6ac612d..a17490da 100644 --- a/packages/node/src/indexer/indexer.manager.ts +++ b/packages/node/src/indexer/indexer.manager.ts @@ -101,7 +101,7 @@ export class IndexerManager extends BaseIndexerManager< (action) => //check if action is not produced by receipts action.receipt === undefined && - action.transaction.result.id === transaction.result.id, + action.transaction?.result.id === transaction.result.id, ); for (const action of actions) { await this.indexAction(action, dataSources, getVM); diff --git a/packages/node/src/indexer/nearApi.connection.ts b/packages/node/src/indexer/nearApi.connection.ts index ffcf5506..b60ad466 100644 --- a/packages/node/src/indexer/nearApi.connection.ts +++ b/packages/node/src/indexer/nearApi.connection.ts @@ -9,6 +9,7 @@ import { IBlock, NetworkMetadataPayload, } from '@subql/node-core'; +import { IEndpointConfig } from '@subql/types-core'; import * as Near from 'near-api-js'; import { SafeJsonRpcProvider } from './api.service'; import { BlockContent } from './types'; @@ -51,9 +52,11 @@ export class NearApiConnection static async create( endpoint: string, fetchBlockBatches: FetchFunc, + config?: IEndpointConfig, ): Promise { const headers = { 'User-Agent': `SubQuery-Node ${packageVersion}`, + ...config?.headers, }; const connectionInfo: ConnectionInfo = { diff --git a/packages/node/src/indexer/project.service.spec.ts b/packages/node/src/indexer/project.service.spec.ts index a7ed3fb6..a4a2ebce 100644 --- a/packages/node/src/indexer/project.service.spec.ts +++ b/packages/node/src/indexer/project.service.spec.ts @@ -24,18 +24,18 @@ describe('ProjectService', () => { const apiService = mockApiService(); projectService = new ProjectService( - null, + null as any, // DsProcessorService apiService, - null, - null, - null, - null, - null, - null, - {} as any, - null, - null, - null, + null as any, // PoiService + null as any, // PoiSyncService + null as any, // Sequelize + null as any, // SubqueryProject + null as any, // ProjectUpgradeService + null as any, // StoreService + {} as any, // NodeConfig + null as any, // DynamicDsService + null as any, // EventEmitter + null as any, // UnfinalizedBlocks ); }); diff --git a/packages/node/src/indexer/worker/worker-fetch.module.ts b/packages/node/src/indexer/worker/worker-fetch.module.ts index 109de12f..12c0d2a5 100644 --- a/packages/node/src/indexer/worker/worker-fetch.module.ts +++ b/packages/node/src/indexer/worker/worker-fetch.module.ts @@ -6,53 +6,27 @@ import { EventEmitter2 } from '@nestjs/event-emitter'; import { ConnectionPoolService, WorkerDynamicDsService, - WorkerConnectionPoolStateManager, - ConnectionPoolStateManager, NodeConfig, - InMemoryCacheService, - WorkerInMemoryCacheService, SandboxService, WorkerUnfinalizedBlocksService, - MonitorService, - WorkerMonitorService, + WorkerCoreModule, } from '@subql/node-core'; -import { SubqueryProject } from '../../configure/SubqueryProject'; import { ApiService } from '../api.service'; import { DsProcessorService } from '../ds-processor.service'; import { DynamicDsService } from '../dynamic-ds.service'; import { IndexerManager } from '../indexer.manager'; -import { NearApiConnection } from '../nearApi.connection'; import { ProjectService } from '../project.service'; import { UnfinalizedBlocksService } from '../unfinalizedBlocks.service'; import { WorkerService } from '../worker/worker.service'; @Module({ + imports: [WorkerCoreModule], providers: [ IndexerManager, ConnectionPoolService, - { - provide: ConnectionPoolStateManager, - useFactory: () => - new WorkerConnectionPoolStateManager((global as any).host), - }, - ConnectionPoolService, { provide: ApiService, - useFactory: async ( - project: SubqueryProject, - connectionPoolService: ConnectionPoolService, - eventEmitter: EventEmitter2, - nodeConfig: NodeConfig, - ) => { - const apiService = new ApiService( - project, - connectionPoolService, - eventEmitter, - nodeConfig, - ); - await apiService.init(); - return apiService; - }, + useFactory: ApiService.create.bind(ApiService), inject: [ 'ISubqueryProject', ConnectionPoolService, @@ -71,20 +45,11 @@ import { WorkerService } from '../worker/worker.service'; useClass: ProjectService, }, WorkerService, - { - provide: MonitorService, - useFactory: () => new WorkerMonitorService((global as any).host), - }, { provide: UnfinalizedBlocksService, useFactory: () => new WorkerUnfinalizedBlocksService((global as any).host), }, - { - provide: InMemoryCacheService, - useFactory: () => new WorkerInMemoryCacheService((global as any).host), - }, ], - exports: [], }) export class WorkerFetchModule {} diff --git a/packages/node/src/indexer/worker/worker.service.ts b/packages/node/src/indexer/worker/worker.service.ts index 2dbb8565..53e7d8fe 100644 --- a/packages/node/src/indexer/worker/worker.service.ts +++ b/packages/node/src/indexer/worker/worker.service.ts @@ -45,13 +45,13 @@ export class WorkerService extends BaseWorkerService< const [block] = await this.apiService.fetchBlocks([heights]); return block; } - protected toBlockResponse(block: BlockContent): { - parentHash: string | undefined; - } { + + protected toBlockResponse(block: BlockContent): FetchBlockResponse { return { parentHash: block?.block.header.prev_hash, }; } + protected async processFetchedBlock( block: IBlock, dataSources: NearDatasource[], diff --git a/packages/node/src/indexer/worker/worker.ts b/packages/node/src/indexer/worker/worker.ts index 7830aa7e..d7eb9211 100644 --- a/packages/node/src/indexer/worker/worker.ts +++ b/packages/node/src/indexer/worker/worker.ts @@ -31,7 +31,7 @@ import { WorkerService } from './worker.service'; const logger = getLogger(`worker #${threadId}`); -async function initWorker(startHeight: number): Promise { +async function initWorker(startHeight?: number): Promise { try { const app = await NestFactory.create(WorkerModule, { logger: new NestLogger(!!argv.debug), // TIP: If the worker is crashing comment out this line for better logging @@ -46,7 +46,7 @@ async function initWorker(startHeight: number): Promise { const workerService = app.get(WorkerService); initWorkerServices(app, workerService); - } catch (e) { + } catch (e: any) { console.log('Failed to start worker', e); logger.error(e, 'Failed to start worker'); throw e; diff --git a/packages/node/src/init.ts b/packages/node/src/init.ts index 952b5483..647ac19c 100644 --- a/packages/node/src/init.ts +++ b/packages/node/src/init.ts @@ -9,7 +9,6 @@ import { NestLogger, } from '@subql/node-core'; import { AppModule } from './app.module'; -import { ApiService } from './indexer/api.service'; import { FetchService } from './indexer/fetch.service'; import { ProjectService } from './indexer/project.service'; import { yargsOptions } from './yargs'; @@ -37,10 +36,8 @@ export async function bootstrap(): Promise { const projectService: ProjectService = app.get('IProjectService'); const fetchService = app.get(FetchService); - const apiService = app.get(ApiService); // Initialise async services, we do this here rather than in factories, so we can capture one off events - await apiService.init(); await projectService.init(); await fetchService.init(projectService.startHeight); diff --git a/packages/node/src/meta/meta.controller.ts b/packages/node/src/meta/meta.controller.ts deleted file mode 100644 index fa7b0618..00000000 --- a/packages/node/src/meta/meta.controller.ts +++ /dev/null @@ -1,15 +0,0 @@ -// Copyright 2020-2024 SubQuery Pte Ltd authors & contributors -// SPDX-License-Identifier: GPL-3.0 - -import { Controller, Get } from '@nestjs/common'; -import { MetaService } from './meta.service'; - -@Controller('meta') -export class MetaController { - constructor(private metaService: MetaService) {} - - @Get() - getMeta() { - return this.metaService.getMeta(); - } -} diff --git a/packages/node/src/meta/meta.module.ts b/packages/node/src/meta/meta.module.ts deleted file mode 100644 index cc474236..00000000 --- a/packages/node/src/meta/meta.module.ts +++ /dev/null @@ -1,16 +0,0 @@ -// Copyright 2020-2024 SubQuery Pte Ltd authors & contributors -// SPDX-License-Identifier: GPL-3.0 - -import { Module } from '@nestjs/common'; -import { metaControllers, metaServices } from '@subql/node-core'; -import { PrometheusModule } from '@willsoto/nestjs-prometheus'; -import { FetchModule } from '../indexer/fetch.module'; -import { MetaController } from './meta.controller'; -import { MetaService } from './meta.service'; - -@Module({ - imports: [PrometheusModule.register(), FetchModule], - controllers: [...metaControllers, MetaController], - providers: [...metaServices, MetaService], -}) -export class MetaModule {} diff --git a/packages/node/src/meta/meta.service.ts b/packages/node/src/meta/meta.service.ts deleted file mode 100644 index 284f08c5..00000000 --- a/packages/node/src/meta/meta.service.ts +++ /dev/null @@ -1,26 +0,0 @@ -// Copyright 2020-2024 SubQuery Pte Ltd authors & contributors -// SPDX-License-Identifier: GPL-3.0 - -import { Injectable } from '@nestjs/common'; -import { - BaseMetaService, - NodeConfig, - StoreCacheService, -} from '@subql/node-core'; - -// eslint-disable-next-line @typescript-eslint/no-var-requires -const { version: nearSdkVersion } = require('near-api-js/package.json'); -// eslint-disable-next-line @typescript-eslint/no-var-requires -const { version: packageVersion } = require('../../package.json'); - -@Injectable() -export class MetaService extends BaseMetaService { - protected packageVersion = packageVersion; - protected sdkVersion(): { name: string; version: string } { - return { name: 'nearSdkVersion', version: nearSdkVersion }; - } - - constructor(storeCacheService: StoreCacheService, config: NodeConfig) { - super(storeCacheService, config); - } -} diff --git a/packages/node/src/subcommands/testing.module.ts b/packages/node/src/subcommands/testing.module.ts index bb7220e4..173ba38c 100644 --- a/packages/node/src/subcommands/testing.module.ts +++ b/packages/node/src/subcommands/testing.module.ts @@ -12,59 +12,38 @@ import { NodeConfig, PoiService, PoiSyncService, - StoreCacheService, StoreService, TestRunner, SandboxService, } from '@subql/node-core'; import { ConfigureModule } from '../configure/configure.module'; -import { SubqueryProject } from '../configure/SubqueryProject'; import { ApiService } from '../indexer/api.service'; import { DsProcessorService } from '../indexer/ds-processor.service'; import { DynamicDsService } from '../indexer/dynamic-ds.service'; -import { FetchModule } from '../indexer/fetch.module'; import { IndexerManager } from '../indexer/indexer.manager'; -import { NearApiConnection } from '../indexer/nearApi.connection'; import { ProjectService } from '../indexer/project.service'; import { UnfinalizedBlocksService } from '../indexer/unfinalizedBlocks.service'; -import { MetaModule } from '../meta/meta.module'; @Module({ providers: [ InMemoryCacheService, StoreService, - StoreCacheService, EventEmitter2, PoiService, PoiSyncService, SandboxService, DsProcessorService, DynamicDsService, - ProjectService, UnfinalizedBlocksService, - ConnectionPoolStateManager, ConnectionPoolService, + ConnectionPoolStateManager, { provide: 'IProjectService', useClass: ProjectService, }, { provide: ApiService, - useFactory: async ( - project: SubqueryProject, - connectionPoolService: ConnectionPoolService, - eventEmitter: EventEmitter2, - config: NodeConfig, - ) => { - const apiService = new ApiService( - project, - connectionPoolService, - eventEmitter, - config, - ); - await apiService.init(); - return apiService; - }, + useFactory: ApiService.create.bind(ApiService), inject: [ 'ISubqueryProject', ConnectionPoolService, @@ -76,15 +55,13 @@ import { MetaModule } from '../meta/meta.module'; TestRunner, { provide: 'IApi', - useClass: ApiService, + useExisting: ApiService, }, { provide: 'IIndexerManager', useClass: IndexerManager, }, ], - - imports: [MetaModule, FetchModule], controllers: [], exports: [TestRunner], }) diff --git a/packages/node/src/subcommands/testing.service.ts b/packages/node/src/subcommands/testing.service.ts index 6bec0964..f6a60a79 100644 --- a/packages/node/src/subcommands/testing.service.ts +++ b/packages/node/src/subcommands/testing.service.ts @@ -12,7 +12,7 @@ import { import { NearDatasource } from '@subql/types-near'; import { JsonRpcProvider } from 'near-api-js/lib/providers'; import { SubqueryProject } from '../configure/SubqueryProject'; -import { ApiService, SafeJsonRpcProvider } from '../indexer/api.service'; +import { SafeJsonRpcProvider } from '../indexer/api.service'; import { ProjectService } from '../indexer/project.service'; import { BlockContent } from '../indexer/types'; import { TestingModule } from './testing.module'; @@ -52,10 +52,8 @@ export class TestingService extends BaseTestingService< await testContext.init(); const projectService: ProjectService = testContext.get(ProjectService); - const apiService = testContext.get(ApiService); // Initialise async services, we do this here rather than in factories, so we can capture one off events - await apiService.init(); await projectService.init(); return [testContext.close.bind(testContext), testContext.get(TestRunner)]; diff --git a/packages/node/src/utils/near.spec.ts b/packages/node/src/utils/near.spec.ts index b16b3a66..fb0a0c0c 100644 --- a/packages/node/src/utils/near.spec.ts +++ b/packages/node/src/utils/near.spec.ts @@ -2,12 +2,33 @@ // SPDX-License-Identifier: GPL-3.0 import { IBlock } from '@subql/node-core'; +import { + NearAction, + NearActionFilter, + NearReceiptFilter, + NearTransactionReceipt, +} from '@subql/types-near'; import * as Near from 'near-api-js'; import { BlockContent } from '../indexer/types'; -import { filterActions, fetchBlocksBatches, filterReceipts } from './near'; +import { fetchBlocksBatches, filterAction, filterReceipt } from './near'; jest.setTimeout(30000); +// These are needed because the order doesn't seem to be deterministic +function filterReceipts( + receipts: NearTransactionReceipt[], + filter: NearReceiptFilter, +): NearTransactionReceipt[] { + return receipts.filter((r) => filterReceipt(r, filter)); +} + +function filterActions( + actions: NearAction[], + filter: NearActionFilter, +): NearAction[] { + return actions.filter((a) => filterAction(a, filter)); +} + describe('Near api', () => { let nearApi: Near.providers.JsonRpcProvider; @@ -21,7 +42,9 @@ describe('Near api', () => { let block: IBlock; beforeAll(async () => { - [block] = await fetchBlocksBatches(nearApi, [85686945]); + const [b] = await fetchBlocksBatches(nearApi, [85686945]); + // eslint-disable-next-line @typescript-eslint/no-non-null-assertion + block = b!; }); it('Can filter receipts with sender, receiver and signer', () => { @@ -52,10 +75,17 @@ describe('Near api', () => { block83788766: IBlock, block85686945: IBlock; beforeAll(async () => { - [block50838341, block83788766, block85686945] = await fetchBlocksBatches( + const [b1, b2, b3] = await fetchBlocksBatches( nearApi, [50838341, 83788766, 85686945], ); + + // eslint-disable-next-line @typescript-eslint/no-non-null-assertion + block50838341 = b1!; + // eslint-disable-next-line @typescript-eslint/no-non-null-assertion + block83788766 = b2!; + // eslint-disable-next-line @typescript-eslint/no-non-null-assertion + block85686945 = b3!; }); it('Can filter FunctionCall actions', () => { @@ -110,7 +140,8 @@ describe('Near api', () => { it.skip('Can filter DeleteAccount actions', async () => { const [block] = await fetchBlocksBatches(nearApi, [50838341]); - const actions = filterActions(block.block.actions, { + // eslint-disable-next-line @typescript-eslint/no-non-null-assertion + const actions = filterActions(block!.block.actions, { type: 'DeleteAccount', beneficiaryId: '', }); @@ -120,7 +151,8 @@ describe('Near api', () => { it('Can filter SignedDelegate actions', async () => { const [delegateBlock] = await fetchBlocksBatches(nearApi, [100051916]); - const actions = filterActions(delegateBlock.block.actions, { + // eslint-disable-next-line @typescript-eslint/no-non-null-assertion + const actions = filterActions(delegateBlock!.block.actions, { type: 'Delegate', }); expect(actions.length).toBe(1); diff --git a/packages/node/src/utils/near.ts b/packages/node/src/utils/near.ts index 1df953c6..7bd307b6 100644 --- a/packages/node/src/utils/near.ts +++ b/packages/node/src/utils/near.ts @@ -147,7 +147,10 @@ export async function wrapBlock( if (receipt.Action) { for (const action of receipt.Action.actions) { action.receipt = receipt; - action.receipt.Action.actions = null; + if (action.receipt.Action) { + // TODO understand this better + (action.receipt.Action.actions as any) = null; + } nearBlock.actions.push(action); } } @@ -315,23 +318,6 @@ export function filterTransaction( return true; } -export function filterTransactions( - transactions: NearTransaction[], - filterOrFilters: NearTransactionFilter | NearTransactionFilter[] | undefined, -): NearTransaction[] { - if ( - !filterOrFilters || - (filterOrFilters instanceof Array && filterOrFilters.length === 0) - ) { - return transactions; - } - const filters = - filterOrFilters instanceof Array ? filterOrFilters : [filterOrFilters]; - return transactions.filter((transaction) => - filters.find((filter) => filterTransaction(transaction, filter)), - ); -} - export function filterReceipt( receipt: NearTransactionReceipt, filter?: NearReceiptFilter, @@ -350,23 +336,6 @@ export function filterReceipt( return true; } -export function filterReceipts( - receipts: NearTransactionReceipt[], - filterOrFilters?: NearReceiptFilter | NearReceiptFilter[] | undefined, -): NearTransactionReceipt[] { - if ( - !filterOrFilters || - (filterOrFilters instanceof Array && filterOrFilters.length === 0) - ) { - return receipts; - } - const filters = - filterOrFilters instanceof Array ? filterOrFilters : [filterOrFilters]; - return receipts.filter((receipt) => - filters.find((filter) => filterReceipt(receipt, filter)), - ); -} - export function filterAction( action: NearAction, filter?: NearActionFilter, @@ -383,17 +352,17 @@ export function filterAction( return false; } + // Extract sender, receiver as they are filtered by transaction/receipt const { receiver, sender, type, ...filterByKey } = filter; - if (type && action.type !== type) { + if (action.type && action.type !== type) { return false; } for (const key in filterByKey) { - if ( - mappingFilterAction[action.type] && - filterByKey[key] !== get(action, mappingFilterAction[action.type][key]) - ) { + const value = filterByKey[key]; + const actionKey = mappingFilterAction[action.type]?.[key]; + if (actionKey && value && value !== get(action, actionKey)) { return false; } } @@ -401,23 +370,6 @@ export function filterAction( return true; } -export function filterActions( - actions: NearAction[], - filterOrFilters?: NearActionFilter | NearActionFilter[] | undefined, -): NearAction[] { - if ( - !filterOrFilters || - (filterOrFilters instanceof Array && filterOrFilters.length === 0) - ) { - return actions; - } - const filters = - filterOrFilters instanceof Array ? filterOrFilters : [filterOrFilters]; - return actions.filter((action) => - filters.find((filter) => filterAction(action, filter)), - ); -} - /** * * @param api @@ -451,12 +403,12 @@ export async function fetchBlocksRange( export async function fetchBlocksArray( api: providers.JsonRpcProvider, blockArray: number[], -): Promise { +): Promise<(BlockResult | null)[]> { const results = await Promise.all( blockArray.map(async (height) => { try { return await getBlockByHeight(api, height); - } catch (error) { + } catch (error: any) { if ( error.message === `[-32000] Server error: DB Not Found Error: BLOCK HEIGHT: ${height} \n Cause: Unknown` @@ -494,7 +446,7 @@ export function formatBlockUtil( export async function fetchBlocksBatches( api: providers.JsonRpcProvider, blockArray: number[], -): Promise[]> { +): Promise<(IBlock | null)[]> { const blocks = await fetchBlocksArray(api, blockArray); const blockContentPromises = blocks.map(async (blockResult) => { diff --git a/packages/node/tsconfig.json b/packages/node/tsconfig.json index d634751b..6e479b5e 100644 --- a/packages/node/tsconfig.json +++ b/packages/node/tsconfig.json @@ -4,7 +4,8 @@ "sourceMap": true, "tsBuildInfoFile": "dist/.tsbuildinfo", "rootDir": "src", - "outDir": "./dist" + "outDir": "./dist", + "strict": true }, "references": [{ "path": "../common-near" }, { "path": "../types" }], "include": ["src/**/*"], diff --git a/packages/types/CHANGELOG.md b/packages/types/CHANGELOG.md index 7ca2d88a..128979ef 100644 --- a/packages/types/CHANGELOG.md +++ b/packages/types/CHANGELOG.md @@ -5,6 +5,12 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/), and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). ## [Unreleased] +### Added +- Support for network endpoint config (#119) + +### Changed +- Make transaction optional on action (#119) +- Enable strict TS (119) ## [3.4.0] - 2024-07-03 ### Changed diff --git a/packages/types/package.json b/packages/types/package.json index 80a53e1c..81aacbf5 100644 --- a/packages/types/package.json +++ b/packages/types/package.json @@ -17,7 +17,7 @@ "/dist" ], "dependencies": { - "@subql/types-core": "^0.9.0", + "@subql/types-core": "^1.1.1", "bn.js": "5.2.1", "near-api-js": "^1.1.0" }, diff --git a/packages/types/src/interfaces.ts b/packages/types/src/interfaces.ts index ff7ad045..9b5f358c 100644 --- a/packages/types/src/interfaces.ts +++ b/packages/types/src/interfaces.ts @@ -149,7 +149,7 @@ export interface NearAction { id: number; type: ActionType; action: T; - transaction: NearTransaction; + transaction?: NearTransaction; receipt?: NearTransactionReceipt; } diff --git a/packages/types/src/project.ts b/packages/types/src/project.ts index fa6764bf..398e9c58 100644 --- a/packages/types/src/project.ts +++ b/packages/types/src/project.ts @@ -64,6 +64,13 @@ export type RuntimeHandlerInputMap = { [NearHandlerKind.Receipt]: NearTransactionReceipt; }; +export type RuntimeHandlerFilterMap = { + [NearHandlerKind.Block]: NearBlockFilter; + [NearHandlerKind.Transaction]: NearTransactionFilter; + [NearHandlerKind.Action]: NearActionFilter; + [NearHandlerKind.Receipt]: NearReceiptFilter; +}; + /** * Represents a filter for Near blocks. */ @@ -243,7 +250,7 @@ export interface NearCustomDatasource, T, @@ -270,8 +277,24 @@ export type SecondLayerHandlerProcessor< E, DS extends NearCustomDatasource = NearCustomDatasource > = - | SecondLayerHandlerProcessor_0_0_0 - | SecondLayerHandlerProcessor_1_0_0; + | SecondLayerHandlerProcessor_0_0_0< + K, + RuntimeHandlerInputMap, + RuntimeHandlerFilterMap, + F, + E, + DS, + providers.JsonRpcProvider + > + | SecondLayerHandlerProcessor_1_0_0< + K, + RuntimeHandlerInputMap, + RuntimeHandlerFilterMap, + F, + E, + DS, + providers.JsonRpcProvider + >; export type NearProject = CommonSubqueryProject< IProjectNetworkConfig, diff --git a/packages/types/tsconfig.json b/packages/types/tsconfig.json index b9875beb..0bfb9b54 100644 --- a/packages/types/tsconfig.json +++ b/packages/types/tsconfig.json @@ -5,7 +5,8 @@ "noImplicitAny": true, "tsBuildInfoFile": "dist/.tsbuildinfo", "rootDir": "src", - "outDir": "dist" + "outDir": "dist", + "strict": true }, "include": ["src/**/*"] } diff --git a/yarn.lock b/yarn.lock index ad45329f..f332f62d 100644 --- a/yarn.lock +++ b/yarn.lock @@ -84,27 +84,29 @@ __metadata: languageName: node linkType: hard -"@apollo/client@npm:^3.8.8": - version: 3.8.10 - resolution: "@apollo/client@npm:3.8.10" +"@apollo/client@npm:^3.11.2": + version: 3.11.5 + resolution: "@apollo/client@npm:3.11.5" dependencies: "@graphql-typed-document-node/core": ^3.1.1 + "@wry/caches": ^1.0.0 "@wry/equality": ^0.5.6 "@wry/trie": ^0.5.0 graphql-tag: ^2.12.6 hoist-non-react-statics: ^3.3.2 optimism: ^0.18.0 prop-types: ^15.7.2 + rehackt: ^0.1.0 response-iterator: ^0.2.6 symbol-observable: ^4.0.0 ts-invariant: ^0.10.3 tslib: ^2.3.0 zen-observable-ts: ^1.2.5 peerDependencies: - graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 + graphql: ^15.0.0 || ^16.0.0 graphql-ws: ^5.5.5 - react: ^16.8.0 || ^17.0.0 || ^18.0.0 - react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 + react: ^16.8.0 || ^17.0.0 || ^18.0.0 || >=19.0.0-rc <19.0.0 + react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 || >=19.0.0-rc <19.0.0 subscriptions-transport-ws: ^0.9.0 || ^0.11.0 peerDependenciesMeta: graphql-ws: @@ -115,7 +117,7 @@ __metadata: optional: true subscriptions-transport-ws: optional: true - checksum: e80d80342edc025dc437f942b2efbc3431b5c1e418c1f9fd58ca2d451978f3e5e01599fc161194b0d82a80ba81f909b8b2781b835575c9e8ba014723dccd9918 + checksum: 70feb94acfadc114b27b268e8544217d2b50d1987421b20b2f5f43ba8f3f14f8472198c9f5dd3e842ac72a29b1975b7710960de766ec6d42fc1f17b66e64c9ab languageName: node linkType: hard @@ -1621,45 +1623,6 @@ __metadata: languageName: node linkType: hard -"@ipld/dag-cbor@npm:^6.0.3": - version: 6.0.15 - resolution: "@ipld/dag-cbor@npm:6.0.15" - dependencies: - cborg: ^1.5.4 - multiformats: ^9.5.4 - checksum: c4ac8d7d271b9dd093c43495b1f24c3cdb7f10487aac529c2010c53a3320439ac9b17f53f02177e022735a1aae3d921f359c7020f765b72f94799ec3ff8e7207 - languageName: node - linkType: hard - -"@ipld/dag-cbor@npm:^7.0.0": - version: 7.0.3 - resolution: "@ipld/dag-cbor@npm:7.0.3" - dependencies: - cborg: ^1.6.0 - multiformats: ^9.5.4 - checksum: c0c59907ab6146a214c1ecb2341cc02904bc952255e15544554990690f7841380a87636d5937aaa23e9004b1c141e90238277d088ed6932b5b0e6d2e6ee1fe02 - languageName: node - linkType: hard - -"@ipld/dag-json@npm:^8.0.1": - version: 8.0.11 - resolution: "@ipld/dag-json@npm:8.0.11" - dependencies: - cborg: ^1.5.4 - multiformats: ^9.5.4 - checksum: 5ce25e4ed4004839a0dc18a51b09d0e2bda02a00bc15e8066809ddcedf5927ef8829a7dacaaf71ba0eb1c8699599130389af6d137da1d6f524394f5ddb0763f0 - languageName: node - linkType: hard - -"@ipld/dag-pb@npm:^2.1.3": - version: 2.1.18 - resolution: "@ipld/dag-pb@npm:2.1.18" - dependencies: - multiformats: ^9.5.4 - checksum: 46b9a7dabf6e87698fc268f88d94b710ba3988e26ab7918bcdf10c4356e15eb32393b6ab56eaf0d8936b369cb77456e491495f1025f78b099f1bd26cc5ccda06 - languageName: node - linkType: hard - "@isaacs/cliui@npm:^8.0.2": version: 8.0.2 resolution: "@isaacs/cliui@npm:8.0.2" @@ -1674,6 +1637,15 @@ __metadata: languageName: node linkType: hard +"@isaacs/fs-minipass@npm:^4.0.0": + version: 4.0.1 + resolution: "@isaacs/fs-minipass@npm:4.0.1" + dependencies: + minipass: ^7.0.4 + checksum: 5d36d289960e886484362d9eb6a51d1ea28baed5f5d0140bbe62b99bac52eaf06cc01c2bc0d3575977962f84f6b2c4387b043ee632216643d4787b0999465bf2 + languageName: node + linkType: hard + "@istanbuljs/load-nyc-config@npm:^1.0.0": version: 1.1.0 resolution: "@istanbuljs/load-nyc-config@npm:1.1.0" @@ -2430,6 +2402,13 @@ __metadata: languageName: node linkType: hard +"@opentelemetry/api@npm:^1.4.0": + version: 1.9.0 + resolution: "@opentelemetry/api@npm:1.9.0" + checksum: 9e88e59d53ced668f3daaecfd721071c5b85a67dd386f1c6f051d1be54375d850016c881f656ffbe9a03bedae85f7e89c2f2b635313f9c9b195ad033cdc31020 + languageName: node + linkType: hard + "@pkgjs/parseargs@npm:^0.11.0": version: 0.11.0 resolution: "@pkgjs/parseargs@npm:0.11.0" @@ -2437,49 +2416,49 @@ __metadata: languageName: node linkType: hard -"@polkadot/networks@npm:12.6.2": - version: 12.6.2 - resolution: "@polkadot/networks@npm:12.6.2" +"@polkadot/networks@npm:13.0.2": + version: 13.0.2 + resolution: "@polkadot/networks@npm:13.0.2" dependencies: - "@polkadot/util": 12.6.2 - "@substrate/ss58-registry": ^1.44.0 + "@polkadot/util": 13.0.2 + "@substrate/ss58-registry": ^1.46.0 tslib: ^2.6.2 - checksum: 7f3dbdd02d8429f82c36ce284ca279af663d45c1a40ce4ce1e38ec2a06fc9d6d27c66d374f32b91ae3058257f33d60701481c9e95ceab19bd2eb70d83465b026 + checksum: 4bc02ae6a95c0bf770ab2ba99af59013665edf4e759a228148289859dcc171be61d93359f6846a5d248707eb215bcbf2ca69ae9f63eb1720caa38ceb3dab7587 languageName: node linkType: hard -"@polkadot/util-crypto@npm:^12.6.2": - version: 12.6.2 - resolution: "@polkadot/util-crypto@npm:12.6.2" +"@polkadot/util-crypto@npm:^13.0.2": + version: 13.0.2 + resolution: "@polkadot/util-crypto@npm:13.0.2" dependencies: "@noble/curves": ^1.3.0 "@noble/hashes": ^1.3.3 - "@polkadot/networks": 12.6.2 - "@polkadot/util": 12.6.2 + "@polkadot/networks": 13.0.2 + "@polkadot/util": 13.0.2 "@polkadot/wasm-crypto": ^7.3.2 "@polkadot/wasm-util": ^7.3.2 - "@polkadot/x-bigint": 12.6.2 - "@polkadot/x-randomvalues": 12.6.2 + "@polkadot/x-bigint": 13.0.2 + "@polkadot/x-randomvalues": 13.0.2 "@scure/base": ^1.1.5 tslib: ^2.6.2 peerDependencies: - "@polkadot/util": 12.6.2 - checksum: 63d4bd9bdc3a7089a0a68555cd6a510b8da3cfab142a8f96ba4b43d5d1db2a543433079bc88c2daf15a329d19ba2cc60f6cca6dbebaefd25e96169cb6343794b + "@polkadot/util": 13.0.2 + checksum: 025bb2179d77b73dd8af775192627fe31e985e365fbecf38d7903a663aa11b703fa3f23fbb65e53d0a9710cc087e0cb9a113b0a660d8e9b36de21c36c1bc40d7 languageName: node linkType: hard -"@polkadot/util@npm:12.6.2, @polkadot/util@npm:^12.6.2": - version: 12.6.2 - resolution: "@polkadot/util@npm:12.6.2" +"@polkadot/util@npm:13.0.2, @polkadot/util@npm:^13.0.2": + version: 13.0.2 + resolution: "@polkadot/util@npm:13.0.2" dependencies: - "@polkadot/x-bigint": 12.6.2 - "@polkadot/x-global": 12.6.2 - "@polkadot/x-textdecoder": 12.6.2 - "@polkadot/x-textencoder": 12.6.2 + "@polkadot/x-bigint": 13.0.2 + "@polkadot/x-global": 13.0.2 + "@polkadot/x-textdecoder": 13.0.2 + "@polkadot/x-textencoder": 13.0.2 "@types/bn.js": ^5.1.5 bn.js: ^5.2.1 tslib: ^2.6.2 - checksum: a42a226f3c299026458d82e48516abf59c1cd8638167edaa3fc1a17aec0ebab203e0ad68a096a4a4fa188afd55093535a98e5083d682a79242a3c5ad79342599 + checksum: c7d71898395d2e9fb994ed53be10e9b44e9cb6f6bd502ce31a48848dda032a9e3f462a6039759798023425c6e17d5a7515784f0a8c0ab74c1a0a2691b0ef3660 languageName: node linkType: hard @@ -2563,128 +2542,55 @@ __metadata: languageName: node linkType: hard -"@polkadot/x-bigint@npm:12.6.2": - version: 12.6.2 - resolution: "@polkadot/x-bigint@npm:12.6.2" +"@polkadot/x-bigint@npm:13.0.2": + version: 13.0.2 + resolution: "@polkadot/x-bigint@npm:13.0.2" dependencies: - "@polkadot/x-global": 12.6.2 + "@polkadot/x-global": 13.0.2 tslib: ^2.6.2 - checksum: 12b2d5c3a7b994f5bd4f7aeda9e268384b04bd080892400c65b88fb5aa4951df6c4abe3baf9820f3adf3da92e2add710858dd35dcd597d2527bbfd1cd0efe534 + checksum: a1c9d9ab3aa27f7a68a879c76cea38ca4757ae4802c6d2a7402dbfbf31468c4dd3c4f1e852e62c0a1bff18889fccac1ccbc38649bf96e9473948ea7d7c2899f3 languageName: node linkType: hard -"@polkadot/x-global@npm:12.6.2": - version: 12.6.2 - resolution: "@polkadot/x-global@npm:12.6.2" +"@polkadot/x-global@npm:13.0.2": + version: 13.0.2 + resolution: "@polkadot/x-global@npm:13.0.2" dependencies: tslib: ^2.6.2 - checksum: eb17e039cb1668743c84f5eafbf518cf6248e93090e4877f81f338b418b3e6b0173f2414c62bd9cbe7bf8911ec566527ca7c49c4354ba90d57e62e90195329d0 + checksum: b487bf2a15d77681efae5e928364526102cff48207a871662515c500404ae58d9d08df813fd675c8bf0a2744dbf4648db6a0fe927993e597e8391349295560c8 languageName: node linkType: hard -"@polkadot/x-randomvalues@npm:12.6.2": - version: 12.6.2 - resolution: "@polkadot/x-randomvalues@npm:12.6.2" +"@polkadot/x-randomvalues@npm:13.0.2": + version: 13.0.2 + resolution: "@polkadot/x-randomvalues@npm:13.0.2" dependencies: - "@polkadot/x-global": 12.6.2 + "@polkadot/x-global": 13.0.2 tslib: ^2.6.2 peerDependencies: - "@polkadot/util": 12.6.2 + "@polkadot/util": 13.0.2 "@polkadot/wasm-util": "*" - checksum: 7faccf2dbcf0c7383b5ecfd7beb098c8c8ad5cf4c8f5bafd601657f8271af8f00b66741531ecf8b2f7c59911d96f77e358184a7c5034c70bf387a8e929a4c210 + checksum: 3968ca273ccdc3055466a8bdeae64141ef20dd5451f7fc750eaef28465460e41d28cdd4eadedf3b4ca94024c9ebae023a8a04eb946b9fd17a1ff9c105ebfe39c languageName: node linkType: hard -"@polkadot/x-textdecoder@npm:12.6.2": - version: 12.6.2 - resolution: "@polkadot/x-textdecoder@npm:12.6.2" +"@polkadot/x-textdecoder@npm:13.0.2": + version: 13.0.2 + resolution: "@polkadot/x-textdecoder@npm:13.0.2" dependencies: - "@polkadot/x-global": 12.6.2 + "@polkadot/x-global": 13.0.2 tslib: ^2.6.2 - checksum: c7e4b7f7ff943095a96bef3e3e56216d33d6ff38c965931356a06d01594b2c523ccbeada697a31b5457b134e578618f35425e0883f45187adffa98df99a45f27 + checksum: 586c970c66a014471b5354d41a55aa6dbeaa4aec041153d294205d7f86f93cfb6cb5c274b6ef38b0923b515b531bc8608fea7cdc6116c6dc61c370d892b207e4 languageName: node linkType: hard -"@polkadot/x-textencoder@npm:12.6.2": - version: 12.6.2 - resolution: "@polkadot/x-textencoder@npm:12.6.2" +"@polkadot/x-textencoder@npm:13.0.2": + version: 13.0.2 + resolution: "@polkadot/x-textencoder@npm:13.0.2" dependencies: - "@polkadot/x-global": 12.6.2 + "@polkadot/x-global": 13.0.2 tslib: ^2.6.2 - checksum: d3eacdc0eb2e1ef8b8132d52a1f1033be62bc64360753a117f2e6517ccf7c9cde628558bbd016a73836eacd91cb1e2ac382dce0ce9c8d32c2f7db3fcc8863911 - languageName: node - linkType: hard - -"@protobufjs/aspromise@npm:^1.1.1, @protobufjs/aspromise@npm:^1.1.2": - version: 1.1.2 - resolution: "@protobufjs/aspromise@npm:1.1.2" - checksum: 011fe7ef0826b0fd1a95935a033a3c0fd08483903e1aa8f8b4e0704e3233406abb9ee25350ec0c20bbecb2aad8da0dcea58b392bbd77d6690736f02c143865d2 - languageName: node - linkType: hard - -"@protobufjs/base64@npm:^1.1.2": - version: 1.1.2 - resolution: "@protobufjs/base64@npm:1.1.2" - checksum: 67173ac34de1e242c55da52c2f5bdc65505d82453893f9b51dc74af9fe4c065cf4a657a4538e91b0d4a1a1e0a0642215e31894c31650ff6e3831471061e1ee9e - languageName: node - linkType: hard - -"@protobufjs/codegen@npm:^2.0.4": - version: 2.0.4 - resolution: "@protobufjs/codegen@npm:2.0.4" - checksum: 59240c850b1d3d0b56d8f8098dd04787dcaec5c5bd8de186fa548de86b86076e1c50e80144b90335e705a044edf5bc8b0998548474c2a10a98c7e004a1547e4b - languageName: node - linkType: hard - -"@protobufjs/eventemitter@npm:^1.1.0": - version: 1.1.0 - resolution: "@protobufjs/eventemitter@npm:1.1.0" - checksum: 0369163a3d226851682f855f81413cbf166cd98f131edb94a0f67f79e75342d86e89df9d7a1df08ac28be2bc77e0a7f0200526bb6c2a407abbfee1f0262d5fd7 - languageName: node - linkType: hard - -"@protobufjs/fetch@npm:^1.1.0": - version: 1.1.0 - resolution: "@protobufjs/fetch@npm:1.1.0" - dependencies: - "@protobufjs/aspromise": ^1.1.1 - "@protobufjs/inquire": ^1.1.0 - checksum: 3fce7e09eb3f1171dd55a192066450f65324fd5f7cc01a431df01bb00d0a895e6bfb5b0c5561ce157ee1d886349c90703d10a4e11a1a256418ff591b969b3477 - languageName: node - linkType: hard - -"@protobufjs/float@npm:^1.0.2": - version: 1.0.2 - resolution: "@protobufjs/float@npm:1.0.2" - checksum: 5781e1241270b8bd1591d324ca9e3a3128d2f768077a446187a049e36505e91bc4156ed5ac3159c3ce3d2ba3743dbc757b051b2d723eea9cd367bfd54ab29b2f - languageName: node - linkType: hard - -"@protobufjs/inquire@npm:^1.1.0": - version: 1.1.0 - resolution: "@protobufjs/inquire@npm:1.1.0" - checksum: ca06f02eaf65ca36fb7498fc3492b7fc087bfcc85c702bac5b86fad34b692bdce4990e0ef444c1e2aea8c034227bd1f0484be02810d5d7e931c55445555646f4 - languageName: node - linkType: hard - -"@protobufjs/path@npm:^1.1.2": - version: 1.1.2 - resolution: "@protobufjs/path@npm:1.1.2" - checksum: 856eeb532b16a7aac071cacde5c5620df800db4c80cee6dbc56380524736205aae21e5ae47739114bf669ab5e8ba0e767a282ad894f3b5e124197cb9224445ee - languageName: node - linkType: hard - -"@protobufjs/pool@npm:^1.1.0": - version: 1.1.0 - resolution: "@protobufjs/pool@npm:1.1.0" - checksum: d6a34fbbd24f729e2a10ee915b74e1d77d52214de626b921b2d77288bd8f2386808da2315080f2905761527cceffe7ec34c7647bd21a5ae41a25e8212ff79451 - languageName: node - linkType: hard - -"@protobufjs/utf8@npm:^1.1.0": - version: 1.1.0 - resolution: "@protobufjs/utf8@npm:1.1.0" - checksum: f9bf3163d13aaa3b6f5e6fbf37a116e094ea021c0e1f2a7ccd0e12a29e2ce08dafba4e8b36e13f8ed7397e1591610ce880ed1289af4d66cf4ace8a36a9557278 + checksum: b2db5ab0fd94b8a13816f028f9fb52e0f00c43df4a727c01911902b5fc11bec476b02b92aee5a98adabf4696907e828752c6e0eb9bece79f0440675e4eb030c9 languageName: node linkType: hard @@ -2731,7 +2637,7 @@ __metadata: version: 0.0.0-use.local resolution: "@subql/common-near@workspace:packages/common-near" dependencies: - "@subql/common": ^4.0.0 + "@subql/common": ^5.1.1 "@subql/types-near": "workspace:*" "@types/bn.js": 5.1.5 "@types/js-yaml": ^4.0.4 @@ -2744,54 +2650,51 @@ __metadata: languageName: unknown linkType: soft -"@subql/common@npm:4.0.0, @subql/common@npm:^4.0.0": - version: 4.0.0 - resolution: "@subql/common@npm:4.0.0" +"@subql/common@npm:5.1.1, @subql/common@npm:^5.1.1": + version: 5.1.1 + resolution: "@subql/common@npm:5.1.1" dependencies: - "@subql/types-core": 0.9.0 + "@subql/types-core": 1.1.1 axios: ^0.28.0 class-transformer: ^0.5.1 - class-validator: ^0.14.0 - fs-extra: ^10.1.0 - ipfs-http-client: 56 + class-validator: ^0.14.1 js-yaml: ^4.1.0 - reflect-metadata: ^0.1.13 - semver: ^7.5.2 - update-notifier: 5.1.0 - checksum: 7c3b0f88aa9d6b388ce6129d1bb385d7269edd441b5970522e42911ac812862d9d2336a92dca8f3aa5b0bf4d56c2de32ccc68fa986f44de26d6fd027a492bdf0 + reflect-metadata: ^0.1.14 + semver: ^7.6.3 + update-notifier: ^5.1.0 + checksum: 7e8eeb5bb0242c178df8f68d38f078799d896837bd260804abcdf44eaa8b2ea1f28823d611d3b1a271e5216d0fc1b4a764a417ad9ac83b5c061e9761cc838ffc languageName: node linkType: hard -"@subql/node-core@npm:^10.10.0": - version: 10.10.0 - resolution: "@subql/node-core@npm:10.10.0" +"@subql/node-core@npm:^14.1.2": + version: 14.1.2 + resolution: "@subql/node-core@npm:14.1.2" dependencies: - "@apollo/client": ^3.8.8 + "@apollo/client": ^3.11.2 "@nestjs/common": ^9.4.0 "@nestjs/event-emitter": ^2.0.0 "@nestjs/schedule": ^3.0.1 - "@subql/common": 4.0.0 - "@subql/testing": 2.2.0 - "@subql/types": 3.8.0 - "@subql/utils": 2.12.0 + "@subql/common": 5.1.1 + "@subql/testing": 2.2.1 + "@subql/types": 3.11.2 + "@subql/utils": 2.14.0 "@willsoto/nestjs-prometheus": ^5.4.0 - async-lock: ^1.4.0 - async-mutex: ^0.4.0 + async-mutex: ^0.5.0 cron-converter: ^2.0.1 cross-fetch: ^3.1.6 - csv-stringify: ^6.4.5 - dayjs: ^1.10.7 + csv-stringify: ^6.5.1 + dayjs: ^1.11.12 lodash: ^4.17.21 lru-cache: 10.1.0 merkle-tools: ^1.4.1 - pg: ^8.11.5 - prom-client: ^14.0.1 + pg: ^8.12.0 + prom-client: ^15.1.3 source-map: ^0.7.4 - tar: ^6.2.1 + tar: ^7.4.3 toposort-class: ^1.0.1 vm2: ^3.9.19 yargs: ^16.2.0 - checksum: 5954bf41c23eb29a189f6200330c8858228b32920f1919ee73d83d51bae5f9194daf96f19151102c8f876df676ba7be39058b93e14074364f1af700b48cea2f9 + checksum: 6d56fcf203f9d0a54aafd519ed1ba526b23aa798850f2dfc984ded8f5fed4cc17d778f8ba6684e823236da5b2356dad4e6c75ba767101febeeeb2ced80e86c8b languageName: node linkType: hard @@ -2806,8 +2709,9 @@ __metadata: "@nestjs/schedule": ^3.0.1 "@nestjs/schematics": ^9.2.0 "@nestjs/testing": ^9.4.0 + "@subql/common": ^5.1.1 "@subql/common-near": "workspace:*" - "@subql/node-core": ^10.10.0 + "@subql/node-core": ^14.1.2 "@subql/types-near": "workspace:*" "@types/express": ^4.17.13 "@types/jest": ^27.4.0 @@ -2827,30 +2731,28 @@ __metadata: languageName: unknown linkType: soft -"@subql/testing@npm:2.2.0": - version: 2.2.0 - resolution: "@subql/testing@npm:2.2.0" +"@subql/testing@npm:2.2.1": + version: 2.2.1 + resolution: "@subql/testing@npm:2.2.1" dependencies: - "@subql/types-core": ^0.8.0 - checksum: 21bc10d8e664514566243f6bc37007093b694de28ebce5432abd29852535ab2d83478b47ddfab56fa5b4af03b3974509d6f4da1653b6e4db5595477f1768d573 + "@subql/types-core": ^0.9.1 + checksum: 0e2529ec5e3c0b1360f51c3ad7d536b7d63efa9fdafa956c388c7547a23eeca0b9d1445b27010d9fa249b2541882c8009c8f2a4a49a00ef78d94e55c9675f392 languageName: node linkType: hard -"@subql/types-core@npm:0.9.0, @subql/types-core@npm:^0.9.0": - version: 0.9.0 - resolution: "@subql/types-core@npm:0.9.0" - dependencies: - package-json-type: ^1.0.3 - checksum: e219221a2d8ebcb8281295ee67665e32b96924da32da67735cf041621b46a88f8e1787a0dab1f01c3af22af907aa862627f5b5fcbce48943cbb3050c04e70ccc +"@subql/types-core@npm:1.1.1, @subql/types-core@npm:^1.1.1": + version: 1.1.1 + resolution: "@subql/types-core@npm:1.1.1" + checksum: d804ba8f9a9a8bbce36e98ef3dd03e33602495e96ca8e04438c38b6631de102772b5f209de17d78657bcacc9c91f9af02dabd68edb8e6e24a2ca6e681e4636fc languageName: node linkType: hard -"@subql/types-core@npm:^0.8.0": - version: 0.8.0 - resolution: "@subql/types-core@npm:0.8.0" +"@subql/types-core@npm:^0.9.1": + version: 0.9.1 + resolution: "@subql/types-core@npm:0.9.1" dependencies: package-json-type: ^1.0.3 - checksum: 4523ab756a794cee0a40d7d107395c4cf3ab238457787babe8038a1f0a5ce2badabb8cfbd00d500142a567c037b470a4e0d54095e6be65440082a489e735449e + checksum: cb6ae7220f02e76f8a05bdb5572b2864c8686523c756aadbcd0f3aeab5099acd93eac1cba04a81e2cb02e5e07bd9569ec46565ba78bf1f6213cb2dc2476951f7 languageName: node linkType: hard @@ -2858,43 +2760,40 @@ __metadata: version: 0.0.0-use.local resolution: "@subql/types-near@workspace:packages/types" dependencies: - "@subql/types-core": ^0.9.0 + "@subql/types-core": ^1.1.1 "@types/app-module-path": ^2.2.0 bn.js: 5.2.1 near-api-js: ^1.1.0 languageName: unknown linkType: soft -"@subql/types@npm:3.8.0": - version: 3.8.0 - resolution: "@subql/types@npm:3.8.0" +"@subql/types@npm:3.11.2": + version: 3.11.2 + resolution: "@subql/types@npm:3.11.2" dependencies: - "@subql/types-core": 0.9.0 + "@subql/types-core": 1.1.1 peerDependencies: - "@polkadot/api": ^11 - checksum: 8268fd013ef4705c4bfa85c4102396cc0017b5add0bab09ec244e923e5015ff4498209435387f4423b0c1a5a43de240710706704997493ddecd1dc6b98e23b12 + "@polkadot/api": ^12 + checksum: ef8e9f6bd73e9071ec267cb90259472d9ecb595d02bf52e44e4f93e90016ed0a897f09f6c8496455368b7ecb42a9a5aac7fc715ac5df5697936e8c1c1956e13f languageName: node linkType: hard -"@subql/utils@npm:2.12.0": - version: 2.12.0 - resolution: "@subql/utils@npm:2.12.0" +"@subql/utils@npm:2.14.0": + version: 2.14.0 + resolution: "@subql/utils@npm:2.14.0" dependencies: - "@polkadot/util": ^12.6.2 - "@polkadot/util-crypto": ^12.6.2 + "@polkadot/util": ^13.0.2 + "@polkadot/util-crypto": ^13.0.2 "@subql/x-sequelize": 6.32.0-0.0.4 - ansi-styles: ^6.1.0 chalk: ^4.1.2 - detect-port: ^1.3.0 - flatted: ^3.2.5 + detect-port: ^1.6.1 + flatted: ^3.3.1 graphql: ^15.8.0 graphql-tag: ^2.12.6 lodash: ^4.17.21 pino: ^6.13.3 - rotating-file-stream: ^3.0.2 - semver: ^7.5.2 - tar: ^6.2.1 - checksum: 8429de153814ce5d9f468b16395ccae572c3d53719f92c7104939c50ca12899805ebd31b5a65789efde87b390b465e6dcbb86ce6ec7e48864ff5bd8aa2ba5c4f + rotating-file-stream: ^3.2.3 + checksum: 0a56114494cb5e8c5dcf62e1d24fb7b2ba7b445472e61661ab9eec61df7a09449dd7251d78d6cd11a6da9939c5d54d2d57e16639b5d0986756513ab8810cf3e5 languageName: node linkType: hard @@ -2941,10 +2840,10 @@ __metadata: languageName: node linkType: hard -"@substrate/ss58-registry@npm:^1.44.0": - version: 1.49.0 - resolution: "@substrate/ss58-registry@npm:1.49.0" - checksum: 917437915d5ba98c46c650dce2fbe1f6a7bbcf2a6fa058df2a751743c774db37d6b5dacab4c2ce8bdf9d52275b2d325fcc63f6f08d37e5428fa133ff72e19c56 +"@substrate/ss58-registry@npm:^1.46.0": + version: 1.50.0 + resolution: "@substrate/ss58-registry@npm:1.50.0" + checksum: d19d933fadf9bfbebd1c4a62c750620de34bd920ca6beb3ad8d66147c6d672e0773b57fce8394ec52a36c60d0564a92b7961ed1eac8508bca0248e23f62b8460 languageName: node linkType: hard @@ -3198,13 +3097,6 @@ __metadata: languageName: node linkType: hard -"@types/long@npm:^4.0.1": - version: 4.0.2 - resolution: "@types/long@npm:4.0.2" - checksum: d16cde7240d834cf44ba1eaec49e78ae3180e724cd667052b194a372f350d024cba8dd3f37b0864931683dab09ca935d52f0c4c1687178af5ada9fc85b0635f4 - languageName: node - linkType: hard - "@types/luxon@npm:~3.3.0": version: 3.3.2 resolution: "@types/luxon@npm:3.3.2" @@ -3235,7 +3127,7 @@ __metadata: languageName: node linkType: hard -"@types/minimatch@npm:^3.0.3, @types/minimatch@npm:^3.0.4": +"@types/minimatch@npm:^3.0.3": version: 3.0.5 resolution: "@types/minimatch@npm:3.0.5" checksum: c41d136f67231c3131cf1d4ca0b06687f4a322918a3a5adddc87ce90ed9dbd175a3610adee36b106ae68c0b92c637c35e02b58c8a56c424f71d30993ea220b92 @@ -3259,7 +3151,7 @@ __metadata: languageName: node linkType: hard -"@types/node@npm:*, @types/node@npm:>=13.7.0": +"@types/node@npm:*": version: 20.7.0 resolution: "@types/node@npm:20.7.0" checksum: 1b2919925c213f4d2039ada7a8354c998e144f7291db8d719ef58ea9924ab636c113690073b0ec3b82ba62907385f7e0f51e9d1583c1a818776daa5156d3a590 @@ -3379,7 +3271,14 @@ __metadata: languageName: node linkType: hard -"@types/validator@npm:^13.7.1, @types/validator@npm:^13.7.10": +"@types/validator@npm:^13.11.8": + version: 13.12.1 + resolution: "@types/validator@npm:13.12.1" + checksum: b840f6c577fca5286436932f1897a66f6fb102603a64cb084964ea33bbc562781c2d04ee389bc74905735c77aca9e3df7a6414759691e9f518f70702bbfcd982 + languageName: node + linkType: hard + +"@types/validator@npm:^13.7.1": version: 13.11.2 resolution: "@types/validator@npm:13.11.2" checksum: 7fceb65a9729c2d0fca7f21acd13eaf93bd5e1a0367817dc1afd160f3053cd6fefbb2ba368134c1d864b9f3bfcc99b588f069c9db400481b96265b827e53562e @@ -3766,13 +3665,6 @@ __metadata: languageName: node linkType: hard -"any-signal@npm:^3.0.0": - version: 3.0.1 - resolution: "any-signal@npm:3.0.1" - checksum: 073eb14c365b7552f9f16fbf36cd76171e4a0fe156a8faa865fe1d5ac4ed2f5c5ab6e3faad0ac0d4c69511b5892971c5573baa8a1cbf85fe250d0c54ff0734ff - languageName: node - linkType: hard - "anymatch@npm:^3.0.3, anymatch@npm:~3.1.2": version: 3.1.3 resolution: "anymatch@npm:3.1.3" @@ -3940,19 +3832,12 @@ __metadata: languageName: node linkType: hard -"async-lock@npm:^1.4.0": - version: 1.4.0 - resolution: "async-lock@npm:1.4.0" - checksum: a71ef9e50dc448a8e8dd6482494210d7b6f556d4815612b1fed5662216cd756c2c8fb9c2153a9a66ea90b36ba7fb18aa568d11813aadc23feb4c5b0b188df614 - languageName: node - linkType: hard - -"async-mutex@npm:^0.4.0": - version: 0.4.0 - resolution: "async-mutex@npm:0.4.0" +"async-mutex@npm:^0.5.0": + version: 0.5.0 + resolution: "async-mutex@npm:0.5.0" dependencies: tslib: ^2.4.0 - checksum: 813a71728b35a4fbfd64dba719f04726d9133c67b577fcd951b7028c4a675a13ee34e69beb82d621f87bf81f5d4f135c4c44be0448550c7db728547244ef71fc + checksum: be1587f4875f3bb15e34e9fcce82eac2966daef4432c8d0046e61947fb9a1b95405284601bc7ce4869319249bc07c75100880191db6af11d1498931ac2a2f9ea languageName: node linkType: hard @@ -4162,15 +4047,6 @@ __metadata: languageName: node linkType: hard -"blob-to-it@npm:^1.0.1": - version: 1.0.4 - resolution: "blob-to-it@npm:1.0.4" - dependencies: - browser-readablestream-to-it: ^1.0.3 - checksum: e7fbebe5bd7b8187a4a88203639777456596a0cc68372e7b2dbcfbae6dea2b80e2a89522140039b538140bc3e3a6b1e90d1778e725eb8899070f799e61591751 - languageName: node - linkType: hard - "bn.js@npm:5.2.1, bn.js@npm:^5.2.0, bn.js@npm:^5.2.1": version: 5.2.1 resolution: "bn.js@npm:5.2.1" @@ -4280,13 +4156,6 @@ __metadata: languageName: node linkType: hard -"browser-readablestream-to-it@npm:^1.0.0, browser-readablestream-to-it@npm:^1.0.1, browser-readablestream-to-it@npm:^1.0.3": - version: 1.0.3 - resolution: "browser-readablestream-to-it@npm:1.0.3" - checksum: 07895bbc54cdeea62c8e9b7e32d374ec5c340ed1d0bc0c6cd6f1e0561ad931b160a3988426c763672ddf38ac1f75e45b9d8ae267b43f387183edafcad625f30a - languageName: node - linkType: hard - "browserslist@npm:^4.21.10, browserslist@npm:^4.21.9": version: 4.22.0 resolution: "browserslist@npm:4.22.0" @@ -4345,16 +4214,6 @@ __metadata: languageName: node linkType: hard -"buffer@npm:^6.0.1, buffer@npm:^6.0.3": - version: 6.0.3 - resolution: "buffer@npm:6.0.3" - dependencies: - base64-js: ^1.3.1 - ieee754: ^1.2.1 - checksum: 5ad23293d9a731e4318e420025800b42bf0d264004c0286c8cc010af7a270c7a0f6522e84f54b9ad65cbd6db20b8badbfd8d2ebf4f80fa03dab093b89e68c3f9 - languageName: node - linkType: hard - "busboy@npm:^1.0.0": version: 1.6.0 resolution: "busboy@npm:1.6.0" @@ -4451,15 +4310,6 @@ __metadata: languageName: node linkType: hard -"cborg@npm:^1.5.4, cborg@npm:^1.6.0": - version: 1.10.2 - resolution: "cborg@npm:1.10.2" - bin: - cborg: cli.js - checksum: 7743a8f125046ac27fb371c4ea18af54fbe853f7210f1ffacc6504a79566480c39d52ac4fbc1a5b5155e27b13c3b58955dc29db1bf20c4d651549d55fec2fa7f - languageName: node - linkType: hard - "chalk@npm:^2.3.2, chalk@npm:^2.4.2": version: 2.4.2 resolution: "chalk@npm:2.4.2" @@ -4545,6 +4395,13 @@ __metadata: languageName: node linkType: hard +"chownr@npm:^3.0.0": + version: 3.0.0 + resolution: "chownr@npm:3.0.0" + checksum: fd73a4bab48b79e66903fe1cafbdc208956f41ea4f856df883d0c7277b7ab29fd33ee65f93b2ec9192fc0169238f2f8307b7735d27c155821d886b84aa97aa8d + languageName: node + linkType: hard + "ci-info@npm:^2.0.0": version: 2.0.0 resolution: "ci-info@npm:2.0.0" @@ -4573,14 +4430,14 @@ __metadata: languageName: node linkType: hard -"class-validator@npm:^0.14.0": - version: 0.14.0 - resolution: "class-validator@npm:0.14.0" +"class-validator@npm:^0.14.1": + version: 0.14.1 + resolution: "class-validator@npm:0.14.1" dependencies: - "@types/validator": ^13.7.10 - libphonenumber-js: ^1.10.14 - validator: ^13.7.0 - checksum: f62e4a0ad24cee68f4b2bc70d32b96de90cb598f96bde362b4dbf4234151af8eb6ae225458312a38fc49fa3959844cf61c60e731a8205e9a570454cff8de2710 + "@types/validator": ^13.11.8 + libphonenumber-js: ^1.10.53 + validator: ^13.9.0 + checksum: bea808145c81ba3b185e1174d92f97a2d6ffef0558261217042552e9027222eadb9a9731a4418a07eaaa72ac334347df7a1079ff48eaadaa3ee6848a6a88995c languageName: node linkType: hard @@ -4944,27 +4801,17 @@ __metadata: languageName: node linkType: hard -"csv-stringify@npm:^6.4.5": - version: 6.4.5 - resolution: "csv-stringify@npm:6.4.5" - checksum: 4da6ceb911735294c970880f295afc8f5e140702bb3f239f2cee2feb7f88f989e25238bae59558ad6b6f16adeb9407e74259f614ed3a9d49d06656aaac4d222e +"csv-stringify@npm:^6.5.1": + version: 6.5.1 + resolution: "csv-stringify@npm:6.5.1" + checksum: 5eb8167ee944f5328c53c733d8c4b1eea88fb9e510abec430e2fcb4be6c4ce008b92e90da7825d424fe74d22c85405add7f89b9dcf82ffe2bf0a1cf31536057a languageName: node linkType: hard -"dag-jose@npm:^1.0.0": - version: 1.0.0 - resolution: "dag-jose@npm:1.0.0" - dependencies: - "@ipld/dag-cbor": ^6.0.3 - multiformats: ^9.0.2 - checksum: 2d95e938f08c383718dd6f07d92063f164bb85be831f624f122687ca3f4d365a76320c3f6f16cfbe013c581198504728abd226567775ef35fb40176e1cb23112 - languageName: node - linkType: hard - -"dayjs@npm:^1.10.7": - version: 1.11.10 - resolution: "dayjs@npm:1.11.10" - checksum: a6b5a3813b8884f5cd557e2e6b7fa569f4c5d0c97aca9558e38534af4f2d60daafd3ff8c2000fed3435cfcec9e805bcebd99f90130c6d1c5ef524084ced588c4 +"dayjs@npm:^1.11.12": + version: 1.11.13 + resolution: "dayjs@npm:1.11.13" + checksum: f388db88a6aa93956c1f6121644e783391c7b738b73dbc54485578736565c8931bdfba4bb94e9b1535c6e509c97d5deb918bbe1ae6b34358d994de735055cca9 languageName: node linkType: hard @@ -4977,7 +4824,7 @@ __metadata: languageName: node linkType: hard -"debug@npm:4, debug@npm:^4.0.0, debug@npm:^4.1.0, debug@npm:^4.1.1, debug@npm:^4.3.1, debug@npm:^4.3.2, debug@npm:^4.3.3, debug@npm:^4.3.4": +"debug@npm:4, debug@npm:^4.0.0, debug@npm:^4.1.0, debug@npm:^4.1.1, debug@npm:^4.3.2, debug@npm:^4.3.3, debug@npm:^4.3.4": version: 4.3.4 resolution: "debug@npm:4.3.4" dependencies: @@ -5141,16 +4988,16 @@ __metadata: languageName: node linkType: hard -"detect-port@npm:^1.3.0": - version: 1.5.1 - resolution: "detect-port@npm:1.5.1" +"detect-port@npm:^1.6.1": + version: 1.6.1 + resolution: "detect-port@npm:1.6.1" dependencies: address: ^1.0.1 debug: 4 bin: detect: bin/detect-port.js detect-port: bin/detect-port.js - checksum: b48da9340481742547263d5d985e65d078592557863402ecf538511735e83575867e94f91fe74405ea19b61351feb99efccae7e55de9a151d5654e3417cea05b + checksum: 0429fa423abb15fc453face64e6ffa406e375f51f5b4421a7886962e680dc05824eae9b6ee4594ba273685c3add415ad00982b5da54802ac3de6f846173284c3 languageName: node linkType: hard @@ -5184,17 +5031,6 @@ __metadata: languageName: node linkType: hard -"dns-over-http-resolver@npm:^1.2.3": - version: 1.2.3 - resolution: "dns-over-http-resolver@npm:1.2.3" - dependencies: - debug: ^4.3.1 - native-fetch: ^3.0.0 - receptacle: ^1.3.2 - checksum: 3cc1a1d77fc43e7a8a12453da987b80860ac96dc1031386c5eb1a39154775a87cfa1d50c0eaa5ea5e397e898791654608f6e2acf03f750f4098ab8822bb7d928 - languageName: node - linkType: hard - "doctrine@npm:^2.1.0": version: 2.1.0 resolution: "doctrine@npm:2.1.0" @@ -5264,15 +5100,6 @@ __metadata: languageName: node linkType: hard -"electron-fetch@npm:^1.7.2": - version: 1.9.1 - resolution: "electron-fetch@npm:1.9.1" - dependencies: - encoding: ^0.1.13 - checksum: 33b5d363b9a234288e847237ef34536bd415f31cba3b1c69b2ae4679a2bae66fb7ded2b576b90a0b7cd240e3df71cf16f2b961d4ab82864df02b6b53cf49f05c - languageName: node - linkType: hard - "electron-to-chromium@npm:^1.4.530": version: 1.4.531 resolution: "electron-to-chromium@npm:1.4.531" @@ -5350,13 +5177,6 @@ __metadata: languageName: node linkType: hard -"err-code@npm:^3.0.1": - version: 3.0.1 - resolution: "err-code@npm:3.0.1" - checksum: aede1f1d5ebe6d6b30b5e3175e3cc13e67de2e2e1ad99ce4917e957d7b59e8451ed10ee37dbc6493521920a47082c479b9097e5c39438d4aff4cc84438568a5a - languageName: node - linkType: hard - "error-ex@npm:^1.3.1": version: 1.3.2 resolution: "error-ex@npm:1.3.2" @@ -5880,13 +5700,6 @@ __metadata: languageName: node linkType: hard -"fast-fifo@npm:^1.0.0": - version: 1.3.2 - resolution: "fast-fifo@npm:1.3.2" - checksum: 6bfcba3e4df5af7be3332703b69a7898a8ed7020837ec4395bb341bd96cc3a6d86c3f6071dd98da289618cf2234c70d84b2a6f09a33dd6f988b1ff60d8e54275 - languageName: node - linkType: hard - "fast-glob@npm:^3.2.9": version: 3.3.1 resolution: "fast-glob@npm:3.3.1" @@ -6042,13 +5855,20 @@ __metadata: languageName: node linkType: hard -"flatted@npm:^3.2.5, flatted@npm:^3.2.7": +"flatted@npm:^3.2.7": version: 3.2.9 resolution: "flatted@npm:3.2.9" checksum: f14167fbe26a9d20f6fca8d998e8f1f41df72c8e81f9f2c9d61ed2bea058248f5e1cbd05e7f88c0e5087a6a0b822a1e5e2b446e879f3cfbe0b07ba2d7f80b026 languageName: node linkType: hard +"flatted@npm:^3.3.1": + version: 3.3.1 + resolution: "flatted@npm:3.3.1" + checksum: 85ae7181650bb728c221e7644cbc9f4bf28bc556f2fc89bb21266962bdf0ce1029cc7acc44bb646cd469d9baac7c317f64e841c4c4c00516afa97320cdac7f94 + languageName: node + linkType: hard + "follow-redirects@npm:^1.15.0": version: 1.15.6 resolution: "follow-redirects@npm:1.15.6" @@ -6114,17 +5934,6 @@ __metadata: languageName: node linkType: hard -"fs-extra@npm:^10.1.0": - version: 10.1.0 - resolution: "fs-extra@npm:10.1.0" - dependencies: - graceful-fs: ^4.2.0 - jsonfile: ^6.0.1 - universalify: ^2.0.0 - checksum: dc94ab37096f813cc3ca12f0f1b5ad6744dfed9ed21e953d72530d103cea193c2f81584a39e9dee1bea36de5ee66805678c0dddc048e8af1427ac19c00fffc50 - languageName: node - linkType: hard - "fs-minipass@npm:^2.0.0": version: 2.1.0 resolution: "fs-minipass@npm:2.1.0" @@ -6237,13 +6046,6 @@ __metadata: languageName: node linkType: hard -"get-iterator@npm:^1.0.2": - version: 1.0.2 - resolution: "get-iterator@npm:1.0.2" - checksum: 4a819aa91ecb61f4fd507bd62e3468d55f642f06011f944c381a739a21f685c36a37feb9324c8971e7c0fc70ca172066c45874fa2d1dcdf4b4fb8e43f16058c2 - languageName: node - linkType: hard - "get-package-type@npm:^0.1.0": version: 0.1.0 resolution: "get-package-type@npm:0.1.0" @@ -6347,6 +6149,22 @@ __metadata: languageName: node linkType: hard +"glob@npm:^10.3.7": + version: 10.4.5 + resolution: "glob@npm:10.4.5" + dependencies: + foreground-child: ^3.1.0 + jackspeak: ^3.1.2 + minimatch: ^9.0.4 + minipass: ^7.1.2 + package-json-from-dist: ^1.0.0 + path-scurry: ^1.11.1 + bin: + glob: dist/esm/bin.mjs + checksum: 0bc725de5e4862f9f387fd0f2b274baf16850dcd2714502ccf471ee401803997983e2c05590cb65f9675a3c6f2a58e7a53f9e365704108c6ad3cbf1d60934c4a + languageName: node + linkType: hard + "glob@npm:^7.1.3, glob@npm:^7.1.4": version: 7.2.3 resolution: "glob@npm:7.2.3" @@ -6437,7 +6255,7 @@ __metadata: languageName: node linkType: hard -"graceful-fs@npm:^4.1.2, graceful-fs@npm:^4.1.6, graceful-fs@npm:^4.2.0, graceful-fs@npm:^4.2.4, graceful-fs@npm:^4.2.6, graceful-fs@npm:^4.2.9": +"graceful-fs@npm:^4.1.2, graceful-fs@npm:^4.2.4, graceful-fs@npm:^4.2.6, graceful-fs@npm:^4.2.9": version: 4.2.11 resolution: "graceful-fs@npm:4.2.11" checksum: ac85f94da92d8eb6b7f5a8b20ce65e43d66761c55ce85ac96df6865308390da45a8d3f0296dd3a663de65d30ba497bd46c696cc1e248c72b13d6d567138a4fc7 @@ -6665,7 +6483,7 @@ __metadata: languageName: node linkType: hard -"ieee754@npm:^1.1.13, ieee754@npm:^1.2.1": +"ieee754@npm:^1.1.13": version: 1.2.1 resolution: "ieee754@npm:1.2.1" checksum: 5144c0c9815e54ada181d80a0b810221a253562422e7c6c3a60b1901154184f49326ec239d618c416c1c5945a2e197107aee8d986a3dd836b53dffefd99b5e7e @@ -6767,24 +6585,6 @@ __metadata: languageName: node linkType: hard -"interface-datastore@npm:^6.0.2": - version: 6.1.1 - resolution: "interface-datastore@npm:6.1.1" - dependencies: - interface-store: ^2.0.2 - nanoid: ^3.0.2 - uint8arrays: ^3.0.0 - checksum: a0388adabf029be229bbfce326bbe64fd3353373512e7e6ed4283e06710bfa141db118e3536f8535a65016a0abeec631b888d42790b00637879d6ae56cf728cd - languageName: node - linkType: hard - -"interface-store@npm:^2.0.2": - version: 2.0.2 - resolution: "interface-store@npm:2.0.2" - checksum: 0e80adb1de9ff57687cfa1b08499702b72cacf33a7e0320ac7781989f3685d73f2a84996358f540250229afa19c7acebf03085087762f718035622ea6a1a5b8a - languageName: node - linkType: hard - "internal-slot@npm:^1.0.5": version: 1.0.5 resolution: "internal-slot@npm:1.0.5" @@ -6796,13 +6596,6 @@ __metadata: languageName: node linkType: hard -"ip-regex@npm:^4.0.0": - version: 4.3.0 - resolution: "ip-regex@npm:4.3.0" - checksum: 7ff904b891221b1847f3fdf3dbb3e6a8660dc39bc283f79eb7ed88f5338e1a3d1104b779bc83759159be266249c59c2160e779ee39446d79d4ed0890dfd06f08 - languageName: node - linkType: hard - "ip@npm:^2.0.0": version: 2.0.1 resolution: "ip@npm:2.0.1" @@ -6817,107 +6610,6 @@ __metadata: languageName: node linkType: hard -"ipfs-core-types@npm:^0.10.3": - version: 0.10.3 - resolution: "ipfs-core-types@npm:0.10.3" - dependencies: - "@ipld/dag-pb": ^2.1.3 - interface-datastore: ^6.0.2 - ipfs-unixfs: ^6.0.3 - multiaddr: ^10.0.0 - multiformats: ^9.5.1 - checksum: 2a36b0ac72b98011aed333b57253d87fd5888e9e102fa3dd8f9e2dcf1b5e8c8f5582fbe3957ec24a445cec207943ea4ce4cc839770a794b273fd8b66a7a0de9d - languageName: node - linkType: hard - -"ipfs-core-utils@npm:^0.14.3": - version: 0.14.3 - resolution: "ipfs-core-utils@npm:0.14.3" - dependencies: - any-signal: ^3.0.0 - blob-to-it: ^1.0.1 - browser-readablestream-to-it: ^1.0.1 - debug: ^4.1.1 - err-code: ^3.0.1 - ipfs-core-types: ^0.10.3 - ipfs-unixfs: ^6.0.3 - ipfs-utils: ^9.0.6 - it-all: ^1.0.4 - it-map: ^1.0.4 - it-peekable: ^1.0.2 - it-to-stream: ^1.0.0 - merge-options: ^3.0.4 - multiaddr: ^10.0.0 - multiaddr-to-uri: ^8.0.0 - multiformats: ^9.5.1 - nanoid: ^3.1.23 - parse-duration: ^1.0.0 - timeout-abort-controller: ^3.0.0 - uint8arrays: ^3.0.0 - checksum: ed1bceef0677e050a06db3cc0fdd659ffaac256d89fedfa01633747675c1519ba01985d5adf5db40d7d82631028c363564a2c53678b9a665c54c75d287065d08 - languageName: node - linkType: hard - -"ipfs-http-client@npm:56": - version: 56.0.3 - resolution: "ipfs-http-client@npm:56.0.3" - dependencies: - "@ipld/dag-cbor": ^7.0.0 - "@ipld/dag-json": ^8.0.1 - "@ipld/dag-pb": ^2.1.3 - any-signal: ^3.0.0 - dag-jose: ^1.0.0 - debug: ^4.1.1 - err-code: ^3.0.1 - ipfs-core-types: ^0.10.3 - ipfs-core-utils: ^0.14.3 - ipfs-utils: ^9.0.6 - it-first: ^1.0.6 - it-last: ^1.0.4 - merge-options: ^3.0.4 - multiaddr: ^10.0.0 - multiformats: ^9.5.1 - parse-duration: ^1.0.0 - stream-to-it: ^0.2.2 - uint8arrays: ^3.0.0 - checksum: d45fe955b368655ff37bbaeaa72eb968399cffb6ac1ae44bd7898d834259fbe8b2394b73626d2338cd753b57b4f99ebaa8e7dfbead887c73f36c0070185cd9d6 - languageName: node - linkType: hard - -"ipfs-unixfs@npm:^6.0.3": - version: 6.0.9 - resolution: "ipfs-unixfs@npm:6.0.9" - dependencies: - err-code: ^3.0.1 - protobufjs: ^6.10.2 - checksum: 025d852c3cfb09b813b35f7a4f7a06bd0ff904f88b35cdf54c6ea1eb021f1597ab9c2739adabbae9cfe645a2323598bd7974ff4a8898701bc4ba92842bf21736 - languageName: node - linkType: hard - -"ipfs-utils@npm:^9.0.6": - version: 9.0.14 - resolution: "ipfs-utils@npm:9.0.14" - dependencies: - any-signal: ^3.0.0 - browser-readablestream-to-it: ^1.0.0 - buffer: ^6.0.1 - electron-fetch: ^1.7.2 - err-code: ^3.0.1 - is-electron: ^2.2.0 - iso-url: ^1.1.5 - it-all: ^1.0.4 - it-glob: ^1.0.1 - it-to-stream: ^1.0.0 - merge-options: ^3.0.4 - nanoid: ^3.1.20 - native-fetch: ^3.0.0 - node-fetch: ^2.6.8 - react-native-fetch-api: ^3.0.0 - stream-to-it: ^0.2.2 - checksum: 08108e03ea7b90e0fa11b76a4e24bd29d7e027c603494b53c1cc37b367fb559eaeea7b0f10b2e83ee419d50cdcb4d8105febdf185cab75c7e55afd4c8ed51aba - languageName: node - linkType: hard - "is-alphabetical@npm:^1.0.0": version: 1.0.4 resolution: "is-alphabetical@npm:1.0.4" @@ -7040,13 +6732,6 @@ __metadata: languageName: node linkType: hard -"is-electron@npm:^2.2.0": - version: 2.2.2 - resolution: "is-electron@npm:2.2.2" - checksum: de5aa8bd8d72c96675b8d0f93fab4cc21f62be5440f65bc05c61338ca27bd851a64200f31f1bf9facbaa01b3dbfed7997b2186741d84b93b63e0aff1db6a9494 - languageName: node - linkType: hard - "is-extglob@npm:^2.1.1": version: 2.1.1 resolution: "is-extglob@npm:2.1.1" @@ -7108,15 +6793,6 @@ __metadata: languageName: node linkType: hard -"is-ip@npm:^3.1.0": - version: 3.1.0 - resolution: "is-ip@npm:3.1.0" - dependencies: - ip-regex: ^4.0.0 - checksum: da2c2b282407194adf2320bade0bad94be9c9d0bdab85ff45b1b62d8185f31c65dff3884519d57bf270277e5ea2046c7916a6e5a6db22fe4b7ddcdd3760f23eb - languageName: node - linkType: hard - "is-lambda@npm:^1.0.1": version: 1.0.1 resolution: "is-lambda@npm:1.0.1" @@ -7168,7 +6844,7 @@ __metadata: languageName: node linkType: hard -"is-plain-obj@npm:^2.0.0, is-plain-obj@npm:^2.1.0": +"is-plain-obj@npm:^2.0.0": version: 2.1.0 resolution: "is-plain-obj@npm:2.1.0" checksum: cec9100678b0a9fe0248a81743041ed990c2d4c99f893d935545cfbc42876cbe86d207f3b895700c690ad2fa520e568c44afc1605044b535a7820c1d40e38daa @@ -7304,13 +6980,6 @@ __metadata: languageName: node linkType: hard -"iso-url@npm:^1.1.5": - version: 1.2.1 - resolution: "iso-url@npm:1.2.1" - checksum: 1af98c4ed6a39598407fd8c3c13e997c978985f477af2be3390d2aa3e422b4b5992ffbb0dac68656b165c71850fff748ac1309d29d4f2a728707d76bf0f98557 - languageName: node - linkType: hard - "istanbul-lib-coverage@npm:^3.0.0, istanbul-lib-coverage@npm:^3.2.0": version: 3.2.0 resolution: "istanbul-lib-coverage@npm:3.2.0" @@ -7376,65 +7045,6 @@ __metadata: languageName: node linkType: hard -"it-all@npm:^1.0.4": - version: 1.0.6 - resolution: "it-all@npm:1.0.6" - checksum: 7ca9a528c08ebe2fc8a3c93a41409219d18325ed31fedb9834ebac2822f0b2a96d7abcb6cbfa092114ab4d5f08951e694c7a2c3929ce4b5300769e710ae665db - languageName: node - linkType: hard - -"it-first@npm:^1.0.6": - version: 1.0.7 - resolution: "it-first@npm:1.0.7" - checksum: 0c9106d29120f02e68a08118de328437fb44c966385635d672684d4f0321ee22ca470a30f390132bdb454da0d4d3abb82c796dad8e391a827f1a3446711c7685 - languageName: node - linkType: hard - -"it-glob@npm:^1.0.1": - version: 1.0.2 - resolution: "it-glob@npm:1.0.2" - dependencies: - "@types/minimatch": ^3.0.4 - minimatch: ^3.0.4 - checksum: 629e7b66510006041df98882acfd73ac785836d51fc3ffa5c83c7099f931b3287a64c5a3772e7c1e46b63f1d511a9222f5b637c50f1c738222b46d104ff2e91c - languageName: node - linkType: hard - -"it-last@npm:^1.0.4": - version: 1.0.6 - resolution: "it-last@npm:1.0.6" - checksum: bc7b68ddd6cae902f0095d0c7ccb0078abdfa41fbf55862a9df9e30ae74be08282b5b3d21f40e6103af0d202144974e216d3c44f3e8f93c2c3f890322b02fcfa - languageName: node - linkType: hard - -"it-map@npm:^1.0.4": - version: 1.0.6 - resolution: "it-map@npm:1.0.6" - checksum: 5eb9da69e5d58624c79cea13dd8eeffe8a1ab6a28a527ac4d0301304279ffbe8da94faf50aa269e2a1630c94dc30a6bfe7a135bfb0c7e887216efad7c41a9f52 - languageName: node - linkType: hard - -"it-peekable@npm:^1.0.2": - version: 1.0.3 - resolution: "it-peekable@npm:1.0.3" - checksum: 6e9d68cbf582e301f191b8ad2660957c12c8100804a298fd5732ee35f2dd466a6af64d88d91343f2614675b4d4fb546618335303e9356659a9a0868c08b1ca54 - languageName: node - linkType: hard - -"it-to-stream@npm:^1.0.0": - version: 1.0.0 - resolution: "it-to-stream@npm:1.0.0" - dependencies: - buffer: ^6.0.3 - fast-fifo: ^1.0.0 - get-iterator: ^1.0.2 - p-defer: ^3.0.0 - p-fifo: ^1.0.0 - readable-stream: ^3.6.0 - checksum: e0c5a3f3c90d4bc52686217865b8fa202f64bd3af493dec0fdacd58b4237166fb68935ff2823ed0a16414ba5becb9a5fb8c98f3ec99584789776d7277c1d129f - languageName: node - linkType: hard - "iterare@npm:1.2.1": version: 1.2.1 resolution: "iterare@npm:1.2.1" @@ -7455,6 +7065,19 @@ __metadata: languageName: node linkType: hard +"jackspeak@npm:^3.1.2": + version: 3.4.3 + resolution: "jackspeak@npm:3.4.3" + dependencies: + "@isaacs/cliui": ^8.0.2 + "@pkgjs/parseargs": ^0.11.0 + dependenciesMeta: + "@pkgjs/parseargs": + optional: true + checksum: be31027fc72e7cc726206b9f560395604b82e0fddb46c4cbf9f97d049bcef607491a5afc0699612eaa4213ca5be8fd3e1e7cd187b3040988b65c9489838a7c00 + languageName: node + linkType: hard + "jest-changed-files@npm:^29.7.0": version: 29.7.0 resolution: "jest-changed-files@npm:29.7.0" @@ -8063,19 +7686,6 @@ __metadata: languageName: node linkType: hard -"jsonfile@npm:^6.0.1": - version: 6.1.0 - resolution: "jsonfile@npm:6.1.0" - dependencies: - graceful-fs: ^4.1.6 - universalify: ^2.0.0 - dependenciesMeta: - graceful-fs: - optional: true - checksum: 7af3b8e1ac8fe7f1eccc6263c6ca14e1966fcbc74b618d3c78a0a2075579487547b94f72b7a1114e844a1e15bb00d440e5d1720bfc4612d790a6f285d5ea8354 - languageName: node - linkType: hard - "keyv@npm:^3.0.0": version: 3.1.0 resolution: "keyv@npm:3.1.0" @@ -8127,10 +7737,10 @@ __metadata: languageName: node linkType: hard -"libphonenumber-js@npm:^1.10.14": - version: 1.10.45 - resolution: "libphonenumber-js@npm:1.10.45" - checksum: f99e2b8707cd7e23df54af37f5149d8df4e134277ecd07f2f859a7572b6f3bf191757d88226abe4e7d5349a093852ab16c4263fd6b313fcbcef1b0fcfb0829de +"libphonenumber-js@npm:^1.10.53": + version: 1.11.7 + resolution: "libphonenumber-js@npm:1.11.7" + checksum: f581c9567b5a4225e895edb20818f6aa9f4ea5a45077cbd436f12f878de6746f9fa4ecac1c58c1f7375c780c41c3277ff7a42c876ef484ed0c5dab8348236dd7 languageName: node linkType: hard @@ -8283,13 +7893,6 @@ __metadata: languageName: node linkType: hard -"long@npm:^4.0.0": - version: 4.0.0 - resolution: "long@npm:4.0.0" - checksum: 16afbe8f749c7c849db1f4de4e2e6a31ac6e617cead3bdc4f9605cb703cd20e1e9fc1a7baba674ffcca57d660a6e5b53a9e236d7b25a295d3855cca79cc06744 - languageName: node - linkType: hard - "longest-streak@npm:^2.0.0": version: 2.0.4 resolution: "longest-streak@npm:2.0.4" @@ -8329,6 +7932,13 @@ __metadata: languageName: node linkType: hard +"lru-cache@npm:^10.2.0": + version: 10.4.3 + resolution: "lru-cache@npm:10.4.3" + checksum: 6476138d2125387a6d20f100608c2583d415a4f64a0fecf30c9e2dda976614f09cad4baa0842447bd37dd459a7bd27f57d9d8f8ce558805abd487c583f3d774a + languageName: node + linkType: hard + "lru-cache@npm:^5.1.1": version: 5.1.1 resolution: "lru-cache@npm:5.1.1" @@ -8489,15 +8099,6 @@ __metadata: languageName: node linkType: hard -"merge-options@npm:^3.0.4": - version: 3.0.4 - resolution: "merge-options@npm:3.0.4" - dependencies: - is-plain-obj: ^2.1.0 - checksum: d86ddb3dd6e85d558dbf25dc944f3527b6bacb944db3fdda6e84a3f59c4e4b85231095f58b835758b9a57708342dee0f8de0dffa352974a48221487fe9f4584f - languageName: node - linkType: hard - "merge-stream@npm:^2.0.0": version: 2.0.0 resolution: "merge-stream@npm:2.0.0" @@ -8605,6 +8206,15 @@ __metadata: languageName: node linkType: hard +"minimatch@npm:^9.0.4": + version: 9.0.5 + resolution: "minimatch@npm:9.0.5" + dependencies: + brace-expansion: ^2.0.1 + checksum: 2c035575eda1e50623c731ec6c14f65a85296268f749b9337005210bb2b34e2705f8ef1a358b188f69892286ab99dc42c8fb98a57bde55c8d81b3023c19cea28 + languageName: node + linkType: hard + "minimist@npm:^1.2.0, minimist@npm:^1.2.6": version: 1.2.8 resolution: "minimist@npm:1.2.8" @@ -8693,6 +8303,13 @@ __metadata: languageName: node linkType: hard +"minipass@npm:^7.0.4, minipass@npm:^7.1.2": + version: 7.1.2 + resolution: "minipass@npm:7.1.2" + checksum: 2bfd325b95c555f2b4d2814d49325691c7bee937d753814861b0b49d5edcda55cbbf22b6b6a60bb91eddac8668771f03c5ff647dcd9d0f798e9548b9cdc46ee3 + languageName: node + linkType: hard + "minizlib@npm:^2.1.1, minizlib@npm:^2.1.2": version: 2.1.2 resolution: "minizlib@npm:2.1.2" @@ -8703,6 +8320,16 @@ __metadata: languageName: node linkType: hard +"minizlib@npm:^3.0.1": + version: 3.0.1 + resolution: "minizlib@npm:3.0.1" + dependencies: + minipass: ^7.0.4 + rimraf: ^5.0.5 + checksum: da0a53899252380475240c587e52c824f8998d9720982ba5c4693c68e89230718884a209858c156c6e08d51aad35700a3589987e540593c36f6713fe30cd7338 + languageName: node + linkType: hard + "mkdirp@npm:^0.5.4": version: 0.5.6 resolution: "mkdirp@npm:0.5.6" @@ -8723,6 +8350,15 @@ __metadata: languageName: node linkType: hard +"mkdirp@npm:^3.0.1": + version: 3.0.1 + resolution: "mkdirp@npm:3.0.1" + bin: + mkdirp: dist/cjs/src/bin.js + checksum: 972deb188e8fb55547f1e58d66bd6b4a3623bf0c7137802582602d73e6480c1c2268dcbafbfb1be466e00cc7e56ac514d7fd9334b7cf33e3e2ab547c16f83a8d + languageName: node + linkType: hard + "moment-timezone@npm:^0.5.35": version: 0.5.43 resolution: "moment-timezone@npm:0.5.43" @@ -8782,36 +8418,6 @@ __metadata: languageName: node linkType: hard -"multiaddr-to-uri@npm:^8.0.0": - version: 8.0.0 - resolution: "multiaddr-to-uri@npm:8.0.0" - dependencies: - multiaddr: ^10.0.0 - checksum: c70d1f4d98d4eee6f7e47e4bd5b3aeae8394339c455bed3cccfc38a11aa7f61681b5cdfa02f338687d2181526318f66d00c370dca6bf633955be6bfd87cb833d - languageName: node - linkType: hard - -"multiaddr@npm:^10.0.0": - version: 10.0.1 - resolution: "multiaddr@npm:10.0.1" - dependencies: - dns-over-http-resolver: ^1.2.3 - err-code: ^3.0.1 - is-ip: ^3.1.0 - multiformats: ^9.4.5 - uint8arrays: ^3.0.0 - varint: ^6.0.0 - checksum: d53aaf7efd52ee5e6413ef36ececd29239ceb5c1f048c1fa9b820442226dc232067312d25e509a2571a14047465fb934dd35029c7f3166f4d02d13e3c501925d - languageName: node - linkType: hard - -"multiformats@npm:^9.0.2, multiformats@npm:^9.4.2, multiformats@npm:^9.4.5, multiformats@npm:^9.5.1, multiformats@npm:^9.5.4": - version: 9.9.0 - resolution: "multiformats@npm:9.9.0" - checksum: d3e8c1be400c09a014f557ea02251a2710dbc9fca5aa32cc702ff29f636c5471e17979f30bdcb0a9cbb556f162a8591dc2e1219c24fc21394a56115b820bb84e - languageName: node - linkType: hard - "multimatch@npm:^4.0.0": version: 4.0.0 resolution: "multimatch@npm:4.0.0" @@ -8834,24 +8440,6 @@ __metadata: languageName: node linkType: hard -"nanoid@npm:^3.0.2, nanoid@npm:^3.1.20, nanoid@npm:^3.1.23": - version: 3.3.6 - resolution: "nanoid@npm:3.3.6" - bin: - nanoid: bin/nanoid.cjs - checksum: 7d0eda657002738aa5206107bd0580aead6c95c460ef1bdd0b1a87a9c7ae6277ac2e9b945306aaa5b32c6dcb7feaf462d0f552e7f8b5718abfc6ead5c94a71b3 - languageName: node - linkType: hard - -"native-fetch@npm:^3.0.0": - version: 3.0.0 - resolution: "native-fetch@npm:3.0.0" - peerDependencies: - node-fetch: "*" - checksum: eec8cc78d6da4d0f3f56055e3e557473ac86dd35fd40053ea268d644af7b20babc891d2b53ef821b77ed2428265f60b85e49d754c555de89bfa071a743b853bb - languageName: node - linkType: hard - "natural-compare-lite@npm:^1.4.0": version: 1.4.0 resolution: "natural-compare-lite@npm:1.4.0" @@ -9245,23 +8833,6 @@ __metadata: languageName: node linkType: hard -"p-defer@npm:^3.0.0": - version: 3.0.0 - resolution: "p-defer@npm:3.0.0" - checksum: ac3b0976a1c76b67cca1a34e00f7299b0cc230891f820749686aa84f8947326bbe0f8e3b7d9ca511578ee06f0c1a6e0ff68c8e9c325eac455f09d99f91697161 - languageName: node - linkType: hard - -"p-fifo@npm:^1.0.0": - version: 1.0.0 - resolution: "p-fifo@npm:1.0.0" - dependencies: - fast-fifo: ^1.0.0 - p-defer: ^3.0.0 - checksum: 4cdce44ff8266351014a460705a804c02760e5b721a018dbef6fae7d25caf83af2e343be58810297473383c1783bb7048388cb5c22938b3f904818531bc44ee7 - languageName: node - linkType: hard - "p-limit@npm:^1.1.0": version: 1.3.0 resolution: "p-limit@npm:1.3.0" @@ -9339,6 +8910,13 @@ __metadata: languageName: node linkType: hard +"package-json-from-dist@npm:^1.0.0": + version: 1.0.0 + resolution: "package-json-from-dist@npm:1.0.0" + checksum: ac706ec856a5a03f5261e4e48fa974f24feb044d51f84f8332e2af0af04fbdbdd5bbbfb9cbbe354190409bc8307c83a9e38c6672c3c8855f709afb0006a009ea + languageName: node + linkType: hard + "package-json-type@npm:^1.0.3": version: 1.0.3 resolution: "package-json-type@npm:1.0.3" @@ -9367,13 +8945,6 @@ __metadata: languageName: node linkType: hard -"parse-duration@npm:^1.0.0": - version: 1.1.0 - resolution: "parse-duration@npm:1.1.0" - checksum: 3cfc10aa61b3a06373a347289e1704de47d5d845c79330bbab20b54c02567f3710ba84544a3a44a986c3381c68670d89542fe9de607fb0814e52f78b34893cd9 - languageName: node - linkType: hard - "parse-entities@npm:^2.0.0": version: 2.0.0 resolution: "parse-entities@npm:2.0.0" @@ -9486,6 +9057,16 @@ __metadata: languageName: node linkType: hard +"path-scurry@npm:^1.11.1": + version: 1.11.1 + resolution: "path-scurry@npm:1.11.1" + dependencies: + lru-cache: ^10.2.0 + minipass: ^5.0.0 || ^6.0.2 || ^7.0.0 + checksum: 890d5abcd593a7912dcce7cf7c6bf7a0b5648e3dee6caf0712c126ca0a65c7f3d7b9d769072a4d1baf370f61ce493ab5b038d59988688e0c5f3f646ee3c69023 + languageName: node + linkType: hard + "path-to-regexp@npm:0.1.7": version: 0.1.7 resolution: "path-to-regexp@npm:0.1.7" @@ -9564,9 +9145,9 @@ __metadata: languageName: node linkType: hard -"pg@npm:^8.11.5": - version: 8.11.5 - resolution: "pg@npm:8.11.5" +"pg@npm:^8.12.0": + version: 8.12.0 + resolution: "pg@npm:8.12.0" dependencies: pg-cloudflare: ^1.1.1 pg-connection-string: ^2.6.4 @@ -9582,7 +9163,7 @@ __metadata: peerDependenciesMeta: pg-native: optional: true - checksum: 2317bcc7080f116ced761620b8cbc98175080cacf1e8a894e14f468bcd9c996a7bd5ef36c9db91d380a772667508eb72c42b10206a90cd82b0b4a7669a19f9e4 + checksum: 8450b61c787f360e22182aa853548f834f13622714868d0789a60f63743d66ae28930cdca0ef0251bfc89b04679e9074c1398f172c2937bf59b5a360337f4149 languageName: node linkType: hard @@ -9798,12 +9379,13 @@ __metadata: languageName: node linkType: hard -"prom-client@npm:^14.0.1": - version: 14.2.0 - resolution: "prom-client@npm:14.2.0" +"prom-client@npm:^15.1.3": + version: 15.1.3 + resolution: "prom-client@npm:15.1.3" dependencies: + "@opentelemetry/api": ^1.4.0 tdigest: ^0.1.1 - checksum: d4c04e57616c72643dd02862d0d4bde09cf8869a19d0aef5e7b785e6e27d02439b66cdc165e3492f62d579fa91579183820870cc757a09b99399d2d02f46b9f1 + checksum: 9a57f3c16f39aa9a03da021883a4231c0bb56fc9d02f6ef9c28f913379f275640a5a33b98d9946ebf53c71011a29b580e9d2d6e3806cb1c229a3f59c65993968 languageName: node linkType: hard @@ -9838,30 +9420,6 @@ __metadata: languageName: node linkType: hard -"protobufjs@npm:^6.10.2": - version: 6.11.4 - resolution: "protobufjs@npm:6.11.4" - 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 - bin: - pbjs: bin/pbjs - pbts: bin/pbts - checksum: b2fc6a01897b016c2a7e43a854ab4a3c57080f61be41e552235436e7a730711b8e89e47cb4ae52f0f065b5ab5d5989fc932f390337ce3a8ccf07203415700850 - languageName: node - linkType: hard - "protocols@npm:^1.4.0": version: 1.4.8 resolution: "protocols@npm:1.4.8" @@ -10043,15 +9601,6 @@ __metadata: languageName: node linkType: hard -"react-native-fetch-api@npm:^3.0.0": - version: 3.0.0 - resolution: "react-native-fetch-api@npm:3.0.0" - dependencies: - p-defer: ^3.0.0 - checksum: f10f435060551c470711ba0b3663e3d49c7701aae84ea645d66992d756b13e923fb5762b324d3583d85c1c0def4138b9cc3f686bab1c1bc10d3ad82dc7175c99 - languageName: node - linkType: hard - "readable-stream@npm:^2.2.2": version: 2.3.8 resolution: "readable-stream@npm:2.3.8" @@ -10087,15 +9636,6 @@ __metadata: languageName: node linkType: hard -"receptacle@npm:^1.3.2": - version: 1.3.2 - resolution: "receptacle@npm:1.3.2" - dependencies: - ms: ^2.1.1 - checksum: 7c5011f19e6ddcb759c1e6756877cee3c9eb78fbd1278eca4572d75f74993f0ccdc1e5f7761de6e682dff5344ee94f7a69bc492e2e8eb81d8777774a2399ce9c - languageName: node - linkType: hard - "reflect-metadata@npm:^0.1.13": version: 0.1.13 resolution: "reflect-metadata@npm:0.1.13" @@ -10103,6 +9643,13 @@ __metadata: languageName: node linkType: hard +"reflect-metadata@npm:^0.1.14": + version: 0.1.14 + resolution: "reflect-metadata@npm:0.1.14" + checksum: 155ad339319cec3c2d9d84719f730f8b6a6cd2a074733ec29dbae6c89d48a2914c7d07a2350212594f3aae160fa4da4f903e6512f27ceaf968443a7c692bcad0 + languageName: node + linkType: hard + "regenerate-unicode-properties@npm:^10.1.0": version: 10.1.1 resolution: "regenerate-unicode-properties@npm:10.1.1" @@ -10196,6 +9743,21 @@ __metadata: languageName: node linkType: hard +"rehackt@npm:^0.1.0": + version: 0.1.0 + resolution: "rehackt@npm:0.1.0" + peerDependencies: + "@types/react": "*" + react: "*" + peerDependenciesMeta: + "@types/react": + optional: true + react: + optional: true + checksum: 2c3bcd72524bf47672640265e79cba785e0e6837b9b385ccb0a3ea7d00f55a439d9aed3e0ae71e991d88e0d4b2b3158457c92e75fff5ebf99cd46e280068ddeb + languageName: node + linkType: hard + "remark-parse@npm:^9.0.0": version: 9.0.0 resolution: "remark-parse@npm:9.0.0" @@ -10317,13 +9879,6 @@ __metadata: languageName: node linkType: hard -"retimer@npm:^3.0.0": - version: 3.0.0 - resolution: "retimer@npm:3.0.0" - checksum: f88309196e9d4f2d4be0c76eafc27a9f102c74b40b391ce730785b052c345d7bd59c3e4411a4c422f89f19a42b97b28034639e2f06c63133a06ec8958e9e7516 - languageName: node - linkType: hard - "retry-as-promised@npm:^7.0.3": version: 7.0.4 resolution: "retry-as-promised@npm:7.0.4" @@ -10363,10 +9918,21 @@ __metadata: languageName: node linkType: hard -"rotating-file-stream@npm:^3.0.2": - version: 3.1.1 - resolution: "rotating-file-stream@npm:3.1.1" - checksum: 8224146c431003caf751d8484322a95d0da5d53e4e3bc5fb97e6bff483757bcf5760fa117b761ffbb082d407e08f1c892167a8947fb47d0ef4ad6ab2f4c40c0a +"rimraf@npm:^5.0.5": + version: 5.0.10 + resolution: "rimraf@npm:5.0.10" + dependencies: + glob: ^10.3.7 + bin: + rimraf: dist/esm/bin.mjs + checksum: 50e27388dd2b3fa6677385fc1e2966e9157c89c86853b96d02e6915663a96b7ff4d590e14f6f70e90f9b554093aa5dbc05ac3012876be558c06a65437337bc05 + languageName: node + linkType: hard + +"rotating-file-stream@npm:^3.2.3": + version: 3.2.3 + resolution: "rotating-file-stream@npm:3.2.3" + checksum: 9ccfb04ee9763c0c9ddce5aaa93bf17268f3bb672ae3b0f98a2eca718ce5d9d293590df6071386660a75dcb047e259190ed5cacb83090e8bda55ef36848e2e33 languageName: node linkType: hard @@ -10459,7 +10025,7 @@ __metadata: languageName: node linkType: hard -"semver@npm:^7.3.4, semver@npm:^7.3.5, semver@npm:^7.3.7, semver@npm:^7.5.2, semver@npm:^7.5.3, semver@npm:^7.5.4": +"semver@npm:^7.3.4, semver@npm:^7.3.5, semver@npm:^7.3.7, semver@npm:^7.5.3, semver@npm:^7.5.4": version: 7.5.4 resolution: "semver@npm:7.5.4" dependencies: @@ -10470,6 +10036,15 @@ __metadata: languageName: node linkType: hard +"semver@npm:^7.6.3": + version: 7.6.3 + resolution: "semver@npm:7.6.3" + bin: + semver: bin/semver.js + checksum: 4110ec5d015c9438f322257b1c51fe30276e5f766a3f64c09edd1d7ea7118ecbc3f379f3b69032bacf13116dc7abc4ad8ce0d7e2bd642e26b0d271b56b61a7d8 + languageName: node + linkType: hard + "semver@npm:~7.0.0": version: 7.0.0 resolution: "semver@npm:7.0.0" @@ -10775,15 +10350,6 @@ __metadata: languageName: node linkType: hard -"stream-to-it@npm:^0.2.2": - version: 0.2.4 - resolution: "stream-to-it@npm:0.2.4" - dependencies: - get-iterator: ^1.0.2 - checksum: 0725dd8ddb889829cab70b81a883d5a09cd34272ccd44fad195de9fb900a8588fbf801490b6418ae5e234c128743ad829c50cfcd6686fab3b50bb6e76d59238c - languageName: node - linkType: hard - "streamsearch@npm:^1.1.0": version: 1.1.0 resolution: "streamsearch@npm:1.1.0" @@ -10974,7 +10540,7 @@ __metadata: ts-loader: ^9.2.6 ts-node: ^10.4.0 tsconfig-paths: ^3.12.0 - typescript: ^4.9.5 + typescript: ^5.5.4 languageName: unknown linkType: soft @@ -11047,17 +10613,17 @@ __metadata: languageName: node linkType: hard -"tar@npm:^6.2.1": - version: 6.2.1 - resolution: "tar@npm:6.2.1" +"tar@npm:^7.4.3": + version: 7.4.3 + resolution: "tar@npm:7.4.3" dependencies: - chownr: ^2.0.0 - fs-minipass: ^2.0.0 - minipass: ^5.0.0 - minizlib: ^2.1.1 - mkdirp: ^1.0.3 - yallist: ^4.0.0 - checksum: f1322768c9741a25356c11373bce918483f40fa9a25c69c59410c8a1247632487edef5fe76c5f12ac51a6356d2f1829e96d2bc34098668a2fc34d76050ac2b6c + "@isaacs/fs-minipass": ^4.0.0 + chownr: ^3.0.0 + minipass: ^7.1.2 + minizlib: ^3.0.1 + mkdirp: ^3.0.1 + yallist: ^5.0.0 + checksum: 8485350c0688331c94493031f417df069b778aadb25598abdad51862e007c39d1dd5310702c7be4a6784731a174799d8885d2fde0484269aea205b724d7b2ffa languageName: node linkType: hard @@ -11119,15 +10685,6 @@ __metadata: languageName: node linkType: hard -"timeout-abort-controller@npm:^3.0.0": - version: 3.0.0 - resolution: "timeout-abort-controller@npm:3.0.0" - dependencies: - retimer: ^3.0.0 - checksum: c74387e6472a1e151d89b4af8c2a18ac72d566f3cd6ec9b203e3cda969fb5c54acba0a8d20cda8e9772efda52e27bea59c3423bab785b65f0287c9419184607e - languageName: node - linkType: hard - "tmpl@npm:1.0.5": version: 1.0.5 resolution: "tmpl@npm:1.0.5" @@ -11470,23 +11027,23 @@ __metadata: languageName: node linkType: hard -"typescript@npm:^4.9.5": - version: 4.9.5 - resolution: "typescript@npm:4.9.5" +"typescript@npm:^5.5.4": + version: 5.5.4 + resolution: "typescript@npm:5.5.4" bin: tsc: bin/tsc tsserver: bin/tsserver - checksum: ee000bc26848147ad423b581bd250075662a354d84f0e06eb76d3b892328d8d4440b7487b5a83e851b12b255f55d71835b008a66cbf8f255a11e4400159237db + checksum: b309040f3a1cd91c68a5a58af6b9fdd4e849b8c42d837b2c2e73f9a4f96a98c4f1ed398a9aab576ee0a4748f5690cf594e6b99dbe61de7839da748c41e6d6ca8 languageName: node linkType: hard -"typescript@patch:typescript@^4.9.5#~builtin": - version: 4.9.5 - resolution: "typescript@patch:typescript@npm%3A4.9.5#~builtin::version=4.9.5&hash=493e53" +"typescript@patch:typescript@^5.5.4#~builtin": + version: 5.5.4 + resolution: "typescript@patch:typescript@npm%3A5.5.4#~builtin::version=5.5.4&hash=493e53" bin: tsc: bin/tsc tsserver: bin/tsserver - checksum: 2eee5c37cad4390385db5db5a8e81470e42e8f1401b0358d7390095d6f681b410f2c4a0c496c6ff9ebd775423c7785cdace7bcdad76c7bee283df3d9718c0f20 + checksum: fc52962f31a5bcb716d4213bef516885e4f01f30cea797a831205fc9ef12b405a40561c40eae3127ab85ba1548e7df49df2bcdee6b84a94bfbe3a0d7eff16b14 languageName: node linkType: hard @@ -11506,15 +11063,6 @@ __metadata: languageName: node linkType: hard -"uint8arrays@npm:^3.0.0": - version: 3.1.1 - resolution: "uint8arrays@npm:3.1.1" - dependencies: - multiformats: ^9.4.2 - checksum: b93b6c3f0a526b116799f3a3409bd4b5d5553eb3e73e485998ece7974742254fbc0d2f7988dd21ac86c4b974552f45d9ae9cf9cba9647e529f8eb1fdd2ed84d0 - languageName: node - linkType: hard - "unbox-primitive@npm:^1.0.2": version: 1.0.2 resolution: "unbox-primitive@npm:1.0.2" @@ -11726,13 +11274,6 @@ __metadata: languageName: node linkType: hard -"universalify@npm:^2.0.0": - version: 2.0.0 - resolution: "universalify@npm:2.0.0" - checksum: 2406a4edf4a8830aa6813278bab1f953a8e40f2f63a37873ffa9a3bc8f9745d06cc8e88f3572cb899b7e509013f7f6fcc3e37e8a6d914167a5381d8440518c44 - languageName: node - linkType: hard - "unpipe@npm:1.0.0, unpipe@npm:~1.0.0": version: 1.0.0 resolution: "unpipe@npm:1.0.0" @@ -11754,7 +11295,7 @@ __metadata: languageName: node linkType: hard -"update-notifier@npm:5.1.0": +"update-notifier@npm:^5.1.0": version: 5.1.0 resolution: "update-notifier@npm:5.1.0" dependencies: @@ -11851,10 +11392,10 @@ __metadata: languageName: node linkType: hard -"varint@npm:^6.0.0": - version: 6.0.0 - resolution: "varint@npm:6.0.0" - checksum: 7684113c9d497c01e40396e50169c502eb2176203219b96e1c5ac965a3e15b4892bd22b7e48d87148e10fffe638130516b6dbeedd0efde2b2d0395aa1772eea7 +"validator@npm:^13.9.0": + version: 13.12.0 + resolution: "validator@npm:13.12.0" + checksum: fb8f070724770b1449ea1a968605823fdb112dbd10507b2802f8841cda3e7b5c376c40f18c84e6a7b59de320a06177e471554101a85f1fa8a70bac1a84e48adf languageName: node linkType: hard @@ -12095,6 +11636,13 @@ __metadata: languageName: node linkType: hard +"yallist@npm:^5.0.0": + version: 5.0.0 + resolution: "yallist@npm:5.0.0" + checksum: eba51182400b9f35b017daa7f419f434424410691bbc5de4f4240cc830fdef906b504424992700dc047f16b4d99100a6f8b8b11175c193f38008e9c96322b6a5 + languageName: node + linkType: hard + "yaml@npm:^1.10.2": version: 1.10.2 resolution: "yaml@npm:1.10.2"