diff --git a/.github/workflows/node.yml b/.github/workflows/contracts.yml similarity index 60% rename from .github/workflows/node.yml rename to .github/workflows/contracts.yml index ab59a71d7..f97fe8c87 100644 --- a/.github/workflows/node.yml +++ b/.github/workflows/contracts.yml @@ -1,4 +1,4 @@ -name: Node +name: Contracts on: push: @@ -21,24 +21,13 @@ jobs: run: yarn - name: Compile contracts run: yarn hardhat compile - - name: Run eslint (including prettier) - run: yarn lint:check - name: Run gas benchmarks run: yarn benchmark:diff + - name: Run contract tests + run: yarn test:contracts - name: Archive logs if: always() uses: actions/upload-artifact@v2 with: name: logs path: ./**/*.log - - name: Run tests - run: yarn test - - name: Notify slack fail - if: ${{ failure() && github.ref == 'refs/heads/main'}} - env: - SLACK_BOT_TOKEN: ${{ secrets.SLACK_NOTIFICATIONS_BOT_TOKEN }} - uses: voxmedia/github-action-slack-notify-build@v1 - with: - channel_id: C03G4AUGA7M - status: FAILED - color: danger diff --git a/packages/nitro-protocol/.eslintrc.js b/packages/nitro-protocol/.eslintrc.js index 9394ef4f4..9b4a8ae7a 100644 --- a/packages/nitro-protocol/.eslintrc.js +++ b/packages/nitro-protocol/.eslintrc.js @@ -1,19 +1,7 @@ /* global module */ module.exports = { - parser: '@typescript-eslint/parser', - plugins: [ - '@typescript-eslint', - 'prettier', - // We enforce certain rules on how imports are handled - 'import', - ], - extends: [ - 'eslint:recommended', - 'plugin:prettier/recommended', - 'plugin:import/errors', - 'plugin:import/warnings', - 'plugin:import/typescript', - ], + extends: ['../../.eslintrc.js'], + ignorePatterns: ['.prettierrc.js', '**/*.config.js', '**/scripts'], rules: { 'no-self-compare': 'error', 'import/order': [ diff --git a/packages/nitro-protocol/config/jest/jest.config.js b/packages/nitro-protocol/config/jest/jest.config.js index 60d609696..377cc0cb4 100644 --- a/packages/nitro-protocol/config/jest/jest.config.js +++ b/packages/nitro-protocol/config/jest/jest.config.js @@ -10,16 +10,20 @@ const root = resolve(__dirname, '../../'); // eslint-disable-next-line no-undef module.exports = { - globals: { - 'ts-jest': { - tsconfig: './test/tsconfig.json', - }, + preset: 'ts-jest', + transform: { + '^.+\\.tsx?$': [ + 'ts-jest', + { + tsconfig: './test/tsconfig.json', + }, + ], }, + rootDir: root, collectCoverageFrom: ['**/*.{js,jsx,ts,tsx}'], reporters: ['default'], testMatch: ['/test/src/**/?(*.)test.ts?(x)', '/test/?(*.)test.ts?(x)'], testEnvironment: 'node', - testURL: 'http://localhost', preset: 'ts-jest', }; diff --git a/packages/nitro-protocol/package.json b/packages/nitro-protocol/package.json index eb5d1106e..4de9b4e2c 100644 --- a/packages/nitro-protocol/package.json +++ b/packages/nitro-protocol/package.json @@ -20,11 +20,12 @@ "contracts:deploy-localhost": "yarn hardhat deploy --network localhost --export-all addresses.json && node ./scripts/postdeploy.ts", "contracts:deploy-goerli": "yarn hardhat deploy --network goerli --export-all addresses.json && node ./scripts/postdeploy.js", "contracts:node": "yarn hardhat node --no-deploy", - "test": "yarn test:contracts && yarn test:app --all", + "test": "yarn test:app", "test:app": "yarn hardhat compile && jest -c ./config/jest/jest.config.js", "test:contracts": "yarn hardhat compile && jest -c ./config/jest/jest.contracts.config.js", "lint:check": "yarn eslint \"./\" --cache && yarn prettier:check", "lint:write": "yarn eslint \"./\" --fix && yarn prettier:write", + "lint": "yarn lint:check", "prepack": "yarn hardhat compile && yarn build:typescript", "solhint:check": "yarn solhint -w 0 './contracts/**/*.sol'", "solhint:write": "echo 'This command does not seem to work. Use yarn prettier:write ' && yarn solhint --fix './contracts/**/*.sol'", @@ -44,7 +45,7 @@ "@statechannels/devtools": "^0.5.7", "@typechain/ethers-v5": "^9.0.0", "@typechain/hardhat": "^4.0.0", - "@types/jest": "^27.4.1", + "@types/jest": "29.5.0", "@types/lodash.isequal": "^4.5.5", "@types/lodash.shuffle": "^4.2.6", "@types/mocha": "^9.1.0", @@ -66,14 +67,14 @@ "hardhat-deploy-ethers": "^0.3.0-beta.13", "hardhat-gas-reporter": "^1.0.7", "hardhat-watcher": "^2.3.0", - "jest": "^27.5.1", + "jest": "29.5.0", "lodash.isequal": "^4.5.0", "lodash.shuffle": "^4.2.0", "prettier": "^2.6.2", "prettier-plugin-solidity": "^1.0.0-beta.19", "solhint": "^3.3.7", "solidity-coverage": "^0.8.4", - "ts-jest": "^27.1.3", + "ts-jest": "29.1.0", "ts-node": "^10.4.0", "typechain": "^8.0.0", "typescript": "^4.6.3", diff --git a/packages/nitro-protocol/test/contracts/BatchOperator/batchDeposits.test.ts b/packages/nitro-protocol/test/contracts/BatchOperator/batchDeposits.test.ts index 7d5aa9408..928c6adc5 100644 --- a/packages/nitro-protocol/test/contracts/BatchOperator/batchDeposits.test.ts +++ b/packages/nitro-protocol/test/contracts/BatchOperator/batchDeposits.test.ts @@ -16,25 +16,25 @@ const provider = getTestProvider(); const batchOperator = setupContract( provider, BatchOperatorArtifact, - process.env.BATCH_OPERATOR_ADDRESS + process.env.BATCH_OPERATOR_ADDRESS || '' ) as unknown as BatchOperator & Contract; const nitroAdjudicator = setupContract( provider, NitroAdjudicatorArtifact, - process.env.NITRO_ADJUDICATOR_ADDRESS + process.env.NITRO_ADJUDICATOR_ADDRESS || '' ) as unknown as NitroAdjudicator & Contract; const token = setupContract( provider, TokenArtifact, - process.env.TEST_TOKEN_ADDRESS + process.env.TEST_TOKEN_ADDRESS || '' ) as unknown as Token & Contract; const badToken = setupContract( provider, BadTokenArtifact, - process.env.BAD_TOKEN_ADDRESS + process.env.BAD_TOKEN_ADDRESS || '' ) as unknown as BadToken & Contract; const ETH = MAGIC_ADDRESS_INDICATING_ETH; @@ -107,111 +107,103 @@ describe('deposit_batch', () => { ${description9} | ${ERC20} | ${[1, 1, 1]} | ${[1, 1, 1]} | ${[2, 2, 2]} | ${unexpectedHeld} ${description10} | ${BadERC20} | ${[0, 0, 0]} | ${[1, 1, 1]} | ${[1, 1, 1]} | ${''} ${description11} | ${ETH} | ${[0, 0]} | ${[1, 1, 1]} | ${[1, 1, 1]} | ${'Array lengths must match'} - `( - '$description', - async ({ - description, - assetId, - expectedHelds, - amounts, - heldAfters, - reasonString, - }: testParams) => { - /////////////////////////////////////// - // - // Construct deposit_batch parameters - // - /////////////////////////////////////// - const channelIds = counterparties.map(counterparty => - getChannelId({ - channelNonce: getRandomNonce(description), - participants: [signerAddress, counterparty], - appDefinition: consensusApp, - challengeDuration: 100, - }) - ); - const expectedHeldsBN = expectedHelds.map(x => BigNumber.from(x)); - const amountsBN = amounts.map(x => BigNumber.from(x)); - const heldAftersBN = heldAfters.map(x => BigNumber.from(x)); - const totalValue = sum(amountsBN); - - if (assetId === ERC20) { - await ( - await token.increaseAllowance(batchOperator.address, totalValue.add(totalValue)) - ).wait(); - } + `('$description', async tc => { + const {description, assetId, expectedHelds, amounts, heldAfters, reasonString} = + tc as testParams; + /////////////////////////////////////// + // + // Construct deposit_batch parameters + // + /////////////////////////////////////// + const channelIds = counterparties.map(counterparty => + getChannelId({ + channelNonce: getRandomNonce(description), + participants: [signerAddress, counterparty], + appDefinition: consensusApp || '', + challengeDuration: 100, + }) + ); + const expectedHeldsBN = expectedHelds.map(x => BigNumber.from(x)); + const amountsBN = amounts.map(x => BigNumber.from(x)); + const heldAftersBN = heldAfters.map(x => BigNumber.from(x)); + const totalValue = sum(amountsBN); + + if (assetId === ERC20) { + await ( + await token.increaseAllowance(batchOperator.address, totalValue.add(totalValue)) + ).wait(); + } - if (assetId === BadERC20) { - await ( - await badToken.increaseAllowance(batchOperator.address, totalValue.add(totalValue)) - ).wait(); - } + if (assetId === BadERC20) { + await ( + await badToken.increaseAllowance(batchOperator.address, totalValue.add(totalValue)) + ).wait(); + } - /////////////////////////////////////// - // - // Set up preexisting holdings (if any) - // - /////////////////////////////////////// - - await Promise.all( - expectedHeldsBN.map(async (expected, i) => { - const channelID = channelIds[i]; - // apply incorrect amount if unexpectedHeld reasonString is set - const value = reasonString == unexpectedHeld ? expected.add(1) : expected; - - if (assetId === ERC20) { - await (await token.increaseAllowance(nitroAdjudicator.address, value)).wait(); - } - if (assetId === BadERC20) { - await (await badToken.increaseAllowance(nitroAdjudicator.address, value)).wait(); - } - - const {events} = await ( - await nitroAdjudicator.deposit(assetId, channelID, 0, value, { - value: assetId === ETH ? value : 0, - }) - ).wait(); - expect(events).not.toBe(undefined); - }) - ); - - /////////////////////////////////////// - // - // Execute deposit - // - /////////////////////////////////////// - - const tx = - assetId === ETH - ? batchOperator.deposit_batch_eth(channelIds, expectedHeldsBN, amountsBN, { - value: totalValue, - }) - : batchOperator.deposit_batch_erc20( - assetId, - channelIds, - expectedHeldsBN, - amountsBN, - totalValue - ); - - /////////////////////////////////////// - // - // Check postconditions - // - /////////////////////////////////////// - if (reasonString != '') { - await expectRevert(() => tx, reasonString); - } else { - await (await tx).wait(); - - for (let i = 0; i < channelIds.length; i++) { - const channelId = channelIds[i]; - const expectedHoldings = heldAftersBN[i]; - - const holdings = await nitroAdjudicator.holdings(assetId, channelId); - expect(holdings).toEqual(expectedHoldings); + /////////////////////////////////////// + // + // Set up preexisting holdings (if any) + // + /////////////////////////////////////// + + await Promise.all( + expectedHeldsBN.map(async (expected, i) => { + const channelID = channelIds[i]; + // apply incorrect amount if unexpectedHeld reasonString is set + const value = reasonString == unexpectedHeld ? expected.add(1) : expected; + + if (assetId === ERC20) { + await (await token.increaseAllowance(nitroAdjudicator.address, value)).wait(); + } + if (assetId === BadERC20) { + await (await badToken.increaseAllowance(nitroAdjudicator.address, value)).wait(); } + + const {events} = await ( + await nitroAdjudicator.deposit(assetId, channelID, 0, value, { + value: assetId === ETH ? value : 0, + }) + ).wait(); + expect(events).not.toBe(undefined); + }) + ); + + /////////////////////////////////////// + // + // Execute deposit + // + /////////////////////////////////////// + + const tx = + assetId === ETH + ? batchOperator.deposit_batch_eth(channelIds, expectedHeldsBN, amountsBN, { + value: totalValue, + }) + : batchOperator.deposit_batch_erc20( + assetId, + channelIds, + expectedHeldsBN, + amountsBN, + totalValue + ); + + /////////////////////////////////////// + // + // Check postconditions + // + /////////////////////////////////////// + if (reasonString != '') { + await expectRevert(() => tx, reasonString); + } else { + await (await tx).wait(); + + for (let i = 0; i < channelIds.length; i++) { + const channelId = channelIds[i]; + const expectedHoldings = heldAftersBN[i]; + + const holdings = await nitroAdjudicator.holdings(assetId, channelId); + expect(holdings).toEqual(expectedHoldings); } } - ); + }); }); diff --git a/packages/nitro-protocol/test/contracts/ForceMove/challenge.test.ts b/packages/nitro-protocol/test/contracts/ForceMove/challenge.test.ts index dd7d1534f..a37be1751 100644 --- a/packages/nitro-protocol/test/contracts/ForceMove/challenge.test.ts +++ b/packages/nitro-protocol/test/contracts/ForceMove/challenge.test.ts @@ -52,7 +52,7 @@ let ForceMove: Contract; const provider = getTestProvider(); const participants = ['', '', '']; -const wallets = new Array(3); +const wallets = new Array(3); const challengeDuration = 86400; // 1 day const outcome: Outcome = [ @@ -97,7 +97,7 @@ async function createTwoPartySignedCountingAppState( } beforeAll(async () => { - ForceMove = setupContract(provider, ForceMoveArtifact, process.env.TEST_FORCE_MOVE_ADDRESS); + ForceMove = setupContract(provider, ForceMoveArtifact, process.env.TEST_FORCE_MOVE_ADDRESS || ''); }); // Scenarios are synonymous with channelNonce: @@ -159,8 +159,15 @@ describe('challenge', () => { ${reverts7} | ${empty} | ${fourStates} | ${'correct'} | ${INVALID_NUMBER_OF_PROOF_STATES} `( '$description', // For the purposes of this test, participants are fixed, making channelId 1-1 with channelNonce - async ({initialFingerprint, stateData, challengeSignatureType, reasonString}) => { - const {appDatas, whoSignedWhat}: transitionType = stateData; + async tc => { + const {reasonString, challengeSignatureType, stateData, initialFingerprint} = + tc as unknown as { + initialFingerprint: string; + stateData: transitionType; + challengeSignatureType: string; + reasonString: undefined | string; + }; + const {appDatas, whoSignedWhat} = stateData; const states: State[] = appDatas.map((data, idx) => ({ turnNum: largestTurnNum - appDatas.length + 1 + idx, @@ -273,7 +280,12 @@ describe('challenge with transaction generator', () => { ${'challenge(0,1) accepted'} | ${[0, 1]} | ${[]} | ${[1, 2]} | ${1} ${'challenge(1,2) accepted'} | ${[0, 1]} | ${[]} | ${[2, 3]} | ${0} ${'challenge(2,3) accepted, MAX_OUTCOME_ITEMS'} | ${[0, 1]} | ${largeOutcome(MAX_OUTCOME_ITEMS)} | ${[3, 4]} | ${0} - `('$description', async ({appData, turnNums, challenger}) => { + `('$description', async tc => { + const {appData, turnNums, challenger} = tc as unknown as { + appData: number[]; + turnNums: number[]; + challenger: number; + }; const transactionRequest: ethers.providers.TransactionRequest = createChallengeTransaction( [ await createTwoPartySignedCountingAppState(appData[0], turnNums[0]), diff --git a/packages/nitro-protocol/test/contracts/ForceMove/checkpoint.test.ts b/packages/nitro-protocol/test/contracts/ForceMove/checkpoint.test.ts index da2198bc8..dd5f348e0 100644 --- a/packages/nitro-protocol/test/contracts/ForceMove/checkpoint.test.ts +++ b/packages/nitro-protocol/test/contracts/ForceMove/checkpoint.test.ts @@ -46,7 +46,7 @@ const defaultOutcome: Outcome = [ let appDefinition: string; beforeAll(async () => { - ForceMove = setupContract(provider, ForceMoveArtifact, process.env.TEST_FORCE_MOVE_ADDRESS); + ForceMove = setupContract(provider, ForceMoveArtifact, process.env.TEST_FORCE_MOVE_ADDRESS || ''); appDefinition = getCountingAppContractAddress(); }); @@ -102,7 +102,8 @@ describe('checkpoint', () => { ${reverts5} | ${turnNumRecord + 1} | ${invalidTransition} | ${future} | ${COUNTING_APP_INVALID_TRANSITION} ${reverts6} | ${turnNumRecord + 1} | ${unsupported} | ${future} | ${INVALID_SIGNED_BY} ${reverts7} | ${turnNumRecord + 1} | ${valid} | ${past} | ${CHANNEL_FINALIZED} - `('$description', async ({largestTurnNum, support, finalizesAt, reason}: testParams) => { + `('$description', async tc => { + const {largestTurnNum, support, finalizesAt, reason} = tc as unknown as testParams; const {appDatas, whoSignedWhat} = support; const states: State[] = appDatas.map((data, idx) => ({ diff --git a/packages/nitro-protocol/test/contracts/ForceMove/conclude.test.ts b/packages/nitro-protocol/test/contracts/ForceMove/conclude.test.ts index 4f65e553e..c3aee2569 100644 --- a/packages/nitro-protocol/test/contracts/ForceMove/conclude.test.ts +++ b/packages/nitro-protocol/test/contracts/ForceMove/conclude.test.ts @@ -41,7 +41,7 @@ const outcome: Outcome = [{asset, allocations: [], assetMetadata: {assetType: 0, let appDefinition: string; beforeAll(async () => { - ForceMove = setupContract(provider, ForceMoveArtifact, process.env.TEST_FORCE_MOVE_ADDRESS); + ForceMove = setupContract(provider, ForceMoveArtifact, process.env.TEST_FORCE_MOVE_ADDRESS || ''); appDefinition = getCountingAppContractAddress(); }); @@ -84,7 +84,15 @@ describe('conclude', () => { ${reverts2} | ${HashZero} | ${false} | ${turnNumRecord - 1} | ${oneState} | ${NONFINAL_STATE} `( '$description', // For the purposes of this test, participants are fixed, making channelId 1-1 with channelNonce - async ({initialFingerprint, isFinal, largestTurnNum, support, reasonString}) => { + async tc => { + const {initialFingerprint, isFinal, largestTurnNum, support, reasonString} = + tc as unknown as { + initialFingerprint: string; + isFinal: boolean; + largestTurnNum: number; + support: any; + reasonString: string | undefined; + }; const {appData, whoSignedWhat} = support; const numStates = appData.length; diff --git a/packages/nitro-protocol/test/contracts/ForceMove/storage.test.ts b/packages/nitro-protocol/test/contracts/ForceMove/storage.test.ts index fa1b45848..89bce2bfb 100644 --- a/packages/nitro-protocol/test/contracts/ForceMove/storage.test.ts +++ b/packages/nitro-protocol/test/contracts/ForceMove/storage.test.ts @@ -3,13 +3,13 @@ import {Contract, ethers} from 'ethers'; import {it} from '@jest/globals'; import ForceMoveArtifact from '../../../artifacts/contracts//test/TESTForceMove.sol/TESTForceMove.json'; -import {channelDataToStatus, parseStatus} from '../../../src/contract/channel-storage'; +import {ChannelData, channelDataToStatus, parseStatus} from '../../../src/contract/channel-storage'; import {getTestProvider, randomChannelId, setupContract} from '../../test-helpers'; const provider = getTestProvider(); let ForceMove: Contract; beforeAll(async () => { - ForceMove = setupContract(provider, ForceMoveArtifact, process.env.TEST_FORCE_MOVE_ADDRESS); + ForceMove = setupContract(provider, ForceMoveArtifact, process.env.TEST_FORCE_MOVE_ADDRESS || ''); }); const zeroData = { @@ -24,7 +24,8 @@ describe('storage', () => { `('Statusing and data retrieval', async storage => { const blockchainStorage = {...storage, ...zeroData}; const blockchainStatus = await ForceMove.generateStatus(blockchainStorage); - const clientStatus = channelDataToStatus(storage); + + const clientStatus = channelDataToStatus(storage as unknown as ChannelData); const expected = {...storage, fingerprint: '0x' + clientStatus.slice(2 + 24)}; @@ -72,7 +73,9 @@ describe('_requireChannelOpen', () => { const blockchainStorage = {turnNumRecord, finalizesAt, ...zeroData}; await (await ForceMove.setStatusFromChannelData(channelId, blockchainStorage)).wait(); - expect(await ForceMove.statusOf(channelId)).toEqual(channelDataToStatus(blockchainStorage)); + expect(await ForceMove.statusOf(channelId)).toEqual( + channelDataToStatus(blockchainStorage as ChannelData) + ); const tx = ForceMove.requireChannelOpen(channelId); // eslint-disable-next-line no-unused-expressions diff --git a/packages/nitro-protocol/test/contracts/MultiAssetHolder/deposit.test.ts b/packages/nitro-protocol/test/contracts/MultiAssetHolder/deposit.test.ts index 5d03dc584..9f969b413 100644 --- a/packages/nitro-protocol/test/contracts/MultiAssetHolder/deposit.test.ts +++ b/packages/nitro-protocol/test/contracts/MultiAssetHolder/deposit.test.ts @@ -16,19 +16,19 @@ const provider = getTestProvider(); const testNitroAdjudicator = setupContract( provider, TESTNitroAdjudicatorArtifact, - process.env.TEST_NITRO_ADJUDICATOR_ADDRESS + process.env.TEST_NITRO_ADJUDICATOR_ADDRESS || '' ) as unknown as TESTNitroAdjudicator & Contract; const token = setupContract( provider, TokenArtifact, - process.env.TEST_TOKEN_ADDRESS + process.env.TEST_TOKEN_ADDRESS || '' ) as unknown as Token & Contract; const badToken = setupContract( provider, BadTokenArtifact, - process.env.BAD_TOKEN_ADDRESS + process.env.BAD_TOKEN_ADDRESS || '' ) as unknown as BadToken & Contract; const signer0 = getTestProvider().getSigner(0); // Convention matches setupContract function @@ -81,12 +81,13 @@ describe('deposit', () => { ${description7} | ${ETH} | ${1} | ${0} | ${2} | ${2} | ${'held != expectedHeld'} ${description8} | ${ETH} | ${0} | ${0} | ${1} | ${1} | ${noValueReason} ${description9} | ${BadERC20} | ${0} | ${0} | ${1} | ${1} | ${undefined} - `('$description', async ({asset, held, expectedHeld, amount, reasonString, heldAfter}) => { - held = BigNumber.from(held); - expectedHeld = BigNumber.from(expectedHeld); - amount = BigNumber.from(amount); - heldAfter = BigNumber.from(heldAfter); - + `('$description', async tc => { + const held = BigNumber.from(tc.held); + const expectedHeld = BigNumber.from(tc.expectedHeld); + const amount = BigNumber.from(tc.amount); + const heldAfter = BigNumber.from(tc.heldAfter); + const asset = tc.asset as string; + const reasonString = tc.reasonString as string; const destination = getChannelId({ channelNonce, participants, @@ -126,7 +127,7 @@ describe('deposit', () => { expect(allowance.sub(amount).sub(held).gte(0)).toBe(true); } - if (held > 0) { + if (held.gt(0)) { // Set holdings by depositing in the 'safest' way const {events} = await ( await testNitroAdjudicator.deposit(asset, destination, 0, held, { diff --git a/packages/nitro-protocol/test/contracts/MultiAssetHolder/transfer.test.ts b/packages/nitro-protocol/test/contracts/MultiAssetHolder/transfer.test.ts index 835424627..7a98d6c05 100644 --- a/packages/nitro-protocol/test/contracts/MultiAssetHolder/transfer.test.ts +++ b/packages/nitro-protocol/test/contracts/MultiAssetHolder/transfer.test.ts @@ -15,14 +15,14 @@ import {TESTNitroAdjudicator} from '../../../typechain-types/TESTNitroAdjudicato import TESTNitroAdjudicatorArtifact from '../../../artifacts/contracts/test/TESTNitroAdjudicator.sol/TESTNitroAdjudicator.json'; import {channelDataToStatus, isExternalDestination} from '../../../src'; import {MAGIC_ADDRESS_INDICATING_ETH} from '../../../src/transactions'; -import {replaceAddressesAndBigNumberify} from '../../../src/helpers'; +import {AssetOutcomeShortHand, replaceAddressesAndBigNumberify} from '../../../src/helpers'; const testProvider = getTestProvider(); const testNitroAdjudicator = setupContract( testProvider, TESTNitroAdjudicatorArtifact, - process.env.TEST_NITRO_ADJUDICATOR_ADDRESS + process.env.TEST_NITRO_ADJUDICATOR_ADDRESS || '' ) as unknown as TESTNitroAdjudicator & Contract; const addresses = { @@ -64,7 +64,15 @@ describe('transfer', () => { ${'17. guarantee allocationType'} | ${{c: 1}} | ${false} | ${{A: 1}} | ${[0]} | ${{A: 0}} | ${{}} | ${{A: 1}} | ${reason3} `( `$name: isSimple: $isSimple, heldBefore: $heldBefore, setOutcome: $setOutcome, newOutcome: $newOutcome, heldAfter: $heldAfter, payouts: $payouts`, - async ({heldBefore, isSimple, setOutcome, indices, newOutcome, heldAfter, payouts, reason}) => { + async tc => { + let heldBefore = tc.heldBefore as AssetOutcomeShortHand; + const isSimple = tc.isSimple as boolean; + let setOutcome = tc.setOutcome as AssetOutcomeShortHand; + const indices = tc.indices as number[]; + let newOutcome = tc.newOutcome as AssetOutcomeShortHand; + let heldAfter = tc.heldAfter as AssetOutcomeShortHand; + let payouts = tc.payouts as AssetOutcomeShortHand; + const reason = tc.reason as string; // Compute channelId addresses.c = randomChannelId(); const channelId = addresses.c; @@ -74,11 +82,11 @@ describe('transfer', () => { addresses.B = randomExternalDestination(); // Transform input data (unpack addresses and BigNumberify amounts) - heldBefore = replaceAddressesAndBigNumberify(heldBefore, addresses); - setOutcome = replaceAddressesAndBigNumberify(setOutcome, addresses); - newOutcome = replaceAddressesAndBigNumberify(newOutcome, addresses); - heldAfter = replaceAddressesAndBigNumberify(heldAfter, addresses); - payouts = replaceAddressesAndBigNumberify(payouts, addresses); + heldBefore = replaceAddressesAndBigNumberify(heldBefore, addresses) as AssetOutcomeShortHand; + setOutcome = replaceAddressesAndBigNumberify(setOutcome, addresses) as AssetOutcomeShortHand; + newOutcome = replaceAddressesAndBigNumberify(newOutcome, addresses) as AssetOutcomeShortHand; + heldAfter = replaceAddressesAndBigNumberify(heldAfter, addresses) as AssetOutcomeShortHand; + payouts = replaceAddressesAndBigNumberify(payouts, addresses) as AssetOutcomeShortHand; // Deposit into channels @@ -102,7 +110,7 @@ describe('transfer', () => { Object.keys(setOutcome).forEach(key => allocations.push({ destination: key, - amount: setOutcome[key], + amount: BigNumber.from(setOutcome[key]).toHexString(), metadata: '0x', allocationType: isSimple ? AllocationType.simple : AllocationType.guarantee, }) @@ -165,7 +173,7 @@ describe('transfer', () => { Object.keys(newOutcome).forEach(key => { allocationsAfter.push({ destination: key, - amount: newOutcome[key], + amount: BigNumber.from(newOutcome[key]).toHexString(), metadata: '0x', allocationType: AllocationType.simple, }); diff --git a/packages/nitro-protocol/test/contracts/NitroAdjudicator/concludeAndTransferAllAssets.test.ts b/packages/nitro-protocol/test/contracts/NitroAdjudicator/concludeAndTransferAllAssets.test.ts index 60e27d407..d1a85ccb7 100644 --- a/packages/nitro-protocol/test/contracts/NitroAdjudicator/concludeAndTransferAllAssets.test.ts +++ b/packages/nitro-protocol/test/contracts/NitroAdjudicator/concludeAndTransferAllAssets.test.ts @@ -35,13 +35,13 @@ import { const testNitroAdjudicator = setupContract( getTestProvider(), TESTNitroAdjudicatorArtifact, - process.env.TEST_NITRO_ADJUDICATOR_ADDRESS + process.env.TEST_NITRO_ADJUDICATOR_ADDRESS || '' ) as unknown as TESTNitroAdjudicator & Contract; const token = setupContract( getTestProvider(), TokenArtifact, - process.env.TEST_TOKEN_ADDRESS + process.env.TEST_TOKEN_ADDRESS || '' ) as unknown as Token & Contract; const provider = getTestProvider(); @@ -129,22 +129,14 @@ describe('concludeAndTransferAllAssets', () => { ${accepts8} | ${oneHundredPayouts} | ${{ERC20: {c: 100}}} | ${{ERC20: {c: 0}}} | ${{}} | ${oneHundredPayouts} | ${undefined} `( '$description', // For the purposes of this test, participants are fixed, making channelId 1-1 with channelNonce - async ({ - outcomeShortHand, - heldBefore, - heldAfter, - newOutcome, - payouts, - reasonString, - }: { - description: string; - outcomeShortHand: OutcomeShortHand; - heldBefore: OutcomeShortHand; - heldAfter: OutcomeShortHand; - newOutcome: OutcomeShortHand; - payouts: OutcomeShortHand; - reasonString: string; - }) => { + async tc => { + let outcomeShortHand = tc.outcomeShortHand as OutcomeShortHand; + let heldBefore = tc.heldBefore as OutcomeShortHand; + let heldAfter = tc.heldAfter as OutcomeShortHand; + let newOutcome = tc.newOutcome as OutcomeShortHand; + let payouts = tc.payouts as OutcomeShortHand; + const reasonString = tc.reasonString as string | undefined; + const fixedPart: FixedPart = { participants, channelNonce, diff --git a/packages/nitro-protocol/test/contracts/NitroAdjudicator/transferAllAssets.test.ts b/packages/nitro-protocol/test/contracts/NitroAdjudicator/transferAllAssets.test.ts index c1f95eda9..f8c22448e 100644 --- a/packages/nitro-protocol/test/contracts/NitroAdjudicator/transferAllAssets.test.ts +++ b/packages/nitro-protocol/test/contracts/NitroAdjudicator/transferAllAssets.test.ts @@ -30,13 +30,13 @@ import {replaceAddressesAndBigNumberify} from '../../../src/helpers'; const testNitroAdjudicator = setupContract( getTestProvider(), TESTNitroAdjudicatorArtifact, - process.env.TEST_NITRO_ADJUDICATOR_ADDRESS + process.env.TEST_NITRO_ADJUDICATOR_ADDRESS || '' ) as unknown as TESTNitroAdjudicator & Contract; const token = setupContract( getTestProvider(), TokenArtifact, - process.env.TEST_TOKEN_ADDRESS + process.env.TEST_TOKEN_ADDRESS || '' ) as unknown as Token & Contract; const addresses = { @@ -66,33 +66,31 @@ const description = 'testNitroAdjudicator accepts a transferAllAssets tx for a finalized channel, and 2x Asset types transferred'; const channelNonce = getRandomNonce('transferAllAssets'); +type testParams = { + setOutcome: OutcomeShortHand; + heldBefore: OutcomeShortHand; + newOutcome: OutcomeShortHand; + heldAfter: OutcomeShortHand; + payouts: OutcomeShortHand; + reasonString: string | undefined; +}; describe('transferAllAssets', () => { it.each` description | setOutcome | heldBefore | newOutcome | heldAfter | payouts | reasonString ${description} | ${{ETH: {A: 1}, ERC20: {A: 2}}} | ${{ETH: {c: 1}, ERC20: {c: 2}}} | ${{}} | ${{ETH: {c: 0}, ERC20: {c: 0}}} | ${{ETH: {A: 1}, ERC20: {A: 2}}} | ${undefined} `( '$description', // For the purposes of this test, participants are fixed, making channelId 1-1 with channelNonce - async ({ - setOutcome, - heldBefore, - newOutcome, - heldAfter, - payouts, - reasonString, - }: { - setOutcome: OutcomeShortHand; - heldBefore: OutcomeShortHand; - newOutcome: OutcomeShortHand; - heldAfter: OutcomeShortHand; - payouts: OutcomeShortHand; - reasonString: string; - }) => { + async tc => { const channelId = getChannelId({ channelNonce, participants, appDefinition, challengeDuration, }); + + let {setOutcome, heldBefore, newOutcome, heldAfter, payouts} = tc as unknown as testParams; + const {reasonString} = tc as unknown as testParams; + addresses.c = channelId; // Transform input data (unpack addresses and BigNumberify amounts) diff --git a/packages/nitro-protocol/test/contracts/examples/HashLockedSwap/stateIsSupported.test.ts b/packages/nitro-protocol/test/contracts/examples/HashLockedSwap/stateIsSupported.test.ts index f4573ec76..c6c78a000 100644 --- a/packages/nitro-protocol/test/contracts/examples/HashLockedSwap/stateIsSupported.test.ts +++ b/packages/nitro-protocol/test/contracts/examples/HashLockedSwap/stateIsSupported.test.ts @@ -58,7 +58,11 @@ const challengeDuration = 0x100; const whoSignedWhat = [1, 0]; beforeAll(async () => { - hashTimeLock = setupContract(provider, HashLockedSwapArtifact, process.env.HASH_LOCK_ADDRESS); + hashTimeLock = setupContract( + provider, + HashLockedSwapArtifact, + process.env.HASH_LOCK_ADDRESS || '' + ); }); const preImage = '0xdeadbeef'; @@ -80,6 +84,15 @@ const incorrectPreImage: HashLockedSwapData = { h: HashZero, }; +type testParams = { + isValid: boolean; + dataA: HashLockedSwapData; + balancesA: AssetOutcomeShortHand; + turnNumB: number; + dataB: HashLockedSwapData; + balancesB: AssetOutcomeShortHand; +}; + describe('stateIsSupported', () => { let channelNonce = getRandomNonce('HashLockedSwap'); beforeEach(() => (channelNonce = BigNumber.from(channelNonce).add(1).toHexString())); @@ -87,99 +100,82 @@ describe('stateIsSupported', () => { isValid | dataA | balancesA | turnNumB | dataB | balancesB | description ${true} | ${conditionalPayment} | ${{Sender: 1, Receiver: 0}} | ${4} | ${correctPreImage} | ${{Sender: 0, Receiver: 1}} | ${'Receiver unlocks the conditional payment'} ${false} | ${conditionalPayment} | ${{Sender: 1, Receiver: 0}} | ${4} | ${incorrectPreImage} | ${{Sender: 0, Receiver: 1}} | ${'Receiver cannot unlock with incorrect preimage'} - `( - '$description', - async ({ - isValid, - dataA, - balancesA, - turnNumB, - dataB, - balancesB, - }: { - isValid: boolean; - dataA: HashLockedSwapData; - balancesA: AssetOutcomeShortHand; - turnNumB: number; - dataB: HashLockedSwapData; - balancesB: AssetOutcomeShortHand; - }) => { - const turnNumA = turnNumB - 1; - balancesA = replaceAddressesAndBigNumberify(balancesA, addresses) as AssetOutcomeShortHand; - const allocationsA: Allocation[] = []; - Object.keys(balancesA).forEach(key => - allocationsA.push({ - destination: key, - amount: balancesA[key].toString(), - allocationType: AllocationType.simple, - metadata: '0x', - }) - ); - const outcomeA: Outcome = [ - { - asset: ethers.constants.AddressZero, - allocations: allocationsA, - assetMetadata: {assetType: 0, metadata: '0x'}, - }, - ]; - balancesB = replaceAddressesAndBigNumberify(balancesB, addresses) as AssetOutcomeShortHand; - const allocationsB: Allocation[] = []; - Object.keys(balancesB).forEach(key => - allocationsB.push({ - destination: key, - amount: balancesB[key].toString(), - allocationType: AllocationType.simple, - metadata: '0x', - }) - ); - const outcomeB: Outcome = [ - { - asset: ethers.constants.AddressZero, - allocations: allocationsB, - assetMetadata: {assetType: 0, metadata: '0x'}, - }, - ]; - const states: State[] = [ - { - turnNum: turnNumA, - isFinal: false, - channelNonce, - participants, - challengeDuration, - outcome: outcomeA, - appData: encodeHashLockedSwapData(dataA), - appDefinition: hashTimeLock.address, - }, - { - turnNum: turnNumB, - isFinal: false, - channelNonce, - participants, - challengeDuration, - outcome: outcomeB, - appData: encodeHashLockedSwapData(dataB), - appDefinition: hashTimeLock.address, - }, - ]; - const fixedPart = getFixedPart(states[0]); - const variableParts = states.map(s => getVariablePart(s)); - - // Sign the states - const signatures = await signStates(states, wallets, whoSignedWhat); - const {proof, candidate} = separateProofAndCandidate( - bindSignaturesWithSignedByBitfield(variableParts, signatures, whoSignedWhat) - ); + `('$description', async tc => { + const {isValid, dataA, turnNumB, dataB} = tc as unknown as testParams; + let {balancesA, balancesB} = tc as unknown as testParams; + const turnNumA = turnNumB - 1; + balancesA = replaceAddressesAndBigNumberify(balancesA, addresses) as AssetOutcomeShortHand; + const allocationsA: Allocation[] = []; + Object.keys(balancesA).forEach(key => + allocationsA.push({ + destination: key, + amount: balancesA[key].toString(), + allocationType: AllocationType.simple, + metadata: '0x', + }) + ); + const outcomeA: Outcome = [ + { + asset: ethers.constants.AddressZero, + allocations: allocationsA, + assetMetadata: {assetType: 0, metadata: '0x'}, + }, + ]; + balancesB = replaceAddressesAndBigNumberify(balancesB, addresses) as AssetOutcomeShortHand; + const allocationsB: Allocation[] = []; + Object.keys(balancesB).forEach(key => + allocationsB.push({ + destination: key, + amount: balancesB[key].toString(), + allocationType: AllocationType.simple, + metadata: '0x', + }) + ); + const outcomeB: Outcome = [ + { + asset: ethers.constants.AddressZero, + allocations: allocationsB, + assetMetadata: {assetType: 0, metadata: '0x'}, + }, + ]; + const states: State[] = [ + { + turnNum: turnNumA, + isFinal: false, + channelNonce, + participants, + challengeDuration, + outcome: outcomeA, + appData: encodeHashLockedSwapData(dataA), + appDefinition: hashTimeLock.address, + }, + { + turnNum: turnNumB, + isFinal: false, + channelNonce, + participants, + challengeDuration, + outcome: outcomeB, + appData: encodeHashLockedSwapData(dataB), + appDefinition: hashTimeLock.address, + }, + ]; + const fixedPart = getFixedPart(states[0]); + const variableParts = states.map(s => getVariablePart(s)); + + // Sign the states + const signatures = await signStates(states, wallets, whoSignedWhat); + const {proof, candidate} = separateProofAndCandidate( + bindSignaturesWithSignedByBitfield(variableParts, signatures, whoSignedWhat) + ); - if (isValid) { - await expectSupportedState(() => - hashTimeLock.stateIsSupported(fixedPart, proof, candidate) - ); - } else { - await expectRevert( - () => hashTimeLock.stateIsSupported(fixedPart, proof, candidate), - 'incorrect preimage' - ); - } + if (isValid) { + await expectSupportedState(() => hashTimeLock.stateIsSupported(fixedPart, proof, candidate)); + } else { + await expectRevert( + () => hashTimeLock.stateIsSupported(fixedPart, proof, candidate), + 'incorrect preimage' + ); } - ); + }); }); diff --git a/packages/nitro-protocol/test/contracts/examples/SingleAssetPayments/stateIsSupported.test.ts b/packages/nitro-protocol/test/contracts/examples/SingleAssetPayments/stateIsSupported.test.ts index 14f8f2019..a5e37f973 100644 --- a/packages/nitro-protocol/test/contracts/examples/SingleAssetPayments/stateIsSupported.test.ts +++ b/packages/nitro-protocol/test/contracts/examples/SingleAssetPayments/stateIsSupported.test.ts @@ -47,7 +47,7 @@ beforeAll(async () => { singleAssetPayments = setupContract( provider, SingleAssetPaymentsArtifact, - process.env.SINGLE_ASSET_PAYMENTS_ADDRESS + process.env.SINGLE_ASSET_PAYMENTS_ADDRESS || '' ); }); @@ -70,17 +70,8 @@ describe('stateIsSupported', () => { ${[1, 1]} | ${[false, false]} | ${{A: 1, B: 1}} | ${[3, 4]} | ${{A: 0, B: 2}} | ${whoSignedWhatA} | ${reason2} | ${'Guarantee'} ${[1, 1]} | ${[true, true]} | ${{A: 1, B: 1}} | ${[3, 4]} | ${{A: 1, B: 2}} | ${whoSignedWhatA} | ${reason3} | ${'Total amounts increase'} ${[2, 2]} | ${[true, true]} | ${{A: 1, B: 1}} | ${[3, 4]} | ${{A: 2, B: 0}} | ${whoSignedWhatA} | ${reason4} | ${'More than one asset'} - `( - '$description', - async ({ - isAllocation, - numAssets, - balancesA, - turnNums, - balancesB, - whoSignedWhat, - reason, - }: { + `('$description', async tc => { + const {isAllocation, numAssets, turnNums, whoSignedWhat, reason} = tc as unknown as { isAllocation: boolean[]; numAssets: number[]; balancesA: AssetOutcomeShortHand; @@ -88,98 +79,98 @@ describe('stateIsSupported', () => { balancesB: AssetOutcomeShortHand; whoSignedWhat: number[]; reason?: string; - }) => { - balancesA = replaceAddressesAndBigNumberify(balancesA, addresses) as AssetOutcomeShortHand; - const allocationsA: Allocation[] = []; - Object.keys(balancesA).forEach(key => - allocationsA.push({ - destination: key, - amount: balancesA[key].toString(), - allocationType: isAllocation[0] ? AllocationType.simple : AllocationType.guarantee, - metadata: isAllocation[0] ? '0x' : encodeGuaranteeData(guaranteeData), - }) - ); - const outcomeA: Outcome = [ - { - asset: ethers.constants.AddressZero, - assetMetadata: {assetType: 0, metadata: '0x'}, - allocations: allocationsA, - }, - ]; - - if (numAssets[0] === 2) { - outcomeA.push(outcomeA[0]); - } - - balancesB = replaceAddressesAndBigNumberify(balancesB, addresses) as AssetOutcomeShortHand; - const allocationsB: Allocation[] = []; - - Object.keys(balancesB).forEach(key => - allocationsB.push({ - destination: key, - amount: balancesB[key].toString(), - allocationType: isAllocation[1] ? AllocationType.simple : AllocationType.guarantee, - metadata: isAllocation[1] ? '0x' : encodeGuaranteeData(guaranteeData), - }) - ); + }; + let balancesA = tc.balancesA as AssetOutcomeShortHand; + balancesA = replaceAddressesAndBigNumberify(balancesA, addresses) as AssetOutcomeShortHand; + const allocationsA: Allocation[] = []; + Object.keys(balancesA).forEach(key => + allocationsA.push({ + destination: key, + amount: balancesA[key].toString(), + allocationType: isAllocation[0] ? AllocationType.simple : AllocationType.guarantee, + metadata: isAllocation[0] ? '0x' : encodeGuaranteeData(guaranteeData), + }) + ); + const outcomeA: Outcome = [ + { + asset: ethers.constants.AddressZero, + assetMetadata: {assetType: 0, metadata: '0x'}, + allocations: allocationsA, + }, + ]; + + if (numAssets[0] === 2) { + outcomeA.push(outcomeA[0]); + } + let balancesB = tc.balancesB as AssetOutcomeShortHand; + balancesB = replaceAddressesAndBigNumberify(balancesB, addresses) as AssetOutcomeShortHand; + const allocationsB: Allocation[] = []; + + Object.keys(balancesB).forEach(key => + allocationsB.push({ + destination: key, + amount: balancesB[key].toString(), + allocationType: isAllocation[1] ? AllocationType.simple : AllocationType.guarantee, + metadata: isAllocation[1] ? '0x' : encodeGuaranteeData(guaranteeData), + }) + ); + + const outcomeB: Outcome = [ + { + asset: ethers.constants.AddressZero, + assetMetadata: {assetType: 0, metadata: '0x'}, + allocations: allocationsB, + }, + ]; + + if (numAssets[1] === 2) { + outcomeB.push(outcomeB[0]); + } - const outcomeB: Outcome = [ - { - asset: ethers.constants.AddressZero, - assetMetadata: {assetType: 0, metadata: '0x'}, - allocations: allocationsB, - }, - ]; - - if (numAssets[1] === 2) { - outcomeB.push(outcomeB[0]); - } - - const states: State[] = [ - { - turnNum: turnNums[0], - isFinal: false, - channelNonce, - participants, - challengeDuration, - outcome: outcomeA, - appData: HashZero, - appDefinition: singleAssetPayments.address, - }, - { - turnNum: turnNums[1], - isFinal: false, - channelNonce, - participants, - challengeDuration, - outcome: outcomeB, - appData: HashZero, - appDefinition: singleAssetPayments.address, - }, - ]; - const fixedPart = getFixedPart(states[0]); - const variableParts = states.map(s => getVariablePart(s)); - - // Sign the states - const signatures = await signStates(states, wallets, whoSignedWhat); - const recoveredVariableParts = bindSignaturesWithSignedByBitfield( - variableParts, - signatures, - whoSignedWhat + const states: State[] = [ + { + turnNum: turnNums[0], + isFinal: false, + channelNonce, + participants, + challengeDuration, + outcome: outcomeA, + appData: HashZero, + appDefinition: singleAssetPayments.address, + }, + { + turnNum: turnNums[1], + isFinal: false, + channelNonce, + participants, + challengeDuration, + outcome: outcomeB, + appData: HashZero, + appDefinition: singleAssetPayments.address, + }, + ]; + const fixedPart = getFixedPart(states[0]); + const variableParts = states.map(s => getVariablePart(s)); + + // Sign the states + const signatures = await signStates(states, wallets, whoSignedWhat); + const recoveredVariableParts = bindSignaturesWithSignedByBitfield( + variableParts, + signatures, + whoSignedWhat + ); + + const {proof, candidate} = separateProofAndCandidate(recoveredVariableParts); + + if (reason) { + await expectRevert( + () => singleAssetPayments.stateIsSupported(fixedPart, proof, candidate), + reason + ); + } else { + await expectSupportedState(() => + singleAssetPayments.stateIsSupported(fixedPart, proof, candidate) ); - - const {proof, candidate} = separateProofAndCandidate(recoveredVariableParts); - - if (reason) { - await expectRevert( - () => singleAssetPayments.stateIsSupported(fixedPart, proof, candidate), - reason - ); - } else { - await expectSupportedState(() => - singleAssetPayments.stateIsSupported(fixedPart, proof, candidate) - ); - } } - ); + }); }); diff --git a/packages/nitro-protocol/test/contracts/libraries/Consensus/Consensus.test.ts b/packages/nitro-protocol/test/contracts/libraries/Consensus/Consensus.test.ts index 6a93c7e94..87a40a57e 100644 --- a/packages/nitro-protocol/test/contracts/libraries/Consensus/Consensus.test.ts +++ b/packages/nitro-protocol/test/contracts/libraries/Consensus/Consensus.test.ts @@ -11,7 +11,6 @@ import { Outcome, shortenedToRecoveredVariableParts, State, - TurnNumToShortenedVariablePart, } from '../../../../src'; import { NOT_UNANIMOUS, @@ -36,7 +35,7 @@ beforeAll(async () => { Consensus = setupContract( provider, testConsensusArtifact, - process.env.TEST_CONSENSUS_ADDRESS + process.env.TEST_CONSENSUS_ADDRESS || '' ) as Contract & TESTConsensus; }); @@ -58,38 +57,29 @@ describe('requireConsensus', () => { ${reverts1} | ${new Map([[0, [0, 1]]])} | ${NOT_UNANIMOUS} ${reverts2} | ${new Map([[0, []]])} | ${NOT_UNANIMOUS} ${reverts3} | ${new Map([[0, [0]], [1, [0, 1, 2]]])} | ${PROOF_SUPPLIED} - `( - '$description', - async ({ - turnNumToShortenedVariablePart, - reason, - }: { - turnNumToShortenedVariablePart: TurnNumToShortenedVariablePart; - reason: undefined | string; - }) => { - const state: State = { - turnNum: 0, - isFinal: false, - participants, - channelNonce, - challengeDuration, - outcome: defaultOutcome, - appDefinition, - appData: '0x', - }; + `('$description', async ({turnNumToShortenedVariablePart, reason}: any) => { + const state: State = { + turnNum: 0, + isFinal: false, + participants, + channelNonce, + challengeDuration, + outcome: defaultOutcome, + appDefinition: appDefinition || '', + appData: '0x', + }; - const fixedPart = getFixedPart(state); + const fixedPart = getFixedPart(state); - const recoveredVP = shortenedToRecoveredVariableParts(turnNumToShortenedVariablePart); - const {proof, candidate} = separateProofAndCandidate(recoveredVP); + const recoveredVP = shortenedToRecoveredVariableParts(turnNumToShortenedVariablePart); + const {proof, candidate} = separateProofAndCandidate(recoveredVP); - if (reason) { - await expectRevert(() => Consensus.requireConsensus(fixedPart, proof, candidate)); - } else { - await expectSucceedWithNoReturnValues(() => - Consensus.requireConsensus(fixedPart, proof, candidate) - ); - } + if (reason) { + await expectRevert(() => Consensus.requireConsensus(fixedPart, proof, candidate)); + } else { + await expectSucceedWithNoReturnValues(() => + Consensus.requireConsensus(fixedPart, proof, candidate) + ); } - ); + }); }); diff --git a/packages/nitro-protocol/test/contracts/libraries/StrictTurnTaking/StrictTurnTaking.test.ts b/packages/nitro-protocol/test/contracts/libraries/StrictTurnTaking/StrictTurnTaking.test.ts index 54bdf1765..91527b08c 100644 --- a/packages/nitro-protocol/test/contracts/libraries/StrictTurnTaking/StrictTurnTaking.test.ts +++ b/packages/nitro-protocol/test/contracts/libraries/StrictTurnTaking/StrictTurnTaking.test.ts @@ -41,7 +41,7 @@ beforeAll(async () => { StrictTurnTaking = setupContract( provider, testStrictTurnTakingArtifact, - process.env.TEST_STRICT_TURN_TAKING_ADDRESS + process.env.TEST_STRICT_TURN_TAKING_ADDRESS || '' ) as Contract & TESTStrictTurnTaking; }); @@ -59,7 +59,13 @@ describe('isSignedByMover', () => { ${accepts1} | ${3} | ${[0]} | ${undefined} ${reverts1} | ${3} | ${[2]} | ${INVALID_SIGNED_BY} ${reverts2} | ${3} | ${[0, 1]} | ${INVALID_SIGNED_BY} - `('$description', async ({turnNum, signedBy, reason}) => { + `('$description', async tc => { + const {turnNum, signedBy, reason} = tc as unknown as { + turnNum: number; + signedBy: number[]; + reason: string | undefined; + }; + const state: State = { turnNum, isFinal: false, @@ -98,20 +104,16 @@ describe('moverAddress', () => { ${accepts1} | ${2} | ${2} ${accepts2} | ${3} | ${0} ${accepts2} | ${7} | ${1} - `( - '$description', - async ({ - turnNum, - expectedParticipantIdx, - }: { + `('$description', async tc => { + const {turnNum, expectedParticipantIdx} = tc as unknown as { turnNum: number; expectedParticipantIdx: number; - }) => { - expect(await StrictTurnTaking.moverAddress(participants, turnNum)).toEqual( - wallets[expectedParticipantIdx].address - ); - } - ); + }; + + expect(await StrictTurnTaking.moverAddress(participants, turnNum)).toEqual( + wallets[expectedParticipantIdx].address + ); + }); }); describe('requireValidInput', () => { @@ -130,30 +132,18 @@ describe('requireValidInput', () => { ${reverts2} | ${4} | ${1} | ${INVALID_NUMBER_OF_PROOF_STATES} ${reverts3} | ${2} | ${2} | ${INVALID_NUMBER_OF_PROOF_STATES} ${reverts4} | ${256} | ${255} | ${TOO_MANY_PARTICIPANTS} - `( - '$description', - async ({ - nParticipants, - numProof, - reason, - }: { - description: string; - nParticipants: number; - numProof: number; - reason: undefined | string; - }) => { - if (reason) { - await expectRevert( - () => StrictTurnTaking.requireValidInput(nParticipants, numProof), - reason - ); - } else { - await expectSucceedWithNoReturnValues(() => - StrictTurnTaking.requireValidInput(nParticipants, numProof) - ); - } + `('$description', async tc => { + const nParticipants = tc.nParticipants as number; + const numProof = tc.numProof as number; + const reason = tc.reason as undefined | string; + if (reason) { + await expectRevert(() => StrictTurnTaking.requireValidInput(nParticipants, numProof), reason); + } else { + await expectSucceedWithNoReturnValues(() => + StrictTurnTaking.requireValidInput(nParticipants, numProof) + ); } - ); + }); }); describe('requireValidTurnTaking', () => { @@ -177,40 +167,36 @@ describe('requireValidTurnTaking', () => { ${reverts4} | ${new Map([[0, [0]], [1, []], [2, [2]]])} | ${INVALID_SIGNED_BY} ${reverts5} | ${new Map([[0, [0]], [1, [2]], [2, [1]]])} | ${INVALID_SIGNED_BY} ${reverts6} | ${new Map([[0, [0]], [2, [1]], [3, [2]]])} | ${WRONG_TURN_NUM} - `( - '$description', - async ({ - turnNumToShortenedVariablePart, - reason, - }: { + `('$description', async tc => { + const {reason, turnNumToShortenedVariablePart} = tc as unknown as { + reason: string | undefined; turnNumToShortenedVariablePart: TurnNumToShortenedVariablePart; - reason: undefined | string; - }) => { - const state: State = { - turnNum: 0, - isFinal: false, - participants, - channelNonce, - challengeDuration, - outcome: defaultOutcome, - appDefinition, - appData: '0x', - }; - - const fixedPart = getFixedPart(state); - - const recoveredVP = shortenedToRecoveredVariableParts(turnNumToShortenedVariablePart); - const {proof, candidate} = separateProofAndCandidate(recoveredVP); - - if (reason) { - await expectRevert(() => - StrictTurnTaking.requireValidTurnTaking(fixedPart, proof, candidate) - ); - } else { - await expectSucceedWithNoReturnValues(() => - StrictTurnTaking.requireValidTurnTaking(fixedPart, proof, candidate) - ); - } + }; + + const state: State = { + turnNum: 0, + isFinal: false, + participants, + channelNonce, + challengeDuration, + outcome: defaultOutcome, + appDefinition, + appData: '0x', + }; + + const fixedPart = getFixedPart(state); + + const recoveredVP = shortenedToRecoveredVariableParts(turnNumToShortenedVariablePart); + const {proof, candidate} = separateProofAndCandidate(recoveredVP); + + if (reason) { + await expectRevert(() => + StrictTurnTaking.requireValidTurnTaking(fixedPart, proof, candidate) + ); + } else { + await expectSucceedWithNoReturnValues(() => + StrictTurnTaking.requireValidTurnTaking(fixedPart, proof, candidate) + ); } - ); + }); }); diff --git a/packages/nitro-protocol/test/src/contract/encode-guarantee.test.ts b/packages/nitro-protocol/test/src/contract/encode-guarantee.test.ts index c5502d765..13ec49668 100644 --- a/packages/nitro-protocol/test/src/contract/encode-guarantee.test.ts +++ b/packages/nitro-protocol/test/src/contract/encode-guarantee.test.ts @@ -1,4 +1,5 @@ import {it} from '@jest/globals'; +import {BytesLike} from 'ethers'; import {encodeGuaranteeData, decodeGuaranteeData, Guarantee} from '../../../src/contract/outcome'; @@ -14,7 +15,12 @@ describe('outcome', () => { it.each` description | encodeFunction | decodeFunction | data ${description0} | ${encodeGuaranteeData} | ${decodeGuaranteeData} | ${guarantee} - `('$description', ({encodeFunction, decodeFunction, data}) => { + `('$description', tc => { + const {encodeFunction, decodeFunction, data} = tc as { + encodeFunction: (g: Guarantee) => BytesLike; + decodeFunction: (b: BytesLike) => Guarantee; + data: Guarantee; + }; const encodedData = encodeFunction(data); const decodedData = decodeFunction(encodedData); expect(decodedData).toEqual(data); diff --git a/packages/nitro-protocol/test/src/contract/external-destination.test.ts b/packages/nitro-protocol/test/src/contract/external-destination.test.ts index 65cc96d9a..e36889231 100644 --- a/packages/nitro-protocol/test/src/contract/external-destination.test.ts +++ b/packages/nitro-protocol/test/src/contract/external-destination.test.ts @@ -8,7 +8,8 @@ describe('isExternalDestination', () => { ${'0x0'} | ${false} ${'0x0000000000000000000000002F0E2cB3c2c98E6AfB89A8c50cbEF0cB6B3DC35c'} | ${true} ${'0x0000000040000000000000002F0E2cB3c2c98E6AfB89A8c50cbEF0cB6B3DC35c'} | ${false} - `('$bytes32 -- $result', ({bytes32, result}) => { + `('$bytes32 -- $result', tc => { + const {bytes32, result} = tc as {bytes32: string; result: boolean}; expect(isExternalDestination(bytes32)).toBe(result); }); }); diff --git a/packages/nitro-protocol/test/test-helpers.ts b/packages/nitro-protocol/test/test-helpers.ts index 1ab1031ff..2603a6001 100644 --- a/packages/nitro-protocol/test/test-helpers.ts +++ b/packages/nitro-protocol/test/test-helpers.ts @@ -30,7 +30,7 @@ export function setupContract( } export function getCountingAppContractAddress(): string { - return process.env.COUNTING_APP_ADDRESS; + return process.env.COUNTING_APP_ADDRESS || ''; } export const nonParticipant = ethers.Wallet.createRandom(); diff --git a/packages/nitro-rpc-client/package.json b/packages/nitro-rpc-client/package.json index ae90ef792..0d1b8488c 100644 --- a/packages/nitro-rpc-client/package.json +++ b/packages/nitro-rpc-client/package.json @@ -30,7 +30,7 @@ }, "devDependencies": { "@types/ajv": "^1.0.0", - "@types/jest": "^29.5.1", + "@types/jest": "29.5.0", "@types/node": "^18.15.11", "@types/websocket": "^1.0.5", "@types/yargs": "^17.0.24", @@ -44,10 +44,10 @@ "eslint-plugin-node": "^11.1.0", "eslint-plugin-prettier": "^3.3.1", "eslint-plugin-storybook": "^0.6.11", - "jest": "^29.5.0", + "jest": "29.5.0", "prettier": "^2.2.1", "prettier-plugin-packagejson": "^2.2.18", - "ts-jest": "^29.1.0", + "ts-jest": "29.1.0", "typescript": "^4.6.3", "yargs": "^17.7.1" }, diff --git a/yarn.lock b/yarn.lock index 30da446b1..d5ca65556 100644 --- a/yarn.lock +++ b/yarn.lock @@ -51,16 +51,6 @@ __metadata: languageName: node linkType: hard -"@babel/code-frame@npm:^7.22.13": - version: 7.22.13 - resolution: "@babel/code-frame@npm:7.22.13" - dependencies: - "@babel/highlight": ^7.22.13 - chalk: ^2.4.2 - checksum: 22e342c8077c8b77eeb11f554ecca2ba14153f707b85294fcf6070b6f6150aae88a7b7436dd88d8c9289970585f3fe5b9b941c5aa3aa26a6d5a8ef3f292da058 - languageName: node - linkType: hard - "@babel/compat-data@npm:^7.17.7, @babel/compat-data@npm:^7.20.5, @babel/compat-data@npm:^7.21.5, @babel/compat-data@npm:^7.22.5, @babel/compat-data@npm:^7.22.6, @babel/compat-data@npm:^7.22.9": version: 7.22.9 resolution: "@babel/compat-data@npm:7.22.9" @@ -68,29 +58,6 @@ __metadata: languageName: node linkType: hard -"@babel/core@npm:^7.1.0, @babel/core@npm:^7.7.2, @babel/core@npm:^7.8.0": - version: 7.22.15 - resolution: "@babel/core@npm:7.22.15" - dependencies: - "@ampproject/remapping": ^2.2.0 - "@babel/code-frame": ^7.22.13 - "@babel/generator": ^7.22.15 - "@babel/helper-compilation-targets": ^7.22.15 - "@babel/helper-module-transforms": ^7.22.15 - "@babel/helpers": ^7.22.15 - "@babel/parser": ^7.22.15 - "@babel/template": ^7.22.15 - "@babel/traverse": ^7.22.15 - "@babel/types": ^7.22.15 - convert-source-map: ^1.7.0 - debug: ^4.1.0 - gensync: ^1.0.0-beta.2 - json5: ^2.2.3 - semver: ^6.3.1 - checksum: 80b3705f2f809f024ac065d73b9bcde991ac5789c38320e00890862200b1603b68035cba7b13ecd827479c7d9ea9b5998ac0a1b7fd28940bcf587fb1301e994a - languageName: node - linkType: hard - "@babel/core@npm:^7.11.6, @babel/core@npm:^7.12.10, @babel/core@npm:^7.12.3, @babel/core@npm:^7.13.16, @babel/core@npm:^7.20.12, @babel/core@npm:^7.20.2, @babel/core@npm:^7.22.5, @babel/core@npm:^7.7.5": version: 7.22.9 resolution: "@babel/core@npm:7.22.9" @@ -149,18 +116,6 @@ __metadata: languageName: node linkType: hard -"@babel/generator@npm:^7.22.15": - version: 7.22.15 - resolution: "@babel/generator@npm:7.22.15" - dependencies: - "@babel/types": ^7.22.15 - "@jridgewell/gen-mapping": ^0.3.2 - "@jridgewell/trace-mapping": ^0.3.17 - jsesc: ^2.5.1 - checksum: 5b2a3ccdc3634f6ea86e0a442722bcd430238369432d31f15b428a4ee8013c2f4f917b5b135bf4fc1d0a3e2f87f10fd4ce5d07955ecc2d3b9400a05c2a481374 - languageName: node - linkType: hard - "@babel/generator@npm:~7.21.1": version: 7.21.9 resolution: "@babel/generator@npm:7.21.9" @@ -206,19 +161,6 @@ __metadata: languageName: node linkType: hard -"@babel/helper-compilation-targets@npm:^7.22.15": - version: 7.22.15 - resolution: "@babel/helper-compilation-targets@npm:7.22.15" - dependencies: - "@babel/compat-data": ^7.22.9 - "@babel/helper-validator-option": ^7.22.15 - browserslist: ^4.21.9 - lru-cache: ^5.1.1 - semver: ^6.3.1 - checksum: ce85196769e091ae54dd39e4a80c2a9df1793da8588e335c383d536d54f06baf648d0a08fc873044f226398c4ded15c4ae9120ee18e7dfd7c639a68e3cdc9980 - languageName: node - linkType: hard - "@babel/helper-create-class-features-plugin@npm:^7.18.6, @babel/helper-create-class-features-plugin@npm:^7.21.0, @babel/helper-create-class-features-plugin@npm:^7.22.5, @babel/helper-create-class-features-plugin@npm:^7.22.9": version: 7.22.9 resolution: "@babel/helper-create-class-features-plugin@npm:7.22.9" @@ -326,15 +268,6 @@ __metadata: languageName: node linkType: hard -"@babel/helper-module-imports@npm:^7.22.15": - version: 7.22.15 - resolution: "@babel/helper-module-imports@npm:7.22.15" - dependencies: - "@babel/types": ^7.22.15 - checksum: ecd7e457df0a46f889228f943ef9b4a47d485d82e030676767e6a2fdcbdaa63594d8124d4b55fd160b41c201025aec01fc27580352b1c87a37c9c6f33d116702 - languageName: node - linkType: hard - "@babel/helper-module-transforms@npm:^7.21.5, @babel/helper-module-transforms@npm:^7.22.5, @babel/helper-module-transforms@npm:^7.22.9": version: 7.22.9 resolution: "@babel/helper-module-transforms@npm:7.22.9" @@ -350,21 +283,6 @@ __metadata: languageName: node linkType: hard -"@babel/helper-module-transforms@npm:^7.22.15": - version: 7.22.15 - resolution: "@babel/helper-module-transforms@npm:7.22.15" - dependencies: - "@babel/helper-environment-visitor": ^7.22.5 - "@babel/helper-module-imports": ^7.22.15 - "@babel/helper-simple-access": ^7.22.5 - "@babel/helper-split-export-declaration": ^7.22.6 - "@babel/helper-validator-identifier": ^7.22.15 - peerDependencies: - "@babel/core": ^7.0.0 - checksum: de571fa352331bb5d5d56e95239c2e5dd79a1454e5167f3d80820d4975ee95052f8198e9fc1310015c55a0407b7566f8ca9d86cf262046884847aa24f8139bca - languageName: node - linkType: hard - "@babel/helper-optimise-call-expression@npm:^7.22.5": version: 7.22.5 resolution: "@babel/helper-optimise-call-expression@npm:7.22.5" @@ -448,13 +366,6 @@ __metadata: languageName: node linkType: hard -"@babel/helper-validator-identifier@npm:^7.22.15": - version: 7.22.15 - resolution: "@babel/helper-validator-identifier@npm:7.22.15" - checksum: eb0bee4bda664c0959924bc1ad5611eacfce806f46612202dd164fef1df8fef1a11682a1e7615288987100e9fb304982b6e2a4ff07ffe842ab8765b95ed1118c - languageName: node - linkType: hard - "@babel/helper-validator-option@npm:^7.21.0, @babel/helper-validator-option@npm:^7.22.5": version: 7.22.5 resolution: "@babel/helper-validator-option@npm:7.22.5" @@ -462,13 +373,6 @@ __metadata: languageName: node linkType: hard -"@babel/helper-validator-option@npm:^7.22.15": - version: 7.22.15 - resolution: "@babel/helper-validator-option@npm:7.22.15" - checksum: 68da52b1e10002a543161494c4bc0f4d0398c8fdf361d5f7f4272e95c45d5b32d974896d44f6a0ea7378c9204988879d73613ca683e13bd1304e46d25ff67a8d - languageName: node - linkType: hard - "@babel/helper-wrap-function@npm:^7.22.9": version: 7.22.9 resolution: "@babel/helper-wrap-function@npm:7.22.9" @@ -491,18 +395,7 @@ __metadata: languageName: node linkType: hard -"@babel/helpers@npm:^7.22.15": - version: 7.22.15 - resolution: "@babel/helpers@npm:7.22.15" - dependencies: - "@babel/template": ^7.22.15 - "@babel/traverse": ^7.22.15 - "@babel/types": ^7.22.15 - checksum: 49f61a93cbae4df3328bda67af5db743fead659ae4242571226c3596b7df78546189cdf991fed1eca33b559de8abf396a90a001f474a1bab351418f07b7ae6ef - languageName: node - linkType: hard - -"@babel/highlight@npm:^7.10.4, @babel/highlight@npm:^7.22.13": +"@babel/highlight@npm:^7.10.4": version: 7.22.13 resolution: "@babel/highlight@npm:7.22.13" dependencies: @@ -533,15 +426,6 @@ __metadata: languageName: node linkType: hard -"@babel/parser@npm:^7.22.15": - version: 7.22.15 - resolution: "@babel/parser@npm:7.22.15" - bin: - parser: ./bin/babel-parser.js - checksum: 7431c1ab445cf2b6e8acb2d7acc60d9d7c25728c7649ae16732590834002786bea10b54ab1936ae0784b0e7d080efe9fd4bf17c4534b6eb36d09c75a85253ef9 - languageName: node - linkType: hard - "@babel/parser@npm:~7.21.2": version: 7.21.9 resolution: "@babel/parser@npm:7.21.9" @@ -1920,17 +1804,6 @@ __metadata: languageName: node linkType: hard -"@babel/template@npm:^7.22.15": - version: 7.22.15 - resolution: "@babel/template@npm:7.22.15" - dependencies: - "@babel/code-frame": ^7.22.13 - "@babel/parser": ^7.22.15 - "@babel/types": ^7.22.15 - checksum: 1f3e7dcd6c44f5904c184b3f7fe280394b191f2fed819919ffa1e529c259d5b197da8981b6ca491c235aee8dbad4a50b7e31304aa531271cb823a4a24a0dd8fd - languageName: node - linkType: hard - "@babel/traverse@npm:^7.1.6, @babel/traverse@npm:^7.21.5, @babel/traverse@npm:^7.22.6, @babel/traverse@npm:^7.22.8": version: 7.22.8 resolution: "@babel/traverse@npm:7.22.8" @@ -1949,24 +1822,6 @@ __metadata: languageName: node linkType: hard -"@babel/traverse@npm:^7.22.15, @babel/traverse@npm:^7.7.2": - version: 7.22.15 - resolution: "@babel/traverse@npm:7.22.15" - dependencies: - "@babel/code-frame": ^7.22.13 - "@babel/generator": ^7.22.15 - "@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.15 - "@babel/types": ^7.22.15 - debug: ^4.1.0 - globals: ^11.1.0 - checksum: 12aba7da6fd6109905d5086e1a9d1aea2cdbb0b80533d2d235d5dad2ff97f0315173c063023e601e96086dfeaaeb97f9d3cbaf38a10f04820e47e2848607cef4 - languageName: node - linkType: hard - "@babel/traverse@npm:~7.21.2": version: 7.21.5 resolution: "@babel/traverse@npm:7.21.5" @@ -1996,17 +1851,6 @@ __metadata: languageName: node linkType: hard -"@babel/types@npm:^7.22.15": - version: 7.22.15 - resolution: "@babel/types@npm:7.22.15" - dependencies: - "@babel/helper-string-parser": ^7.22.5 - "@babel/helper-validator-identifier": ^7.22.15 - to-fast-properties: ^2.0.0 - checksum: a2aa59746dc8500c358a3a9afca2adff49dbade009d616aa8308714485064f2218da04e1823f1243a4992f1424ec6d6719e76a7af9a0ac3647227dca3015eea4 - languageName: node - linkType: hard - "@babel/types@npm:~7.21.2": version: 7.21.5 resolution: "@babel/types@npm:7.21.5" @@ -3274,105 +3118,50 @@ __metadata: languageName: node linkType: hard -"@jest/console@npm:^27.5.1": - version: 27.5.1 - resolution: "@jest/console@npm:27.5.1" - dependencies: - "@jest/types": ^27.5.1 - "@types/node": "*" - chalk: ^4.0.0 - jest-message-util: ^27.5.1 - jest-util: ^27.5.1 - slash: ^3.0.0 - checksum: 7cb20f06a34b09734c0342685ec53aa4c401fe3757c13a9c58fce76b971a322eb884f6de1068ef96f746e5398e067371b89515a07c268d4440a867c87748a706 - languageName: node - linkType: hard - -"@jest/console@npm:^29.6.1": - version: 29.6.1 - resolution: "@jest/console@npm:29.6.1" - dependencies: - "@jest/types": ^29.6.1 - "@types/node": "*" - chalk: ^4.0.0 - jest-message-util: ^29.6.1 - jest-util: ^29.6.1 - slash: ^3.0.0 - checksum: d0ab23a00947bfb4bff8c0a7e5a7afd16519de16dde3fe7e77b9f13e794c6df7043ecf7fcdde66ac0d2b5fb3262e9cab3d92eaf61f89a12d3b8e3602e06a9902 - languageName: node - linkType: hard - -"@jest/core@npm:^27.5.1": - version: 27.5.1 - resolution: "@jest/core@npm:27.5.1" +"@jest/console@npm:^29.6.4": + version: 29.6.4 + resolution: "@jest/console@npm:29.6.4" dependencies: - "@jest/console": ^27.5.1 - "@jest/reporters": ^27.5.1 - "@jest/test-result": ^27.5.1 - "@jest/transform": ^27.5.1 - "@jest/types": ^27.5.1 + "@jest/types": ^29.6.3 "@types/node": "*" - ansi-escapes: ^4.2.1 chalk: ^4.0.0 - emittery: ^0.8.1 - exit: ^0.1.2 - graceful-fs: ^4.2.9 - jest-changed-files: ^27.5.1 - jest-config: ^27.5.1 - jest-haste-map: ^27.5.1 - jest-message-util: ^27.5.1 - jest-regex-util: ^27.5.1 - jest-resolve: ^27.5.1 - jest-resolve-dependencies: ^27.5.1 - jest-runner: ^27.5.1 - jest-runtime: ^27.5.1 - jest-snapshot: ^27.5.1 - jest-util: ^27.5.1 - jest-validate: ^27.5.1 - jest-watcher: ^27.5.1 - micromatch: ^4.0.4 - rimraf: ^3.0.0 + jest-message-util: ^29.6.3 + jest-util: ^29.6.3 slash: ^3.0.0 - strip-ansi: ^6.0.0 - peerDependencies: - node-notifier: ^8.0.1 || ^9.0.0 || ^10.0.0 - peerDependenciesMeta: - node-notifier: - optional: true - checksum: 904a94ad8f1b43cd6b48de3b0226659bff3696150ff8cf7680fc2faffdc8a115203bb9ab6e817c1f79f9d6a81f67953053cbc64d8a4604f2e0c42a04c28cf126 + checksum: 1caf061a39266b86e96ca13358401839e4d930742cbaa9e87e79d7ce170a83195e52e5b2d22eb5aa9a949219b61a163a81e337ec98b8323d88d79853051df96c languageName: node linkType: hard -"@jest/core@npm:^29.6.1": - version: 29.6.1 - resolution: "@jest/core@npm:29.6.1" +"@jest/core@npm:^29.5.0, @jest/core@npm:^29.6.4": + version: 29.6.4 + resolution: "@jest/core@npm:29.6.4" dependencies: - "@jest/console": ^29.6.1 - "@jest/reporters": ^29.6.1 - "@jest/test-result": ^29.6.1 - "@jest/transform": ^29.6.1 - "@jest/types": ^29.6.1 + "@jest/console": ^29.6.4 + "@jest/reporters": ^29.6.4 + "@jest/test-result": ^29.6.4 + "@jest/transform": ^29.6.4 + "@jest/types": ^29.6.3 "@types/node": "*" ansi-escapes: ^4.2.1 chalk: ^4.0.0 ci-info: ^3.2.0 exit: ^0.1.2 graceful-fs: ^4.2.9 - jest-changed-files: ^29.5.0 - jest-config: ^29.6.1 - jest-haste-map: ^29.6.1 - jest-message-util: ^29.6.1 - jest-regex-util: ^29.4.3 - jest-resolve: ^29.6.1 - jest-resolve-dependencies: ^29.6.1 - jest-runner: ^29.6.1 - jest-runtime: ^29.6.1 - jest-snapshot: ^29.6.1 - jest-util: ^29.6.1 - jest-validate: ^29.6.1 - jest-watcher: ^29.6.1 + jest-changed-files: ^29.6.3 + jest-config: ^29.6.4 + jest-haste-map: ^29.6.4 + jest-message-util: ^29.6.3 + jest-regex-util: ^29.6.3 + jest-resolve: ^29.6.4 + jest-resolve-dependencies: ^29.6.4 + jest-runner: ^29.6.4 + jest-runtime: ^29.6.4 + jest-snapshot: ^29.6.4 + jest-util: ^29.6.3 + jest-validate: ^29.6.3 + jest-watcher: ^29.6.4 micromatch: ^4.0.4 - pretty-format: ^29.6.1 + pretty-format: ^29.6.3 slash: ^3.0.0 strip-ansi: ^6.0.0 peerDependencies: @@ -3380,31 +3169,19 @@ __metadata: peerDependenciesMeta: node-notifier: optional: true - checksum: 736dcc90c6c58dd9e1d2da122103b851187719ce3b3d4167689c63e68252632cd817712955b52ddaa648eba9c6f98f86cd58677325f0db4185f76899c64d7dac - languageName: node - linkType: hard - -"@jest/environment@npm:^27.5.1": - version: 27.5.1 - resolution: "@jest/environment@npm:27.5.1" - dependencies: - "@jest/fake-timers": ^27.5.1 - "@jest/types": ^27.5.1 - "@types/node": "*" - jest-mock: ^27.5.1 - checksum: 2a9e18c35a015508dbec5b90b21c150230fa6c1c8cb8fabe029d46ee2ca4c40eb832fb636157da14c66590d0a4c8a2c053226b041f54a44507d6f6a89abefd66 + checksum: 0f36532c909775814cb7d4310d61881beaefdec6229ef0b7493c6191dfca20ae5222120846ea5ef8cdeaa8cef265aae9cea8989dcab572d8daea9afd14247c7a languageName: node linkType: hard -"@jest/environment@npm:^29.6.1": - version: 29.6.1 - resolution: "@jest/environment@npm:29.6.1" +"@jest/environment@npm:^29.6.4": + version: 29.6.4 + resolution: "@jest/environment@npm:29.6.4" dependencies: - "@jest/fake-timers": ^29.6.1 - "@jest/types": ^29.6.1 + "@jest/fake-timers": ^29.6.4 + "@jest/types": ^29.6.3 "@types/node": "*" - jest-mock: ^29.6.1 - checksum: fb671f91f27e7aa1ba04983ef87a83f0794a597aba0a57d08cbb1fcb484c2aedc2201e99f85fafe27aec9be78af6f2d1d7e6ea88267938992a1d0f9d4615f5b2 + jest-mock: ^29.6.3 + checksum: 810d8f1fc26d293acfc44927bcb78adc58ed4ea580a64c8d94aa6c67239dcb149186bf25b94ff28b79de15253e0c877ad8d330feac205f185f3517593168510c languageName: node linkType: hard @@ -3417,114 +3194,60 @@ __metadata: languageName: node linkType: hard -"@jest/expect@npm:^29.6.1": - version: 29.6.1 - resolution: "@jest/expect@npm:29.6.1" +"@jest/expect-utils@npm:^29.6.4": + version: 29.6.4 + resolution: "@jest/expect-utils@npm:29.6.4" dependencies: - expect: ^29.6.1 - jest-snapshot: ^29.6.1 - checksum: 5c56977b3cc8489744d97d9dc2dcb196c1dfecc83a058a7ef0fd4f63d68cf120a23d27669272d1e1b184fb4337b85e4ac1fc7f886e3988fdf243d42d73973eac + jest-get-type: ^29.6.3 + checksum: a17059e02a4c0fca98e2abb7e9e58c70df3cd3d4ebcc6a960cb57c571726f7bd738c6cd008a9bf99770b77e92f7e21c75fe1f9ceec9b7a7710010f9340bb28ad languageName: node linkType: hard -"@jest/fake-timers@npm:^27.5.1": - version: 27.5.1 - resolution: "@jest/fake-timers@npm:27.5.1" +"@jest/expect@npm:^29.6.4": + version: 29.6.4 + resolution: "@jest/expect@npm:29.6.4" dependencies: - "@jest/types": ^27.5.1 - "@sinonjs/fake-timers": ^8.0.1 - "@types/node": "*" - jest-message-util: ^27.5.1 - jest-mock: ^27.5.1 - jest-util: ^27.5.1 - checksum: 02a0561ed2f4586093facd4ae500b74694f187ac24d4a00e949a39a1c5325bca8932b4fcb0388a2c5ed0656506fc1cf51fd3e32cdd48cea7497ad9c6e028aba8 + expect: ^29.6.4 + jest-snapshot: ^29.6.4 + checksum: e9d7306a96e2f9f9f7a0d93d41850cbad987ebda951a5d9a63d3f5fb61da4c1e41adb54af7f7222e4a185454ecb17ddc77845e18001ee28ac114f7a7fe9e671d languageName: node linkType: hard -"@jest/fake-timers@npm:^29.6.1": - version: 29.6.1 - resolution: "@jest/fake-timers@npm:29.6.1" +"@jest/fake-timers@npm:^29.6.4": + version: 29.6.4 + resolution: "@jest/fake-timers@npm:29.6.4" dependencies: - "@jest/types": ^29.6.1 + "@jest/types": ^29.6.3 "@sinonjs/fake-timers": ^10.0.2 "@types/node": "*" - jest-message-util: ^29.6.1 - jest-mock: ^29.6.1 - jest-util: ^29.6.1 - checksum: 86991276944b7d6c2ada3703a272517f5f8f2f4e2af1fe26065f6db1dac4dc6299729a88c46bcb781dcc1b20504c1d4bbd8119fd8a0838ac81a9a4b5d2c8e429 - languageName: node - linkType: hard - -"@jest/globals@npm:^27.5.1": - version: 27.5.1 - resolution: "@jest/globals@npm:27.5.1" - dependencies: - "@jest/environment": ^27.5.1 - "@jest/types": ^27.5.1 - expect: ^27.5.1 - checksum: 087f97047e9dcf555f76fe2ce54aee681e005eaa837a0c0c2d251df6b6412c892c9df54cb871b180342114389a5ff895a4e52e6e6d3d0015bf83c02a54f64c3c - languageName: node - linkType: hard - -"@jest/globals@npm:^29.6.1": - version: 29.6.1 - resolution: "@jest/globals@npm:29.6.1" - dependencies: - "@jest/environment": ^29.6.1 - "@jest/expect": ^29.6.1 - "@jest/types": ^29.6.1 - jest-mock: ^29.6.1 - checksum: fcca0b970a8b4894a1cdff0f500a86b45609e72c0a4319875e9504237b839df1a46c44d2f1362c6d87fdc7a05928edcc4b5a3751c9e6648dd70a761cdab64c94 + jest-message-util: ^29.6.3 + jest-mock: ^29.6.3 + jest-util: ^29.6.3 + checksum: 3f06d1090cbaaf781920fe59b10509ad86b587c401818a066ee1550101c6203e0718f0f83bbd2afa8bdf7b43eb280f89fb9f8c98886094e53ccabe5e64de9be1 languageName: node linkType: hard -"@jest/reporters@npm:^27.5.1": - version: 27.5.1 - resolution: "@jest/reporters@npm:27.5.1" +"@jest/globals@npm:^29.6.4": + version: 29.6.4 + resolution: "@jest/globals@npm:29.6.4" dependencies: - "@bcoe/v8-coverage": ^0.2.3 - "@jest/console": ^27.5.1 - "@jest/test-result": ^27.5.1 - "@jest/transform": ^27.5.1 - "@jest/types": ^27.5.1 - "@types/node": "*" - chalk: ^4.0.0 - collect-v8-coverage: ^1.0.0 - exit: ^0.1.2 - glob: ^7.1.2 - graceful-fs: ^4.2.9 - istanbul-lib-coverage: ^3.0.0 - istanbul-lib-instrument: ^5.1.0 - istanbul-lib-report: ^3.0.0 - istanbul-lib-source-maps: ^4.0.0 - istanbul-reports: ^3.1.3 - jest-haste-map: ^27.5.1 - jest-resolve: ^27.5.1 - jest-util: ^27.5.1 - jest-worker: ^27.5.1 - slash: ^3.0.0 - source-map: ^0.6.0 - string-length: ^4.0.1 - terminal-link: ^2.0.0 - v8-to-istanbul: ^8.1.0 - peerDependencies: - node-notifier: ^8.0.1 || ^9.0.0 || ^10.0.0 - peerDependenciesMeta: - node-notifier: - optional: true - checksum: faba5eafb86e62b62e152cafc8812d56308f9d1e8b77f3a7dcae4a8803a20a60a0909cc43ed73363ef649bf558e4fb181c7a336d144c89f7998279d1882bb69e + "@jest/environment": ^29.6.4 + "@jest/expect": ^29.6.4 + "@jest/types": ^29.6.3 + jest-mock: ^29.6.3 + checksum: a41b18871a248151264668a38b13cb305f03db112bfd89ec44e858af0e79066e0b03d6b68c8baf1ec6c578be6fdb87519389c83438608b91471d17a5724858e0 languageName: node linkType: hard -"@jest/reporters@npm:^29.6.1": - version: 29.6.1 - resolution: "@jest/reporters@npm:29.6.1" +"@jest/reporters@npm:^29.6.4": + version: 29.6.4 + resolution: "@jest/reporters@npm:29.6.4" dependencies: "@bcoe/v8-coverage": ^0.2.3 - "@jest/console": ^29.6.1 - "@jest/test-result": ^29.6.1 - "@jest/transform": ^29.6.1 - "@jest/types": ^29.6.1 + "@jest/console": ^29.6.4 + "@jest/test-result": ^29.6.4 + "@jest/transform": ^29.6.4 + "@jest/types": ^29.6.3 "@jridgewell/trace-mapping": ^0.3.18 "@types/node": "*" chalk: ^4.0.0 @@ -3533,13 +3256,13 @@ __metadata: glob: ^7.1.3 graceful-fs: ^4.2.9 istanbul-lib-coverage: ^3.0.0 - istanbul-lib-instrument: ^5.1.0 + istanbul-lib-instrument: ^6.0.0 istanbul-lib-report: ^3.0.0 istanbul-lib-source-maps: ^4.0.0 istanbul-reports: ^3.1.3 - jest-message-util: ^29.6.1 - jest-util: ^29.6.1 - jest-worker: ^29.6.1 + jest-message-util: ^29.6.3 + jest-util: ^29.6.3 + jest-worker: ^29.6.4 slash: ^3.0.0 string-length: ^4.0.1 strip-ansi: ^6.0.0 @@ -3549,7 +3272,7 @@ __metadata: peerDependenciesMeta: node-notifier: optional: true - checksum: b7dae415f3f6342b4db2671261bbee29af20a829f42135316c3dd548b9ef85290c9bb64a0e3aec4a55486596be1257ac8216a0f8d9794acd43f8b8fb686fc7e3 + checksum: 9ee0db497f3a826f535d3af0575ceb67984f9708bc6386450359517c212c67218ae98b8ea93ab05df2f920aed9c4166ef64209d66a09b7e30fc0077c91347ad0 languageName: node linkType: hard @@ -3562,119 +3285,93 @@ __metadata: languageName: node linkType: hard -"@jest/source-map@npm:^27.5.1": - version: 27.5.1 - resolution: "@jest/source-map@npm:27.5.1" +"@jest/schemas@npm:^29.6.3": + version: 29.6.3 + resolution: "@jest/schemas@npm:29.6.3" dependencies: - callsites: ^3.0.0 - graceful-fs: ^4.2.9 - source-map: ^0.6.0 - checksum: 4fb1e743b602841babf7e22bd84eca34676cb05d4eb3b604cae57fc59e406099f5ac759ac1a0d04d901237d143f0f4f234417306e823bde732a1d19982230862 + "@sinclair/typebox": ^0.27.8 + checksum: 910040425f0fc93cd13e68c750b7885590b8839066dfa0cd78e7def07bbb708ad869381f725945d66f2284de5663bbecf63e8fdd856e2ae6e261ba30b1687e93 languageName: node linkType: hard -"@jest/source-map@npm:^29.6.0": - version: 29.6.0 - resolution: "@jest/source-map@npm:29.6.0" +"@jest/source-map@npm:^29.6.3": + version: 29.6.3 + resolution: "@jest/source-map@npm:29.6.3" dependencies: "@jridgewell/trace-mapping": ^0.3.18 callsites: ^3.0.0 graceful-fs: ^4.2.9 - checksum: 9c6c40387410bb70b2fae8124287fc28f6bdd1b2d7f24348e8611e1bb638b404518228a4ce64a582365b589c536ae8e7ebab0126cef59a87874b71061d19783b - languageName: node - linkType: hard - -"@jest/test-result@npm:^27.5.1": - version: 27.5.1 - resolution: "@jest/test-result@npm:27.5.1" - dependencies: - "@jest/console": ^27.5.1 - "@jest/types": ^27.5.1 - "@types/istanbul-lib-coverage": ^2.0.0 - collect-v8-coverage: ^1.0.0 - checksum: 338f7c509d6a3bc6d7dd7388c8f6f548b87638e171dc1fddfedcacb4e8950583288832223ba688058cbcf874b937d22bdc0fa88f79f5fc666f77957e465c06a5 + checksum: bcc5a8697d471396c0003b0bfa09722c3cd879ad697eb9c431e6164e2ea7008238a01a07193dfe3cbb48b1d258eb7251f6efcea36f64e1ebc464ea3c03ae2deb languageName: node linkType: hard -"@jest/test-result@npm:^29.6.1": - version: 29.6.1 - resolution: "@jest/test-result@npm:29.6.1" +"@jest/test-result@npm:^29.6.4": + version: 29.6.4 + resolution: "@jest/test-result@npm:29.6.4" dependencies: - "@jest/console": ^29.6.1 - "@jest/types": ^29.6.1 + "@jest/console": ^29.6.4 + "@jest/types": ^29.6.3 "@types/istanbul-lib-coverage": ^2.0.0 collect-v8-coverage: ^1.0.0 - checksum: 9397a3a3410c5df564e79297b1be4fe33807a6157a017a1f74b54a6ef14de1530f12b922299e822e66a82c53269da16661772bffde3d883a78c5eefd2cd6d1cc - languageName: node - linkType: hard - -"@jest/test-sequencer@npm:^27.5.1": - version: 27.5.1 - resolution: "@jest/test-sequencer@npm:27.5.1" - dependencies: - "@jest/test-result": ^27.5.1 - graceful-fs: ^4.2.9 - jest-haste-map: ^27.5.1 - jest-runtime: ^27.5.1 - checksum: f21f9c8bb746847f7f89accfd29d6046eec1446f0b54e4694444feaa4df379791f76ef0f5a4360aafcbc73b50bc979f68b8a7620de404019d3de166be6720cb0 + checksum: a13c82d29038e80059191a1a443240678c6934ea832fdabaec12b3ece397b6303022a064494a6bbd167a024f04e6b4d9ace1001300927ff70405ec9d854f1193 languageName: node linkType: hard -"@jest/test-sequencer@npm:^29.6.1": - version: 29.6.1 - resolution: "@jest/test-sequencer@npm:29.6.1" +"@jest/test-sequencer@npm:^29.6.4": + version: 29.6.4 + resolution: "@jest/test-sequencer@npm:29.6.4" dependencies: - "@jest/test-result": ^29.6.1 + "@jest/test-result": ^29.6.4 graceful-fs: ^4.2.9 - jest-haste-map: ^29.6.1 + jest-haste-map: ^29.6.4 slash: ^3.0.0 - checksum: f3437178b5dca0401ed2e990d8b69161442351856d56f5725e009a487f5232b51039f8829673884b9bea61c861120d08a53a36432f4a4b8aab38915a68f7000d + checksum: 517fc66b74a87431a8a1429e4505d85bd09c11f2ba835e46c07c79911fbee23b89c01ec444c7c1d12d1b36f9eba60fcbbccc8e1bc1ae54a1a8b03b5f530ff81b languageName: node linkType: hard -"@jest/transform@npm:^27.5.1": - version: 27.5.1 - resolution: "@jest/transform@npm:27.5.1" +"@jest/transform@npm:^29.3.1": + version: 29.6.1 + resolution: "@jest/transform@npm:29.6.1" dependencies: - "@babel/core": ^7.1.0 - "@jest/types": ^27.5.1 + "@babel/core": ^7.11.6 + "@jest/types": ^29.6.1 + "@jridgewell/trace-mapping": ^0.3.18 babel-plugin-istanbul: ^6.1.1 chalk: ^4.0.0 - convert-source-map: ^1.4.0 - fast-json-stable-stringify: ^2.0.0 + convert-source-map: ^2.0.0 + fast-json-stable-stringify: ^2.1.0 graceful-fs: ^4.2.9 - jest-haste-map: ^27.5.1 - jest-regex-util: ^27.5.1 - jest-util: ^27.5.1 + jest-haste-map: ^29.6.1 + jest-regex-util: ^29.4.3 + jest-util: ^29.6.1 micromatch: ^4.0.4 pirates: ^4.0.4 slash: ^3.0.0 - source-map: ^0.6.1 - write-file-atomic: ^3.0.0 - checksum: a22079121aedea0f20a03a9c026be971f7b92adbfb4d5fd1fb67be315741deac4f056936d7c72a53b24aa5a1071bc942c003925fd453bf3f6a0ae5da6384e137 + write-file-atomic: ^4.0.2 + checksum: 1635cd66e4b3dbba0689ecefabc6137301756c9c12d1d23e25124dd0dd9b4a6a38653d51e825e90f74faa022152ac1eaf200591fb50417aa7e1f7d1d1c2bc11d languageName: node linkType: hard -"@jest/transform@npm:^29.3.1, @jest/transform@npm:^29.6.1": - version: 29.6.1 - resolution: "@jest/transform@npm:29.6.1" +"@jest/transform@npm:^29.6.4": + version: 29.6.4 + resolution: "@jest/transform@npm:29.6.4" dependencies: "@babel/core": ^7.11.6 - "@jest/types": ^29.6.1 + "@jest/types": ^29.6.3 "@jridgewell/trace-mapping": ^0.3.18 babel-plugin-istanbul: ^6.1.1 chalk: ^4.0.0 convert-source-map: ^2.0.0 fast-json-stable-stringify: ^2.1.0 graceful-fs: ^4.2.9 - jest-haste-map: ^29.6.1 - jest-regex-util: ^29.4.3 - jest-util: ^29.6.1 + jest-haste-map: ^29.6.4 + jest-regex-util: ^29.6.3 + jest-util: ^29.6.3 micromatch: ^4.0.4 pirates: ^4.0.4 slash: ^3.0.0 write-file-atomic: ^4.0.2 - checksum: 1635cd66e4b3dbba0689ecefabc6137301756c9c12d1d23e25124dd0dd9b4a6a38653d51e825e90f74faa022152ac1eaf200591fb50417aa7e1f7d1d1c2bc11d + checksum: 0341a200a0bb926fc67ab9aede91c7b4009458206495e92057e72a115c55da5fed117457e68c6ea821e24c58b55da75c6a7b0f272ed63c2693db583d689a3383 languageName: node linkType: hard @@ -3691,6 +3388,20 @@ __metadata: languageName: node linkType: hard +"@jest/types@npm:^29.5.0, @jest/types@npm:^29.6.3": + version: 29.6.3 + resolution: "@jest/types@npm:29.6.3" + dependencies: + "@jest/schemas": ^29.6.3 + "@types/istanbul-lib-coverage": ^2.0.0 + "@types/istanbul-reports": ^3.0.0 + "@types/node": "*" + "@types/yargs": ^17.0.8 + chalk: ^4.0.0 + checksum: a0bcf15dbb0eca6bdd8ce61a3fb055349d40268622a7670a3b2eb3c3dbafe9eb26af59938366d520b86907b9505b0f9b29b85cec11579a9e580694b87cd90fcc + languageName: node + linkType: hard + "@jest/types@npm:^29.6.1": version: 29.6.1 resolution: "@jest/types@npm:29.6.1" @@ -4696,15 +4407,6 @@ __metadata: languageName: node linkType: hard -"@sinonjs/commons@npm:^1.7.0": - version: 1.8.6 - resolution: "@sinonjs/commons@npm:1.8.6" - dependencies: - type-detect: 4.0.8 - checksum: 7d3f8c1e85f30cd4e83594fc19b7a657f14d49eb8d95a30095631ce15e906c869e0eff96c5b93dffea7490c00418b07f54582ba49c6560feb2a8c34c0b16832d - languageName: node - linkType: hard - "@sinonjs/commons@npm:^3.0.0": version: 3.0.0 resolution: "@sinonjs/commons@npm:3.0.0" @@ -4723,15 +4425,6 @@ __metadata: languageName: node linkType: hard -"@sinonjs/fake-timers@npm:^8.0.1": - version: 8.1.0 - resolution: "@sinonjs/fake-timers@npm:8.1.0" - dependencies: - "@sinonjs/commons": ^1.7.0 - checksum: 09b5a158ce013a6c37613258bad79ca4efeb99b1f59c41c73cca36cac00b258aefcf46eeea970fccf06b989414d86fe9f54c1102272c0c3bdd51a313cea80949 - languageName: node - linkType: hard - "@solidity-parser/parser@npm:^0.14.0": version: 0.14.5 resolution: "@solidity-parser/parser@npm:0.14.5" @@ -4799,7 +4492,7 @@ __metadata: "@statechannels/exit-format": ^0.2.0 "@typechain/ethers-v5": ^9.0.0 "@typechain/hardhat": ^4.0.0 - "@types/jest": ^27.4.1 + "@types/jest": 29.5.0 "@types/lodash.isequal": ^4.5.5 "@types/lodash.shuffle": ^4.2.6 "@types/mocha": ^9.1.0 @@ -4821,14 +4514,14 @@ __metadata: hardhat-deploy-ethers: ^0.3.0-beta.13 hardhat-gas-reporter: ^1.0.7 hardhat-watcher: ^2.3.0 - jest: ^27.5.1 + jest: 29.5.0 lodash.isequal: ^4.5.0 lodash.shuffle: ^4.2.0 prettier: ^2.6.2 prettier-plugin-solidity: ^1.0.0-beta.19 solhint: ^3.3.7 solidity-coverage: ^0.8.4 - ts-jest: ^27.1.3 + ts-jest: 29.1.0 ts-node: ^10.4.0 typechain: ^8.0.0 typescript: ^4.6.3 @@ -4842,7 +4535,7 @@ __metadata: dependencies: "@statechannels/exit-format": ^0.2.0 "@types/ajv": ^1.0.0 - "@types/jest": ^29.5.1 + "@types/jest": 29.5.0 "@types/node": ^18.15.11 "@types/websocket": ^1.0.5 "@types/yargs": ^17.0.24 @@ -4859,12 +4552,12 @@ __metadata: eslint-plugin-prettier: ^3.3.1 eslint-plugin-storybook: ^0.6.11 eventemitter3: ^5.0.0 - jest: ^29.5.0 + jest: 29.5.0 json-rpc-2.0: ^1.5.1 nats: ^2.13.1 prettier: ^2.2.1 prettier-plugin-packagejson: ^2.2.18 - ts-jest: ^29.1.0 + ts-jest: 29.1.0 ts-node: ^10.9.1 typescript: ^4.6.3 websocket: ^1.0.34 @@ -6022,13 +5715,6 @@ __metadata: languageName: node linkType: hard -"@tootallnate/once@npm:1": - version: 1.1.2 - resolution: "@tootallnate/once@npm:1.1.2" - checksum: e1fb1bbbc12089a0cb9433dc290f97bddd062deadb6178ce9bcb93bb7c1aecde5e60184bc7065aec42fe1663622a213493c48bbd4972d931aae48315f18e1be9 - languageName: node - linkType: hard - "@tootallnate/once@npm:2": version: 2.0.0 resolution: "@tootallnate/once@npm:2.0.0" @@ -6154,7 +5840,7 @@ __metadata: languageName: node linkType: hard -"@types/babel__traverse@npm:*, @types/babel__traverse@npm:^7.0.4, @types/babel__traverse@npm:^7.0.6": +"@types/babel__traverse@npm:*, @types/babel__traverse@npm:^7.0.6": version: 7.20.1 resolution: "@types/babel__traverse@npm:7.20.1" dependencies: @@ -6332,7 +6018,7 @@ __metadata: languageName: node linkType: hard -"@types/graceful-fs@npm:^4.1.2, @types/graceful-fs@npm:^4.1.3": +"@types/graceful-fs@npm:^4.1.3": version: 4.1.6 resolution: "@types/graceful-fs@npm:4.1.6" dependencies: @@ -6380,13 +6066,13 @@ __metadata: languageName: node linkType: hard -"@types/jest@npm:^27.4.1": - version: 27.5.2 - resolution: "@types/jest@npm:27.5.2" +"@types/jest@npm:29.5.0": + version: 29.5.0 + resolution: "@types/jest@npm:29.5.0" dependencies: - jest-matcher-utils: ^27.0.0 - pretty-format: ^27.0.0 - checksum: 7e11c6826aa429ad990dc262e4e4b54aa36573287fddf15773e4137f07d11d3105f0dd9f1baff73252160a057df23f5529bb83b1bf83cd3f45f9460a5ca5c22e + expect: ^29.0.0 + pretty-format: ^29.0.0 + checksum: cd877e5c56d299cceb8bfdcbb1a77723c706750dd3c3bc47403bc3599b8faff590a3b009c68bb5b11bf7a8c77d1fb01de5e124329b4a08e65f1cdda28b0ecdb8 languageName: node linkType: hard @@ -6616,7 +6302,7 @@ __metadata: languageName: node linkType: hard -"@types/prettier@npm:^2.1.1, @types/prettier@npm:^2.1.5": +"@types/prettier@npm:^2.1.1": version: 2.7.3 resolution: "@types/prettier@npm:2.7.3" checksum: 705384209cea6d1433ff6c187c80dcc0b95d99d5c5ce21a46a9a58060c527973506822e428789d842761e0280d25e3359300f017fbe77b9755bc772ab3dc2f83 @@ -7034,13 +6720,6 @@ __metadata: languageName: node linkType: hard -"abab@npm:^2.0.3, abab@npm:^2.0.5": - version: 2.0.6 - resolution: "abab@npm:2.0.6" - checksum: 6ffc1af4ff315066c62600123990d87551ceb0aafa01e6539da77b0f5987ac7019466780bf480f1787576d4385e3690c81ccc37cfda12819bf510b8ab47e5a3e - languageName: node - linkType: hard - "abbrev@npm:1, abbrev@npm:^1.0.0": version: 1.1.1 resolution: "abbrev@npm:1.1.1" @@ -7116,16 +6795,6 @@ __metadata: languageName: node linkType: hard -"acorn-globals@npm:^6.0.0": - version: 6.0.0 - resolution: "acorn-globals@npm:6.0.0" - dependencies: - acorn: ^7.1.1 - acorn-walk: ^7.1.1 - checksum: 72d95e5b5e585f9acd019b993ab8bbba68bb3cbc9d9b5c1ebb3c2f1fe5981f11deababfb4949f48e6262f9c57878837f5958c0cca396f81023814680ca878042 - languageName: node - linkType: hard - "acorn-jsx@npm:^5.3.1, acorn-jsx@npm:^5.3.2": version: 5.3.2 resolution: "acorn-jsx@npm:5.3.2" @@ -7135,7 +6804,7 @@ __metadata: languageName: node linkType: hard -"acorn-walk@npm:^7.1.1, acorn-walk@npm:^7.2.0": +"acorn-walk@npm:^7.2.0": version: 7.2.0 resolution: "acorn-walk@npm:7.2.0" checksum: 9252158a79b9d92f1bc0dd6acc0fcfb87a67339e84bcc301bb33d6078936d27e35d606b4d35626d2962cd43c256d6f27717e70cbe15c04fff999ab0b2260b21f @@ -7149,7 +6818,7 @@ __metadata: languageName: node linkType: hard -"acorn@npm:^7.1.1, acorn@npm:^7.4.0, acorn@npm:^7.4.1": +"acorn@npm:^7.4.0, acorn@npm:^7.4.1": version: 7.4.1 resolution: "acorn@npm:7.4.1" bin: @@ -7158,7 +6827,7 @@ __metadata: languageName: node linkType: hard -"acorn@npm:^8.2.4, acorn@npm:^8.4.1, acorn@npm:^8.8.0, acorn@npm:^8.9.0": +"acorn@npm:^8.4.1, acorn@npm:^8.8.0, acorn@npm:^8.9.0": version: 8.10.0 resolution: "acorn@npm:8.10.0" bin: @@ -8067,38 +7736,20 @@ __metadata: languageName: node linkType: hard -"babel-jest@npm:^27.5.1": - version: 27.5.1 - resolution: "babel-jest@npm:27.5.1" - dependencies: - "@jest/transform": ^27.5.1 - "@jest/types": ^27.5.1 - "@types/babel__core": ^7.1.14 - babel-plugin-istanbul: ^6.1.1 - babel-preset-jest: ^27.5.1 - chalk: ^4.0.0 - graceful-fs: ^4.2.9 - slash: ^3.0.0 - peerDependencies: - "@babel/core": ^7.8.0 - checksum: 4e93e6e9fb996cc5f1505e924eb8e8cc7b25c294ba9629762a2715390f48af6a4c14dbb84cd9730013ac0e03267a5a9aa2fb6318c544489cda7f50f4e506def4 - languageName: node - linkType: hard - -"babel-jest@npm:^29.6.1": - version: 29.6.1 - resolution: "babel-jest@npm:29.6.1" +"babel-jest@npm:^29.6.4": + version: 29.6.4 + resolution: "babel-jest@npm:29.6.4" dependencies: - "@jest/transform": ^29.6.1 + "@jest/transform": ^29.6.4 "@types/babel__core": ^7.1.14 babel-plugin-istanbul: ^6.1.1 - babel-preset-jest: ^29.5.0 + babel-preset-jest: ^29.6.3 chalk: ^4.0.0 graceful-fs: ^4.2.9 slash: ^3.0.0 peerDependencies: "@babel/core": ^7.8.0 - checksum: bc46cfba468edde91f34a8292501d4448a39fab72d80d7d95f4349feb114fa21becb01def007d6166de7933ab9633bf5b5e1b72ba6ffeaa991f7abf014a2f61d + checksum: c574f1805ab6b51a7d0f5a028aad19eec4634be81e66e6f4631b79b34d8ea05dfb53629f3686c77345163872730aa0408c9e5937ed85f846984228f7ab5e5d96 languageName: node linkType: hard @@ -8133,27 +7784,15 @@ __metadata: languageName: node linkType: hard -"babel-plugin-jest-hoist@npm:^27.5.1": - version: 27.5.1 - resolution: "babel-plugin-jest-hoist@npm:27.5.1" - dependencies: - "@babel/template": ^7.3.3 - "@babel/types": ^7.3.3 - "@types/babel__core": ^7.0.0 - "@types/babel__traverse": ^7.0.6 - checksum: 709c17727aa8fd3be755d256fb514bf945a5c2ea6017f037d80280fc44ae5fe7dfeebf63d8412df53796455c2c216119d628d8cc90b099434fd819005943d058 - languageName: node - linkType: hard - -"babel-plugin-jest-hoist@npm:^29.5.0": - version: 29.5.0 - resolution: "babel-plugin-jest-hoist@npm:29.5.0" +"babel-plugin-jest-hoist@npm:^29.6.3": + version: 29.6.3 + resolution: "babel-plugin-jest-hoist@npm:29.6.3" dependencies: "@babel/template": ^7.3.3 "@babel/types": ^7.3.3 "@types/babel__core": ^7.1.14 "@types/babel__traverse": ^7.0.6 - checksum: 099b5254073b6bc985b6d2d045ad26fb8ed30ff8ae6404c4fe8ee7cd0e98a820f69e3dfb871c7c65aae0f4b65af77046244c07bb92d49ef9005c90eedf681539 + checksum: 51250f22815a7318f17214a9d44650ba89551e6d4f47a2dc259128428324b52f5a73979d010cefd921fd5a720d8c1d55ad74ff601cd94c7bd44d5f6292fde2d1 languageName: node linkType: hard @@ -8596,27 +8235,15 @@ __metadata: languageName: node linkType: hard -"babel-preset-jest@npm:^27.5.1": - version: 27.5.1 - resolution: "babel-preset-jest@npm:27.5.1" - dependencies: - babel-plugin-jest-hoist: ^27.5.1 - babel-preset-current-node-syntax: ^1.0.0 - peerDependencies: - "@babel/core": ^7.0.0 - checksum: 251bcea11c18fd9672fec104eadb45b43f117ceeb326fa7345ced778d4c1feab29343cd7a87a1dcfae4997d6c851a8b386d7f7213792da6e23b74f4443a8976d - languageName: node - linkType: hard - -"babel-preset-jest@npm:^29.5.0": - version: 29.5.0 - resolution: "babel-preset-jest@npm:29.5.0" +"babel-preset-jest@npm:^29.6.3": + version: 29.6.3 + resolution: "babel-preset-jest@npm:29.6.3" dependencies: - babel-plugin-jest-hoist: ^29.5.0 + babel-plugin-jest-hoist: ^29.6.3 babel-preset-current-node-syntax: ^1.0.0 peerDependencies: "@babel/core": ^7.0.0 - checksum: 5566ca2762766c9319b4973d018d2fa08c0fcf6415c72cc54f4c8e7199e851ea8f5e6c6730f03ed7ed44fc8beefa959dd15911f2647dee47c615ff4faeddb1ad + checksum: aa4ff2a8a728d9d698ed521e3461a109a1e66202b13d3494e41eea30729a5e7cc03b3a2d56c594423a135429c37bf63a9fa8b0b9ce275298be3095a88c69f6fb languageName: node linkType: hard @@ -8993,13 +8620,6 @@ __metadata: languageName: node linkType: hard -"browser-process-hrtime@npm:^1.0.0": - version: 1.0.0 - resolution: "browser-process-hrtime@npm:1.0.0" - checksum: e30f868cdb770b1201afb714ad1575dd86366b6e861900884665fb627109b3cc757c40067d3bfee1ff2a29c835257ea30725a8018a9afd02ac1c24b408b1e45f - languageName: node - linkType: hard - "browser-stdout@npm:1.3.1": version: 1.3.1 resolution: "browser-stdout@npm:1.3.1" @@ -10134,7 +9754,7 @@ __metadata: languageName: node linkType: hard -"convert-source-map@npm:^1.4.0, convert-source-map@npm:^1.5.0, convert-source-map@npm:^1.5.1, convert-source-map@npm:^1.6.0, convert-source-map@npm:^1.7.0": +"convert-source-map@npm:^1.5.0, convert-source-map@npm:^1.5.1, convert-source-map@npm:^1.6.0, convert-source-map@npm:^1.7.0": version: 1.9.0 resolution: "convert-source-map@npm:1.9.0" checksum: dc55a1f28ddd0e9485ef13565f8f756b342f9a46c4ae18b843fe3c30c675d058d6a4823eff86d472f187b176f0adf51ea7b69ea38be34be4a63cbbf91b0593c8 @@ -10419,29 +10039,6 @@ __metadata: languageName: node linkType: hard -"cssom@npm:^0.4.4": - version: 0.4.4 - resolution: "cssom@npm:0.4.4" - checksum: e3bc1076e7ee4213d4fef05e7ae03bfa83dc05f32611d8edc341f4ecc3d9647b89c8245474c7dd2cdcdb797a27c462e99da7ad00a34399694559f763478ff53f - languageName: node - linkType: hard - -"cssom@npm:~0.3.6": - version: 0.3.8 - resolution: "cssom@npm:0.3.8" - checksum: 24beb3087c76c0d52dd458be9ee1fbc80ac771478a9baef35dd258cdeb527c68eb43204dd439692bb2b1ae5272fa5f2946d10946edab0d04f1078f85e06bc7f6 - languageName: node - linkType: hard - -"cssstyle@npm:^2.3.0": - version: 2.3.0 - resolution: "cssstyle@npm:2.3.0" - dependencies: - cssom: ~0.3.6 - checksum: 5f05e6fd2e3df0b44695c2f08b9ef38b011862b274e320665176467c0725e44a53e341bc4959a41176e83b66064ab786262e7380fd1cabeae6efee0d255bb4e3 - languageName: node - linkType: hard - "csstype@npm:^3.0.2, csstype@npm:^3.1.2": version: 3.1.2 resolution: "csstype@npm:3.1.2" @@ -10468,17 +10065,6 @@ __metadata: languageName: node linkType: hard -"data-urls@npm:^2.0.0": - version: 2.0.0 - resolution: "data-urls@npm:2.0.0" - dependencies: - abab: ^2.0.3 - whatwg-mimetype: ^2.3.0 - whatwg-url: ^8.0.0 - checksum: 97caf828aac25e25e04ba6869db0f99c75e6859bb5b424ada28d3e7841941ebf08ddff3c1b1bb4585986bd507a5d54c2a716853ea6cb98af877400e637393e71 - languageName: node - linkType: hard - "dateformat@npm:^3.0.3": version: 3.0.3 resolution: "dateformat@npm:3.0.3" @@ -10555,13 +10141,6 @@ __metadata: languageName: node linkType: hard -"decimal.js@npm:^10.2.1": - version: 10.4.3 - resolution: "decimal.js@npm:10.4.3" - checksum: 796404dcfa9d1dbfdc48870229d57f788b48c21c603c3f6554a1c17c10195fc1024de338b0cf9e1efe0c7c167eeb18f04548979bcc5fdfabebb7cc0ae3287bae - languageName: node - linkType: hard - "decode-uri-component@npm:^0.2.0": version: 0.2.2 resolution: "decode-uri-component@npm:0.2.2" @@ -10587,10 +10166,15 @@ __metadata: languageName: node linkType: hard -"dedent@npm:^0.7.0": - version: 0.7.0 - resolution: "dedent@npm:0.7.0" - checksum: 87de191050d9a40dd70cad01159a0bcf05ecb59750951242070b6abf9569088684880d00ba92a955b4058804f16eeaf91d604f283929b4f614d181cd7ae633d2 +"dedent@npm:^1.0.0": + version: 1.5.1 + resolution: "dedent@npm:1.5.1" + peerDependencies: + babel-plugin-macros: ^3.1.0 + peerDependenciesMeta: + babel-plugin-macros: + optional: true + checksum: c3c300a14edf1bdf5a873f9e4b22e839d62490bc5c8d6169c1f15858a1a76733d06a9a56930e963d677a2ceeca4b6b0894cc5ea2f501aa382ca5b92af3413c2a languageName: node linkType: hard @@ -10936,13 +10520,6 @@ __metadata: languageName: node linkType: hard -"diff-sequences@npm:^27.5.1": - version: 27.5.1 - resolution: "diff-sequences@npm:27.5.1" - checksum: a00db5554c9da7da225db2d2638d85f8e41124eccbd56cbaefb3b276dcbb1c1c2ad851c32defe2055a54a4806f030656cbf6638105fd6ce97bb87b90b32a33ca - languageName: node - linkType: hard - "diff-sequences@npm:^29.4.3": version: 29.4.3 resolution: "diff-sequences@npm:29.4.3" @@ -10950,6 +10527,13 @@ __metadata: languageName: node linkType: hard +"diff-sequences@npm:^29.6.3": + version: 29.6.3 + resolution: "diff-sequences@npm:29.6.3" + checksum: f4914158e1f2276343d98ff5b31fc004e7304f5470bf0f1adb2ac6955d85a531a6458d33e87667f98f6ae52ebd3891bb47d420bb48a5bd8b7a27ee25b20e33aa + languageName: node + linkType: hard + "diff@npm:3.5.0": version: 3.5.0 resolution: "diff@npm:3.5.0" @@ -11042,15 +10626,6 @@ __metadata: languageName: node linkType: hard -"domexception@npm:^2.0.1": - version: 2.0.1 - resolution: "domexception@npm:2.0.1" - dependencies: - webidl-conversions: ^5.0.0 - checksum: d638e9cb05c52999f1b2eb87c374b03311ea5b1d69c2f875bc92da73e17db60c12142b45c950228642ff7f845c536b65305483350d080df59003a653da80b691 - languageName: node - linkType: hard - "dotenv-expand@npm:5.1.0": version: 5.1.0 resolution: "dotenv-expand@npm:5.1.0" @@ -11187,13 +10762,6 @@ __metadata: languageName: node linkType: hard -"emittery@npm:^0.8.1": - version: 0.8.1 - resolution: "emittery@npm:0.8.1" - checksum: 2457e8c7b0688bb006126f2c025b2655abe682f66b184954122a8a065b5277f9813d49d627896a10b076b81c513ec5f491fd9c14fbd42c04b95ca3c9f3c365ee - languageName: node - linkType: hard - "emoji-regex@npm:^7.0.1": version: 7.0.3 resolution: "emoji-regex@npm:7.0.3" @@ -12964,19 +12532,7 @@ __metadata: languageName: node linkType: hard -"expect@npm:^27.5.1": - version: 27.5.1 - resolution: "expect@npm:27.5.1" - dependencies: - "@jest/types": ^27.5.1 - jest-get-type: ^27.5.1 - jest-matcher-utils: ^27.5.1 - jest-message-util: ^27.5.1 - checksum: b2c66beb52de53ef1872165aace40224e722bca3c2274c54cfa74b6d617d55cf0ccdbf36783ccd64dbea501b280098ed33fd0b207d4f15bc03cd3c7a24364a6a - languageName: node - linkType: hard - -"expect@npm:^29.0.0, expect@npm:^29.6.1": +"expect@npm:^29.0.0": version: 29.6.1 resolution: "expect@npm:29.6.1" dependencies: @@ -12990,6 +12546,19 @@ __metadata: languageName: node linkType: hard +"expect@npm:^29.6.4": + version: 29.6.4 + resolution: "expect@npm:29.6.4" + dependencies: + "@jest/expect-utils": ^29.6.4 + jest-get-type: ^29.6.3 + jest-matcher-utils: ^29.6.4 + jest-message-util: ^29.6.3 + jest-util: ^29.6.3 + checksum: 019b187d665562e4948b239e011a8791363e916f3076a229298d625e67fdadb06e8c2748798c49b4cf418ea223673eadd1de06537e08ba3c055c6f0efefc2306 + languageName: node + linkType: hard + "exponential-backoff@npm:^3.1.1": version: 3.1.1 resolution: "exponential-backoff@npm:3.1.1" @@ -14251,7 +13820,7 @@ __metadata: languageName: node linkType: hard -"glob@npm:^7.0.0, glob@npm:^7.1.1, glob@npm:^7.1.2, glob@npm:^7.1.3, glob@npm:^7.1.4, glob@npm:^7.2.0, glob@npm:~7.2.3": +"glob@npm:^7.0.0, glob@npm:^7.1.2, glob@npm:^7.1.3, glob@npm:^7.1.4, glob@npm:^7.2.0, glob@npm:~7.2.3": version: 7.2.3 resolution: "glob@npm:7.2.3" dependencies: @@ -14900,15 +14469,6 @@ __metadata: languageName: node linkType: hard -"html-encoding-sniffer@npm:^2.0.1": - version: 2.0.1 - resolution: "html-encoding-sniffer@npm:2.0.1" - dependencies: - whatwg-encoding: ^1.0.5 - checksum: bf30cce461015ed7e365736fcd6a3063c7bc016a91f74398ef6158886970a96333938f7c02417ab3c12aa82e3e53b40822145facccb9ddfbcdc15a879ae4d7ba - languageName: node - linkType: hard - "html-escaper@npm:^2.0.0": version: 2.0.2 resolution: "html-escaper@npm:2.0.2" @@ -14962,17 +14522,6 @@ __metadata: languageName: node linkType: hard -"http-proxy-agent@npm:^4.0.1": - version: 4.0.1 - resolution: "http-proxy-agent@npm:4.0.1" - dependencies: - "@tootallnate/once": 1 - agent-base: 6 - debug: 4 - checksum: c6a5da5a1929416b6bbdf77b1aca13888013fe7eb9d59fc292e25d18e041bb154a8dfada58e223fc7b76b9b2d155a87e92e608235201f77d34aa258707963a82 - languageName: node - linkType: hard - "http-proxy-agent@npm:^5.0.0": version: 5.0.0 resolution: "http-proxy-agent@npm:5.0.0" @@ -15732,13 +15281,6 @@ __metadata: languageName: node linkType: hard -"is-potential-custom-element-name@npm:^1.0.1": - version: 1.0.1 - resolution: "is-potential-custom-element-name@npm:1.0.1" - checksum: ced7bbbb6433a5b684af581872afe0e1767e2d1146b2207ca0068a648fb5cab9d898495d1ac0583524faaf24ca98176a7d9876363097c2d14fee6dd324f3a1ab - languageName: node - linkType: hard - "is-regex@npm:^1.0.4, is-regex@npm:^1.1.4, is-regex@npm:~1.1.4": version: 1.1.4 resolution: "is-regex@npm:1.1.4" @@ -15966,7 +15508,7 @@ __metadata: languageName: node linkType: hard -"istanbul-lib-instrument@npm:^5.0.4, istanbul-lib-instrument@npm:^5.1.0": +"istanbul-lib-instrument@npm:^5.0.4": version: 5.2.1 resolution: "istanbul-lib-instrument@npm:5.2.1" dependencies: @@ -15979,6 +15521,19 @@ __metadata: languageName: node linkType: hard +"istanbul-lib-instrument@npm:^6.0.0": + version: 6.0.0 + resolution: "istanbul-lib-instrument@npm:6.0.0" + dependencies: + "@babel/core": ^7.12.3 + "@babel/parser": ^7.14.7 + "@istanbuljs/schema": ^0.1.2 + istanbul-lib-coverage: ^3.2.0 + semver: ^7.5.4 + checksum: b9dc3723a769e65dbe1b912f935088ffc07cf393fa78a3ce79022c91aabb0ad01405ffd56083cdd822e514798e9daae3ea7bfe85633b094ecb335d28eb0a3f97 + languageName: node + linkType: hard + "istanbul-lib-report@npm:^3.0.0": version: 3.0.0 resolution: "istanbul-lib-report@npm:3.0.0" @@ -16038,123 +15593,59 @@ __metadata: languageName: node linkType: hard -"jest-changed-files@npm:^27.5.1": - version: 27.5.1 - resolution: "jest-changed-files@npm:27.5.1" - dependencies: - "@jest/types": ^27.5.1 - execa: ^5.0.0 - throat: ^6.0.1 - checksum: 95e9dc74c3ca688ef85cfeab270f43f8902721a6c8ade6ac2459459a77890c85977f537d6fb809056deaa6d9c3f075fa7d2699ff5f3bf7d3fda17c3760b79b15 - languageName: node - linkType: hard - -"jest-changed-files@npm:^29.5.0": - version: 29.5.0 - resolution: "jest-changed-files@npm:29.5.0" +"jest-changed-files@npm:^29.6.3": + version: 29.6.3 + resolution: "jest-changed-files@npm:29.6.3" dependencies: execa: ^5.0.0 + jest-util: ^29.6.3 p-limit: ^3.1.0 - checksum: a67a7cb3c11f8f92bd1b7c79e84f724cbd11a9ad51f3cdadafe3ce7ee3c79ee50dbea128f920f5fddc807e9e4e83f5462143094391feedd959a77dd20ab96cf3 + checksum: 55bc820a70c220a02fec214d5c48d5e0d829549e5c7b9959776b4ca3f76f5ff20c7c8ff816a847822766f1d712477ab3027f7a66ec61bf65de3f852e878b4dfd languageName: node linkType: hard -"jest-circus@npm:^27.5.1": - version: 27.5.1 - resolution: "jest-circus@npm:27.5.1" +"jest-circus@npm:^29.6.4": + version: 29.6.4 + resolution: "jest-circus@npm:29.6.4" dependencies: - "@jest/environment": ^27.5.1 - "@jest/test-result": ^27.5.1 - "@jest/types": ^27.5.1 + "@jest/environment": ^29.6.4 + "@jest/expect": ^29.6.4 + "@jest/test-result": ^29.6.4 + "@jest/types": ^29.6.3 "@types/node": "*" chalk: ^4.0.0 co: ^4.6.0 - dedent: ^0.7.0 - expect: ^27.5.1 + dedent: ^1.0.0 is-generator-fn: ^2.0.0 - jest-each: ^27.5.1 - jest-matcher-utils: ^27.5.1 - jest-message-util: ^27.5.1 - jest-runtime: ^27.5.1 - jest-snapshot: ^27.5.1 - jest-util: ^27.5.1 - pretty-format: ^27.5.1 - slash: ^3.0.0 - stack-utils: ^2.0.3 - throat: ^6.0.1 - checksum: 6192dccbccb3a6acfa361cbb97bdbabe94864ccf3d885932cfd41f19534329d40698078cf9be1489415e8234255d6ea9f9aff5396b79ad842a6fca6e6fc08fd0 - languageName: node - linkType: hard - -"jest-circus@npm:^29.6.1": - version: 29.6.1 - resolution: "jest-circus@npm:29.6.1" - dependencies: - "@jest/environment": ^29.6.1 - "@jest/expect": ^29.6.1 - "@jest/test-result": ^29.6.1 - "@jest/types": ^29.6.1 - "@types/node": "*" - chalk: ^4.0.0 - co: ^4.6.0 - dedent: ^0.7.0 - is-generator-fn: ^2.0.0 - jest-each: ^29.6.1 - jest-matcher-utils: ^29.6.1 - jest-message-util: ^29.6.1 - jest-runtime: ^29.6.1 - jest-snapshot: ^29.6.1 - jest-util: ^29.6.1 + jest-each: ^29.6.3 + jest-matcher-utils: ^29.6.4 + jest-message-util: ^29.6.3 + jest-runtime: ^29.6.4 + jest-snapshot: ^29.6.4 + jest-util: ^29.6.3 p-limit: ^3.1.0 - pretty-format: ^29.6.1 + pretty-format: ^29.6.3 pure-rand: ^6.0.0 slash: ^3.0.0 stack-utils: ^2.0.3 - checksum: f3e39a74b601929448df92037f0599978d4d7a4b8f636f64e8020533d2d2b2f669d6729c80c6efed69341ca26753e5061e9787a0acd6c70af2127a94375ebb76 + checksum: 31f64ddf6df4aefe30ef5f8de9da137c9cba58ab5e2a25cf749450735088dc88a9974591a4256d481af0fe64608173c921219f9fad9a7dd87cbe47a79e111be8 languageName: node linkType: hard -"jest-cli@npm:^27.5.1": - version: 27.5.1 - resolution: "jest-cli@npm:27.5.1" +"jest-cli@npm:^29.5.0": + version: 29.6.4 + resolution: "jest-cli@npm:29.6.4" dependencies: - "@jest/core": ^27.5.1 - "@jest/test-result": ^27.5.1 - "@jest/types": ^27.5.1 + "@jest/core": ^29.6.4 + "@jest/test-result": ^29.6.4 + "@jest/types": ^29.6.3 chalk: ^4.0.0 exit: ^0.1.2 graceful-fs: ^4.2.9 import-local: ^3.0.2 - jest-config: ^27.5.1 - jest-util: ^27.5.1 - jest-validate: ^27.5.1 - prompts: ^2.0.1 - yargs: ^16.2.0 - peerDependencies: - node-notifier: ^8.0.1 || ^9.0.0 || ^10.0.0 - peerDependenciesMeta: - node-notifier: - optional: true - bin: - jest: bin/jest.js - checksum: 6c0a69fb48e500241409e09ff743ed72bc6578d7769e2c994724e7ef1e5587f6c1f85dc429e93b98ae38a365222993ee70f0acc2199358992120900984f349e5 - languageName: node - linkType: hard - -"jest-cli@npm:^29.6.1": - version: 29.6.1 - resolution: "jest-cli@npm:29.6.1" - dependencies: - "@jest/core": ^29.6.1 - "@jest/test-result": ^29.6.1 - "@jest/types": ^29.6.1 - chalk: ^4.0.0 - exit: ^0.1.2 - graceful-fs: ^4.2.9 - import-local: ^3.0.2 - jest-config: ^29.6.1 - jest-util: ^29.6.1 - jest-validate: ^29.6.1 + jest-config: ^29.6.4 + jest-util: ^29.6.3 + jest-validate: ^29.6.3 prompts: ^2.0.1 yargs: ^17.3.1 peerDependencies: @@ -16164,71 +15655,34 @@ __metadata: optional: true bin: jest: bin/jest.js - checksum: f5854ffea977b9a12520ea71f8d0cc8a626cbb93d7e1e6eea18a2a1f2b25f70f1b6b08a89f11b4dc7dd36a1776a9ac2cf8ec5c7998086f913ee690c06c07c949 + checksum: 87a85a27eff0e502717b6ee0ce861d3e50d8c47d7298477f8ca10964b958f06c20241d28f1360ce2a85072763483e4924248106a8ed530ca460a56db3fdfc53e languageName: node linkType: hard -"jest-config@npm:^27.5.1": - version: 27.5.1 - resolution: "jest-config@npm:27.5.1" - dependencies: - "@babel/core": ^7.8.0 - "@jest/test-sequencer": ^27.5.1 - "@jest/types": ^27.5.1 - babel-jest: ^27.5.1 - chalk: ^4.0.0 - ci-info: ^3.2.0 - deepmerge: ^4.2.2 - glob: ^7.1.1 - graceful-fs: ^4.2.9 - jest-circus: ^27.5.1 - jest-environment-jsdom: ^27.5.1 - jest-environment-node: ^27.5.1 - jest-get-type: ^27.5.1 - jest-jasmine2: ^27.5.1 - jest-regex-util: ^27.5.1 - jest-resolve: ^27.5.1 - jest-runner: ^27.5.1 - jest-util: ^27.5.1 - jest-validate: ^27.5.1 - micromatch: ^4.0.4 - parse-json: ^5.2.0 - pretty-format: ^27.5.1 - slash: ^3.0.0 - strip-json-comments: ^3.1.1 - peerDependencies: - ts-node: ">=9.0.0" - peerDependenciesMeta: - ts-node: - optional: true - checksum: 1188fd46c0ed78cbe3175eb9ad6712ccf74a74be33d9f0d748e147c107f0889f8b701fbff1567f31836ae18597dacdc43d6a8fc30dd34ade6c9229cc6c7cb82d - languageName: node - linkType: hard - -"jest-config@npm:^29.6.1": - version: 29.6.1 - resolution: "jest-config@npm:29.6.1" +"jest-config@npm:^29.6.4": + version: 29.6.4 + resolution: "jest-config@npm:29.6.4" dependencies: "@babel/core": ^7.11.6 - "@jest/test-sequencer": ^29.6.1 - "@jest/types": ^29.6.1 - babel-jest: ^29.6.1 + "@jest/test-sequencer": ^29.6.4 + "@jest/types": ^29.6.3 + babel-jest: ^29.6.4 chalk: ^4.0.0 ci-info: ^3.2.0 deepmerge: ^4.2.2 glob: ^7.1.3 graceful-fs: ^4.2.9 - jest-circus: ^29.6.1 - jest-environment-node: ^29.6.1 - jest-get-type: ^29.4.3 - jest-regex-util: ^29.4.3 - jest-resolve: ^29.6.1 - jest-runner: ^29.6.1 - jest-util: ^29.6.1 - jest-validate: ^29.6.1 + jest-circus: ^29.6.4 + jest-environment-node: ^29.6.4 + jest-get-type: ^29.6.3 + jest-regex-util: ^29.6.3 + jest-resolve: ^29.6.4 + jest-runner: ^29.6.4 + jest-util: ^29.6.3 + jest-validate: ^29.6.3 micromatch: ^4.0.4 parse-json: ^5.2.0 - pretty-format: ^29.6.1 + pretty-format: ^29.6.3 slash: ^3.0.0 strip-json-comments: ^3.1.1 peerDependencies: @@ -16239,19 +15693,7 @@ __metadata: optional: true ts-node: optional: true - checksum: 3a30afeb28cc5658ef9cd95f2551ab8a29641bb6d377eb239cba8e7522eb4611c9a98cdcf173d87f5ad7b5e1ad242c3cd5434a260107bd3c7e8305d05023e05c - languageName: node - linkType: hard - -"jest-diff@npm:^27.5.1": - version: 27.5.1 - resolution: "jest-diff@npm:27.5.1" - dependencies: - chalk: ^4.0.0 - diff-sequences: ^27.5.1 - jest-get-type: ^27.5.1 - pretty-format: ^27.5.1 - checksum: 8be27c1e1ee57b2bb2bef9c0b233c19621b4c43d53a3c26e2c00a4e805eb4ea11fe1694a06a9fb0e80ffdcfdc0d2b1cb0b85920b3f5c892327ecd1e7bd96b865 + checksum: 177352658774344896df3988dbe892e0b117579f45cc43aebc588493665bf19a557e202f097f5b4a987314ec2d84afa0769299ac6e702c5923d1fd3cfa4692b0 languageName: node linkType: hard @@ -16267,97 +15709,51 @@ __metadata: languageName: node linkType: hard -"jest-docblock@npm:^27.5.1": - version: 27.5.1 - resolution: "jest-docblock@npm:27.5.1" +"jest-diff@npm:^29.6.4": + version: 29.6.4 + resolution: "jest-diff@npm:29.6.4" dependencies: - detect-newline: ^3.0.0 - checksum: c0fed6d55b229d8bffdd8d03f121dd1a3be77c88f50552d374f9e1ea3bde57bf6bea017a0add04628d98abcb1bfb48b456438eeca8a74ef0053f4dae3b95d29c + chalk: ^4.0.0 + diff-sequences: ^29.6.3 + jest-get-type: ^29.6.3 + pretty-format: ^29.6.3 + checksum: e205c45ab6dbcc660dc2a682cddb20f6a3cbbbdecd2821cce2050619f96dbd7560ee25f7f51d42c302596aeaddbea54390b78be3ab639340d24d67e4d270a8b0 languageName: node linkType: hard -"jest-docblock@npm:^29.4.3": - version: 29.4.3 - resolution: "jest-docblock@npm:29.4.3" +"jest-docblock@npm:^29.6.3": + version: 29.6.3 + resolution: "jest-docblock@npm:29.6.3" dependencies: detect-newline: ^3.0.0 - checksum: e0e9df1485bb8926e5b33478cdf84b3387d9caf3658e7dc1eaa6dc34cb93dea0d2d74797f6e940f0233a88f3dadd60957f2288eb8f95506361f85b84bf8661df + checksum: 6f3213a1e79e7eedafeb462acfa9a41303f9c0167893b140f6818fa16d7eb6bf3f9b9cf4669097ca6b7154847793489ecd6b4f6cfb0e416b88cfa3b4b36715b6 languageName: node linkType: hard -"jest-each@npm:^27.5.1": - version: 27.5.1 - resolution: "jest-each@npm:27.5.1" +"jest-each@npm:^29.6.3": + version: 29.6.3 + resolution: "jest-each@npm:29.6.3" dependencies: - "@jest/types": ^27.5.1 + "@jest/types": ^29.6.3 chalk: ^4.0.0 - jest-get-type: ^27.5.1 - jest-util: ^27.5.1 - pretty-format: ^27.5.1 - checksum: b5a6d8730fd938982569c9e0b42bdf3c242f97b957ed8155a6473b5f7b540970f8685524e7f53963dc1805319f4b6602abfc56605590ca19d55bd7a87e467e63 + jest-get-type: ^29.6.3 + jest-util: ^29.6.3 + pretty-format: ^29.6.3 + checksum: fe06e80b3554e2a8464f5f5c61943e02db1f8a7177139cb55b3201a1d1513cb089d8800401f102729a31bf8dd6f88229044e6088fea9dd5647ed11e841b6b88c languageName: node linkType: hard -"jest-each@npm:^29.6.1": - version: 29.6.1 - resolution: "jest-each@npm:29.6.1" +"jest-environment-node@npm:^29.6.4": + version: 29.6.4 + resolution: "jest-environment-node@npm:29.6.4" dependencies: - "@jest/types": ^29.6.1 - chalk: ^4.0.0 - jest-get-type: ^29.4.3 - jest-util: ^29.6.1 - pretty-format: ^29.6.1 - checksum: 9d2ea7ed5326ee8c22523b22c66c85fe73754ea39f9b389881956508ee441392c61072a5fbf673e39beddd31d011bb94acae3edc77053ba4f9aa5c060114a5c8 - languageName: node - linkType: hard - -"jest-environment-jsdom@npm:^27.5.1": - version: 27.5.1 - resolution: "jest-environment-jsdom@npm:27.5.1" - dependencies: - "@jest/environment": ^27.5.1 - "@jest/fake-timers": ^27.5.1 - "@jest/types": ^27.5.1 - "@types/node": "*" - jest-mock: ^27.5.1 - jest-util: ^27.5.1 - jsdom: ^16.6.0 - checksum: bc104aef7d7530d0740402aa84ac812138b6d1e51fe58adecce679f82b99340ddab73e5ec68fa079f33f50c9ddec9728fc9f0ddcca2ad6f0b351eed2762cc555 - languageName: node - linkType: hard - -"jest-environment-node@npm:^27.5.1": - version: 27.5.1 - resolution: "jest-environment-node@npm:27.5.1" - dependencies: - "@jest/environment": ^27.5.1 - "@jest/fake-timers": ^27.5.1 - "@jest/types": ^27.5.1 + "@jest/environment": ^29.6.4 + "@jest/fake-timers": ^29.6.4 + "@jest/types": ^29.6.3 "@types/node": "*" - jest-mock: ^27.5.1 - jest-util: ^27.5.1 - checksum: 0f988330c4f3eec092e3fb37ea753b0c6f702e83cd8f4d770af9c2bf964a70bc45fbd34ec6fdb6d71ce98a778d9f54afd673e63f222e4667fff289e8069dba39 - languageName: node - linkType: hard - -"jest-environment-node@npm:^29.6.1": - version: 29.6.1 - resolution: "jest-environment-node@npm:29.6.1" - dependencies: - "@jest/environment": ^29.6.1 - "@jest/fake-timers": ^29.6.1 - "@jest/types": ^29.6.1 - "@types/node": "*" - jest-mock: ^29.6.1 - jest-util: ^29.6.1 - checksum: a50287e1ff29d131646bd09acc3222ac6ea0ad61e86bf73851d318ef2be0633a421b8558c4a15ddc67e0ffcfc32da7f6a0d8a2ddbfa85453837899dec88d256c - languageName: node - linkType: hard - -"jest-get-type@npm:^27.5.1": - version: 27.5.1 - resolution: "jest-get-type@npm:27.5.1" - checksum: 63064ab70195c21007d897c1157bf88ff94a790824a10f8c890392e7d17eda9c3900513cb291ca1c8d5722cad79169764e9a1279f7c8a9c4cd6e9109ff04bbc0 + jest-mock: ^29.6.3 + jest-util: ^29.6.3 + checksum: 518221505af4bd32c84f2af2c03f9d771de2711bd69fe7723b648fcc2e05d95b4e75f493afa9010209e26a4a3309ebee971f9b18c45b540891771d3b68c3a16e languageName: node linkType: hard @@ -16368,27 +15764,10 @@ __metadata: languageName: node linkType: hard -"jest-haste-map@npm:^27.5.1": - version: 27.5.1 - resolution: "jest-haste-map@npm:27.5.1" - dependencies: - "@jest/types": ^27.5.1 - "@types/graceful-fs": ^4.1.2 - "@types/node": "*" - anymatch: ^3.0.3 - fb-watchman: ^2.0.0 - fsevents: ^2.3.2 - graceful-fs: ^4.2.9 - jest-regex-util: ^27.5.1 - jest-serializer: ^27.5.1 - jest-util: ^27.5.1 - jest-worker: ^27.5.1 - micromatch: ^4.0.4 - walker: ^1.0.7 - dependenciesMeta: - fsevents: - optional: true - checksum: e092a1412829a9254b4725531ee72926de530f77fda7b0d9ea18008fb7623c16f72e772d8e93be71cac9e591b2c6843a669610887dd2c89bd9eb528856e3ab47 +"jest-get-type@npm:^29.6.3": + version: 29.6.3 + resolution: "jest-get-type@npm:29.6.3" + checksum: 88ac9102d4679d768accae29f1e75f592b760b44277df288ad76ce5bf038c3f5ce3719dea8aa0f035dac30e9eb034b848ce716b9183ad7cc222d029f03e92205 languageName: node linkType: hard @@ -16415,110 +15794,98 @@ __metadata: languageName: node linkType: hard -"jest-jasmine2@npm:^27.5.1": - version: 27.5.1 - resolution: "jest-jasmine2@npm:27.5.1" +"jest-haste-map@npm:^29.6.4": + version: 29.6.4 + resolution: "jest-haste-map@npm:29.6.4" dependencies: - "@jest/environment": ^27.5.1 - "@jest/source-map": ^27.5.1 - "@jest/test-result": ^27.5.1 - "@jest/types": ^27.5.1 + "@jest/types": ^29.6.3 + "@types/graceful-fs": ^4.1.3 "@types/node": "*" - chalk: ^4.0.0 - co: ^4.6.0 - expect: ^27.5.1 - is-generator-fn: ^2.0.0 - jest-each: ^27.5.1 - jest-matcher-utils: ^27.5.1 - jest-message-util: ^27.5.1 - jest-runtime: ^27.5.1 - jest-snapshot: ^27.5.1 - jest-util: ^27.5.1 - pretty-format: ^27.5.1 - throat: ^6.0.1 - checksum: b716adf253ceb73db661936153394ab90d7f3a8ba56d6189b7cd4df8e4e2a4153b4e63ebb5d36e29ceb0f4c211d5a6f36ab7048c6abbd881c8646567e2ab8e6d + anymatch: ^3.0.3 + fb-watchman: ^2.0.0 + fsevents: ^2.3.2 + graceful-fs: ^4.2.9 + jest-regex-util: ^29.6.3 + jest-util: ^29.6.3 + jest-worker: ^29.6.4 + micromatch: ^4.0.4 + walker: ^1.0.8 + dependenciesMeta: + fsevents: + optional: true + checksum: 4f720fd3813bb38400b7a9a094e55664cbddd907ba1769457ed746f6c870c615167647a5b697a788183d832b1dcb1b66143e52990a6f4403283f6686077fa868 languageName: node linkType: hard -"jest-leak-detector@npm:^27.5.1": - version: 27.5.1 - resolution: "jest-leak-detector@npm:27.5.1" +"jest-leak-detector@npm:^29.6.3": + version: 29.6.3 + resolution: "jest-leak-detector@npm:29.6.3" dependencies: - jest-get-type: ^27.5.1 - pretty-format: ^27.5.1 - checksum: 5c9689060960567ddaf16c570d87afa760a461885765d2c71ef4f4857bbc3af1482c34e3cce88e50beefde1bf35e33530b020480752057a7e3dbb1ca0bae359f + jest-get-type: ^29.6.3 + pretty-format: ^29.6.3 + checksum: 27548fcfc7602fe1b88f8600185e35ffff71751f3631e52bbfdfc72776f5a13a430185cf02fc632b41320a74f99ae90e40ce101c8887509f0f919608a7175129 languageName: node linkType: hard -"jest-leak-detector@npm:^29.6.1": +"jest-matcher-utils@npm:^29.6.1": version: 29.6.1 - resolution: "jest-leak-detector@npm:29.6.1" + resolution: "jest-matcher-utils@npm:29.6.1" dependencies: + chalk: ^4.0.0 + jest-diff: ^29.6.1 jest-get-type: ^29.4.3 pretty-format: ^29.6.1 - checksum: 5122d40c248effaede4c9ee3a99046a3f30088fef7bfc4af534678b432455161399357af46deb6423de7e05c6597920d6ee8cd570e26048886a90d541334f8c8 + checksum: d2efa6aed6e4820758b732b9fefd315c7fa4508ee690da656e1c5ac4c1a0f4cee5b04c9719ee1fda9aeb883b4209186c145089ced521e715b9fa70afdfa4a9c6 languageName: node linkType: hard -"jest-matcher-utils@npm:^27.0.0, jest-matcher-utils@npm:^27.5.1": - version: 27.5.1 - resolution: "jest-matcher-utils@npm:27.5.1" +"jest-matcher-utils@npm:^29.6.4": + version: 29.6.4 + resolution: "jest-matcher-utils@npm:29.6.4" dependencies: chalk: ^4.0.0 - jest-diff: ^27.5.1 - jest-get-type: ^27.5.1 - pretty-format: ^27.5.1 - checksum: bb2135fc48889ff3fe73888f6cc7168ddab9de28b51b3148f820c89fdfd2effdcad005f18be67d0b9be80eda208ad47290f62f03d0a33f848db2dd0273c8217a + jest-diff: ^29.6.4 + jest-get-type: ^29.6.3 + pretty-format: ^29.6.3 + checksum: 9e17bce282e74bdbba2ce5475c490e0bba4f464cd42132bfc5df0337e0853af4dba925c7f4f61cbb0a4818fa121d28d7ff0196ec8829773a22fce59a822976d2 languageName: node linkType: hard -"jest-matcher-utils@npm:^29.6.1": +"jest-message-util@npm:^29.6.1": version: 29.6.1 - resolution: "jest-matcher-utils@npm:29.6.1" - dependencies: - chalk: ^4.0.0 - jest-diff: ^29.6.1 - jest-get-type: ^29.4.3 - pretty-format: ^29.6.1 - checksum: d2efa6aed6e4820758b732b9fefd315c7fa4508ee690da656e1c5ac4c1a0f4cee5b04c9719ee1fda9aeb883b4209186c145089ced521e715b9fa70afdfa4a9c6 - languageName: node - linkType: hard - -"jest-message-util@npm:^27.5.1": - version: 27.5.1 - resolution: "jest-message-util@npm:27.5.1" + resolution: "jest-message-util@npm:29.6.1" dependencies: "@babel/code-frame": ^7.12.13 - "@jest/types": ^27.5.1 + "@jest/types": ^29.6.1 "@types/stack-utils": ^2.0.0 chalk: ^4.0.0 graceful-fs: ^4.2.9 micromatch: ^4.0.4 - pretty-format: ^27.5.1 + pretty-format: ^29.6.1 slash: ^3.0.0 stack-utils: ^2.0.3 - checksum: eb6d637d1411c71646de578c49826b6da8e33dd293e501967011de9d1916d53d845afbfb52a5b661ff1c495be7c13f751c48c7f30781fd94fbd64842e8195796 + checksum: 3e7cb2ff087fe72255292e151d24e4fbb4cd6134885c0a67a4b302f233fe4110bf7580b176f427f05ad7550eb878ed94237209785d09d659a7d171ffa59c068f languageName: node linkType: hard -"jest-message-util@npm:^29.6.1": - version: 29.6.1 - resolution: "jest-message-util@npm:29.6.1" +"jest-message-util@npm:^29.6.3": + version: 29.6.3 + resolution: "jest-message-util@npm:29.6.3" dependencies: "@babel/code-frame": ^7.12.13 - "@jest/types": ^29.6.1 + "@jest/types": ^29.6.3 "@types/stack-utils": ^2.0.0 chalk: ^4.0.0 graceful-fs: ^4.2.9 micromatch: ^4.0.4 - pretty-format: ^29.6.1 + pretty-format: ^29.6.3 slash: ^3.0.0 stack-utils: ^2.0.3 - checksum: 3e7cb2ff087fe72255292e151d24e4fbb4cd6134885c0a67a4b302f233fe4110bf7580b176f427f05ad7550eb878ed94237209785d09d659a7d171ffa59c068f + checksum: 59f5229a06c073a8877ba4d2e304cc07d63b0062bf5764d4bed14364403889e77f1825d1bd9017c19a840847d17dffd414dc06f1fcb537b5f9e03dbc65b84ada languageName: node linkType: hard -"jest-mock@npm:^27.0.6, jest-mock@npm:^27.5.1": +"jest-mock@npm:^27.0.6": version: 27.5.1 resolution: "jest-mock@npm:27.5.1" dependencies: @@ -16528,14 +15895,14 @@ __metadata: languageName: node linkType: hard -"jest-mock@npm:^29.6.1": - version: 29.6.1 - resolution: "jest-mock@npm:29.6.1" +"jest-mock@npm:^29.6.3": + version: 29.6.3 + resolution: "jest-mock@npm:29.6.3" dependencies: - "@jest/types": ^29.6.1 + "@jest/types": ^29.6.3 "@types/node": "*" - jest-util: ^29.6.1 - checksum: 5e902f1a7eba1eb1a64eb6c19947fe1316834359d9869d0e2644d8979b9cad0465885dc4c9909c471888cddeea835c938cec6263d386d3d1aad720fc74e52ea1 + jest-util: ^29.6.3 + checksum: 35772968010c0afb1bb1ef78570b9cbea907c6f967d24b4e95e1a596a1000c63d60e225fb9ddfdd5218674da4aa61d92a09927fc26310cecbbfaa8278d919e32 languageName: node linkType: hard @@ -16551,13 +15918,6 @@ __metadata: languageName: node linkType: hard -"jest-regex-util@npm:^27.5.1": - version: 27.5.1 - resolution: "jest-regex-util@npm:27.5.1" - checksum: d45ca7a9543616a34f7f3079337439cf07566e677a096472baa2810e274b9808b76767c97b0a4029b8a5b82b9d256dee28ef9ad4138b2b9e5933f6fac106c418 - languageName: node - linkType: hard - "jest-regex-util@npm:^29.4.3": version: 29.4.3 resolution: "jest-regex-util@npm:29.4.3" @@ -16565,260 +15925,124 @@ __metadata: languageName: node linkType: hard -"jest-resolve-dependencies@npm:^27.5.1": - version: 27.5.1 - resolution: "jest-resolve-dependencies@npm:27.5.1" - dependencies: - "@jest/types": ^27.5.1 - jest-regex-util: ^27.5.1 - jest-snapshot: ^27.5.1 - checksum: c67af97afad1da88f5530317c732bbd1262d1225f6cd7f4e4740a5db48f90ab0bd8564738ac70d1a43934894f9aef62205c1b8f8ee89e5c7a737e6a121ee4c25 - languageName: node - linkType: hard - -"jest-resolve-dependencies@npm:^29.6.1": - version: 29.6.1 - resolution: "jest-resolve-dependencies@npm:29.6.1" - dependencies: - jest-regex-util: ^29.4.3 - jest-snapshot: ^29.6.1 - checksum: cee0a0fe53fd4531492a526b6ccd32377baad1eff6e6c124f04e9dc920219fd23fd39be88bb9551ee68d5fe92a3af627b423c9bc65a2aa0ac8a223c0e74dbbbb +"jest-regex-util@npm:^29.6.3": + version: 29.6.3 + resolution: "jest-regex-util@npm:29.6.3" + checksum: 0518beeb9bf1228261695e54f0feaad3606df26a19764bc19541e0fc6e2a3737191904607fb72f3f2ce85d9c16b28df79b7b1ec9443aa08c3ef0e9efda6f8f2a languageName: node linkType: hard -"jest-resolve@npm:^27.5.1": - version: 27.5.1 - resolution: "jest-resolve@npm:27.5.1" +"jest-resolve-dependencies@npm:^29.6.4": + version: 29.6.4 + resolution: "jest-resolve-dependencies@npm:29.6.4" dependencies: - "@jest/types": ^27.5.1 - chalk: ^4.0.0 - graceful-fs: ^4.2.9 - jest-haste-map: ^27.5.1 - jest-pnp-resolver: ^1.2.2 - jest-util: ^27.5.1 - jest-validate: ^27.5.1 - resolve: ^1.20.0 - resolve.exports: ^1.1.0 - slash: ^3.0.0 - checksum: 735830e7265b20a348029738680bb2f6e37f80ecea86cda869a4c318ba3a45d39c7a3a873a22f7f746d86258c50ead6e7f501de043e201c095d7ba628a1c440f + jest-regex-util: ^29.6.3 + jest-snapshot: ^29.6.4 + checksum: 34f81d22cbd72203130cc14cbb66d5783d9f59fba4d366b9653f8fb4f6feeaac25d89696f2f77c700659843d5440dc92f58ad443ba05da1da46c39234866d916 languageName: node linkType: hard -"jest-resolve@npm:^29.6.1": - version: 29.6.1 - resolution: "jest-resolve@npm:29.6.1" +"jest-resolve@npm:^29.6.4": + version: 29.6.4 + resolution: "jest-resolve@npm:29.6.4" dependencies: chalk: ^4.0.0 graceful-fs: ^4.2.9 - jest-haste-map: ^29.6.1 + jest-haste-map: ^29.6.4 jest-pnp-resolver: ^1.2.2 - jest-util: ^29.6.1 - jest-validate: ^29.6.1 + jest-util: ^29.6.3 + jest-validate: ^29.6.3 resolve: ^1.20.0 resolve.exports: ^2.0.0 slash: ^3.0.0 - checksum: 9ce979a0f4a751bea58caea76415112df2a3f4d58e294019872244728aadd001f0ec20c873a3c805dd8f7c762143b3c14d00f87d124ed87c9981fbf8723090ef + checksum: 5f0ef260aec79ef00e16e0ba7b27d527054e1faed08a144279cd191b5c5b71af67c52b9ddfd24aa2f563d254618ce9bf7519809f23fb2abf6c4fa375503caa28 languageName: node linkType: hard -"jest-runner@npm:^27.5.1": - version: 27.5.1 - resolution: "jest-runner@npm:27.5.1" +"jest-runner@npm:^29.6.4": + version: 29.6.4 + resolution: "jest-runner@npm:29.6.4" dependencies: - "@jest/console": ^27.5.1 - "@jest/environment": ^27.5.1 - "@jest/test-result": ^27.5.1 - "@jest/transform": ^27.5.1 - "@jest/types": ^27.5.1 - "@types/node": "*" - chalk: ^4.0.0 - emittery: ^0.8.1 - graceful-fs: ^4.2.9 - jest-docblock: ^27.5.1 - jest-environment-jsdom: ^27.5.1 - jest-environment-node: ^27.5.1 - jest-haste-map: ^27.5.1 - jest-leak-detector: ^27.5.1 - jest-message-util: ^27.5.1 - jest-resolve: ^27.5.1 - jest-runtime: ^27.5.1 - jest-util: ^27.5.1 - jest-worker: ^27.5.1 - source-map-support: ^0.5.6 - throat: ^6.0.1 - checksum: 5bbe6cf847dd322b3332ec9d6977b54f91bd5f72ff620bc1a0192f0f129deda8aa7ca74c98922187a7aa87d8e0ce4f6c50e99a7ccb2a310bf4d94be2e0c3ce8e - languageName: node - linkType: hard - -"jest-runner@npm:^29.6.1": - version: 29.6.1 - resolution: "jest-runner@npm:29.6.1" - dependencies: - "@jest/console": ^29.6.1 - "@jest/environment": ^29.6.1 - "@jest/test-result": ^29.6.1 - "@jest/transform": ^29.6.1 - "@jest/types": ^29.6.1 + "@jest/console": ^29.6.4 + "@jest/environment": ^29.6.4 + "@jest/test-result": ^29.6.4 + "@jest/transform": ^29.6.4 + "@jest/types": ^29.6.3 "@types/node": "*" chalk: ^4.0.0 emittery: ^0.13.1 graceful-fs: ^4.2.9 - jest-docblock: ^29.4.3 - jest-environment-node: ^29.6.1 - jest-haste-map: ^29.6.1 - jest-leak-detector: ^29.6.1 - jest-message-util: ^29.6.1 - jest-resolve: ^29.6.1 - jest-runtime: ^29.6.1 - jest-util: ^29.6.1 - jest-watcher: ^29.6.1 - jest-worker: ^29.6.1 + jest-docblock: ^29.6.3 + jest-environment-node: ^29.6.4 + jest-haste-map: ^29.6.4 + jest-leak-detector: ^29.6.3 + jest-message-util: ^29.6.3 + jest-resolve: ^29.6.4 + jest-runtime: ^29.6.4 + jest-util: ^29.6.3 + jest-watcher: ^29.6.4 + jest-worker: ^29.6.4 p-limit: ^3.1.0 source-map-support: 0.5.13 - checksum: 0e4dbda26669ae31fee32f8a62b3119bba510f2d17a098d6157b48a73ed2fc9842405bf893f3045c12b3632c7c0e3399fb22684b18ab5566aff4905b26c79a9a - languageName: node - linkType: hard - -"jest-runtime@npm:^27.5.1": - version: 27.5.1 - resolution: "jest-runtime@npm:27.5.1" - dependencies: - "@jest/environment": ^27.5.1 - "@jest/fake-timers": ^27.5.1 - "@jest/globals": ^27.5.1 - "@jest/source-map": ^27.5.1 - "@jest/test-result": ^27.5.1 - "@jest/transform": ^27.5.1 - "@jest/types": ^27.5.1 - chalk: ^4.0.0 - cjs-module-lexer: ^1.0.0 - collect-v8-coverage: ^1.0.0 - execa: ^5.0.0 - glob: ^7.1.3 - graceful-fs: ^4.2.9 - jest-haste-map: ^27.5.1 - jest-message-util: ^27.5.1 - jest-mock: ^27.5.1 - jest-regex-util: ^27.5.1 - jest-resolve: ^27.5.1 - jest-snapshot: ^27.5.1 - jest-util: ^27.5.1 - slash: ^3.0.0 - strip-bom: ^4.0.0 - checksum: 929e3df0c53dab43f831f2af4e2996b22aa8cb2d6d483919d6b0426cbc100098fd5b777b998c6568b77f8c4d860b2e83127514292ff61416064f5ef926492386 - languageName: node - linkType: hard - -"jest-runtime@npm:^29.6.1": - version: 29.6.1 - resolution: "jest-runtime@npm:29.6.1" - dependencies: - "@jest/environment": ^29.6.1 - "@jest/fake-timers": ^29.6.1 - "@jest/globals": ^29.6.1 - "@jest/source-map": ^29.6.0 - "@jest/test-result": ^29.6.1 - "@jest/transform": ^29.6.1 - "@jest/types": ^29.6.1 - "@types/node": "*" - chalk: ^4.0.0 - cjs-module-lexer: ^1.0.0 - collect-v8-coverage: ^1.0.0 - glob: ^7.1.3 - graceful-fs: ^4.2.9 - jest-haste-map: ^29.6.1 - jest-message-util: ^29.6.1 - jest-mock: ^29.6.1 - jest-regex-util: ^29.4.3 - jest-resolve: ^29.6.1 - jest-snapshot: ^29.6.1 - jest-util: ^29.6.1 - slash: ^3.0.0 - strip-bom: ^4.0.0 - checksum: 7c360c9694467d996f3d6d914fefa0e7bda554adda8c2b9fba31546dba663d71a64eda103ff68120a2422f3c16db8f0bc2c445923fe8fb934f37e53ef74fb429 + checksum: ca977dd30262171fe000de8407a3187c16e7057ddf690bcc21068155aacd4824ee927b544e0fa9f2885948b47a5123b472da41e095e3bcbdebb79f1fa2f2fc56 languageName: node linkType: hard -"jest-serializer@npm:^27.5.1": - version: 27.5.1 - resolution: "jest-serializer@npm:27.5.1" +"jest-runtime@npm:^29.6.4": + version: 29.6.4 + resolution: "jest-runtime@npm:29.6.4" dependencies: + "@jest/environment": ^29.6.4 + "@jest/fake-timers": ^29.6.4 + "@jest/globals": ^29.6.4 + "@jest/source-map": ^29.6.3 + "@jest/test-result": ^29.6.4 + "@jest/transform": ^29.6.4 + "@jest/types": ^29.6.3 "@types/node": "*" - graceful-fs: ^4.2.9 - checksum: 803e03a552278610edc6753c0dd9fa5bb5cd3ca47414a7b2918106efb62b79fd5e9ae785d0a21f12a299fa599fea8acc1fa6dd41283328cee43962cf7df9bb44 - languageName: node - linkType: hard - -"jest-snapshot@npm:^27.5.1": - version: 27.5.1 - resolution: "jest-snapshot@npm:27.5.1" - dependencies: - "@babel/core": ^7.7.2 - "@babel/generator": ^7.7.2 - "@babel/plugin-syntax-typescript": ^7.7.2 - "@babel/traverse": ^7.7.2 - "@babel/types": ^7.0.0 - "@jest/transform": ^27.5.1 - "@jest/types": ^27.5.1 - "@types/babel__traverse": ^7.0.4 - "@types/prettier": ^2.1.5 - babel-preset-current-node-syntax: ^1.0.0 chalk: ^4.0.0 - expect: ^27.5.1 + cjs-module-lexer: ^1.0.0 + collect-v8-coverage: ^1.0.0 + glob: ^7.1.3 graceful-fs: ^4.2.9 - jest-diff: ^27.5.1 - jest-get-type: ^27.5.1 - jest-haste-map: ^27.5.1 - jest-matcher-utils: ^27.5.1 - jest-message-util: ^27.5.1 - jest-util: ^27.5.1 - natural-compare: ^1.4.0 - pretty-format: ^27.5.1 - semver: ^7.3.2 - checksum: a5cfadf0d21cd76063925d1434bc076443ed6d87847d0e248f0b245f11db3d98ff13e45cc03b15404027dabecd712d925f47b6eae4f64986f688640a7d362514 + jest-haste-map: ^29.6.4 + jest-message-util: ^29.6.3 + jest-mock: ^29.6.3 + jest-regex-util: ^29.6.3 + jest-resolve: ^29.6.4 + jest-snapshot: ^29.6.4 + jest-util: ^29.6.3 + slash: ^3.0.0 + strip-bom: ^4.0.0 + checksum: 93deacd06f8f2bb808dbfb8acbcbc0b724187b3d3fffafd497a32c939bf385ca21f5a3f03eebd5b958a0e93865d0e68a0db73bd0fe16dafbd5e922558aa7b359 languageName: node linkType: hard -"jest-snapshot@npm:^29.6.1": - version: 29.6.1 - resolution: "jest-snapshot@npm:29.6.1" +"jest-snapshot@npm:^29.6.4": + version: 29.6.4 + resolution: "jest-snapshot@npm:29.6.4" dependencies: "@babel/core": ^7.11.6 "@babel/generator": ^7.7.2 "@babel/plugin-syntax-jsx": ^7.7.2 "@babel/plugin-syntax-typescript": ^7.7.2 "@babel/types": ^7.3.3 - "@jest/expect-utils": ^29.6.1 - "@jest/transform": ^29.6.1 - "@jest/types": ^29.6.1 - "@types/prettier": ^2.1.5 + "@jest/expect-utils": ^29.6.4 + "@jest/transform": ^29.6.4 + "@jest/types": ^29.6.3 babel-preset-current-node-syntax: ^1.0.0 chalk: ^4.0.0 - expect: ^29.6.1 + expect: ^29.6.4 graceful-fs: ^4.2.9 - jest-diff: ^29.6.1 - jest-get-type: ^29.4.3 - jest-matcher-utils: ^29.6.1 - jest-message-util: ^29.6.1 - jest-util: ^29.6.1 + jest-diff: ^29.6.4 + jest-get-type: ^29.6.3 + jest-matcher-utils: ^29.6.4 + jest-message-util: ^29.6.3 + jest-util: ^29.6.3 natural-compare: ^1.4.0 - pretty-format: ^29.6.1 + pretty-format: ^29.6.3 semver: ^7.5.3 - checksum: e8f69d1fd4a29d354d4dca9eb2a22674b300f8ef509e4f1e75337c880414a00d2bdc9d3849a6855dbb5a76bfbe74603f33435378a3877e69f0838e4cc2244350 - languageName: node - linkType: hard - -"jest-util@npm:^27.0.0, jest-util@npm:^27.5.1": - version: 27.5.1 - resolution: "jest-util@npm:27.5.1" - dependencies: - "@jest/types": ^27.5.1 - "@types/node": "*" - chalk: ^4.0.0 - ci-info: ^3.2.0 - graceful-fs: ^4.2.9 - picomatch: ^2.2.3 - checksum: ac8d122f6daf7a035dcea156641fd3701aeba245417c40836a77e35b3341b9c02ddc5d904cfcd4ddbaa00ab854da76d3b911870cafdcdbaff90ea471de26c7d7 + checksum: 0c9b5ec640457fb780ac6c9b6caa814436e9e16bf744772eee3bfd055ae5f7a3085a6a09b2f30910e31915dafc3955d92357cc98189e4d5dcb417b5fdafda6e3 languageName: node linkType: hard @@ -16836,73 +16060,47 @@ __metadata: languageName: node linkType: hard -"jest-validate@npm:^27.5.1": - version: 27.5.1 - resolution: "jest-validate@npm:27.5.1" +"jest-util@npm:^29.6.3": + version: 29.6.3 + resolution: "jest-util@npm:29.6.3" dependencies: - "@jest/types": ^27.5.1 - camelcase: ^6.2.0 + "@jest/types": ^29.6.3 + "@types/node": "*" chalk: ^4.0.0 - jest-get-type: ^27.5.1 - leven: ^3.1.0 - pretty-format: ^27.5.1 - checksum: 82e870f8ee7e4fb949652711b1567f05ae31c54be346b0899e8353e5c20fad7692b511905b37966945e90af8dc0383eb41a74f3ffefb16140ea4f9164d841412 + ci-info: ^3.2.0 + graceful-fs: ^4.2.9 + picomatch: ^2.2.3 + checksum: 7bf3ba3ac67ac6ceff7d8fdd23a86768e23ddd9133ecd9140ef87cc0c28708effabaf67a6cd45cd9d90a63d645a522ed0825d09ee59ac4c03b9c473b1fef4c7c languageName: node linkType: hard -"jest-validate@npm:^29.6.1": - version: 29.6.1 - resolution: "jest-validate@npm:29.6.1" +"jest-validate@npm:^29.6.3": + version: 29.6.3 + resolution: "jest-validate@npm:29.6.3" dependencies: - "@jest/types": ^29.6.1 + "@jest/types": ^29.6.3 camelcase: ^6.2.0 chalk: ^4.0.0 - jest-get-type: ^29.4.3 + jest-get-type: ^29.6.3 leven: ^3.1.0 - pretty-format: ^29.6.1 - checksum: d2491f3f33d9bbc2dcaaa6acbff26f257b59c5eeceb65a52a9c1cec2f679b836ec2a4658b7004c0ef9d90cd0d9bd664e41d5ed6900f932bea742dd8e6b85e7f1 - languageName: node - linkType: hard - -"jest-watcher@npm:^27.5.1": - version: 27.5.1 - resolution: "jest-watcher@npm:27.5.1" - dependencies: - "@jest/test-result": ^27.5.1 - "@jest/types": ^27.5.1 - "@types/node": "*" - ansi-escapes: ^4.2.1 - chalk: ^4.0.0 - jest-util: ^27.5.1 - string-length: ^4.0.1 - checksum: 191c4e9c278c0902ade1a8a80883ac244963ba3e6e78607a3d5f729ccca9c6e71fb3b316f87883658132641c5d818aa84202585c76752e03c539e6cbecb820bd + pretty-format: ^29.6.3 + checksum: caa489ed11080441c636b8035ab71bafbdc0c052b1e452855e4d2dd24ac15e497710a270ea6fc5ef8926b22c1ce4d6e07ec2dc193f0810cff5851d7a2222c045 languageName: node linkType: hard -"jest-watcher@npm:^29.6.1": - version: 29.6.1 - resolution: "jest-watcher@npm:29.6.1" +"jest-watcher@npm:^29.6.4": + version: 29.6.4 + resolution: "jest-watcher@npm:29.6.4" dependencies: - "@jest/test-result": ^29.6.1 - "@jest/types": ^29.6.1 + "@jest/test-result": ^29.6.4 + "@jest/types": ^29.6.3 "@types/node": "*" ansi-escapes: ^4.2.1 chalk: ^4.0.0 emittery: ^0.13.1 - jest-util: ^29.6.1 + jest-util: ^29.6.3 string-length: ^4.0.1 - checksum: 69bd5a602284fdce6eba5486c5c57aca6b511d91cb0907c34c104d6dd931e18ce67baa7f8e280fa473e5d81ea3e7b9e7d94f712c37ab0b3b8cc2aec30676955d - languageName: node - linkType: hard - -"jest-worker@npm:^27.5.1": - version: 27.5.1 - resolution: "jest-worker@npm:27.5.1" - dependencies: - "@types/node": "*" - merge-stream: ^2.0.0 - supports-color: ^8.0.0 - checksum: 98cd68b696781caed61c983a3ee30bf880b5bd021c01d98f47b143d4362b85d0737f8523761e2713d45e18b4f9a2b98af1eaee77afade4111bb65c77d6f7c980 + checksum: 13c0f96f7e9212e4f3ef2daf3e787045bdcec414061bf286eca934c7f4083fb04d38df9ced9c0edfbe15f3521ca581eb2ed6108c338a0db1f3e1def65687992f languageName: node linkType: hard @@ -16918,32 +16116,26 @@ __metadata: languageName: node linkType: hard -"jest@npm:^27.5.1": - version: 27.5.1 - resolution: "jest@npm:27.5.1" +"jest-worker@npm:^29.6.4": + version: 29.6.4 + resolution: "jest-worker@npm:29.6.4" dependencies: - "@jest/core": ^27.5.1 - import-local: ^3.0.2 - jest-cli: ^27.5.1 - peerDependencies: - node-notifier: ^8.0.1 || ^9.0.0 || ^10.0.0 - peerDependenciesMeta: - node-notifier: - optional: true - bin: - jest: bin/jest.js - checksum: 96f1d69042b3c6dfc695f2a4e4b0db38af6fb78582ad1a02beaa57cfcd77cbd31567d7d865c1c85709b7c3e176eefa3b2035ffecd646005f15d8ef528eccf205 + "@types/node": "*" + jest-util: ^29.6.3 + merge-stream: ^2.0.0 + supports-color: ^8.0.0 + checksum: 05d19a5759ebfeb964036065be55ad8d8e8ddffa85d9b3a4c0b95765695efb1d8226ec824a4d8e660c38cda3389bfeb98d819f47232acf9fb0e79f553b7c0a76 languageName: node linkType: hard -"jest@npm:^29.5.0": - version: 29.6.1 - resolution: "jest@npm:29.6.1" +"jest@npm:29.5.0": + version: 29.5.0 + resolution: "jest@npm:29.5.0" dependencies: - "@jest/core": ^29.6.1 - "@jest/types": ^29.6.1 + "@jest/core": ^29.5.0 + "@jest/types": ^29.5.0 import-local: ^3.0.2 - jest-cli: ^29.6.1 + jest-cli: ^29.5.0 peerDependencies: node-notifier: ^8.0.1 || ^9.0.0 || ^10.0.0 peerDependenciesMeta: @@ -16951,7 +16143,7 @@ __metadata: optional: true bin: jest: bin/jest.js - checksum: 7b8c0ca72f483e00ec19dcf9549f9a9af8ae468ab62925b148d714b58eb52d5fea9a082625193bc833d2d9b64cf65a11f3d37857636c5551af05c10aec4ce71b + checksum: a8ff2eb0f421623412236e23cbe67c638127fffde466cba9606bc0c0553b4c1e5cb116d7e0ef990b5d1712851652c8ee461373b578df50857fe635b94ff455d5 languageName: node linkType: hard @@ -17120,46 +16312,6 @@ __metadata: languageName: node linkType: hard -"jsdom@npm:^16.6.0": - version: 16.7.0 - resolution: "jsdom@npm:16.7.0" - dependencies: - abab: ^2.0.5 - acorn: ^8.2.4 - acorn-globals: ^6.0.0 - cssom: ^0.4.4 - cssstyle: ^2.3.0 - data-urls: ^2.0.0 - decimal.js: ^10.2.1 - domexception: ^2.0.1 - escodegen: ^2.0.0 - form-data: ^3.0.0 - html-encoding-sniffer: ^2.0.1 - http-proxy-agent: ^4.0.1 - https-proxy-agent: ^5.0.0 - is-potential-custom-element-name: ^1.0.1 - nwsapi: ^2.2.0 - parse5: 6.0.1 - saxes: ^5.0.1 - symbol-tree: ^3.2.4 - tough-cookie: ^4.0.0 - w3c-hr-time: ^1.0.2 - w3c-xmlserializer: ^2.0.0 - webidl-conversions: ^6.1.0 - whatwg-encoding: ^1.0.5 - whatwg-mimetype: ^2.3.0 - whatwg-url: ^8.5.0 - ws: ^7.4.6 - xml-name-validator: ^3.0.0 - peerDependencies: - canvas: ^2.5.0 - peerDependenciesMeta: - canvas: - optional: true - checksum: 454b83371857000763ed31130a049acd1b113e3b927e6dcd75c67ddc30cdd242d7ebcac5c2294b7a1a6428155cb1398709c573b3c6d809218692ea68edd93370 - languageName: node - linkType: hard - "jsesc@npm:^1.3.0": version: 1.3.0 resolution: "jsesc@npm:1.3.0" @@ -17289,15 +16441,6 @@ __metadata: languageName: node linkType: hard -"json5@npm:2.x, json5@npm:^2.1.2, json5@npm:^2.2.2, json5@npm:^2.2.3": - version: 2.2.3 - resolution: "json5@npm:2.2.3" - bin: - json5: lib/cli.js - checksum: 2a7436a93393830bce797d4626275152e37e877b265e94ca69c99e3d20c2b9dab021279146a39cdb700e71b2dd32a4cebd1514cd57cee102b1af906ce5040349 - languageName: node - linkType: hard - "json5@npm:^0.5.1": version: 0.5.1 resolution: "json5@npm:0.5.1" @@ -17318,6 +16461,15 @@ __metadata: languageName: node linkType: hard +"json5@npm:^2.1.2, json5@npm:^2.2.2, json5@npm:^2.2.3": + version: 2.2.3 + resolution: "json5@npm:2.2.3" + bin: + json5: lib/cli.js + checksum: 2a7436a93393830bce797d4626275152e37e877b265e94ca69c99e3d20c2b9dab021279146a39cdb700e71b2dd32a4cebd1514cd57cee102b1af906ce5040349 + languageName: node + linkType: hard + "jsonfile@npm:^2.1.0": version: 2.4.0 resolution: "jsonfile@npm:2.4.0" @@ -17886,7 +17038,7 @@ __metadata: languageName: node linkType: hard -"lodash@npm:^4.17.11, lodash@npm:^4.17.14, lodash@npm:^4.17.15, lodash@npm:^4.17.19, lodash@npm:^4.17.21, lodash@npm:^4.17.4, lodash@npm:^4.7.0": +"lodash@npm:^4.17.11, lodash@npm:^4.17.14, lodash@npm:^4.17.15, lodash@npm:^4.17.19, lodash@npm:^4.17.21, lodash@npm:^4.17.4": version: 4.17.21 resolution: "lodash@npm:4.17.21" checksum: eb835a2e51d381e561e508ce932ea50a8e5a68f4ebdd771ea240d3048244a8d13658acbd502cd4829768c56f2e16bdd4340b9ea141297d472517b83868e677f7 @@ -19355,13 +18507,6 @@ __metadata: languageName: node linkType: hard -"nwsapi@npm:^2.2.0": - version: 2.2.7 - resolution: "nwsapi@npm:2.2.7" - checksum: cab25f7983acec7e23490fec3ef7be608041b460504229770e3bfcf9977c41d6fe58f518994d3bd9aa3a101f501089a3d4a63536f4ff8ae4b8c4ca23bdbfda4e - languageName: node - linkType: hard - "oauth-sign@npm:~0.9.0": version: 0.9.0 resolution: "oauth-sign@npm:0.9.0" @@ -19815,13 +18960,6 @@ __metadata: languageName: node linkType: hard -"parse5@npm:6.0.1": - version: 6.0.1 - resolution: "parse5@npm:6.0.1" - checksum: 7d569a176c5460897f7c8f3377eff640d54132b9be51ae8a8fa4979af940830b2b0c296ce75e5bd8f4041520aadde13170dbdec44889975f906098ea0002f4bd - languageName: node - linkType: hard - "parseurl@npm:~1.3.2, parseurl@npm:~1.3.3": version: 1.3.3 resolution: "parseurl@npm:1.3.3" @@ -20373,7 +19511,7 @@ __metadata: languageName: node linkType: hard -"pretty-format@npm:^27.0.0, pretty-format@npm:^27.0.2, pretty-format@npm:^27.5.1": +"pretty-format@npm:^27.0.2": version: 27.5.1 resolution: "pretty-format@npm:27.5.1" dependencies: @@ -20395,6 +19533,17 @@ __metadata: languageName: node linkType: hard +"pretty-format@npm:^29.6.3": + version: 29.6.3 + resolution: "pretty-format@npm:29.6.3" + dependencies: + "@jest/schemas": ^29.6.3 + ansi-styles: ^5.0.0 + react-is: ^18.0.0 + checksum: 4e1c0db48e65571c22e80ff92123925ff8b3a2a89b71c3a1683cfde711004d492de32fe60c6bc10eea8bf6c678e5cbe544ac6c56cb8096e1eb7caf856928b1c4 + languageName: node + linkType: hard + "pretty-hrtime@npm:^1.0.3": version: 1.0.3 resolution: "pretty-hrtime@npm:1.0.3" @@ -20511,7 +19660,7 @@ __metadata: languageName: node linkType: hard -"psl@npm:^1.1.28, psl@npm:^1.1.33": +"psl@npm:^1.1.28": version: 1.9.0 resolution: "psl@npm:1.9.0" checksum: 20c4277f640c93d393130673f392618e9a8044c6c7bf61c53917a0fddb4952790f5f362c6c730a9c32b124813e173733f9895add8d26f566ed0ea0654b2e711d @@ -20707,13 +19856,6 @@ __metadata: languageName: node linkType: hard -"querystringify@npm:^2.1.1": - version: 2.2.0 - resolution: "querystringify@npm:2.2.0" - checksum: 5641ea231bad7ef6d64d9998faca95611ed4b11c2591a8cae741e178a974f6a8e0ebde008475259abe1621cb15e692404e6b6626e927f7b849d5c09392604b15 - languageName: node - linkType: hard - "queue-microtask@npm:^1.2.2, queue-microtask@npm:^1.2.3": version: 1.2.3 resolution: "queue-microtask@npm:1.2.3" @@ -21397,13 +20539,6 @@ __metadata: languageName: node linkType: hard -"requires-port@npm:^1.0.0": - version: 1.0.0 - resolution: "requires-port@npm:1.0.0" - checksum: eee0e303adffb69be55d1a214e415cf42b7441ae858c76dfc5353148644f6fd6e698926fc4643f510d5c126d12a705e7c8ed7e38061113bdf37547ab356797ff - languageName: node - linkType: hard - "resolve-alpn@npm:^1.0.0": version: 1.2.1 resolution: "resolve-alpn@npm:1.2.1" @@ -21461,13 +20596,6 @@ __metadata: languageName: node linkType: hard -"resolve.exports@npm:^1.1.0": - version: 1.1.1 - resolution: "resolve.exports@npm:1.1.1" - checksum: 485aa10082eb388a569d696e17ad7b16f4186efc97dd34eadd029d95b811f21ffee13b1b733198bb4584dbb3cb296aa6f141835221fb7613b9606b84f1386655 - languageName: node - linkType: hard - "resolve.exports@npm:^2.0.0": version: 2.0.2 resolution: "resolve.exports@npm:2.0.2" @@ -21628,7 +20756,7 @@ __metadata: languageName: node linkType: hard -"rimraf@npm:^3.0.0, rimraf@npm:^3.0.2": +"rimraf@npm:^3.0.2": version: 3.0.2 resolution: "rimraf@npm:3.0.2" dependencies: @@ -21841,15 +20969,6 @@ __metadata: languageName: node linkType: hard -"saxes@npm:^5.0.1": - version: 5.0.1 - resolution: "saxes@npm:5.0.1" - dependencies: - xmlchars: ^2.2.0 - checksum: 5636b55cf15f7cf0baa73f2797bf992bdcf75d1b39d82c0aa4608555c774368f6ac321cb641fd5f3d3ceb87805122cd47540da6a7b5960fe0dbdb8f8c263f000 - languageName: node - linkType: hard - "sc-istanbul@npm:^0.4.5": version: 0.4.6 resolution: "sc-istanbul@npm:0.4.6" @@ -21941,7 +21060,7 @@ __metadata: languageName: node linkType: hard -"semver@npm:7.x, semver@npm:^7.2.1, semver@npm:^7.3.2, semver@npm:^7.3.4, semver@npm:^7.3.5, semver@npm:^7.3.7, semver@npm:^7.3.8, semver@npm:^7.5.2, semver@npm:^7.5.3": +"semver@npm:7.x, semver@npm:^7.2.1, semver@npm:^7.3.4, semver@npm:^7.3.5, semver@npm:^7.3.7, semver@npm:^7.3.8, semver@npm:^7.5.2, semver@npm:^7.5.3, semver@npm:^7.5.4": version: 7.5.4 resolution: "semver@npm:7.5.4" dependencies: @@ -22553,7 +21672,7 @@ __metadata: languageName: node linkType: hard -"source-map-support@npm:^0.5.13, source-map-support@npm:^0.5.16, source-map-support@npm:^0.5.6": +"source-map-support@npm:^0.5.13, source-map-support@npm:^0.5.16": version: 0.5.21 resolution: "source-map-support@npm:0.5.21" dependencies: @@ -22584,13 +21703,6 @@ __metadata: languageName: node linkType: hard -"source-map@npm:^0.7.3": - version: 0.7.4 - resolution: "source-map@npm:0.7.4" - checksum: 01cc5a74b1f0e1d626a58d36ad6898ea820567e87f18dfc9d24a9843a351aaa2ec09b87422589906d6ff1deed29693e176194dc88bcae7c9a852dc74b311dbf5 - languageName: node - linkType: hard - "source-map@npm:~0.2.0": version: 0.2.0 resolution: "source-map@npm:0.2.0" @@ -23115,7 +22227,7 @@ __metadata: languageName: node linkType: hard -"supports-color@npm:^7.0.0, supports-color@npm:^7.1.0": +"supports-color@npm:^7.1.0": version: 7.2.0 resolution: "supports-color@npm:7.2.0" dependencies: @@ -23124,16 +22236,6 @@ __metadata: languageName: node linkType: hard -"supports-hyperlinks@npm:^2.0.0": - version: 2.3.0 - resolution: "supports-hyperlinks@npm:2.3.0" - dependencies: - has-flag: ^4.0.0 - supports-color: ^7.0.0 - checksum: 9ee0de3c8ce919d453511b2b1588a8205bd429d98af94a01df87411391010fe22ca463f268c84b2ce2abad019dfff8452aa02806eeb5c905a8d7ad5c4f4c52b8 - languageName: node - linkType: hard - "supports-preserve-symlinks-flag@npm:^1.0.0": version: 1.0.0 resolution: "supports-preserve-symlinks-flag@npm:1.0.0" @@ -23160,13 +22262,6 @@ __metadata: languageName: node linkType: hard -"symbol-tree@npm:^3.2.4": - version: 3.2.4 - resolution: "symbol-tree@npm:3.2.4" - checksum: 6e8fc7e1486b8b54bea91199d9535bb72f10842e40c79e882fc94fb7b14b89866adf2fd79efa5ebb5b658bc07fb459ccce5ac0e99ef3d72f474e74aaf284029d - languageName: node - linkType: hard - "sync-request@npm:^6.0.0": version: 6.1.0 resolution: "sync-request@npm:6.1.0" @@ -23356,16 +22451,6 @@ __metadata: languageName: node linkType: hard -"terminal-link@npm:^2.0.0": - version: 2.1.1 - resolution: "terminal-link@npm:2.1.1" - dependencies: - ansi-escapes: ^4.2.1 - supports-hyperlinks: ^2.0.0 - checksum: ce3d2cd3a438c4a9453947aa664581519173ea40e77e2534d08c088ee6dda449eabdbe0a76d2a516b8b73c33262fedd10d5270ccf7576ae316e3db170ce6562f - languageName: node - linkType: hard - "test-exclude@npm:^6.0.0": version: 6.0.0 resolution: "test-exclude@npm:6.0.0" @@ -23420,13 +22505,6 @@ __metadata: languageName: node linkType: hard -"throat@npm:^6.0.1": - version: 6.0.2 - resolution: "throat@npm:6.0.2" - checksum: 463093768d4884772020bb18b0f33d3fec8a2b4173f7da3958dfbe88ff0f1e686ffadf0f87333bf6f6db7306b1450efc7855df69c78bf0bfa61f6d84a3361fe8 - languageName: node - linkType: hard - "through2@npm:^2.0.3": version: 2.0.5 resolution: "through2@npm:2.0.5" @@ -23561,27 +22639,6 @@ __metadata: languageName: node linkType: hard -"tough-cookie@npm:^4.0.0": - version: 4.1.3 - resolution: "tough-cookie@npm:4.1.3" - dependencies: - psl: ^1.1.33 - punycode: ^2.1.1 - universalify: ^0.2.0 - url-parse: ^1.5.3 - checksum: c9226afff36492a52118432611af083d1d8493a53ff41ec4ea48e5b583aec744b989e4280bcf476c910ec1525a89a4a0f1cae81c08b18fb2ec3a9b3a72b91dcc - languageName: node - linkType: hard - -"tr46@npm:^2.1.0": - version: 2.1.0 - resolution: "tr46@npm:2.1.0" - dependencies: - punycode: ^2.1.1 - checksum: ffe6049b9dca3ae329b059aada7f515b0f0064c611b39b51ff6b53897e954650f6f63d9319c6c008d36ead477c7b55e5f64c9dc60588ddc91ff720d64eb710b3 - languageName: node - linkType: hard - "tr46@npm:~0.0.3": version: 0.0.3 resolution: "tr46@npm:0.0.3" @@ -23670,42 +22727,9 @@ __metadata: languageName: node linkType: hard -"ts-jest@npm:^27.1.3": - version: 27.1.5 - resolution: "ts-jest@npm:27.1.5" - dependencies: - bs-logger: 0.x - fast-json-stable-stringify: 2.x - jest-util: ^27.0.0 - json5: 2.x - lodash.memoize: 4.x - make-error: 1.x - semver: 7.x - yargs-parser: 20.x - peerDependencies: - "@babel/core": ">=7.0.0-beta.0 <8" - "@types/jest": ^27.0.0 - babel-jest: ">=27.0.0 <28" - jest: ^27.0.0 - typescript: ">=3.8 <5.0" - peerDependenciesMeta: - "@babel/core": - optional: true - "@types/jest": - optional: true - babel-jest: - optional: true - esbuild: - optional: true - bin: - ts-jest: cli.js - checksum: 3ef51c538b82f49b3f529331c1a017871a2f90e7a9a6e69333304755036d121818c6b120e2ce32dd161ff8bb2487efec0c790753ecd39b46a9ed1ce0d241464c - languageName: node - linkType: hard - -"ts-jest@npm:^29.1.0": - version: 29.1.1 - resolution: "ts-jest@npm:29.1.1" +"ts-jest@npm:29.1.0": + version: 29.1.0 + resolution: "ts-jest@npm:29.1.0" dependencies: bs-logger: 0.x fast-json-stable-stringify: 2.x @@ -23713,7 +22737,7 @@ __metadata: json5: ^2.2.3 lodash.memoize: 4.x make-error: 1.x - semver: ^7.5.3 + semver: 7.x yargs-parser: ^21.0.1 peerDependencies: "@babel/core": ">=7.0.0-beta.0 <8" @@ -23732,7 +22756,7 @@ __metadata: optional: true bin: ts-jest: cli.js - checksum: a8c9e284ed4f819526749f6e4dc6421ec666f20ab44d31b0f02b4ed979975f7580b18aea4813172d43e39b29464a71899f8893dd29b06b4a351a3af8ba47b402 + checksum: 535dc42ad523cbe1e387701fb2e448518419b515c082f09b25411f0b3dd0b854cf3e8141c316d6f4b99883aeb4a4f94159cbb1edfb06d7f77ea6229fadb2e1bf languageName: node linkType: hard @@ -24306,13 +23330,6 @@ __metadata: languageName: node linkType: hard -"universalify@npm:^0.2.0": - version: 0.2.0 - resolution: "universalify@npm:0.2.0" - checksum: e86134cb12919d177c2353196a4cc09981524ee87abf621f7bc8d249dbbbebaec5e7d1314b96061497981350df786e4c5128dbf442eba104d6e765bc260678b5 - languageName: node - linkType: hard - "universalify@npm:^1.0.0": version: 1.0.0 resolution: "universalify@npm:1.0.0" @@ -24409,16 +23426,6 @@ __metadata: languageName: node linkType: hard -"url-parse@npm:^1.5.3": - version: 1.5.10 - resolution: "url-parse@npm:1.5.10" - dependencies: - querystringify: ^2.1.1 - requires-port: ^1.0.0 - checksum: fbdba6b1d83336aca2216bbdc38ba658d9cfb8fc7f665eb8b17852de638ff7d1a162c198a8e4ed66001ddbf6c9888d41e4798912c62b4fd777a31657989f7bdf - languageName: node - linkType: hard - "url-set-query@npm:^1.0.0": version: 1.0.0 resolution: "url-set-query@npm:1.0.0" @@ -24571,17 +23578,6 @@ __metadata: languageName: node linkType: hard -"v8-to-istanbul@npm:^8.1.0": - version: 8.1.1 - resolution: "v8-to-istanbul@npm:8.1.1" - dependencies: - "@types/istanbul-lib-coverage": ^2.0.1 - convert-source-map: ^1.6.0 - source-map: ^0.7.3 - checksum: 54ce92bec2727879626f623d02c8d193f0c7e919941fa373ec135189a8382265117f5316ea317a1e12a5f9c13d84d8449052a731fe3306fa4beaafbfa4cab229 - languageName: node - linkType: hard - "v8-to-istanbul@npm:^9.0.0, v8-to-istanbul@npm:^9.0.1": version: 9.1.0 resolution: "v8-to-istanbul@npm:9.1.0" @@ -24668,24 +23664,6 @@ __metadata: languageName: node linkType: hard -"w3c-hr-time@npm:^1.0.2": - version: 1.0.2 - resolution: "w3c-hr-time@npm:1.0.2" - dependencies: - browser-process-hrtime: ^1.0.0 - checksum: ec3c2dacbf8050d917bbf89537a101a08c2e333b4c19155f7d3bedde43529d4339db6b3d049d9610789cb915f9515f8be037e0c54c079e9d4735c50b37ed52b9 - languageName: node - linkType: hard - -"w3c-xmlserializer@npm:^2.0.0": - version: 2.0.0 - resolution: "w3c-xmlserializer@npm:2.0.0" - dependencies: - xml-name-validator: ^3.0.0 - checksum: ae25c51cf71f1fb2516df1ab33a481f83461a117565b95e3d0927432522323f93b1b2846cbb60196d337970c421adb604fc2d0d180c6a47a839da01db5b9973b - languageName: node - linkType: hard - "wait-on@npm:^6.0.1": version: 6.0.1 resolution: "wait-on@npm:6.0.1" @@ -24701,7 +23679,7 @@ __metadata: languageName: node linkType: hard -"walker@npm:^1.0.7, walker@npm:^1.0.8": +"walker@npm:^1.0.8": version: 1.0.8 resolution: "walker@npm:1.0.8" dependencies: @@ -25074,20 +24052,6 @@ __metadata: languageName: node linkType: hard -"webidl-conversions@npm:^5.0.0": - version: 5.0.0 - resolution: "webidl-conversions@npm:5.0.0" - checksum: ccf1ec2ca7c0b5671e5440ace4a66806ae09c49016ab821481bec0c05b1b82695082dc0a27d1fe9d804d475a408ba0c691e6803fd21be608e710955d4589cd69 - languageName: node - linkType: hard - -"webidl-conversions@npm:^6.1.0": - version: 6.1.0 - resolution: "webidl-conversions@npm:6.1.0" - checksum: 1f526507aa491f972a0c1409d07f8444e1d28778dfa269a9971f2e157182f3d496dc33296e4ed45b157fdb3bf535bb90c90bf10c50dcf1dd6caacb2a34cc84fb - languageName: node - linkType: hard - "webpack-sources@npm:^3.2.3": version: 3.2.3 resolution: "webpack-sources@npm:3.2.3" @@ -25130,15 +24094,6 @@ __metadata: languageName: node linkType: hard -"whatwg-encoding@npm:^1.0.5": - version: 1.0.5 - resolution: "whatwg-encoding@npm:1.0.5" - dependencies: - iconv-lite: 0.4.24 - checksum: 5be4efe111dce29ddee3448d3915477fcc3b28f991d9cf1300b4e50d6d189010d47bca2f51140a844cf9b726e8f066f4aee72a04d687bfe4f2ee2767b2f5b1e6 - languageName: node - linkType: hard - "whatwg-fetch@npm:^2.0.4": version: 2.0.4 resolution: "whatwg-fetch@npm:2.0.4" @@ -25146,13 +24101,6 @@ __metadata: languageName: node linkType: hard -"whatwg-mimetype@npm:^2.3.0": - version: 2.3.0 - resolution: "whatwg-mimetype@npm:2.3.0" - checksum: 23eb885940bcbcca4ff841c40a78e9cbb893ec42743993a42bf7aed16085b048b44b06f3402018931687153550f9a32d259dfa524e4f03577ab898b6965e5383 - languageName: node - linkType: hard - "whatwg-url@npm:^5.0.0": version: 5.0.0 resolution: "whatwg-url@npm:5.0.0" @@ -25163,17 +24111,6 @@ __metadata: languageName: node linkType: hard -"whatwg-url@npm:^8.0.0, whatwg-url@npm:^8.5.0": - version: 8.7.0 - resolution: "whatwg-url@npm:8.7.0" - dependencies: - lodash: ^4.7.0 - tr46: ^2.1.0 - webidl-conversions: ^6.1.0 - checksum: a87abcc6cefcece5311eb642858c8fdb234e51ec74196bfacf8def2edae1bfbffdf6acb251646ed6301f8cee44262642d8769c707256125a91387e33f405dd1e - languageName: node - linkType: hard - "which-boxed-primitive@npm:^1.0.2": version: 1.0.2 resolution: "which-boxed-primitive@npm:1.0.2" @@ -25547,20 +24484,6 @@ __metadata: languageName: node linkType: hard -"xml-name-validator@npm:^3.0.0": - version: 3.0.0 - resolution: "xml-name-validator@npm:3.0.0" - checksum: b3ac459afed783c285bb98e4960bd1f3ba12754fd4f2320efa0f9181ca28928c53cc75ca660d15d205e81f92304419afe94c531c7cfb3e0649aa6d140d53ecb0 - languageName: node - linkType: hard - -"xmlchars@npm:^2.2.0": - version: 2.2.0 - resolution: "xmlchars@npm:2.2.0" - checksum: 8c70ac94070ccca03f47a81fcce3b271bd1f37a591bf5424e787ae313fcb9c212f5f6786e1fa82076a2c632c0141552babcd85698c437506dfa6ae2d58723062 - languageName: node - linkType: hard - "xmlhttprequest@npm:1.8.0": version: 1.8.0 resolution: "xmlhttprequest@npm:1.8.0" @@ -25650,13 +24573,6 @@ __metadata: languageName: node linkType: hard -"yargs-parser@npm:20.x, yargs-parser@npm:^20.2.2, yargs-parser@npm:^20.2.9": - version: 20.2.9 - resolution: "yargs-parser@npm:20.2.9" - checksum: 8bb69015f2b0ff9e17b2c8e6bfe224ab463dd00ca211eece72a4cd8a906224d2703fb8a326d36fdd0e68701e201b2a60ed7cf81ce0fd9b3799f9fe7745977ae3 - languageName: node - linkType: hard - "yargs-parser@npm:^18.1.2": version: 18.1.3 resolution: "yargs-parser@npm:18.1.3" @@ -25677,6 +24593,13 @@ __metadata: languageName: node linkType: hard +"yargs-parser@npm:^20.2.2, yargs-parser@npm:^20.2.9": + version: 20.2.9 + resolution: "yargs-parser@npm:20.2.9" + checksum: 8bb69015f2b0ff9e17b2c8e6bfe224ab463dd00ca211eece72a4cd8a906224d2703fb8a326d36fdd0e68701e201b2a60ed7cf81ce0fd9b3799f9fe7745977ae3 + languageName: node + linkType: hard + "yargs-parser@npm:^21.0.1, yargs-parser@npm:^21.1.1": version: 21.1.1 resolution: "yargs-parser@npm:21.1.1"