diff --git a/examples/with-next/components/App.tsx b/examples/with-next/components/App.tsx index 6630b87a..8b99ac5e 100644 --- a/examples/with-next/components/App.tsx +++ b/examples/with-next/components/App.tsx @@ -4,7 +4,6 @@ import { useWallet, SuiChainId, ErrorCode } from '@suiet/wallet-kit'; -import suietLogo from './assets/suiet-logo.svg'; import * as tweetnacl from 'tweetnacl'; import {fromB64, TransactionBlock} from "@mysten/sui.js"; @@ -83,7 +82,7 @@ function App() { Vite logo - Suiet logo + Suiet logo

Vite + Suiet Kit

diff --git a/examples/with-next/package-lock.json b/examples/with-next/package-lock.json index de4da5a6..b417e565 100644 --- a/examples/with-next/package-lock.json +++ b/examples/with-next/package-lock.json @@ -8,7 +8,7 @@ "name": "with-next", "version": "0.1.0", "dependencies": { - "@mysten/sui.js": "^0.31.0", + "@mysten/sui.js": "^0.32.1", "@suiet/wallet-kit": "^0.2.5", "@types/node": "18.11.11", "@types/react": "18.0.26", @@ -1944,9 +1944,9 @@ } }, "node_modules/@mysten/sui.js": { - "version": "0.31.0", - "resolved": "https://registry.npmjs.org/@mysten/sui.js/-/sui.js-0.31.0.tgz", - "integrity": "sha512-yDM1JaY3N5VY4lsM/9H1Etdo/Ha0d9OalXkQGK4QjV4VFGxSSzDBeAJpuT+zI72QuzhWqqCeLZogcmpfsUCSpA==", + "version": "0.32.1", + "resolved": "https://registry.npmjs.org/@mysten/sui.js/-/sui.js-0.32.1.tgz", + "integrity": "sha512-HD3D/3g//dx5e/1W42krEv4+Zl5PP0faH229jFOhnOktIRGxRrDfb6eU2+juclTug2e68JseTiX2QulIh+2/FQ==", "dependencies": { "@mysten/bcs": "0.7.0", "@noble/curves": "^0.9.0", @@ -1987,6 +1987,41 @@ "@wallet-standard/core": "1.0.3" } }, + "node_modules/@mysten/wallet-standard/node_modules/@mysten/sui.js": { + "version": "0.31.0", + "resolved": "https://registry.npmjs.org/@mysten/sui.js/-/sui.js-0.31.0.tgz", + "integrity": "sha512-yDM1JaY3N5VY4lsM/9H1Etdo/Ha0d9OalXkQGK4QjV4VFGxSSzDBeAJpuT+zI72QuzhWqqCeLZogcmpfsUCSpA==", + "dependencies": { + "@mysten/bcs": "0.7.0", + "@noble/curves": "^0.9.0", + "@noble/hashes": "^1.3.0", + "@scure/bip32": "^1.2.0", + "@scure/bip39": "^1.2.0", + "@suchipi/femver": "^1.0.0", + "jayson": "^4.0.0", + "msw": "^1.2.1", + "rpc-websockets": "^7.5.1", + "superstruct": "^1.0.3", + "tweetnacl": "^1.0.3" + }, + "engines": { + "node": ">=16" + } + }, + "node_modules/@mysten/wallet-standard/node_modules/@noble/curves": { + "version": "0.9.1", + "resolved": "https://registry.npmjs.org/@noble/curves/-/curves-0.9.1.tgz", + "integrity": "sha512-SpO5TViHvyBV8RrvGejzzl0+wbSm21q+hC6ZmK5NtqOjigR+WW9OohvKL0M3EHKvWzqaZ5Z7F46ejxAVDTBnvQ==", + "funding": [ + { + "type": "individual", + "url": "https://paulmillr.com/funding/" + } + ], + "dependencies": { + "@noble/hashes": "1.3.0" + } + }, "node_modules/@next/env": { "version": "13.0.6", "resolved": "https://registry.npmjs.org/@next/env/-/env-13.0.6.tgz", @@ -2573,6 +2608,41 @@ "cross-fetch": "3.x" } }, + "node_modules/@suiet/wallet-kit/node_modules/@mysten/sui.js": { + "version": "0.31.0", + "resolved": "https://registry.npmjs.org/@mysten/sui.js/-/sui.js-0.31.0.tgz", + "integrity": "sha512-yDM1JaY3N5VY4lsM/9H1Etdo/Ha0d9OalXkQGK4QjV4VFGxSSzDBeAJpuT+zI72QuzhWqqCeLZogcmpfsUCSpA==", + "dependencies": { + "@mysten/bcs": "0.7.0", + "@noble/curves": "^0.9.0", + "@noble/hashes": "^1.3.0", + "@scure/bip32": "^1.2.0", + "@scure/bip39": "^1.2.0", + "@suchipi/femver": "^1.0.0", + "jayson": "^4.0.0", + "msw": "^1.2.1", + "rpc-websockets": "^7.5.1", + "superstruct": "^1.0.3", + "tweetnacl": "^1.0.3" + }, + "engines": { + "node": ">=16" + } + }, + "node_modules/@suiet/wallet-kit/node_modules/@noble/curves": { + "version": "0.9.1", + "resolved": "https://registry.npmjs.org/@noble/curves/-/curves-0.9.1.tgz", + "integrity": "sha512-SpO5TViHvyBV8RrvGejzzl0+wbSm21q+hC6ZmK5NtqOjigR+WW9OohvKL0M3EHKvWzqaZ5Z7F46ejxAVDTBnvQ==", + "funding": [ + { + "type": "individual", + "url": "https://paulmillr.com/funding/" + } + ], + "dependencies": { + "@noble/hashes": "1.3.0" + } + }, "node_modules/@suiet/wallet-kit/node_modules/type-fest": { "version": "3.3.0", "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-3.3.0.tgz", @@ -2595,6 +2665,41 @@ "@mysten/sui.js": "0.31.0" } }, + "node_modules/@suiet/wallet-sdk/node_modules/@mysten/sui.js": { + "version": "0.31.0", + "resolved": "https://registry.npmjs.org/@mysten/sui.js/-/sui.js-0.31.0.tgz", + "integrity": "sha512-yDM1JaY3N5VY4lsM/9H1Etdo/Ha0d9OalXkQGK4QjV4VFGxSSzDBeAJpuT+zI72QuzhWqqCeLZogcmpfsUCSpA==", + "dependencies": { + "@mysten/bcs": "0.7.0", + "@noble/curves": "^0.9.0", + "@noble/hashes": "^1.3.0", + "@scure/bip32": "^1.2.0", + "@scure/bip39": "^1.2.0", + "@suchipi/femver": "^1.0.0", + "jayson": "^4.0.0", + "msw": "^1.2.1", + "rpc-websockets": "^7.5.1", + "superstruct": "^1.0.3", + "tweetnacl": "^1.0.3" + }, + "engines": { + "node": ">=16" + } + }, + "node_modules/@suiet/wallet-sdk/node_modules/@noble/curves": { + "version": "0.9.1", + "resolved": "https://registry.npmjs.org/@noble/curves/-/curves-0.9.1.tgz", + "integrity": "sha512-SpO5TViHvyBV8RrvGejzzl0+wbSm21q+hC6ZmK5NtqOjigR+WW9OohvKL0M3EHKvWzqaZ5Z7F46ejxAVDTBnvQ==", + "funding": [ + { + "type": "individual", + "url": "https://paulmillr.com/funding/" + } + ], + "dependencies": { + "@noble/hashes": "1.3.0" + } + }, "node_modules/@svgr/babel-plugin-add-jsx-attribute": { "version": "6.5.1", "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-add-jsx-attribute/-/babel-plugin-add-jsx-attribute-6.5.1.tgz", @@ -8956,9 +9061,9 @@ } }, "@mysten/sui.js": { - "version": "0.31.0", - "resolved": "https://registry.npmjs.org/@mysten/sui.js/-/sui.js-0.31.0.tgz", - "integrity": "sha512-yDM1JaY3N5VY4lsM/9H1Etdo/Ha0d9OalXkQGK4QjV4VFGxSSzDBeAJpuT+zI72QuzhWqqCeLZogcmpfsUCSpA==", + "version": "0.32.1", + "resolved": "https://registry.npmjs.org/@mysten/sui.js/-/sui.js-0.32.1.tgz", + "integrity": "sha512-HD3D/3g//dx5e/1W42krEv4+Zl5PP0faH229jFOhnOktIRGxRrDfb6eU2+juclTug2e68JseTiX2QulIh+2/FQ==", "requires": { "@mysten/bcs": "0.7.0", "@noble/curves": "^0.9.0", @@ -8990,6 +9095,34 @@ "requires": { "@mysten/sui.js": "0.31.0", "@wallet-standard/core": "1.0.3" + }, + "dependencies": { + "@mysten/sui.js": { + "version": "0.31.0", + "resolved": "https://registry.npmjs.org/@mysten/sui.js/-/sui.js-0.31.0.tgz", + "integrity": "sha512-yDM1JaY3N5VY4lsM/9H1Etdo/Ha0d9OalXkQGK4QjV4VFGxSSzDBeAJpuT+zI72QuzhWqqCeLZogcmpfsUCSpA==", + "requires": { + "@mysten/bcs": "0.7.0", + "@noble/curves": "^0.9.0", + "@noble/hashes": "^1.3.0", + "@scure/bip32": "^1.2.0", + "@scure/bip39": "^1.2.0", + "@suchipi/femver": "^1.0.0", + "jayson": "^4.0.0", + "msw": "^1.2.1", + "rpc-websockets": "^7.5.1", + "superstruct": "^1.0.3", + "tweetnacl": "^1.0.3" + } + }, + "@noble/curves": { + "version": "0.9.1", + "resolved": "https://registry.npmjs.org/@noble/curves/-/curves-0.9.1.tgz", + "integrity": "sha512-SpO5TViHvyBV8RrvGejzzl0+wbSm21q+hC6ZmK5NtqOjigR+WW9OohvKL0M3EHKvWzqaZ5Z7F46ejxAVDTBnvQ==", + "requires": { + "@noble/hashes": "1.3.0" + } + } } }, "@next/env": { @@ -9358,6 +9491,32 @@ "type-fest": "^3.2.0" }, "dependencies": { + "@mysten/sui.js": { + "version": "0.31.0", + "resolved": "https://registry.npmjs.org/@mysten/sui.js/-/sui.js-0.31.0.tgz", + "integrity": "sha512-yDM1JaY3N5VY4lsM/9H1Etdo/Ha0d9OalXkQGK4QjV4VFGxSSzDBeAJpuT+zI72QuzhWqqCeLZogcmpfsUCSpA==", + "requires": { + "@mysten/bcs": "0.7.0", + "@noble/curves": "^0.9.0", + "@noble/hashes": "^1.3.0", + "@scure/bip32": "^1.2.0", + "@scure/bip39": "^1.2.0", + "@suchipi/femver": "^1.0.0", + "jayson": "^4.0.0", + "msw": "^1.2.1", + "rpc-websockets": "^7.5.1", + "superstruct": "^1.0.3", + "tweetnacl": "^1.0.3" + } + }, + "@noble/curves": { + "version": "0.9.1", + "resolved": "https://registry.npmjs.org/@noble/curves/-/curves-0.9.1.tgz", + "integrity": "sha512-SpO5TViHvyBV8RrvGejzzl0+wbSm21q+hC6ZmK5NtqOjigR+WW9OohvKL0M3EHKvWzqaZ5Z7F46ejxAVDTBnvQ==", + "requires": { + "@noble/hashes": "1.3.0" + } + }, "type-fest": { "version": "3.3.0", "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-3.3.0.tgz", @@ -9371,6 +9530,34 @@ "integrity": "sha512-uA9rAydBOfWh0+PRI4RleOJELfnbPCyNho0ZH8j325hDXebZHtbhGb+lpX95Gmt/zqiHlhHGHyaRWzFP4ggZtA==", "requires": { "@mysten/sui.js": "0.31.0" + }, + "dependencies": { + "@mysten/sui.js": { + "version": "0.31.0", + "resolved": "https://registry.npmjs.org/@mysten/sui.js/-/sui.js-0.31.0.tgz", + "integrity": "sha512-yDM1JaY3N5VY4lsM/9H1Etdo/Ha0d9OalXkQGK4QjV4VFGxSSzDBeAJpuT+zI72QuzhWqqCeLZogcmpfsUCSpA==", + "requires": { + "@mysten/bcs": "0.7.0", + "@noble/curves": "^0.9.0", + "@noble/hashes": "^1.3.0", + "@scure/bip32": "^1.2.0", + "@scure/bip39": "^1.2.0", + "@suchipi/femver": "^1.0.0", + "jayson": "^4.0.0", + "msw": "^1.2.1", + "rpc-websockets": "^7.5.1", + "superstruct": "^1.0.3", + "tweetnacl": "^1.0.3" + } + }, + "@noble/curves": { + "version": "0.9.1", + "resolved": "https://registry.npmjs.org/@noble/curves/-/curves-0.9.1.tgz", + "integrity": "sha512-SpO5TViHvyBV8RrvGejzzl0+wbSm21q+hC6ZmK5NtqOjigR+WW9OohvKL0M3EHKvWzqaZ5Z7F46ejxAVDTBnvQ==", + "requires": { + "@noble/hashes": "1.3.0" + } + } } }, "@svgr/babel-plugin-add-jsx-attribute": { diff --git a/examples/with-next/package.json b/examples/with-next/package.json index 16cf7ef0..6428617b 100644 --- a/examples/with-next/package.json +++ b/examples/with-next/package.json @@ -9,7 +9,7 @@ "lint": "next lint" }, "dependencies": { - "@mysten/sui.js": "^0.31.0", + "@mysten/sui.js": "^0.32.1", "@suiet/wallet-kit": "^0.2.5", "@types/node": "18.11.11", "@types/react": "18.0.26", diff --git a/examples/with-next/public/suiet-logo.svg b/examples/with-next/public/suiet-logo.svg new file mode 100644 index 00000000..8e01dfca --- /dev/null +++ b/examples/with-next/public/suiet-logo.svg @@ -0,0 +1,12 @@ + + + + + + + + + + + + diff --git a/examples/with-next/public/vite.svg b/examples/with-next/public/vite.svg new file mode 100644 index 00000000..e7b8dfb1 --- /dev/null +++ b/examples/with-next/public/vite.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/examples/with-vite/package-lock.json b/examples/with-vite/package-lock.json index dad20f7c..758e6491 100644 --- a/examples/with-vite/package-lock.json +++ b/examples/with-vite/package-lock.json @@ -8,7 +8,7 @@ "name": "with-vite", "version": "0.0.0", "dependencies": { - "@mysten/sui.js": "^0.31.0", + "@mysten/sui.js": "^0.32.1", "@suiet/wallet-kit": "^0.2.5", "react": "^18.2.0", "react-dom": "^18.2.0", @@ -1820,9 +1820,9 @@ } }, "node_modules/@mysten/sui.js": { - "version": "0.31.0", - "resolved": "https://registry.npmjs.org/@mysten/sui.js/-/sui.js-0.31.0.tgz", - "integrity": "sha512-yDM1JaY3N5VY4lsM/9H1Etdo/Ha0d9OalXkQGK4QjV4VFGxSSzDBeAJpuT+zI72QuzhWqqCeLZogcmpfsUCSpA==", + "version": "0.32.1", + "resolved": "https://registry.npmjs.org/@mysten/sui.js/-/sui.js-0.32.1.tgz", + "integrity": "sha512-HD3D/3g//dx5e/1W42krEv4+Zl5PP0faH229jFOhnOktIRGxRrDfb6eU2+juclTug2e68JseTiX2QulIh+2/FQ==", "dependencies": { "@mysten/bcs": "0.7.0", "@noble/curves": "^0.9.0", @@ -1849,6 +1849,27 @@ "@wallet-standard/core": "1.0.3" } }, + "node_modules/@mysten/wallet-standard/node_modules/@mysten/sui.js": { + "version": "0.31.0", + "resolved": "https://registry.npmjs.org/@mysten/sui.js/-/sui.js-0.31.0.tgz", + "integrity": "sha512-yDM1JaY3N5VY4lsM/9H1Etdo/Ha0d9OalXkQGK4QjV4VFGxSSzDBeAJpuT+zI72QuzhWqqCeLZogcmpfsUCSpA==", + "dependencies": { + "@mysten/bcs": "0.7.0", + "@noble/curves": "^0.9.0", + "@noble/hashes": "^1.3.0", + "@scure/bip32": "^1.2.0", + "@scure/bip39": "^1.2.0", + "@suchipi/femver": "^1.0.0", + "jayson": "^4.0.0", + "msw": "^1.2.1", + "rpc-websockets": "^7.5.1", + "superstruct": "^1.0.3", + "tweetnacl": "^1.0.3" + }, + "engines": { + "node": ">=16" + } + }, "node_modules/@noble/curves": { "version": "0.9.1", "resolved": "https://registry.npmjs.org/@noble/curves/-/curves-0.9.1.tgz", @@ -2185,6 +2206,27 @@ "cross-fetch": "3.x" } }, + "node_modules/@suiet/wallet-kit/node_modules/@mysten/sui.js": { + "version": "0.31.0", + "resolved": "https://registry.npmjs.org/@mysten/sui.js/-/sui.js-0.31.0.tgz", + "integrity": "sha512-yDM1JaY3N5VY4lsM/9H1Etdo/Ha0d9OalXkQGK4QjV4VFGxSSzDBeAJpuT+zI72QuzhWqqCeLZogcmpfsUCSpA==", + "dependencies": { + "@mysten/bcs": "0.7.0", + "@noble/curves": "^0.9.0", + "@noble/hashes": "^1.3.0", + "@scure/bip32": "^1.2.0", + "@scure/bip39": "^1.2.0", + "@suchipi/femver": "^1.0.0", + "jayson": "^4.0.0", + "msw": "^1.2.1", + "rpc-websockets": "^7.5.1", + "superstruct": "^1.0.3", + "tweetnacl": "^1.0.3" + }, + "engines": { + "node": ">=16" + } + }, "node_modules/@suiet/wallet-sdk": { "version": "0.2.4", "resolved": "https://registry.npmjs.org/@suiet/wallet-sdk/-/wallet-sdk-0.2.4.tgz", @@ -2196,6 +2238,27 @@ "@mysten/sui.js": "0.31.0" } }, + "node_modules/@suiet/wallet-sdk/node_modules/@mysten/sui.js": { + "version": "0.31.0", + "resolved": "https://registry.npmjs.org/@mysten/sui.js/-/sui.js-0.31.0.tgz", + "integrity": "sha512-yDM1JaY3N5VY4lsM/9H1Etdo/Ha0d9OalXkQGK4QjV4VFGxSSzDBeAJpuT+zI72QuzhWqqCeLZogcmpfsUCSpA==", + "dependencies": { + "@mysten/bcs": "0.7.0", + "@noble/curves": "^0.9.0", + "@noble/hashes": "^1.3.0", + "@scure/bip32": "^1.2.0", + "@scure/bip39": "^1.2.0", + "@suchipi/femver": "^1.0.0", + "jayson": "^4.0.0", + "msw": "^1.2.1", + "rpc-websockets": "^7.5.1", + "superstruct": "^1.0.3", + "tweetnacl": "^1.0.3" + }, + "engines": { + "node": ">=16" + } + }, "node_modules/@svgr/babel-plugin-add-jsx-attribute": { "version": "6.5.1", "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-add-jsx-attribute/-/babel-plugin-add-jsx-attribute-6.5.1.tgz", @@ -7153,9 +7216,9 @@ } }, "@mysten/sui.js": { - "version": "0.31.0", - "resolved": "https://registry.npmjs.org/@mysten/sui.js/-/sui.js-0.31.0.tgz", - "integrity": "sha512-yDM1JaY3N5VY4lsM/9H1Etdo/Ha0d9OalXkQGK4QjV4VFGxSSzDBeAJpuT+zI72QuzhWqqCeLZogcmpfsUCSpA==", + "version": "0.32.1", + "resolved": "https://registry.npmjs.org/@mysten/sui.js/-/sui.js-0.32.1.tgz", + "integrity": "sha512-HD3D/3g//dx5e/1W42krEv4+Zl5PP0faH229jFOhnOktIRGxRrDfb6eU2+juclTug2e68JseTiX2QulIh+2/FQ==", "requires": { "@mysten/bcs": "0.7.0", "@noble/curves": "^0.9.0", @@ -7177,6 +7240,26 @@ "requires": { "@mysten/sui.js": "0.31.0", "@wallet-standard/core": "1.0.3" + }, + "dependencies": { + "@mysten/sui.js": { + "version": "0.31.0", + "resolved": "https://registry.npmjs.org/@mysten/sui.js/-/sui.js-0.31.0.tgz", + "integrity": "sha512-yDM1JaY3N5VY4lsM/9H1Etdo/Ha0d9OalXkQGK4QjV4VFGxSSzDBeAJpuT+zI72QuzhWqqCeLZogcmpfsUCSpA==", + "requires": { + "@mysten/bcs": "0.7.0", + "@noble/curves": "^0.9.0", + "@noble/hashes": "^1.3.0", + "@scure/bip32": "^1.2.0", + "@scure/bip39": "^1.2.0", + "@suchipi/femver": "^1.0.0", + "jayson": "^4.0.0", + "msw": "^1.2.1", + "rpc-websockets": "^7.5.1", + "superstruct": "^1.0.3", + "tweetnacl": "^1.0.3" + } + } } }, "@noble/curves": { @@ -7421,6 +7504,26 @@ "react-query": "^3.39.2", "tweetnacl": "^1.0.3", "type-fest": "^3.2.0" + }, + "dependencies": { + "@mysten/sui.js": { + "version": "0.31.0", + "resolved": "https://registry.npmjs.org/@mysten/sui.js/-/sui.js-0.31.0.tgz", + "integrity": "sha512-yDM1JaY3N5VY4lsM/9H1Etdo/Ha0d9OalXkQGK4QjV4VFGxSSzDBeAJpuT+zI72QuzhWqqCeLZogcmpfsUCSpA==", + "requires": { + "@mysten/bcs": "0.7.0", + "@noble/curves": "^0.9.0", + "@noble/hashes": "^1.3.0", + "@scure/bip32": "^1.2.0", + "@scure/bip39": "^1.2.0", + "@suchipi/femver": "^1.0.0", + "jayson": "^4.0.0", + "msw": "^1.2.1", + "rpc-websockets": "^7.5.1", + "superstruct": "^1.0.3", + "tweetnacl": "^1.0.3" + } + } } }, "@suiet/wallet-sdk": { @@ -7429,6 +7532,26 @@ "integrity": "sha512-uA9rAydBOfWh0+PRI4RleOJELfnbPCyNho0ZH8j325hDXebZHtbhGb+lpX95Gmt/zqiHlhHGHyaRWzFP4ggZtA==", "requires": { "@mysten/sui.js": "0.31.0" + }, + "dependencies": { + "@mysten/sui.js": { + "version": "0.31.0", + "resolved": "https://registry.npmjs.org/@mysten/sui.js/-/sui.js-0.31.0.tgz", + "integrity": "sha512-yDM1JaY3N5VY4lsM/9H1Etdo/Ha0d9OalXkQGK4QjV4VFGxSSzDBeAJpuT+zI72QuzhWqqCeLZogcmpfsUCSpA==", + "requires": { + "@mysten/bcs": "0.7.0", + "@noble/curves": "^0.9.0", + "@noble/hashes": "^1.3.0", + "@scure/bip32": "^1.2.0", + "@scure/bip39": "^1.2.0", + "@suchipi/femver": "^1.0.0", + "jayson": "^4.0.0", + "msw": "^1.2.1", + "rpc-websockets": "^7.5.1", + "superstruct": "^1.0.3", + "tweetnacl": "^1.0.3" + } + } } }, "@svgr/babel-plugin-add-jsx-attribute": { diff --git a/examples/with-vite/package.json b/examples/with-vite/package.json index 6d062e75..cfdcb7c9 100644 --- a/examples/with-vite/package.json +++ b/examples/with-vite/package.json @@ -9,7 +9,7 @@ "preview": "vite preview" }, "dependencies": { - "@mysten/sui.js": "^0.31.0", + "@mysten/sui.js": "^0.32.1", "@suiet/wallet-kit": "^0.2.5", "react": "^18.2.0", "react-dom": "^18.2.0", diff --git a/examples/with-vite/src/App.tsx b/examples/with-vite/src/App.tsx index 11f0ce7a..92077785 100644 --- a/examples/with-vite/src/App.tsx +++ b/examples/with-vite/src/App.tsx @@ -1,4 +1,3 @@ -import {useEffect} from 'react' import suietLogo from './assets/suiet-logo.svg' import './App.css' import { @@ -6,7 +5,8 @@ import { useAccountBalance, useWallet, SuiChainId, - ErrorCode + ErrorCode, + formatSUI } from "@suiet/wallet-kit"; import '@suiet/wallet-kit/style.css'; import * as tweetnacl from 'tweetnacl' @@ -118,7 +118,9 @@ function App() {

wallet address: {wallet.account?.address}

current network: {wallet.chain?.name}

-

wallet balance: {String(balance)} SUI

+

wallet balance: {formatSUI(balance ?? 0, { + withAbbr: false + })} SUI

wallet publicKey: {uint8arrayToHex(wallet.account?.publicKey)}

diff --git a/packages/kit/package.json b/packages/kit/package.json index ab01a610..8bcd1d30 100644 --- a/packages/kit/package.json +++ b/packages/kit/package.json @@ -1,6 +1,6 @@ { "name": "@suiet/wallet-kit", - "version": "0.2.5", + "version": "0.2.6", "type": "module", "files": [ "dist" @@ -9,7 +9,9 @@ "dev": "vite", "build": "tsc --emitDeclarationOnly && vite build", "preview": "vite preview", - "test": "echo \"Error: no test specified\" && exit 1", + "test": "jest --reporters jest-simple-dot-reporter --collectCoverage=false", + "test:watch": "jest --reporters jest-simple-dot-reporter --collectCoverage=false --watch", + "test:coverage": "jest --detectOpenHandles --runInBand --logHeapUsage --verbose --no-cache --bail --watchAll=false --ci --reporters=default", "semantic-release": "semantic-release" }, "module": "dist/index.js", @@ -23,8 +25,8 @@ }, "types": "./dist/index.d.ts", "dependencies": { - "@mysten/sui.js": "0.31.0", - "@mysten/wallet-standard": "^0.5.1", + "@mysten/sui.js": "0.32.1", + "@mysten/wallet-standard": "^0.5.3", "@radix-ui/react-dialog": "^1.0.2", "@suiet/wallet-sdk": "workspace:*", "@svgr/rollup": "^6.5.1", @@ -49,7 +51,8 @@ "@vanilla-extract/css": "^1.9.0", "@vanilla-extract/vite-plugin": "^3.4.0", "@vitejs/plugin-react": "^2.1.0", - "jest": "29.0.1", + "jest": "^28.1.3", + "jest-simple-dot-reporter": "^1.0.5", "postcss": "^8.4.19", "react": "^18.2.0", "react-dom": "^18.2.0", @@ -62,8 +65,7 @@ "vite-plugin-svgr": "^2.2.1" }, "peerDependencies": { - "@mysten/sui.js": "0.31.0", - "cross-fetch": "3.x" + "@mysten/sui.js": "0.32.1" }, "repository": { "type": "git", diff --git a/packages/kit/src/components/WalletInfo/index.tsx b/packages/kit/src/components/WalletInfo/index.tsx index 0382e18c..03553c4d 100644 --- a/packages/kit/src/components/WalletInfo/index.tsx +++ b/packages/kit/src/components/WalletInfo/index.tsx @@ -3,13 +3,12 @@ import React, {useCallback, useState} from 'react'; import './index.scss'; import { useWallet } from '../../hooks/useWallet'; import { Extendable } from '../../types/utils'; -import { addressEllipsis } from "../../utils/addressEllipsis"; -import { formatCurrency } from '../../utils/formatCurrency'; import { SvgArrowDown } from '../Icon/SvgIcons'; import type {WalletAccount} from "@mysten/wallet-standard"; import {useAccountBalance} from "../../hooks"; import {UnknownChain} from "../../chain/constants"; import {BaseError} from "../../errors"; +import { formatSUI, addressEllipsis } from '@suiet/wallet-sdk'; export type ConnectButtonProps = Extendable & { label?: string; @@ -27,7 +26,7 @@ function WalletInfo(props: ConnectButtonProps) { return <>Unknown Chain } // TODO: formatCurrency supports bigint - return <>{formatCurrency(Number(balance))} SUI + return <>{formatSUI(balance ?? 0)} SUI }, [balance, chain]) if (!connected) return null; diff --git a/packages/kit/src/hooks/useAutoConnect.ts b/packages/kit/src/hooks/useAutoConnect.ts index 20a1c264..c95cdd71 100644 --- a/packages/kit/src/hooks/useAutoConnect.ts +++ b/packages/kit/src/hooks/useAutoConnect.ts @@ -30,6 +30,9 @@ export function useAutoConnect( .then(() => { init.current = true }) + .catch(_ => { + // failed sliently + }) } }, [allAvailableWallets]) } \ No newline at end of file diff --git a/packages/kit/src/index.ts b/packages/kit/src/index.ts index a7735352..0d254765 100644 --- a/packages/kit/src/index.ts +++ b/packages/kit/src/index.ts @@ -5,4 +5,5 @@ export * from './legacy'; export * from './types'; export * from './wallet'; export * from './chain'; -export * from './errors'; \ No newline at end of file +export * from './errors'; +export * from '@suiet/wallet-sdk'; \ No newline at end of file diff --git a/packages/kit/src/main.tsx b/packages/kit/src/main.tsx index d4a3a7ba..52c071af 100644 --- a/packages/kit/src/main.tsx +++ b/packages/kit/src/main.tsx @@ -1,11 +1,13 @@ -import React from 'react'; +import + React from 'react'; import ReactDOM from 'react-dom/client'; import {ConnectButton, WalletProvider} from './components'; -import {useWallet} from "./hooks"; +import {useAccountBalance, useWallet} from "./hooks"; import * as tweetnacl from 'tweetnacl'; import {ErrorCode} from "./errors"; import {fromB64, TransactionBlock} from "@mysten/sui.js"; import {SuiChainId} from "./chain"; +import {formatSUI} from "@suiet/wallet-sdk"; const sampleNft = new Map([ ['sui:devnet', '0x37b32a726c348b9198ffc22f63a97cb36c01f257258af020cecea8a82575dd56::nft::mint'], @@ -14,6 +16,8 @@ const sampleNft = new Map([ function App() { const wallet = useWallet() + const {balance} = useAccountBalance() + async function handleExecuteMoveCall(target: string | undefined) { if (!target) return; @@ -49,20 +53,27 @@ function App() { alert('signMessage return null') return } - console.log('signMessage msg', new TextEncoder().encode('Hello world')) - console.log('signMessage success', result) + // console.log('signMessage msg', new TextEncoder().encode('Hello world')) + // console.log('signMessage success', result) + // + // // console.log('send message to be signed', msg) + // const textDecoder = new TextDecoder() + // console.log('signMessage success', result) + // console.log('signMessage signature', result.signature) + // console.log('signMessage signedMessage', textDecoder.decode(fromB64(result.messageBytes)).toString()) + // // @ts-ignore + // console.log('signMessage wallet.account?.publicKey', getPublicKey()) + + const pubkeyBase64 = + 'pQECAyYgASFYIJDNOGEC6CBEFLIqLopElCHZ1iG7aiJVBfLt/tqu7zD7Ilgg4aA2iiuPKvWWatWAKE+d0mZMZxG4MK3MQTiSUQaa5Tk='; + const binaryString = atob(pubkeyBase64); + const pubkeyBuffer = Uint8Array.from(binaryString, (c) => c.charCodeAt(0)); - // console.log('send message to be signed', msg) - const textDecoder = new TextDecoder() - console.log('signMessage success', result) - console.log('signMessage signature', result.signature) - console.log('signMessage signedMessage', textDecoder.decode(fromB64(result.messageBytes)).toString()) - // @ts-ignore - console.log('signMessage wallet.account?.publicKey', getPublicKey()) console.log('verify via tweetnacl', tweetnacl.sign.detached.verify( fromB64(result.messageBytes), fromB64(result.signature), - wallet.account?.publicKey as Uint8Array, + pubkeyBuffer, + // wallet.account?.publicKey as Uint8Array, )) alert('signMessage succeeded (see response in the console)') } catch (e) { @@ -121,6 +132,7 @@ function App() {

account address: {wallet.account?.address}

account publicKey: {getPublicKey() || 'not supported'}

current chain: {wallet.chain?.name} (id: {wallet.chain?.id})

+

SUI Balance: {formatSUI(balance ?? 0)} (id: {wallet.chain?.id})

{wallet.chain?.id === SuiChainId.TestNET ? ( diff --git a/packages/kit/src/utils/__tests__/getActiveChainFromConnectResult.test.ts b/packages/kit/src/utils/__tests__/getActiveChainFromConnectResult.test.ts index 9571c9ae..d7eaf384 100644 --- a/packages/kit/src/utils/__tests__/getActiveChainFromConnectResult.test.ts +++ b/packages/kit/src/utils/__tests__/getActiveChainFromConnectResult.test.ts @@ -1,4 +1,3 @@ -import {StandardConnectOutput} from "@mysten/wallet-standard"; import getActiveChainFromConnectResult from "../getActiveChainFromConnectResult"; describe('get active chain from the connection result returned by wallets', function () { diff --git a/packages/kit/src/utils/addressEllipsis.ts b/packages/kit/src/utils/addressEllipsis.ts deleted file mode 100644 index 5cad9dba..00000000 --- a/packages/kit/src/utils/addressEllipsis.ts +++ /dev/null @@ -1,6 +0,0 @@ -export function addressEllipsis(address: string) { - if (!address || !address.startsWith('0x')) - return address; - - return address.slice(0, 4) + '....' + address.slice(-4); -} diff --git a/packages/kit/src/utils/formatCurrency.ts b/packages/kit/src/utils/formatCurrency.ts deleted file mode 100644 index 41217631..00000000 --- a/packages/kit/src/utils/formatCurrency.ts +++ /dev/null @@ -1,100 +0,0 @@ - -// format currency -// less than 1M -> show original -// [1M, 1B) -> x.xxxM -// [1B, Infinity) -> x.xxxB -export function formatCurrency(amount: number | string) { - const MILLION = 1000000; - const BILLION = 1000000000; - const TRILLION = 1000000000000; - const _amount = Number(amount) / 1e9; - - if (_amount < 1) { - return formatSmallCurrency(amount); - } - - if (_amount >= MILLION && _amount < BILLION) - return format(_amount, MILLION, 'M'); - if (_amount >= BILLION && _amount < TRILLION) - return format(_amount, BILLION, 'B'); - if (_amount >= TRILLION) return format(_amount, TRILLION, 'T'); - - function format(_amount: number, measureUnit: number, unitSymbol: string) { - const showAmount = String( - Math.floor(_amount / (measureUnit / 1000)) - ).padEnd(4, '0'); - const result = Intl.NumberFormat('en-US').format(Number(showAmount)); - return result.replace(',', '.') + unitSymbol; - } - - return Intl.NumberFormat('en-US').format(_amount); -} - -// // [1M, 1B) -> x.xxxM -export function fullyFormatCurrency(amount: number | string) { - if (amount < 1e9) { - return formatSmallCurrency(amount); - } - return parseFloat(String(Number(amount) / 1e9)).toLocaleString(); -} - -// when currency is lower than 1SUI -function formatSmallCurrency(amount: number | string) { - const _amount = Number(amount) / 1e9; - - if (_amount === 0) { - return '0'; - } - - // 0.000000001123123 -> 0.00000000112 - // 0.01123123 -> 0.0112 - - // 0.0110000 -> 0.011 - // 0.0100000 -> 0.01 - - const fixNum = Math.ceil(-Math.log10(_amount)); - - let minimalDigits = 0; - for (; Number(amount) % Math.pow(10, minimalDigits) === 0; ) { - minimalDigits = minimalDigits + 1; - } - - // if both last 2 digits are 0 - if ( - Number(amount) % Math.pow(10, 10 - (fixNum + 2)) === 0 && - Number(amount) % Math.pow(10, 10 - (fixNum + 1)) === 0 - ) { - return toFixed(_amount, fixNum); - } - - // if only last 1 digit is 0 - if ( - Number(amount) % Math.pow(10, 10 - (fixNum + 2)) === 0 && - Number(amount) % Math.pow(10, 10 - (fixNum + 1)) !== 0 - ) { - return toFixed(_amount, fixNum + 1); - } - - return toFixed(_amount, fixNum + 2); -} - -function toFixed(num: number, fixed: number) { - fixed = fixed || 0; - fixed = Math.pow(10, fixed); - return getFullNum(Math.floor(num * fixed) / fixed); -} - -function getFullNum(num: number) { - // if not num - if (isNaN(num)) { - return num.toString(); - } - - // parse string no need to transform - const str = '' + num; - if (!/e/i.test(str)) { - return num.toString(); - } - - return num.toFixed(18).replace(/\.?0+$/, ''); -} \ No newline at end of file diff --git a/packages/sdk/package.json b/packages/sdk/package.json index 5c716d8f..002288ad 100644 --- a/packages/sdk/package.json +++ b/packages/sdk/package.json @@ -1,13 +1,14 @@ { "name": "@suiet/wallet-sdk", - "version": "0.2.4", + "version": "0.2.5", "license": "MIT", "type": "module", "scripts": { "dev": "rollup -c rollup.config.ts --watch", "build": "npm run clean && rollup -c rollup.config.ts", - "test": "jest", - "test:watch": "jest --watch", + "test": "jest --reporters jest-simple-dot-reporter --collectCoverage=false", + "test:watch": "jest --reporters jest-simple-dot-reporter --collectCoverage=false --watch", + "test:coverage": "jest --detectOpenHandles --runInBand --logHeapUsage --verbose --no-cache --bail --watchAll=false --ci --reporters=default", "clean": "rimraf dist/" }, "main": "dist/index.js", @@ -16,7 +17,8 @@ "dist" ], "dependencies": { - "@mysten/sui.js": "0.31.0" + "@mysten/sui.js": "0.32.1", + "@mysten/wallet-standard": "^0.5.3" }, "devDependencies": { "@babel/preset-env": "^7.18.10", @@ -26,8 +28,10 @@ "@rollup/plugin-node-resolve": "^13.3.0", "@rollup/plugin-typescript": "^8.4.0", "@types/jest": "^28.1.7", + "@types/node": "^18.15.11", "jest": "^28.1.3", "jest-environment-jsdom": "^28.1.3", + "jest-simple-dot-reporter": "^1.0.5", "rimraf": "^3.0.2", "rollup": "^2.78.1", "rollup-plugin-polyfill-node": "^0.10.2", @@ -38,6 +42,6 @@ "typescript": "^4.7.4" }, "peerDependencies": { - "@mysten/sui.js": "0.31.0" + "@mysten/sui.js": "0.32.1" } } \ No newline at end of file diff --git a/packages/sdk/src/index.ts b/packages/sdk/src/index.ts index 96046009..5546256d 100644 --- a/packages/sdk/src/index.ts +++ b/packages/sdk/src/index.ts @@ -1,2 +1,3 @@ export * from './account' -export * from './common' \ No newline at end of file +export * from './common' +export * from './utils' \ No newline at end of file diff --git a/packages/sdk/src/utils/format/__tests__/addressEllipsis.test.ts b/packages/sdk/src/utils/format/__tests__/addressEllipsis.test.ts new file mode 100644 index 00000000..6a2bcdf7 --- /dev/null +++ b/packages/sdk/src/utils/format/__tests__/addressEllipsis.test.ts @@ -0,0 +1,9 @@ +import { addressEllipsis } from '../index'; + +describe('addressEllipsis', function () { + test('correct scenario', function () { + const suiAddress = + '0x0000000000000000000000000000000000000000000000000000000000000000'; + expect(addressEllipsis(suiAddress)).toEqual('0x00000....0000'); + }); +}); diff --git a/packages/sdk/src/utils/format/__tests__/formatCurrency.test.ts b/packages/sdk/src/utils/format/__tests__/formatCurrency.test.ts new file mode 100644 index 00000000..7162987d --- /dev/null +++ b/packages/sdk/src/utils/format/__tests__/formatCurrency.test.ts @@ -0,0 +1,124 @@ +import { formatCurrency } from '../formatCurrency'; + +describe('formatCurrency with default decimal 0', () => { + test('decimal 0 means amount * 10^0 = amount * 1', () => { + expect(formatCurrency('-1')).toEqual('-1'); + expect(formatCurrency('0')).toEqual('0'); + expect(formatCurrency('1')).toEqual('1'); + expect(formatCurrency('9999')).toEqual('9,999'); + expect(formatCurrency('9999999')).toEqual('9.999M'); + }); + + test('compatible with bigint', () => { + expect(formatCurrency(-1n)).toEqual('-1'); + expect(formatCurrency(0n)).toEqual('0'); + expect(formatCurrency(1n)).toEqual('1'); + expect(formatCurrency(999n)).toEqual('999'); + expect(formatCurrency(9999n)).toEqual('9,999'); + expect(formatCurrency(9999n)).toEqual('9,999'); + expect(formatCurrency(1000000n)).toEqual('1.000M'); + expect(formatCurrency(9999999n)).toEqual('9.999M'); + expect(formatCurrency(9999999999n)).toEqual('9.999B'); + expect(formatCurrency(9999999999999n)).toEqual('9.999T'); + }); +}); + +describe('formatCurrency with default decimal 9', function () { + test('less than 7 digits, show original', () => { + expect(formatCurrency('-9000000000', { decimals: 9 })).toEqual('-9'); + expect(formatCurrency('0', { decimals: 9 })).toEqual('0'); + expect(formatCurrency('9000000000', { decimals: 9 })).toEqual('9'); + expect(formatCurrency('99000000000', { decimals: 9 })).toEqual('99'); + expect(formatCurrency('999000000000', { decimals: 9 })).toEqual('999'); + expect(formatCurrency('9999000000000', { decimals: 9 })).toEqual('9,999'); + expect(formatCurrency('99999000000000', { decimals: 9 })).toEqual('99,999'); + expect(formatCurrency('999999000000000', { decimals: 9 })).toEqual( + '999,999' + ); + }); + + test('less than 1, show original', () => { + expect(formatCurrency('1123123', { decimals: 9 })).toEqual('0.00112'); + expect(formatCurrency('10001', { decimals: 9 })).toEqual('0.00001'); + expect(formatCurrency('1001', { decimals: 9 })).toEqual('0.000001'); + // expect(formatCurrency('10001')).toEqual('0.01'); + }); + + test('otherwise', () => { + expect(formatCurrency('1000000000000000', { decimals: 9 })).toEqual( + '1.000M' + ); + expect(formatCurrency('9999999000000000', { decimals: 9 })).toEqual( + '9.999M' + ); + expect(formatCurrency('9999999999000000000', { decimals: 9 })).toEqual( + '9.999B' + ); + expect(formatCurrency('9999999999999000000000', { decimals: 9 })).toEqual( + '9.999T' + ); + }); + + test('format bigint', () => { + expect(formatCurrency(-9000000000n, { decimals: 9 })).toEqual('-9'); + expect(formatCurrency(0n, { decimals: 9 })).toEqual('0'); + expect(formatCurrency(9000000000n, { decimals: 9 })).toEqual('9'); + expect(formatCurrency(99000000000n, { decimals: 9 })).toEqual('99'); + expect(formatCurrency(999000000000n, { decimals: 9 })).toEqual('999'); + expect(formatCurrency(9999000000000n, { decimals: 9 })).toEqual('9,999'); + expect(formatCurrency(99999000000000n, { decimals: 9 })).toEqual('99,999'); + expect(formatCurrency(999999000000000n, { decimals: 9 })).toEqual( + '999,999' + ); + expect(formatCurrency(1000000000000000n, { decimals: 9 })).toEqual( + '1.000M' + ); + expect(formatCurrency(9999999000000000n, { decimals: 9 })).toEqual( + '9.999M' + ); + expect(formatCurrency(9999999999000000000n, { decimals: 9 })).toEqual( + '9.999B' + ); + expect(formatCurrency(9999999999999000000000n, { decimals: 9 })).toEqual( + '9.999T' + ); + }); +}); + +describe('formatCurrency with no abbr', function () { + test('string input', () => { + expect(formatCurrency('1000000', { withAbbr: false })).toEqual('1,000,000'); + expect(formatCurrency('9999999999999', { withAbbr: false })).toEqual( + '9,999,999,999,999' + ); + }); + + test('compatible with bigint input', () => { + expect(formatCurrency(1000000n, { withAbbr: false })).toEqual('1,000,000'); + expect(formatCurrency(9999999999999n, { withAbbr: false })).toEqual( + '9,999,999,999,999' + ); + expect(formatCurrency(999999999999999999999n, { withAbbr: false })).toEqual( + '999,999,999,999,999,999,999' + ); + }); +}); + +describe('formatCurrency with negative inputs', function () { + test('number that does not exceed MIN_VALUE', () => { + expect(formatCurrency(-10001013, { decimals: 9 })).toEqual('-0.01'); + expect(formatCurrency(-10001013n, { decimals: 9 })).toEqual('-0.01'); + expect(formatCurrency('-10001013', { decimals: 9 })).toEqual('-0.01'); + }); + test('number that exceeds MIN_VALUE', () => { + expect(formatCurrency(-1000000000000000n, { decimals: 9 })).toEqual( + '-1.000M' + ); + expect(formatCurrency('-1000000000000000', { decimals: 9 })).toEqual( + '-1.000M' + ); + expect(formatCurrency(-1000000000000000, { decimals: 9 })).toEqual( + '-1.000M' + ); + }); +}); diff --git a/packages/sdk/src/utils/format/addressEllipsis.ts b/packages/sdk/src/utils/format/addressEllipsis.ts new file mode 100644 index 00000000..5cc8ba66 --- /dev/null +++ b/packages/sdk/src/utils/format/addressEllipsis.ts @@ -0,0 +1,10 @@ +export default function addressEllipsis(address: string) { + if (typeof address !== 'string') { + throw new Error('address is not a string'); + } + + // 0x0000000000000000000000000000000000000000 40bits / 42 length + if (!address || !address.startsWith('0x')) return address; + + return address.slice(0, 7) + '....' + address.slice(-4, address.length); +} diff --git a/packages/sdk/src/utils/format/formatCurrency.ts b/packages/sdk/src/utils/format/formatCurrency.ts new file mode 100644 index 00000000..54cb58fe --- /dev/null +++ b/packages/sdk/src/utils/format/formatCurrency.ts @@ -0,0 +1,153 @@ +const MILLION = 1_000_000; +const BILLION = 1_000_000_000; +const TRILLION = 1_000_000_000_000; + +export function formatSUI( + amount: number | string | bigint, + options?: { + withAbbr?: boolean; + } +) { + return formatCurrency( + amount, + Object.assign( + { + decimals: 9, + }, + options + ) + ); +} + +// formatWithAbbr currency +// less than 1M -> show original +// [1M, 1B) -> x.xxxM +// [1B, Infinity) -> x.xxxB +export function formatCurrency( + amount: number | string | bigint, + options?: { + decimals?: number; + withAbbr?: boolean; + } +): string { + const { decimals = 0, withAbbr = true } = options ?? {}; + // handle bigint that exceeds safe integer range + if (typeof amount === 'bigint' && !isSafeToConvertToNumber(amount)) { + return formatCurrencyBigInt(BigInt(amount), { + decimals, + withAbbr, + }); + } + // else, convert to number for formatting logic + if (Number(amount) === 0) return '0'; + if (Number(amount) < 0) { + return '-' + formatCurrency(-Number(amount), options); + } + const _amount = Number(amount) / 10 ** decimals; + if (_amount > 0 && _amount < 1) { + return formatSmallCurrency(_amount); + } + return format(_amount, withAbbr); +} + +function format(amount: number | bigint, showAbbr: boolean): string { + if (showAbbr) { + if (amount >= MILLION && amount < BILLION) + return formatWithAbbr(amount, MILLION, 'M'); + if (amount >= BILLION && amount < TRILLION) + return formatWithAbbr(amount, BILLION, 'B'); + if (amount >= TRILLION) return formatWithAbbr(amount, TRILLION, 'T'); + } + + return Intl.NumberFormat('en-US').format(amount); +} + +function formatWithAbbr( + amount: number | bigint, + measureUnit: number, + abbrSymbol: string +) { + let _amount: string; + if (typeof amount === 'bigint') { + _amount = String(amount / (BigInt(measureUnit) / 1000n)); + } else { + _amount = String(Math.floor(amount / (measureUnit / 1000))); + } + const showAmount = _amount.padEnd(4, '0'); + const result = Intl.NumberFormat('en-US').format(Number(showAmount)); + return result.replace(',', '.') + abbrSymbol; +} + +// when currency is lower than 1SUI +function formatSmallCurrency(amount: number) { + if (amount <= 0) return '0'; + + const fixNum = Math.ceil(-Math.log10(amount)); + + let minimalDigits = 0; + for (; Number(amount) % Math.pow(10, minimalDigits) === 0; ) { + minimalDigits = minimalDigits + 1; + } + + // if both last 2 digits are 0 + if ( + Number(amount) % Math.pow(10, 10 - (fixNum + 2)) === 0 && + Number(amount) % Math.pow(10, 10 - (fixNum + 1)) === 0 + ) { + return toFixed(amount, fixNum); + } + + // if only last 1 digit is 0 + if ( + Number(amount) % Math.pow(10, 10 - (fixNum + 2)) === 0 && + Number(amount) % Math.pow(10, 10 - (fixNum + 1)) !== 0 + ) { + return toFixed(amount, fixNum + 1); + } + + return toFixed(amount, fixNum + 2); +} + +function toFixed(num: number, fixed: number) { + function getFullNum(num: number) { + // if not num + if (isNaN(num)) { + return num.toString(); + } + + // parse string no need to transform + const str = '' + num; + if (!/e/i.test(str)) { + return num.toString(); + } + + return num.toFixed(18).replace(/\.?0+$/, ''); + } + + fixed = fixed || 0; + fixed = Math.pow(10, fixed); + return getFullNum(Math.floor(num * fixed) / fixed); +} + +// handle bigint that exceeds the maximum number +function formatCurrencyBigInt( + amount: bigint, + options?: { + decimals?: number; + withAbbr?: boolean; + } +): string { + if (amount === 0n) return '0'; + if (amount < 0n) return '-' + formatCurrencyBigInt(-amount, options); + + const { decimals = 9, withAbbr = true } = options ?? {}; + const _amount = amount / 10n ** BigInt(decimals); + return format(_amount, withAbbr); +} + +function isSafeToConvertToNumber(bigintValue: string | bigint) { + const minValue = Number.MIN_SAFE_INTEGER; // -9007199254740991 + const maxValue = Number.MAX_SAFE_INTEGER; // 9007199254740991 + + return bigintValue >= BigInt(minValue) && bigintValue <= BigInt(maxValue); +} diff --git a/packages/sdk/src/utils/format/index.ts b/packages/sdk/src/utils/format/index.ts new file mode 100644 index 00000000..a8732487 --- /dev/null +++ b/packages/sdk/src/utils/format/index.ts @@ -0,0 +1,2 @@ +export * from './formatCurrency'; +export { default as addressEllipsis } from './addressEllipsis'; diff --git a/packages/sdk/src/utils/index.ts b/packages/sdk/src/utils/index.ts new file mode 100644 index 00000000..2f04503f --- /dev/null +++ b/packages/sdk/src/utils/index.ts @@ -0,0 +1 @@ +export * from './format' \ No newline at end of file diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index f0b1e90a..d0129749 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -40,8 +40,8 @@ importers: packages/kit: specifiers: - '@mysten/sui.js': 0.31.0 - '@mysten/wallet-standard': ^0.5.1 + '@mysten/sui.js': 0.32.1 + '@mysten/wallet-standard': ^0.5.3 '@radix-ui/react-dialog': ^1.0.2 '@semantic-release/changelog': ^6.0.1 '@semantic-release/npm': ^9.0.1 @@ -59,7 +59,8 @@ importers: '@wallet-standard/core': 1.0.3 buffer: ^6.0.3 classnames: ^2.3.2 - jest: 29.0.1 + jest: ^28.1.3 + jest-simple-dot-reporter: ^1.0.5 lodash-es: ^4.17.21 mitt: ^3.0.0 postcss: ^8.4.19 @@ -76,8 +77,8 @@ importers: vite: ^3.1.0 vite-plugin-svgr: ^2.2.1 dependencies: - '@mysten/sui.js': 0.31.0_typescript@4.8.4 - '@mysten/wallet-standard': 0.5.1_typescript@4.8.4 + '@mysten/sui.js': 0.32.1_typescript@4.8.4 + '@mysten/wallet-standard': 0.5.3_typescript@4.8.4 '@radix-ui/react-dialog': 1.0.2_2zx2umvpluuhvlq44va5bta2da '@suiet/wallet-sdk': link:../sdk '@svgr/rollup': 6.5.1 @@ -101,13 +102,14 @@ importers: '@vanilla-extract/css': 1.9.1 '@vanilla-extract/vite-plugin': 3.6.1_vite@3.2.3 '@vitejs/plugin-react': 2.2.0_vite@3.2.3 - jest: 29.0.1 + jest: 28.1.3 + jest-simple-dot-reporter: 1.0.5 postcss: 8.4.19 react: 18.2.0 react-dom: 18.2.0_react@18.2.0 sass: 1.56.1 semantic-release: 19.0.5 - ts-jest: 28.0.8_tiulw5pz3vdh3cpspcd46lte2y + ts-jest: 28.0.8_fztrhi54teek7om3xmnfwid3mq typescript: 4.8.4 typescript-plugin-css-modules: 3.4.0_typescript@4.8.4 vite: 3.2.3_sass@1.56.1 @@ -116,15 +118,18 @@ importers: packages/sdk: specifiers: '@babel/preset-env': ^7.18.10 - '@mysten/sui.js': 0.31.0 + '@mysten/sui.js': 0.32.1 + '@mysten/wallet-standard': ^0.5.3 '@rollup/plugin-babel': ^5.3.1 '@rollup/plugin-commonjs': ^22.0.2 '@rollup/plugin-json': ^4.1.0 '@rollup/plugin-node-resolve': ^13.3.0 '@rollup/plugin-typescript': ^8.4.0 '@types/jest': ^28.1.7 + '@types/node': ^18.15.11 jest: ^28.1.3 jest-environment-jsdom: ^28.1.3 + jest-simple-dot-reporter: ^1.0.5 rimraf: ^3.0.2 rollup: ^2.78.1 rollup-plugin-polyfill-node: ^0.10.2 @@ -134,7 +139,8 @@ importers: tweetnacl: ^1.0.3 typescript: ^4.7.4 dependencies: - '@mysten/sui.js': 0.31.0_typescript@4.8.4 + '@mysten/sui.js': 0.32.1_typescript@4.8.4 + '@mysten/wallet-standard': 0.5.3_typescript@4.8.4 devDependencies: '@babel/preset-env': 7.20.2 '@rollup/plugin-babel': 5.3.1_rollup@2.79.1 @@ -143,14 +149,16 @@ importers: '@rollup/plugin-node-resolve': 13.3.0_rollup@2.79.1 '@rollup/plugin-typescript': 8.5.0_gypgyaqhine6mwjfvh7icfhviq '@types/jest': 28.1.8 - jest: 28.1.3_ts-node@10.9.1 + '@types/node': 18.15.11 + jest: 28.1.3_rrli7kzx2akox3oq6aahu3rvje jest-environment-jsdom: 28.1.3 + jest-simple-dot-reporter: 1.0.5 rimraf: 3.0.2 rollup: 2.79.1 rollup-plugin-polyfill-node: 0.10.2_rollup@2.79.1 rollup-plugin-terser: 7.0.2_rollup@2.79.1 ts-jest: 28.0.8_fztrhi54teek7om3xmnfwid3mq - ts-node: 10.9.1_typescript@4.8.4 + ts-node: 10.9.1_3xy4ijntdaqs3bnplv7a3vjax4 tweetnacl: 1.0.3 typescript: 4.8.4 @@ -1554,15 +1562,6 @@ packages: '@babel/core': 7.19.6 '@babel/helper-plugin-utils': 7.20.2 - /@babel/plugin-syntax-async-generators/7.8.4_@babel+core@7.20.12: - resolution: {integrity: sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw==} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.20.12 - '@babel/helper-plugin-utils': 7.20.2 - dev: true - /@babel/plugin-syntax-bigint/7.8.3_@babel+core@7.19.6: resolution: {integrity: sha512-wnTnFlG+YxQm3vDxpGE57Pj0srRU4sHE/mDkt1qv2YJJSeUAec2ma4WLUnUPeKjyrfntVwe/N6dCXpU+zL3Npg==} peerDependencies: @@ -1572,15 +1571,6 @@ packages: '@babel/helper-plugin-utils': 7.20.2 dev: true - /@babel/plugin-syntax-bigint/7.8.3_@babel+core@7.20.12: - resolution: {integrity: sha512-wnTnFlG+YxQm3vDxpGE57Pj0srRU4sHE/mDkt1qv2YJJSeUAec2ma4WLUnUPeKjyrfntVwe/N6dCXpU+zL3Npg==} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.20.12 - '@babel/helper-plugin-utils': 7.20.2 - dev: true - /@babel/plugin-syntax-class-properties/7.12.13: resolution: {integrity: sha512-fm4idjKla0YahUNgFNLCB0qySdsoPiZP3iQE3rky0mBUtMZ23yDJ9SJdg6dXTSDnulOVqiF3Hgr9nbXvXTQZYA==} peerDependencies: @@ -1606,15 +1596,6 @@ packages: '@babel/core': 7.19.6 '@babel/helper-plugin-utils': 7.20.2 - /@babel/plugin-syntax-class-properties/7.12.13_@babel+core@7.20.12: - resolution: {integrity: sha512-fm4idjKla0YahUNgFNLCB0qySdsoPiZP3iQE3rky0mBUtMZ23yDJ9SJdg6dXTSDnulOVqiF3Hgr9nbXvXTQZYA==} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.20.12 - '@babel/helper-plugin-utils': 7.20.2 - dev: true - /@babel/plugin-syntax-class-static-block/7.14.5: resolution: {integrity: sha512-b+YyPmr6ldyNnM6sqYeMWE+bgJcJpO6yS4QD7ymxgH34GBPNDM/THBh8iunyvKIZztiwLH4CJZ0RxTk9emgpjw==} engines: {node: '>=6.9.0'} @@ -1734,15 +1715,6 @@ packages: '@babel/helper-plugin-utils': 7.20.2 dev: true - /@babel/plugin-syntax-import-meta/7.10.4_@babel+core@7.20.12: - resolution: {integrity: sha512-Yqfm+XDx0+Prh3VSeEQCPU81yC+JWZ2pDPFSS4ZdpfZhp4MkFMaDC1UqseovEKwSUpnIL7+vK+Clp7bfh0iD7g==} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.20.12 - '@babel/helper-plugin-utils': 7.20.2 - dev: true - /@babel/plugin-syntax-json-strings/7.8.3: resolution: {integrity: sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA==} peerDependencies: @@ -1768,15 +1740,6 @@ packages: '@babel/core': 7.19.6 '@babel/helper-plugin-utils': 7.20.2 - /@babel/plugin-syntax-json-strings/7.8.3_@babel+core@7.20.12: - resolution: {integrity: sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA==} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.20.12 - '@babel/helper-plugin-utils': 7.20.2 - dev: true - /@babel/plugin-syntax-jsx/7.12.1_@babel+core@7.12.9: resolution: {integrity: sha512-1yRi7yAtB0ETgxdY9ti/p2TivUxJkTdhu/ZbF9MshVGqOx1TdB3b7xCXs49Fupgg50N45KcAsRP/ZqWjs9SRjg==} peerDependencies: @@ -1805,16 +1768,6 @@ packages: '@babel/core': 7.19.6 '@babel/helper-plugin-utils': 7.20.2 - /@babel/plugin-syntax-jsx/7.18.6_@babel+core@7.20.12: - resolution: {integrity: sha512-6mmljtAedFGTWu2p/8WIORGwy+61PLgOMPOdazc7YoJ9ZCWUyFy3A6CpPkRKLKD1ToAesxX8KGEViAiLo9N+7Q==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.20.12 - '@babel/helper-plugin-utils': 7.20.2 - dev: true - /@babel/plugin-syntax-logical-assignment-operators/7.10.4: resolution: {integrity: sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig==} peerDependencies: @@ -1840,15 +1793,6 @@ packages: '@babel/core': 7.19.6 '@babel/helper-plugin-utils': 7.20.2 - /@babel/plugin-syntax-logical-assignment-operators/7.10.4_@babel+core@7.20.12: - resolution: {integrity: sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig==} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.20.12 - '@babel/helper-plugin-utils': 7.20.2 - dev: true - /@babel/plugin-syntax-nullish-coalescing-operator/7.8.3: resolution: {integrity: sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ==} peerDependencies: @@ -1874,15 +1818,6 @@ packages: '@babel/core': 7.19.6 '@babel/helper-plugin-utils': 7.20.2 - /@babel/plugin-syntax-nullish-coalescing-operator/7.8.3_@babel+core@7.20.12: - resolution: {integrity: sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ==} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.20.12 - '@babel/helper-plugin-utils': 7.20.2 - dev: true - /@babel/plugin-syntax-numeric-separator/7.10.4: resolution: {integrity: sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug==} peerDependencies: @@ -1908,15 +1843,6 @@ packages: '@babel/core': 7.19.6 '@babel/helper-plugin-utils': 7.20.2 - /@babel/plugin-syntax-numeric-separator/7.10.4_@babel+core@7.20.12: - resolution: {integrity: sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug==} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.20.12 - '@babel/helper-plugin-utils': 7.20.2 - dev: true - /@babel/plugin-syntax-object-rest-spread/7.8.3: resolution: {integrity: sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA==} peerDependencies: @@ -1951,15 +1877,6 @@ packages: '@babel/core': 7.19.6 '@babel/helper-plugin-utils': 7.20.2 - /@babel/plugin-syntax-object-rest-spread/7.8.3_@babel+core@7.20.12: - resolution: {integrity: sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA==} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.20.12 - '@babel/helper-plugin-utils': 7.20.2 - dev: true - /@babel/plugin-syntax-optional-catch-binding/7.8.3: resolution: {integrity: sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q==} peerDependencies: @@ -1985,15 +1902,6 @@ packages: '@babel/core': 7.19.6 '@babel/helper-plugin-utils': 7.20.2 - /@babel/plugin-syntax-optional-catch-binding/7.8.3_@babel+core@7.20.12: - resolution: {integrity: sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q==} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.20.12 - '@babel/helper-plugin-utils': 7.20.2 - dev: true - /@babel/plugin-syntax-optional-chaining/7.8.3: resolution: {integrity: sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg==} peerDependencies: @@ -2019,15 +1927,6 @@ packages: '@babel/core': 7.19.6 '@babel/helper-plugin-utils': 7.20.2 - /@babel/plugin-syntax-optional-chaining/7.8.3_@babel+core@7.20.12: - resolution: {integrity: sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg==} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.20.12 - '@babel/helper-plugin-utils': 7.20.2 - dev: true - /@babel/plugin-syntax-private-property-in-object/7.14.5: resolution: {integrity: sha512-0wVnp9dxJ72ZUJDV27ZfbSj6iHLoytYZmh3rFcxNnvsJF3ktkzLDZPy/mA17HGsaQT3/DQsWYX1f1QGWkCoVUg==} engines: {node: '>=6.9.0'} @@ -2085,16 +1984,6 @@ packages: '@babel/core': 7.19.6 '@babel/helper-plugin-utils': 7.20.2 - /@babel/plugin-syntax-top-level-await/7.14.5_@babel+core@7.20.12: - resolution: {integrity: sha512-hx++upLv5U1rgYfwe1xBQUhRmU41NEvpUvrp8jkrSCdvGSnM5/qdRMtylJ6PG5OFkBaHkbTAKTnd3/YyESRHFw==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.20.12 - '@babel/helper-plugin-utils': 7.20.2 - dev: true - /@babel/plugin-syntax-typescript/7.18.6_@babel+core@7.19.1: resolution: {integrity: sha512-mAWAuq4rvOepWCBid55JuRNvpTNf2UGVgoz4JV0fXEKolsVZDzsa4NqCef758WZJj/GDu0gVGItjKFiClTAmZA==} engines: {node: '>=6.9.0'} @@ -4852,26 +4741,14 @@ packages: engines: {node: ^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0} dependencies: '@jest/types': 28.1.3 - '@types/node': 18.11.18 + '@types/node': 18.15.11 chalk: 4.1.2 jest-message-util: 28.1.3 jest-util: 28.1.3 slash: 3.0.0 dev: true - /@jest/console/29.5.0: - resolution: {integrity: sha512-NEpkObxPwyw/XxZVLPmAGKE89IQRp4puc6IQRPru6JKd1M3fW9v1xM1AnzIJE65hbCkzQAdnL8P47e9hzhiYLQ==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - dependencies: - '@jest/types': 29.5.0 - '@types/node': 18.11.18 - chalk: 4.1.2 - jest-message-util: 29.5.0 - jest-util: 29.5.0 - slash: 3.0.0 - dev: true - - /@jest/core/28.1.3_ts-node@10.9.1: + /@jest/core/28.1.3: resolution: {integrity: sha512-CIKBrlaKOzA7YG19BEqCw3SLIsEwjZkeJzf5bdooVnW4bH5cktqe3JX+G2YV1aK5vP8N9na1IGWFzYaTp6k6NA==} engines: {node: ^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0} peerDependencies: @@ -4885,14 +4762,14 @@ packages: '@jest/test-result': 28.1.3 '@jest/transform': 28.1.3 '@jest/types': 28.1.3 - '@types/node': 18.11.18 + '@types/node': 18.15.11 ansi-escapes: 4.3.2 chalk: 4.1.2 ci-info: 3.7.1 exit: 0.1.2 graceful-fs: 4.2.10 jest-changed-files: 28.1.3 - jest-config: 28.1.3_zfha7dvnw4nti6zkbsmhmn6xo4 + jest-config: 28.1.3_@types+node@18.15.11 jest-haste-map: 28.1.3 jest-message-util: 28.1.3 jest-regex-util: 28.0.2 @@ -4914,41 +4791,42 @@ packages: - ts-node dev: true - /@jest/core/29.5.0: - resolution: {integrity: sha512-28UzQc7ulUrOQw1IsN/kv1QES3q2kkbl/wGslyhAclqZ/8cMdB5M68BffkIdSJgKBUt50d3hbwJ92XESlE7LiQ==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + /@jest/core/28.1.3_ts-node@10.9.1: + resolution: {integrity: sha512-CIKBrlaKOzA7YG19BEqCw3SLIsEwjZkeJzf5bdooVnW4bH5cktqe3JX+G2YV1aK5vP8N9na1IGWFzYaTp6k6NA==} + engines: {node: ^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0} peerDependencies: node-notifier: ^8.0.1 || ^9.0.0 || ^10.0.0 peerDependenciesMeta: node-notifier: optional: true dependencies: - '@jest/console': 29.5.0 - '@jest/reporters': 29.5.0 - '@jest/test-result': 29.5.0 - '@jest/transform': 29.5.0 - '@jest/types': 29.5.0 - '@types/node': 18.11.18 + '@jest/console': 28.1.3 + '@jest/reporters': 28.1.3 + '@jest/test-result': 28.1.3 + '@jest/transform': 28.1.3 + '@jest/types': 28.1.3 + '@types/node': 18.15.11 ansi-escapes: 4.3.2 chalk: 4.1.2 ci-info: 3.7.1 exit: 0.1.2 graceful-fs: 4.2.10 - jest-changed-files: 29.5.0 - jest-config: 29.5.0_@types+node@18.11.18 - jest-haste-map: 29.5.0 - jest-message-util: 29.5.0 - jest-regex-util: 29.4.3 - jest-resolve: 29.5.0 - jest-resolve-dependencies: 29.5.0 - jest-runner: 29.5.0 - jest-runtime: 29.5.0 - jest-snapshot: 29.5.0 - jest-util: 29.5.0 - jest-validate: 29.5.0 - jest-watcher: 29.5.0 + jest-changed-files: 28.1.3 + jest-config: 28.1.3_rrli7kzx2akox3oq6aahu3rvje + jest-haste-map: 28.1.3 + jest-message-util: 28.1.3 + jest-regex-util: 28.0.2 + jest-resolve: 28.1.3 + jest-resolve-dependencies: 28.1.3 + jest-runner: 28.1.3 + jest-runtime: 28.1.3 + jest-snapshot: 28.1.3 + jest-util: 28.1.3 + jest-validate: 28.1.3 + jest-watcher: 28.1.3 micromatch: 4.0.5 - pretty-format: 29.5.0 + pretty-format: 28.1.3 + rimraf: 3.0.2 slash: 3.0.0 strip-ansi: 6.0.1 transitivePeerDependencies: @@ -4962,20 +4840,10 @@ packages: dependencies: '@jest/fake-timers': 28.1.3 '@jest/types': 28.1.3 - '@types/node': 18.11.18 + '@types/node': 18.15.11 jest-mock: 28.1.3 dev: true - /@jest/environment/29.5.0: - resolution: {integrity: sha512-5FXw2+wD29YU1d4I2htpRX7jYnAyTRjP2CsXQdo9SAM8g3ifxWPSV0HnClSn71xwctr0U3oZIIH+dtbfmnbXVQ==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - dependencies: - '@jest/fake-timers': 29.5.0 - '@jest/types': 29.5.0 - '@types/node': 18.11.18 - jest-mock: 29.5.0 - dev: true - /@jest/expect-utils/28.1.3: resolution: {integrity: sha512-wvbi9LUrHJLn3NlDW6wF2hvIMtd4JUl2QNVrjq+IBSHirgfrR3o9RnVtxzdEGO2n9JyIWwHnLfby5KzqBGg2YA==} engines: {node: ^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0} @@ -4983,13 +4851,6 @@ packages: jest-get-type: 28.0.2 dev: true - /@jest/expect-utils/29.5.0: - resolution: {integrity: sha512-fmKzsidoXQT2KwnrwE0SQq3uj8Z763vzR8LnLBwC2qYWEFpjX8daRsk6rHUM1QvNlEW/UJXNXm59ztmJJWs2Mg==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - dependencies: - jest-get-type: 29.4.3 - dev: true - /@jest/expect/28.1.3: resolution: {integrity: sha512-lzc8CpUbSoE4dqT0U+g1qODQjBRHPpCPXissXD4mS9+sWQdmmpeJ9zSH1rS1HEkrsMN0fb7nKrJ9giAR1d3wBw==} engines: {node: ^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0} @@ -5000,40 +4861,18 @@ packages: - supports-color dev: true - /@jest/expect/29.5.0: - resolution: {integrity: sha512-PueDR2HGihN3ciUNGr4uelropW7rqUfTiOn+8u0leg/42UhblPxHkfoh0Ruu3I9Y1962P3u2DY4+h7GVTSVU6g==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - dependencies: - expect: 29.5.0 - jest-snapshot: 29.5.0 - transitivePeerDependencies: - - supports-color - dev: true - /@jest/fake-timers/28.1.3: resolution: {integrity: sha512-D/wOkL2POHv52h+ok5Oj/1gOG9HSywdoPtFsRCUmlCILXNn5eIWmcnd3DIiWlJnpGvQtmajqBP95Ei0EimxfLw==} engines: {node: ^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0} dependencies: '@jest/types': 28.1.3 '@sinonjs/fake-timers': 9.1.2 - '@types/node': 18.11.18 + '@types/node': 18.15.11 jest-message-util: 28.1.3 jest-mock: 28.1.3 jest-util: 28.1.3 dev: true - /@jest/fake-timers/29.5.0: - resolution: {integrity: sha512-9ARvuAAQcBwDAqOnglWq2zwNIRUDtk/SCkp/ToGEhFv5r86K21l+VEs0qNTaXtyiY0lEePl3kylijSYJQqdbDg==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - dependencies: - '@jest/types': 29.5.0 - '@sinonjs/fake-timers': 10.0.2 - '@types/node': 18.11.18 - jest-message-util: 29.5.0 - jest-mock: 29.5.0 - jest-util: 29.5.0 - dev: true - /@jest/globals/28.1.3: resolution: {integrity: sha512-XFU4P4phyryCXu1pbcqMO0GSQcYe1IsalYCDzRNyhetyeyxMcIxa11qPNDpVNLeretItNqEmYYQn1UYz/5x1NA==} engines: {node: ^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0} @@ -5045,18 +4884,6 @@ packages: - supports-color dev: true - /@jest/globals/29.5.0: - resolution: {integrity: sha512-S02y0qMWGihdzNbUiqSAiKSpSozSuHX5UYc7QbnHP+D9Lyw8DgGGCinrN9uSuHPeKgSSzvPom2q1nAtBvUsvPQ==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - dependencies: - '@jest/environment': 29.5.0 - '@jest/expect': 29.5.0 - '@jest/types': 29.5.0 - jest-mock: 29.5.0 - transitivePeerDependencies: - - supports-color - dev: true - /@jest/reporters/28.1.3: resolution: {integrity: sha512-JuAy7wkxQZVNU/V6g9xKzCGC5LVXx9FDcABKsSXp5MiKPEE2144a/vXTEDoyzjUpZKfVwp08Wqg5A4WfTMAzjg==} engines: {node: ^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0} @@ -5072,7 +4899,7 @@ packages: '@jest/transform': 28.1.3 '@jest/types': 28.1.3 '@jridgewell/trace-mapping': 0.3.15 - '@types/node': 18.11.18 + '@types/node': 18.15.11 chalk: 4.1.2 collect-v8-coverage: 1.0.1 exit: 0.1.2 @@ -5095,43 +4922,6 @@ packages: - supports-color dev: true - /@jest/reporters/29.5.0: - resolution: {integrity: sha512-D05STXqj/M8bP9hQNSICtPqz97u7ffGzZu+9XLucXhkOFBqKcXe04JLZOgIekOxdb73MAoBUFnqvf7MCpKk5OA==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - peerDependencies: - node-notifier: ^8.0.1 || ^9.0.0 || ^10.0.0 - peerDependenciesMeta: - node-notifier: - optional: true - dependencies: - '@bcoe/v8-coverage': 0.2.3 - '@jest/console': 29.5.0 - '@jest/test-result': 29.5.0 - '@jest/transform': 29.5.0 - '@jest/types': 29.5.0 - '@jridgewell/trace-mapping': 0.3.15 - '@types/node': 18.11.18 - chalk: 4.1.2 - collect-v8-coverage: 1.0.1 - exit: 0.1.2 - glob: 7.2.3 - graceful-fs: 4.2.10 - istanbul-lib-coverage: 3.2.0 - istanbul-lib-instrument: 5.2.1 - istanbul-lib-report: 3.0.0 - istanbul-lib-source-maps: 4.0.1 - istanbul-reports: 3.1.5 - jest-message-util: 29.5.0 - jest-util: 29.5.0 - jest-worker: 29.5.0 - slash: 3.0.0 - string-length: 4.0.2 - strip-ansi: 6.0.1 - v8-to-istanbul: 9.0.1 - transitivePeerDependencies: - - supports-color - dev: true - /@jest/schemas/28.1.3: resolution: {integrity: sha512-/l/VWsdt/aBXgjshLWOFyFt3IVdYypu5y2Wn2rOO1un6nkqIn8SLXzgIMYXFyYsRWDyF5EthmKJMIdJvk08grg==} engines: {node: ^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0} @@ -5139,13 +4929,6 @@ packages: '@sinclair/typebox': 0.24.51 dev: true - /@jest/schemas/29.4.3: - resolution: {integrity: sha512-VLYKXQmtmuEz6IxJsrZwzG9NvtkQsWNnWMsKxqWNu3+CnfzJQhp0WDDKWLVV9hLKr0l3SLLFRqcYHjhtyuDVxg==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - dependencies: - '@sinclair/typebox': 0.25.24 - dev: true - /@jest/source-map/28.1.2: resolution: {integrity: sha512-cV8Lx3BeStJb8ipPHnqVw/IM2VCMWO3crWZzYodSIkxXnRcXJipCdx1JCK0K5MsJJouZQTH73mzf4vgxRaH9ww==} engines: {node: ^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0} @@ -5155,15 +4938,6 @@ packages: graceful-fs: 4.2.10 dev: true - /@jest/source-map/29.4.3: - resolution: {integrity: sha512-qyt/mb6rLyd9j1jUts4EQncvS6Yy3PM9HghnNv86QBlV+zdL2inCdK1tuVlL+J+lpiw2BI67qXOrX3UurBqQ1w==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - dependencies: - '@jridgewell/trace-mapping': 0.3.15 - callsites: 3.1.0 - graceful-fs: 4.2.10 - dev: true - /@jest/test-result/28.1.3: resolution: {integrity: sha512-kZAkxnSE+FqE8YjW8gNuoVkkC9I7S1qmenl8sGcDOLropASP+BkcGKwhXoyqQuGOGeYY0y/ixjrd/iERpEXHNg==} engines: {node: ^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0} @@ -5174,16 +4948,6 @@ packages: collect-v8-coverage: 1.0.1 dev: true - /@jest/test-result/29.5.0: - resolution: {integrity: sha512-fGl4rfitnbfLsrfx1uUpDEESS7zM8JdgZgOCQuxQvL1Sn/I6ijeAVQWGfXI9zb1i9Mzo495cIpVZhA0yr60PkQ==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - dependencies: - '@jest/console': 29.5.0 - '@jest/types': 29.5.0 - '@types/istanbul-lib-coverage': 2.0.4 - collect-v8-coverage: 1.0.1 - dev: true - /@jest/test-sequencer/28.1.3: resolution: {integrity: sha512-NIMPEqqa59MWnDi1kvXXpYbqsfQmSJsIbnd85mdVGkiDfQ9WQQTXOLsvISUfonmnBT+w85WEgneCigEEdHDFxw==} engines: {node: ^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0} @@ -5194,16 +4958,6 @@ packages: slash: 3.0.0 dev: true - /@jest/test-sequencer/29.5.0: - resolution: {integrity: sha512-yPafQEcKjkSfDXyvtgiV4pevSeyuA6MQr6ZIdVkWJly9vkqjnFfcfhRQqpD5whjoU8EORki752xQmjaqoFjzMQ==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - dependencies: - '@jest/test-result': 29.5.0 - graceful-fs: 4.2.10 - jest-haste-map: 29.5.0 - slash: 3.0.0 - dev: true - /@jest/transform/28.1.3: resolution: {integrity: sha512-u5dT5di+oFI6hfcLOHGTAfmUxFRrjK+vnaP0kkVow9Md/M7V/MxqQMOz/VV25UZO8pzeA9PjfTpOu6BDuwSPQA==} engines: {node: ^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0} @@ -5227,29 +4981,6 @@ packages: - supports-color dev: true - /@jest/transform/29.5.0: - resolution: {integrity: sha512-8vbeZWqLJOvHaDfeMuoHITGKSz5qWc9u04lnWrQE3VyuSw604PzQM824ZeX9XSjUCeDiE3GuxZe5UKa8J61NQw==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - dependencies: - '@babel/core': 7.20.12 - '@jest/types': 29.5.0 - '@jridgewell/trace-mapping': 0.3.15 - babel-plugin-istanbul: 6.1.1 - chalk: 4.1.2 - convert-source-map: 2.0.0 - fast-json-stable-stringify: 2.1.0 - graceful-fs: 4.2.10 - jest-haste-map: 29.5.0 - jest-regex-util: 29.4.3 - jest-util: 29.5.0 - micromatch: 4.0.5 - pirates: 4.0.5 - slash: 3.0.0 - write-file-atomic: 4.0.2 - transitivePeerDependencies: - - supports-color - dev: true - /@jest/types/28.1.3: resolution: {integrity: sha512-RyjiyMUZrKz/c+zlMFO1pm70DcIlST8AeWTkoUdZevew44wcNZQHsEVOiCVtgVnlFFD82FPaXycys58cf2muVQ==} engines: {node: ^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0} @@ -5257,19 +4988,7 @@ packages: '@jest/schemas': 28.1.3 '@types/istanbul-lib-coverage': 2.0.4 '@types/istanbul-reports': 3.0.1 - '@types/node': 18.11.18 - '@types/yargs': 17.0.19 - chalk: 4.1.2 - dev: true - - /@jest/types/29.5.0: - resolution: {integrity: sha512-qbu7kN6czmVRc3xWFQcAN03RAUamgppVUdXrvl1Wr3jlNF93o9mJbGcDWrwGB6ht44u7efB1qCFgVQmca24Uog==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - dependencies: - '@jest/schemas': 29.4.3 - '@types/istanbul-lib-coverage': 2.0.4 - '@types/istanbul-reports': 3.0.1 - '@types/node': 18.11.18 + '@types/node': 18.15.11 '@types/yargs': 17.0.19 chalk: 4.1.2 dev: true @@ -5438,8 +5157,8 @@ packages: - utf-8-validate dev: true - /@mysten/sui.js/0.31.0_typescript@4.8.4: - resolution: {integrity: sha512-yDM1JaY3N5VY4lsM/9H1Etdo/Ha0d9OalXkQGK4QjV4VFGxSSzDBeAJpuT+zI72QuzhWqqCeLZogcmpfsUCSpA==} + /@mysten/sui.js/0.32.1_typescript@4.8.4: + resolution: {integrity: sha512-HD3D/3g//dx5e/1W42krEv4+Zl5PP0faH229jFOhnOktIRGxRrDfb6eU2+juclTug2e68JseTiX2QulIh+2/FQ==} engines: {node: '>=16'} dependencies: '@mysten/bcs': 0.7.0 @@ -5492,10 +5211,10 @@ packages: - utf-8-validate dev: true - /@mysten/wallet-standard/0.5.1_typescript@4.8.4: - resolution: {integrity: sha512-r4pWqVZ4blziaBrhVpexNve+oQUGZDOeIlH24VGg4HZ3QWu4VH9GNF34OraY8yjuwyrDsJwXBPxm0U++jobDtA==} + /@mysten/wallet-standard/0.5.3_typescript@4.8.4: + resolution: {integrity: sha512-lEb8MZnmW2Eqfkc28yU9vkVDlMR5okEJGxN0li/JWF6PFqVD2odRCXUlT8mqdzGVMktnTGX4YfB9foTN+apJuA==} dependencies: - '@mysten/sui.js': 0.31.0_typescript@4.8.4 + '@mysten/sui.js': 0.32.1_typescript@4.8.4 '@wallet-standard/core': 1.0.3 transitivePeerDependencies: - bufferutil @@ -6131,10 +5850,6 @@ packages: resolution: {integrity: sha512-1P1OROm/rdubP5aFDSZQILU0vrLCJ4fvHt6EoqHEM+2D/G5MK3bIaymUKLit8Js9gbns5UyJnkP/TZROLw4tUA==} dev: true - /@sinclair/typebox/0.25.24: - resolution: {integrity: sha512-XJfwUVUKDHF5ugKwIcxEgc9k8b7HbznCp6eUfWgu710hMPNIO4aw4/zB5RogDQz8nd6gyCDpU9O/m6qYEWY6yQ==} - dev: true - /@sindresorhus/is/0.14.0: resolution: {integrity: sha512-9NET910DNaIPngYnLLPeg+Ogzqsi9uM4mSboU5y6p8S5DzMTVEsJZrawi+BoDNUVBa2DhJqQYUFvMDfgU062LQ==} engines: {node: '>=6'} @@ -6146,22 +5861,10 @@ packages: type-detect: 4.0.8 dev: true - /@sinonjs/commons/2.0.0: - resolution: {integrity: sha512-uLa0j859mMrg2slwQYdO/AkrOfmH+X6LTVmNTS9CqexuE2IvVORIkSpJLqePAbEnKJ77aMmCwr1NUZ57120Xcg==} + /@sinonjs/fake-timers/9.1.2: + resolution: {integrity: sha512-BPS4ynJW/o92PUR4wgriz2Ud5gpST5vz6GQfMixEDK0Z8ZCUv2M7SkBLykH56T++Xs+8ln9zTGbOvNGIe02/jw==} dependencies: - type-detect: 4.0.8 - dev: true - - /@sinonjs/fake-timers/10.0.2: - resolution: {integrity: sha512-SwUDyjWnah1AaNl7kxsa7cfLhlTYoiyhDAIgyh+El30YvXs/o7OLXpYH88Zdhyx9JExKrmHDJ+10bwIcY80Jmw==} - dependencies: - '@sinonjs/commons': 2.0.0 - dev: true - - /@sinonjs/fake-timers/9.1.2: - resolution: {integrity: sha512-BPS4ynJW/o92PUR4wgriz2Ud5gpST5vz6GQfMixEDK0Z8ZCUv2M7SkBLykH56T++Xs+8ln9zTGbOvNGIe02/jw==} - dependencies: - '@sinonjs/commons': 1.8.6 + '@sinonjs/commons': 1.8.6 dev: true /@slorber/static-site-generator-webpack-plugin/4.0.7: @@ -6620,7 +6323,7 @@ packages: /@types/connect/3.4.35: resolution: {integrity: sha512-cdeYyv4KWoEgpBISTxWvqYsVy444DOqehiF3fM3ne10AmJ62RSyNkUnxMJXHQWRQQX2eR94m5y1IZyDwBjV9FQ==} dependencies: - '@types/node': 18.11.18 + '@types/node': 18.15.11 /@types/cookie/0.4.1: resolution: {integrity: sha512-XW/Aa8APYr6jSVVA1y/DEIZX0/GMKLEVekNG727R8cs56ahETkRAy/3DR7+fJyh7oUgGwNQaRfXCun0+KbWY7Q==} @@ -6674,7 +6377,7 @@ packages: /@types/graceful-fs/4.1.5: resolution: {integrity: sha512-anKkLmZZ+xm4p8JWBf4hElkM4XR+EZeA2M9BAkkTldmcyDY4mbdIJnRghDJH3Ov5ooY7/UAoENtmdMSkaAd7Cw==} dependencies: - '@types/node': 18.11.18 + '@types/node': 18.15.11 dev: true /@types/hast/2.3.4: @@ -6726,7 +6429,7 @@ packages: /@types/jsdom/16.2.15: resolution: {integrity: sha512-nwF87yjBKuX/roqGYerZZM0Nv1pZDMAT5YhOHYeM/72Fic+VEqJh4nyoqoapzJnW3pUlfxPY5FhgsJtM+dRnQQ==} dependencies: - '@types/node': 18.11.18 + '@types/node': 18.15.11 '@types/parse5': 6.0.3 '@types/tough-cookie': 4.0.2 dev: true @@ -6786,6 +6489,9 @@ packages: /@types/node/18.11.18: resolution: {integrity: sha512-DHQpWGjyQKSHj3ebjFI/wRKcqQcdR+MoFBygntYOZytCqNfkd2ZC4ARDJ2DQqhjH5p85Nnd3jhUJIXrszFX/JA==} + /@types/node/18.15.11: + resolution: {integrity: sha512-E5Kwq2n4SbMzQOn6wnmBjuK9ouqlURrcZDVfbo9ftDDTFt3nk7ZKK4GMOzoYgnpQJKcxwQw+lGaBvvlMo0qN/Q==} + /@types/normalize-package-data/2.4.1: resolution: {integrity: sha512-Gj7cI7z+98M282Tqmp2K5EIsoouUEzbBJhQQzDE3jSIRk6r9gsz0oUokqIUR4u1R3dMHo0pDHM7sNOHyhulypw==} dev: true @@ -6852,7 +6558,7 @@ packages: /@types/resolve/1.17.1: resolution: {integrity: sha512-yy7HuzQhj0dhGpD8RLXSZWEkLsV9ibvxvi6EiJ3bkqLAO1RGo0WbkWQiwpRlSFymTJRz0d3k5LM3kkx8ArDbLw==} dependencies: - '@types/node': 18.11.18 + '@types/node': 18.15.11 dev: true /@types/responselike/1.0.0: @@ -6893,7 +6599,7 @@ packages: /@types/set-cookie-parser/2.4.2: resolution: {integrity: sha512-fBZgytwhYAUkj/jC/FAV4RQ5EerRup1YQsXQCh8rZfiHkc4UahC192oH0smGwsXol3cL3A5oETuAHeQHmhXM4w==} dependencies: - '@types/node': 18.11.18 + '@types/node': 18.15.11 dev: false /@types/sockjs/0.3.33: @@ -6917,7 +6623,7 @@ packages: /@types/ws/7.4.7: resolution: {integrity: sha512-JQbbmxZTZehdc2iszGKs5oC3NFnjeay7mtAWrdt7qNtAVK0g19muApzAy4bm9byz79xa2ZnO/BOBC2R8RC5Lww==} dependencies: - '@types/node': 18.11.18 + '@types/node': 18.15.11 /@types/ws/8.5.3: resolution: {integrity: sha512-6YOoWjruKj1uLf3INHH7D3qTXwFfEsg1kf3c0uDdSBJwfa/llkwIjrAGV7j7mVgGNbzTQ3HiHKKDXl6bJPD97w==} @@ -7675,24 +7381,6 @@ packages: - supports-color dev: true - /babel-jest/29.5.0_@babel+core@7.20.12: - resolution: {integrity: sha512-mA4eCDh5mSo2EcA9xQjVTpmbbNk32Zb3Q3QFQsNhaK56Q+yoXowzFodLux30HRgyOho5rsQ6B0P9QpMkvvnJ0Q==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - peerDependencies: - '@babel/core': ^7.8.0 - dependencies: - '@babel/core': 7.20.12 - '@jest/transform': 29.5.0 - '@types/babel__core': 7.1.20 - babel-plugin-istanbul: 6.1.1 - babel-preset-jest: 29.5.0_@babel+core@7.20.12 - chalk: 4.1.2 - graceful-fs: 4.2.10 - slash: 3.0.0 - transitivePeerDependencies: - - supports-color - dev: true - /babel-loader/8.2.5_rhsdbzevgb5tizdhlla5jsbgyu: resolution: {integrity: sha512-OSiFfH89LrEMiWd4pLNqGz4CwJDtbs2ZVc+iGu2HrkRfPxId9F2anQj38IxWpmRfsUY0aBZYi1EFcd3mhtRMLQ==} engines: {node: '>= 8.9'} @@ -7753,16 +7441,6 @@ packages: '@types/babel__traverse': 7.18.3 dev: true - /babel-plugin-jest-hoist/29.5.0: - resolution: {integrity: sha512-zSuuuAlTMT4mzLj2nPnUm6fsE6270vdOfnpbJ+RmruU75UhLFvL0N2NgI7xpeS7NaB6hGqmd5pVpGTDYvi4Q3w==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - dependencies: - '@babel/template': 7.20.7 - '@babel/types': 7.20.7 - '@types/babel__core': 7.1.20 - '@types/babel__traverse': 7.18.3 - dev: true - /babel-plugin-polyfill-corejs2/0.3.3: resolution: {integrity: sha512-8hOdmFYFSZhqg2C/JgLUQ+t52o5nirNwaWM2B9LWteozwIvM14VSwdsCAUET10qT+kmySAlseadmfeeSWFCy+Q==} peerDependencies: @@ -7888,26 +7566,6 @@ packages: '@babel/plugin-syntax-top-level-await': 7.14.5_@babel+core@7.19.6 dev: true - /babel-preset-current-node-syntax/1.0.1_@babel+core@7.20.12: - resolution: {integrity: sha512-M7LQ0bxarkxQoN+vz5aJPsLBn77n8QgTFmo8WK0/44auK2xlCXrYcUxHFxgU7qW5Yzw/CjmLRK2uJzaCd7LvqQ==} - peerDependencies: - '@babel/core': ^7.0.0 - dependencies: - '@babel/core': 7.20.12 - '@babel/plugin-syntax-async-generators': 7.8.4_@babel+core@7.20.12 - '@babel/plugin-syntax-bigint': 7.8.3_@babel+core@7.20.12 - '@babel/plugin-syntax-class-properties': 7.12.13_@babel+core@7.20.12 - '@babel/plugin-syntax-import-meta': 7.10.4_@babel+core@7.20.12 - '@babel/plugin-syntax-json-strings': 7.8.3_@babel+core@7.20.12 - '@babel/plugin-syntax-logical-assignment-operators': 7.10.4_@babel+core@7.20.12 - '@babel/plugin-syntax-nullish-coalescing-operator': 7.8.3_@babel+core@7.20.12 - '@babel/plugin-syntax-numeric-separator': 7.10.4_@babel+core@7.20.12 - '@babel/plugin-syntax-object-rest-spread': 7.8.3_@babel+core@7.20.12 - '@babel/plugin-syntax-optional-catch-binding': 7.8.3_@babel+core@7.20.12 - '@babel/plugin-syntax-optional-chaining': 7.8.3_@babel+core@7.20.12 - '@babel/plugin-syntax-top-level-await': 7.14.5_@babel+core@7.20.12 - dev: true - /babel-preset-jest/28.1.3_@babel+core@7.19.6: resolution: {integrity: sha512-L+fupJvlWAHbQfn74coNX3zf60LXMJsezNvvx8eIh7iOR1luJ1poxYgQk1F8PYtNq/6QODDHCqsSnTFSWC491A==} engines: {node: ^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0} @@ -7919,17 +7577,6 @@ packages: babel-preset-current-node-syntax: 1.0.1_@babel+core@7.19.6 dev: true - /babel-preset-jest/29.5.0_@babel+core@7.20.12: - resolution: {integrity: sha512-JOMloxOqdiBSxMAzjRaH023/vvcaSaec49zvg+2LmNsktC7ei39LTJGw02J+9uUtTZUq6xbLyJ4dxe9sSmIuAg==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - peerDependencies: - '@babel/core': ^7.0.0 - dependencies: - '@babel/core': 7.20.12 - babel-plugin-jest-hoist: 29.5.0 - babel-preset-current-node-syntax: 1.0.1_@babel+core@7.20.12 - dev: true - /bail/1.0.5: resolution: {integrity: sha512-xFbRxM1tahm08yHBP16MMjVUAvDaBMD38zsM9EMAUN61omwLmKlOpB/Zku5QkjZ8TZ4vn53pj+t518cH0S03RQ==} dev: false @@ -8637,10 +8284,6 @@ packages: /convert-source-map/1.9.0: resolution: {integrity: sha512-ASFBup0Mz1uyiIjANan1jzLQami9z1PoYSZCiiYW2FczPbenXc45FZdBZLzOT+r6+iciuEModtmCti+hjaAk0A==} - /convert-source-map/2.0.0: - resolution: {integrity: sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==} - dev: true - /cookie-signature/1.0.6: resolution: {integrity: sha512-QADzlaHc8icV8I7vbaJXJwod9HWYp8uCqf1xa4OfNu1T7JVxQIrUgOWtHdNDtPiywmFbiS12VjotIXLrKM3orQ==} dev: false @@ -9198,11 +8841,6 @@ packages: engines: {node: ^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0} dev: true - /diff-sequences/29.4.3: - resolution: {integrity: sha512-ofrBgwpPhCD85kMKtE9RYFFq6OC1A89oW2vvgWZNCwxrUpRUILopY7lsYyMDSjc8g6U6aiO0Qubg6r4Wgt5ZnA==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - dev: true - /diff/4.0.2: resolution: {integrity: sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A==} engines: {node: '>=0.3.1'} @@ -9349,11 +8987,6 @@ packages: engines: {node: '>=12'} dev: true - /emittery/0.13.1: - resolution: {integrity: sha512-DeWwawk6r5yR9jFgnDKYt4sLS0LmHJJi3ZOnb5/JdbYwj3nW+FxQnHIjhBKz8YLC7oRNPVM9NQ47I3CVx34eqQ==} - engines: {node: '>=12'} - dev: true - /emoji-regex/8.0.0: resolution: {integrity: sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==} @@ -10183,17 +9816,6 @@ packages: jest-util: 28.1.3 dev: true - /expect/29.5.0: - resolution: {integrity: sha512-yM7xqUrCO2JdpFo4XpM82t+PJBFybdqoQuJLDGeDX2ij8NZzqRHyu3Hp188/JX7SWqud+7t4MUdvcgGBICMHZg==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - dependencies: - '@jest/expect-utils': 29.5.0 - jest-get-type: 29.4.3 - jest-matcher-utils: 29.5.0 - jest-message-util: 29.5.0 - jest-util: 29.5.0 - dev: true - /express/4.18.1: resolution: {integrity: sha512-zZBcOX9TfehHQhtupq57OF8lFZ3UZi08Y97dwFCkD8p9d/d2Y3M+ykKcwaMDEL+4qyUolgBDX6AblpR3fL212Q==} engines: {node: '>= 0.10.0'} @@ -11823,14 +11445,6 @@ packages: p-limit: 3.1.0 dev: true - /jest-changed-files/29.5.0: - resolution: {integrity: sha512-IFG34IUMUaNBIxjQXF/iu7g6EcdMrGRRxaUSw92I/2g2YC6vCdTltl4nHvt7Ci5nSJwXIkCu8Ka1DKF+X7Z1Ag==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - dependencies: - execa: 5.1.1 - p-limit: 3.1.0 - dev: true - /jest-circus/28.1.3: resolution: {integrity: sha512-cZ+eS5zc79MBwt+IhQhiEp0OeBddpc1n8MBo1nMB8A7oPMKEO+Sre+wHaLJexQUj9Ya/8NOBY0RESUgYjB6fow==} engines: {node: ^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0} @@ -11839,7 +11453,7 @@ packages: '@jest/expect': 28.1.3 '@jest/test-result': 28.1.3 '@jest/types': 28.1.3 - '@types/node': 18.11.18 + '@types/node': 18.15.11 chalk: 4.1.2 co: 4.6.0 dedent: 0.7.0 @@ -11858,35 +11472,7 @@ packages: - supports-color dev: true - /jest-circus/29.5.0: - resolution: {integrity: sha512-gq/ongqeQKAplVxqJmbeUOJJKkW3dDNPY8PjhJ5G0lBRvu0e3EWGxGy5cI4LAGA7gV2UHCtWBI4EMXK8c9nQKA==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - dependencies: - '@jest/environment': 29.5.0 - '@jest/expect': 29.5.0 - '@jest/test-result': 29.5.0 - '@jest/types': 29.5.0 - '@types/node': 18.11.18 - chalk: 4.1.2 - co: 4.6.0 - dedent: 0.7.0 - is-generator-fn: 2.1.0 - jest-each: 29.5.0 - jest-matcher-utils: 29.5.0 - jest-message-util: 29.5.0 - jest-runtime: 29.5.0 - jest-snapshot: 29.5.0 - jest-util: 29.5.0 - p-limit: 3.1.0 - pretty-format: 29.5.0 - pure-rand: 6.0.1 - slash: 3.0.0 - stack-utils: 2.0.6 - transitivePeerDependencies: - - supports-color - dev: true - - /jest-cli/28.1.3_ts-node@10.9.1: + /jest-cli/28.1.3: resolution: {integrity: sha512-roY3kvrv57Azn1yPgdTebPAXvdR2xfezaKKYzVxZ6It/5NCxzJym6tUI5P1zkdWhfUYkxEI9uZWcQdaFLo8mJQ==} engines: {node: ^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0} hasBin: true @@ -11896,14 +11482,14 @@ packages: node-notifier: optional: true dependencies: - '@jest/core': 28.1.3_ts-node@10.9.1 + '@jest/core': 28.1.3 '@jest/test-result': 28.1.3 '@jest/types': 28.1.3 chalk: 4.1.2 exit: 0.1.2 graceful-fs: 4.2.10 import-local: 3.1.0 - jest-config: 28.1.3_ts-node@10.9.1 + jest-config: 28.1.3 jest-util: 28.1.3 jest-validate: 28.1.3 prompts: 2.4.2 @@ -11914,9 +11500,9 @@ packages: - ts-node dev: true - /jest-cli/29.5.0: - resolution: {integrity: sha512-L1KcP1l4HtfwdxXNFCL5bmUbLQiKrakMUriBEcc1Vfz6gx31ORKdreuWvmQVBit+1ss9NNR3yxjwfwzZNdQXJw==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + /jest-cli/28.1.3_rrli7kzx2akox3oq6aahu3rvje: + resolution: {integrity: sha512-roY3kvrv57Azn1yPgdTebPAXvdR2xfezaKKYzVxZ6It/5NCxzJym6tUI5P1zkdWhfUYkxEI9uZWcQdaFLo8mJQ==} + engines: {node: ^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0} hasBin: true peerDependencies: node-notifier: ^8.0.1 || ^9.0.0 || ^10.0.0 @@ -11924,16 +11510,16 @@ packages: node-notifier: optional: true dependencies: - '@jest/core': 29.5.0 - '@jest/test-result': 29.5.0 - '@jest/types': 29.5.0 + '@jest/core': 28.1.3_ts-node@10.9.1 + '@jest/test-result': 28.1.3 + '@jest/types': 28.1.3 chalk: 4.1.2 exit: 0.1.2 graceful-fs: 4.2.10 import-local: 3.1.0 - jest-config: 29.5.0 - jest-util: 29.5.0 - jest-validate: 29.5.0 + jest-config: 28.1.3_rrli7kzx2akox3oq6aahu3rvje + jest-util: 28.1.3 + jest-validate: 28.1.3 prompts: 2.4.2 yargs: 17.6.2 transitivePeerDependencies: @@ -11942,7 +11528,7 @@ packages: - ts-node dev: true - /jest-config/28.1.3_ts-node@10.9.1: + /jest-config/28.1.3: resolution: {integrity: sha512-MG3INjByJ0J4AsNBm7T3hsuxKQqFIiRo/AUqb1q9LRKI5UU6Aar9JHbr9Ivn1TVwfUD9KirRoM/T6u8XlcQPHQ==} engines: {node: ^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0} peerDependencies: @@ -11976,12 +11562,11 @@ packages: pretty-format: 28.1.3 slash: 3.0.0 strip-json-comments: 3.1.1 - ts-node: 10.9.1_typescript@4.8.4 transitivePeerDependencies: - supports-color dev: true - /jest-config/28.1.3_zfha7dvnw4nti6zkbsmhmn6xo4: + /jest-config/28.1.3_@types+node@18.15.11: resolution: {integrity: sha512-MG3INjByJ0J4AsNBm7T3hsuxKQqFIiRo/AUqb1q9LRKI5UU6Aar9JHbr9Ivn1TVwfUD9KirRoM/T6u8XlcQPHQ==} engines: {node: ^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0} peerDependencies: @@ -11996,7 +11581,7 @@ packages: '@babel/core': 7.19.6 '@jest/test-sequencer': 28.1.3 '@jest/types': 28.1.3 - '@types/node': 18.11.18 + '@types/node': 18.15.11 babel-jest: 28.1.3_@babel+core@7.19.6 chalk: 4.1.2 ci-info: 3.7.1 @@ -12016,52 +11601,13 @@ packages: pretty-format: 28.1.3 slash: 3.0.0 strip-json-comments: 3.1.1 - ts-node: 10.9.1_typescript@4.8.4 - transitivePeerDependencies: - - supports-color - dev: true - - /jest-config/29.5.0: - resolution: {integrity: sha512-kvDUKBnNJPNBmFFOhDbm59iu1Fii1Q6SxyhXfvylq3UTHbg6o7j/g8k2dZyXWLvfdKB1vAPxNZnMgtKJcmu3kA==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - peerDependencies: - '@types/node': '*' - ts-node: '>=9.0.0' - peerDependenciesMeta: - '@types/node': - optional: true - ts-node: - optional: true - dependencies: - '@babel/core': 7.20.12 - '@jest/test-sequencer': 29.5.0 - '@jest/types': 29.5.0 - babel-jest: 29.5.0_@babel+core@7.20.12 - chalk: 4.1.2 - ci-info: 3.7.1 - deepmerge: 4.2.2 - glob: 7.2.3 - graceful-fs: 4.2.10 - jest-circus: 29.5.0 - jest-environment-node: 29.5.0 - jest-get-type: 29.4.3 - jest-regex-util: 29.4.3 - jest-resolve: 29.5.0 - jest-runner: 29.5.0 - jest-util: 29.5.0 - jest-validate: 29.5.0 - micromatch: 4.0.5 - parse-json: 5.2.0 - pretty-format: 29.5.0 - slash: 3.0.0 - strip-json-comments: 3.1.1 transitivePeerDependencies: - supports-color dev: true - /jest-config/29.5.0_@types+node@18.11.18: - resolution: {integrity: sha512-kvDUKBnNJPNBmFFOhDbm59iu1Fii1Q6SxyhXfvylq3UTHbg6o7j/g8k2dZyXWLvfdKB1vAPxNZnMgtKJcmu3kA==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + /jest-config/28.1.3_rrli7kzx2akox3oq6aahu3rvje: + resolution: {integrity: sha512-MG3INjByJ0J4AsNBm7T3hsuxKQqFIiRo/AUqb1q9LRKI5UU6Aar9JHbr9Ivn1TVwfUD9KirRoM/T6u8XlcQPHQ==} + engines: {node: ^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0} peerDependencies: '@types/node': '*' ts-node: '>=9.0.0' @@ -12071,29 +11617,30 @@ packages: ts-node: optional: true dependencies: - '@babel/core': 7.20.12 - '@jest/test-sequencer': 29.5.0 - '@jest/types': 29.5.0 - '@types/node': 18.11.18 - babel-jest: 29.5.0_@babel+core@7.20.12 + '@babel/core': 7.19.6 + '@jest/test-sequencer': 28.1.3 + '@jest/types': 28.1.3 + '@types/node': 18.15.11 + babel-jest: 28.1.3_@babel+core@7.19.6 chalk: 4.1.2 ci-info: 3.7.1 deepmerge: 4.2.2 glob: 7.2.3 graceful-fs: 4.2.10 - jest-circus: 29.5.0 - jest-environment-node: 29.5.0 - jest-get-type: 29.4.3 - jest-regex-util: 29.4.3 - jest-resolve: 29.5.0 - jest-runner: 29.5.0 - jest-util: 29.5.0 - jest-validate: 29.5.0 + jest-circus: 28.1.3 + jest-environment-node: 28.1.3 + jest-get-type: 28.0.2 + jest-regex-util: 28.0.2 + jest-resolve: 28.1.3 + jest-runner: 28.1.3 + jest-util: 28.1.3 + jest-validate: 28.1.3 micromatch: 4.0.5 parse-json: 5.2.0 - pretty-format: 29.5.0 + pretty-format: 28.1.3 slash: 3.0.0 strip-json-comments: 3.1.1 + ts-node: 10.9.1_3xy4ijntdaqs3bnplv7a3vjax4 transitivePeerDependencies: - supports-color dev: true @@ -12108,16 +11655,6 @@ packages: pretty-format: 28.1.3 dev: true - /jest-diff/29.5.0: - resolution: {integrity: sha512-LtxijLLZBduXnHSniy0WMdaHjmQnt3g5sa16W4p0HqukYTTsyTW3GD1q41TyGl5YFXj/5B2U6dlh5FM1LIMgxw==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - dependencies: - chalk: 4.1.2 - diff-sequences: 29.4.3 - jest-get-type: 29.4.3 - pretty-format: 29.5.0 - dev: true - /jest-docblock/28.1.1: resolution: {integrity: sha512-3wayBVNiOYx0cwAbl9rwm5kKFP8yHH3d/fkEaL02NPTkDojPtheGB7HZSFY4wzX+DxyrvhXz0KSCVksmCknCuA==} engines: {node: ^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0} @@ -12125,13 +11662,6 @@ packages: detect-newline: 3.1.0 dev: true - /jest-docblock/29.4.3: - resolution: {integrity: sha512-fzdTftThczeSD9nZ3fzA/4KkHtnmllawWrXO69vtI+L9WjEIuXWs4AmyME7lN5hU7dB0sHhuPfcKofRsUb/2Fg==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - dependencies: - detect-newline: 3.1.0 - dev: true - /jest-each/28.1.3: resolution: {integrity: sha512-arT1z4sg2yABU5uogObVPvSlSMQlDA48owx07BDPAiasW0yYpYHYOo4HHLz9q0BVzDVU4hILFjzJw0So9aCL/g==} engines: {node: ^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0} @@ -12143,17 +11673,6 @@ packages: pretty-format: 28.1.3 dev: true - /jest-each/29.5.0: - resolution: {integrity: sha512-HM5kIJ1BTnVt+DQZ2ALp3rzXEl+g726csObrW/jpEGl+CDSSQpOJJX2KE/vEg8cxcMXdyEPu6U4QX5eruQv5hA==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - dependencies: - '@jest/types': 29.5.0 - chalk: 4.1.2 - jest-get-type: 29.4.3 - jest-util: 29.5.0 - pretty-format: 29.5.0 - dev: true - /jest-environment-jsdom/28.1.3: resolution: {integrity: sha512-HnlGUmZRdxfCByd3GM2F100DgQOajUBzEitjGqIREcb45kGjZvRrKUdlaF6escXBdcXNl0OBh+1ZrfeZT3GnAg==} engines: {node: ^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0} @@ -12162,7 +11681,7 @@ packages: '@jest/fake-timers': 28.1.3 '@jest/types': 28.1.3 '@types/jsdom': 16.2.15 - '@types/node': 18.11.18 + '@types/node': 18.15.11 jest-mock: 28.1.3 jest-util: 28.1.3 jsdom: 19.0.0 @@ -12180,40 +11699,23 @@ packages: '@jest/environment': 28.1.3 '@jest/fake-timers': 28.1.3 '@jest/types': 28.1.3 - '@types/node': 18.11.18 + '@types/node': 18.15.11 jest-mock: 28.1.3 jest-util: 28.1.3 dev: true - /jest-environment-node/29.5.0: - resolution: {integrity: sha512-ExxuIK/+yQ+6PRGaHkKewYtg6hto2uGCgvKdb2nfJfKXgZ17DfXjvbZ+jA1Qt9A8EQSfPnt5FKIfnOO3u1h9qw==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - dependencies: - '@jest/environment': 29.5.0 - '@jest/fake-timers': 29.5.0 - '@jest/types': 29.5.0 - '@types/node': 18.11.18 - jest-mock: 29.5.0 - jest-util: 29.5.0 - dev: true - /jest-get-type/28.0.2: resolution: {integrity: sha512-ioj2w9/DxSYHfOm5lJKCdcAmPJzQXmbM/Url3rhlghrPvT3tt+7a/+oXc9azkKmLvoiXjtV83bEWqi+vs5nlPA==} engines: {node: ^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0} dev: true - /jest-get-type/29.4.3: - resolution: {integrity: sha512-J5Xez4nRRMjk8emnTpWrlkyb9pfRQQanDrvWHhsR1+VUfbwxi30eVcZFlcdGInRibU4G5LwHXpI7IRHU0CY+gg==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - dev: true - /jest-haste-map/28.1.3: resolution: {integrity: sha512-3S+RQWDXccXDKSWnkHa/dPwt+2qwA8CJzR61w3FoYCvoo3Pn8tvGcysmMF0Bj0EX5RYvAI2EIvC57OmotfdtKA==} engines: {node: ^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0} dependencies: '@jest/types': 28.1.3 '@types/graceful-fs': 4.1.5 - '@types/node': 18.11.18 + '@types/node': 18.15.11 anymatch: 3.1.2 fb-watchman: 2.0.2 graceful-fs: 4.2.10 @@ -12226,25 +11728,6 @@ packages: fsevents: 2.3.2 dev: true - /jest-haste-map/29.5.0: - resolution: {integrity: sha512-IspOPnnBro8YfVYSw6yDRKh/TiCdRngjxeacCps1cQ9cgVN6+10JUcuJ1EabrgYLOATsIAigxA0rLR9x/YlrSA==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - dependencies: - '@jest/types': 29.5.0 - '@types/graceful-fs': 4.1.5 - '@types/node': 18.11.18 - anymatch: 3.1.2 - fb-watchman: 2.0.2 - graceful-fs: 4.2.10 - jest-regex-util: 29.4.3 - jest-util: 29.5.0 - jest-worker: 29.5.0 - micromatch: 4.0.5 - walker: 1.0.8 - optionalDependencies: - fsevents: 2.3.2 - dev: true - /jest-leak-detector/28.1.3: resolution: {integrity: sha512-WFVJhnQsiKtDEo5lG2mM0v40QWnBM+zMdHHyJs8AWZ7J0QZJS59MsyKeJHWhpBZBH32S48FOVvGyOFT1h0DlqA==} engines: {node: ^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0} @@ -12253,14 +11736,6 @@ packages: pretty-format: 28.1.3 dev: true - /jest-leak-detector/29.5.0: - resolution: {integrity: sha512-u9YdeeVnghBUtpN5mVxjID7KbkKE1QU4f6uUwuxiY0vYRi9BUCLKlPEZfDGR67ofdFmDz9oPAy2G92Ujrntmow==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - dependencies: - jest-get-type: 29.4.3 - pretty-format: 29.5.0 - dev: true - /jest-matcher-utils/28.1.3: resolution: {integrity: sha512-kQeJ7qHemKfbzKoGjHHrRKH6atgxMk8Enkk2iPQ3XwO6oE/KYD8lMYOziCkeSB9G4adPM4nR1DE8Tf5JeWH6Bw==} engines: {node: ^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0} @@ -12271,16 +11746,6 @@ packages: pretty-format: 28.1.3 dev: true - /jest-matcher-utils/29.5.0: - resolution: {integrity: sha512-lecRtgm/rjIK0CQ7LPQwzCs2VwW6WAahA55YBuI+xqmhm7LAaxokSB8C97yJeYyT+HvQkH741StzpU41wohhWw==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - dependencies: - chalk: 4.1.2 - jest-diff: 29.5.0 - jest-get-type: 29.4.3 - pretty-format: 29.5.0 - dev: true - /jest-message-util/28.1.3: resolution: {integrity: sha512-PFdn9Iewbt575zKPf1286Ht9EPoJmYT7P0kY+RibeYZ2XtOr53pDLEFoTWXbd1h4JiGiWpTBC84fc8xMXQMb7g==} engines: {node: ^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0} @@ -12296,36 +11761,12 @@ packages: stack-utils: 2.0.6 dev: true - /jest-message-util/29.5.0: - resolution: {integrity: sha512-Kijeg9Dag6CKtIDA7O21zNTACqD5MD/8HfIV8pdD94vFyFuer52SigdC3IQMhab3vACxXMiFk+yMHNdbqtyTGA==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - dependencies: - '@babel/code-frame': 7.18.6 - '@jest/types': 29.5.0 - '@types/stack-utils': 2.0.1 - chalk: 4.1.2 - graceful-fs: 4.2.10 - micromatch: 4.0.5 - pretty-format: 29.5.0 - slash: 3.0.0 - stack-utils: 2.0.6 - dev: true - /jest-mock/28.1.3: resolution: {integrity: sha512-o3J2jr6dMMWYVH4Lh/NKmDXdosrsJgi4AviS8oXLujcjpCMBb1FMsblDnOXKZKfSiHLxYub1eS0IHuRXsio9eA==} engines: {node: ^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0} dependencies: '@jest/types': 28.1.3 - '@types/node': 18.11.18 - dev: true - - /jest-mock/29.5.0: - resolution: {integrity: sha512-GqOzvdWDE4fAV2bWQLQCkujxYWL7RxjCnj71b5VhDAGOevB3qj3Ovg26A5NI84ZpODxyzaozXLOh2NCgkbvyaw==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - dependencies: - '@jest/types': 29.5.0 - '@types/node': 18.11.18 - jest-util: 29.5.0 + '@types/node': 18.15.11 dev: true /jest-pnp-resolver/1.2.3_jest-resolve@28.1.3: @@ -12340,28 +11781,11 @@ packages: jest-resolve: 28.1.3 dev: true - /jest-pnp-resolver/1.2.3_jest-resolve@29.5.0: - resolution: {integrity: sha512-+3NpwQEnRoIBtx4fyhblQDPgJI0H1IEIkX7ShLUjPGA7TtUTvI1oiKi3SR4oBR0hQhQR80l4WAe5RrXBwWMA8w==} - engines: {node: '>=6'} - peerDependencies: - jest-resolve: '*' - peerDependenciesMeta: - jest-resolve: - optional: true - dependencies: - jest-resolve: 29.5.0 - dev: true - /jest-regex-util/28.0.2: resolution: {integrity: sha512-4s0IgyNIy0y9FK+cjoVYoxamT7Zeo7MhzqRGx7YDYmaQn1wucY9rotiGkBzzcMXTtjrCAP/f7f+E0F7+fxPNdw==} engines: {node: ^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0} dev: true - /jest-regex-util/29.4.3: - resolution: {integrity: sha512-O4FglZaMmWXbGHSQInfXewIsd1LMn9p3ZXB/6r4FOkyhX2/iP/soMG98jGvk/A3HAN78+5VWcBGO0BJAPRh4kg==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - dev: true - /jest-resolve-dependencies/28.1.3: resolution: {integrity: sha512-qa0QO2Q0XzQoNPouMbCc7Bvtsem8eQgVPNkwn9LnS+R2n8DaVDPL/U1gngC0LTl1RYXJU0uJa2BMC2DbTfFrHA==} engines: {node: ^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0} @@ -12372,16 +11796,6 @@ packages: - supports-color dev: true - /jest-resolve-dependencies/29.5.0: - resolution: {integrity: sha512-sjV3GFr0hDJMBpYeUuGduP+YeCRbd7S/ck6IvL3kQ9cpySYKqcqhdLLC2rFwrcL7tz5vYibomBrsFYWkIGGjOg==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - dependencies: - jest-regex-util: 29.4.3 - jest-snapshot: 29.5.0 - transitivePeerDependencies: - - supports-color - dev: true - /jest-resolve/28.1.3: resolution: {integrity: sha512-Z1W3tTjE6QaNI90qo/BJpfnvpxtaFTFw5CDgwpyE/Kz8U/06N1Hjf4ia9quUhCh39qIGWF1ZuxFiBiJQwSEYKQ==} engines: {node: ^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0} @@ -12397,21 +11811,6 @@ packages: slash: 3.0.0 dev: true - /jest-resolve/29.5.0: - resolution: {integrity: sha512-1TzxJ37FQq7J10jPtQjcc+MkCkE3GBpBecsSUWJ0qZNJpmg6m0D9/7II03yJulm3H/fvVjgqLh/k2eYg+ui52w==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - dependencies: - chalk: 4.1.2 - graceful-fs: 4.2.10 - jest-haste-map: 29.5.0 - jest-pnp-resolver: 1.2.3_jest-resolve@29.5.0 - jest-util: 29.5.0 - jest-validate: 29.5.0 - resolve: 1.22.1 - resolve.exports: 2.0.2 - slash: 3.0.0 - dev: true - /jest-runner/28.1.3: resolution: {integrity: sha512-GkMw4D/0USd62OVO0oEgjn23TM+YJa2U2Wu5zz9xsQB1MxWKDOlrnykPxnMsN0tnJllfLPinHTka61u0QhaxBA==} engines: {node: ^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0} @@ -12421,7 +11820,7 @@ packages: '@jest/test-result': 28.1.3 '@jest/transform': 28.1.3 '@jest/types': 28.1.3 - '@types/node': 18.11.18 + '@types/node': 18.15.11 chalk: 4.1.2 emittery: 0.10.2 graceful-fs: 4.2.10 @@ -12441,35 +11840,6 @@ packages: - supports-color dev: true - /jest-runner/29.5.0: - resolution: {integrity: sha512-m7b6ypERhFghJsslMLhydaXBiLf7+jXy8FwGRHO3BGV1mcQpPbwiqiKUR2zU2NJuNeMenJmlFZCsIqzJCTeGLQ==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - dependencies: - '@jest/console': 29.5.0 - '@jest/environment': 29.5.0 - '@jest/test-result': 29.5.0 - '@jest/transform': 29.5.0 - '@jest/types': 29.5.0 - '@types/node': 18.11.18 - chalk: 4.1.2 - emittery: 0.13.1 - graceful-fs: 4.2.10 - jest-docblock: 29.4.3 - jest-environment-node: 29.5.0 - jest-haste-map: 29.5.0 - jest-leak-detector: 29.5.0 - jest-message-util: 29.5.0 - jest-resolve: 29.5.0 - jest-runtime: 29.5.0 - jest-util: 29.5.0 - jest-watcher: 29.5.0 - jest-worker: 29.5.0 - p-limit: 3.1.0 - source-map-support: 0.5.13 - transitivePeerDependencies: - - supports-color - dev: true - /jest-runtime/28.1.3: resolution: {integrity: sha512-NU+881ScBQQLc1JHG5eJGU7Ui3kLKrmwCPPtYsJtBykixrM2OhVQlpMmFWJjMyDfdkGgBMNjXCGB/ebzsgNGQw==} engines: {node: ^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0} @@ -12500,34 +11870,8 @@ packages: - supports-color dev: true - /jest-runtime/29.5.0: - resolution: {integrity: sha512-1Hr6Hh7bAgXQP+pln3homOiEZtCDZFqwmle7Ew2j8OlbkIu6uE3Y/etJQG8MLQs3Zy90xrp2C0BRrtPHG4zryw==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - dependencies: - '@jest/environment': 29.5.0 - '@jest/fake-timers': 29.5.0 - '@jest/globals': 29.5.0 - '@jest/source-map': 29.4.3 - '@jest/test-result': 29.5.0 - '@jest/transform': 29.5.0 - '@jest/types': 29.5.0 - '@types/node': 18.11.18 - chalk: 4.1.2 - cjs-module-lexer: 1.2.2 - collect-v8-coverage: 1.0.1 - glob: 7.2.3 - graceful-fs: 4.2.10 - jest-haste-map: 29.5.0 - jest-message-util: 29.5.0 - jest-mock: 29.5.0 - jest-regex-util: 29.4.3 - jest-resolve: 29.5.0 - jest-snapshot: 29.5.0 - jest-util: 29.5.0 - slash: 3.0.0 - strip-bom: 4.0.0 - transitivePeerDependencies: - - supports-color + /jest-simple-dot-reporter/1.0.5: + resolution: {integrity: sha512-cZLFG/C7k0+WYoIGGuGXKm0vmJiXlWG/m3uCZ4RaMPYxt8lxjdXMLHYkxXaQ7gVWaSPe7uAPCEUcRxthC5xskg==} dev: true /jest-snapshot/28.1.3: @@ -12561,55 +11905,12 @@ packages: - supports-color dev: true - /jest-snapshot/29.5.0: - resolution: {integrity: sha512-x7Wolra5V0tt3wRs3/ts3S6ciSQVypgGQlJpz2rsdQYoUKxMxPNaoHMGJN6qAuPJqS+2iQ1ZUn5kl7HCyls84g==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - dependencies: - '@babel/core': 7.20.12 - '@babel/generator': 7.20.14 - '@babel/plugin-syntax-jsx': 7.18.6_@babel+core@7.20.12 - '@babel/plugin-syntax-typescript': 7.18.6_@babel+core@7.20.12 - '@babel/traverse': 7.20.13 - '@babel/types': 7.20.7 - '@jest/expect-utils': 29.5.0 - '@jest/transform': 29.5.0 - '@jest/types': 29.5.0 - '@types/babel__traverse': 7.18.3 - '@types/prettier': 2.7.2 - babel-preset-current-node-syntax: 1.0.1_@babel+core@7.20.12 - chalk: 4.1.2 - expect: 29.5.0 - graceful-fs: 4.2.10 - jest-diff: 29.5.0 - jest-get-type: 29.4.3 - jest-matcher-utils: 29.5.0 - jest-message-util: 29.5.0 - jest-util: 29.5.0 - natural-compare: 1.4.0 - pretty-format: 29.5.0 - semver: 7.3.8 - transitivePeerDependencies: - - supports-color - dev: true - /jest-util/28.1.3: resolution: {integrity: sha512-XdqfpHwpcSRko/C35uLYFM2emRAltIIKZiJ9eAmhjsj0CqZMa0p1ib0R5fWIqGhn1a103DebTbpqIaP1qCQ6tQ==} engines: {node: ^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0} dependencies: '@jest/types': 28.1.3 - '@types/node': 18.11.18 - chalk: 4.1.2 - ci-info: 3.7.1 - graceful-fs: 4.2.10 - picomatch: 2.3.1 - dev: true - - /jest-util/29.5.0: - resolution: {integrity: sha512-RYMgG/MTadOr5t8KdhejfvUU82MxsCu5MF6KuDUHl+NuwzUt+Sm6jJWxTJVrDR1j5M/gJVCPKQEpWXY+yIQ6lQ==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - dependencies: - '@jest/types': 29.5.0 - '@types/node': 18.11.18 + '@types/node': 18.15.11 chalk: 4.1.2 ci-info: 3.7.1 graceful-fs: 4.2.10 @@ -12628,25 +11929,13 @@ packages: pretty-format: 28.1.3 dev: true - /jest-validate/29.5.0: - resolution: {integrity: sha512-pC26etNIi+y3HV8A+tUGr/lph9B18GnzSRAkPaaZJIE1eFdiYm6/CewuiJQ8/RlfHd1u/8Ioi8/sJ+CmbA+zAQ==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - dependencies: - '@jest/types': 29.5.0 - camelcase: 6.3.0 - chalk: 4.1.2 - jest-get-type: 29.4.3 - leven: 3.1.0 - pretty-format: 29.5.0 - dev: true - /jest-watcher/28.1.3: resolution: {integrity: sha512-t4qcqj9hze+jviFPUN3YAtAEeFnr/azITXQEMARf5cMwKY2SMBRnCQTXLixTl20OR6mLh9KLMrgVJgJISym+1g==} engines: {node: ^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0} dependencies: '@jest/test-result': 28.1.3 '@jest/types': 28.1.3 - '@types/node': 18.11.18 + '@types/node': 18.15.11 ansi-escapes: 4.3.2 chalk: 4.1.2 emittery: 0.10.2 @@ -12654,25 +11943,11 @@ packages: string-length: 4.0.2 dev: true - /jest-watcher/29.5.0: - resolution: {integrity: sha512-KmTojKcapuqYrKDpRwfqcQ3zjMlwu27SYext9pt4GlF5FUgB+7XE1mcCnSm6a4uUpFyQIkb6ZhzZvHl+jiBCiA==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - dependencies: - '@jest/test-result': 29.5.0 - '@jest/types': 29.5.0 - '@types/node': 18.11.18 - ansi-escapes: 4.3.2 - chalk: 4.1.2 - emittery: 0.13.1 - jest-util: 29.5.0 - string-length: 4.0.2 - dev: true - /jest-worker/26.6.2: resolution: {integrity: sha512-KWYVV1c4i+jbMpaBC+U++4Va0cp8OisU185o73T1vo99hqi7w8tSJfUXYswwqqrjzwxa6KpRK54WhPvwf5w6PQ==} engines: {node: '>= 10.13.0'} dependencies: - '@types/node': 18.11.18 + '@types/node': 18.15.11 merge-stream: 2.0.0 supports-color: 7.2.0 dev: true @@ -12689,22 +11964,12 @@ packages: resolution: {integrity: sha512-CqRA220YV/6jCo8VWvAt1KKx6eek1VIHMPeLEbpcfSfkEeWyBNppynM/o6q+Wmw+sOhos2ml34wZbSX3G13//g==} engines: {node: ^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0} dependencies: - '@types/node': 18.11.18 - merge-stream: 2.0.0 - supports-color: 8.1.1 - dev: true - - /jest-worker/29.5.0: - resolution: {integrity: sha512-NcrQnevGoSp4b5kg+akIpthoAFHxPBcb5P6mYPY0fUNT+sSvmtu6jlkEle3anczUKIKEbMxFimk9oTP/tpIPgA==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - dependencies: - '@types/node': 18.11.18 - jest-util: 29.5.0 + '@types/node': 18.15.11 merge-stream: 2.0.0 supports-color: 8.1.1 dev: true - /jest/28.1.3_ts-node@10.9.1: + /jest/28.1.3: resolution: {integrity: sha512-N4GT5on8UkZgH0O5LUavMRV1EDEhNTL0KEfRmDIeZHSV7p2XgLoY9t9VDUgL6o+yfdgYHVxuz81G8oB9VG5uyA==} engines: {node: ^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0} hasBin: true @@ -12714,19 +11979,19 @@ packages: node-notifier: optional: true dependencies: - '@jest/core': 28.1.3_ts-node@10.9.1 + '@jest/core': 28.1.3 '@jest/types': 28.1.3 import-local: 3.1.0 - jest-cli: 28.1.3_ts-node@10.9.1 + jest-cli: 28.1.3 transitivePeerDependencies: - '@types/node' - supports-color - ts-node dev: true - /jest/29.0.1: - resolution: {integrity: sha512-liHkwzaW6iwQyhRBFj0A4ZYKcsQ7ers1s62CCT95fPeNzoxT/vQRWwjTT4e7jpSCwrvPP2t1VESuy7GrXcr2ug==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + /jest/28.1.3_rrli7kzx2akox3oq6aahu3rvje: + resolution: {integrity: sha512-N4GT5on8UkZgH0O5LUavMRV1EDEhNTL0KEfRmDIeZHSV7p2XgLoY9t9VDUgL6o+yfdgYHVxuz81G8oB9VG5uyA==} + engines: {node: ^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0} hasBin: true peerDependencies: node-notifier: ^8.0.1 || ^9.0.0 || ^10.0.0 @@ -12734,10 +11999,10 @@ packages: node-notifier: optional: true dependencies: - '@jest/core': 29.5.0 - '@jest/types': 29.5.0 + '@jest/core': 28.1.3_ts-node@10.9.1 + '@jest/types': 28.1.3 import-local: 3.1.0 - jest-cli: 29.5.0 + jest-cli: 28.1.3_rrli7kzx2akox3oq6aahu3rvje transitivePeerDependencies: - '@types/node' - supports-color @@ -14772,15 +14037,6 @@ packages: react-is: 18.2.0 dev: true - /pretty-format/29.5.0: - resolution: {integrity: sha512-V2mGkI31qdttvTFX7Mt4efOqHXqJWMu4/r66Xh3Z3BwZaPfPJgp6/gbwoujRpPUtfEF6AUUWx3Jim3GCw5g/Qw==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - dependencies: - '@jest/schemas': 29.4.3 - ansi-styles: 5.2.0 - react-is: 18.2.0 - dev: true - /pretty-time/1.1.0: resolution: {integrity: sha512-28iF6xPQrP8Oa6uxE6a1biz+lWeTOAPKggvjB8HAs6nVMKZwf5bG++632Dx614hIWgUPkgivRfG+a8uAXGTIbA==} engines: {node: '>=4'} @@ -14876,10 +14132,6 @@ packages: resolution: {integrity: sha512-QFADYnsVoBMw1srW7OVKEYjG+MbIa49s54w1MA1EDY6r2r/sTcKKYqRX1f4GYvnXP7eN/Pe9HFcX+hwzmrXRHA==} dev: false - /pure-rand/6.0.1: - resolution: {integrity: sha512-t+x1zEHDjBwkDGY5v5ApnZ/utcd4XYDiJsaQQoptTXgUXX95sDg1elCdJghzicm7n2mbCBJ3uYWr6M22SO19rg==} - dev: true - /q/1.5.1: resolution: {integrity: sha512-kV/CThkXo6xyFEZUugw/+pIOywXcDbFYgSct5cT3gqlbkBE1SJdwy6UQoZvodiWF/ckQLZyDE/Bu1M6gVu5lVw==} engines: {node: '>=0.6.0', teleport: '>=0.2.0'} @@ -15481,11 +14733,6 @@ packages: engines: {node: '>=10'} dev: true - /resolve.exports/2.0.2: - resolution: {integrity: sha512-X2UW6Nw3n/aMgDVy+0rSqgHlv39WZAlZrXCdnbyEiKm17DSqHX4MmQMaST3FbeWR5FTuRcUwYAziZajji0Y7mg==} - engines: {node: '>=10'} - dev: true - /resolve/1.22.1: resolution: {integrity: sha512-nBpuuYuY5jFsli/JIs1oldw6fOQCBioohqWZg/2hiaOybXOft4lonv85uDOKXdf8rhyK159cxU5cDcK/NKk8zw==} hasBin: true @@ -16629,40 +15876,7 @@ packages: dependencies: bs-logger: 0.2.6 fast-json-stable-stringify: 2.1.0 - jest: 28.1.3_ts-node@10.9.1 - jest-util: 28.1.3 - json5: 2.2.1 - lodash.memoize: 4.1.2 - make-error: 1.3.6 - semver: 7.3.7 - typescript: 4.8.4 - yargs-parser: 21.1.1 - dev: true - - /ts-jest/28.0.8_tiulw5pz3vdh3cpspcd46lte2y: - resolution: {integrity: sha512-5FaG0lXmRPzApix8oFG8RKjAz4ehtm8yMKOTy5HX3fY6W8kmvOrmcY0hKDElW52FJov+clhUbrKAqofnj4mXTg==} - engines: {node: ^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0} - hasBin: true - peerDependencies: - '@babel/core': '>=7.0.0-beta.0 <8' - '@jest/types': ^28.0.0 - babel-jest: ^28.0.0 - esbuild: '*' - jest: ^28.0.0 - typescript: '>=4.3' - peerDependenciesMeta: - '@babel/core': - optional: true - '@jest/types': - optional: true - babel-jest: - optional: true - esbuild: - optional: true - dependencies: - bs-logger: 0.2.6 - fast-json-stable-stringify: 2.1.0 - jest: 29.0.1 + jest: 28.1.3_rrli7kzx2akox3oq6aahu3rvje jest-util: 28.1.3 json5: 2.2.1 lodash.memoize: 4.1.2 @@ -16672,7 +15886,7 @@ packages: yargs-parser: 21.1.1 dev: true - /ts-node/10.9.1_typescript@4.8.4: + /ts-node/10.9.1_3xy4ijntdaqs3bnplv7a3vjax4: resolution: {integrity: sha512-NtVysVPkxxrwFGUUxGYhfux8k78pQB3JqYBXlLRZgdGUqTO5wU/UyHop5p70iEbGhB7q5KmiZiU0Y3KlJrScEw==} hasBin: true peerDependencies: @@ -16691,6 +15905,7 @@ packages: '@tsconfig/node12': 1.0.11 '@tsconfig/node14': 1.0.3 '@tsconfig/node16': 1.0.3 + '@types/node': 18.15.11 acorn: 8.8.0 acorn-walk: 8.2.0 arg: 4.1.3