From 2e7c3bee00aaa69e3e922158abfe972e4c9a5581 Mon Sep 17 00:00:00 2001
From: Piotr Roslaniec
Date: Wed, 23 Aug 2023 17:29:38 +0200
Subject: [PATCH] draft signer-provider seperation
---
package.json | 2 +-
src/agents/coordinator.ts | 16 +-
src/agents/subscription-manager.ts | 12 +-
src/characters/alice.ts | 21 +-
src/characters/cbd-recipient.ts | 11 +-
src/characters/pre-recipient.ts | 18 +-
src/conditions/condition-expr.ts | 5 +-
src/conditions/context/context.ts | 17 +-
src/conditions/context/providers.ts | 23 +-
src/dkg.ts | 20 +-
src/policies/policy.ts | 20 +-
src/sdk/strategy/cbd-strategy.ts | 8 +-
src/sdk/strategy/pre-strategy.ts | 6 +-
test/acceptance/alice-grants.test.ts | 8 +-
test/acceptance/delay-enact.test.ts | 10 +-
test/docs/cbd.test.ts | 16 +-
test/integration/dkg-client.test.ts | 6 +-
test/unit/cbd-strategy.test.ts | 9 +-
test/unit/conditions/base/contract.test.ts | 9 +-
test/unit/conditions/context.test.ts | 16 +-
test/unit/pre-strategy.test.ts | 20 +-
test/utils.ts | 51 +--
yarn.lock | 398 ++++++++++-----------
23 files changed, 378 insertions(+), 344 deletions(-)
diff --git a/package.json b/package.json
index f292e6aa8..a83078633 100644
--- a/package.json
+++ b/package.json
@@ -55,7 +55,7 @@
"@nucypher/nucypher-core": "^0.11.0",
"axios": "^0.21.1",
"deep-equal": "^2.2.1",
- "ethers": "^5.4.1",
+ "ethers": "^5.7.2",
"joi": "^17.7.0",
"qs": "^6.10.1",
"semver": "^7.5.2"
diff --git a/src/agents/coordinator.ts b/src/agents/coordinator.ts
index 830376c98..a69e1d85b 100644
--- a/src/agents/coordinator.ts
+++ b/src/agents/coordinator.ts
@@ -57,10 +57,11 @@ export class DkgCoordinatorAgent {
}
public static async initializeRitual(
- provider: ethers.providers.Web3Provider,
+ provider: ethers.providers.Provider,
+ signer: ethers.Signer,
providers: ChecksumAddress[]
): Promise {
- const Coordinator = await this.connectReadWrite(provider);
+ const Coordinator = await this.connectReadWrite(provider, signer);
const tx = await Coordinator.initiateRitual(providers);
const txReceipt = await tx.wait(DEFAULT_WAIT_N_CONFIRMATIONS);
const [ritualStartEvent] = txReceipt.events ?? [];
@@ -79,7 +80,7 @@ export class DkgCoordinatorAgent {
}
public static async getRitualState(
- provider: ethers.providers.Web3Provider,
+ provider: ethers.providers.Provider,
ritualId: number
): Promise {
const Coordinator = await this.connectReadOnly(provider);
@@ -87,7 +88,7 @@ export class DkgCoordinatorAgent {
}
public static async onRitualEndEvent(
- provider: ethers.providers.Web3Provider,
+ provider: ethers.providers.Provider,
ritualId: number,
callback: (successful: boolean) => void
): Promise {
@@ -109,14 +110,15 @@ export class DkgCoordinatorAgent {
}
private static async connectReadWrite(
- web3Provider: ethers.providers.Web3Provider
+ provider: ethers.providers.Provider,
+ signer: ethers.Signer
) {
- return await this.connect(web3Provider, web3Provider.getSigner());
+ return await this.connect(provider, signer);
}
private static async connect(
provider: ethers.providers.Provider,
- signer?: ethers.providers.JsonRpcSigner
+ signer: ethers.Signer | undefined = undefined
): Promise {
const network = await provider.getNetwork();
const contractAddress = getContract(network.chainId, 'COORDINATOR');
diff --git a/src/agents/subscription-manager.ts b/src/agents/subscription-manager.ts
index ac8a5a3c5..da8236588 100644
--- a/src/agents/subscription-manager.ts
+++ b/src/agents/subscription-manager.ts
@@ -15,7 +15,8 @@ import { DEFAULT_WAIT_N_CONFIRMATIONS, getContract } from './contracts';
export class PreSubscriptionManagerAgent {
public static async createPolicy(
- web3Provider: ethers.providers.Web3Provider,
+ provider: ethers.providers.Provider,
+ signer: ethers.Signer,
valueInWei: BigNumber,
policyId: Uint8Array,
size: number,
@@ -23,7 +24,7 @@ export class PreSubscriptionManagerAgent {
endTimestamp: number,
ownerAddress: ChecksumAddress
): Promise {
- const SubscriptionManager = await this.connectReadWrite(web3Provider);
+ const SubscriptionManager = await this.connectReadWrite(provider, signer);
const overrides = {
value: valueInWei.toString(),
};
@@ -66,14 +67,15 @@ export class PreSubscriptionManagerAgent {
}
private static async connectReadWrite(
- web3Provider: ethers.providers.Web3Provider
+ provider: ethers.providers.Provider,
+ signer: ethers.Signer
) {
- return await this.connect(web3Provider, web3Provider.getSigner());
+ return await this.connect(provider, signer);
}
private static async connect(
provider: ethers.providers.Provider,
- signer?: ethers.providers.JsonRpcSigner
+ signer?: ethers.Signer
): Promise {
const network = await provider.getNetwork();
const contractAddress = getContract(
diff --git a/src/characters/alice.ts b/src/characters/alice.ts
index dfe06d02f..579d4a338 100644
--- a/src/characters/alice.ts
+++ b/src/characters/alice.ts
@@ -42,7 +42,8 @@ export class Alice {
}
public async grant(
- web3Provider: ethers.providers.Web3Provider,
+ provider: ethers.providers.Provider,
+ signer: ethers.Signer,
porterUri: string,
policyParameters: BlockchainPolicyParameters,
includeUrsulas?: readonly ChecksumAddress[],
@@ -54,12 +55,12 @@ export class Alice {
excludeUrsulas,
includeUrsulas
);
- const policy = await this.createPolicy(web3Provider, policyParameters);
- return await policy.enact(web3Provider, ursulas);
+ const policy = await this.createPolicy(provider, policyParameters);
+ return await policy.enact(provider, signer, ursulas);
}
public async generatePreEnactedPolicy(
- web3Provider: ethers.providers.Web3Provider,
+ provider: ethers.providers.Provider,
porterUri: string,
policyParameters: BlockchainPolicyParameters,
includeUrsulas?: readonly ChecksumAddress[],
@@ -71,7 +72,7 @@ export class Alice {
excludeUrsulas,
includeUrsulas
);
- const policy = await this.createPolicy(web3Provider, policyParameters);
+ const policy = await this.createPolicy(provider, policyParameters);
return await policy.generatePreEnactedPolicy(ursulas);
}
@@ -94,11 +95,11 @@ export class Alice {
}
private async createPolicy(
- web3Provider: ethers.providers.Web3Provider,
+ provider: ethers.providers.Provider,
rawParameters: BlockchainPolicyParameters
): Promise {
const { bob, label, threshold, shares, startDate, endDate } =
- await this.validatePolicyParameters(web3Provider, rawParameters);
+ await this.validatePolicyParameters(provider, rawParameters);
const { delegatingKey, verifiedKFrags } = this.generateKFrags(
bob,
label,
@@ -119,7 +120,7 @@ export class Alice {
}
private async validatePolicyParameters(
- web3Provider: ethers.providers.Web3Provider,
+ provider: ethers.providers.Provider,
rawParams: BlockchainPolicyParameters
): Promise {
const startDate = rawParams.startDate ?? new Date();
@@ -141,8 +142,8 @@ export class Alice {
);
}
- const blockNumber = await web3Provider.getBlockNumber();
- const block = await web3Provider.getBlock(blockNumber);
+ const blockNumber = await provider.getBlockNumber();
+ const block = await provider.getBlock(blockNumber);
const blockTime = new Date(block.timestamp * 1000);
if (endDate < blockTime) {
throw new Error(
diff --git a/src/characters/cbd-recipient.ts b/src/characters/cbd-recipient.ts
index c37629fdc..b049339af 100644
--- a/src/characters/cbd-recipient.ts
+++ b/src/characters/cbd-recipient.ts
@@ -44,12 +44,14 @@ export class ThresholdDecrypter {
// Retrieve and decrypt ciphertext using provider and condition expression
public async retrieveAndDecrypt(
- provider: ethers.providers.Web3Provider,
+ provider: ethers.providers.Provider,
+ signer: ethers.Signer,
conditionExpr: ConditionExpression,
ciphertext: Ciphertext
): Promise {
const decryptionShares = await this.retrieve(
provider,
+ signer,
conditionExpr,
ciphertext
);
@@ -64,7 +66,8 @@ export class ThresholdDecrypter {
// Retrieve decryption shares
public async retrieve(
- provider: ethers.providers.Web3Provider,
+ provider: ethers.providers.Provider,
+ signer: ethers.Signer,
conditionExpr: ConditionExpression,
ciphertext: Ciphertext
): Promise {
@@ -72,7 +75,9 @@ export class ThresholdDecrypter {
provider,
this.ritualId
);
- const contextStr = await conditionExpr.buildContext(provider).toJson();
+ const contextStr = await conditionExpr
+ .buildContext(provider, signer)
+ .toJson();
const { sharedSecrets, encryptedRequests } = this.makeDecryptionRequests(
this.ritualId,
ciphertext,
diff --git a/src/characters/pre-recipient.ts b/src/characters/pre-recipient.ts
index f3ae24f5a..0e3cbd0e1 100644
--- a/src/characters/pre-recipient.ts
+++ b/src/characters/pre-recipient.ts
@@ -63,10 +63,15 @@ export class PreDecrypter {
}
public async retrieveAndDecrypt(
- messageKits: readonly MessageKit[],
- provider: ethers.providers.Web3Provider
+ provider: ethers.providers.Provider,
+ signer: ethers.Signer,
+ messageKits: readonly MessageKit[]
): Promise {
- const policyMessageKits = await this.retrieve(messageKits, provider);
+ const policyMessageKits = await this.retrieve(
+ provider,
+ signer,
+ messageKits
+ );
policyMessageKits.forEach((mk: PolicyMessageKit) => {
if (!mk.isDecryptableByReceiver()) {
@@ -90,8 +95,9 @@ export class PreDecrypter {
}
public async retrieve(
- messageKits: readonly MessageKit[],
- provider: ethers.providers.Web3Provider
+ provider: ethers.providers.Provider,
+ signer: ethers.Signer,
+ messageKits: readonly MessageKit[]
): Promise {
const treasureMap = this.encryptedTreasureMap.decrypt(
this.keyring.secretKey,
@@ -106,7 +112,7 @@ export class PreDecrypter {
.reduce((acc: ConditionExpression[], val) => acc.concat(val), [])
.map((condExpr: ConditionExpression) => condExpr.condition);
- const conditionContext = new ConditionContext(conditions, provider);
+ const conditionContext = new ConditionContext(provider, signer, conditions);
const policyMessageKits = messageKits.map((mk) =>
PolicyMessageKit.fromMessageKit(
diff --git a/src/conditions/condition-expr.ts b/src/conditions/condition-expr.ts
index 61c446e53..103f8c2a9 100644
--- a/src/conditions/condition-expr.ts
+++ b/src/conditions/condition-expr.ts
@@ -85,9 +85,10 @@ export class ConditionExpression {
}
public buildContext(
- provider: ethers.providers.Web3Provider
+ provider: ethers.providers.Provider,
+ signer: ethers.Signer
): ConditionContext {
- return new ConditionContext([this.condition], provider);
+ return new ConditionContext(provider, signer, [this.condition]);
}
public asAad(): Uint8Array {
diff --git a/src/conditions/context/context.ts b/src/conditions/context/context.ts
index fcf9939c3..4f9c478f2 100644
--- a/src/conditions/context/context.ts
+++ b/src/conditions/context/context.ts
@@ -17,10 +17,11 @@ export class ConditionContext {
private readonly walletAuthProvider: WalletAuthenticationProvider;
constructor(
- private readonly conditions: ReadonlyArray,
// TODO: We don't always need a web3 provider, only in cases where some specific context parameters are used
// TODO: Consider making this optional or introducing a different pattern to handle that
- private readonly web3Provider: ethers.providers.Web3Provider,
+ private readonly provider: ethers.providers.Provider,
+ private readonly signer: ethers.Signer,
+ private readonly conditions: ReadonlyArray,
public readonly customParameters: Record = {}
) {
Object.keys(customParameters).forEach((key) => {
@@ -35,7 +36,10 @@ export class ConditionContext {
);
}
});
- this.walletAuthProvider = new WalletAuthenticationProvider(web3Provider);
+ this.walletAuthProvider = new WalletAuthenticationProvider(
+ provider,
+ signer
+ );
}
public toObj = async (): Promise> => {
@@ -103,6 +107,11 @@ export class ConditionContext {
public withCustomParams = (
params: Record
): ConditionContext => {
- return new ConditionContext(this.conditions, this.web3Provider, params);
+ return new ConditionContext(
+ this.provider,
+ this.signer,
+ this.conditions,
+ params
+ );
};
}
diff --git a/src/conditions/context/providers.ts b/src/conditions/context/providers.ts
index 9b8db518e..c58951c32 100644
--- a/src/conditions/context/providers.ts
+++ b/src/conditions/context/providers.ts
@@ -1,3 +1,4 @@
+import type { TypedDataSigner } from '@ethersproject/abstract-signer';
import { ethers } from 'ethers';
import { utils as ethersUtils } from 'ethers/lib/ethers';
@@ -18,10 +19,13 @@ interface ChainData {
export class WalletAuthenticationProvider {
private walletSignature?: Record;
- constructor(private readonly web3Provider: ethers.providers.Web3Provider) {}
+ constructor(
+ private readonly provider: ethers.providers.Provider,
+ private readonly signer: ethers.Signer
+ ) {}
public async getOrCreateWalletSignature(): Promise {
- const address = await this.web3Provider.getSigner().getAddress();
+ const address = await this.signer.getAddress();
const storageKey = `wallet-signature-${address}`;
// If we have a signature in localStorage, return it
@@ -59,7 +63,7 @@ export class WalletAuthenticationProvider {
private async createWalletSignature(): Promise {
// Ensure freshness of the signature
const { blockNumber, blockHash, chainId } = await this.getChainData();
- const address = await this.web3Provider.getSigner().getAddress();
+ const address = await this.signer.getAddress();
const signatureText = `I'm the owner of address ${address} as of block number ${blockNumber}`;
const salt = ethersUtils.hexlify(ethersUtils.randomBytes(32));
@@ -85,9 +89,10 @@ export class WalletAuthenticationProvider {
blockHash,
},
};
- const signature = await this.web3Provider
- .getSigner()
- ._signTypedData(typedData.domain, typedData.types, typedData.message);
+ // https://github.com/ethers-io/ethers.js/issues/1431#issuecomment-813950552
+ const signature = await (
+ this.signer as unknown as TypedDataSigner
+ )._signTypedData(typedData.domain, typedData.types, typedData.message);
const formattedTypedData: FormattedTypedData = {
...typedData,
@@ -118,9 +123,9 @@ export class WalletAuthenticationProvider {
}
private async getChainData(): Promise {
- const blockNumber = await this.web3Provider.getBlockNumber();
- const blockHash = (await this.web3Provider.getBlock(blockNumber)).hash;
- const chainId = (await this.web3Provider.getNetwork()).chainId;
+ const blockNumber = await this.provider.getBlockNumber();
+ const blockHash = (await this.provider.getBlock(blockNumber)).hash;
+ const chainId = (await this.provider.getNetwork()).chainId;
return { blockNumber, blockHash, chainId };
}
}
diff --git a/src/dkg.ts b/src/dkg.ts
index e65095838..c1ab06499 100644
--- a/src/dkg.ts
+++ b/src/dkg.ts
@@ -65,23 +65,25 @@ const assumedThreshold = (sharesNum: number): number =>
export class DkgClient {
public static async initializeRitual(
- web3Provider: ethers.providers.Web3Provider,
+ provider: ethers.providers.Provider,
+ signer: ethers.Signer,
ursulas: ChecksumAddress[],
waitUntilEnd = false
): Promise {
const ritualId = await DkgCoordinatorAgent.initializeRitual(
- web3Provider,
+ provider,
+ signer,
ursulas.sort()
);
if (waitUntilEnd) {
const isSuccessful = await DkgClient.waitUntilRitualEnd(
- web3Provider,
+ provider,
ritualId
);
if (!isSuccessful) {
const ritualState = await DkgCoordinatorAgent.getRitualState(
- web3Provider,
+ provider,
ritualId
);
throw new Error(
@@ -94,7 +96,7 @@ export class DkgClient {
}
private static waitUntilRitualEnd = async (
- web3Provider: ethers.providers.Web3Provider,
+ provider: ethers.providers.Provider,
ritualId: number
): Promise => {
return new Promise((resolve, reject) => {
@@ -105,19 +107,19 @@ export class DkgClient {
reject();
}
};
- DkgCoordinatorAgent.onRitualEndEvent(web3Provider, ritualId, callback);
+ DkgCoordinatorAgent.onRitualEndEvent(provider, ritualId, callback);
});
};
public static async getExistingRitual(
- web3Provider: ethers.providers.Web3Provider,
+ provider: ethers.providers.Provider,
ritualId: number
): Promise {
const ritualState = await DkgCoordinatorAgent.getRitualState(
- web3Provider,
+ provider,
ritualId
);
- const ritual = await DkgCoordinatorAgent.getRitual(web3Provider, ritualId);
+ const ritual = await DkgCoordinatorAgent.getRitual(provider, ritualId);
const dkgPkBytes = new Uint8Array([
...fromHexString(ritual.publicKey.word0),
...fromHexString(ritual.publicKey.word1),
diff --git a/src/policies/policy.ts b/src/policies/policy.ts
index 00c62003a..2dc9dec07 100644
--- a/src/policies/policy.ts
+++ b/src/policies/policy.ts
@@ -42,9 +42,10 @@ export class PreEnactedPolicy implements IPreEnactedPolicy {
) {}
public async enact(
- web3Provider: ethers.providers.Web3Provider
+ provider: ethers.providers.Provider,
+ signer: ethers.Signer
): Promise {
- const txHash = await this.publish(web3Provider);
+ const txHash = await this.publish(provider, signer);
return {
...this,
txHash,
@@ -52,19 +53,21 @@ export class PreEnactedPolicy implements IPreEnactedPolicy {
}
private async publish(
- web3Provider: ethers.providers.Web3Provider
+ provider: ethers.providers.Provider,
+ signer: ethers.Signer
): Promise {
const startTimestamp = toEpoch(this.startTimestamp);
const endTimestamp = toEpoch(this.endTimestamp);
- const ownerAddress = await web3Provider.getSigner().getAddress();
+ const ownerAddress = await signer.getAddress();
const value = await PreSubscriptionManagerAgent.getPolicyCost(
- web3Provider,
+ provider,
this.size,
startTimestamp,
endTimestamp
);
const tx = await PreSubscriptionManagerAgent.createPolicy(
- web3Provider,
+ provider,
+ signer,
value,
this.id.toBytes(),
this.size,
@@ -107,11 +110,12 @@ export class BlockchainPolicy {
}
public async enact(
- web3Provider: ethers.providers.Web3Provider,
+ provider: ethers.providers.Provider,
+ signer: ethers.Signer,
ursulas: readonly Ursula[]
): Promise {
const preEnacted = await this.generatePreEnactedPolicy(ursulas);
- return await preEnacted.enact(web3Provider);
+ return await preEnacted.enact(provider, signer);
}
public async generatePreEnactedPolicy(
diff --git a/src/sdk/strategy/cbd-strategy.ts b/src/sdk/strategy/cbd-strategy.ts
index f48accc9f..56a91c6c3 100644
--- a/src/sdk/strategy/cbd-strategy.ts
+++ b/src/sdk/strategy/cbd-strategy.ts
@@ -29,13 +29,13 @@ export class CbdStrategy {
}
public async deploy(
- web3Provider: ethers.providers.Web3Provider,
+ provider: ethers.providers.Provider,
ritualId: number
): Promise {
// TODO(#264): Enable ritual initialization
// if (ritualId === undefined) {
// ritualId = await DkgClient.initializeRitual(
- // web3Provider,
+ // provider,
// this.cohort.ursulaAddresses,
// true
// );
@@ -44,7 +44,7 @@ export class CbdStrategy {
// // Given that we just initialized the ritual, this should never happen
// throw new Error('Ritual ID is undefined');
// }
- const dkgRitual = await DkgClient.getExistingRitual(web3Provider, ritualId);
+ const dkgRitual = await DkgClient.getExistingRitual(provider, ritualId);
return DeployedCbdStrategy.create(dkgRitual, this.cohort.porterUri);
}
@@ -84,7 +84,7 @@ export class DeployedCbdStrategy {
// TODO: This is analogous to create() above, is it useful?
public static async fromRitualId(
- provider: ethers.providers.Web3Provider,
+ provider: ethers.providers.Provider,
porterUri: string,
ritualId: number
): Promise {
diff --git a/src/sdk/strategy/pre-strategy.ts b/src/sdk/strategy/pre-strategy.ts
index 267f0480d..734d10dfc 100644
--- a/src/sdk/strategy/pre-strategy.ts
+++ b/src/sdk/strategy/pre-strategy.ts
@@ -62,7 +62,8 @@ export class PreStrategy {
}
public async deploy(
- web3Provider: ethers.providers.Web3Provider,
+ provider: ethers.providers.Provider,
+ signer: ethers.Signer,
label: string,
threshold = Math.floor(this.cohort.numUrsulas / 2) + 1,
shares = this.cohort.numUrsulas
@@ -85,7 +86,8 @@ export class PreStrategy {
endDate: this.endDate,
};
const policy = await alice.grant(
- web3Provider,
+ provider,
+ signer,
porterUri,
policyParams,
this.cohort.ursulaAddresses
diff --git a/test/acceptance/alice-grants.test.ts b/test/acceptance/alice-grants.test.ts
index 9600e7582..1fe6ccad5 100644
--- a/test/acceptance/alice-grants.test.ts
+++ b/test/acceptance/alice-grants.test.ts
@@ -14,9 +14,10 @@ import {
fakeAlice,
fakeBob,
fakePorterUri,
+ fakeProvider,
fakeRemoteBob,
+ fakeSigner,
fakeUrsulas,
- fakeWeb3Provider,
fromBytes,
mockEncryptTreasureMap,
mockGenerateKFrags,
@@ -34,7 +35,8 @@ describe('story: alice shares message with bob through policy', () => {
const startDate = new Date();
const endDate = new Date(Date.now() + 60 * 1000);
const mockedUrsulas = fakeUrsulas(shares);
- const web3Provider = fakeWeb3Provider();
+ const provider = fakeProvider();
+ const signer = fakeSigner();
// Intermediate variables used for mocking
let encryptedTreasureMap: EncryptedTreasureMap;
@@ -65,7 +67,7 @@ describe('story: alice shares message with bob through policy', () => {
startDate,
endDate,
};
- policy = await alice.grant(web3Provider, fakePorterUri, policyParams);
+ policy = await alice.grant(provider, signer, fakePorterUri, policyParams);
expect(
bytesEqual(
diff --git a/test/acceptance/delay-enact.test.ts b/test/acceptance/delay-enact.test.ts
index ac0183072..8ad674208 100644
--- a/test/acceptance/delay-enact.test.ts
+++ b/test/acceptance/delay-enact.test.ts
@@ -2,9 +2,10 @@ import {
bytesEqual,
fakeAlice,
fakePorterUri,
+ fakeProvider,
fakeRemoteBob,
+ fakeSigner,
fakeUrsulas,
- fakeWeb3Provider,
mockEncryptTreasureMap,
mockGenerateKFrags,
mockGetUrsulas,
@@ -18,7 +19,8 @@ describe('story: alice creates a policy but someone else enacts it', () => {
const endDate = new Date(Date.now() + 60 * 1000); // 60s later
const mockedUrsulas = fakeUrsulas(shares);
const label = 'fake-data-label';
- const web3Provider = fakeWeb3Provider();
+ const provider = fakeProvider();
+ const signer = fakeSigner();
it('alice generates a new policy', async () => {
const getUrsulasSpy = mockGetUrsulas(mockedUrsulas);
@@ -38,7 +40,7 @@ describe('story: alice creates a policy but someone else enacts it', () => {
};
const preEnactedPolicy = await alice.generatePreEnactedPolicy(
- web3Provider,
+ provider,
fakePorterUri,
policyParams
);
@@ -50,7 +52,7 @@ describe('story: alice creates a policy but someone else enacts it', () => {
).toBeTruthy();
expect(preEnactedPolicy.label).toBe(label);
- const enacted = await preEnactedPolicy.enact(web3Provider);
+ const enacted = await preEnactedPolicy.enact(provider, signer);
expect(enacted.txHash).toBeDefined();
expect(getUrsulasSpy).toHaveBeenCalled();
diff --git a/test/docs/cbd.test.ts b/test/docs/cbd.test.ts
index e657827c7..e0e0c40af 100644
--- a/test/docs/cbd.test.ts
+++ b/test/docs/cbd.test.ts
@@ -11,8 +11,8 @@ import {
import { Ursula } from '../../src/porter';
import { toBytes } from '../../src/utils';
import {
+ fakeProvider,
fakeUrsulas,
- fakeWeb3Provider,
mockDetectEthereumProvider,
mockEncryptTreasureMap,
mockGenerateKFrags,
@@ -57,9 +57,7 @@ describe('Get Started (CBD PoC)', () => {
jest
.spyOn(providers, 'Web3Provider')
- .mockImplementation(() =>
- fakeWeb3Provider(SecretKey.random().toBEBytes())
- );
+ .mockImplementation(() => fakeProvider(SecretKey.random().toBEBytes()));
//
// Start of the code example
@@ -88,8 +86,9 @@ describe('Get Started (CBD PoC)', () => {
const MMprovider = await detectEthereumProvider();
const mumbai = providers.getNetwork(80001);
- const web3Provider = new providers.Web3Provider(MMprovider, mumbai);
- const newDeployed = await newStrategy.deploy(web3Provider, 'test');
+ const provider = new providers.Web3Provider(MMprovider, mumbai);
+ const signer = provider.getSigner();
+ const newDeployed = await newStrategy.deploy(provider, signer, 'test');
// 5. Encrypt the plaintext & update conditions
const NFTBalanceConfig = {
@@ -117,8 +116,9 @@ describe('Get Started (CBD PoC)', () => {
// 6. Request decryption rights
const decryptedMessage = await newDeployed.decrypter.retrieveAndDecrypt(
- [encryptedMessageKit],
- web3Provider
+ provider,
+ signer,
+ [encryptedMessageKit]
);
//
diff --git a/test/integration/dkg-client.test.ts b/test/integration/dkg-client.test.ts
index acb8337b6..c3eed8e8a 100644
--- a/test/integration/dkg-client.test.ts
+++ b/test/integration/dkg-client.test.ts
@@ -4,8 +4,8 @@ import { DkgCoordinatorAgent } from '../../src/agents/coordinator';
import {
fakeCoordinatorRitual,
fakeDkgParticipants,
+ fakeProvider,
fakeRitualId,
- fakeWeb3Provider,
mockGetParticipants,
} from '../utils';
@@ -22,13 +22,13 @@ describe('DkgCoordinatorAgent', () => {
});
it('fetches transcripts from the coordinator', async () => {
- const provider = fakeWeb3Provider(SecretKey.random().toBEBytes());
+ const provider = fakeProvider(SecretKey.random().toBEBytes());
const ritual = await DkgCoordinatorAgent.getRitual(provider, fakeRitualId);
expect(ritual).toBeDefined();
});
it('fetches participants from the coordinator', async () => {
- const provider = fakeWeb3Provider(SecretKey.random().toBEBytes());
+ const provider = fakeProvider(SecretKey.random().toBEBytes());
const fakeParticipants = fakeDkgParticipants(fakeRitualId);
const getParticipantsSpy = mockGetParticipants(
fakeParticipants.participants
diff --git a/test/unit/cbd-strategy.test.ts b/test/unit/cbd-strategy.test.ts
index d38aeeb45..093dba61c 100644
--- a/test/unit/cbd-strategy.test.ts
+++ b/test/unit/cbd-strategy.test.ts
@@ -9,9 +9,10 @@ import {
fakeDkgFlow,
fakeDkgParticipants,
fakeDkgRitual,
+ fakeProvider,
+ fakeSigner,
fakeTDecFlow,
fakeUrsulas,
- fakeWeb3Provider,
makeCohort,
mockCbdDecrypt,
mockGetExistingRitual,
@@ -29,7 +30,8 @@ const {
// Shared test variables
const aliceSecretKey = SecretKey.fromBEBytes(aliceSecretKeyBytes);
-const aliceProvider = fakeWeb3Provider(aliceSecretKey.toBEBytes());
+const aliceSigner = fakeSigner(aliceSecretKey.toBEBytes());
+const aliceProvider = fakeProvider(aliceSecretKey.toBEBytes());
const ownsNFT = new ERC721Ownership({
contractAddress: '0x1e988ba4692e52Bc50b375bcC8585b95c48AaD77',
parameters: [3591],
@@ -52,7 +54,7 @@ async function makeDeployedCbdStrategy() {
const mockedDkg = fakeDkgFlow(variant, 0, 4, 4);
const mockedDkgRitual = fakeDkgRitual(mockedDkg);
- const web3Provider = fakeWeb3Provider(aliceSecretKey.toBEBytes());
+ const web3Provider = fakeProvider(aliceSecretKey.toBEBytes());
const getUrsulasSpy = mockGetUrsulas(ursulas);
const getExistingRitualSpy = mockGetExistingRitual(mockedDkgRitual);
const deployedStrategy = await strategy.deploy(web3Provider, ritualId);
@@ -131,6 +133,7 @@ describe('CbdDeployedStrategy', () => {
const decryptedMessage =
await deployedStrategy.decrypter.retrieveAndDecrypt(
aliceProvider,
+ aliceSigner,
conditionExpr,
ciphertext
);
diff --git a/test/unit/conditions/base/contract.test.ts b/test/unit/conditions/base/contract.test.ts
index ee988bbb6..5a2b26b7b 100644
--- a/test/unit/conditions/base/contract.test.ts
+++ b/test/unit/conditions/base/contract.test.ts
@@ -1,12 +1,10 @@
-import { SecretKey } from '@nucypher/nucypher-core';
-
import {
ConditionExpression,
CustomContextParam,
} from '../../../../src/conditions';
import { ContractCondition } from '../../../../src/conditions/base';
import { USER_ADDRESS_PARAM } from '../../../../src/conditions/const';
-import { fakeWeb3Provider } from '../../../utils';
+import { fakeProvider, fakeSigner } from '../../../utils';
import { testContractConditionObj, testFunctionAbi } from '../../testVariables';
describe('validation', () => {
@@ -116,9 +114,10 @@ describe('supports custom function abi', () => {
},
};
const contractCondition = new ContractCondition(contractConditionObj);
- const web3Provider = fakeWeb3Provider(SecretKey.random().toBEBytes());
+ const provider = fakeProvider();
+ const signer = fakeSigner();
const conditionExpr = new ConditionExpression(contractCondition);
- const conditionContext = conditionExpr.buildContext(web3Provider);
+ const conditionContext = conditionExpr.buildContext(provider, signer);
const myCustomParam = ':customParam';
const customParams: Record = {};
customParams[myCustomParam] = 1234;
diff --git a/test/unit/conditions/context.test.ts b/test/unit/conditions/context.test.ts
index 035b704d6..eb254ea62 100644
--- a/test/unit/conditions/context.test.ts
+++ b/test/unit/conditions/context.test.ts
@@ -1,11 +1,9 @@
-import { SecretKey } from '@nucypher/nucypher-core';
-
import { CustomContextParam } from '../../../src';
import { ConditionExpression } from '../../../src/conditions';
import { ContractCondition, RpcCondition } from '../../../src/conditions/base';
import { USER_ADDRESS_PARAM } from '../../../src/conditions/const';
import { RESERVED_CONTEXT_PARAMS } from '../../../src/conditions/context/context';
-import { fakeWeb3Provider } from '../../utils';
+import { fakeProvider, fakeSigner } from '../../utils';
import {
testContractConditionObj,
testFunctionAbi,
@@ -13,7 +11,8 @@ import {
testRpcConditionObj,
} from '../testVariables';
-const web3Provider = fakeWeb3Provider(SecretKey.random().toBEBytes());
+const provider = fakeProvider();
+const signer = fakeSigner();
describe('serialization', () => {
it('serializes to json', async () => {
@@ -27,7 +26,8 @@ describe('serialization', () => {
},
});
const conditionContext = new ConditionExpression(rpcCondition).buildContext(
- web3Provider
+ provider,
+ signer
);
const asJson = await conditionContext.toJson();
expect(asJson).toBeDefined();
@@ -49,7 +49,7 @@ describe('context parameters', () => {
};
const contractCondition = new ContractCondition(contractConditionObj);
const conditionExpr = new ConditionExpression(contractCondition);
- const conditionContext = conditionExpr.buildContext(web3Provider);
+ const conditionContext = conditionExpr.buildContext(provider, signer);
describe('return value test', () => {
it('accepts on a custom context parameters', async () => {
@@ -96,7 +96,7 @@ describe('context parameters', () => {
});
const conditionContext = new ConditionExpression(
customContractCondition
- ).buildContext(web3Provider);
+ ).buildContext(provider, signer);
await expect(async () => conditionContext.toObj()).rejects.toThrow(
`Missing custom context parameter(s): ${customParamKey}`
@@ -110,7 +110,7 @@ describe('context parameters', () => {
});
const conditionContext = new ConditionExpression(
customContractCondition
- ).buildContext(web3Provider);
+ ).buildContext(provider, signer);
const asObj = await conditionContext.toObj();
expect(asObj).toBeDefined();
diff --git a/test/unit/pre-strategy.test.ts b/test/unit/pre-strategy.test.ts
index daee95dae..c4f775061 100644
--- a/test/unit/pre-strategy.test.ts
+++ b/test/unit/pre-strategy.test.ts
@@ -9,8 +9,9 @@ import {
import { Ursula } from '../../src/porter';
import { toBytes } from '../../src/utils';
import {
+ fakeProvider,
+ fakeSigner,
fakeUrsulas,
- fakeWeb3Provider,
makeCohort,
mockEncryptTreasureMap,
mockGenerateKFrags,
@@ -30,8 +31,10 @@ const {
// Shared test variables
const aliceSecretKey = SecretKey.fromBEBytes(aliceSecretKeyBytes);
const bobSecretKey = SecretKey.fromBEBytes(bobSecretKeyBytes);
-const aliceProvider = fakeWeb3Provider(aliceSecretKey.toBEBytes());
-const bobProvider = fakeWeb3Provider(bobSecretKey.toBEBytes());
+const aliceSigner = fakeSigner(aliceSecretKey.toBEBytes());
+const aliceProvider = fakeProvider(aliceSecretKey.toBEBytes());
+const bobSigner = fakeSigner(bobSecretKey.toBEBytes());
+const bobProvider = fakeProvider(bobSecretKey.toBEBytes());
const ownsNFT = new ERC721Ownership({
contractAddress: '0x1e988ba4692e52Bc50b375bcC8585b95c48AaD77',
parameters: [3591],
@@ -54,7 +57,11 @@ const makeDeployedPreStrategy = async () => {
const makeTreasureMapSpy = mockMakeTreasureMap();
const encryptTreasureMapSpy = mockEncryptTreasureMap();
- const deployedStrategy = await strategy.deploy(aliceProvider, 'test');
+ const deployedStrategy = await strategy.deploy(
+ aliceProvider,
+ aliceSigner,
+ 'test'
+ );
expect(generateKFragsSpy).toHaveBeenCalled();
expect(publishToBlockchainSpy).toHaveBeenCalled();
@@ -126,8 +133,9 @@ describe('PreDeployedStrategy', () => {
const decryptedMessage =
await deployedStrategy.decrypter.retrieveAndDecrypt(
- [encryptedMessageKit],
- bobProvider
+ bobProvider,
+ bobSigner,
+ [encryptedMessageKit]
);
expect(getUrsulasSpy).toHaveBeenCalled();
expect(retrieveCFragsSpy).toHaveBeenCalled();
diff --git a/test/utils.ts b/test/utils.ts
index 69fd8186e..d574412fc 100644
--- a/test/utils.ts
+++ b/test/utils.ts
@@ -81,27 +81,44 @@ export const fakeAlice = (aliceKey = 'fake-secret-key-32-bytes-alice-x') => {
return Alice.fromSecretKey(secretKey);
};
-export const fakeWeb3Provider = (
- secretKeyBytes = SecretKey.random().toBEBytes(),
- blockNumber?: number,
- blockTimestamp?: number
-): ethers.providers.Web3Provider => {
- const block = { timestamp: blockTimestamp ?? 1000 };
- const provider = {
- getBlockNumber: () => Promise.resolve(blockNumber ?? 1000),
+const makeFakeProvider = (timestamp: number, blockNumber: number) => {
+ const block = { timestamp };
+ return {
+ getBlockNumber: () => Promise.resolve(blockNumber),
getBlock: () => Promise.resolve(block as Block),
_isProvider: true,
getNetwork: () => Promise.resolve({ name: 'mockNetwork', chainId: -1 }),
};
- const fakeSignerWithProvider = {
+};
+
+export const fakeSigner = (
+ secretKeyBytes = SecretKey.random().toBEBytes(),
+ blockNumber = 1000,
+ blockTimestamp = 1000
+) => {
+ const provider = makeFakeProvider(blockNumber, blockTimestamp);
+ return {
...new Wallet(secretKeyBytes),
- provider,
+ provider: provider,
_signTypedData: () => Promise.resolve('fake-typed-signature'),
getAddress: () =>
Promise.resolve('0x0000000000000000000000000000000000000000'),
} as unknown as ethers.providers.JsonRpcSigner;
+};
+
+export const fakeProvider = (
+ secretKeyBytes = SecretKey.random().toBEBytes(),
+ blockNumber = 1000,
+ blockTimestamp = 1000
+): ethers.providers.Web3Provider => {
+ const fakeProvider = makeFakeProvider(blockTimestamp, blockNumber);
+ const fakeSignerWithProvider = fakeSigner(
+ secretKeyBytes,
+ blockNumber,
+ blockTimestamp
+ );
return {
- ...provider,
+ ...fakeProvider,
getSigner: () => fakeSignerWithProvider,
} as unknown as ethers.providers.Web3Provider;
};
@@ -496,12 +513,6 @@ export const fakeDkgRitual = (ritual: {
);
};
-export const mockInitializeRitual = (ritualId: number) => {
- return jest.spyOn(DkgClient, 'initializeRitual').mockImplementation(() => {
- return Promise.resolve(ritualId);
- });
-};
-
export const mockGetExistingRitual = (dkgRitual: DkgRitual) => {
return jest.spyOn(DkgClient, 'getExistingRitual').mockImplementation(() => {
return Promise.resolve(dkgRitual);
@@ -516,9 +527,3 @@ export const makeCohort = async (ursulas: Ursula[]) => {
expect(getUrsulasSpy).toHaveBeenCalled();
return cohort;
};
-
-export const mockGetRitualState = (state = DkgRitualState.FINALIZED) => {
- return jest
- .spyOn(DkgCoordinatorAgent, 'getRitualState')
- .mockImplementation((_provider, _ritualId) => Promise.resolve(state));
-};
diff --git a/yarn.lock b/yarn.lock
index 4e46e2b5b..7497c95a9 100644
--- a/yarn.lock
+++ b/yarn.lock
@@ -22,12 +22,13 @@
dependencies:
"@babel/highlight" "^7.10.4"
-"@babel/code-frame@^7.0.0", "@babel/code-frame@^7.12.13", "@babel/code-frame@^7.22.5":
- version "7.22.5"
- resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.22.5.tgz#234d98e1551960604f1246e6475891a570ad5658"
- integrity sha512-Xmwn266vad+6DAqEB2A6V/CcZVp62BbwVmcOJc2RPuwih1kw02TjQvWVWlcKGbBPd+8/0V5DEkOcizRGYsspYQ==
+"@babel/code-frame@^7.0.0", "@babel/code-frame@^7.12.13", "@babel/code-frame@^7.22.10", "@babel/code-frame@^7.22.5":
+ version "7.22.10"
+ resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.22.10.tgz#1c20e612b768fefa75f6e90d6ecb86329247f0a3"
+ integrity sha512-/KKIMG4UEL35WmI9OlvMhurwtytjvXoFcGNrOvyG9zIzA8YmPjVtIZUf7b05+TPO7G7/GEmLHDaoCgACHl9hhA==
dependencies:
- "@babel/highlight" "^7.22.5"
+ "@babel/highlight" "^7.22.10"
+ chalk "^2.4.2"
"@babel/compat-data@^7.22.5", "@babel/compat-data@^7.22.6", "@babel/compat-data@^7.22.9":
version "7.22.9"
@@ -35,32 +36,32 @@
integrity sha512-5UamI7xkUcJ3i9qVDS+KFDEK8/7oJ55/sJMB1Ge7IEapr7KfdfV/HErR+koZwOfd+SgtFKOKRhRakdg++DcJpQ==
"@babel/core@^7.1.0", "@babel/core@^7.12.3", "@babel/core@^7.18.10", "@babel/core@^7.7.2", "@babel/core@^7.8.0":
- version "7.22.9"
- resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.22.9.tgz#bd96492c68822198f33e8a256061da3cf391f58f"
- integrity sha512-G2EgeufBcYw27U4hhoIwFcgc1XU7TlXJ3mv04oOv1WCuo900U/anZSPzEqNjwdjgffkk2Gs0AN0dW1CKVLcG7w==
+ version "7.22.10"
+ resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.22.10.tgz#aad442c7bcd1582252cb4576747ace35bc122f35"
+ integrity sha512-fTmqbbUBAwCcre6zPzNngvsI0aNrPZe77AeqvDxWM9Nm+04RrJ3CAmGHA9f7lJQY6ZMhRztNemy4uslDxTX4Qw==
dependencies:
"@ampproject/remapping" "^2.2.0"
- "@babel/code-frame" "^7.22.5"
- "@babel/generator" "^7.22.9"
- "@babel/helper-compilation-targets" "^7.22.9"
+ "@babel/code-frame" "^7.22.10"
+ "@babel/generator" "^7.22.10"
+ "@babel/helper-compilation-targets" "^7.22.10"
"@babel/helper-module-transforms" "^7.22.9"
- "@babel/helpers" "^7.22.6"
- "@babel/parser" "^7.22.7"
+ "@babel/helpers" "^7.22.10"
+ "@babel/parser" "^7.22.10"
"@babel/template" "^7.22.5"
- "@babel/traverse" "^7.22.8"
- "@babel/types" "^7.22.5"
+ "@babel/traverse" "^7.22.10"
+ "@babel/types" "^7.22.10"
convert-source-map "^1.7.0"
debug "^4.1.0"
gensync "^1.0.0-beta.2"
json5 "^2.2.2"
semver "^6.3.1"
-"@babel/generator@^7.22.7", "@babel/generator@^7.22.9", "@babel/generator@^7.7.2":
- version "7.22.9"
- resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.22.9.tgz#572ecfa7a31002fa1de2a9d91621fd895da8493d"
- integrity sha512-KtLMbmicyuK2Ak/FTCJVbDnkN1SlT8/kceFTiuDiiRUUSMnHMidxSCdG4ndkTOHHpoomWe/4xkvHkEOncwjYIw==
+"@babel/generator@^7.22.10", "@babel/generator@^7.7.2":
+ version "7.22.10"
+ resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.22.10.tgz#c92254361f398e160645ac58831069707382b722"
+ integrity sha512-79KIf7YiWjjdZ81JnLujDRApWtl7BxTqWD88+FFdQEIOG8LJ0etDOM7CXuIgGJa55sGOwZVwuEsaLEm0PJ5/+A==
dependencies:
- "@babel/types" "^7.22.5"
+ "@babel/types" "^7.22.10"
"@jridgewell/gen-mapping" "^0.3.2"
"@jridgewell/trace-mapping" "^0.3.17"
jsesc "^2.5.1"
@@ -73,16 +74,16 @@
"@babel/types" "^7.22.5"
"@babel/helper-builder-binary-assignment-operator-visitor@^7.22.5":
- version "7.22.5"
- resolved "https://registry.yarnpkg.com/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.22.5.tgz#a3f4758efdd0190d8927fcffd261755937c71878"
- integrity sha512-m1EP3lVOPptR+2DwD125gziZNcmoNSHGmJROKoy87loWUQyJaVXDgpmruWqDARZSmtYQ+Dl25okU8+qhVzuykw==
+ version "7.22.10"
+ resolved "https://registry.yarnpkg.com/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.22.10.tgz#573e735937e99ea75ea30788b57eb52fab7468c9"
+ integrity sha512-Av0qubwDQxC56DoUReVDeLfMEjYYSN1nZrTUrWkXd7hpU73ymRANkbuDm3yni9npkn+RXy9nNbEJZEzXr7xrfQ==
dependencies:
- "@babel/types" "^7.22.5"
+ "@babel/types" "^7.22.10"
-"@babel/helper-compilation-targets@^7.22.5", "@babel/helper-compilation-targets@^7.22.6", "@babel/helper-compilation-targets@^7.22.9":
- version "7.22.9"
- resolved "https://registry.yarnpkg.com/@babel/helper-compilation-targets/-/helper-compilation-targets-7.22.9.tgz#f9d0a7aaaa7cd32a3f31c9316a69f5a9bcacb892"
- integrity sha512-7qYrNM6HjpnPHJbopxmb8hSPoZ0gsX8IvUS32JGVoy+pU9e5N0nLr1VjJoR6kA4d9dmGLxNYOjeB8sUDal2WMw==
+"@babel/helper-compilation-targets@^7.22.10", "@babel/helper-compilation-targets@^7.22.5", "@babel/helper-compilation-targets@^7.22.6":
+ version "7.22.10"
+ resolved "https://registry.yarnpkg.com/@babel/helper-compilation-targets/-/helper-compilation-targets-7.22.10.tgz#01d648bbc25dd88f513d862ee0df27b7d4e67024"
+ integrity sha512-JMSwHD4J7SLod0idLq5PKgI+6g/hLD/iuWBq08ZX49xE14VpVEojJ5rHWptpirV2j020MvypRLAXAO50igCJ5Q==
dependencies:
"@babel/compat-data" "^7.22.9"
"@babel/helper-validator-option" "^7.22.5"
@@ -91,9 +92,9 @@
semver "^6.3.1"
"@babel/helper-create-class-features-plugin@^7.22.5":
- version "7.22.9"
- resolved "https://registry.yarnpkg.com/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.22.9.tgz#c36ea240bb3348f942f08b0fbe28d6d979fab236"
- integrity sha512-Pwyi89uO4YrGKxL/eNJ8lfEH55DnRloGPOseaA8NFNL6jAUnn+KccaISiFazCj5IolPPDjGSdzQzXVzODVRqUQ==
+ version "7.22.10"
+ resolved "https://registry.yarnpkg.com/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.22.10.tgz#dd2612d59eac45588021ac3d6fa976d08f4e95a3"
+ integrity sha512-5IBb77txKYQPpOEdUdIhBx8VrZyDCQ+H82H0+5dX1TmuscP5vJKEE3cKurjtIw/vFwzbVH48VweE78kVDBrqjA==
dependencies:
"@babel/helper-annotate-as-pure" "^7.22.5"
"@babel/helper-environment-visitor" "^7.22.5"
@@ -182,7 +183,7 @@
resolved "https://registry.yarnpkg.com/@babel/helper-plugin-utils/-/helper-plugin-utils-7.22.5.tgz#dd7ee3735e8a313b9f7b05a773d892e88e6d7295"
integrity sha512-uLls06UVKgFG9QD4OeFYLEGteMIAa5kpTPcFL28yuCIIzsf6ZyKZMllKVOCZFhiZ5ptnwX4mtKdWCBE/uT4amg==
-"@babel/helper-remap-async-to-generator@^7.22.5":
+"@babel/helper-remap-async-to-generator@^7.22.5", "@babel/helper-remap-async-to-generator@^7.22.9":
version "7.22.9"
resolved "https://registry.yarnpkg.com/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.22.9.tgz#53a25b7484e722d7efb9c350c75c032d4628de82"
integrity sha512-8WWC4oR4Px+tr+Fp0X3RHDVfINGpF3ad1HIbrc8A77epiR6eMMc6jsgozkzT2uDiOOdoS9cLIQ+XD2XvI2WSmQ==
@@ -237,36 +238,36 @@
integrity sha512-R3oB6xlIVKUnxNUxbmgq7pKjxpru24zlimpE8WK47fACIlM0II/Hm1RS8IaOI7NgCr6LNS+jl5l75m20npAziw==
"@babel/helper-wrap-function@^7.22.9":
- version "7.22.9"
- resolved "https://registry.yarnpkg.com/@babel/helper-wrap-function/-/helper-wrap-function-7.22.9.tgz#189937248c45b0182c1dcf32f3444ca153944cb9"
- integrity sha512-sZ+QzfauuUEfxSEjKFmi3qDSHgLsTPK/pEpoD/qonZKOtTPTLbf59oabPQ4rKekt9lFcj/hTZaOhWwFYrgjk+Q==
+ version "7.22.10"
+ resolved "https://registry.yarnpkg.com/@babel/helper-wrap-function/-/helper-wrap-function-7.22.10.tgz#d845e043880ed0b8c18bd194a12005cb16d2f614"
+ integrity sha512-OnMhjWjuGYtdoO3FmsEFWvBStBAe2QOgwOLsLNDjN+aaiMD8InJk1/O3HSD8lkqTjCgg5YI34Tz15KNNA3p+nQ==
dependencies:
"@babel/helper-function-name" "^7.22.5"
"@babel/template" "^7.22.5"
- "@babel/types" "^7.22.5"
+ "@babel/types" "^7.22.10"
-"@babel/helpers@^7.22.6":
- version "7.22.6"
- resolved "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.22.6.tgz#8e61d3395a4f0c5a8060f309fb008200969b5ecd"
- integrity sha512-YjDs6y/fVOYFV8hAf1rxd1QvR9wJe1pDBZ2AREKq/SDayfPzgk0PBnVuTCE5X1acEpMMNOVUqoe+OwiZGJ+OaA==
+"@babel/helpers@^7.22.10":
+ version "7.22.10"
+ resolved "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.22.10.tgz#ae6005c539dfbcb5cd71fb51bfc8a52ba63bc37a"
+ integrity sha512-a41J4NW8HyZa1I1vAndrraTlPZ/eZoga2ZgS7fEr0tZJGVU4xqdE80CEm0CcNjha5EZ8fTBYLKHF0kqDUuAwQw==
dependencies:
"@babel/template" "^7.22.5"
- "@babel/traverse" "^7.22.6"
- "@babel/types" "^7.22.5"
+ "@babel/traverse" "^7.22.10"
+ "@babel/types" "^7.22.10"
-"@babel/highlight@^7.10.4", "@babel/highlight@^7.22.5":
- version "7.22.5"
- resolved "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.22.5.tgz#aa6c05c5407a67ebce408162b7ede789b4d22031"
- integrity sha512-BSKlD1hgnedS5XRnGOljZawtag7H1yPfQp0tdNJCHoH6AZ+Pcm9VvkrK59/Yy593Ypg0zMxH2BxD1VPYUQ7UIw==
+"@babel/highlight@^7.10.4", "@babel/highlight@^7.22.10":
+ version "7.22.10"
+ resolved "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.22.10.tgz#02a3f6d8c1cb4521b2fd0ab0da8f4739936137d7"
+ integrity sha512-78aUtVcT7MUscr0K5mIEnkwxPE0MaxkR5RxRwuHaQ+JuU5AmTPhY+do2mdzVTnIJJpyBglql2pehuBIWHug+WQ==
dependencies:
"@babel/helper-validator-identifier" "^7.22.5"
- chalk "^2.0.0"
+ chalk "^2.4.2"
js-tokens "^4.0.0"
-"@babel/parser@^7.1.0", "@babel/parser@^7.14.7", "@babel/parser@^7.20.7", "@babel/parser@^7.22.5", "@babel/parser@^7.22.7":
- version "7.22.7"
- resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.22.7.tgz#df8cf085ce92ddbdbf668a7f186ce848c9036cae"
- integrity sha512-7NF8pOkHP5o2vpmGgNGcfAeCvOYhGLyA3Z4eBQkT1RJlWu47n63bCs93QfJ2hIAFCil7L5P2IWhs1oToVgrL0Q==
+"@babel/parser@^7.1.0", "@babel/parser@^7.14.7", "@babel/parser@^7.20.7", "@babel/parser@^7.22.10", "@babel/parser@^7.22.5":
+ version "7.22.10"
+ resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.22.10.tgz#e37634f9a12a1716136c44624ef54283cabd3f55"
+ integrity sha512-lNbdGsQb9ekfsnjFGhEiF4hfFqGgfOP3H3d27re3n+CGhNuTSUEQdfWk556sTLNTloczcdM5TYF2LhzmDQKyvQ==
"@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@^7.22.5":
version "7.22.5"
@@ -289,14 +290,6 @@
resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-private-property-in-object/-/plugin-proposal-private-property-in-object-7.21.0-placeholder-for-preset-env.2.tgz#7844f9289546efa9febac2de4cfe358a050bd703"
integrity sha512-SOSkfJDddaM7mak6cPEpswyTRnuRltl429hMraQEglW+OkovnCzsiszTmsrlY//qLFjCpQDFRvjdm2wA5pPm9w==
-"@babel/plugin-proposal-unicode-property-regex@^7.4.4":
- version "7.18.6"
- resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-unicode-property-regex/-/plugin-proposal-unicode-property-regex-7.18.6.tgz#af613d2cd5e643643b65cded64207b15c85cb78e"
- integrity sha512-2BShG/d5yoZyXZfVePH91urL5wTG6ASZU9M4o03lKK8u8UW1y08OMttBSOADTcJrnPMpvDXRG3G8fyLh4ovs8w==
- dependencies:
- "@babel/helper-create-regexp-features-plugin" "^7.18.6"
- "@babel/helper-plugin-utils" "^7.18.6"
-
"@babel/plugin-syntax-async-generators@^7.8.4":
version "7.8.4"
resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-7.8.4.tgz#a983fb1aeb2ec3f6ed042a210f640e90e786fe0d"
@@ -445,14 +438,14 @@
dependencies:
"@babel/helper-plugin-utils" "^7.22.5"
-"@babel/plugin-transform-async-generator-functions@^7.22.7":
- version "7.22.7"
- resolved "https://registry.yarnpkg.com/@babel/plugin-transform-async-generator-functions/-/plugin-transform-async-generator-functions-7.22.7.tgz#053e76c0a903b72b573cb1ab7d6882174d460a1b"
- integrity sha512-7HmE7pk/Fmke45TODvxvkxRMV9RazV+ZZzhOL9AG8G29TLrr3jkjwF7uJfxZ30EoXpO+LJkq4oA8NjO2DTnEDg==
+"@babel/plugin-transform-async-generator-functions@^7.22.10":
+ version "7.22.10"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-transform-async-generator-functions/-/plugin-transform-async-generator-functions-7.22.10.tgz#45946cd17f915b10e65c29b8ed18a0a50fc648c8"
+ integrity sha512-eueE8lvKVzq5wIObKK/7dvoeKJ+xc6TvRn6aysIjS6pSCeLy7S/eVi7pEQknZqyqvzaNKdDtem8nUNTBgDVR2g==
dependencies:
"@babel/helper-environment-visitor" "^7.22.5"
"@babel/helper-plugin-utils" "^7.22.5"
- "@babel/helper-remap-async-to-generator" "^7.22.5"
+ "@babel/helper-remap-async-to-generator" "^7.22.9"
"@babel/plugin-syntax-async-generators" "^7.8.4"
"@babel/plugin-transform-async-to-generator@^7.22.5":
@@ -471,10 +464,10 @@
dependencies:
"@babel/helper-plugin-utils" "^7.22.5"
-"@babel/plugin-transform-block-scoping@^7.22.5":
- version "7.22.5"
- resolved "https://registry.yarnpkg.com/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.22.5.tgz#8bfc793b3a4b2742c0983fadc1480d843ecea31b"
- integrity sha512-EcACl1i5fSQ6bt+YGuU/XGCeZKStLmyVGytWkpyhCLeQVA0eu6Wtiw92V+I1T/hnezUv7j74dA/Ro69gWcU+hg==
+"@babel/plugin-transform-block-scoping@^7.22.10":
+ version "7.22.10"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.22.10.tgz#88a1dccc3383899eb5e660534a76a22ecee64faa"
+ integrity sha512-1+kVpGAOOI1Albt6Vse7c8pHzcZQdQKW+wJH+g8mCaszOdDVwRXa/slHPqIw+oJAJANTKDMuM2cBdV0Dg618Vg==
dependencies:
"@babel/helper-plugin-utils" "^7.22.5"
@@ -518,14 +511,14 @@
"@babel/helper-plugin-utils" "^7.22.5"
"@babel/template" "^7.22.5"
-"@babel/plugin-transform-destructuring@^7.22.5":
- version "7.22.5"
- resolved "https://registry.yarnpkg.com/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.22.5.tgz#d3aca7438f6c26c78cdd0b0ba920a336001b27cc"
- integrity sha512-GfqcFuGW8vnEqTUBM7UtPd5A4q797LTvvwKxXTgRsFjoqaJiEg9deBG6kWeQYkVEL569NpnmpC0Pkr/8BLKGnQ==
+"@babel/plugin-transform-destructuring@^7.22.10":
+ version "7.22.10"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.22.10.tgz#38e2273814a58c810b6c34ea293be4973c4eb5e2"
+ integrity sha512-dPJrL0VOyxqLM9sritNbMSGx/teueHF/htMKrPT7DNxccXxRDPYqlgPFFdr8u+F+qUZOkZoXue/6rL5O5GduEw==
dependencies:
"@babel/helper-plugin-utils" "^7.22.5"
-"@babel/plugin-transform-dotall-regex@^7.22.5", "@babel/plugin-transform-dotall-regex@^7.4.4":
+"@babel/plugin-transform-dotall-regex@^7.22.5":
version "7.22.5"
resolved "https://registry.yarnpkg.com/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.22.5.tgz#dbb4f0e45766eb544e193fb00e65a1dd3b2a4165"
integrity sha512-5/Yk9QxCQCl+sOIB1WelKnVRxTJDSAIxtJLL2/pqL14ZVlbH0fUQUZa/T5/UnQtBNgghR7mfB8ERBKyKPCi7Vw==
@@ -703,10 +696,10 @@
"@babel/helper-plugin-utils" "^7.22.5"
"@babel/plugin-syntax-optional-catch-binding" "^7.8.3"
-"@babel/plugin-transform-optional-chaining@^7.22.5", "@babel/plugin-transform-optional-chaining@^7.22.6":
- version "7.22.6"
- resolved "https://registry.yarnpkg.com/@babel/plugin-transform-optional-chaining/-/plugin-transform-optional-chaining-7.22.6.tgz#4bacfe37001fe1901117672875e931d439811564"
- integrity sha512-Vd5HiWml0mDVtcLHIoEU5sw6HOUW/Zk0acLs/SAeuLzkGNOPc9DB4nkUajemhCmTIz3eiaKREZn2hQQqF79YTg==
+"@babel/plugin-transform-optional-chaining@^7.22.10", "@babel/plugin-transform-optional-chaining@^7.22.5":
+ version "7.22.10"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-transform-optional-chaining/-/plugin-transform-optional-chaining-7.22.10.tgz#076d28a7e074392e840d4ae587d83445bac0372a"
+ integrity sha512-MMkQqZAZ+MGj+jGTG3OTuhKeBpNcO+0oCEbrGNEaOmiEn+1MzRyQlYsruGiU8RTK3zV6XwrVJTmwiDOyYK6J9g==
dependencies:
"@babel/helper-plugin-utils" "^7.22.5"
"@babel/helper-skip-transparent-expression-wrappers" "^7.22.5"
@@ -744,13 +737,13 @@
dependencies:
"@babel/helper-plugin-utils" "^7.22.5"
-"@babel/plugin-transform-regenerator@^7.22.5":
- version "7.22.5"
- resolved "https://registry.yarnpkg.com/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.22.5.tgz#cd8a68b228a5f75fa01420e8cc2fc400f0fc32aa"
- integrity sha512-rR7KePOE7gfEtNTh9Qw+iO3Q/e4DEsoQ+hdvM6QUDH7JRJ5qxq5AA52ZzBWbI5i9lfNuvySgOGP8ZN7LAmaiPw==
+"@babel/plugin-transform-regenerator@^7.22.10":
+ version "7.22.10"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.22.10.tgz#8ceef3bd7375c4db7652878b0241b2be5d0c3cca"
+ integrity sha512-F28b1mDt8KcT5bUyJc/U9nwzw6cV+UmTeRlXYIl2TNqMMJif0Jeey9/RQ3C4NOd2zp0/TRsDns9ttj2L523rsw==
dependencies:
"@babel/helper-plugin-utils" "^7.22.5"
- regenerator-transform "^0.15.1"
+ regenerator-transform "^0.15.2"
"@babel/plugin-transform-reserved-words@^7.22.5":
version "7.22.5"
@@ -795,10 +788,10 @@
dependencies:
"@babel/helper-plugin-utils" "^7.22.5"
-"@babel/plugin-transform-unicode-escapes@^7.22.5":
- version "7.22.5"
- resolved "https://registry.yarnpkg.com/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.22.5.tgz#ce0c248522b1cb22c7c992d88301a5ead70e806c"
- integrity sha512-biEmVg1IYB/raUO5wT1tgfacCef15Fbzhkx493D3urBI++6hpJ+RFG4SrWMn0NEZLfvilqKf3QDrRVZHo08FYg==
+"@babel/plugin-transform-unicode-escapes@^7.22.10":
+ version "7.22.10"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.22.10.tgz#c723f380f40a2b2f57a62df24c9005834c8616d9"
+ integrity sha512-lRfaRKGZCBqDlRU3UIFovdp9c9mEvlylmpod0/OatICsSfuQ9YFthRo1tpTkGsklEefZdqlEFdY4A2dwTb6ohg==
dependencies:
"@babel/helper-plugin-utils" "^7.22.5"
@@ -827,12 +820,12 @@
"@babel/helper-plugin-utils" "^7.22.5"
"@babel/preset-env@^7.15.6":
- version "7.22.9"
- resolved "https://registry.yarnpkg.com/@babel/preset-env/-/preset-env-7.22.9.tgz#57f17108eb5dfd4c5c25a44c1977eba1df310ac7"
- integrity sha512-wNi5H/Emkhll/bqPjsjQorSykrlfY5OWakd6AulLvMEytpKasMVUpVy8RL4qBIBs5Ac6/5i0/Rv0b/Fg6Eag/g==
+ version "7.22.10"
+ resolved "https://registry.yarnpkg.com/@babel/preset-env/-/preset-env-7.22.10.tgz#3263b9fe2c8823d191d28e61eac60a79f9ce8a0f"
+ integrity sha512-riHpLb1drNkpLlocmSyEg4oYJIQFeXAK/d7rI6mbD0XsvoTOOweXDmQPG/ErxsEhWk3rl3Q/3F6RFQlVFS8m0A==
dependencies:
"@babel/compat-data" "^7.22.9"
- "@babel/helper-compilation-targets" "^7.22.9"
+ "@babel/helper-compilation-targets" "^7.22.10"
"@babel/helper-plugin-utils" "^7.22.5"
"@babel/helper-validator-option" "^7.22.5"
"@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression" "^7.22.5"
@@ -857,15 +850,15 @@
"@babel/plugin-syntax-top-level-await" "^7.14.5"
"@babel/plugin-syntax-unicode-sets-regex" "^7.18.6"
"@babel/plugin-transform-arrow-functions" "^7.22.5"
- "@babel/plugin-transform-async-generator-functions" "^7.22.7"
+ "@babel/plugin-transform-async-generator-functions" "^7.22.10"
"@babel/plugin-transform-async-to-generator" "^7.22.5"
"@babel/plugin-transform-block-scoped-functions" "^7.22.5"
- "@babel/plugin-transform-block-scoping" "^7.22.5"
+ "@babel/plugin-transform-block-scoping" "^7.22.10"
"@babel/plugin-transform-class-properties" "^7.22.5"
"@babel/plugin-transform-class-static-block" "^7.22.5"
"@babel/plugin-transform-classes" "^7.22.6"
"@babel/plugin-transform-computed-properties" "^7.22.5"
- "@babel/plugin-transform-destructuring" "^7.22.5"
+ "@babel/plugin-transform-destructuring" "^7.22.10"
"@babel/plugin-transform-dotall-regex" "^7.22.5"
"@babel/plugin-transform-duplicate-keys" "^7.22.5"
"@babel/plugin-transform-dynamic-import" "^7.22.5"
@@ -888,38 +881,36 @@
"@babel/plugin-transform-object-rest-spread" "^7.22.5"
"@babel/plugin-transform-object-super" "^7.22.5"
"@babel/plugin-transform-optional-catch-binding" "^7.22.5"
- "@babel/plugin-transform-optional-chaining" "^7.22.6"
+ "@babel/plugin-transform-optional-chaining" "^7.22.10"
"@babel/plugin-transform-parameters" "^7.22.5"
"@babel/plugin-transform-private-methods" "^7.22.5"
"@babel/plugin-transform-private-property-in-object" "^7.22.5"
"@babel/plugin-transform-property-literals" "^7.22.5"
- "@babel/plugin-transform-regenerator" "^7.22.5"
+ "@babel/plugin-transform-regenerator" "^7.22.10"
"@babel/plugin-transform-reserved-words" "^7.22.5"
"@babel/plugin-transform-shorthand-properties" "^7.22.5"
"@babel/plugin-transform-spread" "^7.22.5"
"@babel/plugin-transform-sticky-regex" "^7.22.5"
"@babel/plugin-transform-template-literals" "^7.22.5"
"@babel/plugin-transform-typeof-symbol" "^7.22.5"
- "@babel/plugin-transform-unicode-escapes" "^7.22.5"
+ "@babel/plugin-transform-unicode-escapes" "^7.22.10"
"@babel/plugin-transform-unicode-property-regex" "^7.22.5"
"@babel/plugin-transform-unicode-regex" "^7.22.5"
"@babel/plugin-transform-unicode-sets-regex" "^7.22.5"
- "@babel/preset-modules" "^0.1.5"
- "@babel/types" "^7.22.5"
- babel-plugin-polyfill-corejs2 "^0.4.4"
- babel-plugin-polyfill-corejs3 "^0.8.2"
- babel-plugin-polyfill-regenerator "^0.5.1"
+ "@babel/preset-modules" "0.1.6-no-external-plugins"
+ "@babel/types" "^7.22.10"
+ babel-plugin-polyfill-corejs2 "^0.4.5"
+ babel-plugin-polyfill-corejs3 "^0.8.3"
+ babel-plugin-polyfill-regenerator "^0.5.2"
core-js-compat "^3.31.0"
semver "^6.3.1"
-"@babel/preset-modules@^0.1.5":
- version "0.1.6"
- resolved "https://registry.yarnpkg.com/@babel/preset-modules/-/preset-modules-0.1.6.tgz#31bcdd8f19538437339d17af00d177d854d9d458"
- integrity sha512-ID2yj6K/4lKfhuU3+EX4UvNbIt7eACFbHmNUjzA+ep+B5971CknnA/9DEWKbRokfbbtblxxxXFJJrH47UEAMVg==
+"@babel/preset-modules@0.1.6-no-external-plugins":
+ version "0.1.6-no-external-plugins"
+ resolved "https://registry.yarnpkg.com/@babel/preset-modules/-/preset-modules-0.1.6-no-external-plugins.tgz#ccb88a2c49c817236861fee7826080573b8a923a"
+ integrity sha512-HrcgcIESLm9aIR842yhJ5RWan/gebQUJ6E/E5+rf0y9o6oj7w0Br+sWuL6kEQ/o/AdfvR1Je9jG18/gnpwjEyA==
dependencies:
"@babel/helper-plugin-utils" "^7.0.0"
- "@babel/plugin-proposal-unicode-property-regex" "^7.4.4"
- "@babel/plugin-transform-dotall-regex" "^7.4.4"
"@babel/types" "^7.4.4"
esutils "^2.0.2"
@@ -929,11 +920,11 @@
integrity sha512-x/rqGMdzj+fWZvCOYForTghzbtqPDZ5gPwaoNGHdgDfF2QA/XZbCBp4Moo5scrkAMPhB7z26XM/AaHuIJdgauA==
"@babel/runtime@^7.8.4":
- version "7.22.6"
- resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.22.6.tgz#57d64b9ae3cff1d67eb067ae117dac087f5bd438"
- integrity sha512-wDb5pWm4WDdF6LFUde3Jl8WzPA+3ZbxYqkC6xAXuD3irdEHN1k0NfTRrJD8ZD378SJ61miMLCqIOXYhd8x+AJQ==
+ version "7.22.10"
+ resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.22.10.tgz#ae3e9631fd947cb7e3610d3e9d8fef5f76696682"
+ integrity sha512-21t/fkKLMZI4pqP2wlmsQAWnYW1PDyKyyUV4vCi+B25ydmdaYTKXPwCj0BzSUnZf4seIiYvSA3jcZ3gdsMFkLQ==
dependencies:
- regenerator-runtime "^0.13.11"
+ regenerator-runtime "^0.14.0"
"@babel/template@^7.22.5", "@babel/template@^7.3.3":
version "7.22.5"
@@ -944,26 +935,26 @@
"@babel/parser" "^7.22.5"
"@babel/types" "^7.22.5"
-"@babel/traverse@^7.22.6", "@babel/traverse@^7.22.8", "@babel/traverse@^7.7.2":
- version "7.22.8"
- resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.22.8.tgz#4d4451d31bc34efeae01eac222b514a77aa4000e"
- integrity sha512-y6LPR+wpM2I3qJrsheCTwhIinzkETbplIgPBbwvqPKc+uljeA5gP+3nP8irdYt1mjQaDnlIcG+dw8OjAco4GXw==
+"@babel/traverse@^7.22.10", "@babel/traverse@^7.7.2":
+ version "7.22.10"
+ resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.22.10.tgz#20252acb240e746d27c2e82b4484f199cf8141aa"
+ integrity sha512-Q/urqV4pRByiNNpb/f5OSv28ZlGJiFiiTh+GAHktbIrkPhPbl90+uW6SmpoLyZqutrg9AEaEf3Q/ZBRHBXgxig==
dependencies:
- "@babel/code-frame" "^7.22.5"
- "@babel/generator" "^7.22.7"
+ "@babel/code-frame" "^7.22.10"
+ "@babel/generator" "^7.22.10"
"@babel/helper-environment-visitor" "^7.22.5"
"@babel/helper-function-name" "^7.22.5"
"@babel/helper-hoist-variables" "^7.22.5"
"@babel/helper-split-export-declaration" "^7.22.6"
- "@babel/parser" "^7.22.7"
- "@babel/types" "^7.22.5"
+ "@babel/parser" "^7.22.10"
+ "@babel/types" "^7.22.10"
debug "^4.1.0"
globals "^11.1.0"
-"@babel/types@^7.0.0", "@babel/types@^7.20.7", "@babel/types@^7.22.5", "@babel/types@^7.3.3", "@babel/types@^7.4.4":
- version "7.22.5"
- resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.22.5.tgz#cd93eeaab025880a3a47ec881f4b096a5b786fbe"
- integrity sha512-zo3MIHGOkPOfoRXitsgHLjEXmlDaD/5KU1Uzuc9GNiZPhSqVxVRtxuPaSBZDsYZ9qV88AjtMtWW7ww98loJ9KA==
+"@babel/types@^7.0.0", "@babel/types@^7.20.7", "@babel/types@^7.22.10", "@babel/types@^7.22.5", "@babel/types@^7.3.3", "@babel/types@^7.4.4":
+ version "7.22.10"
+ resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.22.10.tgz#4a9e76446048f2c66982d1a989dd12b8a2d2dc03"
+ integrity sha512-obaoigiLrlDZ7TUQln/8m4mSqIW2QFeOrCQc9r+xsaHGNoplVNYlRVpsfE8Vj35GEm2ZH4ZhrNYogs/3fj85kg==
dependencies:
"@babel/helper-string-parser" "^7.22.5"
"@babel/helper-validator-identifier" "^7.22.5"
@@ -988,15 +979,15 @@
integrity sha512-LIgYXuCSO5Gvtc0t9bebAMSwd68ewzmqLypqI2Kke1rqOqqDbMpYcYfoPfFlv9eyLIh4jocHWwCK5FS7z9icUA==
"@commitlint/load@>6.1.1":
- version "17.6.7"
- resolved "https://registry.yarnpkg.com/@commitlint/load/-/load-17.6.7.tgz#c63b18ca8942a8fc095ec7a7ff7aa52f3854f6ba"
- integrity sha512-QZ2rJTbX55BQdYrCm/p6+hh/pFBgC9nTJxfsrK6xRPe2thiQzHN0AQDBqBwAirn6gIkHrjIbCbtAE6kiDYLjrw==
+ version "17.7.1"
+ resolved "https://registry.yarnpkg.com/@commitlint/load/-/load-17.7.1.tgz#0723b11723a20043a304a74960602dead89b5cdd"
+ integrity sha512-S/QSOjE1ztdogYj61p6n3UbkUvweR17FQ0zDbNtoTLc+Hz7vvfS7ehoTMQ27hPSjVBpp7SzEcOQu081RLjKHJQ==
dependencies:
"@commitlint/config-validator" "^17.6.7"
"@commitlint/execute-rule" "^17.4.0"
"@commitlint/resolve-extends" "^17.6.7"
"@commitlint/types" "^17.4.4"
- "@types/node" "*"
+ "@types/node" "20.4.7"
chalk "^4.1.0"
cosmiconfig "^8.0.0"
cosmiconfig-typescript-loader "^4.0.0"
@@ -1626,12 +1617,7 @@
"@jridgewell/sourcemap-codec" "^1.4.10"
"@jridgewell/trace-mapping" "^0.3.9"
-"@jridgewell/resolve-uri@3.1.0":
- version "3.1.0"
- resolved "https://registry.yarnpkg.com/@jridgewell/resolve-uri/-/resolve-uri-3.1.0.tgz#2203b118c157721addfe69d47b70465463066d78"
- integrity sha512-F2msla3tad+Mfht5cJq7LSXcdudKTWCVYUgw6pLFOOHSTtZlj6SWNYAp+AhuqLmWdBO2X5hPrLcu8cVP8fy28w==
-
-"@jridgewell/resolve-uri@^3.0.3":
+"@jridgewell/resolve-uri@^3.0.3", "@jridgewell/resolve-uri@^3.1.0":
version "3.1.1"
resolved "https://registry.yarnpkg.com/@jridgewell/resolve-uri/-/resolve-uri-3.1.1.tgz#c08679063f279615a3326583ba3a90d1d82cc721"
integrity sha512-dSYZh7HhCDtCKm4QakX0xFpsRDqjjtZf/kjI/v3T3Nwt5r8/qz/M19F9ySyOqU94SXBmeG9ttTul+YnR4LOxFA==
@@ -1641,12 +1627,7 @@
resolved "https://registry.yarnpkg.com/@jridgewell/set-array/-/set-array-1.1.2.tgz#7c6cf998d6d20b914c0a55a91ae928ff25965e72"
integrity sha512-xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw==
-"@jridgewell/sourcemap-codec@1.4.14":
- version "1.4.14"
- resolved "https://registry.yarnpkg.com/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.14.tgz#add4c98d341472a289190b424efbdb096991bb24"
- integrity sha512-XPSJHWmi394fuUuzDnGz1wiKqWfo1yXecHQMRf2l6hztTO+nPru658AyDngaBe7isIxEkRsPR3FZh+s7iVa4Uw==
-
-"@jridgewell/sourcemap-codec@^1.4.10":
+"@jridgewell/sourcemap-codec@^1.4.10", "@jridgewell/sourcemap-codec@^1.4.14":
version "1.4.15"
resolved "https://registry.yarnpkg.com/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.15.tgz#d7c6e6755c78567a951e04ab52ef0fd26de59f32"
integrity sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==
@@ -1660,12 +1641,12 @@
"@jridgewell/sourcemap-codec" "^1.4.10"
"@jridgewell/trace-mapping@^0.3.17", "@jridgewell/trace-mapping@^0.3.9":
- version "0.3.18"
- resolved "https://registry.yarnpkg.com/@jridgewell/trace-mapping/-/trace-mapping-0.3.18.tgz#25783b2086daf6ff1dcb53c9249ae480e4dd4cd6"
- integrity sha512-w+niJYzMHdd7USdiH2U6869nqhD2nbfZXND5Yp93qIbEmnDNk7PD48o+YchRVpzMU7M6jVCbenTR7PA1FLQ9pA==
+ version "0.3.19"
+ resolved "https://registry.yarnpkg.com/@jridgewell/trace-mapping/-/trace-mapping-0.3.19.tgz#f8a3249862f91be48d3127c3cfe992f79b4b8811"
+ integrity sha512-kf37QtfW+Hwx/buWGMPcR60iF9ziHa6r/CZJIHbmcm4+0qrXiVdxegAH0F6yddEVQ7zdkjcGCgCzUu+BcbhQxw==
dependencies:
- "@jridgewell/resolve-uri" "3.1.0"
- "@jridgewell/sourcemap-codec" "1.4.14"
+ "@jridgewell/resolve-uri" "^3.1.0"
+ "@jridgewell/sourcemap-codec" "^1.4.14"
"@nodelib/fs.scandir@2.1.5":
version "2.1.5"
@@ -1863,9 +1844,14 @@
integrity sha512-jhuKLIRrhvCPLqwPcx6INqmKeiA5EWrsCOPhrlFSrbrmU4ZMPjj5Ul/oLCMDO98XRUIwVm78xICz4EPCektzeQ==
"@types/node@*":
- version "20.4.5"
- resolved "https://registry.yarnpkg.com/@types/node/-/node-20.4.5.tgz#9dc0a5cb1ccce4f7a731660935ab70b9c00a5d69"
- integrity sha512-rt40Nk13II9JwQBdeYqmbn2Q6IVTA5uPhvSO+JVqdXw/6/4glI6oR9ezty/A9Hg5u7JH4OmYmuQ+XvjKm0Datg==
+ version "20.5.3"
+ resolved "https://registry.yarnpkg.com/@types/node/-/node-20.5.3.tgz#fa52c147f405d56b2f1dd8780d840aa87ddff629"
+ integrity sha512-ITI7rbWczR8a/S6qjAW7DMqxqFMjjTo61qZVWJ1ubPvbIQsL5D/TvwjYEalM8Kthpe3hTzOGrF2TGbAu2uyqeA==
+
+"@types/node@20.4.7":
+ version "20.4.7"
+ resolved "https://registry.yarnpkg.com/@types/node/-/node-20.4.7.tgz#74d323a93f1391a63477b27b9aec56669c98b2ab"
+ integrity sha512-bUBrPjEry2QUTsnuEjzjbS7voGWCc30W0qzgMf90GPeDGFRakvrz47ju+oqDAKCXLUCe39u57/ORMl/O/04/9g==
"@types/normalize-package-data@^2.4.0":
version "2.4.1"
@@ -2293,7 +2279,7 @@ babel-plugin-jest-hoist@^27.5.1:
"@types/babel__core" "^7.0.0"
"@types/babel__traverse" "^7.0.6"
-babel-plugin-polyfill-corejs2@^0.4.4:
+babel-plugin-polyfill-corejs2@^0.4.5:
version "0.4.5"
resolved "https://registry.yarnpkg.com/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.4.5.tgz#8097b4cb4af5b64a1d11332b6fb72ef5e64a054c"
integrity sha512-19hwUH5FKl49JEsvyTcoHakh6BE0wgXLLptIyKZ3PijHc/Ci521wygORCUCCred+E/twuqRyAkE02BAWPmsHOg==
@@ -2302,7 +2288,7 @@ babel-plugin-polyfill-corejs2@^0.4.4:
"@babel/helper-define-polyfill-provider" "^0.4.2"
semver "^6.3.1"
-babel-plugin-polyfill-corejs3@^0.8.2:
+babel-plugin-polyfill-corejs3@^0.8.3:
version "0.8.3"
resolved "https://registry.yarnpkg.com/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.8.3.tgz#b4f719d0ad9bb8e0c23e3e630c0c8ec6dd7a1c52"
integrity sha512-z41XaniZL26WLrvjy7soabMXrfPWARN25PZoriDEiLMxAp50AUW3t35BGQUMg5xK3UrpVTtagIDklxYa+MhiNA==
@@ -2310,7 +2296,7 @@ babel-plugin-polyfill-corejs3@^0.8.2:
"@babel/helper-define-polyfill-provider" "^0.4.2"
core-js-compat "^3.31.0"
-babel-plugin-polyfill-regenerator@^0.5.1:
+babel-plugin-polyfill-regenerator@^0.5.2:
version "0.5.2"
resolved "https://registry.yarnpkg.com/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.5.2.tgz#80d0f3e1098c080c8b5a65f41e9427af692dc326"
integrity sha512-tAlOptU0Xj34V1Y2PNTL4Y0FOJMDB6bZmoW39FeCQIhigGLkqu3Fj6uiXpxIf6Ij274ENdYx64y6Au+ZKlb1IA==
@@ -2409,7 +2395,7 @@ browser-process-hrtime@^1.0.0:
resolved "https://registry.yarnpkg.com/browser-process-hrtime/-/browser-process-hrtime-1.0.0.tgz#3c9b4b7d782c8121e56f10106d84c0d0ffc94626"
integrity sha512-9o5UecI3GhkpM6DrXr69PblIuWxPKk9Y0jHBRhdocZ2y7YECBFCsHm79Pr3OyR2AvjhDkabFJaDJMYRazHgsow==
-browserslist@^4.21.9:
+browserslist@^4.21.10, browserslist@^4.21.9:
version "4.21.10"
resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.21.10.tgz#dbbac576628c13d3b2231332cb2ec5a46e015bb0"
integrity sha512-bipEBdZfVH5/pwrvqc+Ub0kUPVfGUhlKxbvfD+z1BDnPEO/X98ruXGA1WP5ASpAFKan7Qr6j736IacbZQuAlKQ==
@@ -2484,11 +2470,11 @@ camelcase@^6.2.0:
integrity sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==
caniuse-lite@^1.0.30001517:
- version "1.0.30001518"
- resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001518.tgz#b3ca93904cb4699c01218246c4d77a71dbe97150"
- integrity sha512-rup09/e3I0BKjncL+FesTayKtPrdwKhUufQFd3riFw1hHg8JmIFoInYfB102cFcY/pPgGmdyl/iy+jgiDi2vdA==
+ version "1.0.30001522"
+ resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001522.tgz#44b87a406c901269adcdb834713e23582dd71856"
+ integrity sha512-TKiyTVZxJGhsTszLuzb+6vUZSjVOAhClszBr2Ta2k9IwtNBT/4dzmL6aywt0HCgEZlmwJzXJd8yNiob6HgwTRg==
-chalk@^2.0.0, chalk@^2.4.1, chalk@^2.4.2:
+chalk@^2.4.1, chalk@^2.4.2:
version "2.4.2"
resolved "https://registry.yarnpkg.com/chalk/-/chalk-2.4.2.tgz#cd42541677a54333cf541a49108c1432b44c9424"
integrity sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==
@@ -2844,11 +2830,11 @@ convert-source-map@^1.4.0, convert-source-map@^1.6.0, convert-source-map@^1.7.0:
integrity sha512-ASFBup0Mz1uyiIjANan1jzLQami9z1PoYSZCiiYW2FczPbenXc45FZdBZLzOT+r6+iciuEModtmCti+hjaAk0A==
core-js-compat@^3.31.0:
- version "3.32.0"
- resolved "https://registry.yarnpkg.com/core-js-compat/-/core-js-compat-3.32.0.tgz#f41574b6893ab15ddb0ac1693681bd56c8550a90"
- integrity sha512-7a9a3D1k4UCVKnLhrgALyFcP7YCsLOQIxPd0dKjf/6GuPcgyiGP70ewWdCGrSK7evyhymi0qO4EqCmSJofDeYw==
+ version "3.32.1"
+ resolved "https://registry.yarnpkg.com/core-js-compat/-/core-js-compat-3.32.1.tgz#55f9a7d297c0761a8eb1d31b593e0f5b6ffae964"
+ integrity sha512-GSvKDv4wE0bPnQtjklV101juQ85g6H3rm5PDP20mqlS5j0kXF3pP97YvAu5hl+uFHqMictp3b2VxOHljWMAtuA==
dependencies:
- browserslist "^4.21.9"
+ browserslist "^4.21.10"
core-util-is@~1.0.0:
version "1.0.3"
@@ -3115,9 +3101,9 @@ dotgitignore@^2.1.0:
minimatch "^3.0.4"
electron-to-chromium@^1.4.477:
- version "1.4.480"
- resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.4.480.tgz#40e32849ca50bc23ce29c1516c5adb3fddac919d"
- integrity sha512-IXTgg+bITkQv/FLP9FjX6f9KFCs5hQWeh5uNSKxB9mqYj/JXhHDbu+ekS43LVvbkL3eW6/oZy4+r9Om6lan1Uw==
+ version "1.4.499"
+ resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.4.499.tgz#dc36b67f4c8e273524e8d2080c5203a6a76987b6"
+ integrity sha512-0NmjlYBLKVHva4GABWAaHuPJolnDuL0AhV3h1hES6rcLCWEIbRL6/8TghfsVwkx6TEroQVdliX7+aLysUpKvjw==
elliptic@6.5.4:
version "6.5.4"
@@ -3286,13 +3272,13 @@ eslint-config-prettier@^6.11.0:
get-stdin "^6.0.0"
eslint-import-resolver-node@^0.3.7:
- version "0.3.7"
- resolved "https://registry.yarnpkg.com/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.7.tgz#83b375187d412324a1963d84fa664377a23eb4d7"
- integrity sha512-gozW2blMLJCeFpBwugLTGyvVjNoeo1knonXAcatC6bjPBZitotxdWf7Gimr25N4c0AAOo4eOUfaG82IJPDpqCA==
+ version "0.3.9"
+ resolved "https://registry.yarnpkg.com/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.9.tgz#d4eaac52b8a2e7c3cd1903eb00f7e053356118ac"
+ integrity sha512-WFj2isz22JahUv+B788TlO3N6zL3nNJGU8CcZbPZvVEkBPaJdCV4vy5wyghty5ROFbCRnm132v8BScu5/1BQ8g==
dependencies:
debug "^3.2.7"
- is-core-module "^2.11.0"
- resolve "^1.22.1"
+ is-core-module "^2.13.0"
+ resolve "^1.22.4"
eslint-module-utils@^2.8.0:
version "2.8.0"
@@ -3310,9 +3296,9 @@ eslint-plugin-eslint-comments@^3.2.0:
ignore "^5.0.5"
eslint-plugin-import@^2.22.0:
- version "2.28.0"
- resolved "https://registry.yarnpkg.com/eslint-plugin-import/-/eslint-plugin-import-2.28.0.tgz#8d66d6925117b06c4018d491ae84469eb3cb1005"
- integrity sha512-B8s/n+ZluN7sxj9eUf7/pRFERX0r5bnFA2dCaLHy2ZeaQEAz0k+ZZkFWRFHJAqxfxQDx6KLv9LeIki7cFdwW+Q==
+ version "2.28.1"
+ resolved "https://registry.yarnpkg.com/eslint-plugin-import/-/eslint-plugin-import-2.28.1.tgz#63b8b5b3c409bfc75ebaf8fb206b07ab435482c4"
+ integrity sha512-9I9hFlITvOV55alzoKBI+K9q74kv0iKMeY6av5+umsNwayt59fz692daGyjR+oStBQgx6nwR9rXldDev3Clw+A==
dependencies:
array-includes "^3.1.6"
array.prototype.findlastindex "^1.2.2"
@@ -3323,13 +3309,12 @@ eslint-plugin-import@^2.22.0:
eslint-import-resolver-node "^0.3.7"
eslint-module-utils "^2.8.0"
has "^1.0.3"
- is-core-module "^2.12.1"
+ is-core-module "^2.13.0"
is-glob "^4.0.3"
minimatch "^3.1.2"
object.fromentries "^2.0.6"
object.groupby "^1.0.0"
object.values "^1.1.6"
- resolve "^1.22.3"
semver "^6.3.1"
tsconfig-paths "^3.14.2"
@@ -3454,7 +3439,7 @@ esutils@^2.0.2:
resolved "https://registry.yarnpkg.com/esutils/-/esutils-2.0.3.tgz#74d2eb4de0b8da1293711910d50775b9b710ef64"
integrity sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==
-ethers@^5.4.1:
+ethers@^5.7.2:
version "5.7.2"
resolved "https://registry.yarnpkg.com/ethers/-/ethers-5.7.2.tgz#3a7deeabbb8c030d4126b24f84e525466145872e"
integrity sha512-wswUsmWo1aOK8rR7DIKiWSw9DbLWe6x98Jrn8wcTflTVvaXhAMaB5zGAXy0GYQEQp9iO1iSHWVyARQm11zUtyg==
@@ -3758,9 +3743,9 @@ fs.realpath@^1.0.0:
integrity sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==
fsevents@^2.3.2:
- version "2.3.2"
- resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-2.3.2.tgz#8a526f78b8fdf4623b709e0b975c52c24c02fd1a"
- integrity sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==
+ version "2.3.3"
+ resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-2.3.3.tgz#cac6407785d03675a2a5e1a5305c697b347d90d6"
+ integrity sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==
function-bind@^1.1.1:
version "1.1.1"
@@ -3955,9 +3940,9 @@ globals@^11.1.0:
integrity sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==
globals@^13.6.0, globals@^13.9.0:
- version "13.20.0"
- resolved "https://registry.yarnpkg.com/globals/-/globals-13.20.0.tgz#ea276a1e508ffd4f1612888f9d1bad1e2717bf82"
- integrity sha512-Qg5QtVkCy/kv3FUSlu4ukeZDVf9ee0iXLAUYX13gbR17bnejFTzr4iS9bY7kwCf1NztRNm1t91fjOiyx4CSwPQ==
+ version "13.21.0"
+ resolved "https://registry.yarnpkg.com/globals/-/globals-13.21.0.tgz#163aae12f34ef502f5153cfbdd3600f36c63c571"
+ integrity sha512-ybyme3s4yy/t/3s35bewwXKOf7cvzfreG2lH0lZl0JB7I4GxRP2ghxOK/Nb9EkRXdbBXZLfq/p/0W2JUONB/Gg==
dependencies:
type-fest "^0.20.2"
@@ -4279,10 +4264,10 @@ is-callable@^1.1.3, is-callable@^1.1.4, is-callable@^1.2.7:
resolved "https://registry.yarnpkg.com/is-callable/-/is-callable-1.2.7.tgz#3bc2a85ea742d9e36205dcacdd72ca1fdc51b055"
integrity sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==
-is-core-module@^2.11.0, is-core-module@^2.12.0, is-core-module@^2.12.1, is-core-module@^2.5.0:
- version "2.12.1"
- resolved "https://registry.yarnpkg.com/is-core-module/-/is-core-module-2.12.1.tgz#0c0b6885b6f80011c71541ce15c8d66cf5a4f9fd"
- integrity sha512-Q4ZuBAe2FUsKtyQJoQHlvP8OvBERxO3jEmy1I7hcRXcJBGGHFh/aJBswbXuS9sgrDH2QUO8ilkwNPHvHMd8clg==
+is-core-module@^2.13.0, is-core-module@^2.5.0:
+ version "2.13.0"
+ resolved "https://registry.yarnpkg.com/is-core-module/-/is-core-module-2.13.0.tgz#bb52aa6e2cbd49a30c2ba68c42bf3435ba6072db"
+ integrity sha512-Z7dk6Qo8pOCp3l4tsX2C5ZVas4V+UxwQodwZhLopL91TX8UyyHEXafPcyoeeWuLrwzHcr3igO78wNLwHJHsMCQ==
dependencies:
has "^1.0.3"
@@ -6009,15 +5994,15 @@ regenerate@^1.4.2:
resolved "https://registry.yarnpkg.com/regenerate/-/regenerate-1.4.2.tgz#b9346d8827e8f5a32f7ba29637d398b69014848a"
integrity sha512-zrceR/XhGYU/d/opr2EKO7aRHUeiBI8qjtfHqADTwZd6Szfy16la6kqD0MIUs5z5hx6AaKa+PixpPrR289+I0A==
-regenerator-runtime@^0.13.11:
- version "0.13.11"
- resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.13.11.tgz#f6dca3e7ceec20590d07ada785636a90cdca17f9"
- integrity sha512-kY1AZVr2Ra+t+piVaJ4gxaFaReZVH40AKNo7UCX6W+dEwBo/2oZJzqfuN1qLq1oL45o56cPaTXELwrTh8Fpggg==
+regenerator-runtime@^0.14.0:
+ version "0.14.0"
+ resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.14.0.tgz#5e19d68eb12d486f797e15a3c6a918f7cec5eb45"
+ integrity sha512-srw17NI0TUWHuGa5CFGGmhfNIeja30WMBfbslPNhf6JrqQlLN5gcrvig1oqPxiVaXb0oW0XRKtH6Nngs5lKCIA==
-regenerator-transform@^0.15.1:
- version "0.15.1"
- resolved "https://registry.yarnpkg.com/regenerator-transform/-/regenerator-transform-0.15.1.tgz#f6c4e99fc1b4591f780db2586328e4d9a9d8dc56"
- integrity sha512-knzmNAcuyxV+gQCufkYcvOqX/qIIfHLv0u5x79kRxuGojfYVky1f15TzZEu2Avte8QGepvUNTnLskf8E6X6Vyg==
+regenerator-transform@^0.15.2:
+ version "0.15.2"
+ resolved "https://registry.yarnpkg.com/regenerator-transform/-/regenerator-transform-0.15.2.tgz#5bbae58b522098ebdf09bca2f83838929001c7a4"
+ integrity sha512-hfMp2BoF0qOk3uc5V20ALGDS2ddjQaLrdl7xrGXvAIow7qeWRM2VA2HuCHkUKk9slq3VwEwLNK3DFBqDfPGYtg==
dependencies:
"@babel/runtime" "^7.8.4"
@@ -6106,21 +6091,12 @@ resolve.exports@^1.1.0:
resolved "https://registry.yarnpkg.com/resolve.exports/-/resolve.exports-1.1.1.tgz#05cfd5b3edf641571fd46fa608b610dda9ead999"
integrity sha512-/NtpHNDN7jWhAaQ9BvBUYZ6YTXsRBgfqWFWP7BZBaoMJO/I3G5OFzvTuWNlZC3aPjins1F+TNrLKsGbH4rfsRQ==
-resolve@^1.10.0, resolve@^1.14.2, resolve@^1.20.0, resolve@^1.22.1:
- version "1.22.2"
- resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.22.2.tgz#0ed0943d4e301867955766c9f3e1ae6d01c6845f"
- integrity sha512-Sb+mjNHOULsBv818T40qSPeRiuWLyaGMa5ewydRLFimneixmVy2zdivRl+AF6jaYPC8ERxGDmFSiqui6SfPd+g==
+resolve@^1.10.0, resolve@^1.14.2, resolve@^1.20.0, resolve@^1.22.4:
+ version "1.22.4"
+ resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.22.4.tgz#1dc40df46554cdaf8948a486a10f6ba1e2026c34"
+ integrity sha512-PXNdCiPqDqeUou+w1C2eTQbNfxKSuMxqTCuvlmmMsk1NWHL5fRrhY6Pl0qEYYc6+QqGClco1Qj8XnjPego4wfg==
dependencies:
- is-core-module "^2.11.0"
- path-parse "^1.0.7"
- supports-preserve-symlinks-flag "^1.0.0"
-
-resolve@^1.22.3:
- version "1.22.3"
- resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.22.3.tgz#4b4055349ffb962600972da1fdc33c46a4eb3283"
- integrity sha512-P8ur/gp/AmbEzjr729bZnLjXK5Z+4P0zhIJgBgzqRih7hL7BOukHGtSTA3ACMY467GRFz3duQsi0bDZdR7DKdw==
- dependencies:
- is-core-module "^2.12.0"
+ is-core-module "^2.13.0"
path-parse "^1.0.7"
supports-preserve-symlinks-flag "^1.0.0"
@@ -6781,9 +6757,9 @@ tslib@^1.8.1:
integrity sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==
tslib@^2.1.0:
- version "2.6.1"
- resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.6.1.tgz#fd8c9a0ff42590b25703c0acb3de3d3f4ede0410"
- integrity sha512-t0hLfiEKfMUoqhG+U1oid7Pva4bbDPHYfJNiB7BiIjRkj1pyC++4N3huJfqY6aRH6VTB0rvtzQwjM4K6qpfOig==
+ version "2.6.2"
+ resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.6.2.tgz#703ac29425e7b37cd6fd456e92404d46d1f3e4ae"
+ integrity sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q==
tsutils@^3.21.0:
version "3.21.0"
@@ -7029,9 +7005,9 @@ v8-compile-cache-lib@^3.0.1:
integrity sha512-wa7YjyUGfNZngI/vtK0UHAN+lgDCxBPCylVXGp0zu59Fz5aiGtNXaq3DhIov063MorB+VfufLh3JlF2KdTK3xg==
v8-compile-cache@^2.0.3:
- version "2.3.0"
- resolved "https://registry.yarnpkg.com/v8-compile-cache/-/v8-compile-cache-2.3.0.tgz#2de19618c66dc247dcfb6f99338035d8245a2cee"
- integrity sha512-l8lCEmLcLYZh4nbunNZvQCJc5pv7+RCwa8q/LdUx8u7lsWvPDKmpodJAJNwkAhJC//dFY48KuIEmjtd4RViDrA==
+ version "2.4.0"
+ resolved "https://registry.yarnpkg.com/v8-compile-cache/-/v8-compile-cache-2.4.0.tgz#cdada8bec61e15865f05d097c5f4fd30e94dc128"
+ integrity sha512-ocyWc3bAHBB/guyqJQVI5o4BZkPhznPYUG2ea80Gond/BgNWpap8TOmLSeeQG7bnh2KMISxskdADG59j7zruhw==
v8-to-istanbul@^8.1.0:
version "8.1.1"