diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 3f62ab761b..a0751852cc 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -809,6 +809,7 @@ jobs: - test_name: lit-parentchain-nonce - test_name: lit-test-failed-parentchain-extrinsic - test_name: lit-omni-account-test + - test_name: lit-native-request-vc-test name: ${{ matrix.test_name }} steps: - uses: actions/checkout@v4 @@ -880,6 +881,7 @@ jobs: - test_name: lit-dr-vc-multiworker-test - test_name: lit-resume-worker - test_name: lit-omni-account-multiworker-test + - test_name: lit-native-request-vc-multiworker-test name: ${{ matrix.test_name }} steps: - uses: actions/checkout@v4 diff --git a/parachain/pallets/vc-management/src/benchmarking.rs b/parachain/pallets/vc-management/src/benchmarking.rs index eb33ec9ebe..58a356672e 100644 --- a/parachain/pallets/vc-management/src/benchmarking.rs +++ b/parachain/pallets/vc-management/src/benchmarking.rs @@ -157,6 +157,18 @@ benchmarks! { assert_last_event::(Event::SchemaRevoked { account, shard, index: 0 }.into()) } + // Benchmark `on_vc_issued`. There are no worst conditions. The benchmark showed that + // execution time is constant irrespective of encrypted_data size. + on_vc_issued { + let call_origin = T::TEECallOrigin::try_successful_origin().map_err(|_| BenchmarkError::Weightless)?; + let identity: Identity = frame_benchmarking::account::("TEST_A", 0u32, USER_SEED).into(); + let assertion = Assertion::A1; + let omni_account: T::AccountId = frame_benchmarking::account("TEST_OMNI_ACCOUNT", 0u32, USER_SEED); + let req_ext_hash = H256::default(); + }: _(call_origin, identity.clone(), assertion.clone(), omni_account.clone(), req_ext_hash) + verify{ + assert_last_event::(Event::VCIssuedNew{ identity, assertion, omni_account, req_ext_hash }.into()); + } } #[cfg(test)] diff --git a/parachain/pallets/vc-management/src/lib.rs b/parachain/pallets/vc-management/src/lib.rs index 098d1b48e7..8669401041 100644 --- a/parachain/pallets/vc-management/src/lib.rs +++ b/parachain/pallets/vc-management/src/lib.rs @@ -161,6 +161,12 @@ pub mod pallet { detail: ErrorDetail, req_ext_hash: H256, }, + VCIssuedNew { + identity: Identity, + assertion: Assertion, + omni_account: T::AccountId, + req_ext_hash: H256, + }, } #[pallet::error] @@ -386,5 +392,25 @@ pub mod pallet { } Ok(Pays::No.into()) } + + // TODO: update the weight info to use on_vc_issued + #[pallet::call_index(32)] + #[pallet::weight(::WeightInfo::vc_issued())] + pub fn on_vc_issued( + origin: OriginFor, + identity: Identity, + assertion: Assertion, + omni_account: T::AccountId, + req_ext_hash: H256, + ) -> DispatchResultWithPostInfo { + let _ = T::TEECallOrigin::ensure_origin(origin)?; + Self::deposit_event(Event::VCIssuedNew { + identity, + assertion, + omni_account, + req_ext_hash, + }); + Ok(Pays::No.into()) + } } } diff --git a/parachain/pallets/vc-management/src/tests.rs b/parachain/pallets/vc-management/src/tests.rs index 647a875fa2..164b753ee3 100644 --- a/parachain/pallets/vc-management/src/tests.rs +++ b/parachain/pallets/vc-management/src/tests.rs @@ -349,3 +349,25 @@ fn revoke_schema_with_unprivileged_origin_fails() { ); }); } + +#[test] +fn on_vc_issued_works() { + new_test_ext().execute_with(|| { + let signer: SystemAccountId = get_signer(TEST8_SIGNER_PUB); + let alice: Identity = get_signer(ALICE_PUBKEY); + let omni_account = alice.to_omni_account(); + assert_ok!(VCManagement::on_vc_issued( + RuntimeOrigin::signed(signer), + alice.clone(), + Assertion::A1, + omni_account.clone(), + H256::default(), + )); + System::assert_last_event(RuntimeEvent::VCManagement(crate::Event::VCIssuedNew { + identity: alice, + assertion: Assertion::A1, + omni_account, + req_ext_hash: H256::default(), + })); + }); +} diff --git a/tee-worker/Cargo.lock b/tee-worker/Cargo.lock index 9a1c92c74c..f570965d9f 100644 --- a/tee-worker/Cargo.lock +++ b/tee-worker/Cargo.lock @@ -5208,12 +5208,15 @@ dependencies = [ "itp-sgx-externalities", "itp-stf-primitives", "itp-stf-state-handler", + "itp-storage", "itp-types", "lc-data-providers", "lc-dynamic-assertion", + "lc-evm-dynamic-assertions", "lc-identity-verification", "lc-native-task-sender", "lc-omni-account", + "lc-stf-task-receiver", "litentry-hex-utils", "litentry-macros", "litentry-primitives", diff --git a/tee-worker/common/core-primitives/node-api/api-client-types/src/lib.rs b/tee-worker/common/core-primitives/node-api/api-client-types/src/lib.rs index b90e2202e9..9da42eaf44 100644 --- a/tee-worker/common/core-primitives/node-api/api-client-types/src/lib.rs +++ b/tee-worker/common/core-primitives/node-api/api-client-types/src/lib.rs @@ -124,7 +124,7 @@ impl From> for Extrins } /// Possible transaction status events. -#[derive(Encode, Decode, Debug, Clone, PartialEq, MaxEncodedLen)] +#[derive(Encode, Decode, Debug, Clone, PartialEq, Eq, MaxEncodedLen)] pub enum TransactionStatus { /// Transaction is part of the future queue. Future, diff --git a/tee-worker/identity/app-libs/stf/src/trusted_call_result.rs b/tee-worker/identity/app-libs/stf/src/trusted_call_result.rs index c70a2cccb8..9bfc454849 100644 --- a/tee-worker/identity/app-libs/stf/src/trusted_call_result.rs +++ b/tee-worker/identity/app-libs/stf/src/trusted_call_result.rs @@ -105,7 +105,7 @@ pub struct RequestVCResult { pub pre_id_graph_hash: H256, } -#[derive(Debug, Encode, Decode, Clone)] +#[derive(Debug, Encode, Decode, Clone, PartialEq, Eq)] pub enum RequestVcErrorDetail { UnexpectedCall(String), DuplicateAssertionRequest, @@ -128,6 +128,9 @@ pub enum RequestVcErrorDetail { CallSendingFailed(String), ExtrinsicConstructionFailed(String), // Stringified itp_extrinsics_factory::Error ExtrinsicSendingFailed(String), // Stringified sgx_status_t + ExtractingMemberIdentityFailed, + OmniAccountStoreRetrievalFailed, + CreateAccountStoreFailed(String), } #[derive(Debug, Encode, Decode, Clone)] diff --git a/tee-worker/identity/client-api/parachain-api/CHANGELOG.md b/tee-worker/identity/client-api/parachain-api/CHANGELOG.md index 901a2933b0..da0121f5c7 100644 --- a/tee-worker/identity/client-api/parachain-api/CHANGELOG.md +++ b/tee-worker/identity/client-api/parachain-api/CHANGELOG.md @@ -15,6 +15,8 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 - Add `TrustedCallAuthenticated` and `TCAuthentication` trusted call structs. - Add `TrustedCallResult` to handle OmniAccount's call results. - Add `TrustedOperationAuthenticated` type definition. +- Update `TrustedCallResult` type definition. +- Add error variants to `RequestVcErrorDetail`. ## [0.9.20-4.1] - 2024-09-30 diff --git a/tee-worker/identity/client-api/parachain-api/package.json b/tee-worker/identity/client-api/parachain-api/package.json index 52fde7b7d7..161d6a3d78 100644 --- a/tee-worker/identity/client-api/parachain-api/package.json +++ b/tee-worker/identity/client-api/parachain-api/package.json @@ -5,7 +5,7 @@ "main": "dist/src/index.js", "module": "dist/src/index.js", "sideEffects": false, - "version": "0.9.20-next.8", + "version": "0.9.20-next.9", "scripts": { "clean": "rm -rf dist build node_modules", "update-metadata": "curl -s -H \"Content-Type: application/json\" -d '{\"id\":\"1\", \"jsonrpc\":\"2.0\", \"method\": \"state_getMetadata\", \"params\":[]}' http://localhost:9944 > prepare-build/litentry-parachain-metadata.json", diff --git a/tee-worker/identity/client-api/parachain-api/prepare-build/interfaces/trusted_operations/definitions.ts b/tee-worker/identity/client-api/parachain-api/prepare-build/interfaces/trusted_operations/definitions.ts index 1cd09d45bd..260a989129 100644 --- a/tee-worker/identity/client-api/parachain-api/prepare-build/interfaces/trusted_operations/definitions.ts +++ b/tee-worker/identity/client-api/parachain-api/prepare-build/interfaces/trusted_operations/definitions.ts @@ -112,7 +112,13 @@ export default { * Native tasks (OmniAccount) results * @see tee-worker/identity/litentry/core/native-task/receiver/src/lib.rs */ - TrustedCallResult: "Result", + TrustedCallResult: "Result", + TrustedCallOk: { + _enum: { + ExtrinsicReport: "ExtrinsicReport", + RequestVcResult: "RequestVcResultOrError", + }, + }, ExtrinsicReport: { // Hash of the extrinsic. extrinsic_hash: "H256", @@ -148,7 +154,7 @@ export default { Invalid: "Null", }, }, - NativeTaskError: { + TrustedCallError: { _enum: { UnexpectedCall: "Text", ShieldingKeyRetrievalFailed: "Text", // Stringified itp_sgx_crypto::Error @@ -170,7 +176,6 @@ export default { ExtrinsicConstructionFailed: "Text", // Stringified itp_extrinsics_factory::Error ExtrinsicSendingFailed: "Text", // Stringified sgx_status_t InvalidRequest: "Null", - NativeRequestSendFailed: "Null", }, }, }, diff --git a/tee-worker/identity/client-api/parachain-api/prepare-build/interfaces/vc/definitions.ts b/tee-worker/identity/client-api/parachain-api/prepare-build/interfaces/vc/definitions.ts index bc8c4ad89d..26a6f6fc20 100644 --- a/tee-worker/identity/client-api/parachain-api/prepare-build/interfaces/vc/definitions.ts +++ b/tee-worker/identity/client-api/parachain-api/prepare-build/interfaces/vc/definitions.ts @@ -61,6 +61,12 @@ export default { pre_mutated_id_graph: "AesOutput", pre_id_graph_hash: "H256", }, + RequestVcOk: { + vc_payload: "AesOutput", + vc_logs: "Option", + pre_mutated_account_store: "AesOutput", + omni_account: "AccountId", + }, VCMPError: { _enum: { RequestVCFailed: "(Assertion, ErrorDetail)", @@ -90,6 +96,9 @@ export default { CallSendingFailed: "String", ExtrinsicConstructionFailed: "String", // Stringified itp_extrinsics_factory::Error ExtrinsicSendingFailed: "String", // Stringified sgx_status_t + ExtractingMemberIdentityFailed: "Null", + OmniAccountStoreRetrievalFailed: "Null", + CreateAccountStoreFailed: "String", }, }, RequestVcResultOrError: { diff --git a/tee-worker/identity/client-sdk/packages/client-sdk/package.json b/tee-worker/identity/client-sdk/packages/client-sdk/package.json index e23bc1e65e..7764f523e1 100644 --- a/tee-worker/identity/client-sdk/packages/client-sdk/package.json +++ b/tee-worker/identity/client-sdk/packages/client-sdk/package.json @@ -1,14 +1,14 @@ { "name": "@litentry/client-sdk", "description": "This package provides helpers for dApps to interact with the Litentry Protocol.", - "version": "1.0.0-next.5", + "version": "1.0.0-next.6", "license": "GPL-3.0-or-later", "dependencies": {}, "devDependencies": { "@polkadot/rpc-provider": "^10.9.1" }, "peerDependencies": { - "@litentry/parachain-api": "0.9.20-next.8", + "@litentry/parachain-api": "0.9.20-next.9", "@litentry/sidechain-api": "0.9.20-next.8", "@litentry/chaindata": "*", "@polkadot/api": "^10.9.1", diff --git a/tee-worker/identity/client-sdk/packages/client-sdk/src/lib/requests/call-ethereum.request.ts b/tee-worker/identity/client-sdk/packages/client-sdk/src/lib/requests/call-ethereum.request.ts index be37bdec6c..b84ac0f1ce 100644 --- a/tee-worker/identity/client-sdk/packages/client-sdk/src/lib/requests/call-ethereum.request.ts +++ b/tee-worker/identity/client-sdk/packages/client-sdk/src/lib/requests/call-ethereum.request.ts @@ -106,7 +106,11 @@ export async function callEthereum( throw new Error(codecToString(result.asErr)); } - const { extrinsic_hash, block_hash } = result.asOk; + if (!result.asOk.isExtrinsicReport) { + throw new Error('Unexpected response type'); + } + + const { extrinsic_hash, block_hash } = result.asOk.asExtrinsicReport; return { response, diff --git a/tee-worker/identity/client-sdk/packages/client-sdk/src/lib/requests/create-account-store.request.ts b/tee-worker/identity/client-sdk/packages/client-sdk/src/lib/requests/create-account-store.request.ts index e0903d9633..639145678a 100644 --- a/tee-worker/identity/client-sdk/packages/client-sdk/src/lib/requests/create-account-store.request.ts +++ b/tee-worker/identity/client-sdk/packages/client-sdk/src/lib/requests/create-account-store.request.ts @@ -94,7 +94,11 @@ export async function createAccountStore( throw new Error(codecToString(result.asErr)); } - const { extrinsic_hash, block_hash } = result.asOk; + if (!result.asOk.isExtrinsicReport) { + throw new Error('Unexpected response type'); + } + + const { extrinsic_hash, block_hash } = result.asOk.asExtrinsicReport; return { response, diff --git a/tee-worker/identity/client-sdk/packages/client-sdk/src/lib/requests/remark.request.ts b/tee-worker/identity/client-sdk/packages/client-sdk/src/lib/requests/remark.request.ts index 0eccacebd9..993f51a945 100644 --- a/tee-worker/identity/client-sdk/packages/client-sdk/src/lib/requests/remark.request.ts +++ b/tee-worker/identity/client-sdk/packages/client-sdk/src/lib/requests/remark.request.ts @@ -102,7 +102,11 @@ export async function remark( throw new Error(codecToString(result.asErr)); } - const { extrinsic_hash, block_hash } = result.asOk; + if (!result.asOk.isExtrinsicReport) { + throw new Error('Unexpected response type'); + } + + const { extrinsic_hash, block_hash } = result.asOk.asExtrinsicReport; return { response, diff --git a/tee-worker/identity/client-sdk/packages/client-sdk/src/lib/requests/transfer-ethereum.request.ts b/tee-worker/identity/client-sdk/packages/client-sdk/src/lib/requests/transfer-ethereum.request.ts index d5b790fbb2..433923e73c 100644 --- a/tee-worker/identity/client-sdk/packages/client-sdk/src/lib/requests/transfer-ethereum.request.ts +++ b/tee-worker/identity/client-sdk/packages/client-sdk/src/lib/requests/transfer-ethereum.request.ts @@ -105,7 +105,11 @@ export async function transferEthereum( throw new Error(codecToString(result.asErr)); } - const { extrinsic_hash, block_hash } = result.asOk; + if (!result.asOk.isExtrinsicReport) { + throw new Error('Unexpected response type'); + } + + const { extrinsic_hash, block_hash } = result.asOk.asExtrinsicReport; return { response, diff --git a/tee-worker/identity/client-sdk/packages/client-sdk/src/lib/requests/transfer-native.request.ts b/tee-worker/identity/client-sdk/packages/client-sdk/src/lib/requests/transfer-native.request.ts index 4350ccbaaa..619a19691f 100644 --- a/tee-worker/identity/client-sdk/packages/client-sdk/src/lib/requests/transfer-native.request.ts +++ b/tee-worker/identity/client-sdk/packages/client-sdk/src/lib/requests/transfer-native.request.ts @@ -105,7 +105,11 @@ export async function transferNative( throw new Error(codecToString(result.asErr)); } - const { extrinsic_hash, block_hash } = result.asOk; + if (!result.asOk.isExtrinsicReport) { + throw new Error('Unexpected response type'); + } + + const { extrinsic_hash, block_hash } = result.asOk.asExtrinsicReport; return { response, diff --git a/tee-worker/identity/client-sdk/packages/client-sdk/src/lib/vc-validator/__tests__/validate-enclave-registry.test.ts b/tee-worker/identity/client-sdk/packages/client-sdk/src/lib/vc-validator/__tests__/validate-enclave-registry.test.ts index 0f5014a8fd..91ca0bdd04 100644 --- a/tee-worker/identity/client-sdk/packages/client-sdk/src/lib/vc-validator/__tests__/validate-enclave-registry.test.ts +++ b/tee-worker/identity/client-sdk/packages/client-sdk/src/lib/vc-validator/__tests__/validate-enclave-registry.test.ts @@ -10,7 +10,10 @@ import { Metadata, TypeRegistry } from '@polkadot/types'; import metadataRpc from '@litentry/parachain-api/prepare-build/litentry-parachain-metadata.json'; -import { validateEnclaveRegistry, type VerifiableCredentialLike } from '../validator'; +import { + validateEnclaveRegistry, + type VerifiableCredentialLike, +} from '../validator'; // VC where issuer.id is an enclave account. vc-pubkey is not the issuer.id const VC_SAMPLE = @@ -24,12 +27,14 @@ registry.setMetadata(metadata); const palletTeebagEnclaveJson = { workerType: 'Identity', - mrenclave: '0x482b74e3ed4faab7675c54d72cca9a2e9016e0d0b02416553d470a5c81806077', + mrenclave: + '0x482b74e3ed4faab7675c54d72cca9a2e9016e0d0b02416553d470a5c81806077', lastSeenTimestamp: '1707504072000', url: 'wss://127.0.0.1:2130', shieldingPubkey: '{n:[141,96,206,167,106,208,16,177,54,166,114,140,239,178,72,146,59,119,66,206,243,148,12,52,93,2,116,190,194,69,118,224,88,155,161,41,135,49,32,122,215,193,214,67,121,161,52,23,62,146,172,6,167,154,67,128,42,170,12,52,138,216,42,148,59,251,253,45,105,255,125,139,249,40,234,41,214,81,206,22,116,148,15,200,158,92,135,142,168,59,48,66,86,199,204,253,115,132,67,123,26,88,82,157,176,240,239,106,200,97,13,200,226,130,222,8,26,131,222,155,128,36,212,162,152,18,117,98,194,210,147,213,243,193,154,155,223,146,116,66,201,154,5,35,1,173,42,11,67,15,124,96,108,137,82,42,28,37,71,151,83,6,19,197,137,165,238,227,251,25,93,144,100,240,14,205,93,50,105,227,193,191,179,69,88,174,53,109,122,87,210,166,69,173,5,193,210,95,22,17,79,187,3,165,193,195,238,36,181,206,197,255,29,172,175,64,41,73,91,158,136,105,226,101,20,196,173,158,187,132,221,204,253,65,238,59,93,204,93,178,123,57,16,172,225,37,127,50,226,52,242,215,204,21,67,179,56,136,126,189,56,20,13,163,54,199,47,215,161,196,56,79,152,154,95,52,44,206,80,222,140,229,139,229,255,199,79,137,240,212,237,235,29,181,153,89,183,20,68,168,2,26,18,135,69,205,32,176,13,10,33,185,180,32,129,169,102,250,62,146,255,61,86,255,207,238,139,198,161,170,239,57,69,209,92,220,52,178,36,4,180,116,51,177,226,228,160,112,198,246,122,190,96,37,148,72,120,126,90,135,136,52,25,120,188,156,52,24,222,219,181,236,54,158,204,119,158,21,234,21,239,22,155,130],e:[1,0,0,1]}', - vcPubkey: '0xbf31981dbb9673a3a0fd662ed716a2a172fa897202ad9b43ce914a6c73916c6b', + vcPubkey: + '0xbf31981dbb9673a3a0fd662ed716a2a172fa897202ad9b43ce914a6c73916c6b', sgxBuildMode: 'Production', attestationType: 'Ignore', }; @@ -43,8 +48,11 @@ beforeAll(() => { registry.setMetadata(metadata); const optionEnclave = registry.createType( - 'Option', - registry.createType('PalletTeebagEnclave', palletTeebagEnclaveJson) + 'Option', + registry.createType( + 'CorePrimitivesTeebagTypesEnclave', + palletTeebagEnclaveJson + ) ); // define api manually to mock query methods @@ -65,7 +73,8 @@ beforeAll(() => { rpc: { chain: { getBlockHash: jest.fn( - () => '0x8a9bc5971c3a6d23ba4743134c0caf12dca775a872fea5c27516175142bd4e1b' + () => + '0x8a9bc5971c3a6d23ba4743134c0caf12dca775a872fea5c27516175142bd4e1b' ), }, }, @@ -73,12 +82,16 @@ beforeAll(() => { // eslint-disable-next-line @typescript-eslint/ban-ts-comment // @ts-ignore - api.query.teebag.enclaveRegistry.entries = jest.fn(() => [[null, optionEnclave]]); + api.query.teebag.enclaveRegistry.entries = jest.fn(() => [ + [null, optionEnclave], + ]); }); describe('[regular VC] `issuer.id` is the enclave account', () => { it('issuer.id and enclave account should not be the same', () => { - expect(`did:litentry:substrate:${VC.proof.verificationMethod}`).not.toEqual(VC.issuer.id); + expect(`did:litentry:substrate:${VC.proof.verificationMethod}`).not.toEqual( + VC.issuer.id + ); }); it('should call query.teebag.enclaveRegistry(enclaveAccount)', async () => { @@ -86,7 +99,9 @@ describe('[regular VC] `issuer.id` is the enclave account', () => { expect(result).toBeTruthy(); - expect(api.rpc.chain.getBlockHash).toHaveBeenCalledWith(VC.parachainBlockNumber); + expect(api.rpc.chain.getBlockHash).toHaveBeenCalledWith( + VC.parachainBlockNumber + ); expect(api.at).toHaveBeenCalled(); expect(api.query.teebag.enclaveRegistry).toHaveBeenCalledWith( @@ -112,7 +127,9 @@ describe('[old VC] `issuer.id` is vc-pubkey', () => { }); it('issuer.id and enclave account are the same', () => { - expect(`did:litentry:substrate:${VC_OLD.proof.verificationMethod}`).toEqual(VC_OLD.issuer.id); + expect(`did:litentry:substrate:${VC_OLD.proof.verificationMethod}`).toEqual( + VC_OLD.issuer.id + ); }); it('should call query.teebag.enclaveRegistry()', async () => { @@ -120,7 +137,9 @@ describe('[old VC] `issuer.id` is vc-pubkey', () => { expect(result).toBeTruthy(); - expect(api.query.teebag.enclaveRegistry).not.toHaveBeenCalledWith(VC_OLD.issuer.id); + expect(api.query.teebag.enclaveRegistry).not.toHaveBeenCalledWith( + VC_OLD.issuer.id + ); expect(api.query.teebag.enclaveRegistry.entries).toHaveBeenCalled(); }); }); diff --git a/tee-worker/identity/client-sdk/packages/client-sdk/src/lib/vc-validator/validator.spec.ts b/tee-worker/identity/client-sdk/packages/client-sdk/src/lib/vc-validator/validator.spec.ts index a875a2f686..175e6d5fe1 100644 --- a/tee-worker/identity/client-sdk/packages/client-sdk/src/lib/vc-validator/validator.spec.ts +++ b/tee-worker/identity/client-sdk/packages/client-sdk/src/lib/vc-validator/validator.spec.ts @@ -36,8 +36,11 @@ let api: ApiPromise; beforeAll(() => { const optionEnclave = registry.createType( - 'Option', - registry.createType('PalletTeebagEnclave', palletTeebagEnclaveJson) + 'Option', + registry.createType( + 'CorePrimitivesTeebagTypesEnclave', + palletTeebagEnclaveJson + ) ); // define api manually to mock query methods @@ -127,7 +130,7 @@ describe('VcValidator', () => { ( api.query['teebag']['enclaveRegistry']['entries'] as unknown as jest.Mock ).mockImplementationOnce(() => { - const enclave = registry.createType('PalletTeebagEnclave', { + const enclave = registry.createType('CorePrimitivesTeebagTypesEnclave', { ...palletTeebagEnclaveJson, // mess-up vcPubkey and mrEnclave vcPubkey: @@ -137,7 +140,7 @@ describe('VcValidator', () => { }); const returnedValue = registry.createType( - 'Option', + 'Option', enclave ); diff --git a/tee-worker/identity/client-sdk/pnpm-lock.yaml b/tee-worker/identity/client-sdk/pnpm-lock.yaml index dda3cb3490..83c3b2a58f 100644 --- a/tee-worker/identity/client-sdk/pnpm-lock.yaml +++ b/tee-worker/identity/client-sdk/pnpm-lock.yaml @@ -1,125 +1,174 @@ -lockfileVersion: 5.4 +lockfileVersion: '6.0' + +settings: + autoInstallPeers: true + excludeLinksFromLockfile: false importers: .: - specifiers: - '@altack/nx-bundlefy': 0.16.0 - '@nx/devkit': 16.10.0 - '@nx/eslint-plugin': 16.10.0 - '@nx/jest': 16.10.0 - '@nx/js': 16.10.0 - '@nx/linter': 16.10.0 - '@nx/workspace': 16.10.0 - '@polkadot/api': ^10.9.1 - '@polkadot/api-base': ^10.9.1 - '@polkadot/rpc-core': ^10.9.1 - '@polkadot/rpc-provider': ^10.9.1 - '@polkadot/types': ^10.9.1 - '@polkadot/types-codec': ^10.9.1 - '@polkadot/util': ^12.5.1 - '@polkadot/util-crypto': ^12.5.1 - '@swc-node/register': 1.6.8 - '@swc/core': 1.3.99 - '@types/jest': ^29.4.0 - '@types/node': 18.7.1 - '@types/ws': ^8.5.9 - '@typescript-eslint/eslint-plugin': 5.x - '@typescript-eslint/parser': 5.x - eslint: ~8.46.0 - eslint-config-prettier: ^8.1.0 - jest: ^29.4.1 - jest-environment-node: ^29.4.1 - nx: 16.10.0 - prettier: ^2.6.2 - ts-jest: ^29.1.0 - ts-node: 10.9.1 - tslib: ^2.3.0 - typedoc: ^0.25.3 - typedoc-plugin-markdown: ^3.17.1 - typescript: ^5.1.0 - validate-npm-package-name: ^5.0.0 - verdaccio: ^5.0.4 - ws: ^8.x dependencies: - '@polkadot/api': 10.13.1 - '@polkadot/types': 10.13.1 - '@polkadot/types-codec': 10.13.1 - '@polkadot/util': 12.6.2 - '@polkadot/util-crypto': 12.6.2_@polkadot+util@12.6.2 - '@swc-node/register': 1.6.8_ssd54yhir2o3pnq2lx32lgv32i - '@swc/core': 1.3.99 - '@types/jest': 29.5.8 - '@types/node': 18.7.1 - '@types/ws': 8.5.9 - nx: 16.10.0_3r3gikilagjg6w6ti3lc3btjoa - prettier: 2.8.8 - ts-node: 10.9.1_yh2n565uebuxffae3xow4xsrjq - tslib: 2.6.2 - typescript: 5.1.6 - ws: 8.14.2 + '@polkadot/api': + specifier: ^10.9.1 + version: 10.13.1 + '@polkadot/types': + specifier: ^10.9.1 + version: 10.13.1 + '@polkadot/types-codec': + specifier: ^10.9.1 + version: 10.13.1 + '@polkadot/util': + specifier: ^12.5.1 + version: 12.6.2 + '@polkadot/util-crypto': + specifier: ^12.5.1 + version: 12.6.2(@polkadot/util@12.6.2) + '@swc-node/register': + specifier: 1.6.8 + version: 1.6.8(@swc/core@1.3.99)(typescript@5.1.6) + '@swc/core': + specifier: 1.3.99 + version: 1.3.99 + '@types/jest': + specifier: ^29.4.0 + version: 29.5.8 + '@types/node': + specifier: 18.7.1 + version: 18.7.1 + '@types/ws': + specifier: ^8.5.9 + version: 8.5.9 + nx: + specifier: 16.10.0 + version: 16.10.0(@swc-node/register@1.6.8)(@swc/core@1.3.99) + prettier: + specifier: ^2.6.2 + version: 2.8.8 + ts-node: + specifier: 10.9.1 + version: 10.9.1(@swc/core@1.3.99)(@types/node@18.7.1)(typescript@5.1.6) + tslib: + specifier: ^2.3.0 + version: 2.6.2 + typescript: + specifier: ^5.1.0 + version: 5.1.6 + ws: + specifier: ^8.x + version: 8.14.2 devDependencies: - '@altack/nx-bundlefy': 0.16.0_syqhfubfel4lyrlpxakk6wt6pq - '@nx/devkit': 16.10.0_nx@16.10.0 - '@nx/eslint-plugin': 16.10.0_6qbsrc43spalhbjihcr5z6ctli - '@nx/jest': 16.10.0_563mwmm33e2steiu5nysrvzvh4 - '@nx/js': 16.10.0_s7yauiyed2ygda73sqf77kqws4 - '@nx/linter': 16.10.0_7q6hfv2xzzcyyldzt4gz2jeiw4 - '@nx/workspace': 16.10.0_3r3gikilagjg6w6ti3lc3btjoa - '@polkadot/api-base': 10.13.1 - '@polkadot/rpc-core': 10.13.1 - '@polkadot/rpc-provider': 10.13.1 - '@typescript-eslint/eslint-plugin': 5.62.0_c42x62htuvinjyo6sqia6oy3e4 - '@typescript-eslint/parser': 5.62.0_7haavtekmro7ptbnqmctjaodju - eslint: 8.46.0 - eslint-config-prettier: 8.10.0_eslint@8.46.0 - jest: 29.7.0_lpnbhgxso4u2juc7wocetwmymy - jest-environment-node: 29.7.0 - ts-jest: 29.1.1_7c6s2cwl7nw46fjeerv4uupgbm - typedoc: 0.25.3_typescript@5.1.6 - typedoc-plugin-markdown: 3.17.1_typedoc@0.25.3 - validate-npm-package-name: 5.0.0 - verdaccio: 5.27.0_typanion@3.14.0 + '@altack/nx-bundlefy': + specifier: 0.16.0 + version: 0.16.0(@nrwl/devkit@17.1.3)(@nrwl/js@17.1.3)(@nrwl/workspace@17.1.3)(validate-npm-package-name@5.0.0) + '@nx/devkit': + specifier: 16.10.0 + version: 16.10.0(nx@16.10.0) + '@nx/eslint-plugin': + specifier: 16.10.0 + version: 16.10.0(@swc-node/register@1.6.8)(@swc/core@1.3.99)(@types/node@18.7.1)(@typescript-eslint/parser@5.62.0)(eslint-config-prettier@8.10.0)(eslint@8.46.0)(nx@16.10.0)(typescript@5.1.6)(verdaccio@5.27.0) + '@nx/jest': + specifier: 16.10.0 + version: 16.10.0(@swc-node/register@1.6.8)(@swc/core@1.3.99)(@types/node@18.7.1)(nx@16.10.0)(ts-node@10.9.1)(typescript@5.1.6)(verdaccio@5.27.0) + '@nx/js': + specifier: 16.10.0 + version: 16.10.0(@swc-node/register@1.6.8)(@swc/core@1.3.99)(@types/node@18.7.1)(nx@16.10.0)(typescript@5.1.6)(verdaccio@5.27.0) + '@nx/linter': + specifier: 16.10.0 + version: 16.10.0(@swc-node/register@1.6.8)(@swc/core@1.3.99)(@types/node@18.7.1)(eslint@8.46.0)(nx@16.10.0)(verdaccio@5.27.0) + '@nx/workspace': + specifier: 16.10.0 + version: 16.10.0(@swc-node/register@1.6.8)(@swc/core@1.3.99) + '@polkadot/api-base': + specifier: ^10.9.1 + version: 10.13.1 + '@polkadot/rpc-core': + specifier: ^10.9.1 + version: 10.13.1 + '@polkadot/rpc-provider': + specifier: ^10.9.1 + version: 10.13.1 + '@typescript-eslint/eslint-plugin': + specifier: 5.x + version: 5.62.0(@typescript-eslint/parser@5.62.0)(eslint@8.46.0)(typescript@5.1.6) + '@typescript-eslint/parser': + specifier: 5.x + version: 5.62.0(eslint@8.46.0)(typescript@5.1.6) + eslint: + specifier: ~8.46.0 + version: 8.46.0 + eslint-config-prettier: + specifier: ^8.1.0 + version: 8.10.0(eslint@8.46.0) + jest: + specifier: ^29.4.1 + version: 29.7.0(@types/node@18.7.1)(ts-node@10.9.1) + jest-environment-node: + specifier: ^29.4.1 + version: 29.7.0 + ts-jest: + specifier: ^29.1.0 + version: 29.1.1(@babel/core@7.23.3)(jest@29.7.0)(typescript@5.1.6) + typedoc: + specifier: ^0.25.3 + version: 0.25.3(typescript@5.1.6) + typedoc-plugin-markdown: + specifier: ^3.17.1 + version: 3.17.1(typedoc@0.25.3) + validate-npm-package-name: + specifier: ^5.0.0 + version: 5.0.0 + verdaccio: + specifier: ^5.0.4 + version: 5.27.0(typanion@3.14.0) packages/chaindata: - specifiers: - tslib: ^2.3.0 dependencies: - tslib: 2.6.2 + tslib: + specifier: ^2.3.0 + version: 2.6.2 packages/client-sdk: - specifiers: - '@litentry/chaindata': '*' - '@litentry/parachain-api': 0.9.20-next.8 - '@litentry/sidechain-api': 0.9.20-next.8 - '@polkadot/api': ^10.9.1 - '@polkadot/rpc-provider': ^10.9.1 - '@polkadot/types': ^10.9.1 - '@polkadot/types-codec': ^10.9.1 - '@polkadot/util': ^12.5.1 - '@polkadot/util-crypto': ^12.5.1 - tslib: ^2.3.0 - dependencies: - '@litentry/chaindata': link:../chaindata - '@litentry/parachain-api': 0.9.20-next.8 - '@litentry/sidechain-api': 0.9.20-next.8 - '@polkadot/api': 10.13.1 - '@polkadot/types': 10.13.1 - '@polkadot/types-codec': 10.13.1 - '@polkadot/util': 12.6.2 - '@polkadot/util-crypto': 12.6.2_@polkadot+util@12.6.2 - tslib: 2.6.2 + dependencies: + '@litentry/chaindata': + specifier: '*' + version: link:../chaindata + '@litentry/parachain-api': + specifier: 0.9.20-next.9 + version: 0.9.20-next.9 + '@litentry/sidechain-api': + specifier: 0.9.20-next.8 + version: 0.9.20-next.8 + '@polkadot/api': + specifier: ^10.9.1 + version: 10.13.1 + '@polkadot/types': + specifier: ^10.9.1 + version: 10.13.1 + '@polkadot/types-codec': + specifier: ^10.9.1 + version: 10.13.1 + '@polkadot/util': + specifier: ^12.5.1 + version: 12.6.2 + '@polkadot/util-crypto': + specifier: ^12.5.1 + version: 12.6.2(@polkadot/util@12.6.2) + tslib: + specifier: ^2.3.0 + version: 2.6.2 devDependencies: - '@polkadot/rpc-provider': 10.13.1 + '@polkadot/rpc-provider': + specifier: ^10.9.1 + version: 10.13.1 packages: - /@aashutoshrathi/word-wrap/1.2.6: + /@aashutoshrathi/word-wrap@1.2.6: resolution: {integrity: sha512-1Yjs2SvM8TflER/OD3cOjhWWOZb58A2t7wpE2S9XfBYTiIl+XFhQG2bjy4Pu1I+EAlCNUzRDYDdFwFYUKvXcIA==} engines: {node: '>=0.10.0'} dev: true - /@altack/nx-bundlefy/0.16.0_syqhfubfel4lyrlpxakk6wt6pq: + /@altack/nx-bundlefy@0.16.0(@nrwl/devkit@17.1.3)(@nrwl/js@17.1.3)(@nrwl/workspace@17.1.3)(validate-npm-package-name@5.0.0): resolution: {integrity: sha512-88+u9NzGpcpUeCjBiyocm/KL8a5awS7EEp0qea1JeFSy2X9RuAhlAydBADZJrhnYMa2xVK4MZidomsreuZRvyg==} peerDependencies: '@nrwl/devkit': '>=16.5.5' @@ -127,14 +176,14 @@ packages: '@nrwl/workspace': '>=16.5.5' validate-npm-package-name: '>=5.0.0' dependencies: - '@nrwl/devkit': 17.1.3_nx@16.10.0 - '@nrwl/js': 17.1.3_s7yauiyed2ygda73sqf77kqws4 - '@nrwl/workspace': 17.1.3_3r3gikilagjg6w6ti3lc3btjoa + '@nrwl/devkit': 17.1.3(nx@16.10.0) + '@nrwl/js': 17.1.3(@swc-node/register@1.6.8)(@swc/core@1.3.99)(@types/node@18.7.1)(nx@16.10.0)(typescript@5.1.6)(verdaccio@5.27.0) + '@nrwl/workspace': 17.1.3(@swc-node/register@1.6.8)(@swc/core@1.3.99) tslib: 2.6.2 validate-npm-package-name: 5.0.0 dev: true - /@ampproject/remapping/2.2.1: + /@ampproject/remapping@2.2.1: resolution: {integrity: sha512-lFMjJTrFL3j7L9yBxwYfCq2k6qqwHyzuUl/XBnif78PWTJYyL/dfowQHWE3sp6U6ZzqWiiIZnpTMO96zhkjwtg==} engines: {node: '>=6.0.0'} dependencies: @@ -142,19 +191,19 @@ packages: '@jridgewell/trace-mapping': 0.3.20 dev: true - /@babel/code-frame/7.22.13: + /@babel/code-frame@7.22.13: resolution: {integrity: sha512-XktuhWlJ5g+3TJXc5upd9Ks1HutSArik6jf2eAjYFyIOf4ej3RN+184cZbzDvbPnuTJIUhPKKJE3cIsYTiAT3w==} engines: {node: '>=6.9.0'} dependencies: '@babel/highlight': 7.22.20 chalk: 2.4.2 - /@babel/compat-data/7.23.3: + /@babel/compat-data@7.23.3: resolution: {integrity: sha512-BmR4bWbDIoFJmJ9z2cZ8Gmm2MXgEDgjdWgpKmKWUt54UGFJdlj31ECtbaDvCG/qVdG3AQ1SfpZEs01lUFbzLOQ==} engines: {node: '>=6.9.0'} dev: true - /@babel/core/7.23.3: + /@babel/core@7.23.3: resolution: {integrity: sha512-Jg+msLuNuCJDyBvFv5+OKOUjWMZgd85bKjbICd3zWrKAo+bJ49HJufi7CQE0q0uR8NGyO6xkCACScNqyjHSZew==} engines: {node: '>=6.9.0'} dependencies: @@ -162,7 +211,7 @@ packages: '@babel/code-frame': 7.22.13 '@babel/generator': 7.23.3 '@babel/helper-compilation-targets': 7.22.15 - '@babel/helper-module-transforms': 7.23.3_@babel+core@7.23.3 + '@babel/helper-module-transforms': 7.23.3(@babel/core@7.23.3) '@babel/helpers': 7.23.2 '@babel/parser': 7.23.3 '@babel/template': 7.22.15 @@ -177,7 +226,7 @@ packages: - supports-color dev: true - /@babel/generator/7.23.3: + /@babel/generator@7.23.3: resolution: {integrity: sha512-keeZWAV4LU3tW0qRi19HRpabC/ilM0HRBBzf9/k8FFiG4KVpiv0FIy4hHfLfFQZNhziCTPTmd59zoyv6DNISzg==} engines: {node: '>=6.9.0'} dependencies: @@ -187,21 +236,21 @@ packages: jsesc: 2.5.2 dev: true - /@babel/helper-annotate-as-pure/7.22.5: + /@babel/helper-annotate-as-pure@7.22.5: resolution: {integrity: sha512-LvBTxu8bQSQkcyKOU+a1btnNFQ1dMAd0R6PyW3arXes06F6QLWLIrd681bxRPIXlrMGR3XYnW9JyML7dP3qgxg==} engines: {node: '>=6.9.0'} dependencies: '@babel/types': 7.23.3 dev: true - /@babel/helper-builder-binary-assignment-operator-visitor/7.22.15: + /@babel/helper-builder-binary-assignment-operator-visitor@7.22.15: resolution: {integrity: sha512-QkBXwGgaoC2GtGZRoma6kv7Szfv06khvhFav67ZExau2RaXzy8MpHSMO2PNoP2XtmQphJQRHFfg77Bq731Yizw==} engines: {node: '>=6.9.0'} dependencies: '@babel/types': 7.23.3 dev: true - /@babel/helper-compilation-targets/7.22.15: + /@babel/helper-compilation-targets@7.22.15: resolution: {integrity: sha512-y6EEzULok0Qvz8yyLkCvVX+02ic+By2UdOhylwUOvOn9dvYc9mKICJuuU1n1XBI02YWsNsnrY1kc6DVbjcXbtw==} engines: {node: '>=6.9.0'} dependencies: @@ -212,7 +261,7 @@ packages: semver: 6.3.1 dev: true - /@babel/helper-create-class-features-plugin/7.22.15_@babel+core@7.23.3: + /@babel/helper-create-class-features-plugin@7.22.15(@babel/core@7.23.3): resolution: {integrity: sha512-jKkwA59IXcvSaiK2UN45kKwSC9o+KuoXsBDvHvU/7BecYIp8GQ2UwrVvFgJASUT+hBnwJx6MhvMCuMzwZZ7jlg==} engines: {node: '>=6.9.0'} peerDependencies: @@ -224,13 +273,13 @@ packages: '@babel/helper-function-name': 7.23.0 '@babel/helper-member-expression-to-functions': 7.23.0 '@babel/helper-optimise-call-expression': 7.22.5 - '@babel/helper-replace-supers': 7.22.20_@babel+core@7.23.3 + '@babel/helper-replace-supers': 7.22.20(@babel/core@7.23.3) '@babel/helper-skip-transparent-expression-wrappers': 7.22.5 '@babel/helper-split-export-declaration': 7.22.6 semver: 6.3.1 dev: true - /@babel/helper-create-regexp-features-plugin/7.22.15_@babel+core@7.23.3: + /@babel/helper-create-regexp-features-plugin@7.22.15(@babel/core@7.23.3): resolution: {integrity: sha512-29FkPLFjn4TPEa3RE7GpW+qbE8tlsu3jntNYNfcGsc49LphF1PQIiD+vMZ1z1xVOKt+93khA9tc2JBs3kBjA7w==} engines: {node: '>=6.9.0'} peerDependencies: @@ -242,7 +291,7 @@ packages: semver: 6.3.1 dev: true - /@babel/helper-define-polyfill-provider/0.4.3_@babel+core@7.23.3: + /@babel/helper-define-polyfill-provider@0.4.3(@babel/core@7.23.3): resolution: {integrity: sha512-WBrLmuPP47n7PNwsZ57pqam6G/RGo1vw/87b0Blc53tZNGZ4x7YvZ6HgQe2vo1W/FR20OgjeZuGXzudPiXHFug==} peerDependencies: '@babel/core': ^7.4.0 || ^8.0.0-0 <8.0.0 @@ -257,12 +306,12 @@ packages: - supports-color dev: true - /@babel/helper-environment-visitor/7.22.20: + /@babel/helper-environment-visitor@7.22.20: resolution: {integrity: sha512-zfedSIzFhat/gFhWfHtgWvlec0nqB9YEIVrpuwjruLlXfUSnA8cJB0miHKwqDnQ7d32aKo2xt88/xZptwxbfhA==} engines: {node: '>=6.9.0'} dev: true - /@babel/helper-function-name/7.23.0: + /@babel/helper-function-name@7.23.0: resolution: {integrity: sha512-OErEqsrxjZTJciZ4Oo+eoZqeW9UIiOcuYKRJA4ZAgV9myA+pOXhhmpfNCKjEH/auVfEYVFJ6y1Tc4r0eIApqiw==} engines: {node: '>=6.9.0'} dependencies: @@ -270,28 +319,28 @@ packages: '@babel/types': 7.23.3 dev: true - /@babel/helper-hoist-variables/7.22.5: + /@babel/helper-hoist-variables@7.22.5: resolution: {integrity: sha512-wGjk9QZVzvknA6yKIUURb8zY3grXCcOZt+/7Wcy8O2uctxhplmUPkOdlgoNhmdVee2c92JXbf1xpMtVNbfoxRw==} engines: {node: '>=6.9.0'} dependencies: '@babel/types': 7.23.3 dev: true - /@babel/helper-member-expression-to-functions/7.23.0: + /@babel/helper-member-expression-to-functions@7.23.0: resolution: {integrity: sha512-6gfrPwh7OuT6gZyJZvd6WbTfrqAo7vm4xCzAXOusKqq/vWdKXphTpj5klHKNmRUU6/QRGlBsyU9mAIPaWHlqJA==} engines: {node: '>=6.9.0'} dependencies: '@babel/types': 7.23.3 dev: true - /@babel/helper-module-imports/7.22.15: + /@babel/helper-module-imports@7.22.15: resolution: {integrity: sha512-0pYVBnDKZO2fnSPCrgM/6WMc7eS20Fbok+0r88fp+YtWVLZrp4CkafFGIp+W0VKw4a22sgebPT99y+FDNMdP4w==} engines: {node: '>=6.9.0'} dependencies: '@babel/types': 7.23.3 dev: true - /@babel/helper-module-transforms/7.23.3_@babel+core@7.23.3: + /@babel/helper-module-transforms@7.23.3(@babel/core@7.23.3): resolution: {integrity: sha512-7bBs4ED9OmswdfDzpz4MpWgSrV7FXlc3zIagvLFjS5H+Mk7Snr21vQ6QwrsoCGMfNC4e4LQPdoULEt4ykz0SRQ==} engines: {node: '>=6.9.0'} peerDependencies: @@ -305,19 +354,19 @@ packages: '@babel/helper-validator-identifier': 7.22.20 dev: true - /@babel/helper-optimise-call-expression/7.22.5: + /@babel/helper-optimise-call-expression@7.22.5: resolution: {integrity: sha512-HBwaojN0xFRx4yIvpwGqxiV2tUfl7401jlok564NgB9EHS1y6QT17FmKWm4ztqjeVdXLuC4fSvHc5ePpQjoTbw==} engines: {node: '>=6.9.0'} dependencies: '@babel/types': 7.23.3 dev: true - /@babel/helper-plugin-utils/7.22.5: + /@babel/helper-plugin-utils@7.22.5: resolution: {integrity: sha512-uLls06UVKgFG9QD4OeFYLEGteMIAa5kpTPcFL28yuCIIzsf6ZyKZMllKVOCZFhiZ5ptnwX4mtKdWCBE/uT4amg==} engines: {node: '>=6.9.0'} dev: true - /@babel/helper-remap-async-to-generator/7.22.20_@babel+core@7.23.3: + /@babel/helper-remap-async-to-generator@7.22.20(@babel/core@7.23.3): resolution: {integrity: sha512-pBGyV4uBqOns+0UvhsTO8qgl8hO89PmiDYv+/COyp1aeMcmfrfruz+/nCMFiYyFF/Knn0yfrC85ZzNFjembFTw==} engines: {node: '>=6.9.0'} peerDependencies: @@ -329,7 +378,7 @@ packages: '@babel/helper-wrap-function': 7.22.20 dev: true - /@babel/helper-replace-supers/7.22.20_@babel+core@7.23.3: + /@babel/helper-replace-supers@7.22.20(@babel/core@7.23.3): resolution: {integrity: sha512-qsW0In3dbwQUbK8kejJ4R7IHVGwHJlV6lpG6UA7a9hSa2YEiAib+N1T2kr6PEeUT+Fl7najmSOS6SmAwCHK6Tw==} engines: {node: '>=6.9.0'} peerDependencies: @@ -341,42 +390,42 @@ packages: '@babel/helper-optimise-call-expression': 7.22.5 dev: true - /@babel/helper-simple-access/7.22.5: + /@babel/helper-simple-access@7.22.5: resolution: {integrity: sha512-n0H99E/K+Bika3++WNL17POvo4rKWZ7lZEp1Q+fStVbUi8nxPQEBOlTmCOxW/0JsS56SKKQ+ojAe2pHKJHN35w==} engines: {node: '>=6.9.0'} dependencies: '@babel/types': 7.23.3 dev: true - /@babel/helper-skip-transparent-expression-wrappers/7.22.5: + /@babel/helper-skip-transparent-expression-wrappers@7.22.5: resolution: {integrity: sha512-tK14r66JZKiC43p8Ki33yLBVJKlQDFoA8GYN67lWCDCqoL6EMMSuM9b+Iff2jHaM/RRFYl7K+iiru7hbRqNx8Q==} engines: {node: '>=6.9.0'} dependencies: '@babel/types': 7.23.3 dev: true - /@babel/helper-split-export-declaration/7.22.6: + /@babel/helper-split-export-declaration@7.22.6: resolution: {integrity: sha512-AsUnxuLhRYsisFiaJwvp1QF+I3KjD5FOxut14q/GzovUe6orHLesW2C7d754kRm53h5gqrz6sFl6sxc4BVtE/g==} engines: {node: '>=6.9.0'} dependencies: '@babel/types': 7.23.3 dev: true - /@babel/helper-string-parser/7.22.5: + /@babel/helper-string-parser@7.22.5: resolution: {integrity: sha512-mM4COjgZox8U+JcXQwPijIZLElkgEpO5rsERVDJTc2qfCDfERyob6k5WegS14SX18IIjv+XD+GrqNumY5JRCDw==} engines: {node: '>=6.9.0'} dev: true - /@babel/helper-validator-identifier/7.22.20: + /@babel/helper-validator-identifier@7.22.20: resolution: {integrity: sha512-Y4OZ+ytlatR8AI+8KZfKuL5urKp7qey08ha31L8b3BwewJAoJamTzyvxPR/5D+KkdJCGPq/+8TukHBlY10FX9A==} engines: {node: '>=6.9.0'} - /@babel/helper-validator-option/7.22.15: + /@babel/helper-validator-option@7.22.15: resolution: {integrity: sha512-bMn7RmyFjY/mdECUbgn9eoSY4vqvacUnS9i9vGAGttgFWesO6B4CYWA7XlpbWgBt71iv/hfbPlynohStqnu5hA==} engines: {node: '>=6.9.0'} dev: true - /@babel/helper-wrap-function/7.22.20: + /@babel/helper-wrap-function@7.22.20: resolution: {integrity: sha512-pms/UwkOpnQe/PDAEdV/d7dVCoBbB+R4FvYoHGZz+4VPcg7RtYy2KP7S2lbuWM6FCSgob5wshfGESbC/hzNXZw==} engines: {node: '>=6.9.0'} dependencies: @@ -385,7 +434,7 @@ packages: '@babel/types': 7.23.3 dev: true - /@babel/helpers/7.23.2: + /@babel/helpers@7.23.2: resolution: {integrity: sha512-lzchcp8SjTSVe/fPmLwtWVBFC7+Tbn8LGHDVfDp9JGxpAY5opSaEFgt8UQvrnECWOTdji2mOWMz1rOhkHscmGQ==} engines: {node: '>=6.9.0'} dependencies: @@ -396,7 +445,7 @@ packages: - supports-color dev: true - /@babel/highlight/7.22.20: + /@babel/highlight@7.22.20: resolution: {integrity: sha512-dkdMCN3py0+ksCgYmGG8jKeGA/8Tk+gJwSYYlFGxG5lmhfKNoAy004YpLxpS1W2J8m/EK2Ew+yOs9pVRwO89mg==} engines: {node: '>=6.9.0'} dependencies: @@ -404,7 +453,7 @@ packages: chalk: 2.4.2 js-tokens: 4.0.0 - /@babel/parser/7.23.3: + /@babel/parser@7.23.3: resolution: {integrity: sha512-uVsWNvlVsIninV2prNz/3lHCb+5CJ+e+IUBfbjToAHODtfGYLfCFuY4AU7TskI+dAKk+njsPiBjq1gKTvZOBaw==} engines: {node: '>=6.0.0'} hasBin: true @@ -412,7 +461,7 @@ packages: '@babel/types': 7.23.3 dev: true - /@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression/7.23.3_@babel+core@7.23.3: + /@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@7.23.3(@babel/core@7.23.3): resolution: {integrity: sha512-iRkKcCqb7iGnq9+3G6rZ+Ciz5VywC4XNRHe57lKM+jOeYAoR0lVqdeeDRfh0tQcTfw/+vBhHn926FmQhLtlFLQ==} engines: {node: '>=6.9.0'} peerDependencies: @@ -422,7 +471,7 @@ packages: '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining/7.23.3_@babel+core@7.23.3: + /@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining@7.23.3(@babel/core@7.23.3): resolution: {integrity: sha512-WwlxbfMNdVEpQjZmK5mhm7oSwD3dS6eU+Iwsi4Knl9wAletWem7kaRsGOG+8UEbRyqxY4SS5zvtfXwX+jMxUwQ==} engines: {node: '>=6.9.0'} peerDependencies: @@ -431,10 +480,10 @@ packages: '@babel/core': 7.23.3 '@babel/helper-plugin-utils': 7.22.5 '@babel/helper-skip-transparent-expression-wrappers': 7.22.5 - '@babel/plugin-transform-optional-chaining': 7.23.3_@babel+core@7.23.3 + '@babel/plugin-transform-optional-chaining': 7.23.3(@babel/core@7.23.3) dev: true - /@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly/7.23.3_@babel+core@7.23.3: + /@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly@7.23.3(@babel/core@7.23.3): resolution: {integrity: sha512-XaJak1qcityzrX0/IU5nKHb34VaibwP3saKqG6a/tppelgllOH13LUann4ZCIBcVOeE6H18K4Vx9QKkVww3z/w==} engines: {node: '>=6.9.0'} peerDependencies: @@ -445,7 +494,7 @@ packages: '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-proposal-class-properties/7.18.6_@babel+core@7.23.3: + /@babel/plugin-proposal-class-properties@7.18.6(@babel/core@7.23.3): resolution: {integrity: sha512-cumfXOF0+nzZrrN8Rf0t7M+tF6sZc7vhQwYQck9q1/5w2OExlD+b4v4RpMJFaV1Z7WcDRgO6FqvxqxGlwo+RHQ==} engines: {node: '>=6.9.0'} deprecated: This proposal has been merged to the ECMAScript standard and thus this plugin is no longer maintained. Please use @babel/plugin-transform-class-properties instead. @@ -453,25 +502,25 @@ packages: '@babel/core': ^7.0.0-0 dependencies: '@babel/core': 7.23.3 - '@babel/helper-create-class-features-plugin': 7.22.15_@babel+core@7.23.3 + '@babel/helper-create-class-features-plugin': 7.22.15(@babel/core@7.23.3) '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-proposal-decorators/7.23.3_@babel+core@7.23.3: + /@babel/plugin-proposal-decorators@7.23.3(@babel/core@7.23.3): resolution: {integrity: sha512-u8SwzOcP0DYSsa++nHd/9exlHb0NAlHCb890qtZZbSwPX2bFv8LBEztxwN7Xg/dS8oAFFidhrI9PBcLBJSkGRQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: '@babel/core': 7.23.3 - '@babel/helper-create-class-features-plugin': 7.22.15_@babel+core@7.23.3 + '@babel/helper-create-class-features-plugin': 7.22.15(@babel/core@7.23.3) '@babel/helper-plugin-utils': 7.22.5 - '@babel/helper-replace-supers': 7.22.20_@babel+core@7.23.3 + '@babel/helper-replace-supers': 7.22.20(@babel/core@7.23.3) '@babel/helper-split-export-declaration': 7.22.6 - '@babel/plugin-syntax-decorators': 7.23.3_@babel+core@7.23.3 + '@babel/plugin-syntax-decorators': 7.23.3(@babel/core@7.23.3) dev: true - /@babel/plugin-proposal-private-property-in-object/7.21.0-placeholder-for-preset-env.2_@babel+core@7.23.3: + /@babel/plugin-proposal-private-property-in-object@7.21.0-placeholder-for-preset-env.2(@babel/core@7.23.3): resolution: {integrity: sha512-SOSkfJDddaM7mak6cPEpswyTRnuRltl429hMraQEglW+OkovnCzsiszTmsrlY//qLFjCpQDFRvjdm2wA5pPm9w==} engines: {node: '>=6.9.0'} peerDependencies: @@ -480,7 +529,7 @@ packages: '@babel/core': 7.23.3 dev: true - /@babel/plugin-syntax-async-generators/7.8.4_@babel+core@7.23.3: + /@babel/plugin-syntax-async-generators@7.8.4(@babel/core@7.23.3): resolution: {integrity: sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw==} peerDependencies: '@babel/core': ^7.0.0-0 @@ -489,7 +538,7 @@ packages: '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-syntax-bigint/7.8.3_@babel+core@7.23.3: + /@babel/plugin-syntax-bigint@7.8.3(@babel/core@7.23.3): resolution: {integrity: sha512-wnTnFlG+YxQm3vDxpGE57Pj0srRU4sHE/mDkt1qv2YJJSeUAec2ma4WLUnUPeKjyrfntVwe/N6dCXpU+zL3Npg==} peerDependencies: '@babel/core': ^7.0.0-0 @@ -498,7 +547,7 @@ packages: '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-syntax-class-properties/7.12.13_@babel+core@7.23.3: + /@babel/plugin-syntax-class-properties@7.12.13(@babel/core@7.23.3): resolution: {integrity: sha512-fm4idjKla0YahUNgFNLCB0qySdsoPiZP3iQE3rky0mBUtMZ23yDJ9SJdg6dXTSDnulOVqiF3Hgr9nbXvXTQZYA==} peerDependencies: '@babel/core': ^7.0.0-0 @@ -507,7 +556,7 @@ packages: '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-syntax-class-static-block/7.14.5_@babel+core@7.23.3: + /@babel/plugin-syntax-class-static-block@7.14.5(@babel/core@7.23.3): resolution: {integrity: sha512-b+YyPmr6ldyNnM6sqYeMWE+bgJcJpO6yS4QD7ymxgH34GBPNDM/THBh8iunyvKIZztiwLH4CJZ0RxTk9emgpjw==} engines: {node: '>=6.9.0'} peerDependencies: @@ -517,7 +566,7 @@ packages: '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-syntax-decorators/7.23.3_@babel+core@7.23.3: + /@babel/plugin-syntax-decorators@7.23.3(@babel/core@7.23.3): resolution: {integrity: sha512-cf7Niq4/+/juY67E0PbgH0TDhLQ5J7zS8C/Q5FFx+DWyrRa9sUQdTXkjqKu8zGvuqr7vw1muKiukseihU+PJDA==} engines: {node: '>=6.9.0'} peerDependencies: @@ -527,7 +576,7 @@ packages: '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-syntax-dynamic-import/7.8.3_@babel+core@7.23.3: + /@babel/plugin-syntax-dynamic-import@7.8.3(@babel/core@7.23.3): resolution: {integrity: sha512-5gdGbFon+PszYzqs83S3E5mpi7/y/8M9eC90MRTZfduQOYW76ig6SOSPNe41IG5LoP3FGBn2N0RjVDSQiS94kQ==} peerDependencies: '@babel/core': ^7.0.0-0 @@ -536,7 +585,7 @@ packages: '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-syntax-export-namespace-from/7.8.3_@babel+core@7.23.3: + /@babel/plugin-syntax-export-namespace-from@7.8.3(@babel/core@7.23.3): resolution: {integrity: sha512-MXf5laXo6c1IbEbegDmzGPwGNTsHZmEy6QGznu5Sh2UCWvueywb2ee+CCE4zQiZstxU9BMoQO9i6zUFSY0Kj0Q==} peerDependencies: '@babel/core': ^7.0.0-0 @@ -545,7 +594,7 @@ packages: '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-syntax-import-assertions/7.23.3_@babel+core@7.23.3: + /@babel/plugin-syntax-import-assertions@7.23.3(@babel/core@7.23.3): resolution: {integrity: sha512-lPgDSU+SJLK3xmFDTV2ZRQAiM7UuUjGidwBywFavObCiZc1BeAAcMtHJKUya92hPHO+at63JJPLygilZard8jw==} engines: {node: '>=6.9.0'} peerDependencies: @@ -555,7 +604,7 @@ packages: '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-syntax-import-attributes/7.23.3_@babel+core@7.23.3: + /@babel/plugin-syntax-import-attributes@7.23.3(@babel/core@7.23.3): resolution: {integrity: sha512-pawnE0P9g10xgoP7yKr6CK63K2FMsTE+FZidZO/1PwRdzmAPVs+HS1mAURUsgaoxammTJvULUdIkEK0gOcU2tA==} engines: {node: '>=6.9.0'} peerDependencies: @@ -565,7 +614,7 @@ packages: '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-syntax-import-meta/7.10.4_@babel+core@7.23.3: + /@babel/plugin-syntax-import-meta@7.10.4(@babel/core@7.23.3): resolution: {integrity: sha512-Yqfm+XDx0+Prh3VSeEQCPU81yC+JWZ2pDPFSS4ZdpfZhp4MkFMaDC1UqseovEKwSUpnIL7+vK+Clp7bfh0iD7g==} peerDependencies: '@babel/core': ^7.0.0-0 @@ -574,7 +623,7 @@ packages: '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-syntax-json-strings/7.8.3_@babel+core@7.23.3: + /@babel/plugin-syntax-json-strings@7.8.3(@babel/core@7.23.3): resolution: {integrity: sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA==} peerDependencies: '@babel/core': ^7.0.0-0 @@ -583,7 +632,7 @@ packages: '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-syntax-jsx/7.23.3_@babel+core@7.23.3: + /@babel/plugin-syntax-jsx@7.23.3(@babel/core@7.23.3): resolution: {integrity: sha512-EB2MELswq55OHUoRZLGg/zC7QWUKfNLpE57m/S2yr1uEneIgsTgrSzXP3NXEsMkVn76OlaVVnzN+ugObuYGwhg==} engines: {node: '>=6.9.0'} peerDependencies: @@ -593,7 +642,7 @@ packages: '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-syntax-logical-assignment-operators/7.10.4_@babel+core@7.23.3: + /@babel/plugin-syntax-logical-assignment-operators@7.10.4(@babel/core@7.23.3): resolution: {integrity: sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig==} peerDependencies: '@babel/core': ^7.0.0-0 @@ -602,7 +651,7 @@ packages: '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-syntax-nullish-coalescing-operator/7.8.3_@babel+core@7.23.3: + /@babel/plugin-syntax-nullish-coalescing-operator@7.8.3(@babel/core@7.23.3): resolution: {integrity: sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ==} peerDependencies: '@babel/core': ^7.0.0-0 @@ -611,7 +660,7 @@ packages: '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-syntax-numeric-separator/7.10.4_@babel+core@7.23.3: + /@babel/plugin-syntax-numeric-separator@7.10.4(@babel/core@7.23.3): resolution: {integrity: sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug==} peerDependencies: '@babel/core': ^7.0.0-0 @@ -620,7 +669,7 @@ packages: '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-syntax-object-rest-spread/7.8.3_@babel+core@7.23.3: + /@babel/plugin-syntax-object-rest-spread@7.8.3(@babel/core@7.23.3): resolution: {integrity: sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA==} peerDependencies: '@babel/core': ^7.0.0-0 @@ -629,7 +678,7 @@ packages: '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-syntax-optional-catch-binding/7.8.3_@babel+core@7.23.3: + /@babel/plugin-syntax-optional-catch-binding@7.8.3(@babel/core@7.23.3): resolution: {integrity: sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q==} peerDependencies: '@babel/core': ^7.0.0-0 @@ -638,7 +687,7 @@ packages: '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-syntax-optional-chaining/7.8.3_@babel+core@7.23.3: + /@babel/plugin-syntax-optional-chaining@7.8.3(@babel/core@7.23.3): resolution: {integrity: sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg==} peerDependencies: '@babel/core': ^7.0.0-0 @@ -647,7 +696,7 @@ packages: '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-syntax-private-property-in-object/7.14.5_@babel+core@7.23.3: + /@babel/plugin-syntax-private-property-in-object@7.14.5(@babel/core@7.23.3): resolution: {integrity: sha512-0wVnp9dxJ72ZUJDV27ZfbSj6iHLoytYZmh3rFcxNnvsJF3ktkzLDZPy/mA17HGsaQT3/DQsWYX1f1QGWkCoVUg==} engines: {node: '>=6.9.0'} peerDependencies: @@ -657,7 +706,7 @@ packages: '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-syntax-top-level-await/7.14.5_@babel+core@7.23.3: + /@babel/plugin-syntax-top-level-await@7.14.5(@babel/core@7.23.3): resolution: {integrity: sha512-hx++upLv5U1rgYfwe1xBQUhRmU41NEvpUvrp8jkrSCdvGSnM5/qdRMtylJ6PG5OFkBaHkbTAKTnd3/YyESRHFw==} engines: {node: '>=6.9.0'} peerDependencies: @@ -667,7 +716,7 @@ packages: '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-syntax-typescript/7.23.3_@babel+core@7.23.3: + /@babel/plugin-syntax-typescript@7.23.3(@babel/core@7.23.3): resolution: {integrity: sha512-9EiNjVJOMwCO+43TqoTrgQ8jMwcAd0sWyXi9RPfIsLTj4R2MADDDQXELhffaUx/uJv2AYcxBgPwH6j4TIA4ytQ==} engines: {node: '>=6.9.0'} peerDependencies: @@ -677,18 +726,18 @@ packages: '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-syntax-unicode-sets-regex/7.18.6_@babel+core@7.23.3: + /@babel/plugin-syntax-unicode-sets-regex@7.18.6(@babel/core@7.23.3): resolution: {integrity: sha512-727YkEAPwSIQTv5im8QHz3upqp92JTWhidIC81Tdx4VJYIte/VndKf1qKrfnnhPLiPghStWfvC/iFaMCQu7Nqg==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0 dependencies: '@babel/core': 7.23.3 - '@babel/helper-create-regexp-features-plugin': 7.22.15_@babel+core@7.23.3 + '@babel/helper-create-regexp-features-plugin': 7.22.15(@babel/core@7.23.3) '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-transform-arrow-functions/7.23.3_@babel+core@7.23.3: + /@babel/plugin-transform-arrow-functions@7.23.3(@babel/core@7.23.3): resolution: {integrity: sha512-NzQcQrzaQPkaEwoTm4Mhyl8jI1huEL/WWIEvudjTCMJ9aBZNpsJbMASx7EQECtQQPS/DcnFpo0FIh3LvEO9cxQ==} engines: {node: '>=6.9.0'} peerDependencies: @@ -698,7 +747,7 @@ packages: '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-transform-async-generator-functions/7.23.3_@babel+core@7.23.3: + /@babel/plugin-transform-async-generator-functions@7.23.3(@babel/core@7.23.3): resolution: {integrity: sha512-59GsVNavGxAXCDDbakWSMJhajASb4kBCqDjqJsv+p5nKdbz7istmZ3HrX3L2LuiI80+zsOADCvooqQH3qGCucQ==} engines: {node: '>=6.9.0'} peerDependencies: @@ -707,11 +756,11 @@ packages: '@babel/core': 7.23.3 '@babel/helper-environment-visitor': 7.22.20 '@babel/helper-plugin-utils': 7.22.5 - '@babel/helper-remap-async-to-generator': 7.22.20_@babel+core@7.23.3 - '@babel/plugin-syntax-async-generators': 7.8.4_@babel+core@7.23.3 + '@babel/helper-remap-async-to-generator': 7.22.20(@babel/core@7.23.3) + '@babel/plugin-syntax-async-generators': 7.8.4(@babel/core@7.23.3) dev: true - /@babel/plugin-transform-async-to-generator/7.23.3_@babel+core@7.23.3: + /@babel/plugin-transform-async-to-generator@7.23.3(@babel/core@7.23.3): resolution: {integrity: sha512-A7LFsKi4U4fomjqXJlZg/u0ft/n8/7n7lpffUP/ZULx/DtV9SGlNKZolHH6PE8Xl1ngCc0M11OaeZptXVkfKSw==} engines: {node: '>=6.9.0'} peerDependencies: @@ -720,10 +769,10 @@ packages: '@babel/core': 7.23.3 '@babel/helper-module-imports': 7.22.15 '@babel/helper-plugin-utils': 7.22.5 - '@babel/helper-remap-async-to-generator': 7.22.20_@babel+core@7.23.3 + '@babel/helper-remap-async-to-generator': 7.22.20(@babel/core@7.23.3) dev: true - /@babel/plugin-transform-block-scoped-functions/7.23.3_@babel+core@7.23.3: + /@babel/plugin-transform-block-scoped-functions@7.23.3(@babel/core@7.23.3): resolution: {integrity: sha512-vI+0sIaPIO6CNuM9Kk5VmXcMVRiOpDh7w2zZt9GXzmE/9KD70CUEVhvPR/etAeNK/FAEkhxQtXOzVF3EuRL41A==} engines: {node: '>=6.9.0'} peerDependencies: @@ -733,7 +782,7 @@ packages: '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-transform-block-scoping/7.23.3_@babel+core@7.23.3: + /@babel/plugin-transform-block-scoping@7.23.3(@babel/core@7.23.3): resolution: {integrity: sha512-QPZxHrThbQia7UdvfpaRRlq/J9ciz1J4go0k+lPBXbgaNeY7IQrBj/9ceWjvMMI07/ZBzHl/F0R/2K0qH7jCVw==} engines: {node: '>=6.9.0'} peerDependencies: @@ -743,30 +792,30 @@ packages: '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-transform-class-properties/7.23.3_@babel+core@7.23.3: + /@babel/plugin-transform-class-properties@7.23.3(@babel/core@7.23.3): resolution: {integrity: sha512-uM+AN8yCIjDPccsKGlw271xjJtGii+xQIF/uMPS8H15L12jZTsLfF4o5vNO7d/oUguOyfdikHGc/yi9ge4SGIg==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: '@babel/core': 7.23.3 - '@babel/helper-create-class-features-plugin': 7.22.15_@babel+core@7.23.3 + '@babel/helper-create-class-features-plugin': 7.22.15(@babel/core@7.23.3) '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-transform-class-static-block/7.23.3_@babel+core@7.23.3: + /@babel/plugin-transform-class-static-block@7.23.3(@babel/core@7.23.3): resolution: {integrity: sha512-PENDVxdr7ZxKPyi5Ffc0LjXdnJyrJxyqF5T5YjlVg4a0VFfQHW0r8iAtRiDXkfHlu1wwcvdtnndGYIeJLSuRMQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.12.0 dependencies: '@babel/core': 7.23.3 - '@babel/helper-create-class-features-plugin': 7.22.15_@babel+core@7.23.3 + '@babel/helper-create-class-features-plugin': 7.22.15(@babel/core@7.23.3) '@babel/helper-plugin-utils': 7.22.5 - '@babel/plugin-syntax-class-static-block': 7.14.5_@babel+core@7.23.3 + '@babel/plugin-syntax-class-static-block': 7.14.5(@babel/core@7.23.3) dev: true - /@babel/plugin-transform-classes/7.23.3_@babel+core@7.23.3: + /@babel/plugin-transform-classes@7.23.3(@babel/core@7.23.3): resolution: {integrity: sha512-FGEQmugvAEu2QtgtU0uTASXevfLMFfBeVCIIdcQhn/uBQsMTjBajdnAtanQlOcuihWh10PZ7+HWvc7NtBwP74w==} engines: {node: '>=6.9.0'} peerDependencies: @@ -779,12 +828,12 @@ packages: '@babel/helper-function-name': 7.23.0 '@babel/helper-optimise-call-expression': 7.22.5 '@babel/helper-plugin-utils': 7.22.5 - '@babel/helper-replace-supers': 7.22.20_@babel+core@7.23.3 + '@babel/helper-replace-supers': 7.22.20(@babel/core@7.23.3) '@babel/helper-split-export-declaration': 7.22.6 globals: 11.12.0 dev: true - /@babel/plugin-transform-computed-properties/7.23.3_@babel+core@7.23.3: + /@babel/plugin-transform-computed-properties@7.23.3(@babel/core@7.23.3): resolution: {integrity: sha512-dTj83UVTLw/+nbiHqQSFdwO9CbTtwq1DsDqm3CUEtDrZNET5rT5E6bIdTlOftDTDLMYxvxHNEYO4B9SLl8SLZw==} engines: {node: '>=6.9.0'} peerDependencies: @@ -795,7 +844,7 @@ packages: '@babel/template': 7.22.15 dev: true - /@babel/plugin-transform-destructuring/7.23.3_@babel+core@7.23.3: + /@babel/plugin-transform-destructuring@7.23.3(@babel/core@7.23.3): resolution: {integrity: sha512-n225npDqjDIr967cMScVKHXJs7rout1q+tt50inyBCPkyZ8KxeI6d+GIbSBTT/w/9WdlWDOej3V9HE5Lgk57gw==} engines: {node: '>=6.9.0'} peerDependencies: @@ -805,18 +854,18 @@ packages: '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-transform-dotall-regex/7.23.3_@babel+core@7.23.3: + /@babel/plugin-transform-dotall-regex@7.23.3(@babel/core@7.23.3): resolution: {integrity: sha512-vgnFYDHAKzFaTVp+mneDsIEbnJ2Np/9ng9iviHw3P/KVcgONxpNULEW/51Z/BaFojG2GI2GwwXck5uV1+1NOYQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: '@babel/core': 7.23.3 - '@babel/helper-create-regexp-features-plugin': 7.22.15_@babel+core@7.23.3 + '@babel/helper-create-regexp-features-plugin': 7.22.15(@babel/core@7.23.3) '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-transform-duplicate-keys/7.23.3_@babel+core@7.23.3: + /@babel/plugin-transform-duplicate-keys@7.23.3(@babel/core@7.23.3): resolution: {integrity: sha512-RrqQ+BQmU3Oyav3J+7/myfvRCq7Tbz+kKLLshUmMwNlDHExbGL7ARhajvoBJEvc+fCguPPu887N+3RRXBVKZUA==} engines: {node: '>=6.9.0'} peerDependencies: @@ -826,7 +875,7 @@ packages: '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-transform-dynamic-import/7.23.3_@babel+core@7.23.3: + /@babel/plugin-transform-dynamic-import@7.23.3(@babel/core@7.23.3): resolution: {integrity: sha512-vTG+cTGxPFou12Rj7ll+eD5yWeNl5/8xvQvF08y5Gv3v4mZQoyFf8/n9zg4q5vvCWt5jmgymfzMAldO7orBn7A==} engines: {node: '>=6.9.0'} peerDependencies: @@ -834,10 +883,10 @@ packages: dependencies: '@babel/core': 7.23.3 '@babel/helper-plugin-utils': 7.22.5 - '@babel/plugin-syntax-dynamic-import': 7.8.3_@babel+core@7.23.3 + '@babel/plugin-syntax-dynamic-import': 7.8.3(@babel/core@7.23.3) dev: true - /@babel/plugin-transform-exponentiation-operator/7.23.3_@babel+core@7.23.3: + /@babel/plugin-transform-exponentiation-operator@7.23.3(@babel/core@7.23.3): resolution: {integrity: sha512-5fhCsl1odX96u7ILKHBj4/Y8vipoqwsJMh4csSA8qFfxrZDEA4Ssku2DyNvMJSmZNOEBT750LfFPbtrnTP90BQ==} engines: {node: '>=6.9.0'} peerDependencies: @@ -848,7 +897,7 @@ packages: '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-transform-export-namespace-from/7.23.3_@babel+core@7.23.3: + /@babel/plugin-transform-export-namespace-from@7.23.3(@babel/core@7.23.3): resolution: {integrity: sha512-yCLhW34wpJWRdTxxWtFZASJisihrfyMOTOQexhVzA78jlU+dH7Dw+zQgcPepQ5F3C6bAIiblZZ+qBggJdHiBAg==} engines: {node: '>=6.9.0'} peerDependencies: @@ -856,10 +905,10 @@ packages: dependencies: '@babel/core': 7.23.3 '@babel/helper-plugin-utils': 7.22.5 - '@babel/plugin-syntax-export-namespace-from': 7.8.3_@babel+core@7.23.3 + '@babel/plugin-syntax-export-namespace-from': 7.8.3(@babel/core@7.23.3) dev: true - /@babel/plugin-transform-for-of/7.23.3_@babel+core@7.23.3: + /@babel/plugin-transform-for-of@7.23.3(@babel/core@7.23.3): resolution: {integrity: sha512-X8jSm8X1CMwxmK878qsUGJRmbysKNbdpTv/O1/v0LuY/ZkZrng5WYiekYSdg9m09OTmDDUWeEDsTE+17WYbAZw==} engines: {node: '>=6.9.0'} peerDependencies: @@ -869,7 +918,7 @@ packages: '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-transform-function-name/7.23.3_@babel+core@7.23.3: + /@babel/plugin-transform-function-name@7.23.3(@babel/core@7.23.3): resolution: {integrity: sha512-I1QXp1LxIvt8yLaib49dRW5Okt7Q4oaxao6tFVKS/anCdEOMtYwWVKoiOA1p34GOWIZjUK0E+zCp7+l1pfQyiw==} engines: {node: '>=6.9.0'} peerDependencies: @@ -881,7 +930,7 @@ packages: '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-transform-json-strings/7.23.3_@babel+core@7.23.3: + /@babel/plugin-transform-json-strings@7.23.3(@babel/core@7.23.3): resolution: {integrity: sha512-H9Ej2OiISIZowZHaBwF0tsJOih1PftXJtE8EWqlEIwpc7LMTGq0rPOrywKLQ4nefzx8/HMR0D3JGXoMHYvhi0A==} engines: {node: '>=6.9.0'} peerDependencies: @@ -889,10 +938,10 @@ packages: dependencies: '@babel/core': 7.23.3 '@babel/helper-plugin-utils': 7.22.5 - '@babel/plugin-syntax-json-strings': 7.8.3_@babel+core@7.23.3 + '@babel/plugin-syntax-json-strings': 7.8.3(@babel/core@7.23.3) dev: true - /@babel/plugin-transform-literals/7.23.3_@babel+core@7.23.3: + /@babel/plugin-transform-literals@7.23.3(@babel/core@7.23.3): resolution: {integrity: sha512-wZ0PIXRxnwZvl9AYpqNUxpZ5BiTGrYt7kueGQ+N5FiQ7RCOD4cm8iShd6S6ggfVIWaJf2EMk8eRzAh52RfP4rQ==} engines: {node: '>=6.9.0'} peerDependencies: @@ -902,7 +951,7 @@ packages: '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-transform-logical-assignment-operators/7.23.3_@babel+core@7.23.3: + /@babel/plugin-transform-logical-assignment-operators@7.23.3(@babel/core@7.23.3): resolution: {integrity: sha512-+pD5ZbxofyOygEp+zZAfujY2ShNCXRpDRIPOiBmTO693hhyOEteZgl876Xs9SAHPQpcV0vz8LvA/T+w8AzyX8A==} engines: {node: '>=6.9.0'} peerDependencies: @@ -910,10 +959,10 @@ packages: dependencies: '@babel/core': 7.23.3 '@babel/helper-plugin-utils': 7.22.5 - '@babel/plugin-syntax-logical-assignment-operators': 7.10.4_@babel+core@7.23.3 + '@babel/plugin-syntax-logical-assignment-operators': 7.10.4(@babel/core@7.23.3) dev: true - /@babel/plugin-transform-member-expression-literals/7.23.3_@babel+core@7.23.3: + /@babel/plugin-transform-member-expression-literals@7.23.3(@babel/core@7.23.3): resolution: {integrity: sha512-sC3LdDBDi5x96LA+Ytekz2ZPk8i/Ck+DEuDbRAll5rknJ5XRTSaPKEYwomLcs1AA8wg9b3KjIQRsnApj+q51Ag==} engines: {node: '>=6.9.0'} peerDependencies: @@ -923,30 +972,30 @@ packages: '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-transform-modules-amd/7.23.3_@babel+core@7.23.3: + /@babel/plugin-transform-modules-amd@7.23.3(@babel/core@7.23.3): resolution: {integrity: sha512-vJYQGxeKM4t8hYCKVBlZX/gtIY2I7mRGFNcm85sgXGMTBcoV3QdVtdpbcWEbzbfUIUZKwvgFT82mRvaQIebZzw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: '@babel/core': 7.23.3 - '@babel/helper-module-transforms': 7.23.3_@babel+core@7.23.3 + '@babel/helper-module-transforms': 7.23.3(@babel/core@7.23.3) '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-transform-modules-commonjs/7.23.3_@babel+core@7.23.3: + /@babel/plugin-transform-modules-commonjs@7.23.3(@babel/core@7.23.3): resolution: {integrity: sha512-aVS0F65LKsdNOtcz6FRCpE4OgsP2OFnW46qNxNIX9h3wuzaNcSQsJysuMwqSibC98HPrf2vCgtxKNwS0DAlgcA==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: '@babel/core': 7.23.3 - '@babel/helper-module-transforms': 7.23.3_@babel+core@7.23.3 + '@babel/helper-module-transforms': 7.23.3(@babel/core@7.23.3) '@babel/helper-plugin-utils': 7.22.5 '@babel/helper-simple-access': 7.22.5 dev: true - /@babel/plugin-transform-modules-systemjs/7.23.3_@babel+core@7.23.3: + /@babel/plugin-transform-modules-systemjs@7.23.3(@babel/core@7.23.3): resolution: {integrity: sha512-ZxyKGTkF9xT9YJuKQRo19ewf3pXpopuYQd8cDXqNzc3mUNbOME0RKMoZxviQk74hwzfQsEe66dE92MaZbdHKNQ==} engines: {node: '>=6.9.0'} peerDependencies: @@ -954,34 +1003,34 @@ packages: dependencies: '@babel/core': 7.23.3 '@babel/helper-hoist-variables': 7.22.5 - '@babel/helper-module-transforms': 7.23.3_@babel+core@7.23.3 + '@babel/helper-module-transforms': 7.23.3(@babel/core@7.23.3) '@babel/helper-plugin-utils': 7.22.5 '@babel/helper-validator-identifier': 7.22.20 dev: true - /@babel/plugin-transform-modules-umd/7.23.3_@babel+core@7.23.3: + /@babel/plugin-transform-modules-umd@7.23.3(@babel/core@7.23.3): resolution: {integrity: sha512-zHsy9iXX2nIsCBFPud3jKn1IRPWg3Ing1qOZgeKV39m1ZgIdpJqvlWVeiHBZC6ITRG0MfskhYe9cLgntfSFPIg==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: '@babel/core': 7.23.3 - '@babel/helper-module-transforms': 7.23.3_@babel+core@7.23.3 + '@babel/helper-module-transforms': 7.23.3(@babel/core@7.23.3) '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-transform-named-capturing-groups-regex/7.22.5_@babel+core@7.23.3: + /@babel/plugin-transform-named-capturing-groups-regex@7.22.5(@babel/core@7.23.3): resolution: {integrity: sha512-YgLLKmS3aUBhHaxp5hi1WJTgOUb/NCuDHzGT9z9WTt3YG+CPRhJs6nprbStx6DnWM4dh6gt7SU3sZodbZ08adQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0 dependencies: '@babel/core': 7.23.3 - '@babel/helper-create-regexp-features-plugin': 7.22.15_@babel+core@7.23.3 + '@babel/helper-create-regexp-features-plugin': 7.22.15(@babel/core@7.23.3) '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-transform-new-target/7.23.3_@babel+core@7.23.3: + /@babel/plugin-transform-new-target@7.23.3(@babel/core@7.23.3): resolution: {integrity: sha512-YJ3xKqtJMAT5/TIZnpAR3I+K+WaDowYbN3xyxI8zxx/Gsypwf9B9h0VB+1Nh6ACAAPRS5NSRje0uVv5i79HYGQ==} engines: {node: '>=6.9.0'} peerDependencies: @@ -991,7 +1040,7 @@ packages: '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-transform-nullish-coalescing-operator/7.23.3_@babel+core@7.23.3: + /@babel/plugin-transform-nullish-coalescing-operator@7.23.3(@babel/core@7.23.3): resolution: {integrity: sha512-xzg24Lnld4DYIdysyf07zJ1P+iIfJpxtVFOzX4g+bsJ3Ng5Le7rXx9KwqKzuyaUeRnt+I1EICwQITqc0E2PmpA==} engines: {node: '>=6.9.0'} peerDependencies: @@ -999,10 +1048,10 @@ packages: dependencies: '@babel/core': 7.23.3 '@babel/helper-plugin-utils': 7.22.5 - '@babel/plugin-syntax-nullish-coalescing-operator': 7.8.3_@babel+core@7.23.3 + '@babel/plugin-syntax-nullish-coalescing-operator': 7.8.3(@babel/core@7.23.3) dev: true - /@babel/plugin-transform-numeric-separator/7.23.3_@babel+core@7.23.3: + /@babel/plugin-transform-numeric-separator@7.23.3(@babel/core@7.23.3): resolution: {integrity: sha512-s9GO7fIBi/BLsZ0v3Rftr6Oe4t0ctJ8h4CCXfPoEJwmvAPMyNrfkOOJzm6b9PX9YXcCJWWQd/sBF/N26eBiMVw==} engines: {node: '>=6.9.0'} peerDependencies: @@ -1010,10 +1059,10 @@ packages: dependencies: '@babel/core': 7.23.3 '@babel/helper-plugin-utils': 7.22.5 - '@babel/plugin-syntax-numeric-separator': 7.10.4_@babel+core@7.23.3 + '@babel/plugin-syntax-numeric-separator': 7.10.4(@babel/core@7.23.3) dev: true - /@babel/plugin-transform-object-rest-spread/7.23.3_@babel+core@7.23.3: + /@babel/plugin-transform-object-rest-spread@7.23.3(@babel/core@7.23.3): resolution: {integrity: sha512-VxHt0ANkDmu8TANdE9Kc0rndo/ccsmfe2Cx2y5sI4hu3AukHQ5wAu4cM7j3ba8B9548ijVyclBU+nuDQftZsog==} engines: {node: '>=6.9.0'} peerDependencies: @@ -1023,11 +1072,11 @@ packages: '@babel/core': 7.23.3 '@babel/helper-compilation-targets': 7.22.15 '@babel/helper-plugin-utils': 7.22.5 - '@babel/plugin-syntax-object-rest-spread': 7.8.3_@babel+core@7.23.3 - '@babel/plugin-transform-parameters': 7.23.3_@babel+core@7.23.3 + '@babel/plugin-syntax-object-rest-spread': 7.8.3(@babel/core@7.23.3) + '@babel/plugin-transform-parameters': 7.23.3(@babel/core@7.23.3) dev: true - /@babel/plugin-transform-object-super/7.23.3_@babel+core@7.23.3: + /@babel/plugin-transform-object-super@7.23.3(@babel/core@7.23.3): resolution: {integrity: sha512-BwQ8q0x2JG+3lxCVFohg+KbQM7plfpBwThdW9A6TMtWwLsbDA01Ek2Zb/AgDN39BiZsExm4qrXxjk+P1/fzGrA==} engines: {node: '>=6.9.0'} peerDependencies: @@ -1035,10 +1084,10 @@ packages: dependencies: '@babel/core': 7.23.3 '@babel/helper-plugin-utils': 7.22.5 - '@babel/helper-replace-supers': 7.22.20_@babel+core@7.23.3 + '@babel/helper-replace-supers': 7.22.20(@babel/core@7.23.3) dev: true - /@babel/plugin-transform-optional-catch-binding/7.23.3_@babel+core@7.23.3: + /@babel/plugin-transform-optional-catch-binding@7.23.3(@babel/core@7.23.3): resolution: {integrity: sha512-LxYSb0iLjUamfm7f1D7GpiS4j0UAC8AOiehnsGAP8BEsIX8EOi3qV6bbctw8M7ZvLtcoZfZX5Z7rN9PlWk0m5A==} engines: {node: '>=6.9.0'} peerDependencies: @@ -1046,10 +1095,10 @@ packages: dependencies: '@babel/core': 7.23.3 '@babel/helper-plugin-utils': 7.22.5 - '@babel/plugin-syntax-optional-catch-binding': 7.8.3_@babel+core@7.23.3 + '@babel/plugin-syntax-optional-catch-binding': 7.8.3(@babel/core@7.23.3) dev: true - /@babel/plugin-transform-optional-chaining/7.23.3_@babel+core@7.23.3: + /@babel/plugin-transform-optional-chaining@7.23.3(@babel/core@7.23.3): resolution: {integrity: sha512-zvL8vIfIUgMccIAK1lxjvNv572JHFJIKb4MWBz5OGdBQA0fB0Xluix5rmOby48exiJc987neOmP/m9Fnpkz3Tg==} engines: {node: '>=6.9.0'} peerDependencies: @@ -1058,10 +1107,10 @@ packages: '@babel/core': 7.23.3 '@babel/helper-plugin-utils': 7.22.5 '@babel/helper-skip-transparent-expression-wrappers': 7.22.5 - '@babel/plugin-syntax-optional-chaining': 7.8.3_@babel+core@7.23.3 + '@babel/plugin-syntax-optional-chaining': 7.8.3(@babel/core@7.23.3) dev: true - /@babel/plugin-transform-parameters/7.23.3_@babel+core@7.23.3: + /@babel/plugin-transform-parameters@7.23.3(@babel/core@7.23.3): resolution: {integrity: sha512-09lMt6UsUb3/34BbECKVbVwrT9bO6lILWln237z7sLaWnMsTi7Yc9fhX5DLpkJzAGfaReXI22wP41SZmnAA3Vw==} engines: {node: '>=6.9.0'} peerDependencies: @@ -1071,18 +1120,18 @@ packages: '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-transform-private-methods/7.23.3_@babel+core@7.23.3: + /@babel/plugin-transform-private-methods@7.23.3(@babel/core@7.23.3): resolution: {integrity: sha512-UzqRcRtWsDMTLrRWFvUBDwmw06tCQH9Rl1uAjfh6ijMSmGYQ+fpdB+cnqRC8EMh5tuuxSv0/TejGL+7vyj+50g==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: '@babel/core': 7.23.3 - '@babel/helper-create-class-features-plugin': 7.22.15_@babel+core@7.23.3 + '@babel/helper-create-class-features-plugin': 7.22.15(@babel/core@7.23.3) '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-transform-private-property-in-object/7.23.3_@babel+core@7.23.3: + /@babel/plugin-transform-private-property-in-object@7.23.3(@babel/core@7.23.3): resolution: {integrity: sha512-a5m2oLNFyje2e/rGKjVfAELTVI5mbA0FeZpBnkOWWV7eSmKQ+T/XW0Vf+29ScLzSxX+rnsarvU0oie/4m6hkxA==} engines: {node: '>=6.9.0'} peerDependencies: @@ -1090,12 +1139,12 @@ packages: dependencies: '@babel/core': 7.23.3 '@babel/helper-annotate-as-pure': 7.22.5 - '@babel/helper-create-class-features-plugin': 7.22.15_@babel+core@7.23.3 + '@babel/helper-create-class-features-plugin': 7.22.15(@babel/core@7.23.3) '@babel/helper-plugin-utils': 7.22.5 - '@babel/plugin-syntax-private-property-in-object': 7.14.5_@babel+core@7.23.3 + '@babel/plugin-syntax-private-property-in-object': 7.14.5(@babel/core@7.23.3) dev: true - /@babel/plugin-transform-property-literals/7.23.3_@babel+core@7.23.3: + /@babel/plugin-transform-property-literals@7.23.3(@babel/core@7.23.3): resolution: {integrity: sha512-jR3Jn3y7cZp4oEWPFAlRsSWjxKe4PZILGBSd4nis1TsC5qeSpb+nrtihJuDhNI7QHiVbUaiXa0X2RZY3/TI6Nw==} engines: {node: '>=6.9.0'} peerDependencies: @@ -1105,7 +1154,7 @@ packages: '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-transform-regenerator/7.23.3_@babel+core@7.23.3: + /@babel/plugin-transform-regenerator@7.23.3(@babel/core@7.23.3): resolution: {integrity: sha512-KP+75h0KghBMcVpuKisx3XTu9Ncut8Q8TuvGO4IhY+9D5DFEckQefOuIsB/gQ2tG71lCke4NMrtIPS8pOj18BQ==} engines: {node: '>=6.9.0'} peerDependencies: @@ -1116,7 +1165,7 @@ packages: regenerator-transform: 0.15.2 dev: true - /@babel/plugin-transform-reserved-words/7.23.3_@babel+core@7.23.3: + /@babel/plugin-transform-reserved-words@7.23.3(@babel/core@7.23.3): resolution: {integrity: sha512-QnNTazY54YqgGxwIexMZva9gqbPa15t/x9VS+0fsEFWplwVpXYZivtgl43Z1vMpc1bdPP2PP8siFeVcnFvA3Cg==} engines: {node: '>=6.9.0'} peerDependencies: @@ -1126,7 +1175,7 @@ packages: '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-transform-runtime/7.23.3_@babel+core@7.23.3: + /@babel/plugin-transform-runtime@7.23.3(@babel/core@7.23.3): resolution: {integrity: sha512-XcQ3X58CKBdBnnZpPaQjgVMePsXtSZzHoku70q9tUAQp02ggPQNM04BF3RvlW1GSM/McbSOQAzEK4MXbS7/JFg==} engines: {node: '>=6.9.0'} peerDependencies: @@ -1135,15 +1184,15 @@ packages: '@babel/core': 7.23.3 '@babel/helper-module-imports': 7.22.15 '@babel/helper-plugin-utils': 7.22.5 - babel-plugin-polyfill-corejs2: 0.4.6_@babel+core@7.23.3 - babel-plugin-polyfill-corejs3: 0.8.6_@babel+core@7.23.3 - babel-plugin-polyfill-regenerator: 0.5.3_@babel+core@7.23.3 + babel-plugin-polyfill-corejs2: 0.4.6(@babel/core@7.23.3) + babel-plugin-polyfill-corejs3: 0.8.6(@babel/core@7.23.3) + babel-plugin-polyfill-regenerator: 0.5.3(@babel/core@7.23.3) semver: 6.3.1 transitivePeerDependencies: - supports-color dev: true - /@babel/plugin-transform-shorthand-properties/7.23.3_@babel+core@7.23.3: + /@babel/plugin-transform-shorthand-properties@7.23.3(@babel/core@7.23.3): resolution: {integrity: sha512-ED2fgqZLmexWiN+YNFX26fx4gh5qHDhn1O2gvEhreLW2iI63Sqm4llRLCXALKrCnbN4Jy0VcMQZl/SAzqug/jg==} engines: {node: '>=6.9.0'} peerDependencies: @@ -1153,7 +1202,7 @@ packages: '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-transform-spread/7.23.3_@babel+core@7.23.3: + /@babel/plugin-transform-spread@7.23.3(@babel/core@7.23.3): resolution: {integrity: sha512-VvfVYlrlBVu+77xVTOAoxQ6mZbnIq5FM0aGBSFEcIh03qHf+zNqA4DC/3XMUozTg7bZV3e3mZQ0i13VB6v5yUg==} engines: {node: '>=6.9.0'} peerDependencies: @@ -1164,7 +1213,7 @@ packages: '@babel/helper-skip-transparent-expression-wrappers': 7.22.5 dev: true - /@babel/plugin-transform-sticky-regex/7.23.3_@babel+core@7.23.3: + /@babel/plugin-transform-sticky-regex@7.23.3(@babel/core@7.23.3): resolution: {integrity: sha512-HZOyN9g+rtvnOU3Yh7kSxXrKbzgrm5X4GncPY1QOquu7epga5MxKHVpYu2hvQnry/H+JjckSYRb93iNfsioAGg==} engines: {node: '>=6.9.0'} peerDependencies: @@ -1174,7 +1223,7 @@ packages: '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-transform-template-literals/7.23.3_@babel+core@7.23.3: + /@babel/plugin-transform-template-literals@7.23.3(@babel/core@7.23.3): resolution: {integrity: sha512-Flok06AYNp7GV2oJPZZcP9vZdszev6vPBkHLwxwSpaIqx75wn6mUd3UFWsSsA0l8nXAKkyCmL/sR02m8RYGeHg==} engines: {node: '>=6.9.0'} peerDependencies: @@ -1184,7 +1233,7 @@ packages: '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-transform-typeof-symbol/7.23.3_@babel+core@7.23.3: + /@babel/plugin-transform-typeof-symbol@7.23.3(@babel/core@7.23.3): resolution: {integrity: sha512-4t15ViVnaFdrPC74be1gXBSMzXk3B4Us9lP7uLRQHTFpV5Dvt33pn+2MyyNxmN3VTTm3oTrZVMUmuw3oBnQ2oQ==} engines: {node: '>=6.9.0'} peerDependencies: @@ -1194,7 +1243,7 @@ packages: '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-transform-typescript/7.23.3_@babel+core@7.23.3: + /@babel/plugin-transform-typescript@7.23.3(@babel/core@7.23.3): resolution: {integrity: sha512-ogV0yWnq38CFwH20l2Afz0dfKuZBx9o/Y2Rmh5vuSS0YD1hswgEgTfyTzuSrT2q9btmHRSqYoSfwFUVaC1M1Jw==} engines: {node: '>=6.9.0'} peerDependencies: @@ -1202,12 +1251,12 @@ packages: dependencies: '@babel/core': 7.23.3 '@babel/helper-annotate-as-pure': 7.22.5 - '@babel/helper-create-class-features-plugin': 7.22.15_@babel+core@7.23.3 + '@babel/helper-create-class-features-plugin': 7.22.15(@babel/core@7.23.3) '@babel/helper-plugin-utils': 7.22.5 - '@babel/plugin-syntax-typescript': 7.23.3_@babel+core@7.23.3 + '@babel/plugin-syntax-typescript': 7.23.3(@babel/core@7.23.3) dev: true - /@babel/plugin-transform-unicode-escapes/7.23.3_@babel+core@7.23.3: + /@babel/plugin-transform-unicode-escapes@7.23.3(@babel/core@7.23.3): resolution: {integrity: sha512-OMCUx/bU6ChE3r4+ZdylEqAjaQgHAgipgW8nsCfu5pGqDcFytVd91AwRvUJSBZDz0exPGgnjoqhgRYLRjFZc9Q==} engines: {node: '>=6.9.0'} peerDependencies: @@ -1217,40 +1266,40 @@ packages: '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-transform-unicode-property-regex/7.23.3_@babel+core@7.23.3: + /@babel/plugin-transform-unicode-property-regex@7.23.3(@babel/core@7.23.3): resolution: {integrity: sha512-KcLIm+pDZkWZQAFJ9pdfmh89EwVfmNovFBcXko8szpBeF8z68kWIPeKlmSOkT9BXJxs2C0uk+5LxoxIv62MROA==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: '@babel/core': 7.23.3 - '@babel/helper-create-regexp-features-plugin': 7.22.15_@babel+core@7.23.3 + '@babel/helper-create-regexp-features-plugin': 7.22.15(@babel/core@7.23.3) '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-transform-unicode-regex/7.23.3_@babel+core@7.23.3: + /@babel/plugin-transform-unicode-regex@7.23.3(@babel/core@7.23.3): resolution: {integrity: sha512-wMHpNA4x2cIA32b/ci3AfwNgheiva2W0WUKWTK7vBHBhDKfPsc5cFGNWm69WBqpwd86u1qwZ9PWevKqm1A3yAw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: '@babel/core': 7.23.3 - '@babel/helper-create-regexp-features-plugin': 7.22.15_@babel+core@7.23.3 + '@babel/helper-create-regexp-features-plugin': 7.22.15(@babel/core@7.23.3) '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-transform-unicode-sets-regex/7.23.3_@babel+core@7.23.3: + /@babel/plugin-transform-unicode-sets-regex@7.23.3(@babel/core@7.23.3): resolution: {integrity: sha512-W7lliA/v9bNR83Qc3q1ip9CQMZ09CcHDbHfbLRDNuAhn1Mvkr1ZNF7hPmztMQvtTGVLJ9m8IZqWsTkXOml8dbw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0 dependencies: '@babel/core': 7.23.3 - '@babel/helper-create-regexp-features-plugin': 7.22.15_@babel+core@7.23.3 + '@babel/helper-create-regexp-features-plugin': 7.22.15(@babel/core@7.23.3) '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/preset-env/7.23.3_@babel+core@7.23.3: + /@babel/preset-env@7.23.3(@babel/core@7.23.3): resolution: {integrity: sha512-ovzGc2uuyNfNAs/jyjIGxS8arOHS5FENZaNn4rtE7UdKMMkqHCvboHfcuhWLZNX5cB44QfcGNWjaevxMzzMf+Q==} engines: {node: '>=6.9.0'} peerDependencies: @@ -1261,87 +1310,87 @@ packages: '@babel/helper-compilation-targets': 7.22.15 '@babel/helper-plugin-utils': 7.22.5 '@babel/helper-validator-option': 7.22.15 - '@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression': 7.23.3_@babel+core@7.23.3 - '@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining': 7.23.3_@babel+core@7.23.3 - '@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly': 7.23.3_@babel+core@7.23.3 - '@babel/plugin-proposal-private-property-in-object': 7.21.0-placeholder-for-preset-env.2_@babel+core@7.23.3 - '@babel/plugin-syntax-async-generators': 7.8.4_@babel+core@7.23.3 - '@babel/plugin-syntax-class-properties': 7.12.13_@babel+core@7.23.3 - '@babel/plugin-syntax-class-static-block': 7.14.5_@babel+core@7.23.3 - '@babel/plugin-syntax-dynamic-import': 7.8.3_@babel+core@7.23.3 - '@babel/plugin-syntax-export-namespace-from': 7.8.3_@babel+core@7.23.3 - '@babel/plugin-syntax-import-assertions': 7.23.3_@babel+core@7.23.3 - '@babel/plugin-syntax-import-attributes': 7.23.3_@babel+core@7.23.3 - '@babel/plugin-syntax-import-meta': 7.10.4_@babel+core@7.23.3 - '@babel/plugin-syntax-json-strings': 7.8.3_@babel+core@7.23.3 - '@babel/plugin-syntax-logical-assignment-operators': 7.10.4_@babel+core@7.23.3 - '@babel/plugin-syntax-nullish-coalescing-operator': 7.8.3_@babel+core@7.23.3 - '@babel/plugin-syntax-numeric-separator': 7.10.4_@babel+core@7.23.3 - '@babel/plugin-syntax-object-rest-spread': 7.8.3_@babel+core@7.23.3 - '@babel/plugin-syntax-optional-catch-binding': 7.8.3_@babel+core@7.23.3 - '@babel/plugin-syntax-optional-chaining': 7.8.3_@babel+core@7.23.3 - '@babel/plugin-syntax-private-property-in-object': 7.14.5_@babel+core@7.23.3 - '@babel/plugin-syntax-top-level-await': 7.14.5_@babel+core@7.23.3 - '@babel/plugin-syntax-unicode-sets-regex': 7.18.6_@babel+core@7.23.3 - '@babel/plugin-transform-arrow-functions': 7.23.3_@babel+core@7.23.3 - '@babel/plugin-transform-async-generator-functions': 7.23.3_@babel+core@7.23.3 - '@babel/plugin-transform-async-to-generator': 7.23.3_@babel+core@7.23.3 - '@babel/plugin-transform-block-scoped-functions': 7.23.3_@babel+core@7.23.3 - '@babel/plugin-transform-block-scoping': 7.23.3_@babel+core@7.23.3 - '@babel/plugin-transform-class-properties': 7.23.3_@babel+core@7.23.3 - '@babel/plugin-transform-class-static-block': 7.23.3_@babel+core@7.23.3 - '@babel/plugin-transform-classes': 7.23.3_@babel+core@7.23.3 - '@babel/plugin-transform-computed-properties': 7.23.3_@babel+core@7.23.3 - '@babel/plugin-transform-destructuring': 7.23.3_@babel+core@7.23.3 - '@babel/plugin-transform-dotall-regex': 7.23.3_@babel+core@7.23.3 - '@babel/plugin-transform-duplicate-keys': 7.23.3_@babel+core@7.23.3 - '@babel/plugin-transform-dynamic-import': 7.23.3_@babel+core@7.23.3 - '@babel/plugin-transform-exponentiation-operator': 7.23.3_@babel+core@7.23.3 - '@babel/plugin-transform-export-namespace-from': 7.23.3_@babel+core@7.23.3 - '@babel/plugin-transform-for-of': 7.23.3_@babel+core@7.23.3 - '@babel/plugin-transform-function-name': 7.23.3_@babel+core@7.23.3 - '@babel/plugin-transform-json-strings': 7.23.3_@babel+core@7.23.3 - '@babel/plugin-transform-literals': 7.23.3_@babel+core@7.23.3 - '@babel/plugin-transform-logical-assignment-operators': 7.23.3_@babel+core@7.23.3 - '@babel/plugin-transform-member-expression-literals': 7.23.3_@babel+core@7.23.3 - '@babel/plugin-transform-modules-amd': 7.23.3_@babel+core@7.23.3 - '@babel/plugin-transform-modules-commonjs': 7.23.3_@babel+core@7.23.3 - '@babel/plugin-transform-modules-systemjs': 7.23.3_@babel+core@7.23.3 - '@babel/plugin-transform-modules-umd': 7.23.3_@babel+core@7.23.3 - '@babel/plugin-transform-named-capturing-groups-regex': 7.22.5_@babel+core@7.23.3 - '@babel/plugin-transform-new-target': 7.23.3_@babel+core@7.23.3 - '@babel/plugin-transform-nullish-coalescing-operator': 7.23.3_@babel+core@7.23.3 - '@babel/plugin-transform-numeric-separator': 7.23.3_@babel+core@7.23.3 - '@babel/plugin-transform-object-rest-spread': 7.23.3_@babel+core@7.23.3 - '@babel/plugin-transform-object-super': 7.23.3_@babel+core@7.23.3 - '@babel/plugin-transform-optional-catch-binding': 7.23.3_@babel+core@7.23.3 - '@babel/plugin-transform-optional-chaining': 7.23.3_@babel+core@7.23.3 - '@babel/plugin-transform-parameters': 7.23.3_@babel+core@7.23.3 - '@babel/plugin-transform-private-methods': 7.23.3_@babel+core@7.23.3 - '@babel/plugin-transform-private-property-in-object': 7.23.3_@babel+core@7.23.3 - '@babel/plugin-transform-property-literals': 7.23.3_@babel+core@7.23.3 - '@babel/plugin-transform-regenerator': 7.23.3_@babel+core@7.23.3 - '@babel/plugin-transform-reserved-words': 7.23.3_@babel+core@7.23.3 - '@babel/plugin-transform-shorthand-properties': 7.23.3_@babel+core@7.23.3 - '@babel/plugin-transform-spread': 7.23.3_@babel+core@7.23.3 - '@babel/plugin-transform-sticky-regex': 7.23.3_@babel+core@7.23.3 - '@babel/plugin-transform-template-literals': 7.23.3_@babel+core@7.23.3 - '@babel/plugin-transform-typeof-symbol': 7.23.3_@babel+core@7.23.3 - '@babel/plugin-transform-unicode-escapes': 7.23.3_@babel+core@7.23.3 - '@babel/plugin-transform-unicode-property-regex': 7.23.3_@babel+core@7.23.3 - '@babel/plugin-transform-unicode-regex': 7.23.3_@babel+core@7.23.3 - '@babel/plugin-transform-unicode-sets-regex': 7.23.3_@babel+core@7.23.3 - '@babel/preset-modules': 0.1.6-no-external-plugins_@babel+core@7.23.3 - babel-plugin-polyfill-corejs2: 0.4.6_@babel+core@7.23.3 - babel-plugin-polyfill-corejs3: 0.8.6_@babel+core@7.23.3 - babel-plugin-polyfill-regenerator: 0.5.3_@babel+core@7.23.3 + '@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression': 7.23.3(@babel/core@7.23.3) + '@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining': 7.23.3(@babel/core@7.23.3) + '@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly': 7.23.3(@babel/core@7.23.3) + '@babel/plugin-proposal-private-property-in-object': 7.21.0-placeholder-for-preset-env.2(@babel/core@7.23.3) + '@babel/plugin-syntax-async-generators': 7.8.4(@babel/core@7.23.3) + '@babel/plugin-syntax-class-properties': 7.12.13(@babel/core@7.23.3) + '@babel/plugin-syntax-class-static-block': 7.14.5(@babel/core@7.23.3) + '@babel/plugin-syntax-dynamic-import': 7.8.3(@babel/core@7.23.3) + '@babel/plugin-syntax-export-namespace-from': 7.8.3(@babel/core@7.23.3) + '@babel/plugin-syntax-import-assertions': 7.23.3(@babel/core@7.23.3) + '@babel/plugin-syntax-import-attributes': 7.23.3(@babel/core@7.23.3) + '@babel/plugin-syntax-import-meta': 7.10.4(@babel/core@7.23.3) + '@babel/plugin-syntax-json-strings': 7.8.3(@babel/core@7.23.3) + '@babel/plugin-syntax-logical-assignment-operators': 7.10.4(@babel/core@7.23.3) + '@babel/plugin-syntax-nullish-coalescing-operator': 7.8.3(@babel/core@7.23.3) + '@babel/plugin-syntax-numeric-separator': 7.10.4(@babel/core@7.23.3) + '@babel/plugin-syntax-object-rest-spread': 7.8.3(@babel/core@7.23.3) + '@babel/plugin-syntax-optional-catch-binding': 7.8.3(@babel/core@7.23.3) + '@babel/plugin-syntax-optional-chaining': 7.8.3(@babel/core@7.23.3) + '@babel/plugin-syntax-private-property-in-object': 7.14.5(@babel/core@7.23.3) + '@babel/plugin-syntax-top-level-await': 7.14.5(@babel/core@7.23.3) + '@babel/plugin-syntax-unicode-sets-regex': 7.18.6(@babel/core@7.23.3) + '@babel/plugin-transform-arrow-functions': 7.23.3(@babel/core@7.23.3) + '@babel/plugin-transform-async-generator-functions': 7.23.3(@babel/core@7.23.3) + '@babel/plugin-transform-async-to-generator': 7.23.3(@babel/core@7.23.3) + '@babel/plugin-transform-block-scoped-functions': 7.23.3(@babel/core@7.23.3) + '@babel/plugin-transform-block-scoping': 7.23.3(@babel/core@7.23.3) + '@babel/plugin-transform-class-properties': 7.23.3(@babel/core@7.23.3) + '@babel/plugin-transform-class-static-block': 7.23.3(@babel/core@7.23.3) + '@babel/plugin-transform-classes': 7.23.3(@babel/core@7.23.3) + '@babel/plugin-transform-computed-properties': 7.23.3(@babel/core@7.23.3) + '@babel/plugin-transform-destructuring': 7.23.3(@babel/core@7.23.3) + '@babel/plugin-transform-dotall-regex': 7.23.3(@babel/core@7.23.3) + '@babel/plugin-transform-duplicate-keys': 7.23.3(@babel/core@7.23.3) + '@babel/plugin-transform-dynamic-import': 7.23.3(@babel/core@7.23.3) + '@babel/plugin-transform-exponentiation-operator': 7.23.3(@babel/core@7.23.3) + '@babel/plugin-transform-export-namespace-from': 7.23.3(@babel/core@7.23.3) + '@babel/plugin-transform-for-of': 7.23.3(@babel/core@7.23.3) + '@babel/plugin-transform-function-name': 7.23.3(@babel/core@7.23.3) + '@babel/plugin-transform-json-strings': 7.23.3(@babel/core@7.23.3) + '@babel/plugin-transform-literals': 7.23.3(@babel/core@7.23.3) + '@babel/plugin-transform-logical-assignment-operators': 7.23.3(@babel/core@7.23.3) + '@babel/plugin-transform-member-expression-literals': 7.23.3(@babel/core@7.23.3) + '@babel/plugin-transform-modules-amd': 7.23.3(@babel/core@7.23.3) + '@babel/plugin-transform-modules-commonjs': 7.23.3(@babel/core@7.23.3) + '@babel/plugin-transform-modules-systemjs': 7.23.3(@babel/core@7.23.3) + '@babel/plugin-transform-modules-umd': 7.23.3(@babel/core@7.23.3) + '@babel/plugin-transform-named-capturing-groups-regex': 7.22.5(@babel/core@7.23.3) + '@babel/plugin-transform-new-target': 7.23.3(@babel/core@7.23.3) + '@babel/plugin-transform-nullish-coalescing-operator': 7.23.3(@babel/core@7.23.3) + '@babel/plugin-transform-numeric-separator': 7.23.3(@babel/core@7.23.3) + '@babel/plugin-transform-object-rest-spread': 7.23.3(@babel/core@7.23.3) + '@babel/plugin-transform-object-super': 7.23.3(@babel/core@7.23.3) + '@babel/plugin-transform-optional-catch-binding': 7.23.3(@babel/core@7.23.3) + '@babel/plugin-transform-optional-chaining': 7.23.3(@babel/core@7.23.3) + '@babel/plugin-transform-parameters': 7.23.3(@babel/core@7.23.3) + '@babel/plugin-transform-private-methods': 7.23.3(@babel/core@7.23.3) + '@babel/plugin-transform-private-property-in-object': 7.23.3(@babel/core@7.23.3) + '@babel/plugin-transform-property-literals': 7.23.3(@babel/core@7.23.3) + '@babel/plugin-transform-regenerator': 7.23.3(@babel/core@7.23.3) + '@babel/plugin-transform-reserved-words': 7.23.3(@babel/core@7.23.3) + '@babel/plugin-transform-shorthand-properties': 7.23.3(@babel/core@7.23.3) + '@babel/plugin-transform-spread': 7.23.3(@babel/core@7.23.3) + '@babel/plugin-transform-sticky-regex': 7.23.3(@babel/core@7.23.3) + '@babel/plugin-transform-template-literals': 7.23.3(@babel/core@7.23.3) + '@babel/plugin-transform-typeof-symbol': 7.23.3(@babel/core@7.23.3) + '@babel/plugin-transform-unicode-escapes': 7.23.3(@babel/core@7.23.3) + '@babel/plugin-transform-unicode-property-regex': 7.23.3(@babel/core@7.23.3) + '@babel/plugin-transform-unicode-regex': 7.23.3(@babel/core@7.23.3) + '@babel/plugin-transform-unicode-sets-regex': 7.23.3(@babel/core@7.23.3) + '@babel/preset-modules': 0.1.6-no-external-plugins(@babel/core@7.23.3) + babel-plugin-polyfill-corejs2: 0.4.6(@babel/core@7.23.3) + babel-plugin-polyfill-corejs3: 0.8.6(@babel/core@7.23.3) + babel-plugin-polyfill-regenerator: 0.5.3(@babel/core@7.23.3) core-js-compat: 3.33.2 semver: 6.3.1 transitivePeerDependencies: - supports-color dev: true - /@babel/preset-modules/0.1.6-no-external-plugins_@babel+core@7.23.3: + /@babel/preset-modules@0.1.6-no-external-plugins(@babel/core@7.23.3): resolution: {integrity: sha512-HrcgcIESLm9aIR842yhJ5RWan/gebQUJ6E/E5+rf0y9o6oj7w0Br+sWuL6kEQ/o/AdfvR1Je9jG18/gnpwjEyA==} peerDependencies: '@babel/core': ^7.0.0-0 || ^8.0.0-0 <8.0.0 @@ -1352,7 +1401,7 @@ packages: esutils: 2.0.3 dev: true - /@babel/preset-typescript/7.23.3_@babel+core@7.23.3: + /@babel/preset-typescript@7.23.3(@babel/core@7.23.3): resolution: {integrity: sha512-17oIGVlqz6CchO9RFYn5U6ZpWRZIngayYCtrPRSgANSwC2V1Jb+iP74nVxzzXJte8b8BYxrL1yY96xfhTBrNNQ==} engines: {node: '>=6.9.0'} peerDependencies: @@ -1361,23 +1410,23 @@ packages: '@babel/core': 7.23.3 '@babel/helper-plugin-utils': 7.22.5 '@babel/helper-validator-option': 7.22.15 - '@babel/plugin-syntax-jsx': 7.23.3_@babel+core@7.23.3 - '@babel/plugin-transform-modules-commonjs': 7.23.3_@babel+core@7.23.3 - '@babel/plugin-transform-typescript': 7.23.3_@babel+core@7.23.3 + '@babel/plugin-syntax-jsx': 7.23.3(@babel/core@7.23.3) + '@babel/plugin-transform-modules-commonjs': 7.23.3(@babel/core@7.23.3) + '@babel/plugin-transform-typescript': 7.23.3(@babel/core@7.23.3) dev: true - /@babel/regjsgen/0.8.0: + /@babel/regjsgen@0.8.0: resolution: {integrity: sha512-x/rqGMdzj+fWZvCOYForTghzbtqPDZ5gPwaoNGHdgDfF2QA/XZbCBp4Moo5scrkAMPhB7z26XM/AaHuIJdgauA==} dev: true - /@babel/runtime/7.23.2: + /@babel/runtime@7.23.2: resolution: {integrity: sha512-mM8eg4yl5D6i3lu2QKPuPH4FArvJ8KhTofbE7jwMUv9KX5mBvwPAqnV3MlyBNqdp9RyRKP6Yck8TrfYrPvX3bg==} engines: {node: '>=6.9.0'} dependencies: regenerator-runtime: 0.14.0 dev: true - /@babel/template/7.22.15: + /@babel/template@7.22.15: resolution: {integrity: sha512-QPErUVm4uyJa60rkI73qneDacvdvzxshT3kksGqlGWYdOTIUOwJ7RDUL8sGqslY1uXWSL6xMFKEXDS3ox2uF0w==} engines: {node: '>=6.9.0'} dependencies: @@ -1386,7 +1435,7 @@ packages: '@babel/types': 7.23.3 dev: true - /@babel/traverse/7.23.3: + /@babel/traverse@7.23.3: resolution: {integrity: sha512-+K0yF1/9yR0oHdE0StHuEj3uTPzwwbrLGfNOndVJVV2TqA5+j3oljJUb4nmB954FLGjNem976+B+eDuLIjesiQ==} engines: {node: '>=6.9.0'} dependencies: @@ -1404,7 +1453,7 @@ packages: - supports-color dev: true - /@babel/types/7.23.3: + /@babel/types@7.23.3: resolution: {integrity: sha512-OZnvoH2l8PK5eUvEcUyCt/sXgr/h+UWpVuBbOljwcrAgUl6lpchoQ++PHGyQy1AtYnVA6CEq3y5xeEI10brpXw==} engines: {node: '>=6.9.0'} dependencies: @@ -1413,17 +1462,17 @@ packages: to-fast-properties: 2.0.0 dev: true - /@bcoe/v8-coverage/0.2.3: + /@bcoe/v8-coverage@0.2.3: resolution: {integrity: sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw==} dev: true - /@cspotcode/source-map-support/0.8.1: + /@cspotcode/source-map-support@0.8.1: resolution: {integrity: sha512-IchNf6dN4tHoMFIn/7OE8LWZ19Y6q/67Bmf6vnGREv8RSbBVb9LPJxEcnwrcwX6ixSvaiGoomAUvu4YSxXrVgw==} engines: {node: '>=12'} dependencies: '@jridgewell/trace-mapping': 0.3.9 - /@eslint-community/eslint-utils/4.4.0_eslint@8.46.0: + /@eslint-community/eslint-utils@4.4.0(eslint@8.46.0): resolution: {integrity: sha512-1/sA4dwrzBAyeUoQ6oxahHKmrZvsnLCg4RfxW3ZFGGmQkSNQPFNLV9CUEFQP1x9EYXHTo5p6xdhZM1Ne9p/AfA==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: @@ -1433,12 +1482,12 @@ packages: eslint-visitor-keys: 3.4.3 dev: true - /@eslint-community/regexpp/4.10.0: + /@eslint-community/regexpp@4.10.0: resolution: {integrity: sha512-Cu96Sd2By9mCNTx2iyKOmq10v22jUVQv0lQnlGNy16oE9589yE+QADPbrMGCkA51cKZSg3Pu/aTJVTGfL/qjUA==} engines: {node: ^12.0.0 || ^14.0.0 || >=16.0.0} dev: true - /@eslint/eslintrc/2.1.3: + /@eslint/eslintrc@2.1.3: resolution: {integrity: sha512-yZzuIG+jnVu6hNSzFEN07e8BxF3uAzYtQb6uDkaYZLo6oYZDCq454c5kB8zxnzfCYyP4MIuyBn10L0DqwujTmA==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} dependencies: @@ -1455,12 +1504,12 @@ packages: - supports-color dev: true - /@eslint/js/8.53.0: + /@eslint/js@8.53.0: resolution: {integrity: sha512-Kn7K8dx/5U6+cT1yEhpX1w4PCSg0M+XyRILPgvwcEBjerFWCwQj5sbr3/VmxqV0JGHCBCzyd6LxypEuehypY1w==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} dev: true - /@humanwhocodes/config-array/0.11.13: + /@humanwhocodes/config-array@0.11.13: resolution: {integrity: sha512-JSBDMiDKSzQVngfRjOdFXgFfklaXI4K9nLF49Auh21lmBWRLIK3+xTErTWD4KU54pb6coM6ESE7Awz/FNU3zgQ==} engines: {node: '>=10.10.0'} dependencies: @@ -1471,16 +1520,16 @@ packages: - supports-color dev: true - /@humanwhocodes/module-importer/1.0.1: + /@humanwhocodes/module-importer@1.0.1: resolution: {integrity: sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==} engines: {node: '>=12.22'} dev: true - /@humanwhocodes/object-schema/2.0.1: + /@humanwhocodes/object-schema@2.0.1: resolution: {integrity: sha512-dvuCeX5fC9dXgJn9t+X5atfmgQAzUOWqS1254Gh0m6i8wKd10ebXkfNKiRK+1GWi/yTvvLDHpoxLr0xxxeslWw==} dev: true - /@istanbuljs/load-nyc-config/1.1.0: + /@istanbuljs/load-nyc-config@1.1.0: resolution: {integrity: sha512-VjeHSlIzpv/NyD3N0YuHfXOPDIixcA1q2ZV98wsMqcYlPmv2n3Yb2lYP9XMElnaFVXg5A7YLTeLu6V84uQDjmQ==} engines: {node: '>=8'} dependencies: @@ -1491,12 +1540,12 @@ packages: resolve-from: 5.0.0 dev: true - /@istanbuljs/schema/0.1.3: + /@istanbuljs/schema@0.1.3: resolution: {integrity: sha512-ZXRY4jNvVgSVQ8DL3LTcakaAtXwTVUxE81hslsyD2AtoXW/wVob10HkOJ1X/pAlcI7D+2YoZKg5do8G/w6RYgA==} engines: {node: '>=8'} dev: true - /@jest/console/29.7.0: + /@jest/console@29.7.0: resolution: {integrity: sha512-5Ni4CU7XHQi32IJ398EEP4RrB8eV09sXP2ROqD4bksHrnTree52PsxvX8tpL8LvTZ3pFzXyPbNQReSN41CAhOg==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: @@ -1508,7 +1557,7 @@ packages: slash: 3.0.0 dev: true - /@jest/core/29.7.0_ts-node@10.9.1: + /@jest/core@29.7.0(ts-node@10.9.1): resolution: {integrity: sha512-n7aeXWKMnGtDA48y8TLWJPJmLmmZ642Ceo78cYWEpiD7FzDgmNDV/GCVRorPABdXLJZ/9wzzgZAlHjXjxDHGsg==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} peerDependencies: @@ -1529,7 +1578,7 @@ packages: exit: 0.1.2 graceful-fs: 4.2.11 jest-changed-files: 29.7.0 - jest-config: 29.7.0_lpnbhgxso4u2juc7wocetwmymy + jest-config: 29.7.0(@types/node@18.7.1)(ts-node@10.9.1) jest-haste-map: 29.7.0 jest-message-util: 29.7.0 jest-regex-util: 29.6.3 @@ -1551,7 +1600,7 @@ packages: - ts-node dev: true - /@jest/environment/29.7.0: + /@jest/environment@29.7.0: resolution: {integrity: sha512-aQIfHDq33ExsN4jP1NWGXhxgQ/wixs60gDiKO+XVMd8Mn0NWPWgc34ZQDTb2jKaUWQ7MuwoitXAsN2XVXNMpAw==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: @@ -1561,13 +1610,13 @@ packages: jest-mock: 29.7.0 dev: true - /@jest/expect-utils/29.7.0: + /@jest/expect-utils@29.7.0: resolution: {integrity: sha512-GlsNBWiFQFCVi9QVSx7f5AgMeLxe9YCCs5PuP2O2LdjDAA8Jh9eX7lA1Jq/xdXw3Wb3hyvlFNfZIfcRetSzYcA==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: jest-get-type: 29.6.3 - /@jest/expect/29.7.0: + /@jest/expect@29.7.0: resolution: {integrity: sha512-8uMeAMycttpva3P1lBHB8VciS9V0XAr3GymPpipdyQXbBcuhkLQOSe8E/p92RyAdToS6ZD1tFkX+CkhoECE0dQ==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: @@ -1577,7 +1626,7 @@ packages: - supports-color dev: true - /@jest/fake-timers/29.7.0: + /@jest/fake-timers@29.7.0: resolution: {integrity: sha512-q4DH1Ha4TTFPdxLsqDXK1d3+ioSL7yL5oCMJZgDYm6i+6CygW5E5xVr/D1HdsGxjt1ZWSfUAs9OxSB/BNelWrQ==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: @@ -1589,7 +1638,7 @@ packages: jest-util: 29.7.0 dev: true - /@jest/globals/29.7.0: + /@jest/globals@29.7.0: resolution: {integrity: sha512-mpiz3dutLbkW2MNFubUGUEVLkTGiqW6yLVTA+JbP6fI6J5iL9Y0Nlg8k95pcF8ctKwCS7WVxteBs29hhfAotzQ==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: @@ -1601,7 +1650,7 @@ packages: - supports-color dev: true - /@jest/reporters/29.7.0: + /@jest/reporters@29.7.0: resolution: {integrity: sha512-DApq0KJbJOEzAFYjHADNNxAE3KbhxQB1y5Kplb5Waqw6zVbuWatSnMjE5gs8FUgEPmNsnZA3NCWl9NG0ia04Pg==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} peerDependencies: @@ -1638,13 +1687,13 @@ packages: - supports-color dev: true - /@jest/schemas/29.6.3: + /@jest/schemas@29.6.3: resolution: {integrity: sha512-mo5j5X+jIZmJQveBKeS/clAueipV7KgiX1vMgCxam1RNYiqE1w62n0/tJJnHtjW8ZHcQco5gY85jA3mi0L+nSA==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: '@sinclair/typebox': 0.27.8 - /@jest/source-map/29.6.3: + /@jest/source-map@29.6.3: resolution: {integrity: sha512-MHjT95QuipcPrpLM+8JMSzFx6eHp5Bm+4XeFDJlwsvVBjmKNiIAvasGK2fxz2WbGRlnvqehFbh07MMa7n3YJnw==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: @@ -1653,7 +1702,7 @@ packages: graceful-fs: 4.2.11 dev: true - /@jest/test-result/29.7.0: + /@jest/test-result@29.7.0: resolution: {integrity: sha512-Fdx+tv6x1zlkJPcWXmMDAG2HBnaR9XPSd5aDWQVsfrZmLVT3lU1cwyxLgRmXR9yrq4NBoEm9BMsfgFzTQAbJYA==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: @@ -1663,7 +1712,7 @@ packages: collect-v8-coverage: 1.0.2 dev: true - /@jest/test-sequencer/29.7.0: + /@jest/test-sequencer@29.7.0: resolution: {integrity: sha512-GQwJ5WZVrKnOJuiYiAF52UNUJXgTZx1NHjFSEB0qEMmSZKAkdMoIzw/Cj6x6NF4AvV23AUqDpFzQkN/eYCYTxw==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: @@ -1673,7 +1722,7 @@ packages: slash: 3.0.0 dev: true - /@jest/transform/29.7.0: + /@jest/transform@29.7.0: resolution: {integrity: sha512-ok/BTPFzFKVMwO5eOHRrvnBVHdRy9IrsrW1GpMaQ9MCnilNLXQKmAX8s1YXDFaai9xJpac2ySzV0YeRRECr2Vw==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: @@ -1696,7 +1745,7 @@ packages: - supports-color dev: true - /@jest/types/29.6.3: + /@jest/types@29.6.3: resolution: {integrity: sha512-u3UPsIilWKOM3F9CXtrG8LEJmNxwoCQC/XVj4IKYXvvpx7QIi/Kg1LI5uDmDpKlac62NUtX7eLjRh+jVZcLOzw==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: @@ -1707,7 +1756,7 @@ packages: '@types/yargs': 17.0.31 chalk: 4.1.2 - /@jridgewell/gen-mapping/0.3.3: + /@jridgewell/gen-mapping@0.3.3: resolution: {integrity: sha512-HLhSWOLRi875zjjMG/r+Nv0oCW8umGb0BgEhyX3dDX3egwZtB8PqLnjz3yedt8R5StBrzcg4aBpnh8UA9D1BoQ==} engines: {node: '>=6.0.0'} dependencies: @@ -1716,39 +1765,39 @@ packages: '@jridgewell/trace-mapping': 0.3.20 dev: true - /@jridgewell/resolve-uri/3.1.1: + /@jridgewell/resolve-uri@3.1.1: resolution: {integrity: sha512-dSYZh7HhCDtCKm4QakX0xFpsRDqjjtZf/kjI/v3T3Nwt5r8/qz/M19F9ySyOqU94SXBmeG9ttTul+YnR4LOxFA==} engines: {node: '>=6.0.0'} - /@jridgewell/set-array/1.1.2: + /@jridgewell/set-array@1.1.2: resolution: {integrity: sha512-xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw==} engines: {node: '>=6.0.0'} dev: true - /@jridgewell/sourcemap-codec/1.4.15: + /@jridgewell/sourcemap-codec@1.4.15: resolution: {integrity: sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==} - /@jridgewell/trace-mapping/0.3.20: + /@jridgewell/trace-mapping@0.3.20: resolution: {integrity: sha512-R8LcPeWZol2zR8mmH3JeKQ6QRCFb7XgUhV9ZlGhHLGyg4wpPiPZNQOOWhFZhxKw8u//yTbNGI42Bx/3paXEQ+Q==} dependencies: '@jridgewell/resolve-uri': 3.1.1 '@jridgewell/sourcemap-codec': 1.4.15 dev: true - /@jridgewell/trace-mapping/0.3.9: + /@jridgewell/trace-mapping@0.3.9: resolution: {integrity: sha512-3Belt6tdc8bPgAtbcmdtNJlirVoTmEb5e2gC94PnkwEW9jI6CAHUeoG85tjWP5WquqfavoMtMwiG4P926ZKKuQ==} dependencies: '@jridgewell/resolve-uri': 3.1.1 '@jridgewell/sourcemap-codec': 1.4.15 - /@litentry/parachain-api/0.9.20-next.8: - resolution: {integrity: sha512-ilkKo902aSX7ouXhpwPX7D1iC0GNX/qLAYd87bC/4ziU+yXmHpnaRCTq1dXumPl2DDRkLQgPwnXkVPX2WLmPsQ==} + /@litentry/parachain-api@0.9.20-next.9: + resolution: {integrity: sha512-hDdHhsP8rwXNuXkh3EzaerxyQ4c1bt2v20+v95i6AYZFKZINQh3+s8vLBngBNivfh0+9GPtcLNzltJBfAdnwDQ==} dependencies: '@polkadot/api': 10.13.1 '@polkadot/api-augment': 10.13.1 '@polkadot/api-base': 10.13.1 '@polkadot/api-derive': 10.13.1 - '@polkadot/keyring': 12.6.2_jzs25v2gbpse74p3c5i4cryr2q + '@polkadot/keyring': 12.6.2(@polkadot/util-crypto@12.6.2)(@polkadot/util@12.6.2) '@polkadot/rpc-core': 10.13.1 '@polkadot/types': 10.13.1 '@polkadot/types-augment': 10.13.1 @@ -1757,21 +1806,21 @@ packages: '@polkadot/types-known': 10.13.1 '@polkadot/types-support': 10.13.1 '@polkadot/util': 12.6.2 - '@polkadot/util-crypto': 12.6.2_@polkadot+util@12.6.2 + '@polkadot/util-crypto': 12.6.2(@polkadot/util@12.6.2) transitivePeerDependencies: - bufferutil - supports-color - utf-8-validate dev: false - /@litentry/sidechain-api/0.9.20-next.8: + /@litentry/sidechain-api@0.9.20-next.8: resolution: {integrity: sha512-QOy9rDUZYvk2k+cIBkIOzBCEDr/ncq1Tc4NypB9+kX68d9ET9gwX1tqIX/A0HpRFh4WCuj+J2XEngFeeeB4Q8Q==} dependencies: '@polkadot/api': 10.13.1 '@polkadot/api-augment': 10.13.1 '@polkadot/api-base': 10.13.1 '@polkadot/api-derive': 10.13.1 - '@polkadot/keyring': 12.6.2_jzs25v2gbpse74p3c5i4cryr2q + '@polkadot/keyring': 12.6.2(@polkadot/util-crypto@12.6.2)(@polkadot/util@12.6.2) '@polkadot/rpc-core': 10.13.1 '@polkadot/types': 10.13.1 '@polkadot/types-augment': 10.13.1 @@ -1780,23 +1829,23 @@ packages: '@polkadot/types-known': 10.13.1 '@polkadot/types-support': 10.13.1 '@polkadot/util': 12.6.2 - '@polkadot/util-crypto': 12.6.2_@polkadot+util@12.6.2 + '@polkadot/util-crypto': 12.6.2(@polkadot/util@12.6.2) transitivePeerDependencies: - bufferutil - supports-color - utf-8-validate dev: false - /@noble/curves/1.4.0: + /@noble/curves@1.4.0: resolution: {integrity: sha512-p+4cb332SFCrReJkCYe8Xzm0OWi4Jji5jVdIZRL/PmacmDkFNw6MrrV+gGpiPxLHbV+zKFRywUWbaseT+tZRXg==} dependencies: '@noble/hashes': 1.4.0 - /@noble/hashes/1.4.0: + /@noble/hashes@1.4.0: resolution: {integrity: sha512-V1JJ1WTRUqHHrOSh597hURcMqVKVGL/ea3kv0gSnEdsEZ0/+VyPghM1lMNGc00z7CIQorSvbKpuJkxvuHbvdbg==} engines: {node: '>= 16'} - /@nodelib/fs.scandir/2.1.5: + /@nodelib/fs.scandir@2.1.5: resolution: {integrity: sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==} engines: {node: '>= 8'} dependencies: @@ -1804,12 +1853,12 @@ packages: run-parallel: 1.2.0 dev: true - /@nodelib/fs.stat/2.0.5: + /@nodelib/fs.stat@2.0.5: resolution: {integrity: sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==} engines: {node: '>= 8'} dev: true - /@nodelib/fs.walk/1.2.8: + /@nodelib/fs.walk@1.2.8: resolution: {integrity: sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==} engines: {node: '>= 8'} dependencies: @@ -1817,34 +1866,34 @@ packages: fastq: 1.15.0 dev: true - /@nrwl/devkit/16.10.0_nx@16.10.0: + /@nrwl/devkit@16.10.0(nx@16.10.0): resolution: {integrity: sha512-fRloARtsDQoQgQ7HKEy0RJiusg/HSygnmg4gX/0n/Z+SUS+4KoZzvHjXc6T5ZdEiSjvLypJ+HBM8dQzIcVACPQ==} dependencies: - '@nx/devkit': 16.10.0_nx@16.10.0 + '@nx/devkit': 16.10.0(nx@16.10.0) transitivePeerDependencies: - nx dev: true - /@nrwl/devkit/17.1.3_nx@16.10.0: + /@nrwl/devkit@17.1.3(nx@16.10.0): resolution: {integrity: sha512-8HfIY7P3yIYfQ/XKuHoq0GGLA9GpwWtBlI9kPQ0ygjuJ9BkpiGMtQvO6003zs7c6vpc2vNeG+Jmi72+EKvoN5A==} dependencies: - '@nx/devkit': 17.1.3_nx@16.10.0 + '@nx/devkit': 17.1.3(nx@16.10.0) transitivePeerDependencies: - nx dev: true - /@nrwl/devkit/17.1.3_nx@17.1.3: + /@nrwl/devkit@17.1.3(nx@17.1.3): resolution: {integrity: sha512-8HfIY7P3yIYfQ/XKuHoq0GGLA9GpwWtBlI9kPQ0ygjuJ9BkpiGMtQvO6003zs7c6vpc2vNeG+Jmi72+EKvoN5A==} dependencies: - '@nx/devkit': 17.1.3_nx@17.1.3 + '@nx/devkit': 17.1.3(nx@17.1.3) transitivePeerDependencies: - nx dev: true - /@nrwl/eslint-plugin-nx/16.10.0_6qbsrc43spalhbjihcr5z6ctli: + /@nrwl/eslint-plugin-nx@16.10.0(@swc-node/register@1.6.8)(@swc/core@1.3.99)(@types/node@18.7.1)(@typescript-eslint/parser@5.62.0)(eslint-config-prettier@8.10.0)(eslint@8.46.0)(nx@16.10.0)(typescript@5.1.6)(verdaccio@5.27.0): resolution: {integrity: sha512-w8fHXEatdPHQeP/Yompsdrgz4BJ2BSVaaaulcovzTNJ9KrCCtDyTGY7sihU7qLVcbZtUVq9xoAsSeuTQuOCTDw==} dependencies: - '@nx/eslint-plugin': 16.10.0_6qbsrc43spalhbjihcr5z6ctli + '@nx/eslint-plugin': 16.10.0(@swc-node/register@1.6.8)(@swc/core@1.3.99)(@types/node@18.7.1)(@typescript-eslint/parser@5.62.0)(eslint-config-prettier@8.10.0)(eslint@8.46.0)(nx@16.10.0)(typescript@5.1.6)(verdaccio@5.27.0) transitivePeerDependencies: - '@babel/traverse' - '@swc-node/register' @@ -1861,10 +1910,10 @@ packages: - verdaccio dev: true - /@nrwl/jest/16.10.0_563mwmm33e2steiu5nysrvzvh4: + /@nrwl/jest@16.10.0(@swc-node/register@1.6.8)(@swc/core@1.3.99)(@types/node@18.7.1)(nx@16.10.0)(ts-node@10.9.1)(typescript@5.1.6)(verdaccio@5.27.0): resolution: {integrity: sha512-hZuIK3xXh4HaE6/Ny8hGidjkJ4aLZjnQtPDxKD/423gznQe2FdHx3avoSlbOEOx5Oc6sJ9QGGZLcvckKQ5uWww==} dependencies: - '@nx/jest': 16.10.0_563mwmm33e2steiu5nysrvzvh4 + '@nx/jest': 16.10.0(@swc-node/register@1.6.8)(@swc/core@1.3.99)(@types/node@18.7.1)(nx@16.10.0)(ts-node@10.9.1)(typescript@5.1.6)(verdaccio@5.27.0) transitivePeerDependencies: - '@babel/traverse' - '@swc-node/register' @@ -1881,10 +1930,10 @@ packages: - verdaccio dev: true - /@nrwl/js/16.10.0_s7yauiyed2ygda73sqf77kqws4: + /@nrwl/js@16.10.0(@swc-node/register@1.6.8)(@swc/core@1.3.99)(@types/node@18.7.1)(nx@16.10.0)(typescript@5.1.6)(verdaccio@5.27.0): resolution: {integrity: sha512-asybPpyPrxLLDWWdYzFqbgubLmDKLEhoMz8x9MPOm3CH8v2vlIE6hD0JT19GdJArBPxRB33nhjtu8wmJGz5czw==} dependencies: - '@nx/js': 16.10.0_s7yauiyed2ygda73sqf77kqws4 + '@nx/js': 16.10.0(@swc-node/register@1.6.8)(@swc/core@1.3.99)(@types/node@18.7.1)(nx@16.10.0)(typescript@5.1.6)(verdaccio@5.27.0) transitivePeerDependencies: - '@babel/traverse' - '@swc-node/register' @@ -1898,10 +1947,10 @@ packages: - verdaccio dev: true - /@nrwl/js/17.1.3_s7yauiyed2ygda73sqf77kqws4: + /@nrwl/js@17.1.3(@swc-node/register@1.6.8)(@swc/core@1.3.99)(@types/node@18.7.1)(nx@16.10.0)(typescript@5.1.6)(verdaccio@5.27.0): resolution: {integrity: sha512-aUE6lK8+D37xNlRz7ZpFbUOwIU6Vb1aNVjXxaouFQ2kcirv2NdJVmUIpbK7zDE/pzC3YmdZADqG2UjpvSUAErw==} dependencies: - '@nx/js': 17.1.3_s7yauiyed2ygda73sqf77kqws4 + '@nx/js': 17.1.3(@swc-node/register@1.6.8)(@swc/core@1.3.99)(@types/node@18.7.1)(nx@16.10.0)(typescript@5.1.6)(verdaccio@5.27.0) transitivePeerDependencies: - '@babel/traverse' - '@swc-node/register' @@ -1915,10 +1964,10 @@ packages: - verdaccio dev: true - /@nrwl/linter/16.10.0_7q6hfv2xzzcyyldzt4gz2jeiw4: + /@nrwl/linter@16.10.0(@swc-node/register@1.6.8)(@swc/core@1.3.99)(@types/node@18.7.1)(eslint@8.46.0)(nx@16.10.0)(verdaccio@5.27.0): resolution: {integrity: sha512-XvMuTeIc2I3630iaqhlV4w3qgABQIo+kv8mT0DbT1HfjjZDm4ST8hrvkdWSf9mCl24vShNL8GDVQVNOX0bZY5A==} dependencies: - '@nx/linter': 16.10.0_7q6hfv2xzzcyyldzt4gz2jeiw4 + '@nx/linter': 16.10.0(@swc-node/register@1.6.8)(@swc/core@1.3.99)(@types/node@18.7.1)(eslint@8.46.0)(nx@16.10.0)(verdaccio@5.27.0) transitivePeerDependencies: - '@babel/traverse' - '@swc-node/register' @@ -1932,22 +1981,22 @@ packages: - verdaccio dev: true - /@nrwl/tao/16.10.0_3r3gikilagjg6w6ti3lc3btjoa: + /@nrwl/tao@16.10.0(@swc-node/register@1.6.8)(@swc/core@1.3.99): resolution: {integrity: sha512-QNAanpINbr+Pod6e1xNgFbzK1x5wmZl+jMocgiEFXZ67KHvmbD6MAQQr0MMz+GPhIu7EE4QCTLTyCEMlAG+K5Q==} hasBin: true dependencies: - nx: 16.10.0_3r3gikilagjg6w6ti3lc3btjoa + nx: 16.10.0(@swc-node/register@1.6.8)(@swc/core@1.3.99) tslib: 2.6.2 transitivePeerDependencies: - '@swc-node/register' - '@swc/core' - debug - /@nrwl/tao/17.1.3_3r3gikilagjg6w6ti3lc3btjoa: + /@nrwl/tao@17.1.3(@swc-node/register@1.6.8)(@swc/core@1.3.99): resolution: {integrity: sha512-9YpfEkUpVqOweqgQvMDcWApNx4jhCqBNH5IByZj302Enp3TLnQSvhuX5Dfr8hNQRQokIpEn6tW8SGTctTM5LXw==} hasBin: true dependencies: - nx: 17.1.3_3r3gikilagjg6w6ti3lc3btjoa + nx: 17.1.3(@swc-node/register@1.6.8)(@swc/core@1.3.99) tslib: 2.6.2 transitivePeerDependencies: - '@swc-node/register' @@ -1955,72 +2004,72 @@ packages: - debug dev: true - /@nrwl/workspace/16.10.0_3r3gikilagjg6w6ti3lc3btjoa: + /@nrwl/workspace@16.10.0(@swc-node/register@1.6.8)(@swc/core@1.3.99): resolution: {integrity: sha512-fZeNxhFs/2cm326NebfJIgSI3W4KZN94WGS46wlIBrUUGP5/vwHYsi09Kx6sG1kRkAuZVtgJ33uU2F6xcAWzUA==} dependencies: - '@nx/workspace': 16.10.0_3r3gikilagjg6w6ti3lc3btjoa + '@nx/workspace': 16.10.0(@swc-node/register@1.6.8)(@swc/core@1.3.99) transitivePeerDependencies: - '@swc-node/register' - '@swc/core' - debug dev: true - /@nrwl/workspace/17.1.3_3r3gikilagjg6w6ti3lc3btjoa: + /@nrwl/workspace@17.1.3(@swc-node/register@1.6.8)(@swc/core@1.3.99): resolution: {integrity: sha512-V5nLZ58DIZLlJQASYHKo9mUcdm2FbzjJeoKwi0X3VXUvU1ftforFxNIQ7BqS0qjZJKKHjpgZ+cAH0xeVysS5kA==} dependencies: - '@nx/workspace': 17.1.3_3r3gikilagjg6w6ti3lc3btjoa + '@nx/workspace': 17.1.3(@swc-node/register@1.6.8)(@swc/core@1.3.99) transitivePeerDependencies: - '@swc-node/register' - '@swc/core' - debug dev: true - /@nx/devkit/16.10.0_nx@16.10.0: + /@nx/devkit@16.10.0(nx@16.10.0): resolution: {integrity: sha512-IvKQqRJFDDiaj33SPfGd3ckNHhHi6ceEoqCbAP4UuMXOPPVOX6H0KVk+9tknkPb48B7jWIw6/AgOeWkBxPRO5w==} peerDependencies: nx: '>= 15 <= 17' dependencies: - '@nrwl/devkit': 16.10.0_nx@16.10.0 + '@nrwl/devkit': 16.10.0(nx@16.10.0) ejs: 3.1.9 enquirer: 2.3.6 ignore: 5.2.4 - nx: 16.10.0_3r3gikilagjg6w6ti3lc3btjoa + nx: 16.10.0(@swc-node/register@1.6.8)(@swc/core@1.3.99) semver: 7.5.3 tmp: 0.2.1 tslib: 2.6.2 dev: true - /@nx/devkit/17.1.3_nx@16.10.0: + /@nx/devkit@17.1.3(nx@16.10.0): resolution: {integrity: sha512-1Is7ooovg3kdGJ5VdkePulRUDaMYLLULr+LwXgx7oHSW7AY2iCmhkoOE/vSR7DJ6rkey2gYx7eT1IoRoORiIaQ==} peerDependencies: nx: '>= 16 <= 18' dependencies: - '@nrwl/devkit': 17.1.3_nx@16.10.0 + '@nrwl/devkit': 17.1.3(nx@16.10.0) ejs: 3.1.9 enquirer: 2.3.6 ignore: 5.2.4 - nx: 16.10.0_3r3gikilagjg6w6ti3lc3btjoa + nx: 16.10.0(@swc-node/register@1.6.8)(@swc/core@1.3.99) semver: 7.5.3 tmp: 0.2.1 tslib: 2.6.2 dev: true - /@nx/devkit/17.1.3_nx@17.1.3: + /@nx/devkit@17.1.3(nx@17.1.3): resolution: {integrity: sha512-1Is7ooovg3kdGJ5VdkePulRUDaMYLLULr+LwXgx7oHSW7AY2iCmhkoOE/vSR7DJ6rkey2gYx7eT1IoRoORiIaQ==} peerDependencies: nx: '>= 16 <= 18' dependencies: - '@nrwl/devkit': 17.1.3_nx@17.1.3 + '@nrwl/devkit': 17.1.3(nx@17.1.3) ejs: 3.1.9 enquirer: 2.3.6 ignore: 5.2.4 - nx: 17.1.3_3r3gikilagjg6w6ti3lc3btjoa + nx: 17.1.3(@swc-node/register@1.6.8)(@swc/core@1.3.99) semver: 7.5.3 tmp: 0.2.1 tslib: 2.6.2 dev: true - /@nx/eslint-plugin/16.10.0_6qbsrc43spalhbjihcr5z6ctli: + /@nx/eslint-plugin@16.10.0(@swc-node/register@1.6.8)(@swc/core@1.3.99)(@types/node@18.7.1)(@typescript-eslint/parser@5.62.0)(eslint-config-prettier@8.10.0)(eslint@8.46.0)(nx@16.10.0)(typescript@5.1.6)(verdaccio@5.27.0): resolution: {integrity: sha512-fdOlCrSJK6HfCs+FVXUxzS5gobnGymTU85B3vXPYkVpJwKmq9voX7HBhx9euScRGgXdO9335DIixc/QV6zGpKA==} peerDependencies: '@typescript-eslint/parser': ^5.60.1 @@ -2029,15 +2078,15 @@ packages: eslint-config-prettier: optional: true dependencies: - '@nrwl/eslint-plugin-nx': 16.10.0_6qbsrc43spalhbjihcr5z6ctli - '@nx/devkit': 16.10.0_nx@16.10.0 - '@nx/js': 16.10.0_s7yauiyed2ygda73sqf77kqws4 - '@typescript-eslint/parser': 5.62.0_7haavtekmro7ptbnqmctjaodju - '@typescript-eslint/type-utils': 5.62.0_7haavtekmro7ptbnqmctjaodju - '@typescript-eslint/utils': 5.62.0_7haavtekmro7ptbnqmctjaodju + '@nrwl/eslint-plugin-nx': 16.10.0(@swc-node/register@1.6.8)(@swc/core@1.3.99)(@types/node@18.7.1)(@typescript-eslint/parser@5.62.0)(eslint-config-prettier@8.10.0)(eslint@8.46.0)(nx@16.10.0)(typescript@5.1.6)(verdaccio@5.27.0) + '@nx/devkit': 16.10.0(nx@16.10.0) + '@nx/js': 16.10.0(@swc-node/register@1.6.8)(@swc/core@1.3.99)(@types/node@18.7.1)(nx@16.10.0)(typescript@5.1.6)(verdaccio@5.27.0) + '@typescript-eslint/parser': 5.62.0(eslint@8.46.0)(typescript@5.1.6) + '@typescript-eslint/type-utils': 5.62.0(eslint@8.46.0)(typescript@5.1.6) + '@typescript-eslint/utils': 5.62.0(eslint@8.46.0)(typescript@5.1.6) chalk: 4.1.2 confusing-browser-globals: 1.0.11 - eslint-config-prettier: 8.10.0_eslint@8.46.0 + eslint-config-prettier: 8.10.0(eslint@8.46.0) jsonc-eslint-parser: 2.4.0 semver: 7.5.3 tslib: 2.6.2 @@ -2055,18 +2104,18 @@ packages: - verdaccio dev: true - /@nx/jest/16.10.0_563mwmm33e2steiu5nysrvzvh4: + /@nx/jest@16.10.0(@swc-node/register@1.6.8)(@swc/core@1.3.99)(@types/node@18.7.1)(nx@16.10.0)(ts-node@10.9.1)(typescript@5.1.6)(verdaccio@5.27.0): resolution: {integrity: sha512-QseeLjDrl4c9q9Dd/057SXYqd47JVLhD2VQlQDraYwjsHz3lWkzlGaaHy0ZrVu8LSzY7lUUhJMPyYO3qo8wT6A==} dependencies: '@jest/reporters': 29.7.0 '@jest/test-result': 29.7.0 - '@nrwl/jest': 16.10.0_563mwmm33e2steiu5nysrvzvh4 - '@nx/devkit': 16.10.0_nx@16.10.0 - '@nx/js': 16.10.0_s7yauiyed2ygda73sqf77kqws4 - '@phenomnomnominal/tsquery': 5.0.1_typescript@5.1.6 + '@nrwl/jest': 16.10.0(@swc-node/register@1.6.8)(@swc/core@1.3.99)(@types/node@18.7.1)(nx@16.10.0)(ts-node@10.9.1)(typescript@5.1.6)(verdaccio@5.27.0) + '@nx/devkit': 16.10.0(nx@16.10.0) + '@nx/js': 16.10.0(@swc-node/register@1.6.8)(@swc/core@1.3.99)(@types/node@18.7.1)(nx@16.10.0)(typescript@5.1.6)(verdaccio@5.27.0) + '@phenomnomnominal/tsquery': 5.0.1(typescript@5.1.6) chalk: 4.1.2 identity-obj-proxy: 3.0.0 - jest-config: 29.7.0_lpnbhgxso4u2juc7wocetwmymy + jest-config: 29.7.0(@types/node@18.7.1)(ts-node@10.9.1) jest-resolve: 29.7.0 jest-util: 29.7.0 resolve.exports: 1.1.0 @@ -2087,7 +2136,7 @@ packages: - verdaccio dev: true - /@nx/js/16.10.0_s7yauiyed2ygda73sqf77kqws4: + /@nx/js@16.10.0(@swc-node/register@1.6.8)(@swc/core@1.3.99)(@types/node@18.7.1)(nx@16.10.0)(typescript@5.1.6)(verdaccio@5.27.0): resolution: {integrity: sha512-27AH0/+XTMzOxVS6oV8Zl7/Rr1UDMYsnCVqoCU9CXp087uxcD4VnBOEjsEUlJKh1RdwGE3K0hBkk7NC1LP+vYQ==} peerDependencies: verdaccio: ^5.0.4 @@ -2096,19 +2145,19 @@ packages: optional: true dependencies: '@babel/core': 7.23.3 - '@babel/plugin-proposal-class-properties': 7.18.6_@babel+core@7.23.3 - '@babel/plugin-proposal-decorators': 7.23.3_@babel+core@7.23.3 - '@babel/plugin-transform-runtime': 7.23.3_@babel+core@7.23.3 - '@babel/preset-env': 7.23.3_@babel+core@7.23.3 - '@babel/preset-typescript': 7.23.3_@babel+core@7.23.3 + '@babel/plugin-proposal-class-properties': 7.18.6(@babel/core@7.23.3) + '@babel/plugin-proposal-decorators': 7.23.3(@babel/core@7.23.3) + '@babel/plugin-transform-runtime': 7.23.3(@babel/core@7.23.3) + '@babel/preset-env': 7.23.3(@babel/core@7.23.3) + '@babel/preset-typescript': 7.23.3(@babel/core@7.23.3) '@babel/runtime': 7.23.2 - '@nrwl/js': 16.10.0_s7yauiyed2ygda73sqf77kqws4 - '@nx/devkit': 16.10.0_nx@16.10.0 - '@nx/workspace': 16.10.0_3r3gikilagjg6w6ti3lc3btjoa - '@phenomnomnominal/tsquery': 5.0.1_typescript@5.1.6 - babel-plugin-const-enum: 1.2.0_@babel+core@7.23.3 + '@nrwl/js': 16.10.0(@swc-node/register@1.6.8)(@swc/core@1.3.99)(@types/node@18.7.1)(nx@16.10.0)(typescript@5.1.6)(verdaccio@5.27.0) + '@nx/devkit': 16.10.0(nx@16.10.0) + '@nx/workspace': 16.10.0(@swc-node/register@1.6.8)(@swc/core@1.3.99) + '@phenomnomnominal/tsquery': 5.0.1(typescript@5.1.6) + babel-plugin-const-enum: 1.2.0(@babel/core@7.23.3) babel-plugin-macros: 2.8.0 - babel-plugin-transform-typescript-metadata: 0.3.2_@babel+core@7.23.3 + babel-plugin-transform-typescript-metadata: 0.3.2(@babel/core@7.23.3) chalk: 4.1.2 columnify: 1.6.0 detect-port: 1.5.1 @@ -2122,10 +2171,10 @@ packages: ora: 5.3.0 semver: 7.5.3 source-map-support: 0.5.19 - ts-node: 10.9.1_yh2n565uebuxffae3xow4xsrjq + ts-node: 10.9.1(@swc/core@1.3.99)(@types/node@18.7.1)(typescript@5.1.6) tsconfig-paths: 4.2.0 tslib: 2.6.2 - verdaccio: 5.27.0_typanion@3.14.0 + verdaccio: 5.27.0(typanion@3.14.0) transitivePeerDependencies: - '@babel/traverse' - '@swc-node/register' @@ -2138,7 +2187,7 @@ packages: - typescript dev: true - /@nx/js/17.1.3_s7yauiyed2ygda73sqf77kqws4: + /@nx/js@17.1.3(@swc-node/register@1.6.8)(@swc/core@1.3.99)(@types/node@18.7.1)(nx@16.10.0)(typescript@5.1.6)(verdaccio@5.27.0): resolution: {integrity: sha512-FCvIjTtuVYctRJw4S+Sp0ZCPeiwNxOR++CsLciWAogO81k3k6ajMIfjn0Xmwuq/FKWK8thtjkk9MfKjTDuxFkg==} peerDependencies: verdaccio: ^5.0.4 @@ -2147,19 +2196,19 @@ packages: optional: true dependencies: '@babel/core': 7.23.3 - '@babel/plugin-proposal-decorators': 7.23.3_@babel+core@7.23.3 - '@babel/plugin-transform-class-properties': 7.23.3_@babel+core@7.23.3 - '@babel/plugin-transform-runtime': 7.23.3_@babel+core@7.23.3 - '@babel/preset-env': 7.23.3_@babel+core@7.23.3 - '@babel/preset-typescript': 7.23.3_@babel+core@7.23.3 + '@babel/plugin-proposal-decorators': 7.23.3(@babel/core@7.23.3) + '@babel/plugin-transform-class-properties': 7.23.3(@babel/core@7.23.3) + '@babel/plugin-transform-runtime': 7.23.3(@babel/core@7.23.3) + '@babel/preset-env': 7.23.3(@babel/core@7.23.3) + '@babel/preset-typescript': 7.23.3(@babel/core@7.23.3) '@babel/runtime': 7.23.2 - '@nrwl/js': 17.1.3_s7yauiyed2ygda73sqf77kqws4 - '@nx/devkit': 17.1.3_nx@16.10.0 - '@nx/workspace': 17.1.3_3r3gikilagjg6w6ti3lc3btjoa - '@phenomnomnominal/tsquery': 5.0.1_typescript@5.1.6 - babel-plugin-const-enum: 1.2.0_@babel+core@7.23.3 + '@nrwl/js': 17.1.3(@swc-node/register@1.6.8)(@swc/core@1.3.99)(@types/node@18.7.1)(nx@16.10.0)(typescript@5.1.6)(verdaccio@5.27.0) + '@nx/devkit': 17.1.3(nx@16.10.0) + '@nx/workspace': 17.1.3(@swc-node/register@1.6.8)(@swc/core@1.3.99) + '@phenomnomnominal/tsquery': 5.0.1(typescript@5.1.6) + babel-plugin-const-enum: 1.2.0(@babel/core@7.23.3) babel-plugin-macros: 2.8.0 - babel-plugin-transform-typescript-metadata: 0.3.2_@babel+core@7.23.3 + babel-plugin-transform-typescript-metadata: 0.3.2(@babel/core@7.23.3) chalk: 4.1.2 columnify: 1.6.0 detect-port: 1.5.1 @@ -2173,10 +2222,10 @@ packages: ora: 5.3.0 semver: 7.5.3 source-map-support: 0.5.19 - ts-node: 10.9.1_yh2n565uebuxffae3xow4xsrjq + ts-node: 10.9.1(@swc/core@1.3.99)(@types/node@18.7.1)(typescript@5.1.6) tsconfig-paths: 4.2.0 tslib: 2.6.2 - verdaccio: 5.27.0_typanion@3.14.0 + verdaccio: 5.27.0(typanion@3.14.0) transitivePeerDependencies: - '@babel/traverse' - '@swc-node/register' @@ -2189,7 +2238,7 @@ packages: - typescript dev: true - /@nx/linter/16.10.0_7q6hfv2xzzcyyldzt4gz2jeiw4: + /@nx/linter@16.10.0(@swc-node/register@1.6.8)(@swc/core@1.3.99)(@types/node@18.7.1)(eslint@8.46.0)(nx@16.10.0)(verdaccio@5.27.0): resolution: {integrity: sha512-G6XBfuMHNHoJDc4n2Gip4fsa9KssT91V5PF2Rd4hILkg4YU8B8mlmHN71stpzwbEyUJtyhyJc5SGgVLrSpRQew==} peerDependencies: eslint: ^8.0.0 @@ -2197,10 +2246,10 @@ packages: eslint: optional: true dependencies: - '@nrwl/linter': 16.10.0_7q6hfv2xzzcyyldzt4gz2jeiw4 - '@nx/devkit': 16.10.0_nx@16.10.0 - '@nx/js': 16.10.0_s7yauiyed2ygda73sqf77kqws4 - '@phenomnomnominal/tsquery': 5.0.1_typescript@5.1.6 + '@nrwl/linter': 16.10.0(@swc-node/register@1.6.8)(@swc/core@1.3.99)(@types/node@18.7.1)(eslint@8.46.0)(nx@16.10.0)(verdaccio@5.27.0) + '@nx/devkit': 16.10.0(nx@16.10.0) + '@nx/js': 16.10.0(@swc-node/register@1.6.8)(@swc/core@1.3.99)(@types/node@18.7.1)(nx@16.10.0)(typescript@5.1.6)(verdaccio@5.27.0) + '@phenomnomnominal/tsquery': 5.0.1(typescript@5.1.6) eslint: 8.46.0 tmp: 0.2.1 tslib: 2.6.2 @@ -2217,7 +2266,7 @@ packages: - verdaccio dev: true - /@nx/nx-darwin-arm64/16.10.0: + /@nx/nx-darwin-arm64@16.10.0: resolution: {integrity: sha512-YF+MIpeuwFkyvM5OwgY/rTNRpgVAI/YiR0yTYCZR+X3AAvP775IVlusNgQ3oedTBRUzyRnI4Tknj1WniENFsvQ==} engines: {node: '>= 10'} cpu: [arm64] @@ -2225,7 +2274,7 @@ packages: requiresBuild: true optional: true - /@nx/nx-darwin-arm64/17.1.3: + /@nx/nx-darwin-arm64@17.1.3: resolution: {integrity: sha512-f4qLa0y3C4uuhYKgq+MU892WaQvtvmHqrEhHINUOxYXNiLy2sgyJPW0mOZvzXtC4dPaUmiVaFP5RMVzc8Lxhtg==} engines: {node: '>= 10'} cpu: [arm64] @@ -2234,7 +2283,7 @@ packages: dev: true optional: true - /@nx/nx-darwin-x64/16.10.0: + /@nx/nx-darwin-x64@16.10.0: resolution: {integrity: sha512-ypi6YxwXgb0kg2ixKXE3pwf5myVNUgWf1CsV5OzVccCM8NzheMO51KDXTDmEpXdzUsfT0AkO1sk5GZeCjhVONg==} engines: {node: '>= 10'} cpu: [x64] @@ -2242,7 +2291,7 @@ packages: requiresBuild: true optional: true - /@nx/nx-darwin-x64/17.1.3: + /@nx/nx-darwin-x64@17.1.3: resolution: {integrity: sha512-kh76ZjqkLeQUIAfTa9G/DFFf+e1sZ5ipDzk7zFGhZ2k68PoQoFdsFOO3C513JmuEdavspts6Hkifsqh61TaE+A==} engines: {node: '>= 10'} cpu: [x64] @@ -2251,7 +2300,7 @@ packages: dev: true optional: true - /@nx/nx-freebsd-x64/16.10.0: + /@nx/nx-freebsd-x64@16.10.0: resolution: {integrity: sha512-UeEYFDmdbbDkTQamqvtU8ibgu5jQLgFF1ruNb/U4Ywvwutw2d4ruOMl2e0u9hiNja9NFFAnDbvzrDcMo7jYqYw==} engines: {node: '>= 10'} cpu: [x64] @@ -2259,7 +2308,7 @@ packages: requiresBuild: true optional: true - /@nx/nx-freebsd-x64/17.1.3: + /@nx/nx-freebsd-x64@17.1.3: resolution: {integrity: sha512-CRuVL5ZSLb+Gc8vwMUUe9Pl/1Z26YtXMKTahBMQh2dac63vzLgzqIV4c66aduUl1x2M0kGYBSIIRG9z0/BgWeg==} engines: {node: '>= 10'} cpu: [x64] @@ -2268,7 +2317,7 @@ packages: dev: true optional: true - /@nx/nx-linux-arm-gnueabihf/16.10.0: + /@nx/nx-linux-arm-gnueabihf@16.10.0: resolution: {integrity: sha512-WV3XUC2DB6/+bz1sx+d1Ai9q2Cdr+kTZRN50SOkfmZUQyEBaF6DRYpx/a4ahhxH3ktpNfyY8Maa9OEYxGCBkQA==} engines: {node: '>= 10'} cpu: [arm] @@ -2276,7 +2325,7 @@ packages: requiresBuild: true optional: true - /@nx/nx-linux-arm-gnueabihf/17.1.3: + /@nx/nx-linux-arm-gnueabihf@17.1.3: resolution: {integrity: sha512-KDBmd5tSrg93g/oij/eGW4yeVNVK3DBIM4VYAS2vtkIgVOGoqcQ+SEIeMK3nMUJP9jGyblt3QNj5ZsJBtScwQw==} engines: {node: '>= 10'} cpu: [arm] @@ -2285,7 +2334,7 @@ packages: dev: true optional: true - /@nx/nx-linux-arm64-gnu/16.10.0: + /@nx/nx-linux-arm64-gnu@16.10.0: resolution: {integrity: sha512-aWIkOUw995V3ItfpAi5FuxQ+1e9EWLS1cjWM1jmeuo+5WtaKToJn5itgQOkvSlPz+HSLgM3VfXMvOFALNk125g==} engines: {node: '>= 10'} cpu: [arm64] @@ -2293,7 +2342,7 @@ packages: requiresBuild: true optional: true - /@nx/nx-linux-arm64-gnu/17.1.3: + /@nx/nx-linux-arm64-gnu@17.1.3: resolution: {integrity: sha512-W2tNL/7sIwoQKLmuy68Usd6TZzIZvxZt4UE30kDwGc2RSap6RCHAvDbzSxtW+L4+deC9UxX0Tty0VuW+J8FjSg==} engines: {node: '>= 10'} cpu: [arm64] @@ -2302,7 +2351,7 @@ packages: dev: true optional: true - /@nx/nx-linux-arm64-musl/16.10.0: + /@nx/nx-linux-arm64-musl@16.10.0: resolution: {integrity: sha512-uO6Gg+irqpVcCKMcEPIQcTFZ+tDI02AZkqkP7koQAjniLEappd8DnUBSQdcn53T086pHpdc264X/ZEpXFfrKWQ==} engines: {node: '>= 10'} cpu: [arm64] @@ -2310,7 +2359,7 @@ packages: requiresBuild: true optional: true - /@nx/nx-linux-arm64-musl/17.1.3: + /@nx/nx-linux-arm64-musl@17.1.3: resolution: {integrity: sha512-Oto3gkLd7yweuVUCsSHwm4JkAIbcxpPJP0ycRHI/PRHPMIOPiMX8r651QM1amMyKAbJtAe047nyb9Sh1X0FA4A==} engines: {node: '>= 10'} cpu: [arm64] @@ -2319,7 +2368,7 @@ packages: dev: true optional: true - /@nx/nx-linux-x64-gnu/16.10.0: + /@nx/nx-linux-x64-gnu@16.10.0: resolution: {integrity: sha512-134PW/u/arNFAQKpqMJniC7irbChMPz+W+qtyKPAUXE0XFKPa7c1GtlI/wK2dvP9qJDZ6bKf0KtA0U/m2HMUOA==} engines: {node: '>= 10'} cpu: [x64] @@ -2327,7 +2376,7 @@ packages: requiresBuild: true optional: true - /@nx/nx-linux-x64-gnu/17.1.3: + /@nx/nx-linux-x64-gnu@17.1.3: resolution: {integrity: sha512-pJS994sa5PBPFak93RydTB9KdEmiVb3rgiSB7PDBegphERbzHEB77B7G8M5TZ62dGlMdplIEKmdhY5XNqeAf9A==} engines: {node: '>= 10'} cpu: [x64] @@ -2336,7 +2385,7 @@ packages: dev: true optional: true - /@nx/nx-linux-x64-musl/16.10.0: + /@nx/nx-linux-x64-musl@16.10.0: resolution: {integrity: sha512-q8sINYLdIJxK/iUx9vRk5jWAWb/2O0PAbOJFwv4qkxBv4rLoN7y+otgCZ5v0xfx/zztFgk/oNY4lg5xYjIso2Q==} engines: {node: '>= 10'} cpu: [x64] @@ -2344,7 +2393,7 @@ packages: requiresBuild: true optional: true - /@nx/nx-linux-x64-musl/17.1.3: + /@nx/nx-linux-x64-musl@17.1.3: resolution: {integrity: sha512-4Hcx5Fg/88jV+bcTr6P0dM4unXNvKgrGJe3oK9/sgEhiW6pD2UAFjv16CCSRcWhDUAzUDqcwnD2fgg+vnAJG6g==} engines: {node: '>= 10'} cpu: [x64] @@ -2353,7 +2402,7 @@ packages: dev: true optional: true - /@nx/nx-win32-arm64-msvc/16.10.0: + /@nx/nx-win32-arm64-msvc@16.10.0: resolution: {integrity: sha512-moJkL9kcqxUdJSRpG7dET3UeLIciwrfP08mzBQ12ewo8K8FzxU8ZUsTIVVdNrwt01CXOdXoweGfdQLjJ4qTURA==} engines: {node: '>= 10'} cpu: [arm64] @@ -2361,7 +2410,7 @@ packages: requiresBuild: true optional: true - /@nx/nx-win32-arm64-msvc/17.1.3: + /@nx/nx-win32-arm64-msvc@17.1.3: resolution: {integrity: sha512-dUasEuskmDxUL36XA0GZqSb9233suE4wKhxrMobyFBzHUZ2tq/unzOpPjYfqDBie4QIvF8tEpAjQsLds8LWgbw==} engines: {node: '>= 10'} cpu: [arm64] @@ -2370,7 +2419,7 @@ packages: dev: true optional: true - /@nx/nx-win32-x64-msvc/16.10.0: + /@nx/nx-win32-x64-msvc@16.10.0: resolution: {integrity: sha512-5iV2NKZnzxJwZZ4DM5JVbRG/nkhAbzEskKaLBB82PmYGKzaDHuMHP1lcPoD/rtYMlowZgNA/RQndfKvPBPwmXA==} engines: {node: '>= 10'} cpu: [x64] @@ -2378,7 +2427,7 @@ packages: requiresBuild: true optional: true - /@nx/nx-win32-x64-msvc/17.1.3: + /@nx/nx-win32-x64-msvc@17.1.3: resolution: {integrity: sha512-eTuTpBHFvA5NFJh/iosmqCL4JOAjDrwXLSMgfKrZKjiApHMG1T/5Hb+PrsNpt+WnGp94ur7c4Dtx4xD5vlpAEw==} engines: {node: '>= 10'} cpu: [x64] @@ -2387,15 +2436,15 @@ packages: dev: true optional: true - /@nx/workspace/16.10.0_3r3gikilagjg6w6ti3lc3btjoa: + /@nx/workspace@16.10.0(@swc-node/register@1.6.8)(@swc/core@1.3.99): resolution: {integrity: sha512-95Eq36bzq2hb095Zvg+Ru8o9oIeOE62tNGGpohBkZPKoK2CUTYEq0AZtdj1suXS82ukCFCyyZ/c/fwxL62HRZA==} dependencies: - '@nrwl/workspace': 16.10.0_3r3gikilagjg6w6ti3lc3btjoa - '@nx/devkit': 16.10.0_nx@16.10.0 + '@nrwl/workspace': 16.10.0(@swc-node/register@1.6.8)(@swc/core@1.3.99) + '@nx/devkit': 16.10.0(nx@16.10.0) chalk: 4.1.2 enquirer: 2.3.6 ignore: 5.2.4 - nx: 16.10.0_3r3gikilagjg6w6ti3lc3btjoa + nx: 16.10.0(@swc-node/register@1.6.8)(@swc/core@1.3.99) rxjs: 7.8.1 tslib: 2.6.2 yargs-parser: 21.1.1 @@ -2405,14 +2454,14 @@ packages: - debug dev: true - /@nx/workspace/17.1.3_3r3gikilagjg6w6ti3lc3btjoa: + /@nx/workspace@17.1.3(@swc-node/register@1.6.8)(@swc/core@1.3.99): resolution: {integrity: sha512-Je9nml9NJZJ0Ga70njK4N8KNSP7MnlxiVlosMzBAWDGrgnW+A403nae9pstEC2uGKpce2T7jBqFewAy+3U6JbA==} dependencies: - '@nrwl/workspace': 17.1.3_3r3gikilagjg6w6ti3lc3btjoa - '@nx/devkit': 17.1.3_nx@17.1.3 + '@nrwl/workspace': 17.1.3(@swc-node/register@1.6.8)(@swc/core@1.3.99) + '@nx/devkit': 17.1.3(nx@17.1.3) chalk: 4.1.2 enquirer: 2.3.6 - nx: 17.1.3_3r3gikilagjg6w6ti3lc3btjoa + nx: 17.1.3(@swc-node/register@1.6.8)(@swc/core@1.3.99) tslib: 2.6.2 yargs-parser: 21.1.1 transitivePeerDependencies: @@ -2421,7 +2470,7 @@ packages: - debug dev: true - /@parcel/watcher/2.0.4: + /@parcel/watcher@2.0.4: resolution: {integrity: sha512-cTDi+FUDBIUOBKEtj+nhiJ71AZVlkAsQFuGQTun5tV9mwQBQgZvhCzG+URPQc8myeN32yRVZEfVAPCs1RW+Jvg==} engines: {node: '>= 10.0.0'} requiresBuild: true @@ -2429,7 +2478,7 @@ packages: node-addon-api: 3.2.1 node-gyp-build: 4.6.1 - /@phenomnomnominal/tsquery/5.0.1_typescript@5.1.6: + /@phenomnomnominal/tsquery@5.0.1(typescript@5.1.6): resolution: {integrity: sha512-3nVv+e2FQwsW8Aw6qTU6f+1rfcJ3hrcnvH/mu9i8YhxO+9sqbOfpL8m6PbET5+xKOlz/VSbp0RoYWYCtIsnmuA==} peerDependencies: typescript: ^3 || ^4 || ^5 @@ -2438,8 +2487,9 @@ packages: typescript: 5.1.6 dev: true - /@polkadot-api/client/0.0.1-492c132563ea6b40ae1fc5470dec4cd18768d182.1.0_rxjs@7.8.1: + /@polkadot-api/client@0.0.1-492c132563ea6b40ae1fc5470dec4cd18768d182.1.0(rxjs@7.8.1): resolution: {integrity: sha512-0fqK6pUKcGHSG2pBvY+gfSS+1mMdjd/qRygAcKI5d05tKsnZLRnmhb9laDguKmGEIB0Bz9vQqNK3gIN/cfvVwg==} + requiresBuild: true peerDependencies: rxjs: '>=7.8.0' dependencies: @@ -2450,23 +2500,27 @@ packages: rxjs: 7.8.1 optional: true - /@polkadot-api/json-rpc-provider-proxy/0.0.1-492c132563ea6b40ae1fc5470dec4cd18768d182.1.0: + /@polkadot-api/json-rpc-provider-proxy@0.0.1-492c132563ea6b40ae1fc5470dec4cd18768d182.1.0: resolution: {integrity: sha512-0hZ8vtjcsyCX8AyqP2sqUHa1TFFfxGWmlXJkit0Nqp9b32MwZqn5eaUAiV2rNuEpoglKOdKnkGtUF8t5MoodKw==} + requiresBuild: true optional: true - /@polkadot-api/json-rpc-provider/0.0.1-492c132563ea6b40ae1fc5470dec4cd18768d182.1.0: + /@polkadot-api/json-rpc-provider@0.0.1-492c132563ea6b40ae1fc5470dec4cd18768d182.1.0: resolution: {integrity: sha512-EaUS9Fc3wsiUr6ZS43PQqaRScW7kM6DYbuM/ou0aYjm8N9MBqgDbGm2oL6RE1vAVmOfEuHcXZuZkhzWtyvQUtA==} + requiresBuild: true optional: true - /@polkadot-api/metadata-builders/0.0.1-492c132563ea6b40ae1fc5470dec4cd18768d182.1.0: + /@polkadot-api/metadata-builders@0.0.1-492c132563ea6b40ae1fc5470dec4cd18768d182.1.0: resolution: {integrity: sha512-BD7rruxChL1VXt0icC2gD45OtT9ofJlql0qIllHSRYgama1CR2Owt+ApInQxB+lWqM+xNOznZRpj8CXNDvKIMg==} + requiresBuild: true dependencies: '@polkadot-api/substrate-bindings': 0.0.1-492c132563ea6b40ae1fc5470dec4cd18768d182.1.0 '@polkadot-api/utils': 0.0.1-492c132563ea6b40ae1fc5470dec4cd18768d182.1.0 optional: true - /@polkadot-api/substrate-bindings/0.0.1-492c132563ea6b40ae1fc5470dec4cd18768d182.1.0: + /@polkadot-api/substrate-bindings@0.0.1-492c132563ea6b40ae1fc5470dec4cd18768d182.1.0: resolution: {integrity: sha512-N4vdrZopbsw8k57uG58ofO7nLXM4Ai7835XqakN27MkjXMp5H830A1KJE0L9sGQR7ukOCDEIHHcwXVrzmJ/PBg==} + requiresBuild: true dependencies: '@noble/hashes': 1.4.0 '@polkadot-api/utils': 0.0.1-492c132563ea6b40ae1fc5470dec4cd18768d182.1.0 @@ -2474,15 +2528,17 @@ packages: scale-ts: 1.6.0 optional: true - /@polkadot-api/substrate-client/0.0.1-492c132563ea6b40ae1fc5470dec4cd18768d182.1.0: + /@polkadot-api/substrate-client@0.0.1-492c132563ea6b40ae1fc5470dec4cd18768d182.1.0: resolution: {integrity: sha512-lcdvd2ssUmB1CPzF8s2dnNOqbrDa+nxaaGbuts+Vo8yjgSKwds2Lo7Oq+imZN4VKW7t9+uaVcKFLMF7PdH0RWw==} + requiresBuild: true optional: true - /@polkadot-api/utils/0.0.1-492c132563ea6b40ae1fc5470dec4cd18768d182.1.0: + /@polkadot-api/utils@0.0.1-492c132563ea6b40ae1fc5470dec4cd18768d182.1.0: resolution: {integrity: sha512-0CYaCjfLQJTCRCiYvZ81OncHXEKPzAexCMoVloR+v2nl/O2JRya/361MtPkeNLC6XBoaEgLAG9pWQpH3WePzsw==} + requiresBuild: true optional: true - /@polkadot/api-augment/10.13.1: + /@polkadot/api-augment@10.13.1: resolution: {integrity: sha512-IAKaCp19QxgOG4HKk9RAgUgC/VNVqymZ2GXfMNOZWImZhxRIbrK+raH5vN2MbWwtVHpjxyXvGsd1RRhnohI33A==} engines: {node: '>=18'} dependencies: @@ -2499,7 +2555,7 @@ packages: - utf-8-validate dev: false - /@polkadot/api-base/10.13.1: + /@polkadot/api-base@10.13.1: resolution: {integrity: sha512-Okrw5hjtEjqSMOG08J6qqEwlUQujTVClvY1/eZkzKwNzPelWrtV6vqfyJklB7zVhenlxfxqhZKKcY7zWSW/q5Q==} engines: {node: '>=18'} dependencies: @@ -2513,7 +2569,7 @@ packages: - supports-color - utf-8-validate - /@polkadot/api-derive/10.13.1: + /@polkadot/api-derive@10.13.1: resolution: {integrity: sha512-ef0H0GeCZ4q5Om+c61eLLLL29UxFC2/u/k8V1K2JOIU+2wD5LF7sjAoV09CBMKKHfkLenRckVk2ukm4rBqFRpg==} engines: {node: '>=18'} dependencies: @@ -2524,7 +2580,7 @@ packages: '@polkadot/types': 10.13.1 '@polkadot/types-codec': 10.13.1 '@polkadot/util': 12.6.2 - '@polkadot/util-crypto': 12.6.2_@polkadot+util@12.6.2 + '@polkadot/util-crypto': 12.6.2(@polkadot/util@12.6.2) rxjs: 7.8.1 tslib: 2.6.2 transitivePeerDependencies: @@ -2533,14 +2589,14 @@ packages: - utf-8-validate dev: false - /@polkadot/api/10.13.1: + /@polkadot/api@10.13.1: resolution: {integrity: sha512-YrKWR4TQR5CDyGkF0mloEUo7OsUA+bdtENpJGOtNavzOQUDEbxFE0PVzokzZfVfHhHX2CojPVmtzmmLxztyJkg==} engines: {node: '>=18'} dependencies: '@polkadot/api-augment': 10.13.1 '@polkadot/api-base': 10.13.1 '@polkadot/api-derive': 10.13.1 - '@polkadot/keyring': 12.6.2_jzs25v2gbpse74p3c5i4cryr2q + '@polkadot/keyring': 12.6.2(@polkadot/util-crypto@12.6.2)(@polkadot/util@12.6.2) '@polkadot/rpc-augment': 10.13.1 '@polkadot/rpc-core': 10.13.1 '@polkadot/rpc-provider': 10.13.1 @@ -2550,7 +2606,7 @@ packages: '@polkadot/types-create': 10.13.1 '@polkadot/types-known': 10.13.1 '@polkadot/util': 12.6.2 - '@polkadot/util-crypto': 12.6.2_@polkadot+util@12.6.2 + '@polkadot/util-crypto': 12.6.2(@polkadot/util@12.6.2) eventemitter3: 5.0.1 rxjs: 7.8.1 tslib: 2.6.2 @@ -2560,7 +2616,7 @@ packages: - utf-8-validate dev: false - /@polkadot/keyring/12.6.2_jzs25v2gbpse74p3c5i4cryr2q: + /@polkadot/keyring@12.6.2(@polkadot/util-crypto@12.6.2)(@polkadot/util@12.6.2): resolution: {integrity: sha512-O3Q7GVmRYm8q7HuB3S0+Yf/q/EB2egKRRU3fv9b3B7V+A52tKzA+vIwEmNVaD1g5FKW9oB97rmpggs0zaKFqHw==} engines: {node: '>=18'} peerDependencies: @@ -2568,10 +2624,10 @@ packages: '@polkadot/util-crypto': 12.6.2 dependencies: '@polkadot/util': 12.6.2 - '@polkadot/util-crypto': 12.6.2_@polkadot+util@12.6.2 + '@polkadot/util-crypto': 12.6.2(@polkadot/util@12.6.2) tslib: 2.6.2 - /@polkadot/networks/12.6.2: + /@polkadot/networks@12.6.2: resolution: {integrity: sha512-1oWtZm1IvPWqvMrldVH6NI2gBoCndl5GEwx7lAuQWGr7eNL+6Bdc5K3Z9T0MzFvDGoi2/CBqjX9dRKo39pDC/w==} engines: {node: '>=18'} dependencies: @@ -2579,7 +2635,7 @@ packages: '@substrate/ss58-registry': 1.44.0 tslib: 2.6.2 - /@polkadot/rpc-augment/10.13.1: + /@polkadot/rpc-augment@10.13.1: resolution: {integrity: sha512-iLsWUW4Jcx3DOdVrSHtN0biwxlHuTs4QN2hjJV0gd0jo7W08SXhWabZIf9mDmvUJIbR7Vk+9amzvegjRyIf5+A==} engines: {node: '>=18'} dependencies: @@ -2593,7 +2649,7 @@ packages: - supports-color - utf-8-validate - /@polkadot/rpc-core/10.13.1: + /@polkadot/rpc-core@10.13.1: resolution: {integrity: sha512-eoejSHa+/tzHm0vwic62/aptTGbph8vaBpbvLIK7gd00+rT813ROz5ckB1CqQBFB23nHRLuzzX/toY8ID3xrKw==} engines: {node: '>=18'} dependencies: @@ -2608,15 +2664,15 @@ packages: - supports-color - utf-8-validate - /@polkadot/rpc-provider/10.13.1: + /@polkadot/rpc-provider@10.13.1: resolution: {integrity: sha512-oJ7tatVXYJ0L7NpNiGd69D558HG5y5ZDmH2Bp9Dd4kFTQIiV8A39SlWwWUPCjSsen9lqSvvprNLnG/VHTpenbw==} engines: {node: '>=18'} dependencies: - '@polkadot/keyring': 12.6.2_jzs25v2gbpse74p3c5i4cryr2q + '@polkadot/keyring': 12.6.2(@polkadot/util-crypto@12.6.2)(@polkadot/util@12.6.2) '@polkadot/types': 10.13.1 '@polkadot/types-support': 10.13.1 '@polkadot/util': 12.6.2 - '@polkadot/util-crypto': 12.6.2_@polkadot+util@12.6.2 + '@polkadot/util-crypto': 12.6.2(@polkadot/util@12.6.2) '@polkadot/x-fetch': 12.6.2 '@polkadot/x-global': 12.6.2 '@polkadot/x-ws': 12.6.2 @@ -2631,7 +2687,7 @@ packages: - supports-color - utf-8-validate - /@polkadot/types-augment/10.13.1: + /@polkadot/types-augment@10.13.1: resolution: {integrity: sha512-TcrLhf95FNFin61qmVgOgayzQB/RqVsSg9thAso1Fh6pX4HSbvI35aGPBAn3SkA6R+9/TmtECirpSNLtIGFn0g==} engines: {node: '>=18'} dependencies: @@ -2640,7 +2696,7 @@ packages: '@polkadot/util': 12.6.2 tslib: 2.6.2 - /@polkadot/types-codec/10.13.1: + /@polkadot/types-codec@10.13.1: resolution: {integrity: sha512-AiQ2Vv2lbZVxEdRCN8XSERiWlOWa2cTDLnpAId78EnCtx4HLKYQSd+Jk9Y4BgO35R79mchK4iG+w6gZ+ukG2bg==} engines: {node: '>=18'} dependencies: @@ -2648,7 +2704,7 @@ packages: '@polkadot/x-bigint': 12.6.2 tslib: 2.6.2 - /@polkadot/types-create/10.13.1: + /@polkadot/types-create@10.13.1: resolution: {integrity: sha512-Usn1jqrz35SXgCDAqSXy7mnD6j4RvB4wyzTAZipFA6DGmhwyxxIgOzlWQWDb+1PtPKo9vtMzen5IJ+7w5chIeA==} engines: {node: '>=18'} dependencies: @@ -2656,7 +2712,7 @@ packages: '@polkadot/util': 12.6.2 tslib: 2.6.2 - /@polkadot/types-known/10.13.1: + /@polkadot/types-known@10.13.1: resolution: {integrity: sha512-uHjDW05EavOT5JeU8RbiFWTgPilZ+odsCcuEYIJGmK+es3lk/Qsdns9Zb7U7NJl7eJ6OWmRtyrWsLs+bU+jjIQ==} engines: {node: '>=18'} dependencies: @@ -2668,27 +2724,27 @@ packages: tslib: 2.6.2 dev: false - /@polkadot/types-support/10.13.1: + /@polkadot/types-support@10.13.1: resolution: {integrity: sha512-4gEPfz36XRQIY7inKq0HXNVVhR6HvXtm7yrEmuBuhM86LE0lQQBkISUSgR358bdn2OFSLMxMoRNoh3kcDvdGDQ==} engines: {node: '>=18'} dependencies: '@polkadot/util': 12.6.2 tslib: 2.6.2 - /@polkadot/types/10.13.1: + /@polkadot/types@10.13.1: resolution: {integrity: sha512-Hfvg1ZgJlYyzGSAVrDIpp3vullgxrjOlh/CSThd/PI4TTN1qHoPSFm2hs77k3mKkOzg+LrWsLE0P/LP2XddYcw==} engines: {node: '>=18'} dependencies: - '@polkadot/keyring': 12.6.2_jzs25v2gbpse74p3c5i4cryr2q + '@polkadot/keyring': 12.6.2(@polkadot/util-crypto@12.6.2)(@polkadot/util@12.6.2) '@polkadot/types-augment': 10.13.1 '@polkadot/types-codec': 10.13.1 '@polkadot/types-create': 10.13.1 '@polkadot/util': 12.6.2 - '@polkadot/util-crypto': 12.6.2_@polkadot+util@12.6.2 + '@polkadot/util-crypto': 12.6.2(@polkadot/util@12.6.2) rxjs: 7.8.1 tslib: 2.6.2 - /@polkadot/util-crypto/12.6.2_@polkadot+util@12.6.2: + /@polkadot/util-crypto@12.6.2(@polkadot/util@12.6.2): resolution: {integrity: sha512-FEWI/dJ7wDMNN1WOzZAjQoIcCP/3vz3wvAp5QQm+lOrzOLj0iDmaIGIcBkz8HVm3ErfSe/uKP0KS4jgV/ib+Mg==} engines: {node: '>=18'} peerDependencies: @@ -2698,14 +2754,14 @@ packages: '@noble/hashes': 1.4.0 '@polkadot/networks': 12.6.2 '@polkadot/util': 12.6.2 - '@polkadot/wasm-crypto': 7.3.2_axulvg25nogl5bdhz3is4lob4q - '@polkadot/wasm-util': 7.3.2_@polkadot+util@12.6.2 + '@polkadot/wasm-crypto': 7.3.2(@polkadot/util@12.6.2)(@polkadot/x-randomvalues@12.6.2) + '@polkadot/wasm-util': 7.3.2(@polkadot/util@12.6.2) '@polkadot/x-bigint': 12.6.2 - '@polkadot/x-randomvalues': 12.6.2_anjlozjssmf6t67i2glblgyr6u + '@polkadot/x-randomvalues': 12.6.2(@polkadot/util@12.6.2)(@polkadot/wasm-util@7.3.2) '@scure/base': 1.1.6 tslib: 2.6.2 - /@polkadot/util/12.6.2: + /@polkadot/util@12.6.2: resolution: {integrity: sha512-l8TubR7CLEY47240uki0TQzFvtnxFIO7uI/0GoWzpYD/O62EIAMRsuY01N4DuwgKq2ZWD59WhzsLYmA5K6ksdw==} engines: {node: '>=18'} dependencies: @@ -2717,7 +2773,7 @@ packages: bn.js: 5.2.1 tslib: 2.6.2 - /@polkadot/wasm-bridge/7.3.2_axulvg25nogl5bdhz3is4lob4q: + /@polkadot/wasm-bridge@7.3.2(@polkadot/util@12.6.2)(@polkadot/x-randomvalues@12.6.2): resolution: {integrity: sha512-AJEXChcf/nKXd5Q/YLEV5dXQMle3UNT7jcXYmIffZAo/KI394a+/24PaISyQjoNC0fkzS1Q8T5pnGGHmXiVz2g==} engines: {node: '>=18'} peerDependencies: @@ -2725,11 +2781,11 @@ packages: '@polkadot/x-randomvalues': '*' dependencies: '@polkadot/util': 12.6.2 - '@polkadot/wasm-util': 7.3.2_@polkadot+util@12.6.2 - '@polkadot/x-randomvalues': 12.6.2_anjlozjssmf6t67i2glblgyr6u + '@polkadot/wasm-util': 7.3.2(@polkadot/util@12.6.2) + '@polkadot/x-randomvalues': 12.6.2(@polkadot/util@12.6.2)(@polkadot/wasm-util@7.3.2) tslib: 2.6.2 - /@polkadot/wasm-crypto-asmjs/7.3.2_@polkadot+util@12.6.2: + /@polkadot/wasm-crypto-asmjs@7.3.2(@polkadot/util@12.6.2): resolution: {integrity: sha512-QP5eiUqUFur/2UoF2KKKYJcesc71fXhQFLT3D4ZjG28Mfk2ZPI0QNRUfpcxVQmIUpV5USHg4geCBNuCYsMm20Q==} engines: {node: '>=18'} peerDependencies: @@ -2738,7 +2794,7 @@ packages: '@polkadot/util': 12.6.2 tslib: 2.6.2 - /@polkadot/wasm-crypto-init/7.3.2_axulvg25nogl5bdhz3is4lob4q: + /@polkadot/wasm-crypto-init@7.3.2(@polkadot/util@12.6.2)(@polkadot/x-randomvalues@12.6.2): resolution: {integrity: sha512-FPq73zGmvZtnuJaFV44brze3Lkrki3b4PebxCy9Fplw8nTmisKo9Xxtfew08r0njyYh+uiJRAxPCXadkC9sc8g==} engines: {node: '>=18'} peerDependencies: @@ -2746,24 +2802,24 @@ packages: '@polkadot/x-randomvalues': '*' dependencies: '@polkadot/util': 12.6.2 - '@polkadot/wasm-bridge': 7.3.2_axulvg25nogl5bdhz3is4lob4q - '@polkadot/wasm-crypto-asmjs': 7.3.2_@polkadot+util@12.6.2 - '@polkadot/wasm-crypto-wasm': 7.3.2_@polkadot+util@12.6.2 - '@polkadot/wasm-util': 7.3.2_@polkadot+util@12.6.2 - '@polkadot/x-randomvalues': 12.6.2_anjlozjssmf6t67i2glblgyr6u + '@polkadot/wasm-bridge': 7.3.2(@polkadot/util@12.6.2)(@polkadot/x-randomvalues@12.6.2) + '@polkadot/wasm-crypto-asmjs': 7.3.2(@polkadot/util@12.6.2) + '@polkadot/wasm-crypto-wasm': 7.3.2(@polkadot/util@12.6.2) + '@polkadot/wasm-util': 7.3.2(@polkadot/util@12.6.2) + '@polkadot/x-randomvalues': 12.6.2(@polkadot/util@12.6.2)(@polkadot/wasm-util@7.3.2) tslib: 2.6.2 - /@polkadot/wasm-crypto-wasm/7.3.2_@polkadot+util@12.6.2: + /@polkadot/wasm-crypto-wasm@7.3.2(@polkadot/util@12.6.2): resolution: {integrity: sha512-15wd0EMv9IXs5Abp1ZKpKKAVyZPhATIAHfKsyoWCEFDLSOA0/K0QGOxzrAlsrdUkiKZOq7uzSIgIDgW8okx2Mw==} engines: {node: '>=18'} peerDependencies: '@polkadot/util': '*' dependencies: '@polkadot/util': 12.6.2 - '@polkadot/wasm-util': 7.3.2_@polkadot+util@12.6.2 + '@polkadot/wasm-util': 7.3.2(@polkadot/util@12.6.2) tslib: 2.6.2 - /@polkadot/wasm-crypto/7.3.2_axulvg25nogl5bdhz3is4lob4q: + /@polkadot/wasm-crypto@7.3.2(@polkadot/util@12.6.2)(@polkadot/x-randomvalues@12.6.2): resolution: {integrity: sha512-+neIDLSJ6jjVXsjyZ5oLSv16oIpwp+PxFqTUaZdZDoA2EyFRQB8pP7+qLsMNk+WJuhuJ4qXil/7XiOnZYZ+wxw==} engines: {node: '>=18'} peerDependencies: @@ -2771,15 +2827,15 @@ packages: '@polkadot/x-randomvalues': '*' dependencies: '@polkadot/util': 12.6.2 - '@polkadot/wasm-bridge': 7.3.2_axulvg25nogl5bdhz3is4lob4q - '@polkadot/wasm-crypto-asmjs': 7.3.2_@polkadot+util@12.6.2 - '@polkadot/wasm-crypto-init': 7.3.2_axulvg25nogl5bdhz3is4lob4q - '@polkadot/wasm-crypto-wasm': 7.3.2_@polkadot+util@12.6.2 - '@polkadot/wasm-util': 7.3.2_@polkadot+util@12.6.2 - '@polkadot/x-randomvalues': 12.6.2_anjlozjssmf6t67i2glblgyr6u + '@polkadot/wasm-bridge': 7.3.2(@polkadot/util@12.6.2)(@polkadot/x-randomvalues@12.6.2) + '@polkadot/wasm-crypto-asmjs': 7.3.2(@polkadot/util@12.6.2) + '@polkadot/wasm-crypto-init': 7.3.2(@polkadot/util@12.6.2)(@polkadot/x-randomvalues@12.6.2) + '@polkadot/wasm-crypto-wasm': 7.3.2(@polkadot/util@12.6.2) + '@polkadot/wasm-util': 7.3.2(@polkadot/util@12.6.2) + '@polkadot/x-randomvalues': 12.6.2(@polkadot/util@12.6.2)(@polkadot/wasm-util@7.3.2) tslib: 2.6.2 - /@polkadot/wasm-util/7.3.2_@polkadot+util@12.6.2: + /@polkadot/wasm-util@7.3.2(@polkadot/util@12.6.2): resolution: {integrity: sha512-bmD+Dxo1lTZyZNxbyPE380wd82QsX+43mgCm40boyKrRppXEyQmWT98v/Poc7chLuskYb6X8IQ6lvvK2bGR4Tg==} engines: {node: '>=18'} peerDependencies: @@ -2788,14 +2844,14 @@ packages: '@polkadot/util': 12.6.2 tslib: 2.6.2 - /@polkadot/x-bigint/12.6.2: + /@polkadot/x-bigint@12.6.2: resolution: {integrity: sha512-HSIk60uFPX4GOFZSnIF7VYJz7WZA7tpFJsne7SzxOooRwMTWEtw3fUpFy5cYYOeLh17/kHH1Y7SVcuxzVLc74Q==} engines: {node: '>=18'} dependencies: '@polkadot/x-global': 12.6.2 tslib: 2.6.2 - /@polkadot/x-fetch/12.6.2: + /@polkadot/x-fetch@12.6.2: resolution: {integrity: sha512-8wM/Z9JJPWN1pzSpU7XxTI1ldj/AfC8hKioBlUahZ8gUiJaOF7K9XEFCrCDLis/A1BoOu7Ne6WMx/vsJJIbDWw==} engines: {node: '>=18'} dependencies: @@ -2803,13 +2859,13 @@ packages: node-fetch: 3.3.2 tslib: 2.6.2 - /@polkadot/x-global/12.6.2: + /@polkadot/x-global@12.6.2: resolution: {integrity: sha512-a8d6m+PW98jmsYDtAWp88qS4dl8DyqUBsd0S+WgyfSMtpEXu6v9nXDgPZgwF5xdDvXhm+P0ZfVkVTnIGrScb5g==} engines: {node: '>=18'} dependencies: tslib: 2.6.2 - /@polkadot/x-randomvalues/12.6.2_anjlozjssmf6t67i2glblgyr6u: + /@polkadot/x-randomvalues@12.6.2(@polkadot/util@12.6.2)(@polkadot/wasm-util@7.3.2): resolution: {integrity: sha512-Vr8uG7rH2IcNJwtyf5ebdODMcr0XjoCpUbI91Zv6AlKVYOGKZlKLYJHIwpTaKKB+7KPWyQrk4Mlym/rS7v9feg==} engines: {node: '>=18'} peerDependencies: @@ -2817,25 +2873,25 @@ packages: '@polkadot/wasm-util': '*' dependencies: '@polkadot/util': 12.6.2 - '@polkadot/wasm-util': 7.3.2_@polkadot+util@12.6.2 + '@polkadot/wasm-util': 7.3.2(@polkadot/util@12.6.2) '@polkadot/x-global': 12.6.2 tslib: 2.6.2 - /@polkadot/x-textdecoder/12.6.2: + /@polkadot/x-textdecoder@12.6.2: resolution: {integrity: sha512-M1Bir7tYvNappfpFWXOJcnxUhBUFWkUFIdJSyH0zs5LmFtFdbKAeiDXxSp2Swp5ddOZdZgPac294/o2TnQKN1w==} engines: {node: '>=18'} dependencies: '@polkadot/x-global': 12.6.2 tslib: 2.6.2 - /@polkadot/x-textencoder/12.6.2: + /@polkadot/x-textencoder@12.6.2: resolution: {integrity: sha512-4N+3UVCpI489tUJ6cv3uf0PjOHvgGp9Dl+SZRLgFGt9mvxnvpW/7+XBADRMtlG4xi5gaRK7bgl5bmY6OMDsNdw==} engines: {node: '>=18'} dependencies: '@polkadot/x-global': 12.6.2 tslib: 2.6.2 - /@polkadot/x-ws/12.6.2: + /@polkadot/x-ws@12.6.2: resolution: {integrity: sha512-cGZWo7K5eRRQCRl2LrcyCYsrc3lRbTlixZh3AzgU8uX4wASVGRlNWi/Hf4TtHNe1ExCDmxabJzdIsABIfrr7xw==} engines: {node: '>=18'} dependencies: @@ -2846,56 +2902,60 @@ packages: - bufferutil - utf-8-validate - /@scure/base/1.1.1: + /@scure/base@1.1.1: resolution: {integrity: sha512-ZxOhsSyxYwLJj3pLZCefNitxsj093tb2vq90mp2txoYeBqbcjDjqFhyM8eUjq/uFm6zJ+mUuqxlS2FkuSY1MTA==} + requiresBuild: true optional: true - /@scure/base/1.1.6: + /@scure/base@1.1.6: resolution: {integrity: sha512-ok9AWwhcgYuGG3Zfhyqg+zwl+Wn5uE+dwC0NV/2qQkx4dABbb/bx96vWu8NSj+BNjjSjno+JRYRjle1jV08k3g==} - /@sinclair/typebox/0.27.8: + /@sinclair/typebox@0.27.8: resolution: {integrity: sha512-+Fj43pSMwJs4KRrH/938Uf+uAELIgVBmQzg/q1YG10djyfA3TnrU8N8XzqCh/okZdszqBQTZf96idMfE5lnwTA==} - /@sinonjs/commons/3.0.0: + /@sinonjs/commons@3.0.0: resolution: {integrity: sha512-jXBtWAF4vmdNmZgD5FoKsVLv3rPgDnLgPbU84LIJ3otV44vJlDRokVng5v8NFJdCf/da9legHcKaRuZs4L7faA==} dependencies: type-detect: 4.0.8 dev: true - /@sinonjs/fake-timers/10.3.0: + /@sinonjs/fake-timers@10.3.0: resolution: {integrity: sha512-V4BG07kuYSUkTCSBHG8G8TNhM+F19jXFWnQtzj+we8DrkpSBCee9Z3Ms8yiGer/dlmhe35/Xdgyo3/0rQKg7YA==} dependencies: '@sinonjs/commons': 3.0.0 dev: true - /@substrate/connect-extension-protocol/2.0.0: + /@substrate/connect-extension-protocol@2.0.0: resolution: {integrity: sha512-nKu8pDrE3LNCEgJjZe1iGXzaD6OSIDD4Xzz/yo4KO9mQ6LBvf49BVrt4qxBFGL6++NneLiWUZGoh+VSd4PyVIg==} + requiresBuild: true optional: true - /@substrate/connect-known-chains/1.1.5: + /@substrate/connect-known-chains@1.1.5: resolution: {integrity: sha512-GCdDMs5q9xDYyP/KEwrlWMdqv8OIPjuVMZvNowvUrvEFo5d+x+VqfRPzyl/RbV+snRQVWTTacRydE7GqyjCYPQ==} + requiresBuild: true optional: true - /@substrate/connect/0.8.8: + /@substrate/connect@0.8.8: resolution: {integrity: sha512-zwaxuNEVI9bGt0rT8PEJiXOyebLIo6QN1SyiAHRPBOl6g3Sy0KKdSN8Jmyn++oXhVRD8aIe75/V8ZkS81T+BPQ==} deprecated: versions below 1.x are no longer maintained requiresBuild: true dependencies: '@substrate/connect-extension-protocol': 2.0.0 '@substrate/connect-known-chains': 1.1.5 - '@substrate/light-client-extension-helpers': 0.0.4_smoldot@2.0.22 + '@substrate/light-client-extension-helpers': 0.0.4(smoldot@2.0.22) smoldot: 2.0.22 transitivePeerDependencies: - bufferutil - utf-8-validate optional: true - /@substrate/light-client-extension-helpers/0.0.4_smoldot@2.0.22: + /@substrate/light-client-extension-helpers@0.0.4(smoldot@2.0.22): resolution: {integrity: sha512-vfKcigzL0SpiK+u9sX6dq2lQSDtuFLOxIJx2CKPouPEHIs8C+fpsufn52r19GQn+qDhU8POMPHOVoqLktj8UEA==} + requiresBuild: true peerDependencies: smoldot: 2.x dependencies: - '@polkadot-api/client': 0.0.1-492c132563ea6b40ae1fc5470dec4cd18768d182.1.0_rxjs@7.8.1 + '@polkadot-api/client': 0.0.1-492c132563ea6b40ae1fc5470dec4cd18768d182.1.0(rxjs@7.8.1) '@polkadot-api/json-rpc-provider': 0.0.1-492c132563ea6b40ae1fc5470dec4cd18768d182.1.0 '@polkadot-api/json-rpc-provider-proxy': 0.0.1-492c132563ea6b40ae1fc5470dec4cd18768d182.1.0 '@polkadot-api/substrate-client': 0.0.1-492c132563ea6b40ae1fc5470dec4cd18768d182.1.0 @@ -2905,10 +2965,10 @@ packages: smoldot: 2.0.22 optional: true - /@substrate/ss58-registry/1.44.0: + /@substrate/ss58-registry@1.44.0: resolution: {integrity: sha512-7lQ/7mMCzVNSEfDS4BCqnRnKCFKpcOaPrxMeGTXHX1YQzM/m2BBHjbK2C3dJvjv7GYxMiaTq/HdWQj1xS6ss+A==} - /@swc-node/core/1.10.6_@swc+core@1.3.99: + /@swc-node/core@1.10.6(@swc/core@1.3.99): resolution: {integrity: sha512-lDIi/rPosmKIknWzvs2/Fi9zWRtbkx8OJ9pQaevhsoGzJSal8Pd315k1W5AIrnknfdAB4HqRN12fk6AhqnrEEw==} engines: {node: '>= 10'} peerDependencies: @@ -2916,13 +2976,13 @@ packages: dependencies: '@swc/core': 1.3.99 - /@swc-node/register/1.6.8_ssd54yhir2o3pnq2lx32lgv32i: + /@swc-node/register@1.6.8(@swc/core@1.3.99)(typescript@5.1.6): resolution: {integrity: sha512-74ijy7J9CWr1Z88yO+ykXphV29giCrSpANQPQRooE0bObpkTO1g4RzQovIfbIaniBiGDDVsYwDoQ3FIrCE8HcQ==} peerDependencies: '@swc/core': '>= 1.3' typescript: '>= 4.3' dependencies: - '@swc-node/core': 1.10.6_@swc+core@1.3.99 + '@swc-node/core': 1.10.6(@swc/core@1.3.99) '@swc-node/sourcemap-support': 0.3.0 '@swc/core': 1.3.99 colorette: 2.0.20 @@ -2933,13 +2993,13 @@ packages: transitivePeerDependencies: - supports-color - /@swc-node/sourcemap-support/0.3.0: + /@swc-node/sourcemap-support@0.3.0: resolution: {integrity: sha512-gqBJSmJMWomZFxlppaKea7NeAqFrDrrS0RMt24No92M3nJWcyI9YKGEQKl+EyJqZ5gh6w1s0cTklMHMzRwA1NA==} dependencies: source-map-support: 0.5.21 tslib: 2.6.2 - /@swc/core-darwin-arm64/1.3.99: + /@swc/core-darwin-arm64@1.3.99: resolution: {integrity: sha512-Qj7Jct68q3ZKeuJrjPx7k8SxzWN6PqLh+VFxzA+KwLDpQDPzOlKRZwkIMzuFjLhITO4RHgSnXoDk/Syz0ZeN+Q==} engines: {node: '>=10'} cpu: [arm64] @@ -2947,7 +3007,7 @@ packages: requiresBuild: true optional: true - /@swc/core-darwin-x64/1.3.99: + /@swc/core-darwin-x64@1.3.99: resolution: {integrity: sha512-wR7m9QVJjgiBu1PSOHy7s66uJPa45Kf9bZExXUL+JAa9OQxt5y+XVzr+n+F045VXQOwdGWplgPnWjgbUUHEVyw==} engines: {node: '>=10'} cpu: [x64] @@ -2955,7 +3015,7 @@ packages: requiresBuild: true optional: true - /@swc/core-linux-arm64-gnu/1.3.99: + /@swc/core-linux-arm64-gnu@1.3.99: resolution: {integrity: sha512-gcGv1l5t0DScEONmw5OhdVmEI/o49HCe9Ik38zzH0NtDkc+PDYaCcXU5rvfZP2qJFaAAr8cua8iJcOunOSLmnA==} engines: {node: '>=10'} cpu: [arm64] @@ -2963,7 +3023,7 @@ packages: requiresBuild: true optional: true - /@swc/core-linux-arm64-musl/1.3.99: + /@swc/core-linux-arm64-musl@1.3.99: resolution: {integrity: sha512-XL1/eUsTO8BiKsWq9i3iWh7H99iPO61+9HYiWVKhSavknfj4Plbn+XyajDpxsauln5o8t+BRGitymtnAWJM4UQ==} engines: {node: '>=10'} cpu: [arm64] @@ -2971,7 +3031,7 @@ packages: requiresBuild: true optional: true - /@swc/core-linux-x64-gnu/1.3.99: + /@swc/core-linux-x64-gnu@1.3.99: resolution: {integrity: sha512-fGrXYE6DbTfGNIGQmBefYxSk3rp/1lgbD0nVg4rl4mfFRQPi7CgGhrrqSuqZ/ezXInUIgoCyvYGWFSwjLXt/Qg==} engines: {node: '>=10'} cpu: [x64] @@ -2979,7 +3039,7 @@ packages: requiresBuild: true optional: true - /@swc/core-linux-x64-musl/1.3.99: + /@swc/core-linux-x64-musl@1.3.99: resolution: {integrity: sha512-kvgZp/mqf3IJ806gUOL6gN6VU15+DfzM1Zv4Udn8GqgXiUAvbQehrtruid4Snn5pZTLj4PEpSCBbxgxK1jbssA==} engines: {node: '>=10'} cpu: [x64] @@ -2987,7 +3047,7 @@ packages: requiresBuild: true optional: true - /@swc/core-win32-arm64-msvc/1.3.99: + /@swc/core-win32-arm64-msvc@1.3.99: resolution: {integrity: sha512-yt8RtZ4W/QgFF+JUemOUQAkVW58cCST7mbfKFZ1v16w3pl3NcWd9OrtppFIXpbjU1rrUX2zp2R7HZZzZ2Zk/aQ==} engines: {node: '>=10'} cpu: [arm64] @@ -2995,7 +3055,7 @@ packages: requiresBuild: true optional: true - /@swc/core-win32-ia32-msvc/1.3.99: + /@swc/core-win32-ia32-msvc@1.3.99: resolution: {integrity: sha512-62p5fWnOJR/rlbmbUIpQEVRconICy5KDScWVuJg1v3GPLBrmacjphyHiJC1mp6dYvvoEWCk/77c/jcQwlXrDXw==} engines: {node: '>=10'} cpu: [ia32] @@ -3003,7 +3063,7 @@ packages: requiresBuild: true optional: true - /@swc/core-win32-x64-msvc/1.3.99: + /@swc/core-win32-x64-msvc@1.3.99: resolution: {integrity: sha512-PdppWhkoS45VGdMBxvClVgF1hVjqamtvYd82Gab1i4IV45OSym2KinoDCKE1b6j3LwBLOn2J9fvChGSgGfDCHQ==} engines: {node: '>=10'} cpu: [x64] @@ -3011,7 +3071,7 @@ packages: requiresBuild: true optional: true - /@swc/core/1.3.99: + /@swc/core@1.3.99: resolution: {integrity: sha512-8O996RfuPC4ieb4zbYMfbyCU9k4gSOpyCNnr7qBQ+o7IEmh8JCV6B8wwu+fT/Om/6Lp34KJe1IpJ/24axKS6TQ==} engines: {node: '>=10'} requiresBuild: true @@ -3034,25 +3094,25 @@ packages: '@swc/core-win32-ia32-msvc': 1.3.99 '@swc/core-win32-x64-msvc': 1.3.99 - /@swc/counter/0.1.2: + /@swc/counter@0.1.2: resolution: {integrity: sha512-9F4ys4C74eSTEUNndnER3VJ15oru2NumfQxS8geE+f3eB5xvfxpWyqE5XlVnxb/R14uoXi6SLbBwwiDSkv+XEw==} - /@swc/types/0.1.5: + /@swc/types@0.1.5: resolution: {integrity: sha512-myfUej5naTBWnqOCc/MdVOLVjXUXtIA+NpDrDBKJtLLg2shUjBu3cZmB/85RyitKc55+lUUyl7oRfLOvkr2hsw==} - /@tsconfig/node10/1.0.9: + /@tsconfig/node10@1.0.9: resolution: {integrity: sha512-jNsYVVxU8v5g43Erja32laIDHXeoNvFEpX33OK4d6hljo3jDhCBDhx5dhCCTMWUojscpAagGiRkBKxpdl9fxqA==} - /@tsconfig/node12/1.0.11: + /@tsconfig/node12@1.0.11: resolution: {integrity: sha512-cqefuRsh12pWyGsIoBKJA9luFu3mRxCA+ORZvA4ktLSzIuCUtWVxGIuXigEwO5/ywWFMZ2QEGKWvkZG1zDMTag==} - /@tsconfig/node14/1.0.3: + /@tsconfig/node14@1.0.3: resolution: {integrity: sha512-ysT8mhdixWK6Hw3i1V2AeRqZ5WfXg1G43mqoYlM2nc6388Fq5jcXyr5mRsqViLx/GJYdoL0bfXD8nmF+Zn/Iow==} - /@tsconfig/node16/1.0.4: + /@tsconfig/node16@1.0.4: resolution: {integrity: sha512-vxhUy4J8lyeyinH7Azl1pdd43GJhZH/tP2weN8TntQblOY+A0XbT8DJk1/oCPuOOyg/Ja757rG0CgHcWC8OfMA==} - /@types/babel__core/7.20.4: + /@types/babel__core@7.20.4: resolution: {integrity: sha512-mLnSC22IC4vcWiuObSRjrLd9XcBTGf59vUSoq2jkQDJ/QQ8PMI9rSuzE+aEV8karUMbskw07bKYoUJCKTUaygg==} dependencies: '@babel/parser': 7.23.3 @@ -3062,93 +3122,93 @@ packages: '@types/babel__traverse': 7.20.4 dev: true - /@types/babel__generator/7.6.7: + /@types/babel__generator@7.6.7: resolution: {integrity: sha512-6Sfsq+EaaLrw4RmdFWE9Onp63TOUue71AWb4Gpa6JxzgTYtimbM086WnYTy2U67AofR++QKCo08ZP6pwx8YFHQ==} dependencies: '@babel/types': 7.23.3 dev: true - /@types/babel__template/7.4.4: + /@types/babel__template@7.4.4: resolution: {integrity: sha512-h/NUaSyG5EyxBIp8YRxo4RMe2/qQgvyowRwVMzhYhBCONbW8PUsg4lkFMrhgZhUe5z3L3MiLDuvyJ/CaPa2A8A==} dependencies: '@babel/parser': 7.23.3 '@babel/types': 7.23.3 dev: true - /@types/babel__traverse/7.20.4: + /@types/babel__traverse@7.20.4: resolution: {integrity: sha512-mSM/iKUk5fDDrEV/e83qY+Cr3I1+Q3qqTuEn++HAWYjEa1+NxZr6CNrcJGf2ZTnq4HoFGC3zaTPZTobCzCFukA==} dependencies: '@babel/types': 7.23.3 dev: true - /@types/bn.js/5.1.5: + /@types/bn.js@5.1.5: resolution: {integrity: sha512-V46N0zwKRF5Q00AZ6hWtN0T8gGmDUaUzLWQvHFo5yThtVwK/VCenFY3wXVbOvNfajEpsTfQM4IN9k/d6gUVX3A==} dependencies: '@types/node': 18.7.1 - /@types/graceful-fs/4.1.9: + /@types/graceful-fs@4.1.9: resolution: {integrity: sha512-olP3sd1qOEe5dXTSaFvQG+02VdRXcdytWLAZsAq1PecU8uqQAhkrnbli7DagjtXKW/Bl7YJbUsa8MPcuc8LHEQ==} dependencies: '@types/node': 18.7.1 dev: true - /@types/istanbul-lib-coverage/2.0.6: + /@types/istanbul-lib-coverage@2.0.6: resolution: {integrity: sha512-2QF/t/auWm0lsy8XtKVPG19v3sSOQlJe/YHZgfjb/KBBHOGSV+J2q/S671rcq9uTBrLAXmZpqJiaQbMT+zNU1w==} - /@types/istanbul-lib-report/3.0.3: + /@types/istanbul-lib-report@3.0.3: resolution: {integrity: sha512-NQn7AHQnk/RSLOxrBbGyJM/aVQ+pjj5HCgasFxc0K/KhoATfQ/47AyUl15I2yBUpihjmas+a+VJBOqecrFH+uA==} dependencies: '@types/istanbul-lib-coverage': 2.0.6 - /@types/istanbul-reports/3.0.4: + /@types/istanbul-reports@3.0.4: resolution: {integrity: sha512-pk2B1NWalF9toCRu6gjBzR69syFjP4Od8WRAX+0mmf9lAjCRicLOWc+ZrxZHx/0XRjotgkF9t6iaMJ+aXcOdZQ==} dependencies: '@types/istanbul-lib-report': 3.0.3 - /@types/jest/29.5.8: + /@types/jest@29.5.8: resolution: {integrity: sha512-fXEFTxMV2Co8ZF5aYFJv+YeA08RTYJfhtN5c9JSv/mFEMe+xxjufCb+PHL+bJcMs/ebPUsBu+UNTEz+ydXrR6g==} dependencies: expect: 29.7.0 pretty-format: 29.7.0 dev: false - /@types/json-schema/7.0.15: + /@types/json-schema@7.0.15: resolution: {integrity: sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==} dev: true - /@types/lodash/4.14.201: + /@types/lodash@4.14.201: resolution: {integrity: sha512-y9euML0cim1JrykNxADLfaG0FgD1g/yTHwUs/Jg9ZIU7WKj2/4IW9Lbb1WZbvck78W/lfGXFfe+u2EGfIJXdLQ==} dev: true - /@types/node/18.7.1: + /@types/node@18.7.1: resolution: {integrity: sha512-GKX1Qnqxo4S+Z/+Z8KKPLpH282LD7jLHWJcVryOflnsnH+BtSDfieR6ObwBMwpnNws0bUK8GI7z0unQf9bARNQ==} - /@types/parse-json/4.0.2: + /@types/parse-json@4.0.2: resolution: {integrity: sha512-dISoDXWWQwUquiKsyZ4Ng+HX2KsPL7LyHKHQwgGFEA3IaKac4Obd+h2a/a6waisAoepJlBcx9paWqjA8/HVjCw==} dev: true - /@types/semver/7.5.5: + /@types/semver@7.5.5: resolution: {integrity: sha512-+d+WYC1BxJ6yVOgUgzK8gWvp5qF8ssV5r4nsDcZWKRWcDQLQ619tvWAxJQYGgBrO1MnLJC7a5GtiYsAoQ47dJg==} dev: true - /@types/stack-utils/2.0.3: + /@types/stack-utils@2.0.3: resolution: {integrity: sha512-9aEbYZ3TbYMznPdcdr3SmIrLXwC/AKZXQeCf9Pgao5CKb8CyHuEX5jzWPTkvregvhRJHcpRO6BFoGW9ycaOkYw==} - /@types/ws/8.5.9: + /@types/ws@8.5.9: resolution: {integrity: sha512-jbdrY0a8lxfdTp/+r7Z4CkycbOFN8WX+IOchLJr3juT/xzbJ8URyTVSJ/hvNdadTgM1mnedb47n+Y31GsFnQlg==} dependencies: '@types/node': 18.7.1 dev: false - /@types/yargs-parser/21.0.3: + /@types/yargs-parser@21.0.3: resolution: {integrity: sha512-I4q9QU9MQv4oEOz4tAHJtNz1cwuLxn2F3xcc2iV5WdqLPpUnj30aUuxt1mAxYTG+oe8CZMV/+6rU4S4gRDzqtQ==} - /@types/yargs/17.0.31: + /@types/yargs@17.0.31: resolution: {integrity: sha512-bocYSx4DI8TmdlvxqGpVNXOgCNR1Jj0gNPhhAY+iz1rgKDAaYrAYdFYnhDV1IFuiuVc9HkOwyDcFxaTElF3/wg==} dependencies: '@types/yargs-parser': 21.0.3 - /@typescript-eslint/eslint-plugin/5.62.0_c42x62htuvinjyo6sqia6oy3e4: + /@typescript-eslint/eslint-plugin@5.62.0(@typescript-eslint/parser@5.62.0)(eslint@8.46.0)(typescript@5.1.6): resolution: {integrity: sha512-TiZzBSJja/LbhNPvk6yc0JrX9XqhQ0hdh6M2svYfsHGejaKFIAGd9MQ+ERIMzLGlN/kZoYIgdxFV0PuljTKXag==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: @@ -3160,23 +3220,23 @@ packages: optional: true dependencies: '@eslint-community/regexpp': 4.10.0 - '@typescript-eslint/parser': 5.62.0_7haavtekmro7ptbnqmctjaodju + '@typescript-eslint/parser': 5.62.0(eslint@8.46.0)(typescript@5.1.6) '@typescript-eslint/scope-manager': 5.62.0 - '@typescript-eslint/type-utils': 5.62.0_7haavtekmro7ptbnqmctjaodju - '@typescript-eslint/utils': 5.62.0_7haavtekmro7ptbnqmctjaodju + '@typescript-eslint/type-utils': 5.62.0(eslint@8.46.0)(typescript@5.1.6) + '@typescript-eslint/utils': 5.62.0(eslint@8.46.0)(typescript@5.1.6) debug: 4.3.4 eslint: 8.46.0 graphemer: 1.4.0 ignore: 5.2.4 natural-compare-lite: 1.4.0 semver: 7.5.4 - tsutils: 3.21.0_typescript@5.1.6 + tsutils: 3.21.0(typescript@5.1.6) typescript: 5.1.6 transitivePeerDependencies: - supports-color dev: true - /@typescript-eslint/parser/5.62.0_7haavtekmro7ptbnqmctjaodju: + /@typescript-eslint/parser@5.62.0(eslint@8.46.0)(typescript@5.1.6): resolution: {integrity: sha512-VlJEV0fOQ7BExOsHYAGrgbEiZoi8D+Bl2+f6V2RrXerRSylnp+ZBHmPvaIa8cz0Ajx7WO7Z5RqfgYg7ED1nRhA==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: @@ -3188,7 +3248,7 @@ packages: dependencies: '@typescript-eslint/scope-manager': 5.62.0 '@typescript-eslint/types': 5.62.0 - '@typescript-eslint/typescript-estree': 5.62.0_typescript@5.1.6 + '@typescript-eslint/typescript-estree': 5.62.0(typescript@5.1.6) debug: 4.3.4 eslint: 8.46.0 typescript: 5.1.6 @@ -3196,7 +3256,7 @@ packages: - supports-color dev: true - /@typescript-eslint/scope-manager/5.62.0: + /@typescript-eslint/scope-manager@5.62.0: resolution: {integrity: sha512-VXuvVvZeQCQb5Zgf4HAxc04q5j+WrNAtNh9OwCsCgpKqESMTu3tF/jhZ3xG6T4NZwWl65Bg8KuS2uEvhSfLl0w==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} dependencies: @@ -3204,7 +3264,7 @@ packages: '@typescript-eslint/visitor-keys': 5.62.0 dev: true - /@typescript-eslint/type-utils/5.62.0_7haavtekmro7ptbnqmctjaodju: + /@typescript-eslint/type-utils@5.62.0(eslint@8.46.0)(typescript@5.1.6): resolution: {integrity: sha512-xsSQreu+VnfbqQpW5vnCJdq1Z3Q0U31qiWmRhr98ONQmcp/yhiPJFPq8MXiJVLiksmOKSjIldZzkebzHuCGzew==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: @@ -3214,22 +3274,22 @@ packages: typescript: optional: true dependencies: - '@typescript-eslint/typescript-estree': 5.62.0_typescript@5.1.6 - '@typescript-eslint/utils': 5.62.0_7haavtekmro7ptbnqmctjaodju + '@typescript-eslint/typescript-estree': 5.62.0(typescript@5.1.6) + '@typescript-eslint/utils': 5.62.0(eslint@8.46.0)(typescript@5.1.6) debug: 4.3.4 eslint: 8.46.0 - tsutils: 3.21.0_typescript@5.1.6 + tsutils: 3.21.0(typescript@5.1.6) typescript: 5.1.6 transitivePeerDependencies: - supports-color dev: true - /@typescript-eslint/types/5.62.0: + /@typescript-eslint/types@5.62.0: resolution: {integrity: sha512-87NVngcbVXUahrRTqIK27gD2t5Cu1yuCXxbLcFtCzZGlfyVWWh8mLHkoxzjsB6DDNnvdL+fW8MiwPEJyGJQDgQ==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} dev: true - /@typescript-eslint/typescript-estree/5.62.0_typescript@5.1.6: + /@typescript-eslint/typescript-estree@5.62.0(typescript@5.1.6): resolution: {integrity: sha512-CmcQ6uY7b9y694lKdRB8FEel7JbU/40iSAPomu++SjLMntB+2Leay2LO6i8VnJk58MtE9/nQSFIH6jpyRWyYzA==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: @@ -3244,24 +3304,24 @@ packages: globby: 11.1.0 is-glob: 4.0.3 semver: 7.5.4 - tsutils: 3.21.0_typescript@5.1.6 + tsutils: 3.21.0(typescript@5.1.6) typescript: 5.1.6 transitivePeerDependencies: - supports-color dev: true - /@typescript-eslint/utils/5.62.0_7haavtekmro7ptbnqmctjaodju: + /@typescript-eslint/utils@5.62.0(eslint@8.46.0)(typescript@5.1.6): resolution: {integrity: sha512-n8oxjeb5aIbPFEtmQxQYOLI0i9n5ySBEY/ZEHHZqKQSFnxio1rv6dthascc9dLuwrL0RC5mPCxB7vnAVGAYWAQ==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: eslint: ^6.0.0 || ^7.0.0 || ^8.0.0 dependencies: - '@eslint-community/eslint-utils': 4.4.0_eslint@8.46.0 + '@eslint-community/eslint-utils': 4.4.0(eslint@8.46.0) '@types/json-schema': 7.0.15 '@types/semver': 7.5.5 '@typescript-eslint/scope-manager': 5.62.0 '@typescript-eslint/types': 5.62.0 - '@typescript-eslint/typescript-estree': 5.62.0_typescript@5.1.6 + '@typescript-eslint/typescript-estree': 5.62.0(typescript@5.1.6) eslint: 8.46.0 eslint-scope: 5.1.1 semver: 7.5.4 @@ -3270,7 +3330,7 @@ packages: - typescript dev: true - /@typescript-eslint/visitor-keys/5.62.0: + /@typescript-eslint/visitor-keys@5.62.0: resolution: {integrity: sha512-07ny+LHRzQXepkGg6w0mFY41fVUNBrL2Roj/++7V1txKugfjm/Ci/qSND03r2RhlJhJYMcTn9AhhSSqQp0Ysyw==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} dependencies: @@ -3278,7 +3338,7 @@ packages: eslint-visitor-keys: 3.4.3 dev: true - /@verdaccio/commons-api/10.2.0: + /@verdaccio/commons-api@10.2.0: resolution: {integrity: sha512-F/YZANu4DmpcEV0jronzI7v2fGVWkQ5Mwi+bVmV+ACJ+EzR0c9Jbhtbe5QyLUuzR97t8R5E/Xe53O0cc2LukdQ==} engines: {node: '>=8'} dependencies: @@ -3286,7 +3346,7 @@ packages: http-status-codes: 2.2.0 dev: true - /@verdaccio/config/7.0.0-next.3: + /@verdaccio/config@7.0.0-next.3: resolution: {integrity: sha512-DWBd7THRNDTd1UKwipCYyppdJ5h9sB495FPi9Vaad+DQtN5tNYRx3+aMvuqlDRwHZrssPJeAp8wu8cjLNpMokQ==} engines: {node: '>=12'} dependencies: @@ -3301,7 +3361,7 @@ packages: - supports-color dev: true - /@verdaccio/core/7.0.0-next.3: + /@verdaccio/core@7.0.0-next.3: resolution: {integrity: sha512-P6XniWZMPcXF/nYRqfyDZDzH5xUMQw9ZiJJ1l+H1SqfTNgxLhRhciOQG39lTvRb3aYnzRtWUjd3ink4IytXpjg==} engines: {node: '>=12'} dependencies: @@ -3313,21 +3373,21 @@ packages: semver: 7.5.4 dev: true - /@verdaccio/file-locking/10.3.1: + /@verdaccio/file-locking@10.3.1: resolution: {integrity: sha512-oqYLfv3Yg3mAgw9qhASBpjD50osj2AX4IwbkUtyuhhKGyoFU9eZdrbeW6tpnqUnj6yBMtAPm2eGD4BwQuX400g==} engines: {node: '>=12'} dependencies: lockfile: 1.0.4 dev: true - /@verdaccio/file-locking/12.0.0-next.1: + /@verdaccio/file-locking@12.0.0-next.1: resolution: {integrity: sha512-Zb5G2HEhVRB0jCq4z7QA4dqTdRv/2kIsw2Nkm3j2HqC1OeJRxas3MJAF/OxzbAb1IN32lbg1zycMSk6NcbQkgQ==} engines: {node: '>=12'} dependencies: lockfile: 1.0.4 dev: true - /@verdaccio/local-storage/10.3.3: + /@verdaccio/local-storage@10.3.3: resolution: {integrity: sha512-/n0FH+1hxVg80YhYBfJuW7F2AuvLY2fra8/DTCilWDll9Y5yZDxwntZfcKHJLerCA4atrbJtvaqpWkoV3Q9x8w==} engines: {node: '>=8'} dependencies: @@ -3343,7 +3403,7 @@ packages: - supports-color dev: true - /@verdaccio/logger-7/7.0.0-next.3: + /@verdaccio/logger-7@7.0.0-next.3: resolution: {integrity: sha512-JURPnpBnai+1/hgblJ5ayJGHJo068X00QzdZ8u/iB8t6fZRZIVKwVMSBfgOquDUODuJypaueG1MP+twvcUco0Q==} engines: {node: '>=12'} dependencies: @@ -3353,7 +3413,7 @@ packages: - supports-color dev: true - /@verdaccio/logger-commons/7.0.0-next.3: + /@verdaccio/logger-commons@7.0.0-next.3: resolution: {integrity: sha512-j1+9OeGN7WCuo+QZve8fbJEH9ju8rW18H0/xC+OEx6hzmNrmREgc60S5H6OEdSs8mn6wfD4LcMuV8ZDx/JaLMQ==} engines: {node: '>=12'} dependencies: @@ -3365,7 +3425,7 @@ packages: - supports-color dev: true - /@verdaccio/logger-prettify/7.0.0-next.1: + /@verdaccio/logger-prettify@7.0.0-next.1: resolution: {integrity: sha512-ZF71AS2k0OiSnKVT05+NUWARZ+yn0keGAlpkgNWU7SHiYeFS1ZDVpapi9PXR23gJ5U756fyPKaqvlRcYgEpsgA==} engines: {node: '>=12'} dependencies: @@ -3376,7 +3436,7 @@ packages: sonic-boom: 3.3.0 dev: true - /@verdaccio/middleware/7.0.0-next.3: + /@verdaccio/middleware@7.0.0-next.3: resolution: {integrity: sha512-7+K23DIakzewjVUiekU2n6gZVXdPZxStKZIh+wE3NGdfIP4tYOQQajJSoIycoLDAcax+ws6BpKRCt2/3DlU0bA==} engines: {node: '>=12'} dependencies: @@ -3394,12 +3454,12 @@ packages: - supports-color dev: true - /@verdaccio/search/7.0.0-next.2: + /@verdaccio/search@7.0.0-next.2: resolution: {integrity: sha512-NoGSpubKB+SB4gRMIoEl3E3NkoKE5f0DnANghB3SnMtVxpJGdwZgylosqDxt8swhQ80+16hYdAp6g44uhjVE6Q==} engines: {node: '>=12'} dev: true - /@verdaccio/signature/7.0.0-next.1: + /@verdaccio/signature@7.0.0-next.1: resolution: {integrity: sha512-uq6divC36rcwyBd6+JeTJXQ9K7d4Kuh7HNg6ZMU4ItSCYkLHJjVqNC2Kzo/SdkYNOd11xJuNlYU8NNuhpqpVuw==} engines: {node: '>=12'} dependencies: @@ -3410,12 +3470,12 @@ packages: - supports-color dev: true - /@verdaccio/streams/10.2.1: + /@verdaccio/streams@10.2.1: resolution: {integrity: sha512-OojIG/f7UYKxC4dYX8x5ax8QhRx1b8OYUAMz82rUottCuzrssX/4nn5QE7Ank0DUSX3C9l/HPthc4d9uKRJqJQ==} engines: {node: '>=12', npm: '>=5'} dev: true - /@verdaccio/tarball/12.0.0-next.3: + /@verdaccio/tarball@12.0.0-next.3: resolution: {integrity: sha512-pIZ24sVd5TmoKKrOcOvLqDU3rOjpjEpDCn3nsEk8UuWhWG121/3Hxr+9EirBjqWJ7Tnurz5mMl1jpgJNQOylKg==} engines: {node: '>=12'} dependencies: @@ -3428,11 +3488,11 @@ packages: - supports-color dev: true - /@verdaccio/ui-theme/7.0.0-next.3: + /@verdaccio/ui-theme@7.0.0-next.3: resolution: {integrity: sha512-mk132QldyfU1abdzLnV6OsYp46k6l4CtACyw0q3bgT8ytRp3fKF05/31vQObEayNWwhSDr/LvCz12s4e3BuVUA==} dev: true - /@verdaccio/url/12.0.0-next.3: + /@verdaccio/url@12.0.0-next.3: resolution: {integrity: sha512-iuGn4KU0sq7GBfefzMbOotWp3s/43VLSyGPf38AZ44cTErjsRH92q8UOx7E9CsVACPRiBfrhUfsKl8qTk/Qs9Q==} engines: {node: '>=12'} dependencies: @@ -3444,7 +3504,7 @@ packages: - supports-color dev: true - /@verdaccio/utils/7.0.0-next.3: + /@verdaccio/utils@7.0.0-next.3: resolution: {integrity: sha512-yawwfOXVgR/woFbe4q30Zqyq95N0lPCry4L9YS7ytts7pPdB6FbDnOW9mFHbdKurkDQ563zxyuBWdBZGITG1kQ==} engines: {node: '>=12'} dependencies: @@ -3454,23 +3514,23 @@ packages: semver: 7.5.4 dev: true - /@yarnpkg/lockfile/1.1.0: + /@yarnpkg/lockfile@1.1.0: resolution: {integrity: sha512-GpSwvyXOcOOlV70vbnzjj4fW5xW/FdUF6nQEt1ENy7m4ZCczi1+/buVUPAqmGfqznsORNFzUMjctTIp8a9tuCQ==} - /@yarnpkg/parsers/3.0.0-rc.46: + /@yarnpkg/parsers@3.0.0-rc.46: resolution: {integrity: sha512-aiATs7pSutzda/rq8fnuPwTglyVwjM22bNnK2ZgjrpAjQHSSl3lztd2f9evst1W/qnC58DRz7T7QndUDumAR4Q==} engines: {node: '>=14.15.0'} dependencies: js-yaml: 3.14.1 tslib: 2.6.2 - /@zkochan/js-yaml/0.0.6: + /@zkochan/js-yaml@0.0.6: resolution: {integrity: sha512-nzvgl3VfhcELQ8LyVrYOru+UtAy1nrygk2+AGbTm8a5YcO6o8lSjAT+pfg3vJWxIoZKOUhrK6UU7xW/+00kQrg==} hasBin: true dependencies: argparse: 2.0.1 - /JSONStream/1.3.5: + /JSONStream@1.3.5: resolution: {integrity: sha512-E+iruNOY8VV9s4JEbe1aNEm6MiszPRr/UfcHMz0TQh1BXSxHK+ASV1R6W4HpjBhSeS+54PIsAMCBmwD06LLsqQ==} hasBin: true dependencies: @@ -3478,14 +3538,14 @@ packages: through: 2.3.8 dev: true - /abort-controller/3.0.0: + /abort-controller@3.0.0: resolution: {integrity: sha512-h8lQ8tacZYnR3vNQTgibj+tODHI5/+l06Au2Pcriv/Gmet0eaj4TwWH41sO9wnHDiQsEj19q0drzdWdeAHtweg==} engines: {node: '>=6.5'} dependencies: event-target-shim: 5.0.1 dev: true - /accepts/1.3.8: + /accepts@1.3.8: resolution: {integrity: sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw==} engines: {node: '>= 0.6'} dependencies: @@ -3493,7 +3553,7 @@ packages: negotiator: 0.6.3 dev: true - /acorn-jsx/5.3.2_acorn@8.11.2: + /acorn-jsx@5.3.2(acorn@8.11.2): resolution: {integrity: sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==} peerDependencies: acorn: ^6.0.0 || ^7.0.0 || ^8.0.0 @@ -3501,21 +3561,21 @@ packages: acorn: 8.11.2 dev: true - /acorn-walk/8.3.0: + /acorn-walk@8.3.0: resolution: {integrity: sha512-FS7hV565M5l1R08MXqo8odwMTB02C2UqzB17RVgu9EyuYFBqJZ3/ZY97sQD5FewVu1UyDFc1yztUDrAwT0EypA==} engines: {node: '>=0.4.0'} - /acorn/8.11.2: + /acorn@8.11.2: resolution: {integrity: sha512-nc0Axzp/0FILLEVsm4fNwLCwMttvhEI263QtVPQcbpfZZ3ts0hLsZGOpE6czNlid7CJ9MlyH8reXkpsf3YUY4w==} engines: {node: '>=0.4.0'} hasBin: true - /address/1.2.2: + /address@1.2.2: resolution: {integrity: sha512-4B/qKCfeE/ODUaAUpSwfzazo5x29WD4r3vXiWsB7I2mSDAihwEqKO+g8GELZUQSSAo5e1XTYh3ZVfLyxBc12nA==} engines: {node: '>= 10.0.0'} dev: true - /agent-base/6.0.2: + /agent-base@6.0.2: resolution: {integrity: sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==} engines: {node: '>= 6.0.0'} dependencies: @@ -3524,7 +3584,7 @@ packages: - supports-color dev: true - /ajv/6.12.6: + /ajv@6.12.6: resolution: {integrity: sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==} dependencies: fast-deep-equal: 3.1.3 @@ -3533,7 +3593,7 @@ packages: uri-js: 4.4.1 dev: true - /ajv/8.12.0: + /ajv@8.12.0: resolution: {integrity: sha512-sRu1kpcO9yLtYxBKvqfTeh9KzZEwO3STyX1HT+4CaDzC6HpTGYhIhPIzj9XuKU7KYDwnaeh5hcOwjy1QuJzBPA==} dependencies: fast-deep-equal: 3.1.3 @@ -3542,42 +3602,42 @@ packages: uri-js: 4.4.1 dev: true - /ansi-colors/4.1.3: + /ansi-colors@4.1.3: resolution: {integrity: sha512-/6w/C21Pm1A7aZitlI5Ni/2J6FFQN8i1Cvz3kHABAAbw93v/NlvKdVOqz7CCWz/3iv/JplRSEEZ83XION15ovw==} engines: {node: '>=6'} - /ansi-escapes/4.3.2: + /ansi-escapes@4.3.2: resolution: {integrity: sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ==} engines: {node: '>=8'} dependencies: type-fest: 0.21.3 dev: true - /ansi-regex/5.0.1: + /ansi-regex@5.0.1: resolution: {integrity: sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==} engines: {node: '>=8'} - /ansi-sequence-parser/1.1.1: + /ansi-sequence-parser@1.1.1: resolution: {integrity: sha512-vJXt3yiaUL4UU546s3rPXlsry/RnM730G1+HkpKE012AN0sx1eOrxSu95oKDIonskeLTijMgqWZ3uDEe3NFvyg==} dev: true - /ansi-styles/3.2.1: + /ansi-styles@3.2.1: resolution: {integrity: sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==} engines: {node: '>=4'} dependencies: color-convert: 1.9.3 - /ansi-styles/4.3.0: + /ansi-styles@4.3.0: resolution: {integrity: sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==} engines: {node: '>=8'} dependencies: color-convert: 2.0.1 - /ansi-styles/5.2.0: + /ansi-styles@5.2.0: resolution: {integrity: sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==} engines: {node: '>=10'} - /anymatch/3.1.3: + /anymatch@3.1.3: resolution: {integrity: sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==} engines: {node: '>= 8'} dependencies: @@ -3585,67 +3645,67 @@ packages: picomatch: 2.3.1 dev: true - /apache-md5/1.1.8: + /apache-md5@1.1.8: resolution: {integrity: sha512-FCAJojipPn0bXjuEpjOOOMN8FZDkxfWWp4JGN9mifU2IhxvKyXZYqpzPHdnTSUpmPDy+tsslB6Z1g+Vg6nVbYA==} engines: {node: '>=8'} dev: true - /arg/4.1.3: + /arg@4.1.3: resolution: {integrity: sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA==} - /argparse/1.0.10: + /argparse@1.0.10: resolution: {integrity: sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==} dependencies: sprintf-js: 1.0.3 - /argparse/2.0.1: + /argparse@2.0.1: resolution: {integrity: sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==} - /array-flatten/1.1.1: + /array-flatten@1.1.1: resolution: {integrity: sha512-PCVAQswWemu6UdxsDFFX/+gVeYqKAod3D3UVm91jHwynguOwAvYPhx8nNlM++NqRcK6CxxpUafjmhIdKiHibqg==} dev: true - /array-union/2.1.0: + /array-union@2.1.0: resolution: {integrity: sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==} engines: {node: '>=8'} dev: true - /asn1/0.2.6: + /asn1@0.2.6: resolution: {integrity: sha512-ix/FxPn0MDjeyJ7i/yoHGFt/EX6LyNbxSEhPPXODPL+KB0VPk86UYfL0lMdy+KCnv+fmvIzySwaK5COwqVbWTQ==} dependencies: safer-buffer: 2.1.2 dev: true - /assert-plus/1.0.0: + /assert-plus@1.0.0: resolution: {integrity: sha512-NfJ4UzBCcQGLDlQq7nHxH+tv3kyZ0hHQqF5BO6J7tNJeP5do1llPr8dZ8zHonfhAu0PHAdMkSo+8o0wxg9lZWw==} engines: {node: '>=0.8'} dev: true - /async/3.2.4: + /async@3.2.4: resolution: {integrity: sha512-iAB+JbDEGXhyIUavoDl9WP/Jj106Kz9DEn1DPgYw5ruDn0e3Wgi3sKFm55sASdGBNOQB8F59d9qQ7deqrHA8wQ==} dev: true - /async/3.2.5: + /async@3.2.5: resolution: {integrity: sha512-baNZyqaaLhyLVKm/DlvdW051MSgO6b8eVfIezl9E5PqWxFgzLm/wQntEW4zOytVburDEr0JlALEpdOFwvErLsg==} dev: true - /asynckit/0.4.0: + /asynckit@0.4.0: resolution: {integrity: sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==} - /atomic-sleep/1.0.0: + /atomic-sleep@1.0.0: resolution: {integrity: sha512-kNOjDqAh7px0XWNI+4QbzoiR/nTkHAWNud2uvnJquD1/x5a7EQZMJT0AczqK0Qn67oY/TTQ1LbUKajZpp3I9tQ==} engines: {node: '>=8.0.0'} dev: true - /aws-sign2/0.7.0: + /aws-sign2@0.7.0: resolution: {integrity: sha512-08kcGqnYf/YmjoRhfxyu+CLxBjUtHLXLXX/vUfx9l2LYzG3c1m61nrpyFUZI6zeS+Li/wWMMidD9KgrqtGq3mA==} dev: true - /aws4/1.12.0: + /aws4@1.12.0: resolution: {integrity: sha512-NmWvPnx0F1SfrQbYwOi7OeaNGokp9XhzNioJ/CSBs8Qa4vxug81mhJEAVZwxXuBmYB5KDRfMq/F3RR0BIU7sWg==} dev: true - /axios/1.6.2: + /axios@1.6.2: resolution: {integrity: sha512-7i24Ri4pmDRfJTR7LDBhsOTtcm+9kjX5WiY1X3wIisx6G9So3pfMkEiU7emUBe46oceVImccTEM3k6C5dbVW8A==} dependencies: follow-redirects: 1.15.3 @@ -3654,7 +3714,7 @@ packages: transitivePeerDependencies: - debug - /babel-jest/29.7.0_@babel+core@7.23.3: + /babel-jest@29.7.0(@babel/core@7.23.3): resolution: {integrity: sha512-BrvGY3xZSwEcCzKvKsCi2GgHqDqsYkOP4/by5xCgIwGXQxIEh+8ew3gmrE1y7XRR6LHZIj6yLYnUi/mm2KXKBg==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} peerDependencies: @@ -3664,7 +3724,7 @@ packages: '@jest/transform': 29.7.0 '@types/babel__core': 7.20.4 babel-plugin-istanbul: 6.1.1 - babel-preset-jest: 29.6.3_@babel+core@7.23.3 + babel-preset-jest: 29.6.3(@babel/core@7.23.3) chalk: 4.1.2 graceful-fs: 4.2.11 slash: 3.0.0 @@ -3672,20 +3732,20 @@ packages: - supports-color dev: true - /babel-plugin-const-enum/1.2.0_@babel+core@7.23.3: + /babel-plugin-const-enum@1.2.0(@babel/core@7.23.3): resolution: {integrity: sha512-o1m/6iyyFnp9MRsK1dHF3bneqyf3AlM2q3A/YbgQr2pCat6B6XJVDv2TXqzfY2RYUi4mak6WAksSBPlyYGx9dg==} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: '@babel/core': 7.23.3 '@babel/helper-plugin-utils': 7.22.5 - '@babel/plugin-syntax-typescript': 7.23.3_@babel+core@7.23.3 + '@babel/plugin-syntax-typescript': 7.23.3(@babel/core@7.23.3) '@babel/traverse': 7.23.3 transitivePeerDependencies: - supports-color dev: true - /babel-plugin-istanbul/6.1.1: + /babel-plugin-istanbul@6.1.1: resolution: {integrity: sha512-Y1IQok9821cC9onCx5otgFfRm7Lm+I+wwxOx738M/WLPZ9Q42m4IG5W0FNX8WLL2gYMZo3JkuXIH2DOpWM+qwA==} engines: {node: '>=8'} dependencies: @@ -3698,7 +3758,7 @@ packages: - supports-color dev: true - /babel-plugin-jest-hoist/29.6.3: + /babel-plugin-jest-hoist@29.6.3: resolution: {integrity: sha512-ESAc/RJvGTFEzRwOTT4+lNDk/GNHMkKbNzsvT0qKRfDyyYTskxB5rnU2njIDYVxXCBHHEI1c0YwHob3WaYujOg==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: @@ -3708,7 +3768,7 @@ packages: '@types/babel__traverse': 7.20.4 dev: true - /babel-plugin-macros/2.8.0: + /babel-plugin-macros@2.8.0: resolution: {integrity: sha512-SEP5kJpfGYqYKpBrj5XU3ahw5p5GOHJ0U5ssOSQ/WBVdwkD2Dzlce95exQTs3jOVWPPKLBN2rlEWkCK7dSmLvg==} dependencies: '@babel/runtime': 7.23.2 @@ -3716,43 +3776,43 @@ packages: resolve: 1.22.8 dev: true - /babel-plugin-polyfill-corejs2/0.4.6_@babel+core@7.23.3: + /babel-plugin-polyfill-corejs2@0.4.6(@babel/core@7.23.3): resolution: {integrity: sha512-jhHiWVZIlnPbEUKSSNb9YoWcQGdlTLq7z1GHL4AjFxaoOUMuuEVJ+Y4pAaQUGOGk93YsVCKPbqbfw3m0SM6H8Q==} peerDependencies: '@babel/core': ^7.4.0 || ^8.0.0-0 <8.0.0 dependencies: '@babel/compat-data': 7.23.3 '@babel/core': 7.23.3 - '@babel/helper-define-polyfill-provider': 0.4.3_@babel+core@7.23.3 + '@babel/helper-define-polyfill-provider': 0.4.3(@babel/core@7.23.3) semver: 6.3.1 transitivePeerDependencies: - supports-color dev: true - /babel-plugin-polyfill-corejs3/0.8.6_@babel+core@7.23.3: + /babel-plugin-polyfill-corejs3@0.8.6(@babel/core@7.23.3): resolution: {integrity: sha512-leDIc4l4tUgU7str5BWLS2h8q2N4Nf6lGZP6UrNDxdtfF2g69eJ5L0H7S8A5Ln/arfFAfHor5InAdZuIOwZdgQ==} peerDependencies: '@babel/core': ^7.4.0 || ^8.0.0-0 <8.0.0 dependencies: '@babel/core': 7.23.3 - '@babel/helper-define-polyfill-provider': 0.4.3_@babel+core@7.23.3 + '@babel/helper-define-polyfill-provider': 0.4.3(@babel/core@7.23.3) core-js-compat: 3.33.2 transitivePeerDependencies: - supports-color dev: true - /babel-plugin-polyfill-regenerator/0.5.3_@babel+core@7.23.3: + /babel-plugin-polyfill-regenerator@0.5.3(@babel/core@7.23.3): resolution: {integrity: sha512-8sHeDOmXC8csczMrYEOf0UTNa4yE2SxV5JGeT/LP1n0OYVDUUFPxG9vdk2AlDlIit4t+Kf0xCtpgXPBwnn/9pw==} peerDependencies: '@babel/core': ^7.4.0 || ^8.0.0-0 <8.0.0 dependencies: '@babel/core': 7.23.3 - '@babel/helper-define-polyfill-provider': 0.4.3_@babel+core@7.23.3 + '@babel/helper-define-polyfill-provider': 0.4.3(@babel/core@7.23.3) transitivePeerDependencies: - supports-color dev: true - /babel-plugin-transform-typescript-metadata/0.3.2_@babel+core@7.23.3: + /babel-plugin-transform-typescript-metadata@0.3.2(@babel/core@7.23.3): resolution: {integrity: sha512-mWEvCQTgXQf48yDqgN7CH50waTyYBeP2Lpqx4nNWab9sxEpdXVeKgfj1qYI2/TgUPQtNFZ85i3PemRtnXVYYJg==} peerDependencies: '@babel/core': ^7 @@ -3765,27 +3825,27 @@ packages: '@babel/helper-plugin-utils': 7.22.5 dev: true - /babel-preset-current-node-syntax/1.0.1_@babel+core@7.23.3: + /babel-preset-current-node-syntax@1.0.1(@babel/core@7.23.3): resolution: {integrity: sha512-M7LQ0bxarkxQoN+vz5aJPsLBn77n8QgTFmo8WK0/44auK2xlCXrYcUxHFxgU7qW5Yzw/CjmLRK2uJzaCd7LvqQ==} peerDependencies: '@babel/core': ^7.0.0 dependencies: '@babel/core': 7.23.3 - '@babel/plugin-syntax-async-generators': 7.8.4_@babel+core@7.23.3 - '@babel/plugin-syntax-bigint': 7.8.3_@babel+core@7.23.3 - '@babel/plugin-syntax-class-properties': 7.12.13_@babel+core@7.23.3 - '@babel/plugin-syntax-import-meta': 7.10.4_@babel+core@7.23.3 - '@babel/plugin-syntax-json-strings': 7.8.3_@babel+core@7.23.3 - '@babel/plugin-syntax-logical-assignment-operators': 7.10.4_@babel+core@7.23.3 - '@babel/plugin-syntax-nullish-coalescing-operator': 7.8.3_@babel+core@7.23.3 - '@babel/plugin-syntax-numeric-separator': 7.10.4_@babel+core@7.23.3 - '@babel/plugin-syntax-object-rest-spread': 7.8.3_@babel+core@7.23.3 - '@babel/plugin-syntax-optional-catch-binding': 7.8.3_@babel+core@7.23.3 - '@babel/plugin-syntax-optional-chaining': 7.8.3_@babel+core@7.23.3 - '@babel/plugin-syntax-top-level-await': 7.14.5_@babel+core@7.23.3 - dev: true - - /babel-preset-jest/29.6.3_@babel+core@7.23.3: + '@babel/plugin-syntax-async-generators': 7.8.4(@babel/core@7.23.3) + '@babel/plugin-syntax-bigint': 7.8.3(@babel/core@7.23.3) + '@babel/plugin-syntax-class-properties': 7.12.13(@babel/core@7.23.3) + '@babel/plugin-syntax-import-meta': 7.10.4(@babel/core@7.23.3) + '@babel/plugin-syntax-json-strings': 7.8.3(@babel/core@7.23.3) + '@babel/plugin-syntax-logical-assignment-operators': 7.10.4(@babel/core@7.23.3) + '@babel/plugin-syntax-nullish-coalescing-operator': 7.8.3(@babel/core@7.23.3) + '@babel/plugin-syntax-numeric-separator': 7.10.4(@babel/core@7.23.3) + '@babel/plugin-syntax-object-rest-spread': 7.8.3(@babel/core@7.23.3) + '@babel/plugin-syntax-optional-catch-binding': 7.8.3(@babel/core@7.23.3) + '@babel/plugin-syntax-optional-chaining': 7.8.3(@babel/core@7.23.3) + '@babel/plugin-syntax-top-level-await': 7.14.5(@babel/core@7.23.3) + dev: true + + /babel-preset-jest@29.6.3(@babel/core@7.23.3): resolution: {integrity: sha512-0B3bhxR6snWXJZtR/RliHTDPRgn1sNHOR0yVtq/IiQFyuOVjFS+wuio/R4gSNkyYmKmJB4wGZv2NZanmKmTnNA==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} peerDependencies: @@ -3793,36 +3853,36 @@ packages: dependencies: '@babel/core': 7.23.3 babel-plugin-jest-hoist: 29.6.3 - babel-preset-current-node-syntax: 1.0.1_@babel+core@7.23.3 + babel-preset-current-node-syntax: 1.0.1(@babel/core@7.23.3) dev: true - /balanced-match/1.0.2: + /balanced-match@1.0.2: resolution: {integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==} - /base64-js/1.5.1: + /base64-js@1.5.1: resolution: {integrity: sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==} - /bcrypt-pbkdf/1.0.2: + /bcrypt-pbkdf@1.0.2: resolution: {integrity: sha512-qeFIXtP4MSoi6NLqO12WfqARWWuCKi2Rn/9hJLEmtB5yTNr9DqFWkJRCf2qShWzPeAMRnOgCrq0sg/KLv5ES9w==} dependencies: tweetnacl: 0.14.5 dev: true - /bcryptjs/2.4.3: + /bcryptjs@2.4.3: resolution: {integrity: sha512-V/Hy/X9Vt7f3BbPJEi8BdVFMByHi+jNXrYkW3huaybV/kQ0KJg0Y6PkEMbn+zeT+i+SiKZ/HMqJGIIt4LZDqNQ==} dev: true - /bl/4.1.0: + /bl@4.1.0: resolution: {integrity: sha512-1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w==} dependencies: buffer: 5.7.1 inherits: 2.0.4 readable-stream: 3.6.2 - /bn.js/5.2.1: + /bn.js@5.2.1: resolution: {integrity: sha512-eXRvHzWyYPBuB4NBy0cmYQjGitUrtqwbvlzP3G6VFnNRbsZQIxQ10PbKKHt8gZ/HW/D/747aDl+QkDqg3KQLMQ==} - /body-parser/1.20.1: + /body-parser@1.20.1: resolution: {integrity: sha512-jWi7abTbYwajOytWCQc37VulmWiRae5RyTpaCyDcS5/lMdtwSz5lOpDE67srw/HYe35f1z3fDQw+3txg7gNtWw==} engines: {node: '>= 0.8', npm: 1.2.8000 || >= 1.4.16} dependencies: @@ -3842,25 +3902,25 @@ packages: - supports-color dev: true - /brace-expansion/1.1.11: + /brace-expansion@1.1.11: resolution: {integrity: sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==} dependencies: balanced-match: 1.0.2 concat-map: 0.0.1 - /brace-expansion/2.0.1: + /brace-expansion@2.0.1: resolution: {integrity: sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==} dependencies: balanced-match: 1.0.2 dev: true - /braces/3.0.2: + /braces@3.0.2: resolution: {integrity: sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==} engines: {node: '>=8'} dependencies: fill-range: 7.0.1 - /browserslist/4.22.1: + /browserslist@4.22.1: resolution: {integrity: sha512-FEVc202+2iuClEhZhrWy6ZiAcRLvNMyYcxZ8raemul1DYVOVdFsbqckWLdsixQZCpJlwe77Z3UTalE7jsjnKfQ==} engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7} hasBin: true @@ -3868,59 +3928,59 @@ packages: caniuse-lite: 1.0.30001562 electron-to-chromium: 1.4.585 node-releases: 2.0.13 - update-browserslist-db: 1.0.13_browserslist@4.22.1 + update-browserslist-db: 1.0.13(browserslist@4.22.1) dev: true - /bs-logger/0.2.6: + /bs-logger@0.2.6: resolution: {integrity: sha512-pd8DCoxmbgc7hyPKOvxtqNcjYoOsABPQdcCUjGp3d42VR2CX1ORhk2A87oqqu5R1kk+76nsxZupkmyd+MVtCog==} engines: {node: '>= 6'} dependencies: fast-json-stable-stringify: 2.1.0 dev: true - /bser/2.1.1: + /bser@2.1.1: resolution: {integrity: sha512-gQxTNE/GAfIIrmHLUE3oJyp5FO6HRBfhjnw4/wMmA63ZGDJnWBmgY/lyQBpnDUkGmAhbSe39tx2d/iTOAfglwQ==} dependencies: node-int64: 0.4.0 dev: true - /buffer-equal-constant-time/1.0.1: + /buffer-equal-constant-time@1.0.1: resolution: {integrity: sha512-zRpUiDwd/xk6ADqPMATG8vc9VPrkck7T07OIx0gnjmJAnHnTVXNQG3vfvWNuiZIkwu9KrKdA1iJKfsfTVxE6NA==} dev: true - /buffer-from/1.1.2: + /buffer-from@1.1.2: resolution: {integrity: sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==} - /buffer/5.7.1: + /buffer@5.7.1: resolution: {integrity: sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==} dependencies: base64-js: 1.5.1 ieee754: 1.2.1 - /buffer/6.0.3: + /buffer@6.0.3: resolution: {integrity: sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA==} dependencies: base64-js: 1.5.1 ieee754: 1.2.1 dev: true - /builtins/5.0.1: + /builtins@5.0.1: resolution: {integrity: sha512-qwVpFEHNfhYJIzNRBvd2C1kyo6jz3ZSMPyyuR47OPdiKWlbYnZNyDWuyR175qDnAJLiCo5fBBqPb3RiXgWlkOQ==} dependencies: semver: 7.5.4 dev: true - /bytes/3.0.0: + /bytes@3.0.0: resolution: {integrity: sha512-pMhOfFDPiv9t5jjIXkHosWmkSyQbvsgEVNkz0ERHbuLh2T/7j4Mqqpz523Fe8MVY89KC6Sh/QfS2sM+SjgFDcw==} engines: {node: '>= 0.8'} dev: true - /bytes/3.1.2: + /bytes@3.1.2: resolution: {integrity: sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==} engines: {node: '>= 0.8'} dev: true - /call-bind/1.0.5: + /call-bind@1.0.5: resolution: {integrity: sha512-C3nQxfFZxFRVoJoGKKI8y3MOEo129NQ+FgQ08iye+Mk4zNZZGdjfs06bVTr+DBSlA66Q2VEcMki/cUCP4SercQ==} dependencies: function-bind: 1.1.2 @@ -3928,30 +3988,30 @@ packages: set-function-length: 1.1.1 dev: true - /callsites/3.1.0: + /callsites@3.1.0: resolution: {integrity: sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==} engines: {node: '>=6'} dev: true - /camelcase/5.3.1: + /camelcase@5.3.1: resolution: {integrity: sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==} engines: {node: '>=6'} dev: true - /camelcase/6.3.0: + /camelcase@6.3.0: resolution: {integrity: sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==} engines: {node: '>=10'} dev: true - /caniuse-lite/1.0.30001562: + /caniuse-lite@1.0.30001562: resolution: {integrity: sha512-kfte3Hym//51EdX4239i+Rmp20EsLIYGdPkERegTgU19hQWCRhsRFGKHTliUlsry53tv17K7n077Kqa0WJU4ng==} dev: true - /caseless/0.12.0: + /caseless@0.12.0: resolution: {integrity: sha512-4tYFyifaFfGacoiObjJegolkwSU4xQNGbVgUiNYVUxbQ2x2lUsFvY4hVgVzGiIe6WLOPqycWXA40l+PWsxthUw==} dev: true - /chalk/2.4.2: + /chalk@2.4.2: resolution: {integrity: sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==} engines: {node: '>=4'} dependencies: @@ -3959,42 +4019,42 @@ packages: escape-string-regexp: 1.0.5 supports-color: 5.5.0 - /chalk/4.1.2: + /chalk@4.1.2: resolution: {integrity: sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==} engines: {node: '>=10'} dependencies: ansi-styles: 4.3.0 supports-color: 7.2.0 - /char-regex/1.0.2: + /char-regex@1.0.2: resolution: {integrity: sha512-kWWXztvZ5SBQV+eRgKFeh8q5sLuZY2+8WUIzlxWVTg+oGwY14qylx1KbKzHd8P6ZYkAg0xyIDU9JMHhyJMZ1jw==} engines: {node: '>=10'} dev: true - /ci-info/3.9.0: + /ci-info@3.9.0: resolution: {integrity: sha512-NIxF55hv4nSqQswkAeiOi1r83xy8JldOFDTWiug55KBu9Jnblncd2U6ViHmYgHf01TPZS77NJBhBMKdWj9HQMQ==} engines: {node: '>=8'} - /cjs-module-lexer/1.2.3: + /cjs-module-lexer@1.2.3: resolution: {integrity: sha512-0TNiGstbQmCFwt4akjjBg5pLRTSyj/PkWQ1ZoO2zntmg9yLqSRxwEa4iCfQLGjqhiqBfOJa7W/E8wfGrTDmlZQ==} dev: true - /cli-cursor/3.1.0: + /cli-cursor@3.1.0: resolution: {integrity: sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw==} engines: {node: '>=8'} dependencies: restore-cursor: 3.1.0 - /cli-spinners/2.6.1: + /cli-spinners@2.6.1: resolution: {integrity: sha512-x/5fWmGMnbKQAaNwN+UZlV79qBLM9JFnJuJ03gIi5whrob0xV0ofNVHy9DhwGdsMJQc2OKv0oGmLzvaqvAVv+g==} engines: {node: '>=6'} - /cli-spinners/2.9.1: + /cli-spinners@2.9.1: resolution: {integrity: sha512-jHgecW0pxkonBJdrKsqxgRX9AcG+u/5k0Q7WPDfi8AogLAdwxEkyYYNWwZ5GvVFoFx2uiY1eNcSK00fh+1+FyQ==} engines: {node: '>=6'} dev: true - /clipanion/3.2.1_typanion@3.14.0: + /clipanion@3.2.1(typanion@3.14.0): resolution: {integrity: sha512-dYFdjLb7y1ajfxQopN05mylEpK9ZX0sO1/RfMXdfmwjlIsPkbh4p7A682x++zFPLDCo1x3p82dtljHf5cW2LKA==} peerDependencies: typanion: '*' @@ -4002,7 +4062,7 @@ packages: typanion: 3.14.0 dev: true - /cliui/8.0.1: + /cliui@8.0.1: resolution: {integrity: sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==} engines: {node: '>=12'} dependencies: @@ -4010,41 +4070,41 @@ packages: strip-ansi: 6.0.1 wrap-ansi: 7.0.0 - /clone/1.0.4: + /clone@1.0.4: resolution: {integrity: sha512-JQHZ2QMW6l3aH/j6xCqQThY/9OH4D/9ls34cgkUBiEeocRTU04tHfKPBsUK1PqZCUQM7GiA0IIXJSuXHI64Kbg==} engines: {node: '>=0.8'} dev: true - /co/4.6.0: + /co@4.6.0: resolution: {integrity: sha512-QVb0dM5HvG+uaxitm8wONl7jltx8dqhfU33DcqtOZcLSVIKSDDLDi7+0LbAKiyI8hD9u42m2YxXSkMGWThaecQ==} engines: {iojs: '>= 1.0.0', node: '>= 0.12.0'} dev: true - /collect-v8-coverage/1.0.2: + /collect-v8-coverage@1.0.2: resolution: {integrity: sha512-lHl4d5/ONEbLlJvaJNtsF/Lz+WvB07u2ycqTYbdrq7UypDXailES4valYb2eWiJFxZlVmpGekfqoxQhzyFdT4Q==} dev: true - /color-convert/1.9.3: + /color-convert@1.9.3: resolution: {integrity: sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==} dependencies: color-name: 1.1.3 - /color-convert/2.0.1: + /color-convert@2.0.1: resolution: {integrity: sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==} engines: {node: '>=7.0.0'} dependencies: color-name: 1.1.4 - /color-name/1.1.3: + /color-name@1.1.3: resolution: {integrity: sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==} - /color-name/1.1.4: + /color-name@1.1.4: resolution: {integrity: sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==} - /colorette/2.0.20: + /colorette@2.0.20: resolution: {integrity: sha512-IfEDxwoWIjkeXL1eXcDiow4UbKjhLdq6/EuSVR9GMN7KVH3r9gQ83e73hsz1Nd1T3ijd5xv1wcWRYO+D6kCI2w==} - /columnify/1.6.0: + /columnify@1.6.0: resolution: {integrity: sha512-lomjuFZKfM6MSAnV9aCZC9sc0qGbmZdfygNv+nCpqVkSKdCxCklLtd16O0EILGkImHw9ZpHkAnHaB+8Zxq5W6Q==} engines: {node: '>=8.0.0'} dependencies: @@ -4052,20 +4112,20 @@ packages: wcwidth: 1.0.1 dev: true - /combined-stream/1.0.8: + /combined-stream@1.0.8: resolution: {integrity: sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==} engines: {node: '>= 0.8'} dependencies: delayed-stream: 1.0.0 - /compressible/2.0.18: + /compressible@2.0.18: resolution: {integrity: sha512-AF3r7P5dWxL8MxyITRMlORQNaOA2IkAFaTr4k7BUumjPtRpGDTZpl0Pb1XCO6JeDCBdp126Cgs9sMxqSjgYyRg==} engines: {node: '>= 0.6'} dependencies: mime-db: 1.52.0 dev: true - /compression/1.7.4: + /compression@1.7.4: resolution: {integrity: sha512-jaSIDzP9pZVS4ZfQ+TzvtiWhdpFhE2RDHz8QJkpX9SIpLq88VueF5jJw6t+6CUQcAoA6t+x89MLrWAqpfDE8iQ==} engines: {node: '>= 0.8.0'} dependencies: @@ -4080,39 +4140,39 @@ packages: - supports-color dev: true - /concat-map/0.0.1: + /concat-map@0.0.1: resolution: {integrity: sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==} - /confusing-browser-globals/1.0.11: + /confusing-browser-globals@1.0.11: resolution: {integrity: sha512-JsPKdmh8ZkmnHxDk55FZ1TqVLvEQTvoByJZRN9jzI0UjxK/QgAmsphz7PGtqgPieQZ/CQcHWXCR7ATDNhGe+YA==} dev: true - /content-disposition/0.5.4: + /content-disposition@0.5.4: resolution: {integrity: sha512-FveZTNuGw04cxlAiWbzi6zTAL/lhehaWbTtgluJh4/E95DqMwTmha3KZN1aAWA8cFIhHzMZUvLevkw5Rqk+tSQ==} engines: {node: '>= 0.6'} dependencies: safe-buffer: 5.2.1 dev: true - /content-type/1.0.5: + /content-type@1.0.5: resolution: {integrity: sha512-nTjqfcBFEipKdXCv4YDQWCfmcLZKm81ldF0pAopTvyrFGVbcR6P/VAAd5G7N+0tTr8QqiU0tFadD6FK4NtJwOA==} engines: {node: '>= 0.6'} dev: true - /convert-source-map/2.0.0: + /convert-source-map@2.0.0: resolution: {integrity: sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==} dev: true - /cookie-signature/1.0.6: + /cookie-signature@1.0.6: resolution: {integrity: sha512-QADzlaHc8icV8I7vbaJXJwod9HWYp8uCqf1xa4OfNu1T7JVxQIrUgOWtHdNDtPiywmFbiS12VjotIXLrKM3orQ==} dev: true - /cookie/0.5.0: + /cookie@0.5.0: resolution: {integrity: sha512-YZ3GUyn/o8gfKJlnlX7g7xq4gyO6OSuhGPKaaGssGB2qgDUS0gPgtTvoyZLTt9Ab6dC4hfc9dV5arkvc/OCmrw==} engines: {node: '>= 0.6'} dev: true - /cookies/0.8.0: + /cookies@0.8.0: resolution: {integrity: sha512-8aPsApQfebXnuI+537McwYsDtjVxGm8gTIzQI3FDW6t5t/DAhERxtnbEPN/8RX+uZthoz4eCOgloXaE5cYyNow==} engines: {node: '>= 0.8'} dependencies: @@ -4120,22 +4180,22 @@ packages: keygrip: 1.1.0 dev: true - /core-js-compat/3.33.2: + /core-js-compat@3.33.2: resolution: {integrity: sha512-axfo+wxFVxnqf8RvxTzoAlzW4gRoacrHeoFlc9n0x50+7BEyZL/Rt3hicaED1/CEd7I6tPCPVUYcJwCMO5XUYw==} dependencies: browserslist: 4.22.1 dev: true - /core-js/3.30.2: + /core-js@3.30.2: resolution: {integrity: sha512-uBJiDmwqsbJCWHAwjrx3cvjbMXP7xD72Dmsn5LOJpiRmE3WbBbN5rCqQ2Qh6Ek6/eOrjlWngEynBWo4VxerQhg==} requiresBuild: true dev: true - /core-util-is/1.0.2: + /core-util-is@1.0.2: resolution: {integrity: sha512-3lqz5YjWTYnW6dlDa5TLaTCcShfar1e40rmcJVwCBJC6mWlFuj0eCHIElmG1g5kyuJ/GD+8Wn4FFCcz4gJPfaQ==} dev: true - /cors/2.8.5: + /cors@2.8.5: resolution: {integrity: sha512-KIHbLJqu73RGr/hnbrO9uBeixNGuvSQjul/jdFvS/KFSIH1hWVd1ng7zOHx+YrEfInLG7q4n6GHQ9cDtxv/P6g==} engines: {node: '>= 0.10'} dependencies: @@ -4143,7 +4203,7 @@ packages: vary: 1.1.2 dev: true - /cosmiconfig/6.0.0: + /cosmiconfig@6.0.0: resolution: {integrity: sha512-xb3ZL6+L8b9JLLCx3ZdoZy4+2ECphCMo2PwqgP1tlfVq6M6YReyzBJtvWWtbDSpNr9hn96pkCiZqUcFEc+54Qg==} engines: {node: '>=8'} dependencies: @@ -4154,7 +4214,7 @@ packages: yaml: 1.10.2 dev: true - /create-jest/29.7.0_lpnbhgxso4u2juc7wocetwmymy: + /create-jest@29.7.0(@types/node@18.7.1)(ts-node@10.9.1): resolution: {integrity: sha512-Adz2bdH0Vq3F53KEMJOoftQFutWCukm6J24wbPWRO4k1kMY7gS7ds/uoJkNuV8wDCtWWnuwGcJwpWcih+zEW1Q==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} hasBin: true @@ -4163,7 +4223,7 @@ packages: chalk: 4.1.2 exit: 0.1.2 graceful-fs: 4.2.11 - jest-config: 29.7.0_lpnbhgxso4u2juc7wocetwmymy + jest-config: 29.7.0(@types/node@18.7.1)(ts-node@10.9.1) jest-util: 29.7.0 prompts: 2.4.2 transitivePeerDependencies: @@ -4173,10 +4233,10 @@ packages: - ts-node dev: true - /create-require/1.1.1: + /create-require@1.1.1: resolution: {integrity: sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ==} - /cross-spawn/7.0.3: + /cross-spawn@7.0.3: resolution: {integrity: sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==} engines: {node: '>= 8'} dependencies: @@ -4185,22 +4245,22 @@ packages: which: 2.0.2 dev: true - /dashdash/1.14.1: + /dashdash@1.14.1: resolution: {integrity: sha512-jRFi8UDGo6j+odZiEpjazZaWqEal3w/basFjQHQEwVtZJGDpxbH1MeYluwCS8Xq5wmLJooDlMgvVarmWfGM44g==} engines: {node: '>=0.10'} dependencies: assert-plus: 1.0.0 dev: true - /data-uri-to-buffer/4.0.1: + /data-uri-to-buffer@4.0.1: resolution: {integrity: sha512-0R9ikRb668HB7QDxT1vkpuUBtqc53YyAwMwGeUFKRojY/NWKvdZ+9UYtRfGmhqNbRkTSVpMbmyhXipFFv2cb/A==} engines: {node: '>= 12'} - /dayjs/1.11.7: + /dayjs@1.11.7: resolution: {integrity: sha512-+Yw9U6YO5TQohxLcIkrXBeY73WP3ejHWVvx8XCk3gxvQDCTEmS48ZrSZCKciI7Bhl/uCMyxYtE9UqRILmFphkQ==} dev: true - /debug/2.6.9: + /debug@2.6.9: resolution: {integrity: sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==} peerDependencies: supports-color: '*' @@ -4211,7 +4271,7 @@ packages: ms: 2.0.0 dev: true - /debug/4.3.4: + /debug@4.3.4: resolution: {integrity: sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==} engines: {node: '>=6.0'} peerDependencies: @@ -4222,7 +4282,7 @@ packages: dependencies: ms: 2.1.2 - /dedent/1.5.1: + /dedent@1.5.1: resolution: {integrity: sha512-+LxW+KLWxu3HW3M2w2ympwtqPrqYRzU8fqi6Fhd18fBALe15blJPI/I4+UHveMVG6lJqB4JNd4UG0S5cnVHwIg==} peerDependencies: babel-plugin-macros: ^3.1.0 @@ -4231,22 +4291,22 @@ packages: optional: true dev: true - /deep-is/0.1.4: + /deep-is@0.1.4: resolution: {integrity: sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==} dev: true - /deepmerge/4.3.1: + /deepmerge@4.3.1: resolution: {integrity: sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A==} engines: {node: '>=0.10.0'} dev: true - /defaults/1.0.4: + /defaults@1.0.4: resolution: {integrity: sha512-eFuaLoy/Rxalv2kr+lqMlUnrDWV+3j4pljOIJgLIhI058IQfWJ7vXhyEIHu+HtC738klGALYxOKDO0bQP3tg8A==} dependencies: clone: 1.0.4 dev: true - /define-data-property/1.1.1: + /define-data-property@1.1.1: resolution: {integrity: sha512-E7uGkTzkk1d0ByLeSc6ZsFS79Axg+m1P/VsgYsxHgiuc3tFSj+MjMIwe90FC4lOAZzNBdY7kkO2P2wKdsQ1vgQ==} engines: {node: '>= 0.4'} dependencies: @@ -4255,30 +4315,30 @@ packages: has-property-descriptors: 1.0.1 dev: true - /define-lazy-prop/2.0.0: + /define-lazy-prop@2.0.0: resolution: {integrity: sha512-Ds09qNh8yw3khSjiJjiUInaGX9xlqZDY7JVryGxdxV7NPeuqQfplOpQ66yJFZut3jLa5zOwkXw1g9EI2uKh4Og==} engines: {node: '>=8'} - /delayed-stream/1.0.0: + /delayed-stream@1.0.0: resolution: {integrity: sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==} engines: {node: '>=0.4.0'} - /depd/2.0.0: + /depd@2.0.0: resolution: {integrity: sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==} engines: {node: '>= 0.8'} dev: true - /destroy/1.2.0: + /destroy@1.2.0: resolution: {integrity: sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg==} engines: {node: '>= 0.8', npm: 1.2.8000 || >= 1.4.16} dev: true - /detect-newline/3.1.0: + /detect-newline@3.1.0: resolution: {integrity: sha512-TLz+x/vEXm/Y7P7wn1EJFNLxYpUD4TgMosxY6fAVJUnJMbupHBOncxyWUG9OpTaH9EBD7uFI5LfEgmMOc54DsA==} engines: {node: '>=8'} dev: true - /detect-port/1.5.1: + /detect-port@1.5.1: resolution: {integrity: sha512-aBzdj76lueB6uUst5iAs7+0H/oOjqI5D16XUWxlWMIMROhcM0rfsNVk93zTngq1dDNpoXRr++Sus7ETAExppAQ==} hasBin: true dependencies: @@ -4288,40 +4348,40 @@ packages: - supports-color dev: true - /diff-sequences/29.6.3: + /diff-sequences@29.6.3: resolution: {integrity: sha512-EjePK1srD3P08o2j4f0ExnylqRs5B9tJjcp9t1krH2qRi8CCdsYfwe9JgSLurFBWwq4uOlipzfk5fHNvwFKr8Q==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - /diff/4.0.2: + /diff@4.0.2: resolution: {integrity: sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A==} engines: {node: '>=0.3.1'} - /dir-glob/3.0.1: + /dir-glob@3.0.1: resolution: {integrity: sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==} engines: {node: '>=8'} dependencies: path-type: 4.0.0 dev: true - /doctrine/3.0.0: + /doctrine@3.0.0: resolution: {integrity: sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==} engines: {node: '>=6.0.0'} dependencies: esutils: 2.0.3 dev: true - /dotenv-expand/10.0.0: + /dotenv-expand@10.0.0: resolution: {integrity: sha512-GopVGCpVS1UKH75VKHGuQFqS1Gusej0z4FyQkPdwjil2gNIv+LNsqBlboOzpJFZKVT95GkCyWJbBSdFEFUWI2A==} engines: {node: '>=12'} - /dotenv/16.3.1: + /dotenv@16.3.1: resolution: {integrity: sha512-IPzF4w4/Rd94bA9imS68tZBaYyBWSCE47V1RGuMrB94iyTOIEwRmVL2x/4An+6mETpLrKJ5hQkB8W4kFAadeIQ==} engines: {node: '>=12'} - /duplexer/0.1.2: + /duplexer@0.1.2: resolution: {integrity: sha512-jtD6YG370ZCIi/9GTaJKQxWTZD045+4R4hTk/x1UyoqadyJ9x9CgSi1RlVDQF8U2sxLLSnFkCaMihqljHIWgMg==} - /duplexify/4.1.2: + /duplexify@4.1.2: resolution: {integrity: sha512-fz3OjcNCHmRP12MJoZMPglx8m4rrFP8rovnk4vT8Fs+aonZoCwGg10dSsQsfP/E62eZcPTMSMP6686fu9Qlqtw==} dependencies: end-of-stream: 1.4.4 @@ -4330,24 +4390,24 @@ packages: stream-shift: 1.0.1 dev: true - /ecc-jsbn/0.1.2: + /ecc-jsbn@0.1.2: resolution: {integrity: sha512-eh9O+hwRHNbG4BLTjEl3nw044CkGm5X6LoaCf7LPp7UU8Qrt47JYNi6nPX8xjW97TKGKm1ouctg0QSpZe9qrnw==} dependencies: jsbn: 0.1.1 safer-buffer: 2.1.2 dev: true - /ecdsa-sig-formatter/1.0.11: + /ecdsa-sig-formatter@1.0.11: resolution: {integrity: sha512-nagl3RYrbNv6kQkeJIpt6NJZy8twLB/2vtz6yN9Z4vRKHN4/QZJIEbqohALSgwKdnksuY3k5Addp5lg8sVoVcQ==} dependencies: safe-buffer: 5.2.1 dev: true - /ee-first/1.1.1: + /ee-first@1.1.1: resolution: {integrity: sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==} dev: true - /ejs/3.1.9: + /ejs@3.1.9: resolution: {integrity: sha512-rC+QVNMJWv+MtPgkt0y+0rVEIdbtxVADApW9JXrUVlzHetgcyczP/E7DJmWJ4fJCZF2cPcBk0laWO9ZHMG3DmQ==} engines: {node: '>=0.10.0'} hasBin: true @@ -4355,68 +4415,68 @@ packages: jake: 10.8.7 dev: true - /electron-to-chromium/1.4.585: + /electron-to-chromium@1.4.585: resolution: {integrity: sha512-B4yBlX0azdA3rVMxpYwLQfDpdwOgcnLCkpvSOd68iFmeedo+WYjaBJS3/W58LVD8CB2nf+o7C4K9xz1l09RkWg==} dev: true - /emittery/0.13.1: + /emittery@0.13.1: resolution: {integrity: sha512-DeWwawk6r5yR9jFgnDKYt4sLS0LmHJJi3ZOnb5/JdbYwj3nW+FxQnHIjhBKz8YLC7oRNPVM9NQ47I3CVx34eqQ==} engines: {node: '>=12'} dev: true - /emoji-regex/8.0.0: + /emoji-regex@8.0.0: resolution: {integrity: sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==} - /encodeurl/1.0.2: + /encodeurl@1.0.2: resolution: {integrity: sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w==} engines: {node: '>= 0.8'} dev: true - /end-of-stream/1.4.4: + /end-of-stream@1.4.4: resolution: {integrity: sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==} dependencies: once: 1.4.0 - /enquirer/2.3.6: + /enquirer@2.3.6: resolution: {integrity: sha512-yjNnPr315/FjS4zIsUxYguYUPP2e1NK4d7E7ZOLiyYCcbFBiTMyID+2wvm2w6+pZ/odMA7cRkjhsPbltwBOrLg==} engines: {node: '>=8.6'} dependencies: ansi-colors: 4.1.3 - /envinfo/7.10.0: + /envinfo@7.10.0: resolution: {integrity: sha512-ZtUjZO6l5mwTHvc1L9+1q5p/R3wTopcfqMW8r5t8SJSKqeVI/LtajORwRFEKpEFuekjD0VBjwu1HMxL4UalIRw==} engines: {node: '>=4'} hasBin: true dev: true - /error-ex/1.3.2: + /error-ex@1.3.2: resolution: {integrity: sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==} dependencies: is-arrayish: 0.2.1 dev: true - /escalade/3.1.1: + /escalade@3.1.1: resolution: {integrity: sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==} engines: {node: '>=6'} - /escape-html/1.0.3: + /escape-html@1.0.3: resolution: {integrity: sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow==} dev: true - /escape-string-regexp/1.0.5: + /escape-string-regexp@1.0.5: resolution: {integrity: sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==} engines: {node: '>=0.8.0'} - /escape-string-regexp/2.0.0: + /escape-string-regexp@2.0.0: resolution: {integrity: sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w==} engines: {node: '>=8'} - /escape-string-regexp/4.0.0: + /escape-string-regexp@4.0.0: resolution: {integrity: sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==} engines: {node: '>=10'} dev: true - /eslint-config-prettier/8.10.0_eslint@8.46.0: + /eslint-config-prettier@8.10.0(eslint@8.46.0): resolution: {integrity: sha512-SM8AMJdeQqRYT9O9zguiruQZaN7+z+E4eAP9oiLNGKMtomwaB1E9dcgUD6ZAn/eQAb52USbvezbiljfZUhbJcg==} hasBin: true peerDependencies: @@ -4425,7 +4485,7 @@ packages: eslint: 8.46.0 dev: true - /eslint-scope/5.1.1: + /eslint-scope@5.1.1: resolution: {integrity: sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==} engines: {node: '>=8.0.0'} dependencies: @@ -4433,7 +4493,7 @@ packages: estraverse: 4.3.0 dev: true - /eslint-scope/7.2.2: + /eslint-scope@7.2.2: resolution: {integrity: sha512-dOt21O7lTMhDM+X9mB4GX+DZrZtCUJPL/wlcTqxyrx5IvO0IYtILdtrQGQp+8n5S0gwSVmOf9NQrjMOgfQZlIg==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} dependencies: @@ -4441,17 +4501,17 @@ packages: estraverse: 5.3.0 dev: true - /eslint-visitor-keys/3.4.3: + /eslint-visitor-keys@3.4.3: resolution: {integrity: sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} dev: true - /eslint/8.46.0: + /eslint@8.46.0: resolution: {integrity: sha512-cIO74PvbW0qU8e0mIvk5IV3ToWdCq5FYG6gWPHHkx6gNdjlbAYvtfHmlCMXxjcoVaIdwy/IAt3+mDkZkfvb2Dg==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} hasBin: true dependencies: - '@eslint-community/eslint-utils': 4.4.0_eslint@8.46.0 + '@eslint-community/eslint-utils': 4.4.0(eslint@8.46.0) '@eslint-community/regexpp': 4.10.0 '@eslint/eslintrc': 2.1.3 '@eslint/js': 8.53.0 @@ -4492,68 +4552,68 @@ packages: - supports-color dev: true - /espree/9.6.1: + /espree@9.6.1: resolution: {integrity: sha512-oruZaFkjorTpF32kDSI5/75ViwGeZginGGy2NoOSg3Q9bnwlnmDm4HLnkl0RE3n+njDXR037aY1+x58Z/zFdwQ==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} dependencies: acorn: 8.11.2 - acorn-jsx: 5.3.2_acorn@8.11.2 + acorn-jsx: 5.3.2(acorn@8.11.2) eslint-visitor-keys: 3.4.3 dev: true - /esprima/4.0.1: + /esprima@4.0.1: resolution: {integrity: sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==} engines: {node: '>=4'} hasBin: true - /esquery/1.5.0: + /esquery@1.5.0: resolution: {integrity: sha512-YQLXUplAwJgCydQ78IMJywZCceoqk1oH01OERdSAJc/7U2AylwjhSCLDEtqwg811idIS/9fIU5GjG73IgjKMVg==} engines: {node: '>=0.10'} dependencies: estraverse: 5.3.0 dev: true - /esrecurse/4.3.0: + /esrecurse@4.3.0: resolution: {integrity: sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==} engines: {node: '>=4.0'} dependencies: estraverse: 5.3.0 dev: true - /estraverse/4.3.0: + /estraverse@4.3.0: resolution: {integrity: sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==} engines: {node: '>=4.0'} dev: true - /estraverse/5.3.0: + /estraverse@5.3.0: resolution: {integrity: sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==} engines: {node: '>=4.0'} dev: true - /esutils/2.0.3: + /esutils@2.0.3: resolution: {integrity: sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==} engines: {node: '>=0.10.0'} dev: true - /etag/1.8.1: + /etag@1.8.1: resolution: {integrity: sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg==} engines: {node: '>= 0.6'} dev: true - /event-target-shim/5.0.1: + /event-target-shim@5.0.1: resolution: {integrity: sha512-i/2XbnSz/uxRCU6+NdVJgKWDTM427+MqYbkQzD321DuCQJUqOuJKIA0IM2+W2xtYHdKOmZ4dR6fExsd4SXL+WQ==} engines: {node: '>=6'} dev: true - /eventemitter3/5.0.1: + /eventemitter3@5.0.1: resolution: {integrity: sha512-GWkBvjiSZK87ELrYOSESUYeVIc9mvLLf/nXalMOS5dYrgZq9o5OVkbZAVM06CVxYsCwH9BDZFPlQTlPA1j4ahA==} - /events/3.3.0: + /events@3.3.0: resolution: {integrity: sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==} engines: {node: '>=0.8.x'} dev: true - /execa/5.1.1: + /execa@5.1.1: resolution: {integrity: sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==} engines: {node: '>=10'} dependencies: @@ -4568,12 +4628,12 @@ packages: strip-final-newline: 2.0.0 dev: true - /exit/0.1.2: + /exit@0.1.2: resolution: {integrity: sha512-Zk/eNKV2zbjpKzrsQ+n1G6poVbErQxJ0LBOJXaKZ1EViLzH+hrLu9cdXI4zw9dBQJslwBEpbQ2P1oS7nDxs6jQ==} engines: {node: '>= 0.8.0'} dev: true - /expect/29.7.0: + /expect@29.7.0: resolution: {integrity: sha512-2Zks0hf1VLFYI1kbh0I5jP3KHHyCHpkfyHBzsSXRFgl/Bg9mWYfMW8oD+PdMPlEwy5HNsR9JutYy6pMeOh61nw==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: @@ -4583,11 +4643,11 @@ packages: jest-message-util: 29.7.0 jest-util: 29.7.0 - /express-rate-limit/5.5.1: + /express-rate-limit@5.5.1: resolution: {integrity: sha512-MTjE2eIbHv5DyfuFz4zLYWxpqVhEhkTiwFGuB74Q9CSou2WHO52nlE5y3Zlg6SIsiYUIPj6ifFxnkPz6O3sIUg==} dev: true - /express/4.18.2: + /express@4.18.2: resolution: {integrity: sha512-5/PsL6iGPdfQ/lKM1UuielYgv3BUoJfz1aUwU9vHZ+J7gyvwdQXFEBIEIaxeGf0GIcreATNyBExtalisDbuMqQ==} engines: {node: '>= 0.10.0'} dependencies: @@ -4626,20 +4686,20 @@ packages: - supports-color dev: true - /extend/3.0.2: + /extend@3.0.2: resolution: {integrity: sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==} dev: true - /extsprintf/1.3.0: + /extsprintf@1.3.0: resolution: {integrity: sha512-11Ndz7Nv+mvAC1j0ktTa7fAb0vLyGGX+rMHNBYQviQDGU0Hw7lhctJANqbPhu9nV9/izT/IntTgZ7Im/9LJs9g==} engines: {'0': node >=0.6.0} dev: true - /fast-deep-equal/3.1.3: + /fast-deep-equal@3.1.3: resolution: {integrity: sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==} dev: true - /fast-glob/3.2.7: + /fast-glob@3.2.7: resolution: {integrity: sha512-rYGMRwip6lUMvYD3BTScMwT1HtAs2d71SMv66Vrxs0IekGZEjhM0pcMfjQPnknBt2zeCwQMEupiN02ZP4DiT1Q==} engines: {node: '>=8'} dependencies: @@ -4650,7 +4710,7 @@ packages: micromatch: 4.0.5 dev: true - /fast-glob/3.3.2: + /fast-glob@3.3.2: resolution: {integrity: sha512-oX2ruAFQwf/Orj8m737Y5adxDQO0LAB7/S5MnxCdTNDd4p6BsyIVsv9JQsATbTSq8KHRpLwIHbVlUNatxd+1Ow==} engines: {node: '>=8.6.0'} dependencies: @@ -4661,68 +4721,68 @@ packages: micromatch: 4.0.5 dev: true - /fast-json-stable-stringify/2.1.0: + /fast-json-stable-stringify@2.1.0: resolution: {integrity: sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==} dev: true - /fast-levenshtein/2.0.6: + /fast-levenshtein@2.0.6: resolution: {integrity: sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==} dev: true - /fast-redact/3.3.0: + /fast-redact@3.3.0: resolution: {integrity: sha512-6T5V1QK1u4oF+ATxs1lWUmlEk6P2T9HqJG3e2DnHOdVgZy2rFJBoEnrIedcTXlkAHU/zKC+7KETJ+KGGKwxgMQ==} engines: {node: '>=6'} dev: true - /fast-safe-stringify/2.1.1: + /fast-safe-stringify@2.1.1: resolution: {integrity: sha512-W+KJc2dmILlPplD/H4K9l9LcAHAfPtP6BY84uVLXQ6Evcz9Lcg33Y2z1IVblT6xdY54PXYVHEv+0Wpq8Io6zkA==} dev: true - /fastq/1.15.0: + /fastq@1.15.0: resolution: {integrity: sha512-wBrocU2LCXXa+lWBt8RoIRD89Fi8OdABODa/kEnyeyjS5aZO5/GNvI5sEINADqP/h8M29UHTHUb53sUu5Ihqdw==} dependencies: reusify: 1.0.4 dev: true - /fb-watchman/2.0.2: + /fb-watchman@2.0.2: resolution: {integrity: sha512-p5161BqbuCaSnB8jIbzQHOlpgsPmK5rJVDfDKO91Axs5NC1uu3HRQm6wt9cd9/+GtQQIO53JdGXXoyDpTAsgYA==} dependencies: bser: 2.1.1 dev: true - /fetch-blob/3.2.0: + /fetch-blob@3.2.0: resolution: {integrity: sha512-7yAQpD2UMJzLi1Dqv7qFYnPbaPx7ZfFK6PiIxQ4PfkGPyNyl2Ugx+a/umUonmKqjhM4DnfbMvdX6otXq83soQQ==} engines: {node: ^12.20 || >= 14.13} dependencies: node-domexception: 1.0.0 web-streams-polyfill: 3.2.1 - /figures/3.2.0: + /figures@3.2.0: resolution: {integrity: sha512-yaduQFRKLXYOGgEn6AZau90j3ggSOyiqXU0F9JZfeXYhNa+Jk4X+s45A2zg5jns87GAFa34BBm2kXw4XpNcbdg==} engines: {node: '>=8'} dependencies: escape-string-regexp: 1.0.5 - /file-entry-cache/6.0.1: + /file-entry-cache@6.0.1: resolution: {integrity: sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==} engines: {node: ^10.12.0 || >=12.0.0} dependencies: flat-cache: 3.2.0 dev: true - /filelist/1.0.4: + /filelist@1.0.4: resolution: {integrity: sha512-w1cEuf3S+DrLCQL7ET6kz+gmlJdbq9J7yXCSjK/OZCPA+qEN1WyF4ZAf0YYJa4/shHJra2t/d/r8SV4Ji+x+8Q==} dependencies: minimatch: 5.1.6 dev: true - /fill-range/7.0.1: + /fill-range@7.0.1: resolution: {integrity: sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==} engines: {node: '>=8'} dependencies: to-regex-range: 5.0.1 - /finalhandler/1.2.0: + /finalhandler@1.2.0: resolution: {integrity: sha512-5uXcUVftlQMFnWC9qu/svkWv3GTd2PfUhK/3PLkYNAe7FbqJMt3515HaxE6eRL74GdsriiwujiawdaB1BpEISg==} engines: {node: '>= 0.8'} dependencies: @@ -4737,7 +4797,7 @@ packages: - supports-color dev: true - /find-up/4.1.0: + /find-up@4.1.0: resolution: {integrity: sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==} engines: {node: '>=8'} dependencies: @@ -4745,7 +4805,7 @@ packages: path-exists: 4.0.0 dev: true - /find-up/5.0.0: + /find-up@5.0.0: resolution: {integrity: sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==} engines: {node: '>=10'} dependencies: @@ -4753,7 +4813,7 @@ packages: path-exists: 4.0.0 dev: true - /flat-cache/3.2.0: + /flat-cache@3.2.0: resolution: {integrity: sha512-CYcENa+FtcUKLmhhqyctpclsq7QF38pKjZHsGNiSQF5r4FtoKDWabFDl3hzaEQMvT1LHEysw5twgLvpYYb4vbw==} engines: {node: ^10.12.0 || >=12.0.0} dependencies: @@ -4762,15 +4822,15 @@ packages: rimraf: 3.0.2 dev: true - /flat/5.0.2: + /flat@5.0.2: resolution: {integrity: sha512-b6suED+5/3rTpUBdG1gupIl8MPFCAMA0QXwmljLhvCUKcUvdE4gWky9zpuGCcXHOsz4J9wPGNWq6OKpmIzz3hQ==} hasBin: true - /flatted/3.2.9: + /flatted@3.2.9: resolution: {integrity: sha512-36yxDn5H7OFZQla0/jFJmbIKTdZAQHngCedGxiMmpNfEZM0sdEeT+WczLQrjK6D7o2aiyLYDnkw0R3JK0Qv1RQ==} dev: true - /follow-redirects/1.15.3: + /follow-redirects@1.15.3: resolution: {integrity: sha512-1VzOtuEM8pC9SFU1E+8KfTjZyMztRsgEfwQl44z8A25uy13jSzTj6dyK2Df52iV0vgHCfBwLhDWevLn95w5v6Q==} engines: {node: '>=4.0'} peerDependencies: @@ -4779,11 +4839,11 @@ packages: debug: optional: true - /forever-agent/0.6.1: + /forever-agent@0.6.1: resolution: {integrity: sha512-j0KLYPhm6zeac4lz3oJ3o65qvgQCcPubiyotZrXqEaG4hNagNYO8qdlUrX5vwqv9ohqeT/Z3j6+yW067yWWdUw==} dev: true - /form-data/2.3.3: + /form-data@2.3.3: resolution: {integrity: sha512-1lLKB2Mu3aGP1Q/2eCOx0fNbRMe7XdwktwOruhfqqd0rIJWwN4Dh+E3hrPSlDCXnSR7UtZ1N38rVXm+6+MEhJQ==} engines: {node: '>= 0.12'} dependencies: @@ -4792,7 +4852,7 @@ packages: mime-types: 2.1.35 dev: true - /form-data/4.0.0: + /form-data@4.0.0: resolution: {integrity: sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==} engines: {node: '>= 6'} dependencies: @@ -4800,26 +4860,26 @@ packages: combined-stream: 1.0.8 mime-types: 2.1.35 - /formdata-polyfill/4.0.10: + /formdata-polyfill@4.0.10: resolution: {integrity: sha512-buewHzMvYL29jdeQTVILecSaZKnt/RJWjoZCF5OW60Z67/GmSLBkOFM7qh1PI3zFNtJbaZL5eQu1vLfazOwj4g==} engines: {node: '>=12.20.0'} dependencies: fetch-blob: 3.2.0 - /forwarded/0.2.0: + /forwarded@0.2.0: resolution: {integrity: sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow==} engines: {node: '>= 0.6'} dev: true - /fresh/0.5.2: + /fresh@0.5.2: resolution: {integrity: sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q==} engines: {node: '>= 0.6'} dev: true - /fs-constants/1.0.0: + /fs-constants@1.0.0: resolution: {integrity: sha512-y6OAwoSIf7FyjMIv94u+b5rdheZEjzR63GTyZJm5qh4Bi+2YgwLCcI/fPFZkL5PSixOt6ZNKm+w+Hfp/Bciwow==} - /fs-extra/11.1.1: + /fs-extra@11.1.1: resolution: {integrity: sha512-MGIE4HOvQCeUCzmlHs0vXpih4ysz4wg9qiSAu6cd42lVwPbTM1TjV7RusoyQqMmk/95gdQZX72u+YW+c3eEpFQ==} engines: {node: '>=14.14'} dependencies: @@ -4827,10 +4887,10 @@ packages: jsonfile: 6.1.0 universalify: 2.0.1 - /fs.realpath/1.0.0: + /fs.realpath@1.0.0: resolution: {integrity: sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==} - /fsevents/2.3.3: + /fsevents@2.3.3: resolution: {integrity: sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==} engines: {node: ^8.16.0 || ^10.6.0 || >=11.0.0} os: [darwin] @@ -4838,20 +4898,20 @@ packages: dev: true optional: true - /function-bind/1.1.2: + /function-bind@1.1.2: resolution: {integrity: sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==} dev: true - /gensync/1.0.0-beta.2: + /gensync@1.0.0-beta.2: resolution: {integrity: sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==} engines: {node: '>=6.9.0'} dev: true - /get-caller-file/2.0.5: + /get-caller-file@2.0.5: resolution: {integrity: sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==} engines: {node: 6.* || 8.* || >= 10.*} - /get-intrinsic/1.2.2: + /get-intrinsic@1.2.2: resolution: {integrity: sha512-0gSo4ml/0j98Y3lngkFEot/zhiCeWsbYIlZ+uZOVgzLyLaUw7wxUL+nCTP0XJvJg1AXulJRI3UJi8GsbDuxdGA==} dependencies: function-bind: 1.1.2 @@ -4860,37 +4920,37 @@ packages: hasown: 2.0.0 dev: true - /get-package-type/0.1.0: + /get-package-type@0.1.0: resolution: {integrity: sha512-pjzuKtY64GYfWizNAJ0fr9VqttZkNiK2iS430LtIHzjBEr6bX8Am2zm4sW4Ro5wjWW5cAlRL1qAMTcXbjNAO2Q==} engines: {node: '>=8.0.0'} dev: true - /get-stream/6.0.1: + /get-stream@6.0.1: resolution: {integrity: sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==} engines: {node: '>=10'} dev: true - /getpass/0.1.7: + /getpass@0.1.7: resolution: {integrity: sha512-0fzj9JxOLfJ+XGLhR8ze3unN0KZCgZwiSSDz168VERjK8Wl8kVSdcu2kspd4s4wtAa1y/qrVRiAA0WclVsu0ng==} dependencies: assert-plus: 1.0.0 dev: true - /glob-parent/5.1.2: + /glob-parent@5.1.2: resolution: {integrity: sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==} engines: {node: '>= 6'} dependencies: is-glob: 4.0.3 dev: true - /glob-parent/6.0.2: + /glob-parent@6.0.2: resolution: {integrity: sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==} engines: {node: '>=10.13.0'} dependencies: is-glob: 4.0.3 dev: true - /glob/6.0.4: + /glob@6.0.4: resolution: {integrity: sha512-MKZeRNyYZAVVVG1oZeLaWie1uweH40m9AZwIwxyPbTSX4hHrVYSzLg0Ro5Z5R7XKkIX+Cc6oD1rqeDJnwsB8/A==} dependencies: inflight: 1.0.6 @@ -4900,7 +4960,7 @@ packages: path-is-absolute: 1.0.1 dev: true - /glob/7.1.4: + /glob@7.1.4: resolution: {integrity: sha512-hkLPepehmnKk41pUGm3sYxoFs/umurYfYJCerbXEyFIWcAzvpipAgVkBqqT9RBKMGjnq6kMuyYwha6csxbiM1A==} dependencies: fs.realpath: 1.0.0 @@ -4910,19 +4970,19 @@ packages: once: 1.4.0 path-is-absolute: 1.0.1 - /globals/11.12.0: + /globals@11.12.0: resolution: {integrity: sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==} engines: {node: '>=4'} dev: true - /globals/13.23.0: + /globals@13.23.0: resolution: {integrity: sha512-XAmF0RjlrjY23MA51q3HltdlGxUpXPvg0GioKiD9X6HD28iMjo2dKC8Vqwm7lne4GNr78+RHTfliktR6ZH09wA==} engines: {node: '>=8'} dependencies: type-fest: 0.20.2 dev: true - /globby/11.1.0: + /globby@11.1.0: resolution: {integrity: sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==} engines: {node: '>=10'} dependencies: @@ -4934,20 +4994,20 @@ packages: slash: 3.0.0 dev: true - /gopd/1.0.1: + /gopd@1.0.1: resolution: {integrity: sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==} dependencies: get-intrinsic: 1.2.2 dev: true - /graceful-fs/4.2.11: + /graceful-fs@4.2.11: resolution: {integrity: sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==} - /graphemer/1.4.0: + /graphemer@1.4.0: resolution: {integrity: sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==} dev: true - /handlebars/4.7.8: + /handlebars@4.7.8: resolution: {integrity: sha512-vafaFqs8MZkRrSX7sFVUdo3ap/eNiLnb4IakshzvP56X5Nr1iGKAIqdX6tMlm6HcNRIkr6AxO5jFEoJzzpT8aQ==} engines: {node: '>=0.4.7'} hasBin: true @@ -4960,12 +5020,12 @@ packages: uglify-js: 3.17.4 dev: true - /har-schema/2.0.0: + /har-schema@2.0.0: resolution: {integrity: sha512-Oqluz6zhGX8cyRaTQlFMPw80bSJVG2x/cFb8ZPhUILGgHka9SsokCCOQgpveePerqidZOrT14ipqfJb7ILcW5Q==} engines: {node: '>=4'} dev: true - /har-validator/5.1.5: + /har-validator@5.1.5: resolution: {integrity: sha512-nmT2T0lljbxdQZfspsno9hgrG3Uir6Ks5afism62poxqBM6sDnMEuPmzTq8XN0OEwqKLLdh1jQI3qyE66Nzb3w==} engines: {node: '>=6'} deprecated: this library is no longer supported @@ -4974,53 +5034,53 @@ packages: har-schema: 2.0.0 dev: true - /harmony-reflect/1.6.2: + /harmony-reflect@1.6.2: resolution: {integrity: sha512-HIp/n38R9kQjDEziXyDTuW3vvoxxyxjxFzXLrBr18uB47GnSt+G9D29fqrpM5ZkspMcPICud3XsBJQ4Y2URg8g==} dev: true - /has-flag/3.0.0: + /has-flag@3.0.0: resolution: {integrity: sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==} engines: {node: '>=4'} - /has-flag/4.0.0: + /has-flag@4.0.0: resolution: {integrity: sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==} engines: {node: '>=8'} - /has-property-descriptors/1.0.1: + /has-property-descriptors@1.0.1: resolution: {integrity: sha512-VsX8eaIewvas0xnvinAe9bw4WfIeODpGYikiWYLH+dma0Jw6KHYqWiWfhQlgOVK8D6PvjubK5Uc4P0iIhIcNVg==} dependencies: get-intrinsic: 1.2.2 dev: true - /has-proto/1.0.1: + /has-proto@1.0.1: resolution: {integrity: sha512-7qE+iP+O+bgF9clE5+UoBFzE65mlBiVj3tKCrlNQ0Ogwm0BjpT/gK4SlLYDMybDh5I3TCTKnPPa0oMG7JDYrhg==} engines: {node: '>= 0.4'} dev: true - /has-symbols/1.0.3: + /has-symbols@1.0.3: resolution: {integrity: sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==} engines: {node: '>= 0.4'} dev: true - /hasown/2.0.0: + /hasown@2.0.0: resolution: {integrity: sha512-vUptKVTpIJhcczKBbgnS+RtcuYMB8+oNzPK2/Hp3hanz8JmpATdmmgLgSaadVREkDm+e2giHwY3ZRkyjSIDDFA==} engines: {node: '>= 0.4'} dependencies: function-bind: 1.1.2 dev: true - /hosted-git-info/7.0.1: + /hosted-git-info@7.0.1: resolution: {integrity: sha512-+K84LB1DYwMHoHSgaOY/Jfhw3ucPmSET5v98Ke/HdNSw4a0UktWzyW1mjhjpuxxTqOOsfWT/7iVshHmVZ4IpOA==} engines: {node: ^16.14.0 || >=18.0.0} dependencies: lru-cache: 10.0.2 dev: true - /html-escaper/2.0.2: + /html-escaper@2.0.2: resolution: {integrity: sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg==} dev: true - /http-errors/2.0.0: + /http-errors@2.0.0: resolution: {integrity: sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ==} engines: {node: '>= 0.8'} dependencies: @@ -5031,7 +5091,7 @@ packages: toidentifier: 1.0.1 dev: true - /http-signature/1.2.0: + /http-signature@1.2.0: resolution: {integrity: sha512-CAbnr6Rz4CYQkLYUtSNXxQPUH2gK8f3iWexVlsnMeD+GjlsQ0Xsy1cOX+mN3dtxYomRy21CiOzU8Uhw6OwncEQ==} engines: {node: '>=0.8', npm: '>=1.3.7'} dependencies: @@ -5040,11 +5100,11 @@ packages: sshpk: 1.18.0 dev: true - /http-status-codes/2.2.0: + /http-status-codes@2.2.0: resolution: {integrity: sha512-feERVo9iWxvnejp3SEfm/+oNG517npqL2/PIA8ORjyOZjGC7TwCRQsZylciLS64i6pJ0wRYz3rkXLRwbtFa8Ng==} dev: true - /https-proxy-agent/5.0.1: + /https-proxy-agent@5.0.1: resolution: {integrity: sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA==} engines: {node: '>= 6'} dependencies: @@ -5054,33 +5114,33 @@ packages: - supports-color dev: true - /human-signals/2.1.0: + /human-signals@2.1.0: resolution: {integrity: sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==} engines: {node: '>=10.17.0'} dev: true - /iconv-lite/0.4.24: + /iconv-lite@0.4.24: resolution: {integrity: sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==} engines: {node: '>=0.10.0'} dependencies: safer-buffer: 2.1.2 dev: true - /identity-obj-proxy/3.0.0: + /identity-obj-proxy@3.0.0: resolution: {integrity: sha512-00n6YnVHKrinT9t0d9+5yZC6UBNJANpYEQvL2LlX6Ab9lnmxzIRcEmTPuyGScvl1+jKuCICX1Z0Ab1pPKKdikA==} engines: {node: '>=4'} dependencies: harmony-reflect: 1.6.2 dev: true - /ieee754/1.2.1: + /ieee754@1.2.1: resolution: {integrity: sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==} - /ignore/5.2.4: + /ignore@5.2.4: resolution: {integrity: sha512-MAb38BcSbH0eHNBxn7ql2NH/kX33OkB3lZ1BNdh7ENeRChHTYsTvWrMubiIAMNS2llXEEgZ1MUOBtXChP3kaFQ==} engines: {node: '>= 4'} - /import-fresh/3.3.0: + /import-fresh@3.3.0: resolution: {integrity: sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==} engines: {node: '>=6'} dependencies: @@ -5088,7 +5148,7 @@ packages: resolve-from: 4.0.0 dev: true - /import-local/3.1.0: + /import-local@3.1.0: resolution: {integrity: sha512-ASB07uLtnDs1o6EHjKpX34BKYDSqnFerfTOJL2HvMqF70LnxpjkzDB8J44oT9pu4AMPkQwf8jl6szgvNd2tRIg==} engines: {node: '>=8'} hasBin: true @@ -5097,113 +5157,113 @@ packages: resolve-cwd: 3.0.0 dev: true - /imurmurhash/0.1.4: + /imurmurhash@0.1.4: resolution: {integrity: sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==} engines: {node: '>=0.8.19'} dev: true - /inflight/1.0.6: + /inflight@1.0.6: resolution: {integrity: sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==} dependencies: once: 1.4.0 wrappy: 1.0.2 - /inherits/2.0.4: + /inherits@2.0.4: resolution: {integrity: sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==} - /ipaddr.js/1.9.1: + /ipaddr.js@1.9.1: resolution: {integrity: sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==} engines: {node: '>= 0.10'} dev: true - /is-arrayish/0.2.1: + /is-arrayish@0.2.1: resolution: {integrity: sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==} dev: true - /is-core-module/2.13.1: + /is-core-module@2.13.1: resolution: {integrity: sha512-hHrIjvZsftOsvKSn2TRYl63zvxsgE0K+0mYMoH6gD4omR5IWB2KynivBQczo3+wF1cCkjzvptnI9Q0sPU66ilw==} dependencies: hasown: 2.0.0 dev: true - /is-docker/2.2.1: + /is-docker@2.2.1: resolution: {integrity: sha512-F+i2BKsFrH66iaUFc0woD8sLy8getkwTwtOBjvs56Cx4CgJDeKQeqfz8wAYiSb8JOprWhHH5p77PbmYCvvUuXQ==} engines: {node: '>=8'} hasBin: true - /is-extglob/2.1.1: + /is-extglob@2.1.1: resolution: {integrity: sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==} engines: {node: '>=0.10.0'} dev: true - /is-fullwidth-code-point/3.0.0: + /is-fullwidth-code-point@3.0.0: resolution: {integrity: sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==} engines: {node: '>=8'} - /is-generator-fn/2.1.0: + /is-generator-fn@2.1.0: resolution: {integrity: sha512-cTIB4yPYL/Grw0EaSzASzg6bBy9gqCofvWN8okThAYIxKJZC+udlRAmGbM0XLeniEJSs8uEgHPGuHSe1XsOLSQ==} engines: {node: '>=6'} dev: true - /is-glob/4.0.3: + /is-glob@4.0.3: resolution: {integrity: sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==} engines: {node: '>=0.10.0'} dependencies: is-extglob: 2.1.1 dev: true - /is-interactive/1.0.0: + /is-interactive@1.0.0: resolution: {integrity: sha512-2HvIEKRoqS62guEC+qBjpvRubdX910WCMuJTZ+I9yvqKU2/12eSL549HMwtabb4oupdj2sMP50k+XJfB/8JE6w==} engines: {node: '>=8'} dev: true - /is-number/7.0.0: + /is-number@7.0.0: resolution: {integrity: sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==} engines: {node: '>=0.12.0'} - /is-path-inside/3.0.3: + /is-path-inside@3.0.3: resolution: {integrity: sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==} engines: {node: '>=8'} dev: true - /is-promise/2.2.2: + /is-promise@2.2.2: resolution: {integrity: sha512-+lP4/6lKUBfQjZ2pdxThZvLUAafmZb8OAxFb8XXtiQmS35INgr85hdOGoEs124ez1FCnZJt6jau/T+alh58QFQ==} dev: true - /is-stream/2.0.1: + /is-stream@2.0.1: resolution: {integrity: sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==} engines: {node: '>=8'} dev: true - /is-typedarray/1.0.0: + /is-typedarray@1.0.0: resolution: {integrity: sha512-cyA56iCMHAh5CdzjJIa4aohJyeO1YbwLi3Jc35MmRU6poroFjIGZzUzupGiRPOjgHg9TLu43xbpwXk523fMxKA==} dev: true - /is-unicode-supported/0.1.0: + /is-unicode-supported@0.1.0: resolution: {integrity: sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw==} engines: {node: '>=10'} dev: true - /is-wsl/2.2.0: + /is-wsl@2.2.0: resolution: {integrity: sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww==} engines: {node: '>=8'} dependencies: is-docker: 2.2.1 - /isexe/2.0.0: + /isexe@2.0.0: resolution: {integrity: sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==} dev: true - /isstream/0.1.2: + /isstream@0.1.2: resolution: {integrity: sha512-Yljz7ffyPbrLpLngrMtZ7NduUgVvi6wG9RJ9IUcyCd59YQ911PBJphODUcbOVbqYfxe1wuYf/LJ8PauMRwsM/g==} dev: true - /istanbul-lib-coverage/3.2.2: + /istanbul-lib-coverage@3.2.2: resolution: {integrity: sha512-O8dpsF+r0WV/8MNRKfnmrtCWhuKjxrq2w+jpzBL5UZKTi2LeVWnWOmWRxFlesJONmc+wLAGvKQZEOanko0LFTg==} engines: {node: '>=8'} dev: true - /istanbul-lib-instrument/5.2.1: + /istanbul-lib-instrument@5.2.1: resolution: {integrity: sha512-pzqtp31nLv/XFOzXGuvhCb8qhjmTVo5vjVk19XE4CRlSWz0KoeJ3bw9XsA7nOp9YBf4qHjwBxkDzKcME/J29Yg==} engines: {node: '>=8'} dependencies: @@ -5216,7 +5276,7 @@ packages: - supports-color dev: true - /istanbul-lib-instrument/6.0.1: + /istanbul-lib-instrument@6.0.1: resolution: {integrity: sha512-EAMEJBsYuyyztxMxW3g7ugGPkrZsV57v0Hmv3mm1uQsmB+QnZuepg731CRaIgeUVSdmsTngOkSnauNF8p7FIhA==} engines: {node: '>=10'} dependencies: @@ -5229,7 +5289,7 @@ packages: - supports-color dev: true - /istanbul-lib-report/3.0.1: + /istanbul-lib-report@3.0.1: resolution: {integrity: sha512-GCfE1mtsHGOELCU8e/Z7YWzpmybrx/+dSTfLrvY8qRmaY6zXTKWn6WQIjaAFw069icm6GVMNkgu0NzI4iPZUNw==} engines: {node: '>=10'} dependencies: @@ -5238,7 +5298,7 @@ packages: supports-color: 7.2.0 dev: true - /istanbul-lib-source-maps/4.0.1: + /istanbul-lib-source-maps@4.0.1: resolution: {integrity: sha512-n3s8EwkdFIJCG3BPKBYvskgXGoy88ARzvegkitk60NxRdwltLOTaH7CUiMRXvwYorl0Q712iEjcWB+fK/MrWVw==} engines: {node: '>=10'} dependencies: @@ -5249,7 +5309,7 @@ packages: - supports-color dev: true - /istanbul-reports/3.1.6: + /istanbul-reports@3.1.6: resolution: {integrity: sha512-TLgnMkKg3iTDsQ9PbPTdpfAK2DzjF9mqUG7RMgcQl8oFjad8ob4laGxv5XV5U9MAfx8D6tSJiUyuAwzLicaxlg==} engines: {node: '>=8'} dependencies: @@ -5257,7 +5317,7 @@ packages: istanbul-lib-report: 3.0.1 dev: true - /jake/10.8.7: + /jake@10.8.7: resolution: {integrity: sha512-ZDi3aP+fG/LchyBzUM804VjddnwfSfsdeYkwt8NcbKRvo4rFkjhs456iLFn3k2ZUWvNe4i48WACDbza8fhq2+w==} engines: {node: '>=10'} hasBin: true @@ -5268,7 +5328,7 @@ packages: minimatch: 3.1.2 dev: true - /jest-changed-files/29.7.0: + /jest-changed-files@29.7.0: resolution: {integrity: sha512-fEArFiwf1BpQ+4bXSprcDc3/x4HSzL4al2tozwVpDFpsxALjLYdyiIK4e5Vz66GQJIbXJ82+35PtysofptNX2w==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: @@ -5277,7 +5337,7 @@ packages: p-limit: 3.1.0 dev: true - /jest-circus/29.7.0: + /jest-circus@29.7.0: resolution: {integrity: sha512-3E1nCMgipcTkCocFwM90XXQab9bS+GMsjdpmPrlelaxwD93Ad8iVEjX/vvHPdLPnFf+L40u+5+iutRdA1N9myw==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: @@ -5306,7 +5366,7 @@ packages: - supports-color dev: true - /jest-cli/29.7.0_lpnbhgxso4u2juc7wocetwmymy: + /jest-cli@29.7.0(@types/node@18.7.1)(ts-node@10.9.1): resolution: {integrity: sha512-OVVobw2IubN/GSYsxETi+gOe7Ka59EFMR/twOU3Jb2GnKKeMGJB5SGUUrEz3SFVmJASUdZUzy83sLNNQ2gZslg==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} hasBin: true @@ -5316,14 +5376,14 @@ packages: node-notifier: optional: true dependencies: - '@jest/core': 29.7.0_ts-node@10.9.1 + '@jest/core': 29.7.0(ts-node@10.9.1) '@jest/test-result': 29.7.0 '@jest/types': 29.6.3 chalk: 4.1.2 - create-jest: 29.7.0_lpnbhgxso4u2juc7wocetwmymy + create-jest: 29.7.0(@types/node@18.7.1)(ts-node@10.9.1) exit: 0.1.2 import-local: 3.1.0 - jest-config: 29.7.0_lpnbhgxso4u2juc7wocetwmymy + jest-config: 29.7.0(@types/node@18.7.1)(ts-node@10.9.1) jest-util: 29.7.0 jest-validate: 29.7.0 yargs: 17.7.2 @@ -5334,7 +5394,7 @@ packages: - ts-node dev: true - /jest-config/29.7.0_lpnbhgxso4u2juc7wocetwmymy: + /jest-config@29.7.0(@types/node@18.7.1)(ts-node@10.9.1): resolution: {integrity: sha512-uXbpfeQ7R6TZBqI3/TxCU4q4ttk3u0PJeC+E0zbfSoSjq6bJ7buBPxzQPL0ifrkY4DNu4JUdk0ImlBUYi840eQ==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} peerDependencies: @@ -5350,7 +5410,7 @@ packages: '@jest/test-sequencer': 29.7.0 '@jest/types': 29.6.3 '@types/node': 18.7.1 - babel-jest: 29.7.0_@babel+core@7.23.3 + babel-jest: 29.7.0(@babel/core@7.23.3) chalk: 4.1.2 ci-info: 3.9.0 deepmerge: 4.3.1 @@ -5369,13 +5429,13 @@ packages: pretty-format: 29.7.0 slash: 3.0.0 strip-json-comments: 3.1.1 - ts-node: 10.9.1_yh2n565uebuxffae3xow4xsrjq + ts-node: 10.9.1(@swc/core@1.3.99)(@types/node@18.7.1)(typescript@5.1.6) transitivePeerDependencies: - babel-plugin-macros - supports-color dev: true - /jest-diff/29.7.0: + /jest-diff@29.7.0: resolution: {integrity: sha512-LMIgiIrhigmPrs03JHpxUh2yISK3vLFPkAodPeo0+BuF7wA2FoQbkEg1u8gBYBThncu7e1oEDUfIXVuTqLRUjw==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: @@ -5384,14 +5444,14 @@ packages: jest-get-type: 29.6.3 pretty-format: 29.7.0 - /jest-docblock/29.7.0: + /jest-docblock@29.7.0: resolution: {integrity: sha512-q617Auw3A612guyaFgsbFeYpNP5t2aoUNLwBUbc/0kD1R4t9ixDbyFTHd1nok4epoVFpr7PmeWHrhvuV3XaJ4g==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: detect-newline: 3.1.0 dev: true - /jest-each/29.7.0: + /jest-each@29.7.0: resolution: {integrity: sha512-gns+Er14+ZrEoC5fhOfYCY1LOHHr0TI+rQUHZS8Ttw2l7gl+80eHc/gFf2Ktkw0+SIACDTeWvpFcv3B04VembQ==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: @@ -5402,7 +5462,7 @@ packages: pretty-format: 29.7.0 dev: true - /jest-environment-node/29.7.0: + /jest-environment-node@29.7.0: resolution: {integrity: sha512-DOSwCRqXirTOyheM+4d5YZOrWcdu0LNZ87ewUoywbcb2XR4wKgqiG8vNeYwhjFMbEkfju7wx2GYH0P2gevGvFw==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: @@ -5414,11 +5474,11 @@ packages: jest-util: 29.7.0 dev: true - /jest-get-type/29.6.3: + /jest-get-type@29.6.3: resolution: {integrity: sha512-zrteXnqYxfQh7l5FHyL38jL39di8H8rHoecLH3JNxH3BwOrBsNeabdap5e0I23lD4HHI8W5VFBZqG4Eaq5LNcw==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - /jest-haste-map/29.7.0: + /jest-haste-map@29.7.0: resolution: {integrity: sha512-fP8u2pyfqx0K1rGn1R9pyE0/KTn+G7PxktWidOBTqFPLYX0b9ksaMFkhK5vrS3DVun09pckLdlx90QthlW7AmA==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: @@ -5437,7 +5497,7 @@ packages: fsevents: 2.3.3 dev: true - /jest-leak-detector/29.7.0: + /jest-leak-detector@29.7.0: resolution: {integrity: sha512-kYA8IJcSYtST2BY9I+SMC32nDpBT3J2NvWJx8+JCuCdl/CR1I4EKUJROiP8XtCcxqgTTBGJNdbB1A8XRKbTetw==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: @@ -5445,7 +5505,7 @@ packages: pretty-format: 29.7.0 dev: true - /jest-matcher-utils/29.7.0: + /jest-matcher-utils@29.7.0: resolution: {integrity: sha512-sBkD+Xi9DtcChsI3L3u0+N0opgPYnCRPtGcQYrgXmR+hmt/fYfWAL0xRXYU8eWOdfuLgBe0YCW3AFtnRLagq/g==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: @@ -5454,7 +5514,7 @@ packages: jest-get-type: 29.6.3 pretty-format: 29.7.0 - /jest-message-util/29.7.0: + /jest-message-util@29.7.0: resolution: {integrity: sha512-GBEV4GRADeP+qtB2+6u61stea8mGcOT4mCtrYISZwfu9/ISHFJ/5zOMXYbpBE9RsS5+Gb63DW4FgmnKJ79Kf6w==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: @@ -5468,7 +5528,7 @@ packages: slash: 3.0.0 stack-utils: 2.0.6 - /jest-mock/29.7.0: + /jest-mock@29.7.0: resolution: {integrity: sha512-ITOMZn+UkYS4ZFh83xYAOzWStloNzJFO2s8DWrE4lhtGD+AorgnbkiKERe4wQVBydIGPx059g6riW5Btp6Llnw==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: @@ -5477,7 +5537,7 @@ packages: jest-util: 29.7.0 dev: true - /jest-pnp-resolver/1.2.3_jest-resolve@29.7.0: + /jest-pnp-resolver@1.2.3(jest-resolve@29.7.0): resolution: {integrity: sha512-+3NpwQEnRoIBtx4fyhblQDPgJI0H1IEIkX7ShLUjPGA7TtUTvI1oiKi3SR4oBR0hQhQR80l4WAe5RrXBwWMA8w==} engines: {node: '>=6'} peerDependencies: @@ -5489,12 +5549,12 @@ packages: jest-resolve: 29.7.0 dev: true - /jest-regex-util/29.6.3: + /jest-regex-util@29.6.3: resolution: {integrity: sha512-KJJBsRCyyLNWCNBOvZyRDnAIfUiRJ8v+hOBQYGn8gDyF3UegwiP4gwRR3/SDa42g1YbVycTidUF3rKjyLFDWbg==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dev: true - /jest-resolve-dependencies/29.7.0: + /jest-resolve-dependencies@29.7.0: resolution: {integrity: sha512-un0zD/6qxJ+S0et7WxeI3H5XSe9lTBBR7bOHCHXkKR6luG5mwDDlIzVQ0V5cZCuoTgEdcdwzTghYkTWfubi+nA==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: @@ -5504,14 +5564,14 @@ packages: - supports-color dev: true - /jest-resolve/29.7.0: + /jest-resolve@29.7.0: resolution: {integrity: sha512-IOVhZSrg+UvVAshDSDtHyFCCBUl/Q3AAJv8iZ6ZjnZ74xzvwuzLXid9IIIPgTnY62SJjfuupMKZsZQRsCvxEgA==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: chalk: 4.1.2 graceful-fs: 4.2.11 jest-haste-map: 29.7.0 - jest-pnp-resolver: 1.2.3_jest-resolve@29.7.0 + jest-pnp-resolver: 1.2.3(jest-resolve@29.7.0) jest-util: 29.7.0 jest-validate: 29.7.0 resolve: 1.22.8 @@ -5519,7 +5579,7 @@ packages: slash: 3.0.0 dev: true - /jest-runner/29.7.0: + /jest-runner@29.7.0: resolution: {integrity: sha512-fsc4N6cPCAahybGBfTRcq5wFR6fpLznMg47sY5aDpsoejOcVYFb07AHuSnR0liMcPTgBsA3ZJL6kFOjPdoNipQ==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: @@ -5548,7 +5608,7 @@ packages: - supports-color dev: true - /jest-runtime/29.7.0: + /jest-runtime@29.7.0: resolution: {integrity: sha512-gUnLjgwdGqW7B4LvOIkbKs9WGbn+QLqRQQ9juC6HndeDiezIwhDP+mhMwHWCEcfQ5RUXa6OPnFF8BJh5xegwwQ==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: @@ -5578,19 +5638,19 @@ packages: - supports-color dev: true - /jest-snapshot/29.7.0: + /jest-snapshot@29.7.0: resolution: {integrity: sha512-Rm0BMWtxBcioHr1/OX5YCP8Uov4riHvKPknOGs804Zg9JGZgmIBkbtlxJC/7Z4msKYVbIJtfU+tKb8xlYNfdkw==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: '@babel/core': 7.23.3 '@babel/generator': 7.23.3 - '@babel/plugin-syntax-jsx': 7.23.3_@babel+core@7.23.3 - '@babel/plugin-syntax-typescript': 7.23.3_@babel+core@7.23.3 + '@babel/plugin-syntax-jsx': 7.23.3(@babel/core@7.23.3) + '@babel/plugin-syntax-typescript': 7.23.3(@babel/core@7.23.3) '@babel/types': 7.23.3 '@jest/expect-utils': 29.7.0 '@jest/transform': 29.7.0 '@jest/types': 29.6.3 - babel-preset-current-node-syntax: 1.0.1_@babel+core@7.23.3 + babel-preset-current-node-syntax: 1.0.1(@babel/core@7.23.3) chalk: 4.1.2 expect: 29.7.0 graceful-fs: 4.2.11 @@ -5606,7 +5666,7 @@ packages: - supports-color dev: true - /jest-util/29.7.0: + /jest-util@29.7.0: resolution: {integrity: sha512-z6EbKajIpqGKU56y5KBUgy1dt1ihhQJgWzUlZHArA/+X2ad7Cb5iF+AK1EWVL/Bo7Rz9uurpqw6SiBCefUbCGA==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: @@ -5617,7 +5677,7 @@ packages: graceful-fs: 4.2.11 picomatch: 2.3.1 - /jest-validate/29.7.0: + /jest-validate@29.7.0: resolution: {integrity: sha512-ZB7wHqaRGVw/9hST/OuFUReG7M8vKeq0/J2egIGLdvjHCmYqGARhzXmtgi+gVeZ5uXFF219aOc3Ls2yLg27tkw==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: @@ -5629,7 +5689,7 @@ packages: pretty-format: 29.7.0 dev: true - /jest-watcher/29.7.0: + /jest-watcher@29.7.0: resolution: {integrity: sha512-49Fg7WXkU3Vl2h6LbLtMQ/HyB6rXSIX7SqvBLQmssRBGN9I0PNvPmAmCWSOY6SOvrjhI/F7/bGAv9RtnsPA03g==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: @@ -5643,7 +5703,7 @@ packages: string-length: 4.0.2 dev: true - /jest-worker/29.7.0: + /jest-worker@29.7.0: resolution: {integrity: sha512-eIz2msL/EzL9UFTFFx7jBTkeZfku0yUAyZZZmJ93H2TYEiroIx2PQjEXcwYtYl8zXCxb+PAmA2hLIt/6ZEkPHw==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: @@ -5653,7 +5713,7 @@ packages: supports-color: 8.1.1 dev: true - /jest/29.7.0_lpnbhgxso4u2juc7wocetwmymy: + /jest@29.7.0(@types/node@18.7.1)(ts-node@10.9.1): resolution: {integrity: sha512-NIy3oAFp9shda19hy4HK0HRTWKtPJmGdnvywu01nOqNC2vZg+Z+fvJDxpMQA88eb2I9EcafcdjYgsDthnYTvGw==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} hasBin: true @@ -5663,10 +5723,10 @@ packages: node-notifier: optional: true dependencies: - '@jest/core': 29.7.0_ts-node@10.9.1 + '@jest/core': 29.7.0(ts-node@10.9.1) '@jest/types': 29.6.3 import-local: 3.1.0 - jest-cli: 29.7.0_lpnbhgxso4u2juc7wocetwmymy + jest-cli: 29.7.0(@types/node@18.7.1)(ts-node@10.9.1) transitivePeerDependencies: - '@types/node' - babel-plugin-macros @@ -5674,70 +5734,70 @@ packages: - ts-node dev: true - /js-tokens/4.0.0: + /js-tokens@4.0.0: resolution: {integrity: sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==} - /js-yaml/3.14.1: + /js-yaml@3.14.1: resolution: {integrity: sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==} hasBin: true dependencies: argparse: 1.0.10 esprima: 4.0.1 - /js-yaml/4.1.0: + /js-yaml@4.1.0: resolution: {integrity: sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==} hasBin: true dependencies: argparse: 2.0.1 - /jsbn/0.1.1: + /jsbn@0.1.1: resolution: {integrity: sha512-UVU9dibq2JcFWxQPA6KCqj5O42VOmAY3zQUfEKxU0KpTGXwNoCjkX1e13eHNvw/xPynt6pU0rZ1htjWTNTSXsg==} dev: true - /jsesc/0.5.0: + /jsesc@0.5.0: resolution: {integrity: sha512-uZz5UnB7u4T9LvwmFqXii7pZSouaRPorGs5who1Ip7VO0wxanFvBL7GkM6dTHlgX+jhBApRetaWpnDabOeTcnA==} hasBin: true dev: true - /jsesc/2.5.2: + /jsesc@2.5.2: resolution: {integrity: sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==} engines: {node: '>=4'} hasBin: true dev: true - /json-buffer/3.0.1: + /json-buffer@3.0.1: resolution: {integrity: sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==} dev: true - /json-parse-even-better-errors/2.3.1: + /json-parse-even-better-errors@2.3.1: resolution: {integrity: sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==} dev: true - /json-schema-traverse/0.4.1: + /json-schema-traverse@0.4.1: resolution: {integrity: sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==} dev: true - /json-schema-traverse/1.0.0: + /json-schema-traverse@1.0.0: resolution: {integrity: sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==} dev: true - /json-schema/0.4.0: + /json-schema@0.4.0: resolution: {integrity: sha512-es94M3nTIfsEPisRafak+HDLfHXnKBhV3vU5eqPcS3flIWqcxJWgXHXiey3YrpaNsanY5ei1VoYEbOzijuq9BA==} dev: true - /json-stable-stringify-without-jsonify/1.0.1: + /json-stable-stringify-without-jsonify@1.0.1: resolution: {integrity: sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==} dev: true - /json-stringify-safe/5.0.1: + /json-stringify-safe@5.0.1: resolution: {integrity: sha512-ZClg6AaYvamvYEE82d3Iyd3vSSIjQ+odgjaTzRuO3s7toCdFKczob2i0zCh7JE8kWn17yvAWhUVxvqGwUalsRA==} - /json5/2.2.3: + /json5@2.2.3: resolution: {integrity: sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==} engines: {node: '>=6'} hasBin: true - /jsonc-eslint-parser/2.4.0: + /jsonc-eslint-parser@2.4.0: resolution: {integrity: sha512-WYDyuc/uFcGp6YtM2H0uKmUwieOuzeE/5YocFJLnLfclZ4inf3mRn8ZVy1s7Hxji7Jxm6Ss8gqpexD/GlKoGgg==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} dependencies: @@ -5747,22 +5807,22 @@ packages: semver: 7.5.4 dev: true - /jsonc-parser/3.2.0: + /jsonc-parser@3.2.0: resolution: {integrity: sha512-gfFQZrcTc8CnKXp6Y4/CBT3fTc0OVuDofpre4aEeEpSBPV5X5v4+Vmx+8snU7RLPrNHPKSgLxGo9YuQzz20o+w==} - /jsonfile/6.1.0: + /jsonfile@6.1.0: resolution: {integrity: sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==} dependencies: universalify: 2.0.1 optionalDependencies: graceful-fs: 4.2.11 - /jsonparse/1.3.1: + /jsonparse@1.3.1: resolution: {integrity: sha512-POQXvpdL69+CluYsillJ7SUhKvytYjW9vG/GKpnf+xP8UWgYEM/RaMzHHofbALDiKbbP1W8UEYmgGl39WkPZsg==} engines: {'0': node >= 0.2.0} dev: true - /jsonwebtoken/9.0.2: + /jsonwebtoken@9.0.2: resolution: {integrity: sha512-PRp66vJ865SSqOlgqS8hujT5U4AOgMfhrwYIuIhfKaoSCZcirrmASQr8CX7cUg+RMih+hgznrjp99o+W4pJLHQ==} engines: {node: '>=12', npm: '>=6'} dependencies: @@ -5778,7 +5838,7 @@ packages: semver: 7.5.4 dev: true - /jsprim/1.4.2: + /jsprim@1.4.2: resolution: {integrity: sha512-P2bSOMAc/ciLz6DzgjVlGJP9+BrJWu5UDGK70C2iweC5QBIeFf0ZXRvGjEj2uYgrY2MkAAhsSWHDWlFtEroZWw==} engines: {node: '>=0.6.0'} dependencies: @@ -5788,7 +5848,7 @@ packages: verror: 1.10.0 dev: true - /jwa/1.4.1: + /jwa@1.4.1: resolution: {integrity: sha512-qiLX/xhEEFKUAJ6FiBMbes3w9ATzyk5W7Hvzpa/SLYdxNtng+gcurvrI7TbACjIXlsJyr05/S1oUhZrc63evQA==} dependencies: buffer-equal-constant-time: 1.0.1 @@ -5796,42 +5856,42 @@ packages: safe-buffer: 5.2.1 dev: true - /jws/3.2.2: + /jws@3.2.2: resolution: {integrity: sha512-YHlZCB6lMTllWDtSPHz/ZXTsi8S00usEV6v1tjq8tOUZzw7DpSDWVXjXDre6ed1w/pd495ODpHZYSdkRTsa0HA==} dependencies: jwa: 1.4.1 safe-buffer: 5.2.1 dev: true - /keygrip/1.1.0: + /keygrip@1.1.0: resolution: {integrity: sha512-iYSchDJ+liQ8iwbSI2QqsQOvqv58eJCEanyJPJi+Khyu8smkcKSFUCbPwzFcL7YVtZ6eONjqRX/38caJ7QjRAQ==} engines: {node: '>= 0.6'} dependencies: tsscmp: 1.0.6 dev: true - /keyv/4.5.4: + /keyv@4.5.4: resolution: {integrity: sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==} dependencies: json-buffer: 3.0.1 dev: true - /kleur/3.0.3: + /kleur@3.0.3: resolution: {integrity: sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w==} engines: {node: '>=6'} dev: true - /kleur/4.1.5: + /kleur@4.1.5: resolution: {integrity: sha512-o+NO+8WrRiQEE4/7nwRJhN1HWpVmJm511pBHUxPLtp0BUISzlBplORYSmTclCnJvQq2tKu/sgl3xVpkc7ZWuQQ==} engines: {node: '>=6'} dev: true - /leven/3.1.0: + /leven@3.1.0: resolution: {integrity: sha512-qsda+H8jTaUaN/x5vzW2rzc+8Rw4TAQ/4KjB46IwK5VH+IlVeeeje/EoZRpiXvIqjFgK84QffqPztGI3VBLG1A==} engines: {node: '>=6'} dev: true - /levn/0.4.1: + /levn@0.4.1: resolution: {integrity: sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==} engines: {node: '>= 0.8.0'} dependencies: @@ -5839,83 +5899,83 @@ packages: type-check: 0.4.0 dev: true - /lines-and-columns/1.2.4: + /lines-and-columns@1.2.4: resolution: {integrity: sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==} dev: true - /lines-and-columns/2.0.4: + /lines-and-columns@2.0.4: resolution: {integrity: sha512-wM1+Z03eypVAVUCE7QdSqpVIvelbOakn1M0bPDoA4SGWPx3sNDVUiMo3L6To6WWGClB7VyXnhQ4Sn7gxiJbE6A==} engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} - /locate-path/5.0.0: + /locate-path@5.0.0: resolution: {integrity: sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==} engines: {node: '>=8'} dependencies: p-locate: 4.1.0 dev: true - /locate-path/6.0.0: + /locate-path@6.0.0: resolution: {integrity: sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==} engines: {node: '>=10'} dependencies: p-locate: 5.0.0 dev: true - /lockfile/1.0.4: + /lockfile@1.0.4: resolution: {integrity: sha512-cvbTwETRfsFh4nHsL1eGWapU1XFi5Ot9E85sWAwia7Y7EgB7vfqcZhTKZ+l7hCGxSPoushMv5GKhT5PdLv03WA==} dependencies: signal-exit: 3.0.7 dev: true - /lodash-es/4.17.21: + /lodash-es@4.17.21: resolution: {integrity: sha512-mKnC+QJ9pWVzv+C4/U3rRsHapFfHvQFoFB92e52xeyGMcX6/OlIl78je1u8vePzYZSkkogMPJ2yjxxsb89cxyw==} dev: true - /lodash.debounce/4.0.8: + /lodash.debounce@4.0.8: resolution: {integrity: sha512-FT1yDzDYEoYWhnSGnpE/4Kj1fLZkDFyqRb7fNt6FdYOSxlUWAtp42Eh6Wb0rGIv/m9Bgo7x4GhQbm5Ys4SG5ow==} dev: true - /lodash.includes/4.3.0: + /lodash.includes@4.3.0: resolution: {integrity: sha512-W3Bx6mdkRTGtlJISOvVD/lbqjTlPPUDTMnlXZFnVwi9NKJ6tiAk6LVdlhZMm17VZisqhKcgzpO5Wz91PCt5b0w==} dev: true - /lodash.isboolean/3.0.3: + /lodash.isboolean@3.0.3: resolution: {integrity: sha512-Bz5mupy2SVbPHURB98VAcw+aHh4vRV5IPNhILUCsOzRmsTmSQ17jIuqopAentWoehktxGd9e/hbIXq980/1QJg==} dev: true - /lodash.isinteger/4.0.4: + /lodash.isinteger@4.0.4: resolution: {integrity: sha512-DBwtEWN2caHQ9/imiNeEA5ys1JoRtRfY3d7V9wkqtbycnAmTvRRmbHKDV4a0EYc678/dia0jrte4tjYwVBaZUA==} dev: true - /lodash.isnumber/3.0.3: + /lodash.isnumber@3.0.3: resolution: {integrity: sha512-QYqzpfwO3/CWf3XP+Z+tkQsfaLL/EnUlXWVkIk5FUPc4sBdTehEqZONuyRt2P67PXAk+NXmTBcc97zw9t1FQrw==} dev: true - /lodash.isplainobject/4.0.6: + /lodash.isplainobject@4.0.6: resolution: {integrity: sha512-oSXzaWypCMHkPC3NvBEaPHf0KsA5mvPrOPgQWDsbg8n7orZ290M0BmC/jgRZ4vcJ6DTAhjrsSYgdsW/F+MFOBA==} dev: true - /lodash.isstring/4.0.1: + /lodash.isstring@4.0.1: resolution: {integrity: sha512-0wJxfxH1wgO3GrbuP+dTTk7op+6L41QCXbGINEmD+ny/G/eCqGzxyCsh7159S+mgDDcoarnBw6PC1PS5+wUGgw==} dev: true - /lodash.memoize/4.1.2: + /lodash.memoize@4.1.2: resolution: {integrity: sha512-t7j+NzmgnQzTAYXcsHYLgimltOV1MXHtlOWf6GjL9Kj8GK5FInw5JotxvbOs+IvV1/Dzo04/fCGfLVs7aXb4Ag==} dev: true - /lodash.merge/4.6.2: + /lodash.merge@4.6.2: resolution: {integrity: sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==} dev: true - /lodash.once/4.1.1: + /lodash.once@4.1.1: resolution: {integrity: sha512-Sb487aTOCr9drQVL8pIxOzVhafOjZN9UU54hiN8PU3uAiSV7lx1yYNpbNmex2PK6dSJoNTSJUUswT651yww3Mg==} dev: true - /lodash/4.17.21: + /lodash@4.17.21: resolution: {integrity: sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==} dev: true - /log-symbols/4.1.0: + /log-symbols@4.1.0: resolution: {integrity: sha512-8XPvpAA8uyhfteu8pIvQxpJZ7SYYdpUivZpGy6sFsBuKRY/7rQGavedeB8aK+Zkyq6upMFVL/9AW6vOYzfRyLg==} engines: {node: '>=10'} dependencies: @@ -5923,7 +5983,7 @@ packages: is-unicode-supported: 0.1.0 dev: true - /lowdb/1.0.0: + /lowdb@1.0.0: resolution: {integrity: sha512-2+x8esE/Wb9SQ1F9IHaYWfsC9FIecLOPrK4g17FGEayjUWH172H6nwicRovGvSE2CPZouc2MCIqCI7h9d+GftQ==} engines: {node: '>=4'} dependencies: @@ -5934,181 +5994,181 @@ packages: steno: 0.4.4 dev: true - /lru-cache/10.0.2: + /lru-cache@10.0.2: resolution: {integrity: sha512-Yj9mA8fPiVgOUpByoTZO5pNrcl5Yk37FcSHsUINpAsaBIEZIuqcCclDZJCVxqQShDsmYX8QG63svJiTbOATZwg==} engines: {node: 14 || >=16.14} dependencies: semver: 7.5.4 dev: true - /lru-cache/5.1.1: + /lru-cache@5.1.1: resolution: {integrity: sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==} dependencies: yallist: 3.1.1 dev: true - /lru-cache/6.0.0: + /lru-cache@6.0.0: resolution: {integrity: sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==} engines: {node: '>=10'} dependencies: yallist: 4.0.0 - /lru-cache/7.18.3: + /lru-cache@7.18.3: resolution: {integrity: sha512-jumlc0BIUrS3qJGgIkWZsyfAM7NCWiBcCDhnd+3NNM5KbBmLTgHVfWBcg6W+rLUsIpzpERPsvwUP7CckAQSOoA==} engines: {node: '>=12'} dev: true - /lunr/2.3.9: + /lunr@2.3.9: resolution: {integrity: sha512-zTU3DaZaF3Rt9rhN3uBMGQD3dD2/vFQqnvZCDv4dl5iOzq2IZQqTxu90r4E5J+nP70J3ilqVCrbho2eWaeW8Ow==} dev: true - /make-dir/4.0.0: + /make-dir@4.0.0: resolution: {integrity: sha512-hXdUTZYIVOt1Ex//jAQi+wTZZpUpwBj/0QsOzqegb3rGMMeJiSEu5xLHnYfBrRV4RH2+OCSOO95Is/7x1WJ4bw==} engines: {node: '>=10'} dependencies: semver: 7.5.4 dev: true - /make-error/1.3.6: + /make-error@1.3.6: resolution: {integrity: sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw==} - /makeerror/1.0.12: + /makeerror@1.0.12: resolution: {integrity: sha512-JmqCvUhmt43madlpFzG4BQzG2Z3m6tvQDNKdClZnO3VbIudJYmxsT0FNJMeiB2+JTSlTQTSbU8QdesVmwJcmLg==} dependencies: tmpl: 1.0.5 dev: true - /marked/4.3.0: + /marked@4.3.0: resolution: {integrity: sha512-PRsaiG84bK+AMvxziE/lCFss8juXjNaWzVbN5tXAm4XjeaS9NAHhop+PjQxz2A9h8Q4M/xGmzP8vqNwy6JeK0A==} engines: {node: '>= 12'} hasBin: true dev: true - /media-typer/0.3.0: + /media-typer@0.3.0: resolution: {integrity: sha512-dq+qelQ9akHpcOl/gUVRTxVIOkAJ1wR3QAvb4RsVjS8oVoFjDGTc679wJYmUmknUF5HwMLOgb5O+a3KxfWapPQ==} engines: {node: '>= 0.6'} dev: true - /merge-descriptors/1.0.1: + /merge-descriptors@1.0.1: resolution: {integrity: sha512-cCi6g3/Zr1iqQi6ySbseM1Xvooa98N0w31jzUYrXPX2xqObmFGHJ0tQ5u74H3mVh7wLouTseZyYIq39g8cNp1w==} dev: true - /merge-stream/2.0.0: + /merge-stream@2.0.0: resolution: {integrity: sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==} dev: true - /merge2/1.4.1: + /merge2@1.4.1: resolution: {integrity: sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==} engines: {node: '>= 8'} dev: true - /methods/1.1.2: + /methods@1.1.2: resolution: {integrity: sha512-iclAHeNqNm68zFtnZ0e+1L2yUIdvzNoauKU4WBA3VvH/vPFieF7qfRlwUZU+DA9P9bPXIS90ulxoUoCH23sV2w==} engines: {node: '>= 0.6'} dev: true - /micromatch/4.0.5: + /micromatch@4.0.5: resolution: {integrity: sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==} engines: {node: '>=8.6'} dependencies: braces: 3.0.2 picomatch: 2.3.1 - /mime-db/1.52.0: + /mime-db@1.52.0: resolution: {integrity: sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==} engines: {node: '>= 0.6'} - /mime-types/2.1.35: + /mime-types@2.1.35: resolution: {integrity: sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==} engines: {node: '>= 0.6'} dependencies: mime-db: 1.52.0 - /mime/1.6.0: + /mime@1.6.0: resolution: {integrity: sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==} engines: {node: '>=4'} hasBin: true dev: true - /mime/2.6.0: + /mime@2.6.0: resolution: {integrity: sha512-USPkMeET31rOMiarsBNIHZKLGgvKc/LrjofAnBlOttf5ajRvqiRA8QsenbcooctK6d6Ts6aqZXBA+XbkKthiQg==} engines: {node: '>=4.0.0'} hasBin: true dev: true - /mime/3.0.0: + /mime@3.0.0: resolution: {integrity: sha512-jSCU7/VB1loIWBZe14aEYHU/+1UMEHoaO7qxCOVJOw9GgH72VAWppxNcjU+x9a2k3GSIBXNKxXQFqRvvZ7vr3A==} engines: {node: '>=10.0.0'} hasBin: true dev: true - /mimic-fn/2.1.0: + /mimic-fn@2.1.0: resolution: {integrity: sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==} engines: {node: '>=6'} - /minimatch/3.0.5: + /minimatch@3.0.5: resolution: {integrity: sha512-tUpxzX0VAzJHjLu0xUfFv1gwVp9ba3IOuRAVH2EGuRW8a5emA2FlACLqiT/lDVtS1W+TGNwqz3sWaNyLgDJWuw==} dependencies: brace-expansion: 1.1.11 - /minimatch/3.1.2: + /minimatch@3.1.2: resolution: {integrity: sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==} dependencies: brace-expansion: 1.1.11 - /minimatch/5.1.6: + /minimatch@5.1.6: resolution: {integrity: sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g==} engines: {node: '>=10'} dependencies: brace-expansion: 2.0.1 dev: true - /minimatch/7.4.6: + /minimatch@7.4.6: resolution: {integrity: sha512-sBz8G/YjVniEz6lKPNpKxXwazJe4c19fEfV2GDMX6AjFz+MX9uDWIZW8XreVhkFW3fkIdTv/gxWr/Kks5FFAVw==} engines: {node: '>=10'} dependencies: brace-expansion: 2.0.1 dev: true - /minimatch/9.0.3: + /minimatch@9.0.3: resolution: {integrity: sha512-RHiac9mvaRw0x3AYRgDC1CxAP7HTcNrrECeA8YYJeWnpo+2Q5CegtZjaotWTWxDG3UeGA1coE05iH1mPjT/2mg==} engines: {node: '>=16 || 14 >=14.17'} dependencies: brace-expansion: 2.0.1 dev: true - /minimist/1.2.8: + /minimist@1.2.8: resolution: {integrity: sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==} - /mkdirp/0.5.6: + /mkdirp@0.5.6: resolution: {integrity: sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw==} hasBin: true dependencies: minimist: 1.2.8 dev: true - /mkdirp/1.0.4: + /mkdirp@1.0.4: resolution: {integrity: sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==} engines: {node: '>=10'} hasBin: true dev: true - /mock-socket/9.3.1: + /mock-socket@9.3.1: resolution: {integrity: sha512-qxBgB7Qa2sEQgHFjj0dSigq7fX4k6Saisd5Nelwp2q8mlbAFh5dHV9JTTlF8viYJLSSWgMCZFUom8PJcMNBoJw==} engines: {node: '>= 8'} - /ms/2.0.0: + /ms@2.0.0: resolution: {integrity: sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==} dev: true - /ms/2.1.2: + /ms@2.1.2: resolution: {integrity: sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==} - /ms/2.1.3: + /ms@2.1.3: resolution: {integrity: sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==} dev: true - /mv/2.1.1: + /mv@2.1.1: resolution: {integrity: sha512-at/ZndSy3xEGJ8i0ygALh8ru9qy7gWW1cmkaqBN29JmMlIvM//MEO9y1sk/avxuwnPcfhkejkLsuPxH81BrkSg==} engines: {node: '>=0.8.0'} dependencies: @@ -6117,33 +6177,33 @@ packages: rimraf: 2.4.5 dev: true - /nanoclone/0.2.1: + /nanoclone@0.2.1: resolution: {integrity: sha512-wynEP02LmIbLpcYw8uBKpcfF6dmg2vcpKqxeH5UcoKEYdExslsdUA4ugFauuaeYdTB76ez6gJW8XAZ6CgkXYxA==} dev: true - /natural-compare-lite/1.4.0: + /natural-compare-lite@1.4.0: resolution: {integrity: sha512-Tj+HTDSJJKaZnfiuw+iaF9skdPpTo2GtEly5JHnWV/hfv2Qj/9RKsGISQtLh2ox3l5EAGw487hnBee0sIJ6v2g==} dev: true - /natural-compare/1.4.0: + /natural-compare@1.4.0: resolution: {integrity: sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==} dev: true - /ncp/2.0.0: + /ncp@2.0.0: resolution: {integrity: sha512-zIdGUrPRFTUELUvr3Gmc7KZ2Sw/h1PiVM0Af/oHB6zgnV1ikqSfRk+TOufi79aHYCW3NiOXmr1BP5nWbzojLaA==} hasBin: true dev: true - /negotiator/0.6.3: + /negotiator@0.6.3: resolution: {integrity: sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==} engines: {node: '>= 0.6'} dev: true - /neo-async/2.6.2: + /neo-async@2.6.2: resolution: {integrity: sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==} dev: true - /nock/13.5.4: + /nock@13.5.4: resolution: {integrity: sha512-yAyTfdeNJGGBFxWdzSKCBYxs5FxLbCg5X5Q4ets974hcQzG1+qCxvIyOo4j2Ry6MUlhWVMX4OoYDefAIIwupjw==} engines: {node: '>= 10.13'} dependencies: @@ -6153,14 +6213,14 @@ packages: transitivePeerDependencies: - supports-color - /node-addon-api/3.2.1: + /node-addon-api@3.2.1: resolution: {integrity: sha512-mmcei9JghVNDYydghQmeDX8KoAm0FAiYyIcUt/N4nhyAipB17pllZQDOJD2fotxABnt4Mdz+dKTO7eftLg4d0A==} - /node-domexception/1.0.0: + /node-domexception@1.0.0: resolution: {integrity: sha512-/jKZoMpw0F8GRwl4/eLROPA3cfcXtLApP0QzLmUT/HuPCZWyB7IY9ZrMeKw2O/nFIqPQB3PVM9aYm0F312AXDQ==} engines: {node: '>=10.5.0'} - /node-fetch/2.6.7: + /node-fetch@2.6.7: resolution: {integrity: sha512-ZjMPFEfVx5j+y2yF35Kzx5sF7kDzxuDj6ziH4FFbOp87zKDZNx8yExJIb05OGF4Nlt9IHFIMBkRl41VdvcNdbQ==} engines: {node: 4.x || >=6.0.0} peerDependencies: @@ -6172,7 +6232,7 @@ packages: whatwg-url: 5.0.0 dev: true - /node-fetch/3.3.2: + /node-fetch@3.3.2: resolution: {integrity: sha512-dRB78srN/l6gqWulah9SrxeYnxeddIG30+GOqK/9OlLVyLg3HPnr6SqOWTWOXKRwC2eGYCkZ59NNuSgvSrpgOA==} engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} dependencies: @@ -6180,27 +6240,27 @@ packages: fetch-blob: 3.2.0 formdata-polyfill: 4.0.10 - /node-gyp-build/4.6.1: + /node-gyp-build@4.6.1: resolution: {integrity: sha512-24vnklJmyRS8ViBNI8KbtK/r/DmXQMRiOMXTNz2nrTnAYUwjmEEbnnpB/+kt+yWRv73bPsSPRFddrcIbAxSiMQ==} hasBin: true - /node-int64/0.4.0: + /node-int64@0.4.0: resolution: {integrity: sha512-O5lz91xSOeoXP6DulyHfllpq+Eg00MWitZIbtPfoSEvqIHdl5gfcY6hYzDWnj0qD5tz52PI08u9qUvSVeUBeHw==} dev: true - /node-machine-id/1.1.12: + /node-machine-id@1.1.12: resolution: {integrity: sha512-QNABxbrPa3qEIfrE6GOJ7BYIuignnJw7iQ2YPbc3Nla1HzRJjXzZOiikfF8m7eAMfichLt3M4VgLOetqgDmgGQ==} - /node-releases/2.0.13: + /node-releases@2.0.13: resolution: {integrity: sha512-uYr7J37ae/ORWdZeQ1xxMJe3NtdmqMC/JZK+geofDrkLUApKRHPd18/TxtBOJ4A0/+uUIliorNrfYV6s1b02eQ==} dev: true - /normalize-path/3.0.0: + /normalize-path@3.0.0: resolution: {integrity: sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==} engines: {node: '>=0.10.0'} dev: true - /npm-package-arg/11.0.1: + /npm-package-arg@11.0.1: resolution: {integrity: sha512-M7s1BD4NxdAvBKUPqqRW957Xwcl/4Zvo8Aj+ANrzvIPzGJZElrH7Z//rSaec2ORcND6FHHLnZeY8qgTpXDMFQQ==} engines: {node: ^16.14.0 || >=18.0.0} dependencies: @@ -6210,13 +6270,13 @@ packages: validate-npm-package-name: 5.0.0 dev: true - /npm-run-path/4.0.1: + /npm-run-path@4.0.1: resolution: {integrity: sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==} engines: {node: '>=8'} dependencies: path-key: 3.1.1 - /nx/16.10.0_3r3gikilagjg6w6ti3lc3btjoa: + /nx@16.10.0(@swc-node/register@1.6.8)(@swc/core@1.3.99): resolution: {integrity: sha512-gZl4iCC0Hx0Qe1VWmO4Bkeul2nttuXdPpfnlcDKSACGu3ZIo+uySqwOF8yBAxSTIf8xe2JRhgzJN1aFkuezEBg==} hasBin: true requiresBuild: true @@ -6229,9 +6289,9 @@ packages: '@swc/core': optional: true dependencies: - '@nrwl/tao': 16.10.0_3r3gikilagjg6w6ti3lc3btjoa + '@nrwl/tao': 16.10.0(@swc-node/register@1.6.8)(@swc/core@1.3.99) '@parcel/watcher': 2.0.4 - '@swc-node/register': 1.6.8_ssd54yhir2o3pnq2lx32lgv32i + '@swc-node/register': 1.6.8(@swc/core@1.3.99)(typescript@5.1.6) '@swc/core': 1.3.99 '@yarnpkg/lockfile': 1.1.0 '@yarnpkg/parsers': 3.0.0-rc.46 @@ -6281,7 +6341,7 @@ packages: transitivePeerDependencies: - debug - /nx/17.1.3_3r3gikilagjg6w6ti3lc3btjoa: + /nx@17.1.3(@swc-node/register@1.6.8)(@swc/core@1.3.99): resolution: {integrity: sha512-6LYoTt01nS1d/dvvYtRs+pEAMQmUVsd2fr/a8+X1cDjWrb8wsf1O3DwlBTqKOXOazpS3eOr0Ukc9N1svbu7uXA==} hasBin: true requiresBuild: true @@ -6294,8 +6354,8 @@ packages: '@swc/core': optional: true dependencies: - '@nrwl/tao': 17.1.3_3r3gikilagjg6w6ti3lc3btjoa - '@swc-node/register': 1.6.8_ssd54yhir2o3pnq2lx32lgv32i + '@nrwl/tao': 17.1.3(@swc-node/register@1.6.8)(@swc/core@1.3.99) + '@swc-node/register': 1.6.8(@swc/core@1.3.99)(typescript@5.1.6) '@swc/core': 1.3.99 '@yarnpkg/lockfile': 1.1.0 '@yarnpkg/parsers': 3.0.0-rc.46 @@ -6346,47 +6406,47 @@ packages: - debug dev: true - /oauth-sign/0.9.0: + /oauth-sign@0.9.0: resolution: {integrity: sha512-fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ==} dev: true - /object-assign/4.1.1: + /object-assign@4.1.1: resolution: {integrity: sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==} engines: {node: '>=0.10.0'} dev: true - /object-inspect/1.13.1: + /object-inspect@1.13.1: resolution: {integrity: sha512-5qoj1RUiKOMsCCNLV1CBiPYE10sziTsnmNxkAI/rZhiD63CF7IqdFGC/XzjWjpSgLf0LxXX3bDFIh0E18f6UhQ==} dev: true - /on-exit-leak-free/0.2.0: + /on-exit-leak-free@0.2.0: resolution: {integrity: sha512-dqaz3u44QbRXQooZLTUKU41ZrzYrcvLISVgbrzbyCMxpmSLJvZ3ZamIJIZ29P6OhZIkNIQKosdeM6t1LYbA9hg==} dev: true - /on-finished/2.4.1: + /on-finished@2.4.1: resolution: {integrity: sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg==} engines: {node: '>= 0.8'} dependencies: ee-first: 1.1.1 dev: true - /on-headers/1.0.2: + /on-headers@1.0.2: resolution: {integrity: sha512-pZAE+FJLoyITytdqK0U5s+FIpjN0JP3OzFi/u8Rx+EV5/W+JTWGXG8xFzevE7AjBfDqHv/8vL8qQsIhHnqRkrA==} engines: {node: '>= 0.8'} dev: true - /once/1.4.0: + /once@1.4.0: resolution: {integrity: sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==} dependencies: wrappy: 1.0.2 - /onetime/5.1.2: + /onetime@5.1.2: resolution: {integrity: sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==} engines: {node: '>=6'} dependencies: mimic-fn: 2.1.0 - /open/8.4.2: + /open@8.4.2: resolution: {integrity: sha512-7x81NCL719oNbsq/3mh+hVrAWmFuEYUqrq/Iw3kUzH8ReypT9QQ0BLoJS7/G9k6N81XjW4qHWtjWwe/9eLy1EQ==} engines: {node: '>=12'} dependencies: @@ -6394,7 +6454,7 @@ packages: is-docker: 2.2.1 is-wsl: 2.2.0 - /optionator/0.9.3: + /optionator@0.9.3: resolution: {integrity: sha512-JjCoypp+jKn1ttEFExxhetCKeJt9zhAgAve5FXHixTvFDW/5aEktX9bufBKLRRMdU7bNtpLfcGu94B3cdEJgjg==} engines: {node: '>= 0.8.0'} dependencies: @@ -6406,7 +6466,7 @@ packages: type-check: 0.4.0 dev: true - /ora/5.3.0: + /ora@5.3.0: resolution: {integrity: sha512-zAKMgGXUim0Jyd6CXK9lraBnD3H5yPGBPPOkC23a2BG6hsm4Zu6OQSjQuEtV0BHDf4aKHcUFvJiGRrFuW3MG8g==} engines: {node: '>=10'} dependencies: @@ -6420,47 +6480,47 @@ packages: wcwidth: 1.0.1 dev: true - /p-limit/2.3.0: + /p-limit@2.3.0: resolution: {integrity: sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==} engines: {node: '>=6'} dependencies: p-try: 2.2.0 dev: true - /p-limit/3.1.0: + /p-limit@3.1.0: resolution: {integrity: sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==} engines: {node: '>=10'} dependencies: yocto-queue: 0.1.0 dev: true - /p-locate/4.1.0: + /p-locate@4.1.0: resolution: {integrity: sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==} engines: {node: '>=8'} dependencies: p-limit: 2.3.0 dev: true - /p-locate/5.0.0: + /p-locate@5.0.0: resolution: {integrity: sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==} engines: {node: '>=10'} dependencies: p-limit: 3.1.0 dev: true - /p-try/2.2.0: + /p-try@2.2.0: resolution: {integrity: sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==} engines: {node: '>=6'} dev: true - /parent-module/1.0.1: + /parent-module@1.0.1: resolution: {integrity: sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==} engines: {node: '>=6'} dependencies: callsites: 3.1.0 dev: true - /parse-json/5.2.0: + /parse-json@5.2.0: resolution: {integrity: sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==} engines: {node: '>=8'} dependencies: @@ -6470,73 +6530,73 @@ packages: lines-and-columns: 1.2.4 dev: true - /parseurl/1.3.3: + /parseurl@1.3.3: resolution: {integrity: sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==} engines: {node: '>= 0.8'} dev: true - /path-exists/4.0.0: + /path-exists@4.0.0: resolution: {integrity: sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==} engines: {node: '>=8'} dev: true - /path-is-absolute/1.0.1: + /path-is-absolute@1.0.1: resolution: {integrity: sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==} engines: {node: '>=0.10.0'} - /path-key/3.1.1: + /path-key@3.1.1: resolution: {integrity: sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==} engines: {node: '>=8'} - /path-parse/1.0.7: + /path-parse@1.0.7: resolution: {integrity: sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==} dev: true - /path-to-regexp/0.1.7: + /path-to-regexp@0.1.7: resolution: {integrity: sha512-5DFkuoqlv1uYQKxy8omFBeJPQcdoE07Kv2sferDCrAq1ohOU+MSDswDIbnx3YAM60qIOnYa53wBhXW0EbMonrQ==} dev: true - /path-type/4.0.0: + /path-type@4.0.0: resolution: {integrity: sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==} engines: {node: '>=8'} dev: true - /performance-now/2.1.0: + /performance-now@2.1.0: resolution: {integrity: sha512-7EAHlyLHI56VEIdK57uwHdHKIaAGbnXPiw0yWbarQZOKaKpvUIgW0jWRVLiatnM+XXlSwsanIBH/hzGMJulMow==} dev: true - /picocolors/1.0.0: + /picocolors@1.0.0: resolution: {integrity: sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==} dev: true - /picomatch/2.3.1: + /picomatch@2.3.1: resolution: {integrity: sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==} engines: {node: '>=8.6'} - /pify/3.0.0: + /pify@3.0.0: resolution: {integrity: sha512-C3FsVNH1udSEX48gGX1xfvwTWfsYWj5U+8/uK15BGzIGrKoUpghX8hWZwa/OFnakBiiVNmBvemTJR5mcy7iPcg==} engines: {node: '>=4'} dev: true - /pino-abstract-transport/0.5.0: + /pino-abstract-transport@0.5.0: resolution: {integrity: sha512-+KAgmVeqXYbTtU2FScx1XS3kNyfZ5TrXY07V96QnUSFqo2gAqlvmaxH67Lj7SWazqsMabf+58ctdTcBgnOLUOQ==} dependencies: duplexify: 4.1.2 split2: 4.2.0 dev: true - /pino-abstract-transport/1.0.0: + /pino-abstract-transport@1.0.0: resolution: {integrity: sha512-c7vo5OpW4wIS42hUVcT5REsL8ZljsUfBjqV/e2sFxmFEFZiq1XLUp5EYLtuDH6PEHq9W1egWqRbnLUP5FuZmOA==} dependencies: readable-stream: 4.4.2 split2: 4.2.0 dev: true - /pino-std-serializers/4.0.0: + /pino-std-serializers@4.0.0: resolution: {integrity: sha512-cK0pekc1Kjy5w9V2/n+8MkZwusa6EyyxfeQCB799CQRhRt/CqYKiWs5adeu8Shve2ZNffvfC/7J64A2PJo1W/Q==} dev: true - /pino/7.11.0: + /pino@7.11.0: resolution: {integrity: sha512-dMACeu63HtRLmCG8VKdy4cShCPKaYDR4youZqoSWLxl5Gu99HUw8bw75thbPv9Nip+H+QYX8o3ZJbTdVZZ2TVg==} hasBin: true dependencies: @@ -6553,34 +6613,34 @@ packages: thread-stream: 0.15.2 dev: true - /pirates/4.0.6: + /pirates@4.0.6: resolution: {integrity: sha512-saLsH7WeYYPiD25LDuLRRY/i+6HaPYr6G1OUlN39otzkSTxKnubR9RTxS3/Kk50s1g2JTgFwWQDQyplC5/SHZg==} engines: {node: '>= 6'} - /pkg-dir/4.2.0: + /pkg-dir@4.2.0: resolution: {integrity: sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==} engines: {node: '>=8'} dependencies: find-up: 4.1.0 dev: true - /pkginfo/0.4.1: + /pkginfo@0.4.1: resolution: {integrity: sha512-8xCNE/aT/EXKenuMDZ+xTVwkT8gsoHN2z/Q29l80u0ppGEXVvsKRzNMbtKhg8LS8k1tJLAHHylf6p4VFmP6XUQ==} engines: {node: '>= 0.4.0'} dev: true - /prelude-ls/1.2.1: + /prelude-ls@1.2.1: resolution: {integrity: sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==} engines: {node: '>= 0.8.0'} dev: true - /prettier/2.8.8: + /prettier@2.8.8: resolution: {integrity: sha512-tdN8qQGvNjw4CHbY+XXk0JgCXn9QiF21a55rBe5LJAU+kDyC4WQn4+awm2Xfk2lQMk5fKup9XgzTZtGkjBdP9Q==} engines: {node: '>=10.13.0'} hasBin: true dev: false - /pretty-format/29.7.0: + /pretty-format@29.7.0: resolution: {integrity: sha512-Pdlw/oPxN+aXdmM9R00JVC9WVFoCLTKJvDVLgmJ+qAffBMxsV85l/Lu7sNx4zSzPyoL2euImuEwHhOXdEgNFZQ==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: @@ -6588,21 +6648,21 @@ packages: ansi-styles: 5.2.0 react-is: 18.2.0 - /proc-log/3.0.0: + /proc-log@3.0.0: resolution: {integrity: sha512-++Vn7NS4Xf9NacaU9Xq3URUuqZETPsf8L4j5/ckhaRYsfPeRyzGw+iDjFhV/Jr3uNmTvvddEJFWh5R1gRgUH8A==} engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} dev: true - /process-warning/1.0.0: + /process-warning@1.0.0: resolution: {integrity: sha512-du4wfLyj4yCZq1VupnVSZmRsPJsNuxoDQFdCFHLaYiEbFBD7QE0a+I4D7hOxrVnh78QE/YipFAj9lXHiXocV+Q==} dev: true - /process/0.11.10: + /process@0.11.10: resolution: {integrity: sha512-cdGef/drWFoydD1JsMzuFf8100nZl+GT+yacc2bEced5f9Rjk4z+WtFUTBu9PhOi9j/jfmBPu0mMEY4wIdAF8A==} engines: {node: '>= 0.6.0'} dev: true - /prompts/2.4.2: + /prompts@2.4.2: resolution: {integrity: sha512-NxNv/kLguCA7p3jE8oL2aEBsrJWgAakBpgmgK6lpPWV+WuOmY6r2/zbAVnP+T8bQlA0nzHXSJSJW0Hq7ylaD2Q==} engines: {node: '>= 6'} dependencies: @@ -6610,15 +6670,15 @@ packages: sisteransi: 1.0.5 dev: true - /propagate/2.0.1: + /propagate@2.0.1: resolution: {integrity: sha512-vGrhOavPSTz4QVNuBNdcNXePNdNMaO1xj9yBeH1ScQPjk/rhg9sSlCXPhMkFuaNNW/syTvYqsnbIJxMBfRbbag==} engines: {node: '>= 8'} - /property-expr/2.0.6: + /property-expr@2.0.6: resolution: {integrity: sha512-SVtmxhRE/CGkn3eZY1T6pC8Nln6Fr/lu1mKSgRud0eC73whjGfoAogbn78LkD8aFL0zz3bAFerKSnOl7NlErBA==} dev: true - /proxy-addr/2.0.7: + /proxy-addr@2.0.7: resolution: {integrity: sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg==} engines: {node: '>= 0.10'} dependencies: @@ -6626,48 +6686,48 @@ packages: ipaddr.js: 1.9.1 dev: true - /proxy-from-env/1.1.0: + /proxy-from-env@1.1.0: resolution: {integrity: sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==} - /psl/1.9.0: + /psl@1.9.0: resolution: {integrity: sha512-E/ZsdU4HLs/68gYzgGTkMicWTLPdAftJLfJFlLUAAKZGkStNU72sZjT66SnMDVOfOWY/YAoiD7Jxa9iHvngcag==} dev: true - /punycode/2.3.1: + /punycode@2.3.1: resolution: {integrity: sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==} engines: {node: '>=6'} dev: true - /pure-rand/6.0.4: + /pure-rand@6.0.4: resolution: {integrity: sha512-LA0Y9kxMYv47GIPJy6MI84fqTd2HmYZI83W/kM/SkKfDlajnZYfmXFTxkbY+xSBPkLJxltMa9hIkmdc29eguMA==} dev: true - /qs/6.11.0: + /qs@6.11.0: resolution: {integrity: sha512-MvjoMCJwEarSbUYk5O+nmoSzSutSsTwF85zcHPQ9OrlFoZOYIjaqBAJIqIXjptyD5vThxGq52Xu/MaJzRkIk4Q==} engines: {node: '>=0.6'} dependencies: side-channel: 1.0.4 dev: true - /qs/6.5.3: + /qs@6.5.3: resolution: {integrity: sha512-qxXIEh4pCGfHICj1mAJQ2/2XVZkjCDTcEgfoSQxc/fYivUZxTkk7L3bDBJSoNrEzXI17oUO5Dp07ktqE5KzczA==} engines: {node: '>=0.6'} dev: true - /queue-microtask/1.2.3: + /queue-microtask@1.2.3: resolution: {integrity: sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==} dev: true - /quick-format-unescaped/4.0.4: + /quick-format-unescaped@4.0.4: resolution: {integrity: sha512-tYC1Q1hgyRuHgloV/YXs2w15unPVh8qfu/qCTfhTYamaw7fyhumKa2yGpdSo87vY32rIclj+4fWYQXUMs9EHvg==} dev: true - /range-parser/1.2.1: + /range-parser@1.2.1: resolution: {integrity: sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==} engines: {node: '>= 0.6'} dev: true - /raw-body/2.5.1: + /raw-body@2.5.1: resolution: {integrity: sha512-qqJBtEyVgS0ZmPGdCFPWJ3FreoqvG4MVQln/kCgF7Olq95IbOp0/BWyMwbdtn4VTvkM8Y7khCQ2Xgk/tcrCXig==} engines: {node: '>= 0.8'} dependencies: @@ -6677,10 +6737,10 @@ packages: unpipe: 1.0.0 dev: true - /react-is/18.2.0: + /react-is@18.2.0: resolution: {integrity: sha512-xWGDIW6x921xtzPkhiULtthJHoJvBbF3q26fzloPCK0hsvxtPVelvftw3zjbHWSkR2km9Z+4uxbDDK/6Zw9B8w==} - /readable-stream/3.6.2: + /readable-stream@3.6.2: resolution: {integrity: sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==} engines: {node: '>= 6'} dependencies: @@ -6688,7 +6748,7 @@ packages: string_decoder: 1.3.0 util-deprecate: 1.0.2 - /readable-stream/4.4.2: + /readable-stream@4.4.2: resolution: {integrity: sha512-Lk/fICSyIhodxy1IDK2HazkeGjSmezAWX2egdtJnYhtzKEsBPJowlI6F6LPb5tqIQILrMbx22S5o3GuJavPusA==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} dependencies: @@ -6699,33 +6759,33 @@ packages: string_decoder: 1.3.0 dev: true - /real-require/0.1.0: + /real-require@0.1.0: resolution: {integrity: sha512-r/H9MzAWtrv8aSVjPCMFpDMl5q66GqtmmRkRjpHTsp4zBAa+snZyiQNlMONiUmEJcsnaw0wCauJ2GWODr/aFkg==} engines: {node: '>= 12.13.0'} dev: true - /regenerate-unicode-properties/10.1.1: + /regenerate-unicode-properties@10.1.1: resolution: {integrity: sha512-X007RyZLsCJVVrjgEFVpLUTZwyOZk3oiL75ZcuYjlIWd6rNJtOjkBwQc5AsRrpbKVkxN6sklw/k/9m2jJYOf8Q==} engines: {node: '>=4'} dependencies: regenerate: 1.4.2 dev: true - /regenerate/1.4.2: + /regenerate@1.4.2: resolution: {integrity: sha512-zrceR/XhGYU/d/opr2EKO7aRHUeiBI8qjtfHqADTwZd6Szfy16la6kqD0MIUs5z5hx6AaKa+PixpPrR289+I0A==} dev: true - /regenerator-runtime/0.14.0: + /regenerator-runtime@0.14.0: resolution: {integrity: sha512-srw17NI0TUWHuGa5CFGGmhfNIeja30WMBfbslPNhf6JrqQlLN5gcrvig1oqPxiVaXb0oW0XRKtH6Nngs5lKCIA==} dev: true - /regenerator-transform/0.15.2: + /regenerator-transform@0.15.2: resolution: {integrity: sha512-hfMp2BoF0qOk3uc5V20ALGDS2ddjQaLrdl7xrGXvAIow7qeWRM2VA2HuCHkUKk9slq3VwEwLNK3DFBqDfPGYtg==} dependencies: '@babel/runtime': 7.23.2 dev: true - /regexpu-core/5.3.2: + /regexpu-core@5.3.2: resolution: {integrity: sha512-RAM5FlZz+Lhmo7db9L298p2vHP5ZywrVXmVXpmAD9GuL5MPH6t9ROw1iA/wfHkQ76Qe7AaPF0nGuim96/IrQMQ==} engines: {node: '>=4'} dependencies: @@ -6737,14 +6797,14 @@ packages: unicode-match-property-value-ecmascript: 2.1.0 dev: true - /regjsparser/0.9.1: + /regjsparser@0.9.1: resolution: {integrity: sha512-dQUtn90WanSNl+7mQKcXAgZxvUe7Z0SqXlgzv0za4LwiUhyzBC58yQO3liFoUgu8GiJVInAhJjkj1N0EtQ5nkQ==} hasBin: true dependencies: jsesc: 0.5.0 dev: true - /request/2.88.2: + /request@2.88.2: resolution: {integrity: sha512-MsvtOrfG9ZcrOwAW+Qi+F6HbD0CWXEh9ou77uOb7FM2WPhwT7smM833PzanhJLsgXjN89Ir6V2PczXNnMpwKhw==} engines: {node: '>= 6'} deprecated: request has been deprecated, see https://github.com/request/request/issues/3142 @@ -6771,43 +6831,43 @@ packages: uuid: 3.4.0 dev: true - /require-directory/2.1.1: + /require-directory@2.1.1: resolution: {integrity: sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==} engines: {node: '>=0.10.0'} - /require-from-string/2.0.2: + /require-from-string@2.0.2: resolution: {integrity: sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==} engines: {node: '>=0.10.0'} dev: true - /resolve-cwd/3.0.0: + /resolve-cwd@3.0.0: resolution: {integrity: sha512-OrZaX2Mb+rJCpH/6CpSqt9xFVpN++x01XnN2ie9g6P5/3xelLAkXWVADpdz1IHD/KFfEXyE6V0U01OQ3UO2rEg==} engines: {node: '>=8'} dependencies: resolve-from: 5.0.0 dev: true - /resolve-from/4.0.0: + /resolve-from@4.0.0: resolution: {integrity: sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==} engines: {node: '>=4'} dev: true - /resolve-from/5.0.0: + /resolve-from@5.0.0: resolution: {integrity: sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==} engines: {node: '>=8'} dev: true - /resolve.exports/1.1.0: + /resolve.exports@1.1.0: resolution: {integrity: sha512-J1l+Zxxp4XK3LUDZ9m60LRJF/mAe4z6a4xyabPHk7pvK5t35dACV32iIjJDFeWZFfZlO29w6SZ67knR0tHzJtQ==} engines: {node: '>=10'} dev: true - /resolve.exports/2.0.2: + /resolve.exports@2.0.2: resolution: {integrity: sha512-X2UW6Nw3n/aMgDVy+0rSqgHlv39WZAlZrXCdnbyEiKm17DSqHX4MmQMaST3FbeWR5FTuRcUwYAziZajji0Y7mg==} engines: {node: '>=10'} dev: true - /resolve/1.22.8: + /resolve@1.22.8: resolution: {integrity: sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw==} hasBin: true dependencies: @@ -6816,75 +6876,76 @@ packages: supports-preserve-symlinks-flag: 1.0.0 dev: true - /restore-cursor/3.1.0: + /restore-cursor@3.1.0: resolution: {integrity: sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA==} engines: {node: '>=8'} dependencies: onetime: 5.1.2 signal-exit: 3.0.7 - /reusify/1.0.4: + /reusify@1.0.4: resolution: {integrity: sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==} engines: {iojs: '>=1.0.0', node: '>=0.10.0'} dev: true - /rimraf/2.4.5: + /rimraf@2.4.5: resolution: {integrity: sha512-J5xnxTyqaiw06JjMftq7L9ouA448dw/E7dKghkP9WpKNuwmARNNg+Gk8/u5ryb9N/Yo2+z3MCwuqFK/+qPOPfQ==} hasBin: true dependencies: glob: 6.0.4 dev: true - /rimraf/3.0.2: + /rimraf@3.0.2: resolution: {integrity: sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==} hasBin: true dependencies: glob: 7.1.4 - /run-parallel/1.2.0: + /run-parallel@1.2.0: resolution: {integrity: sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==} dependencies: queue-microtask: 1.2.3 dev: true - /rxjs/7.8.1: + /rxjs@7.8.1: resolution: {integrity: sha512-AA3TVj+0A2iuIoQkWEK/tqFjBq2j+6PO6Y0zJcvzLAFhEFIO3HL0vls9hWLncZbAAbK0mar7oZ4V079I/qPMxg==} dependencies: tslib: 2.6.2 - /safe-buffer/5.1.2: + /safe-buffer@5.1.2: resolution: {integrity: sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==} dev: true - /safe-buffer/5.2.1: + /safe-buffer@5.2.1: resolution: {integrity: sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==} - /safe-stable-stringify/2.4.3: + /safe-stable-stringify@2.4.3: resolution: {integrity: sha512-e2bDA2WJT0wxseVd4lsDP4+3ONX6HpMXQa1ZhFQ7SU+GjvORCmShbCMltrtIDfkYhVHrOcPtj+KhmDBdPdZD1g==} engines: {node: '>=10'} dev: true - /safer-buffer/2.1.2: + /safer-buffer@2.1.2: resolution: {integrity: sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==} dev: true - /scale-ts/1.6.0: + /scale-ts@1.6.0: resolution: {integrity: sha512-Ja5VCjNZR8TGKhUumy9clVVxcDpM+YFjAnkMuwQy68Hixio3VRRvWdE3g8T/yC+HXA0ZDQl2TGyUmtmbcVl40Q==} + requiresBuild: true optional: true - /semver/6.3.1: + /semver@6.3.1: resolution: {integrity: sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==} hasBin: true dev: true - /semver/7.5.3: + /semver@7.5.3: resolution: {integrity: sha512-QBlUtyVk/5EeHbi7X0fw6liDZc7BBmEaSYn01fMU1OUYbf6GPsbTtd8WmnqbI20SeycoHSeiybkE/q1Q+qlThQ==} engines: {node: '>=10'} hasBin: true dependencies: lru-cache: 6.0.0 - /semver/7.5.4: + /semver@7.5.4: resolution: {integrity: sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==} engines: {node: '>=10'} hasBin: true @@ -6892,7 +6953,7 @@ packages: lru-cache: 6.0.0 dev: true - /send/0.18.0: + /send@0.18.0: resolution: {integrity: sha512-qqWzuOjSFOuqPjFe4NOsMLafToQQwBSOEpS+FwEt3A2V3vKubTquT3vmLTQpFgMXp8AlFWFuP1qKaJZOtPpVXg==} engines: {node: '>= 0.8.0'} dependencies: @@ -6913,7 +6974,7 @@ packages: - supports-color dev: true - /serve-static/1.15.0: + /serve-static@1.15.0: resolution: {integrity: sha512-XGuRDNjXUijsUL0vl6nSD7cwURuzEgglbOaFuZM9g3kwDXOWVTck0jLzjPzGD+TazWbboZYu52/9/XPdUgne9g==} engines: {node: '>= 0.8.0'} dependencies: @@ -6925,7 +6986,7 @@ packages: - supports-color dev: true - /set-function-length/1.1.1: + /set-function-length@1.1.1: resolution: {integrity: sha512-VoaqjbBJKiWtg4yRcKBQ7g7wnGnLV3M8oLvVWwOk2PdYY6PEFegR1vezXR0tw6fZGF9csVakIRjrJiy2veSBFQ==} engines: {node: '>= 0.4'} dependencies: @@ -6935,23 +6996,23 @@ packages: has-property-descriptors: 1.0.1 dev: true - /setprototypeof/1.2.0: + /setprototypeof@1.2.0: resolution: {integrity: sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==} dev: true - /shebang-command/2.0.0: + /shebang-command@2.0.0: resolution: {integrity: sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==} engines: {node: '>=8'} dependencies: shebang-regex: 3.0.0 dev: true - /shebang-regex/3.0.0: + /shebang-regex@3.0.0: resolution: {integrity: sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==} engines: {node: '>=8'} dev: true - /shiki/0.14.5: + /shiki@0.14.5: resolution: {integrity: sha512-1gCAYOcmCFONmErGTrS1fjzJLA7MGZmKzrBNX7apqSwhyITJg2O102uFzXUeBxNnEkDA9vHIKLyeKq0V083vIw==} dependencies: ansi-sequence-parser: 1.1.1 @@ -6960,7 +7021,7 @@ packages: vscode-textmate: 8.0.0 dev: true - /side-channel/1.0.4: + /side-channel@1.0.4: resolution: {integrity: sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==} dependencies: call-bind: 1.0.5 @@ -6968,19 +7029,20 @@ packages: object-inspect: 1.13.1 dev: true - /signal-exit/3.0.7: + /signal-exit@3.0.7: resolution: {integrity: sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==} - /sisteransi/1.0.5: + /sisteransi@1.0.5: resolution: {integrity: sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg==} dev: true - /slash/3.0.0: + /slash@3.0.0: resolution: {integrity: sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==} engines: {node: '>=8'} - /smoldot/2.0.22: + /smoldot@2.0.22: resolution: {integrity: sha512-B50vRgTY6v3baYH6uCgL15tfaag5tcS2o/P5q1OiXcKGv1axZDfz2dzzMuIkVpyMR2ug11F6EAtQlmYBQd292g==} + requiresBuild: true dependencies: ws: 8.14.2 transitivePeerDependencies: @@ -6988,51 +7050,51 @@ packages: - utf-8-validate optional: true - /sonic-boom/2.8.0: + /sonic-boom@2.8.0: resolution: {integrity: sha512-kuonw1YOYYNOve5iHdSahXPOK49GqwA+LZhI6Wz/l0rP57iKyXXIHaRagOBHAPmGwJC6od2Z9zgvZ5loSgMlVg==} dependencies: atomic-sleep: 1.0.0 dev: true - /sonic-boom/3.3.0: + /sonic-boom@3.3.0: resolution: {integrity: sha512-LYxp34KlZ1a2Jb8ZQgFCK3niIHzibdwtwNUWKg0qQRzsDoJ3Gfgkf8KdBTFU3SkejDEIlWwnSnpVdOZIhFMl/g==} dependencies: atomic-sleep: 1.0.0 dev: true - /source-map-support/0.5.13: + /source-map-support@0.5.13: resolution: {integrity: sha512-SHSKFHadjVA5oR4PPqhtAVdcBWwRYVd6g6cAXnIbRiIwc2EhPrTuKUBdSLvlEKyIP3GCf89fltvcZiP9MMFA1w==} dependencies: buffer-from: 1.1.2 source-map: 0.6.1 dev: true - /source-map-support/0.5.19: + /source-map-support@0.5.19: resolution: {integrity: sha512-Wonm7zOCIJzBGQdB+thsPar0kYuCIzYvxZwlBa87yi/Mdjv7Tip2cyVbLj5o0cFPN4EVkuTwb3GDDyUx2DGnGw==} dependencies: buffer-from: 1.1.2 source-map: 0.6.1 dev: true - /source-map-support/0.5.21: + /source-map-support@0.5.21: resolution: {integrity: sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==} dependencies: buffer-from: 1.1.2 source-map: 0.6.1 - /source-map/0.6.1: + /source-map@0.6.1: resolution: {integrity: sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==} engines: {node: '>=0.10.0'} - /split2/4.2.0: + /split2@4.2.0: resolution: {integrity: sha512-UcjcJOWknrNkF6PLX83qcHM6KHgVKNkV62Y8a5uYDVv9ydGQVwAHMKqHdJje1VTWpljG0WYpCDhrCdAOYH4TWg==} engines: {node: '>= 10.x'} dev: true - /sprintf-js/1.0.3: + /sprintf-js@1.0.3: resolution: {integrity: sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==} - /sshpk/1.18.0: + /sshpk@1.18.0: resolution: {integrity: sha512-2p2KJZTSqQ/I3+HX42EpYOa2l3f8Erv8MWKsy2I9uf4wA7yFIkXRffYdsx86y6z4vHtV8u7g+pPlr8/4ouAxsQ==} engines: {node: '>=0.10.0'} hasBin: true @@ -7048,28 +7110,28 @@ packages: tweetnacl: 0.14.5 dev: true - /stack-utils/2.0.6: + /stack-utils@2.0.6: resolution: {integrity: sha512-XlkWvfIm6RmsWtNJx+uqtKLS8eqFbxUg0ZzLXqY0caEy9l7hruX8IpiDnjsLavoBgqCCR71TqWO8MaXYheJ3RQ==} engines: {node: '>=10'} dependencies: escape-string-regexp: 2.0.0 - /statuses/2.0.1: + /statuses@2.0.1: resolution: {integrity: sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==} engines: {node: '>= 0.8'} dev: true - /steno/0.4.4: + /steno@0.4.4: resolution: {integrity: sha512-EEHMVYHNXFHfGtgjNITnka0aHhiAlo93F7z2/Pwd+g0teG9CnM3JIINM7hVVB5/rhw9voufD7Wukwgtw2uqh6w==} dependencies: graceful-fs: 4.2.11 dev: true - /stream-shift/1.0.1: + /stream-shift@1.0.1: resolution: {integrity: sha512-AiisoFqQ0vbGcZgQPY1cdP2I76glaVA/RauYR4G4thNFgkTqr90yXTo4LYX60Jl+sIlPNHHdGSwo01AvbKUSVQ==} dev: true - /string-length/4.0.2: + /string-length@4.0.2: resolution: {integrity: sha512-+l6rNN5fYHNhZZy41RXsYptCjA2Igmq4EG7kZAYFQI1E1VTXarr6ZPXBg6eq7Y6eK4FEhY6AJlyuFIb/v/S0VQ==} engines: {node: '>=10'} dependencies: @@ -7077,7 +7139,7 @@ packages: strip-ansi: 6.0.1 dev: true - /string-width/4.2.3: + /string-width@4.2.3: resolution: {integrity: sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==} engines: {node: '>=8'} dependencies: @@ -7085,37 +7147,37 @@ packages: is-fullwidth-code-point: 3.0.0 strip-ansi: 6.0.1 - /string_decoder/1.3.0: + /string_decoder@1.3.0: resolution: {integrity: sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==} dependencies: safe-buffer: 5.2.1 - /strip-ansi/6.0.1: + /strip-ansi@6.0.1: resolution: {integrity: sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==} engines: {node: '>=8'} dependencies: ansi-regex: 5.0.1 - /strip-bom/3.0.0: + /strip-bom@3.0.0: resolution: {integrity: sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==} engines: {node: '>=4'} - /strip-bom/4.0.0: + /strip-bom@4.0.0: resolution: {integrity: sha512-3xurFv5tEgii33Zi8Jtp55wEIILR9eh34FAW00PZf+JnSsTmV/ioewSgQl97JHvgjoRGwPShsWm+IdrxB35d0w==} engines: {node: '>=8'} dev: true - /strip-final-newline/2.0.0: + /strip-final-newline@2.0.0: resolution: {integrity: sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==} engines: {node: '>=6'} dev: true - /strip-json-comments/3.1.1: + /strip-json-comments@3.1.1: resolution: {integrity: sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==} engines: {node: '>=8'} dev: true - /strong-log-transformer/2.1.0: + /strong-log-transformer@2.1.0: resolution: {integrity: sha512-B3Hgul+z0L9a236FAUC9iZsL+nVHgoCJnqCbN588DjYxvGXaXaaFbfmQ/JhvKjZwsOukuR72XbHv71Qkug0HxA==} engines: {node: '>=4'} hasBin: true @@ -7124,31 +7186,31 @@ packages: minimist: 1.2.8 through: 2.3.8 - /supports-color/5.5.0: + /supports-color@5.5.0: resolution: {integrity: sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==} engines: {node: '>=4'} dependencies: has-flag: 3.0.0 - /supports-color/7.2.0: + /supports-color@7.2.0: resolution: {integrity: sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==} engines: {node: '>=8'} dependencies: has-flag: 4.0.0 - /supports-color/8.1.1: + /supports-color@8.1.1: resolution: {integrity: sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==} engines: {node: '>=10'} dependencies: has-flag: 4.0.0 dev: true - /supports-preserve-symlinks-flag/1.0.0: + /supports-preserve-symlinks-flag@1.0.0: resolution: {integrity: sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==} engines: {node: '>= 0.4'} dev: true - /tar-stream/2.2.0: + /tar-stream@2.2.0: resolution: {integrity: sha512-ujeqbceABgwMZxEJnk2HDY2DlnUZ+9oEcb1KzTVfYHio0UE6dG71n60d8D2I4qNvleWrrXpmjpt7vZeF1LnMZQ==} engines: {node: '>=6'} dependencies: @@ -7158,7 +7220,7 @@ packages: inherits: 2.0.4 readable-stream: 3.6.2 - /test-exclude/6.0.0: + /test-exclude@6.0.0: resolution: {integrity: sha512-cAGWPIyOHU6zlmg88jwm7VRyXnMN7iV68OGAbYDk/Mh/xC/pzVPlQtY6ngoIH/5/tciuhGfvESU8GrHrcxD56w==} engines: {node: '>=8'} dependencies: @@ -7167,50 +7229,50 @@ packages: minimatch: 3.1.2 dev: true - /text-table/0.2.0: + /text-table@0.2.0: resolution: {integrity: sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==} dev: true - /thread-stream/0.15.2: + /thread-stream@0.15.2: resolution: {integrity: sha512-UkEhKIg2pD+fjkHQKyJO3yoIvAP3N6RlNFt2dUhcS1FGvCD1cQa1M/PGknCLFIyZdtJOWQjejp7bdNqmN7zwdA==} dependencies: real-require: 0.1.0 dev: true - /through/2.3.8: + /through@2.3.8: resolution: {integrity: sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg==} - /tmp/0.2.1: + /tmp@0.2.1: resolution: {integrity: sha512-76SUhtfqR2Ijn+xllcI5P1oyannHNHByD80W1q447gU3mp9G9PSpGdWmjUOHRDPiHYacIk66W7ubDTuPF3BEtQ==} engines: {node: '>=8.17.0'} dependencies: rimraf: 3.0.2 - /tmpl/1.0.5: + /tmpl@1.0.5: resolution: {integrity: sha512-3f0uOEAQwIqGuWW2MVzYg8fV/QNnc/IpuJNG837rLuczAaLVHslWHZQj4IGiEl5Hs3kkbhwL9Ab7Hrsmuj+Smw==} dev: true - /to-fast-properties/2.0.0: + /to-fast-properties@2.0.0: resolution: {integrity: sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog==} engines: {node: '>=4'} dev: true - /to-regex-range/5.0.1: + /to-regex-range@5.0.1: resolution: {integrity: sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==} engines: {node: '>=8.0'} dependencies: is-number: 7.0.0 - /toidentifier/1.0.1: + /toidentifier@1.0.1: resolution: {integrity: sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==} engines: {node: '>=0.6'} dev: true - /toposort/2.0.2: + /toposort@2.0.2: resolution: {integrity: sha512-0a5EOkAUp8D4moMi2W8ZF8jcga7BgZd91O/yabJCFY8az+XSzeGyTKs0Aoo897iV1Nj6guFq8orWDS96z91oGg==} dev: true - /tough-cookie/2.5.0: + /tough-cookie@2.5.0: resolution: {integrity: sha512-nlLsUzgm1kfLXSXfRZMc1KLAugd4hqJHDTvc2hDIwS3mZAfMEuMbc03SujMF+GEcpaX/qboeycw6iO8JwVv2+g==} engines: {node: '>=0.8'} dependencies: @@ -7218,11 +7280,11 @@ packages: punycode: 2.3.1 dev: true - /tr46/0.0.3: + /tr46@0.0.3: resolution: {integrity: sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==} dev: true - /ts-jest/29.1.1_7c6s2cwl7nw46fjeerv4uupgbm: + /ts-jest@29.1.1(@babel/core@7.23.3)(jest@29.7.0)(typescript@5.1.6): resolution: {integrity: sha512-D6xjnnbP17cC85nliwGiL+tpoKN0StpgE0TeOjXQTU6MVCfsB4v7aW05CgQ/1OywGb0x/oy9hHFnN+sczTiRaA==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} hasBin: true @@ -7246,7 +7308,7 @@ packages: '@babel/core': 7.23.3 bs-logger: 0.2.6 fast-json-stable-stringify: 2.1.0 - jest: 29.7.0_lpnbhgxso4u2juc7wocetwmymy + jest: 29.7.0(@types/node@18.7.1)(ts-node@10.9.1) jest-util: 29.7.0 json5: 2.2.3 lodash.memoize: 4.1.2 @@ -7256,7 +7318,7 @@ packages: yargs-parser: 21.1.1 dev: true - /ts-node/10.9.1_yh2n565uebuxffae3xow4xsrjq: + /ts-node@10.9.1(@swc/core@1.3.99)(@types/node@18.7.1)(typescript@5.1.6): resolution: {integrity: sha512-NtVysVPkxxrwFGUUxGYhfux8k78pQB3JqYBXlLRZgdGUqTO5wU/UyHop5p70iEbGhB7q5KmiZiU0Y3KlJrScEw==} hasBin: true peerDependencies: @@ -7287,7 +7349,7 @@ packages: v8-compile-cache-lib: 3.0.1 yn: 3.1.1 - /tsconfig-paths/4.2.0: + /tsconfig-paths@4.2.0: resolution: {integrity: sha512-NoZ4roiN7LnbKn9QqE1amc9DJfzvZXxF4xDavcOWt1BPkdx+m+0gJuPM+S0vCe7zTJMYUP0R8pO2XMr+Y8oLIg==} engines: {node: '>=6'} dependencies: @@ -7295,19 +7357,19 @@ packages: minimist: 1.2.8 strip-bom: 3.0.0 - /tslib/1.14.1: + /tslib@1.14.1: resolution: {integrity: sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==} dev: true - /tslib/2.6.2: + /tslib@2.6.2: resolution: {integrity: sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q==} - /tsscmp/1.0.6: + /tsscmp@1.0.6: resolution: {integrity: sha512-LxhtAkPDTkVCMQjt2h6eBVY28KCjikZqZfMcC15YBeNjkgUpdCfBu5HoiOTDu86v6smE8yOjyEktJ8hlbANHQA==} engines: {node: '>=0.6.x'} dev: true - /tsutils/3.21.0_typescript@5.1.6: + /tsutils@3.21.0(typescript@5.1.6): resolution: {integrity: sha512-mHKK3iUXL+3UF6xL5k0PEhKRUBKPBCv/+RkEOpjRWxxx27KKRBmmA60A9pgOUvMi8GKhRMPEmjBRPzs2W7O1OA==} engines: {node: '>= 6'} peerDependencies: @@ -7317,43 +7379,43 @@ packages: typescript: 5.1.6 dev: true - /tunnel-agent/0.6.0: + /tunnel-agent@0.6.0: resolution: {integrity: sha512-McnNiV1l8RYeY8tBgEpuodCC1mLUdbSN+CYBL7kJsJNInOP8UjDDEwdk6Mw60vdLLrr5NHKZhMAOSrR2NZuQ+w==} dependencies: safe-buffer: 5.2.1 dev: true - /tweetnacl/0.14.5: + /tweetnacl@0.14.5: resolution: {integrity: sha512-KXXFFdAbFXY4geFIwoyNK+f5Z1b7swfXABfL7HXCmoIWMKU3dmS26672A4EeQtDzLKy7SXmfBu51JolvEKwtGA==} dev: true - /typanion/3.14.0: + /typanion@3.14.0: resolution: {integrity: sha512-ZW/lVMRabETuYCd9O9ZvMhAh8GslSqaUjxmK/JLPCh6l73CvLBiuXswj/+7LdnWOgYsQ130FqLzFz5aGT4I3Ug==} dev: true - /type-check/0.4.0: + /type-check@0.4.0: resolution: {integrity: sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==} engines: {node: '>= 0.8.0'} dependencies: prelude-ls: 1.2.1 dev: true - /type-detect/4.0.8: + /type-detect@4.0.8: resolution: {integrity: sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==} engines: {node: '>=4'} dev: true - /type-fest/0.20.2: + /type-fest@0.20.2: resolution: {integrity: sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==} engines: {node: '>=10'} dev: true - /type-fest/0.21.3: + /type-fest@0.21.3: resolution: {integrity: sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==} engines: {node: '>=10'} dev: true - /type-is/1.6.18: + /type-is@1.6.18: resolution: {integrity: sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==} engines: {node: '>= 0.6'} dependencies: @@ -7361,16 +7423,16 @@ packages: mime-types: 2.1.35 dev: true - /typedoc-plugin-markdown/3.17.1_typedoc@0.25.3: + /typedoc-plugin-markdown@3.17.1(typedoc@0.25.3): resolution: {integrity: sha512-QzdU3fj0Kzw2XSdoL15ExLASt2WPqD7FbLeaqwT70+XjKyTshBnUlQA5nNREO1C2P8Uen0CDjsBLMsCQ+zd0lw==} peerDependencies: typedoc: '>=0.24.0' dependencies: handlebars: 4.7.8 - typedoc: 0.25.3_typescript@5.1.6 + typedoc: 0.25.3(typescript@5.1.6) dev: true - /typedoc/0.25.3_typescript@5.1.6: + /typedoc@0.25.3(typescript@5.1.6): resolution: {integrity: sha512-Ow8Bo7uY1Lwy7GTmphRIMEo6IOZ+yYUyrc8n5KXIZg1svpqhZSWgni2ZrDhe+wLosFS8yswowUzljTAV/3jmWw==} engines: {node: '>= 16'} hasBin: true @@ -7384,12 +7446,12 @@ packages: typescript: 5.1.6 dev: true - /typescript/5.1.6: + /typescript@5.1.6: resolution: {integrity: sha512-zaWCozRZ6DLEWAWFrVDz1H6FVXzUSfTy5FUMWsQlU8Ym5JP9eO4xkTIROFCQvhQf61z6O/G6ugw3SgAnvvm+HA==} engines: {node: '>=14.17'} hasBin: true - /uglify-js/3.17.4: + /uglify-js@3.17.4: resolution: {integrity: sha512-T9q82TJI9e/C1TAxYvfb16xO120tMVFZrGA3f9/P4424DNu6ypK103y0GPFVa17yotwSyZW5iYXgjYHkGrJW/g==} engines: {node: '>=0.8.0'} hasBin: true @@ -7397,12 +7459,12 @@ packages: dev: true optional: true - /unicode-canonical-property-names-ecmascript/2.0.0: + /unicode-canonical-property-names-ecmascript@2.0.0: resolution: {integrity: sha512-yY5PpDlfVIU5+y/BSCxAJRBIS1Zc2dDG3Ujq+sR0U+JjUevW2JhocOF+soROYDSaAezOzOKuyyixhD6mBknSmQ==} engines: {node: '>=4'} dev: true - /unicode-match-property-ecmascript/2.0.0: + /unicode-match-property-ecmascript@2.0.0: resolution: {integrity: sha512-5kaZCrbp5mmbz5ulBkDkbY0SsPOjKqVS35VpL9ulMPfSl0J0Xsm+9Evphv9CoIZFwre7aJoa94AY6seMKGVN5Q==} engines: {node: '>=4'} dependencies: @@ -7410,30 +7472,30 @@ packages: unicode-property-aliases-ecmascript: 2.1.0 dev: true - /unicode-match-property-value-ecmascript/2.1.0: + /unicode-match-property-value-ecmascript@2.1.0: resolution: {integrity: sha512-qxkjQt6qjg/mYscYMC0XKRn3Rh0wFPlfxB0xkt9CfyTvpX1Ra0+rAmdX2QyAobptSEvuy4RtpPRui6XkV+8wjA==} engines: {node: '>=4'} dev: true - /unicode-property-aliases-ecmascript/2.1.0: + /unicode-property-aliases-ecmascript@2.1.0: resolution: {integrity: sha512-6t3foTQI9qne+OZoVQB/8x8rk2k1eVy1gRXhV3oFQ5T6R1dqQ1xtin3XqSlx3+ATBkliTaR/hHyJBm+LVPNM8w==} engines: {node: '>=4'} dev: true - /universalify/2.0.1: + /universalify@2.0.1: resolution: {integrity: sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw==} engines: {node: '>= 10.0.0'} - /unix-crypt-td-js/1.1.4: + /unix-crypt-td-js@1.1.4: resolution: {integrity: sha512-8rMeVYWSIyccIJscb9NdCfZKSRBKYTeVnwmiRYT2ulE3qd1RaDQ0xQDP+rI3ccIWbhu/zuo5cgN8z73belNZgw==} dev: true - /unpipe/1.0.0: + /unpipe@1.0.0: resolution: {integrity: sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ==} engines: {node: '>= 0.8'} dev: true - /update-browserslist-db/1.0.13_browserslist@4.22.1: + /update-browserslist-db@1.0.13(browserslist@4.22.1): resolution: {integrity: sha512-xebP81SNcPuNpPP3uzeW1NYXxI3rxyJzF3pD6sH4jE7o/IX+WtSpwnVU+qIsDPyk0d3hmFQ7mjqc6AtV604hbg==} hasBin: true peerDependencies: @@ -7444,33 +7506,33 @@ packages: picocolors: 1.0.0 dev: true - /uri-js/4.4.1: + /uri-js@4.4.1: resolution: {integrity: sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==} dependencies: punycode: 2.3.1 dev: true - /util-deprecate/1.0.2: + /util-deprecate@1.0.2: resolution: {integrity: sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==} - /utils-merge/1.0.1: + /utils-merge@1.0.1: resolution: {integrity: sha512-pMZTvIkT1d+TFGvDOqodOclx0QWkkgi6Tdoa8gC8ffGAAqz9pzPTZWAybbsHHoED/ztMtkv/VoYTYyShUn81hA==} engines: {node: '>= 0.4.0'} dev: true - /uuid/3.4.0: + /uuid@3.4.0: resolution: {integrity: sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A==} deprecated: Please upgrade to version 7 or higher. Older versions may use Math.random() in certain circumstances, which is known to be problematic. See https://v8.dev/blog/math-random for details. hasBin: true dev: true - /v8-compile-cache-lib/3.0.1: + /v8-compile-cache-lib@3.0.1: resolution: {integrity: sha512-wa7YjyUGfNZngI/vtK0UHAN+lgDCxBPCylVXGp0zu59Fz5aiGtNXaq3DhIov063MorB+VfufLh3JlF2KdTK3xg==} - /v8-compile-cache/2.3.0: + /v8-compile-cache@2.3.0: resolution: {integrity: sha512-l8lCEmLcLYZh4nbunNZvQCJc5pv7+RCwa8q/LdUx8u7lsWvPDKmpodJAJNwkAhJC//dFY48KuIEmjtd4RViDrA==} - /v8-to-istanbul/9.1.3: + /v8-to-istanbul@9.1.3: resolution: {integrity: sha512-9lDD+EVI2fjFsMWXc6dy5JJzBsVTcQ2fVkfBvncZ6xJWG9wtBhOldG+mHkSL0+V1K/xgZz0JDO5UT5hFwHUghg==} engines: {node: '>=10.12.0'} dependencies: @@ -7479,29 +7541,29 @@ packages: convert-source-map: 2.0.0 dev: true - /validate-npm-package-name/5.0.0: + /validate-npm-package-name@5.0.0: resolution: {integrity: sha512-YuKoXDAhBYxY7SfOKxHBDoSyENFeW5VvIIQp2TGQuit8gpK6MnWaQelBKxso72DoxTZfZdcP3W90LqpSkgPzLQ==} engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} dependencies: builtins: 5.0.1 dev: true - /validator/13.11.0: + /validator@13.11.0: resolution: {integrity: sha512-Ii+sehpSfZy+At5nPdnyMhx78fEoPDkR2XW/zimHEL3MyGJQOCQ7WeP20jPYRz7ZCpcKLB21NxuXHF3bxjStBQ==} engines: {node: '>= 0.10'} dev: true - /validator/13.9.0: + /validator@13.9.0: resolution: {integrity: sha512-B+dGG8U3fdtM0/aNK4/X8CXq/EcxU2WPrPEkJGslb47qyHsxmbggTWK0yEA4qnYVNF+nxNlN88o14hIcPmSIEA==} engines: {node: '>= 0.10'} dev: true - /vary/1.1.2: + /vary@1.1.2: resolution: {integrity: sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg==} engines: {node: '>= 0.8'} dev: true - /verdaccio-audit/12.0.0-next.3: + /verdaccio-audit@12.0.0-next.3: resolution: {integrity: sha512-LdiCh0fG3u7lsVGxIWZFxZ7ZStsc8u+129T3Rt3wgYOnEn4+NsYGuZJZzoXTBJ+F1ymCjOg77+kpDFHECHxsYA==} engines: {node: '>=12'} dependencies: @@ -7515,7 +7577,7 @@ packages: - supports-color dev: true - /verdaccio-htpasswd/12.0.0-next.3: + /verdaccio-htpasswd@12.0.0-next.3: resolution: {integrity: sha512-/jdfaGQy0ry2gcQiUB6JsKr2esPZtj5ITuYar+NaFIfIOHrUk+NRdmPNHr1XQyofCzwEyENlgtdZMs1K+yeI4w==} engines: {node: '>=12'} dependencies: @@ -7531,7 +7593,7 @@ packages: - supports-color dev: true - /verdaccio/5.27.0_typanion@3.14.0: + /verdaccio@5.27.0(typanion@3.14.0): resolution: {integrity: sha512-S0XCNgy+s8O3+Prm1uYMYR58WbvsnhUgAm6qk64suZs0YyBrTh/YJSRLYgsjAIiIpO/c2gnvNaDwz2EcX/C7nQ==} engines: {node: '>=12.18'} hasBin: true @@ -7550,7 +7612,7 @@ packages: '@verdaccio/utils': 7.0.0-next.3 JSONStream: 1.3.5 async: 3.2.4 - clipanion: 3.2.1_typanion@3.14.0 + clipanion: 3.2.1(typanion@3.14.0) compression: 1.7.4 cookies: 0.8.0 cors: 2.8.5 @@ -7580,7 +7642,7 @@ packages: - typanion dev: true - /verror/1.10.0: + /verror@1.10.0: resolution: {integrity: sha512-ZZKSmDAEFOijERBLkmYfJ+vmk3w+7hOLYDNkRCuRuMJGEmqYNCNLyBBFwWKVMhfwaEF3WOd0Zlw86U/WC/+nYw==} engines: {'0': node >=0.6.0} dependencies: @@ -7589,42 +7651,42 @@ packages: extsprintf: 1.3.0 dev: true - /vscode-oniguruma/1.7.0: + /vscode-oniguruma@1.7.0: resolution: {integrity: sha512-L9WMGRfrjOhgHSdOYgCt/yRMsXzLDJSL7BPrOZt73gU0iWO4mpqzqQzOz5srxqTvMBaR0XZTSrVWo4j55Rc6cA==} dev: true - /vscode-textmate/8.0.0: + /vscode-textmate@8.0.0: resolution: {integrity: sha512-AFbieoL7a5LMqcnOF04ji+rpXadgOXnZsxQr//r83kLPr7biP7am3g9zbaZIaBGwBRWeSvoMD4mgPdX3e4NWBg==} dev: true - /walker/1.0.8: + /walker@1.0.8: resolution: {integrity: sha512-ts/8E8l5b7kY0vlWLewOkDXMmPdLcVV4GmOQLyxuSswIJsweeFZtAsMF7k1Nszz+TYBQrlYRmzOnr398y1JemQ==} dependencies: makeerror: 1.0.12 dev: true - /wcwidth/1.0.1: + /wcwidth@1.0.1: resolution: {integrity: sha512-XHPEwS0q6TaxcvG85+8EYkbiCux2XtWG2mkc47Ng2A77BQu9+DqIOJldST4HgPkuea7dvKSj5VgX3P1d4rW8Tg==} dependencies: defaults: 1.0.4 dev: true - /web-streams-polyfill/3.2.1: + /web-streams-polyfill@3.2.1: resolution: {integrity: sha512-e0MO3wdXWKrLbL0DgGnUV7WHVuw9OUvL4hjgnPkIeEvESk74gAITi5G606JtZPp39cd8HA9VQzCIvA49LpPN5Q==} engines: {node: '>= 8'} - /webidl-conversions/3.0.1: + /webidl-conversions@3.0.1: resolution: {integrity: sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==} dev: true - /whatwg-url/5.0.0: + /whatwg-url@5.0.0: resolution: {integrity: sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==} dependencies: tr46: 0.0.3 webidl-conversions: 3.0.1 dev: true - /which/2.0.2: + /which@2.0.2: resolution: {integrity: sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==} engines: {node: '>= 8'} hasBin: true @@ -7632,11 +7694,11 @@ packages: isexe: 2.0.0 dev: true - /wordwrap/1.0.0: + /wordwrap@1.0.0: resolution: {integrity: sha512-gvVzJFlPycKc5dZN4yPkP8w7Dc37BtP1yczEneOb4uq34pXZcvrtRTmWV8W+Ume+XCxKgbjM+nevkyFPMybd4Q==} dev: true - /wrap-ansi/7.0.0: + /wrap-ansi@7.0.0: resolution: {integrity: sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==} engines: {node: '>=10'} dependencies: @@ -7644,10 +7706,10 @@ packages: string-width: 4.2.3 strip-ansi: 6.0.1 - /wrappy/1.0.2: + /wrappy@1.0.2: resolution: {integrity: sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==} - /write-file-atomic/4.0.2: + /write-file-atomic@4.0.2: resolution: {integrity: sha512-7KxauUdBmSdWnmpaGFg+ppNjKF8uNLry8LyzjauQDOVONfFLNKrKvQOxZ/VuTIcS/gge/YNahf5RIIQWTSarlg==} engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0} dependencies: @@ -7655,7 +7717,7 @@ packages: signal-exit: 3.0.7 dev: true - /ws/8.14.2: + /ws@8.14.2: resolution: {integrity: sha512-wEBG1ftX4jcglPxgFCMJmZ2PLtSbJ2Peg6TmpJFTbe9GZYOQCDPdMYu/Tm0/bGZkw8paZnJY45J4K2PZrLYq8g==} engines: {node: '>=10.0.0'} peerDependencies: @@ -7667,7 +7729,7 @@ packages: utf-8-validate: optional: true - /ws/8.17.0: + /ws@8.17.0: resolution: {integrity: sha512-uJq6108EgZMAl20KagGkzCKfMEjxmKvZHG7Tlq0Z6nOky7YF7aq4mOx6xK8TJ/i1LeK4Qus7INktacctDgY8Ow==} engines: {node: '>=10.0.0'} peerDependencies: @@ -7679,27 +7741,27 @@ packages: utf-8-validate: optional: true - /y18n/5.0.8: + /y18n@5.0.8: resolution: {integrity: sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==} engines: {node: '>=10'} - /yallist/3.1.1: + /yallist@3.1.1: resolution: {integrity: sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==} dev: true - /yallist/4.0.0: + /yallist@4.0.0: resolution: {integrity: sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==} - /yaml/1.10.2: + /yaml@1.10.2: resolution: {integrity: sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg==} engines: {node: '>= 6'} dev: true - /yargs-parser/21.1.1: + /yargs-parser@21.1.1: resolution: {integrity: sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==} engines: {node: '>=12'} - /yargs/17.7.2: + /yargs@17.7.2: resolution: {integrity: sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==} engines: {node: '>=12'} dependencies: @@ -7711,16 +7773,16 @@ packages: y18n: 5.0.8 yargs-parser: 21.1.1 - /yn/3.1.1: + /yn@3.1.1: resolution: {integrity: sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q==} engines: {node: '>=6'} - /yocto-queue/0.1.0: + /yocto-queue@0.1.0: resolution: {integrity: sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==} engines: {node: '>=10'} dev: true - /yup/0.32.11: + /yup@0.32.11: resolution: {integrity: sha512-Z2Fe1bn+eLstG8DRR6FTavGD+MeAwyfmouhHsIUgaADz8jvFKbO/fXc2trJKZg+5EBjh4gGm3iU/t3onKlXHIg==} engines: {node: '>=10'} dependencies: diff --git a/tee-worker/identity/docker/lit-native-request-vc-multiworker-test.yml b/tee-worker/identity/docker/lit-native-request-vc-multiworker-test.yml new file mode 100644 index 0000000000..a5e1e5a6f9 --- /dev/null +++ b/tee-worker/identity/docker/lit-native-request-vc-multiworker-test.yml @@ -0,0 +1,22 @@ +services: + lit-native-request-vc-multiworker-test: + image: litentry/identity-cli:latest + container_name: lit-native-request-vc-multiworker-test + volumes: + - ../ts-tests:/ts-tests + - ../client-api:/client-api + - ../cli:/usr/local/worker-cli + build: + context: .. + dockerfile: build.Dockerfile + target: deployed-client + depends_on: + litentry-worker-3: + condition: service_healthy + networks: + - litentry-test-network + entrypoint: "bash -c '/usr/local/worker-cli/lit_ts_integration_test.sh native_request_vc.test.ts 2>&1' " + restart: "no" +networks: + litentry-test-network: + driver: bridge diff --git a/tee-worker/identity/docker/lit-native-request-vc-test.yml b/tee-worker/identity/docker/lit-native-request-vc-test.yml new file mode 100644 index 0000000000..241abab7ce --- /dev/null +++ b/tee-worker/identity/docker/lit-native-request-vc-test.yml @@ -0,0 +1,22 @@ +services: + lit-native-request-vc-test: + image: litentry/identity-cli:latest + container_name: litentry-native-request-vc-test + volumes: + - ../ts-tests:/ts-tests + - ../client-api:/client-api + - ../cli:/usr/local/worker-cli + build: + context: .. + dockerfile: build.Dockerfile + target: deployed-client + depends_on: + litentry-worker-1: + condition: service_healthy + networks: + - litentry-test-network + entrypoint: "bash -c '/usr/local/worker-cli/lit_ts_integration_test.sh native_request_vc.test.ts 2>&1' " + restart: "no" +networks: + litentry-test-network: + driver: bridge diff --git a/tee-worker/identity/enclave-runtime/Cargo.lock b/tee-worker/identity/enclave-runtime/Cargo.lock index f26d7f9f42..77119ded80 100644 --- a/tee-worker/identity/enclave-runtime/Cargo.lock +++ b/tee-worker/identity/enclave-runtime/Cargo.lock @@ -3133,12 +3133,15 @@ dependencies = [ "itp-sgx-externalities", "itp-stf-primitives", "itp-stf-state-handler", + "itp-storage", "itp-types", "lc-data-providers", "lc-dynamic-assertion", + "lc-evm-dynamic-assertions", "lc-identity-verification", "lc-native-task-sender", "lc-omni-account", + "lc-stf-task-receiver", "litentry-hex-utils", "litentry-macros", "litentry-primitives", diff --git a/tee-worker/identity/enclave-runtime/src/initialization/mod.rs b/tee-worker/identity/enclave-runtime/src/initialization/mod.rs index 97ddbd2e57..9f565410db 100644 --- a/tee-worker/identity/enclave-runtime/src/initialization/mod.rs +++ b/tee-worker/identity/enclave-runtime/src/initialization/mod.rs @@ -363,6 +363,8 @@ fn run_native_task_handler() -> Result<(), Error> { let extrinsic_factory = get_extrinsic_factory_from_integritee_solo_or_parachain()?; let node_metadata_repo = get_node_metadata_repository_from_integritee_solo_or_parachain()?; let aes256_key_repository = GLOBAL_ACCOUNT_STORE_KEY_REPOSITORY_COMPONENT.get()?; + let evm_assertion_repository = GLOBAL_ASSERTION_REPOSITORY.get()?; + let state_handler = GLOBAL_STATE_HANDLER_COMPONENT.get()?; let context = NativeTaskContext::new( shielding_key_repository, @@ -374,6 +376,8 @@ fn run_native_task_handler() -> Result<(), Error> { extrinsic_factory, node_metadata_repo, aes256_key_repository, + evm_assertion_repository, + state_handler, ); run_native_task_receiver(Arc::new(context)); diff --git a/tee-worker/identity/litentry/core/native-task/receiver/Cargo.toml b/tee-worker/identity/litentry/core/native-task/receiver/Cargo.toml index ad97302e1d..6367c09cb6 100644 --- a/tee-worker/identity/litentry/core/native-task/receiver/Cargo.toml +++ b/tee-worker/identity/litentry/core/native-task/receiver/Cargo.toml @@ -24,15 +24,18 @@ itp-sgx-externalities = { workspace = true } itp-stf-executor = { package = "id-itp-stf-executor", path = "../../../../core-primitives/stf-executor", default-features = false } itp-stf-primitives = { workspace = true } itp-stf-state-handler = { workspace = true } +itp-storage = { workspace = true } itp-top-pool-author = { package = "id-itp-top-pool-author", path = "../../../../core-primitives/top-pool-author", default-features = false } itp-types = { workspace = true } frame-support = { workspace = true } lc-data-providers = { workspace = true } lc-dynamic-assertion = { workspace = true } +lc-evm-dynamic-assertions = { workspace = true } lc-identity-verification = { workspace = true } lc-native-task-sender = { workspace = true } lc-omni-account = { workspace = true } +lc-stf-task-receiver = { workspace = true } litentry-hex-utils = { workspace = true } litentry-macros = { workspace = true } litentry-primitives = { workspace = true } @@ -51,6 +54,9 @@ sgx = [ "lc-native-task-sender/sgx", "lc-identity-verification/sgx", "lc-omni-account/sgx", + "lc-stf-task-receiver/sgx", + "lc-evm-dynamic-assertions/sgx", + "itp-storage/sgx", ] std = [ "futures", @@ -68,6 +74,9 @@ std = [ "lc-native-task-sender/std", "lc-identity-verification/std", "lc-omni-account/std", + "lc-stf-task-receiver/std", + "lc-evm-dynamic-assertions/std", + "itp-storage/std", ] development = [ "litentry-macros/development", diff --git a/tee-worker/identity/litentry/core/native-task/receiver/src/lib.rs b/tee-worker/identity/litentry/core/native-task/receiver/src/lib.rs index aa2a507fcc..ec7e9937af 100644 --- a/tee-worker/identity/litentry/core/native-task/receiver/src/lib.rs +++ b/tee-worker/identity/litentry/core/native-task/receiver/src/lib.rs @@ -33,37 +33,53 @@ pub mod sgx_reexport_prelude { #[cfg(all(not(feature = "std"), feature = "sgx"))] pub use crate::sgx_reexport_prelude::*; +#[cfg(feature = "std")] +use std::sync::Mutex; +#[cfg(feature = "sgx")] +use std::sync::SgxMutex as Mutex; + +mod trusted_call_handlers; + mod trusted_call_authenticated; pub use trusted_call_authenticated::*; +use trusted_call_handlers::request_vc_handler::{ + handle_request_vc, send_vc_response, VcRequestRegistry, +}; mod types; pub use types::NativeTaskContext; use types::*; +use alloc::{borrow::ToOwned, boxed::Box, format, string::ToString, sync::Arc, vec::Vec}; use codec::{Compact, Decode, Encode}; -use futures::executor::ThreadPoolBuilder; +use futures::executor::{ThreadPool, ThreadPoolBuilder}; use ita_sgx_runtime::Hash; use ita_stf::{ - aes_encrypt_default, helpers::{get_expected_raw_message, verify_web3_identity}, + trusted_call_result::RequestVcErrorDetail, Getter, TrustedCall, TrustedCallSigned, }; use itp_extrinsics_factory::CreateExtrinsics; use itp_node_api::{ - api_client::{compose_call, ExtrinsicReport, XtStatus}, + api_client::{compose_call, XtStatus}, metadata::{provider::AccessNodeMetadata, NodeMetadata}, }; use itp_ocall_api::{EnclaveAttestationOCallApi, EnclaveMetricsOCallApi, EnclaveOnChainOCallApi}; use itp_sgx_crypto::{ - aes256::Aes256Key, key_repository::AccessKey, ShieldingCryptoDecrypt, ShieldingCryptoEncrypt, + aes256::Aes256Key, aes_encrypt_default, key_repository::AccessKey, ShieldingCryptoDecrypt, + ShieldingCryptoEncrypt, }; +use itp_sgx_externalities::SgxExternalitiesTrait; use itp_stf_executor::traits::StfEnclaveSigning as StfEnclaveSigningTrait; use itp_stf_primitives::types::TrustedOperation; +use itp_stf_state_handler::handle_state::HandleState; use itp_top_pool_author::traits::AuthorApi as AuthorApiTrait; use itp_types::{ parentchain::{Address, ParachainHeader, ParentchainId}, AccountId, OpaqueCall, }; +use lc_dynamic_assertion::AssertionLogicRepository; +use lc_evm_dynamic_assertions::AssertionRepositoryItem; use lc_identity_verification::web2::verify as verify_web2_identity; use lc_native_task_sender::init_native_task_sender; use lc_omni_account::{ @@ -72,41 +88,28 @@ use lc_omni_account::{ use litentry_primitives::{ AesRequest, DecryptableRequest, Identity, Intent, MemberAccount, ValidationData, }; -use sp_core::{blake2_256, H256}; -use std::{borrow::ToOwned, boxed::Box, format, string::ToString, sync::Arc, vec::Vec}; +use sp_core::{blake2_256, H160, H256}; +use std::collections::HashSet; const THREAD_POOL_SIZE: usize = 480; -pub fn run_native_task_receiver< - ShieldingKeyRepository, - AuthorApi, - StfEnclaveSigning, - OCallApi, - ExtrinsicFactory, - NodeMetadataRepo, - Aes256KeyRepository, ->( - context: Arc< - NativeTaskContext< - ShieldingKeyRepository, - AuthorApi, - StfEnclaveSigning, - OCallApi, - ExtrinsicFactory, - NodeMetadataRepo, - Aes256KeyRepository, - >, - >, +type Context = + Arc>; + +pub fn run_native_task_receiver( + context: Context, ) where ShieldingKeyRepository: AccessKey + Send + Sync + 'static, ::KeyType: ShieldingCryptoEncrypt + ShieldingCryptoDecrypt, - AuthorApi: AuthorApiTrait + Send + Sync + 'static, - StfEnclaveSigning: StfEnclaveSigningTrait + Send + Sync + 'static, - OCallApi: - EnclaveOnChainOCallApi + EnclaveMetricsOCallApi + EnclaveAttestationOCallApi + 'static, - ExtrinsicFactory: CreateExtrinsics + Send + Sync + 'static, - NodeMetadataRepo: AccessNodeMetadata + Send + Sync + 'static, - Aes256KeyRepository: AccessKey + Send + Sync + 'static, + AA: AuthorApiTrait + Send + Sync + 'static, + SES: StfEnclaveSigningTrait + Send + Sync + 'static, + OA: EnclaveOnChainOCallApi + EnclaveAttestationOCallApi + EnclaveMetricsOCallApi + 'static, + EF: CreateExtrinsics + Send + Sync + 'static, + NMR: AccessNodeMetadata + Send + Sync + 'static, + AKR: AccessKey + Send + Sync + 'static, + AR: AssertionLogicRepository + Send + Sync + 'static, + SH: HandleState + Send + Sync + 'static, + SH::StateT: SgxExternalitiesTrait, { let request_receiver = init_native_task_sender(); let thread_pool = ThreadPoolBuilder::new() @@ -117,15 +120,21 @@ pub fn run_native_task_receiver< while let Ok(mut req) = request_receiver.recv() { thread_pool.spawn_ok({ let context = context.clone(); + let thread_pool = thread_pool.clone(); async move { let request = &mut req.request; let connection_hash = request.using_encoded(|x| H256::from(blake2_256(x))); match handle_request(request, context.clone()) { - Ok(trusted_call) => - handle_trusted_call(context.clone(), trusted_call, connection_hash), + Ok(trusted_call) => handle_trusted_call( + context.clone(), + trusted_call, + connection_hash, + request.shard, + thread_pool, + ), Err(e) => { log::error!("Failed to get trusted call from request: {:?}", e); - let res: Result<(), NativeTaskError> = Err(NativeTaskError::InvalidRequest); + let res: TrustedCallResult = Err(TrustedCallError::InvalidRequest); context.author_api.send_rpc_response(connection_hash, res.encode(), false); }, }; @@ -135,45 +144,29 @@ pub fn run_native_task_receiver< log::warn!("Native task receiver stopped"); } -fn handle_request< - ShieldingKeyRepository, - AuthorApi, - StfEnclaveSigning, - OCallApi, - ExtrinsicFactory, - NodeMetadataRepo, - Aes256KeyRepository, ->( +fn handle_request( request: &mut AesRequest, - context: Arc< - NativeTaskContext< - ShieldingKeyRepository, - AuthorApi, - StfEnclaveSigning, - OCallApi, - ExtrinsicFactory, - NodeMetadataRepo, - Aes256KeyRepository, - >, - >, + context: Context, ) -> Result where ShieldingKeyRepository: AccessKey + Send + Sync + 'static, ::KeyType: ShieldingCryptoEncrypt + ShieldingCryptoDecrypt, - AuthorApi: AuthorApiTrait + Send + Sync + 'static, - StfEnclaveSigning: StfEnclaveSigningTrait + Send + Sync + 'static, - OCallApi: - EnclaveOnChainOCallApi + EnclaveMetricsOCallApi + EnclaveAttestationOCallApi + 'static, - ExtrinsicFactory: CreateExtrinsics + Send + Sync + 'static, - NodeMetadataRepo: AccessNodeMetadata + Send + Sync + 'static, - Aes256KeyRepository: AccessKey + Send + Sync + 'static, + AA: AuthorApiTrait + Send + Sync + 'static, + SES: StfEnclaveSigningTrait + Send + Sync + 'static, + OA: EnclaveOnChainOCallApi + EnclaveAttestationOCallApi + EnclaveMetricsOCallApi + 'static, + EF: CreateExtrinsics + Send + Sync + 'static, + NMR: AccessNodeMetadata + Send + Sync + 'static, + AKR: AccessKey + Send + Sync + 'static, + AR: AssertionLogicRepository + Send + Sync + 'static, + SH: HandleState + Send + Sync + 'static, + SH::StateT: SgxExternalitiesTrait, { let connection_hash = request.using_encoded(|x| H256::from(blake2_256(x))); let enclave_shielding_key = match context.shielding_key.retrieve_key() { Ok(value) => value, Err(e) => { - let res: Result<(), NativeTaskError> = - Err(NativeTaskError::ShieldingKeyRetrievalFailed(format!("{}", e))); + let res: TrustedCallResult = + Err(TrustedCallError::ShieldingKeyRetrievalFailed(format!("{}", e))); context.author_api.send_rpc_response(connection_hash, res.encode(), false); return Err("Shielding key retrieval failed") }, @@ -188,8 +181,7 @@ where { Some(tca) => tca, None => { - let res: Result<(), NativeTaskError> = - Err(NativeTaskError::RequestPayloadDecodingFailed); + let res: TrustedCallResult = Err(TrustedCallError::RequestPayloadDecodingFailed); context.author_api.send_rpc_response(connection_hash, res.encode(), false); return Err("Request payload decoding failed") }, @@ -197,7 +189,7 @@ where let mrenclave = match context.ocall_api.get_mrenclave_of_self() { Ok(m) => m.m, Err(_) => { - let res: Result<(), NativeTaskError> = Err(NativeTaskError::MrEnclaveRetrievalFailed); + let res: TrustedCallResult = Err(TrustedCallError::MrEnclaveRetrievalFailed); context.author_api.send_rpc_response(connection_hash, res.encode(), false); return Err("MrEnclave retrieval failed") }, @@ -216,8 +208,7 @@ where }; if !authentication_valid { - let res: Result<(), NativeTaskError> = - Err(NativeTaskError::AuthenticationVerificationFailed); + let res: TrustedCallResult = Err(TrustedCallError::AuthenticationVerificationFailed); context.author_api.send_rpc_response(connection_hash, res.encode(), false); return Err("Authentication verification failed") } @@ -225,47 +216,33 @@ where Ok(tca.call) } -type TrustedCallResult = Result, NativeTaskError>; - -fn handle_trusted_call< - ShieldingKeyRepository, - AuthorApi, - StfEnclaveSigning, - OCallApi, - ExtrinsicFactory, - NodeMetadataRepo, - Aes256KeyRepository, ->( - context: Arc< - NativeTaskContext< - ShieldingKeyRepository, - AuthorApi, - StfEnclaveSigning, - OCallApi, - ExtrinsicFactory, - NodeMetadataRepo, - Aes256KeyRepository, - >, - >, +type TrustedCallResult = Result, TrustedCallError>; + +fn handle_trusted_call( + context: Context, call: TrustedCall, connection_hash: H256, + shard: H256, + thread_pool: ThreadPool, ) where ShieldingKeyRepository: AccessKey + Send + Sync + 'static, ::KeyType: ShieldingCryptoEncrypt + ShieldingCryptoDecrypt, - AuthorApi: AuthorApiTrait + Send + Sync + 'static, - StfEnclaveSigning: StfEnclaveSigningTrait + Send + Sync + 'static, - OCallApi: - EnclaveOnChainOCallApi + EnclaveMetricsOCallApi + EnclaveAttestationOCallApi + 'static, - ExtrinsicFactory: CreateExtrinsics + Send + Sync + 'static, - NodeMetadataRepo: AccessNodeMetadata + Send + Sync + 'static, - Aes256KeyRepository: AccessKey + Send + Sync + 'static, + AA: AuthorApiTrait + Send + Sync + 'static, + SES: StfEnclaveSigningTrait + Send + Sync + 'static, + OA: EnclaveOnChainOCallApi + EnclaveMetricsOCallApi + 'static, + EF: CreateExtrinsics + Send + Sync + 'static, + NMR: AccessNodeMetadata + Send + Sync + 'static, + AKR: AccessKey + Send + Sync + 'static, + AR: AssertionLogicRepository + Send + Sync + 'static, + SH: HandleState + Send + Sync + 'static, + SH::StateT: SgxExternalitiesTrait, { let metadata = match context.node_metadata_repo.get_from_metadata(|m| m.get_metadata().cloned()) { Ok(Some(metadata)) => metadata, _ => { log::error!("Failed to get node metadata"); - let result: TrustedCallResult = Err(NativeTaskError::MetadataRetrievalFailed( + let result: TrustedCallResult = Err(TrustedCallError::MetadataRetrievalFailed( "Failed to get node metadata".to_string(), )); context.author_api.send_rpc_response(connection_hash, result.encode(), false); @@ -320,7 +297,7 @@ fn handle_trusted_call< Ok(account) => account, Err(e) => { log::error!("Failed to get omni account: {:?}", e); - let result: TrustedCallResult = Err(NativeTaskError::UnauthorizedSigner); + let result: TrustedCallResult = Err(TrustedCallError::UnauthorizedSigner); context.author_api.send_rpc_response(connection_hash, result.encode(), false); return }, @@ -332,7 +309,7 @@ fn handle_trusted_call< let validation_result = match validation_data { ValidationData::Web2(validation_data) => if !identity.is_web2() { - Err(NativeTaskError::InvalidMemberIdentity) + Err(TrustedCallError::InvalidMemberIdentity) } else { verify_web2_identity( &who, @@ -343,16 +320,16 @@ fn handle_trusted_call< ) .map_err(|e| { log::error!("Failed to verify web2 identity: {:?}", e); - NativeTaskError::ValidationDataVerificationFailed + TrustedCallError::ValidationDataVerificationFailed }) }, ValidationData::Web3(validation_data) => if !identity.is_web3() { - Err(NativeTaskError::InvalidMemberIdentity) + Err(TrustedCallError::InvalidMemberIdentity) } else { verify_web3_identity(&identity, &raw_msg, &validation_data).map_err(|e| { log::error!("Failed to verify web3 identity: {:?}", e); - NativeTaskError::ValidationDataVerificationFailed + TrustedCallError::ValidationDataVerificationFailed }) }, }; @@ -414,10 +391,118 @@ fn handle_trusted_call< identity )) )), + TrustedCall::request_vc(signer, who, assertion, maybe_key, req_ext_hash) => { + let result = handle_request_vc( + context.clone(), + shard, + signer, + who, + assertion, + maybe_key, + req_ext_hash, + ); + send_vc_response(connection_hash, context, result, 0u8, 1u8, false); + return + }, + TrustedCall::request_batch_vc(signer, who, assertions, maybe_key, req_ext_hash) => { + // use local registry to manage request reponse status + let vc_req_registry = VcRequestRegistry::new(); + + // Detect duplicate assertions + let mut seen: HashSet = HashSet::new(); + let mut unique_assertions = Vec::new(); + for assertion in assertions.into_iter() { + let hash = Hash::from(blake2_256(&assertion.encode())); + if seen.insert(hash) { + unique_assertions.push(Some(assertion)); + } else { + unique_assertions.push(None); + } + } + + let assertion_len = unique_assertions.len() as u8; + vc_req_registry.add_new_item(connection_hash, assertion_len); + + for (idx, maybe_assertion) in unique_assertions.into_iter().enumerate() { + if let Some(assertion) = maybe_assertion { + thread_pool.spawn_ok({ + let context = context.clone(); + let signer = signer.clone(); + let who = who.clone(); + let vc_req_registry = vc_req_registry.clone(); + + async move { + let result = handle_request_vc( + context.clone(), + shard, + signer, + who, + assertion, + maybe_key, + req_ext_hash, + ); + match vc_req_registry.update_item(connection_hash) { + Ok(do_watch) => { + send_vc_response( + connection_hash, + context, + result, + idx as u8, + assertion_len, + do_watch, + ); + }, + Err(e) => { + log::error!( + "Failed to find connection_hash in registry: {:?}", + e + ); + send_vc_response( + connection_hash, + context, + Err(RequestVcErrorDetail::ConnectionHashNotFound( + e.to_string(), + )), + idx as u8, + assertion_len, + false, + ); + }, + } + } + }); + } else { + match vc_req_registry.update_item(connection_hash) { + Ok(do_watch) => { + send_vc_response( + connection_hash, + context.clone(), + Err(RequestVcErrorDetail::DuplicateAssertionRequest), + idx as u8, + assertion_len, + do_watch, + ); + }, + Err(e) => { + log::error!("[DuplicateAssertionRequest] Failed to find connection_hash in registry: {:?}", e); + send_vc_response( + connection_hash, + context.clone(), + Err(RequestVcErrorDetail::ConnectionHashNotFound(e.to_string())), + idx as u8, + assertion_len, + false, + ); + }, + } + } + } + return + }, _ => { log::warn!("Received unsupported call: {:?}", call); let result: TrustedCallResult = - Err(NativeTaskError::UnexpectedCall(format!("Unexpected call: {:?}", call))); + Err(TrustedCallError::UnexpectedCall(format!("Unexpected call: {:?}", call))); context.author_api.send_rpc_response(connection_hash, result.encode(), false); return }, @@ -428,7 +513,7 @@ fn handle_trusted_call< Err(e) => { log::error!("Failed to create extrinsic: {:?}", e); let result: TrustedCallResult = - Err(NativeTaskError::ExtrinsicConstructionFailed(e.to_string())); + Err(TrustedCallError::ExtrinsicConstructionFailed(e.to_string())); context.author_api.send_rpc_response(connection_hash, result.encode(), false); return }, @@ -441,11 +526,11 @@ fn handle_trusted_call< ) { Ok(extrinsic_reports) => if let Some(report) = extrinsic_reports.first() { - let result: TrustedCallResult = Ok(report.clone()); + let result: TrustedCallResult = Ok(report.into()); context.author_api.send_rpc_response(connection_hash, result.encode(), false); } else { log::error!("Failed to get extrinsic report"); - let result: TrustedCallResult = Err(NativeTaskError::ExtrinsicSendingFailed( + let result: TrustedCallResult = Err(TrustedCallError::ExtrinsicSendingFailed( "Failed to get extrinsic report".to_string(), )); context.author_api.send_rpc_response(connection_hash, result.encode(), false); @@ -453,7 +538,7 @@ fn handle_trusted_call< Err(e) => { log::error!("Failed to send extrinsic to parentchain: {:?}", e); let result: TrustedCallResult = - Err(NativeTaskError::ExtrinsicSendingFailed(e.to_string())); + Err(TrustedCallError::ExtrinsicSendingFailed(e.to_string())); context.author_api.send_rpc_response(connection_hash, result.encode(), false); }, } @@ -463,7 +548,7 @@ fn create_member_account( aes256_key_repository: Arc, identity: &Identity, is_public: bool, -) -> Result +) -> Result where Aes256KeyRepository: AccessKey, { @@ -475,7 +560,7 @@ where Ok(key) => Ok(key), Err(e) => { log::error!("Failed to retrieve aes key: {:?}", e); - Err(NativeTaskError::MissingAesKey) + Err(TrustedCallError::MissingAesKey) }, }?; diff --git a/tee-worker/identity/litentry/core/native-task/receiver/src/trusted_call_handlers/mod.rs b/tee-worker/identity/litentry/core/native-task/receiver/src/trusted_call_handlers/mod.rs new file mode 100644 index 0000000000..2d77a4f1f0 --- /dev/null +++ b/tee-worker/identity/litentry/core/native-task/receiver/src/trusted_call_handlers/mod.rs @@ -0,0 +1,17 @@ +// Copyright 2020-2024 Trust Computing GmbH. +// This file is part of Litentry. +// +// Litentry is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// Litentry is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. +// +// You should have received a copy of the GNU General Public License +// along with Litentry. If not, see . + +pub mod request_vc_handler; diff --git a/tee-worker/identity/litentry/core/native-task/receiver/src/trusted_call_handlers/request_vc_handler.rs b/tee-worker/identity/litentry/core/native-task/receiver/src/trusted_call_handlers/request_vc_handler.rs new file mode 100644 index 0000000000..e23256205d --- /dev/null +++ b/tee-worker/identity/litentry/core/native-task/receiver/src/trusted_call_handlers/request_vc_handler.rs @@ -0,0 +1,399 @@ +// Copyright 2020-2024 Trust Computing GmbH. +// This file is part of Litentry. +// +// Litentry is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// Litentry is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. +// +// You should have received a copy of the GNU General Public License +// along with Litentry. If not, see . + +use crate::{Context, Mutex, TrustedCallResult}; +use alloc::{borrow::ToOwned, boxed::Box, format, string::ToString, sync::Arc, vec::Vec}; +use codec::{Decode, Encode}; +use frame_support::ensure; +use ita_sgx_runtime::VERSION as SIDECHAIN_VERSION; +#[cfg(feature = "development")] +use ita_stf::helpers::ensure_alice; +use ita_stf::{ + aes_encrypt_default, + helpers::ensure_self, + trusted_call_result::{RequestVcErrorDetail, RequestVcResultOrError}, + Getter, TrustedCallSigned, +}; +use itp_enclave_metrics::EnclaveMetric; +use itp_extrinsics_factory::CreateExtrinsics; +use itp_node_api::{ + api_client::compose_call, + metadata::{pallet_system::SystemConstants, provider::AccessNodeMetadata, NodeMetadata}, +}; +use itp_ocall_api::{EnclaveMetricsOCallApi, EnclaveOnChainOCallApi}; +use itp_sgx_crypto::{ + aes256::Aes256Key, aes_decrypt, key_repository::AccessKey, AesOutput, ShieldingCryptoDecrypt, + ShieldingCryptoEncrypt, +}; +use itp_sgx_externalities::SgxExternalitiesTrait; +use itp_stf_executor::traits::StfEnclaveSigning as StfEnclaveSigningTrait; +use itp_stf_state_handler::handle_state::HandleState; +use itp_storage::storage_value_key; +use itp_top_pool_author::traits::AuthorApi as AuthorApiTrait; +use itp_types::{ + parentchain::ParentchainId, AccountId, BlockNumber as SidechainBlockNumber, OpaqueCall, +}; +use lc_dynamic_assertion::AssertionLogicRepository; +use lc_evm_dynamic_assertions::AssertionRepositoryItem; +use lc_omni_account::InMemoryStore as OmniAccountStore; +use lc_stf_task_receiver::handler::assertion::create_credential_str; +use litentry_macros::if_development_or; +use litentry_primitives::{ + Assertion, AssertionBuildRequest, Identity, IdentityNetworkTuple, MemberAccount, + ParentchainBlockNumber, RequestAesKey, +}; +use sp_core::{H160, H256 as Hash}; +use std::{collections::HashMap, time::Instant}; + +pub type HandleRequestVcResult = Result; + +#[derive(Encode)] +pub struct RequestVcOk { + pub vc_payload: AesOutput, + pub vc_logs: Option, + pub pre_mutated_account_store: AesOutput, + pub omni_account: AccountId, +} + +pub fn handle_request_vc( + context: Context, + shard: Hash, + signer: Identity, + who: Identity, + assertion: Assertion, + maybe_key: Option, + req_ext_hash: Hash, +) -> HandleRequestVcResult +where + ShieldingKeyRepository: AccessKey + Send + Sync + 'static, + ::KeyType: ShieldingCryptoEncrypt + ShieldingCryptoDecrypt, + AA: AuthorApiTrait + Send + Sync + 'static, + SES: StfEnclaveSigningTrait + Send + Sync + 'static, + OA: EnclaveOnChainOCallApi + EnclaveMetricsOCallApi + 'static, + EF: CreateExtrinsics + Send + Sync + 'static, + NMR: AccessNodeMetadata + Send + Sync + 'static, + AKR: AccessKey + Send + Sync + 'static, + AR: AssertionLogicRepository + Send + Sync + 'static, + SH: HandleState + Send + Sync + 'static, + SH::StateT: SgxExternalitiesTrait, +{ + let start_time = Instant::now(); + log::debug!( + "Processing vc request for {}, assertion: {:?}", + who.to_did().unwrap_or_default(), + assertion + ); + let signer_account = + signer.to_native_account().ok_or(RequestVcErrorDetail::InvalidSignerAccount)?; + + match assertion { + Assertion::A13(_) => (), + _ => if_development_or!( + ensure!( + ensure_self(&signer, &who) || ensure_alice(&signer_account), + RequestVcErrorDetail::UnauthorizedSigner, + ), + ensure!(ensure_self(&signer, &who), RequestVcErrorDetail::UnauthorizedSigner) + ), + } + + let (parachain_block_number, sidechain_block_number) = context + .state_handler + .execute_on_current(&shard, |state, _| { + // should never be `None`, but use `unwrap_or_default` to not panic + let parachain_block_number = state + .get(&storage_value_key("Parentchain", "Number")) + .and_then(|v| ParentchainBlockNumber::decode(&mut v.as_slice()).ok()) + .unwrap_or_default(); + let sidechain_block_number = state + .get(&storage_value_key("System", "Number")) + .and_then(|v| SidechainBlockNumber::decode(&mut v.as_slice()).ok()) + .unwrap_or_default(); + + (parachain_block_number, sidechain_block_number) + }) + .map_err(|e| RequestVcErrorDetail::SidechainDataRetrievalFailed(e.to_string()))?; + + let omni_account = match OmniAccountStore::get_omni_account(who.hash()) { + Ok(Some(account)) => account, + Ok(None) => who.to_omni_account(), + Err(_) => return Err(RequestVcErrorDetail::OmniAccountStoreRetrievalFailed), + }; + + let mut account_store = match OmniAccountStore::get_member_accounts(&omni_account) { + Ok(Some(member_accounts)) => member_accounts, + _ => Vec::new(), + }; + + let metadata = match context.node_metadata_repo.get_from_metadata(|m| m.get_metadata().cloned()) + { + Ok(Some(metadata)) => metadata, + _ => + return Err(RequestVcErrorDetail::MetadataRetrievalFailed( + "Failed to retrieve metadata".to_string(), + )), + }; + + let mut is_new_account_store = false; + if account_store.is_empty() { + is_new_account_store = true; + let create_account_store_call = OpaqueCall::from_tuple(&compose_call!( + &metadata, + "OmniAccount", + "create_account_store", + who.clone() + )); + let xt = context + .extrinsic_factory + .create_extrinsics(&[create_account_store_call], None) + .map_err(|e| RequestVcErrorDetail::CreateAccountStoreFailed(e.to_string()))?; + context + .ocall_api + .send_to_parentchain(xt, &ParentchainId::Litentry, None) + .map_err(|e| RequestVcErrorDetail::CreateAccountStoreFailed(e.to_string()))?; + + log::info!("Account store created for {}", who.to_did().unwrap_or_default()); + + let member_account = MemberAccount::Public(who.clone()); + account_store.push(member_account); + } + + let member_identities = account_store + .iter() + .map(|member| extract_identity_from_member(context.aes256_key_repository.clone(), member)) + .collect::, &'static str>>() + .map_err(|_| RequestVcErrorDetail::ExtractingMemberIdentityFailed)?; + let identities = get_elegible_identities(&member_identities, &assertion); + + ensure!(!identities.is_empty(), RequestVcErrorDetail::NoEligibleIdentity); + + let parachain_runtime_version = context + .node_metadata_repo + .get_from_metadata(|m| { + m.system_version() + .map_err(|e| RequestVcErrorDetail::InvalidMetadata(format!("{:?}", e))) + }) + .map_err(|e| RequestVcErrorDetail::MetadataRetrievalFailed(e.to_string()))?? + .spec_version; + let sidechain_runtime_version = SIDECHAIN_VERSION.spec_version; + + let req = AssertionBuildRequest { + shard, + signer: signer_account, + who: who.clone(), + assertion: assertion.clone(), + identities, + top_hash: Hash::zero(), + parachain_block_number, + sidechain_block_number, + parachain_runtime_version, + sidechain_runtime_version, + maybe_key, + should_create_id_graph: is_new_account_store, + req_ext_hash, + }; + + let (vc_payload, vc_logs) = create_credential_str::( + &req, + context.enclave_signer.clone(), + context.enclave_account.clone(), + context.ocall_api.clone(), + context.data_provider_config.clone(), + context.assertion_repository.clone(), + ) + .map_err(|e| RequestVcErrorDetail::AssertionBuildFailed(Box::new(e)))?; + + let key = maybe_key.ok_or(RequestVcErrorDetail::MissingAesKey)?; + + let mutated_account_store = + if is_new_account_store { member_identities } else { Default::default() }; + + let vc_ok = RequestVcOk { + vc_payload: aes_encrypt_default(&key, &vc_payload), + vc_logs: vc_logs.map(|log| aes_encrypt_default(&key, &log)), + pre_mutated_account_store: aes_encrypt_default(&key, &mutated_account_store.encode()), + omni_account: omni_account.clone(), + }; + + let on_vc_issued_call = OpaqueCall::from_tuple(&compose_call!( + &metadata, + "VCManagement", + "on_vc_issued", + who.clone(), + assertion.clone(), + omni_account, + req_ext_hash + )); + + let xt = context + .extrinsic_factory + .create_extrinsics(&[on_vc_issued_call], None) + .map_err(|e| RequestVcErrorDetail::ExtrinsicConstructionFailed(e.to_string()))?; + + context + .ocall_api + .send_to_parentchain(xt, &ParentchainId::Litentry, None) + .map_err(|e| RequestVcErrorDetail::ExtrinsicSendingFailed(e.to_string()))?; + + if let Err(e) = context + .ocall_api + .update_metric(EnclaveMetric::VCBuildTime(assertion.clone(), start_time.elapsed())) + { + log::warn!("Failed to update metric for vc build time: {:?}", e); + } + log::info!("Vc issued for {}, assertion: {:?}", who.to_did().unwrap_or_default(), assertion); + + Ok(vc_ok) +} + +fn extract_identity_from_member( + key_repository: Arc, + member_account: &MemberAccount, +) -> Result +where + Aes256KeyRepository: AccessKey, +{ + match member_account { + MemberAccount::Public(identity) => Ok(identity.clone()), + MemberAccount::Private(encrypted_identity, _hash) => { + let aes_key = match key_repository.retrieve_key() { + Ok(key) => Ok(key), + Err(e) => { + log::error!("Failed to retrieve aes key: {:?}", e); + Err("Failed to retrieve aes key") + }, + }?; + let mut output: AesOutput = Decode::decode(&mut encrypted_identity.as_slice()) + .map_err(|_| "Failed to decode encrypted identity")?; + let encoded_identity = aes_decrypt(&aes_key, &mut output).ok_or("Failed to decrypt")?; + Identity::decode(&mut encoded_identity.as_slice()).map_err(|_| "Failed to decode") + }, + } +} + +fn get_elegible_identities( + member_identities: &[Identity], + assertion: &Assertion, +) -> Vec { + let supported_networks = assertion.get_supported_web3networks(); + let skip_filtering = assertion.skip_identity_filtering(); + member_identities + .iter() + .filter_map(|identity| { + let mut networks = identity.default_web3networks(); + + // if `skip_filtering` is true, we basically let assertion logic itself to handle those identities. + if skip_filtering { + return Some((identity.clone(), networks)) + } + + networks.retain(|n| supported_networks.contains(n)); + + // differentiate between web2 and web3 assertions: + // supported_web3networks.is_empty() means it's a web2 assertion, + // otherwise web2 identities might survive to be unexpectedly "eligible" for web3 assertions. + if supported_networks.is_empty() { + if identity.is_web2() { + Some((identity.clone(), networks)) + } else { + None + } + } else if identity.is_web3() && !networks.is_empty() { + Some((identity.clone(), networks)) + } else { + None + } + }) + .collect() +} + +pub fn send_vc_response( + connection_hash: Hash, + context: Context, + result: HandleRequestVcResult, + idx: u8, + len: u8, + do_watch: bool, +) where + ShieldingKeyRepository: AccessKey + Send + Sync + 'static, + ::KeyType: ShieldingCryptoEncrypt + ShieldingCryptoDecrypt, + AA: AuthorApiTrait + Send + Sync + 'static, + SES: StfEnclaveSigningTrait + Send + Sync + 'static, + OA: EnclaveOnChainOCallApi + EnclaveMetricsOCallApi + 'static, + EF: CreateExtrinsics + Send + Sync + 'static, + NMR: AccessNodeMetadata + Send + Sync + 'static, + AKR: AccessKey + Send + Sync + 'static, + AR: AssertionLogicRepository + Send + Sync + 'static, + SH: HandleState + Send + Sync + 'static, + SH::StateT: SgxExternalitiesTrait, +{ + let vc_res = RequestVcResultOrError { result: result.map(|r| r.encode()), idx, len }; + let native_task_result: TrustedCallResult = Ok(vc_res.into()); + + context + .author_api + .send_rpc_response(connection_hash, native_task_result.encode(), do_watch); + + if native_task_result.is_err() { + if let Err(e) = context.ocall_api.update_metric(EnclaveMetric::FailedVCIssuance) { + log::warn!("Failed to update metric for VC Issuance: {:?}", e); + } + } else if let Err(e) = context.ocall_api.update_metric(EnclaveMetric::SuccessfullVCIssuance) { + log::warn!("Failed to update metric for VC Issuance: {:?}", e); + } +} + +#[derive(Clone)] +pub struct VcRequestRegistry { + status_map: Arc>>, +} + +struct AssertionStatus { + pub total: u8, + pub processed: u8, +} + +impl VcRequestRegistry { + pub fn new() -> Self { + Self { status_map: Arc::new(Mutex::new(HashMap::new())) } + } + + pub fn add_new_item(&self, key: Hash, total: u8) { + let mut map = self.status_map.lock().unwrap(); + map.insert(key, AssertionStatus { total, processed: 0u8 }); + } + + // Return value indicates whether some item is still not yet processed. + pub fn update_item(&self, key: Hash) -> Result { + let mut map = self.status_map.lock().unwrap(); + + #[allow(unused_assignments)] + let mut all_processed = false; + + if let Some(entry) = map.get_mut(&key) { + entry.processed += 1; + all_processed = entry.processed == entry.total; + } else { + return Err("Item not found in map") + } + + if all_processed { + map.remove(&key); + } + + Ok(!all_processed) + } +} diff --git a/tee-worker/identity/litentry/core/native-task/receiver/src/types.rs b/tee-worker/identity/litentry/core/native-task/receiver/src/types.rs index b7f36d9926..c42132cae3 100644 --- a/tee-worker/identity/litentry/core/native-task/receiver/src/types.rs +++ b/tee-worker/identity/litentry/core/native-task/receiver/src/types.rs @@ -14,90 +14,83 @@ // You should have received a copy of the GNU General Public License // along with Litentry. If not, see . +use alloc::{string::String, sync::Arc, vec::Vec}; use codec::{Decode, Encode}; use ita_sgx_runtime::Hash; -use ita_stf::{Getter, TrustedCallSigned}; +use ita_stf::{ + trusted_call_result::{RequestVcErrorDetail, RequestVcResultOrError}, + Getter, TrustedCallSigned, +}; use itp_extrinsics_factory::CreateExtrinsics; -use itp_node_api::metadata::{provider::AccessNodeMetadata, NodeMetadata}; -use itp_ocall_api::{EnclaveAttestationOCallApi, EnclaveMetricsOCallApi, EnclaveOnChainOCallApi}; +use itp_node_api::{ + api_client::{ExtrinsicReport, TransactionStatus}, + metadata::{provider::AccessNodeMetadata, NodeMetadata}, +}; +use itp_ocall_api::{EnclaveMetricsOCallApi, EnclaveOnChainOCallApi}; use itp_sgx_crypto::{ aes256::Aes256Key, key_repository::AccessKey, ShieldingCryptoDecrypt, ShieldingCryptoEncrypt, }; use itp_stf_executor::traits::StfEnclaveSigning as StfEnclaveSigningTrait; +use itp_stf_state_handler::handle_state::HandleState; use itp_top_pool_author::traits::AuthorApi as AuthorApiTrait; use lc_data_providers::DataProviderConfig; -use sp_core::ed25519::Pair as Ed25519Pair; -use std::{string::String, sync::Arc}; +use lc_dynamic_assertion::AssertionLogicRepository; +use lc_evm_dynamic_assertions::AssertionRepositoryItem; +use sp_core::{ed25519::Pair as Ed25519Pair, H160}; -pub struct NativeTaskContext< - ShieldingKeyRepository, - AuthorApi, - StfEnclaveSigning, - OCallApi, - ExtrinsicFactory, - NodeMetadataRepo, - Aes256KeyRepository, -> where +pub struct NativeTaskContext +where ShieldingKeyRepository: AccessKey + Send + Sync + 'static, ::KeyType: ShieldingCryptoEncrypt + ShieldingCryptoDecrypt, - AuthorApi: AuthorApiTrait + Send + Sync + 'static, - StfEnclaveSigning: StfEnclaveSigningTrait + Send + Sync + 'static, - OCallApi: - EnclaveOnChainOCallApi + EnclaveMetricsOCallApi + EnclaveAttestationOCallApi + 'static, - ExtrinsicFactory: CreateExtrinsics + Send + Sync + 'static, - NodeMetadataRepo: AccessNodeMetadata + Send + Sync + 'static, - Aes256KeyRepository: AccessKey + Send + Sync + 'static, + AA: AuthorApiTrait + Send + Sync + 'static, + SES: StfEnclaveSigningTrait + Send + Sync + 'static, + OA: EnclaveOnChainOCallApi + EnclaveMetricsOCallApi + 'static, + EF: CreateExtrinsics + Send + Sync + 'static, + NMR: AccessNodeMetadata + Send + Sync + 'static, + AKR: AccessKey + Send + Sync + 'static, + AR: AssertionLogicRepository + Send + Sync + 'static, + SH: HandleState + Send + Sync + 'static, { pub shielding_key: Arc, - pub author_api: Arc, - pub enclave_signer: Arc, + pub author_api: Arc, + pub enclave_signer: Arc, pub enclave_account: Arc, - pub ocall_api: Arc, + pub ocall_api: Arc, pub data_provider_config: Arc, - pub extrinsic_factory: Arc, - pub node_metadata_repo: Arc, - pub aes256_key_repository: Arc, + pub extrinsic_factory: Arc, + pub node_metadata_repo: Arc, + pub aes256_key_repository: Arc, + pub assertion_repository: Arc, + pub state_handler: Arc, } -impl< - ShieldingKeyRepository, - AuthorApi, - StfEnclaveSigning, - OCallApi, - ExtrinsicFactory, - NodeMetadataRepo, - Aes256KeyRepository, - > - NativeTaskContext< - ShieldingKeyRepository, - AuthorApi, - StfEnclaveSigning, - OCallApi, - ExtrinsicFactory, - NodeMetadataRepo, - Aes256KeyRepository, - > where +impl + NativeTaskContext +where ShieldingKeyRepository: AccessKey + Send + Sync + 'static, ::KeyType: ShieldingCryptoEncrypt + ShieldingCryptoDecrypt, - AuthorApi: AuthorApiTrait + Send + Sync + 'static, - StfEnclaveSigning: StfEnclaveSigningTrait + Send + Sync + 'static, - OCallApi: - EnclaveOnChainOCallApi + EnclaveMetricsOCallApi + EnclaveAttestationOCallApi + 'static, - ExtrinsicFactory: CreateExtrinsics + Send + Sync + 'static, - NodeMetadataRepo: AccessNodeMetadata + Send + Sync + 'static, - Aes256KeyRepository: AccessKey + Send + Sync + 'static, + AA: AuthorApiTrait + Send + Sync + 'static, + SES: StfEnclaveSigningTrait + Send + Sync + 'static, + OA: EnclaveOnChainOCallApi + EnclaveMetricsOCallApi + 'static, + EF: CreateExtrinsics + Send + Sync + 'static, + NMR: AccessNodeMetadata + Send + Sync + 'static, + AKR: AccessKey + Send + Sync + 'static, + AR: AssertionLogicRepository + Send + Sync + 'static, + SH: HandleState + Send + Sync + 'static, { #[allow(clippy::too_many_arguments)] pub fn new( shielding_key: Arc, - author_api: Arc, - enclave_signer: Arc, + author_api: Arc, + enclave_signer: Arc, enclave_account: Arc, - ocall_api: Arc, + ocall_api: Arc, data_provider_config: Arc, - extrinsic_factory: Arc, - node_metadata_repo: Arc, - aes256_key_repository: Arc, + extrinsic_factory: Arc, + node_metadata_repo: Arc, + aes256_key_repository: Arc, + assertion_repository: Arc, + state_handler: Arc, ) -> Self { Self { shielding_key, @@ -109,12 +102,14 @@ impl< extrinsic_factory, node_metadata_repo, aes256_key_repository, + assertion_repository, + state_handler, } } } #[derive(Encode, Decode, Clone, Debug, PartialEq, Eq)] -pub enum NativeTaskError { +pub enum TrustedCallError { UnexpectedCall(String), ShieldingKeyRetrievalFailed(String), // Stringified itp_sgx_crypto::Error RequestPayloadDecodingFailed, @@ -135,5 +130,39 @@ pub enum NativeTaskError { ExtrinsicConstructionFailed(String), // Stringified itp_extrinsics_factory::Error ExtrinsicSendingFailed(String), // Stringified sgx_status_t InvalidRequest, - NativeRequestSendFailed, +} + +#[derive(Encode, Decode, Clone, Debug, PartialEq, Eq)] +pub enum TrustedCallOk { + ExtrinsicReport { + // Hash of the extrinsic. + extrinsic_hash: Hash, + // Block hash of the block the extrinsic was included in. + // Only available if watched until at least `InBlock`. + block_hash: Option, + // Last known Transaction Status. + status: TransactionStatus, + }, + RequestVcResult { + // Vec == handlers::request_vc_handlers::RequestVcOk Encoded + result: Result, RequestVcErrorDetail>, + idx: u8, + len: u8, + }, +} + +impl From<&ExtrinsicReport> for TrustedCallOk { + fn from(report: &ExtrinsicReport) -> Self { + TrustedCallOk::ExtrinsicReport { + extrinsic_hash: report.extrinsic_hash.clone(), + block_hash: report.block_hash.clone(), + status: report.status.clone(), + } + } +} + +impl From for TrustedCallOk { + fn from(result: RequestVcResultOrError) -> Self { + TrustedCallOk::RequestVcResult { result: result.result, idx: result.idx, len: result.len } + } } diff --git a/tee-worker/identity/litentry/core/stf-task/receiver/src/handler/assertion.rs b/tee-worker/identity/litentry/core/stf-task/receiver/src/handler/assertion.rs index b69c074bc1..c9d3e95934 100644 --- a/tee-worker/identity/litentry/core/stf-task/receiver/src/handler/assertion.rs +++ b/tee-worker/identity/litentry/core/stf-task/receiver/src/handler/assertion.rs @@ -16,12 +16,10 @@ #![allow(clippy::result_large_err)] -use crate::{EnclaveMetricsOCallApi, EnclaveOnChainOCallApi, StfTaskContext}; +use crate::{EnclaveMetricsOCallApi, EnclaveOnChainOCallApi}; use ita_sgx_runtime::Hash; use ita_stf::{Getter, TrustedCallSigned}; -use itp_sgx_crypto::{key_repository::AccessKey, ShieldingCryptoEncrypt}; use itp_stf_executor::traits::StfEnclaveSigning; -use itp_stf_state_handler::handle_state::HandleState; use itp_top_pool_author::traits::AuthorApi; use itp_utils::stringify::account_id_to_string; use lc_credentials::credential_schema; @@ -33,7 +31,7 @@ use litentry_primitives::{ ParameterString, VCMPError, }; use log::*; -use sp_core::{Pair, H160}; +use sp_core::{ed25519::Pair as Ed25519Pair, Pair, H160}; use std::{ format, iter::once, @@ -52,20 +50,18 @@ fn build_holding_time( } pub fn create_credential_str< - ShieldingKeyRepository, A: AuthorApi, S: StfEnclaveSigning, - H: HandleState, O: EnclaveOnChainOCallApi + EnclaveMetricsOCallApi, AR: AssertionLogicRepository, >( req: &AssertionBuildRequest, - context: &Arc>, -) -> Result<(Vec, Option>), VCMPError> -where - ShieldingKeyRepository: AccessKey, - ::KeyType: ShieldingCryptoEncrypt + 'static, -{ + enclave_signer: Arc, + enclave_account: Arc, + ocall_api: Arc, + data_provider_config: Arc, + assertion_repository: Arc, +) -> Result<(Vec, Option>), VCMPError> { let mut vc_logs: Option> = None; let mut credential = match req.assertion.clone() { Assertion::A1 => { @@ -76,93 +72,63 @@ where lc_assertion_build::a1::build(req) }, Assertion::A2(guild_id) => - lc_assertion_build::a2::build(req, guild_id, &context.data_provider_config), + lc_assertion_build::a2::build(req, guild_id, &data_provider_config), - Assertion::A3(guild_id, channel_id, role_id) => lc_assertion_build::a3::build( - req, - guild_id, - channel_id, - role_id, - &context.data_provider_config, - ), + Assertion::A3(guild_id, channel_id, role_id) => + lc_assertion_build::a3::build(req, guild_id, channel_id, role_id, &data_provider_config), - Assertion::A4(min_balance) => build_holding_time( - req, - AmountHoldingTimeType::LIT, - min_balance, - &context.data_provider_config, - ), + Assertion::A4(min_balance) => + build_holding_time(req, AmountHoldingTimeType::LIT, min_balance, &data_provider_config), - Assertion::A6 => lc_assertion_build::a6::build(req, &context.data_provider_config), + Assertion::A6 => lc_assertion_build::a6::build(req, &data_provider_config), - Assertion::A7(min_balance) => build_holding_time( - req, - AmountHoldingTimeType::DOT, - min_balance, - &context.data_provider_config, - ), + Assertion::A7(min_balance) => + build_holding_time(req, AmountHoldingTimeType::DOT, min_balance, &data_provider_config), // no need to pass `networks` again because it's the same as the `get_supported_web3networks` - Assertion::A8(_networks) => - lc_assertion_build::a8::build(req, &context.data_provider_config), + Assertion::A8(_networks) => lc_assertion_build::a8::build(req, &data_provider_config), - Assertion::A10(min_balance) => build_holding_time( - req, - AmountHoldingTimeType::WBTC, - min_balance, - &context.data_provider_config, - ), + Assertion::A10(min_balance) => + build_holding_time(req, AmountHoldingTimeType::WBTC, min_balance, &data_provider_config), - Assertion::A11(min_balance) => build_holding_time( - req, - AmountHoldingTimeType::ETH, - min_balance, - &context.data_provider_config, - ), + Assertion::A11(min_balance) => + build_holding_time(req, AmountHoldingTimeType::ETH, min_balance, &data_provider_config), - Assertion::A13(owner) => - lc_assertion_build::a13::build(req, context.ocall_api.clone(), &owner), + Assertion::A13(owner) => lc_assertion_build::a13::build(req, ocall_api, &owner), - Assertion::A14 => lc_assertion_build::a14::build(req, &context.data_provider_config), + Assertion::A14 => lc_assertion_build::a14::build(req, &data_provider_config), Assertion::Achainable(param) => - lc_assertion_build::achainable::build(req, param, &context.data_provider_config), + lc_assertion_build::achainable::build(req, param, &data_provider_config), - Assertion::A20 => lc_assertion_build::a20::build(req, &context.data_provider_config), + Assertion::A20 => lc_assertion_build::a20::build(req, &data_provider_config), - Assertion::OneBlock(course_type) => lc_assertion_build::oneblock::course::build( - req, - course_type, - &context.data_provider_config, - ), + Assertion::OneBlock(course_type) => + lc_assertion_build::oneblock::course::build(req, course_type, &data_provider_config), Assertion::GenericDiscordRole(role_type) => - lc_assertion_build::generic_discord_role::build( - req, - role_type, - &context.data_provider_config, - ), + lc_assertion_build::generic_discord_role::build(req, role_type, &data_provider_config), Assertion::BnbDomainHolding => lc_assertion_build::nodereal::bnb_domain::bnb_domain_holding_amount::build( req, - &context.data_provider_config, + &data_provider_config, ), Assertion::BnbDigitDomainClub(digit_domain_type) => lc_assertion_build::nodereal::bnb_domain::bnb_digit_domain_club_amount::build( req, digit_domain_type, - &context.data_provider_config, + &data_provider_config, ), Assertion::VIP3MembershipCard(level) => - lc_assertion_build::vip3::card::build(req, level, &context.data_provider_config), + lc_assertion_build::vip3::card::build(req, level, &data_provider_config), Assertion::WeirdoGhostGangHolder => lc_assertion_build::nodereal::nft_holder::weirdo_ghost_gang_holder::build( req, - &context.data_provider_config, + &data_provider_config, ), Assertion::LITStaking => lc_assertion_build::lit_staking::build(req), @@ -171,38 +137,34 @@ where lc_assertion_build::nodereal::amount_holding::evm_amount_holding::build( req, token_type, - &context.data_provider_config, + &data_provider_config, ), Assertion::BRC20AmountHolder => - lc_assertion_build::brc20::amount_holder::build(req, &context.data_provider_config), + lc_assertion_build::brc20::amount_holder::build(req, &data_provider_config), Assertion::CryptoSummary => - lc_assertion_build::nodereal::crypto_summary::build(req, &context.data_provider_config), + lc_assertion_build::nodereal::crypto_summary::build(req, &data_provider_config), Assertion::TokenHoldingAmount(token_type) => lc_assertion_build_v2::token_holding_amount::build( req, token_type, - &context.data_provider_config, + &data_provider_config, ), Assertion::PlatformUser(platform_user_type) => lc_assertion_build_v2::platform_user::build( req, platform_user_type, - &context.data_provider_config, + &data_provider_config, ), Assertion::NftHolder(nft_type) => - lc_assertion_build_v2::nft_holder::build(req, nft_type, &context.data_provider_config), + lc_assertion_build_v2::nft_holder::build(req, nft_type, &data_provider_config), Assertion::Dynamic(params) => { - let result = lc_assertion_build::dynamic::build( - req, - params, - context.assertion_repository.clone(), - context.ocall_api.clone(), - )?; + let result = + lc_assertion_build::dynamic::build(req, params, assertion_repository, ocall_api)?; vc_logs = Some(result.1); Ok(result.0) }, @@ -211,7 +173,7 @@ where }?; // post-process the credential - let enclave_signer_account = context.enclave_signer.get_enclave_account().map_err(|e| { + let enclave_signer_account = enclave_signer.get_enclave_account().map_err(|e| { VCMPError::RequestVCFailed( req.assertion.clone(), ErrorDetail::StfError(ErrorString::truncate_from(format!("{e:?}").into())), @@ -221,14 +183,13 @@ where credential.parachain_block_number = req.parachain_block_number; credential.sidechain_block_number = req.sidechain_block_number; - credential.credential_subject.endpoint = - context.data_provider_config.credential_endpoint.to_string(); + credential.credential_subject.endpoint = data_provider_config.credential_endpoint.to_string(); if let Some(schema) = credential_schema::get_schema_url(&req.assertion) { credential.credential_schema.id = schema; } - let issuer_identity: Identity = context.enclave_account.public().into(); + let issuer_identity: Identity = enclave_account.public().into(); credential.issuer.id = issuer_identity.to_did().map_err(|e| { VCMPError::RequestVCFailed( req.assertion.clone(), @@ -240,7 +201,7 @@ where .to_json() .map_err(|_| VCMPError::RequestVCFailed(req.assertion.clone(), ErrorDetail::ParseError))?; let payload = json_string.as_bytes(); - let sig = context.enclave_signer.sign(payload).map_err(|e| { + let sig = enclave_signer.sign(payload).map_err(|e| { VCMPError::RequestVCFailed( req.assertion.clone(), ErrorDetail::StfError(ErrorString::truncate_from(format!("{e:?}").into())), diff --git a/tee-worker/identity/litentry/core/vc-task/receiver/src/lib.rs b/tee-worker/identity/litentry/core/vc-task/receiver/src/lib.rs index 9914a9f471..e4c6400fdd 100644 --- a/tee-worker/identity/litentry/core/vc-task/receiver/src/lib.rs +++ b/tee-worker/identity/litentry/core/vc-task/receiver/src/lib.rs @@ -572,8 +572,15 @@ where req_ext_hash, }; - let (vc_payload, vc_logs) = create_credential_str(&req, &context) - .map_err(|e| RequestVcErrorDetail::AssertionBuildFailed(Box::new(e)))?; + let (vc_payload, vc_logs) = create_credential_str::( + &req, + context.enclave_signer.clone(), + context.enclave_account.clone(), + context.ocall_api.clone(), + context.data_provider_config.clone(), + context.assertion_repository.clone(), + ) + .map_err(|e| RequestVcErrorDetail::AssertionBuildFailed(Box::new(e)))?; let call_index = node_metadata_repo .get_from_metadata(|m| m.vc_issued_call_indexes()) diff --git a/tee-worker/identity/ts-tests/integration-tests/common/utils/context.ts b/tee-worker/identity/ts-tests/integration-tests/common/utils/context.ts index b1f35ef293..8e53ac6a35 100644 --- a/tee-worker/identity/ts-tests/integration-tests/common/utils/context.ts +++ b/tee-worker/identity/ts-tests/integration-tests/common/utils/context.ts @@ -1,4 +1,4 @@ -import { WsProvider, ApiPromise, PalletTeebagEnclave } from 'parachain-api'; +import { WsProvider, ApiPromise, CorePrimitivesTeebagTypesEnclave } from 'parachain-api'; import { cryptoWaitReady } from '@polkadot/util-crypto'; import { hexToString } from '@polkadot/util'; import WebSocketAsPromised from 'websocket-as-promised'; @@ -78,7 +78,7 @@ async function getenclaveEndpoint(api: ApiPromise): Promise { return enclaves; } return [...enclaves, enclave.unwrap()]; - }, [] as PalletTeebagEnclave[]); + }, [] as CorePrimitivesTeebagTypesEnclave[]); if (identityEnclaves.length === 0) { throw new Error('No identity worker found'); diff --git a/tee-worker/identity/ts-tests/integration-tests/common/utils/index.ts b/tee-worker/identity/ts-tests/integration-tests/common/utils/index.ts index 30232c7358..878e9b6bf9 100644 --- a/tee-worker/identity/ts-tests/integration-tests/common/utils/index.ts +++ b/tee-worker/identity/ts-tests/integration-tests/common/utils/index.ts @@ -13,4 +13,4 @@ export * from './integration-setup'; export * from './storage'; export * from './vc-helper'; export * from './type-creators'; -export * from './omni-account-helpers'; +export * from './native-request-helpers'; diff --git a/tee-worker/identity/ts-tests/integration-tests/common/utils/omni-account-helpers.ts b/tee-worker/identity/ts-tests/integration-tests/common/utils/native-request-helpers.ts similarity index 89% rename from tee-worker/identity/ts-tests/integration-tests/common/utils/omni-account-helpers.ts rename to tee-worker/identity/ts-tests/integration-tests/common/utils/native-request-helpers.ts index 31dd9bd910..252ad58ede 100644 --- a/tee-worker/identity/ts-tests/integration-tests/common/utils/omni-account-helpers.ts +++ b/tee-worker/identity/ts-tests/integration-tests/common/utils/native-request-helpers.ts @@ -173,6 +173,49 @@ export async function createAuthenticatedTrustedCallPublicizeAccount( ); } +export async function createAuthenticatedTrustedCallRequestBatchVc( + parachainApi: ApiPromise, + mrenclave: string, + nonce: Codec, + sender: Signer, + senderIdentity: CorePrimitivesIdentity, + assertions: string, + aesKey: string, + hash: string +) { + return createAuthenticatedTrustedCall( + parachainApi, + [ + 'request_batch_vc', + '(LitentryIdentity, LitentryIdentity, BoundedVec>, Option, H256)', + ], + sender, + mrenclave, + nonce, + [senderIdentity, senderIdentity, assertions, aesKey, hash] + ); +} + +export async function createAuthenticatedTrustedCallRequestVc( + parachainApi: ApiPromise, + mrenclave: string, + nonce: Codec, + sender: Signer, + senderIdentity: CorePrimitivesIdentity, + assertion: string, + aesKey: string, + hash: string +) { + return createAuthenticatedTrustedCall( + parachainApi, + ['request_vc', '(LitentryIdentity, LitentryIdentity, Assertion, Option, H256)'], + sender, + mrenclave, + nonce, + [senderIdentity, senderIdentity, assertion, aesKey, hash] + ); +} + export const getOmniAccount = async (parachainApi: ApiPromise, identity: CorePrimitivesIdentity): Promise => { const omniAccount = await parachainApi.rpc.state.call('OmniAccountApi_omni_account', identity.toHex()); diff --git a/tee-worker/identity/ts-tests/integration-tests/native_request_vc.test.ts b/tee-worker/identity/ts-tests/integration-tests/native_request_vc.test.ts new file mode 100644 index 0000000000..0b7403d8ae --- /dev/null +++ b/tee-worker/identity/ts-tests/integration-tests/native_request_vc.test.ts @@ -0,0 +1,357 @@ +import { assert } from 'chai'; +import { step } from 'mocha-steps'; +import { KeyObject, randomBytes } from 'crypto'; +import * as ed from '@noble/ed25519'; +import { base58Encode } from '@polkadot/util-crypto'; +import { hexToU8a } from '@polkadot/util'; +import { validateVcSchema } from '@litentry/vc-schema-validator'; +import { + CorePrimitivesIdentity, + RequestVcResultOrError, + RequestVcOk, + TrustedCallResult, + WorkerRpcReturnValue, +} from 'parachain-api'; +import { IntegrationTestContext, SubstrateSigner } from './common/common-types'; +import { + Web2ValidationConfig, + buildIdentityHelper, + buildWeb2Validation, + decryptWithAes, + initIntegrationTestContext, + mockBatchAssertion, +} from './common/utils'; +import { subscribeToEventsWithExtHash, subscribeToEvents } from './common/transactions'; +import { getTeeShieldingKey } from './common/di-utils'; +import { aesKey, sendRequest } from './common/call'; +import { nextRequestId } from './common/helpers'; +import { + buildWeb3ValidationData, + createAuthenticatedTrustedCallAddAccount, + createAuthenticatedTrustedCallRequestBatchVc, + createAuthenticatedTrustedCallRequestVc, + getOmniAccount, + getOmniAccountNonce, + sendRequestFromTrustedCall, +} from './common/utils/native-request-helpers'; + +describe('Test native vc_request', function () { + this.timeout(6000000); + let teeShieldingKey: KeyObject; + let context: IntegrationTestContext; + let aliceSubstrateWallet: SubstrateSigner; + let aliceSubstrateIdentity: CorePrimitivesIdentity; + let omniAccount: string; + + before(async function () { + const parachainEndpoint = process.env.PARACHAIN_ENDPOINT; + if (!parachainEndpoint) { + throw new Error('PARACHAIN_ENDPOINT environment variable is missing.'); + } + context = await initIntegrationTestContext(parachainEndpoint); + teeShieldingKey = await getTeeShieldingKey(context); + const wallet = context.web3Wallets['substrate']; + aliceSubstrateWallet = wallet['Alice'] as SubstrateSigner; + aliceSubstrateIdentity = await aliceSubstrateWallet.getIdentity(context); + omniAccount = await getOmniAccount(context.api, aliceSubstrateIdentity); + }); + + step('Request VC with no AccountStore created before', async function () { + const a1Assertion = { + description: 'Have identified at least one account/address in both Web2 and Web3.', + assertion: { + A1: 'A1', + }, + }; + console.log(`request vc A1 for Alice ... Assertion description: ${a1Assertion.description}`); + const requestIdentifier = `0x${randomBytes(32).toString('hex')}`; + const requestVcCall = await createAuthenticatedTrustedCallRequestVc( + context.api, + context.mrEnclave, + context.api.createType('Index', 0), + aliceSubstrateWallet, + aliceSubstrateIdentity, + context.api.createType('Assertion', a1Assertion.assertion).toHex(), + context.api.createType('Option', aesKey).toHex(), + requestIdentifier + ); + const onMessageReceived = async (res: WorkerRpcReturnValue) => { + const trustedCallResult: TrustedCallResult = context.api.createType('TrustedCallResult', res.value); + if (trustedCallResult.isOk && trustedCallResult.asOk.isRequestVcResult) { + const requestVcResultOrError: RequestVcResultOrError = trustedCallResult.asOk.asRequestVcResult; + if (requestVcResultOrError.result.isOk) { + const requestVcOk: RequestVcOk = context.api.createType( + 'RequestVcOk', + requestVcResultOrError.result.asOk + ); + console.log('Asserting VC', requestVcOk); + await assertVc(context, aliceSubstrateIdentity, requestVcOk); + } + } + }; + const vcEventsPromise = subscribeToEventsWithExtHash(requestIdentifier, context); + const omniAccountEventsPromise = subscribeToEvents('omniAccount', 'AccountStoreCreated', context.api); + + await sendRequestFromTrustedCall(context, teeShieldingKey, requestVcCall, onMessageReceived); + + console.log('Waiting for events...'); + const vcEvents = await vcEventsPromise; + assert.equal(vcEvents.length, 1); + const omniAccountEvents = await omniAccountEventsPromise; + assert.equal(omniAccountEvents.length, 1); + }); + + step('Add accounts to the AccountStore', async function () { + let accountStore = await context.api.query.omniAccount.accountStore(omniAccount); + assert.isTrue(accountStore.isSome, 'account store not found'); + let membersCount = accountStore.unwrap().length; + assert.equal(membersCount, 1, 'account store members count should be 1'); + + let currentNonce = (await getOmniAccountNonce(context.api, aliceSubstrateIdentity)).toNumber(); + // twitter + const twitterIdentity = await buildIdentityHelper('mock_user', 'Twitter', context); + const validationConfig: Web2ValidationConfig = { + identityType: 'Twitter', + context, + signerIdentitity: aliceSubstrateIdentity, + linkIdentity: twitterIdentity, + verificationType: 'PublicTweet', + validationNonce: currentNonce, + }; + const twitterValidationData = await buildWeb2Validation(validationConfig); + const addTwitterAccountCall = await createAuthenticatedTrustedCallAddAccount( + context.api, + context.mrEnclave, + context.api.createType('Index', currentNonce), + aliceSubstrateWallet, + aliceSubstrateIdentity, + twitterIdentity, + twitterValidationData.toHex(), + true // public account + ); + await sendRequestFromTrustedCall(context, teeShieldingKey, addTwitterAccountCall); + accountStore = await context.api.query.omniAccount.accountStore(omniAccount); + membersCount = accountStore.unwrap().length; + assert.equal(membersCount, 2, 'account store members count should be 2'); + + // EVM + currentNonce++; + const evmSigner = context.web3Wallets.evm.Alice; + const evmIdentity = await evmSigner.getIdentity(context); + const evmValidationData = await buildWeb3ValidationData( + context, + aliceSubstrateIdentity, + evmIdentity, + currentNonce, + 'evm', + evmSigner + ); + const addEvmAccountCall = await createAuthenticatedTrustedCallAddAccount( + context.api, + context.mrEnclave, + context.api.createType('Index', currentNonce), + aliceSubstrateWallet, + aliceSubstrateIdentity, + evmIdentity, + evmValidationData.toHex(), + true // public account + ); + await sendRequestFromTrustedCall(context, teeShieldingKey, addEvmAccountCall); + accountStore = await context.api.query.omniAccount.accountStore(omniAccount); + membersCount = accountStore.unwrap().length; + assert.equal(membersCount, 3, 'account store members count should be 3'); + + // Bitcoin + currentNonce++; + const bitcoinSigner = context.web3Wallets.bitcoin.Alice; + const bitcoinIdentity = await bitcoinSigner.getIdentity(context); + const bitcoinValidationData = await buildWeb3ValidationData( + context, + aliceSubstrateIdentity, + bitcoinIdentity, + currentNonce, + 'bitcoin', + bitcoinSigner + ); + const addBitcoinAccountCall = await createAuthenticatedTrustedCallAddAccount( + context.api, + context.mrEnclave, + context.api.createType('Index', currentNonce), + aliceSubstrateWallet, + aliceSubstrateIdentity, + bitcoinIdentity, + bitcoinValidationData.toHex(), + true // public account + ); + await sendRequestFromTrustedCall(context, teeShieldingKey, addBitcoinAccountCall); + accountStore = await context.api.query.omniAccount.accountStore(omniAccount); + membersCount = accountStore.unwrap().length; + assert.equal(membersCount, 4, 'account store members count should be 4'); + }); + + // Request VC with AccountStore created before + mockBatchAssertion.forEach(({ description, assertion }) => { + step(`Request VC payload: ${JSON.stringify(assertion)} (alice)`, async function () { + const currentNonce = (await getOmniAccountNonce(context.api, aliceSubstrateIdentity)).toNumber(); + const requestIdentifier = `0x${randomBytes(32).toString('hex')}`; + console.log( + `request vc direct ${Object.keys(assertion)[0]} for Alice ... Assertion description: ${description}` + ); + + let requestVcCall; + if (Array.isArray(assertion)) { + console.log('>>>> Batch Assertions'); + requestVcCall = await createAuthenticatedTrustedCallRequestBatchVc( + context.api, + context.mrEnclave, + context.api.createType('Index', currentNonce), + aliceSubstrateWallet, + aliceSubstrateIdentity, + context.api.createType('Vec', assertion).toHex(), + context.api.createType('Option', aesKey).toHex(), + requestIdentifier + ); + } else { + requestVcCall = await createAuthenticatedTrustedCallRequestVc( + context.api, + context.mrEnclave, + context.api.createType('Index', currentNonce), + aliceSubstrateWallet, + aliceSubstrateIdentity, + context.api.createType('Assertion', assertion).toHex(), + context.api.createType('Option', aesKey).toHex(), + requestIdentifier + ); + } + + // Instead of waiting for final response we will listen all responses from the call + const onMessageReceived = async (res: WorkerRpcReturnValue) => { + const trustedCallResult: TrustedCallResult = context.api.createType('TrustedCallResult', res.value); + if (trustedCallResult.isOk && trustedCallResult.asOk.isRequestVcResult) { + const requestVcResultOrError: RequestVcResultOrError = trustedCallResult.asOk.asRequestVcResult; + if (requestVcResultOrError.result.isOk) { + const requestVcOk: RequestVcOk = context.api.createType( + 'RequestVcOk', + requestVcResultOrError.result.asOk + ); + console.log('Asserting VC', requestVcOk); + await assertVc(context, aliceSubstrateIdentity, requestVcOk); + } + } + }; + + const vcEventsPromise = subscribeToEventsWithExtHash(requestIdentifier, context); + + await sendRequestFromTrustedCall(context, teeShieldingKey, requestVcCall, onMessageReceived); + + console.log('Waiting for events...'); + const vcEvents = await vcEventsPromise; + assert.equal(vcEvents.length, Array.isArray(assertion) ? assertion.length : 1); + }); + }); +}); + +async function assertVc(context: IntegrationTestContext, subject: CorePrimitivesIdentity, result: RequestVcOk) { + // step 1 + // decryptWithAes function added 0x prefix + const decryptedVcPayload = decryptWithAes(aesKey, result.vc_payload, 'utf-8').replace('0x', ''); + + // step 2 + // check credential subject's DID + const credentialSubjectId = JSON.parse(decryptedVcPayload).credentialSubject.id; + const expectSubject = Object.entries(JSON.parse(subject.toString())); + + // step 3 + // convert to DID format + const expectDid = 'did:litentry:' + expectSubject[0][0] + ':' + expectSubject[0][1]; + assert.equal( + expectDid, + credentialSubjectId, + 'Check credentialSubject error: expectDid should be equal to credentialSubject id' + ); + + // step 4 + // extrac proof and vc without proof json + const vcPayloadJson = JSON.parse(decryptedVcPayload); + console.log('credential: ', JSON.stringify(vcPayloadJson, null, 2)); + const { proof, ...vcWithoutProof } = vcPayloadJson; + + // step 5 + // check vc signature + const signature = Buffer.from(hexToU8a(`0x${proof.proofValue}`)); + const message = Buffer.from(JSON.stringify(vcWithoutProof)); + const vcPubkey = Buffer.from(hexToU8a(proof.verificationMethod)); + const signatureStatus = await ed.verify(signature, message, vcPubkey); + assert.isTrue(signatureStatus, 'Check Vc signature error: signature should be valid'); + + // step 6 + // lookup the teebag enclave regsitry to check mrenclave and vcPubkey + const parachainBlockHash = await context.api.query.system.blockHash(vcPayloadJson.parachainBlockNumber); + const apiAtVcIssuedBlock = await context.api.at(parachainBlockHash); + const enclaveAccount = trimPrefix(vcPayloadJson.issuer.id, 'did:litentry:substrate:'); + const registeredEnclave = (await apiAtVcIssuedBlock.query.teebag.enclaveRegistry(enclaveAccount)).unwrap(); + + assert.equal( + vcPayloadJson.issuer.mrenclave, + base58Encode(registeredEnclave.mrenclave), + "Check VC mrenclave: it should equal enclave's mrenclave from parachains enclave registry" + ); + + assert.equal( + proof.verificationMethod, + registeredEnclave.vcPubkey, + "Check VC pubkey: it should equal enclave's vcPubkey from parachains enclave registry" + ); + + // step 7 + // check runtime version is present + const [parachainSpecVersion, sidechainSpecVersion] = await Promise.all([ + context.api.rpc.state.getRuntimeVersion(), + sendRequest( + context.tee, + { + jsonrpc: '2.0', + id: nextRequestId(context), + method: 'state_getRuntimeVersion', + params: [], + }, + context.api + ), + ]).then(([parachainRuntime, sidechainReturnValue]) => { + const sidechainRuntime = context.api.createType('RuntimeVersion', sidechainReturnValue.value); + + return [parachainRuntime.specVersion.toNumber(), sidechainRuntime.specVersion.toNumber()]; + }); + + assert.deepEqual( + vcPayloadJson.issuer.runtimeVersion, + { parachain: parachainSpecVersion, sidechain: sidechainSpecVersion }, + 'Check VC runtime version: it should equal the current defined versions' + ); + + // step 8 + // validate VC against schema + const schemaResult = await validateVcSchema(vcPayloadJson); + + if (schemaResult.errors) console.log('Schema Validation errors: ', schemaResult.errors); + + assert.isTrue(schemaResult.isValid, 'Check Vc payload error: vcPayload should be valid'); + + assert.equal( + vcWithoutProof.type[0], + 'VerifiableCredential', + 'Check Vc payload type error: vcPayload type should be VerifiableCredential' + ); + assert.equal( + proof.type, + 'Ed25519Signature2020', + 'Check Vc proof type error: proof type should be Ed25519Signature2020' + ); +} + +function trimPrefix(str: string, prefix: string): string { + if (str.startsWith(prefix)) { + return str.substring(prefix.length); + } + return str; +} diff --git a/tee-worker/identity/ts-tests/integration-tests/omni_account.test.ts b/tee-worker/identity/ts-tests/integration-tests/omni_account.test.ts index 36512ecb64..d5c899ab22 100644 --- a/tee-worker/identity/ts-tests/integration-tests/omni_account.test.ts +++ b/tee-worker/identity/ts-tests/integration-tests/omni_account.test.ts @@ -19,7 +19,7 @@ import { createAuthenticatedTrustedCallPublicizeAccount, fundAccount, createAuthenticatedTrustedCallTransferNativeIntent, -} from './common/utils/omni-account-helpers'; +} from './common/utils/native-request-helpers'; import { CorePrimitivesIdentity, CorePrimitivesOmniAccountMemberAccount } from 'parachain-api'; import { encodeAddress } from '@polkadot/util-crypto'; @@ -41,7 +41,7 @@ describe('Omni Account', function () { const wallet = context.web3Wallets['substrate']; aliceWallet = wallet['Alice'] as SubstrateSigner; aliceIdentity = await aliceWallet.getIdentity(context); - omniAccount = await getOmniAccount(context.api, await aliceWallet.getIdentity(context)); + omniAccount = await getOmniAccount(context.api, aliceIdentity); }); step('test create_account_store', async function () {