diff --git a/jest.config.packages.js b/jest.config.packages.js index 9a260ff9..3416ab7b 100644 --- a/jest.config.packages.js +++ b/jest.config.packages.js @@ -141,7 +141,7 @@ module.exports = { // runner: "jest-runner", // The paths to modules that run some code to configure or set up the testing environment before each test - setupFiles: ['../../tests/setup.ts'], + // setupFiles: ['../../tests/setup.ts'], // A list of paths to modules that run some code to configure or set up the testing framework before each test // setupFilesAfterEnv: ['../../tests/setupAfterEnv/index.ts'], diff --git a/package.json b/package.json index 925aad20..81670a3b 100644 --- a/package.json +++ b/package.json @@ -48,36 +48,36 @@ "@lavamoat/allow-scripts": "^3.2.1", "@lavamoat/preinstall-always-fail": "^2.1.0", "@metamask/create-release-branch": "^3.0.1", - "@metamask/eslint-config": "^12.2.0", - "@metamask/eslint-config-jest": "^12.1.0", - "@metamask/eslint-config-nodejs": "^12.1.0", - "@metamask/eslint-config-typescript": "^12.1.0", + "@metamask/eslint-config": "^13.0.0", + "@metamask/eslint-config-jest": "^13.0.0", + "@metamask/eslint-config-nodejs": "^13.0.0", + "@metamask/eslint-config-typescript": "^13.0.0", "@npmcli/package-json": "^5.0.0", "@types/jest": "^29.5.12", "@types/node": "^20.12.12", - "@typescript-eslint/eslint-plugin": "^5.43.0", - "@typescript-eslint/parser": "^5.43.0", + "@typescript-eslint/eslint-plugin": "^8.5.0", + "@typescript-eslint/parser": "^8.5.0", "depcheck": "^1.4.7", - "eslint": "^8.44.0", + "eslint": "^8.55.0", "eslint-config-prettier": "^8.8.0", - "eslint-plugin-import": "~2.26.0", - "eslint-plugin-jest": "^27.2.2", - "eslint-plugin-jsdoc": "^39.9.1", - "eslint-plugin-n": "^15.7.0", + "eslint-plugin-import-x": "^0.5.3", + "eslint-plugin-jest": "^27.9.0", + "eslint-plugin-jsdoc": "^47.0.2", + "eslint-plugin-n": "^16.6.2", "eslint-plugin-prettier": "^4.2.1", - "eslint-plugin-promise": "^6.1.1", + "eslint-plugin-promise": "^6.6.0", "execa": "^5.0.0", "jest": "^29.5.0", "jest-it-up": "^3.1.0", "jest-silent-reporter": "^0.5.0", "prettier": "^2.8.8", - "prettier-plugin-packagejson": "^2.3.0", - "rimraf": "^5.0.7", + "prettier-plugin-packagejson": "^2.5.2", + "rimraf": "^5.0.10", "syncpack": "^13.0.0", "ts-jest": "^29.0.5", "ts-node": "^10.9.2", "typedoc": "^0.25.13", - "typescript": "~4.8.4" + "typescript": "~5.4.5" }, "packageManager": "yarn@4.5.0", "engines": { diff --git a/packages/keyring-api/package.json b/packages/keyring-api/package.json index 600167c8..42e85fc7 100644 --- a/packages/keyring-api/package.json +++ b/packages/keyring-api/package.json @@ -56,12 +56,12 @@ "depcheck": "^1.4.7", "jest": "^29.5.0", "jest-it-up": "^3.1.0", - "rimraf": "^5.0.7", + "rimraf": "^5.0.10", "ts-jest": "^29.0.5", "ts-node": "^10.9.2", "tsd": "^0.31.0", "typedoc": "^0.25.13", - "typescript": "~4.8.4" + "typescript": "~5.4.5" }, "peerDependencies": { "@metamask/providers": "^17.2.0" diff --git a/packages/keyring-api/src/KeyringClient.ts b/packages/keyring-api/src/KeyringClient.ts index 9e51079a..6de1d432 100644 --- a/packages/keyring-api/src/KeyringClient.ts +++ b/packages/keyring-api/src/KeyringClient.ts @@ -35,7 +35,7 @@ export type Sender = { }; export class KeyringClient implements Keyring { - #sender: Sender; + readonly #sender: Sender; /** * Create a new instance of `KeyringClient`. diff --git a/packages/keyring-api/src/KeyringSnapRpcClient.ts b/packages/keyring-api/src/KeyringSnapRpcClient.ts index e1309c37..17f27d8b 100644 --- a/packages/keyring-api/src/KeyringSnapRpcClient.ts +++ b/packages/keyring-api/src/KeyringSnapRpcClient.ts @@ -10,9 +10,9 @@ import { KeyringClient } from './KeyringClient'; * to a snap through the snap JSON-RPC API. */ export class SnapRpcSender implements Sender { - #origin: string; + readonly #origin: string; - #provider: MetaMaskInpageProvider; + readonly #provider: MetaMaskInpageProvider; /** * Create a new instance of `SnapRpcSender`. diff --git a/packages/keyring-api/src/api/index.ts b/packages/keyring-api/src/api/index.ts index 2f0ab53b..81f77490 100644 --- a/packages/keyring-api/src/api/index.ts +++ b/packages/keyring-api/src/api/index.ts @@ -2,6 +2,6 @@ export * from './account'; export * from './balance'; export * from './caip'; export * from './export'; -export * from './keyring'; +export type * from './keyring'; export * from './request'; export * from './response'; diff --git a/packages/keyring-api/src/btc/types.test-d.ts b/packages/keyring-api/src/btc/types.test-d.ts index f3be51f5..74367be1 100644 --- a/packages/keyring-api/src/btc/types.test-d.ts +++ b/packages/keyring-api/src/btc/types.test-d.ts @@ -1,7 +1,7 @@ +import type { BtcP2wpkhAccount } from './types'; import type { KeyringAccount } from '../api'; import type { Extends } from '../utils'; import { expectTrue } from '../utils'; -import type { BtcP2wpkhAccount } from './types'; // `BtcP2wpkhAccount` extends `KeyringAccount` expectTrue>(); diff --git a/packages/keyring-api/src/eth/erc4337/types.ts b/packages/keyring-api/src/eth/erc4337/types.ts index 5a7db8f4..ba92a384 100644 --- a/packages/keyring-api/src/eth/erc4337/types.ts +++ b/packages/keyring-api/src/eth/erc4337/types.ts @@ -6,6 +6,7 @@ import { EthAddressStruct, EthBytesStruct, EthUint256Struct } from '../types'; /** * Struct of a UserOperation as defined by ERC-4337. + * * @see https://eips.ethereum.org/EIPS/eip-4337#definitions */ export const EthUserOperationStruct = object({ diff --git a/packages/keyring-api/src/eth/types.test-d.ts b/packages/keyring-api/src/eth/types.test-d.ts index d413ffc2..250f7eb6 100644 --- a/packages/keyring-api/src/eth/types.test-d.ts +++ b/packages/keyring-api/src/eth/types.test-d.ts @@ -1,11 +1,11 @@ import { expectAssignable, expectNotAssignable } from 'tsd'; +import type { EthEoaAccount, EthErc4337Account } from './types'; +import { EthMethod } from './types'; import type { KeyringAccount } from '../api'; import { EthAccountType } from '../api'; import type { Extends } from '../utils'; import { expectTrue } from '../utils'; -import type { EthEoaAccount, EthErc4337Account } from './types'; -import { EthMethod } from './types'; const id = '606a7759-b0fb-48e4-9874-bab62ff8e7eb'; const address = '0x000'; diff --git a/packages/keyring-api/src/eth/utils.test.ts b/packages/keyring-api/src/eth/utils.test.ts index ea3e9dd7..3881aea9 100644 --- a/packages/keyring-api/src/eth/utils.test.ts +++ b/packages/keyring-api/src/eth/utils.test.ts @@ -1,5 +1,5 @@ -import { BtcAccountType, EthAccountType } from '../api'; import { isEvmAccountType } from './utils'; +import { BtcAccountType, EthAccountType } from '../api'; describe('isEvmAccountType', () => { it.each([ diff --git a/packages/keyring-api/src/index.ts b/packages/keyring-api/src/index.ts index 7acb3b95..57920bb6 100644 --- a/packages/keyring-api/src/index.ts +++ b/packages/keyring-api/src/index.ts @@ -1,6 +1,6 @@ export * from './api'; export * from './btc'; -export * from './contexts'; +export type * from './contexts'; export * from './eth'; export * from './events'; export * from './internal'; diff --git a/packages/keyring-api/src/internal/api.ts b/packages/keyring-api/src/internal/api.ts index 7e6bc9ba..341ca8f2 100644 --- a/packages/keyring-api/src/internal/api.ts +++ b/packages/keyring-api/src/internal/api.ts @@ -9,6 +9,7 @@ import { } from '@metamask/superstruct'; import { JsonStruct } from '@metamask/utils'; +import { KeyringRpcMethod } from './rpc'; import { BalanceStruct, CaipAssetTypeStruct, @@ -19,7 +20,6 @@ import { } from '../api'; import { object } from '../superstruct'; import { UuidStruct } from '../utils'; -import { KeyringRpcMethod } from './rpc'; const CommonHeader = { jsonrpc: literal('2.0'), diff --git a/packages/keyring-api/src/internal/eth/index.ts b/packages/keyring-api/src/internal/eth/index.ts index fa5f8282..ab70630a 100644 --- a/packages/keyring-api/src/internal/eth/index.ts +++ b/packages/keyring-api/src/internal/eth/index.ts @@ -1 +1 @@ -export * from './EthKeyring'; +export type * from './EthKeyring'; diff --git a/packages/keyring-api/src/internal/events.test.ts b/packages/keyring-api/src/internal/events.test.ts index 7b902cc2..e2e1873d 100644 --- a/packages/keyring-api/src/internal/events.test.ts +++ b/packages/keyring-api/src/internal/events.test.ts @@ -1,7 +1,5 @@ import { is } from '@metamask/superstruct'; -import { EthAccountType } from '../api'; -import { KeyringEvent } from '../events'; import { AccountCreatedEventStruct, AccountDeletedEventStruct, @@ -9,6 +7,8 @@ import { RequestApprovedEventStruct, RequestRejectedEventStruct, } from './events'; +import { EthAccountType } from '../api'; +import { KeyringEvent } from '../events'; describe('events', () => { describe('AccountCreatedEventStruct', () => { diff --git a/packages/keyring-api/src/internal/index.ts b/packages/keyring-api/src/internal/index.ts index 3b119936..2ec237b3 100644 --- a/packages/keyring-api/src/internal/index.ts +++ b/packages/keyring-api/src/internal/index.ts @@ -1,5 +1,5 @@ export * from './api'; -export * from './eth'; +export type * from './eth'; export * from './events'; export * from './rpc'; export * from './types'; diff --git a/packages/keyring-api/src/internal/types.ts b/packages/keyring-api/src/internal/types.ts index cf558f8e..bbf54a52 100644 --- a/packages/keyring-api/src/internal/types.ts +++ b/packages/keyring-api/src/internal/types.ts @@ -27,31 +27,20 @@ export const InternalAccountMetadataStruct = object({ }), }); -/** - * Creates an `InternalAccount` from an existing account `superstruct` object. - * - * @param accountStruct - An account `superstruct` object. - * @returns The `InternalAccount` associated to `accountStruct`. - */ -function asInternalAccountStruct( - accountStruct: Struct, -) { - return object({ - ...accountStruct.schema, - ...InternalAccountMetadataStruct.schema, - }); -} - -export const InternalEthEoaAccountStruct = - asInternalAccountStruct(EthEoaAccountStruct); +export const InternalEthEoaAccountStruct = object({ + ...EthEoaAccountStruct.schema, + ...InternalAccountMetadataStruct.schema, +}); -export const InternalEthErc4337AccountStruct = asInternalAccountStruct( - EthErc4337AccountStruct, -); +export const InternalEthErc4337AccountStruct = object({ + ...EthErc4337AccountStruct.schema, + ...InternalAccountMetadataStruct.schema, +}); -export const InternalBtcP2wpkhAccountStruct = asInternalAccountStruct( - BtcP2wpkhAccountStruct, -); +export const InternalBtcP2wpkhAccountStruct = object({ + ...BtcP2wpkhAccountStruct.schema, + ...InternalAccountMetadataStruct.schema, +}); export type InternalEthEoaAccount = Infer; diff --git a/packages/keyring-api/src/rpc-handler.ts b/packages/keyring-api/src/rpc-handler.ts index 4edf5901..0e48622a 100644 --- a/packages/keyring-api/src/rpc-handler.ts +++ b/packages/keyring-api/src/rpc-handler.ts @@ -47,22 +47,22 @@ async function dispatchRequest( assert(request, JsonRpcRequestStruct); switch (request.method) { - case KeyringRpcMethod.ListAccounts: { + case `${KeyringRpcMethod.ListAccounts}`: { assert(request, ListAccountsRequestStruct); return keyring.listAccounts(); } - case KeyringRpcMethod.GetAccount: { + case `${KeyringRpcMethod.GetAccount}`: { assert(request, GetAccountRequestStruct); return keyring.getAccount(request.params.id); } - case KeyringRpcMethod.CreateAccount: { + case `${KeyringRpcMethod.CreateAccount}`: { assert(request, CreateAccountRequestStruct); return keyring.createAccount(request.params.options); } - case KeyringRpcMethod.GetAccountBalances: { + case `${KeyringRpcMethod.GetAccountBalances}`: { if (keyring.getAccountBalances === undefined) { throw new MethodNotSupportedError(request.method); } @@ -73,7 +73,7 @@ async function dispatchRequest( ); } - case KeyringRpcMethod.FilterAccountChains: { + case `${KeyringRpcMethod.FilterAccountChains}`: { assert(request, FilterAccountChainsStruct); return keyring.filterAccountChains( request.params.id, @@ -81,17 +81,17 @@ async function dispatchRequest( ); } - case KeyringRpcMethod.UpdateAccount: { + case `${KeyringRpcMethod.UpdateAccount}`: { assert(request, UpdateAccountRequestStruct); return keyring.updateAccount(request.params.account); } - case KeyringRpcMethod.DeleteAccount: { + case `${KeyringRpcMethod.DeleteAccount}`: { assert(request, DeleteAccountRequestStruct); return keyring.deleteAccount(request.params.id); } - case KeyringRpcMethod.ExportAccount: { + case `${KeyringRpcMethod.ExportAccount}`: { if (keyring.exportAccount === undefined) { throw new MethodNotSupportedError(request.method); } @@ -99,7 +99,7 @@ async function dispatchRequest( return keyring.exportAccount(request.params.id); } - case KeyringRpcMethod.ListRequests: { + case `${KeyringRpcMethod.ListRequests}`: { if (keyring.listRequests === undefined) { throw new MethodNotSupportedError(request.method); } @@ -107,7 +107,7 @@ async function dispatchRequest( return keyring.listRequests(); } - case KeyringRpcMethod.GetRequest: { + case `${KeyringRpcMethod.GetRequest}`: { if (keyring.getRequest === undefined) { throw new MethodNotSupportedError(request.method); } @@ -115,12 +115,12 @@ async function dispatchRequest( return keyring.getRequest(request.params.id); } - case KeyringRpcMethod.SubmitRequest: { + case `${KeyringRpcMethod.SubmitRequest}`: { assert(request, SubmitRequestRequestStruct); return keyring.submitRequest(request.params); } - case KeyringRpcMethod.ApproveRequest: { + case `${KeyringRpcMethod.ApproveRequest}`: { if (keyring.approveRequest === undefined) { throw new MethodNotSupportedError(request.method); } @@ -128,7 +128,7 @@ async function dispatchRequest( return keyring.approveRequest(request.params.id, request.params.data); } - case KeyringRpcMethod.RejectRequest: { + case `${KeyringRpcMethod.RejectRequest}`: { if (keyring.rejectRequest === undefined) { throw new MethodNotSupportedError(request.method); } diff --git a/packages/keyring-api/src/superstruct.test-d.ts b/packages/keyring-api/src/superstruct.test-d.ts index 1b42a4b0..6bd6aec7 100644 --- a/packages/keyring-api/src/superstruct.test-d.ts +++ b/packages/keyring-api/src/superstruct.test-d.ts @@ -4,6 +4,7 @@ import { expectAssignable, expectNotAssignable } from 'tsd'; import { exactOptional, object } from '.'; +// eslint-disable-next-line @typescript-eslint/no-unused-vars const exactOptionalObject = object({ a: number(), b: optional(string()), diff --git a/packages/keyring-api/src/superstruct.ts b/packages/keyring-api/src/superstruct.ts index 01e3e427..541f22bd 100644 --- a/packages/keyring-api/src/superstruct.ts +++ b/packages/keyring-api/src/superstruct.ts @@ -14,6 +14,7 @@ import type { Simplify, } from '@metamask/superstruct'; +// eslint-disable-next-line @typescript-eslint/no-unused-vars declare const ExactOptionalSymbol: unique symbol; export type ExactOptionalTag = { diff --git a/packages/keyring-api/src/utils/types.ts b/packages/keyring-api/src/utils/types.ts index c8e72b76..02821e14 100644 --- a/packages/keyring-api/src/utils/types.ts +++ b/packages/keyring-api/src/utils/types.ts @@ -20,7 +20,7 @@ export const UrlStruct = define('Url', (value: unknown) => { try { const url = new URL(value as string); return url.protocol === 'http:' || url.protocol === 'https:'; - } catch (_) { + } catch { return false; } }); diff --git a/packages/keyring-eth-hd/index.js b/packages/keyring-eth-hd/index.js index 46a634e1..1e8a45f9 100644 --- a/packages/keyring-eth-hd/index.js +++ b/packages/keyring-eth-hd/index.js @@ -1,6 +1,3 @@ -const { HDKey } = require('ethereum-cryptography/hdkey'); -const { keccak256 } = require('ethereum-cryptography/keccak'); -const { bytesToHex } = require('ethereum-cryptography/utils'); const { privateToPublic, publicToAddress, @@ -8,8 +5,6 @@ const { arrToBufArr, bufferToHex, } = require('@ethereumjs/util'); -const bip39 = require('@metamask/scure-bip39'); -const { wordlist } = require('@metamask/scure-bip39/dist/wordlists/english'); const { concatSig, decrypt, @@ -19,7 +14,12 @@ const { signTypedData, SignTypedDataVersion, } = require('@metamask/eth-sig-util'); +const bip39 = require('@metamask/scure-bip39'); +const { wordlist } = require('@metamask/scure-bip39/dist/wordlists/english'); const { assertIsHexString, remove0x } = require('@metamask/utils'); +const { HDKey } = require('ethereum-cryptography/hdkey'); +const { keccak256 } = require('ethereum-cryptography/keccak'); +const { bytesToHex } = require('ethereum-cryptography/utils'); // Options: const hdPathString = `m/44'/60'/0'/0`; diff --git a/packages/keyring-eth-hd/test/index.js b/packages/keyring-eth-hd/test/index.js index 465e5983..30f7edfd 100644 --- a/packages/keyring-eth-hd/test/index.js +++ b/packages/keyring-eth-hd/test/index.js @@ -1,3 +1,16 @@ +const { + TransactionFactory, + Transaction: EthereumTx, +} = require('@ethereumjs/tx'); +const { + isValidAddress, + bufferToHex, + toBuffer, + ecrecover, + pubToAddress, +} = require('@ethereumjs/util'); +const oldMMForkBIP39 = require('@metamask/bip39'); +const OldHdKeyring = require('@metamask/eth-hd-keyring'); const { normalize, personalSign, @@ -8,21 +21,8 @@ const { encrypt, } = require('@metamask/eth-sig-util'); const { wordlist } = require('@metamask/scure-bip39/dist/wordlists/english'); -const oldMMForkBIP39 = require('@metamask/bip39'); -const { - isValidAddress, - bufferToHex, - toBuffer, - ecrecover, - pubToAddress, -} = require('@ethereumjs/util'); -const { - TransactionFactory, - Transaction: EthereumTx, -} = require('@ethereumjs/tx'); - -const OldHdKeyring = require('@metamask/eth-hd-keyring'); const { keccak256 } = require('ethereum-cryptography/keccak'); + const HdKeyring = require('..'); // Sample account: diff --git a/packages/keyring-eth-ledger-bridge/package.json b/packages/keyring-eth-ledger-bridge/package.json index 0c263219..910de415 100644 --- a/packages/keyring-eth-ledger-bridge/package.json +++ b/packages/keyring-eth-ledger-bridge/package.json @@ -37,7 +37,7 @@ "test:watch": "jest --watch" }, "dependencies": { - "@ethereumjs/rlp": "^4.0.1", + "@ethereumjs/rlp": "^5.0.2", "@ethereumjs/tx": "^4.2.0", "@ethereumjs/util": "^8.1.0", "@ledgerhq/hw-app-eth": "^6.38.1", @@ -63,11 +63,11 @@ "ethereumjs-tx": "^1.3.7", "jest": "^29.5.0", "jest-it-up": "^3.1.0", - "rimraf": "^5.0.7", + "rimraf": "^5.0.10", "ts-jest": "^29.0.5", "ts-node": "^10.9.2", "typedoc": "^0.25.13", - "typescript": "~4.8.4" + "typescript": "~5.4.5" }, "engines": { "node": "^18.18 || >=20" diff --git a/packages/keyring-eth-ledger-bridge/src/index.ts b/packages/keyring-eth-ledger-bridge/src/index.ts index 5612d867..c84c944f 100644 --- a/packages/keyring-eth-ledger-bridge/src/index.ts +++ b/packages/keyring-eth-ledger-bridge/src/index.ts @@ -1,7 +1,7 @@ export * from './ledger-keyring'; export * from './ledger-iframe-bridge'; export * from './ledger-mobile-bridge'; -export * from './ledger-bridge'; +export type * from './ledger-bridge'; export * from './ledger-transport-middleware'; -export * from './type'; +export type * from './type'; export * from './ledger-hw-app'; diff --git a/packages/keyring-eth-ledger-bridge/src/ledger-hw-app.ts b/packages/keyring-eth-ledger-bridge/src/ledger-hw-app.ts index a27741dc..f3b07fc9 100644 --- a/packages/keyring-eth-ledger-bridge/src/ledger-hw-app.ts +++ b/packages/keyring-eth-ledger-bridge/src/ledger-hw-app.ts @@ -1,16 +1,8 @@ import LedgerHwAppEth from '@ledgerhq/hw-app-eth'; -// eslint-disable-next-line import/no-nodejs-modules import { Buffer } from 'buffer'; import { GetAppNameAndVersionResponse } from './type'; -// eslint-disable-next-line @typescript-eslint/consistent-type-definitions -export interface MetaMaskLedgerHwAppEth extends LedgerHwAppEth { - openEthApp(): void; - closeApps(): void; - getAppNameAndVersion(): Promise; -} - export class MetaMaskLedgerHwAppEth extends LedgerHwAppEth implements MetaMaskLedgerHwAppEth diff --git a/packages/keyring-eth-ledger-bridge/src/ledger-iframe-bridge.test.ts b/packages/keyring-eth-ledger-bridge/src/ledger-iframe-bridge.test.ts index 8ef78575..d5053ec0 100644 --- a/packages/keyring-eth-ledger-bridge/src/ledger-iframe-bridge.test.ts +++ b/packages/keyring-eth-ledger-bridge/src/ledger-iframe-bridge.test.ts @@ -1,12 +1,12 @@ import { hasProperty } from '@metamask/utils'; -import documentShim from '../test/document.shim'; -import windowShim from '../test/window.shim'; import { type IFrameMessageResponse, IFrameMessageAction, LedgerIframeBridge, } from './ledger-iframe-bridge'; +import documentShim from '../test/document.shim'; +import windowShim from '../test/window.shim'; global.document = documentShim; global.window = windowShim; @@ -51,7 +51,7 @@ describe('LedgerIframeBridge', function () { function stubKeyringIFramePostMessage( bridgeInstance: LedgerIframeBridge, fn: (message: IFrameMessageResponse) => void, - ) { + ): void { if (!isIFrameValid(bridgeInstance.iframe)) { throw new Error('the iframe is not valid'); } diff --git a/packages/keyring-eth-ledger-bridge/src/ledger-iframe-bridge.ts b/packages/keyring-eth-ledger-bridge/src/ledger-iframe-bridge.ts index a73987e9..efb57bb8 100644 --- a/packages/keyring-eth-ledger-bridge/src/ledger-iframe-bridge.ts +++ b/packages/keyring-eth-ledger-bridge/src/ledger-iframe-bridge.ts @@ -96,7 +96,7 @@ export class LedgerIframeBridge iframeLoaded = false; - #opts: LedgerIframeBridgeOptions; + readonly #opts: LedgerIframeBridgeOptions; eventListener?: (eventMessage: { origin: string; @@ -121,7 +121,7 @@ export class LedgerIframeBridge }; } - async init() { + async init(): Promise { await this.#setupIframe(this.#opts.bridgeUrl); this.eventListener = this.#eventListener.bind(this, this.#opts.bridgeUrl); @@ -129,7 +129,7 @@ export class LedgerIframeBridge window.addEventListener('message', this.eventListener); } - async destroy() { + async destroy(): Promise { if (this.eventListener) { window.removeEventListener('message', this.eventListener); } @@ -158,7 +158,8 @@ export class LedgerIframeBridge if ('success' in response && response.success) { resolve(true); } else if ('error' in response) { - reject(response.error); + // Assuming this is using an `Error` type: + reject(response.error as Error); } else { reject(new Error('Unknown error occurred')); } @@ -249,7 +250,12 @@ export class LedgerIframeBridge | [IFrameMessageAction.LedgerSignTransaction, LedgerSignTransactionParams] | [IFrameMessageAction.LedgerSignPersonalMessage, LedgerSignMessageParams] | [IFrameMessageAction.LedgerSignTypedData, LedgerSignTypedDataParams] - ) { + ): Promise< + | GetPublicKeyResponse + | LedgerSignTransactionResponse + | LedgerSignMessageResponse + | LedgerSignTypedDataResponse + > { return new Promise((resolve, reject) => { this.#sendMessage( { @@ -276,7 +282,7 @@ export class LedgerIframeBridge this.iframe = document.createElement('iframe'); this.iframe.src = bridgeUrl; this.iframe.allow = `hid 'src'`; - this.iframe.onload = async () => { + this.iframe.onload = async (): Promise => { this.iframeLoaded = true; resolve(); }; @@ -284,7 +290,7 @@ export class LedgerIframeBridge }); } - #getOrigin(bridgeUrl: string) { + #getOrigin(bridgeUrl: string): string { const tmp = bridgeUrl.split('/'); tmp.splice(-1, 1); return tmp.join('/'); @@ -296,7 +302,7 @@ export class LedgerIframeBridge origin: string; data: IFrameMessageResponse; }, - ) { + ): void { if (eventMessage.origin !== this.#getOrigin(bridgeUrl)) { return; } @@ -317,7 +323,7 @@ export class LedgerIframeBridge #sendMessage( message: IFrameMessage, callback: (response: IFrameMessageResponse) => void, - ) { + ): void { this.currentMessageId += 1; const postMsg: IFramePostMessage = { @@ -328,7 +334,7 @@ export class LedgerIframeBridge this.messageCallbacks[this.currentMessageId] = callback; - if (!this.iframeLoaded || !this.iframe || !this.iframe.contentWindow) { + if (!this.iframeLoaded || !this.iframe?.contentWindow) { throw new Error('The iframe is not loaded yet'); } diff --git a/packages/keyring-eth-ledger-bridge/src/ledger-keyring.test.ts b/packages/keyring-eth-ledger-bridge/src/ledger-keyring.test.ts index f2845840..3895e205 100644 --- a/packages/keyring-eth-ledger-bridge/src/ledger-keyring.test.ts +++ b/packages/keyring-eth-ledger-bridge/src/ledger-keyring.test.ts @@ -93,7 +93,7 @@ describe('LedgerKeyring', function () { * @param accountIndex - The index of the account to unlock. * @returns Returns a promise that resolves when the keyring is unlocked. */ - async function basicSetupToUnlockOneAccount(accountIndex = 0) { + async function basicSetupToUnlockOneAccount(accountIndex = 0): Promise { keyring.setAccountToUnlock(accountIndex); await keyring.addAccounts(); jest diff --git a/packages/keyring-eth-ledger-bridge/src/ledger-keyring.ts b/packages/keyring-eth-ledger-bridge/src/ledger-keyring.ts index b2104799..a4462baf 100644 --- a/packages/keyring-eth-ledger-bridge/src/ledger-keyring.ts +++ b/packages/keyring-eth-ledger-bridge/src/ledger-keyring.ts @@ -8,10 +8,8 @@ import { SignTypedDataVersion, TypedDataUtils, } from '@metamask/eth-sig-util'; -// eslint-disable-next-line import/no-nodejs-modules import { Buffer } from 'buffer'; import type OldEthJsTransaction from 'ethereumjs-tx'; -// eslint-disable-next-line import/no-nodejs-modules import { EventEmitter } from 'events'; import HDKey from 'hdkey'; @@ -36,6 +34,14 @@ type SignTransactionPayload = Awaited< ReturnType['deviceSignTransaction']> >; +export type AccountPageEntry = { + address: string; + balance: number | null; + index: number; +}; + +export type AccountPage = AccountPageEntry[]; + export type AccountDetails = { index?: number; bip44?: boolean; @@ -109,15 +115,17 @@ export class LedgerKeyring extends EventEmitter { this.bridge = bridge; } - async init() { + async init(): Promise { return this.bridge.init(); } - async destroy() { + async destroy(): Promise { return this.bridge.destroy(); } - async serialize() { + async serialize(): Promise< + Partial // Maybe we should have a proper "state" type here instead of using this "options" type. + > { return { hdPath: this.hdPath, accounts: this.accounts, @@ -127,7 +135,9 @@ export class LedgerKeyring extends EventEmitter { }; } - async deserialize(opts: Partial = {}) { + async deserialize( + opts: Partial = {}, // Same question here? + ): Promise { this.hdPath = opts.hdPath ?? hdPathString; this.accounts = opts.accounts ?? []; this.deviceId = opts.deviceId ?? ''; @@ -148,15 +158,15 @@ export class LedgerKeyring extends EventEmitter { return Promise.resolve(); } - public setDeviceId(deviceId: string) { + public setDeviceId(deviceId: string): void { this.deviceId = deviceId; } - public getDeviceId() { + public getDeviceId(): string { return this.deviceId; } - #migrateAccountDetails(opts: Partial) { + #migrateAccountDetails(opts: Partial): void { if (this.#isLedgerLiveHdPath() && opts.accountIndexes) { for (const [account, index] of Object.entries(opts.accountIndexes)) { this.accountDetails[account] = { @@ -181,19 +191,19 @@ export class LedgerKeyring extends EventEmitter { } } - isUnlocked() { + isUnlocked(): boolean { return Boolean(this.hdk.publicKey); } - isConnected() { + isConnected(): boolean { return this.bridge.isDeviceConnected; } - setAccountToUnlock(index: number) { + setAccountToUnlock(index: number): void { this.unlockedAccount = index; } - setHdPath(hdPath: string) { + setHdPath(hdPath: string): void { // Reset HDKey if the path changes if (this.hdPath !== hdPath) { this.hdk = new HDKey(); @@ -259,28 +269,28 @@ export class LedgerKeyring extends EventEmitter { }); } - getName() { + getName(): string { return keyringType; } - async getFirstPage() { + async getFirstPage(): Promise { this.page = 0; return this.#getPage(1); } - async getNextPage() { + async getNextPage(): Promise { return this.#getPage(1); } - async getPreviousPage() { + async getPreviousPage(): Promise { return this.#getPage(-1); } - async getAccounts() { + async getAccounts(): Promise { return Promise.resolve(this.accounts.slice()); } - removeAccount(address: string) { + removeAccount(address: string): void { const filteredAccounts = this.accounts.filter( (a) => a.toLowerCase() !== address.toLowerCase(), ); @@ -293,11 +303,11 @@ export class LedgerKeyring extends EventEmitter { delete this.accountDetails[ethUtil.toChecksumAddress(address)]; } - async attemptMakeApp() { + async attemptMakeApp(): Promise { return this.bridge.attemptMakeApp(); } - async updateTransportMethod(transportType: string) { + async updateTransportMethod(transportType: string): Promise { return this.bridge.updateTransportMethod(transportType); } @@ -401,12 +411,15 @@ export class LedgerKeyring extends EventEmitter { throw new Error('Ledger: The transaction signature is not valid'); } - async signMessage(withAccount: string, data: string) { + async signMessage(withAccount: string, data: string): Promise { return this.signPersonalMessage(withAccount, data); } // For personal_sign, we need to prefix the message: - async signPersonalMessage(withAccount: string, message: string) { + async signPersonalMessage( + withAccount: string, + message: string, + ): Promise { const hdPath = await this.unlockAccountByAddress(withAccount); if (!hdPath) { @@ -444,7 +457,7 @@ export class LedgerKeyring extends EventEmitter { return signature; } - async unlockAccountByAddress(address: string) { + async unlockAccountByAddress(address: string): Promise { const checksummedAddress = ethUtil.toChecksumAddress(address); const accountDetails = this.accountDetails[checksummedAddress]; if (!accountDetails) { @@ -469,7 +482,7 @@ export class LedgerKeyring extends EventEmitter { withAccount: string, data: TypedMessage, options: { version?: string } = {}, - ) { + ): Promise { const isV4 = options.version === 'V4'; if (!isV4) { throw new Error( @@ -531,11 +544,11 @@ export class LedgerKeyring extends EventEmitter { return signature; } - exportAccount() { + exportAccount(): void { throw new Error('Not supported on this device'); } - forgetDevice() { + forgetDevice(): void { this.accounts = []; this.page = 0; this.unlockedAccount = 0; @@ -545,7 +558,7 @@ export class LedgerKeyring extends EventEmitter { } /* PRIVATE METHODS */ - async #getPage(increment: number) { + async #getPage(increment: number): Promise { this.page += increment; if (this.page <= 0) { @@ -564,12 +577,8 @@ export class LedgerKeyring extends EventEmitter { return accounts; } - async #getAccountsBIP44(from: number, to: number) { - const accounts: { - address: string; - balance: number | null; - index: number; - }[] = []; + async #getAccountsBIP44(from: number, to: number): Promise { + const accounts: AccountPage = []; for (let i = from; i < to; i++) { const path = this.#getPathForIndex(i); @@ -594,12 +603,8 @@ export class LedgerKeyring extends EventEmitter { return accounts; } - #getAccountsLegacy(from: number, to: number) { - const accounts: { - address: string; - balance: number | null; - index: number; - }[] = []; + #getAccountsLegacy(from: number, to: number): AccountPage { + const accounts: AccountPage = []; for (let i = from; i < to; i++) { const address = this.#addressFromIndex(pathBase, i); @@ -613,7 +618,7 @@ export class LedgerKeyring extends EventEmitter { return accounts; } - #addressFromIndex(basePath: string, i: number) { + #addressFromIndex(basePath: string, i: number): string { const dkey = this.hdk.derive(`${basePath}/${i}`); const address = ethUtil .publicToAddress(dkey.publicKey, true) @@ -621,7 +626,7 @@ export class LedgerKeyring extends EventEmitter { return ethUtil.toChecksumAddress(`0x${address}`); } - #pathFromAddress(address: string) { + #pathFromAddress(address: string): string { const checksummedAddress = ethUtil.toChecksumAddress(address); let index = this.paths[checksummedAddress]; if (typeof index === 'undefined') { @@ -639,22 +644,22 @@ export class LedgerKeyring extends EventEmitter { return this.#getPathForIndex(index); } - #getPathForIndex(index: number) { + #getPathForIndex(index: number): string { // Check if the path is BIP 44 (Ledger Live) return this.#isLedgerLiveHdPath() ? `m/44'/60'/${index}'/0/0` : `${this.hdPath}/${index}`; } - #isLedgerLiveHdPath() { + #isLedgerLiveHdPath(): boolean { return this.hdPath === `m/44'/60'/0'/0/0`; } - #toLedgerPath(path: string) { + #toLedgerPath(path: string): string { return path.toString().replace('m/', ''); } - async #hasPreviousTransactions(address: string) { + async #hasPreviousTransactions(address: string): Promise { const apiUrl = this.#getApiUrl(); const response = await window.fetch( `${apiUrl}/api?module=account&action=txlist&address=${address}&tag=latest&page=1&offset=1`, @@ -663,7 +668,7 @@ export class LedgerKeyring extends EventEmitter { return parsedResponse.status !== '0' && parsedResponse.result.length > 0; } - #getApiUrl() { + #getApiUrl(): NetworkApiUrls { return this.network; } } diff --git a/packages/keyring-eth-ledger-bridge/src/ledger-mobile-bridge.ts b/packages/keyring-eth-ledger-bridge/src/ledger-mobile-bridge.ts index 59951cd9..80109ad9 100644 --- a/packages/keyring-eth-ledger-bridge/src/ledger-mobile-bridge.ts +++ b/packages/keyring-eth-ledger-bridge/src/ledger-mobile-bridge.ts @@ -30,7 +30,7 @@ export type MobileBridge = LedgerBridge & { * LedgerMobileBridge is a bridge between the LedgerKeyring and the LedgerTransportMiddleware. */ export class LedgerMobileBridge implements MobileBridge { - #transportMiddleware?: TransportMiddleware; + readonly #transportMiddleware?: TransportMiddleware; #opts: LedgerMobileBridgeOptions; @@ -47,6 +47,8 @@ export class LedgerMobileBridge implements MobileBridge { /** * Method to initializes the keyring. * Mobile ledger doesnt not require init. + * + * @returns A promise that will resolve once the bridge is initialized. */ async init(): Promise { return Promise.resolve(); diff --git a/packages/keyring-eth-ledger-bridge/test/document.shim.ts b/packages/keyring-eth-ledger-bridge/test/document.shim.ts index 42c4983a..4d4ce4ef 100644 --- a/packages/keyring-eth-ledger-bridge/test/document.shim.ts +++ b/packages/keyring-eth-ledger-bridge/test/document.shim.ts @@ -1,24 +1,31 @@ -// eslint-disable-next-line import/no-mutable-exports +// eslint-disable-next-line import-x/no-mutable-exports let documentShim: any; +type Element = { + src: boolean; + contentWindow: { + postMessage: () => boolean; + }; +}; + const shim = { head: { - appendChild: (child: { onload?: () => void }) => { + appendChild: (child: { onload?: () => void }): void => { child.onload?.(); }, }, - createElement: () => ({ + createElement: (): Element => ({ src: false, contentWindow: { postMessage: () => false, }, }), - addEventListener: () => false, + addEventListener: (): boolean => false, }; try { documentShim = document || shim; -} catch (error) { +} catch { documentShim = shim; } diff --git a/packages/keyring-eth-ledger-bridge/test/window.shim.ts b/packages/keyring-eth-ledger-bridge/test/window.shim.ts index 55d89e24..81ab989a 100644 --- a/packages/keyring-eth-ledger-bridge/test/window.shim.ts +++ b/packages/keyring-eth-ledger-bridge/test/window.shim.ts @@ -1,21 +1,21 @@ -// eslint-disable-next-line import/no-mutable-exports +// eslint-disable-next-line import-x/no-mutable-exports let windowShim: any; try { windowShim = window || { - addEventListener: () => { + addEventListener: (): false => { return false; }, - removeEventListener: () => { + removeEventListener: (): false => { return false; }, }; -} catch (error) { +} catch { windowShim = { - addEventListener: () => { + addEventListener: (): false => { return false; }, - removeEventListener: () => { + removeEventListener: (): false => { return false; }, }; diff --git a/packages/keyring-eth-simple/package.json b/packages/keyring-eth-simple/package.json index 16813bbd..073a8b9b 100644 --- a/packages/keyring-eth-simple/package.json +++ b/packages/keyring-eth-simple/package.json @@ -56,7 +56,7 @@ "ts-jest": "^29.0.5", "ts-node": "^10.9.2", "typedoc": "^0.25.13", - "typescript": "~4.8.4" + "typescript": "~5.4.5" }, "engines": { "node": "^18.18 || >=20" diff --git a/packages/keyring-eth-simple/src/sample.ts b/packages/keyring-eth-simple/src/sample.ts index 9c00f063..8d4629af 100644 --- a/packages/keyring-eth-simple/src/sample.ts +++ b/packages/keyring-eth-simple/src/sample.ts @@ -1,3 +1,4 @@ +// eslint-disable-next-line @typescript-eslint/naming-convention import SimpleKeyring from '.'; const keyring = new SimpleKeyring(); diff --git a/packages/keyring-eth-simple/src/simple-keyring.test.ts b/packages/keyring-eth-simple/src/simple-keyring.test.ts index d0412bce..43bbace0 100644 --- a/packages/keyring-eth-simple/src/simple-keyring.test.ts +++ b/packages/keyring-eth-simple/src/simple-keyring.test.ts @@ -21,8 +21,10 @@ import { import { add0x, Hex } from '@metamask/utils'; import assert from 'assert'; import { keccak256 } from 'ethereum-cryptography/keccak'; +// eslint-disable-next-line @typescript-eslint/naming-convention import OldEthereumTx from 'ethereumjs-tx'; +// eslint-disable-next-line @typescript-eslint/naming-convention import SimpleKeyring from '.'; const TYPE_STR = 'Simple Key Pair'; diff --git a/packages/keyring-eth-simple/src/simple-keyring.ts b/packages/keyring-eth-simple/src/simple-keyring.ts index bb9fdfa0..dbd100a9 100644 --- a/packages/keyring-eth-simple/src/simple-keyring.ts +++ b/packages/keyring-eth-simple/src/simple-keyring.ts @@ -27,8 +27,14 @@ type KeyringOpt = { version?: SignTypedDataVersion | string; }; +type Wallet = { + privateKey: Buffer; + publicKey: Buffer; +}; + const TYPE = 'Simple Key Pair'; +// FIXME: This should not be exported as default. export default class SimpleKeyring implements Keyring { #wallets: { privateKey: Buffer; publicKey: Buffer }[]; @@ -46,11 +52,11 @@ export default class SimpleKeyring implements Keyring { }); } - async serialize() { + async serialize(): Promise { return this.#wallets.map((a) => a.privateKey.toString('hex')); } - async deserialize(privateKeys: string[] = []) { + async deserialize(privateKeys: string[] = []): Promise { this.#wallets = privateKeys.map((hexPrivateKey) => { const strippedHexPrivateKey = stripHexPrefix(hexPrivateKey); const privateKey = Buffer.from(strippedHexPrivateKey, 'hex'); @@ -59,7 +65,7 @@ export default class SimpleKeyring implements Keyring { }); } - async addAccounts(numAccounts = 1) { + async addAccounts(numAccounts = 1): Promise { const newWallets = []; for (let i = 0; i < numAccounts; i++) { const privateKey = generateKey(); @@ -73,7 +79,7 @@ export default class SimpleKeyring implements Keyring { return hexWallets; } - async getAccounts() { + async getAccounts(): Promise { return this.#wallets.map(({ publicKey }) => add0x(bufferToHex(publicToAddress(publicKey))), ); @@ -87,7 +93,7 @@ export default class SimpleKeyring implements Keyring { const privKey = this.#getPrivateKeyFor(address, opts); const signedTx = transaction.sign(privKey); // Newer versions of Ethereumjs-tx are immutable and return a new tx object - return signedTx === undefined ? transaction : signedTx; + return signedTx ?? transaction; } // For eth_sign, we need to sign arbitrary data: @@ -95,7 +101,7 @@ export default class SimpleKeyring implements Keyring { address: Hex, data: string, opts = { withAppKeyOrigin: '', validateMessage: true }, - ) { + ): Promise { const message = stripHexPrefix(data); if ( opts.validateMessage && @@ -114,13 +120,16 @@ export default class SimpleKeyring implements Keyring { address: Hex, msgHex: Hex, opts = { withAppKeyOrigin: '' }, - ) { + ): Promise { const privKey = this.#getPrivateKeyFor(address, opts); return personalSign({ privateKey: privKey, data: msgHex }); } // For eth_decryptMessage: - async decryptMessage(withAccount: Hex, encryptedData: Eip1024EncryptedData) { + async decryptMessage( + withAccount: Hex, + encryptedData: Eip1024EncryptedData, + ): Promise { const wallet = this.#getWalletForAccount(withAccount); const privateKey = wallet.privateKey.toString('hex'); return decrypt({ privateKey, encryptedData }); @@ -131,7 +140,7 @@ export default class SimpleKeyring implements Keyring { address: Hex, typedData: any, opts: KeyringOpt = { version: SignTypedDataVersion.V1 }, - ) { + ): Promise { // Treat invalid versions as "V1" let version = SignTypedDataVersion.V1; @@ -144,13 +153,19 @@ export default class SimpleKeyring implements Keyring { } // get public key for nacl - async getEncryptionPublicKey(withAccount: Hex, opts?: KeyringOpt) { + async getEncryptionPublicKey( + withAccount: Hex, + opts?: KeyringOpt, + ): Promise { const privKey = this.#getPrivateKeyFor(withAccount, opts); const publicKey = getEncryptionPublicKey(privKey.toString('hex')); return publicKey; } - #getPrivateKeyFor(address: Hex, opts: KeyringOpt = { withAppKeyOrigin: '' }) { + #getPrivateKeyFor( + address: Hex, + opts: KeyringOpt = { withAppKeyOrigin: '' }, + ): Buffer { if (!address) { throw new Error('Must specify address.'); } @@ -159,7 +174,7 @@ export default class SimpleKeyring implements Keyring { } // returns an address specific to an app - async getAppKeyAddress(address: Hex, origin: string) { + async getAppKeyAddress(address: Hex, origin: string): Promise { if (!origin || typeof origin !== 'string') { throw new Error(`'origin' must be a non-empty string`); } @@ -171,12 +186,15 @@ export default class SimpleKeyring implements Keyring { } // exportAccount should return a hex-encoded private key: - async exportAccount(address: Hex, opts = { withAppKeyOrigin: '' }) { + async exportAccount( + address: Hex, + opts = { withAppKeyOrigin: '' }, + ): Promise { const wallet = this.#getWalletForAccount(address, opts); return wallet.privateKey.toString('hex'); } - removeAccount(address: string) { + removeAccount(address: string): void { if ( !this.#wallets .map(({ publicKey }) => @@ -194,7 +212,10 @@ export default class SimpleKeyring implements Keyring { ); } - #getWalletForAccount(account: string | number, opts: KeyringOpt = {}) { + #getWalletForAccount( + account: string | number, + opts: KeyringOpt = {}, + ): Wallet { const address = normalize(account); let wallet = this.#wallets.find( ({ publicKey }) => bufferToHex(publicToAddress(publicKey)) === address, diff --git a/packages/keyring-eth-trezor/package.json b/packages/keyring-eth-trezor/package.json index d9856abb..58ff6413 100644 --- a/packages/keyring-eth-trezor/package.json +++ b/packages/keyring-eth-trezor/package.json @@ -62,12 +62,12 @@ "jest": "^29.5.0", "jest-environment-jsdom": "^29.7.0", "jest-it-up": "^3.1.0", - "rimraf": "^5.0.7", + "rimraf": "^5.0.10", "sinon": "^19.0.2", "ts-jest": "^29.0.5", "ts-node": "^10.9.2", "typedoc": "^0.25.13", - "typescript": "~4.8.4" + "typescript": "~5.4.5" }, "engines": { "node": "^18.18 || >=20" diff --git a/packages/keyring-eth-trezor/src/index.ts b/packages/keyring-eth-trezor/src/index.ts index 8498ab83..69f51db2 100644 --- a/packages/keyring-eth-trezor/src/index.ts +++ b/packages/keyring-eth-trezor/src/index.ts @@ -1,3 +1,3 @@ export * from './trezor-keyring'; -export * from './trezor-bridge'; +export type * from './trezor-bridge'; export * from './trezor-connect-bridge'; diff --git a/packages/keyring-eth-trezor/src/trezor-connect-bridge.test.ts b/packages/keyring-eth-trezor/src/trezor-connect-bridge.test.ts index 5c8a1e77..e71d672d 100644 --- a/packages/keyring-eth-trezor/src/trezor-connect-bridge.test.ts +++ b/packages/keyring-eth-trezor/src/trezor-connect-bridge.test.ts @@ -9,8 +9,8 @@ import TrezorConnect, { DEVICE, DEVICE_EVENT } from '@trezor/connect-web'; -import { TrezorConnectBridge } from './trezor-connect-bridge'; import { TrezorBridge } from './trezor-bridge'; +import { TrezorConnectBridge } from './trezor-connect-bridge'; import { TREZOR_CONNECT_MANIFEST } from './trezor-keyring'; describe('TrezorConnectBridge', function () { diff --git a/packages/keyring-eth-trezor/src/trezor-connect-bridge.ts b/packages/keyring-eth-trezor/src/trezor-connect-bridge.ts index 6874a16d..71961ea1 100644 --- a/packages/keyring-eth-trezor/src/trezor-connect-bridge.ts +++ b/packages/keyring-eth-trezor/src/trezor-connect-bridge.ts @@ -1,5 +1,9 @@ +import type { HDNodeResponse } from '@trezor/connect/lib/types/api/getPublicKey'; import TrezorConnect, { DEVICE_EVENT, DEVICE } from '@trezor/connect-web'; import type { + EthereumSignedTx, + PROTO, + Response, Manifest, ConnectSettings, EthereumSignTransaction, @@ -8,6 +12,7 @@ import type { EthereumSignTypedDataTypes, EthereumSignTypedHash, } from '@trezor/connect-web'; + import type { TrezorBridge } from './trezor-bridge'; export class TrezorConnectBridge implements TrezorBridge { @@ -19,7 +24,7 @@ export class TrezorConnectBridge implements TrezorBridge { settings: { manifest: Manifest; } & Partial, - ) { + ): Promise { TrezorConnect.on(DEVICE_EVENT, (event) => { if (event.type !== DEVICE.CONNECT) { return; @@ -35,7 +40,7 @@ export class TrezorConnectBridge implements TrezorBridge { this.trezorConnectInitiated = true; } - dispose() { + async dispose(): Promise { // This removes the Trezor Connect iframe from the DOM // This method is not well documented, but the code it calls can be seen // here: https://github.com/trezor/connect/blob/dec4a56af8a65a6059fb5f63fa3c6690d2c37e00/src/js/iframe/builder.js#L181 @@ -43,21 +48,28 @@ export class TrezorConnectBridge implements TrezorBridge { return Promise.resolve(); } - getPublicKey(params: { path: string; coin: string }) { + getPublicKey(params: { + path: string; + coin: string; + }): Response { return TrezorConnect.getPublicKey(params); } - ethereumSignTransaction(params: Params) { + ethereumSignTransaction( + params: Params, + ): Response { return TrezorConnect.ethereumSignTransaction(params); } - ethereumSignMessage(params: Params) { + ethereumSignMessage( + params: Params, + ): Response { return TrezorConnect.ethereumSignMessage(params); } ethereumSignTypedData( params: Params>, - ) { + ): Response { return TrezorConnect.ethereumSignTypedData(params); } } diff --git a/packages/keyring-eth-trezor/src/trezor-keyring.test.ts b/packages/keyring-eth-trezor/src/trezor-keyring.test.ts index 189cbc26..47754a48 100644 --- a/packages/keyring-eth-trezor/src/trezor-keyring.test.ts +++ b/packages/keyring-eth-trezor/src/trezor-keyring.test.ts @@ -1,17 +1,17 @@ -import * as sinon from 'sinon'; -import EthereumTx from 'ethereumjs-tx'; -import HDKey from 'hdkey'; +import { Common, Chain, Hardfork } from '@ethereumjs/common'; import { TypedTransaction, TransactionFactory, FeeMarketEIP1559Transaction, } from '@ethereumjs/tx'; -import { Common, Chain, Hardfork } from '@ethereumjs/common'; - import { Address } from '@ethereumjs/util'; import { SignTypedDataVersion } from '@metamask/eth-sig-util'; -import { TrezorKeyring, TREZOR_CONNECT_MANIFEST } from './trezor-keyring'; +import EthereumTx from 'ethereumjs-tx'; +import HDKey from 'hdkey'; +import * as sinon from 'sinon'; + import { TrezorBridge } from './trezor-bridge'; +import { TrezorKeyring, TREZOR_CONNECT_MANIFEST } from './trezor-keyring'; const fakeAccounts = [ '0xF30952A1c534CDE7bC471380065726fa8686dfB3', @@ -205,7 +205,7 @@ describe('TrezorKeyring', function () { keyring.hdk = new HDKey(); try { await keyring.unlock(); - } catch (e) { + } catch { // Since we only care about ensuring our function gets called, // we want to ignore warnings due to stub data } @@ -550,7 +550,7 @@ describe('TrezorKeyring', function () { try { await keyring.signMessage(fakeAccounts[0], 'some msg'); - } catch (error) { + } catch { // Since we only care about ensuring our function gets called, // we want to ignore warnings due to stub data } @@ -566,7 +566,7 @@ describe('TrezorKeyring', function () { try { await keyring.signPersonalMessage(fakeAccounts[0], 'some msg'); - } catch (error) { + } catch { // Since we only care about ensuring our function gets called, // we want to ignore warnings due to stub data } diff --git a/packages/keyring-eth-trezor/src/trezor-keyring.ts b/packages/keyring-eth-trezor/src/trezor-keyring.ts index 1b88ed91..fe58ad59 100644 --- a/packages/keyring-eth-trezor/src/trezor-keyring.ts +++ b/packages/keyring-eth-trezor/src/trezor-keyring.ts @@ -1,20 +1,21 @@ -import { EventEmitter } from 'events'; -import * as ethUtil from '@ethereumjs/util'; -import HDKey from 'hdkey'; -import type { - EthereumTransactionEIP1559, - EthereumSignedTx, - EthereumTransaction, -} from '@trezor/connect-web'; import { TransactionFactory } from '@ethereumjs/tx'; import type { TypedTransaction, TxData } from '@ethereumjs/tx'; -import type OldEthJsTransaction from 'ethereumjs-tx'; -import { transformTypedData } from '@trezor/connect-plugin-ethereum'; +import * as ethUtil from '@ethereumjs/util'; import { TypedMessage, SignTypedDataVersion, MessageTypes, } from '@metamask/eth-sig-util'; +import { transformTypedData } from '@trezor/connect-plugin-ethereum'; +import type { + EthereumTransactionEIP1559, + EthereumSignedTx, + EthereumTransaction, +} from '@trezor/connect-web'; +import type OldEthJsTransaction from 'ethereumjs-tx'; +import { EventEmitter } from 'events'; +import HDKey from 'hdkey'; + import { TrezorBridge } from './trezor-bridge'; const hdPathString = `m/44'/60'/0'/0`; @@ -36,6 +37,14 @@ export const TREZOR_CONNECT_MANIFEST = { appUrl: 'https://metamask.io', }; +export type AccountPageEntry = { + address: string; + balance: number | null; + index: number; +}; + +export type AccountPage = AccountPageEntry[]; + export interface TrezorControllerOptions { hdPath?: string; accounts?: string[]; @@ -52,7 +61,7 @@ export interface TrezorControllerState { unlockedAccount: number; } -async function wait(ms: number) { +async function wait(ms: number): Promise { return new Promise((resolve) => setTimeout(resolve, ms)); } @@ -116,14 +125,14 @@ export class TrezorKeyring extends EventEmitter { return this.bridge.model; } - init() { + async init(): Promise { return this.bridge.init({ manifest: TREZOR_CONNECT_MANIFEST, lazyLoad: true, }); } - async destroy() { + async destroy(): Promise { return this.bridge.dispose(); } @@ -138,7 +147,7 @@ export class TrezorKeyring extends EventEmitter { }); } - async deserialize(opts: TrezorControllerOptions = {}) { + async deserialize(opts: TrezorControllerOptions = {}): Promise { this.hdPath = opts.hdPath ?? hdPathString; this.accounts = opts.accounts ?? []; this.page = opts.page ?? 0; @@ -146,11 +155,11 @@ export class TrezorKeyring extends EventEmitter { return Promise.resolve(); } - isUnlocked() { + isUnlocked(): boolean { return Boolean(this.hdk?.publicKey); } - async unlock() { + async unlock(): Promise { if (this.isUnlocked()) { return Promise.resolve('already unlocked'); } @@ -175,7 +184,7 @@ export class TrezorKeyring extends EventEmitter { }); } - setAccountToUnlock(index: number | string) { + setAccountToUnlock(index: number | string): void { this.unlockedAccount = parseInt(String(index), 10); } @@ -195,28 +204,26 @@ export class TrezorKeyring extends EventEmitter { } resolve(this.accounts); }) - .catch((e) => { + .catch((e: Error) => { reject(e); }); }); } - async getFirstPage() { + async getFirstPage(): Promise { this.page = 0; return this.#getPage(1); } - async getNextPage() { + async getNextPage(): Promise { return this.#getPage(1); } - async getPreviousPage() { + async getPreviousPage(): Promise { return this.#getPage(-1); } - async #getPage( - increment: number, - ): Promise<{ address: string; balance: number | null; index: number }[]> { + async #getPage(increment: number): Promise { this.page += increment; if (this.page <= 0) { @@ -242,17 +249,17 @@ export class TrezorKeyring extends EventEmitter { } resolve(accounts); }) - .catch((e) => { + .catch((e: Error) => { reject(e); }); }); } - async getAccounts() { + async getAccounts(): Promise { return Promise.resolve(this.accounts.slice()); } - removeAccount(address: string) { + removeAccount(address: string): void { if ( !this.accounts.map((a) => a.toLowerCase()).includes(address.toLowerCase()) ) { @@ -278,7 +285,7 @@ export class TrezorKeyring extends EventEmitter { async signTransaction( address: string, tx: TypedTransaction | OldEthJsTransaction, - ) { + ): Promise { if (isOldStyleEthereumjsTx(tx)) { // In this version of ethereumjs-tx we must add the chainId in hex format // to the initial v value. The chainId must be included in the serialized @@ -393,12 +400,15 @@ export class TrezorKeyring extends EventEmitter { } } - async signMessage(withAccount: string, data: string) { + async signMessage(withAccount: string, data: string): Promise { return this.signPersonalMessage(withAccount, data); } // For personal_sign, we need to prefix the message: - async signPersonalMessage(withAccount: string, message: string) { + async signPersonalMessage( + withAccount: string, + message: string, + ): Promise { return new Promise((resolve, reject) => { this.unlock() .then((status) => { @@ -443,15 +453,16 @@ export class TrezorKeyring extends EventEmitter { }); } - /** - * EIP-712 Sign Typed Data - */ + // EIP-712 Sign Typed Data async signTypedData( address: string, data: TypedMessage, { version }: { version: SignTypedDataVersion }, - ) { - const dataWithHashes = transformTypedData(data, version === 'V4'); + ): Promise { + const dataWithHashes = transformTypedData( + data, + version === SignTypedDataVersion.V4, + ); // set default values for signTypedData // Trezor is stricter than @metamask/eth-sig-util in what it accepts @@ -494,11 +505,11 @@ export class TrezorKeyring extends EventEmitter { throw new Error(response.payload?.error || 'Unknown error'); } - async exportAccount() { + async exportAccount(): Promise { return Promise.reject(new Error('Not supported on this device')); } - forgetDevice() { + forgetDevice(): void { this.accounts = []; this.hdk = new HDKey(); this.page = 0; @@ -516,7 +527,7 @@ export class TrezorKeyring extends EventEmitter { * * @param hdPath - The HD path to set. */ - setHdPath(hdPath: keyof typeof ALLOWED_HD_PATHS) { + setHdPath(hdPath: keyof typeof ALLOWED_HD_PATHS): void { if (!ALLOWED_HD_PATHS[hdPath]) { throw new Error( `The setHdPath method does not support setting HD Path to ${hdPath}`, @@ -535,11 +546,11 @@ export class TrezorKeyring extends EventEmitter { this.hdPath = hdPath; } - #normalize(buf: Buffer) { + #normalize(buf: Buffer): string { return ethUtil.bufferToHex(buf).toString(); } - #addressFromIndex(basePath: string, i: number) { + #addressFromIndex(basePath: string, i: number): string { const dkey = this.hdk.derive(`${basePath}/${i}`); const address = ethUtil .publicToAddress(dkey.publicKey, true) @@ -547,7 +558,7 @@ export class TrezorKeyring extends EventEmitter { return ethUtil.toChecksumAddress(`0x${address}`); } - #pathFromAddress(address: string) { + #pathFromAddress(address: string): string { const checksummedAddress = ethUtil.toChecksumAddress(address); let index = this.paths[checksummedAddress]; if (typeof index === 'undefined') { diff --git a/packages/keyring-snap-bridge/package.json b/packages/keyring-snap-bridge/package.json index c055d6ec..06844c81 100644 --- a/packages/keyring-snap-bridge/package.json +++ b/packages/keyring-snap-bridge/package.json @@ -45,11 +45,11 @@ "depcheck": "^1.4.7", "jest": "^29.5.0", "jest-it-up": "^3.1.0", - "rimraf": "^5.0.7", + "rimraf": "^5.0.10", "ts-jest": "^29.0.5", "ts-node": "^10.9.2", "typedoc": "^0.25.13", - "typescript": "~4.8.4" + "typescript": "~5.4.5" }, "peerDependencies": { "@metamask/keyring-api": "workspace:^" diff --git a/packages/keyring-snap-bridge/src/KeyringSnapControllerClient.ts b/packages/keyring-snap-bridge/src/KeyringSnapControllerClient.ts index 159ae7d9..13efbe70 100644 --- a/packages/keyring-snap-bridge/src/KeyringSnapControllerClient.ts +++ b/packages/keyring-snap-bridge/src/KeyringSnapControllerClient.ts @@ -10,13 +10,13 @@ import type { Json } from '@metamask/utils'; * to a snap through a `SnapController`. */ class SnapControllerSender implements Sender { - #snapId: SnapId; + readonly #snapId: SnapId; - #origin: string; + readonly #origin: string; - #controller: SnapController; + readonly #controller: SnapController; - #handler: HandlerType; + readonly #handler: HandlerType; /** * Create a new instance of `SnapControllerSender`. @@ -59,7 +59,7 @@ class SnapControllerSender implements Sender { * `SnapController`. */ export class KeyringSnapControllerClient extends KeyringClient { - #controller: SnapController; + readonly #controller: SnapController; /** * Create a new instance of `KeyringSnapControllerClient`. diff --git a/packages/keyring-snap-bridge/src/SnapIdMap.ts b/packages/keyring-snap-bridge/src/SnapIdMap.ts index cd158c18..c23f8e50 100644 --- a/packages/keyring-snap-bridge/src/SnapIdMap.ts +++ b/packages/keyring-snap-bridge/src/SnapIdMap.ts @@ -38,7 +38,7 @@ export class InvalidSnapIdError extends Error { * item to the map can modify or delete it. */ export class SnapIdMap { - #map: CaseInsensitiveMap; + readonly #map: CaseInsensitiveMap; /** * Creates a new `SnapIdMap` object. diff --git a/packages/keyring-snap-bridge/src/SnapKeyring.test.ts b/packages/keyring-snap-bridge/src/SnapKeyring.test.ts index 8a81f7fa..e1b5531a 100644 --- a/packages/keyring-snap-bridge/src/SnapKeyring.test.ts +++ b/packages/keyring-snap-bridge/src/SnapKeyring.test.ts @@ -22,7 +22,7 @@ import type { KeyringState } from '.'; import { SnapKeyring } from '.'; const regexForUUIDInRequiredSyncErrorMessage = - /Request '[0-9a-fA-F]{8}\b-[0-9a-fA-F]{4}\b-[0-9a-fA-F]{4}\b-[0-9a-fA-F]{4}\b-[0-9a-fA-F]{12}' to snap 'local:snap.mock' is pending and expectSync is true/u; + /Request '[0-9a-fA-F]{8}\b-[0-9a-fA-F]{4}\b-[0-9a-fA-F]{4}\b-[0-9a-fA-F]{4}\b-[0-9a-fA-F]{12}' to snap 'local:snap.mock' is pending and noPending is true/u; const ETH_4337_METHODS = [ EthMethod.PatchUserOperation, @@ -654,7 +654,7 @@ describe('SnapKeyring', () => { const isNotAllowedOrigin = async ( allowedOrigins: string[], redirectUrl: string, - ) => { + ): Promise => { const { origin } = new URL(redirectUrl); const snapObject = { id: snapId, diff --git a/packages/keyring-snap-bridge/src/SnapKeyring.ts b/packages/keyring-snap-bridge/src/SnapKeyring.ts index cb1260b9..ec4f4793 100644 --- a/packages/keyring-snap-bridge/src/SnapKeyring.ts +++ b/packages/keyring-snap-bridge/src/SnapKeyring.ts @@ -1,3 +1,7 @@ +/* eslint-disable @typescript-eslint/no-redundant-type-constituents */ +// This rule seems to be triggering a false positive. Possibly eslint is not +// inferring the EthMethod, BtcMethod, and InternalAccount types correctly. + import type { TypedTransaction } from '@ethereumjs/tx'; import { TransactionFactory } from '@ethereumjs/tx'; import type { TypedDataV1, TypedMessage } from '@metamask/eth-sig-util'; @@ -106,7 +110,7 @@ export class SnapKeyring extends EventEmitter { /** * Client used to call the Snap keyring. */ - #snapClient: KeyringSnapControllerClient; + readonly #snapClient: KeyringSnapControllerClient; /** * Mapping between account IDs and an object that contains the associated @@ -120,7 +124,7 @@ export class SnapKeyring extends EventEmitter { /** * Mapping between request IDs and their deferred promises. */ - #requests: SnapIdMap<{ + readonly #requests: SnapIdMap<{ promise: DeferredPromise; snapId: SnapId; }>; @@ -128,7 +132,7 @@ export class SnapKeyring extends EventEmitter { /** * Callbacks used to interact with other components. */ - #callbacks: SnapKeyringCallbacks; + readonly #callbacks: SnapKeyringCallbacks; /** * Create a new Snap keyring. @@ -315,23 +319,23 @@ export class SnapKeyring extends EventEmitter { ): Promise { assert(message, SnapMessageStruct); switch (message.method) { - case KeyringEvent.AccountCreated: { + case `${KeyringEvent.AccountCreated}`: { return this.#handleAccountCreated(snapId, message); } - case KeyringEvent.AccountUpdated: { + case `${KeyringEvent.AccountUpdated}`: { return this.#handleAccountUpdated(snapId, message); } - case KeyringEvent.AccountDeleted: { + case `${KeyringEvent.AccountDeleted}`: { return this.#handleAccountDeleted(snapId, message); } - case KeyringEvent.RequestApproved: { + case `${KeyringEvent.RequestApproved}`: { return this.#handleRequestApproved(snapId, message); } - case KeyringEvent.RequestRejected: { + case `${KeyringEvent.RequestRejected}`: { return this.#handleRequestRejected(snapId, message); } @@ -400,7 +404,7 @@ export class SnapKeyring extends EventEmitter { * @param opts.method - Method to call. * @param opts.params - Method parameters. * @param opts.chainId - Selected chain ID (CAIP-2). - * @param opts.expectSync - Whether the request should be synchronous. + * @param opts.noPending - Whether the response is allowed to be pending. * @returns Promise that resolves to the result of the method call. */ async #submitRequest({ @@ -408,13 +412,13 @@ export class SnapKeyring extends EventEmitter { method, params, chainId = '', - expectSync = false, + noPending = false, }: { address: string; method: string; params?: Json[] | Record; chainId?: string; - expectSync?: boolean; + noPending?: boolean; }): Promise { const { account, snapId } = this.#resolveAddress(address); if (!this.#hasMethod(account, method as AccountMethod)) { @@ -441,9 +445,9 @@ export class SnapKeyring extends EventEmitter { // Some methods, like the ones used to prepare and patch user operations, // require the Snap to answer synchronously in order to work with the // confirmation flow. This check lets the caller enforce this behavior. - if (expectSync && response.pending) { + if (noPending && response.pending) { throw new Error( - `Request '${requestId}' to snap '${snapId}' is pending and expectSync is true.`, + `Request '${requestId}' to snap '${snapId}' is pending and noPending is true.`, ); } @@ -570,7 +574,7 @@ export class SnapKeyring extends EventEmitter { async #handleAsyncResponse( redirect: { message?: string; url?: string }, snapId: SnapId, - ) { + ): Promise { const { message = '', url = '' } = redirect; if (url) { this.#validateRedirectUrl(url, snapId); @@ -585,7 +589,7 @@ export class SnapKeyring extends EventEmitter { * @param snapId - The Snap ID to check allowed origins for. * @throws An error if the URL's origin is not in the Snap's allowed origins. */ - #validateRedirectUrl(url: string, snapId: SnapId) { + #validateRedirectUrl(url: string, snapId: SnapId): void { const { origin } = new URL(url); const snap = this.#snapClient.getController().get(snapId); if (!snap) { @@ -605,6 +609,7 @@ export class SnapKeyring extends EventEmitter { * @param address - Sender's address. * @param transaction - Transaction. * @param _opts - Transaction options (not used). + * @returns A promise that resolves to the signed transaction. */ async signTransaction( address: string, @@ -744,7 +749,7 @@ export class SnapKeyring extends EventEmitter { address, method: EthMethod.PrepareUserOperation, params: toJson(transactions), - expectSync: true, + noPending: true, // We assume the chain ID is already well formatted chainId: toCaipChainId(KnownCaipNamespace.Eip155, context.chainId), }), @@ -771,7 +776,7 @@ export class SnapKeyring extends EventEmitter { address, method: EthMethod.PatchUserOperation, params: toJson([userOp]), - expectSync: true, + noPending: true, // We assume the chain ID is already well formatted chainId: toCaipChainId(KnownCaipNamespace.Eip155, context.chainId), }), diff --git a/scripts/generate-preview-build-message.ts b/scripts/generate-preview-build-message.ts index f67b46e0..95e98cf1 100644 --- a/scripts/generate-preview-build-message.ts +++ b/scripts/generate-preview-build-message.ts @@ -7,7 +7,7 @@ import path from 'path'; /** * Write a preview build message to the path "preview-build-message.txt". */ -async function main() { +async function main(): Promise { const packageMap: Record = {}; const { stdout } = await execa('yarn', [ diff --git a/scripts/prepare-preview-builds.ts b/scripts/prepare-preview-builds.ts index c4ef5885..62800414 100755 --- a/scripts/prepare-preview-builds.ts +++ b/scripts/prepare-preview-builds.ts @@ -1,5 +1,4 @@ -#!yarn ts-node - +// eslint-disable-next-line @typescript-eslint/naming-convention import PackageJson from '@npmcli/package-json'; // import { spawn } from 'node:child_process/promises'; import { spawn } from 'child_process'; @@ -203,14 +202,14 @@ async function updateWorkspaceResolutions( /** * Yarn install. */ -function yarnInstall() { +function yarnInstall(): void { spawn('yarn', ['install', '--no-immutable'], { stdio: 'inherit' }); } /** * The entrypoint to this script. */ -async function main() { +async function main(): Promise { const { npmScope, commitId } = await parseAndVerifyArguments(); const previewPkgs = await getWorkspacePreviewPackages(npmScope, commitId); diff --git a/scripts/update-readme-content.ts b/scripts/update-readme-content.ts index e960739a..8df48684 100755 --- a/scripts/update-readme-content.ts +++ b/scripts/update-readme-content.ts @@ -31,7 +31,7 @@ main().catch((error) => { * 3. Produce a Markdown fragment that represents a list of the workspace packages, and links to them. * 4. Update the README with the new content. */ -async function main() { +async function main(): Promise { const workspaces = await retrieveWorkspaces(); await updateReadme( getDependencyGraph(workspaces), @@ -159,7 +159,10 @@ function getPackageList(workspaces: Workspace[]): string { * @param newGraph - The new dependency graph Markdown fragment. * @param newPackageList - The new package list Markdown fragment. */ -async function updateReadme(newGraph: string, newPackageList: string) { +async function updateReadme( + newGraph: string, + newPackageList: string, +): Promise { const readmeContent = await fs.promises.readFile(README_PATH, 'utf8'); // Dependency graph diff --git a/tests/setup.ts b/tests/setup.ts deleted file mode 100644 index e69de29b..00000000 diff --git a/yarn.lock b/yarn.lock index 31ff6f31..dc257915 100644 --- a/yarn.lock +++ b/yarn.lock @@ -541,18 +541,18 @@ __metadata: languageName: node linkType: hard -"@es-joy/jsdoccomment@npm:~0.36.1": - version: 0.36.1 - resolution: "@es-joy/jsdoccomment@npm:0.36.1" +"@es-joy/jsdoccomment@npm:~0.41.0": + version: 0.41.0 + resolution: "@es-joy/jsdoccomment@npm:0.41.0" dependencies: - comment-parser: "npm:1.3.1" - esquery: "npm:^1.4.0" - jsdoc-type-pratt-parser: "npm:~3.1.0" - checksum: 10/0701c6aa187614269e0b67aed7932a9376d00a765a9521b61e019cb37cfdddf861a5822a55ce6dba30c19f533f7b7d0aad83e4e53e3b0b330aa64f77c67fcc57 + comment-parser: "npm:1.4.1" + esquery: "npm:^1.5.0" + jsdoc-type-pratt-parser: "npm:~4.0.0" + checksum: 10/ea581983f32ccc6550f0cb8a1d7178c74c4cbf18add8e18725b2db5ea6021016b49fb93e55e928caf7f2d08007779c0cda71c3fbbfdb92400ebc4f3a07c993f9 languageName: node linkType: hard -"@eslint-community/eslint-utils@npm:^4.2.0": +"@eslint-community/eslint-utils@npm:^4.1.2, @eslint-community/eslint-utils@npm:^4.2.0, @eslint-community/eslint-utils@npm:^4.4.0": version: 4.4.0 resolution: "@eslint-community/eslint-utils@npm:4.4.0" dependencies: @@ -563,16 +563,16 @@ __metadata: languageName: node linkType: hard -"@eslint-community/regexpp@npm:^4.4.0": - version: 4.5.1 - resolution: "@eslint-community/regexpp@npm:4.5.1" - checksum: 10/e31e456d44e9bf98d59c8ac445549098e1a6d9c4e22053cad58e86a9f78a1e64104ef7f7f46255c442e0c878fe0e566ffba287787d070196c83510ef30d1d197 +"@eslint-community/regexpp@npm:^4.10.0, @eslint-community/regexpp@npm:^4.11.0, @eslint-community/regexpp@npm:^4.6.1": + version: 4.11.1 + resolution: "@eslint-community/regexpp@npm:4.11.1" + checksum: 10/934b6d3588c7f16b18d41efec4fdb89616c440b7e3256b8cb92cfd31ae12908600f2b986d6c1e61a84cbc10256b1dd3448cd1eec79904bd67ac365d0f1aba2e2 languageName: node linkType: hard -"@eslint/eslintrc@npm:^2.1.0": - version: 2.1.0 - resolution: "@eslint/eslintrc@npm:2.1.0" +"@eslint/eslintrc@npm:^2.1.4": + version: 2.1.4 + resolution: "@eslint/eslintrc@npm:2.1.4" dependencies: ajv: "npm:^6.12.4" debug: "npm:^4.3.2" @@ -583,14 +583,14 @@ __metadata: js-yaml: "npm:^4.1.0" minimatch: "npm:^3.1.2" strip-json-comments: "npm:^3.1.1" - checksum: 10/923adf0fbadbe1548b2cbf6d020cc135fcd3bafee073b937a4c2e15b971cff607d987cc82e076d19d86d660dc0b992f688e0f5cf5eabfb5045c8ecdc3e50bd63 + checksum: 10/7a3b14f4b40fc1a22624c3f84d9f467a3d9ea1ca6e9a372116cb92507e485260359465b58e25bcb6c9981b155416b98c9973ad9b796053fd7b3f776a6946bce8 languageName: node linkType: hard -"@eslint/js@npm:8.44.0": - version: 8.44.0 - resolution: "@eslint/js@npm:8.44.0" - checksum: 10/06adec291c023cf1415d5c8dc0b14608d770ffb42b29c65dcbf092051580e1f6080483979c87b2067580b4566e281c0f588efb571303a092b34bca911eca8fb9 +"@eslint/js@npm:8.57.1": + version: 8.57.1 + resolution: "@eslint/js@npm:8.57.1" + checksum: 10/7562b21be10c2adbfa4aa5bb2eccec2cb9ac649a3569560742202c8d1cb6c931ce634937a2f0f551e078403a1c1285d6c2c0aa345dafc986149665cd69fe8b59 languageName: node linkType: hard @@ -1095,14 +1095,14 @@ __metadata: languageName: node linkType: hard -"@humanwhocodes/config-array@npm:^0.11.10": - version: 0.11.10 - resolution: "@humanwhocodes/config-array@npm:0.11.10" +"@humanwhocodes/config-array@npm:^0.13.0": + version: 0.13.0 + resolution: "@humanwhocodes/config-array@npm:0.13.0" dependencies: - "@humanwhocodes/object-schema": "npm:^1.2.1" - debug: "npm:^4.1.1" + "@humanwhocodes/object-schema": "npm:^2.0.3" + debug: "npm:^4.3.1" minimatch: "npm:^3.0.5" - checksum: 10/f93086ae6a340e739a6bb23d4575b69f52acc4e4e3d62968eaaf77a77db4ba69d6d3e50c0028ba19b634ef6b241553a9d9a13d91b797b3ea33d5d711bb3362fb + checksum: 10/524df31e61a85392a2433bf5d03164e03da26c03d009f27852e7dcfdafbc4a23f17f021dacf88e0a7a9fe04ca032017945d19b57a16e2676d9114c22a53a9d11 languageName: node linkType: hard @@ -1113,10 +1113,10 @@ __metadata: languageName: node linkType: hard -"@humanwhocodes/object-schema@npm:^1.2.1": - version: 1.2.1 - resolution: "@humanwhocodes/object-schema@npm:1.2.1" - checksum: 10/b48a8f87fcd5fdc4ac60a31a8bf710d19cc64556050575e6a35a4a48a8543cf8cde1598a65640ff2cdfbfd165b38f9db4fa3782bea7848eb585cc3db824002e6 +"@humanwhocodes/object-schema@npm:^2.0.3": + version: 2.0.3 + resolution: "@humanwhocodes/object-schema@npm:2.0.3" + checksum: 10/05bb99ed06c16408a45a833f03a732f59bf6184795d4efadd33238ff8699190a8c871ad1121241bb6501589a9598dc83bf25b99dcbcf41e155cdf36e35e937a3 languageName: node linkType: hard @@ -1644,36 +1644,36 @@ __metadata: "@lavamoat/allow-scripts": "npm:^3.2.1" "@lavamoat/preinstall-always-fail": "npm:^2.1.0" "@metamask/create-release-branch": "npm:^3.0.1" - "@metamask/eslint-config": "npm:^12.2.0" - "@metamask/eslint-config-jest": "npm:^12.1.0" - "@metamask/eslint-config-nodejs": "npm:^12.1.0" - "@metamask/eslint-config-typescript": "npm:^12.1.0" + "@metamask/eslint-config": "npm:^13.0.0" + "@metamask/eslint-config-jest": "npm:^13.0.0" + "@metamask/eslint-config-nodejs": "npm:^13.0.0" + "@metamask/eslint-config-typescript": "npm:^13.0.0" "@npmcli/package-json": "npm:^5.0.0" "@types/jest": "npm:^29.5.12" "@types/node": "npm:^20.12.12" - "@typescript-eslint/eslint-plugin": "npm:^5.43.0" - "@typescript-eslint/parser": "npm:^5.43.0" + "@typescript-eslint/eslint-plugin": "npm:^8.5.0" + "@typescript-eslint/parser": "npm:^8.5.0" depcheck: "npm:^1.4.7" - eslint: "npm:^8.44.0" + eslint: "npm:^8.55.0" eslint-config-prettier: "npm:^8.8.0" - eslint-plugin-import: "npm:~2.26.0" - eslint-plugin-jest: "npm:^27.2.2" - eslint-plugin-jsdoc: "npm:^39.9.1" - eslint-plugin-n: "npm:^15.7.0" + eslint-plugin-import-x: "npm:^0.5.3" + eslint-plugin-jest: "npm:^27.9.0" + eslint-plugin-jsdoc: "npm:^47.0.2" + eslint-plugin-n: "npm:^16.6.2" eslint-plugin-prettier: "npm:^4.2.1" - eslint-plugin-promise: "npm:^6.1.1" + eslint-plugin-promise: "npm:^6.6.0" execa: "npm:^5.0.0" jest: "npm:^29.5.0" jest-it-up: "npm:^3.1.0" jest-silent-reporter: "npm:^0.5.0" prettier: "npm:^2.8.8" - prettier-plugin-packagejson: "npm:^2.3.0" - rimraf: "npm:^5.0.7" + prettier-plugin-packagejson: "npm:^2.5.2" + rimraf: "npm:^5.0.10" syncpack: "npm:^13.0.0" ts-jest: "npm:^29.0.5" ts-node: "npm:^10.9.2" typedoc: "npm:^0.25.13" - typescript: "npm:~4.8.4" + typescript: "npm:~5.4.5" languageName: unknown linkType: soft @@ -1801,53 +1801,53 @@ __metadata: languageName: node linkType: hard -"@metamask/eslint-config-jest@npm:^12.1.0": - version: 12.1.0 - resolution: "@metamask/eslint-config-jest@npm:12.1.0" +"@metamask/eslint-config-jest@npm:^13.0.0": + version: 13.0.0 + resolution: "@metamask/eslint-config-jest@npm:13.0.0" peerDependencies: - "@metamask/eslint-config": ^12.0.0 - eslint: ^8.27.0 - eslint-plugin-jest: ^27.1.5 - checksum: 10/98f60234412051d429237dbf32b147a648a0e3b6adacafda24999ec9eb8096155c8000c62204415100c97980cc3bfe0a0fe19e4c318b8bb529eaf57e9f96e680 + "@metamask/eslint-config": ^13.0.0 + eslint: ^8.57.0 + eslint-plugin-jest: ^27.9.0 + checksum: 10/1680646add66f3da2e802d41babcbd9c2c164e3eeb4cec8b37ba322591ba2e25937616362a83a8e72cba98932b746a9b8bd414d2787e0ee08da91e75fde6bff3 languageName: node linkType: hard -"@metamask/eslint-config-nodejs@npm:^12.1.0": - version: 12.1.0 - resolution: "@metamask/eslint-config-nodejs@npm:12.1.0" +"@metamask/eslint-config-nodejs@npm:^13.0.0": + version: 13.0.0 + resolution: "@metamask/eslint-config-nodejs@npm:13.0.0" peerDependencies: - "@metamask/eslint-config": ^12.0.0 - eslint: ^8.27.0 - eslint-plugin-n: ^15.7.0 - checksum: 10/ad8d4b545420a14917d9dc4505ab8e3c07c559c35c67f07062eb3e9e86620d0660aa82500662ea9f23152b978417ee9fdebc47e6b39f8cb72e811b7e561e792f + "@metamask/eslint-config": ^13.0.0 + eslint: ^8.57.0 + eslint-plugin-n: ^16.6.2 + checksum: 10/cb5a9842d366a397839bd23c84d68c92df504094b7467ee31a8846126024bd3f31036372d311df106932ce1b4ba44f982d21f7de06b81f82dac9c34d13cd475f languageName: node linkType: hard -"@metamask/eslint-config-typescript@npm:^12.1.0": - version: 12.1.0 - resolution: "@metamask/eslint-config-typescript@npm:12.1.0" +"@metamask/eslint-config-typescript@npm:^13.0.0": + version: 13.0.0 + resolution: "@metamask/eslint-config-typescript@npm:13.0.0" peerDependencies: - "@metamask/eslint-config": ^12.0.0 - "@typescript-eslint/eslint-plugin": ^5.42.1 - "@typescript-eslint/parser": ^5.42.1 - eslint: ^8.27.0 - typescript: ~4.8.4 || ~5.0 || ~5.1 - checksum: 10/3159b08d94a751e5639db6253e3bfb6cc7bc5633ad07c43099288e65e5ed25d9f7533968045fedaf4e2a852d0c0fec14290f0f274aa0544a7411cc60deb97aba + "@metamask/eslint-config": ^13.0.0 + "@typescript-eslint/eslint-plugin": ^8.1.0 + "@typescript-eslint/parser": ^8.1.0 + eslint: ^8.57.0 + typescript: ">=4.8.4 <5.6" + checksum: 10/8abd73f81e395e62aeac0972af71d82c7e97bb1ef75f34c5c50f39b72cd9cca0bf32ae80eaa5cb3f5cf6d14b6c0d84c213ed56cc55c8f9d46b62d2fb0704edd3 languageName: node linkType: hard -"@metamask/eslint-config@npm:^12.2.0": - version: 12.2.0 - resolution: "@metamask/eslint-config@npm:12.2.0" +"@metamask/eslint-config@npm:^13.0.0": + version: 13.0.0 + resolution: "@metamask/eslint-config@npm:13.0.0" peerDependencies: - eslint: ^8.27.0 + eslint: ^8.57.0 eslint-config-prettier: ^8.5.0 - eslint-plugin-import: ~2.26.0 - eslint-plugin-jsdoc: ^39.6.2 || ^41 || ^43.0.7 + eslint-plugin-import-x: ^0.5.1 + eslint-plugin-jsdoc: ">=43.0.7 <48" eslint-plugin-prettier: ^4.2.1 eslint-plugin-promise: ^6.1.1 prettier: ^2.7.1 - checksum: 10/6edbf4c2fce34ba8ccd873938501744d69cd13c02047655df596ab551f1aaa390513b8df855145d04c7fed6b5d91b9cfd0ce96ee082abf838292df761f50c520 + checksum: 10/0a7a5449b83e380afaf5ab55bc45faa1337585307ee3c4cef3a5109dc62a637ad56944e63c31b4ceead6e14fbb3dd00bfbb52b3f7ae1956aa02f155e03e31477 languageName: node linkType: hard @@ -1890,7 +1890,7 @@ __metadata: resolution: "@metamask/eth-ledger-bridge-keyring@workspace:packages/keyring-eth-ledger-bridge" dependencies: "@ethereumjs/common": "npm:^3.2.0" - "@ethereumjs/rlp": "npm:^4.0.1" + "@ethereumjs/rlp": "npm:^5.0.2" "@ethereumjs/tx": "npm:^4.2.0" "@ethereumjs/util": "npm:^8.1.0" "@lavamoat/allow-scripts": "npm:^3.2.1" @@ -1913,11 +1913,11 @@ __metadata: hdkey: "npm:^2.1.0" jest: "npm:^29.5.0" jest-it-up: "npm:^3.1.0" - rimraf: "npm:^5.0.7" + rimraf: "npm:^5.0.10" ts-jest: "npm:^29.0.5" ts-node: "npm:^10.9.2" typedoc: "npm:^0.25.13" - typescript: "npm:~4.8.4" + typescript: "npm:~5.4.5" languageName: unknown linkType: soft @@ -1982,7 +1982,7 @@ __metadata: ts-jest: "npm:^29.0.5" ts-node: "npm:^10.9.2" typedoc: "npm:^0.25.13" - typescript: "npm:~4.8.4" + typescript: "npm:~5.4.5" languageName: unknown linkType: soft @@ -2007,11 +2007,11 @@ __metadata: depcheck: "npm:^1.4.7" jest: "npm:^29.5.0" jest-it-up: "npm:^3.1.0" - rimraf: "npm:^5.0.7" + rimraf: "npm:^5.0.10" ts-jest: "npm:^29.0.5" ts-node: "npm:^10.9.2" typedoc: "npm:^0.25.13" - typescript: "npm:~4.8.4" + typescript: "npm:~5.4.5" uuid: "npm:^9.0.1" peerDependencies: "@metamask/keyring-api": "workspace:^" @@ -2044,13 +2044,13 @@ __metadata: jest: "npm:^29.5.0" jest-environment-jsdom: "npm:^29.7.0" jest-it-up: "npm:^3.1.0" - rimraf: "npm:^5.0.7" + rimraf: "npm:^5.0.10" sinon: "npm:^19.0.2" ts-jest: "npm:^29.0.5" ts-node: "npm:^10.9.2" tslib: "npm:^2.6.2" typedoc: "npm:^0.25.13" - typescript: "npm:~4.8.4" + typescript: "npm:~5.4.5" languageName: unknown linkType: soft @@ -2122,12 +2122,12 @@ __metadata: depcheck: "npm:^1.4.7" jest: "npm:^29.5.0" jest-it-up: "npm:^3.1.0" - rimraf: "npm:^5.0.7" + rimraf: "npm:^5.0.10" ts-jest: "npm:^29.0.5" ts-node: "npm:^10.9.2" tsd: "npm:^0.31.0" typedoc: "npm:^0.25.13" - typescript: "npm:~4.8.4" + typescript: "npm:~5.4.5" uuid: "npm:^9.0.1" webextension-polyfill: "npm:^0.12.0" peerDependencies: @@ -2565,6 +2565,13 @@ __metadata: languageName: node linkType: hard +"@pkgr/core@npm:^0.1.0": + version: 0.1.1 + resolution: "@pkgr/core@npm:0.1.1" + checksum: 10/6f25fd2e3008f259c77207ac9915b02f1628420403b2630c92a07ff963129238c9262afc9e84344c7a23b5cc1f3965e2cd17e3798219f5fd78a63d144d3cceba + languageName: node + linkType: hard + "@protobufjs/aspromise@npm:^1.1.1, @protobufjs/aspromise@npm:^1.1.2": version: 1.1.2 resolution: "@protobufjs/aspromise@npm:1.1.2" @@ -3197,16 +3204,6 @@ __metadata: languageName: node linkType: hard -"@types/glob@npm:^7.1.1": - version: 7.1.3 - resolution: "@types/glob@npm:7.1.3" - dependencies: - "@types/minimatch": "npm:*" - "@types/node": "npm:*" - checksum: 10/e0eef12285f548f15d887145590594a04ccce7f7e645fb047cbac18cb093f25d507ffbcc725312294c224bb78cf980fce33e5807de8d6f8a868b4186253499d4 - languageName: node - linkType: hard - "@types/graceful-fs@npm:^4.1.3": version: 4.1.5 resolution: "@types/graceful-fs@npm:4.1.5" @@ -3278,13 +3275,6 @@ __metadata: languageName: node linkType: hard -"@types/json5@npm:^0.0.29": - version: 0.0.29 - resolution: "@types/json5@npm:0.0.29" - checksum: 10/4e5aed58cabb2bbf6f725da13421aa50a49abb6bc17bfab6c31b8774b073fa7b50d557c61f961a09a85f6056151190f8ac95f13f5b48136ba5841f7d4484ec56 - languageName: node - linkType: hard - "@types/lodash@npm:^4.14.136": version: 4.17.7 resolution: "@types/lodash@npm:4.17.7" @@ -3292,7 +3282,7 @@ __metadata: languageName: node linkType: hard -"@types/minimatch@npm:*, @types/minimatch@npm:^3.0.3": +"@types/minimatch@npm:^3.0.3": version: 3.0.5 resolution: "@types/minimatch@npm:3.0.5" checksum: 10/c41d136f67231c3131cf1d4ca0b06687f4a322918a3a5adddc87ce90ed9dbd175a3610adee36b106ae68c0b92c637c35e02b58c8a56c424f71d30993ea220b92 @@ -3485,43 +3475,44 @@ __metadata: languageName: node linkType: hard -"@typescript-eslint/eslint-plugin@npm:^5.43.0": - version: 5.43.0 - resolution: "@typescript-eslint/eslint-plugin@npm:5.43.0" +"@typescript-eslint/eslint-plugin@npm:^8.5.0": + version: 8.7.0 + resolution: "@typescript-eslint/eslint-plugin@npm:8.7.0" dependencies: - "@typescript-eslint/scope-manager": "npm:5.43.0" - "@typescript-eslint/type-utils": "npm:5.43.0" - "@typescript-eslint/utils": "npm:5.43.0" - debug: "npm:^4.3.4" - ignore: "npm:^5.2.0" - natural-compare-lite: "npm:^1.4.0" - regexpp: "npm:^3.2.0" - semver: "npm:^7.3.7" - tsutils: "npm:^3.21.0" + "@eslint-community/regexpp": "npm:^4.10.0" + "@typescript-eslint/scope-manager": "npm:8.7.0" + "@typescript-eslint/type-utils": "npm:8.7.0" + "@typescript-eslint/utils": "npm:8.7.0" + "@typescript-eslint/visitor-keys": "npm:8.7.0" + graphemer: "npm:^1.4.0" + ignore: "npm:^5.3.1" + natural-compare: "npm:^1.4.0" + ts-api-utils: "npm:^1.3.0" peerDependencies: - "@typescript-eslint/parser": ^5.0.0 - eslint: ^6.0.0 || ^7.0.0 || ^8.0.0 + "@typescript-eslint/parser": ^8.0.0 || ^8.0.0-alpha.0 + eslint: ^8.57.0 || ^9.0.0 peerDependenciesMeta: typescript: optional: true - checksum: 10/141c5fcf9435325b85d31f11fb7e6dda303b35f3f9ba9ae0156deead4b4229c5747d214db54a098c4756e810bf2a5758f18bc75004bb5a3cbf201ec09a0c2462 + checksum: 10/5bc774b1da4e1cd19c5ffd731c655c53035fd81ff06a95c2f2c54ab62c401879f886da3e1a1235505341e8172b2841c6edc78b4565a261105ab32d83bf5b8ab1 languageName: node linkType: hard -"@typescript-eslint/parser@npm:^5.43.0": - version: 5.43.0 - resolution: "@typescript-eslint/parser@npm:5.43.0" +"@typescript-eslint/parser@npm:^8.5.0": + version: 8.7.0 + resolution: "@typescript-eslint/parser@npm:8.7.0" dependencies: - "@typescript-eslint/scope-manager": "npm:5.43.0" - "@typescript-eslint/types": "npm:5.43.0" - "@typescript-eslint/typescript-estree": "npm:5.43.0" + "@typescript-eslint/scope-manager": "npm:8.7.0" + "@typescript-eslint/types": "npm:8.7.0" + "@typescript-eslint/typescript-estree": "npm:8.7.0" + "@typescript-eslint/visitor-keys": "npm:8.7.0" debug: "npm:^4.3.4" peerDependencies: - eslint: ^6.0.0 || ^7.0.0 || ^8.0.0 + eslint: ^8.57.0 || ^9.0.0 peerDependenciesMeta: typescript: optional: true - checksum: 10/7b2ad41163910691e54cb6330fcb7436b0c0a74ddbfc6fdeb160a96577fe00f0922c0eec4aabb1b7408c640c6c9de8a3d08fe102232c6326beca0992bd142e0b + checksum: 10/896ac60f8426f9e5c23198c89555f6f88f7957c5b16bb7b966dac45c5f5e7076c1a050bcee2e0eddff88055b9c0d7bdfaef9c64889e3bdf3356d20356b0daa04 languageName: node linkType: hard @@ -3535,20 +3526,38 @@ __metadata: languageName: node linkType: hard -"@typescript-eslint/type-utils@npm:5.43.0": - version: 5.43.0 - resolution: "@typescript-eslint/type-utils@npm:5.43.0" +"@typescript-eslint/scope-manager@npm:7.18.0": + version: 7.18.0 + resolution: "@typescript-eslint/scope-manager@npm:7.18.0" dependencies: - "@typescript-eslint/typescript-estree": "npm:5.43.0" - "@typescript-eslint/utils": "npm:5.43.0" + "@typescript-eslint/types": "npm:7.18.0" + "@typescript-eslint/visitor-keys": "npm:7.18.0" + checksum: 10/9eb2ae5d69d9f723e706c16b2b97744fc016996a5473bed596035ac4d12429b3d24e7340a8235d704efa57f8f52e1b3b37925ff7c2e3384859d28b23a99b8bcc + languageName: node + linkType: hard + +"@typescript-eslint/scope-manager@npm:8.7.0": + version: 8.7.0 + resolution: "@typescript-eslint/scope-manager@npm:8.7.0" + dependencies: + "@typescript-eslint/types": "npm:8.7.0" + "@typescript-eslint/visitor-keys": "npm:8.7.0" + checksum: 10/6a6aae28437f6cd78f82dd1359658593fcc8f6d0da966b4d128b14db3a307b6094d22515a79c222055a31bf9b73b73799acf18fbf48c0da16e8f408fcc10464c + languageName: node + linkType: hard + +"@typescript-eslint/type-utils@npm:8.7.0": + version: 8.7.0 + resolution: "@typescript-eslint/type-utils@npm:8.7.0" + dependencies: + "@typescript-eslint/typescript-estree": "npm:8.7.0" + "@typescript-eslint/utils": "npm:8.7.0" debug: "npm:^4.3.4" - tsutils: "npm:^3.21.0" - peerDependencies: - eslint: "*" + ts-api-utils: "npm:^1.3.0" peerDependenciesMeta: typescript: optional: true - checksum: 10/6ffb38e0fa82831a13dedd0b3153846c718efbe1a92e4aa7176c92f3fc38a727148af6d33fd51de0e1d296c6e5f5021e77be8241291ebf87f3fd408c2f1459b1 + checksum: 10/dba4520dd3dce35b765640f9633100bd29d2092478cb467e89bde51dc23fb19f7395e87f4486b898315aab081263003cbc78f03f0f40079602713aafc2f2a6a5 languageName: node linkType: hard @@ -3559,6 +3568,20 @@ __metadata: languageName: node linkType: hard +"@typescript-eslint/types@npm:7.18.0": + version: 7.18.0 + resolution: "@typescript-eslint/types@npm:7.18.0" + checksum: 10/0e30c73a3cc3c67dd06360a5a12fd12cee831e4092750eec3d6c031bdc4feafcb0ab1d882910a73e66b451a4f6e1dd015e9e2c4d45bf6bf716a474e5d123ddf0 + languageName: node + linkType: hard + +"@typescript-eslint/types@npm:8.7.0": + version: 8.7.0 + resolution: "@typescript-eslint/types@npm:8.7.0" + checksum: 10/9adbe4efdcb00735af5144a161d6bb2f79a952a9701820920ad33adba02032d65d5b601087e953c2918f7efa548abbcd9289f83ec6299f66941d7c585886792e + languageName: node + linkType: hard + "@typescript-eslint/typescript-estree@npm:5.43.0": version: 5.43.0 resolution: "@typescript-eslint/typescript-estree@npm:5.43.0" @@ -3577,7 +3600,59 @@ __metadata: languageName: node linkType: hard -"@typescript-eslint/utils@npm:5.43.0, @typescript-eslint/utils@npm:^5.10.0": +"@typescript-eslint/typescript-estree@npm:7.18.0": + version: 7.18.0 + resolution: "@typescript-eslint/typescript-estree@npm:7.18.0" + dependencies: + "@typescript-eslint/types": "npm:7.18.0" + "@typescript-eslint/visitor-keys": "npm:7.18.0" + debug: "npm:^4.3.4" + globby: "npm:^11.1.0" + is-glob: "npm:^4.0.3" + minimatch: "npm:^9.0.4" + semver: "npm:^7.6.0" + ts-api-utils: "npm:^1.3.0" + peerDependenciesMeta: + typescript: + optional: true + checksum: 10/b01e66235a91aa4439d02081d4a5f8b4a7cf9cb24f26b334812f657e3c603493e5f41e5c1e89cf4efae7d64509fa1f73affc16afc5e15cb7f83f724577c82036 + languageName: node + linkType: hard + +"@typescript-eslint/typescript-estree@npm:8.7.0": + version: 8.7.0 + resolution: "@typescript-eslint/typescript-estree@npm:8.7.0" + dependencies: + "@typescript-eslint/types": "npm:8.7.0" + "@typescript-eslint/visitor-keys": "npm:8.7.0" + debug: "npm:^4.3.4" + fast-glob: "npm:^3.3.2" + is-glob: "npm:^4.0.3" + minimatch: "npm:^9.0.4" + semver: "npm:^7.6.0" + ts-api-utils: "npm:^1.3.0" + peerDependenciesMeta: + typescript: + optional: true + checksum: 10/c4f7e3c18c8382b72800681c37c87726b02a96cf6831be37d2d2f9c26267016a9dd7af4e08184b96376a9aebdc5c344c6c378c86821c374fe10a9e45aca1b33d + languageName: node + linkType: hard + +"@typescript-eslint/utils@npm:8.7.0": + version: 8.7.0 + resolution: "@typescript-eslint/utils@npm:8.7.0" + dependencies: + "@eslint-community/eslint-utils": "npm:^4.4.0" + "@typescript-eslint/scope-manager": "npm:8.7.0" + "@typescript-eslint/types": "npm:8.7.0" + "@typescript-eslint/typescript-estree": "npm:8.7.0" + peerDependencies: + eslint: ^8.57.0 || ^9.0.0 + checksum: 10/81674503fb5ea32ff5de8f1a29fecbcfa947025e7609e861ac8e32cd13326fc050c4fa5044e1a877f05e7e1264c42b9c72a7fd09c4a41d0ac2cf1c49259abf03 + languageName: node + linkType: hard + +"@typescript-eslint/utils@npm:^5.10.0": version: 5.43.0 resolution: "@typescript-eslint/utils@npm:5.43.0" dependencies: @@ -3595,6 +3670,20 @@ __metadata: languageName: node linkType: hard +"@typescript-eslint/utils@npm:^7.4.0": + version: 7.18.0 + resolution: "@typescript-eslint/utils@npm:7.18.0" + dependencies: + "@eslint-community/eslint-utils": "npm:^4.4.0" + "@typescript-eslint/scope-manager": "npm:7.18.0" + "@typescript-eslint/types": "npm:7.18.0" + "@typescript-eslint/typescript-estree": "npm:7.18.0" + peerDependencies: + eslint: ^8.56.0 + checksum: 10/f43fedb4f4d2e3836bdf137889449063a55c0ece74fdb283929cd376197b992313be8ef4df920c1c801b5c3076b92964c84c6c3b9b749d263b648d0011f5926e + languageName: node + linkType: hard + "@typescript-eslint/visitor-keys@npm:5.43.0": version: 5.43.0 resolution: "@typescript-eslint/visitor-keys@npm:5.43.0" @@ -3605,6 +3694,33 @@ __metadata: languageName: node linkType: hard +"@typescript-eslint/visitor-keys@npm:7.18.0": + version: 7.18.0 + resolution: "@typescript-eslint/visitor-keys@npm:7.18.0" + dependencies: + "@typescript-eslint/types": "npm:7.18.0" + eslint-visitor-keys: "npm:^3.4.3" + checksum: 10/b7cfe6fdeae86c507357ac6b2357813c64fb2fbf1aaf844393ba82f73a16e2599b41981b34200d9fc7765d70bc3a8181d76b503051e53f04bcb7c9afef637eab + languageName: node + linkType: hard + +"@typescript-eslint/visitor-keys@npm:8.7.0": + version: 8.7.0 + resolution: "@typescript-eslint/visitor-keys@npm:8.7.0" + dependencies: + "@typescript-eslint/types": "npm:8.7.0" + eslint-visitor-keys: "npm:^3.4.3" + checksum: 10/189ea297ff4da53aea92f31de57aed164550c51ac7cf663007c997c4f0f75a82097e35568e3a0fbcced290cb4c12ab7d3afd99e93eb37c930d7f6d6bbfd6ed98 + languageName: node + linkType: hard + +"@ungap/structured-clone@npm:^1.2.0": + version: 1.2.0 + resolution: "@ungap/structured-clone@npm:1.2.0" + checksum: 10/c6fe89a505e513a7592e1438280db1c075764793a2397877ff1351721fe8792a966a5359769e30242b3cd023f2efb9e63ca2ca88019d73b564488cc20e3eab12 + languageName: node + linkType: hard + "@vue/compiler-core@npm:3.4.38": version: 3.4.38 resolution: "@vue/compiler-core@npm:3.4.38" @@ -3799,7 +3915,7 @@ __metadata: languageName: node linkType: hard -"ajv@npm:^6.10.0, ajv@npm:^6.12.4": +"ajv@npm:^6.12.4": version: 6.12.6 resolution: "ajv@npm:6.12.6" dependencies: @@ -3905,6 +4021,13 @@ __metadata: languageName: node linkType: hard +"are-docs-informative@npm:^0.0.2": + version: 0.0.2 + resolution: "are-docs-informative@npm:0.0.2" + checksum: 10/12cdae51a4bb369832ef1a35840604247d4ed0cbc8392f2519988d170f92c3f8c60e465844f41acba1ec3062d0edb2e9133fca38cb9c1214309153d50a25fa29 + languageName: node + linkType: hard + "are-we-there-yet@npm:^3.0.0": version: 3.0.0 resolution: "are-we-there-yet@npm:3.0.0" @@ -3938,16 +4061,6 @@ __metadata: languageName: node linkType: hard -"array-buffer-byte-length@npm:^1.0.1": - version: 1.0.1 - resolution: "array-buffer-byte-length@npm:1.0.1" - dependencies: - call-bind: "npm:^1.0.5" - is-array-buffer: "npm:^3.0.4" - checksum: 10/53524e08f40867f6a9f35318fafe467c32e45e9c682ba67b11943e167344d2febc0f6977a17e699b05699e805c3e8f073d876f8bbf1b559ed494ad2cd0fae09e - languageName: node - linkType: hard - "array-differ@npm:^3.0.0": version: 3.0.0 resolution: "array-differ@npm:3.0.0" @@ -3955,20 +4068,6 @@ __metadata: languageName: node linkType: hard -"array-includes@npm:^3.1.4": - version: 3.1.8 - resolution: "array-includes@npm:3.1.8" - dependencies: - call-bind: "npm:^1.0.7" - define-properties: "npm:^1.2.1" - es-abstract: "npm:^1.23.2" - es-object-atoms: "npm:^1.0.0" - get-intrinsic: "npm:^1.2.4" - is-string: "npm:^1.0.7" - checksum: 10/290b206c9451f181fb2b1f79a3bf1c0b66bb259791290ffbada760c79b284eef6f5ae2aeb4bcff450ebc9690edd25732c4c73a3c2b340fcc0f4563aed83bf488 - languageName: node - linkType: hard - "array-union@npm:^2.1.0": version: 2.1.0 resolution: "array-union@npm:2.1.0" @@ -3976,34 +4075,6 @@ __metadata: languageName: node linkType: hard -"array.prototype.flat@npm:^1.2.5": - version: 1.3.2 - resolution: "array.prototype.flat@npm:1.3.2" - dependencies: - call-bind: "npm:^1.0.2" - define-properties: "npm:^1.2.0" - es-abstract: "npm:^1.22.1" - es-shim-unscopables: "npm:^1.0.0" - checksum: 10/d9d2f6f27584de92ec7995bc931103e6de722cd2498bdbfc4cba814fc3e52f056050a93be883018811f7c0a35875f5056584a0e940603a5e5934f0279896aebe - languageName: node - linkType: hard - -"arraybuffer.prototype.slice@npm:^1.0.3": - version: 1.0.3 - resolution: "arraybuffer.prototype.slice@npm:1.0.3" - dependencies: - array-buffer-byte-length: "npm:^1.0.1" - call-bind: "npm:^1.0.5" - define-properties: "npm:^1.2.1" - es-abstract: "npm:^1.22.3" - es-errors: "npm:^1.2.1" - get-intrinsic: "npm:^1.2.3" - is-array-buffer: "npm:^3.0.4" - is-shared-array-buffer: "npm:^1.0.2" - checksum: 10/0221f16c1e3ec7b67da870ee0e1f12b825b5f9189835392b59a22990f715827561a4f4cd5330dc7507de272d8df821be6cd4b0cb569babf5ea4be70e365a2f3d - languageName: node - linkType: hard - "arrify@npm:^1.0.1": version: 1.0.1 resolution: "arrify@npm:1.0.1" @@ -4486,6 +4557,13 @@ __metadata: languageName: node linkType: hard +"builtin-modules@npm:^3.3.0": + version: 3.3.0 + resolution: "builtin-modules@npm:3.3.0" + checksum: 10/62e063ab40c0c1efccbfa9ffa31873e4f9d57408cb396a2649981a0ecbce56aabc93c28feaccbc5658c95aab2703ad1d11980e62ec2e5e72637404e1eb60f39e + languageName: node + linkType: hard + "builtins@npm:^5.0.1": version: 5.0.1 resolution: "builtins@npm:5.0.1" @@ -4541,7 +4619,7 @@ __metadata: languageName: node linkType: hard -"call-bind@npm:^1.0.0, call-bind@npm:^1.0.2, call-bind@npm:^1.0.5, call-bind@npm:^1.0.6, call-bind@npm:^1.0.7": +"call-bind@npm:^1.0.0, call-bind@npm:^1.0.2, call-bind@npm:^1.0.5, call-bind@npm:^1.0.7": version: 1.0.7 resolution: "call-bind@npm:1.0.7" dependencies: @@ -4828,10 +4906,10 @@ __metadata: languageName: node linkType: hard -"comment-parser@npm:1.3.1": - version: 1.3.1 - resolution: "comment-parser@npm:1.3.1" - checksum: 10/d533b527539472a4431f282afa406acd74f792728223984114e1ba10a417c06df91f2364e8aee41a78e9c92243c3bcc57b1ddc9a2a77342326ddb942b56d5060 +"comment-parser@npm:1.4.1": + version: 1.4.1 + resolution: "comment-parser@npm:1.4.1" + checksum: 10/16a3260b5e77819ebd9c99b0b65c7d6723b1ff73487bac9ce2d8f016a2847dd689e8663b88e1fad1444bbea89847c42f785708ac86a2c55f614f7095249bbf6b languageName: node linkType: hard @@ -5037,39 +5115,6 @@ __metadata: languageName: node linkType: hard -"data-view-buffer@npm:^1.0.1": - version: 1.0.1 - resolution: "data-view-buffer@npm:1.0.1" - dependencies: - call-bind: "npm:^1.0.6" - es-errors: "npm:^1.3.0" - is-data-view: "npm:^1.0.1" - checksum: 10/5919a39a18ee919573336158fd162fdf8ada1bc23a139f28543fd45fac48e0ea4a3ad3bfde91de124d4106e65c4a7525f6a84c20ba0797ec890a77a96d13a82a - languageName: node - linkType: hard - -"data-view-byte-length@npm:^1.0.1": - version: 1.0.1 - resolution: "data-view-byte-length@npm:1.0.1" - dependencies: - call-bind: "npm:^1.0.7" - es-errors: "npm:^1.3.0" - is-data-view: "npm:^1.0.1" - checksum: 10/f33c65e58d8d0432ad79761f2e8a579818d724b5dc6dc4e700489b762d963ab30873c0f1c37d8f2ed12ef51c706d1195f64422856d25f067457aeec50cc40aac - languageName: node - linkType: hard - -"data-view-byte-offset@npm:^1.0.0": - version: 1.0.0 - resolution: "data-view-byte-offset@npm:1.0.0" - dependencies: - call-bind: "npm:^1.0.6" - es-errors: "npm:^1.3.0" - is-data-view: "npm:^1.0.1" - checksum: 10/96f34f151bf02affb7b9f98762fb7aca1dd5f4553cb57b80bce750ca609c15d33ca659568ef1d422f7e35680736cbccb893a3d4b012760c758c1446bbdc4c6db - languageName: node - linkType: hard - "debug@npm:4, debug@npm:^4.1.0, debug@npm:^4.1.1, debug@npm:^4.3.1, debug@npm:^4.3.2, debug@npm:^4.3.3, debug@npm:^4.3.4": version: 4.3.6 resolution: "debug@npm:4.3.6" @@ -5082,15 +5127,6 @@ __metadata: languageName: node linkType: hard -"debug@npm:^2.6.9": - version: 2.6.9 - resolution: "debug@npm:2.6.9" - dependencies: - ms: "npm:2.0.0" - checksum: 10/e07005f2b40e04f1bd14a3dd20520e9c4f25f60224cb006ce9d6781732c917964e9ec029fc7f1a151083cd929025ad5133814d4dc624a9aaf020effe4914ed14 - languageName: node - linkType: hard - "debug@npm:^3.2.7": version: 3.2.7 resolution: "debug@npm:3.2.7" @@ -5168,7 +5204,7 @@ __metadata: languageName: node linkType: hard -"define-properties@npm:^1.1.3, define-properties@npm:^1.2.0, define-properties@npm:^1.2.1": +"define-properties@npm:^1.1.3, define-properties@npm:^1.2.1": version: 1.2.1 resolution: "define-properties@npm:1.2.1" dependencies: @@ -5254,20 +5290,27 @@ __metadata: languageName: node linkType: hard -"detect-indent@npm:^6.0.0": - version: 6.1.0 - resolution: "detect-indent@npm:6.1.0" - checksum: 10/ab953a73c72dbd4e8fc68e4ed4bfd92c97eb6c43734af3900add963fd3a9316f3bc0578b018b24198d4c31a358571eff5f0656e81a1f3b9ad5c547d58b2d093d +"detect-indent@npm:^7.0.1": + version: 7.0.1 + resolution: "detect-indent@npm:7.0.1" + checksum: 10/cbf3f0b1c3c881934ca94428e1179b26ab2a587e0d719031d37a67fb506d49d067de54ff057cb1e772e75975fed5155c01cd4518306fee60988b1486e3fc7768 languageName: node linkType: hard -"detect-newline@npm:3.1.0, detect-newline@npm:^3.0.0": +"detect-newline@npm:^3.0.0": version: 3.1.0 resolution: "detect-newline@npm:3.1.0" checksum: 10/ae6cd429c41ad01b164c59ea36f264a2c479598e61cba7c99da24175a7ab80ddf066420f2bec9a1c57a6bead411b4655ff15ad7d281c000a89791f48cbe939e7 languageName: node linkType: hard +"detect-newline@npm:^4.0.0": + version: 4.0.1 + resolution: "detect-newline@npm:4.0.1" + checksum: 10/0409ecdfb93419591ccff24fccfe2ddddad29b66637d1ed898872125b25af05014fdeedc9306339577060f69f59fe6e9830cdd80948597f136dfbffefa60599c + languageName: node + linkType: hard + "diff-sequences@npm:^29.6.3": version: 29.6.3 resolution: "diff-sequences@npm:29.6.3" @@ -5305,15 +5348,6 @@ __metadata: languageName: node linkType: hard -"doctrine@npm:^2.1.0": - version: 2.1.0 - resolution: "doctrine@npm:2.1.0" - dependencies: - esutils: "npm:^2.0.2" - checksum: 10/555684f77e791b17173ea86e2eea45ef26c22219cb64670669c4f4bebd26dbc95cd90ec1f4159e9349a6bb9eb892ce4dde8cd0139e77bedd8bf4518238618474 - languageName: node - linkType: hard - "doctrine@npm:^3.0.0": version: 3.0.0 resolution: "doctrine@npm:3.0.0" @@ -5480,60 +5514,6 @@ __metadata: languageName: node linkType: hard -"es-abstract@npm:^1.22.1, es-abstract@npm:^1.22.3, es-abstract@npm:^1.23.0, es-abstract@npm:^1.23.2": - version: 1.23.3 - resolution: "es-abstract@npm:1.23.3" - dependencies: - array-buffer-byte-length: "npm:^1.0.1" - arraybuffer.prototype.slice: "npm:^1.0.3" - available-typed-arrays: "npm:^1.0.7" - call-bind: "npm:^1.0.7" - data-view-buffer: "npm:^1.0.1" - data-view-byte-length: "npm:^1.0.1" - data-view-byte-offset: "npm:^1.0.0" - es-define-property: "npm:^1.0.0" - es-errors: "npm:^1.3.0" - es-object-atoms: "npm:^1.0.0" - es-set-tostringtag: "npm:^2.0.3" - es-to-primitive: "npm:^1.2.1" - function.prototype.name: "npm:^1.1.6" - get-intrinsic: "npm:^1.2.4" - get-symbol-description: "npm:^1.0.2" - globalthis: "npm:^1.0.3" - gopd: "npm:^1.0.1" - has-property-descriptors: "npm:^1.0.2" - has-proto: "npm:^1.0.3" - has-symbols: "npm:^1.0.3" - hasown: "npm:^2.0.2" - internal-slot: "npm:^1.0.7" - is-array-buffer: "npm:^3.0.4" - is-callable: "npm:^1.2.7" - is-data-view: "npm:^1.0.1" - is-negative-zero: "npm:^2.0.3" - is-regex: "npm:^1.1.4" - is-shared-array-buffer: "npm:^1.0.3" - is-string: "npm:^1.0.7" - is-typed-array: "npm:^1.1.13" - is-weakref: "npm:^1.0.2" - object-inspect: "npm:^1.13.1" - object-keys: "npm:^1.1.1" - object.assign: "npm:^4.1.5" - regexp.prototype.flags: "npm:^1.5.2" - safe-array-concat: "npm:^1.1.2" - safe-regex-test: "npm:^1.0.3" - string.prototype.trim: "npm:^1.2.9" - string.prototype.trimend: "npm:^1.0.8" - string.prototype.trimstart: "npm:^1.0.8" - typed-array-buffer: "npm:^1.0.2" - typed-array-byte-length: "npm:^1.0.1" - typed-array-byte-offset: "npm:^1.0.2" - typed-array-length: "npm:^1.0.6" - unbox-primitive: "npm:^1.0.2" - which-typed-array: "npm:^1.1.15" - checksum: 10/2da795a6a1ac5fc2c452799a409acc2e3692e06dc6440440b076908617188899caa562154d77263e3053bcd9389a07baa978ab10ac3b46acc399bd0c77be04cb - languageName: node - linkType: hard - "es-define-property@npm:^1.0.0": version: 1.0.0 resolution: "es-define-property@npm:1.0.0" @@ -5543,53 +5523,13 @@ __metadata: languageName: node linkType: hard -"es-errors@npm:^1.2.1, es-errors@npm:^1.3.0": +"es-errors@npm:^1.3.0": version: 1.3.0 resolution: "es-errors@npm:1.3.0" checksum: 10/96e65d640156f91b707517e8cdc454dd7d47c32833aa3e85d79f24f9eb7ea85f39b63e36216ef0114996581969b59fe609a94e30316b08f5f4df1d44134cf8d5 languageName: node linkType: hard -"es-object-atoms@npm:^1.0.0": - version: 1.0.0 - resolution: "es-object-atoms@npm:1.0.0" - dependencies: - es-errors: "npm:^1.3.0" - checksum: 10/f8910cf477e53c0615f685c5c96210591841850871b81924fcf256bfbaa68c254457d994a4308c60d15b20805e7f61ce6abc669375e01a5349391a8c1767584f - languageName: node - linkType: hard - -"es-set-tostringtag@npm:^2.0.3": - version: 2.0.3 - resolution: "es-set-tostringtag@npm:2.0.3" - dependencies: - get-intrinsic: "npm:^1.2.4" - has-tostringtag: "npm:^1.0.2" - hasown: "npm:^2.0.1" - checksum: 10/7227fa48a41c0ce83e0377b11130d324ac797390688135b8da5c28994c0165be8b252e15cd1de41e1325e5a5412511586960213e88f9ab4a5e7d028895db5129 - languageName: node - linkType: hard - -"es-shim-unscopables@npm:^1.0.0": - version: 1.0.2 - resolution: "es-shim-unscopables@npm:1.0.2" - dependencies: - hasown: "npm:^2.0.0" - checksum: 10/6d3bf91f658a27cc7217cd32b407a0d714393a84d125ad576319b9e83a893bea165cf41270c29e9ceaa56d3cf41608945d7e2a2c31fd51c0009b0c31402b91c7 - languageName: node - linkType: hard - -"es-to-primitive@npm:^1.2.1": - version: 1.2.1 - resolution: "es-to-primitive@npm:1.2.1" - dependencies: - is-callable: "npm:^1.1.4" - is-date-object: "npm:^1.0.1" - is-symbol: "npm:^1.0.2" - checksum: 10/74aeeefe2714cf99bb40cab7ce3012d74e1e2c1bd60d0a913b467b269edde6e176ca644b5ba03a5b865fb044a29bca05671cd445c85ca2cdc2de155d7fc8fe9b - languageName: node - linkType: hard - "es6-promise@npm:^4.0.3": version: 4.2.8 resolution: "es6-promise@npm:4.2.8" @@ -5652,6 +5592,17 @@ __metadata: languageName: node linkType: hard +"eslint-compat-utils@npm:^0.5.1": + version: 0.5.1 + resolution: "eslint-compat-utils@npm:0.5.1" + dependencies: + semver: "npm:^7.5.4" + peerDependencies: + eslint: ">=6.0.0" + checksum: 10/ac65ac1c6107cf19f63f5fc17cea361c9cb1336be7356f23dbb0fac10979974b4622e13e950be43cbf431801f2c07f7dab448573181ccf6edc0b86d5b5304511 + languageName: node + linkType: hard + "eslint-config-prettier@npm:^8.8.0": version: 8.8.0 resolution: "eslint-config-prettier@npm:8.8.0" @@ -5679,7 +5630,7 @@ __metadata: languageName: node linkType: hard -"eslint-import-resolver-node@npm:^0.3.6": +"eslint-import-resolver-node@npm:^0.3.9": version: 0.3.9 resolution: "eslint-import-resolver-node@npm:0.3.9" dependencies: @@ -5690,60 +5641,46 @@ __metadata: languageName: node linkType: hard -"eslint-module-utils@npm:^2.7.3": - version: 2.11.1 - resolution: "eslint-module-utils@npm:2.11.1" - dependencies: - debug: "npm:^3.2.7" - peerDependenciesMeta: - eslint: - optional: true - checksum: 10/88285f758cc2d4a07410a5b765cc2858319075e12bedb65ae26459f1bc5a18c2b154f9026d4acb5049896c3815adb29087fd07b2b04d26beb59182bd6028b121 - languageName: node - linkType: hard - -"eslint-plugin-es@npm:^4.1.0": - version: 4.1.0 - resolution: "eslint-plugin-es@npm:4.1.0" +"eslint-plugin-es-x@npm:^7.5.0": + version: 7.8.0 + resolution: "eslint-plugin-es-x@npm:7.8.0" dependencies: - eslint-utils: "npm:^2.0.0" - regexpp: "npm:^3.0.0" + "@eslint-community/eslint-utils": "npm:^4.1.2" + "@eslint-community/regexpp": "npm:^4.11.0" + eslint-compat-utils: "npm:^0.5.1" peerDependencies: - eslint: ">=4.19.1" - checksum: 10/431c7a6296f6f44d94acfb65c8d00fdd2c1c187d8aa97e1eab1d6780e9ed6cf6b62007fd403509ed5ec788a75cf41c8f1e3174cc16f5cc08b9ea266dc92de68e + eslint: ">=8" + checksum: 10/1df8d52c4fadc06854ce801af05b05f2642aa2deb918fb7d37738596eabd70b7f21a22b150b78ec9104bac6a1b6b4fb796adea2364ede91b01d20964849ce5f7 languageName: node linkType: hard -"eslint-plugin-import@npm:~2.26.0": - version: 2.26.0 - resolution: "eslint-plugin-import@npm:2.26.0" +"eslint-plugin-import-x@npm:^0.5.3": + version: 0.5.3 + resolution: "eslint-plugin-import-x@npm:0.5.3" dependencies: - array-includes: "npm:^3.1.4" - array.prototype.flat: "npm:^1.2.5" - debug: "npm:^2.6.9" - doctrine: "npm:^2.1.0" - eslint-import-resolver-node: "npm:^0.3.6" - eslint-module-utils: "npm:^2.7.3" - has: "npm:^1.0.3" - is-core-module: "npm:^2.8.1" + "@typescript-eslint/utils": "npm:^7.4.0" + debug: "npm:^4.3.4" + doctrine: "npm:^3.0.0" + eslint-import-resolver-node: "npm:^0.3.9" + get-tsconfig: "npm:^4.7.3" is-glob: "npm:^4.0.3" - minimatch: "npm:^3.1.2" - object.values: "npm:^1.1.5" - resolve: "npm:^1.22.0" - tsconfig-paths: "npm:^3.14.1" + minimatch: "npm:^9.0.3" + semver: "npm:^7.6.0" + stable-hash: "npm:^0.0.4" + tslib: "npm:^2.6.2" peerDependencies: - eslint: ^2 || ^3 || ^4 || ^5 || ^6 || ^7.2.0 || ^8 - checksum: 10/80322d0414c6d6b6f8ddb77a87ede733d7af8536461cbc977e0da9a9e7bd976aa588488a5f310383b914111f496c0a259d2752f402e5880b16ecc48aca89b29e + eslint: ^8.56.0 || ^9.0.0-0 + checksum: 10/def1b5de6844f34bf718ec452631a3cb89697f0001a436e1e27818f39c1bad6268fa967d3c5cf1d0a0d8449fdf480f5135c0b0c4cbf41365dcdf718b904a1a86 languageName: node linkType: hard -"eslint-plugin-jest@npm:^27.2.2": - version: 27.2.2 - resolution: "eslint-plugin-jest@npm:27.2.2" +"eslint-plugin-jest@npm:^27.9.0": + version: 27.9.0 + resolution: "eslint-plugin-jest@npm:27.9.0" dependencies: "@typescript-eslint/utils": "npm:^5.10.0" peerDependencies: - "@typescript-eslint/eslint-plugin": ^5.0.0 + "@typescript-eslint/eslint-plugin": ^5.0.0 || ^6.0.0 || ^7.0.0 eslint: ^7.0.0 || ^8.0.0 jest: "*" peerDependenciesMeta: @@ -5751,42 +5688,47 @@ __metadata: optional: true jest: optional: true - checksum: 10/4d4f326ad1f301bf1ff6a906945217ee0c13ca81f6a1eb8420fcd8c53e16c24da6976a334d655c27b391247baf53f25b4c1d37577407523dd566937a5b7ecee5 + checksum: 10/bca54347280c06c56516faea76042134dd74355c2de6c23361ba0e8736ecc01c62b144eea7eda7570ea4f4ee511c583bb8dab00d7153a1bd1740eb77b0038fd4 languageName: node linkType: hard -"eslint-plugin-jsdoc@npm:^39.9.1": - version: 39.9.1 - resolution: "eslint-plugin-jsdoc@npm:39.9.1" +"eslint-plugin-jsdoc@npm:^47.0.2": + version: 47.0.2 + resolution: "eslint-plugin-jsdoc@npm:47.0.2" dependencies: - "@es-joy/jsdoccomment": "npm:~0.36.1" - comment-parser: "npm:1.3.1" + "@es-joy/jsdoccomment": "npm:~0.41.0" + are-docs-informative: "npm:^0.0.2" + comment-parser: "npm:1.4.1" debug: "npm:^4.3.4" escape-string-regexp: "npm:^4.0.0" - esquery: "npm:^1.4.0" - semver: "npm:^7.3.8" - spdx-expression-parse: "npm:^3.0.1" + esquery: "npm:^1.5.0" + is-builtin-module: "npm:^3.2.1" + semver: "npm:^7.5.4" + spdx-expression-parse: "npm:^4.0.0" peerDependencies: - eslint: ^7.0.0 || ^8.0.0 - checksum: 10/8c2bebd301847cd1b74bc0b62269ef25d8d15ea178bfcb7cee959633b5e6fc8d92d9228b502eb4d29c2db6742412f635e8b918a3660c3cd0ad90a66d6eb98936 + eslint: ^7.0.0 || ^8.0.0 || ^9.0.0 + checksum: 10/6adc8c1394a9ab3ba18e6312c753b85fca95aa36cec18460f321e51efbf8d3d536864513ad8b811349d1e49c54207e18c03546f762365ec907fdb16e0b214e97 languageName: node linkType: hard -"eslint-plugin-n@npm:^15.7.0": - version: 15.7.0 - resolution: "eslint-plugin-n@npm:15.7.0" +"eslint-plugin-n@npm:^16.6.2": + version: 16.6.2 + resolution: "eslint-plugin-n@npm:16.6.2" dependencies: + "@eslint-community/eslint-utils": "npm:^4.4.0" builtins: "npm:^5.0.1" - eslint-plugin-es: "npm:^4.1.0" - eslint-utils: "npm:^3.0.0" - ignore: "npm:^5.1.1" - is-core-module: "npm:^2.11.0" + eslint-plugin-es-x: "npm:^7.5.0" + get-tsconfig: "npm:^4.7.0" + globals: "npm:^13.24.0" + ignore: "npm:^5.2.4" + is-builtin-module: "npm:^3.2.1" + is-core-module: "npm:^2.12.1" minimatch: "npm:^3.1.2" - resolve: "npm:^1.22.1" - semver: "npm:^7.3.8" + resolve: "npm:^1.22.2" + semver: "npm:^7.5.3" peerDependencies: eslint: ">=7.0.0" - checksum: 10/c759f90ca802a6323b5ddab30ec83004bdd1cd620e2a2ff09078f3f5a732b0784e3e12b7cb3374d8464dcc178c7c8cc457c775d81e18c9b4543b5fe4c5995dd0 + checksum: 10/e0f600d03d3a3df57e9a811648b1b534a6d67c90ea9406340ddf3763c2b87cf5ef910b390f787ca5cb27c8d8ff36aad42d70209b54e2a1cb4cc2507ca417229a languageName: node linkType: hard @@ -5805,12 +5747,12 @@ __metadata: languageName: node linkType: hard -"eslint-plugin-promise@npm:^6.1.1": - version: 6.1.1 - resolution: "eslint-plugin-promise@npm:6.1.1" +"eslint-plugin-promise@npm:^6.6.0": + version: 6.6.0 + resolution: "eslint-plugin-promise@npm:6.6.0" peerDependencies: - eslint: ^7.0.0 || ^8.0.0 - checksum: 10/216c4348f796c5e90984224532d42a8f8d0455b8cbb1955bcb328b3aa10a52e9718f6fb044b6fe19825eda3a2d62a32b1042d9cbb10731353cf61b7a6cab2d71 + eslint: ^7.0.0 || ^8.0.0 || ^9.0.0 + checksum: 10/c2b5604efd7e1390c132fcbf06cb2f072c956ffa65c14a991cb74ba1e2327357797239cb5b9b292d5e4010301bb897bd85a6273d7873fb157edc46aa2d95cbd9 languageName: node linkType: hard @@ -5831,22 +5773,13 @@ __metadata: languageName: node linkType: hard -"eslint-scope@npm:^7.2.0": - version: 7.2.0 - resolution: "eslint-scope@npm:7.2.0" +"eslint-scope@npm:^7.2.2": + version: 7.2.2 + resolution: "eslint-scope@npm:7.2.2" dependencies: esrecurse: "npm:^4.3.0" estraverse: "npm:^5.2.0" - checksum: 10/94d8942840b35bf5e6559bd0f0a8b10610d65b1e44e41295e66ed1fe82f83bc51756e7af607d611b75f435adf821122bd901aa565701596ca1a628db41c0cd87 - languageName: node - linkType: hard - -"eslint-utils@npm:^2.0.0": - version: 2.1.0 - resolution: "eslint-utils@npm:2.1.0" - dependencies: - eslint-visitor-keys: "npm:^1.1.0" - checksum: 10/a7e43a5154a16a90c021cabeb160c3668cccbcf6474ccb2a7d7762698582398f3b938c5330909b858ef7c21182edfc9786dbf89ed7b294f51b7659a378bf7cec + checksum: 10/5c660fb905d5883ad018a6fea2b49f3cb5b1cbf2cd4bd08e98646e9864f9bc2c74c0839bed2d292e90a4a328833accc197c8f0baed89cbe8d605d6f918465491 languageName: node linkType: hard @@ -5861,13 +5794,6 @@ __metadata: languageName: node linkType: hard -"eslint-visitor-keys@npm:^1.1.0": - version: 1.3.0 - resolution: "eslint-visitor-keys@npm:1.3.0" - checksum: 10/595ab230e0fcb52f86ba0986a9a473b9fcae120f3729b43f1157f88f27f8addb1e545c4e3d444185f2980e281ca15be5ada6f65b4599eec227cf30e41233b762 - languageName: node - linkType: hard - "eslint-visitor-keys@npm:^2.0.0": version: 2.0.0 resolution: "eslint-visitor-keys@npm:2.0.0" @@ -5875,33 +5801,34 @@ __metadata: languageName: node linkType: hard -"eslint-visitor-keys@npm:^3.3.0, eslint-visitor-keys@npm:^3.4.1": - version: 3.4.1 - resolution: "eslint-visitor-keys@npm:3.4.1" - checksum: 10/92641e7ccde470065aa2931161a6a053690a54aae35ae08f38e376ecfd7c012573c542b37a3baecf921eb951fd57943411392f464c2b8f3399adee4723a1369f +"eslint-visitor-keys@npm:^3.3.0, eslint-visitor-keys@npm:^3.4.1, eslint-visitor-keys@npm:^3.4.3": + version: 3.4.3 + resolution: "eslint-visitor-keys@npm:3.4.3" + checksum: 10/3f357c554a9ea794b094a09bd4187e5eacd1bc0d0653c3adeb87962c548e6a1ab8f982b86963ae1337f5d976004146536dcee5d0e2806665b193fbfbf1a9231b languageName: node linkType: hard -"eslint@npm:^8.44.0": - version: 8.44.0 - resolution: "eslint@npm:8.44.0" +"eslint@npm:^8.55.0": + version: 8.57.1 + resolution: "eslint@npm:8.57.1" dependencies: "@eslint-community/eslint-utils": "npm:^4.2.0" - "@eslint-community/regexpp": "npm:^4.4.0" - "@eslint/eslintrc": "npm:^2.1.0" - "@eslint/js": "npm:8.44.0" - "@humanwhocodes/config-array": "npm:^0.11.10" + "@eslint-community/regexpp": "npm:^4.6.1" + "@eslint/eslintrc": "npm:^2.1.4" + "@eslint/js": "npm:8.57.1" + "@humanwhocodes/config-array": "npm:^0.13.0" "@humanwhocodes/module-importer": "npm:^1.0.1" "@nodelib/fs.walk": "npm:^1.2.8" - ajv: "npm:^6.10.0" + "@ungap/structured-clone": "npm:^1.2.0" + ajv: "npm:^6.12.4" chalk: "npm:^4.0.0" cross-spawn: "npm:^7.0.2" debug: "npm:^4.3.2" doctrine: "npm:^3.0.0" escape-string-regexp: "npm:^4.0.0" - eslint-scope: "npm:^7.2.0" - eslint-visitor-keys: "npm:^3.4.1" - espree: "npm:^9.6.0" + eslint-scope: "npm:^7.2.2" + eslint-visitor-keys: "npm:^3.4.3" + espree: "npm:^9.6.1" esquery: "npm:^1.4.2" esutils: "npm:^2.0.2" fast-deep-equal: "npm:^3.1.3" @@ -5911,7 +5838,6 @@ __metadata: globals: "npm:^13.19.0" graphemer: "npm:^1.4.0" ignore: "npm:^5.2.0" - import-fresh: "npm:^3.0.0" imurmurhash: "npm:^0.1.4" is-glob: "npm:^4.0.0" is-path-inside: "npm:^3.0.3" @@ -5923,22 +5849,21 @@ __metadata: natural-compare: "npm:^1.4.0" optionator: "npm:^0.9.3" strip-ansi: "npm:^6.0.1" - strip-json-comments: "npm:^3.1.0" text-table: "npm:^0.2.0" bin: eslint: bin/eslint.js - checksum: 10/3dc7d7ca06aeff93e3b4e9ef4b1d700a6704d10541d41396a9cadebee43fb708fdfb8a2fef8dab89922ef26a9beffd97dcc97d3a6e1167fbc166bf9b48a36aef + checksum: 10/5504fa24879afdd9f9929b2fbfc2ee9b9441a3d464efd9790fbda5f05738858530182029f13323add68d19fec749d3ab4a70320ded091ca4432b1e9cc4ed104c languageName: node linkType: hard -"espree@npm:^9.6.0": - version: 9.6.0 - resolution: "espree@npm:9.6.0" +"espree@npm:^9.6.0, espree@npm:^9.6.1": + version: 9.6.1 + resolution: "espree@npm:9.6.1" dependencies: acorn: "npm:^8.9.0" acorn-jsx: "npm:^5.3.2" eslint-visitor-keys: "npm:^3.4.1" - checksum: 10/870834c0ab188213ba56fae7003ff9fadbad2b9285dae941840c3d425cedbb2221ad3cffaabd217bc36b96eb80d651c2a2d9b0b1f3b9394b2358b27052c942e2 + checksum: 10/255ab260f0d711a54096bdeda93adff0eadf02a6f9b92f02b323e83a2b7fc258797919437ad331efec3930475feb0142c5ecaaf3cdab4befebd336d47d3f3134 languageName: node linkType: hard @@ -5952,12 +5877,12 @@ __metadata: languageName: node linkType: hard -"esquery@npm:^1.4.0, esquery@npm:^1.4.2": - version: 1.5.0 - resolution: "esquery@npm:1.5.0" +"esquery@npm:^1.4.2, esquery@npm:^1.5.0": + version: 1.6.0 + resolution: "esquery@npm:1.6.0" dependencies: estraverse: "npm:^5.1.0" - checksum: 10/e65fcdfc1e0ff5effbf50fb4f31ea20143ae5df92bb2e4953653d8d40aa4bc148e0d06117a592ce4ea53eeab1dafdfded7ea7e22a5be87e82d73757329a1b01d + checksum: 10/c587fb8ec9ed83f2b1bc97cf2f6854cc30bf784a79d62ba08c6e358bf22280d69aee12827521cf38e69ae9761d23fb7fde593ce315610f85655c139d99b05e5a languageName: node linkType: hard @@ -6376,7 +6301,7 @@ __metadata: languageName: node linkType: hard -"fast-glob@npm:^3.0.3, fast-glob@npm:^3.2.9, fast-glob@npm:^3.3.2": +"fast-glob@npm:^3.2.9, fast-glob@npm:^3.3.0, fast-glob@npm:^3.3.2": version: 3.3.2 resolution: "fast-glob@npm:3.3.2" dependencies: @@ -6627,25 +6552,6 @@ __metadata: languageName: node linkType: hard -"function.prototype.name@npm:^1.1.6": - version: 1.1.6 - resolution: "function.prototype.name@npm:1.1.6" - dependencies: - call-bind: "npm:^1.0.2" - define-properties: "npm:^1.2.0" - es-abstract: "npm:^1.22.1" - functions-have-names: "npm:^1.2.3" - checksum: 10/4d40be44d4609942e4e90c4fff77a811fa936f4985d92d2abfcf44f673ba344e2962bf223a33101f79c1a056465f36f09b072b9c289d7660ca554a12491cd5a2 - languageName: node - linkType: hard - -"functions-have-names@npm:^1.2.3": - version: 1.2.3 - resolution: "functions-have-names@npm:1.2.3" - checksum: 10/0ddfd3ed1066a55984aaecebf5419fbd9344a5c38dd120ffb0739fac4496758dcf371297440528b115e4367fc46e3abc86a2cc0ff44612181b175ae967a11a05 - languageName: node - linkType: hard - "gauge@npm:^4.0.3": version: 4.0.4 resolution: "gauge@npm:4.0.4" @@ -6683,7 +6589,7 @@ __metadata: languageName: node linkType: hard -"get-intrinsic@npm:^1.0.2, get-intrinsic@npm:^1.1.3, get-intrinsic@npm:^1.2.1, get-intrinsic@npm:^1.2.3, get-intrinsic@npm:^1.2.4": +"get-intrinsic@npm:^1.1.3, get-intrinsic@npm:^1.2.4": version: 1.2.4 resolution: "get-intrinsic@npm:1.2.4" dependencies: @@ -6710,6 +6616,13 @@ __metadata: languageName: node linkType: hard +"get-stdin@npm:^9.0.0": + version: 9.0.0 + resolution: "get-stdin@npm:9.0.0" + checksum: 10/5972bc34d05932b45512c8e2d67b040f1c1ca8afb95c56cbc480985f2d761b7e37fe90dc8abd22527f062cc5639a6930ff346e9952ae4c11a2d4275869459594 + languageName: node + linkType: hard + "get-stream@npm:^6.0.0": version: 6.0.1 resolution: "get-stream@npm:6.0.1" @@ -6724,21 +6637,19 @@ __metadata: languageName: node linkType: hard -"get-symbol-description@npm:^1.0.2": - version: 1.0.2 - resolution: "get-symbol-description@npm:1.0.2" +"get-tsconfig@npm:^4.7.0, get-tsconfig@npm:^4.7.3": + version: 4.8.1 + resolution: "get-tsconfig@npm:4.8.1" dependencies: - call-bind: "npm:^1.0.5" - es-errors: "npm:^1.3.0" - get-intrinsic: "npm:^1.2.4" - checksum: 10/e1cb53bc211f9dbe9691a4f97a46837a553c4e7caadd0488dc24ac694db8a390b93edd412b48dcdd0b4bbb4c595de1709effc75fc87c0839deedc6968f5bd973 + resolve-pkg-maps: "npm:^1.0.0" + checksum: 10/3fb5a8ad57b9633eaea085d81661e9e5c9f78b35d8f8689eaf8b8b45a2a3ebf3b3422266d4d7df765e308cc1e6231648d114803ab3d018332e29916f2c1de036 languageName: node linkType: hard -"git-hooks-list@npm:1.0.3": - version: 1.0.3 - resolution: "git-hooks-list@npm:1.0.3" - checksum: 10/a1dd03d39c1d727ba08a35dbdbdcc6e96de8c4170c942dc95bf787ca6e34998d39fb5295a00242b58a3d265de0b69a0686d0cf583baa6b7830f268542c4576b9 +"git-hooks-list@npm:^3.0.0": + version: 3.1.0 + resolution: "git-hooks-list@npm:3.1.0" + checksum: 10/05cbdb29e1e14f3b6fde78c876a34383e4476b1be32e8486ad03293f01add884c1a8df8c2dce2ca5d99119c94951b2ff9fa9cbd51d834ae6477b6813cefb998f languageName: node linkType: hard @@ -6834,37 +6745,12 @@ __metadata: languageName: node linkType: hard -"globals@npm:^13.19.0": - version: 13.20.0 - resolution: "globals@npm:13.20.0" +"globals@npm:^13.19.0, globals@npm:^13.24.0": + version: 13.24.0 + resolution: "globals@npm:13.24.0" dependencies: type-fest: "npm:^0.20.2" - checksum: 10/9df85cde2f0dce6ac9b3a5e08bec109d2f3b38ddd055a83867e0672c55704866d53ce6a4265859fa630624baadd46f50ca38602a13607ad86be853a8c179d3e7 - languageName: node - linkType: hard - -"globalthis@npm:^1.0.3": - version: 1.0.3 - resolution: "globalthis@npm:1.0.3" - dependencies: - define-properties: "npm:^1.1.3" - checksum: 10/45ae2f3b40a186600d0368f2a880ae257e8278b4c7704f0417d6024105ad7f7a393661c5c2fa1334669cd485ea44bc883a08fdd4516df2428aec40c99f52aa89 - languageName: node - linkType: hard - -"globby@npm:10.0.0": - version: 10.0.0 - resolution: "globby@npm:10.0.0" - dependencies: - "@types/glob": "npm:^7.1.1" - array-union: "npm:^2.1.0" - dir-glob: "npm:^3.0.1" - fast-glob: "npm:^3.0.3" - glob: "npm:^7.1.3" - ignore: "npm:^5.1.1" - merge2: "npm:^1.2.3" - slash: "npm:^3.0.0" - checksum: 10/d0c94128706b5e12a251ddbd1b87cf0e67e57e373c816f242bb7a4a2fbe931602db1a330780d511a5bce675c25fac297622ac01d540c8479cca9c8177528947a + checksum: 10/62c5b1997d06674fc7191d3e01e324d3eda4d65ac9cc4e78329fa3b5c4fd42a0e1c8722822497a6964eee075255ce21ccf1eec2d83f92ef3f06653af4d0ee28e languageName: node linkType: hard @@ -6896,6 +6782,19 @@ __metadata: languageName: node linkType: hard +"globby@npm:^13.1.2": + version: 13.2.2 + resolution: "globby@npm:13.2.2" + dependencies: + dir-glob: "npm:^3.0.1" + fast-glob: "npm:^3.3.0" + ignore: "npm:^5.2.4" + merge2: "npm:^1.4.1" + slash: "npm:^4.0.0" + checksum: 10/4494a9d2162a7e4d327988b26be66d8eab87d7f59a83219e74b065e2c3ced23698f68fb10482bf9337133819281803fb886d6ae06afbb2affa743623eb0b1949 + languageName: node + linkType: hard + "gopd@npm:^1.0.1": version: 1.0.1 resolution: "gopd@npm:1.0.1" @@ -6926,13 +6825,6 @@ __metadata: languageName: node linkType: hard -"has-bigints@npm:^1.0.2": - version: 1.0.2 - resolution: "has-bigints@npm:1.0.2" - checksum: 10/4e0426c900af034d12db14abfece02ce7dbf53f2022d28af1a97913ff4c07adb8799476d57dc44fbca0e07d1dbda2a042c2928b1f33d3f09c15de0640a7fb81b - languageName: node - linkType: hard - "has-flag@npm:^3.0.0": version: 3.0.0 resolution: "has-flag@npm:3.0.0" @@ -6956,14 +6848,14 @@ __metadata: languageName: node linkType: hard -"has-proto@npm:^1.0.1, has-proto@npm:^1.0.3": +"has-proto@npm:^1.0.1": version: 1.0.3 resolution: "has-proto@npm:1.0.3" checksum: 10/0b67c2c94e3bea37db3e412e3c41f79d59259875e636ba471e94c009cdfb1fa82bf045deeffafc7dbb9c148e36cae6b467055aaa5d9fad4316e11b41e3ba551a languageName: node linkType: hard -"has-symbols@npm:^1.0.1, has-symbols@npm:^1.0.3": +"has-symbols@npm:^1.0.3": version: 1.0.3 resolution: "has-symbols@npm:1.0.3" checksum: 10/464f97a8202a7690dadd026e6d73b1ceeddd60fe6acfd06151106f050303eaa75855aaa94969df8015c11ff7c505f196114d22f7386b4a471038da5874cf5e9b @@ -6986,13 +6878,6 @@ __metadata: languageName: node linkType: hard -"has@npm:^1.0.3": - version: 1.0.4 - resolution: "has@npm:1.0.4" - checksum: 10/c245f332fe78c7b6b8753857240ac12b3286f995f656a33c77e0f5baab7d0157e6ddb1c34940ffd2bffc51f75ede50cd8b29ff65c13e336376aca8cf3df58043 - languageName: node - linkType: hard - "hash-base@npm:^3.0.0": version: 3.1.0 resolution: "hash-base@npm:3.1.0" @@ -7014,7 +6899,7 @@ __metadata: languageName: node linkType: hard -"hasown@npm:^2.0.0, hasown@npm:^2.0.1, hasown@npm:^2.0.2": +"hasown@npm:^2.0.0, hasown@npm:^2.0.2": version: 2.0.2 resolution: "hasown@npm:2.0.2" dependencies: @@ -7192,7 +7077,7 @@ __metadata: languageName: node linkType: hard -"ignore@npm:^5.1.1, ignore@npm:^5.2.0, ignore@npm:^5.2.4": +"ignore@npm:^5.2.0, ignore@npm:^5.2.4, ignore@npm:^5.3.1": version: 5.3.2 resolution: "ignore@npm:5.3.2" checksum: 10/cceb6a457000f8f6a50e1196429750d782afce5680dd878aa4221bd79972d68b3a55b4b1458fc682be978f4d3c6a249046aa0880637367216444ab7b014cfc98 @@ -7206,7 +7091,7 @@ __metadata: languageName: node linkType: hard -"import-fresh@npm:^3.0.0, import-fresh@npm:^3.2.1, import-fresh@npm:^3.3.0": +"import-fresh@npm:^3.2.1, import-fresh@npm:^3.3.0": version: 3.3.0 resolution: "import-fresh@npm:3.3.0" dependencies: @@ -7287,17 +7172,6 @@ __metadata: languageName: node linkType: hard -"internal-slot@npm:^1.0.7": - version: 1.0.7 - resolution: "internal-slot@npm:1.0.7" - dependencies: - es-errors: "npm:^1.3.0" - hasown: "npm:^2.0.0" - side-channel: "npm:^1.0.4" - checksum: 10/3e66720508831153ecf37d13def9f6856f9f2960989ec8a0a0476c98f887fca9eff0163127466485cb825c900c2d6fc601aa9117b7783b90ffce23a71ea5d053 - languageName: node - linkType: hard - "invariant@npm:2": version: 2.2.4 resolution: "invariant@npm:2.2.4" @@ -7334,16 +7208,6 @@ __metadata: languageName: node linkType: hard -"is-array-buffer@npm:^3.0.4": - version: 3.0.4 - resolution: "is-array-buffer@npm:3.0.4" - dependencies: - call-bind: "npm:^1.0.2" - get-intrinsic: "npm:^1.2.1" - checksum: 10/34a26213d981d58b30724ef37a1e0682f4040d580fa9ff58fdfdd3cefcb2287921718c63971c1c404951e7b747c50fdc7caf6e867e951353fa71b369c04c969b - languageName: node - linkType: hard - "is-arrayish@npm:^0.2.1": version: 0.2.1 resolution: "is-arrayish@npm:0.2.1" @@ -7351,23 +7215,16 @@ __metadata: languageName: node linkType: hard -"is-bigint@npm:^1.0.1": - version: 1.0.1 - resolution: "is-bigint@npm:1.0.1" - checksum: 10/04aa6fde59d2b7929df865acb89c8d7f89f919cc149b8be11e3560b1aab8667e5d939cc8954097c496f7dda80fd5bb67f829ca80ab66cc68918e41e2c1b9c5d7 - languageName: node - linkType: hard - -"is-boolean-object@npm:^1.1.0": - version: 1.1.0 - resolution: "is-boolean-object@npm:1.1.0" +"is-builtin-module@npm:^3.2.1": + version: 3.2.1 + resolution: "is-builtin-module@npm:3.2.1" dependencies: - call-bind: "npm:^1.0.0" - checksum: 10/d6d5113d7c40d111e6611efe3a76e999d6ea7c4bf2f33c41e30383ef005d6992b1d892ff4fb234db2debbbf4b9ba63f72326abdabfd925f80b8d53f5dd68de67 + builtin-modules: "npm:^3.3.0" + checksum: 10/e8f0ffc19a98240bda9c7ada84d846486365af88d14616e737d280d378695c8c448a621dcafc8332dbf0fcd0a17b0763b845400709963fa9151ddffece90ae88 languageName: node linkType: hard -"is-callable@npm:^1.1.3, is-callable@npm:^1.1.4, is-callable@npm:^1.2.7": +"is-callable@npm:^1.1.3": version: 1.2.7 resolution: "is-callable@npm:1.2.7" checksum: 10/48a9297fb92c99e9df48706241a189da362bff3003354aea4048bd5f7b2eb0d823cd16d0a383cece3d76166ba16d85d9659165ac6fcce1ac12e6c649d66dbdb9 @@ -7385,7 +7242,7 @@ __metadata: languageName: node linkType: hard -"is-core-module@npm:^2.11.0, is-core-module@npm:^2.12.0, is-core-module@npm:^2.13.0, is-core-module@npm:^2.5.0, is-core-module@npm:^2.8.1": +"is-core-module@npm:^2.12.0, is-core-module@npm:^2.12.1, is-core-module@npm:^2.13.0, is-core-module@npm:^2.5.0": version: 2.15.1 resolution: "is-core-module@npm:2.15.1" dependencies: @@ -7394,22 +7251,6 @@ __metadata: languageName: node linkType: hard -"is-data-view@npm:^1.0.1": - version: 1.0.1 - resolution: "is-data-view@npm:1.0.1" - dependencies: - is-typed-array: "npm:^1.1.13" - checksum: 10/4ba4562ac2b2ec005fefe48269d6bd0152785458cd253c746154ffb8a8ab506a29d0cfb3b74af87513843776a88e4981ae25c89457bf640a33748eab1a7216b5 - languageName: node - linkType: hard - -"is-date-object@npm:^1.0.1": - version: 1.0.2 - resolution: "is-date-object@npm:1.0.2" - checksum: 10/96c56c04631f866b3a3aea4b889eac6120c13d8a06dc7e105479ffd6f57e5ea3668f1d779ef30063d4b27aa8e9b235ea7d15bbdab54b056affc678c4769ff143 - languageName: node - linkType: hard - "is-extglob@npm:^2.1.1": version: 2.1.1 resolution: "is-extglob@npm:2.1.1" @@ -7480,20 +7321,6 @@ __metadata: languageName: node linkType: hard -"is-negative-zero@npm:^2.0.3": - version: 2.0.3 - resolution: "is-negative-zero@npm:2.0.3" - checksum: 10/8fe5cffd8d4fb2ec7b49d657e1691889778d037494c6f40f4d1a524cadd658b4b53ad7b6b73a59bcb4b143ae9a3d15829af864b2c0f9d65ac1e678c4c80f17e5 - languageName: node - linkType: hard - -"is-number-object@npm:^1.0.4": - version: 1.0.4 - resolution: "is-number-object@npm:1.0.4" - checksum: 10/02939c84b28d2e4ec0ee2cb5fc8ac53ee3c4d67d801c280aa051c2392afd677fe47c84efd5d13ccd5e00f103041e58743b9fa535fe905a6f49b48315ae1ddcf8 - languageName: node - linkType: hard - "is-number@npm:^7.0.0": version: 7.0.0 resolution: "is-number@npm:7.0.0" @@ -7508,13 +7335,6 @@ __metadata: languageName: node linkType: hard -"is-plain-obj@npm:2.1.0": - version: 2.1.0 - resolution: "is-plain-obj@npm:2.1.0" - checksum: 10/cec9100678b0a9fe0248a81743041ed990c2d4c99f893d935545cfbc42876cbe86d207f3b895700c690ad2fa520e568c44afc1605044b535a7820c1d40e38daa - languageName: node - linkType: hard - "is-plain-obj@npm:^1.1.0": version: 1.1.0 resolution: "is-plain-obj@npm:1.1.0" @@ -7522,6 +7342,13 @@ __metadata: languageName: node linkType: hard +"is-plain-obj@npm:^4.1.0": + version: 4.1.0 + resolution: "is-plain-obj@npm:4.1.0" + checksum: 10/6dc45da70d04a81f35c9310971e78a6a3c7a63547ef782e3a07ee3674695081b6ca4e977fbb8efc48dae3375e0b34558d2bcd722aec9bddfa2d7db5b041be8ce + 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" @@ -7529,25 +7356,6 @@ __metadata: languageName: node linkType: hard -"is-regex@npm:^1.1.4": - version: 1.1.4 - resolution: "is-regex@npm:1.1.4" - dependencies: - call-bind: "npm:^1.0.2" - has-tostringtag: "npm:^1.0.0" - checksum: 10/36d9174d16d520b489a5e9001d7d8d8624103b387be300c50f860d9414556d0485d74a612fdafc6ebbd5c89213d947dcc6b6bff6b2312093f71ea03cbb19e564 - languageName: node - linkType: hard - -"is-shared-array-buffer@npm:^1.0.2, is-shared-array-buffer@npm:^1.0.3": - version: 1.0.3 - resolution: "is-shared-array-buffer@npm:1.0.3" - dependencies: - call-bind: "npm:^1.0.7" - checksum: 10/bc5402900dc62b96ebb2548bf5b0a0bcfacc2db122236fe3ab3b3e3c884293a0d5eb777e73f059bcbf8dc8563bb65eae972fee0fb97e38a9ae27c8678f62bcfe - languageName: node - linkType: hard - "is-stream@npm:^2.0.0": version: 2.0.0 resolution: "is-stream@npm:2.0.0" @@ -7562,25 +7370,7 @@ __metadata: languageName: node linkType: hard -"is-string@npm:^1.0.5, is-string@npm:^1.0.7": - version: 1.0.7 - resolution: "is-string@npm:1.0.7" - dependencies: - has-tostringtag: "npm:^1.0.0" - checksum: 10/2bc292fe927493fb6dfc3338c099c3efdc41f635727c6ebccf704aeb2a27bca7acb9ce6fd34d103db78692b10b22111a8891de26e12bfa1c5e11e263c99d1fef - languageName: node - linkType: hard - -"is-symbol@npm:^1.0.2, is-symbol@npm:^1.0.3": - version: 1.0.3 - resolution: "is-symbol@npm:1.0.3" - dependencies: - has-symbols: "npm:^1.0.1" - checksum: 10/4854604be4abb5f9d885d4bbc9f9318b7dbda9402fbe172c09861bb8910d97e70fac6dabbf1023a7ec56986f457c92abb08f1c99decce83c06c944130a0b1cd1 - languageName: node - linkType: hard - -"is-typed-array@npm:^1.1.13, is-typed-array@npm:^1.1.3": +"is-typed-array@npm:^1.1.3": version: 1.1.13 resolution: "is-typed-array@npm:1.1.13" dependencies: @@ -7610,15 +7400,6 @@ __metadata: languageName: node linkType: hard -"is-weakref@npm:^1.0.2": - version: 1.0.2 - resolution: "is-weakref@npm:1.0.2" - dependencies: - call-bind: "npm:^1.0.2" - checksum: 10/0023fd0e4bdf9c338438ffbe1eed7ebbbff7e7e18fb7cdc227caaf9d4bd024a2dcdf6a8c9f40c92192022eac8391243bb9e66cccebecbf6fe1d8a366108f8513 - languageName: node - linkType: hard - "is-windows@npm:^1.0.1": version: 1.0.2 resolution: "is-windows@npm:1.0.2" @@ -8318,10 +8099,10 @@ __metadata: languageName: node linkType: hard -"jsdoc-type-pratt-parser@npm:~3.1.0": - version: 3.1.0 - resolution: "jsdoc-type-pratt-parser@npm:3.1.0" - checksum: 10/973e86fdbc4af15fa5057c62b1ba314db08e2daf8205fd1b7ae2860598b3acbd937bbba01737c0d473f4354f4c1ea85e231f468569ff25bed5d82125642eb38e +"jsdoc-type-pratt-parser@npm:~4.0.0": + version: 4.0.0 + resolution: "jsdoc-type-pratt-parser@npm:4.0.0" + checksum: 10/a225ab874e56612730dd6c0466ce9f09e8a0e7d85896e9e5f0fa53cfb2e897128a7ec702fd99ed3854b3fbf5a89ad6dce72ca4f4f6149da69f130c2874f06b75 languageName: node linkType: hard @@ -8427,17 +8208,6 @@ __metadata: languageName: node linkType: hard -"json5@npm:^1.0.2": - version: 1.0.2 - resolution: "json5@npm:1.0.2" - dependencies: - minimist: "npm:^1.2.0" - bin: - json5: lib/cli.js - checksum: 10/a78d812dbbd5642c4f637dd130954acfd231b074965871c3e28a5bbd571f099d623ecf9161f1960c4ddf68e0cc98dee8bebfdb94a71ad4551f85a1afc94b63f6 - languageName: node - linkType: hard - "json5@npm:^2.2.3": version: 2.2.3 resolution: "json5@npm:2.2.3" @@ -8817,7 +8587,7 @@ __metadata: languageName: node linkType: hard -"merge2@npm:^1.2.3, merge2@npm:^1.3.0, merge2@npm:^1.4.1": +"merge2@npm:^1.3.0, merge2@npm:^1.4.1": version: 1.4.1 resolution: "merge2@npm:1.4.1" checksum: 10/7268db63ed5169466540b6fb947aec313200bcf6d40c5ab722c22e242f651994619bcd85601602972d3c85bd2cc45a358a4c61937e9f11a061919a1da569b0c2 @@ -8939,13 +8709,6 @@ __metadata: languageName: node linkType: hard -"minimist@npm:^1.2.0, minimist@npm:^1.2.6": - version: 1.2.6 - resolution: "minimist@npm:1.2.6" - checksum: 10/b956a7d48669c5007f0afce100a92d3af18e77939a25b5b4f62e9ea07c2777033608327e14c2af85684d5cd504f623f2a04d30a4a43379d21dd3c6dcf12b8ab8 - languageName: node - linkType: hard - "minipass-collect@npm:^1.0.2": version: 1.0.2 resolution: "minipass-collect@npm:1.0.2" @@ -9063,13 +8826,6 @@ __metadata: languageName: node linkType: hard -"ms@npm:2.0.0": - version: 2.0.0 - resolution: "ms@npm:2.0.0" - checksum: 10/0e6a22b8b746d2e0b65a430519934fefd41b6db0682e3477c10f60c76e947c4c0ad06f63ffdf1d78d335f83edee8c0aa928aa66a36c7cd95b69b26f468d527f4 - languageName: node - linkType: hard - "ms@npm:2.1.2": version: 2.1.2 resolution: "ms@npm:2.1.2" @@ -9115,13 +8871,6 @@ __metadata: languageName: node linkType: hard -"natural-compare-lite@npm:^1.4.0": - version: 1.4.0 - resolution: "natural-compare-lite@npm:1.4.0" - checksum: 10/5222ac3986a2b78dd6069ac62cbb52a7bf8ffc90d972ab76dfe7b01892485d229530ed20d0c62e79a6b363a663b273db3bde195a1358ce9e5f779d4453887225 - languageName: node - linkType: hard - "natural-compare@npm:^1.4.0": version: 1.4.0 resolution: "natural-compare@npm:1.4.0" @@ -9396,13 +9145,6 @@ __metadata: languageName: node linkType: hard -"object-inspect@npm:^1.13.1, object-inspect@npm:^1.9.0": - version: 1.13.2 - resolution: "object-inspect@npm:1.13.2" - checksum: 10/7ef65583b6397570a17c56f0c1841e0920e83900f2c94638927abb7b81ac08a19c7aae135bd9dcca96208cac0c7332b4650fb927f027b0cf92d71df2990d0561 - languageName: node - linkType: hard - "object-is@npm:^1.1.5": version: 1.1.6 resolution: "object-is@npm:1.1.6" @@ -9420,7 +9162,7 @@ __metadata: languageName: node linkType: hard -"object.assign@npm:^4.1.4, object.assign@npm:^4.1.5": +"object.assign@npm:^4.1.4": version: 4.1.5 resolution: "object.assign@npm:4.1.5" dependencies: @@ -9432,17 +9174,6 @@ __metadata: languageName: node linkType: hard -"object.values@npm:^1.1.5": - version: 1.2.0 - resolution: "object.values@npm:1.2.0" - dependencies: - call-bind: "npm:^1.0.7" - define-properties: "npm:^1.2.1" - es-object-atoms: "npm:^1.0.0" - checksum: 10/db2e498019c354428c5dd30d02980d920ac365b155fce4dcf63eb9433f98ccf0f72624309e182ce7cc227c95e45d474e1d483418e60de2293dd23fa3ebe34903 - languageName: node - linkType: hard - "once@npm:^1.3.0, once@npm:^1.4.0": version: 1.4.0 resolution: "once@npm:1.4.0" @@ -9772,17 +9503,18 @@ __metadata: languageName: node linkType: hard -"prettier-plugin-packagejson@npm:^2.3.0": - version: 2.3.0 - resolution: "prettier-plugin-packagejson@npm:2.3.0" +"prettier-plugin-packagejson@npm:^2.5.2": + version: 2.5.2 + resolution: "prettier-plugin-packagejson@npm:2.5.2" dependencies: - sort-package-json: "npm:1.57.0" + sort-package-json: "npm:2.10.1" + synckit: "npm:0.9.1" peerDependencies: prettier: ">= 1.16.0" peerDependenciesMeta: prettier: optional: true - checksum: 10/a00434639b6a5bb5d036451d442c86d6167397d8cba3b1916548e98b16ca673738f80df67e43a8de52754c9bd6fcc953dd82ed635f7a74895eed7db3316a1eb2 + checksum: 10/f280d69327a468cd104c72a81134258d3573e56d697a88a5c4498c8d02cecda9a27d9eb3f1d29cc726491782eb3f279c9d41ecf8364a197e20b239c5ccfd0269 languageName: node linkType: hard @@ -10075,25 +9807,6 @@ __metadata: languageName: node linkType: hard -"regexp.prototype.flags@npm:^1.5.2": - version: 1.5.2 - resolution: "regexp.prototype.flags@npm:1.5.2" - dependencies: - call-bind: "npm:^1.0.6" - define-properties: "npm:^1.2.1" - es-errors: "npm:^1.3.0" - set-function-name: "npm:^2.0.1" - checksum: 10/9fffc01da9c4e12670ff95bc5204364615fcc12d86fc30642765af908675678ebb0780883c874b2dbd184505fb52fa603d80073ecf69f461ce7f56b15d10be9c - languageName: node - linkType: hard - -"regexpp@npm:^3.0.0, regexpp@npm:^3.2.0": - version: 3.2.0 - resolution: "regexpp@npm:3.2.0" - checksum: 10/3310010895a906873262f4b494fc99bcef1e71ef6720a0532c5999ca586498cbd4a284c8e3c2423f9d1d37512fd08d6064b7564e0e59508cf938f76dd15ace84 - languageName: node - linkType: hard - "require-directory@npm:^2.1.1": version: 2.1.1 resolution: "require-directory@npm:2.1.1" @@ -10148,6 +9861,13 @@ __metadata: languageName: node linkType: hard +"resolve-pkg-maps@npm:^1.0.0": + version: 1.0.0 + resolution: "resolve-pkg-maps@npm:1.0.0" + checksum: 10/0763150adf303040c304009231314d1e84c6e5ebfa2d82b7d94e96a6e82bacd1dcc0b58ae257315f3c8adb89a91d8d0f12928241cba2df1680fbe6f60bf99b0e + languageName: node + linkType: hard + "resolve.exports@npm:^2.0.0": version: 2.0.2 resolution: "resolve.exports@npm:2.0.2" @@ -10155,7 +9875,7 @@ __metadata: languageName: node linkType: hard -"resolve@npm:1.22.8, resolve@npm:^1.10.0, resolve@npm:^1.20.0, resolve@npm:^1.22.0, resolve@npm:^1.22.1, resolve@npm:^1.22.3, resolve@npm:^1.22.4": +"resolve@npm:1.22.8, resolve@npm:^1.10.0, resolve@npm:^1.20.0, resolve@npm:^1.22.2, resolve@npm:^1.22.3, resolve@npm:^1.22.4": version: 1.22.8 resolution: "resolve@npm:1.22.8" dependencies: @@ -10168,7 +9888,7 @@ __metadata: languageName: node linkType: hard -"resolve@patch:resolve@npm%3A1.22.8#optional!builtin, resolve@patch:resolve@npm%3A^1.10.0#optional!builtin, resolve@patch:resolve@npm%3A^1.20.0#optional!builtin, resolve@patch:resolve@npm%3A^1.22.0#optional!builtin, resolve@patch:resolve@npm%3A^1.22.1#optional!builtin, resolve@patch:resolve@npm%3A^1.22.3#optional!builtin, resolve@patch:resolve@npm%3A^1.22.4#optional!builtin": +"resolve@patch:resolve@npm%3A1.22.8#optional!builtin, resolve@patch:resolve@npm%3A^1.10.0#optional!builtin, resolve@patch:resolve@npm%3A^1.20.0#optional!builtin, resolve@patch:resolve@npm%3A^1.22.2#optional!builtin, resolve@patch:resolve@npm%3A^1.22.3#optional!builtin, resolve@patch:resolve@npm%3A^1.22.4#optional!builtin": version: 1.22.8 resolution: "resolve@patch:resolve@npm%3A1.22.8#optional!builtin::version=1.22.8&hash=c3c19d" dependencies: @@ -10223,7 +9943,7 @@ __metadata: languageName: node linkType: hard -"rimraf@npm:^5.0.7": +"rimraf@npm:^5.0.10": version: 5.0.10 resolution: "rimraf@npm:5.0.10" dependencies: @@ -10361,18 +10081,6 @@ __metadata: languageName: node linkType: hard -"safe-array-concat@npm:^1.1.2": - version: 1.1.2 - resolution: "safe-array-concat@npm:1.1.2" - dependencies: - call-bind: "npm:^1.0.7" - get-intrinsic: "npm:^1.2.4" - has-symbols: "npm:^1.0.3" - isarray: "npm:^2.0.5" - checksum: 10/a54f8040d7cb696a1ee38d19cc71ab3cfb654b9b81bae00c6459618cfad8214ece7e6666592f9c925aafef43d0a20c5e6fbb3413a2b618e1ce9d516a2e6dcfc5 - languageName: node - linkType: hard - "safe-buffer@npm:^5.0.1, safe-buffer@npm:^5.1.0, safe-buffer@npm:^5.1.1, safe-buffer@npm:^5.1.2, safe-buffer@npm:^5.2.0, safe-buffer@npm:~5.2.0": version: 5.2.1 resolution: "safe-buffer@npm:5.2.1" @@ -10387,17 +10095,6 @@ __metadata: languageName: node linkType: hard -"safe-regex-test@npm:^1.0.3": - version: 1.0.3 - resolution: "safe-regex-test@npm:1.0.3" - dependencies: - call-bind: "npm:^1.0.6" - es-errors: "npm:^1.3.0" - is-regex: "npm:^1.1.4" - checksum: 10/b04de61114b10274d92e25b6de7ccb5de07f11ea15637ff636de4b5190c0f5cd8823fe586dde718504cf78055437d70fd8804976894df502fcf5a210c970afb3 - languageName: node - linkType: hard - "safer-buffer@npm:>= 2.1.2 < 3.0.0": version: 2.1.2 resolution: "safer-buffer@npm:2.1.2" @@ -10458,7 +10155,7 @@ __metadata: languageName: node linkType: hard -"semver@npm:7.6.3, semver@npm:^7.0.0, semver@npm:^7.1.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.3, semver@npm:^7.5.4, semver@npm:^7.6.3": +"semver@npm:7.6.3, semver@npm:^7.0.0, semver@npm:^7.1.1, semver@npm:^7.3.4, semver@npm:^7.3.5, semver@npm:^7.3.7, semver@npm:^7.5.3, semver@npm:^7.5.4, semver@npm:^7.6.0, semver@npm:^7.6.3": version: 7.6.3 resolution: "semver@npm:7.6.3" bin: @@ -10506,18 +10203,6 @@ __metadata: languageName: node linkType: hard -"set-function-name@npm:^2.0.1": - version: 2.0.2 - resolution: "set-function-name@npm:2.0.2" - dependencies: - define-data-property: "npm:^1.1.4" - es-errors: "npm:^1.3.0" - functions-have-names: "npm:^1.2.3" - has-property-descriptors: "npm:^1.0.2" - checksum: 10/c7614154a53ebf8c0428a6c40a3b0b47dac30587c1a19703d1b75f003803f73cdfa6a93474a9ba678fa565ef5fbddc2fae79bca03b7d22ab5fd5163dbe571a74 - languageName: node - linkType: hard - "setimmediate@npm:^1.0.5": version: 1.0.5 resolution: "setimmediate@npm:1.0.5" @@ -10565,17 +10250,6 @@ __metadata: languageName: node linkType: hard -"side-channel@npm:^1.0.4": - version: 1.0.4 - resolution: "side-channel@npm:1.0.4" - dependencies: - call-bind: "npm:^1.0.0" - get-intrinsic: "npm:^1.0.2" - object-inspect: "npm:^1.9.0" - checksum: 10/c4998d9fc530b0e75a7fd791ad868fdc42846f072734f9080ff55cc8dc7d3899abcda24fd896aa6648c3ab7021b4bb478073eb4f44dfd55bce9714bc1a7c5d45 - languageName: node - linkType: hard - "signal-exit@npm:^3.0.2, signal-exit@npm:^3.0.3, signal-exit@npm:^3.0.7": version: 3.0.7 resolution: "signal-exit@npm:3.0.7" @@ -10618,6 +10292,13 @@ __metadata: languageName: node linkType: hard +"slash@npm:^4.0.0": + version: 4.0.0 + resolution: "slash@npm:4.0.0" + checksum: 10/da8e4af73712253acd21b7853b7e0dbba776b786e82b010a5bfc8b5051a1db38ed8aba8e1e8f400dd2c9f373be91eb1c42b66e91abb407ff42b10feece5e1d2d + languageName: node + linkType: hard + "slash@npm:^5.1.0": version: 5.1.0 resolution: "slash@npm:5.1.0" @@ -10682,19 +10363,21 @@ __metadata: languageName: node linkType: hard -"sort-package-json@npm:1.57.0": - version: 1.57.0 - resolution: "sort-package-json@npm:1.57.0" +"sort-package-json@npm:2.10.1": + version: 2.10.1 + resolution: "sort-package-json@npm:2.10.1" dependencies: - detect-indent: "npm:^6.0.0" - detect-newline: "npm:3.1.0" - git-hooks-list: "npm:1.0.3" - globby: "npm:10.0.0" - is-plain-obj: "npm:2.1.0" + detect-indent: "npm:^7.0.1" + detect-newline: "npm:^4.0.0" + get-stdin: "npm:^9.0.0" + git-hooks-list: "npm:^3.0.0" + globby: "npm:^13.1.2" + is-plain-obj: "npm:^4.1.0" + semver: "npm:^7.6.0" sort-object-keys: "npm:^1.1.3" bin: sort-package-json: cli.js - checksum: 10/abc217315070ffd6559b32b95917b92c8376880c0d17b4ad2b0eeacdffb38bf723b892a56c56d91ae6999fca3369bfdf5e29b1b02b2fc944b0cbb299c069d0e8 + checksum: 10/3a08cb9227c244d51bfb0eaaa5a9ea82fd3c96ea299c040365700b3f445d46a98411df4237f4e3c96ba67be4dcd53931747eab3b799f0335d278b36d64f1061d languageName: node linkType: hard @@ -10739,7 +10422,7 @@ __metadata: languageName: node linkType: hard -"spdx-expression-parse@npm:^3.0.0, spdx-expression-parse@npm:^3.0.1": +"spdx-expression-parse@npm:^3.0.0": version: 3.0.1 resolution: "spdx-expression-parse@npm:3.0.1" dependencies: @@ -10749,6 +10432,16 @@ __metadata: languageName: node linkType: hard +"spdx-expression-parse@npm:^4.0.0": + version: 4.0.0 + resolution: "spdx-expression-parse@npm:4.0.0" + dependencies: + spdx-exceptions: "npm:^2.1.0" + spdx-license-ids: "npm:^3.0.0" + checksum: 10/936be681fbf5edeec3a79c023136479f70d6edb3fd3875089ac86cd324c6c8c81add47399edead296d1d0af17ae5ce88c7f88885eb150b62c2ff6e535841ca6a + languageName: node + linkType: hard + "spdx-license-ids@npm:^3.0.0": version: 3.0.5 resolution: "spdx-license-ids@npm:3.0.5" @@ -10788,6 +10481,13 @@ __metadata: languageName: node linkType: hard +"stable-hash@npm:^0.0.4": + version: 0.0.4 + resolution: "stable-hash@npm:0.0.4" + checksum: 10/21c039d21c1cb739cf8342561753a5e007cb95ea682ccd452e76310bbb9c6987a89de8eda023e320b019f3e4691aabda75079cdbb7dadf7ab9013e931f2f23cd + languageName: node + linkType: hard + "stack-utils@npm:^2.0.3": version: 2.0.5 resolution: "stack-utils@npm:2.0.5" @@ -10872,40 +10572,6 @@ __metadata: languageName: node linkType: hard -"string.prototype.trim@npm:^1.2.9": - version: 1.2.9 - resolution: "string.prototype.trim@npm:1.2.9" - dependencies: - call-bind: "npm:^1.0.7" - define-properties: "npm:^1.2.1" - es-abstract: "npm:^1.23.0" - es-object-atoms: "npm:^1.0.0" - checksum: 10/b2170903de6a2fb5a49bb8850052144e04b67329d49f1343cdc6a87cb24fb4e4b8ad00d3e273a399b8a3d8c32c89775d93a8f43cb42fbff303f25382079fb58a - languageName: node - linkType: hard - -"string.prototype.trimend@npm:^1.0.8": - version: 1.0.8 - resolution: "string.prototype.trimend@npm:1.0.8" - dependencies: - call-bind: "npm:^1.0.7" - define-properties: "npm:^1.2.1" - es-object-atoms: "npm:^1.0.0" - checksum: 10/c2e862ae724f95771da9ea17c27559d4eeced9208b9c20f69bbfcd1b9bc92375adf8af63a103194dba17c4cc4a5cb08842d929f415ff9d89c062d44689c8761b - languageName: node - linkType: hard - -"string.prototype.trimstart@npm:^1.0.8": - version: 1.0.8 - resolution: "string.prototype.trimstart@npm:1.0.8" - dependencies: - call-bind: "npm:^1.0.7" - define-properties: "npm:^1.2.1" - es-object-atoms: "npm:^1.0.0" - checksum: 10/160167dfbd68e6f7cb9f51a16074eebfce1571656fc31d40c3738ca9e30e35496f2c046fe57b6ad49f65f238a152be8c86fd9a2dd58682b5eba39dad995b3674 - languageName: node - linkType: hard - "string_decoder@npm:^1.1.1, string_decoder@npm:^1.3.0": version: 1.3.0 resolution: "string_decoder@npm:1.3.0" @@ -10933,13 +10599,6 @@ __metadata: languageName: node linkType: hard -"strip-bom@npm:^3.0.0": - version: 3.0.0 - resolution: "strip-bom@npm:3.0.0" - checksum: 10/8d50ff27b7ebe5ecc78f1fe1e00fcdff7af014e73cf724b46fb81ef889eeb1015fc5184b64e81a2efe002180f3ba431bdd77e300da5c6685d702780fbf0c8d5b - languageName: node - linkType: hard - "strip-bom@npm:^4.0.0": version: 4.0.0 resolution: "strip-bom@npm:4.0.0" @@ -10979,7 +10638,7 @@ __metadata: languageName: node linkType: hard -"strip-json-comments@npm:^3.1.0, strip-json-comments@npm:^3.1.1": +"strip-json-comments@npm:^3.1.1": version: 3.1.1 resolution: "strip-json-comments@npm:3.1.1" checksum: 10/492f73e27268f9b1c122733f28ecb0e7e8d8a531a6662efbd08e22cccb3f9475e90a1b82cab06a392f6afae6d2de636f977e231296400d0ec5304ba70f166443 @@ -11051,6 +10710,16 @@ __metadata: languageName: node linkType: hard +"synckit@npm:0.9.1": + version: 0.9.1 + resolution: "synckit@npm:0.9.1" + dependencies: + "@pkgr/core": "npm:^0.1.0" + tslib: "npm:^2.6.2" + checksum: 10/bff3903976baf8b699b5483228116d70223781a93b17c70e685c277ee960cdfd1a09cb5a741e6a9ec35e2428f14f4664baec41ccc99a598f267608b2a54f529b + languageName: node + linkType: hard + "syncpack@npm:^13.0.0": version: 13.0.0 resolution: "syncpack@npm:13.0.0" @@ -11233,6 +10902,15 @@ __metadata: languageName: node linkType: hard +"ts-api-utils@npm:^1.3.0": + version: 1.3.0 + resolution: "ts-api-utils@npm:1.3.0" + peerDependencies: + typescript: ">=4.2.0" + checksum: 10/3ee44faa24410cd649b5c864e068d438aa437ef64e9e4a66a41646a6d3024d3097a695eeb3fb26ee364705d3cb9653a65756d009e6a53badb6066a5f447bf7ed + languageName: node + linkType: hard + "ts-jest@npm:^29.0.5": version: 29.2.5 resolution: "ts-jest@npm:29.2.5" @@ -11322,18 +11000,6 @@ __metadata: languageName: node linkType: hard -"tsconfig-paths@npm:^3.14.1": - version: 3.15.0 - resolution: "tsconfig-paths@npm:3.15.0" - dependencies: - "@types/json5": "npm:^0.0.29" - json5: "npm:^1.0.2" - minimist: "npm:^1.2.6" - strip-bom: "npm:^3.0.0" - checksum: 10/2041beaedc6c271fc3bedd12e0da0cc553e65d030d4ff26044b771fac5752d0460944c0b5e680f670c2868c95c664a256cec960ae528888db6ded83524e33a14 - languageName: node - linkType: hard - "tsd@npm:^0.31.0": version: 0.31.1 resolution: "tsd@npm:0.31.1" @@ -11448,58 +11114,6 @@ __metadata: languageName: node linkType: hard -"typed-array-buffer@npm:^1.0.2": - version: 1.0.2 - resolution: "typed-array-buffer@npm:1.0.2" - dependencies: - call-bind: "npm:^1.0.7" - es-errors: "npm:^1.3.0" - is-typed-array: "npm:^1.1.13" - checksum: 10/02ffc185d29c6df07968272b15d5319a1610817916ec8d4cd670ded5d1efe72901541ff2202fcc622730d8a549c76e198a2f74e312eabbfb712ed907d45cbb0b - languageName: node - linkType: hard - -"typed-array-byte-length@npm:^1.0.1": - version: 1.0.1 - resolution: "typed-array-byte-length@npm:1.0.1" - dependencies: - call-bind: "npm:^1.0.7" - for-each: "npm:^0.3.3" - gopd: "npm:^1.0.1" - has-proto: "npm:^1.0.3" - is-typed-array: "npm:^1.1.13" - checksum: 10/e4a38329736fe6a73b52a09222d4a9e8de14caaa4ff6ad8e55217f6705b017d9815b7284c85065b3b8a7704e226ccff1372a72b78c2a5b6b71b7bf662308c903 - languageName: node - linkType: hard - -"typed-array-byte-offset@npm:^1.0.2": - version: 1.0.2 - resolution: "typed-array-byte-offset@npm:1.0.2" - dependencies: - available-typed-arrays: "npm:^1.0.7" - call-bind: "npm:^1.0.7" - for-each: "npm:^0.3.3" - gopd: "npm:^1.0.1" - has-proto: "npm:^1.0.3" - is-typed-array: "npm:^1.1.13" - checksum: 10/ac26d720ebb2aacbc45e231347c359e6649f52e0cfe0e76e62005912f8030d68e4cb7b725b1754e8fdd48e433cb68df5a8620a3e420ad1457d666e8b29bf9150 - languageName: node - linkType: hard - -"typed-array-length@npm:^1.0.6": - version: 1.0.6 - resolution: "typed-array-length@npm:1.0.6" - dependencies: - call-bind: "npm:^1.0.7" - for-each: "npm:^0.3.3" - gopd: "npm:^1.0.1" - has-proto: "npm:^1.0.3" - is-typed-array: "npm:^1.1.13" - possible-typed-array-names: "npm:^1.0.0" - checksum: 10/05e96cf4ff836743ebfc593d86133b8c30e83172cb5d16c56814d7bacfed57ce97e87ada9c4b2156d9aaa59f75cdef01c25bd9081c7826e0b869afbefc3e8c39 - languageName: node - linkType: hard - "typedarray@npm:^0.0.6": version: 0.0.6 resolution: "typedarray@npm:0.0.6" @@ -11530,23 +11144,23 @@ __metadata: languageName: node linkType: hard -"typescript@npm:~4.8.4": - version: 4.8.4 - resolution: "typescript@npm:4.8.4" +"typescript@npm:~5.4.5": + version: 5.4.5 + resolution: "typescript@npm:5.4.5" bin: tsc: bin/tsc tsserver: bin/tsserver - checksum: 10/f985d8dd6ae815753d61cb81e434f3a4a5796ac52e423370fca6ad11bcd188df4013d82e3ba3b88c9746745b9341390ba68f862dc9d30bac6465e0699f2a795b + checksum: 10/d04a9e27e6d83861f2126665aa8d84847e8ebabcea9125b9ebc30370b98cb38b5dff2508d74e2326a744938191a83a69aa9fddab41f193ffa43eabfdf3f190a5 languageName: node linkType: hard -"typescript@patch:typescript@npm%3A~4.8.4#optional!builtin": - version: 4.8.4 - resolution: "typescript@patch:typescript@npm%3A4.8.4#optional!builtin::version=4.8.4&hash=1a91c8" +"typescript@patch:typescript@npm%3A~5.4.5#optional!builtin": + version: 5.4.5 + resolution: "typescript@patch:typescript@npm%3A5.4.5#optional!builtin::version=5.4.5&hash=5adc0c" bin: tsc: bin/tsc tsserver: bin/tsserver - checksum: 10/5d81fd8cf5152091a0c0b84ebc868de8433583072a340c4899e0fc7ad6a80314b880a1466868c9a6a1f640c3d1f2fe7f41f8c541b99d78c8b414263dfa27eba3 + checksum: 10/760f7d92fb383dbf7dee2443bf902f4365db2117f96f875cf809167f6103d55064de973db9f78fe8f31ec08fff52b2c969aee0d310939c0a3798ec75d0bca2e1 languageName: node linkType: hard @@ -11557,18 +11171,6 @@ __metadata: languageName: node linkType: hard -"unbox-primitive@npm:^1.0.2": - version: 1.0.2 - resolution: "unbox-primitive@npm:1.0.2" - dependencies: - call-bind: "npm:^1.0.2" - has-bigints: "npm:^1.0.2" - has-symbols: "npm:^1.0.3" - which-boxed-primitive: "npm:^1.0.2" - checksum: 10/06e1ee41c1095e37281cb71a975cb3350f7cb470a0665d2576f02cc9564f623bd90cfc0183693b8a7fdf2d242963dcc3010b509fa3ac683f540c765c0f3e7e43 - languageName: node - linkType: hard - "undici-types@npm:~6.19.2": version: 6.19.8 resolution: "undici-types@npm:6.19.8" @@ -11873,20 +11475,7 @@ __metadata: languageName: node linkType: hard -"which-boxed-primitive@npm:^1.0.2": - version: 1.0.2 - resolution: "which-boxed-primitive@npm:1.0.2" - dependencies: - is-bigint: "npm:^1.0.1" - is-boolean-object: "npm:^1.1.0" - is-number-object: "npm:^1.0.4" - is-string: "npm:^1.0.5" - is-symbol: "npm:^1.0.3" - checksum: 10/9c7ca7855255f25ac47f4ce8b59c4cc33629e713fd7a165c9d77a2bb47bf3d9655a5664660c70337a3221cf96742f3589fae15a3a33639908d33e29aa2941efb - languageName: node - linkType: hard - -"which-typed-array@npm:^1.1.14, which-typed-array@npm:^1.1.15, which-typed-array@npm:^1.1.2": +"which-typed-array@npm:^1.1.14, which-typed-array@npm:^1.1.2": version: 1.1.15 resolution: "which-typed-array@npm:1.1.15" dependencies: