From daf795ba99706e84f97644a88a0fa5fec4d9e5f4 Mon Sep 17 00:00:00 2001 From: Shook Date: Tue, 13 Aug 2024 21:23:14 +0800 Subject: [PATCH 1/4] feat: add generate_rgbpp_transfer_all_txs API in the rgbpp-sdk-service, also correct snake/camel case types --- apps/service/package.json | 3 +- apps/service/src/app.module.ts | 19 ++++- apps/service/src/rgbpp/rgbpp.service.ts | 104 ++++++++++++++++-------- apps/service/src/rgbpp/types.ts | 42 +++++++++- apps/service/src/utils/case.ts | 23 ++++++ apps/service/src/utils/snake.ts | 10 --- pnpm-lock.yaml | 102 +++++++++-------------- 7 files changed, 188 insertions(+), 115 deletions(-) create mode 100644 apps/service/src/utils/case.ts delete mode 100644 apps/service/src/utils/snake.ts diff --git a/apps/service/package.json b/apps/service/package.json index 79b86423..67070545 100644 --- a/apps/service/package.json +++ b/apps/service/package.json @@ -28,7 +28,7 @@ "convert-keys": "^1.3.4", "json-rpc-2.0": "^1.7.0", "reflect-metadata": "^0.2.0", - "rgbpp": "^0.5.0", + "rgbpp": "0.0.0-snap-20240813134030", "rxjs": "^7.8.1", "zod": "^3.23.8" }, @@ -45,6 +45,7 @@ "ts-loader": "^9.4.3", "ts-node": "^10.9.1", "tsconfig-paths": "^4.2.0", + "type-fest": "^4.24.0", "typescript": "^5.1.3" }, "jest": { diff --git a/apps/service/src/app.module.ts b/apps/service/src/app.module.ts index 7b55caad..800b116f 100644 --- a/apps/service/src/app.module.ts +++ b/apps/service/src/app.module.ts @@ -1,11 +1,12 @@ import { Global, Module } from '@nestjs/common'; import { ConfigModule, ConfigService } from '@nestjs/config'; +import { BtcAssetsApi } from 'rgbpp/service'; +import { DataSource, NetworkType } from 'rgbpp/btc'; +import { BTCTestnetType, Collector } from 'rgbpp/ckb'; import JsonRpcModule from './json-rpc/json-rpc.module'; import { RgbppModule } from './rgbpp/rgbpp.module'; import { AppService } from './app.service'; import { envSchema } from './env'; -import { BTCTestnetType, Collector } from 'rgbpp/ckb'; -import { BtcAssetsApi } from 'rgbpp'; @Global() @Module({ @@ -31,7 +32,7 @@ import { BtcAssetsApi } from 'rgbpp'; inject: [ConfigService], }, { - provide: 'COLLECTOR', + provide: 'CKB_COLLECTOR', useFactory: (configService: ConfigService) => { const ckbRpcUrl = configService.get('CKB_RPC_URL'); return new Collector({ @@ -51,7 +52,17 @@ import { BtcAssetsApi } from 'rgbpp'; }, inject: [ConfigService], }, + { + provide: 'BTC_DATA_SOURCE', + useFactory: (configService: ConfigService) => { + const isMainnet = configService.get('IS_MAINNET'); + const networkType = isMainnet ? NetworkType.MAINNET : NetworkType.TESTNET; + const btcAssetsApi = configService.get('BTC_ASSETS_API'); + return new DataSource(btcAssetsApi, networkType); + }, + inject: [ConfigService], + }, ], - exports: ['IS_MAINNET', 'COLLECTOR', 'BTC_ASSETS_API', 'BTC_TESTNET_TYPE'], + exports: ['IS_MAINNET', 'CKB_COLLECTOR', 'BTC_ASSETS_API', 'BTC_DATA_SOURCE', 'BTC_TESTNET_TYPE'], }) export class AppModule {} diff --git a/apps/service/src/rgbpp/rgbpp.service.ts b/apps/service/src/rgbpp/rgbpp.service.ts index ebc9ed72..79f9ca96 100644 --- a/apps/service/src/rgbpp/rgbpp.service.ts +++ b/apps/service/src/rgbpp/rgbpp.service.ts @@ -1,7 +1,10 @@ import { Inject } from '@nestjs/common'; +import { DataSource } from 'rgbpp/btc'; +import { BtcAssetsApi, RgbppApiTransactionState } from 'rgbpp/service'; +import { BTCTestnetType, Collector, Hex, append0x } from 'rgbpp/ckb'; +import { buildRgbppTransferTx, buildRgbppTransferAllTxs } from 'rgbpp'; import { RpcHandler, RpcMethodHandler } from 'src/json-rpc/json-rpc.decorators'; -import { DataSource, NetworkType } from 'rgbpp/btc'; -import { BTCTestnetType, Collector, Hex, toCamelcase } from 'rgbpp/ckb'; +import { toSnakeCase, toCamelCase, SnakeCased } from 'src/utils/case'; import { RgbppTransferReq, RgbppCkbBtcTransaction, @@ -9,78 +12,111 @@ import { RgbppStateReq, RgbppCkbTxHashReq, BtcTxSendReq, + RgbppTransferAllReq, + RgbppTransferAllRes, } from './types'; -import { toSnakeCase } from 'src/utils/snake'; -import { buildRgbppTransferTx } from 'rgbpp'; -import { BtcAssetsApi } from 'rgbpp/service'; @RpcHandler() export class RgbppService { constructor( @Inject('IS_MAINNET') private isMainnet: boolean, @Inject('BTC_TESTNET_TYPE') private btcTestnetType: BTCTestnetType, - @Inject('COLLECTOR') private collector: Collector, + @Inject('BTC_DATA_SOURCE') private btcDataSource: DataSource, @Inject('BTC_ASSETS_API') private btcAssetsApi: BtcAssetsApi, + @Inject('CKB_COLLECTOR') private ckbCollector: Collector, ) {} @RpcMethodHandler({ name: 'generate_rgbpp_transfer_tx' }) - public async generateRgbppTransferTx(request: object[]) { - const { xudtTypeArgs, rgbppLockArgsList, transferAmount, fromBtcAddress, toBtcAddress } = - toCamelcase(request[0]); - const networkType = this.isMainnet ? NetworkType.MAINNET : NetworkType.TESTNET; - const btcDataSource = new DataSource(this.btcAssetsApi, networkType); - const { ckbVirtualTxResult, btcPsbtHex } = await buildRgbppTransferTx({ + public async generateRgbppTransferTx(request: [RgbppTransferReq]): Promise> { + const params = toCamelCase(request[0]); + const result = await buildRgbppTransferTx({ ckb: { - collector: this.collector, - xudtTypeArgs, - rgbppLockArgsList, - transferAmount: BigInt(transferAmount), + collector: this.ckbCollector, + xudtTypeArgs: params.xudtTypeArgs, + rgbppLockArgsList: params.rgbppLockArgsList, + transferAmount: BigInt(params.transferAmount), }, btc: { - fromAddress: fromBtcAddress, - toAddress: toBtcAddress, - dataSource: btcDataSource, + fromAddress: params.fromBtcAddress, + toAddress: params.toBtcAddress, + dataSource: this.btcDataSource, testnetType: this.btcTestnetType, }, isMainnet: this.isMainnet, }); - const response: RgbppCkbBtcTransaction = { - ckbVirtualTxResult: JSON.stringify(ckbVirtualTxResult), - btcPsbtHex, - }; - return toSnakeCase(response); + + return toSnakeCase({ + ckbVirtualTxResult: JSON.stringify(result.ckbVirtualTxResult), + btcPsbtHex: result.btcPsbtHex, + }); + } + + @RpcMethodHandler({ name: 'generate_rgbpp_transfer_all_txs' }) + public async generateRgbppTransferAllTxs(request: [RgbppTransferAllReq]): Promise> { + const params = toCamelCase(request[0]); + const result = await buildRgbppTransferAllTxs({ + ckb: { + collector: this.ckbCollector, + xudtTypeArgs: params.ckb.xudtTypeArgs, + feeRate: BigInt(append0x(params.ckb.feeRate)), + }, + btc: { + assetAddresses: params.btc.assetAddresses, + fromAddress: params.btc.fromAddress, + toAddress: params.btc.toAddress, + fromPubkey: params.btc.fromPubkey, + pubkeyMap: params.btc.pubkeyMap, + feeRate: params.btc.feeRate, + dataSource: this.btcDataSource, + testnetType: this.btcTestnetType, + }, + isMainnet: this.isMainnet, + }); + + return toSnakeCase({ + ...result, + transactions: result.transactions.map((group) => { + return { + ...group, + ckb: { + ...group.ckb, + virtualTxResult: JSON.stringify(group.ckb.virtualTxResult), + }, + }; + }), + }); } @RpcMethodHandler({ name: 'report_rgbpp_ckb_tx_btc_txid' }) - public async reportRgbppCkbTxBtcTxId(request: object[]) { - const { ckbVirtualTxResult, btcTxId } = toCamelcase(request[0]); + public async reportRgbppCkbTxBtcTxId(request: [RgbppCkbTxBtcTxId]): Promise> { + const { ckbVirtualTxResult, btcTxId } = toCamelCase(request[0]); const response = await this.btcAssetsApi.sendRgbppCkbTransaction({ btc_txid: btcTxId, ckb_virtual_result: ckbVirtualTxResult, }); - return toSnakeCase(response); + return toSnakeCase(response); } @RpcMethodHandler({ name: 'get_rgbpp_tx_state' }) - public async getRgbppTxState(request: object[]) { + public async getRgbppTxState(request: [RgbppStateReq]): Promise> { const { btcTxId, params: { withData }, - } = toCamelcase(request[0]); + } = toCamelCase(request[0]); const response = await this.btcAssetsApi.getRgbppTransactionState(btcTxId, { with_data: withData }); - return toSnakeCase(response); + return toSnakeCase(response); } @RpcMethodHandler({ name: 'get_rgbpp_ckb_tx_hash' }) - public async getRgbppCkbTxHash(request: object[]): Promise { - const { btcTxId } = toCamelcase(request[0]); + public async getRgbppCkbTxHash(request: [RgbppCkbTxHashReq]): Promise { + const { btcTxId } = toCamelCase(request[0]); const { txhash: txHash } = await this.btcAssetsApi.getRgbppTransactionHash(btcTxId); return txHash; } @RpcMethodHandler({ name: 'send_btc_transaction' }) - public async sendBtcTransaction(request: object[]): Promise { - const { txHex } = toCamelcase(request[0]); + public async sendBtcTransaction(request: [BtcTxSendReq]): Promise { + const { txHex } = toCamelCase(request[0]); const { txid } = await this.btcAssetsApi.sendBtcTransaction(txHex); return txid; } diff --git a/apps/service/src/rgbpp/types.ts b/apps/service/src/rgbpp/types.ts index b5da3f9e..b1aee2e1 100644 --- a/apps/service/src/rgbpp/types.ts +++ b/apps/service/src/rgbpp/types.ts @@ -1,8 +1,10 @@ +import { RgbppTransferAllTxGroup, RgbppTransferAllTxsResult } from 'rgbpp'; +import { AddressToPubkeyMap } from 'rgbpp/btc'; import { Hex } from 'rgbpp/ckb'; export interface RgbppTransferReq { // The transferred RGB++ xUDT type script args - xudtTypeArgs: string; + xudtTypeArgs: Hex; // The rgbpp assets cell lock script args array whose data structure is: out_index | btc_tx_id rgbppLockArgsList: string[]; // The xUDT amount to be transferred @@ -41,3 +43,41 @@ export interface RgbppCkbTxHashReq { export interface BtcTxSendReq { txHex: Hex; } + +export interface RgbppTransferAllReq { + ckb: { + // The transferred RGB++ xUDT type script args + xudtTypeArgs: Hex; + // The CKB transaction fee rate in hex format, default value is 0x44c (1100) + feeRate?: Hex; + }; + btc: { + // The list of BTC addresses to provide RGB++ xUDT assets + // All available amounts of the target asset (specified by ckb.xudtTypeArgs) will be included in the transfers + // However, if more than 40 cells are bound to the same UTXO, the amounts within those 40 cells are excluded + assetAddresses: string[]; + // The BTC address for paying all the transaction costs, but not provide any RGB++ assets + fromAddress: string; + // The BTC address for receiving all the RGB++ assets + toAddress: string; + // The public key of sender BTC address, must fill if the fromAddress is a P2TR address + fromPubkey?: string; + // The map helps find the corresponding public key of a BTC address, + // note that you must specify a pubkey for each P2TR address in assetAddresses/fromAddress + pubkeyMap?: AddressToPubkeyMap; + // The BTC address to return change satoshi, default value is fromAddress + changeAddress?: string; + // The fee rate of the BTC transactions, will use the fastest fee rate if not specified + feeRate?: number; + }; +} + +export interface RgbppTransferAllRes extends Omit { + transactions: RgbppTransferAllGroupWithStringCkbVtx[]; +} + +export interface RgbppTransferAllGroupWithStringCkbVtx extends Omit { + ckb: Omit & { + virtualTxResult: string; + }; +} diff --git a/apps/service/src/utils/case.ts b/apps/service/src/utils/case.ts new file mode 100644 index 00000000..c4ed4cfc --- /dev/null +++ b/apps/service/src/utils/case.ts @@ -0,0 +1,23 @@ +import { SnakeCasedPropertiesDeep, CamelCasedPropertiesDeep } from 'type-fest'; +import { toSnake, toCamel } from 'convert-keys'; + +export type SnakeCased = SnakeCasedPropertiesDeep; +export type CamelCased = CamelCasedPropertiesDeep; + +export const toSnakeCase = (obj: T): SnakeCased | null => { + try { + return toSnake(obj); + } catch (error) { + console.error(error); + } + return null; +}; + +export const toCamelCase = (obj: T): CamelCased | null => { + try { + return toCamel(obj); + } catch (error) { + console.error(error); + } + return null; +}; diff --git a/apps/service/src/utils/snake.ts b/apps/service/src/utils/snake.ts deleted file mode 100644 index 5ce20f00..00000000 --- a/apps/service/src/utils/snake.ts +++ /dev/null @@ -1,10 +0,0 @@ -import { toSnake } from 'convert-keys'; - -export const toSnakeCase = (obj: object): T | null => { - try { - return toSnake(obj); - } catch (error) { - console.error(error); - } - return null; -}; diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index b6d69799..22ae7be6 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -75,8 +75,8 @@ importers: specifier: ^0.2.0 version: 0.2.2 rgbpp: - specifier: ^0.5.0 - version: 0.5.0(@ckb-lumos/lumos@0.22.0-next.5)(lodash@4.17.21) + specifier: 0.0.0-snap-20240813014620 + version: 0.0.0-snap-20240813014620(@ckb-lumos/lumos@0.22.0-next.5)(lodash@4.17.21) rxjs: specifier: ^7.8.1 version: 7.8.1 @@ -120,6 +120,9 @@ importers: tsconfig-paths: specifier: ^4.2.0 version: 4.2.0 + type-fest: + specifier: ^4.24.0 + version: 4.24.0 typescript: specifier: ^5.1.3 version: 5.5.3 @@ -1223,27 +1226,15 @@ packages: '@manypkg/get-packages@1.1.3': resolution: {integrity: sha512-fo+QhuU3qE/2TQMQmbVMqaQ6EWbMhi4ABWP+O4AM1NqPBuy0OrApV5LO6BrrgnhtAHS2NH6RrVk9OL181tTi8A==} - '@nervosnetwork/ckb-sdk-core@0.109.1': - resolution: {integrity: sha512-YU3yJZvz69WU6Bw//vRxzxLGcIj74CwGffdp6GYZbQpZwFaACT6FCojvOMjHIyJ8Rw32r114LhMKHvyBwagWjw==} - '@nervosnetwork/ckb-sdk-core@0.109.2': resolution: {integrity: sha512-56oOneHQCM0IEyNQswCIF8Xs1PXj4TGuBQA6iKfRKvHyXQiEGeVJ1q4FJzVk8dz5tRLguoMYWs6HuXy02bKIVg==} - '@nervosnetwork/ckb-sdk-rpc@0.109.1': - resolution: {integrity: sha512-RoUhXmaOm1g7ga1G3guNTzSDit79k7nqj3rYbk2jSlULRo34g9L06juU24hmwwuFZfiCaARI9mgACu0ScW9itw==} - '@nervosnetwork/ckb-sdk-rpc@0.109.2': resolution: {integrity: sha512-6RHLMXIzyV8XKkV19SnYvnRqCs3B3BVHwVFHk6G0Eq71bmKwLjgEoc8pYnXoQK1P4v31ZCvIhdjynSvjh0Jv1w==} - '@nervosnetwork/ckb-sdk-utils@0.109.1': - resolution: {integrity: sha512-KK8w+JZGPt/Gq/Y0b87AuQp8mGR46fBSkqnjwASdBAi2rts9tJ6srEaZ3FVVa9LtjTlThQ120hex+mcyastrkQ==} - '@nervosnetwork/ckb-sdk-utils@0.109.2': resolution: {integrity: sha512-pXgQvQQA2TuXiAmKGvL9kWjXdCsX+qP8HqHSLt6kwrjFe846d4dZxZ5AunpP+xsQNst+L5V7xcvunaBOkTdD6g==} - '@nervosnetwork/ckb-types@0.109.1': - resolution: {integrity: sha512-mD5mOCGa1JertKZekHSUVYwFPW27VJ0/MdwblWvEEK7pNIU6az+dLiIxgvl4TxR+j+7/GqmXNH1U59CM92y/wg==} - '@nervosnetwork/ckb-types@0.109.2': resolution: {integrity: sha512-NAQbUi+j6tWlUYijvHqWIUwrbawIeAeSlxUQm0wkqSKbtAEoiR4L6RZS7cgn7uH+SMsp78mciXP8gixrfH3rEQ==} @@ -1355,14 +1346,14 @@ packages: resolution: {integrity: sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==} engines: {node: '>=14'} - '@rgbpp-sdk/btc@0.5.0': - resolution: {integrity: sha512-udqocY2ZonGtNa2q9QEr6EZX/WaW/lnqbFQbp6dHyVT22qchtpZt+Ef92X+XGLIwqWd2fqKIv4oejHhn2S9ncA==} + '@rgbpp-sdk/btc@0.0.0-snap-20240813014620': + resolution: {integrity: sha512-T9nmegGrUf4wEfioX612Om1EYqL1QVPrldF3x2J18QtKlYW/Bli6eMOzDPeF0d8tAysgpCJEpkRtwoh/CRC8UA==} - '@rgbpp-sdk/ckb@0.5.0': - resolution: {integrity: sha512-GVkz1tq+HT8do77bmcWH/oN5BsWfIVTXfnlTpocKZ86OhIEj+2z5cBwECIjdZ5MKe3h49xH81bCn0jFWqa7yhQ==} + '@rgbpp-sdk/ckb@0.0.0-snap-20240813014620': + resolution: {integrity: sha512-IE0+vQAaR1FdiUesdrOzLedAtgczChR7bPRiJkfufMGJMaPpPoimHdySqe1hkp8kyVRiIp8xL5BxyfAvl4dyrA==} - '@rgbpp-sdk/service@0.5.0': - resolution: {integrity: sha512-hcgWltNE7aeQXXfCcysj2TXf3J/IodpP9nEXis1MrT3MTTNnEm2PpRh0URLOVEZOkpeSxAw2Nyb9Eu9dWzDdiw==} + '@rgbpp-sdk/service@0.0.0-snap-20240813014620': + resolution: {integrity: sha512-xyaJmU/DbdBCk3KoVAtJqMANHMa7fEkz9FKmFrogPPlQMpUwKbUoh2TLBkf0MMDBCoBcPAhtPxrMxH2CrKFoZw==} '@rollup/rollup-android-arm-eabi@4.19.0': resolution: {integrity: sha512-JlPfZ/C7yn5S5p0yKk7uhHTTnFlvTgLetl2VxqE518QgyM7C9bSfFTYvB/Q/ftkq0RIPY4ySxTz+/wKJ/dXC0w==} @@ -3695,8 +3686,8 @@ packages: rfdc@1.4.1: resolution: {integrity: sha512-q1b3N5QkRUWUl7iyylaaj3kOpIT0N2i9MqIEQXP73GVsN9cw3fdx8X63cEmWhJGi2PPCF23Ijp7ktmd39rawIA==} - rgbpp@0.5.0: - resolution: {integrity: sha512-+Gtf1QAeJo/oI+3Jdf4UBYHQy0cesRj5duA9liUCWVXrPE3y0aJlppDouXXCairfHqBOY/7KzQVQJ122NlL8qA==} + rgbpp@0.0.0-snap-20240813014620: + resolution: {integrity: sha512-1jTgucS9QQAkFjH5xHWFvphU3ovM6/jOMbUAYqoN2IdfPNbrkxrbInewu5IgFQuEGNib47t0sFoFFTS0Q4A6cw==} rimraf@3.0.2: resolution: {integrity: sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==} @@ -4154,6 +4145,10 @@ packages: resolution: {integrity: sha512-yGSza74xk0UG8k+pLh5oeoYirvIiWo5t0/o3zHHAO2tRDiZcxWP7fywNlXhqb6/r6sWvwi+RsyQMWhVLe4BVuA==} engines: {node: '>=10'} + type-fest@4.24.0: + resolution: {integrity: sha512-spAaHzc6qre0TlZQQ2aA/nGMe+2Z/wyGk5Z+Ru2VUfdNwT6kWO6TjevOlpebsATEG1EIQ2sOiDszud3lO5mt/Q==} + engines: {node: '>=16'} + typeforce@1.18.0: resolution: {integrity: sha512-7uc1O8h1M1g0rArakJdf0uLRSSgFcYexrVoKo+bzJd32gd4gDy2L/Z+8/FjPnU9ydY3pEnVPtr9FyscYY60K1g==} @@ -5493,15 +5488,6 @@ snapshots: globby: 11.1.0 read-yaml-file: 1.1.0 - '@nervosnetwork/ckb-sdk-core@0.109.1': - dependencies: - '@nervosnetwork/ckb-sdk-rpc': 0.109.1 - '@nervosnetwork/ckb-sdk-utils': 0.109.1 - '@nervosnetwork/ckb-types': 0.109.1 - tslib: 2.3.1 - transitivePeerDependencies: - - debug - '@nervosnetwork/ckb-sdk-core@0.109.2': dependencies: '@nervosnetwork/ckb-sdk-rpc': 0.109.2 @@ -5511,14 +5497,6 @@ snapshots: transitivePeerDependencies: - debug - '@nervosnetwork/ckb-sdk-rpc@0.109.1': - dependencies: - '@nervosnetwork/ckb-sdk-utils': 0.109.1 - axios: 1.6.7 - tslib: 2.3.1 - transitivePeerDependencies: - - debug - '@nervosnetwork/ckb-sdk-rpc@0.109.2': dependencies: '@nervosnetwork/ckb-sdk-utils': 0.109.2 @@ -5527,14 +5505,6 @@ snapshots: transitivePeerDependencies: - debug - '@nervosnetwork/ckb-sdk-utils@0.109.1': - dependencies: - '@nervosnetwork/ckb-types': 0.109.1 - bech32: 2.0.0 - elliptic: 6.5.4 - jsbi: 3.1.3 - tslib: 2.3.1 - '@nervosnetwork/ckb-sdk-utils@0.109.2': dependencies: '@nervosnetwork/ckb-types': 0.109.2 @@ -5543,8 +5513,6 @@ snapshots: jsbi: 3.1.3 tslib: 2.3.1 - '@nervosnetwork/ckb-types@0.109.1': {} - '@nervosnetwork/ckb-types@0.109.2': {} '@nestjs/cli@10.4.2(esbuild@0.23.0)': @@ -5670,13 +5638,13 @@ snapshots: '@pkgjs/parseargs@0.11.0': optional: true - '@rgbpp-sdk/btc@0.5.0(@ckb-lumos/lumos@0.22.0-next.5)': + '@rgbpp-sdk/btc@0.0.0-snap-20240813014620(@ckb-lumos/lumos@0.22.0-next.5)': dependencies: '@bitcoinerlab/secp256k1': 1.1.1 '@ckb-lumos/codec': 0.22.2 - '@nervosnetwork/ckb-types': 0.109.1 - '@rgbpp-sdk/ckb': 0.5.0(@ckb-lumos/lumos@0.22.0-next.5)(lodash@4.17.21) - '@rgbpp-sdk/service': 0.5.0 + '@nervosnetwork/ckb-types': 0.109.2 + '@rgbpp-sdk/ckb': 0.0.0-snap-20240813014620(@ckb-lumos/lumos@0.22.0-next.5)(lodash@4.17.21) + '@rgbpp-sdk/service': 0.0.0-snap-20240813014620 bip32: 4.0.0 bitcoinjs-lib: 6.1.6 ecpair: 2.1.0 @@ -5686,15 +5654,15 @@ snapshots: - '@ckb-lumos/lumos' - debug - '@rgbpp-sdk/ckb@0.5.0(@ckb-lumos/lumos@0.22.0-next.5)(lodash@4.17.21)': + '@rgbpp-sdk/ckb@0.0.0-snap-20240813014620(@ckb-lumos/lumos@0.22.0-next.5)(lodash@4.17.21)': dependencies: '@ckb-lumos/base': 0.22.2 '@ckb-lumos/codec': 0.22.2 '@exact-realty/multipart-parser': 1.0.14 - '@nervosnetwork/ckb-sdk-core': 0.109.1 - '@nervosnetwork/ckb-sdk-utils': 0.109.1 - '@nervosnetwork/ckb-types': 0.109.1 - '@rgbpp-sdk/service': 0.5.0 + '@nervosnetwork/ckb-sdk-core': 0.109.2 + '@nervosnetwork/ckb-sdk-utils': 0.109.2 + '@nervosnetwork/ckb-types': 0.109.2 + '@rgbpp-sdk/service': 0.0.0-snap-20240813014620 '@spore-sdk/core': 0.2.0(@ckb-lumos/lumos@0.22.0-next.5)(lodash@4.17.21) axios: 1.7.2 camelcase-keys: 7.0.2 @@ -5704,11 +5672,11 @@ snapshots: - debug - lodash - '@rgbpp-sdk/service@0.5.0': + '@rgbpp-sdk/service@0.0.0-snap-20240813014620': dependencies: '@ckb-lumos/base': 0.22.2 '@ckb-lumos/codec': 0.22.2 - '@nervosnetwork/ckb-types': 0.109.1 + '@nervosnetwork/ckb-types': 0.109.2 lodash: 4.17.21 '@rollup/rollup-android-arm-eabi@4.19.0': @@ -8360,12 +8328,14 @@ snapshots: rfdc@1.4.1: {} - rgbpp@0.5.0(@ckb-lumos/lumos@0.22.0-next.5)(lodash@4.17.21): + rgbpp@0.0.0-snap-20240813014620(@ckb-lumos/lumos@0.22.0-next.5)(lodash@4.17.21): dependencies: - '@nervosnetwork/ckb-sdk-utils': 0.109.1 - '@rgbpp-sdk/btc': 0.5.0(@ckb-lumos/lumos@0.22.0-next.5) - '@rgbpp-sdk/ckb': 0.5.0(@ckb-lumos/lumos@0.22.0-next.5)(lodash@4.17.21) - '@rgbpp-sdk/service': 0.5.0 + '@ckb-lumos/base': 0.22.2 + '@ckb-lumos/codec': 0.22.2 + '@nervosnetwork/ckb-sdk-utils': 0.109.2 + '@rgbpp-sdk/btc': 0.0.0-snap-20240813014620(@ckb-lumos/lumos@0.22.0-next.5) + '@rgbpp-sdk/ckb': 0.0.0-snap-20240813014620(@ckb-lumos/lumos@0.22.0-next.5)(lodash@4.17.21) + '@rgbpp-sdk/service': 0.0.0-snap-20240813014620 transitivePeerDependencies: - '@ckb-lumos/lumos' - debug @@ -8827,6 +8797,8 @@ snapshots: type-fest@1.4.0: {} + type-fest@4.24.0: {} + typeforce@1.18.0: {} typescript@5.3.3: {} From 8482241ae73451cc630b199e56a08f0f649701b4 Mon Sep 17 00:00:00 2001 From: Shook Date: Wed, 14 Aug 2024 05:27:59 +0800 Subject: [PATCH 2/4] fix: cannot initiate DataSource correctly in rgbpp-sdk-service --- apps/service/package.json | 2 + apps/service/src/app.module.ts | 22 +++------ apps/service/src/app.service.ts | 4 +- apps/service/src/json-rpc/json-rpc.module.ts | 2 +- apps/service/src/json-rpc/json-rpc.server.ts | 6 +-- apps/service/src/main.ts | 8 ++-- apps/service/src/rgbpp/rgbpp.module.ts | 2 +- apps/service/src/rgbpp/rgbpp.service.ts | 47 +++++++++++--------- apps/service/src/utils/json.ts | 28 ++++++++++++ pnpm-lock.yaml | 43 +++++++++--------- 10 files changed, 98 insertions(+), 66 deletions(-) create mode 100644 apps/service/src/utils/json.ts diff --git a/apps/service/package.json b/apps/service/package.json index 67070545..67942a85 100644 --- a/apps/service/package.json +++ b/apps/service/package.json @@ -5,6 +5,7 @@ "author": "", "private": true, "license": "UNLICENSED", + "type": "module", "scripts": { "build": "nest build", "format": "prettier --write \"src/**/*.ts\"", @@ -27,6 +28,7 @@ "@nestjs/platform-fastify": "^10.3.9", "convert-keys": "^1.3.4", "json-rpc-2.0": "^1.7.0", + "lodash": "^4.17.21", "reflect-metadata": "^0.2.0", "rgbpp": "0.0.0-snap-20240813134030", "rxjs": "^7.8.1", diff --git a/apps/service/src/app.module.ts b/apps/service/src/app.module.ts index 800b116f..9ffc153e 100644 --- a/apps/service/src/app.module.ts +++ b/apps/service/src/app.module.ts @@ -1,18 +1,18 @@ import { Global, Module } from '@nestjs/common'; import { ConfigModule, ConfigService } from '@nestjs/config'; import { BtcAssetsApi } from 'rgbpp/service'; -import { DataSource, NetworkType } from 'rgbpp/btc'; import { BTCTestnetType, Collector } from 'rgbpp/ckb'; -import JsonRpcModule from './json-rpc/json-rpc.module'; -import { RgbppModule } from './rgbpp/rgbpp.module'; -import { AppService } from './app.service'; -import { envSchema } from './env'; +import JsonRpcModule from './json-rpc/json-rpc.module.js'; +import { RgbppModule } from './rgbpp/rgbpp.module.js'; +import { AppService } from './app.service.js'; +import { envSchema } from './env.js'; @Global() @Module({ imports: [ ConfigModule.forRoot({ validate: envSchema.parse, + envFilePath: ['.env', '.env.local'], }), JsonRpcModule.forRoot({ path: '/json-rpc', @@ -52,17 +52,7 @@ import { envSchema } from './env'; }, inject: [ConfigService], }, - { - provide: 'BTC_DATA_SOURCE', - useFactory: (configService: ConfigService) => { - const isMainnet = configService.get('IS_MAINNET'); - const networkType = isMainnet ? NetworkType.MAINNET : NetworkType.TESTNET; - const btcAssetsApi = configService.get('BTC_ASSETS_API'); - return new DataSource(btcAssetsApi, networkType); - }, - inject: [ConfigService], - }, ], - exports: ['IS_MAINNET', 'CKB_COLLECTOR', 'BTC_ASSETS_API', 'BTC_DATA_SOURCE', 'BTC_TESTNET_TYPE'], + exports: ['IS_MAINNET', 'CKB_COLLECTOR', 'BTC_ASSETS_API', 'BTC_TESTNET_TYPE'], }) export class AppModule {} diff --git a/apps/service/src/app.service.ts b/apps/service/src/app.service.ts index 6c2b54a4..c6daee2e 100644 --- a/apps/service/src/app.service.ts +++ b/apps/service/src/app.service.ts @@ -1,5 +1,5 @@ -import { RpcHandler, RpcMethodHandler } from 'src/json-rpc/json-rpc.decorators'; -import * as pkg from '../package.json'; +import { RpcHandler, RpcMethodHandler } from './json-rpc/json-rpc.decorators.js'; +import pkg from '../package.json' with { type: 'json' }; @RpcHandler() export class AppService { diff --git a/apps/service/src/json-rpc/json-rpc.module.ts b/apps/service/src/json-rpc/json-rpc.module.ts index 2c17ac91..133846dc 100644 --- a/apps/service/src/json-rpc/json-rpc.module.ts +++ b/apps/service/src/json-rpc/json-rpc.module.ts @@ -1,5 +1,5 @@ import { Inject, Logger, Module, OnModuleInit } from '@nestjs/common'; -import { JsonRpcServer } from './json-rpc.server'; +import { JsonRpcServer } from './json-rpc.server.js'; export const JSON_RPC_OPTIONS = '__JSON_RPC_OPTIONS__'; diff --git a/apps/service/src/json-rpc/json-rpc.server.ts b/apps/service/src/json-rpc/json-rpc.server.ts index 6234d39e..e7cfa3f7 100644 --- a/apps/service/src/json-rpc/json-rpc.server.ts +++ b/apps/service/src/json-rpc/json-rpc.server.ts @@ -1,9 +1,9 @@ import { Injectable, Logger } from '@nestjs/common'; import { HttpAdapterHost, ModuleRef, ModulesContainer } from '@nestjs/core'; import { JSONRPCServer, SimpleJSONRPCMethod } from 'json-rpc-2.0'; -import { InstanceWrapper } from '@nestjs/core/injector/instance-wrapper'; -import { JsonRpcMetadataKey, JsonRpcMethodMetadataKey } from './json-rpc.decorators'; -import { JsonRpcConfig } from './json-rpc.module'; +import { InstanceWrapper } from '@nestjs/core/injector/instance-wrapper.js'; +import { JsonRpcMetadataKey, JsonRpcMethodMetadataKey } from './json-rpc.decorators.js'; +import { JsonRpcConfig } from './json-rpc.module.js'; class JsonRpcServerError extends Error { constructor(message: string) { diff --git a/apps/service/src/main.ts b/apps/service/src/main.ts index 4727a21b..4ad947aa 100644 --- a/apps/service/src/main.ts +++ b/apps/service/src/main.ts @@ -1,11 +1,13 @@ -import { NestFactory } from '@nestjs/core'; -import { AppModule } from './app.module'; import { Logger } from '@nestjs/common'; +import { NestFactory } from '@nestjs/core'; import { FastifyAdapter, NestFastifyApplication } from '@nestjs/platform-fastify'; +import { AppModule } from './app.module.js'; async function bootstrap() { const logger = new Logger('AppBootstrap'); - const app = await NestFactory.create(AppModule, new FastifyAdapter()); + const app = await NestFactory.create(AppModule, new FastifyAdapter(), { + cors: true, + }); await app.listen(3000, '0.0.0.0'); logger.log('Application is running on: http://0.0.0.0:3000'); } diff --git a/apps/service/src/rgbpp/rgbpp.module.ts b/apps/service/src/rgbpp/rgbpp.module.ts index bdfec8a5..8f32f93a 100644 --- a/apps/service/src/rgbpp/rgbpp.module.ts +++ b/apps/service/src/rgbpp/rgbpp.module.ts @@ -1,5 +1,5 @@ import { Module } from '@nestjs/common'; -import { RgbppService } from './rgbpp.service'; +import { RgbppService } from './rgbpp.service.js'; @Module({ imports: [], diff --git a/apps/service/src/rgbpp/rgbpp.service.ts b/apps/service/src/rgbpp/rgbpp.service.ts index 79f9ca96..c778e83f 100644 --- a/apps/service/src/rgbpp/rgbpp.service.ts +++ b/apps/service/src/rgbpp/rgbpp.service.ts @@ -1,10 +1,11 @@ import { Inject } from '@nestjs/common'; -import { DataSource } from 'rgbpp/btc'; +import { DataSource, NetworkType } from 'rgbpp/btc'; import { BtcAssetsApi, RgbppApiTransactionState } from 'rgbpp/service'; import { BTCTestnetType, Collector, Hex, append0x } from 'rgbpp/ckb'; import { buildRgbppTransferTx, buildRgbppTransferAllTxs } from 'rgbpp'; -import { RpcHandler, RpcMethodHandler } from 'src/json-rpc/json-rpc.decorators'; -import { toSnakeCase, toCamelCase, SnakeCased } from 'src/utils/case'; +import { RpcHandler, RpcMethodHandler } from '../json-rpc/json-rpc.decorators.js'; +import { toSnakeCase, toCamelCase, SnakeCased } from '../utils/case.js'; +import { ensureSafeJson } from '../utils/json.js'; import { RgbppTransferReq, RgbppCkbBtcTransaction, @@ -14,17 +15,21 @@ import { BtcTxSendReq, RgbppTransferAllReq, RgbppTransferAllRes, -} from './types'; +} from './types.js'; @RpcHandler() export class RgbppService { + private readonly btcDataSource: DataSource; + constructor( @Inject('IS_MAINNET') private isMainnet: boolean, - @Inject('BTC_TESTNET_TYPE') private btcTestnetType: BTCTestnetType, - @Inject('BTC_DATA_SOURCE') private btcDataSource: DataSource, - @Inject('BTC_ASSETS_API') private btcAssetsApi: BtcAssetsApi, @Inject('CKB_COLLECTOR') private ckbCollector: Collector, - ) {} + @Inject('BTC_ASSETS_API') private btcAssetsApi: BtcAssetsApi, + @Inject('BTC_TESTNET_TYPE') private btcTestnetType: BTCTestnetType, + ) { + const networkType = isMainnet ? NetworkType.MAINNET : NetworkType.TESTNET; + this.btcDataSource = new DataSource(btcAssetsApi, networkType); + } @RpcMethodHandler({ name: 'generate_rgbpp_transfer_tx' }) public async generateRgbppTransferTx(request: [RgbppTransferReq]): Promise> { @@ -58,7 +63,7 @@ export class RgbppService { ckb: { collector: this.ckbCollector, xudtTypeArgs: params.ckb.xudtTypeArgs, - feeRate: BigInt(append0x(params.ckb.feeRate)), + feeRate: params.ckb.feeRate ? BigInt(append0x(params.ckb.feeRate)) : undefined, }, btc: { assetAddresses: params.btc.assetAddresses, @@ -73,18 +78,20 @@ export class RgbppService { isMainnet: this.isMainnet, }); - return toSnakeCase({ - ...result, - transactions: result.transactions.map((group) => { - return { - ...group, - ckb: { - ...group.ckb, - virtualTxResult: JSON.stringify(group.ckb.virtualTxResult), - }, - }; + return ensureSafeJson>( + toSnakeCase({ + ...result, + transactions: result.transactions.map((group) => { + return { + ...group, + ckb: { + ...group.ckb, + virtualTxResult: JSON.stringify(group.ckb.virtualTxResult), + }, + }; + }), }), - }); + ); } @RpcMethodHandler({ name: 'report_rgbpp_ckb_tx_btc_txid' }) diff --git a/apps/service/src/utils/json.ts b/apps/service/src/utils/json.ts new file mode 100644 index 00000000..99202529 --- /dev/null +++ b/apps/service/src/utils/json.ts @@ -0,0 +1,28 @@ +import isPlainObject from 'lodash/isPlainObject.js'; + +export function ensureSafeJson(json: Input): Output { + if (!isPlainObject(json) && !Array.isArray(json)) { + return json as unknown as Output; + } + + const obj = Array.isArray(json) ? [] : {}; + for (let key of Object.keys(json)) { + const value = json[key]; + // XXX: Remove underscores from hex strings due to toSnakeCase() transformation issue + if (key.startsWith('0_x')) { + key = key.replaceAll('_', ''); + } + if (isPlainObject(value) || Array.isArray(value)) { + obj[key] = ensureSafeJson(value); + } else { + // XXX: Convert BigInt to hex string for JSON.stringify() compatibility + if (typeof value === 'bigint') { + obj[key] = `0x${value.toString(16)}`; + } else { + obj[key] = value; + } + } + } + + return obj as unknown as Output; +} diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 22ae7be6..05116178 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -71,12 +71,15 @@ importers: json-rpc-2.0: specifier: ^1.7.0 version: 1.7.0 + lodash: + specifier: ^4.17.21 + version: 4.17.21 reflect-metadata: specifier: ^0.2.0 version: 0.2.2 rgbpp: - specifier: 0.0.0-snap-20240813014620 - version: 0.0.0-snap-20240813014620(@ckb-lumos/lumos@0.22.0-next.5)(lodash@4.17.21) + specifier: 0.0.0-snap-20240813134030 + version: 0.0.0-snap-20240813134030(@ckb-lumos/lumos@0.22.0-next.5)(lodash@4.17.21) rxjs: specifier: ^7.8.1 version: 7.8.1 @@ -1346,14 +1349,14 @@ packages: resolution: {integrity: sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==} engines: {node: '>=14'} - '@rgbpp-sdk/btc@0.0.0-snap-20240813014620': - resolution: {integrity: sha512-T9nmegGrUf4wEfioX612Om1EYqL1QVPrldF3x2J18QtKlYW/Bli6eMOzDPeF0d8tAysgpCJEpkRtwoh/CRC8UA==} + '@rgbpp-sdk/btc@0.0.0-snap-20240813134030': + resolution: {integrity: sha512-LLG49/LevH03mcCcB/+f3Wjx+RQhCZ3BQCbvX0bDCMNboH5+R4I6bLMIvofiNfOBkJYYO6NBaJ2AqioaJyIFmg==} - '@rgbpp-sdk/ckb@0.0.0-snap-20240813014620': - resolution: {integrity: sha512-IE0+vQAaR1FdiUesdrOzLedAtgczChR7bPRiJkfufMGJMaPpPoimHdySqe1hkp8kyVRiIp8xL5BxyfAvl4dyrA==} + '@rgbpp-sdk/ckb@0.0.0-snap-20240813134030': + resolution: {integrity: sha512-xa0qeYIRryJDMcKGUXnHXYSb3lmybTk6H8It4h4PNpKQ1DK21tuTeXnC9MeWkFozE8K7qLVlkuVYvwTPn5kh7Q==} - '@rgbpp-sdk/service@0.0.0-snap-20240813014620': - resolution: {integrity: sha512-xyaJmU/DbdBCk3KoVAtJqMANHMa7fEkz9FKmFrogPPlQMpUwKbUoh2TLBkf0MMDBCoBcPAhtPxrMxH2CrKFoZw==} + '@rgbpp-sdk/service@0.0.0-snap-20240813134030': + resolution: {integrity: sha512-qiImHNGhshbO3JXlWW1VbBhY63uELcwhn0+/JnXZt50MF3A+BanTwZT7gZlNhhk9nN4CPiNnaCqGj/iI8FEYOg==} '@rollup/rollup-android-arm-eabi@4.19.0': resolution: {integrity: sha512-JlPfZ/C7yn5S5p0yKk7uhHTTnFlvTgLetl2VxqE518QgyM7C9bSfFTYvB/Q/ftkq0RIPY4ySxTz+/wKJ/dXC0w==} @@ -3686,8 +3689,8 @@ packages: rfdc@1.4.1: resolution: {integrity: sha512-q1b3N5QkRUWUl7iyylaaj3kOpIT0N2i9MqIEQXP73GVsN9cw3fdx8X63cEmWhJGi2PPCF23Ijp7ktmd39rawIA==} - rgbpp@0.0.0-snap-20240813014620: - resolution: {integrity: sha512-1jTgucS9QQAkFjH5xHWFvphU3ovM6/jOMbUAYqoN2IdfPNbrkxrbInewu5IgFQuEGNib47t0sFoFFTS0Q4A6cw==} + rgbpp@0.0.0-snap-20240813134030: + resolution: {integrity: sha512-idnzre1ESuiBLzy9c7cHtilb1g7GQY/wTSGpBl9Lv2DRX4F2w3duTRnrPwIX5gMfdaYGueHLzn/Y2xV+3lX42g==} rimraf@3.0.2: resolution: {integrity: sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==} @@ -5638,13 +5641,13 @@ snapshots: '@pkgjs/parseargs@0.11.0': optional: true - '@rgbpp-sdk/btc@0.0.0-snap-20240813014620(@ckb-lumos/lumos@0.22.0-next.5)': + '@rgbpp-sdk/btc@0.0.0-snap-20240813134030(@ckb-lumos/lumos@0.22.0-next.5)': dependencies: '@bitcoinerlab/secp256k1': 1.1.1 '@ckb-lumos/codec': 0.22.2 '@nervosnetwork/ckb-types': 0.109.2 - '@rgbpp-sdk/ckb': 0.0.0-snap-20240813014620(@ckb-lumos/lumos@0.22.0-next.5)(lodash@4.17.21) - '@rgbpp-sdk/service': 0.0.0-snap-20240813014620 + '@rgbpp-sdk/ckb': 0.0.0-snap-20240813134030(@ckb-lumos/lumos@0.22.0-next.5)(lodash@4.17.21) + '@rgbpp-sdk/service': 0.0.0-snap-20240813134030 bip32: 4.0.0 bitcoinjs-lib: 6.1.6 ecpair: 2.1.0 @@ -5654,7 +5657,7 @@ snapshots: - '@ckb-lumos/lumos' - debug - '@rgbpp-sdk/ckb@0.0.0-snap-20240813014620(@ckb-lumos/lumos@0.22.0-next.5)(lodash@4.17.21)': + '@rgbpp-sdk/ckb@0.0.0-snap-20240813134030(@ckb-lumos/lumos@0.22.0-next.5)(lodash@4.17.21)': dependencies: '@ckb-lumos/base': 0.22.2 '@ckb-lumos/codec': 0.22.2 @@ -5662,7 +5665,7 @@ snapshots: '@nervosnetwork/ckb-sdk-core': 0.109.2 '@nervosnetwork/ckb-sdk-utils': 0.109.2 '@nervosnetwork/ckb-types': 0.109.2 - '@rgbpp-sdk/service': 0.0.0-snap-20240813014620 + '@rgbpp-sdk/service': 0.0.0-snap-20240813134030 '@spore-sdk/core': 0.2.0(@ckb-lumos/lumos@0.22.0-next.5)(lodash@4.17.21) axios: 1.7.2 camelcase-keys: 7.0.2 @@ -5672,7 +5675,7 @@ snapshots: - debug - lodash - '@rgbpp-sdk/service@0.0.0-snap-20240813014620': + '@rgbpp-sdk/service@0.0.0-snap-20240813134030': dependencies: '@ckb-lumos/base': 0.22.2 '@ckb-lumos/codec': 0.22.2 @@ -8328,14 +8331,14 @@ snapshots: rfdc@1.4.1: {} - rgbpp@0.0.0-snap-20240813014620(@ckb-lumos/lumos@0.22.0-next.5)(lodash@4.17.21): + rgbpp@0.0.0-snap-20240813134030(@ckb-lumos/lumos@0.22.0-next.5)(lodash@4.17.21): dependencies: '@ckb-lumos/base': 0.22.2 '@ckb-lumos/codec': 0.22.2 '@nervosnetwork/ckb-sdk-utils': 0.109.2 - '@rgbpp-sdk/btc': 0.0.0-snap-20240813014620(@ckb-lumos/lumos@0.22.0-next.5) - '@rgbpp-sdk/ckb': 0.0.0-snap-20240813014620(@ckb-lumos/lumos@0.22.0-next.5)(lodash@4.17.21) - '@rgbpp-sdk/service': 0.0.0-snap-20240813014620 + '@rgbpp-sdk/btc': 0.0.0-snap-20240813134030(@ckb-lumos/lumos@0.22.0-next.5) + '@rgbpp-sdk/ckb': 0.0.0-snap-20240813134030(@ckb-lumos/lumos@0.22.0-next.5)(lodash@4.17.21) + '@rgbpp-sdk/service': 0.0.0-snap-20240813134030 transitivePeerDependencies: - '@ckb-lumos/lumos' - debug From 27bb01eeb0ed054661c047e95c9e1c92fc4fa791 Mon Sep 17 00:00:00 2001 From: Shook Date: Wed, 14 Aug 2024 22:51:04 +0800 Subject: [PATCH 3/4] refactor: reimplement case-handling utils in rgbpp-sdk-service, also add tests for the utils --- .github/workflows/test.yaml | 5 +- apps/service/package.json | 39 +- apps/service/src/utils/case.ts | 39 +- apps/service/src/utils/json.ts | 6 +- apps/service/tests/Utils.test.ts | 109 ++ apps/service/tsconfig.json | 7 +- apps/service/vitest.project.ts | 15 + package.json | 3 +- pnpm-lock.yaml | 2115 +++++------------------------- vitest.workspace.mts | 4 + 10 files changed, 496 insertions(+), 1846 deletions(-) create mode 100644 apps/service/tests/Utils.test.ts create mode 100644 apps/service/vitest.project.ts create mode 100644 vitest.workspace.mts diff --git a/.github/workflows/test.yaml b/.github/workflows/test.yaml index 4219abc8..d4663105 100644 --- a/.github/workflows/test.yaml +++ b/.github/workflows/test.yaml @@ -49,7 +49,7 @@ jobs: - name: Lint packages run: pnpm run lint - - name: Run tests for packages + - name: Run unit tests for the packages run: pnpm run test:packages env: VITE_CKB_NODE_URL: https://testnet.ckb.dev/rpc @@ -57,3 +57,6 @@ jobs: VITE_BTC_SERVICE_URL: https://btc-assets-api.testnet.mibao.pro VITE_BTC_SERVICE_TOKEN: ${{ secrets.TESTNET_SERVICE_TOKEN }} VITE_BTC_SERVICE_ORIGIN: https://btc-assets-api.testnet.mibao.pro + + - name: Run unit tests for the rgbpp-sdk-service + run: pnpm run test:service diff --git a/apps/service/package.json b/apps/service/package.json index 67942a85..7326ccec 100644 --- a/apps/service/package.json +++ b/apps/service/package.json @@ -1,10 +1,7 @@ { "name": "rgbpp-sdk-service", "version": "0.0.1", - "description": "", - "author": "", "private": true, - "license": "UNLICENSED", "type": "module", "scripts": { "build": "nest build", @@ -15,56 +12,40 @@ "start:debug": "nest start --debug --watch", "start:prod": "node dist/src/main", "lint": "eslint \"src/**/*.ts\" --fix", - "test": "jest", - "test:watch": "jest --watch", - "test:cov": "jest --coverage", - "test:debug": "node --inspect-brk -r tsconfig-paths/register -r ts-node/register node_modules/.bin/jest --runInBand", - "test:e2e": "jest --config ./test/jest-e2e.json" + "test": "vitest", + "test:watch": "vitest --watch", + "test:cov": "vitest run --coverage", + "test:debug": "vitest --inspect-brk --inspect --logHeapUsage --threads=false" }, "dependencies": { "@nestjs/common": "^10.0.0", "@nestjs/config": "^3.2.2", "@nestjs/core": "^10.3.9", "@nestjs/platform-fastify": "^10.3.9", - "convert-keys": "^1.3.4", + "camelcase-keys": "^7.0.2", "json-rpc-2.0": "^1.7.0", "lodash": "^4.17.21", "reflect-metadata": "^0.2.0", "rgbpp": "0.0.0-snap-20240813134030", "rxjs": "^7.8.1", + "snakecase-keys": "^8.0.1", "zod": "^3.23.8" }, "devDependencies": { "@nestjs/cli": "^10.0.0", "@nestjs/schematics": "^10.0.0", "@nestjs/testing": "^10.0.0", - "@types/jest": "^29.5.2", + "@swc/core": "^1.7.11", "@types/node": "^20.3.1", "@types/supertest": "^6.0.0", + "@vitest/coverage-v8": "^2.0.5", "source-map-support": "^0.5.21", "supertest": "^6.3.3", - "ts-jest": "^29.1.0", "ts-loader": "^9.4.3", "ts-node": "^10.9.1", "tsconfig-paths": "^4.2.0", "type-fest": "^4.24.0", - "typescript": "^5.1.3" - }, - "jest": { - "moduleFileExtensions": [ - "js", - "json", - "ts" - ], - "rootDir": "src", - "testRegex": ".*\\.spec\\.ts$", - "transform": { - "^.+\\.(t|j)s$": "ts-jest" - }, - "collectCoverageFrom": [ - "**/*.(t|j)s" - ], - "coverageDirectory": "../coverage", - "testEnvironment": "node" + "typescript": "^5.1.3", + "unplugin-swc": "^1.5.1" } } diff --git a/apps/service/src/utils/case.ts b/apps/service/src/utils/case.ts index c4ed4cfc..bf448f33 100644 --- a/apps/service/src/utils/case.ts +++ b/apps/service/src/utils/case.ts @@ -1,23 +1,26 @@ -import { SnakeCasedPropertiesDeep, CamelCasedPropertiesDeep } from 'type-fest'; -import { toSnake, toCamel } from 'convert-keys'; +import type { SnakeCasedPropertiesDeep, CamelCasedPropertiesDeep } from 'type-fest'; +import snakeCaseKeys from 'snakecase-keys'; +import camelCaseKeys from 'camelcase-keys'; export type SnakeCased = SnakeCasedPropertiesDeep; export type CamelCased = CamelCasedPropertiesDeep; -export const toSnakeCase = (obj: T): SnakeCased | null => { - try { - return toSnake(obj); - } catch (error) { - console.error(error); - } - return null; -}; +// This regex is used to exclude hex strings from being converted to snake_case or camelCase +// Because hex strings in object keys should be kept as is +const excludeHexRegex = /^0x.+/g; -export const toCamelCase = (obj: T): CamelCased | null => { - try { - return toCamel(obj); - } catch (error) { - console.error(error); - } - return null; -}; +export function toSnakeCase(obj: T, options?: snakeCaseKeys.Options): SnakeCased { + return snakeCaseKeys(obj as Record, { + exclude: [excludeHexRegex], + deep: true, + ...options, + }) as SnakeCased; +} + +export function toCamelCase(obj: T, options?: camelCaseKeys.Options): CamelCased { + return camelCaseKeys(obj as Record, { + exclude: [excludeHexRegex], + deep: true, + ...options, + }) as CamelCased; +} diff --git a/apps/service/src/utils/json.ts b/apps/service/src/utils/json.ts index 99202529..0d6a3f75 100644 --- a/apps/service/src/utils/json.ts +++ b/apps/service/src/utils/json.ts @@ -6,12 +6,8 @@ export function ensureSafeJson(json: Input } const obj = Array.isArray(json) ? [] : {}; - for (let key of Object.keys(json)) { + for (const key of Object.keys(json)) { const value = json[key]; - // XXX: Remove underscores from hex strings due to toSnakeCase() transformation issue - if (key.startsWith('0_x')) { - key = key.replaceAll('_', ''); - } if (isPlainObject(value) || Array.isArray(value)) { obj[key] = ensureSafeJson(value); } else { diff --git a/apps/service/tests/Utils.test.ts b/apps/service/tests/Utils.test.ts new file mode 100644 index 00000000..7fe472e9 --- /dev/null +++ b/apps/service/tests/Utils.test.ts @@ -0,0 +1,109 @@ +import { describe, it, expect } from 'vitest'; +import { ensureSafeJson } from '../src/utils/json'; +import { toSnakeCase, toCamelCase } from '../src/utils/case'; + +describe('Utils', () => { + it('toSnakeCase()', () => { + expect( + toSnakeCase({ + misterA: 1, + MisterB: 2, + mister_C: 3, + '0x06c1c265d475e69bac3b42f8deca5ac982efabfa640eff96a0f5d15345583e6e': 4, + }), + ).toStrictEqual({ + mister_a: 1, + mister_b: 2, + mister_c: 3, + '0x06c1c265d475e69bac3b42f8deca5ac982efabfa640eff96a0f5d15345583e6e': 4, + }); + expect( + toSnakeCase([ + { + misterA: 1, + MisterB: 2, + mister_C: 3, + '0x06c1c265d475e69bac3b42f8deca5ac982efabfa640eff96a0f5d15345583e6e': 4, + }, + ]), + ).toStrictEqual([ + { + mister_a: 1, + mister_b: 2, + mister_c: 3, + '0x06c1c265d475e69bac3b42f8deca5ac982efabfa640eff96a0f5d15345583e6e': 4, + }, + ]); + }); + it('toCamelCase()', () => { + expect( + toCamelCase({ + misterA: 1, + mister_b: 2, + MisterC: 3, + '0x06c1c265d475e69bac3b42f8deca5ac982efabfa640eff96a0f5d15345583e6e': 4, + }), + ).toStrictEqual({ + misterA: 1, + misterB: 2, + misterC: 3, + '0x06c1c265d475e69bac3b42f8deca5ac982efabfa640eff96a0f5d15345583e6e': 4, + }); + expect( + toCamelCase([ + { + misterA: 1, + mister_b: 2, + MisterC: 3, + '0x06c1c265d475e69bac3b42f8deca5ac982efabfa640eff96a0f5d15345583e6e': 4, + }, + ]), + ).toStrictEqual([ + { + misterA: 1, + misterB: 2, + misterC: 3, + '0x06c1c265d475e69bac3b42f8deca5ac982efabfa640eff96a0f5d15345583e6e': 4, + }, + ]); + }); + it('ensureSafeJson()', () => { + expect( + ensureSafeJson({ + number: 1, + boolean: true, + string: 'string', + object: { + number: 1, + bigint1: BigInt('0x64'), + }, + array: [ + { + number: 1, + bigint1: BigInt('0x64'), + }, + ], + bigint1: BigInt(100), + bigint2: BigInt('100'), + bigint3: BigInt('0x64'), + }), + ).toStrictEqual({ + number: 1, + boolean: true, + string: 'string', + object: { + number: 1, + bigint1: '0x64', + }, + array: [ + { + number: 1, + bigint1: '0x64', + }, + ], + bigint1: '0x64', + bigint2: '0x64', + bigint3: '0x64', + }); + }); +}); diff --git a/apps/service/tsconfig.json b/apps/service/tsconfig.json index 7e880a37..e7f19600 100644 --- a/apps/service/tsconfig.json +++ b/apps/service/tsconfig.json @@ -1,10 +1,10 @@ { "compilerOptions": { - "module": "NodeNext", + "module": "ESNext", "declaration": true, "resolveJsonModule": true, "removeComments": true, - "moduleResolution": "NodeNext", + "moduleResolution": "Bundler", "emitDecoratorMetadata": true, "experimentalDecorators": true, "allowSyntheticDefaultImports": true, @@ -19,5 +19,6 @@ "strictBindCallApply": false, "forceConsistentCasingInFileNames": false, "noFallthroughCasesInSwitch": false - } + }, + "exclude": ["dist"] } diff --git a/apps/service/vitest.project.ts b/apps/service/vitest.project.ts new file mode 100644 index 00000000..7c919f3c --- /dev/null +++ b/apps/service/vitest.project.ts @@ -0,0 +1,15 @@ +import swc from 'unplugin-swc'; +import { defineConfig } from 'vitest/config'; + +export default defineConfig({ + test: { + root: './', + }, + plugins: [ + // This is required to build the test files with SWC + swc.vite({ + // Explicitly set the module type to avoid inheriting this value from a `.swcrc` config file + module: { type: 'es6' }, + }), + ], +}); diff --git a/package.json b/package.json index 2eaba8ba..7db6eb11 100644 --- a/package.json +++ b/package.json @@ -7,8 +7,9 @@ "scripts": { "prepare": "husky", "build": "pnpm run --r --filter \"./{packages,apps,examples,tests}/**\" build", - "test:packages": "pnpm run --r --filter \"./packages/**\" test", "build:packages": "pnpm run --r --filter \"./packages/**\" build", + "test:packages": "pnpm run --r --filter \"./packages/**\" test", + "test:service": "pnpm run --r --filter=./apps/service test", "dev:service": "pnpm run --r --filter=./apps/service dev", "lint": "eslint {packages,apps,examples,tests}/**/*.ts && prettier --check '{packages,apps,examples,tests}/**/*.ts'", "lint:fix": "eslint --fix {packages,apps,examples,tests}/**/*.ts", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 05116178..60626cbf 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -40,7 +40,7 @@ importers: version: 3.3.3 tsup: specifier: ^8.1.0 - version: 8.2.3(postcss@8.4.39)(tsx@4.16.3)(typescript@5.5.3)(yaml@2.4.5) + version: 8.2.3(@swc/core@1.7.11)(postcss@8.4.39)(tsx@4.16.3)(typescript@5.5.3)(yaml@2.4.5) tsx: specifier: 4.16.3 version: 4.16.3 @@ -65,9 +65,9 @@ importers: '@nestjs/platform-fastify': specifier: ^10.3.9 version: 10.3.10(@nestjs/common@10.3.10(reflect-metadata@0.2.2)(rxjs@7.8.1))(@nestjs/core@10.3.10(@nestjs/common@10.3.10(reflect-metadata@0.2.2)(rxjs@7.8.1))(reflect-metadata@0.2.2)(rxjs@7.8.1)) - convert-keys: - specifier: ^1.3.4 - version: 1.3.4 + camelcase-keys: + specifier: ^7.0.2 + version: 7.0.2 json-rpc-2.0: specifier: ^1.7.0 version: 1.7.0 @@ -83,43 +83,46 @@ importers: rxjs: specifier: ^7.8.1 version: 7.8.1 + snakecase-keys: + specifier: ^8.0.1 + version: 8.0.1 zod: specifier: ^3.23.8 version: 3.23.8 devDependencies: '@nestjs/cli': specifier: ^10.0.0 - version: 10.4.2(esbuild@0.23.0) + version: 10.4.2(@swc/core@1.7.11)(esbuild@0.23.0) '@nestjs/schematics': specifier: ^10.0.0 version: 10.1.2(chokidar@3.6.0)(typescript@5.5.3) '@nestjs/testing': specifier: ^10.0.0 version: 10.3.10(@nestjs/common@10.3.10(reflect-metadata@0.2.2)(rxjs@7.8.1))(@nestjs/core@10.3.10(@nestjs/common@10.3.10(reflect-metadata@0.2.2)(rxjs@7.8.1))(reflect-metadata@0.2.2)(rxjs@7.8.1)) - '@types/jest': - specifier: ^29.5.2 - version: 29.5.12 + '@swc/core': + specifier: ^1.7.11 + version: 1.7.11 '@types/node': specifier: ^20.3.1 version: 20.14.11 '@types/supertest': specifier: ^6.0.0 version: 6.0.2 + '@vitest/coverage-v8': + specifier: ^2.0.5 + version: 2.0.5(vitest@2.0.5(@types/node@20.14.11)(terser@5.31.3)) source-map-support: specifier: ^0.5.21 version: 0.5.21 supertest: specifier: ^6.3.3 version: 6.3.4 - ts-jest: - specifier: ^29.1.0 - version: 29.2.3(@babel/core@7.24.9)(@jest/transform@29.7.0)(@jest/types@29.6.3)(babel-jest@29.7.0(@babel/core@7.24.9))(esbuild@0.23.0)(jest@29.7.0(@types/node@20.14.11)(ts-node@10.9.2(@types/node@20.14.11)(typescript@5.5.3)))(typescript@5.5.3) ts-loader: specifier: ^9.4.3 - version: 9.5.1(typescript@5.5.3)(webpack@5.92.1(esbuild@0.23.0)) + version: 9.5.1(typescript@5.5.3)(webpack@5.92.1(@swc/core@1.7.11)(esbuild@0.23.0)) ts-node: specifier: ^10.9.1 - version: 10.9.2(@types/node@20.14.11)(typescript@5.5.3) + version: 10.9.2(@swc/core@1.7.11)(@types/node@20.14.11)(typescript@5.5.3) tsconfig-paths: specifier: ^4.2.0 version: 4.2.0 @@ -129,6 +132,9 @@ importers: typescript: specifier: ^5.1.3 version: 5.5.3 + unplugin-swc: + specifier: ^1.5.1 + version: 1.5.1(@swc/core@1.7.11)(rollup@4.19.0) examples/rgbpp: dependencies: @@ -328,56 +334,6 @@ packages: resolution: {integrity: sha512-BcYH1CVJBO9tvyIZ2jVeXgSIMvGZ2FDRvDdOIVQyuklNKSsx+eppDEBq/g47Ayw+RqNFE+URvOShmf+f/qwAlA==} engines: {node: '>=6.9.0'} - '@babel/compat-data@7.24.9': - resolution: {integrity: sha512-e701mcfApCJqMMueQI0Fb68Amflj83+dvAvHawoBpAz+GDjCIyGHzNwnefjsWJ3xiYAqqiQFoWbspGYBdb2/ng==} - engines: {node: '>=6.9.0'} - - '@babel/core@7.24.9': - resolution: {integrity: sha512-5e3FI4Q3M3Pbr21+5xJwCv6ZT6KmGkI0vw3Tozy5ODAQFTIWe37iT8Cr7Ice2Ntb+M3iSKCEWMB1MBgKrW3whg==} - engines: {node: '>=6.9.0'} - - '@babel/generator@7.24.10': - resolution: {integrity: sha512-o9HBZL1G2129luEUlG1hB4N/nlYNWHnpwlND9eOMclRqqu1YDy2sSYVCFUZwl8I1Gxh+QSRrP2vD7EpUmFVXxg==} - engines: {node: '>=6.9.0'} - - '@babel/helper-compilation-targets@7.24.8': - resolution: {integrity: sha512-oU+UoqCHdp+nWVDkpldqIQL/i/bvAv53tRqLG/s+cOXxe66zOYLU7ar/Xs3LdmBihrUMEUhwu6dMZwbNOYDwvw==} - engines: {node: '>=6.9.0'} - - '@babel/helper-environment-visitor@7.24.7': - resolution: {integrity: sha512-DoiN84+4Gnd0ncbBOM9AZENV4a5ZiL39HYMyZJGZ/AZEykHYdJw0wW3kdcsh9/Kn+BRXHLkkklZ51ecPKmI1CQ==} - engines: {node: '>=6.9.0'} - - '@babel/helper-function-name@7.24.7': - resolution: {integrity: sha512-FyoJTsj/PEUWu1/TYRiXTIHc8lbw+TDYkZuoE43opPS5TrI7MyONBE1oNvfguEXAD9yhQRrVBnXdXzSLQl9XnA==} - engines: {node: '>=6.9.0'} - - '@babel/helper-hoist-variables@7.24.7': - resolution: {integrity: sha512-MJJwhkoGy5c4ehfoRyrJ/owKeMl19U54h27YYftT0o2teQ3FJ3nQUf/I3LlJsX4l3qlw7WRXUmiyajvHXoTubQ==} - engines: {node: '>=6.9.0'} - - '@babel/helper-module-imports@7.24.7': - resolution: {integrity: sha512-8AyH3C+74cgCVVXow/myrynrAGv+nTVg5vKu2nZph9x7RcRwzmh0VFallJuFTZ9mx6u4eSdXZfcOzSqTUm0HCA==} - engines: {node: '>=6.9.0'} - - '@babel/helper-module-transforms@7.24.9': - resolution: {integrity: sha512-oYbh+rtFKj/HwBQkFlUzvcybzklmVdVV3UU+mN7n2t/q3yGHbuVdNxyFvSBO1tfvjyArpHNcWMAzsSPdyI46hw==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0 - - '@babel/helper-plugin-utils@7.24.8': - resolution: {integrity: sha512-FFWx5142D8h2Mgr/iPVGH5G7w6jDn4jUSpZTyDnQO0Yn7Ks2Kuz6Pci8H6MPCoUJegd/UZQ3tAvfLCxQSnWWwg==} - engines: {node: '>=6.9.0'} - - '@babel/helper-simple-access@7.24.7': - resolution: {integrity: sha512-zBAIvbCMh5Ts+b86r/CjU+4XGYIs+R1j951gxI3KmmxBMhCg4oQMsv6ZXQ64XOm/cvzfU1FmoCyt6+owc5QMYg==} - engines: {node: '>=6.9.0'} - - '@babel/helper-split-export-declaration@7.24.7': - resolution: {integrity: sha512-oy5V7pD+UvfkEATUKvIjvIAH/xCzfsFVw7ygW2SI6NClZzquT+mwdTfgfdbUiceh6iQO0CHtCPsyze/MZ2YbAA==} - engines: {node: '>=6.9.0'} - '@babel/helper-string-parser@7.24.8': resolution: {integrity: sha512-pO9KhhRcuUyGnJWwyEgnRJTSIZHiT+vMD0kPeD+so0l7mxkMT19g3pjY9GTnHySck/hDzq+dtW/4VgnMkippsQ==} engines: {node: '>=6.9.0'} @@ -386,14 +342,6 @@ packages: resolution: {integrity: sha512-rR+PBcQ1SMQDDyF6X0wxtG8QyLCgUB0eRAGguqRLfkCA87l7yAP7ehq8SNj96OOGTO8OBV70KhuFYcIkHXOg0w==} engines: {node: '>=6.9.0'} - '@babel/helper-validator-option@7.24.8': - resolution: {integrity: sha512-xb8t9tD1MHLungh/AIoWYN+gVHaB9kwlu8gffXGSt3FFEIT7RjS+xWbc2vUD1UTZdIpKj/ab3rdqJ7ufngyi2Q==} - engines: {node: '>=6.9.0'} - - '@babel/helpers@7.24.8': - resolution: {integrity: sha512-gV2265Nkcz7weJJfvDoAEVzC1e2OTDpkGbEsebse8koXUJUXPsCMi7sRo/+SPMuMZ9MtUPnGwITTnQnU5YjyaQ==} - engines: {node: '>=6.9.0'} - '@babel/highlight@7.24.7': resolution: {integrity: sha512-EStJpq4OuY8xYfhGVXngigBJRWxftKX9ksiGDnmlY3o7B/V7KIAc9X4oiK87uPJSc/vs5L869bem5fhZa8caZw==} engines: {node: '>=6.9.0'} @@ -403,91 +351,10 @@ packages: engines: {node: '>=6.0.0'} hasBin: true - '@babel/plugin-syntax-async-generators@7.8.4': - resolution: {integrity: sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw==} - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@babel/plugin-syntax-bigint@7.8.3': - resolution: {integrity: sha512-wnTnFlG+YxQm3vDxpGE57Pj0srRU4sHE/mDkt1qv2YJJSeUAec2ma4WLUnUPeKjyrfntVwe/N6dCXpU+zL3Npg==} - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@babel/plugin-syntax-class-properties@7.12.13': - resolution: {integrity: sha512-fm4idjKla0YahUNgFNLCB0qySdsoPiZP3iQE3rky0mBUtMZ23yDJ9SJdg6dXTSDnulOVqiF3Hgr9nbXvXTQZYA==} - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@babel/plugin-syntax-import-meta@7.10.4': - resolution: {integrity: sha512-Yqfm+XDx0+Prh3VSeEQCPU81yC+JWZ2pDPFSS4ZdpfZhp4MkFMaDC1UqseovEKwSUpnIL7+vK+Clp7bfh0iD7g==} - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@babel/plugin-syntax-json-strings@7.8.3': - resolution: {integrity: sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA==} - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@babel/plugin-syntax-jsx@7.24.7': - resolution: {integrity: sha512-6ddciUPe/mpMnOKv/U+RSd2vvVy+Yw/JfBB0ZHYjEZt9NLHmCUylNYlsbqCCS1Bffjlb0fCwC9Vqz+sBz6PsiQ==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@babel/plugin-syntax-logical-assignment-operators@7.10.4': - resolution: {integrity: sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig==} - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@babel/plugin-syntax-nullish-coalescing-operator@7.8.3': - resolution: {integrity: sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ==} - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@babel/plugin-syntax-numeric-separator@7.10.4': - resolution: {integrity: sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug==} - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@babel/plugin-syntax-object-rest-spread@7.8.3': - resolution: {integrity: sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA==} - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@babel/plugin-syntax-optional-catch-binding@7.8.3': - resolution: {integrity: sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q==} - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@babel/plugin-syntax-optional-chaining@7.8.3': - resolution: {integrity: sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg==} - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@babel/plugin-syntax-top-level-await@7.14.5': - resolution: {integrity: sha512-hx++upLv5U1rgYfwe1xBQUhRmU41NEvpUvrp8jkrSCdvGSnM5/qdRMtylJ6PG5OFkBaHkbTAKTnd3/YyESRHFw==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@babel/plugin-syntax-typescript@7.24.7': - resolution: {integrity: sha512-c/+fVeJBB0FeKsFvwytYiUD+LBvhHjGSI0g446PRGdSVGZLRNArBUno2PETbAly3tpiNAQR5XaZ+JslxkotsbA==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - '@babel/runtime@7.24.8': resolution: {integrity: sha512-5F7SDGs1T72ZczbRwbGO9lQi0NLjQxzl6i4lJxLxfW9U5UluCSyEJeniWvnhl3/euNiqQVbo8zruhsDfid0esA==} engines: {node: '>=6.9.0'} - '@babel/template@7.24.7': - resolution: {integrity: sha512-jYqfPrU9JTF0PmPy1tLYHW4Mp4KlgxJD9l2nP9fD6yT/ICi554DmrWBAEYpIelzjHf1msDP3PxJIRt/nFNfBig==} - engines: {node: '>=6.9.0'} - - '@babel/traverse@7.24.8': - resolution: {integrity: sha512-t0P1xxAPzEDcEPmjprAQq19NWum4K0EQPjMwZQZbHt+GiZqvjCHjj755Weq1YRPVzBI+3zSfvScfpnuIecVFJQ==} - engines: {node: '>=6.9.0'} - '@babel/types@7.24.9': resolution: {integrity: sha512-xm8XrMKz0IlUdocVbYJe0Z9xEgidU7msskG8BbhnTPK/HZ2z/7FP7ykqPgrUH+C+r414mNfNWam1f2vqOjqjYQ==} engines: {node: '>=6.9.0'} @@ -1117,80 +984,10 @@ packages: resolution: {integrity: sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==} engines: {node: '>=12'} - '@istanbuljs/load-nyc-config@1.1.0': - resolution: {integrity: sha512-VjeHSlIzpv/NyD3N0YuHfXOPDIixcA1q2ZV98wsMqcYlPmv2n3Yb2lYP9XMElnaFVXg5A7YLTeLu6V84uQDjmQ==} - engines: {node: '>=8'} - '@istanbuljs/schema@0.1.3': resolution: {integrity: sha512-ZXRY4jNvVgSVQ8DL3LTcakaAtXwTVUxE81hslsyD2AtoXW/wVob10HkOJ1X/pAlcI7D+2YoZKg5do8G/w6RYgA==} engines: {node: '>=8'} - '@jest/console@29.7.0': - resolution: {integrity: sha512-5Ni4CU7XHQi32IJ398EEP4RrB8eV09sXP2ROqD4bksHrnTree52PsxvX8tpL8LvTZ3pFzXyPbNQReSN41CAhOg==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - - '@jest/core@29.7.0': - resolution: {integrity: sha512-n7aeXWKMnGtDA48y8TLWJPJmLmmZ642Ceo78cYWEpiD7FzDgmNDV/GCVRorPABdXLJZ/9wzzgZAlHjXjxDHGsg==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - peerDependencies: - node-notifier: ^8.0.1 || ^9.0.0 || ^10.0.0 - peerDependenciesMeta: - node-notifier: - optional: true - - '@jest/environment@29.7.0': - resolution: {integrity: sha512-aQIfHDq33ExsN4jP1NWGXhxgQ/wixs60gDiKO+XVMd8Mn0NWPWgc34ZQDTb2jKaUWQ7MuwoitXAsN2XVXNMpAw==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - - '@jest/expect-utils@29.7.0': - resolution: {integrity: sha512-GlsNBWiFQFCVi9QVSx7f5AgMeLxe9YCCs5PuP2O2LdjDAA8Jh9eX7lA1Jq/xdXw3Wb3hyvlFNfZIfcRetSzYcA==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - - '@jest/expect@29.7.0': - resolution: {integrity: sha512-8uMeAMycttpva3P1lBHB8VciS9V0XAr3GymPpipdyQXbBcuhkLQOSe8E/p92RyAdToS6ZD1tFkX+CkhoECE0dQ==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - - '@jest/fake-timers@29.7.0': - resolution: {integrity: sha512-q4DH1Ha4TTFPdxLsqDXK1d3+ioSL7yL5oCMJZgDYm6i+6CygW5E5xVr/D1HdsGxjt1ZWSfUAs9OxSB/BNelWrQ==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - - '@jest/globals@29.7.0': - resolution: {integrity: sha512-mpiz3dutLbkW2MNFubUGUEVLkTGiqW6yLVTA+JbP6fI6J5iL9Y0Nlg8k95pcF8ctKwCS7WVxteBs29hhfAotzQ==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - - '@jest/reporters@29.7.0': - resolution: {integrity: sha512-DApq0KJbJOEzAFYjHADNNxAE3KbhxQB1y5Kplb5Waqw6zVbuWatSnMjE5gs8FUgEPmNsnZA3NCWl9NG0ia04Pg==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - peerDependencies: - node-notifier: ^8.0.1 || ^9.0.0 || ^10.0.0 - peerDependenciesMeta: - node-notifier: - optional: true - - '@jest/schemas@29.6.3': - resolution: {integrity: sha512-mo5j5X+jIZmJQveBKeS/clAueipV7KgiX1vMgCxam1RNYiqE1w62n0/tJJnHtjW8ZHcQco5gY85jA3mi0L+nSA==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - - '@jest/source-map@29.6.3': - resolution: {integrity: sha512-MHjT95QuipcPrpLM+8JMSzFx6eHp5Bm+4XeFDJlwsvVBjmKNiIAvasGK2fxz2WbGRlnvqehFbh07MMa7n3YJnw==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - - '@jest/test-result@29.7.0': - resolution: {integrity: sha512-Fdx+tv6x1zlkJPcWXmMDAG2HBnaR9XPSd5aDWQVsfrZmLVT3lU1cwyxLgRmXR9yrq4NBoEm9BMsfgFzTQAbJYA==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - - '@jest/test-sequencer@29.7.0': - resolution: {integrity: sha512-GQwJ5WZVrKnOJuiYiAF52UNUJXgTZx1NHjFSEB0qEMmSZKAkdMoIzw/Cj6x6NF4AvV23AUqDpFzQkN/eYCYTxw==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - - '@jest/transform@29.7.0': - resolution: {integrity: sha512-ok/BTPFzFKVMwO5eOHRrvnBVHdRy9IrsrW1GpMaQ9MCnilNLXQKmAX8s1YXDFaai9xJpac2ySzV0YeRRECr2Vw==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - - '@jest/types@29.6.3': - resolution: {integrity: sha512-u3UPsIilWKOM3F9CXtrG8LEJmNxwoCQC/XVj4IKYXvvpx7QIi/Kg1LI5uDmDpKlac62NUtX7eLjRh+jVZcLOzw==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - '@jridgewell/gen-mapping@0.3.5': resolution: {integrity: sha512-IzL8ZoEDIBRWEzlCcRhOaCupYyN5gdIK+Q6fbFdPDg6HqX6jpkItn7DFIpW9LQzXG6Df9sA7+OKnq0qlz/GaQg==} engines: {node: '>=6.0.0'} @@ -1358,6 +1155,15 @@ packages: '@rgbpp-sdk/service@0.0.0-snap-20240813134030': resolution: {integrity: sha512-qiImHNGhshbO3JXlWW1VbBhY63uELcwhn0+/JnXZt50MF3A+BanTwZT7gZlNhhk9nN4CPiNnaCqGj/iI8FEYOg==} + '@rollup/pluginutils@5.1.0': + resolution: {integrity: sha512-XTIWOPPcpvyKI6L1NHo0lFlCyznUEyPmPY1mc3KpPVDYulHSTvyeLNVW00QTLIAFNhR3kYnJTQHeGqU4M3n09g==} + engines: {node: '>=14.0.0'} + peerDependencies: + rollup: ^1.20.0||^2.0.0||^3.0.0||^4.0.0 + peerDependenciesMeta: + rollup: + optional: true + '@rollup/rollup-android-arm-eabi@4.19.0': resolution: {integrity: sha512-JlPfZ/C7yn5S5p0yKk7uhHTTnFlvTgLetl2VxqE518QgyM7C9bSfFTYvB/Q/ftkq0RIPY4ySxTz+/wKJ/dXC0w==} cpu: [arm] @@ -1441,21 +1247,87 @@ packages: '@scure/base@1.1.7': resolution: {integrity: sha512-PPNYBslrLNNUQ/Yad37MHYsNQtK67EhWb6WtSvNLLPo7SdVZgkUjD6Dg+5On7zNwmskf8OX7I7Nx5oN+MIWE0g==} - '@sinclair/typebox@0.27.8': - resolution: {integrity: sha512-+Fj43pSMwJs4KRrH/938Uf+uAELIgVBmQzg/q1YG10djyfA3TnrU8N8XzqCh/okZdszqBQTZf96idMfE5lnwTA==} - - '@sinonjs/commons@3.0.1': - resolution: {integrity: sha512-K3mCHKQ9sVh8o1C9cxkwxaOmXoAMlDxC1mYyHrjqOWEcBjYr76t96zL2zlj5dUGZ3HSw240X1qgH3Mjf1yJWpQ==} - - '@sinonjs/fake-timers@10.3.0': - resolution: {integrity: sha512-V4BG07kuYSUkTCSBHG8G8TNhM+F19jXFWnQtzj+we8DrkpSBCee9Z3Ms8yiGer/dlmhe35/Xdgyo3/0rQKg7YA==} - '@spore-sdk/core@0.2.0': resolution: {integrity: sha512-UBxpY4bQlZtJecBQ9RaUg3aPHWAWYkEbEZUTwmY3jEBeqacOdwTJE7DzI7TaAV8wGydC9JeGBABIgABoScYPeA==} peerDependencies: '@ckb-lumos/lumos': 0.22.0-next.5 lodash: ^4.17.21 + '@swc/core-darwin-arm64@1.7.11': + resolution: {integrity: sha512-HRQv4qIeMBPThZ6Y/4yYW52rGsS6yrpusvuxLGyoFo45Y0y12/V2yXkOIA/0HIQyrqoUAxn1k4zQXpPaPNCmnw==} + engines: {node: '>=10'} + cpu: [arm64] + os: [darwin] + + '@swc/core-darwin-x64@1.7.11': + resolution: {integrity: sha512-vtMQj0F3oYwDu5yhO7SKDRg1XekRSi6/TbzHAbBXv+dBhlGGvcZZynT1H90EVFTv+7w7Sh+lOFvRv5Z4ZTcxow==} + engines: {node: '>=10'} + cpu: [x64] + os: [darwin] + + '@swc/core-linux-arm-gnueabihf@1.7.11': + resolution: {integrity: sha512-mHtzWKxhtyreI4CSxs+3+ENv8t/Qo35WFoYG66qHEgJz/Z2Lh6jv1E+MYgHdYwnpQHgHbdvAco7HsBu/Dt6xXw==} + engines: {node: '>=10'} + cpu: [arm] + os: [linux] + + '@swc/core-linux-arm64-gnu@1.7.11': + resolution: {integrity: sha512-FRwe/x0GfXSQjGP2lIk+NO0pUFS/lI/RorCLBPiK808EVE9JTbh9DKCc/4Bbb4jgScAjNkrFCUVObQYl3YKmpA==} + engines: {node: '>=10'} + cpu: [arm64] + os: [linux] + + '@swc/core-linux-arm64-musl@1.7.11': + resolution: {integrity: sha512-GY/rs0+GUq14Gbnza90KOrQd/9yHd5qQMii5jcSWcUCT5A8QTa8kiicsM2NxZeTJ69xlKmT7sLod5l99lki/2A==} + engines: {node: '>=10'} + cpu: [arm64] + os: [linux] + + '@swc/core-linux-x64-gnu@1.7.11': + resolution: {integrity: sha512-QDkGRwSPmp2RBOlSs503IUXlWYlny8DyznTT0QuK0ML2RpDFlXWU94K/EZhS0RBEUkMY/W51OacM8P8aS/dkCg==} + engines: {node: '>=10'} + cpu: [x64] + os: [linux] + + '@swc/core-linux-x64-musl@1.7.11': + resolution: {integrity: sha512-SBEfKrXy6zQ6ksnyxw1FaCftrIH4fLfA81xNnKb7x/6iblv7Ko6H0aK3P5C86jyqF/82+ONl9C7ImGkUFQADig==} + engines: {node: '>=10'} + cpu: [x64] + os: [linux] + + '@swc/core-win32-arm64-msvc@1.7.11': + resolution: {integrity: sha512-a2Y4xxEsLLYHJN7sMnw9+YQJDi3M1BxEr9hklfopPuGGnYLFNnx5CypH1l9ReijEfWjIAHNi7pq3m023lzW1Hg==} + engines: {node: '>=10'} + cpu: [arm64] + os: [win32] + + '@swc/core-win32-ia32-msvc@1.7.11': + resolution: {integrity: sha512-ZbZFMwZO+j8ulhegJ7EhJ/QVZPoQ5qc30ylJQSxizizTJaen71Q7/13lXWc6ksuCKvg6dUKrp/TPgoxOOtSrFA==} + engines: {node: '>=10'} + cpu: [ia32] + os: [win32] + + '@swc/core-win32-x64-msvc@1.7.11': + resolution: {integrity: sha512-IUohZedSJyDu/ReEBG/mqX6uG29uA7zZ9z6dIAF+p6eFxjXmh9MuHryyM+H8ebUyoq/Ad3rL+rUCksnuYNnI0w==} + engines: {node: '>=10'} + cpu: [x64] + os: [win32] + + '@swc/core@1.7.11': + resolution: {integrity: sha512-AB+qc45UrJrDfbhPKcUXk+9z/NmFfYYwJT6G7/iur0fCse9kXjx45gi40+u/O2zgarG/30/zV6E3ps8fUvjh7g==} + engines: {node: '>=10'} + peerDependencies: + '@swc/helpers': '*' + peerDependenciesMeta: + '@swc/helpers': + optional: true + + '@swc/counter@0.1.3': + resolution: {integrity: sha512-e2BR4lsJkkRlKZ/qCHPw9ZaSxc0MVUd7gtbtaB7aMvHeJVYe8sOB8DBZkP2DtISHGSku9sCK6T6cnY0CtXrOCQ==} + + '@swc/types@0.1.12': + resolution: {integrity: sha512-wBJA+SdtkbFhHjTMYH+dEH1y4VpfGdAc2Kw/LK09i9bXd/K6j6PkDcFCEzb6iVfZMkPRrl/q0e3toqTAJdkIVA==} + '@tsconfig/node10@1.0.11': resolution: {integrity: sha512-DcRjDCujK/kCk/cUe8Xz8ZSpm8mS3mNNpta+jGCA6USEDfktlNvm1+IuZ9eTcDbNk41BHwpHHeW+N1lKCz4zOw==} @@ -1468,18 +1340,6 @@ packages: '@tsconfig/node16@1.0.4': resolution: {integrity: sha512-vxhUy4J8lyeyinH7Azl1pdd43GJhZH/tP2weN8TntQblOY+A0XbT8DJk1/oCPuOOyg/Ja757rG0CgHcWC8OfMA==} - '@types/babel__core@7.20.5': - resolution: {integrity: sha512-qoQprZvz5wQFJwMDqeseRXWv3rqMvhgpbXFfVyWhbx9X47POIA6i/+dXefEmZKoAgOaTdaIgNSMqMIU61yRyzA==} - - '@types/babel__generator@7.6.8': - resolution: {integrity: sha512-ASsj+tpEDsEiFr1arWrlN6V3mdfjRMZt6LtK/Vp/kreFLnr5QH5+DhvD5nINYZXzwJvXeGq+05iUXcAzVrqWtw==} - - '@types/babel__template@7.4.4': - resolution: {integrity: sha512-h/NUaSyG5EyxBIp8YRxo4RMe2/qQgvyowRwVMzhYhBCONbW8PUsg4lkFMrhgZhUe5z3L3MiLDuvyJ/CaPa2A8A==} - - '@types/babel__traverse@7.20.6': - resolution: {integrity: sha512-r1bzfrm0tomOI8g1SzvCaQHo6Lcv6zu0EA+W2kHrt8dyrHQxGzBBL4kdkzIS+jBMV+EYcMAEAqXqYaLJq5rOZg==} - '@types/blake2b@2.1.3': resolution: {integrity: sha512-MFCdX0MNxFBP/xEILO5Td0kv6nI7+Q2iRWZbTL/yzH2/eDVZS5Wd1LHdsmXClvsCyzqaZfHFzZaN6BUeUCfSDA==} @@ -1505,21 +1365,6 @@ packages: '@types/fs-extra@11.0.4': resolution: {integrity: sha512-yTbItCNreRooED33qjunPthRcSjERP1r4MqCZc7wv0u2sUkzTFp45tgUfS5+r7FrZPdmCCNflLhVSP/o+SemsQ==} - '@types/graceful-fs@4.1.9': - resolution: {integrity: sha512-olP3sd1qOEe5dXTSaFvQG+02VdRXcdytWLAZsAq1PecU8uqQAhkrnbli7DagjtXKW/Bl7YJbUsa8MPcuc8LHEQ==} - - '@types/istanbul-lib-coverage@2.0.6': - resolution: {integrity: sha512-2QF/t/auWm0lsy8XtKVPG19v3sSOQlJe/YHZgfjb/KBBHOGSV+J2q/S671rcq9uTBrLAXmZpqJiaQbMT+zNU1w==} - - '@types/istanbul-lib-report@3.0.3': - resolution: {integrity: sha512-NQn7AHQnk/RSLOxrBbGyJM/aVQ+pjj5HCgasFxc0K/KhoATfQ/47AyUl15I2yBUpihjmas+a+VJBOqecrFH+uA==} - - '@types/istanbul-reports@3.0.4': - resolution: {integrity: sha512-pk2B1NWalF9toCRu6gjBzR69syFjP4Od8WRAX+0mmf9lAjCRicLOWc+ZrxZHx/0XRjotgkF9t6iaMJ+aXcOdZQ==} - - '@types/jest@29.5.12': - resolution: {integrity: sha512-eDC8bTvT/QhYdxJAulQikueigY5AsdBRH2yDKW3yveW7svY3+DzN84/2NUgkw10RTiJbWqZrTtoGVdYlvFJdLw==} - '@types/json-schema@7.0.15': resolution: {integrity: sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==} @@ -1550,21 +1395,12 @@ packages: '@types/semver@7.5.8': resolution: {integrity: sha512-I8EUhyrgfLrcTkzV3TSsGyl1tSuPrEDzr0yd5m90UgNxQkyDXULk3b6MlQqTCpZpNtWe1K0hzclnZkTcLBe2UQ==} - '@types/stack-utils@2.0.3': - resolution: {integrity: sha512-9aEbYZ3TbYMznPdcdr3SmIrLXwC/AKZXQeCf9Pgao5CKb8CyHuEX5jzWPTkvregvhRJHcpRO6BFoGW9ycaOkYw==} - '@types/superagent@8.1.7': resolution: {integrity: sha512-NmIsd0Yj4DDhftfWvvAku482PZum4DBW7U51OvS8gvOkDDY0WT1jsVyDV3hK+vplrsYw8oDwi9QxOM7U68iwww==} '@types/supertest@6.0.2': resolution: {integrity: sha512-137ypx2lk/wTQbW6An6safu9hXmajAifU/s7szAHLN/FeIm5w7yR0Wkl9fdJMRSHwOn4HLAI0DaB2TOORuhPDg==} - '@types/yargs-parser@21.0.3': - resolution: {integrity: sha512-I4q9QU9MQv4oEOz4tAHJtNz1cwuLxn2F3xcc2iV5WdqLPpUnj30aUuxt1mAxYTG+oe8CZMV/+6rU4S4gRDzqtQ==} - - '@types/yargs@17.0.32': - resolution: {integrity: sha512-xQ67Yc/laOG5uMfX/093MRlGGCIBzZMarVa+gfNKJxWAIgykYpVGkBdbqEzGDDfCrVUj6Hiff4mTZ5BA6TmAog==} - '@typescript-eslint/eslint-plugin@7.16.1': resolution: {integrity: sha512-SxdPak/5bO0EnGktV05+Hq8oatjAYVY3Zh2bye9pGZy6+jwyR3LG3YKkV4YatlsgqXP28BTeVm9pqwJM96vf2A==} engines: {node: ^18.18.0 || >=20.0.0} @@ -1626,6 +1462,11 @@ packages: '@ungap/structured-clone@1.2.0': resolution: {integrity: sha512-zuVdFrMJiuCDQUMCzQaD6KL28MjnqqN8XnAqiEq9PNm/hCPTSGfrXCOfwj1ow4LFb/tNymJPwsNbVePc1xFqrQ==} + '@vitest/coverage-v8@2.0.5': + resolution: {integrity: sha512-qeFcySCg5FLO2bHHSa0tAZAOnAUbp4L6/A5JDuj9+bt53JREl8hpLjLHEWF0e/gWc8INVpJaqA7+Ene2rclpZg==} + peerDependencies: + vitest: 2.0.5 + '@vitest/expect@2.0.5': resolution: {integrity: sha512-yHZtwuP7JZivj65Gxoi8upUN2OzHTi3zVfjwdpu2WrvCZPLwsJ2Ey5ILIPccoW23dd/zQBlJ4/dhi7DWNyXCpA==} @@ -1779,10 +1620,6 @@ packages: resolution: {integrity: sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==} engines: {node: '>=8'} - ansi-styles@5.2.0: - resolution: {integrity: sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==} - engines: {node: '>=10'} - ansi-styles@6.2.1: resolution: {integrity: sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==} engines: {node: '>=12'} @@ -1817,9 +1654,6 @@ packages: resolution: {integrity: sha512-Izi8RQcffqCeNVgFigKli1ssklIbpHnCYc6AknXGYoB6grJqyeby7jv12JUQgmTAnIDnbck1uxksT4dzN3PWBA==} engines: {node: '>=12'} - async@3.2.5: - resolution: {integrity: sha512-baNZyqaaLhyLVKm/DlvdW051MSgO6b8eVfIezl9E5PqWxFgzLm/wQntEW4zOytVburDEr0JlALEpdOFwvErLsg==} - asynckit@0.4.0: resolution: {integrity: sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==} @@ -1839,31 +1673,6 @@ packages: b4a@1.6.6: resolution: {integrity: sha512-5Tk1HLk6b6ctmjIkAcU/Ujv/1WqiDl0F0JdRCR80VsOcUlHcu7pWeWRlOqQLHfDEsVx9YH/aif5AG4ehoCtTmg==} - babel-jest@29.7.0: - resolution: {integrity: sha512-BrvGY3xZSwEcCzKvKsCi2GgHqDqsYkOP4/by5xCgIwGXQxIEh+8ew3gmrE1y7XRR6LHZIj6yLYnUi/mm2KXKBg==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - peerDependencies: - '@babel/core': ^7.8.0 - - babel-plugin-istanbul@6.1.1: - resolution: {integrity: sha512-Y1IQok9821cC9onCx5otgFfRm7Lm+I+wwxOx738M/WLPZ9Q42m4IG5W0FNX8WLL2gYMZo3JkuXIH2DOpWM+qwA==} - engines: {node: '>=8'} - - babel-plugin-jest-hoist@29.6.3: - resolution: {integrity: sha512-ESAc/RJvGTFEzRwOTT4+lNDk/GNHMkKbNzsvT0qKRfDyyYTskxB5rnU2njIDYVxXCBHHEI1c0YwHob3WaYujOg==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - - babel-preset-current-node-syntax@1.0.1: - resolution: {integrity: sha512-M7LQ0bxarkxQoN+vz5aJPsLBn77n8QgTFmo8WK0/44auK2xlCXrYcUxHFxgU7qW5Yzw/CjmLRK2uJzaCd7LvqQ==} - peerDependencies: - '@babel/core': ^7.0.0 - - babel-preset-jest@29.6.3: - resolution: {integrity: sha512-0B3bhxR6snWXJZtR/RliHTDPRgn1sNHOR0yVtq/IiQFyuOVjFS+wuio/R4gSNkyYmKmJB4wGZv2NZanmKmTnNA==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - peerDependencies: - '@babel/core': ^7.0.0 - balanced-match@1.0.2: resolution: {integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==} @@ -1932,10 +1741,6 @@ packages: engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7} hasBin: true - bs-logger@0.2.6: - resolution: {integrity: sha512-pd8DCoxmbgc7hyPKOvxtqNcjYoOsABPQdcCUjGp3d42VR2CX1ORhk2A87oqqu5R1kk+76nsxZupkmyd+MVtCog==} - engines: {node: '>= 6'} - bs58@4.0.1: resolution: {integrity: sha512-Ok3Wdf5vOIlBrgCvTq96gBkJw+JUEzdBgyaza5HLtPm7yTHkjRy8+JzNyHF7BHa0bNWOQIp3m5YF0nnFcOIKLw==} @@ -1948,9 +1753,6 @@ packages: bs58check@3.0.1: resolution: {integrity: sha512-hjuuJvoWEybo7Hn/0xOrczQKKEKD63WguEjlhLExYs2wUBcebDC1jDNK17eEAD2lYfw82d5ASC1d7K3SWszjaQ==} - bser@2.1.1: - resolution: {integrity: sha512-gQxTNE/GAfIIrmHLUE3oJyp5FO6HRBfhjnw4/wMmA63ZGDJnWBmgY/lyQBpnDUkGmAhbSe39tx2d/iTOAfglwQ==} - buffer-from@1.1.2: resolution: {integrity: sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==} @@ -1982,10 +1784,6 @@ packages: resolution: {integrity: sha512-Rjs1H+A9R+Ig+4E/9oyB66UC5Mj9Xq3N//vcLf2WzgdTi/3gUu3Z9KoqmlrEG4VuuLK8wJHofxzdQXz/knhiYg==} engines: {node: '>=12'} - camelcase@5.3.1: - resolution: {integrity: sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==} - engines: {node: '>=6'} - camelcase@6.3.0: resolution: {integrity: sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==} engines: {node: '>=10'} @@ -2009,10 +1807,6 @@ packages: resolution: {integrity: sha512-dLitG79d+GV1Nb/VYcCDFivJeK1hiukt9QjRNVOsUtTy1rR1YJsmpGGTZ3qJos+uw7WmWF4wUwBd9jxjocFC2w==} engines: {node: ^12.17.0 || ^14.13 || >=16.0.0} - char-regex@1.0.2: - resolution: {integrity: sha512-kWWXztvZ5SBQV+eRgKFeh8q5sLuZY2+8WUIzlxWVTg+oGwY14qylx1KbKzHd8P6ZYkAg0xyIDU9JMHhyJMZ1jw==} - engines: {node: '>=10'} - chardet@0.7.0: resolution: {integrity: sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA==} @@ -2035,9 +1829,6 @@ packages: cipher-base@1.0.4: resolution: {integrity: sha512-Kkht5ye6ZGmwv40uUDZztayT2ThLQGfnj/T71N/XzeZeo3nf8foyW7zGTsPYkEya3m5f3cAypH+qe7YOrM1U2Q==} - cjs-module-lexer@1.3.1: - resolution: {integrity: sha512-a3KdPAANPbNE4ZUv9h6LckSl9zLsYOP4MBmhIPkRaeyybt+r4UghLvq+xw/YwUcC1gqylCkL4rdVs3Lwupjm4Q==} - cli-cursor@3.1.0: resolution: {integrity: sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw==} engines: {node: '>=8'} @@ -2066,21 +1857,10 @@ packages: resolution: {integrity: sha512-ouuZd4/dm2Sw5Gmqy6bGyNNNe1qt9RpmxveLSO7KcgsTnU7RXfsw+/bukWGo1abgBiMAic068rclZsO4IWmmxQ==} engines: {node: '>= 12'} - cliui@8.0.1: - resolution: {integrity: sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==} - engines: {node: '>=12'} - clone@1.0.4: resolution: {integrity: sha512-JQHZ2QMW6l3aH/j6xCqQThY/9OH4D/9ls34cgkUBiEeocRTU04tHfKPBsUK1PqZCUQM7GiA0IIXJSuXHI64Kbg==} engines: {node: '>=0.8'} - co@4.6.0: - resolution: {integrity: sha512-QVb0dM5HvG+uaxitm8wONl7jltx8dqhfU33DcqtOZcLSVIKSDDLDi7+0LbAKiyI8hD9u42m2YxXSkMGWThaecQ==} - engines: {iojs: '>= 1.0.0', node: '>= 0.12.0'} - - collect-v8-coverage@1.0.2: - resolution: {integrity: sha512-lHl4d5/ONEbLlJvaJNtsF/Lz+WvB07u2ycqTYbdrq7UypDXailES4valYb2eWiJFxZlVmpGekfqoxQhzyFdT4Q==} - color-convert@1.9.3: resolution: {integrity: sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==} @@ -2129,12 +1909,6 @@ packages: resolution: {integrity: sha512-I5qxpzLv+sJhTVEoLYNcTW+bThDCPsit0vLNKShZx6rLtpilNpmmeTPaeqJb9ZE9dV3DGaeby6Vuhrw38WjeyQ==} engines: {node: ^14.18.0 || >=16.10.0} - convert-keys@1.3.4: - resolution: {integrity: sha512-+ltki+EUagotW/x7r+15nuHyk4nzcSkBk1lZpmbHjscF2E9ZmNErgV7K18LNshB0qglECcsnwy29ODlJ0pI0KA==} - - convert-source-map@2.0.0: - resolution: {integrity: sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==} - cookie@0.6.0: resolution: {integrity: sha512-U71cyTamuh1CRNCfpGY6to28lxvNwPG4Guz/EVjgf3Jmzv0vlDp1atT9eS5dDjMYHucpHbWns6Lwf3BKz6svdw==} engines: {node: '>= 0.6'} @@ -2157,11 +1931,6 @@ packages: create-hash@1.2.0: resolution: {integrity: sha512-z00bCGNHDG8mHAkP7CtT1qVu+bFQUPjYq/4Iv3C3kWjTFV10zIjfSoeqXo9Asws8gwSHDGj/hl2u4OGIjapeCg==} - create-jest@29.7.0: - resolution: {integrity: sha512-Adz2bdH0Vq3F53KEMJOoftQFutWCukm6J24wbPWRO4k1kMY7gS7ds/uoJkNuV8wDCtWWnuwGcJwpWcih+zEW1Q==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - hasBin: true - create-require@1.1.1: resolution: {integrity: sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ==} @@ -2187,14 +1956,6 @@ packages: supports-color: optional: true - dedent@1.5.3: - resolution: {integrity: sha512-NHQtfOOW68WD8lgypbLA5oT+Bt0xXJhiYvoR6SmmNXZfpzOGXwdKWmcwG8N7PwVVWV3eF/68nmD9BaJSsTBhyQ==} - peerDependencies: - babel-plugin-macros: ^3.1.0 - peerDependenciesMeta: - babel-plugin-macros: - optional: true - deep-eql@5.0.2: resolution: {integrity: sha512-h5k/5U50IJJFpzfL6nO9jaaumfjO/f2NjK/oYB2Djzm4p9L+3T9qWpZqZ2hAbLPuuYq9wrU08WQyBTL5GbPk5Q==} engines: {node: '>=6'} @@ -2224,17 +1985,9 @@ packages: resolution: {integrity: sha512-reYkTUJAZb9gUuZ2RvVCNhVHdg62RHnJ7WJl8ftMi4diZ6NWlciOzQN88pUhSELEwflJht4oQDv0F0BMlwaYtA==} engines: {node: '>=8'} - detect-newline@3.1.0: - resolution: {integrity: sha512-TLz+x/vEXm/Y7P7wn1EJFNLxYpUD4TgMosxY6fAVJUnJMbupHBOncxyWUG9OpTaH9EBD7uFI5LfEgmMOc54DsA==} - engines: {node: '>=8'} - dezalgo@1.0.4: resolution: {integrity: sha512-rXSP0bf+5n0Qonsb+SVVfNfIsimO4HEtmnIpPHY8Q1UCzKlQrDMfdobr8nJOOsRgWCyMRqeSBQzmWUMq7zvVig==} - diff-sequences@29.6.3: - resolution: {integrity: sha512-EjePK1srD3P08o2j4f0ExnylqRs5B9tJjcp9t1krH2qRi8CCdsYfwe9JgSLurFBWwq4uOlipzfk5fHNvwFKr8Q==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - diff@4.0.2: resolution: {integrity: sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A==} engines: {node: '>=0.3.1'} @@ -2250,6 +2003,9 @@ packages: resolution: {integrity: sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==} engines: {node: '>=6.0.0'} + dot-case@3.0.4: + resolution: {integrity: sha512-Kv5nKlh6yRrdrGvxeJ2e5y2eRUpkUosIW4A2AS38zwSz27zu7ufDwQPi5Jhs3XAlGNetl3bmnGhQsMtkKJnj3w==} + dotenv-expand@10.0.0: resolution: {integrity: sha512-GopVGCpVS1UKH75VKHGuQFqS1Gusej0z4FyQkPdwjil2gNIv+LNsqBlboOzpJFZKVT95GkCyWJbBSdFEFUWI2A==} engines: {node: '>=12'} @@ -2265,11 +2021,6 @@ packages: resolution: {integrity: sha512-cL/mh3MtJutFOvFc27GPZE2pWL3a3k4YvzUWEOvilnfZVlH3Jwgx/7d6tlD7/75tNk8TG2m+7Kgtz0SI1tWcqw==} engines: {node: '>=8.0.0'} - ejs@3.1.10: - resolution: {integrity: sha512-UeJmFfOrAQS8OJWPZ4qtgHyWExa088/MtK5UEyoJGFH67cDEXkZSviOiKRCZ4Xij0zxI3JECgYs3oKx+AizQBA==} - engines: {node: '>=0.10.0'} - hasBin: true - electron-to-chromium@1.4.832: resolution: {integrity: sha512-cTen3SB0H2SGU7x467NRe1eVcQgcuS6jckKfWJHia2eo0cHIGOqHoAxevIYZD4eRHcWjkvFzo93bi3vJ9W+1lA==} @@ -2279,10 +2030,6 @@ packages: elliptic@6.5.6: resolution: {integrity: sha512-mpzdtpeCLuS3BmE3pO3Cpp5bbjlOPY2Q0PgoF+Od1XZrHLYI28Xe3ossCmYCQt11FQKEYd9+PF8jymTvtWJSHQ==} - emittery@0.13.1: - resolution: {integrity: sha512-DeWwawk6r5yR9jFgnDKYt4sLS0LmHJJi3ZOnb5/JdbYwj3nW+FxQnHIjhBKz8YLC7oRNPVM9NQ47I3CVx34eqQ==} - engines: {node: '>=12'} - emoji-regex@10.3.0: resolution: {integrity: sha512-QpLs9D9v9kArv4lfDEgg1X/gN5XLnf/A6l9cs8SPZLRZR3ZkY9+kwIQTxm+fsSej5UMYGE8fdoaZVIBlqG0XTw==} @@ -2337,10 +2084,6 @@ packages: resolution: {integrity: sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==} engines: {node: '>=0.8.0'} - escape-string-regexp@2.0.0: - resolution: {integrity: sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w==} - engines: {node: '>=8'} - escape-string-regexp@4.0.0: resolution: {integrity: sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==} engines: {node: '>=10'} @@ -2387,6 +2130,9 @@ packages: resolution: {integrity: sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==} engines: {node: '>=4.0'} + estree-walker@2.0.2: + resolution: {integrity: sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==} + estree-walker@3.0.3: resolution: {integrity: sha512-7RUKfXgSMMkzt6ZuXmqapOurLGPPfgj6l9uRZ7lRGolvk0y2yocc35LdcxKC5PQZdn2DMqioAQ2NoWcrTKmm6g==} @@ -2413,14 +2159,6 @@ packages: resolution: {integrity: sha512-VyhnebXciFV2DESc+p6B+y0LjSm0krU4OgJN44qFAhBY0TJ+1V61tYD2+wHusZ6F9n5K+vl8k0sTy7PEfV4qpg==} engines: {node: '>=16.17'} - exit@0.1.2: - resolution: {integrity: sha512-Zk/eNKV2zbjpKzrsQ+n1G6poVbErQxJ0LBOJXaKZ1EViLzH+hrLu9cdXI4zw9dBQJslwBEpbQ2P1oS7nDxs6jQ==} - engines: {node: '>= 0.8.0'} - - expect@29.7.0: - resolution: {integrity: sha512-2Zks0hf1VLFYI1kbh0I5jP3KHHyCHpkfyHBzsSXRFgl/Bg9mWYfMW8oD+PdMPlEwy5HNsR9JutYy6pMeOh61nw==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - extendable-error@0.1.7: resolution: {integrity: sha512-UOiS2in6/Q0FK0R0q6UY9vYpQ21mr/Qn1KOnte7vsACuNJf514WvCCUHSRCPcgjPT2bAhNIJdlE6bVap1GKmeg==} @@ -2475,9 +2213,6 @@ packages: fastq@1.17.1: resolution: {integrity: sha512-sRVD3lWVIXWg6By68ZN7vho9a1pQcN/WBFaAAsDDFzlJjvoGx0P8z7V1t72grFJfJhu3YPZBuu25f7Kaw2jN1w==} - fb-watchman@2.0.2: - resolution: {integrity: sha512-p5161BqbuCaSnB8jIbzQHOlpgsPmK5rJVDfDKO91Axs5NC1uu3HRQm6wt9cd9/+GtQQIO53JdGXXoyDpTAsgYA==} - figures@3.2.0: resolution: {integrity: sha512-yaduQFRKLXYOGgEn6AZau90j3ggSOyiqXU0F9JZfeXYhNa+Jk4X+s45A2zg5jns87GAFa34BBm2kXw4XpNcbdg==} engines: {node: '>=8'} @@ -2486,9 +2221,6 @@ packages: resolution: {integrity: sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==} engines: {node: ^10.12.0 || >=12.0.0} - filelist@1.0.4: - resolution: {integrity: sha512-w1cEuf3S+DrLCQL7ET6kz+gmlJdbq9J7yXCSjK/OZCPA+qEN1WyF4ZAf0YYJa4/shHJra2t/d/r8SV4Ji+x+8Q==} - fill-range@7.1.1: resolution: {integrity: sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==} engines: {node: '>=8'} @@ -2572,14 +2304,6 @@ packages: function-bind@1.1.2: resolution: {integrity: sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==} - gensync@1.0.0-beta.2: - resolution: {integrity: sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==} - engines: {node: '>=6.9.0'} - - get-caller-file@2.0.5: - resolution: {integrity: sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==} - engines: {node: 6.* || 8.* || >= 10.*} - get-east-asian-width@1.2.0: resolution: {integrity: sha512-2nk+7SIVb14QrgXFHcm84tD4bKQz0RxPuMT8Ag5KPOq7J5fEmAg0UbXdTOSHqNuHSU28k55qnceesxXRZGzKWA==} engines: {node: '>=18'} @@ -2591,10 +2315,6 @@ packages: resolution: {integrity: sha512-5uYhsJH8VJBTv7oslg4BznJYhDoRI6waYCxMmCdnTrcCrHA/fCFKoTFz2JKKE0HdDFUF7/oQuhzumXJK7paBRQ==} engines: {node: '>= 0.4'} - get-package-type@0.1.0: - resolution: {integrity: sha512-pjzuKtY64GYfWizNAJ0fr9VqttZkNiK2iS430LtIHzjBEr6bX8Am2zm4sW4Ro5wjWW5cAlRL1qAMTcXbjNAO2Q==} - engines: {node: '>=8.0.0'} - get-stream@6.0.1: resolution: {integrity: sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==} engines: {node: '>=10'} @@ -2630,10 +2350,6 @@ packages: resolution: {integrity: sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==} deprecated: Glob versions prior to v9 are no longer supported - globals@11.12.0: - resolution: {integrity: sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==} - engines: {node: '>=4'} - globals@13.24.0: resolution: {integrity: sha512-AhO5QUcj8llrbG09iWhPU2B204J1xnPeL8kQmVorSsy+Sjj1sk8gIyh6cUocGmH4L0UuhAJy+hJMRA4mgA4mFQ==} engines: {node: '>=8'} @@ -2729,11 +2445,6 @@ packages: resolution: {integrity: sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==} engines: {node: '>=6'} - import-local@3.2.0: - resolution: {integrity: sha512-2SPlun1JUPWoM6t3F0dw0FkCF/jWY8kttcY4f599GLTSjh2OCuuhdTkJQsEcZzBqbXZGKMK2OqW1oZsjtf/gQA==} - engines: {node: '>=8'} - hasBin: true - imurmurhash@0.1.4: resolution: {integrity: sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==} engines: {node: '>=0.8.19'} @@ -2764,10 +2475,6 @@ packages: resolution: {integrity: sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==} engines: {node: '>=8'} - is-core-module@2.15.0: - resolution: {integrity: sha512-Dd+Lb2/zvk9SKy1TGCt1wFJFo/MWBPMX5x7KcvLajWTGuomczdQX61PvY5yK6SVACwpoexWo81IfFyoKY2QnTA==} - engines: {node: '>= 0.4'} - is-extglob@2.1.1: resolution: {integrity: sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==} engines: {node: '>=0.10.0'} @@ -2784,10 +2491,6 @@ packages: resolution: {integrity: sha512-OVa3u9kkBbw7b8Xw5F9P+D/T9X+Z4+JruYVNapTjPYZYUznQ5YfWeFkOj606XYYW8yugTfC8Pj0hYqvi4ryAhA==} engines: {node: '>=18'} - is-generator-fn@2.1.0: - resolution: {integrity: sha512-cTIB4yPYL/Grw0EaSzASzg6bBy9gqCofvWN8okThAYIxKJZC+udlRAmGbM0XLeniEJSs8uEgHPGuHSe1XsOLSQ==} - engines: {node: '>=6'} - is-glob@4.0.3: resolution: {integrity: sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==} engines: {node: '>=0.10.0'} @@ -2838,20 +2541,12 @@ packages: resolution: {integrity: sha512-O8dpsF+r0WV/8MNRKfnmrtCWhuKjxrq2w+jpzBL5UZKTi2LeVWnWOmWRxFlesJONmc+wLAGvKQZEOanko0LFTg==} engines: {node: '>=8'} - istanbul-lib-instrument@5.2.1: - resolution: {integrity: sha512-pzqtp31nLv/XFOzXGuvhCb8qhjmTVo5vjVk19XE4CRlSWz0KoeJ3bw9XsA7nOp9YBf4qHjwBxkDzKcME/J29Yg==} - engines: {node: '>=8'} - - istanbul-lib-instrument@6.0.3: - resolution: {integrity: sha512-Vtgk7L/R2JHyyGW07spoFlB8/lpjiOLTjMdms6AFMraYt3BaJauod/NGrfnVG/y4Ix1JEuMRPDPEj2ua+zz1/Q==} - engines: {node: '>=10'} - istanbul-lib-report@3.0.1: resolution: {integrity: sha512-GCfE1mtsHGOELCU8e/Z7YWzpmybrx/+dSTfLrvY8qRmaY6zXTKWn6WQIjaAFw069icm6GVMNkgu0NzI4iPZUNw==} engines: {node: '>=10'} - istanbul-lib-source-maps@4.0.1: - resolution: {integrity: sha512-n3s8EwkdFIJCG3BPKBYvskgXGoy88ARzvegkitk60NxRdwltLOTaH7CUiMRXvwYorl0Q712iEjcWB+fK/MrWVw==} + istanbul-lib-source-maps@5.0.6: + resolution: {integrity: sha512-yg2d+Em4KizZC5niWhQaIomgf5WlL4vOOjZ5xGCmF8SnPE/mDWWXgvRExdcpCgh9lLRRa1/fSYp2ymmbJ1pI+A==} engines: {node: '>=10'} istanbul-reports@3.1.7: @@ -2865,165 +2560,31 @@ packages: jackspeak@3.4.3: resolution: {integrity: sha512-OGlZQpz2yfahA/Rd1Y8Cd9SIEsqvXkLVoSw/cgwhnhFMDbsQFeZYoJJ7bIZBS9BcamUW96asq/npPWugM+RQBw==} - jake@10.9.2: - resolution: {integrity: sha512-2P4SQ0HrLQ+fw6llpLnOaGAvN2Zu6778SJMrCUwns4fOoG9ayrTiZk3VV8sCPkVZF8ab0zksVpS8FDY5pRCNBA==} + jest-worker@27.5.1: + resolution: {integrity: sha512-7vuh85V5cdDofPyxn58nrPjBktZo0u9x1g8WtjQol+jZDaE+fhN+cIvTj11GndBnMnyfrUOG1sZQxCdjKh+DKg==} + engines: {node: '>= 10.13.0'} + + joycon@3.1.1: + resolution: {integrity: sha512-34wB/Y7MW7bzjKRjUKTa46I2Z7eV62Rkhva+KkopW7Qvv/OSWBqvkSY7vusOPrNuZcUG3tApvdVgNB8POj3SPw==} engines: {node: '>=10'} - hasBin: true - jest-changed-files@29.7.0: - resolution: {integrity: sha512-fEArFiwf1BpQ+4bXSprcDc3/x4HSzL4al2tozwVpDFpsxALjLYdyiIK4e5Vz66GQJIbXJ82+35PtysofptNX2w==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + js-sha256@0.11.0: + resolution: {integrity: sha512-6xNlKayMZvds9h1Y1VWc0fQHQ82BxTXizWPEtEeGvmOUYpBRy4gbWroHLpzowe6xiQhHpelCQiE7HEdznyBL9Q==} + + js-tokens@4.0.0: + resolution: {integrity: sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==} - jest-circus@29.7.0: - resolution: {integrity: sha512-3E1nCMgipcTkCocFwM90XXQab9bS+GMsjdpmPrlelaxwD93Ad8iVEjX/vvHPdLPnFf+L40u+5+iutRdA1N9myw==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + js-xxhash@1.0.4: + resolution: {integrity: sha512-S/6Oo7ruxx5k8m4qlMnbpwQdJjRsvvfcIhIk1dA9c5y5GNhYHKYKu9krEK3QgBax6CxJuf4gRL2opgLkdzWIKg==} + engines: {node: '>=8.0.0'} - jest-cli@29.7.0: - resolution: {integrity: sha512-OVVobw2IubN/GSYsxETi+gOe7Ka59EFMR/twOU3Jb2GnKKeMGJB5SGUUrEz3SFVmJASUdZUzy83sLNNQ2gZslg==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + js-yaml@3.14.1: + resolution: {integrity: sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==} hasBin: true - peerDependencies: - node-notifier: ^8.0.1 || ^9.0.0 || ^10.0.0 - peerDependenciesMeta: - node-notifier: - optional: true - jest-config@29.7.0: - resolution: {integrity: sha512-uXbpfeQ7R6TZBqI3/TxCU4q4ttk3u0PJeC+E0zbfSoSjq6bJ7buBPxzQPL0ifrkY4DNu4JUdk0ImlBUYi840eQ==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - peerDependencies: - '@types/node': '*' - ts-node: '>=9.0.0' - peerDependenciesMeta: - '@types/node': - optional: true - ts-node: - optional: true - - jest-diff@29.7.0: - resolution: {integrity: sha512-LMIgiIrhigmPrs03JHpxUh2yISK3vLFPkAodPeo0+BuF7wA2FoQbkEg1u8gBYBThncu7e1oEDUfIXVuTqLRUjw==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - - jest-docblock@29.7.0: - resolution: {integrity: sha512-q617Auw3A612guyaFgsbFeYpNP5t2aoUNLwBUbc/0kD1R4t9ixDbyFTHd1nok4epoVFpr7PmeWHrhvuV3XaJ4g==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - - jest-each@29.7.0: - resolution: {integrity: sha512-gns+Er14+ZrEoC5fhOfYCY1LOHHr0TI+rQUHZS8Ttw2l7gl+80eHc/gFf2Ktkw0+SIACDTeWvpFcv3B04VembQ==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - - jest-environment-node@29.7.0: - resolution: {integrity: sha512-DOSwCRqXirTOyheM+4d5YZOrWcdu0LNZ87ewUoywbcb2XR4wKgqiG8vNeYwhjFMbEkfju7wx2GYH0P2gevGvFw==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - - jest-get-type@29.6.3: - resolution: {integrity: sha512-zrteXnqYxfQh7l5FHyL38jL39di8H8rHoecLH3JNxH3BwOrBsNeabdap5e0I23lD4HHI8W5VFBZqG4Eaq5LNcw==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - - jest-haste-map@29.7.0: - resolution: {integrity: sha512-fP8u2pyfqx0K1rGn1R9pyE0/KTn+G7PxktWidOBTqFPLYX0b9ksaMFkhK5vrS3DVun09pckLdlx90QthlW7AmA==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - - jest-leak-detector@29.7.0: - resolution: {integrity: sha512-kYA8IJcSYtST2BY9I+SMC32nDpBT3J2NvWJx8+JCuCdl/CR1I4EKUJROiP8XtCcxqgTTBGJNdbB1A8XRKbTetw==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - - jest-matcher-utils@29.7.0: - resolution: {integrity: sha512-sBkD+Xi9DtcChsI3L3u0+N0opgPYnCRPtGcQYrgXmR+hmt/fYfWAL0xRXYU8eWOdfuLgBe0YCW3AFtnRLagq/g==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - - jest-message-util@29.7.0: - resolution: {integrity: sha512-GBEV4GRADeP+qtB2+6u61stea8mGcOT4mCtrYISZwfu9/ISHFJ/5zOMXYbpBE9RsS5+Gb63DW4FgmnKJ79Kf6w==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - - jest-mock@29.7.0: - resolution: {integrity: sha512-ITOMZn+UkYS4ZFh83xYAOzWStloNzJFO2s8DWrE4lhtGD+AorgnbkiKERe4wQVBydIGPx059g6riW5Btp6Llnw==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - - jest-pnp-resolver@1.2.3: - resolution: {integrity: sha512-+3NpwQEnRoIBtx4fyhblQDPgJI0H1IEIkX7ShLUjPGA7TtUTvI1oiKi3SR4oBR0hQhQR80l4WAe5RrXBwWMA8w==} - engines: {node: '>=6'} - peerDependencies: - jest-resolve: '*' - peerDependenciesMeta: - jest-resolve: - optional: true - - jest-regex-util@29.6.3: - resolution: {integrity: sha512-KJJBsRCyyLNWCNBOvZyRDnAIfUiRJ8v+hOBQYGn8gDyF3UegwiP4gwRR3/SDa42g1YbVycTidUF3rKjyLFDWbg==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - - jest-resolve-dependencies@29.7.0: - resolution: {integrity: sha512-un0zD/6qxJ+S0et7WxeI3H5XSe9lTBBR7bOHCHXkKR6luG5mwDDlIzVQ0V5cZCuoTgEdcdwzTghYkTWfubi+nA==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - - jest-resolve@29.7.0: - resolution: {integrity: sha512-IOVhZSrg+UvVAshDSDtHyFCCBUl/Q3AAJv8iZ6ZjnZ74xzvwuzLXid9IIIPgTnY62SJjfuupMKZsZQRsCvxEgA==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - - jest-runner@29.7.0: - resolution: {integrity: sha512-fsc4N6cPCAahybGBfTRcq5wFR6fpLznMg47sY5aDpsoejOcVYFb07AHuSnR0liMcPTgBsA3ZJL6kFOjPdoNipQ==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - - jest-runtime@29.7.0: - resolution: {integrity: sha512-gUnLjgwdGqW7B4LvOIkbKs9WGbn+QLqRQQ9juC6HndeDiezIwhDP+mhMwHWCEcfQ5RUXa6OPnFF8BJh5xegwwQ==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - - jest-snapshot@29.7.0: - resolution: {integrity: sha512-Rm0BMWtxBcioHr1/OX5YCP8Uov4riHvKPknOGs804Zg9JGZgmIBkbtlxJC/7Z4msKYVbIJtfU+tKb8xlYNfdkw==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - - jest-util@29.7.0: - resolution: {integrity: sha512-z6EbKajIpqGKU56y5KBUgy1dt1ihhQJgWzUlZHArA/+X2ad7Cb5iF+AK1EWVL/Bo7Rz9uurpqw6SiBCefUbCGA==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - - jest-validate@29.7.0: - resolution: {integrity: sha512-ZB7wHqaRGVw/9hST/OuFUReG7M8vKeq0/J2egIGLdvjHCmYqGARhzXmtgi+gVeZ5uXFF219aOc3Ls2yLg27tkw==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - - jest-watcher@29.7.0: - resolution: {integrity: sha512-49Fg7WXkU3Vl2h6LbLtMQ/HyB6rXSIX7SqvBLQmssRBGN9I0PNvPmAmCWSOY6SOvrjhI/F7/bGAv9RtnsPA03g==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - - jest-worker@27.5.1: - resolution: {integrity: sha512-7vuh85V5cdDofPyxn58nrPjBktZo0u9x1g8WtjQol+jZDaE+fhN+cIvTj11GndBnMnyfrUOG1sZQxCdjKh+DKg==} - engines: {node: '>= 10.13.0'} - - jest-worker@29.7.0: - resolution: {integrity: sha512-eIz2msL/EzL9UFTFFx7jBTkeZfku0yUAyZZZmJ93H2TYEiroIx2PQjEXcwYtYl8zXCxb+PAmA2hLIt/6ZEkPHw==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - - jest@29.7.0: - resolution: {integrity: sha512-NIy3oAFp9shda19hy4HK0HRTWKtPJmGdnvywu01nOqNC2vZg+Z+fvJDxpMQA88eb2I9EcafcdjYgsDthnYTvGw==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - hasBin: true - peerDependencies: - node-notifier: ^8.0.1 || ^9.0.0 || ^10.0.0 - peerDependenciesMeta: - node-notifier: - optional: true - - joycon@3.1.1: - resolution: {integrity: sha512-34wB/Y7MW7bzjKRjUKTa46I2Z7eV62Rkhva+KkopW7Qvv/OSWBqvkSY7vusOPrNuZcUG3tApvdVgNB8POj3SPw==} - engines: {node: '>=10'} - - js-sha256@0.11.0: - resolution: {integrity: sha512-6xNlKayMZvds9h1Y1VWc0fQHQ82BxTXizWPEtEeGvmOUYpBRy4gbWroHLpzowe6xiQhHpelCQiE7HEdznyBL9Q==} - - js-tokens@4.0.0: - resolution: {integrity: sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==} - - js-xxhash@1.0.4: - resolution: {integrity: sha512-S/6Oo7ruxx5k8m4qlMnbpwQdJjRsvvfcIhIk1dA9c5y5GNhYHKYKu9krEK3QgBax6CxJuf4gRL2opgLkdzWIKg==} - engines: {node: '>=8.0.0'} - - js-yaml@3.14.1: - resolution: {integrity: sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==} - hasBin: true - - js-yaml@4.1.0: - resolution: {integrity: sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==} - hasBin: true + js-yaml@4.1.0: + resolution: {integrity: sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==} + hasBin: true jsbi@3.1.3: resolution: {integrity: sha512-nBJqA0C6Qns+ZxurbEoIR56wyjiUszpNy70FHvxO5ervMoCbZVE3z3kxr5nKGhlxr/9MhKTSUBs7cAwwuf3g9w==} @@ -3031,11 +2592,6 @@ packages: jsbi@4.3.0: resolution: {integrity: sha512-SnZNcinB4RIcnEyZqFPdGPVgrg2AcnykiBy0sHVJQKHYeaLUvi3Exj+iaPpLnFVkDPZIV4U0yvgC9/R4uEAZ9g==} - jsesc@2.5.2: - resolution: {integrity: sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==} - engines: {node: '>=4'} - hasBin: true - json-buffer@3.0.1: resolution: {integrity: sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==} @@ -3077,14 +2633,6 @@ packages: keyv@4.5.4: resolution: {integrity: sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==} - kleur@3.0.3: - resolution: {integrity: sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w==} - engines: {node: '>=6'} - - leven@3.1.0: - resolution: {integrity: sha512-qsda+H8jTaUaN/x5vzW2rzc+8Rw4TAQ/4KjB46IwK5VH+IlVeeeje/EoZRpiXvIqjFgK84QffqPztGI3VBLG1A==} - engines: {node: '>=6'} - levn@0.4.1: resolution: {integrity: sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==} engines: {node: '>= 0.8.0'} @@ -3128,27 +2676,12 @@ packages: resolution: {integrity: sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==} engines: {node: '>=10'} - lodash.camelcase@4.3.0: - resolution: {integrity: sha512-TwuEnCnxbc3rAvhf/LbG7tJUDzhqXyFnv3dtzLOPgCG/hODL7WFnsbwktkD7yUV0RrreP/l1PALq/YSg6VvjlA==} - - lodash.forown@4.4.0: - resolution: {integrity: sha512-xcpca6BCshoe5SFSrQOoV8FBEbNzcBa6QQYmtv48eEFNzdwQLkHkcWSaBlecHhyHb1BUk1xqFdXoiSLJkt/w5w==} - lodash.isequal@4.5.0: resolution: {integrity: sha512-pDo3lu8Jhfjqls6GkMgpahsF9kCyayhgykjyLMNFTKWrpVdAQtYyB4muAMWozBB4ig/dtWAmsMxLEI8wuz+DYQ==} - lodash.isplainobject@4.0.6: - resolution: {integrity: sha512-oSXzaWypCMHkPC3NvBEaPHf0KsA5mvPrOPgQWDsbg8n7orZ290M0BmC/jgRZ4vcJ6DTAhjrsSYgdsW/F+MFOBA==} - - lodash.memoize@4.1.2: - resolution: {integrity: sha512-t7j+NzmgnQzTAYXcsHYLgimltOV1MXHtlOWf6GjL9Kj8GK5FInw5JotxvbOs+IvV1/Dzo04/fCGfLVs7aXb4Ag==} - lodash.merge@4.6.2: resolution: {integrity: sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==} - lodash.snakecase@4.1.1: - resolution: {integrity: sha512-QZ1d4xoBHYUeuouhEq3lk3Uq7ldgyFXGBhg04+oRLnIz8o9T65Eh+8YdroUwn846zchkA9yDsDl5CVVaV2nqYw==} - lodash.sortby@4.7.0: resolution: {integrity: sha512-HDWXG8isMntAyRF5vZ7xKuEvOhT4AhlRt/3czTSjvGUxjYCBVRQY48ViDHyfYz9VIoBkW4TMGQNapx+l3RUwdA==} @@ -3169,15 +2702,15 @@ packages: loupe@3.1.1: resolution: {integrity: sha512-edNu/8D5MKVfGVFRhFf8aAxiTM6Wumfz5XsaatSxlD3w4R1d/WEKUTydCdPGbl9K7QG/Ca3GnDV2sIKIpXRQcw==} + lower-case@2.0.2: + resolution: {integrity: sha512-7fm3l3NAF9WfN6W3JOmf5drwpVqX78JtoGJ3A6W0a6ZnldM41w2fV5D490psKFTpMds8TJse/eHLFFsNHHjHgg==} + lru-cache@10.4.3: resolution: {integrity: sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ==} lru-cache@4.1.5: resolution: {integrity: sha512-sWZlbEP2OsHNkXrMl5GYk/jKk70MBng6UU4YI/qGDYbgf6YbP4EvmqISbXCoJiRKs+1bSpFHVgQxvJ17F2li5g==} - lru-cache@5.1.1: - resolution: {integrity: sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==} - magic-string@0.30.10: resolution: {integrity: sha512-iIRwTIf0QKV3UAnYK4PU8uiEc4SRh5jX0mwpIwETPpHdhVM4f53RSwS/vXvN1JhGX+Cs7B8qIq3d6AH49O5fAQ==} @@ -3185,6 +2718,9 @@ packages: resolution: {integrity: sha512-ISQTe55T2ao7XtlAStud6qwYPZjE4GK1S/BeVPus4jrq6JuOnQ00YKQC581RWhR122W7msZV263KzVeLoqidyQ==} engines: {node: '>=12'} + magicast@0.3.4: + resolution: {integrity: sha512-TyDF/Pn36bBji9rWKHlZe+PZb6Mx5V8IHCSxk7X4aljM4e/vyDvZZYwHewdVaqiA0nb3ghfHU/6AUpDxWoER2Q==} + make-dir@4.0.0: resolution: {integrity: sha512-hXdUTZYIVOt1Ex//jAQi+wTZZpUpwBj/0QsOzqegb3rGMMeJiSEu5xLHnYfBrRV4RH2+OCSOO95Is/7x1WJ4bw==} engines: {node: '>=10'} @@ -3192,9 +2728,6 @@ packages: make-error@1.3.6: resolution: {integrity: sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw==} - makeerror@1.0.12: - resolution: {integrity: sha512-JmqCvUhmt43madlpFzG4BQzG2Z3m6tvQDNKdClZnO3VbIudJYmxsT0FNJMeiB2+JTSlTQTSbU8QdesVmwJcmLg==} - map-obj@4.3.0: resolution: {integrity: sha512-hdN1wVrZbb29eBGiGjJbeP8JbKjq1urkHJ/LIP/NY48MZ1QVXUsQBV1G1zvYFHn1XE06cwjBsOI2K3Ulnj1YXQ==} engines: {node: '>=8'} @@ -3251,10 +2784,6 @@ packages: minimatch@3.1.2: resolution: {integrity: sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==} - minimatch@5.1.6: - resolution: {integrity: sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g==} - engines: {node: '>=10'} - minimatch@9.0.5: resolution: {integrity: sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==} engines: {node: '>=16 || 14 >=14.17'} @@ -3307,6 +2836,9 @@ packages: neo-async@2.6.2: resolution: {integrity: sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==} + no-case@3.0.4: + resolution: {integrity: sha512-fgAN3jGAh+RoxUGZHTSOLJIqUc2wmoBwGR4tbpNAKmmovFoWq0OdRkb0VkldReO2a2iBT/OEulG9XSUc10r3zg==} + node-abort-controller@3.1.1: resolution: {integrity: sha512-AGK2yQKIjRuqnc6VkX2Xj5d+QW8xZ87pa1UK6yA6ouUyuxfHuMP6umE5QK7UmTeOAymo+Zx1Fxiuw9rVx8taHQ==} @@ -3322,9 +2854,6 @@ packages: encoding: optional: true - node-int64@0.4.0: - resolution: {integrity: sha512-O5lz91xSOeoXP6DulyHfllpq+Eg00MWitZIbtPfoSEvqIHdl5gfcY6hYzDWnj0qD5tz52PI08u9qUvSVeUBeHw==} - node-releases@2.0.18: resolution: {integrity: sha512-d9VeXT4SJ7ZeOqGX6R5EM022wpL+eWPooLI+5UpWn2jCT1aosUQEhQP214x33Wkwx3JQMvIm+tIoVOdodFS40g==} @@ -3436,9 +2965,6 @@ packages: resolution: {integrity: sha512-haREypq7xkM7ErfgIyA0z+Bj4AGKlMSdlQE2jvJo6huWD1EdkKYV+G/T4nq0YEF2vgTT8kqMFKo1uHn950r4SQ==} engines: {node: '>=12'} - path-parse@1.0.7: - resolution: {integrity: sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==} - path-scurry@1.11.1: resolution: {integrity: sha512-Xa4Nw17FS9ApQFJ9umLiJS4orGjm7ZzwUrwamcGQuHSzDyth9boKDaycYdDcZDuqYATXw4HFXgaqWTctW/v1HA==} engines: {node: '>=16 || 14 >=14.18'} @@ -3542,10 +3068,6 @@ packages: engines: {node: '>=14'} hasBin: true - pretty-format@29.7.0: - resolution: {integrity: sha512-Pdlw/oPxN+aXdmM9R00JVC9WVFoCLTKJvDVLgmJ+qAffBMxsV85l/Lu7sNx4zSzPyoL2euImuEwHhOXdEgNFZQ==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - process-warning@3.0.0: resolution: {integrity: sha512-mqn0kFRl0EoqhnL0GQ0veqFHyIN1yig9RHh/InzORTUiZHFRAur+aMtRkELNwGs9aNwKS6tg/An4NYBPGwvtzQ==} @@ -3553,10 +3075,6 @@ packages: resolution: {integrity: sha512-cdGef/drWFoydD1JsMzuFf8100nZl+GT+yacc2bEced5f9Rjk4z+WtFUTBu9PhOi9j/jfmBPu0mMEY4wIdAF8A==} engines: {node: '>= 0.6.0'} - prompts@2.4.2: - resolution: {integrity: sha512-NxNv/kLguCA7p3jE8oL2aEBsrJWgAakBpgmgK6lpPWV+WuOmY6r2/zbAVnP+T8bQlA0nzHXSJSJW0Hq7ylaD2Q==} - engines: {node: '>= 6'} - proxy-addr@2.0.7: resolution: {integrity: sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg==} engines: {node: '>= 0.10'} @@ -3571,9 +3089,6 @@ packages: resolution: {integrity: sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==} engines: {node: '>=6'} - pure-rand@6.1.0: - resolution: {integrity: sha512-bVWawvoZoBYpp6yIoQtQXHZjmz35RSVHnUOTefl8Vcjr8snTPY1wnpSPMWekcFwbxI6gtmT7rSYPFvz71ldiOA==} - qs@6.12.3: resolution: {integrity: sha512-AWJm14H1vVaO/iNZ4/hO+HyaTehuy9nRqVdkTqlJt0HWvBiBIEXFmb4C0DGeYo3Xes9rrEW+TxHsaigCbN5ICQ==} engines: {node: '>=0.6'} @@ -3598,9 +3113,6 @@ packages: randombytes@2.1.0: resolution: {integrity: sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==} - react-is@18.3.1: - resolution: {integrity: sha512-/LLMVyas0ljjAtoYiPqYiL8VWXzUUdThrmU5+n20DZv+a+ClRoevUzw5JxU+Ieh5/c87ytoTBV9G1FiKfNJdmg==} - read-yaml-file@1.1.0: resolution: {integrity: sha512-VIMnQi/Z4HT2Fxuwg5KrY174U1VdUIASQVWXXyqtNRtxSr9IYkn1rsI6Tb6HsrHCmB7gVpNwX6JxPTHcH6IoTA==} engines: {node: '>=6'} @@ -3635,18 +3147,10 @@ packages: resolution: {integrity: sha512-PV0dzCYDNfRi1jCDbJzpW7jNNDRuCOG/jI5ctQcGKt/clZD+YcPS3yIlWuTJMmESC8aevCFmWJy5wjAFgNqN6w==} engines: {node: '>=0.10'} - require-directory@2.1.1: - resolution: {integrity: sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==} - engines: {node: '>=0.10.0'} - require-from-string@2.0.2: resolution: {integrity: sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==} engines: {node: '>=0.10.0'} - resolve-cwd@3.0.0: - resolution: {integrity: sha512-OrZaX2Mb+rJCpH/6CpSqt9xFVpN++x01XnN2ie9g6P5/3xelLAkXWVADpdz1IHD/KFfEXyE6V0U01OQ3UO2rEg==} - engines: {node: '>=8'} - resolve-from@4.0.0: resolution: {integrity: sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==} engines: {node: '>=4'} @@ -3658,14 +3162,6 @@ packages: resolve-pkg-maps@1.0.0: resolution: {integrity: sha512-seS2Tj26TBVOC2NIc2rOe2y2ZO7efxITtLZcGSOnHHNOQ7CkiUBfw0Iw2ck6xkIhPwLhKNLS8BO+hEpngQlqzw==} - resolve.exports@2.0.2: - resolution: {integrity: sha512-X2UW6Nw3n/aMgDVy+0rSqgHlv39WZAlZrXCdnbyEiKm17DSqHX4MmQMaST3FbeWR5FTuRcUwYAziZajji0Y7mg==} - engines: {node: '>=10'} - - resolve@1.22.8: - resolution: {integrity: sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw==} - hasBin: true - restore-cursor@3.1.0: resolution: {integrity: sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA==} engines: {node: '>=8'} @@ -3742,10 +3238,6 @@ packages: secure-json-parse@2.7.0: resolution: {integrity: sha512-6aU+Rwsezw7VR8/nyvKTx8QpWH9FrcYiXXlqC4z5d5XQBDRqtbfsRjnwGyqbi3gddNtWHuEk9OANUotL26qKUw==} - semver@6.3.1: - resolution: {integrity: sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==} - hasBin: true - semver@7.6.3: resolution: {integrity: sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==} engines: {node: '>=10'} @@ -3798,9 +3290,6 @@ packages: resolution: {integrity: sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==} engines: {node: '>=14'} - sisteransi@1.0.5: - resolution: {integrity: sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg==} - slash@3.0.0: resolution: {integrity: sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==} engines: {node: '>=8'} @@ -3813,6 +3302,13 @@ packages: resolution: {integrity: sha512-bSiSngZ/jWeX93BqeIAbImyTbEihizcwNjFoRUIY/T1wWQsfsm2Vw1agPKylXvQTU7iASGdHhyqRlqQzfz+Htg==} engines: {node: '>=18'} + snake-case@3.0.4: + resolution: {integrity: sha512-LAOh4z89bGQvl9pFfNF8V146i7o7/CqFPbqzYgP+yYzDIDeS9HaNFtXABamRW+AQzEVODcvE79ljJ+8a9YSdMg==} + + snakecase-keys@8.0.1: + resolution: {integrity: sha512-Sj51kE1zC7zh6TDlNNz0/Jn1n5HiHdoQErxO8jLtnyrkJW/M5PrI7x05uDgY3BO7OUQYKCvmeMurW6BPUdwEOw==} + engines: {node: '>=18'} + sonic-boom@4.0.1: resolution: {integrity: sha512-hTSD/6JMLyT4r9zeof6UtuBDpjJ9sO08/nmS5djaA9eozT9oOlNdpXSnzcgj4FTqpk3nkLrs61l4gip9r1HCrQ==} @@ -3820,9 +3316,6 @@ packages: resolution: {integrity: sha512-itJW8lvSA0TXEphiRoawsCksnlf8SyvmFzIhltqAHluXd88pkCd+cXJVHTDwdCr0IzwptSm035IHQktUu1QUMg==} engines: {node: '>=0.10.0'} - source-map-support@0.5.13: - resolution: {integrity: sha512-SHSKFHadjVA5oR4PPqhtAVdcBWwRYVd6g6cAXnIbRiIwc2EhPrTuKUBdSLvlEKyIP3GCf89fltvcZiP9MMFA1w==} - source-map-support@0.5.21: resolution: {integrity: sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==} @@ -3848,10 +3341,6 @@ packages: sprintf-js@1.0.3: resolution: {integrity: sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==} - stack-utils@2.0.6: - resolution: {integrity: sha512-XlkWvfIm6RmsWtNJx+uqtKLS8eqFbxUg0ZzLXqY0caEy9l7hruX8IpiDnjsLavoBgqCCR71TqWO8MaXYheJ3RQ==} - engines: {node: '>=10'} - stackback@0.0.2: resolution: {integrity: sha512-1XMJE5fQo1jGH6Y/7ebnwPOBEkIEnT4QF32d5R1+VXdXveM0IBMJt8zfaxX1P3QhVwrYe+576+jkANtSS2mBbw==} @@ -3862,10 +3351,6 @@ packages: resolution: {integrity: sha512-aqD2Q0144Z+/RqG52NeHEkZauTAUWJO8c6yTftGJKO3Tja5tUgIfmIl6kExvhtxSDP7fXB6DvzkfMpCd/F3G+Q==} engines: {node: '>=0.6.19'} - string-length@4.0.2: - resolution: {integrity: sha512-+l6rNN5fYHNhZZy41RXsYptCjA2Igmq4EG7kZAYFQI1E1VTXarr6ZPXBg6eq7Y6eK4FEhY6AJlyuFIb/v/S0VQ==} - engines: {node: '>=10'} - string-width@4.2.3: resolution: {integrity: sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==} engines: {node: '>=8'} @@ -3893,10 +3378,6 @@ packages: resolution: {integrity: sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==} engines: {node: '>=4'} - strip-bom@4.0.0: - resolution: {integrity: sha512-3xurFv5tEgii33Zi8Jtp55wEIILR9eh34FAW00PZf+JnSsTmV/ioewSgQl97JHvgjoRGwPShsWm+IdrxB35d0w==} - engines: {node: '>=8'} - strip-final-newline@2.0.0: resolution: {integrity: sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==} engines: {node: '>=6'} @@ -3935,10 +3416,6 @@ packages: resolution: {integrity: sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==} engines: {node: '>=10'} - supports-preserve-symlinks-flag@1.0.0: - resolution: {integrity: sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==} - engines: {node: '>= 0.4'} - symbol-observable@4.0.0: resolution: {integrity: sha512-b19dMThMV4HVFynSAM1++gBHAbk2Tc/osgLIBZMKsyqh34jb2e8Os7T6ZW/Bt3pJFdBTd2JwAnAAEQV7rSNvcQ==} engines: {node: '>=0.10'} @@ -3972,9 +3449,9 @@ packages: engines: {node: '>=10'} hasBin: true - test-exclude@6.0.0: - resolution: {integrity: sha512-cAGWPIyOHU6zlmg88jwm7VRyXnMN7iV68OGAbYDk/Mh/xC/pzVPlQtY6ngoIH/5/tciuhGfvESU8GrHrcxD56w==} - engines: {node: '>=8'} + test-exclude@7.0.1: + resolution: {integrity: sha512-pFYqmTw68LXVjeWJMST4+borgQP2AyMNbg1BpZh9LbyhUeNkeaPF9gzfPGUAnSMV3qPYdWUwDIjjCLiSDOl7vg==} + engines: {node: '>=18'} text-table@0.2.0: resolution: {integrity: sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==} @@ -4011,9 +3488,6 @@ packages: resolution: {integrity: sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw==} engines: {node: '>=0.6.0'} - tmpl@1.0.5: - resolution: {integrity: sha512-3f0uOEAQwIqGuWW2MVzYg8fV/QNnc/IpuJNG837rLuczAaLVHslWHZQj4IGiEl5Hs3kkbhwL9Ab7Hrsmuj+Smw==} - to-fast-properties@2.0.0: resolution: {integrity: sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog==} engines: {node: '>=4'} @@ -4045,30 +3519,6 @@ packages: ts-interface-checker@0.1.13: resolution: {integrity: sha512-Y/arvbn+rrz3JCKl9C4kVNfTfSm2/mEp5FSz5EsZSANGPSlQrpRI5M4PKF+mJnE52jOO90PnPSc3Ur3bTQw0gA==} - ts-jest@29.2.3: - resolution: {integrity: sha512-yCcfVdiBFngVz9/keHin9EnsrQtQtEu3nRykNy9RVp+FiPFFbPJ3Sg6Qg4+TkmH0vMP5qsTKgXSsk80HRwvdgQ==} - engines: {node: ^14.15.0 || ^16.10.0 || ^18.0.0 || >=20.0.0} - hasBin: true - peerDependencies: - '@babel/core': '>=7.0.0-beta.0 <8' - '@jest/transform': ^29.0.0 - '@jest/types': ^29.0.0 - babel-jest: ^29.0.0 - esbuild: '*' - jest: ^29.0.0 - typescript: '>=4.3 <6' - peerDependenciesMeta: - '@babel/core': - optional: true - '@jest/transform': - optional: true - '@jest/types': - optional: true - babel-jest: - optional: true - esbuild: - optional: true - ts-loader@9.5.1: resolution: {integrity: sha512-rNH3sK9kGZcH9dYzC7CewQm4NtxJTjSEVRJ2DyBZR7f8/wcta+iV44UPCXc5+nzDzivKtlzV6c9P4e+oFhDLYg==} engines: {node: '>=12.0.0'} @@ -4132,10 +3582,6 @@ packages: resolution: {integrity: sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==} engines: {node: '>= 0.8.0'} - type-detect@4.0.8: - resolution: {integrity: sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==} - engines: {node: '>=4'} - type-fest@0.20.2: resolution: {integrity: sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==} engines: {node: '>=10'} @@ -4180,6 +3626,15 @@ packages: resolution: {integrity: sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw==} engines: {node: '>= 10.0.0'} + unplugin-swc@1.5.1: + resolution: {integrity: sha512-/ZLrPNjChhGx3Z95pxJ4tQgfI6rWqukgYHKflrNB4zAV1izOQuDhkTn55JWeivpBxDCoK7M/TStb2aS/14PS/g==} + peerDependencies: + '@swc/core': ^1.2.108 + + unplugin@1.12.1: + resolution: {integrity: sha512-aXEH9c5qi3uYZHo0niUtxDlT9ylG/luMW/dZslSCkbtC31wCyFkmM0kyoBBh+Grhn7CL+/kvKLfN61/EdxPxMQ==} + engines: {node: '>=14.0.0'} + update-browserslist-db@1.1.0: resolution: {integrity: sha512-EdRAaAyk2cUE1wOf2DkEhzxqOQvFOoRJFNS6NeyJ01Gp2beMRpBAINjM2iDXE3KCuKhwnvHIQCJm6ThL2Z+HzQ==} hasBin: true @@ -4199,10 +3654,6 @@ packages: v8-compile-cache-lib@3.0.1: resolution: {integrity: sha512-wa7YjyUGfNZngI/vtK0UHAN+lgDCxBPCylVXGp0zu59Fz5aiGtNXaq3DhIov063MorB+VfufLh3JlF2KdTK3xg==} - v8-to-istanbul@9.3.0: - resolution: {integrity: sha512-kiGUalWN+rgBJ/1OHZsBtU4rXZOfj/7rKQxULKlIzwzQSvMJUUNgPwJEEh7gU6xEVxC0ahoOBvN2YI8GH6FNgA==} - engines: {node: '>=10.12.0'} - varuint-bitcoin@1.1.2: resolution: {integrity: sha512-4EVb+w4rx+YfVM32HQX42AbbT7/1f5zwAYhIujKXKk8NQK+JfRVl3pqT3hjNn/L+RstigmGGKVwHA/P0wgITZw==} @@ -4264,9 +3715,6 @@ packages: jsdom: optional: true - walker@1.0.8: - resolution: {integrity: sha512-ts/8E8l5b7kY0vlWLewOkDXMmPdLcVV4GmOQLyxuSswIJsweeFZtAsMF7k1Nszz+TYBQrlYRmzOnr398y1JemQ==} - watchpack@2.4.1: resolution: {integrity: sha512-8wrBCMtVhqcXP2Sup1ctSkga6uc2Bx0IIvKyT7yTFier5AXHooSI+QyQQAtTb7+E0IUCCKyTFmXqdqgum2XWGg==} engines: {node: '>=10.13.0'} @@ -4288,6 +3736,9 @@ packages: resolution: {integrity: sha512-/DyMEOrDgLKKIG0fmvtz+4dUX/3Ghozwgm6iPp8KRhvn+eQf9+Q7GWxVNMk3+uCPWfdXYC4ExGBckIXdFEfH1w==} engines: {node: '>=10.13.0'} + webpack-virtual-modules@0.6.2: + resolution: {integrity: sha512-66/V2i5hQanC51vBQKPH4aI8NMAcBW59FVBs+rC7eGHupMyfn34q7rZIE+ETlJ+XTevqfUhVVBgSUNSW2flEUQ==} + webpack@5.92.1: resolution: {integrity: sha512-JECQ7IwJb+7fgUFBlrJzbyu3GEuNBcdqr1LD7IbSzwkSmIevTm8PF+wej3Oxuz/JFBUZ6O1o43zsPkwm1C4TmA==} engines: {node: '>=10.13.0'} @@ -4348,20 +3799,9 @@ packages: wrappy@1.0.2: resolution: {integrity: sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==} - write-file-atomic@4.0.2: - resolution: {integrity: sha512-7KxauUdBmSdWnmpaGFg+ppNjKF8uNLry8LyzjauQDOVONfFLNKrKvQOxZ/VuTIcS/gge/YNahf5RIIQWTSarlg==} - engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0} - - y18n@5.0.8: - resolution: {integrity: sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==} - engines: {node: '>=10'} - yallist@2.1.2: resolution: {integrity: sha512-ncTzHV7NvsQZkYe1DW7cbDLm0YpzHmZF5r/iyP3ZnQtMiJ+pjzisCiMNI+Sj+xQF5pXhSHxSB3uDbsBTzY/c2A==} - yallist@3.1.1: - resolution: {integrity: sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==} - yaml@2.4.5: resolution: {integrity: sha512-aBx2bnqDzVOyNKfsysjA2ms5ZlnjSAW2eG3/L5G/CSujfjLJTJsEw1bGw8kCf04KodQWk1pxlGnZ56CRxiawmg==} engines: {node: '>= 14'} @@ -4371,10 +3811,6 @@ packages: resolution: {integrity: sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==} engines: {node: '>=12'} - yargs@17.7.2: - resolution: {integrity: sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==} - engines: {node: '>=12'} - yn@3.1.1: resolution: {integrity: sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q==} engines: {node: '>=6'} @@ -4435,98 +3871,10 @@ snapshots: '@babel/highlight': 7.24.7 picocolors: 1.0.1 - '@babel/compat-data@7.24.9': {} - - '@babel/core@7.24.9': - dependencies: - '@ampproject/remapping': 2.3.0 - '@babel/code-frame': 7.24.7 - '@babel/generator': 7.24.10 - '@babel/helper-compilation-targets': 7.24.8 - '@babel/helper-module-transforms': 7.24.9(@babel/core@7.24.9) - '@babel/helpers': 7.24.8 - '@babel/parser': 7.24.8 - '@babel/template': 7.24.7 - '@babel/traverse': 7.24.8 - '@babel/types': 7.24.9 - convert-source-map: 2.0.0 - debug: 4.3.5 - gensync: 1.0.0-beta.2 - json5: 2.2.3 - semver: 6.3.1 - transitivePeerDependencies: - - supports-color - - '@babel/generator@7.24.10': - dependencies: - '@babel/types': 7.24.9 - '@jridgewell/gen-mapping': 0.3.5 - '@jridgewell/trace-mapping': 0.3.25 - jsesc: 2.5.2 - - '@babel/helper-compilation-targets@7.24.8': - dependencies: - '@babel/compat-data': 7.24.9 - '@babel/helper-validator-option': 7.24.8 - browserslist: 4.23.2 - lru-cache: 5.1.1 - semver: 6.3.1 - - '@babel/helper-environment-visitor@7.24.7': - dependencies: - '@babel/types': 7.24.9 - - '@babel/helper-function-name@7.24.7': - dependencies: - '@babel/template': 7.24.7 - '@babel/types': 7.24.9 - - '@babel/helper-hoist-variables@7.24.7': - dependencies: - '@babel/types': 7.24.9 - - '@babel/helper-module-imports@7.24.7': - dependencies: - '@babel/traverse': 7.24.8 - '@babel/types': 7.24.9 - transitivePeerDependencies: - - supports-color - - '@babel/helper-module-transforms@7.24.9(@babel/core@7.24.9)': - dependencies: - '@babel/core': 7.24.9 - '@babel/helper-environment-visitor': 7.24.7 - '@babel/helper-module-imports': 7.24.7 - '@babel/helper-simple-access': 7.24.7 - '@babel/helper-split-export-declaration': 7.24.7 - '@babel/helper-validator-identifier': 7.24.7 - transitivePeerDependencies: - - supports-color - - '@babel/helper-plugin-utils@7.24.8': {} - - '@babel/helper-simple-access@7.24.7': - dependencies: - '@babel/traverse': 7.24.8 - '@babel/types': 7.24.9 - transitivePeerDependencies: - - supports-color - - '@babel/helper-split-export-declaration@7.24.7': - dependencies: - '@babel/types': 7.24.9 - '@babel/helper-string-parser@7.24.8': {} '@babel/helper-validator-identifier@7.24.7': {} - '@babel/helper-validator-option@7.24.8': {} - - '@babel/helpers@7.24.8': - dependencies: - '@babel/template': 7.24.7 - '@babel/types': 7.24.9 - '@babel/highlight@7.24.7': dependencies: '@babel/helper-validator-identifier': 7.24.7 @@ -4538,101 +3886,10 @@ snapshots: dependencies: '@babel/types': 7.24.9 - '@babel/plugin-syntax-async-generators@7.8.4(@babel/core@7.24.9)': - dependencies: - '@babel/core': 7.24.9 - '@babel/helper-plugin-utils': 7.24.8 - - '@babel/plugin-syntax-bigint@7.8.3(@babel/core@7.24.9)': - dependencies: - '@babel/core': 7.24.9 - '@babel/helper-plugin-utils': 7.24.8 - - '@babel/plugin-syntax-class-properties@7.12.13(@babel/core@7.24.9)': - dependencies: - '@babel/core': 7.24.9 - '@babel/helper-plugin-utils': 7.24.8 - - '@babel/plugin-syntax-import-meta@7.10.4(@babel/core@7.24.9)': - dependencies: - '@babel/core': 7.24.9 - '@babel/helper-plugin-utils': 7.24.8 - - '@babel/plugin-syntax-json-strings@7.8.3(@babel/core@7.24.9)': - dependencies: - '@babel/core': 7.24.9 - '@babel/helper-plugin-utils': 7.24.8 - - '@babel/plugin-syntax-jsx@7.24.7(@babel/core@7.24.9)': - dependencies: - '@babel/core': 7.24.9 - '@babel/helper-plugin-utils': 7.24.8 - - '@babel/plugin-syntax-logical-assignment-operators@7.10.4(@babel/core@7.24.9)': - dependencies: - '@babel/core': 7.24.9 - '@babel/helper-plugin-utils': 7.24.8 - - '@babel/plugin-syntax-nullish-coalescing-operator@7.8.3(@babel/core@7.24.9)': - dependencies: - '@babel/core': 7.24.9 - '@babel/helper-plugin-utils': 7.24.8 - - '@babel/plugin-syntax-numeric-separator@7.10.4(@babel/core@7.24.9)': - dependencies: - '@babel/core': 7.24.9 - '@babel/helper-plugin-utils': 7.24.8 - - '@babel/plugin-syntax-object-rest-spread@7.8.3(@babel/core@7.24.9)': - dependencies: - '@babel/core': 7.24.9 - '@babel/helper-plugin-utils': 7.24.8 - - '@babel/plugin-syntax-optional-catch-binding@7.8.3(@babel/core@7.24.9)': - dependencies: - '@babel/core': 7.24.9 - '@babel/helper-plugin-utils': 7.24.8 - - '@babel/plugin-syntax-optional-chaining@7.8.3(@babel/core@7.24.9)': - dependencies: - '@babel/core': 7.24.9 - '@babel/helper-plugin-utils': 7.24.8 - - '@babel/plugin-syntax-top-level-await@7.14.5(@babel/core@7.24.9)': - dependencies: - '@babel/core': 7.24.9 - '@babel/helper-plugin-utils': 7.24.8 - - '@babel/plugin-syntax-typescript@7.24.7(@babel/core@7.24.9)': - dependencies: - '@babel/core': 7.24.9 - '@babel/helper-plugin-utils': 7.24.8 - '@babel/runtime@7.24.8': dependencies: regenerator-runtime: 0.14.1 - '@babel/template@7.24.7': - dependencies: - '@babel/code-frame': 7.24.7 - '@babel/parser': 7.24.8 - '@babel/types': 7.24.9 - - '@babel/traverse@7.24.8': - dependencies: - '@babel/code-frame': 7.24.7 - '@babel/generator': 7.24.10 - '@babel/helper-environment-visitor': 7.24.7 - '@babel/helper-function-name': 7.24.7 - '@babel/helper-hoist-variables': 7.24.7 - '@babel/helper-split-export-declaration': 7.24.7 - '@babel/parser': 7.24.8 - '@babel/types': 7.24.9 - debug: 4.3.5 - globals: 11.12.0 - transitivePeerDependencies: - - supports-color - '@babel/types@7.24.9': dependencies: '@babel/helper-string-parser': 7.24.8 @@ -5270,192 +4527,22 @@ snapshots: wrap-ansi: 8.1.0 wrap-ansi-cjs: wrap-ansi@7.0.0 - '@istanbuljs/load-nyc-config@1.1.0': - dependencies: - camelcase: 5.3.1 - find-up: 4.1.0 - get-package-type: 0.1.0 - js-yaml: 3.14.1 - resolve-from: 5.0.0 - '@istanbuljs/schema@0.1.3': {} - '@jest/console@29.7.0': + '@jridgewell/gen-mapping@0.3.5': dependencies: - '@jest/types': 29.6.3 - '@types/node': 20.14.11 - chalk: 4.1.2 - jest-message-util: 29.7.0 - jest-util: 29.7.0 - slash: 3.0.0 + '@jridgewell/set-array': 1.2.1 + '@jridgewell/sourcemap-codec': 1.5.0 + '@jridgewell/trace-mapping': 0.3.25 - '@jest/core@29.7.0(ts-node@10.9.2(@types/node@20.14.11)(typescript@5.5.3))': - dependencies: - '@jest/console': 29.7.0 - '@jest/reporters': 29.7.0 - '@jest/test-result': 29.7.0 - '@jest/transform': 29.7.0 - '@jest/types': 29.6.3 - '@types/node': 20.14.11 - ansi-escapes: 4.3.2 - chalk: 4.1.2 - ci-info: 3.9.0 - exit: 0.1.2 - graceful-fs: 4.2.11 - jest-changed-files: 29.7.0 - jest-config: 29.7.0(@types/node@20.14.11)(ts-node@10.9.2(@types/node@20.14.11)(typescript@5.5.3)) - jest-haste-map: 29.7.0 - jest-message-util: 29.7.0 - jest-regex-util: 29.6.3 - jest-resolve: 29.7.0 - jest-resolve-dependencies: 29.7.0 - jest-runner: 29.7.0 - jest-runtime: 29.7.0 - jest-snapshot: 29.7.0 - jest-util: 29.7.0 - jest-validate: 29.7.0 - jest-watcher: 29.7.0 - micromatch: 4.0.7 - pretty-format: 29.7.0 - slash: 3.0.0 - strip-ansi: 6.0.1 - transitivePeerDependencies: - - babel-plugin-macros - - supports-color - - ts-node + '@jridgewell/resolve-uri@3.1.2': {} - '@jest/environment@29.7.0': - dependencies: - '@jest/fake-timers': 29.7.0 - '@jest/types': 29.6.3 - '@types/node': 20.14.11 - jest-mock: 29.7.0 + '@jridgewell/set-array@1.2.1': {} - '@jest/expect-utils@29.7.0': + '@jridgewell/source-map@0.3.6': dependencies: - jest-get-type: 29.6.3 - - '@jest/expect@29.7.0': - dependencies: - expect: 29.7.0 - jest-snapshot: 29.7.0 - transitivePeerDependencies: - - supports-color - - '@jest/fake-timers@29.7.0': - dependencies: - '@jest/types': 29.6.3 - '@sinonjs/fake-timers': 10.3.0 - '@types/node': 20.14.11 - jest-message-util: 29.7.0 - jest-mock: 29.7.0 - jest-util: 29.7.0 - - '@jest/globals@29.7.0': - dependencies: - '@jest/environment': 29.7.0 - '@jest/expect': 29.7.0 - '@jest/types': 29.6.3 - jest-mock: 29.7.0 - transitivePeerDependencies: - - supports-color - - '@jest/reporters@29.7.0': - dependencies: - '@bcoe/v8-coverage': 0.2.3 - '@jest/console': 29.7.0 - '@jest/test-result': 29.7.0 - '@jest/transform': 29.7.0 - '@jest/types': 29.6.3 - '@jridgewell/trace-mapping': 0.3.25 - '@types/node': 20.14.11 - chalk: 4.1.2 - collect-v8-coverage: 1.0.2 - exit: 0.1.2 - glob: 7.2.3 - graceful-fs: 4.2.11 - istanbul-lib-coverage: 3.2.2 - istanbul-lib-instrument: 6.0.3 - istanbul-lib-report: 3.0.1 - istanbul-lib-source-maps: 4.0.1 - istanbul-reports: 3.1.7 - jest-message-util: 29.7.0 - jest-util: 29.7.0 - jest-worker: 29.7.0 - slash: 3.0.0 - string-length: 4.0.2 - strip-ansi: 6.0.1 - v8-to-istanbul: 9.3.0 - transitivePeerDependencies: - - supports-color - - '@jest/schemas@29.6.3': - dependencies: - '@sinclair/typebox': 0.27.8 - - '@jest/source-map@29.6.3': - dependencies: - '@jridgewell/trace-mapping': 0.3.25 - callsites: 3.1.0 - graceful-fs: 4.2.11 - - '@jest/test-result@29.7.0': - dependencies: - '@jest/console': 29.7.0 - '@jest/types': 29.6.3 - '@types/istanbul-lib-coverage': 2.0.6 - collect-v8-coverage: 1.0.2 - - '@jest/test-sequencer@29.7.0': - dependencies: - '@jest/test-result': 29.7.0 - graceful-fs: 4.2.11 - jest-haste-map: 29.7.0 - slash: 3.0.0 - - '@jest/transform@29.7.0': - dependencies: - '@babel/core': 7.24.9 - '@jest/types': 29.6.3 - '@jridgewell/trace-mapping': 0.3.25 - babel-plugin-istanbul: 6.1.1 - chalk: 4.1.2 - convert-source-map: 2.0.0 - fast-json-stable-stringify: 2.1.0 - graceful-fs: 4.2.11 - jest-haste-map: 29.7.0 - jest-regex-util: 29.6.3 - jest-util: 29.7.0 - micromatch: 4.0.7 - pirates: 4.0.6 - slash: 3.0.0 - write-file-atomic: 4.0.2 - transitivePeerDependencies: - - supports-color - - '@jest/types@29.6.3': - dependencies: - '@jest/schemas': 29.6.3 - '@types/istanbul-lib-coverage': 2.0.6 - '@types/istanbul-reports': 3.0.4 - '@types/node': 20.14.11 - '@types/yargs': 17.0.32 - chalk: 4.1.2 - - '@jridgewell/gen-mapping@0.3.5': - dependencies: - '@jridgewell/set-array': 1.2.1 - '@jridgewell/sourcemap-codec': 1.5.0 - '@jridgewell/trace-mapping': 0.3.25 - - '@jridgewell/resolve-uri@3.1.2': {} - - '@jridgewell/set-array@1.2.1': {} - - '@jridgewell/source-map@0.3.6': - dependencies: - '@jridgewell/gen-mapping': 0.3.5 - '@jridgewell/trace-mapping': 0.3.25 + '@jridgewell/gen-mapping': 0.3.5 + '@jridgewell/trace-mapping': 0.3.25 '@jridgewell/sourcemap-codec@1.5.0': {} @@ -5518,7 +4605,7 @@ snapshots: '@nervosnetwork/ckb-types@0.109.2': {} - '@nestjs/cli@10.4.2(esbuild@0.23.0)': + '@nestjs/cli@10.4.2(@swc/core@1.7.11)(esbuild@0.23.0)': dependencies: '@angular-devkit/core': 17.3.8(chokidar@3.6.0) '@angular-devkit/schematics': 17.3.8(chokidar@3.6.0) @@ -5528,7 +4615,7 @@ snapshots: chokidar: 3.6.0 cli-table3: 0.6.5 commander: 4.1.1 - fork-ts-checker-webpack-plugin: 9.0.2(typescript@5.3.3)(webpack@5.92.1(esbuild@0.23.0)) + fork-ts-checker-webpack-plugin: 9.0.2(typescript@5.3.3)(webpack@5.92.1(@swc/core@1.7.11)(esbuild@0.23.0)) glob: 10.4.2 inquirer: 8.2.6 node-emoji: 1.11.0 @@ -5537,8 +4624,10 @@ snapshots: tsconfig-paths: 4.2.0 tsconfig-paths-webpack-plugin: 4.1.0 typescript: 5.3.3 - webpack: 5.92.1(esbuild@0.23.0) + webpack: 5.92.1(@swc/core@1.7.11)(esbuild@0.23.0) webpack-node-externals: 3.0.0 + optionalDependencies: + '@swc/core': 1.7.11 transitivePeerDependencies: - esbuild - uglify-js @@ -5682,6 +4771,14 @@ snapshots: '@nervosnetwork/ckb-types': 0.109.2 lodash: 4.17.21 + '@rollup/pluginutils@5.1.0(rollup@4.19.0)': + dependencies: + '@types/estree': 1.0.5 + estree-walker: 2.0.2 + picomatch: 2.3.1 + optionalDependencies: + rollup: 4.19.0 + '@rollup/rollup-android-arm-eabi@4.19.0': optional: true @@ -5732,49 +4829,70 @@ snapshots: '@scure/base@1.1.7': {} - '@sinclair/typebox@0.27.8': {} - - '@sinonjs/commons@3.0.1': - dependencies: - type-detect: 4.0.8 - - '@sinonjs/fake-timers@10.3.0': - dependencies: - '@sinonjs/commons': 3.0.1 - '@spore-sdk/core@0.2.0(@ckb-lumos/lumos@0.22.0-next.5)(lodash@4.17.21)': dependencies: '@ckb-lumos/lumos': 0.22.0-next.5 lodash: 4.17.21 - '@tsconfig/node10@1.0.11': {} + '@swc/core-darwin-arm64@1.7.11': + optional: true - '@tsconfig/node12@1.0.11': {} + '@swc/core-darwin-x64@1.7.11': + optional: true - '@tsconfig/node14@1.0.3': {} + '@swc/core-linux-arm-gnueabihf@1.7.11': + optional: true - '@tsconfig/node16@1.0.4': {} + '@swc/core-linux-arm64-gnu@1.7.11': + optional: true - '@types/babel__core@7.20.5': - dependencies: - '@babel/parser': 7.24.8 - '@babel/types': 7.24.9 - '@types/babel__generator': 7.6.8 - '@types/babel__template': 7.4.4 - '@types/babel__traverse': 7.20.6 + '@swc/core-linux-arm64-musl@1.7.11': + optional: true - '@types/babel__generator@7.6.8': - dependencies: - '@babel/types': 7.24.9 + '@swc/core-linux-x64-gnu@1.7.11': + optional: true + + '@swc/core-linux-x64-musl@1.7.11': + optional: true + + '@swc/core-win32-arm64-msvc@1.7.11': + optional: true + + '@swc/core-win32-ia32-msvc@1.7.11': + optional: true + + '@swc/core-win32-x64-msvc@1.7.11': + optional: true - '@types/babel__template@7.4.4': + '@swc/core@1.7.11': dependencies: - '@babel/parser': 7.24.8 - '@babel/types': 7.24.9 + '@swc/counter': 0.1.3 + '@swc/types': 0.1.12 + optionalDependencies: + '@swc/core-darwin-arm64': 1.7.11 + '@swc/core-darwin-x64': 1.7.11 + '@swc/core-linux-arm-gnueabihf': 1.7.11 + '@swc/core-linux-arm64-gnu': 1.7.11 + '@swc/core-linux-arm64-musl': 1.7.11 + '@swc/core-linux-x64-gnu': 1.7.11 + '@swc/core-linux-x64-musl': 1.7.11 + '@swc/core-win32-arm64-msvc': 1.7.11 + '@swc/core-win32-ia32-msvc': 1.7.11 + '@swc/core-win32-x64-msvc': 1.7.11 + + '@swc/counter@0.1.3': {} - '@types/babel__traverse@7.20.6': + '@swc/types@0.1.12': dependencies: - '@babel/types': 7.24.9 + '@swc/counter': 0.1.3 + + '@tsconfig/node10@1.0.11': {} + + '@tsconfig/node12@1.0.11': {} + + '@tsconfig/node14@1.0.3': {} + + '@tsconfig/node16@1.0.4': {} '@types/blake2b@2.1.3': {} @@ -5804,25 +4922,6 @@ snapshots: '@types/node': 20.14.11 optional: true - '@types/graceful-fs@4.1.9': - dependencies: - '@types/node': 20.14.11 - - '@types/istanbul-lib-coverage@2.0.6': {} - - '@types/istanbul-lib-report@3.0.3': - dependencies: - '@types/istanbul-lib-coverage': 2.0.6 - - '@types/istanbul-reports@3.0.4': - dependencies: - '@types/istanbul-lib-report': 3.0.3 - - '@types/jest@29.5.12': - dependencies: - expect: 29.7.0 - pretty-format: 29.7.0 - '@types/json-schema@7.0.15': {} '@types/jsonfile@6.1.4': @@ -5850,8 +4949,6 @@ snapshots: '@types/semver@7.5.8': {} - '@types/stack-utils@2.0.3': {} - '@types/superagent@8.1.7': dependencies: '@types/cookiejar': 2.1.5 @@ -5863,12 +4960,6 @@ snapshots: '@types/methods': 1.1.4 '@types/superagent': 8.1.7 - '@types/yargs-parser@21.0.3': {} - - '@types/yargs@17.0.32': - dependencies: - '@types/yargs-parser': 21.0.3 - '@typescript-eslint/eslint-plugin@7.16.1(@typescript-eslint/parser@7.16.1(eslint@8.57.0)(typescript@5.5.3))(eslint@8.57.0)(typescript@5.5.3)': dependencies: '@eslint-community/regexpp': 4.11.0 @@ -5952,6 +5043,24 @@ snapshots: '@ungap/structured-clone@1.2.0': {} + '@vitest/coverage-v8@2.0.5(vitest@2.0.5(@types/node@20.14.11)(terser@5.31.3))': + dependencies: + '@ampproject/remapping': 2.3.0 + '@bcoe/v8-coverage': 0.2.3 + debug: 4.3.5 + istanbul-lib-coverage: 3.2.2 + istanbul-lib-report: 3.0.1 + istanbul-lib-source-maps: 5.0.6 + istanbul-reports: 3.1.7 + magic-string: 0.30.10 + magicast: 0.3.4 + std-env: 3.7.0 + test-exclude: 7.0.1 + tinyrainbow: 1.2.0 + vitest: 2.0.5(@types/node@20.14.11)(terser@5.31.3) + transitivePeerDependencies: + - supports-color + '@vitest/expect@2.0.5': dependencies: '@vitest/spy': 2.0.5 @@ -6142,8 +5251,6 @@ snapshots: dependencies: color-convert: 2.0.1 - ansi-styles@5.2.0: {} - ansi-styles@6.2.1: {} any-promise@1.3.0: {} @@ -6169,8 +5276,6 @@ snapshots: assertion-error@2.0.1: {} - async@3.2.5: {} - asynckit@0.4.0: {} atomic-sleep@1.0.0: {} @@ -6198,58 +5303,6 @@ snapshots: b4a@1.6.6: {} - babel-jest@29.7.0(@babel/core@7.24.9): - dependencies: - '@babel/core': 7.24.9 - '@jest/transform': 29.7.0 - '@types/babel__core': 7.20.5 - babel-plugin-istanbul: 6.1.1 - babel-preset-jest: 29.6.3(@babel/core@7.24.9) - chalk: 4.1.2 - graceful-fs: 4.2.11 - slash: 3.0.0 - transitivePeerDependencies: - - supports-color - - babel-plugin-istanbul@6.1.1: - dependencies: - '@babel/helper-plugin-utils': 7.24.8 - '@istanbuljs/load-nyc-config': 1.1.0 - '@istanbuljs/schema': 0.1.3 - istanbul-lib-instrument: 5.2.1 - test-exclude: 6.0.0 - transitivePeerDependencies: - - supports-color - - babel-plugin-jest-hoist@29.6.3: - dependencies: - '@babel/template': 7.24.7 - '@babel/types': 7.24.9 - '@types/babel__core': 7.20.5 - '@types/babel__traverse': 7.20.6 - - babel-preset-current-node-syntax@1.0.1(@babel/core@7.24.9): - dependencies: - '@babel/core': 7.24.9 - '@babel/plugin-syntax-async-generators': 7.8.4(@babel/core@7.24.9) - '@babel/plugin-syntax-bigint': 7.8.3(@babel/core@7.24.9) - '@babel/plugin-syntax-class-properties': 7.12.13(@babel/core@7.24.9) - '@babel/plugin-syntax-import-meta': 7.10.4(@babel/core@7.24.9) - '@babel/plugin-syntax-json-strings': 7.8.3(@babel/core@7.24.9) - '@babel/plugin-syntax-logical-assignment-operators': 7.10.4(@babel/core@7.24.9) - '@babel/plugin-syntax-nullish-coalescing-operator': 7.8.3(@babel/core@7.24.9) - '@babel/plugin-syntax-numeric-separator': 7.10.4(@babel/core@7.24.9) - '@babel/plugin-syntax-object-rest-spread': 7.8.3(@babel/core@7.24.9) - '@babel/plugin-syntax-optional-catch-binding': 7.8.3(@babel/core@7.24.9) - '@babel/plugin-syntax-optional-chaining': 7.8.3(@babel/core@7.24.9) - '@babel/plugin-syntax-top-level-await': 7.14.5(@babel/core@7.24.9) - - babel-preset-jest@29.6.3(@babel/core@7.24.9): - dependencies: - '@babel/core': 7.24.9 - babel-plugin-jest-hoist: 29.6.3 - babel-preset-current-node-syntax: 1.0.1(@babel/core@7.24.9) - balanced-match@1.0.2: {} base-x@3.0.10: @@ -6328,10 +5381,6 @@ snapshots: node-releases: 2.0.18 update-browserslist-db: 1.1.0(browserslist@4.23.2) - bs-logger@0.2.6: - dependencies: - fast-json-stable-stringify: 2.1.0 - bs58@4.0.1: dependencies: base-x: 3.0.10 @@ -6351,10 +5400,6 @@ snapshots: '@noble/hashes': 1.4.0 bs58: 5.0.0 - bser@2.1.1: - dependencies: - node-int64: 0.4.0 - buffer-from@1.1.2: {} buffer@5.7.1: @@ -6391,8 +5436,6 @@ snapshots: quick-lru: 5.1.1 type-fest: 1.4.0 - camelcase@5.3.1: {} - camelcase@6.3.0: {} caniuse-lite@1.0.30001643: {} @@ -6418,8 +5461,6 @@ snapshots: chalk@5.3.0: {} - char-regex@1.0.2: {} - chardet@0.7.0: {} check-error@2.1.1: {} @@ -6445,8 +5486,6 @@ snapshots: inherits: 2.0.4 safe-buffer: 5.2.1 - cjs-module-lexer@1.3.1: {} - cli-cursor@3.1.0: dependencies: restore-cursor: 3.1.0 @@ -6472,18 +5511,8 @@ snapshots: cli-width@4.1.0: {} - cliui@8.0.1: - dependencies: - string-width: 4.2.3 - strip-ansi: 6.0.1 - wrap-ansi: 7.0.0 - clone@1.0.4: {} - co@4.6.0: {} - - collect-v8-coverage@1.0.2: {} - color-convert@1.9.3: dependencies: color-name: 1.1.3 @@ -6524,15 +5553,6 @@ snapshots: consola@3.2.3: {} - convert-keys@1.3.4: - dependencies: - lodash.camelcase: 4.3.0 - lodash.forown: 4.4.0 - lodash.isplainobject: 4.0.6 - lodash.snakecase: 4.1.1 - - convert-source-map@2.0.0: {} - cookie@0.6.0: {} cookiejar@2.1.4: {} @@ -6556,21 +5576,6 @@ snapshots: ripemd160: 2.0.2 sha.js: 2.4.11 - create-jest@29.7.0(@types/node@20.14.11)(ts-node@10.9.2(@types/node@20.14.11)(typescript@5.5.3)): - dependencies: - '@jest/types': 29.6.3 - chalk: 4.1.2 - exit: 0.1.2 - graceful-fs: 4.2.11 - jest-config: 29.7.0(@types/node@20.14.11)(ts-node@10.9.2(@types/node@20.14.11)(typescript@5.5.3)) - jest-util: 29.7.0 - prompts: 2.4.2 - transitivePeerDependencies: - - '@types/node' - - babel-plugin-macros - - supports-color - - ts-node - create-require@1.1.1: {} cross-fetch@3.1.8: @@ -6597,8 +5602,6 @@ snapshots: dependencies: ms: 2.1.2 - dedent@1.5.3: {} - deep-eql@5.0.2: {} deep-freeze-strict@1.1.1: {} @@ -6621,15 +5624,11 @@ snapshots: detect-indent@6.1.0: {} - detect-newline@3.1.0: {} - dezalgo@1.0.4: dependencies: asap: 2.0.6 wrappy: 1.0.2 - diff-sequences@29.6.3: {} - diff@4.0.2: {} dir-glob@3.0.1: @@ -6642,6 +5641,11 @@ snapshots: dependencies: esutils: 2.0.3 + dot-case@3.0.4: + dependencies: + no-case: 3.0.4 + tslib: 2.6.3 + dotenv-expand@10.0.0: {} dotenv@16.4.5: {} @@ -6654,10 +5658,6 @@ snapshots: typeforce: 1.18.0 wif: 2.0.6 - ejs@3.1.10: - dependencies: - jake: 10.9.2 - electron-to-chromium@1.4.832: {} elliptic@6.5.4: @@ -6680,8 +5680,6 @@ snapshots: minimalistic-assert: 1.0.1 minimalistic-crypto-utils: 1.0.1 - emittery@0.13.1: {} - emoji-regex@10.3.0: {} emoji-regex@8.0.0: {} @@ -6793,8 +5791,6 @@ snapshots: escape-string-regexp@1.0.5: {} - escape-string-regexp@2.0.0: {} - escape-string-regexp@4.0.0: {} eslint-scope@5.1.1: @@ -6872,6 +5868,8 @@ snapshots: estraverse@5.3.0: {} + estree-walker@2.0.2: {} + estree-walker@3.0.3: dependencies: '@types/estree': 1.0.5 @@ -6908,16 +5906,6 @@ snapshots: signal-exit: 4.1.0 strip-final-newline: 3.0.0 - exit@0.1.2: {} - - expect@29.7.0: - dependencies: - '@jest/expect-utils': 29.7.0 - jest-get-type: 29.6.3 - jest-matcher-utils: 29.7.0 - jest-message-util: 29.7.0 - jest-util: 29.7.0 - extendable-error@0.1.7: {} external-editor@3.1.0: @@ -6991,10 +5979,6 @@ snapshots: dependencies: reusify: 1.0.4 - fb-watchman@2.0.2: - dependencies: - bser: 2.1.1 - figures@3.2.0: dependencies: escape-string-regexp: 1.0.5 @@ -7003,10 +5987,6 @@ snapshots: dependencies: flat-cache: 3.2.0 - filelist@1.0.4: - dependencies: - minimatch: 5.1.6 - fill-range@7.1.1: dependencies: to-regex-range: 5.0.1 @@ -7047,7 +6027,7 @@ snapshots: cross-spawn: 7.0.3 signal-exit: 4.1.0 - fork-ts-checker-webpack-plugin@9.0.2(typescript@5.3.3)(webpack@5.92.1(esbuild@0.23.0)): + fork-ts-checker-webpack-plugin@9.0.2(typescript@5.3.3)(webpack@5.92.1(@swc/core@1.7.11)(esbuild@0.23.0)): dependencies: '@babel/code-frame': 7.24.7 chalk: 4.1.2 @@ -7062,7 +6042,7 @@ snapshots: semver: 7.6.3 tapable: 2.2.1 typescript: 5.3.3 - webpack: 5.92.1(esbuild@0.23.0) + webpack: 5.92.1(@swc/core@1.7.11)(esbuild@0.23.0) form-data@4.0.0: dependencies: @@ -7106,10 +6086,6 @@ snapshots: function-bind@1.1.2: {} - gensync@1.0.0-beta.2: {} - - get-caller-file@2.0.5: {} - get-east-asian-width@1.2.0: {} get-func-name@2.0.2: {} @@ -7122,8 +6098,6 @@ snapshots: has-symbols: 1.0.3 hasown: 2.0.2 - get-package-type@0.1.0: {} - get-stream@6.0.1: {} get-stream@8.0.1: {} @@ -7169,8 +6143,6 @@ snapshots: once: 1.4.0 path-is-absolute: 1.0.1 - globals@11.12.0: {} - globals@13.24.0: dependencies: type-fest: 0.20.2 @@ -7254,11 +6226,6 @@ snapshots: parent-module: 1.0.1 resolve-from: 4.0.0 - import-local@3.2.0: - dependencies: - pkg-dir: 4.2.0 - resolve-cwd: 3.0.0 - imurmurhash@0.1.4: {} inflight@1.0.6: @@ -7312,10 +6279,6 @@ snapshots: dependencies: binary-extensions: 2.3.0 - is-core-module@2.15.0: - dependencies: - hasown: 2.0.2 - is-extglob@2.1.1: {} is-fullwidth-code-point@3.0.0: {} @@ -7326,8 +6289,6 @@ snapshots: dependencies: get-east-asian-width: 1.2.0 - is-generator-fn@2.1.0: {} - is-glob@4.0.3: dependencies: is-extglob: 2.1.1 @@ -7360,37 +6321,17 @@ snapshots: istanbul-lib-coverage@3.2.2: {} - istanbul-lib-instrument@5.2.1: - dependencies: - '@babel/core': 7.24.9 - '@babel/parser': 7.24.8 - '@istanbuljs/schema': 0.1.3 - istanbul-lib-coverage: 3.2.2 - semver: 6.3.1 - transitivePeerDependencies: - - supports-color - - istanbul-lib-instrument@6.0.3: - dependencies: - '@babel/core': 7.24.9 - '@babel/parser': 7.24.8 - '@istanbuljs/schema': 0.1.3 - istanbul-lib-coverage: 3.2.2 - semver: 7.6.3 - transitivePeerDependencies: - - supports-color - istanbul-lib-report@3.0.1: dependencies: istanbul-lib-coverage: 3.2.2 make-dir: 4.0.0 supports-color: 7.2.0 - istanbul-lib-source-maps@4.0.1: + istanbul-lib-source-maps@5.0.6: dependencies: + '@jridgewell/trace-mapping': 0.3.25 debug: 4.3.5 istanbul-lib-coverage: 3.2.2 - source-map: 0.6.1 transitivePeerDependencies: - supports-color @@ -7407,328 +6348,12 @@ snapshots: optionalDependencies: '@pkgjs/parseargs': 0.11.0 - jake@10.9.2: - dependencies: - async: 3.2.5 - chalk: 4.1.2 - filelist: 1.0.4 - minimatch: 3.1.2 - - jest-changed-files@29.7.0: - dependencies: - execa: 5.1.1 - jest-util: 29.7.0 - p-limit: 3.1.0 - - jest-circus@29.7.0: - dependencies: - '@jest/environment': 29.7.0 - '@jest/expect': 29.7.0 - '@jest/test-result': 29.7.0 - '@jest/types': 29.6.3 - '@types/node': 20.14.11 - chalk: 4.1.2 - co: 4.6.0 - dedent: 1.5.3 - is-generator-fn: 2.1.0 - jest-each: 29.7.0 - jest-matcher-utils: 29.7.0 - jest-message-util: 29.7.0 - jest-runtime: 29.7.0 - jest-snapshot: 29.7.0 - jest-util: 29.7.0 - p-limit: 3.1.0 - pretty-format: 29.7.0 - pure-rand: 6.1.0 - slash: 3.0.0 - stack-utils: 2.0.6 - transitivePeerDependencies: - - babel-plugin-macros - - supports-color - - jest-cli@29.7.0(@types/node@20.14.11)(ts-node@10.9.2(@types/node@20.14.11)(typescript@5.5.3)): - dependencies: - '@jest/core': 29.7.0(ts-node@10.9.2(@types/node@20.14.11)(typescript@5.5.3)) - '@jest/test-result': 29.7.0 - '@jest/types': 29.6.3 - chalk: 4.1.2 - create-jest: 29.7.0(@types/node@20.14.11)(ts-node@10.9.2(@types/node@20.14.11)(typescript@5.5.3)) - exit: 0.1.2 - import-local: 3.2.0 - jest-config: 29.7.0(@types/node@20.14.11)(ts-node@10.9.2(@types/node@20.14.11)(typescript@5.5.3)) - jest-util: 29.7.0 - jest-validate: 29.7.0 - yargs: 17.7.2 - transitivePeerDependencies: - - '@types/node' - - babel-plugin-macros - - supports-color - - ts-node - - jest-config@29.7.0(@types/node@20.14.11)(ts-node@10.9.2(@types/node@20.14.11)(typescript@5.5.3)): - dependencies: - '@babel/core': 7.24.9 - '@jest/test-sequencer': 29.7.0 - '@jest/types': 29.6.3 - babel-jest: 29.7.0(@babel/core@7.24.9) - chalk: 4.1.2 - ci-info: 3.9.0 - deepmerge: 4.3.1 - glob: 7.2.3 - graceful-fs: 4.2.11 - jest-circus: 29.7.0 - jest-environment-node: 29.7.0 - jest-get-type: 29.6.3 - jest-regex-util: 29.6.3 - jest-resolve: 29.7.0 - jest-runner: 29.7.0 - jest-util: 29.7.0 - jest-validate: 29.7.0 - micromatch: 4.0.7 - parse-json: 5.2.0 - pretty-format: 29.7.0 - slash: 3.0.0 - strip-json-comments: 3.1.1 - optionalDependencies: - '@types/node': 20.14.11 - ts-node: 10.9.2(@types/node@20.14.11)(typescript@5.5.3) - transitivePeerDependencies: - - babel-plugin-macros - - supports-color - - jest-diff@29.7.0: - dependencies: - chalk: 4.1.2 - diff-sequences: 29.6.3 - jest-get-type: 29.6.3 - pretty-format: 29.7.0 - - jest-docblock@29.7.0: - dependencies: - detect-newline: 3.1.0 - - jest-each@29.7.0: - dependencies: - '@jest/types': 29.6.3 - chalk: 4.1.2 - jest-get-type: 29.6.3 - jest-util: 29.7.0 - pretty-format: 29.7.0 - - jest-environment-node@29.7.0: - dependencies: - '@jest/environment': 29.7.0 - '@jest/fake-timers': 29.7.0 - '@jest/types': 29.6.3 - '@types/node': 20.14.11 - jest-mock: 29.7.0 - jest-util: 29.7.0 - - jest-get-type@29.6.3: {} - - jest-haste-map@29.7.0: - dependencies: - '@jest/types': 29.6.3 - '@types/graceful-fs': 4.1.9 - '@types/node': 20.14.11 - anymatch: 3.1.3 - fb-watchman: 2.0.2 - graceful-fs: 4.2.11 - jest-regex-util: 29.6.3 - jest-util: 29.7.0 - jest-worker: 29.7.0 - micromatch: 4.0.7 - walker: 1.0.8 - optionalDependencies: - fsevents: 2.3.3 - - jest-leak-detector@29.7.0: - dependencies: - jest-get-type: 29.6.3 - pretty-format: 29.7.0 - - jest-matcher-utils@29.7.0: - dependencies: - chalk: 4.1.2 - jest-diff: 29.7.0 - jest-get-type: 29.6.3 - pretty-format: 29.7.0 - - jest-message-util@29.7.0: - dependencies: - '@babel/code-frame': 7.24.7 - '@jest/types': 29.6.3 - '@types/stack-utils': 2.0.3 - chalk: 4.1.2 - graceful-fs: 4.2.11 - micromatch: 4.0.7 - pretty-format: 29.7.0 - slash: 3.0.0 - stack-utils: 2.0.6 - - jest-mock@29.7.0: - dependencies: - '@jest/types': 29.6.3 - '@types/node': 20.14.11 - jest-util: 29.7.0 - - jest-pnp-resolver@1.2.3(jest-resolve@29.7.0): - optionalDependencies: - jest-resolve: 29.7.0 - - jest-regex-util@29.6.3: {} - - jest-resolve-dependencies@29.7.0: - dependencies: - jest-regex-util: 29.6.3 - jest-snapshot: 29.7.0 - transitivePeerDependencies: - - supports-color - - jest-resolve@29.7.0: - dependencies: - chalk: 4.1.2 - graceful-fs: 4.2.11 - jest-haste-map: 29.7.0 - jest-pnp-resolver: 1.2.3(jest-resolve@29.7.0) - jest-util: 29.7.0 - jest-validate: 29.7.0 - resolve: 1.22.8 - resolve.exports: 2.0.2 - slash: 3.0.0 - - jest-runner@29.7.0: - dependencies: - '@jest/console': 29.7.0 - '@jest/environment': 29.7.0 - '@jest/test-result': 29.7.0 - '@jest/transform': 29.7.0 - '@jest/types': 29.6.3 - '@types/node': 20.14.11 - chalk: 4.1.2 - emittery: 0.13.1 - graceful-fs: 4.2.11 - jest-docblock: 29.7.0 - jest-environment-node: 29.7.0 - jest-haste-map: 29.7.0 - jest-leak-detector: 29.7.0 - jest-message-util: 29.7.0 - jest-resolve: 29.7.0 - jest-runtime: 29.7.0 - jest-util: 29.7.0 - jest-watcher: 29.7.0 - jest-worker: 29.7.0 - p-limit: 3.1.0 - source-map-support: 0.5.13 - transitivePeerDependencies: - - supports-color - - jest-runtime@29.7.0: - dependencies: - '@jest/environment': 29.7.0 - '@jest/fake-timers': 29.7.0 - '@jest/globals': 29.7.0 - '@jest/source-map': 29.6.3 - '@jest/test-result': 29.7.0 - '@jest/transform': 29.7.0 - '@jest/types': 29.6.3 - '@types/node': 20.14.11 - chalk: 4.1.2 - cjs-module-lexer: 1.3.1 - collect-v8-coverage: 1.0.2 - glob: 7.2.3 - graceful-fs: 4.2.11 - jest-haste-map: 29.7.0 - jest-message-util: 29.7.0 - jest-mock: 29.7.0 - jest-regex-util: 29.6.3 - jest-resolve: 29.7.0 - jest-snapshot: 29.7.0 - jest-util: 29.7.0 - slash: 3.0.0 - strip-bom: 4.0.0 - transitivePeerDependencies: - - supports-color - - jest-snapshot@29.7.0: - dependencies: - '@babel/core': 7.24.9 - '@babel/generator': 7.24.10 - '@babel/plugin-syntax-jsx': 7.24.7(@babel/core@7.24.9) - '@babel/plugin-syntax-typescript': 7.24.7(@babel/core@7.24.9) - '@babel/types': 7.24.9 - '@jest/expect-utils': 29.7.0 - '@jest/transform': 29.7.0 - '@jest/types': 29.6.3 - babel-preset-current-node-syntax: 1.0.1(@babel/core@7.24.9) - chalk: 4.1.2 - expect: 29.7.0 - graceful-fs: 4.2.11 - jest-diff: 29.7.0 - jest-get-type: 29.6.3 - jest-matcher-utils: 29.7.0 - jest-message-util: 29.7.0 - jest-util: 29.7.0 - natural-compare: 1.4.0 - pretty-format: 29.7.0 - semver: 7.6.3 - transitivePeerDependencies: - - supports-color - - jest-util@29.7.0: - dependencies: - '@jest/types': 29.6.3 - '@types/node': 20.14.11 - chalk: 4.1.2 - ci-info: 3.9.0 - graceful-fs: 4.2.11 - picomatch: 2.3.1 - - jest-validate@29.7.0: - dependencies: - '@jest/types': 29.6.3 - camelcase: 6.3.0 - chalk: 4.1.2 - jest-get-type: 29.6.3 - leven: 3.1.0 - pretty-format: 29.7.0 - - jest-watcher@29.7.0: - dependencies: - '@jest/test-result': 29.7.0 - '@jest/types': 29.6.3 - '@types/node': 20.14.11 - ansi-escapes: 4.3.2 - chalk: 4.1.2 - emittery: 0.13.1 - jest-util: 29.7.0 - string-length: 4.0.2 - jest-worker@27.5.1: dependencies: '@types/node': 20.14.11 merge-stream: 2.0.0 supports-color: 8.1.1 - jest-worker@29.7.0: - dependencies: - '@types/node': 20.14.11 - jest-util: 29.7.0 - merge-stream: 2.0.0 - supports-color: 8.1.1 - - jest@29.7.0(@types/node@20.14.11)(ts-node@10.9.2(@types/node@20.14.11)(typescript@5.5.3)): - dependencies: - '@jest/core': 29.7.0(ts-node@10.9.2(@types/node@20.14.11)(typescript@5.5.3)) - '@jest/types': 29.6.3 - import-local: 3.2.0 - jest-cli: 29.7.0(@types/node@20.14.11)(ts-node@10.9.2(@types/node@20.14.11)(typescript@5.5.3)) - transitivePeerDependencies: - - '@types/node' - - babel-plugin-macros - - supports-color - - ts-node - joycon@3.1.1: {} js-sha256@0.11.0: {} @@ -7750,8 +6375,6 @@ snapshots: jsbi@4.3.0: {} - jsesc@2.5.2: {} - json-buffer@3.0.1: {} json-parse-even-better-errors@2.3.1: {} @@ -7788,10 +6411,6 @@ snapshots: dependencies: json-buffer: 3.0.1 - kleur@3.0.3: {} - - leven@3.1.0: {} - levn@0.4.1: dependencies: prelude-ls: 1.2.1 @@ -7850,20 +6469,10 @@ snapshots: dependencies: p-locate: 5.0.0 - lodash.camelcase@4.3.0: {} - - lodash.forown@4.4.0: {} - lodash.isequal@4.5.0: {} - lodash.isplainobject@4.0.6: {} - - lodash.memoize@4.1.2: {} - lodash.merge@4.6.2: {} - lodash.snakecase@4.1.1: {} - lodash.sortby@4.7.0: {} lodash.startcase@4.4.0: {} @@ -7887,6 +6496,10 @@ snapshots: dependencies: get-func-name: 2.0.2 + lower-case@2.0.2: + dependencies: + tslib: 2.6.3 + lru-cache@10.4.3: {} lru-cache@4.1.5: @@ -7894,10 +6507,6 @@ snapshots: pseudomap: 1.0.2 yallist: 2.1.2 - lru-cache@5.1.1: - dependencies: - yallist: 3.1.1 - magic-string@0.30.10: dependencies: '@jridgewell/sourcemap-codec': 1.5.0 @@ -7906,16 +6515,18 @@ snapshots: dependencies: '@jridgewell/sourcemap-codec': 1.5.0 + magicast@0.3.4: + dependencies: + '@babel/parser': 7.24.8 + '@babel/types': 7.24.9 + source-map-js: 1.2.0 + make-dir@4.0.0: dependencies: semver: 7.6.3 make-error@1.3.6: {} - makeerror@1.0.12: - dependencies: - tmpl: 1.0.5 - map-obj@4.3.0: {} md5.js@1.3.5: @@ -7959,10 +6570,6 @@ snapshots: dependencies: brace-expansion: 1.1.11 - minimatch@5.1.6: - dependencies: - brace-expansion: 2.0.1 - minimatch@9.0.5: dependencies: brace-expansion: 2.0.1 @@ -8006,6 +6613,11 @@ snapshots: neo-async@2.6.2: {} + no-case@3.0.4: + dependencies: + lower-case: 2.0.2 + tslib: 2.6.3 + node-abort-controller@3.1.1: {} node-emoji@1.11.0: @@ -8016,8 +6628,6 @@ snapshots: dependencies: whatwg-url: 5.0.0 - node-int64@0.4.0: {} - node-releases@2.0.18: {} normalize-path@3.0.0: {} @@ -8120,8 +6730,6 @@ snapshots: path-key@4.0.0: {} - path-parse@1.0.7: {} - path-scurry@1.11.1: dependencies: lru-cache: 10.4.3 @@ -8203,21 +6811,10 @@ snapshots: prettier@3.3.3: {} - pretty-format@29.7.0: - dependencies: - '@jest/schemas': 29.6.3 - ansi-styles: 5.2.0 - react-is: 18.3.1 - process-warning@3.0.0: {} process@0.11.10: {} - prompts@2.4.2: - dependencies: - kleur: 3.0.3 - sisteransi: 1.0.5 - proxy-addr@2.0.7: dependencies: forwarded: 0.2.0 @@ -8229,8 +6826,6 @@ snapshots: punycode@2.3.1: {} - pure-rand@6.1.0: {} - qs@6.12.3: dependencies: side-channel: 1.0.6 @@ -8252,8 +6847,6 @@ snapshots: dependencies: safe-buffer: 5.2.1 - react-is@18.3.1: {} - read-yaml-file@1.1.0: dependencies: graceful-fs: 4.2.11 @@ -8291,28 +6884,14 @@ snapshots: repeat-string@1.6.1: {} - require-directory@2.1.1: {} - require-from-string@2.0.2: {} - resolve-cwd@3.0.0: - dependencies: - resolve-from: 5.0.0 - resolve-from@4.0.0: {} resolve-from@5.0.0: {} resolve-pkg-maps@1.0.0: {} - resolve.exports@2.0.2: {} - - resolve@1.22.8: - dependencies: - is-core-module: 2.15.0 - path-parse: 1.0.7 - supports-preserve-symlinks-flag: 1.0.0 - restore-cursor@3.1.0: dependencies: onetime: 5.1.2 @@ -8407,8 +6986,6 @@ snapshots: secure-json-parse@2.7.0: {} - semver@6.3.1: {} - semver@7.6.3: {} serialize-javascript@6.0.2: @@ -8460,8 +7037,6 @@ snapshots: signal-exit@4.1.0: {} - sisteransi@1.0.5: {} - slash@3.0.0: {} slice-ansi@5.0.0: @@ -8474,17 +7049,23 @@ snapshots: ansi-styles: 6.2.1 is-fullwidth-code-point: 5.0.0 + snake-case@3.0.4: + dependencies: + dot-case: 3.0.4 + tslib: 2.6.3 + + snakecase-keys@8.0.1: + dependencies: + map-obj: 4.3.0 + snake-case: 3.0.4 + type-fest: 4.24.0 + sonic-boom@4.0.1: dependencies: atomic-sleep: 1.0.0 source-map-js@1.2.0: {} - source-map-support@0.5.13: - dependencies: - buffer-from: 1.1.2 - source-map: 0.6.1 - source-map-support@0.5.21: dependencies: buffer-from: 1.1.2 @@ -8507,21 +7088,12 @@ snapshots: sprintf-js@1.0.3: {} - stack-utils@2.0.6: - dependencies: - escape-string-regexp: 2.0.0 - stackback@0.0.2: {} std-env@3.7.0: {} string-argv@0.3.2: {} - string-length@4.0.2: - dependencies: - char-regex: 1.0.2 - strip-ansi: 6.0.1 - string-width@4.2.3: dependencies: emoji-regex: 8.0.0 @@ -8554,8 +7126,6 @@ snapshots: strip-bom@3.0.0: {} - strip-bom@4.0.0: {} - strip-final-newline@2.0.0: {} strip-final-newline@3.0.0: {} @@ -8606,23 +7176,22 @@ snapshots: dependencies: has-flag: 4.0.0 - supports-preserve-symlinks-flag@1.0.0: {} - symbol-observable@4.0.0: {} tapable@2.2.1: {} term-size@2.2.1: {} - terser-webpack-plugin@5.3.10(esbuild@0.23.0)(webpack@5.92.1(esbuild@0.23.0)): + terser-webpack-plugin@5.3.10(@swc/core@1.7.11)(esbuild@0.23.0)(webpack@5.92.1(@swc/core@1.7.11)(esbuild@0.23.0)): dependencies: '@jridgewell/trace-mapping': 0.3.25 jest-worker: 27.5.1 schema-utils: 3.3.0 serialize-javascript: 6.0.2 terser: 5.31.3 - webpack: 5.92.1(esbuild@0.23.0) + webpack: 5.92.1(@swc/core@1.7.11)(esbuild@0.23.0) optionalDependencies: + '@swc/core': 1.7.11 esbuild: 0.23.0 terser@5.31.3: @@ -8632,11 +7201,11 @@ snapshots: commander: 2.20.3 source-map-support: 0.5.21 - test-exclude@6.0.0: + test-exclude@7.0.1: dependencies: '@istanbuljs/schema': 0.1.3 - glob: 7.2.3 - minimatch: 3.1.2 + glob: 10.4.5 + minimatch: 9.0.5 text-table@0.2.0: {} @@ -8666,8 +7235,6 @@ snapshots: dependencies: os-tmpdir: 1.0.2 - tmpl@1.0.5: {} - to-fast-properties@2.0.0: {} to-regex-range@5.0.1: @@ -8690,27 +7257,7 @@ snapshots: ts-interface-checker@0.1.13: {} - ts-jest@29.2.3(@babel/core@7.24.9)(@jest/transform@29.7.0)(@jest/types@29.6.3)(babel-jest@29.7.0(@babel/core@7.24.9))(esbuild@0.23.0)(jest@29.7.0(@types/node@20.14.11)(ts-node@10.9.2(@types/node@20.14.11)(typescript@5.5.3)))(typescript@5.5.3): - dependencies: - bs-logger: 0.2.6 - ejs: 3.1.10 - fast-json-stable-stringify: 2.1.0 - jest: 29.7.0(@types/node@20.14.11)(ts-node@10.9.2(@types/node@20.14.11)(typescript@5.5.3)) - jest-util: 29.7.0 - json5: 2.2.3 - lodash.memoize: 4.1.2 - make-error: 1.3.6 - semver: 7.6.3 - typescript: 5.5.3 - yargs-parser: 21.1.1 - optionalDependencies: - '@babel/core': 7.24.9 - '@jest/transform': 29.7.0 - '@jest/types': 29.6.3 - babel-jest: 29.7.0(@babel/core@7.24.9) - esbuild: 0.23.0 - - ts-loader@9.5.1(typescript@5.5.3)(webpack@5.92.1(esbuild@0.23.0)): + ts-loader@9.5.1(typescript@5.5.3)(webpack@5.92.1(@swc/core@1.7.11)(esbuild@0.23.0)): dependencies: chalk: 4.1.2 enhanced-resolve: 5.17.0 @@ -8718,9 +7265,9 @@ snapshots: semver: 7.6.3 source-map: 0.7.4 typescript: 5.5.3 - webpack: 5.92.1(esbuild@0.23.0) + webpack: 5.92.1(@swc/core@1.7.11)(esbuild@0.23.0) - ts-node@10.9.2(@types/node@20.14.11)(typescript@5.5.3): + ts-node@10.9.2(@swc/core@1.7.11)(@types/node@20.14.11)(typescript@5.5.3): dependencies: '@cspotcode/source-map-support': 0.8.1 '@tsconfig/node10': 1.0.11 @@ -8737,6 +7284,8 @@ snapshots: typescript: 5.5.3 v8-compile-cache-lib: 3.0.1 yn: 3.1.1 + optionalDependencies: + '@swc/core': 1.7.11 tsconfig-paths-webpack-plugin@4.1.0: dependencies: @@ -8754,7 +7303,7 @@ snapshots: tslib@2.6.3: {} - tsup@8.2.3(postcss@8.4.39)(tsx@4.16.3)(typescript@5.5.3)(yaml@2.4.5): + tsup@8.2.3(@swc/core@1.7.11)(postcss@8.4.39)(tsx@4.16.3)(typescript@5.5.3)(yaml@2.4.5): dependencies: bundle-require: 5.0.0(esbuild@0.23.0) cac: 6.7.14 @@ -8773,6 +7322,7 @@ snapshots: sucrase: 3.35.0 tree-kill: 1.2.2 optionalDependencies: + '@swc/core': 1.7.11 postcss: 8.4.39 typescript: 5.5.3 transitivePeerDependencies: @@ -8792,8 +7342,6 @@ snapshots: dependencies: prelude-ls: 1.2.1 - type-detect@4.0.8: {} - type-fest@0.20.2: {} type-fest@0.21.3: {} @@ -8818,6 +7366,22 @@ snapshots: universalify@2.0.1: {} + unplugin-swc@1.5.1(@swc/core@1.7.11)(rollup@4.19.0): + dependencies: + '@rollup/pluginutils': 5.1.0(rollup@4.19.0) + '@swc/core': 1.7.11 + load-tsconfig: 0.2.5 + unplugin: 1.12.1 + transitivePeerDependencies: + - rollup + + unplugin@1.12.1: + dependencies: + acorn: 8.12.1 + chokidar: 3.6.0 + webpack-sources: 3.2.3 + webpack-virtual-modules: 0.6.2 + update-browserslist-db@1.1.0(browserslist@4.23.2): dependencies: browserslist: 4.23.2 @@ -8834,12 +7398,6 @@ snapshots: v8-compile-cache-lib@3.0.1: {} - v8-to-istanbul@9.3.0: - dependencies: - '@jridgewell/trace-mapping': 0.3.25 - '@types/istanbul-lib-coverage': 2.0.6 - convert-source-map: 2.0.0 - varuint-bitcoin@1.1.2: dependencies: safe-buffer: 5.2.1 @@ -8903,10 +7461,6 @@ snapshots: - supports-color - terser - walker@1.0.8: - dependencies: - makeerror: 1.0.12 - watchpack@2.4.1: dependencies: glob-to-regexp: 0.4.1 @@ -8924,7 +7478,9 @@ snapshots: webpack-sources@3.2.3: {} - webpack@5.92.1(esbuild@0.23.0): + webpack-virtual-modules@0.6.2: {} + + webpack@5.92.1(@swc/core@1.7.11)(esbuild@0.23.0): dependencies: '@types/eslint-scope': 3.7.7 '@types/estree': 1.0.5 @@ -8947,7 +7503,7 @@ snapshots: neo-async: 2.6.2 schema-utils: 3.3.0 tapable: 2.2.1 - terser-webpack-plugin: 5.3.10(esbuild@0.23.0)(webpack@5.92.1(esbuild@0.23.0)) + terser-webpack-plugin: 5.3.10(@swc/core@1.7.11)(esbuild@0.23.0)(webpack@5.92.1(@swc/core@1.7.11)(esbuild@0.23.0)) watchpack: 2.4.1 webpack-sources: 3.2.3 transitivePeerDependencies: @@ -9016,31 +7572,12 @@ snapshots: wrappy@1.0.2: {} - write-file-atomic@4.0.2: - dependencies: - imurmurhash: 0.1.4 - signal-exit: 3.0.7 - - y18n@5.0.8: {} - yallist@2.1.2: {} - yallist@3.1.1: {} - yaml@2.4.5: {} yargs-parser@21.1.1: {} - yargs@17.7.2: - dependencies: - cliui: 8.0.1 - escalade: 3.1.2 - get-caller-file: 2.0.5 - require-directory: 2.1.1 - string-width: 4.2.3 - y18n: 5.0.8 - yargs-parser: 21.1.1 - yn@3.1.1: {} yocto-queue@0.1.0: {} diff --git a/vitest.workspace.mts b/vitest.workspace.mts new file mode 100644 index 00000000..91def77a --- /dev/null +++ b/vitest.workspace.mts @@ -0,0 +1,4 @@ +export default [ + 'packages/*', + 'apps/*', +]; From 817870c8c960538b6dbc4e2b7ccb6cb9ee1f6b6c Mon Sep 17 00:00:00 2001 From: Shook Date: Wed, 14 Aug 2024 23:13:35 +0800 Subject: [PATCH 4/4] chore: update "esModuleInterop" to true in rgbpp-sdk-service --- apps/service/tsconfig.json | 1 + 1 file changed, 1 insertion(+) diff --git a/apps/service/tsconfig.json b/apps/service/tsconfig.json index e7f19600..edd7f278 100644 --- a/apps/service/tsconfig.json +++ b/apps/service/tsconfig.json @@ -4,6 +4,7 @@ "declaration": true, "resolveJsonModule": true, "removeComments": true, + "esModuleInterop": true, "moduleResolution": "Bundler", "emitDecoratorMetadata": true, "experimentalDecorators": true,