diff --git a/.eslintrc.cjs b/.eslintrc.cjs
index dd805c6..fcb79ca 100644
--- a/.eslintrc.cjs
+++ b/.eslintrc.cjs
@@ -1,24 +1,24 @@
/* eslint-env node */
module.exports = {
- extends: ['eslint:recommended', 'plugin:@typescript-eslint/recommended', 'plugin:prettier/recommended'],
+ extends: ["eslint:recommended", "plugin:@typescript-eslint/recommended", "plugin:prettier/recommended"],
parserOptions: {
- project: ['./tsconfig.json']
+ project: ["./tsconfig.json"]
},
- parser: '@typescript-eslint/parser',
- plugins: ['@typescript-eslint'],
+ parser: "@typescript-eslint/parser",
+ plugins: ["@typescript-eslint"],
root: true,
rules: {
- '@typescript-eslint/no-var-requires': 'off',
- 'no-undef': 'off',
- '@typescript-eslint/no-non-null-asserted-optional-chain': 'off',
- '@typescript-eslint/no-non-null-assertion': 'off',
- '@typescript-eslint/no-empty-function': 'off',
- '@typescript-eslint/no-explicit-any': 'off',
- 'prefer-const': 'off',
- '@typescript-eslint/ban-types': 'off',
- 'no-empty': 'off',
- '@typescript-eslint/ban-ts-comment': 'off',
- '@typescript-eslint/no-floating-promises': 'off',
- 'prettier/prettier': 'error'
+ "@typescript-eslint/no-var-requires": "off",
+ "no-undef": "off",
+ "@typescript-eslint/no-non-null-asserted-optional-chain": "off",
+ "@typescript-eslint/no-non-null-assertion": "off",
+ "@typescript-eslint/no-empty-function": "off",
+ "@typescript-eslint/no-explicit-any": "off",
+ "prefer-const": "off",
+ "@typescript-eslint/ban-types": "off",
+ "no-empty": "off",
+ "@typescript-eslint/ban-ts-comment": "off",
+ "@typescript-eslint/no-floating-promises": "off",
+ "prettier/prettier": "off"
}
};
diff --git a/.idea/.gitignore b/.idea/.gitignore
new file mode 100644
index 0000000..b58b603
--- /dev/null
+++ b/.idea/.gitignore
@@ -0,0 +1,5 @@
+# Default ignored files
+/shelf/
+/workspace.xml
+# Editor-based HTTP Client requests
+/httpRequests/
diff --git a/.idea/codeStyles/Project.xml b/.idea/codeStyles/Project.xml
new file mode 100644
index 0000000..a00eeef
--- /dev/null
+++ b/.idea/codeStyles/Project.xml
@@ -0,0 +1,49 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/codeStyles/codeStyleConfig.xml b/.idea/codeStyles/codeStyleConfig.xml
new file mode 100644
index 0000000..79ee123
--- /dev/null
+++ b/.idea/codeStyles/codeStyleConfig.xml
@@ -0,0 +1,5 @@
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/inspectionProfiles/Project_Default.xml b/.idea/inspectionProfiles/Project_Default.xml
new file mode 100644
index 0000000..03d9549
--- /dev/null
+++ b/.idea/inspectionProfiles/Project_Default.xml
@@ -0,0 +1,6 @@
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/modules.xml b/.idea/modules.xml
new file mode 100644
index 0000000..e43887a
--- /dev/null
+++ b/.idea/modules.xml
@@ -0,0 +1,8 @@
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/prettier.xml b/.idea/prettier.xml
new file mode 100644
index 0000000..0c83ac4
--- /dev/null
+++ b/.idea/prettier.xml
@@ -0,0 +1,7 @@
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/vcs.xml b/.idea/vcs.xml
new file mode 100644
index 0000000..35eb1dd
--- /dev/null
+++ b/.idea/vcs.xml
@@ -0,0 +1,6 @@
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/wallet-sdk.iml b/.idea/wallet-sdk.iml
new file mode 100644
index 0000000..62e2245
--- /dev/null
+++ b/.idea/wallet-sdk.iml
@@ -0,0 +1,14 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.prettierrc b/.prettierrc
index 2ad9c6e..675d842 100644
--- a/.prettierrc
+++ b/.prettierrc
@@ -1,6 +1,6 @@
{
"printWidth": 120,
- "tabWidth": 2,
+ "tabWidth": 4,
"singleQuote": true,
"useTabs": false,
"semi": true,
@@ -10,5 +10,11 @@
"jsxBracketSameLine": true,
"arrowParens": "always",
"requirePragma": false,
- "insertPragma": false
+ "insertPragma": false,
+ "importOrder": [
+ "^@formily/(.*)",
+ "^@(.*)$",
+ "^[./]"
+ ],
+ "importOrderSeparation": true
}
diff --git a/package.json b/package.json
index e4dbbb3..6621f1a 100644
--- a/package.json
+++ b/package.json
@@ -1,6 +1,6 @@
{
"name": "@unisat/wallet-sdk",
- "version": "1.7.1",
+ "version": "1.7.2",
"description": "UniSat Wallet SDK",
"keywords": [
"bitcoin",
@@ -34,13 +34,14 @@
"lint": "eslint ./src ./test"
},
"dependencies": {
- "@bitcoinerlab/secp256k1": "^1.0.5",
+ "@bitcoinerlab/secp256k1": "^1.1.1",
"@keystonehq/keystone-sdk": "^0.3.0",
"big-integer": "^1.6.52",
"bignumber.js": "^9.1.2",
+ "bip-schnorr": "^0.6.7",
"bip39": "^3.1.0",
"bitcoinjs-lib": "^6.1.6",
- "bitcore-lib": "^10.0.0",
+ "bitcore-lib": "^10.2.1",
"ecpair": "^2.1.0",
"hdkey": "^2.1.0",
"tiny-secp256k1": "=2.2.1"
@@ -50,7 +51,9 @@
"@babel/plugin-transform-runtime": "^7.16.5",
"@babel/preset-env": "^7.16.5",
"@babel/preset-typescript": "^7.16.5",
+ "@types/bitcore-lib": "^0.15.6",
"@types/chai": "^4.2.20",
+ "@types/hdkey": "^2.0.3",
"@types/mocha": "^8.2.2",
"@types/node": "^16.11.10",
"@typescript-eslint/eslint-plugin": "^5.59.1",
@@ -70,7 +73,7 @@
"gulp-babel": "^8.0.0",
"gulp-typescript": "*",
"https-browserify": "^1.0.0",
- "mocha": "^9.0.2",
+ "mocha": "10.1.0",
"prettier": "^3.2.5",
"stream-browserify": "^3.0.0",
"stream-http": "^3.2.0",
diff --git a/src/address/index.ts b/src/address/index.ts
index 81c1eff..1b5a439 100644
--- a/src/address/index.ts
+++ b/src/address/index.ts
@@ -1,169 +1,170 @@
-import { bitcoin } from '../bitcoin-core';
import { NetworkType, toPsbtNetwork } from '../network';
import { AddressType } from '../types';
+import * as bitcoin from 'bitcoinjs-lib';
+import { payments } from 'bitcoinjs-lib';
/**
* Convert public key to bitcoin payment object.
*/
export function publicKeyToPayment(publicKey: string, type: AddressType, networkType: NetworkType) {
- const network = toPsbtNetwork(networkType);
- if (!publicKey) return null;
- const pubkey = Buffer.from(publicKey, 'hex');
- if (type === AddressType.P2PKH) {
- return bitcoin.payments.p2pkh({
- pubkey,
- network
- });
- } else if (type === AddressType.P2WPKH || type === AddressType.M44_P2WPKH) {
- return bitcoin.payments.p2wpkh({
- pubkey,
- network
- });
- } else if (type === AddressType.P2TR || type === AddressType.M44_P2TR) {
- return bitcoin.payments.p2tr({
- internalPubkey: pubkey.slice(1, 33),
- network
- });
- } else if (type === AddressType.P2SH_P2WPKH) {
- const data = bitcoin.payments.p2wpkh({
- pubkey,
- network
- });
- return bitcoin.payments.p2sh({
- pubkey,
- network,
- redeem: data
- });
- }
+ const network = toPsbtNetwork(networkType);
+ if (!publicKey) return null;
+ const pubkey = Buffer.from(publicKey, 'hex');
+ if (type === AddressType.P2PKH) {
+ return payments.p2pkh({
+ pubkey,
+ network
+ });
+ } else if (type === AddressType.P2WPKH || type === AddressType.M44_P2WPKH) {
+ return payments.p2wpkh({
+ pubkey,
+ network
+ });
+ } else if (type === AddressType.P2TR || type === AddressType.M44_P2TR) {
+ return payments.p2tr({
+ internalPubkey: pubkey.slice(1, 33),
+ network
+ });
+ } else if (type === AddressType.P2SH_P2WPKH) {
+ const data = payments.p2wpkh({
+ pubkey,
+ network
+ });
+ return payments.p2sh({
+ pubkey,
+ network,
+ redeem: data
+ });
+ }
}
/**
* Convert public key to bitcoin address.
*/
export function publicKeyToAddress(publicKey: string, type: AddressType, networkType: NetworkType) {
- const payment = publicKeyToPayment(publicKey, type, networkType);
- if (payment && payment.address) {
- return payment.address;
- } else {
- return '';
- }
+ const payment = publicKeyToPayment(publicKey, type, networkType);
+ if (payment && payment.address) {
+ return payment.address;
+ } else {
+ return '';
+ }
}
/**
* Convert public key to bitcoin scriptPk.
*/
export function publicKeyToScriptPk(publicKey: string, type: AddressType, networkType: NetworkType) {
- const payment = publicKeyToPayment(publicKey, type, networkType);
- return payment.output.toString('hex');
+ const payment = publicKeyToPayment(publicKey, type, networkType);
+ return payment.output.toString('hex');
}
/**
* Convert bitcoin address to scriptPk.
*/
export function addressToScriptPk(address: string, networkType: NetworkType) {
- const network = toPsbtNetwork(networkType);
- return bitcoin.address.toOutputScript(address, network);
+ const network = toPsbtNetwork(networkType);
+ return bitcoin.address.toOutputScript(address, network);
}
/**
* Check if the address is valid.
*/
export function isValidAddress(address: string, networkType: NetworkType = NetworkType.MAINNET) {
- let error;
- try {
- bitcoin.address.toOutputScript(address, toPsbtNetwork(networkType));
- } catch (e) {
- error = e;
- }
- if (error) {
- return false;
- } else {
- return true;
- }
+ let error;
+ try {
+ bitcoin.address.toOutputScript(address, toPsbtNetwork(networkType));
+ } catch (e) {
+ error = e;
+ }
+ if (error) {
+ return false;
+ } else {
+ return true;
+ }
}
export function decodeAddress(address: string) {
- const mainnet = bitcoin.networks.bitcoin;
- const testnet = bitcoin.networks.testnet;
- const regtest = bitcoin.networks.regtest;
- let decodeBase58: bitcoin.address.Base58CheckResult;
- let decodeBech32: bitcoin.address.Bech32Result;
- let networkType: NetworkType;
- let addressType: AddressType;
- if (address.startsWith('bc1') || address.startsWith('tb1') || address.startsWith('bcrt1')) {
- try {
- decodeBech32 = bitcoin.address.fromBech32(address);
- if (decodeBech32.prefix === mainnet.bech32) {
- networkType = NetworkType.MAINNET;
- } else if (decodeBech32.prefix === testnet.bech32) {
- networkType = NetworkType.TESTNET;
- } else if (decodeBech32.prefix === regtest.bech32) {
- networkType = NetworkType.REGTEST;
- }
- if (decodeBech32.version === 0) {
- if (decodeBech32.data.length === 20) {
- addressType = AddressType.P2WPKH;
- } else if (decodeBech32.data.length === 32) {
- addressType = AddressType.P2WSH;
- }
- } else if (decodeBech32.version === 1) {
- if (decodeBech32.data.length === 32) {
- addressType = AddressType.P2TR;
- }
- }
- return {
- networkType,
- addressType,
- dust: getAddressTypeDust(addressType)
- };
- } catch (e) {}
- } else {
- try {
- decodeBase58 = bitcoin.address.fromBase58Check(address);
- if (decodeBase58.version === mainnet.pubKeyHash) {
- networkType = NetworkType.MAINNET;
- addressType = AddressType.P2PKH;
- } else if (decodeBase58.version === testnet.pubKeyHash) {
- networkType = NetworkType.TESTNET;
- addressType = AddressType.P2PKH;
- } else if (decodeBase58.version === regtest.pubKeyHash) {
- // do not work
- networkType = NetworkType.REGTEST;
- addressType = AddressType.P2PKH;
- } else if (decodeBase58.version === mainnet.scriptHash) {
- networkType = NetworkType.MAINNET;
- addressType = AddressType.P2SH_P2WPKH;
- } else if (decodeBase58.version === testnet.scriptHash) {
- networkType = NetworkType.TESTNET;
- addressType = AddressType.P2SH_P2WPKH;
- } else if (decodeBase58.version === regtest.scriptHash) {
- // do not work
- networkType = NetworkType.REGTEST;
- addressType = AddressType.P2SH_P2WPKH;
- }
- return {
- networkType,
- addressType,
- dust: getAddressTypeDust(addressType)
- };
- } catch (e) {}
- }
+ const mainnet = bitcoin.networks.bitcoin;
+ const testnet = bitcoin.networks.testnet;
+ const regtest = bitcoin.networks.regtest;
+ let decodeBase58: bitcoin.address.Base58CheckResult;
+ let decodeBech32: bitcoin.address.Bech32Result;
+ let networkType: NetworkType;
+ let addressType: AddressType;
+ if (address.startsWith('bc1') || address.startsWith('tb1') || address.startsWith('bcrt1')) {
+ try {
+ decodeBech32 = bitcoin.address.fromBech32(address);
+ if (decodeBech32.prefix === mainnet.bech32) {
+ networkType = NetworkType.MAINNET;
+ } else if (decodeBech32.prefix === testnet.bech32) {
+ networkType = NetworkType.TESTNET;
+ } else if (decodeBech32.prefix === regtest.bech32) {
+ networkType = NetworkType.REGTEST;
+ }
+ if (decodeBech32.version === 0) {
+ if (decodeBech32.data.length === 20) {
+ addressType = AddressType.P2WPKH;
+ } else if (decodeBech32.data.length === 32) {
+ addressType = AddressType.P2WSH;
+ }
+ } else if (decodeBech32.version === 1) {
+ if (decodeBech32.data.length === 32) {
+ addressType = AddressType.P2TR;
+ }
+ }
+ return {
+ networkType,
+ addressType,
+ dust: getAddressTypeDust(addressType)
+ };
+ } catch (e) {}
+ } else {
+ try {
+ decodeBase58 = bitcoin.address.fromBase58Check(address);
+ if (decodeBase58.version === mainnet.pubKeyHash) {
+ networkType = NetworkType.MAINNET;
+ addressType = AddressType.P2PKH;
+ } else if (decodeBase58.version === testnet.pubKeyHash) {
+ networkType = NetworkType.TESTNET;
+ addressType = AddressType.P2PKH;
+ } else if (decodeBase58.version === regtest.pubKeyHash) {
+ // do not work
+ networkType = NetworkType.REGTEST;
+ addressType = AddressType.P2PKH;
+ } else if (decodeBase58.version === mainnet.scriptHash) {
+ networkType = NetworkType.MAINNET;
+ addressType = AddressType.P2SH_P2WPKH;
+ } else if (decodeBase58.version === testnet.scriptHash) {
+ networkType = NetworkType.TESTNET;
+ addressType = AddressType.P2SH_P2WPKH;
+ } else if (decodeBase58.version === regtest.scriptHash) {
+ // do not work
+ networkType = NetworkType.REGTEST;
+ addressType = AddressType.P2SH_P2WPKH;
+ }
+ return {
+ networkType,
+ addressType,
+ dust: getAddressTypeDust(addressType)
+ };
+ } catch (e) {}
+ }
- return {
- networkType: NetworkType.MAINNET,
- addressType: AddressType.UNKNOWN,
- dust: 546
- };
+ return {
+ networkType: NetworkType.MAINNET,
+ addressType: AddressType.UNKNOWN,
+ dust: 546
+ };
}
function getAddressTypeDust(addressType: AddressType) {
- if (addressType === AddressType.P2WPKH || addressType === AddressType.M44_P2WPKH) {
- return 294;
- } else if (addressType === AddressType.P2TR || addressType === AddressType.M44_P2TR) {
- return 330;
- } else {
- return 546;
- }
+ if (addressType === AddressType.P2WPKH || addressType === AddressType.M44_P2WPKH) {
+ return 294;
+ } else if (addressType === AddressType.P2TR || addressType === AddressType.M44_P2TR) {
+ return 330;
+ } else {
+ return 546;
+ }
}
/**
@@ -171,21 +172,21 @@ function getAddressTypeDust(addressType: AddressType) {
*/
// eslint-disable-next-line @typescript-eslint/no-unused-vars
export function getAddressType(address: string, networkType: NetworkType = NetworkType.MAINNET): AddressType {
- return decodeAddress(address).addressType;
+ return decodeAddress(address).addressType;
}
/**
* Convert scriptPk to address.
*/
export function scriptPkToAddress(scriptPk: string | Buffer, networkType: NetworkType = NetworkType.MAINNET) {
- const network = toPsbtNetwork(networkType);
- try {
- const address = bitcoin.address.fromOutputScript(
- typeof scriptPk === 'string' ? Buffer.from(scriptPk, 'hex') : scriptPk,
- network
- );
- return address;
- } catch (e) {
- return '';
- }
+ const network = toPsbtNetwork(networkType);
+ try {
+ const address = bitcoin.address.fromOutputScript(
+ typeof scriptPk === 'string' ? Buffer.from(scriptPk, 'hex') : scriptPk,
+ network
+ );
+ return address;
+ } catch (e) {
+ return '';
+ }
}
diff --git a/src/bitcoin-core.ts b/src/bitcoin-core.ts
index 12964e2..ae39430 100644
--- a/src/bitcoin-core.ts
+++ b/src/bitcoin-core.ts
@@ -1,8 +1,10 @@
-// import ecc from "@bitcoinerlab/secp256k1";
-import * as bitcoin from 'bitcoinjs-lib';
import ECPairFactory from 'ecpair';
-import * as ecc from 'tiny-secp256k1';
-bitcoin.initEccLib(ecc);
-const ECPair = ECPairFactory(ecc);
+import * as ecc from '@bitcoinerlab/secp256k1';
+import * as bitcoin from 'bitcoinjs-lib';
+import { initEccLib } from 'bitcoinjs-lib';
+
+initEccLib(ecc);
+
+export const ECPair = ECPairFactory(ecc);
export { ECPairInterface } from 'ecpair';
-export { ECPair, bitcoin, ecc };
+export { ecc, bitcoin };
diff --git a/src/index.ts b/src/index.ts
index 6584865..5ece882 100644
--- a/src/index.ts
+++ b/src/index.ts
@@ -1,3 +1,10 @@
+Object.defineProperty(global, '_bitcore', {
+ get() {
+ return undefined;
+ },
+ set() {}
+});
+
export * as address from './address';
export * as core from './bitcoin-core';
export * from './constants';
@@ -8,3 +15,9 @@ export * as txHelpers from './tx-helpers';
export * from './types';
export * as utils from './utils';
export * as wallet from './wallet';
+
+// Export with types.
+export * from './keyring/interfaces/SimpleKeyringOptions';
+export * from './keyring/hd-keyring';
+export * from './keyring/keystone-keyring';
+export * from './keyring/simple-keyring';
diff --git a/src/keyring/hd-keyring.ts b/src/keyring/hd-keyring.ts
index db7bb40..5fc0883 100644
--- a/src/keyring/hd-keyring.ts
+++ b/src/keyring/hd-keyring.ts
@@ -1,247 +1,241 @@
import * as bip39 from 'bip39';
import bitcore from 'bitcore-lib';
-import * as hdkey from 'hdkey';
-import { ECPair, ECPairInterface, bitcoin } from '../bitcoin-core';
-import { SimpleKeyring } from './simple-keyring';
+import hdkey from 'hdkey';
+import { ECPair, ECPairInterface } from '../bitcoin-core';
+import { DeserializeOption, IKeyringBase } from './interfaces/SimpleKeyringOptions';
+import { networks } from 'bitcoinjs-lib';
const hdPathString = "m/44'/0'/0'/0";
const type = 'HD Key Tree';
-interface DeserializeOption {
- hdPath?: string;
- mnemonic?: string;
- xpriv?: string;
- activeIndexes?: number[];
- passphrase?: string;
-}
+export class HdKeyring extends IKeyringBase {
+ static type = type;
+
+ type = type;
+ mnemonic: string = null;
+ xpriv: string = null;
+ passphrase: string;
+
+ hdPath = hdPathString;
+ root: bitcore.HDPrivateKey = null;
+ hdWallet?: any;
+ wallets: ECPairInterface[] = [];
+ activeIndexes: number[] = [];
+ page = 0;
+ perPage = 5;
-export class HdKeyring extends SimpleKeyring {
- static type = type;
+ private _index2wallet: Record = {};
- type = type;
- mnemonic: string = null;
- xpriv: string = null;
- passphrase: string;
- network: bitcoin.Network = bitcoin.networks.bitcoin;
+ /* PUBLIC METHODS */
+ constructor(opts?: DeserializeOption) {
+ super(opts?.network || networks.bitcoin);
- hdPath = hdPathString;
- root: bitcore.HDPrivateKey = null;
- hdWallet?: any;
- wallets: ECPairInterface[] = [];
- private _index2wallet: Record = {};
- activeIndexes: number[] = [];
- page = 0;
- perPage = 5;
+ if (opts) {
+ this.deserialize(opts);
+ }
+ }
+
+ public serialize(): DeserializeOption {
+ return {
+ mnemonic: this.mnemonic,
+ xpriv: this.xpriv,
+ activeIndexes: this.activeIndexes,
+ hdPath: this.hdPath,
+ passphrase: this.passphrase
+ };
+ }
+
+ public deserialize(_opts: DeserializeOption = {}) {
+ if (this.root) {
+ throw new Error('Btc-Hd-Keyring: Secret recovery phrase already provided');
+ }
+ let opts = _opts as DeserializeOption;
+ this.wallets = [];
+ this.mnemonic = null;
+ this.xpriv = null;
+ this.root = null;
+ this.hdPath = opts.hdPath || hdPathString;
+ if (opts.passphrase) {
+ this.passphrase = opts.passphrase;
+ }
+
+ if (opts.mnemonic) {
+ this.initFromMnemonic(opts.mnemonic);
+ } else if (opts.xpriv) {
+ this.initFromXpriv(opts.xpriv);
+ }
- /* PUBLIC METHODS */
- constructor(opts?: DeserializeOption) {
- super(null);
- if (opts) {
- this.deserialize(opts);
- }
- }
-
- async serialize(): Promise {
- return {
- mnemonic: this.mnemonic,
- xpriv: this.xpriv,
- activeIndexes: this.activeIndexes,
- hdPath: this.hdPath,
- passphrase: this.passphrase
- };
- }
-
- async deserialize(_opts: DeserializeOption = {}) {
- if (this.root) {
- throw new Error('Btc-Hd-Keyring: Secret recovery phrase already provided');
- }
- let opts = _opts as DeserializeOption;
- this.wallets = [];
- this.mnemonic = null;
- this.xpriv = null;
- this.root = null;
- this.hdPath = opts.hdPath || hdPathString;
- if (opts.passphrase) {
- this.passphrase = opts.passphrase;
+ if (opts.activeIndexes) {
+ this.activeAccounts(opts.activeIndexes);
+ }
}
- if (opts.mnemonic) {
- this.initFromMnemonic(opts.mnemonic);
- } else if (opts.xpriv) {
- this.initFromXpriv(opts.xpriv);
- }
-
- if (opts.activeIndexes) {
- this.activeAccounts(opts.activeIndexes);
- }
- }
+ public initFromXpriv(xpriv: string) {
+ if (this.root) {
+ throw new Error('Btc-Hd-Keyring: Secret recovery phrase already provided');
+ }
- initFromXpriv(xpriv: string) {
- if (this.root) {
- throw new Error('Btc-Hd-Keyring: Secret recovery phrase already provided');
+ this.xpriv = xpriv;
+ this._index2wallet = {};
+
+ // @ts-ignore
+ this.hdWallet = hdkey.fromJSON({ xpriv });
+ this.root = this.hdWallet;
}
- this.xpriv = xpriv;
- this._index2wallet = {};
-
- this.hdWallet = hdkey.fromJSON({ xpriv });
- this.root = this.hdWallet;
- }
-
- initFromMnemonic(mnemonic: string) {
- if (this.root) {
- throw new Error('Btc-Hd-Keyring: Secret recovery phrase already provided');
- }
-
- this.mnemonic = mnemonic;
- this._index2wallet = {};
-
- const seed = bip39.mnemonicToSeedSync(mnemonic, this.passphrase);
- this.hdWallet = hdkey.fromMasterSeed(seed);
- this.root = this.hdWallet.derive(this.hdPath);
- }
+ public initFromMnemonic(mnemonic: string) {
+ if (this.root) {
+ throw new Error('Btc-Hd-Keyring: Secret recovery phrase already provided');
+ }
+
+ this.mnemonic = mnemonic;
+ this._index2wallet = {};
- changeHdPath(hdPath: string) {
- if (!this.mnemonic) {
- throw new Error('Btc-Hd-Keyring: Not support');
+ const seed = bip39.mnemonicToSeedSync(mnemonic, this.passphrase);
+ this.hdWallet = hdkey.fromMasterSeed(seed);
+ this.root = this.hdWallet.derive(this.hdPath);
}
- this.hdPath = hdPath;
+ public changeHdPath(hdPath: string) {
+ if (!this.mnemonic) {
+ throw new Error('Btc-Hd-Keyring: Not support');
+ }
- this.root = this.hdWallet.derive(this.hdPath);
-
- const indexes = this.activeIndexes;
- this._index2wallet = {};
- this.activeIndexes = [];
- this.wallets = [];
- this.activeAccounts(indexes);
- }
+ this.hdPath = hdPath;
- getAccountByHdPath(hdPath: string, index: number) {
- if (!this.mnemonic) {
- throw new Error('Btc-Hd-Keyring: Not support');
- }
- const root = this.hdWallet.derive(hdPath);
- const child = root.deriveChild(index);
- const ecpair = ECPair.fromPrivateKey(child.privateKey, {
- network: this.network
- });
- const address = ecpair.publicKey.toString('hex');
- return address;
- }
+ this.root = this.hdWallet.derive(this.hdPath);
- addAccounts(numberOfAccounts = 1) {
- let count = numberOfAccounts;
- let currentIdx = 0;
- const newWallets: ECPairInterface[] = [];
+ const indexes = this.activeIndexes;
+ this._index2wallet = {};
+ this.activeIndexes = [];
+ this.wallets = [];
+ this.activeAccounts(indexes);
+ }
- while (count) {
- const [, wallet] = this._addressFromIndex(currentIdx);
- if (this.wallets.includes(wallet)) {
- currentIdx++;
- } else {
- this.wallets.push(wallet);
- newWallets.push(wallet);
- this.activeIndexes.push(currentIdx);
- count--;
- }
+ public getAccountByHdPath(hdPath: string, index: number) {
+ if (!this.mnemonic) {
+ throw new Error('Btc-Hd-Keyring: Not support');
+ }
+ const root = this.hdWallet.derive(hdPath);
+ const child = root.deriveChild(index);
+ const ecpair = ECPair.fromPrivateKey(child.privateKey, {
+ network: this.network
+ });
+ return ecpair.publicKey.toString('hex');
}
- const hexWallets = newWallets.map((w) => {
- return w.publicKey.toString('hex');
- });
+ public addAccounts(numberOfAccounts = 1): string[] {
+ let count = numberOfAccounts;
+ let currentIdx = 0;
+ const newWallets: ECPairInterface[] = [];
+
+ while (count) {
+ const [, wallet] = this._addressFromIndex(currentIdx);
+ if (this.wallets.includes(wallet)) {
+ currentIdx++;
+ } else {
+ this.wallets.push(wallet);
+ newWallets.push(wallet);
+ this.activeIndexes.push(currentIdx);
+ count--;
+ }
+ }
- return Promise.resolve(hexWallets);
- }
+ return newWallets.map((w) => {
+ return w.publicKey.toString('hex');
+ });
+ }
+
+ public activeAccounts(indexes: number[]) {
+ const accounts: string[] = [];
+ for (const index of indexes) {
+ const [address, wallet] = this._addressFromIndex(index);
+ this.wallets.push(wallet);
+ this.activeIndexes.push(index);
- activeAccounts(indexes: number[]) {
- const accounts: string[] = [];
- for (const index of indexes) {
- const [address, wallet] = this._addressFromIndex(index);
- this.wallets.push(wallet);
- this.activeIndexes.push(index);
+ accounts.push(address);
+ }
- accounts.push(address);
+ return accounts;
}
- return accounts;
- }
+ public getFirstPage() {
+ this.page = 0;
+ return this.__getPage(1);
+ }
- getFirstPage() {
- this.page = 0;
- return this.__getPage(1);
- }
+ public getNextPage() {
+ return this.__getPage(1);
+ }
- getNextPage() {
- return this.__getPage(1);
- }
+ public getPreviousPage() {
+ return this.__getPage(-1);
+ }
- getPreviousPage() {
- return this.__getPage(-1);
- }
+ public getAddresses(start: number, end: number) {
+ const from = start;
+ const to = end;
+ const accounts: { address: string; index: number }[] = [];
+ for (let i = from; i < to; i++) {
+ const [address] = this._addressFromIndex(i);
+ accounts.push({
+ address,
+ index: i + 1
+ });
+ }
+ return accounts;
+ }
- getAddresses(start: number, end: number) {
- const from = start;
- const to = end;
- const accounts: { address: string; index: number }[] = [];
- for (let i = from; i < to; i++) {
- const [address] = this._addressFromIndex(i);
- accounts.push({
- address,
- index: i + 1
- });
+ public async __getPage(increment: number) {
+ this.page += increment;
+
+ if (!this.page || this.page <= 0) {
+ this.page = 1;
+ }
+
+ const from = (this.page - 1) * this.perPage;
+ const to = from + this.perPage;
+
+ const accounts: { address: string; index: number }[] = [];
+
+ for (let i = from; i < to; i++) {
+ const [address] = this._addressFromIndex(i);
+ accounts.push({
+ address,
+ index: i + 1
+ });
+ }
+
+ return accounts;
}
- return accounts;
- }
-
- async __getPage(increment: number) {
- this.page += increment;
-
- if (!this.page || this.page <= 0) {
- this.page = 1;
- }
-
- const from = (this.page - 1) * this.perPage;
- const to = from + this.perPage;
-
- const accounts: { address: string; index: number }[] = [];
-
- for (let i = from; i < to; i++) {
- const [address] = this._addressFromIndex(i);
- accounts.push({
- address,
- index: i + 1
- });
- }
-
- return accounts;
- }
-
- async getAccounts() {
- return this.wallets.map((w) => {
- return w.publicKey.toString('hex');
- });
- }
-
- getIndexByAddress(address: string) {
- for (const key in this._index2wallet) {
- if (this._index2wallet[key][0] === address) {
- return Number(key);
- }
- }
- return null;
- }
-
- private _addressFromIndex(i: number): [string, ECPairInterface] {
- if (!this._index2wallet[i]) {
- const child = this.root.deriveChild(i);
- const ecpair = ECPair.fromPrivateKey(child.privateKey, {
- network: this.network
- });
- const address = ecpair.publicKey.toString('hex');
- this._index2wallet[i] = [address, ecpair];
+
+ public getAccounts(): string[] {
+ return this.wallets.map((w) => {
+ return w.publicKey.toString('hex');
+ });
}
- return this._index2wallet[i];
- }
+ public getIndexByAddress(address: string) {
+ for (const key in this._index2wallet) {
+ if (this._index2wallet[key][0] === address) {
+ return Number(key);
+ }
+ }
+ return null;
+ }
+
+ private _addressFromIndex(i: number): [string, ECPairInterface] {
+ if (!this._index2wallet[i]) {
+ const child = this.root.deriveChild(i);
+
+ // @ts-ignore
+ const ecpair = ECPair.fromPrivateKey(child.privateKey || Buffer.from(child.toString(), 'hex'), {
+ network: this.network
+ });
+ const address = ecpair.publicKey.toString('hex');
+ this._index2wallet[i] = [address, ecpair];
+ }
+
+ return this._index2wallet[i];
+ }
}
diff --git a/src/keyring/index.ts b/src/keyring/index.ts
index 67044cd..943b98f 100644
--- a/src/keyring/index.ts
+++ b/src/keyring/index.ts
@@ -1,3 +1,4 @@
export * from './hd-keyring';
export * from './keystone-keyring';
export * from './simple-keyring';
+export * from './interfaces/SimpleKeyringOptions';
diff --git a/src/keyring/interfaces/SimpleKeyringOptions.ts b/src/keyring/interfaces/SimpleKeyringOptions.ts
new file mode 100644
index 0000000..ca470c7
--- /dev/null
+++ b/src/keyring/interfaces/SimpleKeyringOptions.ts
@@ -0,0 +1,127 @@
+import { Network, networks, Psbt } from 'bitcoinjs-lib';
+import { EventEmitter } from 'events';
+import { ECPairInterface } from 'ecpair';
+import { isTaprootInput } from 'bitcoinjs-lib/src/psbt/bip371';
+import { tweakSigner } from '../../utils';
+import { signMessageOfDeterministicECDSA, verifyMessageOfECDSA } from '../../message';
+
+interface BaseKeyringOptions {
+ readonly network?: Network;
+}
+
+export interface SimpleKeyringOptions extends BaseKeyringOptions {
+ readonly privateKeys?: string[];
+}
+
+export interface DeserializeOptionBase extends BaseKeyringOptions {
+ readonly hdPath?: string;
+ readonly activeIndexes?: number[];
+}
+
+export interface DeserializeOption extends DeserializeOptionBase {
+ readonly mnemonic?: string;
+ readonly xpriv?: string;
+ readonly passphrase?: string;
+}
+
+export interface KeystoneKey {
+ readonly path: string;
+ readonly extendedPublicKey: string;
+}
+
+export interface DeserializeOptionKeystone extends DeserializeOptionBase {
+ readonly mfp: string;
+ readonly keys: KeystoneKey[];
+}
+
+export type KeyringOptions = SimpleKeyringOptions | DeserializeOption | DeserializeOptionKeystone;
+
+export abstract class IKeyringBase extends EventEmitter {
+ static type = '';
+ public type = '';
+
+ protected wallets: ECPairInterface[] = [];
+
+ protected constructor(public readonly network: Network = networks.bitcoin) {
+ super();
+ }
+
+ public abstract serialize(): T;
+
+ public abstract addAccounts(numberOfAccounts: number): string[];
+
+ public abstract deserialize(opts?: T): unknown;
+
+ public removeAccount(publicKey: string): void {
+ if (!this.wallets.map((wallet) => wallet.publicKey.toString('hex')).includes(publicKey)) {
+ throw new Error(`PublicKey ${publicKey} not found in this keyring`);
+ }
+
+ this.wallets = this.wallets.filter((wallet) => wallet.publicKey.toString('hex') !== publicKey);
+ }
+
+ public async verifyMessage(publicKey: string, text: string, sig: string): Promise {
+ return verifyMessageOfECDSA(publicKey, text, sig);
+ }
+
+ // Sign any content, but note that the content signed by this method is unreadable, so use it with caution.
+ public signData(publicKey: string, data: string, type: 'ecdsa' | 'schnorr' = 'ecdsa'): string {
+ const keyPair = this._getPrivateKeyFor(publicKey);
+ if (type === 'ecdsa') {
+ return keyPair.sign(Buffer.from(data, 'hex')).toString('hex');
+ } else if (type === 'schnorr') {
+ return keyPair.signSchnorr(Buffer.from(data, 'hex')).toString('hex');
+ } else {
+ throw new Error('Not support type');
+ }
+ }
+
+ public abstract getAccounts(): string[];
+
+ public signMessage(publicKey: string, text: string): string {
+ const keyPair = this._getPrivateKeyFor(publicKey);
+ return signMessageOfDeterministicECDSA(keyPair, text);
+ }
+
+ public exportAccount(publicKey: string) {
+ const wallet = this._getWalletForAccount(publicKey);
+ return wallet.privateKey.toString('hex');
+ }
+
+ public signTransaction(
+ psbt: Psbt,
+ inputs: {
+ index: number;
+ publicKey: string;
+ sighashTypes?: number[];
+ disableTweakSigner?: boolean;
+ }[],
+ opts?: any
+ ): Psbt {
+ inputs.forEach((input) => {
+ const keyPair = this._getPrivateKeyFor(input.publicKey);
+ if (isTaprootInput(psbt.data.inputs[input.index]) && !input.disableTweakSigner) {
+ const signer = tweakSigner(keyPair, opts);
+ psbt.signInput(input.index, signer, input.sighashTypes);
+ } else {
+ psbt.signInput(input.index, keyPair, input.sighashTypes);
+ }
+ });
+ return psbt;
+ }
+
+ private _getWalletForAccount(publicKey: string) {
+ let wallet = this.wallets.find((wallet) => wallet.publicKey.toString('hex') == publicKey);
+ if (!wallet) {
+ throw new Error('Simple Keyring - Unable to find matching publicKey.');
+ }
+ return wallet;
+ }
+
+ private _getPrivateKeyFor(publicKey: string) {
+ if (!publicKey) {
+ throw new Error('Must specify publicKey.');
+ }
+ return this._getWalletForAccount(publicKey);
+ }
+}
diff --git a/src/keyring/keystone-keyring.ts b/src/keyring/keystone-keyring.ts
index 1ce2cc5..337d841 100644
--- a/src/keyring/keystone-keyring.ts
+++ b/src/keyring/keystone-keyring.ts
@@ -1,389 +1,378 @@
import KeystoneSDK, { KeystoneBitcoinSDK, UR } from '@keystonehq/keystone-sdk';
import { uuid } from '@keystonehq/keystone-sdk/dist/utils';
-import { Psbt } from 'bitcoinjs-lib';
+import { networks, Psbt } from 'bitcoinjs-lib';
import bitcore from 'bitcore-lib';
-import { EventEmitter } from 'events';
import { verifyMessageOfECDSA } from '../message';
-
-interface KeystoneKey {
- path: string;
- extendedPublicKey: string;
-}
-
-interface DeserializeOption {
- mfp: string;
- keys: KeystoneKey[];
- hdPath?: string;
- activeIndexes?: number[];
-}
+import { DeserializeOptionKeystone, IKeyringBase, KeystoneKey } from './interfaces/SimpleKeyringOptions';
interface Wallet {
- index: number;
- publicKey: string;
- path: string;
+ index: number;
+ publicKey: string;
+ path: string;
}
const type = 'Keystone';
-export class KeystoneKeyring extends EventEmitter {
- static type = type;
- type = type;
- mfp = '';
- keys: KeystoneKey[] = [];
- hdPath?: string;
- activeIndexes?: number[] = [];
- root: bitcore.HDPublicKey = null;
-
- page = 0;
- perPage = 5;
-
- origin = 'UniSat Wallet';
-
- constructor(opts?: DeserializeOption) {
- super();
- if (opts) {
- this.deserialize(opts);
- }
- }
-
- async initFromUR(type: string, cbor: string) {
- const keystoneSDK = new KeystoneSDK({
- origin: this.origin
- });
- const account = keystoneSDK.parseAccount(new UR(Buffer.from(cbor, 'hex'), type));
- await this.deserialize({
- mfp: account.masterFingerprint,
- keys: account.keys.map((k) => ({
- path: k.path,
- extendedPublicKey: k.extendedPublicKey
- }))
- });
- }
-
- getHardenedPath(hdPath: string) {
- const paths = hdPath.split('/');
- return paths.slice(0, 4).join('/');
- }
-
- getHDPublicKey(hdPath: string) {
- const path = this.getHardenedPath(hdPath);
- const key = this.keys.find((v) => v.path === path);
- if (!key) {
- throw new Error('Invalid path');
- }
- return new bitcore.HDPublicKey(key.extendedPublicKey);
- }
-
- getDefaultHdPath() {
- return "m/44'/0'/0'/0";
- }
-
- initRoot() {
- this.root = this.getHDPublicKey(this.hdPath ?? this.getDefaultHdPath());
- }
-
- async deserialize(opts: DeserializeOption) {
- this.mfp = opts.mfp;
- this.keys = opts.keys;
- this.hdPath = opts.hdPath ?? this.getDefaultHdPath();
- this.activeIndexes = opts.activeIndexes ? [...opts.activeIndexes] : [];
- this.initRoot();
- if (
- opts.hdPath !== null &&
- opts.hdPath !== undefined &&
- opts.hdPath.length >= 13 &&
- opts.hdPath[opts.hdPath.length - 1] === '1'
- ) {
- this.root = this.root.derive(`m/1`);
- }
- }
-
- async serialize(): Promise {
- return {
- mfp: this.mfp,
- keys: this.keys,
- hdPath: this.hdPath,
- activeIndexes: this.activeIndexes
- };
- }
-
- async addAccounts(numberOfAccounts = 1) {
- let count = numberOfAccounts;
- let i = 0;
- const pubkeys = [];
-
- while (count) {
- if (this.activeIndexes.includes(i)) {
- i++;
- } else {
- const w = this.getWalletByIndex(i);
- pubkeys.push(w.publicKey);
- this.activeIndexes.push(i);
- count--;
- }
- }
-
- return Promise.resolve(pubkeys);
- }
-
- async addChangeAddressAccounts(numberOfAccounts = 1) {
- let count = numberOfAccounts;
- let i = 0;
- const pubkeys = [];
-
- while (count) {
- if (this.activeIndexes.includes(i)) {
- i++;
- } else {
- const w = this.getChangeAddressWalletByIndex(i);
- pubkeys.push(w.publicKey);
- this.activeIndexes.push(i);
- count--;
- }
- }
-
- return Promise.resolve(pubkeys);
- }
-
- async getAccounts() {
- if (
- this.hdPath !== null &&
- this.hdPath !== undefined &&
- this.hdPath.length >= 13 &&
- this.hdPath[this.hdPath.length - 1] === '1'
- ) {
- return this.activeIndexes.map((index) => {
- const child = this.root.derive(`m/${index}`);
- return child.publicKey.toString('hex');
- });
- }
- return this.activeIndexes.map((i) => this.getWalletByIndex(i).publicKey);
- }
-
- async getAccounts2() {
- return this.activeIndexes.map((index) => {
- const child = this.root.derive(`m/${index}`);
- return {
- index,
- path: `${this.hdPath}/${index}`,
- publicKey: child.publicKey.toString('hex')
- };
- });
- }
-
- async getAccountsWithBrand() {
- return this.activeIndexes.map((i) => {
- const w = this.getWalletByIndex(i);
- return {
- address: w.publicKey,
- index: i
- };
- });
- }
-
- getWalletByIndex(index: number): Wallet {
- const child = this.root.derive(`m/0/${index}`);
- return {
- index,
- path: `${this.hdPath}/${index}`,
- publicKey: child.publicKey.toString('hex')
- };
- }
-
- getChangeAddressWalletByIndex(index: number): Wallet {
- const child = this.root.derive(`m/1/${index}`);
- return {
- index,
- path: `${this.hdPath}/${index}`,
- publicKey: child.publicKey.toString('hex')
- };
- }
-
- removeAccount(publicKey: string) {
- const index = this.activeIndexes.findIndex((i) => {
- const w = this.getWalletByIndex(i);
- return w.publicKey === publicKey;
- });
- if (index !== -1) {
- this.activeIndexes.splice(index, 1);
- }
- }
-
- // eslint-disable-next-line @typescript-eslint/no-unused-vars
- async exportAccount(_publicKey: string) {
- throw new Error('Not supported');
- }
-
- getFirstPage() {
- this.page = 0;
- return this.getPage(1);
- }
-
- getNextPage() {
- return this.getPage(1);
- }
-
- getPreviousPage() {
- return this.getPage(-1);
- }
-
- getAddresses(start: number, end: number) {
- const from = start;
- const to = end;
- const accounts: { address: string; index: number }[] = [];
- for (let i = from; i < to; i++) {
- const w = this.getWalletByIndex(i);
- accounts.push({
- address: w.publicKey,
- index: i + 1
- });
- }
- return accounts;
- }
-
- async getPage(increment: number) {
- this.page += increment;
-
- if (!this.page || this.page <= 0) {
- this.page = 1;
- }
-
- const from = (this.page - 1) * this.perPage;
- const to = from + this.perPage;
-
- const accounts: { address: string; index: number }[] = [];
-
- for (let i = from; i < to; i++) {
- const w = this.getWalletByIndex(i);
- accounts.push({
- address: w.publicKey,
- index: i + 1
- });
- }
-
- return accounts;
- }
-
- activeAccounts(indexes: number[]) {
- const accounts: string[] = [];
- for (const index of indexes) {
- const w = this.getWalletByIndex(index);
-
- if (!this.activeIndexes.includes(index)) {
- this.activeIndexes.push(index);
- }
-
- accounts.push(w.publicKey);
- }
-
- return accounts;
- }
-
- changeHdPath(hdPath: string) {
- this.hdPath = hdPath;
-
- this.initRoot();
-
- this.activeAccounts(this.activeIndexes);
- }
-
- changeChangeAddressHdPath(hdPath: string) {
- this.hdPath = hdPath;
- this.root = this.getHDPublicKey(this.hdPath ?? this.getDefaultHdPath());
- this.root = this.root.derive(`m/1`);
- this.activeIndexes = [];
- return [];
- }
-
- getAccountByHdPath(hdPath: string, index: number) {
- const root = this.getHDPublicKey(hdPath);
- const child = root.derive(`m/0/${index}`);
- return child.publicKey.toString('hex');
- }
-
- getChangeAddressAccountByHdPath(hdPath: string, index: number) {
- const root = this.getHDPublicKey(hdPath);
- const child = root.derive(`m/1/${index}`);
- return child.publicKey.toString('hex');
- }
-
- async genSignPsbtUr(psbtHex: string) {
- const psbt = Psbt.fromHex(psbtHex);
- const keystoneSDK = new KeystoneSDK({
- origin: this.origin
- });
- const ur = keystoneSDK.btc.generatePSBT(psbt.data.toBuffer());
- return {
- type: ur.type,
- cbor: ur.cbor.toString('hex')
- };
- }
-
- async parseSignPsbtUr(type: string, cbor: string) {
- const keystoneSDK = new KeystoneSDK({
- origin: this.origin
- });
- return keystoneSDK.btc.parsePSBT(new UR(Buffer.from(cbor, 'hex'), type));
- }
-
- async genSignMsgUr(publicKey: string, text: string) {
- const keystoneSDK = new KeystoneSDK({
- origin: this.origin
- });
- let i = undefined;
- if (
- this.hdPath !== null &&
- this.hdPath !== undefined &&
- this.hdPath.length >= 13 &&
- this.hdPath[this.hdPath.length - 1] === '1'
- ) {
- const root = this.getHDPublicKey(this.hdPath);
- i = this.activeIndexes.find((i) => {
- const child = root.derive(`m/1/${i}`);
- if (child.publicKey.toString('hex') === publicKey) {
- return true;
+export class KeystoneKeyring extends IKeyringBase {
+ static type = type;
+ type = type;
+ mfp = '';
+ keys: KeystoneKey[] = [];
+ hdPath?: string;
+ activeIndexes?: number[] = [];
+ root: bitcore.HDPublicKey = null;
+
+ page = 0;
+ perPage = 5;
+
+ origin = 'UniSat Wallet';
+
+ constructor(opts?: DeserializeOptionKeystone) {
+ super(opts?.network || networks.bitcoin);
+
+ if (opts) {
+ this.deserialize(opts);
}
- });
- } else {
- i = this.activeIndexes.find((i) => this.getWalletByIndex(i).publicKey === publicKey);
- }
-
- if (i === undefined) {
- throw new Error('publicKey not found');
- }
- const requestId = uuid.v4();
- const ur = keystoneSDK.btc.generateSignRequest({
- requestId,
- signData: Buffer.from(text).toString('hex'),
- dataType: KeystoneBitcoinSDK.DataType.message,
- accounts: [
- {
- path: `${this.hdPath}/${i}`,
- xfp: this.mfp
+ }
+
+ async initFromUR(type: string, cbor: string) {
+ const keystoneSDK = new KeystoneSDK({
+ origin: this.origin
+ });
+ const account = keystoneSDK.parseAccount(new UR(Buffer.from(cbor, 'hex'), type));
+ this.deserialize({
+ mfp: account.masterFingerprint,
+ keys: account.keys.map((k) => ({
+ path: k.path,
+ extendedPublicKey: k.extendedPublicKey
+ }))
+ });
+ }
+
+ getHardenedPath(hdPath: string) {
+ const paths = hdPath.split('/');
+ return paths.slice(0, 4).join('/');
+ }
+
+ getHDPublicKey(hdPath: string) {
+ const path = this.getHardenedPath(hdPath);
+ const key = this.keys.find((v) => v.path === path);
+ if (!key) {
+ throw new Error('Invalid path');
+ }
+ return new bitcore.HDPublicKey(key.extendedPublicKey);
+ }
+
+ getDefaultHdPath() {
+ return "m/44'/0'/0'/0";
+ }
+
+ initRoot() {
+ this.root = this.getHDPublicKey(this.hdPath ?? this.getDefaultHdPath());
+ }
+
+ deserialize(opts: DeserializeOptionKeystone): void {
+ this.mfp = opts.mfp;
+ this.keys = opts.keys;
+ this.hdPath = opts.hdPath ?? this.getDefaultHdPath();
+ this.activeIndexes = opts.activeIndexes ? [...opts.activeIndexes] : [];
+ this.initRoot();
+ if (
+ opts.hdPath !== null &&
+ opts.hdPath !== undefined &&
+ opts.hdPath.length >= 13 &&
+ opts.hdPath[opts.hdPath.length - 1] === '1'
+ ) {
+ this.root = this.root.derive(`m/1`);
}
- ],
- origin: this.origin
- });
- return {
- requestId,
- type: ur.type,
- cbor: ur.cbor.toString('hex')
- };
- }
-
- async parseSignMsgUr(type: string, cbor: string) {
- const keystoneSDK = new KeystoneSDK({
- origin: this.origin
- });
- return keystoneSDK.btc.parseSignature(new UR(Buffer.from(cbor, 'hex'), type));
- }
-
- // eslint-disable-next-line @typescript-eslint/no-unused-vars
- async signMessage(publicKey: string, text: string) {
- return 'Signing Message with Keystone should use genSignMsgUr and parseSignMsgUr';
- }
-
- async verifyMessage(publicKey: string, text: string, sig: string) {
- return verifyMessageOfECDSA(publicKey, text, sig);
- }
+ }
+
+ serialize(): DeserializeOptionKeystone {
+ return {
+ mfp: this.mfp,
+ keys: this.keys,
+ hdPath: this.hdPath,
+ activeIndexes: this.activeIndexes
+ };
+ }
+
+ addAccounts(numberOfAccounts = 1): string[] {
+ let count = numberOfAccounts;
+ let i = 0;
+ const pubkeys: string[] = [];
+
+ while (count) {
+ if (this.activeIndexes.includes(i)) {
+ i++;
+ } else {
+ const w = this.getWalletByIndex(i);
+ pubkeys.push(w.publicKey);
+ this.activeIndexes.push(i);
+ count--;
+ }
+ }
+
+ return pubkeys;
+ }
+
+ async addChangeAddressAccounts(numberOfAccounts = 1) {
+ let count = numberOfAccounts;
+ let i = 0;
+ const pubkeys = [];
+
+ while (count) {
+ if (this.activeIndexes.includes(i)) {
+ i++;
+ } else {
+ const w = this.getChangeAddressWalletByIndex(i);
+ pubkeys.push(w.publicKey);
+ this.activeIndexes.push(i);
+ count--;
+ }
+ }
+
+ return Promise.resolve(pubkeys);
+ }
+
+ public getAccounts(): string[] {
+ if (
+ this.hdPath !== null &&
+ this.hdPath !== undefined &&
+ this.hdPath.length >= 13 &&
+ this.hdPath[this.hdPath.length - 1] === '1'
+ ) {
+ return this.activeIndexes.map((index) => {
+ const child = this.root.derive(`m/${index}`);
+ return child.publicKey.toString();
+ });
+ }
+ return this.activeIndexes.map((i) => this.getWalletByIndex(i).publicKey);
+ }
+
+ async getAccounts2() {
+ return this.activeIndexes.map((index) => {
+ const child = this.root.derive(`m/${index}`);
+ return {
+ index,
+ path: `${this.hdPath}/${index}`,
+ publicKey: child.publicKey.toString()
+ };
+ });
+ }
+
+ async getAccountsWithBrand() {
+ return this.activeIndexes.map((i) => {
+ const w = this.getWalletByIndex(i);
+ return {
+ address: w.publicKey,
+ index: i
+ };
+ });
+ }
+
+ getWalletByIndex(index: number): Wallet {
+ const child = this.root.derive(`m/0/${index}`);
+ return {
+ index,
+ path: `${this.hdPath}/${index}`,
+ publicKey: child.publicKey.toString()
+ };
+ }
+
+ getChangeAddressWalletByIndex(index: number): Wallet {
+ const child = this.root.derive(`m/1/${index}`);
+ return {
+ index,
+ path: `${this.hdPath}/${index}`,
+ publicKey: child.publicKey.toString()
+ };
+ }
+
+ removeAccount(publicKey: string) {
+ const index = this.activeIndexes.findIndex((i) => {
+ const w = this.getWalletByIndex(i);
+ return w.publicKey === publicKey;
+ });
+ if (index !== -1) {
+ this.activeIndexes.splice(index, 1);
+ }
+ }
+
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
+ public exportAccount(_publicKey: string): string {
+ throw new Error('Not supported');
+ }
+
+ getFirstPage() {
+ this.page = 0;
+ return this.getPage(1);
+ }
+
+ getNextPage() {
+ return this.getPage(1);
+ }
+
+ getPreviousPage() {
+ return this.getPage(-1);
+ }
+
+ getAddresses(start: number, end: number) {
+ const from = start;
+ const to = end;
+ const accounts: { address: string; index: number }[] = [];
+ for (let i = from; i < to; i++) {
+ const w = this.getWalletByIndex(i);
+ accounts.push({
+ address: w.publicKey,
+ index: i + 1
+ });
+ }
+ return accounts;
+ }
+
+ async getPage(increment: number) {
+ this.page += increment;
+
+ if (!this.page || this.page <= 0) {
+ this.page = 1;
+ }
+
+ const from = (this.page - 1) * this.perPage;
+ const to = from + this.perPage;
+
+ const accounts: { address: string; index: number }[] = [];
+
+ for (let i = from; i < to; i++) {
+ const w = this.getWalletByIndex(i);
+ accounts.push({
+ address: w.publicKey,
+ index: i + 1
+ });
+ }
+
+ return accounts;
+ }
+
+ activeAccounts(indexes: number[]) {
+ const accounts: string[] = [];
+ for (const index of indexes) {
+ const w = this.getWalletByIndex(index);
+
+ if (!this.activeIndexes.includes(index)) {
+ this.activeIndexes.push(index);
+ }
+
+ accounts.push(w.publicKey);
+ }
+
+ return accounts;
+ }
+
+ public changeHdPath(hdPath: string): void {
+ this.hdPath = hdPath;
+
+ this.initRoot();
+
+ this.activeAccounts(this.activeIndexes);
+ }
+
+ changeChangeAddressHdPath(hdPath: string) {
+ this.hdPath = hdPath;
+ this.root = this.getHDPublicKey(this.hdPath ?? this.getDefaultHdPath());
+ this.root = this.root.derive(`m/1`);
+ this.activeIndexes = [];
+ return [];
+ }
+
+ getAccountByHdPath(hdPath: string, index: number) {
+ const root = this.getHDPublicKey(hdPath);
+ const child = root.derive(`m/0/${index}`);
+ return child.publicKey.toString();
+ }
+
+ getChangeAddressAccountByHdPath(hdPath: string, index: number) {
+ const root = this.getHDPublicKey(hdPath);
+ const child = root.derive(`m/1/${index}`);
+ return child.publicKey.toString();
+ }
+
+ async genSignPsbtUr(psbtHex: string) {
+ const psbt = Psbt.fromHex(psbtHex);
+ const keystoneSDK = new KeystoneSDK({
+ origin: this.origin
+ });
+ const ur = keystoneSDK.btc.generatePSBT(psbt.data.toBuffer());
+ return {
+ type: ur.type,
+ cbor: ur.cbor.toString('hex')
+ };
+ }
+
+ async parseSignPsbtUr(type: string, cbor: string) {
+ const keystoneSDK = new KeystoneSDK({
+ origin: this.origin
+ });
+ return keystoneSDK.btc.parsePSBT(new UR(Buffer.from(cbor, 'hex'), type));
+ }
+
+ async genSignMsgUr(publicKey: string, text: string) {
+ const keystoneSDK = new KeystoneSDK({
+ origin: this.origin
+ });
+ let i = undefined;
+ if (
+ this.hdPath !== null &&
+ this.hdPath !== undefined &&
+ this.hdPath.length >= 13 &&
+ this.hdPath[this.hdPath.length - 1] === '1'
+ ) {
+ const root = this.getHDPublicKey(this.hdPath);
+ i = this.activeIndexes.find((i) => {
+ const child = root.derive(`m/1/${i}`);
+ if (child.publicKey.toString() === publicKey) {
+ return true;
+ }
+ });
+ } else {
+ i = this.activeIndexes.find((i) => this.getWalletByIndex(i).publicKey === publicKey);
+ }
+
+ if (i === undefined) {
+ throw new Error('publicKey not found');
+ }
+ const requestId = uuid.v4();
+ const ur = keystoneSDK.btc.generateSignRequest({
+ requestId,
+ signData: Buffer.from(text).toString('hex'),
+ dataType: KeystoneBitcoinSDK.DataType.message,
+ accounts: [
+ {
+ path: `${this.hdPath}/${i}`,
+ xfp: this.mfp
+ }
+ ],
+ origin: this.origin
+ });
+ return {
+ requestId,
+ type: ur.type,
+ cbor: ur.cbor.toString('hex')
+ };
+ }
+
+ async parseSignMsgUr(type: string, cbor: string) {
+ const keystoneSDK = new KeystoneSDK({
+ origin: this.origin
+ });
+ return keystoneSDK.btc.parseSignature(new UR(Buffer.from(cbor, 'hex'), type));
+ }
+
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
+ public signMessage(publicKey: string, text: string): string {
+ return 'Signing Message with Keystone should use genSignMsgUr and parseSignMsgUr';
+ }
+
+ public async verifyMessage(publicKey: string, text: string, sig: string): Promise {
+ return verifyMessageOfECDSA(publicKey, text, sig);
+ }
}
diff --git a/src/keyring/simple-keyring.ts b/src/keyring/simple-keyring.ts
index 21c99c4..00cc8e8 100644
--- a/src/keyring/simple-keyring.ts
+++ b/src/keyring/simple-keyring.ts
@@ -1,140 +1,69 @@
-import { isTaprootInput } from 'bitcoinjs-lib/src/psbt/bip371';
import { decode } from 'bs58check';
-import { EventEmitter } from 'events';
-import { ECPair, ECPairInterface, bitcoin } from '../bitcoin-core';
-import { signMessageOfDeterministicECDSA, verifyMessageOfECDSA } from '../message';
-import { tweakSigner } from '../utils';
+import { ECPair, ECPairInterface } from '../bitcoin-core';
+import { IKeyringBase, SimpleKeyringOptions } from './interfaces/SimpleKeyringOptions';
+import { networks } from 'bitcoinjs-lib';
const type = 'Simple Key Pair';
-export class SimpleKeyring extends EventEmitter {
- static type = type;
- type = type;
- network: bitcoin.Network = bitcoin.networks.bitcoin;
- wallets: ECPairInterface[] = [];
- constructor(opts?: any) {
- super();
- if (opts) {
- this.deserialize(opts);
- }
- }
-
- async serialize(): Promise {
- return this.wallets.map((wallet) => wallet.privateKey.toString('hex'));
- }
-
- async deserialize(opts: any) {
- const privateKeys = opts as string[];
+export class SimpleKeyring extends IKeyringBase {
+ static type = type;
+ type = type;
- this.wallets = privateKeys.map((key) => {
- let buf: Buffer;
- if (key.length === 64) {
- // privateKey
- buf = Buffer.from(key, 'hex');
- } else {
- // base58
- buf = decode(key).slice(1, 33);
- }
+ constructor(opts?: SimpleKeyringOptions) {
+ super(opts?.network || networks.bitcoin);
- return ECPair.fromPrivateKey(buf);
- });
- }
-
- async addAccounts(n = 1) {
- const newWallets: ECPairInterface[] = [];
- for (let i = 0; i < n; i++) {
- newWallets.push(ECPair.makeRandom());
+ if (opts && opts.privateKeys) {
+ this.deserialize(opts as SimpleKeyringOptions);
+ }
}
- this.wallets = this.wallets.concat(newWallets);
- const hexWallets = newWallets.map(({ publicKey }) => publicKey.toString('hex'));
- return hexWallets;
- }
-
- async getAccounts() {
- return this.wallets.map(({ publicKey }) => publicKey.toString('hex'));
- }
- async signTransaction(
- psbt: bitcoin.Psbt,
- inputs: {
- index: number;
- publicKey: string;
- sighashTypes?: number[];
- disableTweakSigner?: boolean;
- }[],
- opts?: any
- ) {
- inputs.forEach((input) => {
- const keyPair = this._getPrivateKeyFor(input.publicKey);
- if (isTaprootInput(psbt.data.inputs[input.index]) && !input.disableTweakSigner) {
- const signer = tweakSigner(keyPair, opts);
- psbt.signInput(input.index, signer, input.sighashTypes);
- } else {
- const signer = keyPair;
- psbt.signInput(input.index, signer, input.sighashTypes);
- }
- });
- return psbt;
- }
-
- async signMessage(publicKey: string, text: string) {
- const keyPair = this._getPrivateKeyFor(publicKey);
- return signMessageOfDeterministicECDSA(keyPair, text);
- }
-
- async verifyMessage(publicKey: string, text: string, sig: string) {
- return verifyMessageOfECDSA(publicKey, text, sig);
- }
-
- // Sign any content, but note that the content signed by this method is unreadable, so use it with caution.
- async signData(publicKey: string, data: string, type: 'ecdsa' | 'schnorr' = 'ecdsa') {
- const keyPair = this._getPrivateKeyFor(publicKey);
- if (type === 'ecdsa') {
- return keyPair.sign(Buffer.from(data, 'hex')).toString('hex');
- } else if (type === 'schnorr') {
- return keyPair.signSchnorr(Buffer.from(data, 'hex')).toString('hex');
- } else {
- throw new Error('Not support type');
+ public serialize(): SimpleKeyringOptions {
+ return {
+ privateKeys: this.wallets.map((wallet) => wallet.privateKey.toString('hex')),
+ network: this.network
+ };
}
- }
- private _getPrivateKeyFor(publicKey: string) {
- if (!publicKey) {
- throw new Error('Must specify publicKey.');
+ public deserialize(opts: SimpleKeyringOptions): void {
+ if (Array.isArray(opts)) {
+ opts = { privateKeys: opts }; // compatibility
+ }
+
+ this.wallets = opts.privateKeys.map((key) => {
+ let buf: Buffer;
+ if (key.length === 64) {
+ // privateKey
+ buf = Buffer.from(key, 'hex');
+ } else {
+ // base58
+ buf = Buffer.from(decode(key).slice(1, 33));
+ }
+
+ return ECPair.fromPrivateKey(buf);
+ });
}
- const wallet = this._getWalletForAccount(publicKey);
- return wallet;
- }
- async exportAccount(publicKey: string) {
- const wallet = this._getWalletForAccount(publicKey);
- return wallet.privateKey.toString('hex');
- }
-
- removeAccount(publicKey: string) {
- if (!this.wallets.map((wallet) => wallet.publicKey.toString('hex')).includes(publicKey)) {
- throw new Error(`PublicKey ${publicKey} not found in this keyring`);
+ public addAccounts(n = 1): string[] {
+ const newWallets: ECPairInterface[] = [];
+ for (let i = 0; i < n; i++) {
+ newWallets.push(ECPair.makeRandom());
+ }
+ this.wallets = this.wallets.concat(newWallets);
+ return newWallets.map(({ publicKey }) => publicKey.toString('hex'));
}
- this.wallets = this.wallets.filter((wallet) => wallet.publicKey.toString('hex') !== publicKey);
- }
-
- private _getWalletForAccount(publicKey: string) {
- let wallet = this.wallets.find((wallet) => wallet.publicKey.toString('hex') == publicKey);
- if (!wallet) {
- throw new Error('Simple Keyring - Unable to find matching publicKey.');
+ public getAccounts(): string[] {
+ return this.wallets.map(({ publicKey }) => publicKey.toString('hex'));
}
- return wallet;
- }
}
export function verifySignData(publicKey: string, hash: string, type: 'ecdsa' | 'schnorr', signature: string) {
- const keyPair = ECPair.fromPublicKey(Buffer.from(publicKey, 'hex'));
- if (type === 'ecdsa') {
- return keyPair.verify(Buffer.from(hash, 'hex'), Buffer.from(signature, 'hex'));
- } else if (type === 'schnorr') {
- return keyPair.verifySchnorr(Buffer.from(hash, 'hex'), Buffer.from(signature, 'hex'));
- } else {
- throw new Error('Not support type');
- }
+ const keyPair = ECPair.fromPublicKey(Buffer.from(publicKey, 'hex'));
+ if (type === 'ecdsa') {
+ return keyPair.verify(Buffer.from(hash, 'hex'), Buffer.from(signature, 'hex'));
+ } else if (type === 'schnorr') {
+ return keyPair.verifySchnorr(Buffer.from(hash, 'hex'), Buffer.from(signature, 'hex'));
+ } else {
+ throw new Error('Not support type');
+ }
}
diff --git a/src/message/bip322-simple.ts b/src/message/bip322-simple.ts
index ba44532..a0cb722 100644
--- a/src/message/bip322-simple.ts
+++ b/src/message/bip322-simple.ts
@@ -1,197 +1,198 @@
import { encode } from 'varuint-bitcoin';
import { addressToScriptPk, getAddressType } from '../address';
-import { bitcoin } from '../bitcoin-core';
import { NetworkType, toPsbtNetwork } from '../network';
import { AddressType } from '../types';
import { schnorrValidator, validator } from '../utils';
import { AbstractWallet } from '../wallet';
+import * as bitcoin from 'bitcoinjs-lib';
+
function bip0322_hash(message: string) {
- const { sha256 } = bitcoin.crypto;
- const tag = 'BIP0322-signed-message';
- const tagHash = sha256(Buffer.from(tag));
- const result = sha256(Buffer.concat([tagHash, tagHash, Buffer.from(message)]));
- return result.toString('hex');
+ const { sha256 } = bitcoin.crypto;
+ const tag = 'BIP0322-signed-message';
+ const tagHash = sha256(Buffer.from(tag));
+ const result = sha256(Buffer.concat([tagHash, tagHash, Buffer.from(message)]));
+ return result.toString('hex');
}
export function genPsbtOfBIP322Simple({
- message,
- address,
- networkType
+ message,
+ address,
+ networkType
}: {
- message: string;
- address: string;
- networkType: NetworkType;
+ message: string;
+ address: string;
+ networkType: NetworkType;
}) {
- const outputScript = addressToScriptPk(address, networkType);
- const addressType = getAddressType(address, networkType);
- const supportedTypes = [AddressType.P2WPKH, AddressType.P2TR, AddressType.M44_P2WPKH, AddressType.M44_P2TR];
- if (supportedTypes.includes(addressType) == false) {
- throw new Error('Not support address type to sign');
- }
-
- const prevoutHash = Buffer.from('0000000000000000000000000000000000000000000000000000000000000000', 'hex');
- const prevoutIndex = 0xffffffff;
- const sequence = 0;
- const scriptSig = Buffer.concat([Buffer.from('0020', 'hex'), Buffer.from(bip0322_hash(message), 'hex')]);
-
- const txToSpend = new bitcoin.Transaction();
- txToSpend.version = 0;
- txToSpend.addInput(prevoutHash, prevoutIndex, sequence, scriptSig);
- txToSpend.addOutput(outputScript, 0);
-
- const psbtToSign = new bitcoin.Psbt();
- psbtToSign.setVersion(0);
- psbtToSign.addInput({
- hash: txToSpend.getHash(),
- index: 0,
- sequence: 0,
- witnessUtxo: {
- script: outputScript,
- value: 0
+ const outputScript = addressToScriptPk(address, networkType);
+ const addressType = getAddressType(address, networkType);
+ const supportedTypes = [AddressType.P2WPKH, AddressType.P2TR, AddressType.M44_P2WPKH, AddressType.M44_P2TR];
+ if (supportedTypes.includes(addressType) == false) {
+ throw new Error('Not support address type to sign');
}
- });
- psbtToSign.addOutput({ script: Buffer.from('6a', 'hex'), value: 0 });
- return psbtToSign;
+ const prevoutHash = Buffer.from('0000000000000000000000000000000000000000000000000000000000000000', 'hex');
+ const prevoutIndex = 0xffffffff;
+ const sequence = 0;
+ const scriptSig = Buffer.concat([Buffer.from('0020', 'hex'), Buffer.from(bip0322_hash(message), 'hex')]);
+
+ const txToSpend = new bitcoin.Transaction();
+ txToSpend.version = 0;
+ txToSpend.addInput(prevoutHash, prevoutIndex, sequence, scriptSig);
+ txToSpend.addOutput(outputScript, 0);
+
+ const psbtToSign = new bitcoin.Psbt();
+ psbtToSign.setVersion(0);
+ psbtToSign.addInput({
+ hash: txToSpend.getHash(),
+ index: 0,
+ sequence: 0,
+ witnessUtxo: {
+ script: outputScript,
+ value: 0
+ }
+ });
+ psbtToSign.addOutput({ script: Buffer.from('6a', 'hex'), value: 0 });
+
+ return psbtToSign;
}
export function getSignatureFromPsbtOfBIP322Simple(psbt: bitcoin.Psbt) {
- const txToSign = psbt.extractTransaction();
+ const txToSign = psbt.extractTransaction();
- function encodeVarString(b) {
- return Buffer.concat([encode(b.byteLength), b]);
- }
+ function encodeVarString(b) {
+ return Buffer.concat([encode(b.byteLength), b]);
+ }
- const len = encode(txToSign.ins[0].witness.length);
- const result = Buffer.concat([len, ...txToSign.ins[0].witness.map((w) => encodeVarString(w))]);
- const signature = result.toString('base64');
+ const len = encode(txToSign.ins[0].witness.length);
+ const result = Buffer.concat([len, ...txToSign.ins[0].witness.map((w) => encodeVarString(w))]);
+ const signature = result.toString('base64');
- return signature;
+ return signature;
}
/**
* reference: https://github.com/bitcoin/bips/blob/master/bip-0322.mediawiki
*/
export async function signMessageOfBIP322Simple({
- message,
- address,
- networkType,
- wallet
-}: {
- message: string;
- address: string;
- networkType: NetworkType;
- wallet: AbstractWallet;
-}) {
- const psbtToSign = genPsbtOfBIP322Simple({
message,
address,
- networkType
- });
+ networkType,
+ wallet
+}: {
+ message: string;
+ address: string;
+ networkType: NetworkType;
+ wallet: AbstractWallet;
+}) {
+ const psbtToSign = genPsbtOfBIP322Simple({
+ message,
+ address,
+ networkType
+ });
- await wallet.signPsbt(psbtToSign);
+ await wallet.signPsbt(psbtToSign);
- return getSignatureFromPsbtOfBIP322Simple(psbtToSign);
+ return getSignatureFromPsbtOfBIP322Simple(psbtToSign);
}
export function verifyMessageOfBIP322Simple(
- address: string,
- msg: string,
- signature: string,
- networkType: NetworkType = NetworkType.MAINNET
+ address: string,
+ msg: string,
+ signature: string,
+ networkType: NetworkType = NetworkType.MAINNET
) {
- const addressType = getAddressType(address, networkType);
- if (addressType === AddressType.P2WPKH || addressType === AddressType.M44_P2WPKH) {
- return verifySignatureOfBIP322Simple_P2PWPKH(address, msg, signature, networkType);
- } else if (addressType === AddressType.P2TR || addressType === AddressType.M44_P2TR) {
- return verifySignatureOfBIP322Simple_P2TR(address, msg, signature, networkType);
- }
- return false;
+ const addressType = getAddressType(address, networkType);
+ if (addressType === AddressType.P2WPKH || addressType === AddressType.M44_P2WPKH) {
+ return verifySignatureOfBIP322Simple_P2PWPKH(address, msg, signature, networkType);
+ } else if (addressType === AddressType.P2TR || addressType === AddressType.M44_P2TR) {
+ return verifySignatureOfBIP322Simple_P2TR(address, msg, signature, networkType);
+ }
+ return false;
}
function verifySignatureOfBIP322Simple_P2TR(
- address: string,
- msg: string,
- sign: string,
- networkType: NetworkType = NetworkType.MAINNET
+ address: string,
+ msg: string,
+ sign: string,
+ networkType: NetworkType = NetworkType.MAINNET
) {
- const network = toPsbtNetwork(networkType);
- const outputScript = bitcoin.address.toOutputScript(address, network);
- const prevoutHash = Buffer.from('0000000000000000000000000000000000000000000000000000000000000000', 'hex');
- const prevoutIndex = 0xffffffff;
- const sequence = 0;
- const scriptSig = Buffer.concat([Buffer.from('0020', 'hex'), Buffer.from(bip0322_hash(msg), 'hex')]);
-
- const txToSpend = new bitcoin.Transaction();
- txToSpend.version = 0;
- txToSpend.addInput(prevoutHash, prevoutIndex, sequence, scriptSig);
- txToSpend.addOutput(outputScript, 0);
-
- const data = Buffer.from(sign, 'base64');
- const _res = bitcoin.script.decompile(data.slice(1));
- const signature = _res[0] as Buffer;
- const pubkey = Buffer.from('02' + outputScript.subarray(2).toString('hex'), 'hex');
-
- const psbtToSign = new bitcoin.Psbt();
- psbtToSign.setVersion(0);
- psbtToSign.addInput({
- hash: txToSpend.getHash(),
- index: 0,
- sequence: 0,
- witnessUtxo: {
- script: outputScript,
- value: 0
- }
- });
- psbtToSign.addOutput({ script: Buffer.from('6a', 'hex'), value: 0 });
- const tapKeyHash = (psbtToSign as any).__CACHE.__TX.hashForWitnessV1(0, [outputScript], [0], 0);
- const valid = schnorrValidator(pubkey, tapKeyHash, signature);
- return valid;
+ const network = toPsbtNetwork(networkType);
+ const outputScript = bitcoin.address.toOutputScript(address, network);
+ const prevoutHash = Buffer.from('0000000000000000000000000000000000000000000000000000000000000000', 'hex');
+ const prevoutIndex = 0xffffffff;
+ const sequence = 0;
+ const scriptSig = Buffer.concat([Buffer.from('0020', 'hex'), Buffer.from(bip0322_hash(msg), 'hex')]);
+
+ const txToSpend = new bitcoin.Transaction();
+ txToSpend.version = 0;
+ txToSpend.addInput(prevoutHash, prevoutIndex, sequence, scriptSig);
+ txToSpend.addOutput(outputScript, 0);
+
+ const data = Buffer.from(sign, 'base64');
+ const _res = bitcoin.script.decompile(data.slice(1));
+ const signature = _res[0] as Buffer;
+ const pubkey = Buffer.from('02' + outputScript.subarray(2).toString('hex'), 'hex');
+
+ const psbtToSign = new bitcoin.Psbt();
+ psbtToSign.setVersion(0);
+ psbtToSign.addInput({
+ hash: txToSpend.getHash(),
+ index: 0,
+ sequence: 0,
+ witnessUtxo: {
+ script: outputScript,
+ value: 0
+ }
+ });
+ psbtToSign.addOutput({ script: Buffer.from('6a', 'hex'), value: 0 });
+ const tapKeyHash = (psbtToSign as any).__CACHE.__TX.hashForWitnessV1(0, [outputScript], [0], 0);
+ const valid = schnorrValidator(pubkey, tapKeyHash, signature);
+ return valid;
}
function verifySignatureOfBIP322Simple_P2PWPKH(
- address: string,
- msg: string,
- sign: string,
- networkType: NetworkType = NetworkType.MAINNET
+ address: string,
+ msg: string,
+ sign: string,
+ networkType: NetworkType = NetworkType.MAINNET
) {
- const network = toPsbtNetwork(networkType);
- const outputScript = bitcoin.address.toOutputScript(address, network);
-
- const prevoutHash = Buffer.from('0000000000000000000000000000000000000000000000000000000000000000', 'hex');
- const prevoutIndex = 0xffffffff;
- const sequence = 0;
- const scriptSig = Buffer.concat([Buffer.from('0020', 'hex'), Buffer.from(bip0322_hash(msg), 'hex')]);
-
- const txToSpend = new bitcoin.Transaction();
- txToSpend.version = 0;
- txToSpend.addInput(prevoutHash, prevoutIndex, sequence, scriptSig);
- txToSpend.addOutput(outputScript, 0);
-
- const data = Buffer.from(sign, 'base64');
- const _res = bitcoin.script.decompile(data.slice(1));
-
- const psbtToSign = new bitcoin.Psbt();
- psbtToSign.setVersion(0);
- psbtToSign.addInput({
- hash: txToSpend.getHash(),
- index: 0,
- sequence: 0,
- witnessUtxo: {
- script: outputScript,
- value: 0
- }
- });
- psbtToSign.addOutput({ script: Buffer.from('6a', 'hex'), value: 0 });
-
- psbtToSign.updateInput(0, {
- partialSig: [
- {
- pubkey: _res[1] as any,
- signature: _res[0] as any
- }
- ]
- });
- const valid = psbtToSign.validateSignaturesOfAllInputs(validator);
- return valid;
+ const network = toPsbtNetwork(networkType);
+ const outputScript = bitcoin.address.toOutputScript(address, network);
+
+ const prevoutHash = Buffer.from('0000000000000000000000000000000000000000000000000000000000000000', 'hex');
+ const prevoutIndex = 0xffffffff;
+ const sequence = 0;
+ const scriptSig = Buffer.concat([Buffer.from('0020', 'hex'), Buffer.from(bip0322_hash(msg), 'hex')]);
+
+ const txToSpend = new bitcoin.Transaction();
+ txToSpend.version = 0;
+ txToSpend.addInput(prevoutHash, prevoutIndex, sequence, scriptSig);
+ txToSpend.addOutput(outputScript, 0);
+
+ const data = Buffer.from(sign, 'base64');
+ const _res = bitcoin.script.decompile(data.slice(1));
+
+ const psbtToSign = new bitcoin.Psbt();
+ psbtToSign.setVersion(0);
+ psbtToSign.addInput({
+ hash: txToSpend.getHash(),
+ index: 0,
+ sequence: 0,
+ witnessUtxo: {
+ script: outputScript,
+ value: 0
+ }
+ });
+ psbtToSign.addOutput({ script: Buffer.from('6a', 'hex'), value: 0 });
+
+ psbtToSign.updateInput(0, {
+ partialSig: [
+ {
+ pubkey: _res[1] as any,
+ signature: _res[0] as any
+ }
+ ]
+ });
+ const valid = psbtToSign.validateSignaturesOfAllInputs(validator);
+ return valid;
}
diff --git a/src/message/ecdsa.ts b/src/message/ecdsa.ts
index f909328..f14c797 100644
--- a/src/message/ecdsa.ts
+++ b/src/message/ecdsa.ts
@@ -2,30 +2,32 @@ import bitcore from 'bitcore-lib';
import { ECPairInterface } from 'ecpair';
export function signMessageOfECDSA(privateKey: ECPairInterface, text: string) {
- const keyPair = privateKey;
- const message = new bitcore.Message(text);
- return message.sign(new bitcore.PrivateKey(keyPair.privateKey));
+ const keyPair = privateKey;
+ const message = new bitcore.Message(text);
+ // @ts-ignore
+ return message.sign(new bitcore.PrivateKey(keyPair.privateKey));
}
export function verifyMessageOfECDSA(publicKey: string, text: string, sig: string) {
- const message = new bitcore.Message(text);
+ const message = new bitcore.Message(text);
+ // @ts-ignore
+ const signature = bitcore.crypto.Signature.fromCompact(Buffer.from(sig, 'base64'));
+ const hash = message.magicHash();
- const signature = bitcore.crypto.Signature.fromCompact(Buffer.from(sig, 'base64'));
- const hash = message.magicHash();
+ // recover the public key
+ // @ts-ignore
+ const ecdsa = new bitcore.crypto.ECDSA();
+ ecdsa.hashbuf = hash;
+ ecdsa.sig = signature;
- // recover the public key
- const ecdsa = new bitcore.crypto.ECDSA();
- ecdsa.hashbuf = hash;
- ecdsa.sig = signature;
+ const pubkeyInSig = ecdsa.toPublicKey();
- const pubkeyInSig = ecdsa.toPublicKey();
+ const pubkeyInSigString = new bitcore.PublicKey(
+ Object.assign({}, pubkeyInSig.toObject(), { compressed: true })
+ ).toString();
+ if (pubkeyInSigString != publicKey) {
+ return false;
+ }
- const pubkeyInSigString = new bitcore.PublicKey(
- Object.assign({}, pubkeyInSig.toObject(), { compressed: true })
- ).toString();
- if (pubkeyInSigString != publicKey) {
- return false;
- }
-
- return bitcore.crypto.ECDSA.verify(hash, signature, pubkeyInSig);
+ return bitcore.crypto.ECDSA.verify(hash, signature, pubkeyInSig);
}
diff --git a/src/wallet/estimate-wallet.ts b/src/wallet/estimate-wallet.ts
index 2fd971a..d354002 100644
--- a/src/wallet/estimate-wallet.ts
+++ b/src/wallet/estimate-wallet.ts
@@ -1,5 +1,5 @@
import { publicKeyToAddress, scriptPkToAddress } from '../address';
-import { ECPair, bitcoin } from '../bitcoin-core';
+import { bitcoin, ECPair } from '../bitcoin-core';
import { SimpleKeyring } from '../keyring';
import { signMessageOfBIP322Simple } from '../message';
import { NetworkType, toPsbtNetwork } from '../network';
@@ -11,163 +11,170 @@ import { AbstractWallet } from './abstract-wallet';
* EstimateWallet is a wallet that can be used to estimate the size of a transaction.
*/
export class EstimateWallet implements AbstractWallet {
- keyring: SimpleKeyring;
- address: string;
- pubkey: string;
- network: bitcoin.Network;
- networkType: NetworkType;
- addressType: AddressType;
- constructor(
- wif: string,
- networkType: NetworkType = NetworkType.MAINNET,
- addressType: AddressType = AddressType.P2WPKH
- ) {
- const network = toPsbtNetwork(networkType);
- const keyPair = ECPair.fromWIF(wif, network);
- this.keyring = new SimpleKeyring([keyPair.privateKey.toString('hex')]);
- this.keyring.addAccounts(1);
- this.pubkey = keyPair.publicKey.toString('hex');
- this.address = publicKeyToAddress(this.pubkey, addressType, networkType);
- this.network = network;
- this.networkType = networkType;
- this.addressType = addressType;
- }
-
- static fromRandom(addressType: AddressType = AddressType.P2WPKH, networkType: NetworkType = NetworkType.MAINNET) {
- const network = toPsbtNetwork(networkType);
- const ecpair = ECPair.makeRandom({ network });
- const wallet = new EstimateWallet(ecpair.toWIF(), networkType, addressType);
- return wallet;
- }
-
- getNetworkType() {
- return this.networkType;
- }
-
- private async formatOptionsToSignInputs(_psbt: string | bitcoin.Psbt, options?: SignPsbtOptions) {
- const accountAddress = this.address;
- const accountPubkey = await this.getPublicKey();
-
- let toSignInputs: ToSignInput[] = [];
- if (options && options.toSignInputs) {
- // We expect userToSignInputs objects to be similar to ToSignInput interface,
- // but we allow address to be specified in addition to publicKey for convenience.
- toSignInputs = options.toSignInputs.map((input) => {
- const index = Number(input.index);
- if (isNaN(index)) throw new Error('invalid index in toSignInput');
-
- if (!(input as AddressUserToSignInput).address && !(input as PublicKeyUserToSignInput).publicKey) {
- throw new Error('no address or public key in toSignInput');
- }
-
- if ((input as AddressUserToSignInput).address && (input as AddressUserToSignInput).address != accountAddress) {
- throw new Error('invalid address in toSignInput');
- }
+ keyring: SimpleKeyring;
+ address: string;
+ pubkey: string;
+ network: bitcoin.Network;
+ networkType: NetworkType;
+ addressType: AddressType;
+
+ constructor(
+ wif: string,
+ networkType: NetworkType = NetworkType.MAINNET,
+ addressType: AddressType = AddressType.P2WPKH
+ ) {
+ const network = toPsbtNetwork(networkType);
+ const keyPair = ECPair.fromWIF(wif, network);
+ this.keyring = new SimpleKeyring({
+ privateKeys: [keyPair.privateKey.toString('hex')],
+ network: network
+ });
+ this.keyring.addAccounts(1);
+ this.pubkey = keyPair.publicKey.toString('hex');
+ this.address = publicKeyToAddress(this.pubkey, addressType, networkType);
+ this.network = network;
+ this.networkType = networkType;
+ this.addressType = addressType;
+ }
- if (
- (input as PublicKeyUserToSignInput).publicKey &&
- (input as PublicKeyUserToSignInput).publicKey != accountPubkey
- ) {
- throw new Error('invalid public key in toSignInput');
- }
+ static fromRandom(addressType: AddressType = AddressType.P2WPKH, networkType: NetworkType = NetworkType.MAINNET) {
+ const network = toPsbtNetwork(networkType);
+ const ecpair = ECPair.makeRandom({ network });
+ const wallet = new EstimateWallet(ecpair.toWIF(), networkType, addressType);
+ return wallet;
+ }
- const sighashTypes = input.sighashTypes?.map(Number);
- if (sighashTypes?.some(isNaN)) throw new Error('invalid sighash type in toSignInput');
+ getNetworkType() {
+ return this.networkType;
+ }
- return {
- index,
- publicKey: accountPubkey,
- sighashTypes,
- disableTweakSigner: input.disableTweakSigner
+ async signPsbt(psbt: bitcoin.Psbt, opts?: SignPsbtOptions) {
+ const _opts = opts || {
+ autoFinalized: true,
+ toSignInputs: []
};
- });
- } else {
- const networkType = this.getNetworkType();
- const psbtNetwork = toPsbtNetwork(networkType);
-
- const psbt =
- typeof _psbt === 'string'
- ? bitcoin.Psbt.fromHex(_psbt as string, { network: psbtNetwork })
- : (_psbt as bitcoin.Psbt);
- psbt.data.inputs.forEach((v, index) => {
- let script: any = null;
- if (v.witnessUtxo) {
- script = v.witnessUtxo.script;
- } else if (v.nonWitnessUtxo) {
- const tx = bitcoin.Transaction.fromBuffer(v.nonWitnessUtxo);
- const output = tx.outs[psbt.txInputs[index].index];
- script = output.script;
+ let _inputs: ToSignInput[] = await this.formatOptionsToSignInputs(psbt, opts);
+
+ if (_inputs.length == 0) {
+ throw new Error('no input to sign');
}
- const isSigned = v.finalScriptSig || v.finalScriptWitness;
- if (script && !isSigned) {
- const address = scriptPkToAddress(script, this.networkType);
- if (accountAddress === address) {
- toSignInputs.push({
- index,
- publicKey: accountPubkey,
- sighashTypes: v.sighashType ? [v.sighashType] : undefined
+
+ psbt.data.inputs.forEach((v) => {
+ const isNotSigned = !(v.finalScriptSig || v.finalScriptWitness);
+ const isP2TR = this.addressType === AddressType.P2TR || this.addressType === AddressType.M44_P2TR;
+ const lostInternalPubkey = !v.tapInternalKey;
+ // Special measures taken for compatibility with certain applications.
+ if (isNotSigned && isP2TR && lostInternalPubkey) {
+ const tapInternalKey = toXOnly(Buffer.from(this.pubkey, 'hex'));
+ const { output } = bitcoin.payments.p2tr({
+ internalPubkey: tapInternalKey,
+ network: toPsbtNetwork(this.networkType)
+ });
+ if (v.witnessUtxo?.script.toString('hex') == output?.toString('hex')) {
+ v.tapInternalKey = tapInternalKey;
+ }
+ }
+ });
+
+ psbt = await this.keyring.signTransaction(psbt, _inputs);
+ if (_opts.autoFinalized) {
+ _inputs.forEach((v) => {
+ // psbt.validateSignaturesOfInput(v.index, validator);
+ psbt.finalizeInput(v.index);
});
- }
}
- });
+ return psbt;
}
- return toSignInputs;
- }
-
- async signPsbt(psbt: bitcoin.Psbt, opts?: SignPsbtOptions) {
- const _opts = opts || {
- autoFinalized: true,
- toSignInputs: []
- };
- let _inputs: ToSignInput[] = await this.formatOptionsToSignInputs(psbt, opts);
-
- if (_inputs.length == 0) {
- throw new Error('no input to sign');
+
+ async getPublicKey(): Promise {
+ const pubkeys = await this.keyring.getAccounts();
+ return pubkeys[0];
}
- psbt.data.inputs.forEach((v) => {
- const isNotSigned = !(v.finalScriptSig || v.finalScriptWitness);
- const isP2TR = this.addressType === AddressType.P2TR || this.addressType === AddressType.M44_P2TR;
- const lostInternalPubkey = !v.tapInternalKey;
- // Special measures taken for compatibility with certain applications.
- if (isNotSigned && isP2TR && lostInternalPubkey) {
- const tapInternalKey = toXOnly(Buffer.from(this.pubkey, 'hex'));
- const { output } = bitcoin.payments.p2tr({
- internalPubkey: tapInternalKey,
- network: toPsbtNetwork(this.networkType)
- });
- if (v.witnessUtxo?.script.toString('hex') == output?.toString('hex')) {
- v.tapInternalKey = tapInternalKey;
+ async signMessage(text: string, type: 'bip322-simple' | 'ecdsa'): Promise {
+ if (type === 'bip322-simple') {
+ return await signMessageOfBIP322Simple({
+ message: text,
+ address: this.address,
+ networkType: this.networkType,
+ wallet: this
+ });
+ } else {
+ const pubkey = await this.getPublicKey();
+ return await this.keyring.signMessage(pubkey, text);
}
- }
- });
-
- psbt = await this.keyring.signTransaction(psbt, _inputs);
- if (_opts.autoFinalized) {
- _inputs.forEach((v) => {
- // psbt.validateSignaturesOfInput(v.index, validator);
- psbt.finalizeInput(v.index);
- });
}
- return psbt;
- }
-
- async getPublicKey(): Promise {
- const pubkeys = await this.keyring.getAccounts();
- return pubkeys[0];
- }
-
- async signMessage(text: string, type: 'bip322-simple' | 'ecdsa'): Promise {
- if (type === 'bip322-simple') {
- return await signMessageOfBIP322Simple({
- message: text,
- address: this.address,
- networkType: this.networkType,
- wallet: this
- });
- } else {
- const pubkey = await this.getPublicKey();
- return await this.keyring.signMessage(pubkey, text);
+
+ private async formatOptionsToSignInputs(_psbt: string | bitcoin.Psbt, options?: SignPsbtOptions) {
+ const accountAddress = this.address;
+ const accountPubkey = await this.getPublicKey();
+
+ let toSignInputs: ToSignInput[] = [];
+ if (options && options.toSignInputs) {
+ // We expect userToSignInputs objects to be similar to ToSignInput interface,
+ // but we allow address to be specified in addition to publicKey for convenience.
+ toSignInputs = options.toSignInputs.map((input) => {
+ const index = Number(input.index);
+ if (isNaN(index)) throw new Error('invalid index in toSignInput');
+
+ if (!(input as AddressUserToSignInput).address && !(input as PublicKeyUserToSignInput).publicKey) {
+ throw new Error('no address or public key in toSignInput');
+ }
+
+ if (
+ (input as AddressUserToSignInput).address &&
+ (input as AddressUserToSignInput).address != accountAddress
+ ) {
+ throw new Error('invalid address in toSignInput');
+ }
+
+ if (
+ (input as PublicKeyUserToSignInput).publicKey &&
+ (input as PublicKeyUserToSignInput).publicKey != accountPubkey
+ ) {
+ throw new Error('invalid public key in toSignInput');
+ }
+
+ const sighashTypes = input.sighashTypes?.map(Number);
+ if (sighashTypes?.some(isNaN)) throw new Error('invalid sighash type in toSignInput');
+
+ return {
+ index,
+ publicKey: accountPubkey,
+ sighashTypes,
+ disableTweakSigner: input.disableTweakSigner
+ };
+ });
+ } else {
+ const networkType = this.getNetworkType();
+ const psbtNetwork = toPsbtNetwork(networkType);
+
+ const psbt =
+ typeof _psbt === 'string'
+ ? bitcoin.Psbt.fromHex(_psbt as string, { network: psbtNetwork })
+ : (_psbt as bitcoin.Psbt);
+ psbt.data.inputs.forEach((v, index) => {
+ let script: any = null;
+ if (v.witnessUtxo) {
+ script = v.witnessUtxo.script;
+ } else if (v.nonWitnessUtxo) {
+ const tx = bitcoin.Transaction.fromBuffer(v.nonWitnessUtxo);
+ const output = tx.outs[psbt.txInputs[index].index];
+ script = output.script;
+ }
+ const isSigned = v.finalScriptSig || v.finalScriptWitness;
+ if (script && !isSigned) {
+ const address = scriptPkToAddress(script, this.networkType);
+ if (accountAddress === address) {
+ toSignInputs.push({
+ index,
+ publicKey: accountPubkey,
+ sighashTypes: v.sighashType ? [v.sighashType] : undefined
+ });
+ }
+ }
+ });
+ }
+ return toSignInputs;
}
- }
}
diff --git a/src/wallet/local-wallet.ts b/src/wallet/local-wallet.ts
index 6dd0a49..8dcedce 100644
--- a/src/wallet/local-wallet.ts
+++ b/src/wallet/local-wallet.ts
@@ -1,5 +1,5 @@
import { publicKeyToAddress, publicKeyToScriptPk, scriptPkToAddress } from '../address';
-import { ECPair, bitcoin } from '../bitcoin-core';
+import { bitcoin, ECPair } from '../bitcoin-core';
import { HdKeyring, SimpleKeyring } from '../keyring';
import { signMessageOfBIP322Simple } from '../message';
import { NetworkType, toPsbtNetwork } from '../network';
@@ -8,192 +8,194 @@ import { toXOnly } from '../utils';
import { AbstractWallet } from './abstract-wallet';
export class LocalWallet implements AbstractWallet {
- keyring: SimpleKeyring;
- address: string;
- pubkey: string;
- network: bitcoin.Network;
- addressType: AddressType;
- networkType: NetworkType;
- scriptPk: string;
- constructor(
- wif: string,
- addressType: AddressType = AddressType.P2WPKH,
- networkType: NetworkType = NetworkType.MAINNET
- ) {
- const network = toPsbtNetwork(networkType);
- const keyPair = ECPair.fromWIF(wif, network);
- this.keyring = new SimpleKeyring([keyPair.privateKey.toString('hex')]);
- this.keyring.addAccounts(1);
- this.pubkey = keyPair.publicKey.toString('hex');
- this.address = publicKeyToAddress(this.pubkey, addressType, networkType);
- this.network = network;
- this.networkType = networkType;
- this.addressType = addressType;
-
- this.scriptPk = publicKeyToScriptPk(this.pubkey, addressType, networkType);
- }
-
- static fromMnemonic(
- addressType: AddressType,
- networkType: NetworkType,
- mnemonic: string,
- passPhrase?: string,
- hdPath?: string
- ) {
- const keyring = new HdKeyring({
- mnemonic,
- hdPath,
- passphrase: passPhrase,
- activeIndexes: [0]
- });
-
- const _wallet = keyring.wallets[0];
- _wallet.network = toPsbtNetwork(networkType);
-
- const wallet = new LocalWallet(keyring.wallets[0].toWIF(), addressType, networkType);
- return wallet;
- }
-
- static fromRandom(addressType: AddressType = AddressType.P2WPKH, networkType: NetworkType = NetworkType.MAINNET) {
- const network = toPsbtNetwork(networkType);
- const ecpair = ECPair.makeRandom({ network });
- const wallet = new LocalWallet(ecpair.toWIF(), addressType, networkType);
- return wallet;
- }
-
- getNetworkType() {
- return this.networkType;
- }
-
- private async formatOptionsToSignInputs(_psbt: string | bitcoin.Psbt, options?: SignPsbtOptions) {
- const accountAddress = this.address;
- const accountPubkey = await this.getPublicKey();
-
- let toSignInputs: ToSignInput[] = [];
- if (options && options.toSignInputs) {
- // We expect userToSignInputs objects to be similar to ToSignInput interface,
- // but we allow address to be specified in addition to publicKey for convenience.
- toSignInputs = options.toSignInputs.map((input) => {
- const index = Number(input.index);
- if (isNaN(index)) throw new Error('invalid index in toSignInput');
-
- if (!(input as AddressUserToSignInput).address && !(input as PublicKeyUserToSignInput).publicKey) {
- throw new Error('no address or public key in toSignInput');
- }
+ keyring: SimpleKeyring;
+ address: string;
+ pubkey: string;
+ network: bitcoin.Network;
+ addressType: AddressType;
+ networkType: NetworkType;
+ scriptPk: string;
+
+ constructor(
+ wif: string,
+ addressType: AddressType = AddressType.P2WPKH,
+ networkType: NetworkType = NetworkType.MAINNET
+ ) {
+ const network = toPsbtNetwork(networkType);
+ const keyPair = ECPair.fromWIF(wif, network);
+ this.keyring = new SimpleKeyring({ privateKeys: [keyPair.privateKey.toString('hex')], network: network });
+ this.keyring.addAccounts(1);
+ this.pubkey = keyPair.publicKey.toString('hex');
+ this.address = publicKeyToAddress(this.pubkey, addressType, networkType);
+ this.network = network;
+ this.networkType = networkType;
+ this.addressType = addressType;
+
+ this.scriptPk = publicKeyToScriptPk(this.pubkey, addressType, networkType);
+ }
- if ((input as AddressUserToSignInput).address && (input as AddressUserToSignInput).address != accountAddress) {
- throw new Error('invalid address in toSignInput');
- }
+ static fromMnemonic(
+ addressType: AddressType,
+ networkType: NetworkType,
+ mnemonic: string,
+ passPhrase?: string,
+ hdPath?: string
+ ) {
+ const keyring = new HdKeyring({
+ mnemonic,
+ hdPath,
+ passphrase: passPhrase,
+ activeIndexes: [0]
+ });
- if (
- (input as PublicKeyUserToSignInput).publicKey &&
- (input as PublicKeyUserToSignInput).publicKey != accountPubkey
- ) {
- throw new Error('invalid public key in toSignInput');
- }
+ const _wallet = keyring.wallets[0];
+ _wallet.network = toPsbtNetwork(networkType);
- const sighashTypes = input.sighashTypes?.map(Number);
- if (sighashTypes?.some(isNaN)) throw new Error('invalid sighash type in toSignInput');
+ return new LocalWallet(keyring.wallets[0].toWIF(), addressType, networkType);
+ }
- return {
- index,
- publicKey: accountPubkey,
- sighashTypes,
- disableTweakSigner: input.disableTweakSigner
+ static fromRandom(addressType: AddressType = AddressType.P2WPKH, networkType: NetworkType = NetworkType.MAINNET) {
+ const network = toPsbtNetwork(networkType);
+ const ecpair = ECPair.makeRandom({ network });
+ return new LocalWallet(ecpair.toWIF(), addressType, networkType);
+ }
+
+ getNetworkType() {
+ return this.networkType;
+ }
+
+ async signPsbt(psbt: bitcoin.Psbt, opts?: SignPsbtOptions) {
+ const _opts = opts || {
+ autoFinalized: true,
+ toSignInputs: []
};
- });
- } else {
- const networkType = this.getNetworkType();
- const psbtNetwork = toPsbtNetwork(networkType);
-
- const psbt =
- typeof _psbt === 'string'
- ? bitcoin.Psbt.fromHex(_psbt as string, { network: psbtNetwork })
- : (_psbt as bitcoin.Psbt);
- psbt.data.inputs.forEach((v, index) => {
- let script: any = null;
- if (v.witnessUtxo) {
- script = v.witnessUtxo.script;
- } else if (v.nonWitnessUtxo) {
- const tx = bitcoin.Transaction.fromBuffer(v.nonWitnessUtxo);
- const output = tx.outs[psbt.txInputs[index].index];
- script = output.script;
+ let _inputs: ToSignInput[] = await this.formatOptionsToSignInputs(psbt, opts);
+
+ if (_inputs.length == 0) {
+ throw new Error('no input to sign');
}
- const isSigned = v.finalScriptSig || v.finalScriptWitness;
- if (script && !isSigned) {
- const address = scriptPkToAddress(script, this.networkType);
- if (accountAddress === address) {
- toSignInputs.push({
- index,
- publicKey: accountPubkey,
- sighashTypes: v.sighashType ? [v.sighashType] : undefined
+
+ psbt.data.inputs.forEach((v) => {
+ const isNotSigned = !(v.finalScriptSig || v.finalScriptWitness);
+ const isP2TR = this.addressType === AddressType.P2TR || this.addressType === AddressType.M44_P2TR;
+ const lostInternalPubkey = !v.tapInternalKey;
+ // Special measures taken for compatibility with certain applications.
+ if (isNotSigned && isP2TR && lostInternalPubkey) {
+ const tapInternalKey = toXOnly(Buffer.from(this.pubkey, 'hex'));
+ const { output } = bitcoin.payments.p2tr({
+ internalPubkey: tapInternalKey,
+ network: toPsbtNetwork(this.networkType)
+ });
+ if (v.witnessUtxo?.script.toString('hex') == output?.toString('hex')) {
+ v.tapInternalKey = tapInternalKey;
+ }
+ }
+ });
+
+ psbt = this.keyring.signTransaction(psbt, _inputs);
+ if (_opts.autoFinalized) {
+ _inputs.forEach((v) => {
+ // psbt.validateSignaturesOfInput(v.index, validator);
+ psbt.finalizeInput(v.index);
});
- }
}
- });
+ return psbt;
}
- return toSignInputs;
- }
-
- async signPsbt(psbt: bitcoin.Psbt, opts?: SignPsbtOptions) {
- const _opts = opts || {
- autoFinalized: true,
- toSignInputs: []
- };
- let _inputs: ToSignInput[] = await this.formatOptionsToSignInputs(psbt, opts);
-
- if (_inputs.length == 0) {
- throw new Error('no input to sign');
+
+ getPublicKey(): string {
+ const pubkeys = this.keyring.getAccounts();
+ return pubkeys[0];
}
- psbt.data.inputs.forEach((v) => {
- const isNotSigned = !(v.finalScriptSig || v.finalScriptWitness);
- const isP2TR = this.addressType === AddressType.P2TR || this.addressType === AddressType.M44_P2TR;
- const lostInternalPubkey = !v.tapInternalKey;
- // Special measures taken for compatibility with certain applications.
- if (isNotSigned && isP2TR && lostInternalPubkey) {
- const tapInternalKey = toXOnly(Buffer.from(this.pubkey, 'hex'));
- const { output } = bitcoin.payments.p2tr({
- internalPubkey: tapInternalKey,
- network: toPsbtNetwork(this.networkType)
- });
- if (v.witnessUtxo?.script.toString('hex') == output?.toString('hex')) {
- v.tapInternalKey = tapInternalKey;
+ async signMessage(text: string, type: 'bip322-simple' | 'ecdsa'): Promise {
+ if (type === 'bip322-simple') {
+ return await signMessageOfBIP322Simple({
+ message: text,
+ address: this.address,
+ networkType: this.networkType,
+ wallet: this
+ });
+ } else {
+ const pubkey = this.getPublicKey();
+ return this.keyring.signMessage(pubkey, text);
}
- }
- });
-
- psbt = await this.keyring.signTransaction(psbt, _inputs);
- if (_opts.autoFinalized) {
- _inputs.forEach((v) => {
- // psbt.validateSignaturesOfInput(v.index, validator);
- psbt.finalizeInput(v.index);
- });
}
- return psbt;
- }
-
- async getPublicKey(): Promise {
- const pubkeys = await this.keyring.getAccounts();
- return pubkeys[0];
- }
-
- async signMessage(text: string, type: 'bip322-simple' | 'ecdsa'): Promise {
- if (type === 'bip322-simple') {
- return await signMessageOfBIP322Simple({
- message: text,
- address: this.address,
- networkType: this.networkType,
- wallet: this
- });
- } else {
- const pubkey = await this.getPublicKey();
- return await this.keyring.signMessage(pubkey, text);
+
+ async signData(data: string, type: 'ecdsa' | 'schnorr' = 'ecdsa') {
+ const pubkey = this.getPublicKey();
+ return this.keyring.signData(pubkey, data, type);
}
- }
- async signData(data: string, type: 'ecdsa' | 'schnorr' = 'ecdsa') {
- const pubkey = await this.getPublicKey();
- return await this.keyring.signData(pubkey, data, type);
- }
+ private async formatOptionsToSignInputs(_psbt: string | bitcoin.Psbt, options?: SignPsbtOptions) {
+ const accountAddress = this.address;
+ const accountPubkey = this.getPublicKey();
+
+ let toSignInputs: ToSignInput[] = [];
+ if (options && options.toSignInputs) {
+ // We expect userToSignInputs objects to be similar to ToSignInput interface,
+ // but we allow address to be specified in addition to publicKey for convenience.
+ toSignInputs = options.toSignInputs.map((input) => {
+ const index = Number(input.index);
+ if (isNaN(index)) throw new Error('invalid index in toSignInput');
+
+ if (!(input as AddressUserToSignInput).address && !(input as PublicKeyUserToSignInput).publicKey) {
+ throw new Error('no address or public key in toSignInput');
+ }
+
+ if (
+ (input as AddressUserToSignInput).address &&
+ (input as AddressUserToSignInput).address != accountAddress
+ ) {
+ throw new Error('invalid address in toSignInput');
+ }
+
+ if (
+ (input as PublicKeyUserToSignInput).publicKey &&
+ (input as PublicKeyUserToSignInput).publicKey != accountPubkey
+ ) {
+ throw new Error('invalid public key in toSignInput');
+ }
+
+ const sighashTypes = input.sighashTypes?.map(Number);
+ if (sighashTypes?.some(isNaN)) throw new Error('invalid sighash type in toSignInput');
+
+ return {
+ index,
+ publicKey: accountPubkey,
+ sighashTypes,
+ disableTweakSigner: input.disableTweakSigner
+ };
+ });
+ } else {
+ const networkType = this.getNetworkType();
+ const psbtNetwork = toPsbtNetwork(networkType);
+
+ const psbt =
+ typeof _psbt === 'string'
+ ? bitcoin.Psbt.fromHex(_psbt as string, { network: psbtNetwork })
+ : (_psbt as bitcoin.Psbt);
+ psbt.data.inputs.forEach((v, index) => {
+ let script: any = null;
+ if (v.witnessUtxo) {
+ script = v.witnessUtxo.script;
+ } else if (v.nonWitnessUtxo) {
+ const tx = bitcoin.Transaction.fromBuffer(v.nonWitnessUtxo);
+ const output = tx.outs[psbt.txInputs[index].index];
+ script = output.script;
+ }
+ const isSigned = v.finalScriptSig || v.finalScriptWitness;
+ if (script && !isSigned) {
+ const address = scriptPkToAddress(script, this.networkType);
+ if (accountAddress === address) {
+ toSignInputs.push({
+ index,
+ publicKey: accountPubkey,
+ sighashTypes: v.sighashType ? [v.sighashType] : undefined
+ });
+ }
+ }
+ });
+ }
+ return toSignInputs;
+ }
}
diff --git a/test/keyring/hd-keyring.test.ts b/test/keyring/hd-keyring.test.ts
index 452b79d..b1b2961 100644
--- a/test/keyring/hd-keyring.test.ts
+++ b/test/keyring/hd-keyring.test.ts
@@ -1,224 +1,225 @@
import { expect } from 'chai';
import { HdKeyring } from '../../src/keyring';
+
const sampleMnemonic = 'finish oppose decorate face calm tragic certain desk hour urge dinosaur mango';
const firstPrivateKey = '69f477943dd1591f0261cabade0839e2ffc0c13d8fa1ce0d69f6c6c251163b34';
const firstAccount = '025d7c14ab260a6932bc5484a0d9791f5cce66b0c6e1e4d7aee1e6bd294459e7d9';
const secondAccount = '0306cd1266c7dfc5522d1f170fa45cca29a7071a5dad848204b676cbd398aa7d30';
describe('bitcoin-hd-keyring', () => {
- describe('constructor', () => {
- it('constructs with a typeof string mnemonic', async () => {
- const keyring = new HdKeyring({
- mnemonic: sampleMnemonic,
- activeIndexes: [0, 1]
- });
- const accounts = await keyring.getAccounts();
- expect(accounts[0]).eq(firstAccount);
- expect(accounts[1]).eq(secondAccount);
- const privateKey = await keyring.exportAccount(accounts[0]);
- expect(privateKey).eq(firstPrivateKey);
- });
- });
-
- describe('re-initialization protection', () => {
- const alreadyProvidedError = 'Btc-Hd-Keyring: Secret recovery phrase already provided';
- it('double generateRandomMnemonic', async () => {
- const keyring = new HdKeyring();
- await keyring.initFromMnemonic(sampleMnemonic);
-
- let error = '';
- try {
- await keyring.initFromMnemonic(sampleMnemonic);
- } catch (e) {
- error = e.message;
- }
- expect(error).eq(alreadyProvidedError);
- });
-
- it('constructor + generateRandomMnemonic', async () => {
- const keyring = new HdKeyring({
- mnemonic: sampleMnemonic,
- activeIndexes: [0, 1]
- });
-
- let error = '';
- try {
- await keyring.initFromMnemonic(sampleMnemonic);
- } catch (e) {
- error = e.message;
- }
- expect(error).eq(alreadyProvidedError);
- });
- });
-
- describe('Keyring.type', () => {
- it('is a class property that returns the type string.', () => {
- const { type } = HdKeyring;
- expect(typeof type).eq('string');
- });
- });
-
- describe('#type', () => {
- it('returns the correct value', () => {
- const keyring = new HdKeyring();
-
- const { type } = keyring;
- const correct = HdKeyring.type;
- expect(type).eq(correct);
- });
- });
-
- describe('#Change hdPath', () => {
- it('pass m/44', async () => {
- const keyring = new HdKeyring({
- mnemonic: sampleMnemonic,
- activeIndexes: [0, 1],
- hdPath: "m/44'/0'/0'/0"
- });
-
- const accounts_m44 = await keyring.getAccounts();
- expect(accounts_m44).deep.equal([
- '025d7c14ab260a6932bc5484a0d9791f5cce66b0c6e1e4d7aee1e6bd294459e7d9',
- '0306cd1266c7dfc5522d1f170fa45cca29a7071a5dad848204b676cbd398aa7d30'
- ]);
- });
-
- it('pass m/84', async () => {
- const keyring = new HdKeyring({
- mnemonic: sampleMnemonic,
- activeIndexes: [0, 1],
- hdPath: "m/84'/0'/0'/0"
- });
-
- const accounts_m84 = await keyring.getAccounts();
- expect(accounts_m84).deep.equal([
- '02d16db9d525d8623e80c04e33c4463450285791124381bc545bb85e5e8925a776',
- '023f0b3115a6c5a51ec62d8cbe6e834e79fe4bf22555e095a163e0e451a6fdc4d5'
- ]);
+ describe('constructor', () => {
+ it('constructs with a typeof string mnemonic', async () => {
+ const keyring = new HdKeyring({
+ mnemonic: sampleMnemonic,
+ activeIndexes: [0, 1]
+ });
+ const accounts = keyring.getAccounts();
+ expect(accounts[0]).eq(firstAccount);
+ expect(accounts[1]).eq(secondAccount);
+ const privateKey = keyring.exportAccount(accounts[0]);
+ expect(privateKey).eq(firstPrivateKey);
+ });
});
- it('change m/44 to m/84', async () => {
- const keyring = new HdKeyring({
- mnemonic: sampleMnemonic,
- activeIndexes: [0, 1],
- hdPath: "m/44'/0'/0'/0"
- });
-
- keyring.changeHdPath("m/84'/0'/0'/0");
- const accounts_m84 = await keyring.getAccounts();
- expect(accounts_m84).deep.equal([
- '02d16db9d525d8623e80c04e33c4463450285791124381bc545bb85e5e8925a776',
- '023f0b3115a6c5a51ec62d8cbe6e834e79fe4bf22555e095a163e0e451a6fdc4d5'
- ]);
+ describe('re-initialization protection', () => {
+ const alreadyProvidedError = 'Btc-Hd-Keyring: Secret recovery phrase already provided';
+ it('double generateRandomMnemonic', async () => {
+ const keyring = new HdKeyring();
+ keyring.initFromMnemonic(sampleMnemonic);
+
+ let error = '';
+ try {
+ keyring.initFromMnemonic(sampleMnemonic);
+ } catch (e) {
+ error = e.message;
+ }
+ expect(error).eq(alreadyProvidedError);
+ });
+
+ it('constructor + generateRandomMnemonic', async () => {
+ const keyring = new HdKeyring({
+ mnemonic: sampleMnemonic,
+ activeIndexes: [0, 1]
+ });
+
+ let error = '';
+ try {
+ keyring.initFromMnemonic(sampleMnemonic);
+ } catch (e) {
+ error = e.message;
+ }
+ expect(error).eq(alreadyProvidedError);
+ });
});
- it('getAccountByHdPath', async () => {
- const keyring = new HdKeyring({
- mnemonic: sampleMnemonic,
- activeIndexes: [0, 1],
- hdPath: "m/44'/0'/0'/0"
- });
-
- const account = keyring.getAccountByHdPath("m/84'/0'/0'/0", 1);
- expect(account).eq('023f0b3115a6c5a51ec62d8cbe6e834e79fe4bf22555e095a163e0e451a6fdc4d5');
- });
- });
-
- describe('more words test', () => {
- it('12 words', async () => {
- const sampleMnemonic = 'glue peanut huge wait vicious depend copper ribbon access boring walk point';
- const firstAccount = '0244ffe4b9f87b7c1e2f8b0d7dee2a91492fedf9c92fc06231764826633b2c8afa';
- const secondAccount = '0243906ea96ce2680826bfd906cdfcbb70cf2764e469518ba000f0aeb76a6b025b';
-
- const keyring = new HdKeyring({
- mnemonic: sampleMnemonic,
- activeIndexes: [0, 1]
- });
-
- const accounts = await keyring.getAccounts();
- expect(accounts[0]).eq(firstAccount);
- expect(accounts[1]).eq(secondAccount);
+ describe('Keyring.type', () => {
+ it('is a class property that returns the type string.', () => {
+ const { type } = HdKeyring;
+ expect(typeof type).eq('string');
+ });
});
- it('15 words', async () => {
- const sampleMnemonic =
- 'gloom prepare pause lazy item valley pear develop ahead crucial fuel seed bone reward shoot';
- const firstAccount = '02c7b966f5ea72f65c3c3e218103d08c3f259b21cc99d846754e2ca766eb1afd85';
- const secondAccount = '02dea555ea75823e76c2b7589bdbc601ef4eb26742be5f096bc31319367873101b';
+ describe('#type', () => {
+ it('returns the correct value', () => {
+ const keyring = new HdKeyring();
- const keyring = new HdKeyring({
- mnemonic: sampleMnemonic,
- activeIndexes: [0, 1]
- });
-
- const accounts = await keyring.getAccounts();
- expect(accounts[0]).eq(firstAccount);
- expect(accounts[1]).eq(secondAccount);
+ const { type } = keyring;
+ const correct = HdKeyring.type;
+ expect(type).eq(correct);
+ });
});
- it('18 words', async () => {
- const sampleMnemonic =
- 'machine chest second galaxy rally design stumble code address general twelve job code acquire dutch debate jealous truly';
- const firstAccount = '02d9bf4d71d15e941fb060f58e74c53995761a381d2e368062687c1ef65bb52a84';
- const secondAccount = '03d1b536f6f18eb1ffea8227987a1a80072a316c3d0bfedc2af01b21ece5b7492e';
-
- const keyring = new HdKeyring({
- mnemonic: sampleMnemonic,
- activeIndexes: [0, 1]
- });
-
- const accounts = await keyring.getAccounts();
- expect(accounts[0]).eq(firstAccount);
- expect(accounts[1]).eq(secondAccount);
+ describe('#Change hdPath', () => {
+ it('pass m/44', async () => {
+ const keyring = new HdKeyring({
+ mnemonic: sampleMnemonic,
+ activeIndexes: [0, 1],
+ hdPath: "m/44'/0'/0'/0"
+ });
+
+ const accounts_m44 = keyring.getAccounts();
+ expect(accounts_m44).deep.equal([
+ '025d7c14ab260a6932bc5484a0d9791f5cce66b0c6e1e4d7aee1e6bd294459e7d9',
+ '0306cd1266c7dfc5522d1f170fa45cca29a7071a5dad848204b676cbd398aa7d30'
+ ]);
+ });
+
+ it('pass m/84', async () => {
+ const keyring = new HdKeyring({
+ mnemonic: sampleMnemonic,
+ activeIndexes: [0, 1],
+ hdPath: "m/84'/0'/0'/0"
+ });
+
+ const accounts_m84 = keyring.getAccounts();
+ expect(accounts_m84).deep.equal([
+ '02d16db9d525d8623e80c04e33c4463450285791124381bc545bb85e5e8925a776',
+ '023f0b3115a6c5a51ec62d8cbe6e834e79fe4bf22555e095a163e0e451a6fdc4d5'
+ ]);
+ });
+
+ it('change m/44 to m/84', async () => {
+ const keyring = new HdKeyring({
+ mnemonic: sampleMnemonic,
+ activeIndexes: [0, 1],
+ hdPath: "m/44'/0'/0'/0"
+ });
+
+ keyring.changeHdPath("m/84'/0'/0'/0");
+ const accounts_m84 = keyring.getAccounts();
+ expect(accounts_m84).deep.equal([
+ '02d16db9d525d8623e80c04e33c4463450285791124381bc545bb85e5e8925a776',
+ '023f0b3115a6c5a51ec62d8cbe6e834e79fe4bf22555e095a163e0e451a6fdc4d5'
+ ]);
+ });
+
+ it('getAccountByHdPath', async () => {
+ const keyring = new HdKeyring({
+ mnemonic: sampleMnemonic,
+ activeIndexes: [0, 1],
+ hdPath: "m/44'/0'/0'/0"
+ });
+
+ const account = keyring.getAccountByHdPath("m/84'/0'/0'/0", 1);
+ expect(account).eq('023f0b3115a6c5a51ec62d8cbe6e834e79fe4bf22555e095a163e0e451a6fdc4d5');
+ });
});
- it('21 words', async () => {
- const sampleMnemonic =
- 'squirrel spawn fog zero approve connect mirror social basic about alert yellow giraffe oak company file finger winner coast cushion oxygen';
- const firstAccount = '02deda9f6759511ac3b00bd685871cf5b658dc082db39ba7dfeb394134cddc5537';
- const secondAccount = '031c90977662ae1c7ab0082940307a0a82d34bdba9c26b38404402676e99484b9e';
-
- const keyring = new HdKeyring({
- mnemonic: sampleMnemonic,
- activeIndexes: [0, 1]
- });
-
- const accounts = await keyring.getAccounts();
- expect(accounts[0]).eq(firstAccount);
- expect(accounts[1]).eq(secondAccount);
+ describe('more words test', () => {
+ it('12 words', async () => {
+ const sampleMnemonic = 'glue peanut huge wait vicious depend copper ribbon access boring walk point';
+ const firstAccount = '0244ffe4b9f87b7c1e2f8b0d7dee2a91492fedf9c92fc06231764826633b2c8afa';
+ const secondAccount = '0243906ea96ce2680826bfd906cdfcbb70cf2764e469518ba000f0aeb76a6b025b';
+
+ const keyring = new HdKeyring({
+ mnemonic: sampleMnemonic,
+ activeIndexes: [0, 1]
+ });
+
+ const accounts = keyring.getAccounts();
+ expect(accounts[0]).eq(firstAccount);
+ expect(accounts[1]).eq(secondAccount);
+ });
+
+ it('15 words', async () => {
+ const sampleMnemonic =
+ 'gloom prepare pause lazy item valley pear develop ahead crucial fuel seed bone reward shoot';
+ const firstAccount = '02c7b966f5ea72f65c3c3e218103d08c3f259b21cc99d846754e2ca766eb1afd85';
+ const secondAccount = '02dea555ea75823e76c2b7589bdbc601ef4eb26742be5f096bc31319367873101b';
+
+ const keyring = new HdKeyring({
+ mnemonic: sampleMnemonic,
+ activeIndexes: [0, 1]
+ });
+
+ const accounts = keyring.getAccounts();
+ expect(accounts[0]).eq(firstAccount);
+ expect(accounts[1]).eq(secondAccount);
+ });
+
+ it('18 words', async () => {
+ const sampleMnemonic =
+ 'machine chest second galaxy rally design stumble code address general twelve job code acquire dutch debate jealous truly';
+ const firstAccount = '02d9bf4d71d15e941fb060f58e74c53995761a381d2e368062687c1ef65bb52a84';
+ const secondAccount = '03d1b536f6f18eb1ffea8227987a1a80072a316c3d0bfedc2af01b21ece5b7492e';
+
+ const keyring = new HdKeyring({
+ mnemonic: sampleMnemonic,
+ activeIndexes: [0, 1]
+ });
+
+ const accounts = keyring.getAccounts();
+ expect(accounts[0]).eq(firstAccount);
+ expect(accounts[1]).eq(secondAccount);
+ });
+
+ it('21 words', async () => {
+ const sampleMnemonic =
+ 'squirrel spawn fog zero approve connect mirror social basic about alert yellow giraffe oak company file finger winner coast cushion oxygen';
+ const firstAccount = '02deda9f6759511ac3b00bd685871cf5b658dc082db39ba7dfeb394134cddc5537';
+ const secondAccount = '031c90977662ae1c7ab0082940307a0a82d34bdba9c26b38404402676e99484b9e';
+
+ const keyring = new HdKeyring({
+ mnemonic: sampleMnemonic,
+ activeIndexes: [0, 1]
+ });
+
+ const accounts = keyring.getAccounts();
+ expect(accounts[0]).eq(firstAccount);
+ expect(accounts[1]).eq(secondAccount);
+ });
+
+ it('24 words', async () => {
+ const sampleMnemonic =
+ 'dash pair decline scrap federal marine erase lounge fancy quick valid crawl wing ahead art chaos deposit rare deputy gaze often fence alien picture';
+ const firstAccount = '03111f9a4b905f058d0fb0cbc968f2e8d3796d8e6a2308b90069477a5a0be09b01';
+ const secondAccount = '03e514ed9ec10e4df0b134d0728abf5746ace056230e12d3e9cce8fe669d74a532';
+
+ const keyring = new HdKeyring({
+ mnemonic: sampleMnemonic,
+ activeIndexes: [0, 1]
+ });
+
+ const accounts = keyring.getAccounts();
+ expect(accounts[0]).eq(firstAccount);
+ expect(accounts[1]).eq(secondAccount);
+ });
});
- it('24 words', async () => {
- const sampleMnemonic =
- 'dash pair decline scrap federal marine erase lounge fancy quick valid crawl wing ahead art chaos deposit rare deputy gaze often fence alien picture';
- const firstAccount = '03111f9a4b905f058d0fb0cbc968f2e8d3796d8e6a2308b90069477a5a0be09b01';
- const secondAccount = '03e514ed9ec10e4df0b134d0728abf5746ace056230e12d3e9cce8fe669d74a532';
-
- const keyring = new HdKeyring({
- mnemonic: sampleMnemonic,
- activeIndexes: [0, 1]
- });
-
- const accounts = await keyring.getAccounts();
- expect(accounts[0]).eq(firstAccount);
- expect(accounts[1]).eq(secondAccount);
- });
- });
-
- describe('support xpriv', () => {
- it('xpriv', async () => {
- const sampleXpriv =
- 'xprvA2JBuYsdqVhrC2wGmb9QhBejk9gXXYgM3Jg9xgVYmDMsakDoURc8V7UYos1pP1kev1tG51PPA9A8VMYYCLov1L5c3J7npraxwjeJCquGhDi';
- const firstAccount = '0244ffe4b9f87b7c1e2f8b0d7dee2a91492fedf9c92fc06231764826633b2c8afa';
- const secondAccount = '0243906ea96ce2680826bfd906cdfcbb70cf2764e469518ba000f0aeb76a6b025b';
-
- const keyring = new HdKeyring({
- xpriv: sampleXpriv,
- activeIndexes: [0, 1]
- });
-
- const accounts = await keyring.getAccounts();
- expect(accounts[0]).eq(firstAccount);
- expect(accounts[1]).eq(secondAccount);
+ describe('support xpriv', () => {
+ it('xpriv', async () => {
+ const sampleXpriv =
+ 'xprvA2JBuYsdqVhrC2wGmb9QhBejk9gXXYgM3Jg9xgVYmDMsakDoURc8V7UYos1pP1kev1tG51PPA9A8VMYYCLov1L5c3J7npraxwjeJCquGhDi';
+ const firstAccount = '0244ffe4b9f87b7c1e2f8b0d7dee2a91492fedf9c92fc06231764826633b2c8afa';
+ const secondAccount = '0243906ea96ce2680826bfd906cdfcbb70cf2764e469518ba000f0aeb76a6b025b';
+
+ const keyring = new HdKeyring({
+ xpriv: sampleXpriv,
+ activeIndexes: [0, 1]
+ });
+
+ const accounts = keyring.getAccounts();
+ expect(accounts[0]).eq(firstAccount);
+ expect(accounts[1]).eq(secondAccount);
+ });
});
- });
});
diff --git a/test/keyring/keystone-keyring.test.ts b/test/keyring/keystone-keyring.test.ts
index 6e23bfb..492e29b 100644
--- a/test/keyring/keystone-keyring.test.ts
+++ b/test/keyring/keystone-keyring.test.ts
@@ -1,184 +1,186 @@
import { expect } from 'chai';
import { KeystoneKeyring } from '../../src/keyring';
+import { bitcoin } from '../../lib/bitcoin-core';
const initOpts = {
- mfp: '52744703',
- keys: [
- {
- path: "m/44'/0'/0'",
- extendedPublicKey:
- 'xpub6CWL8m4zcbAPXjWkfFWkyjkorenkhBV8P6VFFCmoMn9WZZZhC3ehf7jovLr5HYXGnHZXZbEBFCWo6KqZiqzaV1gMMc5fdprGiWiaA6vynpA'
- },
- {
- path: "m/49'/0'/0'",
- extendedPublicKey:
- 'xpub6CK8ZyoANWjWk24vmGhZ3V5x28QinZ3C66P3es5oDgtrvZLDK8txJHXu88zKsGc3WA7HFUDPHYcoWir4j2cMNMKBBhfHCB37StVhxozA5Lp'
- },
- {
- path: "m/84'/0'/0'",
- extendedPublicKey:
- 'xpub6CcBrNAXBhrdb29q4BFApXgKgCdnHevzGnwFKnDSYfWWMcqkbH17ay6vaUJDZxFdZx5y5AdcoEzLfURSdwtQEEZ93Y5VXUSJ9S8hm5SY7Si'
- },
- {
- path: "m/86'/0'/0'",
- extendedPublicKey:
- 'xpub6Cq9mdT8xwFe9LYQnt9y1hJXTyo7KQJM8pRH6K95F1mbELzgm825m3hyAZ97vsUV8Xh7VRwu7bKuLZEmUV1ABqCRQqFzZHAsfaJXTYSY1cf'
- }
- ],
- hdPath: "m/44'/0'/0'",
- activeIndexes: [0, 1]
+ mfp: '52744703',
+ keys: [
+ {
+ path: "m/44'/0'/0'",
+ extendedPublicKey:
+ 'xpub6CWL8m4zcbAPXjWkfFWkyjkorenkhBV8P6VFFCmoMn9WZZZhC3ehf7jovLr5HYXGnHZXZbEBFCWo6KqZiqzaV1gMMc5fdprGiWiaA6vynpA'
+ },
+ {
+ path: "m/49'/0'/0'",
+ extendedPublicKey:
+ 'xpub6CK8ZyoANWjWk24vmGhZ3V5x28QinZ3C66P3es5oDgtrvZLDK8txJHXu88zKsGc3WA7HFUDPHYcoWir4j2cMNMKBBhfHCB37StVhxozA5Lp'
+ },
+ {
+ path: "m/84'/0'/0'",
+ extendedPublicKey:
+ 'xpub6CcBrNAXBhrdb29q4BFApXgKgCdnHevzGnwFKnDSYfWWMcqkbH17ay6vaUJDZxFdZx5y5AdcoEzLfURSdwtQEEZ93Y5VXUSJ9S8hm5SY7Si'
+ },
+ {
+ path: "m/86'/0'/0'",
+ extendedPublicKey:
+ 'xpub6Cq9mdT8xwFe9LYQnt9y1hJXTyo7KQJM8pRH6K95F1mbELzgm825m3hyAZ97vsUV8Xh7VRwu7bKuLZEmUV1ABqCRQqFzZHAsfaJXTYSY1cf'
+ }
+ ],
+ hdPath: "m/44'/0'/0'",
+ activeIndexes: [0, 1],
+ network: bitcoin.networks.bitcoin
};
const firstAccount = {
- index: 0,
- path: "m/44'/0'/0'/0/0",
- publicKey: '03595bab1a88ddd75f04205b8533cd8d1ce2b2a24ebe164d6ad6a1f4945aed3f99'
+ index: 0,
+ path: "m/44'/0'/0'/0/0",
+ publicKey: '03595bab1a88ddd75f04205b8533cd8d1ce2b2a24ebe164d6ad6a1f4945aed3f99'
};
const secondAccount = {
- index: 1,
- path: "m/44'/0'/0'/0/1",
- publicKey: '02aea7c5fa9074943e0821d7db0f2a2114a8694a9a24237e8a452056340d47c0f3'
+ index: 1,
+ path: "m/44'/0'/0'/0/1",
+ publicKey: '02aea7c5fa9074943e0821d7db0f2a2114a8694a9a24237e8a452056340d47c0f3'
};
describe('bitcoin-keystone-keyring', () => {
- describe('constructor', () => {
- it('constructs', async () => {
- const keyring = new KeystoneKeyring(initOpts);
+ describe('constructor', () => {
+ it('constructs', async () => {
+ const keyring = new KeystoneKeyring(initOpts);
- const accounts = await keyring.getAccounts();
+ const accounts = await keyring.getAccounts();
- expect(accounts).deep.eq([firstAccount.publicKey, secondAccount.publicKey]);
+ expect(accounts).deep.eq([firstAccount.publicKey, secondAccount.publicKey]);
+ });
});
- });
-
- describe('init', () => {
- it('init from UR', async () => {
- const keyring = new KeystoneKeyring();
-
- await keyring.initFromUR(
- 'crypto-account',
- 'a2011a527447030284d90194d9012fa702f40358210238506dbd94e82166cb68536ffa0d0e145fcb87b975d9dbd0475fdb664f3daea6045820399c9a9c6b98711235a2484f8e44cbb5f1e656306ae15a0bb29a0d7ed227f0a805d90131a20100020006d90130a301861854f500f500f5021a52744703030307d90130a2018400f480f40300081a81ff3431d90193d9012fa702f403582103ebd552027b73adb1de1aa494ca7cedfe781434d6f102a55355b118a0c5da78bc045820517438aec2b78e81c275a41be63df6083358070cbefdb59de69bd2f99c003e8a05d90131a20100020006d90130a30186182cf500f500f5021a52744703030307d90130a2018400f480f40300081a7441f35cd90190d90194d9012fa702f403582102f3b97cf3f3387e2c4d8c7141a21529a90e0585e9f032706798d18f988a56e3f1045820ac31dee4dd3f4632f984e0a41e8728edc3ec67f614c8f03181490c8945d19d7405d90131a20100020006d90130a301861831f500f500f5021a52744703030307d90130a2018400f480f40300081a59fcb265d90199d9012fa702f4035821026c395e1763f5a6f07ade3557429c4bdab45d5487599ed283e78534ac1816408f045820af3a23ef7b1a54d3dbdb6c3e502382e55de5ff575f13ceacf52be01be37c0b4405d90131a20100020006d90130a301861856f500f500f5021a52744703030307d90130a2018400f480f40300081aa0682b01'
- );
- const opts = await keyring.serialize();
-
- expect(opts).deep.eq({
- mfp: '52744703',
- keys: [
- {
- path: "m/84'/0'/0'",
- extendedPublicKey:
- 'xpub6CcBrNAXBhrdb29q4BFApXgKgCdnHevzGnwFKnDSYfWWMcqkbH17ay6vaUJDZxFdZx5y5AdcoEzLfURSdwtQEEZ93Y5VXUSJ9S8hm5SY7Si'
- },
- {
- path: "m/44'/0'/0'",
- extendedPublicKey:
- 'xpub6CWL8m4zcbAPXjWkfFWkyjkorenkhBV8P6VFFCmoMn9WZZZhC3ehf7jovLr5HYXGnHZXZbEBFCWo6KqZiqzaV1gMMc5fdprGiWiaA6vynpA'
- },
- {
- path: "m/49'/0'/0'",
- extendedPublicKey:
- 'xpub6CK8ZyoANWjWk24vmGhZ3V5x28QinZ3C66P3es5oDgtrvZLDK8txJHXu88zKsGc3WA7HFUDPHYcoWir4j2cMNMKBBhfHCB37StVhxozA5Lp'
- },
- {
- path: "m/86'/0'/0'",
- extendedPublicKey:
- 'xpub6Cq9mdT8xwFe9LYQnt9y1hJXTyo7KQJM8pRH6K95F1mbELzgm825m3hyAZ97vsUV8Xh7VRwu7bKuLZEmUV1ABqCRQqFzZHAsfaJXTYSY1cf'
- }
- ],
- hdPath: "m/44'/0'/0'/0",
- activeIndexes: []
- });
- });
- });
- describe('manage accounts', () => {
- it('add a single account', async () => {
- const keyring = new KeystoneKeyring(initOpts);
-
- await keyring.addAccounts(1);
-
- expect(keyring.activeIndexes).deep.eq([0, 1, 2]);
+ describe('init', () => {
+ it('init from UR', async () => {
+ const keyring = new KeystoneKeyring();
+
+ await keyring.initFromUR(
+ 'crypto-account',
+ 'a2011a527447030284d90194d9012fa702f40358210238506dbd94e82166cb68536ffa0d0e145fcb87b975d9dbd0475fdb664f3daea6045820399c9a9c6b98711235a2484f8e44cbb5f1e656306ae15a0bb29a0d7ed227f0a805d90131a20100020006d90130a301861854f500f500f5021a52744703030307d90130a2018400f480f40300081a81ff3431d90193d9012fa702f403582103ebd552027b73adb1de1aa494ca7cedfe781434d6f102a55355b118a0c5da78bc045820517438aec2b78e81c275a41be63df6083358070cbefdb59de69bd2f99c003e8a05d90131a20100020006d90130a30186182cf500f500f5021a52744703030307d90130a2018400f480f40300081a7441f35cd90190d90194d9012fa702f403582102f3b97cf3f3387e2c4d8c7141a21529a90e0585e9f032706798d18f988a56e3f1045820ac31dee4dd3f4632f984e0a41e8728edc3ec67f614c8f03181490c8945d19d7405d90131a20100020006d90130a301861831f500f500f5021a52744703030307d90130a2018400f480f40300081a59fcb265d90199d9012fa702f4035821026c395e1763f5a6f07ade3557429c4bdab45d5487599ed283e78534ac1816408f045820af3a23ef7b1a54d3dbdb6c3e502382e55de5ff575f13ceacf52be01be37c0b4405d90131a20100020006d90130a301861856f500f500f5021a52744703030307d90130a2018400f480f40300081aa0682b01'
+ );
+ const opts = await keyring.serialize();
+
+ expect(opts).deep.eq({
+ mfp: '52744703',
+ keys: [
+ {
+ path: "m/84'/0'/0'",
+ extendedPublicKey:
+ 'xpub6CcBrNAXBhrdb29q4BFApXgKgCdnHevzGnwFKnDSYfWWMcqkbH17ay6vaUJDZxFdZx5y5AdcoEzLfURSdwtQEEZ93Y5VXUSJ9S8hm5SY7Si'
+ },
+ {
+ path: "m/44'/0'/0'",
+ extendedPublicKey:
+ 'xpub6CWL8m4zcbAPXjWkfFWkyjkorenkhBV8P6VFFCmoMn9WZZZhC3ehf7jovLr5HYXGnHZXZbEBFCWo6KqZiqzaV1gMMc5fdprGiWiaA6vynpA'
+ },
+ {
+ path: "m/49'/0'/0'",
+ extendedPublicKey:
+ 'xpub6CK8ZyoANWjWk24vmGhZ3V5x28QinZ3C66P3es5oDgtrvZLDK8txJHXu88zKsGc3WA7HFUDPHYcoWir4j2cMNMKBBhfHCB37StVhxozA5Lp'
+ },
+ {
+ path: "m/86'/0'/0'",
+ extendedPublicKey:
+ 'xpub6Cq9mdT8xwFe9LYQnt9y1hJXTyo7KQJM8pRH6K95F1mbELzgm825m3hyAZ97vsUV8Xh7VRwu7bKuLZEmUV1ABqCRQqFzZHAsfaJXTYSY1cf'
+ }
+ ],
+ hdPath: "m/44'/0'/0'/0",
+ activeIndexes: []
+ });
+ });
});
- it('add multiple accounts', async () => {
- const keyring = new KeystoneKeyring(initOpts);
+ describe('manage accounts', () => {
+ it('add a single account', async () => {
+ const keyring = new KeystoneKeyring(initOpts);
- await keyring.addAccounts(2);
+ await keyring.addAccounts(1);
- expect(keyring.activeIndexes).deep.eq([0, 1, 2, 3]);
- });
+ expect(keyring.activeIndexes).deep.eq([0, 1, 2]);
+ });
- it('remove a account', async () => {
- const keyring = new KeystoneKeyring(initOpts);
+ it('add multiple accounts', async () => {
+ const keyring = new KeystoneKeyring(initOpts);
- keyring.removeAccount(firstAccount.publicKey);
+ await keyring.addAccounts(2);
- expect(keyring.activeIndexes).deep.eq([1]);
- });
+ expect(keyring.activeIndexes).deep.eq([0, 1, 2, 3]);
+ });
- it('active a single account', async () => {
- const keyring = new KeystoneKeyring(initOpts);
+ it('remove a account', async () => {
+ const keyring = new KeystoneKeyring(initOpts);
- keyring.activeAccounts([6]);
+ keyring.removeAccount(firstAccount.publicKey);
- expect(keyring.activeIndexes).deep.eq([0, 1, 6]);
- });
+ expect(keyring.activeIndexes).deep.eq([1]);
+ });
- it('active multiple accounts', async () => {
- const keyring = new KeystoneKeyring(initOpts);
+ it('active a single account', async () => {
+ const keyring = new KeystoneKeyring(initOpts);
- keyring.activeAccounts([0, 6, 7]);
+ keyring.activeAccounts([6]);
- expect(keyring.activeIndexes).deep.eq([0, 1, 6, 7]);
- });
+ expect(keyring.activeIndexes).deep.eq([0, 1, 6]);
+ });
- it('get all accounts', async () => {
- const keyring = new KeystoneKeyring(initOpts);
+ it('active multiple accounts', async () => {
+ const keyring = new KeystoneKeyring(initOpts);
- const accounts = await keyring.getAccountsWithBrand();
+ keyring.activeAccounts([0, 6, 7]);
- expect(accounts).deep.eq([
- {
- address: firstAccount.publicKey,
- index: firstAccount.index
- },
- {
- address: secondAccount.publicKey,
- index: secondAccount.index
- }
- ]);
- });
- });
-
- describe('change hdPath', () => {
- it('change m/44 to m/84', async () => {
- const keyring = new KeystoneKeyring(initOpts);
- keyring.changeHdPath(initOpts.keys[2].path);
- const accounts = await keyring.getAccounts();
- expect(accounts).deep.eq([
- '029045ad4453414ca9cf64ca4afeec6ead859ee9a60f259b08509b014c156b3a6b',
- '02a80a1cddc6ef06fe5b383e1c59c58dc92e7cb533e8fec15d04a1307cb71b0ac0'
- ]);
- });
+ expect(keyring.activeIndexes).deep.eq([0, 1, 6, 7]);
+ });
- // change m/44 to change address
- it('change m/44 to change address', async () => {
- const keyring = new KeystoneKeyring(initOpts);
- keyring.changeChangeAddressHdPath("m/44'/0'/0'/1");
- const accounts = await keyring.getAccounts();
- expect(accounts).deep.eq([]);
- });
+ it('get all accounts', async () => {
+ const keyring = new KeystoneKeyring(initOpts);
+
+ const accounts = await keyring.getAccountsWithBrand();
- it('get account by hdPath', async () => {
- const keyring = new KeystoneKeyring(initOpts);
- const account = keyring.getAccountByHdPath(initOpts.keys[2].path, 0);
- expect(account).eq('029045ad4453414ca9cf64ca4afeec6ead859ee9a60f259b08509b014c156b3a6b');
+ expect(accounts).deep.eq([
+ {
+ address: firstAccount.publicKey,
+ index: firstAccount.index
+ },
+ {
+ address: secondAccount.publicKey,
+ index: secondAccount.index
+ }
+ ]);
+ });
});
- it('get change address account by hdPath', async () => {
- const keyring = new KeystoneKeyring(initOpts);
- const account = keyring.getChangeAddressAccountByHdPath("m/44'/0'/0'/1", 0);
- expect(account).eq('026cc2828e3163f567fa63a20215260dba29bca82b3a1a4e81622fd02a275e2f99');
+ describe('change hdPath', () => {
+ it('change m/44 to m/84', async () => {
+ const keyring = new KeystoneKeyring(initOpts);
+ keyring.changeHdPath(initOpts.keys[2].path);
+ const accounts = await keyring.getAccounts();
+ expect(accounts).deep.eq([
+ '029045ad4453414ca9cf64ca4afeec6ead859ee9a60f259b08509b014c156b3a6b',
+ '02a80a1cddc6ef06fe5b383e1c59c58dc92e7cb533e8fec15d04a1307cb71b0ac0'
+ ]);
+ });
+
+ // change m/44 to change address
+ it('change m/44 to change address', async () => {
+ const keyring = new KeystoneKeyring(initOpts);
+ keyring.changeChangeAddressHdPath("m/44'/0'/0'/1");
+ const accounts = await keyring.getAccounts();
+ expect(accounts).deep.eq([]);
+ });
+
+ it('get account by hdPath', async () => {
+ const keyring = new KeystoneKeyring(initOpts);
+ const account = keyring.getAccountByHdPath(initOpts.keys[2].path, 0);
+ expect(account).eq('029045ad4453414ca9cf64ca4afeec6ead859ee9a60f259b08509b014c156b3a6b');
+ });
+
+ it('get change address account by hdPath', async () => {
+ const keyring = new KeystoneKeyring(initOpts);
+ const account = keyring.getChangeAddressAccountByHdPath("m/44'/0'/0'/1", 0);
+ expect(account).eq('026cc2828e3163f567fa63a20215260dba29bca82b3a1a4e81622fd02a275e2f99');
+ });
});
- });
});
diff --git a/test/keyring/simple-keyring.test.ts b/test/keyring/simple-keyring.test.ts
index 26b29e4..2eb15b5 100644
--- a/test/keyring/simple-keyring.test.ts
+++ b/test/keyring/simple-keyring.test.ts
@@ -7,320 +7,320 @@ import { toXOnly } from '../../src/utils';
const TYPE_STR = 'Simple Key Pair';
const testAccount = {
- key: '88544d58a328a380a4a433e4bb44b2a9f8a1152b1467393cfc8f8e5d81137162',
- address: '02b57a152325231723ee9faabba930108b19c11a391751572f380d71b447317ae7'
+ key: '88544d58a328a380a4a433e4bb44b2a9f8a1152b1467393cfc8f8e5d81137162',
+ address: '02b57a152325231723ee9faabba930108b19c11a391751572f380d71b447317ae7'
};
describe('bitcoin-simple-keyring', () => {
- let keyring: SimpleKeyring;
- beforeEach(() => {
- keyring = new SimpleKeyring();
- });
-
- describe('Keyring.type', function () {
- it('is a class property that returns the type string.', function () {
- const { type } = SimpleKeyring;
- expect(type).eq(TYPE_STR);
+ let keyring: SimpleKeyring;
+ beforeEach(() => {
+ keyring = new SimpleKeyring();
});
- });
- describe('#serialize empty wallets.', function () {
- it('serializes an empty array', async function () {
- const output = await keyring.serialize();
- expect(output.length == 0).to.be.true;
- });
- });
-
- describe('#deserialize a private key', function () {
- it('serializes what it deserializes', async function () {
- await keyring.deserialize([testAccount.key]);
- const serialized = await keyring.serialize();
- expect(serialized).length(1);
- expect(serialized[0]).eq(testAccount.key);
+ describe('Keyring.type', function () {
+ it('is a class property that returns the type string.', function () {
+ const { type } = SimpleKeyring;
+ expect(type).eq(TYPE_STR);
+ });
});
- });
- describe('#constructor with a private key', function () {
- it('has the correct addresses', async function () {
- const newKeyring = new SimpleKeyring([testAccount.key]);
- const accounts = await newKeyring.getAccounts();
- expect(accounts).eqls([testAccount.address]);
+ describe('#serialize empty wallets.', function () {
+ it('serializes an empty array', async function () {
+ const output = keyring.serialize().privateKeys;
+ expect(output.length == 0).to.be.true;
+ });
});
- });
-
- describe('#add accounts', function () {
- describe('with no arguments', function () {
- it('creates a single wallet', async function () {
- await keyring.addAccounts();
- const serializedKeyring = await keyring.serialize();
- expect(serializedKeyring).length(1);
- });
+
+ describe('#deserialize a private key', function () {
+ it('serializes what it deserializes', async function () {
+ keyring.deserialize({ privateKeys: [testAccount.key] });
+ const serialized = keyring.serialize().privateKeys;
+ expect(serialized).length(1);
+ expect(serialized[0]).eq(testAccount.key);
+ });
});
- describe('with a numeric argument', function () {
- it('creates that number of wallets', async function () {
- await keyring.addAccounts(3);
- const serializedKeyring = await keyring.serialize();
- expect(serializedKeyring).length(3);
- });
+ describe('#constructor with a private key', function () {
+ it('has the correct addresses', async function () {
+ const newKeyring = new SimpleKeyring({ privateKeys: [testAccount.key] });
+ const accounts = newKeyring.getAccounts();
+ expect(accounts).eqls([testAccount.address]);
+ });
});
- describe('#getAccounts', function () {
- it('should return a list of addresses in wallet', async function () {
- // Push a mock wallet
- keyring.deserialize([testAccount.key]);
+ describe('#add accounts', function () {
+ describe('with no arguments', function () {
+ it('creates a single wallet', async function () {
+ keyring.addAccounts();
+ const serializedKeyring = keyring.serialize().privateKeys;
+ expect(serializedKeyring).length(1);
+ });
+ });
+
+ describe('with a numeric argument', function () {
+ it('creates that number of wallets', async function () {
+ keyring.addAccounts(3);
+ const serializedKeyring = keyring.serialize().privateKeys;
+ expect(serializedKeyring).length(3);
+ });
+ });
- const output = await keyring.getAccounts();
- expect(output).length(1);
- expect(output[0]).eql(testAccount.address);
- });
- });
+ describe('#getAccounts', function () {
+ it('should return a list of addresses in wallet', async function () {
+ // Push a mock wallet
+ keyring.deserialize({ privateKeys: [testAccount.key] });
- describe('#removeAccount', function () {
- describe('if the account exists', function () {
- it('should remove that account', async function () {
- await keyring.addAccounts();
- const addresses = await keyring.getAccounts();
- expect(addresses).length(1);
- keyring.removeAccount(addresses[0]);
- const addressesAfterRemoval = await keyring.getAccounts();
- expect(addressesAfterRemoval).length(0);
+ const output = keyring.getAccounts();
+ expect(output).length(1);
+ expect(output[0]).eql(testAccount.address);
+ });
});
- });
-
- describe('if the account does not exist', function () {
- it('should throw an error', function () {
- const unexistingAccount = '000000000000000000000000000000000000000000000000000000000000000000';
- expect(() => keyring.removeAccount(unexistingAccount)).throw(
- `PublicKey ${unexistingAccount} not found in this keyring`
- );
+
+ describe('#removeAccount', function () {
+ describe('if the account exists', function () {
+ it('should remove that account', async function () {
+ keyring.addAccounts();
+ const addresses = keyring.getAccounts();
+ expect(addresses).length(1);
+ keyring.removeAccount(addresses[0]);
+ const addressesAfterRemoval = keyring.getAccounts();
+ expect(addressesAfterRemoval).length(0);
+ });
+ });
+
+ describe('if the account does not exist', function () {
+ it('should throw an error', function () {
+ const unexistingAccount = '000000000000000000000000000000000000000000000000000000000000000000';
+ expect(() => keyring.removeAccount(unexistingAccount)).throw(
+ `PublicKey ${unexistingAccount} not found in this keyring`
+ );
+ });
+ });
});
- });
- });
- });
-
- describe('#sign message', function () {
- it('verify sig success', async function () {
- const newKeyring = new SimpleKeyring([testAccount.key]);
- const accounts = await newKeyring.getAccounts();
- const pubkey = accounts[0];
- const msg = 'HELLO WORLD';
- const sig = await newKeyring.signMessage(pubkey, msg);
- const verified = await newKeyring.verifyMessage(pubkey, msg, sig);
- expect(verified).eq(true);
- });
- });
-
- describe('#sign data', function () {
- it('verify ecdsa success', async function () {
- const newKeyring = new SimpleKeyring([testAccount.key]);
- const accounts = await newKeyring.getAccounts();
- const pubkey = accounts[0];
- const data = sha256(Buffer.from('HELLO WORLD')).toString('hex');
- const sig = await newKeyring.signData(pubkey, data, 'ecdsa');
- const verified = verifySignData(pubkey, data, 'ecdsa', sig);
- expect(verified).eq(true);
});
- it('verify schnorr success', async function () {
- const newKeyring = new SimpleKeyring([testAccount.key]);
- const accounts = await newKeyring.getAccounts();
- const pubkey = accounts[0];
- const data = sha256(Buffer.from('HELLO WORLD')).toString('hex');
- const sig = await newKeyring.signData(pubkey, data, 'schnorr');
- const verified = verifySignData(pubkey, data, 'schnorr', sig);
- expect(verified).eq(true);
+ describe('#sign message', function () {
+ it('verify sig success', async function () {
+ const newKeyring = new SimpleKeyring({ privateKeys: [testAccount.key] });
+ const accounts = newKeyring.getAccounts();
+ const pubkey = accounts[0];
+ const msg = 'HELLO WORLD';
+ const sig = newKeyring.signMessage(pubkey, msg);
+ const verified = await newKeyring.verifyMessage(pubkey, msg, sig);
+ expect(verified).eq(true);
+ });
});
- it('verify schnorr failed', async function () {
- const newKeyring = new SimpleKeyring([testAccount.key]);
- const accounts = await newKeyring.getAccounts();
- const pubkey = accounts[0];
- const data = sha256(Buffer.from('HELLO WORLD')).toString('hex');
- const sig = await newKeyring.signData(pubkey, data, 'ecdsa');
- const verified = verifySignData(pubkey, data, 'schnorr', sig);
- expect(verified).eq(false);
- });
+ describe('#sign data', function () {
+ it('verify ecdsa success', async function () {
+ const newKeyring = new SimpleKeyring({ privateKeys: [testAccount.key] });
+ const accounts = newKeyring.getAccounts();
+ const pubkey = accounts[0];
+ const data = sha256(Buffer.from('HELLO WORLD')).toString('hex');
+ const sig = newKeyring.signData(pubkey, data, 'ecdsa');
+ const verified = verifySignData(pubkey, data, 'ecdsa', sig);
+ expect(verified).eq(true);
+ });
- it('verify invalid data', async function () {
- const newKeyring = new SimpleKeyring([testAccount.key]);
- const accounts = await newKeyring.getAccounts();
- const pubkey = accounts[0];
- const data = 'HELLO WORLD';
+ it('verify schnorr success', async function () {
+ const newKeyring = new SimpleKeyring({ privateKeys: [testAccount.key] });
+ const accounts = newKeyring.getAccounts();
+ const pubkey = accounts[0];
+ const data = sha256(Buffer.from('HELLO WORLD')).toString('hex');
+ const sig = newKeyring.signData(pubkey, data, 'schnorr');
+ const verified = verifySignData(pubkey, data, 'schnorr', sig);
+ expect(verified).eq(true);
+ });
- let err = null;
- try {
- await newKeyring.signData(pubkey, data);
- } catch (e) {
- err = e;
- }
+ it('verify schnorr failed', async function () {
+ const newKeyring = new SimpleKeyring({ privateKeys: [testAccount.key] });
+ const accounts = newKeyring.getAccounts();
+ const pubkey = accounts[0];
+ const data = sha256(Buffer.from('HELLO WORLD')).toString('hex');
+ const sig = newKeyring.signData(pubkey, data, 'ecdsa');
+ const verified = verifySignData(pubkey, data, 'schnorr', sig);
+ expect(verified).eq(false);
+ });
- expect(err.message).eq('Expected Hash');
- });
- });
-
- describe('#sign psbt', function () {
- it('sign P2TR input', async function () {
- const network = bitcoin.networks.bitcoin;
-
- const newKeyring = new SimpleKeyring();
- await newKeyring.addAccounts(1);
- const accounts = await newKeyring.getAccounts();
- const pubkey = accounts[0];
- const internalPubkey = toXOnly(Buffer.from(pubkey, 'hex'));
- const payment = bitcoin.payments.p2tr({
- internalPubkey,
- network
- });
-
- const prevoutHash = Buffer.from('0000000000000000000000000000000000000000000000000000000000000000', 'hex');
- const value = 10000;
- const prevoutIndex = 0xffffffff;
- const sequence = 0;
- const txToSpend = new bitcoin.Transaction();
- txToSpend.version = 0;
- txToSpend.addInput(prevoutHash, prevoutIndex, sequence);
- txToSpend.addOutput(payment.output!, value);
-
- const psbt = new bitcoin.Psbt({ network });
- psbt.addInput({
- hash: txToSpend.getHash(),
- index: 0,
- sequence: 0,
- witnessUtxo: {
- script: payment.output!,
- value
- },
- tapInternalKey: toXOnly(internalPubkey)
- });
- psbt.addOutput({
- address: payment.address!,
- value: value - 500
- });
- await newKeyring.signTransaction(psbt, [{ index: 0, publicKey: pubkey }], { network: bitcoin.networks.bitcoin });
-
- psbt.finalizeAllInputs();
- psbt.extractTransaction();
- expect(psbt.getFee() == 500).to.be.true;
- });
+ it('verify invalid data', async function () {
+ const newKeyring = new SimpleKeyring({ privateKeys: [testAccount.key] });
+ const accounts = newKeyring.getAccounts();
+ const pubkey = accounts[0];
+ const data = 'HELLO WORLD';
+
+ let err = null;
+ try {
+ newKeyring.signData(pubkey, data);
+ } catch (e) {
+ err = e;
+ }
- it('sign P2WPKH input', async function () {
- const network = bitcoin.networks.bitcoin;
-
- const newKeyring = new SimpleKeyring();
- await newKeyring.addAccounts(1);
- const accounts = await newKeyring.getAccounts();
- const pubkey = accounts[0];
- const payment = bitcoin.payments.p2wpkh({
- pubkey: Buffer.from(pubkey, 'hex'),
- network
- });
-
- const prevoutHash = Buffer.from('0000000000000000000000000000000000000000000000000000000000000000', 'hex');
- const value = 10000;
- const prevoutIndex = 0xffffffff;
- const sequence = 0;
- const txToSpend = new bitcoin.Transaction();
- txToSpend.version = 0;
- txToSpend.addInput(prevoutHash, prevoutIndex, sequence);
- txToSpend.addOutput(payment.output!, value);
-
- const psbt = new bitcoin.Psbt({ network });
- psbt.addInput({
- hash: txToSpend.getHash(),
- index: 0,
- sequence: 0,
- witnessUtxo: {
- script: payment.output!,
- value
- }
- });
- psbt.addOutput({
- address: payment.address!,
- value: value - 500
- });
- await newKeyring.signTransaction(psbt, [{ index: 0, publicKey: pubkey }], { network: bitcoin.networks.bitcoin });
-
- psbt.finalizeAllInputs();
- psbt.extractTransaction();
- expect(psbt.getFee() == 500).to.be.true;
+ expect(err?.message).eq('Expected Scalar');
+ });
});
- it('sign P2TR multisig input', async function () {
- const network = bitcoin.networks.bitcoin;
-
- const newKeyring = new SimpleKeyring();
- await newKeyring.addAccounts(3);
- const accounts = await newKeyring.getAccounts();
- const pubkeys = accounts.map((hex) => Buffer.from(hex, 'hex'));
- const redeemScript = bitcoin.script.compile([
- bitcoin.opcodes.OP_2,
- pubkeys[0],
- pubkeys[1],
- pubkeys[2],
- bitcoin.opcodes.OP_3,
- bitcoin.opcodes.OP_CHECKMULTISIG
- ]);
- const tapLeaf = {
- output: redeemScript,
- version: 192
- };
-
- const payment = bitcoin.payments.p2tr({
- internalPubkey: toXOnly(pubkeys[0]),
- scriptTree: tapLeaf,
- redeem: { output: redeemScript },
- network
- });
-
- const prevoutHash = Buffer.from('0000000000000000000000000000000000000000000000000000000000000000', 'hex');
- const value = 10000;
- const prevoutIndex = 0xffffffff;
- const sequence = 0;
- const txToSpend = new bitcoin.Transaction();
- txToSpend.version = 0;
- txToSpend.addInput(prevoutHash, prevoutIndex, sequence);
- txToSpend.addOutput(payment.output!, value);
-
- const psbt = new bitcoin.Psbt({ network });
- psbt.addInput({
- hash: txToSpend.getHash(),
- index: 0,
- sequence: 0,
- witnessUtxo: {
- script: payment.output!,
- value
- },
- tapLeafScript: [
- {
- leafVersion: 192,
- script: tapLeaf.output,
- controlBlock: payment.witness![payment.witness!.length - 1]
- }
- ]
- });
- psbt.addOutput({
- address: payment.address!,
- value: value - 500
- });
-
- for (let i = 0; i < 2; i++) {
- await newKeyring.signTransaction(
- psbt,
- [
- {
- index: 0,
- publicKey: pubkeys[i].toString('hex'),
- disableTweakSigner: true
+ describe('#sign psbt', function () {
+ it('sign P2TR input', async function () {
+ const network = bitcoin.networks.bitcoin;
+
+ const newKeyring = new SimpleKeyring();
+ newKeyring.addAccounts(1);
+ const accounts = newKeyring.getAccounts();
+ const pubkey = accounts[0];
+ const internalPubkey = toXOnly(Buffer.from(pubkey, 'hex'));
+ const payment = bitcoin.payments.p2tr({
+ internalPubkey,
+ network
+ });
+
+ const prevoutHash = Buffer.from('0000000000000000000000000000000000000000000000000000000000000000', 'hex');
+ const value = 10000;
+ const prevoutIndex = 0xffffffff;
+ const sequence = 0;
+ const txToSpend = new bitcoin.Transaction();
+ txToSpend.version = 0;
+ txToSpend.addInput(prevoutHash, prevoutIndex, sequence);
+ txToSpend.addOutput(payment.output!, value);
+
+ const psbt = new bitcoin.Psbt({ network });
+ psbt.addInput({
+ hash: txToSpend.getHash(),
+ index: 0,
+ sequence: 0,
+ witnessUtxo: {
+ script: payment.output!,
+ value
+ },
+ tapInternalKey: toXOnly(internalPubkey)
+ });
+ psbt.addOutput({
+ address: payment.address!,
+ value: value - 500
+ });
+ newKeyring.signTransaction(psbt, [{ index: 0, publicKey: pubkey }], { network: bitcoin.networks.bitcoin });
+
+ psbt.finalizeAllInputs();
+ psbt.extractTransaction();
+ expect(psbt.getFee() == 500).to.be.true;
+ });
+
+ it('sign P2WPKH input', async function () {
+ const network = bitcoin.networks.bitcoin;
+
+ const newKeyring = new SimpleKeyring();
+ newKeyring.addAccounts(1);
+ const accounts = newKeyring.getAccounts();
+ const pubkey = accounts[0];
+ const payment = bitcoin.payments.p2wpkh({
+ pubkey: Buffer.from(pubkey, 'hex'),
+ network
+ });
+
+ const prevoutHash = Buffer.from('0000000000000000000000000000000000000000000000000000000000000000', 'hex');
+ const value = 10000;
+ const prevoutIndex = 0xffffffff;
+ const sequence = 0;
+ const txToSpend = new bitcoin.Transaction();
+ txToSpend.version = 0;
+ txToSpend.addInput(prevoutHash, prevoutIndex, sequence);
+ txToSpend.addOutput(payment.output!, value);
+
+ const psbt = new bitcoin.Psbt({ network });
+ psbt.addInput({
+ hash: txToSpend.getHash(),
+ index: 0,
+ sequence: 0,
+ witnessUtxo: {
+ script: payment.output!,
+ value
+ }
+ });
+ psbt.addOutput({
+ address: payment.address!,
+ value: value - 500
+ });
+ newKeyring.signTransaction(psbt, [{ index: 0, publicKey: pubkey }], { network: bitcoin.networks.bitcoin });
+
+ psbt.finalizeAllInputs();
+ psbt.extractTransaction();
+ expect(psbt.getFee() == 500).to.be.true;
+ });
+
+ it('sign P2TR multisig input', async function () {
+ const network = bitcoin.networks.bitcoin;
+
+ const newKeyring = new SimpleKeyring();
+ newKeyring.addAccounts(3);
+ const accounts = newKeyring.getAccounts();
+ const pubkeys = accounts.map((hex) => Buffer.from(hex, 'hex'));
+ const redeemScript = bitcoin.script.compile([
+ bitcoin.opcodes.OP_2,
+ pubkeys[0],
+ pubkeys[1],
+ pubkeys[2],
+ bitcoin.opcodes.OP_3,
+ bitcoin.opcodes.OP_CHECKMULTISIG
+ ]);
+ const tapLeaf = {
+ output: redeemScript,
+ version: 192
+ };
+
+ const payment = bitcoin.payments.p2tr({
+ internalPubkey: toXOnly(pubkeys[0]),
+ scriptTree: tapLeaf,
+ redeem: { output: redeemScript },
+ network
+ });
+
+ const prevoutHash = Buffer.from('0000000000000000000000000000000000000000000000000000000000000000', 'hex');
+ const value = 10000;
+ const prevoutIndex = 0xffffffff;
+ const sequence = 0;
+ const txToSpend = new bitcoin.Transaction();
+ txToSpend.version = 0;
+ txToSpend.addInput(prevoutHash, prevoutIndex, sequence);
+ txToSpend.addOutput(payment.output!, value);
+
+ const psbt = new bitcoin.Psbt({ network });
+ psbt.addInput({
+ hash: txToSpend.getHash(),
+ index: 0,
+ sequence: 0,
+ witnessUtxo: {
+ script: payment.output!,
+ value
+ },
+ tapLeafScript: [
+ {
+ leafVersion: 192,
+ script: tapLeaf.output,
+ controlBlock: payment.witness![payment.witness!.length - 1]
+ }
+ ]
+ });
+ psbt.addOutput({
+ address: payment.address!,
+ value: value - 500
+ });
+
+ for (let i = 0; i < 2; i++) {
+ newKeyring.signTransaction(
+ psbt,
+ [
+ {
+ index: 0,
+ publicKey: pubkeys[i].toString('hex'),
+ disableTweakSigner: true
+ }
+ ],
+ { network: bitcoin.networks.bitcoin }
+ );
}
- ],
- { network: bitcoin.networks.bitcoin }
- );
- }
-
- psbt.finalizeAllInputs();
- psbt.extractTransaction();
- expect(psbt.getFee() == 500).to.be.true;
+
+ psbt.finalizeAllInputs();
+ psbt.extractTransaction();
+ expect(psbt.getFee() == 500).to.be.true;
+ });
});
- });
});
diff --git a/test/message/message.test.ts b/test/message/message.test.ts
index d692bf4..1a60910 100644
--- a/test/message/message.test.ts
+++ b/test/message/message.test.ts
@@ -6,95 +6,100 @@ import { LocalWallet } from '../../src/wallet';
import { expectThrowError } from '../utils';
describe('verifyMessage', function () {
- it('ecdsa', async function () {
- const message = 'hello world~';
- const wallet = LocalWallet.fromRandom();
- const signature = await wallet.signMessage(message, 'ecdsa');
- const pubkey = await wallet.getPublicKey();
- const result = await verifyMessageOfECDSA(pubkey, message, signature);
- expect(result).eq(true);
+ it('ecdsa', async function () {
+ const message = 'hello world~';
+ const wallet = LocalWallet.fromRandom();
+ const signature = await wallet.signMessage(message, 'ecdsa');
+ const pubkey = await wallet.getPublicKey();
+ const result = await verifyMessageOfECDSA(pubkey, message, signature);
+ expect(result).eq(true);
- const errorResult = await verifyMessageOfECDSA(
- pubkey,
- message,
- 'G6nd7IqQaU8kxNbUDCnGLf+lA5ZxJ9TVlNOoNSuQ6j1yD1lG/Y25h01yT7SNxW56IuGNRX8Eu4baQYzhU78Wa0o='
- );
- expect(errorResult).eq(false);
- });
+ const errorResult = await verifyMessageOfECDSA(
+ pubkey,
+ message,
+ 'G6nd7IqQaU8kxNbUDCnGLf+lA5ZxJ9TVlNOoNSuQ6j1yD1lG/Y25h01yT7SNxW56IuGNRX8Eu4baQYzhU78Wa0o='
+ );
+ expect(errorResult).eq(false);
+ });
- it('bip322-simple for P2WPKH', async function () {
- const message = 'hello world~';
- const wallet = LocalWallet.fromRandom(AddressType.P2WPKH);
- const signature = await wallet.signMessage(message, 'bip322-simple');
- const result = verifyMessageOfBIP322Simple(wallet.address, message, signature);
- expect(result).eq(true);
- });
+ it('bip322-simple for P2WPKH', async function () {
+ const message = 'hello world~';
+ const wallet = LocalWallet.fromRandom(AddressType.P2WPKH);
+ const signature = await wallet.signMessage(message, 'bip322-simple');
+ const result = verifyMessageOfBIP322Simple(wallet.address, message, signature);
+ expect(result).eq(true);
+ });
- it('bip322-simple for P2TR', async function () {
- const message = 'hello world~';
- const wallet = LocalWallet.fromRandom(AddressType.P2TR);
- const signature = await wallet.signMessage(message, 'bip322-simple');
- const result = verifyMessageOfBIP322Simple(wallet.address, message, signature);
- expect(result).eq(true);
- });
+ it('bip322-simple for P2TR', async function () {
+ const message = 'hello world~';
+ const wallet = LocalWallet.fromRandom(AddressType.P2TR);
+ const signature = await wallet.signMessage(message, 'bip322-simple');
+ const result = verifyMessageOfBIP322Simple(wallet.address, message, signature);
+ expect(result).eq(true);
+ });
- it('bip322-simple for P2PKH', async function () {
- const message = 'hello world~';
- const wallet = LocalWallet.fromRandom(AddressType.P2PKH);
- await expectThrowError(() => wallet.signMessage(message, 'bip322-simple'), 'Not support address type to sign');
- });
+ it('bip322-simple for P2PKH', async function () {
+ const message = 'hello world~';
+ const wallet = LocalWallet.fromRandom(AddressType.P2PKH);
+ await expectThrowError(() => wallet.signMessage(message, 'bip322-simple'), 'Not support address type to sign');
+ });
- // https://github.com/bitcoin/bips/blob/master/bip-0322.mediawiki
- it('pass the example1 in bip-0322.mediawiki', async function () {
- const message = '';
- const wallet = new LocalWallet(
- 'L3VFeEujGtevx9w18HD1fhRbCH67Az2dpCymeRE1SoPK6XQtaN2k',
- AddressType.P2WPKH,
- NetworkType.MAINNET
- );
- const signature =
- 'AkcwRAIgM2gBAQqvZX15ZiysmKmQpDrG83avLIT492QBzLnQIxYCIBaTpOaD20qRlEylyxFSeEA2ba9YOixpX8z46TSDtS40ASECx/EgAxlkQpQ9hYjgGu6EBCPMVPwVIVJqO4XCsMvViHI=';
- const result = verifyMessageOfBIP322Simple(wallet.address, message, signature);
- expect(result).eq(true);
- });
+ // https://github.com/bitcoin/bips/blob/master/bip-0322.mediawiki
+ it('pass the example1 in bip-0322.mediawiki', async function () {
+ const message = '';
+ const wallet = new LocalWallet(
+ 'L3VFeEujGtevx9w18HD1fhRbCH67Az2dpCymeRE1SoPK6XQtaN2k',
+ AddressType.P2WPKH,
+ NetworkType.MAINNET
+ );
+ const signature =
+ 'AkcwRAIgM2gBAQqvZX15ZiysmKmQpDrG83avLIT492QBzLnQIxYCIBaTpOaD20qRlEylyxFSeEA2ba9YOixpX8z46TSDtS40ASECx/EgAxlkQpQ9hYjgGu6EBCPMVPwVIVJqO4XCsMvViHI=';
+ const result = verifyMessageOfBIP322Simple(wallet.address, message, signature);
+ expect(result).eq(true);
+ });
- it('pass the example2 in bip-0322.mediawiki', async function () {
- const message = 'Hello World';
- const wallet = new LocalWallet(
- 'L3VFeEujGtevx9w18HD1fhRbCH67Az2dpCymeRE1SoPK6XQtaN2k',
- AddressType.P2WPKH,
- NetworkType.MAINNET
- );
- const signature =
- 'AkcwRAIgZRfIY3p7/DoVTty6YZbWS71bc5Vct9p9Fia83eRmw2QCICK/ENGfwLtptFluMGs2KsqoNSk89pO7F29zJLUx9a/sASECx/EgAxlkQpQ9hYjgGu6EBCPMVPwVIVJqO4XCsMvViHI=';
- const result = verifyMessageOfBIP322Simple(wallet.address, message, signature);
- expect(result).eq(true);
- });
+ it('pass the example2 in bip-0322.mediawiki', async function () {
+ const message = 'Hello World';
+ const wallet = new LocalWallet(
+ 'L3VFeEujGtevx9w18HD1fhRbCH67Az2dpCymeRE1SoPK6XQtaN2k',
+ AddressType.P2WPKH,
+ NetworkType.MAINNET
+ );
+ const signature =
+ 'AkcwRAIgZRfIY3p7/DoVTty6YZbWS71bc5Vct9p9Fia83eRmw2QCICK/ENGfwLtptFluMGs2KsqoNSk89pO7F29zJLUx9a/sASECx/EgAxlkQpQ9hYjgGu6EBCPMVPwVIVJqO4XCsMvViHI=';
+ const result = verifyMessageOfBIP322Simple(wallet.address, message, signature);
+ expect(result).eq(true);
+ });
- it('same with unisat wallet 1.1.33', async function () {
- const message = 'hello';
- const wallet = new LocalWallet(
- 'L3VFeEujGtevx9w18HD1fhRbCH67Az2dpCymeRE1SoPK6XQtaN2k',
- AddressType.P2TR,
- NetworkType.MAINNET
- );
- const signature_now = await wallet.signMessage(message, 'bip322-simple');
- const signature_old = 'AUCNuph9ZfpmxxVZozX4jVUYDXU3rR481/id9sQRUYTwdYWiLUE1cftTK2chYJENB0eYCLPykIC4Zi+U4DQ9zqew';
+ it('same with unisat wallet 1.1.33', async function () {
+ const message = 'hello';
+ const wallet = new LocalWallet(
+ 'L3VFeEujGtevx9w18HD1fhRbCH67Az2dpCymeRE1SoPK6XQtaN2k',
+ AddressType.P2TR,
+ NetworkType.MAINNET
+ );
- expect(signature_now).eq(signature_old);
- });
+ const signature_now = await wallet.signMessage(message, 'bip322-simple');
+ //const signature_old = 'AUCNuph9ZfpmxxVZozX4jVUYDXU3rR481/id9sQRUYTwdYWiLUE1cftTK2chYJENB0eYCLPykIC4Zi+U4DQ9zqew';
+ const signature_old =
+ 'AUBRZJdM1Lhd3AaOOiWOLe1wO+qE7Ly4Dkq2Kfz+QSBwN1O4ITEfH50RywVolNhKAg7Z6/eeTyxHBzLBotPlq7NS';
- it('deterministic ecdsa', async function () {
- const message = 'hello';
- const wallet = new LocalWallet(
- 'L3VFeEujGtevx9w18HD1fhRbCH67Az2dpCymeRE1SoPK6XQtaN2k',
- AddressType.P2TR,
- NetworkType.MAINNET
- );
- const signature = await wallet.signMessage(message, 'ecdsa');
- const pubkey = await wallet.getPublicKey();
- const result = await verifyMessageOfECDSA(pubkey, message, signature);
- expect(result).eq(true);
- expect(signature).eq('IAR9YCVMTeNIGzStagcrMfAJI0ehg8QT4dULe8n25Tw8VFo+15jgNRrzY282xGu7fnpmpQVKdi7d9evDBUkUpwk=');
- });
+ expect(signature_now).eq(signature_old);
+ });
+
+ it('deterministic ecdsa', async function () {
+ const message = 'hello';
+ const wallet = new LocalWallet(
+ 'L3VFeEujGtevx9w18HD1fhRbCH67Az2dpCymeRE1SoPK6XQtaN2k',
+ AddressType.P2TR,
+ NetworkType.MAINNET
+ );
+ const signature = await wallet.signMessage(message, 'ecdsa');
+ const pubkey = await wallet.getPublicKey();
+ const result = await verifyMessageOfECDSA(pubkey, message, signature);
+ expect(result).eq(true);
+ expect(signature).eq(
+ 'IAR9YCVMTeNIGzStagcrMfAJI0ehg8QT4dULe8n25Tw8VFo+15jgNRrzY282xGu7fnpmpQVKdi7d9evDBUkUpwk='
+ );
+ });
});
diff --git a/yarn.lock b/yarn.lock
index 04e32a7..9041751 100644
--- a/yarn.lock
+++ b/yarn.lock
@@ -3,115 +3,109 @@
"@ampproject/remapping@^2.2.0":
- version "2.2.1"
- resolved "https://registry.yarnpkg.com/@ampproject/remapping/-/remapping-2.2.1.tgz#99e8e11851128b8702cd57c33684f1d0f260b630"
- integrity sha512-lFMjJTrFL3j7L9yBxwYfCq2k6qqwHyzuUl/XBnif78PWTJYyL/dfowQHWE3sp6U6ZzqWiiIZnpTMO96zhkjwtg==
+ version "2.3.0"
+ resolved "https://registry.yarnpkg.com/@ampproject/remapping/-/remapping-2.3.0.tgz#ed441b6fa600072520ce18b43d2c8cc8caecc7f4"
+ integrity sha512-30iZtAPgz+LTIYoeivqYo853f02jBYSd5uGnGpkFV0M3xOt9aN73erkgYAmZU43x4VfqcnLxW9Kpg3R5LC4YYw==
dependencies:
- "@jridgewell/gen-mapping" "^0.3.0"
- "@jridgewell/trace-mapping" "^0.3.9"
+ "@jridgewell/gen-mapping" "^0.3.5"
+ "@jridgewell/trace-mapping" "^0.3.24"
-"@apocentre/alias-sampling@^0.5.3":
- version "0.5.3"
- resolved "https://registry.yarnpkg.com/@apocentre/alias-sampling/-/alias-sampling-0.5.3.tgz#897ff181b48ad7b2bcb4ecf29400214888244f08"
- integrity sha512-7UDWIIF9hIeJqfKXkNIzkVandlwLf1FWTSdrb9iXvOP8oF544JRXQjCbiTmCv2c9n44n/FIWtehhBfNuAx2CZA==
-
-"@babel/code-frame@^7.22.13", "@babel/code-frame@^7.23.5":
- version "7.23.5"
- resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.23.5.tgz#9009b69a8c602293476ad598ff53e4562e15c244"
- integrity sha512-CgH3s1a96LipHCmSUmYFPwY7MNx8C3avkq7i4Wl3cfa662ldtUe4VM1TPXX70pfmrlWTb6jLqTYrZyT2ZTJBgA==
+"@babel/code-frame@^7.24.7":
+ version "7.24.7"
+ resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.24.7.tgz#882fd9e09e8ee324e496bd040401c6f046ef4465"
+ integrity sha512-BcYH1CVJBO9tvyIZ2jVeXgSIMvGZ2FDRvDdOIVQyuklNKSsx+eppDEBq/g47Ayw+RqNFE+URvOShmf+f/qwAlA==
dependencies:
- "@babel/highlight" "^7.23.4"
- chalk "^2.4.2"
+ "@babel/highlight" "^7.24.7"
+ picocolors "^1.0.0"
-"@babel/compat-data@^7.22.6", "@babel/compat-data@^7.23.3", "@babel/compat-data@^7.23.5":
- version "7.23.5"
- resolved "https://registry.yarnpkg.com/@babel/compat-data/-/compat-data-7.23.5.tgz#ffb878728bb6bdcb6f4510aa51b1be9afb8cfd98"
- integrity sha512-uU27kfDRlhfKl+w1U6vp16IuvSLtjAxdArVXPa9BvLkrr7CYIsxH5adpHObeAGY/41+syctUWOZ140a2Rvkgjw==
+"@babel/compat-data@^7.22.6", "@babel/compat-data@^7.25.2":
+ version "7.25.2"
+ resolved "https://registry.yarnpkg.com/@babel/compat-data/-/compat-data-7.25.2.tgz#e41928bd33475305c586f6acbbb7e3ade7a6f7f5"
+ integrity sha512-bYcppcpKBvX4znYaPEeFau03bp89ShqNMLs+rmdptMw+heSZh9+z84d2YG+K7cYLbWwzdjtDoW/uqZmPjulClQ==
"@babel/core@^7.16.7":
- version "7.23.6"
- resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.23.6.tgz#8be77cd77c55baadcc1eae1c33df90ab6d2151d4"
- integrity sha512-FxpRyGjrMJXh7X3wGLGhNDCRiwpWEF74sKjTLDJSG5Kyvow3QZaG0Adbqzi9ZrVjTWpsX+2cxWXD71NMg93kdw==
+ version "7.25.2"
+ resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.25.2.tgz#ed8eec275118d7613e77a352894cd12ded8eba77"
+ integrity sha512-BBt3opiCOxUr9euZ5/ro/Xv8/V7yJ5bjYMqG/C1YAo8MIKAnumZalCN+msbci3Pigy4lIQfPUpfMM27HMGaYEA==
dependencies:
"@ampproject/remapping" "^2.2.0"
- "@babel/code-frame" "^7.23.5"
- "@babel/generator" "^7.23.6"
- "@babel/helper-compilation-targets" "^7.23.6"
- "@babel/helper-module-transforms" "^7.23.3"
- "@babel/helpers" "^7.23.6"
- "@babel/parser" "^7.23.6"
- "@babel/template" "^7.22.15"
- "@babel/traverse" "^7.23.6"
- "@babel/types" "^7.23.6"
+ "@babel/code-frame" "^7.24.7"
+ "@babel/generator" "^7.25.0"
+ "@babel/helper-compilation-targets" "^7.25.2"
+ "@babel/helper-module-transforms" "^7.25.2"
+ "@babel/helpers" "^7.25.0"
+ "@babel/parser" "^7.25.0"
+ "@babel/template" "^7.25.0"
+ "@babel/traverse" "^7.25.2"
+ "@babel/types" "^7.25.2"
convert-source-map "^2.0.0"
debug "^4.1.0"
gensync "^1.0.0-beta.2"
json5 "^2.2.3"
semver "^6.3.1"
-"@babel/generator@^7.23.6":
- version "7.23.6"
- resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.23.6.tgz#9e1fca4811c77a10580d17d26b57b036133f3c2e"
- integrity sha512-qrSfCYxYQB5owCmGLbl8XRpX1ytXlpueOb0N0UmQwA073KZxejgQTzAmJezxvpwQD9uGtK2shHdi55QT+MbjIw==
+"@babel/generator@^7.25.0":
+ version "7.25.0"
+ resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.25.0.tgz#f858ddfa984350bc3d3b7f125073c9af6988f18e"
+ integrity sha512-3LEEcj3PVW8pW2R1SR1M89g/qrYk/m/mB/tLqn7dn4sbBUQyTqnlod+II2U4dqiGtUmkcnAmkMDralTFZttRiw==
dependencies:
- "@babel/types" "^7.23.6"
- "@jridgewell/gen-mapping" "^0.3.2"
- "@jridgewell/trace-mapping" "^0.3.17"
+ "@babel/types" "^7.25.0"
+ "@jridgewell/gen-mapping" "^0.3.5"
+ "@jridgewell/trace-mapping" "^0.3.25"
jsesc "^2.5.1"
-"@babel/helper-annotate-as-pure@^7.22.5":
- version "7.22.5"
- resolved "https://registry.yarnpkg.com/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.22.5.tgz#e7f06737b197d580a01edf75d97e2c8be99d3882"
- integrity sha512-LvBTxu8bQSQkcyKOU+a1btnNFQ1dMAd0R6PyW3arXes06F6QLWLIrd681bxRPIXlrMGR3XYnW9JyML7dP3qgxg==
+"@babel/helper-annotate-as-pure@^7.24.7":
+ version "7.24.7"
+ resolved "https://registry.yarnpkg.com/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.24.7.tgz#5373c7bc8366b12a033b4be1ac13a206c6656aab"
+ integrity sha512-BaDeOonYvhdKw+JoMVkAixAAJzG2jVPIwWoKBPdYuY9b452e2rPuI9QPYh3KpofZ3pW2akOmwZLOiOsHMiqRAg==
dependencies:
- "@babel/types" "^7.22.5"
+ "@babel/types" "^7.24.7"
-"@babel/helper-builder-binary-assignment-operator-visitor@^7.22.15":
- version "7.22.15"
- resolved "https://registry.yarnpkg.com/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.22.15.tgz#5426b109cf3ad47b91120f8328d8ab1be8b0b956"
- integrity sha512-QkBXwGgaoC2GtGZRoma6kv7Szfv06khvhFav67ZExau2RaXzy8MpHSMO2PNoP2XtmQphJQRHFfg77Bq731Yizw==
+"@babel/helper-builder-binary-assignment-operator-visitor@^7.24.7":
+ version "7.24.7"
+ resolved "https://registry.yarnpkg.com/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.24.7.tgz#37d66feb012024f2422b762b9b2a7cfe27c7fba3"
+ integrity sha512-xZeCVVdwb4MsDBkkyZ64tReWYrLRHlMN72vP7Bdm3OUOuyFZExhsHUUnuWnm2/XOlAJzR0LfPpB56WXZn0X/lA==
dependencies:
- "@babel/types" "^7.22.15"
+ "@babel/traverse" "^7.24.7"
+ "@babel/types" "^7.24.7"
-"@babel/helper-compilation-targets@^7.22.15", "@babel/helper-compilation-targets@^7.22.6", "@babel/helper-compilation-targets@^7.23.6":
- version "7.23.6"
- resolved "https://registry.yarnpkg.com/@babel/helper-compilation-targets/-/helper-compilation-targets-7.23.6.tgz#4d79069b16cbcf1461289eccfbbd81501ae39991"
- integrity sha512-9JB548GZoQVmzrFgp8o7KxdgkTGm6xs9DW0o/Pim72UDjzr5ObUQ6ZzYPqA+g9OTS2bBQoctLJrky0RDCAWRgQ==
+"@babel/helper-compilation-targets@^7.22.6", "@babel/helper-compilation-targets@^7.24.7", "@babel/helper-compilation-targets@^7.24.8", "@babel/helper-compilation-targets@^7.25.2":
+ version "7.25.2"
+ resolved "https://registry.yarnpkg.com/@babel/helper-compilation-targets/-/helper-compilation-targets-7.25.2.tgz#e1d9410a90974a3a5a66e84ff55ef62e3c02d06c"
+ integrity sha512-U2U5LsSaZ7TAt3cfaymQ8WHh0pxvdHoEk6HVpaexxixjyEquMh0L0YNJNM6CTGKMXV1iksi0iZkGw4AcFkPaaw==
dependencies:
- "@babel/compat-data" "^7.23.5"
- "@babel/helper-validator-option" "^7.23.5"
- browserslist "^4.22.2"
+ "@babel/compat-data" "^7.25.2"
+ "@babel/helper-validator-option" "^7.24.8"
+ browserslist "^4.23.1"
lru-cache "^5.1.1"
semver "^6.3.1"
-"@babel/helper-create-class-features-plugin@^7.22.15", "@babel/helper-create-class-features-plugin@^7.23.6":
- version "7.23.6"
- resolved "https://registry.yarnpkg.com/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.23.6.tgz#b04d915ce92ce363666f816a884cdcfc9be04953"
- integrity sha512-cBXU1vZni/CpGF29iTu4YRbOZt3Wat6zCoMDxRF1MayiEc4URxOj31tT65HUM0CRpMowA3HCJaAOVOUnMf96cw==
- dependencies:
- "@babel/helper-annotate-as-pure" "^7.22.5"
- "@babel/helper-environment-visitor" "^7.22.20"
- "@babel/helper-function-name" "^7.23.0"
- "@babel/helper-member-expression-to-functions" "^7.23.0"
- "@babel/helper-optimise-call-expression" "^7.22.5"
- "@babel/helper-replace-supers" "^7.22.20"
- "@babel/helper-skip-transparent-expression-wrappers" "^7.22.5"
- "@babel/helper-split-export-declaration" "^7.22.6"
+"@babel/helper-create-class-features-plugin@^7.24.7", "@babel/helper-create-class-features-plugin@^7.25.0":
+ version "7.25.0"
+ resolved "https://registry.yarnpkg.com/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.25.0.tgz#a109bf9c3d58dfed83aaf42e85633c89f43a6253"
+ integrity sha512-GYM6BxeQsETc9mnct+nIIpf63SAyzvyYN7UB/IlTyd+MBg06afFGp0mIeUqGyWgS2mxad6vqbMrHVlaL3m70sQ==
+ dependencies:
+ "@babel/helper-annotate-as-pure" "^7.24.7"
+ "@babel/helper-member-expression-to-functions" "^7.24.8"
+ "@babel/helper-optimise-call-expression" "^7.24.7"
+ "@babel/helper-replace-supers" "^7.25.0"
+ "@babel/helper-skip-transparent-expression-wrappers" "^7.24.7"
+ "@babel/traverse" "^7.25.0"
semver "^6.3.1"
-"@babel/helper-create-regexp-features-plugin@^7.18.6", "@babel/helper-create-regexp-features-plugin@^7.22.15", "@babel/helper-create-regexp-features-plugin@^7.22.5":
- version "7.22.15"
- resolved "https://registry.yarnpkg.com/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.22.15.tgz#5ee90093914ea09639b01c711db0d6775e558be1"
- integrity sha512-29FkPLFjn4TPEa3RE7GpW+qbE8tlsu3jntNYNfcGsc49LphF1PQIiD+vMZ1z1xVOKt+93khA9tc2JBs3kBjA7w==
+"@babel/helper-create-regexp-features-plugin@^7.18.6", "@babel/helper-create-regexp-features-plugin@^7.24.7", "@babel/helper-create-regexp-features-plugin@^7.25.0":
+ version "7.25.2"
+ resolved "https://registry.yarnpkg.com/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.25.2.tgz#24c75974ed74183797ffd5f134169316cd1808d9"
+ integrity sha512-+wqVGP+DFmqwFD3EH6TMTfUNeqDehV3E/dl+Sd54eaXqm17tEUNbEIn4sVivVowbvUpOtIGxdo3GoXyDH9N/9g==
dependencies:
- "@babel/helper-annotate-as-pure" "^7.22.5"
+ "@babel/helper-annotate-as-pure" "^7.24.7"
regexpu-core "^5.3.1"
semver "^6.3.1"
-"@babel/helper-define-polyfill-provider@^0.4.4":
- version "0.4.4"
- resolved "https://registry.yarnpkg.com/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.4.4.tgz#64df615451cb30e94b59a9696022cffac9a10088"
- integrity sha512-QcJMILQCu2jm5TFPGA3lCpJJTeEP+mqeXooG/NZbg/h5FTFi6V0+99ahlRsW8/kRLyb24LZVCCiclDedhLKcBA==
+"@babel/helper-define-polyfill-provider@^0.6.2":
+ version "0.6.2"
+ resolved "https://registry.yarnpkg.com/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.6.2.tgz#18594f789c3594acb24cfdb4a7f7b7d2e8bd912d"
+ integrity sha512-LV76g+C502biUK6AyZ3LK10vDpDyCzZnhZFXkH1L75zHPj68+qc8Zfpx2th+gzwA2MzyK+1g/3EPl62yFnVttQ==
dependencies:
"@babel/helper-compilation-targets" "^7.22.6"
"@babel/helper-plugin-utils" "^7.22.5"
@@ -119,172 +113,165 @@
lodash.debounce "^4.0.8"
resolve "^1.14.2"
-"@babel/helper-environment-visitor@^7.22.20":
- version "7.22.20"
- resolved "https://registry.yarnpkg.com/@babel/helper-environment-visitor/-/helper-environment-visitor-7.22.20.tgz#96159db61d34a29dba454c959f5ae4a649ba9167"
- integrity sha512-zfedSIzFhat/gFhWfHtgWvlec0nqB9YEIVrpuwjruLlXfUSnA8cJB0miHKwqDnQ7d32aKo2xt88/xZptwxbfhA==
-
-"@babel/helper-function-name@^7.22.5", "@babel/helper-function-name@^7.23.0":
- version "7.23.0"
- resolved "https://registry.yarnpkg.com/@babel/helper-function-name/-/helper-function-name-7.23.0.tgz#1f9a3cdbd5b2698a670c30d2735f9af95ed52759"
- integrity sha512-OErEqsrxjZTJciZ4Oo+eoZqeW9UIiOcuYKRJA4ZAgV9myA+pOXhhmpfNCKjEH/auVfEYVFJ6y1Tc4r0eIApqiw==
- dependencies:
- "@babel/template" "^7.22.15"
- "@babel/types" "^7.23.0"
+"@babel/helper-member-expression-to-functions@^7.24.8":
+ version "7.24.8"
+ resolved "https://registry.yarnpkg.com/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.24.8.tgz#6155e079c913357d24a4c20480db7c712a5c3fb6"
+ integrity sha512-LABppdt+Lp/RlBxqrh4qgf1oEH/WxdzQNDJIu5gC/W1GyvPVrOBiItmmM8wan2fm4oYqFuFfkXmlGpLQhPY8CA==
+ dependencies:
+ "@babel/traverse" "^7.24.8"
+ "@babel/types" "^7.24.8"
+
+"@babel/helper-module-imports@^7.24.7":
+ version "7.24.7"
+ resolved "https://registry.yarnpkg.com/@babel/helper-module-imports/-/helper-module-imports-7.24.7.tgz#f2f980392de5b84c3328fc71d38bd81bbb83042b"
+ integrity sha512-8AyH3C+74cgCVVXow/myrynrAGv+nTVg5vKu2nZph9x7RcRwzmh0VFallJuFTZ9mx6u4eSdXZfcOzSqTUm0HCA==
+ dependencies:
+ "@babel/traverse" "^7.24.7"
+ "@babel/types" "^7.24.7"
+
+"@babel/helper-module-transforms@^7.24.7", "@babel/helper-module-transforms@^7.24.8", "@babel/helper-module-transforms@^7.25.0", "@babel/helper-module-transforms@^7.25.2":
+ version "7.25.2"
+ resolved "https://registry.yarnpkg.com/@babel/helper-module-transforms/-/helper-module-transforms-7.25.2.tgz#ee713c29768100f2776edf04d4eb23b8d27a66e6"
+ integrity sha512-BjyRAbix6j/wv83ftcVJmBt72QtHI56C7JXZoG2xATiLpmoC7dpd8WnkikExHDVPpi/3qCmO6WY1EaXOluiecQ==
+ dependencies:
+ "@babel/helper-module-imports" "^7.24.7"
+ "@babel/helper-simple-access" "^7.24.7"
+ "@babel/helper-validator-identifier" "^7.24.7"
+ "@babel/traverse" "^7.25.2"
+
+"@babel/helper-optimise-call-expression@^7.24.7":
+ version "7.24.7"
+ resolved "https://registry.yarnpkg.com/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.24.7.tgz#8b0a0456c92f6b323d27cfd00d1d664e76692a0f"
+ integrity sha512-jKiTsW2xmWwxT1ixIdfXUZp+P5yURx2suzLZr5Hi64rURpDYdMW0pv+Uf17EYk2Rd428Lx4tLsnjGJzYKDM/6A==
+ dependencies:
+ "@babel/types" "^7.24.7"
+
+"@babel/helper-plugin-utils@^7.0.0", "@babel/helper-plugin-utils@^7.10.4", "@babel/helper-plugin-utils@^7.12.13", "@babel/helper-plugin-utils@^7.14.5", "@babel/helper-plugin-utils@^7.18.6", "@babel/helper-plugin-utils@^7.22.5", "@babel/helper-plugin-utils@^7.24.7", "@babel/helper-plugin-utils@^7.24.8", "@babel/helper-plugin-utils@^7.8.0", "@babel/helper-plugin-utils@^7.8.3":
+ version "7.24.8"
+ resolved "https://registry.yarnpkg.com/@babel/helper-plugin-utils/-/helper-plugin-utils-7.24.8.tgz#94ee67e8ec0e5d44ea7baeb51e571bd26af07878"
+ integrity sha512-FFWx5142D8h2Mgr/iPVGH5G7w6jDn4jUSpZTyDnQO0Yn7Ks2Kuz6Pci8H6MPCoUJegd/UZQ3tAvfLCxQSnWWwg==
+
+"@babel/helper-remap-async-to-generator@^7.24.7", "@babel/helper-remap-async-to-generator@^7.25.0":
+ version "7.25.0"
+ resolved "https://registry.yarnpkg.com/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.25.0.tgz#d2f0fbba059a42d68e5e378feaf181ef6055365e"
+ integrity sha512-NhavI2eWEIz/H9dbrG0TuOicDhNexze43i5z7lEqwYm0WEZVTwnPpA0EafUTP7+6/W79HWIP2cTe3Z5NiSTVpw==
+ dependencies:
+ "@babel/helper-annotate-as-pure" "^7.24.7"
+ "@babel/helper-wrap-function" "^7.25.0"
+ "@babel/traverse" "^7.25.0"
+
+"@babel/helper-replace-supers@^7.24.7", "@babel/helper-replace-supers@^7.25.0":
+ version "7.25.0"
+ resolved "https://registry.yarnpkg.com/@babel/helper-replace-supers/-/helper-replace-supers-7.25.0.tgz#ff44deac1c9f619523fe2ca1fd650773792000a9"
+ integrity sha512-q688zIvQVYtZu+i2PsdIu/uWGRpfxzr5WESsfpShfZECkO+d2o+WROWezCi/Q6kJ0tfPa5+pUGUlfx2HhrA3Bg==
+ dependencies:
+ "@babel/helper-member-expression-to-functions" "^7.24.8"
+ "@babel/helper-optimise-call-expression" "^7.24.7"
+ "@babel/traverse" "^7.25.0"
+
+"@babel/helper-simple-access@^7.24.7":
+ version "7.24.7"
+ resolved "https://registry.yarnpkg.com/@babel/helper-simple-access/-/helper-simple-access-7.24.7.tgz#bcade8da3aec8ed16b9c4953b74e506b51b5edb3"
+ integrity sha512-zBAIvbCMh5Ts+b86r/CjU+4XGYIs+R1j951gxI3KmmxBMhCg4oQMsv6ZXQ64XOm/cvzfU1FmoCyt6+owc5QMYg==
+ dependencies:
+ "@babel/traverse" "^7.24.7"
+ "@babel/types" "^7.24.7"
+
+"@babel/helper-skip-transparent-expression-wrappers@^7.24.7":
+ version "7.24.7"
+ resolved "https://registry.yarnpkg.com/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.24.7.tgz#5f8fa83b69ed5c27adc56044f8be2b3ea96669d9"
+ integrity sha512-IO+DLT3LQUElMbpzlatRASEyQtfhSE0+m465v++3jyyXeBTBUjtVZg28/gHeV5mrTJqvEKhKroBGAvhW+qPHiQ==
+ dependencies:
+ "@babel/traverse" "^7.24.7"
+ "@babel/types" "^7.24.7"
+
+"@babel/helper-string-parser@^7.24.8":
+ version "7.24.8"
+ resolved "https://registry.yarnpkg.com/@babel/helper-string-parser/-/helper-string-parser-7.24.8.tgz#5b3329c9a58803d5df425e5785865881a81ca48d"
+ integrity sha512-pO9KhhRcuUyGnJWwyEgnRJTSIZHiT+vMD0kPeD+so0l7mxkMT19g3pjY9GTnHySck/hDzq+dtW/4VgnMkippsQ==
+
+"@babel/helper-validator-identifier@^7.24.7":
+ version "7.24.7"
+ resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.24.7.tgz#75b889cfaf9e35c2aaf42cf0d72c8e91719251db"
+ integrity sha512-rR+PBcQ1SMQDDyF6X0wxtG8QyLCgUB0eRAGguqRLfkCA87l7yAP7ehq8SNj96OOGTO8OBV70KhuFYcIkHXOg0w==
+
+"@babel/helper-validator-option@^7.24.7", "@babel/helper-validator-option@^7.24.8":
+ version "7.24.8"
+ resolved "https://registry.yarnpkg.com/@babel/helper-validator-option/-/helper-validator-option-7.24.8.tgz#3725cdeea8b480e86d34df15304806a06975e33d"
+ integrity sha512-xb8t9tD1MHLungh/AIoWYN+gVHaB9kwlu8gffXGSt3FFEIT7RjS+xWbc2vUD1UTZdIpKj/ab3rdqJ7ufngyi2Q==
+
+"@babel/helper-wrap-function@^7.25.0":
+ version "7.25.0"
+ resolved "https://registry.yarnpkg.com/@babel/helper-wrap-function/-/helper-wrap-function-7.25.0.tgz#dab12f0f593d6ca48c0062c28bcfb14ebe812f81"
+ integrity sha512-s6Q1ebqutSiZnEjaofc/UKDyC4SbzV5n5SrA2Gq8UawLycr3i04f1dX4OzoQVnexm6aOCh37SQNYlJ/8Ku+PMQ==
+ dependencies:
+ "@babel/template" "^7.25.0"
+ "@babel/traverse" "^7.25.0"
+ "@babel/types" "^7.25.0"
+
+"@babel/helpers@^7.25.0":
+ version "7.25.0"
+ resolved "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.25.0.tgz#e69beb7841cb93a6505531ede34f34e6a073650a"
+ integrity sha512-MjgLZ42aCm0oGjJj8CtSM3DB8NOOf8h2l7DCTePJs29u+v7yO/RBX9nShlKMgFnRks/Q4tBAe7Hxnov9VkGwLw==
+ dependencies:
+ "@babel/template" "^7.25.0"
+ "@babel/types" "^7.25.0"
+
+"@babel/highlight@^7.24.7":
+ version "7.24.7"
+ resolved "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.24.7.tgz#a05ab1df134b286558aae0ed41e6c5f731bf409d"
+ integrity sha512-EStJpq4OuY8xYfhGVXngigBJRWxftKX9ksiGDnmlY3o7B/V7KIAc9X4oiK87uPJSc/vs5L869bem5fhZa8caZw==
+ dependencies:
+ "@babel/helper-validator-identifier" "^7.24.7"
+ chalk "^2.4.2"
+ js-tokens "^4.0.0"
+ picocolors "^1.0.0"
-"@babel/helper-hoist-variables@^7.22.5":
- version "7.22.5"
- resolved "https://registry.yarnpkg.com/@babel/helper-hoist-variables/-/helper-hoist-variables-7.22.5.tgz#c01a007dac05c085914e8fb652b339db50d823bb"
- integrity sha512-wGjk9QZVzvknA6yKIUURb8zY3grXCcOZt+/7Wcy8O2uctxhplmUPkOdlgoNhmdVee2c92JXbf1xpMtVNbfoxRw==
+"@babel/parser@^7.25.0", "@babel/parser@^7.25.3":
+ version "7.25.3"
+ resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.25.3.tgz#91fb126768d944966263f0657ab222a642b82065"
+ integrity sha512-iLTJKDbJ4hMvFPgQwwsVoxtHyWpKKPBrxkANrSYewDPaPpT5py5yeVkgPIJ7XYXhndxJpaA3PyALSXQ7u8e/Dw==
dependencies:
- "@babel/types" "^7.22.5"
+ "@babel/types" "^7.25.2"
-"@babel/helper-member-expression-to-functions@^7.22.15", "@babel/helper-member-expression-to-functions@^7.23.0":
- version "7.23.0"
- resolved "https://registry.yarnpkg.com/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.23.0.tgz#9263e88cc5e41d39ec18c9a3e0eced59a3e7d366"
- integrity sha512-6gfrPwh7OuT6gZyJZvd6WbTfrqAo7vm4xCzAXOusKqq/vWdKXphTpj5klHKNmRUU6/QRGlBsyU9mAIPaWHlqJA==
+"@babel/plugin-bugfix-firefox-class-in-computed-class-key@^7.25.3":
+ version "7.25.3"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-bugfix-firefox-class-in-computed-class-key/-/plugin-bugfix-firefox-class-in-computed-class-key-7.25.3.tgz#dca427b45a6c0f5c095a1c639dfe2476a3daba7f"
+ integrity sha512-wUrcsxZg6rqBXG05HG1FPYgsP6EvwF4WpBbxIpWIIYnH8wG0gzx3yZY3dtEHas4sTAOGkbTsc9EGPxwff8lRoA==
dependencies:
- "@babel/types" "^7.23.0"
-
-"@babel/helper-module-imports@^7.22.15":
- version "7.22.15"
- resolved "https://registry.yarnpkg.com/@babel/helper-module-imports/-/helper-module-imports-7.22.15.tgz#16146307acdc40cc00c3b2c647713076464bdbf0"
- integrity sha512-0pYVBnDKZO2fnSPCrgM/6WMc7eS20Fbok+0r88fp+YtWVLZrp4CkafFGIp+W0VKw4a22sgebPT99y+FDNMdP4w==
- dependencies:
- "@babel/types" "^7.22.15"
+ "@babel/helper-plugin-utils" "^7.24.8"
+ "@babel/traverse" "^7.25.3"
-"@babel/helper-module-transforms@^7.23.3":
- version "7.23.3"
- resolved "https://registry.yarnpkg.com/@babel/helper-module-transforms/-/helper-module-transforms-7.23.3.tgz#d7d12c3c5d30af5b3c0fcab2a6d5217773e2d0f1"
- integrity sha512-7bBs4ED9OmswdfDzpz4MpWgSrV7FXlc3zIagvLFjS5H+Mk7Snr21vQ6QwrsoCGMfNC4e4LQPdoULEt4ykz0SRQ==
- dependencies:
- "@babel/helper-environment-visitor" "^7.22.20"
- "@babel/helper-module-imports" "^7.22.15"
- "@babel/helper-simple-access" "^7.22.5"
- "@babel/helper-split-export-declaration" "^7.22.6"
- "@babel/helper-validator-identifier" "^7.22.20"
-
-"@babel/helper-optimise-call-expression@^7.22.5":
- version "7.22.5"
- resolved "https://registry.yarnpkg.com/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.22.5.tgz#f21531a9ccbff644fdd156b4077c16ff0c3f609e"
- integrity sha512-HBwaojN0xFRx4yIvpwGqxiV2tUfl7401jlok564NgB9EHS1y6QT17FmKWm4ztqjeVdXLuC4fSvHc5ePpQjoTbw==
- dependencies:
- "@babel/types" "^7.22.5"
-
-"@babel/helper-plugin-utils@^7.0.0", "@babel/helper-plugin-utils@^7.10.4", "@babel/helper-plugin-utils@^7.12.13", "@babel/helper-plugin-utils@^7.14.5", "@babel/helper-plugin-utils@^7.18.6", "@babel/helper-plugin-utils@^7.22.5", "@babel/helper-plugin-utils@^7.8.0", "@babel/helper-plugin-utils@^7.8.3":
- version "7.22.5"
- resolved "https://registry.yarnpkg.com/@babel/helper-plugin-utils/-/helper-plugin-utils-7.22.5.tgz#dd7ee3735e8a313b9f7b05a773d892e88e6d7295"
- integrity sha512-uLls06UVKgFG9QD4OeFYLEGteMIAa5kpTPcFL28yuCIIzsf6ZyKZMllKVOCZFhiZ5ptnwX4mtKdWCBE/uT4amg==
-
-"@babel/helper-remap-async-to-generator@^7.22.20":
- version "7.22.20"
- resolved "https://registry.yarnpkg.com/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.22.20.tgz#7b68e1cb4fa964d2996fd063723fb48eca8498e0"
- integrity sha512-pBGyV4uBqOns+0UvhsTO8qgl8hO89PmiDYv+/COyp1aeMcmfrfruz+/nCMFiYyFF/Knn0yfrC85ZzNFjembFTw==
- dependencies:
- "@babel/helper-annotate-as-pure" "^7.22.5"
- "@babel/helper-environment-visitor" "^7.22.20"
- "@babel/helper-wrap-function" "^7.22.20"
-
-"@babel/helper-replace-supers@^7.22.20":
- version "7.22.20"
- resolved "https://registry.yarnpkg.com/@babel/helper-replace-supers/-/helper-replace-supers-7.22.20.tgz#e37d367123ca98fe455a9887734ed2e16eb7a793"
- integrity sha512-qsW0In3dbwQUbK8kejJ4R7IHVGwHJlV6lpG6UA7a9hSa2YEiAib+N1T2kr6PEeUT+Fl7najmSOS6SmAwCHK6Tw==
- dependencies:
- "@babel/helper-environment-visitor" "^7.22.20"
- "@babel/helper-member-expression-to-functions" "^7.22.15"
- "@babel/helper-optimise-call-expression" "^7.22.5"
-
-"@babel/helper-simple-access@^7.22.5":
- version "7.22.5"
- resolved "https://registry.yarnpkg.com/@babel/helper-simple-access/-/helper-simple-access-7.22.5.tgz#4938357dc7d782b80ed6dbb03a0fba3d22b1d5de"
- integrity sha512-n0H99E/K+Bika3++WNL17POvo4rKWZ7lZEp1Q+fStVbUi8nxPQEBOlTmCOxW/0JsS56SKKQ+ojAe2pHKJHN35w==
- dependencies:
- "@babel/types" "^7.22.5"
-
-"@babel/helper-skip-transparent-expression-wrappers@^7.22.5":
- version "7.22.5"
- resolved "https://registry.yarnpkg.com/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.22.5.tgz#007f15240b5751c537c40e77abb4e89eeaaa8847"
- integrity sha512-tK14r66JZKiC43p8Ki33yLBVJKlQDFoA8GYN67lWCDCqoL6EMMSuM9b+Iff2jHaM/RRFYl7K+iiru7hbRqNx8Q==
- dependencies:
- "@babel/types" "^7.22.5"
-
-"@babel/helper-split-export-declaration@^7.22.6":
- version "7.22.6"
- resolved "https://registry.yarnpkg.com/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.22.6.tgz#322c61b7310c0997fe4c323955667f18fcefb91c"
- integrity sha512-AsUnxuLhRYsisFiaJwvp1QF+I3KjD5FOxut14q/GzovUe6orHLesW2C7d754kRm53h5gqrz6sFl6sxc4BVtE/g==
- dependencies:
- "@babel/types" "^7.22.5"
-
-"@babel/helper-string-parser@^7.23.4":
- version "7.23.4"
- resolved "https://registry.yarnpkg.com/@babel/helper-string-parser/-/helper-string-parser-7.23.4.tgz#9478c707febcbbe1ddb38a3d91a2e054ae622d83"
- integrity sha512-803gmbQdqwdf4olxrX4AJyFBV/RTr3rSmOj0rKwesmzlfhYNDEs+/iOcznzpNWlJlIlTJC2QfPFcHB6DlzdVLQ==
-
-"@babel/helper-validator-identifier@^7.22.20":
- version "7.22.20"
- resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.22.20.tgz#c4ae002c61d2879e724581d96665583dbc1dc0e0"
- integrity sha512-Y4OZ+ytlatR8AI+8KZfKuL5urKp7qey08ha31L8b3BwewJAoJamTzyvxPR/5D+KkdJCGPq/+8TukHBlY10FX9A==
-
-"@babel/helper-validator-option@^7.22.15", "@babel/helper-validator-option@^7.23.5":
- version "7.23.5"
- resolved "https://registry.yarnpkg.com/@babel/helper-validator-option/-/helper-validator-option-7.23.5.tgz#907a3fbd4523426285365d1206c423c4c5520307"
- integrity sha512-85ttAOMLsr53VgXkTbkx8oA6YTfT4q7/HzXSLEYmjcSTJPMPQtvq1BD79Byep5xMUYbGRzEpDsjUf3dyp54IKw==
-
-"@babel/helper-wrap-function@^7.22.20":
- version "7.22.20"
- resolved "https://registry.yarnpkg.com/@babel/helper-wrap-function/-/helper-wrap-function-7.22.20.tgz#15352b0b9bfb10fc9c76f79f6342c00e3411a569"
- integrity sha512-pms/UwkOpnQe/PDAEdV/d7dVCoBbB+R4FvYoHGZz+4VPcg7RtYy2KP7S2lbuWM6FCSgob5wshfGESbC/hzNXZw==
- dependencies:
- "@babel/helper-function-name" "^7.22.5"
- "@babel/template" "^7.22.15"
- "@babel/types" "^7.22.19"
-
-"@babel/helpers@^7.23.6":
- version "7.23.6"
- resolved "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.23.6.tgz#d03af2ee5fb34691eec0cda90f5ecbb4d4da145a"
- integrity sha512-wCfsbN4nBidDRhpDhvcKlzHWCTlgJYUUdSJfzXb2NuBssDSIjc3xcb+znA7l+zYsFljAcGM0aFkN40cR3lXiGA==
+"@babel/plugin-bugfix-safari-class-field-initializer-scope@^7.25.0":
+ version "7.25.0"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-bugfix-safari-class-field-initializer-scope/-/plugin-bugfix-safari-class-field-initializer-scope-7.25.0.tgz#cd0c583e01369ef51676bdb3d7b603e17d2b3f73"
+ integrity sha512-Bm4bH2qsX880b/3ziJ8KD711LT7z4u8CFudmjqle65AZj/HNUFhEf90dqYv6O86buWvSBmeQDjv0Tn2aF/bIBA==
dependencies:
- "@babel/template" "^7.22.15"
- "@babel/traverse" "^7.23.6"
- "@babel/types" "^7.23.6"
-
-"@babel/highlight@^7.23.4":
- version "7.23.4"
- resolved "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.23.4.tgz#edaadf4d8232e1a961432db785091207ead0621b"
- integrity sha512-acGdbYSfp2WheJoJm/EBBBLh/ID8KDc64ISZ9DYtBmC8/Q204PZJLHyzeB5qMzJ5trcOkybd78M4x2KWsUq++A==
- dependencies:
- "@babel/helper-validator-identifier" "^7.22.20"
- chalk "^2.4.2"
- js-tokens "^4.0.0"
-
-"@babel/parser@^7.22.15", "@babel/parser@^7.23.6":
- version "7.23.6"
- resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.23.6.tgz#ba1c9e512bda72a47e285ae42aff9d2a635a9e3b"
- integrity sha512-Z2uID7YJ7oNvAI20O9X0bblw7Qqs8Q2hFy0R9tAfnfLkp5MW0UH9eUvnDSnFwKZ0AvgS1ucqR4KzvVHgnke1VQ==
+ "@babel/helper-plugin-utils" "^7.24.8"
-"@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@^7.23.3":
- version "7.23.3"
- resolved "https://registry.yarnpkg.com/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression/-/plugin-bugfix-safari-id-destructuring-collision-in-function-expression-7.23.3.tgz#5cd1c87ba9380d0afb78469292c954fee5d2411a"
- integrity sha512-iRkKcCqb7iGnq9+3G6rZ+Ciz5VywC4XNRHe57lKM+jOeYAoR0lVqdeeDRfh0tQcTfw/+vBhHn926FmQhLtlFLQ==
+"@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@^7.25.0":
+ version "7.25.0"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression/-/plugin-bugfix-safari-id-destructuring-collision-in-function-expression-7.25.0.tgz#749bde80356b295390954643de7635e0dffabe73"
+ integrity sha512-lXwdNZtTmeVOOFtwM/WDe7yg1PL8sYhRk/XH0FzbR2HDQ0xC+EnQ/JHeoMYSavtU115tnUk0q9CDyq8si+LMAA==
dependencies:
- "@babel/helper-plugin-utils" "^7.22.5"
+ "@babel/helper-plugin-utils" "^7.24.8"
-"@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining@^7.23.3":
- version "7.23.3"
- resolved "https://registry.yarnpkg.com/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining/-/plugin-bugfix-v8-spread-parameters-in-optional-chaining-7.23.3.tgz#f6652bb16b94f8f9c20c50941e16e9756898dc5d"
- integrity sha512-WwlxbfMNdVEpQjZmK5mhm7oSwD3dS6eU+Iwsi4Knl9wAletWem7kaRsGOG+8UEbRyqxY4SS5zvtfXwX+jMxUwQ==
+"@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining@^7.24.7":
+ version "7.24.7"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining/-/plugin-bugfix-v8-spread-parameters-in-optional-chaining-7.24.7.tgz#e4eabdd5109acc399b38d7999b2ef66fc2022f89"
+ integrity sha512-+izXIbke1T33mY4MSNnrqhPXDz01WYhEf3yF5NbnUtkiNnm+XBZJl3kNfoK6NKmYlz/D07+l2GWVK/QfDkNCuQ==
dependencies:
- "@babel/helper-plugin-utils" "^7.22.5"
- "@babel/helper-skip-transparent-expression-wrappers" "^7.22.5"
- "@babel/plugin-transform-optional-chaining" "^7.23.3"
+ "@babel/helper-plugin-utils" "^7.24.7"
+ "@babel/helper-skip-transparent-expression-wrappers" "^7.24.7"
+ "@babel/plugin-transform-optional-chaining" "^7.24.7"
-"@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly@^7.23.3":
- version "7.23.3"
- resolved "https://registry.yarnpkg.com/@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly/-/plugin-bugfix-v8-static-class-fields-redefine-readonly-7.23.3.tgz#20c60d4639d18f7da8602548512e9d3a4c8d7098"
- integrity sha512-XaJak1qcityzrX0/IU5nKHb34VaibwP3saKqG6a/tppelgllOH13LUann4ZCIBcVOeE6H18K4Vx9QKkVww3z/w==
+"@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly@^7.25.0":
+ version "7.25.0"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly/-/plugin-bugfix-v8-static-class-fields-redefine-readonly-7.25.0.tgz#3a82a70e7cb7294ad2559465ebcb871dfbf078fb"
+ integrity sha512-tggFrk1AIShG/RUQbEwt2Tr/E+ObkfwrPjR6BjbRvsx24+PSjK8zrq0GWPNCjo8qpRx4DuJzlcvWJqlm+0h3kw==
dependencies:
- "@babel/helper-environment-visitor" "^7.22.20"
- "@babel/helper-plugin-utils" "^7.22.5"
+ "@babel/helper-plugin-utils" "^7.24.8"
+ "@babel/traverse" "^7.25.0"
"@babel/plugin-proposal-private-property-in-object@7.21.0-placeholder-for-preset-env.2":
version "7.21.0-placeholder-for-preset-env.2"
@@ -326,19 +313,19 @@
dependencies:
"@babel/helper-plugin-utils" "^7.8.3"
-"@babel/plugin-syntax-import-assertions@^7.23.3":
- version "7.23.3"
- resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-import-assertions/-/plugin-syntax-import-assertions-7.23.3.tgz#9c05a7f592982aff1a2768260ad84bcd3f0c77fc"
- integrity sha512-lPgDSU+SJLK3xmFDTV2ZRQAiM7UuUjGidwBywFavObCiZc1BeAAcMtHJKUya92hPHO+at63JJPLygilZard8jw==
+"@babel/plugin-syntax-import-assertions@^7.24.7":
+ version "7.24.7"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-import-assertions/-/plugin-syntax-import-assertions-7.24.7.tgz#2a0b406b5871a20a841240586b1300ce2088a778"
+ integrity sha512-Ec3NRUMoi8gskrkBe3fNmEQfxDvY8bgfQpz6jlk/41kX9eUjvpyqWU7PBP/pLAvMaSQjbMNKJmvX57jP+M6bPg==
dependencies:
- "@babel/helper-plugin-utils" "^7.22.5"
+ "@babel/helper-plugin-utils" "^7.24.7"
-"@babel/plugin-syntax-import-attributes@^7.23.3":
- version "7.23.3"
- resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-import-attributes/-/plugin-syntax-import-attributes-7.23.3.tgz#992aee922cf04512461d7dae3ff6951b90a2dc06"
- integrity sha512-pawnE0P9g10xgoP7yKr6CK63K2FMsTE+FZidZO/1PwRdzmAPVs+HS1mAURUsgaoxammTJvULUdIkEK0gOcU2tA==
+"@babel/plugin-syntax-import-attributes@^7.24.7":
+ version "7.24.7"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-import-attributes/-/plugin-syntax-import-attributes-7.24.7.tgz#b4f9ea95a79e6912480c4b626739f86a076624ca"
+ integrity sha512-hbX+lKKeUMGihnK8nvKqmXBInriT3GVjzXKFriV3YC6APGxMbP8RZNFwy91+hocLXq90Mta+HshoB31802bb8A==
dependencies:
- "@babel/helper-plugin-utils" "^7.22.5"
+ "@babel/helper-plugin-utils" "^7.24.7"
"@babel/plugin-syntax-import-meta@^7.10.4":
version "7.10.4"
@@ -354,12 +341,12 @@
dependencies:
"@babel/helper-plugin-utils" "^7.8.0"
-"@babel/plugin-syntax-jsx@^7.23.3":
- version "7.23.3"
- resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.23.3.tgz#8f2e4f8a9b5f9aa16067e142c1ac9cd9f810f473"
- integrity sha512-EB2MELswq55OHUoRZLGg/zC7QWUKfNLpE57m/S2yr1uEneIgsTgrSzXP3NXEsMkVn76OlaVVnzN+ugObuYGwhg==
+"@babel/plugin-syntax-jsx@^7.24.7":
+ version "7.24.7"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.24.7.tgz#39a1fa4a7e3d3d7f34e2acc6be585b718d30e02d"
+ integrity sha512-6ddciUPe/mpMnOKv/U+RSd2vvVy+Yw/JfBB0ZHYjEZt9NLHmCUylNYlsbqCCS1Bffjlb0fCwC9Vqz+sBz6PsiQ==
dependencies:
- "@babel/helper-plugin-utils" "^7.22.5"
+ "@babel/helper-plugin-utils" "^7.24.7"
"@babel/plugin-syntax-logical-assignment-operators@^7.10.4":
version "7.10.4"
@@ -417,12 +404,12 @@
dependencies:
"@babel/helper-plugin-utils" "^7.14.5"
-"@babel/plugin-syntax-typescript@^7.23.3":
- version "7.23.3"
- resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.23.3.tgz#24f460c85dbbc983cd2b9c4994178bcc01df958f"
- integrity sha512-9EiNjVJOMwCO+43TqoTrgQ8jMwcAd0sWyXi9RPfIsLTj4R2MADDDQXELhffaUx/uJv2AYcxBgPwH6j4TIA4ytQ==
+"@babel/plugin-syntax-typescript@^7.24.7":
+ version "7.24.7"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.24.7.tgz#58d458271b4d3b6bb27ee6ac9525acbb259bad1c"
+ integrity sha512-c/+fVeJBB0FeKsFvwytYiUD+LBvhHjGSI0g446PRGdSVGZLRNArBUno2PETbAly3tpiNAQR5XaZ+JslxkotsbA==
dependencies:
- "@babel/helper-plugin-utils" "^7.22.5"
+ "@babel/helper-plugin-utils" "^7.24.7"
"@babel/plugin-syntax-unicode-sets-regex@^7.18.6":
version "7.18.6"
@@ -432,437 +419,444 @@
"@babel/helper-create-regexp-features-plugin" "^7.18.6"
"@babel/helper-plugin-utils" "^7.18.6"
-"@babel/plugin-transform-arrow-functions@^7.23.3":
- version "7.23.3"
- resolved "https://registry.yarnpkg.com/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.23.3.tgz#94c6dcfd731af90f27a79509f9ab7fb2120fc38b"
- integrity sha512-NzQcQrzaQPkaEwoTm4Mhyl8jI1huEL/WWIEvudjTCMJ9aBZNpsJbMASx7EQECtQQPS/DcnFpo0FIh3LvEO9cxQ==
+"@babel/plugin-transform-arrow-functions@^7.24.7":
+ version "7.24.7"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.24.7.tgz#4f6886c11e423bd69f3ce51dbf42424a5f275514"
+ integrity sha512-Dt9LQs6iEY++gXUwY03DNFat5C2NbO48jj+j/bSAz6b3HgPs39qcPiYt77fDObIcFwj3/C2ICX9YMwGflUoSHQ==
dependencies:
- "@babel/helper-plugin-utils" "^7.22.5"
+ "@babel/helper-plugin-utils" "^7.24.7"
-"@babel/plugin-transform-async-generator-functions@^7.23.4":
- version "7.23.4"
- resolved "https://registry.yarnpkg.com/@babel/plugin-transform-async-generator-functions/-/plugin-transform-async-generator-functions-7.23.4.tgz#93ac8e3531f347fba519b4703f9ff2a75c6ae27a"
- integrity sha512-efdkfPhHYTtn0G6n2ddrESE91fgXxjlqLsnUtPWnJs4a4mZIbUaK7ffqKIIUKXSHwcDvaCVX6GXkaJJFqtX7jw==
+"@babel/plugin-transform-async-generator-functions@^7.25.0":
+ version "7.25.0"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-transform-async-generator-functions/-/plugin-transform-async-generator-functions-7.25.0.tgz#b785cf35d73437f6276b1e30439a57a50747bddf"
+ integrity sha512-uaIi2FdqzjpAMvVqvB51S42oC2JEVgh0LDsGfZVDysWE8LrJtQC2jvKmOqEYThKyB7bDEb7BP1GYWDm7tABA0Q==
dependencies:
- "@babel/helper-environment-visitor" "^7.22.20"
- "@babel/helper-plugin-utils" "^7.22.5"
- "@babel/helper-remap-async-to-generator" "^7.22.20"
+ "@babel/helper-plugin-utils" "^7.24.8"
+ "@babel/helper-remap-async-to-generator" "^7.25.0"
"@babel/plugin-syntax-async-generators" "^7.8.4"
+ "@babel/traverse" "^7.25.0"
-"@babel/plugin-transform-async-to-generator@^7.23.3":
- version "7.23.3"
- resolved "https://registry.yarnpkg.com/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.23.3.tgz#d1f513c7a8a506d43f47df2bf25f9254b0b051fa"
- integrity sha512-A7LFsKi4U4fomjqXJlZg/u0ft/n8/7n7lpffUP/ZULx/DtV9SGlNKZolHH6PE8Xl1ngCc0M11OaeZptXVkfKSw==
+"@babel/plugin-transform-async-to-generator@^7.24.7":
+ version "7.24.7"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.24.7.tgz#72a3af6c451d575842a7e9b5a02863414355bdcc"
+ integrity sha512-SQY01PcJfmQ+4Ash7NE+rpbLFbmqA2GPIgqzxfFTL4t1FKRq4zTms/7htKpoCUI9OcFYgzqfmCdH53s6/jn5fA==
dependencies:
- "@babel/helper-module-imports" "^7.22.15"
- "@babel/helper-plugin-utils" "^7.22.5"
- "@babel/helper-remap-async-to-generator" "^7.22.20"
+ "@babel/helper-module-imports" "^7.24.7"
+ "@babel/helper-plugin-utils" "^7.24.7"
+ "@babel/helper-remap-async-to-generator" "^7.24.7"
-"@babel/plugin-transform-block-scoped-functions@^7.23.3":
- version "7.23.3"
- resolved "https://registry.yarnpkg.com/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.23.3.tgz#fe1177d715fb569663095e04f3598525d98e8c77"
- integrity sha512-vI+0sIaPIO6CNuM9Kk5VmXcMVRiOpDh7w2zZt9GXzmE/9KD70CUEVhvPR/etAeNK/FAEkhxQtXOzVF3EuRL41A==
+"@babel/plugin-transform-block-scoped-functions@^7.24.7":
+ version "7.24.7"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.24.7.tgz#a4251d98ea0c0f399dafe1a35801eaba455bbf1f"
+ integrity sha512-yO7RAz6EsVQDaBH18IDJcMB1HnrUn2FJ/Jslc/WtPPWcjhpUJXU/rjbwmluzp7v/ZzWcEhTMXELnnsz8djWDwQ==
dependencies:
- "@babel/helper-plugin-utils" "^7.22.5"
+ "@babel/helper-plugin-utils" "^7.24.7"
-"@babel/plugin-transform-block-scoping@^7.23.4":
- version "7.23.4"
- resolved "https://registry.yarnpkg.com/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.23.4.tgz#b2d38589531c6c80fbe25e6b58e763622d2d3cf5"
- integrity sha512-0QqbP6B6HOh7/8iNR4CQU2Th/bbRtBp4KS9vcaZd1fZ0wSh5Fyssg0UCIHwxh+ka+pNDREbVLQnHCMHKZfPwfw==
+"@babel/plugin-transform-block-scoping@^7.25.0":
+ version "7.25.0"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.25.0.tgz#23a6ed92e6b006d26b1869b1c91d1b917c2ea2ac"
+ integrity sha512-yBQjYoOjXlFv9nlXb3f1casSHOZkWr29NX+zChVanLg5Nc157CrbEX9D7hxxtTpuFy7Q0YzmmWfJxzvps4kXrQ==
dependencies:
- "@babel/helper-plugin-utils" "^7.22.5"
+ "@babel/helper-plugin-utils" "^7.24.8"
-"@babel/plugin-transform-class-properties@^7.23.3":
- version "7.23.3"
- resolved "https://registry.yarnpkg.com/@babel/plugin-transform-class-properties/-/plugin-transform-class-properties-7.23.3.tgz#35c377db11ca92a785a718b6aa4e3ed1eb65dc48"
- integrity sha512-uM+AN8yCIjDPccsKGlw271xjJtGii+xQIF/uMPS8H15L12jZTsLfF4o5vNO7d/oUguOyfdikHGc/yi9ge4SGIg==
+"@babel/plugin-transform-class-properties@^7.24.7":
+ version "7.24.7"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-transform-class-properties/-/plugin-transform-class-properties-7.24.7.tgz#256879467b57b0b68c7ddfc5b76584f398cd6834"
+ integrity sha512-vKbfawVYayKcSeSR5YYzzyXvsDFWU2mD8U5TFeXtbCPLFUqe7GyCgvO6XDHzje862ODrOwy6WCPmKeWHbCFJ4w==
dependencies:
- "@babel/helper-create-class-features-plugin" "^7.22.15"
- "@babel/helper-plugin-utils" "^7.22.5"
+ "@babel/helper-create-class-features-plugin" "^7.24.7"
+ "@babel/helper-plugin-utils" "^7.24.7"
-"@babel/plugin-transform-class-static-block@^7.23.4":
- version "7.23.4"
- resolved "https://registry.yarnpkg.com/@babel/plugin-transform-class-static-block/-/plugin-transform-class-static-block-7.23.4.tgz#2a202c8787a8964dd11dfcedf994d36bfc844ab5"
- integrity sha512-nsWu/1M+ggti1SOALj3hfx5FXzAY06fwPJsUZD4/A5e1bWi46VUIWtD+kOX6/IdhXGsXBWllLFDSnqSCdUNydQ==
+"@babel/plugin-transform-class-static-block@^7.24.7":
+ version "7.24.7"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-transform-class-static-block/-/plugin-transform-class-static-block-7.24.7.tgz#c82027ebb7010bc33c116d4b5044fbbf8c05484d"
+ integrity sha512-HMXK3WbBPpZQufbMG4B46A90PkuuhN9vBCb5T8+VAHqvAqvcLi+2cKoukcpmUYkszLhScU3l1iudhrks3DggRQ==
dependencies:
- "@babel/helper-create-class-features-plugin" "^7.22.15"
- "@babel/helper-plugin-utils" "^7.22.5"
+ "@babel/helper-create-class-features-plugin" "^7.24.7"
+ "@babel/helper-plugin-utils" "^7.24.7"
"@babel/plugin-syntax-class-static-block" "^7.14.5"
-"@babel/plugin-transform-classes@^7.23.5":
- version "7.23.5"
- resolved "https://registry.yarnpkg.com/@babel/plugin-transform-classes/-/plugin-transform-classes-7.23.5.tgz#e7a75f815e0c534cc4c9a39c56636c84fc0d64f2"
- integrity sha512-jvOTR4nicqYC9yzOHIhXG5emiFEOpappSJAl73SDSEDcybD+Puuze8Tnpb9p9qEyYup24tq891gkaygIFvWDqg==
+"@babel/plugin-transform-classes@^7.25.0":
+ version "7.25.0"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-transform-classes/-/plugin-transform-classes-7.25.0.tgz#63122366527d88e0ef61b612554fe3f8c793991e"
+ integrity sha512-xyi6qjr/fYU304fiRwFbekzkqVJZ6A7hOjWZd+89FVcBqPV3S9Wuozz82xdpLspckeaafntbzglaW4pqpzvtSw==
dependencies:
- "@babel/helper-annotate-as-pure" "^7.22.5"
- "@babel/helper-compilation-targets" "^7.22.15"
- "@babel/helper-environment-visitor" "^7.22.20"
- "@babel/helper-function-name" "^7.23.0"
- "@babel/helper-optimise-call-expression" "^7.22.5"
- "@babel/helper-plugin-utils" "^7.22.5"
- "@babel/helper-replace-supers" "^7.22.20"
- "@babel/helper-split-export-declaration" "^7.22.6"
+ "@babel/helper-annotate-as-pure" "^7.24.7"
+ "@babel/helper-compilation-targets" "^7.24.8"
+ "@babel/helper-plugin-utils" "^7.24.8"
+ "@babel/helper-replace-supers" "^7.25.0"
+ "@babel/traverse" "^7.25.0"
globals "^11.1.0"
-"@babel/plugin-transform-computed-properties@^7.23.3":
- version "7.23.3"
- resolved "https://registry.yarnpkg.com/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.23.3.tgz#652e69561fcc9d2b50ba4f7ac7f60dcf65e86474"
- integrity sha512-dTj83UVTLw/+nbiHqQSFdwO9CbTtwq1DsDqm3CUEtDrZNET5rT5E6bIdTlOftDTDLMYxvxHNEYO4B9SLl8SLZw==
+"@babel/plugin-transform-computed-properties@^7.24.7":
+ version "7.24.7"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.24.7.tgz#4cab3214e80bc71fae3853238d13d097b004c707"
+ integrity sha512-25cS7v+707Gu6Ds2oY6tCkUwsJ9YIDbggd9+cu9jzzDgiNq7hR/8dkzxWfKWnTic26vsI3EsCXNd4iEB6e8esQ==
dependencies:
- "@babel/helper-plugin-utils" "^7.22.5"
- "@babel/template" "^7.22.15"
+ "@babel/helper-plugin-utils" "^7.24.7"
+ "@babel/template" "^7.24.7"
-"@babel/plugin-transform-destructuring@^7.23.3":
- version "7.23.3"
- resolved "https://registry.yarnpkg.com/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.23.3.tgz#8c9ee68228b12ae3dff986e56ed1ba4f3c446311"
- integrity sha512-n225npDqjDIr967cMScVKHXJs7rout1q+tt50inyBCPkyZ8KxeI6d+GIbSBTT/w/9WdlWDOej3V9HE5Lgk57gw==
+"@babel/plugin-transform-destructuring@^7.24.8":
+ version "7.24.8"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.24.8.tgz#c828e814dbe42a2718a838c2a2e16a408e055550"
+ integrity sha512-36e87mfY8TnRxc7yc6M9g9gOB7rKgSahqkIKwLpz4Ppk2+zC2Cy1is0uwtuSG6AE4zlTOUa+7JGz9jCJGLqQFQ==
dependencies:
- "@babel/helper-plugin-utils" "^7.22.5"
+ "@babel/helper-plugin-utils" "^7.24.8"
-"@babel/plugin-transform-dotall-regex@^7.23.3":
- version "7.23.3"
- resolved "https://registry.yarnpkg.com/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.23.3.tgz#3f7af6054882ede89c378d0cf889b854a993da50"
- integrity sha512-vgnFYDHAKzFaTVp+mneDsIEbnJ2Np/9ng9iviHw3P/KVcgONxpNULEW/51Z/BaFojG2GI2GwwXck5uV1+1NOYQ==
+"@babel/plugin-transform-dotall-regex@^7.24.7":
+ version "7.24.7"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.24.7.tgz#5f8bf8a680f2116a7207e16288a5f974ad47a7a0"
+ integrity sha512-ZOA3W+1RRTSWvyqcMJDLqbchh7U4NRGqwRfFSVbOLS/ePIP4vHB5e8T8eXcuqyN1QkgKyj5wuW0lcS85v4CrSw==
dependencies:
- "@babel/helper-create-regexp-features-plugin" "^7.22.15"
- "@babel/helper-plugin-utils" "^7.22.5"
+ "@babel/helper-create-regexp-features-plugin" "^7.24.7"
+ "@babel/helper-plugin-utils" "^7.24.7"
-"@babel/plugin-transform-duplicate-keys@^7.23.3":
- version "7.23.3"
- resolved "https://registry.yarnpkg.com/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.23.3.tgz#664706ca0a5dfe8d066537f99032fc1dc8b720ce"
- integrity sha512-RrqQ+BQmU3Oyav3J+7/myfvRCq7Tbz+kKLLshUmMwNlDHExbGL7ARhajvoBJEvc+fCguPPu887N+3RRXBVKZUA==
+"@babel/plugin-transform-duplicate-keys@^7.24.7":
+ version "7.24.7"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.24.7.tgz#dd20102897c9a2324e5adfffb67ff3610359a8ee"
+ integrity sha512-JdYfXyCRihAe46jUIliuL2/s0x0wObgwwiGxw/UbgJBr20gQBThrokO4nYKgWkD7uBaqM7+9x5TU7NkExZJyzw==
dependencies:
- "@babel/helper-plugin-utils" "^7.22.5"
+ "@babel/helper-plugin-utils" "^7.24.7"
-"@babel/plugin-transform-dynamic-import@^7.23.4":
- version "7.23.4"
- resolved "https://registry.yarnpkg.com/@babel/plugin-transform-dynamic-import/-/plugin-transform-dynamic-import-7.23.4.tgz#c7629e7254011ac3630d47d7f34ddd40ca535143"
- integrity sha512-V6jIbLhdJK86MaLh4Jpghi8ho5fGzt3imHOBu/x0jlBaPYqDoWz4RDXjmMOfnh+JWNaQleEAByZLV0QzBT4YQQ==
+"@babel/plugin-transform-duplicate-named-capturing-groups-regex@^7.25.0":
+ version "7.25.0"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-transform-duplicate-named-capturing-groups-regex/-/plugin-transform-duplicate-named-capturing-groups-regex-7.25.0.tgz#809af7e3339466b49c034c683964ee8afb3e2604"
+ integrity sha512-YLpb4LlYSc3sCUa35un84poXoraOiQucUTTu8X1j18JV+gNa8E0nyUf/CjZ171IRGr4jEguF+vzJU66QZhn29g==
dependencies:
- "@babel/helper-plugin-utils" "^7.22.5"
+ "@babel/helper-create-regexp-features-plugin" "^7.25.0"
+ "@babel/helper-plugin-utils" "^7.24.8"
+
+"@babel/plugin-transform-dynamic-import@^7.24.7":
+ version "7.24.7"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-transform-dynamic-import/-/plugin-transform-dynamic-import-7.24.7.tgz#4d8b95e3bae2b037673091aa09cd33fecd6419f4"
+ integrity sha512-sc3X26PhZQDb3JhORmakcbvkeInvxz+A8oda99lj7J60QRuPZvNAk9wQlTBS1ZynelDrDmTU4pw1tyc5d5ZMUg==
+ dependencies:
+ "@babel/helper-plugin-utils" "^7.24.7"
"@babel/plugin-syntax-dynamic-import" "^7.8.3"
-"@babel/plugin-transform-exponentiation-operator@^7.23.3":
- version "7.23.3"
- resolved "https://registry.yarnpkg.com/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.23.3.tgz#ea0d978f6b9232ba4722f3dbecdd18f450babd18"
- integrity sha512-5fhCsl1odX96u7ILKHBj4/Y8vipoqwsJMh4csSA8qFfxrZDEA4Ssku2DyNvMJSmZNOEBT750LfFPbtrnTP90BQ==
+"@babel/plugin-transform-exponentiation-operator@^7.24.7":
+ version "7.24.7"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.24.7.tgz#b629ee22645f412024297d5245bce425c31f9b0d"
+ integrity sha512-Rqe/vSc9OYgDajNIK35u7ot+KeCoetqQYFXM4Epf7M7ez3lWlOjrDjrwMei6caCVhfdw+mIKD4cgdGNy5JQotQ==
dependencies:
- "@babel/helper-builder-binary-assignment-operator-visitor" "^7.22.15"
- "@babel/helper-plugin-utils" "^7.22.5"
+ "@babel/helper-builder-binary-assignment-operator-visitor" "^7.24.7"
+ "@babel/helper-plugin-utils" "^7.24.7"
-"@babel/plugin-transform-export-namespace-from@^7.23.4":
- version "7.23.4"
- resolved "https://registry.yarnpkg.com/@babel/plugin-transform-export-namespace-from/-/plugin-transform-export-namespace-from-7.23.4.tgz#084c7b25e9a5c8271e987a08cf85807b80283191"
- integrity sha512-GzuSBcKkx62dGzZI1WVgTWvkkz84FZO5TC5T8dl/Tht/rAla6Dg/Mz9Yhypg+ezVACf/rgDuQt3kbWEv7LdUDQ==
+"@babel/plugin-transform-export-namespace-from@^7.24.7":
+ version "7.24.7"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-transform-export-namespace-from/-/plugin-transform-export-namespace-from-7.24.7.tgz#176d52d8d8ed516aeae7013ee9556d540c53f197"
+ integrity sha512-v0K9uNYsPL3oXZ/7F9NNIbAj2jv1whUEtyA6aujhekLs56R++JDQuzRcP2/z4WX5Vg/c5lE9uWZA0/iUoFhLTA==
dependencies:
- "@babel/helper-plugin-utils" "^7.22.5"
+ "@babel/helper-plugin-utils" "^7.24.7"
"@babel/plugin-syntax-export-namespace-from" "^7.8.3"
-"@babel/plugin-transform-for-of@^7.23.6":
- version "7.23.6"
- resolved "https://registry.yarnpkg.com/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.23.6.tgz#81c37e24171b37b370ba6aaffa7ac86bcb46f94e"
- integrity sha512-aYH4ytZ0qSuBbpfhuofbg/e96oQ7U2w1Aw/UQmKT+1l39uEhUPoFS3fHevDc1G0OvewyDudfMKY1OulczHzWIw==
+"@babel/plugin-transform-for-of@^7.24.7":
+ version "7.24.7"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.24.7.tgz#f25b33f72df1d8be76399e1b8f3f9d366eb5bc70"
+ integrity sha512-wo9ogrDG1ITTTBsy46oGiN1dS9A7MROBTcYsfS8DtsImMkHk9JXJ3EWQM6X2SUw4x80uGPlwj0o00Uoc6nEE3g==
dependencies:
- "@babel/helper-plugin-utils" "^7.22.5"
- "@babel/helper-skip-transparent-expression-wrappers" "^7.22.5"
+ "@babel/helper-plugin-utils" "^7.24.7"
+ "@babel/helper-skip-transparent-expression-wrappers" "^7.24.7"
-"@babel/plugin-transform-function-name@^7.23.3":
- version "7.23.3"
- resolved "https://registry.yarnpkg.com/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.23.3.tgz#8f424fcd862bf84cb9a1a6b42bc2f47ed630f8dc"
- integrity sha512-I1QXp1LxIvt8yLaib49dRW5Okt7Q4oaxao6tFVKS/anCdEOMtYwWVKoiOA1p34GOWIZjUK0E+zCp7+l1pfQyiw==
+"@babel/plugin-transform-function-name@^7.25.1":
+ version "7.25.1"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.25.1.tgz#b85e773097526c1a4fc4ba27322748643f26fc37"
+ integrity sha512-TVVJVdW9RKMNgJJlLtHsKDTydjZAbwIsn6ySBPQaEAUU5+gVvlJt/9nRmqVbsV/IBanRjzWoaAQKLoamWVOUuA==
dependencies:
- "@babel/helper-compilation-targets" "^7.22.15"
- "@babel/helper-function-name" "^7.23.0"
- "@babel/helper-plugin-utils" "^7.22.5"
+ "@babel/helper-compilation-targets" "^7.24.8"
+ "@babel/helper-plugin-utils" "^7.24.8"
+ "@babel/traverse" "^7.25.1"
-"@babel/plugin-transform-json-strings@^7.23.4":
- version "7.23.4"
- resolved "https://registry.yarnpkg.com/@babel/plugin-transform-json-strings/-/plugin-transform-json-strings-7.23.4.tgz#a871d9b6bd171976efad2e43e694c961ffa3714d"
- integrity sha512-81nTOqM1dMwZ/aRXQ59zVubN9wHGqk6UtqRK+/q+ciXmRy8fSolhGVvG09HHRGo4l6fr/c4ZhXUQH0uFW7PZbg==
+"@babel/plugin-transform-json-strings@^7.24.7":
+ version "7.24.7"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-transform-json-strings/-/plugin-transform-json-strings-7.24.7.tgz#f3e9c37c0a373fee86e36880d45b3664cedaf73a"
+ integrity sha512-2yFnBGDvRuxAaE/f0vfBKvtnvvqU8tGpMHqMNpTN2oWMKIR3NqFkjaAgGwawhqK/pIN2T3XdjGPdaG0vDhOBGw==
dependencies:
- "@babel/helper-plugin-utils" "^7.22.5"
+ "@babel/helper-plugin-utils" "^7.24.7"
"@babel/plugin-syntax-json-strings" "^7.8.3"
-"@babel/plugin-transform-literals@^7.23.3":
- version "7.23.3"
- resolved "https://registry.yarnpkg.com/@babel/plugin-transform-literals/-/plugin-transform-literals-7.23.3.tgz#8214665f00506ead73de157eba233e7381f3beb4"
- integrity sha512-wZ0PIXRxnwZvl9AYpqNUxpZ5BiTGrYt7kueGQ+N5FiQ7RCOD4cm8iShd6S6ggfVIWaJf2EMk8eRzAh52RfP4rQ==
+"@babel/plugin-transform-literals@^7.25.2":
+ version "7.25.2"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-transform-literals/-/plugin-transform-literals-7.25.2.tgz#deb1ad14fc5490b9a65ed830e025bca849d8b5f3"
+ integrity sha512-HQI+HcTbm9ur3Z2DkO+jgESMAMcYLuN/A7NRw9juzxAezN9AvqvUTnpKP/9kkYANz6u7dFlAyOu44ejuGySlfw==
dependencies:
- "@babel/helper-plugin-utils" "^7.22.5"
+ "@babel/helper-plugin-utils" "^7.24.8"
-"@babel/plugin-transform-logical-assignment-operators@^7.23.4":
- version "7.23.4"
- resolved "https://registry.yarnpkg.com/@babel/plugin-transform-logical-assignment-operators/-/plugin-transform-logical-assignment-operators-7.23.4.tgz#e599f82c51d55fac725f62ce55d3a0886279ecb5"
- integrity sha512-Mc/ALf1rmZTP4JKKEhUwiORU+vcfarFVLfcFiolKUo6sewoxSEgl36ak5t+4WamRsNr6nzjZXQjM35WsU+9vbg==
+"@babel/plugin-transform-logical-assignment-operators@^7.24.7":
+ version "7.24.7"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-transform-logical-assignment-operators/-/plugin-transform-logical-assignment-operators-7.24.7.tgz#a58fb6eda16c9dc8f9ff1c7b1ba6deb7f4694cb0"
+ integrity sha512-4D2tpwlQ1odXmTEIFWy9ELJcZHqrStlzK/dAOWYyxX3zT0iXQB6banjgeOJQXzEc4S0E0a5A+hahxPaEFYftsw==
dependencies:
- "@babel/helper-plugin-utils" "^7.22.5"
+ "@babel/helper-plugin-utils" "^7.24.7"
"@babel/plugin-syntax-logical-assignment-operators" "^7.10.4"
-"@babel/plugin-transform-member-expression-literals@^7.23.3":
- version "7.23.3"
- resolved "https://registry.yarnpkg.com/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.23.3.tgz#e37b3f0502289f477ac0e776b05a833d853cabcc"
- integrity sha512-sC3LdDBDi5x96LA+Ytekz2ZPk8i/Ck+DEuDbRAll5rknJ5XRTSaPKEYwomLcs1AA8wg9b3KjIQRsnApj+q51Ag==
+"@babel/plugin-transform-member-expression-literals@^7.24.7":
+ version "7.24.7"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.24.7.tgz#3b4454fb0e302e18ba4945ba3246acb1248315df"
+ integrity sha512-T/hRC1uqrzXMKLQ6UCwMT85S3EvqaBXDGf0FaMf4446Qx9vKwlghvee0+uuZcDUCZU5RuNi4781UQ7R308zzBw==
dependencies:
- "@babel/helper-plugin-utils" "^7.22.5"
+ "@babel/helper-plugin-utils" "^7.24.7"
-"@babel/plugin-transform-modules-amd@^7.23.3":
- version "7.23.3"
- resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.23.3.tgz#e19b55436a1416829df0a1afc495deedfae17f7d"
- integrity sha512-vJYQGxeKM4t8hYCKVBlZX/gtIY2I7mRGFNcm85sgXGMTBcoV3QdVtdpbcWEbzbfUIUZKwvgFT82mRvaQIebZzw==
+"@babel/plugin-transform-modules-amd@^7.24.7":
+ version "7.24.7"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.24.7.tgz#65090ed493c4a834976a3ca1cde776e6ccff32d7"
+ integrity sha512-9+pB1qxV3vs/8Hdmz/CulFB8w2tuu6EB94JZFsjdqxQokwGa9Unap7Bo2gGBGIvPmDIVvQrom7r5m/TCDMURhg==
dependencies:
- "@babel/helper-module-transforms" "^7.23.3"
- "@babel/helper-plugin-utils" "^7.22.5"
+ "@babel/helper-module-transforms" "^7.24.7"
+ "@babel/helper-plugin-utils" "^7.24.7"
-"@babel/plugin-transform-modules-commonjs@^7.23.3":
- version "7.23.3"
- resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.23.3.tgz#661ae831b9577e52be57dd8356b734f9700b53b4"
- integrity sha512-aVS0F65LKsdNOtcz6FRCpE4OgsP2OFnW46qNxNIX9h3wuzaNcSQsJysuMwqSibC98HPrf2vCgtxKNwS0DAlgcA==
+"@babel/plugin-transform-modules-commonjs@^7.24.7", "@babel/plugin-transform-modules-commonjs@^7.24.8":
+ version "7.24.8"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.24.8.tgz#ab6421e564b717cb475d6fff70ae7f103536ea3c"
+ integrity sha512-WHsk9H8XxRs3JXKWFiqtQebdh9b/pTk4EgueygFzYlTKAg0Ud985mSevdNjdXdFBATSKVJGQXP1tv6aGbssLKA==
dependencies:
- "@babel/helper-module-transforms" "^7.23.3"
- "@babel/helper-plugin-utils" "^7.22.5"
- "@babel/helper-simple-access" "^7.22.5"
+ "@babel/helper-module-transforms" "^7.24.8"
+ "@babel/helper-plugin-utils" "^7.24.8"
+ "@babel/helper-simple-access" "^7.24.7"
-"@babel/plugin-transform-modules-systemjs@^7.23.3":
- version "7.23.3"
- resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.23.3.tgz#fa7e62248931cb15b9404f8052581c302dd9de81"
- integrity sha512-ZxyKGTkF9xT9YJuKQRo19ewf3pXpopuYQd8cDXqNzc3mUNbOME0RKMoZxviQk74hwzfQsEe66dE92MaZbdHKNQ==
+"@babel/plugin-transform-modules-systemjs@^7.25.0":
+ version "7.25.0"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.25.0.tgz#8f46cdc5f9e5af74f3bd019485a6cbe59685ea33"
+ integrity sha512-YPJfjQPDXxyQWg/0+jHKj1llnY5f/R6a0p/vP4lPymxLu7Lvl4k2WMitqi08yxwQcCVUUdG9LCUj4TNEgAp3Jw==
dependencies:
- "@babel/helper-hoist-variables" "^7.22.5"
- "@babel/helper-module-transforms" "^7.23.3"
- "@babel/helper-plugin-utils" "^7.22.5"
- "@babel/helper-validator-identifier" "^7.22.20"
+ "@babel/helper-module-transforms" "^7.25.0"
+ "@babel/helper-plugin-utils" "^7.24.8"
+ "@babel/helper-validator-identifier" "^7.24.7"
+ "@babel/traverse" "^7.25.0"
-"@babel/plugin-transform-modules-umd@^7.23.3":
- version "7.23.3"
- resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.23.3.tgz#5d4395fccd071dfefe6585a4411aa7d6b7d769e9"
- integrity sha512-zHsy9iXX2nIsCBFPud3jKn1IRPWg3Ing1qOZgeKV39m1ZgIdpJqvlWVeiHBZC6ITRG0MfskhYe9cLgntfSFPIg==
+"@babel/plugin-transform-modules-umd@^7.24.7":
+ version "7.24.7"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.24.7.tgz#edd9f43ec549099620df7df24e7ba13b5c76efc8"
+ integrity sha512-3aytQvqJ/h9z4g8AsKPLvD4Zqi2qT+L3j7XoFFu1XBlZWEl2/1kWnhmAbxpLgPrHSY0M6UA02jyTiwUVtiKR6A==
dependencies:
- "@babel/helper-module-transforms" "^7.23.3"
- "@babel/helper-plugin-utils" "^7.22.5"
+ "@babel/helper-module-transforms" "^7.24.7"
+ "@babel/helper-plugin-utils" "^7.24.7"
-"@babel/plugin-transform-named-capturing-groups-regex@^7.22.5":
- version "7.22.5"
- resolved "https://registry.yarnpkg.com/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.22.5.tgz#67fe18ee8ce02d57c855185e27e3dc959b2e991f"
- integrity sha512-YgLLKmS3aUBhHaxp5hi1WJTgOUb/NCuDHzGT9z9WTt3YG+CPRhJs6nprbStx6DnWM4dh6gt7SU3sZodbZ08adQ==
+"@babel/plugin-transform-named-capturing-groups-regex@^7.24.7":
+ version "7.24.7"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.24.7.tgz#9042e9b856bc6b3688c0c2e4060e9e10b1460923"
+ integrity sha512-/jr7h/EWeJtk1U/uz2jlsCioHkZk1JJZVcc8oQsJ1dUlaJD83f4/6Zeh2aHt9BIFokHIsSeDfhUmju0+1GPd6g==
dependencies:
- "@babel/helper-create-regexp-features-plugin" "^7.22.5"
- "@babel/helper-plugin-utils" "^7.22.5"
+ "@babel/helper-create-regexp-features-plugin" "^7.24.7"
+ "@babel/helper-plugin-utils" "^7.24.7"
-"@babel/plugin-transform-new-target@^7.23.3":
- version "7.23.3"
- resolved "https://registry.yarnpkg.com/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.23.3.tgz#5491bb78ed6ac87e990957cea367eab781c4d980"
- integrity sha512-YJ3xKqtJMAT5/TIZnpAR3I+K+WaDowYbN3xyxI8zxx/Gsypwf9B9h0VB+1Nh6ACAAPRS5NSRje0uVv5i79HYGQ==
+"@babel/plugin-transform-new-target@^7.24.7":
+ version "7.24.7"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.24.7.tgz#31ff54c4e0555cc549d5816e4ab39241dfb6ab00"
+ integrity sha512-RNKwfRIXg4Ls/8mMTza5oPF5RkOW8Wy/WgMAp1/F1yZ8mMbtwXW+HDoJiOsagWrAhI5f57Vncrmr9XeT4CVapA==
dependencies:
- "@babel/helper-plugin-utils" "^7.22.5"
+ "@babel/helper-plugin-utils" "^7.24.7"
-"@babel/plugin-transform-nullish-coalescing-operator@^7.23.4":
- version "7.23.4"
- resolved "https://registry.yarnpkg.com/@babel/plugin-transform-nullish-coalescing-operator/-/plugin-transform-nullish-coalescing-operator-7.23.4.tgz#45556aad123fc6e52189ea749e33ce090637346e"
- integrity sha512-jHE9EVVqHKAQx+VePv5LLGHjmHSJR76vawFPTdlxR/LVJPfOEGxREQwQfjuZEOPTwG92X3LINSh3M40Rv4zpVA==
+"@babel/plugin-transform-nullish-coalescing-operator@^7.24.7":
+ version "7.24.7"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-transform-nullish-coalescing-operator/-/plugin-transform-nullish-coalescing-operator-7.24.7.tgz#1de4534c590af9596f53d67f52a92f12db984120"
+ integrity sha512-Ts7xQVk1OEocqzm8rHMXHlxvsfZ0cEF2yomUqpKENHWMF4zKk175Y4q8H5knJes6PgYad50uuRmt3UJuhBw8pQ==
dependencies:
- "@babel/helper-plugin-utils" "^7.22.5"
+ "@babel/helper-plugin-utils" "^7.24.7"
"@babel/plugin-syntax-nullish-coalescing-operator" "^7.8.3"
-"@babel/plugin-transform-numeric-separator@^7.23.4":
- version "7.23.4"
- resolved "https://registry.yarnpkg.com/@babel/plugin-transform-numeric-separator/-/plugin-transform-numeric-separator-7.23.4.tgz#03d08e3691e405804ecdd19dd278a40cca531f29"
- integrity sha512-mps6auzgwjRrwKEZA05cOwuDc9FAzoyFS4ZsG/8F43bTLf/TgkJg7QXOrPO1JO599iA3qgK9MXdMGOEC8O1h6Q==
+"@babel/plugin-transform-numeric-separator@^7.24.7":
+ version "7.24.7"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-transform-numeric-separator/-/plugin-transform-numeric-separator-7.24.7.tgz#bea62b538c80605d8a0fac9b40f48e97efa7de63"
+ integrity sha512-e6q1TiVUzvH9KRvicuxdBTUj4AdKSRwzIyFFnfnezpCfP2/7Qmbb8qbU2j7GODbl4JMkblitCQjKYUaX/qkkwA==
dependencies:
- "@babel/helper-plugin-utils" "^7.22.5"
+ "@babel/helper-plugin-utils" "^7.24.7"
"@babel/plugin-syntax-numeric-separator" "^7.10.4"
-"@babel/plugin-transform-object-rest-spread@^7.23.4":
- version "7.23.4"
- resolved "https://registry.yarnpkg.com/@babel/plugin-transform-object-rest-spread/-/plugin-transform-object-rest-spread-7.23.4.tgz#2b9c2d26bf62710460bdc0d1730d4f1048361b83"
- integrity sha512-9x9K1YyeQVw0iOXJlIzwm8ltobIIv7j2iLyP2jIhEbqPRQ7ScNgwQufU2I0Gq11VjyG4gI4yMXt2VFags+1N3g==
+"@babel/plugin-transform-object-rest-spread@^7.24.7":
+ version "7.24.7"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-transform-object-rest-spread/-/plugin-transform-object-rest-spread-7.24.7.tgz#d13a2b93435aeb8a197e115221cab266ba6e55d6"
+ integrity sha512-4QrHAr0aXQCEFni2q4DqKLD31n2DL+RxcwnNjDFkSG0eNQ/xCavnRkfCUjsyqGC2OviNJvZOF/mQqZBw7i2C5Q==
dependencies:
- "@babel/compat-data" "^7.23.3"
- "@babel/helper-compilation-targets" "^7.22.15"
- "@babel/helper-plugin-utils" "^7.22.5"
+ "@babel/helper-compilation-targets" "^7.24.7"
+ "@babel/helper-plugin-utils" "^7.24.7"
"@babel/plugin-syntax-object-rest-spread" "^7.8.3"
- "@babel/plugin-transform-parameters" "^7.23.3"
+ "@babel/plugin-transform-parameters" "^7.24.7"
-"@babel/plugin-transform-object-super@^7.23.3":
- version "7.23.3"
- resolved "https://registry.yarnpkg.com/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.23.3.tgz#81fdb636dcb306dd2e4e8fd80db5b2362ed2ebcd"
- integrity sha512-BwQ8q0x2JG+3lxCVFohg+KbQM7plfpBwThdW9A6TMtWwLsbDA01Ek2Zb/AgDN39BiZsExm4qrXxjk+P1/fzGrA==
+"@babel/plugin-transform-object-super@^7.24.7":
+ version "7.24.7"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.24.7.tgz#66eeaff7830bba945dd8989b632a40c04ed625be"
+ integrity sha512-A/vVLwN6lBrMFmMDmPPz0jnE6ZGx7Jq7d6sT/Ev4H65RER6pZ+kczlf1DthF5N0qaPHBsI7UXiE8Zy66nmAovg==
dependencies:
- "@babel/helper-plugin-utils" "^7.22.5"
- "@babel/helper-replace-supers" "^7.22.20"
+ "@babel/helper-plugin-utils" "^7.24.7"
+ "@babel/helper-replace-supers" "^7.24.7"
-"@babel/plugin-transform-optional-catch-binding@^7.23.4":
- version "7.23.4"
- resolved "https://registry.yarnpkg.com/@babel/plugin-transform-optional-catch-binding/-/plugin-transform-optional-catch-binding-7.23.4.tgz#318066de6dacce7d92fa244ae475aa8d91778017"
- integrity sha512-XIq8t0rJPHf6Wvmbn9nFxU6ao4c7WhghTR5WyV8SrJfUFzyxhCm4nhC+iAp3HFhbAKLfYpgzhJ6t4XCtVwqO5A==
+"@babel/plugin-transform-optional-catch-binding@^7.24.7":
+ version "7.24.7"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-transform-optional-catch-binding/-/plugin-transform-optional-catch-binding-7.24.7.tgz#00eabd883d0dd6a60c1c557548785919b6e717b4"
+ integrity sha512-uLEndKqP5BfBbC/5jTwPxLh9kqPWWgzN/f8w6UwAIirAEqiIVJWWY312X72Eub09g5KF9+Zn7+hT7sDxmhRuKA==
dependencies:
- "@babel/helper-plugin-utils" "^7.22.5"
+ "@babel/helper-plugin-utils" "^7.24.7"
"@babel/plugin-syntax-optional-catch-binding" "^7.8.3"
-"@babel/plugin-transform-optional-chaining@^7.23.3", "@babel/plugin-transform-optional-chaining@^7.23.4":
- version "7.23.4"
- resolved "https://registry.yarnpkg.com/@babel/plugin-transform-optional-chaining/-/plugin-transform-optional-chaining-7.23.4.tgz#6acf61203bdfc4de9d4e52e64490aeb3e52bd017"
- integrity sha512-ZU8y5zWOfjM5vZ+asjgAPwDaBjJzgufjES89Rs4Lpq63O300R/kOz30WCLo6BxxX6QVEilwSlpClnG5cZaikTA==
+"@babel/plugin-transform-optional-chaining@^7.24.7", "@babel/plugin-transform-optional-chaining@^7.24.8":
+ version "7.24.8"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-transform-optional-chaining/-/plugin-transform-optional-chaining-7.24.8.tgz#bb02a67b60ff0406085c13d104c99a835cdf365d"
+ integrity sha512-5cTOLSMs9eypEy8JUVvIKOu6NgvbJMnpG62VpIHrTmROdQ+L5mDAaI40g25k5vXti55JWNX5jCkq3HZxXBQANw==
dependencies:
- "@babel/helper-plugin-utils" "^7.22.5"
- "@babel/helper-skip-transparent-expression-wrappers" "^7.22.5"
+ "@babel/helper-plugin-utils" "^7.24.8"
+ "@babel/helper-skip-transparent-expression-wrappers" "^7.24.7"
"@babel/plugin-syntax-optional-chaining" "^7.8.3"
-"@babel/plugin-transform-parameters@^7.23.3":
- version "7.23.3"
- resolved "https://registry.yarnpkg.com/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.23.3.tgz#83ef5d1baf4b1072fa6e54b2b0999a7b2527e2af"
- integrity sha512-09lMt6UsUb3/34BbECKVbVwrT9bO6lILWln237z7sLaWnMsTi7Yc9fhX5DLpkJzAGfaReXI22wP41SZmnAA3Vw==
+"@babel/plugin-transform-parameters@^7.24.7":
+ version "7.24.7"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.24.7.tgz#5881f0ae21018400e320fc7eb817e529d1254b68"
+ integrity sha512-yGWW5Rr+sQOhK0Ot8hjDJuxU3XLRQGflvT4lhlSY0DFvdb3TwKaY26CJzHtYllU0vT9j58hc37ndFPsqT1SrzA==
dependencies:
- "@babel/helper-plugin-utils" "^7.22.5"
+ "@babel/helper-plugin-utils" "^7.24.7"
-"@babel/plugin-transform-private-methods@^7.23.3":
- version "7.23.3"
- resolved "https://registry.yarnpkg.com/@babel/plugin-transform-private-methods/-/plugin-transform-private-methods-7.23.3.tgz#b2d7a3c97e278bfe59137a978d53b2c2e038c0e4"
- integrity sha512-UzqRcRtWsDMTLrRWFvUBDwmw06tCQH9Rl1uAjfh6ijMSmGYQ+fpdB+cnqRC8EMh5tuuxSv0/TejGL+7vyj+50g==
+"@babel/plugin-transform-private-methods@^7.24.7":
+ version "7.24.7"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-transform-private-methods/-/plugin-transform-private-methods-7.24.7.tgz#e6318746b2ae70a59d023d5cc1344a2ba7a75f5e"
+ integrity sha512-COTCOkG2hn4JKGEKBADkA8WNb35TGkkRbI5iT845dB+NyqgO8Hn+ajPbSnIQznneJTa3d30scb6iz/DhH8GsJQ==
dependencies:
- "@babel/helper-create-class-features-plugin" "^7.22.15"
- "@babel/helper-plugin-utils" "^7.22.5"
+ "@babel/helper-create-class-features-plugin" "^7.24.7"
+ "@babel/helper-plugin-utils" "^7.24.7"
-"@babel/plugin-transform-private-property-in-object@^7.23.4":
- version "7.23.4"
- resolved "https://registry.yarnpkg.com/@babel/plugin-transform-private-property-in-object/-/plugin-transform-private-property-in-object-7.23.4.tgz#3ec711d05d6608fd173d9b8de39872d8dbf68bf5"
- integrity sha512-9G3K1YqTq3F4Vt88Djx1UZ79PDyj+yKRnUy7cZGSMe+a7jkwD259uKKuUzQlPkGam7R+8RJwh5z4xO27fA1o2A==
+"@babel/plugin-transform-private-property-in-object@^7.24.7":
+ version "7.24.7"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-transform-private-property-in-object/-/plugin-transform-private-property-in-object-7.24.7.tgz#4eec6bc701288c1fab5f72e6a4bbc9d67faca061"
+ integrity sha512-9z76mxwnwFxMyxZWEgdgECQglF2Q7cFLm0kMf8pGwt+GSJsY0cONKj/UuO4bOH0w/uAel3ekS4ra5CEAyJRmDA==
dependencies:
- "@babel/helper-annotate-as-pure" "^7.22.5"
- "@babel/helper-create-class-features-plugin" "^7.22.15"
- "@babel/helper-plugin-utils" "^7.22.5"
+ "@babel/helper-annotate-as-pure" "^7.24.7"
+ "@babel/helper-create-class-features-plugin" "^7.24.7"
+ "@babel/helper-plugin-utils" "^7.24.7"
"@babel/plugin-syntax-private-property-in-object" "^7.14.5"
-"@babel/plugin-transform-property-literals@^7.23.3":
- version "7.23.3"
- resolved "https://registry.yarnpkg.com/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.23.3.tgz#54518f14ac4755d22b92162e4a852d308a560875"
- integrity sha512-jR3Jn3y7cZp4oEWPFAlRsSWjxKe4PZILGBSd4nis1TsC5qeSpb+nrtihJuDhNI7QHiVbUaiXa0X2RZY3/TI6Nw==
+"@babel/plugin-transform-property-literals@^7.24.7":
+ version "7.24.7"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.24.7.tgz#f0d2ed8380dfbed949c42d4d790266525d63bbdc"
+ integrity sha512-EMi4MLQSHfd2nrCqQEWxFdha2gBCqU4ZcCng4WBGZ5CJL4bBRW0ptdqqDdeirGZcpALazVVNJqRmsO8/+oNCBA==
dependencies:
- "@babel/helper-plugin-utils" "^7.22.5"
+ "@babel/helper-plugin-utils" "^7.24.7"
-"@babel/plugin-transform-regenerator@^7.23.3":
- version "7.23.3"
- resolved "https://registry.yarnpkg.com/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.23.3.tgz#141afd4a2057298602069fce7f2dc5173e6c561c"
- integrity sha512-KP+75h0KghBMcVpuKisx3XTu9Ncut8Q8TuvGO4IhY+9D5DFEckQefOuIsB/gQ2tG71lCke4NMrtIPS8pOj18BQ==
+"@babel/plugin-transform-regenerator@^7.24.7":
+ version "7.24.7"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.24.7.tgz#021562de4534d8b4b1851759fd7af4e05d2c47f8"
+ integrity sha512-lq3fvXPdimDrlg6LWBoqj+r/DEWgONuwjuOuQCSYgRroXDH/IdM1C0IZf59fL5cHLpjEH/O6opIRBbqv7ELnuA==
dependencies:
- "@babel/helper-plugin-utils" "^7.22.5"
+ "@babel/helper-plugin-utils" "^7.24.7"
regenerator-transform "^0.15.2"
-"@babel/plugin-transform-reserved-words@^7.23.3":
- version "7.23.3"
- resolved "https://registry.yarnpkg.com/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.23.3.tgz#4130dcee12bd3dd5705c587947eb715da12efac8"
- integrity sha512-QnNTazY54YqgGxwIexMZva9gqbPa15t/x9VS+0fsEFWplwVpXYZivtgl43Z1vMpc1bdPP2PP8siFeVcnFvA3Cg==
+"@babel/plugin-transform-reserved-words@^7.24.7":
+ version "7.24.7"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.24.7.tgz#80037fe4fbf031fc1125022178ff3938bb3743a4"
+ integrity sha512-0DUq0pHcPKbjFZCfTss/pGkYMfy3vFWydkUBd9r0GHpIyfs2eCDENvqadMycRS9wZCXR41wucAfJHJmwA0UmoQ==
dependencies:
- "@babel/helper-plugin-utils" "^7.22.5"
+ "@babel/helper-plugin-utils" "^7.24.7"
"@babel/plugin-transform-runtime@^7.16.5":
- version "7.23.6"
- resolved "https://registry.yarnpkg.com/@babel/plugin-transform-runtime/-/plugin-transform-runtime-7.23.6.tgz#bf853cd0a675c16ee33e6ba2a63b536e75e5d754"
- integrity sha512-kF1Zg62aPseQ11orDhFRw+aPG/eynNQtI+TyY+m33qJa2cJ5EEvza2P2BNTIA9E5MyqFABHEyY6CPHwgdy9aNg==
- dependencies:
- "@babel/helper-module-imports" "^7.22.15"
- "@babel/helper-plugin-utils" "^7.22.5"
- babel-plugin-polyfill-corejs2 "^0.4.6"
- babel-plugin-polyfill-corejs3 "^0.8.5"
- babel-plugin-polyfill-regenerator "^0.5.3"
+ version "7.24.7"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-transform-runtime/-/plugin-transform-runtime-7.24.7.tgz#00a5bfaf8c43cf5c8703a8a6e82b59d9c58f38ca"
+ integrity sha512-YqXjrk4C+a1kZjewqt+Mmu2UuV1s07y8kqcUf4qYLnoqemhR4gRQikhdAhSVJioMjVTu6Mo6pAbaypEA3jY6fw==
+ dependencies:
+ "@babel/helper-module-imports" "^7.24.7"
+ "@babel/helper-plugin-utils" "^7.24.7"
+ babel-plugin-polyfill-corejs2 "^0.4.10"
+ babel-plugin-polyfill-corejs3 "^0.10.1"
+ babel-plugin-polyfill-regenerator "^0.6.1"
semver "^6.3.1"
-"@babel/plugin-transform-shorthand-properties@^7.23.3":
- version "7.23.3"
- resolved "https://registry.yarnpkg.com/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.23.3.tgz#97d82a39b0e0c24f8a981568a8ed851745f59210"
- integrity sha512-ED2fgqZLmexWiN+YNFX26fx4gh5qHDhn1O2gvEhreLW2iI63Sqm4llRLCXALKrCnbN4Jy0VcMQZl/SAzqug/jg==
+"@babel/plugin-transform-shorthand-properties@^7.24.7":
+ version "7.24.7"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.24.7.tgz#85448c6b996e122fa9e289746140aaa99da64e73"
+ integrity sha512-KsDsevZMDsigzbA09+vacnLpmPH4aWjcZjXdyFKGzpplxhbeB4wYtury3vglQkg6KM/xEPKt73eCjPPf1PgXBA==
dependencies:
- "@babel/helper-plugin-utils" "^7.22.5"
+ "@babel/helper-plugin-utils" "^7.24.7"
-"@babel/plugin-transform-spread@^7.23.3":
- version "7.23.3"
- resolved "https://registry.yarnpkg.com/@babel/plugin-transform-spread/-/plugin-transform-spread-7.23.3.tgz#41d17aacb12bde55168403c6f2d6bdca563d362c"
- integrity sha512-VvfVYlrlBVu+77xVTOAoxQ6mZbnIq5FM0aGBSFEcIh03qHf+zNqA4DC/3XMUozTg7bZV3e3mZQ0i13VB6v5yUg==
+"@babel/plugin-transform-spread@^7.24.7":
+ version "7.24.7"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-transform-spread/-/plugin-transform-spread-7.24.7.tgz#e8a38c0fde7882e0fb8f160378f74bd885cc7bb3"
+ integrity sha512-x96oO0I09dgMDxJaANcRyD4ellXFLLiWhuwDxKZX5g2rWP1bTPkBSwCYv96VDXVT1bD9aPj8tppr5ITIh8hBng==
dependencies:
- "@babel/helper-plugin-utils" "^7.22.5"
- "@babel/helper-skip-transparent-expression-wrappers" "^7.22.5"
+ "@babel/helper-plugin-utils" "^7.24.7"
+ "@babel/helper-skip-transparent-expression-wrappers" "^7.24.7"
-"@babel/plugin-transform-sticky-regex@^7.23.3":
- version "7.23.3"
- resolved "https://registry.yarnpkg.com/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.23.3.tgz#dec45588ab4a723cb579c609b294a3d1bd22ff04"
- integrity sha512-HZOyN9g+rtvnOU3Yh7kSxXrKbzgrm5X4GncPY1QOquu7epga5MxKHVpYu2hvQnry/H+JjckSYRb93iNfsioAGg==
+"@babel/plugin-transform-sticky-regex@^7.24.7":
+ version "7.24.7"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.24.7.tgz#96ae80d7a7e5251f657b5cf18f1ea6bf926f5feb"
+ integrity sha512-kHPSIJc9v24zEml5geKg9Mjx5ULpfncj0wRpYtxbvKyTtHCYDkVE3aHQ03FrpEo4gEe2vrJJS1Y9CJTaThA52g==
dependencies:
- "@babel/helper-plugin-utils" "^7.22.5"
+ "@babel/helper-plugin-utils" "^7.24.7"
-"@babel/plugin-transform-template-literals@^7.23.3":
- version "7.23.3"
- resolved "https://registry.yarnpkg.com/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.23.3.tgz#5f0f028eb14e50b5d0f76be57f90045757539d07"
- integrity sha512-Flok06AYNp7GV2oJPZZcP9vZdszev6vPBkHLwxwSpaIqx75wn6mUd3UFWsSsA0l8nXAKkyCmL/sR02m8RYGeHg==
+"@babel/plugin-transform-template-literals@^7.24.7":
+ version "7.24.7"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.24.7.tgz#a05debb4a9072ae8f985bcf77f3f215434c8f8c8"
+ integrity sha512-AfDTQmClklHCOLxtGoP7HkeMw56k1/bTQjwsfhL6pppo/M4TOBSq+jjBUBLmV/4oeFg4GWMavIl44ZeCtmmZTw==
dependencies:
- "@babel/helper-plugin-utils" "^7.22.5"
+ "@babel/helper-plugin-utils" "^7.24.7"
-"@babel/plugin-transform-typeof-symbol@^7.23.3":
- version "7.23.3"
- resolved "https://registry.yarnpkg.com/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.23.3.tgz#9dfab97acc87495c0c449014eb9c547d8966bca4"
- integrity sha512-4t15ViVnaFdrPC74be1gXBSMzXk3B4Us9lP7uLRQHTFpV5Dvt33pn+2MyyNxmN3VTTm3oTrZVMUmuw3oBnQ2oQ==
+"@babel/plugin-transform-typeof-symbol@^7.24.8":
+ version "7.24.8"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.24.8.tgz#383dab37fb073f5bfe6e60c654caac309f92ba1c"
+ integrity sha512-adNTUpDCVnmAE58VEqKlAA6ZBlNkMnWD0ZcW76lyNFN3MJniyGFZfNwERVk8Ap56MCnXztmDr19T4mPTztcuaw==
dependencies:
- "@babel/helper-plugin-utils" "^7.22.5"
+ "@babel/helper-plugin-utils" "^7.24.8"
-"@babel/plugin-transform-typescript@^7.23.3":
- version "7.23.6"
- resolved "https://registry.yarnpkg.com/@babel/plugin-transform-typescript/-/plugin-transform-typescript-7.23.6.tgz#aa36a94e5da8d94339ae3a4e22d40ed287feb34c"
- integrity sha512-6cBG5mBvUu4VUD04OHKnYzbuHNP8huDsD3EDqqpIpsswTDoqHCjLoHb6+QgsV1WsT2nipRqCPgxD3LXnEO7XfA==
+"@babel/plugin-transform-typescript@^7.24.7":
+ version "7.25.2"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-transform-typescript/-/plugin-transform-typescript-7.25.2.tgz#237c5d10de6d493be31637c6b9fa30b6c5461add"
+ integrity sha512-lBwRvjSmqiMYe/pS0+1gggjJleUJi7NzjvQ1Fkqtt69hBa/0t1YuW/MLQMAPixfwaQOHUXsd6jeU3Z+vdGv3+A==
dependencies:
- "@babel/helper-annotate-as-pure" "^7.22.5"
- "@babel/helper-create-class-features-plugin" "^7.23.6"
- "@babel/helper-plugin-utils" "^7.22.5"
- "@babel/plugin-syntax-typescript" "^7.23.3"
+ "@babel/helper-annotate-as-pure" "^7.24.7"
+ "@babel/helper-create-class-features-plugin" "^7.25.0"
+ "@babel/helper-plugin-utils" "^7.24.8"
+ "@babel/helper-skip-transparent-expression-wrappers" "^7.24.7"
+ "@babel/plugin-syntax-typescript" "^7.24.7"
-"@babel/plugin-transform-unicode-escapes@^7.23.3":
- version "7.23.3"
- resolved "https://registry.yarnpkg.com/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.23.3.tgz#1f66d16cab01fab98d784867d24f70c1ca65b925"
- integrity sha512-OMCUx/bU6ChE3r4+ZdylEqAjaQgHAgipgW8nsCfu5pGqDcFytVd91AwRvUJSBZDz0exPGgnjoqhgRYLRjFZc9Q==
+"@babel/plugin-transform-unicode-escapes@^7.24.7":
+ version "7.24.7"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.24.7.tgz#2023a82ced1fb4971630a2e079764502c4148e0e"
+ integrity sha512-U3ap1gm5+4edc2Q/P+9VrBNhGkfnf+8ZqppY71Bo/pzZmXhhLdqgaUl6cuB07O1+AQJtCLfaOmswiNbSQ9ivhw==
dependencies:
- "@babel/helper-plugin-utils" "^7.22.5"
+ "@babel/helper-plugin-utils" "^7.24.7"
-"@babel/plugin-transform-unicode-property-regex@^7.23.3":
- version "7.23.3"
- resolved "https://registry.yarnpkg.com/@babel/plugin-transform-unicode-property-regex/-/plugin-transform-unicode-property-regex-7.23.3.tgz#19e234129e5ffa7205010feec0d94c251083d7ad"
- integrity sha512-KcLIm+pDZkWZQAFJ9pdfmh89EwVfmNovFBcXko8szpBeF8z68kWIPeKlmSOkT9BXJxs2C0uk+5LxoxIv62MROA==
+"@babel/plugin-transform-unicode-property-regex@^7.24.7":
+ version "7.24.7"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-transform-unicode-property-regex/-/plugin-transform-unicode-property-regex-7.24.7.tgz#9073a4cd13b86ea71c3264659590ac086605bbcd"
+ integrity sha512-uH2O4OV5M9FZYQrwc7NdVmMxQJOCCzFeYudlZSzUAHRFeOujQefa92E74TQDVskNHCzOXoigEuoyzHDhaEaK5w==
dependencies:
- "@babel/helper-create-regexp-features-plugin" "^7.22.15"
- "@babel/helper-plugin-utils" "^7.22.5"
+ "@babel/helper-create-regexp-features-plugin" "^7.24.7"
+ "@babel/helper-plugin-utils" "^7.24.7"
-"@babel/plugin-transform-unicode-regex@^7.23.3":
- version "7.23.3"
- resolved "https://registry.yarnpkg.com/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.23.3.tgz#26897708d8f42654ca4ce1b73e96140fbad879dc"
- integrity sha512-wMHpNA4x2cIA32b/ci3AfwNgheiva2W0WUKWTK7vBHBhDKfPsc5cFGNWm69WBqpwd86u1qwZ9PWevKqm1A3yAw==
+"@babel/plugin-transform-unicode-regex@^7.24.7":
+ version "7.24.7"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.24.7.tgz#dfc3d4a51127108099b19817c0963be6a2adf19f"
+ integrity sha512-hlQ96MBZSAXUq7ltkjtu3FJCCSMx/j629ns3hA3pXnBXjanNP0LHi+JpPeA81zaWgVK1VGH95Xuy7u0RyQ8kMg==
dependencies:
- "@babel/helper-create-regexp-features-plugin" "^7.22.15"
- "@babel/helper-plugin-utils" "^7.22.5"
+ "@babel/helper-create-regexp-features-plugin" "^7.24.7"
+ "@babel/helper-plugin-utils" "^7.24.7"
-"@babel/plugin-transform-unicode-sets-regex@^7.23.3":
- version "7.23.3"
- resolved "https://registry.yarnpkg.com/@babel/plugin-transform-unicode-sets-regex/-/plugin-transform-unicode-sets-regex-7.23.3.tgz#4fb6f0a719c2c5859d11f6b55a050cc987f3799e"
- integrity sha512-W7lliA/v9bNR83Qc3q1ip9CQMZ09CcHDbHfbLRDNuAhn1Mvkr1ZNF7hPmztMQvtTGVLJ9m8IZqWsTkXOml8dbw==
+"@babel/plugin-transform-unicode-sets-regex@^7.24.7":
+ version "7.24.7"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-transform-unicode-sets-regex/-/plugin-transform-unicode-sets-regex-7.24.7.tgz#d40705d67523803a576e29c63cef6e516b858ed9"
+ integrity sha512-2G8aAvF4wy1w/AGZkemprdGMRg5o6zPNhbHVImRz3lss55TYCBd6xStN19rt8XJHq20sqV0JbyWjOWwQRwV/wg==
dependencies:
- "@babel/helper-create-regexp-features-plugin" "^7.22.15"
- "@babel/helper-plugin-utils" "^7.22.5"
+ "@babel/helper-create-regexp-features-plugin" "^7.24.7"
+ "@babel/helper-plugin-utils" "^7.24.7"
"@babel/preset-env@^7.16.5":
- version "7.23.6"
- resolved "https://registry.yarnpkg.com/@babel/preset-env/-/preset-env-7.23.6.tgz#ad0ea799d5a3c07db5b9a172819bbd444092187a"
- integrity sha512-2XPn/BqKkZCpzYhUUNZ1ssXw7DcXfKQEjv/uXZUXgaebCMYmkEsfZ2yY+vv+xtXv50WmL5SGhyB6/xsWxIvvOQ==
- dependencies:
- "@babel/compat-data" "^7.23.5"
- "@babel/helper-compilation-targets" "^7.23.6"
- "@babel/helper-plugin-utils" "^7.22.5"
- "@babel/helper-validator-option" "^7.23.5"
- "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression" "^7.23.3"
- "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining" "^7.23.3"
- "@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly" "^7.23.3"
+ version "7.25.3"
+ resolved "https://registry.yarnpkg.com/@babel/preset-env/-/preset-env-7.25.3.tgz#0bf4769d84ac51d1073ab4a86f00f30a3a83c67c"
+ integrity sha512-QsYW7UeAaXvLPX9tdVliMJE7MD7M6MLYVTovRTIwhoYQVFHR1rM4wO8wqAezYi3/BpSD+NzVCZ69R6smWiIi8g==
+ dependencies:
+ "@babel/compat-data" "^7.25.2"
+ "@babel/helper-compilation-targets" "^7.25.2"
+ "@babel/helper-plugin-utils" "^7.24.8"
+ "@babel/helper-validator-option" "^7.24.8"
+ "@babel/plugin-bugfix-firefox-class-in-computed-class-key" "^7.25.3"
+ "@babel/plugin-bugfix-safari-class-field-initializer-scope" "^7.25.0"
+ "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression" "^7.25.0"
+ "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining" "^7.24.7"
+ "@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly" "^7.25.0"
"@babel/plugin-proposal-private-property-in-object" "7.21.0-placeholder-for-preset-env.2"
"@babel/plugin-syntax-async-generators" "^7.8.4"
"@babel/plugin-syntax-class-properties" "^7.12.13"
"@babel/plugin-syntax-class-static-block" "^7.14.5"
"@babel/plugin-syntax-dynamic-import" "^7.8.3"
"@babel/plugin-syntax-export-namespace-from" "^7.8.3"
- "@babel/plugin-syntax-import-assertions" "^7.23.3"
- "@babel/plugin-syntax-import-attributes" "^7.23.3"
+ "@babel/plugin-syntax-import-assertions" "^7.24.7"
+ "@babel/plugin-syntax-import-attributes" "^7.24.7"
"@babel/plugin-syntax-import-meta" "^7.10.4"
"@babel/plugin-syntax-json-strings" "^7.8.3"
"@babel/plugin-syntax-logical-assignment-operators" "^7.10.4"
@@ -874,59 +868,60 @@
"@babel/plugin-syntax-private-property-in-object" "^7.14.5"
"@babel/plugin-syntax-top-level-await" "^7.14.5"
"@babel/plugin-syntax-unicode-sets-regex" "^7.18.6"
- "@babel/plugin-transform-arrow-functions" "^7.23.3"
- "@babel/plugin-transform-async-generator-functions" "^7.23.4"
- "@babel/plugin-transform-async-to-generator" "^7.23.3"
- "@babel/plugin-transform-block-scoped-functions" "^7.23.3"
- "@babel/plugin-transform-block-scoping" "^7.23.4"
- "@babel/plugin-transform-class-properties" "^7.23.3"
- "@babel/plugin-transform-class-static-block" "^7.23.4"
- "@babel/plugin-transform-classes" "^7.23.5"
- "@babel/plugin-transform-computed-properties" "^7.23.3"
- "@babel/plugin-transform-destructuring" "^7.23.3"
- "@babel/plugin-transform-dotall-regex" "^7.23.3"
- "@babel/plugin-transform-duplicate-keys" "^7.23.3"
- "@babel/plugin-transform-dynamic-import" "^7.23.4"
- "@babel/plugin-transform-exponentiation-operator" "^7.23.3"
- "@babel/plugin-transform-export-namespace-from" "^7.23.4"
- "@babel/plugin-transform-for-of" "^7.23.6"
- "@babel/plugin-transform-function-name" "^7.23.3"
- "@babel/plugin-transform-json-strings" "^7.23.4"
- "@babel/plugin-transform-literals" "^7.23.3"
- "@babel/plugin-transform-logical-assignment-operators" "^7.23.4"
- "@babel/plugin-transform-member-expression-literals" "^7.23.3"
- "@babel/plugin-transform-modules-amd" "^7.23.3"
- "@babel/plugin-transform-modules-commonjs" "^7.23.3"
- "@babel/plugin-transform-modules-systemjs" "^7.23.3"
- "@babel/plugin-transform-modules-umd" "^7.23.3"
- "@babel/plugin-transform-named-capturing-groups-regex" "^7.22.5"
- "@babel/plugin-transform-new-target" "^7.23.3"
- "@babel/plugin-transform-nullish-coalescing-operator" "^7.23.4"
- "@babel/plugin-transform-numeric-separator" "^7.23.4"
- "@babel/plugin-transform-object-rest-spread" "^7.23.4"
- "@babel/plugin-transform-object-super" "^7.23.3"
- "@babel/plugin-transform-optional-catch-binding" "^7.23.4"
- "@babel/plugin-transform-optional-chaining" "^7.23.4"
- "@babel/plugin-transform-parameters" "^7.23.3"
- "@babel/plugin-transform-private-methods" "^7.23.3"
- "@babel/plugin-transform-private-property-in-object" "^7.23.4"
- "@babel/plugin-transform-property-literals" "^7.23.3"
- "@babel/plugin-transform-regenerator" "^7.23.3"
- "@babel/plugin-transform-reserved-words" "^7.23.3"
- "@babel/plugin-transform-shorthand-properties" "^7.23.3"
- "@babel/plugin-transform-spread" "^7.23.3"
- "@babel/plugin-transform-sticky-regex" "^7.23.3"
- "@babel/plugin-transform-template-literals" "^7.23.3"
- "@babel/plugin-transform-typeof-symbol" "^7.23.3"
- "@babel/plugin-transform-unicode-escapes" "^7.23.3"
- "@babel/plugin-transform-unicode-property-regex" "^7.23.3"
- "@babel/plugin-transform-unicode-regex" "^7.23.3"
- "@babel/plugin-transform-unicode-sets-regex" "^7.23.3"
+ "@babel/plugin-transform-arrow-functions" "^7.24.7"
+ "@babel/plugin-transform-async-generator-functions" "^7.25.0"
+ "@babel/plugin-transform-async-to-generator" "^7.24.7"
+ "@babel/plugin-transform-block-scoped-functions" "^7.24.7"
+ "@babel/plugin-transform-block-scoping" "^7.25.0"
+ "@babel/plugin-transform-class-properties" "^7.24.7"
+ "@babel/plugin-transform-class-static-block" "^7.24.7"
+ "@babel/plugin-transform-classes" "^7.25.0"
+ "@babel/plugin-transform-computed-properties" "^7.24.7"
+ "@babel/plugin-transform-destructuring" "^7.24.8"
+ "@babel/plugin-transform-dotall-regex" "^7.24.7"
+ "@babel/plugin-transform-duplicate-keys" "^7.24.7"
+ "@babel/plugin-transform-duplicate-named-capturing-groups-regex" "^7.25.0"
+ "@babel/plugin-transform-dynamic-import" "^7.24.7"
+ "@babel/plugin-transform-exponentiation-operator" "^7.24.7"
+ "@babel/plugin-transform-export-namespace-from" "^7.24.7"
+ "@babel/plugin-transform-for-of" "^7.24.7"
+ "@babel/plugin-transform-function-name" "^7.25.1"
+ "@babel/plugin-transform-json-strings" "^7.24.7"
+ "@babel/plugin-transform-literals" "^7.25.2"
+ "@babel/plugin-transform-logical-assignment-operators" "^7.24.7"
+ "@babel/plugin-transform-member-expression-literals" "^7.24.7"
+ "@babel/plugin-transform-modules-amd" "^7.24.7"
+ "@babel/plugin-transform-modules-commonjs" "^7.24.8"
+ "@babel/plugin-transform-modules-systemjs" "^7.25.0"
+ "@babel/plugin-transform-modules-umd" "^7.24.7"
+ "@babel/plugin-transform-named-capturing-groups-regex" "^7.24.7"
+ "@babel/plugin-transform-new-target" "^7.24.7"
+ "@babel/plugin-transform-nullish-coalescing-operator" "^7.24.7"
+ "@babel/plugin-transform-numeric-separator" "^7.24.7"
+ "@babel/plugin-transform-object-rest-spread" "^7.24.7"
+ "@babel/plugin-transform-object-super" "^7.24.7"
+ "@babel/plugin-transform-optional-catch-binding" "^7.24.7"
+ "@babel/plugin-transform-optional-chaining" "^7.24.8"
+ "@babel/plugin-transform-parameters" "^7.24.7"
+ "@babel/plugin-transform-private-methods" "^7.24.7"
+ "@babel/plugin-transform-private-property-in-object" "^7.24.7"
+ "@babel/plugin-transform-property-literals" "^7.24.7"
+ "@babel/plugin-transform-regenerator" "^7.24.7"
+ "@babel/plugin-transform-reserved-words" "^7.24.7"
+ "@babel/plugin-transform-shorthand-properties" "^7.24.7"
+ "@babel/plugin-transform-spread" "^7.24.7"
+ "@babel/plugin-transform-sticky-regex" "^7.24.7"
+ "@babel/plugin-transform-template-literals" "^7.24.7"
+ "@babel/plugin-transform-typeof-symbol" "^7.24.8"
+ "@babel/plugin-transform-unicode-escapes" "^7.24.7"
+ "@babel/plugin-transform-unicode-property-regex" "^7.24.7"
+ "@babel/plugin-transform-unicode-regex" "^7.24.7"
+ "@babel/plugin-transform-unicode-sets-regex" "^7.24.7"
"@babel/preset-modules" "0.1.6-no-external-plugins"
- babel-plugin-polyfill-corejs2 "^0.4.6"
- babel-plugin-polyfill-corejs3 "^0.8.5"
- babel-plugin-polyfill-regenerator "^0.5.3"
- core-js-compat "^3.31.0"
+ babel-plugin-polyfill-corejs2 "^0.4.10"
+ babel-plugin-polyfill-corejs3 "^0.10.4"
+ babel-plugin-polyfill-regenerator "^0.6.1"
+ core-js-compat "^3.37.1"
semver "^6.3.1"
"@babel/preset-modules@0.1.6-no-external-plugins":
@@ -939,15 +934,15 @@
esutils "^2.0.2"
"@babel/preset-typescript@^7.16.5":
- version "7.23.3"
- resolved "https://registry.yarnpkg.com/@babel/preset-typescript/-/preset-typescript-7.23.3.tgz#14534b34ed5b6d435aa05f1ae1c5e7adcc01d913"
- integrity sha512-17oIGVlqz6CchO9RFYn5U6ZpWRZIngayYCtrPRSgANSwC2V1Jb+iP74nVxzzXJte8b8BYxrL1yY96xfhTBrNNQ==
+ version "7.24.7"
+ resolved "https://registry.yarnpkg.com/@babel/preset-typescript/-/preset-typescript-7.24.7.tgz#66cd86ea8f8c014855671d5ea9a737139cbbfef1"
+ integrity sha512-SyXRe3OdWwIwalxDg5UtJnJQO+YPcTfwiIY2B0Xlddh9o7jpWLvv8X1RthIeDOxQ+O1ML5BLPCONToObyVQVuQ==
dependencies:
- "@babel/helper-plugin-utils" "^7.22.5"
- "@babel/helper-validator-option" "^7.22.15"
- "@babel/plugin-syntax-jsx" "^7.23.3"
- "@babel/plugin-transform-modules-commonjs" "^7.23.3"
- "@babel/plugin-transform-typescript" "^7.23.3"
+ "@babel/helper-plugin-utils" "^7.24.7"
+ "@babel/helper-validator-option" "^7.24.7"
+ "@babel/plugin-syntax-jsx" "^7.24.7"
+ "@babel/plugin-transform-modules-commonjs" "^7.24.7"
+ "@babel/plugin-transform-typescript" "^7.24.7"
"@babel/regjsgen@^0.8.0":
version "0.8.0"
@@ -955,58 +950,55 @@
integrity sha512-x/rqGMdzj+fWZvCOYForTghzbtqPDZ5gPwaoNGHdgDfF2QA/XZbCBp4Moo5scrkAMPhB7z26XM/AaHuIJdgauA==
"@babel/runtime@^7.8.4":
- version "7.23.6"
- resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.23.6.tgz#c05e610dc228855dc92ef1b53d07389ed8ab521d"
- integrity sha512-zHd0eUrf5GZoOWVCXp6koAKQTfZV07eit6bGPmJgnZdnSAvvZee6zniW2XMF7Cmc4ISOOnPy3QaSiIJGJkVEDQ==
+ version "7.25.0"
+ resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.25.0.tgz#3af9a91c1b739c569d5d80cc917280919c544ecb"
+ integrity sha512-7dRy4DwXwtzBrPbZflqxnvfxLF8kdZXPkhymtDeFoFqE6ldzjQFgYTtYIFARcLEYDrqfBfYcZt1WqFxRoyC9Rw==
dependencies:
regenerator-runtime "^0.14.0"
-"@babel/template@^7.22.15":
- version "7.22.15"
- resolved "https://registry.yarnpkg.com/@babel/template/-/template-7.22.15.tgz#09576efc3830f0430f4548ef971dde1350ef2f38"
- integrity sha512-QPErUVm4uyJa60rkI73qneDacvdvzxshT3kksGqlGWYdOTIUOwJ7RDUL8sGqslY1uXWSL6xMFKEXDS3ox2uF0w==
- dependencies:
- "@babel/code-frame" "^7.22.13"
- "@babel/parser" "^7.22.15"
- "@babel/types" "^7.22.15"
-
-"@babel/traverse@^7.23.6":
- version "7.23.6"
- resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.23.6.tgz#b53526a2367a0dd6edc423637f3d2d0f2521abc5"
- integrity sha512-czastdK1e8YByZqezMPFiZ8ahwVMh/ESl9vPgvgdB9AmFMGP5jfpFax74AQgl5zj4XHzqeYAg2l8PuUeRS1MgQ==
- dependencies:
- "@babel/code-frame" "^7.23.5"
- "@babel/generator" "^7.23.6"
- "@babel/helper-environment-visitor" "^7.22.20"
- "@babel/helper-function-name" "^7.23.0"
- "@babel/helper-hoist-variables" "^7.22.5"
- "@babel/helper-split-export-declaration" "^7.22.6"
- "@babel/parser" "^7.23.6"
- "@babel/types" "^7.23.6"
+"@babel/template@^7.24.7", "@babel/template@^7.25.0":
+ version "7.25.0"
+ resolved "https://registry.yarnpkg.com/@babel/template/-/template-7.25.0.tgz#e733dc3134b4fede528c15bc95e89cb98c52592a"
+ integrity sha512-aOOgh1/5XzKvg1jvVz7AVrx2piJ2XBi227DHmbY6y+bM9H2FlN+IfecYu4Xl0cNiiVejlsCri89LUsbj8vJD9Q==
+ dependencies:
+ "@babel/code-frame" "^7.24.7"
+ "@babel/parser" "^7.25.0"
+ "@babel/types" "^7.25.0"
+
+"@babel/traverse@^7.24.7", "@babel/traverse@^7.24.8", "@babel/traverse@^7.25.0", "@babel/traverse@^7.25.1", "@babel/traverse@^7.25.2", "@babel/traverse@^7.25.3":
+ version "7.25.3"
+ resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.25.3.tgz#f1b901951c83eda2f3e29450ce92743783373490"
+ integrity sha512-HefgyP1x754oGCsKmV5reSmtV7IXj/kpaE1XYY+D9G5PvKKoFfSbiS4M77MdjuwlZKDIKFCffq9rPU+H/s3ZdQ==
+ dependencies:
+ "@babel/code-frame" "^7.24.7"
+ "@babel/generator" "^7.25.0"
+ "@babel/parser" "^7.25.3"
+ "@babel/template" "^7.25.0"
+ "@babel/types" "^7.25.2"
debug "^4.3.1"
globals "^11.1.0"
-"@babel/types@^7.22.15", "@babel/types@^7.22.19", "@babel/types@^7.22.5", "@babel/types@^7.23.0", "@babel/types@^7.23.6", "@babel/types@^7.4.4":
- version "7.23.6"
- resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.23.6.tgz#be33fdb151e1f5a56877d704492c240fc71c7ccd"
- integrity sha512-+uarb83brBzPKN38NX1MkB6vb6+mwvR6amUulqAE7ccQw1pEl+bCia9TbdG1lsnFP7lZySvUn37CHyXQdfTwzg==
+"@babel/types@^7.24.7", "@babel/types@^7.24.8", "@babel/types@^7.25.0", "@babel/types@^7.25.2", "@babel/types@^7.4.4":
+ version "7.25.2"
+ resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.25.2.tgz#55fb231f7dc958cd69ea141a4c2997e819646125"
+ integrity sha512-YTnYtra7W9e6/oAZEHj0bJehPRUlLH9/fbpT5LfB0NhQXyALCRkRs3zH9v07IYhkgpqX6Z78FnuccZr/l4Fs4Q==
dependencies:
- "@babel/helper-string-parser" "^7.23.4"
- "@babel/helper-validator-identifier" "^7.22.20"
+ "@babel/helper-string-parser" "^7.24.8"
+ "@babel/helper-validator-identifier" "^7.24.7"
to-fast-properties "^2.0.0"
-"@bitcoinerlab/secp256k1@^1.0.5":
- version "1.0.5"
- resolved "https://registry.yarnpkg.com/@bitcoinerlab/secp256k1/-/secp256k1-1.0.5.tgz#4643ba73619c24c7c455cc63c6338c69c2cf187c"
- integrity sha512-8gT+ukTCFN2rTxn4hD9Jq3k+UJwcprgYjfK/SQUSLgznXoIgsBnlPuARMkyyuEjycQK9VvnPiejKdszVTflh+w==
+"@bitcoinerlab/secp256k1@^1.1.1":
+ version "1.1.1"
+ resolved "https://registry.yarnpkg.com/@bitcoinerlab/secp256k1/-/secp256k1-1.1.1.tgz#938305c30505b67b15f3de53627bc9d8b4cc7680"
+ integrity sha512-uhjW51WfVLpnHN7+G0saDcM/k9IqcyTbZ+bDgLF3AX8V/a3KXSE9vn7UPBrcdU72tp0J4YPR7BHp2m7MLAZ/1Q==
dependencies:
"@noble/hashes" "^1.1.5"
"@noble/secp256k1" "^1.7.1"
"@bufbuild/protobuf@^1.2.0":
- version "1.7.2"
- resolved "https://registry.yarnpkg.com/@bufbuild/protobuf/-/protobuf-1.7.2.tgz#1b3d6c66ebd987f7da7f1e3f0546cffaa87f8732"
- integrity sha512-i5GE2Dk5ekdlK1TR7SugY4LWRrKSfb5T1Qn4unpIMbfxoeGKERKQ59HG3iYewacGD10SR7UzevfPnh6my4tNmQ==
+ version "1.10.0"
+ resolved "https://registry.yarnpkg.com/@bufbuild/protobuf/-/protobuf-1.10.0.tgz#1a67ac889c2d464a3492b3e54c38f80517963b16"
+ integrity sha512-QDdVFLoN93Zjg36NoQPZfsVH9tZew7wKDKyV5qRdj8ntT4wQCOradQjRaTdwMhWUYsgKsvCINKKm87FdEk96Ag==
"@cspotcode/source-map-support@^0.8.0":
version "0.8.1"
@@ -1028,9 +1020,9 @@
eslint-visitor-keys "^3.3.0"
"@eslint-community/regexpp@^4.4.0":
- version "4.10.0"
- resolved "https://registry.yarnpkg.com/@eslint-community/regexpp/-/regexpp-4.10.0.tgz#548f6de556857c8bb73bbee70c35dc82a2e74d63"
- integrity sha512-Cu96Sd2By9mCNTx2iyKOmq10v22jUVQv0lQnlGNy16oE9589yE+QADPbrMGCkA51cKZSg3Pu/aTJVTGfL/qjUA==
+ version "4.11.0"
+ resolved "https://registry.yarnpkg.com/@eslint-community/regexpp/-/regexpp-4.11.0.tgz#b0ffd0312b4a3fd2d6f77237e7248a5ad3a680ae"
+ integrity sha512-G/M/tIiMrTAxEWRfLfQJMmGNX28IxBg4PBz8XqQhqUHLFI6TL2htpIB1iQCj144V5ee/JaKyT9/WZ0MGZWfA7A==
"@eslint/eslintrc@^1.0.2":
version "1.4.1"
@@ -1094,37 +1086,37 @@
"@types/yargs" "^17.0.8"
chalk "^4.0.0"
-"@jridgewell/gen-mapping@^0.3.0", "@jridgewell/gen-mapping@^0.3.2":
- version "0.3.3"
- resolved "https://registry.yarnpkg.com/@jridgewell/gen-mapping/-/gen-mapping-0.3.3.tgz#7e02e6eb5df901aaedb08514203b096614024098"
- integrity sha512-HLhSWOLRi875zjjMG/r+Nv0oCW8umGb0BgEhyX3dDX3egwZtB8PqLnjz3yedt8R5StBrzcg4aBpnh8UA9D1BoQ==
+"@jridgewell/gen-mapping@^0.3.5":
+ version "0.3.5"
+ resolved "https://registry.yarnpkg.com/@jridgewell/gen-mapping/-/gen-mapping-0.3.5.tgz#dcce6aff74bdf6dad1a95802b69b04a2fcb1fb36"
+ integrity sha512-IzL8ZoEDIBRWEzlCcRhOaCupYyN5gdIK+Q6fbFdPDg6HqX6jpkItn7DFIpW9LQzXG6Df9sA7+OKnq0qlz/GaQg==
dependencies:
- "@jridgewell/set-array" "^1.0.1"
+ "@jridgewell/set-array" "^1.2.1"
"@jridgewell/sourcemap-codec" "^1.4.10"
- "@jridgewell/trace-mapping" "^0.3.9"
+ "@jridgewell/trace-mapping" "^0.3.24"
"@jridgewell/resolve-uri@^3.0.3", "@jridgewell/resolve-uri@^3.1.0":
- version "3.1.1"
- resolved "https://registry.yarnpkg.com/@jridgewell/resolve-uri/-/resolve-uri-3.1.1.tgz#c08679063f279615a3326583ba3a90d1d82cc721"
- integrity sha512-dSYZh7HhCDtCKm4QakX0xFpsRDqjjtZf/kjI/v3T3Nwt5r8/qz/M19F9ySyOqU94SXBmeG9ttTul+YnR4LOxFA==
+ version "3.1.2"
+ resolved "https://registry.yarnpkg.com/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz#7a0ee601f60f99a20c7c7c5ff0c80388c1189bd6"
+ integrity sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==
-"@jridgewell/set-array@^1.0.1":
- version "1.1.2"
- resolved "https://registry.yarnpkg.com/@jridgewell/set-array/-/set-array-1.1.2.tgz#7c6cf998d6d20b914c0a55a91ae928ff25965e72"
- integrity sha512-xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw==
+"@jridgewell/set-array@^1.2.1":
+ version "1.2.1"
+ resolved "https://registry.yarnpkg.com/@jridgewell/set-array/-/set-array-1.2.1.tgz#558fb6472ed16a4c850b889530e6b36438c49280"
+ integrity sha512-R8gLRTZeyp03ymzP/6Lil/28tGeGEzhx1q2k703KGWRAI1VdvPIXdG70VJc2pAMw3NA6JKL5hhFu1sJX0Mnn/A==
"@jridgewell/source-map@^0.3.3":
- version "0.3.5"
- resolved "https://registry.yarnpkg.com/@jridgewell/source-map/-/source-map-0.3.5.tgz#a3bb4d5c6825aab0d281268f47f6ad5853431e91"
- integrity sha512-UTYAUj/wviwdsMfzoSJspJxbkH5o1snzwX0//0ENX1u/55kkZZkcTZP6u9bwKGkv+dkk9at4m1Cpt0uY80kcpQ==
+ version "0.3.6"
+ resolved "https://registry.yarnpkg.com/@jridgewell/source-map/-/source-map-0.3.6.tgz#9d71ca886e32502eb9362c9a74a46787c36df81a"
+ integrity sha512-1ZJTZebgqllO79ue2bm3rIGud/bOe0pP5BjSRCRxxYkEZS8STV7zN84UBbiYu7jy+eCKSnVIUgoWWE/tt+shMQ==
dependencies:
- "@jridgewell/gen-mapping" "^0.3.0"
- "@jridgewell/trace-mapping" "^0.3.9"
+ "@jridgewell/gen-mapping" "^0.3.5"
+ "@jridgewell/trace-mapping" "^0.3.25"
"@jridgewell/sourcemap-codec@^1.4.10", "@jridgewell/sourcemap-codec@^1.4.14":
- version "1.4.15"
- resolved "https://registry.yarnpkg.com/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.15.tgz#d7c6e6755c78567a951e04ab52ef0fd26de59f32"
- integrity sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==
+ version "1.5.0"
+ resolved "https://registry.yarnpkg.com/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.0.tgz#3188bcb273a414b0d215fd22a58540b989b9409a"
+ integrity sha512-gv3ZRaISU3fjPAgNsriBRqGWQL6quFx04YMPW/zD8XMLsU32mhCCbfbO6KZFLjvYpCZ8zyDEgqsgf+PwPaM7GQ==
"@jridgewell/trace-mapping@0.3.9":
version "0.3.9"
@@ -1134,15 +1126,7 @@
"@jridgewell/resolve-uri" "^3.0.3"
"@jridgewell/sourcemap-codec" "^1.4.10"
-"@jridgewell/trace-mapping@^0.3.17", "@jridgewell/trace-mapping@^0.3.9":
- version "0.3.20"
- resolved "https://registry.yarnpkg.com/@jridgewell/trace-mapping/-/trace-mapping-0.3.20.tgz#72e45707cf240fa6b081d0366f8265b0cd10197f"
- integrity sha512-R8LcPeWZol2zR8mmH3JeKQ6QRCFb7XgUhV9ZlGhHLGyg4wpPiPZNQOOWhFZhxKw8u//yTbNGI42Bx/3paXEQ+Q==
- dependencies:
- "@jridgewell/resolve-uri" "^3.1.0"
- "@jridgewell/sourcemap-codec" "^1.4.14"
-
-"@jridgewell/trace-mapping@^0.3.20":
+"@jridgewell/trace-mapping@^0.3.20", "@jridgewell/trace-mapping@^0.3.24", "@jridgewell/trace-mapping@^0.3.25":
version "0.3.25"
resolved "https://registry.yarnpkg.com/@jridgewell/trace-mapping/-/trace-mapping-0.3.25.tgz#15f190e98895f3fc23276ee14bc76b675c2e50f0"
integrity sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==
@@ -1150,6 +1134,11 @@
"@jridgewell/resolve-uri" "^3.1.0"
"@jridgewell/sourcemap-codec" "^1.4.14"
+"@keystonehq/alias-sampling@^0.1.1":
+ version "0.1.2"
+ resolved "https://registry.yarnpkg.com/@keystonehq/alias-sampling/-/alias-sampling-0.1.2.tgz#63af931ffe6500aef4c0d87775a5b279189abf8d"
+ integrity sha512-5ukLB3bcgltgaFfQfYKYwHDUbwHicekYo53fSEa7xhVkAEqsA74kxdIwoBIURmGUtXe3EVIRm4SYlgcrt2Ri0w==
+
"@keystonehq/bc-ur-registry-aptos@^0.3.2":
version "0.3.2"
resolved "https://registry.yarnpkg.com/@keystonehq/bc-ur-registry-aptos/-/bc-ur-registry-aptos-0.3.2.tgz#2e09162664eae1d647d474ff0d1abbb650ee551f"
@@ -1168,19 +1157,19 @@
uuid "^8.3.2"
"@keystonehq/bc-ur-registry-btc@^0.1.0":
- version "0.1.0"
- resolved "https://registry.yarnpkg.com/@keystonehq/bc-ur-registry-btc/-/bc-ur-registry-btc-0.1.0.tgz#11b3fe1cf743703f5cecce8acab790d4bbba8cbb"
- integrity sha512-CFFHS6brmepeQ9i3gzhua3Okzae1DpmjP11OqoVstutkFeXliUvZ11JBtQgb5v1bEiNyDv9MahI8oWSvk7Xvqg==
+ version "0.1.1"
+ resolved "https://registry.yarnpkg.com/@keystonehq/bc-ur-registry-btc/-/bc-ur-registry-btc-0.1.1.tgz#5363961c2d0c529b01080eb278ff60de6bf5d181"
+ integrity sha512-LdYqItY1Y/M6fWJNE6L0HYZbKL8CGVP6OigG7T/gJ+SWnOGgYXj3at02aV7b9qZ7iNwJPkNrqsIDN5eajQcZjQ==
dependencies:
- "@keystonehq/bc-ur-registry" "^0.5.4"
+ "@keystonehq/bc-ur-registry" "^0.6.4"
uuid "^8.3.2"
"@keystonehq/bc-ur-registry-cardano@^0.3.0":
- version "0.3.0"
- resolved "https://registry.yarnpkg.com/@keystonehq/bc-ur-registry-cardano/-/bc-ur-registry-cardano-0.3.0.tgz#d6708bcc79737a9c756f2606968abc3353916522"
- integrity sha512-ADYdGbm11frWD+qPlnFa9JPJ+eTQvapIVxg3QbCHGY32xmTTZsX63yWyTi4zSCXCluGqfcjHViyWZlqQvvB7KA==
+ version "0.3.9"
+ resolved "https://registry.yarnpkg.com/@keystonehq/bc-ur-registry-cardano/-/bc-ur-registry-cardano-0.3.9.tgz#aeb0cbab556aaf87edd54782a2ff3e768800f98a"
+ integrity sha512-moQtGVjRpzJmHBGxITjljKVE8b2wIC72/9UtuqIfeWWUz/gHWZ4zB0jrz+YgnNwhIizEKmydjtOHLSFrbUQ9VQ==
dependencies:
- "@keystonehq/bc-ur-registry" "^0.5.4"
+ "@keystonehq/bc-ur-registry" "^0.6.4"
uuid "^8.3.2"
"@keystonehq/bc-ur-registry-cosmos@^0.2.2":
@@ -1203,11 +1192,11 @@
uuid "^8.3.2"
"@keystonehq/bc-ur-registry-evm@^0.5.2":
- version "0.5.2"
- resolved "https://registry.yarnpkg.com/@keystonehq/bc-ur-registry-evm/-/bc-ur-registry-evm-0.5.2.tgz#166fa0458345ae4b56761a0f8ee014106b093032"
- integrity sha512-/ns1cDUz3F0KryYA8AVk4xUV6w7wXTS7aDBsowcUeFSp1olsMLSeA/wkNlUgu5DELuJn5FDd6xrsrx4CGcehEQ==
+ version "0.5.3"
+ resolved "https://registry.yarnpkg.com/@keystonehq/bc-ur-registry-evm/-/bc-ur-registry-evm-0.5.3.tgz#086167a53194fbfe070ea066d83bacaaede56e4e"
+ integrity sha512-K3tmY1Y2SDImtSnCPFoASMBNernbN/ZRIIkp8iKegDeyHtaPbzfNIdaEL/wUHVoieTgTOUTwyWZspBvvbgrivw==
dependencies:
- "@keystonehq/bc-ur-registry" "^0.5.4"
+ "@keystonehq/bc-ur-registry" "^0.6.4"
bs58check "^2.1.2"
uuid "^9.0.0"
@@ -1237,11 +1226,11 @@
uuid "^8.3.2"
"@keystonehq/bc-ur-registry-sui@^0.3.0":
- version "0.3.0"
- resolved "https://registry.yarnpkg.com/@keystonehq/bc-ur-registry-sui/-/bc-ur-registry-sui-0.3.0.tgz#72f9b2fd167cb759f961437907fff9e034864fa4"
- integrity sha512-z2EVkY+ZOu766KsQklM3rXINXaXG2nUmTWMsmde0KO7KiAxW6TYloHXh+DdVZAGWUBQNs1lkVk/9elbDt8Bwog==
+ version "0.3.1"
+ resolved "https://registry.yarnpkg.com/@keystonehq/bc-ur-registry-sui/-/bc-ur-registry-sui-0.3.1.tgz#636f601620def48e0488408df049aa15718380a2"
+ integrity sha512-cbxu5AF5xFg9J3p0AXIkp1IMGSSNsaXWRgn22bcnkIlzwMEwmgJR5J/Lg45MIyIpW2p17fKyYqc9yuP0iMALEQ==
dependencies:
- "@keystonehq/bc-ur-registry" "^0.5.5"
+ "@keystonehq/bc-ur-registry" "^0.6.4"
uuid "^9.0.0"
"@keystonehq/bc-ur-registry@0.5.4":
@@ -1253,15 +1242,6 @@
bs58check "^2.1.2"
tslib "^2.3.0"
-"@keystonehq/bc-ur-registry@^0.5.4", "@keystonehq/bc-ur-registry@^0.5.5":
- version "0.5.5"
- resolved "https://registry.yarnpkg.com/@keystonehq/bc-ur-registry/-/bc-ur-registry-0.5.5.tgz#b7cd9b08846c627e988933049aac94d3412fbb16"
- integrity sha512-PoclPHf0OhpIKLfLwzymsu+CjkWf5ZKvaVjpkq3HUalcI4KW8wLk0m8qI2kBVv6F0BQ0ERPqW8OfjLTVqIgWLA==
- dependencies:
- "@ngraveio/bc-ur" "^1.1.5"
- bs58check "^2.1.2"
- tslib "^2.3.0"
-
"@keystonehq/bc-ur-registry@^0.6.4":
version "0.6.4"
resolved "https://registry.yarnpkg.com/@keystonehq/bc-ur-registry/-/bc-ur-registry-0.6.4.tgz#9c57ff9687cafdc0d2bbd04dc36676d3a38c1485"
@@ -1296,11 +1276,11 @@
uuid "^9.0.0"
"@ngraveio/bc-ur@^1.1.5", "@ngraveio/bc-ur@^1.1.6":
- version "1.1.6"
- resolved "https://registry.yarnpkg.com/@ngraveio/bc-ur/-/bc-ur-1.1.6.tgz#8f8c75fff22f6a5e4dfbc5a6b540d7fe8f42cd39"
- integrity sha512-G+2XgjXde2IOcEQeCwR250aS43/Swi7gw0FuETgJy2c3HqF8f88SXDMsIGgJlZ8jXd0GeHR4aX0MfjXf523UZg==
+ version "1.1.13"
+ resolved "https://registry.yarnpkg.com/@ngraveio/bc-ur/-/bc-ur-1.1.13.tgz#27719fd3e745ccdbe97a7950905edcd1fed4844b"
+ integrity sha512-j73akJMV4+vLR2yQ4AphPIT5HZmxVjn/LxpL7YHoINnXoH6ccc90Zzck6/n6a3bCXOVZwBxq+YHwbAKRV+P8Zg==
dependencies:
- "@apocentre/alias-sampling" "^0.5.3"
+ "@keystonehq/alias-sampling" "^0.1.1"
assert "^2.0.0"
bignumber.js "^9.0.1"
cbor-sync "^1.0.4"
@@ -1308,17 +1288,17 @@
jsbi "^3.1.5"
sha.js "^2.4.11"
-"@noble/curves@1.3.0", "@noble/curves@~1.3.0":
- version "1.3.0"
- resolved "https://registry.yarnpkg.com/@noble/curves/-/curves-1.3.0.tgz#01be46da4fd195822dab821e72f71bf4aeec635e"
- integrity sha512-t01iSXPuN+Eqzb4eBX0S5oubSqXbK/xXa1Ne18Hj8f9pStxztHCE2gfboSp/dZRLSqfuLpRK2nDXDK+W9puocA==
+"@noble/curves@1.4.2", "@noble/curves@~1.4.0":
+ version "1.4.2"
+ resolved "https://registry.yarnpkg.com/@noble/curves/-/curves-1.4.2.tgz#40309198c76ed71bc6dbf7ba24e81ceb4d0d1fe9"
+ integrity sha512-TavHr8qycMChk8UwMld0ZDRvatedkzWfH8IiaeGCfymOP5i0hSCozz9vHOL0nkwk7HRMlFnAiKpS2jrUmSybcw==
dependencies:
- "@noble/hashes" "1.3.3"
+ "@noble/hashes" "1.4.0"
-"@noble/hashes@1.3.3", "@noble/hashes@^1.1.5", "@noble/hashes@^1.2.0", "@noble/hashes@~1.3.2":
- version "1.3.3"
- resolved "https://registry.yarnpkg.com/@noble/hashes/-/hashes-1.3.3.tgz#39908da56a4adc270147bb07968bf3b16cfe1699"
- integrity sha512-V7/fPHgl+jsVPXqqeOzT8egNj2iBIVt+ECeMMG8TdcnTikP3oaBtUVqpT/gYCR68aEBJSF+XbYUxStjbFMqIIA==
+"@noble/hashes@1.4.0", "@noble/hashes@^1.1.5", "@noble/hashes@^1.2.0", "@noble/hashes@~1.4.0":
+ version "1.4.0"
+ resolved "https://registry.yarnpkg.com/@noble/hashes/-/hashes-1.4.0.tgz#45814aa329f30e4fe0ba49426f49dfccdd066426"
+ integrity sha512-V1JJ1WTRUqHHrOSh597hURcMqVKVGL/ea3kv0gSnEdsEZ0/+VyPghM1lMNGc00z7CIQorSvbKpuJkxvuHbvdbg==
"@noble/secp256k1@^1.7.1":
version "1.7.1"
@@ -1351,27 +1331,27 @@
resolved "https://registry.yarnpkg.com/@pkgr/core/-/core-0.1.1.tgz#1ec17e2edbec25c8306d424ecfbf13c7de1aaa31"
integrity sha512-cq8o4cWH0ibXh9VGi5P20Tu9XF/0fFXl9EUinr9QfTM7a7p0oTA4iJRCQWppXR1Pg8dSM0UCItCkPwsk9qWWYA==
-"@scure/base@~1.1.4":
- version "1.1.5"
- resolved "https://registry.yarnpkg.com/@scure/base/-/base-1.1.5.tgz#1d85d17269fe97694b9c592552dd9e5e33552157"
- integrity sha512-Brj9FiG2W1MRQSTB212YVPRrcbjkv48FoZi/u4l/zds/ieRrqsh7aUf6CLwkAq61oKXr/ZlTzlY66gLIj3TFTQ==
+"@scure/base@~1.1.6":
+ version "1.1.7"
+ resolved "https://registry.yarnpkg.com/@scure/base/-/base-1.1.7.tgz#fe973311a5c6267846aa131bc72e96c5d40d2b30"
+ integrity sha512-PPNYBslrLNNUQ/Yad37MHYsNQtK67EhWb6WtSvNLLPo7SdVZgkUjD6Dg+5On7zNwmskf8OX7I7Nx5oN+MIWE0g==
-"@scure/bip32@1.3.3":
- version "1.3.3"
- resolved "https://registry.yarnpkg.com/@scure/bip32/-/bip32-1.3.3.tgz#a9624991dc8767087c57999a5d79488f48eae6c8"
- integrity sha512-LJaN3HwRbfQK0X1xFSi0Q9amqOgzQnnDngIt+ZlsBC3Bm7/nE7K0kwshZHyaru79yIVRv/e1mQAjZyuZG6jOFQ==
+"@scure/bip32@1.4.0":
+ version "1.4.0"
+ resolved "https://registry.yarnpkg.com/@scure/bip32/-/bip32-1.4.0.tgz#4e1f1e196abedcef395b33b9674a042524e20d67"
+ integrity sha512-sVUpc0Vq3tXCkDGYVWGIZTRfnvu8LoTDaev7vbwh0omSvVORONr960MQWdKqJDCReIEmTj3PAr73O3aoxz7OPg==
dependencies:
- "@noble/curves" "~1.3.0"
- "@noble/hashes" "~1.3.2"
- "@scure/base" "~1.1.4"
+ "@noble/curves" "~1.4.0"
+ "@noble/hashes" "~1.4.0"
+ "@scure/base" "~1.1.6"
-"@scure/bip39@1.2.2":
- version "1.2.2"
- resolved "https://registry.yarnpkg.com/@scure/bip39/-/bip39-1.2.2.tgz#f3426813f4ced11a47489cbcf7294aa963966527"
- integrity sha512-HYf9TUXG80beW+hGAt3TRM8wU6pQoYur9iNypTROm42dorCGmLnFe3eWjz3gOq6G62H2WRh0FCzAR1PI+29zIA==
+"@scure/bip39@1.3.0":
+ version "1.3.0"
+ resolved "https://registry.yarnpkg.com/@scure/bip39/-/bip39-1.3.0.tgz#0f258c16823ddd00739461ac31398b4e7d6a18c3"
+ integrity sha512-disdg7gHuTDZtY+ZdkmLpPCk7fxZSu3gBiEGuoC1XYxv9cGx3Z6cpTggCgW6odSOOIXCiDjuGejW+aJKCY/pIQ==
dependencies:
- "@noble/hashes" "~1.3.2"
- "@scure/base" "~1.1.4"
+ "@noble/hashes" "~1.4.0"
+ "@scure/base" "~1.1.6"
"@sinclair/typebox@^0.27.8":
version "0.27.8"
@@ -1379,9 +1359,9 @@
integrity sha512-+Fj43pSMwJs4KRrH/938Uf+uAELIgVBmQzg/q1YG10djyfA3TnrU8N8XzqCh/okZdszqBQTZf96idMfE5lnwTA==
"@tsconfig/node10@^1.0.7":
- version "1.0.9"
- resolved "https://registry.yarnpkg.com/@tsconfig/node10/-/node10-1.0.9.tgz#df4907fc07a886922637b15e02d4cebc4c0021b2"
- integrity sha512-jNsYVVxU8v5g43Erja32laIDHXeoNvFEpX33OK4d6hljo3jDhCBDhx5dhCCTMWUojscpAagGiRkBKxpdl9fxqA==
+ version "1.0.11"
+ resolved "https://registry.yarnpkg.com/@tsconfig/node10/-/node10-1.0.11.tgz#6ee46400685f130e278128c7b38b7e031ff5b2f2"
+ integrity sha512-DcRjDCujK/kCk/cUe8Xz8ZSpm8mS3mNNpta+jGCA6USEDfktlNvm1+IuZ9eTcDbNk41BHwpHHeW+N1lKCz4zOw==
"@tsconfig/node12@^1.0.7":
version "1.0.11"
@@ -1398,10 +1378,17 @@
resolved "https://registry.yarnpkg.com/@tsconfig/node16/-/node16-1.0.4.tgz#0b92dcc0cc1c81f6f306a381f28e31b1a56536e9"
integrity sha512-vxhUy4J8lyeyinH7Azl1pdd43GJhZH/tP2weN8TntQblOY+A0XbT8DJk1/oCPuOOyg/Ja757rG0CgHcWC8OfMA==
+"@types/bitcore-lib@^0.15.6":
+ version "0.15.6"
+ resolved "https://registry.yarnpkg.com/@types/bitcore-lib/-/bitcore-lib-0.15.6.tgz#6cbb5889e7fdb49e26d2a7e4e522275b1d03d449"
+ integrity sha512-CtKDBgSBubPXZ0wFeCiUCSdzH+cuy6nFya3FboOqf44evi+OmkQPqEg3ASMpmPDYE8vkcxV302Iu8lZqCjYieg==
+ dependencies:
+ "@types/node" "*"
+
"@types/chai@^4.2.20":
- version "4.3.11"
- resolved "https://registry.yarnpkg.com/@types/chai/-/chai-4.3.11.tgz#e95050bf79a932cb7305dd130254ccdf9bde671c"
- integrity sha512-qQR1dr2rGIHYlJulmr8Ioq3De0Le9E4MJ5AiaeAETJJpndT1uUNHsGFK3L/UIu+rbkQSdj8J/w2bCsBZc/Y5fQ==
+ version "4.3.17"
+ resolved "https://registry.yarnpkg.com/@types/chai/-/chai-4.3.17.tgz#9195f9d242f2ac3b429908864b6b871a8f73f489"
+ integrity sha512-zmZ21EWzR71B4Sscphjief5djsLre50M6lI622OSySTmn9DB3j+C3kWroHfBQWXbOBwbgg/M8CG/hUxDLIloow==
"@types/eslint-scope@^3.7.3":
version "3.7.7"
@@ -1412,17 +1399,17 @@
"@types/estree" "*"
"@types/eslint@*":
- version "8.56.0"
- resolved "https://registry.yarnpkg.com/@types/eslint/-/eslint-8.56.0.tgz#e28d045b8e530a33c9cbcfbf02332df0d1380a2c"
- integrity sha512-FlsN0p4FhuYRjIxpbdXovvHQhtlG05O1GG/RNWvdAxTboR438IOTwmrY/vLA+Xfgg06BTkP045M3vpFwTMv1dg==
+ version "9.6.0"
+ resolved "https://registry.yarnpkg.com/@types/eslint/-/eslint-9.6.0.tgz#51d4fe4d0316da9e9f2c80884f2c20ed5fb022ff"
+ integrity sha512-gi6WQJ7cHRgZxtkQEoyHMppPjq9Kxo5Tjn2prSKDSmZrCz8TZ3jSRCeTJm+WoM+oB0WG37bRqLzaaU3q7JypGg==
dependencies:
"@types/estree" "*"
"@types/json-schema" "*"
-"@types/eslint@^8.56.5":
- version "8.56.10"
- resolved "https://registry.yarnpkg.com/@types/eslint/-/eslint-8.56.10.tgz#eb2370a73bf04a901eeba8f22595c7ee0f7eb58d"
- integrity sha512-Shavhk87gCtY2fhXDctcfS3e6FdxWkCx1iUZ9eEUbh7rTqlZT0/IzOkCOVt0fCjcFuZ9FPYfuezTBImfHCDBGQ==
+"@types/eslint@^8.56.10":
+ version "8.56.11"
+ resolved "https://registry.yarnpkg.com/@types/eslint/-/eslint-8.56.11.tgz#e2ff61510a3b9454b3329fe7731e3b4c6f780041"
+ integrity sha512-sVBpJMf7UPo/wGecYOpk2aQya2VUGeHhe38WG7/mN5FufNSubf5VT9Uh9Uyp8/eLJpu1/tuhJ/qTo4mhSB4V4Q==
dependencies:
"@types/estree" "*"
"@types/json-schema" "*"
@@ -1440,6 +1427,13 @@
"@types/minimatch" "*"
"@types/node" "*"
+"@types/hdkey@^2.0.3":
+ version "2.0.3"
+ resolved "https://registry.yarnpkg.com/@types/hdkey/-/hdkey-2.0.3.tgz#ef32e3a2ba22a614193ca20c7bb681aeaaf1c50e"
+ integrity sha512-U5W3b+f3KqCC7tge4WjV5MDzzYTcwbnufyL7RwEmxH2EyxtbfaQVlS8z6PZDp8XET304EEVhLWG76rF5ygUKHQ==
+ dependencies:
+ "@types/node" "*"
+
"@types/istanbul-lib-coverage@*", "@types/istanbul-lib-coverage@^2.0.0":
version "2.0.6"
resolved "https://registry.yarnpkg.com/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.6.tgz#7739c232a1fee9b4d3ce8985f314c0c6d33549d7"
@@ -1475,21 +1469,21 @@
integrity sha512-ekGvFhFgrc2zYQoX4JeZPmVzZxw6Dtllga7iGHzfbYIYkAMUx/sAFP2GdFpLff+vdHXu5fl7WX9AT+TtqYcsyw==
"@types/node@*":
- version "20.10.5"
- resolved "https://registry.yarnpkg.com/@types/node/-/node-20.10.5.tgz#47ad460b514096b7ed63a1dae26fad0914ed3ab2"
- integrity sha512-nNPsNE65wjMxEKI93yOP+NPGGBJz/PoN3kZsVLee0XMiJolxSekEVD8wRwBUBqkwc7UWop0edW50yrCQW4CyRw==
+ version "22.2.0"
+ resolved "https://registry.yarnpkg.com/@types/node/-/node-22.2.0.tgz#7cf046a99f0ba4d628ad3088cb21f790df9b0c5b"
+ integrity sha512-bm6EG6/pCpkxDf/0gDNDdtDILMOHgaQBVOJGdwsqClnxA3xL6jtMv76rLBc006RVMWbmaf0xbmom4Z/5o2nRkQ==
dependencies:
- undici-types "~5.26.4"
+ undici-types "~6.13.0"
"@types/node@^16.11.10":
- version "16.18.68"
- resolved "https://registry.yarnpkg.com/@types/node/-/node-16.18.68.tgz#3155f64a961b3d8d10246c80657f9a7292e3421a"
- integrity sha512-sG3hPIQwJLoewrN7cr0dwEy+yF5nD4D/4FxtQpFciRD/xwUzgD+G05uxZHv5mhfXo4F9Jkp13jjn0CC2q325sg==
+ version "16.18.105"
+ resolved "https://registry.yarnpkg.com/@types/node/-/node-16.18.105.tgz#7147176852774ec4d6dd626803888adf6b999feb"
+ integrity sha512-w2d0Z9yMk07uH3+Cx0N8lqFyi3yjXZxlbYappPj+AsOlT02OyxyiuNoNHdGt6EuiSm8Wtgp2YV7vWg+GMFrvFA==
"@types/semver@^7.3.12":
- version "7.5.6"
- resolved "https://registry.yarnpkg.com/@types/semver/-/semver-7.5.6.tgz#c65b2bfce1bec346582c07724e3f8c1017a20339"
- integrity sha512-dn1l8LaMea/IjDoHNd9J52uBbInB796CDffS6VdIxvqYCPSG0V0DzHp76GpaWnlhg88uYyPbXCDIowa86ybd5A==
+ version "7.5.8"
+ resolved "https://registry.yarnpkg.com/@types/semver/-/semver-7.5.8.tgz#8268a8c57a3e4abd25c165ecd36237db7948a55e"
+ integrity sha512-I8EUhyrgfLrcTkzV3TSsGyl1tSuPrEDzr0yd5m90UgNxQkyDXULk3b6MlQqTCpZpNtWe1K0hzclnZkTcLBe2UQ==
"@types/yargs-parser@*":
version "21.0.3"
@@ -1497,9 +1491,9 @@
integrity sha512-I4q9QU9MQv4oEOz4tAHJtNz1cwuLxn2F3xcc2iV5WdqLPpUnj30aUuxt1mAxYTG+oe8CZMV/+6rU4S4gRDzqtQ==
"@types/yargs@^17.0.8":
- version "17.0.32"
- resolved "https://registry.yarnpkg.com/@types/yargs/-/yargs-17.0.32.tgz#030774723a2f7faafebf645f4e5a48371dca6229"
- integrity sha512-xQ67Yc/laOG5uMfX/093MRlGGCIBzZMarVa+gfNKJxWAIgykYpVGkBdbqEzGDDfCrVUj6Hiff4mTZ5BA6TmAog==
+ version "17.0.33"
+ resolved "https://registry.yarnpkg.com/@types/yargs/-/yargs-17.0.33.tgz#8c32303da83eec050a84b3c7ae7b9f922d13e32d"
+ integrity sha512-WpxBCKWPLr4xSsHgz511rFJAM+wS28w2zEO1QDNY5zM/S8ok70NNfztH0xwhqKyaK0OHCbN98LDAZuy1ctxDkA==
dependencies:
"@types/yargs-parser" "*"
@@ -1587,11 +1581,6 @@
"@typescript-eslint/types" "5.62.0"
eslint-visitor-keys "^3.3.0"
-"@ungap/promise-all-settled@1.1.2":
- version "1.1.2"
- resolved "https://registry.yarnpkg.com/@ungap/promise-all-settled/-/promise-all-settled-1.1.2.tgz#aa58042711d6e3275dd37dc597e5d31e8c290a44"
- integrity sha512-sL/cEvJWAnClXw0wHk85/2L0G6Sj8UB0Ctc1TEMbKSsmpRosqhwj9gWgFRZSrBr2f9tiXISwNhCPmlfqUqyb9Q==
-
"@webassemblyjs/ast@1.12.1", "@webassemblyjs/ast@^1.12.1":
version "1.12.1"
resolved "https://registry.yarnpkg.com/@webassemblyjs/ast/-/ast-1.12.1.tgz#bb16a0e8b1914f979f45864c23819cc3e3f0d4bb"
@@ -1748,10 +1737,10 @@ JSONStream@^1.0.3:
jsonparse "^1.2.0"
through ">=2.2.7 <3"
-acorn-import-assertions@^1.9.0:
- version "1.9.0"
- resolved "https://registry.yarnpkg.com/acorn-import-assertions/-/acorn-import-assertions-1.9.0.tgz#507276249d684797c84e0734ef84860334cfb1ac"
- integrity sha512-cmMwop9x+8KFhxvKrKfPYmN6/pKTYYHBqLa0DfvVZcKMJWNyWLnaqND7dx/qn66R7ewM1UX5XMaDVP5wlVTaVA==
+acorn-import-attributes@^1.9.5:
+ version "1.9.5"
+ resolved "https://registry.yarnpkg.com/acorn-import-attributes/-/acorn-import-attributes-1.9.5.tgz#7eb1557b1ba05ef18b5ed0ec67591bfab04688ef"
+ integrity sha512-n02Vykv5uA3eHGM/Z2dQrcD56kL8TyDb2p1+0P83PClMnC/nc+anbQRhIOWnSq4Ke/KvDPrY3C9hDtC/A3eHnQ==
acorn-jsx@^5.3.2:
version "5.3.2"
@@ -1773,24 +1762,21 @@ acorn-walk@^7.0.0:
integrity sha512-OPdCF6GsMIP+Az+aWfAAOEt2/+iVDKE7oy6lJ098aoe59oAmK76qV6Gw60SbZ8jHuG2wH058GF4pLFbYamYrVA==
acorn-walk@^8.1.1:
- version "8.3.1"
- resolved "https://registry.yarnpkg.com/acorn-walk/-/acorn-walk-8.3.1.tgz#2f10f5b69329d90ae18c58bf1fa8fccd8b959a43"
- integrity sha512-TgUZgYvqZprrl7YldZNoa9OciCAyZR+Ejm9eXzKCmjsF5IKp/wgQ7Z/ZpjpGTIUPwrHQIcYeI8qDh4PsEwxMbw==
+ version "8.3.3"
+ resolved "https://registry.yarnpkg.com/acorn-walk/-/acorn-walk-8.3.3.tgz#9caeac29eefaa0c41e3d4c65137de4d6f34df43e"
+ integrity sha512-MxXdReSRhGO7VlFe1bRG/oI7/mdLV9B9JJT0N8vZOhF7gFRR5l3M8W9G8JxmKV+JC5mGqJ0QvqfSOLsCPa4nUw==
+ dependencies:
+ acorn "^8.11.0"
acorn@^7.0.0:
version "7.4.1"
resolved "https://registry.yarnpkg.com/acorn/-/acorn-7.4.1.tgz#feaed255973d2e77555b83dbc08851a6c63520fa"
integrity sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A==
-acorn@^8.4.1, acorn@^8.7.1, acorn@^8.8.2:
- version "8.11.2"
- resolved "https://registry.yarnpkg.com/acorn/-/acorn-8.11.2.tgz#ca0d78b51895be5390a5903c5b3bdcdaf78ae40b"
- integrity sha512-nc0Axzp/0FILLEVsm4fNwLCwMttvhEI263QtVPQcbpfZZ3ts0hLsZGOpE6czNlid7CJ9MlyH8reXkpsf3YUY4w==
-
-acorn@^8.9.0:
- version "8.11.3"
- resolved "https://registry.yarnpkg.com/acorn/-/acorn-8.11.3.tgz#71e0b14e13a4ec160724b38fb7b0f233b1b81d7a"
- integrity sha512-Y9rRfJG5jcKOE0CLisYbojUjIrIEE7AGMzA/Sm4BslANhbS+cDMpgBdcPT91oJ7OuJ9hYJBx59RjbhxVnrF8Xg==
+acorn@^8.11.0, acorn@^8.4.1, acorn@^8.7.1, acorn@^8.8.2, acorn@^8.9.0:
+ version "8.12.1"
+ resolved "https://registry.yarnpkg.com/acorn/-/acorn-8.12.1.tgz#71616bdccbe25e27a54439e0046e89ca76df2248"
+ integrity sha512-tcpGyI9zbizT9JbV6oYE477V6mTlXvvi0T0G3SNIYE2apm/G5huBa1+K89VGeovbg+jycCrfhl3ADxErOuO6Jg==
ajv-formats@^2.1.1:
version "2.1.1"
@@ -1822,14 +1808,14 @@ ajv@^6.10.0, ajv@^6.12.4, ajv@^6.12.5:
uri-js "^4.2.2"
ajv@^8.0.0, ajv@^8.9.0:
- version "8.13.0"
- resolved "https://registry.yarnpkg.com/ajv/-/ajv-8.13.0.tgz#a3939eaec9fb80d217ddf0c3376948c023f28c91"
- integrity sha512-PRA911Blj99jR5RMeTunVbNXMF6Lp4vZXnk5GQjcnUWUTsrXtekg/pnmFFI2u/I36Y/2bITGS30GZCXei6uNkA==
+ version "8.17.1"
+ resolved "https://registry.yarnpkg.com/ajv/-/ajv-8.17.1.tgz#37d9a5c776af6bc92d7f4f9510eba4c0a60d11a6"
+ integrity sha512-B/gBuNg5SiMTrPkC+A2+cW0RszwxYmn6VYxB/inlBStS5nx6xHIt/ehKRhIMhqusl7a8LjQoZnjCs5vhwxOQ1g==
dependencies:
fast-deep-equal "^3.1.3"
+ fast-uri "^3.0.1"
json-schema-traverse "^1.0.0"
require-from-string "^2.0.2"
- uri-js "^4.4.1"
ansi-colors@4.1.1:
version "4.1.1"
@@ -2012,15 +1998,14 @@ array-unique@^0.3.2:
resolved "https://registry.yarnpkg.com/array-unique/-/array-unique-0.3.2.tgz#a894b75d4bc4f6cd679ef3244a9fd8f46ae2d428"
integrity sha512-SleRWjh9JUud2wH1hPs9rZBZ33H6T9HOiL0uwGnGx9FpE6wKGyfWugmbkEOIs6qWrZhg0LWeLziLrEwQJhs5mQ==
-asn1.js@^5.2.0:
- version "5.4.1"
- resolved "https://registry.yarnpkg.com/asn1.js/-/asn1.js-5.4.1.tgz#11a980b84ebb91781ce35b0fdc2ee294e3783f07"
- integrity sha512-+I//4cYPccV8LdmBLiX8CYvf9Sp3vQsrqu2QNXRcrbiWvcx/UdlFiqUJJzxRQxgsZmvhXhn4cSKeSmoFjVdupA==
+asn1.js@^4.10.1:
+ version "4.10.1"
+ resolved "https://registry.yarnpkg.com/asn1.js/-/asn1.js-4.10.1.tgz#b9c2bf5805f1e64aadeed6df3a2bfafb5a73f5a0"
+ integrity sha512-p32cOF5q0Zqs9uBiONKYLm6BClCoBCM5O9JfeUSlnQLBTxYdTK+pW+nXflm8UkKd2UYlEbYz5qEi0JuZR9ckSw==
dependencies:
bn.js "^4.0.0"
inherits "^2.0.1"
minimalistic-assert "^1.0.0"
- safer-buffer "^2.1.0"
assert@^1.4.0:
version "1.5.1"
@@ -2078,10 +2063,12 @@ atob@^2.1.2:
resolved "https://registry.yarnpkg.com/atob/-/atob-2.1.2.tgz#6d9517eb9e030d2436666651e86bd9f6f13533c9"
integrity sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg==
-available-typed-arrays@^1.0.5:
- version "1.0.5"
- resolved "https://registry.yarnpkg.com/available-typed-arrays/-/available-typed-arrays-1.0.5.tgz#92f95616501069d07d10edb2fc37d3e1c65123b7"
- integrity sha512-DMD0KiN46eipeziST1LPP/STfDU0sufISXmjSgvVsoU2tqxctQeASejWcfNtxYKqETM1UxQ8sp2OrSBWpHY6sw==
+available-typed-arrays@^1.0.7:
+ version "1.0.7"
+ resolved "https://registry.yarnpkg.com/available-typed-arrays/-/available-typed-arrays-1.0.7.tgz#a5cc375d6a03c2efc87a553f3e0b1522def14846"
+ integrity sha512-wvUjBtSGN7+7SjNpq/9M2Tg350UZD3q62IFZLbRAR1bSMlCo1ZaeW+BJ+D090e4hIIZLBcTDWe4Mh4jvUDajzQ==
+ dependencies:
+ possible-typed-array-names "^1.0.0"
babel-loader@^8.2.3:
version "8.3.0"
@@ -2093,29 +2080,29 @@ babel-loader@^8.2.3:
make-dir "^3.1.0"
schema-utils "^2.6.5"
-babel-plugin-polyfill-corejs2@^0.4.6:
- version "0.4.7"
- resolved "https://registry.yarnpkg.com/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.4.7.tgz#679d1b94bf3360f7682e11f2cb2708828a24fe8c"
- integrity sha512-LidDk/tEGDfuHW2DWh/Hgo4rmnw3cduK6ZkOI1NPFceSK3n/yAGeOsNT7FLnSGHkXj3RHGSEVkN3FsCTY6w2CQ==
+babel-plugin-polyfill-corejs2@^0.4.10:
+ version "0.4.11"
+ resolved "https://registry.yarnpkg.com/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.4.11.tgz#30320dfe3ffe1a336c15afdcdafd6fd615b25e33"
+ integrity sha512-sMEJ27L0gRHShOh5G54uAAPaiCOygY/5ratXuiyb2G46FmlSpc9eFCzYVyDiPxfNbwzA7mYahmjQc5q+CZQ09Q==
dependencies:
"@babel/compat-data" "^7.22.6"
- "@babel/helper-define-polyfill-provider" "^0.4.4"
+ "@babel/helper-define-polyfill-provider" "^0.6.2"
semver "^6.3.1"
-babel-plugin-polyfill-corejs3@^0.8.5:
- version "0.8.7"
- resolved "https://registry.yarnpkg.com/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.8.7.tgz#941855aa7fdaac06ed24c730a93450d2b2b76d04"
- integrity sha512-KyDvZYxAzkC0Aj2dAPyDzi2Ym15e5JKZSK+maI7NAwSqofvuFglbSsxE7wUOvTg9oFVnHMzVzBKcqEb4PJgtOA==
+babel-plugin-polyfill-corejs3@^0.10.1, babel-plugin-polyfill-corejs3@^0.10.4:
+ version "0.10.6"
+ resolved "https://registry.yarnpkg.com/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.10.6.tgz#2deda57caef50f59c525aeb4964d3b2f867710c7"
+ integrity sha512-b37+KR2i/khY5sKmWNVQAnitvquQbNdWy6lJdsr0kmquCKEEUgMKK4SboVM3HtfnZilfjr4MMQ7vY58FVWDtIA==
dependencies:
- "@babel/helper-define-polyfill-provider" "^0.4.4"
- core-js-compat "^3.33.1"
+ "@babel/helper-define-polyfill-provider" "^0.6.2"
+ core-js-compat "^3.38.0"
-babel-plugin-polyfill-regenerator@^0.5.3:
- version "0.5.4"
- resolved "https://registry.yarnpkg.com/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.5.4.tgz#c6fc8eab610d3a11eb475391e52584bacfc020f4"
- integrity sha512-S/x2iOCvDaCASLYsOOgWOq4bCfKYVqvO/uxjkaYyZ3rVsVE3CeAI/c84NpyuBBymEgNvHgjEot3a9/Z/kXvqsg==
+babel-plugin-polyfill-regenerator@^0.6.1:
+ version "0.6.2"
+ resolved "https://registry.yarnpkg.com/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.6.2.tgz#addc47e240edd1da1058ebda03021f382bba785e"
+ integrity sha512-2R25rQZWP63nGwaAswvDazbPXfrM3HwVoBXK6HcqeKrSrL/JqcC/rDcf95l4r7LXLyxDXc8uQDa064GubtCABg==
dependencies:
- "@babel/helper-define-polyfill-provider" "^0.4.4"
+ "@babel/helper-define-polyfill-provider" "^0.6.2"
bach@^1.0.0:
version "1.2.0"
@@ -2138,9 +2125,9 @@ balanced-match@^1.0.0:
integrity sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==
base-x@^3.0.2, base-x@^3.0.9:
- version "3.0.9"
- resolved "https://registry.yarnpkg.com/base-x/-/base-x-3.0.9.tgz#6349aaabb58526332de9f60995e548a53fe21320"
- integrity sha512-H7JU6iBHTal1gp56aKoaa//YUxEaAOUiydvrV/pILqIHXTtqxSkATOnDA2u+jZ/61sD+L/412+7kzXRtWukhpQ==
+ version "3.0.10"
+ resolved "https://registry.yarnpkg.com/base-x/-/base-x-3.0.10.tgz#62de58653f8762b5d6f8d9fe30fa75f7b2585a75"
+ integrity sha512-7d0s06rR9rYaIWHkpfLIFICM/tkSVdoPC9qYAQRpxn9DdKNWNsKC0uk++akckyLq16Tx2WIinnZ6WRriAt6njQ==
dependencies:
safe-buffer "^5.0.1"
@@ -2198,9 +2185,9 @@ binary-extensions@^1.0.0:
integrity sha512-Un7MIEDdUC5gNpcGDV97op1Ywk748MpHcFTHoYs6qnj1Z3j7I53VG3nwZhKzoBZmbdRNnb6WRdFlwl7tSDuZGw==
binary-extensions@^2.0.0:
- version "2.2.0"
- resolved "https://registry.yarnpkg.com/binary-extensions/-/binary-extensions-2.2.0.tgz#75f502eeaf9ffde42fc98829645be4ea76bd9e2d"
- integrity sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==
+ version "2.3.0"
+ resolved "https://registry.yarnpkg.com/binary-extensions/-/binary-extensions-2.3.0.tgz#f6e14a97858d327252200242d4ccfe522c445522"
+ integrity sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw==
bindings@^1.5.0:
version "1.5.0"
@@ -2209,10 +2196,10 @@ bindings@^1.5.0:
dependencies:
file-uri-to-path "1.0.0"
-bip-schnorr@=0.6.4:
- version "0.6.4"
- resolved "https://registry.yarnpkg.com/bip-schnorr/-/bip-schnorr-0.6.4.tgz#6fde7f301fe6b207dbd05f8ec2caf08fa5a51d0d"
- integrity sha512-dNKw7Lea8B0wMIN4OjEmOk/Z5qUGqoPDY0P2QttLqGk1hmDPytLWW8PR5Pb6Vxy6CprcdEgfJpOjUu+ONQveyg==
+bip-schnorr@^0.6.7:
+ version "0.6.7"
+ resolved "https://registry.yarnpkg.com/bip-schnorr/-/bip-schnorr-0.6.7.tgz#b62a05ba148492a80c914063c99e218a81c55bf5"
+ integrity sha512-Pf1o+whA52l7NC33CZY4eRtcB+dUCT54hKCF8mnw2349CG89LOXODHRWmUEcSSWzoi+Kjg1CtMmw6uV43tmJFA==
dependencies:
bigi "^1.4.2"
ecurve "^1.0.6"
@@ -2244,13 +2231,12 @@ bitcoinjs-lib@^6.1.6:
typeforce "^1.11.3"
varuint-bitcoin "^1.1.2"
-bitcore-lib@^10.0.0:
- version "10.0.21"
- resolved "https://registry.yarnpkg.com/bitcore-lib/-/bitcore-lib-10.0.21.tgz#3afb32dca7e5843836d608958bac0a057d57b304"
- integrity sha512-oYB1BrHjeRHqdrZ+j/cVm+M0XGxRDDjDiX4wP9QWQGAZkvS6DQGeNIndwS7m7BA18H76PJRhBM+DrSV2medpXg==
+bitcore-lib@^10.2.1:
+ version "10.2.1"
+ resolved "https://registry.yarnpkg.com/bitcore-lib/-/bitcore-lib-10.2.1.tgz#34c6d69901100e304f372c3eb1a2251c256b7e5c"
+ integrity sha512-GM2j+01vZK17GBbOe3Thp1PjkrcI9/jELdWzoFsDZoc6v5XgH2t2l60tUrO+oQwOSawzPc5egoi1YvLh75uvpg==
dependencies:
bech32 "=2.0.0"
- bip-schnorr "=0.6.4"
bn.js "=4.11.8"
bs58 "^4.0.1"
buffer-compare "=1.1.1"
@@ -2281,6 +2267,13 @@ brace-expansion@^1.1.7:
balanced-match "^1.0.0"
concat-map "0.0.1"
+brace-expansion@^2.0.1:
+ version "2.0.1"
+ resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-2.0.1.tgz#1edc459e0f0c548486ecf9fc99f2221364b9a0ae"
+ integrity sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==
+ dependencies:
+ balanced-match "^1.0.0"
+
braces@^2.3.1, braces@^2.3.2:
version "2.3.2"
resolved "https://registry.yarnpkg.com/braces/-/braces-2.3.2.tgz#5979fd3f14cd531565e5fa2df1abfff1dfaee729"
@@ -2297,12 +2290,12 @@ braces@^2.3.1, braces@^2.3.2:
split-string "^3.0.2"
to-regex "^3.0.1"
-braces@^3.0.2, braces@~3.0.2:
- version "3.0.2"
- resolved "https://registry.yarnpkg.com/braces/-/braces-3.0.2.tgz#3454e1a462ee8d599e236df336cd9ea4f8afe107"
- integrity sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==
+braces@^3.0.3, braces@~3.0.2:
+ version "3.0.3"
+ resolved "https://registry.yarnpkg.com/braces/-/braces-3.0.3.tgz#490332f40919452272d55a8480adc0c441358789"
+ integrity sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==
dependencies:
- fill-range "^7.0.1"
+ fill-range "^7.1.1"
brorand@^1.0.1, brorand@^1.1.0:
version "1.1.0"
@@ -2333,7 +2326,7 @@ browser-stdout@1.3.1:
resolved "https://registry.yarnpkg.com/browser-stdout/-/browser-stdout-1.3.1.tgz#baa559ee14ced73452229bad7326467c61fabd60"
integrity sha512-qhAVI1+Av2X7qelOfAIYwXONood6XlZE/fXaBSmW/T5SzLAmCgzi+eiWE7fUvbHaeNBQH13UftjpXxsfLkMpgw==
-browserify-aes@^1.0.0, browserify-aes@^1.0.4:
+browserify-aes@^1.0.4, browserify-aes@^1.2.0:
version "1.2.0"
resolved "https://registry.yarnpkg.com/browserify-aes/-/browserify-aes-1.2.0.tgz#326734642f403dabc3003209853bb70ad428ef48"
integrity sha512-+7CHXqGuspUn/Sl5aO7Ea0xWGAtETPXNSAjHo48JfLdPWcMng33Xe4znFvQweqc/uzk5zSOI3H52CYnjCfb5hA==
@@ -2373,18 +2366,19 @@ browserify-rsa@^4.0.0, browserify-rsa@^4.1.0:
randombytes "^2.0.1"
browserify-sign@^4.0.0:
- version "4.2.2"
- resolved "https://registry.yarnpkg.com/browserify-sign/-/browserify-sign-4.2.2.tgz#e78d4b69816d6e3dd1c747e64e9947f9ad79bc7e"
- integrity sha512-1rudGyeYY42Dk6texmv7c4VcQ0EsvVbLwZkA+AQB7SxvXxmcD93jcHie8bzecJ+ChDlmAm2Qyu0+Ccg5uhZXCg==
+ version "4.2.3"
+ resolved "https://registry.yarnpkg.com/browserify-sign/-/browserify-sign-4.2.3.tgz#7afe4c01ec7ee59a89a558a4b75bd85ae62d4208"
+ integrity sha512-JWCZW6SKhfhjJxO8Tyiiy+XYB7cqd2S5/+WeYHsKdNKFlCBhKbblba1A/HN/90YwtxKc8tCErjffZl++UNmGiw==
dependencies:
bn.js "^5.2.1"
browserify-rsa "^4.1.0"
create-hash "^1.2.0"
create-hmac "^1.1.7"
- elliptic "^6.5.4"
+ elliptic "^6.5.5"
+ hash-base "~3.0"
inherits "^2.0.4"
- parse-asn1 "^5.1.6"
- readable-stream "^3.6.2"
+ parse-asn1 "^5.1.7"
+ readable-stream "^2.3.8"
safe-buffer "^5.2.1"
browserify-zlib@^0.2.0, browserify-zlib@~0.2.0:
@@ -2448,25 +2442,15 @@ browserify@^17.0.0:
vm-browserify "^1.0.0"
xtend "^4.0.0"
-browserslist@^4.21.10:
- version "4.23.0"
- resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.23.0.tgz#8f3acc2bbe73af7213399430890f86c63a5674ab"
- integrity sha512-QW8HiM1shhT2GuzkvklfjcKDiWFXHOeFCIA/huJPwHsslwcydgk7X+z2zXpEijP98UCY7HbubZt5J2Zgvf0CaQ==
+browserslist@^4.21.10, browserslist@^4.23.1, browserslist@^4.23.3:
+ version "4.23.3"
+ resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.23.3.tgz#debb029d3c93ebc97ffbc8d9cbb03403e227c800"
+ integrity sha512-btwCFJVjI4YWDNfau8RhZ+B1Q/VLoUITrm3RlP6y1tYGWIOa+InuYiRGXUBXo8nA1qKmHMyLB/iVQg5TT4eFoA==
dependencies:
- caniuse-lite "^1.0.30001587"
- electron-to-chromium "^1.4.668"
- node-releases "^2.0.14"
- update-browserslist-db "^1.0.13"
-
-browserslist@^4.22.2:
- version "4.22.2"
- resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.22.2.tgz#704c4943072bd81ea18997f3bd2180e89c77874b"
- integrity sha512-0UgcrvQmBDvZHFGdYUehrCNIazki7/lUP3kkoi/r3YB2amZbFM9J43ZRkJTXBUZK4gmx56+Sqk9+Vs9mwZx9+A==
- dependencies:
- caniuse-lite "^1.0.30001565"
- electron-to-chromium "^1.4.601"
- node-releases "^2.0.14"
- update-browserslist-db "^1.0.13"
+ caniuse-lite "^1.0.30001646"
+ electron-to-chromium "^1.5.4"
+ node-releases "^2.0.18"
+ update-browserslist-db "^1.1.0"
bs58@^4.0.0, bs58@^4.0.1:
version "4.0.1"
@@ -2568,16 +2552,7 @@ cached-path-relative@^1.0.0, cached-path-relative@^1.0.2:
resolved "https://registry.yarnpkg.com/cached-path-relative/-/cached-path-relative-1.1.0.tgz#865576dfef39c0d6a7defde794d078f5308e3ef3"
integrity sha512-WF0LihfemtesFcJgO7xfOoOcnWzY/QHR4qeDqV44jPU3HTI54+LnfXK3SA27AVVGCdZFgjjFFaqUA9Jx7dMJZA==
-call-bind@^1.0.0, call-bind@^1.0.2, call-bind@^1.0.4, call-bind@^1.0.5:
- version "1.0.5"
- resolved "https://registry.yarnpkg.com/call-bind/-/call-bind-1.0.5.tgz#6fa2b7845ce0ea49bf4d8b9ef64727a2c2e2e513"
- integrity sha512-C3nQxfFZxFRVoJoGKKI8y3MOEo129NQ+FgQ08iye+Mk4zNZZGdjfs06bVTr+DBSlA66Q2VEcMki/cUCP4SercQ==
- dependencies:
- function-bind "^1.1.2"
- get-intrinsic "^1.2.1"
- set-function-length "^1.1.1"
-
-call-bind@^1.0.7:
+call-bind@^1.0.0, call-bind@^1.0.2, call-bind@^1.0.5, call-bind@^1.0.7:
version "1.0.7"
resolved "https://registry.yarnpkg.com/call-bind/-/call-bind-1.0.7.tgz#06016599c40c56498c18769d2730be242b6fa3b9"
integrity sha512-GHTSNSYICQ7scH7sZ+M2rFopRoLh8t2bLSW6BbgrtLsahOIB5iyAVJf9GjWK3cYTDaMj4XdBpM1cA6pIS0Kv2w==
@@ -2603,15 +2578,10 @@ camelcase@^6.0.0:
resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-6.3.0.tgz#5685b95eb209ac9c0c177467778c9c84df58ba9a"
integrity sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==
-caniuse-lite@^1.0.30001565:
- version "1.0.30001571"
- resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001571.tgz#4182e93d696ff42930f4af7eba515ddeb57917ac"
- integrity sha512-tYq/6MoXhdezDLFZuCO/TKboTzuQ/xR5cFdgXPfDtM7/kchBO3b4VWghE/OAi/DV7tTdhmLjZiZBZi1fA/GheQ==
-
-caniuse-lite@^1.0.30001587:
- version "1.0.30001616"
- resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001616.tgz#4342712750d35f71ebba9fcac65e2cf8870013c3"
- integrity sha512-RHVYKov7IcdNjVHJFNY/78RdG4oGVjbayxv8u5IO74Wv7Hlq4PnJE6mo/OjFijjVFNy5ijnCt6H3IIo4t+wfEw==
+caniuse-lite@^1.0.30001646:
+ version "1.0.30001651"
+ resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001651.tgz#52de59529e8b02b1aedcaaf5c05d9e23c0c28138"
+ integrity sha512-9Cf+Xv1jJNe1xPZLGuUXLNkE1BoDkqRqYyFJ9TDYSqhduqA4hu4oR9HluGoWYQC/aj8WHjsGVV+bwkh0+tegRg==
cbor-sync@^1.0.4:
version "1.0.4"
@@ -2619,9 +2589,9 @@ cbor-sync@^1.0.4:
integrity sha512-GWlXN4wiz0vdWWXBU71Dvc1q3aBo0HytqwAZnXF1wOwjqNnDWA1vZ1gDMFLlqohak31VQzmhiYfiCX5QSSfagA==
chai@^4.3.4:
- version "4.3.10"
- resolved "https://registry.yarnpkg.com/chai/-/chai-4.3.10.tgz#d784cec635e3b7e2ffb66446a63b4e33bd390384"
- integrity sha512-0UXG04VuVbruMUYbJ6JctvH0YnC/4q3/AkT18q4NaITo91CUm0liMS9VqzT9vZhVQ/1eqPanMWjBM+Juhfb/9g==
+ version "4.5.0"
+ resolved "https://registry.yarnpkg.com/chai/-/chai-4.5.0.tgz#707e49923afdd9b13a8b0b47d33d732d13812fd8"
+ integrity sha512-RITGBfijLkBddZvnn8jdqoTypxvqbOLYQkGGxXzeFjVHvudaPw0HNFD9x928/eUwYWd2dPCugVqspGALTZZQKw==
dependencies:
assertion-error "^1.1.0"
check-error "^1.0.3"
@@ -2629,7 +2599,7 @@ chai@^4.3.4:
get-func-name "^2.0.2"
loupe "^2.3.6"
pathval "^1.1.1"
- type-detect "^4.0.8"
+ type-detect "^4.1.0"
chalk@^2.4.2:
version "2.4.2"
@@ -2655,7 +2625,7 @@ check-error@^1.0.3:
dependencies:
get-func-name "^2.0.2"
-chokidar@3.5.3, chokidar@^3.4.0:
+chokidar@3.5.3:
version "3.5.3"
resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-3.5.3.tgz#1cf37c8707b932bd1af1ae22c0432e2acd1903bd"
integrity sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==
@@ -2689,10 +2659,25 @@ chokidar@^2.0.0:
optionalDependencies:
fsevents "^1.2.7"
+chokidar@^3.4.0:
+ version "3.6.0"
+ resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-3.6.0.tgz#197c6cc669ef2a8dc5e7b4d97ee4e092c3eb0d5b"
+ integrity sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==
+ dependencies:
+ anymatch "~3.1.2"
+ braces "~3.0.2"
+ glob-parent "~5.1.2"
+ is-binary-path "~2.1.0"
+ is-glob "~4.0.1"
+ normalize-path "~3.0.0"
+ readdirp "~3.6.0"
+ optionalDependencies:
+ fsevents "~2.3.2"
+
chrome-trace-event@^1.0.2:
- version "1.0.3"
- resolved "https://registry.yarnpkg.com/chrome-trace-event/-/chrome-trace-event-1.0.3.tgz#1015eced4741e15d06664a957dbbf50d041e26ac"
- integrity sha512-p3KULyQg4S7NIHixdwbGX+nFHkoBiA4YQmyWtjb8XngSKV124nJmRysgAeujbUVb15vh+RvFUfCPqU7rXk+hZg==
+ version "1.0.4"
+ resolved "https://registry.yarnpkg.com/chrome-trace-event/-/chrome-trace-event-1.0.4.tgz#05bffd7ff928465093314708c93bdfa9bd1f0f5b"
+ integrity sha512-rNjApaLzuwaOTjCiT8lSDdGN1APCiqkChLMJxJPWLunPAt5fy8xgU9/jNOchV84wfIxrA0lRQB7oCT8jrn/wrQ==
ci-info@^3.2.0:
version "3.9.0"
@@ -2914,12 +2899,12 @@ copy-props@^2.0.1:
each-props "^1.3.2"
is-plain-object "^5.0.0"
-core-js-compat@^3.31.0, core-js-compat@^3.33.1:
- version "3.34.0"
- resolved "https://registry.yarnpkg.com/core-js-compat/-/core-js-compat-3.34.0.tgz#61a4931a13c52f8f08d924522bba65f8c94a5f17"
- integrity sha512-4ZIyeNbW/Cn1wkMMDy+mvrRUxrwFNjKwbhCfQpDd+eLgYipDqp8oGFGtLmhh18EDPKA0g3VUBYOxQGGwvWLVpA==
+core-js-compat@^3.37.1, core-js-compat@^3.38.0:
+ version "3.38.0"
+ resolved "https://registry.yarnpkg.com/core-js-compat/-/core-js-compat-3.38.0.tgz#d93393b1aa346b6ee683377b0c31172ccfe607aa"
+ integrity sha512-75LAicdLa4OJVwFxFbQR3NdnZjNgX6ILpVcVzcC4T2smerB5lELMrJQQQoWV6TiuC/vlaFqgU2tKQx9w5s0e0A==
dependencies:
- browserslist "^4.22.2"
+ browserslist "^4.23.3"
core-util-is@~1.0.0:
version "1.0.3"
@@ -3002,23 +2987,23 @@ crypto-browserify@^3.0.0, crypto-browserify@^3.12.0:
randombytes "^2.0.0"
randomfill "^1.0.3"
-d@1, d@^1.0.1:
- version "1.0.1"
- resolved "https://registry.yarnpkg.com/d/-/d-1.0.1.tgz#8698095372d58dbee346ffd0c7093f99f8f9eb5a"
- integrity sha512-m62ShEObQ39CfralilEQRjH6oAMtNCV1xJyEx5LpRYUVN+EviphDgUc/F3hnYbADmkiNs67Y+3ylmlG7Lnu+FA==
+d@1, d@^1.0.1, d@^1.0.2:
+ version "1.0.2"
+ resolved "https://registry.yarnpkg.com/d/-/d-1.0.2.tgz#2aefd554b81981e7dccf72d6842ae725cb17e5de"
+ integrity sha512-MOqHvMWF9/9MX6nza0KgvFH4HpMU0EF5uUDXqX/BtxtU8NfB0QzRtJ8Oe/6SuS4kbhyzVJwjd97EA4PKrzJ8bw==
dependencies:
- es5-ext "^0.10.50"
- type "^1.0.1"
+ es5-ext "^0.10.64"
+ type "^2.7.2"
dash-ast@^1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/dash-ast/-/dash-ast-1.0.0.tgz#12029ba5fb2f8aa6f0a861795b23c1b4b6c27d37"
integrity sha512-Vy4dx7gquTeMcQR/hDkYLGUnwVil6vk4FOOct+djUnHOUWt+zJPJAaRIXaAFkPXtJjvlY7o3rfRu0/3hpnwoUA==
-debug@4.3.3:
- version "4.3.3"
- resolved "https://registry.yarnpkg.com/debug/-/debug-4.3.3.tgz#04266e0b70a98d4462e6e288e38259213332b664"
- integrity sha512-/zxw5+vh1Tfv+4Qn7a5nsbcJKPaSvCDhojn6FEl9vupwK2VCSDtEiEtqr8DFtzYFOdz63LBkxec7DYuc2jon6Q==
+debug@4.3.4:
+ version "4.3.4"
+ resolved "https://registry.yarnpkg.com/debug/-/debug-4.3.4.tgz#1319f6579357f2338d3337d2cdd4914bb5dcc865"
+ integrity sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==
dependencies:
ms "2.1.2"
@@ -3030,9 +3015,9 @@ debug@^2.2.0, debug@^2.3.3:
ms "2.0.0"
debug@^4.1.0, debug@^4.1.1, debug@^4.3.1, debug@^4.3.2, debug@^4.3.4:
- version "4.3.4"
- resolved "https://registry.yarnpkg.com/debug/-/debug-4.3.4.tgz#1319f6579357f2338d3337d2cdd4914bb5dcc865"
- integrity sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==
+ version "4.3.6"
+ resolved "https://registry.yarnpkg.com/debug/-/debug-4.3.6.tgz#2ab2c38fbaffebf8aa95fdfe6d88438c7a13c52b"
+ integrity sha512-O/09Bd4Z1fBrU4VzkhFqVgpPzaGbw6Sm9FEkBT1A/YBXQFGuuSxa1dN2nxgxS34JmKXqYx8CZAwEVoJFImUXIg==
dependencies:
ms "2.1.2"
@@ -3057,9 +3042,9 @@ decode-uri-component@^0.2.0:
integrity sha512-FqUYQ+8o158GyGTrMFJms9qh3CqTKvAqgqsTnkLI8sKu0028orqBhxNMFkFen0zGyg6epACD32pjVk58ngIErQ==
deep-eql@^4.1.3:
- version "4.1.3"
- resolved "https://registry.yarnpkg.com/deep-eql/-/deep-eql-4.1.3.tgz#7c7775513092f7df98d8df9996dd085eb668cc6d"
- integrity sha512-WaEtAOpRA1MQ0eohqZjpGD8zdI0Ovsm8mmFhaDN8dvDZzyoUMcYDnf5Y6iu7HTXxf8JDS23qWa4a+hKCDyOPzw==
+ version "4.1.4"
+ resolved "https://registry.yarnpkg.com/deep-eql/-/deep-eql-4.1.4.tgz#d0d3912865911bb8fac5afb4e3acfa6a28dc72b7"
+ integrity sha512-SUwdGfqdKOwxCPeVYjwSyRpJ7Z+fhpwIAtmCUdZIWZ/YP5R9WAsyuSgpLVDi9bjWoN2LXHNss/dk3urXtdQxGg==
dependencies:
type-detect "^4.0.0"
@@ -3080,16 +3065,7 @@ default-resolution@^2.0.0:
resolved "https://registry.yarnpkg.com/default-resolution/-/default-resolution-2.0.0.tgz#bcb82baa72ad79b426a76732f1a81ad6df26d684"
integrity sha512-2xaP6GiwVwOEbXCGoJ4ufgC76m8cj805jrghScewJC2ZDsb9U0b4BIrba+xt/Uytyd0HvQ6+WymSRTfnYj59GQ==
-define-data-property@^1.0.1, define-data-property@^1.1.1:
- version "1.1.1"
- resolved "https://registry.yarnpkg.com/define-data-property/-/define-data-property-1.1.1.tgz#c35f7cd0ab09883480d12ac5cb213715587800b3"
- integrity sha512-E7uGkTzkk1d0ByLeSc6ZsFS79Axg+m1P/VsgYsxHgiuc3tFSj+MjMIwe90FC4lOAZzNBdY7kkO2P2wKdsQ1vgQ==
- dependencies:
- get-intrinsic "^1.2.1"
- gopd "^1.0.1"
- has-property-descriptors "^1.0.0"
-
-define-data-property@^1.1.2:
+define-data-property@^1.0.1, define-data-property@^1.1.4:
version "1.1.4"
resolved "https://registry.yarnpkg.com/define-data-property/-/define-data-property-1.1.4.tgz#894dc141bb7d3060ae4366f6a0107e68fbe48c5e"
integrity sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A==
@@ -3259,20 +3235,15 @@ ecurve@^1.0.6:
bigi "^1.1.0"
safe-buffer "^5.0.1"
-electron-to-chromium@^1.4.601:
- version "1.4.616"
- resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.4.616.tgz#4bddbc2c76e1e9dbf449ecd5da3d8119826ea4fb"
- integrity sha512-1n7zWYh8eS0L9Uy+GskE0lkBUNK83cXTVJI0pU3mGprFsbfSdAc15VTFbo+A+Bq4pwstmL30AVcEU3Fo463lNg==
-
-electron-to-chromium@^1.4.668:
- version "1.4.756"
- resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.4.756.tgz#7b872ed8c8c5bee571be771730225d6d2a37fe45"
- integrity sha512-RJKZ9+vEBMeiPAvKNWyZjuYyUqMndcP1f335oHqn3BEQbs2NFtVrnK5+6Xg5wSM9TknNNpWghGDUCKGYF+xWXw==
+electron-to-chromium@^1.5.4:
+ version "1.5.6"
+ resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.5.6.tgz#c81d9938b5a877314ad370feb73b4e5409b36abd"
+ integrity sha512-jwXWsM5RPf6j9dPYzaorcBSUg6AiqocPEyMpkchkvntaH9HGfOOMZwxMJjDY/XEs3T5dM7uyH1VhRMkqUU9qVw==
-elliptic@^6.5.3, elliptic@^6.5.4:
- version "6.5.4"
- resolved "https://registry.yarnpkg.com/elliptic/-/elliptic-6.5.4.tgz#da37cebd31e79a1367e941b592ed1fbebd58abbb"
- integrity sha512-iLhC6ULemrljPZb+QutR5TQGB+pdW6KGD5RSegS+8sorOZT+rdQFbsQFJgvN3eRqNALqJer4oQ16YvJHlU8hzQ==
+elliptic@^6.5.3, elliptic@^6.5.4, elliptic@^6.5.5:
+ version "6.5.6"
+ resolved "https://registry.yarnpkg.com/elliptic/-/elliptic-6.5.6.tgz#ee5f7c3a00b98a2144ac84d67d01f04d438fa53e"
+ integrity sha512-mpzdtpeCLuS3BmE3pO3Cpp5bbjlOPY2Q0PgoF+Od1XZrHLYI28Xe3ossCmYCQt11FQKEYd9+PF8jymTvtWJSHQ==
dependencies:
bn.js "^4.11.9"
brorand "^1.1.0"
@@ -3299,10 +3270,10 @@ end-of-stream@^1.0.0, end-of-stream@^1.1.0:
dependencies:
once "^1.4.0"
-enhanced-resolve@^5.0.0, enhanced-resolve@^5.16.0, enhanced-resolve@^5.7.0:
- version "5.16.0"
- resolved "https://registry.yarnpkg.com/enhanced-resolve/-/enhanced-resolve-5.16.0.tgz#65ec88778083056cb32487faa9aef82ed0864787"
- integrity sha512-O+QWCviPNSSLAD9Ucn8Awv+poAkqn3T1XY5/N7kR7rQO9yfSGWkYZDwpJ+iKF7B8rxaQKWngSqACpgzeapSyoA==
+enhanced-resolve@^5.0.0, enhanced-resolve@^5.17.0, enhanced-resolve@^5.7.0:
+ version "5.17.1"
+ resolved "https://registry.yarnpkg.com/enhanced-resolve/-/enhanced-resolve-5.17.1.tgz#67bfbbcc2f81d511be77d686a90267ef7f898a15"
+ integrity sha512-LMHl3dXhTcfv8gM4kEzIUeTQ+7fpdA0l2tUf34BddXPkz2A5xJ5L/Pchd5BL6rdccM9QGvu0sWZzK1Z1t4wwyg==
dependencies:
graceful-fs "^4.2.4"
tapable "^2.2.0"
@@ -3316,9 +3287,9 @@ enquirer@^2.3.5:
strip-ansi "^6.0.1"
envinfo@^7.7.3:
- version "7.11.0"
- resolved "https://registry.yarnpkg.com/envinfo/-/envinfo-7.11.0.tgz#c3793f44284a55ff8c82faf1ffd91bc6478ea01f"
- integrity sha512-G9/6xF1FPbIw0TtalAMaVPpiq2aDEuKLXM314jPVAO9r2fo2a4BLqMNkmRS7O/xPPZ+COAhGIz3ETvHEV3eUcg==
+ version "7.13.0"
+ resolved "https://registry.yarnpkg.com/envinfo/-/envinfo-7.13.0.tgz#81fbb81e5da35d74e814941aeab7c325a606fb31"
+ integrity sha512-cvcaMr7KqXVh4nyzGTVqTum+gAiL265x5jUWQIDLq//zOGbW+gSW/C+OWLleY/rs9Qole6AZLMXPbtIFQbqu+Q==
errno@^0.1.3:
version "0.1.8"
@@ -3347,17 +3318,18 @@ es-errors@^1.3.0:
integrity sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==
es-module-lexer@^1.2.1:
- version "1.4.1"
- resolved "https://registry.yarnpkg.com/es-module-lexer/-/es-module-lexer-1.4.1.tgz#41ea21b43908fe6a287ffcbe4300f790555331f5"
- integrity sha512-cXLGjP0c4T3flZJKQSuziYoq7MlT+rnvfZjfp7h+I7K9BNX54kP9nyWvdbwjQ4u1iWbOL4u96fgeZLToQlZC7w==
+ version "1.5.4"
+ resolved "https://registry.yarnpkg.com/es-module-lexer/-/es-module-lexer-1.5.4.tgz#a8efec3a3da991e60efa6b633a7cad6ab8d26b78"
+ integrity sha512-MVNK56NiMrOwitFB7cqDwq0CQutbw+0BvLshJSse0MUNU+y1FC3bUS/AQg7oUng+/wKrrki7JfmwtVHkVfPLlw==
-es5-ext@^0.10.35, es5-ext@^0.10.46, es5-ext@^0.10.50:
- version "0.10.62"
- resolved "https://registry.yarnpkg.com/es5-ext/-/es5-ext-0.10.62.tgz#5e6adc19a6da524bf3d1e02bbc8960e5eb49a9a5"
- integrity sha512-BHLqn0klhEpnOKSrzn/Xsz2UIW8j+cGmo9JLzr8BiUapV8hPL9+FliFqjwr9ngW7jWdnxv6eO+/LqyhJVqgrjA==
+es5-ext@^0.10.35, es5-ext@^0.10.46, es5-ext@^0.10.62, es5-ext@^0.10.64, es5-ext@~0.10.14:
+ version "0.10.64"
+ resolved "https://registry.yarnpkg.com/es5-ext/-/es5-ext-0.10.64.tgz#12e4ffb48f1ba2ea777f1fcdd1918ef73ea21714"
+ integrity sha512-p2snDhiLaXe6dahss1LddxqEm+SkuDvV8dnIQG0MWjyHpcMNfXKPE+/Cc0y+PhxJX3A4xGNeFCj5oc0BUh6deg==
dependencies:
es6-iterator "^2.0.3"
es6-symbol "^3.1.3"
+ esniff "^2.0.1"
next-tick "^1.1.0"
es6-iterator@^2.0.1, es6-iterator@^2.0.3:
@@ -3370,12 +3342,12 @@ es6-iterator@^2.0.1, es6-iterator@^2.0.3:
es6-symbol "^3.1.1"
es6-symbol@^3.1.1, es6-symbol@^3.1.3:
- version "3.1.3"
- resolved "https://registry.yarnpkg.com/es6-symbol/-/es6-symbol-3.1.3.tgz#bad5d3c1bcdac28269f4cb331e431c78ac705d18"
- integrity sha512-NJ6Yn3FuDinBaBRWl/q5X/s4koRHBrgKAu+yGI6JCBeiu3qrcbJhwT2GeR/EXVfylRk8dpQVJoLEFhK+Mu31NA==
+ version "3.1.4"
+ resolved "https://registry.yarnpkg.com/es6-symbol/-/es6-symbol-3.1.4.tgz#f4e7d28013770b4208ecbf3e0bf14d3bcb557b8c"
+ integrity sha512-U9bFFjX8tFiATgtkJ1zg25+KviIXpgRvRHS8sau3GfhVzThRQrOeksPeT0BWW2MNZs1OEWJ1DPXOQMn0KKRkvg==
dependencies:
- d "^1.0.1"
- ext "^1.1.2"
+ d "^1.0.2"
+ ext "^1.7.0"
es6-weak-map@^2.0.1:
version "2.0.3"
@@ -3387,10 +3359,10 @@ es6-weak-map@^2.0.1:
es6-iterator "^2.0.3"
es6-symbol "^3.1.1"
-escalade@^3.1.1:
- version "3.1.1"
- resolved "https://registry.yarnpkg.com/escalade/-/escalade-3.1.1.tgz#d8cfdc7000965c5a0174b4a82eaa5c0552742e40"
- integrity sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==
+escalade@^3.1.1, escalade@^3.1.2:
+ version "3.1.2"
+ resolved "https://registry.yarnpkg.com/escalade/-/escalade-3.1.2.tgz#54076e9ab29ea5bf3d8f1ed62acffbb88272df27"
+ integrity sha512-ErCHMCae19vR8vQGe50xIsVomy19rg6gFu3+r3jkEO46suLMWBksvVyoGgQV+jOfl84ZSOSlmv6Gxa89PmTGmA==
escape-string-regexp@4.0.0, escape-string-regexp@^4.0.0:
version "4.0.0"
@@ -3408,12 +3380,12 @@ eslint-config-prettier@^9.1.0:
integrity sha512-NSWl5BFQWEPi1j4TjVNItzYV7dZXZ+wP6I6ZhrBGpChQhZRUaElihE9uRRkcbRnNb76UMKDF3r+WTmNcGPKsqw==
eslint-plugin-prettier@^5.1.3:
- version "5.1.3"
- resolved "https://registry.yarnpkg.com/eslint-plugin-prettier/-/eslint-plugin-prettier-5.1.3.tgz#17cfade9e732cef32b5f5be53bd4e07afd8e67e1"
- integrity sha512-C9GCVAs4Eq7ZC/XFQHITLiHJxQngdtraXaM+LoUFoFp/lHNl2Zn8f3WQbe9HvTBBQ9YnKFB0/2Ajdqwo5D1EAw==
+ version "5.2.1"
+ resolved "https://registry.yarnpkg.com/eslint-plugin-prettier/-/eslint-plugin-prettier-5.2.1.tgz#d1c8f972d8f60e414c25465c163d16f209411f95"
+ integrity sha512-gH3iR3g4JfF+yYPaJYkN7jEl9QbweL/YfkoRlNnuIEHEz1vHVlCmWOS+eGGiRuzHQXdJFCOTxRgvju9b8VUmrw==
dependencies:
prettier-linter-helpers "^1.0.0"
- synckit "^0.8.6"
+ synckit "^0.9.1"
eslint-scope@5.1.1, eslint-scope@^5.1.1:
version "5.1.1"
@@ -3449,11 +3421,11 @@ eslint-visitor-keys@^3.0.0, eslint-visitor-keys@^3.3.0, eslint-visitor-keys@^3.4
integrity sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==
eslint-webpack-plugin@^4.1.0:
- version "4.1.0"
- resolved "https://registry.yarnpkg.com/eslint-webpack-plugin/-/eslint-webpack-plugin-4.1.0.tgz#83daf1e601ea57b63d7164eea0635d7b7bafe673"
- integrity sha512-C3wAG2jyockIhN0YRLuKieKj2nx/gnE/VHmoHemD5ifnAtY6ZU+jNPfzPoX4Zd6RIbUyWTiZUh/ofUlBhoAX7w==
+ version "4.2.0"
+ resolved "https://registry.yarnpkg.com/eslint-webpack-plugin/-/eslint-webpack-plugin-4.2.0.tgz#41f54b25379908eb9eca8645bc997c90cfdbd34e"
+ integrity sha512-rsfpFQ01AWQbqtjgPRr2usVRxhWDuG0YDYcG8DJOteD3EFnpeuYuOwk0PQiN7PRBTqS6ElNdtPZPggj8If9WnA==
dependencies:
- "@types/eslint" "^8.56.5"
+ "@types/eslint" "^8.56.10"
jest-worker "^29.7.0"
micromatch "^4.0.5"
normalize-path "^3.0.0"
@@ -3503,6 +3475,16 @@ eslint@8.0.0:
text-table "^0.2.0"
v8-compile-cache "^2.0.3"
+esniff@^2.0.1:
+ version "2.0.1"
+ resolved "https://registry.yarnpkg.com/esniff/-/esniff-2.0.1.tgz#a4d4b43a5c71c7ec51c51098c1d8a29081f9b308"
+ integrity sha512-kTUIGKQ/mDPFoJ0oVfcmyJn4iBDRptjNVIzwIFR7tqWXdVI9xfA2RMwY/gbSpJG3lkdWNEjLap/NqVHZiJsdfg==
+ dependencies:
+ d "^1.0.1"
+ es5-ext "^0.10.62"
+ event-emitter "^0.3.5"
+ type "^2.7.2"
+
espree@^9.0.0, espree@^9.4.0:
version "9.6.1"
resolved "https://registry.yarnpkg.com/espree/-/espree-9.6.1.tgz#a2a17b8e434690a5432f2f8018ce71d331a48c6f"
@@ -3513,9 +3495,9 @@ espree@^9.0.0, espree@^9.4.0:
eslint-visitor-keys "^3.4.1"
esquery@^1.4.0:
- version "1.5.0"
- resolved "https://registry.yarnpkg.com/esquery/-/esquery-1.5.0.tgz#6ce17738de8577694edd7361c57182ac8cb0db0b"
- integrity sha512-YQLXUplAwJgCydQ78IMJywZCceoqk1oH01OERdSAJc/7U2AylwjhSCLDEtqwg811idIS/9fIU5GjG73IgjKMVg==
+ version "1.6.0"
+ resolved "https://registry.yarnpkg.com/esquery/-/esquery-1.6.0.tgz#91419234f804d852a82dceec3e16cdc22cf9dae7"
+ integrity sha512-ca9pw9fomFcKPvFLXhBKUK90ZvGibiGOvRJNbjljY7s7uq/5YO4BOzcYtJqExdx99rF6aAcnRxHmcUHcz6sQsg==
dependencies:
estraverse "^5.1.0"
@@ -3542,14 +3524,22 @@ esutils@^2.0.2:
integrity sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==
ethereum-cryptography@^2.0.0:
- version "2.1.3"
- resolved "https://registry.yarnpkg.com/ethereum-cryptography/-/ethereum-cryptography-2.1.3.tgz#1352270ed3b339fe25af5ceeadcf1b9c8e30768a"
- integrity sha512-BlwbIL7/P45W8FGW2r7LGuvoEZ+7PWsniMvQ4p5s2xCyw9tmaDlpfsN9HjAucbF+t/qpVHwZUisgfK24TCW8aA==
+ version "2.2.1"
+ resolved "https://registry.yarnpkg.com/ethereum-cryptography/-/ethereum-cryptography-2.2.1.tgz#58f2810f8e020aecb97de8c8c76147600b0b8ccf"
+ integrity sha512-r/W8lkHSiTLxUxW8Rf3u4HGB0xQweG2RyETjywylKZSzLWoWAijRz8WCuOtJ6wah+avllXBqZuk29HCCvhEIRg==
+ dependencies:
+ "@noble/curves" "1.4.2"
+ "@noble/hashes" "1.4.0"
+ "@scure/bip32" "1.4.0"
+ "@scure/bip39" "1.3.0"
+
+event-emitter@^0.3.5:
+ version "0.3.5"
+ resolved "https://registry.yarnpkg.com/event-emitter/-/event-emitter-0.3.5.tgz#df8c69eef1647923c7157b9ce83840610b02cc39"
+ integrity sha512-D9rRn9y7kLPnJ+hMq7S/nhvoKwwvVJahBi2BPmx3bvbsEdK3W9ii8cBSGjP+72/LnM4n6fo3+dkCX5FeTQruXA==
dependencies:
- "@noble/curves" "1.3.0"
- "@noble/hashes" "1.3.3"
- "@scure/bip32" "1.3.3"
- "@scure/bip39" "1.2.2"
+ d "1"
+ es5-ext "~0.10.14"
events@^3.0.0, events@^3.2.0:
version "3.3.0"
@@ -3591,7 +3581,7 @@ expand-tilde@^2.0.0, expand-tilde@^2.0.2:
dependencies:
homedir-polyfill "^1.0.1"
-ext@^1.1.2:
+ext@^1.7.0:
version "1.7.0"
resolved "https://registry.yarnpkg.com/ext/-/ext-1.7.0.tgz#0ea4383c0103d60e70be99e9a7f11027a33c4f5f"
integrity sha512-6hxeJYaL110a9b5TEJSj0gojyHQAmA2ch5Os+ySCiA1QGdS697XWY1pzsrSjqA9LDEEgdB/KypIlR59RcLuHYw==
@@ -3683,15 +3673,20 @@ fast-safe-stringify@^2.0.7:
resolved "https://registry.yarnpkg.com/fast-safe-stringify/-/fast-safe-stringify-2.1.1.tgz#c406a83b6e70d9e35ce3b30a81141df30aeba884"
integrity sha512-W+KJc2dmILlPplD/H4K9l9LcAHAfPtP6BY84uVLXQ6Evcz9Lcg33Y2z1IVblT6xdY54PXYVHEv+0Wpq8Io6zkA==
+fast-uri@^3.0.1:
+ version "3.0.1"
+ resolved "https://registry.yarnpkg.com/fast-uri/-/fast-uri-3.0.1.tgz#cddd2eecfc83a71c1be2cc2ef2061331be8a7134"
+ integrity sha512-MWipKbbYiYI0UC7cl8m/i/IWTqfC8YXsqjzybjddLsFjStroQzsHXkc73JutMvBiXmOvapk+axIl79ig5t55Bw==
+
fastest-levenshtein@^1.0.12:
version "1.0.16"
resolved "https://registry.yarnpkg.com/fastest-levenshtein/-/fastest-levenshtein-1.0.16.tgz#210e61b6ff181de91ea9b3d1b84fdedd47e034e5"
integrity sha512-eRnCtTTtGZFpQCwhJiUOuxPQWRXVKYDn0b2PeHfXL6/Zi53SLAzAHfVhVWK2AryC/WH05kGfxhFIPvTF0SXQzg==
fastq@^1.6.0:
- version "1.16.0"
- resolved "https://registry.yarnpkg.com/fastq/-/fastq-1.16.0.tgz#83b9a9375692db77a822df081edb6a9cf6839320"
- integrity sha512-ifCoaXsDrsdkWTtiNJX5uzHDsrck5TzfKKDcuFFTIrrc/BS076qgEIfoIy1VeZqViznfKiysPYTh/QeHtnIsYA==
+ version "1.17.1"
+ resolved "https://registry.yarnpkg.com/fastq/-/fastq-1.17.1.tgz#2a523f07a4e7b1e81a42b91b8bf2254107753b47"
+ integrity sha512-sRVD3lWVIXWg6By68ZN7vho9a1pQcN/WBFaAAsDDFzlJjvoGx0P8z7V1t72grFJfJhu3YPZBuu25f7Kaw2jN1w==
dependencies:
reusify "^1.0.4"
@@ -3717,10 +3712,10 @@ fill-range@^4.0.0:
repeat-string "^1.6.1"
to-regex-range "^2.1.0"
-fill-range@^7.0.1:
- version "7.0.1"
- resolved "https://registry.yarnpkg.com/fill-range/-/fill-range-7.0.1.tgz#1919a6a7c75fe38b2c7c77e5198535da9acdda40"
- integrity sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==
+fill-range@^7.1.1:
+ version "7.1.1"
+ resolved "https://registry.yarnpkg.com/fill-range/-/fill-range-7.1.1.tgz#44265d3cac07e3ea7dc247516380643754a05292"
+ integrity sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==
dependencies:
to-regex-range "^5.0.1"
@@ -3907,17 +3902,7 @@ get-func-name@^2.0.1, get-func-name@^2.0.2:
resolved "https://registry.yarnpkg.com/get-func-name/-/get-func-name-2.0.2.tgz#0d7cf20cd13fda808669ffa88f4ffc7a3943fc41"
integrity sha512-8vXOvuE167CtIc3OyItco7N/dpRtBbYOsPsXCz7X/PMnlGjYjSGuZJgM1Y7mmew7BKf9BqvLX2tnOVy1BBUsxQ==
-get-intrinsic@^1.0.2, get-intrinsic@^1.1.3, get-intrinsic@^1.2.1, get-intrinsic@^1.2.2:
- version "1.2.2"
- resolved "https://registry.yarnpkg.com/get-intrinsic/-/get-intrinsic-1.2.2.tgz#281b7622971123e1ef4b3c90fd7539306da93f3b"
- integrity sha512-0gSo4ml/0j98Y3lngkFEot/zhiCeWsbYIlZ+uZOVgzLyLaUw7wxUL+nCTP0XJvJg1AXulJRI3UJi8GsbDuxdGA==
- dependencies:
- function-bind "^1.1.2"
- has-proto "^1.0.1"
- has-symbols "^1.0.3"
- hasown "^2.0.0"
-
-get-intrinsic@^1.2.3, get-intrinsic@^1.2.4:
+get-intrinsic@^1.1.3, get-intrinsic@^1.2.4:
version "1.2.4"
resolved "https://registry.yarnpkg.com/get-intrinsic/-/get-intrinsic-1.2.4.tgz#e385f5a4b5227d449c3eabbad05494ef0abbeadd"
integrity sha512-5uYhsJH8VJBTv7oslg4BznJYhDoRI6waYCxMmCdnTrcCrHA/fCFKoTFz2JKKE0HdDFUF7/oQuhzumXJK7paBRQ==
@@ -4092,11 +4077,6 @@ graphemer@^1.4.0:
resolved "https://registry.yarnpkg.com/graphemer/-/graphemer-1.4.0.tgz#fb2f1d55e0e3a1849aeffc90c4fa0dd53a0e66c6"
integrity sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==
-growl@1.10.5:
- version "1.10.5"
- resolved "https://registry.yarnpkg.com/growl/-/growl-1.10.5.tgz#f2735dc2283674fa67478b10181059355c369e5e"
- integrity sha512-qBr4OuELkhPenW6goKVXiv47US3clb3/IbuWF9KNKEijAy9oeHxU9IgzjvJhHkUzhaj7rOUD7+YGWqUjLp5oSA==
-
gulp-babel@^8.0.0:
version "8.0.0"
resolved "https://registry.yarnpkg.com/gulp-babel/-/gulp-babel-8.0.0.tgz#e0da96f4f2ec4a88dd3a3030f476e38ab2126d87"
@@ -4170,14 +4150,7 @@ has-flag@^4.0.0:
resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-4.0.0.tgz#944771fd9c81c81265c4d6941860da06bb59479b"
integrity sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==
-has-property-descriptors@^1.0.0:
- version "1.0.1"
- resolved "https://registry.yarnpkg.com/has-property-descriptors/-/has-property-descriptors-1.0.1.tgz#52ba30b6c5ec87fd89fa574bc1c39125c6f65340"
- integrity sha512-VsX8eaIewvas0xnvinAe9bw4WfIeODpGYikiWYLH+dma0Jw6KHYqWiWfhQlgOVK8D6PvjubK5Uc4P0iIhIcNVg==
- dependencies:
- get-intrinsic "^1.2.2"
-
-has-property-descriptors@^1.0.1:
+has-property-descriptors@^1.0.0, has-property-descriptors@^1.0.2:
version "1.0.2"
resolved "https://registry.yarnpkg.com/has-property-descriptors/-/has-property-descriptors-1.0.2.tgz#963ed7d071dc7bf5f084c5bfbe0d1b6222586854"
integrity sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg==
@@ -4185,21 +4158,21 @@ has-property-descriptors@^1.0.1:
es-define-property "^1.0.0"
has-proto@^1.0.1:
- version "1.0.1"
- resolved "https://registry.yarnpkg.com/has-proto/-/has-proto-1.0.1.tgz#1885c1305538958aff469fef37937c22795408e0"
- integrity sha512-7qE+iP+O+bgF9clE5+UoBFzE65mlBiVj3tKCrlNQ0Ogwm0BjpT/gK4SlLYDMybDh5I3TCTKnPPa0oMG7JDYrhg==
+ version "1.0.3"
+ resolved "https://registry.yarnpkg.com/has-proto/-/has-proto-1.0.3.tgz#b31ddfe9b0e6e9914536a6ab286426d0214f77fd"
+ integrity sha512-SJ1amZAJUiZS+PhsVLf5tGydlaVB8EdFpaSO4gmiUKUOxk8qzn5AIy4ZeJUmh22znIdk/uMAUT2pl3FxzVUH+Q==
-has-symbols@^1.0.2, has-symbols@^1.0.3:
+has-symbols@^1.0.3:
version "1.0.3"
resolved "https://registry.yarnpkg.com/has-symbols/-/has-symbols-1.0.3.tgz#bb7b2c4349251dce87b125f7bdf874aa7c8b39f8"
integrity sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==
-has-tostringtag@^1.0.0:
- version "1.0.0"
- resolved "https://registry.yarnpkg.com/has-tostringtag/-/has-tostringtag-1.0.0.tgz#7e133818a7d394734f941e73c3d3f9291e658b25"
- integrity sha512-kFjcSNhnlGV1kyoGk7OXKSawH5JOb/LzUc5w9B02hOTO0dfFRjbHQKvg1d6cf3HbeUmtU9VbbV3qzZ2Teh97WQ==
+has-tostringtag@^1.0.0, has-tostringtag@^1.0.2:
+ version "1.0.2"
+ resolved "https://registry.yarnpkg.com/has-tostringtag/-/has-tostringtag-1.0.2.tgz#2cdc42d40bef2e5b4eeab7c01a73c54ce7ab5abc"
+ integrity sha512-NqADB8VjPFLM2V0VvHUewwwsw0ZWBaIdgo+ieHtK3hasLz4qeCRjYcqfB6AQrBggRKppKF8L52/VqdVsO47Dlw==
dependencies:
- has-symbols "^1.0.2"
+ has-symbols "^1.0.3"
has-value@^0.3.1:
version "0.3.1"
@@ -4246,6 +4219,14 @@ hash-base@^3.0.0:
readable-stream "^3.6.0"
safe-buffer "^5.2.0"
+hash-base@~3.0:
+ version "3.0.4"
+ resolved "https://registry.yarnpkg.com/hash-base/-/hash-base-3.0.4.tgz#5fc8686847ecd73499403319a6b0a3f3f6ae4918"
+ integrity sha512-EeeoJKjTyt868liAlVmcv2ZsUfGHlE3Q+BICOXcZiwN3osr5Q/zFGYmTJpoIzuaSTAwndFy+GqhEwlU4L3j4Ow==
+ dependencies:
+ inherits "^2.0.1"
+ safe-buffer "^5.0.1"
+
hash.js@^1.0.0, hash.js@^1.0.3:
version "1.1.7"
resolved "https://registry.yarnpkg.com/hash.js/-/hash.js-1.1.7.tgz#0babca538e8d4ee4a0f8988d68866537a003cf42"
@@ -4254,10 +4235,10 @@ hash.js@^1.0.0, hash.js@^1.0.3:
inherits "^2.0.3"
minimalistic-assert "^1.0.1"
-hasown@^2.0.0:
- version "2.0.0"
- resolved "https://registry.yarnpkg.com/hasown/-/hasown-2.0.0.tgz#f4c513d454a57b7c7e1650778de226b11700546c"
- integrity sha512-vUptKVTpIJhcczKBbgnS+RtcuYMB8+oNzPK2/Hp3hanz8JmpATdmmgLgSaadVREkDm+e2giHwY3ZRkyjSIDDFA==
+hasown@^2.0.0, hasown@^2.0.2:
+ version "2.0.2"
+ resolved "https://registry.yarnpkg.com/hasown/-/hasown-2.0.2.tgz#003eaf91be7adc372e84ec59dc37252cedb80003"
+ integrity sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==
dependencies:
function-bind "^1.1.2"
@@ -4318,9 +4299,9 @@ ignore@^4.0.6:
integrity sha512-cyFDKrqc/YdcWFniJhzI42+AzS+gNwmUzOSFcRCQYwySuBBBy/KjuxWLZ/FHEH6Moq1NizMOBWyTcv8O4OZIMg==
ignore@^5.2.0:
- version "5.3.0"
- resolved "https://registry.yarnpkg.com/ignore/-/ignore-5.3.0.tgz#67418ae40d34d6999c95ff56016759c718c82f78"
- integrity sha512-g7dmpshy+gD7mh88OC9NwSGTKoc3kyLAZQRU1mt53Aw/vnvfXnbC+F/7F7QoYVKbV+KNvJx8wArewKy1vXMtlg==
+ version "5.3.2"
+ resolved "https://registry.yarnpkg.com/ignore/-/ignore-5.3.2.tgz#3cd40e729f3643fd87cb04e50bf0eb722bc596f5"
+ integrity sha512-hsBTNUqQTDwkWtcdYI2i06Y/nUBEsNEDJKjWdigLvegy8kDuJAS8uRlpkkcQpyEXL0Z/pjDy5HBmMjRCJ2gq+g==
import-fresh@^3.0.0, import-fresh@^3.2.1:
version "3.3.0"
@@ -4331,9 +4312,9 @@ import-fresh@^3.0.0, import-fresh@^3.2.1:
resolve-from "^4.0.0"
import-local@^3.0.2:
- version "3.1.0"
- resolved "https://registry.yarnpkg.com/import-local/-/import-local-3.1.0.tgz#b4479df8a5fd44f6cdce24070675676063c95cb4"
- integrity sha512-ASB07uLtnDs1o6EHjKpX34BKYDSqnFerfTOJL2HvMqF70LnxpjkzDB8J44oT9pu4AMPkQwf8jl6szgvNd2tRIg==
+ version "3.2.0"
+ resolved "https://registry.yarnpkg.com/import-local/-/import-local-3.2.0.tgz#c3d5c745798c02a6f8b897726aba5100186ee260"
+ integrity sha512-2SPlun1JUPWoM6t3F0dw0FkCF/jWY8kttcY4f599GLTSjh2OCuuhdTkJQsEcZzBqbXZGKMK2OqW1oZsjtf/gQA==
dependencies:
pkg-dir "^4.2.0"
resolve-cwd "^3.0.0"
@@ -4372,9 +4353,9 @@ ini@^1.3.4:
integrity sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==
inline-source-map@~0.6.0:
- version "0.6.2"
- resolved "https://registry.yarnpkg.com/inline-source-map/-/inline-source-map-0.6.2.tgz#f9393471c18a79d1724f863fa38b586370ade2a5"
- integrity sha512-0mVWSSbNDvedDWIN4wxLsdPM4a7cIPcpyMxj3QZ406QRwQ6ePGB1YIHxVPjqpcUGbWQ5C+nHTwGNWAGvt7ggVA==
+ version "0.6.3"
+ resolved "https://registry.yarnpkg.com/inline-source-map/-/inline-source-map-0.6.3.tgz#db9d553037fa74bf95dfbff186375fcf5c563cdd"
+ integrity sha512-1aVsPEsJWMJq/pdMU61CDlm1URcW702MTB4w9/zUjMus6H/Py8o7g68Pr9D4I6QluWGt/KdmswuRhaA05xVR1w==
dependencies:
source-map "~0.5.3"
@@ -4462,11 +4443,11 @@ is-callable@^1.1.3:
integrity sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==
is-core-module@^2.13.0:
- version "2.13.1"
- resolved "https://registry.yarnpkg.com/is-core-module/-/is-core-module-2.13.1.tgz#ad0d7532c6fea9da1ebdc82742d74525c6273384"
- integrity sha512-hHrIjvZsftOsvKSn2TRYl63zvxsgE0K+0mYMoH6gD4omR5IWB2KynivBQczo3+wF1cCkjzvptnI9Q0sPU66ilw==
+ version "2.15.0"
+ resolved "https://registry.yarnpkg.com/is-core-module/-/is-core-module-2.15.0.tgz#71c72ec5442ace7e76b306e9d48db361f22699ea"
+ integrity sha512-Dd+Lb2/zvk9SKy1TGCt1wFJFo/MWBPMX5x7KcvLajWTGuomczdQX61PvY5yK6SVACwpoexWo81IfFyoKY2QnTA==
dependencies:
- hasown "^2.0.0"
+ hasown "^2.0.2"
is-data-descriptor@^1.0.1:
version "1.0.1"
@@ -4615,11 +4596,11 @@ is-relative@^1.0.0:
is-unc-path "^1.0.0"
is-typed-array@^1.1.3:
- version "1.1.12"
- resolved "https://registry.yarnpkg.com/is-typed-array/-/is-typed-array-1.1.12.tgz#d0bab5686ef4a76f7a73097b95470ab199c57d4a"
- integrity sha512-Z14TF2JNG8Lss5/HMqt0//T9JeHXttXy5pH/DBU4vi98ozO2btxzq9MwYDZYnKwU8nRsz/+GVFVRDq3DkVuSPg==
+ version "1.1.13"
+ resolved "https://registry.yarnpkg.com/is-typed-array/-/is-typed-array-1.1.13.tgz#d6c5ca56df62334959322d7d7dd1cca50debe229"
+ integrity sha512-uZ25/bUAlUY5fR4OKT4rZQEBrzQWYV9ZJYGGsUmEJ6thodVJ1HX64ePQ6Z0qPWP+m+Uq6e9UugrE38jeYsDSMw==
dependencies:
- which-typed-array "^1.1.11"
+ which-typed-array "^1.1.14"
is-unc-path@^1.0.0:
version "1.0.0"
@@ -4954,13 +4935,6 @@ lru-cache@^5.1.1:
dependencies:
yallist "^3.0.2"
-lru-cache@^6.0.0:
- version "6.0.0"
- resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-6.0.0.tgz#6d6fe6570ebd96aaf90fcad1dafa3b2566db3a94"
- integrity sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==
- dependencies:
- yallist "^4.0.0"
-
make-dir@^3.0.2, make-dir@^3.1.0:
version "3.1.0"
resolved "https://registry.yarnpkg.com/make-dir/-/make-dir-3.1.0.tgz#415e967046b3a7f1d185277d84aa58203726a13f"
@@ -5059,11 +5033,11 @@ micromatch@^3.0.4, micromatch@^3.1.10, micromatch@^3.1.4:
to-regex "^3.0.2"
micromatch@^4.0.0, micromatch@^4.0.4, micromatch@^4.0.5:
- version "4.0.5"
- resolved "https://registry.yarnpkg.com/micromatch/-/micromatch-4.0.5.tgz#bc8999a7cbbf77cdc89f132f6e467051b49090c6"
- integrity sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==
+ version "4.0.7"
+ resolved "https://registry.yarnpkg.com/micromatch/-/micromatch-4.0.7.tgz#33e8190d9fe474a9895525f5618eee136d46c2e5"
+ integrity sha512-LPP/3KorzCwBxfeUuZmaR6bG2kdeHSbe0P2tY3FLRU4vYrjYz5hI4QZwV0njUx3jeuKe67YukQ1LSPZBKDqO/Q==
dependencies:
- braces "^3.0.2"
+ braces "^3.0.3"
picomatch "^2.3.1"
miller-rabin@^4.0.0:
@@ -5096,12 +5070,12 @@ minimalistic-crypto-utils@^1.0.1:
resolved "https://registry.yarnpkg.com/minimalistic-crypto-utils/-/minimalistic-crypto-utils-1.0.1.tgz#f6c00c1c0b082246e5c4d99dfb8c7c083b2b582a"
integrity sha512-JIYlbt6g8i5jKfJ3xz7rF0LXmv2TkDxBLUkiBeZ7bAx4GnnNMr8xFpGnOxn6GhTEHx3SjRrZEoU+j04prX1ktg==
-minimatch@4.2.1:
- version "4.2.1"
- resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-4.2.1.tgz#40d9d511a46bdc4e563c22c3080cde9c0d8299b4"
- integrity sha512-9Uq1ChtSZO+Mxa/CL1eGizn2vRn3MlLgzhT0Iz8zaY8NdvxvB0d5QdPFmCKf7JKA9Lerx5vRrnwO03jsSfGG9g==
+minimatch@5.0.1:
+ version "5.0.1"
+ resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-5.0.1.tgz#fb9022f7528125187c92bd9e9b6366be1cf3415b"
+ integrity sha512-nLDxIFRyhDblz3qMuq+SoRZED4+miJ/G+tdDrjkkkRnjAsBexeGpgjLEQ0blJy7rHhR2b93rhQY4SvyWu9v03g==
dependencies:
- brace-expansion "^1.1.7"
+ brace-expansion "^2.0.1"
minimatch@^3.0.4, minimatch@^3.1.1, minimatch@^3.1.2:
version "3.1.2"
@@ -5128,32 +5102,29 @@ mkdirp-classic@^0.5.2:
resolved "https://registry.yarnpkg.com/mkdirp-classic/-/mkdirp-classic-0.5.3.tgz#fa10c9115cc6d8865be221ba47ee9bed78601113"
integrity sha512-gKLcREMhtuZRwRAfqP3RFW+TK4JqApVBtOIftVgjuABpAtpxhPGaDcfvbhNvD0B8iD1oUr/txX35NjcaY6Ns/A==
-mocha@^9.0.2:
- version "9.2.2"
- resolved "https://registry.yarnpkg.com/mocha/-/mocha-9.2.2.tgz#d70db46bdb93ca57402c809333e5a84977a88fb9"
- integrity sha512-L6XC3EdwT6YrIk0yXpavvLkn8h+EU+Y5UcCHKECyMbdUIxyMuZj4bX4U9e1nvnvUUvQVsV2VHQr5zLdcUkhW/g==
+mocha@10.1.0:
+ version "10.1.0"
+ resolved "https://registry.yarnpkg.com/mocha/-/mocha-10.1.0.tgz#dbf1114b7c3f9d0ca5de3133906aea3dfc89ef7a"
+ integrity sha512-vUF7IYxEoN7XhQpFLxQAEMtE4W91acW4B6En9l97MwE9stL1A9gusXfoHZCLVHDUJ/7V5+lbCM6yMqzo5vNymg==
dependencies:
- "@ungap/promise-all-settled" "1.1.2"
ansi-colors "4.1.1"
browser-stdout "1.3.1"
chokidar "3.5.3"
- debug "4.3.3"
+ debug "4.3.4"
diff "5.0.0"
escape-string-regexp "4.0.0"
find-up "5.0.0"
glob "7.2.0"
- growl "1.10.5"
he "1.2.0"
js-yaml "4.1.0"
log-symbols "4.1.0"
- minimatch "4.2.1"
+ minimatch "5.0.1"
ms "2.1.3"
- nanoid "3.3.1"
+ nanoid "3.3.3"
serialize-javascript "6.0.0"
strip-json-comments "3.1.1"
supports-color "8.1.1"
- which "2.0.2"
- workerpool "6.2.0"
+ workerpool "6.2.1"
yargs "16.2.0"
yargs-parser "20.2.4"
yargs-unparser "2.0.0"
@@ -5200,14 +5171,14 @@ mute-stdout@^1.0.0:
integrity sha512-kDcwXR4PS7caBpuRYYBUz9iVixUk3anO3f5OYFiIPwK/20vCzKCHyKoulbiDY1S53zD2bxUpxN/IJ+TnXjfvxg==
nan@^2.12.1:
- version "2.18.0"
- resolved "https://registry.yarnpkg.com/nan/-/nan-2.18.0.tgz#26a6faae7ffbeb293a39660e88a76b82e30b7554"
- integrity sha512-W7tfG7vMOGtD30sHoZSSc/JVYiyDPEyQVso/Zz+/uQd0B0L46gtC+pHha5FFMRpil6fm/AoEcRWyOVi4+E/f8w==
+ version "2.20.0"
+ resolved "https://registry.yarnpkg.com/nan/-/nan-2.20.0.tgz#08c5ea813dd54ed16e5bd6505bf42af4f7838ca3"
+ integrity sha512-bk3gXBZDGILuuo/6sKtr0DQmSThYHLtNCdSdXk9YkxD/jK6X2vmCyyXBBxyqZ4XcnzTyYEAThfX3DCEnLf6igw==
-nanoid@3.3.1:
- version "3.3.1"
- resolved "https://registry.yarnpkg.com/nanoid/-/nanoid-3.3.1.tgz#6347a18cac88af88f58af0b3594b723d5e99bb35"
- integrity sha512-n6Vs/3KGyxPQd6uO0eH4Bv0ojGSUvuLlIHtC3Y0kEO23YRge8H9x1GCzLn28YX0H66pMkxuaeESFq4tKISKwdw==
+nanoid@3.3.3:
+ version "3.3.3"
+ resolved "https://registry.yarnpkg.com/nanoid/-/nanoid-3.3.3.tgz#fd8e8b7aa761fe807dba2d1b98fb7241bb724a25"
+ integrity sha512-p1sjXuopFs0xg+fPASzQ28agW1oHD7xDsd9Xkf3T15H3c/cifrFHVwrh74PdoklAPi+i7MdRsE47vm2r6JoB+w==
nanomatch@^1.2.9:
version "1.2.13"
@@ -5252,14 +5223,14 @@ node-addon-api@^2.0.0:
integrity sha512-Ntyt4AIXyaLIuMHF6IOoTakB3K+RWxwtsHNRxllEoA6vPwP9o4866g6YWDLUdnucilZhmkxiHwHr11gAENw+QA==
node-gyp-build@^4.2.0:
- version "4.7.1"
- resolved "https://registry.yarnpkg.com/node-gyp-build/-/node-gyp-build-4.7.1.tgz#cd7d2eb48e594874053150a9418ac85af83ca8f7"
- integrity sha512-wTSrZ+8lsRRa3I3H8Xr65dLWSgCvY2l4AOnaeKdPA9TB/WYMPaTcrzf3rXvFoVvjKNVnu0CcWSx54qq9GKRUYg==
+ version "4.8.1"
+ resolved "https://registry.yarnpkg.com/node-gyp-build/-/node-gyp-build-4.8.1.tgz#976d3ad905e71b76086f4f0b0d3637fe79b6cda5"
+ integrity sha512-OSs33Z9yWr148JZcbZd5WiAXhh/n9z8TxQcdMhIOlpN9AhWpLfvVFO73+m77bBABQMaY9XSvIa+qk0jlI7Gcaw==
-node-releases@^2.0.14:
- version "2.0.14"
- resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-2.0.14.tgz#2ffb053bceb8b2be8495ece1ab6ce600c4461b0b"
- integrity sha512-y10wOWt8yZpqXmOgRo77WaHEmhYQYGNA6y421PKsKYWEK8aW+cqAphborZDhqfyKrbZEN92CN1X2KbafY2s7Yw==
+node-releases@^2.0.18:
+ version "2.0.18"
+ resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-2.0.18.tgz#f010e8d35e2fe8d6b2944f03f70213ecedc4ca3f"
+ integrity sha512-d9VeXT4SJ7ZeOqGX6R5EM022wpL+eWPooLI+5UpWn2jCT1aosUQEhQP214x33Wkwx3JQMvIm+tIoVOdodFS40g==
normalize-package-data@^2.3.2:
version "2.5.0"
@@ -5309,10 +5280,10 @@ object-copy@^0.1.0:
define-property "^0.2.5"
kind-of "^3.0.3"
-object-inspect@^1.9.0:
- version "1.13.1"
- resolved "https://registry.yarnpkg.com/object-inspect/-/object-inspect-1.13.1.tgz#b96c6109324ccfef6b12216a956ca4dc2ff94bc2"
- integrity sha512-5qoj1RUiKOMsCCNLV1CBiPYE10sziTsnmNxkAI/rZhiD63CF7IqdFGC/XzjWjpSgLf0LxXX3bDFIh0E18f6UhQ==
+object-inspect@^1.13.1:
+ version "1.13.2"
+ resolved "https://registry.yarnpkg.com/object-inspect/-/object-inspect-1.13.2.tgz#dea0088467fb991e67af4058147a24824a3043ff"
+ integrity sha512-IRZSRuzJiynemAXPYtPe5BoI/RESNYR7TYm50MC5Mqbd3Jmw5y790sErYw3V6SryFJD64b74qQQs9wn5Bg/k3g==
object-is@^1.1.5:
version "1.1.6"
@@ -5484,16 +5455,17 @@ parents@^1.0.0, parents@^1.0.1:
dependencies:
path-platform "~0.11.15"
-parse-asn1@^5.0.0, parse-asn1@^5.1.6:
- version "5.1.6"
- resolved "https://registry.yarnpkg.com/parse-asn1/-/parse-asn1-5.1.6.tgz#385080a3ec13cb62a62d39409cb3e88844cdaed4"
- integrity sha512-RnZRo1EPU6JBnra2vGHj0yhp6ebyjBZpmUCLHWiFhxlzvBCCpAuZ7elsBp1PVAbQN0/04VD/19rfzlBSwLstMw==
+parse-asn1@^5.0.0, parse-asn1@^5.1.7:
+ version "5.1.7"
+ resolved "https://registry.yarnpkg.com/parse-asn1/-/parse-asn1-5.1.7.tgz#73cdaaa822125f9647165625eb45f8a051d2df06"
+ integrity sha512-CTM5kuWR3sx9IFamcl5ErfPl6ea/N8IYwiJ+vpeB2g+1iknv7zBl5uPwbMbRVznRVbrNY6lGuDoE5b30grmbqg==
dependencies:
- asn1.js "^5.2.0"
- browserify-aes "^1.0.0"
- evp_bytestokey "^1.0.0"
- pbkdf2 "^3.0.3"
- safe-buffer "^5.1.1"
+ asn1.js "^4.10.1"
+ browserify-aes "^1.2.0"
+ evp_bytestokey "^1.0.3"
+ hash-base "~3.0"
+ pbkdf2 "^3.1.2"
+ safe-buffer "^5.2.1"
parse-filepath@^1.0.1:
version "1.0.2"
@@ -5604,7 +5576,7 @@ pathval@^1.1.1:
resolved "https://registry.yarnpkg.com/pathval/-/pathval-1.1.1.tgz#8534e77a77ce7ac5a2512ea21e0fdb8fcf6c3d8d"
integrity sha512-Dp6zGqpTdETdR63lehJYPeIOqpiNBNtc7BpWSLrOje7UaIsE5aY92r/AunQA7rsXvet3lrJ3JnZX29UPTKXyKQ==
-pbkdf2@^3.0.3:
+pbkdf2@^3.0.3, pbkdf2@^3.1.2:
version "3.1.2"
resolved "https://registry.yarnpkg.com/pbkdf2/-/pbkdf2-3.1.2.tgz#dd822aa0887580e52f1a039dc3eda108efae3075"
integrity sha512-iuh7L6jA7JEGu2WxDwtQP1ddOpaJNC4KlDEFfdQajSGgGPNi4OyDc2R7QnbY2bR9QjBVGwgvTdNJZoE7RaxUMA==
@@ -5615,10 +5587,10 @@ pbkdf2@^3.0.3:
safe-buffer "^5.0.1"
sha.js "^2.4.8"
-picocolors@^1.0.0:
- version "1.0.0"
- resolved "https://registry.yarnpkg.com/picocolors/-/picocolors-1.0.0.tgz#cb5bdc74ff3f51892236eaf79d68bc44564ab81c"
- integrity sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==
+picocolors@^1.0.0, picocolors@^1.0.1:
+ version "1.0.1"
+ resolved "https://registry.yarnpkg.com/picocolors/-/picocolors-1.0.1.tgz#a8ad579b571952f0e5d25892de5445bcfe25aaa1"
+ integrity sha512-anP1Z8qwhkbmu7MFP5iTt+wQKXgwzf7zTyGlcdzabySa9vd0Xt392U0rVmz9poOaBj0uHJKyyo9/upk0HrEQew==
picomatch@^2.0.4, picomatch@^2.2.1, picomatch@^2.2.3, picomatch@^2.3.1:
version "2.3.1"
@@ -5669,6 +5641,11 @@ posix-character-classes@^0.1.0:
resolved "https://registry.yarnpkg.com/posix-character-classes/-/posix-character-classes-0.1.1.tgz#01eac0fe3b5af71a2a6c02feabb8c1fef7e00eab"
integrity sha512-xTgYBc3fuo7Yt7JbiuFxSYGToMoz8fLoE6TC9Wx1P/u+LfeThMOAqmuyECnlBaaJb+u1m9hHiXUEtwW4OzfUJg==
+possible-typed-array-names@^1.0.0:
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/possible-typed-array-names/-/possible-typed-array-names-1.0.0.tgz#89bb63c6fada2c3e90adc4a647beeeb39cc7bf8f"
+ integrity sha512-d7Uw+eZoloe0EHDIYoe+bQ5WXnGMOpmiZFTuMWCwpjzzkL2nTjcKiAk4hh8TjnGye2TwWOk3UXucZ+3rbmBa8Q==
+
prelude-ls@^1.2.1:
version "1.2.1"
resolved "https://registry.yarnpkg.com/prelude-ls/-/prelude-ls-1.2.1.tgz#debc6489d7a6e6b0e7611888cec880337d316396"
@@ -5682,9 +5659,9 @@ prettier-linter-helpers@^1.0.0:
fast-diff "^1.1.2"
prettier@^3.2.5:
- version "3.2.5"
- resolved "https://registry.yarnpkg.com/prettier/-/prettier-3.2.5.tgz#e52bc3090586e824964a8813b09aba6233b28368"
- integrity sha512-3/GWa9aOC0YeD7LUfvOG2NiDyhOWRvt1k+rcKhOuYnMY24iiCphgneUfJDyFXd6rZCAnuLBv6UeAULtrhT/F4A==
+ version "3.3.3"
+ resolved "https://registry.yarnpkg.com/prettier/-/prettier-3.3.3.tgz#30c54fe0be0d8d12e6ae61dbb10109ea00d53105"
+ integrity sha512-i2tDNA0O5IrMO757lfrdQZCc2jPNDVntV0m/+4whiDfWaTKfMNgR7Qz0NAeGz/nRqF4m5/6CLzbP4/liHt12Ew==
pretty-hrtime@^1.0.0:
version "1.0.3"
@@ -5750,12 +5727,12 @@ punycode@^2.1.0:
resolved "https://registry.yarnpkg.com/punycode/-/punycode-2.3.1.tgz#027422e2faec0b25e1549c3e1bd8309b9133b6e5"
integrity sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==
-qs@^6.11.2:
- version "6.11.2"
- resolved "https://registry.yarnpkg.com/qs/-/qs-6.11.2.tgz#64bea51f12c1f5da1bc01496f48ffcff7c69d7d9"
- integrity sha512-tDNIz22aBzCDxLtVH++VnTfzxlfeK5CbqohpSqpJgj1Wg/cQbStNAz3NuqCs5vV+pjBsK4x4pN9HlVh7rcYRiA==
+qs@^6.12.3:
+ version "6.13.0"
+ resolved "https://registry.yarnpkg.com/qs/-/qs-6.13.0.tgz#6ca3bd58439f7e245655798997787b0d88a51906"
+ integrity sha512-+38qI9SOr8tfZ4QmJNplMUxqjbe7LKvvZgWdExBOmd+egZTtjLB67Gu0HRX3u/XOq7UU2Nx6nsjvS16Z9uwfpg==
dependencies:
- side-channel "^1.0.4"
+ side-channel "^1.0.6"
querystring-es3@~0.2.0:
version "0.2.1"
@@ -5806,7 +5783,7 @@ read-pkg@^1.0.0:
normalize-package-data "^2.3.2"
path-type "^1.0.0"
-"readable-stream@2 || 3", readable-stream@3, readable-stream@^3.5.0, readable-stream@^3.6.0, readable-stream@^3.6.2:
+"readable-stream@2 || 3", readable-stream@3, readable-stream@^3.5.0, readable-stream@^3.6.0:
version "3.6.2"
resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-3.6.2.tgz#56a9b36ea965c00c5a93ef31eb111a0f11056967"
integrity sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==
@@ -5815,7 +5792,7 @@ read-pkg@^1.0.0:
string_decoder "^1.1.1"
util-deprecate "^1.0.1"
-readable-stream@^2.0.0, readable-stream@^2.0.1, readable-stream@^2.0.2, readable-stream@^2.0.5, readable-stream@^2.1.5, readable-stream@^2.2.2, readable-stream@^2.3.3, readable-stream@^2.3.5, readable-stream@^2.3.6, readable-stream@~2.3.6:
+readable-stream@^2.0.0, readable-stream@^2.0.1, readable-stream@^2.0.2, readable-stream@^2.0.5, readable-stream@^2.1.5, readable-stream@^2.2.2, readable-stream@^2.3.3, readable-stream@^2.3.5, readable-stream@^2.3.6, readable-stream@^2.3.8, readable-stream@~2.3.6:
version "2.3.8"
resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-2.3.8.tgz#91125e8042bba1b9887f49345f6277027ce8be9b"
integrity sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==
@@ -6097,11 +6074,6 @@ safe-regex@^1.1.0:
dependencies:
ret "~0.1.10"
-safer-buffer@^2.1.0:
- version "2.1.2"
- resolved "https://registry.yarnpkg.com/safer-buffer/-/safer-buffer-2.1.2.tgz#44fa161b0187b9549dd84bb91802f9bd8385cd6a"
- integrity sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==
-
schema-utils@^2.6.5:
version "2.7.1"
resolved "https://registry.yarnpkg.com/schema-utils/-/schema-utils-2.7.1.tgz#1ca4f32d1b24c590c203b8e7a50bf0ea4cd394d7"
@@ -6156,24 +6128,10 @@ semver@^6.0.0, semver@^6.3.1:
resolved "https://registry.yarnpkg.com/semver/-/semver-6.3.1.tgz#556d2ef8689146e46dcea4bfdd095f3434dffcb4"
integrity sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==
-semver@^7.2.1:
- version "7.6.2"
- resolved "https://registry.yarnpkg.com/semver/-/semver-7.6.2.tgz#1e3b34759f896e8f14d6134732ce798aeb0c6e13"
- integrity sha512-FNAIBWCx9qcRhoHcgcJ0gvU7SN1lYU2ZXuSfl04bSC5OpvDHFyJCjdNHomPXxjQlCBU67YW64PzY7/VIEH7F2w==
-
-semver@^7.3.4:
- version "7.6.0"
- resolved "https://registry.yarnpkg.com/semver/-/semver-7.6.0.tgz#1a46a4db4bffcccd97b743b5005c8325f23d4e2d"
- integrity sha512-EnwXhrlwXMk9gKu5/flx5sv/an57AkRplG3hTK68W7FRDN+k+OWBj65M7719OkA82XLBxrcX0KSHj+X5COhOVg==
- dependencies:
- lru-cache "^6.0.0"
-
-semver@^7.3.7:
- version "7.5.4"
- resolved "https://registry.yarnpkg.com/semver/-/semver-7.5.4.tgz#483986ec4ed38e1c6c48c34894a9182dbff68a6e"
- integrity sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==
- dependencies:
- lru-cache "^6.0.0"
+semver@^7.2.1, semver@^7.3.4, semver@^7.3.7:
+ version "7.6.3"
+ resolved "https://registry.yarnpkg.com/semver/-/semver-7.6.3.tgz#980f7b5550bc175fb4dc09403085627f9eb33143"
+ integrity sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==
serialize-javascript@6.0.0:
version "6.0.0"
@@ -6183,9 +6141,9 @@ serialize-javascript@6.0.0:
randombytes "^2.1.0"
serialize-javascript@^6.0.1:
- version "6.0.1"
- resolved "https://registry.yarnpkg.com/serialize-javascript/-/serialize-javascript-6.0.1.tgz#b206efb27c3da0b0ab6b52f48d170b7996458e5c"
- integrity sha512-owoXEFjWRllis8/M1Q+Cw5k8ZH40e3zhp/ovX+Xr/vi1qj6QesbyXXViFbpNvWvPNAD62SutwEXavefrLJWj7w==
+ version "6.0.2"
+ resolved "https://registry.yarnpkg.com/serialize-javascript/-/serialize-javascript-6.0.2.tgz#defa1e055c83bf6d59ea805d8da862254eb6a6c2"
+ integrity sha512-Saa1xPByTTq2gdeFZYLLo+RFE35NHZkAbqZeWNd3BpzppeVisAqpDjcp8dyf6uIvEqJRd46jemmyA4iFIeVk8g==
dependencies:
randombytes "^2.1.0"
@@ -6194,27 +6152,17 @@ set-blocking@^2.0.0:
resolved "https://registry.yarnpkg.com/set-blocking/-/set-blocking-2.0.0.tgz#045f9782d011ae9a6803ddd382b24392b3d890f7"
integrity sha512-KiKBS8AnWGEyLzofFfmvKwpdPzqiy16LvQfK3yv/fVH7Bj13/wl3JSR1J+rfgRE9q7xUJK4qvgS8raSOeLUehw==
-set-function-length@^1.1.1:
- version "1.1.1"
- resolved "https://registry.yarnpkg.com/set-function-length/-/set-function-length-1.1.1.tgz#4bc39fafb0307224a33e106a7d35ca1218d659ed"
- integrity sha512-VoaqjbBJKiWtg4yRcKBQ7g7wnGnLV3M8oLvVWwOk2PdYY6PEFegR1vezXR0tw6fZGF9csVakIRjrJiy2veSBFQ==
- dependencies:
- define-data-property "^1.1.1"
- get-intrinsic "^1.2.1"
- gopd "^1.0.1"
- has-property-descriptors "^1.0.0"
-
set-function-length@^1.2.1:
- version "1.2.1"
- resolved "https://registry.yarnpkg.com/set-function-length/-/set-function-length-1.2.1.tgz#47cc5945f2c771e2cf261c6737cf9684a2a5e425"
- integrity sha512-j4t6ccc+VsKwYHso+kElc5neZpjtq9EnRICFZtWyBsLojhmeF/ZBd/elqm22WJh/BziDe/SBiOeAt0m2mfLD0g==
+ version "1.2.2"
+ resolved "https://registry.yarnpkg.com/set-function-length/-/set-function-length-1.2.2.tgz#aac72314198eaed975cf77b2c3b6b880695e5449"
+ integrity sha512-pgRc4hJ4/sNjWCSS9AmnS40x3bNMDTknHgL5UaMBTMyJnU90EgWh1Rz+MC9eFu4BuN/UwZjKQuY/1v3rM7HMfg==
dependencies:
- define-data-property "^1.1.2"
+ define-data-property "^1.1.4"
es-errors "^1.3.0"
function-bind "^1.1.2"
- get-intrinsic "^1.2.3"
+ get-intrinsic "^1.2.4"
gopd "^1.0.1"
- has-property-descriptors "^1.0.1"
+ has-property-descriptors "^1.0.2"
set-value@^2.0.0, set-value@^2.0.1:
version "2.0.1"
@@ -6265,14 +6213,15 @@ shell-quote@^1.4.2, shell-quote@^1.6.1:
resolved "https://registry.yarnpkg.com/shell-quote/-/shell-quote-1.8.1.tgz#6dbf4db75515ad5bac63b4f1894c3a154c766680"
integrity sha512-6j1W9l1iAs/4xYBI1SYOVZyFcCis9b4KCLQ8fgAGG07QvzaRLVVRQvAy85yNmmZSjYjg4MWh4gNvlPujU/5LpA==
-side-channel@^1.0.4:
- version "1.0.4"
- resolved "https://registry.yarnpkg.com/side-channel/-/side-channel-1.0.4.tgz#efce5c8fdc104ee751b25c58d4290011fa5ea2cf"
- integrity sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==
+side-channel@^1.0.6:
+ version "1.0.6"
+ resolved "https://registry.yarnpkg.com/side-channel/-/side-channel-1.0.6.tgz#abd25fb7cd24baf45466406b1096b7831c9215f2"
+ integrity sha512-fDW/EZ6Q9RiO8eFG8Hj+7u/oW+XrPTIChwCOM2+th2A6OblDtYYIpve9m+KvI9Z4C9qSEXlaGR6bTEYHReuglA==
dependencies:
- call-bind "^1.0.0"
- get-intrinsic "^1.0.2"
- object-inspect "^1.9.0"
+ call-bind "^1.0.7"
+ es-errors "^1.3.0"
+ get-intrinsic "^1.2.4"
+ object-inspect "^1.13.1"
simple-concat@^1.0.0:
version "1.0.1"
@@ -6367,9 +6316,9 @@ spdx-correct@^3.0.0:
spdx-license-ids "^3.0.0"
spdx-exceptions@^2.1.0:
- version "2.3.0"
- resolved "https://registry.yarnpkg.com/spdx-exceptions/-/spdx-exceptions-2.3.0.tgz#3f28ce1a77a00372683eade4a433183527a2163d"
- integrity sha512-/tTrYOC7PPI1nUAgx34hUpqXuyJG+DTHJTnIULG4rDygi4xu/tfgmq1e1cIRwRzwZgo4NLySi+ricLkZkw4i5A==
+ version "2.5.0"
+ resolved "https://registry.yarnpkg.com/spdx-exceptions/-/spdx-exceptions-2.5.0.tgz#5d607d27fc806f66d7b64a766650fa890f04ed66"
+ integrity sha512-PiU42r+xO4UbUS1buo3LPJkjlO7430Xn5SVAhdpzzsPHsjbYVflnnFdATgabnLude+Cqu25p6N+g2lw/PFsa4w==
spdx-expression-parse@^3.0.0:
version "3.0.1"
@@ -6380,9 +6329,9 @@ spdx-expression-parse@^3.0.0:
spdx-license-ids "^3.0.0"
spdx-license-ids@^3.0.0:
- version "3.0.16"
- resolved "https://registry.yarnpkg.com/spdx-license-ids/-/spdx-license-ids-3.0.16.tgz#a14f64e0954f6e25cc6587bd4f392522db0d998f"
- integrity sha512-eWN+LnM3GR6gPu35WxNgbGl8rmY1AEmoMDvL/QD6zYmPWgywxWqJWNdLGT+ke8dKNWrcYgYjPpG5gbTfghP8rw==
+ version "3.0.18"
+ resolved "https://registry.yarnpkg.com/spdx-license-ids/-/spdx-license-ids-3.0.18.tgz#22aa922dcf2f2885a6494a261f2d8b75345d0326"
+ integrity sha512-xxRs31BqRYHwiMzudOrpSiHtZ8i/GeionCBDSilhYRj+9gIcI8wCZTlXZKu9vZIVqViP3dcp9qE5G6AlIaD+TQ==
split-string@^3.0.1, split-string@^3.0.2:
version "3.1.0"
@@ -6436,9 +6385,9 @@ stream-http@^3.0.0, stream-http@^3.2.0:
xtend "^4.0.2"
stream-shift@^1.0.0:
- version "1.0.1"
- resolved "https://registry.yarnpkg.com/stream-shift/-/stream-shift-1.0.1.tgz#d7088281559ab2778424279b0877da3c392d5a3d"
- integrity sha512-AiisoFqQ0vbGcZgQPY1cdP2I76glaVA/RauYR4G4thNFgkTqr90yXTo4LYX60Jl+sIlPNHHdGSwo01AvbKUSVQ==
+ version "1.0.3"
+ resolved "https://registry.yarnpkg.com/stream-shift/-/stream-shift-1.0.3.tgz#85b8fab4d71010fc3ba8772e8046cc49b8a3864b"
+ integrity sha512-76ORR0DO1o1hlKwTbi/DM3EXWGf3ZJYO8cXX5RJwnul2DEg2oyoZyjLNoQM8WsvZiFKCRfC1O0J7iCvie3RZmQ==
stream-splicer@^2.0.0:
version "2.0.1"
@@ -6552,10 +6501,10 @@ sver-compat@^1.5.0:
es6-iterator "^2.0.1"
es6-symbol "^3.1.1"
-synckit@^0.8.6:
- version "0.8.8"
- resolved "https://registry.yarnpkg.com/synckit/-/synckit-0.8.8.tgz#fe7fe446518e3d3d49f5e429f443cf08b6edfcd7"
- integrity sha512-HwOKAP7Wc5aRGYdKH+dw0PRRpbO841v2DENBtjnR5HFWoiNByAl7vrx3p0G/rCyYXQsrxqtX48TImFtPcIHSpQ==
+synckit@^0.9.1:
+ version "0.9.1"
+ resolved "https://registry.yarnpkg.com/synckit/-/synckit-0.9.1.tgz#febbfbb6649979450131f64735aa3f6c14575c88"
+ integrity sha512-7gr8p9TQP6RAHusBOSLs46F4564ZrjV8xFmw5zCmgmhGUcw2hxsShhJ6CEiHQMgPDwAQ1fWHPM0ypc4RMAig4A==
dependencies:
"@pkgr/core" "^0.1.0"
tslib "^2.6.2"
@@ -6584,9 +6533,9 @@ terser-webpack-plugin@^5.3.10:
terser "^5.26.0"
terser@^5.26.0:
- version "5.31.0"
- resolved "https://registry.yarnpkg.com/terser/-/terser-5.31.0.tgz#06eef86f17007dbad4593f11a574c7f5eb02c6a1"
- integrity sha512-Q1JFAoUKE5IMfI4Z/lkE/E6+SwgzO+x4tq4v1AyBLRj8VSYvRO6A/rQrPg1yud4g0En9EKI1TvFRF2tQFcoUkg==
+ version "5.31.5"
+ resolved "https://registry.yarnpkg.com/terser/-/terser-5.31.5.tgz#e48b7c65f32d2808e7dad803e4586a0bc3829b87"
+ integrity sha512-YPmas0L0rE1UyLL/llTWA0SiDOqIcAQYLeUj7cJYzXHlRTAnMSg9pPe4VJ5PlKvTrPQsdVFuiRiwyeNlYgwh2Q==
dependencies:
"@jridgewell/source-map" "^0.3.3"
acorn "^8.8.2"
@@ -6599,14 +6548,13 @@ text-table@^0.2.0:
integrity sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==
through2-filter@^3.0.0:
- version "3.0.0"
- resolved "https://registry.yarnpkg.com/through2-filter/-/through2-filter-3.0.0.tgz#700e786df2367c2c88cd8aa5be4cf9c1e7831254"
- integrity sha512-jaRjI2WxN3W1V8/FMZ9HKIBXixtiqs3SQSX4/YGIiP3gL6djW48VoZq9tDqeCWs3MT8YY5wb/zli8VW8snY1CA==
+ version "3.1.0"
+ resolved "https://registry.yarnpkg.com/through2-filter/-/through2-filter-3.1.0.tgz#4a1b45d2b76b3ac93ec137951e372c268efc1a4e"
+ integrity sha512-VhZsTsfrIJjyUi6GeecnwcOJlmoqgIdGFDjqnV5ape+F1DN8GejfPO66XyIhoinxmxGImiUTrq9RwpTN5yszGA==
dependencies:
- through2 "~2.0.0"
- xtend "~4.0.0"
+ through2 "^4.0.2"
-through2@^2.0.0, through2@^2.0.3, through2@~2.0.0:
+through2@^2.0.0, through2@^2.0.3:
version "2.0.5"
resolved "https://registry.yarnpkg.com/through2/-/through2-2.0.5.tgz#01c1e39eb31d07cb7d03a96a70823260b23132cd"
integrity sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ==
@@ -6759,9 +6707,9 @@ tslib@^1.8.1:
integrity sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==
tslib@^2.3.0, tslib@^2.6.2:
- version "2.6.2"
- resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.6.2.tgz#703ac29425e7b37cd6fd456e92404d46d1f3e4ae"
- integrity sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q==
+ version "2.6.3"
+ resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.6.3.tgz#0438f810ad7a9edcde7a241c3d80db693c8cbfe0"
+ integrity sha512-xNvxJEOUiWPGhUuUdQgAJPKOOJfGnIyKySOc09XkKsgdUV/3E2zvwZYdejjmRgPCgcym1juLH3226yA7sEFJKQ==
tsutils@^3.21.0:
version "3.21.0"
@@ -6782,25 +6730,20 @@ type-check@^0.4.0, type-check@~0.4.0:
dependencies:
prelude-ls "^1.2.1"
-type-detect@^4.0.0, type-detect@^4.0.8:
- version "4.0.8"
- resolved "https://registry.yarnpkg.com/type-detect/-/type-detect-4.0.8.tgz#7646fb5f18871cfbb7749e69bd39a6388eb7450c"
- integrity sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==
+type-detect@^4.0.0, type-detect@^4.1.0:
+ version "4.1.0"
+ resolved "https://registry.yarnpkg.com/type-detect/-/type-detect-4.1.0.tgz#deb2453e8f08dcae7ae98c626b13dddb0155906c"
+ integrity sha512-Acylog8/luQ8L7il+geoSxhEkazvkslg7PSNKOX59mbB9cOveP5aq9h74Y7YU8yDpJwetzQQrfIwtf4Wp4LKcw==
type-fest@^0.20.2:
version "0.20.2"
resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.20.2.tgz#1bf207f4b28f91583666cb5fbd327887301cd5f4"
integrity sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==
-type@^1.0.1:
- version "1.2.0"
- resolved "https://registry.yarnpkg.com/type/-/type-1.2.0.tgz#848dd7698dafa3e54a6c479e759c4bc3f18847a0"
- integrity sha512-+5nt5AAniqsCnu2cEQQdpzCAh33kVx8n0VoFidKpB1dVVLAN/F+bgVOqOJqOnEnrhp222clB5p3vUlD+1QAnfg==
-
type@^2.7.2:
- version "2.7.2"
- resolved "https://registry.yarnpkg.com/type/-/type-2.7.2.tgz#2376a15a3a28b1efa0f5350dcf72d24df6ef98d0"
- integrity sha512-dzlvlNlt6AXU7EBSfpAscydQ7gXB+pPGsPnfJnZpiNJBDj7IaJzQlBZYGdEi4R9HmPdBv2XmWJ6YUtoTa7lmCw==
+ version "2.7.3"
+ resolved "https://registry.yarnpkg.com/type/-/type-2.7.3.tgz#436981652129285cc3ba94f392886c2637ea0486"
+ integrity sha512-8j+1QmAbPvLZow5Qpi6NCaN8FB60p/6x8/vfNqOk/hC+HuvFZhL4+WfekuhQLiqFZXOgQdrs3B+XxEmCc6b3FQ==
typedarray@^0.0.6:
version "0.0.6"
@@ -6864,10 +6807,10 @@ undertaker@^1.2.1:
object.reduce "^1.0.0"
undertaker-registry "^1.0.0"
-undici-types@~5.26.4:
- version "5.26.5"
- resolved "https://registry.yarnpkg.com/undici-types/-/undici-types-5.26.5.tgz#bcd539893d00b56e964fd2657a4866b221a65617"
- integrity sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA==
+undici-types@~6.13.0:
+ version "6.13.0"
+ resolved "https://registry.yarnpkg.com/undici-types/-/undici-types-6.13.0.tgz#e3e79220ab8c81ed1496b5812471afd7cf075ea5"
+ integrity sha512-xtFJHudx8S2DSoujjMd1WeWvn7KKWFRESZTMeL1RptAYERu29D6jphMjjY+vn96jvN3kVPDNxU/E13VTaXj6jg==
unicode-canonical-property-names-ecmascript@^2.0.0:
version "2.0.0"
@@ -6923,15 +6866,15 @@ upath@^1.1.1:
resolved "https://registry.yarnpkg.com/upath/-/upath-1.2.0.tgz#8f66dbcd55a883acdae4408af8b035a5044c1894"
integrity sha512-aZwGpamFO61g3OlfT7OQCHqhGnW43ieH9WZeP7QxN/G/jS4jfqUkZxoryvJgVPEcrl5NL/ggHsSmLMHuH64Lhg==
-update-browserslist-db@^1.0.13:
- version "1.0.13"
- resolved "https://registry.yarnpkg.com/update-browserslist-db/-/update-browserslist-db-1.0.13.tgz#3c5e4f5c083661bd38ef64b6328c26ed6c8248c4"
- integrity sha512-xebP81SNcPuNpPP3uzeW1NYXxI3rxyJzF3pD6sH4jE7o/IX+WtSpwnVU+qIsDPyk0d3hmFQ7mjqc6AtV604hbg==
+update-browserslist-db@^1.1.0:
+ version "1.1.0"
+ resolved "https://registry.yarnpkg.com/update-browserslist-db/-/update-browserslist-db-1.1.0.tgz#7ca61c0d8650766090728046e416a8cde682859e"
+ integrity sha512-EdRAaAyk2cUE1wOf2DkEhzxqOQvFOoRJFNS6NeyJ01Gp2beMRpBAINjM2iDXE3KCuKhwnvHIQCJm6ThL2Z+HzQ==
dependencies:
- escalade "^3.1.1"
- picocolors "^1.0.0"
+ escalade "^3.1.2"
+ picocolors "^1.0.1"
-uri-js@^4.2.2, uri-js@^4.4.1:
+uri-js@^4.2.2:
version "4.4.1"
resolved "https://registry.yarnpkg.com/uri-js/-/uri-js-4.4.1.tgz#9b1a52595225859e55f669d928f88c6c57f2a77e"
integrity sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==
@@ -6944,12 +6887,12 @@ urix@^0.1.0:
integrity sha512-Am1ousAhSLBeB9cG/7k7r2R0zj50uDRlZHPGbazid5s9rlF1F/QKYObEKSIunSjIOkJZqwRRLpvewjEkM7pSqg==
url@~0.11.0:
- version "0.11.3"
- resolved "https://registry.yarnpkg.com/url/-/url-0.11.3.tgz#6f495f4b935de40ce4a0a52faee8954244f3d3ad"
- integrity sha512-6hxOLGfZASQK/cijlZnZJTq8OXAkt/3YGfQX45vvMYXpZoo8NdWZcY73K108Jf759lS1Bv/8wXnHDTSz17dSRw==
+ version "0.11.4"
+ resolved "https://registry.yarnpkg.com/url/-/url-0.11.4.tgz#adca77b3562d56b72746e76b330b7f27b6721f3c"
+ integrity sha512-oCwdVC7mTuWiPyjLUz/COz5TLk6wgp0RCsN+wHZ2Ekneac9w8uuV0njcbbie2ME+Vs+d6duwmYuR3HgQXs1fOg==
dependencies:
punycode "^1.4.1"
- qs "^6.11.2"
+ qs "^6.12.3"
use@^3.1.0:
version "3.1.1"
@@ -7162,9 +7105,9 @@ webpack-stream@^7.0.0:
vinyl "^2.2.1"
webpack@^5.91.0:
- version "5.91.0"
- resolved "https://registry.yarnpkg.com/webpack/-/webpack-5.91.0.tgz#ffa92c1c618d18c878f06892bbdc3373c71a01d9"
- integrity sha512-rzVwlLeBWHJbmgTC/8TvAcu5vpJNII+MelQpylD4jNERPwpBJOE2lEcko1zJX3QJeLjTTAnQxn/OJ8bjDzVQaw==
+ version "5.93.0"
+ resolved "https://registry.yarnpkg.com/webpack/-/webpack-5.93.0.tgz#2e89ec7035579bdfba9760d26c63ac5c3462a5e5"
+ integrity sha512-Y0m5oEY1LRuwly578VqluorkXbvXKh7U3rLoQCEO04M97ScRr44afGVkI0FQFsXzysk5OgFAxjZAb9rsGQVihA==
dependencies:
"@types/eslint-scope" "^3.7.3"
"@types/estree" "^1.0.5"
@@ -7172,10 +7115,10 @@ webpack@^5.91.0:
"@webassemblyjs/wasm-edit" "^1.12.1"
"@webassemblyjs/wasm-parser" "^1.12.1"
acorn "^8.7.1"
- acorn-import-assertions "^1.9.0"
+ acorn-import-attributes "^1.9.5"
browserslist "^4.21.10"
chrome-trace-event "^1.0.2"
- enhanced-resolve "^5.16.0"
+ enhanced-resolve "^5.17.0"
es-module-lexer "^1.2.1"
eslint-scope "5.1.1"
events "^3.2.0"
@@ -7196,23 +7139,16 @@ which-module@^1.0.0:
resolved "https://registry.yarnpkg.com/which-module/-/which-module-1.0.0.tgz#bba63ca861948994ff307736089e3b96026c2a4f"
integrity sha512-F6+WgncZi/mJDrammbTuHe1q0R5hOXv/mBaiNA2TCNT/LTHusX0V+CJnj9XT8ki5ln2UZyyddDgHfCzyrOH7MQ==
-which-typed-array@^1.1.11, which-typed-array@^1.1.2:
- version "1.1.13"
- resolved "https://registry.yarnpkg.com/which-typed-array/-/which-typed-array-1.1.13.tgz#870cd5be06ddb616f504e7b039c4c24898184d36"
- integrity sha512-P5Nra0qjSncduVPEAr7xhoF5guty49ArDTwzJ/yNuPIbZppyRxFQsRCWrocxIY+CnMVG+qfbU2FmDKyvSGClow==
+which-typed-array@^1.1.14, which-typed-array@^1.1.2:
+ version "1.1.15"
+ resolved "https://registry.yarnpkg.com/which-typed-array/-/which-typed-array-1.1.15.tgz#264859e9b11a649b388bfaaf4f767df1f779b38d"
+ integrity sha512-oV0jmFtUky6CXfkqehVvBP/LSWJ2sy4vWMioiENyJLePrBO/yKyV9OyJySfAKosh+RYkIl5zJCNZ8/4JncrpdA==
dependencies:
- available-typed-arrays "^1.0.5"
- call-bind "^1.0.4"
+ available-typed-arrays "^1.0.7"
+ call-bind "^1.0.7"
for-each "^0.3.3"
gopd "^1.0.1"
- has-tostringtag "^1.0.0"
-
-which@2.0.2, which@^2.0.1:
- version "2.0.2"
- resolved "https://registry.yarnpkg.com/which/-/which-2.0.2.tgz#7c6a8dd0a636a0327e10b59c9286eee93f3f51b1"
- integrity sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==
- dependencies:
- isexe "^2.0.0"
+ has-tostringtag "^1.0.2"
which@^1.2.14:
version "1.3.1"
@@ -7221,6 +7157,13 @@ which@^1.2.14:
dependencies:
isexe "^2.0.0"
+which@^2.0.1:
+ version "2.0.2"
+ resolved "https://registry.yarnpkg.com/which/-/which-2.0.2.tgz#7c6a8dd0a636a0327e10b59c9286eee93f3f51b1"
+ integrity sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==
+ dependencies:
+ isexe "^2.0.0"
+
wif@^2.0.6:
version "2.0.6"
resolved "https://registry.yarnpkg.com/wif/-/wif-2.0.6.tgz#08d3f52056c66679299726fade0d432ae74b4704"
@@ -7238,10 +7181,10 @@ word-wrap@^1.2.5:
resolved "https://registry.yarnpkg.com/word-wrap/-/word-wrap-1.2.5.tgz#d2c45c6dd4fbce621a66f136cbe328afd0410b34"
integrity sha512-BN22B5eaMMI9UMtjrGd5g5eCYPpCPDUy0FJXbYsaT5zYxjFOckS53SQDE3pWkVoWpHXVb3BrYcEN4Twa55B5cA==
-workerpool@6.2.0:
- version "6.2.0"
- resolved "https://registry.yarnpkg.com/workerpool/-/workerpool-6.2.0.tgz#827d93c9ba23ee2019c3ffaff5c27fccea289e8b"
- integrity sha512-Rsk5qQHJ9eowMH28Jwhe8HEbmdYDX4lwoMWshiCXugjtHqMD9ZbiqSDLxcsfdqsETPzVUtX5s1Z5kStiIM6l4A==
+workerpool@6.2.1:
+ version "6.2.1"
+ resolved "https://registry.yarnpkg.com/workerpool/-/workerpool-6.2.1.tgz#46fc150c17d826b86a008e5a4508656777e9c343"
+ integrity sha512-ILEIE97kDZvF9Wb9f6h5aXK4swSlKGUcOEGiIYb2OOu/IrDU9iwj0fD//SsA6E5ibwJxpEvhullJY4Sl4GcpAw==
wrap-ansi@^2.0.0:
version "2.1.0"
@@ -7265,7 +7208,7 @@ wrappy@1:
resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f"
integrity sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==
-xtend@^4.0.0, xtend@^4.0.1, xtend@^4.0.2, xtend@~4.0.0, xtend@~4.0.1:
+xtend@^4.0.0, xtend@^4.0.1, xtend@^4.0.2, xtend@~4.0.1:
version "4.0.2"
resolved "https://registry.yarnpkg.com/xtend/-/xtend-4.0.2.tgz#bb72779f5fa465186b1f438f674fa347fdb5db54"
integrity sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==
@@ -7285,11 +7228,6 @@ yallist@^3.0.2:
resolved "https://registry.yarnpkg.com/yallist/-/yallist-3.1.1.tgz#dbb7daf9bfd8bac9ab45ebf602b8cbad0d5d08fd"
integrity sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==
-yallist@^4.0.0:
- version "4.0.0"
- resolved "https://registry.yarnpkg.com/yallist/-/yallist-4.0.0.tgz#9bb92790d9c0effec63be73519e11a35019a3a72"
- integrity sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==
-
yargs-parser@20.2.4:
version "20.2.4"
resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-20.2.4.tgz#b42890f14566796f85ae8e3a25290d205f154a54"