diff --git a/.eslintcache b/.eslintcache
deleted file mode 100644
index 4fedb584..00000000
--- a/.eslintcache
+++ /dev/null
@@ -1 +0,0 @@
-[{"/Users/liuxiyang/work/code/aelf-web-login/packages/login/src/config.ts":"1","/Users/liuxiyang/work/code/aelf-web-login/packages/login/src/hooks/useCallContract.ts":"2"},{"size":2147,"mtime":1715326647646,"results":"3","hashOfConfig":"4"},{"size":9055,"mtime":1715326697770,"results":"5","hashOfConfig":"4"},{"filePath":"6","messages":"7","suppressedMessages":"8","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},"15zkwcl",{"filePath":"9","messages":"10","suppressedMessages":"11","errorCount":0,"fatalErrorCount":0,"warningCount":1,"fixableErrorCount":0,"fixableWarningCount":0,"source":null},"/Users/liuxiyang/work/code/aelf-web-login/packages/login/src/config.ts",[],[],"/Users/liuxiyang/work/code/aelf-web-login/packages/login/src/hooks/useCallContract.ts",["12"],[],{"ruleId":"13","severity":1,"message":"14","line":14,"column":10,"nodeType":"15","messageId":"16","endLine":14,"endColumn":37},"@typescript-eslint/no-unused-vars","'PORTKEY_ORIGIN_CHAIN_ID_KEY' is defined but never used.","Identifier","unusedVar"]
\ No newline at end of file
diff --git a/.gitignore b/.gitignore
index 0bfb9956..415a02e8 100644
--- a/.gitignore
+++ b/.gitignore
@@ -28,4 +28,6 @@ package.json.lerna_backup
*.crt
*.pem
-.eslintcache
\ No newline at end of file
+.eslintcache
+**/coverage
+**/jest-report.xml
\ No newline at end of file
diff --git a/biome.json b/biome.json
index 9bf6ce31..0bbfcece 100644
--- a/biome.json
+++ b/biome.json
@@ -1,11 +1,11 @@
{
- "$schema": "https://biomejs.dev/schemas/1.0.0/schema.json",
+ "$schema": "https://biomejs.dev/schemas/1.9.4/schema.json",
"formatter": {
"enabled": true,
"ignore": ["./dist/*", "./es/**/*", "./lib/**/*", "_site/**/*"],
"indentStyle": "space",
"lineWidth": 100,
- "indentSize": 2
+ "indentWidth": 2
},
"javascript": {
"formatter": {
diff --git a/package.json b/package.json
index 70448b48..7f3e6f24 100644
--- a/package.json
+++ b/package.json
@@ -45,20 +45,31 @@
"lint-staged": {
"*.{ts,tsx,js,jsx}": [
"biome format --write",
- "npm run prettier"
+ "pnpm prettier",
+ "pnpm eslint"
],
"*.{json,less,md}": "prettier --ignore-unknown --write"
},
"devDependencies": {
+ "@babel/core": "^7.24.7",
"@babel/parser": "^7.24.0",
- "@biomejs/biome": "^1.4.1",
+ "@babel/preset-env": "^7.24.7",
+ "@babel/preset-react": "^7.24.7",
+ "@babel/preset-typescript": "^7.24.7",
+ "@biomejs/biome": "^1.9.2",
"@changesets/changelog-git": "^0.2.0",
"@changesets/cli": "^2.27.1",
"@ianvs/prettier-plugin-sort-imports": "^4.1.1",
- "@testing-library/react": "^14.1.2",
+ "@testing-library/jest-dom": "^6.6.3",
+ "@testing-library/react": "^16.0.1",
+ "@testing-library/react-hooks": "^8.0.1",
+ "@types/node": "^22.9.3",
+ "@types/react": "^18.3.1",
+ "@types/react-dom": "^18.3.0",
"@typescript-eslint/eslint-plugin": "^7.1.1",
"@typescript-eslint/parser": "^7.1.1",
- "@vitest/coverage-v8": "^1.1.0",
+ "@vitest/coverage-v8": "^2.1.5",
+ "@vitest/ui": "^2.1.5",
"babel-plugin-transform-remove-console": "^6.9.4",
"eslint": "^8.56.0",
"eslint-config-prettier": "^9.1.0",
@@ -67,15 +78,15 @@
"eslint-plugin-react-hooks": "^4.6.0",
"eslint-plugin-unused-imports": "^3.0.0",
"father": "^4.3.8",
+ "happy-dom": "^15.11.6",
"husky": "^8.0.3",
- "jest-canvas-mock": "^2.5.2",
- "jest-transform-stub": "^2.0.0",
- "jsdom": "^23.0.1",
"lint-staged": "^15.2.0",
+ "node-fetch": "^3.3.2",
"prettier": "^3.1.1",
"rimraf": "^5.0.5",
"typescript": "^5.3.3",
- "vitest": "^1.3.1"
+ "vite-tsconfig-paths": "^5.1.3",
+ "vitest": "^2.1.5"
},
"ci": {
"type": "aci",
diff --git a/packages/base/coverage/coverage-summary.json b/packages/base/coverage/coverage-summary.json
deleted file mode 100644
index 50e05463..00000000
--- a/packages/base/coverage/coverage-summary.json
+++ /dev/null
@@ -1,6 +0,0 @@
-{"total": {"lines":{"total":14,"covered":14,"skipped":0,"pct":100},"statements":{"total":14,"covered":14,"skipped":0,"pct":100},"functions":{"total":6,"covered":6,"skipped":0,"pct":100},"branches":{"total":4,"covered":4,"skipped":0,"pct":100},"branchesTrue":{"total":0,"covered":0,"skipped":0,"pct":"Unknown"}}
-,"/Users/liuxiyang/work/code/aelf-web-login/packages/base/src/adapter.ts": {"lines":{"total":0,"covered":0,"skipped":0,"pct":100},"functions":{"total":0,"covered":0,"skipped":0,"pct":100},"statements":{"total":0,"covered":0,"skipped":0,"pct":100},"branches":{"total":0,"covered":0,"skipped":0,"pct":100}}
-,"/Users/liuxiyang/work/code/aelf-web-login/packages/base/src/enhancedLocalStorage.ts": {"lines":{"total":11,"covered":11,"skipped":0,"pct":100},"functions":{"total":5,"covered":5,"skipped":0,"pct":100},"statements":{"total":11,"covered":11,"skipped":0,"pct":100},"branches":{"total":4,"covered":4,"skipped":0,"pct":100}}
-,"/Users/liuxiyang/work/code/aelf-web-login/packages/base/src/errors.ts": {"lines":{"total":3,"covered":3,"skipped":0,"pct":100},"functions":{"total":1,"covered":1,"skipped":0,"pct":100},"statements":{"total":3,"covered":3,"skipped":0,"pct":100},"branches":{"total":0,"covered":0,"skipped":0,"pct":100}}
-,"/Users/liuxiyang/work/code/aelf-web-login/packages/base/src/types.ts": {"lines":{"total":0,"covered":0,"skipped":0,"pct":100},"functions":{"total":0,"covered":0,"skipped":0,"pct":100},"statements":{"total":0,"covered":0,"skipped":0,"pct":100},"branches":{"total":0,"covered":0,"skipped":0,"pct":100}}
-}
diff --git a/packages/base/jest-report.xml b/packages/base/jest-report.xml
deleted file mode 100644
index c921aea4..00000000
--- a/packages/base/jest-report.xml
+++ /dev/null
@@ -1,35 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/packages/base/jest.config.ts b/packages/base/jest.config.ts
deleted file mode 100644
index f1008d14..00000000
--- a/packages/base/jest.config.ts
+++ /dev/null
@@ -1,187 +0,0 @@
-/**
- * For a detailed explanation regarding each configuration property, visit:
- * https://jestjs.io/docs/configuration
- */
-
-import type { Config } from 'jest';
-
-const config: Config = {
- // All imported modules in your tests should be mocked automatically
- // automock: false,
-
- // Stop running tests after `n` failures
- // bail: 0,
-
- // The directory where Jest should store its cached dependency information
- // cacheDirectory: "/private/var/folders/46/f0k6l2594mg21yh77r2msl8w0000gn/T/jest_dx",
-
- // Automatically clear mock calls, instances, contexts and results before every test
- clearMocks: true,
-
- // Indicates whether the coverage information should be collected while executing the test
- collectCoverage: true,
-
- // An array of glob patterns indicating a set of files for which coverage information should be collected
- // collectCoverageFrom: undefined,
-
- // The directory where Jest should output its coverage files
- coverageDirectory: 'coverage',
-
- // An array of regexp pattern strings used to skip coverage collection
- // coveragePathIgnorePatterns: [
- // "/node_modules/"
- // ],
-
- // Indicates which provider should be used to instrument code for coverage
- // coverageProvider: "babel",
-
- // A list of reporter names that Jest uses when writing coverage reports
- coverageReporters: ['json-summary', 'text'],
-
- // An object that configures minimum threshold enforcement for coverage results
- // coverageThreshold: undefined,
-
- // A path to a custom dependency extractor
- // dependencyExtractor: undefined,
-
- // Make calling deprecated APIs throw helpful error messages
- // errorOnDeprecated: false,
-
- // The default configuration for fake timers
- // fakeTimers: {
- // "enableGlobally": false
- // },
-
- // Force coverage collection from ignored files using an array of glob patterns
- // forceCoverageMatch: [],
-
- // A path to a module which exports an async function that is triggered once before all test suites
- // globalSetup: undefined,
-
- // A path to a module which exports an async function that is triggered once after all test suites
- // globalTeardown: undefined,
-
- // A set of global variables that need to be available in all test environments
-
- // The maximum amount of workers used to run your tests. Can be specified as % or a number. E.g. maxWorkers: 10% will use 10% of your CPU amount + 1 as the maximum worker number. maxWorkers: 2 will use a maximum of 2 workers.
- // maxWorkers: "50%",
-
- // An array of directory names to be searched recursively up from the requiring module's location
- // moduleDirectories: [
- // "node_modules"
- // ],
-
- // An array of file extensions your modules use
- // moduleFileExtensions: ['js', 'mjs', 'cjs', 'jsx', 'ts', 'tsx', 'json', 'node'],
-
- // A map from regular expressions to module names or to arrays of module names that allow to stub out resources with a single module
- // moduleNameMapper: {},
-
- // An array of regexp pattern strings, matched against all module paths before considered 'visible' to the module loader
- // modulePathIgnorePatterns: [],
-
- // Activates notifications for test results
- // notify: false,
-
- // An enum that specifies notification mode. Requires { notify: true }
- // notifyMode: "failure-change",
-
- // A preset that is used as a base for Jest's configuration
- // preset: 'babel-jest',
-
- // Run tests from one or more projects
- // projects: undefined,
-
- // Use this configuration option to add custom reporters to Jest
- reporters: [
- 'default',
- [
- 'jest-junit',
- {
- outputDirectory: '.',
- outputName: 'jest-report.xml',
- },
- ],
- ],
-
- // Automatically reset mock state before every test
- // resetMocks: false,
-
- // Reset the module registry before running each individual test
- // resetModules: false,
-
- // A path to a custom resolver
- // resolver: undefined,
-
- // Automatically restore mock state and implementation before every test
- // restoreMocks: false,
-
- // The root directory that Jest should scan for tests and modules within
- // rootDir: undefined,
-
- // A list of paths to directories that Jest should use to search for files in
- // roots: [
- // ""
- // ],
-
- // Allows you to use a custom runner instead of Jest's default test runner
- // runner: "jest-runner",
-
- // The paths to modules that run some code to configure or set up the testing environment before each test
- // setupFiles: [],
-
- // A list of paths to modules that run some code to configure or set up the testing framework before each test
- // setupFilesAfterEnv: [],
-
- // The number of seconds after which a test is considered as slow and reported as such in the results.
- // slowTestThreshold: 5,
-
- // A list of paths to snapshot serializer modules Jest should use for snapshot testing
- // snapshotSerializers: [],
-
- // The test environment that will be used for testing
- testEnvironment: 'node',
-
- // Options that will be passed to the testEnvironment
- // testEnvironmentOptions: {},
-
- // Adds a location field to test results
- // testLocationInResults: false,
-
- // The glob patterns Jest uses to detect test files
- // testMatch: ['**/__tests__/**/*.[jt]s?(x)', '**/?(*.)+(spec|test).[tj]s?(x)'],
-
- // An array of regexp pattern strings that are matched against all test paths, matched tests are skipped
- // testPathIgnorePatterns: [
- // "/node_modules/"
- // ],
-
- // The regexp pattern or array of patterns that Jest uses to detect test files
- // testRegex: [],
-
- // This option allows the use of a custom results processor
- // testResultsProcessor: undefined,
-
- // This option allows use of a custom test runner
- // testRunner: "jest-circus/runner",
-
- // A map from regular expressions to paths to transformers
- transform: { '^.+\\.(js|jsx|ts|tsx)$': 'babel-jest', '^.+\\.js$': 'babel-jest' },
-
- // An array of regexp pattern strings that are matched against all source file paths, matched files will skip transformation
- transformIgnorePatterns: [],
-
- // An array of regexp pattern strings that are matched against all modules before the module loader will automatically return a mock for them
- // unmockedModulePathPatterns: undefined,
-
- // Indicates whether each individual test should be reported during the run
- // verbose: undefined,
-
- // An array of regexp patterns that are matched against all source file paths before re-running tests in watch mode
- // watchPathIgnorePatterns: [],
-
- // Whether to use watchman for file crawling
- // watchman: true,
-};
-
-export default config;
diff --git a/packages/base/package.json b/packages/base/package.json
index 65041983..52ede70b 100644
--- a/packages/base/package.json
+++ b/packages/base/package.json
@@ -23,8 +23,10 @@
"scripts": {
"dev": "father dev",
"build": "father build",
- "test": "jest --config=jest.config.ts --detectOpenHandles",
- "test:coverage": "jest --config=jest.config.ts --coverage --detectOpenHandles"
+ "test": "vitest",
+ "test:dev": "pnpm test -- --watch",
+ "test:coverage": "pnpm test -- --coverage",
+ "test:ui": "pnpm test:dev --ui"
},
"dependencies": {
"eventemitter3": "^5.0.1"
@@ -34,14 +36,7 @@
"@babel/preset-env": "^7.24.7",
"@babel/preset-typescript": "^7.24.7",
"@portkey/did-ui-react": "^2.15.9",
- "@portkey/types": "^2.15.9",
- "@types/jest": "^29.5.12",
- "babel-jest": "^29.7.0",
- "jest": "^29.7.0",
- "jest-environment-jsdom": "^29.7.0",
- "jest-junit": "^16.0.0",
- "jsdom": "^23.0.1",
- "typescript": "^5.3.3"
+ "@portkey/types": "^2.15.9"
},
"peerDependencies": {
"@portkey/did-ui-react": "^2.15.9"
diff --git a/packages/base/src/__tests__/enhancedLocalStorageInWindow.test.ts b/packages/base/src/__tests__/enhancedLocalStorageInWindow.test.ts
index 987c6b8f..45f03ac0 100644
--- a/packages/base/src/__tests__/enhancedLocalStorageInWindow.test.ts
+++ b/packages/base/src/__tests__/enhancedLocalStorageInWindow.test.ts
@@ -1,15 +1,13 @@
-const originalConsoleLog = console.log;
+beforeEach(() => {
+ vi.spyOn(console, 'log');
+ (global as any).window = {};
+});
+afterEach(() => {
+ vi.unmock('console.log');
+ delete (global as any).window;
+});
describe('localStorageMock in window', () => {
- beforeEach(() => {
- console.log = jest.fn();
- (global as any).window = {};
- });
- afterEach(() => {
- console.log = originalConsoleLog;
- delete (global as any).window;
- });
-
it('enhancedLocalStorage should be set to localStorage in browser environment', async () => {
await import('../enhancedLocalStorage');
expect(console.log).toHaveBeenCalledWith('enhancedLocalStorage in window');
diff --git a/packages/base/vite.config.ts b/packages/base/vite.config.ts
new file mode 100644
index 00000000..08b9a087
--- /dev/null
+++ b/packages/base/vite.config.ts
@@ -0,0 +1,4 @@
+import baseViteConfig from '../tools/vite.config';
+import { mergeConfig } from 'vitest/config';
+
+export default mergeConfig(baseViteConfig, {});
diff --git a/packages/base/vitest.setup.ts b/packages/base/vitest.setup.ts
new file mode 100644
index 00000000..a5309360
--- /dev/null
+++ b/packages/base/vitest.setup.ts
@@ -0,0 +1,2 @@
+import '../tools/__mocks__/setupGlobal';
+import '../tools/__mocks__/setupLocal';
diff --git a/packages/bridge/jest.setup.ts b/packages/bridge/jest.setup.ts
deleted file mode 100644
index 7317d3cb..00000000
--- a/packages/bridge/jest.setup.ts
+++ /dev/null
@@ -1,23 +0,0 @@
-import { type TChainId } from '@aelf-web-login/wallet-adapter-base';
-import '@testing-library/jest-dom';
-jest.mock('@aelf-web-login/wallet-adapter-portkey-aa', () => ({
- PortkeyAAWallet: jest.fn(),
-}));
-jest.mock('@portkey/did-ui-react', () => ({
- getChainInfo: (c: TChainId) => (!c ? null : {}),
- did: {
- didWallet: {
- managementAccount: {
- privateKey: '',
- },
- },
- },
-}));
-jest.mock('lottie-web');
-jest.mock('@portkey/utils');
-import 'jest-canvas-mock';
-global.fetch = require('node-fetch');
-import { TextEncoder, TextDecoder } from 'util';
-global.TextEncoder = TextEncoder;
-// @ts-expect-error TextDecoder
-global.TextDecoder = TextDecoder;
diff --git a/packages/bridge/package.json b/packages/bridge/package.json
index d2aaa161..2991d4e0 100755
--- a/packages/bridge/package.json
+++ b/packages/bridge/package.json
@@ -26,13 +26,14 @@
"scripts": {
"dev": "father dev",
"build": "father build",
- "test": "NODE_OPTIONS='$NODE_OPTIONS --experimental-vm-modules' jest",
+ "test": "vitest",
"test:dev": "pnpm test -- --watch",
"test:coverage": "pnpm test -- --coverage",
- "test:debug": "pnpm test -- --detectOpenHandles"
+ "test:ui": "pnpm test:dev --ui"
},
"dependencies": {
"@aelf-web-login/wallet-adapter-base": "workspace:*",
+ "@aelf-web-login/tools": "workspace:*",
"@portkey/contracts": "^2.15.9",
"@portkey/services": "^2.15.9",
"@reduxjs/toolkit": "^2.2.3",
@@ -44,22 +45,10 @@
"@portkey/did-ui-react": "^2.15.9",
"@portkey/types": "^2.15.9",
"@portkey/utils": "^2.15.9",
- "@babel/core": "^7.24.7",
- "@babel/preset-env": "^7.24.7",
- "@babel/preset-react": "^7.24.7",
- "@babel/preset-typescript": "^7.24.7",
- "@swc/core": "^1.9.3",
- "@swc/jest": "^0.2.37",
- "@testing-library/jest-dom": "^6.5.0",
- "@testing-library/react": "^16.0.1",
- "@testing-library/react-hooks": "^8.0.1",
- "@types/jest": "^29.5.14",
"@types/react": "^18.3.1",
"@types/react-dom": "^18.3.0",
"antd": "4.24.14",
- "father": "^4.3.8",
- "jest": "^29.7.0",
- "typescript": "^5.3.3"
+ "father": "^4.3.8"
},
"peerDependencies": {
"@portkey/did-ui-react": "^2.15.9"
diff --git a/packages/bridge/src/__tests__/mountApp.test.tsx b/packages/bridge/src/__tests__/mountApp.test.tsx
index 8341344d..cc51c817 100644
--- a/packages/bridge/src/__tests__/mountApp.test.tsx
+++ b/packages/bridge/src/__tests__/mountApp.test.tsx
@@ -4,12 +4,13 @@ import { useMountSignIn } from '../mountApp';
import { Bridge } from '../bridge';
import { NetworkEnum, WalletAdapter } from '@aelf-web-login/wallet-adapter-base';
import { IBaseConfig } from '../index';
-import '@testing-library/jest-dom';
// Mock components and dependencies
-jest.mock('../ui', () => jest.fn(() => SignInModal Component
));
+vi.mock('../ui', () => ({
+ default: () => SignInModal Component
,
+}));
-jest.mock('@portkey/did-ui-react', () => ({
+vi.mock('@portkey/did-ui-react', () => ({
PortkeyProvider: ({ children }: { children: React.ReactNode }) => {children}
,
}));
diff --git a/packages/bridge/src/__tests__/useLockCallback.test.ts b/packages/bridge/src/__tests__/useLockCallback.test.ts
index 598038e2..c40e2d5f 100644
--- a/packages/bridge/src/__tests__/useLockCallback.test.ts
+++ b/packages/bridge/src/__tests__/useLockCallback.test.ts
@@ -3,7 +3,7 @@ import useLockCallback from '../useLockCallback';
describe('useLockCallback Hook', () => {
it('should execute function and lock', async () => {
- const mockFn = jest.fn(async () => {
+ const mockFn = vi.fn(async () => {
await new Promise((res) => setTimeout(res, 100));
return 'result';
});
@@ -21,7 +21,7 @@ describe('useLockCallback Hook', () => {
});
it('should prevent concurrent execution', async () => {
- const mockFn = jest.fn(async () => {
+ const mockFn = vi.fn(async () => {
await new Promise((res) => setTimeout(res, 100));
});
@@ -40,7 +40,7 @@ describe('useLockCallback Hook', () => {
});
it('should allow another execution after previous is finished', async () => {
- const mockFn = jest.fn(async () => {
+ const mockFn = vi.fn(async () => {
await new Promise((res) => setTimeout(res, 100));
return 'success';
});
@@ -66,7 +66,7 @@ describe('useLockCallback Hook', () => {
});
it('should release the lock if the callback throws an error', async () => {
- const mockFn = jest.fn(async () => {
+ const mockFn = vi.fn(async () => {
throw new Error('Test error');
});
diff --git a/packages/bridge/src/__tests__/useVerifier.test.ts b/packages/bridge/src/__tests__/useVerifier.test.ts
index 6e6d72d5..95d94060 100644
--- a/packages/bridge/src/__tests__/useVerifier.test.ts
+++ b/packages/bridge/src/__tests__/useVerifier.test.ts
@@ -4,25 +4,25 @@ import { did, ConfigProvider, useVerifyToken, IVerifier } from '@portkey/did-ui-
import { TChainId } from '@aelf-web-login/wallet-adapter-base';
import { OperationTypeEnum } from '@portkey/services';
-jest.mock('@portkey/did-ui-react', () => ({
+vi.mock('@portkey/did-ui-react', () => ({
did: {
services: {
- getRecommendationVerifier: jest.fn(),
+ getRecommendationVerifier: vi.fn(),
},
},
ConfigProvider: {
- getSocialLoginConfig: jest.fn(),
+ getSocialLoginConfig: vi.fn(),
},
- useVerifyToken: jest.fn(),
+ useVerifyToken: vi.fn(),
}));
-jest.mock('@aelf-web-login/wallet-adapter-base', () => ({
+vi.mock('@aelf-web-login/wallet-adapter-base', () => ({
TChainId: {
AELF: 'AELF',
},
}));
-jest.mock('@portkey/services', () => ({
+vi.mock('@portkey/services', () => ({
AccountType: {
Apple: 'Apple',
Google: 'Google',
@@ -34,29 +34,29 @@ jest.mock('@portkey/services', () => ({
}));
describe('useVerifier', () => {
- const mockVerifyToken = jest.fn();
- const mockGetRecommendationVerifier = jest.fn();
+ const mockVerifyToken = vi.fn();
+ const mockGetRecommendationVerifier = vi.fn();
const mockSocialLoginConfig = {
Apple: {
clientId: 'apple-client-id',
redirectURI: 'apple-redirect-uri',
- customLoginHandler: jest.fn(),
+ customLoginHandler: vi.fn(),
},
Google: {
clientId: 'google-client-id',
- customLoginHandler: jest.fn(),
+ customLoginHandler: vi.fn(),
},
Telegram: {
- customLoginHandler: jest.fn(),
+ customLoginHandler: vi.fn(),
},
};
beforeEach(() => {
- (did.services.getRecommendationVerifier as jest.Mock).mockReturnValue(
+ (did.services.getRecommendationVerifier as vi.Mock).mockReturnValue(
mockGetRecommendationVerifier,
);
- (ConfigProvider.getSocialLoginConfig as jest.Mock).mockReturnValue(mockSocialLoginConfig);
- (useVerifyToken as jest.Mock).mockReturnValue(mockVerifyToken);
+ (ConfigProvider.getSocialLoginConfig as vi.Mock).mockReturnValue(mockSocialLoginConfig);
+ (useVerifyToken as vi.Mock).mockReturnValue(mockVerifyToken);
});
it('should return getRecommendationVerifier and verifySocialToken functions', () => {
diff --git a/packages/bridge/src/__tests__/utils.test.ts b/packages/bridge/src/__tests__/utils.test.tsx
similarity index 70%
rename from packages/bridge/src/__tests__/utils.test.ts
rename to packages/bridge/src/__tests__/utils.test.tsx
index ae5874e6..9deb4b6d 100644
--- a/packages/bridge/src/__tests__/utils.test.ts
+++ b/packages/bridge/src/__tests__/utils.test.tsx
@@ -1,12 +1,32 @@
import { type TChainId } from '@aelf-web-login/wallet-adapter-base';
import { getCaContractBase, getIsManagerReadOnly } from '../utils';
import { getContractBasic } from '@portkey/contracts';
+import { type Mock } from 'vitest';
afterEach(() => {
- jest.unmock('@portkey/contracts');
+ vi.unmock('@portkey/contracts');
});
-jest.mock('@portkey/contracts', () => ({
- getContractBasic: jest.fn(),
+
+vi.mock('@portkey/contracts', () => ({
+ getContractBasic: vi.fn(),
+}));
+
+vi.mock('@portkey/did-ui-react', () => ({
+ getChainInfo: (c: TChainId) => (!c ? null : {}),
+ did: {
+ didWallet: {
+ managementAccount: {
+ privateKey: '',
+ },
+ },
+ },
+ PortkeyProvider: ({ children }: { children: React.ReactNode }) => {children}
,
+}));
+
+vi.mock('@portkey/utils', () => ({
+ aelf: {
+ getWallet: vi.fn(),
+ },
}));
describe('getCaContractBase()', () => {
@@ -25,7 +45,7 @@ describe('getCaContractBase()', () => {
chainId,
address: '',
};
- (getContractBasic as jest.Mock).mockImplementation(() => mockContractBase);
+ (getContractBasic as Mock).mockImplementation(() => mockContractBase);
const contractBase = await getCaContractBase(chainId);
expect(contractBase).toMatchObject(mockContractBase);
});
diff --git a/packages/bridge/tsconfig.json b/packages/bridge/tsconfig.json
index 24cde58c..450e7d24 100644
--- a/packages/bridge/tsconfig.json
+++ b/packages/bridge/tsconfig.json
@@ -1,4 +1,4 @@
{
"extends": "../../tsconfig.base.json",
- "include": ["src/**/*.ts", "src/**/*.tsx", "src/global.d.ts", ".fatherrc.ts"]
+ "include": ["src/**/*.ts", "src/**/*.tsx", ".fatherrc.ts", "vitest.setup.tsx"]
}
diff --git a/packages/bridge/vite.config.ts b/packages/bridge/vite.config.ts
new file mode 100644
index 00000000..08b9a087
--- /dev/null
+++ b/packages/bridge/vite.config.ts
@@ -0,0 +1,4 @@
+import baseViteConfig from '../tools/vite.config';
+import { mergeConfig } from 'vitest/config';
+
+export default mergeConfig(baseViteConfig, {});
diff --git a/packages/bridge/vitest.setup.ts b/packages/bridge/vitest.setup.ts
new file mode 100644
index 00000000..a5309360
--- /dev/null
+++ b/packages/bridge/vitest.setup.ts
@@ -0,0 +1,2 @@
+import '../tools/__mocks__/setupGlobal';
+import '../tools/__mocks__/setupLocal';
diff --git a/packages/react/coverage/coverage-summary.json b/packages/react/coverage/coverage-summary.json
deleted file mode 100644
index f1be1b7f..00000000
--- a/packages/react/coverage/coverage-summary.json
+++ /dev/null
@@ -1,3 +0,0 @@
-{"total": {"lines":{"total":17,"covered":16,"skipped":0,"pct":94.11},"statements":{"total":18,"covered":17,"skipped":0,"pct":94.44},"functions":{"total":3,"covered":3,"skipped":0,"pct":100},"branches":{"total":6,"covered":5,"skipped":0,"pct":83.33},"branchesTrue":{"total":0,"covered":0,"skipped":0,"pct":"Unknown"}}
-,"/Users/aelf/Documents/Projects/aelf/aelf-web-login/packages/react/src/context.tsx": {"lines":{"total":17,"covered":16,"skipped":0,"pct":94.11},"functions":{"total":3,"covered":3,"skipped":0,"pct":100},"statements":{"total":18,"covered":17,"skipped":0,"pct":94.44},"branches":{"total":6,"covered":5,"skipped":0,"pct":83.33}}
-}
diff --git a/packages/react/jest-report.xml b/packages/react/jest-report.xml
deleted file mode 100644
index ab9bca0a..00000000
--- a/packages/react/jest-report.xml
+++ /dev/null
@@ -1,27 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/packages/react/jest.config.ts b/packages/react/jest.config.ts
deleted file mode 100644
index caf397c4..00000000
--- a/packages/react/jest.config.ts
+++ /dev/null
@@ -1,214 +0,0 @@
-/**
- * For a detailed explanation regarding each configuration property, visit:
- * https://jestjs.io/docs/configuration
- */
-
-import {
- createDefaultEsmPreset,
- pathsToModuleNameMapper,
- type JestConfigWithTsJest,
- type TsJestTransformerOptions,
-} from 'ts-jest';
-import { compilerOptions } from '../../tsconfig.base.json';
-
-const presetConfig = createDefaultEsmPreset({
- tsconfig: compilerOptions as TsJestTransformerOptions['tsconfig'],
- diagnostics: false, // important - to make ts-jest ignore type-checking. must set here
- isolatedModules: true, // perf
-});
-
-const config: JestConfigWithTsJest = {
- ...presetConfig,
- // All imported modules in your tests should be mocked automatically
- // automock: false,
-
- // Stop running tests after `n` failures
- // bail: 0,
-
- // The directory where Jest should store its cached dependency information
- // cacheDirectory: "/private/var/folders/46/f0k6l2594mg21yh77r2msl8w0000gn/T/jest_dx",
-
- // Automatically clear mock calls, instances, contexts and results before every test
- clearMocks: true,
-
- // Indicates whether the coverage information should be collected while executing the test
- collectCoverage: true,
-
- // An array of glob patterns indicating a set of files for which coverage information should be collected
- // collectCoverageFrom: undefined,
-
- // The directory where Jest should output its coverage files
- coverageDirectory: 'coverage',
-
- // An array of regexp pattern strings used to skip coverage collection
- // coveragePathIgnorePatterns: [
- // "/node_modules/"
- // ],
-
- // Indicates which provider should be used to instrument code for coverage
- // coverageProvider: "babel",
-
- // A list of reporter names that Jest uses when writing coverage reports
- coverageReporters: ['json-summary', 'text'],
-
- // An object that configures minimum threshold enforcement for coverage results
- // coverageThreshold: undefined,
-
- // A path to a custom dependency extractor
- // dependencyExtractor: undefined,
-
- // Make calling deprecated APIs throw helpful error messages
- // errorOnDeprecated: false,
-
- // The default configuration for fake timers
- // fakeTimers: {
- // "enableGlobally": false
- // },
-
- // Force coverage collection from ignored files using an array of glob patterns
- // forceCoverageMatch: [],
-
- // A path to a module which exports an async function that is triggered once before all test suites
- // globalSetup: undefined,
-
- // A path to a module which exports an async function that is triggered once after all test suites
- // globalTeardown: undefined,
-
- // A set of global variables that need to be available in all test environments
-
- // The maximum amount of workers used to run your tests. Can be specified as % or a number. E.g. maxWorkers: 10% will use 10% of your CPU amount + 1 as the maximum worker number. maxWorkers: 2 will use a maximum of 2 workers.
- // maxWorkers: "50%",
-
- // An array of directory names to be searched recursively up from the requiring module's location
- // moduleDirectories: [
- // "node_modules"
- // ],
-
- // An array of file extensions your modules use
- moduleFileExtensions: ['js', 'jsx', 'ts', 'tsx'],
-
- // A map from regular expressions to module names or to arrays of module names that allow to stub out resources with a single module
- // moduleNameMapper: {},
-
- // An array of regexp pattern strings, matched against all module paths before considered 'visible' to the module loader
- // modulePathIgnorePatterns: [],
-
- // Activates notifications for test results
- // notify: false,
-
- // An enum that specifies notification mode. Requires { notify: true }
- // notifyMode: "failure-change",
-
- // A preset that is used as a base for Jest's configuration
- // preset: 'babel-jest',
-
- // Run tests from one or more projects
- // projects: undefined,
-
- // Use this configuration option to add custom reporters to Jest
- reporters: [
- 'default',
- [
- 'jest-junit',
- {
- outputDirectory: '.',
- outputName: 'jest-report.xml',
- },
- ],
- ],
-
- // Automatically reset mock state before every test
- // resetMocks: false,
-
- // Reset the module registry before running each individual test
- // resetModules: false,
-
- // A path to a custom resolver
- // resolver: undefined,
-
- // Automatically restore mock state and implementation before every test
- // restoreMocks: false,
-
- // The root directory that Jest should scan for tests and modules within
- // rootDir: './',
-
- // A list of paths to directories that Jest should use to search for files in
- // roots: [
- // ""
- // ],
-
- // Allows you to use a custom runner instead of Jest's default test runner
- // runner: "jest-runner",
-
- // The paths to modules that run some code to configure or set up the testing environment before each test
- // setupFiles: [],
-
- // A list of paths to modules that run some code to configure or set up the testing framework before each test
- setupFilesAfterEnv: ['/jest.setup.ts'],
-
- // The number of seconds after which a test is considered as slow and reported as such in the results.
- // slowTestThreshold: 5,
-
- // A list of paths to snapshot serializer modules Jest should use for snapshot testing
- // snapshotSerializers: [],
-
- // The test environment that will be used for testing
- testEnvironment: 'jsdom',
-
- // Options that will be passed to the testEnvironment
- // testEnvironmentOptions: {},
-
- // Adds a location field to test results
- // testLocationInResults: false,
-
- // The glob patterns Jest uses to detect test files
- // testMatch: ['**/__tests__/**/*.[jt]s?(x)', '**/?(*.)+(spec|test).[tj]s?(x)'],
-
- // An array of regexp pattern strings that are matched against all test paths, matched tests are skipped
- // testPathIgnorePatterns: [
- // "/node_modules/"
- // ],
-
- // The regexp pattern or array of patterns that Jest uses to detect test files
- // testRegex: [],
-
- // This option allows the use of a custom results processor
- // testResultsProcessor: undefined,
-
- // This option allows use of a custom test runner
- // testRunner: "jest-circus/runner",
-
- // A map from regular expressions to paths to transformers
- transform: {
- ...presetConfig.transform,
- '^.+\\.(js|jsx)$': 'babel-jest',
- },
- // An array of regexp pattern strings that are matched against all source file paths, matched files will skip transformation
- // An array of regexp pattern strings that are matched against all source file paths, matched files will skip transformation
- transformIgnorePatterns: [
- '.pnpm/node_modules/(?!((jest-)?react-native(-.*)?|@react-native(-community)?|victory(-.*)?|uuid)|react-navigation|@shopify/react-native-skia|@react-navigation/.*/)',
- ],
-
- // An array of regexp pattern strings that are matched against all modules before the module loader will automatically return a mock for them
- // unmockedModulePathPatterns: undefined,
-
- // Indicates whether each individual test should be reported during the run
- // verbose: undefined,
-
- // An array of regexp patterns that are matched against all source file paths before re-running tests in watch mode
- // watchPathIgnorePatterns: [],
-
- // Whether to use watchman for file crawling
- // watchman: true,
- roots: [''],
- modulePaths: ['./', compilerOptions.baseUrl],
- moduleDirectories: ['node_modules', 'src'],
- moduleNameMapper: {
- ...pathsToModuleNameMapper(compilerOptions.paths, { prefix: '../../' }),
- '\\.(jpg|jpeg|png|gif|eot|otf|webp|svg|ttf|woff|woff2|mp4|webm|wav|mp3|m4a|aac|oga|css|less|scss|sass)$':
- 'jest-transform-stub',
- },
- preset: 'ts-jest',
-};
-
-export default config;
diff --git a/packages/react/package.json b/packages/react/package.json
index 6bbcd9d6..20fcbddc 100755
--- a/packages/react/package.json
+++ b/packages/react/package.json
@@ -23,10 +23,10 @@
"scripts": {
"dev": "father dev",
"build": "father build",
- "test": "NODE_OPTIONS='$NODE_OPTIONS --experimental-vm-modules' jest",
+ "test": "vitest",
"test:dev": "pnpm test -- --watch",
"test:coverage": "pnpm test -- --coverage",
- "test:debug": "pnpm test -- --detectOpenHandles"
+ "test:ui": "pnpm test:dev --ui"
},
"dependencies": {
"@aelf-web-login/wallet-adapter-base": "workspace:*",
@@ -40,19 +40,9 @@
"@babel/preset-env": "^7.24.7",
"@babel/preset-react": "^7.24.7",
"@babel/preset-typescript": "^7.24.7",
- "@testing-library/jest-dom": "^6.4.6",
- "@testing-library/react": "^16.0.0",
- "@types/jest": "^29.5.13",
"@types/react": "^18.3.1",
"@types/react-dom": "^18.3.0",
- "babel-jest": "^29.7.0",
- "father": "^4.3.8",
- "jest": "^29.7.0",
- "jest-junit": "^16.0.0",
- "node-fetch": "^3.3.2",
- "react-test-renderer": "^18.3.1",
- "ts-jest": "^29.2.5",
- "typescript": "^5.3.3"
+ "father": "^4.3.8"
},
"publishConfig": {
"registry": "https://registry.npmjs.org",
diff --git a/packages/react/src/__tests__/context.test.tsx b/packages/react/src/__tests__/context.test.tsx
index 63362432..42c35762 100644
--- a/packages/react/src/__tests__/context.test.tsx
+++ b/packages/react/src/__tests__/context.test.tsx
@@ -4,7 +4,7 @@ import config from '../data/config';
import { IBridgeAPI } from '@aelf-web-login/wallet-adapter-bridge';
const mockBridgeAPI: IBridgeAPI = {
- getSignIn: jest.fn((children) => children),
+ getSignIn: vi.fn((children) => children),
store: {
getState: () => null as unknown as ReturnType,
subscribe: () => null as unknown as ReturnType,
@@ -14,24 +14,24 @@ const mockBridgeAPI: IBridgeAPI = {
describe('WebLoginProvider', () => {
it('should render children with provided bridgeAPI', () => {
- render(
+ const a = render(
// @ts-expect-error passing invalid props on purpose
- Test Child
+ with provided bridgeAPI
,
);
-
- expect(screen.getByText('Test Child')).toBeInTheDocument();
+ a.debug();
+ expect(screen.getByText('with provided bridgeAPI')).toBeInTheDocument();
});
it('should render children with provided config', () => {
render(
- Test Child
+ with provided config
,
);
- expect(screen.getByText('Test Child')).toBeInTheDocument();
+ expect(screen.getByText('with provided config')).toBeInTheDocument();
});
it('should return null if no bridgeAPI nor config', () => {
diff --git a/packages/react/src/__tests__/init.test.ts b/packages/react/src/__tests__/init.test.ts
index 202a308b..59588592 100644
--- a/packages/react/src/__tests__/init.test.ts
+++ b/packages/react/src/__tests__/init.test.ts
@@ -1,24 +1,50 @@
+import { NetworkEnum } from '@aelf-web-login/wallet-adapter-base';
import { init } from '../index';
-import { initBridge } from '@aelf-web-login/wallet-adapter-bridge';
+import { type IConfigProps, initBridge } from '@aelf-web-login/wallet-adapter-bridge';
+import VConsole from 'vconsole';
+
+const baseOptions: IConfigProps = {
+ baseConfig: {
+ showVconsole: true,
+ networkType: NetworkEnum.TESTNET,
+ chainId: 'tDVV',
+ sideChainId: 'tDVW',
+ },
+ didConfig: {},
+ wallets: [],
+};
describe('init', () => {
it('should initialize VConsole if showVconsole is true', async () => {
- const options = { baseConfig: { showVconsole: true } };
- init(options as any);
- const VConsole = await import('vconsole');
- expect(VConsole).toHaveBeenCalled();
+ const options: IConfigProps = {
+ ...baseOptions,
+ baseConfig: { ...baseOptions.baseConfig, showVconsole: true },
+ };
+ init(options);
+ // workaround for rare race condition where VConsole is being initiated but init() already returns
+ // and assertion runs
+ await new Promise((r) => {
+ setTimeout(() => {
+ expect(VConsole).toHaveBeenCalled();
+ r();
+ }, 10);
+ });
});
it('should not initialize VConsole if showVconsole is false', async () => {
- const options = { baseConfig: { showVconsole: false } };
- init(options as any);
- const VConsole = await import('vconsole');
+ const options = {
+ ...baseOptions,
+ baseConfig: { ...baseOptions.baseConfig, showVconsole: false },
+ };
+ init(options);
expect(VConsole).not.toHaveBeenCalled();
});
it('should call initBridge with the given options', async () => {
- const options = { baseConfig: { showVconsole: false } };
- // const { initBridge } = await import('@aelf-web-login/wallet-adapter-bridge');
- init(options as any);
+ const options = {
+ ...baseOptions,
+ baseConfig: { ...baseOptions.baseConfig, showVconsole: false },
+ };
+ init(options);
expect(initBridge).toHaveBeenCalledWith(options);
});
});
diff --git a/packages/react/src/__tests__/useConnectWallet.test.tsx b/packages/react/src/__tests__/useConnectWallet.test.tsx
index 0540fd5f..306cc6be 100644
--- a/packages/react/src/__tests__/useConnectWallet.test.tsx
+++ b/packages/react/src/__tests__/useConnectWallet.test.tsx
@@ -3,17 +3,15 @@ import useConnectWallet from '../useConnectWallet';
import { WebLoginProvider } from '../context';
import config from '../data/config';
-jest.mock('../useExternalStore', () => () => ({
- store: {
- getState: () => null,
- subscribe: () => null,
- },
+vi.mock('../useExternalStore', () => ({
+ default: () => ({
+ store: {
+ getState: () => null,
+ subscribe: () => null,
+ },
+ }),
}));
-beforeEach(() => {
- jest.clearAllMocks();
-});
-
const Comp = () => {
useConnectWallet();
return null;
diff --git a/packages/react/vite.config.ts b/packages/react/vite.config.ts
new file mode 100644
index 00000000..08b9a087
--- /dev/null
+++ b/packages/react/vite.config.ts
@@ -0,0 +1,4 @@
+import baseViteConfig from '../tools/vite.config';
+import { mergeConfig } from 'vitest/config';
+
+export default mergeConfig(baseViteConfig, {});
diff --git a/packages/react/vitest.setup.ts b/packages/react/vitest.setup.ts
new file mode 100644
index 00000000..488ba6e3
--- /dev/null
+++ b/packages/react/vitest.setup.ts
@@ -0,0 +1,21 @@
+import { vi, afterEach } from 'vitest';
+import '../tools/__mocks__/setupGlobal';
+import '../tools/__mocks__/setupLocal';
+import { type IBridgeAPI } from '@aelf-web-login/wallet-adapter-bridge';
+
+vi.mock('@aelf-web-login/wallet-adapter-bridge', () => ({
+ initBridge: vi.fn().mockReturnValue({
+ getSignIn: vi.fn((children) => children),
+ store: {
+ getState: () => null,
+ subscribe: () => null,
+ },
+ instance: {} as IBridgeAPI['instance'],
+ }),
+}));
+
+vi.mock('@aelf-web-login/wallet-adapter-portkey-aa', () => ({
+ PortkeyAAWallet: vi.fn(),
+}));
+
+vi.mock('vconsole');
diff --git a/packages/tools/README.md b/packages/tools/README.md
new file mode 100644
index 00000000..33e01d8c
--- /dev/null
+++ b/packages/tools/README.md
@@ -0,0 +1,5 @@
+# Why another package?
+
+During migration to vitest, there's a need to both provide common config and mocks without polluting workspace root, and establish clear boundary to import/export such configs.
+
+This package is _meant_ to be internally consumed, thus `private: true` in package.json and not to be published.
diff --git a/packages/tools/__mocks__/setupGlobal.ts b/packages/tools/__mocks__/setupGlobal.ts
new file mode 100644
index 00000000..175ed73c
--- /dev/null
+++ b/packages/tools/__mocks__/setupGlobal.ts
@@ -0,0 +1,73 @@
+import '@testing-library/jest-dom/vitest';
+import { cleanup } from '@testing-library/react';
+import { afterEach, beforeAll, vi } from 'vitest';
+
+beforeAll(() => {
+ global.ResizeObserver = class ResizeObserver {
+ observe() {
+ // do nothing
+ }
+ unobserve() {
+ // do nothing
+ }
+ disconnect() {
+ // do nothing
+ }
+ };
+});
+
+afterEach(() => {
+ cleanup();
+ vi.clearAllMocks();
+});
+
+// https://jestjs.io/docs/manual-mocks#mocking-methods-which-are-not-implemented-in-jsdom
+if (typeof window !== 'undefined') {
+ Object.defineProperty(window, 'matchMedia', {
+ writable: true,
+ value: vi.fn().mockImplementation((query) => ({
+ matches: false,
+ media: query,
+ onchange: null,
+ addListener: vi.fn(), // deprecated
+ removeListener: vi.fn(), // deprecated
+ addEventListener: vi.fn(),
+ removeEventListener: vi.fn(),
+ dispatchEvent: vi.fn(),
+ })),
+ });
+}
+// https://github.com/wobsoriano/vitest-canvas-mock/issues/16
+if (typeof HTMLCanvasElement !== 'undefined') {
+ HTMLCanvasElement.prototype.getContext = vi.fn().mockReturnValue({
+ fillRect: vi.fn(),
+ clearRect: vi.fn(),
+ getImageData: vi.fn().mockReturnValue({ data: [] }),
+ putImageData: vi.fn(),
+ createImageData: vi.fn().mockReturnValue([]),
+ setTransform: vi.fn(),
+ drawImage: vi.fn(),
+ save: vi.fn(),
+ fillText: vi.fn(),
+ restore: vi.fn(),
+ beginPath: vi.fn(),
+ moveTo: vi.fn(),
+ lineTo: vi.fn(),
+ closePath: vi.fn(),
+ stroke: vi.fn(),
+ translate: vi.fn(),
+ scale: vi.fn(),
+ rotate: vi.fn(),
+ arc: vi.fn(),
+ fill: vi.fn(),
+ measureText: vi.fn().mockReturnValue({ width: 0 }),
+ });
+}
+
+import { TextEncoder, TextDecoder } from 'util';
+global.TextEncoder = TextEncoder;
+// @ts-expect-error TextDecoder
+global.TextDecoder = TextDecoder;
+
+vi.mock('lottie-web');
+vi.mock('node-fetch');
diff --git a/packages/tools/__mocks__/setupLocal.ts b/packages/tools/__mocks__/setupLocal.ts
new file mode 100644
index 00000000..43da8ad9
--- /dev/null
+++ b/packages/tools/__mocks__/setupLocal.ts
@@ -0,0 +1,21 @@
+import { vi } from 'vitest';
+import { type TChainId } from '@aelf-web-login/wallet-adapter-base';
+
+vi.mock('@portkey/contracts', () => ({
+ getTxResult: vi.fn(),
+}));
+
+vi.mock('@aelf-web-login/wallet-adapter-portkey-aa', () => ({
+ PortkeyAAWallet: vi.fn(),
+}));
+
+vi.mock('@portkey/did-ui-react', () => ({
+ getChainInfo: (c: TChainId) => (!c ? null : {}),
+ did: {
+ didWallet: {
+ managementAccount: {
+ privateKey: '',
+ },
+ },
+ },
+}));
diff --git a/packages/tools/index.ts b/packages/tools/index.ts
new file mode 100644
index 00000000..73da2d5d
--- /dev/null
+++ b/packages/tools/index.ts
@@ -0,0 +1,13 @@
+import { resolve } from 'path';
+// relative path is still required here before aliases are enabled
+import baseTSConfig from '../../tsconfig.base.json';
+
+export const getTSConfigPaths = () => {
+ const aliases: Record = {};
+ for (const [key, value] of Object.entries(baseTSConfig.compilerOptions.paths)) {
+ aliases[key] = resolve(__dirname, value[0]);
+ }
+ return aliases;
+};
+
+export default {};
diff --git a/packages/tools/package.json b/packages/tools/package.json
new file mode 100644
index 00000000..6446d19e
--- /dev/null
+++ b/packages/tools/package.json
@@ -0,0 +1,14 @@
+{
+ "name": "@aelf-web-login/tools",
+ "private": true,
+ "version": "1.0.0",
+ "description": "",
+ "main": "index.ts",
+ "files": [
+ "*"
+ ],
+ "scripts": {},
+ "keywords": [],
+ "author": "",
+ "license": "UNLICENSED"
+}
diff --git a/packages/tools/tsconfig.json b/packages/tools/tsconfig.json
new file mode 100644
index 00000000..5730d119
--- /dev/null
+++ b/packages/tools/tsconfig.json
@@ -0,0 +1,4 @@
+{
+ "extends": "../../tsconfig.base.json",
+ "include": ["*.ts", "**/*.ts", "__mocks__/setupLocal.ts"]
+}
diff --git a/packages/tools/vite.config.ts b/packages/tools/vite.config.ts
new file mode 100644
index 00000000..569683f5
--- /dev/null
+++ b/packages/tools/vite.config.ts
@@ -0,0 +1,54 @@
+///
+import { defineConfig, configDefaults } from 'vitest/config';
+import tsconfigPaths from 'vite-tsconfig-paths';
+
+const exclude = [...configDefaults.exclude, '**/dist/*.*', '**/.*', '**/*.setup.*'];
+
+export default defineConfig({
+ plugins: [tsconfigPaths()],
+ test: {
+ maxConcurrency: 20,
+ pool: 'vmThreads',
+ poolOptions: {
+ threads: {
+ singleThread: true,
+ },
+ },
+ isolate: false, // only safe with the poolOptions above
+ css: false,
+ deps: {
+ optimizer: {
+ web: {
+ enabled: true,
+ include: [],
+ },
+ },
+ },
+ globals: true,
+ watch: false,
+ environment: 'happy-dom',
+ // expect a relative vitest.setup.[js|ts] file where this is initiated
+ // due to nature of mocks being hoisted during evaluation, consumers need
+ // to provide individual vitest setup files
+ setupFiles: ['./vitest.setup'],
+ include: ['./src/**/*(*.)?{test,spec}.{js,mjs,cjs,ts,mts,cts,jsx,tsx}'],
+ name: 'bridge',
+ exclude,
+ reporters: ['junit', 'default'],
+ outputFile: {
+ junit: './jest-report.xml',
+ },
+ coverage: {
+ all: false,
+ enabled: true,
+ provider: 'v8',
+ exclude: [...exclude, '**/__tests__/*.*'],
+ reportsDirectory: './coverage',
+ reporter: [
+ ['json-summary', { file: 'coverage-summary.json' }],
+ ['lcov', { file: 'lcov.info' }],
+ ['text'],
+ ],
+ },
+ },
+});
diff --git a/packages/utils/coverage/clover.xml b/packages/utils/coverage/clover.xml
deleted file mode 100644
index 7bc27fc6..00000000
--- a/packages/utils/coverage/clover.xml
+++ /dev/null
@@ -1,282 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/packages/utils/coverage/coverage-final.json b/packages/utils/coverage/coverage-final.json
deleted file mode 100644
index c8bae525..00000000
--- a/packages/utils/coverage/coverage-final.json
+++ /dev/null
@@ -1,23 +0,0 @@
-{"/Users/liuxiyang/work/code/aelf-web-login/packages/utils/src/address/addPrefixSuffix.ts": {"path":"/Users/liuxiyang/work/code/aelf-web-login/packages/utils/src/address/addPrefixSuffix.ts","statementMap":{"0":{"start":{"line":2,"column":2},"end":{"line":2,"column":23}},"1":{"start":{"line":2,"column":12},"end":{"line":2,"column":23}},"2":{"start":{"line":3,"column":15},"end":{"line":3,"column":25}},"3":{"start":{"line":4,"column":17},"end":{"line":4,"column":23}},"4":{"start":{"line":5,"column":17},"end":{"line":5,"column":50}},"5":{"start":{"line":6,"column":2},"end":{"line":8,"column":3}},"6":{"start":{"line":7,"column":4},"end":{"line":7,"column":34}},"7":{"start":{"line":9,"column":2},"end":{"line":11,"column":3}},"8":{"start":{"line":10,"column":4},"end":{"line":10,"column":34}},"9":{"start":{"line":12,"column":2},"end":{"line":12,"column":16}}},"fnMap":{"0":{"name":"addPrefixSuffix","decl":{"start":{"line":1,"column":9},"end":{"line":1,"column":24}},"loc":{"start":{"line":1,"column":56},"end":{"line":13,"column":1}},"line":1}},"branchMap":{"0":{"loc":{"start":{"line":2,"column":2},"end":{"line":2,"column":23}},"type":"if","locations":[{"start":{"line":2,"column":2},"end":{"line":2,"column":23}},{"start":{},"end":{}}],"line":2},"1":{"loc":{"start":{"line":5,"column":17},"end":{"line":5,"column":50}},"type":"cond-expr","locations":[{"start":{"line":5,"column":27},"end":{"line":5,"column":40}},{"start":{"line":5,"column":43},"end":{"line":5,"column":50}}],"line":5},"2":{"loc":{"start":{"line":6,"column":2},"end":{"line":8,"column":3}},"type":"if","locations":[{"start":{"line":6,"column":2},"end":{"line":8,"column":3}},{"start":{},"end":{}}],"line":6},"3":{"loc":{"start":{"line":9,"column":2},"end":{"line":11,"column":3}},"type":"if","locations":[{"start":{"line":9,"column":2},"end":{"line":11,"column":3}},{"start":{},"end":{}}],"line":9}},"s":{"0":5,"1":1,"2":4,"3":4,"4":4,"5":4,"6":4,"7":4,"8":4,"9":4},"f":{"0":5},"b":{"0":[1,4],"1":[1,3],"2":[4,0],"3":[4,0]},"_coverageSchema":"1a1c01bbd47fc00a2c39e90264f33305004495a9","hash":"7129cb57cab10de7be46abed60432ba208f68b1b"}
-,"/Users/liuxiyang/work/code/aelf-web-login/packages/utils/src/address/decodeAddress.ts": {"path":"/Users/liuxiyang/work/code/aelf-web-login/packages/utils/src/address/decodeAddress.ts","statementMap":{"0":{"start":{"line":2,"column":29},"end":{"line":19,"column":1}},"1":{"start":{"line":3,"column":2},"end":{"line":18,"column":3}},"2":{"start":{"line":4,"column":4},"end":{"line":4,"column":31}},"3":{"start":{"line":4,"column":18},"end":{"line":4,"column":31}},"4":{"start":{"line":5,"column":4},"end":{"line":5,"column":55}},"5":{"start":{"line":5,"column":42},"end":{"line":5,"column":55}},"6":{"start":{"line":6,"column":4},"end":{"line":14,"column":5}},"7":{"start":{"line":7,"column":20},"end":{"line":7,"column":38}},"8":{"start":{"line":8,"column":6},"end":{"line":8,"column":43}},"9":{"start":{"line":8,"column":30},"end":{"line":8,"column":43}},"10":{"start":{"line":10,"column":26},"end":{"line":10,"column":34}},"11":{"start":{"line":11,"column":6},"end":{"line":11,"column":47}},"12":{"start":{"line":13,"column":6},"end":{"line":13,"column":43}},"13":{"start":{"line":15,"column":4},"end":{"line":15,"column":16}},"14":{"start":{"line":17,"column":4},"end":{"line":17,"column":17}}},"fnMap":{"0":{"name":"(anonymous_0)","decl":{"start":{"line":2,"column":29},"end":{"line":2,"column":30}},"loc":{"start":{"line":2,"column":50},"end":{"line":19,"column":1}},"line":2}},"branchMap":{"0":{"loc":{"start":{"line":4,"column":4},"end":{"line":4,"column":31}},"type":"if","locations":[{"start":{"line":4,"column":4},"end":{"line":4,"column":31}},{"start":{},"end":{}}],"line":4},"1":{"loc":{"start":{"line":5,"column":4},"end":{"line":5,"column":55}},"type":"if","locations":[{"start":{"line":5,"column":4},"end":{"line":5,"column":55}},{"start":{},"end":{}}],"line":5},"2":{"loc":{"start":{"line":6,"column":4},"end":{"line":14,"column":5}},"type":"if","locations":[{"start":{"line":6,"column":4},"end":{"line":14,"column":5}},{"start":{"line":12,"column":11},"end":{"line":14,"column":5}}],"line":6},"3":{"loc":{"start":{"line":8,"column":6},"end":{"line":8,"column":43}},"type":"if","locations":[{"start":{"line":8,"column":6},"end":{"line":8,"column":43}},{"start":{},"end":{}}],"line":8}},"s":{"0":1,"1":6,"2":6,"3":1,"4":5,"5":1,"6":4,"7":2,"8":2,"9":1,"10":1,"11":1,"12":2,"13":2,"14":1},"f":{"0":6},"b":{"0":[1,5],"1":[1,4],"2":[2,2],"3":[1,1]},"_coverageSchema":"1a1c01bbd47fc00a2c39e90264f33305004495a9","hash":"989c0f3e777a93b860fbbdd094e36945d788eff8"}
-,"/Users/liuxiyang/work/code/aelf-web-login/packages/utils/src/address/getOriginalAddress.ts": {"path":"/Users/liuxiyang/work/code/aelf-web-login/packages/utils/src/address/getOriginalAddress.ts","statementMap":{"0":{"start":{"line":2,"column":2},"end":{"line":2,"column":27}},"1":{"start":{"line":2,"column":16},"end":{"line":2,"column":27}},"2":{"start":{"line":3,"column":2},"end":{"line":5,"column":3}},"3":{"start":{"line":4,"column":4},"end":{"line":4,"column":15}},"4":{"start":{"line":6,"column":2},"end":{"line":6,"column":58}}},"fnMap":{"0":{"name":"getOriginalAddress","decl":{"start":{"line":1,"column":9},"end":{"line":1,"column":27}},"loc":{"start":{"line":1,"column":45},"end":{"line":7,"column":1}},"line":1}},"branchMap":{"0":{"loc":{"start":{"line":2,"column":2},"end":{"line":2,"column":27}},"type":"if","locations":[{"start":{"line":2,"column":2},"end":{"line":2,"column":27}},{"start":{},"end":{}}],"line":2},"1":{"loc":{"start":{"line":3,"column":2},"end":{"line":5,"column":3}},"type":"if","locations":[{"start":{"line":3,"column":2},"end":{"line":5,"column":3}},{"start":{},"end":{}}],"line":3}},"s":{"0":6,"1":2,"2":4,"3":1,"4":3},"f":{"0":6},"b":{"0":[2,4],"1":[1,3]},"_coverageSchema":"1a1c01bbd47fc00a2c39e90264f33305004495a9","hash":"d7435d2b91aa62f6afc366de4bb733f20d58b8af"}
-,"/Users/liuxiyang/work/code/aelf-web-login/packages/utils/src/calculate/divDecimals.ts": {"path":"/Users/liuxiyang/work/code/aelf-web-login/packages/utils/src/calculate/divDecimals.ts","statementMap":{"0":{"start":{"line":4,"column":2},"end":{"line":4,"column":34}},"1":{"start":{"line":4,"column":10},"end":{"line":4,"column":34}},"2":{"start":{"line":5,"column":15},"end":{"line":5,"column":62}},"3":{"start":{"line":6,"column":2},"end":{"line":6,"column":71}},"4":{"start":{"line":6,"column":47},"end":{"line":6,"column":71}},"5":{"start":{"line":7,"column":2},"end":{"line":9,"column":3}},"6":{"start":{"line":8,"column":4},"end":{"line":8,"column":30}},"7":{"start":{"line":10,"column":2},"end":{"line":10,"column":35}}},"fnMap":{"0":{"name":"divDecimals","decl":{"start":{"line":3,"column":16},"end":{"line":3,"column":27}},"loc":{"start":{"line":3,"column":81},"end":{"line":11,"column":1}},"line":3}},"branchMap":{"0":{"loc":{"start":{"line":3,"column":49},"end":{"line":3,"column":79}},"type":"default-arg","locations":[{"start":{"line":3,"column":77},"end":{"line":3,"column":79}}],"line":3},"1":{"loc":{"start":{"line":4,"column":2},"end":{"line":4,"column":34}},"type":"if","locations":[{"start":{"line":4,"column":2},"end":{"line":4,"column":34}},{"start":{},"end":{}}],"line":4},"2":{"loc":{"start":{"line":5,"column":15},"end":{"line":5,"column":62}},"type":"cond-expr","locations":[{"start":{"line":5,"column":42},"end":{"line":5,"column":43}},{"start":{"line":5,"column":46},"end":{"line":5,"column":62}}],"line":5},"3":{"loc":{"start":{"line":6,"column":2},"end":{"line":6,"column":71}},"type":"if","locations":[{"start":{"line":6,"column":2},"end":{"line":6,"column":71}},{"start":{},"end":{}}],"line":6},"4":{"loc":{"start":{"line":6,"column":6},"end":{"line":6,"column":45}},"type":"binary-expr","locations":[{"start":{"line":6,"column":6},"end":{"line":6,"column":18}},{"start":{"line":6,"column":22},"end":{"line":6,"column":45}}],"line":6},"5":{"loc":{"start":{"line":7,"column":2},"end":{"line":9,"column":3}},"type":"if","locations":[{"start":{"line":7,"column":2},"end":{"line":9,"column":3}},{"start":{},"end":{}}],"line":7},"6":{"loc":{"start":{"line":7,"column":6},"end":{"line":7,"column":58}},"type":"binary-expr","locations":[{"start":{"line":7,"column":6},"end":{"line":7,"column":34}},{"start":{"line":7,"column":38},"end":{"line":7,"column":58}}],"line":7}},"s":{"0":8,"1":3,"2":5,"3":5,"4":1,"5":4,"6":1,"7":3},"f":{"0":8},"b":{"0":[5],"1":[3,5],"2":[1,4],"3":[1,4],"4":[5,5],"5":[1,3],"6":[4,1]},"_coverageSchema":"1a1c01bbd47fc00a2c39e90264f33305004495a9","hash":"f4f94b1190897ac75d44128bd79d66d20d1a56c4"}
-,"/Users/liuxiyang/work/code/aelf-web-login/packages/utils/src/calculate/index.ts": {"path":"/Users/liuxiyang/work/code/aelf-web-login/packages/utils/src/calculate/index.ts","statementMap":{},"fnMap":{},"branchMap":{},"s":{},"f":{},"b":{},"_coverageSchema":"1a1c01bbd47fc00a2c39e90264f33305004495a9","hash":"d36858d85c83144c1013387965deacfe35922075"}
-,"/Users/liuxiyang/work/code/aelf-web-login/packages/utils/src/calculate/timesDecimals.ts": {"path":"/Users/liuxiyang/work/code/aelf-web-login/packages/utils/src/calculate/timesDecimals.ts","statementMap":{"0":{"start":{"line":4,"column":2},"end":{"line":4,"column":34}},"1":{"start":{"line":4,"column":10},"end":{"line":4,"column":34}},"2":{"start":{"line":5,"column":15},"end":{"line":5,"column":62}},"3":{"start":{"line":6,"column":2},"end":{"line":6,"column":71}},"4":{"start":{"line":6,"column":47},"end":{"line":6,"column":71}},"5":{"start":{"line":7,"column":2},"end":{"line":9,"column":3}},"6":{"start":{"line":8,"column":4},"end":{"line":8,"column":32}},"7":{"start":{"line":10,"column":2},"end":{"line":10,"column":37}}},"fnMap":{"0":{"name":"timesDecimals","decl":{"start":{"line":3,"column":16},"end":{"line":3,"column":29}},"loc":{"start":{"line":3,"column":83},"end":{"line":11,"column":1}},"line":3}},"branchMap":{"0":{"loc":{"start":{"line":3,"column":51},"end":{"line":3,"column":81}},"type":"default-arg","locations":[{"start":{"line":3,"column":79},"end":{"line":3,"column":81}}],"line":3},"1":{"loc":{"start":{"line":4,"column":2},"end":{"line":4,"column":34}},"type":"if","locations":[{"start":{"line":4,"column":2},"end":{"line":4,"column":34}},{"start":{},"end":{}}],"line":4},"2":{"loc":{"start":{"line":5,"column":15},"end":{"line":5,"column":62}},"type":"cond-expr","locations":[{"start":{"line":5,"column":42},"end":{"line":5,"column":43}},{"start":{"line":5,"column":46},"end":{"line":5,"column":62}}],"line":5},"3":{"loc":{"start":{"line":6,"column":2},"end":{"line":6,"column":71}},"type":"if","locations":[{"start":{"line":6,"column":2},"end":{"line":6,"column":71}},{"start":{},"end":{}}],"line":6},"4":{"loc":{"start":{"line":6,"column":6},"end":{"line":6,"column":45}},"type":"binary-expr","locations":[{"start":{"line":6,"column":6},"end":{"line":6,"column":18}},{"start":{"line":6,"column":22},"end":{"line":6,"column":45}}],"line":6},"5":{"loc":{"start":{"line":7,"column":2},"end":{"line":9,"column":3}},"type":"if","locations":[{"start":{"line":7,"column":2},"end":{"line":9,"column":3}},{"start":{},"end":{}}],"line":7},"6":{"loc":{"start":{"line":7,"column":6},"end":{"line":7,"column":58}},"type":"binary-expr","locations":[{"start":{"line":7,"column":6},"end":{"line":7,"column":34}},{"start":{"line":7,"column":38},"end":{"line":7,"column":58}}],"line":7}},"s":{"0":11,"1":3,"2":8,"3":8,"4":2,"5":6,"6":1,"7":5},"f":{"0":11},"b":{"0":[5],"1":[3,8],"2":[1,7],"3":[2,6],"4":[8,8],"5":[1,5],"6":[6,1]},"_coverageSchema":"1a1c01bbd47fc00a2c39e90264f33305004495a9","hash":"53e9f52c8236f914dd27156e22a65fdf513f54b3"}
-,"/Users/liuxiyang/work/code/aelf-web-login/packages/utils/src/contract/getRawTransaction.ts": {"path":"/Users/liuxiyang/work/code/aelf-web-login/packages/utils/src/contract/getRawTransaction.ts","statementMap":{"0":{"start":{"line":16,"column":91},"end":{"line":72,"column":1}},"1":{"start":{"line":25,"column":2},"end":{"line":25,"column":22}},"2":{"start":{"line":25,"column":15},"end":{"line":25,"column":22}},"3":{"start":{"line":27,"column":12},"end":{"line":27,"column":16}},"4":{"start":{"line":29,"column":2},"end":{"line":71,"column":3}},"5":{"start":{"line":30,"column":4},"end":{"line":64,"column":5}},"6":{"start":{"line":32,"column":8},"end":{"line":32,"column":56}},"7":{"start":{"line":32,"column":49},"end":{"line":32,"column":56}},"8":{"start":{"line":33,"column":8},"end":{"line":41,"column":11}},"9":{"start":{"line":42,"column":8},"end":{"line":42,"column":14}},"10":{"start":{"line":44,"column":8},"end":{"line":44,"column":41}},"11":{"start":{"line":44,"column":34},"end":{"line":44,"column":41}},"12":{"start":{"line":45,"column":8},"end":{"line":52,"column":11}},"13":{"start":{"line":53,"column":8},"end":{"line":53,"column":14}},"14":{"start":{"line":55,"column":8},"end":{"line":55,"column":41}},"15":{"start":{"line":55,"column":34},"end":{"line":55,"column":41}},"16":{"start":{"line":56,"column":8},"end":{"line":62,"column":11}},"17":{"start":{"line":63,"column":8},"end":{"line":63,"column":14}},"18":{"start":{"line":66,"column":4},"end":{"line":66,"column":15}},"19":{"start":{"line":68,"column":4},"end":{"line":68,"column":50}},"20":{"start":{"line":70,"column":4},"end":{"line":70,"column":16}}},"fnMap":{"0":{"name":"(anonymous_0)","decl":{"start":{"line":16,"column":91},"end":{"line":16,"column":92}},"loc":{"start":{"line":24,"column":28},"end":{"line":72,"column":1}},"line":24}},"branchMap":{"0":{"loc":{"start":{"line":25,"column":2},"end":{"line":25,"column":22}},"type":"if","locations":[{"start":{"line":25,"column":2},"end":{"line":25,"column":22}},{"start":{},"end":{}}],"line":25},"1":{"loc":{"start":{"line":30,"column":4},"end":{"line":64,"column":5}},"type":"switch","locations":[{"start":{"line":31,"column":6},"end":{"line":42,"column":14}},{"start":{"line":43,"column":6},"end":{"line":53,"column":14}},{"start":{"line":54,"column":6},"end":{"line":63,"column":14}}],"line":30},"2":{"loc":{"start":{"line":32,"column":8},"end":{"line":32,"column":56}},"type":"if","locations":[{"start":{"line":32,"column":8},"end":{"line":32,"column":56}},{"start":{},"end":{}}],"line":32},"3":{"loc":{"start":{"line":37,"column":29},"end":{"line":37,"column":52}},"type":"binary-expr","locations":[{"start":{"line":37,"column":29},"end":{"line":37,"column":46}},{"start":{"line":37,"column":50},"end":{"line":37,"column":52}}],"line":37},"4":{"loc":{"start":{"line":44,"column":8},"end":{"line":44,"column":41}},"type":"if","locations":[{"start":{"line":44,"column":8},"end":{"line":44,"column":41}},{"start":{},"end":{}}],"line":44},"5":{"loc":{"start":{"line":55,"column":8},"end":{"line":55,"column":41}},"type":"if","locations":[{"start":{"line":55,"column":8},"end":{"line":55,"column":41}},{"start":{},"end":{}}],"line":55}},"s":{"0":1,"1":5,"2":1,"3":4,"4":4,"5":4,"6":1,"7":0,"8":1,"9":1,"10":2,"11":0,"12":2,"13":1,"14":1,"15":0,"16":1,"17":1,"18":3,"19":1,"20":1},"f":{"0":5},"b":{"0":[1,4],"1":[1,2,1],"2":[0,1],"3":[1,0],"4":[0,2],"5":[0,1]},"_coverageSchema":"1a1c01bbd47fc00a2c39e90264f33305004495a9","hash":"ade1c86384bc6a40b6968f6a85f8df1a99ca96e1"}
-,"/Users/liuxiyang/work/code/aelf-web-login/packages/utils/src/contract/getRawTransactionNight.ts": {"path":"/Users/liuxiyang/work/code/aelf-web-login/packages/utils/src/contract/getRawTransactionNight.ts","statementMap":{"0":{"start":{"line":18,"column":19},"end":{"line":22,"column":4}},"1":{"start":{"line":23,"column":13},"end":{"line":23,"column":57}},"2":{"start":{"line":24,"column":2},"end":{"line":24,"column":17}}},"fnMap":{"0":{"name":"getRawTransactionNight","decl":{"start":{"line":11,"column":15},"end":{"line":11,"column":37}},"loc":{"start":{"line":17,"column":35},"end":{"line":25,"column":1}},"line":17}},"branchMap":{},"s":{"0":2,"1":1,"2":1},"f":{"0":2},"b":{},"_coverageSchema":"1a1c01bbd47fc00a2c39e90264f33305004495a9","hash":"32034172e16c9b12f2086265c1250112de7f52d0"}
-,"/Users/liuxiyang/work/code/aelf-web-login/packages/utils/src/contract/getRawTransactionPortkey.ts": {"path":"/Users/liuxiyang/work/code/aelf-web-login/packages/utils/src/contract/getRawTransactionPortkey.ts","statementMap":{"0":{"start":{"line":14,"column":33},"end":{"line":39,"column":1}},"1":{"start":{"line":23,"column":2},"end":{"line":38,"column":3}},"2":{"start":{"line":24,"column":21},"end":{"line":31,"column":6}},"3":{"start":{"line":33,"column":14},"end":{"line":33,"column":58}},"4":{"start":{"line":35,"column":4},"end":{"line":35,"column":18}},"5":{"start":{"line":37,"column":4},"end":{"line":37,"column":33}}},"fnMap":{"0":{"name":"(anonymous_0)","decl":{"start":{"line":14,"column":33},"end":{"line":14,"column":34}},"loc":{"start":{"line":22,"column":36},"end":{"line":39,"column":1}},"line":22}},"branchMap":{},"s":{"0":1,"1":2,"2":2,"3":1,"4":1,"5":1},"f":{"0":2},"b":{},"_coverageSchema":"1a1c01bbd47fc00a2c39e90264f33305004495a9","hash":"cfe89efabae4187431b8086d4c5bdee4436aa0b4"}
-,"/Users/liuxiyang/work/code/aelf-web-login/packages/utils/src/contract/getTxResultRetry.ts": {"path":"/Users/liuxiyang/work/code/aelf-web-login/packages/utils/src/contract/getTxResultRetry.ts","statementMap":{"0":{"start":{"line":5,"column":14},"end":{"line":5,"column":26}},"1":{"start":{"line":6,"column":29},"end":{"line":6,"column":31}},"2":{"start":{"line":8,"column":2},"end":{"line":10,"column":3}},"3":{"start":{"line":9,"column":4},"end":{"line":9,"column":72}},"4":{"start":{"line":11,"column":2},"end":{"line":11,"column":28}},"5":{"start":{"line":18,"column":2},"end":{"line":28,"column":3}},"6":{"start":{"line":19,"column":21},"end":{"line":19,"column":36}},"7":{"start":{"line":20,"column":21},"end":{"line":20,"column":75}},"8":{"start":{"line":21,"column":4},"end":{"line":25,"column":5}},"9":{"start":{"line":22,"column":6},"end":{"line":22,"column":22}},"10":{"start":{"line":24,"column":6},"end":{"line":24,"column":39}},"11":{"start":{"line":27,"column":4},"end":{"line":27,"column":19}}},"fnMap":{"0":{"name":"getAElf","decl":{"start":{"line":4,"column":16},"end":{"line":4,"column":23}},"loc":{"start":{"line":4,"column":41},"end":{"line":12,"column":1}},"line":4},"1":{"name":"getTxResultRetry","decl":{"start":{"line":13,"column":22},"end":{"line":13,"column":38}},"loc":{"start":{"line":17,"column":16},"end":{"line":29,"column":1}},"line":17}},"branchMap":{"0":{"loc":{"start":{"line":5,"column":14},"end":{"line":5,"column":26}},"type":"binary-expr","locations":[{"start":{"line":5,"column":14},"end":{"line":5,"column":20}},{"start":{"line":5,"column":24},"end":{"line":5,"column":26}}],"line":5},"1":{"loc":{"start":{"line":8,"column":2},"end":{"line":10,"column":3}},"type":"if","locations":[{"start":{"line":8,"column":2},"end":{"line":10,"column":3}},{"start":{},"end":{}}],"line":8},"2":{"loc":{"start":{"line":16,"column":2},"end":{"line":16,"column":19}},"type":"default-arg","locations":[{"start":{"line":16,"column":15},"end":{"line":16,"column":19}}],"line":16},"3":{"loc":{"start":{"line":21,"column":4},"end":{"line":25,"column":5}},"type":"if","locations":[{"start":{"line":21,"column":4},"end":{"line":25,"column":5}},{"start":{"line":23,"column":11},"end":{"line":25,"column":5}}],"line":21}},"s":{"0":7,"1":7,"2":7,"3":7,"4":7,"5":2,"6":2,"7":2,"8":2,"9":1,"10":1,"11":1},"f":{"0":7,"1":2},"b":{"0":[7,0],"1":[7,0],"2":[2],"3":[1,1]},"_coverageSchema":"1a1c01bbd47fc00a2c39e90264f33305004495a9","hash":"5d8a34b42123949b023783bc3197bd2659e98259"}
-,"/Users/liuxiyang/work/code/aelf-web-login/packages/utils/src/contract/useCheckAllowanceAndApprove.ts": {"path":"/Users/liuxiyang/work/code/aelf-web-login/packages/utils/src/contract/useCheckAllowanceAndApprove.ts","statementMap":{"0":{"start":{"line":23,"column":36},"end":{"line":110,"column":1}},"1":{"start":{"line":38,"column":45},"end":{"line":38,"column":63}},"2":{"start":{"line":39,"column":32},"end":{"line":39,"column":47}},"3":{"start":{"line":41,"column":16},"end":{"line":107,"column":4}},"4":{"start":{"line":42,"column":4},"end":{"line":97,"column":5}},"5":{"start":{"line":43,"column":6},"end":{"line":43,"column":23}},"6":{"start":{"line":44,"column":57},"end":{"line":65,"column":8}},"7":{"start":{"line":67,"column":26},"end":{"line":67,"column":85}},"8":{"start":{"line":68,"column":19},"end":{"line":68,"column":65}},"9":{"start":{"line":70,"column":6},"end":{"line":91,"column":7}},"10":{"start":{"line":71,"column":30},"end":{"line":71,"column":45}},"11":{"start":{"line":73,"column":8},"end":{"line":89,"column":11}},"12":{"start":{"line":90,"column":8},"end":{"line":90,"column":20}},"13":{"start":{"line":92,"column":6},"end":{"line":92,"column":18}},"14":{"start":{"line":94,"column":6},"end":{"line":94,"column":15}},"15":{"start":{"line":96,"column":6},"end":{"line":96,"column":24}},"16":{"start":{"line":109,"column":2},"end":{"line":109,"column":28}}},"fnMap":{"0":{"name":"(anonymous_0)","decl":{"start":{"line":23,"column":36},"end":{"line":23,"column":37}},"loc":{"start":{"line":37,"column":6},"end":{"line":110,"column":1}},"line":37},"1":{"name":"(anonymous_1)","decl":{"start":{"line":41,"column":28},"end":{"line":41,"column":29}},"loc":{"start":{"line":41,"column":40},"end":{"line":98,"column":3}},"line":41}},"branchMap":{"0":{"loc":{"start":{"line":67,"column":40},"end":{"line":67,"column":84}},"type":"binary-expr","locations":[{"start":{"line":67,"column":40},"end":{"line":67,"column":59}},{"start":{"line":67,"column":63},"end":{"line":67,"column":79}},{"start":{"line":67,"column":83},"end":{"line":67,"column":84}}],"line":67},"1":{"loc":{"start":{"line":68,"column":41},"end":{"line":68,"column":64}},"type":"binary-expr","locations":[{"start":{"line":68,"column":41},"end":{"line":68,"column":59}},{"start":{"line":68,"column":63},"end":{"line":68,"column":64}}],"line":68},"2":{"loc":{"start":{"line":70,"column":6},"end":{"line":91,"column":7}},"type":"if","locations":[{"start":{"line":70,"column":6},"end":{"line":91,"column":7}},{"start":{},"end":{}}],"line":70}},"s":{"0":1,"1":6,"2":6,"3":6,"4":3,"5":3,"6":3,"7":2,"8":2,"9":2,"10":1,"11":1,"12":1,"13":1,"14":1,"15":3,"16":6},"f":{"0":6,"1":3},"b":{"0":[2,1,1],"1":[2,1],"2":[1,1]},"_coverageSchema":"1a1c01bbd47fc00a2c39e90264f33305004495a9","hash":"be8b76ae59ac0d3ffb2b0badf956515aac0b23cd"}
-,"/Users/liuxiyang/work/code/aelf-web-login/packages/utils/src/contract/useGetBalance.ts": {"path":"/Users/liuxiyang/work/code/aelf-web-login/packages/utils/src/contract/useGetBalance.ts","statementMap":{"0":{"start":{"line":5,"column":22},"end":{"line":40,"column":1}},"1":{"start":{"line":16,"column":29},"end":{"line":16,"column":47}},"2":{"start":{"line":17,"column":32},"end":{"line":17,"column":47}},"3":{"start":{"line":19,"column":21},"end":{"line":37,"column":70}},"4":{"start":{"line":20,"column":4},"end":{"line":36,"column":5}},"5":{"start":{"line":21,"column":6},"end":{"line":21,"column":23}},"6":{"start":{"line":22,"column":17},"end":{"line":30,"column":8}},"7":{"start":{"line":31,"column":6},"end":{"line":31,"column":16}},"8":{"start":{"line":33,"column":6},"end":{"line":33,"column":15}},"9":{"start":{"line":35,"column":6},"end":{"line":35,"column":24}},"10":{"start":{"line":39,"column":2},"end":{"line":39,"column":33}}},"fnMap":{"0":{"name":"(anonymous_0)","decl":{"start":{"line":5,"column":22},"end":{"line":5,"column":23}},"loc":{"start":{"line":15,"column":6},"end":{"line":40,"column":1}},"line":15},"1":{"name":"(anonymous_1)","decl":{"start":{"line":19,"column":33},"end":{"line":19,"column":34}},"loc":{"start":{"line":19,"column":45},"end":{"line":37,"column":3}},"line":19}},"branchMap":{},"s":{"0":1,"1":2,"2":2,"3":2,"4":1,"5":1,"6":1,"7":1,"8":0,"9":1,"10":2},"f":{"0":2,"1":1},"b":{},"_coverageSchema":"1a1c01bbd47fc00a2c39e90264f33305004495a9","hash":"437c7ef58f295ce5de516303eed8d7f9d60b33a6"}
-,"/Users/liuxiyang/work/code/aelf-web-login/packages/utils/src/format/formatNumberWithDecimalPlaces.ts": {"path":"/Users/liuxiyang/work/code/aelf-web-login/packages/utils/src/format/formatNumberWithDecimalPlaces.ts","statementMap":{"0":{"start":{"line":2,"column":13},"end":{"line":2,"column":29}},"1":{"start":{"line":4,"column":15},"end":{"line":4,"column":29}},"2":{"start":{"line":5,"column":2},"end":{"line":5,"column":36}},"3":{"start":{"line":5,"column":20},"end":{"line":5,"column":36}},"4":{"start":{"line":6,"column":2},"end":{"line":6,"column":75}}},"fnMap":{"0":{"name":"formatNumberWithDecimalPlaces","decl":{"start":{"line":3,"column":9},"end":{"line":3,"column":38}},"loc":{"start":{"line":3,"column":74},"end":{"line":7,"column":1}},"line":3}},"branchMap":{"0":{"loc":{"start":{"line":3,"column":61},"end":{"line":3,"column":72}},"type":"default-arg","locations":[{"start":{"line":3,"column":71},"end":{"line":3,"column":72}}],"line":3},"1":{"loc":{"start":{"line":5,"column":2},"end":{"line":5,"column":36}},"type":"if","locations":[{"start":{"line":5,"column":2},"end":{"line":5,"column":36}},{"start":{},"end":{}}],"line":5}},"s":{"0":1,"1":8,"2":8,"3":1,"4":7},"f":{"0":8},"b":{"0":[4],"1":[1,7]},"_coverageSchema":"1a1c01bbd47fc00a2c39e90264f33305004495a9","hash":"0252c6c7d950255117c5750ce9f678c6872b77b4"}
-,"/Users/liuxiyang/work/code/aelf-web-login/packages/utils/src/format/formatPrice.ts": {"path":"/Users/liuxiyang/work/code/aelf-web-login/packages/utils/src/format/formatPrice.ts","statementMap":{"0":{"start":{"line":15,"column":6},"end":{"line":15,"column":24}},"1":{"start":{"line":16,"column":30},"end":{"line":16,"column":89}},"2":{"start":{"line":17,"column":2},"end":{"line":17,"column":42}},"3":{"start":{"line":17,"column":24},"end":{"line":17,"column":42}},"4":{"start":{"line":19,"column":2},"end":{"line":21,"column":3}},"5":{"start":{"line":20,"column":4},"end":{"line":20,"column":27}},"6":{"start":{"line":23,"column":21},"end":{"line":23,"column":66}},"7":{"start":{"line":24,"column":14},"end":{"line":24,"column":50}},"8":{"start":{"line":25,"column":2},"end":{"line":25,"column":13}}},"fnMap":{"0":{"name":"formatPrice","decl":{"start":{"line":3,"column":9},"end":{"line":3,"column":20}},"loc":{"start":{"line":10,"column":2},"end":{"line":26,"column":1}},"line":10}},"branchMap":{"0":{"loc":{"start":{"line":12,"column":4},"end":{"line":12,"column":21}},"type":"default-arg","locations":[{"start":{"line":12,"column":20},"end":{"line":12,"column":21}}],"line":12},"1":{"loc":{"start":{"line":13,"column":4},"end":{"line":13,"column":39}},"type":"default-arg","locations":[{"start":{"line":13,"column":19},"end":{"line":13,"column":39}}],"line":13},"2":{"loc":{"start":{"line":14,"column":4},"end":{"line":14,"column":19}},"type":"default-arg","locations":[{"start":{"line":14,"column":15},"end":{"line":14,"column":19}}],"line":14},"3":{"loc":{"start":{"line":15,"column":6},"end":{"line":15,"column":24}},"type":"binary-expr","locations":[{"start":{"line":15,"column":6},"end":{"line":15,"column":18}},{"start":{"line":15,"column":22},"end":{"line":15,"column":24}}],"line":15},"4":{"loc":{"start":{"line":16,"column":30},"end":{"line":16,"column":89}},"type":"cond-expr","locations":[{"start":{"line":16,"column":61},"end":{"line":16,"column":66}},{"start":{"line":16,"column":69},"end":{"line":16,"column":89}}],"line":16},"5":{"loc":{"start":{"line":17,"column":2},"end":{"line":17,"column":42}},"type":"if","locations":[{"start":{"line":17,"column":2},"end":{"line":17,"column":42}},{"start":{},"end":{}}],"line":17},"6":{"loc":{"start":{"line":19,"column":2},"end":{"line":21,"column":3}},"type":"if","locations":[{"start":{"line":19,"column":2},"end":{"line":21,"column":3}},{"start":{},"end":{}}],"line":19},"7":{"loc":{"start":{"line":19,"column":6},"end":{"line":19,"column":53}},"type":"binary-expr","locations":[{"start":{"line":19,"column":6},"end":{"line":19,"column":28}},{"start":{"line":19,"column":32},"end":{"line":19,"column":53}}],"line":19}},"s":{"0":8,"1":8,"2":8,"3":1,"4":7,"5":1,"6":6,"7":6,"8":6},"f":{"0":8},"b":{"0":[4],"1":[6],"2":[6],"3":[8,3],"4":[1,7],"5":[1,7],"6":[1,6],"7":[7,7]},"_coverageSchema":"1a1c01bbd47fc00a2c39e90264f33305004495a9","hash":"075a4114c7469dcb7f856b895dea7fbeae184d74"}
-,"/Users/liuxiyang/work/code/aelf-web-login/packages/utils/src/format/formatTime.ts": {"path":"/Users/liuxiyang/work/code/aelf-web-login/packages/utils/src/format/formatTime.ts","statementMap":{"0":{"start":{"line":3,"column":0},"end":{"line":3,"column":23}},"1":{"start":{"line":22,"column":2},"end":{"line":22,"column":37}},"2":{"start":{"line":33,"column":2},"end":{"line":39,"column":3}},"3":{"start":{"line":34,"column":4},"end":{"line":34,"column":40}},"4":{"start":{"line":35,"column":9},"end":{"line":39,"column":3}},"5":{"start":{"line":36,"column":4},"end":{"line":36,"column":33}},"6":{"start":{"line":38,"column":4},"end":{"line":38,"column":33}}},"fnMap":{"0":{"name":"formatTime","decl":{"start":{"line":21,"column":9},"end":{"line":21,"column":19}},"loc":{"start":{"line":21,"column":67},"end":{"line":23,"column":1}},"line":21},"1":{"name":"createDuration","decl":{"start":{"line":29,"column":9},"end":{"line":29,"column":23}},"loc":{"start":{"line":32,"column":12},"end":{"line":40,"column":1}},"line":32}},"branchMap":{"0":{"loc":{"start":{"line":21,"column":43},"end":{"line":21,"column":65}},"type":"default-arg","locations":[{"start":{"line":21,"column":53},"end":{"line":21,"column":65}}],"line":21},"1":{"loc":{"start":{"line":33,"column":2},"end":{"line":39,"column":3}},"type":"if","locations":[{"start":{"line":33,"column":2},"end":{"line":39,"column":3}},{"start":{"line":35,"column":9},"end":{"line":39,"column":3}}],"line":33},"2":{"loc":{"start":{"line":35,"column":9},"end":{"line":39,"column":3}},"type":"if","locations":[{"start":{"line":35,"column":9},"end":{"line":39,"column":3}},{"start":{"line":37,"column":9},"end":{"line":39,"column":3}}],"line":35}},"s":{"0":1,"1":3,"2":3,"3":1,"4":2,"5":1,"6":1},"f":{"0":3,"1":3},"b":{"0":[2],"1":[1,2],"2":[1,1]},"_coverageSchema":"1a1c01bbd47fc00a2c39e90264f33305004495a9","hash":"42ff05db0d174a2567be1d1f54a821f6057591b5"}
-,"/Users/liuxiyang/work/code/aelf-web-login/packages/utils/src/is/isAElfBridge.ts": {"path":"/Users/liuxiyang/work/code/aelf-web-login/packages/utils/src/is/isAElfBridge.ts","statementMap":{"0":{"start":{"line":5,"column":2},"end":{"line":5,"column":54}}},"fnMap":{"0":{"name":"isAElfBridge","decl":{"start":{"line":4,"column":16},"end":{"line":4,"column":28}},"loc":{"start":{"line":4,"column":57},"end":{"line":6,"column":1}},"line":4}},"branchMap":{"0":{"loc":{"start":{"line":5,"column":12},"end":{"line":5,"column":52}},"type":"binary-expr","locations":[{"start":{"line":5,"column":12},"end":{"line":5,"column":30}},{"start":{"line":5,"column":34},"end":{"line":5,"column":52}}],"line":5}},"s":{"0":2},"f":{"0":2},"b":{"0":[2,1]},"_coverageSchema":"1a1c01bbd47fc00a2c39e90264f33305004495a9","hash":"d8ff657e803b7249e8a5d2403f2c3dfd16925ef6"}
-,"/Users/liuxiyang/work/code/aelf-web-login/packages/utils/src/is/isELFAddress.ts": {"path":"/Users/liuxiyang/work/code/aelf-web-login/packages/utils/src/is/isELFAddress.ts","statementMap":{"0":{"start":{"line":4,"column":2},"end":{"line":4,"column":50}},"1":{"start":{"line":4,"column":37},"end":{"line":4,"column":50}},"2":{"start":{"line":5,"column":2},"end":{"line":9,"column":3}},"3":{"start":{"line":6,"column":4},"end":{"line":6,"column":48}},"4":{"start":{"line":8,"column":4},"end":{"line":8,"column":17}}},"fnMap":{"0":{"name":"isELFAddress","decl":{"start":{"line":3,"column":9},"end":{"line":3,"column":21}},"loc":{"start":{"line":3,"column":37},"end":{"line":10,"column":1}},"line":3}},"branchMap":{"0":{"loc":{"start":{"line":4,"column":2},"end":{"line":4,"column":50}},"type":"if","locations":[{"start":{"line":4,"column":2},"end":{"line":4,"column":50}},{"start":{},"end":{}}],"line":4}},"s":{"0":3,"1":1,"2":2,"3":2,"4":1},"f":{"0":3},"b":{"0":[1,2]},"_coverageSchema":"1a1c01bbd47fc00a2c39e90264f33305004495a9","hash":"43ae17bd9d761fb90f94bc131b116ca1476faa04"}
-,"/Users/liuxiyang/work/code/aelf-web-login/packages/utils/src/is/isMobileDevices.ts": {"path":"/Users/liuxiyang/work/code/aelf-web-login/packages/utils/src/is/isMobileDevices.ts","statementMap":{"0":{"start":{"line":1,"column":20},"end":{"line":1,"column":29}},"1":{"start":{"line":2,"column":18},"end":{"line":2,"column":25}},"2":{"start":{"line":3,"column":20},"end":{"line":3,"column":27}},"3":{"start":{"line":4,"column":23},"end":{"line":4,"column":52}},"4":{"start":{"line":5,"column":21},"end":{"line":5,"column":47}},"5":{"start":{"line":6,"column":22},"end":{"line":6,"column":32}},"6":{"start":{"line":7,"column":20},"end":{"line":7,"column":56}},"7":{"start":{"line":8,"column":21},"end":{"line":8,"column":28}},"8":{"start":{"line":9,"column":21},"end":{"line":9,"column":37}},"9":{"start":{"line":10,"column":22},"end":{"line":10,"column":45}},"10":{"start":{"line":11,"column":24},"end":{"line":11,"column":37}},"11":{"start":{"line":12,"column":26},"end":{"line":12,"column":33}},"12":{"start":{"line":13,"column":19},"end":{"line":13,"column":32}},"13":{"start":{"line":14,"column":20},"end":{"line":14,"column":51}},"14":{"start":{"line":15,"column":21},"end":{"line":15,"column":45}},"15":{"start":{"line":24,"column":29},"end":{"line":31,"column":1}},"16":{"start":{"line":25,"column":2},"end":{"line":30,"column":4}},"17":{"start":{"line":34,"column":2},"end":{"line":34,"column":59}},"18":{"start":{"line":34,"column":37},"end":{"line":34,"column":58}},"19":{"start":{"line":76,"column":23},"end":{"line":80,"column":3}},"20":{"start":{"line":82,"column":2},"end":{"line":96,"column":3}},"21":{"start":{"line":83,"column":4},"end":{"line":87,"column":6}},"22":{"start":{"line":88,"column":9},"end":{"line":96,"column":3}},"23":{"start":{"line":89,"column":4},"end":{"line":89,"column":26}},"24":{"start":{"line":90,"column":9},"end":{"line":96,"column":3}},"25":{"start":{"line":91,"column":4},"end":{"line":95,"column":6}},"26":{"start":{"line":98,"column":18},"end":{"line":98,"column":31}},"27":{"start":{"line":102,"column":12},"end":{"line":102,"column":36}},"28":{"start":{"line":103,"column":2},"end":{"line":105,"column":3}},"29":{"start":{"line":104,"column":4},"end":{"line":104,"column":23}},"30":{"start":{"line":110,"column":2},"end":{"line":110,"column":35}},"31":{"start":{"line":111,"column":2},"end":{"line":113,"column":3}},"32":{"start":{"line":112,"column":4},"end":{"line":112,"column":23}},"33":{"start":{"line":115,"column":16},"end":{"line":115,"column":38}},"34":{"start":{"line":117,"column":33},"end":{"line":177,"column":3}},"35":{"start":{"line":179,"column":2},"end":{"line":180,"column":97}},"36":{"start":{"line":182,"column":2},"end":{"line":182,"column":84}},"37":{"start":{"line":183,"column":2},"end":{"line":183,"column":88}},"38":{"start":{"line":185,"column":2},"end":{"line":185,"column":16}},"39":{"start":{"line":189,"column":14},"end":{"line":189,"column":24}},"40":{"start":{"line":190,"column":2},"end":{"line":190,"column":48}}},"fnMap":{"0":{"name":"(anonymous_0)","decl":{"start":{"line":24,"column":29},"end":{"line":24,"column":30}},"loc":{"start":{"line":24,"column":65},"end":{"line":31,"column":1}},"line":24},"1":{"name":"createMatch","decl":{"start":{"line":33,"column":9},"end":{"line":33,"column":20}},"loc":{"start":{"line":33,"column":71},"end":{"line":35,"column":1}},"line":33},"2":{"name":"(anonymous_2)","decl":{"start":{"line":34,"column":9},"end":{"line":34,"column":10}},"loc":{"start":{"line":34,"column":37},"end":{"line":34,"column":58}},"line":34},"3":{"name":"isMobile","decl":{"start":{"line":75,"column":16},"end":{"line":75,"column":24}},"loc":{"start":{"line":75,"column":68},"end":{"line":186,"column":1}},"line":75},"4":{"name":"isMobileDevices","decl":{"start":{"line":188,"column":16},"end":{"line":188,"column":31}},"loc":{"start":{"line":188,"column":34},"end":{"line":191,"column":1}},"line":188}},"branchMap":{"0":{"loc":{"start":{"line":26,"column":4},"end":{"line":29,"column":32}},"type":"binary-expr","locations":[{"start":{"line":26,"column":4},"end":{"line":26,"column":36}},{"start":{"line":27,"column":4},"end":{"line":27,"column":37}},{"start":{"line":28,"column":4},"end":{"line":28,"column":48}},{"start":{"line":29,"column":4},"end":{"line":29,"column":32}}],"line":26},"1":{"loc":{"start":{"line":82,"column":2},"end":{"line":96,"column":3}},"type":"if","locations":[{"start":{"line":82,"column":2},"end":{"line":96,"column":3}},{"start":{"line":88,"column":9},"end":{"line":96,"column":3}}],"line":82},"2":{"loc":{"start":{"line":82,"column":6},"end":{"line":82,"column":48}},"type":"binary-expr","locations":[{"start":{"line":82,"column":6},"end":{"line":82,"column":12}},{"start":{"line":82,"column":16},"end":{"line":82,"column":48}}],"line":82},"3":{"loc":{"start":{"line":86,"column":22},"end":{"line":86,"column":51}},"type":"binary-expr","locations":[{"start":{"line":86,"column":22},"end":{"line":86,"column":46}},{"start":{"line":86,"column":50},"end":{"line":86,"column":51}}],"line":86},"4":{"loc":{"start":{"line":88,"column":9},"end":{"line":96,"column":3}},"type":"if","locations":[{"start":{"line":88,"column":9},"end":{"line":96,"column":3}},{"start":{"line":90,"column":9},"end":{"line":96,"column":3}}],"line":88},"5":{"loc":{"start":{"line":90,"column":9},"end":{"line":96,"column":3}},"type":"if","locations":[{"start":{"line":90,"column":9},"end":{"line":96,"column":3}},{"start":{},"end":{}}],"line":90},"6":{"loc":{"start":{"line":90,"column":13},"end":{"line":90,"column":37}},"type":"binary-expr","locations":[{"start":{"line":90,"column":13},"end":{"line":90,"column":18}},{"start":{"line":90,"column":22},"end":{"line":90,"column":37}}],"line":90},"7":{"loc":{"start":{"line":94,"column":22},"end":{"line":94,"column":47}},"type":"binary-expr","locations":[{"start":{"line":94,"column":22},"end":{"line":94,"column":42}},{"start":{"line":94,"column":46},"end":{"line":94,"column":47}}],"line":94},"8":{"loc":{"start":{"line":103,"column":2},"end":{"line":105,"column":3}},"type":"if","locations":[{"start":{"line":103,"column":2},"end":{"line":105,"column":3}},{"start":{},"end":{}}],"line":103},"9":{"loc":{"start":{"line":111,"column":2},"end":{"line":113,"column":3}},"type":"if","locations":[{"start":{"line":111,"column":2},"end":{"line":113,"column":3}},{"start":{},"end":{}}],"line":111},"10":{"loc":{"start":{"line":119,"column":13},"end":{"line":119,"column":55}},"type":"binary-expr","locations":[{"start":{"line":119,"column":13},"end":{"line":119,"column":31}},{"start":{"line":119,"column":35},"end":{"line":119,"column":55}}],"line":119},"11":{"loc":{"start":{"line":122,"column":8},"end":{"line":124,"column":28}},"type":"binary-expr","locations":[{"start":{"line":122,"column":8},"end":{"line":122,"column":27}},{"start":{"line":123,"column":9},"end":{"line":123,"column":27}},{"start":{"line":123,"column":31},"end":{"line":123,"column":56}},{"start":{"line":124,"column":8},"end":{"line":124,"column":28}}],"line":122},"12":{"loc":{"start":{"line":127,"column":8},"end":{"line":132,"column":28}},"type":"binary-expr","locations":[{"start":{"line":127,"column":9},"end":{"line":127,"column":27}},{"start":{"line":128,"column":10},"end":{"line":128,"column":26}},{"start":{"line":129,"column":10},"end":{"line":129,"column":28}},{"start":{"line":130,"column":10},"end":{"line":130,"column":31}},{"start":{"line":131,"column":10},"end":{"line":131,"column":35}},{"start":{"line":132,"column":8},"end":{"line":132,"column":28}}],"line":127},"13":{"loc":{"start":{"line":136,"column":14},"end":{"line":136,"column":56}},"type":"binary-expr","locations":[{"start":{"line":136,"column":14},"end":{"line":136,"column":33}},{"start":{"line":136,"column":37},"end":{"line":136,"column":56}}],"line":136},"14":{"loc":{"start":{"line":137,"column":14},"end":{"line":137,"column":55}},"type":"binary-expr","locations":[{"start":{"line":137,"column":14},"end":{"line":137,"column":32}},{"start":{"line":137,"column":36},"end":{"line":137,"column":55}}],"line":137},"15":{"loc":{"start":{"line":141,"column":8},"end":{"line":142,"column":53}},"type":"binary-expr","locations":[{"start":{"line":141,"column":9},"end":{"line":141,"column":29}},{"start":{"line":141,"column":33},"end":{"line":141,"column":51}},{"start":{"line":142,"column":9},"end":{"line":142,"column":29}},{"start":{"line":142,"column":33},"end":{"line":142,"column":52}}],"line":141},"16":{"loc":{"start":{"line":144,"column":8},"end":{"line":147,"column":53}},"type":"binary-expr","locations":[{"start":{"line":144,"column":8},"end":{"line":144,"column":28}},{"start":{"line":145,"column":8},"end":{"line":145,"column":27}},{"start":{"line":146,"column":8},"end":{"line":146,"column":28}},{"start":{"line":147,"column":9},"end":{"line":147,"column":28}},{"start":{"line":147,"column":32},"end":{"line":147,"column":52}}],"line":144},"17":{"loc":{"start":{"line":149,"column":8},"end":{"line":154,"column":28}},"type":"binary-expr","locations":[{"start":{"line":149,"column":9},"end":{"line":149,"column":29}},{"start":{"line":150,"column":11},"end":{"line":150,"column":29}},{"start":{"line":151,"column":12},"end":{"line":151,"column":31}},{"start":{"line":152,"column":12},"end":{"line":152,"column":31}},{"start":{"line":153,"column":12},"end":{"line":153,"column":32}},{"start":{"line":154,"column":8},"end":{"line":154,"column":28}}],"line":149},"18":{"loc":{"start":{"line":159,"column":14},"end":{"line":159,"column":57}},"type":"binary-expr","locations":[{"start":{"line":159,"column":14},"end":{"line":159,"column":33}},{"start":{"line":159,"column":37},"end":{"line":159,"column":57}}],"line":159},"19":{"loc":{"start":{"line":168,"column":8},"end":{"line":172,"column":26}},"type":"binary-expr","locations":[{"start":{"line":168,"column":8},"end":{"line":168,"column":30}},{"start":{"line":169,"column":8},"end":{"line":169,"column":32}},{"start":{"line":170,"column":8},"end":{"line":170,"column":25}},{"start":{"line":171,"column":8},"end":{"line":171,"column":27}},{"start":{"line":172,"column":8},"end":{"line":172,"column":26}}],"line":168},"20":{"loc":{"start":{"line":180,"column":4},"end":{"line":180,"column":96}},"type":"binary-expr","locations":[{"start":{"line":180,"column":4},"end":{"line":180,"column":23}},{"start":{"line":180,"column":27},"end":{"line":180,"column":48}},{"start":{"line":180,"column":52},"end":{"line":180,"column":73}},{"start":{"line":180,"column":77},"end":{"line":180,"column":96}}],"line":180},"21":{"loc":{"start":{"line":182,"column":17},"end":{"line":182,"column":83}},"type":"binary-expr","locations":[{"start":{"line":182,"column":17},"end":{"line":182,"column":35}},{"start":{"line":182,"column":39},"end":{"line":182,"column":59}},{"start":{"line":182,"column":63},"end":{"line":182,"column":83}}],"line":182},"22":{"loc":{"start":{"line":183,"column":18},"end":{"line":183,"column":87}},"type":"binary-expr","locations":[{"start":{"line":183,"column":18},"end":{"line":183,"column":37}},{"start":{"line":183,"column":41},"end":{"line":183,"column":62}},{"start":{"line":183,"column":66},"end":{"line":183,"column":87}}],"line":183},"23":{"loc":{"start":{"line":190,"column":9},"end":{"line":190,"column":47}},"type":"binary-expr","locations":[{"start":{"line":190,"column":9},"end":{"line":190,"column":25}},{"start":{"line":190,"column":29},"end":{"line":190,"column":47}}],"line":190}},"s":{"0":1,"1":1,"2":1,"3":1,"4":1,"5":1,"6":1,"7":1,"8":1,"9":1,"10":1,"11":1,"12":1,"13":1,"14":1,"15":1,"16":2,"17":2,"18":84,"19":2,"20":2,"21":2,"22":0,"23":0,"24":0,"25":0,"26":2,"27":2,"28":2,"29":0,"30":2,"31":2,"32":0,"33":2,"34":2,"35":2,"36":2,"37":2,"38":2,"39":2,"40":2},"f":{"0":2,"1":2,"2":84,"3":2,"4":2},"b":{"0":[2,2,0,0],"1":[2,0],"2":[2,2],"3":[2,2],"4":[0,0],"5":[0,0],"6":[0,0],"7":[0,0],"8":[0,2],"9":[0,2],"10":[2,1],"11":[2,1,1,0],"12":[2,1,1,1,1,1],"13":[2,2],"14":[2,2],"15":[2,2,2,2],"16":[2,2,2,2,2],"17":[2,2,2,2,2,2],"18":[2,2],"19":[2,2,2,2,2],"20":[2,1,1,1],"21":[2,1,1],"22":[2,2,2],"23":[2,1]},"_coverageSchema":"1a1c01bbd47fc00a2c39e90264f33305004495a9","hash":"82b9d37051b230c0052712ae4e5bc98fd84a0c6c"}
-,"/Users/liuxiyang/work/code/aelf-web-login/packages/utils/src/is/isPortkeyApp.ts": {"path":"/Users/liuxiyang/work/code/aelf-web-login/packages/utils/src/is/isPortkeyApp.ts","statementMap":{"0":{"start":{"line":2,"column":2},"end":{"line":6,"column":3}},"1":{"start":{"line":3,"column":4},"end":{"line":3,"column":17}},"2":{"start":{"line":5,"column":4},"end":{"line":5,"column":58}}},"fnMap":{"0":{"name":"isPortkeyApp","decl":{"start":{"line":1,"column":16},"end":{"line":1,"column":28}},"loc":{"start":{"line":1,"column":31},"end":{"line":7,"column":1}},"line":1}},"branchMap":{"0":{"loc":{"start":{"line":2,"column":2},"end":{"line":6,"column":3}},"type":"if","locations":[{"start":{"line":2,"column":2},"end":{"line":6,"column":3}},{"start":{"line":4,"column":9},"end":{"line":6,"column":3}}],"line":2}},"s":{"0":2,"1":1,"2":1},"f":{"0":2},"b":{"0":[1,1]},"_coverageSchema":"1a1c01bbd47fc00a2c39e90264f33305004495a9","hash":"1ed7b43151466a62a42d706e082632997327ef65"}
-,"/Users/liuxiyang/work/code/aelf-web-login/packages/utils/src/is/isPrivateKey.ts": {"path":"/Users/liuxiyang/work/code/aelf-web-login/packages/utils/src/is/isPrivateKey.ts","statementMap":{"0":{"start":{"line":2,"column":2},"end":{"line":8,"column":3}},"1":{"start":{"line":3,"column":4},"end":{"line":5,"column":5}},"2":{"start":{"line":4,"column":6},"end":{"line":4,"column":75}},"3":{"start":{"line":7,"column":4},"end":{"line":7,"column":17}},"4":{"start":{"line":9,"column":2},"end":{"line":9,"column":15}}},"fnMap":{"0":{"name":"isPrivateKey","decl":{"start":{"line":1,"column":16},"end":{"line":1,"column":28}},"loc":{"start":{"line":1,"column":50},"end":{"line":10,"column":1}},"line":1}},"branchMap":{"0":{"loc":{"start":{"line":3,"column":4},"end":{"line":5,"column":5}},"type":"if","locations":[{"start":{"line":3,"column":4},"end":{"line":5,"column":5}},{"start":{},"end":{}}],"line":3},"1":{"loc":{"start":{"line":3,"column":8},"end":{"line":3,"column":52}},"type":"binary-expr","locations":[{"start":{"line":3,"column":8},"end":{"line":3,"column":18}},{"start":{"line":3,"column":22},"end":{"line":3,"column":52}}],"line":3}},"s":{"0":3,"1":3,"2":2,"3":1,"4":1},"f":{"0":3},"b":{"0":[2,1],"1":[3,2]},"_coverageSchema":"1a1c01bbd47fc00a2c39e90264f33305004495a9","hash":"f0077349f30e3216afcaf5b95239a7d7a74ff48a"}
-,"/Users/liuxiyang/work/code/aelf-web-login/packages/utils/src/utility/Loading.tsx": {"path":"/Users/liuxiyang/work/code/aelf-web-login/packages/utils/src/utility/Loading.tsx","statementMap":{"0":{"start":{"line":4,"column":45},"end":{"line":4,"column":49}},"1":{"start":{"line":5,"column":30},"end":{"line":5,"column":34}},"2":{"start":{"line":9,"column":4},"end":{"line":9,"column":28}},"3":{"start":{"line":13,"column":4},"end":{"line":17,"column":5}},"4":{"start":{"line":14,"column":6},"end":{"line":14,"column":53}},"5":{"start":{"line":15,"column":6},"end":{"line":15,"column":48}},"6":{"start":{"line":16,"column":6},"end":{"line":16,"column":45}},"7":{"start":{"line":21,"column":4},"end":{"line":21,"column":27}},"8":{"start":{"line":23,"column":4},"end":{"line":23,"column":56}},"9":{"start":{"line":27,"column":4},"end":{"line":27,"column":29}},"10":{"start":{"line":31,"column":4},"end":{"line":31,"column":30}},"11":{"start":{"line":32,"column":4},"end":{"line":37,"column":5}},"12":{"start":{"line":33,"column":6},"end":{"line":33,"column":27}},"13":{"start":{"line":34,"column":6},"end":{"line":34,"column":48}},"14":{"start":{"line":35,"column":6},"end":{"line":35,"column":28}},"15":{"start":{"line":36,"column":6},"end":{"line":36,"column":23}}},"fnMap":{"0":{"name":"(anonymous_0)","decl":{"start":{"line":8,"column":2},"end":{"line":8,"column":3}},"loc":{"start":{"line":8,"column":38},"end":{"line":10,"column":3}},"line":8},"1":{"name":"(anonymous_1)","decl":{"start":{"line":12,"column":2},"end":{"line":12,"column":3}},"loc":{"start":{"line":12,"column":28},"end":{"line":18,"column":3}},"line":12},"2":{"name":"(anonymous_2)","decl":{"start":{"line":20,"column":2},"end":{"line":20,"column":3}},"loc":{"start":{"line":20,"column":42},"end":{"line":24,"column":3}},"line":20},"3":{"name":"(anonymous_3)","decl":{"start":{"line":26,"column":2},"end":{"line":26,"column":3}},"loc":{"start":{"line":26,"column":9},"end":{"line":28,"column":3}},"line":26},"4":{"name":"(anonymous_4)","decl":{"start":{"line":30,"column":2},"end":{"line":30,"column":3}},"loc":{"start":{"line":30,"column":9},"end":{"line":38,"column":3}},"line":30}},"branchMap":{"0":{"loc":{"start":{"line":13,"column":4},"end":{"line":17,"column":5}},"type":"if","locations":[{"start":{"line":13,"column":4},"end":{"line":17,"column":5}},{"start":{},"end":{}}],"line":13},"1":{"loc":{"start":{"line":23,"column":22},"end":{"line":23,"column":54}},"type":"cond-expr","locations":[{"start":{"line":23,"column":32},"end":{"line":23,"column":47}},{"start":{"line":23,"column":50},"end":{"line":23,"column":54}}],"line":23},"2":{"loc":{"start":{"line":32,"column":4},"end":{"line":37,"column":5}},"type":"if","locations":[{"start":{"line":32,"column":4},"end":{"line":37,"column":5}},{"start":{},"end":{}}],"line":32}},"s":{"0":4,"1":4,"2":4,"3":4,"4":3,"5":3,"6":3,"7":4,"8":4,"9":3,"10":1,"11":1,"12":1,"13":1,"14":1,"15":1},"f":{"0":4,"1":4,"2":4,"3":3,"4":1},"b":{"0":[3,1],"1":[3,1],"2":[1,0]},"_coverageSchema":"1a1c01bbd47fc00a2c39e90264f33305004495a9","hash":"d1b2e7b75f227d9c2a2afaca19b603ca9f0ea4e4"}
-,"/Users/liuxiyang/work/code/aelf-web-login/packages/utils/src/utility/sleep.ts": {"path":"/Users/liuxiyang/work/code/aelf-web-login/packages/utils/src/utility/sleep.ts","statementMap":{"0":{"start":{"line":2,"column":2},"end":{"line":2,"column":69}},"1":{"start":{"line":2,"column":34},"end":{"line":2,"column":67}}},"fnMap":{"0":{"name":"sleep","decl":{"start":{"line":1,"column":9},"end":{"line":1,"column":14}},"loc":{"start":{"line":1,"column":52},"end":{"line":3,"column":1}},"line":1},"1":{"name":"(anonymous_1)","decl":{"start":{"line":2,"column":21},"end":{"line":2,"column":22}},"loc":{"start":{"line":2,"column":34},"end":{"line":2,"column":67}},"line":2}},"branchMap":{},"s":{"0":1,"1":1},"f":{"0":1,"1":1},"b":{},"_coverageSchema":"1a1c01bbd47fc00a2c39e90264f33305004495a9","hash":"49e1a28dfeb96cf7cd575a64842c2e71a804aa20"}
-}
diff --git a/packages/utils/coverage/coverage-summary.json b/packages/utils/coverage/coverage-summary.json
deleted file mode 100644
index 82f068c8..00000000
--- a/packages/utils/coverage/coverage-summary.json
+++ /dev/null
@@ -1,24 +0,0 @@
-{"total": {"lines":{"total":192,"covered":182,"skipped":0,"pct":94.79},"statements":{"total":210,"covered":197,"skipped":0,"pct":93.8},"functions":{"total":34,"covered":34,"skipped":0,"pct":100},"branches":{"total":182,"covered":158,"skipped":0,"pct":86.81},"branchesTrue":{"total":0,"covered":0,"skipped":0,"pct":100}}
-,"/Users/liuxiyang/work/code/aelf-web-login/packages/utils/src/address/addPrefixSuffix.ts": {"lines":{"total":9,"covered":9,"skipped":0,"pct":100},"functions":{"total":1,"covered":1,"skipped":0,"pct":100},"statements":{"total":10,"covered":10,"skipped":0,"pct":100},"branches":{"total":8,"covered":6,"skipped":0,"pct":75}}
-,"/Users/liuxiyang/work/code/aelf-web-login/packages/utils/src/address/decodeAddress.ts": {"lines":{"total":12,"covered":12,"skipped":0,"pct":100},"functions":{"total":1,"covered":1,"skipped":0,"pct":100},"statements":{"total":15,"covered":15,"skipped":0,"pct":100},"branches":{"total":8,"covered":8,"skipped":0,"pct":100}}
-,"/Users/liuxiyang/work/code/aelf-web-login/packages/utils/src/address/getOriginalAddress.ts": {"lines":{"total":4,"covered":4,"skipped":0,"pct":100},"functions":{"total":1,"covered":1,"skipped":0,"pct":100},"statements":{"total":5,"covered":5,"skipped":0,"pct":100},"branches":{"total":4,"covered":4,"skipped":0,"pct":100}}
-,"/Users/liuxiyang/work/code/aelf-web-login/packages/utils/src/calculate/divDecimals.ts": {"lines":{"total":6,"covered":6,"skipped":0,"pct":100},"functions":{"total":1,"covered":1,"skipped":0,"pct":100},"statements":{"total":8,"covered":8,"skipped":0,"pct":100},"branches":{"total":13,"covered":13,"skipped":0,"pct":100}}
-,"/Users/liuxiyang/work/code/aelf-web-login/packages/utils/src/calculate/index.ts": {"lines":{"total":0,"covered":0,"skipped":0,"pct":100},"functions":{"total":0,"covered":0,"skipped":0,"pct":100},"statements":{"total":0,"covered":0,"skipped":0,"pct":100},"branches":{"total":0,"covered":0,"skipped":0,"pct":100}}
-,"/Users/liuxiyang/work/code/aelf-web-login/packages/utils/src/calculate/timesDecimals.ts": {"lines":{"total":6,"covered":6,"skipped":0,"pct":100},"functions":{"total":1,"covered":1,"skipped":0,"pct":100},"statements":{"total":8,"covered":8,"skipped":0,"pct":100},"branches":{"total":13,"covered":13,"skipped":0,"pct":100}}
-,"/Users/liuxiyang/work/code/aelf-web-login/packages/utils/src/contract/getRawTransaction.ts": {"lines":{"total":17,"covered":17,"skipped":0,"pct":100},"functions":{"total":1,"covered":1,"skipped":0,"pct":100},"statements":{"total":21,"covered":18,"skipped":0,"pct":85.71},"branches":{"total":13,"covered":9,"skipped":0,"pct":69.23}}
-,"/Users/liuxiyang/work/code/aelf-web-login/packages/utils/src/contract/getRawTransactionNight.ts": {"lines":{"total":3,"covered":3,"skipped":0,"pct":100},"functions":{"total":1,"covered":1,"skipped":0,"pct":100},"statements":{"total":3,"covered":3,"skipped":0,"pct":100},"branches":{"total":0,"covered":0,"skipped":0,"pct":100}}
-,"/Users/liuxiyang/work/code/aelf-web-login/packages/utils/src/contract/getRawTransactionPortkey.ts": {"lines":{"total":6,"covered":6,"skipped":0,"pct":100},"functions":{"total":1,"covered":1,"skipped":0,"pct":100},"statements":{"total":6,"covered":6,"skipped":0,"pct":100},"branches":{"total":0,"covered":0,"skipped":0,"pct":100}}
-,"/Users/liuxiyang/work/code/aelf-web-login/packages/utils/src/contract/getTxResultRetry.ts": {"lines":{"total":12,"covered":12,"skipped":0,"pct":100},"functions":{"total":2,"covered":2,"skipped":0,"pct":100},"statements":{"total":12,"covered":12,"skipped":0,"pct":100},"branches":{"total":7,"covered":5,"skipped":0,"pct":71.42}}
-,"/Users/liuxiyang/work/code/aelf-web-login/packages/utils/src/contract/useCheckAllowanceAndApprove.ts": {"lines":{"total":17,"covered":17,"skipped":0,"pct":100},"functions":{"total":2,"covered":2,"skipped":0,"pct":100},"statements":{"total":17,"covered":17,"skipped":0,"pct":100},"branches":{"total":7,"covered":7,"skipped":0,"pct":100}}
-,"/Users/liuxiyang/work/code/aelf-web-login/packages/utils/src/contract/useGetBalance.ts": {"lines":{"total":11,"covered":10,"skipped":0,"pct":90.9},"functions":{"total":2,"covered":2,"skipped":0,"pct":100},"statements":{"total":11,"covered":10,"skipped":0,"pct":90.9},"branches":{"total":0,"covered":0,"skipped":0,"pct":100}}
-,"/Users/liuxiyang/work/code/aelf-web-login/packages/utils/src/format/formatNumberWithDecimalPlaces.ts": {"lines":{"total":4,"covered":4,"skipped":0,"pct":100},"functions":{"total":1,"covered":1,"skipped":0,"pct":100},"statements":{"total":5,"covered":5,"skipped":0,"pct":100},"branches":{"total":3,"covered":3,"skipped":0,"pct":100}}
-,"/Users/liuxiyang/work/code/aelf-web-login/packages/utils/src/format/formatPrice.ts": {"lines":{"total":8,"covered":8,"skipped":0,"pct":100},"functions":{"total":1,"covered":1,"skipped":0,"pct":100},"statements":{"total":9,"covered":9,"skipped":0,"pct":100},"branches":{"total":13,"covered":13,"skipped":0,"pct":100}}
-,"/Users/liuxiyang/work/code/aelf-web-login/packages/utils/src/format/formatTime.ts": {"lines":{"total":7,"covered":7,"skipped":0,"pct":100},"functions":{"total":2,"covered":2,"skipped":0,"pct":100},"statements":{"total":7,"covered":7,"skipped":0,"pct":100},"branches":{"total":5,"covered":5,"skipped":0,"pct":100}}
-,"/Users/liuxiyang/work/code/aelf-web-login/packages/utils/src/is/isAElfBridge.ts": {"lines":{"total":1,"covered":1,"skipped":0,"pct":100},"functions":{"total":1,"covered":1,"skipped":0,"pct":100},"statements":{"total":1,"covered":1,"skipped":0,"pct":100},"branches":{"total":2,"covered":2,"skipped":0,"pct":100}}
-,"/Users/liuxiyang/work/code/aelf-web-login/packages/utils/src/is/isELFAddress.ts": {"lines":{"total":4,"covered":1,"skipped":0,"pct":25},"functions":{"total":1,"covered":1,"skipped":0,"pct":100},"statements":{"total":5,"covered":2,"skipped":0,"pct":40},"branches":{"total":2,"covered":1,"skipped":0,"pct":50}}
-,"/Users/liuxiyang/work/code/aelf-web-login/packages/utils/src/is/isMobileDevices.ts": {"lines":{"total":40,"covered":34,"skipped":0,"pct":85},"functions":{"total":5,"covered":5,"skipped":0,"pct":100},"statements":{"total":41,"covered":35,"skipped":0,"pct":85.36},"branches":{"total":72,"covered":58,"skipped":0,"pct":80.55}}
-,"/Users/liuxiyang/work/code/aelf-web-login/packages/utils/src/is/isPortkeyApp.ts": {"lines":{"total":3,"covered":3,"skipped":0,"pct":100},"functions":{"total":1,"covered":1,"skipped":0,"pct":100},"statements":{"total":3,"covered":3,"skipped":0,"pct":100},"branches":{"total":2,"covered":2,"skipped":0,"pct":100}}
-,"/Users/liuxiyang/work/code/aelf-web-login/packages/utils/src/is/isPrivateKey.ts": {"lines":{"total":5,"covered":5,"skipped":0,"pct":100},"functions":{"total":1,"covered":1,"skipped":0,"pct":100},"statements":{"total":5,"covered":5,"skipped":0,"pct":100},"branches":{"total":4,"covered":4,"skipped":0,"pct":100}}
-,"/Users/liuxiyang/work/code/aelf-web-login/packages/utils/src/utility/Loading.tsx": {"lines":{"total":16,"covered":16,"skipped":0,"pct":100},"functions":{"total":5,"covered":5,"skipped":0,"pct":100},"statements":{"total":16,"covered":16,"skipped":0,"pct":100},"branches":{"total":6,"covered":5,"skipped":0,"pct":83.33}}
-,"/Users/liuxiyang/work/code/aelf-web-login/packages/utils/src/utility/sleep.ts": {"lines":{"total":1,"covered":1,"skipped":0,"pct":100},"functions":{"total":2,"covered":2,"skipped":0,"pct":100},"statements":{"total":2,"covered":2,"skipped":0,"pct":100},"branches":{"total":0,"covered":0,"skipped":0,"pct":100}}
-}
diff --git a/packages/utils/coverage/lcov.info b/packages/utils/coverage/lcov.info
deleted file mode 100644
index 92055401..00000000
--- a/packages/utils/coverage/lcov.info
+++ /dev/null
@@ -1,640 +0,0 @@
-TN:
-SF:src/address/addPrefixSuffix.ts
-FN:1,addPrefixSuffix
-FNF:1
-FNH:1
-FNDA:5,addPrefixSuffix
-DA:2,5
-DA:3,4
-DA:4,4
-DA:5,4
-DA:6,4
-DA:7,4
-DA:9,4
-DA:10,4
-DA:12,4
-LF:9
-LH:9
-BRDA:2,0,0,1
-BRDA:2,0,1,4
-BRDA:5,1,0,1
-BRDA:5,1,1,3
-BRDA:6,2,0,4
-BRDA:6,2,1,0
-BRDA:9,3,0,4
-BRDA:9,3,1,0
-BRF:8
-BRH:6
-end_of_record
-TN:
-SF:src/address/decodeAddress.ts
-FN:2,(anonymous_0)
-FNF:1
-FNH:1
-FNDA:6,(anonymous_0)
-DA:2,1
-DA:3,6
-DA:4,6
-DA:5,5
-DA:6,4
-DA:7,2
-DA:8,2
-DA:10,1
-DA:11,1
-DA:13,2
-DA:15,2
-DA:17,1
-LF:12
-LH:12
-BRDA:4,0,0,1
-BRDA:4,0,1,5
-BRDA:5,1,0,1
-BRDA:5,1,1,4
-BRDA:6,2,0,2
-BRDA:6,2,1,2
-BRDA:8,3,0,1
-BRDA:8,3,1,1
-BRF:8
-BRH:8
-end_of_record
-TN:
-SF:src/address/getOriginalAddress.ts
-FN:1,getOriginalAddress
-FNF:1
-FNH:1
-FNDA:6,getOriginalAddress
-DA:2,6
-DA:3,4
-DA:4,1
-DA:6,3
-LF:4
-LH:4
-BRDA:2,0,0,2
-BRDA:2,0,1,4
-BRDA:3,1,0,1
-BRDA:3,1,1,3
-BRF:4
-BRH:4
-end_of_record
-TN:
-SF:src/calculate/divDecimals.ts
-FN:3,divDecimals
-FNF:1
-FNH:1
-FNDA:8,divDecimals
-DA:4,8
-DA:5,5
-DA:6,5
-DA:7,4
-DA:8,1
-DA:10,3
-LF:6
-LH:6
-BRDA:3,0,0,5
-BRDA:4,1,0,3
-BRDA:4,1,1,5
-BRDA:5,2,0,1
-BRDA:5,2,1,4
-BRDA:6,3,0,1
-BRDA:6,3,1,4
-BRDA:6,4,0,5
-BRDA:6,4,1,5
-BRDA:7,5,0,1
-BRDA:7,5,1,3
-BRDA:7,6,0,4
-BRDA:7,6,1,1
-BRF:13
-BRH:13
-end_of_record
-TN:
-SF:src/calculate/index.ts
-FNF:0
-FNH:0
-LF:0
-LH:0
-BRF:0
-BRH:0
-end_of_record
-TN:
-SF:src/calculate/timesDecimals.ts
-FN:3,timesDecimals
-FNF:1
-FNH:1
-FNDA:11,timesDecimals
-DA:4,11
-DA:5,8
-DA:6,8
-DA:7,6
-DA:8,1
-DA:10,5
-LF:6
-LH:6
-BRDA:3,0,0,5
-BRDA:4,1,0,3
-BRDA:4,1,1,8
-BRDA:5,2,0,1
-BRDA:5,2,1,7
-BRDA:6,3,0,2
-BRDA:6,3,1,6
-BRDA:6,4,0,8
-BRDA:6,4,1,8
-BRDA:7,5,0,1
-BRDA:7,5,1,5
-BRDA:7,6,0,6
-BRDA:7,6,1,1
-BRF:13
-BRH:13
-end_of_record
-TN:
-SF:src/contract/getRawTransaction.ts
-FN:16,(anonymous_0)
-FNF:1
-FNH:1
-FNDA:5,(anonymous_0)
-DA:16,1
-DA:25,5
-DA:27,4
-DA:29,4
-DA:30,4
-DA:32,1
-DA:33,1
-DA:42,1
-DA:44,2
-DA:45,2
-DA:53,1
-DA:55,1
-DA:56,1
-DA:63,1
-DA:66,3
-DA:68,1
-DA:70,1
-LF:17
-LH:17
-BRDA:25,0,0,1
-BRDA:25,0,1,4
-BRDA:30,1,0,1
-BRDA:30,1,1,2
-BRDA:30,1,2,1
-BRDA:32,2,0,0
-BRDA:32,2,1,1
-BRDA:37,3,0,1
-BRDA:37,3,1,0
-BRDA:44,4,0,0
-BRDA:44,4,1,2
-BRDA:55,5,0,0
-BRDA:55,5,1,1
-BRF:13
-BRH:9
-end_of_record
-TN:
-SF:src/contract/getRawTransactionNight.ts
-FN:11,getRawTransactionNight
-FNF:1
-FNH:1
-FNDA:2,getRawTransactionNight
-DA:18,2
-DA:23,1
-DA:24,1
-LF:3
-LH:3
-BRF:0
-BRH:0
-end_of_record
-TN:
-SF:src/contract/getRawTransactionPortkey.ts
-FN:14,(anonymous_0)
-FNF:1
-FNH:1
-FNDA:2,(anonymous_0)
-DA:14,1
-DA:23,2
-DA:24,2
-DA:33,1
-DA:35,1
-DA:37,1
-LF:6
-LH:6
-BRF:0
-BRH:0
-end_of_record
-TN:
-SF:src/contract/getTxResultRetry.ts
-FN:4,getAElf
-FN:13,getTxResultRetry
-FNF:2
-FNH:2
-FNDA:7,getAElf
-FNDA:2,getTxResultRetry
-DA:5,7
-DA:6,7
-DA:8,7
-DA:9,7
-DA:11,7
-DA:18,2
-DA:19,2
-DA:20,2
-DA:21,2
-DA:22,1
-DA:24,1
-DA:27,1
-LF:12
-LH:12
-BRDA:5,0,0,7
-BRDA:5,0,1,0
-BRDA:8,1,0,7
-BRDA:8,1,1,0
-BRDA:16,2,0,2
-BRDA:21,3,0,1
-BRDA:21,3,1,1
-BRF:7
-BRH:5
-end_of_record
-TN:
-SF:src/contract/useCheckAllowanceAndApprove.ts
-FN:23,(anonymous_0)
-FN:41,(anonymous_1)
-FNF:2
-FNH:2
-FNDA:6,(anonymous_0)
-FNDA:3,(anonymous_1)
-DA:23,1
-DA:38,6
-DA:39,6
-DA:41,6
-DA:42,3
-DA:43,3
-DA:44,3
-DA:67,2
-DA:68,2
-DA:70,2
-DA:71,1
-DA:73,1
-DA:90,1
-DA:92,1
-DA:94,1
-DA:96,3
-DA:109,6
-LF:17
-LH:17
-BRDA:67,0,0,2
-BRDA:67,0,1,1
-BRDA:67,0,2,1
-BRDA:68,1,0,2
-BRDA:68,1,1,1
-BRDA:70,2,0,1
-BRDA:70,2,1,1
-BRF:7
-BRH:7
-end_of_record
-TN:
-SF:src/contract/useGetBalance.ts
-FN:5,(anonymous_0)
-FN:19,(anonymous_1)
-FNF:2
-FNH:2
-FNDA:2,(anonymous_0)
-FNDA:1,(anonymous_1)
-DA:5,1
-DA:16,2
-DA:17,2
-DA:19,2
-DA:20,1
-DA:21,1
-DA:22,1
-DA:31,1
-DA:33,0
-DA:35,1
-DA:39,2
-LF:11
-LH:10
-BRF:0
-BRH:0
-end_of_record
-TN:
-SF:src/format/formatNumberWithDecimalPlaces.ts
-FN:3,formatNumberWithDecimalPlaces
-FNF:1
-FNH:1
-FNDA:8,formatNumberWithDecimalPlaces
-DA:2,1
-DA:4,8
-DA:5,8
-DA:6,7
-LF:4
-LH:4
-BRDA:3,0,0,4
-BRDA:5,1,0,1
-BRDA:5,1,1,7
-BRF:3
-BRH:3
-end_of_record
-TN:
-SF:src/format/formatPrice.ts
-FN:3,formatPrice
-FNF:1
-FNH:1
-FNDA:8,formatPrice
-DA:15,8
-DA:16,8
-DA:17,8
-DA:19,7
-DA:20,1
-DA:23,6
-DA:24,6
-DA:25,6
-LF:8
-LH:8
-BRDA:12,0,0,4
-BRDA:13,1,0,6
-BRDA:14,2,0,6
-BRDA:15,3,0,8
-BRDA:15,3,1,3
-BRDA:16,4,0,1
-BRDA:16,4,1,7
-BRDA:17,5,0,1
-BRDA:17,5,1,7
-BRDA:19,6,0,1
-BRDA:19,6,1,6
-BRDA:19,7,0,7
-BRDA:19,7,1,7
-BRF:13
-BRH:13
-end_of_record
-TN:
-SF:src/format/formatTime.ts
-FN:21,formatTime
-FN:29,createDuration
-FNF:2
-FNH:2
-FNDA:3,formatTime
-FNDA:3,createDuration
-DA:3,1
-DA:22,3
-DA:33,3
-DA:34,1
-DA:35,2
-DA:36,1
-DA:38,1
-LF:7
-LH:7
-BRDA:21,0,0,2
-BRDA:33,1,0,1
-BRDA:33,1,1,2
-BRDA:35,2,0,1
-BRDA:35,2,1,1
-BRF:5
-BRH:5
-end_of_record
-TN:
-SF:src/is/isAElfBridge.ts
-FN:4,isAElfBridge
-FNF:1
-FNH:1
-FNDA:2,isAElfBridge
-DA:5,2
-LF:1
-LH:1
-BRDA:5,0,0,2
-BRDA:5,0,1,1
-BRF:2
-BRH:2
-end_of_record
-TN:
-SF:src/is/isELFAddress.ts
-FN:3,isELFAddress
-FNF:1
-FNH:1
-FNDA:3,isELFAddress
-DA:4,3
-DA:5,2
-DA:6,2
-DA:8,1
-LF:4
-LH:4
-BRDA:4,0,0,1
-BRDA:4,0,1,2
-BRF:2
-BRH:2
-end_of_record
-TN:
-SF:src/is/isMobileDevices.ts
-FN:24,(anonymous_0)
-FN:33,createMatch
-FN:34,(anonymous_2)
-FN:75,isMobile
-FN:188,isMobileDevices
-FNF:5
-FNH:5
-FNDA:2,(anonymous_0)
-FNDA:2,createMatch
-FNDA:84,(anonymous_2)
-FNDA:2,isMobile
-FNDA:2,isMobileDevices
-DA:1,1
-DA:2,1
-DA:3,1
-DA:4,1
-DA:5,1
-DA:6,1
-DA:7,1
-DA:8,1
-DA:9,1
-DA:10,1
-DA:11,1
-DA:12,1
-DA:13,1
-DA:14,1
-DA:15,1
-DA:24,1
-DA:25,2
-DA:34,84
-DA:76,2
-DA:82,2
-DA:83,2
-DA:88,0
-DA:89,0
-DA:90,0
-DA:91,0
-DA:98,2
-DA:102,2
-DA:103,2
-DA:104,0
-DA:110,2
-DA:111,2
-DA:112,0
-DA:115,2
-DA:117,2
-DA:179,2
-DA:182,2
-DA:183,2
-DA:185,2
-DA:189,2
-DA:190,2
-LF:40
-LH:34
-BRDA:26,0,0,2
-BRDA:26,0,1,2
-BRDA:26,0,2,0
-BRDA:26,0,3,0
-BRDA:82,1,0,2
-BRDA:82,1,1,0
-BRDA:82,2,0,2
-BRDA:82,2,1,2
-BRDA:86,3,0,2
-BRDA:86,3,1,2
-BRDA:88,4,0,0
-BRDA:88,4,1,0
-BRDA:90,5,0,0
-BRDA:90,5,1,0
-BRDA:90,6,0,0
-BRDA:90,6,1,0
-BRDA:94,7,0,0
-BRDA:94,7,1,0
-BRDA:103,8,0,0
-BRDA:103,8,1,2
-BRDA:111,9,0,0
-BRDA:111,9,1,2
-BRDA:119,10,0,2
-BRDA:119,10,1,1
-BRDA:122,11,0,2
-BRDA:122,11,1,1
-BRDA:122,11,2,1
-BRDA:122,11,3,0
-BRDA:127,12,0,2
-BRDA:127,12,1,1
-BRDA:127,12,2,1
-BRDA:127,12,3,1
-BRDA:127,12,4,1
-BRDA:127,12,5,1
-BRDA:136,13,0,2
-BRDA:136,13,1,2
-BRDA:137,14,0,2
-BRDA:137,14,1,2
-BRDA:141,15,0,2
-BRDA:141,15,1,2
-BRDA:141,15,2,2
-BRDA:141,15,3,2
-BRDA:144,16,0,2
-BRDA:144,16,1,2
-BRDA:144,16,2,2
-BRDA:144,16,3,2
-BRDA:144,16,4,2
-BRDA:149,17,0,2
-BRDA:149,17,1,2
-BRDA:149,17,2,2
-BRDA:149,17,3,2
-BRDA:149,17,4,2
-BRDA:149,17,5,2
-BRDA:159,18,0,2
-BRDA:159,18,1,2
-BRDA:168,19,0,2
-BRDA:168,19,1,2
-BRDA:168,19,2,2
-BRDA:168,19,3,2
-BRDA:168,19,4,2
-BRDA:180,20,0,2
-BRDA:180,20,1,1
-BRDA:180,20,2,1
-BRDA:180,20,3,1
-BRDA:182,21,0,2
-BRDA:182,21,1,1
-BRDA:182,21,2,1
-BRDA:183,22,0,2
-BRDA:183,22,1,2
-BRDA:183,22,2,2
-BRDA:190,23,0,2
-BRDA:190,23,1,1
-BRF:72
-BRH:58
-end_of_record
-TN:
-SF:src/is/isPortkeyApp.ts
-FN:1,isPortkeyApp
-FNF:1
-FNH:1
-FNDA:2,isPortkeyApp
-DA:2,2
-DA:3,1
-DA:5,1
-LF:3
-LH:3
-BRDA:2,0,0,1
-BRDA:2,0,1,1
-BRF:2
-BRH:2
-end_of_record
-TN:
-SF:src/is/isPrivateKey.ts
-FN:1,isPrivateKey
-FNF:1
-FNH:1
-FNDA:3,isPrivateKey
-DA:2,3
-DA:3,3
-DA:4,2
-DA:7,1
-DA:9,1
-LF:5
-LH:5
-BRDA:3,0,0,2
-BRDA:3,0,1,1
-BRDA:3,1,0,3
-BRDA:3,1,1,2
-BRF:4
-BRH:4
-end_of_record
-TN:
-SF:src/utility/Loading.tsx
-FN:8,(anonymous_0)
-FN:12,(anonymous_1)
-FN:20,(anonymous_2)
-FN:26,(anonymous_3)
-FN:30,(anonymous_4)
-FNF:5
-FNH:5
-FNDA:4,(anonymous_0)
-FNDA:4,(anonymous_1)
-FNDA:4,(anonymous_2)
-FNDA:3,(anonymous_3)
-FNDA:1,(anonymous_4)
-DA:4,4
-DA:5,4
-DA:9,4
-DA:13,4
-DA:14,3
-DA:15,3
-DA:16,3
-DA:21,4
-DA:23,4
-DA:27,3
-DA:31,1
-DA:32,1
-DA:33,1
-DA:34,1
-DA:35,1
-DA:36,1
-LF:16
-LH:16
-BRDA:13,0,0,3
-BRDA:13,0,1,1
-BRDA:23,1,0,3
-BRDA:23,1,1,1
-BRDA:32,2,0,1
-BRDA:32,2,1,0
-BRF:6
-BRH:5
-end_of_record
-TN:
-SF:src/utility/sleep.ts
-FN:1,sleep
-FN:2,(anonymous_1)
-FNF:2
-FNH:2
-FNDA:1,sleep
-FNDA:1,(anonymous_1)
-DA:2,1
-LF:1
-LH:1
-BRF:0
-BRH:0
-end_of_record
diff --git a/packages/utils/jest-report.xml b/packages/utils/jest-report.xml
deleted file mode 100644
index a215d804..00000000
--- a/packages/utils/jest-report.xml
+++ /dev/null
@@ -1,217 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/packages/utils/jest.config.ts b/packages/utils/jest.config.ts
deleted file mode 100644
index 142c4581..00000000
--- a/packages/utils/jest.config.ts
+++ /dev/null
@@ -1,187 +0,0 @@
-/**
- * For a detailed explanation regarding each configuration property, visit:
- * https://jestjs.io/docs/configuration
- */
-
-import type { Config } from 'jest';
-
-const config: Config = {
- // All imported modules in your tests should be mocked automatically
- // automock: false,
-
- // Stop running tests after `n` failures
- // bail: 0,
-
- // The directory where Jest should store its cached dependency information
- // cacheDirectory: "/private/var/folders/46/f0k6l2594mg21yh77r2msl8w0000gn/T/jest_dx",
-
- // Automatically clear mock calls, instances, contexts and results before every test
- clearMocks: true,
-
- // Indicates whether the coverage information should be collected while executing the test
- collectCoverage: true,
-
- // An array of glob patterns indicating a set of files for which coverage information should be collected
- // collectCoverageFrom: undefined,
-
- // The directory where Jest should output its coverage files
- coverageDirectory: 'coverage',
-
- // An array of regexp pattern strings used to skip coverage collection
- // coveragePathIgnorePatterns: [
- // "/node_modules/"
- // ],
-
- // Indicates which provider should be used to instrument code for coverage
- // coverageProvider: "babel",
-
- // A list of reporter names that Jest uses when writing coverage reports
- coverageReporters: ['json-summary', 'text'],
-
- // An object that configures minimum threshold enforcement for coverage results
- // coverageThreshold: undefined,
-
- // A path to a custom dependency extractor
- // dependencyExtractor: undefined,
-
- // Make calling deprecated APIs throw helpful error messages
- // errorOnDeprecated: false,
-
- // The default configuration for fake timers
- // fakeTimers: {
- // "enableGlobally": false
- // },
-
- // Force coverage collection from ignored files using an array of glob patterns
- // forceCoverageMatch: [],
-
- // A path to a module which exports an async function that is triggered once before all test suites
- // globalSetup: undefined,
-
- // A path to a module which exports an async function that is triggered once after all test suites
- // globalTeardown: undefined,
-
- // A set of global variables that need to be available in all test environments
-
- // The maximum amount of workers used to run your tests. Can be specified as % or a number. E.g. maxWorkers: 10% will use 10% of your CPU amount + 1 as the maximum worker number. maxWorkers: 2 will use a maximum of 2 workers.
- // maxWorkers: "50%",
-
- // An array of directory names to be searched recursively up from the requiring module's location
- // moduleDirectories: [
- // "node_modules"
- // ],
-
- // An array of file extensions your modules use
- // moduleFileExtensions: ['js', 'mjs', 'cjs', 'jsx', 'ts', 'tsx', 'json', 'node'],
-
- // A map from regular expressions to module names or to arrays of module names that allow to stub out resources with a single module
- moduleNameMapper: { '\\.(css|less|sass|scss)$': 'identity-obj-proxy' },
-
- // An array of regexp pattern strings, matched against all module paths before considered 'visible' to the module loader
- // modulePathIgnorePatterns: [],
-
- // Activates notifications for test results
- // notify: false,
-
- // An enum that specifies notification mode. Requires { notify: true }
- // notifyMode: "failure-change",
-
- // A preset that is used as a base for Jest's configuration
- // preset: 'babel-jest',
-
- // Run tests from one or more projects
- // projects: undefined,
-
- // Use this configuration option to add custom reporters to Jest
- reporters: [
- 'default',
- [
- 'jest-junit',
- {
- outputDirectory: '.',
- outputName: 'jest-report.xml',
- },
- ],
- ],
-
- // Automatically reset mock state before every test
- // resetMocks: false,
-
- // Reset the module registry before running each individual test
- // resetModules: false,
-
- // A path to a custom resolver
- // resolver: undefined,
-
- // Automatically restore mock state and implementation before every test
- // restoreMocks: false,
-
- // The root directory that Jest should scan for tests and modules within
- // rootDir: undefined,
-
- // A list of paths to directories that Jest should use to search for files in
- // roots: [
- // ""
- // ],
-
- // Allows you to use a custom runner instead of Jest's default test runner
- // runner: "jest-runner",
-
- // The paths to modules that run some code to configure or set up the testing environment before each test
- setupFiles: ['jest-canvas-mock'],
-
- // A list of paths to modules that run some code to configure or set up the testing framework before each test
- setupFilesAfterEnv: ['/setupTests.ts'],
-
- // The number of seconds after which a test is considered as slow and reported as such in the results.
- // slowTestThreshold: 5,
-
- // A list of paths to snapshot serializer modules Jest should use for snapshot testing
- // snapshotSerializers: [],
-
- // The test environment that will be used for testing
- testEnvironment: 'node',
-
- // Options that will be passed to the testEnvironment
- // testEnvironmentOptions: {},
-
- // Adds a location field to test results
- // testLocationInResults: false,
-
- // The glob patterns Jest uses to detect test files
- // testMatch: ['**/__tests__/**/*.[jt]s?(x)', '**/?(*.)+(spec|test).[tj]s?(x)'],
-
- // An array of regexp pattern strings that are matched against all test paths, matched tests are skipped
- // testPathIgnorePatterns: [
- // "/node_modules/"
- // ],
-
- // The regexp pattern or array of patterns that Jest uses to detect test files
- // testRegex: [],
-
- // This option allows the use of a custom results processor
- // testResultsProcessor: undefined,
-
- // This option allows use of a custom test runner
- // testRunner: "jest-circus/runner",
-
- // A map from regular expressions to paths to transformers
- transform: { '^.+\\.(js|jsx|ts|tsx)$': 'babel-jest', '^.+\\.js$': 'babel-jest' },
-
- // An array of regexp pattern strings that are matched against all source file paths, matched files will skip transformation
- transformIgnorePatterns: [],
-
- // An array of regexp pattern strings that are matched against all modules before the module loader will automatically return a mock for them
- // unmockedModulePathPatterns: undefined,
-
- // Indicates whether each individual test should be reported during the run
- // verbose: undefined,
-
- // An array of regexp patterns that are matched against all source file paths before re-running tests in watch mode
- // watchPathIgnorePatterns: [],
-
- // Whether to use watchman for file crawling
- // watchman: true,
-};
-
-export default config;
diff --git a/packages/utils/package.json b/packages/utils/package.json
index 1a96156e..56c8ad1d 100755
--- a/packages/utils/package.json
+++ b/packages/utils/package.json
@@ -23,9 +23,10 @@
"scripts": {
"dev": "father dev",
"build": "father build",
- "test": "jest --config=jest.config.ts --detectOpenHandles",
- "test:watch": "jest --config=jest.config.ts --watch --detectOpenHandles",
- "test:coverage": "jest --config=jest.config.ts --coverage --detectOpenHandles"
+ "test": "vitest",
+ "test:dev": "pnpm test -- --watch",
+ "test:coverage": "pnpm test -- --coverage",
+ "test:ui": "pnpm test:dev --ui"
},
"dependencies": {
"@aelf-web-login/wallet-adapter-base": "0.1.2",
@@ -46,21 +47,9 @@
"@portkey/did-ui-react": "^2.7.2",
"@portkey/provider-types": "^2.3.5-alpha.2",
"@portkey/utils": "^2.4.5",
- "@testing-library/jest-dom": "^6.4.6",
- "@testing-library/react": "^14.1.2",
- "@types/jest": "^29.5.12",
- "@types/react": "^18.3.1",
- "@types/react-dom": "^18.3.0",
"aelf-sdk": "^3.4.12",
- "babel-jest": "^29.7.0",
"father": "^4.3.8",
- "identity-obj-proxy": "^3.0.0",
- "jest": "^29.7.0",
- "jest-canvas-mock": "^2.5.2",
- "jest-environment-jsdom": "^29.7.0",
- "jest-junit": "^16.0.0",
- "ts-node": "^10.9.2",
- "typescript": "^5.3.3"
+ "identity-obj-proxy": "^3.0.0"
},
"peerDependencies": {
"@portkey/did-ui-react": "^2.7.2"
diff --git a/packages/utils/setupTests.ts b/packages/utils/setupTests.ts
deleted file mode 100644
index 7b0828bf..00000000
--- a/packages/utils/setupTests.ts
+++ /dev/null
@@ -1 +0,0 @@
-import '@testing-library/jest-dom';
diff --git a/packages/utils/src/address/__tests__/decodeAddress.test.ts b/packages/utils/src/address/__tests__/decodeAddress.test.ts
index 8539726c..c534b7b8 100644
--- a/packages/utils/src/address/__tests__/decodeAddress.test.ts
+++ b/packages/utils/src/address/__tests__/decodeAddress.test.ts
@@ -1,18 +1,21 @@
+import { type Mock } from 'vitest';
import { decodeAddress } from '../decodeAddress';
import AElf from 'aelf-sdk';
// Mock AElf.utils.decodeAddressRep to avoid actual decoding during tests
-jest.mock('aelf-sdk', () => {
+vi.mock('aelf-sdk', () => {
return {
- utils: {
- decodeAddressRep: jest.fn(),
+ default: {
+ utils: {
+ decodeAddressRep: vi.fn(),
+ },
},
};
});
describe('decodeAddress', () => {
beforeEach(() => {
- (AElf.utils.decodeAddressRep as jest.Mock).mockClear();
+ (AElf.utils.decodeAddressRep as Mock).mockClear();
});
it('should return false when address is empty', () => {
@@ -38,7 +41,7 @@ describe('decodeAddress', () => {
});
it('should return false when AElf.utils.decodeAddressRep throws an error', () => {
- (AElf.utils.decodeAddressRep as jest.Mock).mockImplementation(() => {
+ (AElf.utils.decodeAddressRep as Mock).mockImplementation(() => {
throw new Error('Decoding failed');
});
expect(decodeAddress('validAddress')).toBe(false);
diff --git a/packages/utils/src/contract/__tests__/getRawTransaction.test.ts b/packages/utils/src/contract/__tests__/getRawTransaction.test.ts
index 80b026c2..6c957b87 100644
--- a/packages/utils/src/contract/__tests__/getRawTransaction.test.ts
+++ b/packages/utils/src/contract/__tests__/getRawTransaction.test.ts
@@ -3,25 +3,22 @@ import getRawTransactionDiscover from '../getRawTransactionDiscover';
import getRawTransactionPortkey from '../getRawTransactionPortkey';
import { getRawTransaction } from '../getRawTransaction';
import { WalletTypeEnum, TWalletInfo } from '@aelf-web-login/wallet-adapter-base';
+import { type Mock } from 'vitest';
-jest.mock('../getRawTransactionNight', () => ({
+vi.mock('../getRawTransactionNight', () => ({
__esModule: true,
- default: jest.fn().mockResolvedValue('encodedDataMock1'),
+ default: vi.fn().mockResolvedValue('encodedDataMock1'),
}));
-jest.mock('../getRawTransactionDiscover', () => ({
+vi.mock('../getRawTransactionDiscover', () => ({
__esModule: true,
- default: jest.fn().mockResolvedValue('encodedDataMock2'),
+ default: vi.fn().mockResolvedValue('encodedDataMock2'),
}));
-jest.mock('../getRawTransactionPortkey', () => ({
+vi.mock('../getRawTransactionPortkey', () => ({
__esModule: true,
- default: jest.fn().mockResolvedValue('encodedDataMock3'),
+ default: vi.fn().mockResolvedValue('encodedDataMock3'),
}));
describe('getRawTransaction', () => {
- afterEach(() => {
- jest.clearAllMocks();
- });
-
it('should call getRawTransactionPortkey for WalletTypeEnum.aa and return its result', async () => {
// Arrange
const walletInfo = {
@@ -100,9 +97,9 @@ describe('getRawTransaction', () => {
it('should log and return null when an error occurs', async () => {
const walletInfo: TWalletInfo = { address: 'mockAddress' };
- const consoleLogSpy = jest.spyOn(console, 'log').mockImplementation();
+ const consoleLogSpy = vi.spyOn(console, 'log').mockImplementation();
- (getRawTransactionDiscover as jest.Mock).mockImplementation(() => {
+ (getRawTransactionDiscover as Mock).mockImplementation(() => {
throw new Error('Decoding failed');
});
diff --git a/packages/utils/src/contract/__tests__/getRawTransactionNight.test.ts b/packages/utils/src/contract/__tests__/getRawTransactionNight.test.ts
index 1ce9676b..2728afa7 100644
--- a/packages/utils/src/contract/__tests__/getRawTransactionNight.test.ts
+++ b/packages/utils/src/contract/__tests__/getRawTransactionNight.test.ts
@@ -1,20 +1,21 @@
import { getContractBasic } from '@portkey/contracts';
import getRawTransactionNight, { CreateTransactionParamsOfNight } from '../getRawTransactionNight';
+import { type Mock } from 'vitest';
-jest.mock('@portkey/contracts', () => ({
- getContractBasic: jest.fn(),
+vi.mock('@portkey/contracts', () => ({
+ getContractBasic: vi.fn(),
}));
describe('getRawTransactionNight', () => {
beforeEach(() => {
- jest.clearAllMocks();
+ vi.clearAllMocks();
});
it('should return encoded transaction data', async () => {
const mockContract = {
- encodedTx: jest.fn().mockResolvedValue({ data: 'encodedDataMock' }),
+ encodedTx: vi.fn().mockResolvedValue({ data: 'encodedDataMock' }),
};
- (getContractBasic as jest.Mock).mockResolvedValue(mockContract);
+ (getContractBasic as Mock).mockResolvedValue(mockContract);
const params: CreateTransactionParamsOfNight = {
contractAddress: '0xExampleAddress',
@@ -39,7 +40,7 @@ describe('getRawTransactionNight', () => {
});
it('should handle errors from getContractBasic', async () => {
- (getContractBasic as jest.Mock).mockRejectedValue(new Error('Failed to get contract'));
+ (getContractBasic as Mock).mockRejectedValue(new Error('Failed to get contract'));
try {
await getRawTransactionNight({
diff --git a/packages/utils/src/contract/__tests__/getRawTransactionPortkey.test.ts b/packages/utils/src/contract/__tests__/getRawTransactionPortkey.test.ts
index 4430f3cd..be3fca7a 100644
--- a/packages/utils/src/contract/__tests__/getRawTransactionPortkey.test.ts
+++ b/packages/utils/src/contract/__tests__/getRawTransactionPortkey.test.ts
@@ -3,29 +3,26 @@ import getRawTransactionPortkey, {
} from '../getRawTransactionPortkey';
import { getContractBasic } from '@portkey/contracts';
import { aelf } from '@portkey/utils';
+import { type Mock } from 'vitest';
-jest.mock('@portkey/contracts', () => ({
- getContractBasic: jest.fn(),
+vi.mock('@portkey/contracts', () => ({
+ getContractBasic: vi.fn(),
}));
-jest.mock('@portkey/utils', () => ({
+vi.mock('@portkey/utils', () => ({
aelf: {
- getWallet: jest.fn(),
+ getWallet: vi.fn(),
},
}));
describe('getRawTransactionPortkey', () => {
- beforeEach(() => {
- jest.clearAllMocks();
- });
-
it('should return encoded transaction data', async () => {
const mockContract = {
- encodedTx: jest.fn().mockResolvedValue({ data: 'encodedDataMock' }),
+ encodedTx: vi.fn().mockResolvedValue({ data: 'encodedDataMock' }),
};
- (getContractBasic as jest.Mock).mockResolvedValue(mockContract);
+ (getContractBasic as Mock).mockResolvedValue(mockContract);
- (aelf.getWallet as jest.Mock).mockReturnValue({
+ (aelf.getWallet as Mock).mockReturnValue({
address: 'testAddress',
});
@@ -57,7 +54,7 @@ describe('getRawTransactionPortkey', () => {
});
it('should reject with error when getContractBasic fails', async () => {
- (getContractBasic as jest.Mock).mockRejectedValue(new Error('Failed to get contract'));
+ (getContractBasic as Mock).mockRejectedValue(new Error('Failed to get contract'));
const params: IRowTransactionPortkeyParams = {
caHash: '0xExampleCaHash',
diff --git a/packages/utils/src/contract/__tests__/getTxResultRetry.test.ts b/packages/utils/src/contract/__tests__/getTxResultRetry.test.ts
index e9a8cbb3..dea93f09 100644
--- a/packages/utils/src/contract/__tests__/getTxResultRetry.test.ts
+++ b/packages/utils/src/contract/__tests__/getTxResultRetry.test.ts
@@ -1,24 +1,25 @@
+import { type Mock } from 'vitest';
import { getAElf, getTxResultRetry } from '../getTxResultRetry';
import { getTxResult } from '@portkey/contracts';
-jest.mock('@portkey/contracts', () => ({
- getTxResult: jest.fn(),
+vi.mock('@portkey/contracts', () => ({
+ getTxResult: vi.fn(),
}));
describe('test getAElf', () => {
beforeEach(() => {
- const mockConstructor = jest.fn((param1) => {
+ const mockConstructor = vi.fn((param1) => {
return {
param1,
};
});
- const mockProviders = jest.fn().mockImplementation(() => {
+ const mockProviders = vi.fn().mockImplementation(() => {
return {
- HttpProvider: jest.fn().mockReturnValueOnce({}),
+ HttpProvider: vi.fn().mockReturnValueOnce({}),
};
});
- jest.doMock('aelf-sdk', () => ({
+ vi.doMock('aelf-sdk', () => ({
__esModule: true,
default: mockConstructor,
providers: mockProviders,
@@ -48,7 +49,7 @@ describe('test getAElf', () => {
describe('test getTxResultRetry', () => {
beforeEach(() => {
- jest.clearAllMocks();
+ vi.clearAllMocks();
});
it('returns mined transaction result', async () => {
@@ -56,7 +57,7 @@ describe('test getTxResultRetry', () => {
Status: 'MINED',
};
- (getTxResult as jest.Mock).mockResolvedValue(mockTxResult);
+ (getTxResult as Mock).mockResolvedValue(mockTxResult);
const TransactionId = 'some-transaction-id';
const rpcUrl = 'https://example-rpc.com';
@@ -70,7 +71,7 @@ describe('test getTxResultRetry', () => {
const mockTxResult = {
Status: 'FAILED',
};
- (getTxResult as jest.Mock).mockResolvedValue(mockTxResult);
+ (getTxResult as Mock).mockResolvedValue(mockTxResult);
const TransactionId = 'another-transaction-id';
const rpcUrl = 'https://example-rpc.com';
diff --git a/packages/utils/src/contract/__tests__/useCheckAllowanceAndApprove.test.ts b/packages/utils/src/contract/__tests__/useCheckAllowanceAndApprove.test.ts
index fb76edb3..16be653f 100644
--- a/packages/utils/src/contract/__tests__/useCheckAllowanceAndApprove.test.ts
+++ b/packages/utils/src/contract/__tests__/useCheckAllowanceAndApprove.test.ts
@@ -1,21 +1,20 @@
-/** @jest-environment jsdom */
-
import { renderHook, act } from '@testing-library/react';
import { useCheckAllowanceAndApprove } from '../useCheckAllowanceAndApprove';
import { useConnectWallet } from '@aelf-web-login/wallet-adapter-react';
-import { TChainId } from '@aelf-web-login/wallet-adapter-base';
+import { type TChainId } from '@aelf-web-login/wallet-adapter-base';
+import { type Mock } from 'vitest';
-jest.mock('@aelf-web-login/wallet-adapter-react', () => ({
- // ...jest.requireActual('@aelf-web-login/wallet-adapter-react'),
- useConnectWallet: jest.fn(),
+vi.mock('@aelf-web-login/wallet-adapter-react', () => ({
+ // ...vi.requireActual('@aelf-web-login/wallet-adapter-react'),
+ useConnectWallet: vi.fn(),
}));
describe('useCheckAllowanceAndApprove allowance is little than amount', () => {
- let mockCallViewMethod: jest.Mock;
- let mockCallSendMethod: jest.Mock;
+ let mockCallViewMethod: Mock;
+ let mockCallSendMethod: Mock;
beforeEach(() => {
- mockCallViewMethod = jest.fn((params) => {
+ mockCallViewMethod = vi.fn((params) => {
switch (params.methodName) {
case 'GetAllowance':
return Promise.resolve({
@@ -29,15 +28,15 @@ describe('useCheckAllowanceAndApprove allowance is little than amount', () => {
return Promise.reject(new Error('Unsupported method'));
}
});
- mockCallSendMethod = jest.fn();
- (useConnectWallet as jest.Mock).mockReturnValue({
+ mockCallSendMethod = vi.fn();
+ (useConnectWallet as Mock).mockReturnValue({
callViewMethod: mockCallViewMethod,
callSendMethod: mockCallSendMethod,
});
});
afterEach(() => {
- jest.clearAllMocks();
+ vi.clearAllMocks();
});
it('should correctly call GetAllowance and GetTokenInfo when starting', async () => {
@@ -82,18 +81,18 @@ describe('useCheckAllowanceAndApprove allowance is little than amount', () => {
});
it('should log and return error when an error occurs', async () => {
- (mockCallViewMethod as jest.Mock).mockImplementation(() => {
+ (mockCallViewMethod as Mock).mockImplementation(() => {
throw new Error('failed');
});
});
});
describe('useCheckAllowanceAndApprove allowance is big than amount', () => {
- let mockCallViewMethod: jest.Mock;
- let mockCallSendMethod: jest.Mock;
+ let mockCallViewMethod: Mock;
+ let mockCallSendMethod: Mock;
beforeEach(() => {
- mockCallViewMethod = jest.fn((params) => {
+ mockCallViewMethod = vi.fn((params) => {
switch (params.methodName) {
case 'GetAllowance':
return Promise.resolve({
@@ -111,15 +110,15 @@ describe('useCheckAllowanceAndApprove allowance is big than amount', () => {
return Promise.reject(new Error('Unsupported method'));
}
});
- mockCallSendMethod = jest.fn();
- (useConnectWallet as jest.Mock).mockReturnValue({
+ mockCallSendMethod = vi.fn();
+ (useConnectWallet as Mock).mockReturnValue({
callViewMethod: mockCallViewMethod,
callSendMethod: mockCallSendMethod,
});
});
afterEach(() => {
- jest.clearAllMocks();
+ vi.clearAllMocks();
});
it('should correctly call GetAllowance and GetTokenInfo when starting', async () => {
@@ -152,20 +151,20 @@ describe('useCheckAllowanceAndApprove allowance is big than amount', () => {
});
describe('useCheckAllowanceAndApprove error occurs', () => {
- let mockCallViewMethod: jest.Mock;
- let mockCallSendMethod: jest.Mock;
+ let mockCallViewMethod: Mock;
+ let mockCallSendMethod: Mock;
beforeEach(() => {
- mockCallViewMethod = jest.fn();
- mockCallSendMethod = jest.fn();
- (useConnectWallet as jest.Mock).mockReturnValue({
+ mockCallViewMethod = vi.fn();
+ mockCallSendMethod = vi.fn();
+ (useConnectWallet as Mock).mockReturnValue({
callViewMethod: mockCallViewMethod,
callSendMethod: mockCallSendMethod,
});
});
afterEach(() => {
- jest.clearAllMocks();
+ vi.clearAllMocks();
});
it('should log and return error when an error occurs', async () => {
@@ -186,7 +185,7 @@ describe('useCheckAllowanceAndApprove error occurs', () => {
chainId,
}),
);
- (mockCallViewMethod as jest.Mock).mockImplementation(() => {
+ (mockCallViewMethod as Mock).mockImplementation(() => {
throw new Error('failed');
});
diff --git a/packages/utils/src/contract/__tests__/useGetBalance.test.ts b/packages/utils/src/contract/__tests__/useGetBalance.test.ts
index 67e26e39..3babab74 100644
--- a/packages/utils/src/contract/__tests__/useGetBalance.test.ts
+++ b/packages/utils/src/contract/__tests__/useGetBalance.test.ts
@@ -1,16 +1,13 @@
-/** @jest-environment jsdom */
import { renderHook, act } from '@testing-library/react';
import { useGetBalance } from '../useGetBalance';
-import { setupJestCanvasMock } from 'jest-canvas-mock';
beforeEach(() => {
- jest.clearAllMocks();
- setupJestCanvasMock();
+ vi.clearAllMocks();
});
-jest.mock('@aelf-web-login/wallet-adapter-react', () => ({
- useConnectWallet: jest.fn(() => ({
- callViewMethod: jest.fn(),
+vi.mock('@aelf-web-login/wallet-adapter-react', () => ({
+ useConnectWallet: vi.fn(() => ({
+ callViewMethod: vi.fn(),
})),
}));
diff --git a/packages/utils/src/is/__tests__/isAElfBridge.test.ts b/packages/utils/src/is/__tests__/isAElfBridge.test.ts
index e52c1513..828f477b 100644
--- a/packages/utils/src/is/__tests__/isAElfBridge.test.ts
+++ b/packages/utils/src/is/__tests__/isAElfBridge.test.ts
@@ -2,20 +2,20 @@ import { isAElfBridge } from '../isAElfBridge';
import { AElfDappBridge } from '@aelf-react/types';
describe('test isAElfBridge', () => {
- test('return true when contain options and connect', () => {
+ it('return true when contain options and connect', () => {
const aelfBridge = {
options: {
rpcUrl: 'test',
chainId: 'test',
},
- connect: jest.fn(),
+ connect: vi.fn(),
};
expect(isAElfBridge(aelfBridge as unknown as AElfDappBridge)).toBeTruthy();
});
- test('return false when miss options and connect', () => {
+ it('return false when miss options and connect', () => {
const aelfBridge = {
- connect: jest.fn(),
+ connect: vi.fn(),
};
expect(isAElfBridge(aelfBridge as unknown as AElfDappBridge)).toBeFalsy();
});
diff --git a/packages/utils/src/is/__tests__/isMobileDevices.test.ts b/packages/utils/src/is/__tests__/isMobileDevices.test.ts
index 82d454f8..0fbb9ec9 100644
--- a/packages/utils/src/is/__tests__/isMobileDevices.test.ts
+++ b/packages/utils/src/is/__tests__/isMobileDevices.test.ts
@@ -1,25 +1,31 @@
+// @environment happy-dom
import { isMobileDevices } from '../isMobileDevices';
+import type DetachedWindowAPI from 'happy-dom/lib/window/DetachedWindowAPI.js';
-describe('isMobileDevices', () => {
- const originalNavigator = global.navigator;
+declare global {
+ const happyDOM: DetachedWindowAPI;
+}
+const originalNavigator = happyDOM.settings.navigator;
+
+beforeEach(() => {
+ // nothing to do here, happyDOM is already set up
+});
+
+afterEach(() => {
+ happyDOM.settings.navigator = originalNavigator;
+});
- beforeEach(() => {
- global.navigator = {
+describe('isMobileDevices', () => {
+ it('returns true for mobile user agent', () => {
+ happyDOM.settings.navigator = {
userAgent:
'Mozilla/5.0 (iPhone; CPU iPhone OS 13_0 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148',
} as Navigator;
- });
-
- afterEach(() => {
- global.navigator = originalNavigator;
- });
-
- test('returns true for mobile user agent', () => {
expect(isMobileDevices()).toBe(true);
});
- test('returns false for desktop user agent', () => {
- global.navigator = {
+ it('returns false for desktop user agent', () => {
+ happyDOM.settings.navigator = {
userAgent:
'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/89.0.4389.90 Safari/537.36',
} as Navigator;
diff --git a/packages/utils/src/is/__tests__/isPortkey.test.ts b/packages/utils/src/is/__tests__/isPortkey.test.ts
index f8af8cc6..3a9a0dd0 100644
--- a/packages/utils/src/is/__tests__/isPortkey.test.ts
+++ b/packages/utils/src/is/__tests__/isPortkey.test.ts
@@ -1,35 +1,35 @@
import { isPortkeyApp } from '../isPortkeyApp';
+beforeEach(() => {
+ (global as any).window = {
+ document: {
+ body: {},
+ addEventListener: vi.fn(),
+ removeEventListener: vi.fn(),
+ },
+ navigator: {
+ userAgent: 'Mozilla/5.0 (Windows NT 10.0; Win64; x64)',
+ language: 'en-US',
+ },
+ location: {
+ href: '',
+ reload: vi.fn(),
+ replace: vi.fn(),
+ },
+ };
+});
+afterEach(() => {
+ delete (global as any).window;
+});
describe('isPortkey in SSR', () => {
- test('should return undefined when in SSR', () => {
+ it('should return undefined when in SSR', () => {
const result = isPortkeyApp();
expect(result).toBeFalsy();
});
});
describe('isPortkey in window', () => {
- beforeEach(() => {
- (global as any).window = {
- document: {
- body: {},
- addEventListener: jest.fn(),
- removeEventListener: jest.fn(),
- },
- navigator: {
- userAgent: 'Mozilla/5.0 (Windows NT 10.0; Win64; x64)',
- language: 'en-US',
- },
- location: {
- href: '',
- reload: jest.fn(),
- replace: jest.fn(),
- },
- };
- });
- afterEach(() => {
- delete (global as any).window;
- });
- test('should return false when not in Portkey environment', () => {
+ it('should return false when not in Portkey environment', () => {
const result = isPortkeyApp();
expect(result).toBeFalsy();
});
diff --git a/packages/utils/src/is/__tests__/isPrivateKey.test.ts b/packages/utils/src/is/__tests__/isPrivateKey.test.ts
index 1c5aebef..4bfc75af 100644
--- a/packages/utils/src/is/__tests__/isPrivateKey.test.ts
+++ b/packages/utils/src/is/__tests__/isPrivateKey.test.ts
@@ -10,7 +10,7 @@ describe('test isPrivateKey', () => {
test('returns false when Buffer.from throw error', () => {
const originalFrom = Buffer.from;
- jest.spyOn(Buffer, 'from').mockImplementationOnce(() => {
+ vi.spyOn(Buffer, 'from').mockImplementationOnce(() => {
throw new Error('Mocked buffer error');
});
diff --git a/packages/utils/src/utility/__tests__/Loading.test.tsx b/packages/utils/src/utility/__tests__/Loading.test.tsx
index 2fff47e8..1ea2bbd4 100644
--- a/packages/utils/src/utility/__tests__/Loading.test.tsx
+++ b/packages/utils/src/utility/__tests__/Loading.test.tsx
@@ -1,6 +1,4 @@
-/** @jest-environment jsdom */
import { screen, waitFor, act } from '@testing-library/react';
-import '@testing-library/jest-dom';
import { Loading } from '../Loading';
describe('Loading class', () => {
@@ -11,7 +9,7 @@ describe('Loading class', () => {
});
afterEach(() => {
- jest.clearAllMocks();
+ vi.clearAllMocks();
document.body.innerHTML = '';
});
diff --git a/packages/utils/src/utility/__tests__/sleep.test.ts b/packages/utils/src/utility/__tests__/sleep.test.ts
index 76f2ea7e..419a172c 100644
--- a/packages/utils/src/utility/__tests__/sleep.test.ts
+++ b/packages/utils/src/utility/__tests__/sleep.test.ts
@@ -1,7 +1,7 @@
import { sleep } from '../sleep';
-jest.useFakeTimers();
-jest.spyOn(global, 'setTimeout');
+vi.useFakeTimers();
+vi.spyOn(global, 'setTimeout');
test('waits 1 second', () => {
sleep(1000);
diff --git a/packages/utils/vite.config.ts b/packages/utils/vite.config.ts
new file mode 100644
index 00000000..08b9a087
--- /dev/null
+++ b/packages/utils/vite.config.ts
@@ -0,0 +1,4 @@
+import baseViteConfig from '../tools/vite.config';
+import { mergeConfig } from 'vitest/config';
+
+export default mergeConfig(baseViteConfig, {});
diff --git a/packages/utils/vitest.setup.ts b/packages/utils/vitest.setup.ts
new file mode 100644
index 00000000..a5309360
--- /dev/null
+++ b/packages/utils/vitest.setup.ts
@@ -0,0 +1,2 @@
+import '../tools/__mocks__/setupGlobal';
+import '../tools/__mocks__/setupLocal';
diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml
index 160a3a80..05be1fdb 100644
--- a/pnpm-lock.yaml
+++ b/pnpm-lock.yaml
@@ -12,11 +12,23 @@ importers:
.:
devDependencies:
+ '@babel/core':
+ specifier: ^7.0.0
+ version: 7.25.2
'@babel/parser':
specifier: ^7.24.0
version: 7.25.6
+ '@babel/preset-env':
+ specifier: ^7.24.7
+ version: 7.25.4(@babel/core@7.25.2)
+ '@babel/preset-react':
+ specifier: ^7.24.7
+ version: 7.24.7(@babel/core@7.25.2)
+ '@babel/preset-typescript':
+ specifier: ^7.24.7
+ version: 7.24.7(@babel/core@7.25.2)
'@biomejs/biome':
- specifier: ^1.4.1
+ specifier: ^1.9.2
version: 1.9.2
'@changesets/changelog-git':
specifier: ^0.2.0
@@ -27,9 +39,24 @@ importers:
'@ianvs/prettier-plugin-sort-imports':
specifier: ^4.1.1
version: 4.3.1(prettier@3.3.3)
+ '@testing-library/jest-dom':
+ specifier: ^6.6.3
+ version: 6.6.3
'@testing-library/react':
- specifier: ^14.1.2
- version: 14.3.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ specifier: ^16.0.1
+ version: 16.0.1(@testing-library/dom@10.4.0)(@types/react-dom@18.3.0)(@types/react@18.3.9)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ '@testing-library/react-hooks':
+ specifier: ^8.0.1
+ version: 8.0.1(@types/react@18.3.9)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ '@types/node':
+ specifier: ^22.9.3
+ version: 22.9.3
+ '@types/react':
+ specifier: ^18.3.1
+ version: 18.3.9
+ '@types/react-dom':
+ specifier: ^18.3.0
+ version: 18.3.0
'@typescript-eslint/eslint-plugin':
specifier: ^7.1.1
version: 7.18.0(@typescript-eslint/parser@7.18.0(eslint@8.57.1)(typescript@5.6.2))(eslint@8.57.1)(typescript@5.6.2)
@@ -37,8 +64,11 @@ importers:
specifier: ^7.1.1
version: 7.18.0(eslint@8.57.1)(typescript@5.6.2)
'@vitest/coverage-v8':
- specifier: ^1.1.0
- version: 1.6.0(vitest@1.6.0(@types/node@22.7.3)(jsdom@23.2.0)(less@4.2.0)(lightningcss@1.22.1)(sass@1.79.3)(terser@5.34.0))
+ specifier: ^2.1.5
+ version: 2.1.5(vitest@2.1.5)
+ '@vitest/ui':
+ specifier: ^2.1.5
+ version: 2.1.5(vitest@2.1.5)
babel-plugin-transform-remove-console:
specifier: ^6.9.4
version: 6.9.4
@@ -62,22 +92,19 @@ importers:
version: 3.2.0(@typescript-eslint/eslint-plugin@7.18.0(@typescript-eslint/parser@7.18.0(eslint@8.57.1)(typescript@5.6.2))(eslint@8.57.1)(typescript@5.6.2))(eslint@8.57.1)
father:
specifier: ^4.3.8
- version: 4.5.0(@babel/core@7.25.2)(@types/node@22.7.3)(styled-components@6.1.13(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(type-fest@0.21.3)(webpack@5.95.0)
+ version: 4.5.0(@babel/core@7.25.2)(@types/node@22.9.3)(styled-components@6.1.13(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(type-fest@0.21.3)(webpack@5.95.0)
+ happy-dom:
+ specifier: ^15.11.6
+ version: 15.11.6
husky:
specifier: ^8.0.3
version: 8.0.3
- jest-canvas-mock:
- specifier: ^2.5.2
- version: 2.5.2
- jest-transform-stub:
- specifier: ^2.0.0
- version: 2.0.0
- jsdom:
- specifier: ^23.0.1
- version: 23.2.0
lint-staged:
specifier: ^15.2.0
version: 15.2.10
+ node-fetch:
+ specifier: ^3.3.2
+ version: 3.3.2
prettier:
specifier: ^3.1.1
version: 3.3.3
@@ -87,9 +114,12 @@ importers:
typescript:
specifier: ^5.3.3
version: 5.6.2
+ vite-tsconfig-paths:
+ specifier: ^5.1.3
+ version: 5.1.3(typescript@5.6.2)(vite@5.4.8(@types/node@22.9.3)(less@4.2.0)(lightningcss@1.22.1)(sass@1.79.3)(terser@5.34.0))
vitest:
- specifier: ^1.3.1
- version: 1.6.0(@types/node@22.7.3)(jsdom@23.2.0)(less@4.2.0)(lightningcss@1.22.1)(sass@1.79.3)(terser@5.34.0)
+ specifier: ^2.1.5
+ version: 2.1.5(@types/node@22.9.3)(@vitest/ui@2.1.5)(happy-dom@15.11.6)(jsdom@23.2.0)(less@4.2.0)(lightningcss@1.22.1)(sass@1.79.3)(terser@5.34.0)
packages/base:
dependencies:
@@ -112,30 +142,12 @@ importers:
'@portkey/types':
specifier: ^2.15.9
version: 2.15.9
- '@types/jest':
- specifier: ^29.5.12
- version: 29.5.13
- babel-jest:
- specifier: ^29.7.0
- version: 29.7.0(@babel/core@7.25.2)
- jest:
- specifier: ^29.7.0
- version: 29.7.0(@types/node@22.7.3)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.9.3(@swc/helpers@0.5.1))(@types/node@22.7.3)(typescript@5.6.2))
- jest-environment-jsdom:
- specifier: ^29.7.0
- version: 29.7.0
- jest-junit:
- specifier: ^16.0.0
- version: 16.0.0
- jsdom:
- specifier: ^23.0.1
- version: 23.2.0
- typescript:
- specifier: ^5.3.3
- version: 5.6.2
packages/bridge:
dependencies:
+ '@aelf-web-login/tools':
+ specifier: workspace:*
+ version: link:../tools
'@aelf-web-login/wallet-adapter-base':
specifier: workspace:*
version: link:../base
@@ -176,24 +188,6 @@ importers:
'@portkey/utils':
specifier: ^2.15.9
version: 2.15.9(@portkey/request@2.15.9)(aelf-sdk@3.4.16-alpha.7(@babel/core@7.25.2)(encoding@0.1.13)(eslint@8.57.1))(query-string@7.1.3)
- '@swc/core':
- specifier: ^1.9.3
- version: 1.9.3(@swc/helpers@0.5.1)
- '@swc/jest':
- specifier: ^0.2.37
- version: 0.2.37(@swc/core@1.9.3(@swc/helpers@0.5.1))
- '@testing-library/jest-dom':
- specifier: ^6.5.0
- version: 6.5.0
- '@testing-library/react':
- specifier: ^16.0.1
- version: 16.0.1(@testing-library/dom@10.4.0)(@types/react-dom@18.3.0)(@types/react@18.3.9)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
- '@testing-library/react-hooks':
- specifier: ^8.0.1
- version: 8.0.1(@types/react@18.3.9)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
- '@types/jest':
- specifier: ^29.5.14
- version: 29.5.14
'@types/react':
specifier: ^18.3.1
version: 18.3.9
@@ -208,13 +202,7 @@ importers:
version: 29.7.0(@babel/core@7.25.2)
father:
specifier: ^4.3.8
- version: 4.5.0(@babel/core@7.25.2)(@types/node@22.7.3)(styled-components@6.1.13(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(type-fest@0.21.3)(webpack@5.95.0(@swc/core@1.9.3(@swc/helpers@0.5.1)))
- jest:
- specifier: ^29.7.0
- version: 29.7.0(@types/node@22.7.3)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.9.3(@swc/helpers@0.5.1))(@types/node@22.7.3)(typescript@5.6.2))
- typescript:
- specifier: ^5.3.3
- version: 5.6.2
+ version: 4.5.0(@babel/core@7.25.2)(@types/node@22.9.3)(styled-components@6.1.13(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(type-fest@0.21.3)(webpack@5.95.0)
packages/react:
dependencies:
@@ -246,45 +234,15 @@ importers:
'@babel/preset-typescript':
specifier: ^7.24.7
version: 7.24.7(@babel/core@7.25.2)
- '@testing-library/jest-dom':
- specifier: ^6.4.6
- version: 6.5.0
- '@testing-library/react':
- specifier: ^16.0.0
- version: 16.0.1(@testing-library/dom@10.4.0)(@types/react-dom@18.3.0)(@types/react@18.3.9)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
- '@types/jest':
- specifier: ^29.5.13
- version: 29.5.13
'@types/react':
specifier: ^18.3.1
version: 18.3.9
'@types/react-dom':
specifier: ^18.3.0
version: 18.3.0
- babel-jest:
- specifier: ^29.7.0
- version: 29.7.0(@babel/core@7.25.2)
father:
specifier: ^4.3.8
- version: 4.5.0(@babel/core@7.25.2)(@types/node@22.7.3)(styled-components@6.1.13(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(type-fest@0.21.3)(webpack@5.95.0(@swc/core@1.9.3(@swc/helpers@0.5.1)))
- jest:
- specifier: ^29.7.0
- version: 29.7.0(@types/node@22.7.3)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.9.3(@swc/helpers@0.5.1))(@types/node@22.7.3)(typescript@5.6.2))
- jest-junit:
- specifier: ^16.0.0
- version: 16.0.0
- node-fetch:
- specifier: ^3.3.2
- version: 3.3.2
- react-test-renderer:
- specifier: ^18.3.1
- version: 18.3.1(react@18.3.1)
- ts-jest:
- specifier: ^29.2.5
- version: 29.2.5(@babel/core@7.25.2)(@jest/transform@29.7.0)(@jest/types@29.6.3)(babel-jest@29.7.0(@babel/core@7.25.2))(jest@29.7.0(@types/node@22.7.3)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.9.3(@swc/helpers@0.5.1))(@types/node@22.7.3)(typescript@5.6.2)))(typescript@5.6.2)
- typescript:
- specifier: ^5.3.3
- version: 5.6.2
+ version: 4.5.0(@babel/core@7.25.2)(@types/node@22.9.3)(styled-components@6.1.13(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(type-fest@0.21.3)(webpack@5.95.0)
packages/starter:
dependencies:
@@ -333,7 +291,7 @@ importers:
version: 18.3.0
'@umijs/lint':
specifier: ^4.0.0
- version: 4.3.24(eslint@8.57.1)(jest@29.7.0(@types/node@22.7.3)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.9.3(@swc/helpers@0.5.1))(@types/node@22.7.3)(typescript@5.6.2)))(stylelint@14.16.1)(typescript@5.6.2)
+ version: 4.3.24(eslint@8.57.1)(jest@29.7.0(@types/node@22.9.3)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.9.3(@swc/helpers@0.5.1))(@types/node@22.9.3)(typescript@5.6.2)))(stylelint@14.16.1)(typescript@5.6.2)
aelf-design:
specifier: ^1.1.1
version: 1.1.1(@types/react@18.3.9)(antd@5.18.0(date-fns@2.30.0)(moment@2.30.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
@@ -342,13 +300,13 @@ importers:
version: 5.18.0(date-fns@2.30.0)(moment@2.30.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
dumi:
specifier: 2.2.17
- version: 2.2.17(@babel/core@7.25.2)(@swc/helpers@0.5.1)(@types/node@22.7.3)(@types/react@18.3.9)(eslint@8.57.1)(jest@29.7.0(@types/node@22.7.3)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.9.3(@swc/helpers@0.5.1))(@types/node@22.7.3)(typescript@5.6.2)))(lightningcss@1.22.1)(prettier@3.3.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(rollup@3.29.5)(stylelint@14.16.1)(terser@5.34.0)(type-fest@0.21.3)(typescript@5.6.2)(webpack@5.95.0(@swc/core@1.9.3(@swc/helpers@0.5.1)))
+ version: 2.2.17(@babel/core@7.25.2)(@swc/helpers@0.5.1)(@types/node@22.9.3)(@types/react@18.3.9)(eslint@8.57.1)(jest@29.7.0(@types/node@22.9.3)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.9.3(@swc/helpers@0.5.1))(@types/node@22.9.3)(typescript@5.6.2)))(lightningcss@1.22.1)(prettier@3.3.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(rollup@3.29.5)(stylelint@14.16.1)(terser@5.34.0)(type-fest@0.21.3)(typescript@5.6.2)(webpack@5.95.0(@swc/core@1.9.3(@swc/helpers@0.5.1)))
eslint:
specifier: ^8.23.0
version: 8.57.1
father:
specifier: ^4.1.0
- version: 4.5.0(@babel/core@7.25.2)(@types/node@22.7.3)(styled-components@6.1.13(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(type-fest@0.21.3)(webpack@5.95.0(@swc/core@1.9.3(@swc/helpers@0.5.1)))
+ version: 4.5.0(@babel/core@7.25.2)(@types/node@22.9.3)(styled-components@6.1.13(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(type-fest@0.21.3)(webpack@5.95.0(@swc/core@1.9.3(@swc/helpers@0.5.1)))
glob:
specifier: ^10.3.12
version: 10.4.5
@@ -356,6 +314,8 @@ importers:
specifier: ^14.9.1
version: 14.16.1
+ packages/tools: {}
+
packages/utils:
dependencies:
'@aelf-web-login/wallet-adapter-base':
@@ -407,51 +367,15 @@ importers:
'@portkey/utils':
specifier: ^2.4.5
version: 2.10.5(@portkey/request@2.15.9)(aelf-sdk@3.4.15(@babel/core@7.25.2)(encoding@0.1.13)(eslint@8.57.1))(query-string@7.1.3)
- '@testing-library/jest-dom':
- specifier: ^6.4.6
- version: 6.5.0
- '@testing-library/react':
- specifier: ^14.1.2
- version: 14.3.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
- '@types/jest':
- specifier: ^29.5.12
- version: 29.5.13
- '@types/react':
- specifier: ^18.3.1
- version: 18.3.9
- '@types/react-dom':
- specifier: ^18.3.0
- version: 18.3.0
aelf-sdk:
specifier: ^3.4.12
version: 3.4.15(@babel/core@7.25.2)(encoding@0.1.13)(eslint@8.57.1)
- babel-jest:
- specifier: ^29.7.0
- version: 29.7.0(@babel/core@7.25.2)
father:
specifier: ^4.3.8
- version: 4.5.0(@babel/core@7.25.2)(@types/node@22.7.3)(styled-components@6.1.13(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(type-fest@0.21.3)(webpack@5.95.0(@swc/core@1.9.3(@swc/helpers@0.5.1)))
+ version: 4.5.0(@babel/core@7.25.2)(@types/node@22.9.3)(styled-components@6.1.13(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(type-fest@0.21.3)(webpack@5.95.0)
identity-obj-proxy:
specifier: ^3.0.0
version: 3.0.0
- jest:
- specifier: ^29.7.0
- version: 29.7.0(@types/node@22.7.3)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.9.3(@swc/helpers@0.5.1))(@types/node@22.7.3)(typescript@5.6.2))
- jest-canvas-mock:
- specifier: ^2.5.2
- version: 2.5.2
- jest-environment-jsdom:
- specifier: ^29.7.0
- version: 29.7.0
- jest-junit:
- specifier: ^16.0.0
- version: 16.0.0
- ts-node:
- specifier: ^10.9.2
- version: 10.9.2(@swc/core@1.9.3(@swc/helpers@0.5.1))(@types/node@22.7.3)(typescript@5.6.2)
- typescript:
- specifier: ^5.3.3
- version: 5.6.2
packages/wallets/night-elf:
dependencies:
@@ -479,7 +403,7 @@ importers:
version: 5.1.6
father:
specifier: ^4.3.8
- version: 4.5.0(@babel/core@7.25.2)(@types/node@22.7.3)(styled-components@6.1.13(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(type-fest@0.21.3)(webpack@5.95.0)
+ version: 4.5.0(@babel/core@7.25.2)(@types/node@22.9.3)(styled-components@6.1.13(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(type-fest@0.21.3)(webpack@5.95.0)
typescript:
specifier: ^5.3.3
version: 5.6.2
@@ -504,7 +428,7 @@ importers:
version: 2.15.9
father:
specifier: ^4.3.8
- version: 4.5.0(@babel/core@7.25.2)(@types/node@22.7.3)(styled-components@6.1.13(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(type-fest@0.21.3)(webpack@5.95.0)
+ version: 4.5.0(@babel/core@7.25.2)(@types/node@22.9.3)(styled-components@6.1.13(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(type-fest@0.21.3)(webpack@5.95.0)
typescript:
specifier: ^5.3.3
version: 5.6.2
@@ -538,7 +462,7 @@ importers:
version: 5.1.6
father:
specifier: ^4.3.8
- version: 4.5.0(@babel/core@7.25.2)(@types/node@22.7.3)(styled-components@6.1.13(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(type-fest@0.21.3)(webpack@5.95.0)
+ version: 4.5.0(@babel/core@7.25.2)(@types/node@22.9.3)(styled-components@6.1.13(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(type-fest@0.21.3)(webpack@5.95.0)
typescript:
specifier: ^5.3.3
version: 5.6.2
@@ -2441,10 +2365,6 @@ packages:
node-notifier:
optional: true
- '@jest/create-cache-key-function@29.7.0':
- resolution: {integrity: sha512-4QqS3LY5PBmTRHj9sAg1HLoPzqAI0uOX6wI/TRqHIcOxlFidy6YEmCQJk6FSZjNLGCeubDMfmkWL+qaLKhSGQA==}
- engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
-
'@jest/environment@29.7.0':
resolution: {integrity: sha512-aQIfHDq33ExsN4jP1NWGXhxgQ/wixs60gDiKO+XVMd8Mn0NWPWgc34ZQDTb2jKaUWQ7MuwoitXAsN2XVXNMpAw==}
engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
@@ -2700,6 +2620,9 @@ packages:
resolution: {integrity: sha512-POgTXhjrTfbTV63DiFXav4lBHiICLKKwDeaKn9Nphwj7WH6m0hMMCaJkMyRWjgtPFyRKRVoMXXjczsTQRDEhYw==}
engines: {node: ^12.20.0 || ^14.18.0 || >=16.0.0}
+ '@polka/url@1.0.0-next.28':
+ resolution: {integrity: sha512-8LduaNlMZGwdZ6qWrKlfa+2M4gahzFkprZiAt2TF8uS0qQgBizKXpXURqvTJ4WtmupWxaLqjRb2UCTe72mu+Aw==}
+
'@portkey/accounts@2.10.5':
resolution: {integrity: sha512-HNNzbqRDOeJlrbM5iabpnAYeSeDa0OQ7/OSg/2wafKhsjRqj92zWHlUadhYWowR8xMAJdbFb5Out/s0BOz7jGg==}
peerDependencies:
@@ -3496,12 +3419,6 @@ packages:
'@swc/helpers@0.5.1':
resolution: {integrity: sha512-sJ902EfIzn1Fa+qYmjdQqh8tPsoxyBz+8yBKC2HKUxyezKJFwPGOn7pv4WY6QuQW//ySQi5lJjA/ZT9sNWWNTg==}
- '@swc/jest@0.2.37':
- resolution: {integrity: sha512-CR2BHhmXKGxTiFr21DYPRHQunLkX3mNIFGFkxBGji6r9uyIR5zftTOVYj1e0sFNMV2H7mf/+vpaglqaryBtqfQ==}
- engines: {npm: '>= 7.0.0'}
- peerDependencies:
- '@swc/core': '*'
-
'@swc/types@0.1.17':
resolution: {integrity: sha512-V5gRru+aD8YVyCOMAjMpWR1Ui577DD5KSJsHP8RAxopAH22jFz6GZd/qxqjO6MJHQhcsjvjOFXyDhyLQUnMveQ==}
@@ -3509,8 +3426,8 @@ packages:
resolution: {integrity: sha512-pemlzrSESWbdAloYml3bAJMEfNh1Z7EduzqPKprCH5S341frlpYnUEW0H72dLxa6IsYr+mPno20GiSm+h9dEdQ==}
engines: {node: '>=18'}
- '@testing-library/jest-dom@6.5.0':
- resolution: {integrity: sha512-xGGHpBXYSHUUr6XsKBfs85TWlYKpTc37cSBBVrXcib2MkHLboWlkClhWF37JKlDb9KEq3dHs+f2xR7XJEWGBxA==}
+ '@testing-library/jest-dom@6.6.3':
+ resolution: {integrity: sha512-IteBhl4XqYNkM54f4ejhLRJiZNqcSCoXUOG2CPK7qbD322KjQozM4kHQOfkG2oln9b9HTYqs+Sae8vBATubxxA==}
engines: {node: '>=14', npm: '>=6', yarn: '>=1'}
'@testing-library/react-hooks@8.0.1':
@@ -3529,13 +3446,6 @@ packages:
react-test-renderer:
optional: true
- '@testing-library/react@14.3.1':
- resolution: {integrity: sha512-H99XjUhWQw0lTgyMN05W3xQG1Nh4lq574D8keFf1dDoNTJgp66VbJozRaczoF+wsiaPJNt/TcnfpLGufGxSrZQ==}
- engines: {node: '>=14'}
- peerDependencies:
- react: ^18.0.0
- react-dom: ^18.0.0
-
'@testing-library/react@16.0.1':
resolution: {integrity: sha512-dSmwJVtJXmku+iocRhWOUFbrERC76TX2Mnf0ATODz8brzAZrMBbzLwQixlBSanZxR6LddK3eiwpSFZgDET1URg==}
engines: {node: '>=18'}
@@ -3551,10 +3461,6 @@ packages:
'@types/react-dom':
optional: true
- '@tootallnate/once@2.0.0':
- resolution: {integrity: sha512-XCuKFP5PS55gnMVu3dty8KPatLqUoy/ZYzDzAGCQ8JNFCkLXzmI7vNHCR+XpbZaMWQK/vQubr7PkYq8g470J/A==}
- engines: {node: '>= 10'}
-
'@trysound/sax@0.2.0':
resolution: {integrity: sha512-L7z9BgrNEcYyUYtF+HaEfiS5ebkh9jXqbszz7pC0hRBPaatV0XjSD3+eHrpqFemQfgwiFF0QPIarnIihIDn7OA==}
engines: {node: '>=10.13.0'}
@@ -3634,18 +3540,9 @@ packages:
'@types/istanbul-reports@3.0.4':
resolution: {integrity: sha512-pk2B1NWalF9toCRu6gjBzR69syFjP4Od8WRAX+0mmf9lAjCRicLOWc+ZrxZHx/0XRjotgkF9t6iaMJ+aXcOdZQ==}
- '@types/jest@29.5.13':
- resolution: {integrity: sha512-wd+MVEZCHt23V0/L642O5APvspWply/rGY5BcW4SUETo2UzPU3Z26qr8jC2qxpimI2jjx9h7+2cj2FwIr01bXg==}
-
- '@types/jest@29.5.14':
- resolution: {integrity: sha512-ZN+4sdnLUbo8EVvVc2ao0GFW6oVrQRPn4K2lglySj7APvSrgzxHiNNK99us4WDMi57xxA2yggblIAMNhXOotLQ==}
-
'@types/js-cookie@2.2.7':
resolution: {integrity: sha512-aLkWa0C0vO5b4Sr798E26QgOkss68Un0bLjs7u9qxzPT5CG+8DuNTffWES58YzJs3hrVAOs1wonycqEBqNJubA==}
- '@types/jsdom@20.0.1':
- resolution: {integrity: sha512-d0r18sZPmMQr1eG35u12FZfhIXNrnsPU/g5wvRKCUf/tOGilKKwYMYGqh33BNR6ba+2gkHw1EUiHoN3mn7E5IQ==}
-
'@types/json-schema@7.0.15':
resolution: {integrity: sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==}
@@ -3679,6 +3576,9 @@ packages:
'@types/node@22.7.3':
resolution: {integrity: sha512-qXKfhXXqGTyBskvWEzJZPUxSslAiLaB6JGP1ic/XTH9ctGgzdgYguuLP1C601aRTSDNlLb0jbKqXjZ48GNraSA==}
+ '@types/node@22.9.3':
+ resolution: {integrity: sha512-F3u1fs/fce3FFk+DAxbxc78DF8x0cY09RRL8GnXLmkJ1jvx3TtPdWoTT5/NiYfI5ASqXBmfqJi9dZ3gxMx4lzw==}
+
'@types/normalize-package-data@2.4.4':
resolution: {integrity: sha512-37i+OaWTh9qeK4LSHPsyRC7NahnGotNuZvjLSgcPzblpHB3rrCJxAOgI5gCdKm7coonsaX1Of0ILiTcnZjbfxA==}
@@ -3724,9 +3624,6 @@ packages:
'@types/stylis@4.2.5':
resolution: {integrity: sha512-1Xve+NMN7FWjY14vLoY5tL3BVEQ/n42YLwaqJIPYhotZ9uBHt87VceMwWQpzmdEt2TNXIorIFG+YeCUUW7RInw==}
- '@types/tough-cookie@4.0.5':
- resolution: {integrity: sha512-/Ad8+nIOV7Rl++6f1BdKxFSMgmoqEoYbHRpPcx3JEfv8VRsQe9Z4mCXeJBzxs7mbHY/XOZZuXlRNfhpVPbs6ZA==}
-
'@types/unist@2.0.11':
resolution: {integrity: sha512-CmBKiL6NNo/OqgmMn95Fk9Whlp2mtvIv+KNpQKN2F4SjvrEesubTRWGYSg+BnWZOnlCaSTU1sMpsBOzgbYhnsA==}
@@ -4085,25 +3982,48 @@ packages:
peerDependencies:
vite: ^4.2.0
- '@vitest/coverage-v8@1.6.0':
- resolution: {integrity: sha512-KvapcbMY/8GYIG0rlwwOKCVNRc0OL20rrhFkg/CHNzncV03TE2XWvO5w9uZYoxNiMEBacAJt3unSOiZ7svePew==}
+ '@vitest/coverage-v8@2.1.5':
+ resolution: {integrity: sha512-/RoopB7XGW7UEkUndRXF87A9CwkoZAJW01pj8/3pgmDVsjMH2IKy6H1A38po9tmUlwhSyYs0az82rbKd9Yaynw==}
+ peerDependencies:
+ '@vitest/browser': 2.1.5
+ vitest: 2.1.5
+ peerDependenciesMeta:
+ '@vitest/browser':
+ optional: true
+
+ '@vitest/expect@2.1.5':
+ resolution: {integrity: sha512-nZSBTW1XIdpZvEJyoP/Sy8fUg0b8od7ZpGDkTUcfJ7wz/VoZAFzFfLyxVxGFhUjJzhYqSbIpfMtl/+k/dpWa3Q==}
+
+ '@vitest/mocker@2.1.5':
+ resolution: {integrity: sha512-XYW6l3UuBmitWqSUXTNXcVBUCRytDogBsWuNXQijc00dtnU/9OqpXWp4OJroVrad/gLIomAq9aW8yWDBtMthhQ==}
peerDependencies:
- vitest: 1.6.0
+ msw: ^2.4.9
+ vite: ^5.0.0
+ peerDependenciesMeta:
+ msw:
+ optional: true
+ vite:
+ optional: true
+
+ '@vitest/pretty-format@2.1.5':
+ resolution: {integrity: sha512-4ZOwtk2bqG5Y6xRGHcveZVr+6txkH7M2e+nPFd6guSoN638v/1XQ0K06eOpi0ptVU/2tW/pIU4IoPotY/GZ9fw==}
- '@vitest/expect@1.6.0':
- resolution: {integrity: sha512-ixEvFVQjycy/oNgHjqsL6AZCDduC+tflRluaHIzKIsdbzkLn2U/iBnVeJwB6HsIjQBdfMR8Z0tRxKUsvFJEeWQ==}
+ '@vitest/runner@2.1.5':
+ resolution: {integrity: sha512-pKHKy3uaUdh7X6p1pxOkgkVAFW7r2I818vHDthYLvUyjRfkKOU6P45PztOch4DZarWQne+VOaIMwA/erSSpB9g==}
- '@vitest/runner@1.6.0':
- resolution: {integrity: sha512-P4xgwPjwesuBiHisAVz/LSSZtDjOTPYZVmNAnpHHSR6ONrf8eCJOFRvUwdHn30F5M1fxhqtl7QZQUk2dprIXAg==}
+ '@vitest/snapshot@2.1.5':
+ resolution: {integrity: sha512-zmYw47mhfdfnYbuhkQvkkzYroXUumrwWDGlMjpdUr4jBd3HZiV2w7CQHj+z7AAS4VOtWxI4Zt4bWt4/sKcoIjg==}
- '@vitest/snapshot@1.6.0':
- resolution: {integrity: sha512-+Hx43f8Chus+DCmygqqfetcAZrDJwvTj0ymqjQq4CvmpKFSTVteEOBzCusu1x2tt4OJcvBflyHUE0DZSLgEMtQ==}
+ '@vitest/spy@2.1.5':
+ resolution: {integrity: sha512-aWZF3P0r3w6DiYTVskOYuhBc7EMc3jvn1TkBg8ttylFFRqNN2XGD7V5a4aQdk6QiUzZQ4klNBSpCLJgWNdIiNw==}
- '@vitest/spy@1.6.0':
- resolution: {integrity: sha512-leUTap6B/cqi/bQkXUu6bQV5TZPx7pmMBKBQiI0rJA8c3pB56ZsaTbREnF7CJfmvAS4V2cXIBAh/3rVwrrCYgw==}
+ '@vitest/ui@2.1.5':
+ resolution: {integrity: sha512-ERgKkDMTfngrZip6VG5h8L9B5D0AH/4+bga4yR1UzGH7c2cxv3LWogw2Dvuwr9cP3/iKDHYys7kIFLDKpxORTg==}
+ peerDependencies:
+ vitest: 2.1.5
- '@vitest/utils@1.6.0':
- resolution: {integrity: sha512-21cPiuGMoMZwiOHa2i4LXkMkMkCGzA+MVFV70jRwHo95dL4x/ts5GZhML1QWuy7yfp3WzK3lRvZi3JnXTYqrBw==}
+ '@vitest/utils@2.1.5':
+ resolution: {integrity: sha512-yfj6Yrp0Vesw2cwJbP+cl04OC+IHFsuQsrsJBL9pyGeQXE56v1UAOQco+SR55Vf1nQzfV0QJg1Qum7AaWUwwYg==}
'@webassemblyjs/ast@1.12.1':
resolution: {integrity: sha512-EKfMUOPRRUTy5UII4qJDGPpqfwjOmZ5jeGFwid9mnoqIFK+e0vqoi1qH56JpmZSzEL53jKnNzScdmftJyG5xWg==}
@@ -4179,10 +4099,6 @@ packages:
'@xtuc/long@4.2.2':
resolution: {integrity: sha512-NuHqBY1PB/D8xU6s/thBgOAiAP7HOYDQ32+BFZILJ8ivkUkAHQnWfn6WhL79Owj1qmUnoN/YPhktdIoucipkAQ==}
- abab@2.0.6:
- resolution: {integrity: sha512-j2afSsaIENvHZN2B8GOpF566vZ5WVk5opAiMTvWgaQT8DkbOqsTfvNAvHoRGU2zzP8cPoqys+xHTRDWW8L+/BA==}
- deprecated: Use your platform's native atob() and btoa() methods instead
-
abort-controller@3.0.0:
resolution: {integrity: sha512-h8lQ8tacZYnR3vNQTgibj+tODHI5/+l06Au2Pcriv/Gmet0eaj4TwWH41sO9wnHDiQsEj19q0drzdWdeAHtweg==}
engines: {node: '>=6.5'}
@@ -4191,9 +4107,6 @@ packages:
resolution: {integrity: sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw==}
engines: {node: '>= 0.6'}
- acorn-globals@7.0.1:
- resolution: {integrity: sha512-umOSDSDrfHbTNPuNpC2NSnnA3LUrqpevPb4T9jRx4MagXNS0rs+gwiTcAvqCRmsD6utzsrzNt+ebm00SNWiC3Q==}
-
acorn-import-attributes@1.9.5:
resolution: {integrity: sha512-n02Vykv5uA3eHGM/Z2dQrcD56kL8TyDb2p1+0P83PClMnC/nc+anbQRhIOWnSq4Ke/KvDPrY3C9hDtC/A3eHnQ==}
peerDependencies:
@@ -4236,10 +4149,6 @@ packages:
resolution: {integrity: sha512-salcGninV0nPrwpGNn4VTXBb1SOuXQBiqbrNXoeizJsHrsL6ERFM2Ne3JUSBWRE6aeNJI2ROP/WEEIDUiDe3cg==}
engines: {node: '>= 4.0.0'}
- agent-base@6.0.2:
- resolution: {integrity: sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==}
- engines: {node: '>= 6.0.0'}
-
agent-base@7.1.1:
resolution: {integrity: sha512-H0TSyFNDMomMNJQBn8wFV5YC/2eJ+VXECwOadZJT554xP6cODZHPX3H9QMQECxvrgiSOP1pHjy1sMWQVYJOUOA==}
engines: {node: '>= 14'}
@@ -4441,8 +4350,9 @@ packages:
assert@2.1.0:
resolution: {integrity: sha512-eLHpSK/Y4nhMJ07gDaAzoX/XAKS8PSaojml3M0DM4JpV1LAi5JOJ/p6H/XWrl8L+DzVEvVCW1z3vWAaB9oTsQw==}
- assertion-error@1.1.0:
- resolution: {integrity: sha512-jgsaNduz+ndvGyFt3uSuWqvy4lCnIJiovtouQN5JZHOKCS2QuhEdbcQHFhVksz2N2U9hXJo8odG7ETyWlEeuDw==}
+ assertion-error@2.0.1:
+ resolution: {integrity: sha512-Izi8RQcffqCeNVgFigKli1ssklIbpHnCYc6AknXGYoB6grJqyeby7jv12JUQgmTAnIDnbck1uxksT4dzN3PWBA==}
+ engines: {node: '>=12'}
astral-regex@2.0.0:
resolution: {integrity: sha512-Z7tMw1ytTXt5jqMcOP+OQteU1VuNK9Y02uuJtKQ1Sv69jXQKKg5cibLwGJow8yzZP+eAc18EmLGPal0bp36rvQ==}
@@ -4455,9 +4365,6 @@ packages:
async-validator@4.2.5:
resolution: {integrity: sha512-7HhHjtERjqlNbZtqNqy2rckN/SpOOlmDliet+lP7k+eKZEjPk3DgyeU9lIXLdeLz0uBbbVp+9Qdow9wJWgwwfg==}
- async@3.2.6:
- resolution: {integrity: sha512-htCUDlxyyCLMgaM3xXg0C0LW2xqfuQ6p05pCEIsXuyQ+a1koYKTuBMzRNwmybfLgvJDMd0r1LTn4+E0Ti6C2AA==}
-
asynckit@0.4.0:
resolution: {integrity: sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==}
@@ -4674,10 +4581,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==}
@@ -4788,9 +4691,9 @@ packages:
ccount@2.0.1:
resolution: {integrity: sha512-eyrF0jiFpY+3drT6383f1qhkbGsLSifNAjA61IUjZjmLCWjItY6LB9ft9YhoDgwfmclB2zhu51Lc7+95b8NRAg==}
- chai@4.5.0:
- resolution: {integrity: sha512-RITGBfijLkBddZvnn8jdqoTypxvqbOLYQkGGxXzeFjVHvudaPw0HNFD9x928/eUwYWd2dPCugVqspGALTZZQKw==}
- engines: {node: '>=4'}
+ chai@5.1.2:
+ resolution: {integrity: sha512-aGtmf24DW6MLHHG5gCx4zaI3uBq3KRtxeVs0DjFH6Z0rDNbsvTxFASFvdj79pxjxZ8/5u3PIiN3IwEIQkiiuPw==}
+ engines: {node: '>=12'}
chalk@2.4.2:
resolution: {integrity: sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==}
@@ -4827,8 +4730,9 @@ packages:
chardet@0.7.0:
resolution: {integrity: sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA==}
- check-error@1.0.3:
- resolution: {integrity: sha512-iKEoDYaRmd1mxM90a2OEfWhjsjPpYPuQ+lMYsoxB126+t8fw7ySEO48nmDg5COTjxDI65/Y2OWpeEHk3ZOe8zg==}
+ check-error@2.1.1:
+ resolution: {integrity: sha512-OAlb+T7V4Op9OwdkjmguYRqncdlx5JiofwOAUkmTF+jNdHwzTaTs4sRAGpzLF3oOz5xAyDGrPgeIDFQmDOTiJw==}
+ engines: {node: '>= 16'}
chokidar@3.5.3:
resolution: {integrity: sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==}
@@ -5008,9 +4912,6 @@ packages:
resolution: {integrity: sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw==}
engines: {'0': node >= 0.8}
- confbox@0.1.7:
- resolution: {integrity: sha512-uJcB/FKZtBMCJpK8MQji6bJHgu1tixKPxRLeGkNzBoOZzpnZUJm0jm2/sBDWcuBx1dYgxV4JU+g5hmNxCyAmdA==}
-
configstore@3.1.5:
resolution: {integrity: sha512-nlOhI4+fdzoK5xmJ+NY+1gZK56bwEaWZr8fYuXohZ9Vkc1o3a4T/R3M+yE/w7x/ZVJ1zF8c+oaOvF0dztdUgmA==}
engines: {node: '>=4'}
@@ -5205,23 +5106,10 @@ packages:
engines: {node: '>=4'}
hasBin: true
- cssfontparser@1.2.1:
- resolution: {integrity: sha512-6tun4LoZnj7VN6YeegOVb67KBX/7JJsqvj+pv3ZA7F878/eN33AbGa5b/S/wXxS/tcp8nc40xRUrsPlxIyNUPg==}
-
csso@4.2.0:
resolution: {integrity: sha512-wvlcdIbf6pwKEk7vHj8/Bkc0B4ylXZruLvOgs9doS5eOsOpuodOV2zJChSpkp+pRpYQLQMeF04nr3Z68Sta9jA==}
engines: {node: '>=8.0.0'}
- cssom@0.3.8:
- resolution: {integrity: sha512-b0tGHbfegbhPJpxpiBPU2sCkigAqtM9O121le6bbOlgyV+NyGyCmVfJ6QW9eRjz8CpNfWEOYBIMIGRYkLwsIYg==}
-
- cssom@0.5.0:
- resolution: {integrity: sha512-iKuQcq+NdHqlAcwUY0o/HL69XQrUaQdMjmStJ8JFmUaiiQErlhrmuigkg/CU4E2J0IyUKUrMAgl36TvN67MqTw==}
-
- cssstyle@2.3.0:
- resolution: {integrity: sha512-AZL67abkUzIuvcHqk7c09cezpGNcxUxU4Ioi/05xHk4DQeTkWmGYftIE6ctU6AEt+Gn4n1lDStOtj7FKycP71A==}
- engines: {node: '>=8'}
-
cssstyle@4.1.0:
resolution: {integrity: sha512-h66W1URKpBS5YMI/V8PyXvTMFT8SupJ1IzoIV8IeBC/ji8WVmrO8dGlTi+2dh6whmdk6BiKJLD/ZBkhWbcg6nA==}
engines: {node: '>=18'}
@@ -5243,10 +5131,6 @@ packages:
resolution: {integrity: sha512-0R9ikRb668HB7QDxT1vkpuUBtqc53YyAwMwGeUFKRojY/NWKvdZ+9UYtRfGmhqNbRkTSVpMbmyhXipFFv2cb/A==}
engines: {node: '>= 12'}
- data-urls@3.0.2:
- resolution: {integrity: sha512-Jy/tj3ldjZJo63sVAvg6LHt2mHvl4V6AgRAmNDtLdm7faqtsx+aJG42rsyCo9JCoRVKwPFzKlIPx3DIibwSIaQ==}
- engines: {node: '>=12'}
-
data-urls@5.0.0:
resolution: {integrity: sha512-ZYP5VBHshaDAiVZxjbRVcFJpc+4xGgT0bK3vzy1HLN8jTO975HEbuYzZJcHoQEY5K1a0z8YayJkyVETa08eNTg==}
engines: {node: '>=18'}
@@ -5333,8 +5217,8 @@ packages:
babel-plugin-macros:
optional: true
- deep-eql@4.1.4:
- resolution: {integrity: sha512-SUwdGfqdKOwxCPeVYjwSyRpJ7Z+fhpwIAtmCUdZIWZ/YP5R9WAsyuSgpLVDi9bjWoN2LXHNss/dk3urXtdQxGg==}
+ deep-eql@5.0.2:
+ resolution: {integrity: sha512-h5k/5U50IJJFpzfL6nO9jaaumfjO/f2NjK/oYB2Djzm4p9L+3T9qWpZqZ2hAbLPuuYq9wrU08WQyBTL5GbPk5Q==}
engines: {node: '>=6'}
deep-extend@0.6.0:
@@ -5481,11 +5365,6 @@ packages:
domelementtype@2.3.0:
resolution: {integrity: sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw==}
- domexception@4.0.0:
- resolution: {integrity: sha512-A2is4PLG+eeSfoTMA95/s4pvAoSo2mKtiM5jlHkAVewmiO8ISFTFKZjH7UAM1Atli/OT/7JHOrJRJiMKUZKYBw==}
- engines: {node: '>=12'}
- deprecated: Use your platform's native DOMException instead
-
domhandler@4.3.1:
resolution: {integrity: sha512-GrwoxYN+uWlzO8uhUXRl0P+kHE4GtVPfYzVLcUxPL7KNdHKj66vvlhiweIHqYYXWlw+T8iLMp42Lm67ghw4WMQ==}
engines: {node: '>= 4'}
@@ -5549,11 +5428,6 @@ packages:
ee-first@1.1.1:
resolution: {integrity: sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==}
- ejs@3.1.10:
- resolution: {integrity: sha512-UeJmFfOrAQS8OJWPZ4qtgHyWExa088/MtK5UEyoJGFH67cDEXkZSviOiKRCZ4Xij0zxI3JECgYs3oKx+AizQBA==}
- engines: {node: '>=0.10.0'}
- hasBin: true
-
electron-to-chromium@1.5.29:
resolution: {integrity: sha512-PF8n2AlIhCKXQ+gTpiJi0VhcHDb69kYX4MtCiivctc2QD3XuNZ/XIOlbGzt7WAjjEev0TtaH6Cu3arZExm5DOw==}
@@ -5730,11 +5604,6 @@ packages:
resolution: {integrity: sha512-/veY75JbMK4j1yjvuUxuVsiS/hr/4iHs9FTT6cgTexxdE0Ly/glccBAkloH/DofkjRbZU3bnoj38mOmhkZ0lHw==}
engines: {node: '>=12'}
- escodegen@2.1.0:
- resolution: {integrity: sha512-2NlIDTwUWJN0mRPQOdtQBzbUHvdGY2P1VXSyU83Q3xKxM7WHX2Ql8dKq782Q9TgQUNOLEzEYu9bzLNj1q88I5w==}
- engines: {node: '>=6.0'}
- hasBin: true
-
eslint-config-prettier@9.1.0:
resolution: {integrity: sha512-NSWl5BFQWEPi1j4TjVNItzYV7dZXZ+wP6I6ZhrBGpChQhZRUaElihE9uRRkcbRnNb76UMKDF3r+WTmNcGPKsqw==}
hasBin: true
@@ -5928,6 +5797,10 @@ packages:
resolution: {integrity: sha512-rtmc+cjLZqnu9dSYosX9EWmSJhTwpACgJQTfj4hgg2JjOD/6SIQalZrt4a3aQeh++oNxkazcaxrhPUj6+g5G/Q==}
engines: {node: '>=0.10.0'}
+ expect-type@1.1.0:
+ resolution: {integrity: sha512-bFi65yM+xZgk+u/KRIpekdSYkTB5W1pEf0Lt8Q8Msh7b+eQ7LXVtIB1Bkm4fvclDEL1b2CZkMhv2mOeF8tMdkA==}
+ engines: {node: '>=12.0.0'}
+
expect@29.7.0:
resolution: {integrity: sha512-2Zks0hf1VLFYI1kbh0I5jP3KHHyCHpkfyHBzsSXRFgl/Bg9mWYfMW8oD+PdMPlEwy5HNsR9JutYy6pMeOh61nw==}
engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
@@ -6008,6 +5881,14 @@ packages:
fb-watchman@2.0.2:
resolution: {integrity: sha512-p5161BqbuCaSnB8jIbzQHOlpgsPmK5rJVDfDKO91Axs5NC1uu3HRQm6wt9cd9/+GtQQIO53JdGXXoyDpTAsgYA==}
+ fdir@6.4.2:
+ resolution: {integrity: sha512-KnhMXsKSPZlAhp7+IjUkRZKPb4fUyccpDrdFXbi4QL1qkmFh9kVY09Yox+n4MaOb3lHZ1Tv829C3oaaXoMYPDQ==}
+ peerDependencies:
+ picomatch: ^3 || ^4
+ peerDependenciesMeta:
+ picomatch:
+ optional: true
+
fetch-blob@3.2.0:
resolution: {integrity: sha512-7yAQpD2UMJzLi1Dqv7qFYnPbaPx7ZfFK6PiIxQ4PfkGPyNyl2Ugx+a/umUonmKqjhM4DnfbMvdX6otXq83soQQ==}
engines: {node: ^12.20 || >= 14.13}
@@ -6016,6 +5897,9 @@ packages:
resolution: {integrity: sha512-BQm7iZLFhMWFy5CZ/162sAGjBfdNWb7a8LEqqnzsHFhxT/X/SVj/z2t2nu3aJvjlbQkrAlTUApplPRjWyH4mhA==}
engines: {node: '>=8'}
+ fflate@0.8.2:
+ resolution: {integrity: sha512-cPJU47OaAoCbg0pBvzsgpTPhmhqI5eJjh/JIu8tPj5q+T7iLvW/JAYUqmE7KOB4R1ZyEhzBaIQpQpardBF5z8A==}
+
figures@2.0.0:
resolution: {integrity: sha512-Oa2M9atig69ZkfwiApY8F2Yy+tzMbazyvqv21R0NsSC8floSOC09BbT1ITWAdoMGQvJ/aZnR1KMwdx9tvHnTNA==}
engines: {node: '>=4'}
@@ -6037,9 +5921,6 @@ packages:
file-uri-to-path@1.0.0:
resolution: {integrity: sha512-0Zt+s3L7Vf1biwWZ29aARiVYLx7iMGnEUl9x33fbB/j3jR81u/O2LbqK+Bm1CDSNDKVtJ/YjwY7TUd5SkeLQLw==}
- filelist@1.0.4:
- resolution: {integrity: sha512-w1cEuf3S+DrLCQL7ET6kz+gmlJdbq9J7yXCSjK/OZCPA+qEN1WyF4ZAf0YYJa4/shHJra2t/d/r8SV4Ji+x+8Q==}
-
filesize@3.6.1:
resolution: {integrity: sha512-7KjR1vv6qnicaPMi1iiTcI85CyYwRO/PSFCu6SvqL8jN2Wjt/NIYQTFtFs7fSDCYOstUkEWIQGFUg5YZQfjlcg==}
engines: {node: '>= 0.4.0'}
@@ -6207,9 +6088,6 @@ packages:
resolution: {integrity: sha512-2nk+7SIVb14QrgXFHcm84tD4bKQz0RxPuMT8Ag5KPOq7J5fEmAg0UbXdTOSHqNuHSU28k55qnceesxXRZGzKWA==}
engines: {node: '>=18'}
- get-func-name@2.0.2:
- resolution: {integrity: sha512-8vXOvuE167CtIc3OyItco7N/dpRtBbYOsPsXCz7X/PMnlGjYjSGuZJgM1Y7mmew7BKf9BqvLX2tnOVy1BBUsxQ==}
-
get-intrinsic@1.2.4:
resolution: {integrity: sha512-5uYhsJH8VJBTv7oslg4BznJYhDoRI6waYCxMmCdnTrcCrHA/fCFKoTFz2JKKE0HdDFUF7/oQuhzumXJK7paBRQ==}
engines: {node: '>= 0.4'}
@@ -6328,6 +6206,9 @@ packages:
globjoin@0.1.4:
resolution: {integrity: sha512-xYfnw62CKG8nLkZBfWbhWwDw02CHty86jfPcc2cr3ZfeuK9ysoVPPEUxf21bAD/rWAgk52SuBrLJlefNy8mvFg==}
+ globrex@0.1.2:
+ resolution: {integrity: sha512-uHJgbwAMwNFf5mLst7IWLNg14x1CkeqglJb/K3doi4dw6q2IvAAmM/Y81kevy83wP+Sst+nutFTYOGg3d1lsxg==}
+
gopd@1.0.1:
resolution: {integrity: sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==}
@@ -6354,6 +6235,10 @@ packages:
handle-thing@2.0.1:
resolution: {integrity: sha512-9Qn4yBxelxoh2Ow62nP+Ka/kMnOXRi8BXnRaUwezLNhqelnN49xKz4F/dPP8OYLxLxq6JDtZb2i9XznUQbNPTg==}
+ happy-dom@15.11.6:
+ resolution: {integrity: sha512-elX7iUTu+5+3b2+NGQc0L3eWyq9jKhuJJ4GpOMxxT/c2pg9O3L5H3ty2VECX0XXZgRmmRqXyOK8brA2hDI6LsQ==}
+ engines: {node: '>=18.0.0'}
+
hard-rejection@2.1.0:
resolution: {integrity: sha512-VIZB+ibDhx7ObhAe7OVtoEbuP4h/MuOTHJ+J8h/eBXotJYl0fBgR72xDFCKgIh22OJZIOVNxBMWuhAr10r8HdA==}
engines: {node: '>=6'}
@@ -6495,10 +6380,6 @@ packages:
htm@3.1.1:
resolution: {integrity: sha512-983Vyg8NwUE7JkZ6NmOqpCZ+sh1bKv2iYTlUkzlWmA5JD2acKoxd4KVxbMmxX/85mtfdnDmTFoNKcg5DGAvxNQ==}
- html-encoding-sniffer@3.0.0:
- resolution: {integrity: sha512-oWv4T4yJ52iKrufjnyZPkrN0CH3QnrUqdB6In1g5Fe1mia8GmF36gnfNySxoZtxD5+NmYw1EElVXiBk93UeskA==}
- engines: {node: '>=12'}
-
html-encoding-sniffer@4.0.0:
resolution: {integrity: sha512-Y22oTqIU4uuPgEemfz7NDJz6OeKf12Lsu+QC+s3BVpda64lTiMYCyGwg5ki4vFxkMwQdeZDl2adZoqUgdFuTgQ==}
engines: {node: '>=18'}
@@ -6562,10 +6443,6 @@ packages:
resolution: {integrity: sha512-qwHbBLV7WviBl0rQsOzH6o5lwyOIvwp/BdFnvVxXORldu5TmjFfjzBcWUWS5kWAZhmv+JtiDhSuQCp4sBfbIgg==}
engines: {node: '>= 4.5.0'}
- http-proxy-agent@5.0.0:
- resolution: {integrity: sha512-n2hY8YdoRE1i7r6M0w9DIw5GgZN0G25P8zLCRQ8rjXtTU3vsNFBI/vWK/UIeE6g5MUUz6avwAPXmL6Fy9D/90w==}
- engines: {node: '>= 6'}
-
http-proxy-agent@7.0.2:
resolution: {integrity: sha512-T1gkAiYYDWYx3V5Bmyu7HcfcvL7mUrTWiM6yOfa3PIphViJ/gFPbvidQ+veqSOHci/PxBcDabeUNCzpOODJZig==}
engines: {node: '>= 14'}
@@ -6577,10 +6454,6 @@ packages:
resolution: {integrity: sha512-OmvfoQ53WLjtA9HeYP9RNrWMJzzAz1JGaSFr1nijg0PVR1JaD/xbJq1mdEIIlxGpXp9eSe/O2LgU9DJmTPd0Eg==}
engines: {node: '>= 4.5.0'}
- https-proxy-agent@5.0.1:
- resolution: {integrity: sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA==}
- engines: {node: '>= 6'}
-
https-proxy-agent@7.0.5:
resolution: {integrity: sha512-1e4Wqeblerz+tMKPIq2EMGiiWW1dIjZOksyHWSUm1rmuvw/how9hBHZ38lAGj5ID4Ik6EdkOw7NmWPy6LAwalw==}
engines: {node: '>= 14'}
@@ -7066,17 +6939,9 @@ packages:
jackspeak@3.4.3:
resolution: {integrity: sha512-OGlZQpz2yfahA/Rd1Y8Cd9SIEsqvXkLVoSw/cgwhnhFMDbsQFeZYoJJ7bIZBS9BcamUW96asq/npPWugM+RQBw==}
- jake@10.9.2:
- resolution: {integrity: sha512-2P4SQ0HrLQ+fw6llpLnOaGAvN2Zu6778SJMrCUwns4fOoG9ayrTiZk3VV8sCPkVZF8ab0zksVpS8FDY5pRCNBA==}
- engines: {node: '>=10'}
- hasBin: true
-
javascript-stringify@2.1.0:
resolution: {integrity: sha512-JVAfqNPTvNq3sB/VHQJAFxN/sPgKnsKrCwyRt15zwNCdrMMJDdcEOdubuy+DuJYYdm0ox1J4uzEuYKkN+9yhVg==}
- jest-canvas-mock@2.5.2:
- resolution: {integrity: sha512-vgnpPupjOL6+L5oJXzxTxFrlGEIbHdZqFU+LFNdtLxZ3lRDCl17FlTMM7IatoRQkrcyOTMlDinjUguqmQ6bR2A==}
-
jest-changed-files@29.7.0:
resolution: {integrity: sha512-fEArFiwf1BpQ+4bXSprcDc3/x4HSzL4al2tozwVpDFpsxALjLYdyiIK4e5Vz66GQJIbXJ82+35PtysofptNX2w==}
engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
@@ -7119,15 +6984,6 @@ packages:
resolution: {integrity: sha512-gns+Er14+ZrEoC5fhOfYCY1LOHHr0TI+rQUHZS8Ttw2l7gl+80eHc/gFf2Ktkw0+SIACDTeWvpFcv3B04VembQ==}
engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
- jest-environment-jsdom@29.7.0:
- resolution: {integrity: sha512-k9iQbsf9OyOfdzWH8HDmrRT0gSIcX+FLNW7IQq94tFX0gynPwqDTW0Ho6iMVNjGz/nb+l/vW3dWM2bbLLpkbXA==}
- engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
- peerDependencies:
- canvas: ^2.5.0
- peerDependenciesMeta:
- canvas:
- optional: true
-
jest-environment-node@29.7.0:
resolution: {integrity: sha512-DOSwCRqXirTOyheM+4d5YZOrWcdu0LNZ87ewUoywbcb2XR4wKgqiG8vNeYwhjFMbEkfju7wx2GYH0P2gevGvFw==}
engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
@@ -7140,10 +6996,6 @@ packages:
resolution: {integrity: sha512-fP8u2pyfqx0K1rGn1R9pyE0/KTn+G7PxktWidOBTqFPLYX0b9ksaMFkhK5vrS3DVun09pckLdlx90QthlW7AmA==}
engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
- jest-junit@16.0.0:
- resolution: {integrity: sha512-A94mmw6NfJab4Fg/BlvVOUXzXgF0XIH6EmTgJ5NDPp4xoKq0Kr7sErb+4Xs9nZvu58pJojz5RFGpqnZYJTrRfQ==}
- engines: {node: '>=10.12.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}
@@ -7193,9 +7045,6 @@ packages:
resolution: {integrity: sha512-Rm0BMWtxBcioHr1/OX5YCP8Uov4riHvKPknOGs804Zg9JGZgmIBkbtlxJC/7Z4msKYVbIJtfU+tKb8xlYNfdkw==}
engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
- jest-transform-stub@2.0.0:
- resolution: {integrity: sha512-lspHaCRx/mBbnm3h4uMMS3R5aZzMwyNpNIJLXj4cEsV0mIUtS4IjYJLSoyjRCtnxb6RIGJ4NL2quZzfIeNhbkg==}
-
jest-util@29.7.0:
resolution: {integrity: sha512-z6EbKajIpqGKU56y5KBUgy1dt1ihhQJgWzUlZHArA/+X2ad7Cb5iF+AK1EWVL/Bo7Rz9uurpqw6SiBCefUbCGA==}
engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
@@ -7246,9 +7095,6 @@ packages:
js-tokens@4.0.0:
resolution: {integrity: sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==}
- js-tokens@9.0.0:
- resolution: {integrity: sha512-WriZw1luRMlmV3LGJaR6QOJjWwgLUTf89OwT2lUOyjX2dJGBwgmIkbcz+7WFZjrZM635JOIR517++e/67CP9dQ==}
-
js-yaml@3.14.1:
resolution: {integrity: sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==}
hasBin: true
@@ -7257,15 +7103,6 @@ packages:
resolution: {integrity: sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==}
hasBin: true
- jsdom@20.0.3:
- resolution: {integrity: sha512-SYhBvTh89tTfCD/CRdSOm13mOBa42iTaTyfyEWBdKcGdPxPtLFBXuHR8XHb33YNYaP+lLbmSvBTsnoesCNJEsQ==}
- engines: {node: '>=14'}
- peerDependencies:
- canvas: ^2.5.0
- peerDependenciesMeta:
- canvas:
- optional: true
-
jsdom@23.2.0:
resolution: {integrity: sha512-L88oL7D/8ufIES+Zjz7v0aes+oBMh2Xnh3ygWvL0OaICOomKEPKuPnIfBJekiXr+BHbbMjrWn/xqrDQuxFTeyA==}
engines: {node: '>=18'}
@@ -7314,9 +7151,6 @@ packages:
engines: {node: '>=6'}
hasBin: true
- jsonc-parser@3.3.1:
- resolution: {integrity: sha512-HUgH65KyejrUFPvHFPbqOY0rsFip3Bo5wb4ngvdi1EpCYWUQDC5V+Y7mZws+DLkr4M//zQJoanu1SP+87Dv1oQ==}
-
jsonfile@3.0.1:
resolution: {integrity: sha512-oBko6ZHlubVB5mRFkur5vgYR1UyqX+S6Y/oCfLhqNdcc2fYFlDpIoNc7AfKS1KOGcnNAkvsr0grLck9ANM815w==}
@@ -7484,10 +7318,6 @@ packages:
resolution: {integrity: sha512-SFppqq5p42fe2qcZQqqEOiVRXl+WCP1MdT6k7BDEW1j++sp5fIY+/fdRQitvKgB5BrBcmrs5m/L0v2FrU5MY1g==}
engines: {node: '>=14'}
- local-pkg@0.5.0:
- resolution: {integrity: sha512-ok6z3qlYyCDS4ZEU27HaU6x/xZa9Whf8jD4ptH5UZTQYZVYeb9bnZ3ojVhiJNLiXK1Hfc0GNbLXcmZ5plLDDBg==}
- engines: {node: '>=14'}
-
locate-path@3.0.0:
resolution: {integrity: sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==}
engines: {node: '>=6'}
@@ -7512,9 +7342,6 @@ packages:
lodash.isequal@4.5.0:
resolution: {integrity: sha512-pDo3lu8Jhfjqls6GkMgpahsF9kCyayhgykjyLMNFTKWrpVdAQtYyB4muAMWozBB4ig/dtWAmsMxLEI8wuz+DYQ==}
- 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==}
@@ -7551,8 +7378,8 @@ packages:
lottie-web@5.9.6:
resolution: {integrity: sha512-JFs7KsHwflugH5qIXBpB4905yC1Sub2MZWtl/elvO/QC6qj1ApqbUZJyjzJseJUtVpgiDaXQLjBlIJGS7UUUXA==}
- loupe@2.3.7:
- resolution: {integrity: sha512-zSMINGVYkdpYSOBmLi0D1Uo7JU9nVdQKrHxC8eYlV+9YKK9WePqAlL7lSlorG/U2Fw1w0hTBmaa/jrQ3UbPHtA==}
+ loupe@3.1.2:
+ resolution: {integrity: sha512-23I4pFZHmAemUnz8WZXbYRSKYj801VDaNv9ETuMh7IrMc7VuVVSo+Z9iLE3ni30+U48iDWfi30d3twAXBYmnCg==}
lower-case@2.0.2:
resolution: {integrity: sha512-7fm3l3NAF9WfN6W3JOmf5drwpVqX78JtoGJ3A6W0a6ZnldM41w2fV5D490psKFTpMds8TJse/eHLFFsNHHjHgg==}
@@ -7582,8 +7409,8 @@ packages:
resolution: {integrity: sha512-h5bgJWpxJNswbU7qCrV0tIKQCaS3blPDrqKWx+QxzuzL1zGUzij9XCWLrSLsJPu5t+eWA/ycetzYAO5IOMcWAQ==}
hasBin: true
- magic-string@0.30.11:
- resolution: {integrity: sha512-+Wri9p0QHMy+545hKww7YAu5NyzF8iomPL/RQazugQ9+Ez4Ic3mERMd8ZTX5rfK944j+560ZJi8iAwgak1Ac7A==}
+ magic-string@0.30.13:
+ resolution: {integrity: sha512-8rYBO+MsWkgjDSOvLomYnzhdwEG51olQ4zL5KXnNJWV5MNmrb4rTZdrtkhxjnD/QyZUqR/Z/XDsUs/4ej2nx0g==}
magicast@0.3.5:
resolution: {integrity: sha512-L0WhttDl+2BOsybvEOLK7fW3UA0OQ0IQ2d6Zl2x/a6vVRs3bAY0ECOSHHeL5jD+SbOpOCUEi0y1DgHEn9Qn1AQ==}
@@ -7861,10 +7688,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'}
@@ -7891,20 +7714,9 @@ packages:
resolution: {integrity: sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw==}
hasBin: true
- mkdirp@1.0.4:
- resolution: {integrity: sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==}
- engines: {node: '>=10'}
- hasBin: true
-
- mlly@1.7.1:
- resolution: {integrity: sha512-rrVRZRELyQzrIUAVMHxP97kv+G786pHmOKzuFII8zDYahFBS7qnHh2AlYSl1GAHhaMPCz6/oHjVMcfFYgFYHgA==}
-
moment@2.30.1:
resolution: {integrity: sha512-uEmtNhbDOrWPFS+hdjFCBfy9f2YoyzRpwcl+DqpC6taX21FzsTLQVbMV/W7PzNSX6x/bhC1zA3c2UQ5NzH6how==}
- moo-color@1.0.3:
- resolution: {integrity: sha512-i/+ZKXMDf6aqYtBhuOcej71YSlbjT3wCO/4H1j8rPvxDJEifdwgg5MaFyu6iYAT8GBZJg2z0dkgK4YMzvURALQ==}
-
move-concurrently@1.0.1:
resolution: {integrity: sha512-hdrFxZOycD/g6A6SoI2bB5NA/5NEqD0569+S47WZhPvm46sD50ZHdYaFmnua5lndde9rCHGjmfK7Z8BuCt/PcQ==}
deprecated: This package is no longer supported.
@@ -7913,6 +7725,10 @@ packages:
resolution: {integrity: sha512-tzzskb3bG8LvYGFF/mDTpq3jpI6Q9wc3LEmBaghu+DdCssd1FakN7Bc0hVNmEyGq1bq3RgfkCb3cmQLpNPOroA==}
engines: {node: '>=4'}
+ mrmime@2.0.0:
+ resolution: {integrity: sha512-eu38+hdgojoyq63s+yTpN4XMBdt5l8HhMhc4VKLO9KM5caLIBvUm4thi7fFaxyTmCKeNnXZ5pAlBwCUnhA09uw==}
+ engines: {node: '>=10'}
+
ms@2.0.0:
resolution: {integrity: sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==}
@@ -8061,9 +7877,6 @@ packages:
nth-check@2.1.1:
resolution: {integrity: sha512-lqjrjmaOoAnWfMmBPL+XNnynZh2+swxiX3WUE0s4yEHI6m+AwrK2UZOimIRl3X/4QctVqS8AiZjFqyOGrMXb/w==}
- nwsapi@2.2.12:
- resolution: {integrity: sha512-qXDmcVlZV4XRtKFzddidpfVP4oMSGhga+xdMc25mv8kaLUHtgzCDhUxkrN8exkGdTlLNaXj7CV3GtON7zuGZ+w==}
-
object-assign@4.1.1:
resolution: {integrity: sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==}
engines: {node: '>=0.10.0'}
@@ -8205,10 +8018,6 @@ packages:
resolution: {integrity: sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==}
engines: {node: '>=10'}
- p-limit@5.0.0:
- resolution: {integrity: sha512-/Eaoq+QyLSiXQ4lyYV23f14mZRQcXnxfHrN0vCai+ak9G0pp9iEQukIIZq5NccEvwRB8PUnZT0KsOoDCINS1qQ==}
- engines: {node: '>=18'}
-
p-locate@3.0.0:
resolution: {integrity: sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==}
engines: {node: '>=6'}
@@ -8348,8 +8157,9 @@ packages:
pathe@1.1.2:
resolution: {integrity: sha512-whLdWMYL2TwI08hn8/ZqAbrVemu0LNaNNJZX73O6qaIdCTfXutsLhMkjdENX0qhsQ9uIimo4/aQOmXkoon2nDQ==}
- pathval@1.1.1:
- resolution: {integrity: sha512-Dp6zGqpTdETdR63lehJYPeIOqpiNBNtc7BpWSLrOje7UaIsE5aY92r/AunQA7rsXvet3lrJ3JnZX29UPTKXyKQ==}
+ pathval@2.0.0:
+ resolution: {integrity: sha512-vE7JKRyES09KiunauX7nd2Q9/L7lhok4smP9RZTDeD4MVs72Dp2qNFVz39Nz5a0FVEW0BJR6C0DYrq6unoziZA==}
+ engines: {node: '>= 14.16'}
pbkdf2@3.1.2:
resolution: {integrity: sha512-iuh7L6jA7JEGu2WxDwtQP1ddOpaJNC4KlDEFfdQajSGgGPNi4OyDc2R7QnbY2bR9QjBVGwgvTdNJZoE7RaxUMA==}
@@ -8365,6 +8175,10 @@ packages:
resolution: {integrity: sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==}
engines: {node: '>=8.6'}
+ picomatch@4.0.2:
+ resolution: {integrity: sha512-M7BAV6Rlcy5u+m6oPhAPFgJTzAioX/6B0DxyvDlo9l8+T3nLKbrczg2WLUyzd45L8RqfUMyGPzekbMvX2Ldkwg==}
+ engines: {node: '>=12'}
+
pidtree@0.6.0:
resolution: {integrity: sha512-eG2dWTVw5bzqGRztnHExczNxt5VGsE6OwTeCG3fdUf9KBsZzO3R5OIIIzWR+iZA0NtZ+RDVdaoE2dK1cn6jH4g==}
engines: {node: '>=0.10'}
@@ -8399,9 +8213,6 @@ packages:
resolution: {integrity: sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==}
engines: {node: '>=8'}
- pkg-types@1.2.0:
- resolution: {integrity: sha512-+ifYuSSqOQ8CqP4MbZA5hDpb97n3E8SVWdJe+Wms9kj745lmd3b7EZJiqvmLwAlmRfjrI7Hi5z3kdBJ93lFNPA==}
-
pkg-up@3.1.0:
resolution: {integrity: sha512-nDywThFk1i4BQK4twPQ6TA4RT8bDY96yeuCVBWL3ePARCiEKDRSrNGbFIgUJpLp+XeIR65v8ra7WuJOFUBtkMA==}
engines: {node: '>=8'}
@@ -9447,16 +9258,6 @@ packages:
peerDependencies:
react: '>=16.8'
- react-shallow-renderer@16.15.0:
- resolution: {integrity: sha512-oScf2FqQ9LFVQgA73vr86xl2NaOIX73rh+YFqcOp68CWj56tSfgtGKrEbyhCj0rSijyG9M1CYprTh39fBi5hzA==}
- peerDependencies:
- react: ^16.0.0 || ^17.0.0 || ^18.0.0
-
- react-test-renderer@18.3.1:
- resolution: {integrity: sha512-KkAgygexHUkQqtvvx/otwxtuFu5cVjfzTCtjXLH9boS19/Nbtg84zS7wIQn39G8IlrhThBpQsMKkq5ZHZIYFXA==}
- peerDependencies:
- react: ^18.3.1
-
react-universal-interface@0.6.2:
resolution: {integrity: sha512-dg8yXdcQmvgR13RIlZbTRQOoUrDciFVoSBZILwjE2LFISxZZ8loVJKAkuzswl5js8BHda79bIb2b84ehU8IjXw==}
peerDependencies:
@@ -9933,6 +9734,10 @@ packages:
simple-swizzle@0.2.2:
resolution: {integrity: sha512-JA//kQgZtbuY83m+xT+tXJkmJncGMTFT+C+g2h2R9uxkYIrE2yy9sgmcLhCnw57/WSD+Eh3J97FPEDFnbXnDUg==}
+ sirv@3.0.0:
+ resolution: {integrity: sha512-BPwJGUeDaDCHihkORDchNyyTvWFhcusy1XMmhEVTQTwGeybFbp8YEmB+njbPnth1FibULBSBVwCQni25XlCUDg==}
+ engines: {node: '>=18'}
+
sisteransi@1.0.5:
resolution: {integrity: sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg==}
@@ -10098,8 +9903,8 @@ packages:
resolution: {integrity: sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==}
engines: {node: '>= 0.8'}
- std-env@3.7.0:
- resolution: {integrity: sha512-JPbdCEQLj1w5GilpiHAx3qJvFndqybBysA3qUOnznweH4QbNYUsW/ea8QzSrnh0vNsezMMw5bcVool8lM0gwzg==}
+ std-env@3.8.0:
+ resolution: {integrity: sha512-Bc3YwwCB+OzldMxOXJIIvC6cPRWr/LxOp48CdQTOkPyk/t4JWWJbrilwBd7RJzKV8QW7tJkcgAmeuLLJugl5/w==}
stop-iteration-iterator@1.0.0:
resolution: {integrity: sha512-iCGQj+0l0HOdZ2AEeBADlsRC+vsnDsZsbdSiH1yNSjcfKM7fdpCMfqAL/dwF5BLiw/XhRft/Wax6zQbhq2BcjQ==}
@@ -10236,9 +10041,6 @@ packages:
resolution: {integrity: sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==}
engines: {node: '>=8'}
- strip-literal@2.1.0:
- resolution: {integrity: sha512-Op+UycaUt/8FbN/Z2TWPBLge3jWrP3xj10f3fnYxf052bKuS3EKs1ZQcVGjnEMdsNVAM+plXRdmjrZ/KgG3Skw==}
-
strnum@1.0.5:
resolution: {integrity: sha512-J8bbNyKKXl5qYcR36TIO8W3mVGVHrmmxsd5PAItGkmyzwJvybiw2IVq5nqd0i4LSNSkB/sx9VHllbfFdr9k1JA==}
@@ -10402,6 +10204,10 @@ packages:
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==}
@@ -10440,12 +10246,23 @@ packages:
tinybench@2.9.0:
resolution: {integrity: sha512-0+DUvqWMValLmha6lr4kD8iAMK1HzV0/aKnCtWb9v9641TnP/MFb7Pc2bxoxQjTXAErryXVgUOfv2YqNllqGeg==}
- tinypool@0.8.4:
- resolution: {integrity: sha512-i11VH5gS6IFeLY3gMBQ00/MmLncVP7JLXOw1vlgkytLmJK7QnEr7NXf0LBdxfmNPAeyetukOk0bOYrJrFGjYJQ==}
+ tinyexec@0.3.1:
+ resolution: {integrity: sha512-WiCJLEECkO18gwqIp6+hJg0//p23HXp4S+gGtAKu3mI2F2/sXC4FvHvXvB0zJVVaTPhx1/tOwdbRsa1sOBIKqQ==}
+
+ tinyglobby@0.2.10:
+ resolution: {integrity: sha512-Zc+8eJlFMvgatPZTl6A9L/yht8QqdmUNtURHaKZLmKBE12hNPSrqNkUp2cs3M/UKmNVVAMFQYSjYIVHDjW5zew==}
+ engines: {node: '>=12.0.0'}
+
+ tinypool@1.0.2:
+ resolution: {integrity: sha512-al6n+QEANGFOMf/dmUMsuS5/r9B06uwlyNjZZql/zv8J7ybHCgoihBNORZCY2mzUuAnomQa2JdhyHKzZxPCrFA==}
+ engines: {node: ^18.0.0 || >=20.0.0}
+
+ tinyrainbow@1.2.0:
+ resolution: {integrity: sha512-weEDEq7Z5eTHPDh4xjX789+fHfF+P8boiFB+0vbWzpbnbsEr/GRaohi/uMKxg8RZMXnl1ItAi/IUHWMsjDV7kQ==}
engines: {node: '>=14.0.0'}
- tinyspy@2.2.1:
- resolution: {integrity: sha512-KYad6Vy5VDWV4GH3fjpseMQ/XU2BhIYP7Vzd0LG44qRWm/Yt2WCOTicFdvmgo6gWaqooMQCawTtILVQJupKu7A==}
+ tinyspy@3.0.2:
+ resolution: {integrity: sha512-n1cw8k1k0x4pgA2+9XrOkFydTerNcJ1zWCO5Nn9scWHTD+5tp8dghT2x1uduQePZTZgd3Tupf+x9BxJjeJi77Q==}
engines: {node: '>=14.0.0'}
titleize@3.0.0:
@@ -10480,6 +10297,10 @@ packages:
resolution: {integrity: sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==}
engines: {node: '>=0.6'}
+ totalist@3.0.1:
+ resolution: {integrity: sha512-sf4i37nQ2LBx4m3wB74y+ubopq6W/dIzXg0FDGjsYnZHVa1Da8FH853wlL2gtUhg+xJXjfk3kUZS3BRoQeoQBQ==}
+ engines: {node: '>=6'}
+
tough-cookie@4.1.4:
resolution: {integrity: sha512-Loo5UUvLD9ScZ6jh8beX1T6sO1w2/MpCRpEP7V280GKMVUQ0Jzar2U3UJPsrdbziLEMMhu3Ujnq//rhiFuIeag==}
engines: {node: '>=6'}
@@ -10487,10 +10308,6 @@ packages:
tr46@0.0.3:
resolution: {integrity: sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==}
- tr46@3.0.0:
- resolution: {integrity: sha512-l7FvfAHlcmulp8kr+flpQZmVwtu7nfRV7NZujtN0OqES8EL4O4e0qqzL0DC5gAvx/ZC/9lk6rhcUwYvkBnBnYA==}
- engines: {node: '>=12'}
-
tr46@5.0.0:
resolution: {integrity: sha512-tk2G5R2KRwBd+ZN0zaEXpmzdKyOYksXwywulIX95MBODjSzMIuQnQ3m8JxgbhnL1LeVo7lqQKsYa1O3Htl7K5g==}
engines: {node: '>=18'}
@@ -10528,30 +10345,6 @@ packages:
resolution: {integrity: sha512-uivwYcQaxAucv1CzRp2n/QdYPo4ILf9VXgH19zEIjFx2EJufV16P0JtJVpYHy89DItG6Kwj2oIUjrcK5au+4tQ==}
engines: {node: '>=8'}
- ts-jest@29.2.5:
- resolution: {integrity: sha512-KD8zB2aAZrcKIdGk4OwpJggeLcH1FgrICqDSROWqlnJXGCXK4Mn6FcdK2B6670Xr73lHMG1kHw8R87A0ecZ+vA==}
- engines: {node: ^14.15.0 || ^16.10.0 || ^18.0.0 || >=20.0.0}
- hasBin: true
- peerDependencies:
- '@babel/core': ^7.0.0
- '@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-node@10.9.2:
resolution: {integrity: sha512-f0FFpIdcHgn8zcPSbf1dRevwt047YMnaiJM3u2w2RewrB+fob/zePZcrOyQoLMMO7aBIddLcQIEK5dYjkLnGrQ==}
hasBin: true
@@ -10569,6 +10362,16 @@ packages:
ts-toolbelt@9.6.0:
resolution: {integrity: sha512-nsZd8ZeNUzukXPlJmTBwUAuABDe/9qtVDelJeT/qW0ow3ZS3BsQJtNkan1802aM9Uf68/Y8ljw86Hu0h5IUW3w==}
+ tsconfck@3.1.4:
+ resolution: {integrity: sha512-kdqWFGVJqe+KGYvlSO9NIaWn9jT1Ny4oKVzAJsKii5eoE9snzTJzL4+MMVOMn+fikWGFmKEylcXL710V/kIPJQ==}
+ engines: {node: ^18 || >=20}
+ hasBin: true
+ peerDependencies:
+ typescript: ^5.0.0
+ peerDependenciesMeta:
+ typescript:
+ optional: true
+
tsconfig-paths@4.0.0:
resolution: {integrity: sha512-SLBg2GBKlR6bVtMgJJlud/o3waplKtL7skmLkExomIiaAtLGtVsoXIqP3SYdjbcH9lq/KVv7pMZeCBpLYOit6Q==}
@@ -10602,10 +10405,6 @@ packages:
resolution: {integrity: sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==}
engines: {node: '>=4'}
- type-detect@4.1.0:
- resolution: {integrity: sha512-Acylog8/luQ8L7il+geoSxhEkazvkslg7PSNKOX59mbB9cOveP5aq9h74Y7YU8yDpJwetzQQrfIwtf4Wp4LKcw==}
- engines: {node: '>=4'}
-
type-fest@0.18.1:
resolution: {integrity: sha512-OIAYXk8+ISY+qTOwkHtKqzAuxchoMiD9Udx+FSGQDuiRR+PJKJHc2NJAXlbhkGwTt/4/nKZxELY1w3ReWOL8mw==}
engines: {node: '>=10'}
@@ -10667,9 +10466,6 @@ packages:
engines: {node: '>=14.17'}
hasBin: true
- ufo@1.5.4:
- resolution: {integrity: sha512-UsUk3byDzKd04EyoZ7U4DOlxQaD14JUKQl6/P7wiX4FNvUfm3XL246n9W5AmqwW5RSFJ27NAuM0iLscAOYUiGQ==}
-
umi@4.3.24:
resolution: {integrity: sha512-sOPP5ouk1vw6KCng/nbBx13TbrNh0ii2WeuYa9WafSUADs3kb+uUimIZuIghb7lq/OqSnAwhWs1nOUJ5n3ie7w==}
engines: {node: '>=14'}
@@ -10895,11 +10691,19 @@ packages:
vfile@5.3.7:
resolution: {integrity: sha512-r7qlzkgErKjobAmyNIkkSpizsFPYiUPuJb5pNW1RB4JcYVZhs4lIbVqk8XPk033CV/1z8ss5pkax8SuhGpcG8g==}
- vite-node@1.6.0:
- resolution: {integrity: sha512-de6HJgzC+TFzOu0NTC4RAIsyf/DY/ibWDYQUcuEA84EMHhcefTUGkjFHKKEJhQN4A+6I0u++kr3l36ZF2d7XRw==}
+ vite-node@2.1.5:
+ resolution: {integrity: sha512-rd0QIgx74q4S1Rd56XIiL2cYEdyWn13cunYBIuqh9mpmQr7gGS0IxXoP8R6OaZtNQQLyXSWbd4rXKYUbhFpK5w==}
engines: {node: ^18.0.0 || >=20.0.0}
hasBin: true
+ vite-tsconfig-paths@5.1.3:
+ resolution: {integrity: sha512-0bz+PDlLpGfP2CigeSKL9NFTF1KtXkeHGZSSaGQSuPZH77GhoiQaA8IjYgOaynSuwlDTolSUEU0ErVvju3NURg==}
+ peerDependencies:
+ vite: '*'
+ peerDependenciesMeta:
+ vite:
+ optional: true
+
vite@4.5.2:
resolution: {integrity: sha512-tBCZBNSBbHQkaGyhGCDUGqeo2ph8Fstyp6FMSvTtsXeZSPpSMGlviAOav2hxVTqFcx8Hj/twtWKsMJXNY0xI8w==}
engines: {node: ^14.18.0 || >=16.0.0}
@@ -10959,15 +10763,15 @@ packages:
terser:
optional: true
- vitest@1.6.0:
- resolution: {integrity: sha512-H5r/dN06swuFnzNFhq/dnz37bPXnq8xB2xB5JOVk8K09rUtoeNN+LHWkoQ0A/i3hvbUKKcCei9KpbxqHMLhLLA==}
+ vitest@2.1.5:
+ resolution: {integrity: sha512-P4ljsdpuzRTPI/kbND2sDZ4VmieerR2c9szEZpjc+98Z9ebvnXmM5+0tHEKqYZumXqlvnmfWsjeFOjXVriDG7A==}
engines: {node: ^18.0.0 || >=20.0.0}
hasBin: true
peerDependencies:
'@edge-runtime/vm': '*'
'@types/node': ^18.0.0 || >=20.0.0
- '@vitest/browser': 1.6.0
- '@vitest/ui': 1.6.0
+ '@vitest/browser': 2.1.5
+ '@vitest/ui': 2.1.5
happy-dom: '*'
jsdom: '*'
peerDependenciesMeta:
@@ -10991,10 +10795,6 @@ packages:
resolution: {integrity: sha512-Dhxzh5HZuiHQhbvTW9AMetFfBHDMYpo23Uo9btPXgdYP+3T5S+p+jgNy7spra+veYhBP2dCSgxR/i2Y02h5/6w==}
engines: {node: '>=0.10.0'}
- w3c-xmlserializer@4.0.0:
- resolution: {integrity: sha512-d+BFHzbiCx6zGfz0HyQ6Rg69w9k19nviJspaj4yNscGjrHu94sVP+aRm75yEbCh+r2/yR+7q6hux9LVtbuTGBw==}
- engines: {node: '>=14'}
-
w3c-xmlserializer@5.0.0:
resolution: {integrity: sha512-o8qghlI8NZHU1lLPrpi2+Uq7abh4GGPpYANlalzWxyWteJOCsr/P+oPBA49TOLu5FTZO4d3F9MnWJfiMo4BkmA==}
engines: {node: '>=18'}
@@ -11041,10 +10841,6 @@ packages:
webpack-cli:
optional: true
- whatwg-encoding@2.0.0:
- resolution: {integrity: sha512-p41ogyeMUrw3jWclHWTQg1k05DSVXPLcVxRTYsXUk+ZooOCZLcoYgPZ/HL/D/N+uQPOtcp1me1WhBEaX02mhWg==}
- engines: {node: '>=12'}
-
whatwg-encoding@3.1.1:
resolution: {integrity: sha512-6qN4hJdMwfYBtE3YBTTHhoeuUrDBPZmbQaxWAqSALV/MeEnR5z1xd8UKud2RAkFoPkmB+hli1TZSnyi84xz1vQ==}
engines: {node: '>=18'}
@@ -11060,10 +10856,6 @@ packages:
resolution: {integrity: sha512-QaKxh0eNIi2mE9p2vEdzfagOKHCcj1pJ56EEHGQOVxp8r9/iszLUUV7v89x9O1p/T+NlTM5W7jW6+cz4Fq1YVg==}
engines: {node: '>=18'}
- whatwg-url@11.0.0:
- resolution: {integrity: sha512-RKT8HExMpoYx4igMiVMY83lN6UeITKJlBQ+vR/8ZJ8OCdSiN3RwCq+9gH0+Xzj0+5IrM6i4j/6LuvzbZIQgEcQ==}
- engines: {node: '>=12'}
-
whatwg-url@14.0.0:
resolution: {integrity: sha512-1lfMEm2IEr7RIV+f4lUNPOqfFL+pO+Xw3fJSqmjX9AbXcXcYOkCe1P6+9VBZB6n94af16NfZf+sSk0JCBZC9aw==}
engines: {node: '>=18'}
@@ -11173,10 +10965,6 @@ packages:
xml-lexer@0.2.2:
resolution: {integrity: sha512-G0i98epIwiUEiKmMcavmVdhtymW+pCAohMRgybyIME9ygfVu8QheIi+YoQh3ngiThsT0SQzJT4R0sKDEv8Ou0w==}
- xml-name-validator@4.0.0:
- resolution: {integrity: sha512-ICP2e+jsHvAj2E2lIHxa5tjXRlKDJo4IdvPvCXbXQGdzSfmSpNVyIKMvoZHjDY9DP0zV17iI85o90vRFXNccRw==}
- engines: {node: '>=12'}
-
xml-name-validator@5.0.0:
resolution: {integrity: sha512-EvGK8EJ3DhaHfbRlETOWAS5pO9MZITeauHKJyb8wyajUfQUenkIg2MvLDTZ4T/TgIcm3HU0TFBgWWboAZ30UHg==}
engines: {node: '>=18'}
@@ -11184,9 +10972,6 @@ packages:
xml-reader@2.4.3:
resolution: {integrity: sha512-xWldrIxjeAMAu6+HSf9t50ot1uL5M+BtOidRCWHXIeewvSeIpscWCsp4Zxjk8kHHhdqFBrfK8U0EJeCcnyQ/gA==}
- xml@1.0.1:
- resolution: {integrity: sha512-huCv9IH9Tcf95zuYCsQraZtWnJvBtLVE0QHMOs8bWyZAFZNDcYjsPq1nEx8jKA9y+Beo9v+7OBPRisQTjinQMw==}
-
xmlchars@2.2.0:
resolution: {integrity: sha512-JZnDKK8B0RCDw84FNdDAIpZK+JuJw+s7Lz8nksI7SIuU3UXJJslUthsi+uWBUYOwPFwW7W7PRLRfUKpxjtjFCw==}
@@ -11254,10 +11039,6 @@ packages:
resolution: {integrity: sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==}
engines: {node: '>=10'}
- yocto-queue@1.1.1:
- resolution: {integrity: sha512-b4JR1PFR10y1mKjhHY9LaGo6tmrgjit7hxVIeAmyMw3jegXR4dhYqLaQF5zMXZxY7tLpMyJeLjr1C4rLmkVe8g==}
- engines: {node: '>=12.20'}
-
z-schema@5.0.5:
resolution: {integrity: sha512-D7eujBWkLa3p2sIpJA0d1pr7es+a7m0vFAnZLlCEKq/Ij2k0MLi9Br2UPxoxdYystm5K1yeBGzub0FlYUEWj2Q==}
engines: {node: '>=8.0.0'}
@@ -11479,6 +11260,7 @@ snapshots:
bidi-js: 1.0.3
css-tree: 2.3.1
is-potential-custom-element-name: 1.0.1
+ optional: true
'@aws-crypto/crc32@5.2.0':
dependencies:
@@ -13114,6 +12896,7 @@ snapshots:
'@cspotcode/source-map-support@0.8.1':
dependencies:
'@jridgewell/trace-mapping': 0.3.9
+ optional: true
'@csstools/postcss-color-function@1.1.1(postcss@8.4.47)':
dependencies:
@@ -13727,27 +13510,28 @@ snapshots:
'@jest/console@29.7.0':
dependencies:
'@jest/types': 29.6.3
- '@types/node': 22.7.3
+ '@types/node': 22.9.3
chalk: 4.1.2
jest-message-util: 29.7.0
jest-util: 29.7.0
slash: 3.0.0
+ optional: true
- '@jest/core@29.7.0(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.9.3(@swc/helpers@0.5.1))(@types/node@22.7.3)(typescript@5.6.2))':
+ '@jest/core@29.7.0(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.9.3(@swc/helpers@0.5.1))(@types/node@22.9.3)(typescript@5.6.2))':
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': 22.7.3
+ '@types/node': 22.9.3
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@22.7.3)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.9.3(@swc/helpers@0.5.1))(@types/node@22.7.3)(typescript@5.6.2))
+ jest-config: 29.7.0(@types/node@22.9.3)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.9.3(@swc/helpers@0.5.1))(@types/node@22.9.3)(typescript@5.6.2))
jest-haste-map: 29.7.0
jest-message-util: 29.7.0
jest-regex-util: 29.6.3
@@ -13767,21 +13551,20 @@ snapshots:
- babel-plugin-macros
- supports-color
- ts-node
-
- '@jest/create-cache-key-function@29.7.0':
- dependencies:
- '@jest/types': 29.6.3
+ optional: true
'@jest/environment@29.7.0':
dependencies:
'@jest/fake-timers': 29.7.0
'@jest/types': 29.6.3
- '@types/node': 22.7.3
+ '@types/node': 22.9.3
jest-mock: 29.7.0
+ optional: true
'@jest/expect-utils@29.7.0':
dependencies:
jest-get-type: 29.6.3
+ optional: true
'@jest/expect@29.7.0':
dependencies:
@@ -13789,15 +13572,17 @@ snapshots:
jest-snapshot: 29.7.0
transitivePeerDependencies:
- supports-color
+ optional: true
'@jest/fake-timers@29.7.0':
dependencies:
'@jest/types': 29.6.3
'@sinonjs/fake-timers': 10.3.0
- '@types/node': 22.7.3
+ '@types/node': 22.9.3
jest-message-util: 29.7.0
jest-mock: 29.7.0
jest-util: 29.7.0
+ optional: true
'@jest/globals@29.7.0':
dependencies:
@@ -13807,6 +13592,7 @@ snapshots:
jest-mock: 29.7.0
transitivePeerDependencies:
- supports-color
+ optional: true
'@jest/reporters@29.7.0':
dependencies:
@@ -13816,7 +13602,7 @@ snapshots:
'@jest/transform': 29.7.0
'@jest/types': 29.6.3
'@jridgewell/trace-mapping': 0.3.25
- '@types/node': 22.7.3
+ '@types/node': 22.9.3
chalk: 4.1.2
collect-v8-coverage: 1.0.2
exit: 0.1.2
@@ -13836,6 +13622,7 @@ snapshots:
v8-to-istanbul: 9.3.0
transitivePeerDependencies:
- supports-color
+ optional: true
'@jest/schemas@29.6.3':
dependencies:
@@ -13846,6 +13633,7 @@ snapshots:
'@jridgewell/trace-mapping': 0.3.25
callsites: 3.1.0
graceful-fs: 4.2.11
+ optional: true
'@jest/test-result@29.7.0':
dependencies:
@@ -13853,6 +13641,7 @@ snapshots:
'@jest/types': 29.6.3
'@types/istanbul-lib-coverage': 2.0.6
collect-v8-coverage: 1.0.2
+ optional: true
'@jest/test-sequencer@29.7.0':
dependencies:
@@ -13860,6 +13649,7 @@ snapshots:
graceful-fs: 4.2.11
jest-haste-map: 29.7.0
slash: 3.0.0
+ optional: true
'@jest/transform@29.7.0':
dependencies:
@@ -13891,7 +13681,7 @@ snapshots:
dependencies:
'@types/istanbul-lib-coverage': 2.0.6
'@types/istanbul-reports': 3.0.4
- '@types/node': 22.7.3
+ '@types/node': 22.9.3
'@types/yargs': 16.0.9
chalk: 4.1.2
@@ -13900,7 +13690,7 @@ snapshots:
'@jest/schemas': 29.6.3
'@types/istanbul-lib-coverage': 2.0.6
'@types/istanbul-reports': 3.0.4
- '@types/node': 22.7.3
+ '@types/node': 22.9.3
'@types/yargs': 17.0.33
chalk: 4.1.2
@@ -13930,6 +13720,7 @@ snapshots:
dependencies:
'@jridgewell/resolve-uri': 3.1.2
'@jridgewell/sourcemap-codec': 1.5.0
+ optional: true
'@loadable/component@5.15.2(react@18.3.1)':
dependencies:
@@ -13963,20 +13754,20 @@ snapshots:
nanoid: 5.0.7
react: 18.3.1
- '@microsoft/api-extractor-model@7.28.4(@types/node@22.7.3)':
+ '@microsoft/api-extractor-model@7.28.4(@types/node@22.9.3)':
dependencies:
'@microsoft/tsdoc': 0.14.2
'@microsoft/tsdoc-config': 0.16.2
- '@rushstack/node-core-library': 3.63.0(@types/node@22.7.3)
+ '@rushstack/node-core-library': 3.63.0(@types/node@22.9.3)
transitivePeerDependencies:
- '@types/node'
- '@microsoft/api-extractor@7.39.1(@types/node@22.7.3)':
+ '@microsoft/api-extractor@7.39.1(@types/node@22.9.3)':
dependencies:
- '@microsoft/api-extractor-model': 7.28.4(@types/node@22.7.3)
+ '@microsoft/api-extractor-model': 7.28.4(@types/node@22.9.3)
'@microsoft/tsdoc': 0.14.2
'@microsoft/tsdoc-config': 0.16.2
- '@rushstack/node-core-library': 3.63.0(@types/node@22.7.3)
+ '@rushstack/node-core-library': 3.63.0(@types/node@22.9.3)
'@rushstack/rig-package': 0.5.1
'@rushstack/ts-command-line': 4.17.1
colors: 1.2.5
@@ -14109,6 +13900,8 @@ snapshots:
picocolors: 1.1.0
tslib: 2.7.0
+ '@polka/url@1.0.0-next.28': {}
+
'@portkey/accounts@2.10.5(@portkey/request@2.10.5)(aelf-sdk@3.4.15(@babel/core@7.25.2)(encoding@0.1.13)(eslint@8.57.1))(query-string@7.1.3)':
dependencies:
'@portkey/types': 2.15.9
@@ -14713,7 +14506,7 @@ snapshots:
'@rollup/rollup-win32-x64-msvc@4.22.4':
optional: true
- '@rushstack/node-core-library@3.63.0(@types/node@22.7.3)':
+ '@rushstack/node-core-library@3.63.0(@types/node@22.9.3)':
dependencies:
colors: 1.2.5
fs-extra: 7.0.1
@@ -14723,7 +14516,7 @@ snapshots:
semver: 7.5.4
z-schema: 5.0.5
optionalDependencies:
- '@types/node': 22.7.3
+ '@types/node': 22.9.3
'@rushstack/rig-package@0.5.1':
dependencies:
@@ -14747,10 +14540,12 @@ snapshots:
'@sinonjs/commons@3.0.1':
dependencies:
type-detect: 4.0.8
+ optional: true
'@sinonjs/fake-timers@10.3.0':
dependencies:
'@sinonjs/commons': 3.0.1
+ optional: true
'@sketch-hq/sketch-file-format-ts@6.5.0': {}
@@ -15263,23 +15058,19 @@ snapshots:
'@swc/core-win32-ia32-msvc': 1.9.3
'@swc/core-win32-x64-msvc': 1.9.3
'@swc/helpers': 0.5.1
+ optional: true
- '@swc/counter@0.1.3': {}
+ '@swc/counter@0.1.3':
+ optional: true
'@swc/helpers@0.5.1':
dependencies:
tslib: 2.7.0
- '@swc/jest@0.2.37(@swc/core@1.9.3(@swc/helpers@0.5.1))':
- dependencies:
- '@jest/create-cache-key-function': 29.7.0
- '@swc/core': 1.9.3(@swc/helpers@0.5.1)
- '@swc/counter': 0.1.3
- jsonc-parser: 3.3.1
-
'@swc/types@0.1.17':
dependencies:
'@swc/counter': 0.1.3
+ optional: true
'@testing-library/dom@10.4.0':
dependencies:
@@ -15292,7 +15083,7 @@ snapshots:
lz-string: 1.5.0
pretty-format: 27.5.1
- '@testing-library/jest-dom@6.5.0':
+ '@testing-library/jest-dom@6.6.3':
dependencies:
'@adobe/css-tools': 4.4.0
aria-query: 5.3.2
@@ -15311,14 +15102,6 @@ snapshots:
'@types/react': 18.3.9
react-dom: 18.3.1(react@18.3.1)
- '@testing-library/react@14.3.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1)':
- dependencies:
- '@babel/runtime': 7.25.6
- '@testing-library/dom': 10.4.0
- '@types/react-dom': 18.3.0
- react: 18.3.1
- react-dom: 18.3.1(react@18.3.1)
-
'@testing-library/react@16.0.1(@testing-library/dom@10.4.0)(@types/react-dom@18.3.0)(@types/react@18.3.9)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)':
dependencies:
'@babel/runtime': 7.25.6
@@ -15329,17 +15112,19 @@ snapshots:
'@types/react': 18.3.9
'@types/react-dom': 18.3.0
- '@tootallnate/once@2.0.0': {}
-
'@trysound/sax@0.2.0': {}
- '@tsconfig/node10@1.0.11': {}
+ '@tsconfig/node10@1.0.11':
+ optional: true
- '@tsconfig/node12@1.0.11': {}
+ '@tsconfig/node12@1.0.11':
+ optional: true
- '@tsconfig/node14@1.0.3': {}
+ '@tsconfig/node14@1.0.3':
+ optional: true
- '@tsconfig/node16@1.0.4': {}
+ '@tsconfig/node16@1.0.4':
+ optional: true
'@types/argparse@1.0.38': {}
@@ -15385,11 +15170,11 @@ snapshots:
'@types/fs-extra@11.0.1':
dependencies:
'@types/jsonfile': 6.1.4
- '@types/node': 22.7.3
+ '@types/node': 22.9.3
'@types/graceful-fs@4.1.9':
dependencies:
- '@types/node': 22.7.3
+ '@types/node': 22.9.3
'@types/hapi__joi@17.1.9': {}
@@ -15419,33 +15204,17 @@ snapshots:
dependencies:
'@types/istanbul-lib-report': 3.0.3
- '@types/jest@29.5.13':
- dependencies:
- expect: 29.7.0
- pretty-format: 29.7.0
-
- '@types/jest@29.5.14':
- dependencies:
- expect: 29.7.0
- pretty-format: 29.7.0
-
'@types/js-cookie@2.2.7': {}
- '@types/jsdom@20.0.1':
- dependencies:
- '@types/node': 22.7.3
- '@types/tough-cookie': 4.0.5
- parse5: 7.1.2
-
'@types/json-schema@7.0.15': {}
'@types/jsonfile@6.1.4':
dependencies:
- '@types/node': 22.7.3
+ '@types/node': 22.9.3
'@types/keyv@3.1.4':
dependencies:
- '@types/node': 22.7.3
+ '@types/node': 22.9.3
'@types/long@4.0.2': {}
@@ -15467,6 +15236,10 @@ snapshots:
dependencies:
undici-types: 6.19.8
+ '@types/node@22.9.3':
+ dependencies:
+ undici-types: 6.19.8
+
'@types/normalize-package-data@2.4.4': {}
'@types/parse-json@4.0.2': {}
@@ -15492,27 +15265,26 @@ snapshots:
'@types/readable-stream@2.3.15':
dependencies:
- '@types/node': 22.7.3
+ '@types/node': 22.9.3
safe-buffer: 5.1.2
'@types/resolve@1.20.6': {}
'@types/responselike@1.0.3':
dependencies:
- '@types/node': 22.7.3
+ '@types/node': 22.9.3
'@types/sax@1.2.7':
dependencies:
- '@types/node': 22.7.3
+ '@types/node': 22.9.3
'@types/semver@7.5.8': {}
- '@types/stack-utils@2.0.3': {}
+ '@types/stack-utils@2.0.3':
+ optional: true
'@types/stylis@4.2.5': {}
- '@types/tough-cookie@4.0.5': {}
-
'@types/unist@2.0.11': {}
'@types/yargs-parser@21.0.3': {}
@@ -15748,18 +15520,18 @@ snapshots:
transitivePeerDependencies:
- supports-color
- '@umijs/bundler-vite@4.3.24(@types/node@22.7.3)(lightningcss@1.22.1)(postcss@8.4.47)(rollup@3.29.5)(sass@1.79.3)(terser@5.34.0)':
+ '@umijs/bundler-vite@4.3.24(@types/node@22.9.3)(lightningcss@1.22.1)(postcss@8.4.47)(rollup@3.29.5)(sass@1.79.3)(terser@5.34.0)':
dependencies:
'@svgr/core': 6.5.1
'@umijs/bundler-utils': 4.3.24
'@umijs/utils': 4.3.24
- '@vitejs/plugin-react': 4.0.0(vite@4.5.2(@types/node@22.7.3)(less@4.1.3)(lightningcss@1.22.1)(sass@1.79.3)(terser@5.34.0))
+ '@vitejs/plugin-react': 4.0.0(vite@4.5.2(@types/node@22.9.3)(less@4.1.3)(lightningcss@1.22.1)(sass@1.79.3)(terser@5.34.0))
core-js: 3.34.0
less: 4.1.3
postcss-preset-env: 7.5.0(postcss@8.4.47)
rollup-plugin-visualizer: 5.9.0(rollup@3.29.5)
systemjs: 6.15.1
- vite: 4.5.2(@types/node@22.7.3)(less@4.1.3)(lightningcss@1.22.1)(sass@1.79.3)(terser@5.34.0)
+ vite: 4.5.2(@types/node@22.9.3)(less@4.1.3)(lightningcss@1.22.1)(sass@1.79.3)(terser@5.34.0)
transitivePeerDependencies:
- '@types/node'
- lightningcss
@@ -15928,7 +15700,7 @@ snapshots:
'@babel/runtime': 7.25.6
query-string: 6.14.1
- '@umijs/lint@4.3.24(eslint@8.57.1)(jest@29.7.0(@types/node@22.7.3)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.9.3(@swc/helpers@0.5.1))(@types/node@22.7.3)(typescript@5.6.2)))(stylelint@14.16.1)(typescript@5.6.2)':
+ '@umijs/lint@4.3.24(eslint@8.57.1)(jest@29.7.0(@types/node@22.9.3)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.9.3(@swc/helpers@0.5.1))(@types/node@22.9.3)(typescript@5.6.2)))(stylelint@14.16.1)(typescript@5.6.2)':
dependencies:
'@babel/core': 7.25.2
'@babel/eslint-parser': 7.23.3(@babel/core@7.25.2)(eslint@8.57.1)
@@ -15936,7 +15708,7 @@ snapshots:
'@typescript-eslint/eslint-plugin': 5.62.0(@typescript-eslint/parser@5.62.0(eslint@8.57.1)(typescript@5.6.2))(eslint@8.57.1)(typescript@5.6.2)
'@typescript-eslint/parser': 5.62.0(eslint@8.57.1)(typescript@5.6.2)
'@umijs/babel-preset-umi': 4.3.24
- eslint-plugin-jest: 27.2.3(@typescript-eslint/eslint-plugin@5.62.0(@typescript-eslint/parser@5.62.0(eslint@8.57.1)(typescript@5.6.2))(eslint@8.57.1)(typescript@5.6.2))(eslint@8.57.1)(jest@29.7.0(@types/node@22.7.3)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.9.3(@swc/helpers@0.5.1))(@types/node@22.7.3)(typescript@5.6.2)))(typescript@5.6.2)
+ eslint-plugin-jest: 27.2.3(@typescript-eslint/eslint-plugin@5.62.0(@typescript-eslint/parser@5.62.0(eslint@8.57.1)(typescript@5.6.2))(eslint@8.57.1)(typescript@5.6.2))(eslint@8.57.1)(jest@29.7.0(@types/node@22.9.3)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.9.3(@swc/helpers@0.5.1))(@types/node@22.9.3)(typescript@5.6.2)))(typescript@5.6.2)
eslint-plugin-react: 7.33.2(eslint@8.57.1)
eslint-plugin-react-hooks: 4.6.0(eslint@8.57.1)
postcss: 8.4.47
@@ -16017,7 +15789,7 @@ snapshots:
dependencies:
tsx: 3.12.2
- '@umijs/preset-umi@4.3.24(@types/node@22.7.3)(@types/react@18.3.9)(lightningcss@1.22.1)(rollup@3.29.5)(sass@1.79.3)(terser@5.34.0)(type-fest@0.21.3)(typescript@5.6.2)(webpack@5.95.0(@swc/core@1.9.3(@swc/helpers@0.5.1)))':
+ '@umijs/preset-umi@4.3.24(@types/node@22.9.3)(@types/react@18.3.9)(lightningcss@1.22.1)(rollup@3.29.5)(sass@1.79.3)(terser@5.34.0)(type-fest@0.21.3)(typescript@5.6.2)(webpack@5.95.0(@swc/core@1.9.3(@swc/helpers@0.5.1)))':
dependencies:
'@iconify/utils': 2.1.1
'@svgr/core': 6.5.1
@@ -16026,7 +15798,7 @@ snapshots:
'@umijs/bundler-esbuild': 4.3.24
'@umijs/bundler-mako': 0.8.14
'@umijs/bundler-utils': 4.3.24
- '@umijs/bundler-vite': 4.3.24(@types/node@22.7.3)(lightningcss@1.22.1)(postcss@8.4.47)(rollup@3.29.5)(sass@1.79.3)(terser@5.34.0)
+ '@umijs/bundler-vite': 4.3.24(@types/node@22.9.3)(lightningcss@1.22.1)(postcss@8.4.47)(rollup@3.29.5)(sass@1.79.3)(terser@5.34.0)
'@umijs/bundler-webpack': 4.3.24(type-fest@0.21.3)(typescript@5.6.2)(webpack@5.95.0(@swc/core@1.9.3(@swc/helpers@0.5.1)))
'@umijs/core': 4.3.24
'@umijs/did-you-know': 1.0.3
@@ -16161,17 +15933,17 @@ snapshots:
'@vercel/ncc@0.33.3': {}
- '@vitejs/plugin-react@4.0.0(vite@4.5.2(@types/node@22.7.3)(less@4.1.3)(lightningcss@1.22.1)(sass@1.79.3)(terser@5.34.0))':
+ '@vitejs/plugin-react@4.0.0(vite@4.5.2(@types/node@22.9.3)(less@4.1.3)(lightningcss@1.22.1)(sass@1.79.3)(terser@5.34.0))':
dependencies:
'@babel/core': 7.25.2
'@babel/plugin-transform-react-jsx-self': 7.24.7(@babel/core@7.25.2)
'@babel/plugin-transform-react-jsx-source': 7.24.7(@babel/core@7.25.2)
react-refresh: 0.14.2
- vite: 4.5.2(@types/node@22.7.3)(less@4.1.3)(lightningcss@1.22.1)(sass@1.79.3)(terser@5.34.0)
+ vite: 4.5.2(@types/node@22.9.3)(less@4.1.3)(lightningcss@1.22.1)(sass@1.79.3)(terser@5.34.0)
transitivePeerDependencies:
- supports-color
- '@vitest/coverage-v8@1.6.0(vitest@1.6.0(@types/node@22.7.3)(jsdom@23.2.0)(less@4.2.0)(lightningcss@1.22.1)(sass@1.79.3)(terser@5.34.0))':
+ '@vitest/coverage-v8@2.1.5(vitest@2.1.5)':
dependencies:
'@ampproject/remapping': 2.3.0
'@bcoe/v8-coverage': 0.2.3
@@ -16180,44 +15952,65 @@ snapshots:
istanbul-lib-report: 3.0.1
istanbul-lib-source-maps: 5.0.6
istanbul-reports: 3.1.7
- magic-string: 0.30.11
+ magic-string: 0.30.13
magicast: 0.3.5
- picocolors: 1.1.0
- std-env: 3.7.0
- strip-literal: 2.1.0
- test-exclude: 6.0.0
- vitest: 1.6.0(@types/node@22.7.3)(jsdom@23.2.0)(less@4.2.0)(lightningcss@1.22.1)(sass@1.79.3)(terser@5.34.0)
+ std-env: 3.8.0
+ test-exclude: 7.0.1
+ tinyrainbow: 1.2.0
+ vitest: 2.1.5(@types/node@22.9.3)(@vitest/ui@2.1.5)(happy-dom@15.11.6)(jsdom@23.2.0)(less@4.2.0)(lightningcss@1.22.1)(sass@1.79.3)(terser@5.34.0)
transitivePeerDependencies:
- supports-color
- '@vitest/expect@1.6.0':
+ '@vitest/expect@2.1.5':
dependencies:
- '@vitest/spy': 1.6.0
- '@vitest/utils': 1.6.0
- chai: 4.5.0
+ '@vitest/spy': 2.1.5
+ '@vitest/utils': 2.1.5
+ chai: 5.1.2
+ tinyrainbow: 1.2.0
- '@vitest/runner@1.6.0':
+ '@vitest/mocker@2.1.5(vite@5.4.8(@types/node@22.9.3)(less@4.2.0)(lightningcss@1.22.1)(sass@1.79.3)(terser@5.34.0))':
dependencies:
- '@vitest/utils': 1.6.0
- p-limit: 5.0.0
+ '@vitest/spy': 2.1.5
+ estree-walker: 3.0.3
+ magic-string: 0.30.13
+ optionalDependencies:
+ vite: 5.4.8(@types/node@22.9.3)(less@4.2.0)(lightningcss@1.22.1)(sass@1.79.3)(terser@5.34.0)
+
+ '@vitest/pretty-format@2.1.5':
+ dependencies:
+ tinyrainbow: 1.2.0
+
+ '@vitest/runner@2.1.5':
+ dependencies:
+ '@vitest/utils': 2.1.5
pathe: 1.1.2
- '@vitest/snapshot@1.6.0':
+ '@vitest/snapshot@2.1.5':
dependencies:
- magic-string: 0.30.11
+ '@vitest/pretty-format': 2.1.5
+ magic-string: 0.30.13
pathe: 1.1.2
- pretty-format: 29.7.0
- '@vitest/spy@1.6.0':
+ '@vitest/spy@2.1.5':
dependencies:
- tinyspy: 2.2.1
+ tinyspy: 3.0.2
- '@vitest/utils@1.6.0':
+ '@vitest/ui@2.1.5(vitest@2.1.5)':
dependencies:
- diff-sequences: 29.6.3
- estree-walker: 3.0.3
- loupe: 2.3.7
- pretty-format: 29.7.0
+ '@vitest/utils': 2.1.5
+ fflate: 0.8.2
+ flatted: 3.3.1
+ pathe: 1.1.2
+ sirv: 3.0.0
+ tinyglobby: 0.2.10
+ tinyrainbow: 1.2.0
+ vitest: 2.1.5(@types/node@22.9.3)(@vitest/ui@2.1.5)(happy-dom@15.11.6)(jsdom@23.2.0)(less@4.2.0)(lightningcss@1.22.1)(sass@1.79.3)(terser@5.34.0)
+
+ '@vitest/utils@2.1.5':
+ dependencies:
+ '@vitest/pretty-format': 2.1.5
+ loupe: 3.1.2
+ tinyrainbow: 1.2.0
'@webassemblyjs/ast@1.12.1':
dependencies:
@@ -16321,8 +16114,6 @@ snapshots:
'@xtuc/long@4.2.2': {}
- abab@2.0.6: {}
-
abort-controller@3.0.0:
dependencies:
event-target-shim: 5.0.1
@@ -16332,11 +16123,6 @@ snapshots:
mime-types: 2.1.35
negotiator: 0.6.3
- acorn-globals@7.0.1:
- dependencies:
- acorn: 8.12.1
- acorn-walk: 8.3.4
-
acorn-import-attributes@1.9.5(acorn@8.12.1):
dependencies:
acorn: 8.12.1
@@ -16348,6 +16134,7 @@ snapshots:
acorn-walk@8.3.4:
dependencies:
acorn: 8.12.1
+ optional: true
acorn@8.12.1: {}
@@ -16467,17 +16254,12 @@ snapshots:
dependencies:
es6-promisify: 5.0.0
- agent-base@6.0.2:
- dependencies:
- debug: 4.3.7
- transitivePeerDependencies:
- - supports-color
-
agent-base@7.1.1:
dependencies:
debug: 4.3.7
transitivePeerDependencies:
- supports-color
+ optional: true
agentkeepalive@3.5.3:
dependencies:
@@ -16527,6 +16309,7 @@ snapshots:
ansi-escapes@4.3.2:
dependencies:
type-fest: 0.21.3
+ optional: true
ansi-escapes@7.0.0:
dependencies:
@@ -16711,7 +16494,8 @@ snapshots:
aproba@1.2.0: {}
- arg@4.1.3: {}
+ arg@4.1.3:
+ optional: true
arg@5.0.2: {}
@@ -16829,7 +16613,7 @@ snapshots:
object.assign: 4.1.5
util: 0.12.5
- assertion-error@1.1.0: {}
+ assertion-error@2.0.1: {}
astral-regex@2.0.0: {}
@@ -16837,9 +16621,8 @@ snapshots:
async-validator@4.2.5: {}
- async@3.2.6: {}
-
- asynckit@0.4.0: {}
+ asynckit@0.4.0:
+ optional: true
atob@2.1.2: {}
@@ -17015,6 +16798,7 @@ snapshots:
bidi-js@1.0.3:
dependencies:
require-from-string: 2.0.2
+ optional: true
big-integer@1.6.52: {}
@@ -17151,10 +16935,6 @@ snapshots:
node-releases: 2.0.18
update-browserslist-db: 1.1.0(browserslist@4.24.0)
- bs-logger@0.2.6:
- dependencies:
- fast-json-stable-stringify: 2.1.0
-
bs58@4.0.1:
dependencies:
base-x: 3.0.10
@@ -17292,15 +17072,13 @@ snapshots:
ccount@2.0.1: {}
- chai@4.5.0:
+ chai@5.1.2:
dependencies:
- assertion-error: 1.1.0
- check-error: 1.0.3
- deep-eql: 4.1.4
- get-func-name: 2.0.2
- loupe: 2.3.7
- pathval: 1.1.1
- type-detect: 4.1.0
+ assertion-error: 2.0.1
+ check-error: 2.1.1
+ deep-eql: 5.0.2
+ loupe: 3.1.2
+ pathval: 2.0.0
chalk@2.4.2:
dependencies:
@@ -17320,7 +17098,8 @@ snapshots:
chalk@5.3.0: {}
- char-regex@1.0.2: {}
+ char-regex@1.0.2:
+ optional: true
character-entities-html4@2.1.0: {}
@@ -17332,9 +17111,7 @@ snapshots:
chardet@0.7.0: {}
- check-error@1.0.3:
- dependencies:
- get-func-name: 2.0.2
+ check-error@2.1.1: {}
chokidar@3.5.3:
dependencies:
@@ -17377,7 +17154,8 @@ snapshots:
inherits: 2.0.4
safe-buffer: 5.2.1
- cjs-module-lexer@1.4.1: {}
+ cjs-module-lexer@1.4.1:
+ optional: true
classnames@2.3.2: {}
@@ -17424,7 +17202,8 @@ snapshots:
clsx@1.2.1: {}
- co@4.6.0: {}
+ co@4.6.0:
+ optional: true
coa@2.0.2:
dependencies:
@@ -17466,7 +17245,8 @@ snapshots:
transitivePeerDependencies:
- supports-color
- collect-v8-coverage@1.0.2: {}
+ collect-v8-coverage@1.0.2:
+ optional: true
color-convert@1.9.3:
dependencies:
@@ -17499,6 +17279,7 @@ snapshots:
combined-stream@1.0.8:
dependencies:
delayed-stream: 1.0.0
+ optional: true
comma-separated-tokens@2.0.3: {}
@@ -17544,8 +17325,6 @@ snapshots:
readable-stream: 2.3.8
typedarray: 0.0.6
- confbox@0.1.7: {}
-
configstore@3.1.5:
dependencies:
dot-prop: 4.2.1
@@ -17645,13 +17424,13 @@ snapshots:
safe-buffer: 5.2.1
sha.js: 2.4.11
- create-jest@29.7.0(@types/node@22.7.3)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.9.3(@swc/helpers@0.5.1))(@types/node@22.7.3)(typescript@5.6.2)):
+ create-jest@29.7.0(@types/node@22.9.3)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.9.3(@swc/helpers@0.5.1))(@types/node@22.9.3)(typescript@5.6.2)):
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@22.7.3)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.9.3(@swc/helpers@0.5.1))(@types/node@22.7.3)(typescript@5.6.2))
+ jest-config: 29.7.0(@types/node@22.9.3)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.9.3(@swc/helpers@0.5.1))(@types/node@22.9.3)(typescript@5.6.2))
jest-util: 29.7.0
prompts: 2.4.2
transitivePeerDependencies:
@@ -17659,8 +17438,10 @@ snapshots:
- babel-plugin-macros
- supports-color
- ts-node
+ optional: true
- create-require@1.1.1: {}
+ create-require@1.1.1:
+ optional: true
cross-spawn@5.1.0:
dependencies:
@@ -17775,6 +17556,7 @@ snapshots:
dependencies:
mdn-data: 2.0.30
source-map-js: 1.2.1
+ optional: true
css-what@3.4.2: {}
@@ -17792,23 +17574,14 @@ snapshots:
cssesc@3.0.0: {}
- cssfontparser@1.2.1: {}
-
csso@4.2.0:
dependencies:
css-tree: 1.1.3
- cssom@0.3.8: {}
-
- cssom@0.5.0: {}
-
- cssstyle@2.3.0:
- dependencies:
- cssom: 0.3.8
-
cssstyle@4.1.0:
dependencies:
rrweb-cssom: 0.7.1
+ optional: true
csstype@3.1.3: {}
@@ -17822,16 +17595,11 @@ snapshots:
data-uri-to-buffer@4.0.1: {}
- data-urls@3.0.2:
- dependencies:
- abab: 2.0.6
- whatwg-mimetype: 3.0.0
- whatwg-url: 11.0.0
-
data-urls@5.0.0:
dependencies:
whatwg-mimetype: 4.0.0
whatwg-url: 14.0.0
+ optional: true
data-view-buffer@1.0.1:
dependencies:
@@ -17885,7 +17653,8 @@ snapshots:
decamelize@1.2.0: {}
- decimal.js@10.4.3: {}
+ decimal.js@10.4.3:
+ optional: true
decode-named-character-reference@1.0.2:
dependencies:
@@ -17896,10 +17665,9 @@ snapshots:
dedent@1.5.3(babel-plugin-macros@3.1.0):
optionalDependencies:
babel-plugin-macros: 3.1.0
+ optional: true
- deep-eql@4.1.4:
- dependencies:
- type-detect: 4.1.0
+ deep-eql@5.0.2: {}
deep-extend@0.6.0: {}
@@ -17942,7 +17710,8 @@ snapshots:
has-property-descriptors: 1.0.2
object-keys: 1.1.1
- delayed-stream@1.0.0: {}
+ delayed-stream@1.0.0:
+ optional: true
depd@2.0.0: {}
@@ -17961,15 +17730,18 @@ snapshots:
detect-libc@1.0.3: {}
- detect-newline@3.1.0: {}
+ detect-newline@3.1.0:
+ optional: true
detect-newline@4.0.1: {}
detect-node@2.1.0: {}
- diff-sequences@29.6.3: {}
+ diff-sequences@29.6.3:
+ optional: true
- diff@4.0.2: {}
+ diff@4.0.2:
+ optional: true
diff@5.2.0: {}
@@ -18024,10 +17796,6 @@ snapshots:
domelementtype@2.3.0: {}
- domexception@4.0.0:
- dependencies:
- webidl-conversions: 7.0.0
-
domhandler@4.3.1:
dependencies:
domelementtype: 2.3.0
@@ -18072,7 +17840,7 @@ snapshots:
dumi-assets-types@2.0.0-alpha.0: {}
- dumi@2.2.17(@babel/core@7.25.2)(@swc/helpers@0.5.1)(@types/node@22.7.3)(@types/react@18.3.9)(eslint@8.57.1)(jest@29.7.0(@types/node@22.7.3)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.9.3(@swc/helpers@0.5.1))(@types/node@22.7.3)(typescript@5.6.2)))(lightningcss@1.22.1)(prettier@3.3.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(rollup@3.29.5)(stylelint@14.16.1)(terser@5.34.0)(type-fest@0.21.3)(typescript@5.6.2)(webpack@5.95.0(@swc/core@1.9.3(@swc/helpers@0.5.1))):
+ dumi@2.2.17(@babel/core@7.25.2)(@swc/helpers@0.5.1)(@types/node@22.9.3)(@types/react@18.3.9)(eslint@8.57.1)(jest@29.7.0(@types/node@22.9.3)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.9.3(@swc/helpers@0.5.1))(@types/node@22.9.3)(typescript@5.6.2)))(lightningcss@1.22.1)(prettier@3.3.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(rollup@3.29.5)(stylelint@14.16.1)(terser@5.34.0)(type-fest@0.21.3)(typescript@5.6.2)(webpack@5.95.0(@swc/core@1.9.3(@swc/helpers@0.5.1))):
dependencies:
'@ant-design/icons-svg': 4.4.2
'@makotot/ghostui': 2.0.0(react@18.3.1)
@@ -18131,7 +17899,7 @@ snapshots:
remark-rehype: 10.1.0
sass: 1.79.3
sitemap: 7.1.2
- umi: 4.3.24(@babel/core@7.25.2)(@types/node@22.7.3)(@types/react@18.3.9)(eslint@8.57.1)(jest@29.7.0(@types/node@22.7.3)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.9.3(@swc/helpers@0.5.1))(@types/node@22.7.3)(typescript@5.6.2)))(lightningcss@1.22.1)(prettier@3.3.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(rollup@3.29.5)(sass@1.79.3)(stylelint@14.16.1)(terser@5.34.0)(type-fest@0.21.3)(typescript@5.6.2)(webpack@5.95.0(@swc/core@1.9.3(@swc/helpers@0.5.1)))
+ umi: 4.3.24(@babel/core@7.25.2)(@types/node@22.9.3)(@types/react@18.3.9)(eslint@8.57.1)(jest@29.7.0(@types/node@22.9.3)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.9.3(@swc/helpers@0.5.1))(@types/node@22.9.3)(typescript@5.6.2)))(lightningcss@1.22.1)(prettier@3.3.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(rollup@3.29.5)(sass@1.79.3)(stylelint@14.16.1)(terser@5.34.0)(type-fest@0.21.3)(typescript@5.6.2)(webpack@5.95.0(@swc/core@1.9.3(@swc/helpers@0.5.1)))
unified: 10.1.2
unist-util-visit: 4.1.2
unist-util-visit-parents: 5.1.3
@@ -18198,10 +17966,6 @@ snapshots:
ee-first@1.1.1: {}
- ejs@3.1.10:
- dependencies:
- jake: 10.9.2
-
electron-to-chromium@1.5.29: {}
elliptic@6.5.7:
@@ -18214,7 +17978,8 @@ snapshots:
minimalistic-assert: 1.0.1
minimalistic-crypto-utils: 1.0.1
- emittery@0.13.1: {}
+ emittery@0.13.1:
+ optional: true
emoji-regex@10.4.0: {}
@@ -18512,31 +18277,24 @@ snapshots:
escape-string-regexp@1.0.5: {}
- escape-string-regexp@2.0.0: {}
+ escape-string-regexp@2.0.0:
+ optional: true
escape-string-regexp@4.0.0: {}
escape-string-regexp@5.0.0: {}
- escodegen@2.1.0:
- dependencies:
- esprima: 4.0.1
- estraverse: 5.3.0
- esutils: 2.0.3
- optionalDependencies:
- source-map: 0.6.1
-
eslint-config-prettier@9.1.0(eslint@8.57.1):
dependencies:
eslint: 8.57.1
- eslint-plugin-jest@27.2.3(@typescript-eslint/eslint-plugin@5.62.0(@typescript-eslint/parser@5.62.0(eslint@8.57.1)(typescript@5.6.2))(eslint@8.57.1)(typescript@5.6.2))(eslint@8.57.1)(jest@29.7.0(@types/node@22.7.3)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.9.3(@swc/helpers@0.5.1))(@types/node@22.7.3)(typescript@5.6.2)))(typescript@5.6.2):
+ eslint-plugin-jest@27.2.3(@typescript-eslint/eslint-plugin@5.62.0(@typescript-eslint/parser@5.62.0(eslint@8.57.1)(typescript@5.6.2))(eslint@8.57.1)(typescript@5.6.2))(eslint@8.57.1)(jest@29.7.0(@types/node@22.9.3)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.9.3(@swc/helpers@0.5.1))(@types/node@22.9.3)(typescript@5.6.2)))(typescript@5.6.2):
dependencies:
'@typescript-eslint/utils': 5.62.0(eslint@8.57.1)(typescript@5.6.2)
eslint: 8.57.1
optionalDependencies:
'@typescript-eslint/eslint-plugin': 5.62.0(@typescript-eslint/parser@5.62.0(eslint@8.57.1)(typescript@5.6.2))(eslint@8.57.1)(typescript@5.6.2)
- jest: 29.7.0(@types/node@22.7.3)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.9.3(@swc/helpers@0.5.1))(@types/node@22.7.3)(typescript@5.6.2))
+ jest: 29.7.0(@types/node@22.9.3)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.9.3(@swc/helpers@0.5.1))(@types/node@22.9.3)(typescript@5.6.2))
transitivePeerDependencies:
- supports-color
- typescript
@@ -18776,12 +18534,15 @@ snapshots:
signal-exit: 4.1.0
strip-final-newline: 3.0.0
- exit@0.1.2: {}
+ exit@0.1.2:
+ optional: true
expand-tilde@1.2.2:
dependencies:
os-homedir: 1.0.2
+ expect-type@1.1.0: {}
+
expect@29.7.0:
dependencies:
'@jest/expect-utils': 29.7.0
@@ -18789,6 +18550,7 @@ snapshots:
jest-matcher-utils: 29.7.0
jest-message-util: 29.7.0
jest-util: 29.7.0
+ optional: true
express-http-proxy@2.1.1:
dependencies:
@@ -18890,9 +18652,9 @@ snapshots:
dependencies:
reusify: 1.0.4
- father@4.5.0(@babel/core@7.25.2)(@types/node@22.7.3)(styled-components@6.1.13(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(type-fest@0.21.3)(webpack@5.95.0(@swc/core@1.9.3(@swc/helpers@0.5.1))):
+ father@4.5.0(@babel/core@7.25.2)(@types/node@22.9.3)(styled-components@6.1.13(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(type-fest@0.21.3)(webpack@5.95.0(@swc/core@1.9.3(@swc/helpers@0.5.1))):
dependencies:
- '@microsoft/api-extractor': 7.39.1(@types/node@22.7.3)
+ '@microsoft/api-extractor': 7.39.1(@types/node@22.9.3)
'@umijs/babel-preset-umi': 4.3.24
'@umijs/bundler-utils': 4.3.24
'@umijs/bundler-webpack': 4.3.24(type-fest@0.21.3)(typescript@5.3.3)(webpack@5.95.0(@swc/core@1.9.3(@swc/helpers@0.5.1)))
@@ -18928,9 +18690,9 @@ snapshots:
- webpack-hot-middleware
- webpack-plugin-serve
- father@4.5.0(@babel/core@7.25.2)(@types/node@22.7.3)(styled-components@6.1.13(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(type-fest@0.21.3)(webpack@5.95.0):
+ father@4.5.0(@babel/core@7.25.2)(@types/node@22.9.3)(styled-components@6.1.13(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(type-fest@0.21.3)(webpack@5.95.0):
dependencies:
- '@microsoft/api-extractor': 7.39.1(@types/node@22.7.3)
+ '@microsoft/api-extractor': 7.39.1(@types/node@22.9.3)
'@umijs/babel-preset-umi': 4.3.24
'@umijs/bundler-utils': 4.3.24
'@umijs/bundler-webpack': 4.3.24(type-fest@0.21.3)(typescript@5.3.3)(webpack@5.95.0)
@@ -18974,6 +18736,10 @@ snapshots:
dependencies:
bser: 2.1.1
+ fdir@6.4.2(picomatch@4.0.2):
+ optionalDependencies:
+ picomatch: 4.0.2
+
fetch-blob@3.2.0:
dependencies:
node-domexception: 1.0.0
@@ -18983,6 +18749,8 @@ snapshots:
dependencies:
tough-cookie: 4.1.4
+ fflate@0.8.2: {}
+
figures@2.0.0:
dependencies:
escape-string-regexp: 1.0.5
@@ -19007,10 +18775,6 @@ snapshots:
file-uri-to-path@1.0.0: {}
- filelist@1.0.4:
- dependencies:
- minimatch: 5.1.6
-
filesize@3.6.1: {}
fill-range@7.1.1:
@@ -19145,6 +18909,7 @@ snapshots:
asynckit: 0.4.0
combined-stream: 1.0.8
mime-types: 2.1.35
+ optional: true
format@0.2.2: {}
@@ -19234,8 +18999,6 @@ snapshots:
get-east-asian-width@1.2.0: {}
- get-func-name@2.0.2: {}
-
get-intrinsic@1.2.4:
dependencies:
es-errors: 1.3.0
@@ -19375,6 +19138,8 @@ snapshots:
globjoin@0.1.4: {}
+ globrex@0.1.2: {}
+
gopd@1.0.1:
dependencies:
get-intrinsic: 1.2.4
@@ -19408,6 +19173,12 @@ snapshots:
handle-thing@2.0.1: {}
+ happy-dom@15.11.6:
+ dependencies:
+ entities: 4.5.0
+ webidl-conversions: 7.0.0
+ whatwg-mimetype: 3.0.0
+
hard-rejection@2.1.0: {}
harmony-reflect@1.6.2: {}
@@ -19624,13 +19395,10 @@ snapshots:
htm@3.1.1: {}
- html-encoding-sniffer@3.0.0:
- dependencies:
- whatwg-encoding: 2.0.0
-
html-encoding-sniffer@4.0.0:
dependencies:
whatwg-encoding: 3.1.1
+ optional: true
html-entities@2.5.2: {}
@@ -19723,20 +19491,13 @@ snapshots:
transitivePeerDependencies:
- supports-color
- http-proxy-agent@5.0.0:
- dependencies:
- '@tootallnate/once': 2.0.0
- agent-base: 6.0.2
- debug: 4.3.7
- transitivePeerDependencies:
- - supports-color
-
http-proxy-agent@7.0.2:
dependencies:
agent-base: 7.1.1
debug: 4.3.7
transitivePeerDependencies:
- supports-color
+ optional: true
https-browserify@1.0.0: {}
@@ -19747,19 +19508,13 @@ snapshots:
transitivePeerDependencies:
- supports-color
- https-proxy-agent@5.0.1:
- dependencies:
- agent-base: 6.0.2
- debug: 4.3.7
- transitivePeerDependencies:
- - supports-color
-
https-proxy-agent@7.0.5:
dependencies:
agent-base: 7.1.1
debug: 4.3.7
transitivePeerDependencies:
- supports-color
+ optional: true
human-id@1.0.2: {}
@@ -19829,6 +19584,7 @@ snapshots:
dependencies:
pkg-dir: 4.2.0
resolve-cwd: 3.0.0
+ optional: true
imurmurhash@0.1.4: {}
@@ -20005,7 +19761,8 @@ snapshots:
dependencies:
get-east-asian-width: 1.2.0
- is-generator-fn@2.1.0: {}
+ is-generator-fn@2.1.0:
+ optional: true
is-generator-function@1.0.10:
dependencies:
@@ -20061,7 +19818,8 @@ snapshots:
is-plain-object@5.0.0: {}
- is-potential-custom-element-name@1.0.1: {}
+ is-potential-custom-element-name@1.0.1:
+ optional: true
is-redirect@1.0.0: {}
@@ -20170,6 +19928,7 @@ snapshots:
semver: 7.6.3
transitivePeerDependencies:
- supports-color
+ optional: true
istanbul-lib-report@3.0.1:
dependencies:
@@ -20184,6 +19943,7 @@ snapshots:
source-map: 0.6.1
transitivePeerDependencies:
- supports-color
+ optional: true
istanbul-lib-source-maps@5.0.6:
dependencies:
@@ -20220,25 +19980,14 @@ snapshots:
optionalDependencies:
'@pkgjs/parseargs': 0.11.0
- jake@10.9.2:
- dependencies:
- async: 3.2.6
- chalk: 4.1.2
- filelist: 1.0.4
- minimatch: 3.1.2
-
javascript-stringify@2.1.0: {}
- jest-canvas-mock@2.5.2:
- dependencies:
- cssfontparser: 1.2.1
- moo-color: 1.0.3
-
jest-changed-files@29.7.0:
dependencies:
execa: 5.1.1
jest-util: 29.7.0
p-limit: 3.1.0
+ optional: true
jest-circus@29.7.0(babel-plugin-macros@3.1.0):
dependencies:
@@ -20246,7 +19995,7 @@ snapshots:
'@jest/expect': 29.7.0
'@jest/test-result': 29.7.0
'@jest/types': 29.6.3
- '@types/node': 22.7.3
+ '@types/node': 22.9.3
chalk: 4.1.2
co: 4.6.0
dedent: 1.5.3(babel-plugin-macros@3.1.0)
@@ -20265,17 +20014,18 @@ snapshots:
transitivePeerDependencies:
- babel-plugin-macros
- supports-color
+ optional: true
- jest-cli@29.7.0(@types/node@22.7.3)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.9.3(@swc/helpers@0.5.1))(@types/node@22.7.3)(typescript@5.6.2)):
+ jest-cli@29.7.0(@types/node@22.9.3)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.9.3(@swc/helpers@0.5.1))(@types/node@22.9.3)(typescript@5.6.2)):
dependencies:
- '@jest/core': 29.7.0(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.9.3(@swc/helpers@0.5.1))(@types/node@22.7.3)(typescript@5.6.2))
+ '@jest/core': 29.7.0(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.9.3(@swc/helpers@0.5.1))(@types/node@22.9.3)(typescript@5.6.2))
'@jest/test-result': 29.7.0
'@jest/types': 29.6.3
chalk: 4.1.2
- create-jest: 29.7.0(@types/node@22.7.3)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.9.3(@swc/helpers@0.5.1))(@types/node@22.7.3)(typescript@5.6.2))
+ create-jest: 29.7.0(@types/node@22.9.3)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.9.3(@swc/helpers@0.5.1))(@types/node@22.9.3)(typescript@5.6.2))
exit: 0.1.2
import-local: 3.2.0
- jest-config: 29.7.0(@types/node@22.7.3)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.9.3(@swc/helpers@0.5.1))(@types/node@22.7.3)(typescript@5.6.2))
+ jest-config: 29.7.0(@types/node@22.9.3)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.9.3(@swc/helpers@0.5.1))(@types/node@22.9.3)(typescript@5.6.2))
jest-util: 29.7.0
jest-validate: 29.7.0
yargs: 17.7.2
@@ -20284,8 +20034,9 @@ snapshots:
- babel-plugin-macros
- supports-color
- ts-node
+ optional: true
- jest-config@29.7.0(@types/node@22.7.3)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.9.3(@swc/helpers@0.5.1))(@types/node@22.7.3)(typescript@5.6.2)):
+ jest-config@29.7.0(@types/node@22.9.3)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.9.3(@swc/helpers@0.5.1))(@types/node@22.9.3)(typescript@5.6.2)):
dependencies:
'@babel/core': 7.25.2
'@jest/test-sequencer': 29.7.0
@@ -20310,11 +20061,12 @@ snapshots:
slash: 3.0.0
strip-json-comments: 3.1.1
optionalDependencies:
- '@types/node': 22.7.3
- ts-node: 10.9.2(@swc/core@1.9.3(@swc/helpers@0.5.1))(@types/node@22.7.3)(typescript@5.6.2)
+ '@types/node': 22.9.3
+ ts-node: 10.9.2(@swc/core@1.9.3(@swc/helpers@0.5.1))(@types/node@22.9.3)(typescript@5.6.2)
transitivePeerDependencies:
- babel-plugin-macros
- supports-color
+ optional: true
jest-diff@29.7.0:
dependencies:
@@ -20322,10 +20074,12 @@ snapshots:
diff-sequences: 29.6.3
jest-get-type: 29.6.3
pretty-format: 29.7.0
+ optional: true
jest-docblock@29.7.0:
dependencies:
detect-newline: 3.1.0
+ optional: true
jest-each@29.7.0:
dependencies:
@@ -20334,38 +20088,26 @@ snapshots:
jest-get-type: 29.6.3
jest-util: 29.7.0
pretty-format: 29.7.0
-
- jest-environment-jsdom@29.7.0:
- dependencies:
- '@jest/environment': 29.7.0
- '@jest/fake-timers': 29.7.0
- '@jest/types': 29.6.3
- '@types/jsdom': 20.0.1
- '@types/node': 22.7.3
- jest-mock: 29.7.0
- jest-util: 29.7.0
- jsdom: 20.0.3
- transitivePeerDependencies:
- - bufferutil
- - supports-color
- - utf-8-validate
+ optional: true
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': 22.7.3
+ '@types/node': 22.9.3
jest-mock: 29.7.0
jest-util: 29.7.0
+ optional: true
- jest-get-type@29.6.3: {}
+ jest-get-type@29.6.3:
+ optional: true
jest-haste-map@29.7.0:
dependencies:
'@jest/types': 29.6.3
'@types/graceful-fs': 4.1.9
- '@types/node': 22.7.3
+ '@types/node': 22.9.3
anymatch: 3.1.3
fb-watchman: 2.0.2
graceful-fs: 4.2.11
@@ -20377,17 +20119,11 @@ snapshots:
optionalDependencies:
fsevents: 2.3.3
- jest-junit@16.0.0:
- dependencies:
- mkdirp: 1.0.4
- strip-ansi: 6.0.1
- uuid: 8.3.2
- xml: 1.0.1
-
jest-leak-detector@29.7.0:
dependencies:
jest-get-type: 29.6.3
pretty-format: 29.7.0
+ optional: true
jest-matcher-utils@29.7.0:
dependencies:
@@ -20395,6 +20131,7 @@ snapshots:
jest-diff: 29.7.0
jest-get-type: 29.6.3
pretty-format: 29.7.0
+ optional: true
jest-message-util@29.7.0:
dependencies:
@@ -20407,16 +20144,19 @@ snapshots:
pretty-format: 29.7.0
slash: 3.0.0
stack-utils: 2.0.6
+ optional: true
jest-mock@29.7.0:
dependencies:
'@jest/types': 29.6.3
- '@types/node': 22.7.3
+ '@types/node': 22.9.3
jest-util: 29.7.0
+ optional: true
jest-pnp-resolver@1.2.3(jest-resolve@29.7.0):
optionalDependencies:
jest-resolve: 29.7.0
+ optional: true
jest-regex-util@29.6.3: {}
@@ -20426,6 +20166,7 @@ snapshots:
jest-snapshot: 29.7.0
transitivePeerDependencies:
- supports-color
+ optional: true
jest-resolve@29.7.0:
dependencies:
@@ -20438,6 +20179,7 @@ snapshots:
resolve: 1.22.8
resolve.exports: 2.0.2
slash: 3.0.0
+ optional: true
jest-runner@29.7.0:
dependencies:
@@ -20446,7 +20188,7 @@ snapshots:
'@jest/test-result': 29.7.0
'@jest/transform': 29.7.0
'@jest/types': 29.6.3
- '@types/node': 22.7.3
+ '@types/node': 22.9.3
chalk: 4.1.2
emittery: 0.13.1
graceful-fs: 4.2.11
@@ -20464,6 +20206,7 @@ snapshots:
source-map-support: 0.5.13
transitivePeerDependencies:
- supports-color
+ optional: true
jest-runtime@29.7.0:
dependencies:
@@ -20474,7 +20217,7 @@ snapshots:
'@jest/test-result': 29.7.0
'@jest/transform': 29.7.0
'@jest/types': 29.6.3
- '@types/node': 22.7.3
+ '@types/node': 22.9.3
chalk: 4.1.2
cjs-module-lexer: 1.4.1
collect-v8-coverage: 1.0.2
@@ -20491,6 +20234,7 @@ snapshots:
strip-bom: 4.0.0
transitivePeerDependencies:
- supports-color
+ optional: true
jest-snapshot@29.7.0:
dependencies:
@@ -20516,13 +20260,12 @@ snapshots:
semver: 7.6.3
transitivePeerDependencies:
- supports-color
-
- jest-transform-stub@2.0.0: {}
+ optional: true
jest-util@29.7.0:
dependencies:
'@jest/types': 29.6.3
- '@types/node': 22.7.3
+ '@types/node': 22.9.3
chalk: 4.1.2
ci-info: 3.9.0
graceful-fs: 4.2.11
@@ -20536,49 +20279,52 @@ snapshots:
jest-get-type: 29.6.3
leven: 3.1.0
pretty-format: 29.7.0
+ optional: true
jest-watcher@29.7.0:
dependencies:
'@jest/test-result': 29.7.0
'@jest/types': 29.6.3
- '@types/node': 22.7.3
+ '@types/node': 22.9.3
ansi-escapes: 4.3.2
chalk: 4.1.2
emittery: 0.13.1
jest-util: 29.7.0
string-length: 4.0.2
+ optional: true
jest-worker@27.5.1:
dependencies:
- '@types/node': 22.7.3
+ '@types/node': 22.9.3
merge-stream: 2.0.0
supports-color: 8.1.1
jest-worker@29.4.3:
dependencies:
- '@types/node': 22.7.3
+ '@types/node': 22.9.3
jest-util: 29.7.0
merge-stream: 2.0.0
supports-color: 8.1.1
jest-worker@29.7.0:
dependencies:
- '@types/node': 22.7.3
+ '@types/node': 22.9.3
jest-util: 29.7.0
merge-stream: 2.0.0
supports-color: 8.1.1
- jest@29.7.0(@types/node@22.7.3)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.9.3(@swc/helpers@0.5.1))(@types/node@22.7.3)(typescript@5.6.2)):
+ jest@29.7.0(@types/node@22.9.3)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.9.3(@swc/helpers@0.5.1))(@types/node@22.9.3)(typescript@5.6.2)):
dependencies:
- '@jest/core': 29.7.0(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.9.3(@swc/helpers@0.5.1))(@types/node@22.7.3)(typescript@5.6.2))
+ '@jest/core': 29.7.0(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.9.3(@swc/helpers@0.5.1))(@types/node@22.9.3)(typescript@5.6.2))
'@jest/types': 29.6.3
import-local: 3.2.0
- jest-cli: 29.7.0(@types/node@22.7.3)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.9.3(@swc/helpers@0.5.1))(@types/node@22.7.3)(typescript@5.6.2))
+ jest-cli: 29.7.0(@types/node@22.9.3)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.9.3(@swc/helpers@0.5.1))(@types/node@22.9.3)(typescript@5.6.2))
transitivePeerDependencies:
- '@types/node'
- babel-plugin-macros
- supports-color
- ts-node
+ optional: true
jju@1.4.0: {}
@@ -20590,8 +20336,6 @@ snapshots:
js-tokens@4.0.0: {}
- js-tokens@9.0.0: {}
-
js-yaml@3.14.1:
dependencies:
argparse: 1.0.10
@@ -20601,39 +20345,6 @@ snapshots:
dependencies:
argparse: 2.0.1
- jsdom@20.0.3:
- dependencies:
- abab: 2.0.6
- acorn: 8.12.1
- acorn-globals: 7.0.1
- cssom: 0.5.0
- cssstyle: 2.3.0
- data-urls: 3.0.2
- decimal.js: 10.4.3
- domexception: 4.0.0
- escodegen: 2.1.0
- form-data: 4.0.0
- html-encoding-sniffer: 3.0.0
- http-proxy-agent: 5.0.0
- https-proxy-agent: 5.0.1
- is-potential-custom-element-name: 1.0.1
- nwsapi: 2.2.12
- parse5: 7.1.2
- saxes: 6.0.0
- symbol-tree: 3.2.4
- tough-cookie: 4.1.4
- w3c-xmlserializer: 4.0.0
- webidl-conversions: 7.0.0
- whatwg-encoding: 2.0.0
- whatwg-mimetype: 3.0.0
- whatwg-url: 11.0.0
- ws: 8.18.0
- xml-name-validator: 4.0.0
- transitivePeerDependencies:
- - bufferutil
- - supports-color
- - utf-8-validate
-
jsdom@23.2.0:
dependencies:
'@asamuzakjp/dom-selector': 2.0.2
@@ -20661,6 +20372,7 @@ snapshots:
- bufferutil
- supports-color
- utf-8-validate
+ optional: true
jsesc@0.5.0: {}
@@ -20688,8 +20400,6 @@ snapshots:
json5@2.2.3: {}
- jsonc-parser@3.3.1: {}
-
jsonfile@3.0.1:
optionalDependencies:
graceful-fs: 4.2.11
@@ -20729,7 +20439,8 @@ snapshots:
kind-of@6.0.3: {}
- kleur@3.0.3: {}
+ kleur@3.0.3:
+ optional: true
kleur@4.1.5: {}
@@ -20777,7 +20488,8 @@ snapshots:
needle: 3.3.1
source-map: 0.6.1
- leven@3.1.0: {}
+ leven@3.1.0:
+ optional: true
levn@0.4.1:
dependencies:
@@ -20865,11 +20577,6 @@ snapshots:
local-pkg@0.4.3: {}
- local-pkg@0.5.0:
- dependencies:
- mlly: 1.7.1
- pkg-types: 1.2.0
-
locate-path@3.0.0:
dependencies:
p-locate: 3.0.0
@@ -20891,8 +20598,6 @@ snapshots:
lodash.isequal@4.5.0: {}
- lodash.memoize@4.1.2: {}
-
lodash.merge@4.6.2: {}
lodash.startcase@4.4.0: {}
@@ -20925,9 +20630,7 @@ snapshots:
lottie-web@5.9.6: {}
- loupe@2.3.7:
- dependencies:
- get-func-name: 2.0.2
+ loupe@3.1.2: {}
lower-case@2.0.2:
dependencies:
@@ -20954,7 +20657,7 @@ snapshots:
lz-string@1.5.0: {}
- magic-string@0.30.11:
+ magic-string@0.30.13:
dependencies:
'@jridgewell/sourcemap-codec': 1.5.0
@@ -20978,7 +20681,8 @@ snapshots:
dependencies:
semver: 7.6.3
- make-error@1.3.6: {}
+ make-error@1.3.6:
+ optional: true
make-fetch-happen@2.6.0:
dependencies:
@@ -21159,7 +20863,8 @@ snapshots:
mdn-data@2.0.14: {}
- mdn-data@2.0.30: {}
+ mdn-data@2.0.30:
+ optional: true
mdn-data@2.0.4: {}
@@ -21440,10 +21145,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
@@ -21488,21 +21189,8 @@ snapshots:
dependencies:
minimist: 1.2.8
- mkdirp@1.0.4: {}
-
- mlly@1.7.1:
- dependencies:
- acorn: 8.12.1
- pathe: 1.1.2
- pkg-types: 1.2.0
- ufo: 1.5.4
-
moment@2.30.1: {}
- moo-color@1.0.3:
- dependencies:
- color-name: 1.1.4
-
move-concurrently@1.0.1:
dependencies:
aproba: 1.2.0
@@ -21514,6 +21202,8 @@ snapshots:
mri@1.2.0: {}
+ mrmime@2.0.0: {}
+
ms@2.0.0: {}
ms@2.1.3: {}
@@ -21703,8 +21393,6 @@ snapshots:
dependencies:
boolbase: 1.0.0
- nwsapi@2.2.12: {}
-
object-assign@4.1.1: {}
object-inspect@1.13.2: {}
@@ -21869,10 +21557,6 @@ snapshots:
dependencies:
yocto-queue: 0.1.0
- p-limit@5.0.0:
- dependencies:
- yocto-queue: 1.1.1
-
p-locate@3.0.0:
dependencies:
p-limit: 2.3.0
@@ -22036,7 +21720,7 @@ snapshots:
pathe@1.1.2: {}
- pathval@1.1.1: {}
+ pathval@2.0.0: {}
pbkdf2@3.1.2:
dependencies:
@@ -22052,6 +21736,8 @@ snapshots:
picomatch@2.3.1: {}
+ picomatch@4.0.2: {}
+
pidtree@0.6.0: {}
pify@3.0.0: {}
@@ -22088,12 +21774,7 @@ snapshots:
pkg-dir@4.2.0:
dependencies:
find-up: 4.1.0
-
- pkg-types@1.2.0:
- dependencies:
- confbox: 0.1.7
- mlly: 1.7.1
- pathe: 1.1.2
+ optional: true
pkg-up@3.1.0:
dependencies:
@@ -22396,6 +22077,7 @@ snapshots:
'@jest/schemas': 29.6.3
ansi-styles: 5.2.0
react-is: 18.3.1
+ optional: true
prism-react-renderer@1.3.5(react@18.3.1):
dependencies:
@@ -22426,6 +22108,7 @@ snapshots:
dependencies:
kleur: 3.0.3
sisteransi: 1.0.5
+ optional: true
prop-types@15.8.1:
dependencies:
@@ -22482,7 +22165,8 @@ snapshots:
punycode@2.3.1: {}
- pure-rand@6.1.0: {}
+ pure-rand@6.1.0:
+ optional: true
q@1.5.1: {}
@@ -23322,19 +23006,6 @@ snapshots:
history: 5.3.0
react: 18.3.1
- react-shallow-renderer@16.15.0(react@18.3.1):
- dependencies:
- object-assign: 4.1.1
- react: 18.3.1
- react-is: 18.3.1
-
- react-test-renderer@18.3.1(react@18.3.1):
- dependencies:
- react: 18.3.1
- react-is: 18.3.1
- react-shallow-renderer: 16.15.0(react@18.3.1)
- scheduler: 0.23.2
-
react-universal-interface@0.6.2(react@18.3.1)(tslib@2.7.0):
dependencies:
react: 18.3.1
@@ -23593,6 +23264,7 @@ snapshots:
resolve-cwd@3.0.0:
dependencies:
resolve-from: 5.0.0
+ optional: true
resolve-dir@0.1.1:
dependencies:
@@ -23605,7 +23277,8 @@ snapshots:
resolve-pkg-maps@1.0.0: {}
- resolve.exports@2.0.2: {}
+ resolve.exports@2.0.2:
+ optional: true
resolve@1.19.0:
dependencies:
@@ -23698,9 +23371,11 @@ snapshots:
'@rollup/rollup-win32-x64-msvc': 4.22.4
fsevents: 2.3.3
- rrweb-cssom@0.6.0: {}
+ rrweb-cssom@0.6.0:
+ optional: true
- rrweb-cssom@0.7.1: {}
+ rrweb-cssom@0.7.1:
+ optional: true
rtl-css-js@1.16.1:
dependencies:
@@ -23764,6 +23439,7 @@ snapshots:
saxes@6.0.0:
dependencies:
xmlchars: 2.2.0
+ optional: true
scheduler@0.23.2:
dependencies:
@@ -23911,7 +23587,14 @@ snapshots:
dependencies:
is-arrayish: 0.3.2
- sisteransi@1.0.5: {}
+ sirv@3.0.0:
+ dependencies:
+ '@polka/url': 1.0.0-next.28
+ mrmime: 2.0.0
+ totalist: 3.0.1
+
+ sisteransi@1.0.5:
+ optional: true
sitemap@7.1.2:
dependencies:
@@ -23996,6 +23679,7 @@ snapshots:
dependencies:
buffer-from: 1.1.2
source-map: 0.6.1
+ optional: true
source-map-support@0.5.21:
dependencies:
@@ -24077,6 +23761,7 @@ snapshots:
stack-utils@2.0.6:
dependencies:
escape-string-regexp: 2.0.0
+ optional: true
stackback@0.0.2: {}
@@ -24099,7 +23784,7 @@ snapshots:
statuses@2.0.1: {}
- std-env@3.7.0: {}
+ std-env@3.8.0: {}
stop-iteration-iterator@1.0.0:
dependencies:
@@ -24142,6 +23827,7 @@ snapshots:
dependencies:
char-regex: 1.0.2
strip-ansi: 6.0.1
+ optional: true
string-width@2.1.1:
dependencies:
@@ -24242,7 +23928,8 @@ snapshots:
strip-bom@3.0.0: {}
- strip-bom@4.0.0: {}
+ strip-bom@4.0.0:
+ optional: true
strip-eof@1.0.0: {}
@@ -24258,10 +23945,6 @@ snapshots:
strip-json-comments@3.1.1: {}
- strip-literal@2.1.0:
- dependencies:
- js-tokens: 9.0.0
-
strnum@1.0.5: {}
style-search@0.1.0: {}
@@ -24416,7 +24099,8 @@ snapshots:
symbol-observable@4.0.0: {}
- symbol-tree@3.2.4: {}
+ symbol-tree@3.2.4:
+ optional: true
synckit@0.8.5:
dependencies:
@@ -24496,6 +24180,12 @@ snapshots:
glob: 7.2.3
minimatch: 3.1.2
+ test-exclude@7.0.1:
+ dependencies:
+ '@istanbuljs/schema': 0.1.3
+ glob: 10.4.5
+ minimatch: 9.0.5
+
text-table@0.2.0: {}
textextensions@2.6.0: {}
@@ -24528,9 +24218,18 @@ snapshots:
tinybench@2.9.0: {}
- tinypool@0.8.4: {}
+ tinyexec@0.3.1: {}
+
+ tinyglobby@0.2.10:
+ dependencies:
+ fdir: 6.4.2(picomatch@4.0.2)
+ picomatch: 4.0.2
+
+ tinypool@1.0.2: {}
+
+ tinyrainbow@1.2.0: {}
- tinyspy@2.2.1: {}
+ tinyspy@3.0.2: {}
titleize@3.0.0: {}
@@ -24554,6 +24253,8 @@ snapshots:
toidentifier@1.0.1: {}
+ totalist@3.0.1: {}
+
tough-cookie@4.1.4:
dependencies:
psl: 1.9.0
@@ -24563,13 +24264,10 @@ snapshots:
tr46@0.0.3: {}
- tr46@3.0.0:
- dependencies:
- punycode: 2.3.1
-
tr46@5.0.0:
dependencies:
punycode: 2.3.1
+ optional: true
transformation-matrix@2.16.1: {}
@@ -24593,33 +24291,14 @@ snapshots:
dependencies:
tslib: 2.7.0
- ts-jest@29.2.5(@babel/core@7.25.2)(@jest/transform@29.7.0)(@jest/types@29.6.3)(babel-jest@29.7.0(@babel/core@7.25.2))(jest@29.7.0(@types/node@22.7.3)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.9.3(@swc/helpers@0.5.1))(@types/node@22.7.3)(typescript@5.6.2)))(typescript@5.6.2):
- dependencies:
- bs-logger: 0.2.6
- ejs: 3.1.10
- fast-json-stable-stringify: 2.1.0
- jest: 29.7.0(@types/node@22.7.3)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.9.3(@swc/helpers@0.5.1))(@types/node@22.7.3)(typescript@5.6.2))
- 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.6.2
- yargs-parser: 21.1.1
- optionalDependencies:
- '@babel/core': 7.25.2
- '@jest/transform': 29.7.0
- '@jest/types': 29.6.3
- babel-jest: 29.7.0(@babel/core@7.25.2)
-
- ts-node@10.9.2(@swc/core@1.9.3(@swc/helpers@0.5.1))(@types/node@22.7.3)(typescript@5.6.2):
+ ts-node@10.9.2(@swc/core@1.9.3(@swc/helpers@0.5.1))(@types/node@22.9.3)(typescript@5.6.2):
dependencies:
'@cspotcode/source-map-support': 0.8.1
'@tsconfig/node10': 1.0.11
'@tsconfig/node12': 1.0.11
'@tsconfig/node14': 1.0.3
'@tsconfig/node16': 1.0.4
- '@types/node': 22.7.3
+ '@types/node': 22.9.3
acorn: 8.12.1
acorn-walk: 8.3.4
arg: 4.1.3
@@ -24631,9 +24310,14 @@ snapshots:
yn: 3.1.1
optionalDependencies:
'@swc/core': 1.9.3(@swc/helpers@0.5.1)
+ optional: true
ts-toolbelt@9.6.0: {}
+ tsconfck@3.1.4(typescript@5.6.2):
+ optionalDependencies:
+ typescript: 5.6.2
+
tsconfig-paths@4.0.0:
dependencies:
json5: 2.2.3
@@ -24665,15 +24349,15 @@ snapshots:
dependencies:
prelude-ls: 1.2.1
- type-detect@4.0.8: {}
-
- type-detect@4.1.0: {}
+ type-detect@4.0.8:
+ optional: true
type-fest@0.18.1: {}
type-fest@0.20.2: {}
- type-fest@0.21.3: {}
+ type-fest@0.21.3:
+ optional: true
type-fest@0.6.0: {}
@@ -24731,16 +24415,14 @@ snapshots:
typescript@5.6.2: {}
- ufo@1.5.4: {}
-
- umi@4.3.24(@babel/core@7.25.2)(@types/node@22.7.3)(@types/react@18.3.9)(eslint@8.57.1)(jest@29.7.0(@types/node@22.7.3)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.9.3(@swc/helpers@0.5.1))(@types/node@22.7.3)(typescript@5.6.2)))(lightningcss@1.22.1)(prettier@3.3.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(rollup@3.29.5)(sass@1.79.3)(stylelint@14.16.1)(terser@5.34.0)(type-fest@0.21.3)(typescript@5.6.2)(webpack@5.95.0(@swc/core@1.9.3(@swc/helpers@0.5.1))):
+ umi@4.3.24(@babel/core@7.25.2)(@types/node@22.9.3)(@types/react@18.3.9)(eslint@8.57.1)(jest@29.7.0(@types/node@22.9.3)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.9.3(@swc/helpers@0.5.1))(@types/node@22.9.3)(typescript@5.6.2)))(lightningcss@1.22.1)(prettier@3.3.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(rollup@3.29.5)(sass@1.79.3)(stylelint@14.16.1)(terser@5.34.0)(type-fest@0.21.3)(typescript@5.6.2)(webpack@5.95.0(@swc/core@1.9.3(@swc/helpers@0.5.1))):
dependencies:
'@babel/runtime': 7.23.6
'@umijs/bundler-utils': 4.3.24
'@umijs/bundler-webpack': 4.3.24(type-fest@0.21.3)(typescript@5.6.2)(webpack@5.95.0(@swc/core@1.9.3(@swc/helpers@0.5.1)))
'@umijs/core': 4.3.24
- '@umijs/lint': 4.3.24(eslint@8.57.1)(jest@29.7.0(@types/node@22.7.3)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.9.3(@swc/helpers@0.5.1))(@types/node@22.7.3)(typescript@5.6.2)))(stylelint@14.16.1)(typescript@5.6.2)
- '@umijs/preset-umi': 4.3.24(@types/node@22.7.3)(@types/react@18.3.9)(lightningcss@1.22.1)(rollup@3.29.5)(sass@1.79.3)(terser@5.34.0)(type-fest@0.21.3)(typescript@5.6.2)(webpack@5.95.0(@swc/core@1.9.3(@swc/helpers@0.5.1)))
+ '@umijs/lint': 4.3.24(eslint@8.57.1)(jest@29.7.0(@types/node@22.9.3)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@swc/core@1.9.3(@swc/helpers@0.5.1))(@types/node@22.9.3)(typescript@5.6.2)))(stylelint@14.16.1)(typescript@5.6.2)
+ '@umijs/preset-umi': 4.3.24(@types/node@22.9.3)(@types/react@18.3.9)(lightningcss@1.22.1)(rollup@3.29.5)(sass@1.79.3)(terser@5.34.0)(type-fest@0.21.3)(typescript@5.6.2)(webpack@5.95.0(@swc/core@1.9.3(@swc/helpers@0.5.1)))
'@umijs/renderer-react': 4.3.24(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
'@umijs/server': 4.3.24
'@umijs/test': 4.3.24(@babel/core@7.25.2)
@@ -24980,7 +24662,8 @@ snapshots:
kleur: 4.1.5
sade: 1.8.1
- v8-compile-cache-lib@3.0.1: {}
+ v8-compile-cache-lib@3.0.1:
+ optional: true
v8-compile-cache@2.3.0: {}
@@ -24991,6 +24674,7 @@ snapshots:
'@jridgewell/trace-mapping': 0.3.25
'@types/istanbul-lib-coverage': 2.0.6
convert-source-map: 2.0.0
+ optional: true
validate-npm-package-license@3.0.4:
dependencies:
@@ -25029,13 +24713,13 @@ snapshots:
unist-util-stringify-position: 3.0.3
vfile-message: 3.1.4
- vite-node@1.6.0(@types/node@22.7.3)(less@4.2.0)(lightningcss@1.22.1)(sass@1.79.3)(terser@5.34.0):
+ vite-node@2.1.5(@types/node@22.9.3)(less@4.2.0)(lightningcss@1.22.1)(sass@1.79.3)(terser@5.34.0):
dependencies:
cac: 6.7.14
debug: 4.3.7
+ es-module-lexer: 1.5.4
pathe: 1.1.2
- picocolors: 1.1.0
- vite: 5.4.8(@types/node@22.7.3)(less@4.2.0)(lightningcss@1.22.1)(sass@1.79.3)(terser@5.34.0)
+ vite: 5.4.8(@types/node@22.9.3)(less@4.2.0)(lightningcss@1.22.1)(sass@1.79.3)(terser@5.34.0)
transitivePeerDependencies:
- '@types/node'
- less
@@ -25047,60 +24731,74 @@ snapshots:
- supports-color
- terser
- vite@4.5.2(@types/node@22.7.3)(less@4.1.3)(lightningcss@1.22.1)(sass@1.79.3)(terser@5.34.0):
+ vite-tsconfig-paths@5.1.3(typescript@5.6.2)(vite@5.4.8(@types/node@22.9.3)(less@4.2.0)(lightningcss@1.22.1)(sass@1.79.3)(terser@5.34.0)):
+ dependencies:
+ debug: 4.3.7
+ globrex: 0.1.2
+ tsconfck: 3.1.4(typescript@5.6.2)
+ optionalDependencies:
+ vite: 5.4.8(@types/node@22.9.3)(less@4.2.0)(lightningcss@1.22.1)(sass@1.79.3)(terser@5.34.0)
+ transitivePeerDependencies:
+ - supports-color
+ - typescript
+
+ vite@4.5.2(@types/node@22.9.3)(less@4.1.3)(lightningcss@1.22.1)(sass@1.79.3)(terser@5.34.0):
dependencies:
esbuild: 0.18.20
postcss: 8.4.47
rollup: 3.29.5
optionalDependencies:
- '@types/node': 22.7.3
+ '@types/node': 22.9.3
fsevents: 2.3.3
less: 4.1.3
lightningcss: 1.22.1
sass: 1.79.3
terser: 5.34.0
- vite@5.4.8(@types/node@22.7.3)(less@4.2.0)(lightningcss@1.22.1)(sass@1.79.3)(terser@5.34.0):
+ vite@5.4.8(@types/node@22.9.3)(less@4.2.0)(lightningcss@1.22.1)(sass@1.79.3)(terser@5.34.0):
dependencies:
esbuild: 0.21.5
postcss: 8.4.47
rollup: 4.22.4
optionalDependencies:
- '@types/node': 22.7.3
+ '@types/node': 22.9.3
fsevents: 2.3.3
less: 4.2.0
lightningcss: 1.22.1
sass: 1.79.3
terser: 5.34.0
- vitest@1.6.0(@types/node@22.7.3)(jsdom@23.2.0)(less@4.2.0)(lightningcss@1.22.1)(sass@1.79.3)(terser@5.34.0):
+ vitest@2.1.5(@types/node@22.9.3)(@vitest/ui@2.1.5)(happy-dom@15.11.6)(jsdom@23.2.0)(less@4.2.0)(lightningcss@1.22.1)(sass@1.79.3)(terser@5.34.0):
dependencies:
- '@vitest/expect': 1.6.0
- '@vitest/runner': 1.6.0
- '@vitest/snapshot': 1.6.0
- '@vitest/spy': 1.6.0
- '@vitest/utils': 1.6.0
- acorn-walk: 8.3.4
- chai: 4.5.0
+ '@vitest/expect': 2.1.5
+ '@vitest/mocker': 2.1.5(vite@5.4.8(@types/node@22.9.3)(less@4.2.0)(lightningcss@1.22.1)(sass@1.79.3)(terser@5.34.0))
+ '@vitest/pretty-format': 2.1.5
+ '@vitest/runner': 2.1.5
+ '@vitest/snapshot': 2.1.5
+ '@vitest/spy': 2.1.5
+ '@vitest/utils': 2.1.5
+ chai: 5.1.2
debug: 4.3.7
- execa: 8.0.1
- local-pkg: 0.5.0
- magic-string: 0.30.11
+ expect-type: 1.1.0
+ magic-string: 0.30.13
pathe: 1.1.2
- picocolors: 1.1.0
- std-env: 3.7.0
- strip-literal: 2.1.0
+ std-env: 3.8.0
tinybench: 2.9.0
- tinypool: 0.8.4
- vite: 5.4.8(@types/node@22.7.3)(less@4.2.0)(lightningcss@1.22.1)(sass@1.79.3)(terser@5.34.0)
- vite-node: 1.6.0(@types/node@22.7.3)(less@4.2.0)(lightningcss@1.22.1)(sass@1.79.3)(terser@5.34.0)
+ tinyexec: 0.3.1
+ tinypool: 1.0.2
+ tinyrainbow: 1.2.0
+ vite: 5.4.8(@types/node@22.9.3)(less@4.2.0)(lightningcss@1.22.1)(sass@1.79.3)(terser@5.34.0)
+ vite-node: 2.1.5(@types/node@22.9.3)(less@4.2.0)(lightningcss@1.22.1)(sass@1.79.3)(terser@5.34.0)
why-is-node-running: 2.3.0
optionalDependencies:
- '@types/node': 22.7.3
+ '@types/node': 22.9.3
+ '@vitest/ui': 2.1.5(vitest@2.1.5)
+ happy-dom: 15.11.6
jsdom: 23.2.0
transitivePeerDependencies:
- less
- lightningcss
+ - msw
- sass
- sass-embedded
- stylus
@@ -25112,13 +24810,10 @@ snapshots:
void-elements@3.1.0: {}
- w3c-xmlserializer@4.0.0:
- dependencies:
- xml-name-validator: 4.0.0
-
w3c-xmlserializer@5.0.0:
dependencies:
xml-name-validator: 5.0.0
+ optional: true
walker@1.0.8:
dependencies:
@@ -25208,29 +24903,23 @@ snapshots:
- esbuild
- uglify-js
- whatwg-encoding@2.0.0:
- dependencies:
- iconv-lite: 0.6.3
-
whatwg-encoding@3.1.1:
dependencies:
iconv-lite: 0.6.3
+ optional: true
whatwg-fetch@3.6.20: {}
whatwg-mimetype@3.0.0: {}
- whatwg-mimetype@4.0.0: {}
-
- whatwg-url@11.0.0:
- dependencies:
- tr46: 3.0.0
- webidl-conversions: 7.0.0
+ whatwg-mimetype@4.0.0:
+ optional: true
whatwg-url@14.0.0:
dependencies:
tr46: 5.0.0
webidl-conversions: 7.0.0
+ optional: true
whatwg-url@5.0.0:
dependencies:
@@ -25329,7 +25018,8 @@ snapshots:
ws@8.17.1: {}
- ws@8.18.0: {}
+ ws@8.18.0:
+ optional: true
xdg-basedir@3.0.0: {}
@@ -25337,18 +25027,16 @@ snapshots:
dependencies:
eventemitter3: 2.0.3
- xml-name-validator@4.0.0: {}
-
- xml-name-validator@5.0.0: {}
+ xml-name-validator@5.0.0:
+ optional: true
xml-reader@2.4.3:
dependencies:
eventemitter3: 2.0.3
xml-lexer: 0.2.2
- xml@1.0.1: {}
-
- xmlchars@2.2.0: {}
+ xmlchars@2.2.0:
+ optional: true
xmlhttprequest-ssl@2.1.1: {}
@@ -25390,12 +25078,11 @@ snapshots:
y18n: 5.0.8
yargs-parser: 21.1.1
- yn@3.1.1: {}
+ yn@3.1.1:
+ optional: true
yocto-queue@0.1.0: {}
- yocto-queue@1.1.1: {}
-
z-schema@5.0.5:
dependencies:
lodash.get: 4.4.2
diff --git a/pnpm-workspace.yaml b/pnpm-workspace.yaml
index 655e7c9e..6fca973f 100644
--- a/pnpm-workspace.yaml
+++ b/pnpm-workspace.yaml
@@ -1,3 +1,4 @@
+# https://github.com/vitest-dev/vscode/issues/110#issuecomment-1730788166
packages:
- 'packages/base'
- 'packages/starter'
@@ -5,3 +6,4 @@ packages:
- 'packages/react'
- 'packages/utils'
- 'packages/wallets/*'
+ - 'packages/tools'
\ No newline at end of file
diff --git a/tsconfig.base.json b/tsconfig.base.json
index ef8fe15d..a010a91b 100644
--- a/tsconfig.base.json
+++ b/tsconfig.base.json
@@ -3,7 +3,8 @@
"baseUrl": "./",
"target": "ESNext",
"module": "ESNext",
- "moduleResolution": "Node",
+ "moduleResolution": "node",
+ "downlevelIteration": true,
"jsx": "react-jsx",
"esModuleInterop": true,
"experimentalDecorators": true,
@@ -25,8 +26,10 @@
"@aelf-web-login/wallet-adapter-portkey-discover": [
"./packages/wallets/portkey-discover/src"
],
- "@aelf-web-login/wallet-adapter-night-elf": ["./packages/wallets/night-elf/src"]
+ "@aelf-web-login/wallet-adapter-night-elf": ["./packages/wallets/night-elf/src"],
+ "@aelf-web-login/tools": ["./packages/tools"],
+ "~/*": ["./*"]
},
- "types": ["node", "jest", "@testing-library/jest-dom"]
+ "types": ["node", "@testing-library/jest-dom", "vitest/globals"]
}
}