From d0ebf9e7be6390e7b8b7a896bd86282db677d5f5 Mon Sep 17 00:00:00 2001 From: Aramik Date: Mon, 27 Feb 2023 09:54:41 -0800 Subject: [PATCH 1/4] Private graph require signature (#1114) # Goal The goal of this PR is to allow checking signatures for certain extrinsic Closes issue #1047 # Discussion - added 3 new extrinsics to be able to handle for signature required schemas # Checklist - [x] Custom RPC OR Runtime API added/changed? Updated js/api-augment. - [x] Tests added - [x] Benchmarks added - [x] Weights updated - [x] Integration tests updated --- Cargo.lock | 1 + integration-tests/package-lock.json | 2 +- .../scaffolding/extrinsicHelpers.ts | 19 +- integration-tests/scaffolding/helpers.ts | 85 +- .../handleItemized.test.ts | 7 +- .../handlePaginated.test.ts | 12 +- .../handleSignatureRequired.test.ts | 131 ++ pallets/stateful-storage/Cargo.toml | 1 + pallets/stateful-storage/src/benchmarking.rs | 151 +- pallets/stateful-storage/src/lib.rs | 550 +++++-- pallets/stateful-storage/src/mock.rs | 97 +- pallets/stateful-storage/src/test_common.rs | 17 + pallets/stateful-storage/src/tests.rs | 1381 +++++++++++++++-- pallets/stateful-storage/src/types.rs | 81 + pallets/stateful-storage/src/weights.rs | 132 +- runtime/common/src/constants.rs | 2 + runtime/frequency/src/lib.rs | 4 + 17 files changed, 2307 insertions(+), 366 deletions(-) create mode 100644 integration-tests/stateful-pallet-storage/handleSignatureRequired.test.ts create mode 100644 pallets/stateful-storage/src/test_common.rs diff --git a/Cargo.lock b/Cargo.lock index b5786c9e06..d94c92d58d 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -6110,6 +6110,7 @@ dependencies = [ "scale-info", "sp-core", "sp-io", + "sp-keystore", "sp-runtime", "sp-std", "twox-hash", diff --git a/integration-tests/package-lock.json b/integration-tests/package-lock.json index 24b7bfd565..8bd942306c 100644 --- a/integration-tests/package-lock.json +++ b/integration-tests/package-lock.json @@ -725,7 +725,7 @@ "node_modules/@frequency-chain/api-augment": { "version": "0.0.0", "resolved": "file:../js/api-augment/dist/frequency-chain-api-augment-0.0.0.tgz", - "integrity": "sha512-OTvet8z7M9Cpto2C7vSRtzuQu31o/hyccROrYsMxaqHmQTnMl1BrrHGr6TVpMAkU8uZepZOG4ysncjFPljo2IQ==", + "integrity": "sha512-dojZEoHw1oqX0Hf4sO0gRhEB7DtUs9Ze0S7RDjzI3BJIBBQmWHdHdl7pjriyVwkIXNceqUwD8iBE9bKWAJKVwg==", "license": "Apache-2.0", "dependencies": { "@polkadot/api": "^9.13.2", diff --git a/integration-tests/scaffolding/extrinsicHelpers.ts b/integration-tests/scaffolding/extrinsicHelpers.ts index cf5a180754..5332cb7be6 100644 --- a/integration-tests/scaffolding/extrinsicHelpers.ts +++ b/integration-tests/scaffolding/extrinsicHelpers.ts @@ -1,7 +1,7 @@ import { ApiRx } from "@polkadot/api"; import { ApiTypes, AugmentedEvent, SubmittableExtrinsic } from "@polkadot/api/types"; import { KeyringPair } from "@polkadot/keyring/types"; -import { Compact, u128, u16, u64, Vec } from "@polkadot/types"; +import {Compact, u128, u16, u32, u64, Vec} from "@polkadot/types"; import { FrameSystemAccountInfo } from "@polkadot/types/lookup"; import { AnyNumber, AnyTuple, Codec, IEvent, ISubmittableResult } from "@polkadot/types/types"; import { firstValueFrom, filter, map, pipe, tap } from "rxjs"; @@ -13,6 +13,9 @@ import { ItemizedStoragePageResponse, MessageSourceId, PaginatedStorageResponse, export type AddKeyData = { msaId?: u64; expiration?: any; newPublicKey?: any; } export type AddProviderPayload = { authorizedMsaId?: u64; schemaIds?: u16[], expiration?: any; } +export type ItemizedSignaturePayload = { msaId?: u64; schemaId?: u16, targetHash?: u32, expiration?: any; actions?: any; } +export type PaginatedUpsertSignaturePayload = { msaId?: u64; schemaId?: u16, pageId?: u16, targetHash?: u32, expiration?: any; payload?: any; } +export type PaginatedDeleteSignaturePayload = { msaId?: u64; schemaId?: u16, pageId?: u16, targetHash?: u32, expiration?: any; } export class EventError extends Error { name: string = ''; @@ -237,7 +240,7 @@ export class ExtrinsicHelper { /** Stateful Storage Extrinsics */ public static applyItemActions(keys: KeyringPair, schemaId: any, msa_id: MessageSourceId, actions: any, target_hash: any): Extrinsic { - return new Extrinsic(() => ExtrinsicHelper.api.tx.statefulStorage.applyItemActions(msa_id, schemaId, actions, target_hash), keys, ExtrinsicHelper.api.events.statefulStorage.ItemizedPageUpdated); + return new Extrinsic(() => ExtrinsicHelper.api.tx.statefulStorage.applyItemActions(msa_id, schemaId, target_hash,actions), keys, ExtrinsicHelper.api.events.statefulStorage.ItemizedPageUpdated); } public static removePage(keys: KeyringPair, schemaId: any, msa_id: MessageSourceId, page_id: any, target_hash: any): Extrinsic { @@ -248,6 +251,18 @@ export class ExtrinsicHelper { return new Extrinsic(() => ExtrinsicHelper.api.tx.statefulStorage.upsertPage(msa_id, schemaId, page_id, target_hash, payload), keys, ExtrinsicHelper.api.events.statefulStorage.PaginatedPageUpdated); } + public static applyItemActionsWithSignature(delegatorKeys: KeyringPair, providerKeys: KeyringPair, signature: Sr25519Signature, payload: ItemizedSignaturePayload): Extrinsic { + return new Extrinsic(() => ExtrinsicHelper.api.tx.statefulStorage.applyItemActionsWithSignature(delegatorKeys.publicKey, signature, payload), providerKeys, ExtrinsicHelper.api.events.statefulStorage.ItemizedPageUpdated); + } + + public static removePageWithSignature(delegatorKeys: KeyringPair, providerKeys: KeyringPair, signature: Sr25519Signature, payload: PaginatedDeleteSignaturePayload): Extrinsic { + return new Extrinsic(() => ExtrinsicHelper.api.tx.statefulStorage.deletePageWithSignature(delegatorKeys.publicKey, signature, payload), providerKeys, ExtrinsicHelper.api.events.statefulStorage.PaginatedPageDeleted); + } + + public static upsertPageWithSignature(delegatorKeys: KeyringPair, providerKeys: KeyringPair, signature: Sr25519Signature, payload: PaginatedUpsertSignaturePayload): Extrinsic { + return new Extrinsic(() => ExtrinsicHelper.api.tx.statefulStorage.upsertPageWithSignature(delegatorKeys.publicKey, signature, payload), providerKeys, ExtrinsicHelper.api.events.statefulStorage.PaginatedPageUpdated); + } + public static getItemizedStorages(msa_id: MessageSourceId, schemaId: any): Promise { return firstValueFrom(ExtrinsicHelper.api.rpc.statefulStorage.getItemizedStorages(msa_id, schemaId)); } diff --git a/integration-tests/scaffolding/helpers.ts b/integration-tests/scaffolding/helpers.ts index 366d317d5f..11775243c0 100644 --- a/integration-tests/scaffolding/helpers.ts +++ b/integration-tests/scaffolding/helpers.ts @@ -5,8 +5,15 @@ import { Codec } from "@polkadot/types/types"; import { u8aToHex, u8aWrapBytes } from "@polkadot/util"; import { mnemonicGenerate } from '@polkadot/util-crypto'; import { env } from "./env"; -import { AddKeyData, AddProviderPayload, ExtrinsicHelper } from "./extrinsicHelpers"; +import { + AddKeyData, + AddProviderPayload, + ExtrinsicHelper, + ItemizedSignaturePayload, PaginatedDeleteSignaturePayload, + PaginatedUpsertSignaturePayload +} from "./extrinsicHelpers"; import { EXISTENTIAL_DEPOSIT } from "./rootHooks"; +import {MessageSourceId, PageHash} from "@frequency-chain/api-augment/interfaces"; export interface DevAccount { uri: string, @@ -46,6 +53,42 @@ export async function generateAddKeyPayload(payloadInputs: AddKeyData, expiratio } } +export async function generateItemizedSignaturePayload(payloadInputs: ItemizedSignaturePayload, expirationOffset?: number): Promise { + let { expiration, ...payload } = payloadInputs; + if (!expiration) { + expiration = (await ExtrinsicHelper.getLastBlock()).block.header.number.toNumber() + (expirationOffset || 5); + } + + return { + expiration, + ...payload, + } +} + +export async function generatePaginatedUpsertSignaturePayload(payloadInputs: PaginatedUpsertSignaturePayload, expirationOffset?: number): Promise { + let { expiration, ...payload } = payloadInputs; + if (!expiration) { + expiration = (await ExtrinsicHelper.getLastBlock()).block.header.number.toNumber() + (expirationOffset || 5); + } + + return { + expiration, + ...payload, + } +} + +export async function generatePaginatedDeleteSignaturePayload(payloadInputs: PaginatedDeleteSignaturePayload, expirationOffset?: number): Promise { + let { expiration, ...payload } = payloadInputs; + if (!expiration) { + expiration = (await ExtrinsicHelper.getLastBlock()).block.header.number.toNumber() + (expirationOffset || 5); + } + + return { + expiration, + ...payload, + } +} + export function createKeys(name: string = 'first pair'): KeyringPair { const mnemonic = mnemonicGenerate(); // create & add the pair to the keyring with the type and some additional @@ -88,16 +131,23 @@ export async function createProviderKeysAndId(): Promise<[KeyringPair, u64]> { return [providerKeys, providerId]; } +export async function createDelegator(): Promise<[KeyringPair, u64]> { + let keys = await createAndFundKeypair(); + let delegator_msa_id = new u64(ExtrinsicHelper.api.registry, 0); + const createMsa = ExtrinsicHelper.createMsa(keys); + await createMsa.fundOperation(); + const [msaCreatedEvent, _] = await createMsa.signAndSend(); + + if (msaCreatedEvent && ExtrinsicHelper.api.events.msa.MsaCreated.is(msaCreatedEvent)) { + delegator_msa_id = msaCreatedEvent.data.msaId; + } + + return [keys, delegator_msa_id]; +} + export async function createDelegatorAndDelegation(schemaId: u16, providerId: u64, providerKeys: KeyringPair): Promise<[KeyringPair, u64]> { // Create a delegator msa - let keys = await createAndFundKeypair(); - let delegator_msa_id = new u64(ExtrinsicHelper.api.registry, 0); - const createMsa = ExtrinsicHelper.createMsa(keys); - await createMsa.fundOperation(); - const [msaCreatedEvent, chainEvents] = await createMsa.signAndSend(); - if (msaCreatedEvent && ExtrinsicHelper.api.events.msa.MsaCreated.is(msaCreatedEvent)) { - delegator_msa_id = msaCreatedEvent.data.msaId; - } + const [keys, delegator_msa_id] = await createDelegator(); // Grant delegation to the provider const payload = await generateDelegationPayload({ @@ -111,4 +161,19 @@ export async function createDelegatorAndDelegation(schemaId: u16, providerId: u6 await grantDelegationOp.signAndSend(); return [keys, delegator_msa_id]; -} \ No newline at end of file +} + +export async function getCurrentItemizedHash(msa_id: MessageSourceId, schemaId: u16): Promise { + const result = await ExtrinsicHelper.getItemizedStorages(msa_id, schemaId); + return result.content_hash; +} + +export async function getCurrentPaginatedHash(msa_id: MessageSourceId, schemaId: u16, page_id: number): Promise { + const result = await ExtrinsicHelper.getPaginatedStorages(msa_id, schemaId); + const page_response = result.filter((page) => page.page_id.toNumber() === page_id); + if (page_response.length <= 0) { + return new u32(ExtrinsicHelper.api.registry, 0); + } + + return page_response[0].content_hash; +} diff --git a/integration-tests/stateful-pallet-storage/handleItemized.test.ts b/integration-tests/stateful-pallet-storage/handleItemized.test.ts index 5f6196f02f..6a52b78148 100644 --- a/integration-tests/stateful-pallet-storage/handleItemized.test.ts +++ b/integration-tests/stateful-pallet-storage/handleItemized.test.ts @@ -1,18 +1,13 @@ // Integration tests for pallets/stateful-pallet-storage/handleItemized.ts import "@frequency-chain/api-augment"; import assert from "assert"; -import { createDelegatorAndDelegation, createProviderKeysAndId } from "../scaffolding/helpers"; +import {createDelegatorAndDelegation, createProviderKeysAndId, getCurrentItemizedHash} from "../scaffolding/helpers"; import { KeyringPair } from "@polkadot/keyring/types"; import { ExtrinsicHelper } from "../scaffolding/extrinsicHelpers"; import { AVRO_CHAT_MESSAGE } from "../stateful-pallet-storage/fixtures/itemizedSchemaType"; import { MessageSourceId, PageHash, SchemaId } from "@frequency-chain/api-augment/interfaces"; import { Bytes, u16, u64 } from "@polkadot/types"; -async function getCurrentItemizedHash(msa_id: MessageSourceId, schemaId: u16): Promise { - const result = await ExtrinsicHelper.getItemizedStorages(msa_id, schemaId); - return result.content_hash; -} - describe("📗 Stateful Pallet Storage", () => { let schemaId: SchemaId; let schemaId_unsupported: SchemaId; diff --git a/integration-tests/stateful-pallet-storage/handlePaginated.test.ts b/integration-tests/stateful-pallet-storage/handlePaginated.test.ts index 10d96d7a2e..9231b6011c 100644 --- a/integration-tests/stateful-pallet-storage/handlePaginated.test.ts +++ b/integration-tests/stateful-pallet-storage/handlePaginated.test.ts @@ -1,23 +1,13 @@ // Integration tests for pallets/stateful-pallet-storage/handlepaginated.ts import "@frequency-chain/api-augment"; import assert from "assert"; -import { createProviderKeysAndId, createDelegatorAndDelegation } from "../scaffolding/helpers"; +import {createProviderKeysAndId, createDelegatorAndDelegation, getCurrentPaginatedHash} from "../scaffolding/helpers"; import { KeyringPair } from "@polkadot/keyring/types"; import { ExtrinsicHelper } from "../scaffolding/extrinsicHelpers"; import { AVRO_CHAT_MESSAGE } from "./fixtures/itemizedSchemaType"; import { MessageSourceId, PageId, SchemaId } from "@frequency-chain/api-augment/interfaces"; import { Bytes, u16, u32, u64 } from "@polkadot/types"; -async function getCurrentPaginatedHash(msa_id: MessageSourceId, schemaId: u16, page_id: number): Promise { - const result = await ExtrinsicHelper.getPaginatedStorages(msa_id, schemaId); - const page_response = result.filter((page) => page.page_id.toNumber() === page_id); - if (page_response.length <= 0) { - return new u32(ExtrinsicHelper.api.registry, 0); - } - - return page_response[0].content_hash; -} - describe("📗 Stateful Pallet Storage", () => { let schemaId: SchemaId; let schemaId_unsupported: SchemaId; diff --git a/integration-tests/stateful-pallet-storage/handleSignatureRequired.test.ts b/integration-tests/stateful-pallet-storage/handleSignatureRequired.test.ts new file mode 100644 index 0000000000..cfbb743537 --- /dev/null +++ b/integration-tests/stateful-pallet-storage/handleSignatureRequired.test.ts @@ -0,0 +1,131 @@ +// Integration tests for pallets/stateful-pallet-storage/handleItemizedWithSignature.ts +import "@frequency-chain/api-augment"; +import assert from "assert"; +import { + createDelegator, + createProviderKeysAndId, + generateItemizedSignaturePayload, generatePaginatedDeleteSignaturePayload, generatePaginatedUpsertSignaturePayload, + getCurrentItemizedHash, getCurrentPaginatedHash, + signPayloadSr25519 +} from "../scaffolding/helpers"; +import { KeyringPair } from "@polkadot/keyring/types"; +import { ExtrinsicHelper } from "../scaffolding/extrinsicHelpers"; +import { AVRO_CHAT_MESSAGE } from "../stateful-pallet-storage/fixtures/itemizedSchemaType"; +import { MessageSourceId, SchemaId } from "@frequency-chain/api-augment/interfaces"; +import {Bytes, u16} from "@polkadot/types"; + +describe("📗 Stateful Pallet Storage Signature Required", () => { + let itemizedSchemaId: SchemaId; + let paginatedSchemaId: SchemaId; + let msa_id: MessageSourceId; + let providerId: MessageSourceId; + let providerKeys: KeyringPair; + let delegatorKeys: KeyringPair; + + before(async function () { + + // Create a provider for the MSA, the provider will be used to grant delegation + [providerKeys, providerId] = await createProviderKeysAndId(); + assert.notEqual(providerId, undefined, "setup should populate providerId"); + assert.notEqual(providerKeys, undefined, "setup should populate providerKeys"); + + // Create a schema for Itemized PayloadLocation + const createSchema = ExtrinsicHelper.createSchema(providerKeys, AVRO_CHAT_MESSAGE, "AvroBinary", "Itemized"); + const [event] = await createSchema.fundAndSend(); + if (event && createSchema.api.events.schemas.SchemaCreated.is(event)) { + itemizedSchemaId = event.data.schemaId; + } + assert.notEqual(itemizedSchemaId, undefined, "setup should populate schemaId"); + // Create a schema for Paginated PayloadLocation + const createSchema2 = ExtrinsicHelper.createSchema(providerKeys, AVRO_CHAT_MESSAGE, "AvroBinary", "Paginated"); + const [event2] = await createSchema2.fundAndSend(); + assert.notEqual(event2, undefined, "setup should return a SchemaCreated event"); + if (event2 && createSchema2.api.events.schemas.SchemaCreated.is(event2)) { + paginatedSchemaId = event2.data.schemaId; + assert.notEqual(paginatedSchemaId, undefined, "setup should populate schemaId"); + } + + // Create a MSA for the delegator + [delegatorKeys, msa_id] = await createDelegator(); + assert.notEqual(delegatorKeys, undefined, "setup should populate delegator_key"); + assert.notEqual(msa_id, undefined, "setup should populate msa_id"); + }); + + describe("Itemized With Signature Storage Tests", () => { + + it("should be able to call applyItemizedActionWithSignature and apply actions", async function () { + + // Add and update actions + let payload_1 = new Bytes(ExtrinsicHelper.api.registry, "Hello World From Frequency"); + + const add_action = { + "Add": payload_1 + } + + let payload_2 = new Bytes(ExtrinsicHelper.api.registry, "Hello World Again From Frequency"); + + const update_action = { + "Add": payload_2 + } + + const target_hash = await getCurrentItemizedHash(msa_id, itemizedSchemaId); + + let add_actions = [add_action, update_action]; + const payload = await generateItemizedSignaturePayload({ + msaId: msa_id, + targetHash: target_hash, + schemaId: itemizedSchemaId, + actions: add_actions, + }); + const itemizedPayloadData = ExtrinsicHelper.api.registry.createType("PalletStatefulStorageItemizedSignaturePayload", payload); + let itemized_add_result_1 = ExtrinsicHelper.applyItemActionsWithSignature(delegatorKeys, providerKeys, signPayloadSr25519(delegatorKeys, itemizedPayloadData), payload); + const [pageUpdateEvent1, chainEvents] = await itemized_add_result_1.fundAndSend(); + assert.notEqual(chainEvents["system.ExtrinsicSuccess"], undefined, "should have returned an ExtrinsicSuccess event"); + assert.notEqual(chainEvents["transactionPayment.TransactionFeePaid"], undefined, "should have returned a TransactionFeePaid event"); + assert.notEqual(pageUpdateEvent1, undefined, "should have returned a PalletStatefulStorageItemizedActionApplied event"); + }).timeout(10000); + }); + + describe("Paginated With Signature Storage Tests", () => { + + it("should be able to call upsert a page and delete it successfully", async function () { + let page_id = new u16(ExtrinsicHelper.api.registry, 1); + + // Add and update actions + let target_hash = await getCurrentPaginatedHash(msa_id, paginatedSchemaId, page_id.toNumber()); + const upsertPayload = await generatePaginatedUpsertSignaturePayload({ + msaId: msa_id, + targetHash: target_hash, + schemaId: paginatedSchemaId, + pageId: page_id, + payload: new Bytes(ExtrinsicHelper.api.registry, "Hello World From Frequency"), + }); + const upsertPayloadData = ExtrinsicHelper.api.registry.createType("PalletStatefulStoragePaginatedUpsertSignaturePayload", upsertPayload); + let upsert_result = ExtrinsicHelper.upsertPageWithSignature(delegatorKeys, providerKeys, signPayloadSr25519(delegatorKeys, upsertPayloadData), upsertPayload); + const [pageUpdateEvent, chainEvents1] = await upsert_result.fundAndSend(); + assert.notEqual(chainEvents1["system.ExtrinsicSuccess"], undefined, "should have returned an ExtrinsicSuccess event"); + assert.notEqual(chainEvents1["transactionPayment.TransactionFeePaid"], undefined, "should have returned a TransactionFeePaid event"); + assert.notEqual(pageUpdateEvent, undefined, "should have returned a PalletStatefulStoragePaginatedPageUpdate event"); + + // Remove the page + target_hash = await getCurrentPaginatedHash(msa_id, paginatedSchemaId, page_id.toNumber()); + const deletePayload = await generatePaginatedDeleteSignaturePayload({ + msaId: msa_id, + targetHash: target_hash, + schemaId: paginatedSchemaId, + pageId: page_id, + }); + const deletePayloadData = ExtrinsicHelper.api.registry.createType("PalletStatefulStoragePaginatedDeleteSignaturePayload", deletePayload); + let remove_result = ExtrinsicHelper.removePageWithSignature(delegatorKeys, providerKeys, signPayloadSr25519(delegatorKeys, deletePayloadData), deletePayload); + const [pageRemove, chainEvents2] = await remove_result.fundAndSend(); + assert.notEqual(chainEvents2["system.ExtrinsicSuccess"], undefined, "should have returned an ExtrinsicSuccess event"); + assert.notEqual(chainEvents2["transactionPayment.TransactionFeePaid"], undefined, "should have returned a TransactionFeePaid event"); + assert.notEqual(pageRemove, undefined, "should have returned a event"); + + // no pages should exist + const result = await ExtrinsicHelper.getPaginatedStorages(msa_id, paginatedSchemaId); + assert.notEqual(result, undefined, "should have returned a valid response"); + assert.equal(result.length, 0, "should returned no paginated pages"); + }).timeout(10000); + }); +}); diff --git a/pallets/stateful-storage/Cargo.toml b/pallets/stateful-storage/Cargo.toml index 863abcad8f..f061187b07 100644 --- a/pallets/stateful-storage/Cargo.toml +++ b/pallets/stateful-storage/Cargo.toml @@ -35,6 +35,7 @@ common-primitives = { default-features = false, path = "../../common/primitives" [dev-dependencies] env_logger = "0.10.0" pretty_assertions = "1" +sp-keystore = { default-features = false, git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.36" } [features] default = ['std'] diff --git a/pallets/stateful-storage/src/benchmarking.rs b/pallets/stateful-storage/src/benchmarking.rs index 0925fcd338..4dc61dab8d 100644 --- a/pallets/stateful-storage/src/benchmarking.rs +++ b/pallets/stateful-storage/src/benchmarking.rs @@ -1,18 +1,28 @@ use super::*; use crate::{types::ItemAction, Pallet as StatefulStoragePallet}; -use codec::Encode; +use codec::{Decode, Encode}; use common_primitives::{ - schema::{ModelType, PayloadLocation, SchemaId}, + schema::{ModelType, PayloadLocation}, stateful_storage::{PageHash, PageId}, }; use frame_benchmarking::{benchmarks, whitelisted_caller}; use frame_support::assert_ok; use frame_system::RawOrigin; -use sp_core::bounded::BoundedVec; +use sp_core::{bounded::BoundedVec, crypto::KeyTypeId}; +use sp_runtime::RuntimeAppPublic; use stateful_child_tree::StatefulChildTree; +use test_common::*; -pub const ITEMIZED_SCHEMA: SchemaId = 100; // keep in sync with mock.rs. TODO: refactor -pub const PAGINATED_SCHEMA: SchemaId = 101; // keep in sync with mock.rs. TODO: refactor +pub const TEST_KEY_TYPE_ID: KeyTypeId = KeyTypeId(*b"test"); + +mod app_sr25519 { + use super::TEST_KEY_TYPE_ID; + use sp_core::sr25519; + use sp_runtime::app_crypto::app_crypto; + app_crypto!(sr25519, TEST_KEY_TYPE_ID); +} + +type SignerId = app_sr25519::Public; pub const NONEXISTENT_PAGE_HASH: PageHash = 0; fn itemized_actions_add( @@ -39,18 +49,28 @@ benchmarks! { apply_item_actions { let n in 1 .. T::MaxItemizedActionsCount::get() - 1; let s in 1 .. T::MaxItemizedBlobSizeBytes::get()- 1; + let p in 1 .. T::MaxItemizedPageSizeBytes::get()- 1; let provider_msa_id = 1u64; let delegator_msa_id = 2u64; - let schema_id = ITEMIZED_SCHEMA; + let schema_id = constants::ITEMIZED_SCHEMA; let caller: T::AccountId = whitelisted_caller(); + let payload = vec![0u8; s as usize]; + let num_of_items = p / (T::MaxItemizedPageSizeBytes::get() + 2); + let key = (schema_id,); T::SchemaBenchmarkHelper::set_schema_count(schema_id - 1); assert_ok!(create_schema::(PayloadLocation::Itemized)); assert_ok!(T::MsaBenchmarkHelper::add_key(provider_msa_id.into(), caller.clone())); assert_ok!(T::MsaBenchmarkHelper::set_delegation_relationship(provider_msa_id.into(), delegator_msa_id.into(), [schema_id].to_vec())); + for _ in 0..num_of_items { + let actions = itemized_actions_add::(1, T::MaxItemizedBlobSizeBytes::get() as usize); + let content_hash = StatefulChildTree::::try_read::<_, ItemizedPage::>(&delegator_msa_id, &key).unwrap().unwrap_or_default().get_hash(); + assert_ok!(StatefulStoragePallet::::apply_item_actions(RawOrigin::Signed(caller.clone()).into(), delegator_msa_id.into(), schema_id, content_hash, actions)); + } + let actions = itemized_actions_add::(n, s as usize); - }: _ (RawOrigin::Signed(caller), delegator_msa_id.into(), schema_id, actions, NONEXISTENT_PAGE_HASH) + }: _ (RawOrigin::Signed(caller), delegator_msa_id.into(), schema_id, NONEXISTENT_PAGE_HASH, actions) verify { let page_result = StatefulStoragePallet::::get_itemized_page(delegator_msa_id, schema_id); assert!(page_result.is_some()); @@ -62,7 +82,7 @@ benchmarks! { let provider_msa_id = 1u64; let delegator_msa_id = 2u64; let page_id: PageId = 1; - let schema_id = PAGINATED_SCHEMA; + let schema_id = constants::PAGINATED_SCHEMA; let caller: T::AccountId = whitelisted_caller(); let payload = vec![0u8; s as usize]; let schema_key = schema_id.encode().to_vec(); @@ -71,7 +91,7 @@ benchmarks! { assert_ok!(create_schema::(PayloadLocation::Paginated)); assert_ok!(T::MsaBenchmarkHelper::add_key(provider_msa_id.into(), caller.clone())); assert_ok!(T::MsaBenchmarkHelper::set_delegation_relationship(provider_msa_id.into(), delegator_msa_id.into(), [schema_id].to_vec())); - }: _(RawOrigin::Signed(caller), delegator_msa_id.into(), schema_id, page_id, NONEXISTENT_PAGE_HASH, payload) + }: _(RawOrigin::Signed(caller), delegator_msa_id.into(), schema_id, page_id, NONEXISTENT_PAGE_HASH, payload.try_into().unwrap()) verify { let page_result = StatefulStoragePallet::::get_paginated_page(delegator_msa_id, schema_id, page_id); assert!(page_result.is_some()); @@ -81,7 +101,7 @@ benchmarks! { delete_page { let provider_msa_id = 1u64; let delegator_msa_id = 2u64; - let schema_id = PAGINATED_SCHEMA; + let schema_id = constants::PAGINATED_SCHEMA; let page_id: PageId = 1; let caller: T::AccountId = whitelisted_caller(); let payload = vec![0u8; T::MaxPaginatedPageSizeBytes::get() as usize]; @@ -100,7 +120,116 @@ benchmarks! { assert!(page_result.is_none()); } + apply_item_actions_with_signature { + let n in 1 .. T::MaxItemizedActionsCount::get() - 1; + let s in 1 .. T::MaxItemizedBlobSizeBytes::get()- 1; + + let msa_id = 1u64; + let schema_id = constants::ITEMIZED_SCHEMA; + let caller: T::AccountId = whitelisted_caller(); + let payload = vec![0u8; s as usize]; + let key = (schema_id,); + let expiration = ::BlockNumber::from(10u32); + + let delegator_account_public = SignerId::generate_pair(Some(constants::BENCHMARK_SIGNATURE_ACCOUNT_SEED.as_bytes().to_vec())); + let delegator_account = T::AccountId::decode(&mut &delegator_account_public.encode()[..]).unwrap(); + let delegator_msa_id = constants::SIGNATURE_MSA_ID; + + T::SchemaBenchmarkHelper::set_schema_count(schema_id - 1); + assert_ok!(create_schema::(PayloadLocation::Itemized)); + assert_ok!(T::MsaBenchmarkHelper::add_key(delegator_msa_id.into(), delegator_account.clone())); + + let actions = itemized_actions_add::(n, s as usize); + let payload = ItemizedSignaturePayload { + actions, + target_hash: PageHash::default(), + msa_id: delegator_msa_id, + expiration, + schema_id, + }; + let encode_data_new_key_data = wrap_binary_data(payload.encode()); + let signature = delegator_account_public.sign(&encode_data_new_key_data).unwrap(); + }: _ (RawOrigin::Signed(caller), delegator_account.into(), MultiSignature::Sr25519(signature.into()), payload) + verify { + let page_result = StatefulStoragePallet::::get_itemized_page(delegator_msa_id, schema_id); + assert!(page_result.is_some()); + assert!(page_result.unwrap().data.len() > 0); + } + + upsert_page_with_signature { + let s in 1 .. T::MaxPaginatedPageSizeBytes::get(); + + let provider_msa_id = 1u64; + let delegator_msa_id = 2u64; + let page_id: PageId = 1; + let schema_id = constants::PAGINATED_SCHEMA; + let caller: T::AccountId = whitelisted_caller(); + let payload = vec![0u8; s as usize]; + let schema_key = schema_id.encode().to_vec(); + let expiration = ::BlockNumber::from(10u32); + + let delegator_account_public = SignerId::generate_pair(Some(constants::BENCHMARK_SIGNATURE_ACCOUNT_SEED.as_bytes().to_vec())); + let delegator_account = T::AccountId::decode(&mut &delegator_account_public.encode()[..]).unwrap(); + let delegator_msa_id = constants::SIGNATURE_MSA_ID; + + T::SchemaBenchmarkHelper::set_schema_count(schema_id - 1); + assert_ok!(create_schema::(PayloadLocation::Paginated)); + assert_ok!(T::MsaBenchmarkHelper::add_key(delegator_msa_id.into(), delegator_account.clone())); + + let payload = PaginatedUpsertSignaturePayload { + payload: BoundedVec::try_from(payload).unwrap(), + target_hash: PageHash::default(), + msa_id: delegator_msa_id, + expiration, + schema_id, + page_id, + }; + let encode_data_new_key_data = wrap_binary_data(payload.encode()); + let signature = delegator_account_public.sign(&encode_data_new_key_data).unwrap(); + }: _(RawOrigin::Signed(caller), delegator_account.into(), MultiSignature::Sr25519(signature.into()), payload) + verify { + let page_result = StatefulStoragePallet::::get_paginated_page(delegator_msa_id, schema_id, page_id); + assert!(page_result.is_some()); + assert!(page_result.unwrap().data.len() > 0); + } + + delete_page_with_signature { + let provider_msa_id = 1u64; + let delegator_msa_id = 2u64; + let schema_id = constants::PAGINATED_SCHEMA; + let page_id: PageId = 1; + let caller: T::AccountId = whitelisted_caller(); + let payload = vec![0u8; T::MaxPaginatedPageSizeBytes::get() as usize]; + let expiration = ::BlockNumber::from(10u32); + + let delegator_account_public = SignerId::generate_pair(Some(constants::BENCHMARK_SIGNATURE_ACCOUNT_SEED.as_bytes().to_vec())); + let delegator_account = T::AccountId::decode(&mut &delegator_account_public.encode()[..]).unwrap(); + let delegator_msa_id = constants::SIGNATURE_MSA_ID; + + T::SchemaBenchmarkHelper::set_schema_count(schema_id - 1); + assert_ok!(create_schema::(PayloadLocation::Paginated)); + assert_ok!(T::MsaBenchmarkHelper::add_key(delegator_msa_id.into(), delegator_account.clone())); + + let key = (schema_id, page_id); + StatefulChildTree::::write(&delegator_msa_id, &key, payload.clone()); + let content_hash = StatefulChildTree::::try_read::<_, PaginatedPage::>(&delegator_msa_id, &key).unwrap().unwrap().get_hash(); + + let payload = PaginatedDeleteSignaturePayload { + target_hash: content_hash, + msa_id: delegator_msa_id, + expiration, + schema_id, + page_id, + }; + let encode_data_new_key_data = wrap_binary_data(payload.encode()); + let signature = delegator_account_public.sign(&encode_data_new_key_data).unwrap(); + }: _(RawOrigin::Signed(caller), delegator_account.into(), MultiSignature::Sr25519(signature.into()), payload) + verify { + let page_result = StatefulStoragePallet::::get_paginated_page(delegator_msa_id, schema_id, page_id); + assert!(page_result.is_none()); + } + impl_benchmark_test_suite!(StatefulStoragePallet, - crate::mock::new_test_ext(), + crate::mock::new_test_ext_keystore(), crate::mock::Test); } diff --git a/pallets/stateful-storage/src/lib.rs b/pallets/stateful-storage/src/lib.rs index d5099e039c..e4873c8c7f 100644 --- a/pallets/stateful-storage/src/lib.rs +++ b/pallets/stateful-storage/src/lib.rs @@ -42,6 +42,9 @@ // missing_docs // )] +#[cfg(any(feature = "runtime-benchmarks", test))] +mod test_common; + #[cfg(test)] mod mock; @@ -65,20 +68,22 @@ use crate::{stateful_child_tree::StatefulChildTree, types::*}; use common_primitives::stateful_storage::PageId; use common_primitives::{ msa::{DelegatorId, MessageSourceId, MsaValidator, ProviderId, SchemaGrantValidator}, + node::Verify, schema::{PayloadLocation, SchemaId, SchemaProvider}, stateful_storage::{ ItemizedStoragePageResponse, ItemizedStorageResponse, PageHash, PaginatedStorageResponse, }, + utils::wrap_binary_data, }; use frame_support::{dispatch::DispatchResult, ensure, traits::Get}; pub use pallet::*; -use sp_runtime::DispatchError; +use sp_core::bounded::BoundedVec; +use sp_runtime::{traits::Convert, DispatchError, MultiSignature}; pub use weights::*; #[frame_support::pallet] pub mod pallet { use super::*; - use crate::{stateful_child_tree::StatefulChildTree, types::ItemAction}; use common_primitives::{ msa::{MessageSourceId, MsaLookup, MsaValidator, SchemaGrantValidator}, schema::{SchemaId, SchemaProvider}, @@ -86,6 +91,8 @@ pub mod pallet { }; use frame_support::pallet_prelude::*; use frame_system::pallet_prelude::*; + use sp_core::crypto::AccountId32; + use sp_runtime::{traits::Convert, MultiSignature}; #[pallet::config] pub trait Config: frame_system::Config { @@ -110,7 +117,7 @@ pub mod pallet { /// The maximum size of a page (in bytes) for a Paginated storage model #[pallet::constant] - type MaxPaginatedPageSizeBytes: Get; + type MaxPaginatedPageSizeBytes: Get + Default; /// The maximum size of a single item in an itemized storage model (in bytes) #[pallet::constant] @@ -134,6 +141,14 @@ pub mod pallet { /// Hasher to use for MultipartKey type KeyHasher: stateful_child_tree::MultipartKeyStorageHasher; + + /// AccountId truncated to 32 bytes + type ConvertIntoAccountId32: Convert; + + /// The number of blocks that we allow for a signed payload to be valid. This is mainly used + /// to make sure a signed payload would not be replayable. + #[pallet::constant] + type MortalityWindowSize: Get; } // Simple declaration of the `Pallet` type. It is placeholder we use to implement traits and @@ -173,33 +188,65 @@ pub mod pallet { /// Target page hash does not match current page hash StalePageState, + + /// Invalid Signature for payload + InvalidSignature, + + /// The submitted proof has expired; the current block is less the expiration block + ProofHasExpired, + + /// The submitted proof expiration block is too far in the future + ProofNotYetValid, } #[pallet::event] #[pallet::generate_deposit(pub(super) fn deposit_event)] pub enum Event { + /// An event for when an itemized storage is updated ItemizedPageUpdated { + /// message source id of storage owner msa_id: MessageSourceId, + /// schema related to the storage schema_id: SchemaId, + /// previous content hash before update prev_content_hash: PageHash, + /// current content hash after update curr_content_hash: PageHash, }, + + /// An event for when an itemized storage is deleted ItemizedPageDeleted { + /// message source id of storage owner msa_id: MessageSourceId, + /// schema related to the storage schema_id: SchemaId, + /// previous content hash before removal prev_content_hash: PageHash, }, + + /// An event for when an paginated storage is updated PaginatedPageUpdated { + /// message source id of storage owner msa_id: MessageSourceId, + /// schema related to the storage schema_id: SchemaId, + /// id of updated page page_id: PageId, + /// previous content hash before update prev_content_hash: PageHash, + /// current content hash after update curr_content_hash: PageHash, }, + + /// An event for when an paginated storage is deleted PaginatedPageDeleted { + /// message source id of storage owner msa_id: MessageSourceId, + /// schema related to the storage schema_id: SchemaId, + /// id of updated page page_id: PageId, + /// previous content hash before removal prev_content_hash: PageHash, }, } @@ -212,91 +259,21 @@ pub mod pallet { actions.iter().fold(0, |acc, a| acc + match a { ItemAction::Add { data } => data.len() as u32, _ => 0, - }) + }), + 0 ))] pub fn apply_item_actions( origin: OriginFor, #[pallet::compact] state_owner_msa_id: MessageSourceId, #[pallet::compact] schema_id: SchemaId, - actions: BoundedVec, #[pallet::compact] target_hash: PageHash, + actions: BoundedVec, ) -> DispatchResult { let provider_key = ensure_signed(origin)?; - ensure!( - actions.as_slice().iter().all(|a| match a { - ItemAction::Add { data } => - data.len() <= T::MaxItemizedBlobSizeBytes::get() as usize, - _ => true, - }), - Error::::ItemExceedsMaxBlobSizeBytes - ); - - Self::check_schema_and_grants( - provider_key, - state_owner_msa_id, - schema_id, - PayloadLocation::Itemized, - )?; - - let prev_content_hash: PageHash; - let key: ItemizedKey = (schema_id,); - let updated_page = - match StatefulChildTree::::try_read::<_, ItemizedPage>( - &state_owner_msa_id, - &key, - ) - .map_err(|_| Error::::CorruptedState)? - { - Some(p) => { - prev_content_hash = p.get_hash(); - p - }, - None => { - prev_content_hash = 0; - ItemizedPage::::default() - }, - }; - - ensure!(target_hash == prev_content_hash, Error::::StalePageState); - - let updated_page = - updated_page.apply_item_actions(&actions[..]).map_err(|e| match e { - PageError::ErrorParsing(err) => { - log::warn!( - "failed parsing Itemized msa={:?} schema_id={:?} {:?}", - state_owner_msa_id, - schema_id, - err - ); - Error::::CorruptedState - }, - _ => Error::::InvalidItemAction, - })?; - - match updated_page.is_empty() { - true => { - StatefulChildTree::::kill(&state_owner_msa_id, &key); - Self::deposit_event(Event::ItemizedPageDeleted { - msa_id: state_owner_msa_id, - schema_id, - prev_content_hash, - }); - }, - false => { - let curr_content_hash = updated_page.get_hash(); - StatefulChildTree::::write( - &state_owner_msa_id, - &key, - updated_page, - ); - Self::deposit_event(Event::ItemizedPageUpdated { - msa_id: state_owner_msa_id, - schema_id, - prev_content_hash, - curr_content_hash, - }); - }, - }; + Self::check_actions(&actions)?; + Self::check_schema(schema_id, PayloadLocation::Itemized)?; + Self::check_grants(provider_key, state_owner_msa_id, schema_id)?; + Self::modify_itemized(state_owner_msa_id, schema_id, target_hash, actions)?; Ok(()) } @@ -309,44 +286,22 @@ pub mod pallet { #[pallet::compact] schema_id: SchemaId, #[pallet::compact] page_id: PageId, #[pallet::compact] target_hash: PageHash, - payload: Vec, + payload: BoundedVec::MaxPaginatedPageSizeBytes>, ) -> DispatchResult { let provider_key = ensure_signed(origin)?; - let page = PaginatedPage::::try_from(payload) - .map_err(|_| Error::::PageExceedsMaxPageSizeBytes)?; ensure!( page_id as u32 <= T::MaxPaginatedPageId::get(), Error::::PageIdExceedsMaxAllowed ); - - Self::check_schema_and_grants( - provider_key, + Self::check_schema(schema_id, PayloadLocation::Paginated)?; + Self::check_grants(provider_key, state_owner_msa_id, schema_id)?; + Self::modify_paginated( state_owner_msa_id, schema_id, - PayloadLocation::Paginated, - )?; - - let keys: PaginatedKey = (schema_id, page_id); - - let existing_page: Option> = - StatefulChildTree::::try_read(&state_owner_msa_id, &keys) - .map_err(|_| Error::::CorruptedState)?; - - let prev_content_hash: PageHash = match existing_page { - Some(p) => p.get_hash(), - None => 0 as PageHash, - }; - ensure!(target_hash == prev_content_hash, Error::::StalePageState); - let curr_content_hash = page.get_hash(); - - StatefulChildTree::::write(&state_owner_msa_id, &keys, page); - Self::deposit_event(Event::PaginatedPageUpdated { - msa_id: state_owner_msa_id, - schema_id, page_id, - prev_content_hash, - curr_content_hash, - }); + target_hash, + PaginatedPage::::from(payload), + )?; Ok(()) } @@ -365,34 +320,106 @@ pub mod pallet { page_id as u32 <= T::MaxPaginatedPageId::get(), Error::::PageIdExceedsMaxAllowed ); - Self::check_schema_and_grants( - provider_key, - state_owner_msa_id, - schema_id, - PayloadLocation::Paginated, + Self::check_schema(schema_id, PayloadLocation::Paginated)?; + Self::check_grants(provider_key, state_owner_msa_id, schema_id)?; + Self::delete_paginated(state_owner_msa_id, schema_id, page_id, target_hash)?; + Ok(()) + } + + /// Applies the Add or Delete Actions on the requested Itemized page that requires signature + /// since the signature of delegator is checked there is no need for delegation validation + #[pallet::call_index(3)] + #[pallet::weight(T::WeightInfo::apply_item_actions_with_signature( payload.actions.len() as u32 , + payload.actions.iter().fold(0, |acc, a| acc + match a { + ItemAction::Add { data } => data.len() as u32, + _ => 0, + }) + ))] + pub fn apply_item_actions_with_signature( + origin: OriginFor, + delegator_key: T::AccountId, + proof: MultiSignature, + payload: ItemizedSignaturePayload, + ) -> DispatchResult { + ensure_signed(origin)?; + Self::check_actions(&payload.actions)?; + Self::check_payload_expiration( + frame_system::Pallet::::block_number(), + payload.expiration, + )?; + Self::check_signature(&proof, &delegator_key.clone(), payload.encode())?; + Self::check_msa(delegator_key, payload.msa_id)?; + Self::check_schema(payload.schema_id, PayloadLocation::Itemized)?; + Self::modify_itemized( + payload.msa_id, + payload.schema_id, + payload.target_hash, + payload.actions, )?; + Ok(()) + } + + /// Creates or updates an Paginated storage with new payload that requires signature + /// since the signature of delegator is checked there is no need for delegation validation + #[pallet::call_index(4)] + #[pallet::weight(T::WeightInfo::upsert_page_with_signature(payload.payload.len() as u32))] + pub fn upsert_page_with_signature( + origin: OriginFor, + delegator_key: T::AccountId, + proof: MultiSignature, + payload: PaginatedUpsertSignaturePayload, + ) -> DispatchResult { + ensure_signed(origin)?; + ensure!( + payload.page_id as u32 <= T::MaxPaginatedPageId::get(), + Error::::PageIdExceedsMaxAllowed + ); + Self::check_payload_expiration( + frame_system::Pallet::::block_number(), + payload.expiration, + )?; + Self::check_signature(&proof, &delegator_key.clone(), payload.encode())?; + Self::check_msa(delegator_key, payload.msa_id)?; + Self::check_schema(payload.schema_id, PayloadLocation::Paginated)?; + Self::modify_paginated( + payload.msa_id, + payload.schema_id, + payload.page_id, + payload.target_hash, + PaginatedPage::::from(payload.payload), + )?; + Ok(()) + } - let keys: PaginatedKey = (schema_id, page_id); - - let page: Option> = - StatefulChildTree::::try_read(&state_owner_msa_id, &keys) - .unwrap_or(None); - match page { - Some(page) => { - let prev_content_hash = page.get_hash(); - ensure!(target_hash == prev_content_hash, Error::::StalePageState); - - StatefulChildTree::::kill(&state_owner_msa_id, &keys); - Self::deposit_event(Event::PaginatedPageDeleted { - msa_id: state_owner_msa_id, - schema_id, - page_id, - prev_content_hash, - }); - Ok(()) - }, - None => Ok(()), - } + /// Deletes a Paginated storage that requires signature + /// since the signature of delegator is checked there is no need for delegation validation + #[pallet::call_index(5)] + #[pallet::weight(T::WeightInfo::delete_page_with_signature())] + pub fn delete_page_with_signature( + origin: OriginFor, + delegator_key: T::AccountId, + proof: MultiSignature, + payload: PaginatedDeleteSignaturePayload, + ) -> DispatchResult { + ensure_signed(origin)?; + ensure!( + payload.page_id as u32 <= T::MaxPaginatedPageId::get(), + Error::::PageIdExceedsMaxAllowed + ); + Self::check_payload_expiration( + frame_system::Pallet::::block_number(), + payload.expiration, + )?; + Self::check_signature(&proof, &delegator_key.clone(), payload.encode())?; + Self::check_msa(delegator_key, payload.msa_id)?; + Self::check_schema(payload.schema_id, PayloadLocation::Paginated)?; + Self::delete_paginated( + payload.msa_id, + payload.schema_id, + payload.page_id, + payload.target_hash, + )?; + Ok(()) } } } @@ -406,12 +433,7 @@ impl Pallet { msa_id: MessageSourceId, schema_id: SchemaId, ) -> Result, DispatchError> { - let schema = - T::SchemaProvider::get_schema_by_id(schema_id).ok_or(Error::::InvalidSchemaId)?; - ensure!( - schema.payload_location == PayloadLocation::Paginated, - Error::::SchemaPayloadLocationMismatch - ); + Self::check_schema(schema_id, PayloadLocation::Paginated)?; let prefix: PaginatedPrefixKey = (schema_id,); Ok(StatefulChildTree::::prefix_iterator::< PaginatedPage, @@ -430,30 +452,13 @@ impl Pallet { msa_id: MessageSourceId, schema_id: SchemaId, ) -> Result { - let schema = - T::SchemaProvider::get_schema_by_id(schema_id).ok_or(Error::::InvalidSchemaId)?; - ensure!( - schema.payload_location == PayloadLocation::Itemized, - Error::::SchemaPayloadLocationMismatch - ); + Self::check_schema(schema_id, PayloadLocation::Itemized)?; let key: ItemizedKey = (schema_id,); - let content_hash: PageHash; - let page = - match StatefulChildTree::::try_read::>( - &msa_id, &key, - ) - .map_err(|_| Error::::CorruptedState)? - { - Some(p) => { - content_hash = p.get_hash(); - p - }, - None => { - content_hash = 0; - ItemizedPage::::default() - }, - }; - + let page = StatefulChildTree::::try_read::>( + &msa_id, &key, + ) + .map_err(|_| Error::::CorruptedState)? + .unwrap_or_default(); let items: Vec = page .parse_as_itemized(false) .map_err(|_| Error::::CorruptedState)? @@ -461,23 +466,84 @@ impl Pallet { .iter() .map(|(key, v)| ItemizedStorageResponse::new(*key, v.to_vec())) .collect(); - Ok(ItemizedStoragePageResponse::new(msa_id, schema_id, content_hash, items)) + Ok(ItemizedStoragePageResponse::new(msa_id, schema_id, page.get_hash(), items)) } - fn check_schema_and_grants( - provider_key: T::AccountId, - state_owner_msa_id: MessageSourceId, + /// This function checks to ensure `payload_expire_block` is in a valid range + /// + /// # Errors + /// * [`Error::ProofHasExpired`] + /// * [`Error::ProofNotYetValid`] + /// + pub fn check_payload_expiration( + current_block: T::BlockNumber, + payload_expire_block: T::BlockNumber, + ) -> Result<(), DispatchError> { + ensure!(payload_expire_block > current_block, Error::::ProofHasExpired); + let max_supported_signature_block = Self::mortality_block_limit(current_block); + ensure!(payload_expire_block < max_supported_signature_block, Error::::ProofNotYetValid); + Ok(()) + } + + /// Verify the `signature` was signed by `signer` on `payload` by a wallet + /// Note the `wrap_binary_data` follows the Polkadot wallet pattern of wrapping with `` tags. + /// + /// # Errors + /// * [`Error::InvalidSignature`] + /// + pub fn check_signature( + signature: &MultiSignature, + signer: &T::AccountId, + payload: Vec, + ) -> DispatchResult { + let key = T::ConvertIntoAccountId32::convert((*signer).clone()); + let wrapped_payload = wrap_binary_data(payload); + + ensure!(signature.verify(&wrapped_payload[..], &key), Error::::InvalidSignature); + + Ok(()) + } + + /// The furthest in the future a mortality_block value is allowed + /// to be for current_block + /// This is calculated to be past the risk of a replay attack + fn mortality_block_limit(current_block: T::BlockNumber) -> T::BlockNumber { + current_block + T::BlockNumber::from(T::MortalityWindowSize::get()) + } + + /// Verifies the existence and payload location of the schema + /// + /// # Errors + /// * [`Error::InvalidSchemaId`] + /// * [`Error::SchemaPayloadLocationMismatch`] + /// + fn check_schema( schema_id: SchemaId, - payload_location: PayloadLocation, + expected_payload_location: PayloadLocation, ) -> DispatchResult { - let provider_msa_id = T::MsaInfoProvider::ensure_valid_msa_key(&provider_key) - .map_err(|_| Error::::InvalidMessageSourceAccount)?; let schema = T::SchemaProvider::get_schema_by_id(schema_id).ok_or(Error::::InvalidSchemaId)?; ensure!( - schema.payload_location == payload_location, + schema.payload_location == expected_payload_location, Error::::SchemaPayloadLocationMismatch ); + Ok(()) + } + + /// Verifies if the provider key has an Msa and if provider msa is different from state owner + /// msa it checks for active delegation for schema id + /// + /// # Errors + /// * [`Error::InvalidMessageSourceAccount`] + /// * [`Error::UnAuthorizedDelegate`] + /// + fn check_grants( + provider_key: T::AccountId, + state_owner_msa_id: MessageSourceId, + schema_id: SchemaId, + ) -> Result { + let provider_msa_id = T::MsaInfoProvider::ensure_valid_msa_key(&provider_key) + .map_err(|_| Error::::InvalidMessageSourceAccount)?; // if provider and owner are the same no delegation is needed if provider_msa_id != state_owner_msa_id { @@ -491,6 +557,146 @@ impl Pallet { .map_err(|_| Error::::UnAuthorizedDelegate)?; } + Ok(provider_msa_id) + } + + /// Verifies if the key has an Msa and if it matches with expected one + /// + /// # Errors + /// * [`Error::InvalidMessageSourceAccount`] + /// + fn check_msa(key: T::AccountId, expected_msa_id: MessageSourceId) -> DispatchResult { + let state_owner_msa_id = T::MsaInfoProvider::ensure_valid_msa_key(&key) + .map_err(|_| Error::::InvalidMessageSourceAccount)?; + ensure!(state_owner_msa_id == expected_msa_id, Error::::InvalidMessageSourceAccount); + Ok(()) + } + + /// Verifies the actions size + /// + /// # Errors + /// * [`Error::ItemExceedsMaxBlobSizeBytes`] + /// + fn check_actions( + actions: &BoundedVec, + ) -> DispatchResult { + ensure!( + actions.iter().all(|a| match a { + ItemAction::Add { data } => + data.len() <= T::MaxItemizedBlobSizeBytes::get() as usize, + _ => true, + }), + Error::::ItemExceedsMaxBlobSizeBytes + ); + Ok(()) + } + + /// Modifies an itemized storage by applying provided actions and deposit events + fn modify_itemized( + state_owner_msa_id: MessageSourceId, + schema_id: SchemaId, + target_hash: PageHash, + actions: BoundedVec, + ) -> DispatchResult { + let key: ItemizedKey = (schema_id,); + let existing_page = StatefulChildTree::::try_read::<_, ItemizedPage>( + &state_owner_msa_id, + &key, + ) + .map_err(|_| Error::::CorruptedState)? + .unwrap_or_default(); + + let prev_content_hash = existing_page.get_hash(); + ensure!(target_hash == prev_content_hash, Error::::StalePageState); + + let updated_page = existing_page.apply_item_actions(&actions[..]).map_err(|e| match e { + PageError::ErrorParsing(err) => { + log::warn!( + "failed parsing Itemized msa={:?} schema_id={:?} {:?}", + state_owner_msa_id, + schema_id, + err + ); + Error::::CorruptedState + }, + _ => Error::::InvalidItemAction, + })?; + + match updated_page.is_empty() { + true => { + StatefulChildTree::::kill(&state_owner_msa_id, &key); + Self::deposit_event(Event::ItemizedPageDeleted { + msa_id: state_owner_msa_id, + schema_id, + prev_content_hash, + }); + }, + false => { + StatefulChildTree::::write(&state_owner_msa_id, &key, &updated_page); + Self::deposit_event(Event::ItemizedPageUpdated { + msa_id: state_owner_msa_id, + schema_id, + curr_content_hash: updated_page.get_hash(), + prev_content_hash, + }); + }, + }; + Ok(()) + } + + /// Modifies an paginated storage by provided new page and deposit events + fn modify_paginated( + state_owner_msa_id: MessageSourceId, + schema_id: SchemaId, + page_id: PageId, + target_hash: PageHash, + new_page: PaginatedPage, + ) -> DispatchResult { + let keys: PaginatedKey = (schema_id, page_id); + let existing_page: PaginatedPage = + StatefulChildTree::::try_read(&state_owner_msa_id, &keys) + .map_err(|_| Error::::CorruptedState)? + .unwrap_or_default(); + + let prev_content_hash: PageHash = existing_page.get_hash(); + ensure!(target_hash == prev_content_hash, Error::::StalePageState); + + StatefulChildTree::::write(&state_owner_msa_id, &keys, &new_page); + Self::deposit_event(Event::PaginatedPageUpdated { + msa_id: state_owner_msa_id, + schema_id, + page_id, + curr_content_hash: new_page.get_hash(), + prev_content_hash, + }); + Ok(()) + } + + /// Deletes an paginated storage and deposit events + fn delete_paginated( + state_owner_msa_id: MessageSourceId, + schema_id: SchemaId, + page_id: PageId, + target_hash: PageHash, + ) -> DispatchResult { + let keys: PaginatedKey = (schema_id, page_id); + if let Some(existing_page) = StatefulChildTree::::try_read::< + _, + PaginatedPage, + >(&state_owner_msa_id, &keys) + .map_err(|_| Error::::CorruptedState)? + { + let prev_content_hash: PageHash = existing_page.get_hash(); + ensure!(target_hash == prev_content_hash, Error::::StalePageState); + StatefulChildTree::::kill(&state_owner_msa_id, &keys); + Self::deposit_event(Event::PaginatedPageDeleted { + msa_id: state_owner_msa_id, + schema_id, + page_id, + prev_content_hash, + }); + } + Ok(()) } diff --git a/pallets/stateful-storage/src/mock.rs b/pallets/stateful-storage/src/mock.rs index 14276209ff..13d9ca2813 100644 --- a/pallets/stateful-storage/src/mock.rs +++ b/pallets/stateful-storage/src/mock.rs @@ -1,10 +1,16 @@ use crate as pallet_stateful_storage; +use codec::Decode; +use crate::test_common::{ + constants, + constants::{BENCHMARK_SIGNATURE_ACCOUNT_SEED, SIGNATURE_MSA_ID}, +}; use common_primitives::{ msa::{ Delegation, DelegationValidator, DelegatorId, MessageSourceId, MsaLookup, MsaValidator, ProviderId, ProviderLookup, SchemaGrantValidator, }, + node::AccountId, schema::{ModelType, PayloadLocation, SchemaId, SchemaProvider, SchemaResponse}, stateful_storage::PageId, }; @@ -15,16 +21,22 @@ use frame_support::{ Twox128, }; use frame_system as system; -use sp_core::H256; +use sp_core::{crypto::AccountId32, sr25519, ByteArray, Pair, H256}; use sp_runtime::{ testing::Header, - traits::{BlakeTwo256, IdentityLookup}, + traits::{BlakeTwo256, ConvertInto, IdentityLookup}, DispatchError, }; type UncheckedExtrinsic = frame_system::mocking::MockUncheckedExtrinsic; type Block = frame_system::mocking::MockBlock; +pub const INVALID_SCHEMA_ID: SchemaId = SchemaId::MAX; +pub const UNDELEGATED_PAGINATED_SCHEMA: SchemaId = 102; +pub const UNDELEGATED_ITEMIZED_SCHEMA: SchemaId = 103; +pub const INVALID_MSA_ID: MessageSourceId = 100; +pub const TEST_ACCOUNT_SEED: [u8; 32] = [0; 32]; + // Configure a mock runtime to test the pallet. frame_support::construct_runtime!( pub enum Test where @@ -48,7 +60,7 @@ impl system::Config for Test { type BlockNumber = u64; type Hash = H256; type Hashing = BlakeTwo256; - type AccountId = u64; + type AccountId = AccountId; type Lookup = IdentityLookup; type Header = Header; type RuntimeEvent = RuntimeEvent; @@ -72,14 +84,9 @@ parameter_types! { pub const MaxItemizedActionsCount: u32 = 6; pub const MaxSchemaGrantsPerDelegation: u32 = 30; + pub const StatefulMortalityWindowSize: u32 = 10; } -pub const INVALID_SCHEMA_ID: SchemaId = SchemaId::MAX; -pub const ITEMIZED_SCHEMA: SchemaId = 100; // keep in sync with benchmarking.rs. TODO: refactor -pub const PAGINATED_SCHEMA: SchemaId = 101; // keep in sync with benchmarking.rs. TODO: refactor -pub const UNDELEGATED_PAGINATED_SCHEMA: SchemaId = 102; -pub const UNDELEGATED_ITEMIZED_SCHEMA: SchemaId = 103; - impl Default for MaxItemizedPageSizeBytes { fn default() -> Self { Self @@ -96,33 +103,45 @@ pub struct MsaInfoHandler; pub struct DelegationInfoHandler; pub struct SchemaGrantValidationHandler; impl MsaLookup for MsaInfoHandler { - type AccountId = u64; + type AccountId = AccountId; - fn get_msa_id(key: &Self::AccountId) -> Option { - if *key == 1000 { + fn get_msa_id(key: &AccountId) -> Option { + if *key == test_public(INVALID_MSA_ID) || + *key == get_invalid_msa_signature_account().public().into() + { return None } - if *key == 2000 { - return Some(2000 as MessageSourceId) + + if *key == get_signature_benchmarks_public_account().into() || + *key == get_signature_account().1.public().into() + { + return Some(constants::SIGNATURE_MSA_ID) } - Some(get_msa_from_account(*key) as MessageSourceId) + + Some(MessageSourceId::decode(&mut key.as_slice()).unwrap()) } } impl MsaValidator for MsaInfoHandler { - type AccountId = u64; + type AccountId = AccountId; fn ensure_valid_msa_key(key: &Self::AccountId) -> Result { - if *key == 1000 { + if *key == test_public(INVALID_MSA_ID) || + *key == get_invalid_msa_signature_account().public().into() + { return Err(DispatchError::Other("some error")) } - if *key == 2000 { - return Ok(2000) + + if *key == get_signature_benchmarks_public_account().into() || + *key == get_signature_account().1.public().into() + { + return Ok(constants::SIGNATURE_MSA_ID) } - Ok(get_msa_from_account(*key)) + Ok(MessageSourceId::decode(&mut key.as_slice()).unwrap()) } } + impl ProviderLookup for DelegationInfoHandler { type BlockNumber = u64; type MaxSchemaGrantsPerDelegation = MaxSchemaGrantsPerDelegation; @@ -181,14 +200,14 @@ impl SchemaProvider for SchemaHandler { // For testing/benchmarking. Zero value returns None, Odd for Itemized, Even for Paginated fn get_schema_by_id(schema_id: SchemaId) -> Option { match schema_id { - ITEMIZED_SCHEMA | UNDELEGATED_ITEMIZED_SCHEMA => Some(SchemaResponse { + constants::ITEMIZED_SCHEMA | UNDELEGATED_ITEMIZED_SCHEMA => Some(SchemaResponse { schema_id, model: r#"schema"#.to_string().as_bytes().to_vec(), model_type: ModelType::AvroBinary, payload_location: PayloadLocation::Itemized, }), - PAGINATED_SCHEMA | UNDELEGATED_PAGINATED_SCHEMA => Some(SchemaResponse { + constants::PAGINATED_SCHEMA | UNDELEGATED_PAGINATED_SCHEMA => Some(SchemaResponse { schema_id, model: r#"schema"#.to_string().as_bytes().to_vec(), model_type: ModelType::AvroBinary, @@ -334,6 +353,10 @@ impl pallet_stateful_storage::Config for Test { #[cfg(feature = "runtime-benchmarks")] type SchemaBenchmarkHelper = (); type KeyHasher = Twox128; + /// The conversion to a 32 byte AccountId + type ConvertIntoAccountId32 = ConvertInto; + /// The number of blocks per virtual bucket + type MortalityWindowSize = StatefulMortalityWindowSize; } pub fn new_test_ext() -> sp_io::TestExternalities { @@ -343,6 +366,32 @@ pub fn new_test_ext() -> sp_io::TestExternalities { ext } -pub fn get_msa_from_account(account_id: u64) -> u64 { - account_id + 100 +pub fn get_signature_account() -> (MessageSourceId, sr25519::Pair) { + (SIGNATURE_MSA_ID, sr25519::Pair::from_seed_slice(TEST_ACCOUNT_SEED.as_slice()).unwrap()) +} + +pub fn get_invalid_msa_signature_account() -> sr25519::Pair { + sr25519::Pair::from_seed_slice([1; 32].as_slice()).unwrap() +} + +fn get_signature_benchmarks_public_account() -> sr25519::Public { + sr25519::Pair::from_string(BENCHMARK_SIGNATURE_ACCOUNT_SEED, None) + .unwrap() + .public() +} + +pub fn test_public(n: MessageSourceId) -> AccountId32 { + AccountId32::new([n as u8; 32]) +} + +#[cfg(feature = "runtime-benchmarks")] +pub fn new_test_ext_keystore() -> sp_io::TestExternalities { + use sp_keystore::{testing::KeyStore, KeystoreExt, SyncCryptoStorePtr}; + use sp_std::sync::Arc; + + let t = frame_system::GenesisConfig::default().build_storage::().unwrap(); + let mut ext = sp_io::TestExternalities::new(t); + ext.register_extension(KeystoreExt(Arc::new(KeyStore::new()) as SyncCryptoStorePtr)); + + ext } diff --git a/pallets/stateful-storage/src/test_common.rs b/pallets/stateful-storage/src/test_common.rs new file mode 100644 index 0000000000..adcef89092 --- /dev/null +++ b/pallets/stateful-storage/src/test_common.rs @@ -0,0 +1,17 @@ +use common_primitives::{msa::MessageSourceId, schema::SchemaId}; + +/// +/// Constants used both in benchmarks and tests +/// +pub mod constants { + use super::*; + /// itemized schema id + pub const ITEMIZED_SCHEMA: SchemaId = 100; + /// paginated schema id + pub const PAGINATED_SCHEMA: SchemaId = 101; + /// Is used in benchmarks adn mocks to sign and verify a payload + pub const BENCHMARK_SIGNATURE_ACCOUNT_SEED: &str = + "replace rhythm attend tank sister accuse ancient piece tornado benefit rubber horror"; + /// Account mentioned above maps to the following msa id + pub const SIGNATURE_MSA_ID: MessageSourceId = 105; +} diff --git a/pallets/stateful-storage/src/tests.rs b/pallets/stateful-storage/src/tests.rs index 213fef8ae1..156872cc44 100644 --- a/pallets/stateful-storage/src/tests.rs +++ b/pallets/stateful-storage/src/tests.rs @@ -1,15 +1,20 @@ use super::{mock::*, Event as StatefulEvent}; -use crate::{pallet, stateful_child_tree::StatefulChildTree, types::*, Config, Error}; +use crate::{ + pallet, stateful_child_tree::StatefulChildTree, test_common::constants::*, types::*, Config, + Error, +}; use codec::{Decode, Encode, MaxEncodedLen}; use common_primitives::{ schema::{ModelType, PayloadLocation, SchemaId}, stateful_storage::{PageHash, PageId}, + utils::wrap_binary_data, }; -use frame_support::{assert_err, assert_ok, BoundedVec}; +use frame_support::{assert_err, assert_ok, assert_storage_noop, BoundedVec}; #[allow(unused_imports)] use pretty_assertions::{assert_eq, assert_ne, assert_str_eq}; use scale_info::TypeInfo; -use sp_core::{ConstU32, Get}; +use sp_core::{sr25519, ConstU32, Get, Pair}; +use sp_runtime::MultiSignature; use sp_std::{collections::btree_set::BTreeSet, hash::Hasher}; use twox_hash::XxHash32; @@ -52,49 +57,20 @@ struct TestStruct { pub number: u64, } -#[test] -fn upsert_page_too_large_errors() { - new_test_ext().execute_with(|| { - // setup - let caller_1 = 5; - let msa_id = 1; - let schema_id = 1; - let page_id = 0; - let payload = - vec![ - 1; - TryInto::::try_into(::MaxPaginatedPageSizeBytes::get()) - .unwrap() + 1 - ]; - - assert_err!( - StatefulStoragePallet::upsert_page( - RuntimeOrigin::signed(caller_1), - msa_id, - schema_id, - page_id, - hash_payload(&payload), - payload - ), - Error::::PageExceedsMaxPageSizeBytes - ) - }) -} - #[test] fn upsert_page_id_out_of_bounds_errors() { new_test_ext().execute_with(|| { // setup - let caller_1 = 5; let msa_id = 1; + let caller_1 = test_public(msa_id); let schema_id = 1; let page_id = ::MaxPaginatedPageId::get() + 1; - let payload = vec![1; 1]; + let payload = generate_payload_bytes::(Some(100)); assert_err!( StatefulStoragePallet::upsert_page( RuntimeOrigin::signed(caller_1), - msa_id, + msa_id.into(), schema_id, page_id, hash_payload(&payload), @@ -109,16 +85,16 @@ fn upsert_page_id_out_of_bounds_errors() { fn upsert_page_with_invalid_msa_errors() { new_test_ext().execute_with(|| { // setup - let caller_1 = 1000; // hard-coded in mocks to return None for MSA - let msa_id = 1; - let schema_id = 1; + let msa_id = INVALID_MSA_ID; + let caller_1 = test_public(msa_id); // hard-coded in mocks to return None for MSA + let schema_id = PAGINATED_SCHEMA; let page_id = 1; - let payload = vec![1; 1]; + let payload = generate_payload_bytes::(Some(100)); assert_err!( StatefulStoragePallet::upsert_page( RuntimeOrigin::signed(caller_1), - msa_id, + msa_id.into(), schema_id, page_id, hash_payload(&payload), @@ -133,16 +109,16 @@ fn upsert_page_with_invalid_msa_errors() { fn upsert_page_with_invalid_schema_id_errors() { new_test_ext().execute_with(|| { // setup - let caller_1 = 1; let msa_id = 1; + let caller_1 = test_public(msa_id); let schema_id = INVALID_SCHEMA_ID; let page_id = 1; - let payload = vec![1; 1]; + let payload = generate_payload_bytes::(Some(100)); assert_err!( StatefulStoragePallet::upsert_page( RuntimeOrigin::signed(caller_1), - msa_id, + msa_id.into(), schema_id, page_id, hash_payload(&payload), @@ -157,16 +133,16 @@ fn upsert_page_with_invalid_schema_id_errors() { fn upsert_page_with_invalid_schema_payload_location_errors() { new_test_ext().execute_with(|| { // setup - let caller_1 = 1; let msa_id = 1; + let caller_1 = test_public(msa_id); let schema_id = ITEMIZED_SCHEMA; let page_id = 1; - let payload = vec![1; 1]; + let payload = generate_payload_bytes::(Some(100)); assert_err!( StatefulStoragePallet::upsert_page( RuntimeOrigin::signed(caller_1), - msa_id, + msa_id.into(), schema_id, page_id, hash_payload(&payload), @@ -181,11 +157,11 @@ fn upsert_page_with_invalid_schema_payload_location_errors() { fn upsert_page_with_no_delegation_errors() { new_test_ext().execute_with(|| { // setup - let caller_1 = 1; - let msa_id = 1; + let caller_1 = test_public(1); + let msa_id = 2; let schema_id = UNDELEGATED_PAGINATED_SCHEMA; let page_id = 1; - let payload = vec![1; 1]; + let payload = generate_payload_bytes::(Some(100)); assert_err!( StatefulStoragePallet::upsert_page( @@ -193,7 +169,7 @@ fn upsert_page_with_no_delegation_errors() { msa_id, schema_id, page_id, - hash_payload(&payload), + PageHash::default(), payload ), Error::::UnAuthorizedDelegate @@ -205,16 +181,16 @@ fn upsert_page_with_no_delegation_errors() { fn upsert_new_page_with_bad_state_hash_errors() { new_test_ext().execute_with(|| { // setup - let caller_1 = 1; let msa_id = 1; + let caller_1 = test_public(msa_id); let schema_id = PAGINATED_SCHEMA; let page_id = 1; - let payload = vec![1; 1]; + let payload = generate_payload_bytes::(Some(100)); assert_err!( StatefulStoragePallet::upsert_page( RuntimeOrigin::signed(caller_1), - msa_id, + msa_id.into(), schema_id, page_id, hash_payload(&payload), @@ -229,11 +205,11 @@ fn upsert_new_page_with_bad_state_hash_errors() { fn upsert_existing_page_with_bad_state_hash_errors() { new_test_ext().execute_with(|| { // setup - let caller_1 = 1; let msa_id = 1; + let caller_1 = test_public(msa_id); let schema_id = PAGINATED_SCHEMA; let page_id = 1; - let payload = vec![1; 1]; + let payload = generate_payload_bytes::(Some(100)); let key = (schema_id, page_id); ::write(&msa_id, &key, &payload); @@ -256,8 +232,8 @@ fn upsert_existing_page_with_bad_state_hash_errors() { fn upsert_new_page_succeeds() { new_test_ext().execute_with(|| { // setup - let caller_1 = 1; let msa_id = 1; + let caller_1 = test_public(msa_id); let schema_id = PAGINATED_SCHEMA; let page_id = 1; let payload = generate_payload_bytes::(Some(100)); @@ -283,8 +259,8 @@ fn upsert_new_page_succeeds() { fn upsert_existing_page_modifies_page() { new_test_ext().execute_with(|| { // setup - let caller_1 = 1; - let msa_id = 2; + let msa_id = 1; + let caller_1 = test_public(msa_id); let schema_id: SchemaId = PAGINATED_SCHEMA; let page_id: PageId = 1; let old_content = generate_payload_bytes(Some(200)); @@ -316,8 +292,8 @@ fn upsert_existing_page_modifies_page() { fn delete_page_id_out_of_bounds_errors() { new_test_ext().execute_with(|| { // setup - let caller_1 = 1; - let msa_id = 2; + let msa_id = 1; + let caller_1 = test_public(msa_id); let schema_id = PAGINATED_SCHEMA; let page_id = ::MaxPaginatedPageId::get() + 1; @@ -338,9 +314,9 @@ fn delete_page_id_out_of_bounds_errors() { fn delete_page_with_invalid_msa_errors() { new_test_ext().execute_with(|| { // setup - let caller_1 = 1000; // hard-coded in mocks to return None for MSA + let caller_1 = test_public(INVALID_MSA_ID); // hard-coded in mocks to return None for MSA let msa_id = 1; - let schema_id = 1; + let schema_id = PAGINATED_SCHEMA; let page_id = 1; assert_err!( @@ -360,8 +336,8 @@ fn delete_page_with_invalid_msa_errors() { fn delete_page_with_invalid_schema_id_errors() { new_test_ext().execute_with(|| { // setup - let caller_1 = 1; let msa_id = 1; + let caller_1 = test_public(1); let schema_id = INVALID_SCHEMA_ID; let page_id = 1; @@ -382,8 +358,8 @@ fn delete_page_with_invalid_schema_id_errors() { fn delete_page_with_invalid_schema_payload_location_errors() { new_test_ext().execute_with(|| { // setup - let caller_1 = 1; let msa_id = 1; + let caller_1 = test_public(msa_id); let schema_id = ITEMIZED_SCHEMA; let page_id = 1; @@ -404,8 +380,8 @@ fn delete_page_with_invalid_schema_payload_location_errors() { fn delete_page_with_no_delegation_errors() { new_test_ext().execute_with(|| { // setup - let caller_1 = 1; let msa_id = 1; + let caller_1 = test_public(2); let schema_id = UNDELEGATED_PAGINATED_SCHEMA; let page_id = 1; @@ -426,8 +402,8 @@ fn delete_page_with_no_delegation_errors() { fn delete_nonexistent_page_succeeds_noop() { new_test_ext().execute_with(|| { // setup - let caller_1 = 1; let msa_id = 1; + let caller_1 = test_public(msa_id); let schema_id = PAGINATED_SCHEMA; let page_id = 10; @@ -445,8 +421,8 @@ fn delete_nonexistent_page_succeeds_noop() { fn delete_existing_page_with_bad_hash_errors() { new_test_ext().execute_with(|| { // setup - let caller_1 = 1; let msa_id = 1; + let caller_1 = test_public(msa_id); let schema_id = PAGINATED_SCHEMA; let page_id = 11; let payload = generate_payload_bytes::(None); @@ -472,16 +448,22 @@ fn delete_existing_page_with_bad_hash_errors() { fn delete_existing_page_succeeds() { new_test_ext().execute_with(|| { // setup - let caller_1 = 1; let msa_id = 1; + let caller_1 = test_public(msa_id); let schema_id = PAGINATED_SCHEMA; let page_id = 11; let payload = generate_payload_bytes::(None); - let page: PaginatedPage = payload.into(); + let page: PaginatedPage = payload.clone().into(); let page_hash = page.get_hash(); - let keys = (schema_id, page_id); - ::write::<_, Vec>(&msa_id, &keys, page.data.into()); + assert_ok!(StatefulStoragePallet::upsert_page( + RuntimeOrigin::signed(caller_1.clone()), + msa_id, + schema_id, + page_id, + NONEXISTENT_PAGE_HASH, + payload.into(), + )); assert_ok!(StatefulStoragePallet::delete_page( RuntimeOrigin::signed(caller_1), @@ -491,6 +473,7 @@ fn delete_existing_page_succeeds() { page_hash )); + let keys = (schema_id, page_id); let page: Option> = ::try_read(&msa_id, &keys).unwrap(); assert_eq!(page, None); @@ -729,8 +712,8 @@ fn child_tree_iterator() { fn apply_item_actions_with_add_item_action_bigger_than_expected_should_fail() { new_test_ext().execute_with(|| { // arrange - let caller_1 = 1; let msa_id = 1; + let caller_1 = test_public(msa_id); let schema_id = ITEMIZED_SCHEMA; let payload = vec![1; (::MaxItemizedBlobSizeBytes::get() + 1).try_into().unwrap()]; @@ -742,8 +725,8 @@ fn apply_item_actions_with_add_item_action_bigger_than_expected_should_fail() { RuntimeOrigin::signed(caller_1), msa_id, schema_id, - BoundedVec::try_from(actions).unwrap(), NONEXISTENT_PAGE_HASH, + BoundedVec::try_from(actions).unwrap(), ), Error::::ItemExceedsMaxBlobSizeBytes ) @@ -754,8 +737,8 @@ fn apply_item_actions_with_add_item_action_bigger_than_expected_should_fail() { fn apply_item_actions_with_invalid_msa_should_fail() { new_test_ext().execute_with(|| { // arrange - let caller_1 = 1000; // hard-coded in mocks to return None for MSA let msa_id = 1; + let caller_1 = test_public(INVALID_MSA_ID); // hard-coded in mocks to return None for MSA let schema_id = ITEMIZED_SCHEMA; let payload = vec![1; 5]; let actions = vec![ItemAction::Add { data: payload }]; @@ -766,8 +749,8 @@ fn apply_item_actions_with_invalid_msa_should_fail() { RuntimeOrigin::signed(caller_1), msa_id, schema_id, + NONEXISTENT_PAGE_HASH, BoundedVec::try_from(actions).unwrap(), - NONEXISTENT_PAGE_HASH ), Error::::InvalidMessageSourceAccount ) @@ -778,8 +761,8 @@ fn apply_item_actions_with_invalid_msa_should_fail() { fn apply_item_actions_with_invalid_schema_id_should_fail() { new_test_ext().execute_with(|| { // arrange - let caller_1 = 1; let msa_id = 1; + let caller_1 = test_public(msa_id); let schema_id = INVALID_SCHEMA_ID; let payload = vec![1; 5]; let actions = vec![ItemAction::Add { data: payload }]; @@ -790,8 +773,8 @@ fn apply_item_actions_with_invalid_schema_id_should_fail() { RuntimeOrigin::signed(caller_1), msa_id, schema_id, + NONEXISTENT_PAGE_HASH, BoundedVec::try_from(actions).unwrap(), - NONEXISTENT_PAGE_HASH ), Error::::InvalidSchemaId ) @@ -802,8 +785,8 @@ fn apply_item_actions_with_invalid_schema_id_should_fail() { fn apply_item_actions_with_invalid_schema_location_should_fail() { new_test_ext().execute_with(|| { // arrange - let caller_1 = 1; let msa_id = 1; + let caller_1 = test_public(msa_id); let schema_id = PAGINATED_SCHEMA; let payload = vec![1; 5]; let actions = vec![ItemAction::Add { data: payload }]; @@ -814,8 +797,8 @@ fn apply_item_actions_with_invalid_schema_location_should_fail() { RuntimeOrigin::signed(caller_1), msa_id, schema_id, + NONEXISTENT_PAGE_HASH, BoundedVec::try_from(actions).unwrap(), - NONEXISTENT_PAGE_HASH ), Error::::SchemaPayloadLocationMismatch ) @@ -826,8 +809,8 @@ fn apply_item_actions_with_invalid_schema_location_should_fail() { fn apply_item_actions_with_no_delegation_and_different_caller_from_owner_should_fail() { new_test_ext().execute_with(|| { // arrange - let caller_1 = 1; let msa_id = 1; + let caller_1 = test_public(2); let schema_id = UNDELEGATED_ITEMIZED_SCHEMA; let payload = vec![1; 5]; let actions = vec![ItemAction::Add { data: payload }]; @@ -838,8 +821,8 @@ fn apply_item_actions_with_no_delegation_and_different_caller_from_owner_should_ RuntimeOrigin::signed(caller_1), msa_id, schema_id, + NONEXISTENT_PAGE_HASH, BoundedVec::try_from(actions).unwrap(), - NONEXISTENT_PAGE_HASH ), Error::::UnAuthorizedDelegate ) @@ -850,8 +833,8 @@ fn apply_item_actions_with_no_delegation_and_different_caller_from_owner_should_ fn apply_item_actions_with_corrupted_state_should_fail() { new_test_ext().execute_with(|| { // arrange - let caller_1 = 1; let msa_id = 1; + let caller_1 = test_public(msa_id); let schema_id = ITEMIZED_SCHEMA; let payload = vec![1; 5]; let actions1 = vec![ItemAction::Add { data: payload.clone() }]; @@ -871,8 +854,8 @@ fn apply_item_actions_with_corrupted_state_should_fail() { RuntimeOrigin::signed(caller_1), msa_id, schema_id, + previous_hash, BoundedVec::try_from(actions1).unwrap(), - previous_hash ), Error::::CorruptedState ) @@ -883,8 +866,8 @@ fn apply_item_actions_with_corrupted_state_should_fail() { fn apply_item_actions_initial_state_with_stale_hash_should_fail() { new_test_ext().execute_with(|| { // arrange - let caller_1 = 1; let msa_id = 1; + let caller_1 = test_public(msa_id); let schema_id = ITEMIZED_SCHEMA; let payload = vec![1; 5]; let actions1 = vec![ItemAction::Add { data: payload.clone() }]; @@ -895,8 +878,8 @@ fn apply_item_actions_initial_state_with_stale_hash_should_fail() { RuntimeOrigin::signed(caller_1), msa_id, schema_id, - BoundedVec::try_from(actions1).unwrap(), 1u32, // any non-zero value + BoundedVec::try_from(actions1).unwrap(), ), Error::::StalePageState ) @@ -907,8 +890,8 @@ fn apply_item_actions_initial_state_with_stale_hash_should_fail() { fn apply_item_actions_existing_page_with_stale_hash_should_fail() { new_test_ext().execute_with(|| { // arrange - let caller_1 = 1; let msa_id = 1; + let caller_1 = test_public(msa_id); let schema_id = ITEMIZED_SCHEMA; let payload = vec![1; 5]; let actions1 = vec![ItemAction::Add { data: payload.clone() }]; @@ -925,8 +908,8 @@ fn apply_item_actions_existing_page_with_stale_hash_should_fail() { RuntimeOrigin::signed(caller_1), msa_id, schema_id, - BoundedVec::try_from(actions1).unwrap(), page_hash, + BoundedVec::try_from(actions1).unwrap(), ), Error::::StalePageState ) @@ -937,8 +920,8 @@ fn apply_item_actions_existing_page_with_stale_hash_should_fail() { fn apply_item_actions_initial_state_with_valid_input_should_update_storage() { new_test_ext().execute_with(|| { // arrange - let caller_1 = 1; let msa_id = 1; + let caller_1 = test_public(msa_id); let schema_id = ITEMIZED_SCHEMA; let payload = vec![1; 5]; let prev_content_hash: PageHash = 0; @@ -949,8 +932,8 @@ fn apply_item_actions_initial_state_with_valid_input_should_update_storage() { RuntimeOrigin::signed(caller_1), msa_id, schema_id, + prev_content_hash, BoundedVec::try_from(actions).unwrap(), - prev_content_hash )); // assert @@ -975,8 +958,8 @@ fn apply_item_actions_initial_state_with_valid_input_should_update_storage() { fn apply_item_actions_existing_page_with_valid_input_should_update_storage() { new_test_ext().execute_with(|| { // arrange - let caller_1 = 1; let msa_id = 1; + let caller_1 = test_public(msa_id); let schema_id = ITEMIZED_SCHEMA; let payload = vec![1; 5]; let actions = vec![ItemAction::Add { data: payload }]; @@ -991,8 +974,8 @@ fn apply_item_actions_existing_page_with_valid_input_should_update_storage() { RuntimeOrigin::signed(caller_1), msa_id, schema_id, + prev_content_hash, BoundedVec::try_from(actions).unwrap(), - prev_content_hash )); // assert @@ -1017,19 +1000,19 @@ fn apply_item_actions_existing_page_with_valid_input_should_update_storage() { fn apply_item_actions_with_valid_input_and_empty_items_should_remove_storage() { new_test_ext().execute_with(|| { // arrange - let caller_1 = 1; let msa_id = 1; + let caller_1 = test_public(msa_id); let schema_id = ITEMIZED_SCHEMA; let payload = vec![1; 5]; let actions1 = vec![ItemAction::Add { data: payload }]; let actions2 = vec![ItemAction::Delete { index: 0 }]; let keys = (schema_id,); assert_ok!(StatefulStoragePallet::apply_item_actions( - RuntimeOrigin::signed(caller_1), + RuntimeOrigin::signed(caller_1.clone()), msa_id, schema_id, + NONEXISTENT_PAGE_HASH, BoundedVec::try_from(actions1).unwrap(), - NONEXISTENT_PAGE_HASH )); let items1: Option> = @@ -1042,8 +1025,8 @@ fn apply_item_actions_with_valid_input_and_empty_items_should_remove_storage() { RuntimeOrigin::signed(caller_1), msa_id, schema_id, + content_hash, BoundedVec::try_from(actions2).unwrap(), - content_hash )); // assert @@ -1061,3 +1044,1211 @@ fn apply_item_actions_with_valid_input_and_empty_items_should_remove_storage() { ); }); } + +#[test] +fn apply_item_actions_with_signature_having_add_item_action_bigger_than_expected_should_fail() { + new_test_ext().execute_with(|| { + // arrange + let caller_1 = test_public(1); + let (msa_id, pair) = get_signature_account(); + let delegator_key = pair.public(); + let schema_id = ITEMIZED_SCHEMA; + let payload = + vec![1; (::MaxItemizedBlobSizeBytes::get() + 1).try_into().unwrap()]; + let actions = vec![ItemAction::Add { data: payload }]; + let payload = ItemizedSignaturePayload { + actions: BoundedVec::try_from(actions).unwrap(), + target_hash: PageHash::default(), + msa_id, + expiration: 10, + schema_id, + }; + let encode_data_new_key_data = wrap_binary_data(payload.encode()); + let owner_signature: MultiSignature = pair.sign(&encode_data_new_key_data).into(); + + // act + assert_err!( + StatefulStoragePallet::apply_item_actions_with_signature( + RuntimeOrigin::signed(caller_1), + delegator_key.into(), + owner_signature, + payload + ), + Error::::ItemExceedsMaxBlobSizeBytes + ) + }); +} + +#[test] +fn apply_item_actions_with_signature_having_wrong_signature_should_fail() { + new_test_ext().execute_with(|| { + // arrange + let caller_1 = test_public(1); + let (msa_id, pair) = get_signature_account(); + let delegator_key = pair.public(); + let (signature_key, _) = sr25519::Pair::generate(); + let schema_id = ITEMIZED_SCHEMA; + let payload = vec![1; 5]; + let actions = vec![ItemAction::Add { data: payload }]; + let payload = ItemizedSignaturePayload { + actions: BoundedVec::try_from(actions).unwrap(), + target_hash: PageHash::default(), + msa_id, + expiration: 10, + schema_id, + }; + let encode_data_new_key_data = wrap_binary_data(payload.encode()); + let owner_signature: MultiSignature = signature_key.sign(&encode_data_new_key_data).into(); + + // act + assert_err!( + StatefulStoragePallet::apply_item_actions_with_signature( + RuntimeOrigin::signed(caller_1), + delegator_key.into(), + owner_signature, + payload + ), + Error::::InvalidSignature + ) + }); +} + +#[test] +fn apply_item_actions_with_signature_having_too_far_expiration_should_fail() { + new_test_ext().execute_with(|| { + // arrange + let caller_1 = test_public(1); + let (msa_id, pair) = get_signature_account(); + let delegator_key = pair.public(); + let schema_id = ITEMIZED_SCHEMA; + let payload = vec![1; 5]; + let actions = vec![ItemAction::Add { data: payload }]; + let payload = ItemizedSignaturePayload { + actions: BoundedVec::try_from(actions).unwrap(), + target_hash: PageHash::default(), + msa_id, + expiration: (::MortalityWindowSize::get() + 1).into(), + schema_id, + }; + let encode_data_new_key_data = wrap_binary_data(payload.encode()); + let owner_signature: MultiSignature = pair.sign(&encode_data_new_key_data).into(); + + // act + assert_err!( + StatefulStoragePallet::apply_item_actions_with_signature( + RuntimeOrigin::signed(caller_1), + delegator_key.into(), + owner_signature, + payload + ), + Error::::ProofNotYetValid + ) + }); +} + +#[test] +fn apply_item_actions_with_signature_having_expired_payload_should_fail() { + new_test_ext().execute_with(|| { + // arrange + let caller_1 = test_public(1); + let (msa_id, pair) = get_signature_account(); + let delegator_key = pair.public(); + let schema_id = ITEMIZED_SCHEMA; + let payload = vec![1; 5]; + let actions = vec![ItemAction::Add { data: payload }]; + let block_number = 10; + let payload = ItemizedSignaturePayload { + actions: BoundedVec::try_from(actions).unwrap(), + target_hash: PageHash::default(), + msa_id, + expiration: block_number, + schema_id, + }; + let encode_data_new_key_data = wrap_binary_data(payload.encode()); + let owner_signature: MultiSignature = pair.sign(&encode_data_new_key_data).into(); + + // act + System::set_block_number(block_number); + assert_err!( + StatefulStoragePallet::apply_item_actions_with_signature( + RuntimeOrigin::signed(caller_1), + delegator_key.into(), + owner_signature, + payload + ), + Error::::ProofHasExpired + ) + }); +} + +#[test] +fn apply_item_actions_with_signature_having_correct_input_should_work() { + new_test_ext().execute_with(|| { + // arrange + let caller_1 = test_public(1); + let (msa_id, pair) = get_signature_account(); + let delegator_key = pair.public(); + let schema_id = ITEMIZED_SCHEMA; + let prev_content_hash = PageHash::default(); + let payload = vec![1; 5]; + let actions = vec![ItemAction::Add { data: payload }]; + let payload = ItemizedSignaturePayload { + actions: BoundedVec::try_from(actions).unwrap(), + target_hash: prev_content_hash, + msa_id, + expiration: 10, + schema_id, + }; + + let encode_data_new_key_data = wrap_binary_data(payload.encode()); + let owner_signature: MultiSignature = pair.sign(&encode_data_new_key_data).into(); + + // act + assert_ok!(StatefulStoragePallet::apply_item_actions_with_signature( + RuntimeOrigin::signed(caller_1), + delegator_key.into(), + owner_signature, + payload + )); + + // assert + let updated_page: Option> = + StatefulChildTree::<::KeyHasher>::try_read(&msa_id, &(schema_id,)) + .unwrap(); + assert!(updated_page.is_some()); + let curr_content_hash = updated_page.unwrap().get_hash(); + System::assert_last_event( + StatefulEvent::ItemizedPageUpdated { + msa_id, + schema_id, + prev_content_hash, + curr_content_hash, + } + .into(), + ); + }); +} + +#[test] +fn apply_item_actions_with_signature_having_non_existing_msa_should_fail() { + new_test_ext().execute_with(|| { + // arrange + let caller_1 = test_public(1); + let pair = get_invalid_msa_signature_account(); // hardcoded key that returns None Msa + let delegator_key = pair.public(); + let msa_id = 1; + let schema_id = ITEMIZED_SCHEMA; + let payload = vec![1; 5]; + let actions = vec![ItemAction::Add { data: payload }]; + let payload = ItemizedSignaturePayload { + actions: BoundedVec::try_from(actions).unwrap(), + target_hash: PageHash::default(), + msa_id, + expiration: 10, + schema_id, + }; + let encode_data_new_key_data = wrap_binary_data(payload.encode()); + let owner_signature: MultiSignature = pair.sign(&encode_data_new_key_data).into(); + + // act + assert_err!( + StatefulStoragePallet::apply_item_actions_with_signature( + RuntimeOrigin::signed(caller_1), + delegator_key.into(), + owner_signature, + payload + ), + Error::::InvalidMessageSourceAccount + ) + }); +} + +#[test] +fn apply_item_actions_with_signature_having_wrong_msa_in_payload_should_fail() { + new_test_ext().execute_with(|| { + // arrange + let caller_1 = test_public(1); + let (_correct_msa_id, pair) = get_signature_account(); + let delegator_key = pair.public(); + let wrong_msa_id = 3; + let schema_id = ITEMIZED_SCHEMA; + let payload = vec![1; 5]; + let actions = vec![ItemAction::Add { data: payload }]; + let payload = ItemizedSignaturePayload { + actions: BoundedVec::try_from(actions).unwrap(), + target_hash: PageHash::default(), + msa_id: wrong_msa_id, + expiration: 10, + schema_id, + }; + let encode_data_new_key_data = wrap_binary_data(payload.encode()); + let owner_signature: MultiSignature = pair.sign(&encode_data_new_key_data).into(); + + // act + assert_err!( + StatefulStoragePallet::apply_item_actions_with_signature( + RuntimeOrigin::signed(caller_1), + delegator_key.into(), + owner_signature, + payload + ), + Error::::InvalidMessageSourceAccount + ) + }); +} + +#[test] +fn apply_item_actions_with_signature_having_invalid_schema_id_should_fail() { + new_test_ext().execute_with(|| { + // arrange + let caller_1 = test_public(1); + let (msa_id, pair) = get_signature_account(); + let delegator_key = pair.public(); + let schema_id = INVALID_SCHEMA_ID; + let payload = vec![1; 5]; + let actions = vec![ItemAction::Add { data: payload }]; + let payload = ItemizedSignaturePayload { + actions: BoundedVec::try_from(actions).unwrap(), + target_hash: PageHash::default(), + msa_id, + expiration: 10, + schema_id, + }; + let encode_data_new_key_data = wrap_binary_data(payload.encode()); + let owner_signature: MultiSignature = pair.sign(&encode_data_new_key_data).into(); + + // act + assert_err!( + StatefulStoragePallet::apply_item_actions_with_signature( + RuntimeOrigin::signed(caller_1), + delegator_key.into(), + owner_signature, + payload + ), + Error::::InvalidSchemaId + ) + }); +} + +#[test] +fn apply_item_actions_with_signature_having_invalid_schema_location_should_fail() { + new_test_ext().execute_with(|| { + // arrange + let caller_1 = test_public(1); + let (msa_id, pair) = get_signature_account(); + let delegator_key = pair.public(); + let schema_id = PAGINATED_SCHEMA; + let payload = vec![1; 5]; + let actions = vec![ItemAction::Add { data: payload }]; + let payload = ItemizedSignaturePayload { + actions: BoundedVec::try_from(actions).unwrap(), + target_hash: PageHash::default(), + msa_id, + expiration: 10, + schema_id, + }; + let encode_data_new_key_data = wrap_binary_data(payload.encode()); + let owner_signature: MultiSignature = pair.sign(&encode_data_new_key_data).into(); + + // act + assert_err!( + StatefulStoragePallet::apply_item_actions_with_signature( + RuntimeOrigin::signed(caller_1), + delegator_key.into(), + owner_signature, + payload + ), + Error::::SchemaPayloadLocationMismatch + ) + }); +} + +#[test] +fn apply_item_actions_with_signature_having_page_with_stale_hash_should_fail() { + new_test_ext().execute_with(|| { + // arrange + let caller_1 = test_public(1); + let (msa_id, pair) = get_signature_account(); + let delegator_key = pair.public(); + let schema_id = ITEMIZED_SCHEMA; + let payload = vec![1; 5]; + let actions = vec![ItemAction::Add { data: payload.clone() }]; + let page = ItemizedPage::::default(); + let page_hash = page.get_hash(); + let page = page.apply_item_actions(&actions).unwrap(); + let key = (schema_id,); + ::write::<_, Vec>(&msa_id, &key, page.data.into()); + let payload = ItemizedSignaturePayload { + actions: BoundedVec::try_from(actions).unwrap(), + target_hash: page_hash, + msa_id, + expiration: 10, + schema_id, + }; + let encode_data_new_key_data = wrap_binary_data(payload.encode()); + let owner_signature: MultiSignature = pair.sign(&encode_data_new_key_data).into(); + + // act + assert_err!( + StatefulStoragePallet::apply_item_actions_with_signature( + RuntimeOrigin::signed(caller_1), + delegator_key.into(), + owner_signature, + payload + ), + Error::::StalePageState + ) + }); +} + +#[test] +fn apply_item_actions_with_signature_having_valid_input_and_empty_items_should_remove_storage() { + new_test_ext().execute_with(|| { + // arrange + let caller_1 = test_public(1); + let (msa_id, pair) = get_signature_account(); + let delegator_key = pair.public(); + let schema_id = ITEMIZED_SCHEMA; + let payload = vec![1; 5]; + let actions1 = vec![ItemAction::Add { data: payload }]; + let actions2 = vec![ItemAction::Delete { index: 0 }]; + let keys = (schema_id,); + assert_ok!(StatefulStoragePallet::apply_item_actions( + RuntimeOrigin::signed(caller_1.clone()), + msa_id, + schema_id, + NONEXISTENT_PAGE_HASH, + BoundedVec::try_from(actions1).unwrap(), + )); + + let items1: Option> = + StatefulChildTree::<::KeyHasher>::try_read(&msa_id, &keys).unwrap(); + assert!(items1.is_some()); + let content_hash = items1.unwrap().get_hash(); + + let payload = ItemizedSignaturePayload { + actions: BoundedVec::try_from(actions2).unwrap(), + target_hash: content_hash, + msa_id, + expiration: 10, + schema_id, + }; + let encode_data_new_key_data = wrap_binary_data(payload.encode()); + let owner_signature: MultiSignature = pair.sign(&encode_data_new_key_data).into(); + + // act + assert_ok!(StatefulStoragePallet::apply_item_actions_with_signature( + RuntimeOrigin::signed(caller_1), + delegator_key.into(), + owner_signature, + payload + )); + + // assert + let items2: Option> = + StatefulChildTree::<::KeyHasher>::try_read(&msa_id, &(schema_id,)) + .unwrap(); + assert!(items2.is_none()); + System::assert_last_event( + StatefulEvent::ItemizedPageDeleted { + msa_id, + schema_id, + prev_content_hash: content_hash, + } + .into(), + ); + }); +} + +#[test] +fn apply_item_actions_with_signature_having_corrupted_state_should_fail() { + new_test_ext().execute_with(|| { + // arrange + let caller_1 = test_public(1); + let (msa_id, pair) = get_signature_account(); + let delegator_key = pair.public(); + let schema_id = ITEMIZED_SCHEMA; + let payload = vec![1; 5]; + let actions = vec![ItemAction::Add { data: payload.clone() }]; + let key = (schema_id,); + StatefulChildTree::<::KeyHasher>::write::<_, Vec>( + &msa_id, &key, payload, + ); + let previous_page: ItemizedPage = + StatefulChildTree::<::KeyHasher>::try_read(&msa_id, &key) + .unwrap() + .unwrap(); + let previous_hash = previous_page.get_hash(); + + let payload = ItemizedSignaturePayload { + actions: BoundedVec::try_from(actions).unwrap(), + target_hash: previous_hash, + msa_id, + expiration: 10, + schema_id, + }; + let encode_data_new_key_data = wrap_binary_data(payload.encode()); + let owner_signature: MultiSignature = pair.sign(&encode_data_new_key_data).into(); + + // act + assert_err!( + StatefulStoragePallet::apply_item_actions_with_signature( + RuntimeOrigin::signed(caller_1), + delegator_key.into(), + owner_signature, + payload + ), + Error::::CorruptedState + ) + }); +} + +#[test] +fn upsert_page_with_signature_having_page_id_out_of_bounds_should_fail() { + new_test_ext().execute_with(|| { + // arrange + let caller_1 = test_public(1); + let (msa_id, pair) = get_signature_account(); + let delegator_key = pair.public(); + let schema_id = UNDELEGATED_PAGINATED_SCHEMA; + let page_id = (::MaxPaginatedPageId::get() + 1).into(); + let payload = generate_payload_bytes::(Some(100)); + let payload = PaginatedUpsertSignaturePayload { + payload, + target_hash: PageHash::default(), + msa_id, + expiration: 10, + schema_id, + page_id, + }; + let encode_data_new_key_data = wrap_binary_data(payload.encode()); + let owner_signature: MultiSignature = pair.sign(&encode_data_new_key_data).into(); + + // act + assert_err!( + StatefulStoragePallet::upsert_page_with_signature( + RuntimeOrigin::signed(caller_1), + delegator_key.into(), + owner_signature, + payload + ), + Error::::PageIdExceedsMaxAllowed + ) + }) +} + +#[test] +fn upsert_page_with_signature_having_expired_payload_should_fail() { + new_test_ext().execute_with(|| { + // arrange + let caller_1 = test_public(1); + let (msa_id, pair) = get_signature_account(); + let delegator_key = pair.public(); + let schema_id = UNDELEGATED_PAGINATED_SCHEMA; + let page_id = 1; + let block_number = 10; + let payload = generate_payload_bytes::(Some(100)); + let payload = PaginatedUpsertSignaturePayload { + payload, + target_hash: PageHash::default(), + msa_id, + expiration: block_number, + schema_id, + page_id, + }; + let encode_data_new_key_data = wrap_binary_data(payload.encode()); + let owner_signature: MultiSignature = pair.sign(&encode_data_new_key_data).into(); + + // act + System::set_block_number(block_number); + assert_err!( + StatefulStoragePallet::upsert_page_with_signature( + RuntimeOrigin::signed(caller_1), + delegator_key.into(), + owner_signature, + payload + ), + Error::::ProofHasExpired + ) + }) +} + +#[test] +fn upsert_page_with_signature_having_out_of_window_payload_should_fail() { + new_test_ext().execute_with(|| { + // arrange + let caller_1 = test_public(1); + let (msa_id, pair) = get_signature_account(); + let delegator_key = pair.public(); + let schema_id = UNDELEGATED_PAGINATED_SCHEMA; + let page_id = 1; + let payload = generate_payload_bytes::(Some(100)); + let payload = PaginatedUpsertSignaturePayload { + payload, + target_hash: PageHash::default(), + msa_id, + expiration: (::MortalityWindowSize::get() + 1).into(), + schema_id, + page_id, + }; + let encode_data_new_key_data = wrap_binary_data(payload.encode()); + let owner_signature: MultiSignature = pair.sign(&encode_data_new_key_data).into(); + + // act + assert_err!( + StatefulStoragePallet::upsert_page_with_signature( + RuntimeOrigin::signed(caller_1), + delegator_key.into(), + owner_signature, + payload + ), + Error::::ProofNotYetValid + ) + }) +} + +#[test] +fn upsert_page_with_signature_having_wrong_signature_should_fail() { + new_test_ext().execute_with(|| { + // arrange + let caller_1 = test_public(1); + let (msa_id, pair) = get_signature_account(); + let delegator_key = pair.public(); + let (signature_key, _) = sr25519::Pair::generate(); + let schema_id = UNDELEGATED_PAGINATED_SCHEMA; + let page_id = 1; + let payload = generate_payload_bytes::(Some(100)); + let payload = PaginatedUpsertSignaturePayload { + payload, + target_hash: PageHash::default(), + msa_id, + expiration: 10, + schema_id, + page_id, + }; + let encode_data_new_key_data = wrap_binary_data(payload.encode()); + let owner_signature: MultiSignature = signature_key.sign(&encode_data_new_key_data).into(); + + // act + assert_err!( + StatefulStoragePallet::upsert_page_with_signature( + RuntimeOrigin::signed(caller_1), + delegator_key.into(), + owner_signature, + payload + ), + Error::::InvalidSignature + ) + }) +} + +#[test] +fn upsert_page_with_signature_having_non_existing_msa_should_fail() { + new_test_ext().execute_with(|| { + // arrange + let caller_1 = test_public(1); + let pair = get_invalid_msa_signature_account(); // hardcoded key that returns None Msa + let delegator_key = pair.public(); + let msa_id = 1; + let schema_id = UNDELEGATED_PAGINATED_SCHEMA; + let page_id = 1; + let payload = generate_payload_bytes::(Some(100)); + let payload = PaginatedUpsertSignaturePayload { + payload, + target_hash: PageHash::default(), + msa_id, + expiration: 10, + schema_id, + page_id, + }; + let encode_data_new_key_data = wrap_binary_data(payload.encode()); + let owner_signature: MultiSignature = pair.sign(&encode_data_new_key_data).into(); + + // act + assert_err!( + StatefulStoragePallet::upsert_page_with_signature( + RuntimeOrigin::signed(caller_1), + delegator_key.into(), + owner_signature, + payload + ), + Error::::InvalidMessageSourceAccount + ) + }) +} + +#[test] +fn upsert_page_with_signature_having_wrong_msa_in_payload_should_fail() { + new_test_ext().execute_with(|| { + // arrange + let caller_1 = test_public(1); + let (_correct_msa_id, pair) = get_signature_account(); + let delegator_key = pair.public(); + let wrong_msa_id = 3; + let schema_id = UNDELEGATED_PAGINATED_SCHEMA; + let page_id = 1; + let payload = generate_payload_bytes::(Some(100)); + let payload = PaginatedUpsertSignaturePayload { + payload, + target_hash: PageHash::default(), + msa_id: wrong_msa_id, + expiration: 10, + schema_id, + page_id, + }; + let encode_data_new_key_data = wrap_binary_data(payload.encode()); + let owner_signature: MultiSignature = pair.sign(&encode_data_new_key_data).into(); + + // act + assert_err!( + StatefulStoragePallet::upsert_page_with_signature( + RuntimeOrigin::signed(caller_1), + delegator_key.into(), + owner_signature, + payload + ), + Error::::InvalidMessageSourceAccount + ) + }) +} + +#[test] +fn upsert_page_with_signature_having_invalid_schema_id_should_fail() { + new_test_ext().execute_with(|| { + // arrange + let caller_1 = test_public(1); + let (msa_id, pair) = get_signature_account(); + let delegator_key = pair.public(); + let schema_id = INVALID_SCHEMA_ID; + let page_id = 1; + let payload = generate_payload_bytes::(Some(100)); + let payload = PaginatedUpsertSignaturePayload { + payload, + target_hash: PageHash::default(), + msa_id, + expiration: 10, + schema_id, + page_id, + }; + let encode_data_new_key_data = wrap_binary_data(payload.encode()); + let owner_signature: MultiSignature = pair.sign(&encode_data_new_key_data).into(); + + // act + assert_err!( + StatefulStoragePallet::upsert_page_with_signature( + RuntimeOrigin::signed(caller_1), + delegator_key.into(), + owner_signature, + payload + ), + Error::::InvalidSchemaId + ) + }) +} + +#[test] +fn upsert_page_with_signature_having_invalid_schema_location_should_fail() { + new_test_ext().execute_with(|| { + // arrange + let caller_1 = test_public(1); + let (msa_id, pair) = get_signature_account(); + let delegator_key = pair.public(); + let schema_id = ITEMIZED_SCHEMA; + let page_id = 1; + let payload = generate_payload_bytes::(Some(100)); + let payload = PaginatedUpsertSignaturePayload { + payload, + target_hash: PageHash::default(), + msa_id, + expiration: 10, + schema_id, + page_id, + }; + let encode_data_new_key_data = wrap_binary_data(payload.encode()); + let owner_signature: MultiSignature = pair.sign(&encode_data_new_key_data).into(); + + // act + assert_err!( + StatefulStoragePallet::upsert_page_with_signature( + RuntimeOrigin::signed(caller_1), + delegator_key.into(), + owner_signature, + payload + ), + Error::::SchemaPayloadLocationMismatch + ) + }) +} + +#[test] +fn upsert_page_with_signature_having_invalid_hash_should_fail() { + new_test_ext().execute_with(|| { + // arrange + let caller_1 = test_public(1); + let (msa_id, pair) = get_signature_account(); + let delegator_key = pair.public(); + let schema_id = PAGINATED_SCHEMA; + let page_id = 1; + let payload = generate_payload_bytes::(Some(100)); + let payload = PaginatedUpsertSignaturePayload { + payload, + target_hash: PageHash::default() + 1, // any non default hash value + msa_id, + expiration: 10, + schema_id, + page_id, + }; + let encode_data_new_key_data = wrap_binary_data(payload.encode()); + let owner_signature: MultiSignature = pair.sign(&encode_data_new_key_data).into(); + + // act + assert_err!( + StatefulStoragePallet::upsert_page_with_signature( + RuntimeOrigin::signed(caller_1), + delegator_key.into(), + owner_signature, + payload + ), + Error::::StalePageState + ) + }) +} + +#[test] +fn upsert_page_with_signature_having_valid_inputs_should_work() { + new_test_ext().execute_with(|| { + // arrange + let caller_1 = test_public(1); + let (msa_id, pair) = get_signature_account(); + let delegator_key = pair.public(); + let schema_id = PAGINATED_SCHEMA; + let page_id = 1; + let payload = generate_payload_bytes::(Some(100)); + let page: PaginatedPage = payload.clone().into(); + let payload = PaginatedUpsertSignaturePayload { + payload, + target_hash: PageHash::default(), + msa_id, + expiration: 10, + schema_id, + page_id, + }; + let encode_data_new_key_data = wrap_binary_data(payload.encode()); + let owner_signature: MultiSignature = pair.sign(&encode_data_new_key_data).into(); + + // act + assert_ok!(StatefulStoragePallet::upsert_page_with_signature( + RuntimeOrigin::signed(caller_1), + delegator_key.into(), + owner_signature, + payload + )); + + // assert + let keys = (schema_id, page_id); + let new_page = ::try_read(&msa_id, &keys).unwrap(); + assert_eq!(new_page.is_some(), true, "new page is empty"); + assert_eq!(page, new_page.unwrap(), "new page contents incorrect"); + System::assert_last_event( + StatefulEvent::PaginatedPageUpdated { + msa_id, + schema_id, + page_id, + prev_content_hash: PageHash::default(), + curr_content_hash: page.get_hash(), + } + .into(), + ); + }) +} + +#[test] +fn delete_page_with_signature_having_page_id_out_of_bounds_should_fail() { + new_test_ext().execute_with(|| { + // arrange + let caller_1 = test_public(1); + let (msa_id, pair) = get_signature_account(); + let delegator_key = pair.public(); + let schema_id = UNDELEGATED_PAGINATED_SCHEMA; + let page_id = (::MaxPaginatedPageId::get() + 1).into(); + let payload = PaginatedDeleteSignaturePayload { + target_hash: PageHash::default(), + msa_id, + expiration: 10, + schema_id, + page_id, + }; + let encode_data_new_key_data = wrap_binary_data(payload.encode()); + let owner_signature: MultiSignature = pair.sign(&encode_data_new_key_data).into(); + + // act + assert_err!( + StatefulStoragePallet::delete_page_with_signature( + RuntimeOrigin::signed(caller_1), + delegator_key.into(), + owner_signature, + payload + ), + Error::::PageIdExceedsMaxAllowed + ) + }) +} + +#[test] +fn delete_page_with_signature_having_expired_payload_should_fail() { + new_test_ext().execute_with(|| { + // arrange + let caller_1 = test_public(1); + let (msa_id, pair) = get_signature_account(); + let delegator_key = pair.public(); + let schema_id = UNDELEGATED_PAGINATED_SCHEMA; + let page_id = 1; + let block_number = 10; + let payload = PaginatedDeleteSignaturePayload { + target_hash: PageHash::default(), + msa_id, + expiration: 10, + schema_id, + page_id, + }; + let encode_data_new_key_data = wrap_binary_data(payload.encode()); + let owner_signature: MultiSignature = pair.sign(&encode_data_new_key_data).into(); + + // act + System::set_block_number(block_number); + assert_err!( + StatefulStoragePallet::delete_page_with_signature( + RuntimeOrigin::signed(caller_1), + delegator_key.into(), + owner_signature, + payload + ), + Error::::ProofHasExpired + ) + }) +} + +#[test] +fn delete_page_with_signature_having_out_of_window_payload_should_fail() { + new_test_ext().execute_with(|| { + // arrange + let caller_1 = test_public(1); + let (msa_id, pair) = get_signature_account(); + let delegator_key = pair.public(); + let schema_id = UNDELEGATED_PAGINATED_SCHEMA; + let page_id = 1; + let payload = PaginatedDeleteSignaturePayload { + target_hash: PageHash::default(), + msa_id, + expiration: (::MortalityWindowSize::get() + 1).into(), + schema_id, + page_id, + }; + let encode_data_new_key_data = wrap_binary_data(payload.encode()); + let owner_signature: MultiSignature = pair.sign(&encode_data_new_key_data).into(); + + // act + assert_err!( + StatefulStoragePallet::delete_page_with_signature( + RuntimeOrigin::signed(caller_1), + delegator_key.into(), + owner_signature, + payload + ), + Error::::ProofNotYetValid + ) + }) +} + +#[test] +fn delete_page_with_signature_having_wrong_signature_should_fail() { + new_test_ext().execute_with(|| { + // arrange + let caller_1 = test_public(1); + let (msa_id, pair) = get_signature_account(); + let delegator_key = pair.public(); + let (signature_key, _) = sr25519::Pair::generate(); + let schema_id = UNDELEGATED_PAGINATED_SCHEMA; + let page_id = 1; + let payload = PaginatedDeleteSignaturePayload { + target_hash: PageHash::default(), + msa_id, + expiration: 10, + schema_id, + page_id, + }; + let encode_data_new_key_data = wrap_binary_data(payload.encode()); + let owner_signature: MultiSignature = signature_key.sign(&encode_data_new_key_data).into(); + + // act + assert_err!( + StatefulStoragePallet::delete_page_with_signature( + RuntimeOrigin::signed(caller_1), + delegator_key.into(), + owner_signature, + payload + ), + Error::::InvalidSignature + ) + }) +} + +#[test] +fn delete_page_with_signature_having_non_existing_msa_should_fail() { + new_test_ext().execute_with(|| { + // arrange + let caller_1 = test_public(1); + let pair = get_invalid_msa_signature_account(); // hardcoded key that returns None Msa + let delegator_key = pair.public(); + let msa_id = 1; + let schema_id = UNDELEGATED_PAGINATED_SCHEMA; + let page_id = 1; + let payload = PaginatedDeleteSignaturePayload { + target_hash: PageHash::default(), + msa_id, + expiration: 10, + schema_id, + page_id, + }; + let encode_data_new_key_data = wrap_binary_data(payload.encode()); + let owner_signature: MultiSignature = pair.sign(&encode_data_new_key_data).into(); + + // act + assert_err!( + StatefulStoragePallet::delete_page_with_signature( + RuntimeOrigin::signed(caller_1), + delegator_key.into(), + owner_signature, + payload + ), + Error::::InvalidMessageSourceAccount + ) + }) +} + +#[test] +fn delete_page_with_signature_having_wrong_msa_in_payload_should_fail() { + new_test_ext().execute_with(|| { + // arrange + let caller_1 = test_public(1); + let (_correct_msa_id, pair) = get_signature_account(); + let delegator_key = pair.public(); + let wrong_msa_id = 3; + let schema_id = UNDELEGATED_PAGINATED_SCHEMA; + let page_id = 1; + let payload = PaginatedDeleteSignaturePayload { + target_hash: PageHash::default(), + msa_id: wrong_msa_id, + expiration: 10, + schema_id, + page_id, + }; + let encode_data_new_key_data = wrap_binary_data(payload.encode()); + let owner_signature: MultiSignature = pair.sign(&encode_data_new_key_data).into(); + + // act + assert_err!( + StatefulStoragePallet::delete_page_with_signature( + RuntimeOrigin::signed(caller_1), + delegator_key.into(), + owner_signature, + payload + ), + Error::::InvalidMessageSourceAccount + ) + }) +} + +#[test] +fn delete_page_with_signature_having_invalid_schema_id_should_fail() { + new_test_ext().execute_with(|| { + // arrange + let caller_1 = test_public(1); + let (msa_id, pair) = get_signature_account(); + let delegator_key = pair.public(); + let schema_id = INVALID_SCHEMA_ID; + let page_id = 1; + let payload = PaginatedDeleteSignaturePayload { + target_hash: PageHash::default(), + msa_id, + expiration: 10, + schema_id, + page_id, + }; + let encode_data_new_key_data = wrap_binary_data(payload.encode()); + let owner_signature: MultiSignature = pair.sign(&encode_data_new_key_data).into(); + + // act + assert_err!( + StatefulStoragePallet::delete_page_with_signature( + RuntimeOrigin::signed(caller_1), + delegator_key.into(), + owner_signature, + payload + ), + Error::::InvalidSchemaId + ) + }) +} + +#[test] +fn delete_page_with_signature_having_invalid_schema_location_should_fail() { + new_test_ext().execute_with(|| { + // arrange + let caller_1 = test_public(1); + let (msa_id, pair) = get_signature_account(); + let delegator_key = pair.public(); + let schema_id = ITEMIZED_SCHEMA; + let page_id = 1; + let payload = PaginatedDeleteSignaturePayload { + target_hash: PageHash::default(), + msa_id, + expiration: 10, + schema_id, + page_id, + }; + let encode_data_new_key_data = wrap_binary_data(payload.encode()); + let owner_signature: MultiSignature = pair.sign(&encode_data_new_key_data).into(); + + // act + assert_err!( + StatefulStoragePallet::delete_page_with_signature( + RuntimeOrigin::signed(caller_1), + delegator_key.into(), + owner_signature, + payload + ), + Error::::SchemaPayloadLocationMismatch + ) + }) +} + +#[test] +fn delete_page_with_signature_having_invalid_hash_should_fail() { + new_test_ext().execute_with(|| { + // arrange + let caller_1 = test_public(1); + let (msa_id, pair) = get_signature_account(); + let delegator_key = pair.public(); + let schema_id = PAGINATED_SCHEMA; + let page_id = 1; + let payload = generate_payload_bytes::(Some(100)); + assert_ok!(StatefulStoragePallet::upsert_page( + RuntimeOrigin::signed(caller_1.clone()), + msa_id, + schema_id, + page_id, + NONEXISTENT_PAGE_HASH, + payload.into(), + )); + + let payload = PaginatedDeleteSignaturePayload { + target_hash: PageHash::default(), + msa_id, + expiration: 10, + schema_id, + page_id, + }; + let encode_data_new_key_data = wrap_binary_data(payload.encode()); + let owner_signature: MultiSignature = pair.sign(&encode_data_new_key_data).into(); + + // act + assert_err!( + StatefulStoragePallet::delete_page_with_signature( + RuntimeOrigin::signed(caller_1), + delegator_key.into(), + owner_signature, + payload + ), + Error::::StalePageState + ) + }) +} + +#[test] +fn delete_page_with_signature_with_non_existing_page_should_noop() { + new_test_ext().execute_with(|| { + // arrange + let caller_1 = test_public(1); + let (msa_id, pair) = get_signature_account(); + let delegator_key = pair.public(); + let schema_id = PAGINATED_SCHEMA; + let page_id = 1; + let payload = PaginatedDeleteSignaturePayload { + target_hash: PageHash::default(), + msa_id, + expiration: 10, + schema_id, + page_id, + }; + let encode_data_new_key_data = wrap_binary_data(payload.encode()); + let owner_signature: MultiSignature = pair.sign(&encode_data_new_key_data).into(); + + // act + assert_storage_noop!(assert_eq!( + StatefulStoragePallet::delete_page_with_signature( + RuntimeOrigin::signed(caller_1), + delegator_key.into(), + owner_signature, + payload + ), + Ok(()) + )); + }) +} + +#[test] +fn delete_page_with_signature_having_valid_inputs_should_remove_page() { + new_test_ext().execute_with(|| { + // arrange + let caller_1 = test_public(1); + let (msa_id, pair) = get_signature_account(); + let delegator_key = pair.public(); + let schema_id = PAGINATED_SCHEMA; + let page_id = 1; + let payload = generate_payload_bytes::(Some(100)); + let page: PaginatedPage = payload.clone().into(); + assert_ok!(StatefulStoragePallet::upsert_page( + RuntimeOrigin::signed(caller_1.clone()), + msa_id, + schema_id, + page_id, + NONEXISTENT_PAGE_HASH, + payload.into(), + )); + + let payload = PaginatedDeleteSignaturePayload { + target_hash: page.get_hash(), + msa_id, + expiration: 10, + schema_id, + page_id, + }; + let encode_data_new_key_data = wrap_binary_data(payload.encode()); + let owner_signature: MultiSignature = pair.sign(&encode_data_new_key_data).into(); + + // act + assert_ok!(StatefulStoragePallet::delete_page_with_signature( + RuntimeOrigin::signed(caller_1), + delegator_key.into(), + owner_signature, + payload + )); + + // assert + let removed_page: Option> = StatefulChildTree::< + ::KeyHasher, + >::try_read(&msa_id, &(schema_id, page_id)) + .unwrap(); + assert!(removed_page.is_none()); + System::assert_last_event( + StatefulEvent::PaginatedPageDeleted { + msa_id, + schema_id, + page_id, + prev_content_hash: page.get_hash(), + } + .into(), + ); + }) +} diff --git a/pallets/stateful-storage/src/types.rs b/pallets/stateful-storage/src/types.rs index 248fbdd90c..3ae2a73751 100644 --- a/pallets/stateful-storage/src/types.rs +++ b/pallets/stateful-storage/src/types.rs @@ -1,6 +1,7 @@ use crate::Config; use codec::{Decode, Encode, MaxEncodedLen}; use common_primitives::{ + msa::MessageSourceId, schema::SchemaId, stateful_storage::{PageHash, PageId}, }; @@ -30,7 +31,9 @@ pub type PaginatedPage = Page<::MaxPaginatedPageSizeBytes>; /// Defines the actions that can be applied to an Itemized storage #[derive(Clone, Encode, Decode, PartialEq, Debug, TypeInfo, Eq, PartialOrd, Ord)] pub enum ItemAction { + /// Adding new Item into page Add { data: Vec }, + /// removing a new item by index number. Index number starts from 0 Delete { index: u16 }, } @@ -42,6 +45,7 @@ pub struct ItemHeader { pub payload_len: u16, } +/// Errors dedicated to parsing or modifying pages #[derive(Debug, PartialEq)] pub enum PageError { ErrorParsing(&'static str), @@ -50,6 +54,80 @@ pub enum PageError { PageSizeOverflow, } +/// Payload containing all necessary fields to verify Itemized related signatures +#[derive(Encode, Decode, TypeInfo, MaxEncodedLen, PartialEq, RuntimeDebugNoBound, Clone)] +#[scale_info(skip_type_params(T))] +pub struct ItemizedSignaturePayload { + /// Message Source Account identifier + #[codec(compact)] + pub msa_id: MessageSourceId, + + /// Schema id of this storage + #[codec(compact)] + pub schema_id: SchemaId, + + /// Hash of targeted page to avoid race conditions + #[codec(compact)] + pub target_hash: PageHash, + + /// The block number at which the signed proof will expire + pub expiration: T::BlockNumber, + + /// actions to apply to storage + pub actions: BoundedVec::MaxItemizedActionsCount>, +} + +/// Payload containing all necessary fields to verify signatures to upsert a Paginated storage +#[derive(Encode, Decode, TypeInfo, MaxEncodedLen, PartialEq, RuntimeDebugNoBound, Clone)] +#[scale_info(skip_type_params(T))] +pub struct PaginatedUpsertSignaturePayload { + /// Message Source Account identifier + #[codec(compact)] + pub msa_id: MessageSourceId, + + /// Schema id of this storage + #[codec(compact)] + pub schema_id: SchemaId, + + /// Page id of this storage + #[codec(compact)] + pub page_id: PageId, + + /// Hash of targeted page to avoid race conditions + #[codec(compact)] + pub target_hash: PageHash, + + /// The block number at which the signed proof will expire + pub expiration: T::BlockNumber, + + /// payload to update the page with + pub payload: BoundedVec::MaxPaginatedPageSizeBytes>, +} + +/// Payload containing all necessary fields to verify signatures to delete a Paginated storage +#[derive(Encode, Decode, TypeInfo, MaxEncodedLen, PartialEq, RuntimeDebugNoBound, Clone)] +#[scale_info(skip_type_params(T))] +pub struct PaginatedDeleteSignaturePayload { + /// Message Source Account identifier + #[codec(compact)] + pub msa_id: MessageSourceId, + + /// Schema id of this storage + #[codec(compact)] + pub schema_id: SchemaId, + + /// Page id of this storage + #[codec(compact)] + pub page_id: PageId, + + /// Hash of targeted page to avoid race conditions + #[codec(compact)] + pub target_hash: PageHash, + + /// The block number at which the signed proof will expire + pub expiration: T::BlockNumber, +} + /// A generic page of data which supports both Itemized and Paginated #[derive(Encode, Decode, TypeInfo, MaxEncodedLen, PartialEq, Debug, Default)] #[scale_info(skip_type_params(PageDataSize))] @@ -73,6 +151,9 @@ impl> Page { } pub fn get_hash(&self) -> PageHash { + if self.is_empty() { + return PageHash::default() + } let mut hasher = XxHash32::with_seed(0); self.hash(&mut hasher); hasher.finish() as PageHash diff --git a/pallets/stateful-storage/src/weights.rs b/pallets/stateful-storage/src/weights.rs index a547f2be49..494573cc80 100644 --- a/pallets/stateful-storage/src/weights.rs +++ b/pallets/stateful-storage/src/weights.rs @@ -18,11 +18,11 @@ //! Autogenerated weights for pallet_stateful_storage //! //! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev -//! DATE: 2023-02-21, STEPS: `20`, REPEAT: 10, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! DATE: 2023-02-24, STEPS: `50`, REPEAT: 10, LOW RANGE: `[]`, HIGH RANGE: `[]` //! EXECUTION: Some(Wasm), WASM-EXECUTION: Compiled, CHAIN: Some("frequency-bench"), DB CACHE: 1024 // Executed Command: -// ./scripts/../target/production/frequency +// ./target/production/frequency // benchmark // pallet // --pallet @@ -32,13 +32,14 @@ // --chain=frequency-bench // --execution // wasm -// --heap-pages=4096 // --wasm-execution // compiled -// --steps=20 -// --repeat=10 -// --output=./scripts/../pallets/stateful-storage/src/weights.rs -// --template=./scripts/../.maintain/frame-weight-template.hbs +// --steps +// 50 +// --repeat +// 10 +// --output=./pallets/stateful-storage/src/weights.rs +// --template=./.maintain/frame-weight-template.hbs #![cfg_attr(rustfmt, rustfmt_skip)] #![allow( @@ -53,82 +54,145 @@ use sp_std::marker::PhantomData; /// Weight functions needed for pallet_stateful_storage. pub trait WeightInfo { - fn apply_item_actions(n: u32, s: u32, ) -> Weight; + fn apply_item_actions(n: u32, s: u32, p: u32, ) -> Weight; fn upsert_page(s: u32, ) -> Weight; fn delete_page() -> Weight; + fn apply_item_actions_with_signature(n: u32, s: u32, ) -> Weight; + fn upsert_page_with_signature(s: u32, ) -> Weight; + fn delete_page_with_signature() -> Weight; } /// Weights for pallet_stateful_storage using the Substrate node and recommended hardware. pub struct SubstrateWeight(PhantomData); impl WeightInfo for SubstrateWeight { - // Storage: Msa PublicKeyToMsaId (r:1 w:0) // Storage: Schemas Schemas (r:1 w:0) + // Storage: Msa PublicKeyToMsaId (r:1 w:0) // Storage: Msa DelegatorAndProviderToDelegation (r:1 w:0) // Storage: unknown [0xbd1557c8db6bd8599a811a7175fbc2fc6400] (r:1 w:1) - fn apply_item_actions(n: u32, s: u32, ) -> Weight { - Weight::from_ref_time(28_730_139 as u64) - // Standard Error: 63_669 - .saturating_add(Weight::from_ref_time(1_797_780 as u64).saturating_mul(n as u64)) - // Standard Error: 215 - .saturating_add(Weight::from_ref_time(6_159 as u64).saturating_mul(s as u64)) + fn apply_item_actions(n: u32, s: u32, _p: u32, ) -> Weight { + Weight::from_ref_time(18_696_099 as u64) + // Standard Error: 24_738 + .saturating_add(Weight::from_ref_time(969_205 as u64).saturating_mul(n as u64)) + // Standard Error: 83 + .saturating_add(Weight::from_ref_time(3_419 as u64).saturating_mul(s as u64)) .saturating_add(T::DbWeight::get().reads(4 as u64)) .saturating_add(T::DbWeight::get().writes(1 as u64)) } - // Storage: Msa PublicKeyToMsaId (r:1 w:0) // Storage: Schemas Schemas (r:1 w:0) + // Storage: Msa PublicKeyToMsaId (r:1 w:0) // Storage: Msa DelegatorAndProviderToDelegation (r:1 w:0) // Storage: unknown [0x0763c98381dc89abe38627fe2f98cb7af1577fbf1d628fdddb4ebfc6e8d95fb1] (r:1 w:1) fn upsert_page(s: u32, ) -> Weight { - Weight::from_ref_time(35_475_456 as u64) - // Standard Error: 146 - .saturating_add(Weight::from_ref_time(762 as u64).saturating_mul(s as u64)) + Weight::from_ref_time(22_055_060 as u64) + // Standard Error: 45 + .saturating_add(Weight::from_ref_time(460 as u64).saturating_mul(s as u64)) .saturating_add(T::DbWeight::get().reads(4 as u64)) .saturating_add(T::DbWeight::get().writes(1 as u64)) } - // Storage: Msa PublicKeyToMsaId (r:1 w:0) // Storage: Schemas Schemas (r:1 w:0) + // Storage: Msa PublicKeyToMsaId (r:1 w:0) // Storage: Msa DelegatorAndProviderToDelegation (r:1 w:0) // Storage: unknown [0x0763c98381dc89abe38627fe2f98cb7af1577fbf1d628fdddb4ebfc6e8d95fb1] (r:1 w:1) fn delete_page() -> Weight { - Weight::from_ref_time(40_826_000 as u64) + Weight::from_ref_time(25_000_000 as u64) .saturating_add(T::DbWeight::get().reads(4 as u64)) .saturating_add(T::DbWeight::get().writes(1 as u64)) } + // Storage: Msa PublicKeyToMsaId (r:1 w:0) + // Storage: Schemas Schemas (r:1 w:0) + // Storage: unknown [0xbd1557c8db6bd8599a811a7175fbc2fc6400] (r:1 w:1) + fn apply_item_actions_with_signature(n: u32, s: u32, ) -> Weight { + Weight::from_ref_time(38_128_103 as u64) + // Standard Error: 97_856 + .saturating_add(Weight::from_ref_time(5_558_730 as u64).saturating_mul(n as u64)) + // Standard Error: 331 + .saturating_add(Weight::from_ref_time(19_540 as u64).saturating_mul(s as u64)) + .saturating_add(T::DbWeight::get().reads(3 as u64)) + .saturating_add(T::DbWeight::get().writes(1 as u64)) + } + // Storage: Msa PublicKeyToMsaId (r:1 w:0) + // Storage: Schemas Schemas (r:1 w:0) + // Storage: unknown [0x0763c98381dc89abe38627fe2f98cb7af1577fbf1d628fdddb4ebfc6e8d95fb1] (r:1 w:1) + fn upsert_page_with_signature(s: u32, ) -> Weight { + Weight::from_ref_time(57_247_292 as u64) + // Standard Error: 231 + .saturating_add(Weight::from_ref_time(7_613 as u64).saturating_mul(s as u64)) + .saturating_add(T::DbWeight::get().reads(3 as u64)) + .saturating_add(T::DbWeight::get().writes(1 as u64)) + } + // Storage: Msa PublicKeyToMsaId (r:1 w:0) + // Storage: Schemas Schemas (r:1 w:0) + // Storage: unknown [0x0763c98381dc89abe38627fe2f98cb7af1577fbf1d628fdddb4ebfc6e8d95fb1] (r:1 w:1) + fn delete_page_with_signature() -> Weight { + Weight::from_ref_time(65_000_000 as u64) + .saturating_add(T::DbWeight::get().reads(3 as u64)) + .saturating_add(T::DbWeight::get().writes(1 as u64)) + } } // For backwards compatibility and tests impl WeightInfo for () { - // Storage: Msa PublicKeyToMsaId (r:1 w:0) // Storage: Schemas Schemas (r:1 w:0) + // Storage: Msa PublicKeyToMsaId (r:1 w:0) // Storage: Msa DelegatorAndProviderToDelegation (r:1 w:0) // Storage: unknown [0xbd1557c8db6bd8599a811a7175fbc2fc6400] (r:1 w:1) - fn apply_item_actions(n: u32, s: u32, ) -> Weight { - Weight::from_ref_time(28_730_139 as u64) - // Standard Error: 63_669 - .saturating_add(Weight::from_ref_time(1_797_780 as u64).saturating_mul(n as u64)) - // Standard Error: 215 - .saturating_add(Weight::from_ref_time(6_159 as u64).saturating_mul(s as u64)) + fn apply_item_actions(n: u32, s: u32, _p: u32, ) -> Weight { + Weight::from_ref_time(18_696_099 as u64) + // Standard Error: 24_738 + .saturating_add(Weight::from_ref_time(969_205 as u64).saturating_mul(n as u64)) + // Standard Error: 83 + .saturating_add(Weight::from_ref_time(3_419 as u64).saturating_mul(s as u64)) .saturating_add(RocksDbWeight::get().reads(4 as u64)) .saturating_add(RocksDbWeight::get().writes(1 as u64)) } - // Storage: Msa PublicKeyToMsaId (r:1 w:0) // Storage: Schemas Schemas (r:1 w:0) + // Storage: Msa PublicKeyToMsaId (r:1 w:0) // Storage: Msa DelegatorAndProviderToDelegation (r:1 w:0) // Storage: unknown [0x0763c98381dc89abe38627fe2f98cb7af1577fbf1d628fdddb4ebfc6e8d95fb1] (r:1 w:1) fn upsert_page(s: u32, ) -> Weight { - Weight::from_ref_time(35_475_456 as u64) - // Standard Error: 146 - .saturating_add(Weight::from_ref_time(762 as u64).saturating_mul(s as u64)) + Weight::from_ref_time(22_055_060 as u64) + // Standard Error: 45 + .saturating_add(Weight::from_ref_time(460 as u64).saturating_mul(s as u64)) .saturating_add(RocksDbWeight::get().reads(4 as u64)) .saturating_add(RocksDbWeight::get().writes(1 as u64)) } - // Storage: Msa PublicKeyToMsaId (r:1 w:0) // Storage: Schemas Schemas (r:1 w:0) + // Storage: Msa PublicKeyToMsaId (r:1 w:0) // Storage: Msa DelegatorAndProviderToDelegation (r:1 w:0) // Storage: unknown [0x0763c98381dc89abe38627fe2f98cb7af1577fbf1d628fdddb4ebfc6e8d95fb1] (r:1 w:1) fn delete_page() -> Weight { - Weight::from_ref_time(40_826_000 as u64) + Weight::from_ref_time(25_000_000 as u64) .saturating_add(RocksDbWeight::get().reads(4 as u64)) .saturating_add(RocksDbWeight::get().writes(1 as u64)) } + // Storage: Msa PublicKeyToMsaId (r:1 w:0) + // Storage: Schemas Schemas (r:1 w:0) + // Storage: unknown [0xbd1557c8db6bd8599a811a7175fbc2fc6400] (r:1 w:1) + fn apply_item_actions_with_signature(n: u32, s: u32, ) -> Weight { + Weight::from_ref_time(38_128_103 as u64) + // Standard Error: 97_856 + .saturating_add(Weight::from_ref_time(5_558_730 as u64).saturating_mul(n as u64)) + // Standard Error: 331 + .saturating_add(Weight::from_ref_time(19_540 as u64).saturating_mul(s as u64)) + .saturating_add(RocksDbWeight::get().reads(3 as u64)) + .saturating_add(RocksDbWeight::get().writes(1 as u64)) + } + // Storage: Msa PublicKeyToMsaId (r:1 w:0) + // Storage: Schemas Schemas (r:1 w:0) + // Storage: unknown [0x0763c98381dc89abe38627fe2f98cb7af1577fbf1d628fdddb4ebfc6e8d95fb1] (r:1 w:1) + fn upsert_page_with_signature(s: u32, ) -> Weight { + Weight::from_ref_time(57_247_292 as u64) + // Standard Error: 231 + .saturating_add(Weight::from_ref_time(7_613 as u64).saturating_mul(s as u64)) + .saturating_add(RocksDbWeight::get().reads(3 as u64)) + .saturating_add(RocksDbWeight::get().writes(1 as u64)) + } + // Storage: Msa PublicKeyToMsaId (r:1 w:0) + // Storage: Schemas Schemas (r:1 w:0) + // Storage: unknown [0x0763c98381dc89abe38627fe2f98cb7af1577fbf1d628fdddb4ebfc6e8d95fb1] (r:1 w:1) + fn delete_page_with_signature() -> Weight { + Weight::from_ref_time(65_000_000 as u64) + .saturating_add(RocksDbWeight::get().reads(3 as u64)) + .saturating_add(RocksDbWeight::get().writes(1 as u64)) + } } diff --git a/runtime/common/src/constants.rs b/runtime/common/src/constants.rs index 291e5b52c1..7e14267b3f 100644 --- a/runtime/common/src/constants.rs +++ b/runtime/common/src/constants.rs @@ -314,6 +314,8 @@ parameter_types! { pub const MaxPaginatedPageId: u32 = 16; /// The maximum number of actions in itemized actions pub const MaxItemizedActionsCount: u32 = 5; + /// The number of blocks for Stateful mortality is 24 hours + pub const StatefulMortalityWindowSize: u32 = 14400; } // -end- Stateful Storage Pallet diff --git a/runtime/frequency/src/lib.rs b/runtime/frequency/src/lib.rs index af2e59f775..c93c1fc2ba 100644 --- a/runtime/frequency/src/lib.rs +++ b/runtime/frequency/src/lib.rs @@ -742,6 +742,10 @@ impl pallet_stateful_storage::Config for Runtime { type SchemaProvider = Schemas; /// Hasher for Child Tree keys type KeyHasher = Twox128; + /// The conversion to a 32 byte AccountId + type ConvertIntoAccountId32 = ConvertInto; + /// The number of blocks per virtual bucket + type MortalityWindowSize = StatefulMortalityWindowSize; /// A set of helper functions for benchmarking. #[cfg(feature = "runtime-benchmarks")] From f05867c0cafb0f0bbc6f1dd4a6c5eceab8db536c Mon Sep 17 00:00:00 2001 From: Puneet Saraswat <61435908+saraswatpuneet@users.noreply.github.com> Date: Tue, 28 Feb 2023 13:32:04 -0600 Subject: [PATCH 2/4] Schema BitFlags: Enable fine grained schema controls via optional settings (#1079) # Goal The goal of this PR is :- SchemaSettings: Enable fine grained schema controls via optional settings This PR addressed updating schemas pallet and all the dependent code/tests to be updated With @aramikm Creates : https://github.com/LibertyDSNP/frequency/issues/1106 Closes : #1020 # Discussion # Checklist - [ ] Chain spec updated - [x] Custom RPC OR Runtime API added/changed? Updated js/api-augment. - [ ] Design doc(s) updated - [x] Tests added - [ ] Benchmarks added - [ ] Weights updated --------- Co-authored-by: Aramik --- Cargo.lock | 4 + common/primitives/Cargo.toml | 1 + common/primitives/src/lib.rs | 2 + common/primitives/src/macros.rs | 76 + common/primitives/src/schema.rs | 51 +- integration-tests/package-lock.json | 3555 ++++++----------- .../scaffolding/extrinsicHelpers.ts | 5 + .../handleAppendOnly.test.ts | 130 + .../handleItemized.test.ts | 37 +- js/api-augment/definitions/schemas.ts | 6 +- node/cli/Cargo.toml | 2 + node/cli/src/command.rs | 29 +- node/service/Cargo.toml | 1 + node/service/src/service.rs | 26 +- pallets/messages/src/mock.rs | 2 + pallets/messages/src/rpc/src/tests/mod.rs | 1 + pallets/msa/src/audit_replay_tests.rs | 1 + pallets/msa/src/mock.rs | 1 + pallets/msa/src/signature_registry_tests.rs | 1 + pallets/schemas/Cargo.toml | 1 + pallets/schemas/src/lib.rs | 90 +- pallets/schemas/src/migrations.rs | 73 + pallets/schemas/src/mock.rs | 1 + pallets/schemas/src/rpc/src/tests/mod.rs | 1 + pallets/schemas/src/tests.rs | 36 +- pallets/schemas/src/types.rs | 13 +- pallets/stateful-storage/src/lib.rs | 53 +- pallets/stateful-storage/src/mock.rs | 49 +- pallets/stateful-storage/src/test_common.rs | 13 + pallets/stateful-storage/src/tests.rs | 120 + pallets/stateful-storage/src/weights.rs | 4 +- runtime/common/src/constants.rs | 2 + runtime/frequency/src/lib.rs | 55 +- 33 files changed, 1985 insertions(+), 2457 deletions(-) create mode 100644 common/primitives/src/macros.rs create mode 100644 integration-tests/stateful-pallet-storage/handleAppendOnly.test.ts create mode 100644 pallets/schemas/src/migrations.rs diff --git a/Cargo.lock b/Cargo.lock index d94c92d58d..23975130c6 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -979,6 +979,7 @@ dependencies = [ name = "common-primitives" version = "0.0.0" dependencies = [ + "enumflags2", "frame-support", "impl-serde", "parity-scale-codec", @@ -2741,6 +2742,7 @@ dependencies = [ "polkadot-primitives", "polkadot-service", "sc-cli", + "sc-executor", "sc-service", "sc-sysinfo", "sc-telemetry", @@ -2749,6 +2751,7 @@ dependencies = [ "serde_json", "sp-api", "sp-core", + "sp-io", "sp-runtime", "substrate-build-script-utils", "try-runtime-cli", @@ -2892,6 +2895,7 @@ dependencies = [ "sp-session", "sp-timestamp", "sp-transaction-pool", + "sp-wasm-interface", "substrate-build-script-utils", "substrate-frame-rpc-system", "substrate-prometheus-endpoint", diff --git a/common/primitives/Cargo.toml b/common/primitives/Cargo.toml index 14719fd16c..fe8531fb50 100644 --- a/common/primitives/Cargo.toml +++ b/common/primitives/Cargo.toml @@ -16,6 +16,7 @@ targets = ['x86_64-unknown-linux-gnu'] codec = { package = "parity-scale-codec", version = "3.1.5", default-features = false, features = [ "derive", ] } +enumflags2 = "0.7.5" frame-support = { default-features = false, git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.36" } impl-serde = { version = "0.4.0", default-features = false } scale-info = { version = "2.2.0", default-features = false, features = [ diff --git a/common/primitives/src/lib.rs b/common/primitives/src/lib.rs index c07d41b5fb..b00a2826b9 100644 --- a/common/primitives/src/lib.rs +++ b/common/primitives/src/lib.rs @@ -11,6 +11,8 @@ rustdoc::invalid_codeblock_attributes, missing_docs )] +/// macros +pub mod macros; /// Structs and traits for the Messages pallet. pub mod messages; /// Structs and traits for the MSA pallet. diff --git a/common/primitives/src/macros.rs b/common/primitives/src/macros.rs new file mode 100644 index 0000000000..ed7514f35f --- /dev/null +++ b/common/primitives/src/macros.rs @@ -0,0 +1,76 @@ +// This file is part of Substrate. + +// Copyright (C) 2022 Parity Technologies (UK) Ltd. +// SPDX-License-Identifier: Apache-2.0 + +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +// macro_rules! impl_incrementable { +// ($($type:ty),+) => { +// $( +// impl Incrementable for $type { +// fn increment(&self) -> Self { +// let mut val = self.clone(); +// val.saturating_inc(); +// val +// } +// +// fn initial_value() -> Self { +// 0 +// } +// } +// )+ +// }; +// } +// pub(crate) use impl_incrementable; + +#[macro_export] +#[doc(hidden)] +macro_rules! impl_codec_bitflags { + ($wrapper:ty, $size:ty, $bitflag_enum:ty) => { + impl MaxEncodedLen for $wrapper { + fn max_encoded_len() -> usize { + <$size>::max_encoded_len() + } + } + impl Encode for $wrapper { + fn using_encoded R>(&self, f: F) -> R { + self.0.bits().using_encoded(f) + } + } + impl EncodeLike for $wrapper {} + impl Decode for $wrapper { + fn decode( + input: &mut I, + ) -> sp_std::result::Result { + let field = <$size>::decode(input)?; + Ok(Self(BitFlags::from_bits(field as $size).map_err(|_| "invalid value")?)) + } + } + + impl TypeInfo for $wrapper { + type Identity = Self; + + fn type_info() -> Type { + Type::builder() + .path(Path::new("BitFlags", module_path!())) + .type_params(vec![TypeParameter::new("T", Some(meta_type::<$bitflag_enum>()))]) + .composite( + Fields::unnamed() + .field(|f| f.ty::<$size>().type_name(stringify!($bitflag_enum))), + ) + } + } + }; +} +// pub(crate) use impl_codec_bitflags; diff --git a/common/primitives/src/schema.rs b/common/primitives/src/schema.rs index 90a829ccb7..2fb19b3549 100644 --- a/common/primitives/src/schema.rs +++ b/common/primitives/src/schema.rs @@ -1,7 +1,10 @@ +use crate::impl_codec_bitflags; #[cfg(feature = "std")] use crate::utils; -use codec::{Decode, Encode, MaxEncodedLen}; -use scale_info::TypeInfo; +use codec::{Decode, Encode, EncodeLike, MaxEncodedLen}; +use enumflags2::{bitflags, BitFlags}; +use frame_support::RuntimeDebug; +use scale_info::{build::Fields, meta_type, Path, Type, TypeInfo, TypeParameter}; #[cfg(feature = "std")] use serde::{Deserialize, Serialize}; use sp_std::prelude::*; @@ -35,6 +38,24 @@ pub enum PayloadLocation { Paginated, } +/// Support for up to 16 user-enabled features on a collection. +#[bitflags] +#[repr(u16)] +#[cfg_attr(feature = "std", derive(Serialize, Deserialize))] +#[derive(Copy, Clone, RuntimeDebug, PartialEq, Eq, Encode, Decode, MaxEncodedLen, TypeInfo)] +pub enum SchemaSetting { + /// Schema setting to enforce append-only behavior on payload. + /// Applied to schemas of type `PayloadLocation::Itemized` or `PayloadLocation::Paginated`. + AppendOnly, + /// Schema may enforce signature requirement on payload. + /// Applied to schemas of type `PayloadLocation::Paginated`. + SignatureRequired, +} + +/// Wrapper type for `BitFlags` that implements `Codec`. +#[derive(Clone, Copy, PartialEq, Eq, Default, RuntimeDebug)] +pub struct SchemaSettings(pub BitFlags); + /// RPC Response form for a Schema #[cfg_attr(feature = "std", derive(Serialize, Deserialize))] #[derive(Clone, Encode, Decode, PartialEq, Debug, TypeInfo, Eq)] @@ -48,6 +69,8 @@ pub struct SchemaResponse { pub model_type: ModelType, /// The payload location pub payload_location: PayloadLocation, + /// grants for the schema + pub settings: Vec, } /// This allows other pallets to resolve Schema information. With generic SchemaId @@ -65,3 +88,27 @@ pub trait SchemaValidator { #[cfg(any(feature = "std", feature = "runtime-benchmarks", test))] fn set_schema_count(n: SchemaId); } + +impl SchemaSettings { + /// Set all settings to disabled + pub fn all_disabled() -> Self { + Self(BitFlags::EMPTY) + } + /// Get all setting enabled + pub fn get_enabled(&self) -> BitFlags { + self.0 + } + /// Check if a setting is enabled + pub fn is_enabled(&self, grant: SchemaSetting) -> bool { + self.0.contains(grant) + } + /// Enable a setting + pub fn set(&mut self, grant: SchemaSetting) { + self.0.insert(grant) + } + /// Copy the settings from a BitFlags + pub fn from(settings: BitFlags) -> Self { + Self(settings) + } +} +impl_codec_bitflags!(SchemaSettings, u16, SchemaSetting); diff --git a/integration-tests/package-lock.json b/integration-tests/package-lock.json index 8bd942306c..3cd1e71780 100644 --- a/integration-tests/package-lock.json +++ b/integration-tests/package-lock.json @@ -32,8 +32,7 @@ }, "node_modules/@achingbrain/ip-address": { "version": "8.1.0", - "resolved": "https://registry.npmjs.org/@achingbrain/ip-address/-/ip-address-8.1.0.tgz", - "integrity": "sha512-Zus4vMKVRDm+R1o0QJNhD0PD/8qRGO3Zx8YPsFG5lANt5utVtGg3iHVGBSAF80TfQmhi8rP+Kg/OigdxY0BXHw==", + "license": "MIT", "dependencies": { "jsbn": "1.1.0", "sprintf-js": "1.1.2" @@ -44,8 +43,7 @@ }, "node_modules/@achingbrain/nat-port-mapper": { "version": "1.0.7", - "resolved": "https://registry.npmjs.org/@achingbrain/nat-port-mapper/-/nat-port-mapper-1.0.7.tgz", - "integrity": "sha512-P8Z8iMZBQCsN7q3XoVoJAX3CGPUTbGTh1XBU8JytCW3hBmSk594l8YvdrtY5NVexVHSwLeiXnDsP4d10NJHaeg==", + "license": "Apache-2.0 OR MIT", "dependencies": { "@achingbrain/ssdp": "^4.0.1", "@libp2p/logger": "^2.0.0", @@ -63,13 +61,11 @@ }, "node_modules/@achingbrain/nat-port-mapper/node_modules/it-first": { "version": "1.0.7", - "resolved": "https://registry.npmjs.org/it-first/-/it-first-1.0.7.tgz", - "integrity": "sha512-nvJKZoBpZD/6Rtde6FXqwDqDZGF1sCADmr2Zoc0hZsIvnE449gRFnGctxDf09Bzc/FWnHXAdaHVIetY6lrE0/g==" + "license": "ISC" }, "node_modules/@achingbrain/nat-port-mapper/node_modules/p-timeout": { "version": "5.1.0", - "resolved": "https://registry.npmjs.org/p-timeout/-/p-timeout-5.1.0.tgz", - "integrity": "sha512-auFDyzzzGZZZdHz3BtET9VEz0SE/uMEAx7uWfGPucfzEwwe/xH0iVeZibQmANYE/hp9T2+UUZT5m+BKyrDp3Ew==", + "license": "MIT", "engines": { "node": ">=12" }, @@ -79,8 +75,7 @@ }, "node_modules/@achingbrain/ssdp": { "version": "4.0.1", - "resolved": "https://registry.npmjs.org/@achingbrain/ssdp/-/ssdp-4.0.1.tgz", - "integrity": "sha512-z/CkfFI0Ksrpo8E+lu2rKahlE1KJHUn8X8ihQj2Jg6CEL+oHYGCNfttOES0+VnV7htuog70c8bYNHYhlmmqxBQ==", + "license": "Apache-2.0 OR MIT", "dependencies": { "event-iterator": "^2.0.0", "freeport-promise": "^2.0.0", @@ -95,9 +90,8 @@ }, "node_modules/@ampproject/remapping": { "version": "2.2.0", - "resolved": "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.2.0.tgz", - "integrity": "sha512-qRmjj8nj9qmLTQXXmaR1cck3UXSRMPrbsLJAasZpF+t3riI71BXed5ebIOYwQntykeZuhjsdweEc9BxH5Jc26w==", "dev": true, + "license": "Apache-2.0", "dependencies": { "@jridgewell/gen-mapping": "^0.1.0", "@jridgewell/trace-mapping": "^0.3.9" @@ -108,14 +102,12 @@ }, "node_modules/@assemblyscript/loader": { "version": "0.9.4", - "resolved": "https://registry.npmjs.org/@assemblyscript/loader/-/loader-0.9.4.tgz", - "integrity": "sha512-HazVq9zwTVwGmqdwYzu7WyQ6FQVZ7SwET0KKQuKm55jD0IfUpZgN0OPIiZG3zV1iSrVYcN0bdwLRXI/VNCYsUA==" + "license": "Apache-2.0" }, "node_modules/@babel/code-frame": { "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.18.6.tgz", - "integrity": "sha512-TDCmlK5eOvH+eH7cdAFlNXeVJqWIQ7gW9tY1GJIpUtFb6CmjVyq2VM3u71bOyR8CRihcCgMUYoDNyLXao3+70Q==", "dev": true, + "license": "MIT", "dependencies": { "@babel/highlight": "^7.18.6" }, @@ -125,18 +117,16 @@ }, "node_modules/@babel/compat-data": { "version": "7.20.14", - "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.20.14.tgz", - "integrity": "sha512-0YpKHD6ImkWMEINCyDAD0HLLUH/lPCefG8ld9it8DJB2wnApraKuhgYTvTY1z7UFIfBTGy5LwncZ+5HWWGbhFw==", "dev": true, + "license": "MIT", "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/core": { "version": "7.20.12", - "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.20.12.tgz", - "integrity": "sha512-XsMfHovsUYHFMdrIHkZphTN/2Hzzi78R08NuHfDBehym2VsPDL6Zn/JAD/JQdnRvbSsbQc4mVaU1m6JgtTEElg==", "dev": true, + "license": "MIT", "dependencies": { "@ampproject/remapping": "^2.1.0", "@babel/code-frame": "^7.18.6", @@ -164,9 +154,8 @@ }, "node_modules/@babel/generator": { "version": "7.20.14", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.20.14.tgz", - "integrity": "sha512-AEmuXHdcD3A52HHXxaTmYlb8q/xMEhoRP67B3T4Oq7lbmSoqroMZzjnGj3+i1io3pdnF8iBYVu4Ilj+c4hBxYg==", "dev": true, + "license": "MIT", "dependencies": { "@babel/types": "^7.20.7", "@jridgewell/gen-mapping": "^0.3.2", @@ -178,9 +167,8 @@ }, "node_modules/@babel/generator/node_modules/@jridgewell/gen-mapping": { "version": "0.3.2", - "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.2.tgz", - "integrity": "sha512-mh65xKQAzI6iBcFzwv28KVWSmCkdRBWoOh+bYQGW3+6OZvbbN3TqMGo5hqYxQniRcH9F2VZIoJCm4pa3BPDK/A==", "dev": true, + "license": "MIT", "dependencies": { "@jridgewell/set-array": "^1.0.1", "@jridgewell/sourcemap-codec": "^1.4.10", @@ -192,9 +180,8 @@ }, "node_modules/@babel/helper-compilation-targets": { "version": "7.20.7", - "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.20.7.tgz", - "integrity": "sha512-4tGORmfQcrc+bvrjb5y3dG9Mx1IOZjsHqQVUz7XCNHO+iTmqxWnVg3KRygjGmpRLJGdQSKuvFinbIb0CnZwHAQ==", "dev": true, + "license": "MIT", "dependencies": { "@babel/compat-data": "^7.20.5", "@babel/helper-validator-option": "^7.18.6", @@ -211,33 +198,29 @@ }, "node_modules/@babel/helper-compilation-targets/node_modules/lru-cache": { "version": "5.1.1", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz", - "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==", "dev": true, + "license": "ISC", "dependencies": { "yallist": "^3.0.2" } }, "node_modules/@babel/helper-compilation-targets/node_modules/yallist": { "version": "3.1.1", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", - "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==", - "dev": true + "dev": true, + "license": "ISC" }, "node_modules/@babel/helper-environment-visitor": { "version": "7.18.9", - "resolved": "https://registry.npmjs.org/@babel/helper-environment-visitor/-/helper-environment-visitor-7.18.9.tgz", - "integrity": "sha512-3r/aACDJ3fhQ/EVgFy0hpj8oHyHpQc+LPtJoY9SzTThAsStm4Ptegq92vqKoE3vD706ZVFWITnMnxucw+S9Ipg==", "dev": true, + "license": "MIT", "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-function-name": { "version": "7.19.0", - "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.19.0.tgz", - "integrity": "sha512-WAwHBINyrpqywkUH0nTnNgI5ina5TFn85HKS0pbPDfxFfhyR/aNQEn4hGi1P1JyT//I0t4OgXUlofzWILRvS5w==", "dev": true, + "license": "MIT", "dependencies": { "@babel/template": "^7.18.10", "@babel/types": "^7.19.0" @@ -248,9 +231,8 @@ }, "node_modules/@babel/helper-hoist-variables": { "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.18.6.tgz", - "integrity": "sha512-UlJQPkFqFULIcyW5sbzgbkxn2FKRgwWiRexcuaR8RNJRy8+LLveqPjwZV/bwrLZCN0eUHD/x8D0heK1ozuoo6Q==", "dev": true, + "license": "MIT", "dependencies": { "@babel/types": "^7.18.6" }, @@ -260,9 +242,8 @@ }, "node_modules/@babel/helper-module-imports": { "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.18.6.tgz", - "integrity": "sha512-0NFvs3VkuSYbFi1x2Vd6tKrywq+z/cLeYC/RJNFrIX/30Bf5aiGYbtvGXolEktzJH8o5E5KJ3tT+nkxuuZFVlA==", "dev": true, + "license": "MIT", "dependencies": { "@babel/types": "^7.18.6" }, @@ -272,9 +253,8 @@ }, "node_modules/@babel/helper-module-transforms": { "version": "7.20.11", - "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.20.11.tgz", - "integrity": "sha512-uRy78kN4psmji1s2QtbtcCSaj/LILFDp0f/ymhpQH5QY3nljUZCaNWz9X1dEj/8MBdBEFECs7yRhKn8i7NjZgg==", "dev": true, + "license": "MIT", "dependencies": { "@babel/helper-environment-visitor": "^7.18.9", "@babel/helper-module-imports": "^7.18.6", @@ -291,9 +271,8 @@ }, "node_modules/@babel/helper-simple-access": { "version": "7.20.2", - "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.20.2.tgz", - "integrity": "sha512-+0woI/WPq59IrqDYbVGfshjT5Dmk/nnbdpcF8SnMhhXObpTq2KNBdLFRFrkVdbDOyUmHBCxzm5FHV1rACIkIbA==", "dev": true, + "license": "MIT", "dependencies": { "@babel/types": "^7.20.2" }, @@ -303,9 +282,8 @@ }, "node_modules/@babel/helper-split-export-declaration": { "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.18.6.tgz", - "integrity": "sha512-bde1etTx6ZyTmobl9LLMMQsaizFVZrquTEHOqKeQESMKo4PlObf+8+JA25ZsIpZhT/WEd39+vOdLXAFG/nELpA==", "dev": true, + "license": "MIT", "dependencies": { "@babel/types": "^7.18.6" }, @@ -315,36 +293,32 @@ }, "node_modules/@babel/helper-string-parser": { "version": "7.19.4", - "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.19.4.tgz", - "integrity": "sha512-nHtDoQcuqFmwYNYPz3Rah5ph2p8PFeFCsZk9A/48dPc/rGocJ5J3hAAZ7pb76VWX3fZKu+uEr/FhH5jLx7umrw==", "dev": true, + "license": "MIT", "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-validator-identifier": { "version": "7.19.1", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.19.1.tgz", - "integrity": "sha512-awrNfaMtnHUr653GgGEs++LlAvW6w+DcPrOliSMXWCKo597CwL5Acf/wWdNkf/tfEQE3mjkeD1YOVZOUV/od1w==", "dev": true, + "license": "MIT", "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-validator-option": { "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.18.6.tgz", - "integrity": "sha512-XO7gESt5ouv/LRJdrVjkShckw6STTaB7l9BrpBaAHDeF5YZT+01PCwmR0SJHnkW6i8OwW/EVWRShfi4j2x+KQw==", "dev": true, + "license": "MIT", "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helpers": { "version": "7.20.13", - "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.20.13.tgz", - "integrity": "sha512-nzJ0DWCL3gB5RCXbUO3KIMMsBY2Eqbx8mBpKGE/02PgyRQFcPQLbkQ1vyy596mZLaP+dAfD+R4ckASzNVmW3jg==", "dev": true, + "license": "MIT", "dependencies": { "@babel/template": "^7.20.7", "@babel/traverse": "^7.20.13", @@ -356,9 +330,8 @@ }, "node_modules/@babel/highlight": { "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.18.6.tgz", - "integrity": "sha512-u7stbOuYjaPezCuLj29hNW1v64M2Md2qupEKP1fHc7WdOA3DgLh37suiSrZYY7haUB7iBeQZ9P1uiRF359do3g==", "dev": true, + "license": "MIT", "dependencies": { "@babel/helper-validator-identifier": "^7.18.6", "chalk": "^2.0.0", @@ -370,9 +343,8 @@ }, "node_modules/@babel/parser": { "version": "7.20.13", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.20.13.tgz", - "integrity": "sha512-gFDLKMfpiXCsjt4za2JA9oTMn70CeseCehb11kRZgvd7+F67Hih3OHOK24cRrWECJ/ljfPGac6ygXAs/C8kIvw==", "dev": true, + "license": "MIT", "bin": { "parser": "bin/babel-parser.js" }, @@ -382,9 +354,8 @@ }, "node_modules/@babel/register": { "version": "7.18.9", - "resolved": "https://registry.npmjs.org/@babel/register/-/register-7.18.9.tgz", - "integrity": "sha512-ZlbnXDcNYHMR25ITwwNKT88JiaukkdVj/nG7r3wnuXkOTHc60Uy05PwMCPre0hSkY68E6zK3xz+vUJSP2jWmcw==", "dev": true, + "license": "MIT", "dependencies": { "clone-deep": "^4.0.1", "find-cache-dir": "^2.0.0", @@ -401,8 +372,7 @@ }, "node_modules/@babel/runtime": { "version": "7.20.13", - "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.20.13.tgz", - "integrity": "sha512-gt3PKXs0DBoL9xCvOIIZ2NEqAGZqHjAnmVbfQtB620V0uReIQutpel14KcneZuer7UioY8ALKZ7iocavvzTNFA==", + "license": "MIT", "dependencies": { "regenerator-runtime": "^0.13.11" }, @@ -412,9 +382,8 @@ }, "node_modules/@babel/template": { "version": "7.20.7", - "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.20.7.tgz", - "integrity": "sha512-8SegXApWe6VoNw0r9JHpSteLKTpTiLZ4rMlGIm9JQ18KiCtyQiAMEazujAHrUS5flrcqYZa75ukev3P6QmUwUw==", "dev": true, + "license": "MIT", "dependencies": { "@babel/code-frame": "^7.18.6", "@babel/parser": "^7.20.7", @@ -426,9 +395,8 @@ }, "node_modules/@babel/traverse": { "version": "7.20.13", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.20.13.tgz", - "integrity": "sha512-kMJXfF0T6DIS9E8cgdLCSAL+cuCK+YEZHWiLK0SXpTo8YRj5lpJu3CDNKiIBCne4m9hhTIqUg6SYTAI39tAiVQ==", "dev": true, + "license": "MIT", "dependencies": { "@babel/code-frame": "^7.18.6", "@babel/generator": "^7.20.7", @@ -447,9 +415,8 @@ }, "node_modules/@babel/types": { "version": "7.20.7", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.20.7.tgz", - "integrity": "sha512-69OnhBxSSgK0OzTJai4kyPDiKTIe3j+ctaHdIGVbRahTLAT7L3R9oeXHC2aVSuGYt3cVnoAMDmOCgJ2yaiLMvg==", "dev": true, + "license": "MIT", "dependencies": { "@babel/helper-string-parser": "^7.19.4", "@babel/helper-validator-identifier": "^7.19.1", @@ -461,13 +428,11 @@ }, "node_modules/@chainsafe/is-ip": { "version": "2.0.1", - "resolved": "https://registry.npmjs.org/@chainsafe/is-ip/-/is-ip-2.0.1.tgz", - "integrity": "sha512-nqSJ8u2a1Rv9FYbyI8qpDhTYujaKEyLknNrTejLYoSWmdeg+2WB7R6BZqPZYfrJzDxVi3rl6ZQuoaEvpKRZWgQ==" + "license": "MIT" }, "node_modules/@chainsafe/libp2p-gossipsub": { "version": "4.1.1", - "resolved": "https://registry.npmjs.org/@chainsafe/libp2p-gossipsub/-/libp2p-gossipsub-4.1.1.tgz", - "integrity": "sha512-W3z52uTVm48qvwTAcE+tz6ML2CPWA4ErmuL2aCWAW8S7ce6iH8anqo+xI9rcedyIOChWMWLLD4Gtaj4TMrWacw==", + "license": "Apache-2.0", "dependencies": { "@libp2p/components": "^2.0.3", "@libp2p/crypto": "^1.0.3", @@ -499,8 +464,7 @@ }, "node_modules/@chainsafe/libp2p-gossipsub/node_modules/@libp2p/interface-peer-id": { "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@libp2p/interface-peer-id/-/interface-peer-id-1.1.2.tgz", - "integrity": "sha512-S5iyVzG2EUgxm4NLe8W4ya9kpKuGfHs7Wbbos0wOUB4GXsbIKgOOxIr4yf+xGFgtEBaoximvlLkpob6dn8VFgA==", + "license": "Apache-2.0 OR MIT", "dependencies": { "multiformats": "^10.0.0" }, @@ -511,8 +475,7 @@ }, "node_modules/@chainsafe/libp2p-gossipsub/node_modules/@libp2p/interface-peer-id/node_modules/multiformats": { "version": "10.0.3", - "resolved": "https://registry.npmjs.org/multiformats/-/multiformats-10.0.3.tgz", - "integrity": "sha512-K2yGSmstS/oEmYiEIieHb53jJCaqp4ERPDQAYrm5sV3UUrVDZeshJQCK6GHAKyIGufU1vAcbS0PdAAZmC7Tzcw==", + "license": "Apache-2.0 OR MIT", "engines": { "node": ">=16.0.0", "npm": ">=7.0.0" @@ -520,8 +483,7 @@ }, "node_modules/@chainsafe/libp2p-gossipsub/node_modules/@libp2p/interface-pubsub": { "version": "2.1.0", - "resolved": "https://registry.npmjs.org/@libp2p/interface-pubsub/-/interface-pubsub-2.1.0.tgz", - "integrity": "sha512-X+SIqzfeCO8ZDGrFTzH9EMwMf8ojW5nk20rxv3h1sCXEdfvyJCARZ51r9UlwJcnucnHqvFChfkbubAkrr3R4Cw==", + "license": "Apache-2.0 OR MIT", "dependencies": { "@libp2p/interface-connection": "^3.0.0", "@libp2p/interface-peer-id": "^1.0.0", @@ -536,14 +498,12 @@ }, "node_modules/@chainsafe/libp2p-gossipsub/node_modules/multiformats": { "version": "9.9.0", - "resolved": "https://registry.npmjs.org/multiformats/-/multiformats-9.9.0.tgz", - "integrity": "sha512-HoMUjhH9T8DDBNT+6xzkrd9ga/XiBI4xLr58LJACwK6G3HTOPeMz4nB4KJs33L2BelrIJa7P0VuNaVF3hMYfjg==" + "license": "(Apache-2.0 AND MIT)" }, "node_modules/@chainsafe/libp2p-gossipsub/node_modules/protobufjs": { "version": "6.11.3", - "resolved": "https://registry.npmjs.org/protobufjs/-/protobufjs-6.11.3.tgz", - "integrity": "sha512-xL96WDdCZYdU7Slin569tFX712BxsxslWwAfAhCYjQKGTq7dAU91Lomy6nLLhh/dyGhk/YH4TwTSRxTzhuHyZg==", "hasInstallScript": true, + "license": "BSD-3-Clause", "dependencies": { "@protobufjs/aspromise": "^1.1.2", "@protobufjs/base64": "^1.1.2", @@ -566,16 +526,14 @@ }, "node_modules/@chainsafe/libp2p-gossipsub/node_modules/uint8arrays": { "version": "3.1.1", - "resolved": "https://registry.npmjs.org/uint8arrays/-/uint8arrays-3.1.1.tgz", - "integrity": "sha512-+QJa8QRnbdXVpHYjLoTpJIdCTiw9Ir62nocClWuXIq2JIh4Uta0cQsTSpFL678p2CN8B+XSApwcU+pQEqVpKWg==", + "license": "MIT", "dependencies": { "multiformats": "^9.4.2" } }, "node_modules/@chainsafe/libp2p-noise": { "version": "10.2.0", - "resolved": "https://registry.npmjs.org/@chainsafe/libp2p-noise/-/libp2p-noise-10.2.0.tgz", - "integrity": "sha512-nXw09UwSE5JCiB5Dte6j0b0Qe+KbtepJvaPz/f5JyxcoyUfLE/t7XWRZAZmcuWBeVWWpOItnK5WmW8uocoiwCQ==", + "license": "Apache-2.0 OR MIT", "dependencies": { "@libp2p/crypto": "^1.0.0", "@libp2p/interface-connection-encrypter": "^3.0.0", @@ -604,8 +562,7 @@ }, "node_modules/@chainsafe/libp2p-noise/node_modules/@libp2p/interface-peer-id": { "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@libp2p/interface-peer-id/-/interface-peer-id-1.1.2.tgz", - "integrity": "sha512-S5iyVzG2EUgxm4NLe8W4ya9kpKuGfHs7Wbbos0wOUB4GXsbIKgOOxIr4yf+xGFgtEBaoximvlLkpob6dn8VFgA==", + "license": "Apache-2.0 OR MIT", "dependencies": { "multiformats": "^10.0.0" }, @@ -616,8 +573,7 @@ }, "node_modules/@chainsafe/libp2p-noise/node_modules/multiformats": { "version": "10.0.3", - "resolved": "https://registry.npmjs.org/multiformats/-/multiformats-10.0.3.tgz", - "integrity": "sha512-K2yGSmstS/oEmYiEIieHb53jJCaqp4ERPDQAYrm5sV3UUrVDZeshJQCK6GHAKyIGufU1vAcbS0PdAAZmC7Tzcw==", + "license": "Apache-2.0 OR MIT", "engines": { "node": ">=16.0.0", "npm": ">=7.0.0" @@ -625,9 +581,8 @@ }, "node_modules/@cspotcode/source-map-support": { "version": "0.8.1", - "resolved": "https://registry.npmjs.org/@cspotcode/source-map-support/-/source-map-support-0.8.1.tgz", - "integrity": "sha512-IchNf6dN4tHoMFIn/7OE8LWZ19Y6q/67Bmf6vnGREv8RSbBVb9LPJxEcnwrcwX6ixSvaiGoomAUvu4YSxXrVgw==", "dev": true, + "license": "MIT", "dependencies": { "@jridgewell/trace-mapping": "0.3.9" }, @@ -637,9 +592,8 @@ }, "node_modules/@cspotcode/source-map-support/node_modules/@jridgewell/trace-mapping": { "version": "0.3.9", - "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.9.tgz", - "integrity": "sha512-3Belt6tdc8bPgAtbcmdtNJlirVoTmEb5e2gC94PnkwEW9jI6CAHUeoG85tjWP5WquqfavoMtMwiG4P926ZKKuQ==", "dev": true, + "license": "MIT", "dependencies": { "@jridgewell/resolve-uri": "^3.0.3", "@jridgewell/sourcemap-codec": "^1.4.10" @@ -647,9 +601,8 @@ }, "node_modules/@eslint/eslintrc": { "version": "1.4.1", - "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-1.4.1.tgz", - "integrity": "sha512-XXrH9Uarn0stsyldqDYq8r++mROmWRI1xKMXa640Bb//SY1+ECYX6VzT6Lcx5frD0V30XieqJ0oX9I2Xj5aoMA==", "dev": true, + "license": "MIT", "peer": true, "dependencies": { "ajv": "^6.12.4", @@ -671,9 +624,8 @@ }, "node_modules/@eslint/eslintrc/node_modules/brace-expansion": { "version": "1.1.11", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", - "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", "dev": true, + "license": "MIT", "peer": true, "dependencies": { "balanced-match": "^1.0.0", @@ -682,9 +634,8 @@ }, "node_modules/@eslint/eslintrc/node_modules/globals": { "version": "13.19.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-13.19.0.tgz", - "integrity": "sha512-dkQ957uSRWHw7CFXLUtUHQI3g3aWApYhfNR2O6jn/907riyTYKVBmxYVROkBcY614FSSeSJh7Xm7SrUWCxvJMQ==", "dev": true, + "license": "MIT", "peer": true, "dependencies": { "type-fest": "^0.20.2" @@ -698,9 +649,8 @@ }, "node_modules/@eslint/eslintrc/node_modules/minimatch": { "version": "3.1.2", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", - "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", "dev": true, + "license": "ISC", "peer": true, "dependencies": { "brace-expansion": "^1.1.7" @@ -711,9 +661,8 @@ }, "node_modules/@eslint/eslintrc/node_modules/type-fest": { "version": "0.20.2", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz", - "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==", "dev": true, + "license": "(MIT OR CC0-1.0)", "peer": true, "engines": { "node": ">=10" @@ -725,7 +674,7 @@ "node_modules/@frequency-chain/api-augment": { "version": "0.0.0", "resolved": "file:../js/api-augment/dist/frequency-chain-api-augment-0.0.0.tgz", - "integrity": "sha512-dojZEoHw1oqX0Hf4sO0gRhEB7DtUs9Ze0S7RDjzI3BJIBBQmWHdHdl7pjriyVwkIXNceqUwD8iBE9bKWAJKVwg==", + "integrity": "sha512-v/JzJl2loTVbkPZL6O42o2cO5btDWAWqvDHE4cdbr2RvMAkcQdSgVY4cEOkUUP/HqrNCQW/DPYi+CfBTnuVwEQ==", "license": "Apache-2.0", "dependencies": { "@polkadot/api": "^9.13.2", @@ -735,8 +684,7 @@ }, "node_modules/@grpc/grpc-js": { "version": "1.8.2", - "resolved": "https://registry.npmjs.org/@grpc/grpc-js/-/grpc-js-1.8.2.tgz", - "integrity": "sha512-5cqCjUvDKJWHGeu1prlrFOUmjuML0NequZKJ38PsCkfwIqPnZq4Q9burPP3It7/+46wpl0KsqVN3s6Te3B9Qtw==", + "license": "Apache-2.0", "dependencies": { "@grpc/proto-loader": "^0.7.0", "@types/node": ">=12.12.47" @@ -747,8 +695,7 @@ }, "node_modules/@grpc/proto-loader": { "version": "0.7.4", - "resolved": "https://registry.npmjs.org/@grpc/proto-loader/-/proto-loader-0.7.4.tgz", - "integrity": "sha512-MnWjkGwqQ3W8fx94/c1CwqLsNmHHv2t0CFn+9++6+cDphC1lolpg9M2OU0iebIjK//pBNX9e94ho+gjx6vz39w==", + "license": "Apache-2.0", "dependencies": { "@types/long": "^4.0.1", "lodash.camelcase": "^4.3.0", @@ -765,8 +712,7 @@ }, "node_modules/@grpc/proto-loader/node_modules/cliui": { "version": "7.0.4", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-7.0.4.tgz", - "integrity": "sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==", + "license": "ISC", "dependencies": { "string-width": "^4.2.0", "strip-ansi": "^6.0.0", @@ -775,8 +721,7 @@ }, "node_modules/@grpc/proto-loader/node_modules/yargs": { "version": "16.2.0", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-16.2.0.tgz", - "integrity": "sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==", + "license": "MIT", "dependencies": { "cliui": "^7.0.2", "escalade": "^3.1.1", @@ -792,8 +737,7 @@ }, "node_modules/@hapi/accept": { "version": "5.0.2", - "resolved": "https://registry.npmjs.org/@hapi/accept/-/accept-5.0.2.tgz", - "integrity": "sha512-CmzBx/bXUR8451fnZRuZAJRlzgm0Jgu5dltTX/bszmR2lheb9BpyN47Q1RbaGTsvFzn0PXAEs+lXDKfshccYZw==", + "license": "BSD-3-Clause", "dependencies": { "@hapi/boom": "9.x.x", "@hapi/hoek": "9.x.x" @@ -801,32 +745,28 @@ }, "node_modules/@hapi/ammo": { "version": "5.0.1", - "resolved": "https://registry.npmjs.org/@hapi/ammo/-/ammo-5.0.1.tgz", - "integrity": "sha512-FbCNwcTbnQP4VYYhLNGZmA76xb2aHg9AMPiy18NZyWMG310P5KdFGyA9v2rm5ujrIny77dEEIkMOwl0Xv+fSSA==", + "license": "BSD-3-Clause", "dependencies": { "@hapi/hoek": "9.x.x" } }, "node_modules/@hapi/b64": { "version": "5.0.0", - "resolved": "https://registry.npmjs.org/@hapi/b64/-/b64-5.0.0.tgz", - "integrity": "sha512-ngu0tSEmrezoiIaNGG6rRvKOUkUuDdf4XTPnONHGYfSGRmDqPZX5oJL6HAdKTo1UQHECbdB4OzhWrfgVppjHUw==", + "license": "BSD-3-Clause", "dependencies": { "@hapi/hoek": "9.x.x" } }, "node_modules/@hapi/boom": { "version": "9.1.4", - "resolved": "https://registry.npmjs.org/@hapi/boom/-/boom-9.1.4.tgz", - "integrity": "sha512-Ls1oH8jaN1vNsqcaHVYJrKmgMcKsC1wcp8bujvXrHaAqD2iDYq3HoOwsxwo09Cuda5R5nC0o0IxlrlTuvPuzSw==", + "license": "BSD-3-Clause", "dependencies": { "@hapi/hoek": "9.x.x" } }, "node_modules/@hapi/bounce": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/@hapi/bounce/-/bounce-2.0.0.tgz", - "integrity": "sha512-JesW92uyzOOyuzJKjoLHM1ThiOvHPOLDHw01YV8yh5nCso7sDwJho1h0Ad2N+E62bZyz46TG3xhAi/78Gsct6A==", + "license": "BSD-3-Clause", "dependencies": { "@hapi/boom": "9.x.x", "@hapi/hoek": "9.x.x" @@ -834,13 +774,11 @@ }, "node_modules/@hapi/bourne": { "version": "2.1.0", - "resolved": "https://registry.npmjs.org/@hapi/bourne/-/bourne-2.1.0.tgz", - "integrity": "sha512-i1BpaNDVLJdRBEKeJWkVO6tYX6DMFBuwMhSuWqLsY4ufeTKGVuV5rBsUhxPayXqnnWHgXUAmWK16H/ykO5Wj4Q==" + "license": "BSD-3-Clause" }, "node_modules/@hapi/call": { "version": "8.0.1", - "resolved": "https://registry.npmjs.org/@hapi/call/-/call-8.0.1.tgz", - "integrity": "sha512-bOff6GTdOnoe5b8oXRV3lwkQSb/LAWylvDMae6RgEWWntd0SHtkYbQukDHKlfaYtVnSAgIavJ0kqszF/AIBb6g==", + "license": "BSD-3-Clause", "dependencies": { "@hapi/boom": "9.x.x", "@hapi/hoek": "9.x.x" @@ -848,8 +786,7 @@ }, "node_modules/@hapi/catbox": { "version": "11.1.1", - "resolved": "https://registry.npmjs.org/@hapi/catbox/-/catbox-11.1.1.tgz", - "integrity": "sha512-u/8HvB7dD/6X8hsZIpskSDo4yMKpHxFd7NluoylhGrL6cUfYxdQPnvUp9YU2C6F9hsyBVLGulBd9vBN1ebfXOQ==", + "license": "BSD-3-Clause", "dependencies": { "@hapi/boom": "9.x.x", "@hapi/hoek": "9.x.x", @@ -859,8 +796,7 @@ }, "node_modules/@hapi/catbox-memory": { "version": "5.0.1", - "resolved": "https://registry.npmjs.org/@hapi/catbox-memory/-/catbox-memory-5.0.1.tgz", - "integrity": "sha512-QWw9nOYJq5PlvChLWV8i6hQHJYfvdqiXdvTupJFh0eqLZ64Xir7mKNi96d5/ZMUAqXPursfNDIDxjFgoEDUqeQ==", + "license": "BSD-3-Clause", "dependencies": { "@hapi/boom": "9.x.x", "@hapi/hoek": "9.x.x" @@ -868,16 +804,14 @@ }, "node_modules/@hapi/content": { "version": "5.0.2", - "resolved": "https://registry.npmjs.org/@hapi/content/-/content-5.0.2.tgz", - "integrity": "sha512-mre4dl1ygd4ZyOH3tiYBrOUBzV7Pu/EOs8VLGf58vtOEECWed8Uuw6B4iR9AN/8uQt42tB04qpVaMyoMQh0oMw==", + "license": "BSD-3-Clause", "dependencies": { "@hapi/boom": "9.x.x" } }, "node_modules/@hapi/cryptiles": { "version": "5.1.0", - "resolved": "https://registry.npmjs.org/@hapi/cryptiles/-/cryptiles-5.1.0.tgz", - "integrity": "sha512-fo9+d1Ba5/FIoMySfMqPBR/7Pa29J2RsiPrl7bkwo5W5o+AN1dAYQRi4SPrPwwVxVGKjgLOEWrsvt1BonJSfLA==", + "license": "BSD-3-Clause", "dependencies": { "@hapi/boom": "9.x.x" }, @@ -887,13 +821,11 @@ }, "node_modules/@hapi/file": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/@hapi/file/-/file-2.0.0.tgz", - "integrity": "sha512-WSrlgpvEqgPWkI18kkGELEZfXr0bYLtr16iIN4Krh9sRnzBZN6nnWxHFxtsnP684wueEySBbXPDg/WfA9xJdBQ==" + "license": "BSD-3-Clause" }, "node_modules/@hapi/hapi": { "version": "20.2.2", - "resolved": "https://registry.npmjs.org/@hapi/hapi/-/hapi-20.2.2.tgz", - "integrity": "sha512-crhU6TIKt7QsksWLYctDBAXogk9PYAm7UzdpETyuBHC2pCa6/+B5NykiOVLG/3FCIgHo/raPVtan8bYtByHORQ==", + "license": "BSD-3-Clause", "dependencies": { "@hapi/accept": "^5.0.1", "@hapi/ammo": "^5.0.1", @@ -920,8 +852,7 @@ }, "node_modules/@hapi/heavy": { "version": "7.0.1", - "resolved": "https://registry.npmjs.org/@hapi/heavy/-/heavy-7.0.1.tgz", - "integrity": "sha512-vJ/vzRQ13MtRzz6Qd4zRHWS3FaUc/5uivV2TIuExGTM9Qk+7Zzqj0e2G7EpE6KztO9SalTbiIkTh7qFKj/33cA==", + "license": "BSD-3-Clause", "dependencies": { "@hapi/boom": "9.x.x", "@hapi/hoek": "9.x.x", @@ -930,13 +861,11 @@ }, "node_modules/@hapi/hoek": { "version": "9.3.0", - "resolved": "https://registry.npmjs.org/@hapi/hoek/-/hoek-9.3.0.tgz", - "integrity": "sha512-/c6rf4UJlmHlC9b5BaNvzAcFv7HZ2QHaV0D4/HNlBdvFnvQq8RI4kYdhyPCl7Xj+oWvTWQ8ujhqS53LIgAe6KQ==" + "license": "BSD-3-Clause" }, "node_modules/@hapi/iron": { "version": "6.0.0", - "resolved": "https://registry.npmjs.org/@hapi/iron/-/iron-6.0.0.tgz", - "integrity": "sha512-zvGvWDufiTGpTJPG1Y/McN8UqWBu0k/xs/7l++HVU535NLHXsHhy54cfEMdW7EjwKfbBfM9Xy25FmTiobb7Hvw==", + "license": "BSD-3-Clause", "dependencies": { "@hapi/b64": "5.x.x", "@hapi/boom": "9.x.x", @@ -947,8 +876,7 @@ }, "node_modules/@hapi/mimos": { "version": "6.0.0", - "resolved": "https://registry.npmjs.org/@hapi/mimos/-/mimos-6.0.0.tgz", - "integrity": "sha512-Op/67tr1I+JafN3R3XN5DucVSxKRT/Tc+tUszDwENoNpolxeXkhrJ2Czt6B6AAqrespHoivhgZBWYSuANN9QXg==", + "license": "BSD-3-Clause", "dependencies": { "@hapi/hoek": "9.x.x", "mime-db": "1.x.x" @@ -956,8 +884,7 @@ }, "node_modules/@hapi/nigel": { "version": "4.0.2", - "resolved": "https://registry.npmjs.org/@hapi/nigel/-/nigel-4.0.2.tgz", - "integrity": "sha512-ht2KoEsDW22BxQOEkLEJaqfpoKPXxi7tvabXy7B/77eFtOyG5ZEstfZwxHQcqAiZhp58Ae5vkhEqI03kawkYNw==", + "license": "BSD-3-Clause", "dependencies": { "@hapi/hoek": "^9.0.4", "@hapi/vise": "^4.0.0" @@ -968,8 +895,7 @@ }, "node_modules/@hapi/pez": { "version": "5.0.3", - "resolved": "https://registry.npmjs.org/@hapi/pez/-/pez-5.0.3.tgz", - "integrity": "sha512-mpikYRJjtrbJgdDHG/H9ySqYqwJ+QU/D7FXsYciS9P7NYBXE2ayKDAy3H0ou6CohOCaxPuTV4SZ0D936+VomHA==", + "license": "BSD-3-Clause", "dependencies": { "@hapi/b64": "5.x.x", "@hapi/boom": "9.x.x", @@ -980,8 +906,7 @@ }, "node_modules/@hapi/podium": { "version": "4.1.3", - "resolved": "https://registry.npmjs.org/@hapi/podium/-/podium-4.1.3.tgz", - "integrity": "sha512-ljsKGQzLkFqnQxE7qeanvgGj4dejnciErYd30dbrYzUOF/FyS/DOF97qcrT3bhoVwCYmxa6PEMhxfCPlnUcD2g==", + "license": "BSD-3-Clause", "dependencies": { "@hapi/hoek": "9.x.x", "@hapi/teamwork": "5.x.x", @@ -990,8 +915,7 @@ }, "node_modules/@hapi/shot": { "version": "5.0.5", - "resolved": "https://registry.npmjs.org/@hapi/shot/-/shot-5.0.5.tgz", - "integrity": "sha512-x5AMSZ5+j+Paa8KdfCoKh+klB78otxF+vcJR/IoN91Vo2e5ulXIW6HUsFTCU+4W6P/Etaip9nmdAx2zWDimB2A==", + "license": "BSD-3-Clause", "dependencies": { "@hapi/hoek": "9.x.x", "@hapi/validate": "1.x.x" @@ -999,8 +923,7 @@ }, "node_modules/@hapi/somever": { "version": "3.0.1", - "resolved": "https://registry.npmjs.org/@hapi/somever/-/somever-3.0.1.tgz", - "integrity": "sha512-4ZTSN3YAHtgpY/M4GOtHUXgi6uZtG9nEZfNI6QrArhK0XN/RDVgijlb9kOmXwCR5VclDSkBul9FBvhSuKXx9+w==", + "license": "BSD-3-Clause", "dependencies": { "@hapi/bounce": "2.x.x", "@hapi/hoek": "9.x.x" @@ -1008,8 +931,7 @@ }, "node_modules/@hapi/statehood": { "version": "7.0.4", - "resolved": "https://registry.npmjs.org/@hapi/statehood/-/statehood-7.0.4.tgz", - "integrity": "sha512-Fia6atroOVmc5+2bNOxF6Zv9vpbNAjEXNcUbWXavDqhnJDlchwUUwKS5LCi5mGtCTxRhUKKHwuxuBZJkmLZ7fw==", + "license": "BSD-3-Clause", "dependencies": { "@hapi/boom": "9.x.x", "@hapi/bounce": "2.x.x", @@ -1022,8 +944,7 @@ }, "node_modules/@hapi/subtext": { "version": "7.0.4", - "resolved": "https://registry.npmjs.org/@hapi/subtext/-/subtext-7.0.4.tgz", - "integrity": "sha512-Y72moHhbRuO8kwBHFEnCRw7oOnhNh4Pl+aonxAze18jkyMpE4Gwz4lNID7ei8vd3lpXC2rKdkxXJgtfY+WttRw==", + "license": "BSD-3-Clause", "dependencies": { "@hapi/boom": "9.x.x", "@hapi/bourne": "2.x.x", @@ -1036,24 +957,21 @@ }, "node_modules/@hapi/teamwork": { "version": "5.1.1", - "resolved": "https://registry.npmjs.org/@hapi/teamwork/-/teamwork-5.1.1.tgz", - "integrity": "sha512-1oPx9AE5TIv+V6Ih54RP9lTZBso3rP8j4Xhb6iSVwPXtAM+sDopl5TFMv5Paw73UnpZJ9gjcrTE1BXrWt9eQrg==", + "license": "BSD-3-Clause", "engines": { "node": ">=12.0.0" } }, "node_modules/@hapi/topo": { "version": "5.1.0", - "resolved": "https://registry.npmjs.org/@hapi/topo/-/topo-5.1.0.tgz", - "integrity": "sha512-foQZKJig7Ob0BMAYBfcJk8d77QtOe7Wo4ox7ff1lQYoNNAb6jwcY1ncdoy2e9wQZzvNy7ODZCYJkK8kzmcAnAg==", + "license": "BSD-3-Clause", "dependencies": { "@hapi/hoek": "^9.0.0" } }, "node_modules/@hapi/validate": { "version": "1.1.3", - "resolved": "https://registry.npmjs.org/@hapi/validate/-/validate-1.1.3.tgz", - "integrity": "sha512-/XMR0N0wjw0Twzq2pQOzPBZlDzkekGcoCtzO314BpIEsbXdYGthQUbxgkGDf4nhk1+IPDAsXqWjMohRQYO06UA==", + "license": "BSD-3-Clause", "dependencies": { "@hapi/hoek": "^9.0.0", "@hapi/topo": "^5.0.0" @@ -1061,16 +979,14 @@ }, "node_modules/@hapi/vise": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/@hapi/vise/-/vise-4.0.0.tgz", - "integrity": "sha512-eYyLkuUiFZTer59h+SGy7hUm+qE9p+UemePTHLlIWppEd+wExn3Df5jO04bFQTm7nleF5V8CtuYQYb+VFpZ6Sg==", + "license": "BSD-3-Clause", "dependencies": { "@hapi/hoek": "9.x.x" } }, "node_modules/@hapi/wreck": { "version": "17.2.0", - "resolved": "https://registry.npmjs.org/@hapi/wreck/-/wreck-17.2.0.tgz", - "integrity": "sha512-pJ5kjYoRPYDv+eIuiLQqhGon341fr2bNIYZjuotuPJG/3Ilzr/XtI+JAp0A86E2bYfsS3zBPABuS2ICkaXFT8g==", + "license": "BSD-3-Clause", "dependencies": { "@hapi/boom": "9.x.x", "@hapi/bourne": "2.x.x", @@ -1079,9 +995,8 @@ }, "node_modules/@humanwhocodes/config-array": { "version": "0.11.8", - "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.11.8.tgz", - "integrity": "sha512-UybHIJzJnR5Qc/MsD9Kr+RpO2h+/P1GhOwdiLPXK5TWk5sgTdu88bTD9UP+CKbPPh5Rni1u0GjAdYQLemG8g+g==", "dev": true, + "license": "Apache-2.0", "peer": true, "dependencies": { "@humanwhocodes/object-schema": "^1.2.1", @@ -1094,9 +1009,8 @@ }, "node_modules/@humanwhocodes/config-array/node_modules/brace-expansion": { "version": "1.1.11", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", - "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", "dev": true, + "license": "MIT", "peer": true, "dependencies": { "balanced-match": "^1.0.0", @@ -1105,9 +1019,8 @@ }, "node_modules/@humanwhocodes/config-array/node_modules/minimatch": { "version": "3.1.2", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", - "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", "dev": true, + "license": "ISC", "peer": true, "dependencies": { "brace-expansion": "^1.1.7" @@ -1118,9 +1031,8 @@ }, "node_modules/@humanwhocodes/module-importer": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@humanwhocodes/module-importer/-/module-importer-1.0.1.tgz", - "integrity": "sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==", "dev": true, + "license": "Apache-2.0", "peer": true, "engines": { "node": ">=12.22" @@ -1132,15 +1044,13 @@ }, "node_modules/@humanwhocodes/object-schema": { "version": "1.2.1", - "resolved": "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-1.2.1.tgz", - "integrity": "sha512-ZnQMnLV4e7hDlUvw8H+U8ASL02SS2Gn6+9Ac3wGGLIe7+je2AeAOxPY+izIPJDfFDb7eDjev0Us8MO1iFRN8hA==", "dev": true, + "license": "BSD-3-Clause", "peer": true }, "node_modules/@ipld/car": { "version": "5.0.3", - "resolved": "https://registry.npmjs.org/@ipld/car/-/car-5.0.3.tgz", - "integrity": "sha512-omPSY65OSVmlFGJDn2xbd75o71GNHmgP5u2dQ5fITc0X/QqJZVfZi95NCs8oa1wWhjkaK3RTswRSg2iNqFUSAg==", + "license": "Apache-2.0 OR MIT", "dependencies": { "@ipld/dag-cbor": "^9.0.0", "cborg": "^1.9.0", @@ -1154,8 +1064,7 @@ }, "node_modules/@ipld/car/node_modules/@ipld/dag-cbor": { "version": "9.0.0", - "resolved": "https://registry.npmjs.org/@ipld/dag-cbor/-/dag-cbor-9.0.0.tgz", - "integrity": "sha512-zdsiSiYDEOIDW7mmWOYWC9gukjXO+F8wqxz/LfN7iSwTfIyipC8+UQrCbPupFMRb/33XQTZk8yl3My8vUQBRoA==", + "license": "Apache-2.0 OR MIT", "dependencies": { "cborg": "^1.10.0", "multiformats": "^11.0.0" @@ -1167,8 +1076,7 @@ }, "node_modules/@ipld/dag-cbor": { "version": "8.0.1", - "resolved": "https://registry.npmjs.org/@ipld/dag-cbor/-/dag-cbor-8.0.1.tgz", - "integrity": "sha512-mHRuzgGXNk0Y5W7nNQdN37qJiig1Kdgf92icBVFRUNtBc9Ezl5DIdWfiGWBucHBrhqPBncxoH3As9cHPIRozxA==", + "license": "Apache-2.0 OR MIT", "dependencies": { "cborg": "^1.6.0", "multiformats": "^11.0.0" @@ -1180,8 +1088,7 @@ }, "node_modules/@ipld/dag-json": { "version": "9.1.1", - "resolved": "https://registry.npmjs.org/@ipld/dag-json/-/dag-json-9.1.1.tgz", - "integrity": "sha512-L0l+Osi8zAWUw2L/fWJjeZ75l7XojD0Mud1Xvo32q8AJeVuqvCQFdqqIFBiq8MwuqC8qS8kbysro3w5mphUiDQ==", + "license": "Apache-2.0 OR MIT", "dependencies": { "cborg": "^1.5.4", "multiformats": "^11.0.0" @@ -1193,8 +1100,7 @@ }, "node_modules/@ipld/dag-pb": { "version": "3.0.2", - "resolved": "https://registry.npmjs.org/@ipld/dag-pb/-/dag-pb-3.0.2.tgz", - "integrity": "sha512-ge+llKU/CNc6rX5ZcUhCrPXJjKjN1DsolDOJ99zOsousGOhepoIgvT01iAP8s7QN9QFciOE+a1jHdccs+CyhBA==", + "license": "Apache-2.0 OR MIT", "dependencies": { "multiformats": "^11.0.0" }, @@ -1205,9 +1111,8 @@ }, "node_modules/@jridgewell/gen-mapping": { "version": "0.1.1", - "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.1.1.tgz", - "integrity": "sha512-sQXCasFk+U8lWYEe66WxRDOE9PjVz4vSM51fTu3Hw+ClTpUSQb718772vH3pyS5pShp6lvQM7SxgIDXXXmOX7w==", "dev": true, + "license": "MIT", "dependencies": { "@jridgewell/set-array": "^1.0.0", "@jridgewell/sourcemap-codec": "^1.4.10" @@ -1218,33 +1123,29 @@ }, "node_modules/@jridgewell/resolve-uri": { "version": "3.1.0", - "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.0.tgz", - "integrity": "sha512-F2msla3tad+Mfht5cJq7LSXcdudKTWCVYUgw6pLFOOHSTtZlj6SWNYAp+AhuqLmWdBO2X5hPrLcu8cVP8fy28w==", "dev": true, + "license": "MIT", "engines": { "node": ">=6.0.0" } }, "node_modules/@jridgewell/set-array": { "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.1.2.tgz", - "integrity": "sha512-xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw==", "dev": true, + "license": "MIT", "engines": { "node": ">=6.0.0" } }, "node_modules/@jridgewell/sourcemap-codec": { "version": "1.4.14", - "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.14.tgz", - "integrity": "sha512-XPSJHWmi394fuUuzDnGz1wiKqWfo1yXecHQMRf2l6hztTO+nPru658AyDngaBe7isIxEkRsPR3FZh+s7iVa4Uw==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/@jridgewell/trace-mapping": { "version": "0.3.17", - "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.17.tgz", - "integrity": "sha512-MCNzAp77qzKca9+W/+I0+sEpaUnZoeasnghNeVc41VZCEKaCH73Vq3BZZ/SzWIgrqE4H4ceI+p+b6C0mHf9T4g==", "dev": true, + "license": "MIT", "dependencies": { "@jridgewell/resolve-uri": "3.1.0", "@jridgewell/sourcemap-codec": "1.4.14" @@ -1252,13 +1153,11 @@ }, "node_modules/@leichtgewicht/ip-codec": { "version": "2.0.4", - "resolved": "https://registry.npmjs.org/@leichtgewicht/ip-codec/-/ip-codec-2.0.4.tgz", - "integrity": "sha512-Hcv+nVC0kZnQ3tD9GVu5xSMR4VVYOteQIr/hwFPVEvPdlXqgGEuRjiheChHgdM+JyqdgNcmzZOX/tnl0JOiI7A==" + "license": "MIT" }, "node_modules/@libp2p/bootstrap": { "version": "5.0.2", - "resolved": "https://registry.npmjs.org/@libp2p/bootstrap/-/bootstrap-5.0.2.tgz", - "integrity": "sha512-AOr/uCjHpkfVWFylYXn7KRa1oIGmyZpadoMUr09nAEG0S3ejTda3TMFu90SXApMDnfSsaWyrnsfxNlH8HbfdSg==", + "license": "Apache-2.0 OR MIT", "dependencies": { "@libp2p/interface-peer-discovery": "^1.0.1", "@libp2p/interface-peer-info": "^1.0.3", @@ -1276,8 +1175,7 @@ }, "node_modules/@libp2p/components": { "version": "2.1.1", - "resolved": "https://registry.npmjs.org/@libp2p/components/-/components-2.1.1.tgz", - "integrity": "sha512-/XtfEdBHaNhwiaf9RowiSYnyVFIl+shuZNGQlCsJmOnn5X490TMo9GJ9PVfrTRnRn3ZXPBLS5Vp0s6++ShSv7g==", + "license": "Apache-2.0 OR MIT", "dependencies": { "@libp2p/interface-address-manager": "^1.0.2", "@libp2p/interface-connection": "^3.0.1", @@ -1302,8 +1200,7 @@ }, "node_modules/@libp2p/components/node_modules/@libp2p/interface-address-manager": { "version": "1.0.3", - "resolved": "https://registry.npmjs.org/@libp2p/interface-address-manager/-/interface-address-manager-1.0.3.tgz", - "integrity": "sha512-/DNGUQEXA0Ks+EOp0IVv3TsWq1H+4ZlSnyBozzNGDmufz6wG+EvUDBbwIXieHR898bj4pHfmmogK+Vwz5s5Kdw==", + "license": "Apache-2.0 OR MIT", "dependencies": { "@libp2p/interfaces": "^3.0.0", "@multiformats/multiaddr": "^11.0.0" @@ -1315,8 +1212,7 @@ }, "node_modules/@libp2p/components/node_modules/@libp2p/interface-metrics": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/@libp2p/interface-metrics/-/interface-metrics-3.0.0.tgz", - "integrity": "sha512-TxK63BrDalv0yW544608xfmg3rsbh31ykZzf7I1yjMCZpyIFOqLTH1WN4YQwXKNlMz/XURux99UTpGSRYl3nOA==", + "license": "Apache-2.0 OR MIT", "dependencies": { "@libp2p/interface-peer-id": "^1.0.0", "it-stream-types": "^1.0.4" @@ -1328,8 +1224,7 @@ }, "node_modules/@libp2p/components/node_modules/@libp2p/interface-peer-id": { "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@libp2p/interface-peer-id/-/interface-peer-id-1.1.2.tgz", - "integrity": "sha512-S5iyVzG2EUgxm4NLe8W4ya9kpKuGfHs7Wbbos0wOUB4GXsbIKgOOxIr4yf+xGFgtEBaoximvlLkpob6dn8VFgA==", + "license": "Apache-2.0 OR MIT", "dependencies": { "multiformats": "^10.0.0" }, @@ -1340,8 +1235,7 @@ }, "node_modules/@libp2p/components/node_modules/@libp2p/interface-pubsub": { "version": "2.1.0", - "resolved": "https://registry.npmjs.org/@libp2p/interface-pubsub/-/interface-pubsub-2.1.0.tgz", - "integrity": "sha512-X+SIqzfeCO8ZDGrFTzH9EMwMf8ojW5nk20rxv3h1sCXEdfvyJCARZ51r9UlwJcnucnHqvFChfkbubAkrr3R4Cw==", + "license": "Apache-2.0 OR MIT", "dependencies": { "@libp2p/interface-connection": "^3.0.0", "@libp2p/interface-peer-id": "^1.0.0", @@ -1356,8 +1250,7 @@ }, "node_modules/@libp2p/components/node_modules/@libp2p/interface-transport": { "version": "1.0.4", - "resolved": "https://registry.npmjs.org/@libp2p/interface-transport/-/interface-transport-1.0.4.tgz", - "integrity": "sha512-MOkhtykUrrbgHC1CcAFe/6QTz/BEBbHfu5sf+go6dhBlHXeHI+AcV8Fic5zTZNz71E1SRi2UR+5TVi7ORPL57Q==", + "license": "Apache-2.0 OR MIT", "dependencies": { "@libp2p/interface-connection": "^3.0.0", "@libp2p/interfaces": "^3.0.0", @@ -1371,8 +1264,7 @@ }, "node_modules/@libp2p/components/node_modules/multiformats": { "version": "10.0.3", - "resolved": "https://registry.npmjs.org/multiformats/-/multiformats-10.0.3.tgz", - "integrity": "sha512-K2yGSmstS/oEmYiEIieHb53jJCaqp4ERPDQAYrm5sV3UUrVDZeshJQCK6GHAKyIGufU1vAcbS0PdAAZmC7Tzcw==", + "license": "Apache-2.0 OR MIT", "engines": { "node": ">=16.0.0", "npm": ">=7.0.0" @@ -1380,8 +1272,7 @@ }, "node_modules/@libp2p/connection": { "version": "4.0.2", - "resolved": "https://registry.npmjs.org/@libp2p/connection/-/connection-4.0.2.tgz", - "integrity": "sha512-l/mvmcA7QkAC/0qRmTpuD5CeMaiy4DuKCsutaY3PpwJbMegTOjxuZh0uzk3z94d0wJBnhquVZ0e4Yqvd+QGlng==", + "license": "Apache-2.0 OR MIT", "dependencies": { "@libp2p/interface-connection": "^3.0.2", "@libp2p/interface-peer-id": "^1.0.4", @@ -1397,8 +1288,7 @@ }, "node_modules/@libp2p/connection/node_modules/@libp2p/interface-peer-id": { "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@libp2p/interface-peer-id/-/interface-peer-id-1.1.2.tgz", - "integrity": "sha512-S5iyVzG2EUgxm4NLe8W4ya9kpKuGfHs7Wbbos0wOUB4GXsbIKgOOxIr4yf+xGFgtEBaoximvlLkpob6dn8VFgA==", + "license": "Apache-2.0 OR MIT", "dependencies": { "multiformats": "^10.0.0" }, @@ -1409,8 +1299,7 @@ }, "node_modules/@libp2p/connection/node_modules/multiformats": { "version": "10.0.3", - "resolved": "https://registry.npmjs.org/multiformats/-/multiformats-10.0.3.tgz", - "integrity": "sha512-K2yGSmstS/oEmYiEIieHb53jJCaqp4ERPDQAYrm5sV3UUrVDZeshJQCK6GHAKyIGufU1vAcbS0PdAAZmC7Tzcw==", + "license": "Apache-2.0 OR MIT", "engines": { "node": ">=16.0.0", "npm": ">=7.0.0" @@ -1418,8 +1307,7 @@ }, "node_modules/@libp2p/crypto": { "version": "1.0.11", - "resolved": "https://registry.npmjs.org/@libp2p/crypto/-/crypto-1.0.11.tgz", - "integrity": "sha512-DWiG/0fKIDnkhTF3HoCu2OzkuKXysR/UKGdM9JZkT6F9jS9rwZYEwmacs4ybw1qyufyH+pMXV3/vuUu2Q/UxLw==", + "license": "Apache-2.0 OR MIT", "dependencies": { "@libp2p/interface-keys": "^1.0.2", "@noble/ed25519": "^1.6.0", @@ -1437,8 +1325,7 @@ }, "node_modules/@libp2p/delegated-content-routing": { "version": "3.0.1", - "resolved": "https://registry.npmjs.org/@libp2p/delegated-content-routing/-/delegated-content-routing-3.0.1.tgz", - "integrity": "sha512-KEj6g0Ag0hjVzj8ljjVlf47nNbZuRtwMPH4sjySOwfnpvtQjPtjT8Lz7PkANtQeL+qG0Zd15CNFxD88gIwmVCg==", + "license": "Apache-2.0 OR MIT", "dependencies": { "@libp2p/interface-content-routing": "^1.0.2", "@libp2p/interface-peer-id": "^1.0.4", @@ -1459,8 +1346,7 @@ }, "node_modules/@libp2p/delegated-content-routing/node_modules/@libp2p/interface-peer-id": { "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@libp2p/interface-peer-id/-/interface-peer-id-1.1.2.tgz", - "integrity": "sha512-S5iyVzG2EUgxm4NLe8W4ya9kpKuGfHs7Wbbos0wOUB4GXsbIKgOOxIr4yf+xGFgtEBaoximvlLkpob6dn8VFgA==", + "license": "Apache-2.0 OR MIT", "dependencies": { "multiformats": "^10.0.0" }, @@ -1471,8 +1357,7 @@ }, "node_modules/@libp2p/delegated-content-routing/node_modules/multiformats": { "version": "10.0.3", - "resolved": "https://registry.npmjs.org/multiformats/-/multiformats-10.0.3.tgz", - "integrity": "sha512-K2yGSmstS/oEmYiEIieHb53jJCaqp4ERPDQAYrm5sV3UUrVDZeshJQCK6GHAKyIGufU1vAcbS0PdAAZmC7Tzcw==", + "license": "Apache-2.0 OR MIT", "engines": { "node": ">=16.0.0", "npm": ">=7.0.0" @@ -1480,8 +1365,7 @@ }, "node_modules/@libp2p/delegated-peer-routing": { "version": "3.0.1", - "resolved": "https://registry.npmjs.org/@libp2p/delegated-peer-routing/-/delegated-peer-routing-3.0.1.tgz", - "integrity": "sha512-qD082tKPThlKNYVmmLV95uRQzDJkekTKp96J7NZjrUEFx7S6a2l7kVvxvh+cGNF3l5lqvVnA35VSE4pljcxPzA==", + "license": "Apache-2.0 OR MIT", "dependencies": { "@libp2p/interface-peer-id": "^1.0.2", "@libp2p/interface-peer-info": "^1.0.1", @@ -1502,8 +1386,7 @@ }, "node_modules/@libp2p/delegated-peer-routing/node_modules/@libp2p/interface-peer-id": { "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@libp2p/interface-peer-id/-/interface-peer-id-1.1.2.tgz", - "integrity": "sha512-S5iyVzG2EUgxm4NLe8W4ya9kpKuGfHs7Wbbos0wOUB4GXsbIKgOOxIr4yf+xGFgtEBaoximvlLkpob6dn8VFgA==", + "license": "Apache-2.0 OR MIT", "dependencies": { "multiformats": "^10.0.0" }, @@ -1514,8 +1397,7 @@ }, "node_modules/@libp2p/delegated-peer-routing/node_modules/multiformats": { "version": "10.0.3", - "resolved": "https://registry.npmjs.org/multiformats/-/multiformats-10.0.3.tgz", - "integrity": "sha512-K2yGSmstS/oEmYiEIieHb53jJCaqp4ERPDQAYrm5sV3UUrVDZeshJQCK6GHAKyIGufU1vAcbS0PdAAZmC7Tzcw==", + "license": "Apache-2.0 OR MIT", "engines": { "node": ">=16.0.0", "npm": ">=7.0.0" @@ -1523,8 +1405,7 @@ }, "node_modules/@libp2p/floodsub": { "version": "5.0.0", - "resolved": "https://registry.npmjs.org/@libp2p/floodsub/-/floodsub-5.0.0.tgz", - "integrity": "sha512-B39UW/AWgfVVUl2yJDardmL2kKo1Zd4E+11/rkyjnjbygh944DTLcp3B2gSarqRlyN+x4ChUTKiN75UGajOaog==", + "license": "Apache-2.0 OR MIT", "dependencies": { "@libp2p/interface-peer-id": "^1.0.2", "@libp2p/interface-pubsub": "^3.0.0", @@ -1541,8 +1422,7 @@ }, "node_modules/@libp2p/floodsub/node_modules/@libp2p/interface-peer-id": { "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@libp2p/interface-peer-id/-/interface-peer-id-1.1.2.tgz", - "integrity": "sha512-S5iyVzG2EUgxm4NLe8W4ya9kpKuGfHs7Wbbos0wOUB4GXsbIKgOOxIr4yf+xGFgtEBaoximvlLkpob6dn8VFgA==", + "license": "Apache-2.0 OR MIT", "dependencies": { "multiformats": "^10.0.0" }, @@ -1553,8 +1433,7 @@ }, "node_modules/@libp2p/floodsub/node_modules/@libp2p/pubsub": { "version": "5.0.1", - "resolved": "https://registry.npmjs.org/@libp2p/pubsub/-/pubsub-5.0.1.tgz", - "integrity": "sha512-pQNpUC6KWDKCm7A9bv4tT2t3a7a4IpJdfzHsRBjAaKEcIRgP/s/q0Xn8ySdcggg1fvdjMp5VY6NfuuRbSCu9LA==", + "license": "Apache-2.0 OR MIT", "dependencies": { "@libp2p/crypto": "^1.0.0", "@libp2p/interface-connection": "^3.0.1", @@ -1584,8 +1463,7 @@ }, "node_modules/@libp2p/floodsub/node_modules/multiformats": { "version": "10.0.3", - "resolved": "https://registry.npmjs.org/multiformats/-/multiformats-10.0.3.tgz", - "integrity": "sha512-K2yGSmstS/oEmYiEIieHb53jJCaqp4ERPDQAYrm5sV3UUrVDZeshJQCK6GHAKyIGufU1vAcbS0PdAAZmC7Tzcw==", + "license": "Apache-2.0 OR MIT", "engines": { "node": ">=16.0.0", "npm": ">=7.0.0" @@ -1593,8 +1471,7 @@ }, "node_modules/@libp2p/interface-address-manager": { "version": "2.0.3", - "resolved": "https://registry.npmjs.org/@libp2p/interface-address-manager/-/interface-address-manager-2.0.3.tgz", - "integrity": "sha512-SR0JeXpTAHP+MLLWI1wYTFPJC5kl7NkDIxhZcgkCUyh8/Y3G6FBFa5MocVy3eW+Fd0iETYfxl+Gsk75JdERIdA==", + "license": "Apache-2.0 OR MIT", "dependencies": { "@libp2p/interfaces": "^3.0.0", "@multiformats/multiaddr": "^11.0.0" @@ -1606,8 +1483,7 @@ }, "node_modules/@libp2p/interface-connection": { "version": "3.0.7", - "resolved": "https://registry.npmjs.org/@libp2p/interface-connection/-/interface-connection-3.0.7.tgz", - "integrity": "sha512-MBDrGlrSO1nL1DqqjNQzZSjcY2tobo6BOo9DxCFbaESiK7u1YLBNo9Amd0o5bPpFjez+O/VSasz9x3SQpHU1qQ==", + "license": "Apache-2.0 OR MIT", "dependencies": { "@libp2p/interface-peer-id": "^2.0.0", "@libp2p/interfaces": "^3.0.0", @@ -1622,8 +1498,7 @@ }, "node_modules/@libp2p/interface-connection-encrypter": { "version": "3.0.5", - "resolved": "https://registry.npmjs.org/@libp2p/interface-connection-encrypter/-/interface-connection-encrypter-3.0.5.tgz", - "integrity": "sha512-Mn905Cc6xgGYlU3iQqypd/blWqmznaITYpPZz417Xgdg274OtBk9xFU4IhnUsAfRtXOTZtN3u+4tdk0mx/N+/w==", + "license": "Apache-2.0 OR MIT", "dependencies": { "@libp2p/interface-peer-id": "^2.0.0", "it-stream-types": "^1.0.4", @@ -1636,8 +1511,7 @@ }, "node_modules/@libp2p/interface-connection-manager": { "version": "1.3.5", - "resolved": "https://registry.npmjs.org/@libp2p/interface-connection-manager/-/interface-connection-manager-1.3.5.tgz", - "integrity": "sha512-vEqrLk0TDX7Eg91JIsgit3bBLr+ABXjGru9Ejd6RpD5dLVcFClneevpYt3TtWT/sJO2dQOdmO6VVmiyHCm/glQ==", + "license": "Apache-2.0 OR MIT", "dependencies": { "@libp2p/interface-connection": "^3.0.0", "@libp2p/interface-peer-id": "^2.0.0", @@ -1651,8 +1525,7 @@ }, "node_modules/@libp2p/interface-content-routing": { "version": "1.0.7", - "resolved": "https://registry.npmjs.org/@libp2p/interface-content-routing/-/interface-content-routing-1.0.7.tgz", - "integrity": "sha512-10MgDDwhS3uBaEppViBtJEVjgZohAKNLaGnzHPej0ByfnESI8DFlgpMOZVOMUlW/NpLOXxqrYuHALefuDWfqmw==", + "license": "Apache-2.0 OR MIT", "dependencies": { "@libp2p/interface-peer-info": "^1.0.0", "@libp2p/interfaces": "^3.0.0", @@ -1665,8 +1538,7 @@ }, "node_modules/@libp2p/interface-content-routing/node_modules/multiformats": { "version": "10.0.3", - "resolved": "https://registry.npmjs.org/multiformats/-/multiformats-10.0.3.tgz", - "integrity": "sha512-K2yGSmstS/oEmYiEIieHb53jJCaqp4ERPDQAYrm5sV3UUrVDZeshJQCK6GHAKyIGufU1vAcbS0PdAAZmC7Tzcw==", + "license": "Apache-2.0 OR MIT", "engines": { "node": ">=16.0.0", "npm": ">=7.0.0" @@ -1674,8 +1546,7 @@ }, "node_modules/@libp2p/interface-dht": { "version": "1.0.5", - "resolved": "https://registry.npmjs.org/@libp2p/interface-dht/-/interface-dht-1.0.5.tgz", - "integrity": "sha512-kqcHpv0VlhZbHNXVou6qOFw3UUtJBlsJi641Jh6BUZouoej8b2wp/TacOuiHvC6Uy8ACanzprzVG1Rk01mgZwA==", + "license": "Apache-2.0 OR MIT", "dependencies": { "@libp2p/interface-peer-discovery": "^1.0.0", "@libp2p/interface-peer-id": "^1.0.0", @@ -1690,8 +1561,7 @@ }, "node_modules/@libp2p/interface-dht/node_modules/@libp2p/interface-peer-id": { "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@libp2p/interface-peer-id/-/interface-peer-id-1.1.2.tgz", - "integrity": "sha512-S5iyVzG2EUgxm4NLe8W4ya9kpKuGfHs7Wbbos0wOUB4GXsbIKgOOxIr4yf+xGFgtEBaoximvlLkpob6dn8VFgA==", + "license": "Apache-2.0 OR MIT", "dependencies": { "multiformats": "^10.0.0" }, @@ -1702,8 +1572,7 @@ }, "node_modules/@libp2p/interface-dht/node_modules/multiformats": { "version": "10.0.3", - "resolved": "https://registry.npmjs.org/multiformats/-/multiformats-10.0.3.tgz", - "integrity": "sha512-K2yGSmstS/oEmYiEIieHb53jJCaqp4ERPDQAYrm5sV3UUrVDZeshJQCK6GHAKyIGufU1vAcbS0PdAAZmC7Tzcw==", + "license": "Apache-2.0 OR MIT", "engines": { "node": ">=16.0.0", "npm": ">=7.0.0" @@ -1711,8 +1580,7 @@ }, "node_modules/@libp2p/interface-keychain": { "version": "1.0.8", - "resolved": "https://registry.npmjs.org/@libp2p/interface-keychain/-/interface-keychain-1.0.8.tgz", - "integrity": "sha512-JqI7mMthIafP8cGhhsmIs/M0Ey+ivHLcpzqbVVzMFiFVi1dC03R7EHlalcaPn8yaLSvlmI0MqjC8lJYuvlFjfw==", + "license": "Apache-2.0 OR MIT", "dependencies": { "multiformats": "^10.0.0" }, @@ -1723,8 +1591,7 @@ }, "node_modules/@libp2p/interface-keychain/node_modules/multiformats": { "version": "10.0.3", - "resolved": "https://registry.npmjs.org/multiformats/-/multiformats-10.0.3.tgz", - "integrity": "sha512-K2yGSmstS/oEmYiEIieHb53jJCaqp4ERPDQAYrm5sV3UUrVDZeshJQCK6GHAKyIGufU1vAcbS0PdAAZmC7Tzcw==", + "license": "Apache-2.0 OR MIT", "engines": { "node": ">=16.0.0", "npm": ">=7.0.0" @@ -1732,8 +1599,7 @@ }, "node_modules/@libp2p/interface-keys": { "version": "1.0.6", - "resolved": "https://registry.npmjs.org/@libp2p/interface-keys/-/interface-keys-1.0.6.tgz", - "integrity": "sha512-cYe8DyKONA4TFdjEnPTPSWRntBH5+MMzivjtduVQukv7aO6PpihBF4PixzhKds+ciR2TMIkGXPsDaehmmU0Mqw==", + "license": "Apache-2.0 OR MIT", "engines": { "node": ">=16.0.0", "npm": ">=7.0.0" @@ -1741,8 +1607,7 @@ }, "node_modules/@libp2p/interface-metrics": { "version": "4.0.4", - "resolved": "https://registry.npmjs.org/@libp2p/interface-metrics/-/interface-metrics-4.0.4.tgz", - "integrity": "sha512-XgXsPyRaTpEbmDhm1nA+zH+XjBb33PODTAo2foIcB5xGx7ZJBZgzZGFVyUc2uxRSBwZlFQ3HvsN60R97oQc4ww==", + "license": "Apache-2.0 OR MIT", "dependencies": { "@libp2p/interface-connection": "^3.0.0" }, @@ -1753,8 +1618,7 @@ }, "node_modules/@libp2p/interface-peer-discovery": { "version": "1.0.4", - "resolved": "https://registry.npmjs.org/@libp2p/interface-peer-discovery/-/interface-peer-discovery-1.0.4.tgz", - "integrity": "sha512-VPLi7onA+WOjYFYH79Qq2hqR+b+OLqTRom5WJaAXv6pclFb1gUetBv4W1MEHY8Hb7l1MidANO/kSySHZ5A3yPg==", + "license": "Apache-2.0 OR MIT", "dependencies": { "@libp2p/interface-peer-info": "^1.0.0", "@libp2p/interfaces": "^3.0.0" @@ -1766,8 +1630,7 @@ }, "node_modules/@libp2p/interface-peer-id": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/@libp2p/interface-peer-id/-/interface-peer-id-2.0.0.tgz", - "integrity": "sha512-TZmJy/tfWNvX/n1TWby6V+LP9Pg3ZYJbSkqQfnqp/hCCN3Xhd2KrDTm4LWq5MMunr4Xk9xLUJdK41W2wUF7OQw==", + "license": "Apache-2.0 OR MIT", "dependencies": { "multiformats": "^11.0.0" }, @@ -1778,8 +1641,7 @@ }, "node_modules/@libp2p/interface-peer-info": { "version": "1.0.7", - "resolved": "https://registry.npmjs.org/@libp2p/interface-peer-info/-/interface-peer-info-1.0.7.tgz", - "integrity": "sha512-aVI4ii1DFBF1dmQM5uemtO/qxNedCREzBtt2kAQtusN55BKT9GOlBSme+xTYpXw63iDrbtLXgJH+gNPoPkwJeQ==", + "license": "Apache-2.0 OR MIT", "dependencies": { "@libp2p/interface-peer-id": "^2.0.0", "@multiformats/multiaddr": "^11.0.0" @@ -1791,8 +1653,7 @@ }, "node_modules/@libp2p/interface-peer-routing": { "version": "1.0.6", - "resolved": "https://registry.npmjs.org/@libp2p/interface-peer-routing/-/interface-peer-routing-1.0.6.tgz", - "integrity": "sha512-GfrJv+UmcQ6UIwHHSOZ3cW8XBHBCG2Hu+zxB+NNwzWo+hYHrcyTx50e0MFsVcIkGxAE8Aup/URdOWvZjSn76xw==", + "license": "Apache-2.0 OR MIT", "dependencies": { "@libp2p/interface-peer-id": "^2.0.0", "@libp2p/interface-peer-info": "^1.0.0", @@ -1805,8 +1666,7 @@ }, "node_modules/@libp2p/interface-peer-store": { "version": "1.2.7", - "resolved": "https://registry.npmjs.org/@libp2p/interface-peer-store/-/interface-peer-store-1.2.7.tgz", - "integrity": "sha512-ZgvtmFyj0wxg1XuiYgxN2+D45XDbzmBNVcFHoM2x+mV0SDuzbn3rfxZbV9a0hVrDQyW/eTFwbzIjtdPsGZwgqA==", + "license": "Apache-2.0 OR MIT", "dependencies": { "@libp2p/interface-peer-id": "^2.0.0", "@libp2p/interface-peer-info": "^1.0.0", @@ -1821,8 +1681,7 @@ }, "node_modules/@libp2p/interface-pubsub": { "version": "3.0.5", - "resolved": "https://registry.npmjs.org/@libp2p/interface-pubsub/-/interface-pubsub-3.0.5.tgz", - "integrity": "sha512-+DsqrkDeYBuokMCuqLvlsdq4D/Tcs9bwSHeNUw1V88ffZE+pqmMIYntyIpFoI4SCLOxqB8U1B5yAlF/OBuJFSw==", + "license": "Apache-2.0 OR MIT", "dependencies": { "@libp2p/interface-connection": "^3.0.0", "@libp2p/interface-peer-id": "^2.0.0", @@ -1837,8 +1696,7 @@ }, "node_modules/@libp2p/interface-record": { "version": "2.0.5", - "resolved": "https://registry.npmjs.org/@libp2p/interface-record/-/interface-record-2.0.5.tgz", - "integrity": "sha512-QWsGP/wmGSM5qHvmBz6HOzpjICQ96/fQxLeAriR0QQdfQTX7g0IkrIncrck7Aagoa5RzXDt4chhGLOj/G9G1pg==", + "license": "Apache-2.0 OR MIT", "dependencies": { "@libp2p/interface-peer-id": "^2.0.0", "uint8arraylist": "^2.1.2" @@ -1850,8 +1708,7 @@ }, "node_modules/@libp2p/interface-registrar": { "version": "2.0.7", - "resolved": "https://registry.npmjs.org/@libp2p/interface-registrar/-/interface-registrar-2.0.7.tgz", - "integrity": "sha512-lNgWJHzESbmpk0Yatr6ZfCV2Mwnc94/eCe5krHEqRSB0Yu3FOtv/xPNnXcZtE2fghPKEuwL4MnyiT/MozgVClQ==", + "license": "Apache-2.0 OR MIT", "dependencies": { "@libp2p/interface-connection": "^3.0.0", "@libp2p/interface-peer-id": "^2.0.0" @@ -1863,8 +1720,7 @@ }, "node_modules/@libp2p/interface-stream-muxer": { "version": "3.0.4", - "resolved": "https://registry.npmjs.org/@libp2p/interface-stream-muxer/-/interface-stream-muxer-3.0.4.tgz", - "integrity": "sha512-AxqbBmOmxruAyIzscZOK5BwbKP6RscQToT4RielMh6JSsXDInDpAFcpa8qfQrb14mYIwIvQA4FzTaMMbNdDtew==", + "license": "Apache-2.0 OR MIT", "dependencies": { "@libp2p/interface-connection": "^3.0.0", "@libp2p/interfaces": "^3.0.0", @@ -1877,8 +1733,7 @@ }, "node_modules/@libp2p/interface-transport": { "version": "2.1.0", - "resolved": "https://registry.npmjs.org/@libp2p/interface-transport/-/interface-transport-2.1.0.tgz", - "integrity": "sha512-Ffx71dzgqCek7g1/LYGRvg7E2zrPQ+YmsYDcFqL39YRyV7q7dTWmcpVAZdTIOaDviorZn1t3c31AAA9xFewx8A==", + "license": "Apache-2.0 OR MIT", "dependencies": { "@libp2p/interface-connection": "^3.0.0", "@libp2p/interface-stream-muxer": "^3.0.0", @@ -1893,8 +1748,7 @@ }, "node_modules/@libp2p/interfaces": { "version": "3.2.0", - "resolved": "https://registry.npmjs.org/@libp2p/interfaces/-/interfaces-3.2.0.tgz", - "integrity": "sha512-lIVeMMv/TGcN4k5qfe1ZMwUvZTwWqLs7atxuoNdZ7lEPye94XNuHQj2WXoF9nEELkGKevpUJs/OB+gldl9MuFA==", + "license": "Apache-2.0 OR MIT", "engines": { "node": ">=16.0.0", "npm": ">=7.0.0" @@ -1902,8 +1756,7 @@ }, "node_modules/@libp2p/kad-dht": { "version": "5.0.2", - "resolved": "https://registry.npmjs.org/@libp2p/kad-dht/-/kad-dht-5.0.2.tgz", - "integrity": "sha512-Z9f1d3DlYnt3tfF6EBSqPvsB9pnm0qs7zvIk2CdRX5vdLy//IOenepcYfgaC4nDnD/ambELq7VSdGQizGG8S5w==", + "license": "Apache-2.0 OR MIT", "dependencies": { "@libp2p/crypto": "^1.0.4", "@libp2p/interface-address-manager": "^2.0.0", @@ -1958,8 +1811,7 @@ }, "node_modules/@libp2p/kad-dht/node_modules/@libp2p/interface-metrics": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/@libp2p/interface-metrics/-/interface-metrics-3.0.0.tgz", - "integrity": "sha512-TxK63BrDalv0yW544608xfmg3rsbh31ykZzf7I1yjMCZpyIFOqLTH1WN4YQwXKNlMz/XURux99UTpGSRYl3nOA==", + "license": "Apache-2.0 OR MIT", "dependencies": { "@libp2p/interface-peer-id": "^1.0.0", "it-stream-types": "^1.0.4" @@ -1971,8 +1823,7 @@ }, "node_modules/@libp2p/kad-dht/node_modules/@libp2p/interface-peer-id": { "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@libp2p/interface-peer-id/-/interface-peer-id-1.1.2.tgz", - "integrity": "sha512-S5iyVzG2EUgxm4NLe8W4ya9kpKuGfHs7Wbbos0wOUB4GXsbIKgOOxIr4yf+xGFgtEBaoximvlLkpob6dn8VFgA==", + "license": "Apache-2.0 OR MIT", "dependencies": { "multiformats": "^10.0.0" }, @@ -1983,8 +1834,7 @@ }, "node_modules/@libp2p/kad-dht/node_modules/multiformats": { "version": "10.0.3", - "resolved": "https://registry.npmjs.org/multiformats/-/multiformats-10.0.3.tgz", - "integrity": "sha512-K2yGSmstS/oEmYiEIieHb53jJCaqp4ERPDQAYrm5sV3UUrVDZeshJQCK6GHAKyIGufU1vAcbS0PdAAZmC7Tzcw==", + "license": "Apache-2.0 OR MIT", "engines": { "node": ">=16.0.0", "npm": ">=7.0.0" @@ -1992,8 +1842,7 @@ }, "node_modules/@libp2p/logger": { "version": "2.0.5", - "resolved": "https://registry.npmjs.org/@libp2p/logger/-/logger-2.0.5.tgz", - "integrity": "sha512-WEhxsc7+gsfuTcljI4vSgW/H2f18aBaC+JiO01FcX841Wxe9szjzHdBLDh9eqygUlzoK0LEeIBfctN7ibzus5A==", + "license": "Apache-2.0 OR MIT", "dependencies": { "@libp2p/interface-peer-id": "^2.0.0", "debug": "^4.3.3", @@ -2007,8 +1856,7 @@ }, "node_modules/@libp2p/mdns": { "version": "5.1.1", - "resolved": "https://registry.npmjs.org/@libp2p/mdns/-/mdns-5.1.1.tgz", - "integrity": "sha512-fLNcKHtJ1VfAdUHrqLHMiCLrpsWGk8OkZYQN8spwZ1MiX38jqEh5jbPF/m6YmMxnj7UGmaFOnaMhHdhMXWJSvQ==", + "license": "Apache-2.0 OR MIT", "dependencies": { "@libp2p/interface-peer-discovery": "^1.0.1", "@libp2p/interface-peer-id": "^1.0.4", @@ -2028,8 +1876,7 @@ }, "node_modules/@libp2p/mdns/node_modules/@libp2p/interface-peer-id": { "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@libp2p/interface-peer-id/-/interface-peer-id-1.1.2.tgz", - "integrity": "sha512-S5iyVzG2EUgxm4NLe8W4ya9kpKuGfHs7Wbbos0wOUB4GXsbIKgOOxIr4yf+xGFgtEBaoximvlLkpob6dn8VFgA==", + "license": "Apache-2.0 OR MIT", "dependencies": { "multiformats": "^10.0.0" }, @@ -2040,8 +1887,7 @@ }, "node_modules/@libp2p/mdns/node_modules/multiformats": { "version": "10.0.3", - "resolved": "https://registry.npmjs.org/multiformats/-/multiformats-10.0.3.tgz", - "integrity": "sha512-K2yGSmstS/oEmYiEIieHb53jJCaqp4ERPDQAYrm5sV3UUrVDZeshJQCK6GHAKyIGufU1vAcbS0PdAAZmC7Tzcw==", + "license": "Apache-2.0 OR MIT", "engines": { "node": ">=16.0.0", "npm": ">=7.0.0" @@ -2049,8 +1895,7 @@ }, "node_modules/@libp2p/mplex": { "version": "7.1.1", - "resolved": "https://registry.npmjs.org/@libp2p/mplex/-/mplex-7.1.1.tgz", - "integrity": "sha512-0owK1aWgXXtjiohXtjwLV7Ehjdj96eBtsapVt7AzlHA+W8uYnI+x058thq3MisyMDlHiiE3BTh6fEf+t2/0dUw==", + "license": "Apache-2.0 OR MIT", "dependencies": { "@libp2p/interface-connection": "^3.0.1", "@libp2p/interface-stream-muxer": "^3.0.0", @@ -2074,8 +1919,7 @@ }, "node_modules/@libp2p/multistream-select": { "version": "3.1.2", - "resolved": "https://registry.npmjs.org/@libp2p/multistream-select/-/multistream-select-3.1.2.tgz", - "integrity": "sha512-NfF0fwQM4sqiLuNGBVc9z2mfz3OigOfyLJ5zekRBGYHkbKWrBRFS3FligUPr9roCOzH6ojjDkKVd5aK9/llfJQ==", + "license": "Apache-2.0 OR MIT", "dependencies": { "@libp2p/interfaces": "^3.0.2", "@libp2p/logger": "^2.0.0", @@ -2100,8 +1944,7 @@ }, "node_modules/@libp2p/peer-collections": { "version": "2.2.2", - "resolved": "https://registry.npmjs.org/@libp2p/peer-collections/-/peer-collections-2.2.2.tgz", - "integrity": "sha512-sL1A0LBHJAlvqROe+OT61Y6Rg7ff+B+YNDZj+3f/LGvDssyffAQX78cXU+lWKPsT+AwHt7Sk7sO4CsYJbdOScQ==", + "license": "Apache-2.0 OR MIT", "dependencies": { "@libp2p/interface-peer-id": "^1.0.4", "@libp2p/peer-id": "^1.1.0" @@ -2113,8 +1956,7 @@ }, "node_modules/@libp2p/peer-collections/node_modules/@libp2p/interface-peer-id": { "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@libp2p/interface-peer-id/-/interface-peer-id-1.1.2.tgz", - "integrity": "sha512-S5iyVzG2EUgxm4NLe8W4ya9kpKuGfHs7Wbbos0wOUB4GXsbIKgOOxIr4yf+xGFgtEBaoximvlLkpob6dn8VFgA==", + "license": "Apache-2.0 OR MIT", "dependencies": { "multiformats": "^10.0.0" }, @@ -2125,8 +1967,7 @@ }, "node_modules/@libp2p/peer-collections/node_modules/multiformats": { "version": "10.0.3", - "resolved": "https://registry.npmjs.org/multiformats/-/multiformats-10.0.3.tgz", - "integrity": "sha512-K2yGSmstS/oEmYiEIieHb53jJCaqp4ERPDQAYrm5sV3UUrVDZeshJQCK6GHAKyIGufU1vAcbS0PdAAZmC7Tzcw==", + "license": "Apache-2.0 OR MIT", "engines": { "node": ">=16.0.0", "npm": ">=7.0.0" @@ -2134,8 +1975,7 @@ }, "node_modules/@libp2p/peer-id": { "version": "1.1.18", - "resolved": "https://registry.npmjs.org/@libp2p/peer-id/-/peer-id-1.1.18.tgz", - "integrity": "sha512-Zh3gzbrQZKDMLpoJAJB8gdGtyYFSBKV0dU5vflQ18/7MJDJmjsgKO+sJTYi72yN5sWREs1eGKMhxLo+N1ust5w==", + "license": "Apache-2.0 OR MIT", "dependencies": { "@libp2p/interface-peer-id": "^1.0.0", "err-code": "^3.0.1", @@ -2149,8 +1989,7 @@ }, "node_modules/@libp2p/peer-id-factory": { "version": "1.0.20", - "resolved": "https://registry.npmjs.org/@libp2p/peer-id-factory/-/peer-id-factory-1.0.20.tgz", - "integrity": "sha512-+fHhbmDK9Ws6Dmj2ZmfrQouQTZEbTS3FCi3nUDJnnjIS95+radaP085IVkNJYJeeWpxJV90D4EUwtoy83PaoCw==", + "license": "Apache-2.0 OR MIT", "dependencies": { "@libp2p/crypto": "^1.0.0", "@libp2p/interface-keys": "^1.0.2", @@ -2168,8 +2007,7 @@ }, "node_modules/@libp2p/peer-id-factory/node_modules/@libp2p/interface-peer-id": { "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@libp2p/interface-peer-id/-/interface-peer-id-1.1.2.tgz", - "integrity": "sha512-S5iyVzG2EUgxm4NLe8W4ya9kpKuGfHs7Wbbos0wOUB4GXsbIKgOOxIr4yf+xGFgtEBaoximvlLkpob6dn8VFgA==", + "license": "Apache-2.0 OR MIT", "dependencies": { "multiformats": "^10.0.0" }, @@ -2180,8 +2018,7 @@ }, "node_modules/@libp2p/peer-id-factory/node_modules/multiformats": { "version": "10.0.3", - "resolved": "https://registry.npmjs.org/multiformats/-/multiformats-10.0.3.tgz", - "integrity": "sha512-K2yGSmstS/oEmYiEIieHb53jJCaqp4ERPDQAYrm5sV3UUrVDZeshJQCK6GHAKyIGufU1vAcbS0PdAAZmC7Tzcw==", + "license": "Apache-2.0 OR MIT", "engines": { "node": ">=16.0.0", "npm": ">=7.0.0" @@ -2189,8 +2026,7 @@ }, "node_modules/@libp2p/peer-id/node_modules/@libp2p/interface-peer-id": { "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@libp2p/interface-peer-id/-/interface-peer-id-1.1.2.tgz", - "integrity": "sha512-S5iyVzG2EUgxm4NLe8W4ya9kpKuGfHs7Wbbos0wOUB4GXsbIKgOOxIr4yf+xGFgtEBaoximvlLkpob6dn8VFgA==", + "license": "Apache-2.0 OR MIT", "dependencies": { "multiformats": "^10.0.0" }, @@ -2201,8 +2037,7 @@ }, "node_modules/@libp2p/peer-id/node_modules/multiformats": { "version": "10.0.3", - "resolved": "https://registry.npmjs.org/multiformats/-/multiformats-10.0.3.tgz", - "integrity": "sha512-K2yGSmstS/oEmYiEIieHb53jJCaqp4ERPDQAYrm5sV3UUrVDZeshJQCK6GHAKyIGufU1vAcbS0PdAAZmC7Tzcw==", + "license": "Apache-2.0 OR MIT", "engines": { "node": ">=16.0.0", "npm": ">=7.0.0" @@ -2210,8 +2045,7 @@ }, "node_modules/@libp2p/peer-record": { "version": "4.0.5", - "resolved": "https://registry.npmjs.org/@libp2p/peer-record/-/peer-record-4.0.5.tgz", - "integrity": "sha512-o4v6N5B0hsx94TnSkLD7v8GmyQ/pNJbhy+pY8YDsmPhcwAGTnpRdlxWZraMBz8ut+vGoD7E34IdMMgJX/tgAJA==", + "license": "Apache-2.0 OR MIT", "dependencies": { "@libp2p/crypto": "^1.0.0", "@libp2p/interface-peer-id": "^1.0.2", @@ -2241,8 +2075,7 @@ }, "node_modules/@libp2p/peer-record/node_modules/@libp2p/interface-peer-id": { "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@libp2p/interface-peer-id/-/interface-peer-id-1.1.2.tgz", - "integrity": "sha512-S5iyVzG2EUgxm4NLe8W4ya9kpKuGfHs7Wbbos0wOUB4GXsbIKgOOxIr4yf+xGFgtEBaoximvlLkpob6dn8VFgA==", + "license": "Apache-2.0 OR MIT", "dependencies": { "multiformats": "^10.0.0" }, @@ -2253,8 +2086,7 @@ }, "node_modules/@libp2p/peer-record/node_modules/multiformats": { "version": "10.0.3", - "resolved": "https://registry.npmjs.org/multiformats/-/multiformats-10.0.3.tgz", - "integrity": "sha512-K2yGSmstS/oEmYiEIieHb53jJCaqp4ERPDQAYrm5sV3UUrVDZeshJQCK6GHAKyIGufU1vAcbS0PdAAZmC7Tzcw==", + "license": "Apache-2.0 OR MIT", "engines": { "node": ">=16.0.0", "npm": ">=7.0.0" @@ -2262,8 +2094,7 @@ }, "node_modules/@libp2p/peer-store": { "version": "5.0.1", - "resolved": "https://registry.npmjs.org/@libp2p/peer-store/-/peer-store-5.0.1.tgz", - "integrity": "sha512-TeHxy5Qv+KzajbEZH1wdE6ubk8G7IUyU+Dyl4W06unZpxq6rD+OTnCkvYuEdglROUxmvSBEkFqJnxV6xgVBWJA==", + "license": "Apache-2.0 OR MIT", "dependencies": { "@libp2p/interface-peer-id": "^1.0.4", "@libp2p/interface-peer-info": "^1.0.3", @@ -2294,8 +2125,7 @@ }, "node_modules/@libp2p/peer-store/node_modules/@libp2p/interface-peer-id": { "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@libp2p/interface-peer-id/-/interface-peer-id-1.1.2.tgz", - "integrity": "sha512-S5iyVzG2EUgxm4NLe8W4ya9kpKuGfHs7Wbbos0wOUB4GXsbIKgOOxIr4yf+xGFgtEBaoximvlLkpob6dn8VFgA==", + "license": "Apache-2.0 OR MIT", "dependencies": { "multiformats": "^10.0.0" }, @@ -2306,8 +2136,7 @@ }, "node_modules/@libp2p/peer-store/node_modules/multiformats": { "version": "10.0.3", - "resolved": "https://registry.npmjs.org/multiformats/-/multiformats-10.0.3.tgz", - "integrity": "sha512-K2yGSmstS/oEmYiEIieHb53jJCaqp4ERPDQAYrm5sV3UUrVDZeshJQCK6GHAKyIGufU1vAcbS0PdAAZmC7Tzcw==", + "license": "Apache-2.0 OR MIT", "engines": { "node": ">=16.0.0", "npm": ">=7.0.0" @@ -2315,8 +2144,7 @@ }, "node_modules/@libp2p/pubsub": { "version": "3.1.3", - "resolved": "https://registry.npmjs.org/@libp2p/pubsub/-/pubsub-3.1.3.tgz", - "integrity": "sha512-lo3Ay3NHdll2Wt0kzs2RNyWagyECGDx7d4dyKwGQgzhZyoy3FnYQW8vbMLyLLX1FV9DSiWEbFsBxX2MKJXUMyQ==", + "license": "Apache-2.0 OR MIT", "dependencies": { "@libp2p/components": "^2.0.0", "@libp2p/crypto": "^1.0.0", @@ -2347,8 +2175,7 @@ }, "node_modules/@libp2p/pubsub/node_modules/@libp2p/interface-peer-id": { "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@libp2p/interface-peer-id/-/interface-peer-id-1.1.2.tgz", - "integrity": "sha512-S5iyVzG2EUgxm4NLe8W4ya9kpKuGfHs7Wbbos0wOUB4GXsbIKgOOxIr4yf+xGFgtEBaoximvlLkpob6dn8VFgA==", + "license": "Apache-2.0 OR MIT", "dependencies": { "multiformats": "^10.0.0" }, @@ -2359,8 +2186,7 @@ }, "node_modules/@libp2p/pubsub/node_modules/@libp2p/interface-peer-id/node_modules/multiformats": { "version": "10.0.3", - "resolved": "https://registry.npmjs.org/multiformats/-/multiformats-10.0.3.tgz", - "integrity": "sha512-K2yGSmstS/oEmYiEIieHb53jJCaqp4ERPDQAYrm5sV3UUrVDZeshJQCK6GHAKyIGufU1vAcbS0PdAAZmC7Tzcw==", + "license": "Apache-2.0 OR MIT", "engines": { "node": ">=16.0.0", "npm": ">=7.0.0" @@ -2368,8 +2194,7 @@ }, "node_modules/@libp2p/pubsub/node_modules/@libp2p/interface-pubsub": { "version": "2.1.0", - "resolved": "https://registry.npmjs.org/@libp2p/interface-pubsub/-/interface-pubsub-2.1.0.tgz", - "integrity": "sha512-X+SIqzfeCO8ZDGrFTzH9EMwMf8ojW5nk20rxv3h1sCXEdfvyJCARZ51r9UlwJcnucnHqvFChfkbubAkrr3R4Cw==", + "license": "Apache-2.0 OR MIT", "dependencies": { "@libp2p/interface-connection": "^3.0.0", "@libp2p/interface-peer-id": "^1.0.0", @@ -2384,21 +2209,18 @@ }, "node_modules/@libp2p/pubsub/node_modules/multiformats": { "version": "9.9.0", - "resolved": "https://registry.npmjs.org/multiformats/-/multiformats-9.9.0.tgz", - "integrity": "sha512-HoMUjhH9T8DDBNT+6xzkrd9ga/XiBI4xLr58LJACwK6G3HTOPeMz4nB4KJs33L2BelrIJa7P0VuNaVF3hMYfjg==" + "license": "(Apache-2.0 AND MIT)" }, "node_modules/@libp2p/pubsub/node_modules/uint8arrays": { "version": "3.1.1", - "resolved": "https://registry.npmjs.org/uint8arrays/-/uint8arrays-3.1.1.tgz", - "integrity": "sha512-+QJa8QRnbdXVpHYjLoTpJIdCTiw9Ir62nocClWuXIq2JIh4Uta0cQsTSpFL678p2CN8B+XSApwcU+pQEqVpKWg==", + "license": "MIT", "dependencies": { "multiformats": "^9.4.2" } }, "node_modules/@libp2p/record": { "version": "2.0.4", - "resolved": "https://registry.npmjs.org/@libp2p/record/-/record-2.0.4.tgz", - "integrity": "sha512-BLdw/zDh4Nq65nKD/BRKad7++h2pPwY7IxoZNyEN4uvCo6knmfTSlKwqlw4NCYaH27YcupXrhKZ2WAoYjt5ACw==", + "license": "Apache-2.0 OR MIT", "dependencies": { "@libp2p/interface-dht": "^1.0.0", "err-code": "^3.0.1", @@ -2414,8 +2236,7 @@ }, "node_modules/@libp2p/record/node_modules/multiformats": { "version": "10.0.3", - "resolved": "https://registry.npmjs.org/multiformats/-/multiformats-10.0.3.tgz", - "integrity": "sha512-K2yGSmstS/oEmYiEIieHb53jJCaqp4ERPDQAYrm5sV3UUrVDZeshJQCK6GHAKyIGufU1vAcbS0PdAAZmC7Tzcw==", + "license": "Apache-2.0 OR MIT", "engines": { "node": ">=16.0.0", "npm": ">=7.0.0" @@ -2423,8 +2244,7 @@ }, "node_modules/@libp2p/tcp": { "version": "5.0.2", - "resolved": "https://registry.npmjs.org/@libp2p/tcp/-/tcp-5.0.2.tgz", - "integrity": "sha512-Lm8RhqfvqJ7SffeausXNHeRT8QC5HXWWI6X9HuLVgl/jZDGKhI0FUWv3J48lUhpvmH4wQyMFLVuZrTukS4F/6g==", + "license": "Apache-2.0 OR MIT", "dependencies": { "@libp2p/interface-connection": "^3.0.2", "@libp2p/interface-transport": "^2.0.0", @@ -2444,8 +2264,7 @@ }, "node_modules/@libp2p/topology": { "version": "3.0.2", - "resolved": "https://registry.npmjs.org/@libp2p/topology/-/topology-3.0.2.tgz", - "integrity": "sha512-RDMmA8Us5uxl7sSWGoTIYyzdthjs6xQD1P/vBQPHlqTAjpjPWuCY019cbqK8lP1JCldCB/n2ljSxDJs1J4cweQ==", + "license": "Apache-2.0 OR MIT", "dependencies": { "@libp2p/interface-peer-id": "^1.0.4", "@libp2p/interface-registrar": "^2.0.3", @@ -2460,8 +2279,7 @@ }, "node_modules/@libp2p/topology/node_modules/@libp2p/interface-peer-id": { "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@libp2p/interface-peer-id/-/interface-peer-id-1.1.2.tgz", - "integrity": "sha512-S5iyVzG2EUgxm4NLe8W4ya9kpKuGfHs7Wbbos0wOUB4GXsbIKgOOxIr4yf+xGFgtEBaoximvlLkpob6dn8VFgA==", + "license": "Apache-2.0 OR MIT", "dependencies": { "multiformats": "^10.0.0" }, @@ -2472,8 +2290,7 @@ }, "node_modules/@libp2p/topology/node_modules/multiformats": { "version": "10.0.3", - "resolved": "https://registry.npmjs.org/multiformats/-/multiformats-10.0.3.tgz", - "integrity": "sha512-K2yGSmstS/oEmYiEIieHb53jJCaqp4ERPDQAYrm5sV3UUrVDZeshJQCK6GHAKyIGufU1vAcbS0PdAAZmC7Tzcw==", + "license": "Apache-2.0 OR MIT", "engines": { "node": ">=16.0.0", "npm": ">=7.0.0" @@ -2481,8 +2298,7 @@ }, "node_modules/@libp2p/tracked-map": { "version": "2.0.2", - "resolved": "https://registry.npmjs.org/@libp2p/tracked-map/-/tracked-map-2.0.2.tgz", - "integrity": "sha512-y5UnoB5NR+i7Xp/wPrHYyJxiNRS0/3ee8chphTG8GptdTWqWcZ+UALKXMb9neMtFL9pivNrOY+A0d+M60eI+RA==", + "license": "Apache-2.0 OR MIT", "dependencies": { "@libp2p/interface-metrics": "^3.0.0" }, @@ -2493,8 +2309,7 @@ }, "node_modules/@libp2p/tracked-map/node_modules/@libp2p/interface-metrics": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/@libp2p/interface-metrics/-/interface-metrics-3.0.0.tgz", - "integrity": "sha512-TxK63BrDalv0yW544608xfmg3rsbh31ykZzf7I1yjMCZpyIFOqLTH1WN4YQwXKNlMz/XURux99UTpGSRYl3nOA==", + "license": "Apache-2.0 OR MIT", "dependencies": { "@libp2p/interface-peer-id": "^1.0.0", "it-stream-types": "^1.0.4" @@ -2506,8 +2321,7 @@ }, "node_modules/@libp2p/tracked-map/node_modules/@libp2p/interface-peer-id": { "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@libp2p/interface-peer-id/-/interface-peer-id-1.1.2.tgz", - "integrity": "sha512-S5iyVzG2EUgxm4NLe8W4ya9kpKuGfHs7Wbbos0wOUB4GXsbIKgOOxIr4yf+xGFgtEBaoximvlLkpob6dn8VFgA==", + "license": "Apache-2.0 OR MIT", "dependencies": { "multiformats": "^10.0.0" }, @@ -2518,8 +2332,7 @@ }, "node_modules/@libp2p/tracked-map/node_modules/multiformats": { "version": "10.0.3", - "resolved": "https://registry.npmjs.org/multiformats/-/multiformats-10.0.3.tgz", - "integrity": "sha512-K2yGSmstS/oEmYiEIieHb53jJCaqp4ERPDQAYrm5sV3UUrVDZeshJQCK6GHAKyIGufU1vAcbS0PdAAZmC7Tzcw==", + "license": "Apache-2.0 OR MIT", "engines": { "node": ">=16.0.0", "npm": ">=7.0.0" @@ -2527,8 +2340,7 @@ }, "node_modules/@libp2p/utils": { "version": "3.0.4", - "resolved": "https://registry.npmjs.org/@libp2p/utils/-/utils-3.0.4.tgz", - "integrity": "sha512-EWJNJtlop2ylmGE1BNiMA0u4eTLKoY0LbZ/DOvSDs9VlGSLua9J+LUjp6XV8lazGv7l1rOLiU+1hP5fcmg1+eg==", + "license": "Apache-2.0 OR MIT", "dependencies": { "@achingbrain/ip-address": "^8.1.0", "@libp2p/interface-connection": "^3.0.2", @@ -2549,8 +2361,7 @@ }, "node_modules/@libp2p/utils/node_modules/private-ip": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/private-ip/-/private-ip-3.0.0.tgz", - "integrity": "sha512-HkMBs4nMtrP+cvcw0bDi2BAZIGgiKI4Zq8Oc+dMqNBpHS8iGL4+WO/pRtc8Bwnv9rjnV0QwMDwEBymFtqv7Kww==", + "license": "MIT", "dependencies": { "@chainsafe/is-ip": "^2.0.1", "ip-regex": "^5.0.0", @@ -2563,8 +2374,7 @@ }, "node_modules/@libp2p/webrtc-peer": { "version": "2.0.2", - "resolved": "https://registry.npmjs.org/@libp2p/webrtc-peer/-/webrtc-peer-2.0.2.tgz", - "integrity": "sha512-FozliUqHO1CIzrL8hPc5uT+5AGUWf5Dw3HncL9tte/CoDNVpj6O59ITIRWefssp3oIGEAIjpcebNu1d+mYfVug==", + "license": "Apache-2.0 OR MIT", "dependencies": { "@libp2p/interfaces": "^3.0.2", "@libp2p/logger": "^2.0.0", @@ -2584,8 +2394,7 @@ }, "node_modules/@libp2p/webrtc-star": { "version": "5.0.3", - "resolved": "https://registry.npmjs.org/@libp2p/webrtc-star/-/webrtc-star-5.0.3.tgz", - "integrity": "sha512-tGH72ARnuHaj5FlLMrdU4B2PIZMgUKdS40YqlIu5w9zo4csZ8n07oRHt0B+gRnahLd8wY80uiS6CnmTC5c0skg==", + "license": "Apache-2.0 OR MIT", "dependencies": { "@libp2p/interface-connection": "^3.0.1", "@libp2p/interface-peer-discovery": "^1.0.0", @@ -2615,8 +2424,7 @@ }, "node_modules/@libp2p/webrtc-star-protocol": { "version": "2.0.1", - "resolved": "https://registry.npmjs.org/@libp2p/webrtc-star-protocol/-/webrtc-star-protocol-2.0.1.tgz", - "integrity": "sha512-7pOQHWhfCfEQXVdLPqhi0cC0eyYVklzNtNZlEEXcAQ3zRFpAeZsMwg5wowXs1Udu7oxKwog3w3FbgHmvwqStMg==", + "license": "Apache-2.0 OR MIT", "dependencies": { "@multiformats/multiaddr": "^11.0.0", "socket.io-client": "^4.1.2" @@ -2628,8 +2436,7 @@ }, "node_modules/@libp2p/webrtc-star/node_modules/@libp2p/interface-peer-id": { "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@libp2p/interface-peer-id/-/interface-peer-id-1.1.2.tgz", - "integrity": "sha512-S5iyVzG2EUgxm4NLe8W4ya9kpKuGfHs7Wbbos0wOUB4GXsbIKgOOxIr4yf+xGFgtEBaoximvlLkpob6dn8VFgA==", + "license": "Apache-2.0 OR MIT", "dependencies": { "multiformats": "^10.0.0" }, @@ -2640,8 +2447,7 @@ }, "node_modules/@libp2p/webrtc-star/node_modules/multiformats": { "version": "10.0.3", - "resolved": "https://registry.npmjs.org/multiformats/-/multiformats-10.0.3.tgz", - "integrity": "sha512-K2yGSmstS/oEmYiEIieHb53jJCaqp4ERPDQAYrm5sV3UUrVDZeshJQCK6GHAKyIGufU1vAcbS0PdAAZmC7Tzcw==", + "license": "Apache-2.0 OR MIT", "engines": { "node": ">=16.0.0", "npm": ">=7.0.0" @@ -2649,8 +2455,7 @@ }, "node_modules/@libp2p/websockets": { "version": "5.0.2", - "resolved": "https://registry.npmjs.org/@libp2p/websockets/-/websockets-5.0.2.tgz", - "integrity": "sha512-bQIGylJfpAeBaRLYN8KiwbD75qXgKKlK/zgH5hiVfCqFHwchEbr2c1Smf86YsX2Ay07jRqQkrJbJFM72ryePoA==", + "license": "Apache-2.0 OR MIT", "dependencies": { "@libp2p/interface-connection": "^3.0.2", "@libp2p/interface-transport": "^2.0.0", @@ -2674,8 +2479,7 @@ }, "node_modules/@mapbox/node-pre-gyp": { "version": "1.0.10", - "resolved": "https://registry.npmjs.org/@mapbox/node-pre-gyp/-/node-pre-gyp-1.0.10.tgz", - "integrity": "sha512-4ySo4CjzStuprMwk35H5pPbkymjv1SF3jGLj6rAHp/xT/RF7TL7bd9CTm1xDY49K2qF7jmR/g7k+SkLETP6opA==", + "license": "BSD-3-Clause", "dependencies": { "detect-libc": "^2.0.0", "https-proxy-agent": "^5.0.0", @@ -2693,8 +2497,7 @@ }, "node_modules/@mapbox/node-pre-gyp/node_modules/make-dir": { "version": "3.1.0", - "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz", - "integrity": "sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==", + "license": "MIT", "dependencies": { "semver": "^6.0.0" }, @@ -2707,16 +2510,14 @@ }, "node_modules/@mapbox/node-pre-gyp/node_modules/make-dir/node_modules/semver": { "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "license": "ISC", "bin": { "semver": "bin/semver.js" } }, "node_modules/@mapbox/node-pre-gyp/node_modules/node-fetch": { "version": "2.6.7", - "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.7.tgz", - "integrity": "sha512-ZjMPFEfVx5j+y2yF35Kzx5sF7kDzxuDj6ziH4FFbOp87zKDZNx8yExJIb05OGF4Nlt9IHFIMBkRl41VdvcNdbQ==", + "license": "MIT", "dependencies": { "whatwg-url": "^5.0.0" }, @@ -2734,8 +2535,7 @@ }, "node_modules/@mapbox/node-pre-gyp/node_modules/semver": { "version": "7.3.8", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.8.tgz", - "integrity": "sha512-NB1ctGL5rlHrPJtFDVIVzTyQylMLu9N9VICA6HSFJo8MCGVTMW6gfpicwKmmK/dAjTOrqu5l63JJOpDSrAis3A==", + "license": "ISC", "dependencies": { "lru-cache": "^6.0.0" }, @@ -2748,8 +2548,7 @@ }, "node_modules/@multiformats/mafmt": { "version": "11.0.3", - "resolved": "https://registry.npmjs.org/@multiformats/mafmt/-/mafmt-11.0.3.tgz", - "integrity": "sha512-DvCQeZJgaC4kE3BLqMuW3gQkNAW14Z7I+yMt30Ze+wkfHkWSp+bICcHGihhtgfzYCumHA/vHlJ9n54mrCcmnvQ==", + "license": "Apache-2.0 OR MIT", "dependencies": { "@multiformats/multiaddr": "^11.0.0" }, @@ -2760,8 +2559,7 @@ }, "node_modules/@multiformats/multiaddr": { "version": "11.1.5", - "resolved": "https://registry.npmjs.org/@multiformats/multiaddr/-/multiaddr-11.1.5.tgz", - "integrity": "sha512-sFppiscvhExFbSUdYl/4wBBOb5IjhYVpuRMBb6RgVjq7qTVHQDQeX3CEjQGdyy7+8A/cixL+fQez4RI+hltkLQ==", + "license": "Apache-2.0 OR MIT", "dependencies": { "@chainsafe/is-ip": "^2.0.1", "dns-over-http-resolver": "^2.1.0", @@ -2777,8 +2575,7 @@ }, "node_modules/@multiformats/multiaddr-to-uri": { "version": "9.0.2", - "resolved": "https://registry.npmjs.org/@multiformats/multiaddr-to-uri/-/multiaddr-to-uri-9.0.2.tgz", - "integrity": "sha512-vrWmfFadmix5Ab9l//oRQdQ7O3J5bGJpJRMSm21bHlQB0XV4xtNU6vMZBVXeu3Su79LgflEp37cjTFE3yKf3Hw==", + "license": "Apache-2.0 OR MIT", "dependencies": { "@multiformats/multiaddr": "^11.0.0" }, @@ -2789,8 +2586,7 @@ }, "node_modules/@multiformats/murmur3": { "version": "2.1.2", - "resolved": "https://registry.npmjs.org/@multiformats/murmur3/-/murmur3-2.1.2.tgz", - "integrity": "sha512-4gCptOviYuu8ts5iUPwAcyIgl1FAyOAtWkQMAdu7FpgWveV5uVmA/919+QhgiZu8lhBGLWvRRTigOEdYNX9y0A==", + "license": "Apache-2.0 OR MIT", "dependencies": { "multiformats": "^11.0.0", "murmurhash3js-revisited": "^3.0.0" @@ -2802,8 +2598,7 @@ }, "node_modules/@multiformats/uri-to-multiaddr": { "version": "7.0.0", - "resolved": "https://registry.npmjs.org/@multiformats/uri-to-multiaddr/-/uri-to-multiaddr-7.0.0.tgz", - "integrity": "sha512-mB/I4znETEZA/PmflXmnjWj3ENcyJg6Yv3EQQbIdA5n9fJ43c58uMF2Ew7yXtl0Wxt4d1pAVFA6fki2xFrHGew==", + "license": "Apache-2.0 OR MIT", "dependencies": { "@multiformats/multiaddr": "^11.0.0", "is-ip": "^5.0.0" @@ -2815,42 +2610,38 @@ }, "node_modules/@noble/ed25519": { "version": "1.7.1", - "resolved": "https://registry.npmjs.org/@noble/ed25519/-/ed25519-1.7.1.tgz", - "integrity": "sha512-Rk4SkJFaXZiznFyC/t77Q0NKS4FL7TLJJsVG2V2oiEq3kJVeTdxysEe/yRWSpnWMe808XRDJ+VFh5pt/FN5plw==", "funding": [ { "type": "individual", "url": "https://paulmillr.com/funding/" } - ] + ], + "license": "MIT" }, "node_modules/@noble/hashes": { "version": "1.1.5", - "resolved": "https://registry.npmjs.org/@noble/hashes/-/hashes-1.1.5.tgz", - "integrity": "sha512-LTMZiiLc+V4v1Yi16TD6aX2gmtKszNye0pQgbaLqkvhIqP7nVsSaJsWloGQjJfJ8offaoP5GtX3yY5swbcJxxQ==", "funding": [ { "type": "individual", "url": "https://paulmillr.com/funding/" } - ] + ], + "license": "MIT" }, "node_modules/@noble/secp256k1": { "version": "1.7.1", - "resolved": "https://registry.npmjs.org/@noble/secp256k1/-/secp256k1-1.7.1.tgz", - "integrity": "sha512-hOUk6AyBFmqVrv7k5WAw/LpszxVbj9gGN4JRkIX52fdFAj1UA61KXmZDvqVEm+pOyec3+fIeZB02LYa/pWOArw==", "funding": [ { "type": "individual", "url": "https://paulmillr.com/funding/" } - ] + ], + "license": "MIT" }, "node_modules/@nodelib/fs.scandir": { "version": "2.1.5", - "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", - "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==", "dev": true, + "license": "MIT", "dependencies": { "@nodelib/fs.stat": "2.0.5", "run-parallel": "^1.1.9" @@ -2861,18 +2652,16 @@ }, "node_modules/@nodelib/fs.stat": { "version": "2.0.5", - "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz", - "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==", "dev": true, + "license": "MIT", "engines": { "node": ">= 8" } }, "node_modules/@nodelib/fs.walk": { "version": "1.2.8", - "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz", - "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==", "dev": true, + "license": "MIT", "dependencies": { "@nodelib/fs.scandir": "2.1.5", "fastq": "^1.6.0" @@ -2883,8 +2672,7 @@ }, "node_modules/@pnpm/network.ca-file": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/@pnpm/network.ca-file/-/network.ca-file-1.0.2.tgz", - "integrity": "sha512-YcPQ8a0jwYU9bTdJDpXjMi7Brhkr1mXsXrUJvjqM2mQDgkRiz8jFaQGOdaLxgjtUfQgZhKy/O3cG/YwmgKaxLA==", + "license": "MIT", "dependencies": { "graceful-fs": "4.2.10" }, @@ -2894,8 +2682,7 @@ }, "node_modules/@pnpm/npm-conf": { "version": "1.0.5", - "resolved": "https://registry.npmjs.org/@pnpm/npm-conf/-/npm-conf-1.0.5.tgz", - "integrity": "sha512-hD8ml183638O3R6/Txrh0L8VzGOrFXgRtRDG4qQC4tONdZ5Z1M+tlUUDUvrjYdmK6G+JTBTeaCLMna11cXzi8A==", + "license": "MIT", "dependencies": { "@pnpm/network.ca-file": "^1.0.1", "config-chain": "^1.1.11" @@ -2906,8 +2693,7 @@ }, "node_modules/@polkadot/api": { "version": "9.13.2", - "resolved": "https://registry.npmjs.org/@polkadot/api/-/api-9.13.2.tgz", - "integrity": "sha512-/fRWd6geTy0Hi9U2r82X6qgMGbt1JpNJ/Hshg6EzM12BKvoIpHtTxn6WkQgq950LQOgNk6nd0zm3A/p5DL+x4g==", + "license": "Apache-2.0", "dependencies": { "@babel/runtime": "^7.20.13", "@polkadot/api-augment": "9.13.2", @@ -2933,8 +2719,7 @@ }, "node_modules/@polkadot/api-augment": { "version": "9.13.2", - "resolved": "https://registry.npmjs.org/@polkadot/api-augment/-/api-augment-9.13.2.tgz", - "integrity": "sha512-D9baG50pBz5CUX1talPjJNOP1tseI/g4SAdaOU9um3Unf93bkjHagfDxqxLDWdzJfqh0g67jPTel72I+qvfMew==", + "license": "Apache-2.0", "dependencies": { "@babel/runtime": "^7.20.13", "@polkadot/api-base": "9.13.2", @@ -2950,8 +2735,7 @@ }, "node_modules/@polkadot/api-augment/node_modules/@polkadot/util": { "version": "10.3.1", - "resolved": "https://registry.npmjs.org/@polkadot/util/-/util-10.3.1.tgz", - "integrity": "sha512-8j+O7gj7upj1ZwlGxmAaf3+V0xc0VZvqPeBvTFV30Oi1xoMDNH0q2vKst08wARQUUm1Gi0zIlipDMo0n4Sr7tw==", + "license": "Apache-2.0", "dependencies": { "@babel/runtime": "^7.20.13", "@polkadot/x-bigint": "10.3.1", @@ -2967,8 +2751,7 @@ }, "node_modules/@polkadot/api-augment/node_modules/@polkadot/x-bigint": { "version": "10.3.1", - "resolved": "https://registry.npmjs.org/@polkadot/x-bigint/-/x-bigint-10.3.1.tgz", - "integrity": "sha512-hXtnwy9LXmV43B9pT8gY1zwdNRhpPBEOk1PfL2Ze0Iw2zd+lbljD3GwDP5mkBfIYIw/s15eRTjiUIKfpTRRDXw==", + "license": "Apache-2.0", "dependencies": { "@babel/runtime": "^7.20.13", "@polkadot/x-global": "10.3.1" @@ -2979,8 +2762,7 @@ }, "node_modules/@polkadot/api-augment/node_modules/@polkadot/x-global": { "version": "10.3.1", - "resolved": "https://registry.npmjs.org/@polkadot/x-global/-/x-global-10.3.1.tgz", - "integrity": "sha512-kPAVYP2H3aTjS7BKqGkYV1I3Mu03dnRyeX+rDebC8xoN+hUC5bhb7dzCtb5F8DdqlvFl67ZxRaVtq2XUssGTKQ==", + "license": "Apache-2.0", "dependencies": { "@babel/runtime": "^7.20.13" }, @@ -2990,8 +2772,7 @@ }, "node_modules/@polkadot/api-augment/node_modules/@polkadot/x-textdecoder": { "version": "10.3.1", - "resolved": "https://registry.npmjs.org/@polkadot/x-textdecoder/-/x-textdecoder-10.3.1.tgz", - "integrity": "sha512-BgjcImRYCM2TOMa/95Mmqo6T/YdQWQdVlVQ33PZda7A/I2jBYeOXDj16ftVgn4DWM9xcFVdy2Z3Jg3RGCNbjww==", + "license": "Apache-2.0", "dependencies": { "@babel/runtime": "^7.20.13", "@polkadot/x-global": "10.3.1" @@ -3002,8 +2783,7 @@ }, "node_modules/@polkadot/api-augment/node_modules/@polkadot/x-textencoder": { "version": "10.3.1", - "resolved": "https://registry.npmjs.org/@polkadot/x-textencoder/-/x-textencoder-10.3.1.tgz", - "integrity": "sha512-nkNsVW1GNT1XfV4IuKlUkdeo9sFJ/2IPhBbC54gu469NFl52b5be5H9x+IHdqqA8cG0ElvsojTd3K3tVD3sx6Q==", + "license": "Apache-2.0", "dependencies": { "@babel/runtime": "^7.20.13", "@polkadot/x-global": "10.3.1" @@ -3014,8 +2794,7 @@ }, "node_modules/@polkadot/api-base": { "version": "9.13.2", - "resolved": "https://registry.npmjs.org/@polkadot/api-base/-/api-base-9.13.2.tgz", - "integrity": "sha512-BJAcAHUpDm+aCnRnWaipnhuR23tFBbfeyV2QY1/k+cicOe9RfK2xYnyLYUpH0ugS1dJg3uHYgLjcObA641WDSA==", + "license": "Apache-2.0", "dependencies": { "@babel/runtime": "^7.20.13", "@polkadot/rpc-core": "9.13.2", @@ -3029,8 +2808,7 @@ }, "node_modules/@polkadot/api-base/node_modules/@polkadot/util": { "version": "10.3.1", - "resolved": "https://registry.npmjs.org/@polkadot/util/-/util-10.3.1.tgz", - "integrity": "sha512-8j+O7gj7upj1ZwlGxmAaf3+V0xc0VZvqPeBvTFV30Oi1xoMDNH0q2vKst08wARQUUm1Gi0zIlipDMo0n4Sr7tw==", + "license": "Apache-2.0", "dependencies": { "@babel/runtime": "^7.20.13", "@polkadot/x-bigint": "10.3.1", @@ -3046,8 +2824,7 @@ }, "node_modules/@polkadot/api-base/node_modules/@polkadot/x-bigint": { "version": "10.3.1", - "resolved": "https://registry.npmjs.org/@polkadot/x-bigint/-/x-bigint-10.3.1.tgz", - "integrity": "sha512-hXtnwy9LXmV43B9pT8gY1zwdNRhpPBEOk1PfL2Ze0Iw2zd+lbljD3GwDP5mkBfIYIw/s15eRTjiUIKfpTRRDXw==", + "license": "Apache-2.0", "dependencies": { "@babel/runtime": "^7.20.13", "@polkadot/x-global": "10.3.1" @@ -3058,8 +2835,7 @@ }, "node_modules/@polkadot/api-base/node_modules/@polkadot/x-global": { "version": "10.3.1", - "resolved": "https://registry.npmjs.org/@polkadot/x-global/-/x-global-10.3.1.tgz", - "integrity": "sha512-kPAVYP2H3aTjS7BKqGkYV1I3Mu03dnRyeX+rDebC8xoN+hUC5bhb7dzCtb5F8DdqlvFl67ZxRaVtq2XUssGTKQ==", + "license": "Apache-2.0", "dependencies": { "@babel/runtime": "^7.20.13" }, @@ -3069,8 +2845,7 @@ }, "node_modules/@polkadot/api-base/node_modules/@polkadot/x-textdecoder": { "version": "10.3.1", - "resolved": "https://registry.npmjs.org/@polkadot/x-textdecoder/-/x-textdecoder-10.3.1.tgz", - "integrity": "sha512-BgjcImRYCM2TOMa/95Mmqo6T/YdQWQdVlVQ33PZda7A/I2jBYeOXDj16ftVgn4DWM9xcFVdy2Z3Jg3RGCNbjww==", + "license": "Apache-2.0", "dependencies": { "@babel/runtime": "^7.20.13", "@polkadot/x-global": "10.3.1" @@ -3081,8 +2856,7 @@ }, "node_modules/@polkadot/api-base/node_modules/@polkadot/x-textencoder": { "version": "10.3.1", - "resolved": "https://registry.npmjs.org/@polkadot/x-textencoder/-/x-textencoder-10.3.1.tgz", - "integrity": "sha512-nkNsVW1GNT1XfV4IuKlUkdeo9sFJ/2IPhBbC54gu469NFl52b5be5H9x+IHdqqA8cG0ElvsojTd3K3tVD3sx6Q==", + "license": "Apache-2.0", "dependencies": { "@babel/runtime": "^7.20.13", "@polkadot/x-global": "10.3.1" @@ -3093,8 +2867,7 @@ }, "node_modules/@polkadot/api-derive": { "version": "9.13.2", - "resolved": "https://registry.npmjs.org/@polkadot/api-derive/-/api-derive-9.13.2.tgz", - "integrity": "sha512-/r6s2Xqp6ehtVmLZzz0g5l5s/wnJsF+fRAHOw/1XXIieG6NJN7C0ZVwoOQLOK/UH9QceElfzSTsTYGGYS+ta4g==", + "license": "Apache-2.0", "dependencies": { "@babel/runtime": "^7.20.13", "@polkadot/api": "9.13.2", @@ -3113,8 +2886,7 @@ }, "node_modules/@polkadot/api-derive/node_modules/@polkadot/util": { "version": "10.3.1", - "resolved": "https://registry.npmjs.org/@polkadot/util/-/util-10.3.1.tgz", - "integrity": "sha512-8j+O7gj7upj1ZwlGxmAaf3+V0xc0VZvqPeBvTFV30Oi1xoMDNH0q2vKst08wARQUUm1Gi0zIlipDMo0n4Sr7tw==", + "license": "Apache-2.0", "dependencies": { "@babel/runtime": "^7.20.13", "@polkadot/x-bigint": "10.3.1", @@ -3130,8 +2902,7 @@ }, "node_modules/@polkadot/api-derive/node_modules/@polkadot/x-bigint": { "version": "10.3.1", - "resolved": "https://registry.npmjs.org/@polkadot/x-bigint/-/x-bigint-10.3.1.tgz", - "integrity": "sha512-hXtnwy9LXmV43B9pT8gY1zwdNRhpPBEOk1PfL2Ze0Iw2zd+lbljD3GwDP5mkBfIYIw/s15eRTjiUIKfpTRRDXw==", + "license": "Apache-2.0", "dependencies": { "@babel/runtime": "^7.20.13", "@polkadot/x-global": "10.3.1" @@ -3142,8 +2913,7 @@ }, "node_modules/@polkadot/api-derive/node_modules/@polkadot/x-global": { "version": "10.3.1", - "resolved": "https://registry.npmjs.org/@polkadot/x-global/-/x-global-10.3.1.tgz", - "integrity": "sha512-kPAVYP2H3aTjS7BKqGkYV1I3Mu03dnRyeX+rDebC8xoN+hUC5bhb7dzCtb5F8DdqlvFl67ZxRaVtq2XUssGTKQ==", + "license": "Apache-2.0", "dependencies": { "@babel/runtime": "^7.20.13" }, @@ -3153,8 +2923,7 @@ }, "node_modules/@polkadot/api-derive/node_modules/@polkadot/x-textdecoder": { "version": "10.3.1", - "resolved": "https://registry.npmjs.org/@polkadot/x-textdecoder/-/x-textdecoder-10.3.1.tgz", - "integrity": "sha512-BgjcImRYCM2TOMa/95Mmqo6T/YdQWQdVlVQ33PZda7A/I2jBYeOXDj16ftVgn4DWM9xcFVdy2Z3Jg3RGCNbjww==", + "license": "Apache-2.0", "dependencies": { "@babel/runtime": "^7.20.13", "@polkadot/x-global": "10.3.1" @@ -3165,8 +2934,7 @@ }, "node_modules/@polkadot/api-derive/node_modules/@polkadot/x-textencoder": { "version": "10.3.1", - "resolved": "https://registry.npmjs.org/@polkadot/x-textencoder/-/x-textencoder-10.3.1.tgz", - "integrity": "sha512-nkNsVW1GNT1XfV4IuKlUkdeo9sFJ/2IPhBbC54gu469NFl52b5be5H9x+IHdqqA8cG0ElvsojTd3K3tVD3sx6Q==", + "license": "Apache-2.0", "dependencies": { "@babel/runtime": "^7.20.13", "@polkadot/x-global": "10.3.1" @@ -3177,8 +2945,7 @@ }, "node_modules/@polkadot/api/node_modules/@polkadot/util": { "version": "10.3.1", - "resolved": "https://registry.npmjs.org/@polkadot/util/-/util-10.3.1.tgz", - "integrity": "sha512-8j+O7gj7upj1ZwlGxmAaf3+V0xc0VZvqPeBvTFV30Oi1xoMDNH0q2vKst08wARQUUm1Gi0zIlipDMo0n4Sr7tw==", + "license": "Apache-2.0", "dependencies": { "@babel/runtime": "^7.20.13", "@polkadot/x-bigint": "10.3.1", @@ -3194,8 +2961,7 @@ }, "node_modules/@polkadot/api/node_modules/@polkadot/x-bigint": { "version": "10.3.1", - "resolved": "https://registry.npmjs.org/@polkadot/x-bigint/-/x-bigint-10.3.1.tgz", - "integrity": "sha512-hXtnwy9LXmV43B9pT8gY1zwdNRhpPBEOk1PfL2Ze0Iw2zd+lbljD3GwDP5mkBfIYIw/s15eRTjiUIKfpTRRDXw==", + "license": "Apache-2.0", "dependencies": { "@babel/runtime": "^7.20.13", "@polkadot/x-global": "10.3.1" @@ -3206,8 +2972,7 @@ }, "node_modules/@polkadot/api/node_modules/@polkadot/x-global": { "version": "10.3.1", - "resolved": "https://registry.npmjs.org/@polkadot/x-global/-/x-global-10.3.1.tgz", - "integrity": "sha512-kPAVYP2H3aTjS7BKqGkYV1I3Mu03dnRyeX+rDebC8xoN+hUC5bhb7dzCtb5F8DdqlvFl67ZxRaVtq2XUssGTKQ==", + "license": "Apache-2.0", "dependencies": { "@babel/runtime": "^7.20.13" }, @@ -3217,8 +2982,7 @@ }, "node_modules/@polkadot/api/node_modules/@polkadot/x-textdecoder": { "version": "10.3.1", - "resolved": "https://registry.npmjs.org/@polkadot/x-textdecoder/-/x-textdecoder-10.3.1.tgz", - "integrity": "sha512-BgjcImRYCM2TOMa/95Mmqo6T/YdQWQdVlVQ33PZda7A/I2jBYeOXDj16ftVgn4DWM9xcFVdy2Z3Jg3RGCNbjww==", + "license": "Apache-2.0", "dependencies": { "@babel/runtime": "^7.20.13", "@polkadot/x-global": "10.3.1" @@ -3229,8 +2993,7 @@ }, "node_modules/@polkadot/api/node_modules/@polkadot/x-textencoder": { "version": "10.3.1", - "resolved": "https://registry.npmjs.org/@polkadot/x-textencoder/-/x-textencoder-10.3.1.tgz", - "integrity": "sha512-nkNsVW1GNT1XfV4IuKlUkdeo9sFJ/2IPhBbC54gu469NFl52b5be5H9x+IHdqqA8cG0ElvsojTd3K3tVD3sx6Q==", + "license": "Apache-2.0", "dependencies": { "@babel/runtime": "^7.20.13", "@polkadot/x-global": "10.3.1" @@ -3241,13 +3004,11 @@ }, "node_modules/@polkadot/api/node_modules/eventemitter3": { "version": "5.0.0", - "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-5.0.0.tgz", - "integrity": "sha512-riuVbElZZNXLeLEoprfNYoDSwTBRR44X3mnhdI1YcnENpWTCsTTVZ2zFuqQcpoyqPQIUXdiPEU0ECAq0KQRaHg==" + "license": "MIT" }, "node_modules/@polkadot/keyring": { "version": "10.3.1", - "resolved": "https://registry.npmjs.org/@polkadot/keyring/-/keyring-10.3.1.tgz", - "integrity": "sha512-xBkUtyQ766NVS1ccSYbQssWpxAhSf0uwkw9Amj8TFhu++pnZcVm+EmM2VczWqgOkmWepO7MGRjEXeOIw1YUGiw==", + "license": "Apache-2.0", "dependencies": { "@babel/runtime": "^7.20.13", "@polkadot/util": "10.3.1", @@ -3263,8 +3024,7 @@ }, "node_modules/@polkadot/keyring/node_modules/@polkadot/util": { "version": "10.3.1", - "resolved": "https://registry.npmjs.org/@polkadot/util/-/util-10.3.1.tgz", - "integrity": "sha512-8j+O7gj7upj1ZwlGxmAaf3+V0xc0VZvqPeBvTFV30Oi1xoMDNH0q2vKst08wARQUUm1Gi0zIlipDMo0n4Sr7tw==", + "license": "Apache-2.0", "dependencies": { "@babel/runtime": "^7.20.13", "@polkadot/x-bigint": "10.3.1", @@ -3280,8 +3040,7 @@ }, "node_modules/@polkadot/keyring/node_modules/@polkadot/x-bigint": { "version": "10.3.1", - "resolved": "https://registry.npmjs.org/@polkadot/x-bigint/-/x-bigint-10.3.1.tgz", - "integrity": "sha512-hXtnwy9LXmV43B9pT8gY1zwdNRhpPBEOk1PfL2Ze0Iw2zd+lbljD3GwDP5mkBfIYIw/s15eRTjiUIKfpTRRDXw==", + "license": "Apache-2.0", "dependencies": { "@babel/runtime": "^7.20.13", "@polkadot/x-global": "10.3.1" @@ -3292,8 +3051,7 @@ }, "node_modules/@polkadot/keyring/node_modules/@polkadot/x-global": { "version": "10.3.1", - "resolved": "https://registry.npmjs.org/@polkadot/x-global/-/x-global-10.3.1.tgz", - "integrity": "sha512-kPAVYP2H3aTjS7BKqGkYV1I3Mu03dnRyeX+rDebC8xoN+hUC5bhb7dzCtb5F8DdqlvFl67ZxRaVtq2XUssGTKQ==", + "license": "Apache-2.0", "dependencies": { "@babel/runtime": "^7.20.13" }, @@ -3303,8 +3061,7 @@ }, "node_modules/@polkadot/keyring/node_modules/@polkadot/x-textdecoder": { "version": "10.3.1", - "resolved": "https://registry.npmjs.org/@polkadot/x-textdecoder/-/x-textdecoder-10.3.1.tgz", - "integrity": "sha512-BgjcImRYCM2TOMa/95Mmqo6T/YdQWQdVlVQ33PZda7A/I2jBYeOXDj16ftVgn4DWM9xcFVdy2Z3Jg3RGCNbjww==", + "license": "Apache-2.0", "dependencies": { "@babel/runtime": "^7.20.13", "@polkadot/x-global": "10.3.1" @@ -3315,8 +3072,7 @@ }, "node_modules/@polkadot/keyring/node_modules/@polkadot/x-textencoder": { "version": "10.3.1", - "resolved": "https://registry.npmjs.org/@polkadot/x-textencoder/-/x-textencoder-10.3.1.tgz", - "integrity": "sha512-nkNsVW1GNT1XfV4IuKlUkdeo9sFJ/2IPhBbC54gu469NFl52b5be5H9x+IHdqqA8cG0ElvsojTd3K3tVD3sx6Q==", + "license": "Apache-2.0", "dependencies": { "@babel/runtime": "^7.20.13", "@polkadot/x-global": "10.3.1" @@ -3327,8 +3083,7 @@ }, "node_modules/@polkadot/networks": { "version": "10.3.1", - "resolved": "https://registry.npmjs.org/@polkadot/networks/-/networks-10.3.1.tgz", - "integrity": "sha512-W9E1g6zRbIVyF7sGqbpxH0P6caxtBHNEwvDa5/8ZQi9UsLj6mUs0HdwZtAdIo3KcSO4uAyV9VYJjY/oAWWcnXg==", + "license": "Apache-2.0", "dependencies": { "@babel/runtime": "^7.20.13", "@polkadot/util": "10.3.1", @@ -3340,8 +3095,7 @@ }, "node_modules/@polkadot/networks/node_modules/@polkadot/util": { "version": "10.3.1", - "resolved": "https://registry.npmjs.org/@polkadot/util/-/util-10.3.1.tgz", - "integrity": "sha512-8j+O7gj7upj1ZwlGxmAaf3+V0xc0VZvqPeBvTFV30Oi1xoMDNH0q2vKst08wARQUUm1Gi0zIlipDMo0n4Sr7tw==", + "license": "Apache-2.0", "dependencies": { "@babel/runtime": "^7.20.13", "@polkadot/x-bigint": "10.3.1", @@ -3357,8 +3111,7 @@ }, "node_modules/@polkadot/networks/node_modules/@polkadot/x-bigint": { "version": "10.3.1", - "resolved": "https://registry.npmjs.org/@polkadot/x-bigint/-/x-bigint-10.3.1.tgz", - "integrity": "sha512-hXtnwy9LXmV43B9pT8gY1zwdNRhpPBEOk1PfL2Ze0Iw2zd+lbljD3GwDP5mkBfIYIw/s15eRTjiUIKfpTRRDXw==", + "license": "Apache-2.0", "dependencies": { "@babel/runtime": "^7.20.13", "@polkadot/x-global": "10.3.1" @@ -3369,8 +3122,7 @@ }, "node_modules/@polkadot/networks/node_modules/@polkadot/x-global": { "version": "10.3.1", - "resolved": "https://registry.npmjs.org/@polkadot/x-global/-/x-global-10.3.1.tgz", - "integrity": "sha512-kPAVYP2H3aTjS7BKqGkYV1I3Mu03dnRyeX+rDebC8xoN+hUC5bhb7dzCtb5F8DdqlvFl67ZxRaVtq2XUssGTKQ==", + "license": "Apache-2.0", "dependencies": { "@babel/runtime": "^7.20.13" }, @@ -3380,8 +3132,7 @@ }, "node_modules/@polkadot/networks/node_modules/@polkadot/x-textdecoder": { "version": "10.3.1", - "resolved": "https://registry.npmjs.org/@polkadot/x-textdecoder/-/x-textdecoder-10.3.1.tgz", - "integrity": "sha512-BgjcImRYCM2TOMa/95Mmqo6T/YdQWQdVlVQ33PZda7A/I2jBYeOXDj16ftVgn4DWM9xcFVdy2Z3Jg3RGCNbjww==", + "license": "Apache-2.0", "dependencies": { "@babel/runtime": "^7.20.13", "@polkadot/x-global": "10.3.1" @@ -3392,8 +3143,7 @@ }, "node_modules/@polkadot/networks/node_modules/@polkadot/x-textencoder": { "version": "10.3.1", - "resolved": "https://registry.npmjs.org/@polkadot/x-textencoder/-/x-textencoder-10.3.1.tgz", - "integrity": "sha512-nkNsVW1GNT1XfV4IuKlUkdeo9sFJ/2IPhBbC54gu469NFl52b5be5H9x+IHdqqA8cG0ElvsojTd3K3tVD3sx6Q==", + "license": "Apache-2.0", "dependencies": { "@babel/runtime": "^7.20.13", "@polkadot/x-global": "10.3.1" @@ -3404,8 +3154,7 @@ }, "node_modules/@polkadot/rpc-augment": { "version": "9.13.2", - "resolved": "https://registry.npmjs.org/@polkadot/rpc-augment/-/rpc-augment-9.13.2.tgz", - "integrity": "sha512-rCdDbmTFIMBn5pKoZ8blKLhSZPYzNexgaqFhcGsO7TjMJKeehzowLLsMrFeclqNn+WCvgraltuWas5tA5PRT5A==", + "license": "Apache-2.0", "dependencies": { "@babel/runtime": "^7.20.13", "@polkadot/rpc-core": "9.13.2", @@ -3419,8 +3168,7 @@ }, "node_modules/@polkadot/rpc-augment/node_modules/@polkadot/util": { "version": "10.3.1", - "resolved": "https://registry.npmjs.org/@polkadot/util/-/util-10.3.1.tgz", - "integrity": "sha512-8j+O7gj7upj1ZwlGxmAaf3+V0xc0VZvqPeBvTFV30Oi1xoMDNH0q2vKst08wARQUUm1Gi0zIlipDMo0n4Sr7tw==", + "license": "Apache-2.0", "dependencies": { "@babel/runtime": "^7.20.13", "@polkadot/x-bigint": "10.3.1", @@ -3436,8 +3184,7 @@ }, "node_modules/@polkadot/rpc-augment/node_modules/@polkadot/x-bigint": { "version": "10.3.1", - "resolved": "https://registry.npmjs.org/@polkadot/x-bigint/-/x-bigint-10.3.1.tgz", - "integrity": "sha512-hXtnwy9LXmV43B9pT8gY1zwdNRhpPBEOk1PfL2Ze0Iw2zd+lbljD3GwDP5mkBfIYIw/s15eRTjiUIKfpTRRDXw==", + "license": "Apache-2.0", "dependencies": { "@babel/runtime": "^7.20.13", "@polkadot/x-global": "10.3.1" @@ -3448,8 +3195,7 @@ }, "node_modules/@polkadot/rpc-augment/node_modules/@polkadot/x-global": { "version": "10.3.1", - "resolved": "https://registry.npmjs.org/@polkadot/x-global/-/x-global-10.3.1.tgz", - "integrity": "sha512-kPAVYP2H3aTjS7BKqGkYV1I3Mu03dnRyeX+rDebC8xoN+hUC5bhb7dzCtb5F8DdqlvFl67ZxRaVtq2XUssGTKQ==", + "license": "Apache-2.0", "dependencies": { "@babel/runtime": "^7.20.13" }, @@ -3459,8 +3205,7 @@ }, "node_modules/@polkadot/rpc-augment/node_modules/@polkadot/x-textdecoder": { "version": "10.3.1", - "resolved": "https://registry.npmjs.org/@polkadot/x-textdecoder/-/x-textdecoder-10.3.1.tgz", - "integrity": "sha512-BgjcImRYCM2TOMa/95Mmqo6T/YdQWQdVlVQ33PZda7A/I2jBYeOXDj16ftVgn4DWM9xcFVdy2Z3Jg3RGCNbjww==", + "license": "Apache-2.0", "dependencies": { "@babel/runtime": "^7.20.13", "@polkadot/x-global": "10.3.1" @@ -3471,8 +3216,7 @@ }, "node_modules/@polkadot/rpc-augment/node_modules/@polkadot/x-textencoder": { "version": "10.3.1", - "resolved": "https://registry.npmjs.org/@polkadot/x-textencoder/-/x-textencoder-10.3.1.tgz", - "integrity": "sha512-nkNsVW1GNT1XfV4IuKlUkdeo9sFJ/2IPhBbC54gu469NFl52b5be5H9x+IHdqqA8cG0ElvsojTd3K3tVD3sx6Q==", + "license": "Apache-2.0", "dependencies": { "@babel/runtime": "^7.20.13", "@polkadot/x-global": "10.3.1" @@ -3483,8 +3227,7 @@ }, "node_modules/@polkadot/rpc-core": { "version": "9.13.2", - "resolved": "https://registry.npmjs.org/@polkadot/rpc-core/-/rpc-core-9.13.2.tgz", - "integrity": "sha512-9mVh0xJnzQhMZNZyC5w66yQ8Aew064WdY5VCOdEIQgf7t4VrHBHjv8sKu/F5vOB3228qwQCRiK+vcgAPWL0rgA==", + "license": "Apache-2.0", "dependencies": { "@babel/runtime": "^7.20.13", "@polkadot/rpc-augment": "9.13.2", @@ -3499,8 +3242,7 @@ }, "node_modules/@polkadot/rpc-core/node_modules/@polkadot/util": { "version": "10.3.1", - "resolved": "https://registry.npmjs.org/@polkadot/util/-/util-10.3.1.tgz", - "integrity": "sha512-8j+O7gj7upj1ZwlGxmAaf3+V0xc0VZvqPeBvTFV30Oi1xoMDNH0q2vKst08wARQUUm1Gi0zIlipDMo0n4Sr7tw==", + "license": "Apache-2.0", "dependencies": { "@babel/runtime": "^7.20.13", "@polkadot/x-bigint": "10.3.1", @@ -3516,8 +3258,7 @@ }, "node_modules/@polkadot/rpc-core/node_modules/@polkadot/x-bigint": { "version": "10.3.1", - "resolved": "https://registry.npmjs.org/@polkadot/x-bigint/-/x-bigint-10.3.1.tgz", - "integrity": "sha512-hXtnwy9LXmV43B9pT8gY1zwdNRhpPBEOk1PfL2Ze0Iw2zd+lbljD3GwDP5mkBfIYIw/s15eRTjiUIKfpTRRDXw==", + "license": "Apache-2.0", "dependencies": { "@babel/runtime": "^7.20.13", "@polkadot/x-global": "10.3.1" @@ -3528,8 +3269,7 @@ }, "node_modules/@polkadot/rpc-core/node_modules/@polkadot/x-global": { "version": "10.3.1", - "resolved": "https://registry.npmjs.org/@polkadot/x-global/-/x-global-10.3.1.tgz", - "integrity": "sha512-kPAVYP2H3aTjS7BKqGkYV1I3Mu03dnRyeX+rDebC8xoN+hUC5bhb7dzCtb5F8DdqlvFl67ZxRaVtq2XUssGTKQ==", + "license": "Apache-2.0", "dependencies": { "@babel/runtime": "^7.20.13" }, @@ -3539,8 +3279,7 @@ }, "node_modules/@polkadot/rpc-core/node_modules/@polkadot/x-textdecoder": { "version": "10.3.1", - "resolved": "https://registry.npmjs.org/@polkadot/x-textdecoder/-/x-textdecoder-10.3.1.tgz", - "integrity": "sha512-BgjcImRYCM2TOMa/95Mmqo6T/YdQWQdVlVQ33PZda7A/I2jBYeOXDj16ftVgn4DWM9xcFVdy2Z3Jg3RGCNbjww==", + "license": "Apache-2.0", "dependencies": { "@babel/runtime": "^7.20.13", "@polkadot/x-global": "10.3.1" @@ -3551,8 +3290,7 @@ }, "node_modules/@polkadot/rpc-core/node_modules/@polkadot/x-textencoder": { "version": "10.3.1", - "resolved": "https://registry.npmjs.org/@polkadot/x-textencoder/-/x-textencoder-10.3.1.tgz", - "integrity": "sha512-nkNsVW1GNT1XfV4IuKlUkdeo9sFJ/2IPhBbC54gu469NFl52b5be5H9x+IHdqqA8cG0ElvsojTd3K3tVD3sx6Q==", + "license": "Apache-2.0", "dependencies": { "@babel/runtime": "^7.20.13", "@polkadot/x-global": "10.3.1" @@ -3563,8 +3301,7 @@ }, "node_modules/@polkadot/rpc-provider": { "version": "9.13.2", - "resolved": "https://registry.npmjs.org/@polkadot/rpc-provider/-/rpc-provider-9.13.2.tgz", - "integrity": "sha512-YVKTIEVxvkoN3i+Eez6oBHtzIu15R4xpBS0CNcnpFTjRePYi39wpO+csZ/DxtK2YEJaeRHhKJO0a9o4rGitpAQ==", + "license": "Apache-2.0", "dependencies": { "@babel/runtime": "^7.20.13", "@polkadot/keyring": "^10.3.1", @@ -3588,8 +3325,7 @@ }, "node_modules/@polkadot/rpc-provider/node_modules/@polkadot/util": { "version": "10.3.1", - "resolved": "https://registry.npmjs.org/@polkadot/util/-/util-10.3.1.tgz", - "integrity": "sha512-8j+O7gj7upj1ZwlGxmAaf3+V0xc0VZvqPeBvTFV30Oi1xoMDNH0q2vKst08wARQUUm1Gi0zIlipDMo0n4Sr7tw==", + "license": "Apache-2.0", "dependencies": { "@babel/runtime": "^7.20.13", "@polkadot/x-bigint": "10.3.1", @@ -3605,8 +3341,7 @@ }, "node_modules/@polkadot/rpc-provider/node_modules/@polkadot/x-bigint": { "version": "10.3.1", - "resolved": "https://registry.npmjs.org/@polkadot/x-bigint/-/x-bigint-10.3.1.tgz", - "integrity": "sha512-hXtnwy9LXmV43B9pT8gY1zwdNRhpPBEOk1PfL2Ze0Iw2zd+lbljD3GwDP5mkBfIYIw/s15eRTjiUIKfpTRRDXw==", + "license": "Apache-2.0", "dependencies": { "@babel/runtime": "^7.20.13", "@polkadot/x-global": "10.3.1" @@ -3617,8 +3352,7 @@ }, "node_modules/@polkadot/rpc-provider/node_modules/@polkadot/x-global": { "version": "10.3.1", - "resolved": "https://registry.npmjs.org/@polkadot/x-global/-/x-global-10.3.1.tgz", - "integrity": "sha512-kPAVYP2H3aTjS7BKqGkYV1I3Mu03dnRyeX+rDebC8xoN+hUC5bhb7dzCtb5F8DdqlvFl67ZxRaVtq2XUssGTKQ==", + "license": "Apache-2.0", "dependencies": { "@babel/runtime": "^7.20.13" }, @@ -3628,8 +3362,7 @@ }, "node_modules/@polkadot/rpc-provider/node_modules/@polkadot/x-textdecoder": { "version": "10.3.1", - "resolved": "https://registry.npmjs.org/@polkadot/x-textdecoder/-/x-textdecoder-10.3.1.tgz", - "integrity": "sha512-BgjcImRYCM2TOMa/95Mmqo6T/YdQWQdVlVQ33PZda7A/I2jBYeOXDj16ftVgn4DWM9xcFVdy2Z3Jg3RGCNbjww==", + "license": "Apache-2.0", "dependencies": { "@babel/runtime": "^7.20.13", "@polkadot/x-global": "10.3.1" @@ -3640,8 +3373,7 @@ }, "node_modules/@polkadot/rpc-provider/node_modules/@polkadot/x-textencoder": { "version": "10.3.1", - "resolved": "https://registry.npmjs.org/@polkadot/x-textencoder/-/x-textencoder-10.3.1.tgz", - "integrity": "sha512-nkNsVW1GNT1XfV4IuKlUkdeo9sFJ/2IPhBbC54gu469NFl52b5be5H9x+IHdqqA8cG0ElvsojTd3K3tVD3sx6Q==", + "license": "Apache-2.0", "dependencies": { "@babel/runtime": "^7.20.13", "@polkadot/x-global": "10.3.1" @@ -3652,14 +3384,12 @@ }, "node_modules/@polkadot/rpc-provider/node_modules/eventemitter3": { "version": "5.0.0", - "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-5.0.0.tgz", - "integrity": "sha512-riuVbElZZNXLeLEoprfNYoDSwTBRR44X3mnhdI1YcnENpWTCsTTVZ2zFuqQcpoyqPQIUXdiPEU0ECAq0KQRaHg==" + "license": "MIT" }, "node_modules/@polkadot/typegen": { "version": "9.13.2", - "resolved": "https://registry.npmjs.org/@polkadot/typegen/-/typegen-9.13.2.tgz", - "integrity": "sha512-aPLw8loWXT1+RQ+SaWsZuYO/AG9rFo4lTgBnglDaADJ13OppXhQRc2CnMoq8qvwHOPlBdOqzdBGqjjUer37WFQ==", "dev": true, + "license": "Apache-2.0", "dependencies": { "@babel/core": "^7.20.12", "@babel/register": "^7.18.9", @@ -3693,9 +3423,8 @@ }, "node_modules/@polkadot/typegen/node_modules/@polkadot/util": { "version": "10.3.1", - "resolved": "https://registry.npmjs.org/@polkadot/util/-/util-10.3.1.tgz", - "integrity": "sha512-8j+O7gj7upj1ZwlGxmAaf3+V0xc0VZvqPeBvTFV30Oi1xoMDNH0q2vKst08wARQUUm1Gi0zIlipDMo0n4Sr7tw==", "dev": true, + "license": "Apache-2.0", "dependencies": { "@babel/runtime": "^7.20.13", "@polkadot/x-bigint": "10.3.1", @@ -3711,9 +3440,8 @@ }, "node_modules/@polkadot/typegen/node_modules/@polkadot/x-bigint": { "version": "10.3.1", - "resolved": "https://registry.npmjs.org/@polkadot/x-bigint/-/x-bigint-10.3.1.tgz", - "integrity": "sha512-hXtnwy9LXmV43B9pT8gY1zwdNRhpPBEOk1PfL2Ze0Iw2zd+lbljD3GwDP5mkBfIYIw/s15eRTjiUIKfpTRRDXw==", "dev": true, + "license": "Apache-2.0", "dependencies": { "@babel/runtime": "^7.20.13", "@polkadot/x-global": "10.3.1" @@ -3724,9 +3452,8 @@ }, "node_modules/@polkadot/typegen/node_modules/@polkadot/x-global": { "version": "10.3.1", - "resolved": "https://registry.npmjs.org/@polkadot/x-global/-/x-global-10.3.1.tgz", - "integrity": "sha512-kPAVYP2H3aTjS7BKqGkYV1I3Mu03dnRyeX+rDebC8xoN+hUC5bhb7dzCtb5F8DdqlvFl67ZxRaVtq2XUssGTKQ==", "dev": true, + "license": "Apache-2.0", "dependencies": { "@babel/runtime": "^7.20.13" }, @@ -3736,9 +3463,8 @@ }, "node_modules/@polkadot/typegen/node_modules/@polkadot/x-textdecoder": { "version": "10.3.1", - "resolved": "https://registry.npmjs.org/@polkadot/x-textdecoder/-/x-textdecoder-10.3.1.tgz", - "integrity": "sha512-BgjcImRYCM2TOMa/95Mmqo6T/YdQWQdVlVQ33PZda7A/I2jBYeOXDj16ftVgn4DWM9xcFVdy2Z3Jg3RGCNbjww==", "dev": true, + "license": "Apache-2.0", "dependencies": { "@babel/runtime": "^7.20.13", "@polkadot/x-global": "10.3.1" @@ -3749,9 +3475,8 @@ }, "node_modules/@polkadot/typegen/node_modules/@polkadot/x-textencoder": { "version": "10.3.1", - "resolved": "https://registry.npmjs.org/@polkadot/x-textencoder/-/x-textencoder-10.3.1.tgz", - "integrity": "sha512-nkNsVW1GNT1XfV4IuKlUkdeo9sFJ/2IPhBbC54gu469NFl52b5be5H9x+IHdqqA8cG0ElvsojTd3K3tVD3sx6Q==", "dev": true, + "license": "Apache-2.0", "dependencies": { "@babel/runtime": "^7.20.13", "@polkadot/x-global": "10.3.1" @@ -3762,8 +3487,7 @@ }, "node_modules/@polkadot/types": { "version": "9.13.2", - "resolved": "https://registry.npmjs.org/@polkadot/types/-/types-9.13.2.tgz", - "integrity": "sha512-QuMu0DR0fG+chEOgnBHdiZ88l4E5c2LhEkdtJRnwhEuwN1p89NKtal76D4amJuDItl4andOtO1KfyqzR98YiQA==", + "license": "Apache-2.0", "dependencies": { "@babel/runtime": "^7.20.13", "@polkadot/keyring": "^10.3.1", @@ -3780,8 +3504,7 @@ }, "node_modules/@polkadot/types-augment": { "version": "9.13.2", - "resolved": "https://registry.npmjs.org/@polkadot/types-augment/-/types-augment-9.13.2.tgz", - "integrity": "sha512-ASu8XymOQT3ag9LKyhI2VLFfyaiCTiHWfhQcdsrRkwbR7MPksVVQmtr824rq7Gm7gNx2rxa3xex5irlosrW5fg==", + "license": "Apache-2.0", "dependencies": { "@babel/runtime": "^7.20.13", "@polkadot/types": "9.13.2", @@ -3794,8 +3517,7 @@ }, "node_modules/@polkadot/types-augment/node_modules/@polkadot/util": { "version": "10.3.1", - "resolved": "https://registry.npmjs.org/@polkadot/util/-/util-10.3.1.tgz", - "integrity": "sha512-8j+O7gj7upj1ZwlGxmAaf3+V0xc0VZvqPeBvTFV30Oi1xoMDNH0q2vKst08wARQUUm1Gi0zIlipDMo0n4Sr7tw==", + "license": "Apache-2.0", "dependencies": { "@babel/runtime": "^7.20.13", "@polkadot/x-bigint": "10.3.1", @@ -3811,8 +3533,7 @@ }, "node_modules/@polkadot/types-augment/node_modules/@polkadot/x-bigint": { "version": "10.3.1", - "resolved": "https://registry.npmjs.org/@polkadot/x-bigint/-/x-bigint-10.3.1.tgz", - "integrity": "sha512-hXtnwy9LXmV43B9pT8gY1zwdNRhpPBEOk1PfL2Ze0Iw2zd+lbljD3GwDP5mkBfIYIw/s15eRTjiUIKfpTRRDXw==", + "license": "Apache-2.0", "dependencies": { "@babel/runtime": "^7.20.13", "@polkadot/x-global": "10.3.1" @@ -3823,8 +3544,7 @@ }, "node_modules/@polkadot/types-augment/node_modules/@polkadot/x-global": { "version": "10.3.1", - "resolved": "https://registry.npmjs.org/@polkadot/x-global/-/x-global-10.3.1.tgz", - "integrity": "sha512-kPAVYP2H3aTjS7BKqGkYV1I3Mu03dnRyeX+rDebC8xoN+hUC5bhb7dzCtb5F8DdqlvFl67ZxRaVtq2XUssGTKQ==", + "license": "Apache-2.0", "dependencies": { "@babel/runtime": "^7.20.13" }, @@ -3834,8 +3554,7 @@ }, "node_modules/@polkadot/types-augment/node_modules/@polkadot/x-textdecoder": { "version": "10.3.1", - "resolved": "https://registry.npmjs.org/@polkadot/x-textdecoder/-/x-textdecoder-10.3.1.tgz", - "integrity": "sha512-BgjcImRYCM2TOMa/95Mmqo6T/YdQWQdVlVQ33PZda7A/I2jBYeOXDj16ftVgn4DWM9xcFVdy2Z3Jg3RGCNbjww==", + "license": "Apache-2.0", "dependencies": { "@babel/runtime": "^7.20.13", "@polkadot/x-global": "10.3.1" @@ -3846,8 +3565,7 @@ }, "node_modules/@polkadot/types-augment/node_modules/@polkadot/x-textencoder": { "version": "10.3.1", - "resolved": "https://registry.npmjs.org/@polkadot/x-textencoder/-/x-textencoder-10.3.1.tgz", - "integrity": "sha512-nkNsVW1GNT1XfV4IuKlUkdeo9sFJ/2IPhBbC54gu469NFl52b5be5H9x+IHdqqA8cG0ElvsojTd3K3tVD3sx6Q==", + "license": "Apache-2.0", "dependencies": { "@babel/runtime": "^7.20.13", "@polkadot/x-global": "10.3.1" @@ -3858,8 +3576,7 @@ }, "node_modules/@polkadot/types-codec": { "version": "9.13.2", - "resolved": "https://registry.npmjs.org/@polkadot/types-codec/-/types-codec-9.13.2.tgz", - "integrity": "sha512-djKgT7AYMqicrP4US6kaRAWxKomiZoXIYN+l/AvG2B/FSYauNBHhGLKHV3PKXo3aWc+YXwjBj0y7q7SKh0VLOg==", + "license": "Apache-2.0", "dependencies": { "@babel/runtime": "^7.20.13", "@polkadot/util": "^10.3.1", @@ -3871,8 +3588,7 @@ }, "node_modules/@polkadot/types-codec/node_modules/@polkadot/util": { "version": "10.3.1", - "resolved": "https://registry.npmjs.org/@polkadot/util/-/util-10.3.1.tgz", - "integrity": "sha512-8j+O7gj7upj1ZwlGxmAaf3+V0xc0VZvqPeBvTFV30Oi1xoMDNH0q2vKst08wARQUUm1Gi0zIlipDMo0n4Sr7tw==", + "license": "Apache-2.0", "dependencies": { "@babel/runtime": "^7.20.13", "@polkadot/x-bigint": "10.3.1", @@ -3888,8 +3604,7 @@ }, "node_modules/@polkadot/types-codec/node_modules/@polkadot/x-bigint": { "version": "10.3.1", - "resolved": "https://registry.npmjs.org/@polkadot/x-bigint/-/x-bigint-10.3.1.tgz", - "integrity": "sha512-hXtnwy9LXmV43B9pT8gY1zwdNRhpPBEOk1PfL2Ze0Iw2zd+lbljD3GwDP5mkBfIYIw/s15eRTjiUIKfpTRRDXw==", + "license": "Apache-2.0", "dependencies": { "@babel/runtime": "^7.20.13", "@polkadot/x-global": "10.3.1" @@ -3900,8 +3615,7 @@ }, "node_modules/@polkadot/types-codec/node_modules/@polkadot/x-global": { "version": "10.3.1", - "resolved": "https://registry.npmjs.org/@polkadot/x-global/-/x-global-10.3.1.tgz", - "integrity": "sha512-kPAVYP2H3aTjS7BKqGkYV1I3Mu03dnRyeX+rDebC8xoN+hUC5bhb7dzCtb5F8DdqlvFl67ZxRaVtq2XUssGTKQ==", + "license": "Apache-2.0", "dependencies": { "@babel/runtime": "^7.20.13" }, @@ -3911,8 +3625,7 @@ }, "node_modules/@polkadot/types-codec/node_modules/@polkadot/x-textdecoder": { "version": "10.3.1", - "resolved": "https://registry.npmjs.org/@polkadot/x-textdecoder/-/x-textdecoder-10.3.1.tgz", - "integrity": "sha512-BgjcImRYCM2TOMa/95Mmqo6T/YdQWQdVlVQ33PZda7A/I2jBYeOXDj16ftVgn4DWM9xcFVdy2Z3Jg3RGCNbjww==", + "license": "Apache-2.0", "dependencies": { "@babel/runtime": "^7.20.13", "@polkadot/x-global": "10.3.1" @@ -3923,8 +3636,7 @@ }, "node_modules/@polkadot/types-codec/node_modules/@polkadot/x-textencoder": { "version": "10.3.1", - "resolved": "https://registry.npmjs.org/@polkadot/x-textencoder/-/x-textencoder-10.3.1.tgz", - "integrity": "sha512-nkNsVW1GNT1XfV4IuKlUkdeo9sFJ/2IPhBbC54gu469NFl52b5be5H9x+IHdqqA8cG0ElvsojTd3K3tVD3sx6Q==", + "license": "Apache-2.0", "dependencies": { "@babel/runtime": "^7.20.13", "@polkadot/x-global": "10.3.1" @@ -3935,8 +3647,7 @@ }, "node_modules/@polkadot/types-create": { "version": "9.13.2", - "resolved": "https://registry.npmjs.org/@polkadot/types-create/-/types-create-9.13.2.tgz", - "integrity": "sha512-M/clUAD/eOes2mKZAK2f8SVenAqXOf52LlMwvliYirbYEpuH10TrTE4ZYpkqnjTQ3l25tVePOvozbnnXt3bApA==", + "license": "Apache-2.0", "dependencies": { "@babel/runtime": "^7.20.13", "@polkadot/types-codec": "9.13.2", @@ -3948,8 +3659,7 @@ }, "node_modules/@polkadot/types-create/node_modules/@polkadot/util": { "version": "10.3.1", - "resolved": "https://registry.npmjs.org/@polkadot/util/-/util-10.3.1.tgz", - "integrity": "sha512-8j+O7gj7upj1ZwlGxmAaf3+V0xc0VZvqPeBvTFV30Oi1xoMDNH0q2vKst08wARQUUm1Gi0zIlipDMo0n4Sr7tw==", + "license": "Apache-2.0", "dependencies": { "@babel/runtime": "^7.20.13", "@polkadot/x-bigint": "10.3.1", @@ -3965,8 +3675,7 @@ }, "node_modules/@polkadot/types-create/node_modules/@polkadot/x-bigint": { "version": "10.3.1", - "resolved": "https://registry.npmjs.org/@polkadot/x-bigint/-/x-bigint-10.3.1.tgz", - "integrity": "sha512-hXtnwy9LXmV43B9pT8gY1zwdNRhpPBEOk1PfL2Ze0Iw2zd+lbljD3GwDP5mkBfIYIw/s15eRTjiUIKfpTRRDXw==", + "license": "Apache-2.0", "dependencies": { "@babel/runtime": "^7.20.13", "@polkadot/x-global": "10.3.1" @@ -3977,8 +3686,7 @@ }, "node_modules/@polkadot/types-create/node_modules/@polkadot/x-global": { "version": "10.3.1", - "resolved": "https://registry.npmjs.org/@polkadot/x-global/-/x-global-10.3.1.tgz", - "integrity": "sha512-kPAVYP2H3aTjS7BKqGkYV1I3Mu03dnRyeX+rDebC8xoN+hUC5bhb7dzCtb5F8DdqlvFl67ZxRaVtq2XUssGTKQ==", + "license": "Apache-2.0", "dependencies": { "@babel/runtime": "^7.20.13" }, @@ -3988,8 +3696,7 @@ }, "node_modules/@polkadot/types-create/node_modules/@polkadot/x-textdecoder": { "version": "10.3.1", - "resolved": "https://registry.npmjs.org/@polkadot/x-textdecoder/-/x-textdecoder-10.3.1.tgz", - "integrity": "sha512-BgjcImRYCM2TOMa/95Mmqo6T/YdQWQdVlVQ33PZda7A/I2jBYeOXDj16ftVgn4DWM9xcFVdy2Z3Jg3RGCNbjww==", + "license": "Apache-2.0", "dependencies": { "@babel/runtime": "^7.20.13", "@polkadot/x-global": "10.3.1" @@ -4000,8 +3707,7 @@ }, "node_modules/@polkadot/types-create/node_modules/@polkadot/x-textencoder": { "version": "10.3.1", - "resolved": "https://registry.npmjs.org/@polkadot/x-textencoder/-/x-textencoder-10.3.1.tgz", - "integrity": "sha512-nkNsVW1GNT1XfV4IuKlUkdeo9sFJ/2IPhBbC54gu469NFl52b5be5H9x+IHdqqA8cG0ElvsojTd3K3tVD3sx6Q==", + "license": "Apache-2.0", "dependencies": { "@babel/runtime": "^7.20.13", "@polkadot/x-global": "10.3.1" @@ -4012,8 +3718,7 @@ }, "node_modules/@polkadot/types-known": { "version": "9.13.2", - "resolved": "https://registry.npmjs.org/@polkadot/types-known/-/types-known-9.13.2.tgz", - "integrity": "sha512-H8oetgLNhaIQ6a7bJ7GuBGSC9bbkrYZ9x67nHdzYNnWLRIfk6BzY1CMsSVUGYThL74McnzOAYQarj2Xbah3QYQ==", + "license": "Apache-2.0", "dependencies": { "@babel/runtime": "^7.20.13", "@polkadot/networks": "^10.3.1", @@ -4028,8 +3733,7 @@ }, "node_modules/@polkadot/types-known/node_modules/@polkadot/util": { "version": "10.3.1", - "resolved": "https://registry.npmjs.org/@polkadot/util/-/util-10.3.1.tgz", - "integrity": "sha512-8j+O7gj7upj1ZwlGxmAaf3+V0xc0VZvqPeBvTFV30Oi1xoMDNH0q2vKst08wARQUUm1Gi0zIlipDMo0n4Sr7tw==", + "license": "Apache-2.0", "dependencies": { "@babel/runtime": "^7.20.13", "@polkadot/x-bigint": "10.3.1", @@ -4045,8 +3749,7 @@ }, "node_modules/@polkadot/types-known/node_modules/@polkadot/x-bigint": { "version": "10.3.1", - "resolved": "https://registry.npmjs.org/@polkadot/x-bigint/-/x-bigint-10.3.1.tgz", - "integrity": "sha512-hXtnwy9LXmV43B9pT8gY1zwdNRhpPBEOk1PfL2Ze0Iw2zd+lbljD3GwDP5mkBfIYIw/s15eRTjiUIKfpTRRDXw==", + "license": "Apache-2.0", "dependencies": { "@babel/runtime": "^7.20.13", "@polkadot/x-global": "10.3.1" @@ -4057,8 +3760,7 @@ }, "node_modules/@polkadot/types-known/node_modules/@polkadot/x-global": { "version": "10.3.1", - "resolved": "https://registry.npmjs.org/@polkadot/x-global/-/x-global-10.3.1.tgz", - "integrity": "sha512-kPAVYP2H3aTjS7BKqGkYV1I3Mu03dnRyeX+rDebC8xoN+hUC5bhb7dzCtb5F8DdqlvFl67ZxRaVtq2XUssGTKQ==", + "license": "Apache-2.0", "dependencies": { "@babel/runtime": "^7.20.13" }, @@ -4068,8 +3770,7 @@ }, "node_modules/@polkadot/types-known/node_modules/@polkadot/x-textdecoder": { "version": "10.3.1", - "resolved": "https://registry.npmjs.org/@polkadot/x-textdecoder/-/x-textdecoder-10.3.1.tgz", - "integrity": "sha512-BgjcImRYCM2TOMa/95Mmqo6T/YdQWQdVlVQ33PZda7A/I2jBYeOXDj16ftVgn4DWM9xcFVdy2Z3Jg3RGCNbjww==", + "license": "Apache-2.0", "dependencies": { "@babel/runtime": "^7.20.13", "@polkadot/x-global": "10.3.1" @@ -4080,8 +3781,7 @@ }, "node_modules/@polkadot/types-known/node_modules/@polkadot/x-textencoder": { "version": "10.3.1", - "resolved": "https://registry.npmjs.org/@polkadot/x-textencoder/-/x-textencoder-10.3.1.tgz", - "integrity": "sha512-nkNsVW1GNT1XfV4IuKlUkdeo9sFJ/2IPhBbC54gu469NFl52b5be5H9x+IHdqqA8cG0ElvsojTd3K3tVD3sx6Q==", + "license": "Apache-2.0", "dependencies": { "@babel/runtime": "^7.20.13", "@polkadot/x-global": "10.3.1" @@ -4092,8 +3792,7 @@ }, "node_modules/@polkadot/types-support": { "version": "9.13.2", - "resolved": "https://registry.npmjs.org/@polkadot/types-support/-/types-support-9.13.2.tgz", - "integrity": "sha512-YXvNOiSbu9hKzAMSsLBmljqrIyYAPmsZ/O/GBDZcjELgn0Nsw/hRPKBcNI+5U5qGvOtLdwgulfTD9hp9Cl06lw==", + "license": "Apache-2.0", "dependencies": { "@babel/runtime": "^7.20.13", "@polkadot/util": "^10.3.1" @@ -4104,8 +3803,7 @@ }, "node_modules/@polkadot/types-support/node_modules/@polkadot/util": { "version": "10.3.1", - "resolved": "https://registry.npmjs.org/@polkadot/util/-/util-10.3.1.tgz", - "integrity": "sha512-8j+O7gj7upj1ZwlGxmAaf3+V0xc0VZvqPeBvTFV30Oi1xoMDNH0q2vKst08wARQUUm1Gi0zIlipDMo0n4Sr7tw==", + "license": "Apache-2.0", "dependencies": { "@babel/runtime": "^7.20.13", "@polkadot/x-bigint": "10.3.1", @@ -4121,8 +3819,7 @@ }, "node_modules/@polkadot/types-support/node_modules/@polkadot/x-bigint": { "version": "10.3.1", - "resolved": "https://registry.npmjs.org/@polkadot/x-bigint/-/x-bigint-10.3.1.tgz", - "integrity": "sha512-hXtnwy9LXmV43B9pT8gY1zwdNRhpPBEOk1PfL2Ze0Iw2zd+lbljD3GwDP5mkBfIYIw/s15eRTjiUIKfpTRRDXw==", + "license": "Apache-2.0", "dependencies": { "@babel/runtime": "^7.20.13", "@polkadot/x-global": "10.3.1" @@ -4133,8 +3830,7 @@ }, "node_modules/@polkadot/types-support/node_modules/@polkadot/x-global": { "version": "10.3.1", - "resolved": "https://registry.npmjs.org/@polkadot/x-global/-/x-global-10.3.1.tgz", - "integrity": "sha512-kPAVYP2H3aTjS7BKqGkYV1I3Mu03dnRyeX+rDebC8xoN+hUC5bhb7dzCtb5F8DdqlvFl67ZxRaVtq2XUssGTKQ==", + "license": "Apache-2.0", "dependencies": { "@babel/runtime": "^7.20.13" }, @@ -4144,8 +3840,7 @@ }, "node_modules/@polkadot/types-support/node_modules/@polkadot/x-textdecoder": { "version": "10.3.1", - "resolved": "https://registry.npmjs.org/@polkadot/x-textdecoder/-/x-textdecoder-10.3.1.tgz", - "integrity": "sha512-BgjcImRYCM2TOMa/95Mmqo6T/YdQWQdVlVQ33PZda7A/I2jBYeOXDj16ftVgn4DWM9xcFVdy2Z3Jg3RGCNbjww==", + "license": "Apache-2.0", "dependencies": { "@babel/runtime": "^7.20.13", "@polkadot/x-global": "10.3.1" @@ -4156,8 +3851,7 @@ }, "node_modules/@polkadot/types-support/node_modules/@polkadot/x-textencoder": { "version": "10.3.1", - "resolved": "https://registry.npmjs.org/@polkadot/x-textencoder/-/x-textencoder-10.3.1.tgz", - "integrity": "sha512-nkNsVW1GNT1XfV4IuKlUkdeo9sFJ/2IPhBbC54gu469NFl52b5be5H9x+IHdqqA8cG0ElvsojTd3K3tVD3sx6Q==", + "license": "Apache-2.0", "dependencies": { "@babel/runtime": "^7.20.13", "@polkadot/x-global": "10.3.1" @@ -4168,8 +3862,7 @@ }, "node_modules/@polkadot/types/node_modules/@polkadot/util": { "version": "10.3.1", - "resolved": "https://registry.npmjs.org/@polkadot/util/-/util-10.3.1.tgz", - "integrity": "sha512-8j+O7gj7upj1ZwlGxmAaf3+V0xc0VZvqPeBvTFV30Oi1xoMDNH0q2vKst08wARQUUm1Gi0zIlipDMo0n4Sr7tw==", + "license": "Apache-2.0", "dependencies": { "@babel/runtime": "^7.20.13", "@polkadot/x-bigint": "10.3.1", @@ -4185,8 +3878,7 @@ }, "node_modules/@polkadot/types/node_modules/@polkadot/x-bigint": { "version": "10.3.1", - "resolved": "https://registry.npmjs.org/@polkadot/x-bigint/-/x-bigint-10.3.1.tgz", - "integrity": "sha512-hXtnwy9LXmV43B9pT8gY1zwdNRhpPBEOk1PfL2Ze0Iw2zd+lbljD3GwDP5mkBfIYIw/s15eRTjiUIKfpTRRDXw==", + "license": "Apache-2.0", "dependencies": { "@babel/runtime": "^7.20.13", "@polkadot/x-global": "10.3.1" @@ -4197,8 +3889,7 @@ }, "node_modules/@polkadot/types/node_modules/@polkadot/x-global": { "version": "10.3.1", - "resolved": "https://registry.npmjs.org/@polkadot/x-global/-/x-global-10.3.1.tgz", - "integrity": "sha512-kPAVYP2H3aTjS7BKqGkYV1I3Mu03dnRyeX+rDebC8xoN+hUC5bhb7dzCtb5F8DdqlvFl67ZxRaVtq2XUssGTKQ==", + "license": "Apache-2.0", "dependencies": { "@babel/runtime": "^7.20.13" }, @@ -4208,8 +3899,7 @@ }, "node_modules/@polkadot/types/node_modules/@polkadot/x-textdecoder": { "version": "10.3.1", - "resolved": "https://registry.npmjs.org/@polkadot/x-textdecoder/-/x-textdecoder-10.3.1.tgz", - "integrity": "sha512-BgjcImRYCM2TOMa/95Mmqo6T/YdQWQdVlVQ33PZda7A/I2jBYeOXDj16ftVgn4DWM9xcFVdy2Z3Jg3RGCNbjww==", + "license": "Apache-2.0", "dependencies": { "@babel/runtime": "^7.20.13", "@polkadot/x-global": "10.3.1" @@ -4220,8 +3910,7 @@ }, "node_modules/@polkadot/types/node_modules/@polkadot/x-textencoder": { "version": "10.3.1", - "resolved": "https://registry.npmjs.org/@polkadot/x-textencoder/-/x-textencoder-10.3.1.tgz", - "integrity": "sha512-nkNsVW1GNT1XfV4IuKlUkdeo9sFJ/2IPhBbC54gu469NFl52b5be5H9x+IHdqqA8cG0ElvsojTd3K3tVD3sx6Q==", + "license": "Apache-2.0", "dependencies": { "@babel/runtime": "^7.20.13", "@polkadot/x-global": "10.3.1" @@ -4232,8 +3921,7 @@ }, "node_modules/@polkadot/util": { "version": "10.2.1", - "resolved": "https://registry.npmjs.org/@polkadot/util/-/util-10.2.1.tgz", - "integrity": "sha512-ewGKSOp+VXKEeCvpCCP2Qqi/FVkewBF9vb/N8pRwuNQ2XE9k1lnsOZZeQemVBDhKsZz+h3IeNcWejaF6K3vYHQ==", + "license": "Apache-2.0", "dependencies": { "@babel/runtime": "^7.20.6", "@polkadot/x-bigint": "10.2.1", @@ -4249,8 +3937,7 @@ }, "node_modules/@polkadot/util-crypto": { "version": "10.3.1", - "resolved": "https://registry.npmjs.org/@polkadot/util-crypto/-/util-crypto-10.3.1.tgz", - "integrity": "sha512-viqLMuNGrbB2lyDIYdXAl3tq/Em/Y7ql2FvCTHJmxXaB5C1NXiWf1SqFAahUJKohL+ke5IL0jr19wZu/f88lIQ==", + "license": "Apache-2.0", "dependencies": { "@babel/runtime": "^7.20.13", "@noble/hashes": "1.1.5", @@ -4273,8 +3960,7 @@ }, "node_modules/@polkadot/util-crypto/node_modules/@polkadot/util": { "version": "10.3.1", - "resolved": "https://registry.npmjs.org/@polkadot/util/-/util-10.3.1.tgz", - "integrity": "sha512-8j+O7gj7upj1ZwlGxmAaf3+V0xc0VZvqPeBvTFV30Oi1xoMDNH0q2vKst08wARQUUm1Gi0zIlipDMo0n4Sr7tw==", + "license": "Apache-2.0", "dependencies": { "@babel/runtime": "^7.20.13", "@polkadot/x-bigint": "10.3.1", @@ -4290,8 +3976,7 @@ }, "node_modules/@polkadot/util-crypto/node_modules/@polkadot/x-bigint": { "version": "10.3.1", - "resolved": "https://registry.npmjs.org/@polkadot/x-bigint/-/x-bigint-10.3.1.tgz", - "integrity": "sha512-hXtnwy9LXmV43B9pT8gY1zwdNRhpPBEOk1PfL2Ze0Iw2zd+lbljD3GwDP5mkBfIYIw/s15eRTjiUIKfpTRRDXw==", + "license": "Apache-2.0", "dependencies": { "@babel/runtime": "^7.20.13", "@polkadot/x-global": "10.3.1" @@ -4302,8 +3987,7 @@ }, "node_modules/@polkadot/util-crypto/node_modules/@polkadot/x-global": { "version": "10.3.1", - "resolved": "https://registry.npmjs.org/@polkadot/x-global/-/x-global-10.3.1.tgz", - "integrity": "sha512-kPAVYP2H3aTjS7BKqGkYV1I3Mu03dnRyeX+rDebC8xoN+hUC5bhb7dzCtb5F8DdqlvFl67ZxRaVtq2XUssGTKQ==", + "license": "Apache-2.0", "dependencies": { "@babel/runtime": "^7.20.13" }, @@ -4313,8 +3997,7 @@ }, "node_modules/@polkadot/util-crypto/node_modules/@polkadot/x-textdecoder": { "version": "10.3.1", - "resolved": "https://registry.npmjs.org/@polkadot/x-textdecoder/-/x-textdecoder-10.3.1.tgz", - "integrity": "sha512-BgjcImRYCM2TOMa/95Mmqo6T/YdQWQdVlVQ33PZda7A/I2jBYeOXDj16ftVgn4DWM9xcFVdy2Z3Jg3RGCNbjww==", + "license": "Apache-2.0", "dependencies": { "@babel/runtime": "^7.20.13", "@polkadot/x-global": "10.3.1" @@ -4325,8 +4008,7 @@ }, "node_modules/@polkadot/util-crypto/node_modules/@polkadot/x-textencoder": { "version": "10.3.1", - "resolved": "https://registry.npmjs.org/@polkadot/x-textencoder/-/x-textencoder-10.3.1.tgz", - "integrity": "sha512-nkNsVW1GNT1XfV4IuKlUkdeo9sFJ/2IPhBbC54gu469NFl52b5be5H9x+IHdqqA8cG0ElvsojTd3K3tVD3sx6Q==", + "license": "Apache-2.0", "dependencies": { "@babel/runtime": "^7.20.13", "@polkadot/x-global": "10.3.1" @@ -4337,8 +4019,7 @@ }, "node_modules/@polkadot/wasm-bridge": { "version": "6.4.1", - "resolved": "https://registry.npmjs.org/@polkadot/wasm-bridge/-/wasm-bridge-6.4.1.tgz", - "integrity": "sha512-QZDvz6dsUlbYsaMV5biZgZWkYH9BC5AfhT0f0/knv8+LrbAoQdP3Asbvddw8vyU9sbpuCHXrd4bDLBwUCRfrBQ==", + "license": "Apache-2.0", "dependencies": { "@babel/runtime": "^7.20.6" }, @@ -4352,8 +4033,7 @@ }, "node_modules/@polkadot/wasm-crypto": { "version": "6.4.1", - "resolved": "https://registry.npmjs.org/@polkadot/wasm-crypto/-/wasm-crypto-6.4.1.tgz", - "integrity": "sha512-FH+dcDPdhSLJvwL0pMLtn/LIPd62QDPODZRCmDyw+pFjLOMaRBc7raomWUOqyRWJTnqVf/iscc2rLVLNMyt7ag==", + "license": "Apache-2.0", "dependencies": { "@babel/runtime": "^7.20.6", "@polkadot/wasm-bridge": "6.4.1", @@ -4372,8 +4052,7 @@ }, "node_modules/@polkadot/wasm-crypto-asmjs": { "version": "6.4.1", - "resolved": "https://registry.npmjs.org/@polkadot/wasm-crypto-asmjs/-/wasm-crypto-asmjs-6.4.1.tgz", - "integrity": "sha512-UxZTwuBZlnODGIQdCsE2Sn/jU0O2xrNQ/TkhRFELfkZXEXTNu4lw6NpaKq7Iey4L+wKd8h4lT3VPVkMcPBLOvA==", + "license": "Apache-2.0", "dependencies": { "@babel/runtime": "^7.20.6" }, @@ -4386,8 +4065,7 @@ }, "node_modules/@polkadot/wasm-crypto-init": { "version": "6.4.1", - "resolved": "https://registry.npmjs.org/@polkadot/wasm-crypto-init/-/wasm-crypto-init-6.4.1.tgz", - "integrity": "sha512-1ALagSi/nfkyFaH6JDYfy/QbicVbSn99K8PV9rctDUfxc7P06R7CoqbjGQ4OMPX6w1WYVPU7B4jPHGLYBlVuMw==", + "license": "Apache-2.0", "dependencies": { "@babel/runtime": "^7.20.6", "@polkadot/wasm-bridge": "6.4.1", @@ -4404,8 +4082,7 @@ }, "node_modules/@polkadot/wasm-crypto-wasm": { "version": "6.4.1", - "resolved": "https://registry.npmjs.org/@polkadot/wasm-crypto-wasm/-/wasm-crypto-wasm-6.4.1.tgz", - "integrity": "sha512-3VV9ZGzh0ZY3SmkkSw+0TRXxIpiO0nB8lFwlRgcwaCihwrvLfRnH9GI8WE12mKsHVjWTEVR3ogzILJxccAUjDA==", + "license": "Apache-2.0", "dependencies": { "@babel/runtime": "^7.20.6", "@polkadot/wasm-util": "6.4.1" @@ -4419,8 +4096,7 @@ }, "node_modules/@polkadot/wasm-util": { "version": "6.4.1", - "resolved": "https://registry.npmjs.org/@polkadot/wasm-util/-/wasm-util-6.4.1.tgz", - "integrity": "sha512-Uwo+WpEsDmFExWC5kTNvsVhvqXMZEKf4gUHXFn4c6Xz4lmieRT5g+1bO1KJ21pl4msuIgdV3Bksfs/oiqMFqlw==", + "license": "Apache-2.0", "dependencies": { "@babel/runtime": "^7.20.6" }, @@ -4433,8 +4109,7 @@ }, "node_modules/@polkadot/x-bigint": { "version": "10.2.1", - "resolved": "https://registry.npmjs.org/@polkadot/x-bigint/-/x-bigint-10.2.1.tgz", - "integrity": "sha512-asFroI2skC4gYv0oIqqb84DqCCxhNUTSCKobEg57WdXoT4TKrN9Uetg2AMSIHRiX/9lP3EPMhUjM1VVGobTQRQ==", + "license": "Apache-2.0", "dependencies": { "@babel/runtime": "^7.20.6", "@polkadot/x-global": "10.2.1" @@ -4445,8 +4120,7 @@ }, "node_modules/@polkadot/x-fetch": { "version": "10.3.1", - "resolved": "https://registry.npmjs.org/@polkadot/x-fetch/-/x-fetch-10.3.1.tgz", - "integrity": "sha512-v07jNzFK1uzuZ9pAg0oNyU84vFwyekGWZi7Xanh+GPKt6G5RY1JyvSW1GSNcyXpWiqqTnTuaoF+e5PRHeyOnhw==", + "license": "Apache-2.0", "dependencies": { "@babel/runtime": "^7.20.13", "@polkadot/x-global": "10.3.1", @@ -4459,8 +4133,7 @@ }, "node_modules/@polkadot/x-fetch/node_modules/@polkadot/x-global": { "version": "10.3.1", - "resolved": "https://registry.npmjs.org/@polkadot/x-global/-/x-global-10.3.1.tgz", - "integrity": "sha512-kPAVYP2H3aTjS7BKqGkYV1I3Mu03dnRyeX+rDebC8xoN+hUC5bhb7dzCtb5F8DdqlvFl67ZxRaVtq2XUssGTKQ==", + "license": "Apache-2.0", "dependencies": { "@babel/runtime": "^7.20.13" }, @@ -4470,8 +4143,7 @@ }, "node_modules/@polkadot/x-global": { "version": "10.2.1", - "resolved": "https://registry.npmjs.org/@polkadot/x-global/-/x-global-10.2.1.tgz", - "integrity": "sha512-kWmPku2lCcoYKU16+lWGOb95+6Lu9zo1trvzTWmAt7z0DXw2GlD9+qmDTt5iYGtguJsGXoRZDGilDTo3MeFrkA==", + "license": "Apache-2.0", "dependencies": { "@babel/runtime": "^7.20.6" }, @@ -4481,8 +4153,7 @@ }, "node_modules/@polkadot/x-randomvalues": { "version": "10.3.1", - "resolved": "https://registry.npmjs.org/@polkadot/x-randomvalues/-/x-randomvalues-10.3.1.tgz", - "integrity": "sha512-9b0hakA4ERcWui7LalqYN+gjYpHpL5OLBhktco62CI9oVNYYKVY6H5+iMO+d3I5U+MecqAqdejl0+L2xhzk3sw==", + "license": "Apache-2.0", "dependencies": { "@babel/runtime": "^7.20.13", "@polkadot/x-global": "10.3.1" @@ -4493,8 +4164,7 @@ }, "node_modules/@polkadot/x-randomvalues/node_modules/@polkadot/x-global": { "version": "10.3.1", - "resolved": "https://registry.npmjs.org/@polkadot/x-global/-/x-global-10.3.1.tgz", - "integrity": "sha512-kPAVYP2H3aTjS7BKqGkYV1I3Mu03dnRyeX+rDebC8xoN+hUC5bhb7dzCtb5F8DdqlvFl67ZxRaVtq2XUssGTKQ==", + "license": "Apache-2.0", "dependencies": { "@babel/runtime": "^7.20.13" }, @@ -4504,8 +4174,7 @@ }, "node_modules/@polkadot/x-textdecoder": { "version": "10.2.1", - "resolved": "https://registry.npmjs.org/@polkadot/x-textdecoder/-/x-textdecoder-10.2.1.tgz", - "integrity": "sha512-hpFmrdv/rrSM4UNaV8TJBgMtwXsYlNgBTSUmnKWwJIN3PhOUeYxl1qIbPchxGbJBc35WviJCZe7rlLja9JvFcw==", + "license": "Apache-2.0", "dependencies": { "@babel/runtime": "^7.20.6", "@polkadot/x-global": "10.2.1" @@ -4516,8 +4185,7 @@ }, "node_modules/@polkadot/x-textencoder": { "version": "10.2.1", - "resolved": "https://registry.npmjs.org/@polkadot/x-textencoder/-/x-textencoder-10.2.1.tgz", - "integrity": "sha512-4gMyY6DCH34KA++bawu/zlUJ0/8+aZJsurwjRBbkdfOS2uLo0K+vJ5GBevAhl0VSznM36ptfh/MpkIBKK/6R0g==", + "license": "Apache-2.0", "dependencies": { "@babel/runtime": "^7.20.6", "@polkadot/x-global": "10.2.1" @@ -4528,8 +4196,7 @@ }, "node_modules/@polkadot/x-ws": { "version": "10.3.1", - "resolved": "https://registry.npmjs.org/@polkadot/x-ws/-/x-ws-10.3.1.tgz", - "integrity": "sha512-gjYXB+W2slfnnnpCn3KjxP/VR3GZ6BK9xmZbeyVhlWFM3e+1WyMoetumxWbqzfpdXjwe3hIl1R28sngxqllfUQ==", + "license": "Apache-2.0", "dependencies": { "@babel/runtime": "^7.20.13", "@polkadot/x-global": "10.3.1", @@ -4542,8 +4209,7 @@ }, "node_modules/@polkadot/x-ws/node_modules/@polkadot/x-global": { "version": "10.3.1", - "resolved": "https://registry.npmjs.org/@polkadot/x-global/-/x-global-10.3.1.tgz", - "integrity": "sha512-kPAVYP2H3aTjS7BKqGkYV1I3Mu03dnRyeX+rDebC8xoN+hUC5bhb7dzCtb5F8DdqlvFl67ZxRaVtq2XUssGTKQ==", + "license": "Apache-2.0", "dependencies": { "@babel/runtime": "^7.20.13" }, @@ -4553,28 +4219,23 @@ }, "node_modules/@protobufjs/aspromise": { "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@protobufjs/aspromise/-/aspromise-1.1.2.tgz", - "integrity": "sha512-j+gKExEuLmKwvz3OgROXtrJ2UG2x8Ch2YZUxahh+s1F2HZ+wAceUNLkvy6zKCPVRkU++ZWQrdxsUeQXmcg4uoQ==" + "license": "BSD-3-Clause" }, "node_modules/@protobufjs/base64": { "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@protobufjs/base64/-/base64-1.1.2.tgz", - "integrity": "sha512-AZkcAA5vnN/v4PDqKyMR5lx7hZttPDgClv83E//FMNhR2TMcLUhfRUBHCmSl0oi9zMgDDqRUJkSxO3wm85+XLg==" + "license": "BSD-3-Clause" }, "node_modules/@protobufjs/codegen": { "version": "2.0.4", - "resolved": "https://registry.npmjs.org/@protobufjs/codegen/-/codegen-2.0.4.tgz", - "integrity": "sha512-YyFaikqM5sH0ziFZCN3xDC7zeGaB/d0IUb9CATugHWbd1FRFwWwt4ld4OYMPWu5a3Xe01mGAULCdqhMlPl29Jg==" + "license": "BSD-3-Clause" }, "node_modules/@protobufjs/eventemitter": { "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@protobufjs/eventemitter/-/eventemitter-1.1.0.tgz", - "integrity": "sha512-j9ednRT81vYJ9OfVuXG6ERSTdEL1xVsNgqpkxMsbIabzSo3goCjDIveeGv5d03om39ML71RdmrGNjG5SReBP/Q==" + "license": "BSD-3-Clause" }, "node_modules/@protobufjs/fetch": { "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@protobufjs/fetch/-/fetch-1.1.0.tgz", - "integrity": "sha512-lljVXpqXebpsijW71PZaCYeIcE5on1w5DlQy5WH6GLbFryLUrBD4932W/E2BSpfRJWseIL4v/KPgBFxDOIdKpQ==", + "license": "BSD-3-Clause", "dependencies": { "@protobufjs/aspromise": "^1.1.1", "@protobufjs/inquire": "^1.1.0" @@ -4582,62 +4243,52 @@ }, "node_modules/@protobufjs/float": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/@protobufjs/float/-/float-1.0.2.tgz", - "integrity": "sha512-Ddb+kVXlXst9d+R9PfTIxh1EdNkgoRe5tOX6t01f1lYWOvJnSPDBlG241QLzcyPdoNTsblLUdujGSE4RzrTZGQ==" + "license": "BSD-3-Clause" }, "node_modules/@protobufjs/inquire": { "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@protobufjs/inquire/-/inquire-1.1.0.tgz", - "integrity": "sha512-kdSefcPdruJiFMVSbn801t4vFK7KB/5gd2fYvrxhuJYg8ILrmn9SKSX2tZdV6V+ksulWqS7aXjBcRXl3wHoD9Q==" + "license": "BSD-3-Clause" }, "node_modules/@protobufjs/path": { "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@protobufjs/path/-/path-1.1.2.tgz", - "integrity": "sha512-6JOcJ5Tm08dOHAbdR3GrvP+yUUfkjG5ePsHYczMFLq3ZmMkAD98cDgcT2iA1lJ9NVwFd4tH/iSSoe44YWkltEA==" + "license": "BSD-3-Clause" }, "node_modules/@protobufjs/pool": { "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@protobufjs/pool/-/pool-1.1.0.tgz", - "integrity": "sha512-0kELaGSIDBKvcgS4zkjz1PeddatrjYcmMWOlAuAPwAeccUrPHdUqo/J6LiymHHEiJT5NrF1UVwxY14f+fy4WQw==" + "license": "BSD-3-Clause" }, "node_modules/@protobufjs/utf8": { "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@protobufjs/utf8/-/utf8-1.1.0.tgz", - "integrity": "sha512-Vvn3zZrhQZkkBE8LSuW3em98c0FwgO4nxzv6OdSxPKJIEKY2bGbHn+mhGIPerzI4twdxaP8/0+06HBpwf345Lw==" + "license": "BSD-3-Clause" }, "node_modules/@scure/base": { "version": "1.1.1", - "resolved": "https://registry.npmjs.org/@scure/base/-/base-1.1.1.tgz", - "integrity": "sha512-ZxOhsSyxYwLJj3pLZCefNitxsj093tb2vq90mp2txoYeBqbcjDjqFhyM8eUjq/uFm6zJ+mUuqxlS2FkuSY1MTA==", "funding": [ { "type": "individual", "url": "https://paulmillr.com/funding/" } - ] + ], + "license": "MIT" }, "node_modules/@sideway/address": { "version": "4.1.4", - "resolved": "https://registry.npmjs.org/@sideway/address/-/address-4.1.4.tgz", - "integrity": "sha512-7vwq+rOHVWjyXxVlR76Agnvhy8I9rpzjosTESvmhNeXOXdZZB15Fl+TI9x1SiHZH5Jv2wTGduSxFDIaq0m3DUw==", + "license": "BSD-3-Clause", "dependencies": { "@hapi/hoek": "^9.0.0" } }, "node_modules/@sideway/formula": { "version": "3.0.1", - "resolved": "https://registry.npmjs.org/@sideway/formula/-/formula-3.0.1.tgz", - "integrity": "sha512-/poHZJJVjx3L+zVD6g9KgHfYnb443oi7wLu/XKojDviHy6HOEOA6z1Trk5aR1dGcmPenJEgb2sK2I80LeS3MIg==" + "license": "BSD-3-Clause" }, "node_modules/@sideway/pinpoint": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/@sideway/pinpoint/-/pinpoint-2.0.0.tgz", - "integrity": "sha512-RNiOoTPkptFtSVzQevY/yWtZwf/RxyVnPy/OcA9HBM3MlGDnBEYL5B41H0MTn0Uec8Hi+2qUtTfG2WWZBmMejQ==" + "license": "BSD-3-Clause" }, "node_modules/@sindresorhus/is": { "version": "5.3.0", - "resolved": "https://registry.npmjs.org/@sindresorhus/is/-/is-5.3.0.tgz", - "integrity": "sha512-CX6t4SYQ37lzxicAqsBtxA3OseeoVrh9cSJ5PFYam0GksYlupRfy1A+Q4aYD3zvcfECLc0zO2u+ZnR2UYKvCrw==", + "license": "MIT", "engines": { "node": ">=14.16" }, @@ -4647,36 +4298,32 @@ }, "node_modules/@sinonjs/commons": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/@sinonjs/commons/-/commons-2.0.0.tgz", - "integrity": "sha512-uLa0j859mMrg2slwQYdO/AkrOfmH+X6LTVmNTS9CqexuE2IvVORIkSpJLqePAbEnKJ77aMmCwr1NUZ57120Xcg==", "dev": true, + "license": "BSD-3-Clause", "dependencies": { "type-detect": "4.0.8" } }, "node_modules/@sinonjs/fake-timers": { "version": "9.1.2", - "resolved": "https://registry.npmjs.org/@sinonjs/fake-timers/-/fake-timers-9.1.2.tgz", - "integrity": "sha512-BPS4ynJW/o92PUR4wgriz2Ud5gpST5vz6GQfMixEDK0Z8ZCUv2M7SkBLykH56T++Xs+8ln9zTGbOvNGIe02/jw==", "dev": true, + "license": "BSD-3-Clause", "dependencies": { "@sinonjs/commons": "^1.7.0" } }, "node_modules/@sinonjs/fake-timers/node_modules/@sinonjs/commons": { "version": "1.8.6", - "resolved": "https://registry.npmjs.org/@sinonjs/commons/-/commons-1.8.6.tgz", - "integrity": "sha512-Ky+XkAkqPZSm3NLBeUng77EBQl3cmeJhITaGHdYH8kjVB+aun3S4XBRti2zt17mtt0mIUDiNxYeoJm6drVvBJQ==", "dev": true, + "license": "BSD-3-Clause", "dependencies": { "type-detect": "4.0.8" } }, "node_modules/@sinonjs/samsam": { "version": "7.0.1", - "resolved": "https://registry.npmjs.org/@sinonjs/samsam/-/samsam-7.0.1.tgz", - "integrity": "sha512-zsAk2Jkiq89mhZovB2LLOdTCxJF4hqqTToGP0ASWlhp4I1hqOjcfmZGafXntCN7MDC6yySH0mFHrYtHceOeLmw==", "dev": true, + "license": "BSD-3-Clause", "dependencies": { "@sinonjs/commons": "^2.0.0", "lodash.get": "^4.4.2", @@ -4685,37 +4332,31 @@ }, "node_modules/@sinonjs/text-encoding": { "version": "0.7.2", - "resolved": "https://registry.npmjs.org/@sinonjs/text-encoding/-/text-encoding-0.7.2.tgz", - "integrity": "sha512-sXXKG+uL9IrKqViTtao2Ws6dy0znu9sOaP1di/jKGW1M6VssO8vlpXCQcpZ+jisQ1tTFAC5Jo/EOzFbggBagFQ==", - "dev": true + "dev": true, + "license": "(Unlicense OR Apache-2.0)" }, "node_modules/@socket.io/component-emitter": { "version": "3.1.0", - "resolved": "https://registry.npmjs.org/@socket.io/component-emitter/-/component-emitter-3.1.0.tgz", - "integrity": "sha512-+9jVqKhRSpsc591z5vX+X5Yyw+he/HCB4iQ/RYxw35CEPaY1gnsNE43nf9n9AaYjAQrTiI/mOwKUKdUs9vf7Xg==" + "license": "MIT" }, "node_modules/@stablelib/aead": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@stablelib/aead/-/aead-1.0.1.tgz", - "integrity": "sha512-q39ik6sxGHewqtO0nP4BuSe3db5G1fEJE8ukvngS2gLkBXyy6E7pLubhbYgnkDFv6V8cWaxcE4Xn0t6LWcJkyg==" + "license": "MIT" }, "node_modules/@stablelib/binary": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@stablelib/binary/-/binary-1.0.1.tgz", - "integrity": "sha512-ClJWvmL6UBM/wjkvv/7m5VP3GMr9t0osr4yVgLZsLCOz4hGN9gIAFEqnJ0TsSMAN+n840nf2cHZnA5/KFqHC7Q==", + "license": "MIT", "dependencies": { "@stablelib/int": "^1.0.1" } }, "node_modules/@stablelib/bytes": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@stablelib/bytes/-/bytes-1.0.1.tgz", - "integrity": "sha512-Kre4Y4kdwuqL8BR2E9hV/R5sOrUj6NanZaZis0V6lX5yzqC3hBuVSDXUIBqQv/sCpmuWRiHLwqiT1pqqjuBXoQ==" + "license": "MIT" }, "node_modules/@stablelib/chacha": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@stablelib/chacha/-/chacha-1.0.1.tgz", - "integrity": "sha512-Pmlrswzr0pBzDofdFuVe1q7KdsHKhhU24e8gkEwnTGOmlC7PADzLVxGdn2PoNVBBabdg0l/IfLKg6sHAbTQugg==", + "license": "MIT", "dependencies": { "@stablelib/binary": "^1.0.1", "@stablelib/wipe": "^1.0.1" @@ -4723,8 +4364,7 @@ }, "node_modules/@stablelib/chacha20poly1305": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@stablelib/chacha20poly1305/-/chacha20poly1305-1.0.1.tgz", - "integrity": "sha512-MmViqnqHd1ymwjOQfghRKw2R/jMIGT3wySN7cthjXCBdO+qErNPUBnRzqNpnvIwg7JBCg3LdeCZZO4de/yEhVA==", + "license": "MIT", "dependencies": { "@stablelib/aead": "^1.0.1", "@stablelib/binary": "^1.0.1", @@ -4736,18 +4376,15 @@ }, "node_modules/@stablelib/constant-time": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@stablelib/constant-time/-/constant-time-1.0.1.tgz", - "integrity": "sha512-tNOs3uD0vSJcK6z1fvef4Y+buN7DXhzHDPqRLSXUel1UfqMB1PWNsnnAezrKfEwTLpN0cGH2p9NNjs6IqeD0eg==" + "license": "MIT" }, "node_modules/@stablelib/hash": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@stablelib/hash/-/hash-1.0.1.tgz", - "integrity": "sha512-eTPJc/stDkdtOcrNMZ6mcMK1e6yBbqRBaNW55XA1jU8w/7QdnCF0CmMmOD1m7VSkBR44PWrMHU2l6r8YEQHMgg==" + "license": "MIT" }, "node_modules/@stablelib/hkdf": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@stablelib/hkdf/-/hkdf-1.0.1.tgz", - "integrity": "sha512-SBEHYE16ZXlHuaW5RcGk533YlBj4grMeg5TooN80W3NpcHRtLZLLXvKyX0qcRFxf+BGDobJLnwkvgEwHIDBR6g==", + "license": "MIT", "dependencies": { "@stablelib/hash": "^1.0.1", "@stablelib/hmac": "^1.0.1", @@ -4756,8 +4393,7 @@ }, "node_modules/@stablelib/hmac": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@stablelib/hmac/-/hmac-1.0.1.tgz", - "integrity": "sha512-V2APD9NSnhVpV/QMYgCVMIYKiYG6LSqw1S65wxVoirhU/51ACio6D4yDVSwMzuTJXWZoVHbDdINioBwKy5kVmA==", + "license": "MIT", "dependencies": { "@stablelib/constant-time": "^1.0.1", "@stablelib/hash": "^1.0.1", @@ -4766,21 +4402,18 @@ }, "node_modules/@stablelib/int": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@stablelib/int/-/int-1.0.1.tgz", - "integrity": "sha512-byr69X/sDtDiIjIV6m4roLVWnNNlRGzsvxw+agj8CIEazqWGOQp2dTYgQhtyVXV9wpO6WyXRQUzLV/JRNumT2w==" + "license": "MIT" }, "node_modules/@stablelib/keyagreement": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@stablelib/keyagreement/-/keyagreement-1.0.1.tgz", - "integrity": "sha512-VKL6xBwgJnI6l1jKrBAfn265cspaWBPAPEc62VBQrWHLqVgNRE09gQ/AnOEyKUWrrqfD+xSQ3u42gJjLDdMDQg==", + "license": "MIT", "dependencies": { "@stablelib/bytes": "^1.0.1" } }, "node_modules/@stablelib/poly1305": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@stablelib/poly1305/-/poly1305-1.0.1.tgz", - "integrity": "sha512-1HlG3oTSuQDOhSnLwJRKeTRSAdFNVB/1djy2ZbS35rBSJ/PFqx9cf9qatinWghC2UbfOYD8AcrtbUQl8WoxabA==", + "license": "MIT", "dependencies": { "@stablelib/constant-time": "^1.0.1", "@stablelib/wipe": "^1.0.1" @@ -4788,8 +4421,7 @@ }, "node_modules/@stablelib/random": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/@stablelib/random/-/random-1.0.2.tgz", - "integrity": "sha512-rIsE83Xpb7clHPVRlBj8qNe5L8ISQOzjghYQm/dZ7VaM2KHYwMW5adjQjrzTZCchFnNCNhkwtnOBa9HTMJCI8w==", + "license": "MIT", "dependencies": { "@stablelib/binary": "^1.0.1", "@stablelib/wipe": "^1.0.1" @@ -4797,8 +4429,7 @@ }, "node_modules/@stablelib/sha256": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@stablelib/sha256/-/sha256-1.0.1.tgz", - "integrity": "sha512-GIIH3e6KH+91FqGV42Kcj71Uefd/QEe7Dy42sBTeqppXV95ggCcxLTk39bEr+lZfJmp+ghsR07J++ORkRELsBQ==", + "license": "MIT", "dependencies": { "@stablelib/binary": "^1.0.1", "@stablelib/hash": "^1.0.1", @@ -4807,13 +4438,11 @@ }, "node_modules/@stablelib/wipe": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@stablelib/wipe/-/wipe-1.0.1.tgz", - "integrity": "sha512-WfqfX/eXGiAd3RJe4VU2snh/ZPwtSjLG4ynQ/vYzvghTh7dHFcI1wl+nrkWG6lGhukOxOsUHfv8dUXr58D0ayg==" + "license": "MIT" }, "node_modules/@stablelib/x25519": { "version": "1.0.3", - "resolved": "https://registry.npmjs.org/@stablelib/x25519/-/x25519-1.0.3.tgz", - "integrity": "sha512-KnTbKmUhPhHavzobclVJQG5kuivH+qDLpe84iRqX3CLrKp881cF160JvXJ+hjn1aMyCwYOKeIZefIH/P5cJoRw==", + "license": "MIT", "dependencies": { "@stablelib/keyagreement": "^1.0.1", "@stablelib/random": "^1.0.2", @@ -4822,8 +4451,7 @@ }, "node_modules/@substrate/connect": { "version": "0.7.19", - "resolved": "https://registry.npmjs.org/@substrate/connect/-/connect-0.7.19.tgz", - "integrity": "sha512-+DDRadc466gCmDU71sHrYOt1HcI2Cbhm7zdCFjZfFVHXhC/E8tOdrVSglAH2HDEHR0x2SiHRxtxOGC7ak2Zjog==", + "license": "GPL-3.0-only", "optional": true, "dependencies": { "@substrate/connect-extension-protocol": "^1.0.1", @@ -4833,14 +4461,12 @@ }, "node_modules/@substrate/connect-extension-protocol": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@substrate/connect-extension-protocol/-/connect-extension-protocol-1.0.1.tgz", - "integrity": "sha512-161JhCC1csjH3GE5mPLEd7HbWtwNSPJBg3p1Ksz9SFlTzj/bgEwudiRN2y5i0MoLGCIJRYKyKGMxVnd29PzNjg==", + "license": "GPL-3.0-only", "optional": true }, "node_modules/@substrate/smoldot-light": { "version": "0.7.9", - "resolved": "https://registry.npmjs.org/@substrate/smoldot-light/-/smoldot-light-0.7.9.tgz", - "integrity": "sha512-HP8iP7sFYlpSgjjbo0lqHyU+gu9lL2hbDNce6dWk5/10mFFF9jKIFGfui4zCecUY808o/Go9pan/31kMJoLbug==", + "license": "GPL-3.0-or-later WITH Classpath-exception-2.0", "optional": true, "dependencies": { "pako": "^2.0.4", @@ -4849,13 +4475,11 @@ }, "node_modules/@substrate/ss58-registry": { "version": "1.38.0", - "resolved": "https://registry.npmjs.org/@substrate/ss58-registry/-/ss58-registry-1.38.0.tgz", - "integrity": "sha512-sHiVRWekGMRZAjPukN9/W166NM6D5wtHcK6RVyLy66kg3CHNZ1BXfpXcjOiXSwhbd7guQFDEwnOVaDrbk1XL1g==" + "license": "Apache-2.0" }, "node_modules/@szmarczak/http-timer": { "version": "5.0.1", - "resolved": "https://registry.npmjs.org/@szmarczak/http-timer/-/http-timer-5.0.1.tgz", - "integrity": "sha512-+PmQX0PiAYPMeVYe237LJAYvOMYW1j2rH5YROyS3b4CTVJum34HfRvKvAzozHAQG0TnHNdUfY9nCeUyRAs//cw==", + "license": "MIT", "dependencies": { "defer-to-connect": "^2.0.1" }, @@ -4865,80 +4489,67 @@ }, "node_modules/@tokenizer/token": { "version": "0.3.0", - "resolved": "https://registry.npmjs.org/@tokenizer/token/-/token-0.3.0.tgz", - "integrity": "sha512-OvjF+z51L3ov0OyAU0duzsYuvO01PH7x4t6DJx+guahgTnBHkhJdG7soQeTSFLWN3efnHyibZ4Z8l2EuWwJN3A==" + "license": "MIT" }, "node_modules/@tsconfig/node10": { "version": "1.0.9", - "resolved": "https://registry.npmjs.org/@tsconfig/node10/-/node10-1.0.9.tgz", - "integrity": "sha512-jNsYVVxU8v5g43Erja32laIDHXeoNvFEpX33OK4d6hljo3jDhCBDhx5dhCCTMWUojscpAagGiRkBKxpdl9fxqA==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/@tsconfig/node12": { "version": "1.0.11", - "resolved": "https://registry.npmjs.org/@tsconfig/node12/-/node12-1.0.11.tgz", - "integrity": "sha512-cqefuRsh12pWyGsIoBKJA9luFu3mRxCA+ORZvA4ktLSzIuCUtWVxGIuXigEwO5/ywWFMZ2QEGKWvkZG1zDMTag==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/@tsconfig/node14": { "version": "1.0.3", - "resolved": "https://registry.npmjs.org/@tsconfig/node14/-/node14-1.0.3.tgz", - "integrity": "sha512-ysT8mhdixWK6Hw3i1V2AeRqZ5WfXg1G43mqoYlM2nc6388Fq5jcXyr5mRsqViLx/GJYdoL0bfXD8nmF+Zn/Iow==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/@tsconfig/node16": { "version": "1.0.3", - "resolved": "https://registry.npmjs.org/@tsconfig/node16/-/node16-1.0.3.tgz", - "integrity": "sha512-yOlFc+7UtL/89t2ZhjPvvB/DeAr3r+Dq58IgzsFkOAvVC6NMJXmCGjbptdXdR9qsX7pKcTL+s87FtYREi2dEEQ==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/@types/bn.js": { "version": "5.1.1", - "resolved": "https://registry.npmjs.org/@types/bn.js/-/bn.js-5.1.1.tgz", - "integrity": "sha512-qNrYbZqMx0uJAfKnKclPh+dTwK33KfLHYqtyODwd5HnXOjnkhc4qgn3BrK6RWyGZm5+sIFE7Q7Vz6QQtJB7w7g==", + "license": "MIT", "dependencies": { "@types/node": "*" } }, "node_modules/@types/dns-packet": { "version": "5.2.4", - "resolved": "https://registry.npmjs.org/@types/dns-packet/-/dns-packet-5.2.4.tgz", - "integrity": "sha512-OAruArypdNxR/tzbmrtoyEuXeNTLaZCpO19BXaNC10T5ACIbvjmvhmV2RDEy2eLc3w8IjK7SY3cvUCcAW+sfoQ==", + "license": "MIT", "dependencies": { "@types/node": "*" } }, "node_modules/@types/http-cache-semantics": { "version": "4.0.1", - "resolved": "https://registry.npmjs.org/@types/http-cache-semantics/-/http-cache-semantics-4.0.1.tgz", - "integrity": "sha512-SZs7ekbP8CN0txVG2xVRH6EgKmEm31BOxA07vkFaETzZz1xh+cbt8BcI0slpymvwhx5dlFnQG2rTlPVQn+iRPQ==" + "license": "MIT" }, "node_modules/@types/json-schema": { "version": "7.0.11", - "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.11.tgz", - "integrity": "sha512-wOuvG1SN4Us4rez+tylwwwCV1psiNVOkJeM3AUWUNWg/jDQY2+HE/444y5gc+jBmRqASOm2Oeh5c1axHobwRKQ==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/@types/long": { "version": "4.0.2", - "resolved": "https://registry.npmjs.org/@types/long/-/long-4.0.2.tgz", - "integrity": "sha512-MqTGEo5bj5t157U6fA/BiDynNkn0YknVdh48CMPkTSpFTVmvao5UQmm7uEF6xBEo7qIMAlY/JSleYaE6VOdpaA==" + "license": "MIT" }, "node_modules/@types/minimatch": { "version": "3.0.5", - "resolved": "https://registry.npmjs.org/@types/minimatch/-/minimatch-3.0.5.tgz", - "integrity": "sha512-Klz949h02Gz2uZCMGwDUSDS1YBlTdDDgbWHi+81l29tQALUtvz4rAYi5uoVhE5Lagoq6DeqAUlbrHvW/mXDgdQ==" + "license": "MIT" }, "node_modules/@types/mocha": { "version": "10.0.1", - "resolved": "https://registry.npmjs.org/@types/mocha/-/mocha-10.0.1.tgz", - "integrity": "sha512-/fvYntiO1GeICvqbQ3doGDIP97vWmvFt83GKguJ6prmQM2iXZfFcq6YE8KteFyRtX2/h5Hf91BYvPodJKFYv5Q==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/@types/multicast-dns": { "version": "7.2.1", - "resolved": "https://registry.npmjs.org/@types/multicast-dns/-/multicast-dns-7.2.1.tgz", - "integrity": "sha512-A2PmB8MRcNVEkw6wzGT5rtBHqyHOVjiRMkJH+zpJKXipSi+GGkHg6JjNFApDiYK9WefJqkVG0taln1VMl4TGfw==", + "license": "MIT", "dependencies": { "@types/dns-packet": "*", "@types/node": "*" @@ -4946,13 +4557,11 @@ }, "node_modules/@types/node": { "version": "18.11.15", - "resolved": "https://registry.npmjs.org/@types/node/-/node-18.11.15.tgz", - "integrity": "sha512-VkhBbVo2+2oozlkdHXLrb3zjsRkpdnaU2bXmX8Wgle3PUi569eLRaHGlgETQHR7lLL1w7GiG3h9SnePhxNDecw==" + "license": "MIT" }, "node_modules/@types/node-fetch": { "version": "2.6.2", - "resolved": "https://registry.npmjs.org/@types/node-fetch/-/node-fetch-2.6.2.tgz", - "integrity": "sha512-DHqhlq5jeESLy19TYhLakJ07kNumXWjcDdxXsLUMJZ6ue8VZJj4kLPQVE/2mdHh3xZziNF1xppu5lwmS53HR+A==", + "license": "MIT", "dependencies": { "@types/node": "*", "form-data": "^3.0.0" @@ -4960,28 +4569,24 @@ }, "node_modules/@types/retry": { "version": "0.12.1", - "resolved": "https://registry.npmjs.org/@types/retry/-/retry-0.12.1.tgz", - "integrity": "sha512-xoDlM2S4ortawSWORYqsdU+2rxdh4LRW9ytc3zmT37RIKQh6IHyKwwtKhKis9ah8ol07DCkZxPt8BBvPjC6v4g==" + "license": "MIT" }, "node_modules/@types/semver": { "version": "7.3.13", - "resolved": "https://registry.npmjs.org/@types/semver/-/semver-7.3.13.tgz", - "integrity": "sha512-21cFJr9z3g5dW8B0CVI9g2O9beqaThGQ6ZFBqHfwhzLDKUxaqTIy3vnfah/UPkfOiF2pLq+tGz+W8RyCskuslw==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/@types/websocket": { "version": "1.0.5", - "resolved": "https://registry.npmjs.org/@types/websocket/-/websocket-1.0.5.tgz", - "integrity": "sha512-NbsqiNX9CnEfC1Z0Vf4mE1SgAJ07JnRYcNex7AJ9zAVzmiGHmjKFEk7O4TJIsgv2B1sLEb6owKFZrACwdYngsQ==", + "license": "MIT", "dependencies": { "@types/node": "*" } }, "node_modules/@typescript-eslint/eslint-plugin": { "version": "5.48.2", - "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.48.2.tgz", - "integrity": "sha512-sR0Gja9Ky1teIq4qJOl0nC+Tk64/uYdX+mi+5iB//MH8gwyx8e3SOyhEzeLZEFEEfCaLf8KJq+Bd/6je1t+CAg==", "dev": true, + "license": "MIT", "dependencies": { "@typescript-eslint/scope-manager": "5.48.2", "@typescript-eslint/type-utils": "5.48.2", @@ -5012,9 +4617,8 @@ }, "node_modules/@typescript-eslint/eslint-plugin/node_modules/semver": { "version": "7.3.8", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.8.tgz", - "integrity": "sha512-NB1ctGL5rlHrPJtFDVIVzTyQylMLu9N9VICA6HSFJo8MCGVTMW6gfpicwKmmK/dAjTOrqu5l63JJOpDSrAis3A==", "dev": true, + "license": "ISC", "dependencies": { "lru-cache": "^6.0.0" }, @@ -5027,9 +4631,8 @@ }, "node_modules/@typescript-eslint/parser": { "version": "5.48.2", - "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-5.48.2.tgz", - "integrity": "sha512-38zMsKsG2sIuM5Oi/olurGwYJXzmtdsHhn5mI/pQogP+BjYVkK5iRazCQ8RGS0V+YLk282uWElN70zAAUmaYHw==", "dev": true, + "license": "BSD-2-Clause", "dependencies": { "@typescript-eslint/scope-manager": "5.48.2", "@typescript-eslint/types": "5.48.2", @@ -5054,9 +4657,8 @@ }, "node_modules/@typescript-eslint/scope-manager": { "version": "5.48.2", - "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-5.48.2.tgz", - "integrity": "sha512-zEUFfonQid5KRDKoI3O+uP1GnrFd4tIHlvs+sTJXiWuypUWMuDaottkJuR612wQfOkjYbsaskSIURV9xo4f+Fw==", "dev": true, + "license": "MIT", "dependencies": { "@typescript-eslint/types": "5.48.2", "@typescript-eslint/visitor-keys": "5.48.2" @@ -5071,9 +4673,8 @@ }, "node_modules/@typescript-eslint/type-utils": { "version": "5.48.2", - "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-5.48.2.tgz", - "integrity": "sha512-QVWx7J5sPMRiOMJp5dYshPxABRoZV1xbRirqSk8yuIIsu0nvMTZesKErEA3Oix1k+uvsk8Cs8TGJ6kQ0ndAcew==", "dev": true, + "license": "MIT", "dependencies": { "@typescript-eslint/typescript-estree": "5.48.2", "@typescript-eslint/utils": "5.48.2", @@ -5098,9 +4699,8 @@ }, "node_modules/@typescript-eslint/types": { "version": "5.48.2", - "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.48.2.tgz", - "integrity": "sha512-hE7dA77xxu7ByBc6KCzikgfRyBCTst6dZQpwaTy25iMYOnbNljDT4hjhrGEJJ0QoMjrfqrx+j1l1B9/LtKeuqA==", "dev": true, + "license": "MIT", "engines": { "node": "^12.22.0 || ^14.17.0 || >=16.0.0" }, @@ -5111,9 +4711,8 @@ }, "node_modules/@typescript-eslint/typescript-estree": { "version": "5.48.2", - "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-5.48.2.tgz", - "integrity": "sha512-bibvD3z6ilnoVxUBFEgkO0k0aFvUc4Cttt0dAreEr+nrAHhWzkO83PEVVuieK3DqcgL6VAK5dkzK8XUVja5Zcg==", "dev": true, + "license": "BSD-2-Clause", "dependencies": { "@typescript-eslint/types": "5.48.2", "@typescript-eslint/visitor-keys": "5.48.2", @@ -5138,9 +4737,8 @@ }, "node_modules/@typescript-eslint/typescript-estree/node_modules/semver": { "version": "7.3.8", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.8.tgz", - "integrity": "sha512-NB1ctGL5rlHrPJtFDVIVzTyQylMLu9N9VICA6HSFJo8MCGVTMW6gfpicwKmmK/dAjTOrqu5l63JJOpDSrAis3A==", "dev": true, + "license": "ISC", "dependencies": { "lru-cache": "^6.0.0" }, @@ -5153,9 +4751,8 @@ }, "node_modules/@typescript-eslint/utils": { "version": "5.48.2", - "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-5.48.2.tgz", - "integrity": "sha512-2h18c0d7jgkw6tdKTlNaM7wyopbLRBiit8oAxoP89YnuBOzCZ8g8aBCaCqq7h208qUTroL7Whgzam7UY3HVLow==", "dev": true, + "license": "MIT", "dependencies": { "@types/json-schema": "^7.0.9", "@types/semver": "^7.3.12", @@ -5179,9 +4776,8 @@ }, "node_modules/@typescript-eslint/utils/node_modules/semver": { "version": "7.3.8", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.8.tgz", - "integrity": "sha512-NB1ctGL5rlHrPJtFDVIVzTyQylMLu9N9VICA6HSFJo8MCGVTMW6gfpicwKmmK/dAjTOrqu5l63JJOpDSrAis3A==", "dev": true, + "license": "ISC", "dependencies": { "lru-cache": "^6.0.0" }, @@ -5194,9 +4790,8 @@ }, "node_modules/@typescript-eslint/visitor-keys": { "version": "5.48.2", - "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.48.2.tgz", - "integrity": "sha512-z9njZLSkwmjFWUelGEwEbdf4NwKvfHxvGC0OcGN1Hp/XNDIcJ7D5DpPNPv6x6/mFvc1tQHsaWmpD/a4gOvvCJQ==", "dev": true, + "license": "MIT", "dependencies": { "@typescript-eslint/types": "5.48.2", "eslint-visitor-keys": "^3.3.0" @@ -5211,18 +4806,15 @@ }, "node_modules/@vascosantos/moving-average": { "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@vascosantos/moving-average/-/moving-average-1.1.0.tgz", - "integrity": "sha512-MVEJ4vWAPNbrGLjz7ITnHYg+YXZ6ijAqtH5/cHwSoCpbvuJ98aLXwFfPKAUfZpJMQR5uXB58UJajbY130IRF/w==" + "license": "MIT" }, "node_modules/abbrev": { "version": "1.1.1", - "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-1.1.1.tgz", - "integrity": "sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q==" + "license": "ISC" }, "node_modules/abort-controller": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/abort-controller/-/abort-controller-3.0.0.tgz", - "integrity": "sha512-h8lQ8tacZYnR3vNQTgibj+tODHI5/+l06Au2Pcriv/Gmet0eaj4TwWH41sO9wnHDiQsEj19q0drzdWdeAHtweg==", + "license": "MIT", "dependencies": { "event-target-shim": "^5.0.0" }, @@ -5232,8 +4824,7 @@ }, "node_modules/abortable-iterator": { "version": "4.0.2", - "resolved": "https://registry.npmjs.org/abortable-iterator/-/abortable-iterator-4.0.2.tgz", - "integrity": "sha512-SJGELER5yXr9v3kiL6mT5RZ1qlyJ9hV4nm34+vfsdIM1lp3zENQvpsqKgykpFLgRMUn3lzlizLTpiOASW05/+g==", + "license": "MIT", "dependencies": { "get-iterator": "^2.0.0", "it-stream-types": "^1.0.3" @@ -5241,8 +4832,7 @@ }, "node_modules/abstract-level": { "version": "1.0.3", - "resolved": "https://registry.npmjs.org/abstract-level/-/abstract-level-1.0.3.tgz", - "integrity": "sha512-t6jv+xHy+VYwc4xqZMn2Pa9DjcdzvzZmQGRjTFc8spIbRGHgBrEKbPq+rYXc7CCo0lxgYvSgKVg9qZAhpVQSjA==", + "license": "MIT", "dependencies": { "buffer": "^6.0.3", "catering": "^2.1.0", @@ -5258,14 +4848,12 @@ }, "node_modules/abstract-logging": { "version": "2.0.1", - "resolved": "https://registry.npmjs.org/abstract-logging/-/abstract-logging-2.0.1.tgz", - "integrity": "sha512-2BjRTZxTPvheOvGbBslFSYOUkr+SjPtOnrLP33f+VIWLzezQpZcqVg7ja3L4dBXmzzgwT+a029jRx5PCi3JuiA==" + "license": "MIT" }, "node_modules/acorn": { "version": "8.8.1", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.8.1.tgz", - "integrity": "sha512-7zFpHzhnqYKrkYdUjF1HI1bzd0VygEGX8lFk4k5zVMqHEoES+P+7TKI+EvLO9WVMJ8eekdO0aDEK044xTXwPPA==", "dev": true, + "license": "MIT", "bin": { "acorn": "bin/acorn" }, @@ -5275,9 +4863,8 @@ }, "node_modules/acorn-jsx": { "version": "5.3.2", - "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz", - "integrity": "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==", "dev": true, + "license": "MIT", "peer": true, "peerDependencies": { "acorn": "^6.0.0 || ^7.0.0 || ^8.0.0" @@ -5285,17 +4872,15 @@ }, "node_modules/acorn-walk": { "version": "8.2.0", - "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-8.2.0.tgz", - "integrity": "sha512-k+iyHEuPgSw6SbuDpGQM+06HQUa04DZ3o+F6CSzXMvvI5KMvnaEqXe+YVe555R9nn6GPt404fos4wcgpw12SDA==", "dev": true, + "license": "MIT", "engines": { "node": ">=0.4.0" } }, "node_modules/agent-base": { "version": "6.0.2", - "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-6.0.2.tgz", - "integrity": "sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==", + "license": "MIT", "dependencies": { "debug": "4" }, @@ -5305,9 +4890,8 @@ }, "node_modules/ajv": { "version": "6.12.6", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", - "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", "dev": true, + "license": "MIT", "peer": true, "dependencies": { "fast-deep-equal": "^3.1.1", @@ -5322,33 +4906,29 @@ }, "node_modules/ansi-align": { "version": "3.0.1", - "resolved": "https://registry.npmjs.org/ansi-align/-/ansi-align-3.0.1.tgz", - "integrity": "sha512-IOfwwBF5iczOjp/WeY4YxyjqAFMQoZufdQWDd19SEExbVLNXqvpzSJ/M7Za4/sCPmQ0+GRquoA7bGcINcxew6w==", + "license": "ISC", "dependencies": { "string-width": "^4.1.0" } }, "node_modules/ansi-colors": { "version": "4.1.1", - "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-4.1.1.tgz", - "integrity": "sha512-JoX0apGbHaUJBNl6yF+p6JAFYZ666/hhCGKN5t9QFjbJQKUU/g8MNbFDbvfrgKXvI1QpZplPOnwIo99lX/AAmA==", "dev": true, + "license": "MIT", "engines": { "node": ">=6" } }, "node_modules/ansi-regex": { "version": "5.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", - "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "license": "MIT", "engines": { "node": ">=8" } }, "node_modules/ansi-styles": { "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "license": "MIT", "dependencies": { "color-convert": "^1.9.0" }, @@ -5358,14 +4938,12 @@ }, "node_modules/any-signal": { "version": "3.0.1", - "resolved": "https://registry.npmjs.org/any-signal/-/any-signal-3.0.1.tgz", - "integrity": "sha512-xgZgJtKEa9YmDqXodIgl7Fl1C8yNXr8w6gXjqK3LW4GcEiYT+6AQfJSE/8SPsEpLLmcvbv8YU+qet94UewHxqg==" + "license": "MIT" }, "node_modules/anymatch": { "version": "3.1.3", - "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz", - "integrity": "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==", "dev": true, + "license": "ISC", "dependencies": { "normalize-path": "^3.0.0", "picomatch": "^2.0.4" @@ -5376,13 +4954,11 @@ }, "node_modules/aproba": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/aproba/-/aproba-2.0.0.tgz", - "integrity": "sha512-lYe4Gx7QT+MKGbDsA+Z+he/Wtef0BiwDOlK/XkBrdfsh9J/jPPXbX0tE9x9cl27Tmu5gg3QUbUrQYa/y+KOHPQ==" + "license": "ISC" }, "node_modules/are-we-there-yet": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/are-we-there-yet/-/are-we-there-yet-2.0.0.tgz", - "integrity": "sha512-Ci/qENmwHnsYo9xKIcUJN5LeDKdJ6R1Z1j9V/J5wyq8nh/mYPEpIKJbBZXtZjG04HiK7zV/p6Vs9952MrMeUIw==", + "license": "ISC", "dependencies": { "delegates": "^1.0.0", "readable-stream": "^3.6.0" @@ -5393,8 +4969,7 @@ }, "node_modules/are-we-there-yet/node_modules/readable-stream": { "version": "3.6.0", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", - "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", + "license": "MIT", "dependencies": { "inherits": "^2.0.3", "string_decoder": "^1.1.1", @@ -5406,20 +4981,17 @@ }, "node_modules/arg": { "version": "4.1.3", - "resolved": "https://registry.npmjs.org/arg/-/arg-4.1.3.tgz", - "integrity": "sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/argparse": { "version": "2.0.1", - "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", - "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", - "dev": true + "dev": true, + "license": "Python-2.0" }, "node_modules/args": { "version": "5.0.3", - "resolved": "https://registry.npmjs.org/args/-/args-5.0.3.tgz", - "integrity": "sha512-h6k/zfFgusnv3i5TU08KQkVKuCPBtL/PWQbWkHUxvJrZ2nAyeaUupneemcrgn1xmqxPQsPIzwkUhOpoqPDRZuA==", + "license": "MIT", "dependencies": { "camelcase": "5.0.0", "chalk": "2.4.2", @@ -5432,16 +5004,14 @@ }, "node_modules/args/node_modules/camelcase": { "version": "5.0.0", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.0.0.tgz", - "integrity": "sha512-faqwZqnWxbxn+F1d399ygeamQNy3lPp/H9H6rNrqYh4FSVCtcY+3cub1MxA8o9mDd55mM8Aghuu/kuyYA6VTsA==", + "license": "MIT", "engines": { "node": ">=6" } }, "node_modules/array-shuffle": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/array-shuffle/-/array-shuffle-3.0.0.tgz", - "integrity": "sha512-rogEGxHOQPhslOhpg12LJkB+bbAl484/s2AJq0BxtzQDQfKl76fS2u9zWgg3p3b9ENcuvE7K8A7l5ddiPjCRnw==", + "license": "MIT", "engines": { "node": ">=12.20" }, @@ -5451,45 +5021,37 @@ }, "node_modules/array-union": { "version": "2.1.0", - "resolved": "https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz", - "integrity": "sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==", "dev": true, + "license": "MIT", "engines": { "node": ">=8" } }, "node_modules/asap": { "version": "2.0.6", - "resolved": "https://registry.npmjs.org/asap/-/asap-2.0.6.tgz", - "integrity": "sha512-BSHWgDSAiKs50o2Re8ppvp3seVHXSRM44cdSsT9FfNEUUZLOGWVCsiWaRPWM1Znn+mqZ1OfVZ3z3DWEzSp7hRA==" + "license": "MIT" }, "node_modules/async": { "version": "3.2.4", - "resolved": "https://registry.npmjs.org/async/-/async-3.2.4.tgz", - "integrity": "sha512-iAB+JbDEGXhyIUavoDl9WP/Jj106Kz9DEn1DPgYw5ruDn0e3Wgi3sKFm55sASdGBNOQB8F59d9qQ7deqrHA8wQ==" + "license": "MIT" }, "node_modules/asynckit": { "version": "0.4.0", - "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", - "integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==" + "license": "MIT" }, "node_modules/atomic-sleep": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/atomic-sleep/-/atomic-sleep-1.0.0.tgz", - "integrity": "sha512-kNOjDqAh7px0XWNI+4QbzoiR/nTkHAWNud2uvnJquD1/x5a7EQZMJT0AczqK0Qn67oY/TTQ1LbUKajZpp3I9tQ==", + "license": "MIT", "engines": { "node": ">=8.0.0" } }, "node_modules/balanced-match": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", - "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==" + "license": "MIT" }, "node_modules/base64-js": { "version": "1.5.1", - "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz", - "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==", "funding": [ { "type": "github", @@ -5503,12 +5065,12 @@ "type": "consulting", "url": "https://feross.org/support" } - ] + ], + "license": "MIT" }, "node_modules/benchmark": { "version": "2.1.4", - "resolved": "https://registry.npmjs.org/benchmark/-/benchmark-2.1.4.tgz", - "integrity": "sha512-l9MlfN4M1K/H2fbhfMy3B7vJd6AGKJVQn2h6Sg/Yx+KckoUA7ewS5Vv6TjSq18ooE1kS9hhAlQRH3AkXIh/aOQ==", + "license": "MIT", "dependencies": { "lodash": "^4.17.4", "platform": "^1.3.3" @@ -5516,23 +5078,20 @@ }, "node_modules/binary-extensions": { "version": "2.2.0", - "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz", - "integrity": "sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==", "dev": true, + "license": "MIT", "engines": { "node": ">=8" } }, "node_modules/bintrees": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/bintrees/-/bintrees-1.0.2.tgz", - "integrity": "sha512-VOMgTMwjAaUG580SXn3LacVgjurrbMme7ZZNYGSSV7mmtY6QQRh0Eg3pwIcntQ77DErK1L0NxkbetjcoXzVwKw==", + "license": "MIT", "optional": true }, "node_modules/bl": { "version": "5.1.0", - "resolved": "https://registry.npmjs.org/bl/-/bl-5.1.0.tgz", - "integrity": "sha512-tv1ZJHLfTDnXE6tMHv73YgSJaWR2AFuPwMntBe7XL/GBFHnT0CLnsHMogfk5+GzCDC5ZWarSCYaIGATZt9dNsQ==", + "license": "MIT", "dependencies": { "buffer": "^6.0.3", "inherits": "^2.0.4", @@ -5541,8 +5100,7 @@ }, "node_modules/bl/node_modules/readable-stream": { "version": "3.6.0", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", - "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", + "license": "MIT", "dependencies": { "inherits": "^2.0.3", "string_decoder": "^1.1.1", @@ -5554,8 +5112,7 @@ }, "node_modules/blob-to-it": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/blob-to-it/-/blob-to-it-2.0.0.tgz", - "integrity": "sha512-O9P902MzxHg8fjIAzmK4HSo9WmcMn1ACJvSHJvIYWDr4na7GLyR5iQTf0i2EXlnM5EIWmWtk+vh38tTph9JiPA==", + "license": "Apache-2.0 OR MIT", "dependencies": { "browser-readablestream-to-it": "^2.0.0" }, @@ -5566,8 +5123,7 @@ }, "node_modules/blockstore-core": { "version": "2.0.2", - "resolved": "https://registry.npmjs.org/blockstore-core/-/blockstore-core-2.0.2.tgz", - "integrity": "sha512-ALry3rBp2pTEi4F/usjCJGRluAKYFWI9Np7uE0pZHfDeScMJSj/fDkHEWvY80tPYu4kj03sLKRDGJlZH+V7VzQ==", + "license": "Apache-2.0 OR MIT", "dependencies": { "err-code": "^3.0.1", "interface-blockstore": "^3.0.0", @@ -5585,28 +5141,23 @@ }, "node_modules/blockstore-core/node_modules/it-all": { "version": "1.0.6", - "resolved": "https://registry.npmjs.org/it-all/-/it-all-1.0.6.tgz", - "integrity": "sha512-3cmCc6Heqe3uWi3CVM/k51fa/XbMFpQVzFoDsV0IZNHSQDyAXl3c4MjHkFX5kF3922OGj7Myv1nSEUgRtcuM1A==" + "license": "ISC" }, "node_modules/blockstore-core/node_modules/it-drain": { "version": "1.0.5", - "resolved": "https://registry.npmjs.org/it-drain/-/it-drain-1.0.5.tgz", - "integrity": "sha512-r/GjkiW1bZswC04TNmUnLxa6uovme7KKwPhc+cb1hHU65E3AByypHH6Pm91WHuvqfFsm+9ws0kPtDBV3/8vmIg==" + "license": "ISC" }, "node_modules/blockstore-core/node_modules/it-filter": { "version": "1.0.3", - "resolved": "https://registry.npmjs.org/it-filter/-/it-filter-1.0.3.tgz", - "integrity": "sha512-EI3HpzUrKjTH01miLHWmhNWy3Xpbx4OXMXltgrNprL5lDpF3giVpHIouFpr5l+evXw6aOfxhnt01BIB+4VQA+w==" + "license": "ISC" }, "node_modules/blockstore-core/node_modules/it-take": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/it-take/-/it-take-1.0.2.tgz", - "integrity": "sha512-u7I6qhhxH7pSevcYNaMECtkvZW365ARqAIt9K+xjdK1B2WUDEjQSfETkOCT8bxFq/59LqrN3cMLUtTgmDBaygw==" + "license": "ISC" }, "node_modules/blockstore-core/node_modules/multiformats": { "version": "10.0.3", - "resolved": "https://registry.npmjs.org/multiformats/-/multiformats-10.0.3.tgz", - "integrity": "sha512-K2yGSmstS/oEmYiEIieHb53jJCaqp4ERPDQAYrm5sV3UUrVDZeshJQCK6GHAKyIGufU1vAcbS0PdAAZmC7Tzcw==", + "license": "Apache-2.0 OR MIT", "engines": { "node": ">=16.0.0", "npm": ">=7.0.0" @@ -5614,8 +5165,7 @@ }, "node_modules/blockstore-datastore-adapter": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/blockstore-datastore-adapter/-/blockstore-datastore-adapter-4.0.0.tgz", - "integrity": "sha512-vzy2lgLb7PQ0qopuZk6B+syRULdUt9w/ffNl7EXcvGZLS5+VoUmh4Agdp1OVuoaMEfXoEqIvCaPXi/v3829vBg==", + "license": "Apache-2.0 OR MIT", "dependencies": { "blockstore-core": "^2.0.0", "err-code": "^3.0.1", @@ -5632,8 +5182,7 @@ }, "node_modules/blockstore-datastore-adapter/node_modules/multiformats": { "version": "10.0.3", - "resolved": "https://registry.npmjs.org/multiformats/-/multiformats-10.0.3.tgz", - "integrity": "sha512-K2yGSmstS/oEmYiEIieHb53jJCaqp4ERPDQAYrm5sV3UUrVDZeshJQCK6GHAKyIGufU1vAcbS0PdAAZmC7Tzcw==", + "license": "Apache-2.0 OR MIT", "engines": { "node": ">=16.0.0", "npm": ">=7.0.0" @@ -5641,13 +5190,11 @@ }, "node_modules/bn.js": { "version": "5.2.1", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-5.2.1.tgz", - "integrity": "sha512-eXRvHzWyYPBuB4NBy0cmYQjGitUrtqwbvlzP3G6VFnNRbsZQIxQ10PbKKHt8gZ/HW/D/747aDl+QkDqg3KQLMQ==" + "license": "MIT" }, "node_modules/boxen": { "version": "7.0.1", - "resolved": "https://registry.npmjs.org/boxen/-/boxen-7.0.1.tgz", - "integrity": "sha512-8k2eH6SRAK00NDl1iX5q17RJ8rfl53TajdYxE3ssMLehbg487dEVgsad4pIsZb/QqBgYWIl6JOauMTLGX2Kpkw==", + "license": "MIT", "dependencies": { "ansi-align": "^3.0.1", "camelcase": "^7.0.0", @@ -5667,8 +5214,7 @@ }, "node_modules/boxen/node_modules/ansi-regex": { "version": "6.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.0.1.tgz", - "integrity": "sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==", + "license": "MIT", "engines": { "node": ">=12" }, @@ -5678,8 +5224,7 @@ }, "node_modules/boxen/node_modules/ansi-styles": { "version": "6.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.1.tgz", - "integrity": "sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==", + "license": "MIT", "engines": { "node": ">=12" }, @@ -5689,8 +5234,7 @@ }, "node_modules/boxen/node_modules/camelcase": { "version": "7.0.1", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-7.0.1.tgz", - "integrity": "sha512-xlx1yCK2Oc1APsPXDL2LdlNP6+uu8OCDdhOBSVT279M/S+y75O30C2VuD8T2ogdePBBl7PfPF4504tnLgX3zfw==", + "license": "MIT", "engines": { "node": ">=14.16" }, @@ -5700,8 +5244,7 @@ }, "node_modules/boxen/node_modules/chalk": { "version": "5.2.0", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-5.2.0.tgz", - "integrity": "sha512-ree3Gqw/nazQAPuJJEy+avdl7QfZMcUvmHIKgEZkGL+xOBzRvup5Hxo6LHuMceSxOabuJLJm5Yp/92R9eMmMvA==", + "license": "MIT", "engines": { "node": "^12.17.0 || ^14.13 || >=16.0.0" }, @@ -5711,13 +5254,11 @@ }, "node_modules/boxen/node_modules/emoji-regex": { "version": "9.2.2", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-9.2.2.tgz", - "integrity": "sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==" + "license": "MIT" }, "node_modules/boxen/node_modules/string-width": { "version": "5.1.2", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-5.1.2.tgz", - "integrity": "sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==", + "license": "MIT", "dependencies": { "eastasianwidth": "^0.2.0", "emoji-regex": "^9.2.2", @@ -5732,8 +5273,7 @@ }, "node_modules/boxen/node_modules/strip-ansi": { "version": "7.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.0.1.tgz", - "integrity": "sha512-cXNxvT8dFNRVfhVME3JAe98mkXDYN2O1l7jmcwMnOslDeESg1rF/OZMtK0nRAhiari1unG5cD4jG3rapUAkLbw==", + "license": "MIT", "dependencies": { "ansi-regex": "^6.0.1" }, @@ -5746,8 +5286,7 @@ }, "node_modules/boxen/node_modules/wrap-ansi": { "version": "8.0.1", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-8.0.1.tgz", - "integrity": "sha512-QFF+ufAqhoYHvoHdajT/Po7KoXVBPXS2bgjIam5isfWJPfIOnQZ50JtUiVvCv/sjgacf3yRrt2ZKUZ/V4itN4g==", + "license": "MIT", "dependencies": { "ansi-styles": "^6.1.0", "string-width": "^5.0.1", @@ -5762,17 +5301,15 @@ }, "node_modules/brace-expansion": { "version": "2.0.1", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", - "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", + "license": "MIT", "dependencies": { "balanced-match": "^1.0.0" } }, "node_modules/braces": { "version": "3.0.2", - "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", - "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", "dev": true, + "license": "MIT", "dependencies": { "fill-range": "^7.0.1" }, @@ -5782,8 +5319,7 @@ }, "node_modules/browser-level": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/browser-level/-/browser-level-1.0.1.tgz", - "integrity": "sha512-XECYKJ+Dbzw0lbydyQuJzwNXtOpbMSq737qxJN11sIRTErOMShvDpbzTlgju7orJKvx4epULolZAuJGLzCmWRQ==", + "license": "MIT", "dependencies": { "abstract-level": "^1.0.2", "catering": "^2.1.1", @@ -5793,8 +5329,7 @@ }, "node_modules/browser-readablestream-to-it": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/browser-readablestream-to-it/-/browser-readablestream-to-it-2.0.0.tgz", - "integrity": "sha512-x7L6NN0FF0LchYKA7D5x2/oJ+n6Y8A0gFaazIxH2AkHr+fjFJvsDUYLLQKAfIkpKiLjQEkbjF0DBw7HRT1ylNA==", + "license": "Apache-2.0 OR MIT", "engines": { "node": ">=16.0.0", "npm": ">=7.0.0" @@ -5802,14 +5337,11 @@ }, "node_modules/browser-stdout": { "version": "1.3.1", - "resolved": "https://registry.npmjs.org/browser-stdout/-/browser-stdout-1.3.1.tgz", - "integrity": "sha512-qhAVI1+Av2X7qelOfAIYwXONood6XlZE/fXaBSmW/T5SzLAmCgzi+eiWE7fUvbHaeNBQH13UftjpXxsfLkMpgw==", - "dev": true + "dev": true, + "license": "ISC" }, "node_modules/browserslist": { "version": "4.21.5", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.21.5.tgz", - "integrity": "sha512-tUkiguQGW7S3IhB7N+c2MV/HZPSCPAAiYBZXLsBhFB/PCy6ZKKsZrmBayHV9fdGV/ARIfJ14NkxKzRDjvp7L6w==", "dev": true, "funding": [ { @@ -5821,6 +5353,7 @@ "url": "https://tidelift.com/funding/github/npm/browserslist" } ], + "license": "MIT", "dependencies": { "caniuse-lite": "^1.0.30001449", "electron-to-chromium": "^1.4.284", @@ -5836,8 +5369,6 @@ }, "node_modules/buffer": { "version": "6.0.3", - "resolved": "https://registry.npmjs.org/buffer/-/buffer-6.0.3.tgz", - "integrity": "sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA==", "funding": [ { "type": "github", @@ -5852,6 +5383,7 @@ "url": "https://feross.org/support" } ], + "license": "MIT", "dependencies": { "base64-js": "^1.3.1", "ieee754": "^1.2.1" @@ -5859,15 +5391,13 @@ }, "node_modules/buffer-from": { "version": "1.1.2", - "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz", - "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/bufferutil": { "version": "4.0.7", - "resolved": "https://registry.npmjs.org/bufferutil/-/bufferutil-4.0.7.tgz", - "integrity": "sha512-kukuqc39WOHtdxtw4UScxF/WVnMFVSQVKhtx3AjZJzhd0RGZZldcrfSEbVsWWe6KNH253574cq5F+wpv0G9pJw==", "hasInstallScript": true, + "license": "MIT", "dependencies": { "node-gyp-build": "^4.3.0" }, @@ -5877,8 +5407,6 @@ }, "node_modules/busboy": { "version": "1.6.0", - "resolved": "https://registry.npmjs.org/busboy/-/busboy-1.6.0.tgz", - "integrity": "sha512-8SFQbg/0hQ9xy3UNTB0YEnsNBbWfhf7RtnzpL7TkBiTBRfrQ9Fxcnz7VJsleJpyp6rVLvXiuORqjlHi5q+PYuA==", "dependencies": { "streamsearch": "^1.1.0" }, @@ -5888,8 +5416,7 @@ }, "node_modules/byte-access": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/byte-access/-/byte-access-1.0.1.tgz", - "integrity": "sha512-GKYa+lvxnzhgHWj9X+LCsQ4s2/C5uvib573eAOiQKywXMkzFFErY2+yQdzmdE5iWVpmqecsRx3bOtOY4/1eINw==", + "license": "Apache-2.0 OR MIT", "dependencies": { "uint8arraylist": "^2.0.0" }, @@ -5900,29 +5427,25 @@ }, "node_modules/byteman": { "version": "1.3.5", - "resolved": "https://registry.npmjs.org/byteman/-/byteman-1.3.5.tgz", - "integrity": "sha512-FzWDstifFRxtHX234b93AGa1b77dA6NUFpEXe+AoG1NydGN//XDZLMXxRNUoMf7SYYhVxfpwUEUgQOziearJvA==" + "license": "MIT" }, "node_modules/bytes": { "version": "3.1.2", - "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.2.tgz", - "integrity": "sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==", + "license": "MIT", "engines": { "node": ">= 0.8" } }, "node_modules/cacheable-lookup": { "version": "7.0.0", - "resolved": "https://registry.npmjs.org/cacheable-lookup/-/cacheable-lookup-7.0.0.tgz", - "integrity": "sha512-+qJyx4xiKra8mZrcwhjMRMUhD5NR1R8esPkzIYxX96JiecFoxAXFuz/GpR3+ev4PE1WamHip78wV0vcmPQtp8w==", + "license": "MIT", "engines": { "node": ">=14.16" } }, "node_modules/cacheable-request": { "version": "10.2.5", - "resolved": "https://registry.npmjs.org/cacheable-request/-/cacheable-request-10.2.5.tgz", - "integrity": "sha512-5RwYYCfzjNPsyJxb/QpaM0bfzx+kw5/YpDhZPm9oMIDntHFQ9YXeyV47ZvzlTE0XrrrbyO2UITJH4GF9eRLdXQ==", + "license": "MIT", "dependencies": { "@types/http-cache-semantics": "^4.0.1", "get-stream": "^6.0.1", @@ -5938,8 +5461,7 @@ }, "node_modules/call-bind": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.2.tgz", - "integrity": "sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==", + "license": "MIT", "dependencies": { "function-bind": "^1.1.1", "get-intrinsic": "^1.0.2" @@ -5950,9 +5472,8 @@ }, "node_modules/callsites": { "version": "3.1.0", - "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", - "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", "dev": true, + "license": "MIT", "peer": true, "engines": { "node": ">=6" @@ -5960,8 +5481,7 @@ }, "node_modules/camel-case": { "version": "4.1.2", - "resolved": "https://registry.npmjs.org/camel-case/-/camel-case-4.1.2.tgz", - "integrity": "sha512-gxGWBrTT1JuMx6R+o5PTXMmUnhnVzLQ9SNutD4YqKtI6ap897t3tKECYla6gCWEkplXnlNybEkZg9GEGxKFCgw==", + "license": "MIT", "dependencies": { "pascal-case": "^3.1.2", "tslib": "^2.0.3" @@ -5969,9 +5489,8 @@ }, "node_modules/camelcase": { "version": "6.3.0", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.3.0.tgz", - "integrity": "sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==", "dev": true, + "license": "MIT", "engines": { "node": ">=10" }, @@ -5981,8 +5500,6 @@ }, "node_modules/caniuse-lite": { "version": "1.0.30001449", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001449.tgz", - "integrity": "sha512-CPB+UL9XMT/Av+pJxCKGhdx+yg1hzplvFJQlJ2n68PyQGMz9L/E2zCyLdOL8uasbouTUgnPl+y0tccI/se+BEw==", "dev": true, "funding": [ { @@ -5993,12 +5510,12 @@ "type": "tidelift", "url": "https://tidelift.com/funding/github/npm/caniuse-lite" } - ] + ], + "license": "CC-BY-4.0" }, "node_modules/capital-case": { "version": "1.0.4", - "resolved": "https://registry.npmjs.org/capital-case/-/capital-case-1.0.4.tgz", - "integrity": "sha512-ds37W8CytHgwnhGGTi88pcPyR15qoNkOpYwmMMfnWqqWgESapLqvDx6huFjQ5vqWSn2Z06173XNA7LtMOeUh1A==", + "license": "MIT", "dependencies": { "no-case": "^3.0.4", "tslib": "^2.0.3", @@ -6007,24 +5524,21 @@ }, "node_modules/catering": { "version": "2.1.1", - "resolved": "https://registry.npmjs.org/catering/-/catering-2.1.1.tgz", - "integrity": "sha512-K7Qy8O9p76sL3/3m7/zLKbRkyOlSZAgzEaLhyj2mXS8PsCud2Eo4hAb8aLtZqHh0QGqLcb9dlJSu6lHRVENm1w==", + "license": "MIT", "engines": { "node": ">=6" } }, "node_modules/cborg": { "version": "1.10.0", - "resolved": "https://registry.npmjs.org/cborg/-/cborg-1.10.0.tgz", - "integrity": "sha512-/eM0JCaL99HDHxjySNQJLaolZFVdl6VA0/hEKIoiQPcQzE5LrG5QHdml0HaBt31brgB9dNe1zMr3f8IVrpotRQ==", + "license": "Apache-2.0", "bin": { "cborg": "cli.js" } }, "node_modules/chalk": { "version": "2.4.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "license": "MIT", "dependencies": { "ansi-styles": "^3.2.1", "escape-string-regexp": "^1.0.5", @@ -6036,8 +5550,7 @@ }, "node_modules/change-case": { "version": "4.1.2", - "resolved": "https://registry.npmjs.org/change-case/-/change-case-4.1.2.tgz", - "integrity": "sha512-bSxY2ws9OtviILG1EiY5K7NNxkqg/JnRnFxLtKQ96JaviiIxi7djMrSd0ECT9AC+lttClmYwKw53BWpOMblo7A==", + "license": "MIT", "dependencies": { "camel-case": "^4.1.2", "capital-case": "^1.0.4", @@ -6055,8 +5568,6 @@ }, "node_modules/chokidar": { "version": "3.5.3", - "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.3.tgz", - "integrity": "sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==", "dev": true, "funding": [ { @@ -6064,6 +5575,7 @@ "url": "https://paulmillr.com/funding/" } ], + "license": "MIT", "dependencies": { "anymatch": "~3.1.2", "braces": "~3.0.2", @@ -6082,31 +5594,28 @@ }, "node_modules/chownr": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/chownr/-/chownr-2.0.0.tgz", - "integrity": "sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ==", + "license": "ISC", "engines": { "node": ">=10" } }, "node_modules/ci-info": { "version": "3.7.1", - "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-3.7.1.tgz", - "integrity": "sha512-4jYS4MOAaCIStSRwiuxc4B8MYhIe676yO1sYGzARnjXkWpmzZMMYxY6zu8WYWDhSuth5zhrQ1rhNSibyyvv4/w==", "funding": [ { "type": "github", "url": "https://github.com/sponsors/sibiraj-s" } ], + "license": "MIT", "engines": { "node": ">=8" } }, "node_modules/classic-level": { "version": "1.2.0", - "resolved": "https://registry.npmjs.org/classic-level/-/classic-level-1.2.0.tgz", - "integrity": "sha512-qw5B31ANxSluWz9xBzklRWTUAJ1SXIdaVKTVS7HcTGKOAmExx65Wo5BUICW+YGORe2FOUaDghoI9ZDxj82QcFg==", "hasInstallScript": true, + "license": "MIT", "dependencies": { "abstract-level": "^1.0.2", "catering": "^2.1.0", @@ -6120,8 +5629,7 @@ }, "node_modules/cli-boxes": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/cli-boxes/-/cli-boxes-3.0.0.tgz", - "integrity": "sha512-/lzGpEWL/8PfI0BmBOPRwp0c/wFNX1RdUML3jK/RcSBA9T8mZDdQpqYBKtCFTOfQbwPqWEOpjqW+Fnayc0969g==", + "license": "MIT", "engines": { "node": ">=10" }, @@ -6131,8 +5639,7 @@ }, "node_modules/cliui": { "version": "8.0.1", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-8.0.1.tgz", - "integrity": "sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==", + "license": "ISC", "dependencies": { "string-width": "^4.2.0", "strip-ansi": "^6.0.1", @@ -6144,9 +5651,8 @@ }, "node_modules/clone-deep": { "version": "4.0.1", - "resolved": "https://registry.npmjs.org/clone-deep/-/clone-deep-4.0.1.tgz", - "integrity": "sha512-neHB9xuzh/wk0dIHweyAXv2aPGZIVk3pLMe+/RNzINf17fe0OG96QroktYAUm7SM1PBnzTabaLboqqxDyMU+SQ==", "dev": true, + "license": "MIT", "dependencies": { "is-plain-object": "^2.0.4", "kind-of": "^6.0.2", @@ -6158,8 +5664,7 @@ }, "node_modules/clone-regexp": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/clone-regexp/-/clone-regexp-3.0.0.tgz", - "integrity": "sha512-ujdnoq2Kxb8s3ItNBtnYeXdm07FcU0u8ARAT1lQ2YdMwQC+cdiXX8KoqMVuglztILivceTtp4ivqGSmEmhBUJw==", + "license": "MIT", "dependencies": { "is-regexp": "^3.0.0" }, @@ -6172,34 +5677,29 @@ }, "node_modules/coercer": { "version": "1.1.2", - "resolved": "https://registry.npmjs.org/coercer/-/coercer-1.1.2.tgz", - "integrity": "sha512-Hu19wnyO8jzg7khfk50U6w3TGcdl8AXPalTcC0mDfHIqsWl/+y7oKdnpEneXW27DIgQh1R79U8seiTeWiNQjsw==" + "license": "ISC" }, "node_modules/color-convert": { "version": "1.9.3", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", - "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "license": "MIT", "dependencies": { "color-name": "1.1.3" } }, "node_modules/color-name": { "version": "1.1.3", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", - "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==" + "license": "MIT" }, "node_modules/color-support": { "version": "1.1.3", - "resolved": "https://registry.npmjs.org/color-support/-/color-support-1.1.3.tgz", - "integrity": "sha512-qiBjkpbMLO/HL68y+lh4q0/O1MZFj2RX6X/KmMa3+gJD3z+WwI1ZzDHysvqHGS3mP6mznPckpXmw1nI9cJjyRg==", + "license": "ISC", "bin": { "color-support": "bin.js" } }, "node_modules/combined-stream": { "version": "1.0.8", - "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz", - "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==", + "license": "MIT", "dependencies": { "delayed-stream": "~1.0.0" }, @@ -6209,19 +5709,16 @@ }, "node_modules/commondir": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/commondir/-/commondir-1.0.1.tgz", - "integrity": "sha512-W9pAhw0ja1Edb5GVdIF1mjZw/ASI0AlShXM83UUGe2DVr5TdAPEA1OA8m/g8zWp9x6On7gqufY+FatDbC3MDQg==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/concat-map": { "version": "0.0.1", - "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", - "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==" + "license": "MIT" }, "node_modules/config-chain": { "version": "1.1.13", - "resolved": "https://registry.npmjs.org/config-chain/-/config-chain-1.1.13.tgz", - "integrity": "sha512-qj+f8APARXHrM0hraqXYb2/bOVSV4PvJQlNZ/DVj0QrmNM2q2euizkeuVckQ57J+W0mRH6Hvi+k50M4Jul2VRQ==", + "license": "MIT", "dependencies": { "ini": "^1.3.4", "proto-list": "~1.2.1" @@ -6229,8 +5726,7 @@ }, "node_modules/configstore": { "version": "6.0.0", - "resolved": "https://registry.npmjs.org/configstore/-/configstore-6.0.0.tgz", - "integrity": "sha512-cD31W1v3GqUlQvbBCGcXmd2Nj9SvLDOP1oQ0YFuLETufzSPaKp11rYBsSOm7rCsW3OnIRAFM3OxRhceaXNYHkA==", + "license": "BSD-2-Clause", "dependencies": { "dot-prop": "^6.0.1", "graceful-fs": "^4.2.6", @@ -6247,13 +5743,11 @@ }, "node_modules/console-control-strings": { "version": "1.1.0", - "resolved": "https://registry.npmjs.org/console-control-strings/-/console-control-strings-1.1.0.tgz", - "integrity": "sha512-ty/fTekppD2fIwRvnZAVdeOiGd1c7YXEixbgJTNzqcxJWKQnjJ/V1bNEEE6hygpM3WjwHFUVK6HTjWSzV4a8sQ==" + "license": "ISC" }, "node_modules/constant-case": { "version": "3.0.4", - "resolved": "https://registry.npmjs.org/constant-case/-/constant-case-3.0.4.tgz", - "integrity": "sha512-I2hSBi7Vvs7BEuJDr5dDHfzb/Ruj3FyvFyh7KLilAjNQw3Be+xgqUBA2W6scVEcL0hL1dwPRtIqEPVUCKkSsyQ==", + "license": "MIT", "dependencies": { "no-case": "^3.0.4", "tslib": "^2.0.3", @@ -6262,8 +5756,7 @@ }, "node_modules/convert-hrtime": { "version": "5.0.0", - "resolved": "https://registry.npmjs.org/convert-hrtime/-/convert-hrtime-5.0.0.tgz", - "integrity": "sha512-lOETlkIeYSJWcbbcvjRKGxVMXJR+8+OQb/mTPbA4ObPMytYIsUbuOE0Jzy60hjARYszq1id0j8KgVhC+WGZVTg==", + "license": "MIT", "engines": { "node": ">=12" }, @@ -6273,20 +5766,17 @@ }, "node_modules/convert-source-map": { "version": "1.9.0", - "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.9.0.tgz", - "integrity": "sha512-ASFBup0Mz1uyiIjANan1jzLQami9z1PoYSZCiiYW2FczPbenXc45FZdBZLzOT+r6+iciuEModtmCti+hjaAk0A==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/create-require": { "version": "1.1.1", - "resolved": "https://registry.npmjs.org/create-require/-/create-require-1.1.1.tgz", - "integrity": "sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/cross-spawn": { "version": "7.0.3", - "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", - "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", + "license": "MIT", "dependencies": { "path-key": "^3.1.0", "shebang-command": "^2.0.0", @@ -6298,8 +5788,7 @@ }, "node_modules/crypto-random-string": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/crypto-random-string/-/crypto-random-string-4.0.0.tgz", - "integrity": "sha512-x8dy3RnvYdlUcPOjkEHqozhiwzKNSq7GcPuXFbnyMOCHxX8V3OgIg/pYuabl2sbUPfIJaeAQB7PMOK8DFIdoRA==", + "license": "MIT", "dependencies": { "type-fest": "^1.0.1" }, @@ -6312,8 +5801,7 @@ }, "node_modules/crypto-random-string/node_modules/type-fest": { "version": "1.4.0", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-1.4.0.tgz", - "integrity": "sha512-yGSza74xk0UG8k+pLh5oeoYirvIiWo5t0/o3zHHAO2tRDiZcxWP7fywNlXhqb6/r6sWvwi+RsyQMWhVLe4BVuA==", + "license": "(MIT OR CC0-1.0)", "engines": { "node": ">=10" }, @@ -6323,8 +5811,7 @@ }, "node_modules/d": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/d/-/d-1.0.1.tgz", - "integrity": "sha512-m62ShEObQ39CfralilEQRjH6oAMtNCV1xJyEx5LpRYUVN+EviphDgUc/F3hnYbADmkiNs67Y+3ylmlG7Lnu+FA==", + "license": "ISC", "dependencies": { "es5-ext": "^0.10.50", "type": "^1.0.1" @@ -6332,8 +5819,7 @@ }, "node_modules/dag-jose": { "version": "3.0.1", - "resolved": "https://registry.npmjs.org/dag-jose/-/dag-jose-3.0.1.tgz", - "integrity": "sha512-HUdzCqM4ukT168fgFl1IgOVf5J9I7WSbvBovOhOsQWIJZ+LGGVEd/Dg4f1ZirslsBZzLEeXU8LBuPpf4he5CKg==", + "license": "(Apache-2.0 OR MIT)", "dependencies": { "@ipld/dag-cbor": "^8.0.0", "multiformats": "^10.0.1" @@ -6341,8 +5827,7 @@ }, "node_modules/dag-jose/node_modules/multiformats": { "version": "10.0.3", - "resolved": "https://registry.npmjs.org/multiformats/-/multiformats-10.0.3.tgz", - "integrity": "sha512-K2yGSmstS/oEmYiEIieHb53jJCaqp4ERPDQAYrm5sV3UUrVDZeshJQCK6GHAKyIGufU1vAcbS0PdAAZmC7Tzcw==", + "license": "Apache-2.0 OR MIT", "engines": { "node": ">=16.0.0", "npm": ">=7.0.0" @@ -6350,16 +5835,14 @@ }, "node_modules/data-uri-to-buffer": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/data-uri-to-buffer/-/data-uri-to-buffer-4.0.0.tgz", - "integrity": "sha512-Vr3mLBA8qWmcuschSLAOogKgQ/Jwxulv3RNE4FXnYWRGujzrRWQI4m12fQqRkwX06C0KanhLr4hK+GydchZsaA==", + "license": "MIT", "engines": { "node": ">= 12" } }, "node_modules/datastore-core": { "version": "8.0.3", - "resolved": "https://registry.npmjs.org/datastore-core/-/datastore-core-8.0.3.tgz", - "integrity": "sha512-x1cAYGXnJQRDbUYF7pUBpx4bN+UP+8MOk66A30G70pVVnIG9TbkEAiapYUrwZGFdJnpZnb3HeS5Q13rsUNxIJQ==", + "license": "Apache-2.0 OR MIT", "dependencies": { "@libp2p/logger": "^2.0.0", "err-code": "^3.0.1", @@ -6381,8 +5864,7 @@ }, "node_modules/datastore-fs": { "version": "8.0.0", - "resolved": "https://registry.npmjs.org/datastore-fs/-/datastore-fs-8.0.0.tgz", - "integrity": "sha512-yXPf+d08RL9wdWqZbLaJxbS0FMkKNCoYYXW6MausrFAF03hCWvap62bvPC7fX415PF0v/8JOw1aSJyGJ9WjtHA==", + "license": "Apache-2.0 OR MIT", "dependencies": { "datastore-core": "^8.0.1", "fast-write-atomic": "^0.2.0", @@ -6399,13 +5881,11 @@ }, "node_modules/datastore-fs/node_modules/it-map": { "version": "1.0.6", - "resolved": "https://registry.npmjs.org/it-map/-/it-map-1.0.6.tgz", - "integrity": "sha512-XT4/RM6UHIFG9IobGlQPFQUrlEKkU4eBUFG3qhWhfAdh1JfF2x11ShCrKCdmZ0OiZppPfoLuzcfA4cey6q3UAQ==" + "license": "ISC" }, "node_modules/datastore-level": { "version": "9.0.4", - "resolved": "https://registry.npmjs.org/datastore-level/-/datastore-level-9.0.4.tgz", - "integrity": "sha512-HKf2tVVWywdidI+94z0B5NLx4J94wTLCT1tYXXxJ58MK/Y5rdX8WVRp9XmZaODS70uxpNC8/UrvWr0iTBZwkUA==", + "license": "Apache-2.0 OR MIT", "dependencies": { "abstract-level": "^1.0.3", "datastore-core": "^8.0.1", @@ -6423,8 +5903,7 @@ }, "node_modules/datastore-pubsub": { "version": "6.0.0", - "resolved": "https://registry.npmjs.org/datastore-pubsub/-/datastore-pubsub-6.0.0.tgz", - "integrity": "sha512-HvzzDwfquX9zFaBsoj1Ue9ewlYX4dqneTTW2fRoKYsG4LQWwMXAU925qiki31kUe//QjYFN/Mi2xuwdk65PQog==", + "license": "Apache-2.0 OR MIT", "dependencies": { "@libp2p/interface-dht": "^1.0.1", "@libp2p/interface-pubsub": "^3.0.0", @@ -6443,16 +5922,14 @@ }, "node_modules/dateformat": { "version": "4.6.3", - "resolved": "https://registry.npmjs.org/dateformat/-/dateformat-4.6.3.tgz", - "integrity": "sha512-2P0p0pFGzHS5EMnhdxQi7aJN+iMheud0UhG4dlE1DLAlvL8JHjJJTX/CSm4JXwV0Ka5nGk3zC5mcb5bUQUxxMA==", + "license": "MIT", "engines": { "node": "*" } }, "node_modules/debug": { "version": "4.3.4", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", - "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", + "license": "MIT", "dependencies": { "ms": "2.1.2" }, @@ -6467,9 +5944,8 @@ }, "node_modules/decamelize": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-4.0.0.tgz", - "integrity": "sha512-9iE1PgSik9HeIIw2JO94IidnE3eBoQrFJ3w7sFuzSX4DpmZ3v5sZpUiV5Swcf6mQEF+Y0ru8Neo+p+nyh2J+hQ==", "dev": true, + "license": "MIT", "engines": { "node": ">=10" }, @@ -6479,8 +5955,7 @@ }, "node_modules/decompress-response": { "version": "6.0.0", - "resolved": "https://registry.npmjs.org/decompress-response/-/decompress-response-6.0.0.tgz", - "integrity": "sha512-aW35yZM6Bb/4oJlZncMH2LCoZtJXTRxES17vE3hoRiowU2kWHaJKFkSBDnDR+cm9J+9QhXmREyIfv0pji9ejCQ==", + "license": "MIT", "dependencies": { "mimic-response": "^3.1.0" }, @@ -6493,8 +5968,7 @@ }, "node_modules/decompress-response/node_modules/mimic-response": { "version": "3.1.0", - "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-3.1.0.tgz", - "integrity": "sha512-z0yWI+4FDrrweS8Zmt4Ej5HdJmky15+L2e6Wgn3+iK5fWzb6T3fhNFq2+MeTRb064c6Wr4N/wv0DzQTjNzHNGQ==", + "license": "MIT", "engines": { "node": ">=10" }, @@ -6504,23 +5978,20 @@ }, "node_modules/deep-extend": { "version": "0.6.0", - "resolved": "https://registry.npmjs.org/deep-extend/-/deep-extend-0.6.0.tgz", - "integrity": "sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==", + "license": "MIT", "engines": { "node": ">=4.0.0" } }, "node_modules/deep-is": { "version": "0.1.4", - "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz", - "integrity": "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==", "dev": true, + "license": "MIT", "peer": true }, "node_modules/default-gateway": { "version": "6.0.3", - "resolved": "https://registry.npmjs.org/default-gateway/-/default-gateway-6.0.3.tgz", - "integrity": "sha512-fwSOJsbbNzZ/CUFpqFBqYfYNLj1NbMPm8MMCIzHjC83iSJRBEGmDUxU+WP661BaBQImeC2yHwXtz+P/O9o+XEg==", + "license": "BSD-2-Clause", "dependencies": { "execa": "^5.0.0" }, @@ -6530,8 +6001,7 @@ }, "node_modules/default-gateway/node_modules/execa": { "version": "5.1.1", - "resolved": "https://registry.npmjs.org/execa/-/execa-5.1.1.tgz", - "integrity": "sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==", + "license": "MIT", "dependencies": { "cross-spawn": "^7.0.3", "get-stream": "^6.0.0", @@ -6552,16 +6022,14 @@ }, "node_modules/default-gateway/node_modules/human-signals": { "version": "2.1.0", - "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-2.1.0.tgz", - "integrity": "sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==", + "license": "Apache-2.0", "engines": { "node": ">=10.17.0" } }, "node_modules/default-gateway/node_modules/is-stream": { "version": "2.0.1", - "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.1.tgz", - "integrity": "sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==", + "license": "MIT", "engines": { "node": ">=8" }, @@ -6571,16 +6039,14 @@ }, "node_modules/default-gateway/node_modules/mimic-fn": { "version": "2.1.0", - "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz", - "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==", + "license": "MIT", "engines": { "node": ">=6" } }, "node_modules/default-gateway/node_modules/npm-run-path": { "version": "4.0.1", - "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-4.0.1.tgz", - "integrity": "sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==", + "license": "MIT", "dependencies": { "path-key": "^3.0.0" }, @@ -6590,8 +6056,7 @@ }, "node_modules/default-gateway/node_modules/onetime": { "version": "5.1.2", - "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz", - "integrity": "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==", + "license": "MIT", "dependencies": { "mimic-fn": "^2.1.0" }, @@ -6604,24 +6069,21 @@ }, "node_modules/default-gateway/node_modules/strip-final-newline": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-2.0.0.tgz", - "integrity": "sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==", + "license": "MIT", "engines": { "node": ">=6" } }, "node_modules/defer-to-connect": { "version": "2.0.1", - "resolved": "https://registry.npmjs.org/defer-to-connect/-/defer-to-connect-2.0.1.tgz", - "integrity": "sha512-4tvttepXG1VaYGrRibk5EwJd1t4udunSOVMdLSAL6mId1ix438oPwPZMALY41FCijukO1L0twNcGsdzS7dHgDg==", + "license": "MIT", "engines": { "node": ">=10" } }, "node_modules/delay": { "version": "5.0.0", - "resolved": "https://registry.npmjs.org/delay/-/delay-5.0.0.tgz", - "integrity": "sha512-ReEBKkIfe4ya47wlPYf/gu5ib6yUG0/Aez0JQZQz94kiWtRQvZIQbTiehsnwHvLSWJnQdhVeqYue7Id1dKr0qw==", + "license": "MIT", "engines": { "node": ">=10" }, @@ -6631,37 +6093,32 @@ }, "node_modules/delayed-stream": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", - "integrity": "sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==", + "license": "MIT", "engines": { "node": ">=0.4.0" } }, "node_modules/delegates": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/delegates/-/delegates-1.0.0.tgz", - "integrity": "sha512-bd2L678uiWATM6m5Z1VzNCErI3jiGzt6HGY8OVICs40JQq/HALfbyNJmp0UDakEY4pMMaN0Ly5om/B1VI/+xfQ==" + "license": "MIT" }, "node_modules/denque": { "version": "1.5.1", - "resolved": "https://registry.npmjs.org/denque/-/denque-1.5.1.tgz", - "integrity": "sha512-XwE+iZ4D6ZUB7mfYRMb5wByE8L74HCn30FBN7sWnXksWc1LO1bPDl67pBR9o/kC4z/xSNAwkMYcGgqDV3BE3Hw==", + "license": "Apache-2.0", "engines": { "node": ">=0.10" } }, "node_modules/detect-libc": { "version": "2.0.1", - "resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-2.0.1.tgz", - "integrity": "sha512-463v3ZeIrcWtdgIg6vI6XUncguvr2TnGl4SzDXinkt9mSLpBJKXT3mW6xT3VQdDN11+WVs29pgvivTc4Lp8v+w==", + "license": "Apache-2.0", "engines": { "node": ">=8" } }, "node_modules/dezalgo": { "version": "1.0.4", - "resolved": "https://registry.npmjs.org/dezalgo/-/dezalgo-1.0.4.tgz", - "integrity": "sha512-rXSP0bf+5n0Qonsb+SVVfNfIsimO4HEtmnIpPHY8Q1UCzKlQrDMfdobr8nJOOsRgWCyMRqeSBQzmWUMq7zvVig==", + "license": "ISC", "dependencies": { "asap": "^2.0.0", "wrappy": "1" @@ -6669,23 +6126,20 @@ }, "node_modules/diff": { "version": "5.0.0", - "resolved": "https://registry.npmjs.org/diff/-/diff-5.0.0.tgz", - "integrity": "sha512-/VTCrvm5Z0JGty/BWHljh+BAiw3IK+2j87NGMu8Nwc/f48WoDAC395uomO9ZD117ZOBaHmkX1oyLvkVM/aIT3w==", "dev": true, + "license": "BSD-3-Clause", "engines": { "node": ">=0.3.1" } }, "node_modules/diff-match-patch": { "version": "1.0.5", - "resolved": "https://registry.npmjs.org/diff-match-patch/-/diff-match-patch-1.0.5.tgz", - "integrity": "sha512-IayShXAgj/QMXgB0IWmKx+rOPuGMhqm5w6jvFxmVenXKIzRqTAAsbBPT3kWQeGANj3jGgvcvv4yK6SxqYmikgw==" + "license": "Apache-2.0" }, "node_modules/dir-glob": { "version": "3.0.1", - "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-3.0.1.tgz", - "integrity": "sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==", "dev": true, + "license": "MIT", "dependencies": { "path-type": "^4.0.0" }, @@ -6695,13 +6149,11 @@ }, "node_modules/dlv": { "version": "1.1.3", - "resolved": "https://registry.npmjs.org/dlv/-/dlv-1.1.3.tgz", - "integrity": "sha512-+HlytyjlPKnIG8XuRG8WvmBP8xs8P71y+SKKS6ZXWoEgLuePxtDoUEiH7WkdePWrQ5JBpE6aoVqfZfJUQkjXwA==" + "license": "MIT" }, "node_modules/dns-over-http-resolver": { "version": "2.1.1", - "resolved": "https://registry.npmjs.org/dns-over-http-resolver/-/dns-over-http-resolver-2.1.1.tgz", - "integrity": "sha512-Lm/eXB7yAQLJ5WxlBGwYfBY7utduXPZykcSmcG6K7ozM0wrZFvxZavhT6PqI0kd/5CUTfev/RrEFQqyU4CGPew==", + "license": "Apache-2.0 OR MIT", "dependencies": { "debug": "^4.3.1", "native-fetch": "^4.0.2", @@ -6715,8 +6167,7 @@ }, "node_modules/dns-packet": { "version": "5.4.0", - "resolved": "https://registry.npmjs.org/dns-packet/-/dns-packet-5.4.0.tgz", - "integrity": "sha512-EgqGeaBB8hLiHLZtp/IbaDQTL8pZ0+IvwzSHA6d7VyMDM+B9hgddEMa9xjK5oYnw0ci0JQ6g2XCD7/f6cafU6g==", + "license": "MIT", "dependencies": { "@leichtgewicht/ip-codec": "^2.0.1" }, @@ -6726,9 +6177,8 @@ }, "node_modules/doctrine": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz", - "integrity": "sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==", "dev": true, + "license": "Apache-2.0", "peer": true, "dependencies": { "esutils": "^2.0.2" @@ -6739,8 +6189,7 @@ }, "node_modules/dot-case": { "version": "3.0.4", - "resolved": "https://registry.npmjs.org/dot-case/-/dot-case-3.0.4.tgz", - "integrity": "sha512-Kv5nKlh6yRrdrGvxeJ2e5y2eRUpkUosIW4A2AS38zwSz27zu7ufDwQPi5Jhs3XAlGNetl3bmnGhQsMtkKJnj3w==", + "license": "MIT", "dependencies": { "no-case": "^3.0.4", "tslib": "^2.0.3" @@ -6748,8 +6197,7 @@ }, "node_modules/dot-prop": { "version": "6.0.1", - "resolved": "https://registry.npmjs.org/dot-prop/-/dot-prop-6.0.1.tgz", - "integrity": "sha512-tE7ztYzXHIeyvc7N+hR3oi7FIbf/NIjVP9hmAt3yMXzrQ072/fpjGLx2GxNxGxUl5V73MEqYzioOMoVhGMJ5cA==", + "license": "MIT", "dependencies": { "is-obj": "^2.0.0" }, @@ -6762,21 +6210,18 @@ }, "node_modules/eastasianwidth": { "version": "0.2.0", - "resolved": "https://registry.npmjs.org/eastasianwidth/-/eastasianwidth-0.2.0.tgz", - "integrity": "sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==" + "license": "MIT" }, "node_modules/ed2curve": { "version": "0.3.0", - "resolved": "https://registry.npmjs.org/ed2curve/-/ed2curve-0.3.0.tgz", - "integrity": "sha512-8w2fmmq3hv9rCrcI7g9hms2pMunQr1JINfcjwR9tAyZqhtyaMN991lF/ZfHfr5tzZQ8c7y7aBgZbjfbd0fjFwQ==", + "license": "Unlicense", "dependencies": { "tweetnacl": "1.x.x" } }, "node_modules/ejs": { "version": "3.1.8", - "resolved": "https://registry.npmjs.org/ejs/-/ejs-3.1.8.tgz", - "integrity": "sha512-/sXZeMlhS0ArkfX2Aw780gJzXSMPnKjtspYZv+f3NiKLlubezAHDU5+9xz6gd3/NhG3txQCo6xlglmTS+oTGEQ==", + "license": "Apache-2.0", "dependencies": { "jake": "^10.8.5" }, @@ -6789,8 +6234,7 @@ }, "node_modules/electron-fetch": { "version": "1.9.1", - "resolved": "https://registry.npmjs.org/electron-fetch/-/electron-fetch-1.9.1.tgz", - "integrity": "sha512-M9qw6oUILGVrcENMSRRefE1MbHPIz0h79EKIeJWK9v563aT9Qkh8aEHPO1H5vi970wPirNY+jO9OpFoLiMsMGA==", + "license": "MIT", "dependencies": { "encoding": "^0.1.13" }, @@ -6800,35 +6244,30 @@ }, "node_modules/electron-to-chromium": { "version": "1.4.284", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.284.tgz", - "integrity": "sha512-M8WEXFuKXMYMVr45fo8mq0wUrrJHheiKZf6BArTKk9ZBYCKJEOU5H8cdWgDT+qCVZf7Na4lVUaZsA+h6uA9+PA==", - "dev": true + "dev": true, + "license": "ISC" }, "node_modules/emoji-regex": { "version": "8.0.0", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", - "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==" + "license": "MIT" }, "node_modules/encoding": { "version": "0.1.13", - "resolved": "https://registry.npmjs.org/encoding/-/encoding-0.1.13.tgz", - "integrity": "sha512-ETBauow1T35Y/WZMkio9jiM0Z5xjHHmJ4XmjZOq1l/dXz3lr2sRn87nJy20RupqSh1F2m3HHPSp8ShIPQJrJ3A==", + "license": "MIT", "dependencies": { "iconv-lite": "^0.6.2" } }, "node_modules/end-of-stream": { "version": "1.4.4", - "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz", - "integrity": "sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==", + "license": "MIT", "dependencies": { "once": "^1.4.0" } }, "node_modules/engine.io-client": { "version": "6.2.3", - "resolved": "https://registry.npmjs.org/engine.io-client/-/engine.io-client-6.2.3.tgz", - "integrity": "sha512-aXPtgF1JS3RuuKcpSrBtimSjYvrbhKW9froICH4s0F3XQWLxsKNxqzG39nnvQZQnva4CMvUK63T7shevxRyYHw==", + "license": "MIT", "dependencies": { "@socket.io/component-emitter": "~3.1.0", "debug": "~4.3.1", @@ -6839,8 +6278,7 @@ }, "node_modules/engine.io-client/node_modules/ws": { "version": "8.2.3", - "resolved": "https://registry.npmjs.org/ws/-/ws-8.2.3.tgz", - "integrity": "sha512-wBuoj1BDpC6ZQ1B7DWQBYVLphPWkm8i9Y0/3YdHjHKHiohOJ1ws+3OccDWtH+PoC9DZD5WOTrJvNbWvjS6JWaA==", + "license": "MIT", "engines": { "node": ">=10.0.0" }, @@ -6859,22 +6297,19 @@ }, "node_modules/engine.io-parser": { "version": "5.0.5", - "resolved": "https://registry.npmjs.org/engine.io-parser/-/engine.io-parser-5.0.5.tgz", - "integrity": "sha512-mjEyaa4zhuuRhaSLOdjEb57X0XPP9JEsnXI4E+ivhwT0GgzUogARx4MqoY1jQyB+4Bkz3BUOmzL7t9RMKmlG3g==", + "license": "MIT", "engines": { "node": ">=10.0.0" } }, "node_modules/err-code": { "version": "3.0.1", - "resolved": "https://registry.npmjs.org/err-code/-/err-code-3.0.1.tgz", - "integrity": "sha512-GiaH0KJUewYok+eeY05IIgjtAe4Yltygk9Wqp1V5yVWLdhf0hYZchRjNIT9bb0mSwRcIusT3cx7PJUf3zEIfUA==" + "license": "MIT" }, "node_modules/es5-ext": { "version": "0.10.62", - "resolved": "https://registry.npmjs.org/es5-ext/-/es5-ext-0.10.62.tgz", - "integrity": "sha512-BHLqn0klhEpnOKSrzn/Xsz2UIW8j+cGmo9JLzr8BiUapV8hPL9+FliFqjwr9ngW7jWdnxv6eO+/LqyhJVqgrjA==", "hasInstallScript": true, + "license": "ISC", "dependencies": { "es6-iterator": "^2.0.3", "es6-symbol": "^3.1.3", @@ -6886,8 +6321,7 @@ }, "node_modules/es6-iterator": { "version": "2.0.3", - "resolved": "https://registry.npmjs.org/es6-iterator/-/es6-iterator-2.0.3.tgz", - "integrity": "sha512-zw4SRzoUkd+cl+ZoE15A9o1oQd920Bb0iOJMQkQhl3jNc03YqVjAhG7scf9C5KWRU/R13Orf588uCC6525o02g==", + "license": "MIT", "dependencies": { "d": "1", "es5-ext": "^0.10.35", @@ -6896,8 +6330,7 @@ }, "node_modules/es6-symbol": { "version": "3.1.3", - "resolved": "https://registry.npmjs.org/es6-symbol/-/es6-symbol-3.1.3.tgz", - "integrity": "sha512-NJ6Yn3FuDinBaBRWl/q5X/s4koRHBrgKAu+yGI6JCBeiu3qrcbJhwT2GeR/EXVfylRk8dpQVJoLEFhK+Mu31NA==", + "license": "ISC", "dependencies": { "d": "^1.0.1", "ext": "^1.1.2" @@ -6905,16 +6338,14 @@ }, "node_modules/escalade": { "version": "3.1.1", - "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz", - "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==", + "license": "MIT", "engines": { "node": ">=6" } }, "node_modules/escape-goat": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/escape-goat/-/escape-goat-4.0.0.tgz", - "integrity": "sha512-2Sd4ShcWxbx6OY1IHyla/CVNwvg7XwZVoXZHcSu9w9SReNP1EzzD5T8NWKIR38fIqEns9kDWKUQTXXAmlDrdPg==", + "license": "MIT", "engines": { "node": ">=12" }, @@ -6924,17 +6355,15 @@ }, "node_modules/escape-string-regexp": { "version": "1.0.5", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", - "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", + "license": "MIT", "engines": { "node": ">=0.8.0" } }, "node_modules/eslint": { "version": "8.32.0", - "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.32.0.tgz", - "integrity": "sha512-nETVXpnthqKPFyuY2FNjz/bEd6nbosRgKbkgS/y1C7LJop96gYHWpiguLecMHQ2XCPxn77DS0P+68WzG6vkZSQ==", "dev": true, + "license": "MIT", "peer": true, "dependencies": { "@eslint/eslintrc": "^1.4.1", @@ -6989,9 +6418,8 @@ }, "node_modules/eslint-scope": { "version": "5.1.1", - "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.1.tgz", - "integrity": "sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==", "dev": true, + "license": "BSD-2-Clause", "dependencies": { "esrecurse": "^4.3.0", "estraverse": "^4.1.1" @@ -7002,9 +6430,8 @@ }, "node_modules/eslint-utils": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/eslint-utils/-/eslint-utils-3.0.0.tgz", - "integrity": "sha512-uuQC43IGctw68pJA1RgbQS8/NP7rch6Cwd4j3ZBtgo4/8Flj4eGE7ZYSZRN3iq5pVUv6GPdW5Z1RFleo84uLDA==", "dev": true, + "license": "MIT", "dependencies": { "eslint-visitor-keys": "^2.0.0" }, @@ -7020,27 +6447,24 @@ }, "node_modules/eslint-utils/node_modules/eslint-visitor-keys": { "version": "2.1.0", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-2.1.0.tgz", - "integrity": "sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw==", "dev": true, + "license": "Apache-2.0", "engines": { "node": ">=10" } }, "node_modules/eslint-visitor-keys": { "version": "3.3.0", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.3.0.tgz", - "integrity": "sha512-mQ+suqKJVyeuwGYHAdjMFqjCyfl8+Ldnxuyp3ldiMBFKkvytrXUZWaiPCEav8qDHKty44bD+qV1IP4T+w+xXRA==", "dev": true, + "license": "Apache-2.0", "engines": { "node": "^12.22.0 || ^14.17.0 || >=16.0.0" } }, "node_modules/eslint/node_modules/ansi-styles": { "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", "dev": true, + "license": "MIT", "peer": true, "dependencies": { "color-convert": "^2.0.1" @@ -7054,9 +6478,8 @@ }, "node_modules/eslint/node_modules/brace-expansion": { "version": "1.1.11", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", - "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", "dev": true, + "license": "MIT", "peer": true, "dependencies": { "balanced-match": "^1.0.0", @@ -7065,9 +6488,8 @@ }, "node_modules/eslint/node_modules/chalk": { "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", "dev": true, + "license": "MIT", "peer": true, "dependencies": { "ansi-styles": "^4.1.0", @@ -7082,9 +6504,8 @@ }, "node_modules/eslint/node_modules/color-convert": { "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", "dev": true, + "license": "MIT", "peer": true, "dependencies": { "color-name": "~1.1.4" @@ -7095,16 +6516,14 @@ }, "node_modules/eslint/node_modules/color-name": { "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", "dev": true, + "license": "MIT", "peer": true }, "node_modules/eslint/node_modules/escape-string-regexp": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", - "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", "dev": true, + "license": "MIT", "peer": true, "engines": { "node": ">=10" @@ -7115,9 +6534,8 @@ }, "node_modules/eslint/node_modules/eslint-scope": { "version": "7.1.1", - "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-7.1.1.tgz", - "integrity": "sha512-QKQM/UXpIiHcLqJ5AOyIW7XZmzjkzQXYE54n1++wb0u9V/abW3l9uQnxX8Z5Xd18xyKIMTUAyQ0k1e8pz6LUrw==", "dev": true, + "license": "BSD-2-Clause", "peer": true, "dependencies": { "esrecurse": "^4.3.0", @@ -7129,9 +6547,8 @@ }, "node_modules/eslint/node_modules/estraverse": { "version": "5.3.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", - "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", "dev": true, + "license": "BSD-2-Clause", "peer": true, "engines": { "node": ">=4.0" @@ -7139,9 +6556,8 @@ }, "node_modules/eslint/node_modules/glob-parent": { "version": "6.0.2", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz", - "integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==", "dev": true, + "license": "ISC", "peer": true, "dependencies": { "is-glob": "^4.0.3" @@ -7152,9 +6568,8 @@ }, "node_modules/eslint/node_modules/globals": { "version": "13.19.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-13.19.0.tgz", - "integrity": "sha512-dkQ957uSRWHw7CFXLUtUHQI3g3aWApYhfNR2O6jn/907riyTYKVBmxYVROkBcY614FSSeSJh7Xm7SrUWCxvJMQ==", "dev": true, + "license": "MIT", "peer": true, "dependencies": { "type-fest": "^0.20.2" @@ -7168,9 +6583,8 @@ }, "node_modules/eslint/node_modules/has-flag": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", "dev": true, + "license": "MIT", "peer": true, "engines": { "node": ">=8" @@ -7178,9 +6592,8 @@ }, "node_modules/eslint/node_modules/minimatch": { "version": "3.1.2", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", - "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", "dev": true, + "license": "ISC", "peer": true, "dependencies": { "brace-expansion": "^1.1.7" @@ -7191,9 +6604,8 @@ }, "node_modules/eslint/node_modules/supports-color": { "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", "dev": true, + "license": "MIT", "peer": true, "dependencies": { "has-flag": "^4.0.0" @@ -7204,9 +6616,8 @@ }, "node_modules/eslint/node_modules/type-fest": { "version": "0.20.2", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz", - "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==", "dev": true, + "license": "(MIT OR CC0-1.0)", "peer": true, "engines": { "node": ">=10" @@ -7217,9 +6628,8 @@ }, "node_modules/espree": { "version": "9.4.1", - "resolved": "https://registry.npmjs.org/espree/-/espree-9.4.1.tgz", - "integrity": "sha512-XwctdmTO6SIvCzd9810yyNzIrOrqNYV9Koizx4C/mRhf9uq0o4yHoCEU/670pOxOL/MSraektvSAji79kX90Vg==", "dev": true, + "license": "BSD-2-Clause", "peer": true, "dependencies": { "acorn": "^8.8.0", @@ -7235,9 +6645,8 @@ }, "node_modules/esquery": { "version": "1.4.0", - "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.4.0.tgz", - "integrity": "sha512-cCDispWt5vHHtwMY2YrAQ4ibFkAL8RbH5YGBnZBc90MolvvfkkQcJro/aZiAQUlQ3qgrYS6D6v8Gc5G5CQsc9w==", "dev": true, + "license": "BSD-3-Clause", "peer": true, "dependencies": { "estraverse": "^5.1.0" @@ -7248,9 +6657,8 @@ }, "node_modules/esquery/node_modules/estraverse": { "version": "5.3.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", - "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", "dev": true, + "license": "BSD-2-Clause", "peer": true, "engines": { "node": ">=4.0" @@ -7258,9 +6666,8 @@ }, "node_modules/esrecurse": { "version": "4.3.0", - "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz", - "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==", "dev": true, + "license": "BSD-2-Clause", "dependencies": { "estraverse": "^5.2.0" }, @@ -7270,27 +6677,24 @@ }, "node_modules/esrecurse/node_modules/estraverse": { "version": "5.3.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", - "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", "dev": true, + "license": "BSD-2-Clause", "engines": { "node": ">=4.0" } }, "node_modules/estraverse": { "version": "4.3.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz", - "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==", "dev": true, + "license": "BSD-2-Clause", "engines": { "node": ">=4.0" } }, "node_modules/esutils": { "version": "2.0.3", - "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", - "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", "dev": true, + "license": "BSD-2-Clause", "peer": true, "engines": { "node": ">=0.10.0" @@ -7298,34 +6702,29 @@ }, "node_modules/event-iterator": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/event-iterator/-/event-iterator-2.0.0.tgz", - "integrity": "sha512-KGft0ldl31BZVV//jj+IAIGCxkvvUkkON+ScH6zfoX+l+omX6001ggyRSpI0Io2Hlro0ThXotswCtfzS8UkIiQ==" + "license": "MIT" }, "node_modules/event-target-shim": { "version": "5.0.1", - "resolved": "https://registry.npmjs.org/event-target-shim/-/event-target-shim-5.0.1.tgz", - "integrity": "sha512-i/2XbnSz/uxRCU6+NdVJgKWDTM427+MqYbkQzD321DuCQJUqOuJKIA0IM2+W2xtYHdKOmZ4dR6fExsd4SXL+WQ==", + "license": "MIT", "engines": { "node": ">=6" } }, "node_modules/eventemitter3": { "version": "4.0.7", - "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-4.0.7.tgz", - "integrity": "sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw==" + "license": "MIT" }, "node_modules/events": { "version": "3.3.0", - "resolved": "https://registry.npmjs.org/events/-/events-3.3.0.tgz", - "integrity": "sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==", + "license": "MIT", "engines": { "node": ">=0.8.x" } }, "node_modules/execa": { "version": "6.1.0", - "resolved": "https://registry.npmjs.org/execa/-/execa-6.1.0.tgz", - "integrity": "sha512-QVWlX2e50heYJcCPG0iWtf8r0xjEYfz/OYLGDYH+IyjWezzPNxz63qNFOu0l4YftGWuizFVZHHs8PrLU5p2IDA==", + "license": "MIT", "dependencies": { "cross-spawn": "^7.0.3", "get-stream": "^6.0.1", @@ -7346,34 +6745,29 @@ }, "node_modules/ext": { "version": "1.7.0", - "resolved": "https://registry.npmjs.org/ext/-/ext-1.7.0.tgz", - "integrity": "sha512-6hxeJYaL110a9b5TEJSj0gojyHQAmA2ch5Os+ySCiA1QGdS697XWY1pzsrSjqA9LDEEgdB/KypIlR59RcLuHYw==", + "license": "ISC", "dependencies": { "type": "^2.7.2" } }, "node_modules/ext/node_modules/type": { "version": "2.7.2", - "resolved": "https://registry.npmjs.org/type/-/type-2.7.2.tgz", - "integrity": "sha512-dzlvlNlt6AXU7EBSfpAscydQ7gXB+pPGsPnfJnZpiNJBDj7IaJzQlBZYGdEi4R9HmPdBv2XmWJ6YUtoTa7lmCw==" + "license": "ISC" }, "node_modules/fast-deep-equal": { "version": "3.1.3", - "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", - "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", "dev": true, + "license": "MIT", "peer": true }, "node_modules/fast-fifo": { "version": "1.1.0", - "resolved": "https://registry.npmjs.org/fast-fifo/-/fast-fifo-1.1.0.tgz", - "integrity": "sha512-Kl29QoNbNvn4nhDsLYjyIAaIqaJB6rBx5p3sL9VjaefJ+eMFBWVZiaoguaoZfzEKr5RhAti0UgM8703akGPJ6g==" + "license": "MIT" }, "node_modules/fast-glob": { "version": "3.2.12", - "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.2.12.tgz", - "integrity": "sha512-DVj4CQIYYow0BlaelwK1pHl5n5cRSJfM60UA0zK891sVInoPri2Ekj7+e1CT3/3qxXenpI+nBBmQAcJPJgaj4w==", "dev": true, + "license": "MIT", "dependencies": { "@nodelib/fs.stat": "^2.0.2", "@nodelib/fs.walk": "^1.2.3", @@ -7387,49 +6781,41 @@ }, "node_modules/fast-json-stable-stringify": { "version": "2.1.0", - "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", - "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==", "dev": true, + "license": "MIT", "peer": true }, "node_modules/fast-levenshtein": { "version": "2.0.6", - "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", - "integrity": "sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==", "dev": true, + "license": "MIT", "peer": true }, "node_modules/fast-redact": { "version": "3.1.2", - "resolved": "https://registry.npmjs.org/fast-redact/-/fast-redact-3.1.2.tgz", - "integrity": "sha512-+0em+Iya9fKGfEQGcd62Yv6onjBmmhV1uh86XVfOU8VwAe6kaFdQCWI9s0/Nnugx5Vd9tdbZ7e6gE2tR9dzXdw==", + "license": "MIT", "engines": { "node": ">=6" } }, "node_modules/fast-safe-stringify": { "version": "2.1.1", - "resolved": "https://registry.npmjs.org/fast-safe-stringify/-/fast-safe-stringify-2.1.1.tgz", - "integrity": "sha512-W+KJc2dmILlPplD/H4K9l9LcAHAfPtP6BY84uVLXQ6Evcz9Lcg33Y2z1IVblT6xdY54PXYVHEv+0Wpq8Io6zkA==" + "license": "MIT" }, "node_modules/fast-write-atomic": { "version": "0.2.1", - "resolved": "https://registry.npmjs.org/fast-write-atomic/-/fast-write-atomic-0.2.1.tgz", - "integrity": "sha512-WvJe06IfNYlr+6cO3uQkdKdy3Cb1LlCJSF8zRs2eT8yuhdbSlR9nIt+TgQ92RUxiRrQm+/S7RARnMfCs5iuAjw==" + "license": "MIT" }, "node_modules/fastq": { "version": "1.15.0", - "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.15.0.tgz", - "integrity": "sha512-wBrocU2LCXXa+lWBt8RoIRD89Fi8OdABODa/kEnyeyjS5aZO5/GNvI5sEINADqP/h8M29UHTHUb53sUu5Ihqdw==", "dev": true, + "license": "ISC", "dependencies": { "reusify": "^1.0.4" } }, "node_modules/fetch-blob": { "version": "3.2.0", - "resolved": "https://registry.npmjs.org/fetch-blob/-/fetch-blob-3.2.0.tgz", - "integrity": "sha512-7yAQpD2UMJzLi1Dqv7qFYnPbaPx7ZfFK6PiIxQ4PfkGPyNyl2Ugx+a/umUonmKqjhM4DnfbMvdX6otXq83soQQ==", "funding": [ { "type": "github", @@ -7440,6 +6826,7 @@ "url": "https://paypal.me/jimmywarting" } ], + "license": "MIT", "dependencies": { "node-domexception": "^1.0.0", "web-streams-polyfill": "^3.0.3" @@ -7450,9 +6837,8 @@ }, "node_modules/file-entry-cache": { "version": "6.0.1", - "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-6.0.1.tgz", - "integrity": "sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==", "dev": true, + "license": "MIT", "peer": true, "dependencies": { "flat-cache": "^3.0.4" @@ -7463,8 +6849,7 @@ }, "node_modules/file-type": { "version": "18.0.0", - "resolved": "https://registry.npmjs.org/file-type/-/file-type-18.0.0.tgz", - "integrity": "sha512-jjMwFpnW8PKofLE/4ohlhqwDk5k0NC6iy0UHAJFKoY1fQeGMN0GDdLgHQrvCbSpMwbqzoCZhRI5dETCZna5qVA==", + "license": "MIT", "dependencies": { "readable-web-to-node-stream": "^3.0.2", "strtok3": "^7.0.0", @@ -7479,25 +6864,22 @@ }, "node_modules/filelist": { "version": "1.0.4", - "resolved": "https://registry.npmjs.org/filelist/-/filelist-1.0.4.tgz", - "integrity": "sha512-w1cEuf3S+DrLCQL7ET6kz+gmlJdbq9J7yXCSjK/OZCPA+qEN1WyF4ZAf0YYJa4/shHJra2t/d/r8SV4Ji+x+8Q==", + "license": "Apache-2.0", "dependencies": { "minimatch": "^5.0.1" } }, "node_modules/filesize": { "version": "10.0.6", - "resolved": "https://registry.npmjs.org/filesize/-/filesize-10.0.6.tgz", - "integrity": "sha512-rzpOZ4C9vMFDqOa6dNpog92CoLYjD79dnjLk2TYDDtImRIyLTOzqojCb05Opd1WuiWjs+fshhCgTd8cl7y5t+g==", + "license": "BSD-3-Clause", "engines": { "node": ">= 10.4.0" } }, "node_modules/fill-range": { "version": "7.0.1", - "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", - "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", "dev": true, + "license": "MIT", "dependencies": { "to-regex-range": "^5.0.1" }, @@ -7507,9 +6889,8 @@ }, "node_modules/find-cache-dir": { "version": "2.1.0", - "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-2.1.0.tgz", - "integrity": "sha512-Tq6PixE0w/VMFfCgbONnkiQIVol/JJL7nRMi20fqzA4NRs9AfeqMGeRdPi3wIhYkxjeBaWh2rxwapn5Tu3IqOQ==", "dev": true, + "license": "MIT", "dependencies": { "commondir": "^1.0.1", "make-dir": "^2.0.0", @@ -7521,9 +6902,8 @@ }, "node_modules/find-up": { "version": "5.0.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz", - "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==", "dev": true, + "license": "MIT", "dependencies": { "locate-path": "^6.0.0", "path-exists": "^4.0.0" @@ -7537,18 +6917,16 @@ }, "node_modules/flat": { "version": "5.0.2", - "resolved": "https://registry.npmjs.org/flat/-/flat-5.0.2.tgz", - "integrity": "sha512-b6suED+5/3rTpUBdG1gupIl8MPFCAMA0QXwmljLhvCUKcUvdE4gWky9zpuGCcXHOsz4J9wPGNWq6OKpmIzz3hQ==", "dev": true, + "license": "BSD-3-Clause", "bin": { "flat": "cli.js" } }, "node_modules/flat-cache": { "version": "3.0.4", - "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-3.0.4.tgz", - "integrity": "sha512-dm9s5Pw7Jc0GvMYbshN6zchCA9RgQlzzEZX3vylR9IqFfS8XciblUXOKfW6SiuJ0e13eDYZoZV5wdrev7P3Nwg==", "dev": true, + "license": "MIT", "peer": true, "dependencies": { "flatted": "^3.1.0", @@ -7560,25 +6938,21 @@ }, "node_modules/flatstr": { "version": "1.0.12", - "resolved": "https://registry.npmjs.org/flatstr/-/flatstr-1.0.12.tgz", - "integrity": "sha512-4zPxDyhCyiN2wIAtSLI6gc82/EjqZc1onI4Mz/l0pWrAlsSfYH/2ZIcU+e3oA2wDwbzIWNKwa23F8rh6+DRWkw==" + "license": "MIT" }, "node_modules/flatted": { "version": "3.2.7", - "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.2.7.tgz", - "integrity": "sha512-5nqDSxl8nn5BSNxyR3n4I6eDmbolI6WT+QqR547RwxQapgjQBmtktdP+HTBb/a/zLsbzERTONyUB5pefh5TtjQ==", "dev": true, + "license": "ISC", "peer": true }, "node_modules/fnv1a": { "version": "1.1.1", - "resolved": "https://registry.npmjs.org/fnv1a/-/fnv1a-1.1.1.tgz", - "integrity": "sha512-S2HviLR9UyNbt8R+vU6YeQtL8RliPwez9DQEVba5MAvN3Od+RSgKUSL2+qveOMt3owIeBukKoRu2enoOck5uag==" + "license": "MIT" }, "node_modules/form-data": { "version": "3.0.1", - "resolved": "https://registry.npmjs.org/form-data/-/form-data-3.0.1.tgz", - "integrity": "sha512-RHkBKtLWUVwd7SqRIvCZMEvAMoGUp0XU+seQiZejj0COz3RI3hWP4sCv3gZWWLjJTd7rGwcsF5eKZGii0r/hbg==", + "license": "MIT", "dependencies": { "asynckit": "^0.4.0", "combined-stream": "^1.0.8", @@ -7590,16 +6964,14 @@ }, "node_modules/form-data-encoder": { "version": "2.1.4", - "resolved": "https://registry.npmjs.org/form-data-encoder/-/form-data-encoder-2.1.4.tgz", - "integrity": "sha512-yDYSgNMraqvnxiEXO4hi88+YZxaHC6QKzb5N84iRCTDeRO7ZALpir/lVmf/uXUhnwUr2O4HU8s/n6x+yNjQkHw==", + "license": "MIT", "engines": { "node": ">= 14.17" } }, "node_modules/formdata-polyfill": { "version": "4.0.10", - "resolved": "https://registry.npmjs.org/formdata-polyfill/-/formdata-polyfill-4.0.10.tgz", - "integrity": "sha512-buewHzMvYL29jdeQTVILecSaZKnt/RJWjoZCF5OW60Z67/GmSLBkOFM7qh1PI3zFNtJbaZL5eQu1vLfazOwj4g==", + "license": "MIT", "dependencies": { "fetch-blob": "^3.1.2" }, @@ -7609,8 +6981,7 @@ }, "node_modules/formidable": { "version": "2.1.1", - "resolved": "https://registry.npmjs.org/formidable/-/formidable-2.1.1.tgz", - "integrity": "sha512-0EcS9wCFEzLvfiks7omJ+SiYJAiD+TzK4Pcw1UlUoGnhUxDcMKjt0P7x8wEb0u6OHu8Nb98WG3nxtlF5C7bvUQ==", + "license": "MIT", "dependencies": { "dezalgo": "^1.0.4", "hexoid": "^1.0.0", @@ -7623,8 +6994,7 @@ }, "node_modules/freeport-promise": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/freeport-promise/-/freeport-promise-2.0.0.tgz", - "integrity": "sha512-dwWpT1DdQcwrhmRwnDnPM/ZFny+FtzU+k50qF2eid3KxaQDsMiBrwo1i0G3qSugkN5db6Cb0zgfc68QeTOpEFg==", + "license": "Apache-2.0 OR MIT", "engines": { "node": ">=16.0.0", "npm": ">=7.0.0" @@ -7632,8 +7002,7 @@ }, "node_modules/fs-minipass": { "version": "2.1.0", - "resolved": "https://registry.npmjs.org/fs-minipass/-/fs-minipass-2.1.0.tgz", - "integrity": "sha512-V/JgOLFCS+R6Vcq0slCuaeWEdNC3ouDlJMNIsacH2VtALiu9mV4LPrHc5cDl8k5aw6J8jwgWWpiTo5RYhmIzvg==", + "license": "ISC", "dependencies": { "minipass": "^3.0.0" }, @@ -7643,8 +7012,7 @@ }, "node_modules/fs-minipass/node_modules/minipass": { "version": "3.3.6", - "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.3.6.tgz", - "integrity": "sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==", + "license": "ISC", "dependencies": { "yallist": "^4.0.0" }, @@ -7654,32 +7022,15 @@ }, "node_modules/fs.realpath": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", - "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==" - }, - "node_modules/fsevents": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz", - "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==", - "dev": true, - "hasInstallScript": true, - "optional": true, - "os": [ - "darwin" - ], - "engines": { - "node": "^8.16.0 || ^10.6.0 || >=11.0.0" - } + "license": "ISC" }, "node_modules/function-bind": { "version": "1.1.1", - "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", - "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==" + "license": "MIT" }, "node_modules/function-timeout": { "version": "0.1.1", - "resolved": "https://registry.npmjs.org/function-timeout/-/function-timeout-0.1.1.tgz", - "integrity": "sha512-0NVVC0TaP7dSTvn1yMiy6d6Q8gifzbvQafO46RtLG/kHJUBNd+pVRGOBoK44wNBvtSPUJRfdVvkFdD3p0xvyZg==", + "license": "MIT", "engines": { "node": ">=14.16" }, @@ -7689,13 +7040,11 @@ }, "node_modules/gar": { "version": "1.0.4", - "resolved": "https://registry.npmjs.org/gar/-/gar-1.0.4.tgz", - "integrity": "sha512-w4n9cPWyP7aHxKxYHFQMegj7WIAsL/YX/C4Bs5Rr8s1H9M1rNtRWRsw+ovYMkXDQ5S4ZbYHsHAPmevPjPgw44w==" + "license": "MIT" }, "node_modules/gauge": { "version": "3.0.2", - "resolved": "https://registry.npmjs.org/gauge/-/gauge-3.0.2.tgz", - "integrity": "sha512-+5J6MS/5XksCuXq++uFRsnUd7Ovu1XenbeuIuNRJxYWjgQbPuFhT14lAvsWfqfAmnwluf1OwMjz39HjfLPci0Q==", + "license": "ISC", "dependencies": { "aproba": "^1.0.3 || ^2.0.0", "color-support": "^1.1.2", @@ -7713,25 +7062,22 @@ }, "node_modules/gensync": { "version": "1.0.0-beta.2", - "resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz", - "integrity": "sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==", "dev": true, + "license": "MIT", "engines": { "node": ">=6.9.0" } }, "node_modules/get-caller-file": { "version": "2.0.5", - "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", - "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==", + "license": "ISC", "engines": { "node": "6.* || 8.* || >= 10.*" } }, "node_modules/get-folder-size": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/get-folder-size/-/get-folder-size-4.0.0.tgz", - "integrity": "sha512-Z6sv92povPRhGTNv1j8pMOzkXCcJOYWFTSrulKzoF9qbIRHXtR2Vfjw964jsWVMrIKnwHzm/0jl8IFONbBbEKw==", + "license": "MIT", "dependencies": { "gar": "^1.0.4" }, @@ -7744,8 +7090,7 @@ }, "node_modules/get-intrinsic": { "version": "1.1.3", - "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.1.3.tgz", - "integrity": "sha512-QJVz1Tj7MS099PevUG5jvnt9tSkXN8K14dxQlikJuPt4uD9hHAHjLyLBiLR5zELelBdD9QNRAXZzsJx0WaDL9A==", + "license": "MIT", "dependencies": { "function-bind": "^1.1.1", "has": "^1.0.3", @@ -7757,13 +7102,11 @@ }, "node_modules/get-iterator": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/get-iterator/-/get-iterator-2.0.0.tgz", - "integrity": "sha512-BDJawD5PU2gZv6Vlp8O28H4GnZcsr3h9gZUvnAP5xXP3WOy/QAoOsyMepSkw21jur+4t5Vppde72ChjhTIzxzg==" + "license": "MIT" }, "node_modules/get-stream": { "version": "6.0.1", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz", - "integrity": "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==", + "license": "MIT", "engines": { "node": ">=10" }, @@ -7773,8 +7116,7 @@ }, "node_modules/glob": { "version": "7.2.0", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.0.tgz", - "integrity": "sha512-lmLf6gtyrPq8tTjSmrO94wBeQbFR3HbLHbuyD69wuyQkImp2hWqMGB47OX65FBkPffO641IP9jWa1z4ivqG26Q==", + "license": "ISC", "dependencies": { "fs.realpath": "^1.0.0", "inflight": "^1.0.4", @@ -7792,9 +7134,8 @@ }, "node_modules/glob-parent": { "version": "5.1.2", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", - "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", "dev": true, + "license": "ISC", "dependencies": { "is-glob": "^4.0.1" }, @@ -7804,8 +7145,7 @@ }, "node_modules/glob/node_modules/brace-expansion": { "version": "1.1.11", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", - "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "license": "MIT", "dependencies": { "balanced-match": "^1.0.0", "concat-map": "0.0.1" @@ -7813,8 +7153,7 @@ }, "node_modules/glob/node_modules/minimatch": { "version": "3.1.2", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", - "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "license": "ISC", "dependencies": { "brace-expansion": "^1.1.7" }, @@ -7824,8 +7163,7 @@ }, "node_modules/global-dirs": { "version": "3.0.1", - "resolved": "https://registry.npmjs.org/global-dirs/-/global-dirs-3.0.1.tgz", - "integrity": "sha512-NBcGGFbBA9s1VzD41QXDG+3++t9Mn5t1FpLdhESY6oKY4gYTFpX4wO3sqGUa0Srjtbfj3szX0RnemmrVRUdULA==", + "license": "MIT", "dependencies": { "ini": "2.0.0" }, @@ -7838,26 +7176,23 @@ }, "node_modules/global-dirs/node_modules/ini": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ini/-/ini-2.0.0.tgz", - "integrity": "sha512-7PnF4oN3CvZF23ADhA5wRaYEQpJ8qygSkbtTXWBeXWXmEVRXK+1ITciHWwHhsjv1TmW0MgacIv6hEi5pX5NQdA==", + "license": "ISC", "engines": { "node": ">=10" } }, "node_modules/globals": { "version": "11.12.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz", - "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==", "dev": true, + "license": "MIT", "engines": { "node": ">=4" } }, "node_modules/globby": { "version": "11.1.0", - "resolved": "https://registry.npmjs.org/globby/-/globby-11.1.0.tgz", - "integrity": "sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==", "dev": true, + "license": "MIT", "dependencies": { "array-union": "^2.1.0", "dir-glob": "^3.0.1", @@ -7875,8 +7210,7 @@ }, "node_modules/got": { "version": "12.5.3", - "resolved": "https://registry.npmjs.org/got/-/got-12.5.3.tgz", - "integrity": "sha512-8wKnb9MGU8IPGRIo+/ukTy9XLJBwDiCpIf5TVzQ9Cpol50eMTpBq2GAuDsuDIz7hTYmZgMgC1e9ydr6kSDWs3w==", + "license": "MIT", "dependencies": { "@sindresorhus/is": "^5.2.0", "@szmarczak/http-timer": "^5.0.1", @@ -7899,20 +7233,17 @@ }, "node_modules/graceful-fs": { "version": "4.2.10", - "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.10.tgz", - "integrity": "sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA==" + "license": "ISC" }, "node_modules/grapheme-splitter": { "version": "1.0.4", - "resolved": "https://registry.npmjs.org/grapheme-splitter/-/grapheme-splitter-1.0.4.tgz", - "integrity": "sha512-bzh50DW9kTPM00T8y4o8vQg89Di9oLJVLW/KaOGIXJWP/iqCN6WKYkbNOF04vFLJhwcpYUh9ydh/+5vpOqV4YQ==", "dev": true, + "license": "MIT", "peer": true }, "node_modules/hamt-sharding": { "version": "3.0.2", - "resolved": "https://registry.npmjs.org/hamt-sharding/-/hamt-sharding-3.0.2.tgz", - "integrity": "sha512-f0DzBD2tSmLFdFsLAvOflIBqFPjerbA7BfmwO8mVho/5hXwgyyYhv+ijIzidQf/DpDX3bRjAQvhGoBFj+DBvPw==", + "license": "Apache-2.0 OR MIT", "dependencies": { "sparse-array": "^1.3.1", "uint8arrays": "^4.0.2" @@ -7924,9 +7255,8 @@ }, "node_modules/handlebars": { "version": "4.7.7", - "resolved": "https://registry.npmjs.org/handlebars/-/handlebars-4.7.7.tgz", - "integrity": "sha512-aAcXm5OAfE/8IXkcZvCepKU3VzW1/39Fb5ZuqMtgI/hT8X2YgoMvBY5dLhq/cpOvw7Lk1nK/UF71aLG/ZnVYRA==", "dev": true, + "license": "MIT", "dependencies": { "minimist": "^1.2.5", "neo-async": "^2.6.0", @@ -7945,8 +7275,7 @@ }, "node_modules/hapi-pino": { "version": "8.5.0", - "resolved": "https://registry.npmjs.org/hapi-pino/-/hapi-pino-8.5.0.tgz", - "integrity": "sha512-p0phuePalD8965r6mboCBLIMWRO2vQAx+VSnXhTKxnF/4Sf+dk8Uze7109w9QfhlvGMqvBTEF6SxGStObBB/Lw==", + "license": "MIT", "dependencies": { "@hapi/hoek": "^9.0.0", "abstract-logging": "^2.0.0", @@ -7956,8 +7285,7 @@ }, "node_modules/has": { "version": "1.0.3", - "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", - "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", + "license": "MIT", "dependencies": { "function-bind": "^1.1.1" }, @@ -7967,16 +7295,14 @@ }, "node_modules/has-flag": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", + "license": "MIT", "engines": { "node": ">=4" } }, "node_modules/has-symbols": { "version": "1.0.3", - "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.3.tgz", - "integrity": "sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==", + "license": "MIT", "engines": { "node": ">= 0.4" }, @@ -7986,13 +7312,11 @@ }, "node_modules/has-unicode": { "version": "2.0.1", - "resolved": "https://registry.npmjs.org/has-unicode/-/has-unicode-2.0.1.tgz", - "integrity": "sha512-8Rf9Y83NBReMnx0gFzA8JImQACstCYWUplepDa9xprwwtmgEZUF0h/i5xSA625zB/I37EtrswSST6OXxwaaIJQ==" + "license": "ISC" }, "node_modules/has-yarn": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-yarn/-/has-yarn-3.0.0.tgz", - "integrity": "sha512-IrsVwUHhEULx3R8f/aA8AHuEzAorplsab/v8HBzEiIukwq5i/EC+xmOW+HfP1OaDP+2JkgT1yILHN2O3UFIbcA==", + "license": "MIT", "engines": { "node": "^12.20.0 || ^14.13.1 || >=16.0.0" }, @@ -8002,22 +7326,19 @@ }, "node_modules/hashlru": { "version": "2.3.0", - "resolved": "https://registry.npmjs.org/hashlru/-/hashlru-2.3.0.tgz", - "integrity": "sha512-0cMsjjIC8I+D3M44pOQdsy0OHXGLVz6Z0beRuufhKa0KfaD2wGwAev6jILzXsd3/vpnNQJmWyZtIILqM1N+n5A==" + "license": "MIT" }, "node_modules/he": { "version": "1.2.0", - "resolved": "https://registry.npmjs.org/he/-/he-1.2.0.tgz", - "integrity": "sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==", "dev": true, + "license": "MIT", "bin": { "he": "bin/he" } }, "node_modules/header-case": { "version": "2.0.4", - "resolved": "https://registry.npmjs.org/header-case/-/header-case-2.0.4.tgz", - "integrity": "sha512-H/vuk5TEEVZwrR0lp2zed9OCo1uAILMlx0JEMgC26rzyJJ3N1v6XkwHHXJQdR2doSjcGPM6OKPYoJgf0plJ11Q==", + "license": "MIT", "dependencies": { "capital-case": "^1.0.4", "tslib": "^2.0.3" @@ -8025,21 +7346,18 @@ }, "node_modules/hexoid": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/hexoid/-/hexoid-1.0.0.tgz", - "integrity": "sha512-QFLV0taWQOZtvIRIAdBChesmogZrtuXvVWsFHZTk2SU+anspqZ2vMnoLg7IE1+Uk16N19APic1BuF8bC8c2m5g==", + "license": "MIT", "engines": { "node": ">=8" } }, "node_modules/http-cache-semantics": { "version": "4.1.0", - "resolved": "https://registry.npmjs.org/http-cache-semantics/-/http-cache-semantics-4.1.0.tgz", - "integrity": "sha512-carPklcUh7ROWRK7Cv27RPtdhYhUsela/ue5/jKzjegVvXDqM2ILE9Q2BGn9JZJh1g87cp56su/FgQSzcWS8cQ==" + "license": "BSD-2-Clause" }, "node_modules/http2-wrapper": { "version": "2.2.0", - "resolved": "https://registry.npmjs.org/http2-wrapper/-/http2-wrapper-2.2.0.tgz", - "integrity": "sha512-kZB0wxMo0sh1PehyjJUWRFEd99KC5TLjZ2cULC4f9iqJBAmKQQXEICjxl5iPJRwP40dpeHFqqhm7tYCvODpqpQ==", + "license": "MIT", "dependencies": { "quick-lru": "^5.1.1", "resolve-alpn": "^1.2.0" @@ -8050,8 +7368,7 @@ }, "node_modules/http2-wrapper/node_modules/quick-lru": { "version": "5.1.1", - "resolved": "https://registry.npmjs.org/quick-lru/-/quick-lru-5.1.1.tgz", - "integrity": "sha512-WuyALRjWPDGtt/wzJiadO5AXY+8hZ80hVpe6MyivgraREW751X3SbhRvG3eLKOYN+8VEvqLcf3wdnt44Z4S4SA==", + "license": "MIT", "engines": { "node": ">=10" }, @@ -8061,8 +7378,7 @@ }, "node_modules/https-proxy-agent": { "version": "5.0.1", - "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-5.0.1.tgz", - "integrity": "sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA==", + "license": "MIT", "dependencies": { "agent-base": "6", "debug": "4" @@ -8073,16 +7389,14 @@ }, "node_modules/human-signals": { "version": "3.0.1", - "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-3.0.1.tgz", - "integrity": "sha512-rQLskxnM/5OCldHo+wNXbpVgDn5A17CUoKX+7Sokwaknlq7CdSnphy0W39GU8dw59XiCXmFXDg4fRuckQRKewQ==", + "license": "Apache-2.0", "engines": { "node": ">=12.20.0" } }, "node_modules/iconv-lite": { "version": "0.6.3", - "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.3.tgz", - "integrity": "sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==", + "license": "MIT", "dependencies": { "safer-buffer": ">= 2.1.2 < 3.0.0" }, @@ -8092,8 +7406,6 @@ }, "node_modules/ieee754": { "version": "1.2.1", - "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz", - "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==", "funding": [ { "type": "github", @@ -8107,22 +7419,21 @@ "type": "consulting", "url": "https://feross.org/support" } - ] + ], + "license": "BSD-3-Clause" }, "node_modules/ignore": { "version": "5.2.4", - "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.2.4.tgz", - "integrity": "sha512-MAb38BcSbH0eHNBxn7ql2NH/kX33OkB3lZ1BNdh7ENeRChHTYsTvWrMubiIAMNS2llXEEgZ1MUOBtXChP3kaFQ==", "dev": true, + "license": "MIT", "engines": { "node": ">= 4" } }, "node_modules/import-fresh": { "version": "3.3.0", - "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz", - "integrity": "sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==", "dev": true, + "license": "MIT", "peer": true, "dependencies": { "parent-module": "^1.0.0", @@ -8137,24 +7448,21 @@ }, "node_modules/import-lazy": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/import-lazy/-/import-lazy-4.0.0.tgz", - "integrity": "sha512-rKtvo6a868b5Hu3heneU+L4yEQ4jYKLtjpnPeUdK7h0yzXGmyBTypknlkCvHFBqfX9YlorEiMM6Dnq/5atfHkw==", + "license": "MIT", "engines": { "node": ">=8" } }, "node_modules/imurmurhash": { "version": "0.1.4", - "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", - "integrity": "sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==", + "license": "MIT", "engines": { "node": ">=0.8.19" } }, "node_modules/inflight": { "version": "1.0.6", - "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", - "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==", + "license": "ISC", "dependencies": { "once": "^1.3.0", "wrappy": "1" @@ -8162,18 +7470,15 @@ }, "node_modules/inherits": { "version": "2.0.4", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", - "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==" + "license": "ISC" }, "node_modules/ini": { "version": "1.3.8", - "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.8.tgz", - "integrity": "sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==" + "license": "ISC" }, "node_modules/interface-blockstore": { "version": "3.0.2", - "resolved": "https://registry.npmjs.org/interface-blockstore/-/interface-blockstore-3.0.2.tgz", - "integrity": "sha512-lJXCyu3CwidOvNjkJARwCmoxl/HNX/mrfMxtyq5e/pVZA1SrlTj5lvb4LBYbfoynzewGUPcUU4DEUaXoLKliHQ==", + "license": "Apache-2.0 OR MIT", "dependencies": { "interface-store": "^3.0.0", "multiformats": "^10.0.0" @@ -8185,8 +7490,7 @@ }, "node_modules/interface-blockstore/node_modules/multiformats": { "version": "10.0.3", - "resolved": "https://registry.npmjs.org/multiformats/-/multiformats-10.0.3.tgz", - "integrity": "sha512-K2yGSmstS/oEmYiEIieHb53jJCaqp4ERPDQAYrm5sV3UUrVDZeshJQCK6GHAKyIGufU1vAcbS0PdAAZmC7Tzcw==", + "license": "Apache-2.0 OR MIT", "engines": { "node": ">=16.0.0", "npm": ">=7.0.0" @@ -8194,8 +7498,7 @@ }, "node_modules/interface-datastore": { "version": "7.0.3", - "resolved": "https://registry.npmjs.org/interface-datastore/-/interface-datastore-7.0.3.tgz", - "integrity": "sha512-6zUypd1LM2Rl8o58RgJ7stLHgqx5+9t0+XkUVAvjd3KkWCNKBknD7G+Zar5jpUGClS+IINRPTjH/8Xnc2HB39A==", + "license": "Apache-2.0 OR MIT", "dependencies": { "interface-store": "^3.0.0", "nanoid": "^4.0.0", @@ -8208,8 +7511,7 @@ }, "node_modules/interface-datastore/node_modules/nanoid": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-4.0.0.tgz", - "integrity": "sha512-IgBP8piMxe/gf73RTQx7hmnhwz0aaEXYakvqZyE302IXW3HyVNhdNGC+O2MwMAVhLEnvXlvKtGbtJf6wvHihCg==", + "license": "MIT", "bin": { "nanoid": "bin/nanoid.js" }, @@ -8219,8 +7521,7 @@ }, "node_modules/interface-store": { "version": "3.0.3", - "resolved": "https://registry.npmjs.org/interface-store/-/interface-store-3.0.3.tgz", - "integrity": "sha512-FihzZamIkSPHIFw7xZAvZ77DEOSTvHt/t3HvIG7pm8lmqDIUh8/PgDsez/4Aa2091bT0sqK4tTFBcKF9TOGhtQ==", + "license": "Apache-2.0 OR MIT", "engines": { "node": ">=16.0.0", "npm": ">=7.0.0" @@ -8228,8 +7529,7 @@ }, "node_modules/ip-regex": { "version": "5.0.0", - "resolved": "https://registry.npmjs.org/ip-regex/-/ip-regex-5.0.0.tgz", - "integrity": "sha512-fOCG6lhoKKakwv+C6KdsOnGvgXnmgfmp0myi3bcNwj3qfwPAxRKWEuFhvEFF7ceYIz6+1jRZ+yguLFAmUNPEfw==", + "license": "MIT", "engines": { "node": "^12.20.0 || ^14.13.1 || >=16.0.0" }, @@ -8239,16 +7539,14 @@ }, "node_modules/ipaddr.js": { "version": "2.0.1", - "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-2.0.1.tgz", - "integrity": "sha512-1qTgH9NG+IIJ4yfKs2e6Pp1bZg8wbDbKHT21HrLIeYBTRLgMYKnMTPAuI3Lcs61nfx5h1xlXnbJtH1kX5/d/ng==", + "license": "MIT", "engines": { "node": ">= 10" } }, "node_modules/ipfs": { "version": "0.65.0", - "resolved": "https://registry.npmjs.org/ipfs/-/ipfs-0.65.0.tgz", - "integrity": "sha512-VAee8AjNzx6HY5E/IltAu3hyylSqgpCxWp3ID09k3jUweBfzDHDo3k57W+NyZwfPh2fPneUBEzfycOv7x7dycA==", + "license": "Apache-2.0 OR MIT", "dependencies": { "@libp2p/logger": "^2.0.0", "ipfs-cli": "^0.15.0", @@ -8266,8 +7564,7 @@ }, "node_modules/ipfs-bitswap": { "version": "13.0.0", - "resolved": "https://registry.npmjs.org/ipfs-bitswap/-/ipfs-bitswap-13.0.0.tgz", - "integrity": "sha512-dTDRrXJmg27d/Z2V7bGo7zO6bPvLJrLpVyZldRSTUQgkd8pkrnM9Gs9S3hJyZS8n5BdFrGXBa4/tTMJwJ9d4lg==", + "license": "Apache-2.0 OR MIT", "dependencies": { "@libp2p/interface-connection": "^3.0.1", "@libp2p/interface-peer-id": "^1.0.4", @@ -8300,8 +7597,7 @@ }, "node_modules/ipfs-bitswap/node_modules/@libp2p/interface-peer-id": { "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@libp2p/interface-peer-id/-/interface-peer-id-1.1.2.tgz", - "integrity": "sha512-S5iyVzG2EUgxm4NLe8W4ya9kpKuGfHs7Wbbos0wOUB4GXsbIKgOOxIr4yf+xGFgtEBaoximvlLkpob6dn8VFgA==", + "license": "Apache-2.0 OR MIT", "dependencies": { "multiformats": "^10.0.0" }, @@ -8312,8 +7608,7 @@ }, "node_modules/ipfs-bitswap/node_modules/multiformats": { "version": "10.0.3", - "resolved": "https://registry.npmjs.org/multiformats/-/multiformats-10.0.3.tgz", - "integrity": "sha512-K2yGSmstS/oEmYiEIieHb53jJCaqp4ERPDQAYrm5sV3UUrVDZeshJQCK6GHAKyIGufU1vAcbS0PdAAZmC7Tzcw==", + "license": "Apache-2.0 OR MIT", "engines": { "node": ">=16.0.0", "npm": ">=7.0.0" @@ -8321,8 +7616,7 @@ }, "node_modules/ipfs-cli": { "version": "0.15.0", - "resolved": "https://registry.npmjs.org/ipfs-cli/-/ipfs-cli-0.15.0.tgz", - "integrity": "sha512-rZ+fAlVIwVpTNhzTQZuhuO/51ic2AQGWCZkrVy/4t7qxjOO19GrldfRRtD/aewjlMd3+P9ttwfXQboVzAWsqXw==", + "license": "Apache-2.0 OR MIT", "dependencies": { "@ipld/dag-cbor": "^8.0.0", "@ipld/dag-json": "^9.0.0", @@ -8362,8 +7656,7 @@ }, "node_modules/ipfs-cli/node_modules/multiformats": { "version": "10.0.3", - "resolved": "https://registry.npmjs.org/multiformats/-/multiformats-10.0.3.tgz", - "integrity": "sha512-K2yGSmstS/oEmYiEIieHb53jJCaqp4ERPDQAYrm5sV3UUrVDZeshJQCK6GHAKyIGufU1vAcbS0PdAAZmC7Tzcw==", + "license": "Apache-2.0 OR MIT", "engines": { "node": ">=16.0.0", "npm": ">=7.0.0" @@ -8371,8 +7664,7 @@ }, "node_modules/ipfs-core": { "version": "0.17.0", - "resolved": "https://registry.npmjs.org/ipfs-core/-/ipfs-core-0.17.0.tgz", - "integrity": "sha512-mngpgSIO14n3U2iZzjxUn/AQ8LVVxrN/VRRXbJArxtSJuz1anx2kgtemRaUZt4q5juWHjk8tLtVdNDlS0bXGkg==", + "license": "Apache-2.0 OR MIT", "dependencies": { "@chainsafe/libp2p-noise": "^10.0.0", "@ipld/car": "^5.0.0", @@ -8453,8 +7745,7 @@ }, "node_modules/ipfs-core-config": { "version": "0.6.0", - "resolved": "https://registry.npmjs.org/ipfs-core-config/-/ipfs-core-config-0.6.0.tgz", - "integrity": "sha512-ga2rzjH2vtZRsDir4zjVh+gi6zlGno/yjfHhQn9GYUcKUL0HQ/aBG7XcLw8w7KgVMc93VMVGqfM3ueEGGW9X4Q==", + "license": "Apache-2.0 OR MIT", "dependencies": { "@chainsafe/libp2p-gossipsub": "^4.0.0", "@libp2p/floodsub": "^5.0.0", @@ -8485,8 +7776,7 @@ }, "node_modules/ipfs-core-types": { "version": "0.13.0", - "resolved": "https://registry.npmjs.org/ipfs-core-types/-/ipfs-core-types-0.13.0.tgz", - "integrity": "sha512-IIKS9v2D5KIqReZMbyuCStI4FRyIbRA9nD3fji1KgKJPiic1N3iGe2jL4hy4Y3FQ30VbheWJ9jAROwMyvqxYNA==", + "license": "Apache-2.0 OR MIT", "dependencies": { "@ipld/dag-pb": "^3.0.0", "@libp2p/interface-keychain": "^1.0.3", @@ -8506,8 +7796,7 @@ }, "node_modules/ipfs-core-types/node_modules/@libp2p/interface-peer-id": { "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@libp2p/interface-peer-id/-/interface-peer-id-1.1.2.tgz", - "integrity": "sha512-S5iyVzG2EUgxm4NLe8W4ya9kpKuGfHs7Wbbos0wOUB4GXsbIKgOOxIr4yf+xGFgtEBaoximvlLkpob6dn8VFgA==", + "license": "Apache-2.0 OR MIT", "dependencies": { "multiformats": "^10.0.0" }, @@ -8518,8 +7807,7 @@ }, "node_modules/ipfs-core-types/node_modules/multiformats": { "version": "10.0.3", - "resolved": "https://registry.npmjs.org/multiformats/-/multiformats-10.0.3.tgz", - "integrity": "sha512-K2yGSmstS/oEmYiEIieHb53jJCaqp4ERPDQAYrm5sV3UUrVDZeshJQCK6GHAKyIGufU1vAcbS0PdAAZmC7Tzcw==", + "license": "Apache-2.0 OR MIT", "engines": { "node": ">=16.0.0", "npm": ">=7.0.0" @@ -8527,8 +7815,7 @@ }, "node_modules/ipfs-core-utils": { "version": "0.17.0", - "resolved": "https://registry.npmjs.org/ipfs-core-utils/-/ipfs-core-utils-0.17.0.tgz", - "integrity": "sha512-mZbQ9ZkLGGR988hO0iCsB6FXDb0fS0vYRue07Ia8O3ODdKjZ69Jx7zYoYqpjTQQCgEN6RrX98aCTOw+ifziGvw==", + "license": "Apache-2.0 OR MIT", "dependencies": { "@libp2p/logger": "^2.0.0", "@multiformats/multiaddr": "^11.0.0", @@ -8558,8 +7845,7 @@ }, "node_modules/ipfs-core-utils/node_modules/multiformats": { "version": "10.0.3", - "resolved": "https://registry.npmjs.org/multiformats/-/multiformats-10.0.3.tgz", - "integrity": "sha512-K2yGSmstS/oEmYiEIieHb53jJCaqp4ERPDQAYrm5sV3UUrVDZeshJQCK6GHAKyIGufU1vAcbS0PdAAZmC7Tzcw==", + "license": "Apache-2.0 OR MIT", "engines": { "node": ">=16.0.0", "npm": ">=7.0.0" @@ -8567,8 +7853,7 @@ }, "node_modules/ipfs-core-utils/node_modules/nanoid": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-4.0.0.tgz", - "integrity": "sha512-IgBP8piMxe/gf73RTQx7hmnhwz0aaEXYakvqZyE302IXW3HyVNhdNGC+O2MwMAVhLEnvXlvKtGbtJf6wvHihCg==", + "license": "MIT", "bin": { "nanoid": "bin/nanoid.js" }, @@ -8578,8 +7863,7 @@ }, "node_modules/ipfs-core/node_modules/@libp2p/interface-peer-id": { "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@libp2p/interface-peer-id/-/interface-peer-id-1.1.2.tgz", - "integrity": "sha512-S5iyVzG2EUgxm4NLe8W4ya9kpKuGfHs7Wbbos0wOUB4GXsbIKgOOxIr4yf+xGFgtEBaoximvlLkpob6dn8VFgA==", + "license": "Apache-2.0 OR MIT", "dependencies": { "multiformats": "^10.0.0" }, @@ -8590,8 +7874,7 @@ }, "node_modules/ipfs-core/node_modules/multiformats": { "version": "10.0.3", - "resolved": "https://registry.npmjs.org/multiformats/-/multiformats-10.0.3.tgz", - "integrity": "sha512-K2yGSmstS/oEmYiEIieHb53jJCaqp4ERPDQAYrm5sV3UUrVDZeshJQCK6GHAKyIGufU1vAcbS0PdAAZmC7Tzcw==", + "license": "Apache-2.0 OR MIT", "engines": { "node": ">=16.0.0", "npm": ">=7.0.0" @@ -8599,8 +7882,7 @@ }, "node_modules/ipfs-daemon": { "version": "0.15.0", - "resolved": "https://registry.npmjs.org/ipfs-daemon/-/ipfs-daemon-0.15.0.tgz", - "integrity": "sha512-I/KVYr6dUH6vFfFMqtmBhRl/V+18y5WPYBoQsHe1YrwdNQszj6GnSc6/etH+I8phD+J/QFZHqoZhoVw2kNup3A==", + "license": "Apache-2.0 OR MIT", "dependencies": { "@libp2p/logger": "^2.0.0", "@libp2p/webrtc-star": "^5.0.2", @@ -8625,8 +7907,7 @@ }, "node_modules/ipfs-grpc-protocol": { "version": "0.7.0", - "resolved": "https://registry.npmjs.org/ipfs-grpc-protocol/-/ipfs-grpc-protocol-0.7.0.tgz", - "integrity": "sha512-T0+nvF1H83hbxmhZ/KKpm05MpvP7/mePdNvz/6h1mPXXOsfXdB3lKjcJbhbwegeKndDSjbnBWGOGN8Ql8x/1lQ==", + "license": "Apache-2.0 OR MIT", "engines": { "node": ">=16.0.0", "npm": ">=7.0.0" @@ -8634,8 +7915,7 @@ }, "node_modules/ipfs-grpc-server": { "version": "0.11.0", - "resolved": "https://registry.npmjs.org/ipfs-grpc-server/-/ipfs-grpc-server-0.11.0.tgz", - "integrity": "sha512-nqZ74hZE3GV2LEmNypmfvPDc1ZvyrPoSGNPZI9OVML67+ZjtRwwp+wZYVaHpeDrgY8p2ihRu0jZeH5/2m4XZhw==", + "license": "Apache-2.0 OR MIT", "dependencies": { "@grpc/grpc-js": "^1.1.8", "@libp2p/logger": "^2.0.0", @@ -8662,8 +7942,7 @@ }, "node_modules/ipfs-grpc-server/node_modules/nanoid": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-4.0.0.tgz", - "integrity": "sha512-IgBP8piMxe/gf73RTQx7hmnhwz0aaEXYakvqZyE302IXW3HyVNhdNGC+O2MwMAVhLEnvXlvKtGbtJf6wvHihCg==", + "license": "MIT", "bin": { "nanoid": "bin/nanoid.js" }, @@ -8673,8 +7952,7 @@ }, "node_modules/ipfs-http-client": { "version": "59.0.0", - "resolved": "https://registry.npmjs.org/ipfs-http-client/-/ipfs-http-client-59.0.0.tgz", - "integrity": "sha512-cFMU8ykKgxK2/uAw4Hthy2Kd+UuoFBno89DOdUqHYvmilKrmfV5vrYwviVWLYveIpkkaj8FB5x4TBxsiU99y0Q==", + "license": "Apache-2.0 OR MIT", "dependencies": { "@ipld/dag-cbor": "^8.0.0", "@ipld/dag-json": "^9.0.0", @@ -8703,8 +7981,7 @@ }, "node_modules/ipfs-http-client/node_modules/multiformats": { "version": "10.0.3", - "resolved": "https://registry.npmjs.org/multiformats/-/multiformats-10.0.3.tgz", - "integrity": "sha512-K2yGSmstS/oEmYiEIieHb53jJCaqp4ERPDQAYrm5sV3UUrVDZeshJQCK6GHAKyIGufU1vAcbS0PdAAZmC7Tzcw==", + "license": "Apache-2.0 OR MIT", "engines": { "node": ">=16.0.0", "npm": ">=7.0.0" @@ -8712,8 +7989,7 @@ }, "node_modules/ipfs-http-gateway": { "version": "0.12.0", - "resolved": "https://registry.npmjs.org/ipfs-http-gateway/-/ipfs-http-gateway-0.12.0.tgz", - "integrity": "sha512-x2kVh/dh/c/9mmYoNXp2ay21qDe4jwPhyZ36frRT0NMY+7Q9G5vgzwwFV1qWwBobvvlJeQEntO8vvfBvGtfQmQ==", + "license": "Apache-2.0 OR MIT", "dependencies": { "@hapi/ammo": "^5.0.1", "@hapi/boom": "^9.1.0", @@ -8737,8 +8013,7 @@ }, "node_modules/ipfs-http-gateway/node_modules/multiformats": { "version": "10.0.3", - "resolved": "https://registry.npmjs.org/multiformats/-/multiformats-10.0.3.tgz", - "integrity": "sha512-K2yGSmstS/oEmYiEIieHb53jJCaqp4ERPDQAYrm5sV3UUrVDZeshJQCK6GHAKyIGufU1vAcbS0PdAAZmC7Tzcw==", + "license": "Apache-2.0 OR MIT", "engines": { "node": ">=16.0.0", "npm": ">=7.0.0" @@ -8746,8 +8021,7 @@ }, "node_modules/ipfs-http-response": { "version": "5.0.0", - "resolved": "https://registry.npmjs.org/ipfs-http-response/-/ipfs-http-response-5.0.0.tgz", - "integrity": "sha512-UxuaPbHBuMD56jHS2nek2N3+GN1P/cDKYg/ZbwA2R/cCWCvEVPWnes01tchej00uFUoZXZbfi33fP6D0OJreHw==", + "license": "Apache-2.0 OR MIT", "dependencies": { "@libp2p/logger": "^2.0.0", "ejs": "^3.1.6", @@ -8767,8 +8041,7 @@ }, "node_modules/ipfs-http-server": { "version": "0.14.0", - "resolved": "https://registry.npmjs.org/ipfs-http-server/-/ipfs-http-server-0.14.0.tgz", - "integrity": "sha512-IWN6ckpJVrJfr6el/AeXJHvLjzgPidzWqiI5fTp5bZNonbwG6pbk/y2SDrN9oClGNDbU3TeuOxeO1uQqOVZDnw==", + "license": "Apache-2.0 OR MIT", "dependencies": { "@hapi/boom": "^9.1.0", "@hapi/content": "^5.0.2", @@ -8815,8 +8088,7 @@ }, "node_modules/ipfs-http-server/node_modules/multiformats": { "version": "10.0.3", - "resolved": "https://registry.npmjs.org/multiformats/-/multiformats-10.0.3.tgz", - "integrity": "sha512-K2yGSmstS/oEmYiEIieHb53jJCaqp4ERPDQAYrm5sV3UUrVDZeshJQCK6GHAKyIGufU1vAcbS0PdAAZmC7Tzcw==", + "license": "Apache-2.0 OR MIT", "engines": { "node": ">=16.0.0", "npm": ">=7.0.0" @@ -8824,8 +8096,7 @@ }, "node_modules/ipfs-repo": { "version": "16.0.0", - "resolved": "https://registry.npmjs.org/ipfs-repo/-/ipfs-repo-16.0.0.tgz", - "integrity": "sha512-CYlHO3MK1CNfuCkRyLxXB9pKj2nx4yomH92DilhwDW+Et4rQ/8279RgmEh5nFNf7BgvIvYPE+3hVErGbVytS5Q==", + "license": "Apache-2.0 OR MIT", "dependencies": { "@ipld/dag-pb": "^3.0.0", "bytes": "^3.1.0", @@ -8862,8 +8133,7 @@ }, "node_modules/ipfs-repo-migrations": { "version": "14.0.1", - "resolved": "https://registry.npmjs.org/ipfs-repo-migrations/-/ipfs-repo-migrations-14.0.1.tgz", - "integrity": "sha512-wE22g05hzxegCWMhNj7deagCLsKPcNf8KmK1QN4WMob0kuZ4kDxCg7fusM68tGrOnhE+Ll/AVHseFlzmoU/ZbQ==", + "license": "Apache-2.0 OR MIT", "dependencies": { "@ipld/dag-pb": "^3.0.0", "@multiformats/multiaddr": "^11.0.0", @@ -8886,8 +8156,7 @@ }, "node_modules/ipfs-repo-migrations/node_modules/multiformats": { "version": "10.0.3", - "resolved": "https://registry.npmjs.org/multiformats/-/multiformats-10.0.3.tgz", - "integrity": "sha512-K2yGSmstS/oEmYiEIieHb53jJCaqp4ERPDQAYrm5sV3UUrVDZeshJQCK6GHAKyIGufU1vAcbS0PdAAZmC7Tzcw==", + "license": "Apache-2.0 OR MIT", "engines": { "node": ">=16.0.0", "npm": ">=7.0.0" @@ -8895,8 +8164,7 @@ }, "node_modules/ipfs-repo/node_modules/it-parallel-batch": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/it-parallel-batch/-/it-parallel-batch-2.0.0.tgz", - "integrity": "sha512-RWP3h1y1OW3kzP633640mqgcfA9rlGGv4XV7EIsdU8VzAv+hRbpibqFk8sUyN/tNjrcFcYNkGBTE0/0FYf65IQ==", + "license": "Apache-2.0 OR MIT", "dependencies": { "it-batch": "^2.0.0" }, @@ -8907,8 +8175,7 @@ }, "node_modules/ipfs-repo/node_modules/multiformats": { "version": "10.0.3", - "resolved": "https://registry.npmjs.org/multiformats/-/multiformats-10.0.3.tgz", - "integrity": "sha512-K2yGSmstS/oEmYiEIieHb53jJCaqp4ERPDQAYrm5sV3UUrVDZeshJQCK6GHAKyIGufU1vAcbS0PdAAZmC7Tzcw==", + "license": "Apache-2.0 OR MIT", "engines": { "node": ">=16.0.0", "npm": ">=7.0.0" @@ -8916,8 +8183,7 @@ }, "node_modules/ipfs-unixfs": { "version": "8.0.0", - "resolved": "https://registry.npmjs.org/ipfs-unixfs/-/ipfs-unixfs-8.0.0.tgz", - "integrity": "sha512-PAHtfyjiFs2PZBbeft5QRyXpVOvZ2zsGqID+zVRla7fjC1zRTqJkrGY9h6dF03ldGv/mSmFlNZh479qPC6aZKg==", + "license": "Apache-2.0 OR MIT", "dependencies": { "err-code": "^3.0.1", "protobufjs": "^7.0.0" @@ -8929,8 +8195,7 @@ }, "node_modules/ipfs-unixfs-exporter": { "version": "9.0.2", - "resolved": "https://registry.npmjs.org/ipfs-unixfs-exporter/-/ipfs-unixfs-exporter-9.0.2.tgz", - "integrity": "sha512-CoktRT+MgS3H06/IXrmtJpuLQcux7ff30y0ndDRYnZLCvnqD2Fr3YicoY1sDb8JluIPZ70Pmwovb6Du4NfKk+w==", + "license": "Apache-2.0 OR MIT", "dependencies": { "@ipld/dag-cbor": "^8.0.0", "@ipld/dag-pb": "^3.0.0", @@ -8955,8 +8220,7 @@ }, "node_modules/ipfs-unixfs-exporter/node_modules/multiformats": { "version": "10.0.3", - "resolved": "https://registry.npmjs.org/multiformats/-/multiformats-10.0.3.tgz", - "integrity": "sha512-K2yGSmstS/oEmYiEIieHb53jJCaqp4ERPDQAYrm5sV3UUrVDZeshJQCK6GHAKyIGufU1vAcbS0PdAAZmC7Tzcw==", + "license": "Apache-2.0 OR MIT", "engines": { "node": ">=16.0.0", "npm": ">=7.0.0" @@ -8964,8 +8228,7 @@ }, "node_modules/ipfs-unixfs-importer": { "version": "11.0.1", - "resolved": "https://registry.npmjs.org/ipfs-unixfs-importer/-/ipfs-unixfs-importer-11.0.1.tgz", - "integrity": "sha512-e7Ca5zj8MMcQAqQR1YQrEicgZEiUf0xoBLMmu/6g/PtZ0U1oZBFsaIHcbDIjjjrEXxxhK6IcAvqSfqqUBnGfBg==", + "license": "Apache-2.0 OR MIT", "dependencies": { "@ipld/dag-pb": "^3.0.0", "@multiformats/murmur3": "^2.0.0", @@ -8990,8 +8253,7 @@ }, "node_modules/ipfs-unixfs-importer/node_modules/it-parallel-batch": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/it-parallel-batch/-/it-parallel-batch-2.0.0.tgz", - "integrity": "sha512-RWP3h1y1OW3kzP633640mqgcfA9rlGGv4XV7EIsdU8VzAv+hRbpibqFk8sUyN/tNjrcFcYNkGBTE0/0FYf65IQ==", + "license": "Apache-2.0 OR MIT", "dependencies": { "it-batch": "^2.0.0" }, @@ -9002,8 +8264,7 @@ }, "node_modules/ipfs-unixfs-importer/node_modules/multiformats": { "version": "10.0.3", - "resolved": "https://registry.npmjs.org/multiformats/-/multiformats-10.0.3.tgz", - "integrity": "sha512-K2yGSmstS/oEmYiEIieHb53jJCaqp4ERPDQAYrm5sV3UUrVDZeshJQCK6GHAKyIGufU1vAcbS0PdAAZmC7Tzcw==", + "license": "Apache-2.0 OR MIT", "engines": { "node": ">=16.0.0", "npm": ">=7.0.0" @@ -9011,8 +8272,7 @@ }, "node_modules/ipfs-utils": { "version": "9.0.9", - "resolved": "https://registry.npmjs.org/ipfs-utils/-/ipfs-utils-9.0.9.tgz", - "integrity": "sha512-auKjNok5bFhid1JmnXn+QFKaGrKrxgbUpVD0v4XkIKIH7kCR9zWOihErPKBDfJXfF8YycQ+SvPgX1XOpDgUC5Q==", + "license": "MIT", "dependencies": { "any-signal": "^3.0.0", "buffer": "^6.0.1", @@ -9032,8 +8292,7 @@ }, "node_modules/ipfs-utils/node_modules/native-fetch": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/native-fetch/-/native-fetch-3.0.0.tgz", - "integrity": "sha512-G3Z7vx0IFb/FQ4JxvtqGABsOTIqRWvgQz6e+erkB+JJD6LrszQtMozEHI4EkmgZQvnGHrpLVzUWk7t4sJCIkVw==", + "license": "MIT", "peerDependencies": { "node-fetch": "*" } @@ -9050,8 +8309,7 @@ }, "node_modules/ipfs/node_modules/semver": { "version": "7.3.8", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.8.tgz", - "integrity": "sha512-NB1ctGL5rlHrPJtFDVIVzTyQylMLu9N9VICA6HSFJo8MCGVTMW6gfpicwKmmK/dAjTOrqu5l63JJOpDSrAis3A==", + "license": "ISC", "dependencies": { "lru-cache": "^6.0.0" }, @@ -9064,8 +8322,7 @@ }, "node_modules/ipns": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/ipns/-/ipns-4.0.0.tgz", - "integrity": "sha512-I+it3SkkQ8oYF7tT1Yphipau+3KEyJ72r6BDNWaVlQM+nTu28Zz1v5NoQCH9lqkh2nUpW02nSFOQJ3S4lqAyzg==", + "license": "Apache-2.0 OR MIT", "dependencies": { "@libp2p/crypto": "^1.0.0", "@libp2p/interface-dht": "^1.0.1", @@ -9088,8 +8345,7 @@ }, "node_modules/ipns/node_modules/@libp2p/interface-peer-id": { "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@libp2p/interface-peer-id/-/interface-peer-id-1.1.2.tgz", - "integrity": "sha512-S5iyVzG2EUgxm4NLe8W4ya9kpKuGfHs7Wbbos0wOUB4GXsbIKgOOxIr4yf+xGFgtEBaoximvlLkpob6dn8VFgA==", + "license": "Apache-2.0 OR MIT", "dependencies": { "multiformats": "^10.0.0" }, @@ -9100,8 +8356,7 @@ }, "node_modules/ipns/node_modules/multiformats": { "version": "10.0.3", - "resolved": "https://registry.npmjs.org/multiformats/-/multiformats-10.0.3.tgz", - "integrity": "sha512-K2yGSmstS/oEmYiEIieHb53jJCaqp4ERPDQAYrm5sV3UUrVDZeshJQCK6GHAKyIGufU1vAcbS0PdAAZmC7Tzcw==", + "license": "Apache-2.0 OR MIT", "engines": { "node": ">=16.0.0", "npm": ">=7.0.0" @@ -9109,9 +8364,8 @@ }, "node_modules/is-binary-path": { "version": "2.1.0", - "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", - "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", "dev": true, + "license": "MIT", "dependencies": { "binary-extensions": "^2.0.0" }, @@ -9121,8 +8375,6 @@ }, "node_modules/is-buffer": { "version": "2.0.5", - "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-2.0.5.tgz", - "integrity": "sha512-i2R6zNFDwgEHJyQUtJEk0XFi1i0dPFn/oqjK3/vPCcDeJvW5NQ83V8QbicfF1SupOaB0h8ntgBC2YiE7dfyctQ==", "funding": [ { "type": "github", @@ -9137,14 +8389,14 @@ "url": "https://feross.org/support" } ], + "license": "MIT", "engines": { "node": ">=4" } }, "node_modules/is-ci": { "version": "3.0.1", - "resolved": "https://registry.npmjs.org/is-ci/-/is-ci-3.0.1.tgz", - "integrity": "sha512-ZYvCgrefwqoQ6yTyYUbQu64HsITZ3NfKX1lzaEYdkTDcfKzzCI/wthRRYKkdjHKFVgNiXKAKm65Zo1pk2as/QQ==", + "license": "MIT", "dependencies": { "ci-info": "^3.2.0" }, @@ -9154,36 +8406,31 @@ }, "node_modules/is-domain-name": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-domain-name/-/is-domain-name-1.0.1.tgz", - "integrity": "sha512-52ToNggHmkZGPl8yLFNrk+cKHUUnkhS0l2jh+yMLq6kj9C5IMLSztvJsW5WO5eMy0OS0jdu4o2tptT9dN0hAFg==" + "license": "ISC" }, "node_modules/is-electron": { "version": "2.2.1", - "resolved": "https://registry.npmjs.org/is-electron/-/is-electron-2.2.1.tgz", - "integrity": "sha512-r8EEQQsqT+Gn0aXFx7lTFygYQhILLCB+wn0WCDL5LZRINeLH/Rvw1j2oKodELLXYNImQ3CRlVsY8wW4cGOsyuw==" + "license": "MIT" }, "node_modules/is-extglob": { "version": "2.1.1", - "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", - "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", "dev": true, + "license": "MIT", "engines": { "node": ">=0.10.0" } }, "node_modules/is-fullwidth-code-point": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", - "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", + "license": "MIT", "engines": { "node": ">=8" } }, "node_modules/is-glob": { "version": "4.0.3", - "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", - "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", "dev": true, + "license": "MIT", "dependencies": { "is-extglob": "^2.1.1" }, @@ -9193,8 +8440,7 @@ }, "node_modules/is-installed-globally": { "version": "0.4.0", - "resolved": "https://registry.npmjs.org/is-installed-globally/-/is-installed-globally-0.4.0.tgz", - "integrity": "sha512-iwGqO3J21aaSkC7jWnHP/difazwS7SFeIqxv6wEtLU8Y5KlzFTjyqcSIT0d8s4+dDhKytsk9PJZ2BkS5eZwQRQ==", + "license": "MIT", "dependencies": { "global-dirs": "^3.0.0", "is-path-inside": "^3.0.2" @@ -9208,8 +8454,7 @@ }, "node_modules/is-ip": { "version": "5.0.0", - "resolved": "https://registry.npmjs.org/is-ip/-/is-ip-5.0.0.tgz", - "integrity": "sha512-uhmKwcdWJ1nTmBdoBxdHilfJs4qdLBIvVHKRels2+UCZmfcfefuQWziadaYLpN7t/bUrJOjJHv+R1di1q7Q1HQ==", + "license": "MIT", "dependencies": { "ip-regex": "^5.0.0", "super-regex": "^0.2.0" @@ -9223,8 +8468,7 @@ }, "node_modules/is-ipfs": { "version": "7.0.3", - "resolved": "https://registry.npmjs.org/is-ipfs/-/is-ipfs-7.0.3.tgz", - "integrity": "sha512-IwjmN5DYrWQgk75dPX9WOFDbGpStJg6SLMLXXlxwpI3/SnwAIz3PwrdnxB+s2k+RjOTn9ueFIbGWxF2VMUYmLQ==", + "license": "Apache-2.0 OR MIT", "dependencies": { "@multiformats/mafmt": "^11.0.3", "@multiformats/multiaddr": "^11.0.0", @@ -9239,8 +8483,7 @@ }, "node_modules/is-ipfs/node_modules/multiformats": { "version": "10.0.3", - "resolved": "https://registry.npmjs.org/multiformats/-/multiformats-10.0.3.tgz", - "integrity": "sha512-K2yGSmstS/oEmYiEIieHb53jJCaqp4ERPDQAYrm5sV3UUrVDZeshJQCK6GHAKyIGufU1vAcbS0PdAAZmC7Tzcw==", + "license": "Apache-2.0 OR MIT", "engines": { "node": ">=16.0.0", "npm": ">=7.0.0" @@ -9248,13 +8491,11 @@ }, "node_modules/is-loopback-addr": { "version": "2.0.1", - "resolved": "https://registry.npmjs.org/is-loopback-addr/-/is-loopback-addr-2.0.1.tgz", - "integrity": "sha512-SEsepLbdWFb13B6U0tt6dYcUM0iK/U7XOC43N70Z4Qb88WpNtp+ospyNI9ddpqncs7Z7brAEsVBTQpaqSNntIw==" + "license": "MIT" }, "node_modules/is-npm": { "version": "6.0.0", - "resolved": "https://registry.npmjs.org/is-npm/-/is-npm-6.0.0.tgz", - "integrity": "sha512-JEjxbSmtPSt1c8XTkVrlujcXdKV1/tvuQ7GwKcAlyiVLeYFQ2VHat8xfrDJsIkhCdF/tZ7CiIR3sy141c6+gPQ==", + "license": "MIT", "engines": { "node": "^12.20.0 || ^14.13.1 || >=16.0.0" }, @@ -9264,42 +8505,37 @@ }, "node_modules/is-number": { "version": "7.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", - "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", "dev": true, + "license": "MIT", "engines": { "node": ">=0.12.0" } }, "node_modules/is-obj": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-obj/-/is-obj-2.0.0.tgz", - "integrity": "sha512-drqDG3cbczxxEJRoOXcOjtdp1J/lyp1mNn0xaznRs8+muBhgQcrnbspox5X5fOw0HnMnbfDzvnEMEtqDEJEo8w==", + "license": "MIT", "engines": { "node": ">=8" } }, "node_modules/is-path-inside": { "version": "3.0.3", - "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-3.0.3.tgz", - "integrity": "sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==", + "license": "MIT", "engines": { "node": ">=8" } }, "node_modules/is-plain-obj": { "version": "2.1.0", - "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-2.1.0.tgz", - "integrity": "sha512-YWnfyRwxL/+SsrWYfOpUtz5b3YD+nyfkHvjbcanzk8zgyO4ASD67uVMRt8k5bM4lLMDnXfriRhOpemw+NfT1eA==", + "license": "MIT", "engines": { "node": ">=8" } }, "node_modules/is-plain-object": { "version": "2.0.4", - "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz", - "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==", "dev": true, + "license": "MIT", "dependencies": { "isobject": "^3.0.1" }, @@ -9309,8 +8545,7 @@ }, "node_modules/is-regexp": { "version": "3.1.0", - "resolved": "https://registry.npmjs.org/is-regexp/-/is-regexp-3.1.0.tgz", - "integrity": "sha512-rbku49cWloU5bSMI+zaRaXdQHXnthP6DZ/vLnfdSKyL4zUzuWnomtOEiZZOd+ioQ+avFo/qau3KPTc7Fjy1uPA==", + "license": "MIT", "engines": { "node": ">=12" }, @@ -9320,8 +8555,7 @@ }, "node_modules/is-stream": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-3.0.0.tgz", - "integrity": "sha512-LnQR4bZ9IADDRSkvpqMGvt/tEJWclzklNgSw48V5EAaAeDd6qGvN8ei6k5p0tvxSR171VmGyHuTiAOfxAbr8kA==", + "license": "MIT", "engines": { "node": "^12.20.0 || ^14.13.1 || >=16.0.0" }, @@ -9331,14 +8565,12 @@ }, "node_modules/is-typedarray": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz", - "integrity": "sha512-cyA56iCMHAh5CdzjJIa4aohJyeO1YbwLi3Jc35MmRU6poroFjIGZzUzupGiRPOjgHg9TLu43xbpwXk523fMxKA==" + "license": "MIT" }, "node_modules/is-unicode-supported": { "version": "0.1.0", - "resolved": "https://registry.npmjs.org/is-unicode-supported/-/is-unicode-supported-0.1.0.tgz", - "integrity": "sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw==", "dev": true, + "license": "MIT", "engines": { "node": ">=10" }, @@ -9348,36 +8580,31 @@ }, "node_modules/is-yarn-global": { "version": "0.4.1", - "resolved": "https://registry.npmjs.org/is-yarn-global/-/is-yarn-global-0.4.1.tgz", - "integrity": "sha512-/kppl+R+LO5VmhYSEWARUFjodS25D68gvj8W7z0I7OWhUla5xWu8KL6CtB2V0R6yqhnRgbcaREMr4EEM6htLPQ==", + "license": "MIT", "engines": { "node": ">=12" } }, "node_modules/isarray": { "version": "0.0.1", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", - "integrity": "sha512-D2S+3GLxWH+uhrNEcoh/fnmYeP8E8/zHl644d/jdA0g2uyXvy3sb0qxotE+ne0LtccHknQzWwZEzhak7oJ0COQ==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/isexe": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", - "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==" + "license": "ISC" }, "node_modules/iso-constants": { "version": "0.1.2", - "resolved": "https://registry.npmjs.org/iso-constants/-/iso-constants-0.1.2.tgz", - "integrity": "sha512-OTCM5ZCQsHBCI4Wdu4tSxvDIkmDHd5EwJDps5mKqnQnWJSKlnwMs3EDZ4n3Fh1tmkWkDlyd2vCDbEYuPbyrUNQ==", "hasInstallScript": true, + "license": "MIT", "engines": { "node": ">=10" } }, "node_modules/iso-random-stream": { "version": "2.0.2", - "resolved": "https://registry.npmjs.org/iso-random-stream/-/iso-random-stream-2.0.2.tgz", - "integrity": "sha512-yJvs+Nnelic1L2vH2JzWvvPQFA4r7kSTnpST/+LkAQjSz0hos2oqLD+qIVi9Qk38Hoe7mNDt3j0S27R58MVjLQ==", + "license": "MIT", "dependencies": { "events": "^3.3.0", "readable-stream": "^3.4.0" @@ -9388,8 +8615,7 @@ }, "node_modules/iso-random-stream/node_modules/readable-stream": { "version": "3.6.0", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", - "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", + "license": "MIT", "dependencies": { "inherits": "^2.0.3", "string_decoder": "^1.1.1", @@ -9401,25 +8627,22 @@ }, "node_modules/iso-url": { "version": "1.2.1", - "resolved": "https://registry.npmjs.org/iso-url/-/iso-url-1.2.1.tgz", - "integrity": "sha512-9JPDgCN4B7QPkLtYAAOrEuAWvP9rWvR5offAr0/SeF046wIkglqH3VXgYYP6NcsKslH80UIVgmPqNe3j7tG2ng==", + "license": "MIT", "engines": { "node": ">=12" } }, "node_modules/isobject": { "version": "3.0.1", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", - "integrity": "sha512-WhB9zCku7EGTj/HQQRz5aUQEUeoQZH2bWcltRErOpymJ4boYE6wL9Tbr23krRPSZ+C5zqNSrSw+Cc7sZZ4b7vg==", "dev": true, + "license": "MIT", "engines": { "node": ">=0.10.0" } }, "node_modules/it-all": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/it-all/-/it-all-2.0.0.tgz", - "integrity": "sha512-I/yi9ogTY59lFxtfsDSlI9w9QZtC/5KJt6g7CPPBJJh2xql2ZS7Ghcp9hoqDDbc4QfwQvtx8Loy0zlKQ8H5gFg==", + "license": "Apache-2.0 OR MIT", "engines": { "node": ">=16.0.0", "npm": ">=7.0.0" @@ -9427,8 +8650,7 @@ }, "node_modules/it-batch": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/it-batch/-/it-batch-2.0.0.tgz", - "integrity": "sha512-kh30J83cNGCXuH48+meNLSCjkhRzvZyySgiHJ+Vz0ch/YyQ/XgYSCQhbx2a2VbxhvDdYZBoKiI3x7h14ReYFcg==", + "license": "Apache-2.0 OR MIT", "engines": { "node": ">=16.0.0", "npm": ">=7.0.0" @@ -9436,8 +8658,7 @@ }, "node_modules/it-batched-bytes": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/it-batched-bytes/-/it-batched-bytes-1.0.0.tgz", - "integrity": "sha512-OfztV9UHQmoZ6u5F4y+YOI1Z+5JAhkv3Gexc1a0B7ikcVXc3PFSKlEnHv79u+Yp/h23o3tsF9hHAhuqgHCYT2Q==", + "license": "Apache-2.0 OR MIT", "dependencies": { "it-stream-types": "^1.0.4", "p-defer": "^4.0.0", @@ -9450,8 +8671,7 @@ }, "node_modules/it-concat": { "version": "3.0.1", - "resolved": "https://registry.npmjs.org/it-concat/-/it-concat-3.0.1.tgz", - "integrity": "sha512-adsCBiPaDM46TrrpmNPEWru++/oFiLWZAnteM5ODPs0NRkDfjDyom+qyXvag7bP/Kp3Z6Vqv+U1idZs5gmyIAg==", + "license": "Apache-2.0 OR MIT", "dependencies": { "uint8arraylist": "^2.3.3", "uint8arrays": "^4.0.2" @@ -9463,8 +8683,7 @@ }, "node_modules/it-drain": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/it-drain/-/it-drain-2.0.0.tgz", - "integrity": "sha512-oa/5iyBtRs9UW486vPpyDTC0ee3rqx5qlrPI7txIUJcqqtiO5yVozEB6LQrl5ysQYv+P3y/dlKEqwVqlCV0SEA==", + "license": "Apache-2.0 OR MIT", "engines": { "node": ">=16.0.0", "npm": ">=7.0.0" @@ -9472,8 +8691,7 @@ }, "node_modules/it-filter": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/it-filter/-/it-filter-2.0.0.tgz", - "integrity": "sha512-E68+zzoNNI7MxdH1T4lUTgwpCyEnymlH349Qg2mcvsqLmYRkaZLM4NfZZ0hUuH7/5DkWXubQSDOYH396va8mpg==", + "license": "Apache-2.0 OR MIT", "engines": { "node": ">=16.0.0", "npm": ">=7.0.0" @@ -9481,8 +8699,7 @@ }, "node_modules/it-first": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/it-first/-/it-first-2.0.0.tgz", - "integrity": "sha512-fzZGzVf01exFyIZXNjkpSMFr1eW2+J1K0v018tYY26Dd4f/O3pWlBTdrOBfSQRZwtI8Pst6c7eKhYczWvFs6tA==", + "license": "Apache-2.0 OR MIT", "engines": { "node": ">=16.0.0", "npm": ">=7.0.0" @@ -9490,8 +8707,7 @@ }, "node_modules/it-foreach": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/it-foreach/-/it-foreach-1.0.0.tgz", - "integrity": "sha512-2j5HK1P6aMwEvgL6K5nzUwOk+81B/mjt05PxiSspFEKwJnqy1LfJYlLLS6llBoM+NdoUxf6EsBCHidFGmsXvhw==", + "license": "Apache-2.0 OR MIT", "engines": { "node": ">=16.0.0", "npm": ">=7.0.0" @@ -9499,8 +8715,7 @@ }, "node_modules/it-glob": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/it-glob/-/it-glob-1.0.2.tgz", - "integrity": "sha512-Ch2Dzhw4URfB9L/0ZHyY+uqOnKvBNeS/SMcRiPmJfpHiM0TsUZn+GkpcZxAoF3dJVdPm/PuIk3A4wlV7SUo23Q==", + "license": "ISC", "dependencies": { "@types/minimatch": "^3.0.4", "minimatch": "^3.0.4" @@ -9508,8 +8723,7 @@ }, "node_modules/it-glob/node_modules/brace-expansion": { "version": "1.1.11", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", - "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "license": "MIT", "dependencies": { "balanced-match": "^1.0.0", "concat-map": "0.0.1" @@ -9517,8 +8731,7 @@ }, "node_modules/it-glob/node_modules/minimatch": { "version": "3.1.2", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", - "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "license": "ISC", "dependencies": { "brace-expansion": "^1.1.7" }, @@ -9528,8 +8741,7 @@ }, "node_modules/it-handshake": { "version": "4.1.2", - "resolved": "https://registry.npmjs.org/it-handshake/-/it-handshake-4.1.2.tgz", - "integrity": "sha512-Q/EvrB4KWIX5+/wO7edBK3l79Vh28+iWPGZvZSSqwAtOJnHZIvywC+JUbiXPRJVXfICBJRqFETtIJcvrqWL2Zw==", + "license": "Apache-2.0 OR MIT", "dependencies": { "it-pushable": "^3.1.0", "it-reader": "^6.0.1", @@ -9544,8 +8756,7 @@ }, "node_modules/it-last": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/it-last/-/it-last-2.0.0.tgz", - "integrity": "sha512-u0GHZ01tWYtPvDkOaqZSLLWjFv3IJw9cPL9mbEV7wnE8DOsbVoXIuKpnz3U6pySl5RzPVjTzSHOc961ZYttBxg==", + "license": "Apache-2.0 OR MIT", "engines": { "node": ">=16.0.0", "npm": ">=7.0.0" @@ -9553,8 +8764,7 @@ }, "node_modules/it-length": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/it-length/-/it-length-2.0.0.tgz", - "integrity": "sha512-YFe6AW6RKkSTburcbyBChf6+HnyWumKZH9KRVfUSVXYkVqJxaJh/8aM8pnaFHm26lKQxYo57YW6RP+wL4CMx0Q==", + "license": "Apache-2.0 OR MIT", "engines": { "node": ">=16.0.0", "npm": ">=7.0.0" @@ -9562,8 +8772,7 @@ }, "node_modules/it-length-prefixed": { "version": "8.0.4", - "resolved": "https://registry.npmjs.org/it-length-prefixed/-/it-length-prefixed-8.0.4.tgz", - "integrity": "sha512-5OJ1lxH+IaqJB7lxe8IAIwt9UfSfsmjKJoAI/RO9djYoBDt1Jfy9PeVHUmOfqhqyu/4kJvWBFAJUaG1HhLQ12A==", + "license": "Apache-2.0 OR MIT", "dependencies": { "err-code": "^3.0.1", "it-stream-types": "^1.0.4", @@ -9578,8 +8787,7 @@ }, "node_modules/it-map": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/it-map/-/it-map-2.0.0.tgz", - "integrity": "sha512-mLgtk/NZaN7NZ06iLrMXCA6jjhtZO0vZT5Ocsp31H+nsGI18RSPVmUbFyA1sWx7q+g92J22Sixya7T2QSSAwfA==", + "license": "Apache-2.0 OR MIT", "engines": { "node": ">=16.0.0", "npm": ">=7.0.0" @@ -9587,8 +8795,7 @@ }, "node_modules/it-merge": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/it-merge/-/it-merge-2.0.0.tgz", - "integrity": "sha512-mH4bo/ZrMoU+Wlu7ZuYPNNh9oWZ/GvYbeXZ0zll97+Rp6H4jFu98iu6v9qqXDz//RUjdO9zGh8awzMfOElsjpA==", + "license": "Apache-2.0 OR MIT", "dependencies": { "it-pushable": "^3.1.0" }, @@ -9599,8 +8806,7 @@ }, "node_modules/it-multipart": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/it-multipart/-/it-multipart-3.0.0.tgz", - "integrity": "sha512-toThtH3xxAaF4A89k1FX08ZA2whK6x8/7Tgz0JvSGV5b8bR5KaR2wx6oq7E7sqa1Q05hGNGy3pbKQM/59IoeXQ==", + "license": "Apache-2.0 OR MIT", "dependencies": { "formidable": "^2.0.1", "it-pushable": "^3.1.0" @@ -9612,8 +8818,7 @@ }, "node_modules/it-pair": { "version": "2.0.3", - "resolved": "https://registry.npmjs.org/it-pair/-/it-pair-2.0.3.tgz", - "integrity": "sha512-heCgsbYscFCQY5YvltlGT9tjgLGYo7NxPEoJyl55X4BD2KOXpTyuwOhPLWhi9Io0y6+4ZUXCkyaQXIB6Y8xhRw==", + "license": "Apache-2.0 OR MIT", "dependencies": { "it-stream-types": "^1.0.3", "p-defer": "^4.0.0" @@ -9625,8 +8830,7 @@ }, "node_modules/it-parallel": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/it-parallel/-/it-parallel-3.0.0.tgz", - "integrity": "sha512-/y70cY7VoZ7natLbWrPxoRaKWMD67RvtWx21cyLJr6kkuHrUWOrHNr8CPMBqzDRh73aig/uUT82hzTTmTTkDUg==", + "license": "Apache-2.0 OR MIT", "dependencies": { "p-defer": "^4.0.0" }, @@ -9637,21 +8841,18 @@ }, "node_modules/it-parallel-batch": { "version": "1.0.11", - "resolved": "https://registry.npmjs.org/it-parallel-batch/-/it-parallel-batch-1.0.11.tgz", - "integrity": "sha512-UWsWHv/kqBpMRmyZJzlmZeoAMA0F3SZr08FBdbhtbe+MtoEBgr/ZUAKrnenhXCBrsopy76QjRH2K/V8kNdupbQ==", + "license": "ISC", "dependencies": { "it-batch": "^1.0.9" } }, "node_modules/it-parallel-batch/node_modules/it-batch": { "version": "1.0.9", - "resolved": "https://registry.npmjs.org/it-batch/-/it-batch-1.0.9.tgz", - "integrity": "sha512-7Q7HXewMhNFltTsAMdSz6luNhyhkhEtGGbYek/8Xb/GiqYMtwUmopE1ocPSiJKKp3rM4Dt045sNFoUu+KZGNyA==" + "license": "ISC" }, "node_modules/it-pb-stream": { "version": "2.0.3", - "resolved": "https://registry.npmjs.org/it-pb-stream/-/it-pb-stream-2.0.3.tgz", - "integrity": "sha512-nuJzftDqk52gZmVD6T0sIKggXMhBkLSAFCD1OecxqGTVwk2wuDYY0ZHpcXZJuHty3kIuLY4xlWZrnDH9efV4YA==", + "license": "Apache-2.0 OR MIT", "dependencies": { "it-handshake": "^4.1.2", "it-length-prefixed": "^8.0.2", @@ -9665,8 +8866,7 @@ }, "node_modules/it-peekable": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/it-peekable/-/it-peekable-2.0.0.tgz", - "integrity": "sha512-+eacms2jr2wQqIRxU25eqWPHaEeR4IurrS9hTScmCJpWagRkC8WHw7atciEA6KArOiyxHCAXg5Q5We7/RhvqAQ==", + "license": "Apache-2.0 OR MIT", "engines": { "node": ">=16.0.0", "npm": ">=7.0.0" @@ -9674,8 +8874,7 @@ }, "node_modules/it-pipe": { "version": "2.0.5", - "resolved": "https://registry.npmjs.org/it-pipe/-/it-pipe-2.0.5.tgz", - "integrity": "sha512-y85nW1N6zoiTnkidr2EAyC+ZVzc7Mwt2p+xt2a2ooG1ThFakSpNw1Kxm+7F13Aivru96brJhjQVRQNU+w0yozw==", + "license": "Apache-2.0 OR MIT", "dependencies": { "it-merge": "^2.0.0", "it-pushable": "^3.1.0", @@ -9688,8 +8887,7 @@ }, "node_modules/it-pushable": { "version": "3.1.2", - "resolved": "https://registry.npmjs.org/it-pushable/-/it-pushable-3.1.2.tgz", - "integrity": "sha512-zU9FbeoGT0f+yobwm8agol2OTMXbq4ZSWLEi7hug6TEZx4qVhGhGyp31cayH04aBYsIoO2Nr5kgMjH/oWj2BJQ==", + "license": "Apache-2.0 OR MIT", "engines": { "node": ">=16.0.0", "npm": ">=7.0.0" @@ -9697,8 +8895,7 @@ }, "node_modules/it-reader": { "version": "6.0.2", - "resolved": "https://registry.npmjs.org/it-reader/-/it-reader-6.0.2.tgz", - "integrity": "sha512-rQdVyml+r/2v8PQsPfJgf626tAkbA7NW1EF6zuucT2Ryy1U6YJtSuCJL8fKuDOyiR/mLzbfP0QQJlSeeoLph2A==", + "license": "Apache-2.0 OR MIT", "dependencies": { "it-stream-types": "^1.0.4", "uint8arraylist": "^2.0.0" @@ -9710,8 +8907,7 @@ }, "node_modules/it-reduce": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/it-reduce/-/it-reduce-2.0.0.tgz", - "integrity": "sha512-ki7gN+2XLTd7JoMbPVwGn1JXA7JOJyjpgEPeBkUbcMzJ7JYGsiYFPskrbfE2rXWbkt7rYgzGPkdd1SipqitcrQ==", + "license": "Apache-2.0 OR MIT", "engines": { "node": ">=16.0.0", "npm": ">=7.0.0" @@ -9719,8 +8915,7 @@ }, "node_modules/it-sort": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/it-sort/-/it-sort-2.0.0.tgz", - "integrity": "sha512-yeAE97b5PEjCrWFUiNyR90eJdGslj8FB3cjT84rsc+mzx9lxPyR2zJkYB9ZOJoWE5MMebxqcQCLRT3OSlzo7Zg==", + "license": "Apache-2.0 OR MIT", "dependencies": { "it-all": "^2.0.0" }, @@ -9731,8 +8926,7 @@ }, "node_modules/it-split": { "version": "2.0.1", - "resolved": "https://registry.npmjs.org/it-split/-/it-split-2.0.1.tgz", - "integrity": "sha512-Pq9bvAKuPmyFU62ymWZdLZ2p5+l5iDPpKSNbk+4etrKklEU354UsmetXWQQ5ZfrarH8mG1aKJ35H7PY7lD4xPQ==", + "license": "Apache-2.0 OR MIT", "dependencies": { "uint8arraylist": "^2.4.1" }, @@ -9743,8 +8937,7 @@ }, "node_modules/it-stream-types": { "version": "1.0.5", - "resolved": "https://registry.npmjs.org/it-stream-types/-/it-stream-types-1.0.5.tgz", - "integrity": "sha512-I88Ka1nHgfX62e5mi5LLL+oueqz7Ltg0bUdtsUKDe9SoUqbQPf2Mp5kxDTe9pNhHQGs4pvYPAINwuZ1HAt42TA==", + "license": "Apache-2.0 OR MIT", "engines": { "node": ">=16.0.0", "npm": ">=7.0.0" @@ -9752,8 +8945,7 @@ }, "node_modules/it-take": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/it-take/-/it-take-2.0.0.tgz", - "integrity": "sha512-lN3diSTomOvYBk2K0LHAgrQ52DlQfvq8tH/+HLAFpX8Q3JwBkr/BPJEi3Z3Lf8jMmN1KOCBXvt5sXa3eW9vUmg==", + "license": "Apache-2.0 OR MIT", "engines": { "node": ">=16.0.0", "npm": ">=7.0.0" @@ -9761,8 +8953,7 @@ }, "node_modules/it-tar": { "version": "6.0.1", - "resolved": "https://registry.npmjs.org/it-tar/-/it-tar-6.0.1.tgz", - "integrity": "sha512-KMKNqYQr/m3mJE0ERg6F2Snlk1d68tEMeOP0bPf5vboka1y0L7CZD2nlf57H+C9R31TA0SbtiOqkblRxEIONfg==", + "license": "Apache-2.0 OR MIT", "dependencies": { "iso-constants": "^0.1.2", "it-reader": "^6.0.1", @@ -9779,8 +8970,7 @@ }, "node_modules/it-to-buffer": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/it-to-buffer/-/it-to-buffer-3.0.0.tgz", - "integrity": "sha512-W+wNv0CBXVPLMSKKKJXJFcWdsB/MpVUpQkExV/bjjwGhTQJRj29lZuBYSt0Gjad8GDgRCdSwVcKIe6cVY5epGw==", + "license": "Apache-2.0 OR MIT", "dependencies": { "uint8arrays": "^4.0.2" }, @@ -9791,8 +8981,7 @@ }, "node_modules/it-to-stream": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/it-to-stream/-/it-to-stream-1.0.0.tgz", - "integrity": "sha512-pLULMZMAB/+vbdvbZtebC0nWBTbG581lk6w8P7DfIIIKUfa8FbY7Oi0FxZcFPbxvISs7A9E+cMpLDBc1XhpAOA==", + "license": "MIT", "dependencies": { "buffer": "^6.0.3", "fast-fifo": "^1.0.0", @@ -9804,21 +8993,18 @@ }, "node_modules/it-to-stream/node_modules/get-iterator": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/get-iterator/-/get-iterator-1.0.2.tgz", - "integrity": "sha512-v+dm9bNVfOYsY1OrhaCrmyOcYoSeVvbt+hHZ0Au+T+p1y+0Uyj9aMaGIeUTT6xdpRbWzDeYKvfOslPhggQMcsg==" + "license": "MIT" }, "node_modules/it-to-stream/node_modules/p-defer": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/p-defer/-/p-defer-3.0.0.tgz", - "integrity": "sha512-ugZxsxmtTln604yeYd29EGrNhazN2lywetzpKhfmQjW/VJmhpDmWbiX+h0zL8V91R0UXkhb3KtPmyq9PZw3aYw==", + "license": "MIT", "engines": { "node": ">=8" } }, "node_modules/it-to-stream/node_modules/readable-stream": { "version": "3.6.0", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", - "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", + "license": "MIT", "dependencies": { "inherits": "^2.0.3", "string_decoder": "^1.1.1", @@ -9830,8 +9016,7 @@ }, "node_modules/it-ws": { "version": "5.0.6", - "resolved": "https://registry.npmjs.org/it-ws/-/it-ws-5.0.6.tgz", - "integrity": "sha512-TEEJQaGtkxgP/nGVq8dq48nPT85Afu8kwwvtDFLj4rQLWRhZcb26RWdXLdn9qhXkWPiWbK5H7JWBW1Bebj/SuQ==", + "license": "Apache-2.0 OR MIT", "dependencies": { "event-iterator": "^2.0.0", "iso-url": "^1.1.2", @@ -9846,8 +9031,7 @@ }, "node_modules/jake": { "version": "10.8.5", - "resolved": "https://registry.npmjs.org/jake/-/jake-10.8.5.tgz", - "integrity": "sha512-sVpxYeuAhWt0OTWITwT98oyV0GsXyMlXCF+3L1SuafBVUIr/uILGRB+NqwkzhgXKvoJpDIpQvqkUALgdmQsQxw==", + "license": "Apache-2.0", "dependencies": { "async": "^3.2.3", "chalk": "^4.0.2", @@ -9863,8 +9047,7 @@ }, "node_modules/jake/node_modules/ansi-styles": { "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "license": "MIT", "dependencies": { "color-convert": "^2.0.1" }, @@ -9877,8 +9060,7 @@ }, "node_modules/jake/node_modules/brace-expansion": { "version": "1.1.11", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", - "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "license": "MIT", "dependencies": { "balanced-match": "^1.0.0", "concat-map": "0.0.1" @@ -9886,8 +9068,7 @@ }, "node_modules/jake/node_modules/chalk": { "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "license": "MIT", "dependencies": { "ansi-styles": "^4.1.0", "supports-color": "^7.1.0" @@ -9901,8 +9082,7 @@ }, "node_modules/jake/node_modules/color-convert": { "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "license": "MIT", "dependencies": { "color-name": "~1.1.4" }, @@ -9912,21 +9092,18 @@ }, "node_modules/jake/node_modules/color-name": { "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" + "license": "MIT" }, "node_modules/jake/node_modules/has-flag": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "license": "MIT", "engines": { "node": ">=8" } }, "node_modules/jake/node_modules/minimatch": { "version": "3.1.2", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", - "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "license": "ISC", "dependencies": { "brace-expansion": "^1.1.7" }, @@ -9936,8 +9113,7 @@ }, "node_modules/jake/node_modules/supports-color": { "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "license": "MIT", "dependencies": { "has-flag": "^4.0.0" }, @@ -9947,16 +9123,13 @@ }, "node_modules/jmespath": { "version": "0.15.0", - "resolved": "https://registry.npmjs.org/jmespath/-/jmespath-0.15.0.tgz", - "integrity": "sha512-+kHj8HXArPfpPEKGLZ+kB5ONRTCiGQXo8RQYL0hH8t6pWXUBBK5KkkQmTNOwKK4LEsd0yTsgtjJVm4UBSZea4w==", "engines": { "node": ">= 0.6.0" } }, "node_modules/joi": { "version": "17.7.0", - "resolved": "https://registry.npmjs.org/joi/-/joi-17.7.0.tgz", - "integrity": "sha512-1/ugc8djfn93rTE3WRKdCzGGt/EtiYKxITMO4Wiv6q5JL1gl9ePt4kBsl1S499nbosspfctIQTpYIhSmHA3WAg==", + "license": "BSD-3-Clause", "dependencies": { "@hapi/hoek": "^9.0.0", "@hapi/topo": "^5.0.0", @@ -9967,17 +9140,15 @@ }, "node_modules/joycon": { "version": "2.2.5", - "resolved": "https://registry.npmjs.org/joycon/-/joycon-2.2.5.tgz", - "integrity": "sha512-YqvUxoOcVPnCp0VU1/56f+iKSdvIRJYPznH22BdXV3xMk75SFXhWeJkZ8C9XxUWt1b5x2X1SxuFygW1U0FmkEQ==", + "license": "MIT", "engines": { "node": ">=6" } }, "node_modules/js-sdsl": { "version": "4.2.0", - "resolved": "https://registry.npmjs.org/js-sdsl/-/js-sdsl-4.2.0.tgz", - "integrity": "sha512-dyBIzQBDkCqCu+0upx25Y2jGdbTGxE9fshMsCdK0ViOongpV+n5tXRcZY9v7CaVQ79AGS9KA1KHtojxiM7aXSQ==", "dev": true, + "license": "MIT", "peer": true, "funding": { "type": "opencollective", @@ -9986,15 +9157,13 @@ }, "node_modules/js-tokens": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", - "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/js-yaml": { "version": "4.1.0", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", - "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", "dev": true, + "license": "MIT", "dependencies": { "argparse": "^2.0.1" }, @@ -10004,14 +9173,12 @@ }, "node_modules/jsbn": { "version": "1.1.0", - "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-1.1.0.tgz", - "integrity": "sha512-4bYVV3aAMtDTTu4+xsDYa6sy9GyJ69/amsu9sYF2zqjiEoZA5xJi3BrfX3uY+/IekIu7MwdObdbDWpoZdBv3/A==" + "license": "MIT" }, "node_modules/jsesc": { "version": "2.5.2", - "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz", - "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==", "dev": true, + "license": "MIT", "bin": { "jsesc": "bin/jsesc" }, @@ -10021,33 +9188,28 @@ }, "node_modules/json-buffer": { "version": "3.0.1", - "resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.1.tgz", - "integrity": "sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==" + "license": "MIT" }, "node_modules/json-schema-traverse": { "version": "0.4.1", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", - "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", "dev": true, + "license": "MIT", "peer": true }, "node_modules/json-stable-stringify-without-jsonify": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz", - "integrity": "sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==", "dev": true, + "license": "MIT", "peer": true }, "node_modules/json-stringify-safe": { "version": "5.0.1", - "resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz", - "integrity": "sha512-ZClg6AaYvamvYEE82d3Iyd3vSSIjQ+odgjaTzRuO3s7toCdFKczob2i0zCh7JE8kWn17yvAWhUVxvqGwUalsRA==" + "license": "ISC" }, "node_modules/json5": { "version": "2.2.3", - "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.3.tgz", - "integrity": "sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==", "dev": true, + "license": "MIT", "bin": { "json5": "lib/cli.js" }, @@ -10057,8 +9219,7 @@ }, "node_modules/jsondiffpatch": { "version": "0.4.1", - "resolved": "https://registry.npmjs.org/jsondiffpatch/-/jsondiffpatch-0.4.1.tgz", - "integrity": "sha512-t0etAxTUk1w5MYdNOkZBZ8rvYYN5iL+2dHCCx/DpkFm/bW28M6y5nUS83D4XdZiHy35Fpaw6LBb+F88fHZnVCw==", + "license": "MIT", "dependencies": { "chalk": "^2.3.0", "diff-match-patch": "^1.0.0" @@ -10072,54 +9233,46 @@ }, "node_modules/just-debounce-it": { "version": "3.2.0", - "resolved": "https://registry.npmjs.org/just-debounce-it/-/just-debounce-it-3.2.0.tgz", - "integrity": "sha512-WXzwLL0745uNuedrCsCs3rpmfD6DBaf7uuVwaq98/8dafURfgQaBsSpjiPp5+CW6Vjltwy9cOGI6qE71b3T8iQ==" + "license": "MIT" }, "node_modules/just-extend": { "version": "4.2.1", - "resolved": "https://registry.npmjs.org/just-extend/-/just-extend-4.2.1.tgz", - "integrity": "sha512-g3UB796vUFIY90VIv/WX3L2c8CS2MdWUww3CNrYmqza1Fg0DURc2K/O4YrnklBdQarSJ/y8JnJYDGc+1iumQjg==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/just-safe-get": { "version": "4.2.0", - "resolved": "https://registry.npmjs.org/just-safe-get/-/just-safe-get-4.2.0.tgz", - "integrity": "sha512-+tS4Bvgr/FnmYxOGbwziJ8I2BFk+cP1gQHm6rm7zo61w1SbxBwWGEq/Ryy9Gb6bvnloPq6pz7Bmm4a0rjTNlXA==" + "license": "MIT" }, "node_modules/just-safe-set": { "version": "4.2.0", - "resolved": "https://registry.npmjs.org/just-safe-set/-/just-safe-set-4.2.0.tgz", - "integrity": "sha512-109CZyFYcRAgR5hT/aA6V6ZKUfxItJYrZvtTikfIJ4sEewAE86fQARiF9BFzZlSn0gTLVGIMuZC7le2qQ+JJKw==" + "license": "MIT" }, "node_modules/k-bucket": { "version": "5.1.0", - "resolved": "https://registry.npmjs.org/k-bucket/-/k-bucket-5.1.0.tgz", - "integrity": "sha512-Fac7iINEovXIWU20GPnOMLUbjctiS+cnmyjC4zAUgvs3XPf1vo9akfCHkigftSic/jiKqKl+KA3a/vFcJbHyCg==", + "license": "MIT", "dependencies": { "randombytes": "^2.1.0" } }, "node_modules/keyv": { "version": "4.5.2", - "resolved": "https://registry.npmjs.org/keyv/-/keyv-4.5.2.tgz", - "integrity": "sha512-5MHbFaKn8cNSmVW7BYnijeAVlE4cYA/SVkifVgrh7yotnfhKmjuXpDKjrABLnT0SfHWV21P8ow07OGfRrNDg8g==", + "license": "MIT", "dependencies": { "json-buffer": "3.0.1" } }, "node_modules/kind-of": { "version": "6.0.3", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", - "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==", "dev": true, + "license": "MIT", "engines": { "node": ">=0.10.0" } }, "node_modules/latest-version": { "version": "7.0.0", - "resolved": "https://registry.npmjs.org/latest-version/-/latest-version-7.0.0.tgz", - "integrity": "sha512-KvNT4XqAMzdcL6ka6Tl3i2lYeFDgXNCuIX+xNx6ZMVR1dFq+idXd9FLKNMOIx0t9mJ9/HudyX4oZWXZQ0UJHeg==", + "license": "MIT", "dependencies": { "package-json": "^8.1.0" }, @@ -10132,8 +9285,7 @@ }, "node_modules/level": { "version": "8.0.0", - "resolved": "https://registry.npmjs.org/level/-/level-8.0.0.tgz", - "integrity": "sha512-ypf0jjAk2BWI33yzEaaotpq7fkOPALKAgDBxggO6Q9HGX2MRXn0wbP1Jn/tJv1gtL867+YOjOB49WaUF3UoJNQ==", + "license": "MIT", "dependencies": { "browser-level": "^1.0.1", "classic-level": "^1.2.0" @@ -10148,16 +9300,14 @@ }, "node_modules/level-supports": { "version": "4.0.1", - "resolved": "https://registry.npmjs.org/level-supports/-/level-supports-4.0.1.tgz", - "integrity": "sha512-PbXpve8rKeNcZ9C1mUicC9auIYFyGpkV9/i6g76tLgANwWhtG2v7I4xNBUlkn3lE2/dZF3Pi0ygYGtLc4RXXdA==", + "license": "MIT", "engines": { "node": ">=12" } }, "node_modules/level-transcoder": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/level-transcoder/-/level-transcoder-1.0.1.tgz", - "integrity": "sha512-t7bFwFtsQeD8cl8NIoQ2iwxA0CL/9IFw7/9gAjOonH0PWTTiRfY7Hq+Ejbsxh86tXobDQ6IOiddjNYIfOBs06w==", + "license": "MIT", "dependencies": { "buffer": "^6.0.3", "module-error": "^1.0.1" @@ -10168,17 +9318,15 @@ }, "node_modules/leven": { "version": "2.1.0", - "resolved": "https://registry.npmjs.org/leven/-/leven-2.1.0.tgz", - "integrity": "sha512-nvVPLpIHUxCUoRLrFqTgSxXJ614d8AgQoWl7zPe/2VadE8+1dpU3LBhowRuBAcuwruWtOdD8oYC9jDNJjXDPyA==", + "license": "MIT", "engines": { "node": ">=0.10.0" } }, "node_modules/levn": { "version": "0.4.1", - "resolved": "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz", - "integrity": "sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==", "dev": true, + "license": "MIT", "peer": true, "dependencies": { "prelude-ls": "^1.2.1", @@ -10190,8 +9338,7 @@ }, "node_modules/libp2p": { "version": "0.40.0", - "resolved": "https://registry.npmjs.org/libp2p/-/libp2p-0.40.0.tgz", - "integrity": "sha512-AeLaA+8KIhUhjpXZcs20+Pnf2wIBp+zdSYPD1IgGCF0PlMbTdCvaIqhPzpTSd3+e5k7NZlgpd/BvCOLgQbfm5Q==", + "license": "Apache-2.0 OR MIT", "dependencies": { "@achingbrain/nat-port-mapper": "^1.0.3", "@libp2p/connection": "^4.0.2", @@ -10270,8 +9417,7 @@ }, "node_modules/libp2p/node_modules/@libp2p/interface-metrics": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/@libp2p/interface-metrics/-/interface-metrics-3.0.0.tgz", - "integrity": "sha512-TxK63BrDalv0yW544608xfmg3rsbh31ykZzf7I1yjMCZpyIFOqLTH1WN4YQwXKNlMz/XURux99UTpGSRYl3nOA==", + "license": "Apache-2.0 OR MIT", "dependencies": { "@libp2p/interface-peer-id": "^1.0.0", "it-stream-types": "^1.0.4" @@ -10283,8 +9429,7 @@ }, "node_modules/libp2p/node_modules/@libp2p/interface-peer-id": { "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@libp2p/interface-peer-id/-/interface-peer-id-1.1.2.tgz", - "integrity": "sha512-S5iyVzG2EUgxm4NLe8W4ya9kpKuGfHs7Wbbos0wOUB4GXsbIKgOOxIr4yf+xGFgtEBaoximvlLkpob6dn8VFgA==", + "license": "Apache-2.0 OR MIT", "dependencies": { "multiformats": "^10.0.0" }, @@ -10295,8 +9440,7 @@ }, "node_modules/libp2p/node_modules/multiformats": { "version": "10.0.3", - "resolved": "https://registry.npmjs.org/multiformats/-/multiformats-10.0.3.tgz", - "integrity": "sha512-K2yGSmstS/oEmYiEIieHb53jJCaqp4ERPDQAYrm5sV3UUrVDZeshJQCK6GHAKyIGufU1vAcbS0PdAAZmC7Tzcw==", + "license": "Apache-2.0 OR MIT", "engines": { "node": ">=16.0.0", "npm": ">=7.0.0" @@ -10304,9 +9448,8 @@ }, "node_modules/locate-path": { "version": "6.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz", - "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==", "dev": true, + "license": "MIT", "dependencies": { "p-locate": "^5.0.0" }, @@ -10319,32 +9462,27 @@ }, "node_modules/lodash": { "version": "4.17.21", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", - "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==" + "license": "MIT" }, "node_modules/lodash.camelcase": { "version": "4.3.0", - "resolved": "https://registry.npmjs.org/lodash.camelcase/-/lodash.camelcase-4.3.0.tgz", - "integrity": "sha512-TwuEnCnxbc3rAvhf/LbG7tJUDzhqXyFnv3dtzLOPgCG/hODL7WFnsbwktkD7yUV0RrreP/l1PALq/YSg6VvjlA==" + "license": "MIT" }, "node_modules/lodash.get": { "version": "4.4.2", - "resolved": "https://registry.npmjs.org/lodash.get/-/lodash.get-4.4.2.tgz", - "integrity": "sha512-z+Uw/vLuy6gQe8cfaFWD7p0wVv8fJl3mbzXh33RS+0oW2wvUqiRXiQ69gLWSLpgB5/6sU+r6BlQR0MBILadqTQ==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/lodash.merge": { "version": "4.6.2", - "resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz", - "integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==", "dev": true, + "license": "MIT", "peer": true }, "node_modules/log-symbols": { "version": "4.1.0", - "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-4.1.0.tgz", - "integrity": "sha512-8XPvpAA8uyhfteu8pIvQxpJZ7SYYdpUivZpGy6sFsBuKRY/7rQGavedeB8aK+Zkyq6upMFVL/9AW6vOYzfRyLg==", "dev": true, + "license": "MIT", "dependencies": { "chalk": "^4.1.0", "is-unicode-supported": "^0.1.0" @@ -10358,9 +9496,8 @@ }, "node_modules/log-symbols/node_modules/ansi-styles": { "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", "dev": true, + "license": "MIT", "dependencies": { "color-convert": "^2.0.1" }, @@ -10373,9 +9510,8 @@ }, "node_modules/log-symbols/node_modules/chalk": { "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", "dev": true, + "license": "MIT", "dependencies": { "ansi-styles": "^4.1.0", "supports-color": "^7.1.0" @@ -10389,9 +9525,8 @@ }, "node_modules/log-symbols/node_modules/color-convert": { "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", "dev": true, + "license": "MIT", "dependencies": { "color-name": "~1.1.4" }, @@ -10401,24 +9536,21 @@ }, "node_modules/log-symbols/node_modules/color-name": { "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/log-symbols/node_modules/has-flag": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", "dev": true, + "license": "MIT", "engines": { "node": ">=8" } }, "node_modules/log-symbols/node_modules/supports-color": { "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", "dev": true, + "license": "MIT", "dependencies": { "has-flag": "^4.0.0" }, @@ -10428,13 +9560,11 @@ }, "node_modules/long": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/long/-/long-4.0.0.tgz", - "integrity": "sha512-XsP+KhQif4bjX1kbuSiySJFNAehNxgLb6hPRGJ9QsUr8ajHkuXGdrHmFUTUUXhDwVX2R5bY4JNZEwbUiMhV+MA==" + "license": "Apache-2.0" }, "node_modules/longbits": { "version": "1.1.0", - "resolved": "https://registry.npmjs.org/longbits/-/longbits-1.1.0.tgz", - "integrity": "sha512-22U2exkkYy7sr7nuQJYx2NEZ2kEMsC69+BxM5h8auLvkVIJa+LwAB5mFIExnuW2dFuYXFOWsFMKXjaWiq/htYQ==", + "license": "Apache-2.0 OR MIT", "dependencies": { "byte-access": "^1.0.1", "uint8arraylist": "^2.0.0" @@ -10446,16 +9576,14 @@ }, "node_modules/lower-case": { "version": "2.0.2", - "resolved": "https://registry.npmjs.org/lower-case/-/lower-case-2.0.2.tgz", - "integrity": "sha512-7fm3l3NAF9WfN6W3JOmf5drwpVqX78JtoGJ3A6W0a6ZnldM41w2fV5D490psKFTpMds8TJse/eHLFFsNHHjHgg==", + "license": "MIT", "dependencies": { "tslib": "^2.0.3" } }, "node_modules/lowercase-keys": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-3.0.0.tgz", - "integrity": "sha512-ozCC6gdQ+glXOQsveKD0YsDy8DSQFjDTz4zyzEHNV5+JP5D62LmfDZ6o1cycFx9ouG940M5dE8C8CTewdj2YWQ==", + "license": "MIT", "engines": { "node": "^12.20.0 || ^14.13.1 || >=16.0.0" }, @@ -10465,8 +9593,7 @@ }, "node_modules/lru-cache": { "version": "6.0.0", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", - "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", + "license": "ISC", "dependencies": { "yallist": "^4.0.0" }, @@ -10476,9 +9603,8 @@ }, "node_modules/make-dir": { "version": "2.1.0", - "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-2.1.0.tgz", - "integrity": "sha512-LS9X+dc8KLxXCb8dni79fLIIUA5VyZoyjSMCwTluaXA0o27cCK0bhXkpgw+sTXVpPy/lSO57ilRixqk0vDmtRA==", "dev": true, + "license": "MIT", "dependencies": { "pify": "^4.0.1", "semver": "^5.6.0" @@ -10489,23 +9615,20 @@ }, "node_modules/make-dir/node_modules/semver": { "version": "5.7.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", - "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", "dev": true, + "license": "ISC", "bin": { "semver": "bin/semver" } }, "node_modules/make-error": { "version": "1.3.6", - "resolved": "https://registry.npmjs.org/make-error/-/make-error-1.3.6.tgz", - "integrity": "sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw==", - "dev": true + "dev": true, + "license": "ISC" }, "node_modules/merge-options": { "version": "3.0.4", - "resolved": "https://registry.npmjs.org/merge-options/-/merge-options-3.0.4.tgz", - "integrity": "sha512-2Sug1+knBjkaMsMgf1ctR1Ujx+Ayku4EdJN4Z+C2+JzoeF7A3OZ9KM2GY0CpQS51NR61LTurMJrRKPhSs3ZRTQ==", + "license": "MIT", "dependencies": { "is-plain-obj": "^2.1.0" }, @@ -10515,23 +9638,20 @@ }, "node_modules/merge-stream": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz", - "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==" + "license": "MIT" }, "node_modules/merge2": { "version": "1.4.1", - "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", - "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==", "dev": true, + "license": "MIT", "engines": { "node": ">= 8" } }, "node_modules/micromatch": { "version": "4.0.5", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.5.tgz", - "integrity": "sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==", "dev": true, + "license": "MIT", "dependencies": { "braces": "^3.0.2", "picomatch": "^2.3.1" @@ -10542,16 +9662,14 @@ }, "node_modules/mime-db": { "version": "1.52.0", - "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", - "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==", + "license": "MIT", "engines": { "node": ">= 0.6" } }, "node_modules/mime-types": { "version": "2.1.35", - "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz", - "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==", + "license": "MIT", "dependencies": { "mime-db": "1.52.0" }, @@ -10561,8 +9679,7 @@ }, "node_modules/mimic-fn": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-4.0.0.tgz", - "integrity": "sha512-vqiC06CuhBTUdZH+RYl8sFrL096vA45Ok5ISO6sE/Mr1jRbGH4Csnhi8f3wKVl7x8mO4Au7Ir9D3Oyv1VYMFJw==", + "license": "MIT", "engines": { "node": ">=12" }, @@ -10572,8 +9689,7 @@ }, "node_modules/mimic-response": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-4.0.0.tgz", - "integrity": "sha512-e5ISH9xMYU0DzrT+jl8q2ze9D6eWBto+I8CNpe+VI+K2J/F/k3PdkdTdz4wvGVH4NTpo+NRYTVIuMQEMMcsLqg==", + "license": "MIT", "engines": { "node": "^12.20.0 || ^14.13.1 || >=16.0.0" }, @@ -10583,8 +9699,7 @@ }, "node_modules/minimatch": { "version": "5.0.1", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.0.1.tgz", - "integrity": "sha512-nLDxIFRyhDblz3qMuq+SoRZED4+miJ/G+tdDrjkkkRnjAsBexeGpgjLEQ0blJy7rHhR2b93rhQY4SvyWu9v03g==", + "license": "ISC", "dependencies": { "brace-expansion": "^2.0.1" }, @@ -10594,16 +9709,14 @@ }, "node_modules/minimist": { "version": "1.2.7", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.7.tgz", - "integrity": "sha512-bzfL1YUZsP41gmu/qjrEk0Q6i2ix/cVeAhbCbqH9u3zYutS1cLg00qhrD0M2MVdCcx4Sc0UpP2eBWo9rotpq6g==", + "license": "MIT", "funding": { "url": "https://github.com/sponsors/ljharb" } }, "node_modules/minipass": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/minipass/-/minipass-4.0.0.tgz", - "integrity": "sha512-g2Uuh2jEKoht+zvO6vJqXmYpflPqzRBT+Th2h01DKh5z7wbY/AZ2gCQ78cP70YoHPyFdY30YBV5WxgLOEwOykw==", + "license": "ISC", "dependencies": { "yallist": "^4.0.0" }, @@ -10613,8 +9726,7 @@ }, "node_modules/minizlib": { "version": "2.1.2", - "resolved": "https://registry.npmjs.org/minizlib/-/minizlib-2.1.2.tgz", - "integrity": "sha512-bAxsR8BVfj60DWXHE3u30oHzfl4G7khkSuPW+qvpd7jFRHm7dLxOjUk1EHACJ/hxLY8phGJ0YhYHZo7jil7Qdg==", + "license": "MIT", "dependencies": { "minipass": "^3.0.0", "yallist": "^4.0.0" @@ -10625,8 +9737,7 @@ }, "node_modules/minizlib/node_modules/minipass": { "version": "3.3.6", - "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.3.6.tgz", - "integrity": "sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==", + "license": "ISC", "dependencies": { "yallist": "^4.0.0" }, @@ -10636,8 +9747,7 @@ }, "node_modules/mkdirp": { "version": "1.0.4", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", - "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==", + "license": "MIT", "bin": { "mkdirp": "bin/cmd.js" }, @@ -10647,9 +9757,8 @@ }, "node_modules/mocha": { "version": "10.2.0", - "resolved": "https://registry.npmjs.org/mocha/-/mocha-10.2.0.tgz", - "integrity": "sha512-IDY7fl/BecMwFHzoqF2sg/SHHANeBoMMXFlS9r0OXKDssYE1M5O43wUY/9BVPeIvfH2zmEbBfseqN9gBQZzXkg==", "dev": true, + "license": "MIT", "dependencies": { "ansi-colors": "4.1.1", "browser-stdout": "1.3.1", @@ -10687,9 +9796,8 @@ }, "node_modules/mocha/node_modules/cliui": { "version": "7.0.4", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-7.0.4.tgz", - "integrity": "sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==", "dev": true, + "license": "ISC", "dependencies": { "string-width": "^4.2.0", "strip-ansi": "^6.0.0", @@ -10698,9 +9806,8 @@ }, "node_modules/mocha/node_modules/escape-string-regexp": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", - "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", "dev": true, + "license": "MIT", "engines": { "node": ">=10" }, @@ -10710,24 +9817,21 @@ }, "node_modules/mocha/node_modules/has-flag": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", "dev": true, + "license": "MIT", "engines": { "node": ">=8" } }, "node_modules/mocha/node_modules/ms": { "version": "2.1.3", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", - "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/mocha/node_modules/supports-color": { "version": "8.1.1", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", - "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", "dev": true, + "license": "MIT", "dependencies": { "has-flag": "^4.0.0" }, @@ -10740,9 +9844,8 @@ }, "node_modules/mocha/node_modules/yargs": { "version": "16.2.0", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-16.2.0.tgz", - "integrity": "sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==", "dev": true, + "license": "MIT", "dependencies": { "cliui": "^7.0.2", "escalade": "^3.1.1", @@ -10758,24 +9861,21 @@ }, "node_modules/mock-socket": { "version": "9.1.5", - "resolved": "https://registry.npmjs.org/mock-socket/-/mock-socket-9.1.5.tgz", - "integrity": "sha512-3DeNIcsQixWHHKk6NdoBhWI4t1VMj5/HzfnI1rE/pLl5qKx7+gd4DNA07ehTaZ6MoUU053si6Hd+YtiM/tQZfg==", + "license": "MIT", "engines": { "node": ">= 8" } }, "node_modules/module-error": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/module-error/-/module-error-1.0.2.tgz", - "integrity": "sha512-0yuvsqSCv8LbaOKhnsQ/T5JhyFlCYLPXK3U2sgV10zoKQwzs/MyfuQUOZQ1V/6OCOJsK/TRgNVrPuPDqtdMFtA==", + "license": "MIT", "engines": { "node": ">=10" } }, "node_modules/mortice": { "version": "3.0.1", - "resolved": "https://registry.npmjs.org/mortice/-/mortice-3.0.1.tgz", - "integrity": "sha512-eyDUsl1nCR9+JtNksKnaESLP9MgAXCA4w1LTtsmOSQNsThnv++f36rrBu5fC/fdGIwTJZmbiaR/QewptH93pYA==", + "license": "Apache-2.0 OR MIT", "dependencies": { "nanoid": "^4.0.0", "observable-webworkers": "^2.0.1", @@ -10789,8 +9889,7 @@ }, "node_modules/mortice/node_modules/nanoid": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-4.0.0.tgz", - "integrity": "sha512-IgBP8piMxe/gf73RTQx7hmnhwz0aaEXYakvqZyE302IXW3HyVNhdNGC+O2MwMAVhLEnvXlvKtGbtJf6wvHihCg==", + "license": "MIT", "bin": { "nanoid": "bin/nanoid.js" }, @@ -10800,21 +9899,18 @@ }, "node_modules/mri": { "version": "1.1.4", - "resolved": "https://registry.npmjs.org/mri/-/mri-1.1.4.tgz", - "integrity": "sha512-6y7IjGPm8AzlvoUrwAaw1tLnUBudaS3752vcd8JtrpGGQn+rXIe63LFVHm/YMwtqAuh+LJPCFdlLYPWM1nYn6w==", + "license": "MIT", "engines": { "node": ">=4" } }, "node_modules/ms": { "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" + "license": "MIT" }, "node_modules/multicast-dns": { "version": "7.2.5", - "resolved": "https://registry.npmjs.org/multicast-dns/-/multicast-dns-7.2.5.tgz", - "integrity": "sha512-2eznPJP8z2BFLX50tf0LuODrpINqP1RVIm/CObbTcBRITQgmC/TjcREF1NeTBzIcR5XO/ukWo+YHOjBbFwIupg==", + "license": "MIT", "dependencies": { "dns-packet": "^5.2.2", "thunky": "^1.0.2" @@ -10825,8 +9921,7 @@ }, "node_modules/multiformats": { "version": "11.0.1", - "resolved": "https://registry.npmjs.org/multiformats/-/multiformats-11.0.1.tgz", - "integrity": "sha512-atWruyH34YiknSdL5yeIir00EDlJRpHzELYQxG7Iy29eCyL+VrZHpPrX5yqlik3jnuqpLpRKVZ0SGVb9UzKaSA==", + "license": "Apache-2.0 OR MIT", "engines": { "node": ">=16.0.0", "npm": ">=7.0.0" @@ -10834,16 +9929,14 @@ }, "node_modules/murmurhash3js-revisited": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/murmurhash3js-revisited/-/murmurhash3js-revisited-3.0.0.tgz", - "integrity": "sha512-/sF3ee6zvScXMb1XFJ8gDsSnY+X8PbOyjIuBhtgis10W2Jx4ZjIhikUCIF9c4gpJxVnQIsPAFrSwTCuAjicP6g==", + "license": "MIT", "engines": { "node": ">=8.0.0" } }, "node_modules/mutable-proxy": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/mutable-proxy/-/mutable-proxy-1.0.0.tgz", - "integrity": "sha512-4OvNRr1DJpy2QuDUV74m+BWZ//n4gG4bmd21MzDSPqHEidIDWqwyOjcadU1LBMO3vXYGurVKjfBrxrSQIHFu9A==", + "license": "MIT", "engines": { "node": ">=6.X.X", "npm": ">=3.X.X" @@ -10851,8 +9944,7 @@ }, "node_modules/nanoid": { "version": "3.3.3", - "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.3.tgz", - "integrity": "sha512-p1sjXuopFs0xg+fPASzQ28agW1oHD7xDsd9Xkf3T15H3c/cifrFHVwrh74PdoklAPi+i7MdRsE47vm2r6JoB+w==", + "license": "MIT", "bin": { "nanoid": "bin/nanoid.cjs" }, @@ -10862,54 +9954,46 @@ }, "node_modules/napi-macros": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/napi-macros/-/napi-macros-2.0.0.tgz", - "integrity": "sha512-A0xLykHtARfueITVDernsAWdtIMbOJgKgcluwENp3AlsKN/PloyO10HtmoqnFAQAcxPkgZN7wdfPfEd0zNGxbg==" + "license": "MIT" }, "node_modules/native-fetch": { "version": "4.0.2", - "resolved": "https://registry.npmjs.org/native-fetch/-/native-fetch-4.0.2.tgz", - "integrity": "sha512-4QcVlKFtv2EYVS5MBgsGX5+NWKtbDbIECdUXDBGDMAZXq3Jkv9zf+y8iS7Ub8fEdga3GpYeazp9gauNqXHJOCg==", + "license": "MIT", "peerDependencies": { "undici": "*" } }, "node_modules/natural-compare": { "version": "1.4.0", - "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", - "integrity": "sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==", "dev": true, + "license": "MIT", "peer": true }, "node_modules/natural-compare-lite": { "version": "1.4.0", - "resolved": "https://registry.npmjs.org/natural-compare-lite/-/natural-compare-lite-1.4.0.tgz", - "integrity": "sha512-Tj+HTDSJJKaZnfiuw+iaF9skdPpTo2GtEly5JHnWV/hfv2Qj/9RKsGISQtLh2ox3l5EAGw487hnBee0sIJ6v2g==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/neo-async": { "version": "2.6.2", - "resolved": "https://registry.npmjs.org/neo-async/-/neo-async-2.6.2.tgz", - "integrity": "sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/netmask": { "version": "2.0.2", - "resolved": "https://registry.npmjs.org/netmask/-/netmask-2.0.2.tgz", - "integrity": "sha512-dBpDMdxv9Irdq66304OLfEmQ9tbNRFnFTuZiLo+bD+r332bBmMJ8GBLXklIXXgxd3+v9+KUnZaUR5PJMa75Gsg==", + "license": "MIT", "engines": { "node": ">= 0.4.0" } }, "node_modules/next-tick": { "version": "1.1.0", - "resolved": "https://registry.npmjs.org/next-tick/-/next-tick-1.1.0.tgz", - "integrity": "sha512-CXdUiJembsNjuToQvxayPZF9Vqht7hewsvy2sOWafLvi2awflj9mOC6bHIg50orX8IJvWKY9wYQ/zB2kogPslQ==" + "license": "ISC" }, "node_modules/nise": { "version": "5.1.3", - "resolved": "https://registry.npmjs.org/nise/-/nise-5.1.3.tgz", - "integrity": "sha512-U597iWTTBBYIV72986jyU382/MMZ70ApWcRmkoF1AZ75bpqOtI3Gugv/6+0jLgoDOabmcSwYBkSSAWIp1eA5cg==", "dev": true, + "license": "BSD-3-Clause", "dependencies": { "@sinonjs/commons": "^2.0.0", "@sinonjs/fake-timers": "^7.0.4", @@ -10920,26 +10004,23 @@ }, "node_modules/nise/node_modules/@sinonjs/fake-timers": { "version": "7.1.2", - "resolved": "https://registry.npmjs.org/@sinonjs/fake-timers/-/fake-timers-7.1.2.tgz", - "integrity": "sha512-iQADsW4LBMISqZ6Ci1dupJL9pprqwcVFTcOsEmQOEhW+KLCVn/Y4Jrvg2k19fIHCp+iFprriYPTdRcQR8NbUPg==", "dev": true, + "license": "BSD-3-Clause", "dependencies": { "@sinonjs/commons": "^1.7.0" } }, "node_modules/nise/node_modules/@sinonjs/fake-timers/node_modules/@sinonjs/commons": { "version": "1.8.6", - "resolved": "https://registry.npmjs.org/@sinonjs/commons/-/commons-1.8.6.tgz", - "integrity": "sha512-Ky+XkAkqPZSm3NLBeUng77EBQl3cmeJhITaGHdYH8kjVB+aun3S4XBRti2zt17mtt0mIUDiNxYeoJm6drVvBJQ==", "dev": true, + "license": "BSD-3-Clause", "dependencies": { "type-detect": "4.0.8" } }, "node_modules/no-case": { "version": "3.0.4", - "resolved": "https://registry.npmjs.org/no-case/-/no-case-3.0.4.tgz", - "integrity": "sha512-fgAN3jGAh+RoxUGZHTSOLJIqUc2wmoBwGR4tbpNAKmmovFoWq0OdRkb0VkldReO2a2iBT/OEulG9XSUc10r3zg==", + "license": "MIT", "dependencies": { "lower-case": "^2.0.2", "tslib": "^2.0.3" @@ -10947,8 +10028,7 @@ }, "node_modules/nock": { "version": "13.3.0", - "resolved": "https://registry.npmjs.org/nock/-/nock-13.3.0.tgz", - "integrity": "sha512-HHqYQ6mBeiMc+N038w8LkMpDCRquCHWeNmN3v6645P3NhN2+qXOBqvPqo7Rt1VyCMzKhJ733wZqw5B7cQVFNPg==", + "license": "MIT", "dependencies": { "debug": "^4.1.0", "json-stringify-safe": "^5.0.1", @@ -10961,8 +10041,6 @@ }, "node_modules/node-domexception": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/node-domexception/-/node-domexception-1.0.0.tgz", - "integrity": "sha512-/jKZoMpw0F8GRwl4/eLROPA3cfcXtLApP0QzLmUT/HuPCZWyB7IY9ZrMeKw2O/nFIqPQB3PVM9aYm0F312AXDQ==", "funding": [ { "type": "github", @@ -10973,14 +10051,14 @@ "url": "https://paypal.me/jimmywarting" } ], + "license": "MIT", "engines": { "node": ">=10.5.0" } }, "node_modules/node-fetch": { "version": "3.3.0", - "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-3.3.0.tgz", - "integrity": "sha512-BKwRP/O0UvoMKp7GNdwPlObhYGB5DQqwhEDQlNKuoqwVYSxkSZCSbHjnFFmUEtwSKRPU4kNK8PbDYYitwaE3QA==", + "license": "MIT", "dependencies": { "data-uri-to-buffer": "^4.0.0", "fetch-blob": "^3.1.4", @@ -10996,16 +10074,14 @@ }, "node_modules/node-forge": { "version": "1.3.1", - "resolved": "https://registry.npmjs.org/node-forge/-/node-forge-1.3.1.tgz", - "integrity": "sha512-dPEtOeMvF9VMcYV/1Wb8CPoVAXtp6MKMlcbAt4ddqmGqUJ6fQZFXkNZNkNlfevtNkGtaSoXf/vNNNSvgrdXwtA==", + "license": "(BSD-3-Clause OR GPL-2.0)", "engines": { "node": ">= 6.13.0" } }, "node_modules/node-gyp-build": { "version": "4.5.0", - "resolved": "https://registry.npmjs.org/node-gyp-build/-/node-gyp-build-4.5.0.tgz", - "integrity": "sha512-2iGbaQBV+ITgCz76ZEjmhUKAKVf7xfY1sRl4UiKQspfZMH2h06SyhNsnSVy50cwkFQDGLyif6m/6uFXHkOZ6rg==", + "license": "MIT", "bin": { "node-gyp-build": "bin.js", "node-gyp-build-optional": "optional.js", @@ -11014,14 +10090,12 @@ }, "node_modules/node-releases": { "version": "2.0.8", - "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.8.tgz", - "integrity": "sha512-dFSmB8fFHEH/s81Xi+Y/15DQY6VHW81nXRj86EMSL3lmuTmK1e+aT4wrFCkTbm+gSwkw4KpX+rT/pMM2c1mF+A==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/nopt": { "version": "5.0.0", - "resolved": "https://registry.npmjs.org/nopt/-/nopt-5.0.0.tgz", - "integrity": "sha512-Tbj67rffqceeLpcRXrT7vKAN8CwfPeIBgM7E6iBkmKLV7bEMwpGgYLGv0jACUsECaa/vuxP0IjEont6umdMgtQ==", + "license": "ISC", "dependencies": { "abbrev": "1" }, @@ -11034,17 +10108,15 @@ }, "node_modules/normalize-path": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", - "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", "dev": true, + "license": "MIT", "engines": { "node": ">=0.10.0" } }, "node_modules/normalize-url": { "version": "8.0.0", - "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-8.0.0.tgz", - "integrity": "sha512-uVFpKhj5MheNBJRTiMZ9pE/7hD1QTeEvugSJW/OmLzAp78PB5O6adfMNTvmfKhXBkvCzC+rqifWcVYpGFwTjnw==", + "license": "MIT", "engines": { "node": ">=14.16" }, @@ -11054,8 +10126,7 @@ }, "node_modules/npm-run-path": { "version": "5.1.0", - "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-5.1.0.tgz", - "integrity": "sha512-sJOdmRGrY2sjNTRMbSvluQqg+8X7ZK61yvzBEIDhz4f8z1TZFYABsqjjCBd/0PUNE9M6QDgHJXQkGUEm7Q+l9Q==", + "license": "MIT", "dependencies": { "path-key": "^4.0.0" }, @@ -11068,8 +10139,7 @@ }, "node_modules/npm-run-path/node_modules/path-key": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/path-key/-/path-key-4.0.0.tgz", - "integrity": "sha512-haREypq7xkM7ErfgIyA0z+Bj4AGKlMSdlQE2jvJo6huWD1EdkKYV+G/T4nq0YEF2vgTT8kqMFKo1uHn950r4SQ==", + "license": "MIT", "engines": { "node": ">=12" }, @@ -11079,8 +10149,7 @@ }, "node_modules/npmlog": { "version": "5.0.1", - "resolved": "https://registry.npmjs.org/npmlog/-/npmlog-5.0.1.tgz", - "integrity": "sha512-AqZtDUWOMKs1G/8lwylVjrdYgqA4d9nu8hc+0gzRxlDb1I10+FHBGMXs6aiQHFdCUUlqH99MUMuLfzWDNDtfxw==", + "license": "ISC", "dependencies": { "are-we-there-yet": "^2.0.0", "console-control-strings": "^1.1.0", @@ -11090,24 +10159,21 @@ }, "node_modules/object-assign": { "version": "4.1.1", - "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", - "integrity": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==", + "license": "MIT", "engines": { "node": ">=0.10.0" } }, "node_modules/object-inspect": { "version": "1.12.2", - "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.12.2.tgz", - "integrity": "sha512-z+cPxW0QGUp0mcqcsgQyLVRDoXFQbXOwBaqyF7VIgI4TWNQsDHrBpUQslRmIfAoYWdYzs6UlKJtB2XJpTaNSpQ==", + "license": "MIT", "funding": { "url": "https://github.com/sponsors/ljharb" } }, "node_modules/observable-webworkers": { "version": "2.0.1", - "resolved": "https://registry.npmjs.org/observable-webworkers/-/observable-webworkers-2.0.1.tgz", - "integrity": "sha512-JI1vB0u3pZjoQKOK1ROWzp0ygxSi7Yb0iR+7UNsw4/Zn4cQ0P3R7XL38zac/Dy2tEA7Lg88/wIJTjF8vYXZ0uw==", + "license": "Apache-2.0 OR MIT", "engines": { "node": ">=16.0.0", "npm": ">=7.0.0" @@ -11115,16 +10181,14 @@ }, "node_modules/once": { "version": "1.4.0", - "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", - "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", + "license": "ISC", "dependencies": { "wrappy": "1" } }, "node_modules/onetime": { "version": "6.0.0", - "resolved": "https://registry.npmjs.org/onetime/-/onetime-6.0.0.tgz", - "integrity": "sha512-1FlR+gjXK7X+AsAHso35MnyN5KqGwJRi/31ft6x0M194ht7S+rWAvd7PHss9xSKMzE0asv1pyIHaJYq+BbacAQ==", + "license": "MIT", "dependencies": { "mimic-fn": "^4.0.0" }, @@ -11137,9 +10201,8 @@ }, "node_modules/optionator": { "version": "0.9.1", - "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.1.tgz", - "integrity": "sha512-74RlY5FCnhq4jRxVUPKDaRwrVNXMqsGsiW6AJw4XK8hmtm10wC0ypZBLw5IIp85NZMr91+qd1RvvENwg7jjRFw==", "dev": true, + "license": "MIT", "peer": true, "dependencies": { "deep-is": "^0.1.3", @@ -11155,16 +10218,14 @@ }, "node_modules/p-cancelable": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/p-cancelable/-/p-cancelable-3.0.0.tgz", - "integrity": "sha512-mlVgR3PGuzlo0MmTdk4cXqXWlwQDLnONTAg6sm62XkMJEiRxN3GL3SffkYvqwonbkJBcrI7Uvv5Zh9yjvn2iUw==", + "license": "MIT", "engines": { "node": ">=12.20" } }, "node_modules/p-defer": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/p-defer/-/p-defer-4.0.0.tgz", - "integrity": "sha512-Vb3QRvQ0Y5XnF40ZUWW7JfLogicVh/EnA5gBIvKDJoYpeI82+1E3AlB9yOcKFS0AhHrWVnAQO39fbR0G99IVEQ==", + "license": "MIT", "engines": { "node": ">=12" }, @@ -11174,8 +10235,7 @@ }, "node_modules/p-event": { "version": "5.0.1", - "resolved": "https://registry.npmjs.org/p-event/-/p-event-5.0.1.tgz", - "integrity": "sha512-dd589iCQ7m1L0bmC5NLlVYfy3TbBEsMUfWx9PyAgPeIcFZ/E2yaTZ4Rz4MiBmmJShviiftHVXOqfnfzJ6kyMrQ==", + "license": "MIT", "dependencies": { "p-timeout": "^5.0.2" }, @@ -11188,8 +10248,7 @@ }, "node_modules/p-event/node_modules/p-timeout": { "version": "5.1.0", - "resolved": "https://registry.npmjs.org/p-timeout/-/p-timeout-5.1.0.tgz", - "integrity": "sha512-auFDyzzzGZZZdHz3BtET9VEz0SE/uMEAx7uWfGPucfzEwwe/xH0iVeZibQmANYE/hp9T2+UUZT5m+BKyrDp3Ew==", + "license": "MIT", "engines": { "node": ">=12" }, @@ -11199,8 +10258,7 @@ }, "node_modules/p-fifo": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/p-fifo/-/p-fifo-1.0.0.tgz", - "integrity": "sha512-IjoCxXW48tqdtDFz6fqo5q1UfFVjjVZe8TC1QRflvNUJtNfCUhxOUw6MOVZhDPjqhSzc26xKdugsO17gmzd5+A==", + "license": "MIT", "dependencies": { "fast-fifo": "^1.0.0", "p-defer": "^3.0.0" @@ -11208,17 +10266,15 @@ }, "node_modules/p-fifo/node_modules/p-defer": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/p-defer/-/p-defer-3.0.0.tgz", - "integrity": "sha512-ugZxsxmtTln604yeYd29EGrNhazN2lywetzpKhfmQjW/VJmhpDmWbiX+h0zL8V91R0UXkhb3KtPmyq9PZw3aYw==", + "license": "MIT", "engines": { "node": ">=8" } }, "node_modules/p-limit": { "version": "3.1.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", - "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", "dev": true, + "license": "MIT", "dependencies": { "yocto-queue": "^0.1.0" }, @@ -11231,9 +10287,8 @@ }, "node_modules/p-locate": { "version": "5.0.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz", - "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==", "dev": true, + "license": "MIT", "dependencies": { "p-limit": "^3.0.2" }, @@ -11246,8 +10301,7 @@ }, "node_modules/p-queue": { "version": "7.3.0", - "resolved": "https://registry.npmjs.org/p-queue/-/p-queue-7.3.0.tgz", - "integrity": "sha512-5fP+yVQ0qp0rEfZoDTlP2c3RYBgxvRsw30qO+VtPPc95lyvSG+x6USSh1TuLB4n96IO6I8/oXQGsTgtna4q2nQ==", + "license": "MIT", "dependencies": { "eventemitter3": "^4.0.7", "p-timeout": "^5.0.2" @@ -11261,8 +10315,7 @@ }, "node_modules/p-queue/node_modules/p-timeout": { "version": "5.1.0", - "resolved": "https://registry.npmjs.org/p-timeout/-/p-timeout-5.1.0.tgz", - "integrity": "sha512-auFDyzzzGZZZdHz3BtET9VEz0SE/uMEAx7uWfGPucfzEwwe/xH0iVeZibQmANYE/hp9T2+UUZT5m+BKyrDp3Ew==", + "license": "MIT", "engines": { "node": ">=12" }, @@ -11272,8 +10325,7 @@ }, "node_modules/p-reflect": { "version": "3.1.0", - "resolved": "https://registry.npmjs.org/p-reflect/-/p-reflect-3.1.0.tgz", - "integrity": "sha512-3sG3UlpisPSaX+o7u2q01hIQmrpkvdl5GSO1ZwL7pfc5kHB2bPF0eFNCfYTrW1/LTUdgmPwBAvmT0Zr8eSmaAQ==", + "license": "MIT", "engines": { "node": ">=12" }, @@ -11283,8 +10335,7 @@ }, "node_modules/p-retry": { "version": "5.1.2", - "resolved": "https://registry.npmjs.org/p-retry/-/p-retry-5.1.2.tgz", - "integrity": "sha512-couX95waDu98NfNZV+i/iLt+fdVxmI7CbrrdC2uDWfPdUAApyxT4wmDlyOtR5KtTDmkDO0zDScDjDou9YHhd9g==", + "license": "MIT", "dependencies": { "@types/retry": "0.12.1", "retry": "^0.13.1" @@ -11298,8 +10349,7 @@ }, "node_modules/p-settle": { "version": "5.1.0", - "resolved": "https://registry.npmjs.org/p-settle/-/p-settle-5.1.0.tgz", - "integrity": "sha512-ujR6UFfh09ziOKyC5aaJak5ZclsjlLw57SYtFZg6yllMofyygnaibQRZ4jf6QPWqoOCGUXyb1cxUKELeAyKO7g==", + "license": "MIT", "dependencies": { "p-limit": "^4.0.0", "p-reflect": "^3.1.0" @@ -11313,8 +10363,7 @@ }, "node_modules/p-settle/node_modules/p-limit": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-4.0.0.tgz", - "integrity": "sha512-5b0R4txpzjPWVw/cXXUResoD4hb6U/x9BH08L7nw+GN1sezDzPdxeRvpc9c433fZhBan/wusjbCsqwqm4EIBIQ==", + "license": "MIT", "dependencies": { "yocto-queue": "^1.0.0" }, @@ -11327,8 +10376,7 @@ }, "node_modules/p-settle/node_modules/yocto-queue": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-1.0.0.tgz", - "integrity": "sha512-9bnSc/HEW2uRy67wc+T8UwauLuPJVn28jb+GtJY16iiKWyvmYJRXVT4UamsAEGQfPohgr2q4Tq0sQbQlxTfi1g==", + "license": "MIT", "engines": { "node": ">=12.20" }, @@ -11338,8 +10386,7 @@ }, "node_modules/p-timeout": { "version": "6.0.0", - "resolved": "https://registry.npmjs.org/p-timeout/-/p-timeout-6.0.0.tgz", - "integrity": "sha512-5iS61MOdUMemWH9CORQRxVXTp9g5K8rPnI9uQpo97aWgsH3vVXKjkIhDi+OgIDmN3Ly9+AZ2fZV01Wut1yzfKA==", + "license": "MIT", "engines": { "node": ">=14.16" }, @@ -11349,22 +10396,19 @@ }, "node_modules/p-try": { "version": "2.2.0", - "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", - "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==", "dev": true, + "license": "MIT", "engines": { "node": ">=6" } }, "node_modules/p-try-each": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/p-try-each/-/p-try-each-1.0.1.tgz", - "integrity": "sha512-WyUjRAvK4CG9DUW21ZsNYcBj6guN7pgZAOFR8mUtyNXyPC5WUo3L48nxI5TsGEZ+VJhZXzyeH/Sxi2lxYcPp3A==" + "license": "MIT" }, "node_modules/package-json": { "version": "8.1.0", - "resolved": "https://registry.npmjs.org/package-json/-/package-json-8.1.0.tgz", - "integrity": "sha512-hySwcV8RAWeAfPsXb9/HGSPn8lwDnv6fabH+obUZKX169QknRkRhPxd1yMubpKDskLFATkl3jHpNtVtDPFA0Wg==", + "license": "MIT", "dependencies": { "got": "^12.1.0", "registry-auth-token": "^5.0.1", @@ -11380,8 +10424,7 @@ }, "node_modules/package-json/node_modules/semver": { "version": "7.3.8", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.8.tgz", - "integrity": "sha512-NB1ctGL5rlHrPJtFDVIVzTyQylMLu9N9VICA6HSFJo8MCGVTMW6gfpicwKmmK/dAjTOrqu5l63JJOpDSrAis3A==", + "license": "ISC", "dependencies": { "lru-cache": "^6.0.0" }, @@ -11394,13 +10437,11 @@ }, "node_modules/pako": { "version": "2.1.0", - "resolved": "https://registry.npmjs.org/pako/-/pako-2.1.0.tgz", - "integrity": "sha512-w+eufiZ1WuJYgPXbV/PO3NCMEc3xqylkKHzp8bxp1uW4qaSNQUkwmLLEc3kKsfz8lpV1F8Ht3U1Cm+9Srog2ug==" + "license": "(MIT AND Zlib)" }, "node_modules/param-case": { "version": "3.0.4", - "resolved": "https://registry.npmjs.org/param-case/-/param-case-3.0.4.tgz", - "integrity": "sha512-RXlj7zCYokReqWpOPH9oYivUzLYZ5vAPIfEmCTNViosC78F8F0H9y7T7gG2M39ymgutxF5gcFEsyZQSph9Bp3A==", + "license": "MIT", "dependencies": { "dot-case": "^3.0.4", "tslib": "^2.0.3" @@ -11408,9 +10449,8 @@ }, "node_modules/parent-module": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz", - "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==", "dev": true, + "license": "MIT", "peer": true, "dependencies": { "callsites": "^3.0.0" @@ -11421,13 +10461,11 @@ }, "node_modules/parse-duration": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/parse-duration/-/parse-duration-1.0.2.tgz", - "integrity": "sha512-Dg27N6mfok+ow1a2rj/nRjtCfaKrHUZV2SJpEn/s8GaVUSlf4GGRCRP1c13Hj+wfPKVMrFDqLMLITkYKgKxyyg==" + "license": "MIT" }, "node_modules/pascal-case": { "version": "3.1.2", - "resolved": "https://registry.npmjs.org/pascal-case/-/pascal-case-3.1.2.tgz", - "integrity": "sha512-uWlGT3YSnK9x3BQJaOdcZwrnV6hPpd8jFH1/ucpiLRPh/2zCVJKS19E4GvYHvaCcACn3foXZ0cLB9Wrx1KGe5g==", + "license": "MIT", "dependencies": { "no-case": "^3.0.4", "tslib": "^2.0.3" @@ -11435,8 +10473,7 @@ }, "node_modules/path-case": { "version": "3.0.4", - "resolved": "https://registry.npmjs.org/path-case/-/path-case-3.0.4.tgz", - "integrity": "sha512-qO4qCFjXqVTrcbPt/hQfhTQ+VhFsqNKOPtytgNKkKxSoEp3XPUQ8ObFuePylOIok5gjn69ry8XiULxCwot3Wfg==", + "license": "MIT", "dependencies": { "dot-case": "^3.0.4", "tslib": "^2.0.3" @@ -11444,51 +10481,45 @@ }, "node_modules/path-exists": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", - "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", "dev": true, + "license": "MIT", "engines": { "node": ">=8" } }, "node_modules/path-is-absolute": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", - "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==", + "license": "MIT", "engines": { "node": ">=0.10.0" } }, "node_modules/path-key": { "version": "3.1.1", - "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", - "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", + "license": "MIT", "engines": { "node": ">=8" } }, "node_modules/path-to-regexp": { "version": "1.8.0", - "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-1.8.0.tgz", - "integrity": "sha512-n43JRhlUKUAlibEJhPeir1ncUID16QnEjNpwzNdO3Lm4ywrBpBZ5oLD0I6br9evr1Y9JTqwRtAh7JLoOzAQdVA==", "dev": true, + "license": "MIT", "dependencies": { "isarray": "0.0.1" } }, "node_modules/path-type": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz", - "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==", "dev": true, + "license": "MIT", "engines": { "node": ">=8" } }, "node_modules/peek-readable": { "version": "5.0.0", - "resolved": "https://registry.npmjs.org/peek-readable/-/peek-readable-5.0.0.tgz", - "integrity": "sha512-YtCKvLUOvwtMGmrniQPdO7MwPjgkFBtFIrmfSbYmYuq3tKDV/mcfAhBth1+C3ru7uXIZasc/pHnb+YDYNkkj4A==", + "license": "MIT", "engines": { "node": ">=14.16" }, @@ -11499,15 +10530,13 @@ }, "node_modules/picocolors": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz", - "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==", - "dev": true + "dev": true, + "license": "ISC" }, "node_modules/picomatch": { "version": "2.3.1", - "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", - "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", "dev": true, + "license": "MIT", "engines": { "node": ">=8.6" }, @@ -11517,17 +10546,15 @@ }, "node_modules/pify": { "version": "4.0.1", - "resolved": "https://registry.npmjs.org/pify/-/pify-4.0.1.tgz", - "integrity": "sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==", "dev": true, + "license": "MIT", "engines": { "node": ">=6" } }, "node_modules/pino": { "version": "6.14.0", - "resolved": "https://registry.npmjs.org/pino/-/pino-6.14.0.tgz", - "integrity": "sha512-iuhEDel3Z3hF9Jfe44DPXR8l07bhjuFY3GMHIXbjnY9XcafbyDDwl2sN2vw2GjMPf5Nkoe+OFao7ffn9SXaKDg==", + "license": "MIT", "dependencies": { "fast-redact": "^3.0.0", "fast-safe-stringify": "^2.0.8", @@ -11543,8 +10570,7 @@ }, "node_modules/pino-pretty": { "version": "4.8.0", - "resolved": "https://registry.npmjs.org/pino-pretty/-/pino-pretty-4.8.0.tgz", - "integrity": "sha512-mhQfHG4rw5ZFpWL44m0Utjo4GC2+HMfdNvxyA8lLw0sIqn6fCf7uQe6dPckUcW/obly+OQHD7B/MTso6LNizYw==", + "license": "MIT", "dependencies": { "@hapi/bourne": "^2.0.0", "args": "^5.0.1", @@ -11565,8 +10591,7 @@ }, "node_modules/pino-pretty/node_modules/ansi-styles": { "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "license": "MIT", "dependencies": { "color-convert": "^2.0.1" }, @@ -11579,8 +10604,7 @@ }, "node_modules/pino-pretty/node_modules/chalk": { "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "license": "MIT", "dependencies": { "ansi-styles": "^4.1.0", "supports-color": "^7.1.0" @@ -11594,8 +10618,7 @@ }, "node_modules/pino-pretty/node_modules/color-convert": { "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "license": "MIT", "dependencies": { "color-name": "~1.1.4" }, @@ -11605,21 +10628,18 @@ }, "node_modules/pino-pretty/node_modules/color-name": { "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" + "license": "MIT" }, "node_modules/pino-pretty/node_modules/has-flag": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "license": "MIT", "engines": { "node": ">=8" } }, "node_modules/pino-pretty/node_modules/readable-stream": { "version": "3.6.0", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", - "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", + "license": "MIT", "dependencies": { "inherits": "^2.0.3", "string_decoder": "^1.1.1", @@ -11631,16 +10651,14 @@ }, "node_modules/pino-pretty/node_modules/split2": { "version": "3.2.2", - "resolved": "https://registry.npmjs.org/split2/-/split2-3.2.2.tgz", - "integrity": "sha512-9NThjpgZnifTkJpzTZ7Eue85S49QwpNhZTq6GRJwObb6jnLFNGB7Qm73V5HewTROPyxD0C29xqmaI68bQtV+hg==", + "license": "ISC", "dependencies": { "readable-stream": "^3.0.0" } }, "node_modules/pino-pretty/node_modules/supports-color": { "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "license": "MIT", "dependencies": { "has-flag": "^4.0.0" }, @@ -11650,23 +10668,20 @@ }, "node_modules/pino-std-serializers": { "version": "3.2.0", - "resolved": "https://registry.npmjs.org/pino-std-serializers/-/pino-std-serializers-3.2.0.tgz", - "integrity": "sha512-EqX4pwDPrt3MuOAAUBMU0Tk5kR/YcCM5fNPEzgCO2zJ5HfX0vbiH9HbJglnyeQsN96Kznae6MWD47pZB5avTrg==" + "license": "MIT" }, "node_modules/pirates": { "version": "4.0.5", - "resolved": "https://registry.npmjs.org/pirates/-/pirates-4.0.5.tgz", - "integrity": "sha512-8V9+HQPupnaXMA23c5hvl69zXvTwTzyAYasnkb0Tts4XvO4CliqONMOnvlq26rkhLC3nWDFBJf73LU1e1VZLaQ==", "dev": true, + "license": "MIT", "engines": { "node": ">= 6" } }, "node_modules/pkg-dir": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-3.0.0.tgz", - "integrity": "sha512-/E57AYkoeQ25qkxMj5PBOVgF8Kiu/h7cYS30Z5+R7WaiCCBfLq58ZI/dSeaEKb9WVJV5n/03QwrN3IeWIFllvw==", "dev": true, + "license": "MIT", "dependencies": { "find-up": "^3.0.0" }, @@ -11676,9 +10691,8 @@ }, "node_modules/pkg-dir/node_modules/find-up": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz", - "integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==", "dev": true, + "license": "MIT", "dependencies": { "locate-path": "^3.0.0" }, @@ -11688,9 +10702,8 @@ }, "node_modules/pkg-dir/node_modules/locate-path": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz", - "integrity": "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==", "dev": true, + "license": "MIT", "dependencies": { "p-locate": "^3.0.0", "path-exists": "^3.0.0" @@ -11701,9 +10714,8 @@ }, "node_modules/pkg-dir/node_modules/p-limit": { "version": "2.3.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", - "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", "dev": true, + "license": "MIT", "dependencies": { "p-try": "^2.0.0" }, @@ -11716,9 +10728,8 @@ }, "node_modules/pkg-dir/node_modules/p-locate": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz", - "integrity": "sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==", "dev": true, + "license": "MIT", "dependencies": { "p-limit": "^2.0.0" }, @@ -11728,23 +10739,20 @@ }, "node_modules/pkg-dir/node_modules/path-exists": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", - "integrity": "sha512-bpC7GYwiDYQ4wYLe+FA8lhRjhQCMcQGuSgGGqDkg/QerRWw9CmGRT0iSOVRSZJ29NMLZgIzqaljJ63oaL4NIJQ==", "dev": true, + "license": "MIT", "engines": { "node": ">=4" } }, "node_modules/platform": { "version": "1.3.6", - "resolved": "https://registry.npmjs.org/platform/-/platform-1.3.6.tgz", - "integrity": "sha512-fnWVljUchTro6RiCFvCXBbNhJc2NijN7oIQxbwsyL0buWJPG85v81ehlHI9fXrJsMNgTofEoWIQeClKpgxFLrg==" + "license": "MIT" }, "node_modules/prelude-ls": { "version": "1.2.1", - "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz", - "integrity": "sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==", "dev": true, + "license": "MIT", "peer": true, "engines": { "node": ">= 0.8.0" @@ -11752,9 +10760,8 @@ }, "node_modules/prettier": { "version": "2.7.1", - "resolved": "https://registry.npmjs.org/prettier/-/prettier-2.7.1.tgz", - "integrity": "sha512-ujppO+MkdPqoVINuDFDRLClm7D78qbDt0/NR+wp5FqEZOoTNAjPHWj17QRhu7geIHJfcNhRk1XVQmF8Bp3ye+g==", "dev": true, + "license": "MIT", "bin": { "prettier": "bin-prettier.js" }, @@ -11767,8 +10774,7 @@ }, "node_modules/pretty-bytes": { "version": "6.0.0", - "resolved": "https://registry.npmjs.org/pretty-bytes/-/pretty-bytes-6.0.0.tgz", - "integrity": "sha512-6UqkYefdogmzqAZWzJ7laYeJnaXDy2/J+ZqiiMtS7t7OfpXWTlaeGMwX8U6EFvPV/YWWEKRkS8hKS4k60WHTOg==", + "license": "MIT", "engines": { "node": "^14.13.1 || >=16.0.0" }, @@ -11778,8 +10784,7 @@ }, "node_modules/private-ip": { "version": "2.3.4", - "resolved": "https://registry.npmjs.org/private-ip/-/private-ip-2.3.4.tgz", - "integrity": "sha512-ts/YFVwfBeLq61f9+KsOhXW6RH0wvY0gU50R6QZYzgFhggyyLK6WDFeYdjfi/HMnBm2hecLvsR3PB3JcRxDk+A==", + "license": "MIT", "dependencies": { "ip-regex": "^4.3.0", "ipaddr.js": "^2.0.1", @@ -11789,16 +10794,14 @@ }, "node_modules/private-ip/node_modules/ip-regex": { "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ip-regex/-/ip-regex-4.3.0.tgz", - "integrity": "sha512-B9ZWJxHHOHUhUjCPrMpLD4xEq35bUTClHM1S6CBU5ixQnkZmwipwgc96vAd7AAGM9TGHvJR+Uss+/Ak6UphK+Q==", + "license": "MIT", "engines": { "node": ">=8" } }, "node_modules/private-ip/node_modules/is-ip": { "version": "3.1.0", - "resolved": "https://registry.npmjs.org/is-ip/-/is-ip-3.1.0.tgz", - "integrity": "sha512-35vd5necO7IitFPjd/YBeqwWnyDWbuLH9ZXQdMfDA8TEo7pv5X8yfrvVO3xbJbLUlERCMvf6X0hTUamQxCYJ9Q==", + "license": "MIT", "dependencies": { "ip-regex": "^4.0.0" }, @@ -11808,29 +10811,25 @@ }, "node_modules/process": { "version": "0.11.10", - "resolved": "https://registry.npmjs.org/process/-/process-0.11.10.tgz", - "integrity": "sha512-cdGef/drWFoydD1JsMzuFf8100nZl+GT+yacc2bEced5f9Rjk4z+WtFUTBu9PhOi9j/jfmBPu0mMEY4wIdAF8A==", + "license": "MIT", "engines": { "node": ">= 0.6.0" } }, "node_modules/process-warning": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/process-warning/-/process-warning-1.0.0.tgz", - "integrity": "sha512-du4wfLyj4yCZq1VupnVSZmRsPJsNuxoDQFdCFHLaYiEbFBD7QE0a+I4D7hOxrVnh78QE/YipFAj9lXHiXocV+Q==" + "license": "MIT" }, "node_modules/progress": { "version": "2.0.3", - "resolved": "https://registry.npmjs.org/progress/-/progress-2.0.3.tgz", - "integrity": "sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA==", + "license": "MIT", "engines": { "node": ">=0.4.0" } }, "node_modules/prom-client": { "version": "14.1.1", - "resolved": "https://registry.npmjs.org/prom-client/-/prom-client-14.1.1.tgz", - "integrity": "sha512-hFU32q7UZQ59bVJQGUtm3I2PrJ3gWvoCkilX9sF165ks1qflhugVCeK+S1JjJYHvyt3o5kj68+q3bchormjnzw==", + "license": "Apache-2.0", "optional": true, "dependencies": { "tdigest": "^0.1.1" @@ -11841,16 +10840,14 @@ }, "node_modules/propagate": { "version": "2.0.1", - "resolved": "https://registry.npmjs.org/propagate/-/propagate-2.0.1.tgz", - "integrity": "sha512-vGrhOavPSTz4QVNuBNdcNXePNdNMaO1xj9yBeH1ScQPjk/rhg9sSlCXPhMkFuaNNW/syTvYqsnbIJxMBfRbbag==", + "license": "MIT", "engines": { "node": ">= 8" } }, "node_modules/proper-lockfile": { "version": "4.1.2", - "resolved": "https://registry.npmjs.org/proper-lockfile/-/proper-lockfile-4.1.2.tgz", - "integrity": "sha512-TjNPblN4BwAWMXU8s9AEz4JmQxnD1NNL7bNOY/AKUzyamc379FWASUhc/K1pL2noVb+XmZKLL68cjzLsiOAMaA==", + "license": "MIT", "dependencies": { "graceful-fs": "^4.2.4", "retry": "^0.12.0", @@ -11859,22 +10856,19 @@ }, "node_modules/proper-lockfile/node_modules/retry": { "version": "0.12.0", - "resolved": "https://registry.npmjs.org/retry/-/retry-0.12.0.tgz", - "integrity": "sha512-9LkiTwjUh6rT555DtE9rTX+BKByPfrMzEAtnlEtdEwr3Nkffwiihqe2bWADg+OQRjt9gl6ICdmB/ZFDCGAtSow==", + "license": "MIT", "engines": { "node": ">= 4" } }, "node_modules/proto-list": { "version": "1.2.4", - "resolved": "https://registry.npmjs.org/proto-list/-/proto-list-1.2.4.tgz", - "integrity": "sha512-vtK/94akxsTMhe0/cbfpR+syPuszcuwhqVjJq26CuNDgFGj682oRBXOP5MJpv2r7JtE8MsiepGIqvvOTBwn2vA==" + "license": "ISC" }, "node_modules/protobufjs": { "version": "7.1.2", - "resolved": "https://registry.npmjs.org/protobufjs/-/protobufjs-7.1.2.tgz", - "integrity": "sha512-4ZPTPkXCdel3+L81yw3dG6+Kq3umdWKh7Dc7GW/CpNk4SX3hK58iPCWeCyhVTDrbkNeKrYNZ7EojM5WDaEWTLQ==", "hasInstallScript": true, + "license": "BSD-3-Clause", "dependencies": { "@protobufjs/aspromise": "^1.1.2", "@protobufjs/base64": "^1.1.2", @@ -11895,13 +10889,11 @@ }, "node_modules/protobufjs/node_modules/long": { "version": "5.2.1", - "resolved": "https://registry.npmjs.org/long/-/long-5.2.1.tgz", - "integrity": "sha512-GKSNGeNAtw8IryjjkhZxuKB3JzlcLTwjtiQCHKvqQet81I93kXslhDQruGI/QsddO83mcDToBVy7GqGS/zYf/A==" + "license": "Apache-2.0" }, "node_modules/protons-runtime": { "version": "4.0.1", - "resolved": "https://registry.npmjs.org/protons-runtime/-/protons-runtime-4.0.1.tgz", - "integrity": "sha512-SPeV+8TzJAp5UJYPV7vJkLRi08CP0DksxpKK60rcNaZSPkMBQwc0jQrmkHqwc5P0cYbZzKsdYrUBwRrDLrzTfQ==", + "license": "Apache-2.0 OR MIT", "dependencies": { "protobufjs": "^7.0.0", "uint8arraylist": "^2.3.2" @@ -11916,8 +10908,7 @@ }, "node_modules/pump": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz", - "integrity": "sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==", + "license": "MIT", "dependencies": { "end-of-stream": "^1.1.0", "once": "^1.3.1" @@ -11925,9 +10916,8 @@ }, "node_modules/punycode": { "version": "2.2.0", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.2.0.tgz", - "integrity": "sha512-LN6QV1IJ9ZhxWTNdktaPClrNfp8xdSAYS0Zk2ddX7XsXZAxckMHPCBcHRo0cTcEIgYPRiGEkmji3Idkh2yFtYw==", "dev": true, + "license": "MIT", "peer": true, "engines": { "node": ">=6" @@ -11935,8 +10925,7 @@ }, "node_modules/pupa": { "version": "3.1.0", - "resolved": "https://registry.npmjs.org/pupa/-/pupa-3.1.0.tgz", - "integrity": "sha512-FLpr4flz5xZTSJxSeaheeMKN/EDzMdK7b8PTOC6a5PYFKTucWbdqjgqaEyH0shFiSJrVB1+Qqi4Tk19ccU6Aug==", + "license": "MIT", "dependencies": { "escape-goat": "^4.0.0" }, @@ -11949,8 +10938,7 @@ }, "node_modules/qs": { "version": "6.11.0", - "resolved": "https://registry.npmjs.org/qs/-/qs-6.11.0.tgz", - "integrity": "sha512-MvjoMCJwEarSbUYk5O+nmoSzSutSsTwF85zcHPQ9OrlFoZOYIjaqBAJIqIXjptyD5vThxGq52Xu/MaJzRkIk4Q==", + "license": "BSD-3-Clause", "dependencies": { "side-channel": "^1.0.4" }, @@ -11963,8 +10951,6 @@ }, "node_modules/queue-microtask": { "version": "1.2.3", - "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", - "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==", "funding": [ { "type": "github", @@ -11978,17 +10964,16 @@ "type": "consulting", "url": "https://feross.org/support" } - ] + ], + "license": "MIT" }, "node_modules/quick-format-unescaped": { "version": "4.0.4", - "resolved": "https://registry.npmjs.org/quick-format-unescaped/-/quick-format-unescaped-4.0.4.tgz", - "integrity": "sha512-tYC1Q1hgyRuHgloV/YXs2w15unPVh8qfu/qCTfhTYamaw7fyhumKa2yGpdSo87vY32rIclj+4fWYQXUMs9EHvg==" + "license": "MIT" }, "node_modules/quick-lru": { "version": "6.1.1", - "resolved": "https://registry.npmjs.org/quick-lru/-/quick-lru-6.1.1.tgz", - "integrity": "sha512-S27GBT+F0NTRiehtbrgaSE1idUAJ5bX8dPAQTdylEyNlrdcH5X4Lz7Edz3DYzecbsCluD5zO8ZNEe04z3D3u6Q==", + "license": "MIT", "engines": { "node": ">=12" }, @@ -11998,8 +10983,7 @@ }, "node_modules/rabin-wasm": { "version": "0.1.5", - "resolved": "https://registry.npmjs.org/rabin-wasm/-/rabin-wasm-0.1.5.tgz", - "integrity": "sha512-uWgQTo7pim1Rnj5TuWcCewRDTf0PEFTSlaUjWP4eY9EbLV9em08v89oCz/WO+wRxpYuO36XEHp4wgYQnAgOHzA==", + "license": "MIT", "dependencies": { "@assemblyscript/loader": "^0.9.4", "bl": "^5.0.0", @@ -12014,8 +10998,7 @@ }, "node_modules/rabin-wasm/node_modules/node-fetch": { "version": "2.6.7", - "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.7.tgz", - "integrity": "sha512-ZjMPFEfVx5j+y2yF35Kzx5sF7kDzxuDj6ziH4FFbOp87zKDZNx8yExJIb05OGF4Nlt9IHFIMBkRl41VdvcNdbQ==", + "license": "MIT", "dependencies": { "whatwg-url": "^5.0.0" }, @@ -12033,8 +11016,7 @@ }, "node_modules/rabin-wasm/node_modules/readable-stream": { "version": "3.6.0", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", - "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", + "license": "MIT", "dependencies": { "inherits": "^2.0.3", "string_decoder": "^1.1.1", @@ -12046,21 +11028,18 @@ }, "node_modules/randombytes": { "version": "2.1.0", - "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz", - "integrity": "sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==", + "license": "MIT", "dependencies": { "safe-buffer": "^5.1.0" } }, "node_modules/rate-limiter-flexible": { "version": "2.4.1", - "resolved": "https://registry.npmjs.org/rate-limiter-flexible/-/rate-limiter-flexible-2.4.1.tgz", - "integrity": "sha512-dgH4T44TzKVO9CLArNto62hJOwlWJMLUjVVr/ii0uUzZXEXthDNr7/yefW5z/1vvHAfycc1tnuiYyNJ8CTRB3g==" + "license": "ISC" }, "node_modules/rc": { "version": "1.2.8", - "resolved": "https://registry.npmjs.org/rc/-/rc-1.2.8.tgz", - "integrity": "sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw==", + "license": "(BSD-2-Clause OR MIT OR Apache-2.0)", "dependencies": { "deep-extend": "^0.6.0", "ini": "~1.3.0", @@ -12073,32 +11052,28 @@ }, "node_modules/rc/node_modules/strip-json-comments": { "version": "2.0.1", - "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz", - "integrity": "sha512-4gB8na07fecVVkOI6Rs4e7T6NOTki5EmL7TUduTs6bu3EdnSycntVJ4re8kgZA+wx9IueI2Y11bfbgwtzuE0KQ==", + "license": "MIT", "engines": { "node": ">=0.10.0" } }, "node_modules/react-native-fetch-api": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/react-native-fetch-api/-/react-native-fetch-api-2.0.0.tgz", - "integrity": "sha512-GOA8tc1EVYLnHvma/TU9VTgLOyralO7eATRuCDchQveXW9Fr9vXygyq9iwqmM7YRZ8qRJfEt9xOS7OYMdJvRFw==", + "license": "MIT", "dependencies": { "p-defer": "^3.0.0" } }, "node_modules/react-native-fetch-api/node_modules/p-defer": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/p-defer/-/p-defer-3.0.0.tgz", - "integrity": "sha512-ugZxsxmtTln604yeYd29EGrNhazN2lywetzpKhfmQjW/VJmhpDmWbiX+h0zL8V91R0UXkhb3KtPmyq9PZw3aYw==", + "license": "MIT", "engines": { "node": ">=8" } }, "node_modules/readable-stream": { "version": "4.3.0", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-4.3.0.tgz", - "integrity": "sha512-MuEnA0lbSi7JS8XM+WNJlWZkHAAdm7gETHdFK//Q/mChGyj2akEFtdLZh32jSdkWGbRwCW9pn6g3LWDdDeZnBQ==", + "license": "MIT", "dependencies": { "abort-controller": "^3.0.0", "buffer": "^6.0.3", @@ -12111,8 +11086,7 @@ }, "node_modules/readable-web-to-node-stream": { "version": "3.0.2", - "resolved": "https://registry.npmjs.org/readable-web-to-node-stream/-/readable-web-to-node-stream-3.0.2.tgz", - "integrity": "sha512-ePeK6cc1EcKLEhJFt/AebMCLL+GgSKhuygrZ/GLaKZYEecIgIECf4UaUuaByiGtzckwR4ain9VzUh95T1exYGw==", + "license": "MIT", "dependencies": { "readable-stream": "^3.6.0" }, @@ -12126,8 +11100,7 @@ }, "node_modules/readable-web-to-node-stream/node_modules/readable-stream": { "version": "3.6.0", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", - "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", + "license": "MIT", "dependencies": { "inherits": "^2.0.3", "string_decoder": "^1.1.1", @@ -12139,9 +11112,8 @@ }, "node_modules/readdirp": { "version": "3.6.0", - "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", - "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", "dev": true, + "license": "MIT", "dependencies": { "picomatch": "^2.2.1" }, @@ -12151,22 +11123,19 @@ }, "node_modules/receptacle": { "version": "1.3.2", - "resolved": "https://registry.npmjs.org/receptacle/-/receptacle-1.3.2.tgz", - "integrity": "sha512-HrsFvqZZheusncQRiEE7GatOAETrARKV/lnfYicIm8lbvp/JQOdADOfhjBd2DajvoszEyxSM6RlAAIZgEoeu/A==", + "license": "MIT", "dependencies": { "ms": "^2.1.1" } }, "node_modules/regenerator-runtime": { "version": "0.13.11", - "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.11.tgz", - "integrity": "sha512-kY1AZVr2Ra+t+piVaJ4gxaFaReZVH40AKNo7UCX6W+dEwBo/2oZJzqfuN1qLq1oL45o56cPaTXELwrTh8Fpggg==" + "license": "MIT" }, "node_modules/regexpp": { "version": "3.2.0", - "resolved": "https://registry.npmjs.org/regexpp/-/regexpp-3.2.0.tgz", - "integrity": "sha512-pq2bWo9mVD43nbts2wGv17XLiNLya+GklZ8kaDLV2Z08gDCsGpnKn9BFMepvWuHCbyVvY7J5o5+BVvoQbmlJLg==", "dev": true, + "license": "MIT", "engines": { "node": ">=8" }, @@ -12176,8 +11145,7 @@ }, "node_modules/registry-auth-token": { "version": "5.0.1", - "resolved": "https://registry.npmjs.org/registry-auth-token/-/registry-auth-token-5.0.1.tgz", - "integrity": "sha512-UfxVOj8seK1yaIOiieV4FIP01vfBDLsY0H9sQzi9EbbUdJiuuBjJgLa1DpImXMNPnVkBD4eVxTEXcrZA6kfpJA==", + "license": "MIT", "dependencies": { "@pnpm/npm-conf": "^1.0.4" }, @@ -12187,8 +11155,7 @@ }, "node_modules/registry-url": { "version": "6.0.1", - "resolved": "https://registry.npmjs.org/registry-url/-/registry-url-6.0.1.tgz", - "integrity": "sha512-+crtS5QjFRqFCoQmvGduwYWEBng99ZvmFvF+cUJkGYF1L1BfU8C6Zp9T7f5vPAwyLkUExpvK+ANVZmGU49qi4Q==", + "license": "MIT", "dependencies": { "rc": "1.2.8" }, @@ -12201,22 +11168,19 @@ }, "node_modules/require-directory": { "version": "2.1.1", - "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", - "integrity": "sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==", + "license": "MIT", "engines": { "node": ">=0.10.0" } }, "node_modules/resolve-alpn": { "version": "1.2.1", - "resolved": "https://registry.npmjs.org/resolve-alpn/-/resolve-alpn-1.2.1.tgz", - "integrity": "sha512-0a1F4l73/ZFZOakJnQ3FvkJ2+gSTQWz/r2KE5OdDY0TxPm5h4GkqkWWfM47T7HsbnOtcJVEF4epCVy6u7Q3K+g==" + "license": "MIT" }, "node_modules/resolve-from": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", - "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", "dev": true, + "license": "MIT", "peer": true, "engines": { "node": ">=4" @@ -12224,8 +11188,7 @@ }, "node_modules/responselike": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/responselike/-/responselike-3.0.0.tgz", - "integrity": "sha512-40yHxbNcl2+rzXvZuVkrYohathsSJlMTXKryG5y8uciHv1+xDLHQpgjG64JUO9nrEq2jGLH6IZ8BcZyw3wrweg==", + "license": "MIT", "dependencies": { "lowercase-keys": "^3.0.0" }, @@ -12238,22 +11201,19 @@ }, "node_modules/retimer": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/retimer/-/retimer-3.0.0.tgz", - "integrity": "sha512-WKE0j11Pa0ZJI5YIk0nflGI7SQsfl2ljihVy7ogh7DeQSeYAUi0ubZ/yEueGtDfUPk6GH5LRw1hBdLq4IwUBWA==" + "license": "MIT" }, "node_modules/retry": { "version": "0.13.1", - "resolved": "https://registry.npmjs.org/retry/-/retry-0.13.1.tgz", - "integrity": "sha512-XQBQ3I8W1Cge0Seh+6gjj03LbmRFWuoszgK9ooCpwYIrhhoO80pfq4cUkU5DkknwfOfFteRwlZ56PYOGYyFWdg==", + "license": "MIT", "engines": { "node": ">= 4" } }, "node_modules/reusify": { "version": "1.0.4", - "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz", - "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==", "dev": true, + "license": "MIT", "engines": { "iojs": ">=1.0.0", "node": ">=0.10.0" @@ -12261,13 +11221,11 @@ }, "node_modules/rfdc": { "version": "1.3.0", - "resolved": "https://registry.npmjs.org/rfdc/-/rfdc-1.3.0.tgz", - "integrity": "sha512-V2hovdzFbOi77/WajaSMXk2OLm+xNIeQdMMuB7icj7bk6zi2F8GGAxigcnDFpJHbNyNcgyJDiP+8nOrY5cZGrA==" + "license": "MIT" }, "node_modules/rimraf": { "version": "3.0.2", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", - "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", + "license": "ISC", "dependencies": { "glob": "^7.1.3" }, @@ -12280,8 +11238,6 @@ }, "node_modules/run-parallel": { "version": "1.2.0", - "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz", - "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==", "dev": true, "funding": [ { @@ -12297,14 +11253,13 @@ "url": "https://feross.org/support" } ], + "license": "MIT", "dependencies": { "queue-microtask": "^1.2.2" } }, "node_modules/run-parallel-limit": { "version": "1.1.0", - "resolved": "https://registry.npmjs.org/run-parallel-limit/-/run-parallel-limit-1.1.0.tgz", - "integrity": "sha512-jJA7irRNM91jaKc3Hcl1npHsFLOXOoTkPCUL1JEa1R82O2miplXXRaGdjW/KM/98YQWDhJLiSs793CnXfblJUw==", "funding": [ { "type": "github", @@ -12319,22 +11274,20 @@ "url": "https://feross.org/support" } ], + "license": "MIT", "dependencies": { "queue-microtask": "^1.2.2" } }, "node_modules/rxjs": { "version": "7.8.0", - "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-7.8.0.tgz", - "integrity": "sha512-F2+gxDshqmIub1KdvZkaEfGDwLNpPvk9Fs6LD/MyQxNgMds/WH9OdDDXOmxUZpME+iSK3rQCctkL0DYyytUqMg==", + "license": "Apache-2.0", "dependencies": { "tslib": "^2.1.0" } }, "node_modules/safe-buffer": { "version": "5.2.1", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", - "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", "funding": [ { "type": "github", @@ -12348,39 +11301,35 @@ "type": "consulting", "url": "https://feross.org/support" } - ] + ], + "license": "MIT" }, "node_modules/safer-buffer": { "version": "2.1.2", - "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", - "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==" + "license": "MIT" }, "node_modules/sanitize-filename": { "version": "1.6.3", - "resolved": "https://registry.npmjs.org/sanitize-filename/-/sanitize-filename-1.6.3.tgz", - "integrity": "sha512-y/52Mcy7aw3gRm7IrcGDFx/bCk4AhRh2eI9luHOQM86nZsqwiRkkq2GekHXBBD+SmPidc8i2PqtYZl+pWJ8Oeg==", + "license": "WTFPL OR ISC", "dependencies": { "truncate-utf8-bytes": "^1.0.0" } }, "node_modules/sax": { "version": "1.2.4", - "resolved": "https://registry.npmjs.org/sax/-/sax-1.2.4.tgz", - "integrity": "sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw==" + "license": "ISC" }, "node_modules/semver": { "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", "dev": true, + "license": "ISC", "bin": { "semver": "bin/semver.js" } }, "node_modules/semver-diff": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/semver-diff/-/semver-diff-4.0.0.tgz", - "integrity": "sha512-0Ju4+6A8iOnpL/Thra7dZsSlOHYAHIeMxfhWQRI1/VLcT3WDBZKKtQt/QkBOsiIN9ZpuvHE6cGZ0x4glCMmfiA==", + "license": "MIT", "dependencies": { "semver": "^7.3.5" }, @@ -12393,8 +11342,7 @@ }, "node_modules/semver-diff/node_modules/semver": { "version": "7.3.8", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.8.tgz", - "integrity": "sha512-NB1ctGL5rlHrPJtFDVIVzTyQylMLu9N9VICA6HSFJo8MCGVTMW6gfpicwKmmK/dAjTOrqu5l63JJOpDSrAis3A==", + "license": "ISC", "dependencies": { "lru-cache": "^6.0.0" }, @@ -12407,8 +11355,7 @@ }, "node_modules/sentence-case": { "version": "3.0.4", - "resolved": "https://registry.npmjs.org/sentence-case/-/sentence-case-3.0.4.tgz", - "integrity": "sha512-8LS0JInaQMCRoQ7YUytAo/xUu5W2XnQxV2HI/6uM6U7CITS1RqPElr30V6uIqyMKM9lJGRVFy5/4CuzcixNYSg==", + "license": "MIT", "dependencies": { "no-case": "^3.0.4", "tslib": "^2.0.3", @@ -12417,28 +11364,24 @@ }, "node_modules/serialize-javascript": { "version": "6.0.0", - "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-6.0.0.tgz", - "integrity": "sha512-Qr3TosvguFt8ePWqsvRfrKyQXIiW+nGbYpy8XK24NQHE83caxWt+mIymTT19DGFbNWNLfEwsrkSmN64lVWB9ag==", "dev": true, + "license": "BSD-3-Clause", "dependencies": { "randombytes": "^2.1.0" } }, "node_modules/set-blocking": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz", - "integrity": "sha512-KiKBS8AnWGEyLzofFfmvKwpdPzqiy16LvQfK3yv/fVH7Bj13/wl3JSR1J+rfgRE9q7xUJK4qvgS8raSOeLUehw==" + "license": "ISC" }, "node_modules/set-delayed-interval": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/set-delayed-interval/-/set-delayed-interval-1.0.0.tgz", - "integrity": "sha512-29fhAwuZlLcuBnW/EwxvLcg2D3ELX+VBDNhnavs3YYkab72qmrcSeQNVdzl8EcPPahGQXhBM6MKdPLCQGMDakw==" + "license": "MIT" }, "node_modules/shallow-clone": { "version": "3.0.1", - "resolved": "https://registry.npmjs.org/shallow-clone/-/shallow-clone-3.0.1.tgz", - "integrity": "sha512-/6KqX+GVUdqPuPPd2LxDDxzX6CAbjJehAAOKlNpqqUpAqPM6HeL8f+o3a+JsyGjn2lv0WY8UsTgUJjU9Ok55NA==", "dev": true, + "license": "MIT", "dependencies": { "kind-of": "^6.0.2" }, @@ -12448,8 +11391,7 @@ }, "node_modules/shebang-command": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", - "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", + "license": "MIT", "dependencies": { "shebang-regex": "^3.0.0" }, @@ -12459,16 +11401,14 @@ }, "node_modules/shebang-regex": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", - "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", + "license": "MIT", "engines": { "node": ">=8" } }, "node_modules/side-channel": { "version": "1.0.4", - "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.4.tgz", - "integrity": "sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==", + "license": "MIT", "dependencies": { "call-bind": "^1.0.0", "get-intrinsic": "^1.0.2", @@ -12480,14 +11420,12 @@ }, "node_modules/signal-exit": { "version": "3.0.7", - "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz", - "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==" + "license": "ISC" }, "node_modules/sinon": { "version": "14.0.2", - "resolved": "https://registry.npmjs.org/sinon/-/sinon-14.0.2.tgz", - "integrity": "sha512-PDpV0ZI3ZCS3pEqx0vpNp6kzPhHrLx72wA0G+ZLaaJjLIYeE0n8INlgaohKuGy7hP0as5tbUd23QWu5U233t+w==", "dev": true, + "license": "BSD-3-Clause", "dependencies": { "@sinonjs/commons": "^2.0.0", "@sinonjs/fake-timers": "^9.1.2", @@ -12503,18 +11441,16 @@ }, "node_modules/sinon/node_modules/has-flag": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", "dev": true, + "license": "MIT", "engines": { "node": ">=8" } }, "node_modules/sinon/node_modules/supports-color": { "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", "dev": true, + "license": "MIT", "dependencies": { "has-flag": "^4.0.0" }, @@ -12524,17 +11460,15 @@ }, "node_modules/slash": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", - "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", "dev": true, + "license": "MIT", "engines": { "node": ">=8" } }, "node_modules/snake-case": { "version": "3.0.4", - "resolved": "https://registry.npmjs.org/snake-case/-/snake-case-3.0.4.tgz", - "integrity": "sha512-LAOh4z89bGQvl9pFfNF8V146i7o7/CqFPbqzYgP+yYzDIDeS9HaNFtXABamRW+AQzEVODcvE79ljJ+8a9YSdMg==", + "license": "MIT", "dependencies": { "dot-case": "^3.0.4", "tslib": "^2.0.3" @@ -12542,8 +11476,7 @@ }, "node_modules/socket.io-client": { "version": "4.5.4", - "resolved": "https://registry.npmjs.org/socket.io-client/-/socket.io-client-4.5.4.tgz", - "integrity": "sha512-ZpKteoA06RzkD32IbqILZ+Cnst4xewU7ZYK12aS1mzHftFFjpoMz69IuhP/nL25pJfao/amoPI527KnuhFm01g==", + "license": "MIT", "dependencies": { "@socket.io/component-emitter": "~3.1.0", "debug": "~4.3.2", @@ -12556,8 +11489,7 @@ }, "node_modules/socket.io-parser": { "version": "4.2.1", - "resolved": "https://registry.npmjs.org/socket.io-parser/-/socket.io-parser-4.2.1.tgz", - "integrity": "sha512-V4GrkLy+HeF1F/en3SpUaM+7XxYXpuMUWLGde1kSSh5nQMN4hLrbPIkD+otwh6q9R6NOQBN4AMaOZ2zVjui82g==", + "license": "MIT", "dependencies": { "@socket.io/component-emitter": "~3.1.0", "debug": "~4.3.1" @@ -12568,8 +11500,7 @@ }, "node_modules/sonic-boom": { "version": "1.4.1", - "resolved": "https://registry.npmjs.org/sonic-boom/-/sonic-boom-1.4.1.tgz", - "integrity": "sha512-LRHh/A8tpW7ru89lrlkU4AszXt1dbwSjVWguGrmlxE7tawVmDBlI1PILMkXAxJTwqhgsEeTHzj36D5CmHgQmNg==", + "license": "MIT", "dependencies": { "atomic-sleep": "^1.0.0", "flatstr": "^1.0.12" @@ -12577,8 +11508,7 @@ }, "node_modules/sort-keys": { "version": "5.0.0", - "resolved": "https://registry.npmjs.org/sort-keys/-/sort-keys-5.0.0.tgz", - "integrity": "sha512-Pdz01AvCAottHTPQGzndktFNdbRA75BgOfeT1hH+AMnJFv8lynkPi42rfeEhpx1saTEI3YNMWxfqu0sFD1G8pw==", + "license": "MIT", "dependencies": { "is-plain-obj": "^4.0.0" }, @@ -12591,8 +11521,7 @@ }, "node_modules/sort-keys/node_modules/is-plain-obj": { "version": "4.1.0", - "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-4.1.0.tgz", - "integrity": "sha512-+Pgi+vMuUNkJyExiMBt5IlFoMyKnr5zhJ4Uspz58WOhBF5QoIZkFyNHIbBAtHwzVAgk5RtndVNsDRN61/mmDqg==", + "license": "MIT", "engines": { "node": ">=12" }, @@ -12602,18 +11531,16 @@ }, "node_modules/source-map": { "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", "dev": true, + "license": "BSD-3-Clause", "engines": { "node": ">=0.10.0" } }, "node_modules/source-map-support": { "version": "0.5.21", - "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.21.tgz", - "integrity": "sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==", "dev": true, + "license": "MIT", "dependencies": { "buffer-from": "^1.0.0", "source-map": "^0.6.0" @@ -12621,47 +11548,39 @@ }, "node_modules/sparse-array": { "version": "1.3.2", - "resolved": "https://registry.npmjs.org/sparse-array/-/sparse-array-1.3.2.tgz", - "integrity": "sha512-ZT711fePGn3+kQyLuv1fpd3rNSkNF8vd5Kv2D+qnOANeyKs3fx6bUMGWRPvgTTcYV64QMqZKZwcuaQSP3AZ0tg==" + "license": "ISC" }, "node_modules/sprintf-js": { "version": "1.1.2", - "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.1.2.tgz", - "integrity": "sha512-VE0SOVEHCk7Qc8ulkWw3ntAzXuqf7S2lvwQaDLRnUeIEaKNQJzV6BwmLKhOqT61aGhfUMrXeaBk+oDGCzvhcug==" + "license": "BSD-3-Clause" }, "node_modules/stream-to-it": { "version": "0.2.4", - "resolved": "https://registry.npmjs.org/stream-to-it/-/stream-to-it-0.2.4.tgz", - "integrity": "sha512-4vEbkSs83OahpmBybNJXlJd7d6/RxzkkSdT3I0mnGt79Xd2Kk+e1JqbvAvsQfCeKj3aKb0QIWkyK3/n0j506vQ==", + "license": "MIT", "dependencies": { "get-iterator": "^1.0.2" } }, "node_modules/stream-to-it/node_modules/get-iterator": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/get-iterator/-/get-iterator-1.0.2.tgz", - "integrity": "sha512-v+dm9bNVfOYsY1OrhaCrmyOcYoSeVvbt+hHZ0Au+T+p1y+0Uyj9aMaGIeUTT6xdpRbWzDeYKvfOslPhggQMcsg==" + "license": "MIT" }, "node_modules/streamsearch": { "version": "1.1.0", - "resolved": "https://registry.npmjs.org/streamsearch/-/streamsearch-1.1.0.tgz", - "integrity": "sha512-Mcc5wHehp9aXz1ax6bZUyY5afg9u2rv5cqQI3mRrYkGC8rW2hM02jWuwjtL++LS5qinSyhj2QfLyNsuc+VsExg==", "engines": { "node": ">=10.0.0" } }, "node_modules/string_decoder": { "version": "1.3.0", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz", - "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==", + "license": "MIT", "dependencies": { "safe-buffer": "~5.2.0" } }, "node_modules/string-width": { "version": "4.2.3", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", - "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "license": "MIT", "dependencies": { "emoji-regex": "^8.0.0", "is-fullwidth-code-point": "^3.0.0", @@ -12673,8 +11592,7 @@ }, "node_modules/strip-ansi": { "version": "6.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", - "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "license": "MIT", "dependencies": { "ansi-regex": "^5.0.1" }, @@ -12684,8 +11602,7 @@ }, "node_modules/strip-final-newline": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-3.0.0.tgz", - "integrity": "sha512-dOESqjYr96iWYylGObzd39EuNTa5VJxyvVAEm5Jnh7KGo75V43Hk1odPQkNDyXNmUR6k+gEiDVXnjB8HJ3crXw==", + "license": "MIT", "engines": { "node": ">=12" }, @@ -12695,8 +11612,7 @@ }, "node_modules/strip-json-comments": { "version": "3.1.1", - "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", - "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==", + "license": "MIT", "engines": { "node": ">=8" }, @@ -12706,8 +11622,7 @@ }, "node_modules/strtok3": { "version": "7.0.0", - "resolved": "https://registry.npmjs.org/strtok3/-/strtok3-7.0.0.tgz", - "integrity": "sha512-pQ+V+nYQdC5H3Q7qBZAz/MO6lwGhoC2gOAjuouGf/VO0m7vQRh8QNMl2Uf6SwAtzZ9bOw3UIeBukEGNJl5dtXQ==", + "license": "MIT", "dependencies": { "@tokenizer/token": "^0.3.0", "peek-readable": "^5.0.0" @@ -12722,8 +11637,7 @@ }, "node_modules/super-regex": { "version": "0.2.0", - "resolved": "https://registry.npmjs.org/super-regex/-/super-regex-0.2.0.tgz", - "integrity": "sha512-WZzIx3rC1CvbMDloLsVw0lkZVKJWbrkJ0k1ghKFmcnPrW1+jWbgTkTEWVtD9lMdmI4jZEz40+naBxl1dCUhXXw==", + "license": "MIT", "dependencies": { "clone-regexp": "^3.0.0", "function-timeout": "^0.1.0", @@ -12738,8 +11652,7 @@ }, "node_modules/supports-color": { "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "license": "MIT", "dependencies": { "has-flag": "^3.0.0" }, @@ -12749,8 +11662,7 @@ }, "node_modules/tar": { "version": "6.1.13", - "resolved": "https://registry.npmjs.org/tar/-/tar-6.1.13.tgz", - "integrity": "sha512-jdIBIN6LTIe2jqzay/2vtYLlBHa3JF42ot3h1dW8Q0PaAG4v8rm0cvpVePtau5C6OKXGGcgO9q2AMNSWxiLqKw==", + "license": "ISC", "dependencies": { "chownr": "^2.0.0", "fs-minipass": "^2.0.0", @@ -12765,8 +11677,7 @@ }, "node_modules/tdigest": { "version": "0.1.2", - "resolved": "https://registry.npmjs.org/tdigest/-/tdigest-0.1.2.tgz", - "integrity": "sha512-+G0LLgjjo9BZX2MfdvPfH+MKLCrxlXSYec5DaPYP1fe6Iyhf0/fSmJ0bFiZ1F8BT6cGXl2LpltQptzjXKWEkKA==", + "license": "MIT", "optional": true, "dependencies": { "bintrees": "1.0.2" @@ -12774,20 +11685,17 @@ }, "node_modules/text-table": { "version": "0.2.0", - "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz", - "integrity": "sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==", "dev": true, + "license": "MIT", "peer": true }, "node_modules/thunky": { "version": "1.1.0", - "resolved": "https://registry.npmjs.org/thunky/-/thunky-1.1.0.tgz", - "integrity": "sha512-eHY7nBftgThBqOyHGVN+l8gF0BucP09fMo0oO/Lb0w1OF80dJv+lDVpXG60WMQvkcxAkNybKsrEIE3ZtKGmPrA==" + "license": "MIT" }, "node_modules/time-span": { "version": "5.1.0", - "resolved": "https://registry.npmjs.org/time-span/-/time-span-5.1.0.tgz", - "integrity": "sha512-75voc/9G4rDIJleOo4jPvN4/YC4GRZrY8yy1uU4lwrB3XEQbWve8zXoO5No4eFrGcTAMYyoY67p8jRQdtA1HbA==", + "license": "MIT", "dependencies": { "convert-hrtime": "^5.0.0" }, @@ -12800,34 +11708,30 @@ }, "node_modules/timeout-abort-controller": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/timeout-abort-controller/-/timeout-abort-controller-3.0.0.tgz", - "integrity": "sha512-O3e+2B8BKrQxU2YRyEjC/2yFdb33slI22WRdUaDx6rvysfi9anloNZyR2q0l6LnePo5qH7gSM7uZtvvwZbc2yA==", + "license": "MIT", "dependencies": { "retimer": "^3.0.0" } }, "node_modules/timestamp-nano": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/timestamp-nano/-/timestamp-nano-1.0.1.tgz", - "integrity": "sha512-4oGOVZWTu5sl89PtCDnhQBSt7/vL1zVEwAfxH1p49JhTosxzVQWYBYFRFZ8nJmo0G6f824iyP/44BFAwIoKvIA==", + "license": "MIT", "engines": { "node": ">= 4.5.0" } }, "node_modules/to-fast-properties": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz", - "integrity": "sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog==", "dev": true, + "license": "MIT", "engines": { "node": ">=4" } }, "node_modules/to-regex-range": { "version": "5.0.1", - "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", - "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", "dev": true, + "license": "MIT", "dependencies": { "is-number": "^7.0.0" }, @@ -12837,8 +11741,7 @@ }, "node_modules/token-types": { "version": "5.0.1", - "resolved": "https://registry.npmjs.org/token-types/-/token-types-5.0.1.tgz", - "integrity": "sha512-Y2fmSnZjQdDb9W4w4r1tswlMHylzWIeOKpx0aZH9BgGtACHhrk3OkT52AzwcuqTRBZtvvnTjDBh8eynMulu8Vg==", + "license": "MIT", "dependencies": { "@tokenizer/token": "^0.3.0", "ieee754": "^1.2.1" @@ -12853,22 +11756,19 @@ }, "node_modules/tr46": { "version": "0.0.3", - "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz", - "integrity": "sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==" + "license": "MIT" }, "node_modules/truncate-utf8-bytes": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/truncate-utf8-bytes/-/truncate-utf8-bytes-1.0.2.tgz", - "integrity": "sha512-95Pu1QXQvruGEhv62XCMO3Mm90GscOCClvrIUwCM0PYOXK3kaF3l3sIHxx71ThJfcbM2O5Au6SO3AWCSEfW4mQ==", + "license": "WTFPL", "dependencies": { "utf8-byte-length": "^1.0.1" } }, "node_modules/ts-node": { "version": "10.9.1", - "resolved": "https://registry.npmjs.org/ts-node/-/ts-node-10.9.1.tgz", - "integrity": "sha512-NtVysVPkxxrwFGUUxGYhfux8k78pQB3JqYBXlLRZgdGUqTO5wU/UyHop5p70iEbGhB7q5KmiZiU0Y3KlJrScEw==", "dev": true, + "license": "MIT", "dependencies": { "@cspotcode/source-map-support": "^0.8.0", "@tsconfig/node10": "^1.0.7", @@ -12909,23 +11809,20 @@ }, "node_modules/ts-node/node_modules/diff": { "version": "4.0.2", - "resolved": "https://registry.npmjs.org/diff/-/diff-4.0.2.tgz", - "integrity": "sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A==", "dev": true, + "license": "BSD-3-Clause", "engines": { "node": ">=0.3.1" } }, "node_modules/tslib": { "version": "2.4.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.4.1.tgz", - "integrity": "sha512-tGyy4dAjRIEwI7BzsB0lynWgOpfqjUdq91XXAlIWD2OwKBH7oCl/GZG/HT4BOHrTlPMOASlMQ7veyTqpmRcrNA==" + "license": "0BSD" }, "node_modules/tsutils": { "version": "3.21.0", - "resolved": "https://registry.npmjs.org/tsutils/-/tsutils-3.21.0.tgz", - "integrity": "sha512-mHKK3iUXL+3UF6xL5k0PEhKRUBKPBCv/+RkEOpjRWxxx27KKRBmmA60A9pgOUvMi8GKhRMPEmjBRPzs2W7O1OA==", "dev": true, + "license": "MIT", "dependencies": { "tslib": "^1.8.1" }, @@ -12938,25 +11835,21 @@ }, "node_modules/tsutils/node_modules/tslib": { "version": "1.14.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", - "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", - "dev": true + "dev": true, + "license": "0BSD" }, "node_modules/tweetnacl": { "version": "1.0.3", - "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-1.0.3.tgz", - "integrity": "sha512-6rt+RN7aOi1nGMyC4Xa5DdYiukl2UWCbcJft7YhxReBGQD7OAM8Pbxw6YMo4r2diNEA8FEmu32YOn9rhaiE5yw==" + "license": "Unlicense" }, "node_modules/type": { "version": "1.2.0", - "resolved": "https://registry.npmjs.org/type/-/type-1.2.0.tgz", - "integrity": "sha512-+5nt5AAniqsCnu2cEQQdpzCAh33kVx8n0VoFidKpB1dVVLAN/F+bgVOqOJqOnEnrhp222clB5p3vUlD+1QAnfg==" + "license": "ISC" }, "node_modules/type-check": { "version": "0.4.0", - "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz", - "integrity": "sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==", "dev": true, + "license": "MIT", "peer": true, "dependencies": { "prelude-ls": "^1.2.1" @@ -12967,17 +11860,15 @@ }, "node_modules/type-detect": { "version": "4.0.8", - "resolved": "https://registry.npmjs.org/type-detect/-/type-detect-4.0.8.tgz", - "integrity": "sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==", "dev": true, + "license": "MIT", "engines": { "node": ">=4" } }, "node_modules/type-fest": { "version": "2.19.0", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-2.19.0.tgz", - "integrity": "sha512-RAH822pAdBgcNMAfWnCBU3CFZcfZ/i1eZjwFU/dsLKumyuuP3niueg2UAukXYF0E2AAoc82ZSSf9J0WQBinzHA==", + "license": "(MIT OR CC0-1.0)", "engines": { "node": ">=12.20" }, @@ -12987,17 +11878,15 @@ }, "node_modules/typedarray-to-buffer": { "version": "3.1.5", - "resolved": "https://registry.npmjs.org/typedarray-to-buffer/-/typedarray-to-buffer-3.1.5.tgz", - "integrity": "sha512-zdu8XMNEDepKKR+XYOXAVPtWui0ly0NtohUscw+UmaHiAWT8hrV1rr//H6V+0DvJ3OQ19S979M0laLfX8rm82Q==", + "license": "MIT", "dependencies": { "is-typedarray": "^1.0.0" } }, "node_modules/typescript": { "version": "4.9.4", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.9.4.tgz", - "integrity": "sha512-Uz+dTXYzxXXbsFpM86Wh3dKCxrQqUcVMxwU54orwlJjOpO3ao8L7j5lH+dWfTwgCwIuM9GQ2kvVotzYJMXTBZg==", "dev": true, + "license": "Apache-2.0", "bin": { "tsc": "bin/tsc", "tsserver": "bin/tsserver" @@ -13008,9 +11897,8 @@ }, "node_modules/uglify-js": { "version": "3.17.4", - "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-3.17.4.tgz", - "integrity": "sha512-T9q82TJI9e/C1TAxYvfb16xO120tMVFZrGA3f9/P4424DNu6ypK103y0GPFVa17yotwSyZW5iYXgjYHkGrJW/g==", "dev": true, + "license": "BSD-2-Clause", "optional": true, "bin": { "uglifyjs": "bin/uglifyjs" @@ -13021,8 +11909,7 @@ }, "node_modules/uint8-varint": { "version": "1.0.4", - "resolved": "https://registry.npmjs.org/uint8-varint/-/uint8-varint-1.0.4.tgz", - "integrity": "sha512-FHnaReHRIM7kHe/Ms0I2KGkuSY4o7ouhUJGJeiFEuYWGvBt4Y64+BJ3mV6DqmyYtYTZj4Pz8K/BmViSNFLRrVw==", + "license": "Apache-2.0 OR MIT", "dependencies": { "byte-access": "^1.0.0", "longbits": "^1.1.0", @@ -13036,8 +11923,7 @@ }, "node_modules/uint8arraylist": { "version": "2.4.3", - "resolved": "https://registry.npmjs.org/uint8arraylist/-/uint8arraylist-2.4.3.tgz", - "integrity": "sha512-oEVZr4/GrH87K0kjNce6z8pSCzLEPqHNLNR5sj8cJOySrTP8Vb/pMIbZKLJGhQKxm1TiZ31atNrpn820Pyqpow==", + "license": "Apache-2.0 OR MIT", "dependencies": { "uint8arrays": "^4.0.2" }, @@ -13048,8 +11934,7 @@ }, "node_modules/uint8arrays": { "version": "4.0.3", - "resolved": "https://registry.npmjs.org/uint8arrays/-/uint8arrays-4.0.3.tgz", - "integrity": "sha512-b+aKlI2oTnxnfeSQWV1sMacqSNxqhtXySaH6bflvONGxF8V/fT3ZlYH7z2qgGfydsvpVo4JUgM/Ylyfl2YouCg==", + "license": "Apache-2.0 OR MIT", "dependencies": { "multiformats": "^11.0.0" }, @@ -13060,8 +11945,7 @@ }, "node_modules/undici": { "version": "5.14.0", - "resolved": "https://registry.npmjs.org/undici/-/undici-5.14.0.tgz", - "integrity": "sha512-yJlHYw6yXPPsuOH0x2Ib1Km61vu4hLiRRQoafs+WUgX1vO64vgnxiCEN9dpIrhZyHFsai3F0AEj4P9zy19enEQ==", + "license": "MIT", "dependencies": { "busboy": "^1.6.0" }, @@ -13071,8 +11955,7 @@ }, "node_modules/unique-string": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/unique-string/-/unique-string-3.0.0.tgz", - "integrity": "sha512-VGXBUVwxKMBUznyffQweQABPRRW1vHZAbadFZud4pLFAqRGvv/96vafgjWFqzourzr8YonlQiPgH0YCJfawoGQ==", + "license": "MIT", "dependencies": { "crypto-random-string": "^4.0.0" }, @@ -13085,8 +11968,6 @@ }, "node_modules/update-browserslist-db": { "version": "1.0.10", - "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.0.10.tgz", - "integrity": "sha512-OztqDenkfFkbSG+tRxBeAnCVPckDBcvibKd35yDONx6OU8N7sqgwc7rCbkJ/WcYtVRZ4ba68d6byhC21GFh7sQ==", "dev": true, "funding": [ { @@ -13098,6 +11979,7 @@ "url": "https://tidelift.com/funding/github/npm/browserslist" } ], + "license": "MIT", "dependencies": { "escalade": "^3.1.1", "picocolors": "^1.0.0" @@ -13111,8 +11993,7 @@ }, "node_modules/update-notifier": { "version": "6.0.2", - "resolved": "https://registry.npmjs.org/update-notifier/-/update-notifier-6.0.2.tgz", - "integrity": "sha512-EDxhTEVPZZRLWYcJ4ZXjGFN0oP7qYvbXWzEgRm/Yql4dHX5wDbvh89YHP6PK1lzZJYrMtXUuZZz8XGK+U6U1og==", + "license": "BSD-2-Clause", "dependencies": { "boxen": "^7.0.0", "chalk": "^5.0.1", @@ -13138,8 +12019,7 @@ }, "node_modules/update-notifier/node_modules/chalk": { "version": "5.2.0", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-5.2.0.tgz", - "integrity": "sha512-ree3Gqw/nazQAPuJJEy+avdl7QfZMcUvmHIKgEZkGL+xOBzRvup5Hxo6LHuMceSxOabuJLJm5Yp/92R9eMmMvA==", + "license": "MIT", "engines": { "node": "^12.17.0 || ^14.13 || >=16.0.0" }, @@ -13149,8 +12029,7 @@ }, "node_modules/update-notifier/node_modules/semver": { "version": "7.3.8", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.8.tgz", - "integrity": "sha512-NB1ctGL5rlHrPJtFDVIVzTyQylMLu9N9VICA6HSFJo8MCGVTMW6gfpicwKmmK/dAjTOrqu5l63JJOpDSrAis3A==", + "license": "ISC", "dependencies": { "lru-cache": "^6.0.0" }, @@ -13163,25 +12042,22 @@ }, "node_modules/upper-case": { "version": "2.0.2", - "resolved": "https://registry.npmjs.org/upper-case/-/upper-case-2.0.2.tgz", - "integrity": "sha512-KgdgDGJt2TpuwBUIjgG6lzw2GWFRCW9Qkfkiv0DxqHHLYJHmtmdUIKcZd8rHgFSjopVTlw6ggzCm1b8MFQwikg==", + "license": "MIT", "dependencies": { "tslib": "^2.0.3" } }, "node_modules/upper-case-first": { "version": "2.0.2", - "resolved": "https://registry.npmjs.org/upper-case-first/-/upper-case-first-2.0.2.tgz", - "integrity": "sha512-514ppYHBaKwfJRK/pNC6c/OxfGa0obSnAl106u97Ed0I625Nin96KAjttZF6ZL3e1XLtphxnqrOi9iWgm+u+bg==", + "license": "MIT", "dependencies": { "tslib": "^2.0.3" } }, "node_modules/uri-js": { "version": "4.4.1", - "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", - "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", "dev": true, + "license": "BSD-2-Clause", "peer": true, "dependencies": { "punycode": "^2.1.0" @@ -13189,9 +12065,8 @@ }, "node_modules/utf-8-validate": { "version": "5.0.10", - "resolved": "https://registry.npmjs.org/utf-8-validate/-/utf-8-validate-5.0.10.tgz", - "integrity": "sha512-Z6czzLq4u8fPOyx7TU6X3dvUZVvoJmxSQ+IcrlmagKhilxlhZgxPK6C5Jqbkw1IDUmFTM+cz9QDnnLTwDz/2gQ==", "hasInstallScript": true, + "license": "MIT", "dependencies": { "node-gyp-build": "^4.3.0" }, @@ -13201,37 +12076,31 @@ }, "node_modules/utf8-byte-length": { "version": "1.0.4", - "resolved": "https://registry.npmjs.org/utf8-byte-length/-/utf8-byte-length-1.0.4.tgz", - "integrity": "sha512-4+wkEYLBbWxqTahEsWrhxepcoVOJ+1z5PGIjPZxRkytcdSUaNjIjBM7Xn8E+pdSuV7SzvWovBFA54FO0JSoqhA==" + "license": "WTFPL" }, "node_modules/util-deprecate": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", - "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==" + "license": "MIT" }, "node_modules/uuid": { "version": "8.3.2", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz", - "integrity": "sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==", + "license": "MIT", "bin": { "uuid": "dist/bin/uuid" } }, "node_modules/v8-compile-cache-lib": { "version": "3.0.1", - "resolved": "https://registry.npmjs.org/v8-compile-cache-lib/-/v8-compile-cache-lib-3.0.1.tgz", - "integrity": "sha512-wa7YjyUGfNZngI/vtK0UHAN+lgDCxBPCylVXGp0zu59Fz5aiGtNXaq3DhIov063MorB+VfufLh3JlF2KdTK3xg==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/varint": { "version": "6.0.0", - "resolved": "https://registry.npmjs.org/varint/-/varint-6.0.0.tgz", - "integrity": "sha512-cXEIW6cfr15lFv563k4GuVuW/fiwjknytD37jIOLSdSWuOI6WnO/oKwmP2FQTU2l01LP8/M5TSAJpzUaGe3uWg==" + "license": "MIT" }, "node_modules/varint-decoder": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/varint-decoder/-/varint-decoder-1.0.0.tgz", - "integrity": "sha512-JkOvdztASWGUAsXshCFHrB9f6AgR2Q8W08CEyJ+43b1qtFocmI8Sp1R/M0E/hDOY2FzVIqk63tOYLgDYWuJ7IQ==", + "license": "MIT", "dependencies": { "varint": "^5.0.0" }, @@ -13242,21 +12111,18 @@ }, "node_modules/varint-decoder/node_modules/varint": { "version": "5.0.2", - "resolved": "https://registry.npmjs.org/varint/-/varint-5.0.2.tgz", - "integrity": "sha512-lKxKYG6H03yCZUpAGOPOsMcGxd1RHCu1iKvEHYDPmTyq2HueGhD73ssNBqqQWfvYs04G9iUFRvmAVLW20Jw6ow==" + "license": "MIT" }, "node_modules/web-streams-polyfill": { "version": "3.2.1", - "resolved": "https://registry.npmjs.org/web-streams-polyfill/-/web-streams-polyfill-3.2.1.tgz", - "integrity": "sha512-e0MO3wdXWKrLbL0DgGnUV7WHVuw9OUvL4hjgnPkIeEvESk74gAITi5G606JtZPp39cd8HA9VQzCIvA49LpPN5Q==", + "license": "MIT", "engines": { "node": ">= 8" } }, "node_modules/websocket": { "version": "1.0.34", - "resolved": "https://registry.npmjs.org/websocket/-/websocket-1.0.34.tgz", - "integrity": "sha512-PRDso2sGwF6kM75QykIesBijKSVceR6jL2G8NGYyq2XrItNC2P5/qL5XeR056GhA+Ly7JMFvJb9I312mJfmqnQ==", + "license": "Apache-2.0", "dependencies": { "bufferutil": "^4.0.1", "debug": "^2.2.0", @@ -13271,21 +12137,18 @@ }, "node_modules/websocket/node_modules/debug": { "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "license": "MIT", "dependencies": { "ms": "2.0.0" } }, "node_modules/websocket/node_modules/ms": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==" + "license": "MIT" }, "node_modules/whatwg-url": { "version": "5.0.0", - "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz", - "integrity": "sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==", + "license": "MIT", "dependencies": { "tr46": "~0.0.3", "webidl-conversions": "^3.0.0" @@ -13293,13 +12156,11 @@ }, "node_modules/whatwg-url/node_modules/webidl-conversions": { "version": "3.0.1", - "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz", - "integrity": "sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==" + "license": "BSD-2-Clause" }, "node_modules/wherearewe": { "version": "2.0.1", - "resolved": "https://registry.npmjs.org/wherearewe/-/wherearewe-2.0.1.tgz", - "integrity": "sha512-XUguZbDxCA2wBn2LoFtcEhXL6AXo+hVjGonwhSTTTU9SzbWG8Xu3onNIpzf9j/mYUcJQ0f+m37SzG77G851uFw==", + "license": "Apache-2.0 OR MIT", "dependencies": { "is-electron": "^2.2.0" }, @@ -13310,8 +12171,7 @@ }, "node_modules/which": { "version": "2.0.2", - "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", - "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", + "license": "ISC", "dependencies": { "isexe": "^2.0.0" }, @@ -13324,16 +12184,14 @@ }, "node_modules/wide-align": { "version": "1.1.5", - "resolved": "https://registry.npmjs.org/wide-align/-/wide-align-1.1.5.tgz", - "integrity": "sha512-eDMORYaPNZ4sQIuuYPDHdQvf4gyCF9rEEV/yPxGfwPkRodwEgiMUUXTx/dex+Me0wxx53S+NgUHaP7y3MGlDmg==", + "license": "ISC", "dependencies": { "string-width": "^1.0.2 || 2 || 3 || 4" } }, "node_modules/widest-line": { "version": "4.0.1", - "resolved": "https://registry.npmjs.org/widest-line/-/widest-line-4.0.1.tgz", - "integrity": "sha512-o0cyEG0e8GPzT4iGHphIOh0cJOV8fivsXxddQasHPHfoZf1ZexrfeA21w2NaEN1RHE+fXlfISmOE8R9N3u3Qig==", + "license": "MIT", "dependencies": { "string-width": "^5.0.1" }, @@ -13346,8 +12204,7 @@ }, "node_modules/widest-line/node_modules/ansi-regex": { "version": "6.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.0.1.tgz", - "integrity": "sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==", + "license": "MIT", "engines": { "node": ">=12" }, @@ -13357,13 +12214,11 @@ }, "node_modules/widest-line/node_modules/emoji-regex": { "version": "9.2.2", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-9.2.2.tgz", - "integrity": "sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==" + "license": "MIT" }, "node_modules/widest-line/node_modules/string-width": { "version": "5.1.2", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-5.1.2.tgz", - "integrity": "sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==", + "license": "MIT", "dependencies": { "eastasianwidth": "^0.2.0", "emoji-regex": "^9.2.2", @@ -13378,8 +12233,7 @@ }, "node_modules/widest-line/node_modules/strip-ansi": { "version": "7.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.0.1.tgz", - "integrity": "sha512-cXNxvT8dFNRVfhVME3JAe98mkXDYN2O1l7jmcwMnOslDeESg1rF/OZMtK0nRAhiari1unG5cD4jG3rapUAkLbw==", + "license": "MIT", "dependencies": { "ansi-regex": "^6.0.1" }, @@ -13392,9 +12246,8 @@ }, "node_modules/word-wrap": { "version": "1.2.3", - "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.3.tgz", - "integrity": "sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ==", "dev": true, + "license": "MIT", "peer": true, "engines": { "node": ">=0.10.0" @@ -13402,20 +12255,17 @@ }, "node_modules/wordwrap": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-1.0.0.tgz", - "integrity": "sha512-gvVzJFlPycKc5dZN4yPkP8w7Dc37BtP1yczEneOb4uq34pXZcvrtRTmWV8W+Ume+XCxKgbjM+nevkyFPMybd4Q==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/workerpool": { "version": "6.2.1", - "resolved": "https://registry.npmjs.org/workerpool/-/workerpool-6.2.1.tgz", - "integrity": "sha512-ILEIE97kDZvF9Wb9f6h5aXK4swSlKGUcOEGiIYb2OOu/IrDU9iwj0fD//SsA6E5ibwJxpEvhullJY4Sl4GcpAw==", - "dev": true + "dev": true, + "license": "Apache-2.0" }, "node_modules/wrap-ansi": { "version": "7.0.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", - "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", + "license": "MIT", "dependencies": { "ansi-styles": "^4.0.0", "string-width": "^4.1.0", @@ -13430,8 +12280,7 @@ }, "node_modules/wrap-ansi/node_modules/ansi-styles": { "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "license": "MIT", "dependencies": { "color-convert": "^2.0.1" }, @@ -13444,8 +12293,7 @@ }, "node_modules/wrap-ansi/node_modules/color-convert": { "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "license": "MIT", "dependencies": { "color-name": "~1.1.4" }, @@ -13455,18 +12303,15 @@ }, "node_modules/wrap-ansi/node_modules/color-name": { "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" + "license": "MIT" }, "node_modules/wrappy": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", - "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==" + "license": "ISC" }, "node_modules/write-file-atomic": { "version": "3.0.3", - "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-3.0.3.tgz", - "integrity": "sha512-AvHcyZ5JnSfq3ioSyjrBkH9yW4m7Ayk8/9My/DD9onKeu/94fwrMocemO2QAJFAlnnDN+ZDS+ZjAR5ua1/PV/Q==", + "license": "ISC", "dependencies": { "imurmurhash": "^0.1.4", "is-typedarray": "^1.0.0", @@ -13476,8 +12321,7 @@ }, "node_modules/ws": { "version": "8.11.0", - "resolved": "https://registry.npmjs.org/ws/-/ws-8.11.0.tgz", - "integrity": "sha512-HPG3wQd9sNQoT9xHyNCXoDUa+Xw/VevmY9FoHyQ+g+rrMn4j6FB4np7Z0OhdTgjx6MgQLK7jwSy1YecU1+4Asg==", + "license": "MIT", "engines": { "node": ">=10.0.0" }, @@ -13496,8 +12340,7 @@ }, "node_modules/xdg-basedir": { "version": "5.1.0", - "resolved": "https://registry.npmjs.org/xdg-basedir/-/xdg-basedir-5.1.0.tgz", - "integrity": "sha512-GCPAHLvrIH13+c0SuacwvRYj2SxJXQ4kaVTT5xgL3kPrz56XxkF21IGhjSE1+W0aw7gpBWRGXLCPnPby6lSpmQ==", + "license": "MIT", "engines": { "node": ">=12" }, @@ -13507,8 +12350,7 @@ }, "node_modules/xml2js": { "version": "0.4.23", - "resolved": "https://registry.npmjs.org/xml2js/-/xml2js-0.4.23.tgz", - "integrity": "sha512-ySPiMjM0+pLDftHgXY4By0uswI3SPKLDw/i3UXbnO8M/p28zqexCUoPmQFrYD+/1BzhGJSs2i1ERWKJAtiLrug==", + "license": "MIT", "dependencies": { "sax": ">=0.6.0", "xmlbuilder": "~11.0.0" @@ -13519,50 +12361,42 @@ }, "node_modules/xmlbuilder": { "version": "11.0.1", - "resolved": "https://registry.npmjs.org/xmlbuilder/-/xmlbuilder-11.0.1.tgz", - "integrity": "sha512-fDlsI/kFEx7gLvbecc0/ohLG50fugQp8ryHzMTuW9vSa1GJ0XYWKnhsUx7oie3G98+r56aTQIUB4kht42R3JvA==", + "license": "MIT", "engines": { "node": ">=4.0" } }, "node_modules/xmlhttprequest-ssl": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/xmlhttprequest-ssl/-/xmlhttprequest-ssl-2.0.0.tgz", - "integrity": "sha512-QKxVRxiRACQcVuQEYFsI1hhkrMlrXHPegbbd1yn9UHOmRxY+si12nQYzri3vbzt8VdTTRviqcKxcyllFas5z2A==", "engines": { "node": ">=0.4.0" } }, "node_modules/xsalsa20": { "version": "1.2.0", - "resolved": "https://registry.npmjs.org/xsalsa20/-/xsalsa20-1.2.0.tgz", - "integrity": "sha512-FIr/DEeoHfj7ftfylnoFt3rAIRoWXpx2AoDfrT2qD2wtp7Dp+COajvs/Icb7uHqRW9m60f5iXZwdsJJO3kvb7w==" + "license": "MIT" }, "node_modules/y18n": { "version": "5.0.8", - "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz", - "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==", + "license": "ISC", "engines": { "node": ">=10" } }, "node_modules/yaeti": { "version": "0.0.6", - "resolved": "https://registry.npmjs.org/yaeti/-/yaeti-0.0.6.tgz", - "integrity": "sha512-MvQa//+KcZCUkBTIC9blM+CU9J2GzuTytsOUwf2lidtvkx/6gnEp1QvJv34t9vdjhFmha/mUiNDbN0D0mJWdug==", + "license": "MIT", "engines": { "node": ">=0.10.32" } }, "node_modules/yallist": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==" + "license": "ISC" }, "node_modules/yargs": { "version": "17.6.2", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.6.2.tgz", - "integrity": "sha512-1/9UrdHjDZc0eOU0HxOHoS78C69UD3JRMvzlJ7S79S2nTaWRA/whGCTV8o9e/N/1Va9YIV7Q4sOxD8VV4pCWOw==", + "license": "MIT", "dependencies": { "cliui": "^8.0.1", "escalade": "^3.1.1", @@ -13578,17 +12412,15 @@ }, "node_modules/yargs-parser": { "version": "20.2.4", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.4.tgz", - "integrity": "sha512-WOkpgNhPTlE73h4VFAFsOnomJVaovO8VqLDzy5saChRBFQFBoMYirowyW+Q9HB4HFF4Z7VZTiG3iSzJJA29yRA==", + "license": "ISC", "engines": { "node": ">=10" } }, "node_modules/yargs-unparser": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/yargs-unparser/-/yargs-unparser-2.0.0.tgz", - "integrity": "sha512-7pRTIA9Qc1caZ0bZ6RYRGbHJthJWuakf+WmHK0rVeLkNrrGhfoabBNdue6kdINI6r4if7ocq9aD/n7xwKOdzOA==", "dev": true, + "license": "MIT", "dependencies": { "camelcase": "^6.0.0", "decamelize": "^4.0.0", @@ -13601,26 +12433,23 @@ }, "node_modules/yargs/node_modules/yargs-parser": { "version": "21.1.1", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-21.1.1.tgz", - "integrity": "sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==", + "license": "ISC", "engines": { "node": ">=12" } }, "node_modules/yn": { "version": "3.1.1", - "resolved": "https://registry.npmjs.org/yn/-/yn-3.1.1.tgz", - "integrity": "sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q==", "dev": true, + "license": "MIT", "engines": { "node": ">=6" } }, "node_modules/yocto-queue": { "version": "0.1.0", - "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz", - "integrity": "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==", "dev": true, + "license": "MIT", "engines": { "node": ">=10" }, diff --git a/integration-tests/scaffolding/extrinsicHelpers.ts b/integration-tests/scaffolding/extrinsicHelpers.ts index 5332cb7be6..b97a51dc2a 100644 --- a/integration-tests/scaffolding/extrinsicHelpers.ts +++ b/integration-tests/scaffolding/extrinsicHelpers.ts @@ -187,6 +187,11 @@ export class ExtrinsicHelper { return new Extrinsic(() => ExtrinsicHelper.api.tx.schemas.createSchema(JSON.stringify(model), modelType, payloadLocation), keys, ExtrinsicHelper.api.events.schemas.SchemaCreated); } + /** Generic Schema Extrinsics */ + public static createSchemaWithSettings(keys: KeyringPair, model: any, modelType: "AvroBinary" | "Parquet", payloadLocation: "OnChain" | "IPFS"| "Itemized" | "Paginated", grant: "AppendOnly"| "SignatureRequired"): Extrinsic { + return new Extrinsic(() => ExtrinsicHelper.api.tx.schemas.createSchemaWithSettings(JSON.stringify(model), modelType, payloadLocation, [grant]), keys, ExtrinsicHelper.api.events.schemas.SchemaCreated); + } + /** MSA Extrinsics */ public static createMsa(keys: KeyringPair): Extrinsic { return new Extrinsic(() => ExtrinsicHelper.api.tx.msa.create(), keys, ExtrinsicHelper.api.events.msa.MsaCreated); diff --git a/integration-tests/stateful-pallet-storage/handleAppendOnly.test.ts b/integration-tests/stateful-pallet-storage/handleAppendOnly.test.ts new file mode 100644 index 0000000000..f88a5ba05c --- /dev/null +++ b/integration-tests/stateful-pallet-storage/handleAppendOnly.test.ts @@ -0,0 +1,130 @@ +// Integration tests for pallets/stateful-pallet-storage/handleItemizedWithSignature.ts +import "@frequency-chain/api-augment"; +import assert from "assert"; +import { + createDelegator, + createDelegatorAndDelegation, + createProviderKeysAndId, + generateItemizedSignaturePayload, generatePaginatedDeleteSignaturePayload, generatePaginatedUpsertSignaturePayload, + getCurrentItemizedHash, getCurrentPaginatedHash, + signPayloadSr25519 +} from "../scaffolding/helpers"; +import { KeyringPair } from "@polkadot/keyring/types"; +import { ExtrinsicHelper } from "../scaffolding/extrinsicHelpers"; +import { AVRO_CHAT_MESSAGE } from "./fixtures/itemizedSchemaType"; +import { MessageSourceId, SchemaId } from "@frequency-chain/api-augment/interfaces"; +import {Bytes, u16} from "@polkadot/types"; + +describe("📗 Stateful Pallet Storage AppendOnly Schemas", () => { + let itemizedSchemaId: SchemaId; + let paginatedSchemaId: SchemaId; + let msa_id: MessageSourceId; + let providerId: MessageSourceId; + let providerKeys: KeyringPair; + let delegatorKeys: KeyringPair; + + before(async function () { + + // Create a provider for the MSA, the provider will be used to grant delegation + [providerKeys, providerId] = await createProviderKeysAndId(); + assert.notEqual(providerId, undefined, "setup should populate providerId"); + assert.notEqual(providerKeys, undefined, "setup should populate providerKeys"); + + // Create a schema for Itemized PayloadLocation + const createSchema = ExtrinsicHelper.createSchemaWithSettings(providerKeys, AVRO_CHAT_MESSAGE, "AvroBinary", "Itemized", "AppendOnly"); + const [event] = await createSchema.fundAndSend(); + if (event && createSchema.api.events.schemas.SchemaCreated.is(event)) { + itemizedSchemaId = event.data.schemaId; + } + assert.notEqual(itemizedSchemaId, undefined, "setup should populate schemaId"); + // Create a schema for Paginated PayloadLocation + const createSchema2 = ExtrinsicHelper.createSchemaWithSettings(providerKeys, AVRO_CHAT_MESSAGE, "AvroBinary", "Paginated", "AppendOnly"); + const [event2] = await createSchema2.fundAndSend(); + assert.notEqual(event2, undefined, "setup should return a SchemaCreated event"); + if (event2 && createSchema2.api.events.schemas.SchemaCreated.is(event2)) { + paginatedSchemaId = event2.data.schemaId; + assert.notEqual(paginatedSchemaId, undefined, "setup should populate schemaId"); + } + + // Create a MSA for the delegator and delegate to the provider for the itemized schema + [, msa_id] = await createDelegatorAndDelegation(itemizedSchemaId, providerId, providerKeys); + assert.notEqual(msa_id, undefined, "setup should populate msa_id"); + + // Create a MSA for the delegator and delegate to the provider for the paginated schema + [, msa_id] = await createDelegatorAndDelegation(paginatedSchemaId, providerId, providerKeys); + assert.notEqual(msa_id, undefined, "setup should populate msa_id"); + }); + + describe("Itemized With AppendOnly Storage Tests", () => { + + it("should not be able to call delete action", async function () { + + // Add and update actions + let payload_1 = new Bytes(ExtrinsicHelper.api.registry, "Hello World From Frequency"); + + const add_action = { + "Add": payload_1 + } + + let payload_2 = new Bytes(ExtrinsicHelper.api.registry, "Hello World Again From Frequency"); + + const update_action = { + "Add": payload_2 + } + + const idx_1: u16 = new u16(ExtrinsicHelper.api.registry, 1) + + const delete_action = { + "Delete": idx_1 + } + const target_hash = await getCurrentItemizedHash(msa_id, itemizedSchemaId); + + let add_actions = [add_action, update_action, delete_action]; + + let itemized_add_result_1 = ExtrinsicHelper.applyItemActions(providerKeys, itemizedSchemaId, msa_id, add_actions, target_hash); + await assert.rejects(async () => { + await itemized_add_result_1.fundAndSend(); + }, { + name: 'SchemaNotSupported', + section: 'statefulStorage', + }); + }); + }); + + describe("Paginated With AppendOnly Storage Tests", () => { + + it("should not be able to call delete an AppendOnly page", async function () { + let page_id = new u16(ExtrinsicHelper.api.registry, 1); + + // Add and update actions + let target_hash = await getCurrentPaginatedHash(msa_id, paginatedSchemaId, page_id.toNumber()); + const upsertPayload = await generatePaginatedUpsertSignaturePayload({ + msaId: msa_id, + targetHash: target_hash, + schemaId: paginatedSchemaId, + pageId: page_id, + payload: new Bytes(ExtrinsicHelper.api.registry, "Hello World From Frequency"), + }); + const upsertPayloadData = ExtrinsicHelper.api.registry.createType("PalletStatefulStoragePaginatedUpsertSignaturePayload", upsertPayload); + let paginated_add_result_1 = ExtrinsicHelper.upsertPage(providerKeys, paginatedSchemaId, msa_id, page_id, upsertPayloadData, target_hash); + const [pageUpdateEvent1, chainEvents] = await paginated_add_result_1.fundAndSend(); + assert.notEqual(chainEvents["system.ExtrinsicSuccess"], undefined, "should have returned an ExtrinsicSuccess event"); + assert.notEqual(chainEvents["transactionPayment.TransactionFeePaid"], undefined, "should have returned a TransactionFeePaid event"); + assert.notEqual(pageUpdateEvent1, undefined, "should have returned a PalletStatefulStoragepaginatedActionApplied event"); + + // Remove the second page + target_hash = await getCurrentPaginatedHash(msa_id, paginatedSchemaId, 1) + let paginated_remove_result_1 = ExtrinsicHelper.removePage(providerKeys, paginatedSchemaId, msa_id, page_id, target_hash); + await assert.rejects(async () => { + await paginated_remove_result_1.fundAndSend(); + }, { + name: 'SchemaNotSupported', + section: 'statefulStorage', + }); + // pages should exist + const result = await ExtrinsicHelper.getPaginatedStorages(msa_id, paginatedSchemaId); + assert.notEqual(result, undefined, "should have returned a valid response"); + assert.notEqual(result.length, 0, "should returned no paginated pages"); + }).timeout(10000); + }); +}); \ No newline at end of file diff --git a/integration-tests/stateful-pallet-storage/handleItemized.test.ts b/integration-tests/stateful-pallet-storage/handleItemized.test.ts index 6a52b78148..f3120b75bd 100644 --- a/integration-tests/stateful-pallet-storage/handleItemized.test.ts +++ b/integration-tests/stateful-pallet-storage/handleItemized.test.ts @@ -9,7 +9,7 @@ import { MessageSourceId, PageHash, SchemaId } from "@frequency-chain/api-augmen import { Bytes, u16, u64 } from "@polkadot/types"; describe("📗 Stateful Pallet Storage", () => { - let schemaId: SchemaId; + let schemaId_deletable: SchemaId; let schemaId_unsupported: SchemaId; let msa_id: MessageSourceId; let providerId: MessageSourceId; @@ -22,13 +22,14 @@ describe("📗 Stateful Pallet Storage", () => { assert.notEqual(providerId, undefined, "setup should populate providerId"); assert.notEqual(providerKeys, undefined, "setup should populate providerKeys"); - // Create a schema for Itemized PayloadLocation - const createSchema = ExtrinsicHelper.createSchema(providerKeys, AVRO_CHAT_MESSAGE, "AvroBinary", "Itemized"); - const [event] = await createSchema.fundAndSend(); - if (event && createSchema.api.events.schemas.SchemaCreated.is(event)) { - schemaId = event.data.schemaId; + // Create a schema to allow delete actions + const createSchemaDeletable = ExtrinsicHelper.createSchema(providerKeys, AVRO_CHAT_MESSAGE, "AvroBinary", "Itemized"); + const [eventDeletable] = await createSchemaDeletable.fundAndSend(); + if (eventDeletable && createSchemaDeletable.api.events.schemas.SchemaCreated.is(eventDeletable)) { + schemaId_deletable = eventDeletable.data.schemaId; } - assert.notEqual(schemaId, undefined, "setup should populate schemaId"); + assert.notEqual(schemaId_deletable, undefined, "setup should populate schemaId"); + // Create non supported schema const createSchema2 = ExtrinsicHelper.createSchema(providerKeys, AVRO_CHAT_MESSAGE, "AvroBinary", "OnChain"); const [event2] = await createSchema2.fundAndSend(); @@ -39,7 +40,7 @@ describe("📗 Stateful Pallet Storage", () => { } // Create a MSA for the delegator and delegate to the provider - [, msa_id] = await createDelegatorAndDelegation(schemaId, providerId, providerKeys); + [, msa_id] = await createDelegatorAndDelegation(schemaId_deletable, providerId, providerKeys); assert.notEqual(msa_id, undefined, "setup should populate msa_id"); }); @@ -60,10 +61,10 @@ describe("📗 Stateful Pallet Storage", () => { "Add": payload_2 } - const target_hash = await getCurrentItemizedHash(msa_id, schemaId); + const target_hash = await getCurrentItemizedHash(msa_id, schemaId_deletable); let add_actions = [add_action, update_action]; - let itemized_add_result_1 = ExtrinsicHelper.applyItemActions(providerKeys, schemaId, msa_id, add_actions, target_hash); + let itemized_add_result_1 = ExtrinsicHelper.applyItemActions(providerKeys, schemaId_deletable, msa_id, add_actions, target_hash); const [pageUpdateEvent1, chainEvents] = await itemized_add_result_1.fundAndSend(); assert.notEqual(chainEvents["system.ExtrinsicSuccess"], undefined, "should have returned an ExtrinsicSuccess event"); assert.notEqual(chainEvents["transactionPayment.TransactionFeePaid"], undefined, "should have returned a TransactionFeePaid event"); @@ -112,7 +113,7 @@ describe("📗 Stateful Pallet Storage", () => { let add_actions = [add_action]; let bad_msa_id = new u64(ExtrinsicHelper.api.registry, 999) - let itemized_add_result_1 = ExtrinsicHelper.applyItemActions(providerKeys, schemaId, bad_msa_id, add_actions, 0); + let itemized_add_result_1 = ExtrinsicHelper.applyItemActions(providerKeys, schemaId_deletable, bad_msa_id, add_actions, 0); await assert.rejects(async () => { await itemized_add_result_1.fundAndSend(); }, { @@ -137,7 +138,7 @@ describe("📗 Stateful Pallet Storage", () => { } let add_actions = [add_action, update_action]; - let itemized_add_result_1 = ExtrinsicHelper.applyItemActions(providerKeys, schemaId, msa_id, add_actions, 0); + let itemized_add_result_1 = ExtrinsicHelper.applyItemActions(providerKeys, schemaId_deletable, msa_id, add_actions, 0); await assert.rejects(itemized_add_result_1.fundAndSend(), { name: 'StalePageState' }); }).timeout(10000); }); @@ -145,7 +146,7 @@ describe("📗 Stateful Pallet Storage", () => { describe("Itemized Storage Remove Action Tests", () => { it("✅ should be able to call applyItemizedAction and apply remove actions", async function () { - let target_hash = await getCurrentItemizedHash(msa_id, schemaId); + let target_hash = await getCurrentItemizedHash(msa_id, schemaId_deletable); // Delete action const idx_1: u16 = new u16(ExtrinsicHelper.api.registry, 1) @@ -153,10 +154,10 @@ describe("📗 Stateful Pallet Storage", () => { "Delete": idx_1, } - target_hash = await getCurrentItemizedHash(msa_id, schemaId); + target_hash = await getCurrentItemizedHash(msa_id, schemaId_deletable); let remove_actions = [remove_action_1]; - let itemized_remove_result_1 = ExtrinsicHelper.applyItemActions(providerKeys, schemaId, msa_id, remove_actions, target_hash); + let itemized_remove_result_1 = ExtrinsicHelper.applyItemActions(providerKeys, schemaId_deletable, msa_id, remove_actions, target_hash); const [pageUpdateEvent2, chainEvents2] = await itemized_remove_result_1.fundAndSend(); assert.notEqual(chainEvents2["system.ExtrinsicSuccess"], undefined, "should have returned an ExtrinsicSuccess event"); assert.notEqual(chainEvents2["transactionPayment.TransactionFeePaid"], undefined, "should have returned a TransactionFeePaid event"); @@ -201,7 +202,7 @@ describe("📗 Stateful Pallet Storage", () => { } let remove_actions = [remove_action_1]; let bad_msa_id = new u64(ExtrinsicHelper.api.registry, 999) - let itemized_remove_result_1 = ExtrinsicHelper.applyItemActions(providerKeys, schemaId, bad_msa_id, remove_actions, 0); + let itemized_remove_result_1 = ExtrinsicHelper.applyItemActions(providerKeys, schemaId_deletable, bad_msa_id, remove_actions, 0); await assert.rejects(async () => { await itemized_remove_result_1.fundAndSend(); }, { @@ -216,14 +217,14 @@ describe("📗 Stateful Pallet Storage", () => { "Delete": idx_1, } let remove_actions = [remove_action]; - let op = ExtrinsicHelper.applyItemActions(providerKeys, schemaId, msa_id, remove_actions, 0); + let op = ExtrinsicHelper.applyItemActions(providerKeys, schemaId_deletable, msa_id, remove_actions, 0); await assert.rejects(op.fundAndSend(), { name: 'StalePageState' }) }).timeout(10000); }); describe("Itemized Storage RPC Tests", () => { it("✅ should be able to call getItemizedStorages and get data for itemized schema", async function () { - const result = await ExtrinsicHelper.getItemizedStorages(msa_id, schemaId); + const result = await ExtrinsicHelper.getItemizedStorages(msa_id, schemaId_deletable); assert.notEqual(result.hash, undefined, "should have returned a hash"); assert.notEqual(result.size, undefined, "should have returned a itemized responses"); }).timeout(10000); diff --git a/js/api-augment/definitions/schemas.ts b/js/api-augment/definitions/schemas.ts index a6946948d2..333b0b3a2e 100644 --- a/js/api-augment/definitions/schemas.ts +++ b/js/api-augment/definitions/schemas.ts @@ -34,12 +34,16 @@ export default { model: "SchemaModel", model_type: "ModelType", payload_location: "PayloadLocation", + setting: "Vec" }, ModelType: { _enum: ["AvroBinary", "Parquet"], }, PayloadLocation: { - _enum: ["OnChain", "IPFS"], + _enum: ["OnChain", "IPFS", "Itemized", "Paginated"], + }, + SchemaSetting: { + _enum: ["AppendOnly", "SignatureRequired"], }, }, runtime: { diff --git a/node/cli/Cargo.toml b/node/cli/Cargo.toml index 65888e09b3..c838d56ffe 100644 --- a/node/cli/Cargo.toml +++ b/node/cli/Cargo.toml @@ -26,6 +26,8 @@ sc-service = { git = "https://github.com/paritytech/substrate", optional = true, sc-sysinfo = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.36" } sc-telemetry = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.36" } sc-tracing = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.36" } +sc-executor = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.36" } +sp-io = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.36" } sp-api = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.36" } sp-core = { git = "https://github.com/paritytech/substrate", optional = true, branch = "polkadot-v0.9.36" } sp-runtime = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.36" } diff --git a/node/cli/src/command.rs b/node/cli/src/command.rs index df97976297..a24ac90975 100644 --- a/node/cli/src/command.rs +++ b/node/cli/src/command.rs @@ -8,7 +8,9 @@ use log::info; use common_primitives::node::Block; use frequency_service::{ chain_spec, - service::{frequency_runtime::VERSION, new_partial, FrequencyRuntimeExecutor as Executor}, + service::{ + frequency_runtime::VERSION, new_partial, FrequencyExecutorDispatch as ExecutorDispatch, + }, }; use sc_cli::{ ChainSpec, CliConfiguration, DefaultConfigurationValues, ImportParams, KeystoreParams, @@ -304,7 +306,7 @@ pub fn run() -> Result<()> { match cmd { BenchmarkCmd::Pallet(cmd) => if cfg!(feature = "runtime-benchmarks") { - runner.sync_run(|config| cmd.run::(config)) + runner.sync_run(|config| cmd.run::(config)) } else { return Err("Benchmarking wasn't enabled when building the node. \ You can enable it with `--features runtime-benchmarks`." @@ -341,14 +343,23 @@ pub fn run() -> Result<()> { #[cfg(feature = "try-runtime")] Some(Subcommand::TryRuntime(cmd)) => { + use sc_executor::{sp_wasm_interface::ExtendedHostFunctions, NativeExecutionDispatch}; let runner = cli.create_runner(cmd)?; - - // grab the task manager. - let registry = &runner.config().prometheus_config.as_ref().map(|cfg| &cfg.registry); - let task_manager = - sc_service::TaskManager::new(runner.config().tokio_handle.clone(), *registry) - .map_err(|e| format!("Error: {:?}", e))?; - runner.async_run(|config| Ok((cmd.run::(config), task_manager))) + runner.async_run(|config| { + // we don't need any of the components of new_partial, just a runtime, or a task + // manager to do `async_run`. + let registry = config.prometheus_config.as_ref().map(|cfg| &cfg.registry); + let task_manager = + sc_service::TaskManager::new(config.tokio_handle.clone(), registry) + .map_err(|e| sc_cli::Error::Service(sc_service::Error::Prometheus(e)))?; + Ok(( + cmd.run::::ExtendHostFunctions, + >>(), + task_manager, + )) + }) }, Some(Subcommand::ExportRuntimeVersion(cmd)) => { let runner = cli.create_runner(cmd)?; diff --git a/node/service/Cargo.toml b/node/service/Cargo.toml index 3c464ff46d..f4380b059b 100644 --- a/node/service/Cargo.toml +++ b/node/service/Cargo.toml @@ -54,6 +54,7 @@ sp-runtime = { git = "https://github.com/paritytech/substrate", branch = "polkad sp-session = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.36" } sp-timestamp = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.36" } sp-transaction-pool = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.36" } +sp-wasm-interface = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.36" } substrate-frame-rpc-system = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.36" } substrate-prometheus-endpoint = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.36" } try-runtime-cli = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.36" } diff --git a/node/service/src/service.rs b/node/service/src/service.rs index 1e970d03c1..a9b4ee9e24 100644 --- a/node/service/src/service.rs +++ b/node/service/src/service.rs @@ -45,13 +45,22 @@ type MaybeFullSelectChain = Option>; /// Native executor instance for frequency. pub mod frequency_executor { pub use frequency_runtime; + use log::debug; + use sc_executor::{ + sp_wasm_interface, + sp_wasm_interface::{Function, HostFunctionRegistry, HostFunctions}, + }; /// Native executor instance for frequency mainnet. - pub struct FrequencyRuntimeExecutor; + pub struct FrequencyExecutorDispatch; - impl sc_executor::NativeExecutionDispatch for FrequencyRuntimeExecutor { + impl sc_executor::NativeExecutionDispatch for FrequencyExecutorDispatch { + #[cfg(feature = "runtime-benchmarks")] type ExtendHostFunctions = frame_benchmarking::benchmarking::HostFunctions; + #[cfg(not(feature = "runtime-benchmarks"))] + type ExtendHostFunctions = (); + fn dispatch(method: &str, data: &[u8]) -> Option> { frequency_runtime::api::dispatch(method, data) } @@ -60,11 +69,22 @@ pub mod frequency_executor { frequency_runtime::native_version() } } + + #[cfg(feature = "try-runtime")] + impl HostFunctions for FrequencyExecutorDispatch { + fn host_functions() -> Vec<&'static dyn Function> { + Vec::new() + } + + fn register_static(_registry: &mut T) -> Result<(), T::Error> { + Ok(()) + } + } } pub use frequency_executor::*; -type ParachainExecutor = NativeElseWasmExecutor; +type ParachainExecutor = NativeElseWasmExecutor; type ParachainClient = TFullClient; diff --git a/pallets/messages/src/mock.rs b/pallets/messages/src/mock.rs index 3a344e29a5..7b42cfb2c9 100644 --- a/pallets/messages/src/mock.rs +++ b/pallets/messages/src/mock.rs @@ -218,6 +218,7 @@ impl SchemaProvider for SchemaHandler { model: r#"schema"#.to_string().as_bytes().to_vec(), model_type: ModelType::Parquet, payload_location: PayloadLocation::IPFS, + settings: Vec::new(), }) } @@ -226,6 +227,7 @@ impl SchemaProvider for SchemaHandler { model: r#"schema"#.to_string().as_bytes().to_vec(), model_type: ModelType::AvroBinary, payload_location: PayloadLocation::OnChain, + settings: Vec::new(), }) } } diff --git a/pallets/messages/src/rpc/src/tests/mod.rs b/pallets/messages/src/rpc/src/tests/mod.rs index 9527539c03..dc3387c6a5 100644 --- a/pallets/messages/src/rpc/src/tests/mod.rs +++ b/pallets/messages/src/rpc/src/tests/mod.rs @@ -44,6 +44,7 @@ sp_api::mock_impl_runtime_apis! { model: b"schema".to_vec(), model_type: ModelType::AvroBinary, payload_location: PayloadLocation::OnChain, + settings: Vec::new(), }), _ => None, } diff --git a/pallets/msa/src/audit_replay_tests.rs b/pallets/msa/src/audit_replay_tests.rs index d8d31b1d56..a6626e7918 100644 --- a/pallets/msa/src/audit_replay_tests.rs +++ b/pallets/msa/src/audit_replay_tests.rs @@ -65,6 +65,7 @@ impl pallet_schemas::Config for Test { type MinSchemaModelSizeBytes = ConstU32<10>; type SchemaModelMaxBytesBoundedVecLimit = ConstU32<10>; type MaxSchemaRegistrations = ConstU16<10>; + type MaxSchemaSettingsPerSchema = ConstU32<1>; } parameter_types! { diff --git a/pallets/msa/src/mock.rs b/pallets/msa/src/mock.rs index 90dad97ca4..fb8d38fccf 100644 --- a/pallets/msa/src/mock.rs +++ b/pallets/msa/src/mock.rs @@ -64,6 +64,7 @@ impl pallet_schemas::Config for Test { type MinSchemaModelSizeBytes = ConstU32<10>; type SchemaModelMaxBytesBoundedVecLimit = ConstU32<10>; type MaxSchemaRegistrations = ConstU16<10>; + type MaxSchemaSettingsPerSchema = ConstU32<1>; } parameter_types! { diff --git a/pallets/msa/src/signature_registry_tests.rs b/pallets/msa/src/signature_registry_tests.rs index 37194bb931..b834f61678 100644 --- a/pallets/msa/src/signature_registry_tests.rs +++ b/pallets/msa/src/signature_registry_tests.rs @@ -73,6 +73,7 @@ impl pallet_schemas::Config for Test { type MinSchemaModelSizeBytes = ConstU32<10>; type SchemaModelMaxBytesBoundedVecLimit = ConstU32<10>; type MaxSchemaRegistrations = ConstU16<10>; + type MaxSchemaSettingsPerSchema = ConstU32<1>; } parameter_types! { diff --git a/pallets/schemas/Cargo.toml b/pallets/schemas/Cargo.toml index 5c82e1be67..c52a0d1b06 100644 --- a/pallets/schemas/Cargo.toml +++ b/pallets/schemas/Cargo.toml @@ -32,6 +32,7 @@ sp-core = { default-features = false, git = "https://github.com/paritytech/subst sp-io = { default-features = false, git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.36" } sp-runtime = { default-features = false, git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.36" } sp-std = { default-features = false, git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.36" } + # Frequency related dependencies common-primitives = { default-features = false, path = "../../common/primitives" } diff --git a/pallets/schemas/src/lib.rs b/pallets/schemas/src/lib.rs index ef4a4d2a47..f1014b2443 100644 --- a/pallets/schemas/src/lib.rs +++ b/pallets/schemas/src/lib.rs @@ -52,7 +52,8 @@ use common_primitives::{ parquet::ParquetModel, schema::{ - ModelType, PayloadLocation, SchemaId, SchemaProvider, SchemaResponse, SchemaValidator, + ModelType, PayloadLocation, SchemaId, SchemaProvider, SchemaResponse, SchemaSetting, + SchemaSettings, SchemaValidator, }, }; use frame_support::{dispatch::DispatchResult, ensure, traits::Get}; @@ -77,6 +78,8 @@ pub mod weights; pub use types::*; pub use weights::*; +pub mod migrations; + mod serde; #[frame_support::pallet] @@ -104,6 +107,10 @@ pub mod pallet { /// Maximum number of schemas that can be registered #[pallet::constant] type MaxSchemaRegistrations: Get; + + /// Maximum number of schema settings that can be registered per schema (if any) + #[pallet::constant] + type MaxSchemaSettingsPerSchema: Get; } #[pallet::event] @@ -143,6 +150,7 @@ pub mod pallet { #[pallet::pallet] #[pallet::generate_store(pub(super) trait Store)] + #[pallet::storage_version(SCHEMA_STORAGE_VERSION)] #[pallet::without_storage_info] pub struct Pallet(_); @@ -220,17 +228,10 @@ pub mod pallet { ) -> DispatchResult { let sender = ensure_signed(origin)?; - ensure!( - model.len() >= T::MinSchemaModelSizeBytes::get() as usize, - Error::::LessThanMinSchemaModelBytes - ); - ensure!( - model.len() <= Self::get_schema_model_max_bytes() as usize, - Error::::ExceedsMaxSchemaModelBytes - ); + Self::validate_schema_model(&model, &model_type)?; - Self::ensure_valid_model(&model_type, &model)?; - let schema_id = Self::add_schema(model, model_type, payload_location)?; + let schema_id = + Self::add_schema(model, model_type, payload_location, BoundedVec::default())?; Self::deposit_event(Event::SchemaCreated { key: sender, schema_id }); Ok(()) @@ -263,6 +264,41 @@ pub mod pallet { Self::deposit_event(Event::SchemaMaxSizeChanged { max_size }); Ok(()) } + + /// Adds a given schema to storage with additional settings available from `SchemaSetting` + /// # Arguments + /// * `origin` - The origin of the call + /// * `model` - The schema model + /// * `model_type` - The schema model type + /// * `payload_location` - The schema payload location + /// * `settings` - The bounded list of additional schema settings. + /// + /// # Events + /// * [`Event::SchemaCreated`] + /// + /// # Errors + /// * [`Error::LessThanMinSchemaModelBytes`] - The schema's length is less than the minimum schema length + /// * [`Error::ExceedsMaxSchemaModelBytes`] - The schema's length is greater than the maximum schema length + /// * [`Error::InvalidSchema`] - Schema is malformed in some way + /// * [`Error::SchemaCountOverflow`] - The schema count has exceeded its bounds + #[pallet::call_index(2)] + #[pallet::weight(T::WeightInfo::create_schema(model.len() as u32 + settings.len() as u32))] + pub fn create_schema_with_settings( + origin: OriginFor, + model: BoundedVec, + model_type: ModelType, + payload_location: PayloadLocation, + settings: BoundedVec, + ) -> DispatchResult { + let sender = ensure_signed(origin)?; + + Self::validate_schema_model(&model, &model_type)?; + + let schema_id = Self::add_schema(model, model_type, payload_location, settings)?; + + Self::deposit_event(Event::SchemaCreated { key: sender, schema_id }); + Ok(()) + } } impl Pallet { @@ -278,9 +314,16 @@ pub mod pallet { model: BoundedVec, model_type: ModelType, payload_location: PayloadLocation, + settings: BoundedVec, ) -> Result { let schema_id = Self::get_next_schema_id()?; - let schema = Schema { model_type, model, payload_location }; + let mut set_settings = SchemaSettings::all_disabled(); + if !settings.is_empty() { + for i in settings.into_inner() { + set_settings.set(i); + } + } + let schema = Schema { model_type, model, payload_location, settings: set_settings }; >::set(schema_id); >::insert(schema_id, schema); Ok(schema_id) @@ -290,12 +333,14 @@ pub mod pallet { pub fn get_schema_by_id(schema_id: SchemaId) -> Option { if let Some(schema) = Self::get_schema(schema_id) { let model_vec: Vec = schema.model.into_inner(); - + let saved_settings = schema.settings; + let settings = saved_settings.0.iter().collect::>(); let response = SchemaResponse { schema_id, model: model_vec, model_type: schema.model_type, payload_location: schema.payload_location, + settings, }; return Some(response) } @@ -335,6 +380,23 @@ pub mod pallet { Ok(next) } + + fn validate_schema_model( + model: &BoundedVec, + model_type: &ModelType, + ) -> Result<(), DispatchError> { + ensure!( + model.len() >= T::MinSchemaModelSizeBytes::get() as usize, + Error::::LessThanMinSchemaModelBytes + ); + ensure!( + model.len() <= Self::get_schema_model_max_bytes() as usize, + Error::::ExceedsMaxSchemaModelBytes + ); + + Self::ensure_valid_model(&model_type, &model)?; + Ok(()) + } } } @@ -354,7 +416,7 @@ impl SchemaBenchmarkHelper for Pallet { let model: BoundedVec = model.try_into().unwrap(); Self::ensure_valid_model(&model_type, &model)?; - Self::add_schema(model, model_type, payload_location)?; + Self::add_schema(model, model_type, payload_location, BoundedVec::default())?; Ok(()) } } diff --git a/pallets/schemas/src/migrations.rs b/pallets/schemas/src/migrations.rs new file mode 100644 index 0000000000..b97c40d14d --- /dev/null +++ b/pallets/schemas/src/migrations.rs @@ -0,0 +1,73 @@ +//! Migrations for the schemas pallet. +//! Following migrations are required: +//! - Adding settings to the Schema struct +//! Note: Post migration, this file should be deleted. +use crate::{types::Schema, *}; +use codec::{Decode, Encode, MaxEncodedLen}; +use common_primitives::schema::{ModelType, PayloadLocation, SchemaSettings}; +use frame_support::{ + pallet_prelude::Weight, + traits::{Get, StorageVersion}, + BoundedVec, +}; +use scale_info::TypeInfo; + +/// Migrations for the schemas pallet. +/// Following migrations are required: +/// - Adding settings to the Schema struct +/// Note: Post migration, this file should be deleted. +pub mod v1 { + use super::*; + #[derive(Clone, Encode, Decode, PartialEq, Debug, TypeInfo, Eq, MaxEncodedLen)] + #[scale_info(skip_type_params(MaxModelSize))] + /// A structure defining a Schema + pub struct OldSchema + where + MaxModelSize: Get, + { + /// The type of model (AvroBinary, Parquet, etc.) + pub model_type: ModelType, + /// Defines the structure of the message payload using model_type + pub model: BoundedVec, + /// The payload location + pub payload_location: PayloadLocation, + } + + /// translate schemas and return the weight to test the migration + #[cfg(feature = "try-runtime")] + pub fn pre_migrate_schemas_to_v1() -> Weight { + migrate_to_v1::() + } + + /// Runs the actual migration when runtime upgrade is performed + pub fn migrate_schemas_to_v1() -> Weight { + migrate_to_v1::() + } + + /// post migration check + #[cfg(feature = "try-runtime")] + pub fn post_migrate_schemas_to_v1() -> Weight { + migrate_to_v1::() + } + + fn migrate_to_v1() -> Weight { + let mut weight: Weight = Weight::zero(); + + if StorageVersion::get::>() < 1 { + >::translate_values( + |old_schema: OldSchema| { + weight = weight.saturating_add(T::DbWeight::get().reads_writes(1, 1)); + Some(Schema { + model_type: old_schema.model_type, + model: old_schema.model, + payload_location: old_schema.payload_location, + settings: SchemaSettings::all_disabled(), + }) + }, + ); + StorageVersion::new(1).put::>(); + } + + weight + } +} diff --git a/pallets/schemas/src/mock.rs b/pallets/schemas/src/mock.rs index b663227604..22c858b195 100644 --- a/pallets/schemas/src/mock.rs +++ b/pallets/schemas/src/mock.rs @@ -58,6 +58,7 @@ impl pallet_schemas::Config for Test { // is actually allowed. type SchemaModelMaxBytesBoundedVecLimit = ConstU32<65_500>; type MaxSchemaRegistrations = MaxSchemaRegistrations; + type MaxSchemaSettingsPerSchema = ConstU32<1>; } impl frame_system::Config for Test { diff --git a/pallets/schemas/src/rpc/src/tests/mod.rs b/pallets/schemas/src/rpc/src/tests/mod.rs index 784940418d..4722062b8b 100644 --- a/pallets/schemas/src/rpc/src/tests/mod.rs +++ b/pallets/schemas/src/rpc/src/tests/mod.rs @@ -18,6 +18,7 @@ sp_api::mock_impl_runtime_apis! { model: b"schema".to_vec(), model_type: ModelType::AvroBinary, payload_location: PayloadLocation::OnChain, + settings: Vec::new(), }), _ => None, } diff --git a/pallets/schemas/src/tests.rs b/pallets/schemas/src/tests.rs index 90f333566a..1dec826416 100644 --- a/pallets/schemas/src/tests.rs +++ b/pallets/schemas/src/tests.rs @@ -10,7 +10,7 @@ use common_primitives::{ types::ParquetType, ParquetModel, }, - schema::{ModelType, PayloadLocation, SchemaId}, + schema::{ModelType, PayloadLocation, SchemaId, SchemaSetting}, }; use crate::{Config, Error, Event as AnnouncementEvent}; @@ -67,7 +67,7 @@ fn register_schema_happy_path() { RuntimeOrigin::signed(sender), create_bounded_schema_vec(r#"{"name": "Doe", "type": "lost"}"#), ModelType::AvroBinary, - PayloadLocation::OnChain + PayloadLocation::OnChain, )); }) } @@ -83,7 +83,7 @@ fn register_schema_unhappy_path() { // name key does not have a colon create_bounded_schema_vec(r#"{"name", 54, "type": "none"}"#), ModelType::AvroBinary, - PayloadLocation::OnChain + PayloadLocation::OnChain, ), Error::::InvalidSchema ); @@ -142,7 +142,7 @@ fn register_schema_id_deposits_events_and_increments_schema_id() { RuntimeOrigin::signed(sender), create_bounded_schema_vec(fields), ModelType::AvroBinary, - PayloadLocation::OnChain + PayloadLocation::OnChain, )); System::assert_last_event( AnnouncementEvent::SchemaCreated { key: sender, schema_id: expected_schema_id } @@ -154,7 +154,7 @@ fn register_schema_id_deposits_events_and_increments_schema_id() { RuntimeOrigin::signed(sender), create_bounded_schema_vec(r#"{"account":3050}"#), ModelType::AvroBinary, - PayloadLocation::OnChain + PayloadLocation::OnChain, )); }) } @@ -171,7 +171,7 @@ fn get_existing_schema_by_id_should_return_schema() { RuntimeOrigin::signed(sender), create_bounded_schema_vec(test_str), ModelType::AvroBinary, - PayloadLocation::OnChain + PayloadLocation::OnChain, )); // act @@ -350,3 +350,27 @@ fn dsnp_broadcast() { ); assert_ok!(result); } + +#[test] +fn create_schema_with_settings_should_work() { + new_test_ext().execute_with(|| { + sudo_set_max_schema_size(); + + // arrange + let settings = vec![SchemaSetting::AppendOnly]; + let sender: AccountId = 1; + + // assert + assert_ok!(SchemasPallet::create_schema_with_settings( + RuntimeOrigin::signed(sender), + create_bounded_schema_vec(r#"{"name":"John Doe"}"#), + ModelType::AvroBinary, + PayloadLocation::Itemized, + BoundedVec::try_from(settings.clone()).unwrap(), + )); + + // assert + let res = SchemasPallet::get_schema_by_id(1); + assert_eq!(res.unwrap().settings, settings); + }) +} diff --git a/pallets/schemas/src/types.rs b/pallets/schemas/src/types.rs index de9af6b0ac..21c52fee19 100644 --- a/pallets/schemas/src/types.rs +++ b/pallets/schemas/src/types.rs @@ -1,9 +1,14 @@ //! Types for the Schema Pallet -use common_primitives::schema::{ModelType, PayloadLocation}; -use frame_support::{traits::Get, BoundedVec}; +use codec::{Decode, Encode, MaxEncodedLen}; +use common_primitives::schema::{ModelType, PayloadLocation, SchemaSettings}; +use frame_support::{ + traits::{Get, StorageVersion}, + BoundedVec, +}; use scale_info::TypeInfo; -use codec::{Decode, Encode, MaxEncodedLen}; +/// Current storage version of the schemas pallet. +pub const SCHEMA_STORAGE_VERSION: StorageVersion = StorageVersion::new(1); #[derive(Clone, Encode, Decode, PartialEq, Debug, TypeInfo, Eq, MaxEncodedLen)] #[scale_info(skip_type_params(MaxModelSize))] @@ -18,4 +23,6 @@ where pub model: BoundedVec, /// The payload location pub payload_location: PayloadLocation, + /// additional control settings for the schema + pub settings: SchemaSettings, } diff --git a/pallets/stateful-storage/src/lib.rs b/pallets/stateful-storage/src/lib.rs index e4873c8c7f..15dd61f507 100644 --- a/pallets/stateful-storage/src/lib.rs +++ b/pallets/stateful-storage/src/lib.rs @@ -69,7 +69,7 @@ use common_primitives::stateful_storage::PageId; use common_primitives::{ msa::{DelegatorId, MessageSourceId, MsaValidator, ProviderId, SchemaGrantValidator}, node::Verify, - schema::{PayloadLocation, SchemaId, SchemaProvider}, + schema::{PayloadLocation, SchemaId, SchemaProvider, SchemaSetting}, stateful_storage::{ ItemizedStoragePageResponse, ItemizedStorageResponse, PageHash, PaginatedStorageResponse, }, @@ -171,6 +171,9 @@ pub mod pallet { /// Invalid SchemaId or Schema not found InvalidSchemaId, + /// Unsupported schema + SchemaNotSupported, + /// Schema is not valid for storage model SchemaPayloadLocationMismatch, @@ -270,8 +273,9 @@ pub mod pallet { actions: BoundedVec, ) -> DispatchResult { let provider_key = ensure_signed(origin)?; + let is_pruning = actions.iter().any(|a| matches!(a, ItemAction::Delete { .. })); Self::check_actions(&actions)?; - Self::check_schema(schema_id, PayloadLocation::Itemized)?; + Self::check_schema(schema_id, PayloadLocation::Itemized, false, is_pruning)?; Self::check_grants(provider_key, state_owner_msa_id, schema_id)?; Self::modify_itemized(state_owner_msa_id, schema_id, target_hash, actions)?; Ok(()) @@ -293,7 +297,7 @@ pub mod pallet { page_id as u32 <= T::MaxPaginatedPageId::get(), Error::::PageIdExceedsMaxAllowed ); - Self::check_schema(schema_id, PayloadLocation::Paginated)?; + Self::check_schema(schema_id, PayloadLocation::Paginated, false, false)?; Self::check_grants(provider_key, state_owner_msa_id, schema_id)?; Self::modify_paginated( state_owner_msa_id, @@ -320,7 +324,7 @@ pub mod pallet { page_id as u32 <= T::MaxPaginatedPageId::get(), Error::::PageIdExceedsMaxAllowed ); - Self::check_schema(schema_id, PayloadLocation::Paginated)?; + Self::check_schema(schema_id, PayloadLocation::Paginated, false, true)?; Self::check_grants(provider_key, state_owner_msa_id, schema_id)?; Self::delete_paginated(state_owner_msa_id, schema_id, page_id, target_hash)?; Ok(()) @@ -342,6 +346,8 @@ pub mod pallet { payload: ItemizedSignaturePayload, ) -> DispatchResult { ensure_signed(origin)?; + + let is_pruning = payload.actions.iter().any(|a| matches!(a, ItemAction::Delete { .. })); Self::check_actions(&payload.actions)?; Self::check_payload_expiration( frame_system::Pallet::::block_number(), @@ -349,7 +355,7 @@ pub mod pallet { )?; Self::check_signature(&proof, &delegator_key.clone(), payload.encode())?; Self::check_msa(delegator_key, payload.msa_id)?; - Self::check_schema(payload.schema_id, PayloadLocation::Itemized)?; + Self::check_schema(payload.schema_id, PayloadLocation::Itemized, true, is_pruning)?; Self::modify_itemized( payload.msa_id, payload.schema_id, @@ -380,7 +386,7 @@ pub mod pallet { )?; Self::check_signature(&proof, &delegator_key.clone(), payload.encode())?; Self::check_msa(delegator_key, payload.msa_id)?; - Self::check_schema(payload.schema_id, PayloadLocation::Paginated)?; + Self::check_schema(payload.schema_id, PayloadLocation::Paginated, true, false)?; Self::modify_paginated( payload.msa_id, payload.schema_id, @@ -412,7 +418,7 @@ pub mod pallet { )?; Self::check_signature(&proof, &delegator_key.clone(), payload.encode())?; Self::check_msa(delegator_key, payload.msa_id)?; - Self::check_schema(payload.schema_id, PayloadLocation::Paginated)?; + Self::check_schema(payload.schema_id, PayloadLocation::Paginated, true, true)?; Self::delete_paginated( payload.msa_id, payload.schema_id, @@ -433,7 +439,7 @@ impl Pallet { msa_id: MessageSourceId, schema_id: SchemaId, ) -> Result, DispatchError> { - Self::check_schema(schema_id, PayloadLocation::Paginated)?; + Self::check_schema(schema_id, PayloadLocation::Paginated, false, false)?; let prefix: PaginatedPrefixKey = (schema_id,); Ok(StatefulChildTree::::prefix_iterator::< PaginatedPage, @@ -452,7 +458,7 @@ impl Pallet { msa_id: MessageSourceId, schema_id: SchemaId, ) -> Result { - Self::check_schema(schema_id, PayloadLocation::Itemized)?; + Self::check_schema(schema_id, PayloadLocation::Itemized, false, false)?; let key: ItemizedKey = (schema_id,); let page = StatefulChildTree::::try_read::>( &msa_id, &key, @@ -511,32 +517,35 @@ impl Pallet { current_block + T::BlockNumber::from(T::MortalityWindowSize::get()) } - /// Verifies the existence and payload location of the schema - /// - /// # Errors - /// * [`Error::InvalidSchemaId`] - /// * [`Error::SchemaPayloadLocationMismatch`] - /// fn check_schema( schema_id: SchemaId, expected_payload_location: PayloadLocation, + is_payload_signed: bool, + is_deleting: bool, ) -> DispatchResult { let schema = T::SchemaProvider::get_schema_by_id(schema_id).ok_or(Error::::InvalidSchemaId)?; + + // Ensure that the schema's payload location matches the expected location. ensure!( schema.payload_location == expected_payload_location, Error::::SchemaPayloadLocationMismatch ); + + // Ensure that the schema allows signed payloads. + // If so, calling extrinsic must be of signature type. + if schema.settings.contains(&SchemaSetting::SignatureRequired) { + ensure!(is_payload_signed, Error::::SchemaNotSupported); + } + + // Ensure that the schema does not allow deletion for AppendOnly SchemaSetting. + if schema.settings.contains(&SchemaSetting::AppendOnly) { + ensure!(!is_deleting, Error::::SchemaNotSupported); + } + Ok(()) } - /// Verifies if the provider key has an Msa and if provider msa is different from state owner - /// msa it checks for active delegation for schema id - /// - /// # Errors - /// * [`Error::InvalidMessageSourceAccount`] - /// * [`Error::UnAuthorizedDelegate`] - /// fn check_grants( provider_key: T::AccountId, state_owner_msa_id: MessageSourceId, diff --git a/pallets/stateful-storage/src/mock.rs b/pallets/stateful-storage/src/mock.rs index 13d9ca2813..54ca853aae 100644 --- a/pallets/stateful-storage/src/mock.rs +++ b/pallets/stateful-storage/src/mock.rs @@ -11,7 +11,7 @@ use common_primitives::{ ProviderId, ProviderLookup, SchemaGrantValidator, }, node::AccountId, - schema::{ModelType, PayloadLocation, SchemaId, SchemaProvider, SchemaResponse}, + schema::{ModelType, PayloadLocation, SchemaId, SchemaProvider, SchemaResponse, SchemaSetting}, stateful_storage::PageId, }; use frame_support::{ @@ -32,8 +32,6 @@ type UncheckedExtrinsic = frame_system::mocking::MockUncheckedExtrinsic; type Block = frame_system::mocking::MockBlock; pub const INVALID_SCHEMA_ID: SchemaId = SchemaId::MAX; -pub const UNDELEGATED_PAGINATED_SCHEMA: SchemaId = 102; -pub const UNDELEGATED_ITEMIZED_SCHEMA: SchemaId = 103; pub const INVALID_MSA_ID: MessageSourceId = 100; pub const TEST_ACCOUNT_SEED: [u8; 32] = [0; 32]; @@ -184,7 +182,10 @@ impl SchemaGrantValidator for SchemaGrantValidationHan schema_id: SchemaId, _block_number: BlockNumber, ) -> DispatchResult { - if schema_id == UNDELEGATED_PAGINATED_SCHEMA || schema_id == UNDELEGATED_ITEMIZED_SCHEMA { + if schema_id == constants::UNDELEGATED_PAGINATED_SCHEMA || + schema_id == constants::UNDELEGATED_ITEMIZED_APPEND_ONLY_SCHEMA || + schema_id == constants::UNDELEGATED_ITEMIZED_SCHEMA + { return Err(DispatchError::Other("no schema grant or delegation")) } @@ -200,20 +201,51 @@ impl SchemaProvider for SchemaHandler { // For testing/benchmarking. Zero value returns None, Odd for Itemized, Even for Paginated fn get_schema_by_id(schema_id: SchemaId) -> Option { match schema_id { - constants::ITEMIZED_SCHEMA | UNDELEGATED_ITEMIZED_SCHEMA => Some(SchemaResponse { + constants::ITEMIZED_SCHEMA | constants::UNDELEGATED_ITEMIZED_SCHEMA => + Some(SchemaResponse { + schema_id, + model: r#"schema"#.to_string().as_bytes().to_vec(), + model_type: ModelType::AvroBinary, + payload_location: PayloadLocation::Itemized, + settings: Vec::new(), + }), + constants::ITEMIZED_APPEND_ONLY_SCHEMA | + constants::UNDELEGATED_ITEMIZED_APPEND_ONLY_SCHEMA => Some(SchemaResponse { schema_id, model: r#"schema"#.to_string().as_bytes().to_vec(), model_type: ModelType::AvroBinary, payload_location: PayloadLocation::Itemized, + settings: Vec::try_from(vec![SchemaSetting::AppendOnly]).unwrap(), }), - - constants::PAGINATED_SCHEMA | UNDELEGATED_PAGINATED_SCHEMA => Some(SchemaResponse { + constants::ITEMIZED_SIGNATURE_REQUIRED_SCHEMA => Some(SchemaResponse { + schema_id, + model: r#"schema"#.to_string().as_bytes().to_vec(), + model_type: ModelType::AvroBinary, + payload_location: PayloadLocation::Itemized, + settings: Vec::try_from(vec![SchemaSetting::SignatureRequired]).unwrap(), + }), + constants::PAGINATED_SCHEMA | constants::UNDELEGATED_PAGINATED_SCHEMA => + Some(SchemaResponse { + schema_id, + model: r#"schema"#.to_string().as_bytes().to_vec(), + model_type: ModelType::AvroBinary, + payload_location: PayloadLocation::Paginated, + settings: Vec::new(), + }), + constants::PAGINATED_SIGNED_SCHEMA => Some(SchemaResponse { schema_id, model: r#"schema"#.to_string().as_bytes().to_vec(), model_type: ModelType::AvroBinary, payload_location: PayloadLocation::Paginated, + settings: Vec::try_from(vec![SchemaSetting::SignatureRequired]).unwrap(), + }), + constants::PAGINATED_APPEND_ONLY_SCHEMA => Some(SchemaResponse { + schema_id, + model: r#"schema"#.to_string().as_bytes().to_vec(), + model_type: ModelType::AvroBinary, + payload_location: PayloadLocation::Paginated, + settings: Vec::try_from(vec![SchemaSetting::AppendOnly]).unwrap(), }), - INVALID_SCHEMA_ID => None, _ => Some(SchemaResponse { @@ -221,6 +253,7 @@ impl SchemaProvider for SchemaHandler { model: r#"schema"#.to_string().as_bytes().to_vec(), model_type: ModelType::AvroBinary, payload_location: PayloadLocation::OnChain, + settings: Vec::from(vec![SchemaSetting::AppendOnly]), }), } } diff --git a/pallets/stateful-storage/src/test_common.rs b/pallets/stateful-storage/src/test_common.rs index adcef89092..0dbae8e363 100644 --- a/pallets/stateful-storage/src/test_common.rs +++ b/pallets/stateful-storage/src/test_common.rs @@ -3,6 +3,7 @@ use common_primitives::{msa::MessageSourceId, schema::SchemaId}; /// /// Constants used both in benchmarks and tests /// +#[allow(unused)] pub mod constants { use super::*; /// itemized schema id @@ -14,4 +15,16 @@ pub mod constants { "replace rhythm attend tank sister accuse ancient piece tornado benefit rubber horror"; /// Account mentioned above maps to the following msa id pub const SIGNATURE_MSA_ID: MessageSourceId = 105; + + /// additional unit test schemas + + /// Itemized + pub const UNDELEGATED_ITEMIZED_APPEND_ONLY_SCHEMA: SchemaId = 102; + pub const ITEMIZED_APPEND_ONLY_SCHEMA: SchemaId = 103; + pub const ITEMIZED_SIGNATURE_REQUIRED_SCHEMA: SchemaId = 104; + pub const UNDELEGATED_ITEMIZED_SCHEMA: SchemaId = 105; + /// Paginated + pub const PAGINATED_SIGNED_SCHEMA: SchemaId = 106; + pub const PAGINATED_APPEND_ONLY_SCHEMA: SchemaId = 107; + pub const UNDELEGATED_PAGINATED_SCHEMA: SchemaId = 108; } diff --git a/pallets/stateful-storage/src/tests.rs b/pallets/stateful-storage/src/tests.rs index 156872cc44..65f1886166 100644 --- a/pallets/stateful-storage/src/tests.rs +++ b/pallets/stateful-storage/src/tests.rs @@ -2252,3 +2252,123 @@ fn delete_page_with_signature_having_valid_inputs_should_remove_page() { ); }) } + +#[test] +fn apply_delete_item_on_append_only_fails() { + new_test_ext().execute_with(|| { + // arrange + let caller_1 = test_public(1); + let msa_id = 1; + let schema_id = ITEMIZED_APPEND_ONLY_SCHEMA; + let payload = vec![1; 5]; + let actions1 = vec![ItemAction::Add { data: payload }]; + let actions2 = vec![ItemAction::Delete { index: 0 }]; + let keys = (schema_id,); + assert_ok!(StatefulStoragePallet::apply_item_actions( + RuntimeOrigin::signed(caller_1.clone()), + msa_id, + schema_id, + NONEXISTENT_PAGE_HASH, + BoundedVec::try_from(actions1).unwrap(), + )); + + let items1: Option> = + StatefulChildTree::<::KeyHasher>::try_read(&msa_id, &keys).unwrap(); + assert!(items1.is_some()); + let content_hash = items1.unwrap().get_hash(); + + // assert + assert_err!( + StatefulStoragePallet::apply_item_actions( + RuntimeOrigin::signed(caller_1), + msa_id, + schema_id, + content_hash, + BoundedVec::try_from(actions2).unwrap(), + ), + Error::::SchemaNotSupported + ); + }); +} + +#[test] +fn delete_page_fails_for_append_only() { + new_test_ext().execute_with(|| { + // setup + let caller_1 = test_public(1); + let msa_id = 1; + let schema_id = PAGINATED_APPEND_ONLY_SCHEMA; + let page_id = 11; + let payload = generate_payload_bytes::(None); + let page: PaginatedPage = payload.clone().into(); + let page_hash = page.get_hash(); + + // assert + assert_ok!(StatefulStoragePallet::upsert_page( + RuntimeOrigin::signed(caller_1.clone()), + msa_id, + schema_id, + page_id, + NONEXISTENT_PAGE_HASH, + payload.into(), + )); + + assert_err!( + StatefulStoragePallet::delete_page( + RuntimeOrigin::signed(caller_1), + msa_id, + schema_id, + page_id, + page_hash + ), + Error::::SchemaNotSupported + ); + }); +} + +#[test] +fn apply_actions_on_signature_schema_fails() { + new_test_ext().execute_with(|| { + // arrange + let caller_1 = test_public(1); + let msa_id = 1; + let schema_id = ITEMIZED_SIGNATURE_REQUIRED_SCHEMA; + let payload = vec![1; 5]; + let actions1 = vec![ItemAction::Add { data: payload }]; + assert_err!( + StatefulStoragePallet::apply_item_actions( + RuntimeOrigin::signed(caller_1), + msa_id, + schema_id, + NONEXISTENT_PAGE_HASH, + BoundedVec::try_from(actions1).unwrap(), + ), + Error::::SchemaNotSupported + ); + }); +} + +#[test] +fn insert_page_fails_for_signature_schema() { + new_test_ext().execute_with(|| { + // setup + let caller_1 = test_public(1); + let msa_id = 1; + let schema_id = PAGINATED_SIGNED_SCHEMA; + let page_id = 11; + let payload = generate_payload_bytes::(None); + + // assert + assert_err!( + StatefulStoragePallet::upsert_page( + RuntimeOrigin::signed(caller_1), + msa_id, + schema_id, + page_id, + NONEXISTENT_PAGE_HASH, + payload.into(), + ), + Error::::SchemaNotSupported + ); + }); +} diff --git a/pallets/stateful-storage/src/weights.rs b/pallets/stateful-storage/src/weights.rs index 494573cc80..15207ebd1b 100644 --- a/pallets/stateful-storage/src/weights.rs +++ b/pallets/stateful-storage/src/weights.rs @@ -81,7 +81,7 @@ impl WeightInfo for SubstrateWeight { // Storage: Schemas Schemas (r:1 w:0) // Storage: Msa PublicKeyToMsaId (r:1 w:0) // Storage: Msa DelegatorAndProviderToDelegation (r:1 w:0) - // Storage: unknown [0x0763c98381dc89abe38627fe2f98cb7af1577fbf1d628fdddb4ebfc6e8d95fb1] (r:1 w:1) + // Storage: unknown [0x0763c98381dc89abe38627fe2f98cb7af1577fbf1d628fdddb4ebfc6e8d95fb1] (r:0 w:1) fn upsert_page(s: u32, ) -> Weight { Weight::from_ref_time(22_055_060 as u64) // Standard Error: 45 @@ -148,7 +148,7 @@ impl WeightInfo for () { // Storage: Schemas Schemas (r:1 w:0) // Storage: Msa PublicKeyToMsaId (r:1 w:0) // Storage: Msa DelegatorAndProviderToDelegation (r:1 w:0) - // Storage: unknown [0x0763c98381dc89abe38627fe2f98cb7af1577fbf1d628fdddb4ebfc6e8d95fb1] (r:1 w:1) + // Storage: unknown [0x0763c98381dc89abe38627fe2f98cb7af1577fbf1d628fdddb4ebfc6e8d95fb1] (r:0 w:1) fn upsert_page(s: u32, ) -> Weight { Weight::from_ref_time(22_055_060 as u64) // Standard Error: 45 diff --git a/runtime/common/src/constants.rs b/runtime/common/src/constants.rs index 7e14267b3f..055395b15f 100644 --- a/runtime/common/src/constants.rs +++ b/runtime/common/src/constants.rs @@ -132,6 +132,8 @@ parameter_types! { pub type SchemasMinModelSizeBytes = ConstU32<8>; /// The maximum length of a schema model (in bytes) pub type SchemasMaxBytesBoundedVecLimit = ConstU32<65_500>; +/// The maximum number of grants allowed per schema +pub type MaxSchemaSettingsPerSchema = ConstU32<2>; // -end- Schemas Pallet --- // --- Orml Vesting Pallet --- diff --git a/runtime/frequency/src/lib.rs b/runtime/frequency/src/lib.rs index c93c1fc2ba..bf6a29f040 100644 --- a/runtime/frequency/src/lib.rs +++ b/runtime/frequency/src/lib.rs @@ -76,6 +76,9 @@ pub use common_runtime::{ }; use frame_support::traits::Contains; +#[cfg(feature = "try-runtime")] +use frame_support::traits::TryStateSelect; + /// Basefilter to only allow specified transactions call to be executed /// For non mainnet [--features frequency] all transactions are allowed pub struct BaseCallFilter; @@ -148,6 +151,7 @@ pub type Executive = frame_executive::Executive< frame_system::ChainContext, Runtime, AllPalletsWithSystem, + SchemaMigrationToV1, >; /// Opaque types. These are used by the CLI to instantiate machinery that don't need to know @@ -196,7 +200,7 @@ pub const VERSION: RuntimeVersion = RuntimeVersion { spec_name: spec_name!("frequency"), impl_name: create_runtime_str!("frequency"), authoring_version: 1, - spec_version: 11, + spec_version: 21, impl_version: 0, apis: RUNTIME_API_VERSIONS, transaction_version: 1, @@ -324,6 +328,8 @@ impl pallet_schemas::Config for Runtime { type MaxSchemaRegistrations = SchemasMaxRegistrations; // The maximum length of a schema model (in bytes) type SchemaModelMaxBytesBoundedVecLimit = SchemasMaxBytesBoundedVecLimit; + // Maximum number of schema grants that are allowed per schema + type MaxSchemaSettingsPerSchema = MaxSchemaSettingsPerSchema; } pub struct RootAsVestingPallet; @@ -1011,20 +1017,25 @@ impl_runtime_apis! { #[cfg(feature = "try-runtime")] impl frame_try_runtime::TryRuntime for Runtime { - fn on_runtime_upgrade() -> (Weight, Weight) { + fn on_runtime_upgrade(_checks: bool) -> (Weight, Weight) { log::info!("try-runtime::on_runtime_upgrade frequency."); - let weight = Executive::try_runtime_upgrade().unwrap(); + let weight = Executive::try_runtime_upgrade(true).unwrap(); (weight, RuntimeBlockWeights::get().max_block) } - fn execute_block(block: Block, state_root_check: bool, select: frame_try_runtime::TryStateSelect) -> Weight { + + fn execute_block(block: Block, + state_root_check: bool, + signature_check: bool, + try_state: TryStateSelect, + ) -> Weight { log::info!( target: "runtime::frequency", "try-runtime: executing block #{} ({:?}) / root checks: {:?} / sanity-checks: {:?}", block.header.number, block.header.hash(), state_root_check, - select, + try_state, ); - Executive::try_execute_block(block, state_root_check, select).expect("try_execute_block failed") + Executive::try_execute_block(block, state_root_check, signature_check, try_state).expect("try_execute_block failed") } } @@ -1104,6 +1115,38 @@ cumulus_pallet_parachain_system::register_validate_block! { CheckInherents = CheckInherents, } +// ============================================== +// RUNTIME STORAGE MIGRATION: Schemas +// ============================================== +/// Schema migration to v1 for pallet-stateful-storage +use frame_support::traits::OnRuntimeUpgrade; + +pub struct SchemaMigrationToV1; +impl OnRuntimeUpgrade for SchemaMigrationToV1 { + #[cfg(feature = "try-runtime")] + fn pre_upgrade() -> Result, &'static str> { + let weight = pallet_schemas::migrations::v1::pre_migrate_schemas_to_v1::(); + log::info!("pre_upgrade weight: {:?}", weight); + Ok(Vec::new()) + } + + // try-runtime migration code + #[cfg(not(feature = "try-runtime"))] + fn on_runtime_upgrade() -> Weight { + pallet_schemas::migrations::v1::migrate_schemas_to_v1::() + } + + #[cfg(feature = "try-runtime")] + fn post_upgrade(_state: Vec) -> Result<(), &'static str> { + let weight = pallet_schemas::migrations::v1::post_migrate_schemas_to_v1::(); + log::info!("post_upgrade weight: {:?}", weight); + Ok(()) + } +} +// ============================================== +// END RUNTIME STORAGE MIGRATION: Schemas +// ============================================== + #[cfg(test)] mod tests { use super::*; From e4d2112b8dbf97345f026a7298abacadf182ede2 Mon Sep 17 00:00:00 2001 From: Aramik Date: Tue, 28 Feb 2023 14:02:23 -0800 Subject: [PATCH 3/4] child-trees: support for different storage names (#1151) # Goal The goal of this PR is to add support for different storage names in child trees Closes #1149 # Discussion - Tried to fix the error message when getting all prefix keys for paginated storages `next_key returned a key with no value` but the attempt failed --- pallets/stateful-storage/src/benchmarking.rs | 32 ++- pallets/stateful-storage/src/lib.rs | 82 ++++-- .../src/stateful_child_tree.rs | 38 ++- pallets/stateful-storage/src/tests.rs | 241 ++++++++++++++---- pallets/stateful-storage/src/types.rs | 7 + 5 files changed, 325 insertions(+), 75 deletions(-) diff --git a/pallets/stateful-storage/src/benchmarking.rs b/pallets/stateful-storage/src/benchmarking.rs index 4dc61dab8d..231ff5c985 100644 --- a/pallets/stateful-storage/src/benchmarking.rs +++ b/pallets/stateful-storage/src/benchmarking.rs @@ -65,7 +65,11 @@ benchmarks! { for _ in 0..num_of_items { let actions = itemized_actions_add::(1, T::MaxItemizedBlobSizeBytes::get() as usize); - let content_hash = StatefulChildTree::::try_read::<_, ItemizedPage::>(&delegator_msa_id, &key).unwrap().unwrap_or_default().get_hash(); + let content_hash = StatefulChildTree::::try_read::<_, ItemizedPage::>( + &delegator_msa_id, + PALLET_STORAGE_PREFIX, + ITEMIZED_STORAGE_PREFIX, + &key).unwrap().unwrap_or_default().get_hash(); assert_ok!(StatefulStoragePallet::::apply_item_actions(RawOrigin::Signed(caller.clone()).into(), delegator_msa_id.into(), schema_id, content_hash, actions)); } @@ -112,8 +116,16 @@ benchmarks! { assert_ok!(T::MsaBenchmarkHelper::set_delegation_relationship(provider_msa_id.into(), delegator_msa_id.into(), [schema_id].to_vec())); let key = (schema_id, page_id); - StatefulChildTree::::write(&delegator_msa_id, &key, payload.clone()); - let content_hash = StatefulChildTree::::try_read::<_, PaginatedPage::>(&delegator_msa_id, &key).unwrap().unwrap().get_hash(); + StatefulChildTree::::write(&delegator_msa_id, + PALLET_STORAGE_PREFIX, + PAGINATED_STORAGE_PREFIX, + &key, payload.clone() + ); + let content_hash = StatefulChildTree::::try_read::<_, PaginatedPage::>( + &delegator_msa_id, + PALLET_STORAGE_PREFIX, + PAGINATED_STORAGE_PREFIX, + &key).unwrap().unwrap().get_hash(); }: _(RawOrigin::Signed(caller), delegator_msa_id.into(), schema_id, page_id, content_hash) verify { let page_result = StatefulStoragePallet::::get_paginated_page(delegator_msa_id, schema_id, page_id); @@ -211,8 +223,18 @@ benchmarks! { assert_ok!(T::MsaBenchmarkHelper::add_key(delegator_msa_id.into(), delegator_account.clone())); let key = (schema_id, page_id); - StatefulChildTree::::write(&delegator_msa_id, &key, payload.clone()); - let content_hash = StatefulChildTree::::try_read::<_, PaginatedPage::>(&delegator_msa_id, &key).unwrap().unwrap().get_hash(); + StatefulChildTree::::write( + &delegator_msa_id, + PALLET_STORAGE_PREFIX, + PAGINATED_STORAGE_PREFIX, + &key, + payload.clone(), + ); + let content_hash = StatefulChildTree::::try_read::<_, PaginatedPage::>( + &delegator_msa_id, + PALLET_STORAGE_PREFIX, + PAGINATED_STORAGE_PREFIX, + &key).unwrap().unwrap().get_hash(); let payload = PaginatedDeleteSignaturePayload { target_hash: content_hash, diff --git a/pallets/stateful-storage/src/lib.rs b/pallets/stateful-storage/src/lib.rs index 15dd61f507..0a71ab7086 100644 --- a/pallets/stateful-storage/src/lib.rs +++ b/pallets/stateful-storage/src/lib.rs @@ -445,7 +445,7 @@ impl Pallet { PaginatedPage, PaginatedKey, PaginatedPrefixKey, - >(&msa_id, &prefix) + >(&msa_id, PALLET_STORAGE_PREFIX, PAGINATED_STORAGE_PREFIX, &prefix) .map(|(k, v)| { let content_hash = v.get_hash(); PaginatedStorageResponse::new(k.1, msa_id, schema_id, v.data.into_inner(), content_hash) @@ -461,7 +461,10 @@ impl Pallet { Self::check_schema(schema_id, PayloadLocation::Itemized, false, false)?; let key: ItemizedKey = (schema_id,); let page = StatefulChildTree::::try_read::>( - &msa_id, &key, + &msa_id, + PALLET_STORAGE_PREFIX, + ITEMIZED_STORAGE_PREFIX, + &key, ) .map_err(|_| Error::::CorruptedState)? .unwrap_or_default(); @@ -610,6 +613,8 @@ impl Pallet { let key: ItemizedKey = (schema_id,); let existing_page = StatefulChildTree::::try_read::<_, ItemizedPage>( &state_owner_msa_id, + PALLET_STORAGE_PREFIX, + ITEMIZED_STORAGE_PREFIX, &key, ) .map_err(|_| Error::::CorruptedState)? @@ -633,7 +638,12 @@ impl Pallet { match updated_page.is_empty() { true => { - StatefulChildTree::::kill(&state_owner_msa_id, &key); + StatefulChildTree::::kill( + &state_owner_msa_id, + PALLET_STORAGE_PREFIX, + ITEMIZED_STORAGE_PREFIX, + &key, + ); Self::deposit_event(Event::ItemizedPageDeleted { msa_id: state_owner_msa_id, schema_id, @@ -641,7 +651,13 @@ impl Pallet { }); }, false => { - StatefulChildTree::::write(&state_owner_msa_id, &key, &updated_page); + StatefulChildTree::::write( + &state_owner_msa_id, + PALLET_STORAGE_PREFIX, + ITEMIZED_STORAGE_PREFIX, + &key, + &updated_page, + ); Self::deposit_event(Event::ItemizedPageUpdated { msa_id: state_owner_msa_id, schema_id, @@ -662,15 +678,25 @@ impl Pallet { new_page: PaginatedPage, ) -> DispatchResult { let keys: PaginatedKey = (schema_id, page_id); - let existing_page: PaginatedPage = - StatefulChildTree::::try_read(&state_owner_msa_id, &keys) - .map_err(|_| Error::::CorruptedState)? - .unwrap_or_default(); + let existing_page: PaginatedPage = StatefulChildTree::::try_read( + &state_owner_msa_id, + PALLET_STORAGE_PREFIX, + PAGINATED_STORAGE_PREFIX, + &keys, + ) + .map_err(|_| Error::::CorruptedState)? + .unwrap_or_default(); let prev_content_hash: PageHash = existing_page.get_hash(); ensure!(target_hash == prev_content_hash, Error::::StalePageState); - StatefulChildTree::::write(&state_owner_msa_id, &keys, &new_page); + StatefulChildTree::::write( + &state_owner_msa_id, + PALLET_STORAGE_PREFIX, + PAGINATED_STORAGE_PREFIX, + &keys, + &new_page, + ); Self::deposit_event(Event::PaginatedPageUpdated { msa_id: state_owner_msa_id, schema_id, @@ -689,15 +715,23 @@ impl Pallet { target_hash: PageHash, ) -> DispatchResult { let keys: PaginatedKey = (schema_id, page_id); - if let Some(existing_page) = StatefulChildTree::::try_read::< - _, - PaginatedPage, - >(&state_owner_msa_id, &keys) - .map_err(|_| Error::::CorruptedState)? + if let Some(existing_page) = + StatefulChildTree::::try_read::<_, PaginatedPage>( + &state_owner_msa_id, + PALLET_STORAGE_PREFIX, + PAGINATED_STORAGE_PREFIX, + &keys, + ) + .map_err(|_| Error::::CorruptedState)? { let prev_content_hash: PageHash = existing_page.get_hash(); ensure!(target_hash == prev_content_hash, Error::::StalePageState); - StatefulChildTree::::kill(&state_owner_msa_id, &keys); + StatefulChildTree::::kill( + &state_owner_msa_id, + PALLET_STORAGE_PREFIX, + PAGINATED_STORAGE_PREFIX, + &keys, + ); Self::deposit_event(Event::PaginatedPageDeleted { msa_id: state_owner_msa_id, schema_id, @@ -715,8 +749,13 @@ impl Pallet { schema_id: SchemaId, ) -> Option> { let key: ItemizedKey = (schema_id,); - StatefulChildTree::::try_read::<_, ItemizedPage>(&msa_id, &key) - .unwrap_or(None) + StatefulChildTree::::try_read::<_, ItemizedPage>( + &msa_id, + PALLET_STORAGE_PREFIX, + ITEMIZED_STORAGE_PREFIX, + &key, + ) + .unwrap_or(None) } #[cfg(feature = "runtime-benchmarks")] @@ -726,7 +765,12 @@ impl Pallet { page_id: PageId, ) -> Option> { let key: PaginatedKey = (schema_id, page_id); - StatefulChildTree::::try_read::<_, PaginatedPage>(&msa_id, &key) - .unwrap_or(None) + StatefulChildTree::::try_read::<_, PaginatedPage>( + &msa_id, + PALLET_STORAGE_PREFIX, + PAGINATED_STORAGE_PREFIX, + &key, + ) + .unwrap_or(None) } } diff --git a/pallets/stateful-storage/src/stateful_child_tree.rs b/pallets/stateful-storage/src/stateful_child_tree.rs index 940bef23d6..994d17d424 100644 --- a/pallets/stateful-storage/src/stateful_child_tree.rs +++ b/pallets/stateful-storage/src/stateful_child_tree.rs @@ -7,6 +7,7 @@ use frame_support::{ Blake2_128, Blake2_256, Hashable, StorageHasher, Twox128, Twox256, }; use sp_core::{ConstU8, Get}; +use sp_io::hashing::twox_64; use sp_std::{fmt::Debug, prelude::*}; pub trait MultipartKeyStorageHasher: StorageHasher { @@ -303,9 +304,11 @@ impl StatefulChildTree { /// data doesn't store under the given `key` `None` is returned. pub fn try_read, V: Decode + Sized>( msa_id: &MessageSourceId, + pallet_name: &[u8], + storage_name: &[u8], keys: &K, ) -> Result, ()> { - let child = Self::get_child_tree(*msa_id); + let child = Self::get_child_tree_for_storage(*msa_id, pallet_name, storage_name); let value = child::get_raw(&child, &keys.hash()); match value { None => Ok(None), @@ -323,9 +326,11 @@ impl StatefulChildTree { PrefixKey: IsTuplePrefix, >( msa_id: &MessageSourceId, + pallet_name: &[u8], + storage_name: &[u8], prefix_keys: &PrefixKey, ) -> Box> { - let child = Self::get_child_tree(*msa_id); + let child = Self::get_child_tree_for_storage(*msa_id, pallet_name, storage_name); let result = ChildTriePrefixIterator::<(Vec, V)>::with_prefix( &child, &prefix_keys.hash_prefix_only(), @@ -345,22 +350,41 @@ impl StatefulChildTree { /// Writes directly into child tree node pub fn write, V: Encode + Sized>( msa_id: &MessageSourceId, + pallet_name: &[u8], + storage_name: &[u8], keys: &K, new_value: V, ) { - let child_trie_info = &Self::get_child_tree(*msa_id); + let child_trie_info = &Self::get_child_tree_for_storage(*msa_id, pallet_name, storage_name); child::put_raw(child_trie_info, &keys.hash(), new_value.encode().as_ref()); } /// Kills a child tree node - pub fn kill>(msa_id: &MessageSourceId, keys: &K) { - let child_trie_info = &Self::get_child_tree(*msa_id); + pub fn kill>( + msa_id: &MessageSourceId, + pallet_name: &[u8], + storage_name: &[u8], + keys: &K, + ) { + let child_trie_info = &Self::get_child_tree_for_storage(*msa_id, pallet_name, storage_name); child::kill(child_trie_info, &keys.hash()); } - fn get_child_tree(msa_id: MessageSourceId) -> ChildInfo { + /// These hashes should be consistent across the chain so we are hardcoding them + fn get_child_tree_for_storage( + msa_id: MessageSourceId, + pallet_name: &[u8], + storage_name: &[u8], + ) -> ChildInfo { let trie_root = Self::get_tree_prefix(msa_id); - child::ChildInfo::new_default(H::hash(&trie_root[..]).as_ref()) + // child tree root should be hashed by Twox128 to avoid probability of conflict + let hashed_keys: Vec = [ + Twox128::hash(&trie_root[..]).as_ref(), + twox_64(pallet_name).as_ref(), + twox_64(storage_name).as_ref(), + ] + .concat(); + child::ChildInfo::new_default(&hashed_keys) } fn get_tree_prefix(msa_id: MessageSourceId) -> Vec { diff --git a/pallets/stateful-storage/src/tests.rs b/pallets/stateful-storage/src/tests.rs index 65f1886166..038afcf5cb 100644 --- a/pallets/stateful-storage/src/tests.rs +++ b/pallets/stateful-storage/src/tests.rs @@ -212,7 +212,13 @@ fn upsert_existing_page_with_bad_state_hash_errors() { let payload = generate_payload_bytes::(Some(100)); let key = (schema_id, page_id); - ::write(&msa_id, &key, &payload); + ::write( + &msa_id, + PALLET_STORAGE_PREFIX, + PAGINATED_STORAGE_PREFIX, + &key, + &payload, + ); assert_err!( StatefulStoragePallet::upsert_page( @@ -249,7 +255,13 @@ fn upsert_new_page_succeeds() { )); let keys = (schema_id, page_id); - let new_page = ::try_read(&msa_id, &keys).unwrap(); + let new_page = ::try_read( + &msa_id, + PALLET_STORAGE_PREFIX, + PAGINATED_STORAGE_PREFIX, + &keys, + ) + .unwrap(); assert_eq!(new_page.is_some(), true, "new page is empty"); assert_eq!(page, new_page.unwrap(), "new page contents incorrect"); }) @@ -268,9 +280,21 @@ fn upsert_existing_page_modifies_page() { let old_page: PaginatedPage = old_content.clone().into(); let keys = (schema_id, page_id); - ::write(&msa_id, &keys, old_page); - let old_page: PaginatedPage = - ::try_read(&msa_id, &keys).unwrap().unwrap(); + ::write( + &msa_id, + PALLET_STORAGE_PREFIX, + PAGINATED_STORAGE_PREFIX, + &keys, + old_page, + ); + let old_page: PaginatedPage = ::try_read( + &msa_id, + PALLET_STORAGE_PREFIX, + PAGINATED_STORAGE_PREFIX, + &keys, + ) + .unwrap() + .unwrap(); assert_eq!(old_content, old_page.data); assert_ok!(StatefulStoragePallet::upsert_page( @@ -282,8 +306,14 @@ fn upsert_existing_page_modifies_page() { new_content.clone().into() )); - let new_page: PaginatedPage = - ::try_read(&msa_id, &keys).unwrap().unwrap(); + let new_page: PaginatedPage = ::try_read( + &msa_id, + PALLET_STORAGE_PREFIX, + PAGINATED_STORAGE_PREFIX, + &keys, + ) + .unwrap() + .unwrap(); assert_eq!(new_content, new_page.data); }) } @@ -429,7 +459,13 @@ fn delete_existing_page_with_bad_hash_errors() { let page: PaginatedPage = payload.into(); let keys = (schema_id, page_id); - ::write::<_, Vec>(&msa_id, &keys, page.data.into()); + ::write::<_, Vec>( + &msa_id, + PALLET_STORAGE_PREFIX, + PAGINATED_STORAGE_PREFIX, + &keys, + page.data.into(), + ); assert_err!( StatefulStoragePallet::delete_page( @@ -474,8 +510,13 @@ fn delete_existing_page_succeeds() { )); let keys = (schema_id, page_id); - let page: Option> = - ::try_read(&msa_id, &keys).unwrap(); + let page: Option> = ::try_read( + &msa_id, + PALLET_STORAGE_PREFIX, + PAGINATED_STORAGE_PREFIX, + &keys, + ) + .unwrap(); assert_eq!(page, None); }) } @@ -618,6 +659,8 @@ fn is_empty_true_for_empty_page() { fn child_tree_write_read() { new_test_ext().execute_with(|| { // arrange + let pallet_name: &[u8] = b"test-pallet"; + let storage_name_1: &[u8] = b"storage1"; let msa_id = 1; let schema_id: SchemaId = 2; let page_id: u8 = 3; @@ -629,10 +672,11 @@ fn child_tree_write_read() { }; // act - ::write(&msa_id, keys, &val); + ::write(&msa_id, pallet_name, storage_name_1, keys, &val); // assert - let read = ::try_read(&msa_id, keys).unwrap(); + let read = + ::try_read(&msa_id, pallet_name, storage_name_1, keys).unwrap(); assert_eq!(Some(val), read); }); } @@ -646,6 +690,9 @@ fn child_tree_iterator() { // arrange let msa_id = 1; let mut arr: Vec<(TestKey, TestKey)> = Vec::new(); + let pallet_name: &[u8] = b"test-pallet"; + let storage_name_1: &[u8] = b"storage1"; + let storage_name_2: &[u8] = b"storage2"; let prefix_1 = TestKeyString::try_from(b"part_1".to_vec()).unwrap(); let prefix_2a = TestKeyString::try_from(b"part_2a".to_vec()).unwrap(); let prefix_2b = TestKeyString::try_from(b"part_2b".to_vec()).unwrap(); @@ -661,11 +708,16 @@ fn child_tree_iterator() { ); let s = k.clone(); arr.push((k.clone(), s.clone())); - ::write(&msa_id, &k, s); + ::write(&msa_id, pallet_name, storage_name_1, &k, s); } // Try empty prefix - let all_nodes = ::prefix_iterator::(&msa_id, &()); + let all_nodes = ::prefix_iterator::( + &msa_id, + pallet_name, + storage_name_1, + &(), + ); let r: BTreeSet = all_nodes.map(|(_k, s)| s.2).collect::>(); // Should return all items @@ -679,6 +731,8 @@ fn child_tree_iterator() { let prefix_key = (prefix_1.clone(),); let mut nodes = ::prefix_iterator::( &msa_id, + pallet_name, + storage_name_1, &prefix_key.clone(), ); let r0: BTreeSet = nodes.by_ref().map(|(_k, v)| v.2).collect(); @@ -695,8 +749,12 @@ fn child_tree_iterator() { // Try 2-level prefix let prefix_key = (prefix_1.clone(), prefix_2a.clone()); - let nodes2 = - ::prefix_iterator::(&msa_id, &prefix_key); + let nodes2 = ::prefix_iterator::( + &msa_id, + pallet_name, + storage_name_1, + &prefix_key, + ); let r1: BTreeSet = nodes2.map(|(_, v)| v.2).collect(); // Should return only even-numbered items @@ -705,6 +763,18 @@ fn child_tree_iterator() { arr.iter().filter(|(k, _s)| k.2 % 2 == 0).map(|(k, _s)| k.2).collect(), "iterator over second-level key should have returned only even-numbered items" ); + + // Try on another storage + let nodes3 = ::prefix_iterator::( + &msa_id, + pallet_name, + storage_name_2, + &prefix_key, + ); + let r3: BTreeSet = nodes3.map(|(_, v)| v.2).collect(); + + // Should return empty + assert_eq!(r3.len(), 0, "iterator over another storage shoudl return empty items"); }); } @@ -840,12 +910,21 @@ fn apply_item_actions_with_corrupted_state_should_fail() { let actions1 = vec![ItemAction::Add { data: payload.clone() }]; let key = (schema_id,); StatefulChildTree::<::KeyHasher>::write::<_, Vec>( - &msa_id, &key, payload, + &msa_id, + PALLET_STORAGE_PREFIX, + ITEMIZED_STORAGE_PREFIX, + &key, + payload, ); let previous_page: ItemizedPage = - StatefulChildTree::<::KeyHasher>::try_read(&msa_id, &key) - .unwrap() - .unwrap(); + StatefulChildTree::<::KeyHasher>::try_read( + &msa_id, + PALLET_STORAGE_PREFIX, + ITEMIZED_STORAGE_PREFIX, + &key, + ) + .unwrap() + .unwrap(); let previous_hash = previous_page.get_hash(); // act @@ -900,7 +979,13 @@ fn apply_item_actions_existing_page_with_stale_hash_should_fail() { let page_hash = page.get_hash(); let page = page.apply_item_actions(&actions1).unwrap(); let key = (schema_id,); - ::write::<_, Vec>(&msa_id, &key, page.data.into()); + ::write::<_, Vec>( + &msa_id, + PALLET_STORAGE_PREFIX, + ITEMIZED_STORAGE_PREFIX, + &key, + page.data.into(), + ); // act assert_err!( @@ -938,8 +1023,13 @@ fn apply_item_actions_initial_state_with_valid_input_should_update_storage() { // assert let updated_page: Option> = - StatefulChildTree::<::KeyHasher>::try_read(&msa_id, &(schema_id,)) - .unwrap(); + StatefulChildTree::<::KeyHasher>::try_read( + &msa_id, + PALLET_STORAGE_PREFIX, + ITEMIZED_STORAGE_PREFIX, + &(schema_id,), + ) + .unwrap(); assert!(updated_page.is_some()); let curr_content_hash = updated_page.unwrap().get_hash(); System::assert_last_event( @@ -969,7 +1059,13 @@ fn apply_item_actions_existing_page_with_valid_input_should_update_storage() { let key = (schema_id,); // act - ::write::<_, Vec>(&msa_id, &key, page.data.into()); + ::write::<_, Vec>( + &msa_id, + PALLET_STORAGE_PREFIX, + ITEMIZED_STORAGE_PREFIX, + &key, + page.data.into(), + ); assert_ok!(StatefulStoragePallet::apply_item_actions( RuntimeOrigin::signed(caller_1), msa_id, @@ -980,8 +1076,13 @@ fn apply_item_actions_existing_page_with_valid_input_should_update_storage() { // assert let updated_page: Option> = - StatefulChildTree::<::KeyHasher>::try_read(&msa_id, &(schema_id,)) - .unwrap(); + StatefulChildTree::<::KeyHasher>::try_read( + &msa_id, + PALLET_STORAGE_PREFIX, + ITEMIZED_STORAGE_PREFIX, + &(schema_id,), + ) + .unwrap(); assert!(updated_page.is_some()); let curr_content_hash = updated_page.unwrap().get_hash(); System::assert_last_event( @@ -1016,7 +1117,13 @@ fn apply_item_actions_with_valid_input_and_empty_items_should_remove_storage() { )); let items1: Option> = - StatefulChildTree::<::KeyHasher>::try_read(&msa_id, &keys).unwrap(); + StatefulChildTree::<::KeyHasher>::try_read( + &msa_id, + PALLET_STORAGE_PREFIX, + ITEMIZED_STORAGE_PREFIX, + &keys, + ) + .unwrap(); assert!(items1.is_some()); let content_hash = items1.unwrap().get_hash(); @@ -1031,8 +1138,13 @@ fn apply_item_actions_with_valid_input_and_empty_items_should_remove_storage() { // assert let items2: Option> = - StatefulChildTree::<::KeyHasher>::try_read(&msa_id, &(schema_id,)) - .unwrap(); + StatefulChildTree::<::KeyHasher>::try_read( + &msa_id, + PALLET_STORAGE_PREFIX, + ITEMIZED_STORAGE_PREFIX, + &(schema_id,), + ) + .unwrap(); assert!(items2.is_none()); System::assert_last_event( StatefulEvent::ItemizedPageDeleted { @@ -1213,8 +1325,13 @@ fn apply_item_actions_with_signature_having_correct_input_should_work() { // assert let updated_page: Option> = - StatefulChildTree::<::KeyHasher>::try_read(&msa_id, &(schema_id,)) - .unwrap(); + StatefulChildTree::<::KeyHasher>::try_read( + &msa_id, + PALLET_STORAGE_PREFIX, + ITEMIZED_STORAGE_PREFIX, + &(schema_id,), + ) + .unwrap(); assert!(updated_page.is_some()); let curr_content_hash = updated_page.unwrap().get_hash(); System::assert_last_event( @@ -1377,7 +1494,13 @@ fn apply_item_actions_with_signature_having_page_with_stale_hash_should_fail() { let page_hash = page.get_hash(); let page = page.apply_item_actions(&actions).unwrap(); let key = (schema_id,); - ::write::<_, Vec>(&msa_id, &key, page.data.into()); + ::write::<_, Vec>( + &msa_id, + PALLET_STORAGE_PREFIX, + ITEMIZED_STORAGE_PREFIX, + &key, + page.data.into(), + ); let payload = ItemizedSignaturePayload { actions: BoundedVec::try_from(actions).unwrap(), target_hash: page_hash, @@ -1422,7 +1545,13 @@ fn apply_item_actions_with_signature_having_valid_input_and_empty_items_should_r )); let items1: Option> = - StatefulChildTree::<::KeyHasher>::try_read(&msa_id, &keys).unwrap(); + StatefulChildTree::<::KeyHasher>::try_read( + &msa_id, + PALLET_STORAGE_PREFIX, + ITEMIZED_STORAGE_PREFIX, + &keys, + ) + .unwrap(); assert!(items1.is_some()); let content_hash = items1.unwrap().get_hash(); @@ -1446,8 +1575,13 @@ fn apply_item_actions_with_signature_having_valid_input_and_empty_items_should_r // assert let items2: Option> = - StatefulChildTree::<::KeyHasher>::try_read(&msa_id, &(schema_id,)) - .unwrap(); + StatefulChildTree::<::KeyHasher>::try_read( + &msa_id, + PALLET_STORAGE_PREFIX, + ITEMIZED_STORAGE_PREFIX, + &(schema_id,), + ) + .unwrap(); assert!(items2.is_none()); System::assert_last_event( StatefulEvent::ItemizedPageDeleted { @@ -1472,12 +1606,21 @@ fn apply_item_actions_with_signature_having_corrupted_state_should_fail() { let actions = vec![ItemAction::Add { data: payload.clone() }]; let key = (schema_id,); StatefulChildTree::<::KeyHasher>::write::<_, Vec>( - &msa_id, &key, payload, + &msa_id, + PALLET_STORAGE_PREFIX, + ITEMIZED_STORAGE_PREFIX, + &key, + payload, ); let previous_page: ItemizedPage = - StatefulChildTree::<::KeyHasher>::try_read(&msa_id, &key) - .unwrap() - .unwrap(); + StatefulChildTree::<::KeyHasher>::try_read( + &msa_id, + PALLET_STORAGE_PREFIX, + ITEMIZED_STORAGE_PREFIX, + &key, + ) + .unwrap() + .unwrap(); let previous_hash = previous_page.get_hash(); let payload = ItemizedSignaturePayload { @@ -1846,7 +1989,13 @@ fn upsert_page_with_signature_having_valid_inputs_should_work() { // assert let keys = (schema_id, page_id); - let new_page = ::try_read(&msa_id, &keys).unwrap(); + let new_page = ::try_read( + &msa_id, + PALLET_STORAGE_PREFIX, + PAGINATED_STORAGE_PREFIX, + &keys, + ) + .unwrap(); assert_eq!(new_page.is_some(), true, "new page is empty"); assert_eq!(page, new_page.unwrap(), "new page contents incorrect"); System::assert_last_event( @@ -2236,10 +2385,14 @@ fn delete_page_with_signature_having_valid_inputs_should_remove_page() { )); // assert - let removed_page: Option> = StatefulChildTree::< - ::KeyHasher, - >::try_read(&msa_id, &(schema_id, page_id)) - .unwrap(); + let removed_page: Option> = + StatefulChildTree::<::KeyHasher>::try_read( + &msa_id, + PALLET_STORAGE_PREFIX, + PAGINATED_STORAGE_PREFIX, + &(schema_id, page_id), + ) + .unwrap(); assert!(removed_page.is_none()); System::assert_last_event( StatefulEvent::PaginatedPageDeleted { diff --git a/pallets/stateful-storage/src/types.rs b/pallets/stateful-storage/src/types.rs index 3ae2a73751..bf8e3e7e72 100644 --- a/pallets/stateful-storage/src/types.rs +++ b/pallets/stateful-storage/src/types.rs @@ -17,6 +17,13 @@ use sp_std::{ }; use twox_hash::XxHash32; +/// pallet storage prefix +pub const PALLET_STORAGE_PREFIX: &[u8] = b"stateful-storage"; +/// itemized storage prefix +pub const ITEMIZED_STORAGE_PREFIX: &[u8] = b"itemized"; +/// paginated storage prefix +pub const PAGINATED_STORAGE_PREFIX: &[u8] = b"paginated"; + /// MultipartKey type for Itemized storage pub type ItemizedKey = (SchemaId,); /// MultipartKey type for Paginated storage (full key) From 8254e9f570d32d7e22a71fb88cf55b3f1df548d8 Mon Sep 17 00:00:00 2001 From: Aramik Date: Wed, 1 Mar 2023 10:36:20 -0800 Subject: [PATCH 4/4] Private graph resync (#1157) # Goal The goal of this PR is to apply changes to private-graph-main from main Related to #1153 --------- Signed-off-by: dependabot[bot] Co-authored-by: Joe Caputo Co-authored-by: Wil Wade Co-authored-by: Robert La Ferla Co-authored-by: Jenkins Co-authored-by: omahs <73983677+omahs@users.noreply.github.com> Co-authored-by: Dmitri <4452412+demisx@users.noreply.github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: John Mela Co-authored-by: Frequency CI Co-authored-by: shannonwells --- .github/issues/dependabot-alert.template.md | 8 + .github/workflows/check-polkadot-releases.yml | 43 + .../reset-self-hosted-runner/action.yml | 22 +- .../create-issue-dependabot-alert-pr.yml | 36 + .github/workflows/merge-pr.yml | 17 +- .github/workflows/release.yml | 70 +- .github/workflows/verify-pr-commit.yml | 145 +- .prettierignore | 1 + Cargo.lock | 28 + common/primitives/Cargo.toml | 3 +- common/primitives/src/lib.rs | 2 + common/primitives/src/messages.rs | 7 +- common/primitives/src/node.rs | 24 + common/primitives/src/rpc.rs | 94 + common/primitives/src/utils.rs | 33 + docker/instant-seal-node.dockerfile | 7 +- docker/instant-seal-node.overview.md | 56 +- .../messages/addIPFSMessage.test.ts | 6 +- integration-tests/package-lock.json | 3559 +++++++++++------ .../scenarios/grantDelegation.test.ts | 10 - js/api-augment/definitions/frequency.ts | 36 + js/api-augment/definitions/index.ts | 1 + js/api-augment/test/index.test.ts | 8 +- node/service/Cargo.toml | 13 + node/service/src/rpc/frequency_rpc.rs | 53 + node/service/src/{rpc.rs => rpc/mod.rs} | 12 +- node/service/src/rpc/tests/mod.rs | 55 + node/service/src/rpc/tests/rpc_mock.rs | 64 + pallets/msa/Cargo.toml | 4 +- pallets/msa/src/audit_replay_tests.rs | 71 +- pallets/msa/src/benchmarking.rs | 26 +- pallets/msa/src/lib.rs | 196 +- pallets/msa/src/mock.rs | 89 +- pallets/msa/src/signature_registry_tests.rs | 73 +- pallets/msa/src/tests.rs | 256 ++ pallets/msa/src/weights.rs | 144 +- pallets/schemas/Cargo.toml | 3 +- pallets/schemas/src/benchmarking.rs | 31 +- pallets/schemas/src/lib.rs | 118 +- pallets/schemas/src/mock.rs | 78 +- pallets/schemas/src/tests.rs | 202 +- pallets/schemas/src/weights.rs | 64 +- pallets/stateful-storage/src/tests.rs | 8 +- runtime/common/Cargo.toml | 3 + runtime/common/src/weights/mod.rs | 1 + runtime/common/src/weights/pallet_multisig.rs | 108 + runtime/frequency/Cargo.toml | 11 +- runtime/frequency/src/lib.rs | 289 +- runtime/system-runtime-api/Cargo.toml | 36 + runtime/system-runtime-api/src/lib.rs | 38 + scripts/run_all_benchmarks.sh | 2 +- 51 files changed, 4766 insertions(+), 1498 deletions(-) create mode 100644 .github/issues/dependabot-alert.template.md create mode 100644 .github/workflows/check-polkadot-releases.yml create mode 100644 .github/workflows/create-issue-dependabot-alert-pr.yml create mode 100644 common/primitives/src/rpc.rs create mode 100644 js/api-augment/definitions/frequency.ts create mode 100644 node/service/src/rpc/frequency_rpc.rs rename node/service/src/{rpc.rs => rpc/mod.rs} (89%) create mode 100644 node/service/src/rpc/tests/mod.rs create mode 100644 node/service/src/rpc/tests/rpc_mock.rs create mode 100644 runtime/common/src/weights/pallet_multisig.rs create mode 100644 runtime/system-runtime-api/Cargo.toml create mode 100644 runtime/system-runtime-api/src/lib.rs diff --git a/.github/issues/dependabot-alert.template.md b/.github/issues/dependabot-alert.template.md new file mode 100644 index 0000000000..b160602c1e --- /dev/null +++ b/.github/issues/dependabot-alert.template.md @@ -0,0 +1,8 @@ +--- +title: "{{env.PR_TITLE}}" +labels: technical debt, dependencies, security +assignees: demisx, wilwade +--- + +The dependabot alert has detected that this repository uses a vulnerable dependency or malware and created new PR {{env.PR_URL}}. + diff --git a/.github/workflows/check-polkadot-releases.yml b/.github/workflows/check-polkadot-releases.yml new file mode 100644 index 0000000000..ee45c22178 --- /dev/null +++ b/.github/workflows/check-polkadot-releases.yml @@ -0,0 +1,43 @@ +name: Check Polkadot Releases +on: + schedule: + - cron: "0 0 * * *" # midnight (UTC) +env: + REPO_URL: https://api.github.com/repos/paritytech/polkadot + TRACKING_GIT_BRANCH: ci/latest-polkadot-full-release + RELEASE_TRACK_FILENAME: .github/.latest-polkadot-full-release.txt +jobs: + record-polkadot-latest-release-version: + runs-on: ubuntu-20.04 + steps: + - name: Timestamp + run: date + - name: Check Out Repo + uses: actions/checkout@v3 + with: + ref: ${{env.TRACKING_GIT_BRANCH}} + token: ${{secrets.GHA_RECORD_POLKADOT_RELEASE}} + - name: Print Recorded Latest Polkadot Release + run: | + echo "Recorded Polkadot Latest Full Release:" + echo "--------------------------------------" + cat ${{env.RELEASE_TRACK_FILENAME}} + - name: Fetch Latest Release Version + run: | + curl -sL $REPO_URL/releases/latest | \ + jq -r ".tag_name" > ${{env.RELEASE_TRACK_FILENAME}} + echo "Fetched Polkadot Latest Full Release:" + echo "-------------------------------------" + cat ${{env.RELEASE_TRACK_FILENAME}} + - name: Check for Modified Files + id: git-check + run: | + modified=$([ -z "`git status --porcelain`" ] && echo "false" || echo "true") + echo "repo_modified=$modified" >> $GITHUB_OUTPUT + - name: Commit Latest Release Version + if: steps.git-check.outputs.repo_modified == 'true' + run: | + git config --global user.name 'Frequency CI' + git config --global user.email 'do-not-reply@users.noreply.github.com' + git commit -am "Record new Polkadot release version" + git push origin diff --git a/.github/workflows/common/reset-self-hosted-runner/action.yml b/.github/workflows/common/reset-self-hosted-runner/action.yml index e485fda57c..e77a05b87d 100644 --- a/.github/workflows/common/reset-self-hosted-runner/action.yml +++ b/.github/workflows/common/reset-self-hosted-runner/action.yml @@ -3,11 +3,22 @@ description: Shared action that allows to reset a runner to its original state runs: using: "composite" steps: + - name: Remove /home/runner + shell: bash + run: | + whoami + echo "***> BEFORE removal of /home/runner dir:" + ls -la /home + echo "Removing no longer used /home/runner dir..." + rm -fr /home/runner + echo "***> After removal of /home/runner dir:" + ls -la /home - name: Remove Cargo Generated Artifacts shell: bash run: | echo "Removing generated cargo artifacts..." rm -fr ./target + rm -rf ./runtime/frequency/target - name: Remove NPM node Modules shell: bash run: | @@ -15,5 +26,12 @@ runs: - name: Prune docker Resources shell: bash run: | - docker system prune -a --volumes - docker image prune -a -f --filter "until=720h" + if [ "$(which docker)" ] && [ "$(docker --version)" ]; then + echo "Docker is found. Cleaning..." + docker system prune -a --volumes + docker image prune -a -f --filter "until=720h" + echo "Finished cleaning docker resources." + else + echo "Docker's not found. Exiting..." + exit 0 + fi diff --git a/.github/workflows/create-issue-dependabot-alert-pr.yml b/.github/workflows/create-issue-dependabot-alert-pr.yml new file mode 100644 index 0000000000..681713d11f --- /dev/null +++ b/.github/workflows/create-issue-dependabot-alert-pr.yml @@ -0,0 +1,36 @@ +name: Create Issue for Dependabot Alert PR +on: + workflow_dispatch: + pull_request: + branches: + - main + types: [opened, reopened] + paths: + - .github/workflows +jobs: + create-issue: + runs-on: ubuntu-20.04 + env: + GITHUB_TOKEN: ${{secrets.GITHUB_TOKEN}} + PR_TITLE: ${{github.event.pull_request.title}} + PR_NUMBER: ${{github.event.pull_request.number}} + PR_URL: ${{github.event.pull_request.url}} + steps: + - name: Check Out Repo + if: github.event.pull_request.user.login == 'dependabot[bot]' + uses: actions/checkout@v3 + - name: Create GitHub Issue + if: github.event.pull_request.user.login == 'dependabot[bot]' + id: create-issue + uses: JasonEtco/create-an-issue@e27dddc79c92bc6e4562f268fffa5ed752639abd + with: + filename: .github/issues/dependabot-alert.template.md + - name: Link PR to New Issue + if: github.event.pull_request.user.login == 'dependabot[bot]' + env: + PR_BODY_FILENAME: /tmp/current-pr-body-${{github.run_id}}.txt + run: | + gh pr view ${{env.PR_URL}} --json body --jq '.body' > ${{env.PR_BODY_FILENAME}} + echo -e "\n\nResolves: #${{steps.create-issue.outputs.number}}" >> ${{env.PR_BODY_FILENAME}} + gh pr edit ${{env.PR_URL}} --body-file ${{env.PR_BODY_FILENAME}} + rm ${{env.PR_BODY_FILENAME}} diff --git a/.github/workflows/merge-pr.yml b/.github/workflows/merge-pr.yml index b15efe95b2..16e8c81246 100644 --- a/.github/workflows/merge-pr.yml +++ b/.github/workflows/merge-pr.yml @@ -13,26 +13,23 @@ on: - "**/Cargo.lock" env: BUILD_PROFILE: release - RUST_TOOLCHAIN: nightly-2022-09-22 jobs: publish-js-api-augment-rc: name: Merge - Publish JS API Augment Release Candidate env: HOME: /root - runs-on: [self-hosted, Linux, X64] + runs-on: [self-hosted, Linux, X64, build] steps: - name: Check Out Repo uses: actions/checkout@v3 - name: Reset Runner uses: ./.github/workflows/common/reset-self-hosted-runner - name: Install Rust Toolchain - uses: actions-rs/toolchain@16499b5e05bf2e26879000db0c1d13f7e13fa3af + uses: dtolnay/rust-toolchain@e12eda571dc9a5ee5d58eecf4738ec291c66f295 with: - toolchain: ${{env.RUST_TOOLCHAIN}} - default: true - profile: minimal - target: wasm32-unknown-unknown + targets: wasm32-unknown-unknown + toolchain: stable - name: Check Out Repo uses: actions/checkout@v3 - name: Output Metadata @@ -75,11 +72,9 @@ jobs: sudo apt-get update sudo apt install -y protobuf-compiler - name: Install Rust Toolchain - uses: actions-rs/toolchain@16499b5e05bf2e26879000db0c1d13f7e13fa3af + uses: dtolnay/rust-toolchain@e12eda571dc9a5ee5d58eecf4738ec291c66f295 with: - default: true - profile: minimal - target: wasm32-unknown-unknown + targets: wasm32-unknown-unknown toolchain: stable - name: Run cargo-tarpaulin uses: actions-rs/tarpaulin@044a1e5bdace8dd2f727b1af63c1d9a1d3572068 diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 813010da17..125f35f0d0 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -9,7 +9,6 @@ on: - "v[0-9]+.[0-9]+.[0-9]+-rc[0-9]+" # ex. v1.1.0-rc1 - "vX.X.X" # used for testing only env: - RUST_TOOLCHAIN: nightly-2022-09-22 # Update this when updating the Rust toolchain NEW_RELEASE_VERSION: ${{github.ref_name}} NEW_RELEASE_TAG: ${{github.ref_name}} jobs: @@ -18,9 +17,10 @@ jobs: env: HOME: /root strategy: + fail-fast: true matrix: - # os: [[self-hosted, Linux, X64], [self-hosted, Linux, ARM64]] - os: [[self-hosted, Linux, X64]] + # os: [[self-hosted, Linux, X64, build], [self-hosted, Linux, ARM64, build]] + os: [[self-hosted, Linux, X64, build]] network: [local, rococo, mainnet] include: - network: local @@ -35,7 +35,7 @@ jobs: spec: frequency build-profile: production release-file-name-prefix: frequency - - os: [self-hosted, Linux, X64] + - os: [self-hosted, Linux, X64, build] arch: amd64 # - os: [self-hosted, Linux, ARM64] # arch: arm64 @@ -59,12 +59,10 @@ jobs: # key: binaries-${{runner.os}}-${{matrix.network}}-${{matrix.arch}}-${{env.NEW_RELEASE_VERSION}} - name: Install Rust Toolchain if: steps.cache-binary.outputs.cache-hit != 'true' - uses: actions-rs/toolchain@16499b5e05bf2e26879000db0c1d13f7e13fa3af + uses: dtolnay/rust-toolchain@e12eda571dc9a5ee5d58eecf4738ec291c66f295 with: + targets: wasm32-unknown-unknown toolchain: stable - default: true - profile: minimal - target: wasm32-unknown-unknown - name: Compile for ${{matrix.network}} if: steps.cache-binary.outputs.cache-hit != 'true' run: | @@ -115,6 +113,7 @@ jobs: env: HOME: /root strategy: + fail-fast: true matrix: network: [rococo, mainnet] include: @@ -134,17 +133,15 @@ jobs: release-wasm-file-name-prefix: frequency_runtime features: frequency wasm-core-version: frequency - runs-on: [self-hosted, Linux, X64] + runs-on: [self-hosted, Linux, X64, build] steps: - name: Check Out Repo uses: actions/checkout@v3 - name: Reset Runner uses: ./.github/workflows/common/reset-self-hosted-runner - name: Install Rust Toolchain - uses: actions-rs/toolchain@16499b5e05bf2e26879000db0c1d13f7e13fa3af + uses: dtolnay/rust-toolchain@e12eda571dc9a5ee5d58eecf4738ec291c66f295 with: - default: true - profile: minimal toolchain: stable - name: Extract Runtime Spec Version run: | @@ -159,7 +156,6 @@ jobs: - name: Set Env Vars id: set-env-vars run: | - set -x echo "WASM_DIR=${{matrix.runtime-dir}}/target/srtool/${{matrix.build-profile}}/wbuild/${{matrix.package}}" >> $GITHUB_ENV echo "BUILT_WASM_FILENAME=${{matrix.built-wasm-file-name-prefix}}.compact.compressed.wasm" >> $GITHUB_ENV release_wasm_filename=${{matrix.release-wasm-file-name-prefix}}-v${{env.RUNTIME_SPEC_VERSION}}.${{env.NEW_RELEASE_VERSION}}.compact.compressed.wasm @@ -210,7 +206,7 @@ jobs: build-rust-developer-docs: name: Build Rust Developer Docs - runs-on: [self-hosted, Linux, X64] + runs-on: [self-hosted, Linux, X64, build] env: HOME: /root steps: @@ -218,26 +214,25 @@ jobs: uses: actions/checkout@v3 - name: Reset Runner uses: ./.github/workflows/common/reset-self-hosted-runner + - name: Setup Pages + uses: actions/configure-pages@v3 - name: Install Required Packages run: | sudo apt-get update sudo apt install -y protobuf-compiler - name: Install Rust Toolchain - uses: actions-rs/toolchain@16499b5e05bf2e26879000db0c1d13f7e13fa3af + if: steps.cache-binary.outputs.cache-hit != 'true' + uses: dtolnay/rust-toolchain@e12eda571dc9a5ee5d58eecf4738ec291c66f295 with: + targets: wasm32-unknown-unknown toolchain: stable - default: true - profile: minimal - target: wasm32-unknown-unknown - name: Build Docs run: | RUSTDOCFLAGS="--enable-index-page -Zunstable-options" cargo doc --no-deps --features frequency - name: Upload Docs - uses: actions/upload-artifact@v3 + uses: actions/upload-pages-artifact@v1 with: - name: rust-developer-docs-${{github.run_id}} path: ./target/doc - if-no-files-found: error build-js-api-augment: needs: build-binaries @@ -296,6 +291,7 @@ jobs: needs: build-binaries name: Test Version Matches Release strategy: + fail-fast: true matrix: os: [ubuntu-20.04] network: [mainnet] @@ -386,7 +382,6 @@ jobs: - name: Set Binary Permissions working-directory: ${{env.BIN_DIR}} run: | - set -x chmod 755 $TEST_BIN_FILENAME chmod 755 $REF_BIN_FILENAME - name: Start Test Node @@ -489,7 +484,6 @@ jobs: fetch-depth: 0 - name: Full Release? run: | - set -x is_full_release=$([[ "$NEW_RELEASE_VERSION" =~ ^v[0-9]+\.[0-9]+\.[0-9]+$ ]] && \ echo 'true' || echo 'false') echo "is_full_release: $is_full_release" @@ -565,7 +559,6 @@ jobs: id: get-runtimes-info working-directory: /tmp run: | - set -x runtime_filename_rococo=${{needs.wait-for-all-builds.outputs.runtime_filename_rococo}} runtime_info_rococo=$(subwasm info $runtime_filename_rococo | sed -Ez '$ s/\n+$//' | tr '\n' '|') echo "runtime_info_rococo=$runtime_info_rococo" >> $GITHUB_OUTPUT @@ -575,7 +568,6 @@ jobs: - name: Generate Release Notes working-directory: tools/ci/release-notes run: | - set -x ./build-release-notes.sh '${{steps.polkadot-version.outputs.version}}' \ '${{steps.sanitize-changelog.outputs.sanitized}}' \ '${{steps.get-runtimes-info.outputs.runtime_info_rococo}}' \ @@ -595,8 +587,6 @@ jobs: if: env.IS_FULL_RELEASE == 'true' uses: softprops/action-gh-release@de2c0eb89ae2a093876385947365aca7b0e5f844 with: - name: "[Release Candidate] ${{env.NEW_RELEASE_TAG}}" - prerelease: true body_path: tools/ci/release-notes/release-notes.md files: | /tmp/frequency*.* @@ -624,6 +614,7 @@ jobs: needs: wait-for-all-builds name: Release ${{matrix.arch}} Node Docker Image for ${{matrix.network}} strategy: + fail-fast: true matrix: arch: [amd64] network: [rococo, mainnet] @@ -692,6 +683,7 @@ jobs: needs: wait-for-all-builds name: Release Dev Docker Image for ${{matrix.node}} strategy: + fail-fast: true matrix: network: [local] arch: [amd64] @@ -752,24 +744,22 @@ jobs: repository: ${{env.DOCKER_HUB_PROFILE}}/${{matrix.node}} readme-filepath: docker/${{matrix.node}}.overview.md + # Published to https://libertydsnp.github.io/frequency/ release-rust-developer-docs: needs: wait-for-all-builds name: Release Rust Developer Docs runs-on: ubuntu-20.04 + permissions: + contents: read + pages: write + id-token: write + environment: + name: github-pages + url: ${{ steps.deployment.outputs.page_url }} steps: - - name: Check Out Repo - uses: actions/checkout@v3 - - name: Download Docs - id: download - uses: actions/download-artifact@v3 - with: - name: rust-developer-docs-${{github.run_id}} - path: ./target/doc - - name: Deploy Frequency docs to gh-pages - uses: JamesIves/github-pages-deploy-action@ba1486788b0490a235422264426c45848eac35c6 - with: - branch: gh-pages - folder: ./target/doc + - name: Deploy to GitHub Pages + id: deployment + uses: actions/deploy-pages@v1 release-js-api-augment: needs: wait-for-all-builds diff --git a/.github/workflows/verify-pr-commit.yml b/.github/workflows/verify-pr-commit.yml index 1a6d206a71..5e828e09a2 100644 --- a/.github/workflows/verify-pr-commit.yml +++ b/.github/workflows/verify-pr-commit.yml @@ -8,7 +8,6 @@ on: - main env: BIN_DIR: target/release - RUST_TOOLCHAIN: nightly-2022-09-22 # Update this when updating the Rust toolchain jobs: changes: name: Determine Changed Files @@ -82,6 +81,7 @@ jobs: if: needs.changes.outputs.build-binary == 'true' name: Build ${{matrix.network}} Binary on ${{matrix.branch_alias}} Branch strategy: + fail-fast: true matrix: network: [rococo, mainnet] include: @@ -99,11 +99,21 @@ jobs: - network: mainnet spec: frequency branch_alias: pr - runs-on: [self-hosted, Linux, X64] + runs-on: [self-hosted, Linux, X64, build] env: HOME: /root NETWORK: mainnet steps: + # https://github.com/LibertyDSNP/frequency/issues/1102 + - name: Debug Leftovers + run: | + set -x + date + whoami + cat /etc/passwd + [ -d ./target ] && sudo ls -latR ./target + [ -d ./runtime/frequency/target ] && sudo ls -latR ./runtime/frequency/target + exit 0 - name: Check Out Repo uses: actions/checkout@v3 with: @@ -127,11 +137,9 @@ jobs: sudo apt install -y protobuf-compiler - name: Install Rust Toolchain if: steps.cache-binary.outputs.cache-hit != 'true' - uses: actions-rs/toolchain@16499b5e05bf2e26879000db0c1d13f7e13fa3af + uses: dtolnay/rust-toolchain@e12eda571dc9a5ee5d58eecf4738ec291c66f295 with: - default: true - profile: minimal - target: wasm32-unknown-unknown + targets: wasm32-unknown-unknown toolchain: stable - name: Compile Binary if: steps.cache-binary.outputs.cache-hit != 'true' @@ -179,10 +187,8 @@ jobs: - name: Check Out Repo uses: actions/checkout@v3 - name: Install Rust Toolchain - uses: actions-rs/toolchain@16499b5e05bf2e26879000db0c1d13f7e13fa3af + uses: dtolnay/rust-toolchain@e12eda571dc9a5ee5d58eecf4738ec291c66f295 with: - default: true - profile: minimal components: rustfmt toolchain: stable - name: Check @@ -194,8 +200,18 @@ jobs: name: Lint Rust Code env: HOME: /root - runs-on: [self-hosted, Linux, X64] + runs-on: [self-hosted, Linux, X64, build] steps: + # https://github.com/LibertyDSNP/frequency/issues/1102 + - name: Debug Leftovers + run: | + set -x + date + whoami + cat /etc/passwd + [ -d ./target ] && sudo ls -latR ./target + [ -d ./runtime/frequency/target ] && sudo ls -latR ./runtime/frequency/target + exit 0 - name: Check Out Repo uses: actions/checkout@v3 - name: Reset Runner @@ -205,10 +221,8 @@ jobs: sudo apt-get update sudo apt install -y protobuf-compiler - name: Install Rust Toolchain - uses: actions-rs/toolchain@16499b5e05bf2e26879000db0c1d13f7e13fa3af + uses: dtolnay/rust-toolchain@e12eda571dc9a5ee5d58eecf4738ec291c66f295 with: - default: true - profile: minimal components: clippy toolchain: stable - name: Lint @@ -224,8 +238,18 @@ jobs: name: Verify Rust Developer Docs env: HOME: /root - runs-on: [self-hosted, Linux, X64] + runs-on: [self-hosted, Linux, X64, build] steps: + # https://github.com/LibertyDSNP/frequency/issues/1102 + - name: Debug Leftovers + run: | + set -x + date + whoami + cat /etc/passwd + [ -d ./target ] && sudo ls -latR ./target + [ -d ./runtime/frequency/target ] && sudo ls -latR ./runtime/frequency/target + exit 0 - name: Check Out Repo uses: actions/checkout@v3 - name: Reset Runner @@ -235,12 +259,10 @@ jobs: sudo apt-get update sudo apt install -y protobuf-compiler - name: Install Rust Toolchain - uses: actions-rs/toolchain@16499b5e05bf2e26879000db0c1d13f7e13fa3af + uses: dtolnay/rust-toolchain@e12eda571dc9a5ee5d58eecf4738ec291c66f295 with: toolchain: stable - default: true - profile: minimal - target: wasm32-unknown-unknown + targets: wasm32-unknown-unknown - name: Build Rust Docs run: RUSTDOCFLAGS="--enable-index-page --check -Zunstable-options" cargo doc --no-deps --features frequency @@ -250,8 +272,19 @@ jobs: name: Verify Rust Packages and Dependencies env: HOME: /root - runs-on: [self-hosted, Linux, X64] + runs-on: [self-hosted, Linux, X64, build] steps: + # https://github.com/LibertyDSNP/frequency/issues/1102 + - name: Debug Leftovers + run: | + set -x + set -x + date + whoami + cat /etc/passwd + [ -d ./target ] && sudo ls -latR ./target + [ -d ./runtime/frequency/target ] && sudo ls -latR ./runtime/frequency/target + exit 0 - name: Check Out Repo uses: actions/checkout@v3 - name: Reset Runner @@ -261,10 +294,8 @@ jobs: sudo apt-get update sudo apt install -y protobuf-compiler - name: Install Rust Toolchain - uses: actions-rs/toolchain@16499b5e05bf2e26879000db0c1d13f7e13fa3af + uses: dtolnay/rust-toolchain@e12eda571dc9a5ee5d58eecf4738ec291c66f295 with: - default: true - profile: minimal toolchain: stable - name: Check run: SKIP_WASM_BUILD= cargo check --features runtime-benchmarks,all-frequency-features @@ -275,8 +306,18 @@ jobs: name: Run Rust Tests env: HOME: /root - runs-on: [self-hosted, Linux, X64] + runs-on: [self-hosted, Linux, X64, build] steps: + # https://github.com/LibertyDSNP/frequency/issues/1102 + - name: Debug Leftovers + run: | + set -x + date + whoami + cat /etc/passwd + [ -d ./target ] && sudo ls -latR ./target + [ -d ./runtime/frequency/target ] && sudo ls -latR ./runtime/frequency/target + exit 0 - name: Check Out Repo uses: actions/checkout@v3 - name: Reset Runner @@ -286,11 +327,9 @@ jobs: sudo apt-get update sudo apt install -y protobuf-compiler - name: Install Rust Toolchain - uses: actions-rs/toolchain@16499b5e05bf2e26879000db0c1d13f7e13fa3af + uses: dtolnay/rust-toolchain@e12eda571dc9a5ee5d58eecf4738ec291c66f295 with: - default: true - profile: minimal - target: wasm32-unknown-unknown + targets: wasm32-unknown-unknown toolchain: stable - name: Run Tests run: cargo test --features runtime-benchmarks,all-frequency-features --workspace --release @@ -308,11 +347,9 @@ jobs: sudo apt-get update sudo apt install -y protobuf-compiler - name: Install Rust Toolchain - uses: actions-rs/toolchain@16499b5e05bf2e26879000db0c1d13f7e13fa3af + uses: dtolnay/rust-toolchain@e12eda571dc9a5ee5d58eecf4738ec291c66f295 with: - default: true - profile: minimal - target: wasm32-unknown-unknown + targets: wasm32-unknown-unknown toolchain: stable - name: Run cargo-tarpaulin uses: actions-rs/tarpaulin@044a1e5bdace8dd2f727b1af63c1d9a1d3572068 @@ -350,6 +387,7 @@ jobs: env: HOME: /root strategy: + fail-fast: true matrix: network: [rococo, mainnet] include: @@ -363,34 +401,30 @@ jobs: package: frequency-runtime runtime-dir: runtime/frequency features: frequency - runs-on: [self-hosted, Linux, X64] + runs-on: [self-hosted, Linux, X64, build] steps: + # https://github.com/LibertyDSNP/frequency/issues/1102 + - name: Debug Leftovers + run: | + set -x + date + whoami + cat /etc/passwd + [ -d ./target ] && sudo ls -latR ./target + [ -d ./runtime/frequency/target ] && sudo ls -latR ./runtime/frequency/target + exit 0 - name: Check Out Repo uses: actions/checkout@v3 - name: Reset Runner uses: ./.github/workflows/common/reset-self-hosted-runner - name: Install Rust Toolchain - uses: actions-rs/toolchain@16499b5e05bf2e26879000db0c1d13f7e13fa3af + uses: dtolnay/rust-toolchain@e12eda571dc9a5ee5d58eecf4738ec291c66f295 with: - default: true - profile: minimal toolchain: stable - name: Install Docker run: | curl -fsSL https://get.docker.com -o get-docker.sh sudo sh get-docker.sh - - name: Prune Docker Resources - run: | - set -x - containers=$(docker ps -q) - if [ ! -z $containers ]; then - docker kill $containers; - fi - docker container prune -f - docker image prune -a -f - docker system prune -a --volumes -f - docker container ls - docker image ls - name: Extract Runtime Spec Version run: | echo "RUNTIME_SPEC_VERSION=$(sed -nr 's/spec_version:\s*([0-9]+),/\1/p' \ @@ -456,7 +490,6 @@ jobs: - name: Set Binary Permissions working-directory: ${{env.BIN_DIR}} run: | - set -x chmod 755 ${{env.BIN_FILENAME}} - name: Output Metadata run: ${{env.BIN_DIR}}/${{env.BIN_FILENAME}} export-metadata --chain=frequency-local --tmp ./js/api-augment/metadata.json @@ -490,12 +523,6 @@ jobs: run: | echo "BUILT_BIN_FILENAME=frequency.mainnet-pr" >> $GITHUB_ENV echo "DOCKER_BIN_FILENAME=frequency" >> $GITHUB_ENV - - name: Install Rust Toolchain - uses: actions-rs/toolchain@16499b5e05bf2e26879000db0c1d13f7e13fa3af - with: - default: true - profile: minimal - toolchain: stable - name: Download Binaries uses: actions/download-artifact@v3 with: @@ -507,7 +534,6 @@ jobs: - name: Set Binary Permissions working-directory: ${{env.BIN_DIR}} run: | - set -x chmod 755 ${{env.DOCKER_BIN_FILENAME}} - name: Set up QEMU uses: docker/setup-qemu-action@v2 @@ -543,10 +569,8 @@ jobs: run: | echo "TEST_BIN_FILENAME=frequency.mainnet-pr" >> $GITHUB_ENV - name: Install Rust Toolchain - uses: actions-rs/toolchain@16499b5e05bf2e26879000db0c1d13f7e13fa3af + uses: dtolnay/rust-toolchain@e12eda571dc9a5ee5d58eecf4738ec291c66f295 with: - default: true - profile: minimal toolchain: stable - name: Download Binaries uses: actions/download-artifact@v3 @@ -556,7 +580,6 @@ jobs: - name: Set Binary Permissions working-directory: ${{env.BIN_DIR}} run: | - set -x chmod 755 ${{env.TEST_BIN_FILENAME}} - name: Output Binary Version working-directory: ${{env.BIN_DIR}} @@ -586,7 +609,6 @@ jobs: - name: Set Binary Permissions working-directory: ${{env.BIN_DIR}} run: | - set -x chmod 755 $TEST_BIN_FILENAME chmod 755 $REF_BIN_FILENAME - name: Compare Metadata @@ -609,7 +631,6 @@ jobs: if: steps.compare-metadata.outputs.metadata_match != 'true' working-directory: ${{env.BIN_DIR}} run: | - set -x spec_version_ref=$(./$REF_BIN_FILENAME export-runtime-version | jq -r .specVersion) spec_version=$(./$TEST_BIN_FILENAME export-runtime-version | jq -r .specVersion) [[ $spec_version -gt $spec_version_ref ]] || \ @@ -650,7 +671,6 @@ jobs: - name: Set Binaries Permissions working-directory: ${{env.BIN_DIR}} run: | - set -x chmod 755 $BIN_FILENAME - name: Start Local Node working-directory: ${{env.BIN_DIR}} @@ -711,7 +731,6 @@ jobs: - name: Set Binary Permissions working-directory: ${{env.BIN_DIR}} run: | - set -x chmod 755 $BIN_FILENAME_ROCOCO chmod 755 $BIN_FILENAME_MAINNET - name: Test Rococo Genesis State diff --git a/.prettierignore b/.prettierignore index d24e30e0ba..0165c89283 100644 --- a/.prettierignore +++ b/.prettierignore @@ -7,3 +7,4 @@ cache logs log CODEOWNERS +.github/issues/* diff --git a/Cargo.lock b/Cargo.lock index 23975130c6..1a44967be6 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -981,6 +981,7 @@ version = "0.0.0" dependencies = [ "enumflags2", "frame-support", + "frame-system", "impl-serde", "parity-scale-codec", "scale-info", @@ -1006,6 +1007,7 @@ dependencies = [ "pallet-collator-selection", "pallet-collective", "pallet-democracy", + "pallet-multisig", "pallet-preimage", "pallet-scheduler", "pallet-session", @@ -2790,6 +2792,7 @@ dependencies = [ "pallet-messages-runtime-api", "pallet-msa", "pallet-msa-runtime-api", + "pallet-multisig", "pallet-preimage", "pallet-scheduler", "pallet-schemas", @@ -2823,6 +2826,7 @@ dependencies = [ "sp-transaction-pool", "sp-version", "substrate-wasm-builder", + "system-runtime-api", ] [[package]] @@ -2830,6 +2834,7 @@ name = "frequency-service" version = "0.0.0" dependencies = [ "clap", + "common-helpers", "common-primitives", "common-runtime", "cumulus-client-cli", @@ -2846,6 +2851,7 @@ dependencies = [ "derive_more", "frame-benchmarking", "frame-benchmarking-cli", + "frame-system", "frequency-runtime", "futures", "hex", @@ -2869,6 +2875,7 @@ dependencies = [ "sc-chain-spec", "sc-cli", "sc-client-api", + "sc-client-db", "sc-consensus", "sc-consensus-manual-seal", "sc-executor", @@ -2883,6 +2890,7 @@ dependencies = [ "sc-tracing", "sc-transaction-pool", "sc-transaction-pool-api", + "scale-info", "serde", "sp-api", "sp-block-builder", @@ -2899,6 +2907,9 @@ dependencies = [ "substrate-build-script-utils", "substrate-frame-rpc-system", "substrate-prometheus-endpoint", + "substrate-test-runtime-client", + "system-runtime-api", + "tokio", "try-runtime-cli", ] @@ -5674,6 +5685,7 @@ dependencies = [ "frame-benchmarking", "frame-support", "frame-system", + "pallet-collective", "pallet-schemas", "parity-scale-codec", "scale-info", @@ -5939,10 +5951,12 @@ name = "pallet-schemas" version = "0.0.0" dependencies = [ "common-primitives", + "common-runtime", "frame-benchmarking", "frame-support", "frame-system", "numtoa", + "pallet-collective", "parity-scale-codec", "scale-info", "serde_json", @@ -11253,6 +11267,20 @@ dependencies = [ "libc", ] +[[package]] +name = "system-runtime-api" +version = "0.0.0" +dependencies = [ + "common-primitives", + "frame-support", + "frame-system", + "parity-scale-codec", + "serde_json", + "sp-api", + "sp-runtime", + "sp-std", +] + [[package]] name = "tap" version = "1.0.1" diff --git a/common/primitives/Cargo.toml b/common/primitives/Cargo.toml index fe8531fb50..e00cfaf2f2 100644 --- a/common/primitives/Cargo.toml +++ b/common/primitives/Cargo.toml @@ -16,8 +16,8 @@ targets = ['x86_64-unknown-linux-gnu'] codec = { package = "parity-scale-codec", version = "3.1.5", default-features = false, features = [ "derive", ] } -enumflags2 = "0.7.5" frame-support = { default-features = false, git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.36" } +frame-system = { default-features = false, git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.36" } impl-serde = { version = "0.4.0", default-features = false } scale-info = { version = "2.2.0", default-features = false, features = [ "derive", @@ -26,6 +26,7 @@ serde = { version = "1.0.145", default-features = false, features = ["derive"] } serde_json = { version = "1.0.86", default-features = false, features = [ "alloc", ] } +enumflags2 = "0.7.5" smallvec = "1.10.0" sp-api = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.36" } sp-core = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.36" } diff --git a/common/primitives/src/lib.rs b/common/primitives/src/lib.rs index b00a2826b9..a88431f3eb 100644 --- a/common/primitives/src/lib.rs +++ b/common/primitives/src/lib.rs @@ -21,6 +21,8 @@ pub mod msa; pub mod node; /// Structs and traits for parquet pub mod parquet; +/// Structs and traits for better RPCs +pub mod rpc; /// Structs and traits for the Schema pallet pub mod schema; /// Types for the Stateful Storage pallet diff --git a/common/primitives/src/messages.rs b/common/primitives/src/messages.rs index 6b06d1255a..a6766eeac1 100644 --- a/common/primitives/src/messages.rs +++ b/common/primitives/src/messages.rs @@ -35,7 +35,10 @@ pub struct MessageResponse { )] pub payload: Option>, /// The content address for an IPFS payload in Base32. Will always be CIDv1. - #[cfg_attr(feature = "std", serde(skip_serializing_if = "Option::is_none", default))] + #[cfg_attr( + feature = "std", + serde(with = "as_string_option", skip_serializing_if = "Option::is_none", default) + )] pub cid: Option>, /// Offchain payload length (IPFS). #[cfg_attr(feature = "std", serde(skip_serializing_if = "Option::is_none", default))] @@ -160,7 +163,7 @@ mod tests { payload_length: Some(42), }; let serialized = serde_json::to_string(&msg).unwrap(); - assert_eq!(serialized, "{\"provider_msa_id\":1,\"index\":1,\"block_number\":1,\"cid\":[98,97,102,107,114,101,105,100,103,118,112,107,106,97,119,108,120,122,54,115,102,102,120,122,119,103,111,111,111,119,101,53,121,116,55,105,54,119,115,121,103,50,51,54,109,102,111,107,115,55,55,110,121,119,107,112,116,100,113],\"payload_length\":42}"); + assert_eq!(serialized, "{\"provider_msa_id\":1,\"index\":1,\"block_number\":1,\"cid\":\"bafkreidgvpkjawlxz6sffxzwgooowe5yt7i6wsyg236mfoks77nywkptdq\",\"payload_length\":42}"); let deserialized: MessageResponse = serde_json::from_str(&serialized).unwrap(); assert_eq!(deserialized, msg); diff --git a/common/primitives/src/node.rs b/common/primitives/src/node.rs index 2b1c7870ca..690c01b82a 100644 --- a/common/primitives/src/node.rs +++ b/common/primitives/src/node.rs @@ -4,6 +4,9 @@ pub use sp_runtime::{ traits::{BlakeTwo256, IdentifyAccount, Verify}, MultiAddress, MultiSignature, OpaqueExtrinsic, }; +use sp_std::boxed::Box; + +use frame_support::dispatch::DispatchError; /// Some way of identifying an account on the chain. We intentionally make it equivalent /// to the public key of our transaction signing scheme. @@ -35,3 +38,24 @@ pub type Index = u32; /// A hash of some data used by the chain. pub type Hash = sp_core::H256; +/// The provider of a collective action interface, for example an instance of `pallet-collective`. +pub trait ProposalProvider { + /// Add a new proposal with a threshold number of council votes. + /// Returns a proposal length and active proposals count if successful. + fn propose( + who: AccountId, + threshold: u32, + proposal: Box, + ) -> Result<(u32, u32), DispatchError>; + + /// Add a new proposal with a simple majority (>50%) of council votes. + /// Returns a proposal length and active proposals count if successful. + fn propose_with_simple_majority( + who: AccountId, + proposal: Box, + ) -> Result<(u32, u32), DispatchError>; + + /// Get the number of proposals + #[cfg(any(feature = "runtime-benchmarks", feature = "test"))] + fn proposal_count() -> u32; +} diff --git a/common/primitives/src/rpc.rs b/common/primitives/src/rpc.rs new file mode 100644 index 0000000000..a0e5088c88 --- /dev/null +++ b/common/primitives/src/rpc.rs @@ -0,0 +1,94 @@ +#[cfg(feature = "std")] +use crate::utils::as_hex; +#[cfg(feature = "std")] +use serde::{Deserialize, Serialize}; + +use codec::{Codec, Decode, Encode, EncodeLike}; +use frame_support::dispatch::fmt::Debug; +use frame_system::{EventRecord, Phase}; +use scale_info::TypeInfo; +use sp_std::vec::Vec; + +/// The Struct for the getEvents RPC +/// This handles the Scale encoding of ONLY the event +/// Making a standardized and easy way to get events only caring about +/// the SCALE types of the events you care about +#[cfg_attr(feature = "std", derive(Serialize, Deserialize))] +#[derive(Debug, TypeInfo, Clone, Encode, Decode, PartialEq, Eq)] +pub struct RpcEvent { + /// Which extrinsic call/Aka block index + /// A None here means that it was in the Initialization or Finalization Phase + pub phase: Option, + /// Pallet index from the runtime + pub pallet: u8, + /// Index of the Event from the Pallet + pub event: u8, + /// The data of just the event SCALE Encoded + #[cfg_attr(feature = "std", serde(with = "as_hex",))] + pub data: Vec, +} + +impl From> for RpcEvent +where + RuntimeEvent: Codec + Sync + Send + TypeInfo + Debug + Eq + Clone + EncodeLike + 'static, +{ + fn from(event: EventRecord) -> Self { + let phase = match event.phase { + Phase::ApplyExtrinsic(i) => Some(i), + _ => None, + }; + + // This requires that SCALE encoding does NOT change how it encodes u8s and indexes on enums + let full_encoding = Encode::encode(&event.event); + let pallet = full_encoding[0]; + let event = full_encoding[1]; + let data = &full_encoding[2..]; + + RpcEvent { phase, pallet, event, data: data.to_vec() } + } +} + +#[cfg(test)] +mod tests { + use super::*; + + #[derive(Debug, TypeInfo, Clone, Encode, Decode, Eq, PartialEq)] + enum FakeRuntime { + #[codec(index = 60)] + FakePallet(FakePalletEvents), + } + + #[derive(Debug, TypeInfo, Clone, Encode, Decode, Eq, PartialEq)] + enum FakePalletEvents { + #[codec(index = 7)] + FakeEvent { msa_id: u64 }, + } + + #[test] + fn rpc_event_from_event_record() { + let event: EventRecord = EventRecord { + phase: Phase::ApplyExtrinsic(5), + event: FakeRuntime::FakePallet(FakePalletEvents::FakeEvent { msa_id: 42 }), + topics: vec![], + }; + let rpc_event: RpcEvent = event.into(); + assert_eq!( + rpc_event, + RpcEvent { phase: Some(5), pallet: 60, event: 7, data: vec![42, 0, 0, 0, 0, 0, 0, 0] } + ); + } + + #[test] + fn rpc_event_from_event_record_with_different_phase() { + let event: EventRecord = EventRecord { + phase: Phase::Finalization, + event: FakeRuntime::FakePallet(FakePalletEvents::FakeEvent { msa_id: 42 }), + topics: vec![], + }; + let rpc_event: RpcEvent = event.into(); + assert_eq!( + rpc_event, + RpcEvent { phase: None, pallet: 60, event: 7, data: vec![42, 0, 0, 0, 0, 0, 0, 0] } + ); + } +} diff --git a/common/primitives/src/utils.rs b/common/primitives/src/utils.rs index 9be8afd7b3..941047d1cc 100644 --- a/common/primitives/src/utils.rs +++ b/common/primitives/src/utils.rs @@ -64,6 +64,39 @@ pub mod as_string { } } +/// Handle serializing and deserializing from `Option>` to a UTF-8 string +#[cfg(feature = "std")] +pub mod as_string_option { + use super::*; + use serde::{ser::Error, Deserialize, Deserializer, Serialize, Serializer}; + + /// Serializes a `Option>` into a UTF-8 string if Ok() + pub fn serialize( + bytes: &Option>, + serializer: S, + ) -> Result { + match bytes { + Some(bytes) => std::str::from_utf8(bytes) + .map_err(|e| { + S::Error::custom(format!("Debug buffer contains invalid UTF8: {}", e)) + })? + .serialize(serializer), + None => serializer.serialize_none(), + } + } + + /// Deserializes a UTF-8 string into a `Option>` + pub fn deserialize<'de, D: Deserializer<'de>>( + deserializer: D, + ) -> Result>, D::Error> { + let bytes = String::deserialize(deserializer)?.into_bytes(); + Ok(match bytes.len() { + 0 => None, + _ => Some(bytes), + }) + } +} + const PREFIX: &'static str = ""; const POSTFIX: &'static str = ""; diff --git a/docker/instant-seal-node.dockerfile b/docker/instant-seal-node.dockerfile index 7982158dcb..38c1902e6a 100644 --- a/docker/instant-seal-node.dockerfile +++ b/docker/instant-seal-node.dockerfile @@ -36,9 +36,6 @@ ENTRYPOINT ["/frequency/frequency", \ # Required params for starting the chain "--dev", \ "-lruntime=debug", \ - "--instant-sealing", \ - "--wasm-execution=compiled", \ - "--execution=wasm", \ "--no-telemetry", \ "--no-prometheus", \ "--port=30333", \ @@ -48,8 +45,8 @@ ENTRYPOINT ["/frequency/frequency", \ "--rpc-cors=all", \ "--ws-external", \ "--rpc-methods=Unsafe", \ - "--tmp" \ + "--base-path=/data" \ ] # Params which can be overriden from CLI -# CMD ["", "", ...] +CMD ["--instant-sealing"] diff --git a/docker/instant-seal-node.overview.md b/docker/instant-seal-node.overview.md index ff61c85ee2..e267dbe1da 100644 --- a/docker/instant-seal-node.overview.md +++ b/docker/instant-seal-node.overview.md @@ -1,19 +1,57 @@ -# Frequency Collator Node in Instant Seal Mode +# Frequency Collator Node in Local Only Sealing Mode -Runs just one collator node in instant seal mode. -A "collator node" is a Frequency parachain node that is actively collating (aka forming blocks to submit to the relay chain). -The instant seal mode allows a blockchain node to author a block -as soon as it goes into a queue. -This is also a great option to run with an example client. +Runs just one collator node that will not connect to any other nodes. +Defaults to running in instant sealing mode where a block will be triggered when a transaction enters the validated transaction pool. +A "collator node" is a Frequency parachain node that is actively collating (aka forming blocks to submit to the relay chain, although in this case without a relay chain). -![](https://github.com/LibertyDSNP/frequency/blob/main/docs/images/local-dev-env-option-1.jpg?raw=true) +### Quick Run + +```sh +docker run --rm -p 9944:9944 -p 9933:9933 -p 30333:30333 frequencychain/instant-seal-node: +``` + + +## Trigger Block Manually + +If running in manual sealing mode or to form empty blocks in instant sealing mode, the `engine_createBlock` RPC can be used: + +```sh +curl http://localhost:9933 -H "Content-Type:application/json;charset=utf-8" -d '{ \ + "jsonrpc":"2.0", \ + "id":1, \ + "method":"engine_createBlock", \ + "params": [true, true] \ + }' +``` -## Run + +## Default Arguments + +| Argument | Description | +| --- | --- | +| `--instant-sealing` | Manual sealing + automatically form a block each time a transaction enters the validated transaction pool | + +### Run + +Note: Docker `--rm` removes the volume when stopped. ```sh docker run --rm -p 9944:9944 -p 9933:9933 -p 30333:30333 frequencychain/instant-seal-node: ``` +## Overriding Arguments + +| Argument | Description | +| --- | --- | +| `--manual-sealing` | Only form a block when `engine_createBlock` RPC is called | +| `--help` | See all the options possible | + +### Run + +```sh +docker run --rm -p 9944:9944 -p 9933:9933 -p 30333:30333 frequencychain/instant-seal-node: -- --manual-seal +``` + | **Node** | **Ports** | **Explorer URL** | | ----------------------- | :-------------------------------: | ----------------------------------------------------------------------------------------- | -| Frequency Collator Node | ws:`9944`, rpc`:9933`, p2p:`3033` | [127.0.0.1:9944](https://polkadot.js.org/apps/?rpc=ws%3A%2F%2F127.0.0.1%3A9944#/explorer) | +| Frequency Local-Only Node | ws:`9944`, rpc`:9933`, p2p:`3033` | [127.0.0.1:9944](https://polkadot.js.org/apps/?rpc=ws%3A%2F%2F127.0.0.1%3A9944#/explorer) | diff --git a/integration-tests/messages/addIPFSMessage.test.ts b/integration-tests/messages/addIPFSMessage.test.ts index ae3ea1c9a1..9bc93af495 100644 --- a/integration-tests/messages/addIPFSMessage.test.ts +++ b/integration-tests/messages/addIPFSMessage.test.ts @@ -22,8 +22,10 @@ describe("Add Offchain Message", function () { let ipfs_node: any; const ipfs_payload_data = "This is a test of Frequency."; const ipfs_payload_len = ipfs_payload_data.length + 1; + let starting_block: number; before(async function () { + starting_block = (await firstValueFrom(ExtrinsicHelper.api.rpc.chain.getHeader())).number.toNumber(); ipfs_node = await loadIpfs(); const { base64, base32 } = await getBases(); const file = await ipfs_node.add({ path: 'integration_test.txt', content: ipfs_payload_data }, { cidVersion: 1, onlyHash: true }); @@ -106,8 +108,8 @@ describe("Add Offchain Message", function () { }); it("should successfully retrieve added message and returned CID should have Base32 encoding", async function () { - const f = await firstValueFrom(ExtrinsicHelper.api.rpc.messages.getBySchemaId(schemaId, { from_block: 0, from_index: 0, to_block: 999, page_size: 999 })); - const response: MessageResponse = f.content[0]; + const f = await firstValueFrom(ExtrinsicHelper.api.rpc.messages.getBySchemaId(schemaId, { from_block: starting_block, from_index: 0, to_block: starting_block + 999, page_size: 999 })); + const response: MessageResponse = f.content[f.content.length - 1]; const cid = Buffer.from(response.cid.unwrap()).toString(); assert.equal(cid, ipfs_cid_32, 'returned CID should match base32-encoded CID'); }) diff --git a/integration-tests/package-lock.json b/integration-tests/package-lock.json index 3cd1e71780..24e022b3d1 100644 --- a/integration-tests/package-lock.json +++ b/integration-tests/package-lock.json @@ -32,7 +32,8 @@ }, "node_modules/@achingbrain/ip-address": { "version": "8.1.0", - "license": "MIT", + "resolved": "https://registry.npmjs.org/@achingbrain/ip-address/-/ip-address-8.1.0.tgz", + "integrity": "sha512-Zus4vMKVRDm+R1o0QJNhD0PD/8qRGO3Zx8YPsFG5lANt5utVtGg3iHVGBSAF80TfQmhi8rP+Kg/OigdxY0BXHw==", "dependencies": { "jsbn": "1.1.0", "sprintf-js": "1.1.2" @@ -43,7 +44,8 @@ }, "node_modules/@achingbrain/nat-port-mapper": { "version": "1.0.7", - "license": "Apache-2.0 OR MIT", + "resolved": "https://registry.npmjs.org/@achingbrain/nat-port-mapper/-/nat-port-mapper-1.0.7.tgz", + "integrity": "sha512-P8Z8iMZBQCsN7q3XoVoJAX3CGPUTbGTh1XBU8JytCW3hBmSk594l8YvdrtY5NVexVHSwLeiXnDsP4d10NJHaeg==", "dependencies": { "@achingbrain/ssdp": "^4.0.1", "@libp2p/logger": "^2.0.0", @@ -61,11 +63,13 @@ }, "node_modules/@achingbrain/nat-port-mapper/node_modules/it-first": { "version": "1.0.7", - "license": "ISC" + "resolved": "https://registry.npmjs.org/it-first/-/it-first-1.0.7.tgz", + "integrity": "sha512-nvJKZoBpZD/6Rtde6FXqwDqDZGF1sCADmr2Zoc0hZsIvnE449gRFnGctxDf09Bzc/FWnHXAdaHVIetY6lrE0/g==" }, "node_modules/@achingbrain/nat-port-mapper/node_modules/p-timeout": { "version": "5.1.0", - "license": "MIT", + "resolved": "https://registry.npmjs.org/p-timeout/-/p-timeout-5.1.0.tgz", + "integrity": "sha512-auFDyzzzGZZZdHz3BtET9VEz0SE/uMEAx7uWfGPucfzEwwe/xH0iVeZibQmANYE/hp9T2+UUZT5m+BKyrDp3Ew==", "engines": { "node": ">=12" }, @@ -75,7 +79,8 @@ }, "node_modules/@achingbrain/ssdp": { "version": "4.0.1", - "license": "Apache-2.0 OR MIT", + "resolved": "https://registry.npmjs.org/@achingbrain/ssdp/-/ssdp-4.0.1.tgz", + "integrity": "sha512-z/CkfFI0Ksrpo8E+lu2rKahlE1KJHUn8X8ihQj2Jg6CEL+oHYGCNfttOES0+VnV7htuog70c8bYNHYhlmmqxBQ==", "dependencies": { "event-iterator": "^2.0.0", "freeport-promise": "^2.0.0", @@ -90,8 +95,9 @@ }, "node_modules/@ampproject/remapping": { "version": "2.2.0", + "resolved": "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.2.0.tgz", + "integrity": "sha512-qRmjj8nj9qmLTQXXmaR1cck3UXSRMPrbsLJAasZpF+t3riI71BXed5ebIOYwQntykeZuhjsdweEc9BxH5Jc26w==", "dev": true, - "license": "Apache-2.0", "dependencies": { "@jridgewell/gen-mapping": "^0.1.0", "@jridgewell/trace-mapping": "^0.3.9" @@ -102,12 +108,14 @@ }, "node_modules/@assemblyscript/loader": { "version": "0.9.4", - "license": "Apache-2.0" + "resolved": "https://registry.npmjs.org/@assemblyscript/loader/-/loader-0.9.4.tgz", + "integrity": "sha512-HazVq9zwTVwGmqdwYzu7WyQ6FQVZ7SwET0KKQuKm55jD0IfUpZgN0OPIiZG3zV1iSrVYcN0bdwLRXI/VNCYsUA==" }, "node_modules/@babel/code-frame": { "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.18.6.tgz", + "integrity": "sha512-TDCmlK5eOvH+eH7cdAFlNXeVJqWIQ7gW9tY1GJIpUtFb6CmjVyq2VM3u71bOyR8CRihcCgMUYoDNyLXao3+70Q==", "dev": true, - "license": "MIT", "dependencies": { "@babel/highlight": "^7.18.6" }, @@ -117,16 +125,18 @@ }, "node_modules/@babel/compat-data": { "version": "7.20.14", + "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.20.14.tgz", + "integrity": "sha512-0YpKHD6ImkWMEINCyDAD0HLLUH/lPCefG8ld9it8DJB2wnApraKuhgYTvTY1z7UFIfBTGy5LwncZ+5HWWGbhFw==", "dev": true, - "license": "MIT", "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/core": { "version": "7.20.12", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.20.12.tgz", + "integrity": "sha512-XsMfHovsUYHFMdrIHkZphTN/2Hzzi78R08NuHfDBehym2VsPDL6Zn/JAD/JQdnRvbSsbQc4mVaU1m6JgtTEElg==", "dev": true, - "license": "MIT", "dependencies": { "@ampproject/remapping": "^2.1.0", "@babel/code-frame": "^7.18.6", @@ -154,8 +164,9 @@ }, "node_modules/@babel/generator": { "version": "7.20.14", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.20.14.tgz", + "integrity": "sha512-AEmuXHdcD3A52HHXxaTmYlb8q/xMEhoRP67B3T4Oq7lbmSoqroMZzjnGj3+i1io3pdnF8iBYVu4Ilj+c4hBxYg==", "dev": true, - "license": "MIT", "dependencies": { "@babel/types": "^7.20.7", "@jridgewell/gen-mapping": "^0.3.2", @@ -167,8 +178,9 @@ }, "node_modules/@babel/generator/node_modules/@jridgewell/gen-mapping": { "version": "0.3.2", + "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.2.tgz", + "integrity": "sha512-mh65xKQAzI6iBcFzwv28KVWSmCkdRBWoOh+bYQGW3+6OZvbbN3TqMGo5hqYxQniRcH9F2VZIoJCm4pa3BPDK/A==", "dev": true, - "license": "MIT", "dependencies": { "@jridgewell/set-array": "^1.0.1", "@jridgewell/sourcemap-codec": "^1.4.10", @@ -180,8 +192,9 @@ }, "node_modules/@babel/helper-compilation-targets": { "version": "7.20.7", + "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.20.7.tgz", + "integrity": "sha512-4tGORmfQcrc+bvrjb5y3dG9Mx1IOZjsHqQVUz7XCNHO+iTmqxWnVg3KRygjGmpRLJGdQSKuvFinbIb0CnZwHAQ==", "dev": true, - "license": "MIT", "dependencies": { "@babel/compat-data": "^7.20.5", "@babel/helper-validator-option": "^7.18.6", @@ -198,29 +211,33 @@ }, "node_modules/@babel/helper-compilation-targets/node_modules/lru-cache": { "version": "5.1.1", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz", + "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==", "dev": true, - "license": "ISC", "dependencies": { "yallist": "^3.0.2" } }, "node_modules/@babel/helper-compilation-targets/node_modules/yallist": { "version": "3.1.1", - "dev": true, - "license": "ISC" + "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", + "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==", + "dev": true }, "node_modules/@babel/helper-environment-visitor": { "version": "7.18.9", + "resolved": "https://registry.npmjs.org/@babel/helper-environment-visitor/-/helper-environment-visitor-7.18.9.tgz", + "integrity": "sha512-3r/aACDJ3fhQ/EVgFy0hpj8oHyHpQc+LPtJoY9SzTThAsStm4Ptegq92vqKoE3vD706ZVFWITnMnxucw+S9Ipg==", "dev": true, - "license": "MIT", "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-function-name": { "version": "7.19.0", + "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.19.0.tgz", + "integrity": "sha512-WAwHBINyrpqywkUH0nTnNgI5ina5TFn85HKS0pbPDfxFfhyR/aNQEn4hGi1P1JyT//I0t4OgXUlofzWILRvS5w==", "dev": true, - "license": "MIT", "dependencies": { "@babel/template": "^7.18.10", "@babel/types": "^7.19.0" @@ -231,8 +248,9 @@ }, "node_modules/@babel/helper-hoist-variables": { "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.18.6.tgz", + "integrity": "sha512-UlJQPkFqFULIcyW5sbzgbkxn2FKRgwWiRexcuaR8RNJRy8+LLveqPjwZV/bwrLZCN0eUHD/x8D0heK1ozuoo6Q==", "dev": true, - "license": "MIT", "dependencies": { "@babel/types": "^7.18.6" }, @@ -242,8 +260,9 @@ }, "node_modules/@babel/helper-module-imports": { "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.18.6.tgz", + "integrity": "sha512-0NFvs3VkuSYbFi1x2Vd6tKrywq+z/cLeYC/RJNFrIX/30Bf5aiGYbtvGXolEktzJH8o5E5KJ3tT+nkxuuZFVlA==", "dev": true, - "license": "MIT", "dependencies": { "@babel/types": "^7.18.6" }, @@ -253,8 +272,9 @@ }, "node_modules/@babel/helper-module-transforms": { "version": "7.20.11", + "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.20.11.tgz", + "integrity": "sha512-uRy78kN4psmji1s2QtbtcCSaj/LILFDp0f/ymhpQH5QY3nljUZCaNWz9X1dEj/8MBdBEFECs7yRhKn8i7NjZgg==", "dev": true, - "license": "MIT", "dependencies": { "@babel/helper-environment-visitor": "^7.18.9", "@babel/helper-module-imports": "^7.18.6", @@ -271,8 +291,9 @@ }, "node_modules/@babel/helper-simple-access": { "version": "7.20.2", + "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.20.2.tgz", + "integrity": "sha512-+0woI/WPq59IrqDYbVGfshjT5Dmk/nnbdpcF8SnMhhXObpTq2KNBdLFRFrkVdbDOyUmHBCxzm5FHV1rACIkIbA==", "dev": true, - "license": "MIT", "dependencies": { "@babel/types": "^7.20.2" }, @@ -282,8 +303,9 @@ }, "node_modules/@babel/helper-split-export-declaration": { "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.18.6.tgz", + "integrity": "sha512-bde1etTx6ZyTmobl9LLMMQsaizFVZrquTEHOqKeQESMKo4PlObf+8+JA25ZsIpZhT/WEd39+vOdLXAFG/nELpA==", "dev": true, - "license": "MIT", "dependencies": { "@babel/types": "^7.18.6" }, @@ -293,32 +315,36 @@ }, "node_modules/@babel/helper-string-parser": { "version": "7.19.4", + "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.19.4.tgz", + "integrity": "sha512-nHtDoQcuqFmwYNYPz3Rah5ph2p8PFeFCsZk9A/48dPc/rGocJ5J3hAAZ7pb76VWX3fZKu+uEr/FhH5jLx7umrw==", "dev": true, - "license": "MIT", "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-validator-identifier": { "version": "7.19.1", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.19.1.tgz", + "integrity": "sha512-awrNfaMtnHUr653GgGEs++LlAvW6w+DcPrOliSMXWCKo597CwL5Acf/wWdNkf/tfEQE3mjkeD1YOVZOUV/od1w==", "dev": true, - "license": "MIT", "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-validator-option": { "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.18.6.tgz", + "integrity": "sha512-XO7gESt5ouv/LRJdrVjkShckw6STTaB7l9BrpBaAHDeF5YZT+01PCwmR0SJHnkW6i8OwW/EVWRShfi4j2x+KQw==", "dev": true, - "license": "MIT", "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helpers": { "version": "7.20.13", + "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.20.13.tgz", + "integrity": "sha512-nzJ0DWCL3gB5RCXbUO3KIMMsBY2Eqbx8mBpKGE/02PgyRQFcPQLbkQ1vyy596mZLaP+dAfD+R4ckASzNVmW3jg==", "dev": true, - "license": "MIT", "dependencies": { "@babel/template": "^7.20.7", "@babel/traverse": "^7.20.13", @@ -330,8 +356,9 @@ }, "node_modules/@babel/highlight": { "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.18.6.tgz", + "integrity": "sha512-u7stbOuYjaPezCuLj29hNW1v64M2Md2qupEKP1fHc7WdOA3DgLh37suiSrZYY7haUB7iBeQZ9P1uiRF359do3g==", "dev": true, - "license": "MIT", "dependencies": { "@babel/helper-validator-identifier": "^7.18.6", "chalk": "^2.0.0", @@ -343,8 +370,9 @@ }, "node_modules/@babel/parser": { "version": "7.20.13", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.20.13.tgz", + "integrity": "sha512-gFDLKMfpiXCsjt4za2JA9oTMn70CeseCehb11kRZgvd7+F67Hih3OHOK24cRrWECJ/ljfPGac6ygXAs/C8kIvw==", "dev": true, - "license": "MIT", "bin": { "parser": "bin/babel-parser.js" }, @@ -354,8 +382,9 @@ }, "node_modules/@babel/register": { "version": "7.18.9", + "resolved": "https://registry.npmjs.org/@babel/register/-/register-7.18.9.tgz", + "integrity": "sha512-ZlbnXDcNYHMR25ITwwNKT88JiaukkdVj/nG7r3wnuXkOTHc60Uy05PwMCPre0hSkY68E6zK3xz+vUJSP2jWmcw==", "dev": true, - "license": "MIT", "dependencies": { "clone-deep": "^4.0.1", "find-cache-dir": "^2.0.0", @@ -372,7 +401,8 @@ }, "node_modules/@babel/runtime": { "version": "7.20.13", - "license": "MIT", + "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.20.13.tgz", + "integrity": "sha512-gt3PKXs0DBoL9xCvOIIZ2NEqAGZqHjAnmVbfQtB620V0uReIQutpel14KcneZuer7UioY8ALKZ7iocavvzTNFA==", "dependencies": { "regenerator-runtime": "^0.13.11" }, @@ -382,8 +412,9 @@ }, "node_modules/@babel/template": { "version": "7.20.7", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.20.7.tgz", + "integrity": "sha512-8SegXApWe6VoNw0r9JHpSteLKTpTiLZ4rMlGIm9JQ18KiCtyQiAMEazujAHrUS5flrcqYZa75ukev3P6QmUwUw==", "dev": true, - "license": "MIT", "dependencies": { "@babel/code-frame": "^7.18.6", "@babel/parser": "^7.20.7", @@ -395,8 +426,9 @@ }, "node_modules/@babel/traverse": { "version": "7.20.13", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.20.13.tgz", + "integrity": "sha512-kMJXfF0T6DIS9E8cgdLCSAL+cuCK+YEZHWiLK0SXpTo8YRj5lpJu3CDNKiIBCne4m9hhTIqUg6SYTAI39tAiVQ==", "dev": true, - "license": "MIT", "dependencies": { "@babel/code-frame": "^7.18.6", "@babel/generator": "^7.20.7", @@ -415,8 +447,9 @@ }, "node_modules/@babel/types": { "version": "7.20.7", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.20.7.tgz", + "integrity": "sha512-69OnhBxSSgK0OzTJai4kyPDiKTIe3j+ctaHdIGVbRahTLAT7L3R9oeXHC2aVSuGYt3cVnoAMDmOCgJ2yaiLMvg==", "dev": true, - "license": "MIT", "dependencies": { "@babel/helper-string-parser": "^7.19.4", "@babel/helper-validator-identifier": "^7.19.1", @@ -428,11 +461,13 @@ }, "node_modules/@chainsafe/is-ip": { "version": "2.0.1", - "license": "MIT" + "resolved": "https://registry.npmjs.org/@chainsafe/is-ip/-/is-ip-2.0.1.tgz", + "integrity": "sha512-nqSJ8u2a1Rv9FYbyI8qpDhTYujaKEyLknNrTejLYoSWmdeg+2WB7R6BZqPZYfrJzDxVi3rl6ZQuoaEvpKRZWgQ==" }, "node_modules/@chainsafe/libp2p-gossipsub": { "version": "4.1.1", - "license": "Apache-2.0", + "resolved": "https://registry.npmjs.org/@chainsafe/libp2p-gossipsub/-/libp2p-gossipsub-4.1.1.tgz", + "integrity": "sha512-W3z52uTVm48qvwTAcE+tz6ML2CPWA4ErmuL2aCWAW8S7ce6iH8anqo+xI9rcedyIOChWMWLLD4Gtaj4TMrWacw==", "dependencies": { "@libp2p/components": "^2.0.3", "@libp2p/crypto": "^1.0.3", @@ -464,7 +499,8 @@ }, "node_modules/@chainsafe/libp2p-gossipsub/node_modules/@libp2p/interface-peer-id": { "version": "1.1.2", - "license": "Apache-2.0 OR MIT", + "resolved": "https://registry.npmjs.org/@libp2p/interface-peer-id/-/interface-peer-id-1.1.2.tgz", + "integrity": "sha512-S5iyVzG2EUgxm4NLe8W4ya9kpKuGfHs7Wbbos0wOUB4GXsbIKgOOxIr4yf+xGFgtEBaoximvlLkpob6dn8VFgA==", "dependencies": { "multiformats": "^10.0.0" }, @@ -475,7 +511,8 @@ }, "node_modules/@chainsafe/libp2p-gossipsub/node_modules/@libp2p/interface-peer-id/node_modules/multiformats": { "version": "10.0.3", - "license": "Apache-2.0 OR MIT", + "resolved": "https://registry.npmjs.org/multiformats/-/multiformats-10.0.3.tgz", + "integrity": "sha512-K2yGSmstS/oEmYiEIieHb53jJCaqp4ERPDQAYrm5sV3UUrVDZeshJQCK6GHAKyIGufU1vAcbS0PdAAZmC7Tzcw==", "engines": { "node": ">=16.0.0", "npm": ">=7.0.0" @@ -483,7 +520,8 @@ }, "node_modules/@chainsafe/libp2p-gossipsub/node_modules/@libp2p/interface-pubsub": { "version": "2.1.0", - "license": "Apache-2.0 OR MIT", + "resolved": "https://registry.npmjs.org/@libp2p/interface-pubsub/-/interface-pubsub-2.1.0.tgz", + "integrity": "sha512-X+SIqzfeCO8ZDGrFTzH9EMwMf8ojW5nk20rxv3h1sCXEdfvyJCARZ51r9UlwJcnucnHqvFChfkbubAkrr3R4Cw==", "dependencies": { "@libp2p/interface-connection": "^3.0.0", "@libp2p/interface-peer-id": "^1.0.0", @@ -498,12 +536,14 @@ }, "node_modules/@chainsafe/libp2p-gossipsub/node_modules/multiformats": { "version": "9.9.0", - "license": "(Apache-2.0 AND MIT)" + "resolved": "https://registry.npmjs.org/multiformats/-/multiformats-9.9.0.tgz", + "integrity": "sha512-HoMUjhH9T8DDBNT+6xzkrd9ga/XiBI4xLr58LJACwK6G3HTOPeMz4nB4KJs33L2BelrIJa7P0VuNaVF3hMYfjg==" }, "node_modules/@chainsafe/libp2p-gossipsub/node_modules/protobufjs": { "version": "6.11.3", + "resolved": "https://registry.npmjs.org/protobufjs/-/protobufjs-6.11.3.tgz", + "integrity": "sha512-xL96WDdCZYdU7Slin569tFX712BxsxslWwAfAhCYjQKGTq7dAU91Lomy6nLLhh/dyGhk/YH4TwTSRxTzhuHyZg==", "hasInstallScript": true, - "license": "BSD-3-Clause", "dependencies": { "@protobufjs/aspromise": "^1.1.2", "@protobufjs/base64": "^1.1.2", @@ -526,14 +566,16 @@ }, "node_modules/@chainsafe/libp2p-gossipsub/node_modules/uint8arrays": { "version": "3.1.1", - "license": "MIT", + "resolved": "https://registry.npmjs.org/uint8arrays/-/uint8arrays-3.1.1.tgz", + "integrity": "sha512-+QJa8QRnbdXVpHYjLoTpJIdCTiw9Ir62nocClWuXIq2JIh4Uta0cQsTSpFL678p2CN8B+XSApwcU+pQEqVpKWg==", "dependencies": { "multiformats": "^9.4.2" } }, "node_modules/@chainsafe/libp2p-noise": { "version": "10.2.0", - "license": "Apache-2.0 OR MIT", + "resolved": "https://registry.npmjs.org/@chainsafe/libp2p-noise/-/libp2p-noise-10.2.0.tgz", + "integrity": "sha512-nXw09UwSE5JCiB5Dte6j0b0Qe+KbtepJvaPz/f5JyxcoyUfLE/t7XWRZAZmcuWBeVWWpOItnK5WmW8uocoiwCQ==", "dependencies": { "@libp2p/crypto": "^1.0.0", "@libp2p/interface-connection-encrypter": "^3.0.0", @@ -562,7 +604,8 @@ }, "node_modules/@chainsafe/libp2p-noise/node_modules/@libp2p/interface-peer-id": { "version": "1.1.2", - "license": "Apache-2.0 OR MIT", + "resolved": "https://registry.npmjs.org/@libp2p/interface-peer-id/-/interface-peer-id-1.1.2.tgz", + "integrity": "sha512-S5iyVzG2EUgxm4NLe8W4ya9kpKuGfHs7Wbbos0wOUB4GXsbIKgOOxIr4yf+xGFgtEBaoximvlLkpob6dn8VFgA==", "dependencies": { "multiformats": "^10.0.0" }, @@ -573,7 +616,8 @@ }, "node_modules/@chainsafe/libp2p-noise/node_modules/multiformats": { "version": "10.0.3", - "license": "Apache-2.0 OR MIT", + "resolved": "https://registry.npmjs.org/multiformats/-/multiformats-10.0.3.tgz", + "integrity": "sha512-K2yGSmstS/oEmYiEIieHb53jJCaqp4ERPDQAYrm5sV3UUrVDZeshJQCK6GHAKyIGufU1vAcbS0PdAAZmC7Tzcw==", "engines": { "node": ">=16.0.0", "npm": ">=7.0.0" @@ -581,8 +625,9 @@ }, "node_modules/@cspotcode/source-map-support": { "version": "0.8.1", + "resolved": "https://registry.npmjs.org/@cspotcode/source-map-support/-/source-map-support-0.8.1.tgz", + "integrity": "sha512-IchNf6dN4tHoMFIn/7OE8LWZ19Y6q/67Bmf6vnGREv8RSbBVb9LPJxEcnwrcwX6ixSvaiGoomAUvu4YSxXrVgw==", "dev": true, - "license": "MIT", "dependencies": { "@jridgewell/trace-mapping": "0.3.9" }, @@ -592,8 +637,9 @@ }, "node_modules/@cspotcode/source-map-support/node_modules/@jridgewell/trace-mapping": { "version": "0.3.9", + "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.9.tgz", + "integrity": "sha512-3Belt6tdc8bPgAtbcmdtNJlirVoTmEb5e2gC94PnkwEW9jI6CAHUeoG85tjWP5WquqfavoMtMwiG4P926ZKKuQ==", "dev": true, - "license": "MIT", "dependencies": { "@jridgewell/resolve-uri": "^3.0.3", "@jridgewell/sourcemap-codec": "^1.4.10" @@ -601,8 +647,9 @@ }, "node_modules/@eslint/eslintrc": { "version": "1.4.1", + "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-1.4.1.tgz", + "integrity": "sha512-XXrH9Uarn0stsyldqDYq8r++mROmWRI1xKMXa640Bb//SY1+ECYX6VzT6Lcx5frD0V30XieqJ0oX9I2Xj5aoMA==", "dev": true, - "license": "MIT", "peer": true, "dependencies": { "ajv": "^6.12.4", @@ -624,8 +671,9 @@ }, "node_modules/@eslint/eslintrc/node_modules/brace-expansion": { "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", "dev": true, - "license": "MIT", "peer": true, "dependencies": { "balanced-match": "^1.0.0", @@ -634,8 +682,9 @@ }, "node_modules/@eslint/eslintrc/node_modules/globals": { "version": "13.19.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-13.19.0.tgz", + "integrity": "sha512-dkQ957uSRWHw7CFXLUtUHQI3g3aWApYhfNR2O6jn/907riyTYKVBmxYVROkBcY614FSSeSJh7Xm7SrUWCxvJMQ==", "dev": true, - "license": "MIT", "peer": true, "dependencies": { "type-fest": "^0.20.2" @@ -649,8 +698,9 @@ }, "node_modules/@eslint/eslintrc/node_modules/minimatch": { "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", "dev": true, - "license": "ISC", "peer": true, "dependencies": { "brace-expansion": "^1.1.7" @@ -661,8 +711,9 @@ }, "node_modules/@eslint/eslintrc/node_modules/type-fest": { "version": "0.20.2", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz", + "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==", "dev": true, - "license": "(MIT OR CC0-1.0)", "peer": true, "engines": { "node": ">=10" @@ -674,7 +725,7 @@ "node_modules/@frequency-chain/api-augment": { "version": "0.0.0", "resolved": "file:../js/api-augment/dist/frequency-chain-api-augment-0.0.0.tgz", - "integrity": "sha512-v/JzJl2loTVbkPZL6O42o2cO5btDWAWqvDHE4cdbr2RvMAkcQdSgVY4cEOkUUP/HqrNCQW/DPYi+CfBTnuVwEQ==", + "integrity": "sha512-FY8W7cfO47/YlWk5EWrhf7H7+ZHk/QUiyJlCiBvGKx/H806mTGZHYWOnnBfXtAgXtdaZqfDgsHJSaWR41ZBWLg==", "license": "Apache-2.0", "dependencies": { "@polkadot/api": "^9.13.2", @@ -684,7 +735,8 @@ }, "node_modules/@grpc/grpc-js": { "version": "1.8.2", - "license": "Apache-2.0", + "resolved": "https://registry.npmjs.org/@grpc/grpc-js/-/grpc-js-1.8.2.tgz", + "integrity": "sha512-5cqCjUvDKJWHGeu1prlrFOUmjuML0NequZKJ38PsCkfwIqPnZq4Q9burPP3It7/+46wpl0KsqVN3s6Te3B9Qtw==", "dependencies": { "@grpc/proto-loader": "^0.7.0", "@types/node": ">=12.12.47" @@ -695,7 +747,8 @@ }, "node_modules/@grpc/proto-loader": { "version": "0.7.4", - "license": "Apache-2.0", + "resolved": "https://registry.npmjs.org/@grpc/proto-loader/-/proto-loader-0.7.4.tgz", + "integrity": "sha512-MnWjkGwqQ3W8fx94/c1CwqLsNmHHv2t0CFn+9++6+cDphC1lolpg9M2OU0iebIjK//pBNX9e94ho+gjx6vz39w==", "dependencies": { "@types/long": "^4.0.1", "lodash.camelcase": "^4.3.0", @@ -712,7 +765,8 @@ }, "node_modules/@grpc/proto-loader/node_modules/cliui": { "version": "7.0.4", - "license": "ISC", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-7.0.4.tgz", + "integrity": "sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==", "dependencies": { "string-width": "^4.2.0", "strip-ansi": "^6.0.0", @@ -721,7 +775,8 @@ }, "node_modules/@grpc/proto-loader/node_modules/yargs": { "version": "16.2.0", - "license": "MIT", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-16.2.0.tgz", + "integrity": "sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==", "dependencies": { "cliui": "^7.0.2", "escalade": "^3.1.1", @@ -737,7 +792,8 @@ }, "node_modules/@hapi/accept": { "version": "5.0.2", - "license": "BSD-3-Clause", + "resolved": "https://registry.npmjs.org/@hapi/accept/-/accept-5.0.2.tgz", + "integrity": "sha512-CmzBx/bXUR8451fnZRuZAJRlzgm0Jgu5dltTX/bszmR2lheb9BpyN47Q1RbaGTsvFzn0PXAEs+lXDKfshccYZw==", "dependencies": { "@hapi/boom": "9.x.x", "@hapi/hoek": "9.x.x" @@ -745,28 +801,32 @@ }, "node_modules/@hapi/ammo": { "version": "5.0.1", - "license": "BSD-3-Clause", + "resolved": "https://registry.npmjs.org/@hapi/ammo/-/ammo-5.0.1.tgz", + "integrity": "sha512-FbCNwcTbnQP4VYYhLNGZmA76xb2aHg9AMPiy18NZyWMG310P5KdFGyA9v2rm5ujrIny77dEEIkMOwl0Xv+fSSA==", "dependencies": { "@hapi/hoek": "9.x.x" } }, "node_modules/@hapi/b64": { "version": "5.0.0", - "license": "BSD-3-Clause", + "resolved": "https://registry.npmjs.org/@hapi/b64/-/b64-5.0.0.tgz", + "integrity": "sha512-ngu0tSEmrezoiIaNGG6rRvKOUkUuDdf4XTPnONHGYfSGRmDqPZX5oJL6HAdKTo1UQHECbdB4OzhWrfgVppjHUw==", "dependencies": { "@hapi/hoek": "9.x.x" } }, "node_modules/@hapi/boom": { "version": "9.1.4", - "license": "BSD-3-Clause", + "resolved": "https://registry.npmjs.org/@hapi/boom/-/boom-9.1.4.tgz", + "integrity": "sha512-Ls1oH8jaN1vNsqcaHVYJrKmgMcKsC1wcp8bujvXrHaAqD2iDYq3HoOwsxwo09Cuda5R5nC0o0IxlrlTuvPuzSw==", "dependencies": { "@hapi/hoek": "9.x.x" } }, "node_modules/@hapi/bounce": { "version": "2.0.0", - "license": "BSD-3-Clause", + "resolved": "https://registry.npmjs.org/@hapi/bounce/-/bounce-2.0.0.tgz", + "integrity": "sha512-JesW92uyzOOyuzJKjoLHM1ThiOvHPOLDHw01YV8yh5nCso7sDwJho1h0Ad2N+E62bZyz46TG3xhAi/78Gsct6A==", "dependencies": { "@hapi/boom": "9.x.x", "@hapi/hoek": "9.x.x" @@ -774,11 +834,13 @@ }, "node_modules/@hapi/bourne": { "version": "2.1.0", - "license": "BSD-3-Clause" + "resolved": "https://registry.npmjs.org/@hapi/bourne/-/bourne-2.1.0.tgz", + "integrity": "sha512-i1BpaNDVLJdRBEKeJWkVO6tYX6DMFBuwMhSuWqLsY4ufeTKGVuV5rBsUhxPayXqnnWHgXUAmWK16H/ykO5Wj4Q==" }, "node_modules/@hapi/call": { "version": "8.0.1", - "license": "BSD-3-Clause", + "resolved": "https://registry.npmjs.org/@hapi/call/-/call-8.0.1.tgz", + "integrity": "sha512-bOff6GTdOnoe5b8oXRV3lwkQSb/LAWylvDMae6RgEWWntd0SHtkYbQukDHKlfaYtVnSAgIavJ0kqszF/AIBb6g==", "dependencies": { "@hapi/boom": "9.x.x", "@hapi/hoek": "9.x.x" @@ -786,7 +848,8 @@ }, "node_modules/@hapi/catbox": { "version": "11.1.1", - "license": "BSD-3-Clause", + "resolved": "https://registry.npmjs.org/@hapi/catbox/-/catbox-11.1.1.tgz", + "integrity": "sha512-u/8HvB7dD/6X8hsZIpskSDo4yMKpHxFd7NluoylhGrL6cUfYxdQPnvUp9YU2C6F9hsyBVLGulBd9vBN1ebfXOQ==", "dependencies": { "@hapi/boom": "9.x.x", "@hapi/hoek": "9.x.x", @@ -796,7 +859,8 @@ }, "node_modules/@hapi/catbox-memory": { "version": "5.0.1", - "license": "BSD-3-Clause", + "resolved": "https://registry.npmjs.org/@hapi/catbox-memory/-/catbox-memory-5.0.1.tgz", + "integrity": "sha512-QWw9nOYJq5PlvChLWV8i6hQHJYfvdqiXdvTupJFh0eqLZ64Xir7mKNi96d5/ZMUAqXPursfNDIDxjFgoEDUqeQ==", "dependencies": { "@hapi/boom": "9.x.x", "@hapi/hoek": "9.x.x" @@ -804,14 +868,16 @@ }, "node_modules/@hapi/content": { "version": "5.0.2", - "license": "BSD-3-Clause", + "resolved": "https://registry.npmjs.org/@hapi/content/-/content-5.0.2.tgz", + "integrity": "sha512-mre4dl1ygd4ZyOH3tiYBrOUBzV7Pu/EOs8VLGf58vtOEECWed8Uuw6B4iR9AN/8uQt42tB04qpVaMyoMQh0oMw==", "dependencies": { "@hapi/boom": "9.x.x" } }, "node_modules/@hapi/cryptiles": { "version": "5.1.0", - "license": "BSD-3-Clause", + "resolved": "https://registry.npmjs.org/@hapi/cryptiles/-/cryptiles-5.1.0.tgz", + "integrity": "sha512-fo9+d1Ba5/FIoMySfMqPBR/7Pa29J2RsiPrl7bkwo5W5o+AN1dAYQRi4SPrPwwVxVGKjgLOEWrsvt1BonJSfLA==", "dependencies": { "@hapi/boom": "9.x.x" }, @@ -821,11 +887,13 @@ }, "node_modules/@hapi/file": { "version": "2.0.0", - "license": "BSD-3-Clause" + "resolved": "https://registry.npmjs.org/@hapi/file/-/file-2.0.0.tgz", + "integrity": "sha512-WSrlgpvEqgPWkI18kkGELEZfXr0bYLtr16iIN4Krh9sRnzBZN6nnWxHFxtsnP684wueEySBbXPDg/WfA9xJdBQ==" }, "node_modules/@hapi/hapi": { "version": "20.2.2", - "license": "BSD-3-Clause", + "resolved": "https://registry.npmjs.org/@hapi/hapi/-/hapi-20.2.2.tgz", + "integrity": "sha512-crhU6TIKt7QsksWLYctDBAXogk9PYAm7UzdpETyuBHC2pCa6/+B5NykiOVLG/3FCIgHo/raPVtan8bYtByHORQ==", "dependencies": { "@hapi/accept": "^5.0.1", "@hapi/ammo": "^5.0.1", @@ -852,7 +920,8 @@ }, "node_modules/@hapi/heavy": { "version": "7.0.1", - "license": "BSD-3-Clause", + "resolved": "https://registry.npmjs.org/@hapi/heavy/-/heavy-7.0.1.tgz", + "integrity": "sha512-vJ/vzRQ13MtRzz6Qd4zRHWS3FaUc/5uivV2TIuExGTM9Qk+7Zzqj0e2G7EpE6KztO9SalTbiIkTh7qFKj/33cA==", "dependencies": { "@hapi/boom": "9.x.x", "@hapi/hoek": "9.x.x", @@ -861,11 +930,13 @@ }, "node_modules/@hapi/hoek": { "version": "9.3.0", - "license": "BSD-3-Clause" + "resolved": "https://registry.npmjs.org/@hapi/hoek/-/hoek-9.3.0.tgz", + "integrity": "sha512-/c6rf4UJlmHlC9b5BaNvzAcFv7HZ2QHaV0D4/HNlBdvFnvQq8RI4kYdhyPCl7Xj+oWvTWQ8ujhqS53LIgAe6KQ==" }, "node_modules/@hapi/iron": { "version": "6.0.0", - "license": "BSD-3-Clause", + "resolved": "https://registry.npmjs.org/@hapi/iron/-/iron-6.0.0.tgz", + "integrity": "sha512-zvGvWDufiTGpTJPG1Y/McN8UqWBu0k/xs/7l++HVU535NLHXsHhy54cfEMdW7EjwKfbBfM9Xy25FmTiobb7Hvw==", "dependencies": { "@hapi/b64": "5.x.x", "@hapi/boom": "9.x.x", @@ -876,7 +947,8 @@ }, "node_modules/@hapi/mimos": { "version": "6.0.0", - "license": "BSD-3-Clause", + "resolved": "https://registry.npmjs.org/@hapi/mimos/-/mimos-6.0.0.tgz", + "integrity": "sha512-Op/67tr1I+JafN3R3XN5DucVSxKRT/Tc+tUszDwENoNpolxeXkhrJ2Czt6B6AAqrespHoivhgZBWYSuANN9QXg==", "dependencies": { "@hapi/hoek": "9.x.x", "mime-db": "1.x.x" @@ -884,7 +956,8 @@ }, "node_modules/@hapi/nigel": { "version": "4.0.2", - "license": "BSD-3-Clause", + "resolved": "https://registry.npmjs.org/@hapi/nigel/-/nigel-4.0.2.tgz", + "integrity": "sha512-ht2KoEsDW22BxQOEkLEJaqfpoKPXxi7tvabXy7B/77eFtOyG5ZEstfZwxHQcqAiZhp58Ae5vkhEqI03kawkYNw==", "dependencies": { "@hapi/hoek": "^9.0.4", "@hapi/vise": "^4.0.0" @@ -895,7 +968,8 @@ }, "node_modules/@hapi/pez": { "version": "5.0.3", - "license": "BSD-3-Clause", + "resolved": "https://registry.npmjs.org/@hapi/pez/-/pez-5.0.3.tgz", + "integrity": "sha512-mpikYRJjtrbJgdDHG/H9ySqYqwJ+QU/D7FXsYciS9P7NYBXE2ayKDAy3H0ou6CohOCaxPuTV4SZ0D936+VomHA==", "dependencies": { "@hapi/b64": "5.x.x", "@hapi/boom": "9.x.x", @@ -906,7 +980,8 @@ }, "node_modules/@hapi/podium": { "version": "4.1.3", - "license": "BSD-3-Clause", + "resolved": "https://registry.npmjs.org/@hapi/podium/-/podium-4.1.3.tgz", + "integrity": "sha512-ljsKGQzLkFqnQxE7qeanvgGj4dejnciErYd30dbrYzUOF/FyS/DOF97qcrT3bhoVwCYmxa6PEMhxfCPlnUcD2g==", "dependencies": { "@hapi/hoek": "9.x.x", "@hapi/teamwork": "5.x.x", @@ -915,7 +990,8 @@ }, "node_modules/@hapi/shot": { "version": "5.0.5", - "license": "BSD-3-Clause", + "resolved": "https://registry.npmjs.org/@hapi/shot/-/shot-5.0.5.tgz", + "integrity": "sha512-x5AMSZ5+j+Paa8KdfCoKh+klB78otxF+vcJR/IoN91Vo2e5ulXIW6HUsFTCU+4W6P/Etaip9nmdAx2zWDimB2A==", "dependencies": { "@hapi/hoek": "9.x.x", "@hapi/validate": "1.x.x" @@ -923,7 +999,8 @@ }, "node_modules/@hapi/somever": { "version": "3.0.1", - "license": "BSD-3-Clause", + "resolved": "https://registry.npmjs.org/@hapi/somever/-/somever-3.0.1.tgz", + "integrity": "sha512-4ZTSN3YAHtgpY/M4GOtHUXgi6uZtG9nEZfNI6QrArhK0XN/RDVgijlb9kOmXwCR5VclDSkBul9FBvhSuKXx9+w==", "dependencies": { "@hapi/bounce": "2.x.x", "@hapi/hoek": "9.x.x" @@ -931,7 +1008,8 @@ }, "node_modules/@hapi/statehood": { "version": "7.0.4", - "license": "BSD-3-Clause", + "resolved": "https://registry.npmjs.org/@hapi/statehood/-/statehood-7.0.4.tgz", + "integrity": "sha512-Fia6atroOVmc5+2bNOxF6Zv9vpbNAjEXNcUbWXavDqhnJDlchwUUwKS5LCi5mGtCTxRhUKKHwuxuBZJkmLZ7fw==", "dependencies": { "@hapi/boom": "9.x.x", "@hapi/bounce": "2.x.x", @@ -944,7 +1022,8 @@ }, "node_modules/@hapi/subtext": { "version": "7.0.4", - "license": "BSD-3-Clause", + "resolved": "https://registry.npmjs.org/@hapi/subtext/-/subtext-7.0.4.tgz", + "integrity": "sha512-Y72moHhbRuO8kwBHFEnCRw7oOnhNh4Pl+aonxAze18jkyMpE4Gwz4lNID7ei8vd3lpXC2rKdkxXJgtfY+WttRw==", "dependencies": { "@hapi/boom": "9.x.x", "@hapi/bourne": "2.x.x", @@ -957,21 +1036,24 @@ }, "node_modules/@hapi/teamwork": { "version": "5.1.1", - "license": "BSD-3-Clause", + "resolved": "https://registry.npmjs.org/@hapi/teamwork/-/teamwork-5.1.1.tgz", + "integrity": "sha512-1oPx9AE5TIv+V6Ih54RP9lTZBso3rP8j4Xhb6iSVwPXtAM+sDopl5TFMv5Paw73UnpZJ9gjcrTE1BXrWt9eQrg==", "engines": { "node": ">=12.0.0" } }, "node_modules/@hapi/topo": { "version": "5.1.0", - "license": "BSD-3-Clause", + "resolved": "https://registry.npmjs.org/@hapi/topo/-/topo-5.1.0.tgz", + "integrity": "sha512-foQZKJig7Ob0BMAYBfcJk8d77QtOe7Wo4ox7ff1lQYoNNAb6jwcY1ncdoy2e9wQZzvNy7ODZCYJkK8kzmcAnAg==", "dependencies": { "@hapi/hoek": "^9.0.0" } }, "node_modules/@hapi/validate": { "version": "1.1.3", - "license": "BSD-3-Clause", + "resolved": "https://registry.npmjs.org/@hapi/validate/-/validate-1.1.3.tgz", + "integrity": "sha512-/XMR0N0wjw0Twzq2pQOzPBZlDzkekGcoCtzO314BpIEsbXdYGthQUbxgkGDf4nhk1+IPDAsXqWjMohRQYO06UA==", "dependencies": { "@hapi/hoek": "^9.0.0", "@hapi/topo": "^5.0.0" @@ -979,14 +1061,16 @@ }, "node_modules/@hapi/vise": { "version": "4.0.0", - "license": "BSD-3-Clause", + "resolved": "https://registry.npmjs.org/@hapi/vise/-/vise-4.0.0.tgz", + "integrity": "sha512-eYyLkuUiFZTer59h+SGy7hUm+qE9p+UemePTHLlIWppEd+wExn3Df5jO04bFQTm7nleF5V8CtuYQYb+VFpZ6Sg==", "dependencies": { "@hapi/hoek": "9.x.x" } }, "node_modules/@hapi/wreck": { "version": "17.2.0", - "license": "BSD-3-Clause", + "resolved": "https://registry.npmjs.org/@hapi/wreck/-/wreck-17.2.0.tgz", + "integrity": "sha512-pJ5kjYoRPYDv+eIuiLQqhGon341fr2bNIYZjuotuPJG/3Ilzr/XtI+JAp0A86E2bYfsS3zBPABuS2ICkaXFT8g==", "dependencies": { "@hapi/boom": "9.x.x", "@hapi/bourne": "2.x.x", @@ -995,8 +1079,9 @@ }, "node_modules/@humanwhocodes/config-array": { "version": "0.11.8", + "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.11.8.tgz", + "integrity": "sha512-UybHIJzJnR5Qc/MsD9Kr+RpO2h+/P1GhOwdiLPXK5TWk5sgTdu88bTD9UP+CKbPPh5Rni1u0GjAdYQLemG8g+g==", "dev": true, - "license": "Apache-2.0", "peer": true, "dependencies": { "@humanwhocodes/object-schema": "^1.2.1", @@ -1009,8 +1094,9 @@ }, "node_modules/@humanwhocodes/config-array/node_modules/brace-expansion": { "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", "dev": true, - "license": "MIT", "peer": true, "dependencies": { "balanced-match": "^1.0.0", @@ -1019,8 +1105,9 @@ }, "node_modules/@humanwhocodes/config-array/node_modules/minimatch": { "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", "dev": true, - "license": "ISC", "peer": true, "dependencies": { "brace-expansion": "^1.1.7" @@ -1031,8 +1118,9 @@ }, "node_modules/@humanwhocodes/module-importer": { "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@humanwhocodes/module-importer/-/module-importer-1.0.1.tgz", + "integrity": "sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==", "dev": true, - "license": "Apache-2.0", "peer": true, "engines": { "node": ">=12.22" @@ -1044,13 +1132,15 @@ }, "node_modules/@humanwhocodes/object-schema": { "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-1.2.1.tgz", + "integrity": "sha512-ZnQMnLV4e7hDlUvw8H+U8ASL02SS2Gn6+9Ac3wGGLIe7+je2AeAOxPY+izIPJDfFDb7eDjev0Us8MO1iFRN8hA==", "dev": true, - "license": "BSD-3-Clause", "peer": true }, "node_modules/@ipld/car": { "version": "5.0.3", - "license": "Apache-2.0 OR MIT", + "resolved": "https://registry.npmjs.org/@ipld/car/-/car-5.0.3.tgz", + "integrity": "sha512-omPSY65OSVmlFGJDn2xbd75o71GNHmgP5u2dQ5fITc0X/QqJZVfZi95NCs8oa1wWhjkaK3RTswRSg2iNqFUSAg==", "dependencies": { "@ipld/dag-cbor": "^9.0.0", "cborg": "^1.9.0", @@ -1064,7 +1154,8 @@ }, "node_modules/@ipld/car/node_modules/@ipld/dag-cbor": { "version": "9.0.0", - "license": "Apache-2.0 OR MIT", + "resolved": "https://registry.npmjs.org/@ipld/dag-cbor/-/dag-cbor-9.0.0.tgz", + "integrity": "sha512-zdsiSiYDEOIDW7mmWOYWC9gukjXO+F8wqxz/LfN7iSwTfIyipC8+UQrCbPupFMRb/33XQTZk8yl3My8vUQBRoA==", "dependencies": { "cborg": "^1.10.0", "multiformats": "^11.0.0" @@ -1076,7 +1167,8 @@ }, "node_modules/@ipld/dag-cbor": { "version": "8.0.1", - "license": "Apache-2.0 OR MIT", + "resolved": "https://registry.npmjs.org/@ipld/dag-cbor/-/dag-cbor-8.0.1.tgz", + "integrity": "sha512-mHRuzgGXNk0Y5W7nNQdN37qJiig1Kdgf92icBVFRUNtBc9Ezl5DIdWfiGWBucHBrhqPBncxoH3As9cHPIRozxA==", "dependencies": { "cborg": "^1.6.0", "multiformats": "^11.0.0" @@ -1088,7 +1180,8 @@ }, "node_modules/@ipld/dag-json": { "version": "9.1.1", - "license": "Apache-2.0 OR MIT", + "resolved": "https://registry.npmjs.org/@ipld/dag-json/-/dag-json-9.1.1.tgz", + "integrity": "sha512-L0l+Osi8zAWUw2L/fWJjeZ75l7XojD0Mud1Xvo32q8AJeVuqvCQFdqqIFBiq8MwuqC8qS8kbysro3w5mphUiDQ==", "dependencies": { "cborg": "^1.5.4", "multiformats": "^11.0.0" @@ -1100,7 +1193,8 @@ }, "node_modules/@ipld/dag-pb": { "version": "3.0.2", - "license": "Apache-2.0 OR MIT", + "resolved": "https://registry.npmjs.org/@ipld/dag-pb/-/dag-pb-3.0.2.tgz", + "integrity": "sha512-ge+llKU/CNc6rX5ZcUhCrPXJjKjN1DsolDOJ99zOsousGOhepoIgvT01iAP8s7QN9QFciOE+a1jHdccs+CyhBA==", "dependencies": { "multiformats": "^11.0.0" }, @@ -1111,8 +1205,9 @@ }, "node_modules/@jridgewell/gen-mapping": { "version": "0.1.1", + "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.1.1.tgz", + "integrity": "sha512-sQXCasFk+U8lWYEe66WxRDOE9PjVz4vSM51fTu3Hw+ClTpUSQb718772vH3pyS5pShp6lvQM7SxgIDXXXmOX7w==", "dev": true, - "license": "MIT", "dependencies": { "@jridgewell/set-array": "^1.0.0", "@jridgewell/sourcemap-codec": "^1.4.10" @@ -1123,29 +1218,33 @@ }, "node_modules/@jridgewell/resolve-uri": { "version": "3.1.0", + "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.0.tgz", + "integrity": "sha512-F2msla3tad+Mfht5cJq7LSXcdudKTWCVYUgw6pLFOOHSTtZlj6SWNYAp+AhuqLmWdBO2X5hPrLcu8cVP8fy28w==", "dev": true, - "license": "MIT", "engines": { "node": ">=6.0.0" } }, "node_modules/@jridgewell/set-array": { "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.1.2.tgz", + "integrity": "sha512-xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw==", "dev": true, - "license": "MIT", "engines": { "node": ">=6.0.0" } }, "node_modules/@jridgewell/sourcemap-codec": { "version": "1.4.14", - "dev": true, - "license": "MIT" + "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.14.tgz", + "integrity": "sha512-XPSJHWmi394fuUuzDnGz1wiKqWfo1yXecHQMRf2l6hztTO+nPru658AyDngaBe7isIxEkRsPR3FZh+s7iVa4Uw==", + "dev": true }, "node_modules/@jridgewell/trace-mapping": { "version": "0.3.17", + "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.17.tgz", + "integrity": "sha512-MCNzAp77qzKca9+W/+I0+sEpaUnZoeasnghNeVc41VZCEKaCH73Vq3BZZ/SzWIgrqE4H4ceI+p+b6C0mHf9T4g==", "dev": true, - "license": "MIT", "dependencies": { "@jridgewell/resolve-uri": "3.1.0", "@jridgewell/sourcemap-codec": "1.4.14" @@ -1153,11 +1252,13 @@ }, "node_modules/@leichtgewicht/ip-codec": { "version": "2.0.4", - "license": "MIT" + "resolved": "https://registry.npmjs.org/@leichtgewicht/ip-codec/-/ip-codec-2.0.4.tgz", + "integrity": "sha512-Hcv+nVC0kZnQ3tD9GVu5xSMR4VVYOteQIr/hwFPVEvPdlXqgGEuRjiheChHgdM+JyqdgNcmzZOX/tnl0JOiI7A==" }, "node_modules/@libp2p/bootstrap": { "version": "5.0.2", - "license": "Apache-2.0 OR MIT", + "resolved": "https://registry.npmjs.org/@libp2p/bootstrap/-/bootstrap-5.0.2.tgz", + "integrity": "sha512-AOr/uCjHpkfVWFylYXn7KRa1oIGmyZpadoMUr09nAEG0S3ejTda3TMFu90SXApMDnfSsaWyrnsfxNlH8HbfdSg==", "dependencies": { "@libp2p/interface-peer-discovery": "^1.0.1", "@libp2p/interface-peer-info": "^1.0.3", @@ -1175,7 +1276,8 @@ }, "node_modules/@libp2p/components": { "version": "2.1.1", - "license": "Apache-2.0 OR MIT", + "resolved": "https://registry.npmjs.org/@libp2p/components/-/components-2.1.1.tgz", + "integrity": "sha512-/XtfEdBHaNhwiaf9RowiSYnyVFIl+shuZNGQlCsJmOnn5X490TMo9GJ9PVfrTRnRn3ZXPBLS5Vp0s6++ShSv7g==", "dependencies": { "@libp2p/interface-address-manager": "^1.0.2", "@libp2p/interface-connection": "^3.0.1", @@ -1200,7 +1302,8 @@ }, "node_modules/@libp2p/components/node_modules/@libp2p/interface-address-manager": { "version": "1.0.3", - "license": "Apache-2.0 OR MIT", + "resolved": "https://registry.npmjs.org/@libp2p/interface-address-manager/-/interface-address-manager-1.0.3.tgz", + "integrity": "sha512-/DNGUQEXA0Ks+EOp0IVv3TsWq1H+4ZlSnyBozzNGDmufz6wG+EvUDBbwIXieHR898bj4pHfmmogK+Vwz5s5Kdw==", "dependencies": { "@libp2p/interfaces": "^3.0.0", "@multiformats/multiaddr": "^11.0.0" @@ -1212,7 +1315,8 @@ }, "node_modules/@libp2p/components/node_modules/@libp2p/interface-metrics": { "version": "3.0.0", - "license": "Apache-2.0 OR MIT", + "resolved": "https://registry.npmjs.org/@libp2p/interface-metrics/-/interface-metrics-3.0.0.tgz", + "integrity": "sha512-TxK63BrDalv0yW544608xfmg3rsbh31ykZzf7I1yjMCZpyIFOqLTH1WN4YQwXKNlMz/XURux99UTpGSRYl3nOA==", "dependencies": { "@libp2p/interface-peer-id": "^1.0.0", "it-stream-types": "^1.0.4" @@ -1224,7 +1328,8 @@ }, "node_modules/@libp2p/components/node_modules/@libp2p/interface-peer-id": { "version": "1.1.2", - "license": "Apache-2.0 OR MIT", + "resolved": "https://registry.npmjs.org/@libp2p/interface-peer-id/-/interface-peer-id-1.1.2.tgz", + "integrity": "sha512-S5iyVzG2EUgxm4NLe8W4ya9kpKuGfHs7Wbbos0wOUB4GXsbIKgOOxIr4yf+xGFgtEBaoximvlLkpob6dn8VFgA==", "dependencies": { "multiformats": "^10.0.0" }, @@ -1235,7 +1340,8 @@ }, "node_modules/@libp2p/components/node_modules/@libp2p/interface-pubsub": { "version": "2.1.0", - "license": "Apache-2.0 OR MIT", + "resolved": "https://registry.npmjs.org/@libp2p/interface-pubsub/-/interface-pubsub-2.1.0.tgz", + "integrity": "sha512-X+SIqzfeCO8ZDGrFTzH9EMwMf8ojW5nk20rxv3h1sCXEdfvyJCARZ51r9UlwJcnucnHqvFChfkbubAkrr3R4Cw==", "dependencies": { "@libp2p/interface-connection": "^3.0.0", "@libp2p/interface-peer-id": "^1.0.0", @@ -1250,7 +1356,8 @@ }, "node_modules/@libp2p/components/node_modules/@libp2p/interface-transport": { "version": "1.0.4", - "license": "Apache-2.0 OR MIT", + "resolved": "https://registry.npmjs.org/@libp2p/interface-transport/-/interface-transport-1.0.4.tgz", + "integrity": "sha512-MOkhtykUrrbgHC1CcAFe/6QTz/BEBbHfu5sf+go6dhBlHXeHI+AcV8Fic5zTZNz71E1SRi2UR+5TVi7ORPL57Q==", "dependencies": { "@libp2p/interface-connection": "^3.0.0", "@libp2p/interfaces": "^3.0.0", @@ -1264,7 +1371,8 @@ }, "node_modules/@libp2p/components/node_modules/multiformats": { "version": "10.0.3", - "license": "Apache-2.0 OR MIT", + "resolved": "https://registry.npmjs.org/multiformats/-/multiformats-10.0.3.tgz", + "integrity": "sha512-K2yGSmstS/oEmYiEIieHb53jJCaqp4ERPDQAYrm5sV3UUrVDZeshJQCK6GHAKyIGufU1vAcbS0PdAAZmC7Tzcw==", "engines": { "node": ">=16.0.0", "npm": ">=7.0.0" @@ -1272,7 +1380,8 @@ }, "node_modules/@libp2p/connection": { "version": "4.0.2", - "license": "Apache-2.0 OR MIT", + "resolved": "https://registry.npmjs.org/@libp2p/connection/-/connection-4.0.2.tgz", + "integrity": "sha512-l/mvmcA7QkAC/0qRmTpuD5CeMaiy4DuKCsutaY3PpwJbMegTOjxuZh0uzk3z94d0wJBnhquVZ0e4Yqvd+QGlng==", "dependencies": { "@libp2p/interface-connection": "^3.0.2", "@libp2p/interface-peer-id": "^1.0.4", @@ -1288,7 +1397,8 @@ }, "node_modules/@libp2p/connection/node_modules/@libp2p/interface-peer-id": { "version": "1.1.2", - "license": "Apache-2.0 OR MIT", + "resolved": "https://registry.npmjs.org/@libp2p/interface-peer-id/-/interface-peer-id-1.1.2.tgz", + "integrity": "sha512-S5iyVzG2EUgxm4NLe8W4ya9kpKuGfHs7Wbbos0wOUB4GXsbIKgOOxIr4yf+xGFgtEBaoximvlLkpob6dn8VFgA==", "dependencies": { "multiformats": "^10.0.0" }, @@ -1299,7 +1409,8 @@ }, "node_modules/@libp2p/connection/node_modules/multiformats": { "version": "10.0.3", - "license": "Apache-2.0 OR MIT", + "resolved": "https://registry.npmjs.org/multiformats/-/multiformats-10.0.3.tgz", + "integrity": "sha512-K2yGSmstS/oEmYiEIieHb53jJCaqp4ERPDQAYrm5sV3UUrVDZeshJQCK6GHAKyIGufU1vAcbS0PdAAZmC7Tzcw==", "engines": { "node": ">=16.0.0", "npm": ">=7.0.0" @@ -1307,7 +1418,8 @@ }, "node_modules/@libp2p/crypto": { "version": "1.0.11", - "license": "Apache-2.0 OR MIT", + "resolved": "https://registry.npmjs.org/@libp2p/crypto/-/crypto-1.0.11.tgz", + "integrity": "sha512-DWiG/0fKIDnkhTF3HoCu2OzkuKXysR/UKGdM9JZkT6F9jS9rwZYEwmacs4ybw1qyufyH+pMXV3/vuUu2Q/UxLw==", "dependencies": { "@libp2p/interface-keys": "^1.0.2", "@noble/ed25519": "^1.6.0", @@ -1325,7 +1437,8 @@ }, "node_modules/@libp2p/delegated-content-routing": { "version": "3.0.1", - "license": "Apache-2.0 OR MIT", + "resolved": "https://registry.npmjs.org/@libp2p/delegated-content-routing/-/delegated-content-routing-3.0.1.tgz", + "integrity": "sha512-KEj6g0Ag0hjVzj8ljjVlf47nNbZuRtwMPH4sjySOwfnpvtQjPtjT8Lz7PkANtQeL+qG0Zd15CNFxD88gIwmVCg==", "dependencies": { "@libp2p/interface-content-routing": "^1.0.2", "@libp2p/interface-peer-id": "^1.0.4", @@ -1346,7 +1459,8 @@ }, "node_modules/@libp2p/delegated-content-routing/node_modules/@libp2p/interface-peer-id": { "version": "1.1.2", - "license": "Apache-2.0 OR MIT", + "resolved": "https://registry.npmjs.org/@libp2p/interface-peer-id/-/interface-peer-id-1.1.2.tgz", + "integrity": "sha512-S5iyVzG2EUgxm4NLe8W4ya9kpKuGfHs7Wbbos0wOUB4GXsbIKgOOxIr4yf+xGFgtEBaoximvlLkpob6dn8VFgA==", "dependencies": { "multiformats": "^10.0.0" }, @@ -1357,7 +1471,8 @@ }, "node_modules/@libp2p/delegated-content-routing/node_modules/multiformats": { "version": "10.0.3", - "license": "Apache-2.0 OR MIT", + "resolved": "https://registry.npmjs.org/multiformats/-/multiformats-10.0.3.tgz", + "integrity": "sha512-K2yGSmstS/oEmYiEIieHb53jJCaqp4ERPDQAYrm5sV3UUrVDZeshJQCK6GHAKyIGufU1vAcbS0PdAAZmC7Tzcw==", "engines": { "node": ">=16.0.0", "npm": ">=7.0.0" @@ -1365,7 +1480,8 @@ }, "node_modules/@libp2p/delegated-peer-routing": { "version": "3.0.1", - "license": "Apache-2.0 OR MIT", + "resolved": "https://registry.npmjs.org/@libp2p/delegated-peer-routing/-/delegated-peer-routing-3.0.1.tgz", + "integrity": "sha512-qD082tKPThlKNYVmmLV95uRQzDJkekTKp96J7NZjrUEFx7S6a2l7kVvxvh+cGNF3l5lqvVnA35VSE4pljcxPzA==", "dependencies": { "@libp2p/interface-peer-id": "^1.0.2", "@libp2p/interface-peer-info": "^1.0.1", @@ -1386,7 +1502,8 @@ }, "node_modules/@libp2p/delegated-peer-routing/node_modules/@libp2p/interface-peer-id": { "version": "1.1.2", - "license": "Apache-2.0 OR MIT", + "resolved": "https://registry.npmjs.org/@libp2p/interface-peer-id/-/interface-peer-id-1.1.2.tgz", + "integrity": "sha512-S5iyVzG2EUgxm4NLe8W4ya9kpKuGfHs7Wbbos0wOUB4GXsbIKgOOxIr4yf+xGFgtEBaoximvlLkpob6dn8VFgA==", "dependencies": { "multiformats": "^10.0.0" }, @@ -1397,7 +1514,8 @@ }, "node_modules/@libp2p/delegated-peer-routing/node_modules/multiformats": { "version": "10.0.3", - "license": "Apache-2.0 OR MIT", + "resolved": "https://registry.npmjs.org/multiformats/-/multiformats-10.0.3.tgz", + "integrity": "sha512-K2yGSmstS/oEmYiEIieHb53jJCaqp4ERPDQAYrm5sV3UUrVDZeshJQCK6GHAKyIGufU1vAcbS0PdAAZmC7Tzcw==", "engines": { "node": ">=16.0.0", "npm": ">=7.0.0" @@ -1405,7 +1523,8 @@ }, "node_modules/@libp2p/floodsub": { "version": "5.0.0", - "license": "Apache-2.0 OR MIT", + "resolved": "https://registry.npmjs.org/@libp2p/floodsub/-/floodsub-5.0.0.tgz", + "integrity": "sha512-B39UW/AWgfVVUl2yJDardmL2kKo1Zd4E+11/rkyjnjbygh944DTLcp3B2gSarqRlyN+x4ChUTKiN75UGajOaog==", "dependencies": { "@libp2p/interface-peer-id": "^1.0.2", "@libp2p/interface-pubsub": "^3.0.0", @@ -1422,7 +1541,8 @@ }, "node_modules/@libp2p/floodsub/node_modules/@libp2p/interface-peer-id": { "version": "1.1.2", - "license": "Apache-2.0 OR MIT", + "resolved": "https://registry.npmjs.org/@libp2p/interface-peer-id/-/interface-peer-id-1.1.2.tgz", + "integrity": "sha512-S5iyVzG2EUgxm4NLe8W4ya9kpKuGfHs7Wbbos0wOUB4GXsbIKgOOxIr4yf+xGFgtEBaoximvlLkpob6dn8VFgA==", "dependencies": { "multiformats": "^10.0.0" }, @@ -1433,7 +1553,8 @@ }, "node_modules/@libp2p/floodsub/node_modules/@libp2p/pubsub": { "version": "5.0.1", - "license": "Apache-2.0 OR MIT", + "resolved": "https://registry.npmjs.org/@libp2p/pubsub/-/pubsub-5.0.1.tgz", + "integrity": "sha512-pQNpUC6KWDKCm7A9bv4tT2t3a7a4IpJdfzHsRBjAaKEcIRgP/s/q0Xn8ySdcggg1fvdjMp5VY6NfuuRbSCu9LA==", "dependencies": { "@libp2p/crypto": "^1.0.0", "@libp2p/interface-connection": "^3.0.1", @@ -1463,7 +1584,8 @@ }, "node_modules/@libp2p/floodsub/node_modules/multiformats": { "version": "10.0.3", - "license": "Apache-2.0 OR MIT", + "resolved": "https://registry.npmjs.org/multiformats/-/multiformats-10.0.3.tgz", + "integrity": "sha512-K2yGSmstS/oEmYiEIieHb53jJCaqp4ERPDQAYrm5sV3UUrVDZeshJQCK6GHAKyIGufU1vAcbS0PdAAZmC7Tzcw==", "engines": { "node": ">=16.0.0", "npm": ">=7.0.0" @@ -1471,7 +1593,8 @@ }, "node_modules/@libp2p/interface-address-manager": { "version": "2.0.3", - "license": "Apache-2.0 OR MIT", + "resolved": "https://registry.npmjs.org/@libp2p/interface-address-manager/-/interface-address-manager-2.0.3.tgz", + "integrity": "sha512-SR0JeXpTAHP+MLLWI1wYTFPJC5kl7NkDIxhZcgkCUyh8/Y3G6FBFa5MocVy3eW+Fd0iETYfxl+Gsk75JdERIdA==", "dependencies": { "@libp2p/interfaces": "^3.0.0", "@multiformats/multiaddr": "^11.0.0" @@ -1483,7 +1606,8 @@ }, "node_modules/@libp2p/interface-connection": { "version": "3.0.7", - "license": "Apache-2.0 OR MIT", + "resolved": "https://registry.npmjs.org/@libp2p/interface-connection/-/interface-connection-3.0.7.tgz", + "integrity": "sha512-MBDrGlrSO1nL1DqqjNQzZSjcY2tobo6BOo9DxCFbaESiK7u1YLBNo9Amd0o5bPpFjez+O/VSasz9x3SQpHU1qQ==", "dependencies": { "@libp2p/interface-peer-id": "^2.0.0", "@libp2p/interfaces": "^3.0.0", @@ -1498,7 +1622,8 @@ }, "node_modules/@libp2p/interface-connection-encrypter": { "version": "3.0.5", - "license": "Apache-2.0 OR MIT", + "resolved": "https://registry.npmjs.org/@libp2p/interface-connection-encrypter/-/interface-connection-encrypter-3.0.5.tgz", + "integrity": "sha512-Mn905Cc6xgGYlU3iQqypd/blWqmznaITYpPZz417Xgdg274OtBk9xFU4IhnUsAfRtXOTZtN3u+4tdk0mx/N+/w==", "dependencies": { "@libp2p/interface-peer-id": "^2.0.0", "it-stream-types": "^1.0.4", @@ -1511,7 +1636,8 @@ }, "node_modules/@libp2p/interface-connection-manager": { "version": "1.3.5", - "license": "Apache-2.0 OR MIT", + "resolved": "https://registry.npmjs.org/@libp2p/interface-connection-manager/-/interface-connection-manager-1.3.5.tgz", + "integrity": "sha512-vEqrLk0TDX7Eg91JIsgit3bBLr+ABXjGru9Ejd6RpD5dLVcFClneevpYt3TtWT/sJO2dQOdmO6VVmiyHCm/glQ==", "dependencies": { "@libp2p/interface-connection": "^3.0.0", "@libp2p/interface-peer-id": "^2.0.0", @@ -1525,7 +1651,8 @@ }, "node_modules/@libp2p/interface-content-routing": { "version": "1.0.7", - "license": "Apache-2.0 OR MIT", + "resolved": "https://registry.npmjs.org/@libp2p/interface-content-routing/-/interface-content-routing-1.0.7.tgz", + "integrity": "sha512-10MgDDwhS3uBaEppViBtJEVjgZohAKNLaGnzHPej0ByfnESI8DFlgpMOZVOMUlW/NpLOXxqrYuHALefuDWfqmw==", "dependencies": { "@libp2p/interface-peer-info": "^1.0.0", "@libp2p/interfaces": "^3.0.0", @@ -1538,7 +1665,8 @@ }, "node_modules/@libp2p/interface-content-routing/node_modules/multiformats": { "version": "10.0.3", - "license": "Apache-2.0 OR MIT", + "resolved": "https://registry.npmjs.org/multiformats/-/multiformats-10.0.3.tgz", + "integrity": "sha512-K2yGSmstS/oEmYiEIieHb53jJCaqp4ERPDQAYrm5sV3UUrVDZeshJQCK6GHAKyIGufU1vAcbS0PdAAZmC7Tzcw==", "engines": { "node": ">=16.0.0", "npm": ">=7.0.0" @@ -1546,7 +1674,8 @@ }, "node_modules/@libp2p/interface-dht": { "version": "1.0.5", - "license": "Apache-2.0 OR MIT", + "resolved": "https://registry.npmjs.org/@libp2p/interface-dht/-/interface-dht-1.0.5.tgz", + "integrity": "sha512-kqcHpv0VlhZbHNXVou6qOFw3UUtJBlsJi641Jh6BUZouoej8b2wp/TacOuiHvC6Uy8ACanzprzVG1Rk01mgZwA==", "dependencies": { "@libp2p/interface-peer-discovery": "^1.0.0", "@libp2p/interface-peer-id": "^1.0.0", @@ -1561,7 +1690,8 @@ }, "node_modules/@libp2p/interface-dht/node_modules/@libp2p/interface-peer-id": { "version": "1.1.2", - "license": "Apache-2.0 OR MIT", + "resolved": "https://registry.npmjs.org/@libp2p/interface-peer-id/-/interface-peer-id-1.1.2.tgz", + "integrity": "sha512-S5iyVzG2EUgxm4NLe8W4ya9kpKuGfHs7Wbbos0wOUB4GXsbIKgOOxIr4yf+xGFgtEBaoximvlLkpob6dn8VFgA==", "dependencies": { "multiformats": "^10.0.0" }, @@ -1572,7 +1702,8 @@ }, "node_modules/@libp2p/interface-dht/node_modules/multiformats": { "version": "10.0.3", - "license": "Apache-2.0 OR MIT", + "resolved": "https://registry.npmjs.org/multiformats/-/multiformats-10.0.3.tgz", + "integrity": "sha512-K2yGSmstS/oEmYiEIieHb53jJCaqp4ERPDQAYrm5sV3UUrVDZeshJQCK6GHAKyIGufU1vAcbS0PdAAZmC7Tzcw==", "engines": { "node": ">=16.0.0", "npm": ">=7.0.0" @@ -1580,7 +1711,8 @@ }, "node_modules/@libp2p/interface-keychain": { "version": "1.0.8", - "license": "Apache-2.0 OR MIT", + "resolved": "https://registry.npmjs.org/@libp2p/interface-keychain/-/interface-keychain-1.0.8.tgz", + "integrity": "sha512-JqI7mMthIafP8cGhhsmIs/M0Ey+ivHLcpzqbVVzMFiFVi1dC03R7EHlalcaPn8yaLSvlmI0MqjC8lJYuvlFjfw==", "dependencies": { "multiformats": "^10.0.0" }, @@ -1591,7 +1723,8 @@ }, "node_modules/@libp2p/interface-keychain/node_modules/multiformats": { "version": "10.0.3", - "license": "Apache-2.0 OR MIT", + "resolved": "https://registry.npmjs.org/multiformats/-/multiformats-10.0.3.tgz", + "integrity": "sha512-K2yGSmstS/oEmYiEIieHb53jJCaqp4ERPDQAYrm5sV3UUrVDZeshJQCK6GHAKyIGufU1vAcbS0PdAAZmC7Tzcw==", "engines": { "node": ">=16.0.0", "npm": ">=7.0.0" @@ -1599,7 +1732,8 @@ }, "node_modules/@libp2p/interface-keys": { "version": "1.0.6", - "license": "Apache-2.0 OR MIT", + "resolved": "https://registry.npmjs.org/@libp2p/interface-keys/-/interface-keys-1.0.6.tgz", + "integrity": "sha512-cYe8DyKONA4TFdjEnPTPSWRntBH5+MMzivjtduVQukv7aO6PpihBF4PixzhKds+ciR2TMIkGXPsDaehmmU0Mqw==", "engines": { "node": ">=16.0.0", "npm": ">=7.0.0" @@ -1607,7 +1741,8 @@ }, "node_modules/@libp2p/interface-metrics": { "version": "4.0.4", - "license": "Apache-2.0 OR MIT", + "resolved": "https://registry.npmjs.org/@libp2p/interface-metrics/-/interface-metrics-4.0.4.tgz", + "integrity": "sha512-XgXsPyRaTpEbmDhm1nA+zH+XjBb33PODTAo2foIcB5xGx7ZJBZgzZGFVyUc2uxRSBwZlFQ3HvsN60R97oQc4ww==", "dependencies": { "@libp2p/interface-connection": "^3.0.0" }, @@ -1618,7 +1753,8 @@ }, "node_modules/@libp2p/interface-peer-discovery": { "version": "1.0.4", - "license": "Apache-2.0 OR MIT", + "resolved": "https://registry.npmjs.org/@libp2p/interface-peer-discovery/-/interface-peer-discovery-1.0.4.tgz", + "integrity": "sha512-VPLi7onA+WOjYFYH79Qq2hqR+b+OLqTRom5WJaAXv6pclFb1gUetBv4W1MEHY8Hb7l1MidANO/kSySHZ5A3yPg==", "dependencies": { "@libp2p/interface-peer-info": "^1.0.0", "@libp2p/interfaces": "^3.0.0" @@ -1630,7 +1766,8 @@ }, "node_modules/@libp2p/interface-peer-id": { "version": "2.0.0", - "license": "Apache-2.0 OR MIT", + "resolved": "https://registry.npmjs.org/@libp2p/interface-peer-id/-/interface-peer-id-2.0.0.tgz", + "integrity": "sha512-TZmJy/tfWNvX/n1TWby6V+LP9Pg3ZYJbSkqQfnqp/hCCN3Xhd2KrDTm4LWq5MMunr4Xk9xLUJdK41W2wUF7OQw==", "dependencies": { "multiformats": "^11.0.0" }, @@ -1641,7 +1778,8 @@ }, "node_modules/@libp2p/interface-peer-info": { "version": "1.0.7", - "license": "Apache-2.0 OR MIT", + "resolved": "https://registry.npmjs.org/@libp2p/interface-peer-info/-/interface-peer-info-1.0.7.tgz", + "integrity": "sha512-aVI4ii1DFBF1dmQM5uemtO/qxNedCREzBtt2kAQtusN55BKT9GOlBSme+xTYpXw63iDrbtLXgJH+gNPoPkwJeQ==", "dependencies": { "@libp2p/interface-peer-id": "^2.0.0", "@multiformats/multiaddr": "^11.0.0" @@ -1653,7 +1791,8 @@ }, "node_modules/@libp2p/interface-peer-routing": { "version": "1.0.6", - "license": "Apache-2.0 OR MIT", + "resolved": "https://registry.npmjs.org/@libp2p/interface-peer-routing/-/interface-peer-routing-1.0.6.tgz", + "integrity": "sha512-GfrJv+UmcQ6UIwHHSOZ3cW8XBHBCG2Hu+zxB+NNwzWo+hYHrcyTx50e0MFsVcIkGxAE8Aup/URdOWvZjSn76xw==", "dependencies": { "@libp2p/interface-peer-id": "^2.0.0", "@libp2p/interface-peer-info": "^1.0.0", @@ -1666,7 +1805,8 @@ }, "node_modules/@libp2p/interface-peer-store": { "version": "1.2.7", - "license": "Apache-2.0 OR MIT", + "resolved": "https://registry.npmjs.org/@libp2p/interface-peer-store/-/interface-peer-store-1.2.7.tgz", + "integrity": "sha512-ZgvtmFyj0wxg1XuiYgxN2+D45XDbzmBNVcFHoM2x+mV0SDuzbn3rfxZbV9a0hVrDQyW/eTFwbzIjtdPsGZwgqA==", "dependencies": { "@libp2p/interface-peer-id": "^2.0.0", "@libp2p/interface-peer-info": "^1.0.0", @@ -1681,7 +1821,8 @@ }, "node_modules/@libp2p/interface-pubsub": { "version": "3.0.5", - "license": "Apache-2.0 OR MIT", + "resolved": "https://registry.npmjs.org/@libp2p/interface-pubsub/-/interface-pubsub-3.0.5.tgz", + "integrity": "sha512-+DsqrkDeYBuokMCuqLvlsdq4D/Tcs9bwSHeNUw1V88ffZE+pqmMIYntyIpFoI4SCLOxqB8U1B5yAlF/OBuJFSw==", "dependencies": { "@libp2p/interface-connection": "^3.0.0", "@libp2p/interface-peer-id": "^2.0.0", @@ -1696,7 +1837,8 @@ }, "node_modules/@libp2p/interface-record": { "version": "2.0.5", - "license": "Apache-2.0 OR MIT", + "resolved": "https://registry.npmjs.org/@libp2p/interface-record/-/interface-record-2.0.5.tgz", + "integrity": "sha512-QWsGP/wmGSM5qHvmBz6HOzpjICQ96/fQxLeAriR0QQdfQTX7g0IkrIncrck7Aagoa5RzXDt4chhGLOj/G9G1pg==", "dependencies": { "@libp2p/interface-peer-id": "^2.0.0", "uint8arraylist": "^2.1.2" @@ -1708,7 +1850,8 @@ }, "node_modules/@libp2p/interface-registrar": { "version": "2.0.7", - "license": "Apache-2.0 OR MIT", + "resolved": "https://registry.npmjs.org/@libp2p/interface-registrar/-/interface-registrar-2.0.7.tgz", + "integrity": "sha512-lNgWJHzESbmpk0Yatr6ZfCV2Mwnc94/eCe5krHEqRSB0Yu3FOtv/xPNnXcZtE2fghPKEuwL4MnyiT/MozgVClQ==", "dependencies": { "@libp2p/interface-connection": "^3.0.0", "@libp2p/interface-peer-id": "^2.0.0" @@ -1720,7 +1863,8 @@ }, "node_modules/@libp2p/interface-stream-muxer": { "version": "3.0.4", - "license": "Apache-2.0 OR MIT", + "resolved": "https://registry.npmjs.org/@libp2p/interface-stream-muxer/-/interface-stream-muxer-3.0.4.tgz", + "integrity": "sha512-AxqbBmOmxruAyIzscZOK5BwbKP6RscQToT4RielMh6JSsXDInDpAFcpa8qfQrb14mYIwIvQA4FzTaMMbNdDtew==", "dependencies": { "@libp2p/interface-connection": "^3.0.0", "@libp2p/interfaces": "^3.0.0", @@ -1733,7 +1877,8 @@ }, "node_modules/@libp2p/interface-transport": { "version": "2.1.0", - "license": "Apache-2.0 OR MIT", + "resolved": "https://registry.npmjs.org/@libp2p/interface-transport/-/interface-transport-2.1.0.tgz", + "integrity": "sha512-Ffx71dzgqCek7g1/LYGRvg7E2zrPQ+YmsYDcFqL39YRyV7q7dTWmcpVAZdTIOaDviorZn1t3c31AAA9xFewx8A==", "dependencies": { "@libp2p/interface-connection": "^3.0.0", "@libp2p/interface-stream-muxer": "^3.0.0", @@ -1748,7 +1893,8 @@ }, "node_modules/@libp2p/interfaces": { "version": "3.2.0", - "license": "Apache-2.0 OR MIT", + "resolved": "https://registry.npmjs.org/@libp2p/interfaces/-/interfaces-3.2.0.tgz", + "integrity": "sha512-lIVeMMv/TGcN4k5qfe1ZMwUvZTwWqLs7atxuoNdZ7lEPye94XNuHQj2WXoF9nEELkGKevpUJs/OB+gldl9MuFA==", "engines": { "node": ">=16.0.0", "npm": ">=7.0.0" @@ -1756,7 +1902,8 @@ }, "node_modules/@libp2p/kad-dht": { "version": "5.0.2", - "license": "Apache-2.0 OR MIT", + "resolved": "https://registry.npmjs.org/@libp2p/kad-dht/-/kad-dht-5.0.2.tgz", + "integrity": "sha512-Z9f1d3DlYnt3tfF6EBSqPvsB9pnm0qs7zvIk2CdRX5vdLy//IOenepcYfgaC4nDnD/ambELq7VSdGQizGG8S5w==", "dependencies": { "@libp2p/crypto": "^1.0.4", "@libp2p/interface-address-manager": "^2.0.0", @@ -1811,7 +1958,8 @@ }, "node_modules/@libp2p/kad-dht/node_modules/@libp2p/interface-metrics": { "version": "3.0.0", - "license": "Apache-2.0 OR MIT", + "resolved": "https://registry.npmjs.org/@libp2p/interface-metrics/-/interface-metrics-3.0.0.tgz", + "integrity": "sha512-TxK63BrDalv0yW544608xfmg3rsbh31ykZzf7I1yjMCZpyIFOqLTH1WN4YQwXKNlMz/XURux99UTpGSRYl3nOA==", "dependencies": { "@libp2p/interface-peer-id": "^1.0.0", "it-stream-types": "^1.0.4" @@ -1823,7 +1971,8 @@ }, "node_modules/@libp2p/kad-dht/node_modules/@libp2p/interface-peer-id": { "version": "1.1.2", - "license": "Apache-2.0 OR MIT", + "resolved": "https://registry.npmjs.org/@libp2p/interface-peer-id/-/interface-peer-id-1.1.2.tgz", + "integrity": "sha512-S5iyVzG2EUgxm4NLe8W4ya9kpKuGfHs7Wbbos0wOUB4GXsbIKgOOxIr4yf+xGFgtEBaoximvlLkpob6dn8VFgA==", "dependencies": { "multiformats": "^10.0.0" }, @@ -1834,7 +1983,8 @@ }, "node_modules/@libp2p/kad-dht/node_modules/multiformats": { "version": "10.0.3", - "license": "Apache-2.0 OR MIT", + "resolved": "https://registry.npmjs.org/multiformats/-/multiformats-10.0.3.tgz", + "integrity": "sha512-K2yGSmstS/oEmYiEIieHb53jJCaqp4ERPDQAYrm5sV3UUrVDZeshJQCK6GHAKyIGufU1vAcbS0PdAAZmC7Tzcw==", "engines": { "node": ">=16.0.0", "npm": ">=7.0.0" @@ -1842,7 +1992,8 @@ }, "node_modules/@libp2p/logger": { "version": "2.0.5", - "license": "Apache-2.0 OR MIT", + "resolved": "https://registry.npmjs.org/@libp2p/logger/-/logger-2.0.5.tgz", + "integrity": "sha512-WEhxsc7+gsfuTcljI4vSgW/H2f18aBaC+JiO01FcX841Wxe9szjzHdBLDh9eqygUlzoK0LEeIBfctN7ibzus5A==", "dependencies": { "@libp2p/interface-peer-id": "^2.0.0", "debug": "^4.3.3", @@ -1856,7 +2007,8 @@ }, "node_modules/@libp2p/mdns": { "version": "5.1.1", - "license": "Apache-2.0 OR MIT", + "resolved": "https://registry.npmjs.org/@libp2p/mdns/-/mdns-5.1.1.tgz", + "integrity": "sha512-fLNcKHtJ1VfAdUHrqLHMiCLrpsWGk8OkZYQN8spwZ1MiX38jqEh5jbPF/m6YmMxnj7UGmaFOnaMhHdhMXWJSvQ==", "dependencies": { "@libp2p/interface-peer-discovery": "^1.0.1", "@libp2p/interface-peer-id": "^1.0.4", @@ -1876,7 +2028,8 @@ }, "node_modules/@libp2p/mdns/node_modules/@libp2p/interface-peer-id": { "version": "1.1.2", - "license": "Apache-2.0 OR MIT", + "resolved": "https://registry.npmjs.org/@libp2p/interface-peer-id/-/interface-peer-id-1.1.2.tgz", + "integrity": "sha512-S5iyVzG2EUgxm4NLe8W4ya9kpKuGfHs7Wbbos0wOUB4GXsbIKgOOxIr4yf+xGFgtEBaoximvlLkpob6dn8VFgA==", "dependencies": { "multiformats": "^10.0.0" }, @@ -1887,7 +2040,8 @@ }, "node_modules/@libp2p/mdns/node_modules/multiformats": { "version": "10.0.3", - "license": "Apache-2.0 OR MIT", + "resolved": "https://registry.npmjs.org/multiformats/-/multiformats-10.0.3.tgz", + "integrity": "sha512-K2yGSmstS/oEmYiEIieHb53jJCaqp4ERPDQAYrm5sV3UUrVDZeshJQCK6GHAKyIGufU1vAcbS0PdAAZmC7Tzcw==", "engines": { "node": ">=16.0.0", "npm": ">=7.0.0" @@ -1895,7 +2049,8 @@ }, "node_modules/@libp2p/mplex": { "version": "7.1.1", - "license": "Apache-2.0 OR MIT", + "resolved": "https://registry.npmjs.org/@libp2p/mplex/-/mplex-7.1.1.tgz", + "integrity": "sha512-0owK1aWgXXtjiohXtjwLV7Ehjdj96eBtsapVt7AzlHA+W8uYnI+x058thq3MisyMDlHiiE3BTh6fEf+t2/0dUw==", "dependencies": { "@libp2p/interface-connection": "^3.0.1", "@libp2p/interface-stream-muxer": "^3.0.0", @@ -1919,7 +2074,8 @@ }, "node_modules/@libp2p/multistream-select": { "version": "3.1.2", - "license": "Apache-2.0 OR MIT", + "resolved": "https://registry.npmjs.org/@libp2p/multistream-select/-/multistream-select-3.1.2.tgz", + "integrity": "sha512-NfF0fwQM4sqiLuNGBVc9z2mfz3OigOfyLJ5zekRBGYHkbKWrBRFS3FligUPr9roCOzH6ojjDkKVd5aK9/llfJQ==", "dependencies": { "@libp2p/interfaces": "^3.0.2", "@libp2p/logger": "^2.0.0", @@ -1944,7 +2100,8 @@ }, "node_modules/@libp2p/peer-collections": { "version": "2.2.2", - "license": "Apache-2.0 OR MIT", + "resolved": "https://registry.npmjs.org/@libp2p/peer-collections/-/peer-collections-2.2.2.tgz", + "integrity": "sha512-sL1A0LBHJAlvqROe+OT61Y6Rg7ff+B+YNDZj+3f/LGvDssyffAQX78cXU+lWKPsT+AwHt7Sk7sO4CsYJbdOScQ==", "dependencies": { "@libp2p/interface-peer-id": "^1.0.4", "@libp2p/peer-id": "^1.1.0" @@ -1956,7 +2113,8 @@ }, "node_modules/@libp2p/peer-collections/node_modules/@libp2p/interface-peer-id": { "version": "1.1.2", - "license": "Apache-2.0 OR MIT", + "resolved": "https://registry.npmjs.org/@libp2p/interface-peer-id/-/interface-peer-id-1.1.2.tgz", + "integrity": "sha512-S5iyVzG2EUgxm4NLe8W4ya9kpKuGfHs7Wbbos0wOUB4GXsbIKgOOxIr4yf+xGFgtEBaoximvlLkpob6dn8VFgA==", "dependencies": { "multiformats": "^10.0.0" }, @@ -1967,7 +2125,8 @@ }, "node_modules/@libp2p/peer-collections/node_modules/multiformats": { "version": "10.0.3", - "license": "Apache-2.0 OR MIT", + "resolved": "https://registry.npmjs.org/multiformats/-/multiformats-10.0.3.tgz", + "integrity": "sha512-K2yGSmstS/oEmYiEIieHb53jJCaqp4ERPDQAYrm5sV3UUrVDZeshJQCK6GHAKyIGufU1vAcbS0PdAAZmC7Tzcw==", "engines": { "node": ">=16.0.0", "npm": ">=7.0.0" @@ -1975,7 +2134,8 @@ }, "node_modules/@libp2p/peer-id": { "version": "1.1.18", - "license": "Apache-2.0 OR MIT", + "resolved": "https://registry.npmjs.org/@libp2p/peer-id/-/peer-id-1.1.18.tgz", + "integrity": "sha512-Zh3gzbrQZKDMLpoJAJB8gdGtyYFSBKV0dU5vflQ18/7MJDJmjsgKO+sJTYi72yN5sWREs1eGKMhxLo+N1ust5w==", "dependencies": { "@libp2p/interface-peer-id": "^1.0.0", "err-code": "^3.0.1", @@ -1989,7 +2149,8 @@ }, "node_modules/@libp2p/peer-id-factory": { "version": "1.0.20", - "license": "Apache-2.0 OR MIT", + "resolved": "https://registry.npmjs.org/@libp2p/peer-id-factory/-/peer-id-factory-1.0.20.tgz", + "integrity": "sha512-+fHhbmDK9Ws6Dmj2ZmfrQouQTZEbTS3FCi3nUDJnnjIS95+radaP085IVkNJYJeeWpxJV90D4EUwtoy83PaoCw==", "dependencies": { "@libp2p/crypto": "^1.0.0", "@libp2p/interface-keys": "^1.0.2", @@ -2007,7 +2168,8 @@ }, "node_modules/@libp2p/peer-id-factory/node_modules/@libp2p/interface-peer-id": { "version": "1.1.2", - "license": "Apache-2.0 OR MIT", + "resolved": "https://registry.npmjs.org/@libp2p/interface-peer-id/-/interface-peer-id-1.1.2.tgz", + "integrity": "sha512-S5iyVzG2EUgxm4NLe8W4ya9kpKuGfHs7Wbbos0wOUB4GXsbIKgOOxIr4yf+xGFgtEBaoximvlLkpob6dn8VFgA==", "dependencies": { "multiformats": "^10.0.0" }, @@ -2018,7 +2180,8 @@ }, "node_modules/@libp2p/peer-id-factory/node_modules/multiformats": { "version": "10.0.3", - "license": "Apache-2.0 OR MIT", + "resolved": "https://registry.npmjs.org/multiformats/-/multiformats-10.0.3.tgz", + "integrity": "sha512-K2yGSmstS/oEmYiEIieHb53jJCaqp4ERPDQAYrm5sV3UUrVDZeshJQCK6GHAKyIGufU1vAcbS0PdAAZmC7Tzcw==", "engines": { "node": ">=16.0.0", "npm": ">=7.0.0" @@ -2026,7 +2189,8 @@ }, "node_modules/@libp2p/peer-id/node_modules/@libp2p/interface-peer-id": { "version": "1.1.2", - "license": "Apache-2.0 OR MIT", + "resolved": "https://registry.npmjs.org/@libp2p/interface-peer-id/-/interface-peer-id-1.1.2.tgz", + "integrity": "sha512-S5iyVzG2EUgxm4NLe8W4ya9kpKuGfHs7Wbbos0wOUB4GXsbIKgOOxIr4yf+xGFgtEBaoximvlLkpob6dn8VFgA==", "dependencies": { "multiformats": "^10.0.0" }, @@ -2037,7 +2201,8 @@ }, "node_modules/@libp2p/peer-id/node_modules/multiformats": { "version": "10.0.3", - "license": "Apache-2.0 OR MIT", + "resolved": "https://registry.npmjs.org/multiformats/-/multiformats-10.0.3.tgz", + "integrity": "sha512-K2yGSmstS/oEmYiEIieHb53jJCaqp4ERPDQAYrm5sV3UUrVDZeshJQCK6GHAKyIGufU1vAcbS0PdAAZmC7Tzcw==", "engines": { "node": ">=16.0.0", "npm": ">=7.0.0" @@ -2045,7 +2210,8 @@ }, "node_modules/@libp2p/peer-record": { "version": "4.0.5", - "license": "Apache-2.0 OR MIT", + "resolved": "https://registry.npmjs.org/@libp2p/peer-record/-/peer-record-4.0.5.tgz", + "integrity": "sha512-o4v6N5B0hsx94TnSkLD7v8GmyQ/pNJbhy+pY8YDsmPhcwAGTnpRdlxWZraMBz8ut+vGoD7E34IdMMgJX/tgAJA==", "dependencies": { "@libp2p/crypto": "^1.0.0", "@libp2p/interface-peer-id": "^1.0.2", @@ -2075,7 +2241,8 @@ }, "node_modules/@libp2p/peer-record/node_modules/@libp2p/interface-peer-id": { "version": "1.1.2", - "license": "Apache-2.0 OR MIT", + "resolved": "https://registry.npmjs.org/@libp2p/interface-peer-id/-/interface-peer-id-1.1.2.tgz", + "integrity": "sha512-S5iyVzG2EUgxm4NLe8W4ya9kpKuGfHs7Wbbos0wOUB4GXsbIKgOOxIr4yf+xGFgtEBaoximvlLkpob6dn8VFgA==", "dependencies": { "multiformats": "^10.0.0" }, @@ -2086,7 +2253,8 @@ }, "node_modules/@libp2p/peer-record/node_modules/multiformats": { "version": "10.0.3", - "license": "Apache-2.0 OR MIT", + "resolved": "https://registry.npmjs.org/multiformats/-/multiformats-10.0.3.tgz", + "integrity": "sha512-K2yGSmstS/oEmYiEIieHb53jJCaqp4ERPDQAYrm5sV3UUrVDZeshJQCK6GHAKyIGufU1vAcbS0PdAAZmC7Tzcw==", "engines": { "node": ">=16.0.0", "npm": ">=7.0.0" @@ -2094,7 +2262,8 @@ }, "node_modules/@libp2p/peer-store": { "version": "5.0.1", - "license": "Apache-2.0 OR MIT", + "resolved": "https://registry.npmjs.org/@libp2p/peer-store/-/peer-store-5.0.1.tgz", + "integrity": "sha512-TeHxy5Qv+KzajbEZH1wdE6ubk8G7IUyU+Dyl4W06unZpxq6rD+OTnCkvYuEdglROUxmvSBEkFqJnxV6xgVBWJA==", "dependencies": { "@libp2p/interface-peer-id": "^1.0.4", "@libp2p/interface-peer-info": "^1.0.3", @@ -2125,7 +2294,8 @@ }, "node_modules/@libp2p/peer-store/node_modules/@libp2p/interface-peer-id": { "version": "1.1.2", - "license": "Apache-2.0 OR MIT", + "resolved": "https://registry.npmjs.org/@libp2p/interface-peer-id/-/interface-peer-id-1.1.2.tgz", + "integrity": "sha512-S5iyVzG2EUgxm4NLe8W4ya9kpKuGfHs7Wbbos0wOUB4GXsbIKgOOxIr4yf+xGFgtEBaoximvlLkpob6dn8VFgA==", "dependencies": { "multiformats": "^10.0.0" }, @@ -2136,7 +2306,8 @@ }, "node_modules/@libp2p/peer-store/node_modules/multiformats": { "version": "10.0.3", - "license": "Apache-2.0 OR MIT", + "resolved": "https://registry.npmjs.org/multiformats/-/multiformats-10.0.3.tgz", + "integrity": "sha512-K2yGSmstS/oEmYiEIieHb53jJCaqp4ERPDQAYrm5sV3UUrVDZeshJQCK6GHAKyIGufU1vAcbS0PdAAZmC7Tzcw==", "engines": { "node": ">=16.0.0", "npm": ">=7.0.0" @@ -2144,7 +2315,8 @@ }, "node_modules/@libp2p/pubsub": { "version": "3.1.3", - "license": "Apache-2.0 OR MIT", + "resolved": "https://registry.npmjs.org/@libp2p/pubsub/-/pubsub-3.1.3.tgz", + "integrity": "sha512-lo3Ay3NHdll2Wt0kzs2RNyWagyECGDx7d4dyKwGQgzhZyoy3FnYQW8vbMLyLLX1FV9DSiWEbFsBxX2MKJXUMyQ==", "dependencies": { "@libp2p/components": "^2.0.0", "@libp2p/crypto": "^1.0.0", @@ -2175,7 +2347,8 @@ }, "node_modules/@libp2p/pubsub/node_modules/@libp2p/interface-peer-id": { "version": "1.1.2", - "license": "Apache-2.0 OR MIT", + "resolved": "https://registry.npmjs.org/@libp2p/interface-peer-id/-/interface-peer-id-1.1.2.tgz", + "integrity": "sha512-S5iyVzG2EUgxm4NLe8W4ya9kpKuGfHs7Wbbos0wOUB4GXsbIKgOOxIr4yf+xGFgtEBaoximvlLkpob6dn8VFgA==", "dependencies": { "multiformats": "^10.0.0" }, @@ -2186,7 +2359,8 @@ }, "node_modules/@libp2p/pubsub/node_modules/@libp2p/interface-peer-id/node_modules/multiformats": { "version": "10.0.3", - "license": "Apache-2.0 OR MIT", + "resolved": "https://registry.npmjs.org/multiformats/-/multiformats-10.0.3.tgz", + "integrity": "sha512-K2yGSmstS/oEmYiEIieHb53jJCaqp4ERPDQAYrm5sV3UUrVDZeshJQCK6GHAKyIGufU1vAcbS0PdAAZmC7Tzcw==", "engines": { "node": ">=16.0.0", "npm": ">=7.0.0" @@ -2194,7 +2368,8 @@ }, "node_modules/@libp2p/pubsub/node_modules/@libp2p/interface-pubsub": { "version": "2.1.0", - "license": "Apache-2.0 OR MIT", + "resolved": "https://registry.npmjs.org/@libp2p/interface-pubsub/-/interface-pubsub-2.1.0.tgz", + "integrity": "sha512-X+SIqzfeCO8ZDGrFTzH9EMwMf8ojW5nk20rxv3h1sCXEdfvyJCARZ51r9UlwJcnucnHqvFChfkbubAkrr3R4Cw==", "dependencies": { "@libp2p/interface-connection": "^3.0.0", "@libp2p/interface-peer-id": "^1.0.0", @@ -2209,18 +2384,21 @@ }, "node_modules/@libp2p/pubsub/node_modules/multiformats": { "version": "9.9.0", - "license": "(Apache-2.0 AND MIT)" + "resolved": "https://registry.npmjs.org/multiformats/-/multiformats-9.9.0.tgz", + "integrity": "sha512-HoMUjhH9T8DDBNT+6xzkrd9ga/XiBI4xLr58LJACwK6G3HTOPeMz4nB4KJs33L2BelrIJa7P0VuNaVF3hMYfjg==" }, "node_modules/@libp2p/pubsub/node_modules/uint8arrays": { "version": "3.1.1", - "license": "MIT", + "resolved": "https://registry.npmjs.org/uint8arrays/-/uint8arrays-3.1.1.tgz", + "integrity": "sha512-+QJa8QRnbdXVpHYjLoTpJIdCTiw9Ir62nocClWuXIq2JIh4Uta0cQsTSpFL678p2CN8B+XSApwcU+pQEqVpKWg==", "dependencies": { "multiformats": "^9.4.2" } }, "node_modules/@libp2p/record": { "version": "2.0.4", - "license": "Apache-2.0 OR MIT", + "resolved": "https://registry.npmjs.org/@libp2p/record/-/record-2.0.4.tgz", + "integrity": "sha512-BLdw/zDh4Nq65nKD/BRKad7++h2pPwY7IxoZNyEN4uvCo6knmfTSlKwqlw4NCYaH27YcupXrhKZ2WAoYjt5ACw==", "dependencies": { "@libp2p/interface-dht": "^1.0.0", "err-code": "^3.0.1", @@ -2236,7 +2414,8 @@ }, "node_modules/@libp2p/record/node_modules/multiformats": { "version": "10.0.3", - "license": "Apache-2.0 OR MIT", + "resolved": "https://registry.npmjs.org/multiformats/-/multiformats-10.0.3.tgz", + "integrity": "sha512-K2yGSmstS/oEmYiEIieHb53jJCaqp4ERPDQAYrm5sV3UUrVDZeshJQCK6GHAKyIGufU1vAcbS0PdAAZmC7Tzcw==", "engines": { "node": ">=16.0.0", "npm": ">=7.0.0" @@ -2244,7 +2423,8 @@ }, "node_modules/@libp2p/tcp": { "version": "5.0.2", - "license": "Apache-2.0 OR MIT", + "resolved": "https://registry.npmjs.org/@libp2p/tcp/-/tcp-5.0.2.tgz", + "integrity": "sha512-Lm8RhqfvqJ7SffeausXNHeRT8QC5HXWWI6X9HuLVgl/jZDGKhI0FUWv3J48lUhpvmH4wQyMFLVuZrTukS4F/6g==", "dependencies": { "@libp2p/interface-connection": "^3.0.2", "@libp2p/interface-transport": "^2.0.0", @@ -2264,7 +2444,8 @@ }, "node_modules/@libp2p/topology": { "version": "3.0.2", - "license": "Apache-2.0 OR MIT", + "resolved": "https://registry.npmjs.org/@libp2p/topology/-/topology-3.0.2.tgz", + "integrity": "sha512-RDMmA8Us5uxl7sSWGoTIYyzdthjs6xQD1P/vBQPHlqTAjpjPWuCY019cbqK8lP1JCldCB/n2ljSxDJs1J4cweQ==", "dependencies": { "@libp2p/interface-peer-id": "^1.0.4", "@libp2p/interface-registrar": "^2.0.3", @@ -2279,7 +2460,8 @@ }, "node_modules/@libp2p/topology/node_modules/@libp2p/interface-peer-id": { "version": "1.1.2", - "license": "Apache-2.0 OR MIT", + "resolved": "https://registry.npmjs.org/@libp2p/interface-peer-id/-/interface-peer-id-1.1.2.tgz", + "integrity": "sha512-S5iyVzG2EUgxm4NLe8W4ya9kpKuGfHs7Wbbos0wOUB4GXsbIKgOOxIr4yf+xGFgtEBaoximvlLkpob6dn8VFgA==", "dependencies": { "multiformats": "^10.0.0" }, @@ -2290,7 +2472,8 @@ }, "node_modules/@libp2p/topology/node_modules/multiformats": { "version": "10.0.3", - "license": "Apache-2.0 OR MIT", + "resolved": "https://registry.npmjs.org/multiformats/-/multiformats-10.0.3.tgz", + "integrity": "sha512-K2yGSmstS/oEmYiEIieHb53jJCaqp4ERPDQAYrm5sV3UUrVDZeshJQCK6GHAKyIGufU1vAcbS0PdAAZmC7Tzcw==", "engines": { "node": ">=16.0.0", "npm": ">=7.0.0" @@ -2298,7 +2481,8 @@ }, "node_modules/@libp2p/tracked-map": { "version": "2.0.2", - "license": "Apache-2.0 OR MIT", + "resolved": "https://registry.npmjs.org/@libp2p/tracked-map/-/tracked-map-2.0.2.tgz", + "integrity": "sha512-y5UnoB5NR+i7Xp/wPrHYyJxiNRS0/3ee8chphTG8GptdTWqWcZ+UALKXMb9neMtFL9pivNrOY+A0d+M60eI+RA==", "dependencies": { "@libp2p/interface-metrics": "^3.0.0" }, @@ -2309,7 +2493,8 @@ }, "node_modules/@libp2p/tracked-map/node_modules/@libp2p/interface-metrics": { "version": "3.0.0", - "license": "Apache-2.0 OR MIT", + "resolved": "https://registry.npmjs.org/@libp2p/interface-metrics/-/interface-metrics-3.0.0.tgz", + "integrity": "sha512-TxK63BrDalv0yW544608xfmg3rsbh31ykZzf7I1yjMCZpyIFOqLTH1WN4YQwXKNlMz/XURux99UTpGSRYl3nOA==", "dependencies": { "@libp2p/interface-peer-id": "^1.0.0", "it-stream-types": "^1.0.4" @@ -2321,7 +2506,8 @@ }, "node_modules/@libp2p/tracked-map/node_modules/@libp2p/interface-peer-id": { "version": "1.1.2", - "license": "Apache-2.0 OR MIT", + "resolved": "https://registry.npmjs.org/@libp2p/interface-peer-id/-/interface-peer-id-1.1.2.tgz", + "integrity": "sha512-S5iyVzG2EUgxm4NLe8W4ya9kpKuGfHs7Wbbos0wOUB4GXsbIKgOOxIr4yf+xGFgtEBaoximvlLkpob6dn8VFgA==", "dependencies": { "multiformats": "^10.0.0" }, @@ -2332,7 +2518,8 @@ }, "node_modules/@libp2p/tracked-map/node_modules/multiformats": { "version": "10.0.3", - "license": "Apache-2.0 OR MIT", + "resolved": "https://registry.npmjs.org/multiformats/-/multiformats-10.0.3.tgz", + "integrity": "sha512-K2yGSmstS/oEmYiEIieHb53jJCaqp4ERPDQAYrm5sV3UUrVDZeshJQCK6GHAKyIGufU1vAcbS0PdAAZmC7Tzcw==", "engines": { "node": ">=16.0.0", "npm": ">=7.0.0" @@ -2340,7 +2527,8 @@ }, "node_modules/@libp2p/utils": { "version": "3.0.4", - "license": "Apache-2.0 OR MIT", + "resolved": "https://registry.npmjs.org/@libp2p/utils/-/utils-3.0.4.tgz", + "integrity": "sha512-EWJNJtlop2ylmGE1BNiMA0u4eTLKoY0LbZ/DOvSDs9VlGSLua9J+LUjp6XV8lazGv7l1rOLiU+1hP5fcmg1+eg==", "dependencies": { "@achingbrain/ip-address": "^8.1.0", "@libp2p/interface-connection": "^3.0.2", @@ -2361,7 +2549,8 @@ }, "node_modules/@libp2p/utils/node_modules/private-ip": { "version": "3.0.0", - "license": "MIT", + "resolved": "https://registry.npmjs.org/private-ip/-/private-ip-3.0.0.tgz", + "integrity": "sha512-HkMBs4nMtrP+cvcw0bDi2BAZIGgiKI4Zq8Oc+dMqNBpHS8iGL4+WO/pRtc8Bwnv9rjnV0QwMDwEBymFtqv7Kww==", "dependencies": { "@chainsafe/is-ip": "^2.0.1", "ip-regex": "^5.0.0", @@ -2374,7 +2563,8 @@ }, "node_modules/@libp2p/webrtc-peer": { "version": "2.0.2", - "license": "Apache-2.0 OR MIT", + "resolved": "https://registry.npmjs.org/@libp2p/webrtc-peer/-/webrtc-peer-2.0.2.tgz", + "integrity": "sha512-FozliUqHO1CIzrL8hPc5uT+5AGUWf5Dw3HncL9tte/CoDNVpj6O59ITIRWefssp3oIGEAIjpcebNu1d+mYfVug==", "dependencies": { "@libp2p/interfaces": "^3.0.2", "@libp2p/logger": "^2.0.0", @@ -2394,7 +2584,8 @@ }, "node_modules/@libp2p/webrtc-star": { "version": "5.0.3", - "license": "Apache-2.0 OR MIT", + "resolved": "https://registry.npmjs.org/@libp2p/webrtc-star/-/webrtc-star-5.0.3.tgz", + "integrity": "sha512-tGH72ARnuHaj5FlLMrdU4B2PIZMgUKdS40YqlIu5w9zo4csZ8n07oRHt0B+gRnahLd8wY80uiS6CnmTC5c0skg==", "dependencies": { "@libp2p/interface-connection": "^3.0.1", "@libp2p/interface-peer-discovery": "^1.0.0", @@ -2424,7 +2615,8 @@ }, "node_modules/@libp2p/webrtc-star-protocol": { "version": "2.0.1", - "license": "Apache-2.0 OR MIT", + "resolved": "https://registry.npmjs.org/@libp2p/webrtc-star-protocol/-/webrtc-star-protocol-2.0.1.tgz", + "integrity": "sha512-7pOQHWhfCfEQXVdLPqhi0cC0eyYVklzNtNZlEEXcAQ3zRFpAeZsMwg5wowXs1Udu7oxKwog3w3FbgHmvwqStMg==", "dependencies": { "@multiformats/multiaddr": "^11.0.0", "socket.io-client": "^4.1.2" @@ -2436,7 +2628,8 @@ }, "node_modules/@libp2p/webrtc-star/node_modules/@libp2p/interface-peer-id": { "version": "1.1.2", - "license": "Apache-2.0 OR MIT", + "resolved": "https://registry.npmjs.org/@libp2p/interface-peer-id/-/interface-peer-id-1.1.2.tgz", + "integrity": "sha512-S5iyVzG2EUgxm4NLe8W4ya9kpKuGfHs7Wbbos0wOUB4GXsbIKgOOxIr4yf+xGFgtEBaoximvlLkpob6dn8VFgA==", "dependencies": { "multiformats": "^10.0.0" }, @@ -2447,7 +2640,8 @@ }, "node_modules/@libp2p/webrtc-star/node_modules/multiformats": { "version": "10.0.3", - "license": "Apache-2.0 OR MIT", + "resolved": "https://registry.npmjs.org/multiformats/-/multiformats-10.0.3.tgz", + "integrity": "sha512-K2yGSmstS/oEmYiEIieHb53jJCaqp4ERPDQAYrm5sV3UUrVDZeshJQCK6GHAKyIGufU1vAcbS0PdAAZmC7Tzcw==", "engines": { "node": ">=16.0.0", "npm": ">=7.0.0" @@ -2455,7 +2649,8 @@ }, "node_modules/@libp2p/websockets": { "version": "5.0.2", - "license": "Apache-2.0 OR MIT", + "resolved": "https://registry.npmjs.org/@libp2p/websockets/-/websockets-5.0.2.tgz", + "integrity": "sha512-bQIGylJfpAeBaRLYN8KiwbD75qXgKKlK/zgH5hiVfCqFHwchEbr2c1Smf86YsX2Ay07jRqQkrJbJFM72ryePoA==", "dependencies": { "@libp2p/interface-connection": "^3.0.2", "@libp2p/interface-transport": "^2.0.0", @@ -2479,7 +2674,8 @@ }, "node_modules/@mapbox/node-pre-gyp": { "version": "1.0.10", - "license": "BSD-3-Clause", + "resolved": "https://registry.npmjs.org/@mapbox/node-pre-gyp/-/node-pre-gyp-1.0.10.tgz", + "integrity": "sha512-4ySo4CjzStuprMwk35H5pPbkymjv1SF3jGLj6rAHp/xT/RF7TL7bd9CTm1xDY49K2qF7jmR/g7k+SkLETP6opA==", "dependencies": { "detect-libc": "^2.0.0", "https-proxy-agent": "^5.0.0", @@ -2497,7 +2693,8 @@ }, "node_modules/@mapbox/node-pre-gyp/node_modules/make-dir": { "version": "3.1.0", - "license": "MIT", + "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz", + "integrity": "sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==", "dependencies": { "semver": "^6.0.0" }, @@ -2510,14 +2707,16 @@ }, "node_modules/@mapbox/node-pre-gyp/node_modules/make-dir/node_modules/semver": { "version": "6.3.0", - "license": "ISC", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", "bin": { "semver": "bin/semver.js" } }, "node_modules/@mapbox/node-pre-gyp/node_modules/node-fetch": { "version": "2.6.7", - "license": "MIT", + "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.7.tgz", + "integrity": "sha512-ZjMPFEfVx5j+y2yF35Kzx5sF7kDzxuDj6ziH4FFbOp87zKDZNx8yExJIb05OGF4Nlt9IHFIMBkRl41VdvcNdbQ==", "dependencies": { "whatwg-url": "^5.0.0" }, @@ -2535,7 +2734,8 @@ }, "node_modules/@mapbox/node-pre-gyp/node_modules/semver": { "version": "7.3.8", - "license": "ISC", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.8.tgz", + "integrity": "sha512-NB1ctGL5rlHrPJtFDVIVzTyQylMLu9N9VICA6HSFJo8MCGVTMW6gfpicwKmmK/dAjTOrqu5l63JJOpDSrAis3A==", "dependencies": { "lru-cache": "^6.0.0" }, @@ -2548,7 +2748,8 @@ }, "node_modules/@multiformats/mafmt": { "version": "11.0.3", - "license": "Apache-2.0 OR MIT", + "resolved": "https://registry.npmjs.org/@multiformats/mafmt/-/mafmt-11.0.3.tgz", + "integrity": "sha512-DvCQeZJgaC4kE3BLqMuW3gQkNAW14Z7I+yMt30Ze+wkfHkWSp+bICcHGihhtgfzYCumHA/vHlJ9n54mrCcmnvQ==", "dependencies": { "@multiformats/multiaddr": "^11.0.0" }, @@ -2559,7 +2760,8 @@ }, "node_modules/@multiformats/multiaddr": { "version": "11.1.5", - "license": "Apache-2.0 OR MIT", + "resolved": "https://registry.npmjs.org/@multiformats/multiaddr/-/multiaddr-11.1.5.tgz", + "integrity": "sha512-sFppiscvhExFbSUdYl/4wBBOb5IjhYVpuRMBb6RgVjq7qTVHQDQeX3CEjQGdyy7+8A/cixL+fQez4RI+hltkLQ==", "dependencies": { "@chainsafe/is-ip": "^2.0.1", "dns-over-http-resolver": "^2.1.0", @@ -2575,7 +2777,8 @@ }, "node_modules/@multiformats/multiaddr-to-uri": { "version": "9.0.2", - "license": "Apache-2.0 OR MIT", + "resolved": "https://registry.npmjs.org/@multiformats/multiaddr-to-uri/-/multiaddr-to-uri-9.0.2.tgz", + "integrity": "sha512-vrWmfFadmix5Ab9l//oRQdQ7O3J5bGJpJRMSm21bHlQB0XV4xtNU6vMZBVXeu3Su79LgflEp37cjTFE3yKf3Hw==", "dependencies": { "@multiformats/multiaddr": "^11.0.0" }, @@ -2586,7 +2789,8 @@ }, "node_modules/@multiformats/murmur3": { "version": "2.1.2", - "license": "Apache-2.0 OR MIT", + "resolved": "https://registry.npmjs.org/@multiformats/murmur3/-/murmur3-2.1.2.tgz", + "integrity": "sha512-4gCptOviYuu8ts5iUPwAcyIgl1FAyOAtWkQMAdu7FpgWveV5uVmA/919+QhgiZu8lhBGLWvRRTigOEdYNX9y0A==", "dependencies": { "multiformats": "^11.0.0", "murmurhash3js-revisited": "^3.0.0" @@ -2598,7 +2802,8 @@ }, "node_modules/@multiformats/uri-to-multiaddr": { "version": "7.0.0", - "license": "Apache-2.0 OR MIT", + "resolved": "https://registry.npmjs.org/@multiformats/uri-to-multiaddr/-/uri-to-multiaddr-7.0.0.tgz", + "integrity": "sha512-mB/I4znETEZA/PmflXmnjWj3ENcyJg6Yv3EQQbIdA5n9fJ43c58uMF2Ew7yXtl0Wxt4d1pAVFA6fki2xFrHGew==", "dependencies": { "@multiformats/multiaddr": "^11.0.0", "is-ip": "^5.0.0" @@ -2610,38 +2815,42 @@ }, "node_modules/@noble/ed25519": { "version": "1.7.1", + "resolved": "https://registry.npmjs.org/@noble/ed25519/-/ed25519-1.7.1.tgz", + "integrity": "sha512-Rk4SkJFaXZiznFyC/t77Q0NKS4FL7TLJJsVG2V2oiEq3kJVeTdxysEe/yRWSpnWMe808XRDJ+VFh5pt/FN5plw==", "funding": [ { "type": "individual", "url": "https://paulmillr.com/funding/" } - ], - "license": "MIT" + ] }, "node_modules/@noble/hashes": { "version": "1.1.5", + "resolved": "https://registry.npmjs.org/@noble/hashes/-/hashes-1.1.5.tgz", + "integrity": "sha512-LTMZiiLc+V4v1Yi16TD6aX2gmtKszNye0pQgbaLqkvhIqP7nVsSaJsWloGQjJfJ8offaoP5GtX3yY5swbcJxxQ==", "funding": [ { "type": "individual", "url": "https://paulmillr.com/funding/" } - ], - "license": "MIT" + ] }, "node_modules/@noble/secp256k1": { "version": "1.7.1", + "resolved": "https://registry.npmjs.org/@noble/secp256k1/-/secp256k1-1.7.1.tgz", + "integrity": "sha512-hOUk6AyBFmqVrv7k5WAw/LpszxVbj9gGN4JRkIX52fdFAj1UA61KXmZDvqVEm+pOyec3+fIeZB02LYa/pWOArw==", "funding": [ { "type": "individual", "url": "https://paulmillr.com/funding/" } - ], - "license": "MIT" + ] }, "node_modules/@nodelib/fs.scandir": { "version": "2.1.5", + "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", + "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==", "dev": true, - "license": "MIT", "dependencies": { "@nodelib/fs.stat": "2.0.5", "run-parallel": "^1.1.9" @@ -2652,16 +2861,18 @@ }, "node_modules/@nodelib/fs.stat": { "version": "2.0.5", + "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz", + "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==", "dev": true, - "license": "MIT", "engines": { "node": ">= 8" } }, "node_modules/@nodelib/fs.walk": { "version": "1.2.8", + "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz", + "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==", "dev": true, - "license": "MIT", "dependencies": { "@nodelib/fs.scandir": "2.1.5", "fastq": "^1.6.0" @@ -2672,7 +2883,8 @@ }, "node_modules/@pnpm/network.ca-file": { "version": "1.0.2", - "license": "MIT", + "resolved": "https://registry.npmjs.org/@pnpm/network.ca-file/-/network.ca-file-1.0.2.tgz", + "integrity": "sha512-YcPQ8a0jwYU9bTdJDpXjMi7Brhkr1mXsXrUJvjqM2mQDgkRiz8jFaQGOdaLxgjtUfQgZhKy/O3cG/YwmgKaxLA==", "dependencies": { "graceful-fs": "4.2.10" }, @@ -2682,7 +2894,8 @@ }, "node_modules/@pnpm/npm-conf": { "version": "1.0.5", - "license": "MIT", + "resolved": "https://registry.npmjs.org/@pnpm/npm-conf/-/npm-conf-1.0.5.tgz", + "integrity": "sha512-hD8ml183638O3R6/Txrh0L8VzGOrFXgRtRDG4qQC4tONdZ5Z1M+tlUUDUvrjYdmK6G+JTBTeaCLMna11cXzi8A==", "dependencies": { "@pnpm/network.ca-file": "^1.0.1", "config-chain": "^1.1.11" @@ -2693,7 +2906,8 @@ }, "node_modules/@polkadot/api": { "version": "9.13.2", - "license": "Apache-2.0", + "resolved": "https://registry.npmjs.org/@polkadot/api/-/api-9.13.2.tgz", + "integrity": "sha512-/fRWd6geTy0Hi9U2r82X6qgMGbt1JpNJ/Hshg6EzM12BKvoIpHtTxn6WkQgq950LQOgNk6nd0zm3A/p5DL+x4g==", "dependencies": { "@babel/runtime": "^7.20.13", "@polkadot/api-augment": "9.13.2", @@ -2719,7 +2933,8 @@ }, "node_modules/@polkadot/api-augment": { "version": "9.13.2", - "license": "Apache-2.0", + "resolved": "https://registry.npmjs.org/@polkadot/api-augment/-/api-augment-9.13.2.tgz", + "integrity": "sha512-D9baG50pBz5CUX1talPjJNOP1tseI/g4SAdaOU9um3Unf93bkjHagfDxqxLDWdzJfqh0g67jPTel72I+qvfMew==", "dependencies": { "@babel/runtime": "^7.20.13", "@polkadot/api-base": "9.13.2", @@ -2735,7 +2950,8 @@ }, "node_modules/@polkadot/api-augment/node_modules/@polkadot/util": { "version": "10.3.1", - "license": "Apache-2.0", + "resolved": "https://registry.npmjs.org/@polkadot/util/-/util-10.3.1.tgz", + "integrity": "sha512-8j+O7gj7upj1ZwlGxmAaf3+V0xc0VZvqPeBvTFV30Oi1xoMDNH0q2vKst08wARQUUm1Gi0zIlipDMo0n4Sr7tw==", "dependencies": { "@babel/runtime": "^7.20.13", "@polkadot/x-bigint": "10.3.1", @@ -2751,7 +2967,8 @@ }, "node_modules/@polkadot/api-augment/node_modules/@polkadot/x-bigint": { "version": "10.3.1", - "license": "Apache-2.0", + "resolved": "https://registry.npmjs.org/@polkadot/x-bigint/-/x-bigint-10.3.1.tgz", + "integrity": "sha512-hXtnwy9LXmV43B9pT8gY1zwdNRhpPBEOk1PfL2Ze0Iw2zd+lbljD3GwDP5mkBfIYIw/s15eRTjiUIKfpTRRDXw==", "dependencies": { "@babel/runtime": "^7.20.13", "@polkadot/x-global": "10.3.1" @@ -2762,7 +2979,8 @@ }, "node_modules/@polkadot/api-augment/node_modules/@polkadot/x-global": { "version": "10.3.1", - "license": "Apache-2.0", + "resolved": "https://registry.npmjs.org/@polkadot/x-global/-/x-global-10.3.1.tgz", + "integrity": "sha512-kPAVYP2H3aTjS7BKqGkYV1I3Mu03dnRyeX+rDebC8xoN+hUC5bhb7dzCtb5F8DdqlvFl67ZxRaVtq2XUssGTKQ==", "dependencies": { "@babel/runtime": "^7.20.13" }, @@ -2772,7 +2990,8 @@ }, "node_modules/@polkadot/api-augment/node_modules/@polkadot/x-textdecoder": { "version": "10.3.1", - "license": "Apache-2.0", + "resolved": "https://registry.npmjs.org/@polkadot/x-textdecoder/-/x-textdecoder-10.3.1.tgz", + "integrity": "sha512-BgjcImRYCM2TOMa/95Mmqo6T/YdQWQdVlVQ33PZda7A/I2jBYeOXDj16ftVgn4DWM9xcFVdy2Z3Jg3RGCNbjww==", "dependencies": { "@babel/runtime": "^7.20.13", "@polkadot/x-global": "10.3.1" @@ -2783,7 +3002,8 @@ }, "node_modules/@polkadot/api-augment/node_modules/@polkadot/x-textencoder": { "version": "10.3.1", - "license": "Apache-2.0", + "resolved": "https://registry.npmjs.org/@polkadot/x-textencoder/-/x-textencoder-10.3.1.tgz", + "integrity": "sha512-nkNsVW1GNT1XfV4IuKlUkdeo9sFJ/2IPhBbC54gu469NFl52b5be5H9x+IHdqqA8cG0ElvsojTd3K3tVD3sx6Q==", "dependencies": { "@babel/runtime": "^7.20.13", "@polkadot/x-global": "10.3.1" @@ -2794,7 +3014,8 @@ }, "node_modules/@polkadot/api-base": { "version": "9.13.2", - "license": "Apache-2.0", + "resolved": "https://registry.npmjs.org/@polkadot/api-base/-/api-base-9.13.2.tgz", + "integrity": "sha512-BJAcAHUpDm+aCnRnWaipnhuR23tFBbfeyV2QY1/k+cicOe9RfK2xYnyLYUpH0ugS1dJg3uHYgLjcObA641WDSA==", "dependencies": { "@babel/runtime": "^7.20.13", "@polkadot/rpc-core": "9.13.2", @@ -2808,7 +3029,8 @@ }, "node_modules/@polkadot/api-base/node_modules/@polkadot/util": { "version": "10.3.1", - "license": "Apache-2.0", + "resolved": "https://registry.npmjs.org/@polkadot/util/-/util-10.3.1.tgz", + "integrity": "sha512-8j+O7gj7upj1ZwlGxmAaf3+V0xc0VZvqPeBvTFV30Oi1xoMDNH0q2vKst08wARQUUm1Gi0zIlipDMo0n4Sr7tw==", "dependencies": { "@babel/runtime": "^7.20.13", "@polkadot/x-bigint": "10.3.1", @@ -2824,7 +3046,8 @@ }, "node_modules/@polkadot/api-base/node_modules/@polkadot/x-bigint": { "version": "10.3.1", - "license": "Apache-2.0", + "resolved": "https://registry.npmjs.org/@polkadot/x-bigint/-/x-bigint-10.3.1.tgz", + "integrity": "sha512-hXtnwy9LXmV43B9pT8gY1zwdNRhpPBEOk1PfL2Ze0Iw2zd+lbljD3GwDP5mkBfIYIw/s15eRTjiUIKfpTRRDXw==", "dependencies": { "@babel/runtime": "^7.20.13", "@polkadot/x-global": "10.3.1" @@ -2835,7 +3058,8 @@ }, "node_modules/@polkadot/api-base/node_modules/@polkadot/x-global": { "version": "10.3.1", - "license": "Apache-2.0", + "resolved": "https://registry.npmjs.org/@polkadot/x-global/-/x-global-10.3.1.tgz", + "integrity": "sha512-kPAVYP2H3aTjS7BKqGkYV1I3Mu03dnRyeX+rDebC8xoN+hUC5bhb7dzCtb5F8DdqlvFl67ZxRaVtq2XUssGTKQ==", "dependencies": { "@babel/runtime": "^7.20.13" }, @@ -2845,7 +3069,8 @@ }, "node_modules/@polkadot/api-base/node_modules/@polkadot/x-textdecoder": { "version": "10.3.1", - "license": "Apache-2.0", + "resolved": "https://registry.npmjs.org/@polkadot/x-textdecoder/-/x-textdecoder-10.3.1.tgz", + "integrity": "sha512-BgjcImRYCM2TOMa/95Mmqo6T/YdQWQdVlVQ33PZda7A/I2jBYeOXDj16ftVgn4DWM9xcFVdy2Z3Jg3RGCNbjww==", "dependencies": { "@babel/runtime": "^7.20.13", "@polkadot/x-global": "10.3.1" @@ -2856,7 +3081,8 @@ }, "node_modules/@polkadot/api-base/node_modules/@polkadot/x-textencoder": { "version": "10.3.1", - "license": "Apache-2.0", + "resolved": "https://registry.npmjs.org/@polkadot/x-textencoder/-/x-textencoder-10.3.1.tgz", + "integrity": "sha512-nkNsVW1GNT1XfV4IuKlUkdeo9sFJ/2IPhBbC54gu469NFl52b5be5H9x+IHdqqA8cG0ElvsojTd3K3tVD3sx6Q==", "dependencies": { "@babel/runtime": "^7.20.13", "@polkadot/x-global": "10.3.1" @@ -2867,7 +3093,8 @@ }, "node_modules/@polkadot/api-derive": { "version": "9.13.2", - "license": "Apache-2.0", + "resolved": "https://registry.npmjs.org/@polkadot/api-derive/-/api-derive-9.13.2.tgz", + "integrity": "sha512-/r6s2Xqp6ehtVmLZzz0g5l5s/wnJsF+fRAHOw/1XXIieG6NJN7C0ZVwoOQLOK/UH9QceElfzSTsTYGGYS+ta4g==", "dependencies": { "@babel/runtime": "^7.20.13", "@polkadot/api": "9.13.2", @@ -2886,7 +3113,8 @@ }, "node_modules/@polkadot/api-derive/node_modules/@polkadot/util": { "version": "10.3.1", - "license": "Apache-2.0", + "resolved": "https://registry.npmjs.org/@polkadot/util/-/util-10.3.1.tgz", + "integrity": "sha512-8j+O7gj7upj1ZwlGxmAaf3+V0xc0VZvqPeBvTFV30Oi1xoMDNH0q2vKst08wARQUUm1Gi0zIlipDMo0n4Sr7tw==", "dependencies": { "@babel/runtime": "^7.20.13", "@polkadot/x-bigint": "10.3.1", @@ -2902,7 +3130,8 @@ }, "node_modules/@polkadot/api-derive/node_modules/@polkadot/x-bigint": { "version": "10.3.1", - "license": "Apache-2.0", + "resolved": "https://registry.npmjs.org/@polkadot/x-bigint/-/x-bigint-10.3.1.tgz", + "integrity": "sha512-hXtnwy9LXmV43B9pT8gY1zwdNRhpPBEOk1PfL2Ze0Iw2zd+lbljD3GwDP5mkBfIYIw/s15eRTjiUIKfpTRRDXw==", "dependencies": { "@babel/runtime": "^7.20.13", "@polkadot/x-global": "10.3.1" @@ -2913,7 +3142,8 @@ }, "node_modules/@polkadot/api-derive/node_modules/@polkadot/x-global": { "version": "10.3.1", - "license": "Apache-2.0", + "resolved": "https://registry.npmjs.org/@polkadot/x-global/-/x-global-10.3.1.tgz", + "integrity": "sha512-kPAVYP2H3aTjS7BKqGkYV1I3Mu03dnRyeX+rDebC8xoN+hUC5bhb7dzCtb5F8DdqlvFl67ZxRaVtq2XUssGTKQ==", "dependencies": { "@babel/runtime": "^7.20.13" }, @@ -2923,7 +3153,8 @@ }, "node_modules/@polkadot/api-derive/node_modules/@polkadot/x-textdecoder": { "version": "10.3.1", - "license": "Apache-2.0", + "resolved": "https://registry.npmjs.org/@polkadot/x-textdecoder/-/x-textdecoder-10.3.1.tgz", + "integrity": "sha512-BgjcImRYCM2TOMa/95Mmqo6T/YdQWQdVlVQ33PZda7A/I2jBYeOXDj16ftVgn4DWM9xcFVdy2Z3Jg3RGCNbjww==", "dependencies": { "@babel/runtime": "^7.20.13", "@polkadot/x-global": "10.3.1" @@ -2934,7 +3165,8 @@ }, "node_modules/@polkadot/api-derive/node_modules/@polkadot/x-textencoder": { "version": "10.3.1", - "license": "Apache-2.0", + "resolved": "https://registry.npmjs.org/@polkadot/x-textencoder/-/x-textencoder-10.3.1.tgz", + "integrity": "sha512-nkNsVW1GNT1XfV4IuKlUkdeo9sFJ/2IPhBbC54gu469NFl52b5be5H9x+IHdqqA8cG0ElvsojTd3K3tVD3sx6Q==", "dependencies": { "@babel/runtime": "^7.20.13", "@polkadot/x-global": "10.3.1" @@ -2945,7 +3177,8 @@ }, "node_modules/@polkadot/api/node_modules/@polkadot/util": { "version": "10.3.1", - "license": "Apache-2.0", + "resolved": "https://registry.npmjs.org/@polkadot/util/-/util-10.3.1.tgz", + "integrity": "sha512-8j+O7gj7upj1ZwlGxmAaf3+V0xc0VZvqPeBvTFV30Oi1xoMDNH0q2vKst08wARQUUm1Gi0zIlipDMo0n4Sr7tw==", "dependencies": { "@babel/runtime": "^7.20.13", "@polkadot/x-bigint": "10.3.1", @@ -2961,7 +3194,8 @@ }, "node_modules/@polkadot/api/node_modules/@polkadot/x-bigint": { "version": "10.3.1", - "license": "Apache-2.0", + "resolved": "https://registry.npmjs.org/@polkadot/x-bigint/-/x-bigint-10.3.1.tgz", + "integrity": "sha512-hXtnwy9LXmV43B9pT8gY1zwdNRhpPBEOk1PfL2Ze0Iw2zd+lbljD3GwDP5mkBfIYIw/s15eRTjiUIKfpTRRDXw==", "dependencies": { "@babel/runtime": "^7.20.13", "@polkadot/x-global": "10.3.1" @@ -2972,7 +3206,8 @@ }, "node_modules/@polkadot/api/node_modules/@polkadot/x-global": { "version": "10.3.1", - "license": "Apache-2.0", + "resolved": "https://registry.npmjs.org/@polkadot/x-global/-/x-global-10.3.1.tgz", + "integrity": "sha512-kPAVYP2H3aTjS7BKqGkYV1I3Mu03dnRyeX+rDebC8xoN+hUC5bhb7dzCtb5F8DdqlvFl67ZxRaVtq2XUssGTKQ==", "dependencies": { "@babel/runtime": "^7.20.13" }, @@ -2982,7 +3217,8 @@ }, "node_modules/@polkadot/api/node_modules/@polkadot/x-textdecoder": { "version": "10.3.1", - "license": "Apache-2.0", + "resolved": "https://registry.npmjs.org/@polkadot/x-textdecoder/-/x-textdecoder-10.3.1.tgz", + "integrity": "sha512-BgjcImRYCM2TOMa/95Mmqo6T/YdQWQdVlVQ33PZda7A/I2jBYeOXDj16ftVgn4DWM9xcFVdy2Z3Jg3RGCNbjww==", "dependencies": { "@babel/runtime": "^7.20.13", "@polkadot/x-global": "10.3.1" @@ -2993,7 +3229,8 @@ }, "node_modules/@polkadot/api/node_modules/@polkadot/x-textencoder": { "version": "10.3.1", - "license": "Apache-2.0", + "resolved": "https://registry.npmjs.org/@polkadot/x-textencoder/-/x-textencoder-10.3.1.tgz", + "integrity": "sha512-nkNsVW1GNT1XfV4IuKlUkdeo9sFJ/2IPhBbC54gu469NFl52b5be5H9x+IHdqqA8cG0ElvsojTd3K3tVD3sx6Q==", "dependencies": { "@babel/runtime": "^7.20.13", "@polkadot/x-global": "10.3.1" @@ -3004,11 +3241,13 @@ }, "node_modules/@polkadot/api/node_modules/eventemitter3": { "version": "5.0.0", - "license": "MIT" + "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-5.0.0.tgz", + "integrity": "sha512-riuVbElZZNXLeLEoprfNYoDSwTBRR44X3mnhdI1YcnENpWTCsTTVZ2zFuqQcpoyqPQIUXdiPEU0ECAq0KQRaHg==" }, "node_modules/@polkadot/keyring": { "version": "10.3.1", - "license": "Apache-2.0", + "resolved": "https://registry.npmjs.org/@polkadot/keyring/-/keyring-10.3.1.tgz", + "integrity": "sha512-xBkUtyQ766NVS1ccSYbQssWpxAhSf0uwkw9Amj8TFhu++pnZcVm+EmM2VczWqgOkmWepO7MGRjEXeOIw1YUGiw==", "dependencies": { "@babel/runtime": "^7.20.13", "@polkadot/util": "10.3.1", @@ -3024,7 +3263,8 @@ }, "node_modules/@polkadot/keyring/node_modules/@polkadot/util": { "version": "10.3.1", - "license": "Apache-2.0", + "resolved": "https://registry.npmjs.org/@polkadot/util/-/util-10.3.1.tgz", + "integrity": "sha512-8j+O7gj7upj1ZwlGxmAaf3+V0xc0VZvqPeBvTFV30Oi1xoMDNH0q2vKst08wARQUUm1Gi0zIlipDMo0n4Sr7tw==", "dependencies": { "@babel/runtime": "^7.20.13", "@polkadot/x-bigint": "10.3.1", @@ -3040,7 +3280,8 @@ }, "node_modules/@polkadot/keyring/node_modules/@polkadot/x-bigint": { "version": "10.3.1", - "license": "Apache-2.0", + "resolved": "https://registry.npmjs.org/@polkadot/x-bigint/-/x-bigint-10.3.1.tgz", + "integrity": "sha512-hXtnwy9LXmV43B9pT8gY1zwdNRhpPBEOk1PfL2Ze0Iw2zd+lbljD3GwDP5mkBfIYIw/s15eRTjiUIKfpTRRDXw==", "dependencies": { "@babel/runtime": "^7.20.13", "@polkadot/x-global": "10.3.1" @@ -3051,7 +3292,8 @@ }, "node_modules/@polkadot/keyring/node_modules/@polkadot/x-global": { "version": "10.3.1", - "license": "Apache-2.0", + "resolved": "https://registry.npmjs.org/@polkadot/x-global/-/x-global-10.3.1.tgz", + "integrity": "sha512-kPAVYP2H3aTjS7BKqGkYV1I3Mu03dnRyeX+rDebC8xoN+hUC5bhb7dzCtb5F8DdqlvFl67ZxRaVtq2XUssGTKQ==", "dependencies": { "@babel/runtime": "^7.20.13" }, @@ -3061,7 +3303,8 @@ }, "node_modules/@polkadot/keyring/node_modules/@polkadot/x-textdecoder": { "version": "10.3.1", - "license": "Apache-2.0", + "resolved": "https://registry.npmjs.org/@polkadot/x-textdecoder/-/x-textdecoder-10.3.1.tgz", + "integrity": "sha512-BgjcImRYCM2TOMa/95Mmqo6T/YdQWQdVlVQ33PZda7A/I2jBYeOXDj16ftVgn4DWM9xcFVdy2Z3Jg3RGCNbjww==", "dependencies": { "@babel/runtime": "^7.20.13", "@polkadot/x-global": "10.3.1" @@ -3072,7 +3315,8 @@ }, "node_modules/@polkadot/keyring/node_modules/@polkadot/x-textencoder": { "version": "10.3.1", - "license": "Apache-2.0", + "resolved": "https://registry.npmjs.org/@polkadot/x-textencoder/-/x-textencoder-10.3.1.tgz", + "integrity": "sha512-nkNsVW1GNT1XfV4IuKlUkdeo9sFJ/2IPhBbC54gu469NFl52b5be5H9x+IHdqqA8cG0ElvsojTd3K3tVD3sx6Q==", "dependencies": { "@babel/runtime": "^7.20.13", "@polkadot/x-global": "10.3.1" @@ -3083,7 +3327,8 @@ }, "node_modules/@polkadot/networks": { "version": "10.3.1", - "license": "Apache-2.0", + "resolved": "https://registry.npmjs.org/@polkadot/networks/-/networks-10.3.1.tgz", + "integrity": "sha512-W9E1g6zRbIVyF7sGqbpxH0P6caxtBHNEwvDa5/8ZQi9UsLj6mUs0HdwZtAdIo3KcSO4uAyV9VYJjY/oAWWcnXg==", "dependencies": { "@babel/runtime": "^7.20.13", "@polkadot/util": "10.3.1", @@ -3095,7 +3340,8 @@ }, "node_modules/@polkadot/networks/node_modules/@polkadot/util": { "version": "10.3.1", - "license": "Apache-2.0", + "resolved": "https://registry.npmjs.org/@polkadot/util/-/util-10.3.1.tgz", + "integrity": "sha512-8j+O7gj7upj1ZwlGxmAaf3+V0xc0VZvqPeBvTFV30Oi1xoMDNH0q2vKst08wARQUUm1Gi0zIlipDMo0n4Sr7tw==", "dependencies": { "@babel/runtime": "^7.20.13", "@polkadot/x-bigint": "10.3.1", @@ -3111,7 +3357,8 @@ }, "node_modules/@polkadot/networks/node_modules/@polkadot/x-bigint": { "version": "10.3.1", - "license": "Apache-2.0", + "resolved": "https://registry.npmjs.org/@polkadot/x-bigint/-/x-bigint-10.3.1.tgz", + "integrity": "sha512-hXtnwy9LXmV43B9pT8gY1zwdNRhpPBEOk1PfL2Ze0Iw2zd+lbljD3GwDP5mkBfIYIw/s15eRTjiUIKfpTRRDXw==", "dependencies": { "@babel/runtime": "^7.20.13", "@polkadot/x-global": "10.3.1" @@ -3122,7 +3369,8 @@ }, "node_modules/@polkadot/networks/node_modules/@polkadot/x-global": { "version": "10.3.1", - "license": "Apache-2.0", + "resolved": "https://registry.npmjs.org/@polkadot/x-global/-/x-global-10.3.1.tgz", + "integrity": "sha512-kPAVYP2H3aTjS7BKqGkYV1I3Mu03dnRyeX+rDebC8xoN+hUC5bhb7dzCtb5F8DdqlvFl67ZxRaVtq2XUssGTKQ==", "dependencies": { "@babel/runtime": "^7.20.13" }, @@ -3132,7 +3380,8 @@ }, "node_modules/@polkadot/networks/node_modules/@polkadot/x-textdecoder": { "version": "10.3.1", - "license": "Apache-2.0", + "resolved": "https://registry.npmjs.org/@polkadot/x-textdecoder/-/x-textdecoder-10.3.1.tgz", + "integrity": "sha512-BgjcImRYCM2TOMa/95Mmqo6T/YdQWQdVlVQ33PZda7A/I2jBYeOXDj16ftVgn4DWM9xcFVdy2Z3Jg3RGCNbjww==", "dependencies": { "@babel/runtime": "^7.20.13", "@polkadot/x-global": "10.3.1" @@ -3143,7 +3392,8 @@ }, "node_modules/@polkadot/networks/node_modules/@polkadot/x-textencoder": { "version": "10.3.1", - "license": "Apache-2.0", + "resolved": "https://registry.npmjs.org/@polkadot/x-textencoder/-/x-textencoder-10.3.1.tgz", + "integrity": "sha512-nkNsVW1GNT1XfV4IuKlUkdeo9sFJ/2IPhBbC54gu469NFl52b5be5H9x+IHdqqA8cG0ElvsojTd3K3tVD3sx6Q==", "dependencies": { "@babel/runtime": "^7.20.13", "@polkadot/x-global": "10.3.1" @@ -3154,7 +3404,8 @@ }, "node_modules/@polkadot/rpc-augment": { "version": "9.13.2", - "license": "Apache-2.0", + "resolved": "https://registry.npmjs.org/@polkadot/rpc-augment/-/rpc-augment-9.13.2.tgz", + "integrity": "sha512-rCdDbmTFIMBn5pKoZ8blKLhSZPYzNexgaqFhcGsO7TjMJKeehzowLLsMrFeclqNn+WCvgraltuWas5tA5PRT5A==", "dependencies": { "@babel/runtime": "^7.20.13", "@polkadot/rpc-core": "9.13.2", @@ -3168,7 +3419,8 @@ }, "node_modules/@polkadot/rpc-augment/node_modules/@polkadot/util": { "version": "10.3.1", - "license": "Apache-2.0", + "resolved": "https://registry.npmjs.org/@polkadot/util/-/util-10.3.1.tgz", + "integrity": "sha512-8j+O7gj7upj1ZwlGxmAaf3+V0xc0VZvqPeBvTFV30Oi1xoMDNH0q2vKst08wARQUUm1Gi0zIlipDMo0n4Sr7tw==", "dependencies": { "@babel/runtime": "^7.20.13", "@polkadot/x-bigint": "10.3.1", @@ -3184,7 +3436,8 @@ }, "node_modules/@polkadot/rpc-augment/node_modules/@polkadot/x-bigint": { "version": "10.3.1", - "license": "Apache-2.0", + "resolved": "https://registry.npmjs.org/@polkadot/x-bigint/-/x-bigint-10.3.1.tgz", + "integrity": "sha512-hXtnwy9LXmV43B9pT8gY1zwdNRhpPBEOk1PfL2Ze0Iw2zd+lbljD3GwDP5mkBfIYIw/s15eRTjiUIKfpTRRDXw==", "dependencies": { "@babel/runtime": "^7.20.13", "@polkadot/x-global": "10.3.1" @@ -3195,7 +3448,8 @@ }, "node_modules/@polkadot/rpc-augment/node_modules/@polkadot/x-global": { "version": "10.3.1", - "license": "Apache-2.0", + "resolved": "https://registry.npmjs.org/@polkadot/x-global/-/x-global-10.3.1.tgz", + "integrity": "sha512-kPAVYP2H3aTjS7BKqGkYV1I3Mu03dnRyeX+rDebC8xoN+hUC5bhb7dzCtb5F8DdqlvFl67ZxRaVtq2XUssGTKQ==", "dependencies": { "@babel/runtime": "^7.20.13" }, @@ -3205,7 +3459,8 @@ }, "node_modules/@polkadot/rpc-augment/node_modules/@polkadot/x-textdecoder": { "version": "10.3.1", - "license": "Apache-2.0", + "resolved": "https://registry.npmjs.org/@polkadot/x-textdecoder/-/x-textdecoder-10.3.1.tgz", + "integrity": "sha512-BgjcImRYCM2TOMa/95Mmqo6T/YdQWQdVlVQ33PZda7A/I2jBYeOXDj16ftVgn4DWM9xcFVdy2Z3Jg3RGCNbjww==", "dependencies": { "@babel/runtime": "^7.20.13", "@polkadot/x-global": "10.3.1" @@ -3216,7 +3471,8 @@ }, "node_modules/@polkadot/rpc-augment/node_modules/@polkadot/x-textencoder": { "version": "10.3.1", - "license": "Apache-2.0", + "resolved": "https://registry.npmjs.org/@polkadot/x-textencoder/-/x-textencoder-10.3.1.tgz", + "integrity": "sha512-nkNsVW1GNT1XfV4IuKlUkdeo9sFJ/2IPhBbC54gu469NFl52b5be5H9x+IHdqqA8cG0ElvsojTd3K3tVD3sx6Q==", "dependencies": { "@babel/runtime": "^7.20.13", "@polkadot/x-global": "10.3.1" @@ -3227,7 +3483,8 @@ }, "node_modules/@polkadot/rpc-core": { "version": "9.13.2", - "license": "Apache-2.0", + "resolved": "https://registry.npmjs.org/@polkadot/rpc-core/-/rpc-core-9.13.2.tgz", + "integrity": "sha512-9mVh0xJnzQhMZNZyC5w66yQ8Aew064WdY5VCOdEIQgf7t4VrHBHjv8sKu/F5vOB3228qwQCRiK+vcgAPWL0rgA==", "dependencies": { "@babel/runtime": "^7.20.13", "@polkadot/rpc-augment": "9.13.2", @@ -3242,7 +3499,8 @@ }, "node_modules/@polkadot/rpc-core/node_modules/@polkadot/util": { "version": "10.3.1", - "license": "Apache-2.0", + "resolved": "https://registry.npmjs.org/@polkadot/util/-/util-10.3.1.tgz", + "integrity": "sha512-8j+O7gj7upj1ZwlGxmAaf3+V0xc0VZvqPeBvTFV30Oi1xoMDNH0q2vKst08wARQUUm1Gi0zIlipDMo0n4Sr7tw==", "dependencies": { "@babel/runtime": "^7.20.13", "@polkadot/x-bigint": "10.3.1", @@ -3258,7 +3516,8 @@ }, "node_modules/@polkadot/rpc-core/node_modules/@polkadot/x-bigint": { "version": "10.3.1", - "license": "Apache-2.0", + "resolved": "https://registry.npmjs.org/@polkadot/x-bigint/-/x-bigint-10.3.1.tgz", + "integrity": "sha512-hXtnwy9LXmV43B9pT8gY1zwdNRhpPBEOk1PfL2Ze0Iw2zd+lbljD3GwDP5mkBfIYIw/s15eRTjiUIKfpTRRDXw==", "dependencies": { "@babel/runtime": "^7.20.13", "@polkadot/x-global": "10.3.1" @@ -3269,7 +3528,8 @@ }, "node_modules/@polkadot/rpc-core/node_modules/@polkadot/x-global": { "version": "10.3.1", - "license": "Apache-2.0", + "resolved": "https://registry.npmjs.org/@polkadot/x-global/-/x-global-10.3.1.tgz", + "integrity": "sha512-kPAVYP2H3aTjS7BKqGkYV1I3Mu03dnRyeX+rDebC8xoN+hUC5bhb7dzCtb5F8DdqlvFl67ZxRaVtq2XUssGTKQ==", "dependencies": { "@babel/runtime": "^7.20.13" }, @@ -3279,7 +3539,8 @@ }, "node_modules/@polkadot/rpc-core/node_modules/@polkadot/x-textdecoder": { "version": "10.3.1", - "license": "Apache-2.0", + "resolved": "https://registry.npmjs.org/@polkadot/x-textdecoder/-/x-textdecoder-10.3.1.tgz", + "integrity": "sha512-BgjcImRYCM2TOMa/95Mmqo6T/YdQWQdVlVQ33PZda7A/I2jBYeOXDj16ftVgn4DWM9xcFVdy2Z3Jg3RGCNbjww==", "dependencies": { "@babel/runtime": "^7.20.13", "@polkadot/x-global": "10.3.1" @@ -3290,7 +3551,8 @@ }, "node_modules/@polkadot/rpc-core/node_modules/@polkadot/x-textencoder": { "version": "10.3.1", - "license": "Apache-2.0", + "resolved": "https://registry.npmjs.org/@polkadot/x-textencoder/-/x-textencoder-10.3.1.tgz", + "integrity": "sha512-nkNsVW1GNT1XfV4IuKlUkdeo9sFJ/2IPhBbC54gu469NFl52b5be5H9x+IHdqqA8cG0ElvsojTd3K3tVD3sx6Q==", "dependencies": { "@babel/runtime": "^7.20.13", "@polkadot/x-global": "10.3.1" @@ -3301,7 +3563,8 @@ }, "node_modules/@polkadot/rpc-provider": { "version": "9.13.2", - "license": "Apache-2.0", + "resolved": "https://registry.npmjs.org/@polkadot/rpc-provider/-/rpc-provider-9.13.2.tgz", + "integrity": "sha512-YVKTIEVxvkoN3i+Eez6oBHtzIu15R4xpBS0CNcnpFTjRePYi39wpO+csZ/DxtK2YEJaeRHhKJO0a9o4rGitpAQ==", "dependencies": { "@babel/runtime": "^7.20.13", "@polkadot/keyring": "^10.3.1", @@ -3325,7 +3588,8 @@ }, "node_modules/@polkadot/rpc-provider/node_modules/@polkadot/util": { "version": "10.3.1", - "license": "Apache-2.0", + "resolved": "https://registry.npmjs.org/@polkadot/util/-/util-10.3.1.tgz", + "integrity": "sha512-8j+O7gj7upj1ZwlGxmAaf3+V0xc0VZvqPeBvTFV30Oi1xoMDNH0q2vKst08wARQUUm1Gi0zIlipDMo0n4Sr7tw==", "dependencies": { "@babel/runtime": "^7.20.13", "@polkadot/x-bigint": "10.3.1", @@ -3341,7 +3605,8 @@ }, "node_modules/@polkadot/rpc-provider/node_modules/@polkadot/x-bigint": { "version": "10.3.1", - "license": "Apache-2.0", + "resolved": "https://registry.npmjs.org/@polkadot/x-bigint/-/x-bigint-10.3.1.tgz", + "integrity": "sha512-hXtnwy9LXmV43B9pT8gY1zwdNRhpPBEOk1PfL2Ze0Iw2zd+lbljD3GwDP5mkBfIYIw/s15eRTjiUIKfpTRRDXw==", "dependencies": { "@babel/runtime": "^7.20.13", "@polkadot/x-global": "10.3.1" @@ -3352,7 +3617,8 @@ }, "node_modules/@polkadot/rpc-provider/node_modules/@polkadot/x-global": { "version": "10.3.1", - "license": "Apache-2.0", + "resolved": "https://registry.npmjs.org/@polkadot/x-global/-/x-global-10.3.1.tgz", + "integrity": "sha512-kPAVYP2H3aTjS7BKqGkYV1I3Mu03dnRyeX+rDebC8xoN+hUC5bhb7dzCtb5F8DdqlvFl67ZxRaVtq2XUssGTKQ==", "dependencies": { "@babel/runtime": "^7.20.13" }, @@ -3362,7 +3628,8 @@ }, "node_modules/@polkadot/rpc-provider/node_modules/@polkadot/x-textdecoder": { "version": "10.3.1", - "license": "Apache-2.0", + "resolved": "https://registry.npmjs.org/@polkadot/x-textdecoder/-/x-textdecoder-10.3.1.tgz", + "integrity": "sha512-BgjcImRYCM2TOMa/95Mmqo6T/YdQWQdVlVQ33PZda7A/I2jBYeOXDj16ftVgn4DWM9xcFVdy2Z3Jg3RGCNbjww==", "dependencies": { "@babel/runtime": "^7.20.13", "@polkadot/x-global": "10.3.1" @@ -3373,7 +3640,8 @@ }, "node_modules/@polkadot/rpc-provider/node_modules/@polkadot/x-textencoder": { "version": "10.3.1", - "license": "Apache-2.0", + "resolved": "https://registry.npmjs.org/@polkadot/x-textencoder/-/x-textencoder-10.3.1.tgz", + "integrity": "sha512-nkNsVW1GNT1XfV4IuKlUkdeo9sFJ/2IPhBbC54gu469NFl52b5be5H9x+IHdqqA8cG0ElvsojTd3K3tVD3sx6Q==", "dependencies": { "@babel/runtime": "^7.20.13", "@polkadot/x-global": "10.3.1" @@ -3384,12 +3652,14 @@ }, "node_modules/@polkadot/rpc-provider/node_modules/eventemitter3": { "version": "5.0.0", - "license": "MIT" + "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-5.0.0.tgz", + "integrity": "sha512-riuVbElZZNXLeLEoprfNYoDSwTBRR44X3mnhdI1YcnENpWTCsTTVZ2zFuqQcpoyqPQIUXdiPEU0ECAq0KQRaHg==" }, "node_modules/@polkadot/typegen": { "version": "9.13.2", + "resolved": "https://registry.npmjs.org/@polkadot/typegen/-/typegen-9.13.2.tgz", + "integrity": "sha512-aPLw8loWXT1+RQ+SaWsZuYO/AG9rFo4lTgBnglDaADJ13OppXhQRc2CnMoq8qvwHOPlBdOqzdBGqjjUer37WFQ==", "dev": true, - "license": "Apache-2.0", "dependencies": { "@babel/core": "^7.20.12", "@babel/register": "^7.18.9", @@ -3423,8 +3693,9 @@ }, "node_modules/@polkadot/typegen/node_modules/@polkadot/util": { "version": "10.3.1", + "resolved": "https://registry.npmjs.org/@polkadot/util/-/util-10.3.1.tgz", + "integrity": "sha512-8j+O7gj7upj1ZwlGxmAaf3+V0xc0VZvqPeBvTFV30Oi1xoMDNH0q2vKst08wARQUUm1Gi0zIlipDMo0n4Sr7tw==", "dev": true, - "license": "Apache-2.0", "dependencies": { "@babel/runtime": "^7.20.13", "@polkadot/x-bigint": "10.3.1", @@ -3440,8 +3711,9 @@ }, "node_modules/@polkadot/typegen/node_modules/@polkadot/x-bigint": { "version": "10.3.1", + "resolved": "https://registry.npmjs.org/@polkadot/x-bigint/-/x-bigint-10.3.1.tgz", + "integrity": "sha512-hXtnwy9LXmV43B9pT8gY1zwdNRhpPBEOk1PfL2Ze0Iw2zd+lbljD3GwDP5mkBfIYIw/s15eRTjiUIKfpTRRDXw==", "dev": true, - "license": "Apache-2.0", "dependencies": { "@babel/runtime": "^7.20.13", "@polkadot/x-global": "10.3.1" @@ -3452,8 +3724,9 @@ }, "node_modules/@polkadot/typegen/node_modules/@polkadot/x-global": { "version": "10.3.1", + "resolved": "https://registry.npmjs.org/@polkadot/x-global/-/x-global-10.3.1.tgz", + "integrity": "sha512-kPAVYP2H3aTjS7BKqGkYV1I3Mu03dnRyeX+rDebC8xoN+hUC5bhb7dzCtb5F8DdqlvFl67ZxRaVtq2XUssGTKQ==", "dev": true, - "license": "Apache-2.0", "dependencies": { "@babel/runtime": "^7.20.13" }, @@ -3463,8 +3736,9 @@ }, "node_modules/@polkadot/typegen/node_modules/@polkadot/x-textdecoder": { "version": "10.3.1", + "resolved": "https://registry.npmjs.org/@polkadot/x-textdecoder/-/x-textdecoder-10.3.1.tgz", + "integrity": "sha512-BgjcImRYCM2TOMa/95Mmqo6T/YdQWQdVlVQ33PZda7A/I2jBYeOXDj16ftVgn4DWM9xcFVdy2Z3Jg3RGCNbjww==", "dev": true, - "license": "Apache-2.0", "dependencies": { "@babel/runtime": "^7.20.13", "@polkadot/x-global": "10.3.1" @@ -3475,8 +3749,9 @@ }, "node_modules/@polkadot/typegen/node_modules/@polkadot/x-textencoder": { "version": "10.3.1", + "resolved": "https://registry.npmjs.org/@polkadot/x-textencoder/-/x-textencoder-10.3.1.tgz", + "integrity": "sha512-nkNsVW1GNT1XfV4IuKlUkdeo9sFJ/2IPhBbC54gu469NFl52b5be5H9x+IHdqqA8cG0ElvsojTd3K3tVD3sx6Q==", "dev": true, - "license": "Apache-2.0", "dependencies": { "@babel/runtime": "^7.20.13", "@polkadot/x-global": "10.3.1" @@ -3487,7 +3762,8 @@ }, "node_modules/@polkadot/types": { "version": "9.13.2", - "license": "Apache-2.0", + "resolved": "https://registry.npmjs.org/@polkadot/types/-/types-9.13.2.tgz", + "integrity": "sha512-QuMu0DR0fG+chEOgnBHdiZ88l4E5c2LhEkdtJRnwhEuwN1p89NKtal76D4amJuDItl4andOtO1KfyqzR98YiQA==", "dependencies": { "@babel/runtime": "^7.20.13", "@polkadot/keyring": "^10.3.1", @@ -3504,7 +3780,8 @@ }, "node_modules/@polkadot/types-augment": { "version": "9.13.2", - "license": "Apache-2.0", + "resolved": "https://registry.npmjs.org/@polkadot/types-augment/-/types-augment-9.13.2.tgz", + "integrity": "sha512-ASu8XymOQT3ag9LKyhI2VLFfyaiCTiHWfhQcdsrRkwbR7MPksVVQmtr824rq7Gm7gNx2rxa3xex5irlosrW5fg==", "dependencies": { "@babel/runtime": "^7.20.13", "@polkadot/types": "9.13.2", @@ -3517,7 +3794,8 @@ }, "node_modules/@polkadot/types-augment/node_modules/@polkadot/util": { "version": "10.3.1", - "license": "Apache-2.0", + "resolved": "https://registry.npmjs.org/@polkadot/util/-/util-10.3.1.tgz", + "integrity": "sha512-8j+O7gj7upj1ZwlGxmAaf3+V0xc0VZvqPeBvTFV30Oi1xoMDNH0q2vKst08wARQUUm1Gi0zIlipDMo0n4Sr7tw==", "dependencies": { "@babel/runtime": "^7.20.13", "@polkadot/x-bigint": "10.3.1", @@ -3533,7 +3811,8 @@ }, "node_modules/@polkadot/types-augment/node_modules/@polkadot/x-bigint": { "version": "10.3.1", - "license": "Apache-2.0", + "resolved": "https://registry.npmjs.org/@polkadot/x-bigint/-/x-bigint-10.3.1.tgz", + "integrity": "sha512-hXtnwy9LXmV43B9pT8gY1zwdNRhpPBEOk1PfL2Ze0Iw2zd+lbljD3GwDP5mkBfIYIw/s15eRTjiUIKfpTRRDXw==", "dependencies": { "@babel/runtime": "^7.20.13", "@polkadot/x-global": "10.3.1" @@ -3544,7 +3823,8 @@ }, "node_modules/@polkadot/types-augment/node_modules/@polkadot/x-global": { "version": "10.3.1", - "license": "Apache-2.0", + "resolved": "https://registry.npmjs.org/@polkadot/x-global/-/x-global-10.3.1.tgz", + "integrity": "sha512-kPAVYP2H3aTjS7BKqGkYV1I3Mu03dnRyeX+rDebC8xoN+hUC5bhb7dzCtb5F8DdqlvFl67ZxRaVtq2XUssGTKQ==", "dependencies": { "@babel/runtime": "^7.20.13" }, @@ -3554,7 +3834,8 @@ }, "node_modules/@polkadot/types-augment/node_modules/@polkadot/x-textdecoder": { "version": "10.3.1", - "license": "Apache-2.0", + "resolved": "https://registry.npmjs.org/@polkadot/x-textdecoder/-/x-textdecoder-10.3.1.tgz", + "integrity": "sha512-BgjcImRYCM2TOMa/95Mmqo6T/YdQWQdVlVQ33PZda7A/I2jBYeOXDj16ftVgn4DWM9xcFVdy2Z3Jg3RGCNbjww==", "dependencies": { "@babel/runtime": "^7.20.13", "@polkadot/x-global": "10.3.1" @@ -3565,7 +3846,8 @@ }, "node_modules/@polkadot/types-augment/node_modules/@polkadot/x-textencoder": { "version": "10.3.1", - "license": "Apache-2.0", + "resolved": "https://registry.npmjs.org/@polkadot/x-textencoder/-/x-textencoder-10.3.1.tgz", + "integrity": "sha512-nkNsVW1GNT1XfV4IuKlUkdeo9sFJ/2IPhBbC54gu469NFl52b5be5H9x+IHdqqA8cG0ElvsojTd3K3tVD3sx6Q==", "dependencies": { "@babel/runtime": "^7.20.13", "@polkadot/x-global": "10.3.1" @@ -3576,7 +3858,8 @@ }, "node_modules/@polkadot/types-codec": { "version": "9.13.2", - "license": "Apache-2.0", + "resolved": "https://registry.npmjs.org/@polkadot/types-codec/-/types-codec-9.13.2.tgz", + "integrity": "sha512-djKgT7AYMqicrP4US6kaRAWxKomiZoXIYN+l/AvG2B/FSYauNBHhGLKHV3PKXo3aWc+YXwjBj0y7q7SKh0VLOg==", "dependencies": { "@babel/runtime": "^7.20.13", "@polkadot/util": "^10.3.1", @@ -3588,7 +3871,8 @@ }, "node_modules/@polkadot/types-codec/node_modules/@polkadot/util": { "version": "10.3.1", - "license": "Apache-2.0", + "resolved": "https://registry.npmjs.org/@polkadot/util/-/util-10.3.1.tgz", + "integrity": "sha512-8j+O7gj7upj1ZwlGxmAaf3+V0xc0VZvqPeBvTFV30Oi1xoMDNH0q2vKst08wARQUUm1Gi0zIlipDMo0n4Sr7tw==", "dependencies": { "@babel/runtime": "^7.20.13", "@polkadot/x-bigint": "10.3.1", @@ -3604,7 +3888,8 @@ }, "node_modules/@polkadot/types-codec/node_modules/@polkadot/x-bigint": { "version": "10.3.1", - "license": "Apache-2.0", + "resolved": "https://registry.npmjs.org/@polkadot/x-bigint/-/x-bigint-10.3.1.tgz", + "integrity": "sha512-hXtnwy9LXmV43B9pT8gY1zwdNRhpPBEOk1PfL2Ze0Iw2zd+lbljD3GwDP5mkBfIYIw/s15eRTjiUIKfpTRRDXw==", "dependencies": { "@babel/runtime": "^7.20.13", "@polkadot/x-global": "10.3.1" @@ -3615,7 +3900,8 @@ }, "node_modules/@polkadot/types-codec/node_modules/@polkadot/x-global": { "version": "10.3.1", - "license": "Apache-2.0", + "resolved": "https://registry.npmjs.org/@polkadot/x-global/-/x-global-10.3.1.tgz", + "integrity": "sha512-kPAVYP2H3aTjS7BKqGkYV1I3Mu03dnRyeX+rDebC8xoN+hUC5bhb7dzCtb5F8DdqlvFl67ZxRaVtq2XUssGTKQ==", "dependencies": { "@babel/runtime": "^7.20.13" }, @@ -3625,7 +3911,8 @@ }, "node_modules/@polkadot/types-codec/node_modules/@polkadot/x-textdecoder": { "version": "10.3.1", - "license": "Apache-2.0", + "resolved": "https://registry.npmjs.org/@polkadot/x-textdecoder/-/x-textdecoder-10.3.1.tgz", + "integrity": "sha512-BgjcImRYCM2TOMa/95Mmqo6T/YdQWQdVlVQ33PZda7A/I2jBYeOXDj16ftVgn4DWM9xcFVdy2Z3Jg3RGCNbjww==", "dependencies": { "@babel/runtime": "^7.20.13", "@polkadot/x-global": "10.3.1" @@ -3636,7 +3923,8 @@ }, "node_modules/@polkadot/types-codec/node_modules/@polkadot/x-textencoder": { "version": "10.3.1", - "license": "Apache-2.0", + "resolved": "https://registry.npmjs.org/@polkadot/x-textencoder/-/x-textencoder-10.3.1.tgz", + "integrity": "sha512-nkNsVW1GNT1XfV4IuKlUkdeo9sFJ/2IPhBbC54gu469NFl52b5be5H9x+IHdqqA8cG0ElvsojTd3K3tVD3sx6Q==", "dependencies": { "@babel/runtime": "^7.20.13", "@polkadot/x-global": "10.3.1" @@ -3647,7 +3935,8 @@ }, "node_modules/@polkadot/types-create": { "version": "9.13.2", - "license": "Apache-2.0", + "resolved": "https://registry.npmjs.org/@polkadot/types-create/-/types-create-9.13.2.tgz", + "integrity": "sha512-M/clUAD/eOes2mKZAK2f8SVenAqXOf52LlMwvliYirbYEpuH10TrTE4ZYpkqnjTQ3l25tVePOvozbnnXt3bApA==", "dependencies": { "@babel/runtime": "^7.20.13", "@polkadot/types-codec": "9.13.2", @@ -3659,7 +3948,8 @@ }, "node_modules/@polkadot/types-create/node_modules/@polkadot/util": { "version": "10.3.1", - "license": "Apache-2.0", + "resolved": "https://registry.npmjs.org/@polkadot/util/-/util-10.3.1.tgz", + "integrity": "sha512-8j+O7gj7upj1ZwlGxmAaf3+V0xc0VZvqPeBvTFV30Oi1xoMDNH0q2vKst08wARQUUm1Gi0zIlipDMo0n4Sr7tw==", "dependencies": { "@babel/runtime": "^7.20.13", "@polkadot/x-bigint": "10.3.1", @@ -3675,7 +3965,8 @@ }, "node_modules/@polkadot/types-create/node_modules/@polkadot/x-bigint": { "version": "10.3.1", - "license": "Apache-2.0", + "resolved": "https://registry.npmjs.org/@polkadot/x-bigint/-/x-bigint-10.3.1.tgz", + "integrity": "sha512-hXtnwy9LXmV43B9pT8gY1zwdNRhpPBEOk1PfL2Ze0Iw2zd+lbljD3GwDP5mkBfIYIw/s15eRTjiUIKfpTRRDXw==", "dependencies": { "@babel/runtime": "^7.20.13", "@polkadot/x-global": "10.3.1" @@ -3686,7 +3977,8 @@ }, "node_modules/@polkadot/types-create/node_modules/@polkadot/x-global": { "version": "10.3.1", - "license": "Apache-2.0", + "resolved": "https://registry.npmjs.org/@polkadot/x-global/-/x-global-10.3.1.tgz", + "integrity": "sha512-kPAVYP2H3aTjS7BKqGkYV1I3Mu03dnRyeX+rDebC8xoN+hUC5bhb7dzCtb5F8DdqlvFl67ZxRaVtq2XUssGTKQ==", "dependencies": { "@babel/runtime": "^7.20.13" }, @@ -3696,7 +3988,8 @@ }, "node_modules/@polkadot/types-create/node_modules/@polkadot/x-textdecoder": { "version": "10.3.1", - "license": "Apache-2.0", + "resolved": "https://registry.npmjs.org/@polkadot/x-textdecoder/-/x-textdecoder-10.3.1.tgz", + "integrity": "sha512-BgjcImRYCM2TOMa/95Mmqo6T/YdQWQdVlVQ33PZda7A/I2jBYeOXDj16ftVgn4DWM9xcFVdy2Z3Jg3RGCNbjww==", "dependencies": { "@babel/runtime": "^7.20.13", "@polkadot/x-global": "10.3.1" @@ -3707,7 +4000,8 @@ }, "node_modules/@polkadot/types-create/node_modules/@polkadot/x-textencoder": { "version": "10.3.1", - "license": "Apache-2.0", + "resolved": "https://registry.npmjs.org/@polkadot/x-textencoder/-/x-textencoder-10.3.1.tgz", + "integrity": "sha512-nkNsVW1GNT1XfV4IuKlUkdeo9sFJ/2IPhBbC54gu469NFl52b5be5H9x+IHdqqA8cG0ElvsojTd3K3tVD3sx6Q==", "dependencies": { "@babel/runtime": "^7.20.13", "@polkadot/x-global": "10.3.1" @@ -3718,7 +4012,8 @@ }, "node_modules/@polkadot/types-known": { "version": "9.13.2", - "license": "Apache-2.0", + "resolved": "https://registry.npmjs.org/@polkadot/types-known/-/types-known-9.13.2.tgz", + "integrity": "sha512-H8oetgLNhaIQ6a7bJ7GuBGSC9bbkrYZ9x67nHdzYNnWLRIfk6BzY1CMsSVUGYThL74McnzOAYQarj2Xbah3QYQ==", "dependencies": { "@babel/runtime": "^7.20.13", "@polkadot/networks": "^10.3.1", @@ -3733,7 +4028,8 @@ }, "node_modules/@polkadot/types-known/node_modules/@polkadot/util": { "version": "10.3.1", - "license": "Apache-2.0", + "resolved": "https://registry.npmjs.org/@polkadot/util/-/util-10.3.1.tgz", + "integrity": "sha512-8j+O7gj7upj1ZwlGxmAaf3+V0xc0VZvqPeBvTFV30Oi1xoMDNH0q2vKst08wARQUUm1Gi0zIlipDMo0n4Sr7tw==", "dependencies": { "@babel/runtime": "^7.20.13", "@polkadot/x-bigint": "10.3.1", @@ -3749,7 +4045,8 @@ }, "node_modules/@polkadot/types-known/node_modules/@polkadot/x-bigint": { "version": "10.3.1", - "license": "Apache-2.0", + "resolved": "https://registry.npmjs.org/@polkadot/x-bigint/-/x-bigint-10.3.1.tgz", + "integrity": "sha512-hXtnwy9LXmV43B9pT8gY1zwdNRhpPBEOk1PfL2Ze0Iw2zd+lbljD3GwDP5mkBfIYIw/s15eRTjiUIKfpTRRDXw==", "dependencies": { "@babel/runtime": "^7.20.13", "@polkadot/x-global": "10.3.1" @@ -3760,7 +4057,8 @@ }, "node_modules/@polkadot/types-known/node_modules/@polkadot/x-global": { "version": "10.3.1", - "license": "Apache-2.0", + "resolved": "https://registry.npmjs.org/@polkadot/x-global/-/x-global-10.3.1.tgz", + "integrity": "sha512-kPAVYP2H3aTjS7BKqGkYV1I3Mu03dnRyeX+rDebC8xoN+hUC5bhb7dzCtb5F8DdqlvFl67ZxRaVtq2XUssGTKQ==", "dependencies": { "@babel/runtime": "^7.20.13" }, @@ -3770,7 +4068,8 @@ }, "node_modules/@polkadot/types-known/node_modules/@polkadot/x-textdecoder": { "version": "10.3.1", - "license": "Apache-2.0", + "resolved": "https://registry.npmjs.org/@polkadot/x-textdecoder/-/x-textdecoder-10.3.1.tgz", + "integrity": "sha512-BgjcImRYCM2TOMa/95Mmqo6T/YdQWQdVlVQ33PZda7A/I2jBYeOXDj16ftVgn4DWM9xcFVdy2Z3Jg3RGCNbjww==", "dependencies": { "@babel/runtime": "^7.20.13", "@polkadot/x-global": "10.3.1" @@ -3781,7 +4080,8 @@ }, "node_modules/@polkadot/types-known/node_modules/@polkadot/x-textencoder": { "version": "10.3.1", - "license": "Apache-2.0", + "resolved": "https://registry.npmjs.org/@polkadot/x-textencoder/-/x-textencoder-10.3.1.tgz", + "integrity": "sha512-nkNsVW1GNT1XfV4IuKlUkdeo9sFJ/2IPhBbC54gu469NFl52b5be5H9x+IHdqqA8cG0ElvsojTd3K3tVD3sx6Q==", "dependencies": { "@babel/runtime": "^7.20.13", "@polkadot/x-global": "10.3.1" @@ -3792,7 +4092,8 @@ }, "node_modules/@polkadot/types-support": { "version": "9.13.2", - "license": "Apache-2.0", + "resolved": "https://registry.npmjs.org/@polkadot/types-support/-/types-support-9.13.2.tgz", + "integrity": "sha512-YXvNOiSbu9hKzAMSsLBmljqrIyYAPmsZ/O/GBDZcjELgn0Nsw/hRPKBcNI+5U5qGvOtLdwgulfTD9hp9Cl06lw==", "dependencies": { "@babel/runtime": "^7.20.13", "@polkadot/util": "^10.3.1" @@ -3803,7 +4104,8 @@ }, "node_modules/@polkadot/types-support/node_modules/@polkadot/util": { "version": "10.3.1", - "license": "Apache-2.0", + "resolved": "https://registry.npmjs.org/@polkadot/util/-/util-10.3.1.tgz", + "integrity": "sha512-8j+O7gj7upj1ZwlGxmAaf3+V0xc0VZvqPeBvTFV30Oi1xoMDNH0q2vKst08wARQUUm1Gi0zIlipDMo0n4Sr7tw==", "dependencies": { "@babel/runtime": "^7.20.13", "@polkadot/x-bigint": "10.3.1", @@ -3819,7 +4121,8 @@ }, "node_modules/@polkadot/types-support/node_modules/@polkadot/x-bigint": { "version": "10.3.1", - "license": "Apache-2.0", + "resolved": "https://registry.npmjs.org/@polkadot/x-bigint/-/x-bigint-10.3.1.tgz", + "integrity": "sha512-hXtnwy9LXmV43B9pT8gY1zwdNRhpPBEOk1PfL2Ze0Iw2zd+lbljD3GwDP5mkBfIYIw/s15eRTjiUIKfpTRRDXw==", "dependencies": { "@babel/runtime": "^7.20.13", "@polkadot/x-global": "10.3.1" @@ -3830,7 +4133,8 @@ }, "node_modules/@polkadot/types-support/node_modules/@polkadot/x-global": { "version": "10.3.1", - "license": "Apache-2.0", + "resolved": "https://registry.npmjs.org/@polkadot/x-global/-/x-global-10.3.1.tgz", + "integrity": "sha512-kPAVYP2H3aTjS7BKqGkYV1I3Mu03dnRyeX+rDebC8xoN+hUC5bhb7dzCtb5F8DdqlvFl67ZxRaVtq2XUssGTKQ==", "dependencies": { "@babel/runtime": "^7.20.13" }, @@ -3840,7 +4144,8 @@ }, "node_modules/@polkadot/types-support/node_modules/@polkadot/x-textdecoder": { "version": "10.3.1", - "license": "Apache-2.0", + "resolved": "https://registry.npmjs.org/@polkadot/x-textdecoder/-/x-textdecoder-10.3.1.tgz", + "integrity": "sha512-BgjcImRYCM2TOMa/95Mmqo6T/YdQWQdVlVQ33PZda7A/I2jBYeOXDj16ftVgn4DWM9xcFVdy2Z3Jg3RGCNbjww==", "dependencies": { "@babel/runtime": "^7.20.13", "@polkadot/x-global": "10.3.1" @@ -3851,7 +4156,8 @@ }, "node_modules/@polkadot/types-support/node_modules/@polkadot/x-textencoder": { "version": "10.3.1", - "license": "Apache-2.0", + "resolved": "https://registry.npmjs.org/@polkadot/x-textencoder/-/x-textencoder-10.3.1.tgz", + "integrity": "sha512-nkNsVW1GNT1XfV4IuKlUkdeo9sFJ/2IPhBbC54gu469NFl52b5be5H9x+IHdqqA8cG0ElvsojTd3K3tVD3sx6Q==", "dependencies": { "@babel/runtime": "^7.20.13", "@polkadot/x-global": "10.3.1" @@ -3862,7 +4168,8 @@ }, "node_modules/@polkadot/types/node_modules/@polkadot/util": { "version": "10.3.1", - "license": "Apache-2.0", + "resolved": "https://registry.npmjs.org/@polkadot/util/-/util-10.3.1.tgz", + "integrity": "sha512-8j+O7gj7upj1ZwlGxmAaf3+V0xc0VZvqPeBvTFV30Oi1xoMDNH0q2vKst08wARQUUm1Gi0zIlipDMo0n4Sr7tw==", "dependencies": { "@babel/runtime": "^7.20.13", "@polkadot/x-bigint": "10.3.1", @@ -3878,7 +4185,8 @@ }, "node_modules/@polkadot/types/node_modules/@polkadot/x-bigint": { "version": "10.3.1", - "license": "Apache-2.0", + "resolved": "https://registry.npmjs.org/@polkadot/x-bigint/-/x-bigint-10.3.1.tgz", + "integrity": "sha512-hXtnwy9LXmV43B9pT8gY1zwdNRhpPBEOk1PfL2Ze0Iw2zd+lbljD3GwDP5mkBfIYIw/s15eRTjiUIKfpTRRDXw==", "dependencies": { "@babel/runtime": "^7.20.13", "@polkadot/x-global": "10.3.1" @@ -3889,7 +4197,8 @@ }, "node_modules/@polkadot/types/node_modules/@polkadot/x-global": { "version": "10.3.1", - "license": "Apache-2.0", + "resolved": "https://registry.npmjs.org/@polkadot/x-global/-/x-global-10.3.1.tgz", + "integrity": "sha512-kPAVYP2H3aTjS7BKqGkYV1I3Mu03dnRyeX+rDebC8xoN+hUC5bhb7dzCtb5F8DdqlvFl67ZxRaVtq2XUssGTKQ==", "dependencies": { "@babel/runtime": "^7.20.13" }, @@ -3899,7 +4208,8 @@ }, "node_modules/@polkadot/types/node_modules/@polkadot/x-textdecoder": { "version": "10.3.1", - "license": "Apache-2.0", + "resolved": "https://registry.npmjs.org/@polkadot/x-textdecoder/-/x-textdecoder-10.3.1.tgz", + "integrity": "sha512-BgjcImRYCM2TOMa/95Mmqo6T/YdQWQdVlVQ33PZda7A/I2jBYeOXDj16ftVgn4DWM9xcFVdy2Z3Jg3RGCNbjww==", "dependencies": { "@babel/runtime": "^7.20.13", "@polkadot/x-global": "10.3.1" @@ -3910,7 +4220,8 @@ }, "node_modules/@polkadot/types/node_modules/@polkadot/x-textencoder": { "version": "10.3.1", - "license": "Apache-2.0", + "resolved": "https://registry.npmjs.org/@polkadot/x-textencoder/-/x-textencoder-10.3.1.tgz", + "integrity": "sha512-nkNsVW1GNT1XfV4IuKlUkdeo9sFJ/2IPhBbC54gu469NFl52b5be5H9x+IHdqqA8cG0ElvsojTd3K3tVD3sx6Q==", "dependencies": { "@babel/runtime": "^7.20.13", "@polkadot/x-global": "10.3.1" @@ -3921,7 +4232,8 @@ }, "node_modules/@polkadot/util": { "version": "10.2.1", - "license": "Apache-2.0", + "resolved": "https://registry.npmjs.org/@polkadot/util/-/util-10.2.1.tgz", + "integrity": "sha512-ewGKSOp+VXKEeCvpCCP2Qqi/FVkewBF9vb/N8pRwuNQ2XE9k1lnsOZZeQemVBDhKsZz+h3IeNcWejaF6K3vYHQ==", "dependencies": { "@babel/runtime": "^7.20.6", "@polkadot/x-bigint": "10.2.1", @@ -3937,7 +4249,8 @@ }, "node_modules/@polkadot/util-crypto": { "version": "10.3.1", - "license": "Apache-2.0", + "resolved": "https://registry.npmjs.org/@polkadot/util-crypto/-/util-crypto-10.3.1.tgz", + "integrity": "sha512-viqLMuNGrbB2lyDIYdXAl3tq/Em/Y7ql2FvCTHJmxXaB5C1NXiWf1SqFAahUJKohL+ke5IL0jr19wZu/f88lIQ==", "dependencies": { "@babel/runtime": "^7.20.13", "@noble/hashes": "1.1.5", @@ -3960,7 +4273,8 @@ }, "node_modules/@polkadot/util-crypto/node_modules/@polkadot/util": { "version": "10.3.1", - "license": "Apache-2.0", + "resolved": "https://registry.npmjs.org/@polkadot/util/-/util-10.3.1.tgz", + "integrity": "sha512-8j+O7gj7upj1ZwlGxmAaf3+V0xc0VZvqPeBvTFV30Oi1xoMDNH0q2vKst08wARQUUm1Gi0zIlipDMo0n4Sr7tw==", "dependencies": { "@babel/runtime": "^7.20.13", "@polkadot/x-bigint": "10.3.1", @@ -3976,7 +4290,8 @@ }, "node_modules/@polkadot/util-crypto/node_modules/@polkadot/x-bigint": { "version": "10.3.1", - "license": "Apache-2.0", + "resolved": "https://registry.npmjs.org/@polkadot/x-bigint/-/x-bigint-10.3.1.tgz", + "integrity": "sha512-hXtnwy9LXmV43B9pT8gY1zwdNRhpPBEOk1PfL2Ze0Iw2zd+lbljD3GwDP5mkBfIYIw/s15eRTjiUIKfpTRRDXw==", "dependencies": { "@babel/runtime": "^7.20.13", "@polkadot/x-global": "10.3.1" @@ -3987,7 +4302,8 @@ }, "node_modules/@polkadot/util-crypto/node_modules/@polkadot/x-global": { "version": "10.3.1", - "license": "Apache-2.0", + "resolved": "https://registry.npmjs.org/@polkadot/x-global/-/x-global-10.3.1.tgz", + "integrity": "sha512-kPAVYP2H3aTjS7BKqGkYV1I3Mu03dnRyeX+rDebC8xoN+hUC5bhb7dzCtb5F8DdqlvFl67ZxRaVtq2XUssGTKQ==", "dependencies": { "@babel/runtime": "^7.20.13" }, @@ -3997,7 +4313,8 @@ }, "node_modules/@polkadot/util-crypto/node_modules/@polkadot/x-textdecoder": { "version": "10.3.1", - "license": "Apache-2.0", + "resolved": "https://registry.npmjs.org/@polkadot/x-textdecoder/-/x-textdecoder-10.3.1.tgz", + "integrity": "sha512-BgjcImRYCM2TOMa/95Mmqo6T/YdQWQdVlVQ33PZda7A/I2jBYeOXDj16ftVgn4DWM9xcFVdy2Z3Jg3RGCNbjww==", "dependencies": { "@babel/runtime": "^7.20.13", "@polkadot/x-global": "10.3.1" @@ -4008,7 +4325,8 @@ }, "node_modules/@polkadot/util-crypto/node_modules/@polkadot/x-textencoder": { "version": "10.3.1", - "license": "Apache-2.0", + "resolved": "https://registry.npmjs.org/@polkadot/x-textencoder/-/x-textencoder-10.3.1.tgz", + "integrity": "sha512-nkNsVW1GNT1XfV4IuKlUkdeo9sFJ/2IPhBbC54gu469NFl52b5be5H9x+IHdqqA8cG0ElvsojTd3K3tVD3sx6Q==", "dependencies": { "@babel/runtime": "^7.20.13", "@polkadot/x-global": "10.3.1" @@ -4019,7 +4337,8 @@ }, "node_modules/@polkadot/wasm-bridge": { "version": "6.4.1", - "license": "Apache-2.0", + "resolved": "https://registry.npmjs.org/@polkadot/wasm-bridge/-/wasm-bridge-6.4.1.tgz", + "integrity": "sha512-QZDvz6dsUlbYsaMV5biZgZWkYH9BC5AfhT0f0/knv8+LrbAoQdP3Asbvddw8vyU9sbpuCHXrd4bDLBwUCRfrBQ==", "dependencies": { "@babel/runtime": "^7.20.6" }, @@ -4033,7 +4352,8 @@ }, "node_modules/@polkadot/wasm-crypto": { "version": "6.4.1", - "license": "Apache-2.0", + "resolved": "https://registry.npmjs.org/@polkadot/wasm-crypto/-/wasm-crypto-6.4.1.tgz", + "integrity": "sha512-FH+dcDPdhSLJvwL0pMLtn/LIPd62QDPODZRCmDyw+pFjLOMaRBc7raomWUOqyRWJTnqVf/iscc2rLVLNMyt7ag==", "dependencies": { "@babel/runtime": "^7.20.6", "@polkadot/wasm-bridge": "6.4.1", @@ -4052,7 +4372,8 @@ }, "node_modules/@polkadot/wasm-crypto-asmjs": { "version": "6.4.1", - "license": "Apache-2.0", + "resolved": "https://registry.npmjs.org/@polkadot/wasm-crypto-asmjs/-/wasm-crypto-asmjs-6.4.1.tgz", + "integrity": "sha512-UxZTwuBZlnODGIQdCsE2Sn/jU0O2xrNQ/TkhRFELfkZXEXTNu4lw6NpaKq7Iey4L+wKd8h4lT3VPVkMcPBLOvA==", "dependencies": { "@babel/runtime": "^7.20.6" }, @@ -4065,7 +4386,8 @@ }, "node_modules/@polkadot/wasm-crypto-init": { "version": "6.4.1", - "license": "Apache-2.0", + "resolved": "https://registry.npmjs.org/@polkadot/wasm-crypto-init/-/wasm-crypto-init-6.4.1.tgz", + "integrity": "sha512-1ALagSi/nfkyFaH6JDYfy/QbicVbSn99K8PV9rctDUfxc7P06R7CoqbjGQ4OMPX6w1WYVPU7B4jPHGLYBlVuMw==", "dependencies": { "@babel/runtime": "^7.20.6", "@polkadot/wasm-bridge": "6.4.1", @@ -4082,7 +4404,8 @@ }, "node_modules/@polkadot/wasm-crypto-wasm": { "version": "6.4.1", - "license": "Apache-2.0", + "resolved": "https://registry.npmjs.org/@polkadot/wasm-crypto-wasm/-/wasm-crypto-wasm-6.4.1.tgz", + "integrity": "sha512-3VV9ZGzh0ZY3SmkkSw+0TRXxIpiO0nB8lFwlRgcwaCihwrvLfRnH9GI8WE12mKsHVjWTEVR3ogzILJxccAUjDA==", "dependencies": { "@babel/runtime": "^7.20.6", "@polkadot/wasm-util": "6.4.1" @@ -4096,7 +4419,8 @@ }, "node_modules/@polkadot/wasm-util": { "version": "6.4.1", - "license": "Apache-2.0", + "resolved": "https://registry.npmjs.org/@polkadot/wasm-util/-/wasm-util-6.4.1.tgz", + "integrity": "sha512-Uwo+WpEsDmFExWC5kTNvsVhvqXMZEKf4gUHXFn4c6Xz4lmieRT5g+1bO1KJ21pl4msuIgdV3Bksfs/oiqMFqlw==", "dependencies": { "@babel/runtime": "^7.20.6" }, @@ -4109,7 +4433,8 @@ }, "node_modules/@polkadot/x-bigint": { "version": "10.2.1", - "license": "Apache-2.0", + "resolved": "https://registry.npmjs.org/@polkadot/x-bigint/-/x-bigint-10.2.1.tgz", + "integrity": "sha512-asFroI2skC4gYv0oIqqb84DqCCxhNUTSCKobEg57WdXoT4TKrN9Uetg2AMSIHRiX/9lP3EPMhUjM1VVGobTQRQ==", "dependencies": { "@babel/runtime": "^7.20.6", "@polkadot/x-global": "10.2.1" @@ -4120,7 +4445,8 @@ }, "node_modules/@polkadot/x-fetch": { "version": "10.3.1", - "license": "Apache-2.0", + "resolved": "https://registry.npmjs.org/@polkadot/x-fetch/-/x-fetch-10.3.1.tgz", + "integrity": "sha512-v07jNzFK1uzuZ9pAg0oNyU84vFwyekGWZi7Xanh+GPKt6G5RY1JyvSW1GSNcyXpWiqqTnTuaoF+e5PRHeyOnhw==", "dependencies": { "@babel/runtime": "^7.20.13", "@polkadot/x-global": "10.3.1", @@ -4133,7 +4459,8 @@ }, "node_modules/@polkadot/x-fetch/node_modules/@polkadot/x-global": { "version": "10.3.1", - "license": "Apache-2.0", + "resolved": "https://registry.npmjs.org/@polkadot/x-global/-/x-global-10.3.1.tgz", + "integrity": "sha512-kPAVYP2H3aTjS7BKqGkYV1I3Mu03dnRyeX+rDebC8xoN+hUC5bhb7dzCtb5F8DdqlvFl67ZxRaVtq2XUssGTKQ==", "dependencies": { "@babel/runtime": "^7.20.13" }, @@ -4143,7 +4470,8 @@ }, "node_modules/@polkadot/x-global": { "version": "10.2.1", - "license": "Apache-2.0", + "resolved": "https://registry.npmjs.org/@polkadot/x-global/-/x-global-10.2.1.tgz", + "integrity": "sha512-kWmPku2lCcoYKU16+lWGOb95+6Lu9zo1trvzTWmAt7z0DXw2GlD9+qmDTt5iYGtguJsGXoRZDGilDTo3MeFrkA==", "dependencies": { "@babel/runtime": "^7.20.6" }, @@ -4153,7 +4481,8 @@ }, "node_modules/@polkadot/x-randomvalues": { "version": "10.3.1", - "license": "Apache-2.0", + "resolved": "https://registry.npmjs.org/@polkadot/x-randomvalues/-/x-randomvalues-10.3.1.tgz", + "integrity": "sha512-9b0hakA4ERcWui7LalqYN+gjYpHpL5OLBhktco62CI9oVNYYKVY6H5+iMO+d3I5U+MecqAqdejl0+L2xhzk3sw==", "dependencies": { "@babel/runtime": "^7.20.13", "@polkadot/x-global": "10.3.1" @@ -4164,7 +4493,8 @@ }, "node_modules/@polkadot/x-randomvalues/node_modules/@polkadot/x-global": { "version": "10.3.1", - "license": "Apache-2.0", + "resolved": "https://registry.npmjs.org/@polkadot/x-global/-/x-global-10.3.1.tgz", + "integrity": "sha512-kPAVYP2H3aTjS7BKqGkYV1I3Mu03dnRyeX+rDebC8xoN+hUC5bhb7dzCtb5F8DdqlvFl67ZxRaVtq2XUssGTKQ==", "dependencies": { "@babel/runtime": "^7.20.13" }, @@ -4174,7 +4504,8 @@ }, "node_modules/@polkadot/x-textdecoder": { "version": "10.2.1", - "license": "Apache-2.0", + "resolved": "https://registry.npmjs.org/@polkadot/x-textdecoder/-/x-textdecoder-10.2.1.tgz", + "integrity": "sha512-hpFmrdv/rrSM4UNaV8TJBgMtwXsYlNgBTSUmnKWwJIN3PhOUeYxl1qIbPchxGbJBc35WviJCZe7rlLja9JvFcw==", "dependencies": { "@babel/runtime": "^7.20.6", "@polkadot/x-global": "10.2.1" @@ -4185,7 +4516,8 @@ }, "node_modules/@polkadot/x-textencoder": { "version": "10.2.1", - "license": "Apache-2.0", + "resolved": "https://registry.npmjs.org/@polkadot/x-textencoder/-/x-textencoder-10.2.1.tgz", + "integrity": "sha512-4gMyY6DCH34KA++bawu/zlUJ0/8+aZJsurwjRBbkdfOS2uLo0K+vJ5GBevAhl0VSznM36ptfh/MpkIBKK/6R0g==", "dependencies": { "@babel/runtime": "^7.20.6", "@polkadot/x-global": "10.2.1" @@ -4196,7 +4528,8 @@ }, "node_modules/@polkadot/x-ws": { "version": "10.3.1", - "license": "Apache-2.0", + "resolved": "https://registry.npmjs.org/@polkadot/x-ws/-/x-ws-10.3.1.tgz", + "integrity": "sha512-gjYXB+W2slfnnnpCn3KjxP/VR3GZ6BK9xmZbeyVhlWFM3e+1WyMoetumxWbqzfpdXjwe3hIl1R28sngxqllfUQ==", "dependencies": { "@babel/runtime": "^7.20.13", "@polkadot/x-global": "10.3.1", @@ -4209,7 +4542,8 @@ }, "node_modules/@polkadot/x-ws/node_modules/@polkadot/x-global": { "version": "10.3.1", - "license": "Apache-2.0", + "resolved": "https://registry.npmjs.org/@polkadot/x-global/-/x-global-10.3.1.tgz", + "integrity": "sha512-kPAVYP2H3aTjS7BKqGkYV1I3Mu03dnRyeX+rDebC8xoN+hUC5bhb7dzCtb5F8DdqlvFl67ZxRaVtq2XUssGTKQ==", "dependencies": { "@babel/runtime": "^7.20.13" }, @@ -4219,23 +4553,28 @@ }, "node_modules/@protobufjs/aspromise": { "version": "1.1.2", - "license": "BSD-3-Clause" + "resolved": "https://registry.npmjs.org/@protobufjs/aspromise/-/aspromise-1.1.2.tgz", + "integrity": "sha512-j+gKExEuLmKwvz3OgROXtrJ2UG2x8Ch2YZUxahh+s1F2HZ+wAceUNLkvy6zKCPVRkU++ZWQrdxsUeQXmcg4uoQ==" }, "node_modules/@protobufjs/base64": { "version": "1.1.2", - "license": "BSD-3-Clause" + "resolved": "https://registry.npmjs.org/@protobufjs/base64/-/base64-1.1.2.tgz", + "integrity": "sha512-AZkcAA5vnN/v4PDqKyMR5lx7hZttPDgClv83E//FMNhR2TMcLUhfRUBHCmSl0oi9zMgDDqRUJkSxO3wm85+XLg==" }, "node_modules/@protobufjs/codegen": { "version": "2.0.4", - "license": "BSD-3-Clause" + "resolved": "https://registry.npmjs.org/@protobufjs/codegen/-/codegen-2.0.4.tgz", + "integrity": "sha512-YyFaikqM5sH0ziFZCN3xDC7zeGaB/d0IUb9CATugHWbd1FRFwWwt4ld4OYMPWu5a3Xe01mGAULCdqhMlPl29Jg==" }, "node_modules/@protobufjs/eventemitter": { "version": "1.1.0", - "license": "BSD-3-Clause" + "resolved": "https://registry.npmjs.org/@protobufjs/eventemitter/-/eventemitter-1.1.0.tgz", + "integrity": "sha512-j9ednRT81vYJ9OfVuXG6ERSTdEL1xVsNgqpkxMsbIabzSo3goCjDIveeGv5d03om39ML71RdmrGNjG5SReBP/Q==" }, "node_modules/@protobufjs/fetch": { "version": "1.1.0", - "license": "BSD-3-Clause", + "resolved": "https://registry.npmjs.org/@protobufjs/fetch/-/fetch-1.1.0.tgz", + "integrity": "sha512-lljVXpqXebpsijW71PZaCYeIcE5on1w5DlQy5WH6GLbFryLUrBD4932W/E2BSpfRJWseIL4v/KPgBFxDOIdKpQ==", "dependencies": { "@protobufjs/aspromise": "^1.1.1", "@protobufjs/inquire": "^1.1.0" @@ -4243,52 +4582,62 @@ }, "node_modules/@protobufjs/float": { "version": "1.0.2", - "license": "BSD-3-Clause" + "resolved": "https://registry.npmjs.org/@protobufjs/float/-/float-1.0.2.tgz", + "integrity": "sha512-Ddb+kVXlXst9d+R9PfTIxh1EdNkgoRe5tOX6t01f1lYWOvJnSPDBlG241QLzcyPdoNTsblLUdujGSE4RzrTZGQ==" }, "node_modules/@protobufjs/inquire": { "version": "1.1.0", - "license": "BSD-3-Clause" + "resolved": "https://registry.npmjs.org/@protobufjs/inquire/-/inquire-1.1.0.tgz", + "integrity": "sha512-kdSefcPdruJiFMVSbn801t4vFK7KB/5gd2fYvrxhuJYg8ILrmn9SKSX2tZdV6V+ksulWqS7aXjBcRXl3wHoD9Q==" }, "node_modules/@protobufjs/path": { "version": "1.1.2", - "license": "BSD-3-Clause" + "resolved": "https://registry.npmjs.org/@protobufjs/path/-/path-1.1.2.tgz", + "integrity": "sha512-6JOcJ5Tm08dOHAbdR3GrvP+yUUfkjG5ePsHYczMFLq3ZmMkAD98cDgcT2iA1lJ9NVwFd4tH/iSSoe44YWkltEA==" }, "node_modules/@protobufjs/pool": { "version": "1.1.0", - "license": "BSD-3-Clause" + "resolved": "https://registry.npmjs.org/@protobufjs/pool/-/pool-1.1.0.tgz", + "integrity": "sha512-0kELaGSIDBKvcgS4zkjz1PeddatrjYcmMWOlAuAPwAeccUrPHdUqo/J6LiymHHEiJT5NrF1UVwxY14f+fy4WQw==" }, "node_modules/@protobufjs/utf8": { "version": "1.1.0", - "license": "BSD-3-Clause" + "resolved": "https://registry.npmjs.org/@protobufjs/utf8/-/utf8-1.1.0.tgz", + "integrity": "sha512-Vvn3zZrhQZkkBE8LSuW3em98c0FwgO4nxzv6OdSxPKJIEKY2bGbHn+mhGIPerzI4twdxaP8/0+06HBpwf345Lw==" }, "node_modules/@scure/base": { "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@scure/base/-/base-1.1.1.tgz", + "integrity": "sha512-ZxOhsSyxYwLJj3pLZCefNitxsj093tb2vq90mp2txoYeBqbcjDjqFhyM8eUjq/uFm6zJ+mUuqxlS2FkuSY1MTA==", "funding": [ { "type": "individual", "url": "https://paulmillr.com/funding/" } - ], - "license": "MIT" + ] }, "node_modules/@sideway/address": { "version": "4.1.4", - "license": "BSD-3-Clause", + "resolved": "https://registry.npmjs.org/@sideway/address/-/address-4.1.4.tgz", + "integrity": "sha512-7vwq+rOHVWjyXxVlR76Agnvhy8I9rpzjosTESvmhNeXOXdZZB15Fl+TI9x1SiHZH5Jv2wTGduSxFDIaq0m3DUw==", "dependencies": { "@hapi/hoek": "^9.0.0" } }, "node_modules/@sideway/formula": { "version": "3.0.1", - "license": "BSD-3-Clause" + "resolved": "https://registry.npmjs.org/@sideway/formula/-/formula-3.0.1.tgz", + "integrity": "sha512-/poHZJJVjx3L+zVD6g9KgHfYnb443oi7wLu/XKojDviHy6HOEOA6z1Trk5aR1dGcmPenJEgb2sK2I80LeS3MIg==" }, "node_modules/@sideway/pinpoint": { "version": "2.0.0", - "license": "BSD-3-Clause" + "resolved": "https://registry.npmjs.org/@sideway/pinpoint/-/pinpoint-2.0.0.tgz", + "integrity": "sha512-RNiOoTPkptFtSVzQevY/yWtZwf/RxyVnPy/OcA9HBM3MlGDnBEYL5B41H0MTn0Uec8Hi+2qUtTfG2WWZBmMejQ==" }, "node_modules/@sindresorhus/is": { "version": "5.3.0", - "license": "MIT", + "resolved": "https://registry.npmjs.org/@sindresorhus/is/-/is-5.3.0.tgz", + "integrity": "sha512-CX6t4SYQ37lzxicAqsBtxA3OseeoVrh9cSJ5PFYam0GksYlupRfy1A+Q4aYD3zvcfECLc0zO2u+ZnR2UYKvCrw==", "engines": { "node": ">=14.16" }, @@ -4298,32 +4647,36 @@ }, "node_modules/@sinonjs/commons": { "version": "2.0.0", + "resolved": "https://registry.npmjs.org/@sinonjs/commons/-/commons-2.0.0.tgz", + "integrity": "sha512-uLa0j859mMrg2slwQYdO/AkrOfmH+X6LTVmNTS9CqexuE2IvVORIkSpJLqePAbEnKJ77aMmCwr1NUZ57120Xcg==", "dev": true, - "license": "BSD-3-Clause", "dependencies": { "type-detect": "4.0.8" } }, "node_modules/@sinonjs/fake-timers": { "version": "9.1.2", + "resolved": "https://registry.npmjs.org/@sinonjs/fake-timers/-/fake-timers-9.1.2.tgz", + "integrity": "sha512-BPS4ynJW/o92PUR4wgriz2Ud5gpST5vz6GQfMixEDK0Z8ZCUv2M7SkBLykH56T++Xs+8ln9zTGbOvNGIe02/jw==", "dev": true, - "license": "BSD-3-Clause", "dependencies": { "@sinonjs/commons": "^1.7.0" } }, "node_modules/@sinonjs/fake-timers/node_modules/@sinonjs/commons": { "version": "1.8.6", + "resolved": "https://registry.npmjs.org/@sinonjs/commons/-/commons-1.8.6.tgz", + "integrity": "sha512-Ky+XkAkqPZSm3NLBeUng77EBQl3cmeJhITaGHdYH8kjVB+aun3S4XBRti2zt17mtt0mIUDiNxYeoJm6drVvBJQ==", "dev": true, - "license": "BSD-3-Clause", "dependencies": { "type-detect": "4.0.8" } }, "node_modules/@sinonjs/samsam": { "version": "7.0.1", + "resolved": "https://registry.npmjs.org/@sinonjs/samsam/-/samsam-7.0.1.tgz", + "integrity": "sha512-zsAk2Jkiq89mhZovB2LLOdTCxJF4hqqTToGP0ASWlhp4I1hqOjcfmZGafXntCN7MDC6yySH0mFHrYtHceOeLmw==", "dev": true, - "license": "BSD-3-Clause", "dependencies": { "@sinonjs/commons": "^2.0.0", "lodash.get": "^4.4.2", @@ -4332,31 +4685,37 @@ }, "node_modules/@sinonjs/text-encoding": { "version": "0.7.2", - "dev": true, - "license": "(Unlicense OR Apache-2.0)" + "resolved": "https://registry.npmjs.org/@sinonjs/text-encoding/-/text-encoding-0.7.2.tgz", + "integrity": "sha512-sXXKG+uL9IrKqViTtao2Ws6dy0znu9sOaP1di/jKGW1M6VssO8vlpXCQcpZ+jisQ1tTFAC5Jo/EOzFbggBagFQ==", + "dev": true }, "node_modules/@socket.io/component-emitter": { "version": "3.1.0", - "license": "MIT" + "resolved": "https://registry.npmjs.org/@socket.io/component-emitter/-/component-emitter-3.1.0.tgz", + "integrity": "sha512-+9jVqKhRSpsc591z5vX+X5Yyw+he/HCB4iQ/RYxw35CEPaY1gnsNE43nf9n9AaYjAQrTiI/mOwKUKdUs9vf7Xg==" }, "node_modules/@stablelib/aead": { "version": "1.0.1", - "license": "MIT" + "resolved": "https://registry.npmjs.org/@stablelib/aead/-/aead-1.0.1.tgz", + "integrity": "sha512-q39ik6sxGHewqtO0nP4BuSe3db5G1fEJE8ukvngS2gLkBXyy6E7pLubhbYgnkDFv6V8cWaxcE4Xn0t6LWcJkyg==" }, "node_modules/@stablelib/binary": { "version": "1.0.1", - "license": "MIT", + "resolved": "https://registry.npmjs.org/@stablelib/binary/-/binary-1.0.1.tgz", + "integrity": "sha512-ClJWvmL6UBM/wjkvv/7m5VP3GMr9t0osr4yVgLZsLCOz4hGN9gIAFEqnJ0TsSMAN+n840nf2cHZnA5/KFqHC7Q==", "dependencies": { "@stablelib/int": "^1.0.1" } }, "node_modules/@stablelib/bytes": { "version": "1.0.1", - "license": "MIT" + "resolved": "https://registry.npmjs.org/@stablelib/bytes/-/bytes-1.0.1.tgz", + "integrity": "sha512-Kre4Y4kdwuqL8BR2E9hV/R5sOrUj6NanZaZis0V6lX5yzqC3hBuVSDXUIBqQv/sCpmuWRiHLwqiT1pqqjuBXoQ==" }, "node_modules/@stablelib/chacha": { "version": "1.0.1", - "license": "MIT", + "resolved": "https://registry.npmjs.org/@stablelib/chacha/-/chacha-1.0.1.tgz", + "integrity": "sha512-Pmlrswzr0pBzDofdFuVe1q7KdsHKhhU24e8gkEwnTGOmlC7PADzLVxGdn2PoNVBBabdg0l/IfLKg6sHAbTQugg==", "dependencies": { "@stablelib/binary": "^1.0.1", "@stablelib/wipe": "^1.0.1" @@ -4364,7 +4723,8 @@ }, "node_modules/@stablelib/chacha20poly1305": { "version": "1.0.1", - "license": "MIT", + "resolved": "https://registry.npmjs.org/@stablelib/chacha20poly1305/-/chacha20poly1305-1.0.1.tgz", + "integrity": "sha512-MmViqnqHd1ymwjOQfghRKw2R/jMIGT3wySN7cthjXCBdO+qErNPUBnRzqNpnvIwg7JBCg3LdeCZZO4de/yEhVA==", "dependencies": { "@stablelib/aead": "^1.0.1", "@stablelib/binary": "^1.0.1", @@ -4376,15 +4736,18 @@ }, "node_modules/@stablelib/constant-time": { "version": "1.0.1", - "license": "MIT" + "resolved": "https://registry.npmjs.org/@stablelib/constant-time/-/constant-time-1.0.1.tgz", + "integrity": "sha512-tNOs3uD0vSJcK6z1fvef4Y+buN7DXhzHDPqRLSXUel1UfqMB1PWNsnnAezrKfEwTLpN0cGH2p9NNjs6IqeD0eg==" }, "node_modules/@stablelib/hash": { "version": "1.0.1", - "license": "MIT" + "resolved": "https://registry.npmjs.org/@stablelib/hash/-/hash-1.0.1.tgz", + "integrity": "sha512-eTPJc/stDkdtOcrNMZ6mcMK1e6yBbqRBaNW55XA1jU8w/7QdnCF0CmMmOD1m7VSkBR44PWrMHU2l6r8YEQHMgg==" }, "node_modules/@stablelib/hkdf": { "version": "1.0.1", - "license": "MIT", + "resolved": "https://registry.npmjs.org/@stablelib/hkdf/-/hkdf-1.0.1.tgz", + "integrity": "sha512-SBEHYE16ZXlHuaW5RcGk533YlBj4grMeg5TooN80W3NpcHRtLZLLXvKyX0qcRFxf+BGDobJLnwkvgEwHIDBR6g==", "dependencies": { "@stablelib/hash": "^1.0.1", "@stablelib/hmac": "^1.0.1", @@ -4393,7 +4756,8 @@ }, "node_modules/@stablelib/hmac": { "version": "1.0.1", - "license": "MIT", + "resolved": "https://registry.npmjs.org/@stablelib/hmac/-/hmac-1.0.1.tgz", + "integrity": "sha512-V2APD9NSnhVpV/QMYgCVMIYKiYG6LSqw1S65wxVoirhU/51ACio6D4yDVSwMzuTJXWZoVHbDdINioBwKy5kVmA==", "dependencies": { "@stablelib/constant-time": "^1.0.1", "@stablelib/hash": "^1.0.1", @@ -4402,18 +4766,21 @@ }, "node_modules/@stablelib/int": { "version": "1.0.1", - "license": "MIT" + "resolved": "https://registry.npmjs.org/@stablelib/int/-/int-1.0.1.tgz", + "integrity": "sha512-byr69X/sDtDiIjIV6m4roLVWnNNlRGzsvxw+agj8CIEazqWGOQp2dTYgQhtyVXV9wpO6WyXRQUzLV/JRNumT2w==" }, "node_modules/@stablelib/keyagreement": { "version": "1.0.1", - "license": "MIT", + "resolved": "https://registry.npmjs.org/@stablelib/keyagreement/-/keyagreement-1.0.1.tgz", + "integrity": "sha512-VKL6xBwgJnI6l1jKrBAfn265cspaWBPAPEc62VBQrWHLqVgNRE09gQ/AnOEyKUWrrqfD+xSQ3u42gJjLDdMDQg==", "dependencies": { "@stablelib/bytes": "^1.0.1" } }, "node_modules/@stablelib/poly1305": { "version": "1.0.1", - "license": "MIT", + "resolved": "https://registry.npmjs.org/@stablelib/poly1305/-/poly1305-1.0.1.tgz", + "integrity": "sha512-1HlG3oTSuQDOhSnLwJRKeTRSAdFNVB/1djy2ZbS35rBSJ/PFqx9cf9qatinWghC2UbfOYD8AcrtbUQl8WoxabA==", "dependencies": { "@stablelib/constant-time": "^1.0.1", "@stablelib/wipe": "^1.0.1" @@ -4421,7 +4788,8 @@ }, "node_modules/@stablelib/random": { "version": "1.0.2", - "license": "MIT", + "resolved": "https://registry.npmjs.org/@stablelib/random/-/random-1.0.2.tgz", + "integrity": "sha512-rIsE83Xpb7clHPVRlBj8qNe5L8ISQOzjghYQm/dZ7VaM2KHYwMW5adjQjrzTZCchFnNCNhkwtnOBa9HTMJCI8w==", "dependencies": { "@stablelib/binary": "^1.0.1", "@stablelib/wipe": "^1.0.1" @@ -4429,7 +4797,8 @@ }, "node_modules/@stablelib/sha256": { "version": "1.0.1", - "license": "MIT", + "resolved": "https://registry.npmjs.org/@stablelib/sha256/-/sha256-1.0.1.tgz", + "integrity": "sha512-GIIH3e6KH+91FqGV42Kcj71Uefd/QEe7Dy42sBTeqppXV95ggCcxLTk39bEr+lZfJmp+ghsR07J++ORkRELsBQ==", "dependencies": { "@stablelib/binary": "^1.0.1", "@stablelib/hash": "^1.0.1", @@ -4438,11 +4807,13 @@ }, "node_modules/@stablelib/wipe": { "version": "1.0.1", - "license": "MIT" + "resolved": "https://registry.npmjs.org/@stablelib/wipe/-/wipe-1.0.1.tgz", + "integrity": "sha512-WfqfX/eXGiAd3RJe4VU2snh/ZPwtSjLG4ynQ/vYzvghTh7dHFcI1wl+nrkWG6lGhukOxOsUHfv8dUXr58D0ayg==" }, "node_modules/@stablelib/x25519": { "version": "1.0.3", - "license": "MIT", + "resolved": "https://registry.npmjs.org/@stablelib/x25519/-/x25519-1.0.3.tgz", + "integrity": "sha512-KnTbKmUhPhHavzobclVJQG5kuivH+qDLpe84iRqX3CLrKp881cF160JvXJ+hjn1aMyCwYOKeIZefIH/P5cJoRw==", "dependencies": { "@stablelib/keyagreement": "^1.0.1", "@stablelib/random": "^1.0.2", @@ -4451,7 +4822,8 @@ }, "node_modules/@substrate/connect": { "version": "0.7.19", - "license": "GPL-3.0-only", + "resolved": "https://registry.npmjs.org/@substrate/connect/-/connect-0.7.19.tgz", + "integrity": "sha512-+DDRadc466gCmDU71sHrYOt1HcI2Cbhm7zdCFjZfFVHXhC/E8tOdrVSglAH2HDEHR0x2SiHRxtxOGC7ak2Zjog==", "optional": true, "dependencies": { "@substrate/connect-extension-protocol": "^1.0.1", @@ -4461,12 +4833,14 @@ }, "node_modules/@substrate/connect-extension-protocol": { "version": "1.0.1", - "license": "GPL-3.0-only", + "resolved": "https://registry.npmjs.org/@substrate/connect-extension-protocol/-/connect-extension-protocol-1.0.1.tgz", + "integrity": "sha512-161JhCC1csjH3GE5mPLEd7HbWtwNSPJBg3p1Ksz9SFlTzj/bgEwudiRN2y5i0MoLGCIJRYKyKGMxVnd29PzNjg==", "optional": true }, "node_modules/@substrate/smoldot-light": { "version": "0.7.9", - "license": "GPL-3.0-or-later WITH Classpath-exception-2.0", + "resolved": "https://registry.npmjs.org/@substrate/smoldot-light/-/smoldot-light-0.7.9.tgz", + "integrity": "sha512-HP8iP7sFYlpSgjjbo0lqHyU+gu9lL2hbDNce6dWk5/10mFFF9jKIFGfui4zCecUY808o/Go9pan/31kMJoLbug==", "optional": true, "dependencies": { "pako": "^2.0.4", @@ -4475,11 +4849,13 @@ }, "node_modules/@substrate/ss58-registry": { "version": "1.38.0", - "license": "Apache-2.0" + "resolved": "https://registry.npmjs.org/@substrate/ss58-registry/-/ss58-registry-1.38.0.tgz", + "integrity": "sha512-sHiVRWekGMRZAjPukN9/W166NM6D5wtHcK6RVyLy66kg3CHNZ1BXfpXcjOiXSwhbd7guQFDEwnOVaDrbk1XL1g==" }, "node_modules/@szmarczak/http-timer": { "version": "5.0.1", - "license": "MIT", + "resolved": "https://registry.npmjs.org/@szmarczak/http-timer/-/http-timer-5.0.1.tgz", + "integrity": "sha512-+PmQX0PiAYPMeVYe237LJAYvOMYW1j2rH5YROyS3b4CTVJum34HfRvKvAzozHAQG0TnHNdUfY9nCeUyRAs//cw==", "dependencies": { "defer-to-connect": "^2.0.1" }, @@ -4489,67 +4865,80 @@ }, "node_modules/@tokenizer/token": { "version": "0.3.0", - "license": "MIT" + "resolved": "https://registry.npmjs.org/@tokenizer/token/-/token-0.3.0.tgz", + "integrity": "sha512-OvjF+z51L3ov0OyAU0duzsYuvO01PH7x4t6DJx+guahgTnBHkhJdG7soQeTSFLWN3efnHyibZ4Z8l2EuWwJN3A==" }, "node_modules/@tsconfig/node10": { "version": "1.0.9", - "dev": true, - "license": "MIT" + "resolved": "https://registry.npmjs.org/@tsconfig/node10/-/node10-1.0.9.tgz", + "integrity": "sha512-jNsYVVxU8v5g43Erja32laIDHXeoNvFEpX33OK4d6hljo3jDhCBDhx5dhCCTMWUojscpAagGiRkBKxpdl9fxqA==", + "dev": true }, "node_modules/@tsconfig/node12": { "version": "1.0.11", - "dev": true, - "license": "MIT" + "resolved": "https://registry.npmjs.org/@tsconfig/node12/-/node12-1.0.11.tgz", + "integrity": "sha512-cqefuRsh12pWyGsIoBKJA9luFu3mRxCA+ORZvA4ktLSzIuCUtWVxGIuXigEwO5/ywWFMZ2QEGKWvkZG1zDMTag==", + "dev": true }, "node_modules/@tsconfig/node14": { "version": "1.0.3", - "dev": true, - "license": "MIT" + "resolved": "https://registry.npmjs.org/@tsconfig/node14/-/node14-1.0.3.tgz", + "integrity": "sha512-ysT8mhdixWK6Hw3i1V2AeRqZ5WfXg1G43mqoYlM2nc6388Fq5jcXyr5mRsqViLx/GJYdoL0bfXD8nmF+Zn/Iow==", + "dev": true }, "node_modules/@tsconfig/node16": { "version": "1.0.3", - "dev": true, - "license": "MIT" + "resolved": "https://registry.npmjs.org/@tsconfig/node16/-/node16-1.0.3.tgz", + "integrity": "sha512-yOlFc+7UtL/89t2ZhjPvvB/DeAr3r+Dq58IgzsFkOAvVC6NMJXmCGjbptdXdR9qsX7pKcTL+s87FtYREi2dEEQ==", + "dev": true }, "node_modules/@types/bn.js": { "version": "5.1.1", - "license": "MIT", + "resolved": "https://registry.npmjs.org/@types/bn.js/-/bn.js-5.1.1.tgz", + "integrity": "sha512-qNrYbZqMx0uJAfKnKclPh+dTwK33KfLHYqtyODwd5HnXOjnkhc4qgn3BrK6RWyGZm5+sIFE7Q7Vz6QQtJB7w7g==", "dependencies": { "@types/node": "*" } }, "node_modules/@types/dns-packet": { "version": "5.2.4", - "license": "MIT", + "resolved": "https://registry.npmjs.org/@types/dns-packet/-/dns-packet-5.2.4.tgz", + "integrity": "sha512-OAruArypdNxR/tzbmrtoyEuXeNTLaZCpO19BXaNC10T5ACIbvjmvhmV2RDEy2eLc3w8IjK7SY3cvUCcAW+sfoQ==", "dependencies": { "@types/node": "*" } }, "node_modules/@types/http-cache-semantics": { "version": "4.0.1", - "license": "MIT" + "resolved": "https://registry.npmjs.org/@types/http-cache-semantics/-/http-cache-semantics-4.0.1.tgz", + "integrity": "sha512-SZs7ekbP8CN0txVG2xVRH6EgKmEm31BOxA07vkFaETzZz1xh+cbt8BcI0slpymvwhx5dlFnQG2rTlPVQn+iRPQ==" }, "node_modules/@types/json-schema": { "version": "7.0.11", - "dev": true, - "license": "MIT" + "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.11.tgz", + "integrity": "sha512-wOuvG1SN4Us4rez+tylwwwCV1psiNVOkJeM3AUWUNWg/jDQY2+HE/444y5gc+jBmRqASOm2Oeh5c1axHobwRKQ==", + "dev": true }, "node_modules/@types/long": { "version": "4.0.2", - "license": "MIT" + "resolved": "https://registry.npmjs.org/@types/long/-/long-4.0.2.tgz", + "integrity": "sha512-MqTGEo5bj5t157U6fA/BiDynNkn0YknVdh48CMPkTSpFTVmvao5UQmm7uEF6xBEo7qIMAlY/JSleYaE6VOdpaA==" }, "node_modules/@types/minimatch": { "version": "3.0.5", - "license": "MIT" + "resolved": "https://registry.npmjs.org/@types/minimatch/-/minimatch-3.0.5.tgz", + "integrity": "sha512-Klz949h02Gz2uZCMGwDUSDS1YBlTdDDgbWHi+81l29tQALUtvz4rAYi5uoVhE5Lagoq6DeqAUlbrHvW/mXDgdQ==" }, "node_modules/@types/mocha": { "version": "10.0.1", - "dev": true, - "license": "MIT" + "resolved": "https://registry.npmjs.org/@types/mocha/-/mocha-10.0.1.tgz", + "integrity": "sha512-/fvYntiO1GeICvqbQ3doGDIP97vWmvFt83GKguJ6prmQM2iXZfFcq6YE8KteFyRtX2/h5Hf91BYvPodJKFYv5Q==", + "dev": true }, "node_modules/@types/multicast-dns": { "version": "7.2.1", - "license": "MIT", + "resolved": "https://registry.npmjs.org/@types/multicast-dns/-/multicast-dns-7.2.1.tgz", + "integrity": "sha512-A2PmB8MRcNVEkw6wzGT5rtBHqyHOVjiRMkJH+zpJKXipSi+GGkHg6JjNFApDiYK9WefJqkVG0taln1VMl4TGfw==", "dependencies": { "@types/dns-packet": "*", "@types/node": "*" @@ -4557,11 +4946,13 @@ }, "node_modules/@types/node": { "version": "18.11.15", - "license": "MIT" + "resolved": "https://registry.npmjs.org/@types/node/-/node-18.11.15.tgz", + "integrity": "sha512-VkhBbVo2+2oozlkdHXLrb3zjsRkpdnaU2bXmX8Wgle3PUi569eLRaHGlgETQHR7lLL1w7GiG3h9SnePhxNDecw==" }, "node_modules/@types/node-fetch": { "version": "2.6.2", - "license": "MIT", + "resolved": "https://registry.npmjs.org/@types/node-fetch/-/node-fetch-2.6.2.tgz", + "integrity": "sha512-DHqhlq5jeESLy19TYhLakJ07kNumXWjcDdxXsLUMJZ6ue8VZJj4kLPQVE/2mdHh3xZziNF1xppu5lwmS53HR+A==", "dependencies": { "@types/node": "*", "form-data": "^3.0.0" @@ -4569,24 +4960,28 @@ }, "node_modules/@types/retry": { "version": "0.12.1", - "license": "MIT" + "resolved": "https://registry.npmjs.org/@types/retry/-/retry-0.12.1.tgz", + "integrity": "sha512-xoDlM2S4ortawSWORYqsdU+2rxdh4LRW9ytc3zmT37RIKQh6IHyKwwtKhKis9ah8ol07DCkZxPt8BBvPjC6v4g==" }, "node_modules/@types/semver": { "version": "7.3.13", - "dev": true, - "license": "MIT" + "resolved": "https://registry.npmjs.org/@types/semver/-/semver-7.3.13.tgz", + "integrity": "sha512-21cFJr9z3g5dW8B0CVI9g2O9beqaThGQ6ZFBqHfwhzLDKUxaqTIy3vnfah/UPkfOiF2pLq+tGz+W8RyCskuslw==", + "dev": true }, "node_modules/@types/websocket": { "version": "1.0.5", - "license": "MIT", + "resolved": "https://registry.npmjs.org/@types/websocket/-/websocket-1.0.5.tgz", + "integrity": "sha512-NbsqiNX9CnEfC1Z0Vf4mE1SgAJ07JnRYcNex7AJ9zAVzmiGHmjKFEk7O4TJIsgv2B1sLEb6owKFZrACwdYngsQ==", "dependencies": { "@types/node": "*" } }, "node_modules/@typescript-eslint/eslint-plugin": { "version": "5.48.2", + "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.48.2.tgz", + "integrity": "sha512-sR0Gja9Ky1teIq4qJOl0nC+Tk64/uYdX+mi+5iB//MH8gwyx8e3SOyhEzeLZEFEEfCaLf8KJq+Bd/6je1t+CAg==", "dev": true, - "license": "MIT", "dependencies": { "@typescript-eslint/scope-manager": "5.48.2", "@typescript-eslint/type-utils": "5.48.2", @@ -4617,8 +5012,9 @@ }, "node_modules/@typescript-eslint/eslint-plugin/node_modules/semver": { "version": "7.3.8", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.8.tgz", + "integrity": "sha512-NB1ctGL5rlHrPJtFDVIVzTyQylMLu9N9VICA6HSFJo8MCGVTMW6gfpicwKmmK/dAjTOrqu5l63JJOpDSrAis3A==", "dev": true, - "license": "ISC", "dependencies": { "lru-cache": "^6.0.0" }, @@ -4631,8 +5027,9 @@ }, "node_modules/@typescript-eslint/parser": { "version": "5.48.2", + "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-5.48.2.tgz", + "integrity": "sha512-38zMsKsG2sIuM5Oi/olurGwYJXzmtdsHhn5mI/pQogP+BjYVkK5iRazCQ8RGS0V+YLk282uWElN70zAAUmaYHw==", "dev": true, - "license": "BSD-2-Clause", "dependencies": { "@typescript-eslint/scope-manager": "5.48.2", "@typescript-eslint/types": "5.48.2", @@ -4657,8 +5054,9 @@ }, "node_modules/@typescript-eslint/scope-manager": { "version": "5.48.2", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-5.48.2.tgz", + "integrity": "sha512-zEUFfonQid5KRDKoI3O+uP1GnrFd4tIHlvs+sTJXiWuypUWMuDaottkJuR612wQfOkjYbsaskSIURV9xo4f+Fw==", "dev": true, - "license": "MIT", "dependencies": { "@typescript-eslint/types": "5.48.2", "@typescript-eslint/visitor-keys": "5.48.2" @@ -4673,8 +5071,9 @@ }, "node_modules/@typescript-eslint/type-utils": { "version": "5.48.2", + "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-5.48.2.tgz", + "integrity": "sha512-QVWx7J5sPMRiOMJp5dYshPxABRoZV1xbRirqSk8yuIIsu0nvMTZesKErEA3Oix1k+uvsk8Cs8TGJ6kQ0ndAcew==", "dev": true, - "license": "MIT", "dependencies": { "@typescript-eslint/typescript-estree": "5.48.2", "@typescript-eslint/utils": "5.48.2", @@ -4699,8 +5098,9 @@ }, "node_modules/@typescript-eslint/types": { "version": "5.48.2", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.48.2.tgz", + "integrity": "sha512-hE7dA77xxu7ByBc6KCzikgfRyBCTst6dZQpwaTy25iMYOnbNljDT4hjhrGEJJ0QoMjrfqrx+j1l1B9/LtKeuqA==", "dev": true, - "license": "MIT", "engines": { "node": "^12.22.0 || ^14.17.0 || >=16.0.0" }, @@ -4711,8 +5111,9 @@ }, "node_modules/@typescript-eslint/typescript-estree": { "version": "5.48.2", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-5.48.2.tgz", + "integrity": "sha512-bibvD3z6ilnoVxUBFEgkO0k0aFvUc4Cttt0dAreEr+nrAHhWzkO83PEVVuieK3DqcgL6VAK5dkzK8XUVja5Zcg==", "dev": true, - "license": "BSD-2-Clause", "dependencies": { "@typescript-eslint/types": "5.48.2", "@typescript-eslint/visitor-keys": "5.48.2", @@ -4737,8 +5138,9 @@ }, "node_modules/@typescript-eslint/typescript-estree/node_modules/semver": { "version": "7.3.8", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.8.tgz", + "integrity": "sha512-NB1ctGL5rlHrPJtFDVIVzTyQylMLu9N9VICA6HSFJo8MCGVTMW6gfpicwKmmK/dAjTOrqu5l63JJOpDSrAis3A==", "dev": true, - "license": "ISC", "dependencies": { "lru-cache": "^6.0.0" }, @@ -4751,8 +5153,9 @@ }, "node_modules/@typescript-eslint/utils": { "version": "5.48.2", + "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-5.48.2.tgz", + "integrity": "sha512-2h18c0d7jgkw6tdKTlNaM7wyopbLRBiit8oAxoP89YnuBOzCZ8g8aBCaCqq7h208qUTroL7Whgzam7UY3HVLow==", "dev": true, - "license": "MIT", "dependencies": { "@types/json-schema": "^7.0.9", "@types/semver": "^7.3.12", @@ -4776,8 +5179,9 @@ }, "node_modules/@typescript-eslint/utils/node_modules/semver": { "version": "7.3.8", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.8.tgz", + "integrity": "sha512-NB1ctGL5rlHrPJtFDVIVzTyQylMLu9N9VICA6HSFJo8MCGVTMW6gfpicwKmmK/dAjTOrqu5l63JJOpDSrAis3A==", "dev": true, - "license": "ISC", "dependencies": { "lru-cache": "^6.0.0" }, @@ -4790,8 +5194,9 @@ }, "node_modules/@typescript-eslint/visitor-keys": { "version": "5.48.2", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.48.2.tgz", + "integrity": "sha512-z9njZLSkwmjFWUelGEwEbdf4NwKvfHxvGC0OcGN1Hp/XNDIcJ7D5DpPNPv6x6/mFvc1tQHsaWmpD/a4gOvvCJQ==", "dev": true, - "license": "MIT", "dependencies": { "@typescript-eslint/types": "5.48.2", "eslint-visitor-keys": "^3.3.0" @@ -4806,15 +5211,18 @@ }, "node_modules/@vascosantos/moving-average": { "version": "1.1.0", - "license": "MIT" + "resolved": "https://registry.npmjs.org/@vascosantos/moving-average/-/moving-average-1.1.0.tgz", + "integrity": "sha512-MVEJ4vWAPNbrGLjz7ITnHYg+YXZ6ijAqtH5/cHwSoCpbvuJ98aLXwFfPKAUfZpJMQR5uXB58UJajbY130IRF/w==" }, "node_modules/abbrev": { "version": "1.1.1", - "license": "ISC" + "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-1.1.1.tgz", + "integrity": "sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q==" }, "node_modules/abort-controller": { "version": "3.0.0", - "license": "MIT", + "resolved": "https://registry.npmjs.org/abort-controller/-/abort-controller-3.0.0.tgz", + "integrity": "sha512-h8lQ8tacZYnR3vNQTgibj+tODHI5/+l06Au2Pcriv/Gmet0eaj4TwWH41sO9wnHDiQsEj19q0drzdWdeAHtweg==", "dependencies": { "event-target-shim": "^5.0.0" }, @@ -4824,7 +5232,8 @@ }, "node_modules/abortable-iterator": { "version": "4.0.2", - "license": "MIT", + "resolved": "https://registry.npmjs.org/abortable-iterator/-/abortable-iterator-4.0.2.tgz", + "integrity": "sha512-SJGELER5yXr9v3kiL6mT5RZ1qlyJ9hV4nm34+vfsdIM1lp3zENQvpsqKgykpFLgRMUn3lzlizLTpiOASW05/+g==", "dependencies": { "get-iterator": "^2.0.0", "it-stream-types": "^1.0.3" @@ -4832,7 +5241,8 @@ }, "node_modules/abstract-level": { "version": "1.0.3", - "license": "MIT", + "resolved": "https://registry.npmjs.org/abstract-level/-/abstract-level-1.0.3.tgz", + "integrity": "sha512-t6jv+xHy+VYwc4xqZMn2Pa9DjcdzvzZmQGRjTFc8spIbRGHgBrEKbPq+rYXc7CCo0lxgYvSgKVg9qZAhpVQSjA==", "dependencies": { "buffer": "^6.0.3", "catering": "^2.1.0", @@ -4848,12 +5258,14 @@ }, "node_modules/abstract-logging": { "version": "2.0.1", - "license": "MIT" + "resolved": "https://registry.npmjs.org/abstract-logging/-/abstract-logging-2.0.1.tgz", + "integrity": "sha512-2BjRTZxTPvheOvGbBslFSYOUkr+SjPtOnrLP33f+VIWLzezQpZcqVg7ja3L4dBXmzzgwT+a029jRx5PCi3JuiA==" }, "node_modules/acorn": { "version": "8.8.1", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.8.1.tgz", + "integrity": "sha512-7zFpHzhnqYKrkYdUjF1HI1bzd0VygEGX8lFk4k5zVMqHEoES+P+7TKI+EvLO9WVMJ8eekdO0aDEK044xTXwPPA==", "dev": true, - "license": "MIT", "bin": { "acorn": "bin/acorn" }, @@ -4863,8 +5275,9 @@ }, "node_modules/acorn-jsx": { "version": "5.3.2", + "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz", + "integrity": "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==", "dev": true, - "license": "MIT", "peer": true, "peerDependencies": { "acorn": "^6.0.0 || ^7.0.0 || ^8.0.0" @@ -4872,15 +5285,17 @@ }, "node_modules/acorn-walk": { "version": "8.2.0", + "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-8.2.0.tgz", + "integrity": "sha512-k+iyHEuPgSw6SbuDpGQM+06HQUa04DZ3o+F6CSzXMvvI5KMvnaEqXe+YVe555R9nn6GPt404fos4wcgpw12SDA==", "dev": true, - "license": "MIT", "engines": { "node": ">=0.4.0" } }, "node_modules/agent-base": { "version": "6.0.2", - "license": "MIT", + "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-6.0.2.tgz", + "integrity": "sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==", "dependencies": { "debug": "4" }, @@ -4890,8 +5305,9 @@ }, "node_modules/ajv": { "version": "6.12.6", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", + "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", "dev": true, - "license": "MIT", "peer": true, "dependencies": { "fast-deep-equal": "^3.1.1", @@ -4906,29 +5322,33 @@ }, "node_modules/ansi-align": { "version": "3.0.1", - "license": "ISC", + "resolved": "https://registry.npmjs.org/ansi-align/-/ansi-align-3.0.1.tgz", + "integrity": "sha512-IOfwwBF5iczOjp/WeY4YxyjqAFMQoZufdQWDd19SEExbVLNXqvpzSJ/M7Za4/sCPmQ0+GRquoA7bGcINcxew6w==", "dependencies": { "string-width": "^4.1.0" } }, "node_modules/ansi-colors": { "version": "4.1.1", + "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-4.1.1.tgz", + "integrity": "sha512-JoX0apGbHaUJBNl6yF+p6JAFYZ666/hhCGKN5t9QFjbJQKUU/g8MNbFDbvfrgKXvI1QpZplPOnwIo99lX/AAmA==", "dev": true, - "license": "MIT", "engines": { "node": ">=6" } }, "node_modules/ansi-regex": { "version": "5.0.1", - "license": "MIT", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", "engines": { "node": ">=8" } }, "node_modules/ansi-styles": { "version": "3.2.1", - "license": "MIT", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", "dependencies": { "color-convert": "^1.9.0" }, @@ -4938,12 +5358,14 @@ }, "node_modules/any-signal": { "version": "3.0.1", - "license": "MIT" + "resolved": "https://registry.npmjs.org/any-signal/-/any-signal-3.0.1.tgz", + "integrity": "sha512-xgZgJtKEa9YmDqXodIgl7Fl1C8yNXr8w6gXjqK3LW4GcEiYT+6AQfJSE/8SPsEpLLmcvbv8YU+qet94UewHxqg==" }, "node_modules/anymatch": { "version": "3.1.3", + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz", + "integrity": "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==", "dev": true, - "license": "ISC", "dependencies": { "normalize-path": "^3.0.0", "picomatch": "^2.0.4" @@ -4954,11 +5376,13 @@ }, "node_modules/aproba": { "version": "2.0.0", - "license": "ISC" + "resolved": "https://registry.npmjs.org/aproba/-/aproba-2.0.0.tgz", + "integrity": "sha512-lYe4Gx7QT+MKGbDsA+Z+he/Wtef0BiwDOlK/XkBrdfsh9J/jPPXbX0tE9x9cl27Tmu5gg3QUbUrQYa/y+KOHPQ==" }, "node_modules/are-we-there-yet": { "version": "2.0.0", - "license": "ISC", + "resolved": "https://registry.npmjs.org/are-we-there-yet/-/are-we-there-yet-2.0.0.tgz", + "integrity": "sha512-Ci/qENmwHnsYo9xKIcUJN5LeDKdJ6R1Z1j9V/J5wyq8nh/mYPEpIKJbBZXtZjG04HiK7zV/p6Vs9952MrMeUIw==", "dependencies": { "delegates": "^1.0.0", "readable-stream": "^3.6.0" @@ -4969,7 +5393,8 @@ }, "node_modules/are-we-there-yet/node_modules/readable-stream": { "version": "3.6.0", - "license": "MIT", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", + "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", "dependencies": { "inherits": "^2.0.3", "string_decoder": "^1.1.1", @@ -4981,17 +5406,20 @@ }, "node_modules/arg": { "version": "4.1.3", - "dev": true, - "license": "MIT" + "resolved": "https://registry.npmjs.org/arg/-/arg-4.1.3.tgz", + "integrity": "sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA==", + "dev": true }, "node_modules/argparse": { "version": "2.0.1", - "dev": true, - "license": "Python-2.0" + "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", + "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", + "dev": true }, "node_modules/args": { "version": "5.0.3", - "license": "MIT", + "resolved": "https://registry.npmjs.org/args/-/args-5.0.3.tgz", + "integrity": "sha512-h6k/zfFgusnv3i5TU08KQkVKuCPBtL/PWQbWkHUxvJrZ2nAyeaUupneemcrgn1xmqxPQsPIzwkUhOpoqPDRZuA==", "dependencies": { "camelcase": "5.0.0", "chalk": "2.4.2", @@ -5004,14 +5432,16 @@ }, "node_modules/args/node_modules/camelcase": { "version": "5.0.0", - "license": "MIT", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.0.0.tgz", + "integrity": "sha512-faqwZqnWxbxn+F1d399ygeamQNy3lPp/H9H6rNrqYh4FSVCtcY+3cub1MxA8o9mDd55mM8Aghuu/kuyYA6VTsA==", "engines": { "node": ">=6" } }, "node_modules/array-shuffle": { "version": "3.0.0", - "license": "MIT", + "resolved": "https://registry.npmjs.org/array-shuffle/-/array-shuffle-3.0.0.tgz", + "integrity": "sha512-rogEGxHOQPhslOhpg12LJkB+bbAl484/s2AJq0BxtzQDQfKl76fS2u9zWgg3p3b9ENcuvE7K8A7l5ddiPjCRnw==", "engines": { "node": ">=12.20" }, @@ -5021,37 +5451,45 @@ }, "node_modules/array-union": { "version": "2.1.0", + "resolved": "https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz", + "integrity": "sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==", "dev": true, - "license": "MIT", "engines": { "node": ">=8" } }, "node_modules/asap": { "version": "2.0.6", - "license": "MIT" + "resolved": "https://registry.npmjs.org/asap/-/asap-2.0.6.tgz", + "integrity": "sha512-BSHWgDSAiKs50o2Re8ppvp3seVHXSRM44cdSsT9FfNEUUZLOGWVCsiWaRPWM1Znn+mqZ1OfVZ3z3DWEzSp7hRA==" }, "node_modules/async": { "version": "3.2.4", - "license": "MIT" + "resolved": "https://registry.npmjs.org/async/-/async-3.2.4.tgz", + "integrity": "sha512-iAB+JbDEGXhyIUavoDl9WP/Jj106Kz9DEn1DPgYw5ruDn0e3Wgi3sKFm55sASdGBNOQB8F59d9qQ7deqrHA8wQ==" }, "node_modules/asynckit": { "version": "0.4.0", - "license": "MIT" + "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", + "integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==" }, "node_modules/atomic-sleep": { "version": "1.0.0", - "license": "MIT", + "resolved": "https://registry.npmjs.org/atomic-sleep/-/atomic-sleep-1.0.0.tgz", + "integrity": "sha512-kNOjDqAh7px0XWNI+4QbzoiR/nTkHAWNud2uvnJquD1/x5a7EQZMJT0AczqK0Qn67oY/TTQ1LbUKajZpp3I9tQ==", "engines": { "node": ">=8.0.0" } }, "node_modules/balanced-match": { "version": "1.0.2", - "license": "MIT" + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", + "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==" }, "node_modules/base64-js": { "version": "1.5.1", + "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz", + "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==", "funding": [ { "type": "github", @@ -5065,12 +5503,12 @@ "type": "consulting", "url": "https://feross.org/support" } - ], - "license": "MIT" + ] }, "node_modules/benchmark": { "version": "2.1.4", - "license": "MIT", + "resolved": "https://registry.npmjs.org/benchmark/-/benchmark-2.1.4.tgz", + "integrity": "sha512-l9MlfN4M1K/H2fbhfMy3B7vJd6AGKJVQn2h6Sg/Yx+KckoUA7ewS5Vv6TjSq18ooE1kS9hhAlQRH3AkXIh/aOQ==", "dependencies": { "lodash": "^4.17.4", "platform": "^1.3.3" @@ -5078,20 +5516,23 @@ }, "node_modules/binary-extensions": { "version": "2.2.0", + "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz", + "integrity": "sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==", "dev": true, - "license": "MIT", "engines": { "node": ">=8" } }, "node_modules/bintrees": { "version": "1.0.2", - "license": "MIT", + "resolved": "https://registry.npmjs.org/bintrees/-/bintrees-1.0.2.tgz", + "integrity": "sha512-VOMgTMwjAaUG580SXn3LacVgjurrbMme7ZZNYGSSV7mmtY6QQRh0Eg3pwIcntQ77DErK1L0NxkbetjcoXzVwKw==", "optional": true }, "node_modules/bl": { "version": "5.1.0", - "license": "MIT", + "resolved": "https://registry.npmjs.org/bl/-/bl-5.1.0.tgz", + "integrity": "sha512-tv1ZJHLfTDnXE6tMHv73YgSJaWR2AFuPwMntBe7XL/GBFHnT0CLnsHMogfk5+GzCDC5ZWarSCYaIGATZt9dNsQ==", "dependencies": { "buffer": "^6.0.3", "inherits": "^2.0.4", @@ -5100,7 +5541,8 @@ }, "node_modules/bl/node_modules/readable-stream": { "version": "3.6.0", - "license": "MIT", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", + "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", "dependencies": { "inherits": "^2.0.3", "string_decoder": "^1.1.1", @@ -5112,7 +5554,8 @@ }, "node_modules/blob-to-it": { "version": "2.0.0", - "license": "Apache-2.0 OR MIT", + "resolved": "https://registry.npmjs.org/blob-to-it/-/blob-to-it-2.0.0.tgz", + "integrity": "sha512-O9P902MzxHg8fjIAzmK4HSo9WmcMn1ACJvSHJvIYWDr4na7GLyR5iQTf0i2EXlnM5EIWmWtk+vh38tTph9JiPA==", "dependencies": { "browser-readablestream-to-it": "^2.0.0" }, @@ -5123,7 +5566,8 @@ }, "node_modules/blockstore-core": { "version": "2.0.2", - "license": "Apache-2.0 OR MIT", + "resolved": "https://registry.npmjs.org/blockstore-core/-/blockstore-core-2.0.2.tgz", + "integrity": "sha512-ALry3rBp2pTEi4F/usjCJGRluAKYFWI9Np7uE0pZHfDeScMJSj/fDkHEWvY80tPYu4kj03sLKRDGJlZH+V7VzQ==", "dependencies": { "err-code": "^3.0.1", "interface-blockstore": "^3.0.0", @@ -5141,23 +5585,28 @@ }, "node_modules/blockstore-core/node_modules/it-all": { "version": "1.0.6", - "license": "ISC" + "resolved": "https://registry.npmjs.org/it-all/-/it-all-1.0.6.tgz", + "integrity": "sha512-3cmCc6Heqe3uWi3CVM/k51fa/XbMFpQVzFoDsV0IZNHSQDyAXl3c4MjHkFX5kF3922OGj7Myv1nSEUgRtcuM1A==" }, "node_modules/blockstore-core/node_modules/it-drain": { "version": "1.0.5", - "license": "ISC" + "resolved": "https://registry.npmjs.org/it-drain/-/it-drain-1.0.5.tgz", + "integrity": "sha512-r/GjkiW1bZswC04TNmUnLxa6uovme7KKwPhc+cb1hHU65E3AByypHH6Pm91WHuvqfFsm+9ws0kPtDBV3/8vmIg==" }, "node_modules/blockstore-core/node_modules/it-filter": { "version": "1.0.3", - "license": "ISC" + "resolved": "https://registry.npmjs.org/it-filter/-/it-filter-1.0.3.tgz", + "integrity": "sha512-EI3HpzUrKjTH01miLHWmhNWy3Xpbx4OXMXltgrNprL5lDpF3giVpHIouFpr5l+evXw6aOfxhnt01BIB+4VQA+w==" }, "node_modules/blockstore-core/node_modules/it-take": { "version": "1.0.2", - "license": "ISC" + "resolved": "https://registry.npmjs.org/it-take/-/it-take-1.0.2.tgz", + "integrity": "sha512-u7I6qhhxH7pSevcYNaMECtkvZW365ARqAIt9K+xjdK1B2WUDEjQSfETkOCT8bxFq/59LqrN3cMLUtTgmDBaygw==" }, "node_modules/blockstore-core/node_modules/multiformats": { "version": "10.0.3", - "license": "Apache-2.0 OR MIT", + "resolved": "https://registry.npmjs.org/multiformats/-/multiformats-10.0.3.tgz", + "integrity": "sha512-K2yGSmstS/oEmYiEIieHb53jJCaqp4ERPDQAYrm5sV3UUrVDZeshJQCK6GHAKyIGufU1vAcbS0PdAAZmC7Tzcw==", "engines": { "node": ">=16.0.0", "npm": ">=7.0.0" @@ -5165,7 +5614,8 @@ }, "node_modules/blockstore-datastore-adapter": { "version": "4.0.0", - "license": "Apache-2.0 OR MIT", + "resolved": "https://registry.npmjs.org/blockstore-datastore-adapter/-/blockstore-datastore-adapter-4.0.0.tgz", + "integrity": "sha512-vzy2lgLb7PQ0qopuZk6B+syRULdUt9w/ffNl7EXcvGZLS5+VoUmh4Agdp1OVuoaMEfXoEqIvCaPXi/v3829vBg==", "dependencies": { "blockstore-core": "^2.0.0", "err-code": "^3.0.1", @@ -5182,7 +5632,8 @@ }, "node_modules/blockstore-datastore-adapter/node_modules/multiformats": { "version": "10.0.3", - "license": "Apache-2.0 OR MIT", + "resolved": "https://registry.npmjs.org/multiformats/-/multiformats-10.0.3.tgz", + "integrity": "sha512-K2yGSmstS/oEmYiEIieHb53jJCaqp4ERPDQAYrm5sV3UUrVDZeshJQCK6GHAKyIGufU1vAcbS0PdAAZmC7Tzcw==", "engines": { "node": ">=16.0.0", "npm": ">=7.0.0" @@ -5190,11 +5641,13 @@ }, "node_modules/bn.js": { "version": "5.2.1", - "license": "MIT" + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-5.2.1.tgz", + "integrity": "sha512-eXRvHzWyYPBuB4NBy0cmYQjGitUrtqwbvlzP3G6VFnNRbsZQIxQ10PbKKHt8gZ/HW/D/747aDl+QkDqg3KQLMQ==" }, "node_modules/boxen": { "version": "7.0.1", - "license": "MIT", + "resolved": "https://registry.npmjs.org/boxen/-/boxen-7.0.1.tgz", + "integrity": "sha512-8k2eH6SRAK00NDl1iX5q17RJ8rfl53TajdYxE3ssMLehbg487dEVgsad4pIsZb/QqBgYWIl6JOauMTLGX2Kpkw==", "dependencies": { "ansi-align": "^3.0.1", "camelcase": "^7.0.0", @@ -5214,7 +5667,8 @@ }, "node_modules/boxen/node_modules/ansi-regex": { "version": "6.0.1", - "license": "MIT", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.0.1.tgz", + "integrity": "sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==", "engines": { "node": ">=12" }, @@ -5224,7 +5678,8 @@ }, "node_modules/boxen/node_modules/ansi-styles": { "version": "6.2.1", - "license": "MIT", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.1.tgz", + "integrity": "sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==", "engines": { "node": ">=12" }, @@ -5234,7 +5689,8 @@ }, "node_modules/boxen/node_modules/camelcase": { "version": "7.0.1", - "license": "MIT", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-7.0.1.tgz", + "integrity": "sha512-xlx1yCK2Oc1APsPXDL2LdlNP6+uu8OCDdhOBSVT279M/S+y75O30C2VuD8T2ogdePBBl7PfPF4504tnLgX3zfw==", "engines": { "node": ">=14.16" }, @@ -5244,7 +5700,8 @@ }, "node_modules/boxen/node_modules/chalk": { "version": "5.2.0", - "license": "MIT", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-5.2.0.tgz", + "integrity": "sha512-ree3Gqw/nazQAPuJJEy+avdl7QfZMcUvmHIKgEZkGL+xOBzRvup5Hxo6LHuMceSxOabuJLJm5Yp/92R9eMmMvA==", "engines": { "node": "^12.17.0 || ^14.13 || >=16.0.0" }, @@ -5254,11 +5711,13 @@ }, "node_modules/boxen/node_modules/emoji-regex": { "version": "9.2.2", - "license": "MIT" + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-9.2.2.tgz", + "integrity": "sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==" }, "node_modules/boxen/node_modules/string-width": { "version": "5.1.2", - "license": "MIT", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-5.1.2.tgz", + "integrity": "sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==", "dependencies": { "eastasianwidth": "^0.2.0", "emoji-regex": "^9.2.2", @@ -5273,7 +5732,8 @@ }, "node_modules/boxen/node_modules/strip-ansi": { "version": "7.0.1", - "license": "MIT", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.0.1.tgz", + "integrity": "sha512-cXNxvT8dFNRVfhVME3JAe98mkXDYN2O1l7jmcwMnOslDeESg1rF/OZMtK0nRAhiari1unG5cD4jG3rapUAkLbw==", "dependencies": { "ansi-regex": "^6.0.1" }, @@ -5286,7 +5746,8 @@ }, "node_modules/boxen/node_modules/wrap-ansi": { "version": "8.0.1", - "license": "MIT", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-8.0.1.tgz", + "integrity": "sha512-QFF+ufAqhoYHvoHdajT/Po7KoXVBPXS2bgjIam5isfWJPfIOnQZ50JtUiVvCv/sjgacf3yRrt2ZKUZ/V4itN4g==", "dependencies": { "ansi-styles": "^6.1.0", "string-width": "^5.0.1", @@ -5301,15 +5762,17 @@ }, "node_modules/brace-expansion": { "version": "2.0.1", - "license": "MIT", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", + "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", "dependencies": { "balanced-match": "^1.0.0" } }, "node_modules/braces": { "version": "3.0.2", + "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", + "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", "dev": true, - "license": "MIT", "dependencies": { "fill-range": "^7.0.1" }, @@ -5319,7 +5782,8 @@ }, "node_modules/browser-level": { "version": "1.0.1", - "license": "MIT", + "resolved": "https://registry.npmjs.org/browser-level/-/browser-level-1.0.1.tgz", + "integrity": "sha512-XECYKJ+Dbzw0lbydyQuJzwNXtOpbMSq737qxJN11sIRTErOMShvDpbzTlgju7orJKvx4epULolZAuJGLzCmWRQ==", "dependencies": { "abstract-level": "^1.0.2", "catering": "^2.1.1", @@ -5329,7 +5793,8 @@ }, "node_modules/browser-readablestream-to-it": { "version": "2.0.0", - "license": "Apache-2.0 OR MIT", + "resolved": "https://registry.npmjs.org/browser-readablestream-to-it/-/browser-readablestream-to-it-2.0.0.tgz", + "integrity": "sha512-x7L6NN0FF0LchYKA7D5x2/oJ+n6Y8A0gFaazIxH2AkHr+fjFJvsDUYLLQKAfIkpKiLjQEkbjF0DBw7HRT1ylNA==", "engines": { "node": ">=16.0.0", "npm": ">=7.0.0" @@ -5337,11 +5802,14 @@ }, "node_modules/browser-stdout": { "version": "1.3.1", - "dev": true, - "license": "ISC" + "resolved": "https://registry.npmjs.org/browser-stdout/-/browser-stdout-1.3.1.tgz", + "integrity": "sha512-qhAVI1+Av2X7qelOfAIYwXONood6XlZE/fXaBSmW/T5SzLAmCgzi+eiWE7fUvbHaeNBQH13UftjpXxsfLkMpgw==", + "dev": true }, "node_modules/browserslist": { "version": "4.21.5", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.21.5.tgz", + "integrity": "sha512-tUkiguQGW7S3IhB7N+c2MV/HZPSCPAAiYBZXLsBhFB/PCy6ZKKsZrmBayHV9fdGV/ARIfJ14NkxKzRDjvp7L6w==", "dev": true, "funding": [ { @@ -5353,7 +5821,6 @@ "url": "https://tidelift.com/funding/github/npm/browserslist" } ], - "license": "MIT", "dependencies": { "caniuse-lite": "^1.0.30001449", "electron-to-chromium": "^1.4.284", @@ -5369,6 +5836,8 @@ }, "node_modules/buffer": { "version": "6.0.3", + "resolved": "https://registry.npmjs.org/buffer/-/buffer-6.0.3.tgz", + "integrity": "sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA==", "funding": [ { "type": "github", @@ -5383,7 +5852,6 @@ "url": "https://feross.org/support" } ], - "license": "MIT", "dependencies": { "base64-js": "^1.3.1", "ieee754": "^1.2.1" @@ -5391,13 +5859,15 @@ }, "node_modules/buffer-from": { "version": "1.1.2", - "dev": true, - "license": "MIT" + "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz", + "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==", + "dev": true }, "node_modules/bufferutil": { "version": "4.0.7", + "resolved": "https://registry.npmjs.org/bufferutil/-/bufferutil-4.0.7.tgz", + "integrity": "sha512-kukuqc39WOHtdxtw4UScxF/WVnMFVSQVKhtx3AjZJzhd0RGZZldcrfSEbVsWWe6KNH253574cq5F+wpv0G9pJw==", "hasInstallScript": true, - "license": "MIT", "dependencies": { "node-gyp-build": "^4.3.0" }, @@ -5407,6 +5877,8 @@ }, "node_modules/busboy": { "version": "1.6.0", + "resolved": "https://registry.npmjs.org/busboy/-/busboy-1.6.0.tgz", + "integrity": "sha512-8SFQbg/0hQ9xy3UNTB0YEnsNBbWfhf7RtnzpL7TkBiTBRfrQ9Fxcnz7VJsleJpyp6rVLvXiuORqjlHi5q+PYuA==", "dependencies": { "streamsearch": "^1.1.0" }, @@ -5416,7 +5888,8 @@ }, "node_modules/byte-access": { "version": "1.0.1", - "license": "Apache-2.0 OR MIT", + "resolved": "https://registry.npmjs.org/byte-access/-/byte-access-1.0.1.tgz", + "integrity": "sha512-GKYa+lvxnzhgHWj9X+LCsQ4s2/C5uvib573eAOiQKywXMkzFFErY2+yQdzmdE5iWVpmqecsRx3bOtOY4/1eINw==", "dependencies": { "uint8arraylist": "^2.0.0" }, @@ -5427,25 +5900,29 @@ }, "node_modules/byteman": { "version": "1.3.5", - "license": "MIT" + "resolved": "https://registry.npmjs.org/byteman/-/byteman-1.3.5.tgz", + "integrity": "sha512-FzWDstifFRxtHX234b93AGa1b77dA6NUFpEXe+AoG1NydGN//XDZLMXxRNUoMf7SYYhVxfpwUEUgQOziearJvA==" }, "node_modules/bytes": { "version": "3.1.2", - "license": "MIT", + "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.2.tgz", + "integrity": "sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==", "engines": { "node": ">= 0.8" } }, "node_modules/cacheable-lookup": { "version": "7.0.0", - "license": "MIT", + "resolved": "https://registry.npmjs.org/cacheable-lookup/-/cacheable-lookup-7.0.0.tgz", + "integrity": "sha512-+qJyx4xiKra8mZrcwhjMRMUhD5NR1R8esPkzIYxX96JiecFoxAXFuz/GpR3+ev4PE1WamHip78wV0vcmPQtp8w==", "engines": { "node": ">=14.16" } }, "node_modules/cacheable-request": { "version": "10.2.5", - "license": "MIT", + "resolved": "https://registry.npmjs.org/cacheable-request/-/cacheable-request-10.2.5.tgz", + "integrity": "sha512-5RwYYCfzjNPsyJxb/QpaM0bfzx+kw5/YpDhZPm9oMIDntHFQ9YXeyV47ZvzlTE0XrrrbyO2UITJH4GF9eRLdXQ==", "dependencies": { "@types/http-cache-semantics": "^4.0.1", "get-stream": "^6.0.1", @@ -5461,7 +5938,8 @@ }, "node_modules/call-bind": { "version": "1.0.2", - "license": "MIT", + "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.2.tgz", + "integrity": "sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==", "dependencies": { "function-bind": "^1.1.1", "get-intrinsic": "^1.0.2" @@ -5472,8 +5950,9 @@ }, "node_modules/callsites": { "version": "3.1.0", + "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", + "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", "dev": true, - "license": "MIT", "peer": true, "engines": { "node": ">=6" @@ -5481,7 +5960,8 @@ }, "node_modules/camel-case": { "version": "4.1.2", - "license": "MIT", + "resolved": "https://registry.npmjs.org/camel-case/-/camel-case-4.1.2.tgz", + "integrity": "sha512-gxGWBrTT1JuMx6R+o5PTXMmUnhnVzLQ9SNutD4YqKtI6ap897t3tKECYla6gCWEkplXnlNybEkZg9GEGxKFCgw==", "dependencies": { "pascal-case": "^3.1.2", "tslib": "^2.0.3" @@ -5489,8 +5969,9 @@ }, "node_modules/camelcase": { "version": "6.3.0", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.3.0.tgz", + "integrity": "sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==", "dev": true, - "license": "MIT", "engines": { "node": ">=10" }, @@ -5500,6 +5981,8 @@ }, "node_modules/caniuse-lite": { "version": "1.0.30001449", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001449.tgz", + "integrity": "sha512-CPB+UL9XMT/Av+pJxCKGhdx+yg1hzplvFJQlJ2n68PyQGMz9L/E2zCyLdOL8uasbouTUgnPl+y0tccI/se+BEw==", "dev": true, "funding": [ { @@ -5510,12 +5993,12 @@ "type": "tidelift", "url": "https://tidelift.com/funding/github/npm/caniuse-lite" } - ], - "license": "CC-BY-4.0" + ] }, "node_modules/capital-case": { "version": "1.0.4", - "license": "MIT", + "resolved": "https://registry.npmjs.org/capital-case/-/capital-case-1.0.4.tgz", + "integrity": "sha512-ds37W8CytHgwnhGGTi88pcPyR15qoNkOpYwmMMfnWqqWgESapLqvDx6huFjQ5vqWSn2Z06173XNA7LtMOeUh1A==", "dependencies": { "no-case": "^3.0.4", "tslib": "^2.0.3", @@ -5524,21 +6007,24 @@ }, "node_modules/catering": { "version": "2.1.1", - "license": "MIT", + "resolved": "https://registry.npmjs.org/catering/-/catering-2.1.1.tgz", + "integrity": "sha512-K7Qy8O9p76sL3/3m7/zLKbRkyOlSZAgzEaLhyj2mXS8PsCud2Eo4hAb8aLtZqHh0QGqLcb9dlJSu6lHRVENm1w==", "engines": { "node": ">=6" } }, "node_modules/cborg": { "version": "1.10.0", - "license": "Apache-2.0", + "resolved": "https://registry.npmjs.org/cborg/-/cborg-1.10.0.tgz", + "integrity": "sha512-/eM0JCaL99HDHxjySNQJLaolZFVdl6VA0/hEKIoiQPcQzE5LrG5QHdml0HaBt31brgB9dNe1zMr3f8IVrpotRQ==", "bin": { "cborg": "cli.js" } }, "node_modules/chalk": { "version": "2.4.2", - "license": "MIT", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", "dependencies": { "ansi-styles": "^3.2.1", "escape-string-regexp": "^1.0.5", @@ -5550,7 +6036,8 @@ }, "node_modules/change-case": { "version": "4.1.2", - "license": "MIT", + "resolved": "https://registry.npmjs.org/change-case/-/change-case-4.1.2.tgz", + "integrity": "sha512-bSxY2ws9OtviILG1EiY5K7NNxkqg/JnRnFxLtKQ96JaviiIxi7djMrSd0ECT9AC+lttClmYwKw53BWpOMblo7A==", "dependencies": { "camel-case": "^4.1.2", "capital-case": "^1.0.4", @@ -5568,6 +6055,8 @@ }, "node_modules/chokidar": { "version": "3.5.3", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.3.tgz", + "integrity": "sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==", "dev": true, "funding": [ { @@ -5575,7 +6064,6 @@ "url": "https://paulmillr.com/funding/" } ], - "license": "MIT", "dependencies": { "anymatch": "~3.1.2", "braces": "~3.0.2", @@ -5594,28 +6082,31 @@ }, "node_modules/chownr": { "version": "2.0.0", - "license": "ISC", + "resolved": "https://registry.npmjs.org/chownr/-/chownr-2.0.0.tgz", + "integrity": "sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ==", "engines": { "node": ">=10" } }, "node_modules/ci-info": { "version": "3.7.1", + "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-3.7.1.tgz", + "integrity": "sha512-4jYS4MOAaCIStSRwiuxc4B8MYhIe676yO1sYGzARnjXkWpmzZMMYxY6zu8WYWDhSuth5zhrQ1rhNSibyyvv4/w==", "funding": [ { "type": "github", "url": "https://github.com/sponsors/sibiraj-s" } ], - "license": "MIT", "engines": { "node": ">=8" } }, "node_modules/classic-level": { "version": "1.2.0", + "resolved": "https://registry.npmjs.org/classic-level/-/classic-level-1.2.0.tgz", + "integrity": "sha512-qw5B31ANxSluWz9xBzklRWTUAJ1SXIdaVKTVS7HcTGKOAmExx65Wo5BUICW+YGORe2FOUaDghoI9ZDxj82QcFg==", "hasInstallScript": true, - "license": "MIT", "dependencies": { "abstract-level": "^1.0.2", "catering": "^2.1.0", @@ -5629,7 +6120,8 @@ }, "node_modules/cli-boxes": { "version": "3.0.0", - "license": "MIT", + "resolved": "https://registry.npmjs.org/cli-boxes/-/cli-boxes-3.0.0.tgz", + "integrity": "sha512-/lzGpEWL/8PfI0BmBOPRwp0c/wFNX1RdUML3jK/RcSBA9T8mZDdQpqYBKtCFTOfQbwPqWEOpjqW+Fnayc0969g==", "engines": { "node": ">=10" }, @@ -5639,7 +6131,8 @@ }, "node_modules/cliui": { "version": "8.0.1", - "license": "ISC", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-8.0.1.tgz", + "integrity": "sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==", "dependencies": { "string-width": "^4.2.0", "strip-ansi": "^6.0.1", @@ -5651,8 +6144,9 @@ }, "node_modules/clone-deep": { "version": "4.0.1", + "resolved": "https://registry.npmjs.org/clone-deep/-/clone-deep-4.0.1.tgz", + "integrity": "sha512-neHB9xuzh/wk0dIHweyAXv2aPGZIVk3pLMe+/RNzINf17fe0OG96QroktYAUm7SM1PBnzTabaLboqqxDyMU+SQ==", "dev": true, - "license": "MIT", "dependencies": { "is-plain-object": "^2.0.4", "kind-of": "^6.0.2", @@ -5664,7 +6158,8 @@ }, "node_modules/clone-regexp": { "version": "3.0.0", - "license": "MIT", + "resolved": "https://registry.npmjs.org/clone-regexp/-/clone-regexp-3.0.0.tgz", + "integrity": "sha512-ujdnoq2Kxb8s3ItNBtnYeXdm07FcU0u8ARAT1lQ2YdMwQC+cdiXX8KoqMVuglztILivceTtp4ivqGSmEmhBUJw==", "dependencies": { "is-regexp": "^3.0.0" }, @@ -5677,29 +6172,34 @@ }, "node_modules/coercer": { "version": "1.1.2", - "license": "ISC" + "resolved": "https://registry.npmjs.org/coercer/-/coercer-1.1.2.tgz", + "integrity": "sha512-Hu19wnyO8jzg7khfk50U6w3TGcdl8AXPalTcC0mDfHIqsWl/+y7oKdnpEneXW27DIgQh1R79U8seiTeWiNQjsw==" }, "node_modules/color-convert": { "version": "1.9.3", - "license": "MIT", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", + "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", "dependencies": { "color-name": "1.1.3" } }, "node_modules/color-name": { "version": "1.1.3", - "license": "MIT" + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==" }, "node_modules/color-support": { "version": "1.1.3", - "license": "ISC", + "resolved": "https://registry.npmjs.org/color-support/-/color-support-1.1.3.tgz", + "integrity": "sha512-qiBjkpbMLO/HL68y+lh4q0/O1MZFj2RX6X/KmMa3+gJD3z+WwI1ZzDHysvqHGS3mP6mznPckpXmw1nI9cJjyRg==", "bin": { "color-support": "bin.js" } }, "node_modules/combined-stream": { "version": "1.0.8", - "license": "MIT", + "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz", + "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==", "dependencies": { "delayed-stream": "~1.0.0" }, @@ -5709,16 +6209,19 @@ }, "node_modules/commondir": { "version": "1.0.1", - "dev": true, - "license": "MIT" + "resolved": "https://registry.npmjs.org/commondir/-/commondir-1.0.1.tgz", + "integrity": "sha512-W9pAhw0ja1Edb5GVdIF1mjZw/ASI0AlShXM83UUGe2DVr5TdAPEA1OA8m/g8zWp9x6On7gqufY+FatDbC3MDQg==", + "dev": true }, "node_modules/concat-map": { "version": "0.0.1", - "license": "MIT" + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==" }, "node_modules/config-chain": { "version": "1.1.13", - "license": "MIT", + "resolved": "https://registry.npmjs.org/config-chain/-/config-chain-1.1.13.tgz", + "integrity": "sha512-qj+f8APARXHrM0hraqXYb2/bOVSV4PvJQlNZ/DVj0QrmNM2q2euizkeuVckQ57J+W0mRH6Hvi+k50M4Jul2VRQ==", "dependencies": { "ini": "^1.3.4", "proto-list": "~1.2.1" @@ -5726,7 +6229,8 @@ }, "node_modules/configstore": { "version": "6.0.0", - "license": "BSD-2-Clause", + "resolved": "https://registry.npmjs.org/configstore/-/configstore-6.0.0.tgz", + "integrity": "sha512-cD31W1v3GqUlQvbBCGcXmd2Nj9SvLDOP1oQ0YFuLETufzSPaKp11rYBsSOm7rCsW3OnIRAFM3OxRhceaXNYHkA==", "dependencies": { "dot-prop": "^6.0.1", "graceful-fs": "^4.2.6", @@ -5743,11 +6247,13 @@ }, "node_modules/console-control-strings": { "version": "1.1.0", - "license": "ISC" + "resolved": "https://registry.npmjs.org/console-control-strings/-/console-control-strings-1.1.0.tgz", + "integrity": "sha512-ty/fTekppD2fIwRvnZAVdeOiGd1c7YXEixbgJTNzqcxJWKQnjJ/V1bNEEE6hygpM3WjwHFUVK6HTjWSzV4a8sQ==" }, "node_modules/constant-case": { "version": "3.0.4", - "license": "MIT", + "resolved": "https://registry.npmjs.org/constant-case/-/constant-case-3.0.4.tgz", + "integrity": "sha512-I2hSBi7Vvs7BEuJDr5dDHfzb/Ruj3FyvFyh7KLilAjNQw3Be+xgqUBA2W6scVEcL0hL1dwPRtIqEPVUCKkSsyQ==", "dependencies": { "no-case": "^3.0.4", "tslib": "^2.0.3", @@ -5756,7 +6262,8 @@ }, "node_modules/convert-hrtime": { "version": "5.0.0", - "license": "MIT", + "resolved": "https://registry.npmjs.org/convert-hrtime/-/convert-hrtime-5.0.0.tgz", + "integrity": "sha512-lOETlkIeYSJWcbbcvjRKGxVMXJR+8+OQb/mTPbA4ObPMytYIsUbuOE0Jzy60hjARYszq1id0j8KgVhC+WGZVTg==", "engines": { "node": ">=12" }, @@ -5766,17 +6273,20 @@ }, "node_modules/convert-source-map": { "version": "1.9.0", - "dev": true, - "license": "MIT" + "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.9.0.tgz", + "integrity": "sha512-ASFBup0Mz1uyiIjANan1jzLQami9z1PoYSZCiiYW2FczPbenXc45FZdBZLzOT+r6+iciuEModtmCti+hjaAk0A==", + "dev": true }, "node_modules/create-require": { "version": "1.1.1", - "dev": true, - "license": "MIT" + "resolved": "https://registry.npmjs.org/create-require/-/create-require-1.1.1.tgz", + "integrity": "sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ==", + "dev": true }, "node_modules/cross-spawn": { "version": "7.0.3", - "license": "MIT", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", + "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", "dependencies": { "path-key": "^3.1.0", "shebang-command": "^2.0.0", @@ -5788,7 +6298,8 @@ }, "node_modules/crypto-random-string": { "version": "4.0.0", - "license": "MIT", + "resolved": "https://registry.npmjs.org/crypto-random-string/-/crypto-random-string-4.0.0.tgz", + "integrity": "sha512-x8dy3RnvYdlUcPOjkEHqozhiwzKNSq7GcPuXFbnyMOCHxX8V3OgIg/pYuabl2sbUPfIJaeAQB7PMOK8DFIdoRA==", "dependencies": { "type-fest": "^1.0.1" }, @@ -5801,7 +6312,8 @@ }, "node_modules/crypto-random-string/node_modules/type-fest": { "version": "1.4.0", - "license": "(MIT OR CC0-1.0)", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-1.4.0.tgz", + "integrity": "sha512-yGSza74xk0UG8k+pLh5oeoYirvIiWo5t0/o3zHHAO2tRDiZcxWP7fywNlXhqb6/r6sWvwi+RsyQMWhVLe4BVuA==", "engines": { "node": ">=10" }, @@ -5811,7 +6323,8 @@ }, "node_modules/d": { "version": "1.0.1", - "license": "ISC", + "resolved": "https://registry.npmjs.org/d/-/d-1.0.1.tgz", + "integrity": "sha512-m62ShEObQ39CfralilEQRjH6oAMtNCV1xJyEx5LpRYUVN+EviphDgUc/F3hnYbADmkiNs67Y+3ylmlG7Lnu+FA==", "dependencies": { "es5-ext": "^0.10.50", "type": "^1.0.1" @@ -5819,7 +6332,8 @@ }, "node_modules/dag-jose": { "version": "3.0.1", - "license": "(Apache-2.0 OR MIT)", + "resolved": "https://registry.npmjs.org/dag-jose/-/dag-jose-3.0.1.tgz", + "integrity": "sha512-HUdzCqM4ukT168fgFl1IgOVf5J9I7WSbvBovOhOsQWIJZ+LGGVEd/Dg4f1ZirslsBZzLEeXU8LBuPpf4he5CKg==", "dependencies": { "@ipld/dag-cbor": "^8.0.0", "multiformats": "^10.0.1" @@ -5827,7 +6341,8 @@ }, "node_modules/dag-jose/node_modules/multiformats": { "version": "10.0.3", - "license": "Apache-2.0 OR MIT", + "resolved": "https://registry.npmjs.org/multiformats/-/multiformats-10.0.3.tgz", + "integrity": "sha512-K2yGSmstS/oEmYiEIieHb53jJCaqp4ERPDQAYrm5sV3UUrVDZeshJQCK6GHAKyIGufU1vAcbS0PdAAZmC7Tzcw==", "engines": { "node": ">=16.0.0", "npm": ">=7.0.0" @@ -5835,14 +6350,16 @@ }, "node_modules/data-uri-to-buffer": { "version": "4.0.0", - "license": "MIT", + "resolved": "https://registry.npmjs.org/data-uri-to-buffer/-/data-uri-to-buffer-4.0.0.tgz", + "integrity": "sha512-Vr3mLBA8qWmcuschSLAOogKgQ/Jwxulv3RNE4FXnYWRGujzrRWQI4m12fQqRkwX06C0KanhLr4hK+GydchZsaA==", "engines": { "node": ">= 12" } }, "node_modules/datastore-core": { "version": "8.0.3", - "license": "Apache-2.0 OR MIT", + "resolved": "https://registry.npmjs.org/datastore-core/-/datastore-core-8.0.3.tgz", + "integrity": "sha512-x1cAYGXnJQRDbUYF7pUBpx4bN+UP+8MOk66A30G70pVVnIG9TbkEAiapYUrwZGFdJnpZnb3HeS5Q13rsUNxIJQ==", "dependencies": { "@libp2p/logger": "^2.0.0", "err-code": "^3.0.1", @@ -5864,7 +6381,8 @@ }, "node_modules/datastore-fs": { "version": "8.0.0", - "license": "Apache-2.0 OR MIT", + "resolved": "https://registry.npmjs.org/datastore-fs/-/datastore-fs-8.0.0.tgz", + "integrity": "sha512-yXPf+d08RL9wdWqZbLaJxbS0FMkKNCoYYXW6MausrFAF03hCWvap62bvPC7fX415PF0v/8JOw1aSJyGJ9WjtHA==", "dependencies": { "datastore-core": "^8.0.1", "fast-write-atomic": "^0.2.0", @@ -5881,11 +6399,13 @@ }, "node_modules/datastore-fs/node_modules/it-map": { "version": "1.0.6", - "license": "ISC" + "resolved": "https://registry.npmjs.org/it-map/-/it-map-1.0.6.tgz", + "integrity": "sha512-XT4/RM6UHIFG9IobGlQPFQUrlEKkU4eBUFG3qhWhfAdh1JfF2x11ShCrKCdmZ0OiZppPfoLuzcfA4cey6q3UAQ==" }, "node_modules/datastore-level": { "version": "9.0.4", - "license": "Apache-2.0 OR MIT", + "resolved": "https://registry.npmjs.org/datastore-level/-/datastore-level-9.0.4.tgz", + "integrity": "sha512-HKf2tVVWywdidI+94z0B5NLx4J94wTLCT1tYXXxJ58MK/Y5rdX8WVRp9XmZaODS70uxpNC8/UrvWr0iTBZwkUA==", "dependencies": { "abstract-level": "^1.0.3", "datastore-core": "^8.0.1", @@ -5903,7 +6423,8 @@ }, "node_modules/datastore-pubsub": { "version": "6.0.0", - "license": "Apache-2.0 OR MIT", + "resolved": "https://registry.npmjs.org/datastore-pubsub/-/datastore-pubsub-6.0.0.tgz", + "integrity": "sha512-HvzzDwfquX9zFaBsoj1Ue9ewlYX4dqneTTW2fRoKYsG4LQWwMXAU925qiki31kUe//QjYFN/Mi2xuwdk65PQog==", "dependencies": { "@libp2p/interface-dht": "^1.0.1", "@libp2p/interface-pubsub": "^3.0.0", @@ -5922,14 +6443,16 @@ }, "node_modules/dateformat": { "version": "4.6.3", - "license": "MIT", + "resolved": "https://registry.npmjs.org/dateformat/-/dateformat-4.6.3.tgz", + "integrity": "sha512-2P0p0pFGzHS5EMnhdxQi7aJN+iMheud0UhG4dlE1DLAlvL8JHjJJTX/CSm4JXwV0Ka5nGk3zC5mcb5bUQUxxMA==", "engines": { "node": "*" } }, "node_modules/debug": { "version": "4.3.4", - "license": "MIT", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", + "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", "dependencies": { "ms": "2.1.2" }, @@ -5944,8 +6467,9 @@ }, "node_modules/decamelize": { "version": "4.0.0", + "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-4.0.0.tgz", + "integrity": "sha512-9iE1PgSik9HeIIw2JO94IidnE3eBoQrFJ3w7sFuzSX4DpmZ3v5sZpUiV5Swcf6mQEF+Y0ru8Neo+p+nyh2J+hQ==", "dev": true, - "license": "MIT", "engines": { "node": ">=10" }, @@ -5955,7 +6479,8 @@ }, "node_modules/decompress-response": { "version": "6.0.0", - "license": "MIT", + "resolved": "https://registry.npmjs.org/decompress-response/-/decompress-response-6.0.0.tgz", + "integrity": "sha512-aW35yZM6Bb/4oJlZncMH2LCoZtJXTRxES17vE3hoRiowU2kWHaJKFkSBDnDR+cm9J+9QhXmREyIfv0pji9ejCQ==", "dependencies": { "mimic-response": "^3.1.0" }, @@ -5968,7 +6493,8 @@ }, "node_modules/decompress-response/node_modules/mimic-response": { "version": "3.1.0", - "license": "MIT", + "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-3.1.0.tgz", + "integrity": "sha512-z0yWI+4FDrrweS8Zmt4Ej5HdJmky15+L2e6Wgn3+iK5fWzb6T3fhNFq2+MeTRb064c6Wr4N/wv0DzQTjNzHNGQ==", "engines": { "node": ">=10" }, @@ -5978,20 +6504,23 @@ }, "node_modules/deep-extend": { "version": "0.6.0", - "license": "MIT", + "resolved": "https://registry.npmjs.org/deep-extend/-/deep-extend-0.6.0.tgz", + "integrity": "sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==", "engines": { "node": ">=4.0.0" } }, "node_modules/deep-is": { "version": "0.1.4", + "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz", + "integrity": "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==", "dev": true, - "license": "MIT", "peer": true }, "node_modules/default-gateway": { "version": "6.0.3", - "license": "BSD-2-Clause", + "resolved": "https://registry.npmjs.org/default-gateway/-/default-gateway-6.0.3.tgz", + "integrity": "sha512-fwSOJsbbNzZ/CUFpqFBqYfYNLj1NbMPm8MMCIzHjC83iSJRBEGmDUxU+WP661BaBQImeC2yHwXtz+P/O9o+XEg==", "dependencies": { "execa": "^5.0.0" }, @@ -6001,7 +6530,8 @@ }, "node_modules/default-gateway/node_modules/execa": { "version": "5.1.1", - "license": "MIT", + "resolved": "https://registry.npmjs.org/execa/-/execa-5.1.1.tgz", + "integrity": "sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==", "dependencies": { "cross-spawn": "^7.0.3", "get-stream": "^6.0.0", @@ -6022,14 +6552,16 @@ }, "node_modules/default-gateway/node_modules/human-signals": { "version": "2.1.0", - "license": "Apache-2.0", + "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-2.1.0.tgz", + "integrity": "sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==", "engines": { "node": ">=10.17.0" } }, "node_modules/default-gateway/node_modules/is-stream": { "version": "2.0.1", - "license": "MIT", + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.1.tgz", + "integrity": "sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==", "engines": { "node": ">=8" }, @@ -6039,14 +6571,16 @@ }, "node_modules/default-gateway/node_modules/mimic-fn": { "version": "2.1.0", - "license": "MIT", + "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz", + "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==", "engines": { "node": ">=6" } }, "node_modules/default-gateway/node_modules/npm-run-path": { "version": "4.0.1", - "license": "MIT", + "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-4.0.1.tgz", + "integrity": "sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==", "dependencies": { "path-key": "^3.0.0" }, @@ -6056,7 +6590,8 @@ }, "node_modules/default-gateway/node_modules/onetime": { "version": "5.1.2", - "license": "MIT", + "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz", + "integrity": "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==", "dependencies": { "mimic-fn": "^2.1.0" }, @@ -6069,21 +6604,24 @@ }, "node_modules/default-gateway/node_modules/strip-final-newline": { "version": "2.0.0", - "license": "MIT", + "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-2.0.0.tgz", + "integrity": "sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==", "engines": { "node": ">=6" } }, "node_modules/defer-to-connect": { "version": "2.0.1", - "license": "MIT", + "resolved": "https://registry.npmjs.org/defer-to-connect/-/defer-to-connect-2.0.1.tgz", + "integrity": "sha512-4tvttepXG1VaYGrRibk5EwJd1t4udunSOVMdLSAL6mId1ix438oPwPZMALY41FCijukO1L0twNcGsdzS7dHgDg==", "engines": { "node": ">=10" } }, "node_modules/delay": { "version": "5.0.0", - "license": "MIT", + "resolved": "https://registry.npmjs.org/delay/-/delay-5.0.0.tgz", + "integrity": "sha512-ReEBKkIfe4ya47wlPYf/gu5ib6yUG0/Aez0JQZQz94kiWtRQvZIQbTiehsnwHvLSWJnQdhVeqYue7Id1dKr0qw==", "engines": { "node": ">=10" }, @@ -6093,32 +6631,37 @@ }, "node_modules/delayed-stream": { "version": "1.0.0", - "license": "MIT", + "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", + "integrity": "sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==", "engines": { "node": ">=0.4.0" } }, "node_modules/delegates": { "version": "1.0.0", - "license": "MIT" + "resolved": "https://registry.npmjs.org/delegates/-/delegates-1.0.0.tgz", + "integrity": "sha512-bd2L678uiWATM6m5Z1VzNCErI3jiGzt6HGY8OVICs40JQq/HALfbyNJmp0UDakEY4pMMaN0Ly5om/B1VI/+xfQ==" }, "node_modules/denque": { "version": "1.5.1", - "license": "Apache-2.0", + "resolved": "https://registry.npmjs.org/denque/-/denque-1.5.1.tgz", + "integrity": "sha512-XwE+iZ4D6ZUB7mfYRMb5wByE8L74HCn30FBN7sWnXksWc1LO1bPDl67pBR9o/kC4z/xSNAwkMYcGgqDV3BE3Hw==", "engines": { "node": ">=0.10" } }, "node_modules/detect-libc": { "version": "2.0.1", - "license": "Apache-2.0", + "resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-2.0.1.tgz", + "integrity": "sha512-463v3ZeIrcWtdgIg6vI6XUncguvr2TnGl4SzDXinkt9mSLpBJKXT3mW6xT3VQdDN11+WVs29pgvivTc4Lp8v+w==", "engines": { "node": ">=8" } }, "node_modules/dezalgo": { "version": "1.0.4", - "license": "ISC", + "resolved": "https://registry.npmjs.org/dezalgo/-/dezalgo-1.0.4.tgz", + "integrity": "sha512-rXSP0bf+5n0Qonsb+SVVfNfIsimO4HEtmnIpPHY8Q1UCzKlQrDMfdobr8nJOOsRgWCyMRqeSBQzmWUMq7zvVig==", "dependencies": { "asap": "^2.0.0", "wrappy": "1" @@ -6126,20 +6669,23 @@ }, "node_modules/diff": { "version": "5.0.0", + "resolved": "https://registry.npmjs.org/diff/-/diff-5.0.0.tgz", + "integrity": "sha512-/VTCrvm5Z0JGty/BWHljh+BAiw3IK+2j87NGMu8Nwc/f48WoDAC395uomO9ZD117ZOBaHmkX1oyLvkVM/aIT3w==", "dev": true, - "license": "BSD-3-Clause", "engines": { "node": ">=0.3.1" } }, "node_modules/diff-match-patch": { "version": "1.0.5", - "license": "Apache-2.0" + "resolved": "https://registry.npmjs.org/diff-match-patch/-/diff-match-patch-1.0.5.tgz", + "integrity": "sha512-IayShXAgj/QMXgB0IWmKx+rOPuGMhqm5w6jvFxmVenXKIzRqTAAsbBPT3kWQeGANj3jGgvcvv4yK6SxqYmikgw==" }, "node_modules/dir-glob": { "version": "3.0.1", + "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-3.0.1.tgz", + "integrity": "sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==", "dev": true, - "license": "MIT", "dependencies": { "path-type": "^4.0.0" }, @@ -6149,11 +6695,13 @@ }, "node_modules/dlv": { "version": "1.1.3", - "license": "MIT" + "resolved": "https://registry.npmjs.org/dlv/-/dlv-1.1.3.tgz", + "integrity": "sha512-+HlytyjlPKnIG8XuRG8WvmBP8xs8P71y+SKKS6ZXWoEgLuePxtDoUEiH7WkdePWrQ5JBpE6aoVqfZfJUQkjXwA==" }, "node_modules/dns-over-http-resolver": { "version": "2.1.1", - "license": "Apache-2.0 OR MIT", + "resolved": "https://registry.npmjs.org/dns-over-http-resolver/-/dns-over-http-resolver-2.1.1.tgz", + "integrity": "sha512-Lm/eXB7yAQLJ5WxlBGwYfBY7utduXPZykcSmcG6K7ozM0wrZFvxZavhT6PqI0kd/5CUTfev/RrEFQqyU4CGPew==", "dependencies": { "debug": "^4.3.1", "native-fetch": "^4.0.2", @@ -6167,7 +6715,8 @@ }, "node_modules/dns-packet": { "version": "5.4.0", - "license": "MIT", + "resolved": "https://registry.npmjs.org/dns-packet/-/dns-packet-5.4.0.tgz", + "integrity": "sha512-EgqGeaBB8hLiHLZtp/IbaDQTL8pZ0+IvwzSHA6d7VyMDM+B9hgddEMa9xjK5oYnw0ci0JQ6g2XCD7/f6cafU6g==", "dependencies": { "@leichtgewicht/ip-codec": "^2.0.1" }, @@ -6177,8 +6726,9 @@ }, "node_modules/doctrine": { "version": "3.0.0", + "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz", + "integrity": "sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==", "dev": true, - "license": "Apache-2.0", "peer": true, "dependencies": { "esutils": "^2.0.2" @@ -6189,7 +6739,8 @@ }, "node_modules/dot-case": { "version": "3.0.4", - "license": "MIT", + "resolved": "https://registry.npmjs.org/dot-case/-/dot-case-3.0.4.tgz", + "integrity": "sha512-Kv5nKlh6yRrdrGvxeJ2e5y2eRUpkUosIW4A2AS38zwSz27zu7ufDwQPi5Jhs3XAlGNetl3bmnGhQsMtkKJnj3w==", "dependencies": { "no-case": "^3.0.4", "tslib": "^2.0.3" @@ -6197,7 +6748,8 @@ }, "node_modules/dot-prop": { "version": "6.0.1", - "license": "MIT", + "resolved": "https://registry.npmjs.org/dot-prop/-/dot-prop-6.0.1.tgz", + "integrity": "sha512-tE7ztYzXHIeyvc7N+hR3oi7FIbf/NIjVP9hmAt3yMXzrQ072/fpjGLx2GxNxGxUl5V73MEqYzioOMoVhGMJ5cA==", "dependencies": { "is-obj": "^2.0.0" }, @@ -6210,18 +6762,21 @@ }, "node_modules/eastasianwidth": { "version": "0.2.0", - "license": "MIT" + "resolved": "https://registry.npmjs.org/eastasianwidth/-/eastasianwidth-0.2.0.tgz", + "integrity": "sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==" }, "node_modules/ed2curve": { "version": "0.3.0", - "license": "Unlicense", + "resolved": "https://registry.npmjs.org/ed2curve/-/ed2curve-0.3.0.tgz", + "integrity": "sha512-8w2fmmq3hv9rCrcI7g9hms2pMunQr1JINfcjwR9tAyZqhtyaMN991lF/ZfHfr5tzZQ8c7y7aBgZbjfbd0fjFwQ==", "dependencies": { "tweetnacl": "1.x.x" } }, "node_modules/ejs": { "version": "3.1.8", - "license": "Apache-2.0", + "resolved": "https://registry.npmjs.org/ejs/-/ejs-3.1.8.tgz", + "integrity": "sha512-/sXZeMlhS0ArkfX2Aw780gJzXSMPnKjtspYZv+f3NiKLlubezAHDU5+9xz6gd3/NhG3txQCo6xlglmTS+oTGEQ==", "dependencies": { "jake": "^10.8.5" }, @@ -6234,7 +6789,8 @@ }, "node_modules/electron-fetch": { "version": "1.9.1", - "license": "MIT", + "resolved": "https://registry.npmjs.org/electron-fetch/-/electron-fetch-1.9.1.tgz", + "integrity": "sha512-M9qw6oUILGVrcENMSRRefE1MbHPIz0h79EKIeJWK9v563aT9Qkh8aEHPO1H5vi970wPirNY+jO9OpFoLiMsMGA==", "dependencies": { "encoding": "^0.1.13" }, @@ -6244,30 +6800,35 @@ }, "node_modules/electron-to-chromium": { "version": "1.4.284", - "dev": true, - "license": "ISC" + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.284.tgz", + "integrity": "sha512-M8WEXFuKXMYMVr45fo8mq0wUrrJHheiKZf6BArTKk9ZBYCKJEOU5H8cdWgDT+qCVZf7Na4lVUaZsA+h6uA9+PA==", + "dev": true }, "node_modules/emoji-regex": { "version": "8.0.0", - "license": "MIT" + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==" }, "node_modules/encoding": { "version": "0.1.13", - "license": "MIT", + "resolved": "https://registry.npmjs.org/encoding/-/encoding-0.1.13.tgz", + "integrity": "sha512-ETBauow1T35Y/WZMkio9jiM0Z5xjHHmJ4XmjZOq1l/dXz3lr2sRn87nJy20RupqSh1F2m3HHPSp8ShIPQJrJ3A==", "dependencies": { "iconv-lite": "^0.6.2" } }, "node_modules/end-of-stream": { "version": "1.4.4", - "license": "MIT", + "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz", + "integrity": "sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==", "dependencies": { "once": "^1.4.0" } }, "node_modules/engine.io-client": { "version": "6.2.3", - "license": "MIT", + "resolved": "https://registry.npmjs.org/engine.io-client/-/engine.io-client-6.2.3.tgz", + "integrity": "sha512-aXPtgF1JS3RuuKcpSrBtimSjYvrbhKW9froICH4s0F3XQWLxsKNxqzG39nnvQZQnva4CMvUK63T7shevxRyYHw==", "dependencies": { "@socket.io/component-emitter": "~3.1.0", "debug": "~4.3.1", @@ -6278,7 +6839,8 @@ }, "node_modules/engine.io-client/node_modules/ws": { "version": "8.2.3", - "license": "MIT", + "resolved": "https://registry.npmjs.org/ws/-/ws-8.2.3.tgz", + "integrity": "sha512-wBuoj1BDpC6ZQ1B7DWQBYVLphPWkm8i9Y0/3YdHjHKHiohOJ1ws+3OccDWtH+PoC9DZD5WOTrJvNbWvjS6JWaA==", "engines": { "node": ">=10.0.0" }, @@ -6297,19 +6859,22 @@ }, "node_modules/engine.io-parser": { "version": "5.0.5", - "license": "MIT", + "resolved": "https://registry.npmjs.org/engine.io-parser/-/engine.io-parser-5.0.5.tgz", + "integrity": "sha512-mjEyaa4zhuuRhaSLOdjEb57X0XPP9JEsnXI4E+ivhwT0GgzUogARx4MqoY1jQyB+4Bkz3BUOmzL7t9RMKmlG3g==", "engines": { "node": ">=10.0.0" } }, "node_modules/err-code": { "version": "3.0.1", - "license": "MIT" + "resolved": "https://registry.npmjs.org/err-code/-/err-code-3.0.1.tgz", + "integrity": "sha512-GiaH0KJUewYok+eeY05IIgjtAe4Yltygk9Wqp1V5yVWLdhf0hYZchRjNIT9bb0mSwRcIusT3cx7PJUf3zEIfUA==" }, "node_modules/es5-ext": { "version": "0.10.62", + "resolved": "https://registry.npmjs.org/es5-ext/-/es5-ext-0.10.62.tgz", + "integrity": "sha512-BHLqn0klhEpnOKSrzn/Xsz2UIW8j+cGmo9JLzr8BiUapV8hPL9+FliFqjwr9ngW7jWdnxv6eO+/LqyhJVqgrjA==", "hasInstallScript": true, - "license": "ISC", "dependencies": { "es6-iterator": "^2.0.3", "es6-symbol": "^3.1.3", @@ -6321,7 +6886,8 @@ }, "node_modules/es6-iterator": { "version": "2.0.3", - "license": "MIT", + "resolved": "https://registry.npmjs.org/es6-iterator/-/es6-iterator-2.0.3.tgz", + "integrity": "sha512-zw4SRzoUkd+cl+ZoE15A9o1oQd920Bb0iOJMQkQhl3jNc03YqVjAhG7scf9C5KWRU/R13Orf588uCC6525o02g==", "dependencies": { "d": "1", "es5-ext": "^0.10.35", @@ -6330,7 +6896,8 @@ }, "node_modules/es6-symbol": { "version": "3.1.3", - "license": "ISC", + "resolved": "https://registry.npmjs.org/es6-symbol/-/es6-symbol-3.1.3.tgz", + "integrity": "sha512-NJ6Yn3FuDinBaBRWl/q5X/s4koRHBrgKAu+yGI6JCBeiu3qrcbJhwT2GeR/EXVfylRk8dpQVJoLEFhK+Mu31NA==", "dependencies": { "d": "^1.0.1", "ext": "^1.1.2" @@ -6338,14 +6905,16 @@ }, "node_modules/escalade": { "version": "3.1.1", - "license": "MIT", + "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz", + "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==", "engines": { "node": ">=6" } }, "node_modules/escape-goat": { "version": "4.0.0", - "license": "MIT", + "resolved": "https://registry.npmjs.org/escape-goat/-/escape-goat-4.0.0.tgz", + "integrity": "sha512-2Sd4ShcWxbx6OY1IHyla/CVNwvg7XwZVoXZHcSu9w9SReNP1EzzD5T8NWKIR38fIqEns9kDWKUQTXXAmlDrdPg==", "engines": { "node": ">=12" }, @@ -6355,15 +6924,17 @@ }, "node_modules/escape-string-regexp": { "version": "1.0.5", - "license": "MIT", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", "engines": { "node": ">=0.8.0" } }, "node_modules/eslint": { "version": "8.32.0", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.32.0.tgz", + "integrity": "sha512-nETVXpnthqKPFyuY2FNjz/bEd6nbosRgKbkgS/y1C7LJop96gYHWpiguLecMHQ2XCPxn77DS0P+68WzG6vkZSQ==", "dev": true, - "license": "MIT", "peer": true, "dependencies": { "@eslint/eslintrc": "^1.4.1", @@ -6418,8 +6989,9 @@ }, "node_modules/eslint-scope": { "version": "5.1.1", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.1.tgz", + "integrity": "sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==", "dev": true, - "license": "BSD-2-Clause", "dependencies": { "esrecurse": "^4.3.0", "estraverse": "^4.1.1" @@ -6430,8 +7002,9 @@ }, "node_modules/eslint-utils": { "version": "3.0.0", + "resolved": "https://registry.npmjs.org/eslint-utils/-/eslint-utils-3.0.0.tgz", + "integrity": "sha512-uuQC43IGctw68pJA1RgbQS8/NP7rch6Cwd4j3ZBtgo4/8Flj4eGE7ZYSZRN3iq5pVUv6GPdW5Z1RFleo84uLDA==", "dev": true, - "license": "MIT", "dependencies": { "eslint-visitor-keys": "^2.0.0" }, @@ -6447,24 +7020,27 @@ }, "node_modules/eslint-utils/node_modules/eslint-visitor-keys": { "version": "2.1.0", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-2.1.0.tgz", + "integrity": "sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw==", "dev": true, - "license": "Apache-2.0", "engines": { "node": ">=10" } }, "node_modules/eslint-visitor-keys": { "version": "3.3.0", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.3.0.tgz", + "integrity": "sha512-mQ+suqKJVyeuwGYHAdjMFqjCyfl8+Ldnxuyp3ldiMBFKkvytrXUZWaiPCEav8qDHKty44bD+qV1IP4T+w+xXRA==", "dev": true, - "license": "Apache-2.0", "engines": { "node": "^12.22.0 || ^14.17.0 || >=16.0.0" } }, "node_modules/eslint/node_modules/ansi-styles": { "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", "dev": true, - "license": "MIT", "peer": true, "dependencies": { "color-convert": "^2.0.1" @@ -6478,8 +7054,9 @@ }, "node_modules/eslint/node_modules/brace-expansion": { "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", "dev": true, - "license": "MIT", "peer": true, "dependencies": { "balanced-match": "^1.0.0", @@ -6488,8 +7065,9 @@ }, "node_modules/eslint/node_modules/chalk": { "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", "dev": true, - "license": "MIT", "peer": true, "dependencies": { "ansi-styles": "^4.1.0", @@ -6504,8 +7082,9 @@ }, "node_modules/eslint/node_modules/color-convert": { "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", "dev": true, - "license": "MIT", "peer": true, "dependencies": { "color-name": "~1.1.4" @@ -6516,14 +7095,16 @@ }, "node_modules/eslint/node_modules/color-name": { "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", "dev": true, - "license": "MIT", "peer": true }, "node_modules/eslint/node_modules/escape-string-regexp": { "version": "4.0.0", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", + "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", "dev": true, - "license": "MIT", "peer": true, "engines": { "node": ">=10" @@ -6534,8 +7115,9 @@ }, "node_modules/eslint/node_modules/eslint-scope": { "version": "7.1.1", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-7.1.1.tgz", + "integrity": "sha512-QKQM/UXpIiHcLqJ5AOyIW7XZmzjkzQXYE54n1++wb0u9V/abW3l9uQnxX8Z5Xd18xyKIMTUAyQ0k1e8pz6LUrw==", "dev": true, - "license": "BSD-2-Clause", "peer": true, "dependencies": { "esrecurse": "^4.3.0", @@ -6547,8 +7129,9 @@ }, "node_modules/eslint/node_modules/estraverse": { "version": "5.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", + "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", "dev": true, - "license": "BSD-2-Clause", "peer": true, "engines": { "node": ">=4.0" @@ -6556,8 +7139,9 @@ }, "node_modules/eslint/node_modules/glob-parent": { "version": "6.0.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz", + "integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==", "dev": true, - "license": "ISC", "peer": true, "dependencies": { "is-glob": "^4.0.3" @@ -6568,8 +7152,9 @@ }, "node_modules/eslint/node_modules/globals": { "version": "13.19.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-13.19.0.tgz", + "integrity": "sha512-dkQ957uSRWHw7CFXLUtUHQI3g3aWApYhfNR2O6jn/907riyTYKVBmxYVROkBcY614FSSeSJh7Xm7SrUWCxvJMQ==", "dev": true, - "license": "MIT", "peer": true, "dependencies": { "type-fest": "^0.20.2" @@ -6583,8 +7168,9 @@ }, "node_modules/eslint/node_modules/has-flag": { "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", "dev": true, - "license": "MIT", "peer": true, "engines": { "node": ">=8" @@ -6592,8 +7178,9 @@ }, "node_modules/eslint/node_modules/minimatch": { "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", "dev": true, - "license": "ISC", "peer": true, "dependencies": { "brace-expansion": "^1.1.7" @@ -6604,8 +7191,9 @@ }, "node_modules/eslint/node_modules/supports-color": { "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", "dev": true, - "license": "MIT", "peer": true, "dependencies": { "has-flag": "^4.0.0" @@ -6616,8 +7204,9 @@ }, "node_modules/eslint/node_modules/type-fest": { "version": "0.20.2", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz", + "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==", "dev": true, - "license": "(MIT OR CC0-1.0)", "peer": true, "engines": { "node": ">=10" @@ -6628,8 +7217,9 @@ }, "node_modules/espree": { "version": "9.4.1", + "resolved": "https://registry.npmjs.org/espree/-/espree-9.4.1.tgz", + "integrity": "sha512-XwctdmTO6SIvCzd9810yyNzIrOrqNYV9Koizx4C/mRhf9uq0o4yHoCEU/670pOxOL/MSraektvSAji79kX90Vg==", "dev": true, - "license": "BSD-2-Clause", "peer": true, "dependencies": { "acorn": "^8.8.0", @@ -6645,8 +7235,9 @@ }, "node_modules/esquery": { "version": "1.4.0", + "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.4.0.tgz", + "integrity": "sha512-cCDispWt5vHHtwMY2YrAQ4ibFkAL8RbH5YGBnZBc90MolvvfkkQcJro/aZiAQUlQ3qgrYS6D6v8Gc5G5CQsc9w==", "dev": true, - "license": "BSD-3-Clause", "peer": true, "dependencies": { "estraverse": "^5.1.0" @@ -6657,8 +7248,9 @@ }, "node_modules/esquery/node_modules/estraverse": { "version": "5.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", + "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", "dev": true, - "license": "BSD-2-Clause", "peer": true, "engines": { "node": ">=4.0" @@ -6666,8 +7258,9 @@ }, "node_modules/esrecurse": { "version": "4.3.0", + "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz", + "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==", "dev": true, - "license": "BSD-2-Clause", "dependencies": { "estraverse": "^5.2.0" }, @@ -6677,24 +7270,27 @@ }, "node_modules/esrecurse/node_modules/estraverse": { "version": "5.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", + "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", "dev": true, - "license": "BSD-2-Clause", "engines": { "node": ">=4.0" } }, "node_modules/estraverse": { "version": "4.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz", + "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==", "dev": true, - "license": "BSD-2-Clause", "engines": { "node": ">=4.0" } }, "node_modules/esutils": { "version": "2.0.3", + "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", + "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", "dev": true, - "license": "BSD-2-Clause", "peer": true, "engines": { "node": ">=0.10.0" @@ -6702,29 +7298,34 @@ }, "node_modules/event-iterator": { "version": "2.0.0", - "license": "MIT" + "resolved": "https://registry.npmjs.org/event-iterator/-/event-iterator-2.0.0.tgz", + "integrity": "sha512-KGft0ldl31BZVV//jj+IAIGCxkvvUkkON+ScH6zfoX+l+omX6001ggyRSpI0Io2Hlro0ThXotswCtfzS8UkIiQ==" }, "node_modules/event-target-shim": { "version": "5.0.1", - "license": "MIT", + "resolved": "https://registry.npmjs.org/event-target-shim/-/event-target-shim-5.0.1.tgz", + "integrity": "sha512-i/2XbnSz/uxRCU6+NdVJgKWDTM427+MqYbkQzD321DuCQJUqOuJKIA0IM2+W2xtYHdKOmZ4dR6fExsd4SXL+WQ==", "engines": { "node": ">=6" } }, "node_modules/eventemitter3": { "version": "4.0.7", - "license": "MIT" + "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-4.0.7.tgz", + "integrity": "sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw==" }, "node_modules/events": { "version": "3.3.0", - "license": "MIT", + "resolved": "https://registry.npmjs.org/events/-/events-3.3.0.tgz", + "integrity": "sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==", "engines": { "node": ">=0.8.x" } }, "node_modules/execa": { "version": "6.1.0", - "license": "MIT", + "resolved": "https://registry.npmjs.org/execa/-/execa-6.1.0.tgz", + "integrity": "sha512-QVWlX2e50heYJcCPG0iWtf8r0xjEYfz/OYLGDYH+IyjWezzPNxz63qNFOu0l4YftGWuizFVZHHs8PrLU5p2IDA==", "dependencies": { "cross-spawn": "^7.0.3", "get-stream": "^6.0.1", @@ -6745,29 +7346,34 @@ }, "node_modules/ext": { "version": "1.7.0", - "license": "ISC", + "resolved": "https://registry.npmjs.org/ext/-/ext-1.7.0.tgz", + "integrity": "sha512-6hxeJYaL110a9b5TEJSj0gojyHQAmA2ch5Os+ySCiA1QGdS697XWY1pzsrSjqA9LDEEgdB/KypIlR59RcLuHYw==", "dependencies": { "type": "^2.7.2" } }, "node_modules/ext/node_modules/type": { "version": "2.7.2", - "license": "ISC" + "resolved": "https://registry.npmjs.org/type/-/type-2.7.2.tgz", + "integrity": "sha512-dzlvlNlt6AXU7EBSfpAscydQ7gXB+pPGsPnfJnZpiNJBDj7IaJzQlBZYGdEi4R9HmPdBv2XmWJ6YUtoTa7lmCw==" }, "node_modules/fast-deep-equal": { "version": "3.1.3", + "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", + "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", "dev": true, - "license": "MIT", "peer": true }, "node_modules/fast-fifo": { "version": "1.1.0", - "license": "MIT" + "resolved": "https://registry.npmjs.org/fast-fifo/-/fast-fifo-1.1.0.tgz", + "integrity": "sha512-Kl29QoNbNvn4nhDsLYjyIAaIqaJB6rBx5p3sL9VjaefJ+eMFBWVZiaoguaoZfzEKr5RhAti0UgM8703akGPJ6g==" }, "node_modules/fast-glob": { "version": "3.2.12", + "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.2.12.tgz", + "integrity": "sha512-DVj4CQIYYow0BlaelwK1pHl5n5cRSJfM60UA0zK891sVInoPri2Ekj7+e1CT3/3qxXenpI+nBBmQAcJPJgaj4w==", "dev": true, - "license": "MIT", "dependencies": { "@nodelib/fs.stat": "^2.0.2", "@nodelib/fs.walk": "^1.2.3", @@ -6781,41 +7387,49 @@ }, "node_modules/fast-json-stable-stringify": { "version": "2.1.0", + "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", + "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==", "dev": true, - "license": "MIT", "peer": true }, "node_modules/fast-levenshtein": { "version": "2.0.6", + "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", + "integrity": "sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==", "dev": true, - "license": "MIT", "peer": true }, "node_modules/fast-redact": { "version": "3.1.2", - "license": "MIT", + "resolved": "https://registry.npmjs.org/fast-redact/-/fast-redact-3.1.2.tgz", + "integrity": "sha512-+0em+Iya9fKGfEQGcd62Yv6onjBmmhV1uh86XVfOU8VwAe6kaFdQCWI9s0/Nnugx5Vd9tdbZ7e6gE2tR9dzXdw==", "engines": { "node": ">=6" } }, "node_modules/fast-safe-stringify": { "version": "2.1.1", - "license": "MIT" + "resolved": "https://registry.npmjs.org/fast-safe-stringify/-/fast-safe-stringify-2.1.1.tgz", + "integrity": "sha512-W+KJc2dmILlPplD/H4K9l9LcAHAfPtP6BY84uVLXQ6Evcz9Lcg33Y2z1IVblT6xdY54PXYVHEv+0Wpq8Io6zkA==" }, "node_modules/fast-write-atomic": { "version": "0.2.1", - "license": "MIT" + "resolved": "https://registry.npmjs.org/fast-write-atomic/-/fast-write-atomic-0.2.1.tgz", + "integrity": "sha512-WvJe06IfNYlr+6cO3uQkdKdy3Cb1LlCJSF8zRs2eT8yuhdbSlR9nIt+TgQ92RUxiRrQm+/S7RARnMfCs5iuAjw==" }, "node_modules/fastq": { "version": "1.15.0", + "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.15.0.tgz", + "integrity": "sha512-wBrocU2LCXXa+lWBt8RoIRD89Fi8OdABODa/kEnyeyjS5aZO5/GNvI5sEINADqP/h8M29UHTHUb53sUu5Ihqdw==", "dev": true, - "license": "ISC", "dependencies": { "reusify": "^1.0.4" } }, "node_modules/fetch-blob": { "version": "3.2.0", + "resolved": "https://registry.npmjs.org/fetch-blob/-/fetch-blob-3.2.0.tgz", + "integrity": "sha512-7yAQpD2UMJzLi1Dqv7qFYnPbaPx7ZfFK6PiIxQ4PfkGPyNyl2Ugx+a/umUonmKqjhM4DnfbMvdX6otXq83soQQ==", "funding": [ { "type": "github", @@ -6826,7 +7440,6 @@ "url": "https://paypal.me/jimmywarting" } ], - "license": "MIT", "dependencies": { "node-domexception": "^1.0.0", "web-streams-polyfill": "^3.0.3" @@ -6837,8 +7450,9 @@ }, "node_modules/file-entry-cache": { "version": "6.0.1", + "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-6.0.1.tgz", + "integrity": "sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==", "dev": true, - "license": "MIT", "peer": true, "dependencies": { "flat-cache": "^3.0.4" @@ -6849,7 +7463,8 @@ }, "node_modules/file-type": { "version": "18.0.0", - "license": "MIT", + "resolved": "https://registry.npmjs.org/file-type/-/file-type-18.0.0.tgz", + "integrity": "sha512-jjMwFpnW8PKofLE/4ohlhqwDk5k0NC6iy0UHAJFKoY1fQeGMN0GDdLgHQrvCbSpMwbqzoCZhRI5dETCZna5qVA==", "dependencies": { "readable-web-to-node-stream": "^3.0.2", "strtok3": "^7.0.0", @@ -6864,22 +7479,25 @@ }, "node_modules/filelist": { "version": "1.0.4", - "license": "Apache-2.0", + "resolved": "https://registry.npmjs.org/filelist/-/filelist-1.0.4.tgz", + "integrity": "sha512-w1cEuf3S+DrLCQL7ET6kz+gmlJdbq9J7yXCSjK/OZCPA+qEN1WyF4ZAf0YYJa4/shHJra2t/d/r8SV4Ji+x+8Q==", "dependencies": { "minimatch": "^5.0.1" } }, "node_modules/filesize": { "version": "10.0.6", - "license": "BSD-3-Clause", + "resolved": "https://registry.npmjs.org/filesize/-/filesize-10.0.6.tgz", + "integrity": "sha512-rzpOZ4C9vMFDqOa6dNpog92CoLYjD79dnjLk2TYDDtImRIyLTOzqojCb05Opd1WuiWjs+fshhCgTd8cl7y5t+g==", "engines": { "node": ">= 10.4.0" } }, "node_modules/fill-range": { "version": "7.0.1", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", + "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", "dev": true, - "license": "MIT", "dependencies": { "to-regex-range": "^5.0.1" }, @@ -6889,8 +7507,9 @@ }, "node_modules/find-cache-dir": { "version": "2.1.0", + "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-2.1.0.tgz", + "integrity": "sha512-Tq6PixE0w/VMFfCgbONnkiQIVol/JJL7nRMi20fqzA4NRs9AfeqMGeRdPi3wIhYkxjeBaWh2rxwapn5Tu3IqOQ==", "dev": true, - "license": "MIT", "dependencies": { "commondir": "^1.0.1", "make-dir": "^2.0.0", @@ -6902,8 +7521,9 @@ }, "node_modules/find-up": { "version": "5.0.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz", + "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==", "dev": true, - "license": "MIT", "dependencies": { "locate-path": "^6.0.0", "path-exists": "^4.0.0" @@ -6917,16 +7537,18 @@ }, "node_modules/flat": { "version": "5.0.2", + "resolved": "https://registry.npmjs.org/flat/-/flat-5.0.2.tgz", + "integrity": "sha512-b6suED+5/3rTpUBdG1gupIl8MPFCAMA0QXwmljLhvCUKcUvdE4gWky9zpuGCcXHOsz4J9wPGNWq6OKpmIzz3hQ==", "dev": true, - "license": "BSD-3-Clause", "bin": { "flat": "cli.js" } }, "node_modules/flat-cache": { "version": "3.0.4", + "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-3.0.4.tgz", + "integrity": "sha512-dm9s5Pw7Jc0GvMYbshN6zchCA9RgQlzzEZX3vylR9IqFfS8XciblUXOKfW6SiuJ0e13eDYZoZV5wdrev7P3Nwg==", "dev": true, - "license": "MIT", "peer": true, "dependencies": { "flatted": "^3.1.0", @@ -6938,21 +7560,25 @@ }, "node_modules/flatstr": { "version": "1.0.12", - "license": "MIT" + "resolved": "https://registry.npmjs.org/flatstr/-/flatstr-1.0.12.tgz", + "integrity": "sha512-4zPxDyhCyiN2wIAtSLI6gc82/EjqZc1onI4Mz/l0pWrAlsSfYH/2ZIcU+e3oA2wDwbzIWNKwa23F8rh6+DRWkw==" }, "node_modules/flatted": { "version": "3.2.7", + "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.2.7.tgz", + "integrity": "sha512-5nqDSxl8nn5BSNxyR3n4I6eDmbolI6WT+QqR547RwxQapgjQBmtktdP+HTBb/a/zLsbzERTONyUB5pefh5TtjQ==", "dev": true, - "license": "ISC", "peer": true }, "node_modules/fnv1a": { "version": "1.1.1", - "license": "MIT" + "resolved": "https://registry.npmjs.org/fnv1a/-/fnv1a-1.1.1.tgz", + "integrity": "sha512-S2HviLR9UyNbt8R+vU6YeQtL8RliPwez9DQEVba5MAvN3Od+RSgKUSL2+qveOMt3owIeBukKoRu2enoOck5uag==" }, "node_modules/form-data": { "version": "3.0.1", - "license": "MIT", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-3.0.1.tgz", + "integrity": "sha512-RHkBKtLWUVwd7SqRIvCZMEvAMoGUp0XU+seQiZejj0COz3RI3hWP4sCv3gZWWLjJTd7rGwcsF5eKZGii0r/hbg==", "dependencies": { "asynckit": "^0.4.0", "combined-stream": "^1.0.8", @@ -6964,14 +7590,16 @@ }, "node_modules/form-data-encoder": { "version": "2.1.4", - "license": "MIT", + "resolved": "https://registry.npmjs.org/form-data-encoder/-/form-data-encoder-2.1.4.tgz", + "integrity": "sha512-yDYSgNMraqvnxiEXO4hi88+YZxaHC6QKzb5N84iRCTDeRO7ZALpir/lVmf/uXUhnwUr2O4HU8s/n6x+yNjQkHw==", "engines": { "node": ">= 14.17" } }, "node_modules/formdata-polyfill": { "version": "4.0.10", - "license": "MIT", + "resolved": "https://registry.npmjs.org/formdata-polyfill/-/formdata-polyfill-4.0.10.tgz", + "integrity": "sha512-buewHzMvYL29jdeQTVILecSaZKnt/RJWjoZCF5OW60Z67/GmSLBkOFM7qh1PI3zFNtJbaZL5eQu1vLfazOwj4g==", "dependencies": { "fetch-blob": "^3.1.2" }, @@ -6981,7 +7609,8 @@ }, "node_modules/formidable": { "version": "2.1.1", - "license": "MIT", + "resolved": "https://registry.npmjs.org/formidable/-/formidable-2.1.1.tgz", + "integrity": "sha512-0EcS9wCFEzLvfiks7omJ+SiYJAiD+TzK4Pcw1UlUoGnhUxDcMKjt0P7x8wEb0u6OHu8Nb98WG3nxtlF5C7bvUQ==", "dependencies": { "dezalgo": "^1.0.4", "hexoid": "^1.0.0", @@ -6994,7 +7623,8 @@ }, "node_modules/freeport-promise": { "version": "2.0.0", - "license": "Apache-2.0 OR MIT", + "resolved": "https://registry.npmjs.org/freeport-promise/-/freeport-promise-2.0.0.tgz", + "integrity": "sha512-dwWpT1DdQcwrhmRwnDnPM/ZFny+FtzU+k50qF2eid3KxaQDsMiBrwo1i0G3qSugkN5db6Cb0zgfc68QeTOpEFg==", "engines": { "node": ">=16.0.0", "npm": ">=7.0.0" @@ -7002,7 +7632,8 @@ }, "node_modules/fs-minipass": { "version": "2.1.0", - "license": "ISC", + "resolved": "https://registry.npmjs.org/fs-minipass/-/fs-minipass-2.1.0.tgz", + "integrity": "sha512-V/JgOLFCS+R6Vcq0slCuaeWEdNC3ouDlJMNIsacH2VtALiu9mV4LPrHc5cDl8k5aw6J8jwgWWpiTo5RYhmIzvg==", "dependencies": { "minipass": "^3.0.0" }, @@ -7012,7 +7643,8 @@ }, "node_modules/fs-minipass/node_modules/minipass": { "version": "3.3.6", - "license": "ISC", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.3.6.tgz", + "integrity": "sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==", "dependencies": { "yallist": "^4.0.0" }, @@ -7022,15 +7654,32 @@ }, "node_modules/fs.realpath": { "version": "1.0.0", - "license": "ISC" + "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", + "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==" + }, + "node_modules/fsevents": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz", + "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==", + "dev": true, + "hasInstallScript": true, + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": "^8.16.0 || ^10.6.0 || >=11.0.0" + } }, "node_modules/function-bind": { "version": "1.1.1", - "license": "MIT" + "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", + "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==" }, "node_modules/function-timeout": { "version": "0.1.1", - "license": "MIT", + "resolved": "https://registry.npmjs.org/function-timeout/-/function-timeout-0.1.1.tgz", + "integrity": "sha512-0NVVC0TaP7dSTvn1yMiy6d6Q8gifzbvQafO46RtLG/kHJUBNd+pVRGOBoK44wNBvtSPUJRfdVvkFdD3p0xvyZg==", "engines": { "node": ">=14.16" }, @@ -7040,11 +7689,13 @@ }, "node_modules/gar": { "version": "1.0.4", - "license": "MIT" + "resolved": "https://registry.npmjs.org/gar/-/gar-1.0.4.tgz", + "integrity": "sha512-w4n9cPWyP7aHxKxYHFQMegj7WIAsL/YX/C4Bs5Rr8s1H9M1rNtRWRsw+ovYMkXDQ5S4ZbYHsHAPmevPjPgw44w==" }, "node_modules/gauge": { "version": "3.0.2", - "license": "ISC", + "resolved": "https://registry.npmjs.org/gauge/-/gauge-3.0.2.tgz", + "integrity": "sha512-+5J6MS/5XksCuXq++uFRsnUd7Ovu1XenbeuIuNRJxYWjgQbPuFhT14lAvsWfqfAmnwluf1OwMjz39HjfLPci0Q==", "dependencies": { "aproba": "^1.0.3 || ^2.0.0", "color-support": "^1.1.2", @@ -7062,22 +7713,25 @@ }, "node_modules/gensync": { "version": "1.0.0-beta.2", + "resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz", + "integrity": "sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==", "dev": true, - "license": "MIT", "engines": { "node": ">=6.9.0" } }, "node_modules/get-caller-file": { "version": "2.0.5", - "license": "ISC", + "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", + "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==", "engines": { "node": "6.* || 8.* || >= 10.*" } }, "node_modules/get-folder-size": { "version": "4.0.0", - "license": "MIT", + "resolved": "https://registry.npmjs.org/get-folder-size/-/get-folder-size-4.0.0.tgz", + "integrity": "sha512-Z6sv92povPRhGTNv1j8pMOzkXCcJOYWFTSrulKzoF9qbIRHXtR2Vfjw964jsWVMrIKnwHzm/0jl8IFONbBbEKw==", "dependencies": { "gar": "^1.0.4" }, @@ -7090,7 +7744,8 @@ }, "node_modules/get-intrinsic": { "version": "1.1.3", - "license": "MIT", + "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.1.3.tgz", + "integrity": "sha512-QJVz1Tj7MS099PevUG5jvnt9tSkXN8K14dxQlikJuPt4uD9hHAHjLyLBiLR5zELelBdD9QNRAXZzsJx0WaDL9A==", "dependencies": { "function-bind": "^1.1.1", "has": "^1.0.3", @@ -7102,11 +7757,13 @@ }, "node_modules/get-iterator": { "version": "2.0.0", - "license": "MIT" + "resolved": "https://registry.npmjs.org/get-iterator/-/get-iterator-2.0.0.tgz", + "integrity": "sha512-BDJawD5PU2gZv6Vlp8O28H4GnZcsr3h9gZUvnAP5xXP3WOy/QAoOsyMepSkw21jur+4t5Vppde72ChjhTIzxzg==" }, "node_modules/get-stream": { "version": "6.0.1", - "license": "MIT", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz", + "integrity": "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==", "engines": { "node": ">=10" }, @@ -7116,7 +7773,8 @@ }, "node_modules/glob": { "version": "7.2.0", - "license": "ISC", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.0.tgz", + "integrity": "sha512-lmLf6gtyrPq8tTjSmrO94wBeQbFR3HbLHbuyD69wuyQkImp2hWqMGB47OX65FBkPffO641IP9jWa1z4ivqG26Q==", "dependencies": { "fs.realpath": "^1.0.0", "inflight": "^1.0.4", @@ -7134,8 +7792,9 @@ }, "node_modules/glob-parent": { "version": "5.1.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", "dev": true, - "license": "ISC", "dependencies": { "is-glob": "^4.0.1" }, @@ -7145,7 +7804,8 @@ }, "node_modules/glob/node_modules/brace-expansion": { "version": "1.1.11", - "license": "MIT", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", "dependencies": { "balanced-match": "^1.0.0", "concat-map": "0.0.1" @@ -7153,7 +7813,8 @@ }, "node_modules/glob/node_modules/minimatch": { "version": "3.1.2", - "license": "ISC", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", "dependencies": { "brace-expansion": "^1.1.7" }, @@ -7163,7 +7824,8 @@ }, "node_modules/global-dirs": { "version": "3.0.1", - "license": "MIT", + "resolved": "https://registry.npmjs.org/global-dirs/-/global-dirs-3.0.1.tgz", + "integrity": "sha512-NBcGGFbBA9s1VzD41QXDG+3++t9Mn5t1FpLdhESY6oKY4gYTFpX4wO3sqGUa0Srjtbfj3szX0RnemmrVRUdULA==", "dependencies": { "ini": "2.0.0" }, @@ -7176,23 +7838,26 @@ }, "node_modules/global-dirs/node_modules/ini": { "version": "2.0.0", - "license": "ISC", + "resolved": "https://registry.npmjs.org/ini/-/ini-2.0.0.tgz", + "integrity": "sha512-7PnF4oN3CvZF23ADhA5wRaYEQpJ8qygSkbtTXWBeXWXmEVRXK+1ITciHWwHhsjv1TmW0MgacIv6hEi5pX5NQdA==", "engines": { "node": ">=10" } }, "node_modules/globals": { "version": "11.12.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz", + "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==", "dev": true, - "license": "MIT", "engines": { "node": ">=4" } }, "node_modules/globby": { "version": "11.1.0", + "resolved": "https://registry.npmjs.org/globby/-/globby-11.1.0.tgz", + "integrity": "sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==", "dev": true, - "license": "MIT", "dependencies": { "array-union": "^2.1.0", "dir-glob": "^3.0.1", @@ -7210,7 +7875,8 @@ }, "node_modules/got": { "version": "12.5.3", - "license": "MIT", + "resolved": "https://registry.npmjs.org/got/-/got-12.5.3.tgz", + "integrity": "sha512-8wKnb9MGU8IPGRIo+/ukTy9XLJBwDiCpIf5TVzQ9Cpol50eMTpBq2GAuDsuDIz7hTYmZgMgC1e9ydr6kSDWs3w==", "dependencies": { "@sindresorhus/is": "^5.2.0", "@szmarczak/http-timer": "^5.0.1", @@ -7233,17 +7899,20 @@ }, "node_modules/graceful-fs": { "version": "4.2.10", - "license": "ISC" + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.10.tgz", + "integrity": "sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA==" }, "node_modules/grapheme-splitter": { "version": "1.0.4", + "resolved": "https://registry.npmjs.org/grapheme-splitter/-/grapheme-splitter-1.0.4.tgz", + "integrity": "sha512-bzh50DW9kTPM00T8y4o8vQg89Di9oLJVLW/KaOGIXJWP/iqCN6WKYkbNOF04vFLJhwcpYUh9ydh/+5vpOqV4YQ==", "dev": true, - "license": "MIT", "peer": true }, "node_modules/hamt-sharding": { "version": "3.0.2", - "license": "Apache-2.0 OR MIT", + "resolved": "https://registry.npmjs.org/hamt-sharding/-/hamt-sharding-3.0.2.tgz", + "integrity": "sha512-f0DzBD2tSmLFdFsLAvOflIBqFPjerbA7BfmwO8mVho/5hXwgyyYhv+ijIzidQf/DpDX3bRjAQvhGoBFj+DBvPw==", "dependencies": { "sparse-array": "^1.3.1", "uint8arrays": "^4.0.2" @@ -7255,8 +7924,9 @@ }, "node_modules/handlebars": { "version": "4.7.7", + "resolved": "https://registry.npmjs.org/handlebars/-/handlebars-4.7.7.tgz", + "integrity": "sha512-aAcXm5OAfE/8IXkcZvCepKU3VzW1/39Fb5ZuqMtgI/hT8X2YgoMvBY5dLhq/cpOvw7Lk1nK/UF71aLG/ZnVYRA==", "dev": true, - "license": "MIT", "dependencies": { "minimist": "^1.2.5", "neo-async": "^2.6.0", @@ -7275,7 +7945,8 @@ }, "node_modules/hapi-pino": { "version": "8.5.0", - "license": "MIT", + "resolved": "https://registry.npmjs.org/hapi-pino/-/hapi-pino-8.5.0.tgz", + "integrity": "sha512-p0phuePalD8965r6mboCBLIMWRO2vQAx+VSnXhTKxnF/4Sf+dk8Uze7109w9QfhlvGMqvBTEF6SxGStObBB/Lw==", "dependencies": { "@hapi/hoek": "^9.0.0", "abstract-logging": "^2.0.0", @@ -7285,7 +7956,8 @@ }, "node_modules/has": { "version": "1.0.3", - "license": "MIT", + "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", + "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", "dependencies": { "function-bind": "^1.1.1" }, @@ -7295,14 +7967,16 @@ }, "node_modules/has-flag": { "version": "3.0.0", - "license": "MIT", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", "engines": { "node": ">=4" } }, "node_modules/has-symbols": { "version": "1.0.3", - "license": "MIT", + "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.3.tgz", + "integrity": "sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==", "engines": { "node": ">= 0.4" }, @@ -7312,11 +7986,13 @@ }, "node_modules/has-unicode": { "version": "2.0.1", - "license": "ISC" + "resolved": "https://registry.npmjs.org/has-unicode/-/has-unicode-2.0.1.tgz", + "integrity": "sha512-8Rf9Y83NBReMnx0gFzA8JImQACstCYWUplepDa9xprwwtmgEZUF0h/i5xSA625zB/I37EtrswSST6OXxwaaIJQ==" }, "node_modules/has-yarn": { "version": "3.0.0", - "license": "MIT", + "resolved": "https://registry.npmjs.org/has-yarn/-/has-yarn-3.0.0.tgz", + "integrity": "sha512-IrsVwUHhEULx3R8f/aA8AHuEzAorplsab/v8HBzEiIukwq5i/EC+xmOW+HfP1OaDP+2JkgT1yILHN2O3UFIbcA==", "engines": { "node": "^12.20.0 || ^14.13.1 || >=16.0.0" }, @@ -7326,19 +8002,22 @@ }, "node_modules/hashlru": { "version": "2.3.0", - "license": "MIT" + "resolved": "https://registry.npmjs.org/hashlru/-/hashlru-2.3.0.tgz", + "integrity": "sha512-0cMsjjIC8I+D3M44pOQdsy0OHXGLVz6Z0beRuufhKa0KfaD2wGwAev6jILzXsd3/vpnNQJmWyZtIILqM1N+n5A==" }, "node_modules/he": { "version": "1.2.0", + "resolved": "https://registry.npmjs.org/he/-/he-1.2.0.tgz", + "integrity": "sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==", "dev": true, - "license": "MIT", "bin": { "he": "bin/he" } }, "node_modules/header-case": { "version": "2.0.4", - "license": "MIT", + "resolved": "https://registry.npmjs.org/header-case/-/header-case-2.0.4.tgz", + "integrity": "sha512-H/vuk5TEEVZwrR0lp2zed9OCo1uAILMlx0JEMgC26rzyJJ3N1v6XkwHHXJQdR2doSjcGPM6OKPYoJgf0plJ11Q==", "dependencies": { "capital-case": "^1.0.4", "tslib": "^2.0.3" @@ -7346,18 +8025,21 @@ }, "node_modules/hexoid": { "version": "1.0.0", - "license": "MIT", + "resolved": "https://registry.npmjs.org/hexoid/-/hexoid-1.0.0.tgz", + "integrity": "sha512-QFLV0taWQOZtvIRIAdBChesmogZrtuXvVWsFHZTk2SU+anspqZ2vMnoLg7IE1+Uk16N19APic1BuF8bC8c2m5g==", "engines": { "node": ">=8" } }, "node_modules/http-cache-semantics": { - "version": "4.1.0", - "license": "BSD-2-Clause" + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/http-cache-semantics/-/http-cache-semantics-4.1.1.tgz", + "integrity": "sha512-er295DKPVsV82j5kw1Gjt+ADA/XYHsajl82cGNQG2eyoPkvgUhX+nDIyelzhIWbbsXP39EHcI6l5tYs2FYqYXQ==" }, "node_modules/http2-wrapper": { "version": "2.2.0", - "license": "MIT", + "resolved": "https://registry.npmjs.org/http2-wrapper/-/http2-wrapper-2.2.0.tgz", + "integrity": "sha512-kZB0wxMo0sh1PehyjJUWRFEd99KC5TLjZ2cULC4f9iqJBAmKQQXEICjxl5iPJRwP40dpeHFqqhm7tYCvODpqpQ==", "dependencies": { "quick-lru": "^5.1.1", "resolve-alpn": "^1.2.0" @@ -7368,7 +8050,8 @@ }, "node_modules/http2-wrapper/node_modules/quick-lru": { "version": "5.1.1", - "license": "MIT", + "resolved": "https://registry.npmjs.org/quick-lru/-/quick-lru-5.1.1.tgz", + "integrity": "sha512-WuyALRjWPDGtt/wzJiadO5AXY+8hZ80hVpe6MyivgraREW751X3SbhRvG3eLKOYN+8VEvqLcf3wdnt44Z4S4SA==", "engines": { "node": ">=10" }, @@ -7378,7 +8061,8 @@ }, "node_modules/https-proxy-agent": { "version": "5.0.1", - "license": "MIT", + "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-5.0.1.tgz", + "integrity": "sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA==", "dependencies": { "agent-base": "6", "debug": "4" @@ -7389,14 +8073,16 @@ }, "node_modules/human-signals": { "version": "3.0.1", - "license": "Apache-2.0", + "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-3.0.1.tgz", + "integrity": "sha512-rQLskxnM/5OCldHo+wNXbpVgDn5A17CUoKX+7Sokwaknlq7CdSnphy0W39GU8dw59XiCXmFXDg4fRuckQRKewQ==", "engines": { "node": ">=12.20.0" } }, "node_modules/iconv-lite": { "version": "0.6.3", - "license": "MIT", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.3.tgz", + "integrity": "sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==", "dependencies": { "safer-buffer": ">= 2.1.2 < 3.0.0" }, @@ -7406,6 +8092,8 @@ }, "node_modules/ieee754": { "version": "1.2.1", + "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz", + "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==", "funding": [ { "type": "github", @@ -7419,21 +8107,22 @@ "type": "consulting", "url": "https://feross.org/support" } - ], - "license": "BSD-3-Clause" + ] }, "node_modules/ignore": { "version": "5.2.4", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.2.4.tgz", + "integrity": "sha512-MAb38BcSbH0eHNBxn7ql2NH/kX33OkB3lZ1BNdh7ENeRChHTYsTvWrMubiIAMNS2llXEEgZ1MUOBtXChP3kaFQ==", "dev": true, - "license": "MIT", "engines": { "node": ">= 4" } }, "node_modules/import-fresh": { "version": "3.3.0", + "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz", + "integrity": "sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==", "dev": true, - "license": "MIT", "peer": true, "dependencies": { "parent-module": "^1.0.0", @@ -7448,21 +8137,24 @@ }, "node_modules/import-lazy": { "version": "4.0.0", - "license": "MIT", + "resolved": "https://registry.npmjs.org/import-lazy/-/import-lazy-4.0.0.tgz", + "integrity": "sha512-rKtvo6a868b5Hu3heneU+L4yEQ4jYKLtjpnPeUdK7h0yzXGmyBTypknlkCvHFBqfX9YlorEiMM6Dnq/5atfHkw==", "engines": { "node": ">=8" } }, "node_modules/imurmurhash": { "version": "0.1.4", - "license": "MIT", + "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", + "integrity": "sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==", "engines": { "node": ">=0.8.19" } }, "node_modules/inflight": { "version": "1.0.6", - "license": "ISC", + "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", + "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==", "dependencies": { "once": "^1.3.0", "wrappy": "1" @@ -7470,15 +8162,18 @@ }, "node_modules/inherits": { "version": "2.0.4", - "license": "ISC" + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==" }, "node_modules/ini": { "version": "1.3.8", - "license": "ISC" + "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.8.tgz", + "integrity": "sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==" }, "node_modules/interface-blockstore": { "version": "3.0.2", - "license": "Apache-2.0 OR MIT", + "resolved": "https://registry.npmjs.org/interface-blockstore/-/interface-blockstore-3.0.2.tgz", + "integrity": "sha512-lJXCyu3CwidOvNjkJARwCmoxl/HNX/mrfMxtyq5e/pVZA1SrlTj5lvb4LBYbfoynzewGUPcUU4DEUaXoLKliHQ==", "dependencies": { "interface-store": "^3.0.0", "multiformats": "^10.0.0" @@ -7490,7 +8185,8 @@ }, "node_modules/interface-blockstore/node_modules/multiformats": { "version": "10.0.3", - "license": "Apache-2.0 OR MIT", + "resolved": "https://registry.npmjs.org/multiformats/-/multiformats-10.0.3.tgz", + "integrity": "sha512-K2yGSmstS/oEmYiEIieHb53jJCaqp4ERPDQAYrm5sV3UUrVDZeshJQCK6GHAKyIGufU1vAcbS0PdAAZmC7Tzcw==", "engines": { "node": ">=16.0.0", "npm": ">=7.0.0" @@ -7498,7 +8194,8 @@ }, "node_modules/interface-datastore": { "version": "7.0.3", - "license": "Apache-2.0 OR MIT", + "resolved": "https://registry.npmjs.org/interface-datastore/-/interface-datastore-7.0.3.tgz", + "integrity": "sha512-6zUypd1LM2Rl8o58RgJ7stLHgqx5+9t0+XkUVAvjd3KkWCNKBknD7G+Zar5jpUGClS+IINRPTjH/8Xnc2HB39A==", "dependencies": { "interface-store": "^3.0.0", "nanoid": "^4.0.0", @@ -7511,7 +8208,8 @@ }, "node_modules/interface-datastore/node_modules/nanoid": { "version": "4.0.0", - "license": "MIT", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-4.0.0.tgz", + "integrity": "sha512-IgBP8piMxe/gf73RTQx7hmnhwz0aaEXYakvqZyE302IXW3HyVNhdNGC+O2MwMAVhLEnvXlvKtGbtJf6wvHihCg==", "bin": { "nanoid": "bin/nanoid.js" }, @@ -7521,7 +8219,8 @@ }, "node_modules/interface-store": { "version": "3.0.3", - "license": "Apache-2.0 OR MIT", + "resolved": "https://registry.npmjs.org/interface-store/-/interface-store-3.0.3.tgz", + "integrity": "sha512-FihzZamIkSPHIFw7xZAvZ77DEOSTvHt/t3HvIG7pm8lmqDIUh8/PgDsez/4Aa2091bT0sqK4tTFBcKF9TOGhtQ==", "engines": { "node": ">=16.0.0", "npm": ">=7.0.0" @@ -7529,7 +8228,8 @@ }, "node_modules/ip-regex": { "version": "5.0.0", - "license": "MIT", + "resolved": "https://registry.npmjs.org/ip-regex/-/ip-regex-5.0.0.tgz", + "integrity": "sha512-fOCG6lhoKKakwv+C6KdsOnGvgXnmgfmp0myi3bcNwj3qfwPAxRKWEuFhvEFF7ceYIz6+1jRZ+yguLFAmUNPEfw==", "engines": { "node": "^12.20.0 || ^14.13.1 || >=16.0.0" }, @@ -7539,14 +8239,16 @@ }, "node_modules/ipaddr.js": { "version": "2.0.1", - "license": "MIT", + "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-2.0.1.tgz", + "integrity": "sha512-1qTgH9NG+IIJ4yfKs2e6Pp1bZg8wbDbKHT21HrLIeYBTRLgMYKnMTPAuI3Lcs61nfx5h1xlXnbJtH1kX5/d/ng==", "engines": { "node": ">= 10" } }, "node_modules/ipfs": { "version": "0.65.0", - "license": "Apache-2.0 OR MIT", + "resolved": "https://registry.npmjs.org/ipfs/-/ipfs-0.65.0.tgz", + "integrity": "sha512-VAee8AjNzx6HY5E/IltAu3hyylSqgpCxWp3ID09k3jUweBfzDHDo3k57W+NyZwfPh2fPneUBEzfycOv7x7dycA==", "dependencies": { "@libp2p/logger": "^2.0.0", "ipfs-cli": "^0.15.0", @@ -7564,7 +8266,8 @@ }, "node_modules/ipfs-bitswap": { "version": "13.0.0", - "license": "Apache-2.0 OR MIT", + "resolved": "https://registry.npmjs.org/ipfs-bitswap/-/ipfs-bitswap-13.0.0.tgz", + "integrity": "sha512-dTDRrXJmg27d/Z2V7bGo7zO6bPvLJrLpVyZldRSTUQgkd8pkrnM9Gs9S3hJyZS8n5BdFrGXBa4/tTMJwJ9d4lg==", "dependencies": { "@libp2p/interface-connection": "^3.0.1", "@libp2p/interface-peer-id": "^1.0.4", @@ -7597,7 +8300,8 @@ }, "node_modules/ipfs-bitswap/node_modules/@libp2p/interface-peer-id": { "version": "1.1.2", - "license": "Apache-2.0 OR MIT", + "resolved": "https://registry.npmjs.org/@libp2p/interface-peer-id/-/interface-peer-id-1.1.2.tgz", + "integrity": "sha512-S5iyVzG2EUgxm4NLe8W4ya9kpKuGfHs7Wbbos0wOUB4GXsbIKgOOxIr4yf+xGFgtEBaoximvlLkpob6dn8VFgA==", "dependencies": { "multiformats": "^10.0.0" }, @@ -7608,7 +8312,8 @@ }, "node_modules/ipfs-bitswap/node_modules/multiformats": { "version": "10.0.3", - "license": "Apache-2.0 OR MIT", + "resolved": "https://registry.npmjs.org/multiformats/-/multiformats-10.0.3.tgz", + "integrity": "sha512-K2yGSmstS/oEmYiEIieHb53jJCaqp4ERPDQAYrm5sV3UUrVDZeshJQCK6GHAKyIGufU1vAcbS0PdAAZmC7Tzcw==", "engines": { "node": ">=16.0.0", "npm": ">=7.0.0" @@ -7616,7 +8321,8 @@ }, "node_modules/ipfs-cli": { "version": "0.15.0", - "license": "Apache-2.0 OR MIT", + "resolved": "https://registry.npmjs.org/ipfs-cli/-/ipfs-cli-0.15.0.tgz", + "integrity": "sha512-rZ+fAlVIwVpTNhzTQZuhuO/51ic2AQGWCZkrVy/4t7qxjOO19GrldfRRtD/aewjlMd3+P9ttwfXQboVzAWsqXw==", "dependencies": { "@ipld/dag-cbor": "^8.0.0", "@ipld/dag-json": "^9.0.0", @@ -7656,7 +8362,8 @@ }, "node_modules/ipfs-cli/node_modules/multiformats": { "version": "10.0.3", - "license": "Apache-2.0 OR MIT", + "resolved": "https://registry.npmjs.org/multiformats/-/multiformats-10.0.3.tgz", + "integrity": "sha512-K2yGSmstS/oEmYiEIieHb53jJCaqp4ERPDQAYrm5sV3UUrVDZeshJQCK6GHAKyIGufU1vAcbS0PdAAZmC7Tzcw==", "engines": { "node": ">=16.0.0", "npm": ">=7.0.0" @@ -7664,7 +8371,8 @@ }, "node_modules/ipfs-core": { "version": "0.17.0", - "license": "Apache-2.0 OR MIT", + "resolved": "https://registry.npmjs.org/ipfs-core/-/ipfs-core-0.17.0.tgz", + "integrity": "sha512-mngpgSIO14n3U2iZzjxUn/AQ8LVVxrN/VRRXbJArxtSJuz1anx2kgtemRaUZt4q5juWHjk8tLtVdNDlS0bXGkg==", "dependencies": { "@chainsafe/libp2p-noise": "^10.0.0", "@ipld/car": "^5.0.0", @@ -7745,7 +8453,8 @@ }, "node_modules/ipfs-core-config": { "version": "0.6.0", - "license": "Apache-2.0 OR MIT", + "resolved": "https://registry.npmjs.org/ipfs-core-config/-/ipfs-core-config-0.6.0.tgz", + "integrity": "sha512-ga2rzjH2vtZRsDir4zjVh+gi6zlGno/yjfHhQn9GYUcKUL0HQ/aBG7XcLw8w7KgVMc93VMVGqfM3ueEGGW9X4Q==", "dependencies": { "@chainsafe/libp2p-gossipsub": "^4.0.0", "@libp2p/floodsub": "^5.0.0", @@ -7776,7 +8485,8 @@ }, "node_modules/ipfs-core-types": { "version": "0.13.0", - "license": "Apache-2.0 OR MIT", + "resolved": "https://registry.npmjs.org/ipfs-core-types/-/ipfs-core-types-0.13.0.tgz", + "integrity": "sha512-IIKS9v2D5KIqReZMbyuCStI4FRyIbRA9nD3fji1KgKJPiic1N3iGe2jL4hy4Y3FQ30VbheWJ9jAROwMyvqxYNA==", "dependencies": { "@ipld/dag-pb": "^3.0.0", "@libp2p/interface-keychain": "^1.0.3", @@ -7796,7 +8506,8 @@ }, "node_modules/ipfs-core-types/node_modules/@libp2p/interface-peer-id": { "version": "1.1.2", - "license": "Apache-2.0 OR MIT", + "resolved": "https://registry.npmjs.org/@libp2p/interface-peer-id/-/interface-peer-id-1.1.2.tgz", + "integrity": "sha512-S5iyVzG2EUgxm4NLe8W4ya9kpKuGfHs7Wbbos0wOUB4GXsbIKgOOxIr4yf+xGFgtEBaoximvlLkpob6dn8VFgA==", "dependencies": { "multiformats": "^10.0.0" }, @@ -7807,7 +8518,8 @@ }, "node_modules/ipfs-core-types/node_modules/multiformats": { "version": "10.0.3", - "license": "Apache-2.0 OR MIT", + "resolved": "https://registry.npmjs.org/multiformats/-/multiformats-10.0.3.tgz", + "integrity": "sha512-K2yGSmstS/oEmYiEIieHb53jJCaqp4ERPDQAYrm5sV3UUrVDZeshJQCK6GHAKyIGufU1vAcbS0PdAAZmC7Tzcw==", "engines": { "node": ">=16.0.0", "npm": ">=7.0.0" @@ -7815,7 +8527,8 @@ }, "node_modules/ipfs-core-utils": { "version": "0.17.0", - "license": "Apache-2.0 OR MIT", + "resolved": "https://registry.npmjs.org/ipfs-core-utils/-/ipfs-core-utils-0.17.0.tgz", + "integrity": "sha512-mZbQ9ZkLGGR988hO0iCsB6FXDb0fS0vYRue07Ia8O3ODdKjZ69Jx7zYoYqpjTQQCgEN6RrX98aCTOw+ifziGvw==", "dependencies": { "@libp2p/logger": "^2.0.0", "@multiformats/multiaddr": "^11.0.0", @@ -7845,7 +8558,8 @@ }, "node_modules/ipfs-core-utils/node_modules/multiformats": { "version": "10.0.3", - "license": "Apache-2.0 OR MIT", + "resolved": "https://registry.npmjs.org/multiformats/-/multiformats-10.0.3.tgz", + "integrity": "sha512-K2yGSmstS/oEmYiEIieHb53jJCaqp4ERPDQAYrm5sV3UUrVDZeshJQCK6GHAKyIGufU1vAcbS0PdAAZmC7Tzcw==", "engines": { "node": ">=16.0.0", "npm": ">=7.0.0" @@ -7853,7 +8567,8 @@ }, "node_modules/ipfs-core-utils/node_modules/nanoid": { "version": "4.0.0", - "license": "MIT", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-4.0.0.tgz", + "integrity": "sha512-IgBP8piMxe/gf73RTQx7hmnhwz0aaEXYakvqZyE302IXW3HyVNhdNGC+O2MwMAVhLEnvXlvKtGbtJf6wvHihCg==", "bin": { "nanoid": "bin/nanoid.js" }, @@ -7863,7 +8578,8 @@ }, "node_modules/ipfs-core/node_modules/@libp2p/interface-peer-id": { "version": "1.1.2", - "license": "Apache-2.0 OR MIT", + "resolved": "https://registry.npmjs.org/@libp2p/interface-peer-id/-/interface-peer-id-1.1.2.tgz", + "integrity": "sha512-S5iyVzG2EUgxm4NLe8W4ya9kpKuGfHs7Wbbos0wOUB4GXsbIKgOOxIr4yf+xGFgtEBaoximvlLkpob6dn8VFgA==", "dependencies": { "multiformats": "^10.0.0" }, @@ -7874,7 +8590,8 @@ }, "node_modules/ipfs-core/node_modules/multiformats": { "version": "10.0.3", - "license": "Apache-2.0 OR MIT", + "resolved": "https://registry.npmjs.org/multiformats/-/multiformats-10.0.3.tgz", + "integrity": "sha512-K2yGSmstS/oEmYiEIieHb53jJCaqp4ERPDQAYrm5sV3UUrVDZeshJQCK6GHAKyIGufU1vAcbS0PdAAZmC7Tzcw==", "engines": { "node": ">=16.0.0", "npm": ">=7.0.0" @@ -7882,7 +8599,8 @@ }, "node_modules/ipfs-daemon": { "version": "0.15.0", - "license": "Apache-2.0 OR MIT", + "resolved": "https://registry.npmjs.org/ipfs-daemon/-/ipfs-daemon-0.15.0.tgz", + "integrity": "sha512-I/KVYr6dUH6vFfFMqtmBhRl/V+18y5WPYBoQsHe1YrwdNQszj6GnSc6/etH+I8phD+J/QFZHqoZhoVw2kNup3A==", "dependencies": { "@libp2p/logger": "^2.0.0", "@libp2p/webrtc-star": "^5.0.2", @@ -7907,7 +8625,8 @@ }, "node_modules/ipfs-grpc-protocol": { "version": "0.7.0", - "license": "Apache-2.0 OR MIT", + "resolved": "https://registry.npmjs.org/ipfs-grpc-protocol/-/ipfs-grpc-protocol-0.7.0.tgz", + "integrity": "sha512-T0+nvF1H83hbxmhZ/KKpm05MpvP7/mePdNvz/6h1mPXXOsfXdB3lKjcJbhbwegeKndDSjbnBWGOGN8Ql8x/1lQ==", "engines": { "node": ">=16.0.0", "npm": ">=7.0.0" @@ -7915,7 +8634,8 @@ }, "node_modules/ipfs-grpc-server": { "version": "0.11.0", - "license": "Apache-2.0 OR MIT", + "resolved": "https://registry.npmjs.org/ipfs-grpc-server/-/ipfs-grpc-server-0.11.0.tgz", + "integrity": "sha512-nqZ74hZE3GV2LEmNypmfvPDc1ZvyrPoSGNPZI9OVML67+ZjtRwwp+wZYVaHpeDrgY8p2ihRu0jZeH5/2m4XZhw==", "dependencies": { "@grpc/grpc-js": "^1.1.8", "@libp2p/logger": "^2.0.0", @@ -7942,7 +8662,8 @@ }, "node_modules/ipfs-grpc-server/node_modules/nanoid": { "version": "4.0.0", - "license": "MIT", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-4.0.0.tgz", + "integrity": "sha512-IgBP8piMxe/gf73RTQx7hmnhwz0aaEXYakvqZyE302IXW3HyVNhdNGC+O2MwMAVhLEnvXlvKtGbtJf6wvHihCg==", "bin": { "nanoid": "bin/nanoid.js" }, @@ -7952,7 +8673,8 @@ }, "node_modules/ipfs-http-client": { "version": "59.0.0", - "license": "Apache-2.0 OR MIT", + "resolved": "https://registry.npmjs.org/ipfs-http-client/-/ipfs-http-client-59.0.0.tgz", + "integrity": "sha512-cFMU8ykKgxK2/uAw4Hthy2Kd+UuoFBno89DOdUqHYvmilKrmfV5vrYwviVWLYveIpkkaj8FB5x4TBxsiU99y0Q==", "dependencies": { "@ipld/dag-cbor": "^8.0.0", "@ipld/dag-json": "^9.0.0", @@ -7981,7 +8703,8 @@ }, "node_modules/ipfs-http-client/node_modules/multiformats": { "version": "10.0.3", - "license": "Apache-2.0 OR MIT", + "resolved": "https://registry.npmjs.org/multiformats/-/multiformats-10.0.3.tgz", + "integrity": "sha512-K2yGSmstS/oEmYiEIieHb53jJCaqp4ERPDQAYrm5sV3UUrVDZeshJQCK6GHAKyIGufU1vAcbS0PdAAZmC7Tzcw==", "engines": { "node": ">=16.0.0", "npm": ">=7.0.0" @@ -7989,7 +8712,8 @@ }, "node_modules/ipfs-http-gateway": { "version": "0.12.0", - "license": "Apache-2.0 OR MIT", + "resolved": "https://registry.npmjs.org/ipfs-http-gateway/-/ipfs-http-gateway-0.12.0.tgz", + "integrity": "sha512-x2kVh/dh/c/9mmYoNXp2ay21qDe4jwPhyZ36frRT0NMY+7Q9G5vgzwwFV1qWwBobvvlJeQEntO8vvfBvGtfQmQ==", "dependencies": { "@hapi/ammo": "^5.0.1", "@hapi/boom": "^9.1.0", @@ -8013,7 +8737,8 @@ }, "node_modules/ipfs-http-gateway/node_modules/multiformats": { "version": "10.0.3", - "license": "Apache-2.0 OR MIT", + "resolved": "https://registry.npmjs.org/multiformats/-/multiformats-10.0.3.tgz", + "integrity": "sha512-K2yGSmstS/oEmYiEIieHb53jJCaqp4ERPDQAYrm5sV3UUrVDZeshJQCK6GHAKyIGufU1vAcbS0PdAAZmC7Tzcw==", "engines": { "node": ">=16.0.0", "npm": ">=7.0.0" @@ -8021,7 +8746,8 @@ }, "node_modules/ipfs-http-response": { "version": "5.0.0", - "license": "Apache-2.0 OR MIT", + "resolved": "https://registry.npmjs.org/ipfs-http-response/-/ipfs-http-response-5.0.0.tgz", + "integrity": "sha512-UxuaPbHBuMD56jHS2nek2N3+GN1P/cDKYg/ZbwA2R/cCWCvEVPWnes01tchej00uFUoZXZbfi33fP6D0OJreHw==", "dependencies": { "@libp2p/logger": "^2.0.0", "ejs": "^3.1.6", @@ -8041,7 +8767,8 @@ }, "node_modules/ipfs-http-server": { "version": "0.14.0", - "license": "Apache-2.0 OR MIT", + "resolved": "https://registry.npmjs.org/ipfs-http-server/-/ipfs-http-server-0.14.0.tgz", + "integrity": "sha512-IWN6ckpJVrJfr6el/AeXJHvLjzgPidzWqiI5fTp5bZNonbwG6pbk/y2SDrN9oClGNDbU3TeuOxeO1uQqOVZDnw==", "dependencies": { "@hapi/boom": "^9.1.0", "@hapi/content": "^5.0.2", @@ -8088,7 +8815,8 @@ }, "node_modules/ipfs-http-server/node_modules/multiformats": { "version": "10.0.3", - "license": "Apache-2.0 OR MIT", + "resolved": "https://registry.npmjs.org/multiformats/-/multiformats-10.0.3.tgz", + "integrity": "sha512-K2yGSmstS/oEmYiEIieHb53jJCaqp4ERPDQAYrm5sV3UUrVDZeshJQCK6GHAKyIGufU1vAcbS0PdAAZmC7Tzcw==", "engines": { "node": ">=16.0.0", "npm": ">=7.0.0" @@ -8096,7 +8824,8 @@ }, "node_modules/ipfs-repo": { "version": "16.0.0", - "license": "Apache-2.0 OR MIT", + "resolved": "https://registry.npmjs.org/ipfs-repo/-/ipfs-repo-16.0.0.tgz", + "integrity": "sha512-CYlHO3MK1CNfuCkRyLxXB9pKj2nx4yomH92DilhwDW+Et4rQ/8279RgmEh5nFNf7BgvIvYPE+3hVErGbVytS5Q==", "dependencies": { "@ipld/dag-pb": "^3.0.0", "bytes": "^3.1.0", @@ -8133,7 +8862,8 @@ }, "node_modules/ipfs-repo-migrations": { "version": "14.0.1", - "license": "Apache-2.0 OR MIT", + "resolved": "https://registry.npmjs.org/ipfs-repo-migrations/-/ipfs-repo-migrations-14.0.1.tgz", + "integrity": "sha512-wE22g05hzxegCWMhNj7deagCLsKPcNf8KmK1QN4WMob0kuZ4kDxCg7fusM68tGrOnhE+Ll/AVHseFlzmoU/ZbQ==", "dependencies": { "@ipld/dag-pb": "^3.0.0", "@multiformats/multiaddr": "^11.0.0", @@ -8156,7 +8886,8 @@ }, "node_modules/ipfs-repo-migrations/node_modules/multiformats": { "version": "10.0.3", - "license": "Apache-2.0 OR MIT", + "resolved": "https://registry.npmjs.org/multiformats/-/multiformats-10.0.3.tgz", + "integrity": "sha512-K2yGSmstS/oEmYiEIieHb53jJCaqp4ERPDQAYrm5sV3UUrVDZeshJQCK6GHAKyIGufU1vAcbS0PdAAZmC7Tzcw==", "engines": { "node": ">=16.0.0", "npm": ">=7.0.0" @@ -8164,7 +8895,8 @@ }, "node_modules/ipfs-repo/node_modules/it-parallel-batch": { "version": "2.0.0", - "license": "Apache-2.0 OR MIT", + "resolved": "https://registry.npmjs.org/it-parallel-batch/-/it-parallel-batch-2.0.0.tgz", + "integrity": "sha512-RWP3h1y1OW3kzP633640mqgcfA9rlGGv4XV7EIsdU8VzAv+hRbpibqFk8sUyN/tNjrcFcYNkGBTE0/0FYf65IQ==", "dependencies": { "it-batch": "^2.0.0" }, @@ -8175,7 +8907,8 @@ }, "node_modules/ipfs-repo/node_modules/multiformats": { "version": "10.0.3", - "license": "Apache-2.0 OR MIT", + "resolved": "https://registry.npmjs.org/multiformats/-/multiformats-10.0.3.tgz", + "integrity": "sha512-K2yGSmstS/oEmYiEIieHb53jJCaqp4ERPDQAYrm5sV3UUrVDZeshJQCK6GHAKyIGufU1vAcbS0PdAAZmC7Tzcw==", "engines": { "node": ">=16.0.0", "npm": ">=7.0.0" @@ -8183,7 +8916,8 @@ }, "node_modules/ipfs-unixfs": { "version": "8.0.0", - "license": "Apache-2.0 OR MIT", + "resolved": "https://registry.npmjs.org/ipfs-unixfs/-/ipfs-unixfs-8.0.0.tgz", + "integrity": "sha512-PAHtfyjiFs2PZBbeft5QRyXpVOvZ2zsGqID+zVRla7fjC1zRTqJkrGY9h6dF03ldGv/mSmFlNZh479qPC6aZKg==", "dependencies": { "err-code": "^3.0.1", "protobufjs": "^7.0.0" @@ -8195,7 +8929,8 @@ }, "node_modules/ipfs-unixfs-exporter": { "version": "9.0.2", - "license": "Apache-2.0 OR MIT", + "resolved": "https://registry.npmjs.org/ipfs-unixfs-exporter/-/ipfs-unixfs-exporter-9.0.2.tgz", + "integrity": "sha512-CoktRT+MgS3H06/IXrmtJpuLQcux7ff30y0ndDRYnZLCvnqD2Fr3YicoY1sDb8JluIPZ70Pmwovb6Du4NfKk+w==", "dependencies": { "@ipld/dag-cbor": "^8.0.0", "@ipld/dag-pb": "^3.0.0", @@ -8220,7 +8955,8 @@ }, "node_modules/ipfs-unixfs-exporter/node_modules/multiformats": { "version": "10.0.3", - "license": "Apache-2.0 OR MIT", + "resolved": "https://registry.npmjs.org/multiformats/-/multiformats-10.0.3.tgz", + "integrity": "sha512-K2yGSmstS/oEmYiEIieHb53jJCaqp4ERPDQAYrm5sV3UUrVDZeshJQCK6GHAKyIGufU1vAcbS0PdAAZmC7Tzcw==", "engines": { "node": ">=16.0.0", "npm": ">=7.0.0" @@ -8228,7 +8964,8 @@ }, "node_modules/ipfs-unixfs-importer": { "version": "11.0.1", - "license": "Apache-2.0 OR MIT", + "resolved": "https://registry.npmjs.org/ipfs-unixfs-importer/-/ipfs-unixfs-importer-11.0.1.tgz", + "integrity": "sha512-e7Ca5zj8MMcQAqQR1YQrEicgZEiUf0xoBLMmu/6g/PtZ0U1oZBFsaIHcbDIjjjrEXxxhK6IcAvqSfqqUBnGfBg==", "dependencies": { "@ipld/dag-pb": "^3.0.0", "@multiformats/murmur3": "^2.0.0", @@ -8253,7 +8990,8 @@ }, "node_modules/ipfs-unixfs-importer/node_modules/it-parallel-batch": { "version": "2.0.0", - "license": "Apache-2.0 OR MIT", + "resolved": "https://registry.npmjs.org/it-parallel-batch/-/it-parallel-batch-2.0.0.tgz", + "integrity": "sha512-RWP3h1y1OW3kzP633640mqgcfA9rlGGv4XV7EIsdU8VzAv+hRbpibqFk8sUyN/tNjrcFcYNkGBTE0/0FYf65IQ==", "dependencies": { "it-batch": "^2.0.0" }, @@ -8264,7 +9002,8 @@ }, "node_modules/ipfs-unixfs-importer/node_modules/multiformats": { "version": "10.0.3", - "license": "Apache-2.0 OR MIT", + "resolved": "https://registry.npmjs.org/multiformats/-/multiformats-10.0.3.tgz", + "integrity": "sha512-K2yGSmstS/oEmYiEIieHb53jJCaqp4ERPDQAYrm5sV3UUrVDZeshJQCK6GHAKyIGufU1vAcbS0PdAAZmC7Tzcw==", "engines": { "node": ">=16.0.0", "npm": ">=7.0.0" @@ -8272,7 +9011,8 @@ }, "node_modules/ipfs-utils": { "version": "9.0.9", - "license": "MIT", + "resolved": "https://registry.npmjs.org/ipfs-utils/-/ipfs-utils-9.0.9.tgz", + "integrity": "sha512-auKjNok5bFhid1JmnXn+QFKaGrKrxgbUpVD0v4XkIKIH7kCR9zWOihErPKBDfJXfF8YycQ+SvPgX1XOpDgUC5Q==", "dependencies": { "any-signal": "^3.0.0", "buffer": "^6.0.1", @@ -8292,7 +9032,8 @@ }, "node_modules/ipfs-utils/node_modules/native-fetch": { "version": "3.0.0", - "license": "MIT", + "resolved": "https://registry.npmjs.org/native-fetch/-/native-fetch-3.0.0.tgz", + "integrity": "sha512-G3Z7vx0IFb/FQ4JxvtqGABsOTIqRWvgQz6e+erkB+JJD6LrszQtMozEHI4EkmgZQvnGHrpLVzUWk7t4sJCIkVw==", "peerDependencies": { "node-fetch": "*" } @@ -8309,7 +9050,8 @@ }, "node_modules/ipfs/node_modules/semver": { "version": "7.3.8", - "license": "ISC", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.8.tgz", + "integrity": "sha512-NB1ctGL5rlHrPJtFDVIVzTyQylMLu9N9VICA6HSFJo8MCGVTMW6gfpicwKmmK/dAjTOrqu5l63JJOpDSrAis3A==", "dependencies": { "lru-cache": "^6.0.0" }, @@ -8322,7 +9064,8 @@ }, "node_modules/ipns": { "version": "4.0.0", - "license": "Apache-2.0 OR MIT", + "resolved": "https://registry.npmjs.org/ipns/-/ipns-4.0.0.tgz", + "integrity": "sha512-I+it3SkkQ8oYF7tT1Yphipau+3KEyJ72r6BDNWaVlQM+nTu28Zz1v5NoQCH9lqkh2nUpW02nSFOQJ3S4lqAyzg==", "dependencies": { "@libp2p/crypto": "^1.0.0", "@libp2p/interface-dht": "^1.0.1", @@ -8345,7 +9088,8 @@ }, "node_modules/ipns/node_modules/@libp2p/interface-peer-id": { "version": "1.1.2", - "license": "Apache-2.0 OR MIT", + "resolved": "https://registry.npmjs.org/@libp2p/interface-peer-id/-/interface-peer-id-1.1.2.tgz", + "integrity": "sha512-S5iyVzG2EUgxm4NLe8W4ya9kpKuGfHs7Wbbos0wOUB4GXsbIKgOOxIr4yf+xGFgtEBaoximvlLkpob6dn8VFgA==", "dependencies": { "multiformats": "^10.0.0" }, @@ -8356,7 +9100,8 @@ }, "node_modules/ipns/node_modules/multiformats": { "version": "10.0.3", - "license": "Apache-2.0 OR MIT", + "resolved": "https://registry.npmjs.org/multiformats/-/multiformats-10.0.3.tgz", + "integrity": "sha512-K2yGSmstS/oEmYiEIieHb53jJCaqp4ERPDQAYrm5sV3UUrVDZeshJQCK6GHAKyIGufU1vAcbS0PdAAZmC7Tzcw==", "engines": { "node": ">=16.0.0", "npm": ">=7.0.0" @@ -8364,8 +9109,9 @@ }, "node_modules/is-binary-path": { "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", + "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", "dev": true, - "license": "MIT", "dependencies": { "binary-extensions": "^2.0.0" }, @@ -8375,6 +9121,8 @@ }, "node_modules/is-buffer": { "version": "2.0.5", + "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-2.0.5.tgz", + "integrity": "sha512-i2R6zNFDwgEHJyQUtJEk0XFi1i0dPFn/oqjK3/vPCcDeJvW5NQ83V8QbicfF1SupOaB0h8ntgBC2YiE7dfyctQ==", "funding": [ { "type": "github", @@ -8389,14 +9137,14 @@ "url": "https://feross.org/support" } ], - "license": "MIT", "engines": { "node": ">=4" } }, "node_modules/is-ci": { "version": "3.0.1", - "license": "MIT", + "resolved": "https://registry.npmjs.org/is-ci/-/is-ci-3.0.1.tgz", + "integrity": "sha512-ZYvCgrefwqoQ6yTyYUbQu64HsITZ3NfKX1lzaEYdkTDcfKzzCI/wthRRYKkdjHKFVgNiXKAKm65Zo1pk2as/QQ==", "dependencies": { "ci-info": "^3.2.0" }, @@ -8406,31 +9154,36 @@ }, "node_modules/is-domain-name": { "version": "1.0.1", - "license": "ISC" + "resolved": "https://registry.npmjs.org/is-domain-name/-/is-domain-name-1.0.1.tgz", + "integrity": "sha512-52ToNggHmkZGPl8yLFNrk+cKHUUnkhS0l2jh+yMLq6kj9C5IMLSztvJsW5WO5eMy0OS0jdu4o2tptT9dN0hAFg==" }, "node_modules/is-electron": { "version": "2.2.1", - "license": "MIT" + "resolved": "https://registry.npmjs.org/is-electron/-/is-electron-2.2.1.tgz", + "integrity": "sha512-r8EEQQsqT+Gn0aXFx7lTFygYQhILLCB+wn0WCDL5LZRINeLH/Rvw1j2oKodELLXYNImQ3CRlVsY8wW4cGOsyuw==" }, "node_modules/is-extglob": { "version": "2.1.1", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", + "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", "dev": true, - "license": "MIT", "engines": { "node": ">=0.10.0" } }, "node_modules/is-fullwidth-code-point": { "version": "3.0.0", - "license": "MIT", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", "engines": { "node": ">=8" } }, "node_modules/is-glob": { "version": "4.0.3", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", + "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", "dev": true, - "license": "MIT", "dependencies": { "is-extglob": "^2.1.1" }, @@ -8440,7 +9193,8 @@ }, "node_modules/is-installed-globally": { "version": "0.4.0", - "license": "MIT", + "resolved": "https://registry.npmjs.org/is-installed-globally/-/is-installed-globally-0.4.0.tgz", + "integrity": "sha512-iwGqO3J21aaSkC7jWnHP/difazwS7SFeIqxv6wEtLU8Y5KlzFTjyqcSIT0d8s4+dDhKytsk9PJZ2BkS5eZwQRQ==", "dependencies": { "global-dirs": "^3.0.0", "is-path-inside": "^3.0.2" @@ -8454,7 +9208,8 @@ }, "node_modules/is-ip": { "version": "5.0.0", - "license": "MIT", + "resolved": "https://registry.npmjs.org/is-ip/-/is-ip-5.0.0.tgz", + "integrity": "sha512-uhmKwcdWJ1nTmBdoBxdHilfJs4qdLBIvVHKRels2+UCZmfcfefuQWziadaYLpN7t/bUrJOjJHv+R1di1q7Q1HQ==", "dependencies": { "ip-regex": "^5.0.0", "super-regex": "^0.2.0" @@ -8468,7 +9223,8 @@ }, "node_modules/is-ipfs": { "version": "7.0.3", - "license": "Apache-2.0 OR MIT", + "resolved": "https://registry.npmjs.org/is-ipfs/-/is-ipfs-7.0.3.tgz", + "integrity": "sha512-IwjmN5DYrWQgk75dPX9WOFDbGpStJg6SLMLXXlxwpI3/SnwAIz3PwrdnxB+s2k+RjOTn9ueFIbGWxF2VMUYmLQ==", "dependencies": { "@multiformats/mafmt": "^11.0.3", "@multiformats/multiaddr": "^11.0.0", @@ -8483,7 +9239,8 @@ }, "node_modules/is-ipfs/node_modules/multiformats": { "version": "10.0.3", - "license": "Apache-2.0 OR MIT", + "resolved": "https://registry.npmjs.org/multiformats/-/multiformats-10.0.3.tgz", + "integrity": "sha512-K2yGSmstS/oEmYiEIieHb53jJCaqp4ERPDQAYrm5sV3UUrVDZeshJQCK6GHAKyIGufU1vAcbS0PdAAZmC7Tzcw==", "engines": { "node": ">=16.0.0", "npm": ">=7.0.0" @@ -8491,11 +9248,13 @@ }, "node_modules/is-loopback-addr": { "version": "2.0.1", - "license": "MIT" + "resolved": "https://registry.npmjs.org/is-loopback-addr/-/is-loopback-addr-2.0.1.tgz", + "integrity": "sha512-SEsepLbdWFb13B6U0tt6dYcUM0iK/U7XOC43N70Z4Qb88WpNtp+ospyNI9ddpqncs7Z7brAEsVBTQpaqSNntIw==" }, "node_modules/is-npm": { "version": "6.0.0", - "license": "MIT", + "resolved": "https://registry.npmjs.org/is-npm/-/is-npm-6.0.0.tgz", + "integrity": "sha512-JEjxbSmtPSt1c8XTkVrlujcXdKV1/tvuQ7GwKcAlyiVLeYFQ2VHat8xfrDJsIkhCdF/tZ7CiIR3sy141c6+gPQ==", "engines": { "node": "^12.20.0 || ^14.13.1 || >=16.0.0" }, @@ -8505,37 +9264,42 @@ }, "node_modules/is-number": { "version": "7.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", + "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", "dev": true, - "license": "MIT", "engines": { "node": ">=0.12.0" } }, "node_modules/is-obj": { "version": "2.0.0", - "license": "MIT", + "resolved": "https://registry.npmjs.org/is-obj/-/is-obj-2.0.0.tgz", + "integrity": "sha512-drqDG3cbczxxEJRoOXcOjtdp1J/lyp1mNn0xaznRs8+muBhgQcrnbspox5X5fOw0HnMnbfDzvnEMEtqDEJEo8w==", "engines": { "node": ">=8" } }, "node_modules/is-path-inside": { "version": "3.0.3", - "license": "MIT", + "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-3.0.3.tgz", + "integrity": "sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==", "engines": { "node": ">=8" } }, "node_modules/is-plain-obj": { "version": "2.1.0", - "license": "MIT", + "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-2.1.0.tgz", + "integrity": "sha512-YWnfyRwxL/+SsrWYfOpUtz5b3YD+nyfkHvjbcanzk8zgyO4ASD67uVMRt8k5bM4lLMDnXfriRhOpemw+NfT1eA==", "engines": { "node": ">=8" } }, "node_modules/is-plain-object": { "version": "2.0.4", + "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz", + "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==", "dev": true, - "license": "MIT", "dependencies": { "isobject": "^3.0.1" }, @@ -8545,7 +9309,8 @@ }, "node_modules/is-regexp": { "version": "3.1.0", - "license": "MIT", + "resolved": "https://registry.npmjs.org/is-regexp/-/is-regexp-3.1.0.tgz", + "integrity": "sha512-rbku49cWloU5bSMI+zaRaXdQHXnthP6DZ/vLnfdSKyL4zUzuWnomtOEiZZOd+ioQ+avFo/qau3KPTc7Fjy1uPA==", "engines": { "node": ">=12" }, @@ -8555,7 +9320,8 @@ }, "node_modules/is-stream": { "version": "3.0.0", - "license": "MIT", + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-3.0.0.tgz", + "integrity": "sha512-LnQR4bZ9IADDRSkvpqMGvt/tEJWclzklNgSw48V5EAaAeDd6qGvN8ei6k5p0tvxSR171VmGyHuTiAOfxAbr8kA==", "engines": { "node": "^12.20.0 || ^14.13.1 || >=16.0.0" }, @@ -8565,12 +9331,14 @@ }, "node_modules/is-typedarray": { "version": "1.0.0", - "license": "MIT" + "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz", + "integrity": "sha512-cyA56iCMHAh5CdzjJIa4aohJyeO1YbwLi3Jc35MmRU6poroFjIGZzUzupGiRPOjgHg9TLu43xbpwXk523fMxKA==" }, "node_modules/is-unicode-supported": { "version": "0.1.0", + "resolved": "https://registry.npmjs.org/is-unicode-supported/-/is-unicode-supported-0.1.0.tgz", + "integrity": "sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw==", "dev": true, - "license": "MIT", "engines": { "node": ">=10" }, @@ -8580,31 +9348,36 @@ }, "node_modules/is-yarn-global": { "version": "0.4.1", - "license": "MIT", + "resolved": "https://registry.npmjs.org/is-yarn-global/-/is-yarn-global-0.4.1.tgz", + "integrity": "sha512-/kppl+R+LO5VmhYSEWARUFjodS25D68gvj8W7z0I7OWhUla5xWu8KL6CtB2V0R6yqhnRgbcaREMr4EEM6htLPQ==", "engines": { "node": ">=12" } }, "node_modules/isarray": { "version": "0.0.1", - "dev": true, - "license": "MIT" + "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", + "integrity": "sha512-D2S+3GLxWH+uhrNEcoh/fnmYeP8E8/zHl644d/jdA0g2uyXvy3sb0qxotE+ne0LtccHknQzWwZEzhak7oJ0COQ==", + "dev": true }, "node_modules/isexe": { "version": "2.0.0", - "license": "ISC" + "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", + "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==" }, "node_modules/iso-constants": { "version": "0.1.2", + "resolved": "https://registry.npmjs.org/iso-constants/-/iso-constants-0.1.2.tgz", + "integrity": "sha512-OTCM5ZCQsHBCI4Wdu4tSxvDIkmDHd5EwJDps5mKqnQnWJSKlnwMs3EDZ4n3Fh1tmkWkDlyd2vCDbEYuPbyrUNQ==", "hasInstallScript": true, - "license": "MIT", "engines": { "node": ">=10" } }, "node_modules/iso-random-stream": { "version": "2.0.2", - "license": "MIT", + "resolved": "https://registry.npmjs.org/iso-random-stream/-/iso-random-stream-2.0.2.tgz", + "integrity": "sha512-yJvs+Nnelic1L2vH2JzWvvPQFA4r7kSTnpST/+LkAQjSz0hos2oqLD+qIVi9Qk38Hoe7mNDt3j0S27R58MVjLQ==", "dependencies": { "events": "^3.3.0", "readable-stream": "^3.4.0" @@ -8615,7 +9388,8 @@ }, "node_modules/iso-random-stream/node_modules/readable-stream": { "version": "3.6.0", - "license": "MIT", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", + "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", "dependencies": { "inherits": "^2.0.3", "string_decoder": "^1.1.1", @@ -8627,22 +9401,25 @@ }, "node_modules/iso-url": { "version": "1.2.1", - "license": "MIT", + "resolved": "https://registry.npmjs.org/iso-url/-/iso-url-1.2.1.tgz", + "integrity": "sha512-9JPDgCN4B7QPkLtYAAOrEuAWvP9rWvR5offAr0/SeF046wIkglqH3VXgYYP6NcsKslH80UIVgmPqNe3j7tG2ng==", "engines": { "node": ">=12" } }, "node_modules/isobject": { "version": "3.0.1", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", + "integrity": "sha512-WhB9zCku7EGTj/HQQRz5aUQEUeoQZH2bWcltRErOpymJ4boYE6wL9Tbr23krRPSZ+C5zqNSrSw+Cc7sZZ4b7vg==", "dev": true, - "license": "MIT", "engines": { "node": ">=0.10.0" } }, "node_modules/it-all": { "version": "2.0.0", - "license": "Apache-2.0 OR MIT", + "resolved": "https://registry.npmjs.org/it-all/-/it-all-2.0.0.tgz", + "integrity": "sha512-I/yi9ogTY59lFxtfsDSlI9w9QZtC/5KJt6g7CPPBJJh2xql2ZS7Ghcp9hoqDDbc4QfwQvtx8Loy0zlKQ8H5gFg==", "engines": { "node": ">=16.0.0", "npm": ">=7.0.0" @@ -8650,7 +9427,8 @@ }, "node_modules/it-batch": { "version": "2.0.0", - "license": "Apache-2.0 OR MIT", + "resolved": "https://registry.npmjs.org/it-batch/-/it-batch-2.0.0.tgz", + "integrity": "sha512-kh30J83cNGCXuH48+meNLSCjkhRzvZyySgiHJ+Vz0ch/YyQ/XgYSCQhbx2a2VbxhvDdYZBoKiI3x7h14ReYFcg==", "engines": { "node": ">=16.0.0", "npm": ">=7.0.0" @@ -8658,7 +9436,8 @@ }, "node_modules/it-batched-bytes": { "version": "1.0.0", - "license": "Apache-2.0 OR MIT", + "resolved": "https://registry.npmjs.org/it-batched-bytes/-/it-batched-bytes-1.0.0.tgz", + "integrity": "sha512-OfztV9UHQmoZ6u5F4y+YOI1Z+5JAhkv3Gexc1a0B7ikcVXc3PFSKlEnHv79u+Yp/h23o3tsF9hHAhuqgHCYT2Q==", "dependencies": { "it-stream-types": "^1.0.4", "p-defer": "^4.0.0", @@ -8671,7 +9450,8 @@ }, "node_modules/it-concat": { "version": "3.0.1", - "license": "Apache-2.0 OR MIT", + "resolved": "https://registry.npmjs.org/it-concat/-/it-concat-3.0.1.tgz", + "integrity": "sha512-adsCBiPaDM46TrrpmNPEWru++/oFiLWZAnteM5ODPs0NRkDfjDyom+qyXvag7bP/Kp3Z6Vqv+U1idZs5gmyIAg==", "dependencies": { "uint8arraylist": "^2.3.3", "uint8arrays": "^4.0.2" @@ -8683,7 +9463,8 @@ }, "node_modules/it-drain": { "version": "2.0.0", - "license": "Apache-2.0 OR MIT", + "resolved": "https://registry.npmjs.org/it-drain/-/it-drain-2.0.0.tgz", + "integrity": "sha512-oa/5iyBtRs9UW486vPpyDTC0ee3rqx5qlrPI7txIUJcqqtiO5yVozEB6LQrl5ysQYv+P3y/dlKEqwVqlCV0SEA==", "engines": { "node": ">=16.0.0", "npm": ">=7.0.0" @@ -8691,7 +9472,8 @@ }, "node_modules/it-filter": { "version": "2.0.0", - "license": "Apache-2.0 OR MIT", + "resolved": "https://registry.npmjs.org/it-filter/-/it-filter-2.0.0.tgz", + "integrity": "sha512-E68+zzoNNI7MxdH1T4lUTgwpCyEnymlH349Qg2mcvsqLmYRkaZLM4NfZZ0hUuH7/5DkWXubQSDOYH396va8mpg==", "engines": { "node": ">=16.0.0", "npm": ">=7.0.0" @@ -8699,7 +9481,8 @@ }, "node_modules/it-first": { "version": "2.0.0", - "license": "Apache-2.0 OR MIT", + "resolved": "https://registry.npmjs.org/it-first/-/it-first-2.0.0.tgz", + "integrity": "sha512-fzZGzVf01exFyIZXNjkpSMFr1eW2+J1K0v018tYY26Dd4f/O3pWlBTdrOBfSQRZwtI8Pst6c7eKhYczWvFs6tA==", "engines": { "node": ">=16.0.0", "npm": ">=7.0.0" @@ -8707,7 +9490,8 @@ }, "node_modules/it-foreach": { "version": "1.0.0", - "license": "Apache-2.0 OR MIT", + "resolved": "https://registry.npmjs.org/it-foreach/-/it-foreach-1.0.0.tgz", + "integrity": "sha512-2j5HK1P6aMwEvgL6K5nzUwOk+81B/mjt05PxiSspFEKwJnqy1LfJYlLLS6llBoM+NdoUxf6EsBCHidFGmsXvhw==", "engines": { "node": ">=16.0.0", "npm": ">=7.0.0" @@ -8715,7 +9499,8 @@ }, "node_modules/it-glob": { "version": "1.0.2", - "license": "ISC", + "resolved": "https://registry.npmjs.org/it-glob/-/it-glob-1.0.2.tgz", + "integrity": "sha512-Ch2Dzhw4URfB9L/0ZHyY+uqOnKvBNeS/SMcRiPmJfpHiM0TsUZn+GkpcZxAoF3dJVdPm/PuIk3A4wlV7SUo23Q==", "dependencies": { "@types/minimatch": "^3.0.4", "minimatch": "^3.0.4" @@ -8723,7 +9508,8 @@ }, "node_modules/it-glob/node_modules/brace-expansion": { "version": "1.1.11", - "license": "MIT", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", "dependencies": { "balanced-match": "^1.0.0", "concat-map": "0.0.1" @@ -8731,7 +9517,8 @@ }, "node_modules/it-glob/node_modules/minimatch": { "version": "3.1.2", - "license": "ISC", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", "dependencies": { "brace-expansion": "^1.1.7" }, @@ -8741,7 +9528,8 @@ }, "node_modules/it-handshake": { "version": "4.1.2", - "license": "Apache-2.0 OR MIT", + "resolved": "https://registry.npmjs.org/it-handshake/-/it-handshake-4.1.2.tgz", + "integrity": "sha512-Q/EvrB4KWIX5+/wO7edBK3l79Vh28+iWPGZvZSSqwAtOJnHZIvywC+JUbiXPRJVXfICBJRqFETtIJcvrqWL2Zw==", "dependencies": { "it-pushable": "^3.1.0", "it-reader": "^6.0.1", @@ -8756,7 +9544,8 @@ }, "node_modules/it-last": { "version": "2.0.0", - "license": "Apache-2.0 OR MIT", + "resolved": "https://registry.npmjs.org/it-last/-/it-last-2.0.0.tgz", + "integrity": "sha512-u0GHZ01tWYtPvDkOaqZSLLWjFv3IJw9cPL9mbEV7wnE8DOsbVoXIuKpnz3U6pySl5RzPVjTzSHOc961ZYttBxg==", "engines": { "node": ">=16.0.0", "npm": ">=7.0.0" @@ -8764,7 +9553,8 @@ }, "node_modules/it-length": { "version": "2.0.0", - "license": "Apache-2.0 OR MIT", + "resolved": "https://registry.npmjs.org/it-length/-/it-length-2.0.0.tgz", + "integrity": "sha512-YFe6AW6RKkSTburcbyBChf6+HnyWumKZH9KRVfUSVXYkVqJxaJh/8aM8pnaFHm26lKQxYo57YW6RP+wL4CMx0Q==", "engines": { "node": ">=16.0.0", "npm": ">=7.0.0" @@ -8772,7 +9562,8 @@ }, "node_modules/it-length-prefixed": { "version": "8.0.4", - "license": "Apache-2.0 OR MIT", + "resolved": "https://registry.npmjs.org/it-length-prefixed/-/it-length-prefixed-8.0.4.tgz", + "integrity": "sha512-5OJ1lxH+IaqJB7lxe8IAIwt9UfSfsmjKJoAI/RO9djYoBDt1Jfy9PeVHUmOfqhqyu/4kJvWBFAJUaG1HhLQ12A==", "dependencies": { "err-code": "^3.0.1", "it-stream-types": "^1.0.4", @@ -8787,7 +9578,8 @@ }, "node_modules/it-map": { "version": "2.0.0", - "license": "Apache-2.0 OR MIT", + "resolved": "https://registry.npmjs.org/it-map/-/it-map-2.0.0.tgz", + "integrity": "sha512-mLgtk/NZaN7NZ06iLrMXCA6jjhtZO0vZT5Ocsp31H+nsGI18RSPVmUbFyA1sWx7q+g92J22Sixya7T2QSSAwfA==", "engines": { "node": ">=16.0.0", "npm": ">=7.0.0" @@ -8795,7 +9587,8 @@ }, "node_modules/it-merge": { "version": "2.0.0", - "license": "Apache-2.0 OR MIT", + "resolved": "https://registry.npmjs.org/it-merge/-/it-merge-2.0.0.tgz", + "integrity": "sha512-mH4bo/ZrMoU+Wlu7ZuYPNNh9oWZ/GvYbeXZ0zll97+Rp6H4jFu98iu6v9qqXDz//RUjdO9zGh8awzMfOElsjpA==", "dependencies": { "it-pushable": "^3.1.0" }, @@ -8806,7 +9599,8 @@ }, "node_modules/it-multipart": { "version": "3.0.0", - "license": "Apache-2.0 OR MIT", + "resolved": "https://registry.npmjs.org/it-multipart/-/it-multipart-3.0.0.tgz", + "integrity": "sha512-toThtH3xxAaF4A89k1FX08ZA2whK6x8/7Tgz0JvSGV5b8bR5KaR2wx6oq7E7sqa1Q05hGNGy3pbKQM/59IoeXQ==", "dependencies": { "formidable": "^2.0.1", "it-pushable": "^3.1.0" @@ -8818,7 +9612,8 @@ }, "node_modules/it-pair": { "version": "2.0.3", - "license": "Apache-2.0 OR MIT", + "resolved": "https://registry.npmjs.org/it-pair/-/it-pair-2.0.3.tgz", + "integrity": "sha512-heCgsbYscFCQY5YvltlGT9tjgLGYo7NxPEoJyl55X4BD2KOXpTyuwOhPLWhi9Io0y6+4ZUXCkyaQXIB6Y8xhRw==", "dependencies": { "it-stream-types": "^1.0.3", "p-defer": "^4.0.0" @@ -8830,7 +9625,8 @@ }, "node_modules/it-parallel": { "version": "3.0.0", - "license": "Apache-2.0 OR MIT", + "resolved": "https://registry.npmjs.org/it-parallel/-/it-parallel-3.0.0.tgz", + "integrity": "sha512-/y70cY7VoZ7natLbWrPxoRaKWMD67RvtWx21cyLJr6kkuHrUWOrHNr8CPMBqzDRh73aig/uUT82hzTTmTTkDUg==", "dependencies": { "p-defer": "^4.0.0" }, @@ -8841,18 +9637,21 @@ }, "node_modules/it-parallel-batch": { "version": "1.0.11", - "license": "ISC", + "resolved": "https://registry.npmjs.org/it-parallel-batch/-/it-parallel-batch-1.0.11.tgz", + "integrity": "sha512-UWsWHv/kqBpMRmyZJzlmZeoAMA0F3SZr08FBdbhtbe+MtoEBgr/ZUAKrnenhXCBrsopy76QjRH2K/V8kNdupbQ==", "dependencies": { "it-batch": "^1.0.9" } }, "node_modules/it-parallel-batch/node_modules/it-batch": { "version": "1.0.9", - "license": "ISC" + "resolved": "https://registry.npmjs.org/it-batch/-/it-batch-1.0.9.tgz", + "integrity": "sha512-7Q7HXewMhNFltTsAMdSz6luNhyhkhEtGGbYek/8Xb/GiqYMtwUmopE1ocPSiJKKp3rM4Dt045sNFoUu+KZGNyA==" }, "node_modules/it-pb-stream": { "version": "2.0.3", - "license": "Apache-2.0 OR MIT", + "resolved": "https://registry.npmjs.org/it-pb-stream/-/it-pb-stream-2.0.3.tgz", + "integrity": "sha512-nuJzftDqk52gZmVD6T0sIKggXMhBkLSAFCD1OecxqGTVwk2wuDYY0ZHpcXZJuHty3kIuLY4xlWZrnDH9efV4YA==", "dependencies": { "it-handshake": "^4.1.2", "it-length-prefixed": "^8.0.2", @@ -8866,7 +9665,8 @@ }, "node_modules/it-peekable": { "version": "2.0.0", - "license": "Apache-2.0 OR MIT", + "resolved": "https://registry.npmjs.org/it-peekable/-/it-peekable-2.0.0.tgz", + "integrity": "sha512-+eacms2jr2wQqIRxU25eqWPHaEeR4IurrS9hTScmCJpWagRkC8WHw7atciEA6KArOiyxHCAXg5Q5We7/RhvqAQ==", "engines": { "node": ">=16.0.0", "npm": ">=7.0.0" @@ -8874,7 +9674,8 @@ }, "node_modules/it-pipe": { "version": "2.0.5", - "license": "Apache-2.0 OR MIT", + "resolved": "https://registry.npmjs.org/it-pipe/-/it-pipe-2.0.5.tgz", + "integrity": "sha512-y85nW1N6zoiTnkidr2EAyC+ZVzc7Mwt2p+xt2a2ooG1ThFakSpNw1Kxm+7F13Aivru96brJhjQVRQNU+w0yozw==", "dependencies": { "it-merge": "^2.0.0", "it-pushable": "^3.1.0", @@ -8887,7 +9688,8 @@ }, "node_modules/it-pushable": { "version": "3.1.2", - "license": "Apache-2.0 OR MIT", + "resolved": "https://registry.npmjs.org/it-pushable/-/it-pushable-3.1.2.tgz", + "integrity": "sha512-zU9FbeoGT0f+yobwm8agol2OTMXbq4ZSWLEi7hug6TEZx4qVhGhGyp31cayH04aBYsIoO2Nr5kgMjH/oWj2BJQ==", "engines": { "node": ">=16.0.0", "npm": ">=7.0.0" @@ -8895,7 +9697,8 @@ }, "node_modules/it-reader": { "version": "6.0.2", - "license": "Apache-2.0 OR MIT", + "resolved": "https://registry.npmjs.org/it-reader/-/it-reader-6.0.2.tgz", + "integrity": "sha512-rQdVyml+r/2v8PQsPfJgf626tAkbA7NW1EF6zuucT2Ryy1U6YJtSuCJL8fKuDOyiR/mLzbfP0QQJlSeeoLph2A==", "dependencies": { "it-stream-types": "^1.0.4", "uint8arraylist": "^2.0.0" @@ -8907,7 +9710,8 @@ }, "node_modules/it-reduce": { "version": "2.0.0", - "license": "Apache-2.0 OR MIT", + "resolved": "https://registry.npmjs.org/it-reduce/-/it-reduce-2.0.0.tgz", + "integrity": "sha512-ki7gN+2XLTd7JoMbPVwGn1JXA7JOJyjpgEPeBkUbcMzJ7JYGsiYFPskrbfE2rXWbkt7rYgzGPkdd1SipqitcrQ==", "engines": { "node": ">=16.0.0", "npm": ">=7.0.0" @@ -8915,7 +9719,8 @@ }, "node_modules/it-sort": { "version": "2.0.0", - "license": "Apache-2.0 OR MIT", + "resolved": "https://registry.npmjs.org/it-sort/-/it-sort-2.0.0.tgz", + "integrity": "sha512-yeAE97b5PEjCrWFUiNyR90eJdGslj8FB3cjT84rsc+mzx9lxPyR2zJkYB9ZOJoWE5MMebxqcQCLRT3OSlzo7Zg==", "dependencies": { "it-all": "^2.0.0" }, @@ -8926,7 +9731,8 @@ }, "node_modules/it-split": { "version": "2.0.1", - "license": "Apache-2.0 OR MIT", + "resolved": "https://registry.npmjs.org/it-split/-/it-split-2.0.1.tgz", + "integrity": "sha512-Pq9bvAKuPmyFU62ymWZdLZ2p5+l5iDPpKSNbk+4etrKklEU354UsmetXWQQ5ZfrarH8mG1aKJ35H7PY7lD4xPQ==", "dependencies": { "uint8arraylist": "^2.4.1" }, @@ -8937,7 +9743,8 @@ }, "node_modules/it-stream-types": { "version": "1.0.5", - "license": "Apache-2.0 OR MIT", + "resolved": "https://registry.npmjs.org/it-stream-types/-/it-stream-types-1.0.5.tgz", + "integrity": "sha512-I88Ka1nHgfX62e5mi5LLL+oueqz7Ltg0bUdtsUKDe9SoUqbQPf2Mp5kxDTe9pNhHQGs4pvYPAINwuZ1HAt42TA==", "engines": { "node": ">=16.0.0", "npm": ">=7.0.0" @@ -8945,7 +9752,8 @@ }, "node_modules/it-take": { "version": "2.0.0", - "license": "Apache-2.0 OR MIT", + "resolved": "https://registry.npmjs.org/it-take/-/it-take-2.0.0.tgz", + "integrity": "sha512-lN3diSTomOvYBk2K0LHAgrQ52DlQfvq8tH/+HLAFpX8Q3JwBkr/BPJEi3Z3Lf8jMmN1KOCBXvt5sXa3eW9vUmg==", "engines": { "node": ">=16.0.0", "npm": ">=7.0.0" @@ -8953,7 +9761,8 @@ }, "node_modules/it-tar": { "version": "6.0.1", - "license": "Apache-2.0 OR MIT", + "resolved": "https://registry.npmjs.org/it-tar/-/it-tar-6.0.1.tgz", + "integrity": "sha512-KMKNqYQr/m3mJE0ERg6F2Snlk1d68tEMeOP0bPf5vboka1y0L7CZD2nlf57H+C9R31TA0SbtiOqkblRxEIONfg==", "dependencies": { "iso-constants": "^0.1.2", "it-reader": "^6.0.1", @@ -8970,7 +9779,8 @@ }, "node_modules/it-to-buffer": { "version": "3.0.0", - "license": "Apache-2.0 OR MIT", + "resolved": "https://registry.npmjs.org/it-to-buffer/-/it-to-buffer-3.0.0.tgz", + "integrity": "sha512-W+wNv0CBXVPLMSKKKJXJFcWdsB/MpVUpQkExV/bjjwGhTQJRj29lZuBYSt0Gjad8GDgRCdSwVcKIe6cVY5epGw==", "dependencies": { "uint8arrays": "^4.0.2" }, @@ -8981,7 +9791,8 @@ }, "node_modules/it-to-stream": { "version": "1.0.0", - "license": "MIT", + "resolved": "https://registry.npmjs.org/it-to-stream/-/it-to-stream-1.0.0.tgz", + "integrity": "sha512-pLULMZMAB/+vbdvbZtebC0nWBTbG581lk6w8P7DfIIIKUfa8FbY7Oi0FxZcFPbxvISs7A9E+cMpLDBc1XhpAOA==", "dependencies": { "buffer": "^6.0.3", "fast-fifo": "^1.0.0", @@ -8993,18 +9804,21 @@ }, "node_modules/it-to-stream/node_modules/get-iterator": { "version": "1.0.2", - "license": "MIT" + "resolved": "https://registry.npmjs.org/get-iterator/-/get-iterator-1.0.2.tgz", + "integrity": "sha512-v+dm9bNVfOYsY1OrhaCrmyOcYoSeVvbt+hHZ0Au+T+p1y+0Uyj9aMaGIeUTT6xdpRbWzDeYKvfOslPhggQMcsg==" }, "node_modules/it-to-stream/node_modules/p-defer": { "version": "3.0.0", - "license": "MIT", + "resolved": "https://registry.npmjs.org/p-defer/-/p-defer-3.0.0.tgz", + "integrity": "sha512-ugZxsxmtTln604yeYd29EGrNhazN2lywetzpKhfmQjW/VJmhpDmWbiX+h0zL8V91R0UXkhb3KtPmyq9PZw3aYw==", "engines": { "node": ">=8" } }, "node_modules/it-to-stream/node_modules/readable-stream": { "version": "3.6.0", - "license": "MIT", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", + "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", "dependencies": { "inherits": "^2.0.3", "string_decoder": "^1.1.1", @@ -9016,7 +9830,8 @@ }, "node_modules/it-ws": { "version": "5.0.6", - "license": "Apache-2.0 OR MIT", + "resolved": "https://registry.npmjs.org/it-ws/-/it-ws-5.0.6.tgz", + "integrity": "sha512-TEEJQaGtkxgP/nGVq8dq48nPT85Afu8kwwvtDFLj4rQLWRhZcb26RWdXLdn9qhXkWPiWbK5H7JWBW1Bebj/SuQ==", "dependencies": { "event-iterator": "^2.0.0", "iso-url": "^1.1.2", @@ -9031,7 +9846,8 @@ }, "node_modules/jake": { "version": "10.8.5", - "license": "Apache-2.0", + "resolved": "https://registry.npmjs.org/jake/-/jake-10.8.5.tgz", + "integrity": "sha512-sVpxYeuAhWt0OTWITwT98oyV0GsXyMlXCF+3L1SuafBVUIr/uILGRB+NqwkzhgXKvoJpDIpQvqkUALgdmQsQxw==", "dependencies": { "async": "^3.2.3", "chalk": "^4.0.2", @@ -9047,7 +9863,8 @@ }, "node_modules/jake/node_modules/ansi-styles": { "version": "4.3.0", - "license": "MIT", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", "dependencies": { "color-convert": "^2.0.1" }, @@ -9060,7 +9877,8 @@ }, "node_modules/jake/node_modules/brace-expansion": { "version": "1.1.11", - "license": "MIT", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", "dependencies": { "balanced-match": "^1.0.0", "concat-map": "0.0.1" @@ -9068,7 +9886,8 @@ }, "node_modules/jake/node_modules/chalk": { "version": "4.1.2", - "license": "MIT", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", "dependencies": { "ansi-styles": "^4.1.0", "supports-color": "^7.1.0" @@ -9082,7 +9901,8 @@ }, "node_modules/jake/node_modules/color-convert": { "version": "2.0.1", - "license": "MIT", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", "dependencies": { "color-name": "~1.1.4" }, @@ -9092,18 +9912,21 @@ }, "node_modules/jake/node_modules/color-name": { "version": "1.1.4", - "license": "MIT" + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" }, "node_modules/jake/node_modules/has-flag": { "version": "4.0.0", - "license": "MIT", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", "engines": { "node": ">=8" } }, "node_modules/jake/node_modules/minimatch": { "version": "3.1.2", - "license": "ISC", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", "dependencies": { "brace-expansion": "^1.1.7" }, @@ -9113,7 +9936,8 @@ }, "node_modules/jake/node_modules/supports-color": { "version": "7.2.0", - "license": "MIT", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", "dependencies": { "has-flag": "^4.0.0" }, @@ -9123,13 +9947,16 @@ }, "node_modules/jmespath": { "version": "0.15.0", + "resolved": "https://registry.npmjs.org/jmespath/-/jmespath-0.15.0.tgz", + "integrity": "sha512-+kHj8HXArPfpPEKGLZ+kB5ONRTCiGQXo8RQYL0hH8t6pWXUBBK5KkkQmTNOwKK4LEsd0yTsgtjJVm4UBSZea4w==", "engines": { "node": ">= 0.6.0" } }, "node_modules/joi": { "version": "17.7.0", - "license": "BSD-3-Clause", + "resolved": "https://registry.npmjs.org/joi/-/joi-17.7.0.tgz", + "integrity": "sha512-1/ugc8djfn93rTE3WRKdCzGGt/EtiYKxITMO4Wiv6q5JL1gl9ePt4kBsl1S499nbosspfctIQTpYIhSmHA3WAg==", "dependencies": { "@hapi/hoek": "^9.0.0", "@hapi/topo": "^5.0.0", @@ -9140,15 +9967,17 @@ }, "node_modules/joycon": { "version": "2.2.5", - "license": "MIT", + "resolved": "https://registry.npmjs.org/joycon/-/joycon-2.2.5.tgz", + "integrity": "sha512-YqvUxoOcVPnCp0VU1/56f+iKSdvIRJYPznH22BdXV3xMk75SFXhWeJkZ8C9XxUWt1b5x2X1SxuFygW1U0FmkEQ==", "engines": { "node": ">=6" } }, "node_modules/js-sdsl": { "version": "4.2.0", + "resolved": "https://registry.npmjs.org/js-sdsl/-/js-sdsl-4.2.0.tgz", + "integrity": "sha512-dyBIzQBDkCqCu+0upx25Y2jGdbTGxE9fshMsCdK0ViOongpV+n5tXRcZY9v7CaVQ79AGS9KA1KHtojxiM7aXSQ==", "dev": true, - "license": "MIT", "peer": true, "funding": { "type": "opencollective", @@ -9157,13 +9986,15 @@ }, "node_modules/js-tokens": { "version": "4.0.0", - "dev": true, - "license": "MIT" + "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", + "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==", + "dev": true }, "node_modules/js-yaml": { "version": "4.1.0", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", + "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", "dev": true, - "license": "MIT", "dependencies": { "argparse": "^2.0.1" }, @@ -9173,12 +10004,14 @@ }, "node_modules/jsbn": { "version": "1.1.0", - "license": "MIT" + "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-1.1.0.tgz", + "integrity": "sha512-4bYVV3aAMtDTTu4+xsDYa6sy9GyJ69/amsu9sYF2zqjiEoZA5xJi3BrfX3uY+/IekIu7MwdObdbDWpoZdBv3/A==" }, "node_modules/jsesc": { "version": "2.5.2", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz", + "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==", "dev": true, - "license": "MIT", "bin": { "jsesc": "bin/jsesc" }, @@ -9188,28 +10021,33 @@ }, "node_modules/json-buffer": { "version": "3.0.1", - "license": "MIT" + "resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.1.tgz", + "integrity": "sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==" }, "node_modules/json-schema-traverse": { "version": "0.4.1", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", + "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", "dev": true, - "license": "MIT", "peer": true }, "node_modules/json-stable-stringify-without-jsonify": { "version": "1.0.1", + "resolved": "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz", + "integrity": "sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==", "dev": true, - "license": "MIT", "peer": true }, "node_modules/json-stringify-safe": { "version": "5.0.1", - "license": "ISC" + "resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz", + "integrity": "sha512-ZClg6AaYvamvYEE82d3Iyd3vSSIjQ+odgjaTzRuO3s7toCdFKczob2i0zCh7JE8kWn17yvAWhUVxvqGwUalsRA==" }, "node_modules/json5": { "version": "2.2.3", + "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.3.tgz", + "integrity": "sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==", "dev": true, - "license": "MIT", "bin": { "json5": "lib/cli.js" }, @@ -9219,7 +10057,8 @@ }, "node_modules/jsondiffpatch": { "version": "0.4.1", - "license": "MIT", + "resolved": "https://registry.npmjs.org/jsondiffpatch/-/jsondiffpatch-0.4.1.tgz", + "integrity": "sha512-t0etAxTUk1w5MYdNOkZBZ8rvYYN5iL+2dHCCx/DpkFm/bW28M6y5nUS83D4XdZiHy35Fpaw6LBb+F88fHZnVCw==", "dependencies": { "chalk": "^2.3.0", "diff-match-patch": "^1.0.0" @@ -9233,46 +10072,54 @@ }, "node_modules/just-debounce-it": { "version": "3.2.0", - "license": "MIT" + "resolved": "https://registry.npmjs.org/just-debounce-it/-/just-debounce-it-3.2.0.tgz", + "integrity": "sha512-WXzwLL0745uNuedrCsCs3rpmfD6DBaf7uuVwaq98/8dafURfgQaBsSpjiPp5+CW6Vjltwy9cOGI6qE71b3T8iQ==" }, "node_modules/just-extend": { "version": "4.2.1", - "dev": true, - "license": "MIT" + "resolved": "https://registry.npmjs.org/just-extend/-/just-extend-4.2.1.tgz", + "integrity": "sha512-g3UB796vUFIY90VIv/WX3L2c8CS2MdWUww3CNrYmqza1Fg0DURc2K/O4YrnklBdQarSJ/y8JnJYDGc+1iumQjg==", + "dev": true }, "node_modules/just-safe-get": { "version": "4.2.0", - "license": "MIT" + "resolved": "https://registry.npmjs.org/just-safe-get/-/just-safe-get-4.2.0.tgz", + "integrity": "sha512-+tS4Bvgr/FnmYxOGbwziJ8I2BFk+cP1gQHm6rm7zo61w1SbxBwWGEq/Ryy9Gb6bvnloPq6pz7Bmm4a0rjTNlXA==" }, "node_modules/just-safe-set": { "version": "4.2.0", - "license": "MIT" + "resolved": "https://registry.npmjs.org/just-safe-set/-/just-safe-set-4.2.0.tgz", + "integrity": "sha512-109CZyFYcRAgR5hT/aA6V6ZKUfxItJYrZvtTikfIJ4sEewAE86fQARiF9BFzZlSn0gTLVGIMuZC7le2qQ+JJKw==" }, "node_modules/k-bucket": { "version": "5.1.0", - "license": "MIT", + "resolved": "https://registry.npmjs.org/k-bucket/-/k-bucket-5.1.0.tgz", + "integrity": "sha512-Fac7iINEovXIWU20GPnOMLUbjctiS+cnmyjC4zAUgvs3XPf1vo9akfCHkigftSic/jiKqKl+KA3a/vFcJbHyCg==", "dependencies": { "randombytes": "^2.1.0" } }, "node_modules/keyv": { "version": "4.5.2", - "license": "MIT", + "resolved": "https://registry.npmjs.org/keyv/-/keyv-4.5.2.tgz", + "integrity": "sha512-5MHbFaKn8cNSmVW7BYnijeAVlE4cYA/SVkifVgrh7yotnfhKmjuXpDKjrABLnT0SfHWV21P8ow07OGfRrNDg8g==", "dependencies": { "json-buffer": "3.0.1" } }, "node_modules/kind-of": { "version": "6.0.3", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", + "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==", "dev": true, - "license": "MIT", "engines": { "node": ">=0.10.0" } }, "node_modules/latest-version": { "version": "7.0.0", - "license": "MIT", + "resolved": "https://registry.npmjs.org/latest-version/-/latest-version-7.0.0.tgz", + "integrity": "sha512-KvNT4XqAMzdcL6ka6Tl3i2lYeFDgXNCuIX+xNx6ZMVR1dFq+idXd9FLKNMOIx0t9mJ9/HudyX4oZWXZQ0UJHeg==", "dependencies": { "package-json": "^8.1.0" }, @@ -9285,7 +10132,8 @@ }, "node_modules/level": { "version": "8.0.0", - "license": "MIT", + "resolved": "https://registry.npmjs.org/level/-/level-8.0.0.tgz", + "integrity": "sha512-ypf0jjAk2BWI33yzEaaotpq7fkOPALKAgDBxggO6Q9HGX2MRXn0wbP1Jn/tJv1gtL867+YOjOB49WaUF3UoJNQ==", "dependencies": { "browser-level": "^1.0.1", "classic-level": "^1.2.0" @@ -9300,14 +10148,16 @@ }, "node_modules/level-supports": { "version": "4.0.1", - "license": "MIT", + "resolved": "https://registry.npmjs.org/level-supports/-/level-supports-4.0.1.tgz", + "integrity": "sha512-PbXpve8rKeNcZ9C1mUicC9auIYFyGpkV9/i6g76tLgANwWhtG2v7I4xNBUlkn3lE2/dZF3Pi0ygYGtLc4RXXdA==", "engines": { "node": ">=12" } }, "node_modules/level-transcoder": { "version": "1.0.1", - "license": "MIT", + "resolved": "https://registry.npmjs.org/level-transcoder/-/level-transcoder-1.0.1.tgz", + "integrity": "sha512-t7bFwFtsQeD8cl8NIoQ2iwxA0CL/9IFw7/9gAjOonH0PWTTiRfY7Hq+Ejbsxh86tXobDQ6IOiddjNYIfOBs06w==", "dependencies": { "buffer": "^6.0.3", "module-error": "^1.0.1" @@ -9318,15 +10168,17 @@ }, "node_modules/leven": { "version": "2.1.0", - "license": "MIT", + "resolved": "https://registry.npmjs.org/leven/-/leven-2.1.0.tgz", + "integrity": "sha512-nvVPLpIHUxCUoRLrFqTgSxXJ614d8AgQoWl7zPe/2VadE8+1dpU3LBhowRuBAcuwruWtOdD8oYC9jDNJjXDPyA==", "engines": { "node": ">=0.10.0" } }, "node_modules/levn": { "version": "0.4.1", + "resolved": "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz", + "integrity": "sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==", "dev": true, - "license": "MIT", "peer": true, "dependencies": { "prelude-ls": "^1.2.1", @@ -9338,7 +10190,8 @@ }, "node_modules/libp2p": { "version": "0.40.0", - "license": "Apache-2.0 OR MIT", + "resolved": "https://registry.npmjs.org/libp2p/-/libp2p-0.40.0.tgz", + "integrity": "sha512-AeLaA+8KIhUhjpXZcs20+Pnf2wIBp+zdSYPD1IgGCF0PlMbTdCvaIqhPzpTSd3+e5k7NZlgpd/BvCOLgQbfm5Q==", "dependencies": { "@achingbrain/nat-port-mapper": "^1.0.3", "@libp2p/connection": "^4.0.2", @@ -9417,7 +10270,8 @@ }, "node_modules/libp2p/node_modules/@libp2p/interface-metrics": { "version": "3.0.0", - "license": "Apache-2.0 OR MIT", + "resolved": "https://registry.npmjs.org/@libp2p/interface-metrics/-/interface-metrics-3.0.0.tgz", + "integrity": "sha512-TxK63BrDalv0yW544608xfmg3rsbh31ykZzf7I1yjMCZpyIFOqLTH1WN4YQwXKNlMz/XURux99UTpGSRYl3nOA==", "dependencies": { "@libp2p/interface-peer-id": "^1.0.0", "it-stream-types": "^1.0.4" @@ -9429,7 +10283,8 @@ }, "node_modules/libp2p/node_modules/@libp2p/interface-peer-id": { "version": "1.1.2", - "license": "Apache-2.0 OR MIT", + "resolved": "https://registry.npmjs.org/@libp2p/interface-peer-id/-/interface-peer-id-1.1.2.tgz", + "integrity": "sha512-S5iyVzG2EUgxm4NLe8W4ya9kpKuGfHs7Wbbos0wOUB4GXsbIKgOOxIr4yf+xGFgtEBaoximvlLkpob6dn8VFgA==", "dependencies": { "multiformats": "^10.0.0" }, @@ -9440,7 +10295,8 @@ }, "node_modules/libp2p/node_modules/multiformats": { "version": "10.0.3", - "license": "Apache-2.0 OR MIT", + "resolved": "https://registry.npmjs.org/multiformats/-/multiformats-10.0.3.tgz", + "integrity": "sha512-K2yGSmstS/oEmYiEIieHb53jJCaqp4ERPDQAYrm5sV3UUrVDZeshJQCK6GHAKyIGufU1vAcbS0PdAAZmC7Tzcw==", "engines": { "node": ">=16.0.0", "npm": ">=7.0.0" @@ -9448,8 +10304,9 @@ }, "node_modules/locate-path": { "version": "6.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz", + "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==", "dev": true, - "license": "MIT", "dependencies": { "p-locate": "^5.0.0" }, @@ -9462,27 +10319,32 @@ }, "node_modules/lodash": { "version": "4.17.21", - "license": "MIT" + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", + "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==" }, "node_modules/lodash.camelcase": { "version": "4.3.0", - "license": "MIT" + "resolved": "https://registry.npmjs.org/lodash.camelcase/-/lodash.camelcase-4.3.0.tgz", + "integrity": "sha512-TwuEnCnxbc3rAvhf/LbG7tJUDzhqXyFnv3dtzLOPgCG/hODL7WFnsbwktkD7yUV0RrreP/l1PALq/YSg6VvjlA==" }, "node_modules/lodash.get": { "version": "4.4.2", - "dev": true, - "license": "MIT" + "resolved": "https://registry.npmjs.org/lodash.get/-/lodash.get-4.4.2.tgz", + "integrity": "sha512-z+Uw/vLuy6gQe8cfaFWD7p0wVv8fJl3mbzXh33RS+0oW2wvUqiRXiQ69gLWSLpgB5/6sU+r6BlQR0MBILadqTQ==", + "dev": true }, "node_modules/lodash.merge": { "version": "4.6.2", + "resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz", + "integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==", "dev": true, - "license": "MIT", "peer": true }, "node_modules/log-symbols": { "version": "4.1.0", + "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-4.1.0.tgz", + "integrity": "sha512-8XPvpAA8uyhfteu8pIvQxpJZ7SYYdpUivZpGy6sFsBuKRY/7rQGavedeB8aK+Zkyq6upMFVL/9AW6vOYzfRyLg==", "dev": true, - "license": "MIT", "dependencies": { "chalk": "^4.1.0", "is-unicode-supported": "^0.1.0" @@ -9496,8 +10358,9 @@ }, "node_modules/log-symbols/node_modules/ansi-styles": { "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", "dev": true, - "license": "MIT", "dependencies": { "color-convert": "^2.0.1" }, @@ -9510,8 +10373,9 @@ }, "node_modules/log-symbols/node_modules/chalk": { "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", "dev": true, - "license": "MIT", "dependencies": { "ansi-styles": "^4.1.0", "supports-color": "^7.1.0" @@ -9525,8 +10389,9 @@ }, "node_modules/log-symbols/node_modules/color-convert": { "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", "dev": true, - "license": "MIT", "dependencies": { "color-name": "~1.1.4" }, @@ -9536,21 +10401,24 @@ }, "node_modules/log-symbols/node_modules/color-name": { "version": "1.1.4", - "dev": true, - "license": "MIT" + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true }, "node_modules/log-symbols/node_modules/has-flag": { "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", "dev": true, - "license": "MIT", "engines": { "node": ">=8" } }, "node_modules/log-symbols/node_modules/supports-color": { "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", "dev": true, - "license": "MIT", "dependencies": { "has-flag": "^4.0.0" }, @@ -9560,11 +10428,13 @@ }, "node_modules/long": { "version": "4.0.0", - "license": "Apache-2.0" + "resolved": "https://registry.npmjs.org/long/-/long-4.0.0.tgz", + "integrity": "sha512-XsP+KhQif4bjX1kbuSiySJFNAehNxgLb6hPRGJ9QsUr8ajHkuXGdrHmFUTUUXhDwVX2R5bY4JNZEwbUiMhV+MA==" }, "node_modules/longbits": { "version": "1.1.0", - "license": "Apache-2.0 OR MIT", + "resolved": "https://registry.npmjs.org/longbits/-/longbits-1.1.0.tgz", + "integrity": "sha512-22U2exkkYy7sr7nuQJYx2NEZ2kEMsC69+BxM5h8auLvkVIJa+LwAB5mFIExnuW2dFuYXFOWsFMKXjaWiq/htYQ==", "dependencies": { "byte-access": "^1.0.1", "uint8arraylist": "^2.0.0" @@ -9576,14 +10446,16 @@ }, "node_modules/lower-case": { "version": "2.0.2", - "license": "MIT", + "resolved": "https://registry.npmjs.org/lower-case/-/lower-case-2.0.2.tgz", + "integrity": "sha512-7fm3l3NAF9WfN6W3JOmf5drwpVqX78JtoGJ3A6W0a6ZnldM41w2fV5D490psKFTpMds8TJse/eHLFFsNHHjHgg==", "dependencies": { "tslib": "^2.0.3" } }, "node_modules/lowercase-keys": { "version": "3.0.0", - "license": "MIT", + "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-3.0.0.tgz", + "integrity": "sha512-ozCC6gdQ+glXOQsveKD0YsDy8DSQFjDTz4zyzEHNV5+JP5D62LmfDZ6o1cycFx9ouG940M5dE8C8CTewdj2YWQ==", "engines": { "node": "^12.20.0 || ^14.13.1 || >=16.0.0" }, @@ -9593,7 +10465,8 @@ }, "node_modules/lru-cache": { "version": "6.0.0", - "license": "ISC", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", + "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", "dependencies": { "yallist": "^4.0.0" }, @@ -9603,8 +10476,9 @@ }, "node_modules/make-dir": { "version": "2.1.0", + "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-2.1.0.tgz", + "integrity": "sha512-LS9X+dc8KLxXCb8dni79fLIIUA5VyZoyjSMCwTluaXA0o27cCK0bhXkpgw+sTXVpPy/lSO57ilRixqk0vDmtRA==", "dev": true, - "license": "MIT", "dependencies": { "pify": "^4.0.1", "semver": "^5.6.0" @@ -9615,20 +10489,23 @@ }, "node_modules/make-dir/node_modules/semver": { "version": "5.7.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", + "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", "dev": true, - "license": "ISC", "bin": { "semver": "bin/semver" } }, "node_modules/make-error": { "version": "1.3.6", - "dev": true, - "license": "ISC" + "resolved": "https://registry.npmjs.org/make-error/-/make-error-1.3.6.tgz", + "integrity": "sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw==", + "dev": true }, "node_modules/merge-options": { "version": "3.0.4", - "license": "MIT", + "resolved": "https://registry.npmjs.org/merge-options/-/merge-options-3.0.4.tgz", + "integrity": "sha512-2Sug1+knBjkaMsMgf1ctR1Ujx+Ayku4EdJN4Z+C2+JzoeF7A3OZ9KM2GY0CpQS51NR61LTurMJrRKPhSs3ZRTQ==", "dependencies": { "is-plain-obj": "^2.1.0" }, @@ -9638,20 +10515,23 @@ }, "node_modules/merge-stream": { "version": "2.0.0", - "license": "MIT" + "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz", + "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==" }, "node_modules/merge2": { "version": "1.4.1", + "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", + "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==", "dev": true, - "license": "MIT", "engines": { "node": ">= 8" } }, "node_modules/micromatch": { "version": "4.0.5", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.5.tgz", + "integrity": "sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==", "dev": true, - "license": "MIT", "dependencies": { "braces": "^3.0.2", "picomatch": "^2.3.1" @@ -9662,14 +10542,16 @@ }, "node_modules/mime-db": { "version": "1.52.0", - "license": "MIT", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", + "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==", "engines": { "node": ">= 0.6" } }, "node_modules/mime-types": { "version": "2.1.35", - "license": "MIT", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz", + "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==", "dependencies": { "mime-db": "1.52.0" }, @@ -9679,7 +10561,8 @@ }, "node_modules/mimic-fn": { "version": "4.0.0", - "license": "MIT", + "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-4.0.0.tgz", + "integrity": "sha512-vqiC06CuhBTUdZH+RYl8sFrL096vA45Ok5ISO6sE/Mr1jRbGH4Csnhi8f3wKVl7x8mO4Au7Ir9D3Oyv1VYMFJw==", "engines": { "node": ">=12" }, @@ -9689,7 +10572,8 @@ }, "node_modules/mimic-response": { "version": "4.0.0", - "license": "MIT", + "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-4.0.0.tgz", + "integrity": "sha512-e5ISH9xMYU0DzrT+jl8q2ze9D6eWBto+I8CNpe+VI+K2J/F/k3PdkdTdz4wvGVH4NTpo+NRYTVIuMQEMMcsLqg==", "engines": { "node": "^12.20.0 || ^14.13.1 || >=16.0.0" }, @@ -9699,7 +10583,8 @@ }, "node_modules/minimatch": { "version": "5.0.1", - "license": "ISC", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.0.1.tgz", + "integrity": "sha512-nLDxIFRyhDblz3qMuq+SoRZED4+miJ/G+tdDrjkkkRnjAsBexeGpgjLEQ0blJy7rHhR2b93rhQY4SvyWu9v03g==", "dependencies": { "brace-expansion": "^2.0.1" }, @@ -9709,14 +10594,16 @@ }, "node_modules/minimist": { "version": "1.2.7", - "license": "MIT", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.7.tgz", + "integrity": "sha512-bzfL1YUZsP41gmu/qjrEk0Q6i2ix/cVeAhbCbqH9u3zYutS1cLg00qhrD0M2MVdCcx4Sc0UpP2eBWo9rotpq6g==", "funding": { "url": "https://github.com/sponsors/ljharb" } }, "node_modules/minipass": { "version": "4.0.0", - "license": "ISC", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-4.0.0.tgz", + "integrity": "sha512-g2Uuh2jEKoht+zvO6vJqXmYpflPqzRBT+Th2h01DKh5z7wbY/AZ2gCQ78cP70YoHPyFdY30YBV5WxgLOEwOykw==", "dependencies": { "yallist": "^4.0.0" }, @@ -9726,7 +10613,8 @@ }, "node_modules/minizlib": { "version": "2.1.2", - "license": "MIT", + "resolved": "https://registry.npmjs.org/minizlib/-/minizlib-2.1.2.tgz", + "integrity": "sha512-bAxsR8BVfj60DWXHE3u30oHzfl4G7khkSuPW+qvpd7jFRHm7dLxOjUk1EHACJ/hxLY8phGJ0YhYHZo7jil7Qdg==", "dependencies": { "minipass": "^3.0.0", "yallist": "^4.0.0" @@ -9737,7 +10625,8 @@ }, "node_modules/minizlib/node_modules/minipass": { "version": "3.3.6", - "license": "ISC", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.3.6.tgz", + "integrity": "sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==", "dependencies": { "yallist": "^4.0.0" }, @@ -9747,7 +10636,8 @@ }, "node_modules/mkdirp": { "version": "1.0.4", - "license": "MIT", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", + "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==", "bin": { "mkdirp": "bin/cmd.js" }, @@ -9757,8 +10647,9 @@ }, "node_modules/mocha": { "version": "10.2.0", + "resolved": "https://registry.npmjs.org/mocha/-/mocha-10.2.0.tgz", + "integrity": "sha512-IDY7fl/BecMwFHzoqF2sg/SHHANeBoMMXFlS9r0OXKDssYE1M5O43wUY/9BVPeIvfH2zmEbBfseqN9gBQZzXkg==", "dev": true, - "license": "MIT", "dependencies": { "ansi-colors": "4.1.1", "browser-stdout": "1.3.1", @@ -9796,8 +10687,9 @@ }, "node_modules/mocha/node_modules/cliui": { "version": "7.0.4", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-7.0.4.tgz", + "integrity": "sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==", "dev": true, - "license": "ISC", "dependencies": { "string-width": "^4.2.0", "strip-ansi": "^6.0.0", @@ -9806,8 +10698,9 @@ }, "node_modules/mocha/node_modules/escape-string-regexp": { "version": "4.0.0", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", + "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", "dev": true, - "license": "MIT", "engines": { "node": ">=10" }, @@ -9817,21 +10710,24 @@ }, "node_modules/mocha/node_modules/has-flag": { "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", "dev": true, - "license": "MIT", "engines": { "node": ">=8" } }, "node_modules/mocha/node_modules/ms": { "version": "2.1.3", - "dev": true, - "license": "MIT" + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", + "dev": true }, "node_modules/mocha/node_modules/supports-color": { "version": "8.1.1", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", + "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", "dev": true, - "license": "MIT", "dependencies": { "has-flag": "^4.0.0" }, @@ -9844,8 +10740,9 @@ }, "node_modules/mocha/node_modules/yargs": { "version": "16.2.0", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-16.2.0.tgz", + "integrity": "sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==", "dev": true, - "license": "MIT", "dependencies": { "cliui": "^7.0.2", "escalade": "^3.1.1", @@ -9861,21 +10758,24 @@ }, "node_modules/mock-socket": { "version": "9.1.5", - "license": "MIT", + "resolved": "https://registry.npmjs.org/mock-socket/-/mock-socket-9.1.5.tgz", + "integrity": "sha512-3DeNIcsQixWHHKk6NdoBhWI4t1VMj5/HzfnI1rE/pLl5qKx7+gd4DNA07ehTaZ6MoUU053si6Hd+YtiM/tQZfg==", "engines": { "node": ">= 8" } }, "node_modules/module-error": { "version": "1.0.2", - "license": "MIT", + "resolved": "https://registry.npmjs.org/module-error/-/module-error-1.0.2.tgz", + "integrity": "sha512-0yuvsqSCv8LbaOKhnsQ/T5JhyFlCYLPXK3U2sgV10zoKQwzs/MyfuQUOZQ1V/6OCOJsK/TRgNVrPuPDqtdMFtA==", "engines": { "node": ">=10" } }, "node_modules/mortice": { "version": "3.0.1", - "license": "Apache-2.0 OR MIT", + "resolved": "https://registry.npmjs.org/mortice/-/mortice-3.0.1.tgz", + "integrity": "sha512-eyDUsl1nCR9+JtNksKnaESLP9MgAXCA4w1LTtsmOSQNsThnv++f36rrBu5fC/fdGIwTJZmbiaR/QewptH93pYA==", "dependencies": { "nanoid": "^4.0.0", "observable-webworkers": "^2.0.1", @@ -9889,7 +10789,8 @@ }, "node_modules/mortice/node_modules/nanoid": { "version": "4.0.0", - "license": "MIT", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-4.0.0.tgz", + "integrity": "sha512-IgBP8piMxe/gf73RTQx7hmnhwz0aaEXYakvqZyE302IXW3HyVNhdNGC+O2MwMAVhLEnvXlvKtGbtJf6wvHihCg==", "bin": { "nanoid": "bin/nanoid.js" }, @@ -9899,18 +10800,21 @@ }, "node_modules/mri": { "version": "1.1.4", - "license": "MIT", + "resolved": "https://registry.npmjs.org/mri/-/mri-1.1.4.tgz", + "integrity": "sha512-6y7IjGPm8AzlvoUrwAaw1tLnUBudaS3752vcd8JtrpGGQn+rXIe63LFVHm/YMwtqAuh+LJPCFdlLYPWM1nYn6w==", "engines": { "node": ">=4" } }, "node_modules/ms": { "version": "2.1.2", - "license": "MIT" + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" }, "node_modules/multicast-dns": { "version": "7.2.5", - "license": "MIT", + "resolved": "https://registry.npmjs.org/multicast-dns/-/multicast-dns-7.2.5.tgz", + "integrity": "sha512-2eznPJP8z2BFLX50tf0LuODrpINqP1RVIm/CObbTcBRITQgmC/TjcREF1NeTBzIcR5XO/ukWo+YHOjBbFwIupg==", "dependencies": { "dns-packet": "^5.2.2", "thunky": "^1.0.2" @@ -9921,7 +10825,8 @@ }, "node_modules/multiformats": { "version": "11.0.1", - "license": "Apache-2.0 OR MIT", + "resolved": "https://registry.npmjs.org/multiformats/-/multiformats-11.0.1.tgz", + "integrity": "sha512-atWruyH34YiknSdL5yeIir00EDlJRpHzELYQxG7Iy29eCyL+VrZHpPrX5yqlik3jnuqpLpRKVZ0SGVb9UzKaSA==", "engines": { "node": ">=16.0.0", "npm": ">=7.0.0" @@ -9929,14 +10834,16 @@ }, "node_modules/murmurhash3js-revisited": { "version": "3.0.0", - "license": "MIT", + "resolved": "https://registry.npmjs.org/murmurhash3js-revisited/-/murmurhash3js-revisited-3.0.0.tgz", + "integrity": "sha512-/sF3ee6zvScXMb1XFJ8gDsSnY+X8PbOyjIuBhtgis10W2Jx4ZjIhikUCIF9c4gpJxVnQIsPAFrSwTCuAjicP6g==", "engines": { "node": ">=8.0.0" } }, "node_modules/mutable-proxy": { "version": "1.0.0", - "license": "MIT", + "resolved": "https://registry.npmjs.org/mutable-proxy/-/mutable-proxy-1.0.0.tgz", + "integrity": "sha512-4OvNRr1DJpy2QuDUV74m+BWZ//n4gG4bmd21MzDSPqHEidIDWqwyOjcadU1LBMO3vXYGurVKjfBrxrSQIHFu9A==", "engines": { "node": ">=6.X.X", "npm": ">=3.X.X" @@ -9944,7 +10851,8 @@ }, "node_modules/nanoid": { "version": "3.3.3", - "license": "MIT", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.3.tgz", + "integrity": "sha512-p1sjXuopFs0xg+fPASzQ28agW1oHD7xDsd9Xkf3T15H3c/cifrFHVwrh74PdoklAPi+i7MdRsE47vm2r6JoB+w==", "bin": { "nanoid": "bin/nanoid.cjs" }, @@ -9954,46 +10862,54 @@ }, "node_modules/napi-macros": { "version": "2.0.0", - "license": "MIT" + "resolved": "https://registry.npmjs.org/napi-macros/-/napi-macros-2.0.0.tgz", + "integrity": "sha512-A0xLykHtARfueITVDernsAWdtIMbOJgKgcluwENp3AlsKN/PloyO10HtmoqnFAQAcxPkgZN7wdfPfEd0zNGxbg==" }, "node_modules/native-fetch": { "version": "4.0.2", - "license": "MIT", + "resolved": "https://registry.npmjs.org/native-fetch/-/native-fetch-4.0.2.tgz", + "integrity": "sha512-4QcVlKFtv2EYVS5MBgsGX5+NWKtbDbIECdUXDBGDMAZXq3Jkv9zf+y8iS7Ub8fEdga3GpYeazp9gauNqXHJOCg==", "peerDependencies": { "undici": "*" } }, "node_modules/natural-compare": { "version": "1.4.0", + "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", + "integrity": "sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==", "dev": true, - "license": "MIT", "peer": true }, "node_modules/natural-compare-lite": { "version": "1.4.0", - "dev": true, - "license": "MIT" + "resolved": "https://registry.npmjs.org/natural-compare-lite/-/natural-compare-lite-1.4.0.tgz", + "integrity": "sha512-Tj+HTDSJJKaZnfiuw+iaF9skdPpTo2GtEly5JHnWV/hfv2Qj/9RKsGISQtLh2ox3l5EAGw487hnBee0sIJ6v2g==", + "dev": true }, "node_modules/neo-async": { "version": "2.6.2", - "dev": true, - "license": "MIT" + "resolved": "https://registry.npmjs.org/neo-async/-/neo-async-2.6.2.tgz", + "integrity": "sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==", + "dev": true }, "node_modules/netmask": { "version": "2.0.2", - "license": "MIT", + "resolved": "https://registry.npmjs.org/netmask/-/netmask-2.0.2.tgz", + "integrity": "sha512-dBpDMdxv9Irdq66304OLfEmQ9tbNRFnFTuZiLo+bD+r332bBmMJ8GBLXklIXXgxd3+v9+KUnZaUR5PJMa75Gsg==", "engines": { "node": ">= 0.4.0" } }, "node_modules/next-tick": { "version": "1.1.0", - "license": "ISC" + "resolved": "https://registry.npmjs.org/next-tick/-/next-tick-1.1.0.tgz", + "integrity": "sha512-CXdUiJembsNjuToQvxayPZF9Vqht7hewsvy2sOWafLvi2awflj9mOC6bHIg50orX8IJvWKY9wYQ/zB2kogPslQ==" }, "node_modules/nise": { "version": "5.1.3", + "resolved": "https://registry.npmjs.org/nise/-/nise-5.1.3.tgz", + "integrity": "sha512-U597iWTTBBYIV72986jyU382/MMZ70ApWcRmkoF1AZ75bpqOtI3Gugv/6+0jLgoDOabmcSwYBkSSAWIp1eA5cg==", "dev": true, - "license": "BSD-3-Clause", "dependencies": { "@sinonjs/commons": "^2.0.0", "@sinonjs/fake-timers": "^7.0.4", @@ -10004,23 +10920,26 @@ }, "node_modules/nise/node_modules/@sinonjs/fake-timers": { "version": "7.1.2", + "resolved": "https://registry.npmjs.org/@sinonjs/fake-timers/-/fake-timers-7.1.2.tgz", + "integrity": "sha512-iQADsW4LBMISqZ6Ci1dupJL9pprqwcVFTcOsEmQOEhW+KLCVn/Y4Jrvg2k19fIHCp+iFprriYPTdRcQR8NbUPg==", "dev": true, - "license": "BSD-3-Clause", "dependencies": { "@sinonjs/commons": "^1.7.0" } }, "node_modules/nise/node_modules/@sinonjs/fake-timers/node_modules/@sinonjs/commons": { "version": "1.8.6", + "resolved": "https://registry.npmjs.org/@sinonjs/commons/-/commons-1.8.6.tgz", + "integrity": "sha512-Ky+XkAkqPZSm3NLBeUng77EBQl3cmeJhITaGHdYH8kjVB+aun3S4XBRti2zt17mtt0mIUDiNxYeoJm6drVvBJQ==", "dev": true, - "license": "BSD-3-Clause", "dependencies": { "type-detect": "4.0.8" } }, "node_modules/no-case": { "version": "3.0.4", - "license": "MIT", + "resolved": "https://registry.npmjs.org/no-case/-/no-case-3.0.4.tgz", + "integrity": "sha512-fgAN3jGAh+RoxUGZHTSOLJIqUc2wmoBwGR4tbpNAKmmovFoWq0OdRkb0VkldReO2a2iBT/OEulG9XSUc10r3zg==", "dependencies": { "lower-case": "^2.0.2", "tslib": "^2.0.3" @@ -10028,7 +10947,8 @@ }, "node_modules/nock": { "version": "13.3.0", - "license": "MIT", + "resolved": "https://registry.npmjs.org/nock/-/nock-13.3.0.tgz", + "integrity": "sha512-HHqYQ6mBeiMc+N038w8LkMpDCRquCHWeNmN3v6645P3NhN2+qXOBqvPqo7Rt1VyCMzKhJ733wZqw5B7cQVFNPg==", "dependencies": { "debug": "^4.1.0", "json-stringify-safe": "^5.0.1", @@ -10041,6 +10961,8 @@ }, "node_modules/node-domexception": { "version": "1.0.0", + "resolved": "https://registry.npmjs.org/node-domexception/-/node-domexception-1.0.0.tgz", + "integrity": "sha512-/jKZoMpw0F8GRwl4/eLROPA3cfcXtLApP0QzLmUT/HuPCZWyB7IY9ZrMeKw2O/nFIqPQB3PVM9aYm0F312AXDQ==", "funding": [ { "type": "github", @@ -10051,14 +10973,14 @@ "url": "https://paypal.me/jimmywarting" } ], - "license": "MIT", "engines": { "node": ">=10.5.0" } }, "node_modules/node-fetch": { "version": "3.3.0", - "license": "MIT", + "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-3.3.0.tgz", + "integrity": "sha512-BKwRP/O0UvoMKp7GNdwPlObhYGB5DQqwhEDQlNKuoqwVYSxkSZCSbHjnFFmUEtwSKRPU4kNK8PbDYYitwaE3QA==", "dependencies": { "data-uri-to-buffer": "^4.0.0", "fetch-blob": "^3.1.4", @@ -10074,14 +10996,16 @@ }, "node_modules/node-forge": { "version": "1.3.1", - "license": "(BSD-3-Clause OR GPL-2.0)", + "resolved": "https://registry.npmjs.org/node-forge/-/node-forge-1.3.1.tgz", + "integrity": "sha512-dPEtOeMvF9VMcYV/1Wb8CPoVAXtp6MKMlcbAt4ddqmGqUJ6fQZFXkNZNkNlfevtNkGtaSoXf/vNNNSvgrdXwtA==", "engines": { "node": ">= 6.13.0" } }, "node_modules/node-gyp-build": { "version": "4.5.0", - "license": "MIT", + "resolved": "https://registry.npmjs.org/node-gyp-build/-/node-gyp-build-4.5.0.tgz", + "integrity": "sha512-2iGbaQBV+ITgCz76ZEjmhUKAKVf7xfY1sRl4UiKQspfZMH2h06SyhNsnSVy50cwkFQDGLyif6m/6uFXHkOZ6rg==", "bin": { "node-gyp-build": "bin.js", "node-gyp-build-optional": "optional.js", @@ -10090,12 +11014,14 @@ }, "node_modules/node-releases": { "version": "2.0.8", - "dev": true, - "license": "MIT" + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.8.tgz", + "integrity": "sha512-dFSmB8fFHEH/s81Xi+Y/15DQY6VHW81nXRj86EMSL3lmuTmK1e+aT4wrFCkTbm+gSwkw4KpX+rT/pMM2c1mF+A==", + "dev": true }, "node_modules/nopt": { "version": "5.0.0", - "license": "ISC", + "resolved": "https://registry.npmjs.org/nopt/-/nopt-5.0.0.tgz", + "integrity": "sha512-Tbj67rffqceeLpcRXrT7vKAN8CwfPeIBgM7E6iBkmKLV7bEMwpGgYLGv0jACUsECaa/vuxP0IjEont6umdMgtQ==", "dependencies": { "abbrev": "1" }, @@ -10108,15 +11034,17 @@ }, "node_modules/normalize-path": { "version": "3.0.0", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", + "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", "dev": true, - "license": "MIT", "engines": { "node": ">=0.10.0" } }, "node_modules/normalize-url": { "version": "8.0.0", - "license": "MIT", + "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-8.0.0.tgz", + "integrity": "sha512-uVFpKhj5MheNBJRTiMZ9pE/7hD1QTeEvugSJW/OmLzAp78PB5O6adfMNTvmfKhXBkvCzC+rqifWcVYpGFwTjnw==", "engines": { "node": ">=14.16" }, @@ -10126,7 +11054,8 @@ }, "node_modules/npm-run-path": { "version": "5.1.0", - "license": "MIT", + "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-5.1.0.tgz", + "integrity": "sha512-sJOdmRGrY2sjNTRMbSvluQqg+8X7ZK61yvzBEIDhz4f8z1TZFYABsqjjCBd/0PUNE9M6QDgHJXQkGUEm7Q+l9Q==", "dependencies": { "path-key": "^4.0.0" }, @@ -10139,7 +11068,8 @@ }, "node_modules/npm-run-path/node_modules/path-key": { "version": "4.0.0", - "license": "MIT", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-4.0.0.tgz", + "integrity": "sha512-haREypq7xkM7ErfgIyA0z+Bj4AGKlMSdlQE2jvJo6huWD1EdkKYV+G/T4nq0YEF2vgTT8kqMFKo1uHn950r4SQ==", "engines": { "node": ">=12" }, @@ -10149,7 +11079,8 @@ }, "node_modules/npmlog": { "version": "5.0.1", - "license": "ISC", + "resolved": "https://registry.npmjs.org/npmlog/-/npmlog-5.0.1.tgz", + "integrity": "sha512-AqZtDUWOMKs1G/8lwylVjrdYgqA4d9nu8hc+0gzRxlDb1I10+FHBGMXs6aiQHFdCUUlqH99MUMuLfzWDNDtfxw==", "dependencies": { "are-we-there-yet": "^2.0.0", "console-control-strings": "^1.1.0", @@ -10159,21 +11090,24 @@ }, "node_modules/object-assign": { "version": "4.1.1", - "license": "MIT", + "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", + "integrity": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==", "engines": { "node": ">=0.10.0" } }, "node_modules/object-inspect": { "version": "1.12.2", - "license": "MIT", + "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.12.2.tgz", + "integrity": "sha512-z+cPxW0QGUp0mcqcsgQyLVRDoXFQbXOwBaqyF7VIgI4TWNQsDHrBpUQslRmIfAoYWdYzs6UlKJtB2XJpTaNSpQ==", "funding": { "url": "https://github.com/sponsors/ljharb" } }, "node_modules/observable-webworkers": { "version": "2.0.1", - "license": "Apache-2.0 OR MIT", + "resolved": "https://registry.npmjs.org/observable-webworkers/-/observable-webworkers-2.0.1.tgz", + "integrity": "sha512-JI1vB0u3pZjoQKOK1ROWzp0ygxSi7Yb0iR+7UNsw4/Zn4cQ0P3R7XL38zac/Dy2tEA7Lg88/wIJTjF8vYXZ0uw==", "engines": { "node": ">=16.0.0", "npm": ">=7.0.0" @@ -10181,14 +11115,16 @@ }, "node_modules/once": { "version": "1.4.0", - "license": "ISC", + "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", + "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", "dependencies": { "wrappy": "1" } }, "node_modules/onetime": { "version": "6.0.0", - "license": "MIT", + "resolved": "https://registry.npmjs.org/onetime/-/onetime-6.0.0.tgz", + "integrity": "sha512-1FlR+gjXK7X+AsAHso35MnyN5KqGwJRi/31ft6x0M194ht7S+rWAvd7PHss9xSKMzE0asv1pyIHaJYq+BbacAQ==", "dependencies": { "mimic-fn": "^4.0.0" }, @@ -10201,8 +11137,9 @@ }, "node_modules/optionator": { "version": "0.9.1", + "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.1.tgz", + "integrity": "sha512-74RlY5FCnhq4jRxVUPKDaRwrVNXMqsGsiW6AJw4XK8hmtm10wC0ypZBLw5IIp85NZMr91+qd1RvvENwg7jjRFw==", "dev": true, - "license": "MIT", "peer": true, "dependencies": { "deep-is": "^0.1.3", @@ -10218,14 +11155,16 @@ }, "node_modules/p-cancelable": { "version": "3.0.0", - "license": "MIT", + "resolved": "https://registry.npmjs.org/p-cancelable/-/p-cancelable-3.0.0.tgz", + "integrity": "sha512-mlVgR3PGuzlo0MmTdk4cXqXWlwQDLnONTAg6sm62XkMJEiRxN3GL3SffkYvqwonbkJBcrI7Uvv5Zh9yjvn2iUw==", "engines": { "node": ">=12.20" } }, "node_modules/p-defer": { "version": "4.0.0", - "license": "MIT", + "resolved": "https://registry.npmjs.org/p-defer/-/p-defer-4.0.0.tgz", + "integrity": "sha512-Vb3QRvQ0Y5XnF40ZUWW7JfLogicVh/EnA5gBIvKDJoYpeI82+1E3AlB9yOcKFS0AhHrWVnAQO39fbR0G99IVEQ==", "engines": { "node": ">=12" }, @@ -10235,7 +11174,8 @@ }, "node_modules/p-event": { "version": "5.0.1", - "license": "MIT", + "resolved": "https://registry.npmjs.org/p-event/-/p-event-5.0.1.tgz", + "integrity": "sha512-dd589iCQ7m1L0bmC5NLlVYfy3TbBEsMUfWx9PyAgPeIcFZ/E2yaTZ4Rz4MiBmmJShviiftHVXOqfnfzJ6kyMrQ==", "dependencies": { "p-timeout": "^5.0.2" }, @@ -10248,7 +11188,8 @@ }, "node_modules/p-event/node_modules/p-timeout": { "version": "5.1.0", - "license": "MIT", + "resolved": "https://registry.npmjs.org/p-timeout/-/p-timeout-5.1.0.tgz", + "integrity": "sha512-auFDyzzzGZZZdHz3BtET9VEz0SE/uMEAx7uWfGPucfzEwwe/xH0iVeZibQmANYE/hp9T2+UUZT5m+BKyrDp3Ew==", "engines": { "node": ">=12" }, @@ -10258,7 +11199,8 @@ }, "node_modules/p-fifo": { "version": "1.0.0", - "license": "MIT", + "resolved": "https://registry.npmjs.org/p-fifo/-/p-fifo-1.0.0.tgz", + "integrity": "sha512-IjoCxXW48tqdtDFz6fqo5q1UfFVjjVZe8TC1QRflvNUJtNfCUhxOUw6MOVZhDPjqhSzc26xKdugsO17gmzd5+A==", "dependencies": { "fast-fifo": "^1.0.0", "p-defer": "^3.0.0" @@ -10266,15 +11208,17 @@ }, "node_modules/p-fifo/node_modules/p-defer": { "version": "3.0.0", - "license": "MIT", + "resolved": "https://registry.npmjs.org/p-defer/-/p-defer-3.0.0.tgz", + "integrity": "sha512-ugZxsxmtTln604yeYd29EGrNhazN2lywetzpKhfmQjW/VJmhpDmWbiX+h0zL8V91R0UXkhb3KtPmyq9PZw3aYw==", "engines": { "node": ">=8" } }, "node_modules/p-limit": { "version": "3.1.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", + "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", "dev": true, - "license": "MIT", "dependencies": { "yocto-queue": "^0.1.0" }, @@ -10287,8 +11231,9 @@ }, "node_modules/p-locate": { "version": "5.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz", + "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==", "dev": true, - "license": "MIT", "dependencies": { "p-limit": "^3.0.2" }, @@ -10301,7 +11246,8 @@ }, "node_modules/p-queue": { "version": "7.3.0", - "license": "MIT", + "resolved": "https://registry.npmjs.org/p-queue/-/p-queue-7.3.0.tgz", + "integrity": "sha512-5fP+yVQ0qp0rEfZoDTlP2c3RYBgxvRsw30qO+VtPPc95lyvSG+x6USSh1TuLB4n96IO6I8/oXQGsTgtna4q2nQ==", "dependencies": { "eventemitter3": "^4.0.7", "p-timeout": "^5.0.2" @@ -10315,7 +11261,8 @@ }, "node_modules/p-queue/node_modules/p-timeout": { "version": "5.1.0", - "license": "MIT", + "resolved": "https://registry.npmjs.org/p-timeout/-/p-timeout-5.1.0.tgz", + "integrity": "sha512-auFDyzzzGZZZdHz3BtET9VEz0SE/uMEAx7uWfGPucfzEwwe/xH0iVeZibQmANYE/hp9T2+UUZT5m+BKyrDp3Ew==", "engines": { "node": ">=12" }, @@ -10325,7 +11272,8 @@ }, "node_modules/p-reflect": { "version": "3.1.0", - "license": "MIT", + "resolved": "https://registry.npmjs.org/p-reflect/-/p-reflect-3.1.0.tgz", + "integrity": "sha512-3sG3UlpisPSaX+o7u2q01hIQmrpkvdl5GSO1ZwL7pfc5kHB2bPF0eFNCfYTrW1/LTUdgmPwBAvmT0Zr8eSmaAQ==", "engines": { "node": ">=12" }, @@ -10335,7 +11283,8 @@ }, "node_modules/p-retry": { "version": "5.1.2", - "license": "MIT", + "resolved": "https://registry.npmjs.org/p-retry/-/p-retry-5.1.2.tgz", + "integrity": "sha512-couX95waDu98NfNZV+i/iLt+fdVxmI7CbrrdC2uDWfPdUAApyxT4wmDlyOtR5KtTDmkDO0zDScDjDou9YHhd9g==", "dependencies": { "@types/retry": "0.12.1", "retry": "^0.13.1" @@ -10349,7 +11298,8 @@ }, "node_modules/p-settle": { "version": "5.1.0", - "license": "MIT", + "resolved": "https://registry.npmjs.org/p-settle/-/p-settle-5.1.0.tgz", + "integrity": "sha512-ujR6UFfh09ziOKyC5aaJak5ZclsjlLw57SYtFZg6yllMofyygnaibQRZ4jf6QPWqoOCGUXyb1cxUKELeAyKO7g==", "dependencies": { "p-limit": "^4.0.0", "p-reflect": "^3.1.0" @@ -10363,7 +11313,8 @@ }, "node_modules/p-settle/node_modules/p-limit": { "version": "4.0.0", - "license": "MIT", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-4.0.0.tgz", + "integrity": "sha512-5b0R4txpzjPWVw/cXXUResoD4hb6U/x9BH08L7nw+GN1sezDzPdxeRvpc9c433fZhBan/wusjbCsqwqm4EIBIQ==", "dependencies": { "yocto-queue": "^1.0.0" }, @@ -10376,7 +11327,8 @@ }, "node_modules/p-settle/node_modules/yocto-queue": { "version": "1.0.0", - "license": "MIT", + "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-1.0.0.tgz", + "integrity": "sha512-9bnSc/HEW2uRy67wc+T8UwauLuPJVn28jb+GtJY16iiKWyvmYJRXVT4UamsAEGQfPohgr2q4Tq0sQbQlxTfi1g==", "engines": { "node": ">=12.20" }, @@ -10386,7 +11338,8 @@ }, "node_modules/p-timeout": { "version": "6.0.0", - "license": "MIT", + "resolved": "https://registry.npmjs.org/p-timeout/-/p-timeout-6.0.0.tgz", + "integrity": "sha512-5iS61MOdUMemWH9CORQRxVXTp9g5K8rPnI9uQpo97aWgsH3vVXKjkIhDi+OgIDmN3Ly9+AZ2fZV01Wut1yzfKA==", "engines": { "node": ">=14.16" }, @@ -10396,19 +11349,22 @@ }, "node_modules/p-try": { "version": "2.2.0", + "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", + "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==", "dev": true, - "license": "MIT", "engines": { "node": ">=6" } }, "node_modules/p-try-each": { "version": "1.0.1", - "license": "MIT" + "resolved": "https://registry.npmjs.org/p-try-each/-/p-try-each-1.0.1.tgz", + "integrity": "sha512-WyUjRAvK4CG9DUW21ZsNYcBj6guN7pgZAOFR8mUtyNXyPC5WUo3L48nxI5TsGEZ+VJhZXzyeH/Sxi2lxYcPp3A==" }, "node_modules/package-json": { "version": "8.1.0", - "license": "MIT", + "resolved": "https://registry.npmjs.org/package-json/-/package-json-8.1.0.tgz", + "integrity": "sha512-hySwcV8RAWeAfPsXb9/HGSPn8lwDnv6fabH+obUZKX169QknRkRhPxd1yMubpKDskLFATkl3jHpNtVtDPFA0Wg==", "dependencies": { "got": "^12.1.0", "registry-auth-token": "^5.0.1", @@ -10424,7 +11380,8 @@ }, "node_modules/package-json/node_modules/semver": { "version": "7.3.8", - "license": "ISC", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.8.tgz", + "integrity": "sha512-NB1ctGL5rlHrPJtFDVIVzTyQylMLu9N9VICA6HSFJo8MCGVTMW6gfpicwKmmK/dAjTOrqu5l63JJOpDSrAis3A==", "dependencies": { "lru-cache": "^6.0.0" }, @@ -10437,11 +11394,13 @@ }, "node_modules/pako": { "version": "2.1.0", - "license": "(MIT AND Zlib)" + "resolved": "https://registry.npmjs.org/pako/-/pako-2.1.0.tgz", + "integrity": "sha512-w+eufiZ1WuJYgPXbV/PO3NCMEc3xqylkKHzp8bxp1uW4qaSNQUkwmLLEc3kKsfz8lpV1F8Ht3U1Cm+9Srog2ug==" }, "node_modules/param-case": { "version": "3.0.4", - "license": "MIT", + "resolved": "https://registry.npmjs.org/param-case/-/param-case-3.0.4.tgz", + "integrity": "sha512-RXlj7zCYokReqWpOPH9oYivUzLYZ5vAPIfEmCTNViosC78F8F0H9y7T7gG2M39ymgutxF5gcFEsyZQSph9Bp3A==", "dependencies": { "dot-case": "^3.0.4", "tslib": "^2.0.3" @@ -10449,8 +11408,9 @@ }, "node_modules/parent-module": { "version": "1.0.1", + "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz", + "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==", "dev": true, - "license": "MIT", "peer": true, "dependencies": { "callsites": "^3.0.0" @@ -10461,11 +11421,13 @@ }, "node_modules/parse-duration": { "version": "1.0.2", - "license": "MIT" + "resolved": "https://registry.npmjs.org/parse-duration/-/parse-duration-1.0.2.tgz", + "integrity": "sha512-Dg27N6mfok+ow1a2rj/nRjtCfaKrHUZV2SJpEn/s8GaVUSlf4GGRCRP1c13Hj+wfPKVMrFDqLMLITkYKgKxyyg==" }, "node_modules/pascal-case": { "version": "3.1.2", - "license": "MIT", + "resolved": "https://registry.npmjs.org/pascal-case/-/pascal-case-3.1.2.tgz", + "integrity": "sha512-uWlGT3YSnK9x3BQJaOdcZwrnV6hPpd8jFH1/ucpiLRPh/2zCVJKS19E4GvYHvaCcACn3foXZ0cLB9Wrx1KGe5g==", "dependencies": { "no-case": "^3.0.4", "tslib": "^2.0.3" @@ -10473,7 +11435,8 @@ }, "node_modules/path-case": { "version": "3.0.4", - "license": "MIT", + "resolved": "https://registry.npmjs.org/path-case/-/path-case-3.0.4.tgz", + "integrity": "sha512-qO4qCFjXqVTrcbPt/hQfhTQ+VhFsqNKOPtytgNKkKxSoEp3XPUQ8ObFuePylOIok5gjn69ry8XiULxCwot3Wfg==", "dependencies": { "dot-case": "^3.0.4", "tslib": "^2.0.3" @@ -10481,45 +11444,51 @@ }, "node_modules/path-exists": { "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", + "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", "dev": true, - "license": "MIT", "engines": { "node": ">=8" } }, "node_modules/path-is-absolute": { "version": "1.0.1", - "license": "MIT", + "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", + "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==", "engines": { "node": ">=0.10.0" } }, "node_modules/path-key": { "version": "3.1.1", - "license": "MIT", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", + "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", "engines": { "node": ">=8" } }, "node_modules/path-to-regexp": { "version": "1.8.0", + "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-1.8.0.tgz", + "integrity": "sha512-n43JRhlUKUAlibEJhPeir1ncUID16QnEjNpwzNdO3Lm4ywrBpBZ5oLD0I6br9evr1Y9JTqwRtAh7JLoOzAQdVA==", "dev": true, - "license": "MIT", "dependencies": { "isarray": "0.0.1" } }, "node_modules/path-type": { "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz", + "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==", "dev": true, - "license": "MIT", "engines": { "node": ">=8" } }, "node_modules/peek-readable": { "version": "5.0.0", - "license": "MIT", + "resolved": "https://registry.npmjs.org/peek-readable/-/peek-readable-5.0.0.tgz", + "integrity": "sha512-YtCKvLUOvwtMGmrniQPdO7MwPjgkFBtFIrmfSbYmYuq3tKDV/mcfAhBth1+C3ru7uXIZasc/pHnb+YDYNkkj4A==", "engines": { "node": ">=14.16" }, @@ -10530,13 +11499,15 @@ }, "node_modules/picocolors": { "version": "1.0.0", - "dev": true, - "license": "ISC" + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz", + "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==", + "dev": true }, "node_modules/picomatch": { "version": "2.3.1", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", + "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", "dev": true, - "license": "MIT", "engines": { "node": ">=8.6" }, @@ -10546,15 +11517,17 @@ }, "node_modules/pify": { "version": "4.0.1", + "resolved": "https://registry.npmjs.org/pify/-/pify-4.0.1.tgz", + "integrity": "sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==", "dev": true, - "license": "MIT", "engines": { "node": ">=6" } }, "node_modules/pino": { "version": "6.14.0", - "license": "MIT", + "resolved": "https://registry.npmjs.org/pino/-/pino-6.14.0.tgz", + "integrity": "sha512-iuhEDel3Z3hF9Jfe44DPXR8l07bhjuFY3GMHIXbjnY9XcafbyDDwl2sN2vw2GjMPf5Nkoe+OFao7ffn9SXaKDg==", "dependencies": { "fast-redact": "^3.0.0", "fast-safe-stringify": "^2.0.8", @@ -10570,7 +11543,8 @@ }, "node_modules/pino-pretty": { "version": "4.8.0", - "license": "MIT", + "resolved": "https://registry.npmjs.org/pino-pretty/-/pino-pretty-4.8.0.tgz", + "integrity": "sha512-mhQfHG4rw5ZFpWL44m0Utjo4GC2+HMfdNvxyA8lLw0sIqn6fCf7uQe6dPckUcW/obly+OQHD7B/MTso6LNizYw==", "dependencies": { "@hapi/bourne": "^2.0.0", "args": "^5.0.1", @@ -10591,7 +11565,8 @@ }, "node_modules/pino-pretty/node_modules/ansi-styles": { "version": "4.3.0", - "license": "MIT", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", "dependencies": { "color-convert": "^2.0.1" }, @@ -10604,7 +11579,8 @@ }, "node_modules/pino-pretty/node_modules/chalk": { "version": "4.1.2", - "license": "MIT", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", "dependencies": { "ansi-styles": "^4.1.0", "supports-color": "^7.1.0" @@ -10618,7 +11594,8 @@ }, "node_modules/pino-pretty/node_modules/color-convert": { "version": "2.0.1", - "license": "MIT", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", "dependencies": { "color-name": "~1.1.4" }, @@ -10628,18 +11605,21 @@ }, "node_modules/pino-pretty/node_modules/color-name": { "version": "1.1.4", - "license": "MIT" + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" }, "node_modules/pino-pretty/node_modules/has-flag": { "version": "4.0.0", - "license": "MIT", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", "engines": { "node": ">=8" } }, "node_modules/pino-pretty/node_modules/readable-stream": { "version": "3.6.0", - "license": "MIT", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", + "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", "dependencies": { "inherits": "^2.0.3", "string_decoder": "^1.1.1", @@ -10651,14 +11631,16 @@ }, "node_modules/pino-pretty/node_modules/split2": { "version": "3.2.2", - "license": "ISC", + "resolved": "https://registry.npmjs.org/split2/-/split2-3.2.2.tgz", + "integrity": "sha512-9NThjpgZnifTkJpzTZ7Eue85S49QwpNhZTq6GRJwObb6jnLFNGB7Qm73V5HewTROPyxD0C29xqmaI68bQtV+hg==", "dependencies": { "readable-stream": "^3.0.0" } }, "node_modules/pino-pretty/node_modules/supports-color": { "version": "7.2.0", - "license": "MIT", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", "dependencies": { "has-flag": "^4.0.0" }, @@ -10668,20 +11650,23 @@ }, "node_modules/pino-std-serializers": { "version": "3.2.0", - "license": "MIT" + "resolved": "https://registry.npmjs.org/pino-std-serializers/-/pino-std-serializers-3.2.0.tgz", + "integrity": "sha512-EqX4pwDPrt3MuOAAUBMU0Tk5kR/YcCM5fNPEzgCO2zJ5HfX0vbiH9HbJglnyeQsN96Kznae6MWD47pZB5avTrg==" }, "node_modules/pirates": { "version": "4.0.5", + "resolved": "https://registry.npmjs.org/pirates/-/pirates-4.0.5.tgz", + "integrity": "sha512-8V9+HQPupnaXMA23c5hvl69zXvTwTzyAYasnkb0Tts4XvO4CliqONMOnvlq26rkhLC3nWDFBJf73LU1e1VZLaQ==", "dev": true, - "license": "MIT", "engines": { "node": ">= 6" } }, "node_modules/pkg-dir": { "version": "3.0.0", + "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-3.0.0.tgz", + "integrity": "sha512-/E57AYkoeQ25qkxMj5PBOVgF8Kiu/h7cYS30Z5+R7WaiCCBfLq58ZI/dSeaEKb9WVJV5n/03QwrN3IeWIFllvw==", "dev": true, - "license": "MIT", "dependencies": { "find-up": "^3.0.0" }, @@ -10691,8 +11676,9 @@ }, "node_modules/pkg-dir/node_modules/find-up": { "version": "3.0.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz", + "integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==", "dev": true, - "license": "MIT", "dependencies": { "locate-path": "^3.0.0" }, @@ -10702,8 +11688,9 @@ }, "node_modules/pkg-dir/node_modules/locate-path": { "version": "3.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz", + "integrity": "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==", "dev": true, - "license": "MIT", "dependencies": { "p-locate": "^3.0.0", "path-exists": "^3.0.0" @@ -10714,8 +11701,9 @@ }, "node_modules/pkg-dir/node_modules/p-limit": { "version": "2.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", + "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", "dev": true, - "license": "MIT", "dependencies": { "p-try": "^2.0.0" }, @@ -10728,8 +11716,9 @@ }, "node_modules/pkg-dir/node_modules/p-locate": { "version": "3.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz", + "integrity": "sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==", "dev": true, - "license": "MIT", "dependencies": { "p-limit": "^2.0.0" }, @@ -10739,20 +11728,23 @@ }, "node_modules/pkg-dir/node_modules/path-exists": { "version": "3.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", + "integrity": "sha512-bpC7GYwiDYQ4wYLe+FA8lhRjhQCMcQGuSgGGqDkg/QerRWw9CmGRT0iSOVRSZJ29NMLZgIzqaljJ63oaL4NIJQ==", "dev": true, - "license": "MIT", "engines": { "node": ">=4" } }, "node_modules/platform": { "version": "1.3.6", - "license": "MIT" + "resolved": "https://registry.npmjs.org/platform/-/platform-1.3.6.tgz", + "integrity": "sha512-fnWVljUchTro6RiCFvCXBbNhJc2NijN7oIQxbwsyL0buWJPG85v81ehlHI9fXrJsMNgTofEoWIQeClKpgxFLrg==" }, "node_modules/prelude-ls": { "version": "1.2.1", + "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz", + "integrity": "sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==", "dev": true, - "license": "MIT", "peer": true, "engines": { "node": ">= 0.8.0" @@ -10760,8 +11752,9 @@ }, "node_modules/prettier": { "version": "2.7.1", + "resolved": "https://registry.npmjs.org/prettier/-/prettier-2.7.1.tgz", + "integrity": "sha512-ujppO+MkdPqoVINuDFDRLClm7D78qbDt0/NR+wp5FqEZOoTNAjPHWj17QRhu7geIHJfcNhRk1XVQmF8Bp3ye+g==", "dev": true, - "license": "MIT", "bin": { "prettier": "bin-prettier.js" }, @@ -10774,7 +11767,8 @@ }, "node_modules/pretty-bytes": { "version": "6.0.0", - "license": "MIT", + "resolved": "https://registry.npmjs.org/pretty-bytes/-/pretty-bytes-6.0.0.tgz", + "integrity": "sha512-6UqkYefdogmzqAZWzJ7laYeJnaXDy2/J+ZqiiMtS7t7OfpXWTlaeGMwX8U6EFvPV/YWWEKRkS8hKS4k60WHTOg==", "engines": { "node": "^14.13.1 || >=16.0.0" }, @@ -10784,7 +11778,8 @@ }, "node_modules/private-ip": { "version": "2.3.4", - "license": "MIT", + "resolved": "https://registry.npmjs.org/private-ip/-/private-ip-2.3.4.tgz", + "integrity": "sha512-ts/YFVwfBeLq61f9+KsOhXW6RH0wvY0gU50R6QZYzgFhggyyLK6WDFeYdjfi/HMnBm2hecLvsR3PB3JcRxDk+A==", "dependencies": { "ip-regex": "^4.3.0", "ipaddr.js": "^2.0.1", @@ -10794,14 +11789,16 @@ }, "node_modules/private-ip/node_modules/ip-regex": { "version": "4.3.0", - "license": "MIT", + "resolved": "https://registry.npmjs.org/ip-regex/-/ip-regex-4.3.0.tgz", + "integrity": "sha512-B9ZWJxHHOHUhUjCPrMpLD4xEq35bUTClHM1S6CBU5ixQnkZmwipwgc96vAd7AAGM9TGHvJR+Uss+/Ak6UphK+Q==", "engines": { "node": ">=8" } }, "node_modules/private-ip/node_modules/is-ip": { "version": "3.1.0", - "license": "MIT", + "resolved": "https://registry.npmjs.org/is-ip/-/is-ip-3.1.0.tgz", + "integrity": "sha512-35vd5necO7IitFPjd/YBeqwWnyDWbuLH9ZXQdMfDA8TEo7pv5X8yfrvVO3xbJbLUlERCMvf6X0hTUamQxCYJ9Q==", "dependencies": { "ip-regex": "^4.0.0" }, @@ -10811,25 +11808,29 @@ }, "node_modules/process": { "version": "0.11.10", - "license": "MIT", + "resolved": "https://registry.npmjs.org/process/-/process-0.11.10.tgz", + "integrity": "sha512-cdGef/drWFoydD1JsMzuFf8100nZl+GT+yacc2bEced5f9Rjk4z+WtFUTBu9PhOi9j/jfmBPu0mMEY4wIdAF8A==", "engines": { "node": ">= 0.6.0" } }, "node_modules/process-warning": { "version": "1.0.0", - "license": "MIT" + "resolved": "https://registry.npmjs.org/process-warning/-/process-warning-1.0.0.tgz", + "integrity": "sha512-du4wfLyj4yCZq1VupnVSZmRsPJsNuxoDQFdCFHLaYiEbFBD7QE0a+I4D7hOxrVnh78QE/YipFAj9lXHiXocV+Q==" }, "node_modules/progress": { "version": "2.0.3", - "license": "MIT", + "resolved": "https://registry.npmjs.org/progress/-/progress-2.0.3.tgz", + "integrity": "sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA==", "engines": { "node": ">=0.4.0" } }, "node_modules/prom-client": { "version": "14.1.1", - "license": "Apache-2.0", + "resolved": "https://registry.npmjs.org/prom-client/-/prom-client-14.1.1.tgz", + "integrity": "sha512-hFU32q7UZQ59bVJQGUtm3I2PrJ3gWvoCkilX9sF165ks1qflhugVCeK+S1JjJYHvyt3o5kj68+q3bchormjnzw==", "optional": true, "dependencies": { "tdigest": "^0.1.1" @@ -10840,14 +11841,16 @@ }, "node_modules/propagate": { "version": "2.0.1", - "license": "MIT", + "resolved": "https://registry.npmjs.org/propagate/-/propagate-2.0.1.tgz", + "integrity": "sha512-vGrhOavPSTz4QVNuBNdcNXePNdNMaO1xj9yBeH1ScQPjk/rhg9sSlCXPhMkFuaNNW/syTvYqsnbIJxMBfRbbag==", "engines": { "node": ">= 8" } }, "node_modules/proper-lockfile": { "version": "4.1.2", - "license": "MIT", + "resolved": "https://registry.npmjs.org/proper-lockfile/-/proper-lockfile-4.1.2.tgz", + "integrity": "sha512-TjNPblN4BwAWMXU8s9AEz4JmQxnD1NNL7bNOY/AKUzyamc379FWASUhc/K1pL2noVb+XmZKLL68cjzLsiOAMaA==", "dependencies": { "graceful-fs": "^4.2.4", "retry": "^0.12.0", @@ -10856,19 +11859,22 @@ }, "node_modules/proper-lockfile/node_modules/retry": { "version": "0.12.0", - "license": "MIT", + "resolved": "https://registry.npmjs.org/retry/-/retry-0.12.0.tgz", + "integrity": "sha512-9LkiTwjUh6rT555DtE9rTX+BKByPfrMzEAtnlEtdEwr3Nkffwiihqe2bWADg+OQRjt9gl6ICdmB/ZFDCGAtSow==", "engines": { "node": ">= 4" } }, "node_modules/proto-list": { "version": "1.2.4", - "license": "ISC" + "resolved": "https://registry.npmjs.org/proto-list/-/proto-list-1.2.4.tgz", + "integrity": "sha512-vtK/94akxsTMhe0/cbfpR+syPuszcuwhqVjJq26CuNDgFGj682oRBXOP5MJpv2r7JtE8MsiepGIqvvOTBwn2vA==" }, "node_modules/protobufjs": { "version": "7.1.2", + "resolved": "https://registry.npmjs.org/protobufjs/-/protobufjs-7.1.2.tgz", + "integrity": "sha512-4ZPTPkXCdel3+L81yw3dG6+Kq3umdWKh7Dc7GW/CpNk4SX3hK58iPCWeCyhVTDrbkNeKrYNZ7EojM5WDaEWTLQ==", "hasInstallScript": true, - "license": "BSD-3-Clause", "dependencies": { "@protobufjs/aspromise": "^1.1.2", "@protobufjs/base64": "^1.1.2", @@ -10889,11 +11895,13 @@ }, "node_modules/protobufjs/node_modules/long": { "version": "5.2.1", - "license": "Apache-2.0" + "resolved": "https://registry.npmjs.org/long/-/long-5.2.1.tgz", + "integrity": "sha512-GKSNGeNAtw8IryjjkhZxuKB3JzlcLTwjtiQCHKvqQet81I93kXslhDQruGI/QsddO83mcDToBVy7GqGS/zYf/A==" }, "node_modules/protons-runtime": { "version": "4.0.1", - "license": "Apache-2.0 OR MIT", + "resolved": "https://registry.npmjs.org/protons-runtime/-/protons-runtime-4.0.1.tgz", + "integrity": "sha512-SPeV+8TzJAp5UJYPV7vJkLRi08CP0DksxpKK60rcNaZSPkMBQwc0jQrmkHqwc5P0cYbZzKsdYrUBwRrDLrzTfQ==", "dependencies": { "protobufjs": "^7.0.0", "uint8arraylist": "^2.3.2" @@ -10908,7 +11916,8 @@ }, "node_modules/pump": { "version": "3.0.0", - "license": "MIT", + "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz", + "integrity": "sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==", "dependencies": { "end-of-stream": "^1.1.0", "once": "^1.3.1" @@ -10916,8 +11925,9 @@ }, "node_modules/punycode": { "version": "2.2.0", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.2.0.tgz", + "integrity": "sha512-LN6QV1IJ9ZhxWTNdktaPClrNfp8xdSAYS0Zk2ddX7XsXZAxckMHPCBcHRo0cTcEIgYPRiGEkmji3Idkh2yFtYw==", "dev": true, - "license": "MIT", "peer": true, "engines": { "node": ">=6" @@ -10925,7 +11935,8 @@ }, "node_modules/pupa": { "version": "3.1.0", - "license": "MIT", + "resolved": "https://registry.npmjs.org/pupa/-/pupa-3.1.0.tgz", + "integrity": "sha512-FLpr4flz5xZTSJxSeaheeMKN/EDzMdK7b8PTOC6a5PYFKTucWbdqjgqaEyH0shFiSJrVB1+Qqi4Tk19ccU6Aug==", "dependencies": { "escape-goat": "^4.0.0" }, @@ -10938,7 +11949,8 @@ }, "node_modules/qs": { "version": "6.11.0", - "license": "BSD-3-Clause", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.11.0.tgz", + "integrity": "sha512-MvjoMCJwEarSbUYk5O+nmoSzSutSsTwF85zcHPQ9OrlFoZOYIjaqBAJIqIXjptyD5vThxGq52Xu/MaJzRkIk4Q==", "dependencies": { "side-channel": "^1.0.4" }, @@ -10951,6 +11963,8 @@ }, "node_modules/queue-microtask": { "version": "1.2.3", + "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", + "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==", "funding": [ { "type": "github", @@ -10964,16 +11978,17 @@ "type": "consulting", "url": "https://feross.org/support" } - ], - "license": "MIT" + ] }, "node_modules/quick-format-unescaped": { "version": "4.0.4", - "license": "MIT" + "resolved": "https://registry.npmjs.org/quick-format-unescaped/-/quick-format-unescaped-4.0.4.tgz", + "integrity": "sha512-tYC1Q1hgyRuHgloV/YXs2w15unPVh8qfu/qCTfhTYamaw7fyhumKa2yGpdSo87vY32rIclj+4fWYQXUMs9EHvg==" }, "node_modules/quick-lru": { "version": "6.1.1", - "license": "MIT", + "resolved": "https://registry.npmjs.org/quick-lru/-/quick-lru-6.1.1.tgz", + "integrity": "sha512-S27GBT+F0NTRiehtbrgaSE1idUAJ5bX8dPAQTdylEyNlrdcH5X4Lz7Edz3DYzecbsCluD5zO8ZNEe04z3D3u6Q==", "engines": { "node": ">=12" }, @@ -10983,7 +11998,8 @@ }, "node_modules/rabin-wasm": { "version": "0.1.5", - "license": "MIT", + "resolved": "https://registry.npmjs.org/rabin-wasm/-/rabin-wasm-0.1.5.tgz", + "integrity": "sha512-uWgQTo7pim1Rnj5TuWcCewRDTf0PEFTSlaUjWP4eY9EbLV9em08v89oCz/WO+wRxpYuO36XEHp4wgYQnAgOHzA==", "dependencies": { "@assemblyscript/loader": "^0.9.4", "bl": "^5.0.0", @@ -10998,7 +12014,8 @@ }, "node_modules/rabin-wasm/node_modules/node-fetch": { "version": "2.6.7", - "license": "MIT", + "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.7.tgz", + "integrity": "sha512-ZjMPFEfVx5j+y2yF35Kzx5sF7kDzxuDj6ziH4FFbOp87zKDZNx8yExJIb05OGF4Nlt9IHFIMBkRl41VdvcNdbQ==", "dependencies": { "whatwg-url": "^5.0.0" }, @@ -11016,7 +12033,8 @@ }, "node_modules/rabin-wasm/node_modules/readable-stream": { "version": "3.6.0", - "license": "MIT", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", + "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", "dependencies": { "inherits": "^2.0.3", "string_decoder": "^1.1.1", @@ -11028,18 +12046,21 @@ }, "node_modules/randombytes": { "version": "2.1.0", - "license": "MIT", + "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz", + "integrity": "sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==", "dependencies": { "safe-buffer": "^5.1.0" } }, "node_modules/rate-limiter-flexible": { "version": "2.4.1", - "license": "ISC" + "resolved": "https://registry.npmjs.org/rate-limiter-flexible/-/rate-limiter-flexible-2.4.1.tgz", + "integrity": "sha512-dgH4T44TzKVO9CLArNto62hJOwlWJMLUjVVr/ii0uUzZXEXthDNr7/yefW5z/1vvHAfycc1tnuiYyNJ8CTRB3g==" }, "node_modules/rc": { "version": "1.2.8", - "license": "(BSD-2-Clause OR MIT OR Apache-2.0)", + "resolved": "https://registry.npmjs.org/rc/-/rc-1.2.8.tgz", + "integrity": "sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw==", "dependencies": { "deep-extend": "^0.6.0", "ini": "~1.3.0", @@ -11052,28 +12073,32 @@ }, "node_modules/rc/node_modules/strip-json-comments": { "version": "2.0.1", - "license": "MIT", + "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz", + "integrity": "sha512-4gB8na07fecVVkOI6Rs4e7T6NOTki5EmL7TUduTs6bu3EdnSycntVJ4re8kgZA+wx9IueI2Y11bfbgwtzuE0KQ==", "engines": { "node": ">=0.10.0" } }, "node_modules/react-native-fetch-api": { "version": "2.0.0", - "license": "MIT", + "resolved": "https://registry.npmjs.org/react-native-fetch-api/-/react-native-fetch-api-2.0.0.tgz", + "integrity": "sha512-GOA8tc1EVYLnHvma/TU9VTgLOyralO7eATRuCDchQveXW9Fr9vXygyq9iwqmM7YRZ8qRJfEt9xOS7OYMdJvRFw==", "dependencies": { "p-defer": "^3.0.0" } }, "node_modules/react-native-fetch-api/node_modules/p-defer": { "version": "3.0.0", - "license": "MIT", + "resolved": "https://registry.npmjs.org/p-defer/-/p-defer-3.0.0.tgz", + "integrity": "sha512-ugZxsxmtTln604yeYd29EGrNhazN2lywetzpKhfmQjW/VJmhpDmWbiX+h0zL8V91R0UXkhb3KtPmyq9PZw3aYw==", "engines": { "node": ">=8" } }, "node_modules/readable-stream": { "version": "4.3.0", - "license": "MIT", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-4.3.0.tgz", + "integrity": "sha512-MuEnA0lbSi7JS8XM+WNJlWZkHAAdm7gETHdFK//Q/mChGyj2akEFtdLZh32jSdkWGbRwCW9pn6g3LWDdDeZnBQ==", "dependencies": { "abort-controller": "^3.0.0", "buffer": "^6.0.3", @@ -11086,7 +12111,8 @@ }, "node_modules/readable-web-to-node-stream": { "version": "3.0.2", - "license": "MIT", + "resolved": "https://registry.npmjs.org/readable-web-to-node-stream/-/readable-web-to-node-stream-3.0.2.tgz", + "integrity": "sha512-ePeK6cc1EcKLEhJFt/AebMCLL+GgSKhuygrZ/GLaKZYEecIgIECf4UaUuaByiGtzckwR4ain9VzUh95T1exYGw==", "dependencies": { "readable-stream": "^3.6.0" }, @@ -11100,7 +12126,8 @@ }, "node_modules/readable-web-to-node-stream/node_modules/readable-stream": { "version": "3.6.0", - "license": "MIT", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", + "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", "dependencies": { "inherits": "^2.0.3", "string_decoder": "^1.1.1", @@ -11112,8 +12139,9 @@ }, "node_modules/readdirp": { "version": "3.6.0", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", + "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", "dev": true, - "license": "MIT", "dependencies": { "picomatch": "^2.2.1" }, @@ -11123,19 +12151,22 @@ }, "node_modules/receptacle": { "version": "1.3.2", - "license": "MIT", + "resolved": "https://registry.npmjs.org/receptacle/-/receptacle-1.3.2.tgz", + "integrity": "sha512-HrsFvqZZheusncQRiEE7GatOAETrARKV/lnfYicIm8lbvp/JQOdADOfhjBd2DajvoszEyxSM6RlAAIZgEoeu/A==", "dependencies": { "ms": "^2.1.1" } }, "node_modules/regenerator-runtime": { "version": "0.13.11", - "license": "MIT" + "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.11.tgz", + "integrity": "sha512-kY1AZVr2Ra+t+piVaJ4gxaFaReZVH40AKNo7UCX6W+dEwBo/2oZJzqfuN1qLq1oL45o56cPaTXELwrTh8Fpggg==" }, "node_modules/regexpp": { "version": "3.2.0", + "resolved": "https://registry.npmjs.org/regexpp/-/regexpp-3.2.0.tgz", + "integrity": "sha512-pq2bWo9mVD43nbts2wGv17XLiNLya+GklZ8kaDLV2Z08gDCsGpnKn9BFMepvWuHCbyVvY7J5o5+BVvoQbmlJLg==", "dev": true, - "license": "MIT", "engines": { "node": ">=8" }, @@ -11145,7 +12176,8 @@ }, "node_modules/registry-auth-token": { "version": "5.0.1", - "license": "MIT", + "resolved": "https://registry.npmjs.org/registry-auth-token/-/registry-auth-token-5.0.1.tgz", + "integrity": "sha512-UfxVOj8seK1yaIOiieV4FIP01vfBDLsY0H9sQzi9EbbUdJiuuBjJgLa1DpImXMNPnVkBD4eVxTEXcrZA6kfpJA==", "dependencies": { "@pnpm/npm-conf": "^1.0.4" }, @@ -11155,7 +12187,8 @@ }, "node_modules/registry-url": { "version": "6.0.1", - "license": "MIT", + "resolved": "https://registry.npmjs.org/registry-url/-/registry-url-6.0.1.tgz", + "integrity": "sha512-+crtS5QjFRqFCoQmvGduwYWEBng99ZvmFvF+cUJkGYF1L1BfU8C6Zp9T7f5vPAwyLkUExpvK+ANVZmGU49qi4Q==", "dependencies": { "rc": "1.2.8" }, @@ -11168,19 +12201,22 @@ }, "node_modules/require-directory": { "version": "2.1.1", - "license": "MIT", + "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", + "integrity": "sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==", "engines": { "node": ">=0.10.0" } }, "node_modules/resolve-alpn": { "version": "1.2.1", - "license": "MIT" + "resolved": "https://registry.npmjs.org/resolve-alpn/-/resolve-alpn-1.2.1.tgz", + "integrity": "sha512-0a1F4l73/ZFZOakJnQ3FvkJ2+gSTQWz/r2KE5OdDY0TxPm5h4GkqkWWfM47T7HsbnOtcJVEF4epCVy6u7Q3K+g==" }, "node_modules/resolve-from": { "version": "4.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", + "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", "dev": true, - "license": "MIT", "peer": true, "engines": { "node": ">=4" @@ -11188,7 +12224,8 @@ }, "node_modules/responselike": { "version": "3.0.0", - "license": "MIT", + "resolved": "https://registry.npmjs.org/responselike/-/responselike-3.0.0.tgz", + "integrity": "sha512-40yHxbNcl2+rzXvZuVkrYohathsSJlMTXKryG5y8uciHv1+xDLHQpgjG64JUO9nrEq2jGLH6IZ8BcZyw3wrweg==", "dependencies": { "lowercase-keys": "^3.0.0" }, @@ -11201,19 +12238,22 @@ }, "node_modules/retimer": { "version": "3.0.0", - "license": "MIT" + "resolved": "https://registry.npmjs.org/retimer/-/retimer-3.0.0.tgz", + "integrity": "sha512-WKE0j11Pa0ZJI5YIk0nflGI7SQsfl2ljihVy7ogh7DeQSeYAUi0ubZ/yEueGtDfUPk6GH5LRw1hBdLq4IwUBWA==" }, "node_modules/retry": { "version": "0.13.1", - "license": "MIT", + "resolved": "https://registry.npmjs.org/retry/-/retry-0.13.1.tgz", + "integrity": "sha512-XQBQ3I8W1Cge0Seh+6gjj03LbmRFWuoszgK9ooCpwYIrhhoO80pfq4cUkU5DkknwfOfFteRwlZ56PYOGYyFWdg==", "engines": { "node": ">= 4" } }, "node_modules/reusify": { "version": "1.0.4", + "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz", + "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==", "dev": true, - "license": "MIT", "engines": { "iojs": ">=1.0.0", "node": ">=0.10.0" @@ -11221,11 +12261,13 @@ }, "node_modules/rfdc": { "version": "1.3.0", - "license": "MIT" + "resolved": "https://registry.npmjs.org/rfdc/-/rfdc-1.3.0.tgz", + "integrity": "sha512-V2hovdzFbOi77/WajaSMXk2OLm+xNIeQdMMuB7icj7bk6zi2F8GGAxigcnDFpJHbNyNcgyJDiP+8nOrY5cZGrA==" }, "node_modules/rimraf": { "version": "3.0.2", - "license": "ISC", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", + "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", "dependencies": { "glob": "^7.1.3" }, @@ -11238,6 +12280,8 @@ }, "node_modules/run-parallel": { "version": "1.2.0", + "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz", + "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==", "dev": true, "funding": [ { @@ -11253,13 +12297,14 @@ "url": "https://feross.org/support" } ], - "license": "MIT", "dependencies": { "queue-microtask": "^1.2.2" } }, "node_modules/run-parallel-limit": { "version": "1.1.0", + "resolved": "https://registry.npmjs.org/run-parallel-limit/-/run-parallel-limit-1.1.0.tgz", + "integrity": "sha512-jJA7irRNM91jaKc3Hcl1npHsFLOXOoTkPCUL1JEa1R82O2miplXXRaGdjW/KM/98YQWDhJLiSs793CnXfblJUw==", "funding": [ { "type": "github", @@ -11274,20 +12319,22 @@ "url": "https://feross.org/support" } ], - "license": "MIT", "dependencies": { "queue-microtask": "^1.2.2" } }, "node_modules/rxjs": { "version": "7.8.0", - "license": "Apache-2.0", + "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-7.8.0.tgz", + "integrity": "sha512-F2+gxDshqmIub1KdvZkaEfGDwLNpPvk9Fs6LD/MyQxNgMds/WH9OdDDXOmxUZpME+iSK3rQCctkL0DYyytUqMg==", "dependencies": { "tslib": "^2.1.0" } }, "node_modules/safe-buffer": { "version": "5.2.1", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", + "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", "funding": [ { "type": "github", @@ -11301,35 +12348,39 @@ "type": "consulting", "url": "https://feross.org/support" } - ], - "license": "MIT" + ] }, "node_modules/safer-buffer": { "version": "2.1.2", - "license": "MIT" + "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", + "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==" }, "node_modules/sanitize-filename": { "version": "1.6.3", - "license": "WTFPL OR ISC", + "resolved": "https://registry.npmjs.org/sanitize-filename/-/sanitize-filename-1.6.3.tgz", + "integrity": "sha512-y/52Mcy7aw3gRm7IrcGDFx/bCk4AhRh2eI9luHOQM86nZsqwiRkkq2GekHXBBD+SmPidc8i2PqtYZl+pWJ8Oeg==", "dependencies": { "truncate-utf8-bytes": "^1.0.0" } }, "node_modules/sax": { "version": "1.2.4", - "license": "ISC" + "resolved": "https://registry.npmjs.org/sax/-/sax-1.2.4.tgz", + "integrity": "sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw==" }, "node_modules/semver": { "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", "dev": true, - "license": "ISC", "bin": { "semver": "bin/semver.js" } }, "node_modules/semver-diff": { "version": "4.0.0", - "license": "MIT", + "resolved": "https://registry.npmjs.org/semver-diff/-/semver-diff-4.0.0.tgz", + "integrity": "sha512-0Ju4+6A8iOnpL/Thra7dZsSlOHYAHIeMxfhWQRI1/VLcT3WDBZKKtQt/QkBOsiIN9ZpuvHE6cGZ0x4glCMmfiA==", "dependencies": { "semver": "^7.3.5" }, @@ -11342,7 +12393,8 @@ }, "node_modules/semver-diff/node_modules/semver": { "version": "7.3.8", - "license": "ISC", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.8.tgz", + "integrity": "sha512-NB1ctGL5rlHrPJtFDVIVzTyQylMLu9N9VICA6HSFJo8MCGVTMW6gfpicwKmmK/dAjTOrqu5l63JJOpDSrAis3A==", "dependencies": { "lru-cache": "^6.0.0" }, @@ -11355,7 +12407,8 @@ }, "node_modules/sentence-case": { "version": "3.0.4", - "license": "MIT", + "resolved": "https://registry.npmjs.org/sentence-case/-/sentence-case-3.0.4.tgz", + "integrity": "sha512-8LS0JInaQMCRoQ7YUytAo/xUu5W2XnQxV2HI/6uM6U7CITS1RqPElr30V6uIqyMKM9lJGRVFy5/4CuzcixNYSg==", "dependencies": { "no-case": "^3.0.4", "tslib": "^2.0.3", @@ -11364,24 +12417,28 @@ }, "node_modules/serialize-javascript": { "version": "6.0.0", + "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-6.0.0.tgz", + "integrity": "sha512-Qr3TosvguFt8ePWqsvRfrKyQXIiW+nGbYpy8XK24NQHE83caxWt+mIymTT19DGFbNWNLfEwsrkSmN64lVWB9ag==", "dev": true, - "license": "BSD-3-Clause", "dependencies": { "randombytes": "^2.1.0" } }, "node_modules/set-blocking": { "version": "2.0.0", - "license": "ISC" + "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz", + "integrity": "sha512-KiKBS8AnWGEyLzofFfmvKwpdPzqiy16LvQfK3yv/fVH7Bj13/wl3JSR1J+rfgRE9q7xUJK4qvgS8raSOeLUehw==" }, "node_modules/set-delayed-interval": { "version": "1.0.0", - "license": "MIT" + "resolved": "https://registry.npmjs.org/set-delayed-interval/-/set-delayed-interval-1.0.0.tgz", + "integrity": "sha512-29fhAwuZlLcuBnW/EwxvLcg2D3ELX+VBDNhnavs3YYkab72qmrcSeQNVdzl8EcPPahGQXhBM6MKdPLCQGMDakw==" }, "node_modules/shallow-clone": { "version": "3.0.1", + "resolved": "https://registry.npmjs.org/shallow-clone/-/shallow-clone-3.0.1.tgz", + "integrity": "sha512-/6KqX+GVUdqPuPPd2LxDDxzX6CAbjJehAAOKlNpqqUpAqPM6HeL8f+o3a+JsyGjn2lv0WY8UsTgUJjU9Ok55NA==", "dev": true, - "license": "MIT", "dependencies": { "kind-of": "^6.0.2" }, @@ -11391,7 +12448,8 @@ }, "node_modules/shebang-command": { "version": "2.0.0", - "license": "MIT", + "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", + "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", "dependencies": { "shebang-regex": "^3.0.0" }, @@ -11401,14 +12459,16 @@ }, "node_modules/shebang-regex": { "version": "3.0.0", - "license": "MIT", + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", + "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", "engines": { "node": ">=8" } }, "node_modules/side-channel": { "version": "1.0.4", - "license": "MIT", + "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.4.tgz", + "integrity": "sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==", "dependencies": { "call-bind": "^1.0.0", "get-intrinsic": "^1.0.2", @@ -11420,12 +12480,14 @@ }, "node_modules/signal-exit": { "version": "3.0.7", - "license": "ISC" + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz", + "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==" }, "node_modules/sinon": { "version": "14.0.2", + "resolved": "https://registry.npmjs.org/sinon/-/sinon-14.0.2.tgz", + "integrity": "sha512-PDpV0ZI3ZCS3pEqx0vpNp6kzPhHrLx72wA0G+ZLaaJjLIYeE0n8INlgaohKuGy7hP0as5tbUd23QWu5U233t+w==", "dev": true, - "license": "BSD-3-Clause", "dependencies": { "@sinonjs/commons": "^2.0.0", "@sinonjs/fake-timers": "^9.1.2", @@ -11441,16 +12503,18 @@ }, "node_modules/sinon/node_modules/has-flag": { "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", "dev": true, - "license": "MIT", "engines": { "node": ">=8" } }, "node_modules/sinon/node_modules/supports-color": { "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", "dev": true, - "license": "MIT", "dependencies": { "has-flag": "^4.0.0" }, @@ -11460,15 +12524,17 @@ }, "node_modules/slash": { "version": "3.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", + "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", "dev": true, - "license": "MIT", "engines": { "node": ">=8" } }, "node_modules/snake-case": { "version": "3.0.4", - "license": "MIT", + "resolved": "https://registry.npmjs.org/snake-case/-/snake-case-3.0.4.tgz", + "integrity": "sha512-LAOh4z89bGQvl9pFfNF8V146i7o7/CqFPbqzYgP+yYzDIDeS9HaNFtXABamRW+AQzEVODcvE79ljJ+8a9YSdMg==", "dependencies": { "dot-case": "^3.0.4", "tslib": "^2.0.3" @@ -11476,7 +12542,8 @@ }, "node_modules/socket.io-client": { "version": "4.5.4", - "license": "MIT", + "resolved": "https://registry.npmjs.org/socket.io-client/-/socket.io-client-4.5.4.tgz", + "integrity": "sha512-ZpKteoA06RzkD32IbqILZ+Cnst4xewU7ZYK12aS1mzHftFFjpoMz69IuhP/nL25pJfao/amoPI527KnuhFm01g==", "dependencies": { "@socket.io/component-emitter": "~3.1.0", "debug": "~4.3.2", @@ -11489,7 +12556,8 @@ }, "node_modules/socket.io-parser": { "version": "4.2.1", - "license": "MIT", + "resolved": "https://registry.npmjs.org/socket.io-parser/-/socket.io-parser-4.2.1.tgz", + "integrity": "sha512-V4GrkLy+HeF1F/en3SpUaM+7XxYXpuMUWLGde1kSSh5nQMN4hLrbPIkD+otwh6q9R6NOQBN4AMaOZ2zVjui82g==", "dependencies": { "@socket.io/component-emitter": "~3.1.0", "debug": "~4.3.1" @@ -11500,7 +12568,8 @@ }, "node_modules/sonic-boom": { "version": "1.4.1", - "license": "MIT", + "resolved": "https://registry.npmjs.org/sonic-boom/-/sonic-boom-1.4.1.tgz", + "integrity": "sha512-LRHh/A8tpW7ru89lrlkU4AszXt1dbwSjVWguGrmlxE7tawVmDBlI1PILMkXAxJTwqhgsEeTHzj36D5CmHgQmNg==", "dependencies": { "atomic-sleep": "^1.0.0", "flatstr": "^1.0.12" @@ -11508,7 +12577,8 @@ }, "node_modules/sort-keys": { "version": "5.0.0", - "license": "MIT", + "resolved": "https://registry.npmjs.org/sort-keys/-/sort-keys-5.0.0.tgz", + "integrity": "sha512-Pdz01AvCAottHTPQGzndktFNdbRA75BgOfeT1hH+AMnJFv8lynkPi42rfeEhpx1saTEI3YNMWxfqu0sFD1G8pw==", "dependencies": { "is-plain-obj": "^4.0.0" }, @@ -11521,7 +12591,8 @@ }, "node_modules/sort-keys/node_modules/is-plain-obj": { "version": "4.1.0", - "license": "MIT", + "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-4.1.0.tgz", + "integrity": "sha512-+Pgi+vMuUNkJyExiMBt5IlFoMyKnr5zhJ4Uspz58WOhBF5QoIZkFyNHIbBAtHwzVAgk5RtndVNsDRN61/mmDqg==", "engines": { "node": ">=12" }, @@ -11531,16 +12602,18 @@ }, "node_modules/source-map": { "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", "dev": true, - "license": "BSD-3-Clause", "engines": { "node": ">=0.10.0" } }, "node_modules/source-map-support": { "version": "0.5.21", + "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.21.tgz", + "integrity": "sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==", "dev": true, - "license": "MIT", "dependencies": { "buffer-from": "^1.0.0", "source-map": "^0.6.0" @@ -11548,39 +12621,47 @@ }, "node_modules/sparse-array": { "version": "1.3.2", - "license": "ISC" + "resolved": "https://registry.npmjs.org/sparse-array/-/sparse-array-1.3.2.tgz", + "integrity": "sha512-ZT711fePGn3+kQyLuv1fpd3rNSkNF8vd5Kv2D+qnOANeyKs3fx6bUMGWRPvgTTcYV64QMqZKZwcuaQSP3AZ0tg==" }, "node_modules/sprintf-js": { "version": "1.1.2", - "license": "BSD-3-Clause" + "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.1.2.tgz", + "integrity": "sha512-VE0SOVEHCk7Qc8ulkWw3ntAzXuqf7S2lvwQaDLRnUeIEaKNQJzV6BwmLKhOqT61aGhfUMrXeaBk+oDGCzvhcug==" }, "node_modules/stream-to-it": { "version": "0.2.4", - "license": "MIT", + "resolved": "https://registry.npmjs.org/stream-to-it/-/stream-to-it-0.2.4.tgz", + "integrity": "sha512-4vEbkSs83OahpmBybNJXlJd7d6/RxzkkSdT3I0mnGt79Xd2Kk+e1JqbvAvsQfCeKj3aKb0QIWkyK3/n0j506vQ==", "dependencies": { "get-iterator": "^1.0.2" } }, "node_modules/stream-to-it/node_modules/get-iterator": { "version": "1.0.2", - "license": "MIT" + "resolved": "https://registry.npmjs.org/get-iterator/-/get-iterator-1.0.2.tgz", + "integrity": "sha512-v+dm9bNVfOYsY1OrhaCrmyOcYoSeVvbt+hHZ0Au+T+p1y+0Uyj9aMaGIeUTT6xdpRbWzDeYKvfOslPhggQMcsg==" }, "node_modules/streamsearch": { "version": "1.1.0", + "resolved": "https://registry.npmjs.org/streamsearch/-/streamsearch-1.1.0.tgz", + "integrity": "sha512-Mcc5wHehp9aXz1ax6bZUyY5afg9u2rv5cqQI3mRrYkGC8rW2hM02jWuwjtL++LS5qinSyhj2QfLyNsuc+VsExg==", "engines": { "node": ">=10.0.0" } }, "node_modules/string_decoder": { "version": "1.3.0", - "license": "MIT", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz", + "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==", "dependencies": { "safe-buffer": "~5.2.0" } }, "node_modules/string-width": { "version": "4.2.3", - "license": "MIT", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", "dependencies": { "emoji-regex": "^8.0.0", "is-fullwidth-code-point": "^3.0.0", @@ -11592,7 +12673,8 @@ }, "node_modules/strip-ansi": { "version": "6.0.1", - "license": "MIT", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", "dependencies": { "ansi-regex": "^5.0.1" }, @@ -11602,7 +12684,8 @@ }, "node_modules/strip-final-newline": { "version": "3.0.0", - "license": "MIT", + "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-3.0.0.tgz", + "integrity": "sha512-dOESqjYr96iWYylGObzd39EuNTa5VJxyvVAEm5Jnh7KGo75V43Hk1odPQkNDyXNmUR6k+gEiDVXnjB8HJ3crXw==", "engines": { "node": ">=12" }, @@ -11612,7 +12695,8 @@ }, "node_modules/strip-json-comments": { "version": "3.1.1", - "license": "MIT", + "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", + "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==", "engines": { "node": ">=8" }, @@ -11622,7 +12706,8 @@ }, "node_modules/strtok3": { "version": "7.0.0", - "license": "MIT", + "resolved": "https://registry.npmjs.org/strtok3/-/strtok3-7.0.0.tgz", + "integrity": "sha512-pQ+V+nYQdC5H3Q7qBZAz/MO6lwGhoC2gOAjuouGf/VO0m7vQRh8QNMl2Uf6SwAtzZ9bOw3UIeBukEGNJl5dtXQ==", "dependencies": { "@tokenizer/token": "^0.3.0", "peek-readable": "^5.0.0" @@ -11637,7 +12722,8 @@ }, "node_modules/super-regex": { "version": "0.2.0", - "license": "MIT", + "resolved": "https://registry.npmjs.org/super-regex/-/super-regex-0.2.0.tgz", + "integrity": "sha512-WZzIx3rC1CvbMDloLsVw0lkZVKJWbrkJ0k1ghKFmcnPrW1+jWbgTkTEWVtD9lMdmI4jZEz40+naBxl1dCUhXXw==", "dependencies": { "clone-regexp": "^3.0.0", "function-timeout": "^0.1.0", @@ -11652,7 +12738,8 @@ }, "node_modules/supports-color": { "version": "5.5.0", - "license": "MIT", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", "dependencies": { "has-flag": "^3.0.0" }, @@ -11662,7 +12749,8 @@ }, "node_modules/tar": { "version": "6.1.13", - "license": "ISC", + "resolved": "https://registry.npmjs.org/tar/-/tar-6.1.13.tgz", + "integrity": "sha512-jdIBIN6LTIe2jqzay/2vtYLlBHa3JF42ot3h1dW8Q0PaAG4v8rm0cvpVePtau5C6OKXGGcgO9q2AMNSWxiLqKw==", "dependencies": { "chownr": "^2.0.0", "fs-minipass": "^2.0.0", @@ -11677,7 +12765,8 @@ }, "node_modules/tdigest": { "version": "0.1.2", - "license": "MIT", + "resolved": "https://registry.npmjs.org/tdigest/-/tdigest-0.1.2.tgz", + "integrity": "sha512-+G0LLgjjo9BZX2MfdvPfH+MKLCrxlXSYec5DaPYP1fe6Iyhf0/fSmJ0bFiZ1F8BT6cGXl2LpltQptzjXKWEkKA==", "optional": true, "dependencies": { "bintrees": "1.0.2" @@ -11685,17 +12774,20 @@ }, "node_modules/text-table": { "version": "0.2.0", + "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz", + "integrity": "sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==", "dev": true, - "license": "MIT", "peer": true }, "node_modules/thunky": { "version": "1.1.0", - "license": "MIT" + "resolved": "https://registry.npmjs.org/thunky/-/thunky-1.1.0.tgz", + "integrity": "sha512-eHY7nBftgThBqOyHGVN+l8gF0BucP09fMo0oO/Lb0w1OF80dJv+lDVpXG60WMQvkcxAkNybKsrEIE3ZtKGmPrA==" }, "node_modules/time-span": { "version": "5.1.0", - "license": "MIT", + "resolved": "https://registry.npmjs.org/time-span/-/time-span-5.1.0.tgz", + "integrity": "sha512-75voc/9G4rDIJleOo4jPvN4/YC4GRZrY8yy1uU4lwrB3XEQbWve8zXoO5No4eFrGcTAMYyoY67p8jRQdtA1HbA==", "dependencies": { "convert-hrtime": "^5.0.0" }, @@ -11708,30 +12800,34 @@ }, "node_modules/timeout-abort-controller": { "version": "3.0.0", - "license": "MIT", + "resolved": "https://registry.npmjs.org/timeout-abort-controller/-/timeout-abort-controller-3.0.0.tgz", + "integrity": "sha512-O3e+2B8BKrQxU2YRyEjC/2yFdb33slI22WRdUaDx6rvysfi9anloNZyR2q0l6LnePo5qH7gSM7uZtvvwZbc2yA==", "dependencies": { "retimer": "^3.0.0" } }, "node_modules/timestamp-nano": { "version": "1.0.1", - "license": "MIT", + "resolved": "https://registry.npmjs.org/timestamp-nano/-/timestamp-nano-1.0.1.tgz", + "integrity": "sha512-4oGOVZWTu5sl89PtCDnhQBSt7/vL1zVEwAfxH1p49JhTosxzVQWYBYFRFZ8nJmo0G6f824iyP/44BFAwIoKvIA==", "engines": { "node": ">= 4.5.0" } }, "node_modules/to-fast-properties": { "version": "2.0.0", + "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz", + "integrity": "sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog==", "dev": true, - "license": "MIT", "engines": { "node": ">=4" } }, "node_modules/to-regex-range": { "version": "5.0.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", + "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", "dev": true, - "license": "MIT", "dependencies": { "is-number": "^7.0.0" }, @@ -11741,7 +12837,8 @@ }, "node_modules/token-types": { "version": "5.0.1", - "license": "MIT", + "resolved": "https://registry.npmjs.org/token-types/-/token-types-5.0.1.tgz", + "integrity": "sha512-Y2fmSnZjQdDb9W4w4r1tswlMHylzWIeOKpx0aZH9BgGtACHhrk3OkT52AzwcuqTRBZtvvnTjDBh8eynMulu8Vg==", "dependencies": { "@tokenizer/token": "^0.3.0", "ieee754": "^1.2.1" @@ -11756,19 +12853,22 @@ }, "node_modules/tr46": { "version": "0.0.3", - "license": "MIT" + "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz", + "integrity": "sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==" }, "node_modules/truncate-utf8-bytes": { "version": "1.0.2", - "license": "WTFPL", + "resolved": "https://registry.npmjs.org/truncate-utf8-bytes/-/truncate-utf8-bytes-1.0.2.tgz", + "integrity": "sha512-95Pu1QXQvruGEhv62XCMO3Mm90GscOCClvrIUwCM0PYOXK3kaF3l3sIHxx71ThJfcbM2O5Au6SO3AWCSEfW4mQ==", "dependencies": { "utf8-byte-length": "^1.0.1" } }, "node_modules/ts-node": { "version": "10.9.1", + "resolved": "https://registry.npmjs.org/ts-node/-/ts-node-10.9.1.tgz", + "integrity": "sha512-NtVysVPkxxrwFGUUxGYhfux8k78pQB3JqYBXlLRZgdGUqTO5wU/UyHop5p70iEbGhB7q5KmiZiU0Y3KlJrScEw==", "dev": true, - "license": "MIT", "dependencies": { "@cspotcode/source-map-support": "^0.8.0", "@tsconfig/node10": "^1.0.7", @@ -11809,20 +12909,23 @@ }, "node_modules/ts-node/node_modules/diff": { "version": "4.0.2", + "resolved": "https://registry.npmjs.org/diff/-/diff-4.0.2.tgz", + "integrity": "sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A==", "dev": true, - "license": "BSD-3-Clause", "engines": { "node": ">=0.3.1" } }, "node_modules/tslib": { "version": "2.4.1", - "license": "0BSD" + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.4.1.tgz", + "integrity": "sha512-tGyy4dAjRIEwI7BzsB0lynWgOpfqjUdq91XXAlIWD2OwKBH7oCl/GZG/HT4BOHrTlPMOASlMQ7veyTqpmRcrNA==" }, "node_modules/tsutils": { "version": "3.21.0", + "resolved": "https://registry.npmjs.org/tsutils/-/tsutils-3.21.0.tgz", + "integrity": "sha512-mHKK3iUXL+3UF6xL5k0PEhKRUBKPBCv/+RkEOpjRWxxx27KKRBmmA60A9pgOUvMi8GKhRMPEmjBRPzs2W7O1OA==", "dev": true, - "license": "MIT", "dependencies": { "tslib": "^1.8.1" }, @@ -11835,21 +12938,25 @@ }, "node_modules/tsutils/node_modules/tslib": { "version": "1.14.1", - "dev": true, - "license": "0BSD" + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", + "dev": true }, "node_modules/tweetnacl": { "version": "1.0.3", - "license": "Unlicense" + "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-1.0.3.tgz", + "integrity": "sha512-6rt+RN7aOi1nGMyC4Xa5DdYiukl2UWCbcJft7YhxReBGQD7OAM8Pbxw6YMo4r2diNEA8FEmu32YOn9rhaiE5yw==" }, "node_modules/type": { "version": "1.2.0", - "license": "ISC" + "resolved": "https://registry.npmjs.org/type/-/type-1.2.0.tgz", + "integrity": "sha512-+5nt5AAniqsCnu2cEQQdpzCAh33kVx8n0VoFidKpB1dVVLAN/F+bgVOqOJqOnEnrhp222clB5p3vUlD+1QAnfg==" }, "node_modules/type-check": { "version": "0.4.0", + "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz", + "integrity": "sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==", "dev": true, - "license": "MIT", "peer": true, "dependencies": { "prelude-ls": "^1.2.1" @@ -11860,15 +12967,17 @@ }, "node_modules/type-detect": { "version": "4.0.8", + "resolved": "https://registry.npmjs.org/type-detect/-/type-detect-4.0.8.tgz", + "integrity": "sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==", "dev": true, - "license": "MIT", "engines": { "node": ">=4" } }, "node_modules/type-fest": { "version": "2.19.0", - "license": "(MIT OR CC0-1.0)", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-2.19.0.tgz", + "integrity": "sha512-RAH822pAdBgcNMAfWnCBU3CFZcfZ/i1eZjwFU/dsLKumyuuP3niueg2UAukXYF0E2AAoc82ZSSf9J0WQBinzHA==", "engines": { "node": ">=12.20" }, @@ -11878,15 +12987,17 @@ }, "node_modules/typedarray-to-buffer": { "version": "3.1.5", - "license": "MIT", + "resolved": "https://registry.npmjs.org/typedarray-to-buffer/-/typedarray-to-buffer-3.1.5.tgz", + "integrity": "sha512-zdu8XMNEDepKKR+XYOXAVPtWui0ly0NtohUscw+UmaHiAWT8hrV1rr//H6V+0DvJ3OQ19S979M0laLfX8rm82Q==", "dependencies": { "is-typedarray": "^1.0.0" } }, "node_modules/typescript": { "version": "4.9.4", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.9.4.tgz", + "integrity": "sha512-Uz+dTXYzxXXbsFpM86Wh3dKCxrQqUcVMxwU54orwlJjOpO3ao8L7j5lH+dWfTwgCwIuM9GQ2kvVotzYJMXTBZg==", "dev": true, - "license": "Apache-2.0", "bin": { "tsc": "bin/tsc", "tsserver": "bin/tsserver" @@ -11897,8 +13008,9 @@ }, "node_modules/uglify-js": { "version": "3.17.4", + "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-3.17.4.tgz", + "integrity": "sha512-T9q82TJI9e/C1TAxYvfb16xO120tMVFZrGA3f9/P4424DNu6ypK103y0GPFVa17yotwSyZW5iYXgjYHkGrJW/g==", "dev": true, - "license": "BSD-2-Clause", "optional": true, "bin": { "uglifyjs": "bin/uglifyjs" @@ -11909,7 +13021,8 @@ }, "node_modules/uint8-varint": { "version": "1.0.4", - "license": "Apache-2.0 OR MIT", + "resolved": "https://registry.npmjs.org/uint8-varint/-/uint8-varint-1.0.4.tgz", + "integrity": "sha512-FHnaReHRIM7kHe/Ms0I2KGkuSY4o7ouhUJGJeiFEuYWGvBt4Y64+BJ3mV6DqmyYtYTZj4Pz8K/BmViSNFLRrVw==", "dependencies": { "byte-access": "^1.0.0", "longbits": "^1.1.0", @@ -11923,7 +13036,8 @@ }, "node_modules/uint8arraylist": { "version": "2.4.3", - "license": "Apache-2.0 OR MIT", + "resolved": "https://registry.npmjs.org/uint8arraylist/-/uint8arraylist-2.4.3.tgz", + "integrity": "sha512-oEVZr4/GrH87K0kjNce6z8pSCzLEPqHNLNR5sj8cJOySrTP8Vb/pMIbZKLJGhQKxm1TiZ31atNrpn820Pyqpow==", "dependencies": { "uint8arrays": "^4.0.2" }, @@ -11934,7 +13048,8 @@ }, "node_modules/uint8arrays": { "version": "4.0.3", - "license": "Apache-2.0 OR MIT", + "resolved": "https://registry.npmjs.org/uint8arrays/-/uint8arrays-4.0.3.tgz", + "integrity": "sha512-b+aKlI2oTnxnfeSQWV1sMacqSNxqhtXySaH6bflvONGxF8V/fT3ZlYH7z2qgGfydsvpVo4JUgM/Ylyfl2YouCg==", "dependencies": { "multiformats": "^11.0.0" }, @@ -11944,8 +13059,9 @@ } }, "node_modules/undici": { - "version": "5.14.0", - "license": "MIT", + "version": "5.20.0", + "resolved": "https://registry.npmjs.org/undici/-/undici-5.20.0.tgz", + "integrity": "sha512-J3j60dYzuo6Eevbawwp1sdg16k5Tf768bxYK4TUJRH7cBM4kFCbf3mOnM/0E3vQYXvpxITbbWmBafaDbxLDz3g==", "dependencies": { "busboy": "^1.6.0" }, @@ -11955,7 +13071,8 @@ }, "node_modules/unique-string": { "version": "3.0.0", - "license": "MIT", + "resolved": "https://registry.npmjs.org/unique-string/-/unique-string-3.0.0.tgz", + "integrity": "sha512-VGXBUVwxKMBUznyffQweQABPRRW1vHZAbadFZud4pLFAqRGvv/96vafgjWFqzourzr8YonlQiPgH0YCJfawoGQ==", "dependencies": { "crypto-random-string": "^4.0.0" }, @@ -11968,6 +13085,8 @@ }, "node_modules/update-browserslist-db": { "version": "1.0.10", + "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.0.10.tgz", + "integrity": "sha512-OztqDenkfFkbSG+tRxBeAnCVPckDBcvibKd35yDONx6OU8N7sqgwc7rCbkJ/WcYtVRZ4ba68d6byhC21GFh7sQ==", "dev": true, "funding": [ { @@ -11979,7 +13098,6 @@ "url": "https://tidelift.com/funding/github/npm/browserslist" } ], - "license": "MIT", "dependencies": { "escalade": "^3.1.1", "picocolors": "^1.0.0" @@ -11993,7 +13111,8 @@ }, "node_modules/update-notifier": { "version": "6.0.2", - "license": "BSD-2-Clause", + "resolved": "https://registry.npmjs.org/update-notifier/-/update-notifier-6.0.2.tgz", + "integrity": "sha512-EDxhTEVPZZRLWYcJ4ZXjGFN0oP7qYvbXWzEgRm/Yql4dHX5wDbvh89YHP6PK1lzZJYrMtXUuZZz8XGK+U6U1og==", "dependencies": { "boxen": "^7.0.0", "chalk": "^5.0.1", @@ -12019,7 +13138,8 @@ }, "node_modules/update-notifier/node_modules/chalk": { "version": "5.2.0", - "license": "MIT", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-5.2.0.tgz", + "integrity": "sha512-ree3Gqw/nazQAPuJJEy+avdl7QfZMcUvmHIKgEZkGL+xOBzRvup5Hxo6LHuMceSxOabuJLJm5Yp/92R9eMmMvA==", "engines": { "node": "^12.17.0 || ^14.13 || >=16.0.0" }, @@ -12029,7 +13149,8 @@ }, "node_modules/update-notifier/node_modules/semver": { "version": "7.3.8", - "license": "ISC", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.8.tgz", + "integrity": "sha512-NB1ctGL5rlHrPJtFDVIVzTyQylMLu9N9VICA6HSFJo8MCGVTMW6gfpicwKmmK/dAjTOrqu5l63JJOpDSrAis3A==", "dependencies": { "lru-cache": "^6.0.0" }, @@ -12042,22 +13163,25 @@ }, "node_modules/upper-case": { "version": "2.0.2", - "license": "MIT", + "resolved": "https://registry.npmjs.org/upper-case/-/upper-case-2.0.2.tgz", + "integrity": "sha512-KgdgDGJt2TpuwBUIjgG6lzw2GWFRCW9Qkfkiv0DxqHHLYJHmtmdUIKcZd8rHgFSjopVTlw6ggzCm1b8MFQwikg==", "dependencies": { "tslib": "^2.0.3" } }, "node_modules/upper-case-first": { "version": "2.0.2", - "license": "MIT", + "resolved": "https://registry.npmjs.org/upper-case-first/-/upper-case-first-2.0.2.tgz", + "integrity": "sha512-514ppYHBaKwfJRK/pNC6c/OxfGa0obSnAl106u97Ed0I625Nin96KAjttZF6ZL3e1XLtphxnqrOi9iWgm+u+bg==", "dependencies": { "tslib": "^2.0.3" } }, "node_modules/uri-js": { "version": "4.4.1", + "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", + "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", "dev": true, - "license": "BSD-2-Clause", "peer": true, "dependencies": { "punycode": "^2.1.0" @@ -12065,8 +13189,9 @@ }, "node_modules/utf-8-validate": { "version": "5.0.10", + "resolved": "https://registry.npmjs.org/utf-8-validate/-/utf-8-validate-5.0.10.tgz", + "integrity": "sha512-Z6czzLq4u8fPOyx7TU6X3dvUZVvoJmxSQ+IcrlmagKhilxlhZgxPK6C5Jqbkw1IDUmFTM+cz9QDnnLTwDz/2gQ==", "hasInstallScript": true, - "license": "MIT", "dependencies": { "node-gyp-build": "^4.3.0" }, @@ -12076,31 +13201,37 @@ }, "node_modules/utf8-byte-length": { "version": "1.0.4", - "license": "WTFPL" + "resolved": "https://registry.npmjs.org/utf8-byte-length/-/utf8-byte-length-1.0.4.tgz", + "integrity": "sha512-4+wkEYLBbWxqTahEsWrhxepcoVOJ+1z5PGIjPZxRkytcdSUaNjIjBM7Xn8E+pdSuV7SzvWovBFA54FO0JSoqhA==" }, "node_modules/util-deprecate": { "version": "1.0.2", - "license": "MIT" + "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", + "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==" }, "node_modules/uuid": { "version": "8.3.2", - "license": "MIT", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz", + "integrity": "sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==", "bin": { "uuid": "dist/bin/uuid" } }, "node_modules/v8-compile-cache-lib": { "version": "3.0.1", - "dev": true, - "license": "MIT" + "resolved": "https://registry.npmjs.org/v8-compile-cache-lib/-/v8-compile-cache-lib-3.0.1.tgz", + "integrity": "sha512-wa7YjyUGfNZngI/vtK0UHAN+lgDCxBPCylVXGp0zu59Fz5aiGtNXaq3DhIov063MorB+VfufLh3JlF2KdTK3xg==", + "dev": true }, "node_modules/varint": { "version": "6.0.0", - "license": "MIT" + "resolved": "https://registry.npmjs.org/varint/-/varint-6.0.0.tgz", + "integrity": "sha512-cXEIW6cfr15lFv563k4GuVuW/fiwjknytD37jIOLSdSWuOI6WnO/oKwmP2FQTU2l01LP8/M5TSAJpzUaGe3uWg==" }, "node_modules/varint-decoder": { "version": "1.0.0", - "license": "MIT", + "resolved": "https://registry.npmjs.org/varint-decoder/-/varint-decoder-1.0.0.tgz", + "integrity": "sha512-JkOvdztASWGUAsXshCFHrB9f6AgR2Q8W08CEyJ+43b1qtFocmI8Sp1R/M0E/hDOY2FzVIqk63tOYLgDYWuJ7IQ==", "dependencies": { "varint": "^5.0.0" }, @@ -12111,18 +13242,21 @@ }, "node_modules/varint-decoder/node_modules/varint": { "version": "5.0.2", - "license": "MIT" + "resolved": "https://registry.npmjs.org/varint/-/varint-5.0.2.tgz", + "integrity": "sha512-lKxKYG6H03yCZUpAGOPOsMcGxd1RHCu1iKvEHYDPmTyq2HueGhD73ssNBqqQWfvYs04G9iUFRvmAVLW20Jw6ow==" }, "node_modules/web-streams-polyfill": { "version": "3.2.1", - "license": "MIT", + "resolved": "https://registry.npmjs.org/web-streams-polyfill/-/web-streams-polyfill-3.2.1.tgz", + "integrity": "sha512-e0MO3wdXWKrLbL0DgGnUV7WHVuw9OUvL4hjgnPkIeEvESk74gAITi5G606JtZPp39cd8HA9VQzCIvA49LpPN5Q==", "engines": { "node": ">= 8" } }, "node_modules/websocket": { "version": "1.0.34", - "license": "Apache-2.0", + "resolved": "https://registry.npmjs.org/websocket/-/websocket-1.0.34.tgz", + "integrity": "sha512-PRDso2sGwF6kM75QykIesBijKSVceR6jL2G8NGYyq2XrItNC2P5/qL5XeR056GhA+Ly7JMFvJb9I312mJfmqnQ==", "dependencies": { "bufferutil": "^4.0.1", "debug": "^2.2.0", @@ -12137,18 +13271,21 @@ }, "node_modules/websocket/node_modules/debug": { "version": "2.6.9", - "license": "MIT", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", "dependencies": { "ms": "2.0.0" } }, "node_modules/websocket/node_modules/ms": { "version": "2.0.0", - "license": "MIT" + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==" }, "node_modules/whatwg-url": { "version": "5.0.0", - "license": "MIT", + "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz", + "integrity": "sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==", "dependencies": { "tr46": "~0.0.3", "webidl-conversions": "^3.0.0" @@ -12156,11 +13293,13 @@ }, "node_modules/whatwg-url/node_modules/webidl-conversions": { "version": "3.0.1", - "license": "BSD-2-Clause" + "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz", + "integrity": "sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==" }, "node_modules/wherearewe": { "version": "2.0.1", - "license": "Apache-2.0 OR MIT", + "resolved": "https://registry.npmjs.org/wherearewe/-/wherearewe-2.0.1.tgz", + "integrity": "sha512-XUguZbDxCA2wBn2LoFtcEhXL6AXo+hVjGonwhSTTTU9SzbWG8Xu3onNIpzf9j/mYUcJQ0f+m37SzG77G851uFw==", "dependencies": { "is-electron": "^2.2.0" }, @@ -12171,7 +13310,8 @@ }, "node_modules/which": { "version": "2.0.2", - "license": "ISC", + "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", + "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", "dependencies": { "isexe": "^2.0.0" }, @@ -12184,14 +13324,16 @@ }, "node_modules/wide-align": { "version": "1.1.5", - "license": "ISC", + "resolved": "https://registry.npmjs.org/wide-align/-/wide-align-1.1.5.tgz", + "integrity": "sha512-eDMORYaPNZ4sQIuuYPDHdQvf4gyCF9rEEV/yPxGfwPkRodwEgiMUUXTx/dex+Me0wxx53S+NgUHaP7y3MGlDmg==", "dependencies": { "string-width": "^1.0.2 || 2 || 3 || 4" } }, "node_modules/widest-line": { "version": "4.0.1", - "license": "MIT", + "resolved": "https://registry.npmjs.org/widest-line/-/widest-line-4.0.1.tgz", + "integrity": "sha512-o0cyEG0e8GPzT4iGHphIOh0cJOV8fivsXxddQasHPHfoZf1ZexrfeA21w2NaEN1RHE+fXlfISmOE8R9N3u3Qig==", "dependencies": { "string-width": "^5.0.1" }, @@ -12204,7 +13346,8 @@ }, "node_modules/widest-line/node_modules/ansi-regex": { "version": "6.0.1", - "license": "MIT", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.0.1.tgz", + "integrity": "sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==", "engines": { "node": ">=12" }, @@ -12214,11 +13357,13 @@ }, "node_modules/widest-line/node_modules/emoji-regex": { "version": "9.2.2", - "license": "MIT" + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-9.2.2.tgz", + "integrity": "sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==" }, "node_modules/widest-line/node_modules/string-width": { "version": "5.1.2", - "license": "MIT", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-5.1.2.tgz", + "integrity": "sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==", "dependencies": { "eastasianwidth": "^0.2.0", "emoji-regex": "^9.2.2", @@ -12233,7 +13378,8 @@ }, "node_modules/widest-line/node_modules/strip-ansi": { "version": "7.0.1", - "license": "MIT", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.0.1.tgz", + "integrity": "sha512-cXNxvT8dFNRVfhVME3JAe98mkXDYN2O1l7jmcwMnOslDeESg1rF/OZMtK0nRAhiari1unG5cD4jG3rapUAkLbw==", "dependencies": { "ansi-regex": "^6.0.1" }, @@ -12246,8 +13392,9 @@ }, "node_modules/word-wrap": { "version": "1.2.3", + "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.3.tgz", + "integrity": "sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ==", "dev": true, - "license": "MIT", "peer": true, "engines": { "node": ">=0.10.0" @@ -12255,17 +13402,20 @@ }, "node_modules/wordwrap": { "version": "1.0.0", - "dev": true, - "license": "MIT" + "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-1.0.0.tgz", + "integrity": "sha512-gvVzJFlPycKc5dZN4yPkP8w7Dc37BtP1yczEneOb4uq34pXZcvrtRTmWV8W+Ume+XCxKgbjM+nevkyFPMybd4Q==", + "dev": true }, "node_modules/workerpool": { "version": "6.2.1", - "dev": true, - "license": "Apache-2.0" + "resolved": "https://registry.npmjs.org/workerpool/-/workerpool-6.2.1.tgz", + "integrity": "sha512-ILEIE97kDZvF9Wb9f6h5aXK4swSlKGUcOEGiIYb2OOu/IrDU9iwj0fD//SsA6E5ibwJxpEvhullJY4Sl4GcpAw==", + "dev": true }, "node_modules/wrap-ansi": { "version": "7.0.0", - "license": "MIT", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", + "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", "dependencies": { "ansi-styles": "^4.0.0", "string-width": "^4.1.0", @@ -12280,7 +13430,8 @@ }, "node_modules/wrap-ansi/node_modules/ansi-styles": { "version": "4.3.0", - "license": "MIT", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", "dependencies": { "color-convert": "^2.0.1" }, @@ -12293,7 +13444,8 @@ }, "node_modules/wrap-ansi/node_modules/color-convert": { "version": "2.0.1", - "license": "MIT", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", "dependencies": { "color-name": "~1.1.4" }, @@ -12303,15 +13455,18 @@ }, "node_modules/wrap-ansi/node_modules/color-name": { "version": "1.1.4", - "license": "MIT" + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" }, "node_modules/wrappy": { "version": "1.0.2", - "license": "ISC" + "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", + "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==" }, "node_modules/write-file-atomic": { "version": "3.0.3", - "license": "ISC", + "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-3.0.3.tgz", + "integrity": "sha512-AvHcyZ5JnSfq3ioSyjrBkH9yW4m7Ayk8/9My/DD9onKeu/94fwrMocemO2QAJFAlnnDN+ZDS+ZjAR5ua1/PV/Q==", "dependencies": { "imurmurhash": "^0.1.4", "is-typedarray": "^1.0.0", @@ -12321,7 +13476,8 @@ }, "node_modules/ws": { "version": "8.11.0", - "license": "MIT", + "resolved": "https://registry.npmjs.org/ws/-/ws-8.11.0.tgz", + "integrity": "sha512-HPG3wQd9sNQoT9xHyNCXoDUa+Xw/VevmY9FoHyQ+g+rrMn4j6FB4np7Z0OhdTgjx6MgQLK7jwSy1YecU1+4Asg==", "engines": { "node": ">=10.0.0" }, @@ -12340,7 +13496,8 @@ }, "node_modules/xdg-basedir": { "version": "5.1.0", - "license": "MIT", + "resolved": "https://registry.npmjs.org/xdg-basedir/-/xdg-basedir-5.1.0.tgz", + "integrity": "sha512-GCPAHLvrIH13+c0SuacwvRYj2SxJXQ4kaVTT5xgL3kPrz56XxkF21IGhjSE1+W0aw7gpBWRGXLCPnPby6lSpmQ==", "engines": { "node": ">=12" }, @@ -12350,7 +13507,8 @@ }, "node_modules/xml2js": { "version": "0.4.23", - "license": "MIT", + "resolved": "https://registry.npmjs.org/xml2js/-/xml2js-0.4.23.tgz", + "integrity": "sha512-ySPiMjM0+pLDftHgXY4By0uswI3SPKLDw/i3UXbnO8M/p28zqexCUoPmQFrYD+/1BzhGJSs2i1ERWKJAtiLrug==", "dependencies": { "sax": ">=0.6.0", "xmlbuilder": "~11.0.0" @@ -12361,42 +13519,50 @@ }, "node_modules/xmlbuilder": { "version": "11.0.1", - "license": "MIT", + "resolved": "https://registry.npmjs.org/xmlbuilder/-/xmlbuilder-11.0.1.tgz", + "integrity": "sha512-fDlsI/kFEx7gLvbecc0/ohLG50fugQp8ryHzMTuW9vSa1GJ0XYWKnhsUx7oie3G98+r56aTQIUB4kht42R3JvA==", "engines": { "node": ">=4.0" } }, "node_modules/xmlhttprequest-ssl": { "version": "2.0.0", + "resolved": "https://registry.npmjs.org/xmlhttprequest-ssl/-/xmlhttprequest-ssl-2.0.0.tgz", + "integrity": "sha512-QKxVRxiRACQcVuQEYFsI1hhkrMlrXHPegbbd1yn9UHOmRxY+si12nQYzri3vbzt8VdTTRviqcKxcyllFas5z2A==", "engines": { "node": ">=0.4.0" } }, "node_modules/xsalsa20": { "version": "1.2.0", - "license": "MIT" + "resolved": "https://registry.npmjs.org/xsalsa20/-/xsalsa20-1.2.0.tgz", + "integrity": "sha512-FIr/DEeoHfj7ftfylnoFt3rAIRoWXpx2AoDfrT2qD2wtp7Dp+COajvs/Icb7uHqRW9m60f5iXZwdsJJO3kvb7w==" }, "node_modules/y18n": { "version": "5.0.8", - "license": "ISC", + "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz", + "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==", "engines": { "node": ">=10" } }, "node_modules/yaeti": { "version": "0.0.6", - "license": "MIT", + "resolved": "https://registry.npmjs.org/yaeti/-/yaeti-0.0.6.tgz", + "integrity": "sha512-MvQa//+KcZCUkBTIC9blM+CU9J2GzuTytsOUwf2lidtvkx/6gnEp1QvJv34t9vdjhFmha/mUiNDbN0D0mJWdug==", "engines": { "node": ">=0.10.32" } }, "node_modules/yallist": { "version": "4.0.0", - "license": "ISC" + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==" }, "node_modules/yargs": { "version": "17.6.2", - "license": "MIT", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.6.2.tgz", + "integrity": "sha512-1/9UrdHjDZc0eOU0HxOHoS78C69UD3JRMvzlJ7S79S2nTaWRA/whGCTV8o9e/N/1Va9YIV7Q4sOxD8VV4pCWOw==", "dependencies": { "cliui": "^8.0.1", "escalade": "^3.1.1", @@ -12412,15 +13578,17 @@ }, "node_modules/yargs-parser": { "version": "20.2.4", - "license": "ISC", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.4.tgz", + "integrity": "sha512-WOkpgNhPTlE73h4VFAFsOnomJVaovO8VqLDzy5saChRBFQFBoMYirowyW+Q9HB4HFF4Z7VZTiG3iSzJJA29yRA==", "engines": { "node": ">=10" } }, "node_modules/yargs-unparser": { "version": "2.0.0", + "resolved": "https://registry.npmjs.org/yargs-unparser/-/yargs-unparser-2.0.0.tgz", + "integrity": "sha512-7pRTIA9Qc1caZ0bZ6RYRGbHJthJWuakf+WmHK0rVeLkNrrGhfoabBNdue6kdINI6r4if7ocq9aD/n7xwKOdzOA==", "dev": true, - "license": "MIT", "dependencies": { "camelcase": "^6.0.0", "decamelize": "^4.0.0", @@ -12433,23 +13601,26 @@ }, "node_modules/yargs/node_modules/yargs-parser": { "version": "21.1.1", - "license": "ISC", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-21.1.1.tgz", + "integrity": "sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==", "engines": { "node": ">=12" } }, "node_modules/yn": { "version": "3.1.1", + "resolved": "https://registry.npmjs.org/yn/-/yn-3.1.1.tgz", + "integrity": "sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q==", "dev": true, - "license": "MIT", "engines": { "node": ">=6" } }, "node_modules/yocto-queue": { "version": "0.1.0", + "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz", + "integrity": "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==", "dev": true, - "license": "MIT", "engines": { "node": ">=10" }, diff --git a/integration-tests/scenarios/grantDelegation.test.ts b/integration-tests/scenarios/grantDelegation.test.ts index 99159aacba..5926b8d19b 100644 --- a/integration-tests/scenarios/grantDelegation.test.ts +++ b/integration-tests/scenarios/grantDelegation.test.ts @@ -159,16 +159,6 @@ describe("Delegation Scenario Tests", function () { } }); - it("should fail to grant a duplicate delegation to a provider (DuplicateProvider)", async function () { - const payload = await generateDelegationPayload({ - authorizedMsaId: providerId, - schemaIds: [schemaId], - }); - const addProviderData = ExtrinsicHelper.api.registry.createType("PalletMsaAddProvider", payload); - - const grantDelegationOp = ExtrinsicHelper.grantDelegation(keys, providerKeys, signPayloadSr25519(keys, addProviderData), payload); - await assert.rejects(grantDelegationOp.fundAndSend(), { name: 'DuplicateProvider' }); - }); }); describe("schema permission grants", function () { diff --git a/js/api-augment/definitions/frequency.ts b/js/api-augment/definitions/frequency.ts new file mode 100644 index 0000000000..8d83db96e9 --- /dev/null +++ b/js/api-augment/definitions/frequency.ts @@ -0,0 +1,36 @@ +export default { + rpc: { + getEvents: { + description: "Get block Events", + params: [ + { + name: "at", + type: "H256", + }, + ], + type: "Vec", + }, + }, + types: { + RpcEvent: { + phase: "Option", + pallet: "u8", + event: "u8", + data: "Vec", + }, + }, + runtime: { + AdditionalRuntimeApi: [ + { + methods: { + get_events: { + description: "Get the events with simple SCALE decoding", + params: [], + type: "Vec", + }, + }, + version: 1, + }, + ], + }, +}; diff --git a/js/api-augment/definitions/index.ts b/js/api-augment/definitions/index.ts index 7caf4a7939..f487e9a64c 100644 --- a/js/api-augment/definitions/index.ts +++ b/js/api-augment/definitions/index.ts @@ -5,3 +5,4 @@ export { default as msa } from "./msa"; export { default as messages } from "./messages"; export { default as schemas } from "./schemas"; export { default as statefulStorage } from "./statefulStorage"; +export { default as frequency } from "./frequency"; diff --git a/js/api-augment/test/index.test.ts b/js/api-augment/test/index.test.ts index 1f7fff7431..a62dfc0bc5 100644 --- a/js/api-augment/test/index.test.ts +++ b/js/api-augment/test/index.test.ts @@ -26,12 +26,18 @@ describe("index", function () { it("should know about runtime apis", function () { const topLevelRuntimeApis = Object.keys((api.registry.knownTypes as any).runtime || {}); - assert.deepEqual(topLevelRuntimeApis, ["MsaRuntimeApi", "MessagesRuntimeApi", "SchemasRuntimeApi"]); + assert.deepEqual(topLevelRuntimeApis, [ + "MsaRuntimeApi", + "MessagesRuntimeApi", + "SchemasRuntimeApi", + "AdditionalRuntimeApi", + ]); }); it("should have rpc calls", async function () { assert.notEqual(api.rpc.messages, undefined); assert.notEqual(api.rpc.msa, undefined); assert.notEqual(api.rpc.schemas, undefined); + assert.notEqual(api.rpc.frequency, undefined); }); }); diff --git a/node/service/Cargo.toml b/node/service/Cargo.toml index f4380b059b..3a2d3de9e7 100644 --- a/node/service/Cargo.toml +++ b/node/service/Cargo.toml @@ -24,11 +24,13 @@ common-runtime = { path = "../../runtime/common" } # Substrate frame-benchmarking = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.36" } frame-benchmarking-cli = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.36" } +frame-system = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.36" } pallet-transaction-payment-rpc = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.36" } sc-basic-authorship = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.36" } sc-chain-spec = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.36" } sc-cli = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.36" } sc-client-api = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.36" } +sc-client-db = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.36" } sc-consensus = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.36" } sc-consensus-manual-seal = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.36" } sc-executor = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.36" } @@ -55,6 +57,7 @@ sp-session = { git = "https://github.com/paritytech/substrate", branch = "polkad sp-timestamp = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.36" } sp-transaction-pool = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.36" } sp-wasm-interface = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.36" } + substrate-frame-rpc-system = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.36" } substrate-prometheus-endpoint = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.36" } try-runtime-cli = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.36" } @@ -75,6 +78,7 @@ cumulus-relay-chain-interface = { git = "https://github.com/paritytech/cumulus", cumulus-relay-chain-rpc-interface = { git = "https://github.com/paritytech/cumulus", branch = "polkadot-v0.9.36" } cumulus-relay-chain-minimal-node = { git = "https://github.com/paritytech/cumulus", branch = "polkadot-v0.9.36" } # Frequency +common-helpers = { default-features = false, path = "../../common/helpers" } common-primitives = { default-features = false, path = "../../common/primitives" } pallet-messages-rpc = { path = "../../pallets/messages/src/rpc" } pallet-messages-runtime-api = { path = "../../pallets/messages/src/runtime-api" } @@ -84,10 +88,19 @@ pallet-schemas-rpc = { path = "../../pallets/schemas/src/rpc" } pallet-schemas-runtime-api = { path = "../../pallets/schemas/src/runtime-api" } pallet-stateful-storage-rpc = { path = "../../pallets/stateful-storage/src/rpc" } pallet-stateful-storage-runtime-api = { path = "../../pallets/stateful-storage/src/runtime-api" } +system-runtime-api = { path = "../../runtime/system-runtime-api" } [build-dependencies] substrate-build-script-utils = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.36" } +[dev-dependencies] +tokio = { version = "1.24.1", features = ["macros", "time", "parking_lot"] } +substrate-test-runtime-client = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.36" } +sc-client-api = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.36" } +scale-info = { version = "2.2.0", default-features = false, features = [ +"derive", +] } + [features] default = ["std"] std = [] diff --git a/node/service/src/rpc/frequency_rpc.rs b/node/service/src/rpc/frequency_rpc.rs new file mode 100644 index 0000000000..03077464f3 --- /dev/null +++ b/node/service/src/rpc/frequency_rpc.rs @@ -0,0 +1,53 @@ +// Strong Documentation Lints +#![deny( + rustdoc::broken_intra_doc_links, + rustdoc::missing_crate_level_docs, + rustdoc::invalid_codeblock_attributes, + missing_docs +)] + +use common_helpers::rpc::map_rpc_result; +use common_primitives::{node::generic::BlockId, rpc::RpcEvent}; +use jsonrpsee::{ + core::{async_trait, RpcResult}, + proc_macros::rpc, +}; +use sp_api::ProvideRuntimeApi; +use sp_runtime::traits::Block as BlockT; +use std::sync::Arc; +use system_runtime_api::AdditionalRuntimeApi; + +/// Frequency MSA Custom RPC API +#[rpc(client, server)] +pub trait FrequencyRpcApi { + /// gets the events for a block hash + #[method(name = "frequency_getEvents")] + fn get_events(&self, at: B::Hash) -> RpcResult>; +} + +/// The client handler for the API used by Frequency Service RPC with `jsonrpsee` +pub struct FrequencyRpcHandler { + client: Arc, + _marker: std::marker::PhantomData, +} + +impl FrequencyRpcHandler { + /// Create new instance with the given reference to the client. + pub fn new(client: Arc) -> Self { + Self { client, _marker: Default::default() } + } +} + +#[async_trait] +impl FrequencyRpcApiServer for FrequencyRpcHandler +where + Block: BlockT, + C: Send + Sync + 'static, + C: ProvideRuntimeApi, + C::Api: AdditionalRuntimeApi, +{ + fn get_events(&self, at: ::Hash) -> RpcResult> { + let api = self.client.runtime_api(); + return map_rpc_result(api.get_events(&BlockId::hash(at))) + } +} diff --git a/node/service/src/rpc.rs b/node/service/src/rpc/mod.rs similarity index 89% rename from node/service/src/rpc.rs rename to node/service/src/rpc/mod.rs index 816474eb19..319591438d 100644 --- a/node/service/src/rpc.rs +++ b/node/service/src/rpc/mod.rs @@ -9,7 +9,8 @@ use std::sync::Arc; use common_primitives::node::{AccountId, Balance, Block, Hash, Index as Nonce}; -use sc_client_api::AuxStore; +use sc_client_api::{AuxStore, StorageProvider}; +use sc_client_db::Backend as DbBackend; use sc_consensus_manual_seal::rpc::{EngineCommand, ManualSeal, ManualSealApiServer}; pub use sc_rpc::{DenyUnsafe, SubscriptionTaskExecutor}; use sc_transaction_pool_api::TransactionPool; @@ -17,6 +18,11 @@ use sp_api::ProvideRuntimeApi; use sp_block_builder::BlockBuilder; use sp_blockchain::{Error as BlockChainError, HeaderBackend, HeaderMetadata}; +mod frequency_rpc; + +#[cfg(test)] +mod tests; + /// A type representing all RPC extensions. pub type RpcExtension = jsonrpsee::RpcModule<()>; @@ -41,6 +47,7 @@ where + HeaderBackend + AuxStore + HeaderMetadata + + StorageProvider> + Send + Sync + 'static, @@ -49,6 +56,7 @@ where C::Api: BlockBuilder, C::Api: pallet_messages_runtime_api::MessagesRuntimeApi, C::Api: pallet_schemas_runtime_api::SchemasRuntimeApi, + C::Api: system_runtime_api::AdditionalRuntimeApi, C::Api: pallet_stateful_storage_runtime_api::StatefulStorageRuntimeApi, C::Api: pallet_msa_runtime_api::MsaRuntimeApi, P: TransactionPool + Sync + Send + 'static, @@ -57,6 +65,7 @@ where use substrate_frame_rpc_system::{System, SystemApiServer}; // Frequency RPCs + use frequency_rpc::{FrequencyRpcApiServer, FrequencyRpcHandler}; use pallet_messages_rpc::{MessagesApiServer, MessagesHandler}; use pallet_msa_rpc::{MsaApiServer, MsaHandler}; use pallet_schemas_rpc::{SchemasApiServer, SchemasHandler}; @@ -70,6 +79,7 @@ where module.merge(MessagesHandler::new(client.clone()).into_rpc())?; module.merge(SchemasHandler::new(client.clone()).into_rpc())?; module.merge(MsaHandler::new(client.clone()).into_rpc())?; + module.merge(FrequencyRpcHandler::new(client.clone()).into_rpc())?; module.merge(StatefulStorageHandler::new(client).into_rpc())?; if let Some(command_sink) = command_sink { module.merge( diff --git a/node/service/src/rpc/tests/mod.rs b/node/service/src/rpc/tests/mod.rs new file mode 100644 index 0000000000..b38b9ada52 --- /dev/null +++ b/node/service/src/rpc/tests/mod.rs @@ -0,0 +1,55 @@ +mod rpc_mock; + +use rpc_mock::*; + +use crate::rpc::frequency_rpc::{FrequencyRpcApiServer, FrequencyRpcHandler}; +use codec::{Decode, Encode}; +use common_primitives::rpc::RpcEvent; +use frame_system::{EventRecord, Phase}; +use sp_core::H256; +use sp_runtime::scale_info::TypeInfo; +use std::sync::Arc; +use substrate_test_runtime_client::runtime::Block; +use system_runtime_api::AdditionalRuntimeApi; + +#[derive(Debug, TypeInfo, Clone, Encode, Decode, Eq, PartialEq)] +enum FakeRuntime { + #[codec(index = 60)] + FakePallet(FakePalletEvents), +} + +#[derive(Debug, TypeInfo, Clone, Encode, Decode, Eq, PartialEq)] +enum FakePalletEvents { + #[codec(index = 7)] + FakeEvent { msa_id: u64 }, +} + +sp_api::mock_impl_runtime_apis! { + impl AdditionalRuntimeApi for TestRuntimeApi { + fn get_events() -> Vec { + let event: EventRecord = EventRecord { + phase: Phase::ApplyExtrinsic(5), + event: FakeRuntime::FakePallet(FakePalletEvents::FakeEvent { msa_id: 42 }), + topics: vec![], + }; + vec![event.into()] + } + } +} + +type GetEventsResult = Result, jsonrpsee::core::Error>; + +#[tokio::test] +async fn get_events_should_work() { + let client = Arc::new(TestApi {}); + let api = FrequencyRpcHandler::new(client); + + let result: GetEventsResult = api.get_events(H256::random()); + + assert_eq!(false, result.is_err()); + + assert_eq!( + result.unwrap()[0], + RpcEvent { phase: Some(5), pallet: 60, event: 7, data: vec![42, 0, 0, 0, 0, 0, 0, 0] } + ); +} diff --git a/node/service/src/rpc/tests/rpc_mock.rs b/node/service/src/rpc/tests/rpc_mock.rs new file mode 100644 index 0000000000..14b224a04b --- /dev/null +++ b/node/service/src/rpc/tests/rpc_mock.rs @@ -0,0 +1,64 @@ +use sp_api::{ApiRef, ProvideRuntimeApi}; +use substrate_test_runtime_client::runtime::Block; + +use sp_blockchain::HeaderBackend; +use sp_runtime::{ + generic::BlockId, + traits::{Block as BlockT, NumberFor, Zero}, +}; + +pub struct TestApi {} + +pub struct TestRuntimeApi {} + +impl ProvideRuntimeApi for TestApi { + type Api = TestRuntimeApi; + + fn runtime_api<'a>(&'a self) -> ApiRef<'a, Self::Api> { + TestRuntimeApi {}.into() + } +} + +/// Blockchain database header backend. Does not perform any validation. +impl HeaderBackend for TestApi { + fn header( + &self, + _id: BlockId, + ) -> std::result::Result, sp_blockchain::Error> { + Ok(None) + } + + fn info(&self) -> sc_client_api::blockchain::Info { + sc_client_api::blockchain::Info { + best_hash: Default::default(), + best_number: Zero::zero(), + finalized_hash: Default::default(), + finalized_number: Zero::zero(), + genesis_hash: Default::default(), + number_leaves: Default::default(), + finalized_state: None, + block_gap: None, + } + } + + fn status( + &self, + _id: BlockId, + ) -> std::result::Result { + Ok(sc_client_api::blockchain::BlockStatus::Unknown) + } + + fn number( + &self, + _hash: Block::Hash, + ) -> std::result::Result>, sp_blockchain::Error> { + Ok(None) + } + + fn hash( + &self, + _number: NumberFor, + ) -> std::result::Result, sp_blockchain::Error> { + Ok(None) + } +} diff --git a/pallets/msa/Cargo.toml b/pallets/msa/Cargo.toml index 8bb41c3dcc..5983afc560 100644 --- a/pallets/msa/Cargo.toml +++ b/pallets/msa/Cargo.toml @@ -32,7 +32,8 @@ common-primitives = { default-features = false, path = "../../common/primitives" [dev-dependencies] common-runtime = { path = '../../runtime/common', default-features = false } pallet-schemas = { path = "../schemas", default-features = false } -sp-keystore = { default-features = false, git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.36" } +pallet-collective = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.36" } +sp-keystore = { default-features = false, git = "https://github.com/paritytech/substrate.git", branch = "polkadot-v0.9.36" } [features] default = ["std"] @@ -52,5 +53,6 @@ std = [ "sp-core/std", "pallet-schemas/std", "common-primitives/std", + "common-runtime/std", ] try-runtime = ["frame-support/try-runtime"] diff --git a/pallets/msa/src/audit_replay_tests.rs b/pallets/msa/src/audit_replay_tests.rs index a6626e7918..eb75cf43d7 100644 --- a/pallets/msa/src/audit_replay_tests.rs +++ b/pallets/msa/src/audit_replay_tests.rs @@ -5,15 +5,23 @@ use crate::{ }; use common_primitives::node::AccountId; use frame_support::{ - assert_noop, assert_ok, parameter_types, - traits::{ConstU16, ConstU32, ConstU64, Everything}, + assert_noop, assert_ok, + dispatch::DispatchError, + parameter_types, + traits::{ConstU16, ConstU32, ConstU64, EitherOfDiverse, Everything}, }; +use frame_system::EnsureRoot; +use pallet_collective; + use sp_core::H256; use sp_runtime::{ testing::Header, traits::{BlakeTwo256, ConvertInto, IdentityLookup}, }; +use codec::Encode; + +pub use common_runtime::constants::*; pub use pallet_msa::Call as MsaCall; type UncheckedExtrinsic = frame_system::mocking::MockUncheckedExtrinsic; @@ -29,6 +37,7 @@ frame_support::construct_runtime!( System: frame_system::{Pallet, Call, Config, Storage, Event}, Msa: pallet_msa::{Pallet, Call, Storage, Event}, Schemas: pallet_schemas::{Pallet, Call, Storage, Event}, + Council: pallet_collective::::{Pallet, Call, Config, Storage, Event, Origin}, } ); @@ -65,6 +74,15 @@ impl pallet_schemas::Config for Test { type MinSchemaModelSizeBytes = ConstU32<10>; type SchemaModelMaxBytesBoundedVecLimit = ConstU32<10>; type MaxSchemaRegistrations = ConstU16<10>; + // The proposal type + type Proposal = RuntimeCall; + // The Council proposal provider interface + type ProposalProvider = CouncilProposalProvider; + // The origin that is allowed to create schemas via governance + type CreateSchemaViaGovernanceOrigin = EitherOfDiverse< + EnsureRoot, + pallet_collective::EnsureProportionMoreThan, + >; type MaxSchemaSettingsPerSchema = ConstU32<1>; } @@ -100,6 +118,46 @@ impl sp_std::fmt::Debug for MaxSchemaGrantsPerDelegation { } } +// See https://paritytech.github.io/substrate/master/pallet_collective/index.html for +// the descriptions of these configs. +type CouncilCollective = pallet_collective::Instance1; +impl pallet_collective::Config for Test { + type RuntimeOrigin = RuntimeOrigin; + type Proposal = RuntimeCall; + type RuntimeEvent = RuntimeEvent; + type MotionDuration = CouncilMotionDuration; + type MaxProposals = CouncilMaxProposals; + type MaxMembers = CouncilMaxMembers; + type DefaultVote = pallet_collective::PrimeDefaultVote; + type WeightInfo = (); +} +/// Interface to collective pallet to propose a proposal. +pub struct CouncilProposalProvider; +impl pallet_msa::ProposalProvider for CouncilProposalProvider { + fn propose( + who: AccountId, + threshold: u32, + proposal: Box, + ) -> Result<(u32, u32), DispatchError> { + let length_bound: u32 = proposal.using_encoded(|p| p.len() as u32); + Council::do_propose_proposed(who, threshold, proposal, length_bound) + } + + fn propose_with_simple_majority( + who: AccountId, + proposal: Box, + ) -> Result<(u32, u32), DispatchError> { + let threshold: u32 = ((Council::members().len() / 2) + 1) as u32; + let length_bound: u32 = proposal.using_encoded(|p| p.len() as u32); + Council::do_propose_proposed(who, threshold, proposal, length_bound) + } + + #[cfg(any(feature = "runtime-benchmarks", feature = "test"))] + fn proposal_count() -> u32 { + Council::proposal_count() + } +} + impl pallet_msa::Config for Test { type RuntimeEvent = RuntimeEvent; type WeightInfo = (); @@ -113,6 +171,15 @@ impl pallet_msa::Config for Test { type NumberOfBuckets = ConstU32<10>; /// This MUST ALWAYS be MaxSignaturesPerBucket * NumberOfBuckets. type MaxSignaturesStored = ConstU32<200>; + // The proposal type + type Proposal = RuntimeCall; + // The Council proposal provider interface + type ProposalProvider = CouncilProposalProvider; + // The origin that is allowed to create providers via governance + type CreateProviderViaGovernanceOrigin = EitherOfDiverse< + EnsureRoot, + pallet_collective::EnsureMembers, + >; } #[test] diff --git a/pallets/msa/src/benchmarking.rs b/pallets/msa/src/benchmarking.rs index 989c283630..ac8d36ea1e 100644 --- a/pallets/msa/src/benchmarking.rs +++ b/pallets/msa/src/benchmarking.rs @@ -185,7 +185,7 @@ benchmarks! { } create_provider { - let s in 0 .. T::MaxProviderNameSize::get(); + let s = T::MaxProviderNameSize::get(); let provider_name = (1 .. s as u8).collect::>(); let account = create_account::("account", 0); @@ -195,6 +195,30 @@ benchmarks! { assert!(Msa::::get_provider_registry_entry(ProviderId(provider_msa_id)).is_some()); } + create_provider_via_governance { + let s = T::MaxProviderNameSize::get(); + + let provider_name = (1 .. s as u8).collect::>(); + let account = create_account::("account", 0); + let (provider_msa_id, provider_public_key) = Msa::::create_account(account.into(), EMPTY_FUNCTION).unwrap(); + + }: _ (RawOrigin::Root, provider_public_key, provider_name) + verify { + assert!(Msa::::is_registered_provider(provider_msa_id)); + } + + propose_to_be_provider { + let s = T::MaxProviderNameSize::get(); + + let provider_name = (1 .. s as u8).collect::>(); + let account = create_account::("account", 0); + let (provider_msa_id, provider_public_key) = Msa::::create_account(account.into(), EMPTY_FUNCTION).unwrap(); + + }: _ (RawOrigin::Signed(provider_public_key), provider_name) + verify { + assert_eq!(frame_system::Pallet::::events().len(), 1); + } + on_initialize { // we should not need to max out storage for this benchmark, see: // https://substrate.stackexchange.com/a/4430/2060 diff --git a/pallets/msa/src/lib.rs b/pallets/msa/src/lib.rs index 5e71873553..e83522ffc5 100644 --- a/pallets/msa/src/lib.rs +++ b/pallets/msa/src/lib.rs @@ -56,8 +56,8 @@ use codec::{Decode, Encode}; use frame_support::{ - dispatch::{DispatchInfo, DispatchResult}, - ensure, + dispatch::{DispatchInfo, DispatchResult, PostDispatchInfo}, + ensure, log, pallet_prelude::*, traits::IsSubType, }; @@ -80,6 +80,7 @@ use common_primitives::{ ProviderLookup, ProviderRegistryEntry, SchemaGrantValidator, EXPECTED_MAX_NUMBER_OF_PROVIDERS_PER_DELEGATOR, }, + node::ProposalProvider, schema::{SchemaId, SchemaValidator}, }; @@ -105,10 +106,8 @@ mod replay_tests; mod signature_registry_tests; pub mod weights; - #[frame_support::pallet] pub mod pallet { - use frame_support::log::error as log_err; use super::*; @@ -161,6 +160,17 @@ pub mod pallet { /// calculated value. #[pallet::constant] type MaxSignaturesStored: Get>; + + /// The origin that is allowed to create providers via governance + type CreateProviderViaGovernanceOrigin: EnsureOrigin; + + /// The runtime call dispatch type. + type Proposal: Parameter + + Dispatchable + + From>; + + /// The Council proposal provider interface + type ProposalProvider: ProposalProvider; } #[pallet::pallet] @@ -509,24 +519,11 @@ pub mod pallet { /// * [`Error::DuplicateProviderRegistryEntry`] - a ProviderRegistryEntry associated with the given MSA id already exists. /// #[pallet::call_index(2)] - #[pallet::weight(T::WeightInfo::create_provider(provider_name.len() as u32))] + #[pallet::weight(T::WeightInfo::create_provider())] pub fn create_provider(origin: OriginFor, provider_name: Vec) -> DispatchResult { let provider_key = ensure_signed(origin)?; - let bounded_name: BoundedVec = - provider_name.try_into().map_err(|_| Error::::ExceedsMaxProviderNameSize)?; - let provider_msa_id = Self::ensure_valid_msa_key(&provider_key)?; - ProviderToRegistryEntry::::try_mutate( - ProviderId(provider_msa_id), - |maybe_metadata| -> DispatchResult { - ensure!( - maybe_metadata.take().is_none(), - Error::::DuplicateProviderRegistryEntry - ); - *maybe_metadata = Some(ProviderRegistryEntry { provider_name: bounded_name }); - Ok(()) - }, - )?; + Self::create_provider_for(provider_msa_id, provider_name)?; Self::deposit_event(Event::ProviderCreated { provider_id: ProviderId(provider_msa_id), }); @@ -575,7 +572,12 @@ pub mod pallet { add_provider_payload.authorized_msa_id == provider_id.0, Error::::UnauthorizedDelegator ); - Self::add_provider(provider_id, delegator_id, add_provider_payload.schema_ids)?; + + Self::upsert_schema_permissions( + provider_id, + delegator_id, + add_provider_payload.schema_ids, + )?; Self::deposit_event(Event::DelegationGranted { delegator_id, provider_id }); Ok(()) @@ -608,7 +610,10 @@ pub mod pallet { Self::deposit_event(Event::DelegationRevoked { delegator_id, provider_id }); }, None => { - log_err!("SignedExtension did not catch invalid MSA for account {:?}, ", who); + log::error!( + "SignedExtension did not catch invalid MSA for account {:?}, ", + who + ); }, } @@ -712,7 +717,10 @@ pub mod pallet { Self::deposit_event(Event::PublicKeyDeleted { key: public_key_to_delete }); }, None => { - log_err!("SignedExtension did not catch invalid MSA for account {:?}, ", who); + log::error!( + "SignedExtension did not catch invalid MSA for account {:?}, ", + who + ); }, } Ok(()) @@ -748,7 +756,10 @@ pub mod pallet { Self::deposit_event(Event::DelegationRevoked { provider_id, delegator_id }) }, None => { - log_err!("SignedExtension did not catch invalid MSA for account {:?}, ", who); + log::error!( + "SignedExtension did not catch invalid MSA for account {:?}, ", + who + ); }, } @@ -799,6 +810,8 @@ pub mod pallet { #[pallet::weight(T::WeightInfo::revoke_schema_permissions( schema_ids.len() as u32 ))] + #[allow(deprecated)] + #[deprecated(since = "1.3.0", note = "revoke_schema_permissions() has been deprecated.")] pub fn revoke_schema_permissions( origin: OriginFor, provider_msa_id: MessageSourceId, @@ -848,11 +861,64 @@ pub mod pallet { Self::deposit_event(Event::MsaRetired { msa_id }); }, None => { - log_err!("SignedExtension did not catch invalid MSA for account {:?}, ", who); + log::error!( + "SignedExtension did not catch invalid MSA for account {:?}, ", + who + ); }, } Ok(Some(T::WeightInfo::retire_msa(num_deletions)).into()) } + + /// Propose to be a provider. Creates a proposal for council approval to create a provider from a MSA + /// + /// # Errors + /// - [`NoKeyExists`](Error::NoKeyExists) - If there is not MSA for `origin`. + #[pallet::call_index(11)] + #[pallet::weight(T::WeightInfo::propose_to_be_provider())] + pub fn propose_to_be_provider( + origin: OriginFor, + provider_name: Vec, + ) -> DispatchResult { + let proposer = ensure_signed(origin)?; + Self::ensure_valid_msa_key(&proposer)?; + + let proposal: Box = Box::new( + (Call::::create_provider_via_governance { + provider_key: proposer.clone(), + provider_name, + }) + .into(), + ); + let threshold = 1; + T::ProposalProvider::propose(proposer, threshold, proposal)?; + Ok(()) + } + + /// Create a provider by means of governance approval + /// + /// # Events + /// * [`Event::ProviderCreated`] + /// + /// # Errors + /// * [`Error::NoKeyExists`] - account does not have an MSA + /// * [`Error::ExceedsMaxProviderNameSize`] - Too long of a provider name + /// * [`Error::DuplicateProviderRegistryEntry`] - a ProviderRegistryEntry associated with the given MSA id already exists. + #[pallet::call_index(12)] + #[pallet::weight(T::WeightInfo::create_provider_via_governance())] + pub fn create_provider_via_governance( + origin: OriginFor, + provider_key: T::AccountId, + provider_name: Vec, + ) -> DispatchResult { + T::CreateProviderViaGovernanceOrigin::ensure_origin(origin)?; + let provider_msa_id = Self::ensure_valid_msa_key(&provider_key)?; + Self::create_provider_for(provider_msa_id, provider_name)?; + Self::deposit_event(Event::ProviderCreated { + provider_id: ProviderId(provider_msa_id), + }); + Ok(()) + } } } @@ -1068,6 +1134,88 @@ impl Pallet { }) } + /// Modify delegation's schema permissions + /// + /// # Errors + /// * [`Error::ExceedsMaxSchemaGrantsPerDelegation`] + pub fn upsert_schema_permissions( + provider_id: ProviderId, + delegator_id: DelegatorId, + schema_ids: Vec, + ) -> DispatchResult { + Self::try_mutate_delegation(delegator_id, provider_id, |delegation, _is_new_delegation| { + Self::ensure_all_schema_ids_are_valid(&schema_ids)?; + + // Create revoke and insert lists + let mut revoke_ids: Vec = Vec::new(); + let mut insert_ids: Vec = Vec::new(); + + let existing_keys = delegation.schema_permissions.keys().into_iter(); + + for existing_schema_id in existing_keys { + if !schema_ids.contains(&existing_schema_id) { + match delegation.schema_permissions.get(&existing_schema_id) { + Some(block) => + if *block == T::BlockNumber::zero() { + revoke_ids.push(*existing_schema_id); + }, + None => {}, + } + } + } + for schema_id in &schema_ids { + if !delegation.schema_permissions.contains_key(&schema_id) { + insert_ids.push(*schema_id); + } + } + + let current_block = frame_system::Pallet::::block_number(); + + // Revoke any that are not in the new list that are not already revoked + PermittedDelegationSchemas::::try_get_mut_schemas( + delegation, + revoke_ids, + current_block, + )?; + + // Insert any new ones that are not in the existing list + PermittedDelegationSchemas::::try_insert_schemas(delegation, insert_ids)?; + Ok(()) + }) + } + + /// Adds an association between MSA id and ProviderRegistryEntry. As of now, the + /// only piece of metadata we are recording is provider name. + /// + /// # Events + /// * [`Event::ProviderCreated`] + /// + /// # Errors + /// * [`Error::NoKeyExists`] - account does not have an MSA + /// * [`Error::ExceedsMaxProviderNameSize`] - Too long of a provider name + /// * [`Error::DuplicateProviderRegistryEntry`] - a ProviderRegistryEntry associated with the given MSA id already exists. + /// + pub fn create_provider_for( + provider_msa_id: MessageSourceId, + provider_name: Vec, + ) -> DispatchResult { + let bounded_name: BoundedVec = + provider_name.try_into().map_err(|_| Error::::ExceedsMaxProviderNameSize)?; + + ProviderToRegistryEntry::::try_mutate( + ProviderId(provider_msa_id), + |maybe_metadata| -> DispatchResult { + ensure!( + maybe_metadata.take().is_none(), + Error::::DuplicateProviderRegistryEntry + ); + *maybe_metadata = Some(ProviderRegistryEntry { provider_name: bounded_name }); + Ok(()) + }, + )?; + Ok(()) + } + /// Mutates the delegation relationship storage item only when the supplied function returns an 'Ok()' result. /// The callback function 'f' takes the value (a delegation) and a reference to a boolean variable. This callback /// sets the boolean variable to 'true' if the value is to be inserted and to 'false' if it is to be updated. diff --git a/pallets/msa/src/mock.rs b/pallets/msa/src/mock.rs index fb8d38fccf..06f7e144b3 100644 --- a/pallets/msa/src/mock.rs +++ b/pallets/msa/src/mock.rs @@ -1,9 +1,15 @@ use crate::{self as pallet_msa, types::EMPTY_FUNCTION, AddProvider}; -use common_primitives::{msa::MessageSourceId, node::BlockNumber, utils::wrap_binary_data}; +use common_primitives::{ + msa::MessageSourceId, node::BlockNumber, schema::SchemaId, utils::wrap_binary_data, +}; use frame_support::{ - assert_ok, parameter_types, - traits::{ConstU16, ConstU32, ConstU64, OnFinalize, OnInitialize}, + assert_ok, + dispatch::DispatchError, + parameter_types, + traits::{ConstU16, ConstU32, ConstU64, EitherOfDiverse, OnFinalize, OnInitialize}, }; +use frame_system::EnsureRoot; +use pallet_collective; use sp_core::{sr25519, sr25519::Public, Encode, Pair, H256}; use sp_runtime::{ testing::Header, @@ -11,6 +17,8 @@ use sp_runtime::{ AccountId32, MultiSignature, }; +pub use common_runtime::constants::*; + pub use pallet_msa::Call as MsaCall; use common_primitives::node::AccountId; @@ -28,9 +36,24 @@ frame_support::construct_runtime!( System: frame_system::{Pallet, Call, Config, Storage, Event}, Msa: pallet_msa::{Pallet, Call, Storage, Event}, Schemas: pallet_schemas::{Pallet, Call, Storage, Event}, + Council: pallet_collective::::{Pallet, Call, Config, Storage, Event, Origin}, } ); +// See https://paritytech.github.io/substrate/master/pallet_collective/index.html for +// the descriptions of these configs. +type CouncilCollective = pallet_collective::Instance1; +impl pallet_collective::Config for Test { + type RuntimeOrigin = RuntimeOrigin; + type Proposal = RuntimeCall; + type RuntimeEvent = RuntimeEvent; + type MotionDuration = CouncilMotionDuration; + type MaxProposals = CouncilMaxProposals; + type MaxMembers = CouncilMaxMembers; + type DefaultVote = pallet_collective::PrimeDefaultVote; + type WeightInfo = (); +} + impl frame_system::Config for Test { type BaseCallFilter = frame_support::traits::Everything; type BlockWeights = (); @@ -65,6 +88,16 @@ impl pallet_schemas::Config for Test { type SchemaModelMaxBytesBoundedVecLimit = ConstU32<10>; type MaxSchemaRegistrations = ConstU16<10>; type MaxSchemaSettingsPerSchema = ConstU32<1>; + // The proposal type + type Proposal = RuntimeCall; + // The Council proposal provider interface + type ProposalProvider = CouncilProposalProvider; + // The origin that is allowed to create schemas via governance + // It has to be this way so benchmarks will pass in CI. + type CreateSchemaViaGovernanceOrigin = EitherOfDiverse< + EnsureRoot, + pallet_collective::EnsureProportionMoreThan, + >; } parameter_types! { @@ -98,6 +131,33 @@ impl sp_std::fmt::Debug for MaxSchemaGrantsPerDelegation { Ok(()) } } +/// Interface to collective pallet to propose a proposal. +pub struct CouncilProposalProvider; + +impl pallet_msa::ProposalProvider for CouncilProposalProvider { + fn propose( + who: AccountId, + threshold: u32, + proposal: Box, + ) -> Result<(u32, u32), DispatchError> { + let length_bound: u32 = proposal.using_encoded(|p| p.len() as u32); + Council::do_propose_proposed(who, threshold, proposal, length_bound) + } + + fn propose_with_simple_majority( + who: AccountId, + proposal: Box, + ) -> Result<(u32, u32), DispatchError> { + let threshold: u32 = ((Council::members().len() / 2) + 1) as u32; + let length_bound: u32 = proposal.using_encoded(|p| p.len() as u32); + Council::do_propose_proposed(who, threshold, proposal, length_bound) + } + + #[cfg(any(feature = "runtime-benchmarks", feature = "test"))] + fn proposal_count() -> u32 { + Council::proposal_count() + } +} impl pallet_msa::Config for Test { type RuntimeEvent = RuntimeEvent; @@ -112,6 +172,16 @@ impl pallet_msa::Config for Test { type NumberOfBuckets = ConstU32<2>; /// This MUST ALWAYS be MaxSignaturesPerBucket * NumberOfBuckets. type MaxSignaturesStored = ConstU32<8000>; + // The proposal type + type Proposal = RuntimeCall; + // The Council proposal provider interface + type ProposalProvider = CouncilProposalProvider; + // The origin that is allowed to create providers via governance + // It has to be this way so benchmarks will pass in CI. + type CreateProviderViaGovernanceOrigin = EitherOfDiverse< + EnsureRoot, + pallet_collective::EnsureMembers, + >; } pub fn new_test_ext() -> sp_io::TestExternalities { @@ -160,9 +230,20 @@ pub fn create_account() -> (MessageSourceId, sr25519::Pair) { pub fn create_and_sign_add_provider_payload( delegator_pair: sr25519::Pair, provider_msa: MessageSourceId, +) -> (MultiSignature, AddProvider) { + create_and_sign_add_provider_payload_with_schemas(delegator_pair, provider_msa, None) +} + +/// Creates and signs an `AddProvider` struct using the provided delegator keypair, provider MSA and schema ids +/// # Returns +/// (MultiSignature, AddProvider) - Returns a tuple with the signature and the AddProvider struct +pub fn create_and_sign_add_provider_payload_with_schemas( + delegator_pair: sr25519::Pair, + provider_msa: MessageSourceId, + schema_ids: Option>, ) -> (MultiSignature, AddProvider) { let expiration: BlockNumber = 10; - let add_provider_payload = AddProvider::new(provider_msa, None, expiration); + let add_provider_payload = AddProvider::new(provider_msa, schema_ids, expiration); let encode_add_provider_data = wrap_binary_data(add_provider_payload.encode()); let signature: MultiSignature = delegator_pair.sign(&encode_add_provider_data).into(); (signature, add_provider_payload) diff --git a/pallets/msa/src/signature_registry_tests.rs b/pallets/msa/src/signature_registry_tests.rs index b834f61678..38af18ca2d 100644 --- a/pallets/msa/src/signature_registry_tests.rs +++ b/pallets/msa/src/signature_registry_tests.rs @@ -6,9 +6,14 @@ use crate::{ }; use frame_support::{ - assert_noop, assert_ok, parameter_types, - traits::{ConstU16, ConstU32, ConstU64, Get}, + assert_noop, assert_ok, + dispatch::DispatchError, + parameter_types, + traits::{ConstU16, ConstU32, ConstU64, EitherOfDiverse, Everything, Get}, }; +use frame_system::EnsureRoot; +use pallet_collective; + use sp_core::{sr25519, Encode, Pair, H256}; use sp_runtime::{ testing::Header, @@ -16,6 +21,8 @@ use sp_runtime::{ MultiSignature, }; +pub use common_runtime::constants::*; + use common_primitives::{ node::{AccountId, BlockNumber}, utils::wrap_binary_data, @@ -37,11 +44,26 @@ frame_support::construct_runtime!( System: frame_system::{Pallet, Call, Config, Storage, Event}, Msa: pallet_msa::{Pallet, Call, Storage, Event}, Schemas: pallet_schemas::{Pallet, Call, Storage, Event}, + Council: pallet_collective::::{Pallet, Call, Config, Storage, Event, Origin}, } ); +// See https://paritytech.github.io/substrate/master/pallet_collective/index.html for +// the descriptions of these configs. +type CouncilCollective = pallet_collective::Instance1; +impl pallet_collective::Config for Test { + type RuntimeOrigin = RuntimeOrigin; + type Proposal = RuntimeCall; + type RuntimeEvent = RuntimeEvent; + type MotionDuration = CouncilMotionDuration; + type MaxProposals = CouncilMaxProposals; + type MaxMembers = CouncilMaxMembers; + type DefaultVote = pallet_collective::PrimeDefaultVote; + type WeightInfo = (); +} + impl frame_system::Config for Test { - type BaseCallFilter = frame_support::traits::Everything; + type BaseCallFilter = Everything; type BlockWeights = (); type BlockLength = (); type DbWeight = (); @@ -73,6 +95,15 @@ impl pallet_schemas::Config for Test { type MinSchemaModelSizeBytes = ConstU32<10>; type SchemaModelMaxBytesBoundedVecLimit = ConstU32<10>; type MaxSchemaRegistrations = ConstU16<10>; + // The proposal type + type Proposal = RuntimeCall; + // The Council proposal provider interface + type ProposalProvider = CouncilProposalProvider; + // The origin that is allowed to create schemas via governance + type CreateSchemaViaGovernanceOrigin = EitherOfDiverse< + EnsureRoot, + pallet_collective::EnsureProportionMoreThan, + >; type MaxSchemaSettingsPerSchema = ConstU32<1>; } @@ -108,10 +139,40 @@ impl sp_std::fmt::Debug for MaxSchemaGrantsPerDelegation { } } +pub struct CouncilProposalProvider; +impl pallet_msa::ProposalProvider for CouncilProposalProvider { + fn propose( + who: AccountId, + threshold: u32, + proposal: Box, + ) -> Result<(u32, u32), DispatchError> { + let length_bound: u32 = proposal.using_encoded(|p| p.len() as u32); + Council::do_propose_proposed(who, threshold, proposal, length_bound) + } + + fn propose_with_simple_majority( + who: AccountId, + proposal: Box, + ) -> Result<(u32, u32), DispatchError> { + let threshold: u32 = ((Council::members().len() / 2) + 1) as u32; + let length_bound: u32 = proposal.using_encoded(|p| p.len() as u32); + Council::do_propose_proposed(who, threshold, proposal, length_bound) + } + + #[cfg(any(feature = "runtime-benchmarks", feature = "test"))] + fn proposal_count() -> u32 { + Council::proposal_count() + } +} + impl pallet_msa::Config for Test { type RuntimeEvent = RuntimeEvent; type WeightInfo = (); type ConvertIntoAccountId32 = ConvertInto; + // The proposal type + type Proposal = RuntimeCall; + // The Council proposal provider interface + type ProposalProvider = CouncilProposalProvider; type MaxPublicKeysPerMsa = MaxPublicKeysPerMsa; type MaxSchemaGrantsPerDelegation = MaxSchemaGrantsPerDelegation; type MaxProviderNameSize = MaxProviderNameSize; @@ -121,6 +182,12 @@ impl pallet_msa::Config for Test { type NumberOfBuckets = ConstU32<2>; // This MUST ALWAYS be MaxSignaturesPerBucket * NumberOfBuckets. type MaxSignaturesStored = ConstU32<20>; + // The origin that is allowed to create providers via governance + // It has to be this way so benchmarks will pass in CI. + type CreateProviderViaGovernanceOrigin = EitherOfDiverse< + EnsureRoot, + pallet_collective::EnsureMembers, + >; } #[test] pub fn cannot_register_too_many_signatures_in_one_bucket() { diff --git a/pallets/msa/src/tests.rs b/pallets/msa/src/tests.rs index a9d418eee5..60d11a95bb 100644 --- a/pallets/msa/src/tests.rs +++ b/pallets/msa/src/tests.rs @@ -2,8 +2,10 @@ use frame_support::{ assert_err, assert_noop, assert_ok, dispatch::{DispatchInfo, GetDispatchInfo, Pays, Weight}, pallet_prelude::InvalidTransaction, + traits::{ChangeMembers, Hash}, BoundedBTreeMap, }; + use sp_core::{crypto::AccountId32, sr25519, sr25519::Public, Encode, Pair}; use sp_runtime::{ traits::SignedExtension, transaction_validity::TransactionValidity, ArithmeticError, @@ -643,6 +645,148 @@ pub fn add_provider_to_msa_is_success() { }); } +#[test] +pub fn grant_delegation_changes_schema_permissions() { + new_test_ext().execute_with(|| { + let (key_pair, _) = sr25519::Pair::generate(); + let provider_account = key_pair.public(); + + let (delegator_pair, _) = sr25519::Pair::generate(); + let delegator_account = delegator_pair.public(); + + // Create provider account and get its MSA ID (u64) + assert_ok!(Msa::create(RuntimeOrigin::signed(provider_account.into()))); + let provider_msa = + Msa::ensure_valid_msa_key(&AccountId32::new(provider_account.0)).unwrap(); + + // Create delegator account and get its MSA ID (u64) + assert_ok!(Msa::create(RuntimeOrigin::signed(delegator_account.into()))); + let delegator_msa = + Msa::ensure_valid_msa_key(&AccountId32::new(delegator_account.0)).unwrap(); + + // Register provider + assert_ok!(Msa::create_provider( + RuntimeOrigin::signed(provider_account.into()), + Vec::from("Foo") + )); + + System::set_block_number(1); + set_schema_count::(10); + + // Create delegation without any schema permissions + let (delegator_signature, add_provider_payload) = + create_and_sign_add_provider_payload_with_schemas( + delegator_pair.clone(), + provider_msa, + None, + ); + + assert_ok!(Msa::grant_delegation( + RuntimeOrigin::signed(provider_account.into()), + delegator_account.into(), + delegator_signature, + add_provider_payload + )); + + let provider = ProviderId(provider_msa); + let delegator = DelegatorId(delegator_msa); + + assert_eq!( + Msa::get_delegation(delegator, provider), + Some(Delegation { revoked_at: 0, schema_permissions: Default::default() }) + ); + + System::assert_last_event( + Event::DelegationGranted { + delegator_id: delegator_msa.into(), + provider_id: provider_msa.into(), + } + .into(), + ); + + // Grant delegation w/schemas 1, 2, 3, and 4 at current block 1 + let (delegator_signature, add_provider_payload) = + create_and_sign_add_provider_payload_with_schemas( + delegator_pair.clone(), + provider_msa, + Some(vec![1, 2, 3, 4]), + ); + + assert_ok!(Msa::grant_delegation( + RuntimeOrigin::signed(provider_account.into()), + delegator_account.into(), + delegator_signature, + add_provider_payload + )); + + let mut sp = BoundedBTreeMap::::new(); + assert_ok!(sp.try_insert(1u16, 0u64)); + assert_ok!(sp.try_insert(2u16, 0u64)); + assert_ok!(sp.try_insert(3u16, 0u64)); + assert_ok!(sp.try_insert(4u16, 0u64)); + + let expected = Delegation { revoked_at: 0, schema_permissions: sp }; + + assert_eq!(Msa::get_delegation(delegator, provider), Some(expected)); + + System::set_block_number(2); + // Grant delegation w/schemas 3, 4, 5, and 6. + // This should add 5 and 6 w/block 0 and revoke 1 and 2 at block 2. + let (delegator_signature, add_provider_payload) = + create_and_sign_add_provider_payload_with_schemas( + delegator_pair.clone(), + provider_msa, + Some(vec![3, 4, 5, 6]), + ); + + assert_ok!(Msa::grant_delegation( + RuntimeOrigin::signed(provider_account.into()), + delegator_account.into(), + delegator_signature, + add_provider_payload + )); + + let mut sp = BoundedBTreeMap::::new(); + assert_ok!(sp.try_insert(1u16, 2u64)); // schema id 1 revoked at block 2 + assert_ok!(sp.try_insert(2u16, 2u64)); // schema id 2 revoked at block 2 + assert_ok!(sp.try_insert(3u16, 0u64)); + assert_ok!(sp.try_insert(4u16, 0u64)); + assert_ok!(sp.try_insert(5u16, 0u64)); + assert_ok!(sp.try_insert(6u16, 0u64)); + + let expected = Delegation { revoked_at: 0, schema_permissions: sp }; + + assert_eq!(Msa::get_delegation(delegator, provider), Some(expected)); + + System::set_block_number(5); + // Grant 1, 3, 6 + let (delegator_signature, add_provider_payload) = + create_and_sign_add_provider_payload_with_schemas( + delegator_pair.clone(), + provider_msa, + Some(vec![1, 3, 6]), + ); + + assert_ok!(Msa::grant_delegation( + RuntimeOrigin::signed(provider_account.into()), + delegator_account.into(), + delegator_signature, + add_provider_payload + )); + + let mut sp = BoundedBTreeMap::::new(); + assert_ok!(sp.try_insert(1u16, 2u64)); // schema id 1 should stay revoked at block 2 + assert_ok!(sp.try_insert(2u16, 2u64)); // schema id 2 should stay revoked at block 2 + assert_ok!(sp.try_insert(3u16, 0u64)); // leave alone + assert_ok!(sp.try_insert(4u16, 5u64)); // revoke + assert_ok!(sp.try_insert(5u16, 5u64)); // revoke + assert_ok!(sp.try_insert(6u16, 0u64)); // leave alone + + let expected = Delegation { revoked_at: 0, schema_permissions: sp }; + assert_eq!(Msa::get_delegation(delegator, provider), Some(expected)); + }); +} + #[test] pub fn grant_delegation_to_msa_throws_add_provider_verification_failed() { new_test_ext().execute_with(|| { @@ -1779,6 +1923,118 @@ fn add_removed_key_to_msa_pass() { }); } +#[test] +fn create_provider_via_governance_happy_path() { + new_test_ext().execute_with(|| { + let (_new_msa_id, key_pair) = create_account(); + + // Create the provider based on 1 yes vote by the council + assert_ok!(Msa::create_provider_via_governance( + RuntimeOrigin::from(pallet_collective::RawOrigin::Members(1, 1)), + key_pair.public().into(), + Vec::from("ACME Widgets") + )); + // Confirm that the MSA is now a provider + assert!(Msa::is_registered_provider(_new_msa_id)); + }) +} + +/// Test that a request to be a provider, makes the MSA a provider after the council approves it. +#[test] +fn propose_to_be_provider_happy_path() { + new_test_ext().execute_with(|| { + // Create a new MSA account and request that it become a provider + let (_new_msa_id, key_pair) = create_account(); + _ = Msa::propose_to_be_provider( + RuntimeOrigin::signed(key_pair.public().into()), + Vec::from("ACME Widgets"), + ); + + // Find the Proposed event and get it's hash and index so it can be voted on + let proposed_events: Vec<(u32, Hash)> = System::events() + .iter() + .filter_map(|event| match event.event { + RuntimeEvent::Council(pallet_collective::Event::Proposed { + account: _, + proposal_index, + proposal_hash, + threshold: _, + }) => Some((proposal_index, proposal_hash)), + _ => None, + }) + .collect(); + + assert_eq!(proposed_events.len(), 1); + + let proposal_index = proposed_events[0].0; + let proposal_hash = proposed_events[0].1; + let proposal = Council::proposal_of(proposal_hash).unwrap(); + let proposal_len: u32 = proposal.encoded_size() as u32; + + // Set up the council members + let council_member = test_public(1); // Use ALICE as the council member + + let incoming = vec![]; + let outgoing = vec![]; + Council::change_members(&incoming, &outgoing, vec![council_member.clone()]); + + // Vote YES on the proposal + assert_ok!(Council::vote( + RuntimeOrigin::signed(council_member.clone()), + proposal_hash, + proposal_index, + true + )); + + // Find the Voted event and check if it passed + let voted_events: Vec<(bool, u32, u32)> = System::events() + .iter() + .filter_map(|event| match event.event { + RuntimeEvent::Council(pallet_collective::Event::Voted { + account: _, + proposal_hash: _, + voted, + yes, + no, + }) => Some((voted, yes, no)), + _ => None, + }) + .collect(); + + assert_eq!(voted_events.len(), 1); + assert_eq!(voted_events[0].0, true); // Was it voted on? + assert_eq!(voted_events[0].1, 1); // There should be one YES vote to pass + + // Close the voting + assert_ok!(Council::close( + RuntimeOrigin::signed(test_public(5)), + proposal_hash, + proposal_index, + Weight::MAX, + proposal_len + )); + + // Find the Closed event and check if it passed + let closed_events: Vec<(u32, u32)> = System::events() + .iter() + .filter_map(|event| match event.event { + RuntimeEvent::Council(pallet_collective::Event::Closed { + proposal_hash: _, + yes, + no, + }) => Some((yes, no)), + _ => None, + }) + .collect(); + + assert_eq!(closed_events.len(), 1); + assert_eq!(closed_events[0].0, 1); // There should be one YES vote to pass + + // Confirm that the MSA is now a provider + assert!(Msa::is_registered_provider(_new_msa_id)); + }) +} + #[test] fn create_provider() { new_test_ext().execute_with(|| { diff --git a/pallets/msa/src/weights.rs b/pallets/msa/src/weights.rs index a31cb5e142..7dff8777a6 100644 --- a/pallets/msa/src/weights.rs +++ b/pallets/msa/src/weights.rs @@ -18,7 +18,7 @@ //! Autogenerated weights for pallet_msa //! //! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev -//! DATE: 2023-01-27, STEPS: `20`, REPEAT: 10, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! DATE: 2023-02-10, STEPS: `20`, REPEAT: 10, LOW RANGE: `[]`, HIGH RANGE: `[]` //! EXECUTION: Some(Wasm), WASM-EXECUTION: Compiled, CHAIN: Some("frequency-bench"), DB CACHE: 1024 // Executed Command: @@ -61,7 +61,9 @@ pub trait WeightInfo { fn retire_msa(s: u32, ) -> Weight; fn grant_delegation(s: u32, ) -> Weight; fn revoke_delegation_by_delegator() -> Weight; - fn create_provider(s: u32, ) -> Weight; + fn create_provider() -> Weight; + fn create_provider_via_governance() -> Weight; + fn propose_to_be_provider() -> Weight; fn on_initialize(m: u32, ) -> Weight; fn grant_schema_permissions(s: u32, ) -> Weight; fn revoke_schema_permissions(s: u32, ) -> Weight; @@ -74,7 +76,7 @@ impl WeightInfo for SubstrateWeight { // Storage: Msa PublicKeyToMsaId (r:1 w:1) // Storage: Msa PublicKeyCountForMsaId (r:1 w:1) fn create() -> Weight { - Weight::from_ref_time(20_504_000 as u64) + Weight::from_ref_time(19_842_000 as u64) .saturating_add(T::DbWeight::get().reads(3 as u64)) .saturating_add(T::DbWeight::get().writes(3 as u64)) } @@ -87,16 +89,16 @@ impl WeightInfo for SubstrateWeight { // Storage: Msa DelegatorAndProviderToDelegation (r:1 w:1) // Storage: Schemas CurrentSchemaIdentifierMaximum (r:1 w:0) fn create_sponsored_account_with_delegation(s: u32, ) -> Weight { - Weight::from_ref_time(100_477_842 as u64) - // Standard Error: 22_378 - .saturating_add(Weight::from_ref_time(75_787 as u64).saturating_mul(s as u64)) + Weight::from_ref_time(100_556_500 as u64) + // Standard Error: 19_778 + .saturating_add(Weight::from_ref_time(120_447 as u64).saturating_mul(s as u64)) .saturating_add(T::DbWeight::get().reads(9 as u64)) .saturating_add(T::DbWeight::get().writes(6 as u64)) } // Storage: Msa PublicKeyToMsaId (r:1 w:0) // Storage: Msa DelegatorAndProviderToDelegation (r:1 w:1) fn revoke_delegation_by_provider() -> Weight { - Weight::from_ref_time(23_048_000 as u64) + Weight::from_ref_time(23_624_000 as u64) .saturating_add(T::DbWeight::get().reads(2 as u64)) .saturating_add(T::DbWeight::get().writes(1 as u64)) } @@ -105,14 +107,14 @@ impl WeightInfo for SubstrateWeight { // Storage: Msa PublicKeyToMsaId (r:2 w:1) // Storage: Msa PublicKeyCountForMsaId (r:1 w:1) fn add_public_key_to_msa() -> Weight { - Weight::from_ref_time(146_137_000 as u64) + Weight::from_ref_time(147_786_000 as u64) .saturating_add(T::DbWeight::get().reads(6 as u64)) .saturating_add(T::DbWeight::get().writes(5 as u64)) } // Storage: Msa PublicKeyToMsaId (r:2 w:1) // Storage: Msa PublicKeyCountForMsaId (r:1 w:1) fn delete_msa_public_key() -> Weight { - Weight::from_ref_time(28_233_000 as u64) + Weight::from_ref_time(28_875_000 as u64) .saturating_add(T::DbWeight::get().reads(3 as u64)) .saturating_add(T::DbWeight::get().writes(2 as u64)) } @@ -120,9 +122,9 @@ impl WeightInfo for SubstrateWeight { // Storage: Msa PublicKeyCountForMsaId (r:1 w:1) // Storage: Msa DelegatorAndProviderToDelegation (r:0 w:3) fn retire_msa(s: u32, ) -> Weight { - Weight::from_ref_time(24_340_226 as u64) - // Standard Error: 7_963 - .saturating_add(Weight::from_ref_time(983_558 as u64).saturating_mul(s as u64)) + Weight::from_ref_time(26_276_224 as u64) + // Standard Error: 8_763 + .saturating_add(Weight::from_ref_time(969_676 as u64).saturating_mul(s as u64)) .saturating_add(T::DbWeight::get().reads(2 as u64)) .saturating_add(T::DbWeight::get().writes((1 as u64).saturating_mul(s as u64))) } @@ -133,34 +135,49 @@ impl WeightInfo for SubstrateWeight { // Storage: Msa DelegatorAndProviderToDelegation (r:1 w:1) // Storage: Schemas CurrentSchemaIdentifierMaximum (r:1 w:0) fn grant_delegation(s: u32, ) -> Weight { - Weight::from_ref_time(94_064_605 as u64) - // Standard Error: 17_235 - .saturating_add(Weight::from_ref_time(106_239 as u64).saturating_mul(s as u64)) + Weight::from_ref_time(94_743_045 as u64) + // Standard Error: 19_748 + .saturating_add(Weight::from_ref_time(125_241 as u64).saturating_mul(s as u64)) .saturating_add(T::DbWeight::get().reads(7 as u64)) .saturating_add(T::DbWeight::get().writes(3 as u64)) } // Storage: Msa PublicKeyToMsaId (r:1 w:0) // Storage: Msa DelegatorAndProviderToDelegation (r:1 w:1) fn revoke_delegation_by_delegator() -> Weight { - Weight::from_ref_time(22_841_000 as u64) + Weight::from_ref_time(22_909_000 as u64) .saturating_add(T::DbWeight::get().reads(2 as u64)) .saturating_add(T::DbWeight::get().writes(1 as u64)) } // Storage: Msa PublicKeyToMsaId (r:1 w:0) // Storage: Msa ProviderToRegistryEntry (r:1 w:1) - fn create_provider(s: u32, ) -> Weight { - Weight::from_ref_time(19_772_959 as u64) - // Standard Error: 6_405 - .saturating_add(Weight::from_ref_time(12_940 as u64).saturating_mul(s as u64)) + fn create_provider() -> Weight { + Weight::from_ref_time(20_042_000 as u64) .saturating_add(T::DbWeight::get().reads(2 as u64)) .saturating_add(T::DbWeight::get().writes(1 as u64)) } + // Storage: Msa PublicKeyToMsaId (r:1 w:0) + // Storage: Msa ProviderToRegistryEntry (r:1 w:1) + fn create_provider_via_governance() -> Weight { + Weight::from_ref_time(19_891_000 as u64) + .saturating_add(T::DbWeight::get().reads(2 as u64)) + .saturating_add(T::DbWeight::get().writes(1 as u64)) + } + // Storage: Msa PublicKeyToMsaId (r:1 w:0) + // Storage: Council ProposalOf (r:1 w:1) + // Storage: Council Proposals (r:1 w:1) + // Storage: Council ProposalCount (r:1 w:1) + // Storage: Council Voting (r:0 w:1) + fn propose_to_be_provider() -> Weight { + Weight::from_ref_time(29_695_000 as u64) + .saturating_add(T::DbWeight::get().reads(4 as u64)) + .saturating_add(T::DbWeight::get().writes(4 as u64)) + } // Storage: Msa PayloadSignatureBucketCount (r:1 w:1) // Storage: Msa PayloadSignatureRegistry (r:0 w:1) fn on_initialize(m: u32, ) -> Weight { - Weight::from_ref_time(8_071_000 as u64) - // Standard Error: 4_326 - .saturating_add(Weight::from_ref_time(1_275_241 as u64).saturating_mul(m as u64)) + Weight::from_ref_time(7_824_000 as u64) + // Standard Error: 4_383 + .saturating_add(Weight::from_ref_time(1_263_325 as u64).saturating_mul(m as u64)) .saturating_add(T::DbWeight::get().reads(1 as u64)) .saturating_add(T::DbWeight::get().writes(1 as u64)) .saturating_add(T::DbWeight::get().writes((1 as u64).saturating_mul(m as u64))) @@ -169,9 +186,9 @@ impl WeightInfo for SubstrateWeight { // Storage: Msa DelegatorAndProviderToDelegation (r:1 w:1) // Storage: Schemas CurrentSchemaIdentifierMaximum (r:1 w:0) fn grant_schema_permissions(s: u32, ) -> Weight { - Weight::from_ref_time(26_412_674 as u64) - // Standard Error: 6_411 - .saturating_add(Weight::from_ref_time(46_362 as u64).saturating_mul(s as u64)) + Weight::from_ref_time(26_682_873 as u64) + // Standard Error: 7_236 + .saturating_add(Weight::from_ref_time(63_887 as u64).saturating_mul(s as u64)) .saturating_add(T::DbWeight::get().reads(3 as u64)) .saturating_add(T::DbWeight::get().writes(1 as u64)) } @@ -179,9 +196,9 @@ impl WeightInfo for SubstrateWeight { // Storage: Msa DelegatorAndProviderToDelegation (r:1 w:1) // Storage: Schemas CurrentSchemaIdentifierMaximum (r:1 w:0) fn revoke_schema_permissions(s: u32, ) -> Weight { - Weight::from_ref_time(26_918_983 as u64) - // Standard Error: 7_846 - .saturating_add(Weight::from_ref_time(125_625 as u64).saturating_mul(s as u64)) + Weight::from_ref_time(27_549_230 as u64) + // Standard Error: 8_382 + .saturating_add(Weight::from_ref_time(131_535 as u64).saturating_mul(s as u64)) .saturating_add(T::DbWeight::get().reads(3 as u64)) .saturating_add(T::DbWeight::get().writes(1 as u64)) } @@ -193,7 +210,7 @@ impl WeightInfo for () { // Storage: Msa PublicKeyToMsaId (r:1 w:1) // Storage: Msa PublicKeyCountForMsaId (r:1 w:1) fn create() -> Weight { - Weight::from_ref_time(20_504_000 as u64) + Weight::from_ref_time(19_842_000 as u64) .saturating_add(RocksDbWeight::get().reads(3 as u64)) .saturating_add(RocksDbWeight::get().writes(3 as u64)) } @@ -206,16 +223,16 @@ impl WeightInfo for () { // Storage: Msa DelegatorAndProviderToDelegation (r:1 w:1) // Storage: Schemas CurrentSchemaIdentifierMaximum (r:1 w:0) fn create_sponsored_account_with_delegation(s: u32, ) -> Weight { - Weight::from_ref_time(100_477_842 as u64) - // Standard Error: 22_378 - .saturating_add(Weight::from_ref_time(75_787 as u64).saturating_mul(s as u64)) + Weight::from_ref_time(100_556_500 as u64) + // Standard Error: 19_778 + .saturating_add(Weight::from_ref_time(120_447 as u64).saturating_mul(s as u64)) .saturating_add(RocksDbWeight::get().reads(9 as u64)) .saturating_add(RocksDbWeight::get().writes(6 as u64)) } // Storage: Msa PublicKeyToMsaId (r:1 w:0) // Storage: Msa DelegatorAndProviderToDelegation (r:1 w:1) fn revoke_delegation_by_provider() -> Weight { - Weight::from_ref_time(23_048_000 as u64) + Weight::from_ref_time(23_624_000 as u64) .saturating_add(RocksDbWeight::get().reads(2 as u64)) .saturating_add(RocksDbWeight::get().writes(1 as u64)) } @@ -224,14 +241,14 @@ impl WeightInfo for () { // Storage: Msa PublicKeyToMsaId (r:2 w:1) // Storage: Msa PublicKeyCountForMsaId (r:1 w:1) fn add_public_key_to_msa() -> Weight { - Weight::from_ref_time(146_137_000 as u64) + Weight::from_ref_time(147_786_000 as u64) .saturating_add(RocksDbWeight::get().reads(6 as u64)) .saturating_add(RocksDbWeight::get().writes(5 as u64)) } // Storage: Msa PublicKeyToMsaId (r:2 w:1) // Storage: Msa PublicKeyCountForMsaId (r:1 w:1) fn delete_msa_public_key() -> Weight { - Weight::from_ref_time(28_233_000 as u64) + Weight::from_ref_time(28_875_000 as u64) .saturating_add(RocksDbWeight::get().reads(3 as u64)) .saturating_add(RocksDbWeight::get().writes(2 as u64)) } @@ -239,9 +256,9 @@ impl WeightInfo for () { // Storage: Msa PublicKeyCountForMsaId (r:1 w:1) // Storage: Msa DelegatorAndProviderToDelegation (r:0 w:3) fn retire_msa(s: u32, ) -> Weight { - Weight::from_ref_time(24_340_226 as u64) - // Standard Error: 7_963 - .saturating_add(Weight::from_ref_time(983_558 as u64).saturating_mul(s as u64)) + Weight::from_ref_time(26_276_224 as u64) + // Standard Error: 8_763 + .saturating_add(Weight::from_ref_time(969_676 as u64).saturating_mul(s as u64)) .saturating_add(RocksDbWeight::get().reads(2 as u64)) .saturating_add(RocksDbWeight::get().writes((1 as u64).saturating_mul(s as u64))) } @@ -252,34 +269,49 @@ impl WeightInfo for () { // Storage: Msa DelegatorAndProviderToDelegation (r:1 w:1) // Storage: Schemas CurrentSchemaIdentifierMaximum (r:1 w:0) fn grant_delegation(s: u32, ) -> Weight { - Weight::from_ref_time(94_064_605 as u64) - // Standard Error: 17_235 - .saturating_add(Weight::from_ref_time(106_239 as u64).saturating_mul(s as u64)) + Weight::from_ref_time(94_743_045 as u64) + // Standard Error: 19_748 + .saturating_add(Weight::from_ref_time(125_241 as u64).saturating_mul(s as u64)) .saturating_add(RocksDbWeight::get().reads(7 as u64)) .saturating_add(RocksDbWeight::get().writes(3 as u64)) } // Storage: Msa PublicKeyToMsaId (r:1 w:0) // Storage: Msa DelegatorAndProviderToDelegation (r:1 w:1) fn revoke_delegation_by_delegator() -> Weight { - Weight::from_ref_time(22_841_000 as u64) + Weight::from_ref_time(22_909_000 as u64) .saturating_add(RocksDbWeight::get().reads(2 as u64)) .saturating_add(RocksDbWeight::get().writes(1 as u64)) } // Storage: Msa PublicKeyToMsaId (r:1 w:0) // Storage: Msa ProviderToRegistryEntry (r:1 w:1) - fn create_provider(s: u32, ) -> Weight { - Weight::from_ref_time(19_772_959 as u64) - // Standard Error: 6_405 - .saturating_add(Weight::from_ref_time(12_940 as u64).saturating_mul(s as u64)) + fn create_provider() -> Weight { + Weight::from_ref_time(20_042_000 as u64) .saturating_add(RocksDbWeight::get().reads(2 as u64)) .saturating_add(RocksDbWeight::get().writes(1 as u64)) } + // Storage: Msa PublicKeyToMsaId (r:1 w:0) + // Storage: Msa ProviderToRegistryEntry (r:1 w:1) + fn create_provider_via_governance() -> Weight { + Weight::from_ref_time(19_891_000 as u64) + .saturating_add(RocksDbWeight::get().reads(2 as u64)) + .saturating_add(RocksDbWeight::get().writes(1 as u64)) + } + // Storage: Msa PublicKeyToMsaId (r:1 w:0) + // Storage: Council ProposalOf (r:1 w:1) + // Storage: Council Proposals (r:1 w:1) + // Storage: Council ProposalCount (r:1 w:1) + // Storage: Council Voting (r:0 w:1) + fn propose_to_be_provider() -> Weight { + Weight::from_ref_time(29_695_000 as u64) + .saturating_add(RocksDbWeight::get().reads(4 as u64)) + .saturating_add(RocksDbWeight::get().writes(4 as u64)) + } // Storage: Msa PayloadSignatureBucketCount (r:1 w:1) // Storage: Msa PayloadSignatureRegistry (r:0 w:1) fn on_initialize(m: u32, ) -> Weight { - Weight::from_ref_time(8_071_000 as u64) - // Standard Error: 4_326 - .saturating_add(Weight::from_ref_time(1_275_241 as u64).saturating_mul(m as u64)) + Weight::from_ref_time(7_824_000 as u64) + // Standard Error: 4_383 + .saturating_add(Weight::from_ref_time(1_263_325 as u64).saturating_mul(m as u64)) .saturating_add(RocksDbWeight::get().reads(1 as u64)) .saturating_add(RocksDbWeight::get().writes(1 as u64)) .saturating_add(RocksDbWeight::get().writes((1 as u64).saturating_mul(m as u64))) @@ -288,9 +320,9 @@ impl WeightInfo for () { // Storage: Msa DelegatorAndProviderToDelegation (r:1 w:1) // Storage: Schemas CurrentSchemaIdentifierMaximum (r:1 w:0) fn grant_schema_permissions(s: u32, ) -> Weight { - Weight::from_ref_time(26_412_674 as u64) - // Standard Error: 6_411 - .saturating_add(Weight::from_ref_time(46_362 as u64).saturating_mul(s as u64)) + Weight::from_ref_time(26_682_873 as u64) + // Standard Error: 7_236 + .saturating_add(Weight::from_ref_time(63_887 as u64).saturating_mul(s as u64)) .saturating_add(RocksDbWeight::get().reads(3 as u64)) .saturating_add(RocksDbWeight::get().writes(1 as u64)) } @@ -298,9 +330,9 @@ impl WeightInfo for () { // Storage: Msa DelegatorAndProviderToDelegation (r:1 w:1) // Storage: Schemas CurrentSchemaIdentifierMaximum (r:1 w:0) fn revoke_schema_permissions(s: u32, ) -> Weight { - Weight::from_ref_time(26_918_983 as u64) - // Standard Error: 7_846 - .saturating_add(Weight::from_ref_time(125_625 as u64).saturating_mul(s as u64)) + Weight::from_ref_time(27_549_230 as u64) + // Standard Error: 8_382 + .saturating_add(Weight::from_ref_time(131_535 as u64).saturating_mul(s as u64)) .saturating_add(RocksDbWeight::get().reads(3 as u64)) .saturating_add(RocksDbWeight::get().writes(1 as u64)) } diff --git a/pallets/schemas/Cargo.toml b/pallets/schemas/Cargo.toml index c52a0d1b06..42a1ce6283 100644 --- a/pallets/schemas/Cargo.toml +++ b/pallets/schemas/Cargo.toml @@ -32,13 +32,14 @@ sp-core = { default-features = false, git = "https://github.com/paritytech/subst sp-io = { default-features = false, git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.36" } sp-runtime = { default-features = false, git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.36" } sp-std = { default-features = false, git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.36" } - # Frequency related dependencies common-primitives = { default-features = false, path = "../../common/primitives" } [dev-dependencies] +common-runtime = { path = '../../runtime/common', default-features = false } serial_test = { default-features = false, version = '0.9.0' } sp-keyring = {git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.36"} +pallet-collective = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.36" } [features] default = ["std"] diff --git a/pallets/schemas/src/benchmarking.rs b/pallets/schemas/src/benchmarking.rs index 1a49d944af..d654573f6a 100644 --- a/pallets/schemas/src/benchmarking.rs +++ b/pallets/schemas/src/benchmarking.rs @@ -40,8 +40,33 @@ benchmarks! { let schema_input = generate_schema::(m as usize); }: _(RawOrigin::Signed(sender), schema_input, model_type, payload_location) verify { - ensure!(SchemasPallet::::get_current_schema_identifier_maximum() > 0, "Registered schema count should be > 0"); - ensure!(SchemasPallet::::get_schema(1).is_some(), "Registered schema should exist"); + ensure!(SchemasPallet::::get_current_schema_identifier_maximum() > 0, "Created schema count should be > 0"); + ensure!(SchemasPallet::::get_schema(1).is_some(), "Created schema should exist"); + } + + create_schema_via_governance { + let m in (T::MinSchemaModelSizeBytes::get() + 8) .. (T::SchemaModelMaxBytesBoundedVecLimit::get() - 1); + let sender: T::AccountId = whitelisted_caller(); + let model_type = ModelType::AvroBinary; + let payload_location = PayloadLocation::OnChain; + assert_ok!(SchemasPallet::::set_max_schema_model_bytes(RawOrigin::Root.into(), T::SchemaModelMaxBytesBoundedVecLimit::get())); + let schema_input = generate_schema::(m as usize); + }: _(RawOrigin::Root, sender.clone(), schema_input, model_type, payload_location, BoundedVec::default()) + verify { + ensure!(SchemasPallet::::get_current_schema_identifier_maximum() > 0, "Created schema count should be > 0"); + ensure!(SchemasPallet::::get_schema(1).is_some(), "Created schema should exist"); + } + + propose_to_create_schema { + let m in (T::MinSchemaModelSizeBytes::get() + 8) .. (T::SchemaModelMaxBytesBoundedVecLimit::get() - 1); + let sender: T::AccountId = whitelisted_caller(); + let model_type = ModelType::AvroBinary; + let payload_location = PayloadLocation::OnChain; + assert_ok!(SchemasPallet::::set_max_schema_model_bytes(RawOrigin::Root.into(), T::SchemaModelMaxBytesBoundedVecLimit::get())); + let schema_input = generate_schema::(m as usize); + }: _(RawOrigin::Signed(sender), schema_input, model_type, payload_location, BoundedVec::default()) + verify { + assert_eq!(T::ProposalProvider::proposal_count(), 1); } set_max_schema_model_bytes { @@ -52,6 +77,8 @@ benchmarks! { ensure!(SchemasPallet::::get_schema_model_max_bytes() == T::SchemaModelMaxBytesBoundedVecLimit::get(), "Schema model max should be updated!"); } + + impl_benchmark_test_suite!( SchemasPallet, crate::mock::new_test_ext(), diff --git a/pallets/schemas/src/lib.rs b/pallets/schemas/src/lib.rs index f1014b2443..6370311225 100644 --- a/pallets/schemas/src/lib.rs +++ b/pallets/schemas/src/lib.rs @@ -50,15 +50,20 @@ )] use common_primitives::{ + node::ProposalProvider, parquet::ParquetModel, schema::{ ModelType, PayloadLocation, SchemaId, SchemaProvider, SchemaResponse, SchemaSetting, SchemaSettings, SchemaValidator, }, }; -use frame_support::{dispatch::DispatchResult, ensure, traits::Get}; -use sp_runtime::BoundedVec; -use sp_std::vec::Vec; +use frame_support::{ + dispatch::{DispatchResult, PostDispatchInfo}, + ensure, + traits::Get, +}; +use sp_runtime::{traits::Dispatchable, BoundedVec}; +use sp_std::{boxed::Box, vec::Vec}; #[cfg(test)] mod tests; @@ -108,6 +113,17 @@ pub mod pallet { #[pallet::constant] type MaxSchemaRegistrations: Get; + /// The origin that is allowed to create providers via governance + type CreateSchemaViaGovernanceOrigin: EnsureOrigin; + + /// The runtime call dispatch type. + type Proposal: Parameter + + Dispatchable + + From>; + + /// The Council proposal provider interface + type ProposalProvider: ProposalProvider; + /// Maximum number of schema settings that can be registered per schema (if any) #[pallet::constant] type MaxSchemaSettingsPerSchema: Get; @@ -228,10 +244,12 @@ pub mod pallet { ) -> DispatchResult { let sender = ensure_signed(origin)?; - Self::validate_schema_model(&model, &model_type)?; - - let schema_id = - Self::add_schema(model, model_type, payload_location, BoundedVec::default())?; + let schema_id = Self::create_schema_for( + model, + model_type, + payload_location, + BoundedVec::default(), + )?; Self::deposit_event(Event::SchemaCreated { key: sender, schema_id }); Ok(()) @@ -265,6 +283,60 @@ pub mod pallet { Ok(()) } + /// Propose to create a schema. Creates a proposal for council approval to create a schema + /// + #[pallet::call_index(2)] + #[pallet::weight(T::WeightInfo::propose_to_create_schema(model.len() as u32))] + pub fn propose_to_create_schema( + origin: OriginFor, + model: BoundedVec, + model_type: ModelType, + payload_location: PayloadLocation, + settings: BoundedVec, + ) -> DispatchResult { + let proposer = ensure_signed(origin)?; + + let proposal: Box = Box::new( + (Call::::create_schema_via_governance { + creator_key: proposer.clone(), + model, + model_type, + payload_location, + settings, + }) + .into(), + ); + T::ProposalProvider::propose_with_simple_majority(proposer, proposal)?; + Ok(()) + } + + /// Create a schema by means of council approval + /// + /// # Events + /// * [`Event::SchemaCreated`] + /// + /// # Errors + /// * [`Error::LessThanMinSchemaModelBytes`] - The schema's length is less than the minimum schema length + /// * [`Error::ExceedsMaxSchemaModelBytes`] - The schema's length is greater than the maximum schema length + /// * [`Error::InvalidSchema`] - Schema is malformed in some way + /// * [`Error::SchemaCountOverflow`] - The schema count has exceeded its bounds + #[pallet::call_index(3)] + #[pallet::weight(T::WeightInfo::create_schema_via_governance(model.len() as u32))] + pub fn create_schema_via_governance( + origin: OriginFor, + creator_key: T::AccountId, + model: BoundedVec, + model_type: ModelType, + payload_location: PayloadLocation, + settings: BoundedVec, + ) -> DispatchResult { + T::CreateSchemaViaGovernanceOrigin::ensure_origin(origin)?; + let schema_id = Self::create_schema_for(model, model_type, payload_location, settings)?; + + Self::deposit_event(Event::SchemaCreated { key: creator_key, schema_id }); + Ok(()) + } + /// Adds a given schema to storage with additional settings available from `SchemaSetting` /// # Arguments /// * `origin` - The origin of the call @@ -281,7 +353,7 @@ pub mod pallet { /// * [`Error::ExceedsMaxSchemaModelBytes`] - The schema's length is greater than the maximum schema length /// * [`Error::InvalidSchema`] - Schema is malformed in some way /// * [`Error::SchemaCountOverflow`] - The schema count has exceeded its bounds - #[pallet::call_index(2)] + #[pallet::call_index(4)] #[pallet::weight(T::WeightInfo::create_schema(model.len() as u32 + settings.len() as u32))] pub fn create_schema_with_settings( origin: OriginFor, @@ -292,9 +364,7 @@ pub mod pallet { ) -> DispatchResult { let sender = ensure_signed(origin)?; - Self::validate_schema_model(&model, &model_type)?; - - let schema_id = Self::add_schema(model, model_type, payload_location, settings)?; + let schema_id = Self::create_schema_for(model, model_type, payload_location, settings)?; Self::deposit_event(Event::SchemaCreated { key: sender, schema_id }); Ok(()) @@ -381,10 +451,24 @@ pub mod pallet { Ok(next) } - fn validate_schema_model( - model: &BoundedVec, - model_type: &ModelType, - ) -> Result<(), DispatchError> { + /// Adds a given schema to storage. The schema in question must be of length + /// between the min and max model size allowed for schemas (see pallet + /// constants above). If the pallet's maximum schema limit has been + /// fulfilled by the time this extrinsic is called, a SchemaCountOverflow error + /// will be thrown. + /// + /// # Errors + /// * [`Error::LessThanMinSchemaModelBytes`] - The schema's length is less than the minimum schema length + /// * [`Error::ExceedsMaxSchemaModelBytes`] - The schema's length is greater than the maximum schema length + /// * [`Error::InvalidSchema`] - Schema is malformed in some way + /// * [`Error::SchemaCountOverflow`] - The schema count has exceeded its bounds + pub fn create_schema_for( + model: BoundedVec, + model_type: ModelType, + payload_location: PayloadLocation, + settings: BoundedVec, + ) -> Result { + Self::ensure_valid_model(&model_type, &model)?; ensure!( model.len() >= T::MinSchemaModelSizeBytes::get() as usize, Error::::LessThanMinSchemaModelBytes @@ -393,9 +477,7 @@ pub mod pallet { model.len() <= Self::get_schema_model_max_bytes() as usize, Error::::ExceedsMaxSchemaModelBytes ); - - Self::ensure_valid_model(&model_type, &model)?; - Ok(()) + Self::add_schema(model, model_type, payload_location, settings) } } } diff --git a/pallets/schemas/src/mock.rs b/pallets/schemas/src/mock.rs index 22c858b195..50a724f0fd 100644 --- a/pallets/schemas/src/mock.rs +++ b/pallets/schemas/src/mock.rs @@ -1,24 +1,26 @@ use frame_support::{ + dispatch::DispatchError, parameter_types, - traits::{ConstU16, ConstU32, ConstU64}, + traits::{ConstU16, ConstU32, ConstU64, EitherOfDiverse}, weights::{WeightToFeeCoefficient, WeightToFeeCoefficients, WeightToFeePolynomial}, }; +use frame_system::EnsureRoot; +use common_primitives::{node::AccountId, schema::SchemaId}; +pub use common_runtime::constants::*; +use pallet_collective; use smallvec::smallvec; -use sp_core::H256; +use sp_core::{Encode, H256}; use sp_runtime::{ testing::Header, traits::{BlakeTwo256, IdentityLookup}, - Perbill, + AccountId32, Perbill, }; -use common_primitives::schema::SchemaId; - use crate as pallet_schemas; type UncheckedExtrinsic = frame_system::mocking::MockUncheckedExtrinsic; type Block = frame_system::mocking::MockBlock; -pub type AccountId = u64; frame_support::construct_runtime!( pub enum Test where @@ -28,9 +30,24 @@ frame_support::construct_runtime!( { System: frame_system::{Pallet, Call, Config, Storage, Event}, SchemasPallet: pallet_schemas::{Pallet, Call, Storage, Event}, + Council: pallet_collective::::{Pallet, Call, Config, Storage, Event, Origin}, } ); +// See https://paritytech.github.io/substrate/master/pallet_collective/index.html for +// the descriptions of these configs. +type CouncilCollective = pallet_collective::Instance1; +impl pallet_collective::Config for Test { + type RuntimeOrigin = RuntimeOrigin; + type Proposal = RuntimeCall; + type RuntimeEvent = RuntimeEvent; + type MotionDuration = CouncilMotionDuration; + type MaxProposals = CouncilMaxProposals; + type MaxMembers = CouncilMaxMembers; + type DefaultVote = pallet_collective::PrimeDefaultVote; + type WeightInfo = (); +} + parameter_types! { pub const MaxSchemaRegistrations: SchemaId = 64_000; } @@ -50,6 +67,34 @@ impl WeightToFeePolynomial for WeightToFee { } } +/// Interface to collective pallet to propose a proposal. +pub struct CouncilProposalProvider; + +impl pallet_schemas::ProposalProvider for CouncilProposalProvider { + fn propose( + who: AccountId, + threshold: u32, + proposal: Box, + ) -> Result<(u32, u32), DispatchError> { + let length_bound: u32 = proposal.using_encoded(|p| p.len() as u32); + Council::do_propose_proposed(who, threshold, proposal, length_bound) + } + + fn propose_with_simple_majority( + who: AccountId, + proposal: Box, + ) -> Result<(u32, u32), DispatchError> { + let threshold: u32 = ((Council::members().len() / 2) + 1) as u32; + let length_bound: u32 = proposal.using_encoded(|p| p.len() as u32); + Council::do_propose_proposed(who, threshold, proposal, length_bound) + } + + #[cfg(any(feature = "runtime-benchmarks", feature = "test"))] + fn proposal_count() -> u32 { + Council::proposal_count() + } +} + impl pallet_schemas::Config for Test { type RuntimeEvent = RuntimeEvent; type WeightInfo = (); @@ -59,6 +104,16 @@ impl pallet_schemas::Config for Test { type SchemaModelMaxBytesBoundedVecLimit = ConstU32<65_500>; type MaxSchemaRegistrations = MaxSchemaRegistrations; type MaxSchemaSettingsPerSchema = ConstU32<1>; + // The proposal type + type Proposal = RuntimeCall; + // The Council proposal provider interface + type ProposalProvider = CouncilProposalProvider; + // The origin that is allowed to create schemas via governance + // It has to be this way so benchmarks will pass in CI. + type CreateSchemaViaGovernanceOrigin = EitherOfDiverse< + EnsureRoot, + pallet_collective::EnsureProportionMoreThan, + >; } impl frame_system::Config for Test { @@ -94,3 +149,14 @@ pub fn new_test_ext() -> sp_io::TestExternalities { ext.execute_with(|| System::set_block_number(1)); ext } + +/// Create and return a simple test AccountId32 constructed with the desired integer. +pub fn test_public(n: u8) -> AccountId32 { + AccountId32::new([n; 32]) +} + +/// Create and return a simple signed origin from a test_public constructed with the desired integer, +/// for passing to an extrinsic call +pub fn test_origin_signed(n: u8) -> RuntimeOrigin { + RuntimeOrigin::signed(test_public(n)) +} diff --git a/pallets/schemas/src/tests.rs b/pallets/schemas/src/tests.rs index 1dec826416..ff6991f0fc 100644 --- a/pallets/schemas/src/tests.rs +++ b/pallets/schemas/src/tests.rs @@ -1,8 +1,14 @@ -use frame_support::{assert_noop, assert_ok, dispatch::RawOrigin, BoundedVec}; +use frame_support::{ + assert_noop, assert_ok, + dispatch::{RawOrigin, Weight}, + traits::{ChangeMembers, Hash}, + BoundedVec, +}; use serial_test::serial; -use sp_runtime::DispatchError::BadOrigin; +use sp_core::{crypto::AccountId32, Encode}; use common_primitives::{ + node::AccountId, parquet::{ column::ParquetColumn, column_compression_codec::ColumnCompressionCodec, @@ -12,6 +18,7 @@ use common_primitives::{ }, schema::{ModelType, PayloadLocation, SchemaId, SchemaSetting}, }; +use sp_runtime::DispatchError::BadOrigin; use crate::{Config, Error, Event as AnnouncementEvent}; @@ -35,10 +42,14 @@ struct TestCase { expected: T, } +/// Create and return a simple test AccountId32 constructed with the desired integer. +pub fn test_public(n: u8) -> AccountId32 { + AccountId32::new([n; 32]) +} + #[test] fn require_valid_schema_size_errors() { new_test_ext().execute_with(|| { - let sender: AccountId = 1; sudo_set_max_schema_size(); let test_cases: [TestCase<(Error, u8)>; 2] = [ TestCase { @@ -52,17 +63,171 @@ fn require_valid_schema_size_errors() { ]; for tc in test_cases { assert_noop!( - SchemasPallet::create_schema(RuntimeOrigin::signed(sender), create_bounded_schema_vec(tc.schema), ModelType::AvroBinary, PayloadLocation::OnChain), + SchemasPallet::create_schema(RuntimeOrigin::signed(test_public(1)), create_bounded_schema_vec(tc.schema), ModelType::AvroBinary, PayloadLocation::OnChain), tc.expected.0); } }) } #[test] -fn register_schema_happy_path() { +fn create_schema_via_governance_happy_path() { new_test_ext().execute_with(|| { sudo_set_max_schema_size(); - let sender: AccountId = 1; + let sender: AccountId = test_public(5); + assert_ok!(SchemasPallet::create_schema_via_governance( + RuntimeOrigin::from(pallet_collective::RawOrigin::Members(2, 3)), + sender, + create_bounded_schema_vec(r#"{"name": "Doe", "type": "lost"}"#), + ModelType::AvroBinary, + PayloadLocation::OnChain, + BoundedVec::default(), + )); + }) +} + +/// Test that a request to be a provider, makes the MSA a provider after the council approves it. +#[test] +fn propose_to_create_schema_happy_path() { + new_test_ext().execute_with(|| { + sudo_set_max_schema_size(); + + let test_model = r#"{"foo": "bar", "bar": "buzz"}"#; + let serialized_fields = Vec::from(test_model.as_bytes()); + // Propose a new schema + _ = SchemasPallet::propose_to_create_schema( + test_origin_signed(5), + create_bounded_schema_vec(test_model), + ModelType::AvroBinary, + PayloadLocation::OnChain, + BoundedVec::default(), + ); + + // Find the Proposed event and get it's hash and index so it can be voted on + let proposed_events: Vec<(u32, Hash)> = System::events() + .iter() + .filter_map(|event| match event.event { + RuntimeEvent::Council(pallet_collective::Event::Proposed { + account: _, + proposal_index, + proposal_hash, + threshold: _, + }) => Some((proposal_index, proposal_hash)), + _ => None, + }) + .collect(); + + assert_eq!(proposed_events.len(), 1); + + let proposal_index = proposed_events[0].0; + let proposal_hash = proposed_events[0].1; + let proposal = Council::proposal_of(proposal_hash).unwrap(); + let proposal_len: u32 = proposal.encoded_size() as u32; + + // Set up the council members + let council_member_1 = test_public(1); // Use ALICE as a council member + let council_member_2 = test_public(2); // Use BOB as a council member + let council_member_3 = test_public(3); // Use CHARLIE as a council member + + let incoming = vec![]; + let outgoing = vec![]; + Council::change_members( + &incoming, + &outgoing, + vec![council_member_1.clone(), council_member_2.clone(), council_member_3.clone()], + ); + + // Council member #1 votes AYE on the proposal + assert_ok!(Council::vote( + RuntimeOrigin::signed(council_member_1.clone()), + proposal_hash, + proposal_index, + true + )); + // Council member #2 votes AYE on the proposal + assert_ok!(Council::vote( + RuntimeOrigin::signed(council_member_2.clone()), + proposal_hash, + proposal_index, + true + )); + // Council member #3 votes NAY on the proposal + assert_ok!(Council::vote( + RuntimeOrigin::signed(council_member_3.clone()), + proposal_hash, + proposal_index, + false + )); + + // Find the Voted event and check if it passed + let voted_events: Vec<(bool, u32, u32)> = System::events() + .iter() + .filter_map(|event| match event.event { + RuntimeEvent::Council(pallet_collective::Event::Voted { + account: _, + proposal_hash: _, + voted, + yes, + no, + }) => Some((voted, yes, no)), + _ => None, + }) + .collect(); + + assert_eq!(voted_events.len(), 3); + assert_eq!(voted_events[1].1, 2); // There should be two AYE (out of three) votes to pass + + // Close the voting + assert_ok!(Council::close( + RuntimeOrigin::signed(test_public(5)), + proposal_hash, + proposal_index, + Weight::MAX, + proposal_len + )); + + // Find the Closed event and check if it passed + let closed_events: Vec<(u32, u32)> = System::events() + .iter() + .filter_map(|event| match event.event { + RuntimeEvent::Council(pallet_collective::Event::Closed { + proposal_hash: _, + yes, + no, + }) => Some((yes, no)), + _ => None, + }) + .collect(); + + assert_eq!(closed_events.len(), 1); + assert_eq!(closed_events[0].0, 2); // There should be two YES votes to pass + + // Find the SchemaCreated event and check if it passed + let schema_events: Vec = System::events() + .iter() + .filter_map(|event| match event.event { + RuntimeEvent::SchemasPallet(AnnouncementEvent::SchemaCreated { + key: _, + schema_id, + }) => Some(schema_id), + _ => None, + }) + .collect(); + + // Confirm that the schema was created + assert_eq!(schema_events.len(), 1); + + let last_schema_id = schema_events[0]; + let created_schema = SchemasPallet::get_schema_by_id(last_schema_id); + assert_eq!(created_schema.as_ref().is_some(), true); + assert_eq!(created_schema.as_ref().unwrap().clone().model, serialized_fields); + }) +} + +#[test] +fn create_schema_happy_path() { + new_test_ext().execute_with(|| { + sudo_set_max_schema_size(); + let sender: AccountId = test_public(1); assert_ok!(SchemasPallet::create_schema( RuntimeOrigin::signed(sender), create_bounded_schema_vec(r#"{"name": "Doe", "type": "lost"}"#), @@ -73,10 +238,10 @@ fn register_schema_happy_path() { } #[test] -fn register_schema_unhappy_path() { +fn create_schema_unhappy_path() { new_test_ext().execute_with(|| { sudo_set_max_schema_size(); - let sender: AccountId = 1; + let sender: AccountId = test_public(1); assert_noop!( SchemasPallet::create_schema( RuntimeOrigin::signed(sender), @@ -104,7 +269,7 @@ fn set_max_schema_size_works_if_root() { fn set_max_schema_size_fails_if_not_root() { new_test_ext().execute_with(|| { let new_size: u32 = 42; - let sender: AccountId = 1; + let sender: AccountId = test_public(1); let expected_err = BadOrigin; assert_noop!( SchemasPallet::set_max_schema_model_bytes(RuntimeOrigin::signed(sender), new_size), @@ -127,10 +292,10 @@ fn set_max_schema_size_fails_if_larger_than_bound() { #[test] #[serial] -fn register_schema_id_deposits_events_and_increments_schema_id() { +fn create_schema_id_deposits_events_and_increments_schema_id() { new_test_ext().execute_with(|| { sudo_set_max_schema_size(); - let sender: AccountId = 1; + let sender: AccountId = test_public(1); let mut last_schema_id: SchemaId = 0; for fields in [ r#"{"Name": "Bond", "Code": "007"}"#, @@ -139,19 +304,22 @@ fn register_schema_id_deposits_events_and_increments_schema_id() { ] { let expected_schema_id = last_schema_id + 1; assert_ok!(SchemasPallet::create_schema( - RuntimeOrigin::signed(sender), + RuntimeOrigin::signed(sender.clone()), create_bounded_schema_vec(fields), ModelType::AvroBinary, PayloadLocation::OnChain, )); System::assert_last_event( - AnnouncementEvent::SchemaCreated { key: sender, schema_id: expected_schema_id } - .into(), + AnnouncementEvent::SchemaCreated { + key: sender.clone(), + schema_id: expected_schema_id, + } + .into(), ); last_schema_id = expected_schema_id; } assert_ok!(SchemasPallet::create_schema( - RuntimeOrigin::signed(sender), + RuntimeOrigin::signed(sender.clone()), create_bounded_schema_vec(r#"{"account":3050}"#), ModelType::AvroBinary, PayloadLocation::OnChain, @@ -162,7 +330,7 @@ fn register_schema_id_deposits_events_and_increments_schema_id() { #[test] fn get_existing_schema_by_id_should_return_schema() { new_test_ext().execute_with(|| { - let sender: AccountId = 1; + let sender: AccountId = test_public(1); sudo_set_max_schema_size(); // arrange let test_str = r#"{"foo": "bar", "bar": "buzz"}"#; @@ -358,7 +526,7 @@ fn create_schema_with_settings_should_work() { // arrange let settings = vec![SchemaSetting::AppendOnly]; - let sender: AccountId = 1; + let sender: AccountId = test_public(1); // assert assert_ok!(SchemasPallet::create_schema_with_settings( diff --git a/pallets/schemas/src/weights.rs b/pallets/schemas/src/weights.rs index 96f47e9291..e9df83fba2 100644 --- a/pallets/schemas/src/weights.rs +++ b/pallets/schemas/src/weights.rs @@ -18,7 +18,7 @@ //! Autogenerated weights for pallet_schemas //! //! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev -//! DATE: 2023-01-27, STEPS: `20`, REPEAT: 10, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! DATE: 2023-02-16, STEPS: `20`, REPEAT: 10, LOW RANGE: `[]`, HIGH RANGE: `[]` //! EXECUTION: Some(Wasm), WASM-EXECUTION: Compiled, CHAIN: Some("frequency-bench"), DB CACHE: 1024 // Executed Command: @@ -54,6 +54,8 @@ use sp_std::marker::PhantomData; /// Weight functions needed for pallet_schemas. pub trait WeightInfo { fn create_schema(m: u32, ) -> Weight; + fn create_schema_via_governance(m: u32, ) -> Weight; + fn propose_to_create_schema(m: u32, ) -> Weight; fn set_max_schema_model_bytes() -> Weight; } @@ -64,15 +66,37 @@ impl WeightInfo for SubstrateWeight { // Storage: Schemas CurrentSchemaIdentifierMaximum (r:1 w:1) // Storage: Schemas Schemas (r:0 w:1) fn create_schema(m: u32, ) -> Weight { - Weight::from_ref_time(19_250_000 as u64) - // Standard Error: 42 - .saturating_add(Weight::from_ref_time(28_557 as u64).saturating_mul(m as u64)) + Weight::from_ref_time(19_730_000 as u64) + // Standard Error: 48 + .saturating_add(Weight::from_ref_time(28_294 as u64).saturating_mul(m as u64)) .saturating_add(T::DbWeight::get().reads(2 as u64)) .saturating_add(T::DbWeight::get().writes(2 as u64)) } + // Storage: Schemas GovernanceSchemaModelMaxBytes (r:1 w:0) + // Storage: Schemas CurrentSchemaIdentifierMaximum (r:1 w:1) + // Storage: Schemas Schemas (r:0 w:1) + fn create_schema_via_governance(m: u32, ) -> Weight { + Weight::from_ref_time(19_380_000 as u64) + // Standard Error: 43 + .saturating_add(Weight::from_ref_time(28_250 as u64).saturating_mul(m as u64)) + .saturating_add(T::DbWeight::get().reads(2 as u64)) + .saturating_add(T::DbWeight::get().writes(2 as u64)) + } + // Storage: Council Members (r:1 w:0) + // Storage: Council ProposalOf (r:1 w:1) + // Storage: Council Proposals (r:1 w:1) + // Storage: Council ProposalCount (r:1 w:1) + // Storage: Council Voting (r:0 w:1) + fn propose_to_create_schema(m: u32, ) -> Weight { + Weight::from_ref_time(11_234_174 as u64) + // Standard Error: 55 + .saturating_add(Weight::from_ref_time(4_457 as u64).saturating_mul(m as u64)) + .saturating_add(T::DbWeight::get().reads(4 as u64)) + .saturating_add(T::DbWeight::get().writes(4 as u64)) + } // Storage: Schemas GovernanceSchemaModelMaxBytes (r:0 w:1) fn set_max_schema_model_bytes() -> Weight { - Weight::from_ref_time(13_564_000 as u64) + Weight::from_ref_time(13_266_000 as u64) .saturating_add(T::DbWeight::get().writes(1 as u64)) } } @@ -83,15 +107,37 @@ impl WeightInfo for () { // Storage: Schemas CurrentSchemaIdentifierMaximum (r:1 w:1) // Storage: Schemas Schemas (r:0 w:1) fn create_schema(m: u32, ) -> Weight { - Weight::from_ref_time(19_250_000 as u64) - // Standard Error: 42 - .saturating_add(Weight::from_ref_time(28_557 as u64).saturating_mul(m as u64)) + Weight::from_ref_time(19_730_000 as u64) + // Standard Error: 48 + .saturating_add(Weight::from_ref_time(28_294 as u64).saturating_mul(m as u64)) .saturating_add(RocksDbWeight::get().reads(2 as u64)) .saturating_add(RocksDbWeight::get().writes(2 as u64)) } + // Storage: Schemas GovernanceSchemaModelMaxBytes (r:1 w:0) + // Storage: Schemas CurrentSchemaIdentifierMaximum (r:1 w:1) + // Storage: Schemas Schemas (r:0 w:1) + fn create_schema_via_governance(m: u32, ) -> Weight { + Weight::from_ref_time(19_380_000 as u64) + // Standard Error: 43 + .saturating_add(Weight::from_ref_time(28_250 as u64).saturating_mul(m as u64)) + .saturating_add(RocksDbWeight::get().reads(2 as u64)) + .saturating_add(RocksDbWeight::get().writes(2 as u64)) + } + // Storage: Council Members (r:1 w:0) + // Storage: Council ProposalOf (r:1 w:1) + // Storage: Council Proposals (r:1 w:1) + // Storage: Council ProposalCount (r:1 w:1) + // Storage: Council Voting (r:0 w:1) + fn propose_to_create_schema(m: u32, ) -> Weight { + Weight::from_ref_time(11_234_174 as u64) + // Standard Error: 55 + .saturating_add(Weight::from_ref_time(4_457 as u64).saturating_mul(m as u64)) + .saturating_add(RocksDbWeight::get().reads(4 as u64)) + .saturating_add(RocksDbWeight::get().writes(4 as u64)) + } // Storage: Schemas GovernanceSchemaModelMaxBytes (r:0 w:1) fn set_max_schema_model_bytes() -> Weight { - Weight::from_ref_time(13_564_000 as u64) + Weight::from_ref_time(13_266_000 as u64) .saturating_add(RocksDbWeight::get().writes(1 as u64)) } } diff --git a/pallets/stateful-storage/src/tests.rs b/pallets/stateful-storage/src/tests.rs index 038afcf5cb..f6cce6c529 100644 --- a/pallets/stateful-storage/src/tests.rs +++ b/pallets/stateful-storage/src/tests.rs @@ -2426,7 +2426,13 @@ fn apply_delete_item_on_append_only_fails() { )); let items1: Option> = - StatefulChildTree::<::KeyHasher>::try_read(&msa_id, &keys).unwrap(); + StatefulChildTree::<::KeyHasher>::try_read( + &msa_id, + PALLET_STORAGE_PREFIX, + ITEMIZED_STORAGE_PREFIX, + &keys, + ) + .unwrap(); assert!(items1.is_some()); let content_hash = items1.unwrap().get_hash(); diff --git a/runtime/common/Cargo.toml b/runtime/common/Cargo.toml index f51edef0d7..4bdeaaa1d6 100644 --- a/runtime/common/Cargo.toml +++ b/runtime/common/Cargo.toml @@ -33,6 +33,7 @@ sp-std = { git = "https://github.com/paritytech/substrate", default-features = f pallet-balances = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.36" } pallet-collective = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.36" } pallet-democracy = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.36" } +pallet-multisig = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.36" } pallet-preimage = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.36" } pallet-scheduler = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.36" } pallet-session = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.36" } @@ -56,6 +57,7 @@ std = [ "pallet-democracy/std", "pallet-collator-selection/std", "pallet-collective/std", + "pallet-multisig/std", ] try-runtime = [ "frame-support/try-runtime", @@ -63,6 +65,7 @@ try-runtime = [ "pallet-collator-selection/try-runtime", "pallet-collective/try-runtime", "pallet-democracy/try-runtime", + "pallet-multisig/try-runtime", "pallet-preimage/try-runtime", "pallet-scheduler/try-runtime", "pallet-treasury/try-runtime", diff --git a/runtime/common/src/weights/mod.rs b/runtime/common/src/weights/mod.rs index ffbfc307e8..3ce1b08931 100644 --- a/runtime/common/src/weights/mod.rs +++ b/runtime/common/src/weights/mod.rs @@ -24,6 +24,7 @@ pub mod pallet_balances; pub mod pallet_collator_selection; pub mod pallet_collective; pub mod pallet_democracy; +pub mod pallet_multisig; pub mod pallet_preimage; pub mod pallet_scheduler; pub mod pallet_session; diff --git a/runtime/common/src/weights/pallet_multisig.rs b/runtime/common/src/weights/pallet_multisig.rs new file mode 100644 index 0000000000..21563fe42f --- /dev/null +++ b/runtime/common/src/weights/pallet_multisig.rs @@ -0,0 +1,108 @@ +//! Autogenerated weights for pallet_multisig +//! +//! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev +//! DATE: 2023-02-16, STEPS: `50`, REPEAT: 20, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! EXECUTION: Some(Wasm), WASM-EXECUTION: Compiled, CHAIN: Some("frequency-bench"), DB CACHE: 1024 + +// Executed Command: +// ./scripts/../target/production/frequency +// benchmark +// pallet +// --pallet +// pallet_multisig +// --extrinsic +// * +// --chain=frequency-bench +// --execution +// wasm +// --heap-pages=4096 +// --wasm-execution +// compiled +// --steps=50 +// --repeat=20 +// --output=./scripts/../runtime/common/src/weights/pallet_multisig.rs +// --template=./scripts/../.maintain/runtime-weight-template.hbs + +#![cfg_attr(rustfmt, rustfmt_skip)] +#![allow(unused_parens)] +#![allow(unused_imports)] + +use frame_support::{traits::Get, weights::{Weight, constants::RocksDbWeight}}; +use sp_std::marker::PhantomData; + +/// Weights for pallet_multisig using the Substrate node and recommended hardware. +pub struct SubstrateWeight(PhantomData); +impl pallet_multisig::WeightInfo for SubstrateWeight { + /// The range of component `z` is `[0, 10000]`. + fn as_multi_threshold_1(z: u32, ) -> Weight { + Weight::from_ref_time(17_233_277 as u64) + // Standard Error: 5 + .saturating_add(Weight::from_ref_time(616 as u64).saturating_mul(z as u64)) + } + // Storage: Multisig Multisigs (r:1 w:1) + // Storage: unknown [0x3a65787472696e7369635f696e646578] (r:1 w:0) + /// The range of component `s` is `[2, 100]`. + /// The range of component `z` is `[0, 10000]`. + fn as_multi_create(s: u32, z: u32, ) -> Weight { + Weight::from_ref_time(32_672_546 as u64) + // Standard Error: 943 + .saturating_add(Weight::from_ref_time(158_624 as u64).saturating_mul(s as u64)) + // Standard Error: 9 + .saturating_add(Weight::from_ref_time(1_796 as u64).saturating_mul(z as u64)) + .saturating_add(T::DbWeight::get().reads(2 as u64)) + .saturating_add(T::DbWeight::get().writes(1 as u64)) + } + // Storage: Multisig Multisigs (r:1 w:1) + /// The range of component `s` is `[3, 100]`. + /// The range of component `z` is `[0, 10000]`. + fn as_multi_approve(s: u32, z: u32, ) -> Weight { + Weight::from_ref_time(22_526_860 as u64) + // Standard Error: 722 + .saturating_add(Weight::from_ref_time(134_947 as u64).saturating_mul(s as u64)) + // Standard Error: 7 + .saturating_add(Weight::from_ref_time(1_906 as u64).saturating_mul(z as u64)) + .saturating_add(T::DbWeight::get().reads(1 as u64)) + .saturating_add(T::DbWeight::get().writes(1 as u64)) + } + // Storage: Multisig Multisigs (r:1 w:1) + // Storage: System Account (r:1 w:1) + /// The range of component `s` is `[2, 100]`. + /// The range of component `z` is `[0, 10000]`. + fn as_multi_complete(s: u32, z: u32, ) -> Weight { + Weight::from_ref_time(34_133_740 as u64) + // Standard Error: 949 + .saturating_add(Weight::from_ref_time(196_356 as u64).saturating_mul(s as u64)) + // Standard Error: 9 + .saturating_add(Weight::from_ref_time(1_931 as u64).saturating_mul(z as u64)) + .saturating_add(T::DbWeight::get().reads(2 as u64)) + .saturating_add(T::DbWeight::get().writes(2 as u64)) + } + // Storage: Multisig Multisigs (r:1 w:1) + // Storage: unknown [0x3a65787472696e7369635f696e646578] (r:1 w:0) + /// The range of component `s` is `[2, 100]`. + fn approve_as_multi_create(s: u32, ) -> Weight { + Weight::from_ref_time(31_260_571 as u64) + // Standard Error: 1_046 + .saturating_add(Weight::from_ref_time(155_344 as u64).saturating_mul(s as u64)) + .saturating_add(T::DbWeight::get().reads(2 as u64)) + .saturating_add(T::DbWeight::get().writes(1 as u64)) + } + // Storage: Multisig Multisigs (r:1 w:1) + /// The range of component `s` is `[2, 100]`. + fn approve_as_multi_approve(s: u32, ) -> Weight { + Weight::from_ref_time(21_977_485 as u64) + // Standard Error: 866 + .saturating_add(Weight::from_ref_time(137_396 as u64).saturating_mul(s as u64)) + .saturating_add(T::DbWeight::get().reads(1 as u64)) + .saturating_add(T::DbWeight::get().writes(1 as u64)) + } + // Storage: Multisig Multisigs (r:1 w:1) + /// The range of component `s` is `[2, 100]`. + fn cancel_as_multi(s: u32, ) -> Weight { + Weight::from_ref_time(31_899_527 as u64) + // Standard Error: 947 + .saturating_add(Weight::from_ref_time(148_767 as u64).saturating_mul(s as u64)) + .saturating_add(T::DbWeight::get().reads(1 as u64)) + .saturating_add(T::DbWeight::get().writes(1 as u64)) + } +} diff --git a/runtime/frequency/Cargo.toml b/runtime/frequency/Cargo.toml index 7b781aaca4..835a35bfae 100644 --- a/runtime/frequency/Cargo.toml +++ b/runtime/frequency/Cargo.toml @@ -42,6 +42,7 @@ pallet-democracy = { git = "https://github.com/paritytech/substrate", default-fe pallet-collective = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.36" } pallet-session = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.36" } pallet-sudo = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.36" } +pallet-multisig = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.36" } pallet-timestamp = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.36" } pallet-transaction-payment = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.36" } pallet-transaction-payment-rpc-runtime-api = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.36" } @@ -64,7 +65,7 @@ orml-benchmarking = { git = "https://github.com/open-web3-stack/open-runtime-mod orml-vesting = { git = "https://github.com/open-web3-stack/open-runtime-module-library", default-features = false, branch = "polkadot-v0.9.36" } # Frequency common-primitives = { default-features = false, path = "../../common/primitives" } -common-runtime = { path = '../common', default-features = false } +common-runtime = { path = "../common", default-features = false } pallet-messages = { path = "../../pallets/messages", default-features = false } pallet-messages-runtime-api = { path = "../../pallets/messages/src/runtime-api", default-features = false } pallet-msa = { path = "../../pallets/msa", default-features = false } @@ -73,6 +74,7 @@ pallet-schemas = { path = "../../pallets/schemas", default-features = false } pallet-schemas-runtime-api = { path = "../../pallets/schemas/src/runtime-api", default-features = false } pallet-stateful-storage = { path = "../../pallets/stateful-storage", default-features = false } pallet-stateful-storage-runtime-api = { path = "../../pallets/stateful-storage/src/runtime-api", default-features = false } +system-runtime-api = { path = '../system-runtime-api', default-features = false } # Polkadot polkadot-parachain = { git = "https://github.com/paritytech/polkadot", default-features = false, branch = "release-v0.9.36" } polkadot-runtime-common = { git = "https://github.com/paritytech/polkadot", default-features = false, branch = "release-v0.9.36" } @@ -114,6 +116,7 @@ std = [ "pallet-scheduler/std", "pallet-session/std", "pallet-sudo/std", + "pallet-multisig/std", "pallet-timestamp/std", "pallet-transaction-payment-rpc-runtime-api/std", "pallet-transaction-payment/std", @@ -144,6 +147,7 @@ std = [ "sp-std/std", "sp-transaction-pool/std", "sp-version/std", + "system-runtime-api/std", ] runtime-benchmarks = [ "hex-literal", @@ -158,8 +162,8 @@ runtime-benchmarks = [ "pallet-collator-selection/runtime-benchmarks", "pallet-scheduler/runtime-benchmarks", "pallet-timestamp/runtime-benchmarks", - "pallet-timestamp/runtime-benchmarks", - 'pallet-msa/runtime-benchmarks', + "pallet-multisig/runtime-benchmarks", + "pallet-msa/runtime-benchmarks", "pallet-messages/runtime-benchmarks", "pallet-schemas/runtime-benchmarks", "pallet-stateful-storage/runtime-benchmarks", @@ -183,6 +187,7 @@ try-runtime = [ "pallet-collator-selection/try-runtime", "pallet-session/try-runtime", "pallet-sudo/try-runtime", + "pallet-multisig/try-runtime", "pallet-msa/try-runtime", "pallet-messages/try-runtime", "pallet-schemas/try-runtime", diff --git a/runtime/frequency/src/lib.rs b/runtime/frequency/src/lib.rs index bf6a29f040..25360eb977 100644 --- a/runtime/frequency/src/lib.rs +++ b/runtime/frequency/src/lib.rs @@ -21,9 +21,11 @@ use sp_runtime::{ create_runtime_str, generic, impl_opaque_keys, traits::{AccountIdConversion, AccountIdLookup, BlakeTwo256, Block as BlockT, ConvertInto}, transaction_validity::{TransactionSource, TransactionValidity}, - ApplyExtrinsicResult, DispatchError, + ApplyExtrinsicResult, }; +use codec::Encode; + #[cfg(feature = "runtime-benchmarks")] use codec::Decode; @@ -36,6 +38,7 @@ use common_primitives::{ messages::*, msa::*, node::*, + rpc::RpcEvent, schema::{PayloadLocation, SchemaId, SchemaResponse}, stateful_storage::*, }; @@ -47,7 +50,7 @@ pub use common_runtime::{ use frame_support::{ construct_runtime, - dispatch::DispatchClass, + dispatch::{DispatchClass, DispatchError}, parameter_types, traits::{ConstU128, ConstU32, EitherOfDiverse, EnsureOrigin, EqualPrivilegeOnly}, weights::{constants::RocksDbWeight, ConstantMultiplier, Weight}, @@ -58,6 +61,9 @@ use frame_system::{ limits::{BlockLength, BlockWeights}, EnsureRoot, RawOrigin, }; + +use sp_std::boxed::Box; + pub use sp_consensus_aura::sr25519::AuthorityId as AuraId; pub use sp_runtime::{MultiAddress, Perbill, Permill}; @@ -74,11 +80,39 @@ pub use common_runtime::{ weights, weights::{BlockExecutionWeight, ExtrinsicBaseWeight}, }; -use frame_support::traits::Contains; +use frame_support::traits::{Contains, OnRuntimeUpgrade}; #[cfg(feature = "try-runtime")] use frame_support::traits::TryStateSelect; +/// Interface to collective pallet to propose a proposal. +pub struct CouncilProposalProvider; + +impl ProposalProvider for CouncilProposalProvider { + fn propose( + who: AccountId, + threshold: u32, + proposal: Box, + ) -> Result<(u32, u32), DispatchError> { + let length_bound: u32 = proposal.using_encoded(|p| p.len() as u32); + Council::do_propose_proposed(who, threshold, proposal, length_bound) + } + + fn propose_with_simple_majority( + who: AccountId, + proposal: Box, + ) -> Result<(u32, u32), DispatchError> { + let threshold: u32 = ((Council::members().len() / 2) + 1) as u32; + let length_bound: u32 = proposal.using_encoded(|p| p.len() as u32); + Council::do_propose_proposed(who, threshold, proposal, length_bound) + } + + #[cfg(any(feature = "runtime-benchmarks", feature = "test"))] + fn proposal_count() -> u32 { + Council::proposal_count() + } +} + /// Basefilter to only allow specified transactions call to be executed /// For non mainnet [--features frequency] all transactions are allowed pub struct BaseCallFilter; @@ -98,6 +132,9 @@ impl Contains for BaseCallFilter { match call { // Utility Calls are blocked. Issue #599 RuntimeCall::Utility(..) => false, + // Create provider and create schema are not allowed in mainnet for now. See propose functions. + RuntimeCall::Msa(pallet_msa::Call::create_provider { .. }) => false, + RuntimeCall::Schemas(pallet_schemas::Call::create_schema { .. }) => false, // Allowed Mainnet RuntimeCall::System(..) | RuntimeCall::Timestamp(..) | @@ -154,15 +191,202 @@ pub type Executive = frame_executive::Executive< SchemaMigrationToV1, >; +// ============================================== +// RUNTIME STORAGE MIGRATION +// ============================================== +#[allow(unused)] +mod remove_sudo { + use super::*; + use frame_support::{dispatch::Vec, pallet_prelude::Weight}; + use frame_system::AccountInfo; + use pallet_balances::AccountData; + use sp_core::crypto::AccountId32; + + // Known prefixes for Sudo storage. See https://www.shawntabrizi.com/substrate-known-keys/ + const SUDO_PREFIX: [u8; 16] = [ + 0x5c, 0x0d, 0x11, 0x76, 0xa5, 0x68, 0xc1, 0xf9, 0x29, 0x44, 0x34, 0x0d, 0xbf, 0xed, 0x9e, + 0x9c, + ]; + const KEY_PREFIX: [u8; 16] = [ + 0x53, 0x0e, 0xbc, 0xa7, 0x03, 0xc8, 0x59, 0x10, 0xe7, 0x16, 0x4c, 0xb7, 0xd1, 0xc9, 0xe4, + 0x7b, + ]; + const PALLET_VERSION_PREFIX: [u8; 16] = [ + 0x4e, 0x7b, 0x90, 0x12, 0x09, 0x6b, 0x41, 0xc4, 0xeb, 0x3a, 0xaf, 0x94, 0x7f, 0x6e, 0xa4, + 0x29, + ]; + + pub struct RemoveSudo; + impl RemoveSudo { + fn join_keys(key1: &[u8; 16], key2: &[u8; 16]) -> Vec { + let mut res: Vec = Vec::from(*key1); + for c in key2 { + res.push(*c); + } + res + } + + #[cfg(feature = "frequency")] + fn transfer_sudo_balance_to_treasury(from: AccountId) { + // have to get the sudo key this way because the sudo pallet was removed + let to: AccountId = Treasury::account_id(); + // this is how to transfer the balance, according to + // https://substrate.stackexchange.com/questions/5185/token-distribution-to-many-users-in-substrate/5194#5194 + let transfer_result = + Balances::transfer_all(RuntimeOrigin::signed(from.into()), to.into(), false); + if let Err(e) = transfer_result { + log::warn!("‼️ transfer failed with {:?}", e); + } + } + + // check sudo free balance, assuming the key is still in storage. + #[cfg(feature = "try-runtime")] + fn check_sudo_balance_pre_upgrade(sudo_key: &Vec) -> AccountId { + let storage_result: Option = + frame_support::storage::unhashed::get(sudo_key.as_slice()); + if storage_result.is_some() { + let from: AccountId = storage_result.unwrap(); + let account_data: AccountInfo> = System::account(&from); + log::info!("🟢 Current Sudo account balance: free: {:?}, reserved: {:?}, fee_frozen: {:?}, misc_frozen: {:?}", + account_data.data.free, account_data.data.reserved, account_data.data.fee_frozen, account_data.data.misc_frozen); + from.clone() + } else { + log::warn!("This sudo key does not exist"); + AccountId::from([0; 32]) + } + } + + // checks sudo balance post_upgrade, using the sudo AccountId passed from pre_upgrade results. + #[cfg(feature = "try-runtime")] + fn check_sudo_balance_post_upgrade(state: &Vec) { + // try_from is really the only way to try to get an AccountId[32] out of a byte vec; + // everything else is cfg-ed away in runtime. + match AccountId32::try_from(state.as_slice()) { + Ok(from) => { + let account_data: AccountInfo> = + System::account(&from); + log::info!("‼️ Post-upgrade, Sudo account has a balance: free: {:?}, reserved: {:?}", account_data.data.free, account_data.data.reserved); + }, + Err(_) => { + log::info!( + "❎ Post-upgrade, Sudo account could not be converted: {:?}", + state.as_slice() + ); + }, + } + } + + // returns true if both Sudo storage keys are found, false otherwise. + fn keys_exist() -> bool { + let sudo_key: Vec = Self::join_keys(&SUDO_PREFIX, &KEY_PREFIX); + let sudo_pallet_version: Vec = + Self::join_keys(&SUDO_PREFIX, &PALLET_VERSION_PREFIX); + + let mut keys_exist = frame_support::storage::unhashed::exists(sudo_key.as_slice()); + log::info!("❓ Sudo Key storage exists ===> {:?}", keys_exist); + keys_exist = frame_support::storage::unhashed::exists(sudo_pallet_version.as_slice()); + log::info!("❓ Sudo PalletVersion storage exists ===> {:?}", keys_exist); + keys_exist + } + + #[cfg(not(feature = "frequency"))] + fn transfer_sudo_balance_to_treasury() { + log::warn!( + "‼️ transfer_sudo_balance_to_treasury was called but should not have been" + ); + } + + // TODO: correct weight? + fn weights_from(reads: u64, writes: u64) -> Weight { + Weight::from_ref_time(0u64) + .saturating_add(RocksDbWeight::get().reads(reads)) + .saturating_add(RocksDbWeight::get().writes(writes)) + } + + fn remove_storage(key: &Vec) { + frame_support::storage::unhashed::kill(key.as_slice()); + } + } + + impl OnRuntimeUpgrade for RemoveSudo { + // on_runtime_upgrade is the only OnRuntimeUpgrade trait function that must be defined for all configs + // do nothing if we are not on mainnet. + #[cfg(not(feature = "frequency"))] + fn on_runtime_upgrade() -> Weight { + Weight::zero() + } + + // Do this if we are on mainnet + #[cfg(feature = "frequency")] + fn on_runtime_upgrade() -> Weight { + // keep track of reads/writes + let mut reads: u64 = 4; // from the two calls to keys_exist + let mut writes: u64 = 0; + + if !Self::keys_exist() { + // we don't want to proceed if there is even a partial migration. + log::warn!("Sudo Storage Migration run on already migrated database. This migration should be removed."); + } else { + let sudo_key: Vec = Self::join_keys(&SUDO_PREFIX, &KEY_PREFIX); + // get the value out so we can transfer the funds later. + let storage_result: Option = + frame_support::storage::unhashed::get(sudo_key.as_slice()); + + let sudo_pallet_version: Vec = + Self::join_keys(&SUDO_PREFIX, &PALLET_VERSION_PREFIX); + + Self::remove_storage(&sudo_key); + Self::remove_storage(&sudo_pallet_version); + writes += 2; + + // "To ensure that this function results in a killed account, you might need to prepare the account by + // removing any reference counters, storage deposits, etc…" + // https://paritytech.github.io/substrate/master/pallet_balances/pallet/struct.Pallet.html#method.transfer_all + if storage_result.is_some() { + let from: AccountId = storage_result.unwrap(); + // TODO: should extrinsic call be included in the weight? Surely it is added by the txn call. + Self::transfer_sudo_balance_to_treasury(from); + reads += 1; + writes += 1; + } + System::deposit_event(frame_system::Event::CodeUpdated); + } + let _ = Self::keys_exist(); + Self::weights_from(reads, writes) + } + + // if try_on_runtime_update function is defined, pre_ and post_upgrade must be called explicitly. + // see default function at: + // https://github.com/paritytech/substrate/blob/master/frame/support/src/traits/hooks.rs#L139 + #[cfg(feature = "try-runtime")] + fn pre_upgrade() -> Result, &'static str> { + let account_id = + Self::check_sudo_balance_pre_upgrade(&Self::join_keys(&SUDO_PREFIX, &KEY_PREFIX)); + let account_id_ar: &[u8; 32] = account_id.as_ref(); + let result: Vec = Vec::from(account_id_ar.clone()); + Ok(result) + } + + #[cfg(feature = "try-runtime")] + fn post_upgrade(state: Vec) -> Result<(), &'static str> { + Self::check_sudo_balance_post_upgrade(&state); + Ok(()) + } + } +} + +// ============================================== +// END RUNTIME STORAGE MIGRATION +// ============================================== + /// Opaque types. These are used by the CLI to instantiate machinery that don't need to know /// the specifics of the runtime. They can then be made to be agnostic over specific formats /// of data like extrinsics, allowing for them to continue syncing the network through upgrades /// to even the core data structures. pub mod opaque { use super::*; - use sp_runtime::{generic, traits::BlakeTwo256}; - pub use sp_runtime::OpaqueExtrinsic as UncheckedExtrinsic; + use sp_runtime::{generic, traits::BlakeTwo256}; /// Opaque block header type. pub type Header = generic::Header; /// Opaque block type. @@ -317,6 +541,15 @@ impl pallet_msa::Config for Runtime { type NumberOfBuckets = MSANumberOfBuckets; // The maximum number of signatures that can be stored in the payload signature registry type MaxSignaturesStored = MSAMaxSignaturesStored; + // The proposal type + type Proposal = RuntimeCall; + // The Council proposal provider interface + type ProposalProvider = CouncilProposalProvider; + // The origin that is allowed to create providers via governance + type CreateProviderViaGovernanceOrigin = EitherOfDiverse< + EnsureRoot, + pallet_collective::EnsureMembers, + >; } impl pallet_schemas::Config for Runtime { @@ -328,6 +561,15 @@ impl pallet_schemas::Config for Runtime { type MaxSchemaRegistrations = SchemasMaxRegistrations; // The maximum length of a schema model (in bytes) type SchemaModelMaxBytesBoundedVecLimit = SchemasMaxBytesBoundedVecLimit; + // The proposal type + type Proposal = RuntimeCall; + // The Council proposal provider interface + type ProposalProvider = CouncilProposalProvider; + // The origin that is allowed to create schemas via governance + type CreateSchemaViaGovernanceOrigin = EitherOfDiverse< + EnsureRoot, + pallet_collective::EnsureProportionMoreThan, + >; // Maximum number of schema grants that are allowed per schema type MaxSchemaSettingsPerSchema = MaxSchemaSettingsPerSchema; } @@ -352,6 +594,26 @@ impl EnsureOrigin for RootAsVestingPallet { } } +parameter_types! { + // One storage item; key size is 32; value is size 4+4+16+32 bytes = 56 bytes. + pub const DepositBase: Balance = currency::deposit(1, 88); + // Additional storage item size of 32 bytes. + pub const DepositFactor: Balance = currency::deposit(0, 32); + pub const MaxSignatories: u32 = 100; +} + +// See https://paritytech.github.io/substrate/master/pallet_multisig/pallet/trait.Config.html for +// the descriptions of these configs. +impl pallet_multisig::Config for Runtime { + type RuntimeEvent = RuntimeEvent; + type RuntimeCall = RuntimeCall; + type Currency = Balances; + type DepositBase = DepositBase; + type DepositFactor = DepositFactor; + type MaxSignatories = MaxSignatories; + type WeightInfo = weights::pallet_multisig::SubstrateWeight; +} + parameter_types! { /// Need this declaration method for use + type safety in benchmarks pub const MaxVestingSchedules: u32 = ORML_MAX_VESTING_SCHEDULES; @@ -480,9 +742,11 @@ impl pallet_democracy::Config for Runtime { type MaxVotes = DemocracyMaxVotes; type MinimumDeposit = MinimumDeposit; type Scheduler = Scheduler; - type Slash = (); // Treasury; + type Slash = (); + // Treasury; type WeightInfo = weights::pallet_democracy::SubstrateWeight; - type VoteLockingPeriod = EnactmentPeriod; // Same as EnactmentPeriod + type VoteLockingPeriod = EnactmentPeriod; + // Same as EnactmentPeriod type VotingPeriod = VotingPeriod; type Preimages = Preimage; type MaxDeposits = ConstU32<100>; @@ -819,6 +1083,9 @@ construct_runtime!( Aura: pallet_aura::{Pallet, Storage, Config} = 23, AuraExt: cumulus_pallet_aura_ext::{Pallet, Storage, Config} = 24, + // Signatures + Multisig: pallet_multisig::{Pallet, Call, Storage, Event} = 30, + // ORML Vesting: orml_vesting::{Pallet, Call, Storage, Event, Config} = 40, @@ -849,6 +1116,7 @@ mod benches { [pallet_session, SessionBench::] [pallet_timestamp, Timestamp] [pallet_collator_selection, CollatorSelection] + [pallet_multisig, Multisig] [pallet_utility, Utility] // Frequency @@ -984,6 +1252,12 @@ impl_runtime_apis! { } } + impl system_runtime_api::AdditionalRuntimeApi for Runtime { + fn get_events() -> Vec { + System::read_events_no_consensus().into_iter().map(|e| (*e).into()).collect() + } + } + impl pallet_msa_runtime_api::MsaRuntimeApi for Runtime { // *Temporarily Removed* until https://github.com/LibertyDSNP/frequency/issues/418 is completed // fn get_msa_keys(msa_id: MessageSourceId) -> Vec> { @@ -1119,7 +1393,6 @@ cumulus_pallet_parachain_system::register_validate_block! { // RUNTIME STORAGE MIGRATION: Schemas // ============================================== /// Schema migration to v1 for pallet-stateful-storage -use frame_support::traits::OnRuntimeUpgrade; pub struct SchemaMigrationToV1; impl OnRuntimeUpgrade for SchemaMigrationToV1 { diff --git a/runtime/system-runtime-api/Cargo.toml b/runtime/system-runtime-api/Cargo.toml new file mode 100644 index 0000000000..2ff5a68a9d --- /dev/null +++ b/runtime/system-runtime-api/Cargo.toml @@ -0,0 +1,36 @@ +[package] +name = "system-runtime-api" +version = "0.0.0" +description = "Additional RPC package for Frequency" +authors = ["Frequency"] +license = "Apache-2.0" +publish = false +homepage = "https://frequency.xyz" +repository = "https://github.com/libertyDSNP/frequency/" +edition = "2021" + +[dependencies] +codec = { package = "parity-scale-codec", version = "3.1.5", default-features = false, features = [ + "derive" +] } +serde_json = { version = "1.0.86", default-features = false, features = [ + "alloc", +] } +# Substrate +sp-runtime = { default-features = false, git = "https://github.com/paritytech/substrate.git", branch = "polkadot-v0.9.36" } +sp-api = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.36" } +sp-std = { default-features = false, git = "https://github.com/paritytech/substrate.git", branch = "polkadot-v0.9.36" } +frame-support = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.36" } +frame-system = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.36" } +# Frequency related dependencies +common-primitives = { default-features = false, path = "../../common/primitives" } + +[features] +default = ["std"] +std = [ + "codec/std", + "sp-api/std", + "frame-support/std", + "common-primitives/std", + "sp-std/std", +] diff --git a/runtime/system-runtime-api/src/lib.rs b/runtime/system-runtime-api/src/lib.rs new file mode 100644 index 0000000000..05568131cd --- /dev/null +++ b/runtime/system-runtime-api/src/lib.rs @@ -0,0 +1,38 @@ +#![cfg_attr(not(feature = "std"), no_std)] +#![allow(clippy::too_many_arguments)] +#![allow(clippy::unnecessary_mut_passed)] +// Strong Documentation Lints +#![deny( + rustdoc::broken_intra_doc_links, + rustdoc::missing_crate_level_docs, + rustdoc::invalid_codeblock_attributes, + missing_docs +)] + +//! Runtime API definition for additional Frequency RPCs +//! +//! This api must be implemented by the node runtime. +//! Runtime APIs Provide: +//! - An interface between the runtime and Custom RPCs. +//! - Runtime interfaces for end users beyond just State Queries + +use common_primitives::rpc::RpcEvent; +use sp_std::prelude::*; + +// Here we declare the runtime API. It is implemented it the `impl` block in +// runtime files (the `runtime` folder) +sp_api::decl_runtime_apis! { + + /// Runtime Version for Additional Frequency Runtime Apis + /// - MUST be incremented if anything changes + /// - Also update in js/api-augment + /// - See: https://paritytech.github.io/polkadot/doc/polkadot_primitives/runtime_api/index.html + #[api_version(1)] + + /// Runtime API definition for Frequency + pub trait AdditionalRuntimeApi { + /// Fetch the events of a block + /// An easy to work with structure with minimal SCALE needs + fn get_events() -> Vec; + } +} diff --git a/scripts/run_all_benchmarks.sh b/scripts/run_all_benchmarks.sh index f5d21d39ad..870b10b5ad 100755 --- a/scripts/run_all_benchmarks.sh +++ b/scripts/run_all_benchmarks.sh @@ -5,7 +5,7 @@ THIS_DIR=$( dirname -- "$0"; ) PROJECT=${1:-$THIS_DIR/..} RUNTIME=$PROJECT/target/production/frequency BENCHMARK="$RUNTIME benchmark pallet " -EXTERNAL_PALLETS=(pallet_collator_selection pallet_collective orml_vesting pallet_balances pallet_timestamp pallet_session pallet_scheduler pallet_democracy pallet_treasury pallet_preimage pallet_utility) +EXTERNAL_PALLETS=(pallet_collator_selection pallet_collective orml_vesting pallet_balances pallet_timestamp pallet_session pallet_scheduler pallet_democracy pallet_multisig pallet_treasury pallet_preimage pallet_utility) CUSTOM_PALLETS=(messages msa schemas stateful-storage) function exit_err() { echo "❌ 💔" ; exit 1; }